Re: Debianization

From: Colin Booth <colin_at_heliocat.net>
Date: Fri, 20 Apr 2018 08:23:51 +0000

On Fri, Apr 20, 2018 at 07:48:23AM +0200, SZÉPE Viktor wrote:
> > ... into both .deb's and .rpm's using fpm without much fuss.
>
> That much fuss includes 859 lintian tags e.g. gcc hardening, rc scripts for
> essential Debian packages, a systemd->s6 migration utility etc.
> https://lintian.debian.org/tags.html
That's a different story...
>
> So basically I type apt-get install s6 and it makes systemd disappear, and
> all these basic services work after reboot:
>
> cgroupfs-mount
> console-setup.sh
> cron
> dbus
> hwclock.sh
> keyboard-setup.sh
> kmod
> networking
> procps
> rsync
> rsyslog
> ssh
> udev
Ah, you're talking about an s6-init package that pre-depends on s6-rc,
s6, and execline (at a minimum). No, nothing exists like that currently.
A handful of us (myself included) run debian systems under s6/s6-rc but
as far as the packaging system is concerned they are still running
sysvinit. Doing a full strip out is a pile of work, not to mention a lot
of equivs stuff to keep from breaking a mountain of packages.
>
> Is there a documentation how to turn e.g. 'networking' into an s6 rc?
>
The simplest way is to have an s6-rc oneshot that calls
'/etc/init.d/networking start' and then adjust the dependencies to put
it in the right place in the boot order. The other option is to rewrite
that script in execline. The rest of the rcS stuff is similar.

A word of warning for removing sysvinit or systemd packages entirely: a
lot (all?) of the packages for daemons expect one of those inits to be
present. This expectation comes in the form of post-install hooks and
directory assumptions (something with an init script will expect
/etc/init.d to exist, a guarantee that can't be made if sysvinit isn't
present). A shim package covers that need, but that's more plumbing
for an early-stage project.

As I see it, this is what's needed for a full cutover: an s6-init
package, an s6-systemd-shim package, and s6-rc. s6-init has the
stage1/2/3 stuff, and the single-user mode initalization oneshots.
s6-systemd-shim has the directories, a unit-file translation/compilation
layer (does not exist yet), and translation scripts to mask systemd
commands and emit s6-rc commands in their place. And s6-rc owns the
s6-rc suite, /etc/s6-rc, and anything else belonging to the
infrastructure around managing your source and compileds. Beyond that,
everything either already exists in debian, or is in the dependency
chain for s6-rc (s6, execline, maybe the s6-*-utils, etc).
>
> SZÉPE Viktor, honlap üzemeltetés / Running your application
> https://github.com/szepeviktor/debian-server-tools/blob/master/CV.md
Cheers!
-- 
Colin Booth
Received on Fri Apr 20 2018 - 08:23:51 UTC

This archive was generated by hypermail 2.3.0 : Sun May 09 2021 - 19:38:49 UTC