summaryrefslogtreecommitdiffstats
path: root/mgagnome
diff options
context:
space:
mode:
authorOlav Vitters <ovitters@mageia.org>2012-03-18 11:08:07 +0000
committerOlav Vitters <ovitters@mageia.org>2012-03-18 11:08:07 +0000
commit08df73c94d2b345dd4a5a91780d65579de7fc6de (patch)
treec293521da67e64ca4f641ffcd102b017541d5386 /mgagnome
parentd3069a4a420b7c8a2cf121d50e9794ad998e2b77 (diff)
downloadmgagnome-08df73c94d2b345dd4a5a91780d65579de7fc6de.tar
mgagnome-08df73c94d2b345dd4a5a91780d65579de7fc6de.tar.gz
mgagnome-08df73c94d2b345dd4a5a91780d65579de7fc6de.tar.bz2
mgagnome-08df73c94d2b345dd4a5a91780d65579de7fc6de.tar.xz
mgagnome-08df73c94d2b345dd4a5a91780d65579de7fc6de.zip
add force option to obviously wrong version increases and try to download tarball multiple times before giving up
Diffstat (limited to 'mgagnome')
-rwxr-xr-xmgagnome34
1 files changed, 28 insertions, 6 deletions
diff --git a/mgagnome b/mgagnome
index 318087b..aafd5ca 100755
--- a/mgagnome
+++ b/mgagnome
@@ -50,6 +50,8 @@ MEDIA="Core Release Source"
URL="http://download.gnome.org/sources/"
PKGROOT='~/pkgs'
SLEEP_INITIAL=300
+SLEEP_REPEAT=30
+SLEEP_TIMES=20
re_majmin = re.compile(r'^([0-9]+\.[0-9]+).*')
re_version = re.compile(r'([-.]|\d+|[^-.\d]+)')
@@ -257,7 +259,7 @@ class SpecFile(object):
else spec.sources()
return dict((os.path.basename(name), name) for name, no, flags in srclist)
- def update(self, version):
+ def update(self, version, force=False):
"""Update specfile (increase version)"""
cur_version = self.version
@@ -269,7 +271,7 @@ class SpecFile(object):
if judgement < 5:
print "WARNING: %s!" % (msg)
- return False
+ if not force: return False
# XXX - os.path.join is hackish
if subprocess.check_output(["svn", "diff", os.path.join(self.path, '..')]) != '':
@@ -302,9 +304,26 @@ class SpecFile(object):
print "ERROR: Increased version to %s, but RPM doesn't agree!?!" % version
return False
+
+ # Try to download the new tarball various times and wait between attempts
+ tries = 0
+ while tries < SLEEP_TIMES:
+ tries += 1
+ try:
+ # Download new tarball
+ subprocess.check_call(['mgarepo', 'sync', '-d'], cwd=self.cwd)
+ break
+ except subprocess.CalledProcessError, e:
+ # mgarepo sync returns 1 if the tarball cannot be downloaded
+ if e.returncode != 1:
+ return False
+
+ if tries == SLEEP_TIMES:
+ return False
+
+ time.sleep(SLEEP_REPEAT)
+
try:
- # Download new tarball
- subprocess.check_call(['mgarepo', 'sync', '-d'], cwd=self.cwd)
# Check patches still apply
subprocess.check_call(['bm', '-p', '--nodeps'], cwd=self.cwd)
except subprocess.CalledProcessError:
@@ -600,7 +619,7 @@ def cmd_package_new_version(options, parser):
# SpecFile class handles the actual version+release change
s = SpecFile(os.path.join(cwd, "SPECS", "%s.spec" % package))
print "%s => %s" % (s.version, options.version)
- if not s.update(options.version):
+ if not s.update(options.version, force=options.force):
sys.exit(1)
# Check hash, if given
@@ -734,6 +753,8 @@ def main():
subparser = subparsers.add_parser('increase', help='Increase version number')
subparser.add_argument("package", help="Package name")
subparser.add_argument("version", help="Version number")
+ subparser.add_argument("-f", "--force", action="store_true", dest="force",
+ help="Override warnings, just do it")
subparser.add_argument("-u", "--upstream", action="store_true", dest="upstream",
help="Package name reflects the upstream name")
subparser.add_argument("-s", "--submit", action="store_true", dest="submit",
@@ -743,7 +764,8 @@ def main():
subparser.add_argument("--hash", dest="hexdigest",
help="Hexdigest of the hash")
subparser.set_defaults(
- func=cmd_package_new_version, submit=False, upstream=False, hexdigest=None, algo="sha256"
+ func=cmd_package_new_version, submit=False, upstream=False, hexdigest=None, algo="sha256",
+ force=False
)
subparser = subparsers.add_parser('gnome-release-email', help='Submit packages based on GNOME ftp-release-list email')