Imported Upstream version 16.0.5 13/94713/1
authorDongHun Kwak <dh0128.kwak@samsung.com>
Tue, 1 Nov 2016 02:12:25 +0000 (11:12 +0900)
committerDongHun Kwak <dh0128.kwak@samsung.com>
Tue, 1 Nov 2016 02:12:26 +0000 (11:12 +0900)
Change-Id: If6dcc391ac42e73ac0da52d806b9f09c28aeb244
Signed-off-by: DongHun Kwak <dh0128.kwak@samsung.com>
VERSION.cmake
package/libzypp.changes
po/ru.po
po/sv.po
po/uk.po
po/zh_CN.po
zypp.conf
zypp/ResolverProblem.cc
zypp/ZConfig.cc
zypp/ZConfig.h
zypp/media/MediaHandler.cc

index 95a2094..86fcf87 100644 (file)
@@ -61,8 +61,8 @@
 SET(LIBZYPP_MAJOR "16")
 SET(LIBZYPP_COMPATMINOR "0")
 SET(LIBZYPP_MINOR "0")
-SET(LIBZYPP_PATCH "4")
+SET(LIBZYPP_PATCH "5")
 #
-# LAST RELEASED: 16.0.4 (0)
+# LAST RELEASED: 16.0.5 (0)
 # (The number in parenthesis is LIBZYPP_COMPATMINOR)
 #=======
index 0afd0a0..64c609d 100644 (file)
@@ -1,4 +1,12 @@
 -------------------------------------------------------------------
+Tue Jun 21 11:11:03 CEST 2016 - ma@suse.de
+
+- Filter duplicate resolver solutions (bsc#985674)
+- zypp.conf: Add download.media_mountdir: Path where media are
+  preferably mounted or downloaded (FATE#319462)
+- version 16.0.5 (0)
+
+-------------------------------------------------------------------
 Wed Jun 15 12:36:27 CEST 2016 - ma@suse.de
 
 - Fix bug in removeRepository which may keep an empty .repo file
index 89c581f..fcf81e0 100644 (file)
--- a/po/ru.po
+++ b/po/ru.po
@@ -14,16 +14,17 @@ msgstr ""
 "Project-Id-Version: zypp.ru\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2016-05-03 15:55+0200\n"
-"PO-Revision-Date: 2015-11-17 22:10+0300\n"
-"Last-Translator: Aleksandr Melentev <minton@opensuse.org>\n"
-"Language-Team: Russian <opensuse-translation-ru@opensuse.org>\n"
+"PO-Revision-Date: 2016-06-17 21:06+0000\n"
+"Last-Translator: SLE Merge Robot <weblate-admin@opensuse.org>\n"
+"Language-Team: Russian "
+"<https://l10n.opensuse.org/projects/libzypp/master/ru/>\n"
 "Language: ru\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-"X-Generator: Lokalize 2.0\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<="
+"4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 2.6\n"
 
 #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55
 #: zypp/target/hal/HalException.h:64
@@ -32,12 +33,12 @@ msgstr "Исключение Hal"
 
 #: zypp/Url.cc:114
 msgid "Invalid LDAP URL query string"
-msgstr "Ð\9dевеÑ\80ная строка запроса LDAP в URL-адресе"
+msgstr "Ð\9dедопÑ\83Ñ\81Ñ\82имая строка запроса LDAP в URL-адресе"
 
 #: zypp/Url.cc:153
 #, c-format, boost-format
 msgid "Invalid LDAP URL query parameter '%s'"
-msgstr "Ð\9dевеÑ\80ный параметр запроса LDAP в URL-адресе: '%s'"
+msgstr "Ð\9dедопÑ\83Ñ\81Ñ\82имый параметр запроса LDAP в URL-адресе: '%s'"
 
 #: zypp/Url.cc:300
 msgid "Unable to clone Url object"
@@ -45,7 +46,7 @@ msgstr "Не удалось создать клон объекта URL"
 
 #: zypp/Url.cc:313
 msgid "Invalid empty Url object reference"
-msgstr "Ð\9dевеÑ\80ная ссылка на пустой объект URL"
+msgstr "Ð\9dедопÑ\83Ñ\81Ñ\82имая ссылка на пустой объект URL"
 
 #: zypp/Url.cc:326 zypp/Url.cc:340
 msgid "Unable to parse Url components"
@@ -115,11 +116,11 @@ msgstr "Подозрительный тип '%s' байта номер %u кон
 
 #: zypp/target/TargetImpl.cc:310
 msgid " executed"
-msgstr "выполнено"
+msgstr " выполнено"
 
 #: zypp/target/TargetImpl.cc:332
 msgid " execution failed"
-msgstr "сбой выполнения"
+msgstr " сбой при выполнении"
 
 #. translators: We may find the same script content in files with different names.
 #. Only the first occurence is executed, subsequent ones are skipped. It's a one-line
@@ -131,7 +132,7 @@ msgstr "%s уже выполнен как %s)"
 
 #: zypp/target/TargetImpl.cc:459
 msgid " execution skipped while aborting"
-msgstr "выполнение пропущено при прерывании"
+msgstr " выполнение пропущено во время прерывания работы"
 
 #: zypp/target/TargetImpl.cc:514 zypp/target/TargetImpl.cc:534
 #: zypp/target/TargetImpl.cc:562 zypp/target/TargetImpl.cc:599
@@ -643,7 +644,7 @@ msgstr ""
 
 #: zypp/VendorSupportOptions.cc:56
 msgid "Unknown support option. Description not available"
-msgstr "Неизвестный вариант поддержки. Описание недоступно."
+msgstr "Неизвестный вариант поддержки. Описание недоступно"
 
 #: zypp/CountryCode.cc:50
 msgid "Unknown country: "
@@ -692,7 +693,7 @@ msgstr "Армения"
 #. :ARM:051:
 #: zypp/CountryCode.cc:165
 msgid "Netherlands Antilles"
-msgstr "Нидерландские Антильские острова "
+msgstr "Нидерландские Антильские острова"
 
 #. :ANT:530:
 #: zypp/CountryCode.cc:166
@@ -4399,7 +4400,7 @@ msgstr ""
 #. translators: 'uninstallable' == 'not installable'
 #: zypp/solver/detail/SATResolver.cc:1084
 msgid "uninstallable providers: "
-msgstr "неÑ\83Ñ\81Ñ\82анавливаемÑ\8bе Ð¿Ð¾Ñ\81Ñ\82авÑ\89ики:"
+msgstr "поÑ\81Ñ\82авÑ\89ики, Ð½Ðµ Ð¿Ð¾Ð´Ð»ÐµÐ¶Ð°Ñ\89ие Ñ\83Ñ\81Ñ\82ановке: "
 
 #: zypp/solver/detail/SATResolver.cc:1141
 #, c-format, boost-format
@@ -4702,7 +4703,7 @@ msgstr "Расположение '%s' временно недоступно."
 #, c-format, boost-format
 msgid " SSL certificate problem, verify that the CA cert is OK for '%s'."
 msgstr ""
-"Проблема с сертификатом SSL, проверьте, всё ли в порядке с удостоверяющим "
+" Проблема с сертификатом SSL, проверьте, всё ли в порядке с удостоверяющим "
 "центром сертификата '%s'."
 
 #: zypp/media/MediaException.cc:231
index 3a28187..18141e7 100644 (file)
--- a/po/sv.po
+++ b/po/sv.po
@@ -14,10 +14,10 @@ msgstr ""
 "Project-Id-Version: zypp.sv\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2016-05-03 15:55+0200\n"
-"PO-Revision-Date: 2016-05-23 07:52+0000\n"
+"PO-Revision-Date: 2016-06-20 21:36+0000\n"
 "Last-Translator: Jonas Svensson <jonas@ekhorva.se>\n"
-"Language-Team: Swedish <http://l10n.opensuse.org/projects/libzypp/master/sv/>"
-"\n"
+"Language-Team: Swedish "
+"<https://l10n.opensuse.org/projects/libzypp/master/sv/>\n"
 "Language: sv\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -37,7 +37,7 @@ msgstr "Ogiltig LDAP URL-frågesträng"
 #: zypp/Url.cc:153
 #, c-format, boost-format
 msgid "Invalid LDAP URL query parameter '%s'"
-msgstr "Ogiltig LDAP URL-frågeparameter %s"
+msgstr "Ogiltig LDAP URL-frågeparameter '%s'"
 
 #: zypp/Url.cc:300
 msgid "Unable to clone Url object"
@@ -111,7 +111,7 @@ msgstr "Kompletterar"
 #: zypp/CheckSum.cc:136
 #, c-format, boost-format
 msgid "Dubious type '%s' for %u byte checksum '%s'"
-msgstr "Den tvivelaktiga typen %s för %u-bytekontrollsumma %s"
+msgstr "Den tvivelaktiga typen '%s' för %u-bytekontrollsumma '%s'"
 
 #: zypp/target/TargetImpl.cc:310
 msgid " executed"
@@ -283,7 +283,7 @@ msgstr "Signaturens offentliga nyckel är inte tillgänglig"
 #. translators: possible rpm package signature check result [brief]
 #: zypp/target/rpm/RpmDb.cc:2375
 msgid "File does not exist or signature can't be checked"
-msgstr "Filen existerar inte eller dess signatur kan inte kontrolleras"
+msgstr "Filen finns inte eller signaturen kan inte kontrolleras"
 
 #: zypp/ProblemSolution.cc:114
 msgid "Following actions will be done:"
@@ -304,11 +304,11 @@ msgstr "Det gick inte att läsa katalogen '%s'"
 #: zypp/RepoManager.cc:315
 #, boost-format
 msgid "Cannot read repo file '%1%': Permission denied"
-msgstr "Kan inte läsa förrådsfilen (repo file) '%1%': Åtkomst nekad"
+msgstr "Kan inte läsa förrådsfilen '%1%': Åtkomst nekad"
 
 #: zypp/RepoManager.cc:338
 msgid "Repository alias cannot start with dot."
-msgstr "Förrådets (repots) alias får inte inledas med en punkt."
+msgstr "Aliaset för ett förråd kan inte inledas med en punkt."
 
 #: zypp/RepoManager.cc:349
 msgid "Service alias cannot start with dot."
@@ -327,7 +327,7 @@ msgstr "Kan inte skriva till filen '%s'."
 #: zypp/RepoManager.cc:849
 #, boost-format
 msgid "Unknown service '%1%': Removing orphaned service repository '%2%'"
-msgstr "Okänd tjänst '%1%':  Tar bort den föräldrarlösa tjänstens förråd '%2%'"
+msgstr "Okänd tjänst '%1%': Tar bort övergivet förråd '%2%'"
 
 #. we will throw this later if no URL checks out fine
 #: zypp/RepoManager.cc:1082
@@ -343,22 +343,22 @@ msgstr "Kan inte skapa %s"
 
 #: zypp/RepoManager.cc:1140
 msgid "Can't create metadata cache directory."
-msgstr "Kan inte skapa metadata och katalog för cache."
+msgstr "Kan inte att skapa cachekatalog för metadata."
 
 #: zypp/RepoManager.cc:1282
 #, c-format, boost-format
 msgid "Building repository '%s' cache"
-msgstr "Bygger cache för förrådet '%s'"
+msgstr "Cache för förrådet '%s' byggs"
 
 #: zypp/RepoManager.cc:1302
 #, c-format, boost-format
 msgid "Can't create cache at %s - no writing permissions."
-msgstr "Kan inte skapa cache i %s - inga skrivrättigheter."
+msgstr "Kan inte att skapa cache på %s - ingen skrivrättighet."
 
 #: zypp/RepoManager.cc:1366
 #, c-format, boost-format
 msgid "Failed to cache repo (%d)."
-msgstr "Misslyckades att cachlagra förråd (repo) %d."
+msgstr "Misslyckades att cachlagra förråd (%d)."
 
 #: zypp/RepoManager.cc:1377
 msgid "Unhandled repository type"
@@ -373,13 +373,13 @@ msgstr "Kan inte hantera förrådstypen"
 #: zypp/RepoManager.cc:1414 zypp/RepoManager.cc:2464
 #, c-format, boost-format
 msgid "Error trying to read from '%s'"
-msgstr "Fel vid försök att läsa från '%s'"
+msgstr "Det gick inte att läsa från '%s'"
 
 #. TranslatorExplanation '%s' is an URL
 #: zypp/RepoManager.cc:1467 zypp/RepoManager.cc:2472
 #, c-format, boost-format
 msgid "Unknown error reading from '%s'"
-msgstr "Obekant fel vid läsning från '%s'"
+msgstr "Ett okänt fel uppstod vid läsning från '%s'"
 
 #: zypp/RepoManager.cc:1611
 #, c-format, boost-format
@@ -390,16 +390,16 @@ msgstr "Lägger till förrådet '%s'"
 #: zypp/RepoManager.cc:1701
 #, c-format, boost-format
 msgid "Invalid repo file name at '%s'"
-msgstr "Ogiltigt namn på förråd (repo) '%s'"
+msgstr "Ogiltigt namn på förråd '%s'"
 
 #: zypp/RepoManager.cc:1740
 #, c-format, boost-format
 msgid "Removing repository '%s'"
-msgstr "Tar bort förrådet '%s'"
+msgstr "Förrådet '%s' tas bort"
 
 #: zypp/RepoManager.cc:1759 zypp/RepoManager.cc:1835
 msgid "Can't figure out where the repo is stored."
-msgstr "Kan inte identifiera var förrådet (repo) är sparat."
+msgstr "Kan inte identifiera var förrådet är lagrat."
 
 #. TranslatorExplanation '%s' is a filename
 #: zypp/RepoManager.cc:1771 zypp/RepoManager.cc:1963
@@ -511,7 +511,7 @@ msgstr "Kan inte ändra roten (chroot) till '%s' (%s)."
 #: zypp/ExternalProgram.cc:360
 #, c-format, boost-format
 msgid "Can't chdir to '%s' inside chroot '%s' (%s)."
-msgstr "Kan inte ändra katalogen (chdir) till '%s' i en chroot '%s' (%s)."
+msgstr "Kan inte ändra katalogen (chdir) till '%s' i chroot '%s' (%s)."
 
 #: zypp/ExternalProgram.cc:361
 #, c-format, boost-format
@@ -532,12 +532,12 @@ msgstr "Kan inte dela upp (%s)."
 #: zypp/ExternalProgram.cc:507
 #, c-format, boost-format
 msgid "Command exited with status %d."
-msgstr "Kommandot avslutades med status %d."
+msgstr "Kommandot avslutades med statusen %d."
 
 #: zypp/ExternalProgram.cc:527
 #, c-format, boost-format
 msgid "Command was killed by signal %d (%s)."
-msgstr "Kommandot dödades med signal %d (%s)."
+msgstr "Kommandot avbröts av signalen %d (%s)."
 
 #: zypp/ExternalProgram.cc:532
 msgid "Command exited with unknown error."
@@ -546,7 +546,7 @@ msgstr "Kommandot avslutades med ett okänt fel."
 #. translators: an annotation to a gpg keys expiry date
 #: zypp/PublicKey.cc:116
 msgid "(does not expire)"
-msgstr "(upphör inte)"
+msgstr "(går inte ut)"
 
 #. translators: an annotation to a gpg keys expiry date
 #: zypp/PublicKey.cc:125
@@ -556,7 +556,7 @@ msgstr "(UTGÅNGEN)"
 #. translators: an annotation to a gpg keys expiry date
 #: zypp/PublicKey.cc:129
 msgid "(expires within 24h)"
-msgstr "(upphör inom 24 timmar)"
+msgstr "(går ut inom 24 timmar)"
 
 #. translators: an annotation to a gpg keys expiry date
 #: zypp/PublicKey.cc:133
@@ -639,7 +639,7 @@ msgstr "Ytterligare ett kundavtal behövs för att kunna ge support."
 
 #: zypp/VendorSupportOptions.cc:56
 msgid "Unknown support option. Description not available"
-msgstr "Okänt supportalternativ. Beskrivningen är inte tillgänglig"
+msgstr "Okänt supportalternativ. Beskrivning är inte tillgänglig"
 
 #: zypp/CountryCode.cc:50
 msgid "Unknown country: "
@@ -4404,7 +4404,7 @@ msgstr "Försökte importera icke existerande nyckel %s till nyckelringen %s"
 
 #: zypp/KeyRing.cc:566
 msgid "Failed to delete key."
-msgstr "Misslyckades att radera nyckel."
+msgstr "Det gick inte att ta bort nyckeln."
 
 #: zypp/KeyRing.cc:575
 #, c-format, boost-format
@@ -4414,11 +4414,11 @@ msgstr "Signaturfilen %s hittas inte"
 #: zypp/repo/RepoProvideFile.cc:259
 #, c-format, boost-format
 msgid "Can't provide file '%s' from repository '%s'"
-msgstr "Kan inte tillhandahålla filen %s från förrådet '%s'"
+msgstr "Det går inte att hämta filen %s från förrådet %s"
 
 #: zypp/repo/RepoProvideFile.cc:265
 msgid "No url in repository."
-msgstr "Det finns Ingen URL i förrådet."
+msgstr "Det finns ingen URL i förrådet."
 
 #: zypp/repo/RepoException.cc:129
 msgid "Service plugin does not support changing an attribute."
@@ -4431,8 +4431,8 @@ msgid ""
 "Package %s seems to be corrupted during transfer. Do you want to retry "
 "retrieval?"
 msgstr ""
-"Paketet %s ser ut att ha skadats under överföringen. Vill försöka hämta den "
-"på nytt?"
+"Paketet %s verkar ha skadats under överföringen. Vill du försöka överföra "
+"det på nytt?"
 
 # %s is either BOOTP or DHCP
 #: zypp/repo/PackageProvider.cc:216
@@ -4443,7 +4443,9 @@ msgstr "Signaturen kunde inte verifieras"
 #: zypp/repo/PackageProvider.cc:386
 #, c-format, boost-format
 msgid "Failed to provide Package %s. Do you want to retry retrieval?"
-msgstr "Misslyckades att tillhandahålla paket %s. Vill du göra ett nytt försök?"
+msgstr ""
+"Det gick inte att tillhandahålla paketet %s. Vill du försöka hämta det på "
+"nytt?"
 
 #: zypp/repo/PackageProvider.cc:515
 msgid "applydeltarpm check failed."
@@ -4465,7 +4467,7 @@ msgstr ""
 #: zypp/solver/detail/SATResolver.cc:975
 #, c-format, boost-format
 msgid "%s does not belong to a distupgrade repository"
-msgstr "%s tillhör inte ett \"distupgrade\" förråd (repo)"
+msgstr "%s tillhör inte ett distupgrade-förråd"
 
 #: zypp/solver/detail/SATResolver.cc:979
 #, c-format, boost-format
@@ -4492,7 +4494,7 @@ msgstr "inget tillhandahåller begärda %s"
 
 #: zypp/solver/detail/SATResolver.cc:993 zypp/solver/detail/SATResolver.cc:997
 msgid "Have you enabled all requested repositories?"
-msgstr "Har du aktiverat alla begärda förråd (repos)?"
+msgstr "Har du aktiverat alla begärda förråd?"
 
 #: zypp/solver/detail/SATResolver.cc:996
 #, c-format, boost-format
@@ -4506,7 +4508,7 @@ msgstr "begäran stöds inte"
 #: zypp/solver/detail/SATResolver.cc:1003
 #, c-format, boost-format
 msgid "%s is provided by the system and cannot be erased"
-msgstr "%s tillhandahålls av systemet och kan inte tas bort"
+msgstr "%s kommer från systemet och kan inte tas bort"
 
 #: zypp/solver/detail/SATResolver.cc:1007
 #, c-format, boost-format
@@ -4516,7 +4518,7 @@ msgstr "%s går inte att installera"
 #: zypp/solver/detail/SATResolver.cc:1012
 #, c-format, boost-format
 msgid "nothing provides %s needed by %s"
-msgstr "inget tillhandahåller %s som behövs av %s"
+msgstr "inget tillhandahåller %s som behövs i %s"
 
 #: zypp/solver/detail/SATResolver.cc:1017
 #, c-format, boost-format
@@ -4536,12 +4538,12 @@ msgstr "%s gör %s inaktuell som kommer från %s"
 #: zypp/solver/detail/SATResolver.cc:1032
 #, c-format, boost-format
 msgid "installed %s obsoletes %s provided by %s"
-msgstr "%s gör %s tillhandahållen av %s inaktuell"
+msgstr "%s gör %s som kommer från %s inaktuell"
 
 #: zypp/solver/detail/SATResolver.cc:1036
 #, c-format, boost-format
 msgid "solvable %s conflicts with %s provided by itself"
-msgstr "lösbara %s är i konflikt med %s tillhandahållen av sig själv"
+msgstr "lösbara %s är i konflikt med %s som kommer från sig själv"
 
 #: zypp/solver/detail/SATResolver.cc:1068
 #, c-format, boost-format
@@ -4564,7 +4566,7 @@ msgstr ""
 #. translators: 'uninstallable' == 'not installable'
 #: zypp/solver/detail/SATResolver.cc:1084
 msgid "uninstallable providers: "
-msgstr "oinstallerbara leverantörer: "
+msgstr "leverantörer som inte går att installera: "
 
 #: zypp/solver/detail/SATResolver.cc:1141
 #, c-format, boost-format
@@ -4591,12 +4593,12 @@ msgstr "ta bort lås så att %s kan installeras"
 #: zypp/solver/detail/SATResolver.cc:1217
 #: zypp/solver/detail/SATResolver.cc:1238
 msgid "This request will break your system!"
-msgstr "Denna begäran kommer att skada ditt system!"
+msgstr "Denna begäran kommer att knäcka systemet!"
 
 #: zypp/solver/detail/SATResolver.cc:1218
 #: zypp/solver/detail/SATResolver.cc:1239
 msgid "ignore the warning of a broken system"
-msgstr "ignorera varningen om ett skadat system"
+msgstr "ignorera varningen om ett trasigt system"
 
 #: zypp/solver/detail/SATResolver.cc:1223
 #, c-format, boost-format
@@ -4631,7 +4633,7 @@ msgstr "behåll föråldrad version av %s"
 #: zypp/solver/detail/SATResolver.cc:1298
 #, c-format, boost-format
 msgid "install %s from excluded repository"
-msgstr "installera %s från undantaget förråd (repo)"
+msgstr "installera %s från undantaget arkiv"
 
 #: zypp/solver/detail/SATResolver.cc:1318
 #, c-format, boost-format
@@ -4649,7 +4651,7 @@ msgid ""
 "install %s (with vendor change)\n"
 "  %s  -->  %s"
 msgstr ""
-"installera %s (med byte av leverantör)\n"
+"installera %s (med ändrad leverantör)\n"
 "  %s  -->  %s"
 
 #: zypp/solver/detail/SATResolver.cc:1343
@@ -4666,21 +4668,21 @@ msgstr "avinstallation av %s"
 #: zypp/solver/detail/ProblemSolutionIgnore.cc:42
 #, c-format, boost-format
 msgid "break %s by ignoring some of its dependencies"
-msgstr "bryt '%s' genom att ignorera några av beroendena"
+msgstr "bryt %s genom att ignorera vissa beroenden"
 
 #: zypp/solver/detail/ProblemSolutionIgnore.cc:48
 msgid "generally ignore of some dependencies"
-msgstr "ignorera generellt vissa beroende"
+msgstr "ignorera generellt några beroende"
 
 #: zypp/parser/RepoindexFileReader.cc:197
 #, c-format, boost-format
 msgid "Required attribute '%s' is missing."
-msgstr "Det obligatoriska attributet '%s' saknas."
+msgstr "Det nödvändiga attributet '%s' saknas."
 
 #: zypp/parser/RepoindexFileReader.cc:209
 #, c-format, boost-format
 msgid "One or both of '%s' or '%s' attributes is required."
-msgstr "Ett eller båda av attributen '%s' och/eller '%s' är obligatoriska."
+msgstr "Ett av eller båda attributen '%s' och '%s' krävs."
 
 #: zypp/base/InterProcessMutex.cc:83
 #, c-format, boost-format
@@ -4689,7 +4691,7 @@ msgstr "Kan inte öppna låsfilen: %s"
 
 #: zypp/base/InterProcessMutex.cc:143
 msgid "This action is being run by another program already."
-msgstr "Denna åtgärd körs redan av ett annat program."
+msgstr "Åtgärden körs redan av ett annat program."
 
 #. TranslatorExplanation followed by the list of error messages that lead to this exception
 #: zypp/base/Exception.cc:107
@@ -4699,12 +4701,12 @@ msgstr "Historik:"
 #: zypp/base/StrMatcher.cc:152
 #, c-format, boost-format
 msgid "Unknown match mode '%s'"
-msgstr "Obekant matchningsläge '%s'"
+msgstr "Ont matchningsläge '%s'"
 
 #: zypp/base/StrMatcher.cc:153
 #, c-format, boost-format
 msgid "Unknown match mode '%s' for pattern '%s'"
-msgstr "Obekant matchningsläge '%s' för mönstret '%s'"
+msgstr "Ont matchningsläge '%s' för mönstret '%s'"
 
 #: zypp/base/StrMatcher.cc:157
 #, c-format, boost-format
@@ -4714,7 +4716,7 @@ msgstr "Ogiltigt reguljärt uttryck '%s': regcomp returnerade %d"
 #: zypp/base/StrMatcher.cc:158
 #, c-format, boost-format
 msgid "Invalid regular expression '%s'"
-msgstr "Ogiltigt reguljärt uttryck: '%s'"
+msgstr "Ogiltigt reguljärt uttryck '%s'"
 
 #: zypp/misc/CheckAccessDeleted.cc:242
 msgid "Please install package 'lsof' first."
@@ -4724,12 +4726,12 @@ msgstr "Installera paketet 'lsof' först."
 #: zypp/media/MediaCIFS.cc:430 zypp/media/MediaCurl.cc:1692
 #, c-format, boost-format
 msgid "Authentication required for '%s'"
-msgstr "Autentisering krävs för \"%s\""
+msgstr "Autentisering krävs för '%s'"
 
 #: zypp/media/MediaException.cc:31
 #, c-format, boost-format
 msgid "Failed to mount %s on %s"
-msgstr "Misslyckades att notera %s vid %s"
+msgstr "Misslyckades att montera %s på %s"
 
 #: zypp/media/MediaException.cc:41
 #, c-format, boost-format
@@ -4744,7 +4746,7 @@ msgstr "Ogiltigt filnamn: %s"
 #: zypp/media/MediaException.cc:53
 #, c-format, boost-format
 msgid "Medium not opened when trying to perform action '%s'."
-msgstr "Mediet inte öppet vid försök att utföra åtgärden %s."
+msgstr "Mediet öppnades inte när åtgärden '%s' skulle utföras."
 
 #: zypp/media/MediaException.cc:60
 #, c-format, boost-format
@@ -4754,7 +4756,7 @@ msgstr "Filen '%s' kunde inte hittas på mediet '%s'"
 #: zypp/media/MediaException.cc:67
 #, c-format, boost-format
 msgid "Cannot write file '%s'."
-msgstr "Kan inte skriva till filen '%s'."
+msgstr "Kan inte skriva filen '%s'."
 
 #: zypp/media/MediaException.cc:72
 msgid "Medium not attached"
@@ -4762,44 +4764,44 @@ msgstr "Mediet är inte anslutet"
 
 #: zypp/media/MediaException.cc:77
 msgid "Bad media attach point"
-msgstr "Ogiltigt media på anslutningspunkten"
+msgstr "Felaktig anslutningspunkt för media"
 
 #. TranslatorExplanation: curl is the name of a library, don't translate
 #: zypp/media/MediaException.cc:84
 #, c-format, boost-format
 msgid "Download (curl) initialization failed for '%s'"
-msgstr "Initieringen för nedladdningen (curl) misslyckades för '%s'"
+msgstr "Initieringen av hämtningen (curl) misslyckades för '%s'"
 
 #: zypp/media/MediaException.cc:91
 #, c-format, boost-format
 msgid "System exception '%s' on medium '%s'."
-msgstr "System exception '%s' på mediet '%s'."
+msgstr "Systemundantaget '%s' uppstod för mediet '%s'."
 
 #: zypp/media/MediaException.cc:98
 #, c-format, boost-format
 msgid "Path '%s' on medium '%s' is not a file."
-msgstr "Sökvägen '%s' på mediet '%s' leder inte till en fil."
+msgstr "Sökvägen '%s' på mediet '%s' är inte en fil."
 
 #: zypp/media/MediaException.cc:106
 #, c-format, boost-format
 msgid "Path '%s' on medium '%s' is not a directory."
-msgstr "Sökvägen '%s' på mediet '%s' leder inte till en katalog."
+msgstr "Sökvägen '%s' på mediet '%s' är inte en katalog."
 
 #: zypp/media/MediaException.cc:115
 msgid "Malformed URI"
-msgstr "Felaktigt utformad URI"
+msgstr "Felaktigt format för URI"
 
 #: zypp/media/MediaException.cc:125
 msgid "Empty host name in URI"
-msgstr "Inget värdnamn angivet i URI"
+msgstr "Tomt värdnamn i URI"
 
 #: zypp/media/MediaException.cc:130
 msgid "Empty filesystem in URI"
-msgstr "Inget filsystem angivet i URI"
+msgstr "Tomt filsystem i URI"
 
 #: zypp/media/MediaException.cc:135
 msgid "Empty destination in URI"
-msgstr "Inget mål angiven i URI"
+msgstr "Tomt mål i URI"
 
 #: zypp/media/MediaException.cc:140
 #, c-format, boost-format
@@ -4808,7 +4810,7 @@ msgstr "URI-schemat i '%s' stöds inte."
 
 #: zypp/media/MediaException.cc:145
 msgid "Operation not supported by medium"
-msgstr "Operationen stöds inte av mediet"
+msgstr "Åtgärden stöds inte av mediet"
 
 #: zypp/media/MediaException.cc:152
 #, c-format, boost-format
@@ -4817,7 +4819,7 @@ msgid ""
 "Error code: %s\n"
 "Error message: %s\n"
 msgstr ""
-"Nedladdningsfel (curl) för '%s':\n"
+"Ett hämtningsfel (curl) uppstod för '%s'.\n"
 "Felkod: %s\n"
 "Felmeddelande: %s\n"
 
@@ -4826,12 +4828,12 @@ msgstr ""
 #, c-format, boost-format
 msgid "Error occurred while setting download (curl) options for '%s':"
 msgstr ""
-"Ett fel uppstod vid inställning av alternativ för nedladdning (curl) av '%s':"
+"Ett fel uppstod när alternativ för hämtning (curl) skulle anges för '%s':"
 
 #: zypp/media/MediaException.cc:169
 #, c-format, boost-format
 msgid "Media source '%s' does not contain the desired medium"
-msgstr "Mediakällan '%s' innehåller inte det önskade mediet"
+msgstr "Mediekällan '%s' innehåller inte önskat medium"
 
 #: zypp/media/MediaException.cc:175
 #, c-format, boost-format
@@ -4840,56 +4842,56 @@ msgstr "Mediet '%s' används av en annan instans"
 
 #: zypp/media/MediaException.cc:182
 msgid "Cannot eject any media"
-msgstr "Kan inte mata ut media"
+msgstr "Kan inte mata ut något medium"
 
 #: zypp/media/MediaException.cc:184
 #, c-format, boost-format
 msgid "Cannot eject media '%s'"
-msgstr "Kan inte mata ut media '%s'"
+msgstr "Kan inte mata ut mediet '%s'"
 
 #: zypp/media/MediaException.cc:199
 #, c-format, boost-format
 msgid "Permission to access '%s' denied."
-msgstr "Åtkomst nekas för '%s '."
+msgstr "Behörighet för åtkomst till '%s' nekad."
 
 #: zypp/media/MediaException.cc:207
 #, c-format, boost-format
 msgid "Timeout exceeded when accessing '%s'."
-msgstr "Timeout vid åtkomst av '%s'"
+msgstr "Tidsgränsen överskreds vid försök att nå '%s'."
 
 #: zypp/media/MediaException.cc:215
 #, c-format, boost-format
 msgid "Location '%s' is temporarily unaccessible."
-msgstr "Platsen '%s' är tillfälligt oåtkomlig."
+msgstr "Platsen '%s' är för tillfället oåtkomlig."
 
 #: zypp/media/MediaException.cc:223
 #, c-format, boost-format
 msgid " SSL certificate problem, verify that the CA cert is OK for '%s'."
-msgstr ""
-"SSL-certifikatsproblem, kontrollera att CA-certifikatet för '%s' är OK."
+msgstr " SSL-certifikatsproblem, verifiera att CA-certifikatet för '%s' är OK."
 
 #: zypp/media/MediaException.cc:231
 #, c-format, boost-format
 msgid "Cannot find available loop device to mount the image file from '%s'"
 msgstr ""
-"Kan inte hitta ett tillgängligt loop device att montera image-filen från '%s'"
+"Det gick inte att hitta en tillgänglig loop-enhet för montering av bildfilen "
+"från '%s'"
 
 #: zypp/media/MediaUserAuth.cc:136
 #, c-format, boost-format
 msgid "Unsupported HTTP authentication method '%s'"
-msgstr "HTTP-autentiseringsmetod \"%s\" stöds inte"
+msgstr "Det finns inte stöd för HTTP-autentiseringsmetoden '%s'"
 
 #: zypp/media/MediaCurl.cc:1008
 msgid ""
 "Visit the Novell Customer Center to check whether your registration is valid "
 "and has not expired."
 msgstr ""
-"Besök Novell Customer Center för att kontrollera att din reigistering är "
-"giltig och inte löpt ut."
+"Besök Novells kundcenter och kontrollera att din registrering är giltig och "
+"fortfarande gäller."
 
 #: zypp/sat/detail/PoolImpl.cc:184
 msgid "Can not create sat-pool."
-msgstr "Kan inte skapa sat-pool"
+msgstr "Kan inte skapa sat-pool."
 
 #. [lhs][rhs] 0 = installed; 1 = to be installed
 #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2)
@@ -4902,10 +4904,10 @@ msgid ""
 "  conflicts with file from package\n"
 "     %3%"
 msgstr ""
-"Filen %1%\n"
-"  från källpaketet\n"
+"Fil %1%\n"
+"  från paketet\n"
 "     %2%\n"
-"  står i konflikt med filen från källpaketet\n"
+"  står i konflikt med fil från paketet\n"
 "     %3%"
 
 #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2)
@@ -4918,10 +4920,10 @@ msgid ""
 "  conflicts with file from install of\n"
 "     %3%"
 msgstr ""
-"Filen %1%\n"
-"  från källpaketet\n"
+"Fil %1%\n"
+"  från paketet\n"
 "     %2%\n"
-"  står i konflikt med filen från installationen av\n"
+"  står i konflikt med fil från installationen av\n"
 "     %3%"
 
 #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2)
@@ -4934,10 +4936,10 @@ msgid ""
 "  conflicts with file from package\n"
 "     %3%"
 msgstr ""
-"Filen %1%\n"
+"Fil %1%\n"
 "  från installationen av\n"
 "     %2%\n"
-"  står i konflikt med filen från källpaketet\n"
+"  står i konflikt med fil från paketet\n"
 "     %3%"
 
 #. TranslatorExplanation %1%(filename) %2%(package1) %3%(package2)
@@ -4950,10 +4952,10 @@ msgid ""
 "  conflicts with file from install of\n"
 "     %3%"
 msgstr ""
-"Filen %1%\n"
+"Fil %1%\n"
 "  från installationen av\n"
 "     %2%\n"
-"  står i konflikt med filen från installationen av\n"
+"  står i konflikt med fil från installationen av\n"
 "     %3%"
 
 #. [lhs][rhs] 0 = installed; 1 = to be installed
@@ -4969,12 +4971,12 @@ msgid ""
 "  from package\n"
 "     %4%"
 msgstr ""
-"Filen %1%\n"
-"  från källpaketet\n"
+"Fil %1%\n"
+"  från paketet\n"
 "     %2%\n"
-"  står i konflikt med filen\n"
+"  står i konflikt med fil\n"
 "     %3%\n"
-"  från källpaketet\n"
+"  från paketet\n"
 "     %4%"
 
 #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2)
@@ -4989,10 +4991,10 @@ msgid ""
 "  from install of\n"
 "     %4%"
 msgstr ""
-"Filen %1%\n"
-"  från källpaketet\n"
+"Fil %1%\n"
+"  från paketet\n"
 "     %2%\n"
-"  står i konflikt med filen\n"
+"  står i konflikt med fil\n"
 "     %3%\n"
 "  från installationen av\n"
 "     %4%"
@@ -5009,12 +5011,12 @@ msgid ""
 "  from package\n"
 "     %4%"
 msgstr ""
-"Filen %1%\n"
+"Fil %1%\n"
 "  från installationen av\n"
 "     %2%\n"
-"  står i konflikt med filen\n"
+"  står i konflikt med fil\n"
 "     %3%\n"
-"  från källpaketet\n"
+"  från paketet\n"
 "     %4%"
 
 #. TranslatorExplanation %1%(filename1) %2%(package1) %3%(filename2) %4%(package2)
@@ -5029,10 +5031,10 @@ msgid ""
 "  from install of\n"
 "     %4%"
 msgstr ""
-"Filen %1%\n"
+"Fil %1%\n"
 "  från installationen av\n"
 "     %2%\n"
-"  står i konflikt med filen\n"
+"  står i konflikt med fil\n"
 "     %3%\n"
 "  från installationen av\n"
 "     %4%"
index d559bd1..c6ced65 100644 (file)
--- a/po/uk.po
+++ b/po/uk.po
@@ -14,16 +14,17 @@ msgstr ""
 "Project-Id-Version: zypp.uk\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2016-05-03 15:55+0200\n"
-"PO-Revision-Date: 2015-11-18 10:09+0200\n"
+"PO-Revision-Date: 2016-06-14 18:12+0000\n"
 "Last-Translator: Andriy Bandura <andriykopanytsia@gmail.com>\n"
-"Language-Team: Ukrainian <>\n"
+"Language-Team: Ukrainian "
+"<https://l10n.opensuse.org/projects/libzypp/master/uk/>\n"
 "Language: uk\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms:  nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-"X-Generator: Lokalize 2.0\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<="
+"4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 2.6\n"
 
 #: zypp/target/hal/HalException.h:46 zypp/target/hal/HalException.h:55
 #: zypp/target/hal/HalException.h:64
@@ -644,7 +645,7 @@ msgstr "Для отримання підтримки потрібний дода
 
 #: zypp/VendorSupportOptions.cc:56
 msgid "Unknown support option. Description not available"
-msgstr "Невідомий параметр підтримки. Немає опису."
+msgstr "Невідомий параметр підтримки. Немає опису"
 
 #: zypp/CountryCode.cc:50
 msgid "Unknown country: "
@@ -1943,7 +1944,7 @@ msgstr "Віргінські острови (Британія)"
 #. :VGB:092:
 #: zypp/CountryCode.cc:394
 msgid "Virgin Islands, U.S."
-msgstr "ФÑ\96нлÑ\8fндÑ\96Ñ\8f"
+msgstr "Ð\92Ñ\96Ñ\80гÑ\96нÑ\81Ñ\8cкÑ\96 Ð¾Ñ\81Ñ\82Ñ\80ови, Ð¡Ð¨Ð\90"
 
 # VN
 # fuzzy
@@ -4522,7 +4523,7 @@ msgstr "непідтримуваний запит"
 #: zypp/solver/detail/SATResolver.cc:1003
 #, c-format, boost-format
 msgid "%s is provided by the system and cannot be erased"
-msgstr "%s надано системою і його неможливо прибрати."
+msgstr "%s надано системою і його неможливо прибрати"
 
 #: zypp/solver/detail/SATResolver.cc:1007
 #, c-format, boost-format
index bc45356..069d63a 100644 (file)
@@ -12,8 +12,8 @@ msgstr ""
 "Project-Id-Version: YaST (@memory@)\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2016-05-03 15:55+0200\n"
-"PO-Revision-Date: 2016-06-07 09:12+0000\n"
-"Last-Translator: SLE Merge Robot <weblate-admin@opensuse.org>\n"
+"PO-Revision-Date: 2016-06-17 01:38+0000\n"
+"Last-Translator: Marguerite Su <i@marguerite.su>\n"
 "Language-Team: Chinese (China) "
 "<https://l10n.opensuse.org/projects/libzypp/master/zh_CN/>\n"
 "Language: zh_CN\n"
@@ -188,7 +188,7 @@ msgstr "不是 CDROM 驱动器"
 #: zypp/target/rpm/RpmDb.cc:848 zypp/target/rpm/RpmDb.cc:2043
 #: zypp/target/rpm/RpmDb.cc:2189
 msgid "RPM failed: "
-msgstr "RPM 失败:"
+msgstr "RPM 失败: "
 
 #. TranslatorExplanation first %s is file name, second is error message
 #: zypp/target/rpm/RpmDb.cc:1124
@@ -207,7 +207,7 @@ msgstr "移除公钥 %s 失败:%s"
 #: zypp/target/rpm/RpmDb.cc:1848
 #, c-format, boost-format
 msgid "Changed configuration files for %s:"
-msgstr "%s 的有改动的配置文件:"
+msgstr "%s 配置文件有变化:"
 
 #. %s = filenames
 #: zypp/target/rpm/RpmDb.cc:2024
@@ -265,7 +265,7 @@ msgstr "未知签名类型"
 #. translators: possible rpm package signature check result [brief]
 #: zypp/target/rpm/RpmDb.cc:2369
 msgid "Signature does not verify"
-msgstr "æ\97 æ³\95æ ¸å®\9e签名"
+msgstr "æ\97 æ³\95æ ¡éª\8c签名"
 
 #. translators: possible rpm package signature check result [brief]
 #: zypp/target/rpm/RpmDb.cc:2371
@@ -316,7 +316,7 @@ msgstr "服务别名不能以点开头。"
 #: zypp/RepoManager.cc:1789 zypp/RepoManager.cc:1854 zypp/RepoManager.cc:1975
 #, c-format, boost-format
 msgid "Can't open file '%s' for writing."
-msgstr "无法打开并写入 '%s' 文件。"
+msgstr "无法打开 '%s' 文件进行写入。"
 
 #. translators: Cleanup a repository previously owned by a meanwhile unknown (deleted) service.
 #. %1% = service name
@@ -635,7 +635,7 @@ msgstr "未知支持选项。描述不可用"
 
 #: zypp/CountryCode.cc:50
 msgid "Unknown country: "
-msgstr "未知国家或地区:"
+msgstr "未知国家或地区: "
 
 #. Defined CountryCode constants
 #. Defined LanguageCode constants
@@ -1867,7 +1867,7 @@ msgstr "津巴布韦"
 
 #: zypp/LanguageCode.cc:49
 msgid "Unknown language: "
-msgstr "未知语言:"
+msgstr "未知语言: "
 
 #. language code: aar aa
 #: zypp/LanguageCode.cc:161
@@ -4370,7 +4370,7 @@ msgstr "%s 依赖 %s,但无法提供此依赖"
 
 #: zypp/solver/detail/SATResolver.cc:1070
 msgid "deleted providers: "
-msgstr "å\88 é\99¤ç\9a\84æ\8f\90ä¾\9bè\80\85ï¼\9a"
+msgstr "å·²å\88 é\99¤æ\8f\90ä¾\9bè\80\85ï¼\9a "
 
 #. translators: 'uninstallable' == 'not installable'
 #: zypp/solver/detail/SATResolver.cc:1081
@@ -4379,12 +4379,12 @@ msgid ""
 "uninstallable providers: "
 msgstr ""
 "\n"
-"不可安装的提供者:"
+"无法安装的提供者: "
 
 #. translators: 'uninstallable' == 'not installable'
 #: zypp/solver/detail/SATResolver.cc:1084
 msgid "uninstallable providers: "
-msgstr "不可安装的提供者:"
+msgstr "无法安装的提供者: "
 
 #: zypp/solver/detail/SATResolver.cc:1141
 #, c-format, boost-format
@@ -4486,7 +4486,7 @@ msgstr "卸载 %s"
 #: zypp/solver/detail/ProblemSolutionIgnore.cc:42
 #, c-format, boost-format
 msgid "break %s by ignoring some of its dependencies"
-msgstr "通过忽略一些依赖关系来破坏 %s "
+msgstr "通过忽略一些依赖关系来断开 %s"
 
 #: zypp/solver/detail/ProblemSolutionIgnore.cc:48
 msgid "generally ignore of some dependencies"
@@ -4569,7 +4569,7 @@ msgstr "当试图执行动作 '%s' 时,介质没有打开。"
 #: zypp/media/MediaException.cc:60
 #, c-format, boost-format
 msgid "File '%s' not found on medium '%s'"
-msgstr "文件 '%s' 未在介质 '%s' 上找到"
+msgstr "文件 '%s' 未在介质 '%s' 上找到"
 
 #: zypp/media/MediaException.cc:67
 #, c-format, boost-format
index 45e1725..62c6eb9 100644 (file)
--- a/zypp.conf
+++ b/zypp.conf
 ## download.media_preference = download
 
 ##
+## Path where media are preferably mounted or downloaded
+##
+## Valid values:       A (writable) directory
+## Default value:      /var/adm/mount
+##
+## The media backend will try to organize media mount points and download areas
+## below this directory, unless a different location is requested by the application.
+##
+## If the directory is not accessible and read/writable for a specific user,
+## the fallback is to use /var/tmp.
+##
+## download.media_mountdir = /var/adm/mount
+
+##
 ## Signature checking (repodata and rpm packages)
 ##
 ##   boolean   gpgcheck        (default: on)
index 3fe1b9b..980c77e 100644 (file)
@@ -33,6 +33,25 @@ namespace zypp
 {
   IMPL_PTR_TYPE(ResolverProblem);
 
+  /////////////////////////////////////////////////////////////////////////
+  namespace
+  {
+    // HACK for bsc#985674: filter duplicate solutions
+    //
+    inline bool solutionInList( const ProblemSolutionList & solutions_r, const ProblemSolution_Ptr & solution_r )
+    {
+      for ( const ProblemSolution_Ptr & solution : solutions_r )
+      {
+       if ( solution->description()    == solution_r->description()
+         && solution->details()        == solution_r->details()
+         && solution->actions().size() == solution_r->actions().size() )
+         return true;
+      }
+      return false;
+    }
+  } // namespace
+  /////////////////////////////////////////////////////////////////////////
+
   ///////////////////////////////////////////////////////////////////
   /// \class ResolverProblem::Impl
   /// \brief ResolverProblem implementation.
@@ -97,10 +116,13 @@ namespace zypp
 
   void ResolverProblem::addSolution( ProblemSolution_Ptr solution, bool inFront )
   {
-    if (inFront)
-    { _pimpl->_solutions.push_front( solution ); }
-    else
-    { _pimpl->_solutions.push_back( solution ); }
+    if ( ! solutionInList( _pimpl->_solutions, solution ) )    // bsc#985674: filter duplicate solutions
+    {
+      if (inFront)
+      { _pimpl->_solutions.push_front( solution ); }
+      else
+      { _pimpl->_solutions.push_back( solution ); }
+    }
   }
 
 
index 6f8c709..bb67043 100644 (file)
@@ -316,6 +316,7 @@ namespace zypp
         , download_use_deltarpm        ( true )
         , download_use_deltarpm_always  ( false )
         , download_media_prefer_download( true )
+       , download_mediaMountdir        ( "/var/adm/mount" )
         , download_max_concurrent_connections( 5 )
         , download_min_download_speed  ( 0 )
         , download_max_download_speed  ( 0 )
@@ -437,6 +438,12 @@ namespace zypp
                 {
                  download_media_prefer_download.restoreToDefault( str::compareCI( value, "volatile" ) != 0 );
                 }
+
+               else if ( entry == "download.media_mountdir" )
+                {
+                 download_mediaMountdir.restoreToDefault( Pathname(value) );
+                }
+
                 else if ( entry == "download.max_concurrent_connections" )
                 {
                   str::strtonum(value, download_max_concurrent_connections);
@@ -634,6 +641,7 @@ namespace zypp
     bool download_use_deltarpm;
     bool download_use_deltarpm_always;
     DefaultOption<bool> download_media_prefer_download;
+    DefaultOption<Pathname> download_mediaMountdir;
 
     int download_max_concurrent_connections;
     int download_min_download_speed;
@@ -985,6 +993,10 @@ namespace zypp
   long ZConfig::download_transfer_timeout() const
   { return _pimpl->download_transfer_timeout; }
 
+  Pathname ZConfig::download_mediaMountdir() const             { return _pimpl->download_mediaMountdir; }
+  void ZConfig::set_download_mediaMountdir( Pathname newval_r )        { _pimpl->download_mediaMountdir.set( std::move(newval_r) ); }
+  void ZConfig::set_default_download_mediaMountdir()           { _pimpl->download_mediaMountdir.restoreToDefault(); }
+
   DownloadMode ZConfig::commit_downloadMode() const
   { return _pimpl->commit_downloadMode; }
 
index bacccc9..cbda6fb 100644 (file)
@@ -258,6 +258,16 @@ namespace zypp
        */
       void set_default_download_media_prefer_download();
 
+      /** Path where media are preferably mounted or downloaded.
+       * Config option <tt>download.media_mountdir (/var/adm/mount)</tt>
+       * Needs to be a (writable) directory, otherwise /var/tmp is fallback.
+       */
+      Pathname download_mediaMountdir() const;
+      /** Set alternate value. */
+      void set_download_mediaMountdir( Pathname newval_r );
+      /** Reset to zypp.cong default. */
+      void set_default_download_mediaMountdir();
+
       /**
        * Commit download policy to use as default.
        */
index 3569ba1..e0520a4 100644 (file)
@@ -14,6 +14,7 @@
 #include <fstream>
 #include <sstream>
 
+#include "zypp/ZConfig.h"
 #include "zypp/TmpPath.h"
 #include "zypp/Date.h"
 #include "zypp/base/LogTools.h"
@@ -340,34 +341,34 @@ MediaHandler::setAttachPrefix(const Pathname &attach_prefix)
 Pathname
 MediaHandler::createAttachPoint() const
 {
-  /////////////////////////////////////////////////////////////////
-  // provide a default (temporary) attachpoint
-  /////////////////////////////////////////////////////////////////
-  const char * defmounts[] = {
-      "/var/adm/mount", filesystem::TmpPath::defaultLocation().c_str(), /**/NULL/**/
-  };
-
+  Pathname aroot;
   Pathname apoint;
-  Pathname aroot( MediaHandler::_attachPrefix);
+  {
+    aroot = MediaHandler::_attachPrefix;       // explicit request
+    if ( ! aroot.empty() )
+      apoint = createAttachPoint( aroot );
+  }
 
-  if( !aroot.empty())
+  if ( apoint.empty() )                                // fallback to config value
   {
-    apoint = createAttachPoint(aroot);
+    aroot = ZConfig::instance().download_mediaMountdir();
+    if ( ! aroot.empty() )
+      apoint = createAttachPoint( aroot );
   }
-  for ( const char ** def = defmounts; *def && apoint.empty(); ++def ) {
-    aroot = *def;
-    if( aroot.empty())
-      continue;
 
-    apoint = createAttachPoint(aroot);
+  if ( apoint.empty() )                                // fall back to temp space
+  {
+    aroot = filesystem::TmpPath::defaultLocation();
+    if ( ! aroot.empty() )
+      apoint = createAttachPoint( aroot );
   }
 
-  if ( aroot.empty() ) {
+  if ( apoint.empty() )
+  {
     ERR << "Create attach point: Can't find a writable directory to create an attach point" << std::endl;
-    return aroot;
   }
-
-  if ( !apoint.empty() ) {
+  else
+  {
     MIL << "Created default attach point " << apoint << std::endl;
   }
   return apoint;