Gentoo Archives: gentoo-dev

From: Ian Stakenvicius <axs@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] tmpfiles virtual
Date: Thu, 17 Nov 2016 19:10:44
Message-Id: a5617a49-0ba5-9e7c-677c-f8617ae5c529@gentoo.org
In Reply to: Re: [gentoo-dev] tmpfiles virtual by "Michał Górny"
1 On 17/11/16 01:49 PM, Michał Górny wrote:
2 > On Thu, 17 Nov 2016 19:46:41 +0100
3 > Michał Górny <mgorny@g.o> wrote:
4 >
5 >> On Thu, 17 Nov 2016 10:02:25 -0500
6 >> Ian Stakenvicius <axs@g.o> wrote:
7 >>
8 >>> On 17/11/16 01:03 AM, Michał Górny wrote:
9 >>>> On Wed, 16 Nov 2016 14:21:41 -0600
10 >>>> William Hubbs <williamh@g.o> wrote:
11 >>>>
12 >>>>> On Wed, Nov 16, 2016 at 01:04:11PM -0500, Ian Stakenvicius wrote:
13 >>>>>> On 16/11/16 12:03 PM, William Hubbs wrote:
14 >>>>>>> On Wed, Nov 16, 2016 at 10:14:02AM -0500, Ian Stakenvicius wrote:
15 >>>>>>>> On 16/11/16 10:08 AM, William Hubbs wrote:
16 >>>>>>>>> opentmpfiles will be updated to install the service scripts which
17 >>>>>>>>> will be run when OpenRC boots a system. There is nothing for
18 >>>>>>>>> it to do if systemd is used to boot the system.
19 >>>>>>>>>
20 >>>>>>>>> William
21 >>>>>>>>>
22 >>>>>>>>
23 >>>>>>>> But there is something to do if openrc is used to boot the system and
24 >>>>>>>> systemd is the package providing tmpfiles.d processing via the virtual.
25 >>>>>>>
26 >>>>>>> The providers (opentmpfiles and systemd) will not block each other, so
27 >>>>>>> the only way this will happen is if you have openrc and systemd
28 >>>>>>> installed then forcefully remove opentmpfiles. I think you would not
29 >>>>>>> want to do that until you are ready to migrate to booting with systemd.
30 >>>>>>>
31 >>>>>>> William
32 >>>>>>>
33 >>>>>>
34 >>>>>> I think I'm having a hard time getting across the issue here...:
35 >>>>>>
36 >>>>>> 1 - we will have a virtual/tmpfiles that will bring in EITHER systemd,
37 >>>>>> or opentmpfiles.
38 >>>>>>
39 >>>>>> 2 - openrc will NOT depend on opentmpfiles (nor virtual/tmpfiles)
40 >>>>>>
41 >>>>>> 3 - Applications that install stuff into /usr/lib/tmpfiles.d/ will
42 >>>>>> need to depend on virtual/tmpfiles in order to make sure that the
43 >>>>>> system has something installed that will process them at boot-time.
44 >>>>>
45 >>>>> Yes, this will be handled by an RDEPEND in the eclass.
46 >>>>
47 >>>> This is a wrong presumption. The eclass needs the virtual only for
48 >>>> pkg_postinst(). While RDEPEND is how we solve this now, it will no
49 >>>> longer be necessary in a future EAPI.
50 >>>>
51 >>>
52 >>> This makes sense to me as well -- which means every package that
53 >>> installs tmpfiles.d/ files should properly RDEPEND on the virtual on
54 >>> its own when the functionality arisen from those tmpfiles.d files is
55 >>> non-optional.
56 >>
57 >> No, that's now what I meant.
58 >>
59 >> The eclass needs the virtual to create temporary directories once,
60 >> in pkg_postinst(). Period. That's how far it is concerned.
61 >>
62 >> If user wants to use a volatile filesystem or any other more complete
63 >> tmpfiles.d processing, he needs to use a init that supports that. Which
64 >> means either OpenRC with tmpfiles or systemd. Ebuild has nothing to do
65 >> with this.
66 >
67 > One more thing. I still believe openrc should RDEP on tmpfiles by
68 > default since openrc is mounting a few standard locations
69 > (like /var/run) as tmpfs by default.
70 >
71
72 OpenRC isn't using tmpfiles.d *.conf files to do that (although it
73 could). I didn't realize tmpfiles.d processing had any direct
74 relationship or association with tmpfs mounts though (other than it
75 helps solve the issue of files and dirs disappearing after reboots, of
76 course).
77
78 Part of the point of the virtual (and the reason for the init script
79 arguments in this thread) is that it makes this functionality not tied
80 to an init/rc system anymore -- that is:
81
82 - systemd will just do it, if its used as init
83 - systemd if installed can be used to do it from openrc/other-init
84 - opentmpfiles can be used to do it from openrc/other-init
85
86 The part where I see the ebuild coming into play here is for all of
87 the packages that currently install .conf files into
88 /usr/lib/tmpfiles.d/ (like apache, libvirt, etc. etc). If those
89 packages are doing so explicitly because they non-optionally expect
90 systemd-tmpfilesd or opentmpfiles to do what's been specified (and
91 will fail otherwise), then this is an actual RDEPEND for those
92 packages whether they use the eclass or not.
93
94 You are right, though -- we avoid a whole bunch of this if openrc just
95 RDEPENDs on the virtual and all other packages just assume there is
96 support for tmpfiles.d processing in whatever init/rc system is used.
97 However that seems to not be where things are going (at least from
98 WilliamH's perspective)

Attachments

File name MIME type
signature.asc application/pgp-signature

Replies

Subject Author
Re: [gentoo-dev] tmpfiles virtual "Michał Górny" <mgorny@g.o>