Ticket #44994: 0004-python31-Apply-upstream-Yosemite-fixes.patch

File 0004-python31-Apply-upstream-Yosemite-fixes.patch, 9.2 KB (added by larryv (Lawrence Velázquez), 10 years ago)
  • dports/lang/python31/Portfile

    From e49cbf15a9475cfc8e592110b981ff4019f0a438 Mon Sep 17 00:00:00 2001
    From: =?UTF-8?q?Lawrence=20Vel=C3=A1zquez?= <larryv@macports.org>
    Date: Sat, 13 Sep 2014 16:50:08 -0400
    Subject: [PATCH 4/5] python31: Apply upstream Yosemite fixes
    
    Patches adapted from http://bugs.python.org/issue21811.
    ---
     dports/lang/python31/Portfile                      |   5 +
     .../python31/files/yosemite-configure-fixes.patch  | 118 +++++++++++++++++++++
     .../python31/files/yosemite-python-fixes.patch     |  76 +++++++++++++
     3 files changed, 199 insertions(+)
     create mode 100644 dports/lang/python31/files/yosemite-configure-fixes.patch
     create mode 100644 dports/lang/python31/files/yosemite-python-fixes.patch
    
    diff --git a/dports/lang/python31/Portfile b/dports/lang/python31/Portfile
    index de2c1e6..023d464 100644
    a b name python31 
    88epoch                   1
    99# Remember to keep py31-tkinter and py31-gdbm's versions sync'd with this
    1010version                 3.1.5
     11revision                1
    1112set major               [lindex [split $version .] 0]
    1213set branch              [join [lrange [split ${version} .] 0 1] .]
    1314categories              lang
    patchfiles patch-setup.py.diff \ 
    3536                        patch-setup.py-disabled_modules.diff \
    3637                        patch-libedit.diff
    3738
     39# http://bugs.python.org/issue21811
     40patchfiles-append       yosemite-configure-fixes.patch \
     41                        yosemite-python-fixes.patch
     42
    3843depends_lib             port:zlib port:openssl \
    3944                        port:sqlite3 port:ncurses \
    4045                        port:bzip2 port:libedit port:gettext
  • new file dports/lang/python31/files/yosemite-configure-fixes.patch

    diff --git a/dports/lang/python31/files/yosemite-configure-fixes.patch b/dports/lang/python31/files/yosemite-configure-fixes.patch
    new file mode 100644
    index 0000000..3c79a29
    - +  
     1Index: configure
     2===================================================================
     3--- configure.orig
     4+++ configure
     5@@ -5522,8 +5522,16 @@ $as_echo "$CC" >&6; }
     6 
     7            # Calculate the right deployment target for this build.
     8            #
     9-           cur_target=`sw_vers -productVersion | sed 's/\(10\.[0-9]*\).*/\1/'`
     10-           if test ${cur_target} '>' 10.2; then
     11+           cur_target_major=`sw_vers -productVersion | \
     12+                   sed 's/\([0-9]*\)\.\([0-9]*\).*/\1/'`
     13+           cur_target_minor=`sw_vers -productVersion | \
     14+                   sed 's/\([0-9]*\)\.\([0-9]*\).*/\2/'`
     15+           cur_target="${cur_target_major}.${cur_target_minor}"
     16+           if test ${cur_target_major} -eq 10 && \
     17+              test ${cur_target_minor} -ge 3 && \
     18+              test ${cur_target_minor} -le 5
     19+           then
     20+                   # OS X 10.3 through 10.5
     21                    cur_target=10.3
     22                    if test ${enable_universalsdk}; then
     23                            if test "${UNIVERSAL_ARCHS}" = "all"; then
     24@@ -7585,14 +7593,14 @@ then
     25                # Use -undefined dynamic_lookup whenever possible (10.3 and later).
     26                # This allows an extension to be used in any Python
     27 
     28-               if test ${MACOSX_DEPLOYMENT_TARGET} '>' 10.2
     29+               dep_target_major=`echo ${MACOSX_DEPLOYMENT_TARGET} | \
     30+                               sed 's/\([0-9]*\)\.\([0-9]*\).*/\1/'`
     31+               dep_target_minor=`echo ${MACOSX_DEPLOYMENT_TARGET} | \
     32+                               sed 's/\([0-9]*\)\.\([0-9]*\).*/\2/'`
     33+               if test ${dep_target_major} -eq 10 && \
     34+                  test ${dep_target_minor} -le 2
     35                then
     36-                       if test "${enable_universalsdk}"; then
     37-                               LDFLAGS="${UNIVERSAL_ARCH_FLAGS} -isysroot ${UNIVERSALSDK} ${LDFLAGS}"
     38-                       fi
     39-                       LDSHARED='$(CC) $(LDFLAGS) -bundle -undefined dynamic_lookup'
     40-                       BLDSHARED="$LDSHARED"
     41-               else
     42+                       # building for OS X 10.0 through 10.2
     43                        LDSHARED='$(CC) $(LDFLAGS) -bundle'
     44                        if test "$enable_framework" ; then
     45                                # Link against the framework. All externals should be defined.
     46@@ -7603,6 +7611,13 @@ then
     47                                BLDSHARED="$LDSHARED "'-bundle_loader $(BUILDPYTHON)'
     48                                LDSHARED="$LDSHARED "'-bundle_loader $(BINDIR)/python$(VERSION)$(EXE)'
     49                        fi
     50+               else
     51+                       # building for OS X 10.3 and later
     52+                       if test "${enable_universalsdk}"; then
     53+                               LDFLAGS="${UNIVERSAL_ARCH_FLAGS} -isysroot ${UNIVERSALSDK} ${LDFLAGS}"
     54+                       fi
     55+                       LDSHARED='$(CC) $(LDFLAGS) -bundle -undefined dynamic_lookup'
     56+                       BLDSHARED="$LDSHARED"
     57                fi
     58                ;;
     59        Linux*|GNU*|QNX*) LDSHARED='$(CC) -shared';;
     60Index: configure.ac
     61===================================================================
     62--- configure.ac.orig
     63+++ configure.ac
     64@@ -1010,8 +1010,16 @@ yes)
     65 
     66            # Calculate the right deployment target for this build.
     67            #
     68-           cur_target=`sw_vers -productVersion | sed 's/\(10\.[[0-9]]*\).*/\1/'`
     69-           if test ${cur_target} '>' 10.2; then
     70+           cur_target_major=`sw_vers -productVersion | \
     71+                   sed 's/\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'`
     72+           cur_target_minor=`sw_vers -productVersion | \
     73+                   sed 's/\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'`
     74+           cur_target="${cur_target_major}.${cur_target_minor}"
     75+           if test ${cur_target_major} -eq 10 && \
     76+              test ${cur_target_minor} -ge 3 && \
     77+              test ${cur_target_minor} -le 5
     78+           then
     79+                   # OS X 10.3 through 10.5
     80                    cur_target=10.3
     81                    if test ${enable_universalsdk}; then
     82                            if test "${UNIVERSAL_ARCHS}" = "all"; then
     83@@ -1792,14 +1800,14 @@ then
     84                # Use -undefined dynamic_lookup whenever possible (10.3 and later).
     85                # This allows an extension to be used in any Python
     86 
     87-               if test ${MACOSX_DEPLOYMENT_TARGET} '>' 10.2
     88+               dep_target_major=`echo ${MACOSX_DEPLOYMENT_TARGET} | \
     89+                               sed 's/\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'`
     90+               dep_target_minor=`echo ${MACOSX_DEPLOYMENT_TARGET} | \
     91+                               sed 's/\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'`
     92+               if test ${dep_target_major} -eq 10 && \
     93+                  test ${dep_target_minor} -le 2
     94                then
     95-                       if test "${enable_universalsdk}"; then
     96-                               LDFLAGS="${UNIVERSAL_ARCH_FLAGS} -isysroot ${UNIVERSALSDK} ${LDFLAGS}"
     97-                       fi
     98-                       LDSHARED='$(CC) $(LDFLAGS) -bundle -undefined dynamic_lookup'
     99-                       BLDSHARED="$LDSHARED"
     100-               else
     101+                       # building for OS X 10.0 through 10.2
     102                        LDSHARED='$(CC) $(LDFLAGS) -bundle'
     103                        if test "$enable_framework" ; then
     104                                # Link against the framework. All externals should be defined.
     105@@ -1810,6 +1818,13 @@ then
     106                                BLDSHARED="$LDSHARED "'-bundle_loader $(BUILDPYTHON)'
     107                                LDSHARED="$LDSHARED "'-bundle_loader $(BINDIR)/python$(VERSION)$(EXE)'
     108                        fi
     109+               else
     110+                       # building for OS X 10.3 and later
     111+                       if test "${enable_universalsdk}"; then
     112+                               LDFLAGS="${UNIVERSAL_ARCH_FLAGS} -isysroot ${UNIVERSALSDK} ${LDFLAGS}"
     113+                       fi
     114+                       LDSHARED='$(CC) $(LDFLAGS) -bundle -undefined dynamic_lookup'
     115+                       BLDSHARED="$LDSHARED"
     116                fi
     117                ;;
     118        Linux*|GNU*|QNX*) LDSHARED='$(CC) -shared';;
  • new file dports/lang/python31/files/yosemite-python-fixes.patch

    diff --git a/dports/lang/python31/files/yosemite-python-fixes.patch b/dports/lang/python31/files/yosemite-python-fixes.patch
    new file mode 100644
    index 0000000..49e1f05
    - +  
     1Index: Lib/distutils/util.py
     2===================================================================
     3--- Lib/distutils/util.py.orig
     4+++ Lib/distutils/util.py
     5@@ -133,7 +133,16 @@ def get_platform ():
     6             release = macver
     7             osname = "macosx"
     8 
     9-            if (macrelease + '.') >= '10.4.' and \
     10+            if macrelease:
     11+                try:
     12+                    macrelease = tuple(int(i) for i in macrelease.split('.')[0:2])
     13+                except ValueError:
     14+                    macrelease = (10, 0)
     15+            else:
     16+                # assume no universal support
     17+                macrelease = (10, 0)
     18+
     19+            if (macrelease >= (10, 4)) and \
     20                     '-arch' in get_config_vars().get('CFLAGS', '').strip():
     21                 # The universal build will build fat binaries, but not on
     22                 # systems before 10.4
     23Index: Mac/BuildScript/build-installer.py
     24===================================================================
     25--- Mac/BuildScript/build-installer.py.orig
     26+++ Mac/BuildScript/build-installer.py
     27@@ -108,14 +108,19 @@ SRCDIR = os.path.dirname(
     28 # $MACOSX_DEPLOYMENT_TARGET -> minimum OS X level
     29 DEPTARGET = '10.3'
     30 
     31-target_cc_map = {
     32+def getDeptargetTuple():
     33+    return tuple([int(n) for n in DEPTARGET.split('.')[0:2]])
     34+
     35+def getTargetCompiler():
     36+    target_cc_map = {
     37         '10.3': 'gcc-4.0',
     38         '10.4': 'gcc-4.0',
     39         '10.5': 'gcc-4.0',
     40         '10.6': 'gcc-4.2',
     41-}
     42+    }
     43+    return target_cc_map.get(DEPTARGET, 'clang')
     44 
     45-CC = target_cc_map[DEPTARGET]
     46+CC = getTargetCompiler()
     47 
     48 PYTHON_3 = getVersionTuple() >= (3, 0)
     49 
     50@@ -141,7 +146,7 @@ USAGE = textwrap.dedent("""\
     51 def library_recipes():
     52     result = []
     53 
     54-    if DEPTARGET < '10.5':
     55+    if getDeptargetTuple() < (10, 5):
     56         result.extend([
     57           dict(
     58               name="Bzip2 1.0.5",
     59@@ -318,7 +323,7 @@ def pkg_recipes():
     60         ),
     61     ]
     62 
     63-    if DEPTARGET < '10.4':
     64+    if getDeptargetTuple() < (10, 4):
     65         result.append(
     66             dict(
     67                 name="PythonSystemFixes",
     68@@ -509,7 +514,7 @@ def parseOptions(args=None):
     69     SDKPATH=os.path.abspath(SDKPATH)
     70     DEPSRC=os.path.abspath(DEPSRC)
     71 
     72-    CC=target_cc_map[DEPTARGET]
     73+    CC=getTargetCompiler()
     74 
     75     print "Settings:"
     76     print " * Source directory:", SRCDIR