def readSafariMetadata(self): # get the certificate ID from the developer certificate's common name import M2Crypto bio = M2Crypto.BIO.openfile(self.config.keyFile) try: while not hasattr(self, 'certificateID'): try: cert = M2Crypto.X509.load_cert_bio(bio) except M2Crypto.X509.X509Error: raise Exception('No safari developer certificate found in chain') subject = cert.get_subject() for entry in subject.get_entries_by_nid(subject.nid['CN']): m = re.match(r'Safari Developer: \((.*?)\)', entry.get_data().as_text()) if m: self.certificateID = m.group(1) break finally: bio.close() # read metadata file import buildtools.packagerSafari as packager metadata = packager.readMetadata(self.tempdir, self.config.type) self.version = packager.getBuildVersion(self.tempdir, metadata, False, self.revision) self.shortVersion = metadata.get("general", "version") self.basename = metadata.get("general", "basename")
def readChromeMetadata(self): """ Read Chrome-specific metadata from metadata file. This will also calculate extension ID from the private key. """ # Calculate extension ID from public key # (see http://supercollider.dk/2010/01/calculating-chrome-extension-id-from-your-private-key-233) import buildtools.packagerChrome as packager publicKey = packager.getPublicKey(self.config.keyFile) hash = hashlib.sha256() hash.update(publicKey) self.extensionID = hash.hexdigest()[0:32] self.extensionID = ''.join( map(lambda c: chr(97 + int(c, 16)), self.extensionID)) # Now read metadata file metadata = packager.readMetadata(self.tempdir, self.config.type) self.version = packager.getBuildVersion(self.tempdir, metadata, False, self.revision) self.basename = metadata.get("general", "basename") self.compat = [] if metadata.has_section('compat') and metadata.has_option( 'compat', 'chrome'): self.compat.append({ 'id': 'chrome', 'minVersion': metadata.get('compat', 'chrome') })
def readChromeMetadata(self): """ Read Chrome-specific metadata from metadata file. This will also calculate extension ID from the private key. """ # Calculate extension ID from public key # (see http://supercollider.dk/2010/01/calculating-chrome-extension-id-from-your-private-key-233) import buildtools.packagerChrome as packager publicKey = packager.getPublicKey(self.config.keyFile) hash = hashlib.sha256() hash.update(publicKey) self.extensionID = hash.hexdigest()[0:32] self.extensionID = ''.join(map(lambda c: chr(97 + int(c, 16)), self.extensionID)) # Now read metadata file metadata = packager.readMetadata(self.tempdir, self.config.type) self.version = packager.getBuildVersion(self.tempdir, metadata, False, self.revision) self.basename = metadata.get("general", "basename") if self.config.experimental: self.basename += '-experimental' self.compat = [] if metadata.has_section('compat') and metadata.has_option('compat', 'chrome'): self.compat.append({'id': 'chrome', 'minVersion': metadata.get('compat', 'chrome')})
def readSafariMetadata(self): import buildtools.packagerSafari as packager metadata = packager.readMetadata(self.tempdir, self.config.type) self.certificateID = getSafariCertificateID(self.config.keyFile) self.version = packager.getBuildVersion(self.tempdir, metadata, False, self.revision) self.shortVersion = metadata.get("general", "version") self.basename = metadata.get("general", "basename")
def readSafariMetadata(self): import buildtools.packagerSafari as packager metadata = packager.readMetadata(self.tempdir, self.config.type) certs = packager.get_certificates_and_key(self.config.keyFile)[0] self.certificateID = packager.get_developer_identifier(certs) self.version = packager.getBuildVersion(self.tempdir, metadata, False, self.revision) self.shortVersion = metadata.get("general", "version") self.basename = metadata.get("general", "basename") self.updatedFromGallery = False
def readSafariMetadata(self): import buildtools.packagerSafari as packager from buildtools import xarfile metadata = packager.readMetadata(self.tempdir, self.config.type) certs = xarfile.read_certificates_and_key(self.config.keyFile)[0] self.certificateID = packager.get_developer_identifier(certs) self.version = packager.getBuildVersion(self.tempdir, metadata, False, self.buildNum) self.shortVersion = metadata.get('general', 'version') self.basename = metadata.get('general', 'basename') self.updatedFromGallery = False
def read_edge_metadata(self): """ Read Edge-specific metadata from metadata file. """ from buildtools import packager # Now read metadata file metadata = packager.readMetadata(self.tempdir, self.config.type) self.version = packager.getBuildVersion(self.tempdir, metadata, False, self.buildNum) self.basename = metadata.get('general', 'basename') self.compat = []
def readGeckoMetadata(self): """ read Gecko-specific metadata file from a cloned repository and parse id, version, basename and the compat section out of the file """ import buildtools.packagerGecko as packager metadata = packager.readMetadata(self.tempdir, self.config.type) self.extensionID = metadata.get('general', 'id') self.version = packager.getBuildVersion(self.tempdir, metadata, False, self.buildNum) self.basename = metadata.get('general', 'basename')
def readGeckoMetadata(self): """ read Gecko-specific metadata file from a cloned repository and parse id, version, basename and the compat section out of the file """ import buildtools.packagerGecko as packager metadata = packager.readMetadata(self.tempdir, self.config.type) self.extensionID = metadata.get("general", "id") self.version = packager.getBuildVersion(self.tempdir, metadata, False, self.revision) self.basename = metadata.get("general", "basename") self.compat = [] for key, value in packager.KNOWN_APPS.iteritems(): if metadata.has_option('compat', key): minVersion, maxVersion = metadata.get('compat', key).split('/') self.compat.append({'id': value, 'minVersion': minVersion, 'maxVersion': maxVersion})
def readGeckoMetadata(self): """ read Gecko-specific metadata file from a cloned repository and parse id, version, basename and the compat section out of the file """ import buildtools.packagerGecko as packager metadata = packager.readMetadata(self.tempdir, self.config.type) self.extensionID = metadata.get("general", "id") self.version = packager.getBuildVersion(self.tempdir, metadata, False, self.revision) self.basename = metadata.get("general", "basename") self.compat = [] for key, value in packager.KNOWN_APPS.iteritems(): if metadata.has_option('compat', key): minVersion, maxVersion = metadata.get('compat', key).split('/') self.compat.append({ 'id': value, 'minVersion': minVersion, 'maxVersion': maxVersion })