From 948032d8a37bbd44e614df2b1aa4d0e90b47134b Mon Sep 17 00:00:00 2001 From: Stefano Rivera Date: Wed, 15 Feb 2012 15:16:30 +0200 Subject: [PATCH] Support syncs from a non-default series (LP: #931644) --- debian/changelog | 1 + ubuntutools/sponsor_patch/bugtask.py | 18 +++++++++++------- ubuntutools/sponsor_patch/source_package.py | 5 +++-- ubuntutools/sponsor_patch/sponsor_patch.py | 3 ++- 4 files changed, 17 insertions(+), 10 deletions(-) diff --git a/debian/changelog b/debian/changelog index dad1cba..7029065 100644 --- a/debian/changelog +++ b/debian/changelog @@ -6,6 +6,7 @@ ubuntu-dev-tools (0.139) UNRELEASED; urgency=low * sponsor-patch: - Determine the task from the UDD branch. - Support syncs of new packages. + - Support syncs from a non-default series (LP: #931644) * Re-add dgetlp. Still needed for downloading source packages from +queue. (LP: #919805) * pbuilder-dist: Export DISTRIBUTION and ARCHITECTURE as well as DIST and diff --git a/ubuntutools/sponsor_patch/bugtask.py b/ubuntutools/sponsor_patch/bugtask.py index 622e063..b2721d0 100644 --- a/ubuntutools/sponsor_patch/bugtask.py +++ b/ubuntutools/sponsor_patch/bugtask.py @@ -125,13 +125,7 @@ class BugTask(object): if self.is_derived_from_debian() and not latest_release: project = "debian" - title = self.bug_task.bug.title.lower().split() - if "experimental" in title: - series = "experimental" - elif "testing" in title: - series = distro_info.DebianDistroInfo().testing() - else: - series = distro_info.DebianDistroInfo().devel() + series = self.get_debian_source_series() else: project = self.project series = self.get_series(latest_release) @@ -163,6 +157,16 @@ class BugTask(object): version = source.source_package_version return debian.debian_support.Version(version) + def get_debian_source_series(self): + title = self.bug_task.bug.title.lower().split() + if "experimental" in title: + series = "experimental" + elif "testing" in title: + series = distro_info.DebianDistroInfo().testing() + else: + series = distro_info.DebianDistroInfo().devel() + return series + def is_complete(self): return self.bug_task.is_complete diff --git a/ubuntutools/sponsor_patch/source_package.py b/ubuntutools/sponsor_patch/source_package.py index 3edb59d..b5c0d96 100644 --- a/ubuntutools/sponsor_patch/source_package.py +++ b/ubuntutools/sponsor_patch/source_package.py @@ -440,12 +440,13 @@ class SourcePackage(object): return lintian_filename - def sync(self, upload, bug_number, requester): + def sync(self, upload, series, bug_number, requester): """Does a sync of the source package.""" if upload == "ubuntu": cmd = ["syncpackage", self._package, "-b", str(bug_number), "-f", - "-s", requester, "-V", str(self._version)] + "-s", requester, "-V", str(self._version), + "-d", series] Logger.command(cmd) if subprocess.call(cmd) != 0: Logger.error("Syncing of %s %s failed.", self._package, diff --git a/ubuntutools/sponsor_patch/sponsor_patch.py b/ubuntutools/sponsor_patch/sponsor_patch.py index 325d977..526dffc 100644 --- a/ubuntutools/sponsor_patch/sponsor_patch.py +++ b/ubuntutools/sponsor_patch/sponsor_patch.py @@ -286,7 +286,8 @@ def sponsor_patch(bug_number, build, builder, edit, keyid, lpinstance, update, previous_version) if successful: - if source_package.sync(upload, bug_number, bug.owner.name): + series = task.get_debian_source_series() + if source_package.sync(upload, series, bug_number, bug.owner.name): return else: edit = True