On Sat, Nov 27, 2021 at 9:02 AM Frank Ch. Eigler <fche@xxxxxxxxxx> wrote: > > Adam Williamson <adamwill@xxxxxxxxxxxxxxxxx> writes: > > > [...] > > > > https://docs.fedoraproject.org/en-US/packaging-guidelines/UsersAndGroups/#_dynamic_allocation > > > > say: > > > > "Create a <package-name>.sysusers file with the user definition and add > > where usr/lib/sysusers.d/geekotest.conf is the path to one of the > > sysusers config file within the upstream source, but it doesn't seem to > > work. [...] > > One problem with these sysusers rpm macros is that they expand to the > scriptlets very early: before even the main source tarball is extracted. > This is why the fedora packaging guideline more or less forces them to > be first-class spec sources. > > In the case of systemtap, we worked around this by moving the sysusers > config files right into the spec file - out of the source tarball - and > feed them to %pre and %install scripts by hand. > > https://src.fedoraproject.org/rpms/systemtap/blob/rawhide/f/systemtap.spec#_91 > https://src.fedoraproject.org/rpms/systemtap/blob/rawhide/f/systemtap.spec#_688 > https://src.fedoraproject.org/rpms/systemtap/blob/rawhide/f/systemtap.spec#_818 > > IMO this is ugly and unfortunate. > The design around sysusers expects a model where files are unpacked and *then* scripts are run. RPM doesn't work that way, which makes all of this fall apart. In the ideal case, we could generate preinstall scriptlets for this stuff from detected sysusers files on the fly, but there's currently no way to do that. A more practical way to work around this is to always subpackage out sysusers and use dependencies to guarantee that it's installed before the package itself is. This would require the systemd file trigger to make it so that sysusers is run per-package instead of per-transaction, though. Alternatively, you could just manually run systemd-sysusers in %post for those cases. -- 真実はいつも一つ!/ Always, there's only one truth! _______________________________________________ devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx Do not reply to spam on the list, report it: https://pagure.io/fedora-infrastructure