Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/cygwin-apps/calm.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJon Turney <jon.turney@dronecode.org.uk>2016-07-29 19:46:21 +0300
committerJon Turney <jon.turney@dronecode.org.uk>2016-08-30 14:22:32 +0300
commit45ccc3afdc8cf4bb5fdd441f8663777fce1acc81 (patch)
tree6c1c0b96c04ecfa9f243190b97167df0a4fa154f
parentd82a4132bdb25acb86b4417e68891f693f402593 (diff)
Handle the case where there is no current version
Use the information from the 'best' version (Previously we would have been using the same information from setup.hint for all versions, so the precise version chosen perhaps doesn't make a big difference)
-rwxr-xr-xcalm/package.py24
-rwxr-xr-xcalm/pkg2html.py8
2 files changed, 19 insertions, 13 deletions
diff --git a/calm/package.py b/calm/package.py
index b0936bd..6dbceb4 100755
--- a/calm/package.py
+++ b/calm/package.py
@@ -483,6 +483,13 @@ def validate_packages(args, packages):
if l in packages[p].override_hints:
packages[p].stability[l] = packages[p].override_hints[l]
+ # identify a 'best' version to take certain information from: this is
+ # the curr version, if we have one, otherwise, the highest version.
+ if 'curr' in packages[p].stability:
+ packages[p].best_version = packages[p].stability['curr']
+ else:
+ packages[p].best_version = sorted(packages[p].vermap.keys(), key=lambda v: SetupVersion(v), reverse=True)[0]
+
# the package must have some versions
if not packages[p].stability:
logging.error("package '%s' doesn't have any versions" % (p))
@@ -572,8 +579,7 @@ def validate_packages(args, packages):
if re.match(r'^lib.*\d', install_p):
continue
- if 'curr' in packages[install_p].stability:
- versions[packages[install_p].stability['curr']].append(install_p)
+ versions[packages[install_p].best_version].append(install_p)
if len(versions) > 1:
out = []
@@ -657,15 +663,15 @@ def write_setup_ini(args, packages, arch):
# write package data
print("\n@ %s" % p, file=f)
- curr = packages[p].stability['curr']
- print("sdesc: %s" % packages[p].version_hints[curr]['sdesc'], file=f)
+ bv = packages[p].best_version
+ print("sdesc: %s" % packages[p].version_hints[bv]['sdesc'], file=f)
- if 'ldesc' in packages[p].version_hints[curr]:
- print("ldesc: %s" % packages[p].version_hints[curr]['ldesc'], file=f)
+ if 'ldesc' in packages[p].version_hints[bv]:
+ print("ldesc: %s" % packages[p].version_hints[bv]['ldesc'], file=f)
# for historical reasons, category names must start with a capital
# letter
- category = ' '.join(map(upper_first_character, packages[p].version_hints[curr]['category'].split()))
+ category = ' '.join(map(upper_first_character, packages[p].version_hints[bv]['category'].split()))
print("category: %s" % category, file=f)
# compute the union of requires for all versions
@@ -702,8 +708,8 @@ def write_setup_ini(args, packages, arch):
else:
logging.warning("package '%s' version '%s' has no source in external-source '%s'" % (p, version, s))
- if 'message' in packages[p].version_hints[curr]:
- print("message: %s" % packages[p].version_hints[curr]['message'], file=f)
+ if 'message' in packages[p].version_hints[bv]:
+ print("message: %s" % packages[p].version_hints[bv]['message'], file=f)
# helper function to output details for a particular tar file
diff --git a/calm/pkg2html.py b/calm/pkg2html.py
index 09dc396..f2e2cc6 100755
--- a/calm/pkg2html.py
+++ b/calm/pkg2html.py
@@ -134,8 +134,8 @@ def update_package_listings(args, packages, arch):
if not args.dryrun:
with open(html, 'w') as f:
- curr = packages[p].stability['curr']
- header = p + ": " + packages[p].version_hints[curr]['sdesc'].replace('"', '')
+ bv = packages[p].best_version
+ header = p + ": " + packages[p].version_hints[bv]['sdesc'].replace('"', '')
if fver.endswith('-src'):
header = header + " (source code)"
else:
@@ -206,8 +206,8 @@ def update_package_listings(args, packages, arch):
if packages[p].skip:
continue
- curr = packages[p].stability['curr']
- header = packages[p].version_hints[curr]['sdesc'].replace('"', '')
+ bv = packages[p].best_version
+ header = packages[p].version_hints[bv]['sdesc'].replace('"', '')
print('<tr><td><a href="' + arch + '/' + p + '">' + p + '</a></td><td>' + header + '</td></tr>', file=index)