X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=cdist;h=5abc82e501468e08f5ef34d1f3386296cd94d465;hb=c49c9ce9ab82df1e4fec18194d426a68b800d7f1;hp=a36f42b744e2672a3777ccdf9fbbad4091af2ebf;hpb=58cf328973c03988fd7873af6818e9a9d7a397b3;p=cdist.git diff --git a/cdist b/cdist index a36f42b..5abc82e 100755 --- a/cdist +++ b/cdist @@ -1,6 +1,6 @@ #!/usr/bin/python3 -# Copyright (C) 2012-2020 Carl Hetherington +# Copyright (C) 2012-2021 Carl Hetherington # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -112,6 +112,8 @@ class Config: Option('osx_environment_prefix'), Option('osx_sdk_prefix'), Option('osx_sdk'), + Option('osx_intel_deployment'), + Option('osx_arm_deployment'), Option('osx_keychain_file'), Option('osx_keychain_password'), Option('apple_id'), @@ -746,13 +748,15 @@ def notarize_dmg(dmg, bundle_id): request_uuid = string_after(p, "RequestUUID") if request_uuid is None: + print("Response: %s" % p) raise Error('No RequestUUID found in response from Apple') for i in range(0, 30): - print('Checking up on %s' % request_uuid) + print('%s: checking up on %s' % (datetime.datetime.now(), request_uuid)) p = subprocess.run(['xcrun', 'altool', '--notarization-info', request_uuid, '-u', config.get('apple_id'), '-p', config.get('apple_password'), '--output-format', 'xml'], capture_output=True) + print('%s: %s' % (datetime.datetime.now(), p)) status = string_after(p, 'Status') - print('Got %s' % status) + print('Got status: %s' % status) if status == 'invalid': raise Error("Notarization failed") elif status == 'success': @@ -784,7 +788,7 @@ class OSXTarget(Target): def _cscript_package_and_notarize(self, tree, options, notarize): """ - Call package() in the cscript and notarize the .dmgs that are returned, if notarize = True + Call package() in the cscript and notarize the .dmgs that are returned, if notarize == True """ p = self._cscript_package(tree, options) for x in p: @@ -796,14 +800,15 @@ class OSXTarget(Target): class OSXSingleTarget(OSXTarget): - def __init__(self, arch, sdk, directory=None): + def __init__(self, arch, sdk, deployment, directory=None): super(OSXSingleTarget, self).__init__(directory) self.arch = arch self.sdk = sdk + self.deployment = deployment flags = '-isysroot %s/MacOSX%s.sdk -arch %s' % (self.sdk_prefix, sdk, arch) - host_enviro = '%s/x86_64/10.9' % config.get('osx_environment_prefix') - target_enviro = '%s/%s/%s' % (config.get('osx_environment_prefix'), arch, sdk) + host_enviro = '%s/x86_64' % config.get('osx_environment_prefix') + target_enviro = '%s/%s' % (config.get('osx_environment_prefix'), arch) self.bin = '%s/bin' % target_enviro @@ -815,7 +820,7 @@ class OSXSingleTarget(OSXTarget): self.set('LINKFLAGS', '"-L%s/lib -L%s/lib %s"' % (self.directory, target_enviro, flags)) self.set('PKG_CONFIG_PATH', '%s/lib/pkgconfig:%s/lib/pkgconfig:/usr/lib/pkgconfig' % (self.directory, target_enviro)) self.set('PATH', '$PATH:/usr/bin:/sbin:/usr/local/bin:%s/bin' % host_enviro) - self.set('MACOSX_DEPLOYMENT_TARGET', sdk) + self.set('MACOSX_DEPLOYMENT_TARGET', self.deployment) self.set('CCACHE_BASEDIR', self.directory) @Target.ccache.setter @@ -834,17 +839,13 @@ class OSXSingleTarget(OSXTarget): class OSXUniversalTarget(OSXTarget): - def __init__(self, archs, directory=None): + def __init__(self, directory=None): super(OSXUniversalTarget, self).__init__(directory) - self.archs = archs self.sdk = config.get('osx_sdk') - for a in self.archs: - if a.find('arm') != -1: - self.sdk = '11.0' def package(self, project, checkout, output_dir, options, notarize): - for a in self.archs: - target = OSXSingleTarget(a, self.sdk, os.path.join(self.directory, a)) + for arch, deployment in (('x86_64', config.get('osx_intel_deployment')), ('arm64', config.get('osx_arm_deployment'))): + target = OSXSingleTarget(arch, self.sdk, deployment, os.path.join(self.directory, arch)) target.ccache = self.ccache tree = globals.trees.get(project, checkout, target) tree.build_dependencies(options) @@ -883,7 +884,7 @@ class SourceTarget(Target): # or centos-version-{32,64} # or fedora-version-{32,64} # or mageia-version-{32,64} -# or osx-{intel,arm-intel,arm64} +# or osx # or source # or flatpak # or appimage @@ -914,14 +915,10 @@ def target_factory(args): target = LinuxTarget(p[0], None, int(p[1]), args.work) elif s == 'raspbian': target = LinuxTarget(s, None, None, args.work) + elif s == 'osx': + target = OSXUniversalTarget(args.work) elif s == 'osx-intel': - # Intel 64-bit built for config's os_sdk - target = OSXSingleTarget('x86_64', config.get('osx_sdk'), args.work) - elif s == 'osx-arm-intel': - # Universal arm64 and Intel 64-bit built for SDK 11.0 - target = OSXUniversalTarget(('arm64', 'x86_64'), args.work) - elif s == 'osx-arm64': - target = OSXSingleTarget('arm64', '11.0', args.work) + target = OSXSingleTarget('x86_64', config.get('osx_sdk'), config.get('osx_intel_deployment'), args.work) elif s == 'source': target = SourceTarget() elif s == 'flatpak':