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-08-03 13:36:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libzypp (Old)
 and      /work/SRC/openSUSE:Factory/.libzypp.new.1085 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libzypp"

Sun Aug  3 13:36:05 2025 rev:522 rq:1296899 version:17.37.15

Changes:
--------
--- /work/SRC/openSUSE:Factory/libzypp/libzypp.changes  2025-07-24 
18:46:15.191457646 +0200
+++ /work/SRC/openSUSE:Factory/.libzypp.new.1085/libzypp.changes        
2025-08-03 13:36:36.089437262 +0200
@@ -1,0 +2,7 @@
+Thu Jul 31 17:01:53 CEST 2025 - m...@suse.de
+
+- Append RepoInfo::path() to the mirror URLs in Preloader
+  (bsc#1247054)
+- version 17.37.15 (35)
+
+-------------------------------------------------------------------

Old:
----
  libzypp-17.37.14.tar.bz2

New:
----
  libzypp-17.37.15.tar.bz2

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

Other differences:
------------------
++++++ libzypp.spec ++++++
--- /var/tmp/diff_new_pack.XP4TA5/_old  2025-08-03 13:36:36.701462647 +0200
+++ /var/tmp/diff_new_pack.XP4TA5/_new  2025-08-03 13:36:36.701462647 +0200
@@ -72,7 +72,7 @@
 %endif
 
 Name:           libzypp
-Version:        17.37.14
+Version:        17.37.15
 Release:        0
 License:        GPL-2.0-or-later
 URL:            https://github.com/openSUSE/libzypp

++++++ libzypp-17.37.14.tar.bz2 -> libzypp-17.37.15.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-17.37.14/VERSION.cmake 
new/libzypp-17.37.15/VERSION.cmake
--- old/libzypp-17.37.14/VERSION.cmake  2025-07-23 17:13:01.000000000 +0200
+++ new/libzypp-17.37.15/VERSION.cmake  2025-07-31 17:02:41.000000000 +0200
@@ -61,8 +61,8 @@
 SET(LIBZYPP_MAJOR "17")
 SET(LIBZYPP_COMPATMINOR "35")
 SET(LIBZYPP_MINOR "37")
-SET(LIBZYPP_PATCH "14")
+SET(LIBZYPP_PATCH "15")
 #
-# LAST RELEASED: 17.37.14 (35)
+# LAST RELEASED: 17.37.15 (35)
 # (The number in parenthesis is LIBZYPP_COMPATMINOR)
 #=======
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-17.37.14/package/libzypp.changes 
new/libzypp-17.37.15/package/libzypp.changes
--- old/libzypp-17.37.14/package/libzypp.changes        2025-07-23 
17:13:01.000000000 +0200
+++ new/libzypp-17.37.15/package/libzypp.changes        2025-07-31 
17:02:41.000000000 +0200
@@ -1,4 +1,11 @@
 -------------------------------------------------------------------
+Thu Jul 31 17:01:53 CEST 2025 - m...@suse.de
+
+- Append RepoInfo::path() to the mirror URLs in Preloader
+  (bsc#1247054)
+- version 17.37.15 (35)
+
+-------------------------------------------------------------------
 Wed Jul 23 17:11:47 CEST 2025 - m...@suse.de
 
 - During installation indicate the backend being used (bsc#1246038)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-17.37.14/tests/zypp/RepoInfo_test.cc 
new/libzypp-17.37.15/tests/zypp/RepoInfo_test.cc
--- old/libzypp-17.37.14/tests/zypp/RepoInfo_test.cc    2025-06-18 
11:57:31.000000000 +0200
+++ new/libzypp-17.37.15/tests/zypp/RepoInfo_test.cc    2025-07-30 
17:40:08.000000000 +0200
@@ -40,7 +40,7 @@
   BOOST_CHECK_EQUAL(ri.location(), weburl);
   BOOST_CHECK_EQUAL(ri.url().asString(), 
"http://ftp-stud.hs-esslingen.de/pub/fedora/linux/updates/13/x86_64/";);
 
-  BOOST_CHECK( !ri.repoOriginsEmpty() );
+  BOOST_REQUIRE( !ri.repoOriginsEmpty() );
   BOOST_CHECK_EQUAL( ri.repoOrigins().begin()->authority().url().asString(), 
"http://ftp-stud.hs-esslingen.de/pub/fedora/linux/updates/13/x86_64/"; );
 
   std::ostringstream ostr;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-17.37.14/zypp/RepoInfo.cc 
new/libzypp-17.37.15/zypp/RepoInfo.cc
--- old/libzypp-17.37.14/zypp/RepoInfo.cc       2025-06-18 11:57:31.000000000 
+0200
+++ new/libzypp-17.37.15/zypp/RepoInfo.cc       2025-07-30 17:40:08.000000000 
+0200
@@ -173,8 +173,10 @@
      */
     url_set &mirrorUrls() const
     {
-      if ( !_mirrorUrls.empty()
-           && ( std::chrono::steady_clock::now() - _lastMirrorUrlsUpdate < 
std::chrono::hours(1) ) )
+      // do not change order of calculation, using 
std::chrono::steady_clock::now() - _lastMirrorUrlsUpdate
+      // will overflow the internal counter if _lastMirrorUrlsUpdate is still 
time_point::min and result
+      // in a negative value.
+      if (  ( std::chrono::steady_clock::now() - std::chrono::hours(1) ) < 
_lastMirrorUrlsUpdate  )
         return _mirrorUrls;
 
       _mirrorUrls.clear();
@@ -188,6 +190,8 @@
            && repo::RepoMirrorList::urlSupportsMirrorLink( 
*_baseUrls.transformedBegin() ) ) {
 
         mlurl = *_baseUrls.transformedBegin ();
+        if ( !path.emptyOrRoot () )
+          mlurl.setPathName(path);
         mlurl.pathNameSetTrailingSlash();
         mlurl.setQueryParam("mirrorlist", std::string() );
 
@@ -212,6 +216,9 @@
             callback::UserData data( JobReport::repoRefreshMirrorlist );
             data.set("error", e );
             JobReport::warning( _("Failed to fetch mirrorlist/metalink 
data."), data );
+
+            // in case of error, we want to try again asap
+            _lastMirrorUrlsUpdate = 
std::chrono::steady_clock::time_point::min();
           }
         }
       }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-17.37.14/zypp/repo/RepoMirrorList.cc 
new/libzypp-17.37.15/zypp/repo/RepoMirrorList.cc
--- old/libzypp-17.37.14/zypp/repo/RepoMirrorList.cc    2025-06-18 
11:57:31.000000000 +0200
+++ new/libzypp-17.37.15/zypp/repo/RepoMirrorList.cc    2025-07-30 
17:40:08.000000000 +0200
@@ -362,12 +362,7 @@
             MIL << "Mirror cachefile cookie valid and cache is not too old, 
skipping download (" << cachefile << ")" << std::endl;
             try {
               _urls = RepoMirrorListParse( url_r, cachefile );
-              if( _urls.empty() ) {
-                DBG << "Removing Cachefile as it contains no URLs" << endl;
-                zypp::filesystem::unlink( cachefile );
-              }
               return;
-
             } catch ( const zypp::Exception & e ) {
               ZYPP_CAUGHT(e);
               auto ex = e;
@@ -391,11 +386,16 @@
           RepoMirrorListTempProvider provider( url_r );        // RAII: 
lifetime of downloaded file
           _urls = RepoMirrorListParse( url_r, provider.localfile() );
 
-          if ( metaPathInfo.userMayRWX() && !_urls.empty() ) {
+          // removed the && !_urls.empty() condition , we need to remember "no 
URLs" as well
+          // otherwise RepoInfo keeps spamming the server with requests
+          if ( metaPathInfo.userMayRWX() ) {
             // Create directory, if not existing
             DBG << "Copy MirrorList file to " << cachefile << endl;
             zypp::filesystem::assert_dir( metadatapath_r );
-            zypp::filesystem::hardlinkCopy( provider.localfile(), cachefile );
+            if( zypp::filesystem::hardlinkCopy( provider.localfile(), 
cachefile ) != 0 ) {
+              // remember empty file
+              zypp::filesystem::assert_file( cachefile );
+            }
             saveToCookieFile ( cookiefile, url_r );
             // NOTE: Now we copied the mirrorlist into the metadata directory, 
but
             // in case of refresh going on, new metadata are prepared in a 
sibling
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libzypp-17.37.14/zypp/target/commitpackagepreloader.cc 
new/libzypp-17.37.15/zypp/target/commitpackagepreloader.cc
--- old/libzypp-17.37.14/zypp/target/commitpackagepreloader.cc  2025-07-07 
17:40:11.000000000 +0200
+++ new/libzypp-17.37.15/zypp/target/commitpackagepreloader.cc  2025-07-30 
17:40:08.000000000 +0200
@@ -95,7 +95,13 @@
       _parent._requiredDls.pop_front();
 
       auto loc = _job.lookupLocation();
-      _targetPath = _job.repoInfo().predownloadPath() / 
_job.lookupLocation().filename();
+      const auto repoInfo = _job.repoInfo();
+
+      _targetPath = repoInfo.predownloadPath();
+      if ( !repoInfo.path().emptyOrRoot () ) {
+        _targetPath /= repoInfo.path();
+      }
+      _targetPath /= loc.filename();
 
       // select a mirror we want to use
       if ( !prepareMirror( ) ) {
@@ -507,6 +513,9 @@
                 url = rewriteUrl;
             }
 
+            if ( !pi.repoInfo().path().emptyOrRoot() )
+              url.appendPathName( pi.repoInfo().path() );
+
             MIL << "Adding Url: " << url << " to the mirror set" << std::endl;
 
             repoUrls.push_back( RepoUrl {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libzypp-17.37.14/zypp-media/auth/credentialmanager.cc 
new/libzypp-17.37.15/zypp-media/auth/credentialmanager.cc
--- old/libzypp-17.37.14/zypp-media/auth/credentialmanager.cc   2025-02-11 
18:40:09.000000000 +0100
+++ new/libzypp-17.37.15/zypp-media/auth/credentialmanager.cc   2025-07-31 
11:30:18.000000000 +0200
@@ -136,7 +136,7 @@
   void CredentialManager::Impl::init_globalCredentials()
   {
     if (_options.globalCredFilePath.empty())
-      DBG << "global cred file not known";
+      DBG << "global cred file not known" << endl;
     else if (PathInfo(_options.globalCredFilePath).isExist())
     {
     /*  list<Pathname> entries;
@@ -149,7 +149,7 @@
           bind(&Impl::processCredentials, this, _1));
     }
     else
-      DBG << "global cred file does not exist";
+      DBG << "global cred file does not exist (" << 
_options.globalCredFilePath << ")" << endl;
 
     _credsGlobal = _credsTmp; _credsTmp.clear();
     DBG << "Got " << _credsGlobal.size() << " global records." << endl;
@@ -159,7 +159,7 @@
   void CredentialManager::Impl::init_userCredentials()
   {
     if (_options.userCredFilePath.empty())
-      DBG << "user cred file not known";
+      DBG << "user cred file not known" << endl;
     else if (PathInfo(_options.userCredFilePath).isExist())
     {
     /*  list<Pathname> entries;
@@ -171,7 +171,7 @@
           bind(&Impl::processCredentials, this, _1));
     }
     else
-      DBG << "user cred file does not exist" << endl;
+      DBG << "user cred file does not exist (" << _options.userCredFilePath << 
")" << endl;
 
     _credsUser = _credsTmp; _credsTmp.clear();
     DBG << "Got " << _credsUser.size() << " user records." << endl;
@@ -228,7 +228,7 @@
       result = findIn(_credsUser, url, vopt);
 
     if (result)
-      DBG << "Found credentials for '" << url << "':" << endl << *result;
+      DBG << "Found credentials for '" << url << "':" << endl << *result << 
endl;
     else
       DBG << "No credentials for '" << url << "'" << endl;
 

Reply via email to