Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package opi for openSUSE:Factory checked in 
at 2023-01-30 17:11:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/opi (Old)
 and      /work/SRC/openSUSE:Factory/.opi.new.32243 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "opi"

Mon Jan 30 17:11:43 2023 rev:38 rq:1062072 version:2.11.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/opi/opi.changes  2023-01-26 14:04:53.626375608 
+0100
+++ /work/SRC/openSUSE:Factory/.opi.new.32243/opi.changes       2023-01-30 
17:27:20.705818196 +0100
@@ -1,0 +2,6 @@
+Mon Jan 30 14:41:59 UTC 2023 - Dominik Heidler <dheid...@suse.de>
+
+- Version 2.11.0
+- Handle repos with multiple keys in key file (fixes #118)
+
+-------------------------------------------------------------------

Old:
----
  opi-2.10.0.tar.gz

New:
----
  opi-2.11.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ opi.spec ++++++
--- /var/tmp/diff_new_pack.EpNlRX/_old  2023-01-30 17:27:21.161820651 +0100
+++ /var/tmp/diff_new_pack.EpNlRX/_new  2023-01-30 17:27:21.169820694 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           opi
-Version:        2.10.0
+Version:        2.11.0
 Release:        0
 Summary:        OBS Package Installer (CLI)
 License:        GPL-3.0-only

++++++ opi-2.10.0.tar.gz -> opi-2.11.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/opi-2.10.0/opi/__init__.py 
new/opi-2.11.0/opi/__init__.py
--- old/opi-2.10.0/opi/__init__.py      2023-01-25 13:57:49.000000000 +0100
+++ new/opi-2.11.0/opi/__init__.py      2023-01-30 15:41:50.000000000 +0100
@@ -180,6 +180,10 @@
        new_lines.insert(1, '')
        return "\n".join(new_lines)
 
+def split_keys(keys):
+       for key in keys.split('-----BEGIN PGP PUBLIC KEY BLOCK-----')[1:]:
+               yield '-----BEGIN PGP PUBLIC KEY BLOCK-----' + key
+
 def get_keys_from_rpmdb():
        s = subprocess.check_output(["rpm", "-q", "gpg-pubkey", "--qf",
            
'%{NAME}-%{VERSION}-%{RELEASE}\n%{PACKAGER}\n%{DESCRIPTION}\nOPI-SPLIT-TOKEN-TO-TELL-KEY-PACKAGES-APART\n'])
@@ -444,28 +448,32 @@
                return options[num-1]
 
 def ask_import_key(keyurl):
-       key = normalize_key(requests.get(keyurl.replace('$releasever', 
get_version() or '$releasever')).text)
-       for line in subprocess.check_output(["gpg", "--quiet", "--show-keys", 
"--with-colons", "-"], input=key.encode()).decode().strip().split("\n"):
-               if line.startswith("uid:"):
-                       key_info = line.split(':')[9]
-       if [db_key for db_key in get_keys_from_rpmdb() if 
normalize_key(db_key['pubkey']) == key]:
-               print(f"Package signing key '{key_info}' is already present.")
-       else:
-               if ask_yes_or_no(f"Import package signing key '{key_info}'", 
'y'):
-                       tf = tempfile.NamedTemporaryFile('w')
-                       tf.file.write(key)
-                       tf.file.flush()
-                       subprocess.call(['sudo', 'rpm', '--import', tf.name])
-                       tf.file.close()
+       keys = requests.get(keyurl.replace('$releasever', get_version() or 
'$releasever')).text
+       db_keys = get_keys_from_rpmdb()
+       for key in split_keys(keys):
+               for line in subprocess.check_output(["gpg", "--quiet", 
"--show-keys", "--with-colons", "-"], 
input=key.encode()).decode().strip().split("\n"):
+                       if line.startswith("uid:"):
+                               key_info = line.split(':')[9]
+               if [db_key for db_key in get_keys_from_rpmdb() if 
normalize_key(key) in normalize_key(db_key['pubkey'])]:
+                       print(f"Package signing key '{key_info}' is already 
present.")
+               else:
+                       if ask_yes_or_no(f"Import package signing key 
'{key_info}'", 'y'):
+                               tf = tempfile.NamedTemporaryFile('w')
+                               tf.file.write(key)
+                               tf.file.flush()
+                               subprocess.call(['sudo', 'rpm', '--import', 
tf.name])
+                               tf.file.close()
 
 def ask_keep_key(keyurl, repo_name=None):
        """
                Ask to remove the key given by url to key file.
                Warns about all repos still using the key except the repo given 
by repo_name param.
        """
-       urlkey = normalize_key(requests.get(keyurl.replace('$releasever', 
get_version() or '$releasever')).text)
-       keys = [key for key in get_keys_from_rpmdb() if key['pubkey'] == urlkey]
-       for key in keys:
+       urlkeys = split_keys(requests.get(keyurl.replace('$releasever', 
get_version() or '$releasever')).text)
+       urlkeys_normalized = [normalize_key(urlkey) for urlkey in urlkeys]
+       db_keys = get_keys_from_rpmdb()
+       keys_to_ask_user = [key for key in db_keys if key['pubkey'] in 
urlkeys_normalized]
+       for key in keys_to_ask_user:
                repos_using_this_key = []
                for repo in get_repos():
                        if repo_name and repo['name'] == repo_name:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/opi-2.10.0/opi/version.py 
new/opi-2.11.0/opi/version.py
--- old/opi-2.10.0/opi/version.py       2023-01-25 13:57:49.000000000 +0100
+++ new/opi-2.11.0/opi/version.py       2023-01-30 15:41:50.000000000 +0100
@@ -1 +1 @@
-__version__ = '2.10.0'
+__version__ = '2.11.0'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/opi-2.10.0/opi.changes new/opi-2.11.0/opi.changes
--- old/opi-2.10.0/opi.changes  2023-01-25 13:57:49.000000000 +0100
+++ new/opi-2.11.0/opi.changes  2023-01-30 15:41:50.000000000 +0100
@@ -1,4 +1,10 @@
 -------------------------------------------------------------------
+Mon Jan 30 14:41:42 UTC 2023 - Dominik Heidler <dheid...@suse.de>
+
+- Version 2.11.0
+- Handle repos with multiple keys in key file (fixes #118)
+
+-------------------------------------------------------------------
 Wed Jan 25 12:57:21 UTC 2023 - Dominik Heidler <dheid...@suse.de>
 
 - Version 2.10.0

Reply via email to