Date: Sun, 8 Sep 2013 14:05:18 +0000 (UTC) From: Kubilay Kocak <koobs@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r326729 - in head/lang: python26 python27 python31 python32 python32/files python33 python33/files Message-ID: <201309081405.r88E5I0P007786@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: koobs Date: Sun Sep 8 14:05:18 2013 New Revision: 326729 URL: http://svnweb.freebsd.org/changeset/ports/326729 Log: 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 Modified: head/lang/python26/Makefile head/lang/python27/Makefile head/lang/python31/Makefile head/lang/python32/Makefile head/lang/python32/files/patch-Makefile.pre.in head/lang/python32/files/patch-setup.py (contents, props changed) head/lang/python33/Makefile head/lang/python33/files/patch-Makefile.pre.in Modified: head/lang/python26/Makefile ============================================================================== --- head/lang/python26/Makefile Sun Sep 8 13:59:48 2013 (r326728) +++ head/lang/python26/Makefile Sun Sep 8 14:05:18 2013 (r326729) @@ -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 .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 \ Modified: head/lang/python27/Makefile ============================================================================== --- head/lang/python27/Makefile Sun Sep 8 13:59:48 2013 (r326728) +++ head/lang/python27/Makefile Sun Sep 8 14:05:18 2013 (r326729) @@ -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_ 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 .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' Modified: head/lang/python31/Makefile ============================================================================== --- head/lang/python31/Makefile Sun Sep 8 13:59:48 2013 (r326728) +++ head/lang/python31/Makefile Sun Sep 8 14:05:18 2013 (r326729) @@ -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 .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 Modified: head/lang/python32/Makefile ============================================================================== --- head/lang/python32/Makefile Sun Sep 8 13:59:48 2013 (r326728) +++ head/lang/python32/Makefile Sun Sep 8 14:05:18 2013 (r326729) @@ -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 .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 Modified: head/lang/python32/files/patch-Makefile.pre.in ============================================================================== --- head/lang/python32/files/patch-Makefile.pre.in Sun Sep 8 13:59:48 2013 (r326728) +++ head/lang/python32/files/patch-Makefile.pre.in Sun Sep 8 14:05:18 2013 (r326729) @@ -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 @@ ########################################################################## Modified: head/lang/python32/files/patch-setup.py ============================================================================== --- head/lang/python32/files/patch-setup.py Sun Sep 8 13:59:48 2013 (r326728) +++ head/lang/python32/files/patch-setup.py Sun Sep 8 14:05:18 2013 (r326729) @@ -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 Modified: head/lang/python33/Makefile ============================================================================== --- head/lang/python33/Makefile Sun Sep 8 13:59:48 2013 (r326728) +++ head/lang/python33/Makefile Sun Sep 8 14:05:18 2013 (r326729) @@ -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 .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 Modified: head/lang/python33/files/patch-Makefile.pre.in ============================================================================== --- head/lang/python33/files/patch-Makefile.pre.in Sun Sep 8 13:59:48 2013 (r326728) +++ head/lang/python33/files/patch-Makefile.pre.in Sun Sep 8 14:05:18 2013 (r326729) @@ -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 @@ ##########################################################################
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201309081405.r88E5I0P007786>