r11515 - in /tools/snapshots: ./ scripts/ scripts/pkg-gnome-package scripts/svn-pkg

kilian at users.alioth.debian.org kilian at users.alioth.debian.org
Wed Jun 13 20:12:02 UTC 2007


Author: kilian
Date: Wed Jun 13 20:12:02 2007
New Revision: 11515

URL: http://svn.debian.org/wsvn/pkg-gnome/?sc=1&rev=11515
Log:
Import of the pkg-gnome snapshots script for Buildserver.NET.
Still lacks syncing with the one from
svn://svn.debian.org/kernel/people/waldi/scripts/snapshot/package.py plus the
following additions:
1. put the get-orig-source fetching and source tarball verification into the
   latest version from waldi to get external config flexibility
2. get config from pkg-gnome SVN rather than locally
3. cleanup gen/ dir unconditionally

Added:
    tools/snapshots/
    tools/snapshots/scripts/
    tools/snapshots/scripts/pkg-gnome-package   (with props)
    tools/snapshots/scripts/svn-pkg   (with props)

Added: tools/snapshots/scripts/pkg-gnome-package
URL: http://svn.debian.org/wsvn/pkg-gnome/tools/snapshots/scripts/pkg-gnome-package?rev=11515&op=file
==============================================================================
--- tools/snapshots/scripts/pkg-gnome-package (added)
+++ tools/snapshots/scripts/pkg-gnome-package Wed Jun 13 20:12:02 2007
@@ -1,0 +1,501 @@
+#!/usr/bin/env python2.4
+
+# Copyright (C) 2005 Bastian Blank <waldi at debian.org>
+#
+# 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
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+import debian_linux, os, os.path, shutil, sys, time
+
+base = os.path.expanduser("~/debian/pkg-gnome/snapshot")
+repository = "svn://svn.debian.org/svn/pkg-gnome/"
+orig_base = os.path.expanduser("~/debian/pkg-gnome/orig")
+
+def _spawnvefn(mode, file, args, env, func, prepare, prepare_arg):
+    # Internal helper; func is the exec*() function to use
+    pid = os.fork()
+    if not pid:
+        # Child
+        prepare(prepare_arg)
+        try:
+            if env is None:
+                func(file, args)
+            else:
+                func(file, args, env)
+        except:
+            os._exit(127)
+    else:
+        # Parent
+        if mode == os.P_NOWAIT:
+            return pid # Caller is responsible for waiting!
+        while 1:
+            wpid, sts = os.waitpid(pid, 0)
+            if os.WIFSTOPPED(sts):
+                continue
+            elif os.WIFSIGNALED(sts):
+                return -os.WTERMSIG(sts)
+            elif os.WIFEXITED(sts):
+                return os.WEXITSTATUS(sts)
+            else:
+                raise error, "Not stopped, signaled or exited???"
+
+def spawnv_chdir(mode, file, args, dir):
+    return _spawnvefn(mode, file, args, None, os.execvp, spawnv_prepare, dir)
+
+def spawnv_prepare(arg):
+    fd = os.open('/dev/null', os.O_WRONLY)
+    os.dup2(fd, 1)
+    os.close(fd)  
+    os.chdir(arg)
+
+class storage(object):
+    def __init__(self, dir):
+        self.dir = dir
+
+    def _cp(self, source, target, prune = []):
+        source = os.path.normpath(source)
+        source_list = source.split(os.sep) 
+        try: 
+            os.stat(target)
+        except OSError:
+            self._mk(target)
+        for root, dirs, files in os.walk(source):
+            rel_root_list = root.split(os.sep)[len(source_list):]
+            rel_root = os.sep.join(rel_root_list)
+            target_root = os.path.join(target, rel_root)
+            for i in prune:
+                try:
+                    dirs.remove(i)
+                except ValueError:
+                    pass
+            for name in dirs:
+                os.mkdir(os.path.join(target_root, name))
+            for name in files:
+                shutil.copy(os.path.join(root, name), os.path.join(target_root, name))
+
+    def _exec(self, executable, args):
+        args_real = [executable.split(os.sep)[-1]] + args
+        ret = os.spawnv(os.P_WAIT, executable, args_real)
+        #if ret:
+        #    raise ExecutionError(ret)
+
+    def _exec_chdir(self, executable, args, dir, force = False, output = True):
+        args_real = [executable.split(os.sep)[-1]] + args
+        ret = spawnv_chdir(os.P_WAIT, executable, args_real, dir)
+        if ret:
+            raise ExecutionError(ret)
+
+    def _mk(self, dir):
+        try:
+            os.makedirs(dir, 0755)
+        except OSError:
+            pass
+
+    def _rm(self, dir):
+        try:
+          shutil.rmtree(dir)
+        except OSError:
+          pass
+
+    def copy(self, target, target_class = None, **args):
+        self._rm(target)
+        self._cp(self.dir, target)
+        if not target_class:
+            target_class = self.__class__
+        return target_class(target, **args)
+
+    def remove(self):
+        self._rm(self.dir)
+
+class repository_svn(storage):
+    def __init__(self, dir, path):
+        storage.__init__(self, dir)
+        self.path = path
+        self.checkout()
+
+    def checkout(self):
+        path_real = '%s/%s' % (repository, self.path)
+        args = ['co', '-q', path_real, self.dir]
+        self.exec_svn(args)
+
+    def exec_svn(self, args):
+        try:
+          self._exec("/usr/bin/svn", args)
+        except OSError: pass
+
+def checkout(path):
+    checkout_dir = "checkout-" + path.replace('/', '_')
+    print "Updating %s ..." % (path)
+    repository_svn(checkout_dir, path)
+
+def package(path, dist, dist_version):
+    checkout_dir = "checkout-" + path.replace('/', '_')
+    last_file = "last-" + path.replace('/', '_') + '-' + dist
+    checkout_storage = storage(checkout_dir)
+    changelog_entry = debian_linux.read_changelog(checkout_dir)[0]
+    package_name = changelog_entry['Source']
+    package_version = changelog_entry['Version']['upstream']
+    package = "%s-%s" % (package_name, package_version)
+    package_dir = "gen/%s" % package
+    package_orig_tar = "%s_%s.orig.tar.gz" % (package_name, package_version)
+    buildwithsource = False
+
+    for line in os.popen("svn info %s" % checkout_dir, 'r').read().split('\n'):
+        if line.startswith('Last Changed Rev: '):
+            revision = int(line.split()[-1])
+
+    last_revision = 0
+    last_upstream = None
+    if os.path.exists(last_file):
+        i = file(last_file).read().strip()
+        last_revision, last_upstream = i.split()
+        last_revision = int(last_revision)
+    if not os.path.exists("out"):
+        os.makedirs("out" , 0755)
+
+    if revision <= last_revision:
+        return True
+
+    sys.stdout.write("Processing %s (%s)...\n" % (path,dist))
+    sys.stdout.flush()
+    version_upstream = changelog_entry['Version']['upstream']
+    version_debian = changelog_entry['Version']['debian']
+    if changelog_entry['Distribution'] in ('stable', 'testing', 'unstable', 'experimental'):
+        version_debian_delemiter = '.'
+    elif changelog_entry['Distribution'] in ('UNRELEASED',):
+        version_debian_delemiter = '~'
+    else:
+        raise "Unknown distribution"
+
+    package_storage = checkout_storage.copy(package_dir, storage)
+    try:
+	os.symlink("../tarballs", "gen/tarballs")
+    except OSError: pass
+    if version_debian != None:
+      if not os.path.isfile(base + "/tarballs/" + package_orig_tar):
+	spawnv_chdir(os.P_WAIT, "debian/rules", ['debian/rules', 'get-orig-source'], checkout_dir)
+        buildwithsource = True
+      #print "Checking tarball %s ..." % ('../tarballs/' + package_orig_tar,)
+      if not os.path.isfile(base + "/tarballs/" + package_orig_tar):
+        print "No tarball fetched. Will try fresh download next time."
+        return False
+      if os.spawnv(os.P_WAIT, "/bin/gzip", [ 'gzip', '-t', base + '/tarballs/' + package_orig_tar]):
+	print "Tarball invalid! Removing. Will try fresh download next time."
+	os.unlink(base + '/tarballs/' + package_orig_tar)
+	return False
+      #else:
+      #  print "Tarball valid."
+      suffices = '.diff.gz', '.dsc', '_source.changes'
+      version_debian += "%c%s.%d" % (version_debian_delemiter, dist_version, revision)
+      version_debian_prefix = '-'
+      if not os.path.isfile("out/%s" % package_orig_tar):
+	try:
+	  os.symlink("../tarballs/" + package_orig_tar, "out/%s" % package_orig_tar)
+	except OSError: pass
+    else:
+      #print "Native debian, no source needed."
+      buildwithsource = True
+      suffices = '.tar.gz', '.dsc', '_source.changes'
+      version_debian = "%c%s.%d" % (version_debian_delemiter, dist_version, revision)
+      version_debian_prefix = ''
+
+    backport_dist = 'debian/backports/%s' % dist_version
+    if os.path.exists(package_dir + '/' + backport_dist):
+	spawnv_chdir(os.P_WAIT, backport_dist, [backport_dist], package_dir)
+        text_backport = ' - automatically backported to %s' % dist
+    else:
+        text_backport = ''
+
+    changelog = "%s/debian/changelog" % package_dir
+    changelog_text = file(changelog).read()
+    os.unlink(changelog)
+    f = file(changelog, "w")
+    f.write("""\
+%s (%s%s%s) %s; urgency=low
+
+  * SVN snapshot for the pkg-gnome team%s.
+    Mail pkg-gnome-maintainers at lists.alioth.debian.org in case of problems.
+
+ -- Kilian Krause <kilian at debian.org>  %s
+
+""" % (
+        package_name, changelog_entry['Version']['source'], version_debian_prefix, 
+        version_debian, 'pkg-gnome-' + dist, text_backport, 
+        time.strftime("%a, %d %b %Y %H:%M:%S +0000", time.gmtime()),
+    )
+)
+    f.write(changelog_text)
+    del f
+
+    svn_pkg = os.path.expanduser("~/bin/svn-pkg")
+    list = ['svn-pkg', '-k63FA8478', '-S', '-d', '--svn-ignore', '-rfakeroot', '--svn-noninteractive']
+    if buildwithsource:
+	spawnv_chdir(os.P_WAIT, svn_pkg, list + ['-sa'], package_dir)
+	buildwithsource = False
+    else:
+	spawnv_chdir(os.P_WAIT, svn_pkg, list + ['-sd'], package_dir)
+
+    for suffix in (suffices):
+        prefix = '%s_%s%s%s' % (package_name, package_version, version_debian_prefix, version_debian)
+        #print "Moving: %s%s" % (prefix, suffix)
+        os.link("gen/build-area/%s%s" % (prefix, suffix), "out/%s%s" % (prefix, suffix))
+        os.unlink("gen/build-area/%s%s" % (prefix, suffix))
+
+    #print "Moved all resulting files to out."
+    file(last_file, 'w').write("%d %s\n" % (revision, version_upstream))
+
+    #print "Cleaning up."
+    package_storage.remove()
+
+    #print "Uploading."
+    spawnv_chdir(os.P_WAIT, 'dupload', ['dupload', '--to', 'seraph', '%s_%s%s%s_source.changes' % (package_name, package_version, version_debian_prefix, version_debian)], "out")
+    #print "Done with %s_%s-%s.\n\n" % (package_name,package_version,version_debian)
+    return True
+
+def main():
+    maps_dists = {
+	"desktop/unstable/atk1.0":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/at-spi":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/bug-buddy":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/control-center":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/dasher":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/eel2":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/ekiga":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/eog":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/epiphany-browser":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/evince":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/file-roller":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/gail":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/gcalctool":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/gconf2":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/gconf-editor":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/gedit":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/glade":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/glib2.0":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/gnome-applets":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/gnome-backgrounds":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/gnome-common":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/gnome-desktop":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/gnome-doc-utils":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/gnome-games":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/gnome-games-extra-data":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/gnome-icon-theme":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/gnome-keyring":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/gnome-keyring-manager":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/gnome-mag":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/gnome-media":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/gnomemeeting":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/gnome-menus":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/gnome-mime-data":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/gnome-netstatus":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/gnome-nettool":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/gnome-panel":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/gnome-python":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/gnome-python-desktop":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/gnome-screensaver":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/gnome-session":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/gnome-system-monitor":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/gnome-system-tools":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/gnome-terminal":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/gnome-themes":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/gnome-user-docs":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/gnome-utils":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/gnome-vfs2":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/gok":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/gtk+2.0":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/gtk2-engines":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/gtk-doc":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/gtksourceview":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/gucharmap":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/intltool":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/libart-lgpl":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/libbonobo":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/libbonoboui":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/libcroco":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/libgail-gnome":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/libglade2":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/libgnomecanvas":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/libgnome":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/libgnomeprint":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/libgnomeprintui":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/libgnomeui":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/libgtkhtml2":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/libgtop2":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/librsvg":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/libsoup":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/libwnck":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/libxklavier":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/metacity":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/meta-gnome2":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/nautilus-cd-burner":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/nautilus":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/pango1.0":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/pessulus":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/pygobject":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/pygtk":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/pyorbit":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/sabayon":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/sound-juicer":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/startup-notification":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/system-tools-backends":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/totem":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/vino":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/vte":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/yelp":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/unstable/zenity":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/alleyoop":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/balsa":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/brasero":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/clearlooks":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/contact-lookup-applet":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/devhelp":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/devilspie":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/doc-gnome-hig":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/epiphany-extensions":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/gaim":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/gamin":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/gazpacho":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/gdesklets-data":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/gdesklets":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/gdm-themes":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/ghex":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/gksu":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/glabels":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/gnome-bluetooth":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/gnome-cups-manager":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/gnome-hearts":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/gnome-mud":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/gnome-python-extras":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/gnome-spell":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/gnome-themes-extras":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/gossip":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/gtetrinet":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/gtodo-applet":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/gtodo":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/gtranslator":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/gweled":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/gwget2":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/gyrus":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/industrial-cursor-theme":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/leafpad":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/libgda2":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/libgksu1.2":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/libgksu":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/libgksuui1.0":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/libgnetwork":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/libgnomecups":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/libgnomedb":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/libgnomesu":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/loudmouth":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/mergeant":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/mozilla-bonobo":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/nautilus-actions":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/nautilus-sendto":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/netspeed":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/notification-daemon":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/rhythmbox":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/shared-mime-info":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/tsclient":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/update-manager":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/update-notifier":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"packages/unstable/xchat-gnome":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"tools/gnome-pkg-tools":	("ubuntu-dapper", "ubuntu-feisty", "ubuntu-edgy", "debian-sid", "debian-etch", "debian-sarge"),
+	"desktop/experimental/bug-buddy":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+	"desktop/experimental/control-center":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+	"desktop/experimental/eel2":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+	"desktop/experimental/ekiga":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+	"desktop/experimental/epiphany-browser":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+	"desktop/experimental/evince":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+	"desktop/experimental/file-roller":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+	"desktop/experimental/gail":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+	"desktop/experimental/gedit":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+	"desktop/experimental/glade-3":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+	"desktop/experimental/glib2.0":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+	"desktop/experimental/gnome-applets":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+	"desktop/experimental/gnome-desktop":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+	"desktop/experimental/gnome-media":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+	"desktop/experimental/gnome-nettool":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+	"desktop/experimental/gnome-python":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+	"desktop/experimental/gnome-python-desktop":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+	"desktop/experimental/gnome-screensaver":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+	"desktop/experimental/gnome-session":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+	"desktop/experimental/gnome-system-monitor":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+	"desktop/experimental/gnome-terminal":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+	"desktop/experimental/gnome-themes":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+	"desktop/experimental/gnome-utils":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+	"desktop/experimental/gnome-vfs2":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+	"desktop/experimental/gtk+2.0":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+	"desktop/experimental/gtk2-engines":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+	"desktop/experimental/libbonobo":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+	"desktop/experimental/libbonoboui":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+	"desktop/experimental/libgnomeprint":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+	"desktop/experimental/libgnomeprintui":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+	"desktop/experimental/libgnomeui":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+	"desktop/experimental/libgtop2":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+	"desktop/experimental/librsvg":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+	"desktop/experimental/libwnck":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+	"desktop/experimental/libxklavier":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+	"desktop/experimental/metacity":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+	"desktop/experimental/nautilus-cd-burner":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+	"desktop/experimental/nautilus":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+	"desktop/experimental/pessulus":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+	"desktop/experimental/pygobject":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+	"desktop/experimental/pygtk":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+	"desktop/experimental/pyorbit":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+	"desktop/experimental/sound-juicer":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+	"desktop/experimental/vte":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+	"desktop/experimental/yelp":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+	"desktop/experimental/zenity":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+	"packages/experimental/brasero":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+	"packages/experimental/epiphany-extensions":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+	"packages/experimental/gossip":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+	"packages/experimental/libgda2":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+	"packages/experimental/libgda3":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+	"packages/experimental/nautilus-python":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+	"packages/experimental/rhythmbox":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+	"packages/experimental/update-manager":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+	"packages/experimental/xchat-gnome":	("ubuntu-dapper-experimental", "ubuntu-feisty-experimental", "ubuntu-edgy-experimental", "debian-sid-experimental", "debian-etch-experimental", "debian-sarge-experimental"),
+    }
+    maps_version = {
+        "debian-etch": "etch",
+        "debian-sarge": "sarge",
+        "debian-sid": "sid",
+        "ubuntu-feisty": "feisty",
+        "ubuntu-edgy": "edgy",
+        "ubuntu-dapper": "dapper",
+        "debian-etch-experimental": "etch+experimental",
+        "debian-sarge-experimental": "sarge+experimental",
+        "debian-sid-experimental": "sid+experimental",
+        "ubuntu-feisty-experimental": "feisty+experimental",
+        "ubuntu-edgy-experimental": "edgy+experimental",
+        "ubuntu-dapper-experimental": "dapper+experimental",
+    }
+    if len(sys.argv) > 1:
+        paths = sys.argv[1:]
+    else:
+        paths = maps_dists.keys()
+    for path in paths:
+      checkout(path)
+      try:
+          for dist in maps_dists[path]:
+              if not package(path, dist, maps_version[dist]):
+                  break
+      except:
+          pass
+
+if __name__ == '__main__':
+    os.chdir(base)
+    main()
+
+# vim:set ai et sts=2 sw=2 tw=80:

Propchange: tools/snapshots/scripts/pkg-gnome-package
------------------------------------------------------------------------------
    svn:executable = *

Added: tools/snapshots/scripts/svn-pkg
URL: http://svn.debian.org/wsvn/pkg-gnome/tools/snapshots/scripts/svn-pkg?rev=11515&op=file
==============================================================================
--- tools/snapshots/scripts/svn-pkg (added)
+++ tools/snapshots/scripts/svn-pkg Wed Jun 13 20:12:02 2007
@@ -1,0 +1,568 @@
+#!/usr/bin/perl
+# (c) Eduard Bloch <blade at debian.org>, 2003
+# License: GPL
+# Version: $Id: svn-buildpackage 2100 2005-10-13 19:29:24Z par ame ter $
+
+#use Getopt::Long;
+use Getopt::Long qw(:config no_ignore_case bundling pass_through);
+use File::Basename;
+use Cwd;
+use SVN::Client;
+#use diagnostics;
+
+$startdir=getcwd;
+chomp($tmpfile=`mktemp`);
+$scriptname="[svn-buildpackage]";
+
+sub help {
+print "
+Usage: svn-buildpackage [ OPTIONS... ] [ OPTIONS for dpkg-buildpackage ]
+Builds Debian package within the SVN repository. The source code
+repository must be in the format created by svn-inject, and this script
+must be executed from the work directory (trunk/package).
+
+  -h, --help         Show the help message
+  --svn-dont-clean   Don't run debian/rules clean (default: clean first)
+  --svn-dont-purge   Don't wipe the build directory (default: purge after build)
+  --svn-no-links     Don't use file links (default: use where possible)
+  --svn-ignore-new   Don't stop on svn conflicts or new/changed files
+  --svn-verbose      More verbose program output
+  --svn-builder CMD  Use CMD as build command instead of dpkg-buildpackage
+  --svn-override a=b Override some config variable (comma separated list)
+  --svn-move         move package files to .. after successful build
+  --svn-move-to XYZ  move package files to XYZ, implies --svn-move
+  --svn-only-tag     Tags the current trunk directory without building
+  --svn-tag          Final build: Export && build && tag && dch -i
+  --svn-retag        replace an existing tag directory if found while tagging
+  --svn-lintian      Run lintian after the build. s/lintian/linda/ to use linda
+  --svn-pkg PACKAGE  Specifies the package name
+  --svn-export       Just prepares the build directory and exits
+  --svn-reuse        Reuse an existing build directory, copy trunk over it
+  --svn-noninteractive Don't ask question
+
+If the debian directory has the mergeWithUpstream property, svn-buildpackage
+will extract .orig.tar.gz file first and add the Debian files to it.
+
+"; exit 1;
+}
+$quiet="-q";
+my $opt_help;
+my $opt_verbose;
+my $opt_dontclean;
+my $opt_dontpurge;
+my $opt_reuse;
+my $opt_ignnew;
+my $opt_tag;
+my $opt_only_tag;
+my $opt_lintian;
+my $opt_linda;
+my $opt_nolinks;
+my $opt_noninteractive;
+my $opt_pretag;
+my $opt_prebuild;
+my $opt_posttag;
+my $opt_postbuild;
+my $opt_buildcmd;
+my $opt_export;
+my $opt_pass_diff;
+my @opt_override;
+my $opt_move;
+my $package;
+my $arch;
+
+%options = (
+   "h|help"                => \$opt_help,
+   "svn-verbose"           => \$opt_verbose,
+   "svn-ignore-new|svn-ignore"        => \$opt_ignnew,
+   "svn-dont-clean"        => \$opt_dontclean,
+   "svn-export"            => \$opt_export,
+   "svn-dont-purge"        => \$opt_dontpurge,
+   "svn-reuse"             => \$opt_reuse,
+   "svn-only-tag"               => \$opt_only_tag,
+   "svn-tag-only"               => \$opt_only_tag,
+   "svn-tag"               => \$opt_tag,
+   "svn-retag"               => \$opt_retag,
+   "svn-lintian"           => \$opt_lintian,
+   "svn-linda"           => \$opt_linda,
+   "svn-no-links"          => \$opt_nolinks,
+   "svn-noninteractive"    => \$opt_noninteractive,
+   "svn-pass-diff"          => \$opt_pass_diff,
+   "svn-prebuild=s"             => \$opt_prebuild,
+   "svn-postbuild=s"             => \$opt_postbuild,
+   "svn-pretag=s"             => \$opt_pretag,
+   "svn-posttag=s"             => \$opt_posttag,
+   # and for compatibility wit old config directives
+   "pre-tag-action=s"      => \$opt_pretag,
+   "post-tag-action=s"     => \$opt_posttag,
+   "pre-build-action=s"    => \$opt_prebuild,
+   "post-build-action=s"   => \$opt_postbuild,
+   "svn-move"             => \$opt_move,
+   "svn-move-to=s"             => \$opt_move_to,
+   "svn-builder=s"             => \$opt_buildcmd,
+   "svn-override=s"             => \@opt_override,
+   "svn-pkg=s"             => \$package
+);
+
+use lib "/usr/share/svn-buildpackage";
+use SDCommon;
+
+&help if ($ARGV[0] eq "-h" || $ARGV[0] eq "--help");
+
+SDCommon::init;
+
+sub setenv {
+   ($key, $val) = @_;
+   return 0 if(!defined($val));
+   print "ENV: $key=$val\n" if $opt_verbose;
+   $ENV{$key}=$val;
+}
+
+sub setallenv {
+   $tagVersion=$SDCommon::tagVersion;
+   $upVersion=$SDCommon::upVersion;
+   $tagVersionNonEpoch = $tagVersion;
+   $tagVersionNonEpoch =~ s/^[^:]*://;
+
+   #this sucks but the config file needs to be processed before the options and there should be reasonable default
+   setenv("PACKAGE", defined($package) ? $package : $SDCommon::package);
+   setenv("package", defined($package) ? $package : $SDCommon::package);
+   setenv "TAG_VERSION", $tagVersion;
+   setenv "debian_version", $tagVersion;
+   setenv "non_epoch_version", $tagVersionNonEpoch;
+   setenv "upstream_version", $upVersion;
+   setenv "SVN_BUILDPACKAGE", $SDCommon::version;
+   setenv "guess_loc", ( ($package=~/^(lib.)/)?$1:substr($package,0,1))."/$package"."_$upVersion.orig.tar.gz";
+}
+
+&setallenv;
+
+sub runcmd {
+  if ($ENV{DEBIAN_FRONTEND} =~ /^force-interactive$/ || !$opt_noninteractive) {
+    withecho(@_);
+    } else {
+   #print "Running noninteractive: @_:\n";
+    withechoNoPrompt(@_);
+    }
+}
+
+for $file ($ENV{"HOME"}."/.svn-buildpackage.conf", ".svn/svn-buildpackage.conf") {
+    
+    if(open($rc, $file)) {
+        SKIP: while(<$rc>) {
+            chomp;
+            next SKIP if /^#/;
+            # drop leading spaces
+            s/^\s+//;
+            if(/^\w/) {
+                # remove spaces between
+                s/^(\S+)\s*=\s*/$1=/;
+                # convert to options and push to args
+                s/^/--/;
+                $_=`echo -n $_` if(/[\$`~]/);
+                push(@CONFARGS, $_);
+            }
+        }
+        close($rc);
+    }
+}
+
+if($#CONFARGS>=0) {
+   @ARGV=(@CONFARGS, @ARGV);
+   print "Imported config directives:\n\t".join("\n\t", @CONFARGS)."\n";
+}
+
+&help unless ( GetOptions(%options));
+&help if ($opt_help);
+$quiet="" if ($opt_verbose);
+$opt_quiet=$quiet;
+# if opt_only_tag is used, set opt_tag too. Should not hurt because the
+# real function of opt_tag at the end of the script is never reached
+$opt_tag = 1 if($opt_only_tag);
+$opt_move=1 if $opt_move_to;
+$destdir=long_path($opt_move_to ? $opt_move_to : "$startdir/..");
+$SDCommon::opt_verbose=$opt_verbose;
+$package = $SDCommon::package if(!$package);
+
+runcmd "fakeroot debian/rules clean || debian/rules clean" if ! ($opt_dontclean || (`svn proplist debian` =~ /mergeWithUpstream/i));
+SDCommon::check_uncommited if(!$opt_ignnew);
+
+SDCommon::configure;
+needs_tagsUrl if($opt_tag);
+$c=\%SDCommon::c;
+
+#some things may have been overriden by user options
+&setallenv;
+
+
+if($opt_buildcmd || $opt_export) {
+   @builder = split / /, $opt_buildcmd;
+   if($opt_buildcmd=~/;|\||&/) {
+      print "I: Looks like a shell construct in the build command, running trough the shell\n";
+      #@builder = (join(" ", @builder, @ARGV));
+      # become a single command again and let perl run it trough the shell
+      $cmd=$opt_buildcmd." ".join(" ", @ARGV);
+      @builder = ($cmd);
+      undef @ARGV;
+   }
+}
+else {
+   push(@builder, "dpkg-buildpackage");
+   # a simple "helper". Only executed if no custom command is choosen and
+   # no -d switch is there
+   {
+      if(  (!grep {$_ eq "-d"} @ARGV)
+      && (! withechoNoPrompt("dpkg-checkbuilddeps")) )
+      {
+         die "Insufficient Build-Deps, stop!\n";
+      }
+   }
+}
+
+if(`dpkg-parsechangelog` =~ /(NOT\ RELEASED\ YET)|(UNRELEASED;)/) {
+   print STDERR "NOT RELEASED YET tag found - you don't want to release it with it, do you?\n";
+   die "Aborting now, set \$FORCETAG to ignore it.\n" if($opt_tag && !$ENV{"FORCETAG"});
+}
+
+ at opt_override = split(/,|\ |\r|\n/,join(',', at opt_override));
+for(@opt_override) {
+   $SDCommon::nosave=1;
+   if(/(.*)=(.*)/) {
+      print "Overriding variable: $1 with $2\n" if $opt_verbose;
+      $$c{$1}=$2;
+   }
+   else {
+      print "Warning, unable to parse the override string: $_\n";
+   }
+}
+
+sub checktag {
+   if(insvn($$c{"tagsUrl"}."/$tagVersion")) {
+      if($opt_retag) {
+         runcmd ("svn", "-m", "$scriptname Removing old tag $package-$tagVersion", "rm", $$c{"tagsUrl"}."/$tagVersion");
+      }
+      else {
+         die "Could not create tag copy\n".
+         $$c{"tagsUrl"}."/$tagVersion - it
+does already exist. Add the --svn-retag option to replace that tag.\n";
+      }
+   }
+}
+
+for(keys %{$c}) {
+   $val=$$c{$_};
+   setenv $_, $$c{$_};
+}
+
+if($opt_only_tag) {
+   checktag;
+   chdir $$c{"trunkDir"};
+   system "$opt_pretag" if($opt_pretag);
+   runcmd ("svn", "-m", "$scriptname Tagging $package ($tagVersion)", "cp", $$c{"trunkUrl"}, $$c{"tagsUrl"}."/$tagVersion");
+   system "$opt_posttag" if($opt_posttag);
+   runcmd "dch -D UNRELEASED -i \"NOT RELEASED YET\"";
+   print "\nI: Done! Last commit pending, please execute manually.\n";
+   SDCommon::sd_exit 0;
+}
+
+print "D: ",$opt_prebuild if $opt_verbose;
+
+system "$opt_prebuild" if($opt_prebuild);
+
+$$c{"buildArea"}=long_path($startdir."/..")."/build-area" if(!$$c{"buildArea"});
+
+mkdir $$c{"buildArea"} if (! -d $$c{"buildArea"});
+
+$orig = $package."_".$upVersion.".orig.tar.gz";
+
+if ($$c{"origDir"}) {
+   $origExpect = $$c{"origDir"}."/$orig";
+   $origfile = long_path($origExpect) if (-f $origExpect);
+}
+else { $origExpect = "(location unknown)" };
+
+$ba=$$c{"buildArea"};
+$bdir="$ba/$package-$upVersion";
+
+if(!$opt_reuse && -e "$bdir") {
+   $backupNr=rand;
+   print STDERR "$bdir exists, renaming to $bdir.obsolete.$backupNr\n";
+   rename("$bdir","$bdir.obsolete.$backupNr");
+}
+
+mkdir "$ba" if(! -d "$ba");
+
+if(`svn proplist debian` =~ /mergeWithUpstream/i) {
+   print "mergeWithUpstream mode detected, looking for $origExpect\n";
+}
+
+# gets the upstream branch out of svn into .orig directory
+sub exportToOrigDir {
+   # no upstream source export by default and never in mergeWithUpstream mode
+   if((!$ENV{"FORCEEXPORT"}) || `svn proplist debian` =~ /mergeWithUpstream/i) {
+      return 0;
+   }
+   needs_upsCurrentUrl;
+   $upsVersUrl=$$c{"upsTagUrl"}."/$upVersion";
+   defined($$c{"upsCurrentUrl"}) || print STDERR "upsCurrentUrl not set and not located, expect problems...\n";
+   runcmd("rm", "-rf", "$bdir.orig");
+   runcmd "svn", "export",$$c{"upsCurrentUrl"},"$bdir.orig";
+}
+
+# non-Debian-native package detected, needing some kind of upstream source for
+# dpkg-buildpackage (most likely, spew error messages but continue on native
+# packages with dashes)
+if($tagVersion =~ /-/) {
+   my $abs_origfile=long_path($origfile);
+   my $orig_target="$ba/".$orig;
+   if($opt_verbose) {
+      print "Trying different methods to export the upstream source:\n";
+      print " - making hard or symbolic link from $origExpect\n" if (!$opt_nolinks);
+      print " - copying the tarball to the expected destination file\n";
+   }
+   else {
+      print "W: $abs_origfile not found, expect problems...\n" if(! -e $abs_origfile);
+   }
+   if($origfile && -e $abs_origfile) {
+      if(-e $orig_target) {
+         if(((stat($abs_origfile))[7]) != ((stat($orig_target))[7]))
+         {
+            die "$orig_target exists but differs from $abs_origfile!\nAborting, fix this manually...";
+         }
+      }
+      else {
+         # orig in tarball-dir but not in build-area
+         if($opt_nolinks) {
+            withechoNoPrompt("cp", long_path($origfile), "$ba/$orig") 
+            ||
+            exportToOrigDir;
+         }
+         else {
+            link(long_path($origfile),"$ba/".$orig) 
+            ||
+            symlink(long_path($origfile),"$ba/".$orig)
+            ||
+            withechoNoPrompt("cp",long_path($origfile),"$ba/$orig")
+            ||
+            exportToOrigDir;
+         }
+      }
+   }
+   else {
+      # no orig at all, try exporting
+      exportToOrigDir;
+   }
+}
+
+# contents examination for "cp -l" emulation
+print STDERR "Creating file list...\n" if $opt_verbose;
+sub collect_names {
+    push(@filelist, $_[0]);
+}
+my $ctx = new SVN::Client;
+$ctx->status("", "BASE", \&collect_names, 1, 1, 0, 1);
+# open($stat, "svn status -v |");
+#open($stat, "svn ls -R |");
+#while(<$stat>) {
+#    if(/^[^\?].*\d+\s+\d+\s+\S+\s+(.*)\n/) {
+#       $_=$1;
+#chomp;
+for(@filelist) {
+       if ($_ ne ".") {
+          if(-d $_) {
+             push(@dirs,$_); 
+             print STDERR "DIR: $_\n" if $opt_verbose;
+          } 
+          else { 
+             push(@files,$_); 
+             print STDERR "FILE: $_\n" if $opt_verbose;
+          }
+          s#/$##;
+          push(@stuff, $_);
+       }
+#    }
+}
+
+# sub cpl {
+#    ($from, $to) = @_;
+#    for(@dirs) {$_="$from/$_"}
+#    for(@files){$_="$from/$_"}
+#    
+#    system "cd $bdir && mkdir -p ".join(' ', at dirs)) +
+#          system "cp", "--parents", "-laf", @files), "$bdir/") ;
+#       }
+
+if(`svn proplist debian` =~ /mergeWithUpstream/i) {
+   print STDERR "I: mergeWithUpstream property set, looking for upstream source tarball...\n";
+   die "E: Could not find the origDir directory, please check the settings!\n" if(! -e $$c{"origDir"});
+   die "E: Could not find the upstream source file! (should be $origExpect)\n" if(! ($origfile && -e $origfile));
+   $mod=rand;
+   mkdir "$ba/tmp-$mod";
+   if($opt_reuse && -d $bdir) {
+      print "Reusing old build directory\n" if $opt_verbose;
+   }
+   else {
+      runcmd "tar", "zxf", $origfile, "-C", "$ba/tmp-$mod";
+      my @entries = (<$ba/tmp-$mod/*>);
+      if (@entries == 1) {
+         # The files are stored in the archive under a top directory, we
+         # presume
+         runcmd "mv", (<$ba/tmp-$mod/*>), $bdir;
+      }
+      else {
+         # Otherwise, we put them into a new directory
+         runcmd "mv", "$ba/tmp-$mod", $bdir;
+      }
+   }
+   if($opt_nolinks || $opt_ignnew) {
+      runcmd ("svn", "--force", "export", $$c{"trunkDir"},"$bdir");
+   }
+   else {
+      mkdir $bdir;
+      #fixme maybe rewrite to withecho
+      if( system("mkdir","-p", map { "$bdir/$_" } @dirs) + system ("cp", "--parents", "-laf", @files, $bdir) ) 
+      { # cp failed...
+         runcmd "svn", "--force", "export", $$c{"trunkDir"},"$bdir";
+      }
+   }
+   runcmd "rm", "-rf", "$ba/tmp-$mod";
+}
+else {
+   if($opt_nolinks) {
+      runcmd "svn","--force", "export",$$c{"trunkDir"},"$bdir";
+   }
+   else {
+      mkdir $bdir;
+      # stupid autodevtools are confused but... why?
+      if(system("mkdir", map { "$bdir/$_" } sort(@dirs)) + system ("cp", "--parents", "-laf", @files, $bdir) )
+      #open(tpipe, "| tar c --no-recursion | tar --atime-preserve -x -f- -C $bdir");
+      #for(@dirs) {print tpipe "$_\n"}
+      #close(tpipe);
+      #if(system ("cp", "--parents", "-laf", @files, $bdir))
+      { # cp failed...
+         system "rm", "-rf", $bdir;
+         runcmd "svn", "--force", "export",$$c{"trunkDir"},$bdir;
+      }
+   }
+}
+
+# a cludge...
+if($opt_pass_diff) {
+   $dirname="$package-$upVersion";
+   needs_upsCurrentUrl;
+
+   if(`svn status $$c{"trunkDir"}` =~ /(^|\n)(A|M|D)/m) {
+      print STDERR "Warning, uncommited changes found, using combinediff to merge them...\n";
+      chomp($afile=`mktemp`);
+      chomp($bfile=`mktemp`);
+      chomp($cfile=`mktemp`);
+      runcmd "svn diff ".$$c{"upsCurrentUrl"}." ".$$c{"trunkUrl"}." > $afile";
+      runcmd "cd ".$$c{"trunkDir"}." ; svn diff > $bfile";
+      runcmd "combinediff $afile $bfile > $cfile";
+      open(diffin, "cat $cfile |");
+   }
+   else {
+      open(diffin, "svn diff ".$$c{"upsCurrentUrl"}." ".$$c{"trunkUrl"}." |");
+   }
+   open(diffout,">$tmpfile");
+   # fix some diff junk
+   $invalid=1;
+   while(<diffin>) {
+      s!^--- (\S+).*!--- $dirname.orig/$1!;
+      s!^\+\+\+ (\S+).*!+++ $dirname/$1!;
+      $invalid=0 if(/^---/);
+      $invalid=1 if( (!$invalid) && /^[^+\-\t\ @]/);
+      $invalid || print diffout $_;
+   }
+   close(diffin);
+   close(diffout);
+   $ENV{"DIFFSRC"}=$tmpfile;
+}
+
+chdir $bdir || die "Mh, something is going wrong with builddir $bdir...";
+
+if($opt_export) { print "Build directory exported to $bdir\n"; exit 0;}
+
+if (!runcmd(@builder, at ARGV)) {
+   system "$opt_postbuild" if($opt_postbuild);
+   print STDERR "build command failed in $bdir\nAborting.\n";
+   print STDERR "W: build directory not purged!\n";
+   print STDERR "W: no lintian/linda checks done!\n" if($opt_lintian);
+   print STDERR "W: package not tagged!\n" if($opt_tag);
+   SDCommon::sd_exit 1;
+}
+else {
+    
+    system "$opt_postbuild" if($opt_postbuild);
+    
+    # no summary when using custom command
+    if(! $opt_buildcmd) {
+
+        chdir "..";
+        #for $arch (`dpkg --print-architecture`, "source") {
+        #    chomp($arch);
+        #    $chfile="$package"."_$tagVersionNonEpoch"."_$arch.changes";
+        #    last if(open($ch, "<$ba/$chfile"));
+        #}
+
+	# HACK HACK
+	$chfile="$package"."_$tagVersionNonEpoch"."_source.changes";
+
+        if(open($ch, "<$ba/$chfile")) {
+            while(<$ch>) { push(@newfiles, $1) if(/^\s\w+\s\d+\s\S+\s\w+\s(.+)\n/); }
+            close($ch);
+            push(@newfiles, "$ba/$chfile");
+
+            if($opt_move) {
+                $retval=!withechoNoPrompt("mv", @newfiles, $destdir);
+            }
+            else { $destdir=$ba; }
+
+            # expand the paths in the list and kick non-binary packages
+
+            map { if(/\.deb$/){ $_=" $destdir/$_"; $multi++}else{undef $_}} @newfiles;
+
+            #print STDERR `tput smso`, 
+	    #...
+            print STDERR "build command was successful; binaries are in $destdir/. ", 
+            "The changes file is:\n $destdir/$chfile.\n\n";
+            #`tput rmso`, "Binary package",
+            #($multi > 1 ? "s:\n" : ":\n"), 
+            #@newfiles, "\n";
+
+            print STDERR "Warning: $package should have an orig tarball but it does not!\n", 
+            if(($upVersion ne $tagVersion) && ($tagVersion =~/-1$/) && !-e "$destdir/$orig");
+        }
+        elsif($opt_verbose)
+        {
+            print STDERR "Could not read the .changes file";
+        }
+    }
+
+   # cleanup
+   if(!$opt_dontpurge) {
+      runcmd "rm", "-rf", $bdir if(length($tagVersion));
+      unlink $tmpfile;
+      unlink $afile;
+      unlink $bfile;
+      unlink $cfile;
+   }
+   
+   if($opt_lintian) {
+      runcmd "lintian", "$destdir/$chfile";
+   }
+
+   if($opt_linda) {
+      runcmd "linda", "$destdir/$chfile";
+   }
+
+   if($opt_tag) {
+      system "$opt_pretag" if($opt_pretag);
+      checktag;
+      runcmd ("svn", "-m", "$scriptname Tagging $package ($tagVersion)", "cp", $$c{"trunkUrl"}, $$c{"tagsUrl"}."/$tagVersion");
+      system "$opt_posttag" if($opt_posttag);
+      chdir $$c{"trunkDir"};
+      runcmd "dch", "-D", "UNRELEASED", "-i", "NOT RELEASED YET";
+      print "\nI: Done! Created the next changelog entry, please commit later or revert.\n";
+   }
+}
+SDCommon::sd_exit 0+$retval;

Propchange: tools/snapshots/scripts/svn-pkg
------------------------------------------------------------------------------
    svn:executable = *




More information about the pkg-gnome-commits mailing list