pkg-static: Insufficient privileges to add packages
Dan Langille
dan at langille.org
Tue Apr 21 16:52:15 UTC 2015
> On Apr 21, 2015, at 12:34 PM, Baptiste Daroussin <bapt at FreeBSD.org> wrote:
>
> 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.
This change fixed it for me:
before:
DJANGO16_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django>=1.5:${PORTSDIR}/www/py-django16
DJANGO17_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django>=1.5:${PORTSDIR}/www/py-django
After:
DJANGO16_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django16>0:${PORTSDIR}/www/py-django16
DJANGO17_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django17>0:${PORTSDIR}/www/py-django
—
Dan Langille
http://langille.org/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 971 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.freebsd.org/pipermail/freebsd-ports/attachments/20150421/7678fa9f/attachment.sig>
More information about the freebsd-ports
mailing list