Exemplo n.º 1
0
  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")
Exemplo n.º 2
0
    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')
            })
Exemplo n.º 3
0
  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")
Exemplo n.º 5
0
  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
Exemplo n.º 6
0
    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
Exemplo n.º 7
0
    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
Exemplo n.º 8
0
    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 = []
Exemplo n.º 9
0
    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
Exemplo n.º 10
0
 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')
Exemplo n.º 11
0
 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})
Exemplo n.º 12
0
 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
             })