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í
×
    dnes 06:11 | Komunita

    Microsoft v příspěvku na svém blogu věnovaném open source oznámil, že textové adventury Zork I, Zork II a Zork III (Wikipedie) jsou oficiálně open source pod licencí MIT.

    Ladislav Hagara | Komentářů: 0
    dnes 05:55 | Komunita

    První prosincový týden proběhne SUSE Hack Week 25. Zaměstnanci SUSE mohou věnovat svůj pracovní čas libovolným open source projektům, například přidání AI agenta do Bugzilly, implementaci SSH v programovacím jazyce Zig nebo portaci klasických her na Linux. Připojit se může kdokoli.

    Ladislav Hagara | Komentářů: 0
    včera 22:00 | IT novinky

    Google oznámil, že Quick Share na Androidu funguje s AirDropem na iOS. Zatím na telefonech Pixel 10. Uživatelé tak mohou snadno přenášet soubory z telefonů s Androidem na iPhony a obráceně.

    Ladislav Hagara | Komentářů: 0
    včera 21:22 | Nová verze

    Byla vydána nová verze 8.5 (8.5.0) skriptovacího jazyka PHP používaného zejména k vývoji dynamických webových stránek. Přináší řadu novinek a vylepšení (URI Extension, Pipe Operator, Clone With, …). Vydána byla také příručka pro přechod z předchozích verzí.

    Ladislav Hagara | Komentářů: 0
    včera 12:44 | IT novinky

    Evropská komise zahájila tři vyšetřování týkající se cloudových platforem Amazon Web Services (AWS) a Microsoft Azure. Evropská exekutiva, která plní také funkci unijního antimonopolního orgánu, chce mimo jiné určit, zda jsou americké společnosti Microsoft a Amazon v cloudových službách takzvanými gatekeepery, tedy hráči, kteří významně ovlivňují provoz internetu a musí dle nařízení o digitálních trzích (DMA) na společném trhu

    … více »
    Ladislav Hagara | Komentářů: 4
    včera 12:33 | IT novinky

    Společnost Meta Platforms vyhrála ostře sledovaný spor o akvizici sítě pro sdílení fotografií Instagram a komunikační aplikace WhatsApp. Podle amerického soudu firma jejich převzetím neporušila antimonopolní zákon, protože si tak nemonopolizovala trh sociálních sítí. Žalobu na Metu podala před pěti lety americká Federální obchodní komise (FTC). FTC argumentovala, že Meta, tehdy známá jako Facebook, koupila tyto dvě společnosti v letech 2012 a 2014 proto, aby s nimi nemusela soutěžit.

    Ladislav Hagara | Komentářů: 0
    včera 05:11 | IT novinky

    Home Assistant včera představil svůj nejnovější oficiální hardware: Home Assistant Connect ZBT-2 pro připojení zařízení na sítích Zigbee nebo Thread.

    Ladislav Hagara | Komentářů: 5
    19.11. 19:44 | Nová verze

    Byla vydána verze 9.1 open source virtualizační platformy Proxmox VE (Proxmox Virtual Environment, Wikipedie) založené na Debianu. Přehled novinek v poznámkách k vydání a informačním videu.

    Ladislav Hagara | Komentářů: 1
    19.11. 17:44 | IT novinky

    Byl aktualizován seznam 500 nejvýkonnějších superpočítačů na světě TOP500. Nejvýkonnějším superpočítačem zůstává El Capitan od HPE (Cray) s výkonem 1,809 exaFLOPS. Druhý Frontier má výkon 1,353 exaFLOPS. Třetí Aurora má výkon 1,012 exaFLOPS. Nejvýkonnější superpočítač v Evropě JUPITER Booster s výkonem 1,000 exaFLOPS je na čtvrtém místě. Nejvýkonnější český superpočítač C24 klesl na 192. místo. Karolina, GPU partition klesla na 224. místo a Karolina, CPU partition na 450. místo. Další přehledy a statistiky na stránkách projektu.

    Ladislav Hagara | Komentářů: 17
    19.11. 17:22 | IT novinky

    Microsoft představil Azure Cobalt 200, tj. svůj vlastní SoC (System-on-Chip) postavený na ARM a optimalizovaný pro cloud.

    Ladislav Hagara | Komentářů: 0
    Jaké řešení používáte k vývoji / práci?
     (35%)
     (46%)
     (19%)
     (18%)
     (23%)
     (15%)
     (23%)
     (15%)
     (17%)
    Celkem 373 hlasů
     Komentářů: 17, poslední 19.11. 21:57
    Rozcestník

    Balíčky pro Debian - 8 (záplaty a uchovávání zdrojového balíčku)

    8. 8. 2008 | Michal Čihař | Návody | 3488×

    Jednu důležitou věc při vytváření balíčku jsme prozatím poněkud vynechali - upravování původního programu. Nějakým změnám se dost často nevyhneme a způsobů, jak je provést, je několik. Protože tyto změny chceme obvykle i nějak archivovat, podíváme se na možnosti použití VCS pro tyto účely.

    Obsah

    Na začátek musím říci, že v této oblasti panuje poněkud neutěšená situace a možností, jak k programu přidat záplaty, je mnoho. Původní (a stále používaný) formát zdrojových balíčků s jedním souborem se změnami není moc optimální, a proto bylo vyvinuto mnoho snahy pro jeho vylepšení nebo nahrazení.

    Nový formát zdrojových balíčků

    link

    V celém tomto seriálu popisuji verzi zdrojových balíčků 1.0. Už poměrně dlouho existuje verze 2.0 (nazývaná také Wig and Pen), která umožňuje použít více zdrojových tarballů a místo patche může obsahovat tarball se změnami. Podpora pro tento formát však je jen poloviční - je možné takovéto balíčky rozbalit, ale chybí podpora pro vytváření, protože se tento formát ukázal jako nepříliš dobře navržený.

    Aby toho nebylo málo, přibyla v dpkg verze 1.14.17 podpora pro zdrojové balíčky verze 3.0. Tato verze přináší do vytváření balíčků mnoho změn. Verze 3.0 má několik subformátů - git, bazaar, quilt a custom. Poslední jmenovaný může sloužit při případné implementaci dalších subformátů a nemá přímé využití. Varianta quilt vychází z formátu 2.0, s tím rozdílem, že je definované pořadí aplikace patchů a celkově je lépe definována práce s balíčkem. Tento formát by se měl stát preferovaným pro přespříští vydání Debianu (lenny + 1). Zatím ale není podporovaný všemi nástroji a není možné ho nahrát do distribuce. Varianty git a bazaar umožňují distribuovat zdrojový balíček ve formě repozitáře pro tyto distribuované systémy. Protože tyto formáty ještě nejsou úplně ustálené a podpora pro ně není příliš velká, nebudu se jejich používání věnovat.

    Soubor .diff.gz

    link

    Jak už víme, zdrojový balíček se skládá z tarballu a patche. Tak proč tento patch nevyužít i pro změny programu? Problémů s tímto systémem je více, a proto od něj většina vývojářů ustupuje. Jeden problém je, že tyto změny se špatně uchovávají ve VCS, který dnes mnoho vývojářů používá pro archivaci zdrojových kódů jejich balíčků. Dalším problémem je nemožnost oddělit jednotlivé úpravy. Pokud máte v balíčku například 50 patchů, tak po jejich začlenění do jednoho je mnohem těžší se ve změnách orientovat.

    Adresář debian/patches

    link

    Místo přímého patchování se tedy začal používat adresář debian/patches, jehož obsah je při kompilaci balíčku pomocí pravidel v debian/rules naaplikován na zdrojové kódy. Bohužel ani zde není situace jednoduchá a používá se několik implementací, které se liší svými možnostmi.

    Jednoduchý patch systém

    link

    Asi nejjednodušší řešení - patche se prostě v abecedním pořadí naaplikují. Většina uživatelů tohoto systému je asi mezi uživateli CDBS, protože ten nabízí jednoduchý způsob, jak potřebná pravidla do debian/rules přidat.

    Dpatch

    link

    Další velmi používané řešení se jmenuje dpatch. Jedná se o sadu utilit pro správu patchů, ale patch v tomto případě může znamenat spuštění libovolného skriptu, který nějak mění zdrojové kódy. Pořadí patchů určuje soubor debian/patches/00list, patche neuvedené v tomto souboru se neaplikují.

    Pro jeho použití je nejjednodušší začlenění souboru /usr/share/dpatch/dpatch.make do debian/rules, stačí přidat závislost na pravidlech patch a unpatch:

    include /usr/share/dpatch/dpatch.make
    
    build: build-stamp
    build-stamp: patch-stamp
        ${MAKE}
        touch build-stamp
    
    clean: clean1 unpatch
    clean1:
        ${MAKE} clean
        rm -rf debian/files debian/substvars debian/imaginary-package

    Pokud chceme nějaký patch upravit, poslouží nám nástroj dpatch-edit-patch, který zkopíruje aktuální strom, aplikuje případné předchozí patche a umožní nám upravovat libovolné soubory.

    Quilt

    link

    Poslední hodně rozšířenou možností je používání quiltu. Tentokrát se nejedná o nástroj speciální pro Debian, ale obecnou utilitu pro správu patchů. Oproti Dpatchi nabízí mnohem více možností na práci s patchi, a proto získává stále větší oblibu.

    Výsledné použití je velmi podpobné jako u Dpatche, stačí použít /usr/share/quilt/quilt.make a přidat závislosti stejně jako u něj.

    Pro práci můžeme použít všechny možnosti, které quilt nabízí, jenom pro ukládání patchů na správné místo je vhodné nastavit QUILT_PATCHES=debian/patches.

    Uchovávání balíčku ve VCS

    link

    Debian nepoužívá žádný centrální systém pro správu verzí (VCS), a proto může každý správce používat svůj oblíbený systém. Aby byla situace jednodušší, jsou definována pole do debian/control, ze kterých můžete vyčíst, kde a jaký VCS se používá. Tato pole mohou vypadat následovně:

    Vcs-Svn: svn://svn.cihar.com/debian-gammu/trunk
    Vcs-Browser: http://viewsvn.cihar.com/debian-gammu/trunk

    První je závislé na použitém VCS (zde se jedná o SVN, ale obdobně je možné použít libovolné jiné, například Vcs-Git) a ukazuje na umístění repozitáře aktuální vývojové verze. Druhé URL ukazuje na webové rozhraní k VCS.

    Nástroje debcheckout a debcommit

    link

    Čtení control souborů však není zrovna pohodlné, a proto existují nástroje debcheckout a debcommit. Jedná se o nadstavbu nad různými VCS, díky které se nemusíme učit práci s každým VCS, pokud chceme stáhnout aktuální zdrojový kód. Prostě stačí napsat debcheckout jméno-balíčku a získáme aktuální verzi, kterou má správce ve VCS. debcommit (kromě commitnutí do VCS) i automaticky vygeneruje popis tohoto commitu podle nového obsahu v souboru debian/changelog.

    Kompilace balíčku z VCS

    link

    Co všechno najdete ve VCS, se liší balíček od balíčku. Velká část balíčků zde má jen adresář debian a zdrojové kódy při kompilaci dodá kompilační skript rozbalením z předem definovaného místa. Obvykle se berou z adresáře ../tarballs, ale jejich umístění je možné upravit, například pro SVN je jeho umístění definované v souboru .svn/deb-layout. Kompilační skript je jiný pro každý VCS, například při použití výše zmíněného SVN to bude svn-buildpackage (ze stejnojmenného balíčku).

    Při použití distribuovaných systémů je možné i jiné uspořádání - a to, že ve VCS máme vlastní větev pro balíčky, která je odvozena od verze vydané autorem, a po checkoutu získáme kompletní zdrojové kódy.

    Obecně ale může mít správce ve VCS uložené cokoliv a není nijak standardizováno, jak takto získané zdrojové kódy kompilovat.

           

    Hodnocení: 100 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

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

    Komentáře

    Vložit další komentář

    8.8.2008 04:04 Michal Ludvig | skóre: 16
    Rozbalit Rozbalit vše Re: Balíčky pro Debian - 8 (záplaty a uchovávání zdrojového balíčku)
    Jsem rád že ve zdrojových balíčkách debianu je skutečně takový binec jaký jsem si myslel a ne že jsem jen něco zásadního nepochopil :-D
    8.8.2008 05:30 luky
    Rozbalit Rozbalit vše Re: Balíčky pro Debian - 8 (záplaty a uchovávání zdrojového balíčku)
    Zdani klame, opravdu jste to nepochopil.
    28.8.2008 11:58 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
    Rozbalit Rozbalit vše Re: Balíčky pro Debian - 8 (záplaty a uchovávání zdrojového balíčku)
    No trochu v tom bordel je, ale právě proto se přejde na nový formát zdrojových balíčků, který už konečně bude patche řešit rozumně. Dpkg které je Lennym už to bude podporovat, takže nový formát se nejspíš začne používat chvíli po tom co vyjde Lenny (což by mělo být v září).
    8.8.2008 07:22 Grafiker
    Rozbalit Rozbalit vše Re: Balíčky pro Debian - 8 (záplaty a uchovávání zdrojového balíčku)
    A co nějaké delta-DEB balíčky. Existuje to? Podobně jako delta-RPM balíky v Opensuse. (rozdílové záplaty)
    28.8.2008 12:00 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
    Rozbalit Rozbalit vše Re: Balíčky pro Debian - 8 (záplaty a uchovávání zdrojového balíčku)
    Nic co by se používalo, ale určitě to už někdo napsal :-).

    Založit nové vláknoNahoru

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