Calamares 3.2 Plan

Calamares 3.1.1 is out, so it is time to look to the future of Calamares and the features the next version will bring. This plan looks forward for the next three months, which covers releases 3.1.2 (minor fixes) and 3.2.

The future of graphical desktops in the Linux world is with Wayland instead of X11. This means that Calamares needs to be ready for it, too. One side-effect of Wayland’s improved security over X11 is that setuid-root applications cannot connect to the display server. Similarly, accessibility-tools such as the Orca screen reader will not work with applications that run as a different (i.e. root) user.

Fortunately, the way to fix Wayland and fix accessibility is the same: do not require root for the UI portion of Calamares. This does have fairly large architectural implications for Calamares, as it means we need a better separation between front-end (UI) and back-end (doing the work). However, killing two (or more) birds with one stone is worth it.

That will be the big change for 3.2: no root foor the UI part. For modules developed outside of Calamares repository (e.g. the forks for various distro’s) this will probably require changes there, too, to adjust to the different permissions structure. This will be documented as the plan develops further.

There are other improvements that can be made to Calamares, which can be done alongside 3.2 development and which can be added to the existing 3.1 release, leading to a 3.1.2 and possibly 3.1.3. The overall plan for the next few Calamares releases is:

  • Additional translations, for the .desktop file and plain Python modules (neither of which is currently translated, and both should be). This is expected to land mid-august. See the milestone planned for 3.1.2.
  • Additional requirements-checking. There are situations where the Calamares welcome-page thinks that there is enough suitable disk-space, but the partition manager does not. This is because the checks are done in different fashions, in different places. For 3.1.3, an API will be added to the modules allowing them (all) to perform checks which are prerequisite to continuing the installation. See the milestone planned for 3.1.3, near the end of august.
  • Dropping the setuid-root requirement for Calamares UI. This is the big change, which will work together with the Randa meeting on accessibility (for the Orca screen reader) and Wayland compositor developers (KWin in particular) to ensure a future-proof and accessible installer is produced. See the milestone for 3.2, for the beginning of october.

One more big change is planned, although it is not certain to be part of 3.2 or deferred to 3.3: dropping the Boost::Python implementation and running all the Python modules in the same kind of embedded Python interpreter (i.e. PythonQt). This changes the build- and runtime dependencies of Calamares, but also reduces the choices to one. The API of existing Python modules is not expected to change: the regular Python modules keep their run() method and continue to function as usual. When this gets in depends mostly on the effort required for the separation of the UI, first.

Written on August 8, 2017