abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 16:33 | Nová verze Ladislav Hagara | Komentářů: 0
    dnes 03:22 | Zajímavý článek

    V aktuálním příspěvku na blogu počítačové hry Factorio (Wikipedie) se vývojář s přezývkou raiguard rozepsal o podpoře Linuxu. Rozebírá problémy a výzvy jako přechod linuxových distribucí z X11 na Wayland, dekorace oken na straně klienta a GNOME, změna velikosti okna ve správci oken Sway, …

    Ladislav Hagara | Komentářů: 0
    dnes 00:11 | Nová verze

    Rakudo (Wikipedie), tj. překladač programovacího jazyka Raku (Wikipedie), byl vydán ve verzi #171 (2024.04). Programovací jazyk Raku byl dříve znám pod názvem Perl 6.

    Ladislav Hagara | Komentářů: 4
    včera 17:44 | Nová verze

    Společnost Epic Games vydala verzi 5.4 svého proprietárního multiplatformního herního enginu Unreal Engine (Wikipedie). Podrobný přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    26.4. 17:11 | Nová verze

    Byl vydán Nextcloud Hub 8. Představení novinek tohoto open source cloudového řešení také na YouTube. Vypíchnout lze Nextcloud AI Assistant 2.0.

    Ladislav Hagara | Komentářů: 12
    26.4. 13:33 | Nová verze

    Vyšlo Pharo 12.0, programovací jazyk a vývojové prostředí s řadou pokročilých vlastností. Krom tradiční nadílky oprav přináší nový systém správy ladících bodů, nový způsob definice tříd, prostor pro objekty, které nemusí procházet GC a mnoho dalšího.

    Pavel Křivánek | Komentářů: 9
    26.4. 04:55 | Zajímavý software

    Microsoft zveřejnil na GitHubu zdrojové kódy MS-DOSu 4.0 pod licencí MIT. Ve stejném repozitáři se nacházejí i před lety zveřejněné zdrojové k kódy MS-DOSu 1.25 a 2.0.

    Ladislav Hagara | Komentářů: 44
    25.4. 17:33 | Nová verze

    Canonical vydal (email, blog, YouTube) Ubuntu 24.04 LTS Noble Numbat. Přehled novinek v poznámkách k vydání a také příspěvcích na blogu: novinky v desktopu a novinky v bezpečnosti. Vydány byly také oficiální deriváty Edubuntu, Kubuntu, Lubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio, Ubuntu Unity a Xubuntu. Jedná se o 10. LTS verzi.

    Ladislav Hagara | Komentářů: 14
    25.4. 14:22 | Komunita

    Na YouTube je k dispozici videozáznam z včerejšího Czech Open Source Policy Forum 2024.

    Ladislav Hagara | Komentářů: 3
    25.4. 13:22 | Nová verze

    Fossil (Wikipedie) byl vydán ve verzi 2.24. Jedná se o distribuovaný systém správy verzí propojený se správou chyb, wiki stránek a blogů s integrovaným webovým rozhraním. Vše běží z jednoho jediného spustitelného souboru a uloženo je v SQLite databázi.

    Ladislav Hagara | Komentářů: 0
    KDE Plasma 6
     (75%)
     (8%)
     (2%)
     (15%)
    Celkem 868 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    Jak vyrabet gentoo ebuildy...

    5.3.2009 18:24 | Přečteno: 1132× | 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.