A month to the day, and we have reached the next – and also last –
alpha release along the road to Calamares 3.3.
More internal changes to cross off items on the TODO list:
Boost can be replaced by pybind11 (and it is, by default)
to make the Python modules less dependent on external libraries.
We’re happy to have contributors helping out with the
translation of Calamares into more languages than ever before.
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)
TODO
All of the TODOs which I had planned for a 3.3.0 release are now done.
Feedback
If you experience an issue with Calamares, please tell us all about it
on the Calamares issue tracker. For a full change list, see
the full list of issues closed within the current generation (which is many releases).
Another alpha along the road to Calamares 3.3, this one
contains a huge amount of internal changes to cross off two
items on the TODO list: Qt6 compatibility and QML support,
and normalizing the C++ namespace used by Calamares.
We’re happy to have contributors helping out with the
porting and with new features in Calamares modules.
For -alpha5 Anke has fixes to all the QML lined up,
Adriaan has Python bindings figured out, so expect that
one fairly quickly.
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)
TODO
In the interest of planning the next release, here are some
items that I think are required to get the 3.3.0 release
out the door:
- Drop Boost::Python and write the (very small) Python bindings by hand
- Restore the installation of config files from the repo.
This was removed for 3.3.0-alpha2 because forking the repo
to modify the configuration is a terrible idea. But this also breaks
patching-the-configurations at build- or packaging-time,
which is a legitimate use-case.
Feedback
If you experience an issue with Calamares, please tell us all about it
on the Calamares issue tracker. For a full change list, see
the full list of issues closed within the current generation (which is many releases).
Calamares 3.3.0 will have at least rudimentary Qt6 support.
The libraries build, and so does the main executable and the
welcome and finished modules. This means that a “purely Qt6”
Calamares might be possible, except for the dependencies
on KDE Frameworks and KPMCore which have not had suitable releases yet.