public inbox for cygwin-apps-cvs@sourceware.org
help / color / mirror / Atom feed
From: Jon Turney <jturney@sourceware.org>
To: cygwin-apps-cvs@sourceware.org
Subject: [calm - Cygwin server-side packaging maintenance script] branch master, updated. 20230209-24-g1b1dcdc
Date: Fri, 28 Apr 2023 18:46:31 +0000 (GMT)	[thread overview]
Message-ID: <20230428184631.AF5BC3858438@sourceware.org> (raw)




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')


                 reply	other threads:[~2023-04-28 18:46 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230428184631.AF5BC3858438@sourceware.org \
    --to=jturney@sourceware.org \
    --cc=cygwin-apps-cvs@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).