This is the changelog for Calamares. For each release, the major changes and contributors are listed. Note that Calamares does not have a historical changelog -- this log starts with version 3.3.0. See CHANGES-3.2 for the history of the 3.2 series (2018-05 - 2022-08). # 3.3.3 (unreleased) This release contains contributions from (alphabetically by first name): - nobody yet ## Core ## ## Modules ## # 3.3.2 (2024-02-19) This release contains contributions from (alphabetically by first name): - Aaron Rainbolt - Adriaan de Groot - Anke Boersma - Evan James - Jonathan Riddell - Lukas Märdian - Tj ## Core ## - Slideshow support code (QML) now ported to Qt6 and made available as two separate directories of support-code. (thanks Jon) - Compatibility with Qt versions prior to 5.15.5 has been removed. ## Modules ## - *fstab* bug fixed where BTRFS messes up the partition layout. (thanks Tj) - *networkcfg* on NetPlan-enabled systems, configure NetworkManager with the live-system's NetPlan settings. (thanks Lukas) - *partition* module can now also define unencrypted partitions when encryption is used. (thanks Aaron) - *plasmalnf* module ported to Plasma 6 # 3.3.1 (2024-01-15) This release sets `BUILD_APPDATA` and `BUILD_APSTREAM` to default to **OFF**, where previously they defaulted to **ON**. When enabled, the dependencies for both features are required -- previously they would silently switch off if the dependencies were not found. Distributions are strongly advised to check their package-building instructions. This release contains contributions from (alphabetically by first name): - Adriaan de Groot - Aleksey Samoilov - Emir Sari - Simon Quigley ## Core ## - There has been internal code re-organization (e.g. not using functions named `tr()`) to help translation tools. - Strings everywhere have been given more context. (thanks Emir) - In CMake, "view" is no longer accepted as an alias of the module type "viewmodule" in function `calamares_add_plugin()`. - Plain Ubuntu builds have been added to the CI roster. (thanks Simon) - Commands that run in the target system (in the chroot) no longer use the TMP-related environment variables from the host. #2269 ## Modules ## - The *displaymanager* module configuration for `greetd` has some more options now. (thanks Aleksey) # 3.3.0 (2023-12-12) This release contains contributions from (alphabetically by first name): - Adriaan de Groot - Alberto Salvia Novella - Christophe Marin - Evan Maddock - Frede Hundewadt Since this is the first non-alpha release of 3.3.0, we would like to thank all the contributors to a year and a half of alpha releases, six in all. Distributions are **strongly** advices to take the release notes of the alpha's into account as well. ## Core ## - No changes of note. ## Modules ## - *users* and *usersq* no longer support the password requirement 'nonempty'. Use 'minLength: 1' instead. The example configuration allows the user to choose any password at all, but also contains suggestions for other password-requirements schemes. (thanks Alberto) - *users* now can use stronger password hashes, if `crypt_gensalt()` is available in the *crypt* library. (thanks Evan) - *machineid* module supports several variations of writing /etc/machine-id . # 3.3.0-alpha6 (2023-11-16) This release contains contributions from (alphabetically by first name): - Adriaan de Groot - Anke Boersma This is a hotfix release because -alpha5 didn't compile, and Anke repaired the partition unit-tests when building with Qt6. # 3.3.0-alpha5 (2023-11-13) This release contains contributions from (alphabetically by first name): - Adriaan de Groot - Alejo Fernandez - Anke Boersma - Christophe Marin - Emir Sari - Evan James - Gaël PORTAY - Gecko Linux - Jeremy Whiting - Neal Gompa ## Core ## - Boost::Python is no longer a dependency, Calamares uses a bundled copy of pybind11 instead. This speeds up compilation and reducese the dependency tree a great deal. You can set `WITH_PYBIND11=OFF` in the build to keep Boost::Python and all the binary-compatibility problems it entails. - Coding style now wants clang-format 15 or 16, but no longer needs astyle. There is also a clang-tidy file for additional styling support. - Ongoing translation improvements. (thanks Emir) - Translations for bqi (Luri), es_AR (Castellano), eo (Esperanto), ka (Georgian). In **non-release** builds (e.g. between releases, so for developers building directly from git) all translations are enabled, even the ones with no translations at all. - The logging format in the `session.log` file and on-screen is now more similar, although the file contains a lot more per-line information. - The INSTALL_CONFIG option has been restored. It is still a terrible idea to fork the repository to modify the config files, and you probably should have a calamares-config package with those files instead, there are packaging workflows that can usefully patch-and- install configuration files. The option defaults to OFF. ## Modules ## - All QML modules now have a Qt6-compatible set of QML files as well. (thanks Anke) - *packagechooser* supports AppStream 1.0 API. - *unpackfs* now uses the `-S` option to rsync for sparse file support. (thanks Jeremy) # 3.3.0-alpha4 (2023-10-13) Another closing-in-on-3.3.0 release! One of the big changes is that Calamares -- the core and nearly all of the modules in this repository -- are compatible with Qt6. That is, it compiles. Functionality has not been tested, but early-testing distributions are encouraged to submit pull requests to improve the code. This release contains contributions from (alphabetically by first name): - Adriaan de Groot - Anke Boersma - Emir Sari - Evan James - Hector Martin - Ivan Borzenkov - Simon Quigley ## Core ## - Qt6 compatibility. You can choose Qt5 (with KDE Frameworks 5) as before, or choose Qt6 (with KDE Frameworks 6). This means that a Qt6-based Linux distribution can use Calamares without needing an extra version of Qt. Note that some KDE Frameworks are required as well, and those need to be Qt6-based also (and are not released as of September 2023). - QML-based modules are also supported in Qt6, but the QML is likely to be source-incompatible. The *welcomeq* module shipped with Calamares now has two `.qrc` files and uses the `${QT_VERSION_SUFFIX}` variable to pick one of the two depending on the Qt version being used. Other modules are likely to follow the same pattern. - C++ namespaces have been shuffled around and `CalamaresUtils` has been retired. This has an effect on all C++ plugins, since this is neither a binary- nor source-compatible change. ## Modules ## - *keyboard* module can now be explicitly configured to use X11 keyboard settings or the FreeDesktop locale1 DBus service. The latter is most useful for Calamares as an "initial setup" system, not an installer, in a Wayland session. (thanks Hector) - *keyboard* module now writes X11 layout configuration with variants for all non-ASCII (e.g. us) layouts. (thanks Ivan) - *keyboard* module now can configure keyboard switch. (thanks Ivan) # 3.3.0-alpha3 (2023-08-28) This release contains contributions from (alphabetically by first name): - Adriaan de Groot - Aleksey Samoilov - Anke Boersma - Arjen Balfoort - Boria138 - Brian Morison - Emir Sari - Evan Goode - Evan James - Ficelloo - Hector Martin - Jeremy Attall - Johannes Kamprad - Kasta Hashemi - Kevin Kofler - Mario Haustein - Masato TOYOSHIMA - Panda - Paolo Dongilli - Peter Jung - Philip Müller - Shivanand - Sławomir Lach - Sunderland93 - wiz64 ## Core ## - Incompatible module-configuration changes, see #1438. - Branding entries use ${var} instead of @{var} for substitutions, in line with all the other substitution mechanisms used from C++ core. See documentation in `branding.desc`. - Boost::Python requires at least version 1.72. - KDE Frameworks must be version 5.58 or later. - The `INSTALL_CONFIG` option has been removed. If you are installing the example configuration files from the Calamares repository, just stop. That was never a good idea, and you should keep your configs elsewhere. - Progress percentage during install can now be localized. (thanks Emir) ## Modules ## - *dracut* added a configurable kernel name. (thanks Anke) - *initcpiocfg* orders hookds slightly differently. (thanks Peter) - *localeq* moved to using Drawer instead of ComboBox in UI. (thanks Anke) - *keyboardq* moved to using Drawer instead of ComboBox in UI. (thanks Anke) - *netinstall* now has a new *noncheckable* option for groups, which prevent it a group from being checked/uncheckd as a whole. You can still check individual items **in** the group though. (thanks Shivanand) - *partition* can now pick LUKS or LUKS2. (thanks Jeremy) - *zfs* creates a hostid through zgenhostid. - *zfshostid* new module to copy zfs generated /etc/hostid # 3.3.0-alpha2 (2022-08-23) Second alpha release, with updated ABI compatibility checking, some 3.3.0 release goals, new features in modules and important bugfixes. This release contains contributions from (alphabetically by first name): - Adriaan de Groot - Anke Boersma - Evan James - Shivanand - Vitor Lopes ## Core ## A core **TODO** is moving all library code into the `Calamares` namespace, dropping the `CalamaresUtils` namespace. Modern C++ supports nested namespaces, so in some cases we can use those. This has a drastic effect on ABI compatibility, though, as functions move from one namespace to another. This needs to be completed before a 3.3.0 with ABI stability is released. ## Modules ## Module schemas have been updated to reflect all the incompatible changes. # 3.3.0-alpha1 (2022-06-27) Initial 3.3.0 alpha release to check the release scripts &c. This release contains contributions from (alphabetically by first name): - Adriaan de Groot - Aleksey Samoilov - Anke Boersma - Dan Simmons - Evan James - Peter Jung # 3.3.0-pre-alpha (unreleased) # This release contains contributions from (alphabetically by first name): - Anke Boersma - Anubhav Choudhary - Evan James - Vitor Lopes This is a "minor" version change, but the size of the changes is very large. Configuration files from previous versions of Calamares will **certainly** need to be re-validated. Take heed of the many changes in the *Modules* heading, below. Users (distributions) are **strongly** advised to use the tools for configuration validation (`ci/configvalidator.py`) to check that the distribution configuration files follow the current schema. ## Project ## - The C++ code in the project is now formatted with clang-format 12 or 13, with the coding-style as found in `.clang-format`; there are minor differences from the tool, compared to the clang-format 9 usually applied to Calamares 3.2. - The CMake code in the project is now formatted with gersemi 0.7.5. ## Core ## - CMake 3.16, Qt 5.15 are now required; the newer CMake is to support new features (also for KDE Frameworks), Qt is the current LTS version. - Running `calamares -d` no longer enforces a single-application (it is for debugging purposes, after all). - Python 3.6 or later is now required, to allow for F-strings in Python code and allow other tidy-ups in the Python modules. Boost::Python now requires 1.67 or later (for CMake support). - The log file now **always** contains a debug-log, and the `-D` flag primarily controls what is printed to stdout. By default, stdout only gets errors; use `-D6` to match stdout with the file. Use `-D8` to get an extra-verbose log file **and** verbose stdout. ## Modules ## - *bootloader* now supports more options when building the kernel command-line. (Thanks Evan) - *bootloader* no longer supports `@@`-style suffixes for unique-EFI-id generation. Use `${}` instead. - *displaymanager* no longer supports the discontinued *kdm* display manager. - *fstab* configuration has been completely re-done. Many configuration options have moved to the *mount* module. See #1993 - *grubcfg* changed the key *keepDistributor* to *keep_distributor*. Please update configurations. - *mount* now does most of the mounting; options that were in *fstab* have moved here. See #1993 - *oemid* now uses consistent variable replacement (e.g. KMacroExpander) and does not support `@@DATE@@` anymore (use `${DATE}`). - *partition* requires KPMCore 21.12 (e.g. KPMCore 4.2 API, or later). - *partition* can now skip installing the bootloader in more scenarios. #1632 (Thanks Anubhav) - *preservefiles* follows `${}` variable syntax instead of `@@`.