Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 20 Oct 2010 10:17:07 -0700
From:      Jason Helfman <jhelfman@experts-exchange.com>
To:        Florent Thoumie <flz@xbsd.org>
Cc:        ports@freebsd.org
Subject:   Re: issue with pkg_add
Message-ID:  <20101020101707.76a1719c@eggman>
In-Reply-To: <AANLkTimNSvW3GX71GiGoAJW7%2BtNVeqZFpjQD0Ko5OQc4@mail.gmail.com>
References:  <20101019174642.665f9ad3@eggman> <AANLkTimNSvW3GX71GiGoAJW7%2BtNVeqZFpjQD0Ko5OQc4@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 20 Oct 2010 09:13:32 +0100
Florent Thoumie <flz@xbsd.org> wrote:

> On Wed, Oct 20, 2010 at 1:46 AM, Jason Helfman
> <jhelfman@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=3D =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0user
> > GROUPS=3D =C2=A0 =C2=A0 =C2=A0 =C2=A0 user_work
> > BINOWN=3D =C2=A0 =C2=A0 =C2=A0 =C2=A0 user
> > BINGRP=3D =C2=A0 =C2=A0 =C2=A0 =C2=A0 user_work
> > BINMODE=3D =C2=A0 =C2=A0 =C2=A0 =C2=A04110
> >
> > 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 =C2=A0-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 =C2=A0-c "user"
> > -d /home/user -s /usr/sbin/nologin; fi' failed
>=20
> 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 found that the group that was being added already existed under a
different gid.  The user was being added with a gid that didn't exist,
however the group name did.

After blowing away the jail and removing the group, pkg_add installed
the package with no issue.

>=20
> > 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.
> >

I re-tested this process after blowing away the jail and found that
pkg_add is not looking at these files.

> > Has anyone run into this issue? Any assumptions I am making? Any
> > flawed logic in testing?
>=20
> 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.
>=20
Thanks!
jgh



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