Komunita kolem Linuxu From Scratch (LFS) vydala nové verze knih s návody na instalaci vlastního linuxového systému ze zdrojových kódů Linux From Scratch 13.0 a Beyond Linux From Scratch 13.0. Pouze se systemd.
Byla vydána nová stabilní major verze 25.12 linuxové distribuce primárně určené pro routery a vestavěné systémy OpenWrt (Wikipedie). Jedná se o nástupce předchozí major verze 24.10. Přehled novinek v poznámkách k vydání. Podporováno je více než 2200 zařízení.
Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za únor (YouTube). Odstraněn byl veškerý kód napsaný ve Swiftu. JavaScriptový engine LibJS byl reimplementován v Rustu.
Byla vydána verze 1.94.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example. Zveřejněny byly výsledky průzkumu mezi vývojáři v programovacím jazyce Rust: 2025 State of Rust Survey Results.
Google zveřejnil seznam 185 organizací přijatých do letošního Google Summer of Code (GSoC). Dle plánu se zájemci přihlašují od 16. do 31. března. Vydělat si mohou od 750 do 6600 dolarů. V Česku a na Slovensku je to 900 dolarů za malý, 1800 dolarů za střední a 3600 dolarů za velký projekt. Další informace v často kladených otázkách (FAQ). K dispozici jsou také statistiky z minulých let.
Byla vydána únorová aktualizace aneb nová verze 1.110 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.110 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Apple představil 13palcový MacBook Neo s čipem A18 Pro. V základní konfiguraci za 16 990 Kč.
Kalifornský zákon AB 1043 platný od 1. ledna 2027 vyžaduje, aby operační systémy požadovaly po uživatelích věk nebo datum narození a skrze API poskytovaly aplikacím informaci, zda je uživatel mladší 13 let, má 13 až 16 let, má 16 až 18 let nebo má alespoň 18 let. Vývojáři linuxových distribucí řeší, co s tím (Ubuntu, Fedora, …).
Konference LinuxDays 2026 proběhne o víkendu 3. a 4. října v Praze v areálu ČVUT v Dejvicích na FIT. Čekají vás desítky přednášek, workshopy, stánky a setkání se spoustou chytrých lidí.
Nové verze webových prohlížečů Chrome a Firefox jsou vydávány každé 4 týdny. Aktuální verze Chrome je 145. Aktuální verze Firefoxu je 148. Od září přejde Chrome na dvoutýdenní cyklus vydávání. V kterém týdnu bude mít Chrome větší číslo verze než Firefox? 😀
Původně se měl tento blogpost jmenovat: "Proč spolu openvswitch a systemd neka..?", ale podařilo se mi to lousknout, tak bych tady chtěl popsat v čem spočíval problém, než to - jako obvykle - zapomenu.
U "staršího" clusteru Peanuts, na kterém jsem rozjížděl openvswitch zhruba před necelým rokem, jsem řešil konfiguraci sítě takto...
root@stroj:~# cat /etc/network/interfaces
auto eth0
iface eth0 inet manual
up ip link set $IFACE up
down ip link set $IFACE down
auto interni
iface interni inet static
pre-up service openvswitch-switch start
address 10.0.0.214
netmask 255.255.255.0
broadcast 10.0.0.255
Vyžaduje to však aby již byl předem vytvořený bridge interni se "zapojeným" síťovým zařízením eth0:
root@stroj:~# ovs-vsctl show
458eb0ea-1825-40de-8e3b-028ea61c0faf
Bridge interni
Port interni
Interface interni
type: internal
Port "eth0"
Interface "eth0"
ovs_version: "2.1.0"
U strojů clusteru Schrot jsem ale narazil na problém, že s touto konfigurací systém vůbec nenajížděl. Při startu končilo spouštění při konfiguraci sítě v nekonečné smyčce - viz snímek:
Nezbylo, než přidat do parametrů jádra při zavádění break, najet do ramdisku, namountovat systémový disk a laborovat se souborem /etc/network/interfaces.
Jak se metodou pokus/omyl ukázalo, příčinou problému byl následující řádek v souboru /etc/network/interfaces:
...
pre-up service openvswitch-switch start
...
Po jeho zakomentování systém normálně najel, ale bez nahozeného portu interni.
Vrtalo mi hlavou proč, až mě napadlo podívat se, zda-li je u systémů staršího clusteru Peanuts nainstalován systemd. Samo že nebyl. Odinstaloval jsem ho, a voilá! Začalo to fungovat.
Síťová konfigurace Schrotu je ale oproti staršímu clusteru Peanuts složitější v tom směru, že jeho stroje lezou ven pouze prostřednictvím jediného nodu. Aby je bylo možné spravovat přes Puppet, musí mít nastavenou maškarádu a povolený forwarding na vnější a vnitřní síťové rozhraní.
Vytvořil jsem tedy jednoduchý skript /etc/network/if-up.d/iptables, který se stará o zavedení pravidel pro iptables a do souboru /etc/sysctl.conf přidal následující dva řádky:
net.ipv4.conf.eth0.forwarding=1 net.ipv4.conf.interni.forwarding=1
Ale ouha! Při startu je akceptováno pouze nastavení pro eth0. Nikoliv pro port interni. Mohl bych sice forwarding povolit jedním parametrem pro všechna rozhraní najednou, to však nepovažuji řešení. Také jsem nebyl spokojen s odinstalováním systemd což nelze považovat za vyřešení problému. Když je s ním schopen koexistovat Pacemaker, tak to musí být řešitelné pro openvswitch.
Při hledání řešení pro NAT jsem narazil v ukázkové konfiguraci souboru /etc/network/interfaces na parametr allow-ovs. Nakouknul jsem tedy do souboru /usr/share/doc/openvswitch-switch/README.Debian.gz, upravil podle něj příslušným způsobem konfiguraci, doinstaloval systemd a restartoval.
root@stroj:~# cat /etc/network/interfaces
allow-ovs interni
iface interni inet static
address 10.0.0.214
netmask 255.255.255.0
broadcast 10.0.0.255
ovs_type OVSBrid
ovs_ports eth0
allow-interni eth0
iface eth0 inet manual
ovs_bridge interni
ovs_type OVSPort
Jak už jsem poznamenal - při konfiguraci rozhraní virtuálního switche je klíčový parametr allow-ovs, kterým se aktivuje síťové rozhraní bridge v ukázkovém příkladu s názvem interni. Kromě obvyklé síťové konfigurace, může obsahovat každá příslušná položka virtuálního switche parametr ovs_type, jimž se implicitně říká, o jaký typ zařízení jde (zda bridge nebo port). A v případě, že se u bridge mají hned po startu nahodit i některé porty parametr ovs_ports s jejich seznamem.
U konfigurace portu (síťového rozhraní) se parametrem allow-interni implicitně řekne, do kterého bridge port patří a tím dojde při spuštění bridge i k jeho nahození.
Tiskni
Sdílej:
TimeoutSec=0, tj. nekonečný timeout.
samba, ntpd a dnsmasq. Postinst skript prostě udělá /etc/init.d/služba restart a služba si to vyloží jako že se má spustit, i když neběží a byla zakázána (přes update-rc.d služba remove).
Výsledná konfigurace je vedlejší produkt hledání řešení jiného problému - povolení forwardingu pro virtuální interface.to mi připomíná tenhle čerstvě spravenej bug - při dostatečně novým jádru a userlandu by to tím pádem už mohlo fungovat všude i bez zvláštních obezliček.
Chtěl jsem tomu dát šanci, protože jinak proti systemd vcelku nic nemám. Jenže za současného stavu by to znamenalo jen další opruz navíc.Já tomu trochu času navíc věnuju, protože používám systemd na gentoo, kde taky ještě zdaleka není doma.
To ovšem sebou nese zase další zpoždění, neboť se snažím ze svých stávajících masterů postupně vydestilovat univerzálně použitelné moduly.Jo to dává smysl.
pre-up service openvswitch-switch startHádám, že tímto vzniknul deadlock. Jelikož systemd dodržuje závislosti služeb mezi sebou, tak spouštění služby z jiné služby je k tomu náchylné. Příkaz service čekal, až openvswitch-switch nastartuje. Ten ale místo startování čekal ve frontě, až doběhne jiná služba, na níž má pořadní závislost. Pokud je skutečně zapotřebí spouštět služby z jiných služeb, hodí se použít
systemctl s parametrem --no-block nebo --ignore-dependencies.
Pokud je skutečně zapotřebí spouštět služby z jiných služeb, hodí se použít systemctl s parametrem --no-block nebo --ignore-dependencies.Za
--no-block jsem dostal od Michala Sekletára vynadáno a měnil jsem to na --ignore-dependencies. Na druhou stranu takové neblokující volání už nebude ani v nejmenším pre-up, takže to nejde použít. Ale --ignore-dependencies normálně blokuje, ne, takže to by mělo případně fungovat, že?
Nevím jestli je to bug nebo feature, ale doufám, že už to opravili.Hláška dne.
Virtuální infrastruktura.
Takhle kupříkladu vypadá konfigurace, jakou můj agent pro Pacemaker zpracovává když spouští virtuální disklessový stroj postel.felk.cvut.cz
primitive postel ocf:dce:kvm \
params workdir="/root" binfile=qemu-system-x86_64 \
ifup="/etc/openvswitch/ovs-ifup" \
ifdown="/etc/openvswitch/ovs-ifdown" \
cpu=kvm64 memory=4096 monitor="/tmp/7013.monitor" \
nic="00:0f:b0:46:23:89,virtio,tap,main,17 00:0f:b0:47:23:89,virtio,tap,main,5" \
serial="file:/var/log/postel.serial" logfile="/var/log/postel.log" \
pidfile="/var/run/kvm_postel.pid" \
errlogfile="/var/log/postel.err" \
meta target-role=Started is-managed=true \
op monitor interval=20 \
op start interval=0 timeout=30 \
op stop interval=0 timeout=30
Skript /etc/openvswitch/ovs-ifup se stará o nahození virtuálního portu a skript /etc/openvswitch/ovs-ifdown zase o jeho zrušení, když Pacemaker stroj vypne. Zařazení virtuálního portu do příslušného bridge a vlan se řeší zpracováním záznamů v parametru nic.