[125554] trunk/dports/lang/python34

larryv at macports.org larryv at macports.org
Sat Sep 20 19:20:39 PDT 2014


Revision: 125554
          https://trac.macports.org/changeset/125554
Author:   larryv at macports.org
Date:     2014-09-20 19:20:38 -0700 (Sat, 20 Sep 2014)
Log Message:
-----------
python34: Apply upstream Yosemite fixes

Patches from http://bugs.python.org/issue21811.

Modified Paths:
--------------
    trunk/dports/lang/python34/Portfile

Added Paths:
-----------
    trunk/dports/lang/python34/files/yosemite-configure-fixes.patch
    trunk/dports/lang/python34/files/yosemite-python-fixes.patch

Modified: trunk/dports/lang/python34/Portfile
===================================================================
--- trunk/dports/lang/python34/Portfile	2014-09-21 00:16:03 UTC (rev 125553)
+++ trunk/dports/lang/python34/Portfile	2014-09-21 02:20:38 UTC (rev 125554)
@@ -8,6 +8,7 @@
 
 # Remember to keep py34-tkinter and py34-gdbm's versions sync'd with this
 version                 3.4.1
+revision                1
 
 epoch                   20140519
 
@@ -38,6 +39,10 @@
                         patch-setup.py-disabled_modules.diff \
                         patch-libedit.diff
 
+# http://bugs.python.org/issue21811
+patchfiles-append       yosemite-configure-fixes.patch \
+                        yosemite-python-fixes.patch
+
 depends_lib             port:zlib port:openssl \
                         port:sqlite3 port:ncurses \
                         port:bzip2 port:libedit port:gettext \

Added: trunk/dports/lang/python34/files/yosemite-configure-fixes.patch
===================================================================
--- trunk/dports/lang/python34/files/yosemite-configure-fixes.patch	                        (rev 0)
+++ trunk/dports/lang/python34/files/yosemite-configure-fixes.patch	2014-09-21 02:20:38 UTC (rev 125554)
@@ -0,0 +1,119 @@
+
+# HG changeset patch
+# User Ned Deily <nad at acm.org>
+# Date 1403729062 25200
+# Node ID 69ae7e4939f2fbd315b0585a197fb2be854052cc
+# Parent  14198fda1c709fa366b70f1d078227e0bebfdeea
+Issue #21811: Anticipated fixes to 3.x configure for OS X 10.10 Yosemite.
+
+diff --git a/configure b/configure
+--- configure.orig
++++ configure
+@@ -6551,10 +6551,16 @@ fi
+ 
+         { $as_echo "$as_me:${as_lineno-$LINENO}: checking which MACOSX_DEPLOYMENT_TARGET to use" >&5
+ $as_echo_n "checking which MACOSX_DEPLOYMENT_TARGET to use... " >&6; }
+-        cur_target=`sw_vers -productVersion | sed 's/\(10\.[0-9]*\).*/\1/'`
+-        if test ${cur_target} '>' 10.2 && \
+-           test ${cur_target} '<' 10.6
++        cur_target_major=`sw_vers -productVersion | \
++                sed 's/\([0-9]*\)\.\([0-9]*\).*/\1/'`
++        cur_target_minor=`sw_vers -productVersion | \
++                sed 's/\([0-9]*\)\.\([0-9]*\).*/\2/'`
++        cur_target="${cur_target_major}.${cur_target_minor}"
++        if test ${cur_target_major} -eq 10 && \
++           test ${cur_target_minor} -ge 3 && \
++           test ${cur_target_minor} -le 5
+         then
++            # OS X 10.3 through 10.5
+             cur_target=10.3
+             if test ${enable_universalsdk}
+             then
+@@ -8540,12 +8546,14 @@ then
+ 		# Use -undefined dynamic_lookup whenever possible (10.3 and later).
+ 		# This allows an extension to be used in any Python
+ 
+-		if test ${MACOSX_DEPLOYMENT_TARGET} '>' 10.2
++		dep_target_major=`echo ${MACOSX_DEPLOYMENT_TARGET} | \
++				sed 's/\([0-9]*\)\.\([0-9]*\).*/\1/'`
++		dep_target_minor=`echo ${MACOSX_DEPLOYMENT_TARGET} | \
++				sed 's/\([0-9]*\)\.\([0-9]*\).*/\2/'`
++		if test ${dep_target_major} -eq 10 && \
++		   test ${dep_target_minor} -le 2
+ 		then
+-			LDSHARED='$(CC) -bundle -undefined dynamic_lookup'
+-			LDCXXSHARED='$(CXX) -bundle -undefined dynamic_lookup'
+-			BLDSHARED="$LDSHARED"
+-		else
++			# building for OS X 10.0 through 10.2
+ 			LDSHARED='$(CC) -bundle'
+ 			LDCXXSHARED='$(CXX) -bundle'
+ 			if test "$enable_framework" ; then
+@@ -8559,6 +8567,11 @@ then
+ 				LDSHARED="$LDSHARED "'-bundle_loader $(BINDIR)/python$(VERSION)$(EXE)'
+ 				LDCXXSHARED="$LDCXXSHARED "'-bundle_loader $(BINDIR)/python$(VERSION)$(EXE)'
+ 			fi
++		else
++			# building for OS X 10.3 and later
++			LDSHARED='$(CC) -bundle -undefined dynamic_lookup'
++			LDCXXSHARED='$(CXX) -bundle -undefined dynamic_lookup'
++			BLDSHARED="$LDSHARED"
+ 		fi
+ 		;;
+ 	Linux*|GNU*|QNX*)
+diff --git a/configure.ac b/configure.ac
+--- configure.ac.orig
++++ configure.ac
+@@ -1318,10 +1318,16 @@ yes)
+         # 4. If we are running on OS X 10.2 or earlier, good luck!
+ 
+         AC_MSG_CHECKING(which MACOSX_DEPLOYMENT_TARGET to use)
+-        cur_target=`sw_vers -productVersion | sed 's/\(10\.[[0-9]]*\).*/\1/'`
+-        if test ${cur_target} '>' 10.2 && \
+-           test ${cur_target} '<' 10.6
++        cur_target_major=`sw_vers -productVersion | \
++                sed 's/\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'`
++        cur_target_minor=`sw_vers -productVersion | \
++                sed 's/\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'`
++        cur_target="${cur_target_major}.${cur_target_minor}"
++        if test ${cur_target_major} -eq 10 && \
++           test ${cur_target_minor} -ge 3 && \
++           test ${cur_target_minor} -le 5
+         then
++            # OS X 10.3 through 10.5
+             cur_target=10.3
+             if test ${enable_universalsdk}
+             then
+@@ -2017,12 +2023,14 @@ then
+ 		# Use -undefined dynamic_lookup whenever possible (10.3 and later).
+ 		# This allows an extension to be used in any Python
+ 
+-		if test ${MACOSX_DEPLOYMENT_TARGET} '>' 10.2
++		dep_target_major=`echo ${MACOSX_DEPLOYMENT_TARGET} | \
++				sed 's/\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'`
++		dep_target_minor=`echo ${MACOSX_DEPLOYMENT_TARGET} | \
++				sed 's/\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'`
++		if test ${dep_target_major} -eq 10 && \
++		   test ${dep_target_minor} -le 2
+ 		then
+-			LDSHARED='$(CC) -bundle -undefined dynamic_lookup'
+-			LDCXXSHARED='$(CXX) -bundle -undefined dynamic_lookup'
+-			BLDSHARED="$LDSHARED"
+-		else
++			# building for OS X 10.0 through 10.2
+ 			LDSHARED='$(CC) -bundle'
+ 			LDCXXSHARED='$(CXX) -bundle'
+ 			if test "$enable_framework" ; then
+@@ -2036,6 +2044,11 @@ then
+ 				LDSHARED="$LDSHARED "'-bundle_loader $(BINDIR)/python$(VERSION)$(EXE)'
+ 				LDCXXSHARED="$LDCXXSHARED "'-bundle_loader $(BINDIR)/python$(VERSION)$(EXE)'
+ 			fi
++		else
++			# building for OS X 10.3 and later
++			LDSHARED='$(CC) -bundle -undefined dynamic_lookup'
++			LDCXXSHARED='$(CXX) -bundle -undefined dynamic_lookup'
++			BLDSHARED="$LDSHARED"
+ 		fi
+ 		;;
+ 	Linux*|GNU*|QNX*)
+

Added: trunk/dports/lang/python34/files/yosemite-python-fixes.patch
===================================================================
--- trunk/dports/lang/python34/files/yosemite-python-fixes.patch	                        (rev 0)
+++ trunk/dports/lang/python34/files/yosemite-python-fixes.patch	2014-09-21 02:20:38 UTC (rev 125554)
@@ -0,0 +1,162 @@
+
+# HG changeset patch
+# User Ned Deily <nad at acm.org>
+# Date 1403728574 25200
+# Node ID 14198fda1c709fa366b70f1d078227e0bebfdeea
+# Parent  dead2b526c3b9d748c6483db4520ac5bc2e1ef4e
+Issue #21811: Anticipated fixes to 3.x and 2.7 for OS X 10.10 Yosemite.
+
+diff --git a/Lib/_osx_support.py b/Lib/_osx_support.py
+--- Lib/_osx_support.py.orig
++++ Lib/_osx_support.py
+@@ -450,8 +450,16 @@ def get_platform_osx(_config_vars, osnam
+         # case and disallow installs.
+         cflags = _config_vars.get(_INITPRE+'CFLAGS',
+                                     _config_vars.get('CFLAGS', ''))
+-        if ((macrelease + '.') >= '10.4.' and
+-            '-arch' in cflags.strip()):
++        if macrelease:
++            try:
++                macrelease = tuple(int(i) for i in macrelease.split('.')[0:2])
++            except ValueError:
++                macrelease = (10, 0)
++        else:
++            # assume no universal support
++            macrelease = (10, 0)
++
++        if (macrelease >= (10, 4)) and '-arch' in cflags.strip():
+             # The universal build will build fat binaries, but not on
+             # systems before 10.4
+ 
+diff --git a/Lib/distutils/tests/test_build_ext.py b/Lib/distutils/tests/test_build_ext.py
+--- Lib/distutils/tests/test_build_ext.py.orig
++++ Lib/distutils/tests/test_build_ext.py
+@@ -444,8 +444,16 @@ class BuildExtTestCase(TempdirManager,
+ 
+         # get the deployment target that the interpreter was built with
+         target = sysconfig.get_config_var('MACOSX_DEPLOYMENT_TARGET')
+-        target = tuple(map(int, target.split('.')))
+-        target = '%02d%01d0' % target
++        target = tuple(map(int, target.split('.')[0:2]))
++        # format the target value as defined in the Apple
++        # Availability Macros.  We can't use the macro names since
++        # at least one value we test with will not exist yet.
++        if target[1] < 10:
++            # for 10.1 through 10.9.x -> "10n0"
++            target = '%02d%01d0' % target
++        else:
++            # for 10.10 and beyond -> "10nn00"
++            target = '%02d%02d00' % target
+         deptarget_ext = Extension(
+             'deptarget',
+             [deptarget_c],
+diff --git a/Lib/test/test__osx_support.py b/Lib/test/test__osx_support.py
+--- Lib/test/test__osx_support.py.orig
++++ Lib/test/test__osx_support.py
+@@ -109,7 +109,9 @@ class Test_OSXSupport(unittest.TestCase)
+ 
+     def test__supports_universal_builds(self):
+         import platform
+-        self.assertEqual(platform.mac_ver()[0].split('.') >= ['10', '4'],
++        mac_ver_tuple = tuple(int(i) for i in
++                            platform.mac_ver()[0].split('.')[0:2])
++        self.assertEqual(mac_ver_tuple >= (10, 4),
+                             _osx_support._supports_universal_builds())
+ 
+     def test__find_appropriate_compiler(self):
+diff --git a/Lib/test/test_posix.py b/Lib/test/test_posix.py
+--- Lib/test/test_posix.py.orig
++++ Lib/test/test_posix.py
+@@ -768,7 +768,7 @@ class PosixTester(unittest.TestCase):
+         if sys.platform == 'darwin':
+             import sysconfig
+             dt = sysconfig.get_config_var('MACOSX_DEPLOYMENT_TARGET') or '10.0'
+-            if float(dt) < 10.6:
++            if tuple(int(n) for n in dt.split('.')[0:2]) < (10, 6):
+                 raise unittest.SkipTest("getgroups(2) is broken prior to 10.6")
+ 
+         # 'id -G' and 'os.getgroups()' should return the same
+diff --git a/Mac/BuildScript/build-installer.py b/Mac/BuildScript/build-installer.py
+--- Mac/BuildScript/build-installer.py.orig
++++ Mac/BuildScript/build-installer.py
+@@ -150,17 +150,19 @@ SRCDIR = os.path.dirname(
+ # $MACOSX_DEPLOYMENT_TARGET -> minimum OS X level
+ DEPTARGET = '10.3'
+ 
+-target_cc_map = {
++def getDeptargetTuple():
++    return tuple([int(n) for n in DEPTARGET.split('.')[0:2]])
++
++def getTargetCompilers():
++    target_cc_map = {
+         '10.3': ('gcc-4.0', 'g++-4.0'),
+         '10.4': ('gcc-4.0', 'g++-4.0'),
+         '10.5': ('gcc-4.2', 'g++-4.2'),
+         '10.6': ('gcc-4.2', 'g++-4.2'),
+-        '10.7': ('clang', 'clang++'),
+-        '10.8': ('clang', 'clang++'),
+-        '10.9': ('clang', 'clang++'),
+-}
++    }
++    return target_cc_map.get(DEPTARGET, ('clang', 'clang++') )
+ 
+-CC, CXX = target_cc_map[DEPTARGET]
++CC, CXX = getTargetCompilers()
+ 
+ PYTHON_3 = getVersionTuple() >= (3, 0)
+ 
+@@ -193,10 +195,10 @@ EXPECTED_SHARED_LIBS = {}
+ def library_recipes():
+     result = []
+ 
+-    LT_10_5 = bool(DEPTARGET < '10.5')
++    LT_10_5 = bool(getDeptargetTuple() < (10, 5))
+ 
+ #   Disable for now
+-    if False:   # if (DEPTARGET > '10.5') and (getVersionTuple() >= (3, 5)):
++    if False:   # if (getDeptargetTuple() > (10, 5)) and (getVersionTuple() >= (3, 5)):
+         result.extend([
+           dict(
+               name="Tcl 8.5.15",
+@@ -304,7 +306,7 @@ def library_recipes():
+           ),
+         ])
+ 
+-    if DEPTARGET < '10.5':
++    if getDeptargetTuple() < (10, 5):
+         result.extend([
+           dict(
+               name="Bzip2 1.0.6",
+@@ -458,7 +460,7 @@ def pkg_recipes():
+             )
+         )
+ 
+-    if DEPTARGET < '10.4' and not PYTHON_3:
++    if getDeptargetTuple() < (10, 4) and not PYTHON_3:
+         result.append(
+             dict(
+                 name="PythonSystemFixes",
+@@ -679,7 +681,7 @@ def parseOptions(args=None):
+     SDKPATH=os.path.abspath(SDKPATH)
+     DEPSRC=os.path.abspath(DEPSRC)
+ 
+-    CC, CXX=target_cc_map[DEPTARGET]
++    CC, CXX = getTargetCompilers()
+ 
+     print("Settings:")
+     print(" * Source directory:", SRCDIR)
+diff --git a/setup.py b/setup.py
+--- setup.py.orig
++++ setup.py
+@@ -697,7 +697,9 @@ class PyBuildExt(build_ext):
+         if host_platform == 'darwin':
+             os_release = int(os.uname()[2].split('.')[0])
+             dep_target = sysconfig.get_config_var('MACOSX_DEPLOYMENT_TARGET')
+-            if dep_target and dep_target.split('.') < ['10', '5']:
++            if (dep_target and
++                    (tuple(int(n) for n in dep_target.split('.')[0:2])
++                        < (10, 5) ) ):
+                 os_release = 8
+             if os_release < 9:
+                 # MacOSX 10.4 has a broken readline. Don't try to build
+
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/macports-changes/attachments/20140920/4b1f7902/attachment.html>


More information about the macports-changes mailing list