FS#73171 - [systemd] 250-1 removal of /usr/lib/tmpfiles.d/legacy.conf causes problems

Attached to Project: Arch Linux
Opened by Thomas Eberhardt (ed209) - Monday, 27 December 2021, 14:14 GMT
Last edited by Christian Hesse (eworm) - Monday, 27 December 2021, 23:02 GMT
Task Type Bug Report
Category Packages: Core
Status Closed
Assigned To Christian Hesse (eworm)
Architecture x86_64
Severity Medium
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 1
Private No

Details

Description:

The removal of /usr/lib/tmpfiles.d/legacy.conf which creates /run/lock, /var/lock (symlink to /run/lock)
and /run/lock/subsys is causing at least one problem on my system. The following error is now reported
during boot (i have libvirt-guests.service from libvirt enabled):

libvirt-guests.sh[1461]: touch: cannot touch '/var/lock/subsys/libvirt-guests': No such file or directory

Also there seems to be a lot of other stuff that uses /run/lock. On my system there are, for example,
/run/lock/asound.state.lock, /run/lock/dmraid and /run/lock/lvm.
This task depends upon

Closed by  Christian Hesse (eworm)
Monday, 27 December 2021, 23:02 GMT
Reason for closing:  Fixed
Additional comments about closing:  systemd 250-3
Comment by Christian Hesse (eworm) - Monday, 27 December 2021, 15:44 GMT
Upstream deprecated the file, and finally removed it with v250 from repository.

I guess other packages have to care the paths exist on their own now.
Comment by Robert Cegliński (codicodi) - Monday, 27 December 2021, 16:10 GMT
The file is still there, just got an '.in' extension

https://github.com/systemd/systemd/blob/v250/tmpfiles.d/legacy.conf.in
Comment by Christian Hesse (eworm) - Monday, 27 December 2021, 17:40 GMT
I made git filter on path, and saw the removal only. :-p

Well, ok.. As we do not set 'sysvinit-path' and 'sysvrcnd-path' the file is not generated for us...
Comment by Christian Hesse (eworm) - Monday, 27 December 2021, 19:55 GMT
Just thinking about this again.
Upstream systemd thinks these directories should be created on systems with support for SysV init scripts. We do not have this support.

Services started from unit files should care to create the directories themselves. (This can be done inside service if permissions are sufficient, but also with a specific tmpfiles file).

So probably not including this file and opening (upstream) issues for failing services is the correct way.
Comment by Robert Cegliński (codicodi) - Monday, 27 December 2021, 20:30 GMT
/var/lock is a well known (and defined by FHS) path. Right now it's included in 'filesystem' package and is a broken symlink to /run/lock (which isn't created anymore due to this issue). I don't think this is something that upstreams should be dealing with.
Comment by Robert Cegliński (codicodi) - Monday, 27 December 2021, 21:32 GMT
I don't know if legacy.conf should be restored (no one likes legacy stuff :) ). Maybe /run/lock can be created in an Arch provided tmpfiles drop-in? Or /var/lock in filesystem package can be changed to directory?
Comment by Michel Koss (MichelKoss1) - Monday, 27 December 2021, 21:55 GMT
I think restoring legacy paths through systemd would be most straightforward way to fix it at virtually no extra cost. Arch may be modern system but there are a lot of legacy apps left targeting legacy systems like rhel therefore upstreams may be not interested in updating them to modern standards (even if they're still active).
Comment by Christian Hesse (eworm) - Monday, 27 December 2021, 23:02 GMT
Probably getting the file back is really the easiest. Reintroduced it with systemd 250-3.

Loading...