Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package libzypp for openSUSE:Factory checked 
in at 2025-06-06 22:35:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libzypp (Old)
 and      /work/SRC/openSUSE:Factory/.libzypp.new.19631 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libzypp"

Fri Jun  6 22:35:26 2025 rev:515 rq:1282855 version:17.37.4

Changes:
--------
--- /work/SRC/openSUSE:Factory/libzypp/libzypp.changes  2025-06-03 
17:51:39.400920368 +0200
+++ /work/SRC/openSUSE:Factory/.libzypp.new.19631/libzypp.changes       
2025-06-06 22:36:55.281548658 +0200
@@ -1,0 +2,8 @@
+Wed Jun  4 17:44:37 CEST 2025 - m...@suse.de
+
+- RepoInfo: use pathNameSetTrailingSlash (fixes #643)
+- Fix wrong userdata parameter type when running zypp with debug
+  verbosity (bsc#1239012)
+- version 17.37.4 (35)
+
+-------------------------------------------------------------------

Old:
----
  libzypp-17.37.3.tar.bz2

New:
----
  libzypp-17.37.4.tar.bz2

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

Other differences:
------------------
++++++ libzypp.spec ++++++
--- /var/tmp/diff_new_pack.PbMibY/_old  2025-06-06 22:37:01.633811883 +0200
+++ /var/tmp/diff_new_pack.PbMibY/_new  2025-06-06 22:37:01.633811883 +0200
@@ -70,7 +70,7 @@
 %endif
 
 Name:           libzypp
-Version:        17.37.3
+Version:        17.37.4
 Release:        0
 License:        GPL-2.0-or-later
 URL:            https://github.com/openSUSE/libzypp

++++++ libzypp-17.37.3.tar.bz2 -> libzypp-17.37.4.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-17.37.3/VERSION.cmake 
new/libzypp-17.37.4/VERSION.cmake
--- old/libzypp-17.37.3/VERSION.cmake   2025-06-02 17:52:37.000000000 +0200
+++ new/libzypp-17.37.4/VERSION.cmake   2025-06-04 17:45:32.000000000 +0200
@@ -61,8 +61,8 @@
 SET(LIBZYPP_MAJOR "17")
 SET(LIBZYPP_COMPATMINOR "35")
 SET(LIBZYPP_MINOR "37")
-SET(LIBZYPP_PATCH "3")
+SET(LIBZYPP_PATCH "4")
 #
-# LAST RELEASED: 17.37.3 (35)
+# LAST RELEASED: 17.37.4 (35)
 # (The number in parenthesis is LIBZYPP_COMPATMINOR)
 #=======
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-17.37.3/package/libzypp.changes 
new/libzypp-17.37.4/package/libzypp.changes
--- old/libzypp-17.37.3/package/libzypp.changes 2025-06-02 17:52:37.000000000 
+0200
+++ new/libzypp-17.37.4/package/libzypp.changes 2025-06-04 17:45:32.000000000 
+0200
@@ -1,4 +1,12 @@
 -------------------------------------------------------------------
+Wed Jun  4 17:44:37 CEST 2025 - m...@suse.de
+
+- RepoInfo: use pathNameSetTrailingSlash (fixes #643)
+- Fix wrong userdata parameter type when running zypp with debug
+  verbosity (bsc#1239012)
+- version 17.37.4 (35)
+
+-------------------------------------------------------------------
 Mon Jun  2 17:50:53 CEST 2025 - m...@suse.de
 
 - Do not warn about no mirrors if mirrorlist was switched on
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-17.37.3/tests/zypp/Url_test.cc 
new/libzypp-17.37.4/tests/zypp/Url_test.cc
--- old/libzypp-17.37.3/tests/zypp/Url_test.cc  2025-03-14 17:00:09.000000000 
+0100
+++ new/libzypp-17.37.4/tests/zypp/Url_test.cc  2025-06-04 17:30:09.000000000 
+0200
@@ -389,4 +389,25 @@
   BOOST_CHECK_EQUAL( appendPathName( u, "../ba a" ),                   
"ftp://host/%2Fba%20a"; );
 }
 
+BOOST_AUTO_TEST_CASE(pathNameSetTrailingSlash)
+{
+  auto apply = []( const std::string & url_r, bool apply_r ) -> std::string {
+    Url u { url_r };
+    u.pathNameSetTrailingSlash( apply_r );
+    return u.getPathName();
+  };
+  BOOST_CHECK_EQUAL( apply( "http://HOST";, true ),  "" );
+  BOOST_CHECK_EQUAL( apply( "http://HOST";, false ), "" );
+  BOOST_CHECK_EQUAL( apply( "http://HOST/";, true ),  "/" );
+  BOOST_CHECK_EQUAL( apply( "http://HOST/";, false ), "/" );
+  BOOST_CHECK_EQUAL( apply( "http://HOST//";, true ),  "//" );
+  BOOST_CHECK_EQUAL( apply( "http://HOST//";, false ), "//" );
+  BOOST_CHECK_EQUAL( apply( "http://HOST//foo";, true ),  "//foo/" );
+  BOOST_CHECK_EQUAL( apply( "http://HOST//foo";, false ), "//foo" );
+  BOOST_CHECK_EQUAL( apply( "http://HOST//foo/";, true ),  "//foo/" );
+  BOOST_CHECK_EQUAL( apply( "http://HOST//foo/";, false ), "//foo" );
+  BOOST_CHECK_EQUAL( apply( "http://HOST//foo//";, true ),  "//foo//" );
+  BOOST_CHECK_EQUAL( apply( "http://HOST//foo//";, false ), "//foo" );
+}
+
 // vim: set ts=2 sts=2 sw=2 ai et:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-17.37.3/zypp/RepoInfo.cc 
new/libzypp-17.37.4/zypp/RepoInfo.cc
--- old/libzypp-17.37.3/zypp/RepoInfo.cc        2025-06-02 17:30:08.000000000 
+0200
+++ new/libzypp-17.37.4/zypp/RepoInfo.cc        2025-06-04 17:30:09.000000000 
+0200
@@ -186,7 +186,7 @@
            && repo::RepoMirrorList::urlSupportsMirrorLink( 
*_baseUrls.transformedBegin() ) ) {
 
         mlurl = *_baseUrls.transformedBegin ();
-        mlurl.appendPathName("/");
+        mlurl.pathNameSetTrailingSlash();
         mlurl.setQueryParam("mirrorlist", std::string() );
 
         MIL << "Detected opensuse.org baseUrl with no mirrors, requesting them 
from : " << mlurl.asString() << std::endl;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libzypp-17.37.3/zypp/target/commitpackagepreloader.cc 
new/libzypp-17.37.4/zypp/target/commitpackagepreloader.cc
--- old/libzypp-17.37.3/zypp/target/commitpackagepreloader.cc   2025-06-02 
17:30:08.000000000 +0200
+++ new/libzypp-17.37.4/zypp/target/commitpackagepreloader.cc   2025-06-04 
13:00:11.000000000 +0200
@@ -354,7 +354,7 @@
 
       callback::UserData userData( "CommitPreloadReport/fileDone" );
       if ( url )
-        userData.set( "Url", url );
+        userData.set( "Url", *url );
       if ( errorMessage )
         userData.set( "description", *errorMessage );
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-17.37.3/zypp-common/KeyManager.cc 
new/libzypp-17.37.4/zypp-common/KeyManager.cc
--- old/libzypp-17.37.3/zypp-common/KeyManager.cc       2025-01-28 
15:20:09.000000000 +0100
+++ new/libzypp-17.37.4/zypp-common/KeyManager.cc       2025-06-04 
14:40:11.000000000 +0200
@@ -6,6 +6,7 @@
 |                         /_____||_| |_| |_|                           |
 |                                                                      |
 \---------------------------------------------------------------------*/
+#include <iostream>
 #include "KeyManager.h"
 #include "KeyRingException.h"
 
@@ -92,6 +93,48 @@
       // In V.1.11: str << "  "  << obj.skipped_v3_keys        << " skipped v3 
keys." << endl;
       return str << "}";
     }
+
+    std::ostream & operator<<( std::ostream & str, const gpgme_sigsum_t & obj )
+    {
+      str << ((int)obj&(int)0xffff) << ":";
+#define OSC(V) if ( V & (unsigned)obj ) str << " " << #V;
+      OSC(GPGME_SIGSUM_VALID       );
+      OSC(GPGME_SIGSUM_GREEN       );
+      OSC(GPGME_SIGSUM_RED         );
+      OSC(GPGME_SIGSUM_KEY_REVOKED );
+      OSC(GPGME_SIGSUM_KEY_EXPIRED );
+      OSC(GPGME_SIGSUM_SIG_EXPIRED );
+      OSC(GPGME_SIGSUM_KEY_MISSING );
+      OSC(GPGME_SIGSUM_CRL_MISSING );
+      OSC(GPGME_SIGSUM_CRL_TOO_OLD );
+      OSC(GPGME_SIGSUM_BAD_POLICY  );
+      OSC(GPGME_SIGSUM_SYS_ERROR   );
+      OSC(GPGME_SIGSUM_TOFU_CONFLICT);
+#undef OSC
+      return str;
+    }
+
+    std::ostream & operator<<( std::ostream & str, const gpgme_signature_t & 
obj )
+    {
+      str << "gpgme_signature_t " << (void *)obj << " {" << endl;
+      str << "  next:            " << (void *)obj->next << endl;
+      str << "  summary:         " << obj->summary << endl;
+      str << "  fpr:             " << obj->fpr << endl;
+      str << "  status:          " << obj->status << " " << 
GpgmeErr(obj->status) << endl;
+      str << "  timestamp:       " << obj->timestamp << endl;
+      str << "  exp_timestamp:   " << obj->exp_timestamp << endl;
+      str << "  wrong_key_usage: " << obj->wrong_key_usage << endl;
+      str << "  pka_trust:       " << obj->pka_trust << endl;
+      str << "  chain_model:     " << obj->chain_model << endl;
+      str << "  is_de_vs:        " << obj->is_de_vs << endl;
+      str << "  validity:        " << obj->validity << endl;
+      str << "  validity_reason: " << obj->validity_reason << " " << 
GpgmeErr(obj->validity_reason) << endl;
+      str << "  pubkey_algo:     " << obj->pubkey_algo << endl;
+      str << "  hash_algo:       " << obj->hash_algo << endl;
+      str << "  pka_address:     " << (obj->pka_address ? obj->pka_address : 
"") << endl;
+      return str;
+    }
+
   } // namespace
   ///////////////////////////////////////////////////////////////////
 
@@ -225,7 +268,7 @@
   bool foundGoodSignature = false;
   std::list<std::string> signatures;
   for ( gpgme_signature_t sig = res->signatures; sig; sig = sig->next ) {
-
+    //DBG << "- " << sig << std::endl;
     if ( sig->fpr )
     {
       // bsc#1100427: With libgpgme11-1.11.0 and if a recent gpg version was 
used
@@ -311,7 +354,13 @@
     if ( err != GPG_ERR_NO_ERROR )
       ZYPP_THROW( GpgmeException( "gpgme_ctx_set_engine_info", err ) );
   }
-
+#if 0
+  DBG << "createForOpenPGP {" << endl;
+  for ( const auto & key : ret.listKeys() ) {
+    DBG << "  " << key << endl;
+  }
+  DBG << "}" << endl;
+#endif
   return ret;
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-17.37.3/zypp-core/Url.cc 
new/libzypp-17.37.4/zypp-core/Url.cc
--- old/libzypp-17.37.3/zypp-core/Url.cc        2025-03-14 17:00:09.000000000 
+0100
+++ new/libzypp-17.37.4/zypp-core/Url.cc        2025-06-04 17:30:09.000000000 
+0200
@@ -826,6 +826,22 @@
     }
   }
 
+  void Url::pathNameSetTrailingSlash( bool apply_r )
+  {
+    std::string upath { getPathName( url::E_DECODED ) };
+    if ( upath.empty() || upath == "/" || upath == "//" )
+      return;
+    if ( str::endsWith( upath, "/" ) == apply_r )
+      return;
+
+    if ( apply_r ) {
+      setPathName( upath+"/", url::E_DECODED );
+    } else {
+      do { upath.pop_back(); } while ( str::endsWith( upath, "/" ) );
+      setPathName( upath, url::E_DECODED );
+    }
+  }
+
   // -----------------------------------------------------------------
   void
   Url::setPathParams(const std::string &params)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-17.37.3/zypp-core/Url.h 
new/libzypp-17.37.4/zypp-core/Url.h
--- old/libzypp-17.37.3/zypp-core/Url.h 2024-12-10 14:30:12.000000000 +0100
+++ new/libzypp-17.37.4/zypp-core/Url.h 2025-06-04 17:30:09.000000000 +0200
@@ -714,6 +714,11 @@
      */
     void appendPathName( const Pathname & path_r, EEncoding eflag_r = 
zypp::url::E_DECODED );
 
+    /** \brief Apply or remove a trailing '/' from \ref pathName.
+     * If the current \ref pathName is empty or \c / it remains unchanged.
+     */
+    void pathNameSetTrailingSlash( bool apply_r = true );
+
     /**
      * \brief Set the path parameters.
      * \param params The new encoded path parameter string.

Reply via email to