Na vijfeneenhalf jaar sinds de oprichting van de 3.2.x tak is de release van de Calamares 3.3.0 installer creation tool gepubliceerd, die niet afhankelijk is van specifieke Linux-distributies. Ontwikkelaars van distributies hebben toegang tot tientallen kant-en-klare modules die verschillende functionaliteiten bieden die in installers worden gevraagd. De code is geschreven in C++, de grafische interface is gebaseerd op de Qt-bibliotheek (maakt gebruik van QML), en voor het ontwikkelen van modules kunnen C++ en Python worden gebruikt.
Calamares biedt mogelijkheden zoals handmatige en automatische schijfpartitionering, een flexibele systeem voor het aanpassen van de uitstraling, een modulaire architectuur en een ruime keuze aan kant-en-klare modules (van het beheren van bootloaders tot het beheren van gebruikers). Er zijn bijvoorbeeld modules voor het gebruik van NetworkManager, UPower, systemd-boot, GRUB, sgdisk, squashfs-tools en rsync. De installatie kan worden georganiseerd door een partitie te vervangen - gegevens worden gekopieerd naar een nieuwe partitie, die actief wordt gemaakt in plaats van de eerder gebruikte partitie, wat handig is voor het testen van nieuwe installaties, terwijl er de mogelijkheid blijft om terug te keren naar de vorige versie.
Om een eigen installer op basis van Calamares te maken, is het voldoende om kant-en-klare modules te kiezen of eigen modules te schrijven, de installatie-logica van de distributie te bepalen en de uitstraling in te stellen. Om de ontwikkeling te vergemakkelijken en te versnellen, kunnen modules en componenten van Calamares worden gemaakt in Python. Alle configuratiegegevens worden opgeslagen in YAML-formaat. Calamares wordt al gebruikt voor de installatie van distributies zoals Manjaro, Lubuntu, Asahi, EndeavourOS, wattOS, Rhino, Nitrux, Siduction, Peppermint OS, GeckoLinux, Chakra, NetRunner, KaOS, OpenMandriva en KDE neon. Het project wordt ontwikkeld met de medewerking van de gemeenschappen van KDE, Fedora, Kubuntu en Maui.
In de nieuwe release:
- Volledige compatibiliteit van het basisframework en de meeste modules met Qt 6 en de KDE Frameworks 6 bibliotheken is gegarandeerd. Voor alle QML-modules is een set compatibele QML-bestanden met Qt6 beschikbaar. De mogelijkheid om te bouwen met Qt5 en KDE Frameworks 5 blijft behouden.
- In de verpakkingskeuze-interface 'packagechooser' is ondersteuning voor AppStream 1.0 metadata toegevoegd.
- In de module 'keyboard' is de mogelijkheid geïmplementeerd om de instellingen van X11 of de DBus-service FreeDesktop locale1 te gebruiken. Er is gezorgd voor het opslaan van toetsenbordindelingsinstellingen voor alle niet-ASCII indelingen.
- In de module 'dracut' is de ondersteuning voor het instellen van de kernnaam geïntroduceerd.
- De interface van de modules «keyboardq» en «localeq» is vertaald van ComboBox naar de Drawer-widget.
- In de sectie-editor (module «partition») is de mogelijkheid toegevoegd om te kiezen tussen de formaten LUKS en LUKS2. Er is een optie toegevoegd om de installatie van de bootloader te overslaan. De functionaliteit van de KPMCore 21.12-bibliotheek (KDE Partition Manager) is ingezet.
- De module «zfshostid» voor het genereren van /etc/hostid voor ZFS is toegevoegd.
- In de module «bootloader» zijn de opties voor gebruik in de opdrachtregel van de kernel uitgebreid.
- In de module «displaymanager» is de ondersteuning voor de displaymanager kdm stopgezet.
- In de module «fstab» is de werking met de configuratie /etc/fstab volledig herzien. Veel instellingen zijn naar de module «mount» verhuisd.
- De eisen voor de coderingstijl zijn bijgewerkt — de codeformattering voldoet nu aan clang-format 15 of 16.
- De namespaces die worden gebruikt voor C++-code zijn herschikt (alle aanroepen zijn verplaatst naar de namespace Calamares, bindingen aan de namespace CalamaresUtils zijn verwijderd).
- In plaats van @{var} is ${var} als substitutiemasker gebruikt.
- De Boost::Python-bibliotheek is verwijderd uit de afhankelijkheden — voor ontwikkeling in Python wordt nu de ingebouwde pybind11-binding gebruikt. Om de Build met Boost::Python terug te krijgen, kan de variabele WITH_PYBIND11=OFF worden ingesteld.
Bron: opennet.ru
