diff options
author | koobs <koobs@FreeBSD.org> | 2013-09-08 22:05:18 +0800 |
---|---|---|
committer | koobs <koobs@FreeBSD.org> | 2013-09-08 22:05:18 +0800 |
commit | 3835cd8c9b3bdc5ee612ea55989ddbabfe1fef61 (patch) | |
tree | 6d7fe992f675eda5ec64a27474e0fe9678c0334d | |
parent | e0446068231b513e183e383ab20bfa34e009f152 (diff) | |
download | freebsd-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/Makefile | 13 | ||||
-rw-r--r-- | lang/python27/Makefile | 15 | ||||
-rw-r--r-- | lang/python31/Makefile | 12 | ||||
-rw-r--r-- | lang/python32/Makefile | 12 | ||||
-rw-r--r-- | lang/python32/files/patch-Makefile.pre.in | 29 | ||||
-rw-r--r-- | lang/python32/files/patch-setup.py | 29 | ||||
-rw-r--r-- | lang/python33/Makefile | 12 | ||||
-rw-r--r-- | lang/python33/files/patch-Makefile.pre.in | 29 |
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 @@ ########################################################################## |