On Sat, Nov 27, 2021 at 03:29:05PM -0800, Adam Williamson wrote:
On Sat, 2021-11-27 at 09:01 -0500, Frank Ch. Eigler wrote:
> Adam Williamson <adamwill(a)fedoraproject.org> writes:
>
> > [...]
> >
> >
https://docs.fedoraproject.org/en-US/packaging-guidelines/UsersAndGroups/...
> >
> > 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.
Yeah, I figured that was probably the issue. I could not find any
documentation of exactly when macro expansion happens, but I probably
didn't look hard enough.
> 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.spe...
>
https://src.fedoraproject.org/rpms/systemtap/blob/rawhide/f/systemtap.spe...
>
https://src.fedoraproject.org/rpms/systemtap/blob/rawhide/f/systemtap.spe...
>
> IMO this is ugly and unfortunate.
I agree. I'd really like a less icky solution to this :(
Yes, this is a problem. It would be nice if rpm allowed more flexibility here.
https://github.com/rpm-software-management/rpm/pull/1485 looks promising:
we could do away with *all* scriptlets in the spec file, and the sysusers
stuff would be handled by a generator.
A similar problem occurs with transfiletriggers in the systemd package:
they are defined in a long file that is created as part of the build. But
rpmbuild requires that their definition is always available. We copy
the file out [1] and after the build check that it hasn't changed [2],
but that's ugly and fragile.
[1]
https://src.fedoraproject.org/rpms/systemd/blob/rawhide/f/triggers.systemd
[2]
https://src.fedoraproject.org/rpms/systemd/blob/rawhide/f/systemd.spec#_533
Zbyszek