aboutsummaryrefslogtreecommitdiffstats
path: root/lang/python27
diff options
context:
space:
mode:
authorkoobs <koobs@FreeBSD.org>2015-10-18 17:50:39 +0800
committerkoobs <koobs@FreeBSD.org>2015-10-18 17:50:39 +0800
commit75a827efbef2a3bc30b5349642e5bf30a420c3ee (patch)
tree687b7837a2668d73d5e540a8658aefe1801b6ced /lang/python27
parent285579670a7e29f938fbb66d1f2907efd2a70e64 (diff)
downloadfreebsd-ports-gnome-75a827efbef2a3bc30b5349642e5bf30a420c3ee.tar.gz
freebsd-ports-gnome-75a827efbef2a3bc30b5349642e5bf30a420c3ee.tar.zst
freebsd-ports-gnome-75a827efbef2a3bc30b5349642e5bf30a420c3ee.zip
lang/python{27,32,33}: Fix missing shlib path in python-config
In Python 3.4+, upstream added and switched to using a shell implementation of the python-config script [1]. The Python implementation (python-config.py) remained used by all versions < 3.4. While the shell implementation returns the path to the Python shared library when using the --ldflags script argument, the Python implementation of the script does not. The bug has been reported, but has not yet been merged [2]. The Python ports currently default to including ${LOCALBASE}/lib in LIBS when the NLS option is enabled (which it is by default). When built *with* NLS (gettext) support, the flags added to LIBS are returned in `pythonX.Y-config --ldflags` output, which happens to match the path to the Python shared library. If the NLS option is disabled, ${LOCALBASE}/lib is not added to LIBS, and are therefore not returned in --ldflags output. This results in potential linking errors for software that uses python-config to obtain the correct library path, when the NLS option is disabled: $ make WITH=PYTHON -C audio/alsa-lib [...] --- smixer-python.la --- CCLD smixer-python.la /usr/bin/ld: cannot find -lpython2.7 This change modifies the python-config.in script to match the shell implementation, outputting the library path in --ldflags output. While I'm here: for Python 3.2 and Python 3.3 ports, backport a library order change [3]. This could affect linking with static libraries. Use standard length lines and reduce diffs in pkg-message [1] https://bugs.python.org/issue16235 [2] https://bugs.python.org/issue7352 [2] https://bugs.python.org/issue18096 PR: 197757 Submitted by: jbeich MFH: 2015Q4
Diffstat (limited to 'lang/python27')
-rw-r--r--lang/python27/Makefile1
-rw-r--r--lang/python27/files/patch-Misc_python-config.in21
-rw-r--r--lang/python27/pkg-message4
3 files changed, 24 insertions, 2 deletions
diff --git a/lang/python27/Makefile b/lang/python27/Makefile
index 9d7c8b461dc7..0fd71e7f2b91 100644
--- a/lang/python27/Makefile
+++ b/lang/python27/Makefile
@@ -2,6 +2,7 @@
PORTNAME= python27
PORTVERSION= 2.7.10
+PORTREVISION= 1
CATEGORIES= lang python ipv6
MASTER_SITES= PYTHON/ftp/python/${PORTVERSION}
DISTNAME= Python-${PORTVERSION}
diff --git a/lang/python27/files/patch-Misc_python-config.in b/lang/python27/files/patch-Misc_python-config.in
new file mode 100644
index 000000000000..3390fc6ded9b
--- /dev/null
+++ b/lang/python27/files/patch-Misc_python-config.in
@@ -0,0 +1,21 @@
+# pythonx.y-config --ldflags out of /usr and missing -L<install_lib_dir>
+# https://bugs.python.org/issue7352
+
+--- Misc/python-config.in.orig 2015-10-18 07:24:01 UTC
++++ Misc/python-config.in
+@@ -21,6 +21,7 @@ except getopt.error:
+ if not opts:
+ exit_with_usage()
+
++libdir = sysconfig.EXEC_PREFIX + '/lib'
+ pyver = sysconfig.get_config_var('VERSION')
+ getvar = sysconfig.get_config_var
+
+@@ -50,6 +51,7 @@ for opt in opt_flags:
+ # add the prefix/lib/pythonX.Y/config dir, but only if there is no
+ # shared library in prefix/lib/.
+ if opt == '--ldflags':
++ libs.insert(0, '-L' + libdir)
+ if not getvar('Py_ENABLE_SHARED'):
+ libs.insert(0, '-L' + getvar('LIBPL'))
+ if not getvar('PYTHONFRAMEWORK'):
diff --git a/lang/python27/pkg-message b/lang/python27/pkg-message
index 80afa60e7c7b..f913597375e3 100644
--- a/lang/python27/pkg-message
+++ b/lang/python27/pkg-message
@@ -1,4 +1,4 @@
-=====================================================================
+===========================================================================
Note that some standard Python modules are provided as separate ports
as they require additional dependencies. They are available as:
@@ -8,4 +8,4 @@ gdbm databases/py-gdbm
sqlite3 databases/py-sqlite3
tkinter x11-toolkits/py-tkinter
-=====================================================================
+===========================================================================