public inbox for cygwin-apps-cvs@sourceware.org
help / color / mirror / Atom feed
* [calm - Cygwin server-side packaging maintenance script] branch master, updated. 20230209-24-g1b1dcdc
@ 2023-04-28 18:46 Jon Turney
  0 siblings, 0 replies; only message in thread
From: Jon Turney @ 2023-04-28 18:46 UTC (permalink / raw)
  To: cygwin-apps-cvs




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

commit 1b1dcdc3905defa775445f53d906c0ff31da2078
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date:   Thu Apr 27 20:11:52 2023 +0100

    Add a ruby rebuilds report
    
    Generalize the perl rebuild report logic to work for any version provide:

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

commit dac66d35228054ed93df79c8e97d17620eb3b355
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date:   Mon Apr 24 14:37:09 2023 +0100

    Add a tool for fixing requires by linkage

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

commit 2e43c60ad1c72bfac6daea9653a6174e3c1b5925
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date:   Sun Apr 23 15:06:59 2023 +0100

    Enhance fix-requires-by-path to match paths against a regex

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

commit 5caba5cdb6d9f2c17c552ea9e711dbda6ebe0779
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date:   Sun Apr 23 14:01:56 2023 +0100

    Add some historic ruby provides, prior to expiring them


Diff:
---
 calm/past_mistakes.py |  1 +
 calm/reports.py       | 31 +++++++++++++++++--------------
 2 files changed, 18 insertions(+), 14 deletions(-)

diff --git a/calm/past_mistakes.py b/calm/past_mistakes.py
index 17c23fd..e1b90e1 100644
--- a/calm/past_mistakes.py
+++ b/calm/past_mistakes.py
@@ -162,6 +162,7 @@ nonexistent_provides = [
     'python3-dbus-debuginfo',
     'tl_2023',
     'tl_basic_2023',
+    'ruby_23',
     'ruby_22',
     'ruby_20',
 ]
diff --git a/calm/reports.py b/calm/reports.py
index 20a167c..f5405ae 100644
--- a/calm/reports.py
+++ b/calm/reports.py
@@ -188,20 +188,22 @@ def deprecated(args, packages, reportsdir):
         template('Deprecated shared library packages', body.getvalue(), f)
 
 
-# produce a report of packages which need rebuilding for latest perl major version
+# produce a report of packages which need rebuilding for the latest major
+# version version provides
 #
-def perlrebuild(args, packages, reportsdir):
+def provides_rebuild(args, packages, reportfile, provide_package):
     pr_list = []
 
     arch = 'x86_64'
     # XXX: look into how we can change this, after x86 is dropped
 
-    perl_package = packages[arch].get('perl_base', None)
-    perl_provide = None
+    pp_package = packages[arch].get(provide_package, None)
+    pp_provide = None
 
-    if perl_package:
-        perl_bv = perl_package.best_version
-        perl_provide = perl_package.version_hints[perl_bv]['provides']
+    if pp_package:
+        pp_bv = pp_package.best_version
+        pp_provide = pp_package.version_hints[pp_bv]['provides']
+        pp_provide_base = re.sub(r'\d+$', '', pp_provide)
 
     for p in packages[arch]:
         po = packages[arch][p]
@@ -211,13 +213,13 @@ def perlrebuild(args, packages, reportsdir):
         depends = [re.sub(r'(.*) +\(.*\)', r'\1', r) for r in depends]
 
         for d in depends:
-            if not re.match(r'perl\d+_\d+', d):
+            if not d.startswith(pp_provide_base):
                 continue
 
-            if d == perl_provide:
+            if d == pp_provide:
                 continue
 
-            # requires an old perl provide
+            # requires an old provide
             pr = types.SimpleNamespace()
             pr.pn = p
             pr.po = po
@@ -230,7 +232,7 @@ def perlrebuild(args, packages, reportsdir):
             break
 
     body = io.StringIO()
-    print(' <p>Packages whose latest version depends on a perl version provides: other than %s.</p>' % perl_provide, file=body)
+    print(' <p>Packages whose latest version depends on a version provides: other than %s.</p>' % pp_provide, file=body)
 
     print('<table class="grid">', file=body)
     print('<tr><th>package</th><th>srcpackage</th><th>version</th><th>depends</th></tr>', file=body)
@@ -241,8 +243,7 @@ def perlrebuild(args, packages, reportsdir):
 
     print('</table>', file=body)
 
-    r = os.path.join(reportsdir, 'perl_rebuilds.html')
-    with utils.open_amifc(r) as f:
+    with utils.open_amifc(reportfile) as f:
         template('Packages needing rebuilds for latest perl', body.getvalue(), f)
 
 
@@ -256,4 +257,6 @@ def do_reports(args, packages):
 
     unmaintained(args, packages, reportsdir)
     deprecated(args, packages, reportsdir)
-    perlrebuild(args, packages, reportsdir)
+
+    provides_rebuild(args, packages, os.path.join(reportsdir, 'perl_rebuilds.html'), 'perl_base')
+    provides_rebuild(args, packages, os.path.join(reportsdir, 'ruby_rebuilds.html'), 'ruby')


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

only message in thread, other threads:[~2023-04-28 18:46 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-04-28 18:46 [calm - Cygwin server-side packaging maintenance script] branch master, updated. 20230209-24-g1b1dcdc 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).