Tales of software craftsmanship

Tales of software craftsmanship

Calamares 2.3 out now

I’ve just released Calamares 2.3, a feature release with a major focus on disk encryption support (see full release announcement).

Calamares is a distribution-agnostic system installer, with an advanced partitioning feature and support for third party branding and modules. It is used by several distributions, including Netrunner, Manjaro, Tanglu, OpenMandriva, KaOS, Chakra and many others.

Calamares 2.3 leverages the LUKS functionality Andrius Štikonas and I had previously developed for KPMcore and KDE Partition Manager, and integrates it with sensible guesswork and a usable installer UI. Calamares 2.3 also sets up early decryption from within GRUB, and resuming from suspend-to-disk with an encrypted swap partition.

Interested in deploying Calamares on your own Linux distribution? Check out the new Calamares wiki with up to date deployment advice for Calamares 2.3, or drop by #calamares on Freenode.

Sometimes you need to reinvent the wheel

On behalf of the Calamares team and Blue Systems, I am proud to announce the immediate availability of Calamares 1.0.

Calamares is a distribution independent installer framework. I had the initial idea for Calamares in May 2014, less than a year ago, and out of frustration: many successful independent Linux distributions came with lackluster installers, and all of these installers were a result of competition rather than cooperation. Improving one of the existing installers wouldn’t have fixed this, as every installer was more or less distribution specific. I wanted to create a product that would satisfy the requirements of most Linux distributions, developed as an upstream project for all of them.

Everything went better than expected.

With support from Blue Systems and some help from Aurélien Gâteau I started from scratch around June 2014, with a highly modular design and some valuable contributions from KaOS, Manjaro, Maui and Netrunner developers. Contributors from Fedora, BBQLinux, OpenMandriva and the KDE Visual Design Group joined in afterwards. Now, a little over half a year of design and development frenzy later, we choose to call it 1.0. While there is still room for improvement, we have decided that the first development iteration is done, and we are presenting a modest yet feature-complete product.

Calamares is built with Qt 5, C++11, Boost.Python, (bits of) KDE Frameworks 5 and KDE Partition Manager.

Feature highlights include:

  • a completely modular design, with three plugin interfaces: C++, Python and generic process;
  • a threaded job executor, with C++ and Python API;
  • a collection of over 25 modules, ranging from boot loader support to partitioning, to user management and much more, with the opportunity of deploying your own;
  • a self-contained branding component mechanism, which allows distributions to ship a consistent user experience without patching;
  • an advanced partitioning tool, with automation and resize functionality and both DOS and GPT partition table support.

The Calamares team hangs out in #calamares on Freenode, feel free to drop by.

Bugs should be reported to our issue tracker, and pull requests go to GitHub.