Subject: mk/install/usergroup and FreeBSD and DragonFly
To: None <>
From: Jeremy C. Reed <>
List: tech-pkg
Date: 09/07/2005 05:15:10
mk/install/usergroup does:

                     elif ${TEST} -n "${USERADD}" -a -x "${USERADD}"; then
                             ${ECHO} "Creating user: $user";
                             case $userid in
                             "")     ${USERADD} -c "$descr" -d "$home" \
                                             -s "$shell" -g $group $user
                             *)      ${USERADD} -c "$descr" -d "$home" \
                                             -s "$shell" -g $group \
                                             -u $userid $user

The syntax for adding a user on FreeBSD and DragonFly is:

pw user add cyrus -c "cyrus-sasl cyrus user" -d /nonexistent -s /bin/sh -g mail

Notice how the username becomes before the options.

Any ideas on how we can make this mk/install/usergroup more portable. This 
is needed as DragonFly uses pkgsrc. (They are considering our nice 
user(8) but that is another discussion.)


- force DragonFly to install sysutils/user

- new sysutils/user_dragonfly package providing wrapper scripts (similar
   to user_interix and user_darwin)

- accept command with arguments (like "pw user add") as USERADD (and
   GROUPADD) -- so don't do test -x ${USERADD}

- add new variables like USERADD_ARGUMENTS and GROUPADD_ARGUMENTS; for

- provide code snippets to use like mk/platform/DragonFly.usergroup if
   available, so the ordering of username will be done before other

- get DragonFly and FreeBSD to fix their pw to accept the username at end
   of arguments too.

  Jeremy C. Reed

  	  	 	 BSD News, BSD tutorials, BSD links