Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 13 Jan 2013 19:53:31 -0700 (MST)
From:      John Hein <jhein@symmetricom.com>
To:        FreeBSD-gnats-submit@freebsd.org
Cc:        mezz@freebsd.org
Subject:   ports/175276: [patch] devel/py-gobject OPTIONSFILE eval order problem
Message-ID:  <201301140253.r0E2rVv9076794@gromit.timing.com>
Resent-Message-ID: <201301140300.r0E300X8092303@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         175276
>Category:       ports
>Synopsis:       [patch] devel/py-gobject OPTIONSFILE eval order problem
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon Jan 14 03:00:00 UTC 2013
>Closed-Date:
>Last-Modified:
>Originator:     John Hein
>Release:        
>Organization:
>Environment:


>Description:

devel/py-gobject looks for options settings in one filename and then
generates an options file of a different name.

That is, su -c 'make config' will allow the user to create an options
file, but that file is not the one included by bsd.options.mk

There is a fundamental evaluation order issue with OPTIONSFILE and
UNIQUENAME when using knobs that affect UNIQUENAME such as
PKGNAMEPREFIX.  In this case, it causes bsd.options.mk to look for
gobject/options, but py<ver>-gobject/options to be generated (by
do-config in bsd.port.mk).

% cd devel/py-gobject
% make -V PORTNAME -dd | & grep /options; echo ===; make -V PORTNAME -V OPTIONSFILE
Searching for /var/db/ports/gobject/options...Looking for "/var/db/ports/gobject/options"...failed. Returning NULL
Searching for /var/db/ports/gobject/options.local...Looking for "/var/db/ports/gobject/options.local"...failed. Returning NULL
Searching for /var/db/ports/py27-gobject/options...Looking for "/var/db/ports/py27-gobject/options"...failed. Returning NULL
===
gobject
/var/db/ports/py27-gobject/options

This started happening with r309649 (OPTIONSng conversion) on 2012-12-29.

But even if that is solved (so PKGNAMEPREFIX is not ignored in the
first evaluation of OPTIONSFILE), I think we still want to override
the OPTIONSFILE value to remove the python version (e.g.,
py-gobject/options, not py27-gobject/options).  So we want to override
the default OPTIONSFILE here.  See attached patch which solves both
the eval order issue and the removal of <ver> in py<ver>-gobject.


>How-To-Repeat:

>Fix:

Index: Makefile
===================================================================
--- Makefile	(revision 310148)
+++ Makefile	(working copy)
@@ -35,6 +35,7 @@
 CONFLICTS=	py*-gtk-0*
 PLIST_SUB=	PYTHON_VER="${PYTHON_VER}"
 
+OPTIONSFILE=	${PORT_DBDIR}/py-${PORTNAME}/options
 OPTIONS_DEFINE=	LIBFFI
 LIBFFI_DESC=	Enable libffi support
 
>Release-Note:
>Audit-Trail:
>Unformatted:



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