From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2201) id 81FCB3858D28; Fri, 6 Jan 2023 13:03:26 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 81FCB3858D28 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1673010206; bh=KvslkVhLTNn3pCIe1TBp/UwT9EzGKc3QWrvyi0P4hb8=; h=To:Subject:Date:From:From; b=k7IviLt5vRYXqSQYTQjKkTWJ5r9oX/9NRR6ybCVKxf56X6fBgwrUn92OUmVSuyF3C EW4VGZh+cYYX+aqIkMjbkk3/FK7CGRltJThDEh55ni8jphDpWX1KyP3TLZmN2FI5ys SfadHQiODaEOfGfsbHOIcddvmtPk9WM26QI344BM= To: cygwin-apps-cvs@sourceware.org Subject: [calm - Cygwin server-side packaging maintenance script] branch master, updated. 20221205-8-gaec1dcf X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: a7c7e071b30ea9172e3bff9d8cd33fa62900f0ff X-Git-Newrev: aec1dcf7af8df98df4c7ded84fd3a7a7750f9efd Message-Id: <20230106130326.81FCB3858D28@sourceware.org> Date: Fri, 6 Jan 2023 13:03:26 +0000 (GMT) From: Jon Turney List-Id: https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/calm.git;h=aec1dcf7af8df98df4c7ded84fd3a7a7750f9efd commit aec1dcf7af8df98df4c7ded84fd3a7a7750f9efd Author: Jon Turney Date: Sun Jul 10 15:54:47 2022 +0100 Allow package version to be marked as weakly retained Allow a package version to be explicitly marked as weakly retained in override.hint. Ideally, we'd like something that let's us make a transaction that removes a given source package and all install packages generated from it, but we're not there yet... Diff: --- calm/hint.py | 1 + calm/package.py | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/calm/hint.py b/calm/hint.py index ddfcf74..6034c1d 100755 --- a/calm/hint.py +++ b/calm/hint.py @@ -93,6 +93,7 @@ hintkeys[override] = { 'keep-superseded-test': 'noval', 'disable-check': 'val', 'replace-versions': 'val', + 'noretain': 'val', } # valid categories diff --git a/calm/package.py b/calm/package.py index d3b5ab0..4538b8d 100755 --- a/calm/package.py +++ b/calm/package.py @@ -1529,6 +1529,16 @@ def stale_packages(packages): mark = dep_so_age_mark + elif 'noretain' in po.override_hints: + def noretain_hint_mark(v): + noretain_versions = po.override_hints.get('noretain', '').split() + if (v in noretain_versions) or ('all' in noretain_versions): + return Freshness.conditional + else: + return Freshness.fresh + + mark = noretain_hint_mark + # mark any versions explicitly listed in the keep: override hint (unconditionally) for v in po.override_hints.get('keep', '').split(): if v in po.versions():