abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 19:00 | IT novinky

    Na akci Made by Google 2026 (YouTube) bude oficiálně představena jedenáctá generace telefonů Pixel s novým čipem Google Tensor G6 a hodinky Pixel Watch 5.

    Ladislav Hagara | Komentářů: 0
    včera 17:11 | Bezpečnostní upozornění

    Národní úřad pro kybernetickou a informační bezpečnost (NÚKIB) se spolu s partnery z dalších zemí připojil ke společnému upozornění (Joint Cybersecurity Advisory) týkajícímu se probíhající kybernetické kampaně skupiny LAUNDRY BEAR zaměřené na uživatele e-mailové platformy Zimbra Collaboration Suite (ZCS) nejméně od července 2025. NÚKIB doporučuje organizacím využívajícím Zimbra Collaboration Suite neprodleně ověřit, zda

    … více »
    Ladislav Hagara | Komentářů: 0
    včera 14:22 | Nová verze

    Intel vydal 42 upozornění na bezpečnostní chyby ve svých produktech. Současně vydal verzi 20260811 mikrokódů pro své procesory.

    Ladislav Hagara | Komentářů: 0
    včera 05:33 | Zajímavý článek

    Sny o designu GNOME Shellu, článek s náhledy a videi, představuje dlouhodobou vizi týmu GNOME pro vylepšení uživatelského rozhraní GNOME Shellu. Zatímco nedávné verze přinášely spíše drobné úpravy, designéři nyní plánují zásadnější změny.

    Ladislav Hagara | Komentářů: 14
    včera 05:22 | Nová verze

    Byla vydána nová verze 10.5 sady aplikací pro SSH komunikaci OpenSSH. Přináší řadu důležitých bezpečnostních oprav, vylepšení funkcí a oprav chyb. Nově vyžaduje podporu ECC (Elliptic Curve Cryptography) v libcrypto, včetně křivky NISTP521.

    Ladislav Hagara | Komentářů: 0
    včera 05:11 | Nová verze

    Byla vydána nová verze 10.6 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. S novými obrazy pro Orange Pi 4 Pro, Orange Pi Zero 3W a Odroid M1/M1S/M2. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    11.8. 14:44 | IT novinky

    Námořní drony používané elitními jednotkami britského královského námořnictva tajně posílaly údaje do Číny. Stroje vybavené čínskými komponenty měly být využívány pro vojenské operace na Blízkém východě. Kamery na dálkově řízených průzkumných člunech K3 Scout byly vybavené součástkami, které bez vědomí britského námořnictva odesílaly informace do spojeného zařízení v Číně. Britské námořní síly využívaly flotilu námořních dronů

    … více »
    Ladislav Hagara | Komentářů: 7
    11.8. 13:33 | IT novinky

    Alza.cz nabízí herní AlzaPC s předinstalovaným Linuxem (YouTube), konkrétně s linuxovou distribucí Bazzite (Wikipedie).

    Ladislav Hagara | Komentářů: 7
    11.8. 04:55 | Nová verze

    Squeak (Wikipedie), open source implementace programovacího jazyka a prostředí Smalltalk, byl vydán ve verzi 6.1. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    11.8. 04:44 | Bezpečnostní upozornění

    V Linuxu v KVM byla nalezena a v upstreamu již byla opravena kritická zranitelnost Zapscape aneb CVE-2026-64561. Root na hostovaném počítači (virtuální stroj) může obejít izolaci a získat plnou kontrolu nad hostitelským systémem (DoS útok nebo vzdálené spuštění kódu s právy roota). Na obou hlavních architekturách – Intel i AMD. Zranitelnost v Linuxu existovala 6 let (od července 2020 do července 2026).

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (10%)
     (7%)
     (2%)
     (18%)
     (30%)
     (6%)
     (6%)
     (2%)
     (15%)
     (23%)
    Celkem 2374 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník

    Jak vyrabet gentoo ebuildy...

    5.3.2009 18:24 | Přečteno: 1359× | Gentoo | Výběrový blog | poslední úprava: 5.3.2009 18:22

    Tento malý článeček si klade za cíl seznámit čtenáře s postupy a procesy, které máme v Gentoo pro začleňování věcí do repozitářů (ať se jedná o hlavní strom, či libovolný overlay - na tom nesejde).

    Průběh začleňování budu popisovat na balíku sci-misc/boinc a postupy specifické pro KDE ebuildy budu ukazovat pomocí balíku kde-misc/krusader.


    1) QA

    Prvním krokem bude kontrola, zda jsou splněny všechny formality pro daný ebuild. (Nejefektnější je začínat ebuild ze souboru skel.ebuild se smazanými komentáři, nebo ještě lépe použít vim (nebo emacs no...), který při editaci automaticky vyplní vše potřebné výchozími hodnotami).

    Vizuální kontrola

    Při procházení ebuildu si všimneme nejprve hlavičky. Ta je formálně daná a nemění se.

    Po ní následuje dobrovolná definice EAPI, zde v obou případech používáme EAPI=2. Dále by měly být uvedeny povinné proměnné, oddělené podle typu, jak je možno vidět u boincu. Jistě si všimnete, že u krusaderu mám chybu (licence správně patří až do druhého bloku).

    Nejdůležitějším kritériem při vizuální kontrole je pouze čitelnost a také to, zda obdobně vypadají ostatní ebuildy od dané herd.

    Po vizuální stránce jsou tedy oba ebuildy naprosto v pořádku. Nyní je třeba přistoupit ke kontrole jejich správnosti.

    Kontrola dat

    Ebuild máme v lokálním overlay. Jeho kontrolu provedeme velice snadno příkazem:

    $ cd /path/to/the/ebuild/dir/ && repoman full

    Tento nám vrátí nějaký výstup. Vždy nám prozradí, co je špatně a naším finálním cílem je, aby si repoman vůbec nestěžoval.

    Jak můžeme vyzkoušet u krusaderu a u boincu, u obou si stěžuje na chyby.

    sci-misc/boinc:
      ebuild.allmasked              1
         sci-misc/boinc
      upstream.workaround           1
         sci-misc/boinc/boinc-6.4.5.ebuild: Upstream parallel compilation bug (ebuild calls emake -j1 on line: 96)

    První chyba říká, že nemáme žádnou stable verzi daného balíku. To nás opravdu nebere a tedy taková chyba nám nevadí.

    Druhá chyba se zaobírá zajímavější věcí a to jest chybou paralelního make. Určuje nám, že daný program se neumí zkompilovat ve více vláknech. Což je definitivně chyba upstreamu a měla by se nahlásit. Přesto "emake -j1" je dostatečný workaround, dokud to upstream nevyřeší.

    kde-misc/krusader:
      RDEPEND.implicit              1
         kde-misc/krusader/krusader-2.0.0_beta2-r1.ebuild: RDEPEND is not explicitly assigned

    Tato chyba má velice zajímavé pozadí. Protože jsme my, Gentoo vývojáři, cháska hádavá, nemohli jsme se více než pár let dohodnout, jestli implicitně deklarovat RDEPEND="${DEPEND}". Nakonec - před pár týdny (prostředek ledna 2k9) - se rozhodlo, že RDEPEND musí být vždy definováno a repoman bude hlásit chybu v případě, že tomu tak nebude.

    Nyní umíme zkontrolovat kvalitu ebuildu a dokážeme aspoň částečně odhadnout zda nám jej vývojáři přijmou a začlení.

    Nezapomínejte, že efektivní je také uplacení nějakého vývojáře aby ebuild udělal. K tomu se hodí různé cukrovinky a nebo pivo. ;]


    2) Píšeme ebuild

    Obecně je opravdu nejdůležitější, aby ebuild splňoval všechny náležité požadavky (aby vypadal stejně jako ty vostatní od stejné herd hej ;]).

    Pro KDE4 (cmake)

    Úplně nejjednodušší je pro srovnání používat ebuildy, které máme v kde-testing. Většinu věcí za vás naše eclass udělá automaticky, jak je možno vidět na obsahu ebuildu pro krusader.

    KDE4 eclass fungují principem, že se nadefinují hodnoty a potom se vygenerují požadované funkce, takže je třeba všechny definice provést před příkazem inherit.

    Důležité proměnné:

    KDE_LINGUAS obsahuje všechny locale, se kterými může daná aplikace spolupracovat. K této proměnné se přidružuje KDE_LINGUAS_DIR, což je adresář ve kterém se nacházejí .po soubory nebo podadresáře s názvy daných linguas.

    KDE_MINIMAL určuje minimální verzi kde potřebnou pro běh aplikace, default (když nic nedefinujem) je 4.2.

    Po inheritu následují definice nám již známých proměnných, u kterých nás nic nemůže překvapit, i když kde4 eclass automaticky využije přítomnost debug use flagu a umožní debug build pomocí cmake. Také proměnná htmlhandbook je kde specialitka a umožnuje tvorbu html dokumentace (tato bude brzo zrušena protože to budeme řešit jinak a radostněji).

    Funkce src_prepare:

    Zde můžeme vidět, že pomocí podmínek se rozhoduje, zda chceme dokumentaci či ne, jednoduchou úpravou souboru CMakeLists.txt.

    Dále také odstraňuje verbose výstup, který je opravdu do nebe volající blbost, protože se díky němu aplikace kompilují 2-3x déle a nikomu jinému nežli autorům ty zprávy nic neřeknou.

    Závěrem je třeba zavolat kde4-base_src_prepare. Každá funkce v ebuildu musí volat svou nadřazenou funkci z kde4-base nebo kde4-meta, v opačném případě skončíte, pokud máte štěstí, s nefunkčním ebuildem.

    Funkce src_configure:

    Zde nastavujeme kompilační parametry, pro krásnou ukázku doporučuji ebuild kde-base/kopete. Tyto parametry lze vždy najít v souborech CMakeLists.txt jako proměnné hodnoty OPTION (samozřejmě, že to může být napsané prasácky a ty hodnoty tam nebudou).

    S využitím autotools

    Ebuild pro boinc je rozhodně zajímavější a těžší pro údržbu. ;]

    Nejprve se podíváme na tu hromadu závislostí. Většina z toho se dá zjistit jednoduchým pročtením README a ./configure --help, případně shlédnutím probíhajícího ./configure. Tyto skripty nám poví celkem rády všechny pro naši aplikaci potřebné náležitosti.

    Funkce src_prepare:

    Jak můžeme vidět, boinc nemá některé věci v pořádku, ty se snažíme uklidit. Moje lenost je nebetyčná a proto jsem ještě neodstranil QA warning ohledně prestripped binaries (což je něco, co by se vám rozhodně stávat nemělo, alespoň dokud nemůžete sami do stromu commitnout O:]).

    Funkce src_configure:

    Zde nastavujeme a předáváme všemožné proměnné econf skriptu.

    Nejprve si nadefinujeme přidané cflags; toto by se nemělo dělat pokud k tomu neni setsakra dobrej důvod.

    Pak nastavíme WXWIDGETS, což já třeba vůbec nevěděl, jak se dělá, tak sem si to ukradl z nějakého jiného ebuildu používajícího wxwidgets a upravil dle svých potřeb.

    Dál nám následuje jednoduchý econf, u něj lze veškeré hodnoty zjistit pomocí ./configure --help.

    Funkce src_compile:

    Jediná věc, která se zde děje, je omezení počtu JOBS (paralelních procesů make) na 1 samotinký, což jistě nepotěší vlastníky vícejaderných CPU. :)

    Funkce src_install:

    Celkem jednoduchá instalace. Zde je důležité říct, že je potřeba opravdu velice bedlivě sledovat, co se vám kam instaluje a aby to nebylo mimo FHS (s tímto mají lidé nejvíce problémy).

    Funkce pkg_setup:

    Zde se provádí různá nastavení, která se nehodí nikam jinam, v našem případě nastavení uživatelského účtu a skupin.

    Funkce pkg_postinst:

    Tato funkce se v 99.99% případů používá na informace o balíku. Jak je vidět u boincu, musel jsem být velice, ale velice, ukecaný.

    Vložení ebuildu do stromu/overlaye

    Jak přesvědčit nějakého vývojáře, že zrovna náš ebuild je ten nejlepší nejgeniálnější a prostě celkově nej, je velice klíčová otázka. Hlavní kritéria jsme si prošli v první kapitole. Pokud splňujeme tyto, máme velice dobře našlápnuto k vítězství.

    Jak takového vývojáře tedy kontaktovat. Máme dvě možnosti:

    1. Vyplnit bug v bugzille a připojit náš ebuild jako attachment. Při použití tohoto postupu máme zaručeno, že to časem někdo udělá. Pokud to není úplně nová aplikace; v tom případě je dobrou volbou sunrise.
    2. Použijeme irc ( http://www.gentoo.org/main/en/irc.xml ) Použití irc nám zaručuje ve většině případů celkem dobrou realtime komunikaci, a je tedy vyšší šance, že to někdo udělá rychle :) (ale taky nám někdo mnohem rychleji vyčte naše chyby :P)

    Závěr

    Pokud váš výtvor splní všechny, nebo alespoň valnou většinu, podmínky tak je celkem reálné, že bude do gentoo zařazen.

    Hodně štěstí s tvorbou balíčků, a pište jich co nejvíc ať se nemusíme my vývojáři příliš namáhat :P


    Jo a abych nezapomněl, rád bych poděkoval Tilye za to, že to po mě přečetla a vynadala mi za největší chyby :)

           

    Hodnocení: 100 %

            špatnédobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    Marián Kyral avatar 5.3.2009 20:09 Marián Kyral | skóre: 29 | blog: Sem_Tam | Frýdek-Místek
    Rozbalit Rozbalit vše Re: Jak vyrabet gentoo ebuildy...

    To použití irc znamená mít vytvořený bug report, nebo se dá i bez něj?

    5.3.2009 20:11 Scarabeus IV | skóre: 20 | blog: blogisek_o_gentoo | Praha
    Rozbalit Rozbalit vše Re: Jak vyrabet gentoo ebuildy...
    Do sunrise jedine s nim, ale k ostatnim to nemusi bejt potreba.
    Vetsinou pokud ho nemas a prijdes na irc tak ti reknou zda je potreba ci ne.
    Marián Kyral avatar 5.3.2009 22:23 Marián Kyral | skóre: 29 | blog: Sem_Tam | Frýdek-Místek
    Rozbalit Rozbalit vše Re: Jak vyrabet gentoo ebuildy...

    Díky, tak jsem vykradl jeden plasmoid v kde-testing a udělal dva nové ebuildy ;-)

    http://bugs.gentoo.org/show_bug.cgi?id=261364 (system load viewer 0.6)

    http://bugs.gentoo.org/show_bug.cgi?id=250803 (yaWP - Yet another weather plasmoid 0.2)

    5.3.2009 22:51 Scarabeus IV | skóre: 20 | blog: blogisek_o_gentoo | Praha
    Rozbalit Rozbalit vše Re: Jak vyrabet gentoo ebuildy...
    Predano HT pro zacleneni. :D
    Marián Kyral avatar 6.3.2009 10:07 Marián Kyral | skóre: 29 | blog: Sem_Tam | Frýdek-Místek
    Rozbalit Rozbalit vše Re: Jak vyrabet gentoo ebuildy...

    Díky

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.