1 |
On Wed, Nov 16, 2016 at 01:04:11PM -0500, Ian Stakenvicius wrote: |
2 |
> On 16/11/16 12:03 PM, William Hubbs wrote: |
3 |
> > On Wed, Nov 16, 2016 at 10:14:02AM -0500, Ian Stakenvicius wrote: |
4 |
> >> On 16/11/16 10:08 AM, William Hubbs wrote: |
5 |
> >>> opentmpfiles will be updated to install the service scripts which |
6 |
> >>> will be run when OpenRC boots a system. There is nothing for |
7 |
> >>> it to do if systemd is used to boot the system. |
8 |
> >>> |
9 |
> >>> William |
10 |
> >>> |
11 |
> >> |
12 |
> >> But there is something to do if openrc is used to boot the system and |
13 |
> >> systemd is the package providing tmpfiles.d processing via the virtual. |
14 |
> > |
15 |
> > The providers (opentmpfiles and systemd) will not block each other, so |
16 |
> > the only way this will happen is if you have openrc and systemd |
17 |
> > installed then forcefully remove opentmpfiles. I think you would not |
18 |
> > want to do that until you are ready to migrate to booting with systemd. |
19 |
> > |
20 |
> > William |
21 |
> > |
22 |
> |
23 |
> I think I'm having a hard time getting across the issue here...: |
24 |
> |
25 |
> 1 - we will have a virtual/tmpfiles that will bring in EITHER systemd, |
26 |
> or opentmpfiles. |
27 |
> |
28 |
> 2 - openrc will NOT depend on opentmpfiles (nor virtual/tmpfiles) |
29 |
> |
30 |
> 3 - Applications that install stuff into /usr/lib/tmpfiles.d/ will |
31 |
> need to depend on virtual/tmpfiles in order to make sure that the |
32 |
> system has something installed that will process them at boot-time. |
33 |
|
34 |
Yes, this will be handled by an RDEPEND in the eclass. |
35 |
|
36 |
> GIVEN THIS, if a system has both systemd and openrc installed (that |
37 |
> is, they dual-boot), then virtual/tmpfiles will NOT bring in |
38 |
> opentmpfiles, and so if opentmpfiles is the only package that installs |
39 |
> init scripts then openrc won't trigger any processing of |
40 |
> /usr/lib/tmpfiles.d/* at bootup in this situation. |
41 |
|
42 |
The way this is handled on the systemd side right now is with a PDEPEND |
43 |
on udev-init-scripts, which forces them to be installed even on a pure |
44 |
systemd system. That is a separate issue, which I may open as a bug |
45 |
against systemd, but discussing it goes on a separate thread probably. |
46 |
|
47 |
If we follow that, I would add opentmpfiles to the pdepend. |
48 |
|
49 |
> I think, given the opentmpfiles and the systemd tmpfiles commands and |
50 |
> arguments can differ, it would likely make more sense to have a |
51 |
> virtual service in openrc (that is, keep tmpfiles.dev and |
52 |
> tmpfiles.setup as virtuals) and have opentmpfiles and systemd both |
53 |
> install init scripts for their respective implementation that will |
54 |
> provide each of those in openrc. |
55 |
|
56 |
This is a separate issue. The service scripts will provide virtuals, but |
57 |
openrc itself doesn't reference them. The only service I know about that |
58 |
references them is kmod-static-nodes; it runs before tmpfiles.dev, which |
59 |
is in the sysinit runlevel. tmpfiles.setup is in the boot runlevel so it |
60 |
runs early enough that there haven't been issues. |
61 |
|
62 |
> The alternative would be to make a |
63 |
> tmpfiles-init-scripts package that will contain a single set of |
64 |
> scripts that'll call either the opentmpfiles or the systemd-tmpfiles |
65 |
> implementation at runtime depending on what is available. |
66 |
|
67 |
I can make the service scripts call the systemd-tmpfiles service if it |
68 |
is available or if not call the opentmpfiles implementation. |
69 |
|
70 |
I'm not sure whether it is worth having a separate package for the |
71 |
service scripts in this case. |
72 |
|
73 |
William |