mirror of
https://git.launchpad.net/ubuntu-dev-tools
synced 2025-05-15 10:51:28 +00:00
backportpackage: Avoid uploading orig tarballs if they are already present
in the destination PPA (LP: #691897)
This commit is contained in:
parent
343ac49b39
commit
314ed77d77
@ -18,6 +18,7 @@
|
|||||||
#
|
#
|
||||||
# ##################################################################
|
# ##################################################################
|
||||||
|
|
||||||
|
import glob
|
||||||
import optparse
|
import optparse
|
||||||
import os
|
import os
|
||||||
import shutil
|
import shutil
|
||||||
@ -25,8 +26,8 @@ import sys
|
|||||||
import tempfile
|
import tempfile
|
||||||
|
|
||||||
import lsb_release
|
import lsb_release
|
||||||
|
|
||||||
from devscripts.logger import Logger
|
from devscripts.logger import Logger
|
||||||
|
from httplib2 import Http, HttpLib2Error
|
||||||
|
|
||||||
from ubuntutools.archive import (SourcePackage, DebianSourcePackage,
|
from ubuntutools.archive import (SourcePackage, DebianSourcePackage,
|
||||||
UbuntuSourcePackage, DownloadError)
|
UbuntuSourcePackage, DownloadError)
|
||||||
@ -232,6 +233,31 @@ def do_upload(workdir, package, bp_version, changes, upload, prompt):
|
|||||||
|
|
||||||
check_call(['dput', upload, changes], cwd=workdir)
|
check_call(['dput', upload, changes], cwd=workdir)
|
||||||
|
|
||||||
|
def orig_needed(upload, workdir, pkg):
|
||||||
|
'''Avoid a -sa if possible'''
|
||||||
|
if not upload or not upload.startswith('ppa:'):
|
||||||
|
return True
|
||||||
|
ppa = upload.split(':', 1)[1]
|
||||||
|
user, ppa = ppa.split('/', 1)
|
||||||
|
|
||||||
|
version = pkg.version.full_version
|
||||||
|
if pkg.version.epoch:
|
||||||
|
version = version.split(pkg.version.epoch, 1)[1]
|
||||||
|
|
||||||
|
h = Http()
|
||||||
|
for filename in glob.glob(os.path.join(workdir,
|
||||||
|
'%s_%s.orig*' % (pkg.source, version))):
|
||||||
|
url = ('https://launchpad.net/~%s/+archive/%s/+files/%s'
|
||||||
|
% (user, ppa, filename))
|
||||||
|
try:
|
||||||
|
headers, body = h.request(url, 'HEAD')
|
||||||
|
if headers.status != 200:
|
||||||
|
return True
|
||||||
|
except HttpLib2Error, e:
|
||||||
|
Logger.info(e)
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
def do_backport(workdir, pkg, suffix, release, release_pocket, build, builder,
|
def do_backport(workdir, pkg, suffix, release, release_pocket, build, builder,
|
||||||
update, upload, prompt):
|
update, upload, prompt):
|
||||||
dirname = '%s-%s' % (pkg.source, release)
|
dirname = '%s-%s' % (pkg.source, release)
|
||||||
@ -257,7 +283,13 @@ def do_backport(workdir, pkg, suffix, release, release_pocket, build, builder,
|
|||||||
'--distribution', bp_dist,
|
'--distribution', bp_dist,
|
||||||
'No-change backport to %s' % release],
|
'No-change backport to %s' % release],
|
||||||
cwd=srcdir)
|
cwd=srcdir)
|
||||||
check_call(['debuild', '--no-lintian', '-S', '-nc', '-sa'], cwd=srcdir)
|
|
||||||
|
cmd = ['debuild', '--no-lintian', '-S', '-nc']
|
||||||
|
if orig_needed(upload, workdir, pkg):
|
||||||
|
cmd.append('-sa')
|
||||||
|
else:
|
||||||
|
cmd.append('-sd')
|
||||||
|
check_call(cmd, cwd=srcdir)
|
||||||
|
|
||||||
fn_base = pkg.source + '_' + bp_version.split(':', 1)[-1]
|
fn_base = pkg.source + '_' + bp_version.split(':', 1)[-1]
|
||||||
|
|
||||||
|
2
debian/changelog
vendored
2
debian/changelog
vendored
@ -14,6 +14,8 @@ ubuntu-dev-tools (0.142) UNRELEASED; urgency=low
|
|||||||
reverse-depends, submittodebian, syncpackage:
|
reverse-depends, submittodebian, syncpackage:
|
||||||
Handle outdated distro-info data. Fall back to sane defaults where
|
Handle outdated distro-info data. Fall back to sane defaults where
|
||||||
possible.
|
possible.
|
||||||
|
* backportpackage: Avoid uploading orig tarballs if they are already present
|
||||||
|
in the destination PPA (LP: #691897)
|
||||||
|
|
||||||
-- Stefano Rivera <stefanor@debian.org> Wed, 25 Apr 2012 17:38:58 +0200
|
-- Stefano Rivera <stefanor@debian.org> Wed, 25 Apr 2012 17:38:58 +0200
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user