Hello community,

here is the log from the commit of package libzypp for openSUSE:Factory checked 
in at 2017-07-08 12:25:48
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libzypp (Old)
 and      /work/SRC/openSUSE:Factory/.libzypp.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libzypp"

Sat Jul  8 12:25:48 2017 rev:382 rq:507362 version:16.13.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/libzypp/libzypp.changes  2017-06-04 
01:49:32.467409417 +0200
+++ /work/SRC/openSUSE:Factory/.libzypp.new/libzypp.changes     2017-07-08 
12:25:49.894965719 +0200
@@ -1,0 +2,9 @@
+Fri Jun 30 14:25:29 CEST 2017 - [email protected]
+
+- Adapt loop mounting of iso images (bsc#1038132, bsc#1033236)
+- Adjust zypp.conf for openSUSE Tumbleweed (bsc#1031756)
+- Change arch variable names conflicting with compiler macros (fixes #70)
+- Fix potential crash if repo has no baseurl (bnc#1043218)
+- version 16.13.0 (0)
+
+-------------------------------------------------------------------

Old:
----
  libzypp-16.12.0.tar.bz2

New:
----
  libzypp-16.13.0.tar.bz2

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

Other differences:
------------------
++++++ libzypp.spec ++++++
--- /var/tmp/diff_new_pack.7RCz12/_old  2017-07-08 12:25:50.662857400 +0200
+++ /var/tmp/diff_new_pack.7RCz12/_new  2017-07-08 12:25:50.662857400 +0200
@@ -19,7 +19,7 @@
 %define force_gcc_46 0
 
 Name:           libzypp
-Version:        16.12.0
+Version:        16.13.0
 Release:        0
 Url:            git://gitorious.org/opensuse/libzypp.git
 Summary:        Package, Patch, Pattern, and Product Management
@@ -247,6 +247,11 @@
 mkdir -p $RPM_BUILD_ROOT%{_var}/log/zypp
 mkdir -p $RPM_BUILD_ROOT%{_var}/cache/zypp
 
+%if "%{distribution}" == "openSUSE Tumbleweed"
+# Adjust zypp.conf for openSUSE Tumbleweed - minor modifications over the 
'usual' defaults - boo#1031756
+sed -i "s|# solver.dupAllowVendorChange = true|solver.dupAllowVendorChange = 
false|g" %{buildroot}%{_sysconfdir}/zypp/zypp.conf
+%endif
+
 make -C po install DESTDIR=$RPM_BUILD_ROOT
 # Create filelist with translations
 cd ..

++++++ libzypp-16.12.0.tar.bz2 -> libzypp-16.13.0.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-16.12.0/VERSION.cmake 
new/libzypp-16.13.0/VERSION.cmake
--- old/libzypp-16.12.0/VERSION.cmake   2017-05-31 11:51:08.000000000 +0200
+++ new/libzypp-16.13.0/VERSION.cmake   2017-06-30 14:42:36.000000000 +0200
@@ -60,9 +60,9 @@
 #
 SET(LIBZYPP_MAJOR "16")
 SET(LIBZYPP_COMPATMINOR "0")
-SET(LIBZYPP_MINOR "12")
+SET(LIBZYPP_MINOR "13")
 SET(LIBZYPP_PATCH "0")
 #
-# LAST RELEASED: 16.12.0 (0)
+# LAST RELEASED: 16.13.0 (0)
 # (The number in parenthesis is LIBZYPP_COMPATMINOR)
 #=======
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-16.12.0/libzypp.spec.cmake 
new/libzypp-16.13.0/libzypp.spec.cmake
--- old/libzypp-16.12.0/libzypp.spec.cmake      2016-11-29 11:31:52.000000000 
+0100
+++ new/libzypp-16.13.0/libzypp.spec.cmake      2017-06-30 14:42:36.000000000 
+0200
@@ -247,6 +247,11 @@
 mkdir -p $RPM_BUILD_ROOT%{_var}/log/zypp
 mkdir -p $RPM_BUILD_ROOT%{_var}/cache/zypp
 
+%if "%{distribution}" == "openSUSE Tumbleweed"
+# Adjust zypp.conf for openSUSE Tumbleweed - minor modifications over the 
'usual' defaults - boo#1031756
+sed -i "s|# solver.dupAllowVendorChange = true|solver.dupAllowVendorChange = 
false|g" %{buildroot}%{_sysconfdir}/zypp/zypp.conf
+%endif
+
 make -C po install DESTDIR=$RPM_BUILD_ROOT
 # Create filelist with translations
 cd ..
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-16.12.0/package/libzypp.changes 
new/libzypp-16.13.0/package/libzypp.changes
--- old/libzypp-16.12.0/package/libzypp.changes 2017-05-31 11:51:08.000000000 
+0200
+++ new/libzypp-16.13.0/package/libzypp.changes 2017-06-30 14:42:36.000000000 
+0200
@@ -1,4 +1,13 @@
 -------------------------------------------------------------------
+Fri Jun 30 14:25:29 CEST 2017 - [email protected]
+
+- Adapt loop mounting of iso images (bsc#1038132, bsc#1033236)
+- Adjust zypp.conf for openSUSE Tumbleweed (bsc#1031756)
+- Change arch variable names conflicting with compiler macros (fixes #70)
+- Fix potential crash if repo has no baseurl (bnc#1043218)
+- version 16.13.0 (0)
+
+-------------------------------------------------------------------
 Wed May 31 11:49:07 CEST 2017 - [email protected]
 
 - Testcase: add missing solver flags (bsc#1041889)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-16.12.0/po/ca.po new/libzypp-16.13.0/po/ca.po
--- old/libzypp-16.12.0/po/ca.po        2016-11-29 11:31:52.000000000 +0100
+++ new/libzypp-16.13.0/po/ca.po        2017-06-01 20:01:13.000000000 +0200
@@ -9,7 +9,7 @@
 "Project-Id-Version: YaST (@memory@)\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2016-11-21 15:07+0100\n"
-"PO-Revision-Date: 2016-11-22 09:41+0000\n"
+"PO-Revision-Date: 2017-06-01 15:06+0000\n"
 "Last-Translator: David Medina <[email protected]>\n"
 "Language-Team: Catalan "
 "<https://l10n.opensuse.org/projects/libzypp/master/ca/>\n"
@@ -1838,7 +1838,7 @@
 #. :SGP:702:
 #: zypp/CountryCode.cc:355
 msgid "Saint Helena"
-msgstr "Saint Helena"
+msgstr "Santa Helena"
 
 # SI
 #. :SHN:654:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-16.12.0/po/da.po new/libzypp-16.13.0/po/da.po
--- old/libzypp-16.12.0/po/da.po        2016-11-29 11:31:52.000000000 +0100
+++ new/libzypp-16.13.0/po/da.po        2017-06-30 14:42:36.000000000 +0200
@@ -7,10 +7,10 @@
 "Project-Id-Version: libzypp\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2016-11-21 15:07+0100\n"
-"PO-Revision-Date: 2016-09-17 19:18+0000\n"
-"Last-Translator: Martin Schlander <[email protected]>\n"
-"Language-Team: Danish <https://l10n.opensuse.org/projects/libzypp/master/da/";
-">\n"
+"PO-Revision-Date: 2017-06-08 13:01+0000\n"
+"Last-Translator: scootergrisen <[email protected]>\n"
+"Language-Team: Danish <https://l10n.opensuse.org/projects/libzypp/master/da/>"
+"\n"
 "Language: da\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -25,7 +25,7 @@
 
 #: zypp/Url.cc:114
 msgid "Invalid LDAP URL query string"
-msgstr "Ugyldig LDAP URL-forespørgselsstreng."
+msgstr "Ugyldig LDAP URL-forespørgselsstreng"
 
 #: zypp/Url.cc:153
 #, c-format, boost-format
@@ -153,11 +153,11 @@
 
 #: zypp/target/hal/HalContext.cc:127
 msgid "HalDrive not initialized"
-msgstr "HalDrive er ikke initialiseret."
+msgstr "HalDrive er ikke initialiseret"
 
 #: zypp/target/hal/HalContext.cc:137
 msgid "HalVolume not initialized"
-msgstr "HalVolume er ikke initialiseret."
+msgstr "HalVolume er ikke initialiseret"
 
 #: zypp/target/hal/HalContext.cc:229
 msgid "Unable to create dbus connection"
@@ -251,7 +251,7 @@
 #. translators: possible rpm package signature check result [brief]
 #: zypp/target/rpm/RpmDb.cc:2365
 msgid "Signature is OK"
-msgstr "Signatur er o.k."
+msgstr "Signatur er OK"
 
 #. translators: possible rpm package signature check result [brief]
 #: zypp/target/rpm/RpmDb.cc:2367
@@ -266,7 +266,7 @@
 #. translators: possible rpm package signature check result [brief]
 #: zypp/target/rpm/RpmDb.cc:2371
 msgid "Signature is OK, but key is not trusted"
-msgstr "Signaturen er o.k., men nøglen er ikke betroet"
+msgstr "Signaturen er OK, men nøglen er ikke betroet"
 
 #. translators: possible rpm package signature check result [brief]
 #: zypp/target/rpm/RpmDb.cc:2373
@@ -356,7 +356,7 @@
 
 #: zypp/RepoManager.cc:1382
 msgid "Unhandled repository type"
-msgstr "Ikke-håndteret  softwarekilde-type"
+msgstr "Ikke-håndteret softwarekilde-type"
 
 #. prepare exception to be thrown if the type could not be determined
 #. due to a media exception. We can't throw right away, because of some
@@ -477,20 +477,20 @@
 
 #: zypp/url/UrlUtils.cc:173
 msgid "Invalid parameter array split separator character"
-msgstr "Ugyldigt skilletegn for parameter-array."
+msgstr "Ugyldigt skilletegn for parameter-array"
 
 #: zypp/url/UrlUtils.cc:213
 msgid "Invalid parameter map split separator character"
-msgstr "Ugyldigt skilletegn for parameter-map."
+msgstr "Ugyldigt skilletegn for parameter-map"
 
 #: zypp/url/UrlUtils.cc:283
 msgid "Invalid parameter array join separator character"
-msgstr "Ugyldigt skilletegn for parameter-array join."
+msgstr "Ugyldigt skilletegn for parameter-array join"
 
 #: zypp/ExternalProgram.cc:258
 #, c-format, boost-format
 msgid "Can't open pty (%s)."
-msgstr "Kunne ikke åbne pseudo-terminal: %s."
+msgstr "Kunne ikke åbne pty (%s)."
 
 #: zypp/ExternalProgram.cc:269
 #, c-format, boost-format
@@ -535,7 +535,7 @@
 
 #: zypp/ExternalProgram.cc:532
 msgid "Command exited with unknown error."
-msgstr "Kommando afsluttet med ukendt fejl"
+msgstr "Kommando afsluttet med ukendt fejl."
 
 #. translators: an annotation to a gpg keys expiry date
 #: zypp/PublicKey.cc:116
@@ -3495,7 +3495,7 @@
 #. language code: ota
 #: zypp/LanguageCode.cc:841
 msgid "Turkish, Ottoman (1500-1928)"
-msgstr "Tyrkisk, Osmannisk"
+msgstr "Tyrkisk, Osmannisk (1500-1928)"
 
 #. language code: oto
 #: zypp/LanguageCode.cc:843
@@ -4235,7 +4235,7 @@
 #: zypp/KeyRing.cc:575
 #, c-format, boost-format
 msgid "Signature file %s not found"
-msgstr "Signaturfilen %s blev ikke fundet."
+msgstr "Signaturfilen %s blev ikke fundet"
 
 #: zypp/repo/RepoProvideFile.cc:259
 #, c-format, boost-format
@@ -4248,7 +4248,7 @@
 
 #: zypp/repo/RepoException.cc:129
 msgid "Service plugin does not support changing an attribute."
-msgstr "tjeneste-plugin understøtter ikke ændring af en attribut."
+msgstr "Tjeneste-plugin understøtter ikke ændring af en attribut."
 
 #. TranslatorExplanation %s = package being checked for integrity
 #: zypp/repo/PackageProvider.cc:157
@@ -4394,7 +4394,7 @@
 #: zypp/solver/detail/SATResolver.cc:1141
 #, c-format, boost-format
 msgid "remove lock to allow removal of %s"
-msgstr "Fjern lås for at tillade fjernelse af %s"
+msgstr "fjern lås for at tillade fjernelse af %s"
 
 #: zypp/solver/detail/SATResolver.cc:1146
 #: zypp/solver/detail/SATResolver.cc:1182
@@ -4421,7 +4421,7 @@
 #: zypp/solver/detail/SATResolver.cc:1218
 #: zypp/solver/detail/SATResolver.cc:1239
 msgid "ignore the warning of a broken system"
-msgstr "Ignorér advarslen om et ødelagt system"
+msgstr "ignorér advarslen om et ødelagt system"
 
 #: zypp/solver/detail/SATResolver.cc:1223
 #, c-format, boost-format
@@ -4446,7 +4446,7 @@
 #: zypp/solver/detail/SATResolver.cc:1284
 #, c-format, boost-format
 msgid "install %s despite the inferior architecture"
-msgstr "Installér %s på trods af laverestående arkitektur"
+msgstr "installér %s på trods af laverestående arkitektur"
 
 #: zypp/solver/detail/SATResolver.cc:1293
 #, c-format, boost-format
@@ -4550,6 +4550,8 @@
 "Create attach point: Can't find a writable directory to create an attach "
 "point"
 msgstr ""
+"Opret tilknytningspunkt: Kan ikke finde en skrivbar mappe til oprettelse af "
+"et tilknytningspunkt"
 
 #. !\todo add comma to the message for the next release
 #: zypp/media/MediaCIFS.cc:427 zypp/media/MediaCurl.cc:1687
@@ -4560,7 +4562,7 @@
 #: zypp/media/MediaException.cc:31
 #, c-format, boost-format
 msgid "Failed to mount %s on %s"
-msgstr "Montering af %s fejlede på %s."
+msgstr "Montering af %s fejlede på %s"
 
 #: zypp/media/MediaException.cc:41
 #, c-format, boost-format
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-16.12.0/po/lt.po new/libzypp-16.13.0/po/lt.po
--- old/libzypp-16.12.0/po/lt.po        2016-11-29 11:31:52.000000000 +0100
+++ new/libzypp-16.13.0/po/lt.po        2017-06-02 23:06:09.000000000 +0200
@@ -12,16 +12,17 @@
 "Project-Id-Version: zypp\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2016-11-21 15:07+0100\n"
-"PO-Revision-Date: 2016-01-11 10:57+0200\n"
+"PO-Revision-Date: 2017-06-02 18:02+0000\n"
 "Last-Translator: Mindaugas Baranauskas <[email protected]>\n"
-"Language-Team: lt <[email protected]>\n"
+"Language-Team: Lithuanian "
+"<https://l10n.opensuse.org/projects/libzypp/master/lt/>\n"
 "Language: lt\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : n%10==1 && n%100!=11 ? 1 : n"
-"%10>=2 && (n%100<10 || n%100>=20) ? 2 : 3);\n"
-"X-Generator: Lokalize 1.5\n"
+"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : n%10>=2 && (n%100<10 || "
+"n%100>=20) ? 1 : n%10==0 || (n%100>10 && n%100<20) ? 2 : 3);\n"
+"X-Generator: Weblate 2.6\n"
 
 #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55
 #: zypp/target/hal/HalException.h:64
@@ -260,7 +261,7 @@
 #. translators: possible rpm package signature check result [brief]
 #: zypp/target/rpm/RpmDb.cc:2367
 msgid "Unknown type of signature"
-msgstr ""
+msgstr "Nežinomo tipo parašas"
 
 #. translators: possible rpm package signature check result [brief]
 #: zypp/target/rpm/RpmDb.cc:2369
@@ -325,6 +326,7 @@
 #, boost-format
 msgid "Unknown service '%1%': Removing orphaned service repository '%2%'"
 msgstr ""
+"Nežinoma paslauga „%1%“: pašalinama nebereikalinga paslaugų saugykla „%2%“"
 
 #. we will throw this later if no URL checks out fine
 #: zypp/RepoManager.cc:1084
@@ -352,7 +354,7 @@
 #: zypp/RepoManager.cc:1307
 #, c-format, boost-format
 msgid "Can't create cache at %s - no writing permissions."
-msgstr ""
+msgstr "Nepavyksta sukurti podėlio ties %s - nepakanka teisių."
 
 #: zypp/RepoManager.cc:1371
 #, c-format, boost-format
@@ -4348,7 +4350,7 @@
 
 #: zypp/repo/RepoException.cc:129
 msgid "Service plugin does not support changing an attribute."
-msgstr ""
+msgstr "Paslaugos papildinys nepalaiko atributų keitimo."
 
 #. TranslatorExplanation %s = package being checked for integrity
 #: zypp/repo/PackageProvider.cc:157
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-16.12.0/zypp/Arch.cc 
new/libzypp-16.13.0/zypp/Arch.cc
--- old/libzypp-16.12.0/zypp/Arch.cc    2017-04-19 13:46:08.000000000 +0200
+++ new/libzypp-16.13.0/zypp/Arch.cc    2017-06-30 14:42:36.000000000 +0200
@@ -150,8 +150,8 @@
   //       bit for each architecture.
   //
   #define DEF_BUILTIN(A) \
-  namespace { static inline const IdString & _##A () { static IdString 
__str(#A); return __str; } } \
-  const Arch Arch_##A( _##A() )
+  namespace { static inline const IdString & a_##A () { static IdString 
_str(#A); return _str; } } \
+  const Arch Arch_##A( a_##A() )
 
   DEF_BUILTIN( noarch );
 
@@ -293,81 +293,81 @@
         // _noarch must have _idBit 0.
         // Other builtins have 1-bit set
         // and are initialized done on the fly.
-        _compatSet.insert( Arch::CompatEntry( _noarch(), 0 ) );
+        _compatSet.insert( Arch::CompatEntry( a_noarch(), 0 ) );
         ///////////////////////////////////////////////////////////////////
         // Define the CompatibleWith relation:
         //
         // NOTE: Order of definition is significant! (Arch::compare)
        //       - define compatible (less) architectures first!
         //
-        defCompatibleWith( _i386(),            _noarch() );
-        defCompatibleWith( _i486(),            _noarch(),_i386() );
-        defCompatibleWith( _i586(),            _noarch(),_i386(),_i486() );
-        defCompatibleWith( _i686(),            
_noarch(),_i386(),_i486(),_i586() );
-        defCompatibleWith( _athlon(),          
_noarch(),_i386(),_i486(),_i586(),_i686() );
-        defCompatibleWith( _x86_64(),          
_noarch(),_i386(),_i486(),_i586(),_i686(),_athlon() );
-
-        defCompatibleWith( _pentium3(),                
_noarch(),_i386(),_i486(),_i586(),_i686() );
-        defCompatibleWith( _pentium4(),                
_noarch(),_i386(),_i486(),_i586(),_i686(),_pentium3() );
-
-        defCompatibleWith( _ia64(),            
_noarch(),_i386(),_i486(),_i586(),_i686() );
-        //
-        defCompatibleWith( _s390(),            _noarch() );
-        defCompatibleWith( _s390x(),           _noarch(),_s390() );
-        //
-        defCompatibleWith( _ppc(),             _noarch() );
-        defCompatibleWith( _ppc64(),           _noarch(),_ppc() );
-        defCompatibleWith( _ppc64p7(),         _noarch(),_ppc(),_ppc64() );
-        //
-        defCompatibleWith( _ppc64le(),         _noarch() );
-        //
-        defCompatibleWith( _alpha(),           _noarch() );
-        defCompatibleWith( _alphaev5(),                _noarch(),_alpha() );
-        defCompatibleWith( _alphaev56(),       _noarch(),_alpha(),_alphaev5() 
);
-        defCompatibleWith( _alphapca56(),      
_noarch(),_alpha(),_alphaev5(),_alphaev56() );
-        defCompatibleWith( _alphaev6(),                
_noarch(),_alpha(),_alphaev5(),_alphaev56(),_alphapca56() );
-        defCompatibleWith( _alphaev67(),       
_noarch(),_alpha(),_alphaev5(),_alphaev56(),_alphapca56(),_alphaev6() );
-        //
-        defCompatibleWith( _sparc(),           _noarch() );
-        defCompatibleWith( _sparcv8(),         _noarch(),_sparc() );
-        defCompatibleWith( _sparcv9(),         _noarch(),_sparc(),_sparcv8() );
-       defCompatibleWith( _sparcv9v(),         
_noarch(),_sparc(),_sparcv8(),_sparcv9() );
+        defCompatibleWith( a_i386(),           a_noarch() );
+        defCompatibleWith( a_i486(),           a_noarch(),a_i386() );
+        defCompatibleWith( a_i586(),           a_noarch(),a_i386(),a_i486() );
+        defCompatibleWith( a_i686(),           
a_noarch(),a_i386(),a_i486(),a_i586() );
+        defCompatibleWith( a_athlon(),         
a_noarch(),a_i386(),a_i486(),a_i586(),a_i686() );
+        defCompatibleWith( a_x86_64(),         
a_noarch(),a_i386(),a_i486(),a_i586(),a_i686(),a_athlon() );
+
+        defCompatibleWith( a_pentium3(),       
a_noarch(),a_i386(),a_i486(),a_i586(),a_i686() );
+        defCompatibleWith( a_pentium4(),       
a_noarch(),a_i386(),a_i486(),a_i586(),a_i686(),a_pentium3() );
+
+        defCompatibleWith( a_ia64(),           
a_noarch(),a_i386(),a_i486(),a_i586(),a_i686() );
+        //
+        defCompatibleWith( a_s390(),           a_noarch() );
+        defCompatibleWith( a_s390x(),          a_noarch(),a_s390() );
+        //
+        defCompatibleWith( a_ppc(),            a_noarch() );
+        defCompatibleWith( a_ppc64(),          a_noarch(),a_ppc() );
+        defCompatibleWith( a_ppc64p7(),                
a_noarch(),a_ppc(),a_ppc64() );
+        //
+        defCompatibleWith( a_ppc64le(),                a_noarch() );
+        //
+        defCompatibleWith( a_alpha(),          a_noarch() );
+        defCompatibleWith( a_alphaev5(),       a_noarch(),a_alpha() );
+        defCompatibleWith( a_alphaev56(),      
a_noarch(),a_alpha(),a_alphaev5() );
+        defCompatibleWith( a_alphapca56(),     
a_noarch(),a_alpha(),a_alphaev5(),a_alphaev56() );
+        defCompatibleWith( a_alphaev6(),       
a_noarch(),a_alpha(),a_alphaev5(),a_alphaev56(),a_alphapca56() );
+        defCompatibleWith( a_alphaev67(),      
a_noarch(),a_alpha(),a_alphaev5(),a_alphaev56(),a_alphapca56(),a_alphaev6() );
+        //
+        defCompatibleWith( a_sparc(),          a_noarch() );
+        defCompatibleWith( a_sparcv8(),                a_noarch(),a_sparc() );
+        defCompatibleWith( a_sparcv9(),                
a_noarch(),a_sparc(),a_sparcv8() );
+       defCompatibleWith( a_sparcv9v(),        
a_noarch(),a_sparc(),a_sparcv8(),a_sparcv9() );
        //
-        defCompatibleWith( _sparc64(),         
_noarch(),_sparc(),_sparcv8(),_sparcv9() );
-       defCompatibleWith( _sparc64v(),         
_noarch(),_sparc(),_sparcv8(),_sparcv9(),_sparcv9v(),_sparc64() );
+        defCompatibleWith( a_sparc64(),                
a_noarch(),a_sparc(),a_sparcv8(),a_sparcv9() );
+       defCompatibleWith( a_sparc64v(),        
a_noarch(),a_sparc(),a_sparcv8(),a_sparcv9(),a_sparcv9v(),a_sparc64() );
         //
-        defCompatibleWith( _armv3l(),          _noarch() );
-        defCompatibleWith( _armv4l(),          _noarch(),_armv3l() );
-        defCompatibleWith( _armv4tl(),         _noarch(),_armv3l(),_armv4l() );
-        defCompatibleWith( _armv5l(),          
_noarch(),_armv3l(),_armv4l(),_armv4tl() );
-        defCompatibleWith( _armv5tl(),         
_noarch(),_armv3l(),_armv4l(),_armv4tl(),_armv5l() );
-        defCompatibleWith( _armv5tel(),                
_noarch(),_armv3l(),_armv4l(),_armv4tl(),_armv5l(),_armv5tl() );
-        defCompatibleWith( _armv5tejl(),       
_noarch(),_armv3l(),_armv4l(),_armv4tl(),_armv5l(),_armv5tl(),_armv5tel() );
-        defCompatibleWith( _armv6l(),          
_noarch(),_armv3l(),_armv4l(),_armv4tl(),_armv5l(),_armv5tl(),_armv5tel(),_armv5tejl()
 );
-        defCompatibleWith( _armv7l(),          
_noarch(),_armv3l(),_armv4l(),_armv4tl(),_armv5l(),_armv5tl(),_armv5tel(),_armv5tejl(),_armv6l()
 );
-
-        defCompatibleWith( _armv6hl(),         _noarch() );
-        defCompatibleWith( _armv7hl(),         _noarch(),_armv6hl() );
-        defCompatibleWith( _armv7hnl(),                
_noarch(),_armv7hl(),_armv6hl() );
+        defCompatibleWith( a_armv3l(),         a_noarch() );
+        defCompatibleWith( a_armv4l(),         a_noarch(),a_armv3l() );
+        defCompatibleWith( a_armv4tl(),                
a_noarch(),a_armv3l(),a_armv4l() );
+        defCompatibleWith( a_armv5l(),         
a_noarch(),a_armv3l(),a_armv4l(),a_armv4tl() );
+        defCompatibleWith( a_armv5tl(),                
a_noarch(),a_armv3l(),a_armv4l(),a_armv4tl(),a_armv5l() );
+        defCompatibleWith( a_armv5tel(),       
a_noarch(),a_armv3l(),a_armv4l(),a_armv4tl(),a_armv5l(),a_armv5tl() );
+        defCompatibleWith( a_armv5tejl(),      
a_noarch(),a_armv3l(),a_armv4l(),a_armv4tl(),a_armv5l(),a_armv5tl(),a_armv5tel()
 );
+        defCompatibleWith( a_armv6l(),         
a_noarch(),a_armv3l(),a_armv4l(),a_armv4tl(),a_armv5l(),a_armv5tl(),a_armv5tel(),a_armv5tejl()
 );
+        defCompatibleWith( a_armv7l(),         
a_noarch(),a_armv3l(),a_armv4l(),a_armv4tl(),a_armv5l(),a_armv5tl(),a_armv5tel(),a_armv5tejl(),a_armv6l()
 );
+
+        defCompatibleWith( a_armv6hl(),                a_noarch() );
+        defCompatibleWith( a_armv7hl(),                a_noarch(),a_armv6hl() 
);
+        defCompatibleWith( a_armv7hnl(),       
a_noarch(),a_armv7hl(),a_armv6hl() );
        /*legacy: rpm uses v7hnl */
-       defCompatibleWith( _armv7nhl(),         
_noarch(),_armv7hnl(),_armv7hl(),_armv6hl() );
+       defCompatibleWith( a_armv7nhl(),        
a_noarch(),a_armv7hnl(),a_armv7hl(),a_armv6hl() );
 
-       /*?*/defCompatibleWith( _armv7thl(),    _noarch(),_armv7hl() );
-        /*?*/defCompatibleWith( _armv7tnhl(),  
_noarch(),_armv7hl(),_armv7nhl(),_armv7thl() );
+       /*?*/defCompatibleWith( a_armv7thl(),   a_noarch(),a_armv7hl() );
+        /*?*/defCompatibleWith( a_armv7tnhl(), 
a_noarch(),a_armv7hl(),a_armv7nhl(),a_armv7thl() );
 
-        defCompatibleWith( _aarch64(),         _noarch() );
+        defCompatibleWith( a_aarch64(),                a_noarch() );
         //
-        defCompatibleWith( _sh3(),             _noarch() );
+        defCompatibleWith( a_sh3(),            a_noarch() );
         //
-        defCompatibleWith( _sh4(),             _noarch() );
-        defCompatibleWith( _sh4a(),            _noarch(),_sh4() );
+        defCompatibleWith( a_sh4(),            a_noarch() );
+        defCompatibleWith( a_sh4a(),           a_noarch(),a_sh4() );
 
-        defCompatibleWith( _m68k(),            _noarch() );
+        defCompatibleWith( a_m68k(),           a_noarch() );
 
-       defCompatibleWith( _mips(),             _noarch() );
-       defCompatibleWith( _mipsel(),           _noarch() );
-       defCompatibleWith( _mips64(),           _noarch() );
-       defCompatibleWith( _mips64el(),         _noarch() );
+       defCompatibleWith( a_mips(),            a_noarch() );
+       defCompatibleWith( a_mipsel(),          a_noarch() );
+       defCompatibleWith( a_mips64(),          a_noarch() );
+       defCompatibleWith( a_mips64el(),        a_noarch() );
         //
         ///////////////////////////////////////////////////////////////////
         // dumpOn( USR ) << endl;
@@ -442,7 +442,7 @@
   //   METHOD TYPE : Ctor
   //
   Arch::Arch()
-  : _entry( &ArchCompatSet::instance().assertDef( _noarch() ) )
+  : _entry( &ArchCompatSet::instance().assertDef( a_noarch() ) )
   {}
 
   Arch::Arch( IdString::IdType id_r )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-16.12.0/zypp/HistoryLog.cc 
new/libzypp-16.13.0/zypp/HistoryLog.cc
--- old/libzypp-16.12.0/zypp/HistoryLog.cc      2016-11-29 11:31:52.000000000 
+0100
+++ new/libzypp-16.13.0/zypp/HistoryLog.cc      2017-06-30 14:42:36.000000000 
+0200
@@ -292,7 +292,7 @@
       << timestamp()                                                   // 1 
timestamp
       << _sep << HistoryActionID::REPO_ADD.asString(true)              // 2 
action
       << _sep << str::escape(repo.alias(), _sep)                       // 3 
alias
-      << _sep << *repo.baseUrlsBegin()                                 // 4 
primary URL
+      << _sep << str::escape(repo.url().asString(), _sep)              // 4 
primary URL
       << _sep << str::escape(ZConfig::instance().userData(), _sep)     // 5 
userdata
       << endl;
   }
@@ -322,13 +322,13 @@
         << _sep << str::escape(ZConfig::instance().userData(), _sep)   // 5 
userdata
         << endl;
     }
-    if (*oldrepo.baseUrlsBegin() != *newrepo.baseUrlsBegin())
+    if ( oldrepo.url() != newrepo.url() )
     {
       _log
         << timestamp()                                                 // 1 
timestamp
         << _sep << HistoryActionID::REPO_CHANGE_URL.asString(true)     // 2 
action
-        << _sep << str::escape(oldrepo.alias(), _sep)                  // 3 
old url
-        << _sep << *newrepo.baseUrlsBegin()                            // 4 
new url
+        << _sep << str::escape(oldrepo.url().asString(), _sep)         // 3 
old url
+        << _sep << str::escape(newrepo.url().asString(), _sep)         // 4 
new url
         << _sep << str::escape(ZConfig::instance().userData(), _sep)   // 5 
userdata
         << endl;
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-16.12.0/zypp/RepoManager.cc 
new/libzypp-16.13.0/zypp/RepoManager.cc
--- old/libzypp-16.12.0/zypp/RepoManager.cc     2017-04-21 09:11:08.000000000 
+0200
+++ new/libzypp-16.13.0/zypp/RepoManager.cc     2017-06-30 14:42:36.000000000 
+0200
@@ -1345,7 +1345,7 @@
 
         if ( repokind == RepoType::RPMPLAINDIR )
         {
-          forPlainDirs.reset( new MediaMounter( *info.baseUrlsBegin() ) );
+          forPlainDirs.reset( new MediaMounter( info.url() ) );
           // recusive for plaindir as 2nd arg!
           cmd.push_back( "-R" );
           // FIXME this does only work form dir: URLs
@@ -1621,16 +1621,13 @@
     if ( _options.probe )
     {
       DBG << "unknown repository type, probing" << endl;
+      assert_urls(tosave);
 
-      RepoType probedtype;
-      probedtype = probe( *tosave.baseUrlsBegin(), info.path() );
-      if ( tosave.baseUrlsSize() > 0 )
-      {
-        if ( probedtype == RepoType::NONE )
-          ZYPP_THROW(RepoUnknownTypeException(info));
-        else
-          tosave.setType(probedtype);
-      }
+      RepoType probedtype( probe( tosave.url(), info.path() ) );
+      if ( probedtype == RepoType::NONE )
+       ZYPP_THROW(RepoUnknownTypeException(info));
+      else
+       tosave.setType(probedtype);
     }
 
     progress.set(50);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-16.12.0/zypp/media/MediaException.cc 
new/libzypp-16.13.0/zypp/media/MediaException.cc
--- old/libzypp-16.12.0/zypp/media/MediaException.cc    2016-11-29 
11:31:52.000000000 +0100
+++ new/libzypp-16.13.0/zypp/media/MediaException.cc    2017-06-30 
14:42:36.000000000 +0200
@@ -226,14 +226,6 @@
       return str;
     }
 
-    std::ostream & MediaNoLoopDeviceException::dumpOn( std::ostream & str ) 
const
-    {
-      str << form(_("Cannot find available loop device to mount the image file 
from '%s'"), _url.c_str()) << endl;
-      if ( !_msg.empty() )
-        str << endl << _msg << endl;
-      return str;
-    }
-
   /////////////////////////////////////////////////////////////////
   } // namespace media
 } // namespace zypp
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-16.12.0/zypp/media/MediaException.h 
new/libzypp-16.13.0/zypp/media/MediaException.h
--- old/libzypp-16.12.0/zypp/media/MediaException.h     2016-11-29 
11:31:52.000000000 +0100
+++ new/libzypp-16.13.0/zypp/media/MediaException.h     2017-06-30 
14:42:36.000000000 +0200
@@ -515,28 +515,6 @@
       std::string _msg;
     };
 
-    /**
-     * Thrown if /sbin/losetup fails to find an unused loop device for mounting
-     * an .iso image.
-     *
-     * UI hint: tell user to check permissions to read /dev/loop# or enablement
-     * of support for loop devices.
-     *
-     * \see MediaISO
-     */
-    class MediaNoLoopDeviceException : public MediaException
-    {
-    public:
-      MediaNoLoopDeviceException(const Url & url_r, const std::string & msg = 
"")
-        : MediaException(msg)
-        , _url(url_r.asString()), _msg(msg)
-      {}
-      virtual ~MediaNoLoopDeviceException() throw() {};
-    protected:
-      virtual std::ostream & dumpOn( std::ostream & str ) const;
-      std::string _url;
-      std::string _msg;
-    };
   /////////////////////////////////////////////////////////////////
   } // namespace media
 } // namespace zypp
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-16.12.0/zypp/media/MediaHandler.cc 
new/libzypp-16.13.0/zypp/media/MediaHandler.cc
--- old/libzypp-16.12.0/zypp/media/MediaHandler.cc      2016-11-29 
11:31:52.000000000 +0100
+++ new/libzypp-16.13.0/zypp/media/MediaHandler.cc      2017-06-30 
14:42:36.000000000 +0200
@@ -610,6 +610,21 @@
          }
           // differs
         }
+        else // mixed cases:
+       {
+         // Type ISO: Since 11.1 mtab might contain the name of
+         // the loop device instead of the iso file:
+         if ( ref.mediaSource->type == "iso"
+           && str::hasPrefix( Pathname(e->src).asString(), "/dev/loop" )
+           && ref.attachPoint->path == Pathname(e->dir) )
+         {
+           DBG << "Found bound media "
+           << ref.mediaSource->asString()
+           << " in the mount table as " << e->src << std::endl;
+           _isAttached = true;
+           break;
+         }
+       }
       }
 
       if( !_isAttached)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-16.12.0/zypp/media/MediaISO.cc 
new/libzypp-16.13.0/zypp/media/MediaISO.cc
--- old/libzypp-16.12.0/zypp/media/MediaISO.cc  2016-11-29 11:31:52.000000000 
+0100
+++ new/libzypp-16.13.0/zypp/media/MediaISO.cc  2017-06-30 14:42:36.000000000 
+0200
@@ -16,10 +16,6 @@
 
 #include "zypp/media/MediaISO.h"
 
-
-#define LOSETUP_TOOL_PATH "/sbin/losetup"
-
-using std::string;
 using std::endl;
 
 //////////////////////////////////////////////////////////////////////
@@ -149,32 +145,6 @@
     }
 
     // ---------------------------------------------------------------
-    string MediaISO::findUnusedLoopDevice()
-    {
-      const char* argv[] =
-      {
-        LOSETUP_TOOL_PATH,
-        "-f",
-        NULL
-      };
-      ExternalProgram losetup(argv, ExternalProgram::Stderr_To_Stdout);
-
-      string out = losetup.receiveLine();
-      string device = out.substr(0, out.size() - 1); // remove the trailing 
endl
-      for(; out.length(); out = losetup.receiveLine())
-        DBG << "losetup: " << out;
-
-      if (losetup.close() != 0)
-      {
-        ERR << LOSETUP_TOOL_PATH " failed to find an unused loop device." << 
std::endl;
-        ZYPP_THROW(MediaNoLoopDeviceException(_url));
-      }
-
-      DBG << "found " << device << endl;
-      return device;
-    }
-
-    // ---------------------------------------------------------------
     void MediaISO::attachTo(bool next)
     {
       if(next)
@@ -215,20 +185,9 @@
         ZYPP_THROW(MediaNotSupportedException(_url));
       }
 
-      //! \todo make this thread-safe - another thread might pick up the same 
device
-      string loopdev = findUnusedLoopDevice(); // (bnc #428009)
-
-      MediaSourceRef media( new MediaSource("iso",  loopdev));
-      PathInfo dinfo(loopdev);
-      if( dinfo.isBlk())
-      {
-        media->maj_nr = dinfo.devMajor();
-        media->min_nr = dinfo.devMinor();
-      }
-      else
-        ERR << loopdev << " is not a block device" << endl;
+      MediaSourceRef media( new MediaSource("iso", isofile.asString() ) );
 
-      AttachedMedia  ret( findAttachedMedia( media));
+      AttachedMedia  ret( findAttachedMedia(media));
       if( ret.mediaSource &&
           ret.attachPoint &&
           !ret.attachPoint->empty())
@@ -249,7 +208,7 @@
        setAttachPoint( createAttachPoint(), true );
       }
       std::string mountpoint( attachPoint().asString() );
-      std::string mountopts("ro,loop=" + loopdev);
+      std::string mountopts("ro,loop");
 
       Mount mount;
       mount.mount(isofile.asString(), mountpoint,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-16.12.0/zypp/media/MediaISO.h 
new/libzypp-16.13.0/zypp/media/MediaISO.h
--- old/libzypp-16.12.0/zypp/media/MediaISO.h   2016-11-29 11:31:52.000000000 
+0100
+++ new/libzypp-16.13.0/zypp/media/MediaISO.h   2017-06-30 14:42:36.000000000 
+0200
@@ -39,9 +39,6 @@
         MediaAccessId _isosource;
         std::string   _filesystem;
 
-      private:
-        std::string findUnusedLoopDevice();
-
       protected:
 
        virtual void attachTo (bool next = false);


Reply via email to