Devuan

Devuan is a systemd-free fork of the Debian Linux distribution.

Keep the first two letters of "Debian"; move the next two letters one place left on the keyboard, then keep the last two letters as they are again. DebianDevuan :)

(If you're using a Dvorak keyboard you'll end up with "Dexuan", but I think that's close enough that people will know what you mean, and besides, if you're using a Dvorak keyboard, people are used to you being a bit odd.)

Background

I was quite surprised (and very disappointed) when the Debian project decided to drop sysvinit completely from the distribution, and make Debian systemd-only. Adding support for systemd, and giving users the choice of which init system to use would have been fine (just the same as defaulting to Exim as an MTA, but allowing people to choose sendmail, Postfix or qmail if they prefer; or defaulting to the Gnome desktop environment, but allowing people to select KDE, XFCE, LXDE, etc instead), however telling everyone "you're going to use systemd or you're not going to use Debian" was an unpleasant message for me.

Here's why I don't like systemd.

Therefore (a) I've been continuing to run Debian 7 "Wheezy" on all my systems for longer than I otherwise would, and (b) I've been following the Devuan project with interest, and I'm pleased to see that version 1.0 LTS (Long Term Support) has now been released.

(Note that the Debian wiki does have instructions for "Installing [Jessie] without systemd", and this works fine for me on server systems, which do not run a graphical desktop environment such as KDE; however for a desktop machine for day-to-day use these instructions are of no help (as acknowledged in the documentation). I haven't yet tried this process with Debian 9 "Stretch" to see whether it still works for servers. I'll probably do that once it becomes officially stable.)

Devuan 1.0 is based on Debian 8 "Jessie", and is designed to be a very smooth upgrade from a previously-installed Debian 7 "Wheezy" or Debian 8 "Jessie" system. Everything dependent on systemd has been rebuilt to work with sysvinit instead, so this is basically Debian 8 as it should have been (in my opinion) - an upgrade to the latest versions of applications, without changing the core of how the main system works.

Release names and numbers

Devuan's first release was called Jessie, matching the equivalent Debian release, however subsequent names and version numbers diverge:

Debian Devuan
Release Name Release Name
8 Jessie 1 Jessie
9 Stretch 2 Ascii
10 Buster 3 Beowulf
11 Bullseye 4 Chimaera
12 Bookworm 5 Daedalus
- Sid - Ceres

I find it a little disappointing either that the first release was not named Ascii, or named Jessie and numbered zero, because in either of those cases the position in the alphabet of the first letter of the release name would automatically match the release number. Oh well, you can't have everything.

The upgrade

The first machine I upgraded was a simple test installation of Debian 7, to see whether KDE (my preferred desktop environment) worked under Devuan (early releases of Devuan couldn't run anything which depended on dbus, which KDE (in common with many other graphical environments) does). The upgrade was simple and effective, so I've now upgraded (a copy of) my main desktop system, and I'm testing it out to see how well things work.

I used https://devuan.org/os/documentation/dev1fanboy/Upgrade-to-Devuan as a guide to performing the upgrade process. The only modifications I would make to the guidelines there are that I previously had the following as my file sources.list:

deb http://debian.netcologne.de/debian/ wheezy main contrib non-free
deb http://security.debian.org/ wheezy/updates main contrib non-free
deb http://debian.netcologne.de/debian/ wheezy-updates main contrib non-free

I swapped this for the following when upgrading to Devuan Jessie:

deb http://auto.mirror.devuan.org/merged jessie main contrib non-free
deb http://auto.mirror.devuan.org/merged jessie-updates main contrib non-free
deb http://auto.mirror.devuan.org/merged jessie-security main contrib non-free

The "dev1fanboy" instructions do not include the "contrib" and "non-free" repositories, which in my case are quite important, because I use a Radeon graphics card with high-resolution displays, and I need the "firmware-linux-nonfree" package for that to work properly.

Once the APT repositories are only pointing to Devuan, and do not mention Debian anywhere, you simply need to do:

# apt-get update
# apt-get install devuan-keyring
# apt-get update
# apt-get dist-upgrade

The usual "several hundred to several thousand" packages will be upgraded (as with any dist-upgrade under Debian). The exact number depends on what you previously installed :)

  • Note: when I later tried this from a Debian Jessie installation to Devuan Jessie, I was surprised and impressed at how few packages got upgraded:
# apt-get dist-upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
The following packages will be REMOVED:
  systemd-sysv
The following NEW packages will be installed:
  e2fsprogs init libfdisk1 libss2 sysvinit-core
The following packages will be upgraded:
  base-files bsdutils debian-archive-keyring init-system-helpers initscripts libblkid1 libmount1 libsmartcols1 libuuid1 lsb-base lsb-release mount sysv-rc sysvinit-utils util-linux uuid-runtime
16 upgraded, 5 newly installed, 1 to remove and 0 not upgraded.

So, what worked, what didn't?

Firstly, the good news - Chromium browser works again :)

Secondly, it was easy - the upgrade took quite some time (as a dist-upgrade generally does) and asked a few questions along the way (as expected when it finds that I've edited a config file here and there), but basically it did exactly what it was supposed to, and the machine restarted very nicely afterwards.

Unfortunately, some things were not so pleasant (although these may not be anything to do with Devuan - I think I might well have had exactly the same problems upgrading Debian itself from Wheezy to Jessie).

The first, and most irritating, was the KMail update / migration which, amongst other things, threw away all my inbound email filtering rules (caution: link may contain rants).

Secondly, nothing like as annoying, but quite noticeable, was that the fonts have changed on several websites (including, for example, this wiki). I don't like the new fonts - some are simply too thin and "weak"; others have wider letters than before and look a bit like someone designed them for a 4:3 ratio screen and now I'm looking at them on a 16:9 format. I guess I might get used to them, but why did somebody have to change them for me?

Possibly related, I no longer have spell-checking when I enter text (for example, into this wiki - see the above screen captures) - Konqueror used to give me a curly red underline when I made a typo; now it doesn't. A small thing (and I'm generally pretty good at spotting typos myself), but again, why just turn something like this off instead of either asking the user or keeping the previous setting?

Oh, coming back to email for a minute, I now get prompted for my POP3 passwords every time I start KMail. The passwords were saved in my old version, and I'd expected the new version to either transfer them as part of the migration process, or at least to save them after I enter them the first time after starting the new KMail, but no - I'm getting prompted every single time I start KMail for the three account passwords. That's annoying, irritating, and unreasonable, so I'm working on a solution.

Sound is much quieter than it used to be. I use external powered speakers plugged into a standard 3.5mm jack socket on the motherboard, and I now have to turn the amplifier up way higher than I used to to get reasonable volume out of the machine.

Bluetooth no longer works under KDE. I can plug in a USB Bluetooth adapter (which worked fine under Debian Wheezy), and I can see it from "hcitool dev"; I can tell that it works by using "hcitool scan" and it will find other devices nearby. So, it's not a kernel or a driver problem. KDE's Bluetooth tool tells me "No Bluetooth adapters have been found."

Power saving (turning off the display/s after some inactivity) no longer works. Update: strangely, after a reboot, it does. No idea why. It wasn't even the first reboot. Ho hum.

Also, right-clicking on the KDE desktop and selecting "leave" no longer offers me the choice of "Shutdown", "Restart", or "Log out", even though "Offer shutdown options" is selected in "Session management". It just goes straight ahead with the default selection (which in my case is Restart).

Update: About 50 hours after starting the KMail migration process, do I dare believe that KMail 2 might finally be usable?

Is systemd really gone?

# aptitude search systemd | grep -v ^p
v   libghc-libsystemd-journal-dev-1 -                                           
v   libghc-libsystemd-journal-prof- -                                           
c   libsystemd-daemon0              - systemd utility library (deprecated)      
c   libsystemd-login0               - systemd login utility library (deprecated)
i A libsystemd0                     - systemd utility library

Given that the only repositories on my machine are now the Devuan ones, I'm slightly surprised to see anything to do with systemd listed amongst the packages at all.

"v" means that the first two are virtual packages, so I can happily ignore those.

"c" means that I've got some configuration files for the package on this machine, but the package itself isn't installed - I guess the upgrade removed the packages, but not completely cleanly. Let's see if we can improve on that…

# aptitude purge libsystemd-{daemon,login}0
The following packages will be REMOVED:  
  libsystemd-daemon0{p} libsystemd-login0{p} 
0 packages upgraded, 0 newly installed, 2 to remove and 2 not upgraded.
Need to get 0 B of archives. After unpacking 0 B will be used.
Do you want to continue? [Y/n/?] 
(Reading database ... 214188 files and directories currently installed.)
Removing libsystemd-daemon0:amd64 (215-17+deb8u7) ...
Purging configuration files for libsystemd-daemon0:amd64 (215-17+deb8u7) ...
Removing libsystemd-login0:amd64 (215-17+deb8u7) ...
Purging configuration files for libsystemd-login0:amd64 (215-17+deb8u7) ...
                                         
# aptitude search systemd | grep -v ^p
v   libghc-libsystemd-journal-dev-1 -                                           
v   libghc-libsystemd-journal-prof- -                                           
i A libsystemd0                     - systemd utility library

Excellent :)

libsystemd0, however is not only installed, but automatically - let's see why:

# aptitude why libsystemd0
i   xsane      Depends    libsane (>= 1.0.11-3)          
i A libsane    Recommends sane-utils (>= 1.0.24-8+deb8u2)
i A sane-utils Depends    libsystemd0

Hm, so scanner support seems not quite finished in Devuan, by the look of things, since sane-utils still depends on libsystemd0. I do use an HP Scanjet 7650 with this machine, so that's the reason why this remains installed.

libsystemd0 is such an innocuous part of systemd overall, though, that I have no concerns with it being installed on my machine (it doesn't affect init, logging, network management, logins, device names - basically it has none of the nasty side-effects I'd get if systemd was fully installed).

Are there any problems running a machine without systemd?

(Quick version: no)

Now that the Devuan team has got most graphical desktop managers working without systemd (by packaging an init-system-agnostic version of dbus), it means you can install either a server (no GDM), or a desktop machine (including a GDM) without getting systemd on the machine.

But, can you install anything you want to, without systemd being available?

Well, I haven't yet found any application package which depends (in the Debian sense) on systemd.

There are plenty of things which depend on init, but that's a virtual package which simply ensures you have one of:

  • sysvinit
  • systemd
  • upstart

installed on your machine. It doesn't care which one. Applications depending on init don't know or care which one of the above is being used.

Previously (ie: before Devuan) a lot of application packages depended on dbus, and dbus in Debian Jessie became dependent on systemd (that's the reason most GDMs couldn't be installed if you removed systemd).

Now, however, Devuan have re-introduced a systemd-free version of dbus (ie: the way it was before Jessie, but still kept up-to-date from upstream), and this means those applications can be installed again, without acquiring systemd along the way.

To put it another way: I haven't compared the number of packages available from Devuan Jessie against Debian Jessie, but when I upgraded my Debian Wheezy machine (which was running KDE, with all its attendant components such as Konqueror, KMail, Okular etc., as well as Firefox, CUPS, Chromium, mplayer, OpenCV, KVM, LVM, Wine, Libre Office, Audacity, VLC, Wireshark, GIMP, KiCad, OpenSCAD and more) to Devuan Jessie, nothing was missing, everything got upgraded and everything still works.

Summary

The upgrade from Debian to Devuan went very smoothly, easily, and the result is exactly what I wanted - Jessie, able to run KDE, without systemd.

On the other hand, the upgrade from Wheezy to Jessie gave me the usual surprises, challenges, frustrations and annoyances which I'm sure a pure Debian Wheezy to Jessie upgrade would have done, and which I'd largely managed to forget about since I last upgraded Squeeze to Wheezy. These are nearly all application things, though, and I don't think any are a criticism of what the Devuan team has achieved.

I would expect that anyone already running Debian Jessie could upgrade to Devuan Jessie and not encounter any of the irritations I've documented here, because the applications will stay at the same versions and continue to work in the same way. If you have a working Debian Jessie system and you're happy with it, you'll be happy with Devuan Jessie instead.

All in all, congratulations to the Devuan team.


Go up
Return to main index.