MacOSX: fix permission problem in the generated installer

This commit is contained in:
Ronald Oussoren 2006-10-10 07:55:06 +00:00
parent f43893a878
commit 74d3eef73e
1 changed files with 10 additions and 1 deletions

View File

@ -10,6 +10,7 @@ bootstrap issues (/usr/bin/python is Python 2.3 on OSX 10.4)
Usage: see USAGE variable in the script. Usage: see USAGE variable in the script.
""" """
import platform, os, sys, getopt, textwrap, shutil, urllib2, stat, time, pwd import platform, os, sys, getopt, textwrap, shutil, urllib2, stat, time, pwd
import grp
INCLUDE_TIMESTAMP=1 INCLUDE_TIMESTAMP=1
VERBOSE=1 VERBOSE=1
@ -657,9 +658,13 @@ def buildPython():
print "Fix file modes" print "Fix file modes"
frmDir = os.path.join(rootDir, 'Library', 'Frameworks', 'Python.framework') frmDir = os.path.join(rootDir, 'Library', 'Frameworks', 'Python.framework')
gid = grp.getgrnam('admin').gr_gid
for dirpath, dirnames, filenames in os.walk(frmDir): for dirpath, dirnames, filenames in os.walk(frmDir):
for dn in dirnames: for dn in dirnames:
os.chmod(os.path.join(dirpath, dn), 0775) os.chmod(os.path.join(dirpath, dn), 0775)
os.chown(os.path.join(dirpath, dn), -1, gid)
for fn in filenames: for fn in filenames:
if os.path.islink(fn): if os.path.islink(fn):
@ -668,7 +673,8 @@ def buildPython():
# "chmod g+w $fn" # "chmod g+w $fn"
p = os.path.join(dirpath, fn) p = os.path.join(dirpath, fn)
st = os.stat(p) st = os.stat(p)
os.chmod(p, stat.S_IMODE(st.st_mode) | stat.S_IXGRP) os.chmod(p, stat.S_IMODE(st.st_mode) | stat.S_IWGRP)
os.chown(p, -1, gid)
# We added some directories to the search path during the configure # We added some directories to the search path during the configure
# phase. Remove those because those directories won't be there on # phase. Remove those because those directories won't be there on
@ -945,7 +951,10 @@ def setIcon(filePath, icnsPath):
ref, isDirectory = Carbon.File.FSPathMakeRef(filePath) ref, isDirectory = Carbon.File.FSPathMakeRef(filePath)
if isDirectory: if isDirectory:
# There is a problem with getting this into the pax(1) archive,
# just ignore directory icons for now.
return return
tmpPath = os.path.join(filePath, "Icon\r") tmpPath = os.path.join(filePath, "Icon\r")
if not os.path.exists(tmpPath): if not os.path.exists(tmpPath):
fp = open(tmpPath, 'w') fp = open(tmpPath, 'w')