From d4ad9dfa1084af806ff168b48c6423667d9d455a Mon Sep 17 00:00:00 2001 From: Per Olofsson Date: Tue, 3 Jun 2014 08:39:52 +0200 Subject: [PATCH 01/37] Set version 1.5b. --- AutoDMG/AutoDMG-Info.plist | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AutoDMG/AutoDMG-Info.plist b/AutoDMG/AutoDMG-Info.plist index 9351ad5..634593a 100644 --- a/AutoDMG/AutoDMG-Info.plist +++ b/AutoDMG/AutoDMG-Info.plist @@ -36,7 +36,7 @@ CFBundlePackageType APPL CFBundleShortVersionString - 1.4.2 + 1.5b CFBundleSignature ???? CFBundleVersion From f12eb921770a2923fd312dfedb58fa984bd2b27f Mon Sep 17 00:00:00 2001 From: Per Olofsson Date: Tue, 3 Jun 2014 10:07:14 +0200 Subject: [PATCH 02/37] Stub out broken installer size check. --- AutoDMG/IEDUtil.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/AutoDMG/IEDUtil.py b/AutoDMG/IEDUtil.py index 76cabbb..a0ef5fa 100644 --- a/AutoDMG/IEDUtil.py +++ b/AutoDMG/IEDUtil.py @@ -131,14 +131,13 @@ def getInstalledPkgSize_(cls, pkgPath): elif p.returncode != 0: mountPoints = IEDMountInfo.getMountPoints() fsInfo = mountPoints[cls.findMountPoint_(pkgPath)] - if not fsInfo[u"islocal"]: - LogWarning(u"Estimating package size since installer -pkginfo " - u"failed and '%@' is on a remote (%@) filesystem", - pkgPath, fsInfo[u"fstypename"]) - return cls.getPackageSize_(pkgPath) * 2 + LogWarning(u"Estimating package size since installer -pkginfo " + u"failed and '%@' is on a '%@' filesystem", + pkgPath, fsInfo[u"fstypename"]) + if os.path.basename(pkgPath) == u"OSInstall.mpkg": + return 8 * 1024 * 1024 * 1024 else: - LogError(u"installer -pkginfo -pkg '%@' failed with exit code %d", pkgPath, p.returncode) - return None + return cls.getPackageSize_(pkgPath) * 2 outData = NSData.dataWithBytes_length_(out, len(out)) plist, format, error = NSPropertyListSerialization.propertyListWithData_options_format_error_(outData, NSPropertyListImmutable, From 4f90867440d82f5c5988fd832165e764f9953f47 Mon Sep 17 00:00:00 2001 From: Per Olofsson Date: Tue, 3 Jun 2014 10:22:47 +0200 Subject: [PATCH 03/37] Updated profile update URL. --- AutoDMG/Defaults.plist | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AutoDMG/Defaults.plist b/AutoDMG/Defaults.plist index 7d3820e..261cd00 100644 --- a/AutoDMG/Defaults.plist +++ b/AutoDMG/Defaults.plist @@ -7,7 +7,7 @@ HelpURL https://github.com/MagerValp/AutoDMG/wiki UpdateProfilesURL - https://raw.github.com/MagerValp/AutoDMGUpdateProfiles/master/UpdateProfiles.plist + https://raw.githubusercontent.com/MagerValp/AutoDMGUpdateProfiles/master/UpdateProfiles.plist LastUpdateProfileCheck 1970-01-01T00:00:00Z UpdateProfileInterval From 1f7ee14278e808e2046943137997bf422f1864f4 Mon Sep 17 00:00:00 2001 From: Per Olofsson Date: Tue, 3 Jun 2014 10:22:57 +0200 Subject: [PATCH 04/37] Added update profile for 10.10. --- AutoDMG/UpdateProfiles.plist | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/AutoDMG/UpdateProfiles.plist b/AutoDMG/UpdateProfiles.plist index a8edf84..3b003a5 100644 --- a/AutoDMG/UpdateProfiles.plist +++ b/AutoDMG/UpdateProfiles.plist @@ -85,9 +85,12 @@ iTunes SafariMav + 10.10-14A238x + + PublicationDate - 2014-05-28T18:40:39Z + 2014-06-03T08:11:00Z Updates AirPortUtility From a1a126fe115be6f1da2c4e3ccc9ce66f70b9360d Mon Sep 17 00:00:00 2001 From: Per Olofsson Date: Tue, 3 Jun 2014 17:46:40 +0200 Subject: [PATCH 05/37] Xcode 6. --- AutoDMG.xcodeproj/project.pbxproj | 2 +- AutoDMG.xcodeproj/xcshareddata/xcschemes/AutoDMG.xcscheme | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/AutoDMG.xcodeproj/project.pbxproj b/AutoDMG.xcodeproj/project.pbxproj index 1b298bf..2d84bf7 100644 --- a/AutoDMG.xcodeproj/project.pbxproj +++ b/AutoDMG.xcodeproj/project.pbxproj @@ -284,7 +284,7 @@ isa = PBXProject; attributes = { CLASSPREFIX = IED; - LastUpgradeCheck = 0510; + LastUpgradeCheck = 0600; ORGANIZATIONNAME = "University of Gothenburg"; TargetAttributes = { 66EA72C817EB1585009B8350 = { diff --git a/AutoDMG.xcodeproj/xcshareddata/xcschemes/AutoDMG.xcscheme b/AutoDMG.xcodeproj/xcshareddata/xcschemes/AutoDMG.xcscheme index 607f9f6..3ba0afa 100644 --- a/AutoDMG.xcodeproj/xcshareddata/xcschemes/AutoDMG.xcscheme +++ b/AutoDMG.xcodeproj/xcshareddata/xcschemes/AutoDMG.xcscheme @@ -1,6 +1,6 @@ Date: Tue, 3 Jun 2014 17:51:27 +0200 Subject: [PATCH 06/37] Add missing AppKit import. --- AutoDMG/IEDAppVersionController.py | 1 + 1 file changed, 1 insertion(+) diff --git a/AutoDMG/IEDAppVersionController.py b/AutoDMG/IEDAppVersionController.py index e92865a..339a256 100644 --- a/AutoDMG/IEDAppVersionController.py +++ b/AutoDMG/IEDAppVersionController.py @@ -8,6 +8,7 @@ # from Foundation import * +from AppKit import * from objc import IBAction, IBOutlet from IEDLog import LogDebug, LogInfo, LogNotice, LogWarning, LogError, LogMessage, LogException From eaaa317779cfee9e5d3db6c3371cec4184604eb0 Mon Sep 17 00:00:00 2001 From: Per Olofsson Date: Sun, 27 Jul 2014 21:40:37 +0200 Subject: [PATCH 07/37] Added fallback for calculating package size requirements. --- AutoDMG/IEDUtil.py | 136 ++++++++++++++++++++++++++++++++++++--------- 1 file changed, 111 insertions(+), 25 deletions(-) diff --git a/AutoDMG/IEDUtil.py b/AutoDMG/IEDUtil.py index a0ef5fa..654ccc2 100644 --- a/AutoDMG/IEDUtil.py +++ b/AutoDMG/IEDUtil.py @@ -15,14 +15,8 @@ import subprocess import tempfile import shutil +from xml.etree import ElementTree from IEDLog import LogDebug, LogInfo, LogNotice, LogWarning, LogError, LogMessage -try: - IEDMountInfo = objc.lookUpClass(u"IEDMountInfo") -except objc.nosuchclass_error: - # Create a dummy class to allow import from pure python for testing. Will - # crash when an attempt is made to use the class. - class IEDMountInfo(object): - pass class IEDUtil(NSObject): @@ -100,10 +94,26 @@ def findMountPoint_(cls, path): @classmethod def getInstalledPkgSize_(cls, pkgPath): # For apps just return the size on disk. - name, ext = os.path.splitext(pkgPath) + ext = os.path.splitext(pkgPath)[1].lower() if ext == u".app": return cls.getPackageSize_(pkgPath) - # For packages try to get the size requirements with installer. + elif ext in (u".pkg", u".mpkg"): + # For packages first try to get the size requirements with + # installer. + size = cls.getInstalledPkgSizeFromInstaller_(pkgPath) + if size is None: + # If this fails, manually extract the size requirements from + # the package. + return cls.calculateInstalledPkgSize_(pkgPath) + else: + return size + else: + LogError(u"Don't know how to calculate installed size for '%s'", + pkgPath) + return None + + @classmethod + def getInstalledPkgSizeFromInstaller_(cls, pkgPath): pkgFileName = os.path.os.path.basename(pkgPath) tempdir = tempfile.mkdtemp() try: @@ -123,21 +133,9 @@ def getInstalledPkgSize_(cls, pkgPath): shutil.rmtree(tempdir) except BaseException as e: LogWarning(u"Unable to remove tempdir: %@", unicode(e)) - # Try to handle some common scenarios when installer fails. - if p.returncode == -11: - LogWarning(u"Estimating package size since installer -pkginfo " - u"'%@' crashed", pkgPath) - return cls.getPackageSize_(pkgPath) * 2 - elif p.returncode != 0: - mountPoints = IEDMountInfo.getMountPoints() - fsInfo = mountPoints[cls.findMountPoint_(pkgPath)] - LogWarning(u"Estimating package size since installer -pkginfo " - u"failed and '%@' is on a '%@' filesystem", - pkgPath, fsInfo[u"fstypename"]) - if os.path.basename(pkgPath) == u"OSInstall.mpkg": - return 8 * 1024 * 1024 * 1024 - else: - return cls.getPackageSize_(pkgPath) * 2 + if p.returncode != 0: + LogDebug(u"/usr/sbin/installer failed to determine size requirements") + return None outData = NSData.dataWithBytes_length_(out, len(out)) plist, format, error = NSPropertyListSerialization.propertyListWithData_options_format_error_(outData, NSPropertyListImmutable, @@ -146,5 +144,93 @@ def getInstalledPkgSize_(cls, pkgPath): if not plist: LogError(u"Error decoding plist: %@", error) return None - LogDebug(u"%@ requires %@", pkgPath, cls.formatBytes_(int(plist[u"Size"]) * 1024)) + LogDebug(u"Installer says %@ requires %@", pkgPath, cls.formatBytes_(int(plist[u"Size"]) * 1024)) return int(plist[u"Size"]) * 1024 + + @classmethod + def calculateInstalledPkgSize_(cls, pkgPath): + if os.path.isdir(pkgPath): + size = cls.getBundlePkgInfo_(pkgPath) + else: + size = cls.getFlatPkgInfo_(pkgPath) + if size is None: + # If all else fails, estimate package size requirements. + LogWarning(u"Estimating package size for '%@'", pkgPath) + size = cls.getPackageSize_(pkgPath) * 2 + LogDebug(u"%@ needs %@", pkgPath, cls.formatBytes_(size)) + return size + + @classmethod + def getBundlePkgInfo_(cls, pkgPath): + distPath = os.path.join(pkgPath, u"Contents", u"distribution.dist") + infoPlistPath = os.path.join(pkgPath, u"Contents", u"Info.plist") + if os.path.exists(distPath): + return cls.getSizeFromDistribution_(distPath) + elif os.path.exists(infoPlistPath): + return cls.getSizeFromPkgInfoPlist_(infoPlistPath) + else: + LogError(u"No distribution.dist or Info.plist found in '%@'", pkgPath) + return None + + @classmethod + def getFlatPkgInfo_(cls, pkgPath): + tempdir = tempfile.mkdtemp() + try: + # Extract to tempdir, excluding all except Distribution and + # PackageInfo. + subprocess.check_output([u"/usr/bin/xar", + u"-x", + u"--exclude", u"^[^DP]", + u"--exclude", u"Payload", + u"-C", tempdir, + u"-f", pkgPath]) + distPath = os.path.join(tempdir, u"Distribution") + pkgInfoPath = os.path.join(tempdir, u"PackageInfo") + if os.path.exists(distPath): + return cls.getSizeFromDistribution_(distPath) + elif os.path.exists(pkgInfoPath): + return cls.getSizeFromPackageInfo_(pkgInfoPath) + else: + LogError(u"No Distribution or PackageInfo found in '%@'", pkgPath) + return None + except subprocess.CalledProcessError as e: + LogError(u"xar failed with return code %d", e.returncode) + return None + finally: + try: + shutil.rmtree(tempdir) + except Exception as e: + LogWarning(u"Unable to remove tempdir: %@", unicode(e)) + + @classmethod + def getSizeFromDistribution_(cls, distPath): + kbytes = 0 + try: + tree = ElementTree.parse(distPath) + for pkgref in tree.iterfind(u"pkg-ref[@installKBytes]"): + kbytes += int(pkgref.get(u"installKBytes")) + except Exception as e: + LogError(u"Failed parsing '%@': %@", distPath, unicode(e)) + return None + return kbytes * 1024 + + @classmethod + def getSizeFromPackageInfo_(cls, pkgInfoPath): + kbytes = 0 + try: + tree = ElementTree.parse(pkgInfoPath) + for payload in tree.iterfind(u"payload[@installKBytes]"): + kbytes += int(payload.get(u"installKBytes")) + except Exception as e: + LogError(u"Failed parsing '%@': %@", pkgInfoPath, unicode(e)) + return None + return kbytes * 1024 + + @classmethod + def getSizeFromPkgInfoPlist_(cls, infoPlistPath): + try: + infoDict = NSDictionary.dictionaryWithContentsOfFile_(infoPlistPath) + return infoDict[u"IFPkgFlagInstalledSize"] * 1024 + except Exception as e: + LogError(u"Failed parsing '%@': %@", infoPlistPath, unicode(e)) + return None From d26127530d5fb7c3d2c999fb3309e3a159e93809 Mon Sep 17 00:00:00 2001 From: Per Olofsson Date: Sun, 27 Jul 2014 21:41:21 +0200 Subject: [PATCH 08/37] Removed unused class. --- AutoDMG.xcodeproj/project.pbxproj | 6 ----- AutoDMG/IEDMountInfo.h | 15 ------------ AutoDMG/IEDMountInfo.m | 38 ------------------------------- 3 files changed, 59 deletions(-) delete mode 100644 AutoDMG/IEDMountInfo.h delete mode 100644 AutoDMG/IEDMountInfo.m diff --git a/AutoDMG.xcodeproj/project.pbxproj b/AutoDMG.xcodeproj/project.pbxproj index 2d84bf7..396a83d 100644 --- a/AutoDMG.xcodeproj/project.pbxproj +++ b/AutoDMG.xcodeproj/project.pbxproj @@ -8,7 +8,6 @@ /* Begin PBXBuildFile section */ 0506B97C17F0849C0011CCC2 /* AutoDMG.iconset in Resources */ = {isa = PBXBuildFile; fileRef = 0506B97B17F0849C0011CCC2 /* AutoDMG.iconset */; }; - 051626A618E2D1BE000288D1 /* IEDMountInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 051626A518E2D1BE000288D1 /* IEDMountInfo.m */; }; 051B177117F446560026E12B /* progresswatcher.py in Resources */ = {isa = PBXBuildFile; fileRef = 051B177017F446560026E12B /* progresswatcher.py */; }; 05429D761816715300CD61E6 /* Package blue arrow.png in Resources */ = {isa = PBXBuildFile; fileRef = 05429D721816715300CD61E6 /* Package blue arrow.png */; }; 05429D771816715300CD61E6 /* Package blue arrow@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 05429D731816715300CD61E6 /* Package blue arrow@2x.png */; }; @@ -54,8 +53,6 @@ /* Begin PBXFileReference section */ 0506B97B17F0849C0011CCC2 /* AutoDMG.iconset */ = {isa = PBXFileReference; lastKnownFileType = folder.iconset; path = AutoDMG.iconset; sourceTree = ""; }; - 051626A418E2D1BE000288D1 /* IEDMountInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IEDMountInfo.h; sourceTree = ""; }; - 051626A518E2D1BE000288D1 /* IEDMountInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IEDMountInfo.m; sourceTree = ""; }; 051B177017F446560026E12B /* progresswatcher.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = progresswatcher.py; sourceTree = ""; }; 05429D721816715300CD61E6 /* Package blue arrow.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Package blue arrow.png"; sourceTree = ""; }; 05429D731816715300CD61E6 /* Package blue arrow@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Package blue arrow@2x.png"; sourceTree = ""; }; @@ -172,8 +169,6 @@ children = ( 66EA72DA17EB1586009B8350 /* main.m */, 66EA72DC17EB1587009B8350 /* AutoDMG-Prefix.pch */, - 051626A418E2D1BE000288D1 /* IEDMountInfo.h */, - 051626A518E2D1BE000288D1 /* IEDMountInfo.m */, ); name = ObjC; sourceTree = ""; @@ -408,7 +403,6 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 051626A618E2D1BE000288D1 /* IEDMountInfo.m in Sources */, 66EA72DB17EB1586009B8350 /* main.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/AutoDMG/IEDMountInfo.h b/AutoDMG/IEDMountInfo.h deleted file mode 100644 index dcb7768..0000000 --- a/AutoDMG/IEDMountInfo.h +++ /dev/null @@ -1,15 +0,0 @@ -// -// IEDMountInfo.h -// AutoDMG -// -// Created by Per Olofsson on 2014-03-26. -// Copyright 2013-2014 Per Olofsson, University of Gothenburg. All rights reserved. -// - -#import - -@interface IEDMountInfo : NSObject - -+ (NSDictionary *)getMountPoints; - -@end diff --git a/AutoDMG/IEDMountInfo.m b/AutoDMG/IEDMountInfo.m deleted file mode 100644 index aeafe1c..0000000 --- a/AutoDMG/IEDMountInfo.m +++ /dev/null @@ -1,38 +0,0 @@ -// -// IEDMountInfo.m -// AutoDMG -// -// Created by Per Olofsson on 2014-03-26. -// Copyright 2013-2014 Per Olofsson, University of Gothenburg. All rights reserved. -// - -#include -#include -#import "IEDMountInfo.h" - -@implementation IEDMountInfo - -+ (NSDictionary *)getMountPoints -{ - struct statfs *mntbuf; - int mntsize; - - if ((mntsize = getmntinfo(&mntbuf, MNT_NOWAIT)) == 0) { - NSLog(@"getmntinfo failed"); - return NULL; - } - NSMutableDictionary *mountPoints = [[NSMutableDictionary alloc] init]; - for (int i = 0; i < mntsize; i++) { -// NSLog(@"f_mntonname: %s (%s, %s)", -// mntbuf[i].f_mntonname, -// mntbuf[i].f_fstypename, -// mntbuf[i].f_flags & MNT_LOCAL ? "local" : "remote"); - NSString *mntonname = [NSString stringWithUTF8String:mntbuf[i].f_mntonname]; - NSString *fstypename = [NSString stringWithUTF8String:mntbuf[i].f_fstypename]; - mountPoints[mntonname] = @{@"fstypename": fstypename, - @"islocal": mntbuf[i].f_flags & MNT_LOCAL ? @true : @false}; - } - return mountPoints; -} - -@end From 749d065a193db73ec73b183e3693d61f063af822 Mon Sep 17 00:00:00 2001 From: Per Olofsson Date: Tue, 3 Jun 2014 08:39:52 +0200 Subject: [PATCH 09/37] Set version 1.5b. --- AutoDMG/AutoDMG-Info.plist | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AutoDMG/AutoDMG-Info.plist b/AutoDMG/AutoDMG-Info.plist index fdaab7a..634593a 100644 --- a/AutoDMG/AutoDMG-Info.plist +++ b/AutoDMG/AutoDMG-Info.plist @@ -36,7 +36,7 @@ CFBundlePackageType APPL CFBundleShortVersionString - 1.4.3 + 1.5b CFBundleSignature ???? CFBundleVersion From 59758ac4a4c3150c401a088a4fb205989dfa95b8 Mon Sep 17 00:00:00 2001 From: Per Olofsson Date: Tue, 3 Jun 2014 10:07:14 +0200 Subject: [PATCH 10/37] Stub out broken installer size check. --- AutoDMG/IEDUtil.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/AutoDMG/IEDUtil.py b/AutoDMG/IEDUtil.py index 76cabbb..a0ef5fa 100644 --- a/AutoDMG/IEDUtil.py +++ b/AutoDMG/IEDUtil.py @@ -131,14 +131,13 @@ def getInstalledPkgSize_(cls, pkgPath): elif p.returncode != 0: mountPoints = IEDMountInfo.getMountPoints() fsInfo = mountPoints[cls.findMountPoint_(pkgPath)] - if not fsInfo[u"islocal"]: - LogWarning(u"Estimating package size since installer -pkginfo " - u"failed and '%@' is on a remote (%@) filesystem", - pkgPath, fsInfo[u"fstypename"]) - return cls.getPackageSize_(pkgPath) * 2 + LogWarning(u"Estimating package size since installer -pkginfo " + u"failed and '%@' is on a '%@' filesystem", + pkgPath, fsInfo[u"fstypename"]) + if os.path.basename(pkgPath) == u"OSInstall.mpkg": + return 8 * 1024 * 1024 * 1024 else: - LogError(u"installer -pkginfo -pkg '%@' failed with exit code %d", pkgPath, p.returncode) - return None + return cls.getPackageSize_(pkgPath) * 2 outData = NSData.dataWithBytes_length_(out, len(out)) plist, format, error = NSPropertyListSerialization.propertyListWithData_options_format_error_(outData, NSPropertyListImmutable, From d9394e1c612b377cd792145f47c4e216fb030efd Mon Sep 17 00:00:00 2001 From: Per Olofsson Date: Tue, 3 Jun 2014 17:46:40 +0200 Subject: [PATCH 11/37] Xcode 6. --- AutoDMG.xcodeproj/project.pbxproj | 2 +- AutoDMG.xcodeproj/xcshareddata/xcschemes/AutoDMG.xcscheme | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/AutoDMG.xcodeproj/project.pbxproj b/AutoDMG.xcodeproj/project.pbxproj index 1b298bf..2d84bf7 100644 --- a/AutoDMG.xcodeproj/project.pbxproj +++ b/AutoDMG.xcodeproj/project.pbxproj @@ -284,7 +284,7 @@ isa = PBXProject; attributes = { CLASSPREFIX = IED; - LastUpgradeCheck = 0510; + LastUpgradeCheck = 0600; ORGANIZATIONNAME = "University of Gothenburg"; TargetAttributes = { 66EA72C817EB1585009B8350 = { diff --git a/AutoDMG.xcodeproj/xcshareddata/xcschemes/AutoDMG.xcscheme b/AutoDMG.xcodeproj/xcshareddata/xcschemes/AutoDMG.xcscheme index 607f9f6..3ba0afa 100644 --- a/AutoDMG.xcodeproj/xcshareddata/xcschemes/AutoDMG.xcscheme +++ b/AutoDMG.xcodeproj/xcshareddata/xcschemes/AutoDMG.xcscheme @@ -1,6 +1,6 @@ Date: Sun, 27 Jul 2014 21:40:37 +0200 Subject: [PATCH 12/37] Added fallback for calculating package size requirements. --- AutoDMG/IEDUtil.py | 136 ++++++++++++++++++++++++++++++++++++--------- 1 file changed, 111 insertions(+), 25 deletions(-) diff --git a/AutoDMG/IEDUtil.py b/AutoDMG/IEDUtil.py index a0ef5fa..654ccc2 100644 --- a/AutoDMG/IEDUtil.py +++ b/AutoDMG/IEDUtil.py @@ -15,14 +15,8 @@ import subprocess import tempfile import shutil +from xml.etree import ElementTree from IEDLog import LogDebug, LogInfo, LogNotice, LogWarning, LogError, LogMessage -try: - IEDMountInfo = objc.lookUpClass(u"IEDMountInfo") -except objc.nosuchclass_error: - # Create a dummy class to allow import from pure python for testing. Will - # crash when an attempt is made to use the class. - class IEDMountInfo(object): - pass class IEDUtil(NSObject): @@ -100,10 +94,26 @@ def findMountPoint_(cls, path): @classmethod def getInstalledPkgSize_(cls, pkgPath): # For apps just return the size on disk. - name, ext = os.path.splitext(pkgPath) + ext = os.path.splitext(pkgPath)[1].lower() if ext == u".app": return cls.getPackageSize_(pkgPath) - # For packages try to get the size requirements with installer. + elif ext in (u".pkg", u".mpkg"): + # For packages first try to get the size requirements with + # installer. + size = cls.getInstalledPkgSizeFromInstaller_(pkgPath) + if size is None: + # If this fails, manually extract the size requirements from + # the package. + return cls.calculateInstalledPkgSize_(pkgPath) + else: + return size + else: + LogError(u"Don't know how to calculate installed size for '%s'", + pkgPath) + return None + + @classmethod + def getInstalledPkgSizeFromInstaller_(cls, pkgPath): pkgFileName = os.path.os.path.basename(pkgPath) tempdir = tempfile.mkdtemp() try: @@ -123,21 +133,9 @@ def getInstalledPkgSize_(cls, pkgPath): shutil.rmtree(tempdir) except BaseException as e: LogWarning(u"Unable to remove tempdir: %@", unicode(e)) - # Try to handle some common scenarios when installer fails. - if p.returncode == -11: - LogWarning(u"Estimating package size since installer -pkginfo " - u"'%@' crashed", pkgPath) - return cls.getPackageSize_(pkgPath) * 2 - elif p.returncode != 0: - mountPoints = IEDMountInfo.getMountPoints() - fsInfo = mountPoints[cls.findMountPoint_(pkgPath)] - LogWarning(u"Estimating package size since installer -pkginfo " - u"failed and '%@' is on a '%@' filesystem", - pkgPath, fsInfo[u"fstypename"]) - if os.path.basename(pkgPath) == u"OSInstall.mpkg": - return 8 * 1024 * 1024 * 1024 - else: - return cls.getPackageSize_(pkgPath) * 2 + if p.returncode != 0: + LogDebug(u"/usr/sbin/installer failed to determine size requirements") + return None outData = NSData.dataWithBytes_length_(out, len(out)) plist, format, error = NSPropertyListSerialization.propertyListWithData_options_format_error_(outData, NSPropertyListImmutable, @@ -146,5 +144,93 @@ def getInstalledPkgSize_(cls, pkgPath): if not plist: LogError(u"Error decoding plist: %@", error) return None - LogDebug(u"%@ requires %@", pkgPath, cls.formatBytes_(int(plist[u"Size"]) * 1024)) + LogDebug(u"Installer says %@ requires %@", pkgPath, cls.formatBytes_(int(plist[u"Size"]) * 1024)) return int(plist[u"Size"]) * 1024 + + @classmethod + def calculateInstalledPkgSize_(cls, pkgPath): + if os.path.isdir(pkgPath): + size = cls.getBundlePkgInfo_(pkgPath) + else: + size = cls.getFlatPkgInfo_(pkgPath) + if size is None: + # If all else fails, estimate package size requirements. + LogWarning(u"Estimating package size for '%@'", pkgPath) + size = cls.getPackageSize_(pkgPath) * 2 + LogDebug(u"%@ needs %@", pkgPath, cls.formatBytes_(size)) + return size + + @classmethod + def getBundlePkgInfo_(cls, pkgPath): + distPath = os.path.join(pkgPath, u"Contents", u"distribution.dist") + infoPlistPath = os.path.join(pkgPath, u"Contents", u"Info.plist") + if os.path.exists(distPath): + return cls.getSizeFromDistribution_(distPath) + elif os.path.exists(infoPlistPath): + return cls.getSizeFromPkgInfoPlist_(infoPlistPath) + else: + LogError(u"No distribution.dist or Info.plist found in '%@'", pkgPath) + return None + + @classmethod + def getFlatPkgInfo_(cls, pkgPath): + tempdir = tempfile.mkdtemp() + try: + # Extract to tempdir, excluding all except Distribution and + # PackageInfo. + subprocess.check_output([u"/usr/bin/xar", + u"-x", + u"--exclude", u"^[^DP]", + u"--exclude", u"Payload", + u"-C", tempdir, + u"-f", pkgPath]) + distPath = os.path.join(tempdir, u"Distribution") + pkgInfoPath = os.path.join(tempdir, u"PackageInfo") + if os.path.exists(distPath): + return cls.getSizeFromDistribution_(distPath) + elif os.path.exists(pkgInfoPath): + return cls.getSizeFromPackageInfo_(pkgInfoPath) + else: + LogError(u"No Distribution or PackageInfo found in '%@'", pkgPath) + return None + except subprocess.CalledProcessError as e: + LogError(u"xar failed with return code %d", e.returncode) + return None + finally: + try: + shutil.rmtree(tempdir) + except Exception as e: + LogWarning(u"Unable to remove tempdir: %@", unicode(e)) + + @classmethod + def getSizeFromDistribution_(cls, distPath): + kbytes = 0 + try: + tree = ElementTree.parse(distPath) + for pkgref in tree.iterfind(u"pkg-ref[@installKBytes]"): + kbytes += int(pkgref.get(u"installKBytes")) + except Exception as e: + LogError(u"Failed parsing '%@': %@", distPath, unicode(e)) + return None + return kbytes * 1024 + + @classmethod + def getSizeFromPackageInfo_(cls, pkgInfoPath): + kbytes = 0 + try: + tree = ElementTree.parse(pkgInfoPath) + for payload in tree.iterfind(u"payload[@installKBytes]"): + kbytes += int(payload.get(u"installKBytes")) + except Exception as e: + LogError(u"Failed parsing '%@': %@", pkgInfoPath, unicode(e)) + return None + return kbytes * 1024 + + @classmethod + def getSizeFromPkgInfoPlist_(cls, infoPlistPath): + try: + infoDict = NSDictionary.dictionaryWithContentsOfFile_(infoPlistPath) + return infoDict[u"IFPkgFlagInstalledSize"] * 1024 + except Exception as e: + LogError(u"Failed parsing '%@': %@", infoPlistPath, unicode(e)) + return None From 5b9793fe819a298b9b826974bd2847026e3d6515 Mon Sep 17 00:00:00 2001 From: Per Olofsson Date: Sun, 27 Jul 2014 21:41:21 +0200 Subject: [PATCH 13/37] Removed unused class. --- AutoDMG.xcodeproj/project.pbxproj | 6 ----- AutoDMG/IEDMountInfo.h | 15 ------------ AutoDMG/IEDMountInfo.m | 38 ------------------------------- 3 files changed, 59 deletions(-) delete mode 100644 AutoDMG/IEDMountInfo.h delete mode 100644 AutoDMG/IEDMountInfo.m diff --git a/AutoDMG.xcodeproj/project.pbxproj b/AutoDMG.xcodeproj/project.pbxproj index 2d84bf7..396a83d 100644 --- a/AutoDMG.xcodeproj/project.pbxproj +++ b/AutoDMG.xcodeproj/project.pbxproj @@ -8,7 +8,6 @@ /* Begin PBXBuildFile section */ 0506B97C17F0849C0011CCC2 /* AutoDMG.iconset in Resources */ = {isa = PBXBuildFile; fileRef = 0506B97B17F0849C0011CCC2 /* AutoDMG.iconset */; }; - 051626A618E2D1BE000288D1 /* IEDMountInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 051626A518E2D1BE000288D1 /* IEDMountInfo.m */; }; 051B177117F446560026E12B /* progresswatcher.py in Resources */ = {isa = PBXBuildFile; fileRef = 051B177017F446560026E12B /* progresswatcher.py */; }; 05429D761816715300CD61E6 /* Package blue arrow.png in Resources */ = {isa = PBXBuildFile; fileRef = 05429D721816715300CD61E6 /* Package blue arrow.png */; }; 05429D771816715300CD61E6 /* Package blue arrow@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 05429D731816715300CD61E6 /* Package blue arrow@2x.png */; }; @@ -54,8 +53,6 @@ /* Begin PBXFileReference section */ 0506B97B17F0849C0011CCC2 /* AutoDMG.iconset */ = {isa = PBXFileReference; lastKnownFileType = folder.iconset; path = AutoDMG.iconset; sourceTree = ""; }; - 051626A418E2D1BE000288D1 /* IEDMountInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IEDMountInfo.h; sourceTree = ""; }; - 051626A518E2D1BE000288D1 /* IEDMountInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IEDMountInfo.m; sourceTree = ""; }; 051B177017F446560026E12B /* progresswatcher.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = progresswatcher.py; sourceTree = ""; }; 05429D721816715300CD61E6 /* Package blue arrow.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Package blue arrow.png"; sourceTree = ""; }; 05429D731816715300CD61E6 /* Package blue arrow@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Package blue arrow@2x.png"; sourceTree = ""; }; @@ -172,8 +169,6 @@ children = ( 66EA72DA17EB1586009B8350 /* main.m */, 66EA72DC17EB1587009B8350 /* AutoDMG-Prefix.pch */, - 051626A418E2D1BE000288D1 /* IEDMountInfo.h */, - 051626A518E2D1BE000288D1 /* IEDMountInfo.m */, ); name = ObjC; sourceTree = ""; @@ -408,7 +403,6 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 051626A618E2D1BE000288D1 /* IEDMountInfo.m in Sources */, 66EA72DB17EB1586009B8350 /* main.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/AutoDMG/IEDMountInfo.h b/AutoDMG/IEDMountInfo.h deleted file mode 100644 index dcb7768..0000000 --- a/AutoDMG/IEDMountInfo.h +++ /dev/null @@ -1,15 +0,0 @@ -// -// IEDMountInfo.h -// AutoDMG -// -// Created by Per Olofsson on 2014-03-26. -// Copyright 2013-2014 Per Olofsson, University of Gothenburg. All rights reserved. -// - -#import - -@interface IEDMountInfo : NSObject - -+ (NSDictionary *)getMountPoints; - -@end diff --git a/AutoDMG/IEDMountInfo.m b/AutoDMG/IEDMountInfo.m deleted file mode 100644 index aeafe1c..0000000 --- a/AutoDMG/IEDMountInfo.m +++ /dev/null @@ -1,38 +0,0 @@ -// -// IEDMountInfo.m -// AutoDMG -// -// Created by Per Olofsson on 2014-03-26. -// Copyright 2013-2014 Per Olofsson, University of Gothenburg. All rights reserved. -// - -#include -#include -#import "IEDMountInfo.h" - -@implementation IEDMountInfo - -+ (NSDictionary *)getMountPoints -{ - struct statfs *mntbuf; - int mntsize; - - if ((mntsize = getmntinfo(&mntbuf, MNT_NOWAIT)) == 0) { - NSLog(@"getmntinfo failed"); - return NULL; - } - NSMutableDictionary *mountPoints = [[NSMutableDictionary alloc] init]; - for (int i = 0; i < mntsize; i++) { -// NSLog(@"f_mntonname: %s (%s, %s)", -// mntbuf[i].f_mntonname, -// mntbuf[i].f_fstypename, -// mntbuf[i].f_flags & MNT_LOCAL ? "local" : "remote"); - NSString *mntonname = [NSString stringWithUTF8String:mntbuf[i].f_mntonname]; - NSString *fstypename = [NSString stringWithUTF8String:mntbuf[i].f_fstypename]; - mountPoints[mntonname] = @{@"fstypename": fstypename, - @"islocal": mntbuf[i].f_flags & MNT_LOCAL ? @true : @false}; - } - return mountPoints; -} - -@end From f598e41375156d1b7c104ef9dcbee5e16db85063 Mon Sep 17 00:00:00 2001 From: Per Olofsson Date: Mon, 28 Jul 2014 14:45:19 +0200 Subject: [PATCH 14/37] 10.10 SDK. --- AutoDMG.xcodeproj/project.pbxproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/AutoDMG.xcodeproj/project.pbxproj b/AutoDMG.xcodeproj/project.pbxproj index 396a83d..2db09fe 100644 --- a/AutoDMG.xcodeproj/project.pbxproj +++ b/AutoDMG.xcodeproj/project.pbxproj @@ -471,7 +471,7 @@ GCC_WARN_UNUSED_VARIABLE = YES; MACOSX_DEPLOYMENT_TARGET = 10.8; ONLY_ACTIVE_ARCH = YES; - SDKROOT = macosx10.8; + SDKROOT = macosx; }; name = Debug; }; @@ -503,7 +503,7 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; MACOSX_DEPLOYMENT_TARGET = 10.8; - SDKROOT = macosx10.8; + SDKROOT = macosx; }; name = Release; }; From 45512bdef8b44e4b1e4c4bcfb7e3a421931b208d Mon Sep 17 00:00:00 2001 From: Per Olofsson Date: Mon, 28 Jul 2014 14:59:40 +0200 Subject: [PATCH 15/37] Use kramdown for markdown processing of README. --- AutoDMG.xcodeproj/xcshareddata/xcschemes/AutoDMG.xcscheme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AutoDMG.xcodeproj/xcshareddata/xcschemes/AutoDMG.xcscheme b/AutoDMG.xcodeproj/xcshareddata/xcschemes/AutoDMG.xcscheme index 3ba0afa..5c0d87c 100644 --- a/AutoDMG.xcodeproj/xcshareddata/xcschemes/AutoDMG.xcscheme +++ b/AutoDMG.xcodeproj/xcshareddata/xcschemes/AutoDMG.xcscheme @@ -87,7 +87,7 @@ ActionType = "Xcode.IDEStandardExecutionActionsCore.ExecutionActionType.ShellScriptAction"> Date: Mon, 28 Jul 2014 14:59:57 +0200 Subject: [PATCH 16/37] Imported latest UpdateProfiles. --- AutoDMG/UpdateProfiles.plist | 112 ++++++----------------------------- 1 file changed, 19 insertions(+), 93 deletions(-) diff --git a/AutoDMG/UpdateProfiles.plist b/AutoDMG/UpdateProfiles.plist index 3b003a5..fe18b8a 100644 --- a/AutoDMG/UpdateProfiles.plist +++ b/AutoDMG/UpdateProfiles.plist @@ -34,7 +34,7 @@ 12E55 12F37 - 10.9.3-13D65 + 10.9.4-13E28 13A2093 13A3017 @@ -45,20 +45,16 @@ 13B4116 13B42 13C64 + 13D65 Profiles - 10.7.5-11G63 + 10.10-14A238x + + + 10.10-14A299l - FlashbackRemovalLion - MigAsstLion - AirPortUtility - RemoteDesktopClient - Security2014-002Lion - iTunes - SafariLion - AppStoreLion 10.8.5-12F2015 @@ -67,7 +63,7 @@ AppStoreML AirPortUtility SafariML - Security2014-002ML + Security2014-003ML 10.8.5-12F45 @@ -76,21 +72,17 @@ AppStoreML AirPortUtility SafariML - Security2014-002ML + Security2014-003ML - 10.9.3-13D65 + 10.9.4-13E28 iBooks BookKit iTunes - SafariMav - - 10.10-14A238x - PublicationDate - 2014-06-03T08:11:00Z + 2014-07-26T13:56:16Z Updates AirPortUtility @@ -104,17 +96,6 @@ url http://support.apple.com/downloads/DL1664/en_US/AirPortUtility6.3.1.dmg - AppStoreLion - - name - Mac App Store Update - sha1 - c636132638641b027eecd8b0c00186b5b80f9ff1 - size - 4367748 - url - http://swcdn.apple.com/content/downloads/10/36/031-1521/hibwdnqmznyahx2tyiu7h40djjz79cwd9c/AppStoreUpdate.pkg - AppStoreML name @@ -137,28 +118,6 @@ url http://swcdn.apple.com/content/downloads/49/62/031-1878/hfuvnhh956akbythuxg2im9pdnm3c263sf/BookKitDelta.pkg - FlashbackRemovalLion - - name - Flashback malware removal tool - sha1 - 3c840f5b72773d16be00b30be01e70ce2a2447a6 - size - 554994 - url - http://support.apple.com/downloads/DL1517/en_US/FlashbackMalwareRemover.dmg - - MigAsstLion - - name - Migration Assistant Update for Mac OS X Lion v1.0 - sha1 - dde746ea774aa9568aa5149f787f4207b1f1f131 - size - 5883156 - url - http://support.apple.com/downloads/DL1695/en_US/LionMigrationAssistant.dmg - RemoteDesktopClient name @@ -170,60 +129,27 @@ url http://support.apple.com/downloads/DL1710/en_US/RemoteDesktopClient371.dmg - SafariLion - - name - Safari 6.1.4 for Lion - sha1 - 6a4f10f753a17ca9097547012682707f6aedfd9c - size - 54412045 - url - http://swcdn.apple.com/content/downloads/17/37/031-02224/8gxq9vhxcra3e5adif9fhvafxoefypqvlx/Safari6.1.4Lion.pkg - SafariML name - Safari 6.1.4 for Mountain Lion - sha1 - 0ee38570ab44621cf9a3bd1df9701898893713e9 - size - 52932672 - url - http://swcdn.apple.com/content/downloads/20/28/031-02225/l4fvklwmcf442w0ujno5ege16wcx2ncvzm/Safari6.1.4MountainLion.pkg - - SafariMav - - name - Safari 7.0.4 for Mavericks - sha1 - fd296edcf8e81176a4d1c2cb4899aed970be236c - size - 53713770 - url - http://swcdn.apple.com/content/downloads/27/18/031-02230/gsknnssco736jswk1fg33dmym5ppgy4d04/Safari7.0.4Mavericks.pkg - - Security2014-002Lion - - name - Security Update 2014-002 (Lion) + Safari 6.1.5 for Mountain Lion sha1 - 26e70f01419a63a316e1b96800c2f5a0ee5c91cd + ba1c488c2bfaff5daaa054b410a300cfb105f237 size - 126949545 + 52968768 url - http://support.apple.com/downloads/DL1738/en_US/SecUpd2014-002Lion.dmg + http://swcdn.apple.com/content/downloads/29/34/031-03460/678vnpdyxn2w2wb62rtoi0635wcx1qtb60/Safari6.1.5MountainLion.pkg - Security2014-002ML + Security2014-003ML name - Security Update 2014-002 (Mountain Lion) + Security Update 2014-003 (Mountain Lion) sha1 - cd60f03a52e03b43a619bbd1f024c205d27876be + 41ec102c8738b818c32463716a5445c8b7885b12 size - 135859668 + 139284575 url - http://support.apple.com/downloads/DL1737/en_US/SecUpd2014-002MtLion.dmg + http://support.apple.com/downloads/DL1753/en_US/SecUpd2014-003MtLion.dmg iBooks From 1ab51c29257393af8154de8d8112708129caa212 Mon Sep 17 00:00:00 2001 From: Per Olofsson Date: Tue, 19 Aug 2014 19:10:55 +0200 Subject: [PATCH 17/37] Better error handling when downloads fail. --- AutoDMG/IEDUpdateCache.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/AutoDMG/IEDUpdateCache.py b/AutoDMG/IEDUpdateCache.py index 94e5980..9935e17 100644 --- a/AutoDMG/IEDUpdateCache.py +++ b/AutoDMG/IEDUpdateCache.py @@ -164,6 +164,12 @@ def connection_didFailWithError_(self, connection, error): def connection_didReceiveResponse_(self, connection, response): LogDebug(u"%@ status code %d", self.package.name(), response.statusCode()) + if response.statusCode() >= 400: + connection.cancel() + self.fileHandle.closeFile() + error = u"%s failed with HTTP %d" % (self.package.name(), response.statusCode()) + self.delegate.downloadFailed_withError_(self.package, error) + self.delegate.downloadAllDone() def connection_didReceiveData_(self, connection, data): try: @@ -174,6 +180,7 @@ def connection_didReceiveData_(self, connection, data): error = u"Writing to %s failed: %s" % (self.cacheTmpPath_(self.package.sha1()), unicode(e)) self.fileHandle.closeFile() self.delegate.downloadFailed_withError_(self.package, error) + self.delegate.downloadAllDone() return self.checksum.update(data) self.bytesReceived += data.length() @@ -206,6 +213,7 @@ def connectionDidFinishLoading_(self, connection): self.delegate.downloadSucceeded_(self.package) self.downloadNextUpdate() else: - error = u"Expected sha1 checksum %s but got %s" % (sha1.lower(), m.hexdigest().lower()) + error = u"Expected sha1 checksum %s but got %s" % (self.package.sha1().lower(), self.checksum.hexdigest().lower()) LogError(error) self.delegate.downloadFailed_withError_(self.package, error) + self.delegate.downloadAllDone() From bf1feba24c8f7f3c8fa548bbfff8d54ad6d4a076 Mon Sep 17 00:00:00 2001 From: Per Olofsson Date: Wed, 20 Aug 2014 14:48:37 +0200 Subject: [PATCH 18/37] Verify password before building. --- AutoDMG/IEDCLIController.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/AutoDMG/IEDCLIController.py b/AutoDMG/IEDCLIController.py index aa90fb2..1b069a9 100644 --- a/AutoDMG/IEDCLIController.py +++ b/AutoDMG/IEDCLIController.py @@ -9,6 +9,7 @@ from Foundation import * from AppKit import * +from Collaboration import CBIdentity, CBIdentityAuthority import os import sys @@ -199,8 +200,13 @@ def cmdBuild_(self, args): # If we're not running as root get the password for authentication. if os.getuid() != 0: - username = getpass.getuser() - password = getpass.getpass(u"Password for %s: " % username) + username = NSUserName() + currentUser = CBIdentity.identityWithName_authority_(username, CBIdentityAuthority.defaultIdentityAuthority()) + passwordOK = False + while not passwordOK: + password = getpass.getpass(u"Password for %s: " % username).decode(u"utf-8") + if currentUser.authenticateWithPassword_(password): + passwordOK = True self.workflow.setAuthUsername_(username) self.workflow.setAuthPassword_(password) From fa697d2870ed2e5b18e8a494ae957ec776a5c1b6 Mon Sep 17 00:00:00 2001 From: Per Olofsson Date: Tue, 3 Jun 2014 08:39:52 +0200 Subject: [PATCH 19/37] Set version 1.5b. --- AutoDMG/AutoDMG-Info.plist | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AutoDMG/AutoDMG-Info.plist b/AutoDMG/AutoDMG-Info.plist index 629704a..634593a 100644 --- a/AutoDMG/AutoDMG-Info.plist +++ b/AutoDMG/AutoDMG-Info.plist @@ -36,7 +36,7 @@ CFBundlePackageType APPL CFBundleShortVersionString - 1.4.4 + 1.5b CFBundleSignature ???? CFBundleVersion From dce273e99fa17285ad48aa769b96301f02e97f48 Mon Sep 17 00:00:00 2001 From: Per Olofsson Date: Tue, 3 Jun 2014 10:07:14 +0200 Subject: [PATCH 20/37] Stub out broken installer size check. --- AutoDMG/IEDUtil.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/AutoDMG/IEDUtil.py b/AutoDMG/IEDUtil.py index 76cabbb..a0ef5fa 100644 --- a/AutoDMG/IEDUtil.py +++ b/AutoDMG/IEDUtil.py @@ -131,14 +131,13 @@ def getInstalledPkgSize_(cls, pkgPath): elif p.returncode != 0: mountPoints = IEDMountInfo.getMountPoints() fsInfo = mountPoints[cls.findMountPoint_(pkgPath)] - if not fsInfo[u"islocal"]: - LogWarning(u"Estimating package size since installer -pkginfo " - u"failed and '%@' is on a remote (%@) filesystem", - pkgPath, fsInfo[u"fstypename"]) - return cls.getPackageSize_(pkgPath) * 2 + LogWarning(u"Estimating package size since installer -pkginfo " + u"failed and '%@' is on a '%@' filesystem", + pkgPath, fsInfo[u"fstypename"]) + if os.path.basename(pkgPath) == u"OSInstall.mpkg": + return 8 * 1024 * 1024 * 1024 else: - LogError(u"installer -pkginfo -pkg '%@' failed with exit code %d", pkgPath, p.returncode) - return None + return cls.getPackageSize_(pkgPath) * 2 outData = NSData.dataWithBytes_length_(out, len(out)) plist, format, error = NSPropertyListSerialization.propertyListWithData_options_format_error_(outData, NSPropertyListImmutable, From df283554e5e11fd04479c3f18acf310382d0b43d Mon Sep 17 00:00:00 2001 From: Per Olofsson Date: Tue, 3 Jun 2014 10:22:57 +0200 Subject: [PATCH 21/37] Added update profile for 10.10. --- AutoDMG/UpdateProfiles.plist | 3 +++ 1 file changed, 3 insertions(+) diff --git a/AutoDMG/UpdateProfiles.plist b/AutoDMG/UpdateProfiles.plist index db360dc..7d18710 100644 --- a/AutoDMG/UpdateProfiles.plist +++ b/AutoDMG/UpdateProfiles.plist @@ -85,6 +85,9 @@ iTunes SafariMav + 10.10-14A238x + + PublicationDate 2014-08-20T07:16:00Z From 4f90f3b51ada8ae2b55e43bf290398d34612c3be Mon Sep 17 00:00:00 2001 From: Per Olofsson Date: Tue, 3 Jun 2014 17:46:40 +0200 Subject: [PATCH 22/37] Xcode 6. --- AutoDMG.xcodeproj/project.pbxproj | 2 +- AutoDMG.xcodeproj/xcshareddata/xcschemes/AutoDMG.xcscheme | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/AutoDMG.xcodeproj/project.pbxproj b/AutoDMG.xcodeproj/project.pbxproj index 1b298bf..2d84bf7 100644 --- a/AutoDMG.xcodeproj/project.pbxproj +++ b/AutoDMG.xcodeproj/project.pbxproj @@ -284,7 +284,7 @@ isa = PBXProject; attributes = { CLASSPREFIX = IED; - LastUpgradeCheck = 0510; + LastUpgradeCheck = 0600; ORGANIZATIONNAME = "University of Gothenburg"; TargetAttributes = { 66EA72C817EB1585009B8350 = { diff --git a/AutoDMG.xcodeproj/xcshareddata/xcschemes/AutoDMG.xcscheme b/AutoDMG.xcodeproj/xcshareddata/xcschemes/AutoDMG.xcscheme index 607f9f6..3ba0afa 100644 --- a/AutoDMG.xcodeproj/xcshareddata/xcschemes/AutoDMG.xcscheme +++ b/AutoDMG.xcodeproj/xcshareddata/xcschemes/AutoDMG.xcscheme @@ -1,6 +1,6 @@ Date: Sun, 27 Jul 2014 21:40:37 +0200 Subject: [PATCH 23/37] Added fallback for calculating package size requirements. --- AutoDMG/IEDUtil.py | 136 ++++++++++++++++++++++++++++++++++++--------- 1 file changed, 111 insertions(+), 25 deletions(-) diff --git a/AutoDMG/IEDUtil.py b/AutoDMG/IEDUtil.py index a0ef5fa..654ccc2 100644 --- a/AutoDMG/IEDUtil.py +++ b/AutoDMG/IEDUtil.py @@ -15,14 +15,8 @@ import subprocess import tempfile import shutil +from xml.etree import ElementTree from IEDLog import LogDebug, LogInfo, LogNotice, LogWarning, LogError, LogMessage -try: - IEDMountInfo = objc.lookUpClass(u"IEDMountInfo") -except objc.nosuchclass_error: - # Create a dummy class to allow import from pure python for testing. Will - # crash when an attempt is made to use the class. - class IEDMountInfo(object): - pass class IEDUtil(NSObject): @@ -100,10 +94,26 @@ def findMountPoint_(cls, path): @classmethod def getInstalledPkgSize_(cls, pkgPath): # For apps just return the size on disk. - name, ext = os.path.splitext(pkgPath) + ext = os.path.splitext(pkgPath)[1].lower() if ext == u".app": return cls.getPackageSize_(pkgPath) - # For packages try to get the size requirements with installer. + elif ext in (u".pkg", u".mpkg"): + # For packages first try to get the size requirements with + # installer. + size = cls.getInstalledPkgSizeFromInstaller_(pkgPath) + if size is None: + # If this fails, manually extract the size requirements from + # the package. + return cls.calculateInstalledPkgSize_(pkgPath) + else: + return size + else: + LogError(u"Don't know how to calculate installed size for '%s'", + pkgPath) + return None + + @classmethod + def getInstalledPkgSizeFromInstaller_(cls, pkgPath): pkgFileName = os.path.os.path.basename(pkgPath) tempdir = tempfile.mkdtemp() try: @@ -123,21 +133,9 @@ def getInstalledPkgSize_(cls, pkgPath): shutil.rmtree(tempdir) except BaseException as e: LogWarning(u"Unable to remove tempdir: %@", unicode(e)) - # Try to handle some common scenarios when installer fails. - if p.returncode == -11: - LogWarning(u"Estimating package size since installer -pkginfo " - u"'%@' crashed", pkgPath) - return cls.getPackageSize_(pkgPath) * 2 - elif p.returncode != 0: - mountPoints = IEDMountInfo.getMountPoints() - fsInfo = mountPoints[cls.findMountPoint_(pkgPath)] - LogWarning(u"Estimating package size since installer -pkginfo " - u"failed and '%@' is on a '%@' filesystem", - pkgPath, fsInfo[u"fstypename"]) - if os.path.basename(pkgPath) == u"OSInstall.mpkg": - return 8 * 1024 * 1024 * 1024 - else: - return cls.getPackageSize_(pkgPath) * 2 + if p.returncode != 0: + LogDebug(u"/usr/sbin/installer failed to determine size requirements") + return None outData = NSData.dataWithBytes_length_(out, len(out)) plist, format, error = NSPropertyListSerialization.propertyListWithData_options_format_error_(outData, NSPropertyListImmutable, @@ -146,5 +144,93 @@ def getInstalledPkgSize_(cls, pkgPath): if not plist: LogError(u"Error decoding plist: %@", error) return None - LogDebug(u"%@ requires %@", pkgPath, cls.formatBytes_(int(plist[u"Size"]) * 1024)) + LogDebug(u"Installer says %@ requires %@", pkgPath, cls.formatBytes_(int(plist[u"Size"]) * 1024)) return int(plist[u"Size"]) * 1024 + + @classmethod + def calculateInstalledPkgSize_(cls, pkgPath): + if os.path.isdir(pkgPath): + size = cls.getBundlePkgInfo_(pkgPath) + else: + size = cls.getFlatPkgInfo_(pkgPath) + if size is None: + # If all else fails, estimate package size requirements. + LogWarning(u"Estimating package size for '%@'", pkgPath) + size = cls.getPackageSize_(pkgPath) * 2 + LogDebug(u"%@ needs %@", pkgPath, cls.formatBytes_(size)) + return size + + @classmethod + def getBundlePkgInfo_(cls, pkgPath): + distPath = os.path.join(pkgPath, u"Contents", u"distribution.dist") + infoPlistPath = os.path.join(pkgPath, u"Contents", u"Info.plist") + if os.path.exists(distPath): + return cls.getSizeFromDistribution_(distPath) + elif os.path.exists(infoPlistPath): + return cls.getSizeFromPkgInfoPlist_(infoPlistPath) + else: + LogError(u"No distribution.dist or Info.plist found in '%@'", pkgPath) + return None + + @classmethod + def getFlatPkgInfo_(cls, pkgPath): + tempdir = tempfile.mkdtemp() + try: + # Extract to tempdir, excluding all except Distribution and + # PackageInfo. + subprocess.check_output([u"/usr/bin/xar", + u"-x", + u"--exclude", u"^[^DP]", + u"--exclude", u"Payload", + u"-C", tempdir, + u"-f", pkgPath]) + distPath = os.path.join(tempdir, u"Distribution") + pkgInfoPath = os.path.join(tempdir, u"PackageInfo") + if os.path.exists(distPath): + return cls.getSizeFromDistribution_(distPath) + elif os.path.exists(pkgInfoPath): + return cls.getSizeFromPackageInfo_(pkgInfoPath) + else: + LogError(u"No Distribution or PackageInfo found in '%@'", pkgPath) + return None + except subprocess.CalledProcessError as e: + LogError(u"xar failed with return code %d", e.returncode) + return None + finally: + try: + shutil.rmtree(tempdir) + except Exception as e: + LogWarning(u"Unable to remove tempdir: %@", unicode(e)) + + @classmethod + def getSizeFromDistribution_(cls, distPath): + kbytes = 0 + try: + tree = ElementTree.parse(distPath) + for pkgref in tree.iterfind(u"pkg-ref[@installKBytes]"): + kbytes += int(pkgref.get(u"installKBytes")) + except Exception as e: + LogError(u"Failed parsing '%@': %@", distPath, unicode(e)) + return None + return kbytes * 1024 + + @classmethod + def getSizeFromPackageInfo_(cls, pkgInfoPath): + kbytes = 0 + try: + tree = ElementTree.parse(pkgInfoPath) + for payload in tree.iterfind(u"payload[@installKBytes]"): + kbytes += int(payload.get(u"installKBytes")) + except Exception as e: + LogError(u"Failed parsing '%@': %@", pkgInfoPath, unicode(e)) + return None + return kbytes * 1024 + + @classmethod + def getSizeFromPkgInfoPlist_(cls, infoPlistPath): + try: + infoDict = NSDictionary.dictionaryWithContentsOfFile_(infoPlistPath) + return infoDict[u"IFPkgFlagInstalledSize"] * 1024 + except Exception as e: + LogError(u"Failed parsing '%@': %@", infoPlistPath, unicode(e)) + return None From ab52d8985ca2332ff84ba214be6d770a4b3489e7 Mon Sep 17 00:00:00 2001 From: Per Olofsson Date: Sun, 27 Jul 2014 21:41:21 +0200 Subject: [PATCH 24/37] Removed unused class. --- AutoDMG.xcodeproj/project.pbxproj | 6 ----- AutoDMG/IEDMountInfo.h | 15 ------------ AutoDMG/IEDMountInfo.m | 38 ------------------------------- 3 files changed, 59 deletions(-) delete mode 100644 AutoDMG/IEDMountInfo.h delete mode 100644 AutoDMG/IEDMountInfo.m diff --git a/AutoDMG.xcodeproj/project.pbxproj b/AutoDMG.xcodeproj/project.pbxproj index 2d84bf7..396a83d 100644 --- a/AutoDMG.xcodeproj/project.pbxproj +++ b/AutoDMG.xcodeproj/project.pbxproj @@ -8,7 +8,6 @@ /* Begin PBXBuildFile section */ 0506B97C17F0849C0011CCC2 /* AutoDMG.iconset in Resources */ = {isa = PBXBuildFile; fileRef = 0506B97B17F0849C0011CCC2 /* AutoDMG.iconset */; }; - 051626A618E2D1BE000288D1 /* IEDMountInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 051626A518E2D1BE000288D1 /* IEDMountInfo.m */; }; 051B177117F446560026E12B /* progresswatcher.py in Resources */ = {isa = PBXBuildFile; fileRef = 051B177017F446560026E12B /* progresswatcher.py */; }; 05429D761816715300CD61E6 /* Package blue arrow.png in Resources */ = {isa = PBXBuildFile; fileRef = 05429D721816715300CD61E6 /* Package blue arrow.png */; }; 05429D771816715300CD61E6 /* Package blue arrow@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 05429D731816715300CD61E6 /* Package blue arrow@2x.png */; }; @@ -54,8 +53,6 @@ /* Begin PBXFileReference section */ 0506B97B17F0849C0011CCC2 /* AutoDMG.iconset */ = {isa = PBXFileReference; lastKnownFileType = folder.iconset; path = AutoDMG.iconset; sourceTree = ""; }; - 051626A418E2D1BE000288D1 /* IEDMountInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IEDMountInfo.h; sourceTree = ""; }; - 051626A518E2D1BE000288D1 /* IEDMountInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IEDMountInfo.m; sourceTree = ""; }; 051B177017F446560026E12B /* progresswatcher.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = progresswatcher.py; sourceTree = ""; }; 05429D721816715300CD61E6 /* Package blue arrow.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Package blue arrow.png"; sourceTree = ""; }; 05429D731816715300CD61E6 /* Package blue arrow@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Package blue arrow@2x.png"; sourceTree = ""; }; @@ -172,8 +169,6 @@ children = ( 66EA72DA17EB1586009B8350 /* main.m */, 66EA72DC17EB1587009B8350 /* AutoDMG-Prefix.pch */, - 051626A418E2D1BE000288D1 /* IEDMountInfo.h */, - 051626A518E2D1BE000288D1 /* IEDMountInfo.m */, ); name = ObjC; sourceTree = ""; @@ -408,7 +403,6 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 051626A618E2D1BE000288D1 /* IEDMountInfo.m in Sources */, 66EA72DB17EB1586009B8350 /* main.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/AutoDMG/IEDMountInfo.h b/AutoDMG/IEDMountInfo.h deleted file mode 100644 index dcb7768..0000000 --- a/AutoDMG/IEDMountInfo.h +++ /dev/null @@ -1,15 +0,0 @@ -// -// IEDMountInfo.h -// AutoDMG -// -// Created by Per Olofsson on 2014-03-26. -// Copyright 2013-2014 Per Olofsson, University of Gothenburg. All rights reserved. -// - -#import - -@interface IEDMountInfo : NSObject - -+ (NSDictionary *)getMountPoints; - -@end diff --git a/AutoDMG/IEDMountInfo.m b/AutoDMG/IEDMountInfo.m deleted file mode 100644 index aeafe1c..0000000 --- a/AutoDMG/IEDMountInfo.m +++ /dev/null @@ -1,38 +0,0 @@ -// -// IEDMountInfo.m -// AutoDMG -// -// Created by Per Olofsson on 2014-03-26. -// Copyright 2013-2014 Per Olofsson, University of Gothenburg. All rights reserved. -// - -#include -#include -#import "IEDMountInfo.h" - -@implementation IEDMountInfo - -+ (NSDictionary *)getMountPoints -{ - struct statfs *mntbuf; - int mntsize; - - if ((mntsize = getmntinfo(&mntbuf, MNT_NOWAIT)) == 0) { - NSLog(@"getmntinfo failed"); - return NULL; - } - NSMutableDictionary *mountPoints = [[NSMutableDictionary alloc] init]; - for (int i = 0; i < mntsize; i++) { -// NSLog(@"f_mntonname: %s (%s, %s)", -// mntbuf[i].f_mntonname, -// mntbuf[i].f_fstypename, -// mntbuf[i].f_flags & MNT_LOCAL ? "local" : "remote"); - NSString *mntonname = [NSString stringWithUTF8String:mntbuf[i].f_mntonname]; - NSString *fstypename = [NSString stringWithUTF8String:mntbuf[i].f_fstypename]; - mountPoints[mntonname] = @{@"fstypename": fstypename, - @"islocal": mntbuf[i].f_flags & MNT_LOCAL ? @true : @false}; - } - return mountPoints; -} - -@end From 79d7750e8e731394da1d372a68e8913582712b17 Mon Sep 17 00:00:00 2001 From: Per Olofsson Date: Mon, 28 Jul 2014 14:45:19 +0200 Subject: [PATCH 25/37] 10.10 SDK. --- AutoDMG.xcodeproj/project.pbxproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/AutoDMG.xcodeproj/project.pbxproj b/AutoDMG.xcodeproj/project.pbxproj index 396a83d..2db09fe 100644 --- a/AutoDMG.xcodeproj/project.pbxproj +++ b/AutoDMG.xcodeproj/project.pbxproj @@ -471,7 +471,7 @@ GCC_WARN_UNUSED_VARIABLE = YES; MACOSX_DEPLOYMENT_TARGET = 10.8; ONLY_ACTIVE_ARCH = YES; - SDKROOT = macosx10.8; + SDKROOT = macosx; }; name = Debug; }; @@ -503,7 +503,7 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; MACOSX_DEPLOYMENT_TARGET = 10.8; - SDKROOT = macosx10.8; + SDKROOT = macosx; }; name = Release; }; From 056c9debc26b733d0ce16357a7c7cce3ea289ab2 Mon Sep 17 00:00:00 2001 From: Per Olofsson Date: Mon, 28 Jul 2014 14:59:40 +0200 Subject: [PATCH 26/37] Use kramdown for markdown processing of README. --- AutoDMG.xcodeproj/xcshareddata/xcschemes/AutoDMG.xcscheme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AutoDMG.xcodeproj/xcshareddata/xcschemes/AutoDMG.xcscheme b/AutoDMG.xcodeproj/xcshareddata/xcschemes/AutoDMG.xcscheme index 3ba0afa..5c0d87c 100644 --- a/AutoDMG.xcodeproj/xcshareddata/xcschemes/AutoDMG.xcscheme +++ b/AutoDMG.xcodeproj/xcshareddata/xcschemes/AutoDMG.xcscheme @@ -87,7 +87,7 @@ ActionType = "Xcode.IDEStandardExecutionActionsCore.ExecutionActionType.ShellScriptAction"> Date: Tue, 16 Sep 2014 11:50:38 +0200 Subject: [PATCH 27/37] Adjusted progress message to better fit 10.10. --- AutoDMG/installesdtodmg.sh | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/AutoDMG/installesdtodmg.sh b/AutoDMG/installesdtodmg.sh index 9cf0d12..8ae81d6 100755 --- a/AutoDMG/installesdtodmg.sh +++ b/AutoDMG/installesdtodmg.sh @@ -121,11 +121,7 @@ echo "IED:WATCHLOG:START" for package; do echo "IED:PHASE:install $pkgnum:$package" let pkgnum++ - if [[ $pkgnum -eq 1 ]]; then - echo "IED:MSG:Starting OS install" - else - echo "IED:MSG:Installing $(basename "$package")" - fi + echo "IED:MSG:Installing $(basename "$package")" if [[ "${package##*.}" == "app" ]]; then appname="${package##*/}" apppath="$sparsemount/Applications/$appname" From f55be1df7b2a87019cdf4383bad846e51cef43ca Mon Sep 17 00:00:00 2001 From: Per Olofsson Date: Thu, 18 Sep 2014 18:58:20 +0200 Subject: [PATCH 28/37] Set deployment target to 10.8. --- AutoDMG.xcodeproj/project.pbxproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/AutoDMG.xcodeproj/project.pbxproj b/AutoDMG.xcodeproj/project.pbxproj index 2db09fe..47a342d 100644 --- a/AutoDMG.xcodeproj/project.pbxproj +++ b/AutoDMG.xcodeproj/project.pbxproj @@ -515,7 +515,7 @@ GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "AutoDMG/AutoDMG-Prefix.pch"; INFOPLIST_FILE = "AutoDMG/AutoDMG-Info.plist"; - MACOSX_DEPLOYMENT_TARGET = 10.7; + MACOSX_DEPLOYMENT_TARGET = 10.8; PRODUCT_NAME = AutoDMG; PROVISIONING_PROFILE = ""; WRAPPER_EXTENSION = app; @@ -530,7 +530,7 @@ GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "AutoDMG/AutoDMG-Prefix.pch"; INFOPLIST_FILE = "AutoDMG/AutoDMG-Info.plist"; - MACOSX_DEPLOYMENT_TARGET = 10.7; + MACOSX_DEPLOYMENT_TARGET = 10.8; PRODUCT_NAME = AutoDMG; PROVISIONING_PROFILE = ""; WRAPPER_EXTENSION = app; From 98bd25970598b1a837735983c33c1386da3be2e5 Mon Sep 17 00:00:00 2001 From: Per Olofsson Date: Thu, 18 Sep 2014 18:58:37 +0200 Subject: [PATCH 29/37] Added autolayout constraints for source and updates. --- AutoDMG/en.lproj/MainMenu.xib | 228 ++++++++++++++++++---------------- 1 file changed, 118 insertions(+), 110 deletions(-) diff --git a/AutoDMG/en.lproj/MainMenu.xib b/AutoDMG/en.lproj/MainMenu.xib index 0f8508f..1f5a161 100755 --- a/AutoDMG/en.lproj/MainMenu.xib +++ b/AutoDMG/en.lproj/MainMenu.xib @@ -1,8 +1,8 @@ - + - - + + @@ -10,27 +10,31 @@ - + - + - - - - + + + + + + - + - + + + @@ -39,19 +43,28 @@ + + + + + + + + - + - - - + - - + @@ -101,27 +113,26 @@ + + + - - - + + - - + - + + + + + + + + + + + + + + + + + + + + + + + + - + - - + - - + - + @@ -189,7 +221,6 @@ - + - - + + + + + + + + + - + @@ -562,42 +599,37 @@ - + - + - - + - - + - - + - - - + - @@ -662,43 +690,38 @@ Gw - + - + - - + - - + - - + - - - + - - + - - + - @@ -833,23 +850,21 @@ Gw - + - + - - + - @@ -877,15 +892,14 @@ Gw - + - - + - + @@ -938,7 +952,7 @@ Gw - - + + + + + + + + + + + + - + + + + + + From e57b0140e3fc3f7f9e0d4550341ed249a6cf5378 Mon Sep 17 00:00:00 2001 From: Per Olofsson Date: Sun, 21 Sep 2014 10:42:09 +0200 Subject: [PATCH 31/37] Added constraints for log window. --- AutoDMG/en.lproj/MainMenu.xib | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/AutoDMG/en.lproj/MainMenu.xib b/AutoDMG/en.lproj/MainMenu.xib index 098db1f..a15d3ae 100755 --- a/AutoDMG/en.lproj/MainMenu.xib +++ b/AutoDMG/en.lproj/MainMenu.xib @@ -873,7 +873,7 @@ Gw - + @@ -881,7 +881,7 @@ Gw - + @@ -910,9 +910,9 @@ Gw - + - + @@ -979,8 +979,8 @@ Gw - + + + + + + + + + + + + + From a41cb08f80260c5356a0e8a7d04a280dd94ab108 Mon Sep 17 00:00:00 2001 From: Per Olofsson Date: Sun, 21 Sep 2014 11:20:07 +0200 Subject: [PATCH 32/37] Constraints for advanced options. --- AutoDMG/en.lproj/MainMenu.xib | 38 +++++++++++++++++++++++++++++------ 1 file changed, 32 insertions(+), 6 deletions(-) diff --git a/AutoDMG/en.lproj/MainMenu.xib b/AutoDMG/en.lproj/MainMenu.xib index a15d3ae..e4bff9a 100755 --- a/AutoDMG/en.lproj/MainMenu.xib +++ b/AutoDMG/en.lproj/MainMenu.xib @@ -1025,40 +1025,52 @@ Gw - + + + + - + + + + - + + + + - + + + + - - + + @@ -1066,6 +1078,20 @@ Gw + + + + + + + + + + + + + + From 415ae9e8fd235fa9c29bb43c53d520ce03fea0d5 Mon Sep 17 00:00:00 2001 From: Per Olofsson Date: Wed, 15 Oct 2014 09:54:09 +0200 Subject: [PATCH 33/37] Autolayout warnings. --- AutoDMG/en.lproj/MainMenu.xib | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/AutoDMG/en.lproj/MainMenu.xib b/AutoDMG/en.lproj/MainMenu.xib index e4bff9a..470d24a 100755 --- a/AutoDMG/en.lproj/MainMenu.xib +++ b/AutoDMG/en.lproj/MainMenu.xib @@ -1,8 +1,8 @@ - + - + From c72b9220ff66f2bcf05dabdfe7b2846b3b92c1d6 Mon Sep 17 00:00:00 2001 From: Per Olofsson Date: Wed, 15 Oct 2014 10:04:01 +0200 Subject: [PATCH 34/37] Updated README to require 10.8. --- README.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.markdown b/README.markdown index c19ea0c..404e9d7 100644 --- a/README.markdown +++ b/README.markdown @@ -9,7 +9,7 @@ AutoDMG takes an OS X installer and builds a system image, suitable for deployme System Requirements ------------------- -AutoDMG requires Mac OS X 10.7 or newer. +AutoDMG requires Mac OS X 10.8 or newer. Support From a4240749ff1aeb0dd2cb9c44cca2228b2be58e42 Mon Sep 17 00:00:00 2001 From: Per Olofsson Date: Wed, 15 Oct 2014 10:21:48 +0200 Subject: [PATCH 35/37] Updated installer placeholder icon. --- AutoDMG/Installer Placeholder.png | Bin 26026 -> 24689 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/AutoDMG/Installer Placeholder.png b/AutoDMG/Installer Placeholder.png index 82c43ce36b82aa4334566428e42382932def7b46..24ac89628599018fa543baf3df391642c6ca72a1 100644 GIT binary patch delta 24173 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
y}Hb(M&-p@TEZ^Yq$v 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 FV1j8sY0Cfr delta 25511 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 Date: Wed, 15 Oct 2014 10:54:59 +0200 Subject: [PATCH 36/37] Updated installer placeholder icon. --- Media/Installer Placeholder.psd | Bin 190173 -> 85040 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Media/Installer Placeholder.psd b/Media/Installer Placeholder.psd index 11b8053d5278c045c4939fbb924b78d0f118e252..6e03b577b6f0021afa0eb35013806336e9ffbac4 100644 GIT binary patch literal 85040 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

d`wwsF;5c&Cza?r`(mBPpIDH$l*4B{ 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 literal 190173 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

qx3D;M*0KIW)9ALh z@!Kvoy6xl!03y%u*MvUTPrN2nLfGK7$~1YcxH+kykz81Fm%EvbUPJC=_;Xve=DGcJ z^>a%OVB-g!y>EsGoq3Ec?^=P@Qdwh-#~5GZF$^v#^-V5m6z)46E{Ru8jJ=+J#JN1? z_2`Axd%aomdPVSh?gp=?_pHFWsBCQDSt$-d`Fwrv&HW_z-tZdi-kSsn$MH=E7Td z7FJUnwr;cwtKq+gnvn&NEI3hAeeF$A^%zCFNyh{9Q8f$tHwxc@;)SrS zGX=Ftra&w4Oo6JT$P`Sol1uAkC2cG#VZ~Bx>Iw3u4Kg4@n$}pxQXu-WSd7G2dWRHf z?*U!9#nZ{v`If*|2@~)vZNuztkvJjC?qZFzyVcnwrOYgze^WLY#Ii}K`L$8@N=!Ph zqIp&J3Y4qQUMW}O*((#|`Lcz?Y2TWBc^Ro8<;yC?KwB;4%YMk0nb-cxkfQH$^FJ1! zSyJ0JpiptktWME$l1x%`;sVGI!3B_N6aQsg01QN{Ho^kRA$fDfr4$n^@Y5^;8Q+X@ zxck-(9gAQkjenZ*j~LEBz+FI`jQGdoNH6h^xbOgX1OG6=F5$5kb;t%BQLQ$@E|a5u ztuN{{pe80W`JM$v!d#P5(d$34mf?Tuhk3msN}ll# zu?m7`z>%ngv^-f=Lu>cF5oiWRPJ4Wbde%$8G^%GUu=(z@NiT3FPz9!w2)T(~}dUgS{OsHRZg_@tz+m|4^Aj zgn9{8UG@r97bj2Deqxie3QDURTjl*jW1m1x?3&HGs9pLG{swVnQTur1p=1FQtCWi2 zf$sL^+VbL$F2qNL1$vvKDnwNVn)*+yD1@o?MWL{$_|)ve(whxv{y}XLb;X(4c`EBY zdj0t2;_JtIpzi{e1y#!N(ffT}txYxM#kpyTr@{}iQV}nyXhnZy6)SIEF0-+B^zaQ1 zKN+8zm5)}WmNv{iJT{^HbZUBbc5WWO5%l2Y!<7ds3y$-%v(r;5<%D8nuwUMBtG=qV z=%ciArz1lAJzb=>yqJaZ$RAiejp>d0h}7A`_h9(Rxa5qyD`i#nEv=nB{e#1!iV5YU zN;RdOem$d|cAipAD$$ihh1IV1TMg9}S1)I!CY*{m2`Z(ci+I^(8%bRLNUHPu`<4*a2_2Qx__^~r>o;mbA5G% ztS~42d|dRg5PvUM2efe+s(`=6;qXA?0ag8JZV%s}!^cm>pTC%Wxwy2l8ckZa+d4Ys z-Mzhi%l#{TuDw0-&b#e*S{gsDt}H9b&q+^7jEM{j_G9x}Qe{s>6}8{7lBm0WVyTn6 zkAFy50RogM6KcfykB<3JM!bzm%uj&FL0S}@Q+ zVT-9;(EQ*Z6ms}zL}XO->6qBqvvF}}V`I;pj*g0q2tRTtIKbD(!_{%Oz1SKp6v9N* ziSapwr+oynlU819MF*G>9gN2Feo_WQ0U?1BMyf{LqiS*1^WB?c6b8?nUBUMk)F(m}jiy30-?h8Sxkp{1GNj}ZI} u%`l=(o3-z(Y&GAu9lJnNiiM@+tDP&BD;AbJ-orY)e+3eoUW Date: Wed, 15 Oct 2014 10:55:17 +0200 Subject: [PATCH 37/37] Minimum size constraint for log window. --- AutoDMG/en.lproj/MainMenu.xib | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/AutoDMG/en.lproj/MainMenu.xib b/AutoDMG/en.lproj/MainMenu.xib index 470d24a..91f2270 100755 --- a/AutoDMG/en.lproj/MainMenu.xib +++ b/AutoDMG/en.lproj/MainMenu.xib @@ -966,6 +966,9 @@ Gw + + +