Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 19 Oct 2010 17:46:42 -0700
From:      Jason Helfman <jhelfman@experts-exchange.com>
To:        freebsd-ports@freebsd.org
Cc:        ports@freebsd.org
Subject:   issue with pkg_add
Message-ID:  <20101019174642.665f9ad3@eggman>

next in thread | raw e-mail | index | archive | help

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

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?

Thanks,
Jason



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20101019174642.665f9ad3>