Byla vydána verze 12.0 s kódovým jménem Ecne linuxové distribuce Trisquel GNU/Linux. Založena je na Ubuntu 24.04 LTS a podporována bude do roku 2029. Trisquel patří mezi svobodné distribuce doporučované Nadací pro svobodný software (FSF).
Open-source citační manažer Zotero (Wikipedie, GitHub) byl vydán v nové major verzi 9. Přehled novinek v příspěvku na blogu.
Libre Graphics Meeting 2026, tj. čtyřdenní konference a setkání vývojářů a uživatelů svobodných a otevřených grafických softwarů, proběhne od 22. do 25. dubna v Norimberku. Dění lze sledovat na Mastodonu.
Vývojář Alexandre Gomes Gaigalas na GitHubu zveřejnil c89cc.sh, parser a kompilátor jazyka C89 napsaný v pouhém jediném skriptu o přibližně 8000 řádcích čistého bashe (bez dalších externích závislostí), který generuje ELF64 binárky pro x86-64. Jedná se o velmi jednoduchý kompilátor, který nepodporuje direktivy #include a dokonce ani funkci printf (lze použít puts), všechny dostupné deklarace lze nalézt v proměnné _BUILTIN_LIBC na konci skriptu. Skript je volně dostupný pod ISC licencí.
Francouzská vláda oznámila, že v rámci strategie 'digitální suverenity' zahájí 'přechod od systému Windows k počítačům s operačním systémem Linux' (sa sortie de Windows au profit de postes sous système d'exploitation Linux). DINUM (meziresortní ředitelství pro digitální technologie) požádalo ministerstva, aby do podzimu 2026 vypracovaly konkrétní plány nasazení Linuxu. Francie již dříve migrovala části státní správy na otevřená řešení.
Nezisková organizace Electronic Frontier Foundation (EFF) hájící občanské svobody v digitálním světě po téměř 20 letech opouští platformu X (dříve Twitter). Na platformách Bluesky, Mastodon, LinkedIn, Instagram, TikTok, Facebook, Threads a YouTube zůstává.
Terminálový textový editor GNU nano byl vydán ve verzi 9.0. Vylepšuje chování horizontálního posouvání pohledu na dlouhé řádky a chování některých klávesových zkratek. Více v seznamu změn.
Ministerstvo financí ve spolupráci s finanční správou dnes představilo beta verzi aplikace využívající umělou inteligenci pro předvyplnění daňového přiznání. Není třeba přepisovat údaje z různých potvrzení, ani hledat správné řádky, kam údaje napsat. Stačí nahrát dokumenty a využít AI.
Výrobce počítačových periferií Keychron zveřejnil repozitář se schématy šasi klávesnic a myší. Licence je restriktivní, zakazuje většinu komerčních užití a v podstatě jsou tak data vhodná pouze pro výukové účely, hlášení a opravy chyb, případně výrobu vlastního příslušenství.
Správce balíčků APT, používaný v Debianu a odvozených distribucích, byl vydán ve verzi 3.2 (seznam změn). Mezi novinkami figurují nové příkazy pro práci s historií, včetně vracení transakcí.
%setupS tuctem zdrojových kódů, z nichž se pokoušíme sestavit balíček, teprve dokážeme ocenit všechny možnosti makra %setup. Začneme ale tím, co vlastně dělá normálně. To mimochodem můžeme studovat na výpisech rpmbuildu. Na začátku každé fáze vypíše řádek Executing(%něco), např.:
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.92023
a následuje výpis, který vypadá úplně, jako by ho vypsal shell při set -x, protože ho vypisuje shell s set -x. Nestačí-li nám to, můžeme se do /var/tmp/rpm-tmp.92023 (číslo se mění podle čísla procesu) podívat – k tomu musíme rpmbuild násilně ukončit nebo nechat skript selhat, neboť po úspěšném dokončení se skript smaže, případně přepíše. Najdeme tam nastavení proměnných a pak:
umask 022 cd /home/yeti/src/RPM/BUILD rm -rf lobster-1.10 /usr/bin/bzip2 -dc /home/yeti/src/RPM/SOURCES/lobster-1.10.tar.bz2 \ | tar -xvvf - STATUS=$? if [ $STATUS -ne 0 ]; then exit $STATUS fi cd lobster-1.10 [ `/usr/bin/id -u` = '0' ] && /bin/chown -Rhf root . [ `/usr/bin/id -u` = '0' ] && /bin/chgrp -Rhf root . /bin/chmod -Rf a+rX,g-w,o-w .
Vidíme, že %setup zařídil, abychom pracovali ve správném adresáři, nepřekážely nám tam pozůstatky předchozích pokusů, rozbalil tarovou kouli se zdrojovým kódem a pokusil se nastavit rozumnější práva (zdrojový kód bývá občas zabalen všelijak). Chceme-li, aby něco dělal jinak či nedělal vůbec, vysvětlíme mu to jednou z mnoha voleb.
%setup -q a klidVolba -q omezuje upovídanost %setupu, což znamená hlavně to, že nespouští tar -xvvf, ale jen tar -xf. Uvádím ji první, protože je-li použita, musí být první.
%setup -n a názevObčas se adresář, který vznikne po rozbalení zdrojového kódu, jmenuje jinak než %{name}-%{version}. To by %setup zmátlo, a tak mu správné jméno musíme sdělit volbou -n jméno_adresáře. Kdyby se kupříkladu balíček nazýval lobster, jeho zdrojový kód byl crab-1.10.tgz a obsahoval adresář crab/, napíšeme do spec souboru
Name: lobster
Source: ftp://ftp.example.com/pub/lobster/crab-%{version}.tar.bz2
…
%prep
%setup -n crab
%setup -c a adresářSe zmršenými tarovými koulemi, které autor zabalil bez adresáře a které nám při obyčejném
rozbalení zamoří aktuální adresář soubory, se vypořádáme pomocí volby -c. Přidá
totiž před implicitní akci (rozbalení archivu) vytvoření adresáře a přechod do něj, tedy řádky
/bin/mkdir -p lobster-1.10 cd lobster-1.10
a po rozbalení už pak adresář nemění.
%setup -D, -T a implicitní akceVolba -D vypíná mazání adresáře se zdrojovým kódem, tedy řádku
rm -rf lobster-1.10
To se hodí, chceme-li použít %setup několikrát. Pak často potřebujeme i volbu
-T, která vypíná impliticní akci, tedy rozbalení tarové koule
/usr/bin/bzip2 -dc /home/yeti/src/RPM/SOURCES/lobster-1.10.tar.bz2 | tar -xvvf -
%setup -a, -b a trikyVolby -a a -b rozbalují konkrétní zdrojové kódy, přičemž -b (before) rozbaluje před vstupem do adresáře a -a (after) po vstupu do adresáře. Jejich argumenty jsou čísla zdrojových souborů z hlavičky. Je to přesně tak zmatené, jak zmateně to zní.
Příklad použití -a. Hlavní soubor lobster-1.10.tar.bz2 obsahuje poloprázdný adresář examples, kam chceme něco doplnit. Příklady máme zabaleny v examples.tar.gz (a rozbalují se pěkně do stejnojmenného adresáře). Použijeme proto -a 1, neboť chceme rozbalit Source1 po vstupu do adresáře:
Source0: ftp://ftp.example.com/pub/lobster/%{name}-%{version}.tar.bz2
Source1: examples.tar.gz
…
%prep
%setup -a 1
Příklad použití -b. Opět chceme něco doplnit do examples, ale příklady jsou v tarové kouli lobster-1.10-examples.tar.gz, která se rozbaluje do lobster-1.10/examples. Použijeme proto -b 1, neboť chceme rozbalit Source1 před vstupem do adresáře:
Source0: ftp://ftp.example.com/pub/lobster/%{name}-%{version}.tar.bz2
Source1: lobster-1.10-examples.tar.gz
…
%prep
%setup -b 1
Kdo se nebojí o své duševní zdraví, může volby různě kombinovat.
Jak to, že jednou píši o RPM_BUILD_ROOT, jindy o %buildroot, jaký je
mezi nimi vztah? Zde se to vysvětlí.
Když rpmbuild skládá skript, který realizuje některou fázi kompilace, zapíše na jeho začátek mimo jiné zhruba toto (kdo chce vědět, co tam opravdu zapíše, ať se podívá):
RPM_SOURCE_DIR="%{_sourcedir}"
RPM_BUILD_DIR="%{_builddir}"
RPM_OPT_FLAGS="%{optflags}"
RPM_ARCH="%{_arch}"
RPM_OS="%{_os}"
RPM_DOC_DIR="%{_docdir}"
RPM_PACKAGE_NAME="%{name}"
RPM_PACKAGE_VERSION="%{version}"
RPM_PACKAGE_RELEASE="%{release}"
RPM_BUILD_ROOT="%{buildroot}"
A všechny proměnné pak exportuje. Ve spec souboru jsou tak makra i proměnné prostředí ekvivalentní. Případné pomocné skripty, které můžeme spouštět, samozřejmě makra „nevidí“, ale proměnné v nich můžeme používat.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej: