[manjaro-dev] Announcing the Calamares quick deploy tool

Philip Müller philm at manjaro.org
Thu Nov 12 18:49:14 CET 2015

Hello team,

work is underway on Calamares 2.0, and in order to facilitate testing for
everyone I've put together a quick deployment tool, called uncerimoniously

This tool allows everyone to test the current state in any branch in the
Calamares GitHub repository without having to manually build and/or
Calamares. It relies on an already existing and installed Calamares
with all its dependencies, making it suitable for testing on a running Live

The tool is permanently hosted on calamares.io for convenience. It is very
easy to get it up and running on a live system:

$ curl -LO calamares.io/deploycala.py
$ chmod +x deploycala.py
$ ./deploycala.py


$ ./deploycala.py -h
usage: deploycala.py [-h] [-n] [branch]

positional arguments:
  branch           the branch to checkout and build

optional arguments:
  -h, --help       show this help message and exit
  -n, --noupgrade  do not upgrade all the packages on the system before

By default, deploycala.py updates all the packages on the system and builds
the master branch. I find myself mostly using it like this:
$ ./deploycala.py -n choicepreview

The good

* On startup, it automatically updates itself from calamares.io before
* Automatic detection of CPU core count for parallel make.
* It checks out Calamares into a subdirectory "calamares" in the current
directory. If the dir already exists, it will do a pull-rebase instead of a
full clone.
* Every build is a fresh build.
* Submodules are supported (but unnecessary right now).

The bad

* It only supports yaourt and pacman for dependency install right now. I
accept pull requests for other package managers.
* It backs up /usr/share/calamares and /etc/calamares as a whole, so
inevitably upstream changes in configuration and/or branding format might
break things. It hasn't happened for me yet, but either way I don't
think it's
a big issue since this tool is meant for testing things.
* It it noninteractive only as long as sudo is configured as NOPASSWD
for the
current user.

The ugly

It's a Python script that happily writes into / and overwrites files
owned by
the package manager. I've been using it successfully on Netrunner
Rolling live
systems to test changes immediately after pushing. Its purpose is not
deployment for the end-user, but shortening my code-build-push-test
It is released in the hope that it might make your system integration tasks
easier as well.

As usual, for support ping me in #calamares.

Teo Mrnjavac
http://teom.org | teo at kde.org

More information about the manjaro-dev mailing list