Shellbeats je terminálový hudební přehrávač pro Linux a macOS, který umožňuje vyhledávat a streamovat hudbu z YouTube, stahovat odtud skladby a spravovat lokální playlisty. Pro stahování dat z YouTube využívá yt-dlp, pro práci s audiostreamy mpv. Je napsán v jazyce C a distribuován pod licencí GPL-3.0, rezpozitář projektu je na GitHubu.
Byla vydána nová verze 26.1.30 svobodného multiplatformního video editoru Shotcut (Wikipedie) postaveného nad multimediálním frameworkem MLT. S podporou hardwarového dekódování videa. Shotcut je vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.
LibrePCB, tj. svobodný multiplatformní softwarový nástroj pro návrh desek plošných spojů (PCB), byl po deseti měsících od vydání verze 1.3 vydán ve verzi 2.0.0. Přehled novinek v příspěvku na blogu a v aktualizované dokumentaci. Zdrojové kódy LibrePCB jsou k dispozici na GitHubu pod licencí GPLv3.
Guido van Rossum, tvůrce programovacího jazyka Python, oslavil 70. narozeniny. Narodil se 31. ledna 1956 v nizozemském Haarlemu.
OpenClaw je open-source AI asistent pro vykonávaní různých úkolů, ovládaný uživatelem prostřednictvím běžných chatovacích aplikací jako jsou například WhatsApp, Telegram nebo Discord. Asistent podporuje jak různé cloudové modely, tak i lokální, nicméně doporučován je pouze proprietární model Claude Opus 4.5 od firmy Anthropic v placené variantě. GitHubová stránka projektu OpenClaw.
Projekt VideoLAN a multimediální přehrávač VLC (Wikipedie) dnes slaví 25 let. Vlastní, tenkrát ještě studentský projekt, začal již v roce 1996 na vysoké škole École Centrale Paris. V první únorový den roku 2001 ale škola oficiálně povolila přelicencování zdrojových kódů na GPL a tím pádem umožnila používání VLC mimo akademickou půdu.
Moltbook je sociální síť podobná Redditu, ovšem pouze pro agenty umělé inteligence - lidé se mohou účastnit pouze jako pozorovatelé. Agenti tam například rozebírají podivné chování lidí, hledají chyby své vlastní sociální sítě, případně spolu filozofují o existenciálních otázkách 🤖.
scx_horoscope je „vědecky pochybný, kosmicky vtipný“ plně funkční plánovač CPU založený na sched_ext. Počítá s polohami Slunce a planet, fázemi měsíce a znameními zvěrokruhu. Upozornil na něj PC Gamer.
O víkendu probíhá v Bruselu konference FOSDEM 2026 (Free and Open source Software Developers’ European Meeting). Program konference je velice nabitý: 37 místností, 71 tracků, 1184 přednášejících, 1069 přednášek, prezentací a workshopů. Sledovat je lze i online. K dispozici budou jejich videozáznamy. Aktuální dění lze sledovat na sociálních sítích.
Společnost Nex Computer stojící za "notebooky bez procesorů a pamětí" NexDock představila telefon NexPhone, který může funguje jako desktop PC, stačí k němu připojit monitor, klávesnici a myš nebo NexDock. Telefon by měl být k dispozici ve třetím čtvrtletí letošního roku. Jeho cena by měla být 549 dolarů. Předobjednat jej lze s vratní zálohou 199 dolarů. V dual-bootu by měl být předinstalovaný Android s Linuxem (Debian) jako aplikací a Windows 11.
%filesO sekci %files a vlastnostech souborů jsme si pověděli již v jednom z prvních dílů, ale nic není tak jednoduché, jak to napíši.
Sekci %files, resp. její část, je možné generovat při kompilaci. Zapíšeme-li nějakým skriptem seznam souborů balíčku lobster (ve stejném formátu jako v sekci %files samé) do lobster.files, načteme ho pomocí -f:
%files -f lobster.files
A soubory mohou mít řadu dalších, řidčeji využívaných přívlastků.
%excludePřívlastek %exclude označuje soubor, který do daného rpm nepatří. Hodí se u vedlejších balíčků, kdy umožňuje do některého balíčku přidat všechny soubory v adresáři kromě jednoho, který patří do jiného balíčku.
%exclude %{_bindir}/lobster-server
%ghostPřívlastek %ghost označuje soubor, který se nemá do balíčku zahrnout, ačkoli do něj patří. Používá se pro soubory, jejichž obsah je nepodstatný, ale na jejich atributech záleží, tedy zejména logy a další generované soubory. Kromě toho ho rpmbuild přidává nezdrojovým souborům a nepatchům v nezdrojových rpm (nosrc.rpm).
%ghost %{fontdir}/fonts.dir
%configKonfigurační soubory označuje přívlastek %config. Konfigurační soubory vyžadují při aktualizaci zvláštní zacházení, protože se na rozdíl od ostatních běžně editují – a rpm s nimi také tak zachází. Snaží se přitom o dvě věci zároveň:
Srovnáme-li obsah souboru ze starého balíčku, obsah souboru z nového balíčku a jeho skutečný stav v systému, může nastat celkem pět možností. Dvě z nich jsou nezajímavé, jelikož je v nich skutečný obsah stejný jako ten, který by tam rpm rádo vidělo. Zbývají tři.
rpm jednoduše nahradí soubor novým. Logika je taková, že se nahrazuje funkční výchozí konfigurace za aktualizovanou výchozí konfiguraci. Neexistuje verze, která by nebyla v novém či starém balíčku.rpm v pasti. Neví, zda je lepší konfigurační soubor z nového balíčku, který sice jistě funguje s novou verzí programu, ale neobsahuje naše úpravy; nebo modifikovaný soubor, který ale nemusí s novou verzí vůbec fungovat. Řeší to tak, že změněný soubor uloží s koncovkou .rpmsave a vypíše varování:warning: /etc/lobster/lobster.conf saved as /etc/lobster/lobster.conf.rpmsave
Toto vše platí pro soubory označené jen %config; můžeme je ale také označit %config(noreplace):
%config(noreplace) /etc/lobster/lobster.conf
a rpm potom vždy ponechává editovaný soubor. Liší-li se od něj soubor z nového balíčku, přidá jej s koncovkou .rpmnew a vypíše varování
warning: /etc/lobster/lobster.conf created as /etc/lobster/lobster.conf.rpmnew
Zacházení s konfiguračními soubory shrnuje tabulka:
| Starý | Nový | Systém | Akce bez noreplace | Akce s noreplace |
| A | A | A | nic | nic |
| B | A | A | nic | nic |
| A | B | A | aktualizuje A na B | aktualizuje A na B |
| A | A | B | ponechá B | ponechá B |
| A | B | C | zálohuje C s .rpmsave, aktualizuje na B |
ponechá C, přidá B s .rpmnew |
Při odstranění balíčku zazálohuje rpm soubory označené %config s koncovkou .rpmsave (byly-li oproti balíčku změněny).
Přívlastek %config může mít kromě noreplace i volbu
missingok. Ta říká rpm, že se nemá divit, když soubor chybí. Stále však patří do balíčku a smaže se, když balíček odinstalujeme. Dříve se často používal pro soubory jako
%config(missingok) /etc/rc.d/rc2.d/S88lobster
i když dnes se totéž řeší spíš chckconfigem v instalačním skriptíku.
%verify a %defverifyVlastnosti, které má, resp. nemá kontrolovat rpm --verify, určuje přívlastek %verify. Výchozí nastavení můžeme provést pomocí %defverify, který se má k %verify stejně jako %defattr k %attr.
Argumentem mohou být jednotlivé vlastnosti, které rpm --verify kontroluje: md5, size, link, user, group, mtime, mode, rdev, oddělené mezerami. Uvedeme-li jako první not, říkáme tím, že se vyjmenované vlastnosti naopak kontrolovat nemají – %verify se používá téměř výhradně takto v negaci. Přívlastek se vyskytuje velmi
často společně s %ghost a %config.
%ghost %verify(not md5 size mtime) %{fontdir}/fonts.cache*
Potřebujeme-li nastavit stejné atributy u řady souborů, můžeme si pro ně definovat makro:
%define dbattr %verify(not md5 size mtime) %ghost %config(missingok,noreplace)
%langSoubory lokalizace do nějakého jazyka se označují přívlastkem
%lang(locale), kde locale je označení příslušného locale:
%lang(cs) %{_datadir}/%{vimdir}/lang/cs/*
%lang(fr) %{_datadir}/%{vimdir}/lang/fr/*
Definicí makra %_install_langs pak lze omezit jazyky, pro které se mají instalovat lokalizované soubory (při implicitní hodnotě all se instalují soubory všech jazyků).
Ruční označování lokalizačních souborů je ovšem pěkná dřina, proto RPM obsahuje skript, který většinu práce udělá za nás. Nazývá se find-lang.sh a umí vyhledat a označit MO soubory gettextu a soubory nápovědy Gnome a KDE (v případě KDE tedy spíš snad jednou bude umět). Voláme ho makrem %find_lang s bázovým jménem souboru, do nějž seznam lokalizačních
souborů zapsat:
%install
…
%find_lang %{name}
%files -f %{name}.lang
…
%devPřívlastek %dev označuje zařízení a má argumenty
%dev(typ, major, minor). Argument
typ je b pro bloková zařízení nebo c pro znaková; hlavní a vedlejší číslo zařízení jsou čísla (desítková či šestnáctková). V době jádra 2.6 a udev už je prakticky k ničemu.
Přívlastky %readme (soubory README) a %license (licence) se příliš nepoužívají: rpm je nicméně pozná a umí vypsat. Přívlastek %pubkey označuje veřejný klíč, a dokonce se používá, byť zcela výjimečně; %policy má označovat SELinux policy na Fedoře, ale netuším, jak se správně používá. Přívlastky %spec a %icon existují jen při kompilaci RPM s -DWHY_NOT…
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
rpm --verify perl). Z --force stačí --replacefiles, ale výsledek je stejný. Můžeš zkusit, jak přesně v praxi funguje Obsoletes na soubory (které RPM čerstvě umí od 4.4), ale nevím, zda se jím dá balíčku ukrást soubor -- a i kdyby to šlo, tak to pak komplikuje další upgrady.
Ten problém s perlem se řešil ve fedoří konfernci; nevzpomínám si už, zda vymysleli nějaké lepší řešení.
Nejpřímočařejší cesta k výsledku asi je oprava a rebuild src.rpm perlu.