On Sep 12, 2012, at 2:56 AM, Jacek Konieczny <jaj...@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 _______________________________________________ pld-devel-en mailing list pld-devel-en@lists.pld-linux.org http://lists.pld-linux.org/mailman/listinfo/pld-devel-en