]> granicus.if.org Git - python/commitdiff
- Change fixapplepython23.py to ensure that it will run with /usr/bin/python
authorRonald Oussoren <ronaldoussoren@mac.com>
Sun, 11 Jun 2006 20:24:45 +0000 (20:24 +0000)
committerRonald Oussoren <ronaldoussoren@mac.com>
Sun, 11 Jun 2006 20:24:45 +0000 (20:24 +0000)
  on intel macs.
- Fix some minor problems in the installer for OSX

Mac/BuildScript/build-installer.py
Mac/Tools/fixapplepython23.py

index 05afe98babf080aa239f1fc382efa6e0d276ce01..15c754e4898f9da2053ef15fe6efd2d0fc9a0122 100755 (executable)
@@ -236,7 +236,7 @@ PKG_RECIPES=[
             Mac OS X 10.3 to ensure that you can build new python extensions
             using that copy of python after installing this version of
             python.
-            """
+            """,
         postflight="../Tools/fixapplepython23.py",
         topdir="/Library/Frameworks/Python.framework",
         source="/empty-dir",
@@ -686,6 +686,9 @@ def patchFile(inPath, outPath):
     data = data.replace('$MACOSX_DEPLOYMENT_TARGET', '10.3 or later')
     data = data.replace('$ARCHITECTURES', "i386, ppc")
     data = data.replace('$INSTALL_SIZE', installSize())
+
+    # This one is not handy as a template variable
+    data = data.replace('$PYTHONFRAMEWORKINSTALLDIR', '/Library/Frameworks/Python.framework')
     fp = open(outPath, 'wb')
     fp.write(data)
     fp.close()
@@ -703,7 +706,10 @@ def patchScript(inPath, outPath):
 def packageFromRecipe(targetDir, recipe):
     curdir = os.getcwd()
     try:
-        pkgname = recipe['name']
+        # The major version (such as 2.5) is included in the pacakge name
+        # because haveing two version of python installed at the same time is
+        # common.
+        pkgname = '%s-%s'%(recipe['name'], getVersion())
         srcdir  = recipe.get('source')
         pkgroot = recipe.get('topdir', srcdir)
         postflight = recipe.get('postflight')
@@ -804,7 +810,7 @@ def makeMpkgPlist(path):
             IFPkgFlagComponentDirectory="Contents/Packages",
             IFPkgFlagPackageList=[
                 dict(
-                    IFPkgFlagPackageLocation='%s.pkg'%(item['name']),
+                    IFPkgFlagPackageLocation='%s-%s.pkg'%(item['name'], getVersion()),
                     IFPkgFlagPackageSelection='selected'
                 )
                 for item in PKG_RECIPES
@@ -812,6 +818,7 @@ def makeMpkgPlist(path):
             IFPkgFormatVersion=0.10000000149011612,
             IFPkgFlagBackgroundScaling="proportional",
             IFPkgFlagBackgroundAlignment="left",
+            IFPkgFlagAuthorizationAction="RootAuthorization",
         )
 
     writePlist(pl, path)
@@ -859,7 +866,7 @@ def buildInstaller():
         else:
             patchFile(os.path.join('resources', fn), os.path.join(rsrcDir, fn))
 
-    shutil.copy("../../../LICENSE", os.path.join(rsrcDir, 'License.txt'))
+    shutil.copy("../../LICENSE", os.path.join(rsrcDir, 'License.txt'))
 
 
 def installSize(clear=False, _saved=[]):
@@ -1005,7 +1012,7 @@ def main():
     patchFile('resources/ReadMe.txt', os.path.join(WORKDIR, 'installer', 'ReadMe.txt'))
 
     # Ditto for the license file.
-    shutil.copy('../../../LICENSE', os.path.join(WORKDIR, 'installer', 'License.txt'))
+    shutil.copy('../../LICENSE', os.path.join(WORKDIR, 'installer', 'License.txt'))
 
     fp = open(os.path.join(WORKDIR, 'installer', 'Build.txt'), 'w')
     print >> fp, "# BUILD INFO"
index ef352cedb1f6ee1bce4988a283537a5cb5132647..fb8645a629b74de93cc10fe9c0e30985e3321b59 100644 (file)
@@ -94,9 +94,19 @@ def main():
     else:
         do_apply = True
     # First check OS version
+    if sys.byteorder == 'little':
+        # All intel macs are fine
+        print "fixapplypython23: no fix is needed on MacOSX on Intel"
+        sys.exit(0)
+
     if gestalt.gestalt('sysv') < 0x1030:
         print 'fixapplepython23: no fix needed on MacOSX < 10.3'
         sys.exit(0)
+
+    if gestalt.gestalt('sysv') >= 0x1040:
+        print 'fixapplepython23: no fix needed on MacOSX >= 10.4'
+        sys.exit(0)
+
     # Test that a framework Python is indeed installed
     if not os.path.exists(MAKEFILE):
         print 'fixapplepython23: Python framework does not appear to be installed (?), nothing fixed'