[calm - Cygwin server-side packaging maintenance script] branch master, updated. 20200401-27-gc9b5ce5

Jon TURNEY via Cygwin-apps-cvs <[email protected]>
Newsgroups gmane.os.cygwin.cvs.apps
Message-ID <[email protected]>


https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/calm.git;h=c9b5ce5b9352bd575200a9a675fca61c1b6bf429

commit c9b5ce5b9352bd575200a9a675fca61c1b6bf429
Author: Jon Turney <[email protected]>
Date:   Mon May 25 16:28:59 2020 +0100

    Consider versions overriden by version: when checking if a hint is stale
    
    When uploading a replacement hint with a version: override, the overriden
    version doesn't exist anymore, so the hint will be considered stale and
    removed.
    
    This causes the upload to fail as movelist validation notices that the
    hint is both uploaded and automatically vaulted.


Diff:
---
 calm/package.py | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/calm/package.py b/calm/package.py
index 487c3ed..66d03df 100755
--- a/calm/package.py
+++ b/calm/package.py
@@ -394,6 +394,8 @@ def read_one_package(packages, p, relpath, dirpath, files, remove, kind):
         # apply a version override
         if 'version' in pvr_hint:
             ovr = pvr_hint['version']
+            # also record the version before the override
+            pvr_hint['original-version'] = vr
         else:
             ovr = vr
 
@@ -1411,8 +1413,9 @@ def stale_packages(packages):
 
         for v in po.hints:
             # if there's a pvr.hint without a fresh source or install of the
-            # same version, move it as well
-            if all_stale.get(v, True):
+            # same version (including version: overrides), move it as well
+            ov = po.hints[v].hints.get('original-version', v)
+            if all_stale.get(v, True) and all_stale.get(ov, True):
                 stale.add(po.hints[v].path, po.hints[v].fn)
                 logging.debug("package '%s' version '%s' hint is stale" % (pn, v))
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.