aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkoobs <koobs@FreeBSD.org>2013-09-08 22:05:18 +0800
committerkoobs <koobs@FreeBSD.org>2013-09-08 22:05:18 +0800
commit3835cd8c9b3bdc5ee612ea55989ddbabfe1fef61 (patch)
tree6d7fe992f675eda5ec64a27474e0fe9678c0334d
parente0446068231b513e183e383ab20bfa34e009f152 (diff)
downloadfreebsd-ports-gnome-3835cd8c9b3bdc5ee612ea55989ddbabfe1fef61.tar.gz
freebsd-ports-gnome-3835cd8c9b3bdc5ee612ea55989ddbabfe1fef61.tar.zst
freebsd-ports-gnome-3835cd8c9b3bdc5ee612ea55989ddbabfe1fef61.zip
Resolve gettext (libintl) detection and linking in all Python ports
Fix gettext (NLS) detection, includes and linking: - all: Use LDFLAGS and CPPFLAGS over CFLAGS for NLS option (with comment) - python26,27: Pass LIBS="-lintl" to CONFIGURE_ENV Workaround Pythons odd build mechanics causing duplicate args: - all: Remove CFLAGS from OPT= in CONFIGURE_ENV - python32,33: Remove CONFIGURE_* variables from Makefile.pre.in Other: - python32: Patch setup.py to pass OPT correctly to shared modules PR: ports/181721 Reported by: pawel Reviewed by: bapt mva sbz
-rw-r--r--lang/python26/Makefile13
-rw-r--r--lang/python27/Makefile15
-rw-r--r--lang/python31/Makefile12
-rw-r--r--lang/python32/Makefile12
-rw-r--r--lang/python32/files/patch-Makefile.pre.in29
-rw-r--r--lang/python32/files/patch-setup.py29
-rw-r--r--lang/python33/Makefile12
-rw-r--r--lang/python33/files/patch-Makefile.pre.in29
8 files changed, 112 insertions, 39 deletions
diff --git a/lang/python26/Makefile b/lang/python26/Makefile
index 24ff81cb93d2..0db58929d7ea 100644
--- a/lang/python26/Makefile
+++ b/lang/python26/Makefile
@@ -3,7 +3,7 @@
PORTNAME= python26
PORTVERSION= 2.6.8
-PORTREVISION= 6
+PORTREVISION= 7
CATEGORIES= lang python ipv6
MASTER_SITES= PYTHON
MASTER_SITE_SUBDIR= ${PYTHON_MASTER_SITE_SUBDIR}
@@ -63,9 +63,12 @@ NLS_DESC= Enable Gettext support for the locale module
.if ${PORT_OPTIONS:MNLS}
USES+= gettext
-# XXX do not set any LDFLAGS or CFLAGS - this causes pyexpat to fail building
-#LDFLAGS+= "-L${LOCALBASE}/lib"
-#CFLAGS+= "-I${LOCALBASE}/include"
+LDFLAGS+= -L${LOCALBASE}/lib
+# We use CPPFLAGS over CFLAGS here due to -I ordering causing things like
+# elementtree and pyexpat to break with python27, or to silence preprocessor
+# complaints with python33
+CPPFLAGS+= -I${LOCALBASE}/include
+CONFIGURE_ENV+= LIBS="-lintl"
.else
CONFIGURE_ENV+= ac_cv_lib_intl_textdomain=no ac_cv_header_libintl_h=no
.endif
@@ -144,7 +147,7 @@ CONFIGURE_ARGS+= --disable-ipv6
CONFIGURE_ARGS+= --with-fpectl
.endif
-CONFIGURE_ENV+= OPT="${CFLAGS} ${_PTH_CPPFLAGS}"
+CONFIGURE_ENV+= OPT="${_PTH_CPPFLAGS}"
pre-patch:
${CP} -r ${PATCH_WRKSRC}/Lib/plat-freebsd8 \
diff --git a/lang/python27/Makefile b/lang/python27/Makefile
index 1f1a9d07b5e3..f9b02ea4a6a4 100644
--- a/lang/python27/Makefile
+++ b/lang/python27/Makefile
@@ -3,7 +3,7 @@
PORTNAME= python27
PORTVERSION= 2.7.5
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= lang python ipv6
MASTER_SITES= PYTHON
MASTER_SITE_SUBDIR= ${PYTHON_MASTER_SITE_SUBDIR}
@@ -52,7 +52,7 @@ BINLINKS_SUB_PYTHON_VER= ${BINLINKS_SUB_TMPL:S/%%VERSION%%/${PYTHON_VER}/g}
OPTIONS_DEFINE= THREADS SEM PTH PYMALLOC IPV6 FPECTL EXAMPLES NLS
OPTIONS_DEFAULT= THREADS UCS4 PYMALLOC IPV6
-OPTIONS_SINGLE= UCS
+OPTIONS_SINGLE= UCS
OPTIONS_SINGLE_UCS= UCS2 UCS4
NLS_DESC= Enable Gettext support for the locale module
@@ -61,9 +61,12 @@ NLS_DESC= Enable Gettext support for the locale module
.if ${PORT_OPTIONS:MNLS}
USES+= gettext
-# XXX do not set any LDFLAGS or CFLAGS - this causes pyexpat to fail building
-#LDFLAGS+= "-L${LOCALBASE}/lib"
-#CFLAGS+= "-I${LOCALBASE}/include"
+LDFLAGS+= -L${LOCALBASE}/lib
+# We use CPPFLAGS over CFLAGS here due to -I ordering causing things like
+# elementtree and pyexpat to break with python27, or to silence preprocessor
+# complaints with python33
+CPPFLAGS+= -I${LOCALBASE}/include
+CONFIGURE_ENV+= LIBS="-lintl"
.else
CONFIGURE_ENV+= ac_cv_lib_intl_textdomain=no ac_cv_header_libintl_h=no
.endif
@@ -147,7 +150,7 @@ CONFIGURE_ARGS+= --disable-ipv6
CONFIGURE_ARGS+= --with-fpectl
.endif
-CONFIGURE_ENV+= OPT="${CFLAGS} ${_PTH_CPPFLAGS}"
+CONFIGURE_ENV+= OPT="${_PTH_CPPFLAGS}"
post-extract:
# The distribution tarball for python 2.7 has permission bits for 'others'
diff --git a/lang/python31/Makefile b/lang/python31/Makefile
index c6f47e13aaca..88dbec3fc95c 100644
--- a/lang/python31/Makefile
+++ b/lang/python31/Makefile
@@ -2,7 +2,7 @@
PORTNAME= python31
PORTVERSION= 3.1.5
-PORTREVISION= 3
+PORTREVISION= 4
CATEGORIES= lang python ipv6
MASTER_SITES= PYTHON
MASTER_SITE_SUBDIR= ${PYTHON_MASTER_SITE_SUBDIR}
@@ -19,7 +19,7 @@ WRKSRC= ${PYTHON_WRKSRC}/portbld.static
PATCH_WRKSRC= ${PYTHON_WRKSRC}
GNU_CONFIGURE= yes
CONFIGURE_SCRIPT= ../configure # must be relative
-CONFIGURE_ENV= OPT="${CFLAGS}" SVNVERSION="echo freebsd"
+CONFIGURE_ENV= OPT="" SVNVERSION="echo freebsd"
MAKE_ENV= VPATH="${PYTHON_WRKSRC}"
USE_LDCONFIG= yes
INSTALL_TARGET= altinstall
@@ -58,9 +58,11 @@ NLS_DESC= Enable Gettext support for the locale module
.if ${PORT_OPTIONS:MNLS}
USES+= gettext
-# XXX do not set any LDFLAGS or CFLAGS - this causes pyexpat to fail building
-#LDFLAGS+= "-L${LOCALBASE}/lib"
-#CFLAGS+= "-I${LOCALBASE}/include"
+LDFLAGS+= -L${LOCALBASE}/lib
+# We use CPPFLAGS over CFLAGS here due to -I ordering causing things like
+# elementtree and pyexpat to break with python27, or to silence preprocessor
+# complaints with python33
+CPPFLAGS+= -I${LOCALBASE}/include
.else
CONFIGURE_ENV+= ac_cv_lib_intl_textdomain=no ac_cv_header_libintl_h=no
.endif
diff --git a/lang/python32/Makefile b/lang/python32/Makefile
index 8f25c1f9af31..eb3453f0fb94 100644
--- a/lang/python32/Makefile
+++ b/lang/python32/Makefile
@@ -2,7 +2,7 @@
PORTNAME= python32
PORTVERSION= 3.2.5
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= lang python ipv6
MASTER_SITES= PYTHON
MASTER_SITE_SUBDIR= ${PYTHON_MASTER_SITE_SUBDIR}
@@ -16,7 +16,7 @@ WRKSRC= ${PYTHON_WRKSRC}/portbld.static
PATCH_WRKSRC= ${PYTHON_WRKSRC}
GNU_CONFIGURE= yes
CONFIGURE_SCRIPT= ../configure # must be relative
-CONFIGURE_ENV= OPT="${CFLAGS}" SVNVERSION="echo freebsd"
+CONFIGURE_ENV= OPT="" SVNVERSION="echo freebsd"
MAKE_ENV= VPATH="${PYTHON_WRKSRC}"
USE_LDCONFIG= yes
INSTALL_TARGET= altinstall
@@ -56,9 +56,11 @@ NLS_DESC= Enable Gettext support for the locale module
.if ${PORT_OPTIONS:MNLS}
USES+= gettext
-# XXX do not set any LDFLAGS or CFLAGS - this causes pyexpat to fail building
-#LDFLAGS+= "-L${LOCALBASE}/lib"
-#CFLAGS+= "-I${LOCALBASE}/include"
+LDFLAGS+= -L${LOCALBASE}/lib
+# We use CPPFLAGS over CFLAGS here due to -I ordering causing things like
+# elementtree and pyexpat to break with python27, or to silence preprocessor
+# complaints with python33
+CPPFLAGS+= -I${LOCALBASE}/include
.else
CONFIGURE_ENV+= ac_cv_lib_intl_textdomain=no ac_cv_header_libintl_h=no
.endif
diff --git a/lang/python32/files/patch-Makefile.pre.in b/lang/python32/files/patch-Makefile.pre.in
index 500fb5a736e8..997211fbf9a8 100644
--- a/lang/python32/files/patch-Makefile.pre.in
+++ b/lang/python32/files/patch-Makefile.pre.in
@@ -1,5 +1,30 @@
---- ./Makefile.pre.in.orig 2013-04-06 11:38:41.000000000 +0400
-+++ ./Makefile.pre.in 2013-04-08 17:48:45.000000000 +0400
+--- Makefile.pre.in.orig 2013-05-16 02:33:51.000000000 +1000
++++ Makefile.pre.in 2013-09-05 23:42:32.910025692 +1000
+@@ -70,18 +70,18 @@
+ OPT= @OPT@
+ BASECFLAGS= @BASECFLAGS@
+ BASECPPFLAGS= @BASECPPFLAGS@
+-CONFIGURE_CFLAGS= @CFLAGS@
+-CONFIGURE_CPPFLAGS= @CPPFLAGS@
+-CONFIGURE_LDFLAGS= @LDFLAGS@
++CFLAGS= @CFLAGS@
++CPPFLAGS= @CPPFLAGS@
++LDFLAGS= @LDFLAGS@
+ # Avoid assigning CFLAGS, LDFLAGS, etc. so users can use them on the
+ # command line to append to these values without stomping the pre-set
+ # values.
+-PY_CFLAGS= $(BASECFLAGS) $(OPT) $(CONFIGURE_CFLAGS) $(CFLAGS) $(EXTRA_CFLAGS)
++PY_CFLAGS= $(BASECFLAGS) $(OPT) $(CFLAGS) $(EXTRA_CFLAGS)
+ # Both CPPFLAGS and LDFLAGS need to contain the shell's value for setup.py to
+ # be able to build extension modules using the directories specified in the
+ # environment variables
+-PY_CPPFLAGS= $(BASECPPFLAGS) -I. -IInclude -I$(srcdir)/Include $(CONFIGURE_CPPFLAGS) $(CPPFLAGS)
+-PY_LDFLAGS= $(CONFIGURE_LDFLAGS) $(LDFLAGS)
++PY_CPPFLAGS= $(BASECPPFLAGS) -I. -IInclude -I$(srcdir)/Include $(CPPFLAGS)
++PY_LDFLAGS= $(LDFLAGS)
+ NO_AS_NEEDED= @NO_AS_NEEDED@
+ LDLAST= @LDLAST@
+ SGI_ABI= @SGI_ABI@
@@ -277,21 +277,21 @@
##########################################################################
diff --git a/lang/python32/files/patch-setup.py b/lang/python32/files/patch-setup.py
index e79da3d11fb6..b7d4cc8d586f 100644
--- a/lang/python32/files/patch-setup.py
+++ b/lang/python32/files/patch-setup.py
@@ -1,5 +1,5 @@
---- setup.py.orig 2011-02-26 04:56:47.906445474 +0800
-+++ setup.py 2011-02-26 04:56:49.969976034 +0800
+--- setup.py.orig 2013-05-16 02:33:58.000000000 +1000
++++ setup.py 2013-09-08 02:31:44.216199627 +1000
@@ -21,7 +21,7 @@
COMPILED_WITH_PYDEBUG = hasattr(sys, 'gettotalrefcount')
@@ -9,7 +9,18 @@
# File which contains the directory for shared mods (for sys.path fixup
# when running from the build dir, see Modules/getpath.c)
-@@ -585,7 +585,7 @@
+@@ -235,8 +235,8 @@
+ # unfortunately, distutils doesn't let us provide separate C and C++
+ # compilers
+ if compiler is not None:
+- (ccshared,cflags) = sysconfig.get_config_vars('CCSHARED','CFLAGS')
+- args['compiler_so'] = compiler + ' ' + ccshared + ' ' + cflags
++ (ccshared,opt,cflags) = sysconfig.get_config_vars('CCSHARED','OPT','CFLAGS')
++ args['compiler_so'] = compiler + ' ' + ccshared + ' ' + opt + ' ' + cflags
+ self.compiler.set_executables(**args)
+
+ # Not only do we write the builddir cookie, but we manually install
+@@ -629,7 +629,7 @@
# use the same library for the readline and curses modules.
if 'curses' in readline_termcap_library:
curses_library = readline_termcap_library
@@ -18,7 +29,7 @@
curses_library = 'ncursesw'
elif self.compiler.find_library_file(lib_dirs, 'ncurses'):
curses_library = 'ncurses'
-@@ -624,7 +624,7 @@
+@@ -668,7 +668,7 @@
'termcap'):
readline_libs.append('termcap')
exts.append( Extension('readline', ['readline.c'],
@@ -27,7 +38,7 @@
extra_link_args=readline_extra_link_args,
libraries=readline_libs) )
else:
-@@ -1139,12 +1139,13 @@
+@@ -1187,12 +1187,13 @@
# provided by the ncurses library.
panel_library = 'panel'
if curses_library.startswith('ncurses'):
@@ -42,7 +53,7 @@
libraries = curses_libs) )
elif curses_library == 'curses' and platform != 'darwin':
# OSX has an old Berkeley curses, not good enough for
-@@ -1157,6 +1158,7 @@
+@@ -1205,6 +1206,7 @@
curses_libs = ['curses']
exts.append( Extension('_curses', ['_cursesmodule.c'],
@@ -50,7 +61,7 @@
libraries = curses_libs) )
else:
missing.append('_curses')
-@@ -1309,7 +1311,7 @@
+@@ -1373,7 +1375,7 @@
macros = dict()
libraries = []
@@ -59,7 +70,7 @@
# FreeBSD's P1003.1b semaphore support is very experimental
# and has many known problems. (as of June 2008)
macros = dict()
-@@ -1352,8 +1354,7 @@
+@@ -1416,8 +1418,7 @@
# End multiprocessing
# Platform-specific libraries
@@ -69,7 +80,7 @@
or platform.startswith("gnukfreebsd")):
exts.append( Extension('ossaudiodev', ['ossaudiodev.c']) )
else:
-@@ -1868,8 +1869,7 @@
+@@ -1935,8 +1936,7 @@
# If you change the scripts installed here, you also need to
# check the PyBuildScripts command above, and change the links
# created by the bininstall target in Makefile.pre.in
diff --git a/lang/python33/Makefile b/lang/python33/Makefile
index d8d7269a00d3..ecd09204d473 100644
--- a/lang/python33/Makefile
+++ b/lang/python33/Makefile
@@ -2,7 +2,7 @@
PORTNAME= python33
PORTVERSION= 3.3.2
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= lang python ipv6
MASTER_SITES= PYTHON
MASTER_SITE_SUBDIR= ${PYTHON_MASTER_SITE_SUBDIR}
@@ -16,7 +16,7 @@ WRKSRC= ${PYTHON_WRKSRC}/portbld.static
PATCH_WRKSRC= ${PYTHON_WRKSRC}
GNU_CONFIGURE= yes
CONFIGURE_SCRIPT= ../configure # must be relative
-CONFIGURE_ENV= OPT="${CFLAGS}" SVNVERSION="echo freebsd"
+CONFIGURE_ENV= OPT="" SVNVERSION="echo freebsd"
MAKE_ENV= VPATH="${PYTHON_WRKSRC}"
USE_LDCONFIG= yes
INSTALL_TARGET= altinstall
@@ -57,9 +57,11 @@ NLS_DESC= Enable Gettext support for the locale module
.if ${PORT_OPTIONS:MNLS}
USES+= gettext
-# XXX do not set any LDFLAGS or CFLAGS - this causes pyexpat to fail building
-#LDFLAGS+= "-L${LOCALBASE}/lib"
-#CFLAGS+= "-I${LOCALBASE}/include"
+LDFLAGS+= -L${LOCALBASE}/lib
+# We use CPPFLAGS over CFLAGS here due to -I ordering causing things like
+# elementtree and pyexpat to break with python27, or to silence preprocessor
+# complaints with python33
+CPPFLAGS+= -I${LOCALBASE}/include
.else
CONFIGURE_ENV+= ac_cv_lib_intl_textdomain=no ac_cv_header_libintl_h=no
.endif
diff --git a/lang/python33/files/patch-Makefile.pre.in b/lang/python33/files/patch-Makefile.pre.in
index 2e7654bbb0ab..6f49f6e25e59 100644
--- a/lang/python33/files/patch-Makefile.pre.in
+++ b/lang/python33/files/patch-Makefile.pre.in
@@ -1,5 +1,30 @@
---- ./Makefile.pre.in.orig 2013-04-06 11:41:48.000000000 +0400
-+++ ./Makefile.pre.in 2013-04-08 16:16:25.000000000 +0400
+--- Makefile.pre.in.orig 2013-05-16 02:32:57.000000000 +1000
++++ Makefile.pre.in 2013-09-05 23:48:22.439871947 +1000
+@@ -70,18 +70,18 @@
+ OPT= @OPT@
+ BASECFLAGS= @BASECFLAGS@
+ BASECPPFLAGS= @BASECPPFLAGS@
+-CONFIGURE_CFLAGS= @CFLAGS@
+-CONFIGURE_CPPFLAGS= @CPPFLAGS@
+-CONFIGURE_LDFLAGS= @LDFLAGS@
++CFLAGS= @CFLAGS@
++CPPFLAGS= @CPPFLAGS@
++LDFLAGS= @LDFLAGS@
+ # Avoid assigning CFLAGS, LDFLAGS, etc. so users can use them on the
+ # command line to append to these values without stomping the pre-set
+ # values.
+-PY_CFLAGS= $(BASECFLAGS) $(OPT) $(CONFIGURE_CFLAGS) $(CFLAGS) $(EXTRA_CFLAGS)
++PY_CFLAGS= $(BASECFLAGS) $(OPT) $(CFLAGS) $(EXTRA_CFLAGS)
+ # Both CPPFLAGS and LDFLAGS need to contain the shell's value for setup.py to
+ # be able to build extension modules using the directories specified in the
+ # environment variables
+-PY_CPPFLAGS= $(BASECPPFLAGS) -I. -IInclude -I$(srcdir)/Include $(CONFIGURE_CPPFLAGS) $(CPPFLAGS)
+-PY_LDFLAGS= $(CONFIGURE_LDFLAGS) $(LDFLAGS)
++PY_CPPFLAGS= $(BASECPPFLAGS) -I. -IInclude -I$(srcdir)/Include $(CPPFLAGS)
++PY_LDFLAGS= $(LDFLAGS)
+ NO_AS_NEEDED= @NO_AS_NEEDED@
+ LDLAST= @LDLAST@
+ SGI_ABI= @SGI_ABI@
@@ -306,21 +306,21 @@
##########################################################################