Release of the Calamares installer framework 3.3.0 with Qt6 support

Five and a half years after the formation of the 3.2.x branch, the release of the Calamares installer framework 3.3.0 has been published, independent of specific Linux distributions. Developers of distributions are provided with several dozen ready-made modules implementing various features requested in installers. The code is written in C++, and the graphical interface is based on the Qt library (using QML). For module development, C++ and Python can be utilized.

Calamares offers features such as manual and automatic partitioning modes, a flexible appearance adaptation system, a modular architecture, and a wide selection of ready-made modules (ranging from bootloader management to user management). For example, there are modules for using NetworkManager, UPower, systemd-boot, GRUB, sgdisk, squashfs-tools, and rsync. Installation can be organized by replacing a partition — data is copied to a new partition, which becomes active instead of the previously used partition, making it convenient for testing new installations while leaving the option to roll back to the previous version.

To create a custom installer based on Calamares, it is sufficient to select ready-made modules or write your own, define the distribution installation logic, and configure the appearance. To simplify and speed up development, modules and components of Calamares can be created in Python. All configuration data is stored in YAML format. Calamares is already used for organizing installations of the Manjaro, Lubuntu, Asahi, EndeavourOS, wattOS, Rhino, Nitrux, Siduction, Peppermint OS, GeckoLinux, Chakra, NetRunner, KaOS, OpenMandriva, and KDE neon distributions. The project is evolving with the participation of the KDE, Fedora, Kubuntu, and Maui communities.

In the new release:

  • Full compatibility of the core framework and most modules with Qt 6 and KDE Frameworks 6 libraries has been ensured. A set of Qt6-compatible QML files is provided for all QML modules. The possibility of building with Qt5 and KDE Frameworks 5 has been preserved.
  • Support for AppStream 1.0 metadata has been added to the 'packagechooser' package selection interface.
  • The 'keyboard' module has implemented the option to choose between X11 settings or the FreeDesktop locale1 DBus service. Keyboard layout settings are preserved for all non-ASCII layouts.
  • The 'dracut' module now supports kernel name configuration.
  • The interface of the modules "keyboardq" and "localeq" has been translated from ComboBox to the Drawer widget.
  • The section editor (module "partition") now includes the option to choose between LUKS and LUKS2 formats. It allows skipping the bootloader installation. The functionality of the KPMCore 21.12 (KDE Partition Manager) library has been utilized.
  • The "zfshostid" module has been added to generate /etc/hostid for ZFS.
  • The "bootloader" module has expanded options for use in the kernel command line.
  • Support for the kdm display manager has been discontinued in the "displaymanager" module.
  • The "fstab" module has completely redesigned the handling of the /etc/fstab configuration. Many settings have been moved to the "mount" module.
  • Coding style requirements have been updated — code formatting now conforms to clang-format 15 or 16.
  • Namespaces used for C++ code have been reworked (all calls have been moved to the Calamares namespace, and ties to the CalamaresUtils namespace have been removed).
  • The mask for substitution has switched from @{var} to ${var}.
  • The Boost::Python library has been removed from dependencies — the built-in pybind11 binding set is now used for Python development. To revert the build with Boost::Python, you can set the variable WITH_PYBIND11=OFF.

Source: opennet.ru

Buy reliable website hosting with DDoS protection, VPS VDS servers 🔥 Buy reliable website hosting with DDoS protection, VPS VDS servers | ProHoster