Hello community,

here is the log from the commit of package libzypp for openSUSE:Factory checked 
in at 2017-10-21 20:20:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libzypp (Old)
 and      /work/SRC/openSUSE:Factory/.libzypp.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libzypp"

Sat Oct 21 20:20:37 2017 rev:390 rq:533723 version:16.17.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/libzypp/libzypp.changes  2017-09-25 
13:49:55.762922722 +0200
+++ /work/SRC/openSUSE:Factory/.libzypp.new/libzypp.changes     2017-10-21 
20:20:39.234152571 +0200
@@ -1,0 +2,12 @@
+Thu Oct 12 18:04:38 CEST 2017 - [email protected]
+
+- Fix media handling in presence of a repo path prefix (bsc#1062561)
+- version 16.17.3 (0)
+
+-------------------------------------------------------------------
+Wed Oct 11 16:29:48 CEST 2017 - [email protected]
+
+- Fix RepoProvideFile ignoring a repo path prefix (bsc#1062561)
+- version 16.17.2 (0)
+
+-------------------------------------------------------------------

Old:
----
  libzypp-16.17.1.tar.bz2

New:
----
  libzypp-16.17.3.tar.bz2

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

Other differences:
------------------
++++++ libzypp.spec ++++++
--- /var/tmp/diff_new_pack.j5VdeO/_old  2017-10-21 20:20:41.114064540 +0200
+++ /var/tmp/diff_new_pack.j5VdeO/_new  2017-10-21 20:20:41.118064352 +0200
@@ -19,7 +19,7 @@
 %define force_gcc_46 0
 
 Name:           libzypp
-Version:        16.17.1
+Version:        16.17.3
 Release:        0
 Url:            git://gitorious.org/opensuse/libzypp.git
 Summary:        Package, Patch, Pattern, and Product Management

++++++ libzypp-16.17.1.tar.bz2 -> libzypp-16.17.3.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-16.17.1/VERSION.cmake 
new/libzypp-16.17.3/VERSION.cmake
--- old/libzypp-16.17.1/VERSION.cmake   2017-09-22 12:21:10.000000000 +0200
+++ new/libzypp-16.17.3/VERSION.cmake   2017-10-12 18:16:06.000000000 +0200
@@ -61,8 +61,8 @@
 SET(LIBZYPP_MAJOR "16")
 SET(LIBZYPP_COMPATMINOR "0")
 SET(LIBZYPP_MINOR "17")
-SET(LIBZYPP_PATCH "1")
+SET(LIBZYPP_PATCH "3")
 #
-# LAST RELEASED: 16.17.1 (0)
+# LAST RELEASED: 16.17.3 (0)
 # (The number in parenthesis is LIBZYPP_COMPATMINOR)
 #=======
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-16.17.1/package/libzypp.changes 
new/libzypp-16.17.3/package/libzypp.changes
--- old/libzypp-16.17.1/package/libzypp.changes 2017-09-22 12:21:10.000000000 
+0200
+++ new/libzypp-16.17.3/package/libzypp.changes 2017-10-12 18:16:06.000000000 
+0200
@@ -1,4 +1,16 @@
 -------------------------------------------------------------------
+Thu Oct 12 18:04:38 CEST 2017 - [email protected]
+
+- Fix media handling in presence of a repo path prefix (bsc#1062561)
+- version 16.17.3 (0)
+
+-------------------------------------------------------------------
+Wed Oct 11 16:29:48 CEST 2017 - [email protected]
+
+- Fix RepoProvideFile ignoring a repo path prefix (bsc#1062561)
+- version 16.17.2 (0)
+
+-------------------------------------------------------------------
 Fri Sep 22 12:16:34 CEST 2017 - [email protected]
 
 - Default to 'solver.dupAllowVendorChange = false' on SLE15
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-16.17.1/po/id.po new/libzypp-16.17.3/po/id.po
--- old/libzypp-16.17.1/po/id.po        2017-09-07 12:31:10.000000000 +0200
+++ new/libzypp-16.17.3/po/id.po        2017-10-10 12:48:09.000000000 +0200
@@ -8,16 +8,16 @@
 "Project-Id-Version: YaST (@memory@)\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2017-09-07 12:25+0200\n"
-"PO-Revision-Date: 2017-07-17 22:37+0000\n"
-"Last-Translator: M. Edwin Zakaria <[email protected]>\n"
-"Language-Team: Indonesian <https://l10n.opensuse.org/projects/libzypp/master/";
-"id/>\n"
+"PO-Revision-Date: 2017-10-03 15:55+0700\n"
+"Last-Translator: Kukuh Syafaat <[email protected]>\n"
+"Language-Team: Indonesian "
+"<https://l10n.opensuse.org/projects/libzypp/master/id/>\n"
 "Language: id\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 2.13.1\n"
+"X-Generator: Poedit 2.0.3\n"
 
 #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55
 #: zypp/target/hal/HalException.h:64
@@ -4163,21 +4163,20 @@
 
 #. translators: an annotation to a gpg keys expiry date
 #: zypp/PublicKey.cc:60
-#, fuzzy
 msgid "does not expire"
-msgstr "(Tidak berakhir)"
+msgstr "tidak kedaluwarsa"
 
 #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12"
 #: zypp/PublicKey.cc:65
 #, boost-format
 msgid "expired: %1%"
-msgstr ""
+msgstr "kedaluwarsa: %1%"
 
 #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12"
 #: zypp/PublicKey.cc:70
 #, boost-format
 msgid "expires: %1%"
-msgstr ""
+msgstr "kedaluwarsa: %1%"
 
 #. translators: an annotation to a gpg keys expiry date
 #: zypp/PublicKey.cc:79
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-16.17.1/po/it.po new/libzypp-16.17.3/po/it.po
--- old/libzypp-16.17.1/po/it.po        2017-09-07 12:31:10.000000000 +0200
+++ new/libzypp-16.17.3/po/it.po        2017-10-10 12:48:09.000000000 +0200
@@ -15,10 +15,10 @@
 "Project-Id-Version: zypp\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2017-09-07 12:25+0200\n"
-"PO-Revision-Date: 2017-07-28 15:35+0000\n"
+"PO-Revision-Date: 2017-09-27 07:32+0000\n"
 "Last-Translator: Alessio Adamo <[email protected]>\n"
-"Language-Team: Italian <https://l10n.opensuse.org/projects/libzypp/master/it/";
-">\n"
+"Language-Team: Italian "
+"<https://l10n.opensuse.org/projects/libzypp/master/it/>\n"
 "Language: it\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -3734,21 +3734,20 @@
 
 #. translators: an annotation to a gpg keys expiry date
 #: zypp/PublicKey.cc:60
-#, fuzzy
 msgid "does not expire"
-msgstr "(non scade)"
+msgstr "non scade"
 
 #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12"
 #: zypp/PublicKey.cc:65
 #, boost-format
 msgid "expired: %1%"
-msgstr ""
+msgstr "scaduta: %1%"
 
 #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12"
 #: zypp/PublicKey.cc:70
 #, boost-format
 msgid "expires: %1%"
-msgstr ""
+msgstr "scade: %1%"
 
 #. translators: an annotation to a gpg keys expiry date
 #: zypp/PublicKey.cc:79
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-16.17.1/po/nl.po new/libzypp-16.17.3/po/nl.po
--- old/libzypp-16.17.1/po/nl.po        2017-09-07 12:31:10.000000000 +0200
+++ new/libzypp-16.17.3/po/nl.po        2017-10-10 12:48:09.000000000 +0200
@@ -16,10 +16,10 @@
 "Project-Id-Version: zypp.nl\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2017-09-07 12:25+0200\n"
-"PO-Revision-Date: 2017-08-28 21:35+0000\n"
-"Last-Translator: Freek de Kruijf <[email protected]>\n"
-"Language-Team: Dutch <https://l10n.opensuse.org/projects/libzypp/master/nl/";
-">\n"
+"PO-Revision-Date: 2017-10-09 10:19+0000\n"
+"Last-Translator: Nathan Follens <[email protected]>\n"
+"Language-Team: Dutch <https://l10n.opensuse.org/projects/libzypp/master/nl/>"
+"\n"
 "Language: nl\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -36,7 +36,7 @@
 #: zypp/CheckSum.cc:136
 #, c-format, boost-format
 msgid "Dubious type '%s' for %u byte checksum '%s'"
-msgstr "Twijfelachtig type '%s' voor %u bytes checksum '%s'"
+msgstr "Twijfelachtig type '%s' voor %u bytes controlesom '%s'"
 
 #: zypp/CountryCode.cc:50
 msgid "Unknown country: "
@@ -4838,12 +4838,12 @@
 #: zypp/url/UrlBase.cc:173
 #, c-format, boost-format
 msgid "Invalid %s component '%s'"
-msgstr "Ongeldige %s component '%s'"
+msgstr "Ongeldige %s-component '%s'"
 
 #: zypp/url/UrlBase.cc:180
 #, c-format, boost-format
 msgid "Invalid %s component"
-msgstr "Ongeldige %s component"
+msgstr "Ongeldige %s-component"
 
 #: zypp/url/UrlBase.cc:786 zypp/url/UrlBase.cc:1231
 msgid "Query string parsing not supported for this URL"
@@ -4851,7 +4851,7 @@
 
 #: zypp/url/UrlBase.cc:824
 msgid "Url scheme is a required component"
-msgstr "URL-schema is een vereist component"
+msgstr "URL-schema is een vereiste component"
 
 #: zypp/url/UrlBase.cc:830
 #, c-format, boost-format
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-16.17.1/po/ru.po new/libzypp-16.17.3/po/ru.po
--- old/libzypp-16.17.1/po/ru.po        2017-09-07 12:31:10.000000000 +0200
+++ new/libzypp-16.17.3/po/ru.po        2017-10-10 12:48:09.000000000 +0200
@@ -14,17 +14,17 @@
 "Project-Id-Version: zypp.ru\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2017-09-07 12:25+0200\n"
-"PO-Revision-Date: 2016-12-14 04:56+0000\n"
+"PO-Revision-Date: 2017-10-09 20:13+0000\n"
 "Last-Translator: Alex Minton <[email protected]>\n"
-"Language-Team: Russian <https://l10n.opensuse.org/projects/libzypp/master/ru/";
-">\n"
+"Language-Team: Russian "
+"<https://l10n.opensuse.org/projects/libzypp/master/ru/>\n"
 "Language: ru\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-"X-Generator: Weblate 2.6\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<="
+"4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 2.13.1\n"
 
 #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55
 #: zypp/target/hal/HalException.h:64
@@ -3730,21 +3730,20 @@
 
 #. translators: an annotation to a gpg keys expiry date
 #: zypp/PublicKey.cc:60
-#, fuzzy
 msgid "does not expire"
-msgstr "(не истекает)"
+msgstr "не истекает"
 
 #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12"
 #: zypp/PublicKey.cc:65
 #, boost-format
 msgid "expired: %1%"
-msgstr ""
+msgstr "истёк: %1%"
 
 #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12"
 #: zypp/PublicKey.cc:70
 #, boost-format
 msgid "expires: %1%"
-msgstr ""
+msgstr "истекает: %1%"
 
 #. translators: an annotation to a gpg keys expiry date
 #: zypp/PublicKey.cc:79
@@ -4716,7 +4715,7 @@
 
 #: zypp/target/rpm/RpmDb.cc:1568
 msgid "Package is not signed!"
-msgstr ""
+msgstr "Пакет не подписан!"
 
 #. Translator: %s = name of an rpm package. A list of diffs follows
 #. this message.
@@ -4801,7 +4800,7 @@
 #. translators: possible rpm package signature check result [brief]
 #: zypp/target/rpm/RpmDb.cc:2397
 msgid "File is unsigned"
-msgstr ""
+msgstr "Файл не подписан"
 
 #: zypp/thread/Mutex.cc:33
 msgid "Can't initialize mutex attributes"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-16.17.1/po/sk.po new/libzypp-16.17.3/po/sk.po
--- old/libzypp-16.17.1/po/sk.po        2017-09-07 12:31:10.000000000 +0200
+++ new/libzypp-16.17.3/po/sk.po        2017-10-10 12:48:09.000000000 +0200
@@ -6,10 +6,10 @@
 "Project-Id-Version: libzypp\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2017-09-07 12:25+0200\n"
-"PO-Revision-Date: 2017-07-17 17:12+0000\n"
+"PO-Revision-Date: 2017-10-05 11:44+0000\n"
 "Last-Translator: Ferdinand Galko <[email protected]>\n"
-"Language-Team: Slovak <https://l10n.opensuse.org/projects/libzypp/master/sk/";
-">\n"
+"Language-Team: Slovak <https://l10n.opensuse.org/projects/libzypp/master/sk/>"
+"\n"
 "Language: sk\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -3721,21 +3721,20 @@
 
 #. translators: an annotation to a gpg keys expiry date
 #: zypp/PublicKey.cc:60
-#, fuzzy
 msgid "does not expire"
-msgstr "(nevyprší)"
+msgstr "nevyprší"
 
 #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12"
 #: zypp/PublicKey.cc:65
 #, boost-format
 msgid "expired: %1%"
-msgstr ""
+msgstr "vypršal: %1%"
 
 #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12"
 #: zypp/PublicKey.cc:70
 #, boost-format
 msgid "expires: %1%"
-msgstr ""
+msgstr "vyprší: %1%"
 
 #. translators: an annotation to a gpg keys expiry date
 #: zypp/PublicKey.cc:79
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-16.17.1/po/uk.po new/libzypp-16.17.3/po/uk.po
--- old/libzypp-16.17.1/po/uk.po        2017-09-07 12:31:10.000000000 +0200
+++ new/libzypp-16.17.3/po/uk.po        2017-10-10 12:48:09.000000000 +0200
@@ -14,17 +14,17 @@
 "Project-Id-Version: zypp.uk\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2017-09-07 12:25+0200\n"
-"PO-Revision-Date: 2016-11-26 10:57+0000\n"
+"PO-Revision-Date: 2017-09-30 05:38+0000\n"
 "Last-Translator: Andriy Bandura <[email protected]>\n"
-"Language-Team: Ukrainian <https://l10n.opensuse.org/projects/libzypp/master/";
-"uk/>\n"
+"Language-Team: Ukrainian "
+"<https://l10n.opensuse.org/projects/libzypp/master/uk/>\n"
 "Language: uk\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-"X-Generator: Weblate 2.6\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<="
+"4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 2.13.1\n"
 
 #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55
 #: zypp/target/hal/HalException.h:64
@@ -3913,7 +3913,6 @@
 
 #. translators: an annotation to a gpg keys expiry date
 #: zypp/PublicKey.cc:60
-#, fuzzy
 msgid "does not expire"
 msgstr "(не минає)"
 
@@ -3921,13 +3920,13 @@
 #: zypp/PublicKey.cc:65
 #, boost-format
 msgid "expired: %1%"
-msgstr ""
+msgstr "минув: %1%"
 
 #. translators: an annotation to a gpg keys expiry date: "expires: 2111-04-12"
 #: zypp/PublicKey.cc:70
 #, boost-format
 msgid "expires: %1%"
-msgstr ""
+msgstr "минає: %1%"
 
 #. translators: an annotation to a gpg keys expiry date
 #: zypp/PublicKey.cc:79
@@ -4893,7 +4892,7 @@
 
 #: zypp/target/rpm/RpmDb.cc:1568
 msgid "Package is not signed!"
-msgstr ""
+msgstr "Пакунок не підписаний!"
 
 #. Translator: %s = name of an rpm package. A list of diffs follows
 #. this message.
@@ -4978,7 +4977,7 @@
 #. translators: possible rpm package signature check result [brief]
 #: zypp/target/rpm/RpmDb.cc:2397
 msgid "File is unsigned"
-msgstr ""
+msgstr "Файл не підписаний"
 
 #: zypp/thread/Mutex.cc:33
 msgid "Can't initialize mutex attributes"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-16.17.1/zypp/OnMediaLocation.h 
new/libzypp-16.17.3/zypp/OnMediaLocation.h
--- old/libzypp-16.17.1/zypp/OnMediaLocation.h  2016-11-29 11:31:52.000000000 
+0100
+++ new/libzypp-16.17.3/zypp/OnMediaLocation.h  2017-10-11 16:31:06.000000000 
+0200
@@ -149,6 +149,10 @@
     OnMediaLocation & changeFilename( const Pathname & val_r )
     { _filename = val_r; return *this; }
 
+    /** Prepend the filename with \a prefix_r */
+    OnMediaLocation & prependPath( const Pathname & prefix_r )
+    { if ( !prefix_r.emptyOrRoot() ) changeFilename( prefix_r / filename() ); 
return *this; }
+
   private:
     unsigned  _medianr;
     Pathname  _filename;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-16.17.1/zypp/Package.cc 
new/libzypp-16.17.3/zypp/Package.cc
--- old/libzypp-16.17.1/zypp/Package.cc 2017-05-11 17:57:02.000000000 +0200
+++ new/libzypp-16.17.3/zypp/Package.cc 2017-10-12 18:16:06.000000000 +0200
@@ -36,7 +36,7 @@
   // here and from SrcPackage.cc
   Pathname cachedLocation( const OnMediaLocation & loc_r, const RepoInfo & 
repo_r )
   {
-    PathInfo pi( repo_r.packagesPath() / loc_r.filename() );
+    PathInfo pi( repo_r.packagesPath() / repo_r.path() / loc_r.filename() );
 
     if ( ! pi.isExist() )
       return Pathname();       // no file in cache
@@ -48,7 +48,7 @@
        return Pathname();      // same name but no checksum to verify
 
       // for local repos compare with the checksum in repo
-      if ( CheckSum( CheckSum::md5Type(), std::ifstream( (url.getPathName() / 
loc_r.filename()).c_str() ) )
+      if ( CheckSum( CheckSum::md5Type(), std::ifstream( (url.getPathName() / 
repo_r.path() / loc_r.filename()).c_str() ) )
        != CheckSum( CheckSum::md5Type(), std::ifstream( pi.c_str() ) ) )
        return Pathname();      // same name but wrong checksum
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-16.17.1/zypp/Pathname.h 
new/libzypp-16.17.3/zypp/Pathname.h
--- old/libzypp-16.17.1/zypp/Pathname.h 2016-11-29 11:31:52.000000000 +0100
+++ new/libzypp-16.17.3/zypp/Pathname.h 2017-10-11 16:31:06.000000000 +0200
@@ -116,6 +116,9 @@
       /** Test for a relative path. */
       bool relative() const { return !( absolute() || empty() ); }
 
+      /** Test for "" or "/". */
+      bool emptyOrRoot() const { return( _name.empty() || _name == "/" ); }
+
       /** Return all but the last component od this path. */
       Pathname dirname() const { return dirname( *this ); }
       static Pathname dirname( const Pathname & name_r );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-16.17.1/zypp/Url.cc 
new/libzypp-16.17.3/zypp/Url.cc
--- old/libzypp-16.17.1/zypp/Url.cc     2016-11-29 11:31:52.000000000 +0100
+++ new/libzypp-16.17.3/zypp/Url.cc     2017-10-11 16:31:06.000000000 +0200
@@ -776,6 +776,11 @@
   }
 
   // -----------------------------------------------------------------
+
+  void Url::appendPathName( const Pathname & path_r, EEncoding eflag_r )
+  { if ( ! path_r.emptyOrRoot() ) setPathName( Pathname(getPathName( eflag_r 
)) / path_r, eflag_r ); }
+
+  // -----------------------------------------------------------------
   void
   Url::setPathParams(const std::string &params)
   {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-16.17.1/zypp/Url.h 
new/libzypp-16.17.3/zypp/Url.h
--- old/libzypp-16.17.1/zypp/Url.h      2016-11-29 11:31:52.000000000 +0100
+++ new/libzypp-16.17.3/zypp/Url.h      2017-10-11 16:31:06.000000000 +0200
@@ -688,6 +688,11 @@
                 EEncoding         eflag = zypp::url::E_DECODED);
 
     /**
+     * \brief Extend the path name.
+     */
+    void appendPathName( const Pathname & path_r, EEncoding eflag_r = 
zypp::url::E_DECODED );
+
+    /**
      * \brief Set the path parameters.
      * \param params The new encoded path parameter string.
      * \throws url::UrlBadComponentException if the path \p params
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-16.17.1/zypp/repo/PackageProvider.cc 
new/libzypp-16.17.3/zypp/repo/PackageProvider.cc
--- old/libzypp-16.17.1/zypp/repo/PackageProvider.cc    2017-07-21 
13:31:07.000000000 +0200
+++ new/libzypp-16.17.3/zypp/repo/PackageProvider.cc    2017-10-12 
18:16:06.000000000 +0200
@@ -269,11 +269,11 @@
          const OnMediaLocation & loc( _package->location() );
          if ( ! loc.checksum().empty() )       // no cache hit without checksum
          {
-           PathInfo pi( topCache.repoPackagesCachePath / 
info.packagesPath().basename() / loc.filename() );
+           PathInfo pi( topCache.repoPackagesCachePath / 
info.packagesPath().basename() / info.path() / loc.filename() );
            if ( pi.isExist() && loc.checksum() == CheckSum( 
loc.checksum().type(), std::ifstream( pi.c_str() ) ) )
            {
              report()->start( _package, pi.path().asFileUrl() );
-             const Pathname & dest( info.packagesPath() / loc.filename() );
+             const Pathname & dest( info.packagesPath() / info.path() / 
loc.filename() );
              if ( filesystem::assert_dir( dest.dirname() ) == 0 && 
filesystem::hardlinkCopy( pi.path(), dest ) == 0 )
              {
                ret = ManagedFile( dest );
@@ -551,7 +551,7 @@
         }
 
       // build the package and put it into the cache
-      Pathname destination( _package->repoInfo().packagesPath() / 
_package->location().filename() );
+      Pathname destination( _package->repoInfo().packagesPath() / 
_package->repoInfo().path() / _package->location().filename() );
 
       if ( ! applydeltarpm::provide( delta, destination,
                                      bind( 
&RpmPackageProvider::progressDeltaApply, this, _1 ) ) )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-16.17.1/zypp/repo/RepoProvideFile.cc 
new/libzypp-16.17.3/zypp/repo/RepoProvideFile.cc
--- old/libzypp-16.17.1/zypp/repo/RepoProvideFile.cc    2016-12-14 
12:26:08.000000000 +0100
+++ new/libzypp-16.17.3/zypp/repo/RepoProvideFile.cc    2017-10-12 
18:16:06.000000000 +0200
@@ -246,10 +246,12 @@
     { return _impl->_defaultPolicy; }
 
     ManagedFile RepoMediaAccess::provideFile( RepoInfo repo_r,
-                                              const OnMediaLocation & loc_r,
+                                              const OnMediaLocation & loc_rx,
                                               const ProvideFilePolicy & 
policy_r )
     {
-      MIL << loc_r << endl;
+      const OnMediaLocation locWithPath( OnMediaLocation(loc_rx).prependPath( 
repo_r.path() ) );
+
+      MIL << locWithPath << endl;
       // Arrange DownloadFileReportHack to recieve the 
source::DownloadFileReport
       // and redirect download progress triggers to call the ProvideFilePolicy
       // callback.
@@ -257,7 +259,7 @@
 
       RepoException repo_excpt(repo_r,
                               str::form(_("Can't provide file '%s' from 
repository '%s'"),
-                               loc_r.filename().c_str(),
+                               locWithPath.filename().c_str(),
                                repo_r.alias().c_str() ) );
 
       if ( repo_r.baseUrlsEmpty() )
@@ -305,11 +307,11 @@
           MIL << "Providing file of repo '" << repo_r.alias() << "' from " << 
url << endl;
           shared_ptr<MediaSetAccess> access = _impl->mediaAccessForUrl( url, 
repo_r );
 
-         fetcher.enqueue( loc_r );
+         fetcher.enqueue( locWithPath );
          fetcher.start( destinationDir, *access );
 
          // reached if no exception has been thrown, so this is the correct 
file
-          ManagedFile ret( destinationDir + loc_r.filename() );
+          ManagedFile ret( destinationDir + locWithPath.filename() );
           if ( !repo_r.keepPackages() )
           {
             ret.setDispose( filesystem::unlink );


Reply via email to