Subject: Re: [PATCH] pkginstall framework modifications
To: Todd Vierling <tv@duh.org>
From: Johnny Lam <jlam@pkgsrc.org>
List: tech-pkg
Date: 04/21/2006 15:51:41
Todd Vierling wrote:
>
> BTW, I've been meaning to ask... I do want to convert the Interix user
> support to the new framework, and doing that should be possible. Where
> should I look first to get started on this?
The bits related to users and groups that may be platform-specific are
supposed to be placed in pkgsrc/mk/install/usergroupfuncs.${OPSYS}, so
in your case, you would create usergroupfuncs.Interix. After my
pkginstall patch is committed, there will be four shell functions you
will need to define: group_exists, user_exists, addgroup and adduser.
Those functions are expected to call the correct locally-available
utilities to perform the necessary queries or tasks.
> As an aside, Interix has one very odd quirk regarding users/groups that I
> have to find a solution for "someday". In short, you can't have a user and
> group with the same name -- but you *can* have a user or a group own a file
> and provide access control.
>
> For the most part, this can be emulated by creating only the userid (as the
> purpose of foo:foo ownership is usually to partition it to a single user
> with its own single-user group). That assumption doesn't always hold,
> however, and sometimes you really want a group rather than a user, or
> perhaps have a group with a differing name after all. I have to figure out
> how best to mark the latter situation, which may involve putting
> Interix-specific PKG_USERS overrides in some places, or introducing new,
> divergent group names in those cases. Hrmpf.
One idea that might work for Interix is to have some common suffix that
is added to each user or group name. Then pkginstall could append this
to the names of all users and groups listed in PKG_USERS and PKG_GROUPS.
For example, the postfix Makefile might have:
PKG_GROUP= postfix
PKG_USERS= postfix:postfix
On Interix, we put PKG_USER_SUFFIX=_user and PKG_GROUP_SUFFIX=_group in
mk/platform/Interix.mk, and the names of the postfix user and group
would automatically become "postfix_user" and "postfix_group" when the
names are recorded in the +INSTALL script. I think this would minimize
the need for additional special-handling for Interix.
Cheers,
-- Johnny Lam <jlam@pkgsrc.org>