From 419be4df25bc6fcc1958cb6e44afc1b9e64fce71 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 16 Sep 2021 11:01:30 +0200 Subject: [PATCH] 3.3: start a new changelog --- CHANGES | 1535 +------------------------------------------------- CHANGES-3.2 | 1544 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 1549 insertions(+), 1530 deletions(-) create mode 100644 CHANGES-3.2 diff --git a/CHANGES b/CHANGES index 415424592..d9e8bffc4 100644 --- a/CHANGES +++ b/CHANGES @@ -4,1541 +4,16 @@ 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.2.0. The release notes on the -website will have to do for older versions. +changelog -- this log starts with version 3.3.0. See CHANGES-3.2 for +the history of the 3.2 series (2018-05 - 2021-12). -# 3.2.43 (unreleased) # +# 3.3.0 (unreleased) # This release contains contributions from (alphabetically by first name): - - Joe Kamprad + - No external contributors yet ## Core ## - - Translations have been made more consistent. In particular, some *OK*, - *Yes*, *No* and *Cancel* buttons that were previously untranslated - or "stuck" in the language that Calamares started in, are now - changed to the current language as selected in the welcome page. + - No core changes yet ## Modules ## - No module changes yet - - -# 3.2.42 (2021-09-06) # - -This release contains contributions from (alphabetically by first name): - - Anke Boersma - - Artem Grinev - - Nico 'dr460nf1r3' (new contributor, welcome!) - - Waneon Kim (new contributor, welcome!) - -## Core ## - - No core changes yet - -## Modules ## - - BTRFS partitions are no longer listed as "check in phase 2" in - the *fstab* module. (Thanks Nico) - - The *keyboard* module (and *keyboardq*) now pick an English layout - (with Rupee) for keyboards when the language is English and locale is India, - rather than Hindi layout. - - The *localeq* module had the i18n.qml rewritten to make it easier - to customize. A bug in the layout has been fixed, and the overall - look has been updated. - - *networkcfg* now translates the "live user" on an ISO to the regular - user on the installed system, so that network configuration changes - made in the live system are automatically used after installation. #1755 - - *partition* no longer allows you to delete an extended partition with - children (which led to crashes). #1749 (Thanks Artem) - - *partition* complains in more detail about the state of the UEFI - boot partition (under manual partitioning schemes). #1761 - - *welcome* can now check multiple URLs to determine if internet connectivity - is available. It is still recommended to check the distro home-page or - some special "ping" page of the distro, although that has some privacy - implications; using example.com or google.com may work as well. Listing - multiple URLs will ping each of them in turn until one succeeds. #1669 - - The work to make a QML version available for all view modules is almost - completed. Two new QML modules have been added *packagechooserq* and *summaryq*. - Summaryq brings the option to present the summary page in a customizable - way, with a bit more of a contemporary look. Packagechooserq adds the option - to preselect an item and displays all options in one overview. - (Thanks Anke) - - -# 3.2.41.1 (2021-08-05) # - -This is a hotfix release for a crash in the *partition* module, reported on -KDE neon. #1746 - - -# 3.2.41 (2021-07-31) # - -This release contains contributions from (alphabetically by first name): - - Anke Boersma - - Camilo Higuita - -## Core ## - - The (re)translation framework has been internally re-vamped to be - less resource-intensive and to work with all QObjects, not just - widgets. Consumers of the translations framework are expected to - set up the event filter on the top-level widget(s) manually. Since - Calamares and the Calamares-test-applications have been adjusted already, - no further action is needed. - -## Modules ## - - When the *keyboard* module is activated, it no longer replaces - an explicit user choice (e.g. for a Belgian layout) by a guessed-for- - this-language layout (e.g. Danish if you're installing in Danish). - - Logic for handling installation lists has been moved around in the - *packages* module so that package managers can, in principle, - adjust how to handle critical and non-critical package lists. - - In the *partition* module, translation code has been simplified. - - The *usersq* module has had a fair bit of QML rewritten to make it easier - to customize the colors used by the module in a consistent way. - (Thanks Anke) - - *Welcome* now uses a translated message from the Config object, - increasing the sharing between widgets- and QML-modules. - - -# 3.2.40 (2021-07-14) # - -This release contains contributions from (alphabetically by first name): - - Anke Boersma - - Anubhav Choudhary (SoK success!) - - Emmanuel Arias (new contributor! welcome!) - - Erik Dubois - - Jerrod Frost (new contributor! welcome!) - - Jia Chao (new contributor! welcome!) - - Joe Kamprad - - Lisa Vitolo (blast from the past!) - - Omer I.S. (new contributor! welcome!) - -In project news, chat (instant-messaging) communications has largely -moved to Matrix and Libera.Chat. CI notifications -- issues and build -results -- are sent to Matrix only. - -## Core ## - - The CMake modules for consumption by external modules (e.g. the - calamares-extensions repository, but also any other modules built - by distro's for internal use) now support consistent skip-module - behavior and reporting. #1641 (one tiny part of this change) - - In global storage, the *filesystem_use* key now has an API in - libcalamares to systematically mark filesystem (types) as "in use" - or not. This, in turn, means that modules can depend on that information - for other work (e.g. removing drivers for unused filesystems). #1635 - - The "upload log file" now has a configurable log-file-size. (Thanks Anubhav) - -## Modules ## - - *bootloader* can now install an aarch64 (ARM) compatible EFI GRUB. (Thanks Jia) - - *displaymanager* example configuration has been shuffled around a bit, - for better results when the live image is running XFCE. Also lists - more potential display managers. #1205 (Thanks Erik) - - *keyboard* now switches on an alternate `en_US` keyboard layout when - Arabic or Hebrew is selected as primary layout. (Thanks Omer) - - *localeq* now has a fully functional offline option (alongside the default - interactive map option, which requires internet). - - The *netinstall* module can now fall back to alternative URLs when - loading groups data. The first URL to yield a non-empty groups - collection is accepted. No changes are needed in the configuration. #1673 - - *packagechooser* can now integrate with the *packages* module; that - means you can specify package names to install for a given selection, - and the regular package-installation mechanism will take care of it. - Legacy configurations that use *contextualprocess* are still supported. - See the `packagechooser.conf` file for details. #1550 - - A long-neglected pull request from Lisa Vitolo for the *partition* - module -- allowing to set filesystem labels during manual partitioning -- - has been revived and merged. - - The *partition* manager has had a long-standing bug with partition-flags - and manual partitioning resolved. This may help resolve some installation - issues on UEFI systems. #1724 - - *usersq* is further implemented and can now be used for a successful install. - Not all warning messages available in the regular users module are implemented. - - -# 3.2.39.3 (2021-04-14) # - -A minor bugfix tweak release. Since this contains yet **another** -autologin-related fix, and there is nothing large enough to justify -a 3.2.40 release yet, add it to the growing tail of 3.2.39. (Reported -by Joe Kamprad, #1672). Also fixes a regression from 3.2.28 in -localized packages (e.g. *package-LOCALE* did not work). - - -# 3.2.39.2 (2021-04-02) # - -This is **another** hotfix release for issues around autologin .. -autoLogin, really, since the whole problem is that internal capitalization -changed. An unrelated bug in writing /etc/default/keyboard was -also fixed. (Reported by pcrepix, #1668) - - -# 3.2.39.1 (2021-03-30) # - -This hotfix release corrects a regression in the *displaymanager* -module caused by changes in the *users* module; autologin was -internally renamed and no longer recognized by the *displaymanager* -module. (Reported by Erik Dubois, #1665) - - -# 3.2.39 (2021-03-19) # - -This release contains contributions from (alphabetically by first name): - - Matti Hyttinen - -## Core ## - - A *packages* service has been added to the core, for use by - *netinstall* module and any others that need to set up - package information for the *packages* module. - -## Modules ## - - The *mount* module has gained a configurable setup for btrfs volumes. - If your distro has a default-to-btrfs setup, it can skip the hard- - coded setup (which Calamares has had for a long time with @home - and similar) and introduce a custom btrfs configuration through the - `mount.conf` file. See issues #1659 and #1661 for warnings about - using this in production. - - *netinstall* now supports fallbacks for the groups data. - Instead of a single URL, multiple URLs may be specified in - a list and Calamares goes through them until one is successfully - retrieved. Older configurations with a single string are - treated like a one-item list. #1579 - - The *usersq* module now connects to the internal configuration - object and may be usable for regular installations. - - -# 3.2.38.1 (2021-03-15) # - -This hotfix release is for this item in the release notes of 3.2.38: - - The .desktop file for Calamares now makes a longer trip, calling - `sh -c "pkexec calamares"`; distributions may still need to adjust. -The change had been lost while updating other files. It has been restored -in `calamares.desktop` and `calamares.desktop.in`. (Reported by Erik) -Other minor changes and fixes: - - presets in the *users* module show the hostname, too, - - translations update for Korean, Ukranian and Chinese (zh_TW). - - -# 3.2.38 (2021-03-14) # - -This release contains contributions from (alphabetically by first name): - - Anke Boersma - - Anubhav Choudhary - - Neal Gompa - -## Core ## - - Uploading your log files (in case of installation failure) has been - expanded and is now more configurable. Users should still take care - when uploading logs, and distro's should configure a URL with - no public viewing of those logs. (Thanks Anubhav) - - The .desktop file for Calamares now makes a longer trip, calling - `sh -c "pkexec calamares"`; distributions may still need to adjust. - -## Modules ## - - A new QML-based *finishedq* module has been added. (Thanks Anke) - - The *packages* module no longer supports *urpmi*; no Calamares- - consumers with that package manager seem to exist. (Thanks Neal) - - The *users* module now can set a fixed username and prevent editing. - The *presets* configuration entry in `users.conf` can set a *loginName* - and a *fullName* and (independently) enable or disable editing of - that value. You can, for instance, set *loginName* to "manjaro" if - you like; the user can change it afterwards. You could set the - *loginName* to "oem" and prevent editing it as well. #942 - - -# 3.2.37 (2021-02-23) # - -This release contains contributions from (alphabetically by first name): - - benne-dee - -## Core ## - - Calamares has a table of 'best guess' languages for each country - and when GeoIP is enabled, it will automatically select that - country's language as default -- the user can of course pick - a different one. The 'best guess' is based on Unicode / ISO - data, which is sometimes dubious. Based on some personal notes, - the 'best guess' language for Belarus has been changed to Russian. - - Calamares has a table of 'best guess' keyboard mappings, - allowing native language input. However, usernames and - passwords should be in US-ASCII (this is a limitation of - the login system -- **some** parts of the system will support - non-ASCII input, but it's better safe than sorry). - Add Greek to the list of languages that needs US-ASCII - in addition to native input. - - The CI infrastructure now builds Calamares and Calamares-extensions - on a nightly basis. - -## Modules ## - - The *netinstall* module has a YAML schema, allowing packagers - to validate and verify their netinstall configurations before - shipping an ISO (or writing bug reports). Thanks benne-dee. - - The *finished* module has been heavily refactored, opening - the way to a QML-based version of the same module. This is - also preparatory work for allowing packagers (e.g. PostmarketOS) - to customize the messages on the finished page. - - -# 3.2.36 (2021-02-03) # - -This release contains contributions from (alphabetically by first name): - - Anubhav Choudhary - - benne-dee - - Gaël PORTAY - - Jonas Strassel - - Kevin Kofler - - Matti Hyttinen - - Neal Gompa - -## Core ## - - It is now possible to hide the *next* and *back* buttons during - the "exec" phase of installation. Thanks Anubhav. - - The Calamares CI has migrated to GitHub actions. Thanks Jonas. - -## Modules ## - - *bootloader* now uses the current file names for the UEFI Secure Boot - shim instead of obsolete ones. - - The *mount* module creates swap in its own subvolume, if btrfs is used. - Thanks Matti. - - *partition* includes more information about what it will do, including - GPT partition types (in human-readable format, if possible). Thanks Gaël. - - Some edge-cases with overlay filesystems have been resolved in the - *partition* module. Thanks Gaël. - - During the creation of filesystems and partitions, automounting is - turned off (if DBus is available, and the host system supports - KDE Solid automount control). This should reduce the number of - failed installations if automount grabs partitions while they are - being created. The code is prepared to handle other ways to control - automount-behavior as well. - - -# 3.2.35.1 (2020-12-07) # - -This release contains contributions from (alphabetically by first name): - - Anubhav Choudhary - - Matti Hyttinen - -Some strange string artifacts appeared, leading to `{1?}` being -displayed in various user-facing messages. These have been removed -and the translations updated. - -## Modules ## - - The *initcpiocfg* module would sometimes configure the system to ask - for a passphrase, when none is needed. - - -# 3.2.35 (2020-11-30) # - -This release contains contributions from (alphabetically by first name): - - Clarissa Borges - - Matti Hyttinen - -A new kind of issue template has been added for Calamares, -for reporting (and adding tests for) usability issues. Thanks -to Clarissa for leading that effort. - -## Core ## - - No core changes yet - -## Modules ## - - The *partition* module now supports a not-full-disk-encryption setup, - where `/boot` is not encrypted, but the rest of the system is. - - The *plasmalnf* module has been substantially rewritten, so that it - can support a QML version of the module in future. The UI has changed - a little, and now displays more themes than before. - - -# 3.2.34 (2020-11-16) # - -This release contains contributions from (alphabetically by first name): - - Artem Grinev - - Gaël PORTAY - -## Core ## - - No core changes yet - -## Modules ## - - The *keyboard* module had a regression in which it no-longer painted - the keycaps in the keyboard preview. (reported by Vinnie) - - The *plasmalnf* module did not set all of the look-and-feel values - in the target system. (reported by Bluestar Linux) - - In the *users* module, warnings about the strength of the password - are now correctly pluralized when possible. - - In the *users* module, if ICU is installed, the user's full name is - automatically transliterated to US-ASCII (for some locales; this will - need tweaking) so that the login name is acceptable. (Thanks Artem) - - -# 3.2.33 (2020-11-09) # - -This release contains contributions from (alphabetically by first name): - - Anke Boersma - - Andrius Štikonas - - Artem Grinev - - Gaël PORTAY - - Matti Hyttinen - - TTran Me - -## Core ## - - Calamares now sets the C++ standard for compilation to C++17; this - is for better compatibility and fewer warnings when building with - modern KDE Frameworks and KPMcore 4.2.0. - - Vietnamese translations have been added. Welcome! (Thanks TTran) - -## Modules ## - - The *initcpiocfg* module should support plymouth with encryption - now. (Thanks Matti) - - The *keyboard* and *keyboardq* modules now share backend code - and handle non-ASCII layouts better (for setting passwords - and usernames). (Thanks Artem) - - Various cleanups and documentation improvements in the *partition* - module, and configurable GPT name for swap. (Thanks Gaël) - - A long-standing bug related to GPT partition flags in the - *partition* module has been resolved. #1327 #1267 - - The *users* module now has a more detailed way to specify - user groups -- which may be system groups rather than user-GIDs. - A new option in each group can require that the group already - exists in the target system, allowing for better consistency checks - with the squashfs. #1523 - - -# 3.2.32.1 (2020-10-17) # - -This is a release to address source-incompatible changes in KPMcore 4.2.0, -which was released just before Calamares 3.2.32 and had not yet been -compile-tested. There is also one changed message in the translations, -reported by Yuri Chornoivan. - - -# 3.2.32 (2020-10-16) # - -This release contains contributions from (alphabetically by first name): - - Fabian Tomat - - Gaël PORTAY - -## Core ## - - When doing GeoIP lookups, Calamares pretends to be Firefox. - This resolves an issue where the GeoIP provider was refusing - QNAM connections with the default User-Agent. - - New translation available, Friulian. Welcome! - -## Modules ## - - The *netinstall* module has some tricky configuration files; - it now complains about more cases of bad syntax or poor structure. - - The *partition* module can now be constrained to work only with - a particular kind of partition table. (thanks Gaël) - - The *partition* module is a little more resilient to variations - in btrfs notation from os-prober. - - The *shellprocess* module now supports having a different progress - message (other than "Shell Processes Job") through the config file. - - - # 3.2.31 (2020-10-06) # - -This release contains contributions from (alphabetically by first name): - - Corentin Noël - - kadler15 (new contributor! hi!) - -## Core ## - - At the start of the *exec* phase, an overview is given of the - various job weights, which allows you to tweak the overall - progress reporting during the installation. - - Problems with running Calamares on a 1-core single CPU have been resolved. - -## Modules ## - - The *keyboard* module now recognizes Turkish "F" layout and - will set the vconsole keyboard layout correctly even if xkb - keymaps are not found. - - The *machineid* module, which generates UUIDs for systemd and dbus - and can generate entropy files (filled from `/dev/urandom` in the host - system) now supports more than one entropy file; generate them as needed - (or copy a fixed value to all, depending on *entropy-copy*). Deprecate - *entropy* (which generates a specific output file) as too inflexible. - - In the *partition* module, swap can now be chosen as *file*, which is - **not** create a swap partition, but write a `/swapfile` in the root - directory, 512MiB large, and set that as swap. There is as yet no - "smarts" about the size of the swap file. - - Multiple problems in the *partition* module around partition - sizing have been resolved by Corentin Noël. - - The *preservefiles* module documentation did not match the functionality, - and when used, didn't work right. #1521 (thanks kadler15) - - Progress reporting from the *unpackfs* module has been revamped: - it reports more often now, so that it is more obvious that files - are being transferred even when the percentage progress does not - change. - - The *unpackfs* module now supports a *weight* setting for each - of the unpack entries. For a single entry this does not matter, - but if there are multiple entries it allows tweaking the relative - progress between each entry. - - -# 3.2.30 (2020-09-03) # - -This release contains contributions from (alphabetically by first name): - - Anke Boersma - - Asif Mahmud Shimon - - Manzoor Ahmed Munawar - - Sai Kamal - - Victor Ibragimov - -This release has two giant source-code changes that have no effect -on functionality, but do touch each and every source file: - - SPDX headers for licensing information, following the standard - set by REUSE.software ; all source files and resources have - SPDX-License-Identifier information and copyright notices. All - of the boilerplate texts have been removed. - - Calamares coding style has been mechanically applied to the entire - codebase. This was already done to most of it, but there were - some hold-outs. - -## Core ## - - Network access status is deprecated in Qt 5.15's QNetworkAccessManager, - and was not useful already in some previous versions. Replace its - use in the Calamares network service by testing-it-ourself directly - via a synchronous ping. (Thanks to Asif) - - New Telugu translation. (Thanks to Sai) - - Urdu translation started. (Thanks to Manzoor) - - Timezones translated in Tajik and Russian. (Thanks to Victor) - -## Modules ## - - *keyboardq* and *localeq* improvements. (Thanks to Anke) - - *users* module did not set up autologin properly. This is yet another - regression left over from 3.2.28. (Reported by Phil and pcrepix, #1498) - - *welcome* module now sets the *LANG* key in the locale configuration - (which is shared with the *locale* module and consumed by the - *localecfg* module). This makes it feasible to drop the *locale* - module and still set the installed system's language to the language - selected in Calamares. (Reported by FerenOS) - - -# 3.2.29 (2020-08-20) # - -This release contains contributions from (alphabetically by first name): - - Asif Mahmud Shimon (new contributor! hi!) - -## Core ## - - Edge case in extracting string-lists from YAML, reported and fixed - by Asif (#1491). - - Progress reporting is now more flexible. Modules can have a weight - assigned to them in the descriptor; module instances can have a weight - assigned which overrides the module descriptor. When jobs are run - for a module instance, the jobs report progress pro-rated by the - module's weight. Or in other words, it is now possible to tweak - the amount of the overall progress bar that different modules fill. - The default settings give unpackfs a weight of 12. (#1176) - -## Modules ## - - The *users* module did not read the *defaultGroups* correctly. - Fixed by the string-lists change mentioned above. - - - # 3.2.28.3 (2020-08-18) # - -Another hotfix, for more issues reported by Marco Obaid. Users -were not having a password set (#1489) - - -# 3.2.28.2 (2020-08-12) # - -A second hotfix, for autologin support -- the autologin group was not -created in the target system before assigning the user to it. Reported -by Marco Obaid. - - -# 3.2.28.1 (2020-08-10) # - -This is a hotfix release for #1482 and #1483, where no user was -created during installation and a chmod was failing (resulting in -a failed installation). Reported by Jonathan Riddell. - -With incidental improvements in SPDX tagging (code licensing) -and some new icon options for the welcomeq and localeq modules. - - -# 3.2.28 (2020-08-09) # - -This release contains contributions from (alphabetically by first name): - - Anke Boersma - - apt-ghetto - - Victor Ibragimov - -## Core ## - - A new object *Network* is available to QML modules in `io.calamares.core`. - It exposes network status through the *hasInternet* property. - - Welcome to Tajik translations. The Tajik language has quickly reached - 100% completion. Thanks Victor! - - Welcome to [Interlingue](https://en.wikipedia.org/wiki/Interlingue). - The translation is at an early stage. Qt does not support language - code *ie* though, so it may take some time to be integrated (much - like Esperanto wasn't supported until Qt 5.12). - -## Modules ## - - The *locale* module has been completely redone on the inside. - Users should see no changes. #1391 - - The *localeq* module uses the redone internals of the locale module. - It can now be used to set timezone, language and locale information - and is a suitable alternative module. Thanks to Anke Boersma who did - the work of figuring out maps. Note that the map uses several GeoIP - and GeoData providers and you may need to configure the URLs - with suitable usernames for those services. #1426 - - Both *locale* and *localeq* can now be configured to use the system's - timezone setting -- this can be useful to avoid both hard-coding an - initial zone and doing extra GeoIP lookups, in the case where the - live system already does so. #1391 - - The *locale* and *localeq* modules have additional machinery for - timezone lookups; please report cases where clicking on the map - returns an obviously bogus timezone (up until this release, for - instance, Cape Town). - - The *users* module no longer accepts `root` as a username. #1462 - - The *keyboardq* module is now more inline with the look of the rest - of the Calamares modules, use of a background image is removed. - - The *grubcfg* module now understands `/etc/default/grub.d`. #1457 - - -# 3.2.27 (2020-07-11) # - -This release contains contributions from (alphabetically by first name): - - Gaël PORTAY - - Vitor Lopes (new! welcome!) - -## Core ## - - QML modules with no surrounding navigation -- this is basically a - special case for full-screen Calamares -- now have margins suitable - for full-screen use. - - PythonQt modules are increasingly on the way out. - -## Modules ## - - The Manjaro package manager *pamac* has been added to those supported by - the *packages* module. - - The *netinstall* module has had some minor UI tweaks. - - Partitioning now tries harder to avoid floppy drives. - - -# 3.2.26.1 (2020-06-23) # - -This is a hotfix release for undefined behavior caused by an -uninitialized integer variable. It includes new translations -and features as well since those arrived independently. - -This release contains contributions from (alphabetically by first name): - - Anke Boersma - - Gaël PORTAY - -## Core ## - - Welcome to Azerbaijani translations. These are available - in two variations, *Azerbaijani* and *Azerbaijani (Azerbaijan)*. - [Wikipedia Azerbaijani](https://en.wikipedia.org/wiki/Azerbaijani_language#North_vs._South_Azerbaijani) - has a nice overview. - - Warnings while building with Qt 5.15 have been much reduced. - -## Modules ## - - *partitioning* has one case of undefined behavior (UB) due - to a missing integer-initialization. (Thanks Gaël) - - *keyboardq* QML module now works correctly. (Thanks Anke) - - -# 3.2.26 (2020-06-18) # - -This release contains contributions from (alphabetically by first name): - - Anke Boersma - - Gaël PORTAY - - Pablo Ovelleiro Corral - - Philip Müller - -## Core ## - - The default branch for Calamares source repositories (calamares - and calamares-extensions) is now *calamares*. - - External modules can now be built again, outside of the Calamares - source and build-tree. - - The repository *calamares-tools* has been removed. The idea behind - the tooling was to provide schema validation for Calamares configuration - files. This has been merged into the primary repository, where it - is now part of the test suite. - -## Modules ## - - *locale* put some more places into the correct timezone **visually**; - for instance Norfolk Island gave up UTC+11.5 in 2015 and is now - UTC+11, but Calamares still showed it in a zone separate from UTC+11. - - *localeq* can now properly switch between on & offline mode, - it detects internet status through js. - - *packages* gained support for the Void Linux package manager, - *xbps*. (thanks Pablo) - - *tracking* now supports kuserfeedback configuration. - - *welcomeq* added the GEOIP configuration option, so locale can be - initially set according to IP address. - - -# 3.2.25 (2020-06-06) # - -This release contains contributions from (alphabetically by first name): - - Anke Boersma - - Callum Farmer - - FLVAL - - Gaël PORTAY - -## Core ## - - The slideshow in `branding.desc` can be configured with QML (recommended, - as it has been for the past umpteen releases) or with a list of - images (new). - - It is possible to turn off all the new QML code -- navigation, slideshow, - QML-based modules -- with a single `-DWITH_QML=OFF` at CMake time. - This removes QML from Calamares' dependency footprint (but only saves - 200kB in Calamares itself). - - Tests have been extended and now support a tests/CMakeTests.txt file - for fine-tuning tests for Python modules. - - SPDX identifiers are used much more widely and consistently in Calamares. - (thanks Callum) - -## Modules ## - - The QML based *welcomeq* module is now a viable alternative to the - *welcome*(widgets based) module. Using QML files means it no longer - is needed to have pop-up windows for additional information or warnings, - all loads in the Calamares window itself. Additional features include the - option to customize the *About* info and load files like Release Notes - direct into Calamares, QML files added to the branding directory can be used. - - The *welcome* and *locale* modules that do GeoIP lookup can now also - use "fixed" style; this just negates the GeoIP lookup and substitutes a - constant (fixed) value; useful for testing specific locales. - - The *keyboard* module no longer uses *ca_eng* keyboards in Canada by - default, but sticks to the *us* keyboard. #1419 - - -# 3.2.24 (2020-05-11) # - -This release contains contributions from (alphabetically by first name): - - Bill Auger - - Gaël PORTAY - - Luna Jernberg - - Philip Müller - -## Core ## - - There is now a bash-completions script for Calamares; turn on - the (CMake-time) option INSTALL_COMPLETION to get it. (Thanks Gaël) - - The *productWallpaper* setting is documented and works. (Thanks Bill) - - GlobalStorage is available to QML modules as `Global`. - - The height of the navigation bar in QML can be set within the - QML code for the navigation; if not set, try something sensible. - - A regression in the requirements-checker which could block the - installer from proceeding without telling the user **why** it - was blocked, has been resolved. - -## Modules ## - - The *bootloader* module can force a UEFI-based machine to boot into - the newly-installed system. #1394 (Thanks Gaël) - - *partition* Pop-ups about boot flags use the right flag names. #1192 - - -# 3.2.23 (2020-04-17) # - -This release contains contributions from (alphabetically by first name): - - FLVAL - -## Core ## - - Some strange annotations were added to the *About* dialog text in - all the translations, like `{1?}`. These have been removed again. - -## Modules ## - - *locale* module had some errors in timezone data, where clicking - on a city would select a different timezone. Some of these are - now fixed (thanks FLVAL). #1374 - - *netinstall* supports a wider variety of package naming schemes, - and is more flexible in loading a `netinstall.yaml` that is copied from - the example configuration file, *groups* key and all. #1369 - - *users* module logs a full error message from libpwquality if something - is wrong internally. - - -# 3.2.22 (2020-04-08) # - -This release contains contributions from (alphabetically by first name): - - Anke Boersma - - Camilo Higuita - -## Core ## - - Both the sidebar (on the left) and the navigation buttons (along the - bottom of the window) can now be configured to use the traditional - *widgets*, to use *qml*, or *hidden* from view (hiding the navigation - is not recommended unless you have a pure-QML UI to run inside - Calamares). The example QML that is compiled into Calamares has - been improved. To use your own QML, put files `calamares-sidebar.qml` - or `calamares-navigation.qml` into the branding directory. - - The sidebar and navigation can now be placed on any side of the - main window. This is probably only useful for QML-based UIs. - See `branding.desc` for details. - -## Modules ## - - The *welcomeq* module has been improved with better layout and - nicer buttons in the example QML form. (Thanks to Anke Boersma) - - The *keyboardq* and *localeq* modules now provide some QML for - configuring these parts, although they are still very primitive. - - *netinstall* has had some minor layout fixes. - - *unpackfs* has much more detailed progress reporting and no - longer jumps around strangely in overall progress. - - *partition* now correctly marks a partition as bootable in BIOS + MBR - installs. #1175 - - -# 3.2.21 (2020-03-27) # - -This release contains contributions from (alphabetically by first name): - - Anke Boersma - - Camilo Higuita - - Gabriel Craciunescu - - Gaël PORTAY - -## Core ## - - Python job modules (such as *unpackfs* or *packages*) can now provide - a `pretty_status_message()` function, like the existing `pretty_name()` - function, that is used to update the status during install. #1330 - - QML support-modules and objects are now registered into the io.calamares - namespace. This affects modules using Calamares models inside their - QML UI (at this point, very few). With this release, the necessary - `import` for Calamares parts looks like - > ```import io.calamares.ui 1.0``` - A complete list of objects available from Calamares van be found in the - documentation in `Qml.h`. - - The sidebar (which shows overall progress in the installation) is now - more configurable: the branding key *sidebar* controls it. The sidebar - can be shown as a widget (default, as it has been), hidden, or use a - new QML view which is more easily customised. - - A new `settings.conf` key *quit-at-end* will automatically close - Calamares (by clicking on the *Done* button) when the end of the - sequence is reached. If *finished* is the last module in the sequence, - this will run whatever it is configured for; you can also leave out - the finished page and Calamares will close after the exec parts. - -## Modules ## - - *packages* now reports more details in the installation progress-bar. - - *netinstall* module supports an `expanded` key, which will pre-expand - a group (as if the user had pressed the arrow-button in the tree-view). - This only affects the UI, and only the **outermost** level of groups. - - *netinstall* module now supports a special value for *groupsUrl*. - Setting this to *local* will read the groups directly from the - configuration file. - - *netinstall* groups now support a new key `immutable` which prevents - their check-state from being changed (they are shown, or hidden, - as usual and can be expanded). - - Modules that use QML need a new import line. The QML file for the - module is configured through new keys *qmlSearch* and *qmlFilename* - (previously those were without the `qml` prefix, which invites name - collisions). The full module identifier is also used as a filename, - so that multiple instances of a module can use different QML files. - - *partition* module has a number of new features and settings for - type, UUID, and filesystem characteristics. Thanks to Gaël. - - -# 3.2.20 (2020-02-27) # - -This release contains contributions from (alphabetically by first name): - - Bart Ribbers - -## Core ## - - When logging level is set to 8 (eight), for instance via the `-D8` - logging flag, or the `-d` debug flag, the *Show debug information* - button will appear in the progress view. This helps with debugging - issues where the `-d` flag would be inappropriate. - - Calamares now starts at logging level 1 (warnings and errors to - the console) by default. Previously it (wrongly) started at level 8. - -## Modules ## - - The *partition* module now stores which filesystems are in use in - global storage. - - The *contextualprocess* module now understands "compound variable - names", where a dot (.) is used to index into structured data - stored in global storage. This allows it to use the map stored - by the partition module (but also other things, like looking into - the branding information). - - The *packages* module now understands "apk", the Alpine Linux - package manager. - - -# 3.2.19.1 (2020-02-24) # - -This is a hotfix release for bugs in the *users* module. -Reported by Philip Mueller and Walter Lapchynski. - -## Modules ## - - The *users* module no longer wrote `/etc/hostname` at all. - - The *users* module erroneously shows the root password input fields. - - The *initramfs* module sets a resume-hook even when there is no swap. - - The partitioning service expects *udevadm* in `/sbin`, but some - distro's place it elsewhere. - - The mount service didn't unmount directories properly, leading to - blocked installations. - - -# 3.2.19 (2020-02-21) # - -This release contains contributions from (alphabetically by first name): - - Anke Boersma - - Camilo Higuita - - Gabriel Craciunescu - -## Core ## - - *Assamese* translation has been completed. - - Translations are now loaded from more places: instead of **only** - being compiled in to the Calamares executable, they can now be - read from the current directory (when Calamares is run in developer - mode) and from the application data directory.This allows updating the - translations without requiring a recompile: helpful for translators - and possibly for distributions with their own translation style. - See the translators and deployers wiki for details. - - A new `ViewStep` base class, `QmlViewStep`, has been added that loads - a configurable QML file and plays it. This is used by the new *notesqml* - module -- which is in itself a minimal wrapper around the same that - adds only a translatable module name. - -## Modules ## - - The *machineid* and *users* modules now prefer high-quality random - data from `/dev/urandom` rather than pseudo-random data. #1254 - - A new *notesqml* module supports loading QML. This can be used for - "fancy" release notes as a QML application, rather than a webview - or text widget. Note that this does not replace the slideshow-during- - installation module. - - The *users* module now has knobs for setting the hostname and writing - the `/etc/hosts` file. The new configuration options are documented - in `users.conf`. #1140 - - Multiple *netinstall* modules can exist side-by-side, and they each - control the package installation for their part of the package list. - Previously, a netinstall module would overwrite all of the package - configuration done by other netinstall modules. Translations can be - provided in the configuration file, `netinstall.conf`. #1303 - - The *fstab* module no longer "claims" all the swap partitions it finds - on disk. It only uses swap specified for the current installation. - This means that "replace" and "alongside" installations will have - no swap configured in the target system. - - -# 3.2.18 (2020-01-28) # - -This release contains contributions from (alphabetically by first name): - - Bill Auger - -## Core ## - - *Assamese* translation has been added (still in preliminary state). - - Timezone support code has migrated into the core of Calamares. This - means that modules now have easier access to timezone information. - Translations for timezones have also been enabled, so it is **possible** - at least to translate the displayed zones in the *locale* module. - - Branding can now specify whether to (try to) display the Calamares window - in the middle of the desktop or not. The *windowPlacement* key in - `branding.desc` specifies *center* or *free* placement. - -## Modules ## - - All modules can now set a new key in `module.desc` called *noconfig*. - If this key is set to `true` (the default is `false), no configuration - file is searched-for or loaded, and no warning is printed if the - configuration is missing. This should tidy up some unnecessary warnings - on startup. #1302 #1301 - - The *license* module has seen a significant change to its looks. - Actions are now labeled more clearly, and the URL (or filename) - for each license is displayed. - - The *locale* module now supports translations for timezone and - location names (e.g. "Berlin" is "Berlijn" in Dutch). - - *Packagechooser* is a little more careful with displaying - default and empty package names. (thanks to Bill Auger) - - The *unpackfs* module now carries a larger weight in the overall - progress of the installation, which should resolve downstream reports - like "progress stops at 24% for a long time". This is currently - hard-coded, but will become configurable in a future release. #1176 - - -# 3.2.17.1 (2019-12-02) # - -This is a hotfix release for a bug in the grubcfg module. -Reported by Philip Mueller and Erik Dubois. - -## Modules ## - - The *grubcfg* module had a typo in it that made installations fail. - - -# 3.2.17 (2019-11-28) # - -This release contains contributions from (alphabetically by first name): - - Bill Auger - -## Core ## - - A translation "string freeze" is now enforced by the release scripts. - -## Modules ## - - A new module, *hostinfo*, places information about the host into - Global Storage. This can support contextualprocess modules that - need that information. - - The password-checks in the *users* module are now ordered consistently. - A new check *nonempty* can be used to explicitly check for a non-empty - password. This was previously hard-coded. If you have no other - password-requirements set (e.g. minimum-length) and rely on - Calamares to filter out empty passwords, add this check. - - The *grubcfg* module has a new configuration setting *keepDistributor* - which prevents replacing the `GRUB_DISTRIBUTION` line when writing - the new configuration. #1201 - - *packagechooser* documentation has been updated. - - *welcome* module now works better with dark themes. - - The *license* module could get into a confused state, now fixed. #1271 - - -# 3.2.16 (2019-11-01) # - -This release contains contributions from (alphabetically by first name): - - Bill Auger - -## Core ## - - Some obscure build scenarios which would lead to bogus module-is- - misconfigured messages on startup have been resolved. - -## Modules ## - - The explanatory messages on the *users* page have moved to tooltips, - and placeholder text has been added to the fields. #1202 - - The bad-password messages in the *users* page have been improved. #1261 - - Password-checking in the *users* module has been substantially - changed. A new key *allowWeakPasswords* can be used to introduce - an additional checkbox to the page, which can then be used to - switch off strict password checking. (Thanks to Bill Auger) - - The icons used in password warnings on the *users* page have been - changed to the colorful status icons (rather than the thin red X). - - -# 3.2.15 (2019-10-11) # - -This release contains contributions from (alphabetically by first name): - - No other contributors this time around. - -## Core ## - - No changes to core functionality - -## Modules ## - - - *displaymanager* module now treats *sysconfig* as a regular entry in the - *displaymanagers* list, and the *sysconfigSetup* key is used as a - shorthand to force **only** that entry in the list. #1253 - - *machineid* module has been re-written in C++ and extended with - a new configuration key to generate urandom pool data. #1252 - - *unpackfs* now supports a special *sourcefs* value of `file` - for copying single files (optionally with renaming) or directory - trees to the target system. - - *unpackfs* now support an *exclude* and *excludeFile* setting for - excluding particular files or patters from unpacking. #1229 - - -# 3.2.14 (2019-09-30) # - -This release contains contributions from (alphabetically by first name): - - Andrius Štikonas - - Harald Sitter - -## Core ## - - No changes to core functionality - -## Modules ## - - - *locale* module no longer recognizes the legacy GeoIP configuration. - This has been deprecated since Calamares 3.2.8 and is now removed. - - *packagechooser* module can now be custom-labeled in the overall - progress (left-hand column). #1228 - - *displaymanager* module now recognizes KDE Plasma 5.17. - - *displaymanager* module now can handle Wayland sessions and can detect - sessions from their .desktop files. #1247 #1248 - - *unpackfs* now has special handling for *sourcefs* setting "file" - (so you can copy single files or directories that are on the source - system, directly to the target). #1188 #1181 - - -# 3.2.13 (2019-08-30) # - -This release contains contributions from (alphabetically by first name): - - Arnaud Ferraris - - Arnaud Rebillout - - Bill Auger - - Kevin Kofler - -## Core ## - -- The Calamares standard coding style -- embodied in `ci/calamaresstyle` - has had a few updates and has now been consistently applied across - the core codebase (e.g. libcalamares, libcalamaresui, calamares, but - not the modules). -- *KCoreAddons* is now a required dependency. This lets us drop a chunk - of code that was copied from KCoreAddons years ago, and use the - (maintained!) upstream version instead. It also gives us KMacroExpander - everywhere, which will simplify code for handling substitutions - in configuration files. -- *Slideshows* now have a new property *activatedInCalamares* which - controls the keyboard shortcuts (and can control timers and other - properties of the slideshow, too). - -## Modules ## - -- The *packagechooser* module can load data from the config-file, - from AppData XML files referred by the config-file, and (new) also - from AppStream caches by referring to an application's AppStream id. #1212 -- The *partition* module now understands the units *KB*, *MB*, *GB* which - are powers-of-ten sizes, alongside the powers-of-two sizes that it already - used. (thanks to Arnaud) -- The *welcome* module now supports a *Donate* button if *showDonateUrl* - is set to a non-empty URL. #1197 -- The *welcome* module can have URLs for the various buttons configured - directly in the module configuration (rather than in `branding.desc`). - - -# 3.2.12 (2019-08-07) # - -This release contains contributions from (alphabetically by first name): - - apt-ghetto - - Bill Auger - - embar - -## Core ## - - - Preliminary work to allow jobs to have a *weight* assigned to them - has been added. This will allow the progress bar to better reflect - progress by the amount of work done rather than purely by the - number of jobs. (Thanks to Bill Auger) - - Preliminary work has been added to post the installation log to a - pastebin for bug reporting. (Thanks to Bill Auger) - - Support for translated human-readable strings in Calamares - config files has been added. This is used only in the *packagechooser* - module (see below) but will expand to those modules that need - user-visible strings from the configuration file (existing - solutions need either gettext or Qt support). - - Esperanto is now available when Qt version 5.12.2 or later is used. - -## Modules ## - - - *fstab* A new configuration key *efiMountOptions* has been added, to - allow setting filesystem options specifically for the EFI partition. - (Thanks to apt-ghetto) - - *packagechooser* is a new module for low-density package choices, - e.g. for selecting a default desktop environment, or adding some - proprietary drivers, or chosing browsers of office suites. It presents - **one** collection of items -- at most ten or so, because of the UI -- - and the user can select zero or more of them. The behavior is - configurable, and package information can be set through the Calamares - configuration file or by reading AppData files for the packages. #426 - - -# 3.2.11 (2019-07-06) # - -This release contains contributions from (alphabetically by first name): - - No other contributors this time around. - -This is a security release with no functional changes (except for -improved security) relative to 3.2.10. The Calamares team would like -to acknowledge the help of the following people in reporting and -understanding the issues (alphabetically by first name): - - Kevin Kofler - - Seth Arnold - - Simon Quigley - - Thomas Ward -Both CVE's have been resolved. - -## Core ## - -No core changes. - -## Modules ## - - - *initramfs* could create an initramfs with insecure permissions. - Since the keyfile is included in the initramfs, an attacker could - read the file from the initramfs. #1190 CVE-2019-13178 - - *luksbootkeyfile* created a key file where a window of opportunity - existed where the key file could have too-lax file permissions. - #1191 CVE-2019-13179 - - -# 3.2.10 (2019-06-28) # - -This release contains contributions from (alphabetically by first name): - - No other contributors this time around. - -Distributions are **advised** to check the slideshow they use for the -installation step; changes in loading and translation mechanisms may -require changes in the slideshow. - -## Core ## - - - With this release, option *WITH_PYTHONQT* changes default to **off**. - There does not seem to be any serious use of the PythonQt API and - the UI opportunities it offers, so begin the process of deprecating - and removing that. Sometime in the future, QML pages will fill the - gap for easily-prototyped-yet-slick UI elements. - - A crash when no *finished* page (or rather, no page at all) is - configured after the last *exec* section of the sequence has been - solved. The *finished* page can be left out (but then you don't get - the restart-now functionality). #1168 - - The *slideshow* which is run during installation now has API versions. - API version 1 (the default) runs as before, where the slideshow is loaded - when the installation starts. API version 2 loads the slideshow on - Calamares startup, thus improving responsiveness. Documentation - in `src/branding/README.md`. #1152 - - The example slideshow now uses API version 2. - -## Modules ## - - - *initramfs* has been changed from a Python module to a C++ module. - Packaging will need to adjust now it installs a .so instead of a .py. - The module itself functions as before. It does have a new configuration - option, to change the version passed as to the `-k` option of - update-initramfs. #1180 - - *partition* Now has its own setting for *requiredStorage*, duplicating - the same setting in the *welcome* module. This is useful for - configurations where no *welcome* module is used, but a minimum - size must be checked anyway. #1169 - - -# 3.2.9 (2019-06-03) # - -This release contains contributions from (alphabetically by first name): - - Kevin Kofler - -## Core ## - -No user- or deployer-visible changes. Bugfixing as usual, see the -milestone for details. - -## Modules ## - - - *branding* now supports os-release variables in the *strings* section, - which allows re-using (at runtime) information set in /etc/os-release . - This requires KDE Frameworks 5.58. #1150 - - *branding* allows the use of FreeDesktop.org icon names for the - *productLogo* and *productIcon* keys. If a file is named there, then - the file is used, and otherwise the icon is looked up in the current - theme. #1160 - - *packages* On Arch, with the `pacman` package manager, avoid a hang - during system update. #1154 - - *welcome* allows a custom image path or icon name to be set for the - language-selection drop-down (instead of the international standard one). - - -# 3.2.8 (2019-05-10) # - -This is a **source-incompatible** release of Calamares. Include files -have been shuffled around, so third-party C++ modules will need -adjustment to the changed names. - -This release contains contributions from (alphabetically by first name): - - Arnaud Ferraris - - Kevin Kofler - -## Core ## - - - All user-visible texts referring to "MB" and "GB" now use the standard - "MiB" and "GiB" wording, which matches what we were actually calculating - with (i.e. 2^20 and 2^30 respectively). #1129 - - The side-pane, which shows the list of steps that will be executed, - now tries to fit the text (name of each module) into the available space - by shrinking the font as needed. #1137 - - *libcalamares* (accidentally) linked with Qt's GUI libraries when - PythonQt was found. This led to the odd situation where the non-GUI - Calamares library depends on a bunch of GUI libraries. - - *libcalamares* The `utils/` subdirectory has been hugely refactored, - with functionality split out into separate files. C++ modules will - need to have their `#include` names updated. Basically, users of - `utils/CalamaresUtils.h` will need to include the header file for - the functionality that is actually used. - -## Modules ## - - - *finished* has a new mechanism for configuring the behavior of the - *restart now* button. The old-style boolean configuration is still - supported but generates a warning. #1138 - - *locale* module GeoIP configuration has a new preferred format. - See `locale.conf` for details. The old configuration is still - supported but will be phased out before 3.3.0 -- in particular, - support for "legacy" format will be removed, since that was a - crutch for the disappearance of one GeoIP provider in 2018. - - *oemid* is a new module for configuring OEM phase-0 (image pre-mastering, - or pre-deployment) things. It has limited functionality at the moment, - writing only a single batch-identifier file. #943 - - *welcome* can now do GeoIP lookups as well (but be careful with the - configuration, since you need a GeoIP that provides country information, - not just timezones). This will let Calamares select a starting language - that matches where it is -- which might not be useful at all. #934 - - All Python modules now bail out gracefully on (at least some) bad - configurations, rather than raising an exception. The pre-release - scripts now test for exceptions to avoid shipping modules with - ImportError or SyntaxError results. - - -# 3.2.7 (2019-04-27) # - -This is a **hotfix** release for regressions introduced in the -Python modules. The *localecfg* module was unusable because of -a missing `import`. - - -# 3.2.6 (2019-04-25) # - -This release contains contributions from (alphabetically by first name): - - Arnaud Ferraris - - Dominic Hayes (feren) - - Raul Rodrigo Segura (raurodse) - -## Core ## - - * Under-the-hood code cleanups in lots of parts of the core. Calamares now - builds without warnings when Clang 8 is used. - * A new *disable-cancel-during-exec* setting provides more fine-grained - control than *disable-cancel*, which hides the button entirely. - #1122 (Thanks to Dominic, FerenOS) - * A branding module can now also cause a stylesheet to be loaded, which - will be applied to the widgets inside Calamares. #961 (Thanks to Raul) - -## Modules ## - - * All of the Python-based modules now have translations enabled. #991 - * *Displaymanager* module has improved support for LightDM configuration. - #1123 (Thanks to Dominic, FerenOS) - * *License* module can now display local files inline, and scrolls to - allow longer lists of licenses and to support long license texts - displayed inline. #1124 #1125 #1052 - * *Partition* module has additional checks for validity partition layouts. - #1127 (Thanks to Arnaud) - * *Welcome* module has improved usability: a standard icon - alongside the *Language* label, for improved recognition, - and improved language-list display and sorting. #1107 - - -# 3.2.5 (2019-04-15) # - -This release contains contributions from (alphabetically by first name): - - Arnaud Ferraris - - Dan Simmons - - Gabriel Craciunescu - -## Core ## - - * View modules (in C++) can now perform their own requirements-checking - to see if installation makes sense. This expands upon the existing - requirements checks in the welcome module (RAM, disk space, ..). - The checks have been made asynchronous, so that responsiveness during - requirements-checking is improved and the user has better feedback. - * Support for building an AppImage of Calamares has been added to the - `ci/` directory. There are use-cases where a containerized build and - configuration make sense rather than having Calamares installed in the - host system. (Thanks to the AppImage team, Alexis) - * OEM mode (phase-1) now correctly refers to Calamares as a "Setup Program" - rather than an installer. #1100 (Thanks to Arnaud) - -## Modules ## - - * *Bootloader* module: a serious bug introduced in 3.2.4 which prevents - succesful boot after installation on EFI machines, has been repaired. - (Thanks to Gabriel) #1104 - * *Displaymanager* module: it is no longer a fatal error to not have any - display-managers. #1095 - * *Partition* module: it is now possible to build without libparted. Since - KPMCore may not need this library anymore, it is a dependency that will - be dropped as soon as it is feasible. Add this to the CMake flags: - `-DCMAKE_DISABLE_FIND_PACKAGE_LIBPARTED=ON` - * *Partition* module: the location that is selected for the bootloader, - no longer changes when a new partition is created. #1098 - * Python modules: several modules have had translations added. This is - usually only visible when the module runs as part of the *exec* step, - when the module's *pretty name* is displayed. In addition, some error - messages are now translated. - * *UnpackFS* module: improved progress reporting and tests. #565 - - -# 3.2.4 (2019-02-12) # - -This release contains contributions from (alphabetically by first name): - - Alf Gaida - - aliveafter1000 - - Arnaud Ferraris - - Caio Jordão Carvalho - - Collabora LTD - - Gabriel Craciunescu - - Kevin Kofler - - Philip Mueller - - Scott Harvey - -## Core ## - - * The Calamares application now recognizes the `-X` or `--xdg-config` - option, which adds XDG_DATA_DIRS to the places used to find QML - and branding directories, and XDG_CONFIG_DIRS to the places used - to find the global settings and module configurations. This allows - a more fine-grained, and more layered, approach to setting up - Calamares configurations (in particular, distro's can **add** - configuration files and give them priority, instead of **forking** - configuration files). - * The *branding* file now contains settings that control the size - and resize behavior of Calamares. See the branding file for - more documentation. In particular, the setting *windowExpanding* - can be set to *normal*, *fullscreen* or *noexpand*. - * The `settings.conf` file can now configure whether the *Cancel* button - is shown (this isn't a branding thing, because it's quite fundamental - to the workflow of the installer). - -## Modules ## - - * The *partition* module supports RAID devices, but only when Calamares - is compiled with the newest KPMCore release (3.3.0). - * The calculation of required space -- including swap -- has been simplified, - and Calamares no longer reserves 2GiB of space in calculations for internal - use (this means that it no longer mysteriously drops swap when the disk - size is close to the required installation size). - * The name of the type of default filesystem (e.g. ext4 or btrfs) is now handled - case- and localization-insensitively. This means that *btrfs* is now always - an acceptable spelling. - * The currently-selected disk device is remembered between manual partitioning - and the partitioning-overview pages. (Thanks to Arnaud) - * *partition* There is new support for partitioning layout presets. - See `partition.conf` for documentation and details. - * The *keyboard* module now handles the (bogus) Austrian keymap for - the system console properly. (Thanks to Kevin) - * The *preservefiles* module now has a mechanism for setting the permissions - (and ownership) of preserved files. (Thanks to Scott) - * New module *fsresizer* can be used to resize filesystems. It is intended - for use in OEM installs where an image of fixed size is created, - and then sized to the actual SD card the user has used. - * The *mount* module now handles missing *extraMounts* and *extraMountsEfi* - keys gracefully (this is probably a misconfiguration, though, and gives a - warning). - * The *packages* module now supports pre- and post-script options - for all operations, not just during install (keep in mind that - these run as three separate shells, though). - * A new *rawfs* module supports straightforward copying of filesystems from - the installation media to the target stystem. This can be used, for instance, - for block-level-identical installations. - - -# 3.2.3 (2019-01-09) # - -This release contains contributions from (alphabetically by first name): - - aliveafter1000 - -## Core ## - -There are no core changes in this release. - -## Modules ## - - * *partition* Fixed bug where, during detection of existing systems, the - existing system partitions may be mounted and then files deleted. - This is a **limited** version of the patch from aliveafter1000 - that will be in 3.2.4, which tries harder to mount filesystems - read-only and unmodifiable. - * *locale* It was possible to set the installer and system language - (e.g. to German) while the global storage value for *locale* - remained set to English. Then no localization packages are installed - (see feature `${LOCALE}` in `packages.conf`). Reported downstream - in Netrunner. - - -# 3.2.2 (2018-09-04) # - -This release contains contributions from (alphabetically by first name): - - Andrius Štikonas - - artoo@cromnix.org - - Caio Jordão Carvalho - - Harald Sitter - - Philip Müller - - Simon Quigley - - Walter Lapchynski - -## Core ## - - * Example configurations are **no longer installed** by default. - The default setting for *INSTALL_CONFIG* has changed. Distributions - are strongly encouraged to write their own configuration files and - not rely on the example configuration files. Example configurations - may change unpredictably. - * It is now possible to express module dependencies through the - *requiredModules* key in `module.desc`. All of the required modules - for a given module must occur in the sequence **before** the module - requiring them. None of the core modules use this facility. - * The search paths for QML files, branding descriptors and module - descriptors have been revamped and now self-document in the log. - * A new `ci/RELEASE.sh` script has been added to streamline releases; - it is not guaranteed to work anywhere in particular though. - -## Modules ## - - * When multiple modules are mutually exclusive, or don't make sense - to enable concurrectly, a new `USE_` framework has been added - to CMake to simplify the selection of modules. This is in addition - to the existing `SKIP_MODULES` mechanism. - * Various off-by-one-sector errors in the automatic partitioning - mode have been corrected. In addition, swap space is calculated - a little more conservatively. - * A new module has been added to the core which can configure openrc - services. To make services configuration consistent: - - The *services* module has been **renamed** *services-systemd*, - - The openrc module is named *services-openrc*, - - At CMake time, it is possible to select all of the services modules, - or one specific one, by setting the *USE_services* CMake variable. - By default, all of the modules are built and installed. - * The systemd-services module can now disable targets and mask both - targets and services (which will allow you to break the system with - a bad configuration). The configuration is a little more flexible - because a service (or target) name can be used on its own with - sensible defaults. - * The displaymanager module has been entirely revamped. A long-standing - bug which ignored the settings for default desktop has been fixed - (thanks to Walter Lapchynski). Translations have been added to the - error messages. Each DM now has an implementation class for doing - all the configuration steps it needs. This groups the code needed for - a specific DM (and presumably, per-distro) in one place. - Distro's are **strongly advised** to re-test their DM configuration - and installation with the revamped code. - -# 3.2.1 (2018-06-25) # - -This release contains contributions from (alphabetically by first name): - - Bill Auguer - - Gabriel Craciunescu - - Phil Mueller - - Raul Rodrigo Segura - -## Core ## - - * Qt 5.7 is now the minimum required Qt version. Because KPMCore - (a fairly fundamental dependency) requires Qt 5.7, Calamares - has followed suit. - * New testing application `loadmodule` for loading and running a - single Calamares module. - * New translations Belarussian and Korean. - * Jobs can now be *emergency jobs* which run even after a failure. - * Improved debugging when modules fail to load. - * Bad configuration files will now cause the user-interface of - Calamares to display an error message, rather than silently - ignoring some configuration errors. This will certainly cause - problems for distributions with sloppy configurations. - -## Modules ## - - * New module preservefiles, keeps (log) files around after install; - this duplicates functionality with the unmount module, but unmount - is very late, rather limited, and fragile. - * Interactiveterminal module now disables itself if build requirements - are not met, rather than blocking the build. - * Fixes in the timezone map data make the southern hemisphere more - usable and put Reykjavik in its place. - * The packages module can now update the target system if explicitly - told to do so. - * More paths and executables are configurable in the bootloader module. - * Distributions are advised to review the `users.conf` setup **again**, - as some changes in version 3.2.0 caused regressions downstream. - * Distributions are advised to review their `locale.gen` files - **again**. Previous changes were too restrictive, matching only - the specific format Chakra Linux uses. Calamares now preserves - all the comment-lines in the file and writes enabled locales - at the end, with a descriptive comment. - -# 3.2.0 (2018-05-17) # - -This release contains contributions from (alphabetically by first name): - - Alf Gaida - - AlmAck - - Caio Jordão Carvalho - - Frede H - -## Modules ## - - * UI annoyances in the partitioning module were fixed; the - mount-point selector is now more obvious when no mount-point - has been chosen, and the mount-point and flags are preserved - when (re)editing partitions. - * The handling of `@@ROOT@@` substitution in shellprocesses was - backwards; this has been fixed (the substitution is made when - running in the **host**). - * The user shell is no longer hard-coded to `/bin/bash`, - but follows the default setting for useradd(8), e.g. - those set in `/etc/default/useradd`. diff --git a/CHANGES-3.2 b/CHANGES-3.2 new file mode 100644 index 000000000..415424592 --- /dev/null +++ b/CHANGES-3.2 @@ -0,0 +1,1544 @@ + + +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.2.0. The release notes on the +website will have to do for older versions. + +# 3.2.43 (unreleased) # + +This release contains contributions from (alphabetically by first name): + - Joe Kamprad + +## Core ## + - Translations have been made more consistent. In particular, some *OK*, + *Yes*, *No* and *Cancel* buttons that were previously untranslated + or "stuck" in the language that Calamares started in, are now + changed to the current language as selected in the welcome page. + +## Modules ## + - No module changes yet + + +# 3.2.42 (2021-09-06) # + +This release contains contributions from (alphabetically by first name): + - Anke Boersma + - Artem Grinev + - Nico 'dr460nf1r3' (new contributor, welcome!) + - Waneon Kim (new contributor, welcome!) + +## Core ## + - No core changes yet + +## Modules ## + - BTRFS partitions are no longer listed as "check in phase 2" in + the *fstab* module. (Thanks Nico) + - The *keyboard* module (and *keyboardq*) now pick an English layout + (with Rupee) for keyboards when the language is English and locale is India, + rather than Hindi layout. + - The *localeq* module had the i18n.qml rewritten to make it easier + to customize. A bug in the layout has been fixed, and the overall + look has been updated. + - *networkcfg* now translates the "live user" on an ISO to the regular + user on the installed system, so that network configuration changes + made in the live system are automatically used after installation. #1755 + - *partition* no longer allows you to delete an extended partition with + children (which led to crashes). #1749 (Thanks Artem) + - *partition* complains in more detail about the state of the UEFI + boot partition (under manual partitioning schemes). #1761 + - *welcome* can now check multiple URLs to determine if internet connectivity + is available. It is still recommended to check the distro home-page or + some special "ping" page of the distro, although that has some privacy + implications; using example.com or google.com may work as well. Listing + multiple URLs will ping each of them in turn until one succeeds. #1669 + - The work to make a QML version available for all view modules is almost + completed. Two new QML modules have been added *packagechooserq* and *summaryq*. + Summaryq brings the option to present the summary page in a customizable + way, with a bit more of a contemporary look. Packagechooserq adds the option + to preselect an item and displays all options in one overview. + (Thanks Anke) + + +# 3.2.41.1 (2021-08-05) # + +This is a hotfix release for a crash in the *partition* module, reported on +KDE neon. #1746 + + +# 3.2.41 (2021-07-31) # + +This release contains contributions from (alphabetically by first name): + - Anke Boersma + - Camilo Higuita + +## Core ## + - The (re)translation framework has been internally re-vamped to be + less resource-intensive and to work with all QObjects, not just + widgets. Consumers of the translations framework are expected to + set up the event filter on the top-level widget(s) manually. Since + Calamares and the Calamares-test-applications have been adjusted already, + no further action is needed. + +## Modules ## + - When the *keyboard* module is activated, it no longer replaces + an explicit user choice (e.g. for a Belgian layout) by a guessed-for- + this-language layout (e.g. Danish if you're installing in Danish). + - Logic for handling installation lists has been moved around in the + *packages* module so that package managers can, in principle, + adjust how to handle critical and non-critical package lists. + - In the *partition* module, translation code has been simplified. + - The *usersq* module has had a fair bit of QML rewritten to make it easier + to customize the colors used by the module in a consistent way. + (Thanks Anke) + - *Welcome* now uses a translated message from the Config object, + increasing the sharing between widgets- and QML-modules. + + +# 3.2.40 (2021-07-14) # + +This release contains contributions from (alphabetically by first name): + - Anke Boersma + - Anubhav Choudhary (SoK success!) + - Emmanuel Arias (new contributor! welcome!) + - Erik Dubois + - Jerrod Frost (new contributor! welcome!) + - Jia Chao (new contributor! welcome!) + - Joe Kamprad + - Lisa Vitolo (blast from the past!) + - Omer I.S. (new contributor! welcome!) + +In project news, chat (instant-messaging) communications has largely +moved to Matrix and Libera.Chat. CI notifications -- issues and build +results -- are sent to Matrix only. + +## Core ## + - The CMake modules for consumption by external modules (e.g. the + calamares-extensions repository, but also any other modules built + by distro's for internal use) now support consistent skip-module + behavior and reporting. #1641 (one tiny part of this change) + - In global storage, the *filesystem_use* key now has an API in + libcalamares to systematically mark filesystem (types) as "in use" + or not. This, in turn, means that modules can depend on that information + for other work (e.g. removing drivers for unused filesystems). #1635 + - The "upload log file" now has a configurable log-file-size. (Thanks Anubhav) + +## Modules ## + - *bootloader* can now install an aarch64 (ARM) compatible EFI GRUB. (Thanks Jia) + - *displaymanager* example configuration has been shuffled around a bit, + for better results when the live image is running XFCE. Also lists + more potential display managers. #1205 (Thanks Erik) + - *keyboard* now switches on an alternate `en_US` keyboard layout when + Arabic or Hebrew is selected as primary layout. (Thanks Omer) + - *localeq* now has a fully functional offline option (alongside the default + interactive map option, which requires internet). + - The *netinstall* module can now fall back to alternative URLs when + loading groups data. The first URL to yield a non-empty groups + collection is accepted. No changes are needed in the configuration. #1673 + - *packagechooser* can now integrate with the *packages* module; that + means you can specify package names to install for a given selection, + and the regular package-installation mechanism will take care of it. + Legacy configurations that use *contextualprocess* are still supported. + See the `packagechooser.conf` file for details. #1550 + - A long-neglected pull request from Lisa Vitolo for the *partition* + module -- allowing to set filesystem labels during manual partitioning -- + has been revived and merged. + - The *partition* manager has had a long-standing bug with partition-flags + and manual partitioning resolved. This may help resolve some installation + issues on UEFI systems. #1724 + - *usersq* is further implemented and can now be used for a successful install. + Not all warning messages available in the regular users module are implemented. + + +# 3.2.39.3 (2021-04-14) # + +A minor bugfix tweak release. Since this contains yet **another** +autologin-related fix, and there is nothing large enough to justify +a 3.2.40 release yet, add it to the growing tail of 3.2.39. (Reported +by Joe Kamprad, #1672). Also fixes a regression from 3.2.28 in +localized packages (e.g. *package-LOCALE* did not work). + + +# 3.2.39.2 (2021-04-02) # + +This is **another** hotfix release for issues around autologin .. +autoLogin, really, since the whole problem is that internal capitalization +changed. An unrelated bug in writing /etc/default/keyboard was +also fixed. (Reported by pcrepix, #1668) + + +# 3.2.39.1 (2021-03-30) # + +This hotfix release corrects a regression in the *displaymanager* +module caused by changes in the *users* module; autologin was +internally renamed and no longer recognized by the *displaymanager* +module. (Reported by Erik Dubois, #1665) + + +# 3.2.39 (2021-03-19) # + +This release contains contributions from (alphabetically by first name): + - Matti Hyttinen + +## Core ## + - A *packages* service has been added to the core, for use by + *netinstall* module and any others that need to set up + package information for the *packages* module. + +## Modules ## + - The *mount* module has gained a configurable setup for btrfs volumes. + If your distro has a default-to-btrfs setup, it can skip the hard- + coded setup (which Calamares has had for a long time with @home + and similar) and introduce a custom btrfs configuration through the + `mount.conf` file. See issues #1659 and #1661 for warnings about + using this in production. + - *netinstall* now supports fallbacks for the groups data. + Instead of a single URL, multiple URLs may be specified in + a list and Calamares goes through them until one is successfully + retrieved. Older configurations with a single string are + treated like a one-item list. #1579 + - The *usersq* module now connects to the internal configuration + object and may be usable for regular installations. + + +# 3.2.38.1 (2021-03-15) # + +This hotfix release is for this item in the release notes of 3.2.38: + - The .desktop file for Calamares now makes a longer trip, calling + `sh -c "pkexec calamares"`; distributions may still need to adjust. +The change had been lost while updating other files. It has been restored +in `calamares.desktop` and `calamares.desktop.in`. (Reported by Erik) +Other minor changes and fixes: + - presets in the *users* module show the hostname, too, + - translations update for Korean, Ukranian and Chinese (zh_TW). + + +# 3.2.38 (2021-03-14) # + +This release contains contributions from (alphabetically by first name): + - Anke Boersma + - Anubhav Choudhary + - Neal Gompa + +## Core ## + - Uploading your log files (in case of installation failure) has been + expanded and is now more configurable. Users should still take care + when uploading logs, and distro's should configure a URL with + no public viewing of those logs. (Thanks Anubhav) + - The .desktop file for Calamares now makes a longer trip, calling + `sh -c "pkexec calamares"`; distributions may still need to adjust. + +## Modules ## + - A new QML-based *finishedq* module has been added. (Thanks Anke) + - The *packages* module no longer supports *urpmi*; no Calamares- + consumers with that package manager seem to exist. (Thanks Neal) + - The *users* module now can set a fixed username and prevent editing. + The *presets* configuration entry in `users.conf` can set a *loginName* + and a *fullName* and (independently) enable or disable editing of + that value. You can, for instance, set *loginName* to "manjaro" if + you like; the user can change it afterwards. You could set the + *loginName* to "oem" and prevent editing it as well. #942 + + +# 3.2.37 (2021-02-23) # + +This release contains contributions from (alphabetically by first name): + - benne-dee + +## Core ## + - Calamares has a table of 'best guess' languages for each country + and when GeoIP is enabled, it will automatically select that + country's language as default -- the user can of course pick + a different one. The 'best guess' is based on Unicode / ISO + data, which is sometimes dubious. Based on some personal notes, + the 'best guess' language for Belarus has been changed to Russian. + - Calamares has a table of 'best guess' keyboard mappings, + allowing native language input. However, usernames and + passwords should be in US-ASCII (this is a limitation of + the login system -- **some** parts of the system will support + non-ASCII input, but it's better safe than sorry). + Add Greek to the list of languages that needs US-ASCII + in addition to native input. + - The CI infrastructure now builds Calamares and Calamares-extensions + on a nightly basis. + +## Modules ## + - The *netinstall* module has a YAML schema, allowing packagers + to validate and verify their netinstall configurations before + shipping an ISO (or writing bug reports). Thanks benne-dee. + - The *finished* module has been heavily refactored, opening + the way to a QML-based version of the same module. This is + also preparatory work for allowing packagers (e.g. PostmarketOS) + to customize the messages on the finished page. + + +# 3.2.36 (2021-02-03) # + +This release contains contributions from (alphabetically by first name): + - Anubhav Choudhary + - benne-dee + - Gaël PORTAY + - Jonas Strassel + - Kevin Kofler + - Matti Hyttinen + - Neal Gompa + +## Core ## + - It is now possible to hide the *next* and *back* buttons during + the "exec" phase of installation. Thanks Anubhav. + - The Calamares CI has migrated to GitHub actions. Thanks Jonas. + +## Modules ## + - *bootloader* now uses the current file names for the UEFI Secure Boot + shim instead of obsolete ones. + - The *mount* module creates swap in its own subvolume, if btrfs is used. + Thanks Matti. + - *partition* includes more information about what it will do, including + GPT partition types (in human-readable format, if possible). Thanks Gaël. + - Some edge-cases with overlay filesystems have been resolved in the + *partition* module. Thanks Gaël. + - During the creation of filesystems and partitions, automounting is + turned off (if DBus is available, and the host system supports + KDE Solid automount control). This should reduce the number of + failed installations if automount grabs partitions while they are + being created. The code is prepared to handle other ways to control + automount-behavior as well. + + +# 3.2.35.1 (2020-12-07) # + +This release contains contributions from (alphabetically by first name): + - Anubhav Choudhary + - Matti Hyttinen + +Some strange string artifacts appeared, leading to `{1?}` being +displayed in various user-facing messages. These have been removed +and the translations updated. + +## Modules ## + - The *initcpiocfg* module would sometimes configure the system to ask + for a passphrase, when none is needed. + + +# 3.2.35 (2020-11-30) # + +This release contains contributions from (alphabetically by first name): + - Clarissa Borges + - Matti Hyttinen + +A new kind of issue template has been added for Calamares, +for reporting (and adding tests for) usability issues. Thanks +to Clarissa for leading that effort. + +## Core ## + - No core changes yet + +## Modules ## + - The *partition* module now supports a not-full-disk-encryption setup, + where `/boot` is not encrypted, but the rest of the system is. + - The *plasmalnf* module has been substantially rewritten, so that it + can support a QML version of the module in future. The UI has changed + a little, and now displays more themes than before. + + +# 3.2.34 (2020-11-16) # + +This release contains contributions from (alphabetically by first name): + - Artem Grinev + - Gaël PORTAY + +## Core ## + - No core changes yet + +## Modules ## + - The *keyboard* module had a regression in which it no-longer painted + the keycaps in the keyboard preview. (reported by Vinnie) + - The *plasmalnf* module did not set all of the look-and-feel values + in the target system. (reported by Bluestar Linux) + - In the *users* module, warnings about the strength of the password + are now correctly pluralized when possible. + - In the *users* module, if ICU is installed, the user's full name is + automatically transliterated to US-ASCII (for some locales; this will + need tweaking) so that the login name is acceptable. (Thanks Artem) + + +# 3.2.33 (2020-11-09) # + +This release contains contributions from (alphabetically by first name): + - Anke Boersma + - Andrius Štikonas + - Artem Grinev + - Gaël PORTAY + - Matti Hyttinen + - TTran Me + +## Core ## + - Calamares now sets the C++ standard for compilation to C++17; this + is for better compatibility and fewer warnings when building with + modern KDE Frameworks and KPMcore 4.2.0. + - Vietnamese translations have been added. Welcome! (Thanks TTran) + +## Modules ## + - The *initcpiocfg* module should support plymouth with encryption + now. (Thanks Matti) + - The *keyboard* and *keyboardq* modules now share backend code + and handle non-ASCII layouts better (for setting passwords + and usernames). (Thanks Artem) + - Various cleanups and documentation improvements in the *partition* + module, and configurable GPT name for swap. (Thanks Gaël) + - A long-standing bug related to GPT partition flags in the + *partition* module has been resolved. #1327 #1267 + - The *users* module now has a more detailed way to specify + user groups -- which may be system groups rather than user-GIDs. + A new option in each group can require that the group already + exists in the target system, allowing for better consistency checks + with the squashfs. #1523 + + +# 3.2.32.1 (2020-10-17) # + +This is a release to address source-incompatible changes in KPMcore 4.2.0, +which was released just before Calamares 3.2.32 and had not yet been +compile-tested. There is also one changed message in the translations, +reported by Yuri Chornoivan. + + +# 3.2.32 (2020-10-16) # + +This release contains contributions from (alphabetically by first name): + - Fabian Tomat + - Gaël PORTAY + +## Core ## + - When doing GeoIP lookups, Calamares pretends to be Firefox. + This resolves an issue where the GeoIP provider was refusing + QNAM connections with the default User-Agent. + - New translation available, Friulian. Welcome! + +## Modules ## + - The *netinstall* module has some tricky configuration files; + it now complains about more cases of bad syntax or poor structure. + - The *partition* module can now be constrained to work only with + a particular kind of partition table. (thanks Gaël) + - The *partition* module is a little more resilient to variations + in btrfs notation from os-prober. + - The *shellprocess* module now supports having a different progress + message (other than "Shell Processes Job") through the config file. + + + # 3.2.31 (2020-10-06) # + +This release contains contributions from (alphabetically by first name): + - Corentin Noël + - kadler15 (new contributor! hi!) + +## Core ## + - At the start of the *exec* phase, an overview is given of the + various job weights, which allows you to tweak the overall + progress reporting during the installation. + - Problems with running Calamares on a 1-core single CPU have been resolved. + +## Modules ## + - The *keyboard* module now recognizes Turkish "F" layout and + will set the vconsole keyboard layout correctly even if xkb + keymaps are not found. + - The *machineid* module, which generates UUIDs for systemd and dbus + and can generate entropy files (filled from `/dev/urandom` in the host + system) now supports more than one entropy file; generate them as needed + (or copy a fixed value to all, depending on *entropy-copy*). Deprecate + *entropy* (which generates a specific output file) as too inflexible. + - In the *partition* module, swap can now be chosen as *file*, which is + **not** create a swap partition, but write a `/swapfile` in the root + directory, 512MiB large, and set that as swap. There is as yet no + "smarts" about the size of the swap file. + - Multiple problems in the *partition* module around partition + sizing have been resolved by Corentin Noël. + - The *preservefiles* module documentation did not match the functionality, + and when used, didn't work right. #1521 (thanks kadler15) + - Progress reporting from the *unpackfs* module has been revamped: + it reports more often now, so that it is more obvious that files + are being transferred even when the percentage progress does not + change. + - The *unpackfs* module now supports a *weight* setting for each + of the unpack entries. For a single entry this does not matter, + but if there are multiple entries it allows tweaking the relative + progress between each entry. + + +# 3.2.30 (2020-09-03) # + +This release contains contributions from (alphabetically by first name): + - Anke Boersma + - Asif Mahmud Shimon + - Manzoor Ahmed Munawar + - Sai Kamal + - Victor Ibragimov + +This release has two giant source-code changes that have no effect +on functionality, but do touch each and every source file: + - SPDX headers for licensing information, following the standard + set by REUSE.software ; all source files and resources have + SPDX-License-Identifier information and copyright notices. All + of the boilerplate texts have been removed. + - Calamares coding style has been mechanically applied to the entire + codebase. This was already done to most of it, but there were + some hold-outs. + +## Core ## + - Network access status is deprecated in Qt 5.15's QNetworkAccessManager, + and was not useful already in some previous versions. Replace its + use in the Calamares network service by testing-it-ourself directly + via a synchronous ping. (Thanks to Asif) + - New Telugu translation. (Thanks to Sai) + - Urdu translation started. (Thanks to Manzoor) + - Timezones translated in Tajik and Russian. (Thanks to Victor) + +## Modules ## + - *keyboardq* and *localeq* improvements. (Thanks to Anke) + - *users* module did not set up autologin properly. This is yet another + regression left over from 3.2.28. (Reported by Phil and pcrepix, #1498) + - *welcome* module now sets the *LANG* key in the locale configuration + (which is shared with the *locale* module and consumed by the + *localecfg* module). This makes it feasible to drop the *locale* + module and still set the installed system's language to the language + selected in Calamares. (Reported by FerenOS) + + +# 3.2.29 (2020-08-20) # + +This release contains contributions from (alphabetically by first name): + - Asif Mahmud Shimon (new contributor! hi!) + +## Core ## + - Edge case in extracting string-lists from YAML, reported and fixed + by Asif (#1491). + - Progress reporting is now more flexible. Modules can have a weight + assigned to them in the descriptor; module instances can have a weight + assigned which overrides the module descriptor. When jobs are run + for a module instance, the jobs report progress pro-rated by the + module's weight. Or in other words, it is now possible to tweak + the amount of the overall progress bar that different modules fill. + The default settings give unpackfs a weight of 12. (#1176) + +## Modules ## + - The *users* module did not read the *defaultGroups* correctly. + Fixed by the string-lists change mentioned above. + + + # 3.2.28.3 (2020-08-18) # + +Another hotfix, for more issues reported by Marco Obaid. Users +were not having a password set (#1489) + + +# 3.2.28.2 (2020-08-12) # + +A second hotfix, for autologin support -- the autologin group was not +created in the target system before assigning the user to it. Reported +by Marco Obaid. + + +# 3.2.28.1 (2020-08-10) # + +This is a hotfix release for #1482 and #1483, where no user was +created during installation and a chmod was failing (resulting in +a failed installation). Reported by Jonathan Riddell. + +With incidental improvements in SPDX tagging (code licensing) +and some new icon options for the welcomeq and localeq modules. + + +# 3.2.28 (2020-08-09) # + +This release contains contributions from (alphabetically by first name): + - Anke Boersma + - apt-ghetto + - Victor Ibragimov + +## Core ## + - A new object *Network* is available to QML modules in `io.calamares.core`. + It exposes network status through the *hasInternet* property. + - Welcome to Tajik translations. The Tajik language has quickly reached + 100% completion. Thanks Victor! + - Welcome to [Interlingue](https://en.wikipedia.org/wiki/Interlingue). + The translation is at an early stage. Qt does not support language + code *ie* though, so it may take some time to be integrated (much + like Esperanto wasn't supported until Qt 5.12). + +## Modules ## + - The *locale* module has been completely redone on the inside. + Users should see no changes. #1391 + - The *localeq* module uses the redone internals of the locale module. + It can now be used to set timezone, language and locale information + and is a suitable alternative module. Thanks to Anke Boersma who did + the work of figuring out maps. Note that the map uses several GeoIP + and GeoData providers and you may need to configure the URLs + with suitable usernames for those services. #1426 + - Both *locale* and *localeq* can now be configured to use the system's + timezone setting -- this can be useful to avoid both hard-coding an + initial zone and doing extra GeoIP lookups, in the case where the + live system already does so. #1391 + - The *locale* and *localeq* modules have additional machinery for + timezone lookups; please report cases where clicking on the map + returns an obviously bogus timezone (up until this release, for + instance, Cape Town). + - The *users* module no longer accepts `root` as a username. #1462 + - The *keyboardq* module is now more inline with the look of the rest + of the Calamares modules, use of a background image is removed. + - The *grubcfg* module now understands `/etc/default/grub.d`. #1457 + + +# 3.2.27 (2020-07-11) # + +This release contains contributions from (alphabetically by first name): + - Gaël PORTAY + - Vitor Lopes (new! welcome!) + +## Core ## + - QML modules with no surrounding navigation -- this is basically a + special case for full-screen Calamares -- now have margins suitable + for full-screen use. + - PythonQt modules are increasingly on the way out. + +## Modules ## + - The Manjaro package manager *pamac* has been added to those supported by + the *packages* module. + - The *netinstall* module has had some minor UI tweaks. + - Partitioning now tries harder to avoid floppy drives. + + +# 3.2.26.1 (2020-06-23) # + +This is a hotfix release for undefined behavior caused by an +uninitialized integer variable. It includes new translations +and features as well since those arrived independently. + +This release contains contributions from (alphabetically by first name): + - Anke Boersma + - Gaël PORTAY + +## Core ## + - Welcome to Azerbaijani translations. These are available + in two variations, *Azerbaijani* and *Azerbaijani (Azerbaijan)*. + [Wikipedia Azerbaijani](https://en.wikipedia.org/wiki/Azerbaijani_language#North_vs._South_Azerbaijani) + has a nice overview. + - Warnings while building with Qt 5.15 have been much reduced. + +## Modules ## + - *partitioning* has one case of undefined behavior (UB) due + to a missing integer-initialization. (Thanks Gaël) + - *keyboardq* QML module now works correctly. (Thanks Anke) + + +# 3.2.26 (2020-06-18) # + +This release contains contributions from (alphabetically by first name): + - Anke Boersma + - Gaël PORTAY + - Pablo Ovelleiro Corral + - Philip Müller + +## Core ## + - The default branch for Calamares source repositories (calamares + and calamares-extensions) is now *calamares*. + - External modules can now be built again, outside of the Calamares + source and build-tree. + - The repository *calamares-tools* has been removed. The idea behind + the tooling was to provide schema validation for Calamares configuration + files. This has been merged into the primary repository, where it + is now part of the test suite. + +## Modules ## + - *locale* put some more places into the correct timezone **visually**; + for instance Norfolk Island gave up UTC+11.5 in 2015 and is now + UTC+11, but Calamares still showed it in a zone separate from UTC+11. + - *localeq* can now properly switch between on & offline mode, + it detects internet status through js. + - *packages* gained support for the Void Linux package manager, + *xbps*. (thanks Pablo) + - *tracking* now supports kuserfeedback configuration. + - *welcomeq* added the GEOIP configuration option, so locale can be + initially set according to IP address. + + +# 3.2.25 (2020-06-06) # + +This release contains contributions from (alphabetically by first name): + - Anke Boersma + - Callum Farmer + - FLVAL + - Gaël PORTAY + +## Core ## + - The slideshow in `branding.desc` can be configured with QML (recommended, + as it has been for the past umpteen releases) or with a list of + images (new). + - It is possible to turn off all the new QML code -- navigation, slideshow, + QML-based modules -- with a single `-DWITH_QML=OFF` at CMake time. + This removes QML from Calamares' dependency footprint (but only saves + 200kB in Calamares itself). + - Tests have been extended and now support a tests/CMakeTests.txt file + for fine-tuning tests for Python modules. + - SPDX identifiers are used much more widely and consistently in Calamares. + (thanks Callum) + +## Modules ## + - The QML based *welcomeq* module is now a viable alternative to the + *welcome*(widgets based) module. Using QML files means it no longer + is needed to have pop-up windows for additional information or warnings, + all loads in the Calamares window itself. Additional features include the + option to customize the *About* info and load files like Release Notes + direct into Calamares, QML files added to the branding directory can be used. + - The *welcome* and *locale* modules that do GeoIP lookup can now also + use "fixed" style; this just negates the GeoIP lookup and substitutes a + constant (fixed) value; useful for testing specific locales. + - The *keyboard* module no longer uses *ca_eng* keyboards in Canada by + default, but sticks to the *us* keyboard. #1419 + + +# 3.2.24 (2020-05-11) # + +This release contains contributions from (alphabetically by first name): + - Bill Auger + - Gaël PORTAY + - Luna Jernberg + - Philip Müller + +## Core ## + - There is now a bash-completions script for Calamares; turn on + the (CMake-time) option INSTALL_COMPLETION to get it. (Thanks Gaël) + - The *productWallpaper* setting is documented and works. (Thanks Bill) + - GlobalStorage is available to QML modules as `Global`. + - The height of the navigation bar in QML can be set within the + QML code for the navigation; if not set, try something sensible. + - A regression in the requirements-checker which could block the + installer from proceeding without telling the user **why** it + was blocked, has been resolved. + +## Modules ## + - The *bootloader* module can force a UEFI-based machine to boot into + the newly-installed system. #1394 (Thanks Gaël) + - *partition* Pop-ups about boot flags use the right flag names. #1192 + + +# 3.2.23 (2020-04-17) # + +This release contains contributions from (alphabetically by first name): + - FLVAL + +## Core ## + - Some strange annotations were added to the *About* dialog text in + all the translations, like `{1?}`. These have been removed again. + +## Modules ## + - *locale* module had some errors in timezone data, where clicking + on a city would select a different timezone. Some of these are + now fixed (thanks FLVAL). #1374 + - *netinstall* supports a wider variety of package naming schemes, + and is more flexible in loading a `netinstall.yaml` that is copied from + the example configuration file, *groups* key and all. #1369 + - *users* module logs a full error message from libpwquality if something + is wrong internally. + + +# 3.2.22 (2020-04-08) # + +This release contains contributions from (alphabetically by first name): + - Anke Boersma + - Camilo Higuita + +## Core ## + - Both the sidebar (on the left) and the navigation buttons (along the + bottom of the window) can now be configured to use the traditional + *widgets*, to use *qml*, or *hidden* from view (hiding the navigation + is not recommended unless you have a pure-QML UI to run inside + Calamares). The example QML that is compiled into Calamares has + been improved. To use your own QML, put files `calamares-sidebar.qml` + or `calamares-navigation.qml` into the branding directory. + - The sidebar and navigation can now be placed on any side of the + main window. This is probably only useful for QML-based UIs. + See `branding.desc` for details. + +## Modules ## + - The *welcomeq* module has been improved with better layout and + nicer buttons in the example QML form. (Thanks to Anke Boersma) + - The *keyboardq* and *localeq* modules now provide some QML for + configuring these parts, although they are still very primitive. + - *netinstall* has had some minor layout fixes. + - *unpackfs* has much more detailed progress reporting and no + longer jumps around strangely in overall progress. + - *partition* now correctly marks a partition as bootable in BIOS + MBR + installs. #1175 + + +# 3.2.21 (2020-03-27) # + +This release contains contributions from (alphabetically by first name): + - Anke Boersma + - Camilo Higuita + - Gabriel Craciunescu + - Gaël PORTAY + +## Core ## + - Python job modules (such as *unpackfs* or *packages*) can now provide + a `pretty_status_message()` function, like the existing `pretty_name()` + function, that is used to update the status during install. #1330 + - QML support-modules and objects are now registered into the io.calamares + namespace. This affects modules using Calamares models inside their + QML UI (at this point, very few). With this release, the necessary + `import` for Calamares parts looks like + > ```import io.calamares.ui 1.0``` + A complete list of objects available from Calamares van be found in the + documentation in `Qml.h`. + - The sidebar (which shows overall progress in the installation) is now + more configurable: the branding key *sidebar* controls it. The sidebar + can be shown as a widget (default, as it has been), hidden, or use a + new QML view which is more easily customised. + - A new `settings.conf` key *quit-at-end* will automatically close + Calamares (by clicking on the *Done* button) when the end of the + sequence is reached. If *finished* is the last module in the sequence, + this will run whatever it is configured for; you can also leave out + the finished page and Calamares will close after the exec parts. + +## Modules ## + - *packages* now reports more details in the installation progress-bar. + - *netinstall* module supports an `expanded` key, which will pre-expand + a group (as if the user had pressed the arrow-button in the tree-view). + This only affects the UI, and only the **outermost** level of groups. + - *netinstall* module now supports a special value for *groupsUrl*. + Setting this to *local* will read the groups directly from the + configuration file. + - *netinstall* groups now support a new key `immutable` which prevents + their check-state from being changed (they are shown, or hidden, + as usual and can be expanded). + - Modules that use QML need a new import line. The QML file for the + module is configured through new keys *qmlSearch* and *qmlFilename* + (previously those were without the `qml` prefix, which invites name + collisions). The full module identifier is also used as a filename, + so that multiple instances of a module can use different QML files. + - *partition* module has a number of new features and settings for + type, UUID, and filesystem characteristics. Thanks to Gaël. + + +# 3.2.20 (2020-02-27) # + +This release contains contributions from (alphabetically by first name): + - Bart Ribbers + +## Core ## + - When logging level is set to 8 (eight), for instance via the `-D8` + logging flag, or the `-d` debug flag, the *Show debug information* + button will appear in the progress view. This helps with debugging + issues where the `-d` flag would be inappropriate. + - Calamares now starts at logging level 1 (warnings and errors to + the console) by default. Previously it (wrongly) started at level 8. + +## Modules ## + - The *partition* module now stores which filesystems are in use in + global storage. + - The *contextualprocess* module now understands "compound variable + names", where a dot (.) is used to index into structured data + stored in global storage. This allows it to use the map stored + by the partition module (but also other things, like looking into + the branding information). + - The *packages* module now understands "apk", the Alpine Linux + package manager. + + +# 3.2.19.1 (2020-02-24) # + +This is a hotfix release for bugs in the *users* module. +Reported by Philip Mueller and Walter Lapchynski. + +## Modules ## + - The *users* module no longer wrote `/etc/hostname` at all. + - The *users* module erroneously shows the root password input fields. + - The *initramfs* module sets a resume-hook even when there is no swap. + - The partitioning service expects *udevadm* in `/sbin`, but some + distro's place it elsewhere. + - The mount service didn't unmount directories properly, leading to + blocked installations. + + +# 3.2.19 (2020-02-21) # + +This release contains contributions from (alphabetically by first name): + - Anke Boersma + - Camilo Higuita + - Gabriel Craciunescu + +## Core ## + - *Assamese* translation has been completed. + - Translations are now loaded from more places: instead of **only** + being compiled in to the Calamares executable, they can now be + read from the current directory (when Calamares is run in developer + mode) and from the application data directory.This allows updating the + translations without requiring a recompile: helpful for translators + and possibly for distributions with their own translation style. + See the translators and deployers wiki for details. + - A new `ViewStep` base class, `QmlViewStep`, has been added that loads + a configurable QML file and plays it. This is used by the new *notesqml* + module -- which is in itself a minimal wrapper around the same that + adds only a translatable module name. + +## Modules ## + - The *machineid* and *users* modules now prefer high-quality random + data from `/dev/urandom` rather than pseudo-random data. #1254 + - A new *notesqml* module supports loading QML. This can be used for + "fancy" release notes as a QML application, rather than a webview + or text widget. Note that this does not replace the slideshow-during- + installation module. + - The *users* module now has knobs for setting the hostname and writing + the `/etc/hosts` file. The new configuration options are documented + in `users.conf`. #1140 + - Multiple *netinstall* modules can exist side-by-side, and they each + control the package installation for their part of the package list. + Previously, a netinstall module would overwrite all of the package + configuration done by other netinstall modules. Translations can be + provided in the configuration file, `netinstall.conf`. #1303 + - The *fstab* module no longer "claims" all the swap partitions it finds + on disk. It only uses swap specified for the current installation. + This means that "replace" and "alongside" installations will have + no swap configured in the target system. + + +# 3.2.18 (2020-01-28) # + +This release contains contributions from (alphabetically by first name): + - Bill Auger + +## Core ## + - *Assamese* translation has been added (still in preliminary state). + - Timezone support code has migrated into the core of Calamares. This + means that modules now have easier access to timezone information. + Translations for timezones have also been enabled, so it is **possible** + at least to translate the displayed zones in the *locale* module. + - Branding can now specify whether to (try to) display the Calamares window + in the middle of the desktop or not. The *windowPlacement* key in + `branding.desc` specifies *center* or *free* placement. + +## Modules ## + - All modules can now set a new key in `module.desc` called *noconfig*. + If this key is set to `true` (the default is `false), no configuration + file is searched-for or loaded, and no warning is printed if the + configuration is missing. This should tidy up some unnecessary warnings + on startup. #1302 #1301 + - The *license* module has seen a significant change to its looks. + Actions are now labeled more clearly, and the URL (or filename) + for each license is displayed. + - The *locale* module now supports translations for timezone and + location names (e.g. "Berlin" is "Berlijn" in Dutch). + - *Packagechooser* is a little more careful with displaying + default and empty package names. (thanks to Bill Auger) + - The *unpackfs* module now carries a larger weight in the overall + progress of the installation, which should resolve downstream reports + like "progress stops at 24% for a long time". This is currently + hard-coded, but will become configurable in a future release. #1176 + + +# 3.2.17.1 (2019-12-02) # + +This is a hotfix release for a bug in the grubcfg module. +Reported by Philip Mueller and Erik Dubois. + +## Modules ## + - The *grubcfg* module had a typo in it that made installations fail. + + +# 3.2.17 (2019-11-28) # + +This release contains contributions from (alphabetically by first name): + - Bill Auger + +## Core ## + - A translation "string freeze" is now enforced by the release scripts. + +## Modules ## + - A new module, *hostinfo*, places information about the host into + Global Storage. This can support contextualprocess modules that + need that information. + - The password-checks in the *users* module are now ordered consistently. + A new check *nonempty* can be used to explicitly check for a non-empty + password. This was previously hard-coded. If you have no other + password-requirements set (e.g. minimum-length) and rely on + Calamares to filter out empty passwords, add this check. + - The *grubcfg* module has a new configuration setting *keepDistributor* + which prevents replacing the `GRUB_DISTRIBUTION` line when writing + the new configuration. #1201 + - *packagechooser* documentation has been updated. + - *welcome* module now works better with dark themes. + - The *license* module could get into a confused state, now fixed. #1271 + + +# 3.2.16 (2019-11-01) # + +This release contains contributions from (alphabetically by first name): + - Bill Auger + +## Core ## + - Some obscure build scenarios which would lead to bogus module-is- + misconfigured messages on startup have been resolved. + +## Modules ## + - The explanatory messages on the *users* page have moved to tooltips, + and placeholder text has been added to the fields. #1202 + - The bad-password messages in the *users* page have been improved. #1261 + - Password-checking in the *users* module has been substantially + changed. A new key *allowWeakPasswords* can be used to introduce + an additional checkbox to the page, which can then be used to + switch off strict password checking. (Thanks to Bill Auger) + - The icons used in password warnings on the *users* page have been + changed to the colorful status icons (rather than the thin red X). + + +# 3.2.15 (2019-10-11) # + +This release contains contributions from (alphabetically by first name): + - No other contributors this time around. + +## Core ## + - No changes to core functionality + +## Modules ## + + - *displaymanager* module now treats *sysconfig* as a regular entry in the + *displaymanagers* list, and the *sysconfigSetup* key is used as a + shorthand to force **only** that entry in the list. #1253 + - *machineid* module has been re-written in C++ and extended with + a new configuration key to generate urandom pool data. #1252 + - *unpackfs* now supports a special *sourcefs* value of `file` + for copying single files (optionally with renaming) or directory + trees to the target system. + - *unpackfs* now support an *exclude* and *excludeFile* setting for + excluding particular files or patters from unpacking. #1229 + + +# 3.2.14 (2019-09-30) # + +This release contains contributions from (alphabetically by first name): + - Andrius Štikonas + - Harald Sitter + +## Core ## + - No changes to core functionality + +## Modules ## + + - *locale* module no longer recognizes the legacy GeoIP configuration. + This has been deprecated since Calamares 3.2.8 and is now removed. + - *packagechooser* module can now be custom-labeled in the overall + progress (left-hand column). #1228 + - *displaymanager* module now recognizes KDE Plasma 5.17. + - *displaymanager* module now can handle Wayland sessions and can detect + sessions from their .desktop files. #1247 #1248 + - *unpackfs* now has special handling for *sourcefs* setting "file" + (so you can copy single files or directories that are on the source + system, directly to the target). #1188 #1181 + + +# 3.2.13 (2019-08-30) # + +This release contains contributions from (alphabetically by first name): + - Arnaud Ferraris + - Arnaud Rebillout + - Bill Auger + - Kevin Kofler + +## Core ## + +- The Calamares standard coding style -- embodied in `ci/calamaresstyle` + has had a few updates and has now been consistently applied across + the core codebase (e.g. libcalamares, libcalamaresui, calamares, but + not the modules). +- *KCoreAddons* is now a required dependency. This lets us drop a chunk + of code that was copied from KCoreAddons years ago, and use the + (maintained!) upstream version instead. It also gives us KMacroExpander + everywhere, which will simplify code for handling substitutions + in configuration files. +- *Slideshows* now have a new property *activatedInCalamares* which + controls the keyboard shortcuts (and can control timers and other + properties of the slideshow, too). + +## Modules ## + +- The *packagechooser* module can load data from the config-file, + from AppData XML files referred by the config-file, and (new) also + from AppStream caches by referring to an application's AppStream id. #1212 +- The *partition* module now understands the units *KB*, *MB*, *GB* which + are powers-of-ten sizes, alongside the powers-of-two sizes that it already + used. (thanks to Arnaud) +- The *welcome* module now supports a *Donate* button if *showDonateUrl* + is set to a non-empty URL. #1197 +- The *welcome* module can have URLs for the various buttons configured + directly in the module configuration (rather than in `branding.desc`). + + +# 3.2.12 (2019-08-07) # + +This release contains contributions from (alphabetically by first name): + - apt-ghetto + - Bill Auger + - embar + +## Core ## + + - Preliminary work to allow jobs to have a *weight* assigned to them + has been added. This will allow the progress bar to better reflect + progress by the amount of work done rather than purely by the + number of jobs. (Thanks to Bill Auger) + - Preliminary work has been added to post the installation log to a + pastebin for bug reporting. (Thanks to Bill Auger) + - Support for translated human-readable strings in Calamares + config files has been added. This is used only in the *packagechooser* + module (see below) but will expand to those modules that need + user-visible strings from the configuration file (existing + solutions need either gettext or Qt support). + - Esperanto is now available when Qt version 5.12.2 or later is used. + +## Modules ## + + - *fstab* A new configuration key *efiMountOptions* has been added, to + allow setting filesystem options specifically for the EFI partition. + (Thanks to apt-ghetto) + - *packagechooser* is a new module for low-density package choices, + e.g. for selecting a default desktop environment, or adding some + proprietary drivers, or chosing browsers of office suites. It presents + **one** collection of items -- at most ten or so, because of the UI -- + and the user can select zero or more of them. The behavior is + configurable, and package information can be set through the Calamares + configuration file or by reading AppData files for the packages. #426 + + +# 3.2.11 (2019-07-06) # + +This release contains contributions from (alphabetically by first name): + - No other contributors this time around. + +This is a security release with no functional changes (except for +improved security) relative to 3.2.10. The Calamares team would like +to acknowledge the help of the following people in reporting and +understanding the issues (alphabetically by first name): + - Kevin Kofler + - Seth Arnold + - Simon Quigley + - Thomas Ward +Both CVE's have been resolved. + +## Core ## + +No core changes. + +## Modules ## + + - *initramfs* could create an initramfs with insecure permissions. + Since the keyfile is included in the initramfs, an attacker could + read the file from the initramfs. #1190 CVE-2019-13178 + - *luksbootkeyfile* created a key file where a window of opportunity + existed where the key file could have too-lax file permissions. + #1191 CVE-2019-13179 + + +# 3.2.10 (2019-06-28) # + +This release contains contributions from (alphabetically by first name): + - No other contributors this time around. + +Distributions are **advised** to check the slideshow they use for the +installation step; changes in loading and translation mechanisms may +require changes in the slideshow. + +## Core ## + + - With this release, option *WITH_PYTHONQT* changes default to **off**. + There does not seem to be any serious use of the PythonQt API and + the UI opportunities it offers, so begin the process of deprecating + and removing that. Sometime in the future, QML pages will fill the + gap for easily-prototyped-yet-slick UI elements. + - A crash when no *finished* page (or rather, no page at all) is + configured after the last *exec* section of the sequence has been + solved. The *finished* page can be left out (but then you don't get + the restart-now functionality). #1168 + - The *slideshow* which is run during installation now has API versions. + API version 1 (the default) runs as before, where the slideshow is loaded + when the installation starts. API version 2 loads the slideshow on + Calamares startup, thus improving responsiveness. Documentation + in `src/branding/README.md`. #1152 + - The example slideshow now uses API version 2. + +## Modules ## + + - *initramfs* has been changed from a Python module to a C++ module. + Packaging will need to adjust now it installs a .so instead of a .py. + The module itself functions as before. It does have a new configuration + option, to change the version passed as to the `-k` option of + update-initramfs. #1180 + - *partition* Now has its own setting for *requiredStorage*, duplicating + the same setting in the *welcome* module. This is useful for + configurations where no *welcome* module is used, but a minimum + size must be checked anyway. #1169 + + +# 3.2.9 (2019-06-03) # + +This release contains contributions from (alphabetically by first name): + - Kevin Kofler + +## Core ## + +No user- or deployer-visible changes. Bugfixing as usual, see the +milestone for details. + +## Modules ## + + - *branding* now supports os-release variables in the *strings* section, + which allows re-using (at runtime) information set in /etc/os-release . + This requires KDE Frameworks 5.58. #1150 + - *branding* allows the use of FreeDesktop.org icon names for the + *productLogo* and *productIcon* keys. If a file is named there, then + the file is used, and otherwise the icon is looked up in the current + theme. #1160 + - *packages* On Arch, with the `pacman` package manager, avoid a hang + during system update. #1154 + - *welcome* allows a custom image path or icon name to be set for the + language-selection drop-down (instead of the international standard one). + + +# 3.2.8 (2019-05-10) # + +This is a **source-incompatible** release of Calamares. Include files +have been shuffled around, so third-party C++ modules will need +adjustment to the changed names. + +This release contains contributions from (alphabetically by first name): + - Arnaud Ferraris + - Kevin Kofler + +## Core ## + + - All user-visible texts referring to "MB" and "GB" now use the standard + "MiB" and "GiB" wording, which matches what we were actually calculating + with (i.e. 2^20 and 2^30 respectively). #1129 + - The side-pane, which shows the list of steps that will be executed, + now tries to fit the text (name of each module) into the available space + by shrinking the font as needed. #1137 + - *libcalamares* (accidentally) linked with Qt's GUI libraries when + PythonQt was found. This led to the odd situation where the non-GUI + Calamares library depends on a bunch of GUI libraries. + - *libcalamares* The `utils/` subdirectory has been hugely refactored, + with functionality split out into separate files. C++ modules will + need to have their `#include` names updated. Basically, users of + `utils/CalamaresUtils.h` will need to include the header file for + the functionality that is actually used. + +## Modules ## + + - *finished* has a new mechanism for configuring the behavior of the + *restart now* button. The old-style boolean configuration is still + supported but generates a warning. #1138 + - *locale* module GeoIP configuration has a new preferred format. + See `locale.conf` for details. The old configuration is still + supported but will be phased out before 3.3.0 -- in particular, + support for "legacy" format will be removed, since that was a + crutch for the disappearance of one GeoIP provider in 2018. + - *oemid* is a new module for configuring OEM phase-0 (image pre-mastering, + or pre-deployment) things. It has limited functionality at the moment, + writing only a single batch-identifier file. #943 + - *welcome* can now do GeoIP lookups as well (but be careful with the + configuration, since you need a GeoIP that provides country information, + not just timezones). This will let Calamares select a starting language + that matches where it is -- which might not be useful at all. #934 + - All Python modules now bail out gracefully on (at least some) bad + configurations, rather than raising an exception. The pre-release + scripts now test for exceptions to avoid shipping modules with + ImportError or SyntaxError results. + + +# 3.2.7 (2019-04-27) # + +This is a **hotfix** release for regressions introduced in the +Python modules. The *localecfg* module was unusable because of +a missing `import`. + + +# 3.2.6 (2019-04-25) # + +This release contains contributions from (alphabetically by first name): + - Arnaud Ferraris + - Dominic Hayes (feren) + - Raul Rodrigo Segura (raurodse) + +## Core ## + + * Under-the-hood code cleanups in lots of parts of the core. Calamares now + builds without warnings when Clang 8 is used. + * A new *disable-cancel-during-exec* setting provides more fine-grained + control than *disable-cancel*, which hides the button entirely. + #1122 (Thanks to Dominic, FerenOS) + * A branding module can now also cause a stylesheet to be loaded, which + will be applied to the widgets inside Calamares. #961 (Thanks to Raul) + +## Modules ## + + * All of the Python-based modules now have translations enabled. #991 + * *Displaymanager* module has improved support for LightDM configuration. + #1123 (Thanks to Dominic, FerenOS) + * *License* module can now display local files inline, and scrolls to + allow longer lists of licenses and to support long license texts + displayed inline. #1124 #1125 #1052 + * *Partition* module has additional checks for validity partition layouts. + #1127 (Thanks to Arnaud) + * *Welcome* module has improved usability: a standard icon + alongside the *Language* label, for improved recognition, + and improved language-list display and sorting. #1107 + + +# 3.2.5 (2019-04-15) # + +This release contains contributions from (alphabetically by first name): + - Arnaud Ferraris + - Dan Simmons + - Gabriel Craciunescu + +## Core ## + + * View modules (in C++) can now perform their own requirements-checking + to see if installation makes sense. This expands upon the existing + requirements checks in the welcome module (RAM, disk space, ..). + The checks have been made asynchronous, so that responsiveness during + requirements-checking is improved and the user has better feedback. + * Support for building an AppImage of Calamares has been added to the + `ci/` directory. There are use-cases where a containerized build and + configuration make sense rather than having Calamares installed in the + host system. (Thanks to the AppImage team, Alexis) + * OEM mode (phase-1) now correctly refers to Calamares as a "Setup Program" + rather than an installer. #1100 (Thanks to Arnaud) + +## Modules ## + + * *Bootloader* module: a serious bug introduced in 3.2.4 which prevents + succesful boot after installation on EFI machines, has been repaired. + (Thanks to Gabriel) #1104 + * *Displaymanager* module: it is no longer a fatal error to not have any + display-managers. #1095 + * *Partition* module: it is now possible to build without libparted. Since + KPMCore may not need this library anymore, it is a dependency that will + be dropped as soon as it is feasible. Add this to the CMake flags: + `-DCMAKE_DISABLE_FIND_PACKAGE_LIBPARTED=ON` + * *Partition* module: the location that is selected for the bootloader, + no longer changes when a new partition is created. #1098 + * Python modules: several modules have had translations added. This is + usually only visible when the module runs as part of the *exec* step, + when the module's *pretty name* is displayed. In addition, some error + messages are now translated. + * *UnpackFS* module: improved progress reporting and tests. #565 + + +# 3.2.4 (2019-02-12) # + +This release contains contributions from (alphabetically by first name): + - Alf Gaida + - aliveafter1000 + - Arnaud Ferraris + - Caio Jordão Carvalho + - Collabora LTD + - Gabriel Craciunescu + - Kevin Kofler + - Philip Mueller + - Scott Harvey + +## Core ## + + * The Calamares application now recognizes the `-X` or `--xdg-config` + option, which adds XDG_DATA_DIRS to the places used to find QML + and branding directories, and XDG_CONFIG_DIRS to the places used + to find the global settings and module configurations. This allows + a more fine-grained, and more layered, approach to setting up + Calamares configurations (in particular, distro's can **add** + configuration files and give them priority, instead of **forking** + configuration files). + * The *branding* file now contains settings that control the size + and resize behavior of Calamares. See the branding file for + more documentation. In particular, the setting *windowExpanding* + can be set to *normal*, *fullscreen* or *noexpand*. + * The `settings.conf` file can now configure whether the *Cancel* button + is shown (this isn't a branding thing, because it's quite fundamental + to the workflow of the installer). + +## Modules ## + + * The *partition* module supports RAID devices, but only when Calamares + is compiled with the newest KPMCore release (3.3.0). + * The calculation of required space -- including swap -- has been simplified, + and Calamares no longer reserves 2GiB of space in calculations for internal + use (this means that it no longer mysteriously drops swap when the disk + size is close to the required installation size). + * The name of the type of default filesystem (e.g. ext4 or btrfs) is now handled + case- and localization-insensitively. This means that *btrfs* is now always + an acceptable spelling. + * The currently-selected disk device is remembered between manual partitioning + and the partitioning-overview pages. (Thanks to Arnaud) + * *partition* There is new support for partitioning layout presets. + See `partition.conf` for documentation and details. + * The *keyboard* module now handles the (bogus) Austrian keymap for + the system console properly. (Thanks to Kevin) + * The *preservefiles* module now has a mechanism for setting the permissions + (and ownership) of preserved files. (Thanks to Scott) + * New module *fsresizer* can be used to resize filesystems. It is intended + for use in OEM installs where an image of fixed size is created, + and then sized to the actual SD card the user has used. + * The *mount* module now handles missing *extraMounts* and *extraMountsEfi* + keys gracefully (this is probably a misconfiguration, though, and gives a + warning). + * The *packages* module now supports pre- and post-script options + for all operations, not just during install (keep in mind that + these run as three separate shells, though). + * A new *rawfs* module supports straightforward copying of filesystems from + the installation media to the target stystem. This can be used, for instance, + for block-level-identical installations. + + +# 3.2.3 (2019-01-09) # + +This release contains contributions from (alphabetically by first name): + - aliveafter1000 + +## Core ## + +There are no core changes in this release. + +## Modules ## + + * *partition* Fixed bug where, during detection of existing systems, the + existing system partitions may be mounted and then files deleted. + This is a **limited** version of the patch from aliveafter1000 + that will be in 3.2.4, which tries harder to mount filesystems + read-only and unmodifiable. + * *locale* It was possible to set the installer and system language + (e.g. to German) while the global storage value for *locale* + remained set to English. Then no localization packages are installed + (see feature `${LOCALE}` in `packages.conf`). Reported downstream + in Netrunner. + + +# 3.2.2 (2018-09-04) # + +This release contains contributions from (alphabetically by first name): + - Andrius Štikonas + - artoo@cromnix.org + - Caio Jordão Carvalho + - Harald Sitter + - Philip Müller + - Simon Quigley + - Walter Lapchynski + +## Core ## + + * Example configurations are **no longer installed** by default. + The default setting for *INSTALL_CONFIG* has changed. Distributions + are strongly encouraged to write their own configuration files and + not rely on the example configuration files. Example configurations + may change unpredictably. + * It is now possible to express module dependencies through the + *requiredModules* key in `module.desc`. All of the required modules + for a given module must occur in the sequence **before** the module + requiring them. None of the core modules use this facility. + * The search paths for QML files, branding descriptors and module + descriptors have been revamped and now self-document in the log. + * A new `ci/RELEASE.sh` script has been added to streamline releases; + it is not guaranteed to work anywhere in particular though. + +## Modules ## + + * When multiple modules are mutually exclusive, or don't make sense + to enable concurrectly, a new `USE_` framework has been added + to CMake to simplify the selection of modules. This is in addition + to the existing `SKIP_MODULES` mechanism. + * Various off-by-one-sector errors in the automatic partitioning + mode have been corrected. In addition, swap space is calculated + a little more conservatively. + * A new module has been added to the core which can configure openrc + services. To make services configuration consistent: + - The *services* module has been **renamed** *services-systemd*, + - The openrc module is named *services-openrc*, + - At CMake time, it is possible to select all of the services modules, + or one specific one, by setting the *USE_services* CMake variable. + By default, all of the modules are built and installed. + * The systemd-services module can now disable targets and mask both + targets and services (which will allow you to break the system with + a bad configuration). The configuration is a little more flexible + because a service (or target) name can be used on its own with + sensible defaults. + * The displaymanager module has been entirely revamped. A long-standing + bug which ignored the settings for default desktop has been fixed + (thanks to Walter Lapchynski). Translations have been added to the + error messages. Each DM now has an implementation class for doing + all the configuration steps it needs. This groups the code needed for + a specific DM (and presumably, per-distro) in one place. + Distro's are **strongly advised** to re-test their DM configuration + and installation with the revamped code. + +# 3.2.1 (2018-06-25) # + +This release contains contributions from (alphabetically by first name): + - Bill Auguer + - Gabriel Craciunescu + - Phil Mueller + - Raul Rodrigo Segura + +## Core ## + + * Qt 5.7 is now the minimum required Qt version. Because KPMCore + (a fairly fundamental dependency) requires Qt 5.7, Calamares + has followed suit. + * New testing application `loadmodule` for loading and running a + single Calamares module. + * New translations Belarussian and Korean. + * Jobs can now be *emergency jobs* which run even after a failure. + * Improved debugging when modules fail to load. + * Bad configuration files will now cause the user-interface of + Calamares to display an error message, rather than silently + ignoring some configuration errors. This will certainly cause + problems for distributions with sloppy configurations. + +## Modules ## + + * New module preservefiles, keeps (log) files around after install; + this duplicates functionality with the unmount module, but unmount + is very late, rather limited, and fragile. + * Interactiveterminal module now disables itself if build requirements + are not met, rather than blocking the build. + * Fixes in the timezone map data make the southern hemisphere more + usable and put Reykjavik in its place. + * The packages module can now update the target system if explicitly + told to do so. + * More paths and executables are configurable in the bootloader module. + * Distributions are advised to review the `users.conf` setup **again**, + as some changes in version 3.2.0 caused regressions downstream. + * Distributions are advised to review their `locale.gen` files + **again**. Previous changes were too restrictive, matching only + the specific format Chakra Linux uses. Calamares now preserves + all the comment-lines in the file and writes enabled locales + at the end, with a descriptive comment. + +# 3.2.0 (2018-05-17) # + +This release contains contributions from (alphabetically by first name): + - Alf Gaida + - AlmAck + - Caio Jordão Carvalho + - Frede H + +## Modules ## + + * UI annoyances in the partitioning module were fixed; the + mount-point selector is now more obvious when no mount-point + has been chosen, and the mount-point and flags are preserved + when (re)editing partitions. + * The handling of `@@ROOT@@` substitution in shellprocesses was + backwards; this has been fixed (the substitution is made when + running in the **host**). + * The user shell is no longer hard-coded to `/bin/bash`, + but follows the default setting for useradd(8), e.g. + those set in `/etc/default/useradd`.