[systemd-devel] non-merged /usr changes [was: pre-release warnings?]

Lennart Poettering lennart at poettering.net
Tue May 26 09:36:47 PDT 2015

On Tue, 26.05.15 18:06, Martin Pitt (martin.pitt at ubuntu.com) wrote:

> Hey Lennart,
> Lennart Poettering [2015-05-26 17:31 +0200]:
> > But note that upstream is supposed to be non-redhat centric, and is
> > supposed to support non-merged /usr. If it's really about that, I#d be
> > inetersted to know what these patches are about, and maybe we can move
> > some upstream.
> There's a bunch of different config files, such as /etc/locale.conf
> and /etc/X11/xorg.conf.d/00-keyboard.conf (Fedora) vs.
> /etc/default/locale and /etc/default/keyboard (Debian) (Debian uses
> just one keyboard layout for both console and X), but these got
> removed upstream to avoid some #ifdeffery [1]. Not much to worry
> about.

/etc/locale.conf is not a fedoraism. It has not existed on Fedora
before we introduced it. It's a systemd'ism if you so will: we looked
at where the distros configured these things and came to the
conclusion that all them were weird and nothing we wanted to
support. We hence unified this in a new file. Except apparently that
DEbian wasn't willing to migrate :-(

I really don't see how the xorg.conf.d drop-in should be
fedora-specific. That's an upstream X11 thing, and we just picked a
name for the file and that's it.

Are you saying Debian patched out supported for /etc/X11/xorg.conf.d?

Or does it have that dir at a different place? if so: why? but we
could certainly make that path configurable with a configure switch...

> More intrusive is the removal of chkconfig and addition of
> update-rc.d:
>   http://anonscm.debian.org/cgit/pkg-systemd/systemd.git/tree/debian/patches/Make-systemctl-enable-disable-call-update-rc.d-for-s.patch?h=experimental
>   http://anonscm.debian.org/cgit/pkg-systemd/systemd.git/tree/debian/patches/systemctl-don-t-skip-native-units-when-enabling-disa.patch?h=experimental

I offered to merge a patch that adds update-rc.d support side-by-side
with chkconfig support for this upstream, many times.

That said, I think even better would be to maybe make the support for
this generic in systemctl: instead of explicitly invoking chkconfig or
update-rcd, maybe we can just make systemctl invoke some fixed binary
/usr/lib/systemd/systemd-sysv-compat or so with a fixed set of
parameters. The distros could then make that a tool (maybe just a
shell script) that invokes chkconfig or update-rc.d This would then
allow us to remove any chkconfig-specific code from systemd, and would
allow all distros to plug-in the tool of their choice without having
to patch upstream. What do you think?

> Then there's the (now completely separate) fsckd which you also
> already rejected:
> http://anonscm.debian.org/cgit/pkg-systemd/systemd.git/tree/debian/patches/fsckd-daemon-for-inter-fsckd-communication.patch?h=experimental-220
> I'd be happy to put that back and maintain it upstream, perhaps with a
> --configure option. But it rebases well as the changes to existing
> files are minimal.

If at all I think this should better be added to ply natively.

> Then we have some stupid stuff like
> http://anonscm.debian.org/cgit/pkg-systemd/systemd.git/tree/debian/patches/buildsys-Don-t-default-to-gold-as-the-linker.patch?h=experimental-220
> which got rejected, but are nevertheless still necessary on distros
> (and not only for us, see responses to [2])

Well, there's no need to carry a patch for that, all you need is add a
configure cmdline param, no?

Also, this is really just working around issues with gold, and
craziness in the suse build system. I am pretty sure bugs should be
fixed wherever they are, and if that's not possible, then a configure
parameter is certainly OK too.

> The single one which I'd *really* like to get rid of is this 91 kB
> patch beast:
> http://anonscm.debian.org/cgit/pkg-systemd/systemd.git/tree/debian/patches/Fix-paths-in-man-pages.patch?h=experimental-220
> This fixes the manpages to give correct paths for non-merged /usr. I
> think the correct upstream fix would be to replace the hardcoded
> "/usr/lib/systemd/" bits with XML entities like &systemunitdir; or
> perhaps more generically &rootlibdir; (even with --enable-split-usr
> and --with-rootprefix=/ some bits still land in /usr/, like
> /usr/lib/systemd/user{,-generators} and /usr/lib/systemd/catalog/. If
> you'd accept a patch for that, I'll work on that.

Not enthusiastic about the idea. But the XML magic is mostly
Zbigniew's territory (as this long got more complex than my XML-fu can
still grasp ;-)).


Lennart Poettering, Red Hat

More information about the systemd-devel mailing list