Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za duben (YouTube).
Provozovatel čínské sociální sítě TikTok dostal v Evropské unii pokutu 530 milionů eur (13,2 miliardy Kč) za nedostatky při ochraně osobních údajů. Ve svém oznámení to dnes uvedla irská Komise pro ochranu údajů (DPC), která jedná jménem EU. Zároveň TikToku nařídila, že pokud správu dat neuvede do šesti měsíců do souladu s požadavky, musí přestat posílat data o unijních uživatelích do Číny. TikTok uvedl, že se proti rozhodnutí odvolá.
Společnost JetBrains uvolnila Mellum, tj. svůj velký jazykový model (LLM) pro vývojáře, jako open source. Mellum podporuje programovací jazyky Java, Kotlin, Python, Go, PHP, C, C++, C#, JavaScript, TypeScript, CSS, HTML, Rust a Ruby.
Vývojáři Kali Linuxu upozorňují na nový klíč pro podepisování balíčků. K původnímu klíči ztratili přístup.
V březnu loňského roku přestal být Redis svobodný. Společnost Redis Labs jej přelicencovala z licence BSD na nesvobodné licence Redis Source Available License (RSALv2) a Server Side Public License (SSPLv1). Hned o pár dní později vznikly svobodné forky Redisu s názvy Valkey a Redict. Dnes bylo oznámeno, že Redis je opět svobodný. S nejnovější verzí 8 je k dispozici také pod licencí AGPLv3.
Oficiální ceny Raspberry Pi Compute Modulů 4 klesly o 5 dolarů (4 GB varianty), respektive o 10 dolarů (8 GB varianty).
Byla vydána beta verze openSUSE Leap 16. Ve výchozím nastavení s novým instalátorem Agama.
Devadesátková hra Brány Skeldalu prošla portací a je dostupná na platformě Steam. Vyšel i parádní blog autora o portaci na moderní systémy a platformy včetně Linuxu.
Lidi dělají divné věci. Například spouští Linux v Excelu. Využít je emulátor RISC-V mini-rv32ima sestavený jako knihovna DLL, která je volaná z makra VBA (Visual Basic for Applications).
Revolut nabídne neomezený mobilní tarif za 12,50 eur (312 Kč). Aktuálně startuje ve Velké Británii a Německu.
debian/control
. Co všechno tento soubor musí obsahovat a co vše do něj můžeme napsat?Soubor debian/control
je jednoduchý textový soubor ve formátu odpovídajícím RFC-2822, ve kterém jsou základní informace o balíčku. Informace jsou vždy zadány ve formě jméno: hodnota
a bez tohoto souboru se prostě neobejdeme. Ale pojďme už od teorie a podívejme se na debian/control
z našeho ukázkového balíčku photo-uploader
rozebraném v minulém díle:
Source: photo-uploader Section: graphics Priority: extra Maintainer: Michal Čihař <nijel@debian.org> Build-Depends: debhelper (>= 5.0.37.2) Build-Depends-Indep: python-dev, python-central (>= 0.5), python-pycurl Standards-Version: 3.7.3 XS-Python-Version: current Vcs-Svn: svn://svn.cihar.com/debian-photo-uploader Vcs-Browser: http://viewsvn.cihar.com/debian-photo-uploader Homepage: http://cihar.com/software/photo-uploader/ Package: photo-uploader Architecture: all Depends: ${python:Depends}, python-pycurl XB-Python-Version: ${python:Versions} description: Command line photo uploader Photo uploader is a command line utility (and Python module) for uploading photos to minilabs for printing or to any service for image hosting. It currently supports only a few minilab services in Czechia and some hosting services like ImageShack, but can be easily extended to support others.
Jak vidíte, soubor je rozdělen prázdným řádkem do dvou částí. První se týká
zdrojového balíčku a informace tam uvedené budou ve výsledném zdrojovém balíčku v souboru photo-uploader_0.5-1.dsc
. Druhá část binárního balíčku se při
vytváření balíčku uloží do něj. Pokud by zdrojový balíček vytvářel více binárních, bude takovýchto sekcí obsahovat více, jednu pro každý binární balíček. Některé hodnoty jsou společné pro obě sekce a je možné je uvést jak u zdrojového, tak u binárního balíčku. V tom případě mají informace u binárního balíčku přednost.
První část tedy popisuje zdrojový balíček, začneme pěkně od začátku.
Source
určuje jméno zdrojového balíčku. Pravděpodobně zůstaneme u názvu, který používá autor. Jedná se o povinnou položku.
Hodnotou Section
určíme, jaké oblasti se balíček týká. Nástroje pro správu balíčků umožňují balíčky procházet podle sekcí a tím usnadní uživateli výběr. Pokud balíček z nějakých důvodů nemůže být začleněn do hlavního repositáře (main
) a musí být v contrib
nebo non-free
, bude zde tento repositář uvedený před lomítkem, tedy například non-free/x11
. Jedná se o doporučovanou položku.
Priorita (Priority
) určuje, jak moc je balíček důležitý. Většinou si vystačíme s extra
nebo optional
(moc velký rozdíl mezi nimi není). Jedná se o doporučovanou položku.
Další položka (Maintainer
) uvádí, kdo má balíček na svědomí. Jedná se o povinnou položku.
Následující dva řádky se závislostmi (Build-Depends
a Build-Depends-Indep
) určují, které balíčky musí být přítomny pro kompilaci našeho balíčku. Build-Depends-Indep
se týká jen zdrojových balíčků vytvářejících binární balíčky nezávislé na architektuře a určuje, co je potřeba pro vytvoření těchto balíčků. Položka není povinná, ale těžko se bez ní obejdeme. Na podobné téma ještě můžeme použít Build-Conflicts
a Build-Conflicts-Indep
, například pokud kompilace selže při nainstalování nějakého dalšího balíčku.
Standards-Version
identifikuje verzi Debian Policy, které balíček odpovídá. Jedná se o doporučovanou položku a měla by být udržována na aktuální verzi Debian Policy.
XS-Python-Version
se týká jen balíčků pro Python a prozatím jej budeme ignorovat. Veškeré parametry začínající na XS-
nejsou přímo podporovány dpkg, ale jejich jméno a hodnota jsou zkopírovány do dsc
souboru.
A teď se dostáváme k poměrně čerstvým novinkám ve zdrojovém balíčku. Z polí Vcs-*
se můžeme dozvědět, kde správce balíčku udržuje svoji pracovní verzi. Vždy se jedná o odkaz na systém správy verzí a Vcs-Browser
obsahuje odkaz na webové prohlížítko daného repozitáře. Tato položka je nepovinná.
Poslední hodnota Homepage
překvapivě určuje domovskou stránku zabaleného projektu. Tato položka se použije i pro všechny binární balíčky (pokud nemají uvedenu vlastní) a je nepovinná.
Pro každý binární balíček bude v souboru debian/control
právě jedna sekce se jménem balíčku uvedené za klíčovým slovem Package
. Jména balíčků ne vždy přímo odpovídají tomu, jak se balený program jmenuje, protože je potřeba mít v distribuci konzistentní pojmenování podobných věcí. Proto se třeba moduly pro Python vždy jmenují python-jménomodulu
a pro Perl zase libcosi-perl
. Pokud nevíte, jaké jméno zvolit, a nechce se vám hledat policy pro příslušnou skupinu balíčků, najděte si něco podobného a inspirujte se.
Trochu speciálním případem jsou sdílené knihovny. U těch musí jméno balíčku
odpovídat soname dané knihovny. Tím je zajištěna možnost mít současně
nainstalované různé verze jedné knihovny, což je v systému používajícím rolling updates naprostá nutnost. Knihovna libc.so.6
tedy bude v balíčku
libc6
a libgtkspell.so.0
zase v libgtkspell0
. U vývojových balíčků už obvykle není potřeba mít současně nainstalované různé verze (ale najdou se i výjimky, třeba knihovna libdb
nechvalně proslulá nekompatibilitou jednotlivých verzí), a proto stačí jediný, například libgtkspell-dev
.
Další položka Architecture
určuje architekturu binárního balíčku. Pokud nebalíme něco, co funguje jen na některé architektuře, vystačíme si s hodnotami
all
a any
. Hodnota any
určuje balíček, který lze kompilovat pro každou architekturu, all
oproti tomu balíček nezávislý na architektuře, například data nebo dokumentaci. Jedná se o povinnou položku.
Závislosti balíčku získáme z položky Depends
. Protože však jsou vývojáři tvorové líní, nemusíme tam uvádět vše, protože debhelper
je schopný některé závislosti najít automaticky a pak je nahradit do tohoto pole. Pro tento účel se používají v poli Depends
proměnné - tak, jako je v tomto případě použito ${python:Depends}
. U kompilovaných balíčků budeme chtít použít ${shlibs:Depends}
, což se nahradí jména balíčků s knihovnami, se kterými je náš program (nebo knihovna) slinkován. Takovýchto substitucí existuje více, obvykle bývá zvykem uvádět ještě ${misc:Depends}
a pak ještě můžeme použít informace o verzi právě kompilovaného balíčku ve formě ${source:Version}
a ${binary:Version}
. Závislosti v balíčku samozřejmě povinné nejsou, ale asi se bez nich neobejdeme.
Kromě striktní závislosti umožňuje Debian ještě mnoho dalších vztahů mezi
balíčky: Recommends
, Suggests
, Enhances
, Pre-Depends
a Conflicts
. Conflicts
značí konflikt balíčků, Pre-Depends
závislost, která je potřeba již při instalaci (pokud používáme ve skriptících při instalaci nějaký nástroj, měli bychom ho tam uvést).
Recommends
a Suggests
jsou jen volitelné závislosti, přičemž Recommends
je silnější závislost a výchozí chování APT je používat Recommends
jako závislost a tyto balíčky tedy budou nainstalovány, pokud si uživatel nezvolí jinak. Závislost Suggests
je nejslabší a je na uživateli, zda si tyto balíčky nainstaluje.
Poslední vztah je Enhances
, což je vlastně opačná varianta Suggests
. Jedná se tedy o slabou závislost, ale v opačném směru.
V námi zkoumaném balíčku ještě vidíme XB-Python-Version
. Platí to samé jako pro variantu s XS-
ve zdrojovém balíčku, tedy týká se jen balíčků pro Python a prozatím si jí nemusíme všímat.
Další položkou, se kterou se můžeme setkat, je Essential
. Pokud má hodnotu yes
, je balíček považován za nezbytný k funkci systému a při jeho odstraňování musí uživatel vynaložit větší úsilí na jeho odinstalování.
Poslední položkou je popis balíčku - Description
. První řádek určuje krátký popisek, další odsazené řádky jsou dlouhý popisek. Pokud chceme delší popisek
rozdělit do odstavců, je potřeba odstavec nahradit tečkou a zachovávat odsazení, například:
Description: Some package Very long description of some package, which needs more paragraphs. . Second paragraph is completely useless here.
Tím jsme probrali základní možnosti týkající se toho, co uvést v souboru debian/control
a příště se podíváme do dalších.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
Navíc si neuvědomuji, že by vývojáři Debianu vyráběli své balíčky pro Ubuntu.No známá pravda je, že naprostá většina z více než 10 tis. balíků Debianu je v Ubuntu použitá beze změny. Dokazuje to text u jednotlivých balíků na http://packages.ubuntu.com/ : Original Maintainers (usually from Debian): Ideální by byla větší (oboustranná) spolupráce mezi Ubuntu a Debianem, zatím je to IMHO jen Debian => Ubuntu. Příkladem použití by mohl být balík pgadmin3. V Ubuntu je už delší dobu, do Debianu se dostal do experimentalu teprve 2008-05-26. Zda to v Debianu vyselo na wxwidgets verze 2.8 nevím (dlouho v Debianu nebyla), ale zřejmě spolu vývojáři nespolupracovali. BTW: Nemá náhodou Ubuntu některé názvy balíků jiné?
dpkg-reconfigure locales
mi ukazuje, že to není úplně dobře udělaná distribuce. (A není to samozřejmě jen tohle, jsou to kolikrát drobnosti, ale je jich víc.)
Já mám opravdu lepší zkušenost s Debianem, a to jak na serveru, tak na desktopu.