|
@@ -187,12 +187,13 @@ class Packager:
|
|
|
objects uniquely per package. """
|
|
objects uniquely per package. """
|
|
|
return (self.packageName, self.platform, self.version)
|
|
return (self.packageName, self.platform, self.version)
|
|
|
|
|
|
|
|
- def fromFile(self, packageName, platform, version, solo,
|
|
|
|
|
|
|
+ def fromFile(self, packageName, platform, version, solo, perPlatform,
|
|
|
installDir, descFilename, importDescFilename):
|
|
installDir, descFilename, importDescFilename):
|
|
|
self.packageName = packageName
|
|
self.packageName = packageName
|
|
|
self.platform = platform
|
|
self.platform = platform
|
|
|
self.version = version
|
|
self.version = version
|
|
|
self.solo = solo
|
|
self.solo = solo
|
|
|
|
|
+ self.perPlatform = perPlatform
|
|
|
|
|
|
|
|
self.descFile = FileSpec()
|
|
self.descFile = FileSpec()
|
|
|
self.descFile.fromFile(installDir, descFilename)
|
|
self.descFile.fromFile(installDir, descFilename)
|
|
@@ -208,6 +209,8 @@ class Packager:
|
|
|
self.version = xpackage.Attribute('version')
|
|
self.version = xpackage.Attribute('version')
|
|
|
solo = xpackage.Attribute('solo')
|
|
solo = xpackage.Attribute('solo')
|
|
|
self.solo = int(solo or '0')
|
|
self.solo = int(solo or '0')
|
|
|
|
|
+ perPlatform = xpackage.Attribute('per_platform')
|
|
|
|
|
+ self.perPlatform = int(perPlatform or '0')
|
|
|
|
|
|
|
|
self.packageSeq = SeqValue()
|
|
self.packageSeq = SeqValue()
|
|
|
self.packageSeq.loadXml(xpackage, 'seq')
|
|
self.packageSeq.loadXml(xpackage, 'seq')
|
|
@@ -235,6 +238,8 @@ class Packager:
|
|
|
xpackage.SetAttribute('version', self.version)
|
|
xpackage.SetAttribute('version', self.version)
|
|
|
if self.solo:
|
|
if self.solo:
|
|
|
xpackage.SetAttribute('solo', '1')
|
|
xpackage.SetAttribute('solo', '1')
|
|
|
|
|
+ if self.perPlatform:
|
|
|
|
|
+ xpackage.SetAttribute('per_platform', '1')
|
|
|
|
|
|
|
|
self.packageSeq.storeXml(xpackage, 'seq')
|
|
self.packageSeq.storeXml(xpackage, 'seq')
|
|
|
self.packageSetVer.storeXml(xpackage, 'set_ver')
|
|
self.packageSetVer.storeXml(xpackage, 'set_ver')
|
|
@@ -322,6 +327,9 @@ class Packager:
|
|
|
# platform-specific.
|
|
# platform-specific.
|
|
|
self.platform = None
|
|
self.platform = None
|
|
|
|
|
|
|
|
|
|
+ # This is always true on modern packages.
|
|
|
|
|
+ self.perPlatform = True
|
|
|
|
|
+
|
|
|
# The arch string, though, is pre-loaded from the system
|
|
# The arch string, though, is pre-loaded from the system
|
|
|
# arch string, so we can sensibly call otool.
|
|
# arch string, so we can sensibly call otool.
|
|
|
self.arch = self.packager.arch
|
|
self.arch = self.packager.arch
|
|
@@ -722,6 +730,7 @@ class Packager:
|
|
|
else:
|
|
else:
|
|
|
self.readDescFile()
|
|
self.readDescFile()
|
|
|
self.packageSeq += 1
|
|
self.packageSeq += 1
|
|
|
|
|
+ self.perPlatform = True # always true on modern packages.
|
|
|
self.compressMultifile()
|
|
self.compressMultifile()
|
|
|
self.writeDescFile()
|
|
self.writeDescFile()
|
|
|
self.writeImportDescFile()
|
|
self.writeImportDescFile()
|
|
@@ -734,7 +743,7 @@ class Packager:
|
|
|
# Replace or add the entry in the contents.
|
|
# Replace or add the entry in the contents.
|
|
|
pe = Packager.PackageEntry()
|
|
pe = Packager.PackageEntry()
|
|
|
pe.fromFile(self.packageName, self.platform, self.version,
|
|
pe.fromFile(self.packageName, self.platform, self.version,
|
|
|
- False, self.packager.installDir,
|
|
|
|
|
|
|
+ False, self.perPlatform, self.packager.installDir,
|
|
|
self.packageDesc, self.packageImportDesc)
|
|
self.packageDesc, self.packageImportDesc)
|
|
|
pe.packageSeq = self.packageSeq
|
|
pe.packageSeq = self.packageSeq
|
|
|
pe.packageSetVer = self.packageSetVer
|
|
pe.packageSetVer = self.packageSetVer
|
|
@@ -753,6 +762,7 @@ class Packager:
|
|
|
kinds of similar "solo" packages as well. """
|
|
kinds of similar "solo" packages as well. """
|
|
|
|
|
|
|
|
self.considerPlatform()
|
|
self.considerPlatform()
|
|
|
|
|
+ self.perPlatform = False # Not true on "solo" packages.
|
|
|
|
|
|
|
|
packageDir = self.packageName
|
|
packageDir = self.packageName
|
|
|
if self.platform:
|
|
if self.platform:
|
|
@@ -798,7 +808,7 @@ class Packager:
|
|
|
# Replace or add the entry in the contents.
|
|
# Replace or add the entry in the contents.
|
|
|
pe = Packager.PackageEntry()
|
|
pe = Packager.PackageEntry()
|
|
|
pe.fromFile(self.packageName, self.platform, self.version,
|
|
pe.fromFile(self.packageName, self.platform, self.version,
|
|
|
- True, self.packager.installDir,
|
|
|
|
|
|
|
+ True, self.perPlatform, self.packager.installDir,
|
|
|
Filename(packageDir, file.newName), None)
|
|
Filename(packageDir, file.newName), None)
|
|
|
peOrig = self.packager.contents.get(pe.getKey(), None)
|
|
peOrig = self.packager.contents.get(pe.getKey(), None)
|
|
|
if peOrig:
|
|
if peOrig:
|
|
@@ -1509,6 +1519,9 @@ class Packager:
|
|
|
if not xpackage:
|
|
if not xpackage:
|
|
|
return
|
|
return
|
|
|
|
|
|
|
|
|
|
+ perPlatform = xpackage.Attribute('per_platform')
|
|
|
|
|
+ self.perPlatform = int(perPlatform or '0')
|
|
|
|
|
+
|
|
|
self.packageSeq.loadXml(xpackage, 'seq')
|
|
self.packageSeq.loadXml(xpackage, 'seq')
|
|
|
self.packageSetVer.loadXml(xpackage, 'set_ver')
|
|
self.packageSetVer.loadXml(xpackage, 'set_ver')
|
|
|
|
|
|
|
@@ -1554,6 +1567,8 @@ class Packager:
|
|
|
xpackage.SetAttribute('platform', self.platform)
|
|
xpackage.SetAttribute('platform', self.platform)
|
|
|
if self.version:
|
|
if self.version:
|
|
|
xpackage.SetAttribute('version', self.version)
|
|
xpackage.SetAttribute('version', self.version)
|
|
|
|
|
+ if self.perPlatform:
|
|
|
|
|
+ xpackage.SetAttribute('per_platform', '1')
|
|
|
|
|
|
|
|
if self.patchVersion:
|
|
if self.patchVersion:
|
|
|
xpackage.SetAttribute('last_patch_version', self.patchVersion)
|
|
xpackage.SetAttribute('last_patch_version', self.patchVersion)
|