From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2201) id BF754384607B; Mon, 17 May 2021 14:33:50 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org BF754384607B To: cygwin-apps-cvs@sourceware.org Subject: [calm - Cygwin server-side packaging maintenance script] branch master, updated. 20210408-14-gfd03d0e X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: cbefca991dc088e2a53022a2aa2f4d92872f9db9 X-Git-Newrev: fd03d0e762498b21ed7ac53b09feae2372faadb0 Message-Id: <20210517143350.BF754384607B@sourceware.org> Date: Mon, 17 May 2021 14:33:50 +0000 (GMT) From: Jon TURNEY X-BeenThere: cygwin-apps-cvs@cygwin.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Cygwin-apps git logs List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2021 14:33:50 -0000 https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/calm.git;h=fd03d0e762498b21ed7ac53b09feae2372faadb0 commit fd03d0e762498b21ed7ac53b09feae2372faadb0 Author: Jon Turney Date: Mon May 17 14:57:22 2021 +0100 Fix a crash when all versions of a package are getting removed > Traceback (most recent call last): > File "/sourceware1/cygwin-staging/calm/calm/calm.py", line 578, in do_daemon > state.packages = process_uploads(args, state) > File "/sourceware1/cygwin-staging/calm/calm/calm.py", line 190, in process_uploads > if not package.validate_packages(args, merged_packages[arch]): > File "/sourceware1/cygwin-staging/calm/calm/package.py", line 844, in validate_packages > if any(['_obsolete' in packages[install_p].version_hints[vr].get('category', '') for vr in packages[install_p].version_hints]): > KeyError: 'amd' Diff: --- calm/package.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/calm/package.py b/calm/package.py index 9c47f47..1e5b0f1 100755 --- a/calm/package.py +++ b/calm/package.py @@ -840,6 +840,10 @@ def validate_packages(args, packages): versions = defaultdict(list) for install_p in packages[source_p].is_used_by: + # ignore package which are getting removed + if install_p not in packages: + continue + # ignore obsolete packages if any(['_obsolete' in packages[install_p].version_hints[vr].get('category', '') for vr in packages[install_p].version_hints]): continue