pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/lang/python27 Add an option for Python: x11



details:   https://anonhg.NetBSD.org/pkgsrc/rev/99ecc358e165
branches:  trunk
changeset: 350382:99ecc358e165
user:      kamil <kamil%pkgsrc.org@localhost>
date:      Tue Jul 26 16:44:28 2016 +0000

description:
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:

 lang/python27/Makefile         |  13 +++----------
 lang/python27/distinfo         |   4 ++--
 lang/python27/options.mk       |  28 ++++++++++++++++++++++++++++
 lang/python27/patches/patch-am |  15 ++-------------
 4 files changed, 35 insertions(+), 25 deletions(-)

diffs (114 lines):

diff -r a082f572e7bb -r 99ecc358e165 lang/python27/Makefile
--- a/lang/python27/Makefile    Tue Jul 26 16:00:56 2016 +0000
+++ b/lang/python27/Makefile    Tue Jul 26 16:44:28 2016 +0000
@@ -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_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 -r a082f572e7bb -r 99ecc358e165 lang/python27/distinfo
--- a/lang/python27/distinfo    Tue Jul 26 16:00:56 2016 +0000
+++ b/lang/python27/distinfo    Tue Jul 26 16:44:28 2016 +0000
@@ -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-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 -r a082f572e7bb -r 99ecc358e165 lang/python27/options.mk
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/lang/python27/options.mk  Tue Jul 26 16:44:28 2016 +0000
@@ -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 -r a082f572e7bb -r 99ecc358e165 lang/python27/patches/patch-am
--- a/lang/python27/patches/patch-am    Tue Jul 26 16:00:56 2016 +0000
+++ b/lang/python27/patches/patch-am    Tue Jul 26 16:44:28 2016 +0000
@@ -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 @@
 
 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 @@
              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



Home | Main Index | Thread Index | Old Index