pkg-static: Insufficient privileges to add packages

Baptiste Daroussin bapt at FreeBSD.org
Tue Apr 21 16:34:59 UTC 2015


On Tue, Apr 21, 2015 at 11:44:01PM +0800, Ben Woods wrote:
> >> On Tue, Apr 21, 2015 at 4:02 AM Dan Langille <dan at langille.org> wrote:
> >>>
> >>> I am running a testport on www/py-django-tastypie
> >>>
> >>> My goal it to add an option for using www/django16 as well as www/django
> >>> (1.7).
> >>>
> >>> The error I get is:
> >>>
> >>> $ sudo poudriere testport -v -j 101amd64 -p testing -z testing -i -o
> >>> www/py-django-tastypie
> >>> ...
> >>> ===>    Verifying install for py27-django>=1.5 in
> >>> /usr/ports/www/py-django16
> >>> ===>   Installing existing package /packages/All/py27-django16-1.6.11.txz
> >>> pkg-static: Insufficient privileges to add packages
> >>>
> >>> But because I'm running testport interactively, I see I can install the
> >>> port it mentions:
> >>>
> >>> root at 101amd64-testing-testing:~ # pkg install
> >>> /packages/All/py27-django16-1.6.11.txz
> >>> Updating local repository catalogue...
> >>> [101amd64-testing-testing] Fetching meta.txz: 100%    816 B   0.8kB/s
> >>> 00:01
> >>> [101amd64-testing-testing] Fetching packagesite.txz: 100%   50 KiB
> >>> 51.4kB/s    00:01
> >>> Processing entries: 100%
> >>> local repository update completed. 205 packages processed.
> >>> Updating database digests format: 100%
> >>> Checking integrity... done (0 conflicting)
> >>> The following 1 package(s) will be affected (of 0 checked):
> >>>
> >>> New packages to be INSTALLED:
> >>>         py27-django16: 1.6.11
> >>>
> >>> The process will require 27 MiB more space.
> >>>
> >>> Proceed with this action? [y/N]: y
> >>> [101amd64-testing-testing] [1/1] Installing py27-django16-1.6.11...
> >>> [101amd64-testing-testing] [1/1] Extracting py27-django16-1.6.11: 100%
> >>> root at 101amd64-testing-testing:~ #
> >>>
> >>>
> >>> Why does the testport fail?
> >>>
> >>> Full build log here:
> >>> http://services.unixathome.org/poudriere/data/101amd64-testing-testing/2015-04-20_19h53m23s/logs/errors/py27-django-tastypie-0.12.1.log
> >>
> >>
> >> That error is generated in the pkg exec_add function in src/add.c here:
> >> https://github.com/freebsd/pkg/blob/master/src/add.c
> >>
> >> It occurs because it checks the package database for read, write, create
> >> access using the pkgdb_access and pkgdb_check_access functions in
> >> libpkg/pkgdb.c here:
> >> https://github.com/freebsd/pkg/blob/master/libpkg/pkgdb.c
> >>
> >> I believe this is inside the jail created by poudriere testport. It would
> >> be interesting to add the -i interactive flag to the testport run and check
> >> the permissions on/in the pkg database. Mine are here for reference:
> >> % ls -lah /var/db/pkg/
> >> total 37484
> >> drwxr-xr-x   2 root  wheel     8B 21 Apr 06:00 .
> >> drwxr-xr-x  13 root  wheel    19B 21 Apr 06:13 ..
> >> -rw-r--r--   1 root  wheel   246B  4 Dec 06:22 FreeBSD.meta
> >> -rw-r--r--   1 root  wheel    11M 21 Apr 06:00 local.sqlite
> >> -rw-r--r--   1 root  wheel   246B 21 Apr 03:05 poudriere.meta
> >> -rw-r--r--   1 root  wheel    49M  4 Dec 06:22 repo-FreeBSD.sqlite
> >> -rw-r--r--   1 root  wheel   1.6M 21 Apr 03:05 repo-poudriere.sqlite
> >> -r--r--r--   1 root  wheel   3.3M 21 Apr 03:17 vuln.xml
> >>
> >> Regards,
> >> Ben
> >>
> >>
> >>
> >>
> >> Hand on a minute.... now my poudriere system is doing the same thing -
> >> looks like we have a bug somewhere.
> >>
> >> I am running pkg 1.5.1 and poudriere 3.1.4. According to freshports, pkg
> >> was updated on 16th April, and poudriere on 10th April.
> >>
> >> Inside my poudriere testport jail (using the -i interactive mode flag), I
> >> have:
> >> # ls -lah /var/db/pkg/
> >> total 7953
> >> drwxr-xr-x   2 root  wheel     3B Apr 20 23:17 .
> >> drwxr-xr-x  12 root  wheel    14B Apr 20 23:17 ..
> >> -rw-r--r--   1 root  wheel   7.7M Apr 20 23:17 local.sqlite
> >>
> >> Thoughts?
> >
> > Here's what I have:
> >
> > Edit /etc/motd to change this login announcement.
> > root at 101amd64-testing-testing:~ # ls -lah /var/db/pkg/
> > total 2991
> > drwxr-xr-x   2 root  wheel     3B Apr 21 13:28 .
> > drwxr-xr-x  10 root  wheel    12B Mar 14 19:18 ..
> > -rw-r--r--   1 root  wheel   2.8M Apr 21 13:28 local.sqlite
> > root at 101amd64-testing-testing:~ #
> >
> > —
> > Dan Langille
> > http://langille.org/
> 
> For the record, downgrading pkg to 1.4.12 and poudriere to 3.1.2 did
> not fix this issue for me.
> 
> The port that I am trying to testport on FreeBSD 10.1 is
> math/plplot-ada. The testport permission issues do not occur with the
> port as it is currently - only after making the changes I have
> proposed to math/plplot here:
> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=155771&action=diff

I found the reason for Dan by checking the logs,  If I could see your own logs
then I will tell you where you mistake is.

actually you are having poudriere building as a user (internally to the jail)
which is a very good thing as it allows to catch things like this :D)

I mean it is dropping roots priviledges to build, stage and make package.

but still try to install a dependency there, probably because the dependency
line you have in your port is buggy. In dan case he was testing if
py27-django>=1.5 but was refering to the www/py-django16 port which result in a
package named py27-django16 which is not py27-django aka the test will always
fail and the ports tree will try to reinstall again and again even in phases
when it cannot due to lack of priviledges

As a conclusion the bug is in the port you are testing not in pkg, neither in
poudriere.

If you show me the logs of your own build I will tell you what is your mistake.

Best regards,
Bapt
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 181 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-ports/attachments/20150421/8e9e1dd7/attachment.sig>


More information about the freebsd-ports mailing list