This is an early first draft of an updated passwd package that splits off each user into SplitOffs so that someone needing a single new fink provided user doesn't have to install another (currently) 18 users.
Main changes from the current passwd (10.5 flavor):
1) all users are now separate splitoffs (passwd-games, passwd-news, etc) that should depend on the version of passwd when they were added.
2) no more global PostInstScript. Each splitoff now has it's own PostInstScript that adds the required entries to the user and groups databases.
Biggest caveats with this approach that I can think of:
1) There is no way to have the update-passwd script install 2 users at the same time requiring only 1 single user interaction, either when called by the same splitoff or by two splitoffs being called from the same 'fink install' command. Sequential installs should still be possible however. This obviously will affect the interactivity of fink (interactivity is needed currently anyway, although only once).
2) All packages that currently depend on passwd will have to be updated to depend on passwd-foo.
Benefits:
1) finer grain. No more having to install users that one doesn't need/want.
2) users can now be made specific to distributions and PostInstScripts for the splitoffs can be made more complicated if needed.
The update-passwd script is pretty much untouched from the original, so most everything should work the same. The whole IFS/OIFS logic needs to be verified because I'm not 100% sure what it's doing, as well as the general script logic to check for badly entered input, which would normally only occur when called via the installation of a passwd-foo package, so that's probably minimal (or at least not worse than currently).
File Added: passwd-10.5.patch
Because it's a pain to update stuff here, I'm currently putting updates in my experimental tree at <http://cvs.snaggledworks.com/viewvc.cgi/fink/3rdparty/main/finkinfo/base/>.
Once better files come out, they will be put here.
What is the status of this item?
Some changes to the submission as per our discussion on #fink.
The base package is now called 'passwd-core'. This means that it won't overlap w/ the original passwd and won't require a mass upgrade of all packages which currently Depends: passwd.
now uses passwd-core
Package and debs now fully validate. I added a README into the patch to explain what's going on. This can easily be augmented for future releases. I used the new version to install the messagebus user so that I could finally update by dbus installation and I'm not seeing any problems.
update to new patch and better descriptions
new patch with README file
This fixes a pretty bad bug where users with a hyphen were badly parsed. Thanks to monipol for the fix.
hyphen parse fix
hyphen parse fix
For migration purposes, the package as is probably will not work since most of the files between old passwd and new passwd-core are kept in the same location/named the same. An easy alternative would be to move/rename the files. Suggestions for new names/locations are welcome.
So, what are the remaining major hold ups for this? Besides the upgrade path issue that was mentioned in the previous comment (and which are easily mitigated by renaming files).
BTW, nagios and amqp users / groups were added to passwd a few days ago, and they would have to be added here, too.
adds nagios/amqp
adds nagios/amqp
Updated the info/patch to add nagios/amqp from unstable.
There should probably be some sanity checks in the update-passwd script. I copied this from current passwd and modified it to grep the list for the current user being installed. It works fine for the current set of users, but it already bit me once when a user had a hypen in it. That's been fixed, but the script still expects well formed input. There's little check for malformed input (say a corrupt user or group list file), but it's not like current passwd acts any better.
Woot! Now in 10.7, so closing this. Thanks drm.