I've started working on bringing systemd to Gentoo [1] lately,
and I think it is important to raise the aspect of systemd unit
inclusion in various packages in gx86 ASAP.
The number of packages coming with systemd units is growing rapidly
recently, and that especially applies to freedesktop packages.
One side effect of that is that these packages treat systemd
as an automagic dependency, installing systemd units whenever its
pkgconfig file is installed. I already opened two bugs on that [2,3]
but there would be much more...
That's why I'm asking now: how should we proceed with installing
systemd units?
My current concept of keeping them separate from gx86 packages is good
for a short early testing period but is a maintenance PITA for a longer
term. And requires either adding '--without-systemdsystemunitdir'
to a growing number of packages or removing the systemd.pc file
(to avoid unit collisions).
Thus, I think the correct way of proceeding would be to update gx86
packages to install systemd unit files. As they are plain text files
with no side effects only, this shouldn't hurt at all even while
systemd is not in gx86.
Considering the above, I think it's also unnecessary to introduce
a dedicated USE flag for them. Much like with logrotate, those are only
small, text files which won't do anything (unlike openrc-related
files [4]) if systemd is not being used.
If someone is really opposed to having those files around, I suggest
using INSTALL_MASK. I even consider creating a small tool to simplify
setting common INSTALL_MASKs.
On Sun, Apr 24, 2011 at 09:36:30AM +0200, Michał Górny wrote:
> Fellow devs,
>
> I've started working on bringing systemd to Gentoo [1] lately,
> and I think it is important to raise the aspect of systemd unit
> inclusion in various packages in gx86 ASAP.
>
> The number of packages coming with systemd units is growing rapidly
> recently, and that especially applies to freedesktop packages.
> One side effect of that is that these packages treat systemd
> as an automagic dependency, installing systemd units whenever its
> pkgconfig file is installed. I already opened two bugs on that [2,3]
> but there would be much more...
I think the better way to handle this will be to patch the build systems
to not make this an automagic dependency and send those patches
upstream.
http://www.gentoo.org/proj/en/qa/automagic.xml
I'm not a member of qa, but I agree with this position on automagic
dependencies.
On Sun, Apr 24, 2011 at 4:35 PM, William Hubbs <williamh@gentoo.org> wrote:
> On Sun, Apr 24, 2011 at 09:36:30AM +0200, Michał Górny wrote:
>> Fellow devs,
>>
>> I've started working on bringing systemd to Gentoo [1] lately,
>> and I think it is important to raise the aspect of systemd unit
>> inclusion in various packages in gx86 ASAP.
>>
>> The number of packages coming with systemd units is growing rapidly
>> recently, and that especially applies to freedesktop packages.
>> One side effect of that is that these packages treat systemd
>> as an automagic dependency, installing systemd units whenever its
>> pkgconfig file is installed. I already opened two bugs on that [2,3]
>> but there would be much more...
>
> I think the better way to handle this will be to patch the build systems
> to not make this an automagic dependency and send those patches
> upstream.
>
> http://www.gentoo.org/proj/en/qa/automagic.xml
>
> I'm not a member of qa, but I agree with this position on automagic
> dependencies.
I'm speaking as a simple user, but I don't think the systemd unit
files qualify as automagic dependencies as described by the QA
document. In the first place, as Michael pointed out, we can disable
them with --without-systemdsystemunitdir, so there is no magic at all.
In the second place, the usual Gentoo way of enabling OpenRC services
is to *add* init.d scripts in the ebuild, and this is completely
orthogonal to a package installing a systemd unit file (the presence
of the later does not matter to OpenRC at all). And finally, the idea
of systemd is to be a completely distro-agnostic init system, without
the multiple failures of SysV, and without the one-company-rule of
Upstart; this seems to be actually working, hence a lot of downstream
packages are willing (and eager) to ship systemd unit files. The init
scripts belong to the packages, they know best how the
service/whatever needs to be run.
I'm using Gentoo+systemd since a couple of months, and it works
incredible well. And I really like the idea of freeing the rather
precious Gentoo-developers time off of writing init scripts.
Ah ok, I guess I missed that. The qa document says there is an automagic
dependency if the builder can't turn this off. But, you are asying that
the builder can turn it off with the --without option.
In that case, the dependency is not automagic.
> In the second place, the usual Gentoo way of enabling OpenRC services
> is to *add* init.d scripts in the ebuild, and this is completely
> orthogonal to a package installing a systemd unit file (the presence
> of the later does not matter to OpenRC at all).
This is another topic I may bring up at some point, if you are using
systemd, etc, and openrc is not even installed on your system, do you
need /etc/init.d at all? Once openrc goes stable, I might bring that up
for discussion.
>And finally, the idea
> of systemd is to be a completely distro-agnostic init system, without
> the multiple failures of SysV, and without the one-company-rule of
> Upstart; this seems to be actually working, hence a lot of downstream
> packages are willing (and eager) to ship systemd unit files. The init
> scripts belong to the packages, they know best how the
> service/whatever needs to be run.
>
> I'm using Gentoo+systemd since a couple of months, and it works
> incredible well. And I really like the idea of freeing the rather
> precious Gentoo-developers time off of writing init scripts.
heh, actually I like this idea also. :-)
04-24-2011, 10:29 PM
William Hubbs
Installing systemd units with gx86 packages
On Sun, Apr 24, 2011 at 09:36:30AM +0200, Michał Górny wrote:
> The number of packages coming with systemd units is growing rapidly
> recently, and that especially applies to freedesktop packages.
> One side effect of that is that these packages treat systemd
> as an automagic dependency, installing systemd units whenever its
> pkgconfig file is installed. I already opened two bugs on that [2,3]
> but there would be much more...
>
> That's why I'm asking now: how should we proceed with installing
> systemd units?
>
> My current concept of keeping them separate from gx86 packages is good
> for a short early testing period but is a maintenance PITA for a longer
> term. And requires either adding '--without-systemdsystemunitdir'
> to a growing number of packages or removing the systemd.pc file
> (to avoid unit collisions).
Where is the --without-systemdsystemunitdir option coming from? Is that
an option that is being provided by the packages or are you providing it
some how?
William
04-25-2011, 07:30 AM
Michał Górny
Installing systemd units with gx86 packages
On Sun, 24 Apr 2011 17:29:29 -0500
William Hubbs <williamh@gentoo.org> wrote:
> On Sun, Apr 24, 2011 at 09:36:30AM +0200, Michał Górny wrote:
> > The number of packages coming with systemd units is growing rapidly
> > recently, and that especially applies to freedesktop packages.
> > One side effect of that is that these packages treat systemd
> > as an automagic dependency, installing systemd units whenever its
> > pkgconfig file is installed. I already opened two bugs on that [2,3]
> > but there would be much more...
> >
> > That's why I'm asking now: how should we proceed with installing
> > systemd units?
> >
> > My current concept of keeping them separate from gx86 packages is
> > good for a short early testing period but is a maintenance PITA for
> > a longer term. And requires either adding
> > '--without-systemdsystemunitdir' to a growing number of packages or
> > removing the systemd.pc file (to avoid unit collisions).
>
> Where is the --without-systemdsystemunitdir option coming from? Is
> that an option that is being provided by the packages or are you
> providing it some how?
It's provided by packages (and officially suggested by upstream). It
works like that:
1) if --without-systemdsystemunitdir is provided, systemd units are not
installed,
2) if --with-systemdsystemunitdir=... is provided, systemd units are
installed in specified directory,
3) if none of the above is provided, systemd checks for its pkgconfig
file and grabs the directory from there.
--
Best regards,
Michał Górny
04-25-2011, 07:37 AM
Michał Górny
Installing systemd units with gx86 packages
On Sun, 24 Apr 2011 17:11:10 -0500
William Hubbs <williamh@gentoo.org> wrote:
I'm sorry I didn't explained that clearly. The fact is that it becomes
automagic if builder doesn't care about turning it on or off which was
the case for many recent fdo package bumps.
> > In the second place, the usual Gentoo way of enabling OpenRC
> > services is to *add* init.d scripts in the ebuild, and this is
> > completely orthogonal to a package installing a systemd unit file
> > (the presence of the later does not matter to OpenRC at all).
>
> This is another topic I may bring up at some point, if you are using
> systemd, etc, and openrc is not even installed on your system, do you
> need /etc/init.d at all? Once openrc goes stable, I might bring that
> up for discussion.
I'd say INSTALL_MASK, again. Although it'd be hard to grab all udev
rules and other junk like that, it would work fine with most
of the scripts.