The Portable Profiles concept
For lack of a better name, that is the one the main new feature of Calculate Linux 14.0 comes under.
As it happens, we’ll need some more time before the final release will be available, knowing that its new functionality will be for advanced users mainly. Documentation should therefore be rewritten, too.
We have been working on CL 14 in a separate profile based on CLDX and nicknamed Acoola after another project the Calculate team is processing. We created it for testing purposes only, but as soon as Calculate Utilities support portable profiles, the pre-release version will be made available for download.
Calculate Linux has only one overlay for the time being,
calculate, that contains the complete profiles for all versions, namely USE flags, masked packages info, variables, etc., as well as the lists of the preconfigured packages, the templates and the variables Calculate Utilities use. This looks like an efficient solution for developing within a small team, but imagine someone wishing to fork a version or merely to add an overlay: the Utilities such as we know them would not allow it. As the result, any user who wants to customize their Calculate stores the templates among the system image files and hardly dares to activate a local overlay.
To solve this problem, two overlays will be reserved for CL14: the main overlay (still named
calculate) and a repository,
distros. As its name suggests, the latter will be used for keeping distribution profiles. Creating one’s own version will amount to cloning this repo, so that its author could modify it as they find appropriate. They will be able to rename it, of course.
Each profile includes all elements that make it different from the standard one,
desktop, found in the main overlay. Why should they all take after it? Simply because
calculate provides some presets one would like to keep using without having to support their clones along with the customized distribution.
calculate contains the tree of ready-for-use templates as well. And the
desktop profile seems a good starting point as it was optimized for being used in a graphical environment, with a reasonable kernel configuration and keeping some popular applications unmasked, such as LibreOffice… A binary repository proves to be of great use for anyone working on their own distribution: at least the packages’ versions do match.
In summary, portable profiles should allow any user to:
- store all of their custom packages, ebuilds, templates and much more in a public repository, and be able to use them later;
- take advantage of other users’ work;
- contribute to a development project if they wish so.
A new update procedure
In order to avoid package conflicts in situations when a version marked as stable is removed from the Portage tree before a new version has been unmasked, Portage and
calculate have been updated simultaneously. It will be quite different in CL14. The Portage tree will be syncronized automatically (twice or thrice a day, with cron), while the overlay will be updated after each modification. The profile will reference specific versions provided by Portage and the overlay. You will thus spare your client users a great deal of pain, by resolving conflictual packages as if you were a local dev.
If ever a project were not supported any longer, anyone could easily fork it. Should the developer be only sleeping, it would still be possible to configure updates in such a way as to make the provided packages correspond to to the current versions in the Portage tree. You’d have to cope with it though by manually handling all dependencies as long as development is down, but you would remain on the same profile. We will most probably set an inactivity time limit for such cases: if it expires, new versions of packages will be fetched from
calculate and the Portage tree.
cl-update tool (first included in
calculate-update and now taking after
calculate-assemble in some points) will handle system updates. Since several versions now, libraries such as
python and other such stuff have been updated automatically for Calculate at system build time; this behavior will be extended to any compilation. Unfortunately,
cl-update is still unable to consider user’s USE and masking options, but we’re working on it.
The big news is, since CL14 you will be able to upgrade your system from a graphical interface, by simply clicking on the icon in the taskbar! As binary packages only work correctly when the tree is synchronized regularly,
cl-update was programmed to update the Portage tree and the CL overlay each time it’s launched.
calculate-assemble will replace calculate-builder
CL14 will not be able to build a new system in interactive mode, an option we introduced in 2009. But we hope that the new
calculate-assemble kit will fill the gap. It inherits
calculate-builder's fonctionality and will soon support
aufs, an advanced multi layered unification filesystem. No more need to go through a special procedure at installation time if you want to rebrand Calculate as you see it fit: all you have to do is mount the ISO image to the current partition, make your modifications and repack.
calculate-assemble tools will prepare your system for updates, whether you are a developer or just some guy or gal storing their configs on the Git server.
calculate-assemble will be most certainly rewritten with a GUI support.
Some other nice changes
Of course we were not driven by laziness when we decided to give up the builder mode. In CL14,
initramfs will be compiled by Dracut instead. Unlike
genkernel, it’s a modular tool that implements
plymouth support and can be used to start the system from an ISO. Concerned with not cluttering up the code and providing no redundant fonctionality (as some features will be handled by
calculate-assemble), we decided to supply Dracut with a minimum of preconfiguration. The default kernel package,
calculate-sources, will not be compiled with
Dracut finally makes creating a multi-boot USB drive possible. You will have the choice between the several ISOs you will have written to it.
If you administer CLDX hosts, you are likely aware that the LightDM display manager has changed a bit: it now has a smiley for each user. We in Calculate Ltd. have been using CLDX as the main system for a year, but CLD was our previous pick. All users’ avatars were lost when we migrated. To make matters worse, they were no longer working on CLD either, because the network was up after
xdm was launched. Now we are happy to have identification pics on both systems. Once a user has run their computer, their photo is cached locally.
If you follow us closely, you must have noticed that
tmux can now be used out-of-box on Calculate, to multiplex several virtual consoles. That’s true for all versions, let it be desktop, server or media center. We wavered between
tmux between introducing this, but the latter turned out to correspond better to Calculate design, with its top status bar. As for
screen, it does not come preinstalled but preconfigured and is available in the official overlay.
We feel confident about Calculate users’ enthusiasm and expertise. Look what they did to
xfce4-terminal , for instance: from now on, it will be more colourful with 256 colors supported (revisions made implementing this easy). Such tiny modifications are not specifically interesting for everyone, I guess, yet if you can think of an improvement that you personally would welcome, please feel free to tell us so! We appreciate your loyalty.