diff options
author | kamil <kamil@pkgsrc.org> | 2016-07-26 16:44:28 +0000 |
---|---|---|
committer | kamil <kamil@pkgsrc.org> | 2016-07-26 16:44:28 +0000 |
commit | 5d6d5d45f86348d9f62650b4910779c78416f98c (patch) | |
tree | 95c7eb99d971740ab9b538cf5c2d1ce42710e159 /lang | |
parent | 4e8d64b87a18663b334483842b496cdf0747c043 (diff) | |
download | pkgsrc-5d6d5d45f86348d9f62650b4910779c78416f98c.tar.gz |
Add an option for Python: x11
Fix build on systems with disabled X11
Reported by <schmonz>, Andreas Kusalananda Kahari
Tested by Andreas Kusalananda Kahari
Possible direction is to make this switch by default disabled on Darwin.
Diffstat (limited to 'lang')
-rw-r--r-- | lang/python27/Makefile | 13 | ||||
-rw-r--r-- | lang/python27/distinfo | 4 | ||||
-rw-r--r-- | lang/python27/options.mk | 28 | ||||
-rw-r--r-- | lang/python27/patches/patch-am | 15 |
4 files changed, 35 insertions, 25 deletions
diff --git a/lang/python27/Makefile b/lang/python27/Makefile index b5311b7f19c..29277115cd6 100644 --- a/lang/python27/Makefile +++ b/lang/python27/Makefile @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.65 2016/07/23 21:12:48 kamil Exp $ +# $NetBSD: Makefile,v 1.66 2016/07/26 16:44:28 kamil Exp $ .include "dist.mk" @@ -178,16 +178,9 @@ SUBST_CLASSES+= pfindlib SUBST_MESSAGE.pfindlib= Fixing find_library() on POSIX-like (excluding Darwin) systems. SUBST_STAGE.pfindlib= pre-configure SUBST_FILES.pfindlib= Lib/ctypes/util.py -SUBST_SED.pfindlib= -e 's!\(-Wl,-t -o\)!${COMPILER_RPATH_FLAG}${X11BASE}/lib -L${X11BASE}/lib ${COMPILER_RPATH_FLAG}${PREFIX}/lib -L${PREFIX}/lib \1!' +SUBST_SED.pfindlib= -e 's!\(-Wl,-t -o\)!${COMPILER_RPATH_FLAG}${PREFIX}/lib -L${PREFIX}/lib \1!' -SUBST_CLASSES+= cdlopen -SUBST_MESSAGE.cdlopen= Handle X11BASE paths in dlopen(3) calls of _ctypes.so -SUBST_STAGE.cdlopen= pre-configure -SUBST_FILES.cdlopen= setup.py -SUBST_VARS.cdlopen= X11BASE - -# Required to detect X11BASE paths in dlopen(3) calls of _ctypes.so -USE_X11= yes +.include "options.mk" SUBST_CLASSES+= sslbase SUBST_MESSAGE.sslbase= Fixing find-file for openssl with SSLBASE. diff --git a/lang/python27/distinfo b/lang/python27/distinfo index 50c01947949..822f9efb2a2 100644 --- a/lang/python27/distinfo +++ b/lang/python27/distinfo @@ -1,4 +1,4 @@ -$NetBSD: distinfo,v 1.57 2016/07/23 18:28:26 kamil Exp $ +$NetBSD: distinfo,v 1.58 2016/07/26 16:44:28 kamil Exp $ SHA1 (Python-2.7.12.tar.xz) = 05360b8ade117b35e266b2004a7f1f11250c6dcd RMD160 (Python-2.7.12.tar.xz) = c330f6ac08ed67f307de0e726a288bab16c832d5 @@ -20,7 +20,7 @@ SHA1 (patch-ad) = 96ae702995d434e2d7ec0ac62e37427a90b61d13 SHA1 (patch-ae) = d836d77854a2b3d79fa34a06a8e2493bf0a503e6 SHA1 (patch-ah) = 90b19239d8a7c8abc3bbc05d49408a2c5da6174d SHA1 (patch-al) = 541936b79f281db06761f4fa6a65a04e852b02b4 -SHA1 (patch-am) = 5e763a0fe26be562cf5e49e6313a9f18d9ee9908 +SHA1 (patch-am) = cf82bd1996aea8a8536bd37a74563bb85817c968 SHA1 (patch-an) = 9aad78714c4fe1a21cf66a6627d97d164ecea196 SHA1 (patch-ao) = 5bcfad96f8e490351160f1a7c1f4ece7706a33fa SHA1 (patch-au) = 0ecdb937cbd58e3dbfa6fb94d1af5838619c77fd diff --git a/lang/python27/options.mk b/lang/python27/options.mk new file mode 100644 index 00000000000..f46390d3f3a --- /dev/null +++ b/lang/python27/options.mk @@ -0,0 +1,28 @@ +# $NetBSD: options.mk,v 1.1 2016/07/26 16:44:28 kamil Exp $ + +PKG_OPTIONS_VAR= PKG_OPTIONS.python27 +PKG_SUPPORTED_OPTIONS+= x11 +PKG_SUGGESTED_OPTIONS= x11 + +.include "../../mk/bsd.prefs.mk" +.include "../../mk/bsd.options.mk" + +.if !empty(PKG_OPTIONS:Mx11) +# Support for native X11 paths as an option +# This code is no-op for modular X11, however for simplicity don't make it conditional. +SUBST_CLASSES+= x11findlib +SUBST_MESSAGE.x11findlib= Fixing find_library() for native X11. +SUBST_STAGE.x11findlib= pre-configure +SUBST_FILES.x11findlib= Lib/ctypes/util.py +SUBST_SED.x11findlib= -e 's!\(-Wl,-t -o\)!${COMPILER_RPATH_FLAG}${X11BASE}/lib -L${X11BASE}/lib \1!' + +# Required to get definition of X11BASE and retain X11 rpath paths for linker +# We need to pass rpath to _ctypes.so to get functional dlopen(3) for X11 libs +USE_X11= yes + +SUBST_CLASSES+= cdlopen +SUBST_MESSAGE.cdlopen= Handle X11BASE paths in dlopen(3) calls of _ctypes.so +SUBST_STAGE.cdlopen= pre-configure +SUBST_FILES.cdlopen= setup.py +SUBST_SED.cdlopen= -e "s!\(libraries=\[\],\)!\1 runtime_library_dirs=\['${X11BASE}/lib'\],!" +.endif diff --git a/lang/python27/patches/patch-am b/lang/python27/patches/patch-am index da3fd2b43d2..b309d8e817f 100644 --- a/lang/python27/patches/patch-am +++ b/lang/python27/patches/patch-am @@ -1,4 +1,4 @@ -$NetBSD: patch-am,v 1.20 2016/07/23 18:28:26 kamil Exp $ +$NetBSD: patch-am,v 1.21 2016/07/26 16:44:28 kamil Exp $ Disabled modules for normal build: bsddb @@ -23,9 +23,6 @@ Build the 1.85 compat module all the time against the BDB version of choice. cygwin 2.7.3-no-libm.patch -Set X11BASE rpath value for _ctypes.so, it's required as it calls dlopen(3) -and dynamic linker cannot find without it X11 libraries. - --- setup.py.orig 2016-06-25 21:49:32.000000000 +0000 +++ setup.py @@ -33,7 +33,7 @@ host_platform = get_platform() @@ -377,15 +374,7 @@ and dynamic linker cannot find without it X11 libraries. if dbmext is not None: exts.append(dbmext) else: -@@ -2113,6 +1946,7 @@ class PyBuildExt(build_ext): - extra_compile_args=extra_compile_args, - extra_link_args=extra_link_args, - libraries=[], -+ runtime_library_dirs=['@X11BASE@/lib'], - sources=sources, - depends=depends) - ext_test = Extension('_ctypes_test', -@@ -2250,9 +2084,9 @@ def main(): +@@ -2250,9 +2083,9 @@ def main(): ext_modules=[Extension('_struct', ['_struct.c'])], # Scripts to install |