Make loosing a variable (emulators/virtualbox-ose-additions)

Melvyn Sopacua melvyn at magemana.nl
Sun May 4 20:32:27 UTC 2014


Hi Bernhard,

On Sun, 4 May 2014, Bernhard Fröhlich wrote:

> Am 04.05.2014 20:44 schrieb "Melvyn Sopacua" <melvyn at magemana.nl>:
>>
>> Hi,
>>
>> emulators/virtualbox-ose-additions always fails for me in the stage
>> installation, so today I looked a bit further:
>>
>> Bad:
>> install  -o root -g wheel -m 444
>>
> /usr/obj/ports/usr/ports/emulators/virtualbox-ose-additions/work/VirtualBox-4.3.10/out/freebsd.amd64/release/bin/additions/vboxvideo_drv_.so
>>
> /usr/obj/ports/usr/ports/emulators/virtualbox-ose-additions/work/stage/usr/local/lib/xorg/modules/drivers/vboxvideo_drv.so
>>
>> Good:
>> install  -o root -g wheel -m 444
>>
> /usr/obj/ports/usr/ports/emulators/virtualbox-ose-additions/work/VirtualBox-4.3.10/out/freebsd.amd64/release/bin/additions/vboxvideo_drv_17.so
>>
> /usr/obj/ports/usr/ports/emulators/virtualbox-ose-additions/work/stage/usr/local/lib/xorg/modules/drivers/vboxvideo_drv.so
>>
>> The difference between bad and good are the 17 missing in the shared
>> object name. The bad line is created in a clean build and the good line
>> if one invokes the install target immediately after that failed one.
>>
>> Is make really loosing a variable here or could this be a parallelization
> issue in the upstream build system?
>
> That command is part of the port makefile so it's for sure not an upstream
> bug. Sounds like the xserver version that is used there is not read
> properly in some case.

I see and makes sense (Mk/bsd.xorg.mk):
.if exists(${LOCALBASE}/bin/X)
XSERVER_VER!=   ${LOCALBASE}/bin/X -version 2>&1 | sed -n 's;^X\.Org X
Server \([^ ]*\).*;\1;p'
.endif

${LOCALBASE}/bin/X won't exist when this is evaluated, unless you cut up
the build stages into a separate make depends followed by make install.

I believe setting a default that is in sync with x11-servers/xorg-server
in bsd.xorg.mk will fix all cases, since if it doesn't exist the
dependency installed will be provided by that port and if it does, you
got the one that was installed by the user.


More information about the freebsd-ports mailing list