Hello community,

here is the log from the commit of package libzypp for openSUSE:Factory checked 
in at 2018-02-22 14:57:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libzypp (Old)
 and      /work/SRC/openSUSE:Factory/.libzypp.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libzypp"

Thu Feb 22 14:57:59 2018 rev:396 rq:578616 version:17.1.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/libzypp/libzypp.changes  2018-02-03 
15:40:11.987824386 +0100
+++ /work/SRC/openSUSE:Factory/.libzypp.new/libzypp.changes     2018-02-22 
14:58:01.887533294 +0100
@@ -1,0 +2,10 @@
+Tue Feb 20 18:03:24 CET 2018 - m...@suse.de
+
+- RpmDb::checkPackage: fix parsing localized rpm output (bsc#1076415)
+- Replace libexpat with libxml
+- Fix libzypp tests failing with `-Wp,-D_GLIBCXX_ASSERTIONS`
+  compiler flag (fixes #84)
+- BuildRequire gpg2 as testcases need it (fixes #84)
+- version 17.1.3 (0)
+
+-------------------------------------------------------------------

Old:
----
  libzypp-17.1.2.tar.bz2

New:
----
  libzypp-17.1.3.tar.bz2

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

Other differences:
------------------
++++++ libzypp.spec ++++++
--- /var/tmp/diff_new_pack.sj7FTn/_old  2018-02-22 14:58:02.791500769 +0100
+++ /var/tmp/diff_new_pack.sj7FTn/_new  2018-02-22 14:58:02.795500625 +0100
@@ -16,10 +16,8 @@
 #
 
 
-%define force_gcc_46 0
-
 Name:           libzypp
-Version:        17.1.2
+Version:        17.1.3
 Release:        0
 Url:            git://gitorious.org/opensuse/libzypp.git
 Summary:        Package, Patch, Pattern, and Product Management
@@ -61,12 +59,7 @@
 %endif
 BuildRequires:  dejagnu
 BuildRequires:  doxygen
-%if 0%{?force_gcc_46}
-BuildRequires:  gcc46
-BuildRequires:  gcc46-c++
-%else
 BuildRequires:  gcc-c++ >= 4.6
-%endif
 BuildRequires:  gettext-devel
 BuildRequires:  graphviz
 BuildRequires:  libxml2-devel
@@ -92,12 +85,6 @@
 # required for testsuite, webrick
 BuildRequires:  ruby
 
-%if 0%{?suse_version}
-BuildRequires:  libexpat-devel
-%else
-BuildRequires:  expat-devel
-%endif
-
 Requires:       rpm
 
 %if 0%{?suse_version}
@@ -116,8 +103,10 @@
 %endif
 
 %if 0%{?suse_version}
+BuildRequires:  gpg2
 Requires:       gpg2
 %else
+BuildRequires:  gnupg2
 Requires:       gnupg2
 %endif
 
@@ -201,10 +190,6 @@
 %build
 mkdir build
 cd build
-%if 0%{?force_gcc_46}
-export CC=gcc-4.6
-export CXX=g++-4.6
-%endif
 export CFLAGS="$RPM_OPT_FLAGS"
 export CXXFLAGS="$RPM_OPT_FLAGS"
 unset EXTRA_CMAKE_OPTIONS
@@ -223,15 +208,7 @@
 make %{?_smp_mflags} VERBOSE=1
 make -C doc/autodoc %{?_smp_mflags}
 make -C po %{?_smp_mflags} translations
-
-%if 0%{?run_testsuite}
-  make -C tests %{?_smp_mflags}
-  pushd tests
-  LD_LIBRARY_PATH=$PWD/../zypp:$LD_LIBRARY_PATH ctest .
-  popd
-%endif
-
-#make check
+make -C tests %{?_smp_mflags}
 
 %install
 rm -rf "$RPM_BUILD_ROOT"
@@ -270,6 +247,11 @@
 cd ..
 %{find_lang} zypp
 
+%check
+pushd build/tests
+LD_LIBRARY_PATH=$RPM_BUILD_ROOT%{_libdir}:${LD_LIBRARY_PATH} ctest .
+popd
+
 %post
 /sbin/ldconfig
 if [ -f /var/cache/zypp/zypp.db ]; then rm /var/cache/zypp/zypp.db; fi

++++++ libzypp-17.1.2.tar.bz2 -> libzypp-17.1.3.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-17.1.2/CMakeLists.txt 
new/libzypp-17.1.3/CMakeLists.txt
--- old/libzypp-17.1.2/CMakeLists.txt   2017-10-10 12:48:09.000000000 +0200
+++ new/libzypp-17.1.3/CMakeLists.txt   2018-02-15 16:17:00.000000000 +0100
@@ -52,8 +52,8 @@
 CHECK_C_COMPILER_FLAG("-Werror=format-security" CC_FORMAT_SECURITY)
 CHECK_CXX_COMPILER_FLAG("-Werror=format-security" CXX_FORMAT_SECURITY)
 
-SET( CMAKE_C_FLAGS     "${CMAKE_C_FLAGS} -fno-strict-aliasing -fPIC -g 
-rdynamic -Wall -Wl,-as-needed" )
-SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-strict-aliasing -fPIC -g 
-rdynamic -Wall -Wl,-as-needed" )
+SET( CMAKE_C_FLAGS     "${CMAKE_C_FLAGS} -fno-strict-aliasing -fPIC -g 
-rdynamic -Wall -Wl,-as-needed -Wp,-D_GLIBCXX_ASSERTIONS" )
+SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-strict-aliasing -fPIC -g 
-rdynamic -Wall -Wl,-as-needed -Wp,-D_GLIBCXX_ASSERTIONS" )
 
 SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 
-fvisibility-inlines-hidden -Woverloaded-virtual -Wnon-virtual-dtor" )
 
@@ -163,9 +163,6 @@
   INCLUDE_DIRECTORIES( ${LibSolv_INCLUDE_DIRS} )
 ENDIF()
 
-# libsolv uses expat and has open references to it:
-FIND_PACKAGE(EXPAT REQUIRED)
-
 FIND_PACKAGE(OpenSSL REQUIRED)
 
 FIND_PACKAGE(Udev)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-17.1.2/VERSION.cmake 
new/libzypp-17.1.3/VERSION.cmake
--- old/libzypp-17.1.2/VERSION.cmake    2018-02-02 16:09:57.000000000 +0100
+++ new/libzypp-17.1.3/VERSION.cmake    2018-02-20 18:06:17.000000000 +0100
@@ -61,8 +61,8 @@
 SET(LIBZYPP_MAJOR "17")
 SET(LIBZYPP_COMPATMINOR "0")
 SET(LIBZYPP_MINOR "1")
-SET(LIBZYPP_PATCH "2")
+SET(LIBZYPP_PATCH "3")
 #
-# LAST RELEASED: 17.1.2 (0)
+# LAST RELEASED: 17.1.3 (0)
 # (The number in parenthesis is LIBZYPP_COMPATMINOR)
 #=======
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-17.1.2/libzypp.pc.cmake 
new/libzypp-17.1.3/libzypp.pc.cmake
--- old/libzypp-17.1.2/libzypp.pc.cmake 2017-10-10 12:48:09.000000000 +0200
+++ new/libzypp-17.1.3/libzypp.pc.cmake 2018-02-08 14:51:10.000000000 +0100
@@ -8,7 +8,7 @@
 Description: Package, Patch, Pattern, and Product Management
 
 Libs: -L${libdir} -lzypp
-Cflags: -I${includedir} @ZYPP_CFLAGS@
+Cflags: -I${includedir} -D_FILE_OFFSET_BITS=64 @ZYPP_CFLAGS@
 
 features=@ZYPP_FEATURES@
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-17.1.2/libzypp.spec.cmake 
new/libzypp-17.1.3/libzypp.spec.cmake
--- old/libzypp-17.1.2/libzypp.spec.cmake       2018-01-04 19:26:11.000000000 
+0100
+++ new/libzypp-17.1.3/libzypp.spec.cmake       2018-02-15 16:17:00.000000000 
+0100
@@ -16,8 +16,6 @@
 #
 
 
-%define force_gcc_46 0
-
 Name:           @PACKAGE@
 Version:        @VERSION@
 Release:        0
@@ -61,12 +59,7 @@
 %endif
 BuildRequires:  dejagnu
 BuildRequires:  doxygen
-%if 0%{?force_gcc_46}
-BuildRequires:  gcc46
-BuildRequires:  gcc46-c++
-%else
 BuildRequires:  gcc-c++ >= 4.6
-%endif
 BuildRequires:  gettext-devel
 BuildRequires:  graphviz
 BuildRequires:  libxml2-devel
@@ -92,12 +85,6 @@
 # required for testsuite, webrick
 BuildRequires:  ruby
 
-%if 0%{?suse_version}
-BuildRequires:  libexpat-devel
-%else
-BuildRequires:  expat-devel
-%endif
-
 Requires:       rpm
 
 %if 0%{?suse_version}
@@ -116,8 +103,10 @@
 %endif
 
 %if 0%{?suse_version}
+BuildRequires:  gpg2
 Requires:       gpg2
 %else
+BuildRequires:  gnupg2
 Requires:       gnupg2
 %endif
 
@@ -201,10 +190,6 @@
 %build
 mkdir build
 cd build
-%if 0%{?force_gcc_46}
-export CC=gcc-4.6
-export CXX=g++-4.6
-%endif
 export CFLAGS="$RPM_OPT_FLAGS"
 export CXXFLAGS="$RPM_OPT_FLAGS"
 unset EXTRA_CMAKE_OPTIONS
@@ -223,15 +208,7 @@
 make %{?_smp_mflags} VERBOSE=1
 make -C doc/autodoc %{?_smp_mflags}
 make -C po %{?_smp_mflags} translations
-
-%if 0%{?run_testsuite}
-  make -C tests %{?_smp_mflags}
-  pushd tests
-  LD_LIBRARY_PATH=$PWD/../zypp:$LD_LIBRARY_PATH ctest .
-  popd
-%endif
-
-#make check
+make -C tests %{?_smp_mflags}
 
 %install
 rm -rf "$RPM_BUILD_ROOT"
@@ -270,6 +247,11 @@
 cd ..
 %{find_lang} zypp
 
+%check
+pushd build/tests
+LD_LIBRARY_PATH=$RPM_BUILD_ROOT%{_libdir}:${LD_LIBRARY_PATH} ctest .
+popd
+
 %post
 /sbin/ldconfig
 if [ -f /var/cache/zypp/zypp.db ]; then rm /var/cache/zypp/zypp.db; fi
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-17.1.2/package/libzypp.changes 
new/libzypp-17.1.3/package/libzypp.changes
--- old/libzypp-17.1.2/package/libzypp.changes  2018-02-02 16:09:57.000000000 
+0100
+++ new/libzypp-17.1.3/package/libzypp.changes  2018-02-20 18:06:17.000000000 
+0100
@@ -1,4 +1,14 @@
 -------------------------------------------------------------------
+Tue Feb 20 18:03:24 CET 2018 - m...@suse.de
+
+- RpmDb::checkPackage: fix parsing localized rpm output (bsc#1076415)
+- Replace libexpat with libxml
+- Fix libzypp tests failing with `-Wp,-D_GLIBCXX_ASSERTIONS`
+  compiler flag (fixes #84)
+- BuildRequire gpg2 as testcases need it (fixes #84)
+- version 17.1.3 (0)
+
+-------------------------------------------------------------------
 Fri Feb  2 16:07:08 CET 2018 - m...@suse.de
 
 - Fix crash when installing broken rpm packages (bsc#1078284)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-17.1.2/po/fi.po new/libzypp-17.1.3/po/fi.po
--- old/libzypp-17.1.2/po/fi.po 2017-12-01 07:41:07.000000000 +0100
+++ new/libzypp-17.1.3/po/fi.po 2018-02-15 12:36:38.000000000 +0100
@@ -20,16 +20,16 @@
 "Project-Id-Version: zypp.fi\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2017-12-01 07:26+0100\n"
-"PO-Revision-Date: 2017-07-10 15:05+0000\n"
-"Last-Translator: Jyri Palokangas <j...@opensuse.org>\n"
-"Language-Team: Finnish <https://l10n.opensuse.org/projects/libzypp/master/fi/";
-">\n"
+"PO-Revision-Date: 2018-02-15 11:35+0000\n"
+"Last-Translator: Tommi Nieminen <softw...@legisign.org>\n"
+"Language-Team: Finnish "
+"<https://l10n.opensuse.org/projects/libzypp/master/fi/>\n"
 "Language: fi\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 2.13.1\n"
+"X-Generator: Weblate 2.18\n"
 
 #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55
 #: zypp/target/hal/HalException.h:64
@@ -1491,9 +1491,8 @@
 "Yritettiin lisätä avain %s avainrenkaaseen %s, mutta tiedostoa ei löydetty"
 
 #: zypp/KeyRing.cc:583
-#, fuzzy
 msgid "Failed to import key."
-msgstr "Avaimen tuonti tiedostosta %1% epäonnistui"
+msgstr "Avaimen tuonti epäonnistui."
 
 #: zypp/KeyRing.cc:606
 msgid "Failed to delete key."
@@ -3940,21 +3939,20 @@
 
 #. translators: an annotation to a gpg keys expiry date
 #: zypp/PublicKey.cc:60
-#, fuzzy
 msgid "does not expire"
-msgstr "(ei vanhene)"
+msgstr "ei vanhene"
 
 #. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12"
 #: zypp/PublicKey.cc:65
 #, boost-format
 msgid "expired: %1%"
-msgstr ""
+msgstr "vanhentunut: %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 "vanhenee: %1%"
 
 #. translators: an annotation to a gpg keys expiry date
 #: zypp/PublicKey.cc:79
@@ -3973,11 +3971,11 @@
 
 #. translators: an annotation to a gpg keys expiry date
 #: zypp/PublicKey.cc:96
-#, fuzzy, c-format, boost-format
+#, boost-format, c-format
 msgid "(expires in %d day)"
 msgid_plural "(expires in %d days)"
-msgstr[0] "(vanhenee 24 tunnin kuluessa)"
-msgstr[1] "(vanhenee 24 tunnin kuluessa)"
+msgstr[0] "(vanhenee %d päivässä)"
+msgstr[1] "(vanhenee %d päivässä)"
 
 #: zypp/RepoManager.cc:312
 #, boost-format
@@ -4021,11 +4019,10 @@
 
 #. we will throw this later if no URL checks out fine
 #: zypp/RepoManager.cc:1098
-#, fuzzy
 msgid "Valid metadata not found at specified URL"
 msgid_plural "Valid metadata not found at specified URLs"
-msgstr[0] "Annetuista verkko-osoitteista ei löytynyt kelpaavia metatietoja"
-msgstr[1] "Annetuista verkko-osoitteista ei löytynyt kelpaavia metatietoja"
+msgstr[0] "Annetusta verkko-osoitteesta ei löytynyt kelvollista metatietoa"
+msgstr[1] "Annetuista verkko-osoitteista ei löytynyt kelvollista metatietoa"
 
 #: zypp/RepoManager.cc:1146 zypp/RepoManager.cc:1258 zypp/RepoManager.cc:1314
 #, c-format, boost-format
@@ -4401,6 +4398,8 @@
 "Create attach point: Can't find a writable directory to create an attach "
 "point"
 msgstr ""
+"Luo liitospiste: Kirjoitettavissa olevaa kansiota ei löydy liitospisteen "
+"luomiseksi"
 
 #: zypp/media/MediaUserAuth.cc:136
 #, c-format, boost-format
@@ -4422,9 +4421,8 @@
 msgstr "Tarvitaan joko %s tai %s -attribuutti."
 
 #: zypp/repo/PackageProvider.cc:216
-#, fuzzy
 msgid "Signature verification failed"
-msgstr " suoritus epäonnistui"
+msgstr "Allekirjoituksen todennus epäonnistui"
 
 #. TranslatorExplanation %s = package being checked for integrity
 #: zypp/repo/PackageProvider.cc:388
@@ -4618,9 +4616,8 @@
 msgstr "jätä %s riippuvuuksia huomioimatta"
 
 #: zypp/solver/detail/ProblemSolutionIgnore.cc:48
-#, fuzzy
 msgid "generally ignore of some dependencies"
-msgstr "jätä joitakin vaatimuksia huomiotta"
+msgstr "jätä joitakin riippuvuuksia huomiotta"
 
 #: zypp/solver/detail/SATResolver.cc:979
 #, c-format, boost-format
@@ -4744,9 +4741,9 @@
 msgstr "pidä %s"
 
 #: zypp/solver/detail/SATResolver.cc:1170
-#, fuzzy, c-format, boost-format
+#, boost-format, c-format
 msgid "remove lock to allow installation of %s"
-msgstr "Älä estä %s asentamista"
+msgstr "poista lukitus asentaaksesi: %s"
 
 #: zypp/solver/detail/SATResolver.cc:1221
 #: zypp/solver/detail/SATResolver.cc:1242
@@ -4915,7 +4912,7 @@
 
 #: zypp/target/rpm/RpmDb.cc:1596
 msgid "Package is not signed!"
-msgstr ""
+msgstr "Pakettia ei ole allekirjoitettu!"
 
 #. Translator: %s = name of an rpm package. A list of diffs follows
 #. this message.
@@ -4970,9 +4967,8 @@
 
 #. translators: possible rpm package signature check result [brief]
 #: zypp/target/rpm/RpmDb.cc:2412
-#, fuzzy
 msgid "Signature is OK"
-msgstr "Allekirjoitustiedostoa %s ei löydetty"
+msgstr "Allekirjoitus kelpaa"
 
 #. translators: possible rpm package signature check result [brief]
 #: zypp/target/rpm/RpmDb.cc:2414
@@ -4981,15 +4977,13 @@
 
 #. translators: possible rpm package signature check result [brief]
 #: zypp/target/rpm/RpmDb.cc:2416
-#, fuzzy
 msgid "Signature does not verify"
-msgstr "Allekirjoitustiedostoa %s ei löydetty"
+msgstr "Allekirjoitusta ei voida todentaa"
 
 #. translators: possible rpm package signature check result [brief]
 #: zypp/target/rpm/RpmDb.cc:2418
-#, fuzzy
 msgid "Signature is OK, but key is not trusted"
-msgstr "Allekirjoitustiedostoa %s ei löydetty"
+msgstr "Allekirjoitus kelpaa, mutta avain ei ole luotettu"
 
 #. translators: possible rpm package signature check result [brief]
 #: zypp/target/rpm/RpmDb.cc:2420
@@ -5004,7 +4998,7 @@
 #. translators: possible rpm package signature check result [brief]
 #: zypp/target/rpm/RpmDb.cc:2424
 msgid "File is unsigned"
-msgstr ""
+msgstr "Tiedosto on allekirjoittamaton"
 
 #: zypp/thread/Mutex.cc:33
 msgid "Can't initialize mutex attributes"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-17.1.2/po/nl.po new/libzypp-17.1.3/po/nl.po
--- old/libzypp-17.1.2/po/nl.po 2018-01-06 12:31:05.000000000 +0100
+++ new/libzypp-17.1.3/po/nl.po 2018-02-08 14:51:10.000000000 +0100
@@ -16,8 +16,8 @@
 "Project-Id-Version: zypp.nl\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2017-12-01 07:26+0100\n"
-"PO-Revision-Date: 2018-01-06 11:27+0000\n"
-"Last-Translator: Nathan Follens <n...@unseen.is>\n"
+"PO-Revision-Date: 2018-02-08 13:48+0000\n"
+"Last-Translator: Eva van Rein <vista...@globaltextware.nl>\n"
 "Language-Team: Dutch <https://l10n.opensuse.org/projects/libzypp/master/nl/>"
 "\n"
 "Language: nl\n"
@@ -25,7 +25,7 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 2.17.1\n"
+"X-Generator: Weblate 2.18\n"
 
 #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55
 #: zypp/target/hal/HalException.h:64
@@ -106,7 +106,7 @@
 #. :ARG:032:
 #: zypp/CountryCode.cc:169
 msgid "American Samoa"
-msgstr "Amerikaans Samoa"
+msgstr "Amerikaans-Samoa"
 
 #. :ASM:016:
 #: zypp/CountryCode.cc:170
@@ -126,7 +126,7 @@
 #. :ABW:533:
 #: zypp/CountryCode.cc:173
 msgid "Aland Islands"
-msgstr "Aland-eilanden"
+msgstr "Åland"
 
 #. :ALA:248:
 #: zypp/CountryCode.cc:174
@@ -211,7 +211,7 @@
 #. :BTN:064:
 #: zypp/CountryCode.cc:190
 msgid "Bouvet Island"
-msgstr "Bouvet-eiland"
+msgstr "Bouveteiland"
 
 #. :BVT:074:
 #: zypp/CountryCode.cc:191
@@ -236,7 +236,7 @@
 #. :CAN:124:
 #: zypp/CountryCode.cc:195
 msgid "Cocos (Keeling) Islands"
-msgstr "Cocos(Keeling)eilanden"
+msgstr "Cocoseilanden"
 
 #. :CCK:166:
 #. :CAF:140:
@@ -392,7 +392,7 @@
 #. :FJI:242:
 #: zypp/CountryCode.cc:227
 msgid "Falkland Islands (Malvinas)"
-msgstr "Falkland Eilanden (Malvinas)"
+msgstr "Falklandeilanden"
 
 #. :FLK:238:
 #: zypp/CountryCode.cc:228
@@ -402,7 +402,7 @@
 #. :FSM:583:
 #: zypp/CountryCode.cc:229
 msgid "Faroe Islands"
-msgstr "Faroe Eilanden"
+msgstr "Faeröer"
 
 #. :FRO:234:
 #: zypp/CountryCode.cc:230
@@ -412,7 +412,7 @@
 #. :FRA:250:
 #: zypp/CountryCode.cc:231
 msgid "Metropolitan France"
-msgstr "Metropolitaan Frankrijk"
+msgstr "Metropolitaans Frankrijk"
 
 #. :FXX:249:
 #: zypp/CountryCode.cc:232
@@ -486,7 +486,7 @@
 #. :GRC:300:
 #: zypp/CountryCode.cc:246
 msgid "South Georgia and the South Sandwich Islands"
-msgstr "Zuid Georgia en de Zuid Sandwich Eilanden"
+msgstr "Zuid-Georgia en de Zuidelijke Sandwicheilanden"
 
 #. :SGS:239:
 #: zypp/CountryCode.cc:247
@@ -511,12 +511,12 @@
 #. :GUY:328:
 #: zypp/CountryCode.cc:251
 msgid "Hong Kong"
-msgstr "Hong Kong"
+msgstr "Hongkong"
 
 #. :HKG:344:
 #: zypp/CountryCode.cc:252
 msgid "Heard Island and McDonald Islands"
-msgstr "Heard Island en McDonald Islands"
+msgstr "Heard en McDonaldeilanden"
 
 #. :HMD:334:
 #: zypp/CountryCode.cc:253
@@ -556,7 +556,7 @@
 #. :ISR:376:
 #: zypp/CountryCode.cc:260
 msgid "Isle of Man"
-msgstr "Isle of Man"
+msgstr "Man (eiland)"
 
 #: zypp/CountryCode.cc:261
 msgid "India"
@@ -565,7 +565,7 @@
 #. :IND:356:
 #: zypp/CountryCode.cc:262
 msgid "British Indian Ocean Territory"
-msgstr "Brits Indian Ocean Territory"
+msgstr "Brits Indische Oceaanterritorium"
 
 #. :IOT:086:
 #: zypp/CountryCode.cc:263
@@ -634,7 +634,7 @@
 #. :COM:174:
 #: zypp/CountryCode.cc:276
 msgid "Saint Kitts and Nevis"
-msgstr "Sint Kitts en Nevis"
+msgstr "Saint Kitts en Nevis"
 
 #. :KNA:659:
 #: zypp/CountryCode.cc:277
@@ -664,7 +664,7 @@
 #. :KAZ:398:
 #: zypp/CountryCode.cc:282
 msgid "Lao People's Democratic Republic"
-msgstr "Democratische volksrepubliek Laos"
+msgstr "Democratische Volksrepubliek Laos"
 
 #. :LAO:418:
 #: zypp/CountryCode.cc:283
@@ -748,7 +748,7 @@
 #. :MDG:450:
 #: zypp/CountryCode.cc:299
 msgid "Marshall Islands"
-msgstr "Marshall Eilanden"
+msgstr "Marshalleilanden"
 
 #. :MHL:584:
 #: zypp/CountryCode.cc:300
@@ -848,7 +848,7 @@
 #. :NER:562:
 #: zypp/CountryCode.cc:319
 msgid "Norfolk Island"
-msgstr "Norfolk eiland"
+msgstr "Norfolk (eiland)"
 
 #. :NFK:574:
 #: zypp/CountryCode.cc:320
@@ -1348,16 +1348,16 @@
 #: zypp/ExternalProgram.cc:510
 #, c-format, boost-format
 msgid "Command exited with status %d."
-msgstr "Commando beëindigd met status %d."
+msgstr "Opdracht beëindigd met status %d."
 
 #: zypp/ExternalProgram.cc:530
 #, c-format, boost-format
 msgid "Command was killed by signal %d (%s)."
-msgstr "Commando is gestopt door signaal %d (%s)."
+msgstr "Opdracht is gestopt door signaal %d (%s)."
 
 #: zypp/ExternalProgram.cc:535
 msgid "Command exited with unknown error."
-msgstr "Commando beëindigd met onbekende fout."
+msgstr "Opdracht beëindigd met onbekende fout."
 
 #. TranslatorExplanation first %s is key name, second is keyring name
 #: zypp/KeyRing.cc:561
@@ -1417,7 +1417,7 @@
 #. language code: afa
 #: zypp/LanguageCode.cc:173
 msgid "Afro-Asiatic (Other)"
-msgstr "Afro-Aziatisch (Overige)"
+msgstr "Afro-Aziatisch (overig)"
 
 #. language code: afh
 #: zypp/LanguageCode.cc:175
@@ -1512,7 +1512,7 @@
 #. language code: art
 #: zypp/LanguageCode.cc:215
 msgid "Artificial (Other)"
-msgstr "Kunstmatig (Overige)"
+msgstr "Kunstmatig (overig)"
 
 #. language code: arw
 #: zypp/LanguageCode.cc:217
@@ -1607,7 +1607,7 @@
 #. language code: bat
 #: zypp/LanguageCode.cc:255
 msgid "Baltic (Other)"
-msgstr "Baltisch (Overige)"
+msgstr "Baltisch (overig)"
 
 #. language code: bej
 #: zypp/LanguageCode.cc:257
@@ -1632,7 +1632,7 @@
 #. language code: ber
 #: zypp/LanguageCode.cc:265
 msgid "Berber (Other)"
-msgstr "Berbers (Overige)"
+msgstr "Berbers (overig)"
 
 #. language code: bho
 #: zypp/LanguageCode.cc:267
@@ -1667,7 +1667,7 @@
 #. language code: bnt
 #: zypp/LanguageCode.cc:279
 msgid "Bantu (Other)"
-msgstr "Bantu (Overige)"
+msgstr "Bantu (overig)"
 
 #. language code: bos bs
 #: zypp/LanguageCode.cc:281
@@ -1722,7 +1722,7 @@
 #. language code: cai
 #: zypp/LanguageCode.cc:303
 msgid "Central American Indian (Other)"
-msgstr "Centraal-Amerikaans Indiaans (Overige)"
+msgstr "Centraal-Amerikaans Indiaans (overig)"
 
 #. language code: car
 #: zypp/LanguageCode.cc:305
@@ -1737,7 +1737,7 @@
 #. language code: cau
 #: zypp/LanguageCode.cc:309
 msgid "Caucasian (Other)"
-msgstr "Kaukasisch (Overige)"
+msgstr "Kaukasisch (overig)"
 
 #. language code: ceb
 #: zypp/LanguageCode.cc:311
@@ -1747,7 +1747,7 @@
 #. language code: cel
 #: zypp/LanguageCode.cc:313
 msgid "Celtic (Other)"
-msgstr "Keltisch (Overige)"
+msgstr "Keltisch (overig)"
 
 #. language code: cha ch
 #: zypp/LanguageCode.cc:315
@@ -1879,7 +1879,7 @@
 #. language code: cus
 #: zypp/LanguageCode.cc:367
 msgid "Cushitic (Other)"
-msgstr "Cusjitisch (Overige)"
+msgstr "Cusjitisch (overig)"
 
 #. language code: cze ces cs
 #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371
@@ -1939,7 +1939,7 @@
 #. language code: dra
 #: zypp/LanguageCode.cc:393
 msgid "Dravidian (Other)"
-msgstr "Dravidiaans (Overige)"
+msgstr "Dravidiaans (overig)"
 
 #. language code: dsb
 #: zypp/LanguageCode.cc:395
@@ -2044,7 +2044,7 @@
 #. language code: fil
 #: zypp/LanguageCode.cc:437
 msgid "Filipino"
-msgstr "Filipino"
+msgstr "Filipijns"
 
 #. language code: fin fi
 #: zypp/LanguageCode.cc:439
@@ -2054,7 +2054,7 @@
 #. language code: fiu
 #: zypp/LanguageCode.cc:441
 msgid "Finno-Ugrian (Other)"
-msgstr "Fins-Oegrisch (Overige)"
+msgstr "Fins-Oegrisch (overig)"
 
 #. language code: fon
 #: zypp/LanguageCode.cc:443
@@ -2109,7 +2109,7 @@
 #. language code: gem
 #: zypp/LanguageCode.cc:465
 msgid "Germanic (Other)"
-msgstr "Germaans (Overige)"
+msgstr "Germaans (overig)"
 
 #. language code: geo kat ka
 #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469
@@ -2334,7 +2334,7 @@
 #. language code: inc
 #: zypp/LanguageCode.cc:563
 msgid "Indic (Other)"
-msgstr "Indisch (Overige)"
+msgstr "Indisch (overig)"
 
 #. language code: ind id
 #: zypp/LanguageCode.cc:565
@@ -2344,7 +2344,7 @@
 #. language code: ine
 #: zypp/LanguageCode.cc:567
 msgid "Indo-European (Other)"
-msgstr "Indo-Europees (Overige)"
+msgstr "Indo-Europees (overig)"
 
 #. language code: inh
 #: zypp/LanguageCode.cc:569
@@ -2359,7 +2359,7 @@
 #. language code: ira
 #: zypp/LanguageCode.cc:573
 msgid "Iranian (Other)"
-msgstr "Iraans (Overige)"
+msgstr "Iraans (overig)"
 
 #. language code: iro
 #: zypp/LanguageCode.cc:575
@@ -2464,7 +2464,7 @@
 #. language code: khi
 #: zypp/LanguageCode.cc:615
 msgid "Khoisan (Other)"
-msgstr "Khoisaans (Overige)"
+msgstr "Khoisaans (overig)"
 
 #. language code: khm km
 #: zypp/LanguageCode.cc:617
@@ -2709,7 +2709,7 @@
 #. language code: map
 #: zypp/LanguageCode.cc:717
 msgid "Austronesian (Other)"
-msgstr "Austronesisch (Overige)"
+msgstr "Austronesisch (overig)"
 
 #. language code: mar mr
 #: zypp/LanguageCode.cc:719
@@ -2764,7 +2764,7 @@
 #. language code: mkh
 #: zypp/LanguageCode.cc:741
 msgid "Mon-Khmer (Other)"
-msgstr "Mon-Khmer (Overige)"
+msgstr "Mon-Khmer (overig)"
 
 #. language code: mlg mg
 #: zypp/LanguageCode.cc:743
@@ -2904,7 +2904,7 @@
 #. language code: nic
 #: zypp/LanguageCode.cc:799
 msgid "Niger-Kordofanian (Other)"
-msgstr "Niger-Kordofaniaans (Overige)"
+msgstr "Niger-Kordofaniaans (overig)"
 
 #. language code: niu
 #: zypp/LanguageCode.cc:801
@@ -3019,7 +3019,7 @@
 #. language code: paa
 #: zypp/LanguageCode.cc:845
 msgid "Papuan (Other)"
-msgstr "Papuaans (Overige)"
+msgstr "Papuaans (overig)"
 
 #. language code: pag
 #: zypp/LanguageCode.cc:847
@@ -3064,7 +3064,7 @@
 #. language code: phi
 #: zypp/LanguageCode.cc:865
 msgid "Philippine (Other)"
-msgstr "Filipijns (Overige)"
+msgstr "Filipijns (overig)"
 
 #. language code: phn
 #: zypp/LanguageCode.cc:867
@@ -3129,7 +3129,7 @@
 #. language code: roa
 #: zypp/LanguageCode.cc:891
 msgid "Romance (Other)"
-msgstr "Romaans (Overige)"
+msgstr "Romaans (overig)"
 
 #. language code: roh rm
 #: zypp/LanguageCode.cc:893
@@ -3174,7 +3174,7 @@
 #. language code: sai
 #: zypp/LanguageCode.cc:911
 msgid "South American Indian (Other)"
-msgstr "Zuid-Amerikaans Indiaans (Overige)"
+msgstr "Zuid-Amerikaans Indiaans (overig)"
 
 #. language code: sal
 #: zypp/LanguageCode.cc:913
@@ -3229,7 +3229,7 @@
 #. language code: sem
 #: zypp/LanguageCode.cc:937
 msgid "Semitic (Other)"
-msgstr "Semitisch (Overige)"
+msgstr "Semitisch (overig)"
 
 #. language code: sga
 #: zypp/LanguageCode.cc:939
@@ -3264,12 +3264,12 @@
 #. language code: sit
 #: zypp/LanguageCode.cc:951
 msgid "Sino-Tibetan (Other)"
-msgstr "Sino-Tibetaans (Overige)"
+msgstr "Sino-Tibetaans (overig)"
 
 #. language code: sla
 #: zypp/LanguageCode.cc:953
 msgid "Slavic (Other)"
-msgstr "Slavisch (Overige)"
+msgstr "Slavisch (overig)"
 
 #. language code: slo slk sk
 #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957
@@ -3369,7 +3369,7 @@
 #. language code: ssa
 #: zypp/LanguageCode.cc:995
 msgid "Nilo-Saharan (Other)"
-msgstr "Nilo-Saharaans (Overige)"
+msgstr "Nilo-Saharaans (overig)"
 
 #. language code: ssw ss
 #: zypp/LanguageCode.cc:997
@@ -3419,7 +3419,7 @@
 #. language code: tai
 #: zypp/LanguageCode.cc:1015
 msgid "Tai (Other)"
-msgstr "Tai (Overige)"
+msgstr "Tai (overig)"
 
 #. language code: tam ta
 #: zypp/LanguageCode.cc:1017
@@ -3554,7 +3554,7 @@
 #. language code: tut
 #: zypp/LanguageCode.cc:1073
 msgid "Altaic (Other)"
-msgstr "Altaïsch (Overige)"
+msgstr "Altaïsch (overig)"
 
 #. language code: twi tw
 #: zypp/LanguageCode.cc:1077
@@ -3738,7 +3738,7 @@
 
 #: zypp/ProblemSolution.cc:114
 msgid "Following actions will be done:"
-msgstr "De volgende acties zullen uitgevoerd worden:"
+msgstr "De volgende acties worden uitgevoerd:"
 
 #. translators: an annotation to a gpg keys expiry date
 #: zypp/PublicKey.cc:60
@@ -3770,7 +3770,7 @@
 #. translators: an annotation to a gpg keys expiry date
 #: zypp/PublicKey.cc:92
 msgid "(expires within 24h)"
-msgstr "(verloopt binnen 24u)"
+msgstr "(verloopt binnen 24 uur)"
 
 #. translators: an annotation to a gpg keys expiry date
 #: zypp/PublicKey.cc:96
@@ -3783,7 +3783,7 @@
 #: zypp/RepoManager.cc:312
 #, boost-format
 msgid "Cannot read repo directory '%1%': Permission denied"
-msgstr "Kan map '%1%' van installatiebron niet lezen: Toegang geweigerd"
+msgstr "Kan map '%1%' van opslagruimte niet lezen: Toegang geweigerd"
 
 #. TranslatorExplanation '%s' is a pathname
 #: zypp/RepoManager.cc:320 zypp/RepoManager.cc:789 zypp/RepoManager.cc:1541
@@ -3795,12 +3795,11 @@
 #: zypp/RepoManager.cc:330
 #, boost-format
 msgid "Cannot read repo file '%1%': Permission denied"
-msgstr "Kan installatiebronbestand '%1%' niet lezen: Toegang geweigerd"
+msgstr "Kan opslagruimtebestand '%1%' niet lezen: Toegang geweigerd"
 
 #: zypp/RepoManager.cc:353
 msgid "Repository alias cannot start with dot."
-msgstr ""
-"De alias van van een installatiebron mag niet met een punt (.) beginnen."
+msgstr "De alias van van een opslagruimte mag niet met een punt (.) beginnen."
 
 #: zypp/RepoManager.cc:364
 msgid "Service alias cannot start with dot."
@@ -3819,8 +3818,7 @@
 #: zypp/RepoManager.cc:871
 #, boost-format
 msgid "Unknown service '%1%': Removing orphaned service repository '%2%'"
-msgstr ""
-"Onbekende service '%1%': Verweesde installatiebron '%2%' aan het verwijderen"
+msgstr "Onbekende service '%1%': Verweesde opslagruimte  '%2%' verwijderen"
 
 #. we will throw this later if no URL checks out fine
 #: zypp/RepoManager.cc:1098
@@ -3841,7 +3839,7 @@
 #: zypp/RepoManager.cc:1300
 #, c-format, boost-format
 msgid "Building repository '%s' cache"
-msgstr "Cache van installatiebron '%s' wordt gebouwd"
+msgstr "Cache van opslagruimte '%s' wordt gebouwd"
 
 #: zypp/RepoManager.cc:1320
 #, c-format, boost-format
@@ -3851,11 +3849,11 @@
 #: zypp/RepoManager.cc:1384
 #, c-format, boost-format
 msgid "Failed to cache repo (%d)."
-msgstr "Kan installatiebron (%d) niet opslaan in de cache."
+msgstr "Kan opslagruimte (%d) niet opslaan in de cache."
 
 #: zypp/RepoManager.cc:1395
 msgid "Unhandled repository type"
-msgstr "Niet behandeld type installatiebron"
+msgstr "Niet behandeld type opslagruimte"
 
 #. 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
@@ -3877,18 +3875,18 @@
 #: zypp/RepoManager.cc:1623
 #, c-format, boost-format
 msgid "Adding repository '%s'"
-msgstr "Installatiebron '%s' wordt toegevoegd"
+msgstr "Opslagruimte '%s' wordt toegevoegd"
 
 #. TranslatorExplanation '%s' is an URL
 #: zypp/RepoManager.cc:1711
 #, c-format, boost-format
 msgid "Invalid repo file name at '%s'"
-msgstr "Ongeldige naam van installatiebronbestand bij '%s'"
+msgstr "Ongeldige naam van opslagruimtebestand bij '%s'"
 
 #: zypp/RepoManager.cc:1752
 #, c-format, boost-format
 msgid "Removing repository '%s'"
-msgstr "Installatiebron '%s' wordt verwijderd"
+msgstr "Opslagruimte '%s' wordt verwijderd"
 
 #: zypp/RepoManager.cc:1771 zypp/RepoManager.cc:1849
 msgid "Can't figure out where the repo is stored."
@@ -4263,11 +4261,11 @@
 #: zypp/repo/RepoProvideFile.cc:261
 #, c-format, boost-format
 msgid "Can't provide file '%s' from repository '%s'"
-msgstr "Kan bestand '%s' niet leveren uit installatiebron '%s'"
+msgstr "Kan bestand '%s' niet leveren uit opslagruimte '%s'"
 
 #: zypp/repo/RepoProvideFile.cc:267
 msgid "No url in repository."
-msgstr "Geen url in bron."
+msgstr "Geen URL in opslagruimte."
 
 #. [lhs][rhs] 0 = installed; 1 = to be installed
 #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2)
@@ -4432,7 +4430,7 @@
 #: zypp/solver/detail/SATResolver.cc:979
 #, c-format, boost-format
 msgid "%s does not belong to a distupgrade repository"
-msgstr "%s behoort niet tot een installatiebron voor distributieopwaardering"
+msgstr "%s behoort niet tot een opslagruimte voor distributie-upgrade"
 
 #: zypp/solver/detail/SATResolver.cc:983
 #, c-format, boost-format
@@ -4459,7 +4457,7 @@
 
 #: zypp/solver/detail/SATResolver.cc:997 zypp/solver/detail/SATResolver.cc:1001
 msgid "Have you enabled all requested repositories?"
-msgstr "Hebt u alle vereiste installatiebronnen ingeschakeld?"
+msgstr "Hebt u alle vereiste opslagruimtes ingeschakeld?"
 
 #: zypp/solver/detail/SATResolver.cc:1000
 #, c-format, boost-format
@@ -4598,12 +4596,12 @@
 #: zypp/solver/detail/SATResolver.cc:1302
 #, c-format, boost-format
 msgid "install %s from excluded repository"
-msgstr "%s installeren uit een uitgesloten installatiebron"
+msgstr "%s installeren uit een uitgesloten opslagruimte"
 
 #: zypp/solver/detail/SATResolver.cc:1322
 #, c-format, boost-format
 msgid "downgrade of %s to %s"
-msgstr "waardeer %s af tot %s"
+msgstr "downgrade %s tot %s"
 
 #: zypp/solver/detail/SATResolver.cc:1329
 #, c-format, boost-format
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-17.1.2/zypp/CMakeLists.txt 
new/libzypp-17.1.3/zypp/CMakeLists.txt
--- old/libzypp-17.1.2/zypp/CMakeLists.txt      2017-10-10 12:48:09.000000000 
+0200
+++ new/libzypp-17.1.3/zypp/CMakeLists.txt      2018-02-20 18:06:18.000000000 
+0100
@@ -252,6 +252,7 @@
   base/Iterable.h
   base/Iterator.h
   base/Json.h
+  base/LocaleGuard.h
   base/LogControl.h
   base/LogTools.h
   base/Logger.h
@@ -931,7 +932,7 @@
 TARGET_LINK_LIBRARIES(zypp ${CURL_LIBRARIES} )
 TARGET_LINK_LIBRARIES(zypp ${LIBXML2_LIBRARIES} )
 TARGET_LINK_LIBRARIES(zypp ${ZLIB_LIBRARY} )
-TARGET_LINK_LIBRARIES(zypp ${LibSolv_LIBRARIES} ${EXPAT_LIBRARY})
+TARGET_LINK_LIBRARIES(zypp ${LibSolv_LIBRARIES} )
 TARGET_LINK_LIBRARIES(zypp ${OPENSSL_LIBRARIES} )
 TARGET_LINK_LIBRARIES(zypp ${CRYPTO_LIBRARIES} )
 TARGET_LINK_LIBRARIES(zypp ${SIGNALS_LIBRARY} )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-17.1.2/zypp/base/GzStream.cc 
new/libzypp-17.1.3/zypp/base/GzStream.cc
--- old/libzypp-17.1.2/zypp/base/GzStream.cc    2017-10-10 12:48:09.000000000 
+0200
+++ new/libzypp-17.1.3/zypp/base/GzStream.cc    2018-02-06 17:26:07.000000000 
+0100
@@ -210,7 +210,7 @@
           const std::streamsize got = zReadTo( &(_buffer[0]), _buffer.size() );
           if ( got > 0 )
             {
-              setg( &(_buffer[0]), &(_buffer[0]), &(_buffer[got]) );
+              setg( &(_buffer[0]), &(_buffer[0]), &(_buffer.data()[got]) );
               ret = traits_type::to_int_type( *gptr() );
             }
           else if ( got == 0 )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-17.1.2/zypp/base/LocaleGuard.h 
new/libzypp-17.1.3/zypp/base/LocaleGuard.h
--- old/libzypp-17.1.2/zypp/base/LocaleGuard.h  1970-01-01 01:00:00.000000000 
+0100
+++ new/libzypp-17.1.3/zypp/base/LocaleGuard.h  2018-02-20 18:06:18.000000000 
+0100
@@ -0,0 +1,66 @@
+/*---------------------------------------------------------------------\
+|                          ____ _   __ __ ___                          |
+|                         |__  / \ / / . \ . \                         |
+|                           / / \ V /|  _/  _/                         |
+|                          / /__ | | | | | |                           |
+|                         /_____||_| |_| |_|                           |
+|                                                                      |
+\---------------------------------------------------------------------*/
+/** \file      zypp/base/LocaleGuard.h
+ */
+#ifndef ZYPP_BASE_LOCALEGUARD_H
+#define ZYPP_BASE_LOCALEGUARD_H
+
+#include <locale.h>
+#include <string>
+
+#include "zypp/base/Easy.h"
+
+///////////////////////////////////////////////////////////////////
+namespace zypp
+{
+  ///////////////////////////////////////////////////////////////////
+  /// \class LocaleGuard
+  /// \brief Temorarily change a locale category value
+  /// \ingroup g_RAII
+  ///////////////////////////////////////////////////////////////////
+  class LocaleGuard
+  {
+    NON_COPYABLE(LocaleGuard);
+    NON_MOVABLE(LocaleGuard);
+
+  public:
+    /** Ctor saving the current locale category value. */
+    LocaleGuard( int category_r, const std::string & value_r = "C" )
+    : _category( -1 )
+    {
+      const char * ovalue = ::setlocale( category_r, nullptr );
+      if ( ovalue && ovalue != value_r )
+      {
+       _category = category_r;
+       _value    = ovalue;
+       ::setlocale( _category, value_r.c_str() );
+      }
+    }
+
+    /** Dtor asserts the saved locale category value is restored. */
+    ~LocaleGuard()
+    { restore(); }
+
+    /** immediately restore the saved locale category value. */
+    void restore()
+    {
+      if ( _category != -1 )
+      {
+       ::setlocale( _category, _value.c_str() );
+       _category = -1;
+      }
+    }
+
+  private:
+    int         _category;     ///< saved category or -1 if no restore needed
+    std::string _value;                ///< saved category value
+  };
+} // namespace zypp
+///////////////////////////////////////////////////////////////////
+#endif // ZYPP_BASE_LOCALEGUARD_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-17.1.2/zypp/media/MediaBlockList.cc 
new/libzypp-17.1.3/zypp/media/MediaBlockList.cc
--- old/libzypp-17.1.2/zypp/media/MediaBlockList.cc     2017-10-10 
12:48:09.000000000 +0200
+++ new/libzypp-17.1.3/zypp/media/MediaBlockList.cc     2018-02-15 
16:17:00.000000000 +0100
@@ -14,7 +14,6 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include <expat.h>
 
 #include <vector>
 #include <iostream>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-17.1.2/zypp/media/MetaLinkParser.cc 
new/libzypp-17.1.3/zypp/media/MetaLinkParser.cc
--- old/libzypp-17.1.2/zypp/media/MetaLinkParser.cc     2017-10-10 
12:48:09.000000000 +0200
+++ new/libzypp-17.1.3/zypp/media/MetaLinkParser.cc     2018-02-15 
16:17:00.000000000 +0100
@@ -17,13 +17,14 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include <expat.h>
 
 #include <vector>
 #include <algorithm>
 #include <iostream>
 #include <fstream>
 
+#include <libxml2/libxml/SAX2.h>
+
 using namespace std;
 using namespace zypp::base;
 
@@ -86,13 +87,13 @@
   string url;
 };
 
-static void XMLCALL startElement(void *userData, const char *name, const char 
**atts);
-static void XMLCALL endElement(void *userData, const char *name);
-static void XMLCALL characterData(void *userData, const XML_Char *s, int len);
+static void XMLCALL startElement(void *userData, const xmlChar *name, const 
xmlChar **atts);
+static void XMLCALL endElement(void *userData, const xmlChar *name);
+static void XMLCALL characterData(void *userData, const xmlChar *s, int len);
 
 struct ml_parsedata : private zypp::base::NonCopyable {
   ml_parsedata()
-    : parser( XML_ParserCreate(NULL) )
+    : parser( nullptr )
     , depth( 0 )
     , state( STATE_START )
     , statedepth( 0 )
@@ -121,18 +122,27 @@
        swtab[sw->from] = sw;
       sbtab[sw->to] = sw->from;
     }
-    XML_SetUserData(parser, this);
-    XML_SetElementHandler(parser, startElement, endElement);
-    XML_SetCharacterDataHandler(parser, characterData);
+
+    xmlSAXHandler sax;
+    memset(&sax, 0, sizeof(sax));
+    sax.startElement = startElement;
+    sax.endElement = endElement;
+    sax.characters = characterData;
+
+    //internally creates a copy of xmlSaxHandler, so having it as local 
variable is save
+    parser = xmlCreatePushParserCtxt(&sax, this, NULL, 0, NULL);
   }
 
   ~ml_parsedata()
   {
-    XML_ParserFree(parser);
+    if (parser) {
+      xmlFreeParserCtxt(parser);
+      parser = nullptr;
+    }
     free(content);
   }
 
-  XML_Parser parser;
+  xmlParserCtxtPtr parser;
   int depth;
   enum state state;
   int statedepth;
@@ -164,18 +174,22 @@
 };
 
 static const char *
-find_attr(const char *txt, const char **atts)
+find_attr(const char *txt, const xmlChar **atts)
 {
+  if(!atts) {
+    return 0;
+  }
+
   for (; *atts; atts += 2)
     {
-      if (!strcmp(*atts, txt))
-        return atts[1];
+      if (!strcmp(reinterpret_cast<const char*>(*atts), txt))
+        return reinterpret_cast<const char*>(atts[1]);
     }
   return 0;
 }
 
 static void XMLCALL
-startElement(void *userData, const char *name, const char **atts)
+startElement(void *userData, const xmlChar *name, const xmlChar **atts)
 {
   struct ml_parsedata *pd = reinterpret_cast<struct ml_parsedata *>(userData);
   struct stateswitch *sw;
@@ -188,7 +202,7 @@
   if (!pd->swtab[pd->state])
     return;
   for (sw = pd->swtab[pd->state]; sw->from == pd->state; sw++)  /* find name 
in statetable */
-    if (sw->ename == name)
+    if (sw->ename == reinterpret_cast<const char *>(name))
       break;
   if (sw->from != pd->state)
     return;
@@ -313,7 +327,7 @@
 }
 
 static void XMLCALL
-endElement(void *userData, const char *name)
+endElement(void *userData, const xmlChar *name)
 {
   struct ml_parsedata *pd = reinterpret_cast<struct ml_parsedata *>(userData);
   // printf("end depth %d-%d name %s\n", pd->depth, pd->statedepth, name);
@@ -383,7 +397,7 @@
 }
 
 static void XMLCALL
-characterData(void *userData, const XML_Char *s, int len)
+characterData(void *userData, const xmlChar *s, int len)
 {
   struct ml_parsedata *pd = reinterpret_cast<struct ml_parsedata *>(userData);
   int l;
@@ -438,8 +452,10 @@
 {
   if (!len)
     return;
-  if (XML_Parse(pd->parser, buf, len, 0) == XML_STATUS_ERROR)
+
+  if (xmlParseChunk(pd->parser, buf, len, 0)) {
     ZYPP_THROW(Exception("Parse Error"));
+  }
 }
 
 static bool urlcmp(const ml_url &a, const ml_url &b)
@@ -450,8 +466,9 @@
 void
 MetaLinkParser::parseEnd()
 {
-  if (XML_Parse(pd->parser, 0, 0, 1) == XML_STATUS_ERROR)
+  if (xmlParseChunk(pd->parser, NULL, 0, 1)) {
     ZYPP_THROW(Exception("Parse Error"));
+  }
   if (pd->nurls)
     stable_sort(pd->urls.begin(), pd->urls.end(), urlcmp);
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libzypp-17.1.2/zypp/target/rpm/RpmDb.cc 
new/libzypp-17.1.3/zypp/target/rpm/RpmDb.cc
--- old/libzypp-17.1.2/zypp/target/rpm/RpmDb.cc 2018-01-15 17:04:28.000000000 
+0100
+++ new/libzypp-17.1.3/zypp/target/rpm/RpmDb.cc 2018-02-20 18:06:18.000000000 
+0100
@@ -32,6 +32,7 @@
 #include "zypp/base/Logger.h"
 #include "zypp/base/String.h"
 #include "zypp/base/Gettext.h"
+#include "zypp/base/LocaleGuard.h"
 
 #include "zypp/Date.h"
 #include "zypp/Pathname.h"
@@ -1536,7 +1537,9 @@
     qva.qva_flags = (VERIFY_DIGEST|VERIFY_SIGNATURE);
 
     RpmlogCapture vresult;
+    LocaleGuard guard( LC_ALL, "C" );  // bsc#1076415: rpm log output is 
localized, but we need to parse it :(
     int res = ::rpmVerifySignatures( &qva, ts, fd, path_r.basename().c_str() );
+    guard.restore();
 
     ts = rpmtsFree(ts);
     ::Fclose( fd );


Reply via email to