From 62cbc9274ecbd4b52b8f8d92f7c4e923a81a0344 Mon Sep 17 00:00:00 2001 From: DongHun Kwak Date: Mon, 2 Sep 2019 16:14:41 +0900 Subject: [PATCH] Imported Upstream version 17.1.3 --- .travis.yml | 29 +++++++++ CMakeLists.txt | 7 +-- VERSION.cmake | 4 +- libzypp.pc.cmake | 2 +- libzypp.spec.cmake | 34 +++-------- package/libzypp.changes | 10 +++ po/fi.po | 56 ++++++++--------- po/nl.po | 142 +++++++++++++++++++++---------------------- zypp/CMakeLists.txt | 3 +- zypp/base/GzStream.cc | 2 +- zypp/base/LocaleGuard.h | 66 ++++++++++++++++++++ zypp/media/MediaBlockList.cc | 1 - zypp/media/MetaLinkParser.cc | 55 +++++++++++------ zypp/target/rpm/RpmDb.cc | 3 + 14 files changed, 255 insertions(+), 159 deletions(-) create mode 100644 .travis.yml create mode 100644 zypp/base/LocaleGuard.h diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..d8ba8bc --- /dev/null +++ b/.travis.yml @@ -0,0 +1,29 @@ +sudo: required +dist: trusty +group: stable +language: c++ +os: linux + +services: +- docker + +before_install: +- cat /proc/cpuinfo +- docker pull opensuse:tumbleweed +- docker run -i -d --name test opensuse:tumbleweed bash +- docker exec test zypper ref +- docker exec test zypper in -y --recommends cmake openssl-devel boost-devel dejagnu doxygen gcc-c++ gettext-devel graphviz libxml2-devel libproxy-devel pkg-config libsolv-devel libsolv-tools ruby rpm-devel libcurl-devel libboost_program_options*-devel libboost_test*-devel libudev-devel xorg-x11-fonts-core xorg-x11-fonts texlive-lm-fonts + +script: +- docker cp ../libzypp/ test:/root +- docker exec test mkdir /root/build +- docker exec test bash -c "cd /root/build && cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_SKIP_RPATH=1 ../libzypp" +- docker exec test bash -c "cd /root/build && make -j4 VERBOSE=1" +- docker exec test bash -c "cd /root/build && make -j4 -C doc/autodoc" +- docker exec test bash -c "cd /root/build && make -j4 -C po translations" +- docker exec test bash -c "cd /root/build && make -j4 -C tests" +- docker exec test bash -c "cd /root/build/tests && LD_LIBRARY_PATH=$PWD/../zypp:$LD_LIBRARY_PATH ctest ." + +on: + repo: openSUSE/libzypp + tags: true diff --git a/CMakeLists.txt b/CMakeLists.txt index 851a958..c042289 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -52,8 +52,8 @@ include(CheckCXXCompilerFlag) 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 @@ ELSE() 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 --git a/VERSION.cmake b/VERSION.cmake index 82d4621..3e77998 100644 --- a/VERSION.cmake +++ b/VERSION.cmake @@ -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 --git a/libzypp.pc.cmake b/libzypp.pc.cmake index 1582d9f..6e3e970 100644 --- a/libzypp.pc.cmake +++ b/libzypp.pc.cmake @@ -8,7 +8,7 @@ Version: @VERSION@ 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 --git a/libzypp.spec.cmake b/libzypp.spec.cmake index 9b34c4d..e05c999 100644 --- a/libzypp.spec.cmake +++ b/libzypp.spec.cmake @@ -16,8 +16,6 @@ # -%define force_gcc_46 0 - Name: @PACKAGE@ Version: @VERSION@ Release: 0 @@ -61,12 +59,7 @@ BuildRequires: boost-devel %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 @@ Requires: libsolv-tools # 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 @@ BuildRequires: librpm-devel > 4.4 %endif %if 0%{?suse_version} +BuildRequires: gpg2 Requires: gpg2 %else +BuildRequires: gnupg2 Requires: gnupg2 %endif @@ -201,10 +190,6 @@ Package, Patch, Pattern, and Product Management - developers files %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 @@ cmake -DCMAKE_INSTALL_PREFIX=%{_prefix} \ 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 @@ make -C po install DESTDIR=$RPM_BUILD_ROOT 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 --git a/package/libzypp.changes b/package/libzypp.changes index b18c640..e9df2ef 100644 --- a/package/libzypp.changes +++ b/package/libzypp.changes @@ -1,4 +1,14 @@ ------------------------------------------------------------------- +Tue Feb 20 18:03:24 CET 2018 - ma@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 - ma@suse.de - Fix crash when installing broken rpm packages (bsc#1078284) diff --git a/po/fi.po b/po/fi.po index c4ef8d2..c7f6e8c 100644 --- a/po/fi.po +++ b/po/fi.po @@ -20,16 +20,16 @@ msgstr "" "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 \n" -"Language-Team: Finnish \n" +"PO-Revision-Date: 2018-02-15 11:35+0000\n" +"Last-Translator: Tommi Nieminen \n" +"Language-Team: Finnish " +"\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 @@ msgstr "" "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 @@ msgstr "Tehdään seuraavat toiminnot:" #. 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 @@ msgstr "(vanhenee 24 tunnin kuluessa)" #. 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 @@ msgstr "Tuntematon palvelu '%1%': Poistetaan orpo palvelulähde '%2%'" #. 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 @@ msgid "" "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 @@ msgid "One or both of '%s' or '%s' attributes is required." 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 @@ msgid "break %s by ignoring some of its dependencies" 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 @@ msgid "keep %s" 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 @@ msgstr "Julkisen avaimen %1% poisto epäonnistui" #: 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 @@ msgstr "luotiin varmuuskopio %s" #. 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 @@ msgstr "Tuntematon allekirjoituksen tyyppi" #. 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 @@ msgstr "Tiedostoa ei ole tai allekirjoitusta ei voi tarkistaa" #. 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 --git a/po/nl.po b/po/nl.po index 9d3b8f9..16cf431 100644 --- a/po/nl.po +++ b/po/nl.po @@ -16,8 +16,8 @@ msgstr "" "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" +"PO-Revision-Date: 2018-02-08 13:48+0000\n" +"Last-Translator: Eva van Rein \n" "Language-Team: Dutch " "\n" "Language: nl\n" @@ -25,7 +25,7 @@ msgstr "" "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 @@ msgstr "Argentinië" #. :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 @@ msgstr "Aruba" #. :ABW:533: #: zypp/CountryCode.cc:173 msgid "Aland Islands" -msgstr "Aland-eilanden" +msgstr "Åland" #. :ALA:248: #: zypp/CountryCode.cc:174 @@ -211,7 +211,7 @@ msgstr "Bhutan" #. :BTN:064: #: zypp/CountryCode.cc:190 msgid "Bouvet Island" -msgstr "Bouvet-eiland" +msgstr "Bouveteiland" #. :BVT:074: #: zypp/CountryCode.cc:191 @@ -236,7 +236,7 @@ msgstr "Canada" #. :CAN:124: #: zypp/CountryCode.cc:195 msgid "Cocos (Keeling) Islands" -msgstr "Cocos(Keeling)eilanden" +msgstr "Cocoseilanden" #. :CCK:166: #. :CAF:140: @@ -392,7 +392,7 @@ msgstr "Fiji" #. :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 @@ msgstr "Federale staten van Micronesia" #. :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 @@ msgstr "Frankrijk" #. :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 @@ msgstr "Griekenland" #. :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 @@ msgstr "Guyana" #. :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 @@ msgstr "Israël" #. :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 @@ msgstr "India" #. :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 @@ msgstr "Comoren" #. :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 @@ msgstr "Kazachstan" #. :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 @@ msgstr "Madagaskar" #. :MDG:450: #: zypp/CountryCode.cc:299 msgid "Marshall Islands" -msgstr "Marshall Eilanden" +msgstr "Marshalleilanden" #. :MHL:584: #: zypp/CountryCode.cc:300 @@ -848,7 +848,7 @@ msgstr "Niger" #. :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 @@ msgstr "Kan geen fork (%s) uitvoeren." #: 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 @@ msgstr "Adygees" #. 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 @@ msgstr "Arapaho" #. 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 @@ msgstr "Balinees" #. 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 @@ msgstr "Bengaals" #. 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 @@ msgstr "Siksika" #. 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 @@ msgstr "Caddo" #. 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 @@ msgstr "Catalaans" #. 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 @@ msgstr "Cebuano" #. 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 @@ msgstr "Kasjoebisch" #. 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 @@ msgstr "Dogri" #. 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 @@ msgstr "Fijisch" #. 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 @@ msgstr "Fins" #. 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 @@ msgstr "Gbaya" #. 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 @@ msgstr "Interlingua (International Auxiliary Language Association)" #. 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 @@ msgstr "Indonesisch" #. 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 @@ msgstr "Inupiak" #. 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 @@ msgstr "Khasi" #. 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 @@ msgstr "Maori" #. 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 @@ msgstr "Diverse talen" #. 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 @@ msgstr "Niaas" #. 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 @@ msgstr "Otomi-talen" #. 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 @@ msgstr "Perzisch" #. 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 @@ msgstr "Rarotongaans" #. 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 @@ msgstr "Jakoets" #. 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 @@ msgstr "Sulkoeps" #. 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 @@ msgstr "Siouaanse talen" #. 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 @@ msgstr "Serer" #. 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 @@ msgstr "Tahitisch" #. 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 @@ msgstr "Turks" #. 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 @@ msgstr "Zuni" #: 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 @@ msgstr "(VERLOPEN)" #. 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 @@ msgstr[1] "(verloopt binnen %d dagen)" #: 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 @@ msgstr "Het lezen van map '%s' is mislukt" #: 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 @@ msgstr "Kan bestand '%s' niet openen voor schrijven." #: 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 @@ msgstr "Kan map voor metadata-cache niet aanmaken." #: 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 @@ msgstr "Kan cache in %s niet aanmaken - geen toegangsrechten." #: 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 @@ msgstr "Onbekende fout bij lezen van '%s'" #: 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 @@ msgstr "Service-plug-in ondersteunt geen wijzigen van een attribuut." #: 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 @@ msgstr "negeer normaliter enige afhankelijkheden" #: 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 @@ msgstr "Niets levert het gevraagde %s" #: 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 @@ msgstr "verouderde %s handhaven" #: 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 --git a/zypp/CMakeLists.txt b/zypp/CMakeLists.txt index 4919a50..ed72bfd 100644 --- a/zypp/CMakeLists.txt +++ b/zypp/CMakeLists.txt @@ -252,6 +252,7 @@ SET( zypp_base_HEADERS 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 ${GETTEXT_LIBRARIES} ) 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 --git a/zypp/base/GzStream.cc b/zypp/base/GzStream.cc index 2d9edfc..e0bce7a 100644 --- a/zypp/base/GzStream.cc +++ b/zypp/base/GzStream.cc @@ -210,7 +210,7 @@ namespace zypp 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 --git a/zypp/base/LocaleGuard.h b/zypp/base/LocaleGuard.h new file mode 100644 index 0000000..79fc072 --- /dev/null +++ b/zypp/base/LocaleGuard.h @@ -0,0 +1,66 @@ +/*---------------------------------------------------------------------\ +| ____ _ __ __ ___ | +| |__ / \ / / . \ . \ | +| / / \ V /| _/ _/ | +| / /__ | | | | | | | +| /_____||_| |_| |_| | +| | +\---------------------------------------------------------------------*/ +/** \file zypp/base/LocaleGuard.h + */ +#ifndef ZYPP_BASE_LOCALEGUARD_H +#define ZYPP_BASE_LOCALEGUARD_H + +#include +#include + +#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 --git a/zypp/media/MediaBlockList.cc b/zypp/media/MediaBlockList.cc index c33673a..57ccd58 100644 --- a/zypp/media/MediaBlockList.cc +++ b/zypp/media/MediaBlockList.cc @@ -14,7 +14,6 @@ #include #include #include -#include #include #include diff --git a/zypp/media/MetaLinkParser.cc b/zypp/media/MetaLinkParser.cc index bf937db..82612e4 100644 --- a/zypp/media/MetaLinkParser.cc +++ b/zypp/media/MetaLinkParser.cc @@ -17,13 +17,14 @@ #include #include #include -#include #include #include #include #include +#include + using namespace std; using namespace zypp::base; @@ -86,13 +87,13 @@ struct ml_url { 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 @@ struct ml_parsedata : private zypp::base::NonCopyable { 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 @@ struct ml_parsedata : private zypp::base::NonCopyable { }; 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(*atts), txt)) + return reinterpret_cast(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(userData); struct stateswitch *sw; @@ -188,7 +202,7 @@ startElement(void *userData, const char *name, const char **atts) 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(name)) break; if (sw->from != pd->state) return; @@ -313,7 +327,7 @@ hexstr2bytes(unsigned char *buf, const char *str, int buflen) } static void XMLCALL -endElement(void *userData, const char *name) +endElement(void *userData, const xmlChar *name) { struct ml_parsedata *pd = reinterpret_cast(userData); // printf("end depth %d-%d name %s\n", pd->depth, pd->statedepth, name); @@ -383,7 +397,7 @@ endElement(void *userData, const char *name) } 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(userData); int l; @@ -438,8 +452,10 @@ MetaLinkParser::parseBytes(const char *buf, size_t len) { 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 @@ static bool urlcmp(const ml_url &a, const ml_url &b) 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 --git a/zypp/target/rpm/RpmDb.cc b/zypp/target/rpm/RpmDb.cc index 1d07a0c..3b9da6a 100644 --- a/zypp/target/rpm/RpmDb.cc +++ b/zypp/target/rpm/RpmDb.cc @@ -32,6 +32,7 @@ extern "C" #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 @@ namespace 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 ); -- 2.7.4