summaryrefslogtreecommitdiff
path: root/lang
diff options
context:
space:
mode:
authorkamil <kamil@pkgsrc.org>2016-07-26 16:44:28 +0000
committerkamil <kamil@pkgsrc.org>2016-07-26 16:44:28 +0000
commit5d6d5d45f86348d9f62650b4910779c78416f98c (patch)
tree95c7eb99d971740ab9b538cf5c2d1ce42710e159 /lang
parent4e8d64b87a18663b334483842b496cdf0747c043 (diff)
downloadpkgsrc-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/Makefile13
-rw-r--r--lang/python27/distinfo4
-rw-r--r--lang/python27/options.mk28
-rw-r--r--lang/python27/patches/patch-am15
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