From owner-freebsd-python@FreeBSD.ORG Sun Mar 17 03:35:27 2013 Return-Path: Delivered-To: freebsd-python@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 02DA07AD; Sun, 17 Mar 2013 03:35:27 +0000 (UTC) (envelope-from john@saltant.com) Received: from hapkido.dreamhost.com (hapkido.dreamhost.com [66.33.216.122]) by mx1.freebsd.org (Postfix) with ESMTP id 9777BF13; Sun, 17 Mar 2013 03:35:25 +0000 (UTC) Received: from homiemail-a27.g.dreamhost.com (caiajhbdccah.dreamhost.com [208.97.132.207]) by hapkido.dreamhost.com (Postfix) with ESMTP id 28666DC287; Sat, 16 Mar 2013 20:26:46 -0700 (PDT) Received: from homiemail-a27.g.dreamhost.com (localhost [127.0.0.1]) by homiemail-a27.g.dreamhost.com (Postfix) with ESMTP id CAB4359805F; Sat, 16 Mar 2013 20:26:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=saltant.com; h=message-id :date:from:mime-version:to:cc:subject:content-type; s= saltant.com; bh=V9giNgieyHHbPvBXz74F9GIAGak=; b=Xjf0GohnM7rXr9e4 lv/AQ5L1b8dy/RRlvFUnhEQGSuEeO/VJef1mCwRb5qAe6UL1thkwr40uo4p9ssYL +ynXFen1dnu88xyx63e7kM05nb8Qq/GKf90ZSO2NLdxRdpbAhnTeAtN6Ngx3JSQt PMsCyd42sdhuQRapKyEkhkqpsEQ= Received: from imago.y.saltant.net (y.saltant.net [96.227.187.16]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) (Authenticated sender: john@saltant.com) by homiemail-a27.g.dreamhost.com (Postfix) with ESMTPSA id 4EF45598058; Sat, 16 Mar 2013 20:26:40 -0700 (PDT) Message-ID: <514537EF.1040507@saltant.com> Date: Sat, 16 Mar 2013 23:26:39 -0400 From: "John W. O'Brien" Organization: Saltant Solutions User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130308 Thunderbird/17.0.4 MIME-Version: 1.0 To: bug-followup@FreeBSD.org, jhein@symmetricom.com Subject: Re: ports/175276: [patch] devel/py-gobject OPTIONSFILE eval order problem X-Enigmail-Version: 1.4.6 Content-Type: multipart/mixed; boundary="------------080709000504060405060108" Cc: freebsd-python@freebsd.org X-BeenThere: freebsd-python@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: FreeBSD-specific Python issues List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Mar 2013 03:35:27 -0000 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--