Po pěti a půl letech od vytvoření větve 3.2.x byl zveřejněn výstup nástroje pro vytváření instalátorů Calamares 3.3.0, nezávislého na konkrétních distribucích Linuxu. Vývojáři distribucí obdrželi několik desítek hotových modulů s implementací různých funkcí, které jsou vyžadovány v instalátorech. Kód je napsán v jazyce C++, grafické rozhraní je založeno na knihovně Qt (používá se QML), pro vývoj modulů se mohou používat jazyky C++ a Python.
Calamares nabízí takové možnosti, jako jsou ruční a automatické rozdělení diskových oddílů, flexibilní systém přizpůsobení vzhledu, modulární architektura, velký výběr hotových modulů (od správy bootloaderů až po správu uživatelů). Například existují moduly pro používání NetworkManager, UPower, systemd-boot, GRUB, sgdisk, squashfs-tools a rsync. Instalace může být organizována výměnou oddílu — data jsou kopírována na nový oddíl, který se stává aktivním místo předtím používaného oddílu, což je pohodlné pro testování nových instalací a ponechává možnost návratu na předchozí verzi.
Pro vytvoření vlastního instalátoru na bázi Calamares stačí vybrat hotové moduly nebo napsat své, definovat logiku instalace distribuce a nastavit vzhled. Pro usnadnění a urychlení vývoje mohou být moduly a komponenty Calamares vytvářeny v jazyce Python. Všechna konfigurační data jsou uložena ve formátu YAML. Calamares již používají distribuce jako Manjaro, Lubuntu, Asahi, EndeavourOS, wattOS, Rhino, Nitrux, Siduction, Peppermint OS, GeckoLinux, Chakra, NetRunner, KaOS, OpenMandriva a KDE neon. Projekt se rozvíjí za účasti komunit KDE, Fedora, Kubuntu a Maui.
V novém vydání:
- Zajištěna je plná kompatibilita základního rámce a většiny modulů s Qt 6 a knihovnami KDE Frameworks 6. Pro všechny QML moduly je k dispozici sada souborů QML kompatibilních s Qt6. Zachována je možnost kompilace s Qt5 a KDE Frameworks 5.
- V rozhraní pro výběr balíčků "packagechooser" byla přidána podpora metadat AppStream 1.0.
- V modulu "keyboard" byla implementována možnost výběru použití nastavení X11 nebo DBus služby FreeDesktop locale1. Zajištěno je uchování nastavení rozložení klávesnice pro všechna ne-ASCII rozložení.
- V modulu „dracut“ byla přidána podpora pro nastavení názvu jádra.
- Rozhraní modulů „keyboardq“ a „localeq“ bylo převedeno z ComboBox na widget Drawer.
- Do editoru oddílů (modul „partition“) byla přidána možnost výběru mezi formáty LUKS a LUKS2. Byla zajištěna možnost přeskočit instalaci zaváděcího programu. Byla využita funkčnost knihovny KPMCore 21.12 (KDE Partition Manager).
- Byl přidán modul „zfshostid“ pro generaci /etc/hostid pro ZFS.
- V modulu „bootloader“ byly rozšířeny možnosti pro použití v příkazovém řádku jádra.
- V modulu „displaymanager“ byla ukončena podpora pro správce displeje kdm.
- V modulu „fstab“ byla kompletně přepracována práce s konfigurací /etc/fstab. Mnoho nastavení bylo přesunuto do modulu „mount“.
- Byly aktualizovány požadavky na styl kódování – formátování kódu nyní odpovídá clang-format 15 nebo 16.
- Byly přepracovány prostory názvů používané pro kód v C++ (všechny volání byla přesunuta do prostoru názvů Calamares, odstraněny vazby na prostor názvů CalamaresUtils).
- Jako maska pro substituci byl místo @{var} použit ${var}.
- Knihovna Boost::Python byla odstraněna ze závislostí – pro vývoj v programovacím jazyce Python se nyní používá vestavěná sada vazeb pybind11. Pro obnovení sestavy s Boost::Python lze nastavit proměnnou WITH_PYBIND11=OFF.
Zdroj: opennet.ru
