summaryrefslogtreecommitdiffstats
path: root/mgagnome
diff options
context:
space:
mode:
authorOlav Vitters <ovitters@mageia.org>2012-10-16 07:57:27 +0000
committerOlav Vitters <ovitters@mageia.org>2012-10-16 07:57:27 +0000
commitc7079495157381feae3871ca88ef8fd4fb01b7bb (patch)
tree03098859c8758c93678e74e9925bf672f564058a /mgagnome
parent7c0b1c5d5f9a4ac27b2006dbb855b30db23a93d6 (diff)
downloadmgagnome-c7079495157381feae3871ca88ef8fd4fb01b7bb.tar
mgagnome-c7079495157381feae3871ca88ef8fd4fb01b7bb.tar.gz
mgagnome-c7079495157381feae3871ca88ef8fd4fb01b7bb.tar.bz2
mgagnome-c7079495157381feae3871ca88ef8fd4fb01b7bb.tar.xz
mgagnome-c7079495157381feae3871ca88ef8fd4fb01b7bb.zip
- revert changed if tarball cannot be downloaded
- better comparison vs upstream - allow multiple media
Diffstat (limited to 'mgagnome')
-rwxr-xr-xmgagnome42
1 files changed, 37 insertions, 5 deletions
diff --git a/mgagnome b/mgagnome
index 0fd0213..63c4b26 100755
--- a/mgagnome
+++ b/mgagnome
@@ -305,6 +305,10 @@ class SpecFile(object):
with open(self.path, "rw") as f:
data = f.read()
+ if data.count("%subrel") != 0:
+ print >>sys.stderr, "ERROR: %subrel found; don't know what to do!"
+ return False
+
if data.count("%mkrel") != 1:
print >>sys.stderr, "ERROR: Multiple %mkrel found; don't know what to do!"
return False
@@ -342,8 +346,11 @@ class SpecFile(object):
except subprocess.CalledProcessError, e:
# mgarepo sync returns 1 if the tarball cannot be downloaded
if e.returncode != 1:
+ subprocess.check_call(["svn", "revert", "-R", os.path.join(self.path, '..')])
return False
else:
+ # failed to download tarball
+ subprocess.check_call(["svn", "revert", "-R", os.path.join(self.path, '..')])
return False
@@ -568,7 +575,13 @@ class Downstream(object):
if module not in TARBALLS:
TARBALLS[module] = {}
- TARBALLS[module][srpm] = version
+
+ if srpm in TARBALLS[module]:
+ # srpm seen before, check if version is newer
+ if version_cmp(TARBALLS[module][srpm], version) == 1:
+ TARBALLS[module][srpm] = version
+ else:
+ TARBALLS[module][srpm] = version
if srpm not in FILES:
FILES[srpm] = set()
@@ -684,6 +697,7 @@ def cmd_check_latest(options, parser):
streams = join_streams(show_version=True)
for package, module, package_version, spec_version, downstream_files in streams:
+ upgrade=set()
sys.stdout.write(package)
sys.stdout.write("\t%s\t%s" % (spec_version, package_version))
@@ -694,11 +708,24 @@ def cmd_check_latest(options, parser):
latest_version = get_latest_version(versions)
safe_version = get_latest_version(versions, safe_max_version)
- if version_cmp(latest_version, spec_version) < 0: latest_version = 'N/A'
- if version_cmp(safe_version, spec_version) < 0: safe_version = 'N/A'
+ cmp_latest = version_cmp(latest_version, spec_version)
+ if cmp_latest < 0:
+ latest_version = 'N/A'
+ upgrade.add('l')
+ elif cmp_latest > 0:
+ upgrade.add('L')
+
+ cmp_safe = version_cmp(safe_version, spec_version)
+ if cmp_safe < 0:
+ safe_version = 'N/A'
+ upgrade.add('s')
+ elif cmp_safe > 0:
+ upgrade.add('S')
sys.stdout.write("\t%s" % latest_version)
sys.stdout.write("\t%s" % safe_version)
+ sys.stdout.write("\t%s" % "".join(sorted(upgrade)))
+
print
def cmd_patches(options, parser):
@@ -925,12 +952,14 @@ def main():
help="Package name reflects the upstream name")
subparser.add_argument("-s", "--submit", action="store_true", dest="submit",
help="Commit changes and submit")
+ subparser.add_argument( "--no-submit", action="store_false", dest="submit",
+ help="Do not commit changes and submit")
subparser.add_argument("-a", "--algorithm", choices=hashlib.algorithms, dest="algo",
help="Hash algorithm")
subparser.add_argument("--hash", dest="hexdigest",
help="Hexdigest of the hash")
subparser.set_defaults(
- func=cmd_package_new_version, submit=True, upstream=False, hexdigest=None, algo="sha256",
+ func=cmd_package_new_version, submit=argparse.SUPPRESS, upstream=False, hexdigest=None, algo="sha256",
force=False
)
@@ -954,9 +983,12 @@ def main():
if options.limit_upstream:
Upstream.limit = set(options.limit_upstream.read().strip("\n").splitlines())
+ if not hasattr(options, 'submit'):
+ options.submit = not options.distro
+
if options.distro:
Downstream.PKGROOT = os.path.join('~/pkgs', options.distro)
- Downstream.MEDIA = "Core Release %s Source" % options.distro
+ Downstream.MEDIA = "Core Release {0} Source,Core {0} Updates Source,Core {0} Updates Testing Source".format(options.distro)
Downstream.DISTRO = options.distro
try: