From 279e9878ff2e8764aee63aefe7313ef8b9a3719f Mon Sep 17 00:00:00 2001 From: Diane Trout Date: Tue, 12 Dec 2006 02:27:22 +0000 Subject: [PATCH] fix infinite loop for absolute pathnames and add a --prelink-only update and update to qt 4.2.2 --- makelib/osxdist.py | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/makelib/osxdist.py b/makelib/osxdist.py index 397832e..be6f605 100644 --- a/makelib/osxdist.py +++ b/makelib/osxdist.py @@ -59,7 +59,7 @@ def mkdir(path): path_list = [] head, tail = os.path.split(path) path_list.insert(0, tail) - while len(head) > 0: + while head != os.path.sep and len(head) > 0: head, tail = os.path.split(head) path_list.insert(0, tail) created_path = "" @@ -119,8 +119,9 @@ def prelinkqt(app_name, bundle_dir, qt_lib_dir): OS X's treatment of dynamic loading is annoying properly prelink all the annoying qt components. """ + print >>sys.stderr, "Prelinking", app_name, "in", bundle_dir, framework_subpath = os.path.join("%(framework)s.framework", "Versions", "4", "%(framework)s") - frameworks = ['QtCore', 'QtGui', 'QtOpenGL', 'QtAssistantClient', 'QtNetwork'] + frameworks = ['QtCore', 'QtGui', 'QtOpenGL', 'QtAssistant', 'QtNetwork'] qt_framework=os.path.join(qt_lib_dir, framework_subpath) app_binary=bundle_dir+"/Contents/MacOS/"+app_name @@ -143,6 +144,7 @@ def prelinkqt(app_name, bundle_dir, qt_lib_dir): contents_exe_path = "@executable_path/../Frameworks/" + framework_subpath contents_exe_path %= ({'framework': frame2}) call(['install_name_tool','-change',qtframe2,contents_exe_path,appframe]) + print "." def validate_bundle(bundle_path): """ @@ -173,16 +175,18 @@ def validate_bundle(bundle_path): return valid def main(args): - qtroot = "/usr/local/qt/4.2.1" + qtroot = "/usr/local/qt/4.2.2" app_name = None build_num = None bundle_dir = None dmgfile = None desturl = None + prelink_only = False opts, args = getopt.getopt(args, "a:b:d:n:q:h", ["appbundle=", "build-num=", "destination=", - "name=", "qt-root=", "help"]) + "name=", "prelink-only", "qt-root=", "help"]) + for option, argument in opts: if option in ("-a", "--appbundle"): bundle_dir = argument @@ -192,6 +196,8 @@ def main(args): desturl = argument elif option in ("-n", "--name"): app_name = argument + elif option in ("--prelink-only"): + prelink_only = True elif option in ("-q", "--qt-root"): qtroot = argument elif option in ("-h", "--help"): @@ -222,6 +228,8 @@ def main(args): else: dmg_name = app_name + bundle_dir = os.path.expanduser(bundle_dir) + if not os.path.exists(bundle_dir): print >>sys.stderr, "couldn't find an app at %s" % (app_bundle) return 1 @@ -229,12 +237,14 @@ def main(args): qt_lib_dir = os.path.join(qtroot, 'lib') prelinkqt(app_name, bundle_dir, qt_lib_dir) - if validate_bundle(bundle_dir): - dmgfile = makedmg([bundle_dir]+args, dmg_name) - else: + if not validate_bundle(bundle_dir): print >>sys.stderr, "Invalid libraries found" return 1 + if prelink_only: + return 0 + + dmgfile = makedmg([bundle_dir]+args, dmg_name) if dmgfile and desturl: print "Uploading",dmgfile,"to",desturl ship(dmgfile, desturl) -- 2.30.2