Actually merge trunk

This commit is contained in:
Evan Broder 2010-12-17 01:47:15 -08:00
commit ab0dc4244b
10 changed files with 440 additions and 369 deletions

View File

@ -138,8 +138,7 @@ def dscurl_from_package(lp, workdir, package, version, source_release):
if not source_release and not version:
source_release = lp.distributions['ubuntu'].current_series.name
# If source_release is specified, then version is just for
# verification
# If source_release is specified, then version is just for verification
if source_release:
srcpkg = find_release_package(lp, package, version, source_release)
else:
@ -156,8 +155,7 @@ def dscurl_from_dsc(package):
if os.path.exists(path):
return 'file://%s' % path
else:
# Can't resolve it as a local path? Let's just hope it's good
# as-is
# Can't resolve it as a local path? Let's just hope it's good as-is
return package
def fetch_package(lp, workdir, package, version, source_release):
@ -168,10 +166,7 @@ def fetch_package(lp, workdir, package, version, source_release):
else:
dsc = dscurl_from_package(lp, workdir, package, version, source_release)
check_call(['dget',
'--download-only',
'--allow-unauthenticated',
dsc],
check_call(['dget', '--download-only', '--allow-unauthenticated', dsc],
cwd=workdir)
return os.path.join(workdir, os.path.basename(dsc))
@ -211,19 +206,12 @@ def do_upload(workdir, package, bp_version, upload):
elif answer in ('n', 'no'):
return
check_call(['dput',
upload,
'%s_%s_source.changes' %
(package, bp_version)],
check_call(['dput', upload, '%s_%s_source.changes' % (package, bp_version)],
cwd=workdir)
def do_backport(workdir, package, dscfile, version, release, build, builder, upload):
check_call(['dpkg-source',
'-x',
dscfile,
package],
cwd=workdir)
check_call(['dpkg-source', '-x', dscfile, package], cwd=workdir)
srcdir = os.path.join(workdir, package)
bp_version = get_backport_version(version, upload, release)
@ -236,8 +224,7 @@ def do_backport(workdir, package, dscfile, version, release, build, builder, upl
'--distribution', bp_dist,
'No-change backport to %s' % release],
cwd=srcdir)
check_call(['debuild', '-S', '-sa'],
cwd=srcdir)
check_call(['debuild', '-S', '-sa'], cwd=srcdir)
if ':' in bp_version:
bp_version = bp_version[bp_version.find(':')+1:]

9
debian/changelog vendored
View File

@ -5,12 +5,19 @@ ubuntu-dev-tools (0.108) UNRELEASED; urgency=low
Use the 'production' LP instance instead of 'edge' (which is going away).
* pbuilder-dist: Fix typo in local archive support, introduced in 0.107.
[ Benjamin Drung ]
* pull-lp-source: Unquote URI to get "+" instead of "%2B" in the file name
(LP: #681114).
[ Colin Watson ]
* grep-merges: New tool.
[ Evan Broder ]
* backportpackage: new script for testing backport requests in a PPA.
* sponsor-patch: Add --update option to make sure build environment is
up to date (LP: #689605)
-- Evan Broder <evan@ebroder.net> Mon, 13 Dec 2010 03:57:20 -0800
-- Evan Broder <evan@ebroder.net> Fri, 17 Dec 2010 01:46:50 -0800
ubuntu-dev-tools (0.107) experimental; urgency=low

1
debian/control vendored
View File

@ -62,6 +62,7 @@ Description: useful tools for Ubuntu developers
- grab-attachments - download all bug attachments from a Launchpad bug
report.
- grab-merge - grabs a merge from merges.ubuntu.com easily.
- grep-merges - search for pending merges from Debian.
- hugdaylist - compile HugDay lists from bug list URLs.
- import-bug-from-debian - copy a bug from the Debian BTS to Launchpad
- lp-list-bugs - briefly list status of Launchpad bugs.

20
debian/copyright vendored
View File

@ -81,11 +81,11 @@ On Debian and Ubuntu systems, the complete text of the GNU General Public
License v2 can be found in `/usr/share/common-licenses/GPL-2'.
dch-repeat, errno, get-branches, get-build-deps, grab-attachments, grab-merge,
hugdaylist, lp-list-bugs, manage-credentials, massfile, merge-changelog,
mk-sbuild, pbuilder-dist-simple, pull-debian-debdiff, pull-debian-source,
pull-lp-source, pull-revu-source, setup-packaging-environment,
suspicious-source, ubuntu-build and what-patch are licensed under the GNU
General Public License, version 3:
grep-merges, hugdaylist, lp-list-bugs, manage-credentials, massfile,
merge-changelog, mk-sbuild, pbuilder-dist-simple, pull-debian-debdiff,
pull-debian-source, pull-lp-source, pull-revu-source,
setup-packaging-environment, suspicious-source, ubuntu-build and what-patch
are licensed under the GNU General Public License, version 3:
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
@ -101,8 +101,8 @@ License v3 can be found in `/usr/share/common-licenses/GPL-3'.
The following scripts can be used, at your option, regarding any later
version of the previously specified license: 404main, dch-repeat, dgetlp,
get-build-deps, import-bug-from-debian, lp-list-bugs, lp-project-upload,
lp-set-dup, manage-credentials, mk-sbuild-lv, pbuilder-dist,
pull-debian-debdiff, pull-debian-source, pull-lp-source, pull-revu-source,
reverse-build-depends, setup-packaging-environment, submittodebian,
suspicious-source, syncpackage, ubuntu-build, what-patch.
get-build-deps, grep-merges, import-bug-from-debian, lp-list-bugs,
lp-project-upload, lp-set-dup, manage-credentials, mk-sbuild-lv,
pbuilder-dist, pull-debian-debdiff, pull-debian-source, pull-lp-source,
pull-revu-source, reverse-build-depends, setup-packaging-environment,
submittodebian, suspicious-source, syncpackage, ubuntu-build, what-patch.

26
doc/grep-merges.1 Normal file
View File

@ -0,0 +1,26 @@
.TH grep\-merges 1 "December 15, 2010" "ubuntu-dev-tools"
.SH NAME
grep\-merges \- search for outstanding merges from Debian
.SH SYNOPSIS
.B grep\-merges
.RI [ string ]
.SH DESCRIPTION
.B grep\-merges
searches merges.ubuntu.com for pending merges from Debian.
If a
.I string
is given, it will list all merges whose source package name, last changelog
author, or last uploader contain that string.
Otherwise, it will list all merges.
.SH EXAMPLES
.nf
$ grep\-merges cjwatson
tzsetup Colin Watson <cjwatson@ubuntu.com>
console-setup Colin Watson <cjwatson@ubuntu.com>
.fi
.SH AUTHOR
.B grep\-merges
and this manual page were written by Colin Watson <cjwatson@ubuntu.com>.
.PP
Both are released under the terms of the GNU General Public License, version
3 or (at your option) any later version.

View File

@ -94,7 +94,8 @@ Display a help message and exit.
.TP
.B UBUNTUTOOLS_BUILDER
The default builder for Ubuntu development tools that support it (including \fBsponsor\-patch\fR.
The default builder for Ubuntu development tools that support it (including
\fBsponsor\-patch\fR).
Supported are \fBpbuilder\fR(8) and \fBsbuild\fR(1).
If unset and not provided on the command line, \fBpbuilder\fR(8) is used.

46
grep-merges Executable file
View File

@ -0,0 +1,46 @@
#! /usr/bin/python
#
# grep-merges - search for pending merges from Debian
#
# Copyright (C) 2010 Canonical Ltd.
# Authors:
# - Colin Watson <cjwatson@ubuntu.com>
#
# 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 3 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, see <http://www.gnu.org/licenses/>.
import sys
import urllib2
import json
if len(sys.argv) > 1:
match = sys.argv[1]
else:
match = None
for component in ('main', 'main-manual',
'restricted', 'restricted-manual',
'universe', 'universe-manual',
'multiverse', 'multiverse-manual'):
page = urllib2.urlopen('http://merges.ubuntu.com/%s.json' % component)
for merge in json.load(page):
package = merge['source_package']
author, uploader = '', ''
if 'user' in merge:
author = merge['user']
if 'uploader' in merge:
uploader = '(%s)' % merge['uploader']
pretty_uploader = ' '.join((author, uploader)).strip()
if (match is None or
match in package or match in author or match in uploader):
print '%s\t%s' % (package, pretty_uploader)

View File

@ -28,6 +28,7 @@
import os
import sys
import subprocess
import urllib
from optparse import OptionParser
# ubuntu-dev-tools modules.
@ -78,7 +79,7 @@ if __name__ == '__main__':
# All good - start downloading...
print 'Fetching the source for %s from %s (%s)...' % (
package, release.capitalize(), pocket)
if subprocess.call(['/usr/bin/dget', '-xu', dsc_url[0]]) == 0:
if subprocess.call(['/usr/bin/dget', '-xu', urllib.unquote(dsc_url[0])]) == 0:
print 'Success!'
else:
print 'Failed to fetch and extrace the source.', \

View File

@ -26,6 +26,7 @@ setup(name='ubuntu-dev-tools',
'get-build-deps',
'grab-attachments',
'grab-merge',
'grep-merges',
'hugdaylist',
'import-bug-from-debian',
'lp-list-bugs',

View File

@ -152,6 +152,7 @@ class BaseWrapper(object):
else:
return '<%s: %r>' % (self.__class__.__name__, self._lpobject)
class Distribution(BaseWrapper):
'''
Wrapper class around a LP distribution object.