Message ID | 20240823002322.1203466-5-pvorel@suse.cz (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | Update systemd/rpcbind.service.in | expand |
Hi Steve, > Add Want/After systemd-tmpfiles-setup.service. This is taken from Fedora > rpcbind-0.2.4-5.fc25 patch [1] which tried to handle bug #1401561 [2] > where /var/run/rpcbind.lock cannot be created due missing /var/run/ > directory. But the suggestion to add RequiresMountFor=... was > implemented in ee569be ("Fix boot dependency in systemd service file"). > But even with RequiresMountsFor=/run/rpcbind in rpcbind.service and > /run/rpcbind.lock there is error on openSUSE Tumbleweed with rpcbind > 1.2.6: > rpcbind.service: Failed at step NAMESPACE spawning /usr/sbin/rpcbind: Read-only file system > Adding systemd-tmpfiles-setup.service fixes it. > NOTE: Debian uses for this purpose remote-fs-pre.target (also works, but > systemd-tmpfiles-setup.service looks to me more specific). > openSUSE uses only After=sysinit.target as a result of #1117217 [3] > (also works). Reading RH #1117217 once more I wonder if old Fedora patch [4], which places rpcbind.lock into /var/run/rpcbind/ would be a better solution: configure.ac - --with-statedir=ARG use ARG as state dir [default=/var/run/rpcbind] + --with-statedir=ARG use ARG as state dir [default=/run/rpcbind] ... - with_statedir=/var/run/rpcbind + with_statedir=/run/rpcbind src/rpcbind.c -#define RPCBINDDLOCK "/var/run/rpcbind.lock" +#define RPCBINDDLOCK RPCBIND_STATEDIR "/rpcbind.lock" But I suppose other out-of-tree patch [5] is not a dependency for it, right? Debian [6] and openSUSE [7] use more simpler version to move to /run. Maybe time to upstream Fedora patch and distros will adopt it? Kind regards, Petr > [1] https://src.fedoraproject.org/rpms/rpcbind/blob/rawhide/f/rpcbind-0.2.4-systemd-service.patch > [2] https://bugzilla.redhat.com/show_bug.cgi?id=1401561 > [3] https://bugzilla.suse.com/show_bug.cgi?id=1117217 [4] https://src.fedoraproject.org/rpms/rpcbind/blob/f41/f/rpcbind-0.2.4-runstatdir.patch [5] https://src.fedoraproject.org/rpms/rpcbind/blob/rawhide/f/rpcbind-0.2.4-systemd-rundir.patch [6] https://salsa.debian.org/debian/rpcbind/-/blob/master/debian/patches/run-migration?ref_type=heads [7] https://build.opensuse.org/projects/openSUSE:Factory/packages/rpcbind/files/0001-change-lockingdir-to-run.patch?expand=1 > Signed-off-by: Petr Vorel <pvorel@suse.cz> > --- > systemd/rpcbind.service.in | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > diff --git a/systemd/rpcbind.service.in b/systemd/rpcbind.service.in > index 272e55a..771b944 100644 > --- a/systemd/rpcbind.service.in > +++ b/systemd/rpcbind.service.in > @@ -7,7 +7,8 @@ RequiresMountsFor=@statedir@ > # Make sure we use the IP addresses listed for > # rpcbind.socket, no matter how this unit is started. > Requires=rpcbind.socket > -Wants=rpcbind.target > +Wants=rpcbind.target systemd-tmpfiles-setup.service > +After=systemd-tmpfiles-setup.service > [Service] > ProtectSystem=full
Hey! My apologies for taking so long to address these patches. On 8/22/24 9:01 PM, Petr Vorel wrote: > Hi Steve, > >> Add Want/After systemd-tmpfiles-setup.service. This is taken from Fedora >> rpcbind-0.2.4-5.fc25 patch [1] which tried to handle bug #1401561 [2] >> where /var/run/rpcbind.lock cannot be created due missing /var/run/ >> directory. But the suggestion to add RequiresMountFor=... was >> implemented in ee569be ("Fix boot dependency in systemd service file"). > >> But even with RequiresMountsFor=/run/rpcbind in rpcbind.service and >> /run/rpcbind.lock there is error on openSUSE Tumbleweed with rpcbind >> 1.2.6: > >> rpcbind.service: Failed at step NAMESPACE spawning /usr/sbin/rpcbind: Read-only file system > >> Adding systemd-tmpfiles-setup.service fixes it. > >> NOTE: Debian uses for this purpose remote-fs-pre.target (also works, but >> systemd-tmpfiles-setup.service looks to me more specific). >> openSUSE uses only After=sysinit.target as a result of #1117217 [3] >> (also works). > > Reading RH #1117217 once more I wonder if old Fedora patch [4], which places > rpcbind.lock into /var/run/rpcbind/ would be a better solution: > > configure.ac > - --with-statedir=ARG use ARG as state dir [default=/var/run/rpcbind] > + --with-statedir=ARG use ARG as state dir [default=/run/rpcbind] > ... > - with_statedir=/var/run/rpcbind > + with_statedir=/run/rpcbind > > src/rpcbind.c > -#define RPCBINDDLOCK "/var/run/rpcbind.lock" > +#define RPCBINDDLOCK RPCBIND_STATEDIR "/rpcbind.lock" > > But I suppose other out-of-tree patch [5] is not a dependency for it, right? I don't like out-of-tree patch but sometimes they are necessary since I didn't what to force other distros to adapt what I made Fedora use. > > Debian [6] and openSUSE [7] use more simpler version to move to /run. Maybe time > to upstream Fedora patch and distros will adopt it? It is time! :-) I'm all for distros to consolidate into one code base... it is much easier to find bugs and support. IMHO. Please send patches [6] and [7] in the correct patch form and I will commit them and mostly like create another release. Thank you.. for point these differences out!! steved. > > Kind regards, > Petr > >> [1] https://src.fedoraproject.org/rpms/rpcbind/blob/rawhide/f/rpcbind-0.2.4-systemd-service.patch >> [2] https://bugzilla.redhat.com/show_bug.cgi?id=1401561 >> [3] https://bugzilla.suse.com/show_bug.cgi?id=1117217 > > [4] https://src.fedoraproject.org/rpms/rpcbind/blob/f41/f/rpcbind-0.2.4-runstatdir.patch > [5] https://src.fedoraproject.org/rpms/rpcbind/blob/rawhide/f/rpcbind-0.2.4-systemd-rundir.patch > [6] https://salsa.debian.org/debian/rpcbind/-/blob/master/debian/patches/run-migration?ref_type=heads > [7] https://build.opensuse.org/projects/openSUSE:Factory/packages/rpcbind/files/0001-change-lockingdir-to-run.patch?expand=1 > >> Signed-off-by: Petr Vorel <pvorel@suse.cz> >> --- >> systemd/rpcbind.service.in | 3 ++- >> 1 file changed, 2 insertions(+), 1 deletion(-) > >> diff --git a/systemd/rpcbind.service.in b/systemd/rpcbind.service.in >> index 272e55a..771b944 100644 >> --- a/systemd/rpcbind.service.in >> +++ b/systemd/rpcbind.service.in >> @@ -7,7 +7,8 @@ RequiresMountsFor=@statedir@ >> # Make sure we use the IP addresses listed for >> # rpcbind.socket, no matter how this unit is started. >> Requires=rpcbind.socket >> -Wants=rpcbind.target >> +Wants=rpcbind.target systemd-tmpfiles-setup.service >> +After=systemd-tmpfiles-setup.service > >> [Service] >> ProtectSystem=full >
Hi Steve, > Hey! > My apologies for taking so long to address these patches. No problem, understand you're busy. > On 8/22/24 9:01 PM, Petr Vorel wrote: > > Hi Steve, > > > Add Want/After systemd-tmpfiles-setup.service. This is taken from Fedora > > > rpcbind-0.2.4-5.fc25 patch [1] which tried to handle bug #1401561 [2] > > > where /var/run/rpcbind.lock cannot be created due missing /var/run/ > > > directory. But the suggestion to add RequiresMountFor=... was > > > implemented in ee569be ("Fix boot dependency in systemd service file"). > > > But even with RequiresMountsFor=/run/rpcbind in rpcbind.service and > > > /run/rpcbind.lock there is error on openSUSE Tumbleweed with rpcbind > > > 1.2.6: > > > rpcbind.service: Failed at step NAMESPACE spawning /usr/sbin/rpcbind: Read-only file system > > > Adding systemd-tmpfiles-setup.service fixes it. > > > NOTE: Debian uses for this purpose remote-fs-pre.target (also works, but > > > systemd-tmpfiles-setup.service looks to me more specific). > > > openSUSE uses only After=sysinit.target as a result of #1117217 [3] > > > (also works). > > Reading RH #1117217 once more I wonder if old Fedora patch [4], which places > > rpcbind.lock into /var/run/rpcbind/ would be a better solution: > > configure.ac > > - --with-statedir=ARG use ARG as state dir [default=/var/run/rpcbind] > > + --with-statedir=ARG use ARG as state dir [default=/run/rpcbind] > > ... > > - with_statedir=/var/run/rpcbind > > + with_statedir=/run/rpcbind > > src/rpcbind.c > > -#define RPCBINDDLOCK "/var/run/rpcbind.lock" > > +#define RPCBINDDLOCK RPCBIND_STATEDIR "/rpcbind.lock" > > But I suppose other out-of-tree patch [5] is not a dependency for it, right? > I don't like out-of-tree patch but sometimes they are necessary > since I didn't what to force other distros to adapt what > I made Fedora use. Sure, let's drop this. I was also thinking to add this as a configuration issue, but I suppose most of the distro maintainers are perfectly ok with this directory patch. > > Debian [6] and openSUSE [7] use more simpler version to move to /run. Maybe time > > to upstream Fedora patch and distros will adopt it? > It is time! :-) I'm all for distros to consolidate into one code > base... it is much easier to find bugs and support. IMHO. > Please send patches [6] and [7] in the correct patch form and > I will commit them and mostly like create another release. I'll do, thanks! Kind regards, Petr > Thank you.. for point these differences out!! > steved. > > Kind regards, > > Petr > > > [1] https://src.fedoraproject.org/rpms/rpcbind/blob/rawhide/f/rpcbind-0.2.4-systemd-service.patch > > > [2] https://bugzilla.redhat.com/show_bug.cgi?id=1401561 > > > [3] https://bugzilla.suse.com/show_bug.cgi?id=1117217 > > [4] https://src.fedoraproject.org/rpms/rpcbind/blob/f41/f/rpcbind-0.2.4-runstatdir.patch > > [5] https://src.fedoraproject.org/rpms/rpcbind/blob/rawhide/f/rpcbind-0.2.4-systemd-rundir.patch > > [6] https://salsa.debian.org/debian/rpcbind/-/blob/master/debian/patches/run-migration?ref_type=heads > > [7] https://build.opensuse.org/projects/openSUSE:Factory/packages/rpcbind/files/0001-change-lockingdir-to-run.patch?expand=1 > > > Signed-off-by: Petr Vorel <pvorel@suse.cz> > > > --- > > > systemd/rpcbind.service.in | 3 ++- > > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > diff --git a/systemd/rpcbind.service.in b/systemd/rpcbind.service.in > > > index 272e55a..771b944 100644 > > > --- a/systemd/rpcbind.service.in > > > +++ b/systemd/rpcbind.service.in > > > @@ -7,7 +7,8 @@ RequiresMountsFor=@statedir@ > > > # Make sure we use the IP addresses listed for > > > # rpcbind.socket, no matter how this unit is started. > > > Requires=rpcbind.socket > > > -Wants=rpcbind.target > > > +Wants=rpcbind.target systemd-tmpfiles-setup.service > > > +After=systemd-tmpfiles-setup.service > > > [Service] > > > ProtectSystem=full
diff --git a/systemd/rpcbind.service.in b/systemd/rpcbind.service.in index 272e55a..771b944 100644 --- a/systemd/rpcbind.service.in +++ b/systemd/rpcbind.service.in @@ -7,7 +7,8 @@ RequiresMountsFor=@statedir@ # Make sure we use the IP addresses listed for # rpcbind.socket, no matter how this unit is started. Requires=rpcbind.socket -Wants=rpcbind.target +Wants=rpcbind.target systemd-tmpfiles-setup.service +After=systemd-tmpfiles-setup.service [Service] ProtectSystem=full
Add Want/After systemd-tmpfiles-setup.service. This is taken from Fedora rpcbind-0.2.4-5.fc25 patch [1] which tried to handle bug #1401561 [2] where /var/run/rpcbind.lock cannot be created due missing /var/run/ directory. But the suggestion to add RequiresMountFor=... was implemented in ee569be ("Fix boot dependency in systemd service file"). But even with RequiresMountsFor=/run/rpcbind in rpcbind.service and /run/rpcbind.lock there is error on openSUSE Tumbleweed with rpcbind 1.2.6: rpcbind.service: Failed at step NAMESPACE spawning /usr/sbin/rpcbind: Read-only file system Adding systemd-tmpfiles-setup.service fixes it. NOTE: Debian uses for this purpose remote-fs-pre.target (also works, but systemd-tmpfiles-setup.service looks to me more specific). openSUSE uses only After=sysinit.target as a result of #1117217 [3] (also works). [1] https://src.fedoraproject.org/rpms/rpcbind/blob/rawhide/f/rpcbind-0.2.4-systemd-service.patch [2] https://bugzilla.redhat.com/show_bug.cgi?id=1401561 [3] https://bugzilla.suse.com/show_bug.cgi?id=1117217 Signed-off-by: Petr Vorel <pvorel@suse.cz> --- systemd/rpcbind.service.in | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)