poudriere ignores stored options after r429298

Jan Beich jbeich at freebsd.org
Sun Dec 25 06:08:04 UTC 2016


René Ladan <rene at freebsd.org> writes:

> On 24-12-2016 10:09, Stefan Ehmann wrote:
>
>> After today's ports update, poudriere ignores all options that were
>> previously stored.
>> 
>> Everything works as before after reverting r429298 "Make the ports
>> infrastructure accept at least 3 level ports"
>> 
>> Previously, poudriere stored its options for python27 in
>> /usr/local/etc/poudriere.d/options/lang_python27
>> 
>> Now options are stored in
>> /usr/local/etc/poudriere.d/options/_usr_ports_lang_python27
>
> Hmm, it should still store options in the old directory, or did we
> overlook something?

Hmm, I don't like risky infra changes landing just before a new quaterly.
Can you back it out on 2017Q1?

>
> From
> https://reviews.freebsd.org/file/data/aq3dh3bgietiaksqg764/PHID-FILE-abonf7wbxelwjoqv2aiq/D8889.diff
> :
>
> Old:
> -_PORTDIRNAME=	${.CURDIR:T}
> -PORTDIRNAME?=	${_PORTDIRNAME}
> -PKGORIGIN?=	${PKGCATEGORY}/${PORTDIRNAME}
> -OPTIONS_NAME?=	${PKGORIGIN:S/\//_/}
>  OPTIONS_FILE?=	${PORT_DBDIR}/${OPTIONS_NAME}/options
>
> New:
> +PKGORIGIN?=	${.CURDIR:C/${PORTSDIR}\///}

Assuming .CURDIR is under PORTSDIR or using absolute pathname violates POLA.
For one, I'm working with multiple forks of the ports tree without adjusting
PORTSDIR value as Mk/* bits are same or compatible. While such a workflow
isn't recommended it guarantees the same options apply to every tree.

> +OPTIONS_NAME?=	${PKGORIGIN:S/\//_/g}
>  OPTIONS_FILE?=	${PORT_DBDIR}/${OPTIONS_NAME}/options


>> root at e17:/usr/local/etc/poudriere.d/options/lang_python27 # ls -l
>> total 5
>> -rw-r--r--  1 root  wheel  406 24 dec. 15:32 options
>
> What do 'make -V PKGORIGIN' and 'make -V OPTIONS_NAME' tell?

Perhaps, poudriere invoked |make config| outside of jail where PORTSDIR
has a different value.


More information about the freebsd-ports mailing list