issue with pkg_add

Florent Thoumie flz at xbsd.org
Wed Oct 20 08:45:18 UTC 2010


On Wed, Oct 20, 2010 at 1:46 AM, Jason Helfman
<jhelfman at experts-exchange.com> wrote:
>
> Hi,
>
> I believe I may have come across a potential bug in pkg_add, but wanted
> to write my findings out to see if anyone has seen this issue, or knows
> of something I may be doing wrong.
>
> I wrote a port that uses USERS/GROUPS functionality of ports.
>
> USERS=          user
> GROUPS=         user_work
> BINOWN=         user
> BINGRP=         user_work
> BINMODE=        4110
>
> These are the exec lines in my +CONTENTS file (assume one line for
> each exec, they were wrapped):
> @exec if ! /usr/sbin/pw groupshow user_work >/dev/null 2>&1;
> then /usr/sbin/pw groupadd user_work -g 999; fi
> @exec if ! /usr/sbin/pw usershow user >/dev/null 2>&1;
> then /usr/sbin/pw useradd user -u 999 -g 999  -c "user" -d /home/user
> -s /usr/sbin/nologin; fi
>
> I found that on my desktop with a ports tree installed that this port
> and package installed with no issue, however I found that if I tried to
> install the package in a jail with no ports tree and nothing installed
> that it failed with this error:
>
> pw: group `999' does not exist
> pkg_add: command 'if ! /usr/sbin/pw usershow user >/dev/null 2>&1; then /usr/sbin/pw useradd user -u 999 -g 999  -c "user" -d /home/user -s /usr/sbin/nologin; fi' failed

You may want to run pkg_add -v and see if the group is created
properly by the preceding @exec line and if not, why.

> I removed all remnants of the installation (these packages were all
> successful builds in Tinderbox), including installed users/groups. I
> copied my UIDs and GIDs files to an empty /usr/ports directory. So the
> only files under /usr/ports were UIDs and GIDs.
>
> With these files in place, I reran the pkg_add command on the port
> package I created and it installed the user and group with no issue,
> with correct permissions and modes on the files.
>
> With this testing, it appears that pkg_add is looking
> at /usr/ports/UIDs and /usr/ports/GIDs for information on installing a
> port package, even-though all of the information required for an
> installation appears to be in my port package.
>
> Has anyone run into this issue? Any assumptions I am making? Any flawed
> logic in testing?

I haven't tried to install packages in a jail lately but having
written the USERS/GROUPS logic in bsd.port.mk, the package shouldn't
need a ports tree to be installed properly.

-- 
Florent Thoumie
flz at FreeBSD.org
FreeBSD Committer


More information about the freebsd-ports mailing list