public inbox for cygwin-apps-cvs@sourceware.org
help / color / mirror / Atom feed
* [calm - Cygwin server-side packaging maintenance script] branch master, updated. 20210626-31-gbf4b922
@ 2022-02-28 16:17 Jon TURNEY
  0 siblings, 0 replies; only message in thread
From: Jon TURNEY @ 2022-02-28 16:17 UTC (permalink / raw)
  To: cygwin-apps-cvs




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

commit bf4b922115443862e35af20790ba5322f1c69daa
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date:   Sat Feb 26 12:51:33 2022 +0000

    Move regex for detecting a soversion package to a single place
    
    Move the regex for detecting a soversion package to a single place, and
    adjust it slightly so it doesn't give a false positive on
    'libfooN-devel', of which there are some instances.

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

commit 6ca03e06f2812fc24c0581ad1f8f651a4ab3be29
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date:   Wed Feb 23 16:01:05 2022 +0000

    Remove a long-unneeded irregularity in paths used on a test system

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

commit 49600dd0855006dfce0f0c39bbd30700d4923d96
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date:   Wed Feb 23 15:52:22 2022 +0000

    Apply relaxed retention to all debuginfo packages

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

commit 81a9a8ba42c499df5824aaad8faa590c1145f5c2
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date:   Wed Feb 23 15:51:23 2022 +0000

    By default, only produce reports when daemonized


Diff:
---
 calm/calm.py             |  6 +++++-
 calm/common_constants.py |  7 ++++++-
 calm/package.py          | 12 ++----------
 calm/reports.py          |  3 ++-
 4 files changed, 15 insertions(+), 13 deletions(-)

diff --git a/calm/calm.py b/calm/calm.py
index 5d106e0..22eddaa 100755
--- a/calm/calm.py
+++ b/calm/calm.py
@@ -486,7 +486,7 @@ def do_output(args, state):
             pass
 
     # write reports
-    if update_json or args.force:
+    if (update_json or args.force) and args.reports:
         repology.annotate_packages(args, state.packages)
         reports.do_reports(args, state.packages)
 
@@ -684,6 +684,7 @@ def main():
     parser.add_argument('--setupdir', action='store', metavar='DIR', help="setup executable directory (default: " + setupdir_default + ")", default=setupdir_default)
     parser.add_argument('--no-stale', action='store_false', dest='stale', help="don't vault stale packages")
     parser.set_defaults(stale=True)
+    parser.add_argument('--reports', action='store_true', dest='reports', help="don't produce reports", default=None)
     parser.add_argument('-n', '--dry-run', action='store_true', dest='dryrun', help="don't do anything")
     parser.add_argument('--vault', action='store', metavar='DIR', help="vault directory (default: " + vault_default + ")", default=vault_default, dest='vault')
     parser.add_argument('-v', '--verbose', action='count', dest='verbose', help='verbose output')
@@ -692,6 +693,9 @@ def main():
     if args.email:
         args.email = args.email.split(',')
 
+    if args.reports is None:
+        args.reports = args.daemon
+
     state = CalmState()
 
     host = os.uname()[1]
diff --git a/calm/common_constants.py b/calm/common_constants.py
index 05473f5..bc99805 100644
--- a/calm/common_constants.py
+++ b/calm/common_constants.py
@@ -77,7 +77,6 @@ DEFAULT_KEEP_DAYS = 0
 # different values to be used when we are not running on sourceware.org, but my
 # test system...
 if os.uname()[1] == 'tambora':
-    FTP = '/var/ftp/pub/cygwin-test'
     EMAILS = 'jon.turney@dronecode.org.uk'
     ALWAYS_BCC = ''
     MAILHOST = 'allegra'
@@ -85,3 +84,9 @@ if os.uname()[1] == 'tambora':
 # package compressions
 PACKAGE_COMPRESSIONS = ['bz2', 'gz', 'lzma', 'xz', 'zst']
 PACKAGE_COMPRESSIONS_RE = r'\.(' + '|'.join(PACKAGE_COMPRESSIONS) + r')'
+
+# ideally we'd identify soversion packages via some explicit mark, or by
+# inspecting the contents (but that's expensive to do). for the moment, we
+# recognize soversion packages by the simple heuristic of looking at the package
+# name
+SOVERSION_PACKAGE_RE = r'^lib.*[\d_.]*$'
diff --git a/calm/package.py b/calm/package.py
index 6d9901b..8c6a3f1 100755
--- a/calm/package.py
+++ b/calm/package.py
@@ -820,7 +820,7 @@ def validate_packages(args, packages, valid_requires_extra=None):
 
             # ignore runtime library packages, as we may keep old versions of
             # those
-            if re.match(r'^lib.*\d', install_p):
+            if re.match(common_constants.SOVERSION_PACKAGE_RE, install_p):
                 continue
 
             # ignore Python module packages, as we may keep old versions of
@@ -1345,15 +1345,7 @@ def stale_packages(packages):
         # time?), or obsoleted packages(?)
         mark = Freshness.fresh
         if pn.endswith('-debuginfo'):
-            # XXX: initially only apply to sourceless debuginfo packages (which
-            # must also be empty to be permitted to sourceless)
-            for v in po.versions():
-                if po.tar(v).sourceless:
-                    mark = Freshness.conditional
-                    break
-            # XXX: initially only apply to obsolete packages
-            if po.obsolete:
-                mark = Freshness.conditional
+            mark = Freshness.conditional
 
         # mark any versions explicitly listed in the keep: override hint (unconditionally)
         for v in po.override_hints.get('keep', '').split():
diff --git a/calm/reports.py b/calm/reports.py
index 834371c..270e872 100644
--- a/calm/reports.py
+++ b/calm/reports.py
@@ -27,6 +27,7 @@ import re
 import textwrap
 import types
 
+from . import common_constants
 from . import maintainers
 from . import package
 from . import pkg2html
@@ -141,7 +142,7 @@ def deprecated(args, packages, reportsdir):
         if po.kind != package.Kind.binary:
             continue
 
-        if not re.match(r'^lib.*\d', p):
+        if not re.match(common_constants.SOVERSION_PACKAGE_RE, p):
             continue
 
         bv = po.best_version



^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-02-28 16:17 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-28 16:17 [calm - Cygwin server-side packaging maintenance script] branch master, updated. 20210626-31-gbf4b922 Jon TURNEY

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).