Re: [releng] Do not use <tarball> elements for different module types



Hey,

Frédéric, this change breaks two things:

 + gtk-sharp/gnome-sharp now have a autogen-sh attribute for the
   autotools tag, and that references a file that doesn't exist in the
   tarballs, so build fails

 + gnome-color-manager has a autogen.sh in the tarball, but it doesn't
   work well (it tries to link the m4 directory, which already exists)

I guess the change you did makes some sense. How about forcing
autogen-sh to configure for all those <autotools> entries? That should
fix the issue, I guess?

Cheers,

Vincent

Le jeudi 01 juillet 2010, à 18:02 +0000, Frederic Peters a écrit :
> commit 5a3b3fb28c447d15867634b0242abd95ffb0c2a7
> Author: Fr??d??ric P??ters <fpeters 0d be>
> Date:   Thu Jul 1 19:59:58 2010 +0200
> 
>     Do not use <tarball> elements for different module types
>     
>     This keeps the module type node name (<autotools>, <waf>...) and creates a
>     <branch/> node within, pointing to a tarball repository, instead of creating
>     straight <tarball> elements, as they are just thin wrappers for autotools.
> 
>  tools/smoketesting/convert-to-tarballs.py |   56 ++++++++++++++++++++++-------
>  1 files changed, 43 insertions(+), 13 deletions(-)
> ---
> diff --git a/tools/smoketesting/convert-to-tarballs.py b/tools/smoketesting/convert-to-tarballs.py
> index f6da3c6..bdde276 100755
> --- a/tools/smoketesting/convert-to-tarballs.py
> +++ b/tools/smoketesting/convert-to-tarballs.py
> @@ -150,6 +150,15 @@ class Options:
>                  return True
>          return False
>  
> +    def get_base_site(self, cvssite, modulename):
> +        for list in self.module_locations:
> +            if list[0] == modulename:
> +                return list[1]
> +        for list in self.cvs_locations:
> +            if re.search(list[0] + '$', cvssite):
> +                return list[1]
> +        raise IOError('No download site found!\n')
> +
>      def get_download_site(self, cvssite, modulename):
>          for list in self.module_locations:
>              if list[0] == modulename:
> @@ -673,9 +682,19 @@ class ConvertToTarballs:
>          self.all_versions = []
>          self.no_max_version = []
>          self.locator = TarballLocator(tarballdir, options.mirrors, not versions_only, local_only)
> +        self.known_repositories = []
> +        self.known_repositories_nodes = []
> +
> +    def _create_tarball_repo_node(self, document, href):
> +        repo = document.createElement('repository')
> +        repo.setAttribute('href', href)
> +        repo.setAttribute('name', href)
> +        repo.setAttribute('type', 'tarball')
> +        self.known_repositories_nodes.append(repo)
>  
>      def _create_tarball_node(self, document, node):
> -        tarball = document.createElement('tarball')
> +        assert node.nodeName != 'tarball'
> +        tarball = document.createElement(node.nodeName)
>          attrs = node.attributes
>          cvsroot = None
>          for attrName in attrs.keys():
> @@ -694,8 +713,9 @@ class ConvertToTarballs:
>              attrNode = attrs.get(attrName)
>              attrValue = attrNode.nodeValue
>              tarball.setAttribute(attrName, attrValue)
> -        source_node = document.createElement('source')
> -        tarball.appendChild(source_node)
> +
> +        branch_node = document.createElement('branch')
> +        tarball.appendChild(branch_node)
>  
>          if cvsroot == None:  # gnome cvs
>              cvsroot = 'gnome.org'
> @@ -710,15 +730,20 @@ class ConvertToTarballs:
>          try:
>              name = self.options.translate_name(id)
>              real_name = self.options.get_real_name(name)
> +            repo = self.options.get_base_site(cvsroot, real_name)
> +            if not repo in self.known_repositories:
> +                self._create_tarball_repo_node(document, repo)
> +                self.known_repositories.append(repo)
>              baselocation = self.options.get_download_site(cvsroot, real_name)
>              max_version = self.options.get_version_limit(name)
>              location, version, hash, size = \
>                        self.locator.find_tarball(baselocation, real_name, max_version)
>              print '  ', location, version, hash, size
> -            tarball.setAttribute('version', version)
> -            source_node.setAttribute('href', location)
> -            source_node.setAttribute('size', size)
> -            source_node.setAttribute('hash', hash)
> +            branch_node.setAttribute('version', version)
> +            branch_node.setAttribute('repo', repo)
> +            branch_node.setAttribute('module', location[len(repo):])
> +            branch_node.setAttribute('size', size)
> +            branch_node.setAttribute('hash', hash)
>              self.all_tarballs.append(name)
>              self.all_versions.append(version)
>          except IOError:
> @@ -728,9 +753,9 @@ class ConvertToTarballs:
>              print ''
>              self.not_found.append(id)
>              tarball.setAttribute('version', 'EAT-YOUR-BRAAAAAANE')
> -            source_node.setAttribute('href', 'http://somewhere.over.the.rainbow/where/bluebirds/die')
> -            source_node.setAttribute('size', 'HUGE')
> -            source_node.setAttribute('hash', 'md5:blablablaihavenorealclue')
> +            branch_node.setAttribute('href', 'http://somewhere.over.the.rainbow/where/bluebirds/die')
> +            branch_node.setAttribute('size', 'HUGE')
> +            branch_node.setAttribute('hash', 'md5:blablablaihavenorealclue')
>          if revision and not max_version:
>              self.no_max_version.append(id)
>          return tarball
> @@ -789,7 +814,7 @@ class ConvertToTarballs:
>                      save_entry_as_is = True
>                  elif node.nodeName == 'include':
>                      location = node.attributes.get('href').nodeValue
> -                    newname = self.fix_file(location)
> +                    newname = self.fix_file(location, include_repositories=False)
>                      # Write out the element name.
>                      entry = document.createElement(node.nodeName)
>                      # Write out the attributes.
> @@ -802,6 +827,9 @@ class ConvertToTarballs:
>                              entry.setAttribute(attrName, attrValue)
>                  else:
>                      save_entry_as_is = True
> +                    if node.nodeName == 'branch':
> +                        if len(node.attributes.keys()) == 0:
> +                            continue
>  
>                  if save_entry_as_is:
>                      # Write out the element name.
> @@ -821,7 +849,7 @@ class ConvertToTarballs:
>      def cleanup(self):
>          self.locator.cleanup()
>  
> -    def fix_file(self, input_filename):
> +    def fix_file(self, input_filename, include_repositories=True):
>          newname = re.sub(r'^([-a-z]+?)(?:-[0-9\.]*)?(.modules)$',
>                           r'\1-' + self.version + r'\2',
>                           input_filename)
> @@ -839,7 +867,6 @@ class ConvertToTarballs:
>                  sys.stderr.write('Cannot proceed; would overwrite versions\n')
>                  sys.exit(1)
>  
> -        print input_filename
>          old_document = minidom.parse(os.path.join(self.sourcedir, input_filename))
>          oldRoot = old_document.documentElement
>  
> @@ -848,6 +875,9 @@ class ConvertToTarballs:
>          new_document.appendChild(newRoot)
>  
>          self._walk(oldRoot, newRoot, new_document)
> +        if include_repositories:
> +            for repo in self.known_repositories_nodes:
> +                newRoot.appendChild(repo)
>  
>          if not self.versions_only:
>              newfile = file(newname, 'w+')

> _______________________________________________
> commits-list mailing list (read only)
> http://mail.gnome.org/mailman/listinfo/commits-list
> 
> Want to limit the commits to a few modules? Go to above URL, log in to edit your options and select the modules ('topics') you want.


-- 
Les gens heureux ne sont pas pressés.


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]