Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 16 Mar 2013 23:26:39 -0400
From:      "John W. O'Brien" <john@saltant.com>
To:        bug-followup@FreeBSD.org, jhein@symmetricom.com
Cc:        freebsd-python@freebsd.org
Subject:   Re: ports/175276: [patch] devel/py-gobject OPTIONSFILE eval order problem
Message-ID:  <514537EF.1040507@saltant.com>

next in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format.
--------------080709000504060405060108
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

When applied together, the two attached patches implement a very rough
example of the "B" option I described in my 2013-02-23 response to
ports/175276.

I have smoke tested this patch by building and installing from scratch
some representative ports that might be affected by it. For example:
math/py-pandas and many of its dependencies don't use OptionsNG;
devel/py-bison and devel/py-gobject use OptionsNG and are currently
broken as described in this PR; while graphics/py-blockdiag and
devel/py-mock use OptionsNG but implement one of the workarounds.

# pkg_delete -x py27- python27
# portmaster -Dg \
  math/py-pandas \
  devel/py-bison \
  devel/py-gobject \
  graphics/py-blockdiag \
  devel/py-mock

Everything builds, installs, and packages without apparent error.

This shows that approach "B" is viable, though these patches would
need work to improve the quality to a sufficient level. I suspect that
approach "B" will not gain much traction, though, given that the
maintainers of so many of the affected ports (74%) have elected to use
the following workaround, or a variation of it, omitting ${PYTHON_SUFFIX}.

OPTIONSFILE=      ${PORT_DBDIR}/py-${PORTNAME}/options

Nevertheless, I welcome slings, arrows, and outrageous suggestions.

PS: gnome@, please decide: commit the original patch to fix
devel/py-gobject via OPTIONSFILE, close this PR, and I will file a new
PR for the larger scope issue; or consider assigning this to python@
for resolution and closure.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)

iQEcBAEBAgAGBQJRRTfvAAoJEBRzAKlhyP/FYCsIAIkzfSnuvHAOfxdwCxjgimOq
vYgsTPE65UNjjsXIWOUMC9Tpg684lFfxwJ4brxvmtpKWnSCKHwSEHOD9cXPaNAwj
yufLuGMB4FYZLahJpxqKek+g1cI6g01E3OXvM2c0VT9rfiJplrE58DlBHSkNwqH/
X0lg8e/U5Ikrma7HtoZxy94SM+CgRhUU5leQzP2jjI8GUP2XWuBhAzbdLYCd7obE
mU4Y1M8hk4jZfxWwWD5TK1GLE9Zu2gweLfnbEEML9fPGNPp5sY0wF8Jx/cBjXzPC
RyjvzgirOdNykaVdqg/hWU/j7MjBHDc8wANfsUzn89hZSssU4PNJf/HMRgfiUCU=
=3B7a
-----END PGP SIGNATURE-----

--------------080709000504060405060108
Content-Type: text/plain; charset=UTF-8;
 name="patch-usr__ports__Mk__bsd.port.mk.txt"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
 filename="patch-usr__ports__Mk__bsd.port.mk.txt"

Index: Mk/bsd.port.mk
===================================================================
--- Mk/bsd.port.mk	(revision 314388)
+++ Mk/bsd.port.mk	(working copy)
@@ -1308,6 +1308,11 @@
 STRIP=	#none
 .endif
 
+# Latest possible point to correctly influence location of OPTIONSFILE
+INEARLYMK=
+.include "${PORTSDIR}/Mk/bsd.python.mk"
+.undef INEARLYMK
+
 .include "${PORTSDIR}/Mk/bsd.options.mk"
 
 # Start of pre-makefile section.

--------------080709000504060405060108
Content-Type: text/plain; charset=UTF-8;
 name="patch-usr__ports__Mk__bsd.python.mk.txt"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
 filename="patch-usr__ports__Mk__bsd.python.mk.txt"

Index: Mk/bsd.python.mk
===================================================================
--- Mk/bsd.python.mk	(revision 314388)
+++ Mk/bsd.python.mk	(working copy)
@@ -4,10 +4,9 @@
 # $FreeBSD$
 #
 
-.if !defined(_POSTMKINCLUDED) && !defined(Python_Pre_Include)
+.if defined(INEARLYMK) && !defined(Python_Early_Include)
 
-Python_Pre_Include=		bsd.python.mk
-Python_Include_MAINTAINER=	python@FreeBSD.org
+Python_Early_Include=
 
 # This file contains some variable definitions that are supposed to
 # make your life easier when dealing with ports related to the Python
@@ -458,6 +457,14 @@
 PYTHONPREFIX_LIBDIR=		${PYTHON_LIBDIR:S;${PYTHONBASE};${PREFIX};}
 PYTHONPREFIX_SITELIBDIR=	${PYTHON_SITELIBDIR:S;${PYTHONBASE};${PREFIX};}
 
+.endif # Python_Early_Include
+
+
+.if !defined(_POSTMKINCLUDED) && !defined(Python_Pre_Include) && !defined(INEARLYMK)
+
+Python_Pre_Include=		bsd.python.mk
+Python_Include_MAINTAINER=	python@FreeBSD.org
+
 # setuptools support
 .if defined(USE_PYDISTUTILS) && ${USE_PYDISTUTILS} == "easy_install"
 BUILD_DEPENDS+=		${PYEASYINSTALL_CMD}:${PORTSDIR}/devel/py-distribute

--------------080709000504060405060108
Content-Type: application/octet-stream;
 name="patch-usr__ports__Mk__bsd.port.mk.txt.sig"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="patch-usr__ports__Mk__bsd.port.mk.txt.sig"

iQEcBAABAgAGBQJRRTfvAAoJEBRzAKlhyP/FU08IAMCsM10/Jk5ffZnEMsduEKvxhQDmF9pd
mXrLzdToc3Gm6+NtKPkmrAqv5hY6zOl56Hs7TnIxSWqs65jG2RqjIabZaU3J931bx14EOQr0
O0P1fy2CKm65ODFcrt5T0QhfdKnnmNSNqzHEoI3vi8DIJDI/Z22GBJb6HAjQwlNNoHfI7wPI
c5KLzINi+Nh6lfLJ/xL2RzHJHLalPjtI9EDF70QDn0Y4tmT2hpkmEzxz0jUPWZNqa+dV1TYn
hgYq6ILnkKqYrf5XtIQkcVJ5N/IdrPYd5wK5tgCmLWSrvzotFh72l2WEXI1VXR97qpzI+Dy8
i/cZd5N1PqKGLN7rxcaQzqs=
--------------080709000504060405060108
Content-Type: application/octet-stream;
 name="patch-usr__ports__Mk__bsd.python.mk.txt.sig"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="patch-usr__ports__Mk__bsd.python.mk.txt.sig"

iQEcBAABAgAGBQJRRTfvAAoJEBRzAKlhyP/Fk7MIAIj+m5/5VTHQnqcxAHBNFPL9R7BNcfvG
XDp/bNb9AdxCtIWvzuvy02GJji0GvyZMeUYXRcxnR17j9LEUfW35rTi1nyH0s3mL8S3SL5YB
oV1FY1rcD7j9fXJMkoVSX7hR7/7L/XOOhDUMo6Ya0PKDUv6dkRjdTkWttxQ5Ihu5cWWomjHn
gV5rABZy1Kz4sUAtUH7kplHtZI5XIUX/Oeq3AmgvgLWc2xdvLVWtzJf6n+H5VYoS+3dYlUxf
uXd1V3Bq4TuAjFY2XBo35uOaaVPCaWUhh3Ci4U1DhJRYnemR0+jUgD+ulQiqOFFKmhHhCOdb
dqhlrdt6+Q0A5KyKlJmVH8s=
--------------080709000504060405060108--



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