Bug#946456: systemd: Provide systemd-sysusers as an independent package

Ansgar ansgar at 43-1.org
Tue Jan 28 16:27:25 GMT 2020


On Tue, 2020-01-28 at 16:51 +0100, Michael Biebl wrote:
> Am 28.01.20 um 14:59 schrieb Ansgar:
> > I tried linking systemd-{sysusers,tmpfiles} statically against
> > systemd's private library earlier this month.  It increases the
> > binaries size by ~100 kB (compared to Installed-Size: 14.2 MB of
> > systemd that is just one percent).
> 
> Is that 100K per binary?

I checked my notes at it was 100 kB per binary: they are 212 kB larger
(sysusers 51 kB → 137 kB, tmpfiles 84 kB → 212 kB); I tested with
systemd 243-8.

It might be possible to make it a bit smaller if one was to somehow
link libsystemd0 for functions available there (libsystemd-shared
currently duplicates those).

> We also have the overhead from /usr/share/doc/, so another 100K+

I think not every package needs to ship the full changelog.  There are
two options to reduce this a bit:

- ship truncated changelogs in binary packages (only last 2 years or 
  so)

- symlink changelog.Debian.gz -> ../other-package/changelog.Debian.gz
  for packages with strong dependencies; for example:
  systemd has Depends: libsystemd0 (= ${binary:version}).
  It could just have a symlink as nothing is lost.

Of course neither of these points are specific to systemd.

> More importantly, this requires a downstream patch, and I'm really
> trying hard to reduce the number of those downstream patches.

Ack.

> > If we want to use systemd-{sysusers,tmpfiles} in maintainer scripts to
> > create system users and/or directories under /var, then I think we
> > should split it off into a separate package, say systemd-utils, so that
> > package installation doesn't pull in the entire systemd init (for
> > containers or other uses that might not require an init).
> 
> Given that open{sysusers,tmpfiles} are currently packaged, shouldn't we
> wait how that plays out first?
> Maybe they are sufficiently well maintained upstream/downstream that
> they would be an alternative for such a use case.

I admit not being too enthusiastic about open{sysusers,tmpfiles} and
would prefer to always use systemd-*, even in minimal environments
created by debootstrap for buildds or other environments.

> What I'm currently missing, is an overall plan. If the sysusers
> interface is something we want as distro, there should be a coordinated
> effort, not every package doing this on its own.

The current state of shipping systemd-{tmpfiles,sysuser} in systemd is
probably good enough for experimentation in leaf packages (outside of
what debootstrap would install in minimal environments) or conditional
use.

If we agree to recommend use of systemd-{tmpfiles,sysuser} in Policy,
then I would prefer if it was possible to split these utilities off
into a separate binary package.

(I opened a bug about -tmpfiles in Policy some time ago, but probably
need to think a bit more about when to use .tmpfiles vs *Directory= in
.service files.  Using RuntimeDirectory=, StateDirectory=, ... where
possible should maybe be preferred over .tmpfiles.)

Ansgar



More information about the Pkg-systemd-maintainers mailing list