ESP32-C3 adblock přemění lacinou vývojovou desku ESP32‑C3 na samostatný DNS blokovač nejenom reklamních domén, minimalistickou alternativu k populárnímu Pi-hole. ESP32-C3 adblock místo objemných názvů domén ukládá jejich 40-bitové FNV-1a hashe do flash paměti, které pak binárně prohledává, kontrola jedné domény trvá přibližně 10 milisekund. Blocklist pojme až 537 tisíc domén a lze jej spravovat přes webové rozhraní. Projekt zatím
… více »ArtCraft je sada open source aplikací pro práci s obrázky a videi "inspirovaných" aplikacemi od Adobe. Napsaných v Rustu. Pro MacOS, Windows i Linux. Běží také ve webovém prohlížeči. Aktuálně se jedná o 7 aplikací: PhotoCraft (Photoshop), VectorCraft (Illustrator), FilmCraft (Premiere Pro), LightCraft (Lightroom), PdfCraft (Acrobat), EffectCraft (After Effects) a DesignCraft (InDesign). Zdrojové kódy jsou k dispozici na GitHubu.
Strands Decider 2B je malý open-source model s 2 miliardami parametrů, určený k rychlé klasifikaci vstupů a rozhodování mezi možnostmi, generující odpovědi ve stylu modelu Jev. Strands dosáhl přibližně 72% shody s Jevem na veřejné testovací sadě JevBench (tento benchmark pochopitleně nepředstavuje přímé srovnání s modelem Jev). Zdrojové kódy jsou k dispozici na GitHubu pod licencí Apache-2.0, váhy modelu na Hugging Face.
Ve věku 90 let zemřela americká softwarová inženýrka Margaret Hamiltonová, která vedla tým, jenž vyvíjel letový software pro program Apollo amerického Národního úřadu pro letectví a vesmír (NASA).
Japonský Google rozšířil svou kolekci DYI fyzických klávesnic Gboard o klávesnici ve tvaru běžícího pásu. Proč se mají přesouvat ruce po klávesnici, když se mohou přesouvat klávesy k ruce? Pro zájemce je návod na sestavení včetně STL souborů pro 3D tisk a firmware k dispozici na GitHubu.
Nejnovější X.Org X server 21.1.25 a Xwayland 24.1.14 řeší 12 bezpečnostních chyb.
Google Chrome 155 byl prohlášen za stabilní. Přináší podporu JPEG XL (.jxl). Opraveno bylo 247 bezpečnostních chyb.
Konference OpenAlt 2026 hledá přednášející. Přihlásit přednášky lze do neděle 11. října. Konference proběhne o víkendu 7. a 8. listopadu na půdě Fakulty informačních technologií VUT v Brně. Témata konference jsou: Otevřený a svobodný software, IoT a Hnutí tvůrců, Vzdělávání, Bezpečnost a soukromí, Otevřená společnost, komunity a data, OpenMobility a další.
Byla vydána nová verze 10.6 sady aplikací pro SSH komunikaci OpenSSH. Přináší řadu důležitých bezpečnostních oprav, vylepšení funkcí a oprav chyb. Povoluje hybridní postkvantový podpisový algoritmus ssh-mldsa44-ed25519.
Americká společnost Reflection AI světu představila Beam, open-weight model s 501 miliardami parametrů (z toho 23 miliard aktivních), určený především pro programování a práci autonomních agentů. Podle autorů jejich model nabízí výkon srovnatelný s většími modely při výrazně nižších nárocích na výpočetní výkon. Beam nyní ještě prochází závěrečným testováním, na stránkách Reflection AI se však lze zaregistrovat a získat předběžný přístup. Váhy modelu, dokumentace a nástroje pro vývojáře mají být zveřejněny v průběhu tohoto měsíce.
Během balení rpm se různé věci zapisují do různých adresářů nebo se
v nich hledají. RPM umožňuje flexibilní nastavení adresářové
struktury, pro začátek se však vyplatí seznámit se s tou standardní.
Nainstalujeme-li rpm-build, vytvoří se v /usr/src/RPM
(na RedHatu /usr/src/redhat, jinde případně i jinde)
následující podadresáře:
SPECS – sem se instalují spec soubory.SOURCES – sem se instalují zdrojové kódy a patche.BUILD – do tohoto adresáře se zdrojové kódy
rozbalují (každý do svého podadresáře) a probíhá v něm vlastní
překlad.RPMS – adresář, do nejž se po úspěšné
kompilaci nahrají vytvořené binární balíčky. Přesněji do podadresářů
odpovídajících jejich achitektuře (i386, …,
noarch).SRPMS – sem se případně nahraje vytvořený zdrojový balíček.Do /usr/src/RPM však může zapisovat jen root,
a jelikož k balení rpm není zapotřebí být rootem, nebudeme balit
jako rooti a namísto toho si stejnou adresářovou strukturu vytvoříme
někde v domovském adresáři, řekněme v ~/src/rpm.
RPM vysvětlíme, že ji má používat, přidáním řádku
%_topdir /home/yeti/src/rpm
do souboru ~/.rpmmacros. Kdo nemá uživatelské jméno yeti,
nahradí /home/yeti svým domovským adresářem. Do
/var/tmp, kam se při balení zapisují a dočasně instalují
soubory, sice zapisovat smíme, budeme však chránit životní prostředí
a změníme i adresář pro dočasné soubory:
%_tmppath /home/yeti/tmp
V souboru ~/.rpmmacros můžeme změnit řadu dalších
zajímavých věcí, prozatím se spokojíme s nastavením tvůrce balíku:
%packager Yeti <yeti@physics.muni.cz>
Kdo se nejmenuje Yeti, opět změní na svoje jméno, a především adresu.
Hodnota %_topdir také ovlivňuje, kam se nainstaluje obsah
zdrojového rpm. Nyní tedy můžeme spustit (nebude-li uvedeno jinak, bude se
náš balíček vždy nazývat lobster).
rpm -i lobster-1.10-1.src.rpm
jako obyčejní uživatelé a soubory se objeví
v ~/src/rpm/SOURCES
a ~/src/rpm/SPECS namísto
v /usr/src/SOURCES
a /usr/src/SPECS.
Myslíme-li to s balením vážně, budeme chtít oddělit systém, na
němž pracujeme, od cílového systému, pro nějž kompilujeme – byť
by se lišil jen nainstalovaným softwarem. V tom případě cílový
systém nainstalujeme do alternativního rootu a budeme při balení
a testování používat chroot. rpm a rpmbuild
sice mají argument --root, ten ale podle mne funguje jaksi
zvláštně. Chrootnout se do alternativního rootu přímo příkazem
chroot pracuje spolehlivě – jako obyčejní
uživatelé na to ovšem nemáme práva. Distribuce a významní nezávislí
baliči (např. Dag)
vyvinuli různé nástroje a systémy kompilace oproti čistým instalacím
a ověřování balíčků, které má smysl prostudovat, budete-li se
pouštět do nějakých větších akcí.
Než se pustíme do výroby vlastních balíčků, hodí se umět zkompilovat
ty, u nichž už nám někdo všechno přichystal. Argumenty
rpmbuildu se mírně liší podle toho, z čeho
kompilujeme.
Zdrojový balíček. Máme-li
lobster-1.10-1.src.rpm, binární rpm z něj vytvoříme
rpmbuild --rebuild lobster-1.10-1.src.rpm
Spec soubor a zdrojový kód. Ze zdrojových
kódů v SOURCES a spec souboru kdekoli (obvykle ho
ale budeme mít ve SPECS) zkompilujeme binární balíček
rpmbuild -bb lobster.spec
Ke spec souboru musíme vždy uvést cestu, nehledá se
v SPECS. S -ba namísto
-bb bychom získali binární i zdrojový balíček,
s -bs jen zdrojový balíček.
Tento způsob použijeme nejen při tvorbě vlastních balíčků, ale také když chceme překompilovat balíček například pro jinou distribuci, který vyžaduje úpravy. Zdrojové rpm nainstalujeme, upravíme, co je zapotřebí, a zkompilujeme rpm z „rozložené“ formy.
Tarová koule. Zabalil-li nám nějaký dobrodinec spec soubor do tarové koule se zdrojovým kódem, můžeme ji přímo přebalit do rpm:
rpmbuild -tb lobster-1.10.tar.bz2
Analogicky předchozí možnosti můžeme -tb nahradit
-ta či -ts a získat obě rpm či jen
zdrojové. Každá volba -bněco, co se má udělat se
samotným spec souborem (jsou i další než ty tři uvedené, časem na ně
dojde), má své dvojče -tněco pro spec soubor
obsažený v tarové kouli.

Obrázek shrnuje průběh kompilace a adresáře, jež se účastní výroby RPM balíku ze zdrojového rpm, případně z tarové koule. Adresáře jsou zobrazeny v záhlavích rámečků; rámečky samé ukazují jejich typický obsah. Černé šipky sledují postup kompilace; zelené znázorňují, jak spec soubor řídí jednotlivé její fáze (ty podrobně probereme v další kapitole).
rpmbuilduNelze přehlédnout, že se při kompilaci vypisují do terminálu spousty
věcí. Sám rpmbuild vypisuje na standardní výstup informace
o jednotlivých fázích kompilace a na konci, resp. těsně před
koncem, vypíše, co za balíčky vytvořil:
Wrote: /home/yeti/src/RPM/SRPMS/lobster-1.10-1.src.rpm Wrote: /home/yeti/src/RPM/RPMS/i586/lobster-1.10-1.i586.rpm
Na standardní chybový výstup se pak vypisují všechny spuštěné příkazy
stylem sh -x. Do toho se míchá, co vypisuje na
standardní, resp. chybový výstup ./configure,
make, make install, etc. –
zkrátka pěkný guláš. Zejména z něj nelze snadno vydobýt, jaké balíčky
se nám kde objevily (pokud vůbec), což by se ale často hodilo vědět (volba
--pipe pomůže jen marginálně). Můžeme si pomoci wrapperem
podobným následujícímu, jenž v případě úspěšné kompilace vypíše jen
jména balíčků, selže-li však něco, vypíše na chybový výstup celý log:
#!/bin/bash
outdir=${TMPDIR:-$HOME/tmp}
specfile=$(grep -o '\<[a-zA-Z][-_+a-zA-Z0-9]*\.spec\>' <<<"$@" \
|| { echo "No spec file" 1>&2; exit 1; } | tail -n 1)
log="$outdir/rpmbuild-$specfile-$$.log"
if rpmbuild "$@" &>"$log"; then
sed 's/^Wrote: //;t;d' "$log"
rm "$log"
else
cat "$log" 1>&2
echo Logfile: "$log"
fi
Nástroje: Tisk bez diskuse
Tiskni
Sdílej: