|
|
Subscribe / Log in / New account

The building blocks of a distribution with Linux from Scratch (Opensource.com)

Opensource.com takes a look at Linux from Scratch, and it's variants. "Linux from Scratch creates a very basic system, but there are two variants you can choose from—one uses sysvinit and the other uses systemd. The package list for each of these is almost identical, except for the init system and a few supporting packages. The other packages in both variants are the same, so pick the version with the init system you prefer and then move on to Beyond Linux from Scratch to further customize your system to your liking."

to post comments

The building blocks of a distribution with Linux from Scratch (Opensource.com)

Posted Jan 20, 2015 5:27 UTC (Tue) by Baylink (guest, #755) [Link] (9 responses)

But wait! We've been told that they're fundamentally incompatible: that if you make systemd available, then it's *IMPOSSIBLE* to continue to build packages that still work with sysVinit too.

No?

Cause that seems to be what I'm hearing...

The building blocks of a distribution with Linux from Scratch (Opensource.com)

Posted Jan 20, 2015 12:23 UTC (Tue) by mpr22 (subscriber, #60784) [Link] (8 responses)

Some Debian users do not want to use systemd as their init daemon. In recognition of this (and because in any event, upgrades from wheezy have to work), in jessie the packages upstart and sysvinit-core are alternative dependencies of the Essential metapackage init which depends by default on the package systemd-sysv.

As a corollary to this, any package in Debian jessie which:

  • is not a tool for manipulating the state of a running instance of systemd
  • does not work without systemd as the running init system

is reasonable for Debian users to regard as RC-buggy and file bug reports of appropriate severity accordingly.

Now, some of the Debian users I mentioned in my first paragraph go further, and insist that they must be able to run Debian not only without using systemd as the init daemon, but also without installing any part of the systemd suite, including libsystemd (a not-very-large shared library - the libsystemd.so on my amd64 jessie system is 141592 bytes). That is not a supported configuration, because:

  • There is at least one package in the Essential set which has an optional feature that require linking against libsystemd.
  • Debian policy is basically that all optional features that are not mutually exclusive should be included, unless there is a sufficiently compelling reason not to.
  • The reason "some people do not want any systemd components whatsoever on their Debian systems" was not found sufficiently compelling by the maintainer(s) of the package(s) in question.

Some of the Debian users who want this sort of thing appear to have decided to put their labour, money, and computers where their mouth is and set up a Debian derivative called Devuan which does support being installed without any systemd suite components. To me, this looks like software freedom in action.

There are some other issues further up the software stack, but this comment is already far too long.

The building blocks of a distribution with Linux from Scratch (Opensource.com)

Posted Jan 20, 2015 13:23 UTC (Tue) by anselm (subscriber, #2796) [Link] (7 responses)

One might also add that in Debian jessie, systemd is the default for new installs of the system. Existing systems are not supposed to be forcibly converted to running systemd as PID 1 (although parts of systemd, such as libsystemd, may be pulled in via dependencies of other packages) – if that happens, it should also be called in as a bug.

In the future it is likely that we will see more packages availing themselves of features of systemd that make their developers' life easier, e.g., by foregoing the daemonisation song-and-dance a service process has to perform in order to send itself properly into the background when started from a sysvinit init script, and using systemd's direct activation instead. It is also likely that those upstream developers interested in having their software run on Unix variants other than Linux that still require the song-and-dance will want to keep that code around (e.g., by adding a command line option to the daemon in question to use or not use it as required), and that will make it reasonably straightforward to support both init flavours given sufficient interest. Right now all Debian relevant packages have sysvinit init scripts, and it makes sense to expect both sysvinit aficionados to submit bug reports, possibly with patches, if these suddenly stop working in the future, and package maintainers to integrate those patches if that is possible without undue inconvenience or detrimental effects.

The building blocks of a distribution with Linux from Scratch (Opensource.com)

Posted Jan 21, 2015 1:50 UTC (Wed) by kmacleod (guest, #88058) [Link] (6 responses)

For folks reading this thread, the default on upgrade is to switch to systemd.

To prevent installing systemd on upgrade, the systemd package should be pinned as described in the FAQsFromDebianUser.

The building blocks of a distribution with Linux from Scratch (Opensource.com)

Posted Jan 21, 2015 2:03 UTC (Wed) by viro (subscriber, #7872) [Link] (2 responses)

... or just start with installing sysvinit-core (before libc upgrade, before anything) and then do it manually from aptitude. Watch out for colord - that piece of crap pulls dbus in. Fortunately, it's not hard to refuse taking it...

FWIW, apt-get dist-upgrade ideas of what's good seriously diverge from what I consider acceptable, what with some maintainers being all too happy to recommend utter shit ;-/ So it's better to check what it tries to pull anyway; it takes longer, but better that than dealing with e.g. dbus-infested system. Unfortunately, getting rid of udev is pretty hard, and apparently the attitude of udev maintainers is as lousy as it had ever been - I hoped that they got a clue, but... no such luck ;-/

The building blocks of a distribution with Linux from Scratch (Opensource.com)

Posted Jan 21, 2015 20:13 UTC (Wed) by johannbg (guest, #65743) [Link] (1 responses)

Someone is living in glass house not throwing stones but pavers at the udev maintainers.

Thanks I needed a good laugh.

The building blocks of a distribution with Linux from Scratch (Opensource.com)

Posted Jan 22, 2015 4:45 UTC (Thu) by viro (subscriber, #7872) [Link]

Translation, please? Not that I would begrudge a good laugh even to a barely coherent twit of an advocate (pardon the redundancy), but I'm curious - what was the first sentence in there supposed to mean?

The building blocks of a distribution with Linux from Scratch (Opensource.com)

Posted Jan 21, 2015 10:20 UTC (Wed) by anselm (subscriber, #2796) [Link] (2 responses)

There seems to be some confusion here.

  • Having systemd (the package) installed on a Debian system does not necessarily mean that systemd (the program) is running as PID 1 instead of the previous default, sysvinit. One way of making that happen is to also install the completely separate systemd-sysv package.
  • Upgrading an existing system to jessie is likely to pull in the systemd package (due to dependencies) but should not by itself cause systemd to run as PID 1 (e.g., by also installing systemd-sysv). If that happens nonetheless, it should be called in as a bug.

At least for Debian jessie it will be quite possible to run sysvinit as PID 1 rather than systemd, if one doesn't mind a few systemd-related packages (which will mostly do nothing) on the system. If the idea of having a few systemd-related packages which will mostly do nothing is abhorrent to you, the solution is presumably to run Devuan once that comes out.

The building blocks of a distribution with Linux from Scratch (Opensource.com)

Posted Jan 21, 2015 10:46 UTC (Wed) by mpr22 (subscriber, #60784) [Link] (1 responses)

Per the discussion of bug #762194 and the current state of the draft Release Notes for jessie, it appears that the default behaviour on wheezy-to-jessie upgrades will in fact be to switch to systemd as init; users who wish to avoid using systemd as the init daemon are advised in the draft Release Notes to set an APT pin preventing the installation of package systemd-sysv before upgrading:

Package: systemd-sysv
Pin: release o=Debian
Pin-Priority: -1

The building blocks of a distribution with Linux from Scratch (Opensource.com)

Posted Jan 21, 2015 14:45 UTC (Wed) by anselm (subscriber, #2796) [Link]

Yep, you're right, my bad.


Copyright © 2015, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds