On Thu, Mar 06, 2025 at 05:02:27PM +0100, Michal Schorm wrote:
> Yes, MariaDB packs it's own sysusers file.
> 
>   | # cat /usr/lib/sysusers.d/mariadb.conf
>   | u mysql - "MariaDB" /var/lib/mysql
> 
> however it wasn't used.
> Instead, the preinstall scriptlet (which I maintained to be identical
> with the MySQL one) was.
> 
> 1)
> Do I understand correctly, that with your Fedora 42 Change, the DNF
> behavior changed,
> so that the packaged sysuser file takes preference, ignoring (or
> simply just running earlier than) the preinstall scriptlet?

Yes. Looking at commit 009d1397331a89413e2c5eead163cadb47ccdb4b,
rpm executes the sysusers config before %triggerprein.
The preinstall scriptlet still gets executed, but in this case
it is a noop since the accounts already exist.

> 2)
> When does it run exactly?
> It doesn't seem to be specified in the DNF transaction output, however
> since it actually creates the user:group, it has to run before the
> preinstall scriptlet.
> So that suggests the sysusers is handled somewhere during pretrans maybe?
> I mean the package contains files owned by the user:group, so I just
> want to be sure the user:group is set when the package is actually
> being installed.
>
> 3)
> How much is it compatible with older releases?
> I strive to maintain a solid level of compatibility between Fedora,
> CentOS Stream and RHEL SPECfiles to minimize the cherry-picking effort
> required.
> Is it possible to switch to sysusers.d now, but making it work on any
> of: Fedora 40, Fedora 41, RHEL 10 or RHEL 9?
> Or would it be necessary to keep the RPM scriptlet logic conditionally
> for older releases?

The native rpm handling is only available in F42+. (Maybe it'll be
backported, but it's a fairly significant change, so I doubt that.)
There are some choices for compatibility:
- keep the existing scriptlets, probably making them conditional
- use %sysuser_create_compat as described in the Packaging Guidelines [0].
  In F43+ this will be a noop [1]. Since the package already has a
  sysusers file, this is going to be just a few lines.

[0] 
https://docs.fedoraproject.org/en-US/packaging-guidelines/UsersAndGroups/#_creation_of_users_and_groups_with_scriptlets
[1] https://src.fedoraproject.org/rpms/systemd/pull-request/193

Zbyszek
-- 
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
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@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue

Reply via email to