Opened 11 years ago

Closed 11 years ago

#953 closed feature request (fixed)

Migrate to Systemd

Reported by: William Harrington Owned by: clfs-commits@…
Priority: major Milestone: CLFS Standard 3.0
Component: BOOK Version: CLFS Standard GIT
Keywords: Cc: berzerkula@…, jonathan@…

Description (last modified by William Harrington)

I'd like to present a migration to Systemd.

I've been using Arch linux and have been impressed at what Systemd has to offer.

Of course, some deps will be added, and others removed. Armin K has graciously discussed the changes that need to occur.

We already have a systemd branch, which Joe started. But it is outdated and needs to be updated.

Systemd requires these deps:

dbus, gperf, expat, xml::parser, intltool, libcap, acl, attr

Linux-pam is required for logind, which is absolutely required for desktop systems. Thinks about krb or ldap credentials to login to a local machine. It also uses linux pam to register/unregister user sessions

Sysvinit, eudev, and rsyslog may be removed, but there is backwards compatibility.

Note that newer versions of util linux and procps ng include most of the tools sysvinit provide.

Systemd provides init related files: reboot, init, poweroff, shutdown, halt, etc

Util-linux provides mesg, last and maybe one more

Procps-ng provides pidof

All that is left from Sysvinit is fstab-decode and bootlogd which may be useless. Also, service files for most daemons, if they aren't shipped with the source, can be found from Fedora, Arch, and possibly other sources. So it isn't difficult to find examples. Also, it is simple to write a service file from scratch from templates.

Please view http://fedoraproject.org/wiki/Features/systemd for more information about Systemd.

I think it'd be a great addition to the CLFS project for CLFS 2.2. If you have not used it, please install Arch, which is a great system to test it. The Archwiki has some good information on setting up services for systemd, too.

Change History (6)

comment:1 by William Harrington, 11 years ago

Description: modified (diff)

comment:2 by William Harrington, 11 years ago

Description: modified (diff)

comment:3 by William Harrington, 11 years ago

I haven't started testing this, but do we want Systemd when using the boot method? I think having it for the final system is best, but a lot of installations are done for the boot method and bootscripts.

I'd like to start with final system then work backawards.

comment:4 by William Harrington, 11 years ago

Chris has been doing most of the upgrading to the systemd branch. It is close to testing. A few minor changes are all i think that is left.

For now, I have added packages to our ftp server's conglomeration area and added a clfs-packages/systemd for now, which will be moved to git.

When ready, all we need to do is rm what is in git/ and mv systemd/ contents to git/ and rm ssytemd/ as this will make it easier to keep systemd package updates easier to manage.

We still need to move to procps-ng. I am also going to go ahead and add that to the conglomeration.

comment:5 by William Harrington, 11 years ago

I have tested the x86_64 multilib and x86_64 pure 64 bit builds of the systemd branch. It all works and I have it in a stable state with clfs-network-scripts providing service unit files for static and dhcpcd network configurations.

Render the book, perform a build and test.

There are some things which can't be configured without booting the system into systemd for the first time. There are notes telling the user which commands can only be ran with a system started with systemd.

It is no problem booting into the system and then configuring those parts.

One section needs to be looked and that is "How does systemd work" section in chapter 11.

comment:6 by William Harrington, 11 years ago

Resolution: fixed
Status: newclosed

We have migrated to Systemd with our master branch and the sysvinit branch now includes the sysvinit book. The current git book is very stable and systemd has been migrated successfully. I am closing this ticket as this is now complete.

Note: See TracTickets for help on using tickets.