Svobodný (GPLv3) šachový engine Stockfish (Wikipedie) byl vydán ve verzi 19 (𝕏). Přehled novinek v příspěvku na blogu. Stockfish 19 je o 44 Elo silnější než Stockfish 18.
Byla vydána nová verze 1.13.0 dynamického programovacího jazyka Julia (Wikipedie) určeného zejména pro vědecké výpočty. Přehled novinek v příspěvku na blogu a v poznámkách k vydání. Aktualizována byla také dokumentace.
Organizátoři konference LinuxDays zveřejnili program letošního ročníku a spustili registraci návštěvníků. LinuxDays 2026 se uskuteční 3. a 4. října v areálu ČVUT v pražských Dejvicích, na Fakultě informačních technologií. Těšit se můžete na 70 přednášek a workshopů od 66 přednášejících. Konference bude rozdělena do pěti sálů s různou kapacitou. Vstup na LinuxDays je jako obvykle zdarma, stačí včas vyplnit registrační formulář. Opět je možné si na akci zakoupit oběd, ale je třeba to udělat předem, na místě už to nebude možné.
Google Chrome 153 byl prohlášen za stabilní. Nejnovější stabilní verze 153.0.8010.36 přináší řadu novinek. Podrobný přehled v poznámkách k vydání. Opraveno bylo 230 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
Open-source hra Shattered Pixel Dungeon (Wikipedie) byla vydána ve verzi 4.0.0. Přehled novinek v příspěvku na blogu.
Apple dnes představil (YouTube) iPhone Duo, iPhone 18 Pro, Watch Series 12, Watch Ultra 4 a AirPods 5.
Společnost System76 představila pracovní stanici Thelio Mira AI s předinstalovaným Pop!_OS s prostředím COSMIC nebo Ubuntu. Nakonfigurovat lze až s 16jádrovým CPU AMD Ryzen 9 9950X, 192 GB DDR5 RAM, dvěma GPU NVIDIA RTX Pro 6000 a 192 GB GPU pamětí.
DigitalOcean je sponzorem nadace Omacom Foundation stojící za linuxovou distribucí Omarchy. Přislíbená částka je 3 miliony dolarů, tj. 1 milion dolarů ročně po dobu tří let.
Na stránkách PostgreSQL bylo představeno LibreDB Studio. Jedná se o open-source self-hostované SQL IDE pro (nejenom) PostgreSQL v prohlížeči. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.
Byla vydána nová verze 12.0 media serveru Jellyfin (Wikipedie). Přehled novinek v poznámkách k vydání. Pro vyzkoušení je k dispozici Demo Server. Jellyfin je fork media serveru Emby, původně Media Browser.
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: