rpm 5.4.10 for testing in th-test

Jeffrey Johnson n3npq at me.com
Wed Sep 12 15:10:52 CEST 2012


On Sep 12, 2012, at 2:56 AM, Jacek Konieczny <jajcus at jajcus.net> wrote:

> On Tue, Sep 11, 2012 at 11:06:45PM -0400, Jeffrey Johnson wrote:
>> There's no well defined semantic for
>> 	Provides: group(mpd)
>> even if PLD has adopted some convention afaik. The
>> 	Provides: group(mpd)
>> is just a string and (imho) should be removed
>> if there are problems unless there is truly some
>> explicit PLD implementation that relies on the adopted
>> convention.
> 
> There is.
> 

OK.

> PLD. Packages with 'Provides: group(mpd)' call the '%groupadd' macro
> during installation, which creates the group if it is not already
> defined. When uninstalled they call the '%groupremove' macro.
> 
> The same 'group(mpd)' may be provided by multiple packages (probably not
> much sense with the 'mpd' group, but important for other cases) and the
> group will be removed only when the last package which provides it is
> removed. So the 'Provides: user(*)' and 'Provides: group(*)' are
> critical for our %{user,group}{add,remove}  macros.
> 
> Other solutions to the problem (multiple packages using the same
> user/groups) would be:
> - including every system uid/gid in the 'setup' package. 
>  Disadvantages: lots of unneeded user and groups defined on every PLD
>  system and the need to update the setup package whenever user/group is
>  needed for anything else.
> - providing each such user/group/user&group via a single packages
>  Disadvantages: some packages would be created only to hold a single
>  user or group definition.
> - never removing users/groups added
>  Disadvantages: mess left after uninstalled packages
> 
> Our useradd/groupadd macros with 'Provides: user/group(*)' seem to be
> quite an elegant solution in comparison and RPM 5.x still doesn't seem
> to provide anything better.
> 

Heh: @rpm5.org has a complete copy of shadowutils
reworked into lua module(s) in order to be able
to perform _EXACTLY_ what useradd/groupadd do
in cross-compilation (and cross-install) environments
using embedded lua and shadowutils (and checkconf).

RPM+LUA+SHADOWUTILS is/was arguably "better" at the time (~2008).

rpm also embeds augeas, so augtool commands can
be run that do not only add/delete but also permit
modification under an augtool-like DSL programatically.

More recently, rpm embeds sqlite3 and there are
virtual tables to user/group management: the intent
is/was to add transactional support and a 2-phase commit
to /etc/passwd/gtoup management well integrated into
	Transactionally Protected Package Management
At the moment user/group management is RO and without
transactional support … there's been little reason
to complete the work so far.

But this isn't the time/pace to discuss relative merits
of user/group management … the rpmdsCompare needs to
be extended to include the namespace in the comparison.

73 de Jeff



More information about the pld-devel-en mailing list