SET(LIBZYPP_MAJOR "17")
SET(LIBZYPP_COMPATMINOR "22")
SET(LIBZYPP_MINOR "28")
-SET(LIBZYPP_PATCH "0")
+SET(LIBZYPP_PATCH "1")
#
-# LAST RELEASED: 17.28.0 (22)
+# LAST RELEASED: 17.28.1 (22)
# (The number in parenthesis is LIBZYPP_COMPATMINOR)
#=======
-------------------------------------------------------------------
+Mon Aug 23 08:39:15 CEST 2021 - ma@suse.de
+
+- Fix crashes in logging code when shutting down (bsc#1189031)
+- version 17.28.1 (22)
+
+-------------------------------------------------------------------
Mon Jul 26 11:48:28 CEST 2021 - ma@suse.de
- Rephrase vendor conflict message in case 2 packages are
"Project-Id-Version: YaST (@memory@)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-26 11:04+0200\n"
-"PO-Revision-Date: 2021-05-01 01:58+0000\n"
+"PO-Revision-Date: 2021-07-26 20:11+0000\n"
"Last-Translator: David Medina <medipas@gmail.com>\n"
"Language-Team: Catalan <https://l10n.opensuse.org/projects/libzypp/master/ca/"
">\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 4.6\n"
+"X-Generator: Weblate 4.7.1\n"
#: zypp/CountryCode.cc:50
msgid "Unknown country: "
"install %1% from vendor %2%\n"
" replacing %3% from vendor %4%"
msgstr ""
+"instal·la %1% del proveïdor %2%\n"
+" i reemplaça %3% del proveïdor %4%"
#: zypp/solver/detail/SATResolver.cc:1507
#, boost-format
#: zypp/target/TargetImpl.cc:2619
msgid "Executing the transaction failed because of the following problems:"
-msgstr ""
+msgstr "No s'ha pogut executar la transacció a causa dels problemes següents:"
#. TranslatorExplanation after semicolon is error message
#. TranslatorExplanation the colon is followed by an error message
#: zypp-core/zyppng/io/forkspawnengine.cc:111
#: zypp-core/zyppng/io/forkspawnengine.cc:359
msgid "Invalid spawn arguments given."
-msgstr ""
+msgstr "S'han donat arguments de generació no vàlids."
#: zypp-core/zyppng/io/forkspawnengine.cc:174
msgid "Unable to create control pipe."
-msgstr ""
+msgstr "No es pot crear la canonada de control."
#: zypp-core/zyppng/io/forkspawnengine.cc:240
#, c-format, boost-format
#: zypp-core/zyppng/io/forkspawnengine.cc:306
#, c-format, boost-format
msgid "Can't exec '%s', chdir failed (%s)."
-msgstr ""
+msgstr "No es pot executar %s, ha fallat l'ordre chdir (%s)."
#: zypp-core/zyppng/io/forkspawnengine.cc:309
#, c-format, boost-format
msgid "Can't exec '%s', chroot failed (%s)."
-msgstr ""
+msgstr "No es pot executar %s, ha fallat l'ordre chroot (%s)."
#: zypp-core/zyppng/io/forkspawnengine.cc:312
#, c-format, boost-format
msgid "Can't exec '%s', exec failed (%s)."
-msgstr ""
+msgstr "No es pot executar %s, ha fallat l'ordre exec (%s)."
#: zypp-core/zyppng/io/forkspawnengine.cc:316
#, c-format, boost-format
msgid "Can't exec '%s', unexpected error."
-msgstr ""
+msgstr "No es pot executar %s, error inesperat."
#~ msgid "%s does not belong to a distupgrade repository"
#~ msgstr "%s no pertany a un repositori d'actualització de la distribució"
"Project-Id-Version: zypp\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-26 11:04+0200\n"
-"PO-Revision-Date: 2021-05-31 22:00+0000\n"
+"PO-Revision-Date: 2021-07-26 20:11+0000\n"
"Last-Translator: Aleš Kastner <alkas@volny.cz>\n"
-"Language-Team: Czech <https://l10n.opensuse.org/projects/libzypp/master/cs/"
-">\n"
+"Language-Team: Czech <https://l10n.opensuse.org/projects/libzypp/master/cs/>"
+"\n"
"Language: cs\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-"X-Generator: Weblate 4.6.2\n"
+"X-Generator: Weblate 4.7.1\n"
#: zypp/CountryCode.cc:50
msgid "Unknown country: "
#. :VGB:092:
#: zypp/CountryCode.cc:394
msgid "Virgin Islands, U.S."
-msgstr "Panenské ostrovy (U.S.)"
+msgstr "Panenské ostrovy, U.S."
# VN
# fuzzy
"install %1% from vendor %2%\n"
" replacing %3% from vendor %4%"
msgstr ""
+"instalovat %1% od dodavatele %2%\n"
+" nahradit %3% od dodavatele %4%"
#: zypp/solver/detail/SATResolver.cc:1507
#, boost-format
#: zypp/target/TargetImpl.cc:2619
msgid "Executing the transaction failed because of the following problems:"
-msgstr ""
+msgstr "Provedení transakce se nezdařilo kvůli následujícím problémům:"
#. TranslatorExplanation after semicolon is error message
#. TranslatorExplanation the colon is followed by an error message
#: zypp-core/zyppng/io/forkspawnengine.cc:111
#: zypp-core/zyppng/io/forkspawnengine.cc:359
msgid "Invalid spawn arguments given."
-msgstr ""
+msgstr "Zadány neplatné argumenty spawn."
#: zypp-core/zyppng/io/forkspawnengine.cc:174
msgid "Unable to create control pipe."
-msgstr ""
+msgstr "Nelze vytvořit řídicí kanál."
#: zypp-core/zyppng/io/forkspawnengine.cc:240
#, c-format, boost-format
#: zypp-core/zyppng/io/forkspawnengine.cc:306
#, c-format, boost-format
msgid "Can't exec '%s', chdir failed (%s)."
-msgstr ""
+msgstr "Nelze spustit '%s', chyba chdir (%s)."
#: zypp-core/zyppng/io/forkspawnengine.cc:309
#, c-format, boost-format
msgid "Can't exec '%s', chroot failed (%s)."
-msgstr ""
+msgstr "Nelze spustit '%s', chyba chroot (%s)."
#: zypp-core/zyppng/io/forkspawnengine.cc:312
#, c-format, boost-format
msgid "Can't exec '%s', exec failed (%s)."
-msgstr ""
+msgstr "Nelze spustit '%s', chyba exec (%s)."
#: zypp-core/zyppng/io/forkspawnengine.cc:316
#, c-format, boost-format
msgid "Can't exec '%s', unexpected error."
-msgstr ""
+msgstr "Nelze spustit '%s', neočekávaná chyba."
#~ msgid "%s does not belong to a distupgrade repository"
#~ msgstr "%s nenáleží do repozitáře pro aktualizaci distribuce"
"Project-Id-Version: zypp\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-26 11:04+0200\n"
-"PO-Revision-Date: 2021-06-11 16:59+0000\n"
+"PO-Revision-Date: 2021-07-26 20:11+0000\n"
"Last-Translator: Paolo Za <zapaolo@email.it>\n"
"Language-Team: Italian <https://l10n.opensuse.org/projects/libzypp/master/it/"
">\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 4.6.2\n"
+"X-Generator: Weblate 4.7.1\n"
"X-Poedit-Bookmarks: 370,-1,-1,-1,-1,-1,-1,-1,-1,-1\n"
#: zypp/CountryCode.cc:50
"install %1% from vendor %2%\n"
" replacing %3% from vendor %4%"
msgstr ""
+"installa %1 dal fornitore %2\n"
+" sostituzione di %3% del fornitore %4%"
#: zypp/solver/detail/SATResolver.cc:1507
#, boost-format
#: zypp/target/TargetImpl.cc:2619
msgid "Executing the transaction failed because of the following problems:"
msgstr ""
+"L'esecuzione della transazione non è riuscita a causa dei seguenti problemi:"
#. TranslatorExplanation after semicolon is error message
#. TranslatorExplanation the colon is followed by an error message
#: zypp-core/zyppng/io/forkspawnengine.cc:306
#, c-format, boost-format
msgid "Can't exec '%s', chdir failed (%s)."
-msgstr ""
+msgstr "Impossibile eseguire '%s', chdir non riuscito (%s)."
#: zypp-core/zyppng/io/forkspawnengine.cc:309
#, c-format, boost-format
msgid "Can't exec '%s', chroot failed (%s)."
-msgstr ""
+msgstr "Impossibile eseguire '%s', chroot non riuscito (%s)."
#: zypp-core/zyppng/io/forkspawnengine.cc:312
#, c-format, boost-format
#: zypp-core/zyppng/io/forkspawnengine.cc:316
#, c-format, boost-format
msgid "Can't exec '%s', unexpected error."
-msgstr ""
+msgstr "Impossibile eseguire '%s', errore inaspettato."
#~ msgid "%s does not belong to a distupgrade repository"
#~ msgstr ""
"Project-Id-Version: zypp\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-26 11:04+0200\n"
-"PO-Revision-Date: 2021-06-07 11:00+0000\n"
+"PO-Revision-Date: 2021-07-27 01:10+0000\n"
"Last-Translator: Yasuhiko Kamata <belphegor@belbel.or.jp>\n"
"Language-Team: Japanese <https://l10n.opensuse.org/projects/libzypp/master/"
"ja/>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 4.6.2\n"
+"X-Generator: Weblate 4.7.1\n"
#: zypp/CountryCode.cc:50
msgid "Unknown country: "
"install %1% from vendor %2%\n"
" replacing %3% from vendor %4%"
msgstr ""
+"ベンダ %4% からの %3% を\n"
+" ベンダ %2% からの %1% に置き換えてインストールします"
#: zypp/solver/detail/SATResolver.cc:1507
#, boost-format
#: zypp/target/TargetImpl.cc:2619
msgid "Executing the transaction failed because of the following problems:"
-msgstr ""
+msgstr "下記の問題が発生したことによって処理が失敗しました:"
#. TranslatorExplanation after semicolon is error message
#. TranslatorExplanation the colon is followed by an error message
#: zypp-core/zyppng/io/forkspawnengine.cc:111
#: zypp-core/zyppng/io/forkspawnengine.cc:359
msgid "Invalid spawn arguments given."
-msgstr ""
+msgstr "正しくない実行パラメータが指定されました。"
#: zypp-core/zyppng/io/forkspawnengine.cc:174
msgid "Unable to create control pipe."
-msgstr ""
+msgstr "制御パイプを作成できませんでした。"
#: zypp-core/zyppng/io/forkspawnengine.cc:240
#, c-format, boost-format
#: zypp-core/zyppng/io/forkspawnengine.cc:306
#, c-format, boost-format
msgid "Can't exec '%s', chdir failed (%s)."
-msgstr ""
+msgstr "'%s' を実行できません。 chdir が失敗しました (%s) 。"
#: zypp-core/zyppng/io/forkspawnengine.cc:309
#, c-format, boost-format
msgid "Can't exec '%s', chroot failed (%s)."
-msgstr ""
+msgstr "'%s' を実行できません。 chroot が失敗しました (%s) 。"
#: zypp-core/zyppng/io/forkspawnengine.cc:312
#, c-format, boost-format
msgid "Can't exec '%s', exec failed (%s)."
-msgstr ""
+msgstr "'%s' を実行できません。 exec が失敗しました (%s) 。"
#: zypp-core/zyppng/io/forkspawnengine.cc:316
#, c-format, boost-format
msgid "Can't exec '%s', unexpected error."
-msgstr ""
+msgstr "'%s' を実行できません。予期しないエラーです。"
#~ msgid "%s does not belong to a distupgrade repository"
#~ msgstr "%s はdistupgradeのリポジトリに属していません"
"Project-Id-Version: zypp.nl\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-26 11:04+0200\n"
-"PO-Revision-Date: 2021-05-01 01:58+0000\n"
+"PO-Revision-Date: 2021-07-26 20:11+0000\n"
"Last-Translator: Freek de Kruijf <freek@opensuse.org>\n"
-"Language-Team: Dutch <https://l10n.opensuse.org/projects/libzypp/master/nl/"
-">\n"
+"Language-Team: Dutch <https://l10n.opensuse.org/projects/libzypp/master/nl/>"
+"\n"
"Language: nl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.6\n"
+"X-Generator: Weblate 4.7.1\n"
#: zypp/CountryCode.cc:50
msgid "Unknown country: "
#: zypp/target/TargetImpl.cc:2619
msgid "Executing the transaction failed because of the following problems:"
-msgstr ""
+msgstr "Uitvoeren van de transactie is mislukt vanwege de volgende problemen:"
#. TranslatorExplanation after semicolon is error message
#. TranslatorExplanation the colon is followed by an error message
#: zypp-core/zyppng/io/forkspawnengine.cc:111
#: zypp-core/zyppng/io/forkspawnengine.cc:359
msgid "Invalid spawn arguments given."
-msgstr ""
+msgstr "Ongeldige afsplits argumenten gegeven."
#: zypp-core/zyppng/io/forkspawnengine.cc:174
msgid "Unable to create control pipe."
-msgstr ""
+msgstr "Pipe voor besturing maken lukt niet."
#: zypp-core/zyppng/io/forkspawnengine.cc:240
#, c-format, boost-format
#: zypp-core/zyppng/io/forkspawnengine.cc:306
#, c-format, boost-format
msgid "Can't exec '%s', chdir failed (%s)."
-msgstr ""
+msgstr "Kan '%s' niet uitvoeren, chdir is mislukt (%s)."
#: zypp-core/zyppng/io/forkspawnengine.cc:309
#, c-format, boost-format
msgid "Can't exec '%s', chroot failed (%s)."
-msgstr ""
+msgstr "'%s' uitvoeren lukt niet, chroot is mislukt (%s)."
#: zypp-core/zyppng/io/forkspawnengine.cc:312
#, c-format, boost-format
msgid "Can't exec '%s', exec failed (%s)."
-msgstr ""
+msgstr "'%s' uitvoeren lukt niet, exec is mislukt (%s)."
#: zypp-core/zyppng/io/forkspawnengine.cc:316
#, c-format, boost-format
msgid "Can't exec '%s', unexpected error."
-msgstr ""
+msgstr "'%s' uitvoeren lukt niet, onverwachte fout."
#~ msgid "%s does not belong to a distupgrade repository"
#~ msgstr "%s behoort niet tot een opslagruimte voor distributie-upgrade"
"Project-Id-Version: zypp\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-26 11:04+0200\n"
-"PO-Revision-Date: 2021-05-03 16:57+0000\n"
-"Last-Translator: Luiz Fernando Ranghetti <elchevive68@gmail.com>\n"
+"PO-Revision-Date: 2021-07-26 20:11+0000\n"
+"Last-Translator: Rodrigo Macedo <rmsolucoeseminformatic4@gmail.com>\n"
"Language-Team: Portuguese (Brazil) <https://l10n.opensuse.org/projects/"
"libzypp/master/pt_BR/>\n"
"Language: pt_BR\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 4.6\n"
+"X-Generator: Weblate 4.7.1\n"
"X-Poedit-Language: Portuguese\n"
"X-Poedit-Country: BRAZIL\n"
"X-Poedit-SourceCharset: utf-8\n"
#. :VGB:092:
#: zypp/CountryCode.cc:394
msgid "Virgin Islands, U.S."
-msgstr "Ilhas Virgens Americanas"
+msgstr "Ilhas Virgens, EUA."
#. :VIR:850:
#: zypp/CountryCode.cc:395
"install %1% from vendor %2%\n"
" replacing %3% from vendor %4%"
msgstr ""
+"instale% 1% do fornecedor% 2%\n"
+" substituindo% 3% do fornecedor% 4%"
#: zypp/solver/detail/SATResolver.cc:1507
#, boost-format
#: zypp/target/TargetImpl.cc:2619
msgid "Executing the transaction failed because of the following problems:"
-msgstr ""
+msgstr "A execução da transação falhou devido aos seguintes problemas:"
#. TranslatorExplanation after semicolon is error message
#. TranslatorExplanation the colon is followed by an error message
#: zypp-core/zyppng/io/forkspawnengine.cc:111
#: zypp-core/zyppng/io/forkspawnengine.cc:359
msgid "Invalid spawn arguments given."
-msgstr ""
+msgstr "Argumentos de geração inválidos fornecidos."
#: zypp-core/zyppng/io/forkspawnengine.cc:174
msgid "Unable to create control pipe."
-msgstr ""
+msgstr "Incapaz de criar o tubo de controle."
#: zypp-core/zyppng/io/forkspawnengine.cc:240
#, c-format, boost-format
#: zypp-core/zyppng/io/forkspawnengine.cc:306
#, c-format, boost-format
msgid "Can't exec '%s', chdir failed (%s)."
-msgstr ""
+msgstr "Impossível executar '%s', chdir falhou (%s)."
#: zypp-core/zyppng/io/forkspawnengine.cc:309
#, c-format, boost-format
msgid "Can't exec '%s', chroot failed (%s)."
-msgstr ""
+msgstr "Impossível executar '%s', chroot falhou (%s)."
#: zypp-core/zyppng/io/forkspawnengine.cc:312
#, c-format, boost-format
msgid "Can't exec '%s', exec failed (%s)."
-msgstr ""
+msgstr "Impossível executar '%s', exec falhou (%s)."
#: zypp-core/zyppng/io/forkspawnengine.cc:316
#, c-format, boost-format
msgid "Can't exec '%s', unexpected error."
-msgstr ""
+msgstr "Impossível executar '%s', erro inesperado."
#~ msgid "%s does not belong to a distupgrade repository"
#~ msgstr "%s não pertence a um repositório de atualização da distribuição"
"Project-Id-Version: libzypp\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-26 11:04+0200\n"
-"PO-Revision-Date: 2021-04-30 19:57+0000\n"
+"PO-Revision-Date: 2021-08-03 19:11+0000\n"
"Last-Translator: Ferdinand Galko <galko.ferdinand@gmail.com>\n"
-"Language-Team: Slovak <https://l10n.opensuse.org/projects/libzypp/master/sk/"
-">\n"
+"Language-Team: Slovak <https://l10n.opensuse.org/projects/libzypp/master/sk/>"
+"\n"
"Language: sk\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-"X-Generator: Weblate 4.6\n"
+"X-Generator: Weblate 4.7.1\n"
#: zypp/CountryCode.cc:50
msgid "Unknown country: "
#: zypp/solver/detail/SATResolver.cc:1449
#, boost-format
msgid "install %1% although it has been retracted"
-msgstr "inštalovať %1%, aj keď bol stiahnutý"
+msgstr "inštalovať %1%, aj keď bol stiahnutý späť"
#. translator: %1% is a package name
#: zypp/solver/detail/SATResolver.cc:1452
"install %1% from vendor %2%\n"
" replacing %3% from vendor %4%"
msgstr ""
+"inštalovať %1% od dodávateľa %2%\n"
+" nahradenie %3% od dodávateľa %4%"
#: zypp/solver/detail/SATResolver.cc:1507
#, boost-format
#: zypp/target/TargetImpl.cc:2619
msgid "Executing the transaction failed because of the following problems:"
-msgstr ""
+msgstr "Vykonanie transakcie zlyhalo z dôvodu nasledujúcich problémov:"
#. TranslatorExplanation after semicolon is error message
#. TranslatorExplanation the colon is followed by an error message
#: zypp-core/zyppng/io/forkspawnengine.cc:111
#: zypp-core/zyppng/io/forkspawnengine.cc:359
msgid "Invalid spawn arguments given."
-msgstr ""
+msgstr "Zadané nesprávne argumenty spawn."
#: zypp-core/zyppng/io/forkspawnengine.cc:174
msgid "Unable to create control pipe."
-msgstr ""
+msgstr "Nie je možné vytvoriť riadiacu rúru."
#: zypp-core/zyppng/io/forkspawnengine.cc:240
#, c-format, boost-format
#: zypp-core/zyppng/io/forkspawnengine.cc:306
#, c-format, boost-format
msgid "Can't exec '%s', chdir failed (%s)."
-msgstr ""
+msgstr "Nemožno vykonať '%s', chdir zlyhal (%s)."
#: zypp-core/zyppng/io/forkspawnengine.cc:309
#, c-format, boost-format
msgid "Can't exec '%s', chroot failed (%s)."
-msgstr ""
+msgstr "Nemožno vykonať '%s', chroot zlyhal (%s)."
#: zypp-core/zyppng/io/forkspawnengine.cc:312
#, c-format, boost-format
msgid "Can't exec '%s', exec failed (%s)."
-msgstr ""
+msgstr "Nemožno vykonať '%s', exec zlyhal (%s)."
#: zypp-core/zyppng/io/forkspawnengine.cc:316
#, c-format, boost-format
msgid "Can't exec '%s', unexpected error."
-msgstr ""
+msgstr "Nemožno vykonať '%s', neočakávaná chyba."
#~ msgid "%s does not belong to a distupgrade repository"
#~ msgstr "%s nepatrí do repozitára zvýšenia verzie distribúcie"
"Project-Id-Version: YaST (@memory@)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-26 11:04+0200\n"
-"PO-Revision-Date: 2021-03-07 01:13+0000\n"
-"Last-Translator: Grace Yu <grace.yu@excel-gits.com>\n"
+"PO-Revision-Date: 2021-07-26 20:11+0000\n"
+"Last-Translator: Dingzhong Chen <wsxy162@gmail.com>\n"
"Language-Team: Chinese (China) <https://l10n.opensuse.org/projects/libzypp/"
"master/zh_CN/>\n"
"Language: zh_CN\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 3.6.1\n"
+"X-Generator: Weblate 4.7.1\n"
#: zypp/CountryCode.cc:50
msgid "Unknown country: "
#. translators: an annotation to a gpg keys expiry date
#: zypp/PublicKey.cc:63
msgid "does not expire"
-msgstr "æ\9cª过期"
+msgstr "æ°¸ä¸\8d过期"
#. translators: an annotation to a gpg keys expiry date: "expired: 1999-04-12"
#: zypp/PublicKey.cc:68
#. translators: an annotation to a gpg keys expiry date
#: zypp/PublicKey.cc:82
msgid "(does not expire)"
-msgstr "ï¼\88æ\9cª过期)"
+msgstr "ï¼\88æ°¸ä¸\8d过期)"
#. translators: an annotation to a gpg keys expiry date
#: zypp/PublicKey.cc:91
msgid ""
"Visit the SUSE Customer Center to check whether your registration is valid "
"and has not expired."
-msgstr "访问 SUSE 客户中心检查您的注册码是否有效且未过期。"
+msgstr "访问 SUSE 客户中心检查您的注册是否有效且未过期。"
#: zypp/media/MediaCurl.cc:636
#: zypp/zyppng/media/network/networkrequesterror.cc:129
if ( lhs.result != rhs.result )
return false;
// protect against reordered details:
- if ( lhs.detail.size() != rhs.detail.size() )
- return false;
+
+ // there seems to be a backporting of how rpm prints the signature check result
+ // breaking our tests here, instead of checking for exact equality we just require
+ // that all elements in the lhs are existant in the rhs instance.
+ //if ( lhs.detail.size() != rhs.detail.size() )
+ // return false;
+
for ( const auto & l : lhs.detail )
{
if ( std::find( rhs.detail.begin(), rhs.detail.end(), l ) == rhs.detail.end() )
FailedToAddStepToTransaction,
RpmFinishedWithTransactionError, // we got explicit error problems from rpm
RpmFinishedWithError, // the transaction started but could not be finished)
+ RpmOrderFailed, // running rpmtsorder failed
OtherError = 255
};
}
}
}
- int tsProbFilterFlags = RPMPROB_FILTER_NONE;
-
+ // those two cases are already handled by libzypp at the time a package set arrives here,
+ // we can safely filter those problems.
+ int tsProbFilterFlags = RPMPROB_FILTER_REPLACEPKG | RPMPROB_FILTER_OLDPACKAGE;
if ( msg.ignorearch() )
tsProbFilterFlags |= RPMPROB_FILTER_IGNOREARCH;
if ( msg.flags() & RpmInstFlag::RPMINST_IGNORESIZE )
tsProbFilterFlags |= RPMPROB_FILTER_DISKSPACE | RPMPROB_FILTER_DISKNODES;
+ const auto orderRes = rpmtsOrder( ts );
+ if ( orderRes ) {
+ std::cerr << zypp::str::Format( "Failed with error %1% while ordering transaction." )% orderRes << std::endl;
+ return RpmOrderFailed;
+ }
+
+ // clean up memory that is only used for dependency checks and ordering
+ rpmtsClean(ts);
+
// transaction steps are set up lets execute it
// the way how libRPM works is that it will try to install all packages even if some of them fail
// we need to go over the rpm problem set to mark those steps that have failed, we get no other hint on wether
struct LogControlImpl;
/*
- * Horrible ugly hack to prevent the use of LogControlImpl when libzypp is shutting down.
+ * Ugly hack to prevent the use of LogControlImpl when libzypp is shutting down.
* Due to the c++ std thread_local static instances are cleaned up before the first global static
* destructor is called. So all classes that use logging after that point in time would crash the
* application because its accessing a variable that has already been destroyed.
- *
- * This does not check if the current thread requesting a instance actually has one, it just keeps count
- * of how many instances are still available. Usually only the main thread should run into the condition
- * of getting a nullptr back.
*/
- static std::atomic_int & logControlImplReg() {
- static std::atomic_int instCount;
- return instCount;
+ int &logControlValidFlag() {
+ // We are using a POD flag that does not have a destructor,
+ // to flag if the thread_local destructors were already executed.
+ // Since TLS data is stored in a segment that is available until the thread ceases to exist it should still be readable
+ // after thread_local c++ destructors were already executed. Or so I hope.
+ static thread_local int logControlValid = 0;
+ return logControlValid;
}
///////////////////////////////////////////////////////////////////
, _excessive( getenv("ZYPP_FULLLOG") )
, _lineFormater( new LogControl::LineFormater )
{
- logControlImplReg().fetch_add(1);
+ logControlValidFlag() = 1;
std::call_once( flagReadEnvAutomatically, &LogControlImpl::readEnvVars, this);
}
~LogControlImpl()
{
- logControlImplReg().fetch_sub(1);
+ logControlValidFlag() = 0;
}
/** The LogControlImpl singleton
inline LogControlImpl *LogControlImpl::instance()
{
thread_local static LogControlImpl _instance;
- if ( logControlImplReg().load() > 0 )
+ if ( logControlValidFlag() > 0 )
return &_instance;
return nullptr;
}
// bsc#1181328: Some systemd tools require /proc to be mounted
AssertProcMounted assertProcMounted( _root );
- rpm::RpmInstFlags flags( policy_r.rpmInstFlags() );
+ // Why nodeps?
+ //
+ // Because zypp builds the transaction and the resolver asserts that
+ // everything is fine, or the user decided to ignore problems.
+ rpm::RpmInstFlags flags( policy_r.rpmInstFlags() | rpm::RPMINST_NODEPS );
zpt::Commit commit;
commit.set_flags( flags );
// helper function that sends RPM output to the currently active report, writing a warning to the log
// if there is none
- const auto &sendRpmLineToReport = [&]( std::string line ){
+ const auto &sendRpmLineToReport = [&]( const std::string &line ){
const auto &sendLogRep = [&]( auto &report, const auto &cType ){
callback::UserData cmdout(cType);
}
rpmmsg += line;
if ( line.back() != '\n' )
- line += '\n';
+ rpmmsg += '\n';
};
// before killing the report we need to wait for the script end tag
waitForScriptEnd();
- (*scriptreport)->finish( makeResObject( steps[stepId].satSolvable() ), p.fatal() ? rpm::CommitScriptReportSA::CRITICAL : rpm::CommitScriptReportSA::WARN );
+ (*scriptreport)->finish( resPtr, p.fatal() ? rpm::CommitScriptReportSA::CRITICAL : rpm::CommitScriptReportSA::WARN );
// manually reset the current report since we already sent the finish(), rest will be reset by the new start
scriptreport.reset();
case zypprpm::FailedToAddStepToTransaction:
ZYPP_THROW( rpm::RpmSubprocessException("zypp-rpm failed to build the transaction, check the logs for more informations.") );
break;
+ case zypprpm::RpmOrderFailed:
+ ZYPP_THROW( rpm::RpmSubprocessException("zypp-rpm failed to order the transaction, check the logs for more informations.") );
+ break;
}
for( int stepId = 0; (ZYppCommitResult::TransactionStepList::size_type)stepId < steps.size() && !abort ; stepId++ ) {
MediaNetworkConn::MediaNetworkConn( MediaNetworkServer &server, std::shared_ptr<Socket> &&socket ) : _server(server), _connection ( std::move( socket ) )
{
MIL_MEDIA << "Initializing Connection object " << std::endl;
- _connection->Base::connect( &Socket::sigReadyRead, *this, &MediaNetworkConn::onReadyRead );
- _connection->Base::connect( &Socket::sigDisconnected, *this, &MediaNetworkConn::onDisconnected );
- _connection->Base::connect( &Socket::sigError, *this, &MediaNetworkConn::onError );
+ _socketSigConns.insert( _socketSigConns.end(), {
+ _connection->Base::connect( &Socket::sigReadyRead, *this, &MediaNetworkConn::onReadyRead ),
+ _connection->Base::connect( &Socket::sigDisconnected, *this, &MediaNetworkConn::onDisconnected ),
+ _connection->Base::connect( &Socket::sigError, *this, &MediaNetworkConn::onError )
+ } );
//make sure we read possibly available data
onReadyRead();
trackedDlFinished( *req );
}
MIL_MEDIA << "Closing connection done!" << std::endl;
+
+ // clean up our socket connections, otherwise we receive signals we do not want to handle anymore
+ std::for_each( _socketSigConns.begin(), _socketSigConns.end(), []( auto &conn){ conn.disconnect(); } );
+ _socketSigConns.clear();
}
SignalProxy<void ()> MediaNetworkConn::sigDisconnected()
std::shared_ptr<Socket> _connection;
std::optional<int32_t> _pendingMessageSize;
Signal<void()> _disconnected;
+
+ std::vector<sigc::connection> _socketSigConns;
};
class LIBZYPP_NG_NO_EXPORT MediaNetworkThread : public Base