Byla vydána verze 1.90.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.
GNUnet (Wikipedie) byl vydán v nové major verzi 0.25.0. Jedná se o framework pro decentralizované peer-to-peer síťování, na kterém je postavena řada aplikací.
Byla vydána nová major verze 7.0 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Nově je postavena je na Debianu 13 (Trixie) a GNOME 48 (Bengaluru). Další novinky v příslušném seznamu.
Společnost Meta na dvoudenní konferenci Meta Connect 2025 představuje své novinky. První den byly představeny nové AI brýle: Ray-Ban Meta (Gen 2), sportovní Oakley Meta Vanguard a především Meta Ray-Ban Display s integrovaným displejem a EMG náramkem pro ovládání.
Po půl roce vývoje od vydání verze 48 bylo vydáno GNOME 49 s kódovým názvem Brescia (Mastodon). S přehrávačem videí Showtime místo Totemu a prohlížečem dokumentů Papers místo Evince. Podrobný přehled novinek i s náhledy v poznámkách k vydání a v novinkách pro vývojáře.
Open source softwarový stack ROCm (Wikipedie) pro vývoj AI a HPC na GPU od AMD byl vydán ve verzi 7.0.0. Přidána byla podpora AMD Instinct MI355X a MI350X.
Byla vydána nová verze 258 správce systému a služeb systemd (GitHub).
Byla vydána Java 25 / JDK 25. Nových vlastností (JEP - JDK Enhancement Proposal) je 18. Jedná se o LTS verzi.
Věra Pohlová před 26 lety: „Tyhle aféry každého jenom otravují. Já bych všechny ty internety a počítače zakázala“. Jde o odpověď na anketní otázku deníku Metro vydaného 17. září 1999 na téma zneužití údajů o sporožirových účtech klientů České spořitelny.
Byla publikována Výroční zpráva Blender Foundation za rok 2024 (pdf).
Jak již zaznělo v minulém díle, soubor debian/rules
obsahuje Makefile
, který zapříčiní vytvoření balíčku. Napsat vše, co je potřeba pro vytvoření balíčku přímo do tohoto souboru, asi není nejlepší, takže vzniklo několik nástrojů, které nám práci usnadní. Nejstarší a dnes již nepodporovaný byl debmake
. Dnes již však téměř všechny balíčky používají debhelper
. Ten se skládá ze sady mnoha příkazů, přičemž každý má na starosti jednu konkrétní část tvorby balíčku.
Debhelper samozřejmě není jediný nástroj, který lze pro vytváření balíčků
použít. Existuje mnoho projektů, které se snaží debian/rules
ještě
zjednodušit, nebo případně automaticky generovat. Debhelper je však zdaleka
nejpoužívanější a některé nadstavby jej stejně používají.
Nejrozšířenější nadstavba je bezpochyby CDBS. Jedná se o sady include skriptů
pro make, které u balíčků jež se chovají standardně (například GNOME programy, pythonovské moduly a podobně) umožní zcela vynechat vlastní psaní pravidel. Stačí do debian/rules
napsat vhodné include a vše bude automaticky fungovat. Za vším tímto je však stále schován Debhelper a pokud nám něco přestane fungovat, nevyhneme se jeho naučení.
Dalším zajímavým projektem je YADA. Ten jde cestou podobnou RPM a veškeré
informace o balíčku jsou uloženy v souboru debian/packages
. YADA z pak něj vygeneruje debian/control
, debian/rules
a případně i další skriptíky. Tímto nástrojem se však zabývat nebudu, protože s ním nemám žádné zkušenosti.
Naším hlavním pomocníkem při vytváření debian/rules
je tedy Debhelper. Ten se v současné době skládá téměř z padesáti skriptů, z nichž každý má na starosti jinou část vytváření balíčku. Když se podíváme do našeho balíčku, zjistíme, že se jich i v takto jednoduchém balíčku používá poměrně dost. Hlavní příčina toho je, že každý skript se stará právě o jednu věc a tím je umožněna dostatečná
granularita vytváření našeho skriptu.
Všechny příkazy Debhelperu najdete zdokumentované v man stránkách, takže kdykoliv potřebujete o některém z nich podrobnější informace, příkaz man vám pomůže. Ty nejdůležitější si však popíšeme; buď dnes, nebo v některém z následujících dílů.
Jak vlastně celkové vytváření balíčku funguje? Nejprve se standardně
zkompiluje, instalace se pak provádí do adresáře debian/jméno-binárního-balíčku
, kde se provedou závěrečné úpravy a tento adresář se zabalí do finálního balíčku. Pokud náš zdrojový balíček vytváří více balíčků, obvykle se instaluje do adresáře debian/tmp
a jednotlivé části se pak za pomoci skriptů z Debhlepera nakopírují do správného adresáře pro daný balíček.
Tento příkaz by se měl objevit na začátku každého pravidla a jediné, co má na starosti, je zkontrolovat, jestli se nacházíte ve správném adresáři (tedy nejvyšším adresáři zdrojáků).
Další příkaz, který se vyskytuje často. Tentokrát jen pro pravidla, která mohou vytvářet soubory s právy superuživatele, tedy pro cíle jako install
, clean
, binary-arch
a binary-indep
. Jak již jeho název napovídá, jen kontroluje, jestli máte dostatečná oprávnění. Jak již jsem upozorňoval v minulém díle, tak balíčky se nekompilují pod skutečným superuživatelem, ale v prostředí fakeroot
.
Vyčistí adresář debian
od dočasných souborů vzniklých při kompilaci a
instalaci.
Skripty začínající na dh_install
mají na starosti instalaci různých druhů souborů na správná místa do balíčků. Protože se jedná o poněkud obsáhlejší téma, bude jejich podrobnějšímu popisu věnován další díl.
Skript dh_link
slouží pro vytváření symbolických odkazů a opravu těch existujících podle Debian Policy. Pro vytváření se zadávají parametry ve stejném pořadí jako u příkazu ln
.
Tento skript odstraní ladicí symboly z programů a knihoven v balíčku. Tím se sice balíček zmenší, ale v případě pádu je obtížnější získat přesný popis problému. Proto je doporučeno u většiny knihoven ještě vytvářet -dbg
balíček, který bude obsahovat tyto ladicí symboly. Obsah tohoto balíčku vygeneruje dh_strip
automaticky po zadání parametru
--dbg-package=jméno-debug-balíčku
.
Projde nainstalovanou dokumentaci a soubory větší než 4 kB zabalí gzipem.
Opraví práva u souborů v balíčku. Opraví například chybná práva pro standardní adresáře, odstraní setuid a setgid bity a podobně.
Zkopíruje skripty a informace o balíčku do adresáře
debian/jméno-binárního-balíčku/DEBIAN
. Z tohoto adresáře se po vytvoření
balíčku stane archív control.tar.gz
.
Zjistí závislosti na sdílených knihovnách a vytvoří proměnné pro nahrazení v závislostech, které posléze použije dh_gencontrol
.
Nahradí proměnné v souboru debian/control
a zapíše verzi do
debian/jméno-binárního-balíčku/DEBIAN/control
.
Spočítá MD5 kontrolní součty souborů v balíčku a uloží je jako
debian/jméno-binárního-balíčku/DEBIAN/md5sums
.
Vytvoří binární balíček. Tento skript v podstatě jen zavolá dpkg-deb
s vhodnými parametry a ten se již postará o vlastní vytvoření balíčku.
Na závěr jsem si nechal nový přírůstek do rodiny Debhelpera, jedná se o
odpověď na různé zjednodušování debian/rules
pomocí CDBS a podobných. Skript
dh
je pro standardní balíčky (v současné době používající autoconf,
distutils nebo Build.PL) schopen provést veškeré potřebné kroky a v případě
ideálního balíčku může být soubor debian/rules
zjednodušen až na tři řádky:
#!/usr/bin/make -f %: dh $@
Ve skutečném světě to tak jednoduché většinou není, ale i tak si pomocí tohoto nástroje můžeme ušetřit dost práce.
Nyní již máme stručný přehled toho, co se při vytváření děje, a příště se podíváme na část, kterou jsme dnes poněkud vynechali - instalaci souborů do správných balíčků a na správné místo.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej: