-
Notifications
You must be signed in to change notification settings - Fork 7
/
CHANGES-3.3
558 lines (450 loc) · 20.6 KB
/
CHANGES-3.3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
<!-- SPDX-FileCopyrightText: no
SPDX-License-Identifier: CC0-1.0
-->
This is the changelog for Calamares. For each release, the major changes and
contributors are listed. Note that Calamares does not have a historical
changelog -- this log starts with version 3.3.0. See CHANGES-3.2 for
the history of the 3.2 series (2018-05 - 2022-08).
# 3.3.11 (2024-11-05)
This release contains contributions from (alphabetically by given name):
- Adriaan de Groot
- Jakob Petsovits
- Simon Quigley
## Core ##
- Nothing yet
## Modules ##
- *unpackfs* now supports a `condition` configuration option for
conditional installation / unsquash. (thanks Simon)
- *unpackfsc* module imported from Calamares-extensions, and extended
with the same `condition` configuration.
- *partition* crash fixed when swap was using the wrong end-sector
in some GPT configurations. (thanks Jakob, #2367)
# 3.3.10 (2024-10-21)
This release contains contributions from (alphabetically by given name):
- Aaron Rainbolt
- Adriaan de Groot
- Evan James
- Neal Gompa
## Core ##
- Nothing yet
## Modules ##
- *keyboard* Repaired summary messages with strange formatting. (#2364)
- *keyboard* Can update KDE Plasma configuration in Wayland. (thanks Neal, #2264)
- *locale* Repaired summary messages with strange formatting. (#2364)
- *partition* Module fixed unwanted behavior with the encryption checkbox. (thanks Aaron, #2376)
- *umount* Correctly unmounts the root filesystem of the target. (thanks Evan)
- *users* Supports a new `home_permissions` setting to override the
distro's `useradd` configuration of the umask. Supports octal and rwx-style
specifications of permissions. Other places that use permissions now also
support octal and rwx-style. (#2362)
- *welcome* Follows system styling colors (e.g. Dark Mode).
# 3.3.9 (2024-08-12)
Please note that if you are using the *luksbootkeyfile* module,
it must be placed before the *fstab* module in settings.conf. If it comes
after, then the keyfile will be missing from crypttab and the user will be
asked for their password multiple times.
This release contains contributions from (alphabetically by given name):
- Adriaan de Groot
- Evan James
- Luca Matei Pintilie
## Core ##
- Improved schemas for configuration files
- Support for Interlingue in Qt 6.7
## Modules ##
- Placed *luksbootkeyfile* before *fstab* in the example `settings.conf` (#2356, Evan)
- *packages* module `xbcs` package manager now logs progress messages (#2359, Luca)
- *partition* module mentions creating a swap file in its summary (#2320, Adriaan)
# 3.3.8 (2024-07-02)
The *partition* bug described below was reported by jghodd, then carefully
described and made reproducible by Joe Kamprad, examined by Evan James
and repaired by Adriaan de Groot. Many thanks to all who participated.
This release contains contributions from (alphabetically by first name):
- Adriaan de Groot
- Evan James
- Lorenzo Faletra
- Tj
- Victor Fuentes
## Core ##
- nothing in particular
## Modules ##
- *contextualprocess* see *shellprocess*.
- *mount* module now correctly mounts luks and luks2-encrypted swap. (thanks Victor)
- *partition* avoids a crash with specific checkbox-presets. (thanks Evan)
- *partition* had a bug where manual partitioning on MBR systems might
skip the installation of a bootloader, even though the visible bootloader
combo-box showed that it would be installed. (see #2318)
- *partition* could calculate an incorrect partition size when installing to
very specific partition sizes, and now leaves a few more sectors for secondary
GPT tables. (thanks Tj)
- *shellprocess* now supports a *verbose* key (globally and per-command) which logs
command output line-by-line.
- *users* module defaults password salt to *yescrypt*. (thanks Lorenzo)
# 3.3.7 (2024-06-20)
This release contains contributions from (alphabetically by first name):
- Adriaan de Groot
- Eugene San
- Evan James
- Ivan Borzenkov
- Sohrab Behdani
- Vincent Penvern
- Vladislav Nepogodin
## Core ##
- Updated clang-formatting
- Some C++20 future-proofing (thanks Vladislav)
- CommandList (used by *contextualprocess* and *shellprocess*) now supports
globalstorage keys as substitutable variables.
## Modules ##
- *contextualprocess* see *shellprocess*.
- *fstab* module does not add an encryption keyfile if it does
not exist. (thanks Eugene)
- *initcpiocfg* has some new configuration settings to more carefully
adjust hooks for initcpio.
- *keyboard* module handles Persian (fa) layout better. (thanks Sohrab)
- *keyboard* module handles other non-ascii layout better. (thanks Ivan)
- *partition* module did not filter out invalid fstab entries;
they were not written, either, so no net change.
- *partition* module now has a configurable default check-state
for the encryption checkbox. (thanks Vincent)
- *shellprocess* commands now support globalstorage variables, which
are written as `${gs[key]}`, where `key` is a dotted string that
selects the globalstorage key to use (like in *contextualprocess*
variable-selectors) and `${gs[` and `]}` are literal characters.
# 3.3.6 (2024-04-16)
This release contains contributions from (alphabetically by first name):
- Adriaan de Groot
- Anke Boersma
- Eugene San
- Evan James
- Harald Sitter
- Mike Stemle
- Peter Jung
- Simon Quigley
## Core ##
- Various Qt6-related fixes.
- Calamares now prevents sleep and suspend while the installation is
running, so that unattended installs do not accidentally fall asleep.
## Modules ##
- *bootloader* Adds "splash" to kernel parameters if plymouth is present.
(thanks Eugene)
- *locale* Now picks the correct timezone for Dubai, Muscat, Tehran.
- *plymouthcfg* Use plymouth-set-default-theme to avoid issues with
configuration. (thanks Peter)
- *users* module now supports enrolling in Active Directory, if enabled.
(thanks Simon)
# 3.3.5 (2024-03-03)
This release contains contributions from (alphabetically by first name):
- Adriaan de Groot
- Evan James
- Peter Jung
## Core ##
- Calamares logs more information about how the executable was created
in the session log on startup. This will help in recreating the specific
configuration when bug reports are filed. (thanks Evan)
- The debug window now has better Qt6 compatibility.
## Modules ##
- *displaymanager* module can configure an alternate SDDM configuration file.
- *networkcfg* a bug affecting NetPlan + NetworkManager was fixed.
- *initcpiocfg* Add microcode hook to initcpiocfg
# 3.3.4 (2024-02-27)
In this release, process jobmodules -- a particular kind of module
recognizable by `type: job` and `interface: process` in the descriptor
file -- undergo a large change to resemble *shellprocess* more.
Users of process jobmodules are encouraged to double-check the Functionality
of those modules in this release.
This release contains contributions from (alphabetically by first name):
- Adriaan de Groot
- Victor Fuentes
## Core ##
- Process jobs (a job type provided by Calamares core) now share more
code with *contextualprocess* and *shellprocess* jobs. The execution
mechanism is the same, and always invokes the shell, whether the command
runs in the host or in the target system. It is no longer necessary to
add `/bin/sh` in the *command* key -- this is always present.
## Modules ##
- *contextualprocess* and *shellprocess* can now set environment variables
as part of the configuration. See *shellprocess* documentation for details.
This is optional, and does not do anything that could not already be done
by putting `export VAR=value ;` in front of the command before.
- *partition* fixed a bug with an uninitialized variable. (thanks Victor)
- *shellprocess* (and therefore also *contextualprocess* and process
jobmodules) now substitutes `${LANG}` in commands with the language
selected in the user-interface of Calamares.
# 3.3.3 (2024-02-24)
This release contains contributions from (alphabetically by first name):
- Adriaan de Groot
- Anke Boersma
Translations have been updated (3.3.2 skipped that step).
## Core ##
- Core libraries *libcalamares* and *libcalamaresui* now build with
hidden visibility by default, as a step towards ABI stability.
- A runtime crash caused by (mis?)use of Qt UniqueConnection which
shows up in Debug builds was resolved.
## Modules ##
- *interactiveterminal* can use konsole in Qt6 too. (thanks Anke)
- *plasmalnf* module ported to Plasma 6. (thanks Anke)
- *welcomeq* example extended to include Markdown syntax. (thanks Anke)
# 3.3.2 (2024-02-19)
This release contains contributions from (alphabetically by first name):
- Aaron Rainbolt
- Adriaan de Groot
- Anke Boersma
- Evan James
- Jonathan Riddell
- Lukas Märdian
- Tj
## Core ##
- Slideshow support code (QML) now ported to Qt6 and made available
as two separate directories of support-code. (thanks Jon)
- Compatibility with Qt versions prior to 5.15.5 has been removed.
## Modules ##
- *fstab* bug fixed where BTRFS messes up the partition layout. (thanks Tj)
- *networkcfg* on NetPlan-enabled systems, configure NetworkManager
with the live-system's NetPlan settings. (thanks Lukas)
- *partition* module can now also define unencrypted partitions
when encryption is used. (thanks Aaron)
# 3.3.1 (2024-01-15)
This release sets `BUILD_APPDATA` and `BUILD_APSTREAM` to default to **OFF**,
where previously they defaulted to **ON**. When enabled, the dependencies for
both features are required -- previously they would silently switch off if
the dependencies were not found. Distributions are strongly advised to check
their package-building instructions.
This release contains contributions from (alphabetically by first name):
- Adriaan de Groot
- Aleksey Samoilov
- Emir Sari
- Simon Quigley
## Core ##
- There has been internal code re-organization (e.g. not using functions
named `tr()`) to help translation tools.
- Strings everywhere have been given more context. (thanks Emir)
- In CMake, "view" is no longer accepted as an alias of the module
type "viewmodule" in function `calamares_add_plugin()`.
- Plain Ubuntu builds have been added to the CI roster. (thanks Simon)
- Commands that run in the target system (in the chroot) no longer
use the TMP-related environment variables from the host. #2269
## Modules ##
- The *displaymanager* module configuration for `greetd` has some more
options now. (thanks Aleksey)
# 3.3.0 (2023-12-12)
This release contains contributions from (alphabetically by first name):
- Adriaan de Groot
- Alberto Salvia Novella
- Christophe Marin
- Evan Maddock
- Frede Hundewadt
Since this is the first non-alpha release of 3.3.0, we would like to thank
all the contributors to a year and a half of alpha releases, six in all.
Distributions are **strongly** advices to take the release notes of
the alpha's into account as well.
## Core ##
- No changes of note.
## Modules ##
- *users* and *usersq* no longer support the password requirement 'nonempty'.
Use 'minLength: 1' instead. The example configuration allows the user to
choose any password at all, but also contains suggestions for other
password-requirements schemes. (thanks Alberto)
- *users* now can use stronger password hashes, if `crypt_gensalt()` is
available in the *crypt* library. (thanks Evan)
- *machineid* module supports several variations of writing /etc/machine-id .
# 3.3.0-alpha6 (2023-11-16)
This release contains contributions from (alphabetically by first name):
- Adriaan de Groot
- Anke Boersma
This is a hotfix release because -alpha5 didn't compile,
and Anke repaired the partition unit-tests when building with Qt6.
# 3.3.0-alpha5 (2023-11-13)
This release contains contributions from (alphabetically by first name):
- Adriaan de Groot
- Alejo Fernandez
- Anke Boersma
- Christophe Marin
- Emir Sari
- Evan James
- Gaël PORTAY
- Gecko Linux
- Jeremy Whiting
- Neal Gompa
## Core ##
- Boost::Python is no longer a dependency, Calamares uses a bundled copy
of pybind11 instead. This speeds up compilation and reducese the
dependency tree a great deal. You can set `WITH_PYBIND11=OFF` in the
build to keep Boost::Python and all the binary-compatibility problems
it entails.
- Coding style now wants clang-format 15 or 16, but no longer needs astyle.
There is also a clang-tidy file for additional styling support.
- Ongoing translation improvements. (thanks Emir)
- Translations for bqi (Luri), es_AR (Castellano), eo (Esperanto),
ka (Georgian). In **non-release** builds (e.g. between releases,
so for developers building directly from git) all translations are
enabled, even the ones with no translations at all.
- The logging format in the `session.log` file and on-screen is now
more similar, although the file contains a lot more per-line information.
- The INSTALL_CONFIG option has been restored. It is still a terrible
idea to fork the repository to modify the config files, and you
probably should have a calamares-config package with those files
instead, there are packaging workflows that can usefully patch-and-
install configuration files. The option defaults to OFF.
## Modules ##
- All QML modules now have a Qt6-compatible set of QML files as well. (thanks Anke)
- *packagechooser* supports AppStream 1.0 API.
- *unpackfs* now uses the `-S` option to rsync for sparse file support. (thanks Jeremy)
# 3.3.0-alpha4 (2023-10-13)
Another closing-in-on-3.3.0 release! One of the big changes is that
Calamares -- the core and nearly all of the modules in this repository --
are compatible with Qt6. That is, it compiles. Functionality has not
been tested, but early-testing distributions are encouraged to submit
pull requests to improve the code.
This release contains contributions from (alphabetically by first name):
- Adriaan de Groot
- Anke Boersma
- Emir Sari
- Evan James
- Hector Martin
- Ivan Borzenkov
- Simon Quigley
## Core ##
- Qt6 compatibility. You can choose Qt5 (with KDE Frameworks 5) as before,
or choose Qt6 (with KDE Frameworks 6). This means that a Qt6-based Linux
distribution can use Calamares without needing an extra version of Qt.
Note that some KDE Frameworks are required as well, and those need to be
Qt6-based also (and are not released as of September 2023).
- QML-based modules are also supported in Qt6, but the QML is likely to
be source-incompatible. The *welcomeq* module shipped with Calamares
now has two `.qrc` files and uses the `${QT_VERSION_SUFFIX}` variable
to pick one of the two depending on the Qt version being used.
Other modules are likely to follow the same pattern.
- C++ namespaces have been shuffled around and `CalamaresUtils` has been
retired. This has an effect on all C++ plugins, since this is neither
a binary- nor source-compatible change.
## Modules ##
- *keyboard* module can now be explicitly configured to use X11 keyboard
settings or the FreeDesktop locale1 DBus service. The latter is most
useful for Calamares as an "initial setup" system, not an installer,
in a Wayland session. (thanks Hector)
- *keyboard* module now writes X11 layout configuration with variants
for all non-ASCII (e.g. us) layouts. (thanks Ivan)
- *keyboard* module now can configure keyboard switch. (thanks Ivan)
# 3.3.0-alpha3 (2023-08-28)
This release contains contributions from (alphabetically by first name):
- Adriaan de Groot
- Aleksey Samoilov
- Anke Boersma
- Arjen Balfoort
- Boria138
- Brian Morison
- Emir Sari
- Evan Goode
- Evan James
- Ficelloo
- Hector Martin
- Jeremy Attall
- Johannes Kamprad
- Kasta Hashemi
- Kevin Kofler
- Mario Haustein
- Masato TOYOSHIMA
- Panda
- Paolo Dongilli
- Peter Jung
- Philip Müller
- Shivanand
- Sławomir Lach
- Sunderland93
- wiz64
## Core ##
- Incompatible module-configuration changes, see #1438.
- Branding entries use ${var} instead of @{var} for substitutions,
in line with all the other substitution mechanisms used from C++
core. See documentation in `branding.desc`.
- Boost::Python requires at least version 1.72.
- KDE Frameworks must be version 5.58 or later.
- The `INSTALL_CONFIG` option has been removed. If you are installing
the example configuration files from the Calamares repository, just
stop. That was never a good idea, and you should keep your configs elsewhere.
- Progress percentage during install can now be localized. (thanks Emir)
## Modules ##
- *dracut* added a configurable kernel name. (thanks Anke)
- *initcpiocfg* orders hookds slightly differently. (thanks Peter)
- *localeq* moved to using Drawer instead of ComboBox in UI. (thanks Anke)
- *keyboardq* moved to using Drawer instead of ComboBox in UI. (thanks Anke)
- *netinstall* now has a new *noncheckable* option for groups, which prevent
it a group from being checked/uncheckd as a whole. You can still check
individual items **in** the group though. (thanks Shivanand)
- *partition* can now pick LUKS or LUKS2. (thanks Jeremy)
- *zfs* creates a hostid through zgenhostid.
- *zfshostid* new module to copy zfs generated /etc/hostid
# 3.3.0-alpha2 (2022-08-23)
Second alpha release, with updated ABI compatibility checking,
some 3.3.0 release goals, new features in modules and important bugfixes.
This release contains contributions from (alphabetically by first name):
- Adriaan de Groot
- Anke Boersma
- Evan James
- Shivanand
- Vitor Lopes
## Core ##
A core **TODO** is moving all library code into the `Calamares` namespace,
dropping the `CalamaresUtils` namespace. Modern C++ supports nested namespaces,
so in some cases we can use those. This has a drastic effect on ABI compatibility,
though, as functions move from one namespace to another. This needs to be
completed before a 3.3.0 with ABI stability is released.
## Modules ##
Module schemas have been updated to reflect all the incompatible changes.
# 3.3.0-alpha1 (2022-06-27)
Initial 3.3.0 alpha release to check the release scripts &c.
This release contains contributions from (alphabetically by first name):
- Adriaan de Groot
- Aleksey Samoilov
- Anke Boersma
- Dan Simmons
- Evan James
- Peter Jung
# 3.3.0-pre-alpha (unreleased) #
This release contains contributions from (alphabetically by first name):
- Anke Boersma
- Anubhav Choudhary
- Evan James
- Vitor Lopes
This is a "minor" version change, but the size of the changes is very
large. Configuration files from previous versions of Calamares will
**certainly** need to be re-validated. Take heed of the many changes
in the *Modules* heading, below.
Users (distributions) are **strongly** advised to use the tools
for configuration validation (`ci/configvalidator.py`) to check
that the distribution configuration files follow the current schema.
## Project ##
- The C++ code in the project is now formatted with clang-format 12 or 13,
with the coding-style as found in `.clang-format`; there are minor
differences from the tool, compared to the clang-format 9 usually applied
to Calamares 3.2.
- The CMake code in the project is now formatted with gersemi 0.7.5.
## Core ##
- CMake 3.16, Qt 5.15 are now required; the newer CMake is to support
new features (also for KDE Frameworks), Qt is the current LTS version.
- Running `calamares -d` no longer enforces a single-application
(it is for debugging purposes, after all).
- Python 3.6 or later is now required, to allow for F-strings in
Python code and allow other tidy-ups in the Python modules.
Boost::Python now requires 1.67 or later (for CMake support).
- The log file now **always** contains a debug-log, and the `-D` flag
primarily controls what is printed to stdout. By default, stdout
only gets errors; use `-D6` to match stdout with the file. Use `-D8`
to get an extra-verbose log file **and** verbose stdout.
## Modules ##
- *bootloader* now supports more options when building the kernel
command-line. (Thanks Evan)
- *bootloader* no longer supports `@@`-style suffixes for unique-EFI-id
generation. Use `${}` instead.
- *displaymanager* no longer supports the discontinued *kdm* display manager.
- *fstab* configuration has been completely re-done. Many configuration
options have moved to the *mount* module. See #1993
- *grubcfg* changed the key *keepDistributor* to *keep_distributor*.
Please update configurations.
- *mount* now does most of the mounting; options that were in *fstab*
have moved here. See #1993
- *oemid* now uses consistent variable replacement (e.g. KMacroExpander)
and does not support `@@DATE@@` anymore (use `${DATE}`).
- *partition* requires KPMCore 21.12 (e.g. KPMCore 4.2 API, or later).
- *partition* can now skip installing the bootloader in more scenarios.
#1632 (Thanks Anubhav)
- *preservefiles* follows `${}` variable syntax instead of `@@`.