mirror of
https://git.launchpad.net/ubuntu-dev-tools
synced 2025-03-16 01:21:07 +00:00
Merge trunk.
This commit is contained in:
commit
9a5df25367
17
404main
17
404main
@ -3,7 +3,22 @@
|
|||||||
#
|
#
|
||||||
# Copyright 2006-2007 (C) Pete Savage <petesavage@ubuntu.com>
|
# Copyright 2006-2007 (C) Pete Savage <petesavage@ubuntu.com>
|
||||||
# Copyright 2007 (C) Siegfried-A. Gevatter <rainct@ubuntu.com>
|
# Copyright 2007 (C) Siegfried-A. Gevatter <rainct@ubuntu.com>
|
||||||
# License: GPLv2 or later
|
#
|
||||||
|
# ##################################################################
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
# See file /usr/share/common-licenses/GPL for more details.
|
||||||
|
#
|
||||||
|
# ##################################################################
|
||||||
#
|
#
|
||||||
# This script is used to check if a package and all its build
|
# This script is used to check if a package and all its build
|
||||||
# dependencies are in main or not.
|
# dependencies are in main or not.
|
||||||
|
15
AUTHORS
15
AUTHORS
@ -1,15 +0,0 @@
|
|||||||
Albert Damen <albrt@gmx.net>
|
|
||||||
Albin Tonnerre <lut1n.tne@gmail.com>
|
|
||||||
Daniel Hahler <ubuntu@thequod.de>
|
|
||||||
Daniel Holbach <daniel.holbach@ubuntu.com>
|
|
||||||
Jamin W. Collins <jcollins@asgardsrealm.net>
|
|
||||||
Jordan Mantha <mantha@ubuntu.com>
|
|
||||||
Luke Yelavich <themuso@ubuntu.com>
|
|
||||||
Martin Pitt <martin.pitt@ubuntu.com>
|
|
||||||
Michael Bienia <geser@ubuntu.com>
|
|
||||||
Pete Savage <petesavage@ubuntu.com>
|
|
||||||
Kees Cook <kees@ubuntu.com>
|
|
||||||
Siegfried-A. Gevatter <rainct@ubuntu.com>
|
|
||||||
Soren Hansen <soren@ubuntu.com>
|
|
||||||
Steve Kowalik <stevenk@ubuntu.com>
|
|
||||||
Terence Simpson <stdin@stdin.me.uk>
|
|
78
README
78
README
@ -1,78 +0,0 @@
|
|||||||
================================
|
|
||||||
== Ubuntu Development Tools ==
|
|
||||||
================================
|
|
||||||
|
|
||||||
404main <package>
|
|
||||||
... will check if <package> and all it's build dependencies are
|
|
||||||
are in the "main" component or not.
|
|
||||||
|
|
||||||
check-symbols <package> [<directory>]
|
|
||||||
... will compare and give you a diff of the exported symbols of all
|
|
||||||
.so files in all binary packages of <package>. <directory> is not
|
|
||||||
mandatory and set to /var/cache/pbuilder/result by default.
|
|
||||||
|
|
||||||
dch-repeat [--help]
|
|
||||||
... will repeat a change log into an older release.
|
|
||||||
|
|
||||||
dgetlp <URL>
|
|
||||||
... will simulate «dget»'s behaviour for files hosted at
|
|
||||||
launchpadlibrarian.net.
|
|
||||||
|
|
||||||
get-branches <directory> <team> [checkout|branch]
|
|
||||||
... will branch / checkout all the Bazaar branches in a Launchpad
|
|
||||||
team.
|
|
||||||
|
|
||||||
get-build-deps [<packages list or file containing a list of packages>]
|
|
||||||
... will install the build dependencies for a package, if you are
|
|
||||||
inside its source file. Alternatively, you can pass it the name of
|
|
||||||
a file containing a list of packages, one on each line, or just
|
|
||||||
pass them all as parameters, and it will get their build
|
|
||||||
dependencies.
|
|
||||||
|
|
||||||
hugdaylist [-n <number>] <bug list url>
|
|
||||||
... will create a list of <number> bug list for a hug day listing
|
|
||||||
|
|
||||||
massfile
|
|
||||||
... will perform a massive bug reporting operation on Launchpad
|
|
||||||
according to the information in the "information" and "list" files
|
|
||||||
that are in the working directory.
|
|
||||||
|
|
||||||
mk-sbuild-lv
|
|
||||||
... will create LVM snapshot chroots via schroot and sbuild. It
|
|
||||||
assumes that sbuild has not be installed and configured before.
|
|
||||||
|
|
||||||
pbuilder-dist [withlog] [create|update|build|clean|login|execute]
|
|
||||||
... is a wrapper to use pbuilder with many different Ubuntu and/or
|
|
||||||
Debian releases. It's recommended to symlink as pbuilder-feisty,
|
|
||||||
pbuilder-gutsy, etc.
|
|
||||||
|
|
||||||
pull-debian-debdiff <package> <version>
|
|
||||||
... will attempt to find and download a specific version of a
|
|
||||||
Debian package and its immediate parent to generate a debdiff.
|
|
||||||
|
|
||||||
requestsync [-n|-s] <source package> <target release> [base version]
|
|
||||||
... will file a sync request for a package from Debian by sending
|
|
||||||
a bug report to Launchpad.
|
|
||||||
|
|
||||||
reverse-build-depends [-c|-s] <package name>
|
|
||||||
... will print <package name>'s build dependencies.
|
|
||||||
|
|
||||||
submittodebian
|
|
||||||
... will submit patches to Debian's BTS. Run it from inside the
|
|
||||||
source directory of a Debian package (note that there has to be
|
|
||||||
a .dsc for it in the parent directory).
|
|
||||||
|
|
||||||
suspicious-source
|
|
||||||
... will output a list of files which are not common source files.
|
|
||||||
This should be run in the root of a source tree to find files which
|
|
||||||
might not be the "prefered form of modification" that the GPL and
|
|
||||||
other licenses require.
|
|
||||||
|
|
||||||
update-maintainer
|
|
||||||
... will update the Maintainer field of an Ubuntu package to match
|
|
||||||
the DebianMaintainerField specification, and add a line about this
|
|
||||||
to the changelog.
|
|
||||||
|
|
||||||
what-patch
|
|
||||||
... will check what patching system is used by a package. You need
|
|
||||||
to be in its source directory in order for it to work.
|
|
7
TODO
7
TODO
@ -1,4 +1,7 @@
|
|||||||
|
- Fix all bugs at Launchpad:
|
||||||
|
https://bugs.launchpad.net/ubuntu/+source/ubuntu-dev-tools
|
||||||
- Create missing manpages (for all commands).
|
- Create missing manpages (for all commands).
|
||||||
- Document ubuntutools Python modules.
|
|
||||||
- Add the process-interdiff script to ubuntu-dev-tools.
|
|
||||||
- Modify 404main to use the more robust python-apt module.
|
- Modify 404main to use the more robust python-apt module.
|
||||||
|
- Ask all authors who have used GPL if they are happy with using "or any later"
|
||||||
|
versions of the license.
|
||||||
|
- pull-lp-source: determine the current development distro programatically.
|
||||||
|
160
buildd
Executable file
160
buildd
Executable file
@ -0,0 +1,160 @@
|
|||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# buildd - command line interface for Launchpad buildd operations.
|
||||||
|
#
|
||||||
|
# Copyright (C) 2007 Canonical Ltd.
|
||||||
|
# Authors:
|
||||||
|
# - Martin Pitt <martin.pitt@canonical.com>
|
||||||
|
# - Jonathan Patrick Davies <jpds@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 os
|
||||||
|
import re
|
||||||
|
import sys
|
||||||
|
import urllib2
|
||||||
|
from optparse import OptionGroup
|
||||||
|
from optparse import OptionParser
|
||||||
|
from urllib import urlencode
|
||||||
|
|
||||||
|
sys.path.append('/usr/share/ubuntu-dev-tools/')
|
||||||
|
import common
|
||||||
|
|
||||||
|
# Usage.
|
||||||
|
usage = "%prog <srcpackage> <release> <operation>\n\n"
|
||||||
|
usage += "Where operation may be one of: rescore, retry, or status.\n"
|
||||||
|
usage += "Only Launchpad Buildd Admins may rescore package builds."
|
||||||
|
|
||||||
|
# Prepare our option parser.
|
||||||
|
optParser = OptionParser(usage)
|
||||||
|
|
||||||
|
# Retry options
|
||||||
|
retryRescoreOptions = OptionGroup(optParser, "Retry and rescore options",
|
||||||
|
"These options may only be used with the 'retry' and 'rescore' operations.")
|
||||||
|
retryRescoreOptions.add_option("-a", "--arch", type = "string",
|
||||||
|
action = "store", dest = "architecture",
|
||||||
|
help = "Rebuild or rescore a specific architecture.")
|
||||||
|
|
||||||
|
# Add the retry options to the main group.
|
||||||
|
optParser.add_option_group(retryRescoreOptions)
|
||||||
|
|
||||||
|
# Parse our options.
|
||||||
|
(options, args) = optParser.parse_args()
|
||||||
|
|
||||||
|
# Check we have the correct number of arguments.
|
||||||
|
if len(args) < 3:
|
||||||
|
optParser.error("Incorrect number of arguments.")
|
||||||
|
|
||||||
|
package = str(args[0]).lower()
|
||||||
|
release = str(args[1]).lower()
|
||||||
|
op = str(args[2]).lower()
|
||||||
|
|
||||||
|
# Check our operation.
|
||||||
|
if op not in ("rescore", "retry", "status"):
|
||||||
|
print >> sys.stderr, "Invalid operation: %s." % op
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
# If the user has specified an architecture to build, we only wish to rebuild it
|
||||||
|
# and nothing else.
|
||||||
|
if op not in ("retry", 'rescore') and options.architecture:
|
||||||
|
print >> sys.stderr, "Operation %s does not use the --arch option." % op
|
||||||
|
sys.exit(1)
|
||||||
|
elif op in ("retry", "rescore") and options.architecture:
|
||||||
|
if options.architecture not in ("amd64", "hppa", "i386", "ia64", "lpia",
|
||||||
|
"powerpc", "sparc"):
|
||||||
|
print >> sys.stderr, "Invalid architecture specified: %s." % options.architecture
|
||||||
|
sys.exit(1)
|
||||||
|
else:
|
||||||
|
oneArch = True
|
||||||
|
else:
|
||||||
|
oneArch = False
|
||||||
|
|
||||||
|
# Clear https_proxy env var as it's not supported in urllib/urllib2; see
|
||||||
|
# LP #122551
|
||||||
|
if os.environ.has_key('https_proxy'):
|
||||||
|
print >> sys.stderr, "Ignoring https_proxy (no support in urllib/urllib2; see LP #122551)"
|
||||||
|
del os.environ['https_proxy']
|
||||||
|
|
||||||
|
# Prepare Launchpad cookie.
|
||||||
|
launchpadCookie = common.prepareLaunchpadCookie()
|
||||||
|
urlopener = common.setupLaunchpadUrlOpener(launchpadCookie)
|
||||||
|
|
||||||
|
# Find out the version in given release.
|
||||||
|
try:
|
||||||
|
page = urlopener.open('https://launchpad.net/ubuntu/+source/' + package).read()
|
||||||
|
except urllib2.HTTPError:
|
||||||
|
print >> sys.stderr, "The source package (%s) does not appear to exist " \
|
||||||
|
"in Ubuntu." % package
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
m = re.search('"/ubuntu/%s/\+source/%s/(\d[^"]+)"' % (release,
|
||||||
|
package.replace('+', '\+')), page)
|
||||||
|
if not m:
|
||||||
|
print >> sys.stderr, "Unable to find this source package (%s) in this " \
|
||||||
|
"release (%s)." % (package, release.capitalize())
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
version = m.group(1)
|
||||||
|
|
||||||
|
# Output details.
|
||||||
|
print "The source version for '%s' in %s is at %s." % (package,
|
||||||
|
release.capitalize(), version)
|
||||||
|
|
||||||
|
# Parse out build URLs, states, and arches.
|
||||||
|
buildstats = {}
|
||||||
|
page = urlopener.open('https://launchpad.net/ubuntu/+source/%s/%s' % (package, version))
|
||||||
|
url = page.geturl()
|
||||||
|
page = page.read()
|
||||||
|
|
||||||
|
print "Current build status for this package is as follows:"
|
||||||
|
|
||||||
|
for m in re.finditer('"/ubuntu/\+source/%s/%s(/\+build/\d+)"[^\n]+\n\s*(\w+).*?<span>(\w+)</span>.*?</a>\s*([^\n]+)\n' %
|
||||||
|
(package.replace('+', '\+'), version.replace('+', '\+')), page, re.S):
|
||||||
|
if m.group(2) == release:
|
||||||
|
print '%s: %s.' % (m.group(3), m.group(4))
|
||||||
|
buildstats[url + m.group(1)] = [m.group(3).strip(), m.group(4).strip()]
|
||||||
|
|
||||||
|
# Operations.
|
||||||
|
if op == 'status':
|
||||||
|
sys.exit(0)
|
||||||
|
|
||||||
|
for build, (arch, status) in buildstats.iteritems():
|
||||||
|
if oneArch and not options.architecture == arch:
|
||||||
|
# Skip this architecture.
|
||||||
|
continue
|
||||||
|
|
||||||
|
if op in ('rescore'):
|
||||||
|
if status in ('Needs building'):
|
||||||
|
print 'Rescoring', build, '(%s).' % arch
|
||||||
|
|
||||||
|
try:
|
||||||
|
urlopener.open(build + '/+rescore', urlencode(
|
||||||
|
{'SCORE': '5000', 'RESCORE': '1'}))
|
||||||
|
except:
|
||||||
|
print >> sys.stderr, "Unable to request rescore on %s." % arch
|
||||||
|
else:
|
||||||
|
print "Not rescoring on %s; status is: %s." % (arch, status.lower())
|
||||||
|
|
||||||
|
if op in ('retry'): # Retry requested.
|
||||||
|
if status in ('Failed to build', 'Chroot problem', 'Failed to upload'):
|
||||||
|
print 'Retrying:', build, '(%s).' % arch
|
||||||
|
|
||||||
|
try:
|
||||||
|
urlopener.open(build + '/+retry', urlencode(
|
||||||
|
{'RETRY': '1'}))
|
||||||
|
except: # Error encountered while submitting request.
|
||||||
|
print >> sys.stderr, "Unable to request retry on %s." % arch
|
||||||
|
else: # The package does not require rebuilding.
|
||||||
|
print "Not retrying on %s; status is %s." % (arch, status.lower())
|
@ -1,7 +1,22 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# Copyright 2006-2007 (C) Daniel Holbach <daniel.holbach@ubuntu.com>
|
#
|
||||||
|
# Copyright (C) 2006-2007 Daniel Holbach <daniel.holbach@ubuntu.com>
|
||||||
# Modified by Siegfried-A. Gevatter <rainct@ubuntu.com>
|
# Modified by Siegfried-A. Gevatter <rainct@ubuntu.com>
|
||||||
# License: GPLv2
|
#
|
||||||
|
# ##################################################################
|
||||||
|
#
|
||||||
|
# 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; version 2.
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
# See file /usr/share/common-licenses/GPL-2 for more details.
|
||||||
|
#
|
||||||
|
# ##################################################################
|
||||||
#
|
#
|
||||||
# This script is used to get a diff of the exported symbols of all .so files in
|
# This script is used to get a diff of the exported symbols of all .so files in
|
||||||
# every binary package of package $1.
|
# every binary package of package $1.
|
||||||
|
147
common.py
Normal file
147
common.py
Normal file
@ -0,0 +1,147 @@
|
|||||||
|
#
|
||||||
|
# common.py - provides functions which are commonly used by the
|
||||||
|
# ubuntu-dev-tools package.
|
||||||
|
#
|
||||||
|
# Copyright (C) 2008 Jonathan Patrick Davies <jpds@ubuntu.com>
|
||||||
|
# Copyright (C) 2008 Siegfried-Angel Gevatter Pujals <rainct@ubuntu.com>
|
||||||
|
#
|
||||||
|
# Some of the functions are based upon code written by Martin Pitt
|
||||||
|
# <martin.pitt@ubuntu.com> and Kees Cook <kees@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.
|
||||||
|
#
|
||||||
|
# See file /usr/share/common-licenses/GPL for more details.
|
||||||
|
#
|
||||||
|
# ##################################################################
|
||||||
|
|
||||||
|
import cookielib
|
||||||
|
import glob
|
||||||
|
import os.path
|
||||||
|
import sys
|
||||||
|
import urllib2
|
||||||
|
|
||||||
|
def mkdir(directory):
|
||||||
|
""" Create the given directory and all its parents recursively, but don't
|
||||||
|
raise an exception if it already exists. """
|
||||||
|
|
||||||
|
path = [x for x in directory.split('/') if x]
|
||||||
|
|
||||||
|
for i in xrange(len(path)):
|
||||||
|
current_path = '/' + '/'.join(path[:i+1])
|
||||||
|
if not os.path.isdir(current_path):
|
||||||
|
os.mkdir(current_path)
|
||||||
|
|
||||||
|
def readlist(filename, uniq=True):
|
||||||
|
""" Read a list of words from the indicated file. """
|
||||||
|
|
||||||
|
if not os.path.isfile(filename):
|
||||||
|
print 'File "%s" does not exist.' % filename
|
||||||
|
return False
|
||||||
|
|
||||||
|
content = open(filename).read().replace('\n', ' ').replace(',', ' ')
|
||||||
|
|
||||||
|
if not content.strip():
|
||||||
|
print 'File "%s" is empty.' % filename
|
||||||
|
return False
|
||||||
|
|
||||||
|
items = [item for item in content.split() if item]
|
||||||
|
|
||||||
|
if uniq:
|
||||||
|
items = list(set(items))
|
||||||
|
|
||||||
|
return items
|
||||||
|
|
||||||
|
def prepareLaunchpadCookie():
|
||||||
|
""" Search for a cookie file in the places as defined by try_globs.
|
||||||
|
We shall use this cookie for authentication with Launchpad. """
|
||||||
|
|
||||||
|
# We do not have our cookie.
|
||||||
|
launchpad_cookiefile = None
|
||||||
|
# Look in common locations.
|
||||||
|
try_globs = ('~/.lpcookie.txt', '~/.mozilla/*/*/cookies.sqlite',
|
||||||
|
'~/.mozilla/*/*/cookies.txt')
|
||||||
|
|
||||||
|
cookie_file_list = []
|
||||||
|
if launchpad_cookiefile == None:
|
||||||
|
for try_glob in try_globs:
|
||||||
|
try:
|
||||||
|
cookie_file_list += glob.glob(os.path.expanduser(try_glob))
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
|
for cookie_file in cookie_file_list:
|
||||||
|
launchpad_cookiefile = _check_for_launchpad_cookie(cookie_file)
|
||||||
|
if launchpad_cookiefile != None:
|
||||||
|
break
|
||||||
|
|
||||||
|
# Unable to find an correct file.
|
||||||
|
if launchpad_cookiefile == None:
|
||||||
|
print >> sys.stderr, "Could not find cookie file for Launchpad. "
|
||||||
|
print >> sys.stderr, "Looked in: %s" % ", ".join(try_globs)
|
||||||
|
print >> sys.stderr, "You should be able to create a valid file by " \
|
||||||
|
"logging into Launchpad with Firefox."
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
return launchpad_cookiefile
|
||||||
|
|
||||||
|
def _check_for_launchpad_cookie(cookie_file):
|
||||||
|
# Found SQLite file? Parse information from it.
|
||||||
|
if cookie_file.find('cookies.sqlite') != -1:
|
||||||
|
import sqlite3 as sqlite
|
||||||
|
|
||||||
|
con = sqlite.connect(cookie_file)
|
||||||
|
|
||||||
|
cur = con.cursor()
|
||||||
|
cur.execute("select host, path, isSecure, expiry, name, value from moz_cookies where host like ?", ['%%launchpad%%'])
|
||||||
|
|
||||||
|
# No matching cookies? Abort.
|
||||||
|
items = cur.fetchall()
|
||||||
|
if len(items) == 0:
|
||||||
|
return None
|
||||||
|
|
||||||
|
ftstr = ["FALSE", "TRUE"]
|
||||||
|
|
||||||
|
# This shall be where our new cookie file lives - at ~/.lpcookie.txt
|
||||||
|
newLPCookieLocation = os.path.expanduser("~/.lpcookie.txt")
|
||||||
|
|
||||||
|
# Open file for writing.
|
||||||
|
newLPCookie = open(newLPCookieLocation, 'w')
|
||||||
|
# For security reasons, change file mode to write and read
|
||||||
|
# only by owner.
|
||||||
|
os.chmod(newLPCookieLocation, 0600)
|
||||||
|
newLPCookie.write("# HTTP Cookie File.\n") # Header.
|
||||||
|
|
||||||
|
for item in items:
|
||||||
|
# Write entries.
|
||||||
|
newLPCookie.write("%s\t%s\t%s\t%s\t%s\t%s\t%s\n" % (
|
||||||
|
item[0], ftstr[item[0].startswith('.')], item[1],
|
||||||
|
ftstr[item[2]], item[3], item[4], item[5]))
|
||||||
|
|
||||||
|
newLPCookie.write("\n") # New line.
|
||||||
|
newLPCookie.close() # And close file.
|
||||||
|
|
||||||
|
return newLPCookieLocation
|
||||||
|
else:
|
||||||
|
if open(cookie_file).read().find('launchpad.net') != -1:
|
||||||
|
return cookie_file
|
||||||
|
|
||||||
|
return None
|
||||||
|
|
||||||
|
def setupLaunchpadUrlOpener(cookie):
|
||||||
|
""" Build HTML opener with cookie file. """
|
||||||
|
cj = cookielib.MozillaCookieJar()
|
||||||
|
cj.load(cookie)
|
||||||
|
urlopener = urllib2.build_opener()
|
||||||
|
urlopener.add_handler(urllib2.HTTPCookieProcessor(cj))
|
||||||
|
|
||||||
|
return urlopener
|
20
dch-repeat
20
dch-repeat
@ -1,7 +1,23 @@
|
|||||||
#!/usr/bin/perl
|
#!/usr/bin/perl
|
||||||
# Copyright 2007-2008 (C) Canonical, Ltd
|
#
|
||||||
|
# Copyright (C) 2007-2008 Canonical, Ltd.
|
||||||
# Author: Kees Cook <kees@ubuntu.com>
|
# Author: Kees Cook <kees@ubuntu.com>
|
||||||
# License: GPLv2
|
#
|
||||||
|
# ##################################################################
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
# See file /usr/share/common-licenses/GPL for more details.
|
||||||
|
#
|
||||||
|
# ##################################################################
|
||||||
#
|
#
|
||||||
# This script is used to repeat a change log into an older release. It
|
# This script is used to repeat a change log into an older release. It
|
||||||
# expects that --build-tree is laid out with each Ubuntu release as a
|
# expects that --build-tree is laid out with each Ubuntu release as a
|
||||||
|
148
debian/changelog
vendored
148
debian/changelog
vendored
@ -1,3 +1,143 @@
|
|||||||
|
ubuntu-dev-tools (0.41) intrepid; urgency=low
|
||||||
|
|
||||||
|
[ Loic Minier ]
|
||||||
|
* Replace .BB in doc/pbuilder-dist.1 with a newline to fix a syntax error.
|
||||||
|
* Drop spurious tab in buildd.
|
||||||
|
* When https_proxy is in the environment, output a warning and disable it as
|
||||||
|
urllib/urllib2 don't support it; see LP #122551.
|
||||||
|
|
||||||
|
[ Kees Cook ]
|
||||||
|
* common.py: allow for multiple firefox instances, check all possible
|
||||||
|
cookie files.
|
||||||
|
|
||||||
|
-- Kees Cook <kees@ubuntu.com> Wed, 20 Aug 2008 10:58:24 -0700
|
||||||
|
|
||||||
|
ubuntu-dev-tools (0.40ubuntu3) intrepid; urgency=low
|
||||||
|
|
||||||
|
* Import urllib2.
|
||||||
|
|
||||||
|
-- Loic Minier <lool@dooz.org> Mon, 18 Aug 2008 12:07:27 +0200
|
||||||
|
|
||||||
|
ubuntu-dev-tools (0.40ubuntu2) intrepid; urgency=low
|
||||||
|
|
||||||
|
* requestsync: Correct print statement redirect to sys,stderr.
|
||||||
|
|
||||||
|
-- Jonathan Patrick Davies <jpds@ubuntu.com> Mon, 18 Aug 2008 10:59:59 +0100
|
||||||
|
|
||||||
|
ubuntu-dev-tools (0.40ubuntu1) intrepid; urgency=low
|
||||||
|
|
||||||
|
* Bazaar revision 174.
|
||||||
|
* buildd: Code cleanup on single arch options.
|
||||||
|
* doc/buildd.1: Created.
|
||||||
|
* doc/requestsync.1: Added note about sponsorship detecting.
|
||||||
|
* requestsync: Suggest using the --lp flag when mailing a request encounters
|
||||||
|
a failure.
|
||||||
|
|
||||||
|
-- Jonathan Patrick Davies <jpds@ubuntu.com> Sat, 16 Aug 2008 23:38:41 +0100
|
||||||
|
|
||||||
|
ubuntu-dev-tools (0.39ubuntu1) intrepid; urgency=low
|
||||||
|
|
||||||
|
* Bazaar revision 169.
|
||||||
|
|
||||||
|
[ Jonathan Patrick Davies ]
|
||||||
|
* common.py: Use os.path.expanduser() instead of os.environ.
|
||||||
|
* buildd:
|
||||||
|
- Added optparse support for option handling.
|
||||||
|
- Added support to request the rebuilding or rescoring of only one
|
||||||
|
architecture.
|
||||||
|
- Various other improvements.
|
||||||
|
* hugdaylist: Improved number of bugs option handling.
|
||||||
|
* get-branches: Improved option handling.
|
||||||
|
|
||||||
|
[ Siegfried-Angel Gevatter Pujals ]
|
||||||
|
* debian/control:
|
||||||
|
- Add sbuild as an alternative recommends to pbuilder.
|
||||||
|
* what-patch, pull-debian-debdiff, mk-sbuild-lv, dch-repat, debian/copyright:
|
||||||
|
- Change the license of all scripts from Kees Cook to the GPL version 3
|
||||||
|
or later.
|
||||||
|
- Order the script names alphabetically in debian/copyright.
|
||||||
|
* common.py:
|
||||||
|
- Add functions mkdir and readlist.
|
||||||
|
|
||||||
|
[ Iain Lane ]
|
||||||
|
* pull-lp-source: Better handle errors when going to LP
|
||||||
|
|
||||||
|
-- Jonathan Patrick Davies <jpds@ubuntu.com> Thu, 14 Aug 2008 12:21:45 +0100
|
||||||
|
|
||||||
|
ubuntu-dev-tools (0.38ubuntu1) intrepid; urgency=low
|
||||||
|
|
||||||
|
[ Jonathan Patrick Davies ]
|
||||||
|
* requestsync: Check if user is a member of ubuntu-core-dev if sync request
|
||||||
|
is for a package in main.
|
||||||
|
* common.py: Change cookie file permissions to read and write only by user.
|
||||||
|
|
||||||
|
-- Jonathan Patrick Davies <jpds@ubuntu.com> Tue, 12 Aug 2008 14:52:34 +0100
|
||||||
|
|
||||||
|
ubuntu-dev-tools (0.37ubuntu1) intrepid; urgency=low
|
||||||
|
|
||||||
|
[ Jonathan Patrick Davies ]
|
||||||
|
* get-branches:
|
||||||
|
- Open the teams code page before making a new directory.
|
||||||
|
- Now check team option before anything else.
|
||||||
|
- Check that the team has branches before downloading.
|
||||||
|
* doc/get-branches.1: Created.
|
||||||
|
* hugdaylist: Improved argument and error handling.
|
||||||
|
* pull-lp-source:
|
||||||
|
- Use optparse for option handling.
|
||||||
|
- Check that the 'release' and 'package' actually exist on Launchpad.
|
||||||
|
- Use subprocess for dget calls.
|
||||||
|
* buildd: Imported from Martin Pitt's scripts.
|
||||||
|
* common.py: Python module to be used to enable the use of cookies
|
||||||
|
to authenticate with Launchpad.
|
||||||
|
* debian/ubuntu-dev-tools.install: Added line to install common.py above to
|
||||||
|
the correct location.
|
||||||
|
* requestsync:
|
||||||
|
- Use the functions in the common.py file above to authenticate with
|
||||||
|
Launchpad.
|
||||||
|
- Using the Launchpad cookie file, validate that the user is a member of
|
||||||
|
the ubuntu-dev team on Launchpad. Thus, checking if the user needs
|
||||||
|
sponsership or not (LP: #130648).
|
||||||
|
* doc/requestsync.1: Removed mention of -s flag. Obsoleted by the above.
|
||||||
|
* massfile:
|
||||||
|
- Use the functions in the common.py file above to authenticate with
|
||||||
|
Launchpad.
|
||||||
|
* debian/control: Changed XS-Python-Version to >= 2.5.
|
||||||
|
|
||||||
|
[ Siegfried-Angel Gevatter Pujals ]
|
||||||
|
* Add the GNU General Public License header to all scripts.
|
||||||
|
* Remove files AUTHORS (it duplicated content from debian/copyright) and
|
||||||
|
README (superseded by the manpages).
|
||||||
|
|
||||||
|
-- Jonathan Patrick Davies <jpds@ubuntu.com> Tue, 12 Aug 2008 14:48:35 +0100
|
||||||
|
|
||||||
|
ubuntu-dev-tools (0.36ubuntu1) intrepid; urgency=low
|
||||||
|
|
||||||
|
[ Jonathan Patrick Davies ]
|
||||||
|
* doc/ Created new manpages for:
|
||||||
|
- what-patch.1.
|
||||||
|
- dch-repeat.1.
|
||||||
|
- grab-attachment.1.
|
||||||
|
* doc/requestsync.1: Described variables used by requestsync in man
|
||||||
|
page. (LP: #237595)
|
||||||
|
* hugdaylist:
|
||||||
|
- Added code to handle exceptions and short version of GPL.
|
||||||
|
- Rewrote option handling with optparse.
|
||||||
|
- Filter bugs subscribed to the ubuntu-archive team.
|
||||||
|
* get-branches:
|
||||||
|
- Rewrote option handling with optparse.
|
||||||
|
- Added short version of GPL to header.
|
||||||
|
- Fixed regular expressions to work with new Launchpad interface.
|
||||||
|
- Use subprocess.call() on Bazaar instead of os.system().
|
||||||
|
* debian/copyright: Updated Authors and copyrights.
|
||||||
|
|
||||||
|
[ Siegfried-Angel Gevatter Pujals ]
|
||||||
|
* Change the versioning scheme from 0.XX to 0.XXubuntu1. Delete
|
||||||
|
debian/source.lintian-overrides, as with this it isn't necessary anymore.
|
||||||
|
* General manpage cleanup (fix typos, use the same section names in all
|
||||||
|
manpages, etc).
|
||||||
|
|
||||||
|
-- Jonathan Patrick Davies <jpds@ubuntu.com> Sun, 10 Aug 2008 22:02:05 +0100
|
||||||
|
|
||||||
ubuntu-dev-tools (0.35) intrepid; urgency=low
|
ubuntu-dev-tools (0.35) intrepid; urgency=low
|
||||||
|
|
||||||
[ Siegfried-Angel Gevatter Pujals ]
|
[ Siegfried-Angel Gevatter Pujals ]
|
||||||
@ -8,6 +148,12 @@ ubuntu-dev-tools (0.35) intrepid; urgency=low
|
|||||||
else (LP: #254632).
|
else (LP: #254632).
|
||||||
* massfile, examples/massfile.instructions:
|
* massfile, examples/massfile.instructions:
|
||||||
- Make it possible to give the created bugs a determined status.
|
- Make it possible to give the created bugs a determined status.
|
||||||
|
* debian/control:
|
||||||
|
- Bump Standards Version to 3.8.0.
|
||||||
|
* debian/rules:
|
||||||
|
- It's not necessary anymore to remove usr/lib.
|
||||||
|
* setup.py:
|
||||||
|
- Order the scripts list alphabetically and add pull-lp-source.
|
||||||
|
|
||||||
[ Iain Lane ]
|
[ Iain Lane ]
|
||||||
* Add pull-lp-source, which get source packages from LP to avoid mirror lag.
|
* Add pull-lp-source, which get source packages from LP to avoid mirror lag.
|
||||||
@ -18,7 +164,7 @@ ubuntu-dev-tools (0.35) intrepid; urgency=low
|
|||||||
- Modify it to work with Firefox 3 cookies, taking code from requestsync.
|
- Modify it to work with Firefox 3 cookies, taking code from requestsync.
|
||||||
- Set the status to Confirmed, by default.
|
- Set the status to Confirmed, by default.
|
||||||
|
|
||||||
-- Iain Lane <iain@orangesquash.org.uk> Mon, 04 Aug 2008 18:29:46 +0100
|
-- Siegfried-Angel Gevatter Pujals <rainct@ubuntu.com> Sat, 09 Aug 2008 13:58:23 +0200
|
||||||
|
|
||||||
ubuntu-dev-tools (0.34) intrepid; urgency=low
|
ubuntu-dev-tools (0.34) intrepid; urgency=low
|
||||||
|
|
||||||
|
6
debian/control
vendored
6
debian/control
vendored
@ -6,15 +6,15 @@ Vcs-Bzr: http://bazaar.launchpad.net/~ubuntu-dev/ubuntu-dev-tools/trunk
|
|||||||
Vcs-Browser: http://codebrowse.launchpad.net/~ubuntu-dev/ubuntu-dev-tools/trunk/changes
|
Vcs-Browser: http://codebrowse.launchpad.net/~ubuntu-dev/ubuntu-dev-tools/trunk/changes
|
||||||
Build-Depends: cdbs (>= 0.4.49), debhelper (>= 5), python-all-dev (>= 2.4)
|
Build-Depends: cdbs (>= 0.4.49), debhelper (>= 5), python-all-dev (>= 2.4)
|
||||||
Build-Depends-Indep: python-central (>= 0.5)
|
Build-Depends-Indep: python-central (>= 0.5)
|
||||||
XS-Python-Version: all
|
XS-Python-Version: >= 2.5
|
||||||
Homepage: https://launchpad.net/ubuntu-dev-tools/
|
Homepage: https://launchpad.net/ubuntu-dev-tools/
|
||||||
Standards-Version: 3.7.3
|
Standards-Version: 3.8.0
|
||||||
|
|
||||||
Package: ubuntu-dev-tools
|
Package: ubuntu-dev-tools
|
||||||
Architecture: all
|
Architecture: all
|
||||||
Section: devel
|
Section: devel
|
||||||
Depends: ${python:Depends}, binutils, devscripts, sudo, python-launchpad-bugs (>= 0.2.25), python-debian, dctrl-tools, lsb-release, diffstat, dpkg-dev
|
Depends: ${python:Depends}, binutils, devscripts, sudo, python-launchpad-bugs (>= 0.2.25), python-debian, dctrl-tools, lsb-release, diffstat, dpkg-dev
|
||||||
Recommends: bzr, pbuilder, reportbug (>= 3.39ubuntu1)
|
Recommends: bzr, pbuilder | sbuild, reportbug (>= 3.39ubuntu1)
|
||||||
Conflicts: devscripts (<< 2.10.7ubuntu5)
|
Conflicts: devscripts (<< 2.10.7ubuntu5)
|
||||||
Replaces: devscripts (<< 2.10.7ubuntu5)
|
Replaces: devscripts (<< 2.10.7ubuntu5)
|
||||||
XB-Python-Version: ${python:Versions}
|
XB-Python-Version: ${python:Versions}
|
||||||
|
23
debian/copyright
vendored
23
debian/copyright
vendored
@ -7,18 +7,19 @@ Upstream Authors:
|
|||||||
Albin Tonnerre <lut1n.tne@gmail.com>
|
Albin Tonnerre <lut1n.tne@gmail.com>
|
||||||
Daniel Hahler <ubuntu@thequod.de>
|
Daniel Hahler <ubuntu@thequod.de>
|
||||||
Daniel Holbach <daniel.holbach@ubuntu.com>
|
Daniel Holbach <daniel.holbach@ubuntu.com>
|
||||||
|
Iain Lane <iain@orangesquash.org.uk>
|
||||||
Jamin W. Collins <jcollins@asgardsrealm.net>
|
Jamin W. Collins <jcollins@asgardsrealm.net>
|
||||||
|
Jonathan Patrick Davies <jpds@ubuntu.com>
|
||||||
Jordan Mantha <mantha@ubuntu.com>
|
Jordan Mantha <mantha@ubuntu.com>
|
||||||
|
Kees Cook <kees@ubuntu.com>
|
||||||
Luke Yelavich <themuso@ubuntu.com>
|
Luke Yelavich <themuso@ubuntu.com>
|
||||||
Martin Pitt <martin.pitt@ubuntu.com>
|
Martin Pitt <martin.pitt@ubuntu.com>
|
||||||
Michael Bienia <geser@ubuntu.com>
|
Michael Bienia <geser@ubuntu.com>
|
||||||
Pete Savage <petesavage@ubuntu.com>
|
Pete Savage <petesavage@ubuntu.com>
|
||||||
Kees Cook <kees@ubuntu.com>
|
|
||||||
Siegfried-A. Gevatter <rainct@ubuntu.com>
|
Siegfried-A. Gevatter <rainct@ubuntu.com>
|
||||||
Soren Hansen <soren@ubuntu.com>
|
Soren Hansen <soren@ubuntu.com>
|
||||||
Steve Kowalik <stevenk@ubuntu.com>
|
Steve Kowalik <stevenk@ubuntu.com>
|
||||||
Terence Simpson <stdin@stdin.me.uk>
|
Terence Simpson <stdin@stdin.me.uk>
|
||||||
Iain Lane <iain@orangesquash.org.uk>
|
|
||||||
|
|
||||||
Copyright:
|
Copyright:
|
||||||
|
|
||||||
@ -34,12 +35,13 @@ Copyright:
|
|||||||
(C) 2007-2008, Siegfried-A. Gevatter <rainct@ubuntu.com>
|
(C) 2007-2008, Siegfried-A. Gevatter <rainct@ubuntu.com>
|
||||||
(C) 2007, Terence Simpson <stdin@stdin.me.uk>
|
(C) 2007, Terence Simpson <stdin@stdin.me.uk>
|
||||||
(C) 2008, Iain Lane <iain@orangesquash.org.uk>
|
(C) 2008, Iain Lane <iain@orangesquash.org.uk>
|
||||||
|
(C) 2008, Jonathan Patrick Davies <jpds@ubuntu.com>
|
||||||
|
|
||||||
Licenses:
|
Licenses:
|
||||||
|
|
||||||
404main, check-symbols, dch-repeat, dgetlp, mk-sbuild-lv, pbuilder-dist,
|
404main, check-symbols, dgetlp, pbuilder-dist, requestsync,
|
||||||
requestsync, reverse-build-depends, submittodebian, update-maintainer
|
reverse-build-depends, submittodebian and update-maintainer are licensed
|
||||||
and what-patch are licensed under GPLv2:
|
under the GNU General Public License, version 2:
|
||||||
|
|
||||||
This package is free software; you can redistribute it and/or modify
|
This package is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@ -53,8 +55,9 @@ and what-patch are licensed under GPLv2:
|
|||||||
On Debian systems, the complete text of the GNU General Public License v2
|
On Debian systems, the complete text of the GNU General Public License v2
|
||||||
can be found in `/usr/share/common-licenses/GPL-2'.
|
can be found in `/usr/share/common-licenses/GPL-2'.
|
||||||
|
|
||||||
get-branches, get-build-deps, debian-pull-debdiff, massfile, ppaput,
|
dch-repeat, get-branches, get-build-deps, massfile, mk-sbuild-lv, ppaput,
|
||||||
suspicious-source and pull-lp-source are licensed under GPLv3:
|
pull-debian-debdiff, pull-lp-source, suspicious-source 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
|
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
|
it under the terms of the GNU General Public License as published by
|
||||||
@ -69,6 +72,6 @@ On Debian systems, the complete text of the GNU General Public License v3
|
|||||||
can be found in `/usr/share/common-licenses/GPL-3'.
|
can be found in `/usr/share/common-licenses/GPL-3'.
|
||||||
|
|
||||||
The following of the scripts can be used, at your option, regarding any
|
The following of the scripts can be used, at your option, regarding any
|
||||||
later version of the previously specified license: 404main, pbuilder-dist,
|
later version of the previously specified license: 404main, dch-repeat, dgetlp,
|
||||||
dgetlp, reverse-build-depends, suspicious-source, pull-lp-source and
|
get-build-deps, mk-sbuild-lv, pull-debian-debdiff, pull-lp-source,
|
||||||
get-build-deps.
|
reverse-build-depends, suspicious-source, what-patch.
|
||||||
|
3
debian/rules
vendored
3
debian/rules
vendored
@ -6,6 +6,3 @@ include /usr/share/cdbs/1/rules/debhelper.mk
|
|||||||
include /usr/share/cdbs/1/class/python-distutils.mk
|
include /usr/share/cdbs/1/class/python-distutils.mk
|
||||||
|
|
||||||
DEB_INSTALL_MANPAGES_ubuntu-dev-tools = doc/*.1
|
DEB_INSTALL_MANPAGES_ubuntu-dev-tools = doc/*.1
|
||||||
|
|
||||||
binary-install/ubuntu-dev-tools::
|
|
||||||
rm -rf debian/ubuntu-dev-tools/usr/lib
|
|
||||||
|
3
debian/source.lintian-overrides
vendored
3
debian/source.lintian-overrides
vendored
@ -1,3 +0,0 @@
|
|||||||
# Override useless NMU warnings; this is a native Ubuntu package.
|
|
||||||
ubuntu-dev-tools source: changelog-should-mention-nmu
|
|
||||||
ubuntu-dev-tools source: source-nmu-has-incorrect-version-number
|
|
1
debian/ubuntu-dev-tools.install
vendored
1
debian/ubuntu-dev-tools.install
vendored
@ -1 +1,2 @@
|
|||||||
bash_completion/* etc/bash_completion.d/
|
bash_completion/* etc/bash_completion.d/
|
||||||
|
common.py usr/share/ubuntu-dev-tools/
|
||||||
|
18
dgetlp
18
dgetlp
@ -1,20 +1,22 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# Copyright (C) 2008 Terence Simpson <tsimpson@ubuntu.com>
|
# Copyright (C) 2008 Terence Simpson <tsimpson@ubuntu.com>
|
||||||
# Modified by Siegfried-A. Gevatter <rainct@ubuntu.com>
|
# Modified by Siegfried-A. Gevatter <rainct@ubuntu.com>
|
||||||
# License:
|
#
|
||||||
# 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
|
# This program is free software; you can redistribute it and/or
|
||||||
# (at your option) any later version.
|
# 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,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU General Public License for more details.
|
# GNU General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU General Public License along
|
# See file /usr/share/common-licenses/GPL for more details.
|
||||||
# with this program; if not, write to the Free Software Foundation, Inc.,
|
#
|
||||||
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
# ##################################################################
|
||||||
#
|
#
|
||||||
# This script simulates «dget»'s behaviour for files hosted at
|
# This script simulates «dget»'s behaviour for files hosted at
|
||||||
# launchpadlibrarian.net.
|
# launchpadlibrarian.net.
|
||||||
|
54
doc/buildd.1
Normal file
54
doc/buildd.1
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
.TH BUILDD "1" "14 August 2008" "ubuntu-dev-tools"
|
||||||
|
.SH NAME
|
||||||
|
buildd \- command-line interface to Launchpad build operations
|
||||||
|
|
||||||
|
.SH SYNOPSIS
|
||||||
|
|
||||||
|
.B buildd <srcpackage> <release> <operation>
|
||||||
|
|
||||||
|
.B buildd \-\-help
|
||||||
|
|
||||||
|
.SH DESCRIPTION
|
||||||
|
.PP
|
||||||
|
\fBbuildd\fR provides a command line interface to the Launchpad build
|
||||||
|
operations.
|
||||||
|
|
||||||
|
.PP
|
||||||
|
\fBbuildd\fR uses a cookie file stored at \fI~/.lpcookie.txt\fR to authenticate
|
||||||
|
to Launchpad. This cookie is created on run from the Mozilla Firefox cookie
|
||||||
|
file at \fI~/.mozilla/*/*/cookies.sqlite\fR.
|
||||||
|
|
||||||
|
.SH OPERATIONS
|
||||||
|
.PP
|
||||||
|
Listed below are the available operations for \fBbuildd\fR:
|
||||||
|
.TP
|
||||||
|
.B status
|
||||||
|
Outputs the build status of the package on Launchpad on all architectures.
|
||||||
|
.TP
|
||||||
|
.B retry
|
||||||
|
Requests that the package has another attempt at rebuilding from source. This
|
||||||
|
shall only work if the package has \fIFailed to build\fR on Launchpad.
|
||||||
|
.TP
|
||||||
|
.B rescore
|
||||||
|
Requests that the packages build priority be raised in the build queue. Only
|
||||||
|
members of the Launchpad build administrators may issue this operation and may
|
||||||
|
only be performed on packages which \fINeed building\fR.
|
||||||
|
|
||||||
|
.SH OPTIONS
|
||||||
|
.PP
|
||||||
|
Listed below are the command line options for \fBbuildd\fR:
|
||||||
|
.TP
|
||||||
|
.B \-h or \-\-help
|
||||||
|
Display a help message and exit.
|
||||||
|
.TP
|
||||||
|
.B \-a or \-\-architecture
|
||||||
|
Only available for \fIrescore\fR and \fIretry\fR operations only. This shall
|
||||||
|
only request the rebuilding/rescoring on the specified architecture only.
|
||||||
|
|
||||||
|
.SH AUTHORS
|
||||||
|
.PP
|
||||||
|
\fBbuildd\fR was written by Martin Pitt <martin.pitt@canonical.com>, and
|
||||||
|
this manual page was written by Jonathan Patrick Davies <jpds@ubuntu.com>.
|
||||||
|
.PP
|
||||||
|
Both are released under the terms of the GNU General Public License, version 3
|
||||||
|
or (at your option) any later version.
|
61
doc/dch-repeat.1
Normal file
61
doc/dch-repeat.1
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
.TH DCH-REPEAT "1" "10 August 2008" "ubuntu-dev-tools"
|
||||||
|
.SH NAME
|
||||||
|
dch-repeat \- repeats a changelog entry into an older release
|
||||||
|
|
||||||
|
.SH SYNOPSIS
|
||||||
|
|
||||||
|
.B dch-repeat \-\-build-tree <\fIPATH\fR>
|
||||||
|
|
||||||
|
.B dch-repeat \-\-source-release <\fIRELEASE\fR>
|
||||||
|
|
||||||
|
.B dch-repeat \-\-target-release <\fIRELEASE\fR>
|
||||||
|
|
||||||
|
.B dch-repeat \-\-devel-release <\fIRELEASE\fR>
|
||||||
|
|
||||||
|
.B dch-repeat \-\-pocket <\fIPOCKET\fR>
|
||||||
|
|
||||||
|
.B dch-repeat \-h
|
||||||
|
|
||||||
|
.SH DESCRIPTION
|
||||||
|
.PP
|
||||||
|
\fBdch-repeat\fR is used to repeat a changelog into an older release. It
|
||||||
|
expects that \-\-build-tree is laid out with each Ubuntu release as a separate
|
||||||
|
directory ("feisty", "edgy", etc).
|
||||||
|
|
||||||
|
.PP
|
||||||
|
For example, if gimp had a security update prepared for Feisty in
|
||||||
|
$TREE/feisty/gimp-2.2.13, running \fBdch-repeat\fR in $TREE/edgy/gimp-2.2.13
|
||||||
|
would pull in the latest changelog from the Feisty build.
|
||||||
|
|
||||||
|
.SH OPTIONS
|
||||||
|
.PP
|
||||||
|
Listed below are the command line options for \fBdch-repeat\fR:
|
||||||
|
.TP
|
||||||
|
.B \-h or \-\-help
|
||||||
|
Display a help message and exit.
|
||||||
|
.TP
|
||||||
|
.B \-\-build-tree PATH
|
||||||
|
Base of build trees. Default is /scratch/ubuntu/build.
|
||||||
|
.TP
|
||||||
|
.B \-s or \-\-source-release RELEASE
|
||||||
|
Which release to take changelog from.
|
||||||
|
.TP
|
||||||
|
.B \-\-target-release RELEASE
|
||||||
|
Which release to build into.
|
||||||
|
.TP
|
||||||
|
.B \-\-devel-release RELEASE
|
||||||
|
Which release is the development release.
|
||||||
|
.TP
|
||||||
|
.B \-\-pocket POCKET
|
||||||
|
Which pocket to use.
|
||||||
|
|
||||||
|
.SH AUTHOR
|
||||||
|
.PP
|
||||||
|
\fBdch-repeat\fR was written by Kees Cook <kees@ubuntu.com>. This manual page
|
||||||
|
was written by Jonathan Patrick Davies <jpds@ubuntu.com>.
|
||||||
|
.PP
|
||||||
|
Both are released under the GNU General Public License, version 2.
|
||||||
|
|
||||||
|
.SH SEE ALSO
|
||||||
|
.PP
|
||||||
|
.BR dch(1).
|
45
doc/get-branches.1
Normal file
45
doc/get-branches.1
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
.TH GET-BRANCHES "1" "11 August 2008" "ubuntu-dev-tools"
|
||||||
|
.SH NAME
|
||||||
|
get-branches \- downloads all branches related to a Launchpad team or person
|
||||||
|
|
||||||
|
.SH SYNOPSIS
|
||||||
|
|
||||||
|
.B get-branches [-d directory] [-o branch|checkout] \-t <team>
|
||||||
|
|
||||||
|
.B get-branches <team>
|
||||||
|
|
||||||
|
.B get-branches \-\-help
|
||||||
|
|
||||||
|
.SH DESCRIPTION
|
||||||
|
.PP
|
||||||
|
\fBget-branches\fR examines the code page of a Launchpad team/person, parses it,
|
||||||
|
and calls Bazaar to download all branches on that page.
|
||||||
|
|
||||||
|
.SH OPTIONS
|
||||||
|
.PP
|
||||||
|
Listed below are the command line options for \fBget-branches\fR:
|
||||||
|
.TP
|
||||||
|
.B \-h or \-\-help
|
||||||
|
Display a help message and exit.
|
||||||
|
.TP
|
||||||
|
.B \-d or \-\-directory
|
||||||
|
Download branches to a directory other than the current directory.
|
||||||
|
.TP
|
||||||
|
.B \-o or \-\-operation
|
||||||
|
Specifies which Bazaar operation to use when downloading the branches; may be
|
||||||
|
either \fIbranch\fR or \fIcheckout\fR.
|
||||||
|
.TP
|
||||||
|
.B \-t or \-\-team
|
||||||
|
Specifies which Launchpad team/person to download branches from. This option is
|
||||||
|
required.
|
||||||
|
|
||||||
|
.SH AUTHORS
|
||||||
|
.PP
|
||||||
|
\fBget-branches\fR was written by Daniel Holbach <daniel.holbach@ubuntu.com>, and
|
||||||
|
this manual page was written by Jonathan Patrick Davies <jpds@ubuntu.com>.
|
||||||
|
.PP
|
||||||
|
Both are released under the terms of the GNU General Public License, version 3.
|
||||||
|
|
||||||
|
.SH SEE ALSO
|
||||||
|
.PP
|
||||||
|
.B bzr(1)
|
@ -55,5 +55,5 @@ the newest one available in the repositories.
|
|||||||
|
|
||||||
.SH AUTHORS
|
.SH AUTHORS
|
||||||
\fBget\-build\-deps\fP and this manual page have been written by Siegfried-Angel
|
\fBget\-build\-deps\fP and this manual page have been written by Siegfried-Angel
|
||||||
Gevatter Pujals <rainct@ubuntu.com>. They are released under the GNU General Public
|
Gevatter Pujals <rainct@ubuntu.com>. They are released under the GNU General
|
||||||
License, version 3 or later.
|
Public License, version 3 or later.
|
||||||
|
29
doc/grab-attachments.1
Normal file
29
doc/grab-attachments.1
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
.TH GRAB-ATTACHMENTS "1" "10 August 2008" "ubuntu-dev-tools"
|
||||||
|
.SH NAME
|
||||||
|
grab-attachments \- downloads attachments from a Launchpad bug
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.B grab-attachments\fR <\fIbug-number\fR>
|
||||||
|
|
||||||
|
.B grab-attachments \-h
|
||||||
|
.SH DESCRIPTION
|
||||||
|
.PP
|
||||||
|
\fBgrab-attachments\fR is a script to download all attachments from a
|
||||||
|
Launchpad bug report into the current directory.
|
||||||
|
|
||||||
|
.SH OPTIONS
|
||||||
|
.PP
|
||||||
|
Listed below are the command line options for grab-attachments:
|
||||||
|
.TP
|
||||||
|
.B \-h
|
||||||
|
Display a help message and exit.
|
||||||
|
.TP
|
||||||
|
.B <bug-number>
|
||||||
|
Specifies the Launchpad bug number that the script should download
|
||||||
|
attachments from.
|
||||||
|
|
||||||
|
.SH AUTHOR
|
||||||
|
.PP
|
||||||
|
\fBgrab-attachments\fR was written by Daniel Holbach and this manual page was
|
||||||
|
written by Jonathan Patrick Davies.
|
||||||
|
.PP
|
||||||
|
Both are released under the GNU General Public License, version 2.
|
@ -91,22 +91,14 @@ rainct@ubuntu.com.
|
|||||||
Please ensure first that the problem is really this script and not an issue
|
Please ensure first that the problem is really this script and not an issue
|
||||||
with \fBpbuilder\fP.
|
with \fBpbuilder\fP.
|
||||||
|
|
||||||
.SH AUTHORS
|
|
||||||
\fBpbuilder\-dist\fP was originally written by Jamin W. Collins <jcollins@asgardsrealm.net> and
|
|
||||||
Jordan Mantha <mantha@ubuntu.com>.
|
|
||||||
.PP
|
|
||||||
On August 2007 it was mostly rewritten, and extended, by Siegfried-Angel Gevatter Pujals
|
|
||||||
<rainct@ubuntu.com>.
|
|
||||||
|
|
||||||
.SH SEE ALSO
|
.SH SEE ALSO
|
||||||
\fBpbuilder\fR, \fBpbuilderrc\fR
|
\fBpbuilder\fR, \fBpbuilderrc\fR
|
||||||
|
|
||||||
.SH COPYRIGHT
|
.SH AUTHORS
|
||||||
This manual page was written by Siegfried-Angel Gevatter Pujals (RainCT)
|
\fBpbuilder\-dist\fP was originally written by Jamin W. Collins
|
||||||
<rainct@ubuntu.com> for YOU.
|
<jcollins@asgardsrealm.net> and Jordan Mantha <mantha@ubuntu.com>. On August
|
||||||
Permission is granted to copy, distribute and/or modify this document
|
2007 it was mostly rewritten, and extended, by Siegfried-Angel Gevatter Pujals
|
||||||
under the terms of the GNU General Public License,
|
<rainct@ubuntu.com>.
|
||||||
Version 2 or any later version published by the Free Software Foundation.
|
|
||||||
.PP
|
\fBpbuilder\-dist\fP is released under the GNU General Public License, version
|
||||||
On Debian based systems, the complete text of the GNU General Public
|
2 or later.
|
||||||
License can be found in \fB/usr/share/common\-licenses/GPL\fP.
|
|
||||||
|
@ -18,6 +18,20 @@ follows so that it can sign the mail and send it off to Launchpad.
|
|||||||
Alternatively a sync request can be filed directly using the launchpadbugs
|
Alternatively a sync request can be filed directly using the launchpadbugs
|
||||||
python module (option \fB\-\-lp\fR). \fBrequestsync\fR falls back to mail
|
python module (option \fB\-\-lp\fR). \fBrequestsync\fR falls back to mail
|
||||||
the sync request if submitting using the launchpadbugs module fails.
|
the sync request if submitting using the launchpadbugs module fails.
|
||||||
|
|
||||||
|
.PP
|
||||||
|
\fBrequestsync\fR checks if you have the permissions to request the sync from
|
||||||
|
the archive administrators directly by checking if you are a member of the
|
||||||
|
\fI~ubuntu-dev\fR team (for universe/multiverse syncs) or a member of the
|
||||||
|
\fI~ubuntu-core-dev\fR team (for main/restricted syncs) on Launchpad. If you are
|
||||||
|
not a member of the appropriate team, the script shall subscribe the necessary
|
||||||
|
team with approval rights to the bug report for you.
|
||||||
|
|
||||||
|
.PP
|
||||||
|
\fBrequestsync\fR uses a cookie file stored at \fI~/.lpcookie.txt\fR to
|
||||||
|
authenticate with Launchpad. This cookie is created on run from the Mozilla
|
||||||
|
Firefox cookie file at \fI~/.mozilla/*/*/cookies.sqlite\fR.
|
||||||
|
|
||||||
.SH OPTIONS
|
.SH OPTIONS
|
||||||
.PP
|
.PP
|
||||||
Listed below are the command line options for requestsync:
|
Listed below are the command line options for requestsync:
|
||||||
@ -29,15 +43,10 @@ Display a help message and exit.
|
|||||||
Specifies that the package is a new package, and requestsync should not
|
Specifies that the package is a new package, and requestsync should not
|
||||||
attempt to look it up in Ubuntu since it will not exist.
|
attempt to look it up in Ubuntu since it will not exist.
|
||||||
.TP
|
.TP
|
||||||
.B \-s
|
|
||||||
Specifies that you require sponsorship.
|
|
||||||
You need this option if you are not a member of ubuntu-dev for universe or
|
|
||||||
multiverse, or ubuntu-core-dev for main or restricted.
|
|
||||||
.TP
|
|
||||||
.B \-k \fI<keyid>\fR
|
.B \-k \fI<keyid>\fR
|
||||||
Specifies your GPG key.
|
Specifies your GPG key.
|
||||||
Can also be set with the line `\fIexport GPGKEY=<keyid>\fR' in
|
Can also be set with the line `\fIexport GPGKEY=<keyid>\fR' in your shell's
|
||||||
.IR $HOME/.bashrc .
|
configuration (For example: \fI$HOME/.bashrc\fR).
|
||||||
This is only used if the sync request is mailed to Launchpad.
|
This is only used if the sync request is mailed to Launchpad.
|
||||||
.TP
|
.TP
|
||||||
.B \-\-lp
|
.B \-\-lp
|
||||||
@ -50,18 +59,43 @@ This is the source package that you would like to be synced from Debian.
|
|||||||
.B <target release>
|
.B <target release>
|
||||||
This is the release that you would like the source package to be synced
|
This is the release that you would like the source package to be synced
|
||||||
into.
|
into.
|
||||||
This should always be the latest development release of Ubuntu, i.e.: hardy.
|
This should always be the latest development release of Ubuntu.
|
||||||
.TP
|
.TP
|
||||||
.B [base version]
|
.B [base version]
|
||||||
In some cases, the base version (where the Ubuntu package started differing
|
In some cases, the base version (where the Ubuntu package started differing
|
||||||
from the Debian package) cannot be automatically determined.
|
from the Debian package) cannot be automatically determined.
|
||||||
Specify this option in this case.
|
Specify this option in this case.
|
||||||
.SH AUTHOR
|
|
||||||
.PP
|
|
||||||
This manual page was pieced together by Steve Kowalik.
|
|
||||||
|
|
||||||
It was then updated by Ryan Kavanagh and Michael Bienia to reflect
|
.SH ENVIRONMENT VARIABLES
|
||||||
additional features.
|
.PP
|
||||||
|
\fBrequestsync\fR uses the following variables which should be set in your
|
||||||
|
shell's configuration by adding \fIexport VARIABLE=\fR lines, where VARIABLE is
|
||||||
|
one of the following:
|
||||||
|
|
||||||
|
.TP
|
||||||
|
.B GPGKEY
|
||||||
|
Specifies your GnuPG key ID.
|
||||||
|
.TP
|
||||||
|
.B DEBEMAIL
|
||||||
|
Specifies which email should be used when sending to Launchpad.
|
||||||
|
.TP
|
||||||
|
.B DEBSMTP
|
||||||
|
Set which SMTP server to use when sending mail. If unspecified this defaults to
|
||||||
|
fioldland.ubuntu.com.
|
||||||
|
.TP
|
||||||
|
.B DEBSMTP_PORT
|
||||||
|
Sets which port of the SMTP server to use. Default is 25.
|
||||||
|
.TP
|
||||||
|
.B DEBSMTP_USER and DEBSMTP_PASS
|
||||||
|
Sets the username and password to use when authenticating to the SMTP server.
|
||||||
|
|
||||||
.SH SEE ALSO
|
.SH SEE ALSO
|
||||||
.PP
|
.PP
|
||||||
.BR rmadison (1)
|
.BR rmadison (1)
|
||||||
|
|
||||||
|
.SH AUTHOR
|
||||||
|
.PP
|
||||||
|
.B requestsync
|
||||||
|
and this manual page were written by the Ubuntu MOTU Team.
|
||||||
|
.PP
|
||||||
|
Both are released under the GNU General Public License, version 2.
|
||||||
|
@ -1,7 +1,3 @@
|
|||||||
.\" Title: reverse-build-depends
|
|
||||||
.\" Author: Siegfried-Angel Gevatter Pujals
|
|
||||||
.\" Contact details: rainct@ubuntu.com
|
|
||||||
|
|
||||||
.TH REVERSE\-BUILD\-DEPENDS 1 "January 17, 2008" "ubuntu-dev-tools"
|
.TH REVERSE\-BUILD\-DEPENDS 1 "January 17, 2008" "ubuntu-dev-tools"
|
||||||
|
|
||||||
.SH NAME
|
.SH NAME
|
||||||
@ -26,13 +22,13 @@ If you prefer to see all build dependencies in a single line, use this
|
|||||||
option. Otherwise, each one will be printed on its own line.
|
option. Otherwise, each one will be printed on its own line.
|
||||||
|
|
||||||
.SH KNOWN BUGS AND LIMITATIONS
|
.SH KNOWN BUGS AND LIMITATIONS
|
||||||
Note that to use \fBreverse\-build\-depends\fP it is required for the source repositories
|
Note that to use \fBreverse\-build\-depends\fP it is required for the source
|
||||||
(deb-src lines) to be enabled in your sources.list.
|
repositories (deb-src lines) to be enabled in your sources.list.
|
||||||
|
|
||||||
.SH SEE ALSO
|
.SH SEE ALSO
|
||||||
\fBgrep\-dctrl\fR, \fBapt\-cache\fR
|
\fBgrep\-dctrl\fR, \fBapt\-cache\fR
|
||||||
|
|
||||||
.SH COPYRIGHT
|
.SH AUTHORS
|
||||||
\fBreverse\-build\-depends\fP and this manual page were written by
|
\fBreverse\-build\-depends\fP and this manual page were written by
|
||||||
Siegfried-Angel Gevatter Pujals <rainct@ubuntu.com> for YOU. Both are
|
Siegfried-Angel Gevatter Pujals <rainct@ubuntu.com> for YOU. Both are
|
||||||
released under the terms of the GNU General Public License (version 2
|
released under the terms of the GNU General Public License (version 2
|
||||||
|
@ -26,3 +26,5 @@ By examining debian/changelog it will extract the information it needs to:
|
|||||||
.br
|
.br
|
||||||
.SH AUTHOR
|
.SH AUTHOR
|
||||||
submittodebian and this man page were written by Soren Hansen <soren@ubuntu.com>.
|
submittodebian and this man page were written by Soren Hansen <soren@ubuntu.com>.
|
||||||
|
.PP
|
||||||
|
Both are released under the GNU General Public License, version 2 or later.
|
||||||
|
44
doc/what-patch.1
Normal file
44
doc/what-patch.1
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
.TH WHAT-PATCH "1" "10 August 2008" "ubuntu-dev-tools"
|
||||||
|
.SH NAME
|
||||||
|
what-patch \- detects which patch system a Debian package uses
|
||||||
|
|
||||||
|
.SH SYNOPSIS
|
||||||
|
|
||||||
|
.B what-patch [options]
|
||||||
|
|
||||||
|
.SH DESCRIPTION
|
||||||
|
.PP
|
||||||
|
\fBwhat-patch\fR examines the debian/rules file to determine which patch
|
||||||
|
system the Debian package is using.
|
||||||
|
|
||||||
|
.PP
|
||||||
|
\fBwhat-patch\fR should be run from the root directory of the Debian source
|
||||||
|
package.
|
||||||
|
|
||||||
|
.SH OPTIONS
|
||||||
|
.PP
|
||||||
|
Listed below are the command line options for what-patch:
|
||||||
|
.TP
|
||||||
|
.B \-h or \-\-help
|
||||||
|
Display a help message and exit.
|
||||||
|
.TP
|
||||||
|
.B \-v
|
||||||
|
Enable verbose mode. This shall include the listing of any files modified
|
||||||
|
outside or the debian/ directory and report any additional details about the
|
||||||
|
patch system if available.
|
||||||
|
|
||||||
|
.SH AUTHORS
|
||||||
|
.PP
|
||||||
|
\fBwhat-patch\fR was written by Kees Cook <kees@ubuntu.com>, Siegfried-A.
|
||||||
|
Gevatter <rainct@ubuntu.com>, and Daniel Hahler <ubuntu@thequod.de>, among
|
||||||
|
others. This manual page was written by Jonathan Patrick Davies <jpds@ubuntu.com>.
|
||||||
|
.PP
|
||||||
|
Both are released under the GNU General Public License, version 2.
|
||||||
|
|
||||||
|
.SH SEE ALSO
|
||||||
|
.PP
|
||||||
|
The Ubuntu MOTU team has some documentation about patch systems at the Ubuntu
|
||||||
|
wiki: \fBhttps://wiki.ubuntu.com/PackagingGuide/PatchSystems\fR
|
||||||
|
|
||||||
|
.PP
|
||||||
|
.B cdbs-edit-patch(1), dbs-edit-patch(1), dpatch-edit-patch(1)
|
129
get-branches
129
get-branches
@ -1,70 +1,141 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# Copyright 2007 (C) Canonical Ltd.
|
#
|
||||||
|
# Copyright (C) 2007 Canonical Ltd.
|
||||||
# Created by Daniel Holbach <daniel.holbach@ubuntu.com>
|
# Created by Daniel Holbach <daniel.holbach@ubuntu.com>
|
||||||
# License: GPLv3
|
# Modified by Jonathan Patrick Davies <jpds@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; version 3.
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
# See file /usr/share/common-licenses/GPL-3 for more details.
|
||||||
|
#
|
||||||
|
# ##################################################################
|
||||||
#
|
#
|
||||||
# This script is used to checkout or branch all the Bazaar branches
|
# This script is used to checkout or branch all the Bazaar branches
|
||||||
# in a Launchpad team.
|
# of a Launchpad team.
|
||||||
|
#
|
||||||
|
|
||||||
import urllib2
|
|
||||||
import sys
|
|
||||||
import re
|
|
||||||
import os
|
import os
|
||||||
|
import re
|
||||||
|
import subprocess
|
||||||
|
import sys
|
||||||
|
import urllib2
|
||||||
|
from optparse import OptionParser
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
usage = "Usage: get-branches <directory> <team> [checkout|branch]"
|
usage = "Usage: %prog [-d <directory>] -t <team> [-o <operation>]"
|
||||||
if len(sys.argv) < 3:
|
usage += "\nUsage: %prog <team>"
|
||||||
print >> sys.stderr, usage
|
optParser = OptionParser(usage)
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
directory = os.path.abspath(sys.argv[1]))
|
# Our options.
|
||||||
team = sys.argv[2]
|
optParser.add_option("-d", "--directory", action = "store", type = "string",
|
||||||
operation_type = "branch"
|
dest = "directory", default = ".",
|
||||||
if len(sys.argv) == 4:
|
help = "Directory to download branches to.")
|
||||||
operation_type = sys.argv[3]
|
optParser.add_option("-t", "--team", action = "store", type = "string",
|
||||||
|
dest = "lpteam", help = "Launchpad team to download branches from.")
|
||||||
|
optParser.add_option("-o", "--operation", action = "store", type = "string",
|
||||||
|
dest = "operation", default = "branch",
|
||||||
|
help = "Whether to branch or checkout the Bazaar branches. May be " \
|
||||||
|
"either 'branch' or 'checkout'.")
|
||||||
|
|
||||||
|
(options, args) = optParser.parse_args()
|
||||||
|
|
||||||
|
# Parse our options aka Russian roulette time.
|
||||||
|
if len(args) != 1 and options.lpteam == None:
|
||||||
|
optParser.error("No team has been specified.")
|
||||||
|
|
||||||
|
# Launchpad team setting.
|
||||||
|
if options.lpteam:
|
||||||
|
team = str(options.lpteam).lower()
|
||||||
|
if args:
|
||||||
|
team = str(args[0]).lower()
|
||||||
|
|
||||||
|
directory = options.directory
|
||||||
|
|
||||||
|
# Dictionary settings.
|
||||||
|
if not os.path.isdir(directory): # Check that it is a directory.
|
||||||
|
optParser.error("%s is not a valid directory." % directory)
|
||||||
|
|
||||||
|
# Type of Bazaar operation to perform.
|
||||||
|
operation_type = str(options.operation).lower()
|
||||||
|
|
||||||
|
# Got an argument, check if it is valid.
|
||||||
|
if operation_type not in ("branch", "checkout"):
|
||||||
|
optParser.error("Invalid operation '%s' for '-o' flag." % \
|
||||||
|
operation_type)
|
||||||
|
|
||||||
|
|
||||||
|
# Fetch our current directory to return to later.
|
||||||
pwd = os.getcwd()
|
pwd = os.getcwd()
|
||||||
try:
|
|
||||||
|
# Change to the specified directory.
|
||||||
os.chdir(directory)
|
os.chdir(directory)
|
||||||
except:
|
|
||||||
print >> sys.stderr, "Directory '%s' not found." % directory
|
# Try to open the teams code page.
|
||||||
|
try:
|
||||||
|
sock = urllib2.urlopen("https://code.launchpad.net/~%s" % team)
|
||||||
|
except urllib2.HTTPError:
|
||||||
|
print >> sys.stderr, "The page https://code.launchpad.net/~%s does " \
|
||||||
|
"not exist." % team
|
||||||
|
print >> sys.stderr, "Perhaps invalid team name?"
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
|
branch_list_page = sock.read()
|
||||||
|
sock.close()
|
||||||
|
|
||||||
|
branch_page_urls_regex = r'.*<a href="/(~%s/.*)".*' % team
|
||||||
|
branch_page_urls = re.findall(branch_page_urls_regex, branch_list_page)
|
||||||
|
|
||||||
|
# Check the team actually has branches.
|
||||||
|
if len(branch_page_urls) == 0:
|
||||||
|
print "The team '%s' does not have any branches on Launchpad." % team
|
||||||
|
sys.exit(0)
|
||||||
|
|
||||||
|
print "Downloading all branches for the team '%s'. This may take some " \
|
||||||
|
"time." % team
|
||||||
|
|
||||||
try:
|
try:
|
||||||
os.makedirs(team)
|
os.makedirs(team)
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
os.chdir(team)
|
os.chdir(team)
|
||||||
|
|
||||||
sock = urllib2.urlopen("http://code.launchpad.net/~%s" % team)
|
|
||||||
branch_list_page = sock.read()
|
|
||||||
sock.close()
|
|
||||||
branch_page_urls_regex = r'.*<a href="/(~%s/.*)".*' % team
|
|
||||||
branch_page_urls = re.findall(branch_page_urls_regex, branch_list_page)
|
|
||||||
for url in branch_page_urls:
|
for url in branch_page_urls:
|
||||||
sock = urllib2.urlopen("http://code.launchpad.net/%s" % url)
|
sock = urllib2.urlopen("https://code.launchpad.net/%s" % url)
|
||||||
branch_page = sock.read()
|
branch_page = sock.read()
|
||||||
sock.close()
|
sock.close()
|
||||||
branch_url_regex = r'<th>Hosted on Launchpad:</th>.*\n.*<td>(.*)</td>'
|
|
||||||
|
branch_url_regex = r'<tt>bzr branch lp:~(.*)</tt>'
|
||||||
branch_url = re.findall(branch_url_regex, branch_page)
|
branch_url = re.findall(branch_url_regex, branch_page)
|
||||||
print branch_url[0]
|
print "Downloading branch: lp:~%s." % branch_url[0]
|
||||||
|
|
||||||
if branch_url[0]:
|
if branch_url[0]:
|
||||||
product = branch_url[0].split("/")[-2]
|
product = branch_url[0].split("/")[-2]
|
||||||
branch_nick = branch_url[0].split("/")[-1]
|
branch_nick = branch_url[0].split("/")[-1]
|
||||||
|
|
||||||
if not os.path.exists(product):
|
if not os.path.exists(product):
|
||||||
os.makedirs(product)
|
os.makedirs(product)
|
||||||
os.chdir(product)
|
os.chdir(product)
|
||||||
|
|
||||||
if not os.path.exists(branch_nick):
|
if not os.path.exists(branch_nick):
|
||||||
os.system("bzr %s %s" % (operation_type, branch_url[0]))
|
subprocess.call(["bzr", operation_type, "lp:~%s" % branch_url[0]])
|
||||||
else:
|
else:
|
||||||
os.chdir(branch_nick)
|
os.chdir(branch_nick)
|
||||||
os.system("bzr merge --pull --remember")
|
subprocess.call(["bzr", "merge", "--pull", "--remember"])
|
||||||
os.chdir(os.path.join(directory, team))
|
os.chdir(os.path.join(directory, team))
|
||||||
|
|
||||||
os.chdir(pwd)
|
os.chdir(pwd)
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
|
@ -1,6 +1,22 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
#
|
||||||
# Copyright 2007 (C) Siegfried-A. Gevatter <rainct@ubuntu.com>
|
# Copyright 2007 (C) Siegfried-A. Gevatter <rainct@ubuntu.com>
|
||||||
# License: GPLv3 or later
|
#
|
||||||
|
# ##################################################################
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
# See file /usr/share/common-licenses/GPL for more details.
|
||||||
|
#
|
||||||
|
# ##################################################################
|
||||||
#
|
#
|
||||||
# If you don't pass it any argument, this script will check if
|
# If you don't pass it any argument, this script will check if
|
||||||
# there's a control (debian/control) file somewhere in the current
|
# there's a control (debian/control) file somewhere in the current
|
||||||
|
@ -1,9 +1,22 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
#
|
#
|
||||||
# Copyright 2007, Canonical, Daniel Holbach
|
# Copyright (C) 2007, Canonical Ltd.
|
||||||
|
# Written by Daniel Holbach
|
||||||
#
|
#
|
||||||
# GPL 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 the Free Software Foundation; version 3.
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
# See file /usr/share/common-licenses/GPL-3 for more details.
|
||||||
|
#
|
||||||
|
# ##################################################################
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
81
hugdaylist
81
hugdaylist
@ -1,65 +1,99 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
#
|
#
|
||||||
# Copyright 2007, Canonical, Daniel Holbach
|
# Copyright (C) 2007 Canonical Ltd., Daniel Holbach
|
||||||
|
# Copyright (C) 2008 Jonathan Patrick Davies <jpds@ubuntu.com>
|
||||||
#
|
#
|
||||||
# GPL 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 the Free Software Foundation; version 3.
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
# See file /usr/share/common-licenses/GPL-3 for more details.
|
||||||
|
#
|
||||||
|
# ##################################################################
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# hugdaylist - produces MoinMoin wiki formatted tables based on a Launchpad bug
|
||||||
|
# list.
|
||||||
#
|
#
|
||||||
# hugdaylist <url>
|
# hugdaylist <url>
|
||||||
# - produces lists like https://wiki.ubuntu.com/UbuntuBugDay/20070912?action=raw
|
# - produces lists like https://wiki.ubuntu.com/UbuntuBugDay/20070912?action=raw
|
||||||
#
|
#
|
||||||
# hugdaylist -n <howmany> <url>
|
# hugdaylist -n <howmany> <url>
|
||||||
# - will only list <howmany> URLs
|
# - will only list <howmany> URLs.
|
||||||
#
|
|
||||||
|
|
||||||
import re
|
|
||||||
import os
|
import os
|
||||||
import sys
|
import re
|
||||||
import string
|
import string
|
||||||
|
import sys
|
||||||
|
from optparse import OptionParser
|
||||||
|
|
||||||
try:
|
try:
|
||||||
import launchpadbugs.connector as Connector
|
import launchpadbugs.connector as Connector
|
||||||
BugList = Connector.ConnectBugList()
|
BugList = Connector.ConnectBugList()
|
||||||
Bug = Connector.ConnectBug(method="Text")
|
Bug = Connector.ConnectBug(method="Text")
|
||||||
except:
|
except ImportError:
|
||||||
print >> sys.stderr, \
|
print >> sys.stderr, \
|
||||||
"You need python-launchpad-bugs (>= 0.2.25) installed to use hugdaylist."
|
"python-launchpad-bugs (>= 0.2.25) needs to be installed to use hugdaylist."
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
|
|
||||||
USAGE = "hugdaylist [-n <howmany>] <URL>"
|
|
||||||
|
|
||||||
def check_args():
|
def check_args():
|
||||||
howmany = -1
|
howmany = -1
|
||||||
url = ""
|
url = ""
|
||||||
|
|
||||||
if len(sys.argv) < 2:
|
# Our usage options.
|
||||||
print >> sys.stderr, USAGE
|
usage = "usage: %prog [-n <number>] launchpad-buglist-url"
|
||||||
sys.exit(1)
|
optParser = OptionParser(usage)
|
||||||
|
argsParsed = 0
|
||||||
|
|
||||||
if sys.argv[1] == "-n":
|
# Options - namely just the number of bugs to output.
|
||||||
howmany = int(sys.argv[2])
|
optParser.add_option("-n", "--number", type = "int",
|
||||||
if len(sys.argv) < 4:
|
dest = "number", help = "Number of entries to output.")
|
||||||
print USAGE
|
|
||||||
|
# Parse arguments.
|
||||||
|
(options, args) = optParser.parse_args()
|
||||||
|
|
||||||
|
# Check if we want a number other than the default.
|
||||||
|
howmany = options.number
|
||||||
|
|
||||||
|
# Check that we have an URL.
|
||||||
|
if not args:
|
||||||
|
print >> sys.stderr, "An URL pointing to a Launchpad bug list is " \
|
||||||
|
"required."
|
||||||
|
optParser.print_help()
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
url = sys.argv[3]
|
|
||||||
else:
|
else:
|
||||||
url = sys.argv[1]
|
url = args[argsParsed]
|
||||||
|
|
||||||
return (howmany, url)
|
return (howmany, url)
|
||||||
|
|
||||||
def filter_unsolved(b):
|
def filter_unsolved(b):
|
||||||
bug = Bug(int(b))
|
bug = Bug(int(b))
|
||||||
|
# Filter out special types of bugs:
|
||||||
|
# - https://wiki.ubuntu.com/Bugs/HowToTriage#Special%20types%20of%20bugs
|
||||||
return filter(lambda a: a.status != 'Fix Committed' and \
|
return filter(lambda a: a.status != 'Fix Committed' and \
|
||||||
(a.assignee in ['motu','desktop-bugs'] or \
|
(a.assignee in ['motu','desktop-bugs'] or \
|
||||||
not a.assignee), bug.infotable) and \
|
not a.assignee), bug.infotable) and \
|
||||||
'ubuntu-main-sponsors' not in [str(s) for s in bug.subscribers] and \
|
'ubuntu-main-sponsors' not in [str(s) for s in bug.subscribers] and \
|
||||||
'ubuntu-universe-sponsors' not in [str(s) for s in bug.subscribers]
|
'ubuntu-universe-sponsors' not in [str(s) for s in bug.subscribers] and \
|
||||||
|
'ubuntu-archive' not in [str(s) for s in bug.subscribers]
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
(howmany, url) = check_args()
|
(howmany, url) = check_args()
|
||||||
|
|
||||||
|
try:
|
||||||
bl = BugList(url)
|
bl = BugList(url)
|
||||||
|
except:
|
||||||
|
print >> sys.stderr, "The page '%s' does not appear to exist." % url
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
l = filter(filter_unsolved, bl)
|
l = filter(filter_unsolved, bl)
|
||||||
|
|
||||||
if not l:
|
if not l:
|
||||||
@ -82,5 +116,8 @@ def main():
|
|||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
try:
|
||||||
main()
|
main()
|
||||||
|
except KeyboardInterrupt:
|
||||||
|
print >> sys.stderr, "Aborted."
|
||||||
|
sys.exit(1)
|
||||||
|
53
massfile
53
massfile
@ -1,10 +1,25 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
#
|
#
|
||||||
# (C) Canonical, 2007, GPL v3
|
# Copyright (C) 2007 Canonical Ltd.
|
||||||
#
|
#
|
||||||
# Modified by Iain Lane <iain@orangesquash.org.uk>, taking some code written by
|
# Modified by Iain Lane <iain@orangesquash.org.uk>, taking some code written by
|
||||||
# Daniel Hahler <ubuntu@thequod.de>
|
# Daniel Hahler <ubuntu@thequod.de>
|
||||||
|
#
|
||||||
|
# ##################################################################
|
||||||
|
#
|
||||||
|
# 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; version 3.
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
# See file /usr/share/common-licenses/GPL-3 for more details.
|
||||||
|
#
|
||||||
|
# ##################################################################
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
@ -14,6 +29,10 @@ import glob
|
|||||||
|
|
||||||
import launchpadbugs.connector as Connector
|
import launchpadbugs.connector as Connector
|
||||||
|
|
||||||
|
sys.path.append('/usr/share/ubuntu-dev-tools/')
|
||||||
|
import common
|
||||||
|
|
||||||
|
cookie = common.prepareLaunchpadCookie()
|
||||||
|
|
||||||
def read_config():
|
def read_config():
|
||||||
instructions_file = open("instructions")
|
instructions_file = open("instructions")
|
||||||
@ -40,8 +59,7 @@ def read_list():
|
|||||||
|
|
||||||
def file_bug():
|
def file_bug():
|
||||||
Bug = Connector.ConnectBug()
|
Bug = Connector.ConnectBug()
|
||||||
Bug.authentication = os.path.expanduser("~/.lpcookie")
|
Bug.authentication = cookie
|
||||||
|
|
||||||
|
|
||||||
def check_configfiles():
|
def check_configfiles():
|
||||||
result = True
|
result = True
|
||||||
@ -70,6 +88,7 @@ def check_configfiles():
|
|||||||
|
|
||||||
def file_bug(config):
|
def file_bug(config):
|
||||||
Bug = Connector.ConnectBug()
|
Bug = Connector.ConnectBug()
|
||||||
|
|
||||||
Bug.authentication = cookie
|
Bug.authentication = cookie
|
||||||
|
|
||||||
try:
|
try:
|
||||||
@ -108,38 +127,10 @@ def read_buglist(url):
|
|||||||
|
|
||||||
return packages
|
return packages
|
||||||
|
|
||||||
def lp_cookie():
|
|
||||||
global cookie
|
|
||||||
cookie = None
|
|
||||||
|
|
||||||
# Search cookiefile (for authentication to lp)
|
|
||||||
if cookie == None:
|
|
||||||
try_globs = ('~/.lpcookie.txt', '~/.mozilla/*/*/cookies.sqlite', '~/.mozilla/*/*/cookies.txt')
|
|
||||||
for try_glob in try_globs:
|
|
||||||
try:
|
|
||||||
cookiefile = glob.glob(os.path.expanduser(try_glob))[0]
|
|
||||||
except IndexError:
|
|
||||||
continue
|
|
||||||
# Found:
|
|
||||||
print "Using cookie file at «%s».\n" % cookiefile
|
|
||||||
cookie = cookiefile
|
|
||||||
break
|
|
||||||
|
|
||||||
if cookie == None:
|
|
||||||
raise RuntimeError("Could not find cookie file for Launchpad \
|
|
||||||
(looked in %s). You should be able to create a valid file by logging into \
|
|
||||||
Launchpad with Firefox") % ", ".join(try_globs)
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
if not check_configfiles():
|
if not check_configfiles():
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
try:
|
|
||||||
lp_cookie()
|
|
||||||
except RuntimeError, e:
|
|
||||||
print e
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
config = read_config()
|
config = read_config()
|
||||||
pack_list = read_list()
|
pack_list = read_list()
|
||||||
buglist = read_buglist(config["buglist-url"])
|
buglist = read_buglist(config["buglist-url"])
|
||||||
|
18
mk-sbuild-lv
18
mk-sbuild-lv
@ -1,7 +1,23 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
#
|
||||||
# Copyright 2006-2007 (C) Canonical Ltd.
|
# Copyright 2006-2007 (C) Canonical Ltd.
|
||||||
# Created by Kees Cook <kees@ubuntu.com>
|
# Created by Kees Cook <kees@ubuntu.com>
|
||||||
# License: GPLv2
|
#
|
||||||
|
# ##################################################################
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
# See file /usr/share/common-licenses/GPL for more details.
|
||||||
|
#
|
||||||
|
# ##################################################################
|
||||||
#
|
#
|
||||||
# This script creates LVM snapshot chroots via schroot and sbuild.
|
# This script creates LVM snapshot chroots via schroot and sbuild.
|
||||||
# Much love to "man sbuild-setup", https://wiki.ubuntu.com/PbuilderHowto,
|
# Much love to "man sbuild-setup", https://wiki.ubuntu.com/PbuilderHowto,
|
||||||
|
@ -4,7 +4,21 @@
|
|||||||
# Copyright (C) Jordan Mantha <mantha@ubuntu.com>
|
# Copyright (C) Jordan Mantha <mantha@ubuntu.com>
|
||||||
# Copyright (C) 2007-2008 Siegfried-A. Gevatter <rainct@ubuntu.com>
|
# Copyright (C) 2007-2008 Siegfried-A. Gevatter <rainct@ubuntu.com>
|
||||||
#
|
#
|
||||||
# License: GPLv2 or later
|
# ##################################################################
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
# See file /usr/share/common-licenses/GPL for more details.
|
||||||
|
#
|
||||||
|
# ##################################################################
|
||||||
#
|
#
|
||||||
# This script is a wrapper to be able to easily use pbuilder for
|
# This script is a wrapper to be able to easily use pbuilder for
|
||||||
# different distributions (eg, Gutsy, Hardy, Debian unstable, etc).
|
# different distributions (eg, Gutsy, Hardy, Debian unstable, etc).
|
||||||
|
@ -3,7 +3,21 @@
|
|||||||
# Copyright (C) Jamin W. Collins <jcollins@asgardsrealm.net>
|
# Copyright (C) Jamin W. Collins <jcollins@asgardsrealm.net>
|
||||||
# Copyright (C) Jordan Mantha <mantha@ubuntu.com>
|
# Copyright (C) Jordan Mantha <mantha@ubuntu.com>
|
||||||
#
|
#
|
||||||
# License: GPLv2 or later
|
# ##################################################################
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
# See file /usr/share/common-licenses/GPL for more details.
|
||||||
|
#
|
||||||
|
# ##################################################################
|
||||||
#
|
#
|
||||||
# This script is a wrapper to be able to easily use pbuilder for
|
# This script is a wrapper to be able to easily use pbuilder for
|
||||||
# different distributions (eg, Gutsy, Hardy, Debian unstable, etc).
|
# different distributions (eg, Gutsy, Hardy, Debian unstable, etc).
|
||||||
|
@ -5,7 +5,21 @@
|
|||||||
# With some changes by Iain Lane <iain@orangesquash.org.uk>
|
# With some changes by Iain Lane <iain@orangesquash.org.uk>
|
||||||
# Based upon pbuilder-dist-simple by Jamin Collins and Jordan Mantha.
|
# Based upon pbuilder-dist-simple by Jamin Collins and Jordan Mantha.
|
||||||
#
|
#
|
||||||
# License: GPLv2 or later
|
# ##################################################################
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
# See file /usr/share/common-licenses/GPL for more details.
|
||||||
|
#
|
||||||
|
# ##################################################################
|
||||||
#
|
#
|
||||||
# This script is a wrapper to be able to easily use pbuilder for
|
# This script is a wrapper to be able to easily use pbuilder for
|
||||||
# different distributions (eg, Gutsy, Hardy, Debian unstable, etc).
|
# different distributions (eg, Gutsy, Hardy, Debian unstable, etc).
|
||||||
|
@ -1,6 +1,22 @@
|
|||||||
#!/usr/bin/perl
|
#!/usr/bin/perl
|
||||||
|
#
|
||||||
# Copyright 2007-2008 Kees Cook <kees@ubuntu.com>
|
# Copyright 2007-2008 Kees Cook <kees@ubuntu.com>
|
||||||
# License GPLv3
|
#
|
||||||
|
# ##################################################################
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
# See file /usr/share/common-licenses/GPL for more details.
|
||||||
|
#
|
||||||
|
# ##################################################################
|
||||||
#
|
#
|
||||||
# This script attempts to find and download a specific version of a Debian
|
# This script attempts to find and download a specific version of a Debian
|
||||||
# package and its immediate parent to generate a debdiff.
|
# package and its immediate parent to generate a debdiff.
|
||||||
|
119
pull-lp-source
119
pull-lp-source
@ -1,11 +1,14 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
# pull-lp-source -- pull a source package from Launchpad
|
# pull-lp-source -- pull a source package from Launchpad
|
||||||
# Basic usage: pull-lp-source <source package> [<distro>]
|
# Basic usage: pull-lp-source <source package> [<release>]
|
||||||
#
|
#
|
||||||
# Copyright (C) 2008 Iain Lane <iain@orangesquash.org.uk>
|
# Copyright (C) 2008 Iain Lane <iain@orangesquash.org.uk>
|
||||||
#
|
#
|
||||||
# BackportFromLP class taken from prevu tool, which has
|
# BackportFromLP class taken from prevu tool, which is:
|
||||||
# copyright (C) 2006 John Dong <jdong@ubuntu.com>.
|
# Copyright (C) 2006 John Dong <jdong@ubuntu.com>
|
||||||
|
#
|
||||||
|
# ##################################################################
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or
|
# This program is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of the GNU General Public License
|
# modify it under the terms of the GNU General Public License
|
||||||
@ -17,71 +20,107 @@
|
|||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU General Public License for more details.
|
# GNU General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU General Public License
|
# See file /usr/share/common-licenses/GPL for more details.
|
||||||
# along with this program; if not, write to the Free Software
|
|
||||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
||||||
#
|
#
|
||||||
|
# ##################################################################
|
||||||
|
|
||||||
# TODO: Determine before going to LP whether a source package and distro exist or not.
|
|
||||||
# TODO: Determine current development distro programatically
|
|
||||||
|
|
||||||
import sys
|
|
||||||
import os
|
import os
|
||||||
|
import re
|
||||||
|
import subprocess
|
||||||
|
import sys
|
||||||
|
import urllib2
|
||||||
|
from optparse import OptionParser
|
||||||
|
|
||||||
class BackportFromLP:
|
class BackportFromLP:
|
||||||
|
|
||||||
def __getitem__(self, name):
|
def __getitem__(self, name):
|
||||||
return getattr(self, name)
|
return getattr(self, name)
|
||||||
|
|
||||||
def __init__(self, package, target_distro):
|
def __init__(self, package, target_release):
|
||||||
self.package = package
|
self.package = package
|
||||||
self.target_distro = target_distro
|
self.target_release = target_release
|
||||||
self.__prepare_sources()
|
self.__prepare_sources()
|
||||||
|
|
||||||
def __prepare_sources(self):
|
def __prepare_sources(self):
|
||||||
# Scrape the source package from Launchpad :)
|
# Scrape the source package from Launchpad :)
|
||||||
import re
|
contents = urllib2.urlopen('https://launchpad.net/ubuntu/%(target_release)s/+source/%(package)s' % self).read()
|
||||||
|
|
||||||
contents = os.popen('wget -q https://launchpad.net/ubuntu/%(target_distro)s/+source/%(package)s -O-' % self).read()
|
|
||||||
links = re.findall('a href=\"(.*\.dsc)\"', contents)
|
links = re.findall('a href=\"(.*\.dsc)\"', contents)
|
||||||
|
|
||||||
if len(links) == 1 and \
|
if len(links) == 1 and \
|
||||||
(os.system('dget -x http://launchpad.net%s' % links[0])) == 0:
|
subprocess.call(['dget', '-xu', 'http://launchpad.net%s' % links[0]]) == 0:
|
||||||
print '\nSuccess!'
|
print '\nSuccess!'
|
||||||
else:
|
else:
|
||||||
raise ValueError, '\nFailed to fetch and extract the source. ' +\
|
raise ValueError, '\nFailed to fetch and extract the source. ' +\
|
||||||
'Ensure that the package specified is a valid source ' +\
|
'Ensure that the package specified is a valid source ' +\
|
||||||
'package name and that Launchpad is not down.'
|
'package name and that Launchpad is not down.'
|
||||||
|
|
||||||
default_distro = 'intrepid'
|
default_release = 'intrepid'
|
||||||
|
|
||||||
def usage():
|
|
||||||
print 'Usage: %s <package> [distro]' % sys.argv[0]
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
usage = "Usage: %prog <package> [release]"
|
||||||
|
optParser = OptionParser(usage)
|
||||||
|
(options, args) = optParser.parse_args()
|
||||||
|
|
||||||
args = sys.argv[1:] or []
|
if not args:
|
||||||
|
print >> sys.stderr, "Need arguments."
|
||||||
if args == [] or args[0] in ('-h', '--help'):
|
optParser.print_help()
|
||||||
usage()
|
|
||||||
sys.exit(0)
|
|
||||||
|
|
||||||
if len(args) >= 1:
|
|
||||||
package = args[0]
|
|
||||||
|
|
||||||
if len(args) == 2:
|
|
||||||
distro = args[1]
|
|
||||||
elif len(args) == 1:
|
|
||||||
distro = os.getenv('DIST') or default_distro
|
|
||||||
else: # incorrect args
|
|
||||||
usage()
|
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
# Correct-ish args, can proceed
|
package = args[0]
|
||||||
|
|
||||||
|
if len(args) == 2: # Custom distribution specified.
|
||||||
|
release = args[1]
|
||||||
|
else:
|
||||||
|
release = os.getenv('DIST') or default_release
|
||||||
|
|
||||||
|
# Correct-ish args, can proceed.
|
||||||
|
# Check release by checking if Launchpad page exists
|
||||||
try:
|
try:
|
||||||
print 'Attempting to get %s from distro %s...' % \
|
urllib2.urlopen("https://launchpad.net/ubuntu/%s" % release)
|
||||||
(package, distro.capitalize())
|
except urllib2.HTTPError:
|
||||||
BackportFromLP(package, distro)
|
print >> sys.stderr, "The '%s' release does not appear to exist on " \
|
||||||
|
"Launchpad." % release
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
# Check package exists.
|
||||||
|
try:
|
||||||
|
|
||||||
|
sourcePage = urllib2.urlopen("https://launchpad.net/ubuntu/%s/+source/%s" % \
|
||||||
|
(release, package)).read()
|
||||||
|
m = re.search('"/ubuntu/%s/\+source/%s/(\d[^"]+)"' % (release, \
|
||||||
|
package.replace('+', '\+')), sourcePage)
|
||||||
|
|
||||||
|
if not m:
|
||||||
|
print >> sys.stderr, "The '%s' package does not appear to exist in " \
|
||||||
|
"the '%s' release." % (package, release)
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
except urllib2.HTTPError, e: # Raised on 404
|
||||||
|
|
||||||
|
if e.code == 404:
|
||||||
|
|
||||||
|
print >> sys.stderr, "The '%s' package does not appear to exist in " \
|
||||||
|
"the '%s' release." % (package, release)
|
||||||
|
|
||||||
|
else: # Other code, probably LP malfunction
|
||||||
|
|
||||||
|
print >> sys.stderr, "Error when checking Launchpad for package: %s " % e
|
||||||
|
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
except urllib2.URLError, e: # Other error (NXDOMAIN, ...)
|
||||||
|
|
||||||
|
(_, reason) = e.reason
|
||||||
|
|
||||||
|
print >> sys.stderr, "Error when checking Launchpad for package: %s " % reason
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
# All good - start downloading...
|
||||||
|
try:
|
||||||
|
print 'Attempting to get %s from release %s...' % \
|
||||||
|
(package, release.capitalize())
|
||||||
|
BackportFromLP(package, release)
|
||||||
except ValueError, e:
|
except ValueError, e:
|
||||||
print 'Error when downloading package %s from distro %s: %s' % \
|
print 'Error when downloading package %s from release %s: %s.' % \
|
||||||
(package, distro, e)
|
(package, release, e)
|
||||||
|
118
requestsync
118
requestsync
@ -8,20 +8,83 @@
|
|||||||
# Michael Bienia <geser@ubuntu.com> (python-launchpad-bugs support)
|
# Michael Bienia <geser@ubuntu.com> (python-launchpad-bugs support)
|
||||||
# Daniel Hahler <ubuntu@thequod.de>
|
# Daniel Hahler <ubuntu@thequod.de>
|
||||||
# Iain Lane <iain@orangesquash.org.uk>
|
# Iain Lane <iain@orangesquash.org.uk>
|
||||||
|
# Jonathan Patrick Davies <jpds@ubuntu.com>
|
||||||
#
|
#
|
||||||
# License: GPLv2, see /usr/share/common-licenses/GPL-2
|
# ##################################################################
|
||||||
|
#
|
||||||
|
# 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; version 2.
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
# See file /usr/share/common-licenses/GPL-2 for more details.
|
||||||
|
#
|
||||||
|
# ##################################################################
|
||||||
|
|
||||||
import os, sys, urllib, subprocess, getopt
|
import getopt
|
||||||
|
import os
|
||||||
|
import subprocess
|
||||||
|
import sys
|
||||||
|
import urllib
|
||||||
|
import urllib2
|
||||||
from debian_bundle.changelog import Version
|
from debian_bundle.changelog import Version
|
||||||
|
|
||||||
# Set this to the path of your Launchpad cookie file, when using
|
# Use functions from ubuntu-dev-tools to create Launchpad cookie file.
|
||||||
# python-launchpad-bugs support (--lp).
|
sys.path.append('/usr/share/ubuntu-dev-tools/')
|
||||||
# The following will be tried automatically, if unset (first match gets used):
|
import common
|
||||||
# 1. ~/.lpcookie.txt
|
|
||||||
# 2. ~/.mozilla/*/*/cookies.sqlite
|
|
||||||
# 3. ~/.mozilla/*/*/cookies.txt
|
|
||||||
launchpad_cookiefile = None
|
|
||||||
|
|
||||||
|
launchpad_cookiefile = common.prepareLaunchpadCookie()
|
||||||
|
|
||||||
|
def checkNeedsSponsorship(component):
|
||||||
|
"""
|
||||||
|
Check that the user has the appropriate permissions by checking what
|
||||||
|
Launchpad returns while authenticating with their cookie.
|
||||||
|
|
||||||
|
If they are an indirect or direct member of the ~ubuntu-dev team on
|
||||||
|
Launchpad - sponsorship is not required if the package is in the
|
||||||
|
universe / multiverse component.
|
||||||
|
|
||||||
|
If they are in the ~ubuntu-core-dev team, no sponsorship required.
|
||||||
|
|
||||||
|
The prepareLaunchpadCookie function above shall ensure that a cookie
|
||||||
|
file exists first.
|
||||||
|
"""
|
||||||
|
urlopener = common.setupLaunchpadUrlOpener(launchpad_cookiefile)
|
||||||
|
|
||||||
|
# Check where the package is and assign the appropriate variables.
|
||||||
|
if component in ['main', 'restricted']:
|
||||||
|
team = "ubuntu-core-dev"
|
||||||
|
sponsor = "ubuntu-main-sponsors"
|
||||||
|
else:
|
||||||
|
team = "ubuntu-dev"
|
||||||
|
sponsor = "ubuntu-universe-sponsors"
|
||||||
|
|
||||||
|
# Try and open up Launchpad.
|
||||||
|
try: teamLPPage = urlopener.open('https://launchpad.net/~%s' % team).read()
|
||||||
|
except urllib2.HTTPError:
|
||||||
|
print >> sys.stderr, "Unable to connect to Launchpad."
|
||||||
|
|
||||||
|
# Check if they are a member of the team.
|
||||||
|
if "You are an indirect member of this team:" in teamLPPage or \
|
||||||
|
"You are a member of this team." in teamLPPage:
|
||||||
|
return False # Sponsorship not required.
|
||||||
|
|
||||||
|
# Check if they are not.
|
||||||
|
if "You are not a member of this team" in teamLPPage:
|
||||||
|
print "You are not a member (direct or indirect) of the '%s' " \
|
||||||
|
"team on Launchpad." % team
|
||||||
|
print "Your sync request shall require an approval by a member of " \
|
||||||
|
"the '%s'\nteam, who shall be subscribed to this bug report." % sponsor
|
||||||
|
print "This must be done before it can be processed by a member of " \
|
||||||
|
"the Ubuntu Archive team."
|
||||||
|
print "Should the above be incorrect, please press Control-C now to " \
|
||||||
|
"stop this script now\nand check the cookie file at:", launchpad_cookiefile
|
||||||
|
raw_input_exit_on_ctrlc() # Abort if necessary.
|
||||||
|
return True # Sponsorship required.
|
||||||
|
|
||||||
def cur_version_component(sourcepkg, release):
|
def cur_version_component(sourcepkg, release):
|
||||||
'''Determine current package version in ubuntu.'''
|
'''Determine current package version in ubuntu.'''
|
||||||
@ -108,7 +171,7 @@ def raw_input_exit_on_ctrlc(*args, **kwargs):
|
|||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
def usage():
|
def usage():
|
||||||
print '''Usage: requestsync [-h|-n|-s|-k <keyid>|--lp] <source package> <target release> [basever]
|
print '''Usage: requestsync [-h|-n|-k <keyid>|--lp] <source package> <target release> [basever]
|
||||||
|
|
||||||
In some cases, the base version (fork point from Debian) cannot be determined
|
In some cases, the base version (fork point from Debian) cannot be determined
|
||||||
automatically, and you'll get a complete Debian changelog. Specify the correct
|
automatically, and you'll get a complete Debian changelog. Specify the correct
|
||||||
@ -117,7 +180,6 @@ base version of the package in Ubuntu.
|
|||||||
Options:
|
Options:
|
||||||
-h print this help
|
-h print this help
|
||||||
-n new source package (doesn't exist yet in Ubuntu)
|
-n new source package (doesn't exist yet in Ubuntu)
|
||||||
-s request sponsoring (through ubuntu-{main,universe}-sponsors)
|
|
||||||
-k <keyid> sign email with <keyid> (only used when submitting per email)
|
-k <keyid> sign email with <keyid> (only used when submitting per email)
|
||||||
--lp use python-launchpad-bugs instead of email for bug submitting
|
--lp use python-launchpad-bugs instead of email for bug submitting
|
||||||
'''
|
'''
|
||||||
@ -204,8 +266,12 @@ def mail_bug(source_package, subscribe, status, bugtitle, bugtext, keyid = None)
|
|||||||
try:
|
try:
|
||||||
s = smtplib.SMTP(mailserver, mailserver_port)
|
s = smtplib.SMTP(mailserver, mailserver_port)
|
||||||
except socket.error, s:
|
except socket.error, s:
|
||||||
print "ERROR: Could not connect to mailserver %s at port %s: %s (%i)" % \
|
print >> sys.stderr, "Could not connect to mailserver %s at port %s: %s (%i)" % \
|
||||||
(mailserver, mailserver_port, s[1], s[0])
|
(mailserver, mailserver_port, s[1], s[0])
|
||||||
|
print "The port %s may be firewalled. Please try using requestsync with" \
|
||||||
|
% mailserver_port
|
||||||
|
print "the '--lp' flag to file a sync request with the launchpadbugs " \
|
||||||
|
"module."
|
||||||
return False
|
return False
|
||||||
|
|
||||||
# authenticate to the server
|
# authenticate to the server
|
||||||
@ -234,7 +300,6 @@ def post_bug(source_package, subscribe, status, bugtitle, bugtext):
|
|||||||
Return True if successfully posted, otherwise False.'''
|
Return True if successfully posted, otherwise False.'''
|
||||||
|
|
||||||
import glob, os.path
|
import glob, os.path
|
||||||
global launchpad_cookiefile
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
import launchpadbugs.connector
|
import launchpadbugs.connector
|
||||||
@ -242,23 +307,7 @@ def post_bug(source_package, subscribe, status, bugtitle, bugtext):
|
|||||||
print >> sys.stderr, 'Importing launchpadbugs failed. Is python-launchpad-bugs installed?'
|
print >> sys.stderr, 'Importing launchpadbugs failed. Is python-launchpad-bugs installed?'
|
||||||
return False
|
return False
|
||||||
|
|
||||||
# Search cookiefile (for authentication to lp)
|
print "Using cookie file at", launchpad_cookiefile
|
||||||
if launchpad_cookiefile == None:
|
|
||||||
try_globs = ('~/.lpcookie.txt', '~/.mozilla/*/*/cookies.sqlite', '~/.mozilla/*/*/cookies.txt')
|
|
||||||
for try_glob in try_globs:
|
|
||||||
try:
|
|
||||||
cookiefile = glob.glob(os.path.expanduser(try_glob))[0]
|
|
||||||
except IndexError:
|
|
||||||
continue
|
|
||||||
# Found:
|
|
||||||
launchpad_cookiefile = cookiefile
|
|
||||||
print "Using cookie file at «%s».\n" % launchpad_cookiefile
|
|
||||||
break
|
|
||||||
|
|
||||||
if launchpad_cookiefile == None:
|
|
||||||
print >> sys.stderr, 'Could not find cookie file for Launchpad (looked in %s)' % ", ".join(try_globs)
|
|
||||||
print >> sys.stderr, 'You should be able to create a valid file by logging into Launchpad with Firefox'
|
|
||||||
return False
|
|
||||||
|
|
||||||
if source_package:
|
if source_package:
|
||||||
product = {'name': source_package, 'target': 'ubuntu'}
|
product = {'name': source_package, 'target': 'ubuntu'}
|
||||||
@ -310,7 +359,8 @@ def edit_report(subject, body, changes_required=False):
|
|||||||
program exits.
|
program exits.
|
||||||
Returns (new_subject, new_body).
|
Returns (new_subject, new_body).
|
||||||
"""
|
"""
|
||||||
import re, string
|
import re
|
||||||
|
import string
|
||||||
|
|
||||||
report = "Summary (one line):\n%s\n\nDescription:\n%s" % (subject, body)
|
report = "Summary (one line):\n%s\n\nDescription:\n%s" % (subject, body)
|
||||||
|
|
||||||
@ -361,13 +411,12 @@ if __name__ == '__main__':
|
|||||||
distro = 'unstable'
|
distro = 'unstable'
|
||||||
|
|
||||||
try:
|
try:
|
||||||
opts, args = getopt.gnu_getopt(sys.argv[1:], 'hnsd:k:', ('lp'))
|
opts, args = getopt.gnu_getopt(sys.argv[1:], 'hnd:k:', ('lp'))
|
||||||
except getopt.GetoptError:
|
except getopt.GetoptError:
|
||||||
usage()
|
usage()
|
||||||
for o, a in opts:
|
for o, a in opts:
|
||||||
if o == '-h': usage()
|
if o == '-h': usage()
|
||||||
if o == '-n': newsource = True
|
if o == '-n': newsource = True
|
||||||
if o == '-s': sponsorship = True
|
|
||||||
if o == '-k': keyid = a
|
if o == '-k': keyid = a
|
||||||
if o == '-d': distro = a
|
if o == '-d': distro = a
|
||||||
if o == '--lp': use_lp_bugs = True
|
if o == '--lp': use_lp_bugs = True
|
||||||
@ -378,6 +427,7 @@ if __name__ == '__main__':
|
|||||||
if not use_lp_bugs and not get_email_address():
|
if not use_lp_bugs and not get_email_address():
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
|
|
||||||
(srcpkg, release) = args[:2]
|
(srcpkg, release) = args[:2]
|
||||||
force_base_ver = None
|
force_base_ver = None
|
||||||
if len(args) == 3:
|
if len(args) == 3:
|
||||||
@ -389,6 +439,8 @@ if __name__ == '__main__':
|
|||||||
debiancomponent = debian_component(srcpkg, distro)
|
debiancomponent = debian_component(srcpkg, distro)
|
||||||
deb_version = cur_deb_version(srcpkg, distro)
|
deb_version = cur_deb_version(srcpkg, distro)
|
||||||
|
|
||||||
|
sponsorship = checkNeedsSponsorship(component)
|
||||||
|
|
||||||
if deb_version == cur_ver:
|
if deb_version == cur_ver:
|
||||||
print 'The versions in Debian and Ubuntu are the same already (%s). Aborting.' % (deb_version,)
|
print 'The versions in Debian and Ubuntu are the same already (%s). Aborting.' % (deb_version,)
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
@ -1,7 +1,23 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
#
|
||||||
# Copyright (C) 2007 Siegfried-A. Gevatter <rainct@ubuntu.com>
|
# Copyright (C) 2007 Siegfried-A. Gevatter <rainct@ubuntu.com>
|
||||||
# Based upon a short script by an unknown author
|
# Based upon a short script by an unknown author
|
||||||
# License: GPLv2+
|
#
|
||||||
|
# ##################################################################
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
# See file /usr/share/common-licenses/GPL for more details.
|
||||||
|
#
|
||||||
|
# ##################################################################
|
||||||
#
|
#
|
||||||
# This script is used to find the reverse build dependencies
|
# This script is used to find the reverse build dependencies
|
||||||
# that a package has.
|
# that a package has.
|
||||||
|
30
setup.py
30
setup.py
@ -1,4 +1,4 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/python
|
||||||
|
|
||||||
from distutils.core import setup
|
from distutils.core import setup
|
||||||
import glob
|
import glob
|
||||||
@ -16,24 +16,26 @@ if os.path.exists(changelog):
|
|||||||
setup(name='ubuntu-dev-tools',
|
setup(name='ubuntu-dev-tools',
|
||||||
version=version,
|
version=version,
|
||||||
scripts=['404main',
|
scripts=['404main',
|
||||||
|
'buildd',
|
||||||
'check-symbols',
|
'check-symbols',
|
||||||
'get-branches',
|
|
||||||
'pbuilder-dist',
|
|
||||||
'pbuilder-dist-simple',
|
|
||||||
'update-maintainer',
|
|
||||||
'dch-repeat',
|
'dch-repeat',
|
||||||
'mk-sbuild-lv',
|
'dgetlp',
|
||||||
'pull-debian-debdiff',
|
'get-branches',
|
||||||
'what-patch',
|
'get-build-deps',
|
||||||
'suspicious-source',
|
'grab-attachments',
|
||||||
'requestsync',
|
|
||||||
'hugdaylist',
|
'hugdaylist',
|
||||||
'massfile',
|
'massfile',
|
||||||
'submittodebian',
|
'mk-sbuild-lv',
|
||||||
'get-build-deps',
|
'pbuilder-dist',
|
||||||
'dgetlp',
|
'pbuilder-dist-simple',
|
||||||
|
'pull-debian-debdiff',
|
||||||
|
'pull-lp-source',
|
||||||
|
'requestsync',
|
||||||
'reverse-build-depends',
|
'reverse-build-depends',
|
||||||
'grab-attachments',
|
'submittodebian',
|
||||||
|
'suspicious-source',
|
||||||
|
'update-maintainer',
|
||||||
|
'what-patch',
|
||||||
],
|
],
|
||||||
packages=['ubuntutools'],
|
packages=['ubuntutools'],
|
||||||
)
|
)
|
||||||
|
@ -1,23 +1,25 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
#
|
#
|
||||||
# submittodebian - tool to submit patches to Debian's bts
|
# submittodebian - tool to submit patches to Debian's BTS
|
||||||
# Copyright (C) 2007 Canonical Ltd.
|
# Copyright (C) 2007 Canonical Ltd.
|
||||||
# Author: Soren Hansen <soren@ubuntu.com>
|
# Author: Soren Hansen <soren@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 2 of the License, or
|
# This program is free software; you can redistribute it and/or
|
||||||
# (at your option) any later version.
|
# 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,
|
# This program is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU General Public License for more details.
|
# GNU General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU General Public License along
|
# See file /usr/share/common-licenses/GPL for more details.
|
||||||
# with this program; if not, write to the Free Software Foundation, Inc.,
|
#
|
||||||
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
# ##################################################################
|
||||||
|
|
||||||
import re, os, sys
|
import re, os, sys
|
||||||
from tempfile import mkstemp
|
from tempfile import mkstemp
|
||||||
|
@ -1,7 +1,19 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
#
|
||||||
# Copyright 2007 (C) Siegfried-A. Gevatter <rainct@ubuntu.com>
|
# Copyright 2007 (C) Siegfried-A. Gevatter <rainct@ubuntu.com>
|
||||||
# Based upon a script by Martin Pitt <martin.pitt@ubuntu.com>
|
# Based upon a script by Martin Pitt <martin.pitt@ubuntu.com>
|
||||||
# License: GPLv3 or later
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
# See file /usr/share/common-licenses/GPL for more details.
|
||||||
#
|
#
|
||||||
# This script outputs a list of files which are not common source files. This
|
# This script outputs a list of files which are not common source files. This
|
||||||
# should be run in the root of a source tree to find files which might not be
|
# should be run in the root of a source tree to find files which might not be
|
||||||
|
@ -1,6 +1,21 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
#
|
||||||
# Copyright 2007 (C) Albin Tonnerre (Lutin) <lut1n.tne@gmail.com>
|
# Copyright 2007 (C) Albin Tonnerre (Lutin) <lut1n.tne@gmail.com>
|
||||||
# License: GPLv2
|
#
|
||||||
|
# ##################################################################
|
||||||
|
#
|
||||||
|
# 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; version 2.
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
# See file /usr/share/common-licenses/GPL-2 for more details.
|
||||||
|
#
|
||||||
|
# ##################################################################
|
||||||
#
|
#
|
||||||
# This script is used to update the Maintainer field of an Ubuntu package
|
# This script is used to update the Maintainer field of an Ubuntu package
|
||||||
# to match the DebianMaintainerField specification.
|
# to match the DebianMaintainerField specification.
|
||||||
|
23
what-patch
23
what-patch
@ -1,11 +1,28 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
#
|
||||||
# Copyright 2006-2008 (C) Kees Cook <kees@ubuntu.com>
|
# Copyright 2006-2008 (C) Kees Cook <kees@ubuntu.com>
|
||||||
# Modified by Siegfried-A. Gevatter <rainct@ubuntu.com>
|
# Modified by Siegfried-A. Gevatter <rainct@ubuntu.com>
|
||||||
# Modified by Daniel Hahler <ubuntu@thequod.de>
|
# Modified by Daniel Hahler <ubuntu@thequod.de>
|
||||||
# License: GPLv2
|
#
|
||||||
|
# ##################################################################
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
# See file /usr/share/common-licenses/GPL for more details.
|
||||||
|
#
|
||||||
|
# ##################################################################
|
||||||
|
#
|
||||||
|
# By default only the name of the patch system is printed. Verbose mode can be
|
||||||
|
# enabled with -v.
|
||||||
|
|
||||||
# Default operation reports only the patch system. Verbose mode can be
|
|
||||||
# enabled with -v
|
|
||||||
if [ "$1" = "-h" ] || [ "$1" = "--help" ]
|
if [ "$1" = "-h" ] || [ "$1" = "--help" ]
|
||||||
then
|
then
|
||||||
cat <<EOM
|
cat <<EOM
|
||||||
|
Loading…
x
Reference in New Issue
Block a user