[yum] update to latest head
Seth Vidal
skvidal at fedoraproject.org
Thu Nov 4 20:52:51 UTC 2010
commit 0ecc9d9541d2135c8db23a32d02ba4516a58383f
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Thu Nov 4 16:52:45 2010 -0400
update to latest head
yum-HEAD.patch | 5051 ++++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 4543 insertions(+), 508 deletions(-)
---
diff --git a/yum-HEAD.patch b/yum-HEAD.patch
index dad3273..bb3be4f 100644
--- a/yum-HEAD.patch
+++ b/yum-HEAD.patch
@@ -12,10 +12,18 @@ index 8065899..20f5629 100644
test-skipbroken:
diff --git a/cli.py b/cli.py
-index 9542b7a..b3b760e 100644
+index 9542b7a..b84183b 100644
--- a/cli.py
+++ b/cli.py
-@@ -139,7 +139,8 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
+@@ -101,6 +101,7 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
+ self.registerCommand(yumcommands.HistoryCommand())
+ self.registerCommand(yumcommands.CheckRpmdbCommand())
+ self.registerCommand(yumcommands.DistroSyncCommand())
++ self.registerCommand(yumcommands.LoadTransactionCommand())
+
+ def registerCommand(self, command):
+ for name in command.getNames():
+@@ -139,7 +140,8 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
names and summary usages.
"""
usage = 'yum [options] COMMAND\n\nList of Commands:\n\n'
@@ -25,7 +33,7 @@ index 9542b7a..b3b760e 100644
commands.sort(key=lambda x: x.getNames()[0])
for command in commands:
# XXX Remove this when getSummary is common in plugins
-@@ -327,14 +328,34 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
+@@ -327,14 +329,34 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
self.yum_cli_commands[self.basecmd].doCheck(self, self.basecmd, self.extcmds)
@@ -60,7 +68,18 @@ index 9542b7a..b3b760e 100644
return yumshell.result, yumshell.resultmsgs
def errorSummary(self, errstring):
-@@ -777,14 +798,16 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
+@@ -598,6 +620,10 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
+ to not being installed, tell the user. """
+ # always_output is a wart due to update/remove not producing the
+ # same output.
++ # if it is a grouppattern then none of this is going to make any sense
++ # skip it.
++ if not arg or arg[0] == '@':
++ return
+ matches = self.doPackageLists(patterns=[arg], ignore_case=False)
+ if (matches.installed or (not matches.available and
+ self.returnInstalledPackagesByDep(arg))):
+@@ -777,14 +803,16 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
to be erased/removed"""
oldcount = len(self.tsInfo)
@@ -82,7 +101,7 @@ index 9542b7a..b3b760e 100644
return 2, [msg]
else:
return 0, [_('No Packages marked for removal')]
-@@ -931,22 +954,71 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
+@@ -931,22 +959,71 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
searchlist = ['name', 'summary', 'description', 'url']
dups = self.conf.showdupesfromrepos
args = map(to_unicode, args)
@@ -159,7 +178,7 @@ index 9542b7a..b3b760e 100644
for arg in args:
if arg not in akeys:
self.logger.warning(_('Warning: No matches found for: %s'), arg)
-@@ -1327,6 +1399,7 @@ class YumOptionParser(OptionParser):
+@@ -1327,6 +1404,7 @@ class YumOptionParser(OptionParser):
self.base.conf.obsoletes = 1
if opts.installroot:
@@ -167,7 +186,7 @@ index 9542b7a..b3b760e 100644
self.base.conf.installroot = opts.installroot
if opts.skipbroken:
-@@ -1395,6 +1468,7 @@ class YumOptionParser(OptionParser):
+@@ -1395,6 +1473,7 @@ class YumOptionParser(OptionParser):
if opts.nogpgcheck:
self.base.conf.gpgcheck = False
self.base.conf.repo_gpgcheck = False
@@ -175,7 +194,7 @@ index 9542b7a..b3b760e 100644
for repo in self.base.repos.listEnabled():
repo.gpgcheck = False
repo.repo_gpgcheck = False
-@@ -1406,7 +1480,18 @@ class YumOptionParser(OptionParser):
+@@ -1406,7 +1485,18 @@ class YumOptionParser(OptionParser):
return opts, cmds
@@ -313,7 +332,7 @@ index 281bf17..111cda6 100644
Eliminate any cached data from the local rpmdb.
diff --git a/docs/yum.conf.5 b/docs/yum.conf.5
-index 49d98c6..b48bdf6 100644
+index 49d98c6..899e950 100644
--- a/docs/yum.conf.5
+++ b/docs/yum.conf.5
@@ -80,9 +80,13 @@ Full directory and file name for where yum should write its log file.
@@ -388,6 +407,15 @@ index 49d98c6..b48bdf6 100644
\fBplugins \fR
Either `0' or `1'. Global switch to enable or disable yum plugins. Default is
`0' (plugins disabled). See the \fBPLUGINS\fR section of the \fByum(8)\fR man
+@@ -384,7 +403,7 @@ not update the metadata against the repository. If you find that
+ yum is not downloading information on updates as often as you would like
+ lower the value of this option. You can also change from the default of using
+ seconds to using days, hours or minutes by appending a d, h or m respectively.
+-The default is 1.5 hours, to compliment yum-updatesd running once an hour.
++The default is 6 hours, to compliment yum-updatesd running once an hour.
+ It's also possible to use the word "never", meaning that the metadata will
+ never expire. Note that when using a metalink file the metalink must always
+ be newer than the metadata for the repository, due to the validation, so this
@@ -734,6 +753,17 @@ If this is unset it inherits it from the global setting
password for this proxy.
If this is unset it inherits it from the global setting
@@ -520,7 +548,7 @@ index 3e6e243..303f190 100644
;;
version)
diff --git a/output.py b/output.py
-index 3a90995..a32a3a9 100755
+index 3a90995..983924a 100755
--- a/output.py
+++ b/output.py
@@ -43,6 +43,8 @@ from yum.rpmtrans import RPMBaseCallback
@@ -1005,6 +1033,15 @@ index 3a90995..a32a3a9 100755
matches = []
def _cond_add(po):
+@@ -2030,7 +2239,7 @@ class YumCliRPMCallBack(RPMBaseCallback):
+
+ # Installing things have pkg objects passed to the events, so only need to
+ # lookup for erased/obsoleted.
+- def pkgname_ui(self, pkgname, ts_states=('e', None)):
++ def pkgname_ui(self, pkgname, ts_states=('e', 'od', 'ud', None)):
+ """ Get more information on a simple pkgname, if we can. """
+ return _pkgname_ui(self.ayum, pkgname, ts_states)
+
diff --git a/po/es.po b/po/es.po
index 4ac1f0a..0d6fc4d 100644
--- a/po/es.po
@@ -29628,32 +29665,39 @@ index f1cbc2f..922be6f 100644
#~ msgid "Erasing: %s %d/%d"
#~ msgstr "Удаление: - %s - %d/%d"
-diff --git a/po/yum.pot b/po/yum.pot
-index f9a1d35..c9d7199 100644
---- a/po/yum.pot
-+++ b/po/yum.pot
-@@ -8,15 +8,16 @@ msgid ""
+diff --git a/po/sv.po b/po/sv.po
+index 48b836b..7578c68 100644
+--- a/po/sv.po
++++ b/po/sv.po
+@@ -3,21 +3,21 @@
+ # This file is distributed under the same license as the yum package.
+ # Göran Uddeborg <goeran at uddeborg.se>, 2009-2010.
+ #
+-# $Id: yum.po,v 1.12 2010-05-22 00:30:21+02 göran Exp $
++# $Id: yum.po,v 1.14 2010-10-21 21:26:32+02 göran Exp $
+ #
+ msgid ""
msgstr ""
- "Project-Id-Version: PACKAGE VERSION\n"
+ "Project-Id-Version: yum\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-02-11 10:54-0500\n"
+-"PO-Revision-Date: 2010-05-22 00:30+0200\n"
+"POT-Creation-Date: 2010-08-17 10:15-0400\n"
- "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
- "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
- "Language-Team: LANGUAGE <LL at li.org>\n"
-+"Language: \n"
++"PO-Revision-Date: 2010-10-21 21:26+0200\n"
+ "Last-Translator: Göran Uddeborg <goeran at uddeborg.se>\n"
+ "Language-Team: Swedish <tp-sv at listor.tp-sv.se>\n"
"MIME-Version: 1.0\n"
- "Content-Type: text/plain; charset=CHARSET\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ../callback.py:48 ../output.py:947 ../yum/rpmtrans.py:72
+#: ../callback.py:48 ../output.py:1027 ../yum/rpmtrans.py:72
msgid "Updating"
- msgstr ""
+ msgstr "Uppdaterar"
-@@ -24,26 +25,26 @@ msgstr ""
+@@ -25,26 +25,26 @@ msgstr "Uppdaterar"
msgid "Erasing"
- msgstr ""
+ msgstr "Raderar"
-#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:946
-#: ../output.py:1659 ../yum/rpmtrans.py:74 ../yum/rpmtrans.py:75
@@ -29661,110 +29705,110 @@ index f9a1d35..c9d7199 100644
+#: ../output.py:1919 ../yum/rpmtrans.py:74 ../yum/rpmtrans.py:75
#: ../yum/rpmtrans.py:77
msgid "Installing"
- msgstr ""
+ msgstr "Installerar"
-#: ../callback.py:52 ../callback.py:58 ../output.py:1484 ../yum/rpmtrans.py:76
+#: ../callback.py:52 ../callback.py:58 ../output.py:1640 ../yum/rpmtrans.py:76
msgid "Obsoleted"
- msgstr ""
+ msgstr "Utfasad"
-#: ../callback.py:54 ../output.py:1070 ../output.py:1442 ../output.py:1491
+#: ../callback.py:54 ../output.py:1157 ../output.py:1518 ../output.py:1647
msgid "Updated"
- msgstr ""
+ msgstr "Uppdaterade"
-#: ../callback.py:55 ../output.py:1438
+#: ../callback.py:55 ../output.py:1517
msgid "Erased"
- msgstr ""
+ msgstr "Raderade"
-#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:1068
-#: ../output.py:1434 ../output.py:1646
+#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:1155
+#: ../output.py:1517 ../output.py:1519 ../output.py:1891
msgid "Installed"
- msgstr ""
+ msgstr "Installerade"
-@@ -65,7 +66,7 @@ msgstr ""
+@@ -66,7 +66,7 @@ msgstr "Fel: ogiltig utdatatillstånd: %s för %s"
msgid "Erased: %s"
- msgstr ""
+ msgstr "Raderade: %s"
-#: ../callback.py:217 ../output.py:948 ../output.py:1648
+#: ../callback.py:217 ../output.py:1028 ../output.py:1894
msgid "Removing"
- msgstr ""
+ msgstr "Tar bort"
-@@ -73,316 +74,329 @@ msgstr ""
+@@ -74,65 +74,65 @@ msgstr "Tar bort"
msgid "Cleanup"
- msgstr ""
+ msgstr "Rensar upp"
-#: ../cli.py:107
+#: ../cli.py:108
#, python-format
msgid "Command \"%s\" already defined"
- msgstr ""
+ msgstr "Kommando \"%s\" redan definierat"
-#: ../cli.py:119
+#: ../cli.py:120
msgid "Setting up repositories"
- msgstr ""
+ msgstr "Gör i ordning förråd"
-#: ../cli.py:130
+#: ../cli.py:131
msgid "Reading repository metadata in from local files"
- msgstr ""
+ msgstr "Läser in förrådsmetadata från lokala filer"
-#: ../cli.py:194 ../utils.py:193
+#: ../cli.py:234 ../utils.py:254
#, python-format
msgid "Config Error: %s"
- msgstr ""
+ msgstr "Konfigurationsfel: %s"
-#: ../cli.py:197 ../cli.py:1272 ../utils.py:196
+#: ../cli.py:237 ../cli.py:1403 ../utils.py:257
#, python-format
msgid "Options Error: %s"
- msgstr ""
+ msgstr "Fel bland flaggor: %s"
-#: ../cli.py:227
+#: ../cli.py:267
#, python-format
msgid " Installed: %s-%s at %s"
- msgstr ""
+ msgstr " Installerade: %s-%s %s"
-#: ../cli.py:229
+#: ../cli.py:269
#, python-format
msgid " Built : %s at %s"
- msgstr ""
+ msgstr " Byggde : %s %s"
-#: ../cli.py:231
+#: ../cli.py:271
#, python-format
msgid " Committed: %s at %s"
- msgstr ""
+ msgstr " Verkställde : %s %s"
-#: ../cli.py:270
+#: ../cli.py:310
msgid "You need to give some command"
- msgstr ""
+ msgstr "Du måste ange något kommando"
-#: ../cli.py:284
+#: ../cli.py:324
#, python-format
msgid "No such command: %s. Please use %s --help"
- msgstr ""
+ msgstr "Inget sådant kommando: %s. Använd %s --help"
-#: ../cli.py:314
+#: ../cli.py:354
msgid "Disk Requirements:\n"
- msgstr ""
+ msgstr "Diskbehov:\n"
-#: ../cli.py:316
+#: ../cli.py:356
#, python-format
msgid " At least %dMB more space needed on the %s filesystem.\n"
- msgstr ""
+ msgstr " Åtminstone %d MB mer utrymme behövs på filsystemet %s.\n"
#. TODO: simplify the dependency errors?
#. Fixup the summary
@@ -29773,303 +29817,310 @@ index f9a1d35..c9d7199 100644
msgid ""
"Error Summary\n"
"-------------\n"
- msgstr ""
+@@ -140,60 +140,60 @@ msgstr ""
+ "Felsammandrag\n"
+ "-------------\n"
-#: ../cli.py:364
+#: ../cli.py:404
msgid "Trying to run the transaction but nothing to do. Exiting."
- msgstr ""
+ msgstr "Försöker köra transaktionen men det finns inget att göra. Avslutar."
-#: ../cli.py:403
+#: ../cli.py:451
msgid "Exiting on user Command"
- msgstr ""
+ msgstr "Avslutar på användarens order"
-#: ../cli.py:407
+#: ../cli.py:455
msgid "Downloading Packages:"
- msgstr ""
+ msgstr "Hämtar paket:"
-#: ../cli.py:412
+#: ../cli.py:460
msgid "Error Downloading Packages:\n"
- msgstr ""
+ msgstr "Fel när paket hämtades:\n"
-#: ../cli.py:426 ../yum/__init__.py:4195
+#: ../cli.py:474 ../yum/__init__.py:4559
msgid "Running rpm_check_debug"
- msgstr ""
+ msgstr "Kör rpm_check_debug"
-#: ../cli.py:435 ../yum/__init__.py:4204
+#: ../cli.py:483 ../yum/__init__.py:4568
msgid "ERROR You need to update rpm to handle:"
- msgstr ""
+ msgstr "FEL Du behöver uppdatera rpm för att hantera:"
-#: ../cli.py:437 ../yum/__init__.py:4207
+#: ../cli.py:485 ../yum/__init__.py:4571
msgid "ERROR with rpm_check_debug vs depsolve:"
- msgstr ""
+ msgstr "FEL med rpm_check_debug mot depsolve:"
-#: ../cli.py:443
+#: ../cli.py:491
msgid "RPM needs to be updated"
- msgstr ""
+ msgstr "RPM behöver uppdateras"
-#: ../cli.py:444
+#: ../cli.py:492
#, python-format
msgid "Please report this error in %s"
- msgstr ""
+ msgstr "Vänligen rapportera detta fel i %s"
-#: ../cli.py:450
+#: ../cli.py:498
msgid "Running Transaction Test"
- msgstr ""
+ msgstr "Kör transaktionstest"
-#: ../cli.py:466
+#: ../cli.py:514
msgid "Transaction Check Error:\n"
- msgstr ""
+ msgstr "Transaktionskontrollfel:\n"
-#: ../cli.py:473
+#: ../cli.py:521
msgid "Transaction Test Succeeded"
- msgstr ""
+ msgstr "Transaktionskontrollen lyckades"
-#: ../cli.py:495
+#: ../cli.py:543
msgid "Running Transaction"
- msgstr ""
+ msgstr "Kör transaktionen"
-#: ../cli.py:525
+#: ../cli.py:573
msgid ""
"Refusing to automatically import keys when running unattended.\n"
"Use \"-y\" to override."
- msgstr ""
+@@ -201,84 +201,93 @@ msgstr ""
+ "Vägrar att automatiskt importera nycklar vid oövervakad körning.\n"
+ "Använd \"-y\" för att åsidosätta."
-#: ../cli.py:544 ../cli.py:578
+#: ../cli.py:592 ../cli.py:626
msgid " * Maybe you meant: "
- msgstr ""
+ msgstr " * Du kanske menade: "
-#: ../cli.py:561 ../cli.py:569
+#: ../cli.py:609 ../cli.py:617
#, python-format
msgid "Package(s) %s%s%s available, but not installed."
- msgstr ""
+ msgstr "Paket %s%s%s tillgängliga, men inte installerade."
-#: ../cli.py:575 ../cli.py:607 ../cli.py:687
+#: ../cli.py:623 ../cli.py:656 ../cli.py:810
#, python-format
msgid "No package %s%s%s available."
- msgstr ""
+ msgstr "Inget paket %s%s%s tillgängligt."
-#: ../cli.py:612 ../cli.py:748
+#: ../cli.py:663 ../cli.py:875
msgid "Package(s) to install"
- msgstr ""
+ msgstr "Paket att installera"
-#: ../cli.py:613 ../cli.py:693 ../cli.py:727 ../cli.py:749
-#: ../yumcommands.py:160
+#: ../cli.py:666 ../cli.py:667 ../cli.py:816 ../cli.py:850 ../cli.py:876
+#: ../yumcommands.py:179
msgid "Nothing to do"
- msgstr ""
+ msgstr "Inget att göra"
-#: ../cli.py:647
+#: ../cli.py:701
#, python-format
msgid "%d packages marked for Update"
- msgstr ""
+ msgstr "%d paket noterade att uppdateras"
-#: ../cli.py:650
+#: ../cli.py:704
msgid "No Packages marked for Update"
- msgstr ""
+ msgstr "Inga paket noterade att uppdateras"
-#: ../cli.py:664
+#: ../cli.py:770
+#, python-format
+msgid "%d packages marked for Distribution Synchronization"
-+msgstr ""
++msgstr "%d paket noterade för distributionssynkronisering"
+
+#: ../cli.py:773
+msgid "No Packages marked for Distribution Synchronization"
-+msgstr ""
++msgstr "Inga paket noterade för distributionssynkronisering"
+
+#: ../cli.py:787
#, python-format
msgid "%d packages marked for removal"
- msgstr ""
+ msgstr "%d paket noterade att tas bort"
-#: ../cli.py:667
+#: ../cli.py:790
msgid "No Packages marked for removal"
- msgstr ""
+ msgstr "Inga paket noterade att tas bort"
-#: ../cli.py:692
+#: ../cli.py:815
msgid "Package(s) to downgrade"
- msgstr ""
+ msgstr "Paket att nedgradera"
-#: ../cli.py:717
+#: ../cli.py:840
#, python-format
msgid " (from %s)"
- msgstr ""
+ msgstr " (från %s)"
-#: ../cli.py:719
+#: ../cli.py:841
#, python-format
msgid "Installed package %s%s%s%s not available."
- msgstr ""
+ msgstr "Installerat paket %s%s%s%s inte tillgängligt."
-#: ../cli.py:726
+#: ../cli.py:849
msgid "Package(s) to reinstall"
- msgstr ""
+ msgstr "Paket att ominstallera"
-#: ../cli.py:739
+#: ../cli.py:862
msgid "No Packages Provided"
- msgstr ""
+ msgstr "Inga paket angivna"
-#: ../cli.py:818
+#: ../cli.py:945
#, python-format
msgid "Matched: %s"
- msgstr ""
+ msgstr "Matchade: %s"
-#: ../cli.py:825
+#: ../cli.py:952
#, python-format
msgid "Warning: No matches found for: %s"
- msgstr ""
+ msgstr "Varning: Ingen matchning hittades för: %s"
-#: ../cli.py:828
+#: ../cli.py:955
msgid "No Matches found"
- msgstr ""
+ msgstr "Inga matchningar hittades"
-#: ../cli.py:868
+#: ../cli.py:995
#, python-format
msgid ""
"Warning: 3.0.x versions of yum would erroneously match against filenames.\n"
- " You can use \"%s*/%s%s\" and/or \"%s*bin/%s%s\" to get that behaviour"
- msgstr ""
+@@ -288,112 +297,116 @@ msgstr ""
+ " Du kan använda \"%s*/%s%s\" och/eller \"%s*bin/%s%s\" för att få detta "
+ "beteende"
-#: ../cli.py:884
+#: ../cli.py:1011
#, python-format
msgid "No Package Found for %s"
- msgstr ""
+ msgstr "Inga paket hittades för %s"
-#: ../cli.py:896
+#: ../cli.py:1021
+msgid "Cleaning repos: "
-+msgstr ""
++msgstr "Rensar förråd: "
+
+#: ../cli.py:1026
msgid "Cleaning up Everything"
- msgstr ""
+ msgstr "Rensar upp allt"
-#: ../cli.py:912
+#: ../cli.py:1042
msgid "Cleaning up Headers"
- msgstr ""
+ msgstr "Rensar upp huvuden"
-#: ../cli.py:915
+#: ../cli.py:1045
msgid "Cleaning up Packages"
- msgstr ""
+ msgstr "Rensar upp paket"
-#: ../cli.py:918
+#: ../cli.py:1048
msgid "Cleaning up xml metadata"
- msgstr ""
+ msgstr "Rensar upp xml-metadata"
-#: ../cli.py:921
+#: ../cli.py:1051
msgid "Cleaning up database cache"
- msgstr ""
+ msgstr "Rensar upp databas-cache"
-#: ../cli.py:924
+#: ../cli.py:1054
msgid "Cleaning up expire-cache metadata"
- msgstr ""
+ msgstr "Rensar upp expire-cache-metadata"
-#: ../cli.py:927
+#: ../cli.py:1057
msgid "Cleaning up cached rpmdb data"
- msgstr ""
+ msgstr "Rensar upp cachad rpmdb-data"
-#: ../cli.py:930
+#: ../cli.py:1060
msgid "Cleaning up plugins"
- msgstr ""
+ msgstr "Rensar upp insticksmoduler"
-#: ../cli.py:955
+#: ../cli.py:1085
msgid "Installed Groups:"
- msgstr ""
+ msgstr "Installerade grupper:"
-#: ../cli.py:967
+#: ../cli.py:1097
msgid "Available Groups:"
- msgstr ""
+ msgstr "Tillgängliga grupper:"
-#: ../cli.py:977
+#: ../cli.py:1107
msgid "Done"
- msgstr ""
+ msgstr "Klart"
-#: ../cli.py:988 ../cli.py:1006 ../cli.py:1012 ../yum/__init__.py:2788
+#: ../cli.py:1118 ../cli.py:1136 ../cli.py:1142 ../yum/__init__.py:3069
#, python-format
msgid "Warning: Group %s does not exist."
- msgstr ""
+ msgstr "Varning: Grupp %s finns inte."
-#: ../cli.py:1016
+#: ../cli.py:1146
msgid "No packages in any requested group available to install or update"
msgstr ""
+ "Inget paket i någon begärd grupp är tillgängligt för installation eller "
+ "uppdatering"
-#: ../cli.py:1018
+#: ../cli.py:1148
#, python-format
msgid "%d Package(s) to Install"
- msgstr ""
+ msgstr "%d paket att installera"
-#: ../cli.py:1028 ../yum/__init__.py:2800
+#: ../cli.py:1158 ../yum/__init__.py:3081
#, python-format
msgid "No group named %s exists"
- msgstr ""
+ msgstr "Ingen grupp med namnet %s finns"
-#: ../cli.py:1034
+#: ../cli.py:1164
msgid "No packages to remove from groups"
- msgstr ""
+ msgstr "Inget paket att ta bort från grupper"
-#: ../cli.py:1036
+#: ../cli.py:1166
#, python-format
msgid "%d Package(s) to remove"
- msgstr ""
+ msgstr "%d paket att ta bort"
-#: ../cli.py:1078
+#: ../cli.py:1208
#, python-format
msgid "Package %s is already installed, skipping"
- msgstr ""
+ msgstr "Paket %s är redan installerat, hoppar över"
-#: ../cli.py:1089
+#: ../cli.py:1219
#, python-format
msgid "Discarding non-comparable pkg %s.%s"
- msgstr ""
+ msgstr "Kastar ojämförbart paket %s.%s"
#. we've not got any installed that match n or n+a
-#: ../cli.py:1115
@@ -30077,511 +30128,528 @@ index f9a1d35..c9d7199 100644
#, python-format
msgid "No other %s installed, adding to list for potential install"
msgstr ""
+ "Ingen annat %s installerat, lägger till listan för potentiell installation"
-#: ../cli.py:1135
+#: ../cli.py:1265
msgid "Plugin Options"
- msgstr ""
+ msgstr "Insticksmodulsalternativ"
-#: ../cli.py:1143
+#: ../cli.py:1273
#, python-format
msgid "Command line error: %s"
- msgstr ""
+ msgstr "Kommandoradsfel: %s"
-#: ../cli.py:1156
+#: ../cli.py:1287
#, python-format
msgid ""
"\n"
-@@ -390,114 +404,118 @@ msgid ""
- "%s: %s option requires an argument"
- msgstr ""
+@@ -404,114 +417,118 @@ msgstr ""
+ "\n"
+ "%s: flaggan %s behöver ett argument"
-#: ../cli.py:1209
+#: ../cli.py:1340
msgid "--color takes one of: auto, always, never"
- msgstr ""
+ msgstr "--color tar en av: auto, always, never"
-#: ../cli.py:1319
+#: ../cli.py:1450
msgid "show this help message and exit"
- msgstr ""
+ msgstr "visa detta hjälpmeddelande och avsluta"
-#: ../cli.py:1323
+#: ../cli.py:1454
msgid "be tolerant of errors"
- msgstr ""
+ msgstr "var tolerant vid fel"
-#: ../cli.py:1326
+#: ../cli.py:1457
msgid "run entirely from system cache, don't update cache"
- msgstr ""
+ msgstr "kör helt från systemets cache, uppdatera inte cachen"
-#: ../cli.py:1329
+#: ../cli.py:1460
msgid "config file location"
- msgstr ""
+ msgstr "konfigurationsfilens plats"
-#: ../cli.py:1332
+#: ../cli.py:1463
msgid "maximum command wait time"
- msgstr ""
+ msgstr "maximal tid att vänta på kommandon"
-#: ../cli.py:1334
+#: ../cli.py:1465
msgid "debugging output level"
- msgstr ""
+ msgstr "nivå på felsökningsutskrifter"
-#: ../cli.py:1338
+#: ../cli.py:1469
msgid "show duplicates, in repos, in list/search commands"
- msgstr ""
+ msgstr "visa dubletter, i förråd, i list-/search-kommandon"
-#: ../cli.py:1340
+#: ../cli.py:1471
msgid "error output level"
- msgstr ""
+ msgstr "nivå på felutskrifter"
-#: ../cli.py:1343
+#: ../cli.py:1474
msgid "debugging output level for rpm"
- msgstr ""
+ msgstr "nivå på felsökningsutskrifter för rpm"
-#: ../cli.py:1346
+#: ../cli.py:1477
msgid "quiet operation"
- msgstr ""
+ msgstr "tyst operation"
-#: ../cli.py:1348
+#: ../cli.py:1479
msgid "verbose operation"
- msgstr ""
+ msgstr "utförlig operation"
-#: ../cli.py:1350
+#: ../cli.py:1481
msgid "answer yes for all questions"
- msgstr ""
+ msgstr "svara ja på alla frågor"
-#: ../cli.py:1352
+#: ../cli.py:1483
msgid "show Yum version and exit"
- msgstr ""
+ msgstr "visa Yum-version och avsluta"
-#: ../cli.py:1353
+#: ../cli.py:1484
msgid "set install root"
- msgstr ""
+ msgstr "ange installationsrot"
-#: ../cli.py:1357
+#: ../cli.py:1488
msgid "enable one or more repositories (wildcards allowed)"
- msgstr ""
+ msgstr "aktivera ett eller flera förråd (jokrertecken tillåts)"
-#: ../cli.py:1361
+#: ../cli.py:1492
msgid "disable one or more repositories (wildcards allowed)"
- msgstr ""
+ msgstr "inaktivera ett eller flera förråd (jokertecken tillåts)"
-#: ../cli.py:1364
+#: ../cli.py:1495
msgid "exclude package(s) by name or glob"
- msgstr ""
+ msgstr "uteslut paket via namn eller mönster"
-#: ../cli.py:1366
+#: ../cli.py:1497
msgid "disable exclude from main, for a repo or for everything"
- msgstr ""
+ msgstr "inaktivera uteslutningar från main, för ett förråd, eller för allt"
-#: ../cli.py:1369
+#: ../cli.py:1500
msgid "enable obsoletes processing during updates"
- msgstr ""
+ msgstr "aktivera bearbetning av utfasningar under uppdateringar"
-#: ../cli.py:1371
+#: ../cli.py:1502
msgid "disable Yum plugins"
- msgstr ""
+ msgstr "inaktivera Yum-insticksmoduler"
-#: ../cli.py:1373
+#: ../cli.py:1504
msgid "disable gpg signature checking"
- msgstr ""
+ msgstr "inaktivera kontroll av gpg-signatur"
-#: ../cli.py:1375
+#: ../cli.py:1506
msgid "disable plugins by name"
- msgstr ""
+ msgstr "inaktivera insticksmoduler efter namn"
-#: ../cli.py:1378
+#: ../cli.py:1509
msgid "enable plugins by name"
- msgstr ""
+ msgstr "aktivera insticksmoduler efter namn"
-#: ../cli.py:1381
+#: ../cli.py:1512
msgid "skip packages with depsolving problems"
- msgstr ""
+ msgstr "hoppa över paket med problem vid beroendeupplösning"
-#: ../cli.py:1383
+#: ../cli.py:1514
msgid "control whether color is used"
- msgstr ""
+ msgstr "styr om färg skall användas"
-#: ../cli.py:1385
+#: ../cli.py:1516
msgid "set value of $releasever in yum config and repo files"
- msgstr ""
+ msgstr "sätt värdet på $releasever i yum-konfigurations- och repo-filer"
+#: ../cli.py:1518
+msgid "set arbitrary config and repo options"
-+msgstr ""
++msgstr "sätt godtyckliga konfigurations- och förrådsalternativ"
+
#: ../output.py:305
msgid "Jan"
- msgstr ""
-@@ -550,255 +568,255 @@ msgstr ""
+ msgstr "jan"
+@@ -564,104 +581,114 @@ msgstr "dec"
msgid "Trying other mirror."
- msgstr ""
+ msgstr "Försöker med en annan spegel."
-#: ../output.py:534
+#: ../output.py:579
-+#, python-format
-+msgid "Name : %s%s%s"
-+msgstr ""
-+
-+#: ../output.py:580
-+#, python-format
-+msgid "Arch : %s"
-+msgstr ""
-+
-+#: ../output.py:582
#, python-format
-msgid "Name : %s%s%s"
-+msgid "Epoch : %s"
- msgstr ""
+-msgstr "Namn : %s%s%s"
++msgid "Name : %s%s%s"
++msgstr "Namn : %s%s%s"
-#: ../output.py:535
-+#: ../output.py:583
++#: ../output.py:580
#, python-format
-msgid "Arch : %s"
-+msgid "Version : %s"
- msgstr ""
+-msgstr "Arkitektur : %s"
++msgid "Arch : %s"
++msgstr "Arkitektur : %s"
-#: ../output.py:537
-+#: ../output.py:584
++#: ../output.py:582
#, python-format
-msgid "Epoch : %s"
-+msgid "Release : %s"
- msgstr ""
+-msgstr "Epok : %s"
++msgid "Epoch : %s"
++msgstr "Epok : %s"
-#: ../output.py:538
-+#: ../output.py:585
++#: ../output.py:583
#, python-format
-msgid "Version : %s"
-+msgid "Size : %s"
- msgstr ""
+-msgstr "Version : %s"
++msgid "Version : %s"
++msgstr "Version : %s"
-#: ../output.py:539
-+#: ../output.py:586 ../output.py:890
++#: ../output.py:584
#, python-format
-msgid "Release : %s"
-+msgid "Repo : %s"
- msgstr ""
+-msgstr "Utgåva : %s"
++msgid "Release : %s"
++msgstr "Utgåva : %s"
-#: ../output.py:540
-+#: ../output.py:588
++#: ../output.py:585
#, python-format
-msgid "Size : %s"
-+msgid "From repo : %s"
- msgstr ""
+-msgstr "Storlek : %s"
++msgid "Size : %s"
++msgstr "Storlek : %s"
-#: ../output.py:541
-+#: ../output.py:590
++#: ../output.py:586 ../output.py:890
#, python-format
-msgid "Repo : %s"
-+msgid "Committer : %s"
- msgstr ""
+-msgstr "Förråd : %s"
++msgid "Repo : %s"
++msgstr "Förråd : %s"
-#: ../output.py:543
-+#: ../output.py:591
++#: ../output.py:588
#, python-format
-msgid "From repo : %s"
-+msgid "Committime : %s"
- msgstr ""
+-msgstr "Från förråd: %s"
++msgid "From repo : %s"
++msgstr "Från förråd : %s"
-#: ../output.py:545
-+#: ../output.py:592
++#: ../output.py:590
#, python-format
-msgid "Committer : %s"
-+msgid "Buildtime : %s"
- msgstr ""
++msgid "Committer : %s"
+ msgstr "Verkställare: %s"
-#: ../output.py:546
-+#: ../output.py:594
++#: ../output.py:591
#, python-format
-msgid "Committime : %s"
-+msgid "Install time: %s"
- msgstr ""
+-msgstr "Verkställt : %s"
++msgid "Committime : %s"
++msgstr "Verkställt : %s"
-#: ../output.py:547
-+#: ../output.py:602
++#: ../output.py:592
#, python-format
-msgid "Buildtime : %s"
-+msgid "Installed by: %s"
- msgstr ""
+-msgstr "Byggt : %s"
++msgid "Buildtime : %s"
++msgstr "Byggt : %s"
-#: ../output.py:549
-+#: ../output.py:609
++#: ../output.py:594
#, python-format
-msgid "Installtime: %s"
-+msgid "Changed by : %s"
- msgstr ""
+-msgstr "Installerat: %s"
++msgid "Install time: %s"
++msgstr "Installerat : %s"
-#: ../output.py:550
-msgid "Summary : "
-+#: ../output.py:610
-+msgid "Summary : "
- msgstr ""
+-msgstr "Sammandrag : "
++#: ../output.py:602
++#, python-format
++msgid "Installed by: %s"
++msgstr "Installerat av: %s"
-#: ../output.py:552
-+#: ../output.py:612 ../output.py:903
++#: ../output.py:609
#, python-format
-msgid "URL : %s"
-+msgid "URL : %s"
- msgstr ""
+-msgstr "URL : %s"
++msgid "Changed by : %s"
++msgstr "Ändrat av : %s"
++
++#: ../output.py:610
++msgid "Summary : "
++msgstr "Sammandrag : "
-#: ../output.py:553
-msgid "License : "
-+#: ../output.py:613
-+msgid "License : "
- msgstr ""
+-msgstr "Licens : "
++#: ../output.py:612 ../output.py:903
++#, python-format
++msgid "URL : %s"
++msgstr "URL : %s"
-#: ../output.py:554
-msgid "Description: "
-+#: ../output.py:614 ../output.py:900
-+msgid "Description : "
- msgstr ""
+-msgstr "Beskrivning: "
++#: ../output.py:613
++msgid "License : "
++msgstr "Licens : "
-#: ../output.py:622
++#: ../output.py:614 ../output.py:900
++msgid "Description : "
++msgstr "Beskrivning : "
++
+#: ../output.py:682
msgid "y"
- msgstr ""
+ msgstr "j"
-#: ../output.py:622
+#: ../output.py:682
msgid "yes"
- msgstr ""
+ msgstr "ja"
-#: ../output.py:623
+#: ../output.py:683
msgid "n"
- msgstr ""
+ msgstr "n"
-#: ../output.py:623
+#: ../output.py:683
msgid "no"
- msgstr ""
+ msgstr "nej"
-#: ../output.py:627
+#: ../output.py:687
msgid "Is this ok [y/N]: "
- msgstr ""
+ msgstr "Är detta ok [j/N]: "
-#: ../output.py:715
+#: ../output.py:775
#, python-format
msgid ""
"\n"
- "Group: %s"
- msgstr ""
+@@ -670,151 +697,141 @@ msgstr ""
+ "\n"
+ "Grupp: %s"
-#: ../output.py:719
+#: ../output.py:779
#, python-format
msgid " Group-Id: %s"
- msgstr ""
+ msgstr " Grupp-id: %s"
-#: ../output.py:724
+#: ../output.py:784
#, python-format
msgid " Description: %s"
- msgstr ""
+ msgstr " Beskrivning: %s"
-#: ../output.py:726
+#: ../output.py:786
msgid " Mandatory Packages:"
- msgstr ""
+ msgstr " Obligatoriska paket:"
-#: ../output.py:727
+#: ../output.py:787
msgid " Default Packages:"
- msgstr ""
+ msgstr " Standardpaket:"
-#: ../output.py:728
+#: ../output.py:788
msgid " Optional Packages:"
- msgstr ""
+ msgstr " Valfria paket:"
-#: ../output.py:729
+#: ../output.py:789
msgid " Conditional Packages:"
- msgstr ""
+ msgstr " Villkorliga paket:"
-#: ../output.py:749
+#: ../output.py:809
#, python-format
msgid "package: %s"
- msgstr ""
+ msgstr "paket: %s"
-#: ../output.py:751
+#: ../output.py:811
msgid " No dependencies for this package"
- msgstr ""
+ msgstr " Inga beroenden för detta paket"
-#: ../output.py:756
+#: ../output.py:816
#, python-format
msgid " dependency: %s"
- msgstr ""
+ msgstr " beroende: %s"
-#: ../output.py:758
+#: ../output.py:818
msgid " Unsatisfied dependency"
- msgstr ""
+ msgstr " Ej uppfyllt beroende"
-#: ../output.py:830
-#, python-format
-msgid "Repo : %s"
--msgstr ""
+-msgstr "Förråd : %s"
-
-#: ../output.py:831
+#: ../output.py:891
msgid "Matched from:"
- msgstr ""
+ msgstr "Matchat från:"
-#: ../output.py:840
-msgid "Description : "
--msgstr ""
+-msgstr "Beskrivning : "
-
-#: ../output.py:843
-#, python-format
-msgid "URL : %s"
--msgstr ""
+-msgstr "URL : %s"
-
-#: ../output.py:846
+#: ../output.py:906
#, python-format
msgid "License : %s"
- msgstr ""
+ msgstr "Licens : %s"
-#: ../output.py:849
+#: ../output.py:909
#, python-format
msgid "Filename : %s"
- msgstr ""
+ msgstr "Filnamn : %s"
-#: ../output.py:853
+#: ../output.py:913
msgid "Other : "
- msgstr ""
+ msgstr "Övrigt : "
-#: ../output.py:896
+#: ../output.py:956
msgid "There was an error calculating total download size"
- msgstr ""
+ msgstr "Ett fel uppstod vid beräkningen av total storlek att hämta"
-#: ../output.py:901
+#: ../output.py:961
#, python-format
msgid "Total size: %s"
- msgstr ""
+ msgstr "Total storlek: %s"
-#: ../output.py:904
+#: ../output.py:964
#, python-format
msgid "Total download size: %s"
- msgstr ""
+ msgstr "Total storlek att hämta: %s"
-#: ../output.py:908
+#: ../output.py:968 ../output.py:988
#, python-format
msgid "Installed size: %s"
- msgstr ""
+ msgstr "Installerad storlek: %s"
-#: ../output.py:949
+#: ../output.py:984
+msgid "There was an error calculating installed size"
-+msgstr ""
++msgstr "Ett fel uppstod vid beräkningen av installerad storlek"
+
+#: ../output.py:1029
msgid "Reinstalling"
- msgstr ""
+ msgstr "Ominstallerar"
-#: ../output.py:950
+#: ../output.py:1030
msgid "Downgrading"
- msgstr ""
+ msgstr "Nedgraderar"
-#: ../output.py:951
+#: ../output.py:1031
msgid "Installing for dependencies"
- msgstr ""
+ msgstr "Installerar på grund av beroenden"
-#: ../output.py:952
+#: ../output.py:1032
msgid "Updating for dependencies"
- msgstr ""
+ msgstr "Uppdaterar på grund av beroenden"
-#: ../output.py:953
+#: ../output.py:1033
msgid "Removing for dependencies"
- msgstr ""
+ msgstr "Tar bort på grund av beroenden"
-#: ../output.py:960 ../output.py:1072
+#: ../output.py:1040 ../output.py:1159
msgid "Skipped (dependency problems)"
- msgstr ""
+ msgstr "Hoppas över (beroendeproblem)"
-#: ../output.py:983
+#: ../output.py:1063
msgid "Package"
- msgstr ""
+ msgstr "Paket"
-#: ../output.py:983
+#: ../output.py:1063
msgid "Arch"
- msgstr ""
+ msgstr "Ark"
-#: ../output.py:984
+#: ../output.py:1064
msgid "Version"
- msgstr ""
+ msgstr "Version"
-#: ../output.py:984
+#: ../output.py:1064
msgid "Repository"
- msgstr ""
+ msgstr "Förråd"
-#: ../output.py:985
+#: ../output.py:1065
msgid "Size"
- msgstr ""
+ msgstr "Storl."
-#: ../output.py:997
+#: ../output.py:1077
#, python-format
msgid " replacing %s%s%s.%s %s\n"
- msgstr ""
+ msgstr " ersätter %s%s%s.%s %s\n"
-#: ../output.py:1006
+#: ../output.py:1086
#, python-format
msgid ""
"\n"
-@@ -806,47 +824,57 @@ msgid ""
+@@ -825,52 +842,57 @@ msgstr ""
+ "Transaktionssammanfattning\n"
"%s\n"
- msgstr ""
-#: ../output.py:1013
+#: ../output.py:1097
@@ -30589,8 +30657,11 @@ index f9a1d35..c9d7199 100644
-msgid ""
-"Install %5.5s Package(s)\n"
-"Upgrade %5.5s Package(s)\n"
+-msgstr ""
+-"Installerar %5.5s Paket\n"
+-"Uppdaterar %5.5s Paket\n"
+msgid "Install %5.5s Package(s)\n"
- msgstr ""
++msgstr "Installerar %5.5s paket\n"
-#: ../output.py:1022
+#: ../output.py:1101
@@ -30599,61 +30670,65 @@ index f9a1d35..c9d7199 100644
-"Remove %5.5s Package(s)\n"
-"Reinstall %5.5s Package(s)\n"
-"Downgrade %5.5s Package(s)\n"
+-msgstr ""
+-"Tar bort %5.5s Paket\n"
+-"Ominstallerar %5.5s Paket\n"
+-"Nedgraderar %5.5s Paket\n"
+msgid "Upgrade %5.5s Package(s)\n"
-+msgstr ""
++msgstr "Uppdaterar %5.5s Paket\n"
+
+#: ../output.py:1105
+#, python-format
+msgid "Remove %5.5s Package(s)\n"
-+msgstr ""
++msgstr "Tar bort %5.5s paket\n"
+
+#: ../output.py:1109
+#, python-format
+msgid "Reinstall %5.5s Package(s)\n"
- msgstr ""
++msgstr "Ominstallerar %5.5s paket\n"
-#: ../output.py:1066
+#: ../output.py:1113
+#, python-format
+msgid "Downgrade %5.5s Package(s)\n"
-+msgstr ""
++msgstr "Nedgraderar %5.5s paket\n"
+
+#: ../output.py:1153
msgid "Removed"
- msgstr ""
+ msgstr "Borttagna"
-#: ../output.py:1067
+#: ../output.py:1154
msgid "Dependency Removed"
- msgstr ""
+ msgstr "Borttagna beroenden"
-#: ../output.py:1069
+#: ../output.py:1156
msgid "Dependency Installed"
- msgstr ""
+ msgstr "Installerade beroenden"
-#: ../output.py:1071
+#: ../output.py:1158
msgid "Dependency Updated"
- msgstr ""
+ msgstr "Uppdaterade beroenden"
-#: ../output.py:1073
+#: ../output.py:1160
msgid "Replaced"
- msgstr ""
+ msgstr "Ersatte"
-#: ../output.py:1074
+#: ../output.py:1161
msgid "Failed"
- msgstr ""
+ msgstr "Misslyckade"
#. Delta between C-c's so we treat as exit
-#: ../output.py:1140
+#: ../output.py:1245
msgid "two"
- msgstr ""
+ msgstr "två"
-@@ -854,7 +882,7 @@ msgstr ""
+@@ -878,7 +900,7 @@ msgstr "två"
#. Current download cancelled, interrupt (ctrl-c) again within two seconds
#. to exit.
#. Where "interupt (ctrl-c) again" and "two" are highlighted.
@@ -30662,229 +30737,232 @@ index f9a1d35..c9d7199 100644
#, python-format
msgid ""
"\n"
-@@ -863,374 +891,448 @@ msgid ""
- "to exit.\n"
- msgstr ""
+@@ -890,360 +912,442 @@ msgstr ""
+ " Aktuell nedladdning avbröts, %savbryt (ctrl-c) igen%s inom %s%s%s sekunder\n"
+ "för att avsluta.\n"
-#: ../output.py:1162
+#: ../output.py:1267
msgid "user interrupt"
- msgstr ""
+ msgstr "avbrott från användaren"
-#: ../output.py:1180
+#: ../output.py:1285
msgid "Total"
- msgstr ""
+ msgstr "Totalt"
-#: ../output.py:1202
+#: ../output.py:1307
msgid "I"
- msgstr ""
+ msgstr "I"
-#: ../output.py:1203
+#: ../output.py:1308
msgid "O"
- msgstr ""
+ msgstr "UF"
-#: ../output.py:1204
+#: ../output.py:1309
msgid "E"
- msgstr ""
+ msgstr "R"
-#: ../output.py:1205
+#: ../output.py:1310
msgid "R"
- msgstr ""
+ msgstr "O"
-#: ../output.py:1206
+#: ../output.py:1311
msgid "D"
- msgstr ""
+ msgstr "N"
-#: ../output.py:1207
+#: ../output.py:1312
msgid "U"
- msgstr ""
+ msgstr "U"
-#: ../output.py:1217
+#: ../output.py:1323
msgid "<unset>"
- msgstr ""
+ msgstr "<ej satt>"
-#: ../output.py:1218
+#: ../output.py:1324
msgid "System"
- msgstr ""
+ msgstr "System"
-#: ../output.py:1254
+#: ../output.py:1368
msgid "Bad transaction IDs, or package(s), given"
- msgstr ""
+ msgstr "Felaktiga transaktions ID:n, eller paket, angivna"
-#: ../output.py:1266
+#: ../output.py:1380
msgid "ID"
- msgstr ""
+ msgstr "ID"
-#: ../output.py:1267 ../output.py:1520
+#: ../output.py:1381 ../output.py:1699
msgid "Login user"
- msgstr ""
+ msgstr "Inloggad användare"
-#: ../output.py:1268
+#: ../output.py:1382
msgid "Date and time"
- msgstr ""
+ msgstr "Datum och tid"
-#: ../output.py:1269 ../output.py:1522
+#: ../output.py:1383 ../output.py:1701
msgid "Action(s)"
- msgstr ""
+ msgstr "Åtgärd(er)"
-#: ../output.py:1270 ../output.py:1523
+#: ../output.py:1384 ../output.py:1702
msgid "Altered"
- msgstr ""
+ msgstr "Ändrade"
-#: ../output.py:1310
+#: ../output.py:1431 ../output.py:1760
msgid "No transaction ID given"
- msgstr ""
+ msgstr "Inget transaktions-ID angivet"
-#: ../output.py:1336
+#: ../output.py:1457
msgid "Bad transaction ID given"
- msgstr ""
+ msgstr "Felaktigt transaktions-ID angivet"
-#: ../output.py:1341
+#: ../output.py:1462
msgid "Not found given transaction ID"
- msgstr ""
+ msgstr "Hittade inte angivet transaktions-ID"
-#: ../output.py:1349
+#: ../output.py:1470
msgid "Found more than one transaction ID!"
- msgstr ""
+ msgstr "Hittade mer än ett transaktions-ID!"
-#: ../output.py:1370
+#: ../output.py:1491 ../output.py:1770
msgid "No transaction ID, or package, given"
- msgstr ""
+ msgstr "Inget transaktions-ID, eller paket, angivet"
-#: ../output.py:1396
+#: ../output.py:1518 ../output.py:1645
+msgid "Downgraded"
-+msgstr ""
++msgstr "Nedgraderade"
+
+#: ../output.py:1519
+msgid "Not installed"
-+msgstr ""
++msgstr "Inte installerat"
+
+#: ../output.py:1520
+msgid "Older"
-+msgstr ""
++msgstr "Äldre"
+
+#: ../output.py:1520
+msgid "Newer"
-+msgstr ""
++msgstr "Nyare"
+
+#: ../output.py:1552
msgid "Transaction ID :"
- msgstr ""
+ msgstr "Transaktions-ID:"
-#: ../output.py:1398
+#: ../output.py:1554
msgid "Begin time :"
- msgstr ""
+ msgstr "Starttid :"
-#: ../output.py:1401 ../output.py:1403
+#: ../output.py:1557 ../output.py:1559
msgid "Begin rpmdb :"
- msgstr ""
+ msgstr "Start-rpmdb :"
-#: ../output.py:1417
+#: ../output.py:1573
#, python-format
msgid "(%s seconds)"
- msgstr ""
+ msgstr "(%s sekunder)"
-#: ../output.py:1418
+#: ../output.py:1574
msgid "End time :"
- msgstr ""
+ msgstr "Sluttid : "
-#: ../output.py:1421 ../output.py:1423
+#: ../output.py:1577 ../output.py:1579
msgid "End rpmdb :"
- msgstr ""
+ msgstr "Slut-rpmdb :"
-#: ../output.py:1424
+#: ../output.py:1580
msgid "User :"
- msgstr ""
+ msgstr "Användare :"
-#: ../output.py:1426 ../output.py:1428 ../output.py:1430
+#: ../output.py:1582 ../output.py:1584 ../output.py:1586
msgid "Return-Code :"
- msgstr ""
+ msgstr "Returkod :"
-#: ../output.py:1426
+#: ../output.py:1582
msgid "Aborted"
- msgstr ""
+ msgstr "Avbruten"
-#: ../output.py:1428
+#: ../output.py:1584
msgid "Failure:"
- msgstr ""
+ msgstr "Misslyckades:"
-#: ../output.py:1430
+#: ../output.py:1586
msgid "Success"
- msgstr ""
+ msgstr "Lyckades"
-#: ../output.py:1431
-msgid "Transaction performed with:"
+-msgstr "Transaktionen utförd med:"
+#: ../output.py:1589
+msgid "Command Line :"
- msgstr ""
++msgstr "Kommandoradsfel:"
-#: ../output.py:1444 ../output.py:1489
-msgid "Downgraded"
+-msgstr "Nedgraderade"
+#: ../output.py:1597
+#, python-format
+msgid "Additional non-default information stored: %d"
- msgstr ""
++msgstr "Ytterligare icke-standardinformation lagrad: %d"
-#. multiple versions installed, both older and newer
-#: ../output.py:1446
-msgid "Weird"
+-msgstr "Mystisk"
+#: ../output.py:1600
+msgid "Transaction performed with:"
- msgstr ""
++msgstr "Transaktionen utförd med:"
-#: ../output.py:1448
+#: ../output.py:1603
msgid "Packages Altered:"
- msgstr ""
+ msgstr "Ändrade paket:"
-#: ../output.py:1451
+#: ../output.py:1607
+msgid "Packages Skipped:"
-+msgstr ""
++msgstr "Överhoppade paket:"
+
+#: ../output.py:1612
+msgid "Rpmdb Problems:"
-+msgstr ""
++msgstr "Rpmdb-problem:"
+
+#: ../output.py:1620
msgid "Scriptlet output:"
- msgstr ""
+ msgstr "Skriptutdata:"
-#: ../output.py:1457
+#: ../output.py:1626
msgid "Errors:"
- msgstr ""
+ msgstr "Fel:"
-#: ../output.py:1481 ../output.py:1482
+#. Note that these don't use _simple_pkg() because we are showing what
@@ -30892,168 +30970,168 @@ index f9a1d35..c9d7199 100644
+#. version in the transaction and now.
+#: ../output.py:1637 ../output.py:1638
msgid "Install"
- msgstr ""
+ msgstr "Installation"
-#: ../output.py:1483
+#: ../output.py:1639
msgid "Dep-Install"
- msgstr ""
+ msgstr "Ber-inst"
-#: ../output.py:1485
+#: ../output.py:1641
msgid "Obsoleting"
- msgstr ""
+ msgstr "Fasar ut"
-#: ../output.py:1486
+#: ../output.py:1642
msgid "Erase"
- msgstr ""
+ msgstr "Radering"
-#: ../output.py:1487
+#: ../output.py:1643
msgid "Reinstall"
- msgstr ""
+ msgstr "Ominstallation"
-#: ../output.py:1488
+#: ../output.py:1644
msgid "Downgrade"
- msgstr ""
+ msgstr "Nedgradering"
-#: ../output.py:1490
+#: ../output.py:1646
msgid "Update"
- msgstr ""
+ msgstr "Uppdatering"
-#: ../output.py:1521
+#: ../output.py:1700
msgid "Time"
- msgstr ""
+ msgstr "Tid"
-#: ../output.py:1547
+#: ../output.py:1726
msgid "Last day"
- msgstr ""
+ msgstr "Senaste dagen"
-#: ../output.py:1548
+#: ../output.py:1727
msgid "Last week"
- msgstr ""
+ msgstr "Senaste veckan"
-#: ../output.py:1549
+#: ../output.py:1728
msgid "Last 2 weeks"
- msgstr ""
+ msgstr "Senaste 2 veckorna"
#. US default :p
-#: ../output.py:1550
+#: ../output.py:1729
msgid "Last 3 months"
- msgstr ""
+ msgstr "Senaste 3 månaderna"
-#: ../output.py:1551
+#: ../output.py:1730
msgid "Last 6 months"
- msgstr ""
+ msgstr "Senaste 6 månaderna"
-#: ../output.py:1552
+#: ../output.py:1731
msgid "Last year"
- msgstr ""
+ msgstr "Senaste året"
-#: ../output.py:1553
+#: ../output.py:1732
msgid "Over a year ago"
- msgstr ""
+ msgstr "Mer än ett år tillbaka"
-#: ../output.py:1585
+#: ../output.py:1774
+#, python-format
+msgid "No Transaction %s found"
-+msgstr ""
++msgstr "Ingen transaktion %s funnen"
+
+#: ../output.py:1780
+msgid "Transaction ID:"
-+msgstr ""
++msgstr "Transaktions-ID:"
+
+#: ../output.py:1781
+msgid "Available additional history information:"
-+msgstr ""
++msgstr "Tillgänglig ytterligare historieinformation"
+
+#: ../output.py:1793
+#, python-format
+msgid "%s: No additional data found by this name"
-+msgstr ""
++msgstr "%s: Inga ytterligare data finns med detta namn"
+
+#: ../output.py:1809
msgid "installed"
- msgstr ""
+ msgstr "installeras"
-#: ../output.py:1586
+#: ../output.py:1810
msgid "updated"
- msgstr ""
+ msgstr "uppdateras"
-#: ../output.py:1587
+#: ../output.py:1811
msgid "obsoleted"
- msgstr ""
+ msgstr "utfasas"
-#: ../output.py:1588
+#: ../output.py:1812
msgid "erased"
- msgstr ""
+ msgstr "raderas"
-#: ../output.py:1592
+#: ../output.py:1813
+msgid "reinstalled"
-+msgstr ""
++msgstr "ominstalleras"
+
+#: ../output.py:1814
+msgid "downgraded"
-+msgstr ""
++msgstr "nedgraderas"
+
+#: ../output.py:1818
#, python-format
msgid "---> Package %s.%s %s:%s-%s set to be %s"
- msgstr ""
+ msgstr "---> Paket %s.%s %s:%s-%s satt till att %s"
-#: ../output.py:1599
+#: ../output.py:1825
msgid "--> Running transaction check"
- msgstr ""
+ msgstr "--> Kör transaktionskontroll"
-#: ../output.py:1604
+#: ../output.py:1830
msgid "--> Restarting Dependency Resolution with new changes."
- msgstr ""
+ msgstr "--> Startar om beroendeupplösning med nya ändringar."
-#: ../output.py:1609
+#: ../output.py:1835
msgid "--> Finished Dependency Resolution"
- msgstr ""
+ msgstr "--> Avslutade beroendeupplösning"
-#: ../output.py:1614 ../output.py:1619
+#: ../output.py:1840 ../output.py:1845
#, python-format
msgid "--> Processing Dependency: %s for package: %s"
- msgstr ""
+ msgstr "--> Bearbetar beroende: %s för paket: %s"
-#: ../output.py:1623
+#: ../output.py:1850
+#, python-format
+msgid "---> Keeping package: %s"
-+msgstr ""
++msgstr "---> Behåller paketet: %s"
+
+#: ../output.py:1853
#, python-format
msgid "--> Unresolved Dependency: %s"
- msgstr ""
+ msgstr "--> Ej upplöst beroende: %s"
-#: ../output.py:1634
+#: ../output.py:1864
#, python-format
msgid "Package: %s"
- msgstr ""
+ msgstr "Paket: %s"
-#: ../output.py:1636
+#: ../output.py:1866
@@ -31061,7 +31139,10 @@ index f9a1d35..c9d7199 100644
msgid ""
"\n"
" Requires: %s"
- msgstr ""
+-msgstr "\n Behöver: %s"
++msgstr ""
++"\n"
++" Behöver: %s"
-#: ../output.py:1649 ../output.py:1660
+#: ../output.py:1875
@@ -31069,7 +31150,10 @@ index f9a1d35..c9d7199 100644
msgid ""
"\n"
" %s: %s (%s)"
- msgstr ""
+-msgstr "\n %s: %s (%s)"
++msgstr ""
++"\n"
++" %s: %s (%s)"
-#: ../output.py:1657
+#: ../output.py:1880
@@ -31078,140 +31162,146 @@ index f9a1d35..c9d7199 100644
+"\n"
+" %s"
+msgstr ""
++"\n"
++" %s"
+
+#: ../output.py:1882
+msgid ""
+"\n"
+" Not found"
+msgstr ""
++"\n"
++" Finns inte"
+
+#. These should be the only three things we care about:
+#: ../output.py:1897
+msgid "Updated By"
-+msgstr ""
++msgstr "Uppdaterat av"
+
+#: ../output.py:1898
+msgid "Downgraded By"
-+msgstr ""
++msgstr "Nedgraderat av"
+
+#: ../output.py:1899
+msgid "Obsoleted By"
-+msgstr ""
++msgstr "Utfasat av"
+
+#: ../output.py:1917
msgid "Available"
- msgstr ""
+ msgstr "Tillgängliga"
-#: ../output.py:1665 ../output.py:1670
+#: ../output.py:1944 ../output.py:1949
#, python-format
msgid "--> Processing Conflict: %s conflicts %s"
- msgstr ""
+ msgstr "--> Bearbetar konflikt: %s står i konflikt med %s"
-#: ../output.py:1674
+#: ../output.py:1953
msgid "--> Populating transaction set with selected packages. Please wait."
- msgstr ""
+ msgstr "--> Fyller transaktionsmängden med valda paket. Var god dröj."
-#: ../output.py:1678
+#: ../output.py:1957
#, python-format
msgid "---> Downloading header for %s to pack into transaction set."
- msgstr ""
+ msgstr "---> Hämtar huvud för %s för att paketera i transaktionsmängden."
-#: ../utils.py:93
+#: ../utils.py:94
msgid "Running"
- msgstr ""
+ msgstr "Kör"
-#: ../utils.py:94
+#: ../utils.py:95
msgid "Sleeping"
- msgstr ""
+ msgstr "Sover"
-#: ../utils.py:95
+#: ../utils.py:96
msgid "Uninterruptible"
- msgstr ""
+ msgstr "Oavbrytbar"
-#: ../utils.py:96
+#: ../utils.py:97
msgid "Zombie"
- msgstr ""
+ msgstr "Zombie"
-#: ../utils.py:97
+#: ../utils.py:98
msgid "Traced/Stopped"
- msgstr ""
+ msgstr "Spårad/Stoppad"
-#: ../utils.py:98 ../yumcommands.py:917
+#: ../utils.py:99 ../yumcommands.py:972
msgid "Unknown"
- msgstr ""
+ msgstr "Okänd"
-#: ../utils.py:109
+#: ../utils.py:110
msgid " The other application is: PackageKit"
- msgstr ""
+ msgstr " Det andra programmet är: PackageKit"
-#: ../utils.py:111
+#: ../utils.py:112
#, python-format
msgid " The other application is: %s"
- msgstr ""
+ msgstr " Det andra programmet är: %s"
-#: ../utils.py:114
+#: ../utils.py:115
#, python-format
msgid " Memory : %5s RSS (%5sB VSZ)"
- msgstr ""
+ msgstr " Minne : %5s RSS (%5s B VSZ)"
-#: ../utils.py:119
+#: ../utils.py:120
#, python-format
msgid " Started: %s - %s ago"
- msgstr ""
+ msgstr " Startade: %s - för %s sedan"
-#: ../utils.py:121
+#: ../utils.py:122
#, python-format
msgid " State : %s, pid: %d"
- msgstr ""
+ msgstr " Status : %s, pid: %d"
-#: ../utils.py:199
-#, python-format
-msgid "PluginExit Error: %s"
--msgstr ""
+-msgstr "Insticksmodulsavslutsfel: %s"
-
-#: ../utils.py:202
-#, python-format
-msgid "Yum Error: %s"
--msgstr ""
+-msgstr "Yum-fel: %s"
-
-#: ../utils.py:235 ../yummain.py:42
+#: ../utils.py:143 ../yummain.py:42
msgid ""
"\n"
"\n"
- "Exiting on user cancel"
- msgstr ""
+@@ -1253,7 +1357,7 @@ msgstr ""
+ "\n"
+ "Slutar efter att användaren avbröt"
-#: ../utils.py:241 ../yummain.py:48
+#: ../utils.py:149 ../yummain.py:48
msgid ""
"\n"
"\n"
- "Exiting on Broken Pipe"
- msgstr ""
+@@ -1263,7 +1367,7 @@ msgstr ""
+ "\n"
+ "Slutar med brutet rör (pipe)"
-#: ../utils.py:243 ../yummain.py:50
+#: ../utils.py:151 ../yummain.py:50
#, python-format
msgid ""
"\n"
-@@ -1238,7 +1340,47 @@ msgid ""
+@@ -1274,7 +1378,51 @@ msgstr ""
+ "\n"
"%s"
- msgstr ""
-#: ../utils.py:282 ../yummain.py:211
+#: ../utils.py:201 ../yummain.py:107
@@ -31219,48 +31309,52 @@ index f9a1d35..c9d7199 100644
+"Another app is currently holding the yum lock; exiting as configured by "
+"exit_on_lock"
+msgstr ""
++"Ett annat program håller för närvarande yum-låset, avslutar som konfigurerad "
++"av exit_on_lock"
+
+#: ../utils.py:260
+#, python-format
+msgid "PluginExit Error: %s"
-+msgstr ""
++msgstr "Insticksmodulsavslutsfel: %s"
+
+#: ../utils.py:263
+#, python-format
+msgid "Yum Error: %s"
-+msgstr ""
++msgstr "Yum-fel: %s"
+
+#: ../utils.py:315 ../yummain.py:134 ../yummain.py:173
+#, python-format
+msgid "Error: %s"
-+msgstr ""
++msgstr "Fel: %s"
+
+#: ../utils.py:319 ../yummain.py:177
+msgid " You could try using --skip-broken to work around the problem"
-+msgstr ""
++msgstr " Du kan försöka använda --skip-broken för att gå runt problemet"
+
+#: ../utils.py:321 ../yummain.py:179 ../yummain.py:212
+msgid " You could try running: rpm -Va --nofiles --nodigest"
-+msgstr ""
++msgstr " Du kan försöka köra: rpm -Va --nofiles --nodigest"
+
+#: ../utils.py:328 ../yummain.py:144 ../yummain.py:186
+#, python-format
+msgid "Unknown Error(s): Exit Code: %d:"
-+msgstr ""
++msgstr "Okänt fel: Felkod: %d:"
+
+#: ../utils.py:334 ../yummain.py:192
+msgid ""
+"\n"
+"Dependencies Resolved"
+msgstr ""
++"\n"
++"Beroenden upplösta"
+
+#: ../utils.py:349 ../yummain.py:215
msgid "Complete!"
- msgstr ""
+ msgstr "Klart!"
-@@ -1305,403 +1447,398 @@ msgstr ""
+@@ -1354,294 +1502,312 @@ msgstr "Filen %s som gavs som ett argument till skalet finns inte."
msgid "Error: more than one file given as argument to shell."
- msgstr ""
+ msgstr "Fel: mer än en fil angiven som argument till skalet."
-#: ../yumcommands.py:170
+#: ../yumcommands.py:138
@@ -31269,377 +31363,3731 @@ index f9a1d35..c9d7199 100644
+" Run \"yum repolist all\" to see the repos you have.\n"
+" You can enable repos with yum-config-manager --enable <repo>"
+msgstr ""
++"Det finns inga aktiverade förråd.\n"
++" Kör ”yum repolist all” för att se vilka förråd du har.\n"
++" Du kan aktivera förråd med yum-config-manager --enable <förråd>"
+
+#: ../yumcommands.py:189
msgid "PACKAGE..."
- msgstr ""
+ msgstr "PAKET..."
-#: ../yumcommands.py:173
+#: ../yumcommands.py:192
msgid "Install a package or packages on your system"
- msgstr ""
+ msgstr "Installera ett eller flera paket på ditt system"
-#: ../yumcommands.py:181
+#: ../yumcommands.py:201
msgid "Setting up Install Process"
- msgstr ""
+ msgstr "Förbereder installationsprocessen"
-#: ../yumcommands.py:192
+#: ../yumcommands.py:212 ../yumcommands.py:234
msgid "[PACKAGE...]"
- msgstr ""
+ msgstr "[PAKET...]"
-#: ../yumcommands.py:195
+#: ../yumcommands.py:215
msgid "Update a package or packages on your system"
- msgstr ""
+ msgstr "Uppdatera ett eller flera paket på ditt system"
-#: ../yumcommands.py:202
+#: ../yumcommands.py:223
msgid "Setting up Update Process"
- msgstr ""
+ msgstr "Förbereder uppdateringsprocessen"
-#: ../yumcommands.py:244
+#: ../yumcommands.py:237
+msgid "Synchronize installed packages to the latest available versions"
-+msgstr ""
++msgstr "Synkroniser installerade paket med de senaste tillgängliga versionerna"
+
+#: ../yumcommands.py:245
+msgid "Setting up Distribution Synchronization Process"
-+msgstr ""
++msgstr "Förbereder distributionssynkroniseringsprocessen"
+
+#: ../yumcommands.py:288
msgid "Display details about a package or group of packages"
- msgstr ""
+ msgstr "Visa detaljer om ett paket eller en grupp paket"
-#: ../yumcommands.py:293
+#: ../yumcommands.py:337
msgid "Installed Packages"
- msgstr ""
+ msgstr "Installerade paket"
-#: ../yumcommands.py:301
+#: ../yumcommands.py:345
msgid "Available Packages"
- msgstr ""
+ msgstr "Tillgängliga paket"
-#: ../yumcommands.py:305
+#: ../yumcommands.py:349
msgid "Extra Packages"
- msgstr ""
+ msgstr "Extra paket"
-#: ../yumcommands.py:309
+#: ../yumcommands.py:353
msgid "Updated Packages"
- msgstr ""
+ msgstr "Uppdaterade paket"
#. This only happens in verbose mode
-#: ../yumcommands.py:317 ../yumcommands.py:324 ../yumcommands.py:601
+#: ../yumcommands.py:361 ../yumcommands.py:368 ../yumcommands.py:655
msgid "Obsoleting Packages"
- msgstr ""
+ msgstr "Fasar ut paket"
-#: ../yumcommands.py:326
+#: ../yumcommands.py:370
msgid "Recently Added Packages"
- msgstr ""
+ msgstr "Nyligen tillagda paket"
-#: ../yumcommands.py:333
+#: ../yumcommands.py:377
msgid "No matching Packages to list"
- msgstr ""
+ msgstr "Inga matchande paket att lista"
-#: ../yumcommands.py:347
+#: ../yumcommands.py:391
msgid "List a package or groups of packages"
- msgstr ""
+ msgstr "Lista ett paket eller en grupp paket"
-#: ../yumcommands.py:359
+#: ../yumcommands.py:403
msgid "Remove a package or packages from your system"
- msgstr ""
+ msgstr "Ta bort ett eller flera paket från ditt system"
-#: ../yumcommands.py:366
+#: ../yumcommands.py:410
msgid "Setting up Remove Process"
- msgstr ""
+ msgstr "Förbereder processen att ta bort"
-#: ../yumcommands.py:380
+#: ../yumcommands.py:424
msgid "Setting up Group Process"
- msgstr ""
+ msgstr "Förbereder grupprocessen"
-#: ../yumcommands.py:386
+#: ../yumcommands.py:430
msgid "No Groups on which to run command"
- msgstr ""
+ msgstr "Inga grupper att köra kommandot på"
-#: ../yumcommands.py:399
+#: ../yumcommands.py:443
msgid "List available package groups"
- msgstr ""
+ msgstr "Lista tillgängliga paketgrupper"
-#: ../yumcommands.py:416
+#: ../yumcommands.py:463
msgid "Install the packages in a group on your system"
- msgstr ""
+ msgstr "Installera paketen i en grupp på ditt system"
-#: ../yumcommands.py:438
+#: ../yumcommands.py:486
msgid "Remove the packages in a group from your system"
- msgstr ""
+ msgstr "Ta bort paketen in en grupp från ditt system"
-#: ../yumcommands.py:465
+#: ../yumcommands.py:514
msgid "Display details about a package group"
- msgstr ""
+ msgstr "Visa detaljer om en paketgrupp"
-#: ../yumcommands.py:489
+#: ../yumcommands.py:539
msgid "Generate the metadata cache"
- msgstr ""
+ msgstr "Generera metadata-cache:n"
-#: ../yumcommands.py:495
+#: ../yumcommands.py:545
msgid "Making cache files for all metadata files."
- msgstr ""
+ msgstr "Skapar cache-filer för alla metadatafiler."
-#: ../yumcommands.py:496
+#: ../yumcommands.py:546
msgid "This may take a while depending on the speed of this computer"
- msgstr ""
+ msgstr "Detta kan ta ett tag beroende på datorns fart"
-#: ../yumcommands.py:517
+#: ../yumcommands.py:567
msgid "Metadata Cache Created"
- msgstr ""
+ msgstr "Metadata-cache skapad"
-#: ../yumcommands.py:531
+#: ../yumcommands.py:581
msgid "Remove cached data"
- msgstr ""
+ msgstr "Ta bort cache:ade data"
-#: ../yumcommands.py:551
+#: ../yumcommands.py:602
msgid "Find what package provides the given value"
- msgstr ""
+ msgstr "Ta reda på vilka paket som tillhandahåller det angivna värdet"
-#: ../yumcommands.py:571
+#: ../yumcommands.py:622
msgid "Check for available package updates"
- msgstr ""
+ msgstr "Leta efter tillgängliga paketuppdateringar"
-#: ../yumcommands.py:621
+#: ../yumcommands.py:675
msgid "Search package details for the given string"
- msgstr ""
+ msgstr "Sök i paketdetaljer efter den angivna strängen"
-#: ../yumcommands.py:627
+#: ../yumcommands.py:681
msgid "Searching Packages: "
- msgstr ""
+ msgstr "Söker paket: "
-#: ../yumcommands.py:644
+#: ../yumcommands.py:698
msgid "Update packages taking obsoletes into account"
- msgstr ""
+ msgstr "Uppdatera paket med hänsyn tagen till utfasningar"
-#: ../yumcommands.py:652
+#: ../yumcommands.py:707
msgid "Setting up Upgrade Process"
- msgstr ""
+ msgstr "Förbereder uppgraderingsprocessen"
-#: ../yumcommands.py:666
+#: ../yumcommands.py:721
msgid "Install a local RPM"
- msgstr ""
+ msgstr "Installera en lokal RPM"
-#: ../yumcommands.py:674
+#: ../yumcommands.py:729
msgid "Setting up Local Package Process"
- msgstr ""
+ msgstr "Förbereder den lokala paketprocessen"
-#: ../yumcommands.py:693
+#: ../yumcommands.py:748
msgid "Determine which package provides the given dependency"
- msgstr ""
+ msgstr "Avgör vilket paket som tillhandahåller ett angivet beroende"
-#: ../yumcommands.py:696
+#: ../yumcommands.py:751
msgid "Searching Packages for Dependency:"
- msgstr ""
+ msgstr "Söker i paketen efter beroende:"
-#: ../yumcommands.py:710
+#: ../yumcommands.py:765
msgid "Run an interactive yum shell"
- msgstr ""
+ msgstr "Kör ett interactivt yum-skal"
-#: ../yumcommands.py:716
+#: ../yumcommands.py:771
msgid "Setting up Yum Shell"
- msgstr ""
+ msgstr "Förbereder ett yum-skal"
-#: ../yumcommands.py:734
+#: ../yumcommands.py:789
msgid "List a package's dependencies"
- msgstr ""
+ msgstr "Lista ett pakets beroenden"
-#: ../yumcommands.py:740
+#: ../yumcommands.py:795
msgid "Finding dependencies: "
- msgstr ""
+ msgstr "Letar efter beroenden: "
-#: ../yumcommands.py:756
+#: ../yumcommands.py:811
msgid "Display the configured software repositories"
- msgstr ""
+ msgstr "Visa konfigurerade programvaruförråd"
-#: ../yumcommands.py:822 ../yumcommands.py:823
+#: ../yumcommands.py:877 ../yumcommands.py:878
msgid "enabled"
- msgstr ""
+ msgstr "aktivt"
-#: ../yumcommands.py:849 ../yumcommands.py:850
+#: ../yumcommands.py:904 ../yumcommands.py:905
msgid "disabled"
- msgstr ""
+ msgstr "inaktivt"
-#: ../yumcommands.py:866
+#: ../yumcommands.py:921
msgid "Repo-id : "
- msgstr ""
+ msgstr "Förråds-id : "
-#: ../yumcommands.py:867
+#: ../yumcommands.py:922
msgid "Repo-name : "
- msgstr ""
+ msgstr "Förrådsnamn : "
-#: ../yumcommands.py:870
+#: ../yumcommands.py:925
msgid "Repo-status : "
- msgstr ""
+ msgstr "Förrådsstatus : "
-#: ../yumcommands.py:873
+#: ../yumcommands.py:928
msgid "Repo-revision: "
- msgstr ""
+ msgstr "Förrådsversion : "
-#: ../yumcommands.py:877
+#: ../yumcommands.py:932
msgid "Repo-tags : "
- msgstr ""
+ msgstr "Förrådstaggar : "
-#: ../yumcommands.py:883
+#: ../yumcommands.py:938
msgid "Repo-distro-tags: "
- msgstr ""
+ msgstr "Förråds-distro-taggar: "
-#: ../yumcommands.py:888
+#: ../yumcommands.py:943
msgid "Repo-updated : "
- msgstr ""
+ msgstr "Förråd uppdaterat: "
-#: ../yumcommands.py:890
+#: ../yumcommands.py:945
msgid "Repo-pkgs : "
- msgstr ""
+ msgstr "Förrådspaket : "
-#: ../yumcommands.py:891
+#: ../yumcommands.py:946
msgid "Repo-size : "
- msgstr ""
+ msgstr "Förrådstorlek : "
-#: ../yumcommands.py:898
+#: ../yumcommands.py:953
msgid "Repo-baseurl : "
- msgstr ""
+ msgstr "Förrådsbasurl : "
-#: ../yumcommands.py:906
+#: ../yumcommands.py:961
msgid "Repo-metalink: "
- msgstr ""
+ msgstr "Förrådsmetalänk : "
-#: ../yumcommands.py:910
+#: ../yumcommands.py:965
msgid " Updated : "
- msgstr ""
+ msgstr " Uppdaterat :"
-#: ../yumcommands.py:913
+#: ../yumcommands.py:968
msgid "Repo-mirrors : "
- msgstr ""
+ msgstr "Förrådspeglar : "
-#: ../yumcommands.py:923
+#: ../yumcommands.py:978
#, python-format
msgid "Never (last: %s)"
- msgstr ""
+ msgstr "Aldrig (senast: %s)"
-#: ../yumcommands.py:925
+#: ../yumcommands.py:980
#, python-format
msgid "Instant (last: %s)"
- msgstr ""
+ msgstr "Omedelbart (senast: %s)"
-#: ../yumcommands.py:928
+#: ../yumcommands.py:983
#, python-format
msgid "%s second(s) (last: %s)"
- msgstr ""
+ msgstr "%s sekunder (senast: %s)"
-#: ../yumcommands.py:930
+#: ../yumcommands.py:985
msgid "Repo-expire : "
- msgstr ""
+ msgstr "Förråd går ut : "
-#: ../yumcommands.py:933
+#: ../yumcommands.py:988
msgid "Repo-exclude : "
- msgstr ""
+ msgstr "Förråd utesluter : "
-#: ../yumcommands.py:937
+#: ../yumcommands.py:992
msgid "Repo-include : "
- msgstr ""
+ msgstr "Förråd inkluderar: "
-#: ../yumcommands.py:941
+#: ../yumcommands.py:996
msgid "Repo-excluded: "
- msgstr ""
+ msgstr "Förråd uteslutet : "
#. Work out the first (id) and last (enabled/disalbed/count),
#. then chop the middle (name)...
-#: ../yumcommands.py:951 ../yumcommands.py:980
+#: ../yumcommands.py:1006 ../yumcommands.py:1035
msgid "repo id"
- msgstr ""
+ msgstr "förråds-id"
-#: ../yumcommands.py:968 ../yumcommands.py:969 ../yumcommands.py:987
+#: ../yumcommands.py:1023 ../yumcommands.py:1024 ../yumcommands.py:1042
msgid "status"
- msgstr ""
+ msgstr "status"
-#: ../yumcommands.py:981
+#: ../yumcommands.py:1036
msgid "repo name"
- msgstr ""
+ msgstr "förrådsnamn"
-#: ../yumcommands.py:1018
+#: ../yumcommands.py:1073
msgid "Display a helpful usage message"
- msgstr ""
+ msgstr "Visa ett hjälpsamt meddelande om användning"
-#: ../yumcommands.py:1052
+#: ../yumcommands.py:1107
#, python-format
msgid "No help available for %s"
- msgstr ""
+ msgstr "Ingen hjälp tillgänglig för %s"
-#: ../yumcommands.py:1057
+#: ../yumcommands.py:1112
msgid ""
"\n"
"\n"
- "aliases: "
+@@ -1651,7 +1817,7 @@ msgstr ""
+ "\n"
+ "alias: "
+
+-#: ../yumcommands.py:1059
++#: ../yumcommands.py:1114
+ msgid ""
+ "\n"
+ "\n"
+@@ -1661,106 +1827,84 @@ msgstr ""
+ "\n"
+ "alias: "
+
+-#: ../yumcommands.py:1087
++#: ../yumcommands.py:1143
+ msgid "Setting up Reinstall Process"
+ msgstr "Förbereder ominstallationsprocessen"
+
+-#: ../yumcommands.py:1095
++#: ../yumcommands.py:1151
+ msgid "reinstall a package"
+ msgstr "ominstallera ett paket"
+
+-#: ../yumcommands.py:1113
++#: ../yumcommands.py:1170
+ msgid "Setting up Downgrade Process"
+ msgstr "Förbereder nedgraderingsprocessen"
+
+-#: ../yumcommands.py:1120
++#: ../yumcommands.py:1177
+ msgid "downgrade a package"
+ msgstr "nedgradera ett paket"
+
+-#: ../yumcommands.py:1134
++#: ../yumcommands.py:1191
+ msgid "Display a version for the machine and/or available repos."
+ msgstr "Visa en version för maskinen och/eller tillgängliga förråd."
+
+-#: ../yumcommands.py:1173
++#: ../yumcommands.py:1230
+ msgid " Yum version groups:"
+ msgstr " Yum versionsgrupper:"
+
+-#: ../yumcommands.py:1183
++#: ../yumcommands.py:1240
+ msgid " Group :"
+ msgstr " Grupp:"
+
+-#: ../yumcommands.py:1184
++#: ../yumcommands.py:1241
+ msgid " Packages:"
+ msgstr " Paket:"
+
+-#: ../yumcommands.py:1213
++#: ../yumcommands.py:1270
+ msgid "Installed:"
+ msgstr "Installerade:"
+
+-#: ../yumcommands.py:1218
++#: ../yumcommands.py:1278
+ msgid "Group-Installed:"
+ msgstr "Gruppinstallerade:"
+
+-#: ../yumcommands.py:1227
++#: ../yumcommands.py:1287
+ msgid "Available:"
+ msgstr "Tillgängliga:"
+
+-#: ../yumcommands.py:1233
++#: ../yumcommands.py:1296
+ msgid "Group-Available:"
+ msgstr "Grupptillgängliga:"
+
+-#: ../yumcommands.py:1272
++#: ../yumcommands.py:1335
+ msgid "Display, or use, the transaction history"
+ msgstr "Visa, eller använd, transaktionshistorien"
+
+-#: ../yumcommands.py:1300
++#: ../yumcommands.py:1363
+ #, python-format
+ msgid "Invalid history sub-command, use: %s."
+ msgstr "Ogiltigt underkommando till history, använd: %s."
+
+-#: ../yumcommands.py:1345
++#: ../yumcommands.py:1370
++msgid "You don't have access to the history DB."
++msgstr "Du har inte tillgång till historie-DB:n."
++
++#: ../yumcommands.py:1413
+ msgid "Check for problems in the rpmdb"
+ msgstr "Kontrollera om det finns problem i rpmdb:n"
+
+-#: ../yummain.py:102
++#: ../yummain.py:103
+ msgid ""
+ "Another app is currently holding the yum lock; waiting for it to exit..."
+ msgstr ""
+ "Ett annat program håller för närvarande yum-låset, väntar på att den skall "
+ "avsluta ..."
+
+-#: ../yummain.py:130 ../yummain.py:169
+-#, python-format
+-msgid "Error: %s"
+-msgstr "Fel: %s"
+-
+-#: ../yummain.py:140 ../yummain.py:182
+-#, python-format
+-msgid "Unknown Error(s): Exit Code: %d:"
+-msgstr "Okänt fel: Felkod: %d:"
+-
+ #. Depsolve stage
+-#: ../yummain.py:147
++#: ../yummain.py:151
+ msgid "Resolving Dependencies"
+ msgstr "Löser upp beroenden"
+
+-#: ../yummain.py:173
+-msgid " You could try using --skip-broken to work around the problem"
+-msgstr " Du kan försöka använda --skip-broken för att gå runt problemet"
+-
+-#: ../yummain.py:175 ../yummain.py:208
+-msgid " You could try running: rpm -Va --nofiles --nodigest"
+-msgstr " Du kan försöka köra: rpm -Va --nofiles --nodigest"
+-
+-#: ../yummain.py:188
+-msgid ""
+-"\n"
+-"Dependencies Resolved"
+-msgstr ""
+-"\n"
+-"Beroenden upplösta"
+-
+-#: ../yummain.py:265
++#: ../yummain.py:269
+ msgid ""
+ "\n"
+ "\n"
+@@ -1778,139 +1922,129 @@ msgstr "doTsSetup() kommer att försvinna i en framtida version av Yum.\n"
+ msgid "Setting up TransactionSets before config class is up"
+ msgstr "Förbereder transaktionsmängder före konfigurationsklass är uppe"
+
+-#: ../yum/depsolve.py:148
++#: ../yum/depsolve.py:151
+ #, python-format
+ msgid "Invalid tsflag in config file: %s"
+ msgstr "Ogiltig tsflag i konfigurationsfil: %s"
+
+-#: ../yum/depsolve.py:159
++#: ../yum/depsolve.py:162
+ #, python-format
+ msgid "Searching pkgSack for dep: %s"
+ msgstr "Söker pkgSack efter beroende: %s"
+
+-#: ../yum/depsolve.py:175
+-#, python-format
+-msgid "Potential match for %s from %s"
+-msgstr "Potentiell match av %s från %s"
+-
+-#: ../yum/depsolve.py:183
+-#, python-format
+-msgid "Matched %s to require for %s"
+-msgstr "Matchade %s mot behov från %s"
+-
+-#: ../yum/depsolve.py:225
++#: ../yum/depsolve.py:205
+ #, python-format
+ msgid "Member: %s"
+ msgstr "Medlem: %s"
+
+-#: ../yum/depsolve.py:239 ../yum/depsolve.py:754
++#: ../yum/depsolve.py:219 ../yum/depsolve.py:754
+ #, python-format
+ msgid "%s converted to install"
+ msgstr "%s konverterad till att installera"
+
+-#: ../yum/depsolve.py:246
++#: ../yum/depsolve.py:226
+ #, python-format
+ msgid "Adding Package %s in mode %s"
+ msgstr "Lägger till paket %s i läge %s"
+
+-#: ../yum/depsolve.py:256
++#: ../yum/depsolve.py:242
+ #, python-format
+ msgid "Removing Package %s"
+ msgstr "Tar bort paket %s"
+
+-#: ../yum/depsolve.py:278
++#: ../yum/depsolve.py:264
+ #, python-format
+ msgid "%s requires: %s"
+ msgstr "%s behöver: %s"
+
+-#: ../yum/depsolve.py:319
++#: ../yum/depsolve.py:305
+ #, python-format
+ msgid "%s requires %s"
+ msgstr "%s behöver %s"
+
+-#: ../yum/depsolve.py:346
++#: ../yum/depsolve.py:332
+ msgid "Needed Require has already been looked up, cheating"
+ msgstr "Nödvändigt behov har redan slagits upp, fuskar"
+
+-#: ../yum/depsolve.py:356
++#: ../yum/depsolve.py:342
+ #, python-format
+ msgid "Needed Require is not a package name. Looking up: %s"
+ msgstr "Nödvändigt behov är inte ett paketnamn. Slår upp: %s"
+
+-#: ../yum/depsolve.py:363
++#: ../yum/depsolve.py:349
+ #, python-format
+ msgid "Potential Provider: %s"
+ msgstr "Potentiell tillhandahållare: %s"
+
+-#: ../yum/depsolve.py:386
++#: ../yum/depsolve.py:372
+ #, python-format
+ msgid "Mode is %s for provider of %s: %s"
+ msgstr "Läget är %s för tillhandahållare av %s: %s"
+
+-#: ../yum/depsolve.py:390
++#: ../yum/depsolve.py:376
+ #, python-format
+ msgid "Mode for pkg providing %s: %s"
+ msgstr "Läge för paket som tillhandahåller %s: %s"
+
+-#: ../yum/depsolve.py:394
++#: ../yum/depsolve.py:380
+ #, python-format
+ msgid "TSINFO: %s package requiring %s marked as erase"
+ msgstr "TSINFO: paket %s behöver %s noteras att raderas"
+
+-#: ../yum/depsolve.py:407
++#: ../yum/depsolve.py:393
+ #, python-format
+ msgid "TSINFO: Obsoleting %s with %s to resolve dep."
+ msgstr "TSINFO: Fasar ut %s med %s för att lösa upp beroenden."
+
+-#: ../yum/depsolve.py:410
++#: ../yum/depsolve.py:396
+ #, python-format
+ msgid "TSINFO: Updating %s to resolve dep."
+ msgstr "TSINFO: Uppdaterar %s för att lösa upp beroenden"
+
+-#: ../yum/depsolve.py:418
++#: ../yum/depsolve.py:404
+ #, python-format
+ msgid "Cannot find an update path for dep for: %s"
+ msgstr "Hittar ingen uppdateringsväg för beroende för: %s"
+
+-#: ../yum/depsolve.py:449
++#: ../yum/depsolve.py:435
+ #, python-format
+ msgid "Quick matched %s to require for %s"
+ msgstr "Snabb matcning av %s mot behov för %s"
+
+ #. is it already installed?
+-#: ../yum/depsolve.py:491
++#: ../yum/depsolve.py:477
+ #, python-format
+ msgid "%s is in providing packages but it is already installed, removing."
+ msgstr ""
+ "%s finns bland tillhandahållande paket men det är redan installerat, tar "
+ "bort."
+
+-#: ../yum/depsolve.py:507
++#: ../yum/depsolve.py:493
+ #, python-format
+ msgid "Potential resolving package %s has newer instance in ts."
+ msgstr "Potentiellt upplösande paket %s har nyare instans i ts."
+
+-#: ../yum/depsolve.py:518
++#: ../yum/depsolve.py:504
+ #, python-format
+ msgid "Potential resolving package %s has newer instance installed."
+ msgstr "Potentiellt upplösande paket %s har nyare instans installerad."
+
+-#: ../yum/depsolve.py:536
++#: ../yum/depsolve.py:522
+ #, python-format
+ msgid "%s already in ts, skipping this one"
+ msgstr "%s är redan i ts, hoppar över denna"
+
+-#: ../yum/depsolve.py:578
++#: ../yum/depsolve.py:571
+ #, python-format
+ msgid "TSINFO: Marking %s as update for %s"
+ msgstr "TSINFO: Noterar %s som en uppdatering av %s"
+
+-#: ../yum/depsolve.py:586
++#: ../yum/depsolve.py:580
+ #, python-format
+ msgid "TSINFO: Marking %s as install for %s"
+ msgstr "TSINFO: Noterar %s som en installation av %s"
+
+-#: ../yum/depsolve.py:690 ../yum/depsolve.py:781
++#: ../yum/depsolve.py:690 ../yum/depsolve.py:780
+ msgid "Success - empty transaction"
+ msgstr "Klart - tom transaktion"
+
+@@ -1927,36 +2061,36 @@ msgstr "Beroendeprocessen avslutas"
+ msgid "%s from %s has depsolving problems"
+ msgstr "%s från %s har problem att lösa beroenden"
+
+-#: ../yum/depsolve.py:782
++#: ../yum/depsolve.py:781
+ msgid "Success - deps resolved"
+ msgstr "Klart - beroenden upplösta"
+
+-#: ../yum/depsolve.py:796
++#: ../yum/depsolve.py:802
+ #, python-format
+ msgid "Checking deps for %s"
+ msgstr "Kontrollerar beroenden för %s"
+
+-#: ../yum/depsolve.py:874
++#: ../yum/depsolve.py:888
+ #, python-format
+ msgid "looking for %s as a requirement of %s"
+ msgstr "letar efter %s som ett behov för %s"
+
+-#: ../yum/depsolve.py:1090
++#: ../yum/depsolve.py:1119
+ #, python-format
+ msgid "Running compare_providers() for %s"
+ msgstr "Kör compare_providers() för %s"
+
+-#: ../yum/depsolve.py:1117 ../yum/depsolve.py:1123
++#: ../yum/depsolve.py:1146 ../yum/depsolve.py:1152
+ #, python-format
+ msgid "better arch in po %s"
+ msgstr "bättre arkitektur i po %s"
+
+-#: ../yum/depsolve.py:1218
++#: ../yum/depsolve.py:1244
+ #, python-format
+ msgid "%s obsoletes %s"
+ msgstr "%s fasar ut %s"
+
+-#: ../yum/depsolve.py:1230
++#: ../yum/depsolve.py:1256
+ #, python-format
+ msgid ""
+ "archdist compared %s to %s on %s\n"
+@@ -1965,122 +2099,142 @@ msgstr ""
+ "arkitekturavstånd jämför %s med %s på %s\n"
+ " Vinnare: %s"
+
+-#: ../yum/depsolve.py:1237
++#: ../yum/depsolve.py:1264
+ #, python-format
+ msgid "common sourcerpm %s and %s"
+ msgstr "samma käll-rpm %s och %s"
+
+-#: ../yum/depsolve.py:1241
++#: ../yum/depsolve.py:1268
+ #, python-format
+ msgid "base package %s is installed for %s"
+ msgstr "baspaket %s är installerat för %s"
+
+-#: ../yum/depsolve.py:1247
++#: ../yum/depsolve.py:1274
+ #, python-format
+ msgid "common prefix of %s between %s and %s"
+ msgstr "gemensamt prefix för %s mellan %s och %s"
+
+-#: ../yum/depsolve.py:1256
++#: ../yum/depsolve.py:1305
++#, python-format
++msgid "requires minimal: %d"
++msgstr "behöver minst: %d"
++
++#: ../yum/depsolve.py:1309
++#, python-format
++msgid " Winner: %s"
++msgstr "Vinnare: %s"
++
++#: ../yum/depsolve.py:1314
++#, python-format
++msgid " Loser(with %d): %s"
++msgstr " Förlorare(med %d): %s"
++
++#: ../yum/depsolve.py:1330
+ #, python-format
+ msgid "Best Order: %s"
+ msgstr "Bästa ordning: %s"
+
+-#: ../yum/__init__.py:192
++#: ../yum/__init__.py:214
+ msgid "doConfigSetup() will go away in a future version of Yum.\n"
+ msgstr "doConfigSetup() kommer att försvinna i en framtida version av Yum.\n"
+
+-#: ../yum/__init__.py:424
++#: ../yum/__init__.py:453
++#, python-format
++msgid "Repository %r: Error parsing config: %s"
++msgstr "Förråd %r: Fel vid tolkning konfiguration: %s"
++
++#: ../yum/__init__.py:459
+ #, python-format
+ msgid "Repository %r is missing name in configuration, using id"
+ msgstr "Förrådet %r saknar namn i konfigurationen, använder id"
+
+-#: ../yum/__init__.py:462
++#: ../yum/__init__.py:497
+ msgid "plugins already initialised"
+ msgstr "insticksmoduler redan initierade"
+
+-#: ../yum/__init__.py:469
++#: ../yum/__init__.py:504
+ msgid "doRpmDBSetup() will go away in a future version of Yum.\n"
+ msgstr "doRpmDBSetup() kommer att försvinna i en framtida version av Yum.\n"
+
+-#: ../yum/__init__.py:480
++#: ../yum/__init__.py:515
+ msgid "Reading Local RPMDB"
+ msgstr "Läser lokal RPMDB"
+
+-#: ../yum/__init__.py:504
++#: ../yum/__init__.py:538
+ msgid "doRepoSetup() will go away in a future version of Yum.\n"
+ msgstr "doRepoSetup() kommer att försvinna i en framtida version av Yum.\n"
+
+-#: ../yum/__init__.py:524
++#: ../yum/__init__.py:577
+ msgid "doSackSetup() will go away in a future version of Yum.\n"
+ msgstr "doSackSetup() kommer att försvinna i en framtida version av Yum.\n"
+
+-#: ../yum/__init__.py:554
++#: ../yum/__init__.py:607
+ msgid "Setting up Package Sacks"
+ msgstr "Förbereder paketsäckar"
+
+-#: ../yum/__init__.py:599
++#: ../yum/__init__.py:652
+ #, python-format
+ msgid "repo object for repo %s lacks a _resetSack method\n"
+ msgstr "förrådsobjekt för förrådet %s saknar en _resetSack-metod\n"
+
+-#: ../yum/__init__.py:600
++#: ../yum/__init__.py:653
+ msgid "therefore this repo cannot be reset.\n"
+ msgstr "därför kan inte detta förråd återställas.\n"
+
+-#: ../yum/__init__.py:605
++#: ../yum/__init__.py:658
+ msgid "doUpdateSetup() will go away in a future version of Yum.\n"
+ msgstr "doUpdateSetup() kommer att försvinna i en framtida version av Yum.\n"
+
+-#: ../yum/__init__.py:617
++#: ../yum/__init__.py:670
+ msgid "Building updates object"
+ msgstr "Bygger uppdateringsobjekt"
+
+-#: ../yum/__init__.py:652
++#: ../yum/__init__.py:709
+ msgid "doGroupSetup() will go away in a future version of Yum.\n"
+ msgstr "doGroupSetup() kommer att försvinna i en framtida version av Yum.\n"
+
+-#: ../yum/__init__.py:677
++#: ../yum/__init__.py:734
+ msgid "Getting group metadata"
+ msgstr "Hämtar gruppmetadata"
+
+-#: ../yum/__init__.py:703
++#: ../yum/__init__.py:760
+ #, python-format
+ msgid "Adding group file from repository: %s"
+ msgstr "Lägger till gruppfil från förrådet: %s"
+
+-#: ../yum/__init__.py:712
++#: ../yum/__init__.py:769
+ #, python-format
+ msgid "Failed to add groups file for repository: %s - %s"
+ msgstr "Kunde inte lägga till gruppfil för förrådet: %s - %s"
+
+-#: ../yum/__init__.py:718
++#: ../yum/__init__.py:775
+ msgid "No Groups Available in any repository"
+ msgstr "Inga grupper tillgängliga i något förråd"
+
+-#: ../yum/__init__.py:730
++#: ../yum/__init__.py:787
+ msgid "Getting pkgtags metadata"
+ msgstr "Hämtar pakettaggsmetadata"
+
+-#: ../yum/__init__.py:740
++#: ../yum/__init__.py:797
+ #, python-format
+ msgid "Adding tags from repository: %s"
+ msgstr "Lägger till taggar från förrådet: %s"
+
+-#: ../yum/__init__.py:749
++#: ../yum/__init__.py:806
+ #, python-format
+ msgid "Failed to add Pkg Tags for repository: %s - %s"
+ msgstr "Kunde inte lägga till pakettaggar för förrådet: %s - %s"
+
+-#: ../yum/__init__.py:827
++#: ../yum/__init__.py:884
+ msgid "Importing additional filelist information"
+ msgstr "Importerar ytterligare fillisteinformation"
+
+-#: ../yum/__init__.py:841
++#: ../yum/__init__.py:898
+ #, python-format
+ msgid "The program %s%s%s is found in the yum-utils package."
+ msgstr "Programmet %s%s%s finns i paketet yum-utils."
+
+-#: ../yum/__init__.py:849
++#: ../yum/__init__.py:906
+ msgid ""
+ "There are unfinished transactions remaining. You might consider running yum-"
+ "complete-transaction first to finish them."
+@@ -2088,18 +2242,23 @@ msgstr ""
+ "Det finns oavslutade transaktioner kvar. Du kan överväga att köra "
+ "yumcomplete-transaction först för att avsluta dem."
+
++#: ../yum/__init__.py:985
++#, python-format
++msgid "Trying to remove \"%s\", which is protected"
++msgstr "Försöker ta bort ”%s”, som är skyddad"
++
+ #. Kind of hacky
+-#: ../yum/__init__.py:922
++#: ../yum/__init__.py:1044
+ #, python-format
+ msgid "Skip-broken round %i"
+ msgstr "Hoppa-över-trasiga runda %i"
+
+-#: ../yum/__init__.py:975
++#: ../yum/__init__.py:1101
+ #, python-format
+ msgid "Skip-broken took %i rounds "
+ msgstr "Hoppa-över-trasiga tog %i rundor "
+
+-#: ../yum/__init__.py:976
++#: ../yum/__init__.py:1102
+ msgid ""
+ "\n"
+ "Packages skipped because of dependency problems:"
+@@ -2107,91 +2266,115 @@ msgstr ""
+ "\n"
+ "Paket hoppades över på grund av beroendeproblem:"
+
+-#: ../yum/__init__.py:980
++#: ../yum/__init__.py:1106
+ #, python-format
+ msgid " %s from %s"
+ msgstr " %s från %s"
+
+-#: ../yum/__init__.py:1121
++#. FIXME: _N()
++#: ../yum/__init__.py:1251
++#, python-format
++msgid "** Found %d pre-existing rpmdb problem(s), 'yum check' output follows:"
++msgstr "** Hittade %d redan befintliga tidigare rpmdb-problem, ”yum check”-utdata följer:"
++
++#: ../yum/__init__.py:1255
+ msgid "Warning: RPMDB altered outside of yum."
+ msgstr "Varning: RPMDB ändrad utanför yum."
+
+-#: ../yum/__init__.py:1126
++#: ../yum/__init__.py:1267
+ msgid "missing requires"
+ msgstr "saknade behov"
+
+-#: ../yum/__init__.py:1127
++#: ../yum/__init__.py:1268
+ msgid "installed conflict"
+ msgstr "installerade konflikter"
+
+-#: ../yum/__init__.py:1180
++#: ../yum/__init__.py:1366
+ msgid ""
+ "Warning: scriptlet or other non-fatal errors occurred during transaction."
+ msgstr ""
+ "Varning: skript- eller annat icke ödesdigert fel inträffade under "
+ "transaktionen."
+
+-#: ../yum/__init__.py:1198
++#: ../yum/__init__.py:1376
++msgid "Transaction couldn't start:"
++msgstr "Transaktionen kunde inte starta:"
++
++#. should this be 'to_unicoded'?
++#: ../yum/__init__.py:1379
++msgid "Could not run transaction."
++msgstr "Kunde inte köra transaktionen."
++
++#: ../yum/__init__.py:1392
+ #, python-format
+ msgid "Failed to remove transaction file %s"
+ msgstr "Kunde inte ta bort transaktionsfilen %s"
+
+ #. maybe a file log here, too
+ #. but raising an exception is not going to do any good
+-#: ../yum/__init__.py:1227
++#: ../yum/__init__.py:1424
+ #, python-format
+ msgid "%s was supposed to be installed but is not!"
+ msgstr "%s skulle installerats men gjordes det inte!"
+
+ #. maybe a file log here, too
+ #. but raising an exception is not going to do any good
+-#: ../yum/__init__.py:1266
++#: ../yum/__init__.py:1486
+ #, python-format
+ msgid "%s was supposed to be removed but is not!"
+ msgstr "%s skulle tagits bort men det gjordes inte!"
+
++#: ../yum/__init__.py:1597
++#, python-format
++msgid "Could not open lock %s: %s"
++msgstr "Kunde inte öppna låset %s: %s "
++
+ #. Whoa. What the heck happened?
+-#: ../yum/__init__.py:1386
++#: ../yum/__init__.py:1614
+ #, python-format
+ msgid "Unable to check if PID %s is active"
+ msgstr "Kan inte kontrollera om PID %s är aktiv"
+
+ #. Another copy seems to be running.
+-#: ../yum/__init__.py:1390
++#: ../yum/__init__.py:1618
+ #, python-format
+ msgid "Existing lock %s: another copy is running as pid %s."
+ msgstr "Existerande lås %s: en annan kopia kör som pid %s."
+
+ #. Whoa. What the heck happened?
+-#: ../yum/__init__.py:1425
++#: ../yum/__init__.py:1653
+ #, python-format
+ msgid "Could not create lock at %s: %s "
+ msgstr "Kunde inte skapa lås av %s: %s "
+
+-#: ../yum/__init__.py:1470
++#: ../yum/__init__.py:1698
++#, python-format
+ msgid ""
+-"Package does not match intended download. Suggestion: run yum clean metadata"
+-msgstr "Paketet matchar inte den avsedda hämtningen. Förslag: kör yum clean metadata"
++"Package does not match intended download. Suggestion: run yum --enablerepo="
++"%s clean metadata"
++msgstr ""
++"Paketet matchar inte den avsedda hämtningen. Förslag: kör yum --enablerepo="
++"%s clean metadata"
+
+-#: ../yum/__init__.py:1486
++#: ../yum/__init__.py:1714
+ msgid "Could not perform checksum"
+ msgstr "Kunde inte utföra kontrollsummering"
+
+-#: ../yum/__init__.py:1489
++#: ../yum/__init__.py:1717
+ msgid "Package does not match checksum"
+ msgstr "Paketet stämmer inte med kontrollsumman"
+
+-#: ../yum/__init__.py:1531
++#: ../yum/__init__.py:1769
+ #, python-format
+ msgid "package fails checksum but caching is enabled for %s"
+ msgstr "paketet misslyckas med kontrollsumman men cachning är aktiverat för %s"
+
+-#: ../yum/__init__.py:1534 ../yum/__init__.py:1563
++#: ../yum/__init__.py:1772 ../yum/__init__.py:1801
+ #, python-format
+ msgid "using local copy of %s"
+ msgstr "använder lokal kopia av %s"
+
+-#: ../yum/__init__.py:1575
++#: ../yum/__init__.py:1813
+ #, python-format
+ msgid ""
+ "Insufficient space in download directory %s\n"
+@@ -2202,11 +2385,11 @@ msgstr ""
+ " * fritt %s\n"
+ " * behovet %s"
+
+-#: ../yum/__init__.py:1624
++#: ../yum/__init__.py:1862
+ msgid "Header is not complete."
+ msgstr "Huvudet är inte komplett."
+
+-#: ../yum/__init__.py:1661
++#: ../yum/__init__.py:1899
+ #, python-format
+ msgid ""
+ "Header not in local cache and caching-only mode enabled. Cannot download %s"
+@@ -2214,246 +2397,277 @@ msgstr ""
+ "Huvudet finns inte i den lokala cachen och endast-cache-läget är aktiverat. "
+ "Kan inte hämta %s"
+
+-#: ../yum/__init__.py:1716
++#: ../yum/__init__.py:1954
+ #, python-format
+ msgid "Public key for %s is not installed"
+ msgstr "Den publika nyckeln för %s är inte installerad"
+
+-#: ../yum/__init__.py:1720
++#: ../yum/__init__.py:1958
+ #, python-format
+ msgid "Problem opening package %s"
+ msgstr "Problem att öppna paketet %s"
+
+-#: ../yum/__init__.py:1728
++#: ../yum/__init__.py:1966
+ #, python-format
+ msgid "Public key for %s is not trusted"
+ msgstr "Den publika nyckeln för %s är inte betrodd"
+
+-#: ../yum/__init__.py:1732
++#: ../yum/__init__.py:1970
+ #, python-format
+ msgid "Package %s is not signed"
+ msgstr "Paket %s är inte signerat"
+
+-#: ../yum/__init__.py:1770
++#: ../yum/__init__.py:2008
+ #, python-format
+ msgid "Cannot remove %s"
+ msgstr "Det går inte att ta bort %s"
+
+-#: ../yum/__init__.py:1774
++#: ../yum/__init__.py:2012
+ #, python-format
+ msgid "%s removed"
+ msgstr "%s borttaget"
+
+ # Första %s blir ett oöversatt engelskt ord.
+ # Felrapporterat: http://yum.baseurl.org/ticket/41
+-#: ../yum/__init__.py:1820
++#: ../yum/__init__.py:2058
+ #, python-format
+ msgid "Cannot remove %s file %s"
+ msgstr "Det går inte att ta bort %s-filen %s"
+
+-#: ../yum/__init__.py:1824
++#: ../yum/__init__.py:2062
+ #, python-format
+ msgid "%s file %s removed"
+ msgstr "%s-filen %s borttagen"
+
+-#: ../yum/__init__.py:1826
++#: ../yum/__init__.py:2064
+ #, python-format
+ msgid "%d %s files removed"
+ msgstr "%d %s-filer borttagna"
+
+-#: ../yum/__init__.py:1895
++#: ../yum/__init__.py:2133
+ #, python-format
+ msgid "More than one identical match in sack for %s"
+ msgstr "Mer än en identisk matchning i säcken för %s"
+
+-#: ../yum/__init__.py:1901
++#: ../yum/__init__.py:2139
+ #, python-format
+ msgid "Nothing matches %s.%s %s:%s-%s from update"
+ msgstr "Ingenting matchar %s.%s %s:%s-%s från uppdateringarna"
+
+-#: ../yum/__init__.py:2180
++#: ../yum/__init__.py:2433
+ msgid ""
+-"searchPackages() will go away in a future version of "
+-"Yum. Use searchGenerator() instead. \n"
++"searchPackages() will go away in a future version of Yum. "
++" Use searchGenerator() instead. \n"
+ msgstr ""
+-"searchPackages() kommer att försvinna i en framtida version av "
+-"Yum. Använd searchGenerator() istället. \n"
++"searchPackages() kommer att försvinna i en framtida version av Yum. "
++" Använd searchGenerator() istället. \n"
+
+-#: ../yum/__init__.py:2219
++#: ../yum/__init__.py:2472
+ #, python-format
+ msgid "Searching %d packages"
+ msgstr "Söker i %d paket"
+
+-#: ../yum/__init__.py:2223
++#: ../yum/__init__.py:2476
+ #, python-format
+ msgid "searching package %s"
+ msgstr "söker i paketet %s"
+
+-#: ../yum/__init__.py:2235
++#: ../yum/__init__.py:2488
+ msgid "searching in file entries"
+ msgstr "söker i filposter"
+
+-#: ../yum/__init__.py:2242
++#: ../yum/__init__.py:2495
+ msgid "searching in provides entries"
+ msgstr "söker i tillhandahållandeposter"
+
+-#: ../yum/__init__.py:2275
++#: ../yum/__init__.py:2528
+ #, python-format
+ msgid "Provides-match: %s"
+ msgstr "Tillhandahållandematchning: %s"
+
+-#: ../yum/__init__.py:2324
++#: ../yum/__init__.py:2577
+ msgid "No group data available for configured repositories"
+ msgstr "Inga gruppdata är tillgängliga för de konfigurerade förråden"
+
+-#: ../yum/__init__.py:2355 ../yum/__init__.py:2374 ../yum/__init__.py:2405
+-#: ../yum/__init__.py:2411 ../yum/__init__.py:2493 ../yum/__init__.py:2497
+-#: ../yum/__init__.py:2814
++#: ../yum/__init__.py:2608 ../yum/__init__.py:2627 ../yum/__init__.py:2658
++#: ../yum/__init__.py:2664 ../yum/__init__.py:2746 ../yum/__init__.py:2750
++#: ../yum/__init__.py:3095
+ #, python-format
+ msgid "No Group named %s exists"
+ msgstr "Det finns ingen grupp med namnet %s"
+
+-#: ../yum/__init__.py:2386 ../yum/__init__.py:2513
++#: ../yum/__init__.py:2639 ../yum/__init__.py:2766
+ #, python-format
+ msgid "package %s was not marked in group %s"
+ msgstr "paket %s noterades inte i gruppen %s"
+
+-#: ../yum/__init__.py:2433
++#: ../yum/__init__.py:2686
+ #, python-format
+ msgid "Adding package %s from group %s"
+ msgstr "Lägger till paket %s från grupp %s"
+
+-#: ../yum/__init__.py:2437
++#: ../yum/__init__.py:2690
+ #, python-format
+ msgid "No package named %s available to be installed"
+ msgstr "Inget paket med namnet %s är tillgängligt för installation"
+
+-#: ../yum/__init__.py:2539
++#. This can happen due to excludes after .up has
++#. happened.
++#: ../yum/__init__.py:2794
+ #, python-format
+ msgid "Package tuple %s could not be found in packagesack"
+ msgstr "Pakettupel %s fanns inte i paketsäcken"
+
+-#: ../yum/__init__.py:2558
++#: ../yum/__init__.py:2813
+ #, python-format
+ msgid "Package tuple %s could not be found in rpmdb"
+ msgstr "Pakettupel %s fanns inte i rpmdb"
+
+-#: ../yum/__init__.py:2614 ../yum/__init__.py:2664
+-msgid "Invalid version flag"
+-msgstr "Ogiltig versionsflagga"
+-
+-#: ../yum/__init__.py:2634 ../yum/__init__.py:2639
++#: ../yum/__init__.py:2868 ../yum/__init__.py:2873
+ #, python-format
+ msgid "No Package found for %s"
+ msgstr "Inga paket hittades för %s"
+
+-#: ../yum/__init__.py:2855
++#: ../yum/__init__.py:2901
++msgid "Invalid version flag"
++msgstr "Ogiltig versionsflagga"
++
++#: ../yum/__init__.py:3145
+ msgid "Package Object was not a package object instance"
+ msgstr "Paketobjektet var inte en paketobjektinstans"
+
+-#: ../yum/__init__.py:2859
++#: ../yum/__init__.py:3149
+ msgid "Nothing specified to install"
+ msgstr "Inget angivet att installeras"
+
+-#: ../yum/__init__.py:2875 ../yum/__init__.py:3652
++#: ../yum/__init__.py:3168 ../yum/__init__.py:3992
+ #, python-format
+ msgid "Checking for virtual provide or file-provide for %s"
+ msgstr ""
+ "Kontrollerar virtuella tillhandahållanden eller filtillhandahållanden för %s"
+
+-#: ../yum/__init__.py:2881 ../yum/__init__.py:3197 ../yum/__init__.py:3365
+-#: ../yum/__init__.py:3658
++#: ../yum/__init__.py:3174 ../yum/__init__.py:3504 ../yum/__init__.py:3684
++#: ../yum/__init__.py:3998
+ #, python-format
+ msgid "No Match for argument: %s"
+ msgstr "Ingen matchning för argument: %s"
+
+-#: ../yum/__init__.py:2957
++#: ../yum/__init__.py:3250
+ #, python-format
+ msgid "Package %s installed and not available"
+ msgstr "Paket %s installerat och inte tillgänligt"
+
+-#: ../yum/__init__.py:2960
++#: ../yum/__init__.py:3253
+ msgid "No package(s) available to install"
+ msgstr "Inga paket tillgängliga att installera"
+
+-#: ../yum/__init__.py:2972
++#: ../yum/__init__.py:3265
+ #, python-format
+ msgid "Package: %s - already in transaction set"
+ msgstr "Paket: %s - redan i transaktionsmängden"
+
+-#: ../yum/__init__.py:2998
++#: ../yum/__init__.py:3291
+ #, python-format
+ msgid "Package %s is obsoleted by %s which is already installed"
+ msgstr "Paket %s fasas ut av %s, som redan är installerat"
+
+-#: ../yum/__init__.py:3001
++#: ../yum/__init__.py:3296
++#, python-format
++msgid ""
++"Package %s is obsoleted by %s, but obsoleting package does not provide for "
++"requirements"
++msgstr ""
++"Paket %s fasas ut av %s, men paketet som fasar ut tillhandahåller inte "
++"behoven"
++
++#: ../yum/__init__.py:3299
+ #, python-format
+ msgid "Package %s is obsoleted by %s, trying to install %s instead"
+ msgstr "Paket %s fasas ut av %s, försöker installera %s istället"
+
+-#: ../yum/__init__.py:3009
++#: ../yum/__init__.py:3307
+ #, python-format
+ msgid "Package %s already installed and latest version"
+ msgstr "Paket %s är redan installerat och senaste version"
+
+-#: ../yum/__init__.py:3023
++#: ../yum/__init__.py:3321
+ #, python-format
+ msgid "Package matching %s already installed. Checking for update."
+ msgstr "Paket som matchar %s är redan installerat. Letar efter uppdatering."
+
+ #. update everything (the easy case)
+-#: ../yum/__init__.py:3126
++#: ../yum/__init__.py:3424
+ msgid "Updating Everything"
+ msgstr "Uppdaterar allt"
+
+-#: ../yum/__init__.py:3147 ../yum/__init__.py:3262 ../yum/__init__.py:3289
+-#: ../yum/__init__.py:3315
++#: ../yum/__init__.py:3448 ../yum/__init__.py:3577 ../yum/__init__.py:3604
++#: ../yum/__init__.py:3630
+ #, python-format
+ msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
+ msgstr "Uppdaterar inte paket som redan är utfasade: %s.%s %s:%s-%s"
+
+-#: ../yum/__init__.py:3182 ../yum/__init__.py:3362
++#: ../yum/__init__.py:3489 ../yum/__init__.py:3680
+ #, python-format
+ msgid "%s"
+ msgstr "%s"
+
+-#: ../yum/__init__.py:3253
++#: ../yum/__init__.py:3566
+ #, python-format
+ msgid "Package is already obsoleted: %s.%s %s:%s-%s"
+ msgstr "Paketet är redan utfasat: %s.%s %s:%s-%s"
+
+-#: ../yum/__init__.py:3284
++#: ../yum/__init__.py:3599
+ #, python-format
+ msgid "Not Updating Package that is obsoleted: %s"
+ msgstr "Uppdaterar inte paket som fasas ut: %s"
+
+-#: ../yum/__init__.py:3293 ../yum/__init__.py:3319
++#: ../yum/__init__.py:3608 ../yum/__init__.py:3634
+ #, python-format
+ msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s"
+ msgstr "Uppdaterar inte paket som redan är uppdaterat: %s.%s %s:%s-%s"
+
+-#: ../yum/__init__.py:3378
++#: ../yum/__init__.py:3697
+ msgid "No package matched to remove"
+ msgstr "Inget paket att tas bort matchar"
+
+-#: ../yum/__init__.py:3412
++#: ../yum/__init__.py:3703
++#, python-format
++msgid "Skipping the running kernel: %s"
++msgstr "Hoppar över den körande kärnan: %s"
++
++#: ../yum/__init__.py:3709
++#, python-format
++msgid "Removing %s from the transaction"
++msgstr "Ta bort %s från transaktionen"
++
++#: ../yum/__init__.py:3744
+ #, python-format
+ msgid "Cannot open: %s. Skipping."
+ msgstr "Det går inte att öppna: %s. Hoppar över."
+
+-#: ../yum/__init__.py:3415 ../yum/__init__.py:3514 ../yum/__init__.py:3598
++#: ../yum/__init__.py:3747 ../yum/__init__.py:3859 ../yum/__init__.py:3935
+ #, python-format
+ msgid "Examining %s: %s"
+ msgstr "Undersöker %s: %s"
+
+-#: ../yum/__init__.py:3423 ../yum/__init__.py:3517 ../yum/__init__.py:3601
++#: ../yum/__init__.py:3751
++#, python-format
++msgid "Cannot localinstall deltarpm: %s. Skipping."
++msgstr "Det går inte att lokalinstallera deltarpm: %s. Hoppar över."
++
++#: ../yum/__init__.py:3760 ../yum/__init__.py:3862 ../yum/__init__.py:3938
+ #, python-format
+ msgid "Cannot add package %s to transaction. Not a compatible architecture: %s"
+ msgstr ""
+ "Kan inte lägga till paket %s till transaktionen. Inte en kompatibel "
+ "arkitektur: %s"
+
+-#: ../yum/__init__.py:3431
++#: ../yum/__init__.py:3766
++#, python-format
++msgid "Cannot install package %s. It is obsoleted by installed package %s"
++msgstr "Det går inte att installera paketet %s. Det är fasas ut av det installerade paketet %s"
++
++#: ../yum/__init__.py:3774
+ #, python-format
+ msgid ""
+ "Package %s not installed, cannot update it. Run yum install to install it "
+@@ -2462,108 +2676,126 @@ msgstr ""
+ "Paket %s är inte installerat, kan inte uppdatera det. Kör yum install för "
+ "att installera det istället."
+
+-#: ../yum/__init__.py:3460 ../yum/__init__.py:3522 ../yum/__init__.py:3606
++#: ../yum/__init__.py:3803 ../yum/__init__.py:3867 ../yum/__init__.py:3943
+ #, python-format
+ msgid "Excluding %s"
+ msgstr "Utesluter %s"
+
+-#: ../yum/__init__.py:3465
++#: ../yum/__init__.py:3808
+ #, python-format
+ msgid "Marking %s to be installed"
+ msgstr "Noterar %s för installation"
+
+-#: ../yum/__init__.py:3471
++#: ../yum/__init__.py:3814
+ #, python-format
+ msgid "Marking %s as an update to %s"
+ msgstr "Noterar %s som en uppdatering av %s"
+
+-#: ../yum/__init__.py:3478
++#: ../yum/__init__.py:3821
+ #, python-format
+ msgid "%s: does not update installed package."
+ msgstr "%s: uppdaterar inte ett installerat paket."
+
+-#: ../yum/__init__.py:3511 ../yum/__init__.py:3595
++#: ../yum/__init__.py:3856 ../yum/__init__.py:3932
+ #, python-format
+ msgid "Cannot open file: %s. Skipping."
+ msgstr "Det går inte att öppna filen: %s. Hoppar över."
+
+-#: ../yum/__init__.py:3541
++#: ../yum/__init__.py:3886
+ msgid "Problem in reinstall: no package matched to remove"
+ msgstr "Problem att ominstallera: inget paket matchades att tas bort"
+
+-#: ../yum/__init__.py:3554 ../yum/__init__.py:3686
+-#, python-format
+-msgid "Package %s is allowed multiple installs, skipping"
+-msgstr "Paket %s tillåts multipla installationer, hoppar över"
+-
+-#: ../yum/__init__.py:3575
++#: ../yum/__init__.py:3912
+ #, python-format
+ msgid "Problem in reinstall: no package %s matched to install"
+ msgstr "Problem att ominstallera: inget paket %s matchades att installera"
+
+-#: ../yum/__init__.py:3678
++#: ../yum/__init__.py:4018
+ msgid "No package(s) available to downgrade"
+ msgstr "Inga paket tillgängliga att nedgradera"
+
+-#: ../yum/__init__.py:3731
++#: ../yum/__init__.py:4026
++#, python-format
++msgid "Package %s is allowed multiple installs, skipping"
++msgstr "Paket %s tillåts multipla installationer, hoppar över"
++
++#: ../yum/__init__.py:4072
+ #, python-format
+ msgid "No Match for available package: %s"
+ msgstr "Ingen matchning för tillgängliga paket: %s"
+
+-#: ../yum/__init__.py:3738
++#: ../yum/__init__.py:4079
+ #, python-format
+ msgid "Only Upgrade available on package: %s"
+ msgstr "Endast uppgradering tillgängliga för paket: %s"
+
+-#: ../yum/__init__.py:3808 ../yum/__init__.py:3845
++#: ../yum/__init__.py:4149 ../yum/__init__.py:4186
+ #, python-format
+ msgid "Failed to downgrade: %s"
+ msgstr "Misslyckades nedgradera: %s"
+
+-#: ../yum/__init__.py:3877
++#: ../yum/__init__.py:4218
+ #, python-format
+ msgid "Retrieving GPG key from %s"
+ msgstr "Hämtar GPG-nyckel från %s"
+
+-#: ../yum/__init__.py:3897
++#: ../yum/__init__.py:4238
+ msgid "GPG key retrieval failed: "
+ msgstr "Hämtandet av GPG-nyckeln misslyckades: "
+
+-#: ../yum/__init__.py:3903
++#: ../yum/__init__.py:4244
+ #, python-format
+ msgid "Invalid GPG Key from %s: %s"
+ msgstr "Ogiltig GPG-nyckel från %s: %s"
+
+-#: ../yum/__init__.py:3912
++#: ../yum/__init__.py:4253
+ #, python-format
+ msgid "GPG key parsing failed: key does not have value %s"
+ msgstr "GPG-nyckeltolkning misslyckades: nyckeln har inte värde %s"
+
+-#: ../yum/__init__.py:3944
++#: ../yum/__init__.py:4267
+ #, python-format
+-msgid "GPG key at %s (0x%s) is already installed"
+-msgstr "GPG-nyckel vid %s (0x%s) är redan installerad"
++msgid ""
++"Importing GPG key 0x%s:\n"
++" Userid : %s\n"
++" Package: %s (%s)\n"
++" From : %s"
++msgstr ""
++"Importerar GPG-nyckel 0x%s:\n"
++" Användarid: %s\n"
++" Paket : %s (%s)\n"
++" Från : %s"
++
++#: ../yum/__init__.py:4275
++#, python-format
++msgid ""
++"Importing GPG key 0x%s:\n"
++" Userid: \"%s\"\n"
++" From : %s"
++msgstr ""
++"Importerar GPG-nyckel 0x%s:\n"
++" Användarid: \"%s\"\n"
++" Från : %s"
+
+-#. Try installing/updating GPG key
+-#: ../yum/__init__.py:3949 ../yum/__init__.py:4011
++#: ../yum/__init__.py:4307
+ #, python-format
+-msgid "Importing GPG key 0x%s \"%s\" from %s"
+-msgstr "Importerar GPG-nyckel 0x%s \"%s\" från %s"
++msgid "GPG key at %s (0x%s) is already installed"
++msgstr "GPG-nyckel vid %s (0x%s) är redan installerad"
+
+-#: ../yum/__init__.py:3966
++#: ../yum/__init__.py:4326
+ msgid "Not installing key"
+ msgstr "Installerar inte nyckeln"
+
+-#: ../yum/__init__.py:3972
++#: ../yum/__init__.py:4332
+ #, python-format
+ msgid "Key import failed (code %d)"
+ msgstr "Nyckelimport misslyckades (kod %d)"
+
+-#: ../yum/__init__.py:3973 ../yum/__init__.py:4032
++#: ../yum/__init__.py:4333 ../yum/__init__.py:4389
+ msgid "Key imported successfully"
+ msgstr "Nyckelimport lyckades"
+
+-#: ../yum/__init__.py:3978 ../yum/__init__.py:4037
++#: ../yum/__init__.py:4338
+ #, python-format
+ msgid ""
+ "The GPG keys listed for the \"%s\" repository are already installed but they "
+@@ -2574,83 +2806,94 @@ msgstr ""
+ "inte korrekta för detta paket.\n"
+ "Kontrollera att de rätta nyckel-URL:erna är konfigurerade för detta förråd."
+
+-#: ../yum/__init__.py:3987
++#: ../yum/__init__.py:4347
+ msgid "Import of key(s) didn't help, wrong key(s)?"
+ msgstr "Import av nycklar hjälpte inte, fel nycklar?"
+
+-#: ../yum/__init__.py:4006
++#: ../yum/__init__.py:4366
+ #, python-format
+ msgid "GPG key at %s (0x%s) is already imported"
+ msgstr "GPG-nyckel vid %s (0x%s) är redan importerad"
+
+-#: ../yum/__init__.py:4026
++#: ../yum/__init__.py:4383
+ #, python-format
+ msgid "Not installing key for repo %s"
+ msgstr "Installerar inte nyckel för förråd %s"
+
+-#: ../yum/__init__.py:4031
++#: ../yum/__init__.py:4388
+ msgid "Key import failed"
+ msgstr "Nyckelimport misslyckades"
+
+-#: ../yum/__init__.py:4157
++#: ../yum/__init__.py:4394
++#, python-format
++msgid ""
++"The GPG keys listed for the \"%s\" repository are already installed but they "
++"are not correct.\n"
++"Check that the correct key URLs are configured for this repository."
++msgstr ""
++"GPG-nycklarna uppräknade för förrådet \"%s\" är redan installerade men de är "
++"inte korrekta.\n"
++"Kontrollera att rätt nyckel-URL:ar är konfigurerade för detta förråd."
++
++#: ../yum/__init__.py:4521
+ msgid "Unable to find a suitable mirror."
+ msgstr "Kan inte hitta en lämplig spegel."
+
+-#: ../yum/__init__.py:4159
++#: ../yum/__init__.py:4523
+ msgid "Errors were encountered while downloading packages."
+ msgstr "Fel uppstod när paket hämtades."
+
+-#: ../yum/__init__.py:4209
++#: ../yum/__init__.py:4573
+ #, python-format
+ msgid "Please report this error at %s"
+ msgstr "Rapportera gärna detta fel till %s"
+
+-#: ../yum/__init__.py:4233
++#: ../yum/__init__.py:4597
+ msgid "Test Transaction Errors: "
+ msgstr "Transaktionstestfel: "
+
+-#: ../yum/__init__.py:4334
++#: ../yum/__init__.py:4700
+ #, python-format
+ msgid "Could not set cachedir: %s"
+ msgstr "Kunde inte sätta cache-katalog: %s"
+
+ #. Mostly copied from YumOutput._outKeyValFill()
+-#: ../yum/plugins.py:202
++#: ../yum/plugins.py:208
+ msgid "Loaded plugins: "
+ msgstr "Inlästa insticksmoduler: "
+
+-#: ../yum/plugins.py:216 ../yum/plugins.py:222
++#: ../yum/plugins.py:222 ../yum/plugins.py:228
+ #, python-format
+ msgid "No plugin match for: %s"
+ msgstr "Ingen insticksmodul matchar: %s"
+
+-#: ../yum/plugins.py:252
++#: ../yum/plugins.py:258
+ #, python-format
+ msgid "Not loading \"%s\" plugin, as it is disabled"
+ msgstr "Läser inte in insticksmodulen \"%s\" eftersom den är inaktiverad"
+
+ #. Give full backtrace:
+-#: ../yum/plugins.py:264
++#: ../yum/plugins.py:270
+ #, python-format
+ msgid "Plugin \"%s\" can't be imported"
+ msgstr "Insticksmodulen \"%s\" kan inte importeras"
+
+-#: ../yum/plugins.py:271
++#: ../yum/plugins.py:277
+ #, python-format
+ msgid "Plugin \"%s\" doesn't specify required API version"
+ msgstr "Insticksmodulen \"%s\" specificerare inte nödvändig API-version"
+
+-#: ../yum/plugins.py:276
++#: ../yum/plugins.py:282
+ #, python-format
+ msgid "Plugin \"%s\" requires API %s. Supported API is %s."
+ msgstr "Insticksmodulen \"%s\" kräver API %s. API:er som stöds är %s."
+
+-#: ../yum/plugins.py:309
++#: ../yum/plugins.py:315
+ #, python-format
+ msgid "Loading \"%s\" plugin"
+ msgstr "Läser in insticksmodulen \"%s\""
+
+-#: ../yum/plugins.py:316
++#: ../yum/plugins.py:322
+ #, python-format
+ msgid ""
+ "Two or more plugins with the name \"%s\" exist in the plugin search path"
+@@ -2658,19 +2901,19 @@ msgstr ""
+ "Två eller flera insticksmoduler med namnet \"%s\" finns i sökvägen för "
+ "insticksmoduler"
+
+-#: ../yum/plugins.py:336
++#: ../yum/plugins.py:342
+ #, python-format
+ msgid "Configuration file %s not found"
+ msgstr "Konfigurationsfilen %s finns inte"
+
+ #. for
+ #. Configuration files for the plugin not found
+-#: ../yum/plugins.py:339
++#: ../yum/plugins.py:345
+ #, python-format
+ msgid "Unable to find configuration file for plugin %s"
+ msgstr "Kan inte hitta konfigurationsfil för insticksmodulen %s"
+
+-#: ../yum/plugins.py:501
++#: ../yum/plugins.py:507
+ msgid "registration of commands not supported"
+ msgstr "registrering av kommandon stöds inte"
+
+@@ -2687,6 +2930,16 @@ msgstr "har installerad konflikt"
+ msgid "%s is a duplicate with %s"
+ msgstr "%s är en dubblett med %s"
+
++#: ../yum/rpmsack.py:122
++#, python-format
++msgid "%s is obsoleted by %s"
++msgstr "%s fasas ut av %s"
++
++#: ../yum/rpmsack.py:130
++#, python-format
++msgid "%s provides %s but it cannot be found"
++msgstr "%s tillhandahåller %s men det kan inte hittas"
++
+ #: ../yum/rpmtrans.py:79
+ msgid "Repackaging"
+ msgstr "Paketerar om"
+diff --git a/po/yum.pot b/po/yum.pot
+index f9a1d35..c9d7199 100644
+--- a/po/yum.pot
++++ b/po/yum.pot
+@@ -8,15 +8,16 @@ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2010-02-11 10:54-0500\n"
++"POT-Creation-Date: 2010-08-17 10:15-0400\n"
+ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+ "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+ "Language-Team: LANGUAGE <LL at li.org>\n"
++"Language: \n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=CHARSET\n"
+ "Content-Transfer-Encoding: 8bit\n"
+
+-#: ../callback.py:48 ../output.py:947 ../yum/rpmtrans.py:72
++#: ../callback.py:48 ../output.py:1027 ../yum/rpmtrans.py:72
+ msgid "Updating"
+ msgstr ""
+
+@@ -24,26 +25,26 @@ msgstr ""
+ msgid "Erasing"
+ msgstr ""
+
+-#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:946
+-#: ../output.py:1659 ../yum/rpmtrans.py:74 ../yum/rpmtrans.py:75
++#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:1026
++#: ../output.py:1919 ../yum/rpmtrans.py:74 ../yum/rpmtrans.py:75
+ #: ../yum/rpmtrans.py:77
+ msgid "Installing"
+ msgstr ""
+
+-#: ../callback.py:52 ../callback.py:58 ../output.py:1484 ../yum/rpmtrans.py:76
++#: ../callback.py:52 ../callback.py:58 ../output.py:1640 ../yum/rpmtrans.py:76
+ msgid "Obsoleted"
+ msgstr ""
+
+-#: ../callback.py:54 ../output.py:1070 ../output.py:1442 ../output.py:1491
++#: ../callback.py:54 ../output.py:1157 ../output.py:1518 ../output.py:1647
+ msgid "Updated"
+ msgstr ""
+
+-#: ../callback.py:55 ../output.py:1438
++#: ../callback.py:55 ../output.py:1517
+ msgid "Erased"
+ msgstr ""
+
+-#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:1068
+-#: ../output.py:1434 ../output.py:1646
++#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:1155
++#: ../output.py:1517 ../output.py:1519 ../output.py:1891
+ msgid "Installed"
+ msgstr ""
+
+@@ -65,7 +66,7 @@ msgstr ""
+ msgid "Erased: %s"
+ msgstr ""
+
+-#: ../callback.py:217 ../output.py:948 ../output.py:1648
++#: ../callback.py:217 ../output.py:1028 ../output.py:1894
+ msgid "Removing"
+ msgstr ""
+
+@@ -73,316 +74,329 @@ msgstr ""
+ msgid "Cleanup"
+ msgstr ""
+
+-#: ../cli.py:107
++#: ../cli.py:108
+ #, python-format
+ msgid "Command \"%s\" already defined"
+ msgstr ""
+
+-#: ../cli.py:119
++#: ../cli.py:120
+ msgid "Setting up repositories"
+ msgstr ""
+
+-#: ../cli.py:130
++#: ../cli.py:131
+ msgid "Reading repository metadata in from local files"
+ msgstr ""
+
+-#: ../cli.py:194 ../utils.py:193
++#: ../cli.py:234 ../utils.py:254
+ #, python-format
+ msgid "Config Error: %s"
+ msgstr ""
+
+-#: ../cli.py:197 ../cli.py:1272 ../utils.py:196
++#: ../cli.py:237 ../cli.py:1403 ../utils.py:257
+ #, python-format
+ msgid "Options Error: %s"
+ msgstr ""
+
+-#: ../cli.py:227
++#: ../cli.py:267
+ #, python-format
+ msgid " Installed: %s-%s at %s"
+ msgstr ""
+
+-#: ../cli.py:229
++#: ../cli.py:269
+ #, python-format
+ msgid " Built : %s at %s"
+ msgstr ""
+
+-#: ../cli.py:231
++#: ../cli.py:271
+ #, python-format
+ msgid " Committed: %s at %s"
+ msgstr ""
+
+-#: ../cli.py:270
++#: ../cli.py:310
+ msgid "You need to give some command"
+ msgstr ""
+
+-#: ../cli.py:284
++#: ../cli.py:324
+ #, python-format
+ msgid "No such command: %s. Please use %s --help"
+ msgstr ""
+
+-#: ../cli.py:314
++#: ../cli.py:354
+ msgid "Disk Requirements:\n"
+ msgstr ""
+
+-#: ../cli.py:316
++#: ../cli.py:356
+ #, python-format
+ msgid " At least %dMB more space needed on the %s filesystem.\n"
+ msgstr ""
+
+ #. TODO: simplify the dependency errors?
+ #. Fixup the summary
+-#: ../cli.py:321
++#: ../cli.py:361
+ msgid ""
+ "Error Summary\n"
+ "-------------\n"
+ msgstr ""
+
+-#: ../cli.py:364
++#: ../cli.py:404
+ msgid "Trying to run the transaction but nothing to do. Exiting."
+ msgstr ""
+
+-#: ../cli.py:403
++#: ../cli.py:451
+ msgid "Exiting on user Command"
+ msgstr ""
+
+-#: ../cli.py:407
++#: ../cli.py:455
+ msgid "Downloading Packages:"
+ msgstr ""
+
+-#: ../cli.py:412
++#: ../cli.py:460
+ msgid "Error Downloading Packages:\n"
+ msgstr ""
+
+-#: ../cli.py:426 ../yum/__init__.py:4195
++#: ../cli.py:474 ../yum/__init__.py:4559
+ msgid "Running rpm_check_debug"
+ msgstr ""
+
+-#: ../cli.py:435 ../yum/__init__.py:4204
++#: ../cli.py:483 ../yum/__init__.py:4568
+ msgid "ERROR You need to update rpm to handle:"
+ msgstr ""
+
+-#: ../cli.py:437 ../yum/__init__.py:4207
++#: ../cli.py:485 ../yum/__init__.py:4571
+ msgid "ERROR with rpm_check_debug vs depsolve:"
+ msgstr ""
+
+-#: ../cli.py:443
++#: ../cli.py:491
+ msgid "RPM needs to be updated"
+ msgstr ""
+
+-#: ../cli.py:444
++#: ../cli.py:492
+ #, python-format
+ msgid "Please report this error in %s"
+ msgstr ""
+
+-#: ../cli.py:450
++#: ../cli.py:498
+ msgid "Running Transaction Test"
+ msgstr ""
+
+-#: ../cli.py:466
++#: ../cli.py:514
+ msgid "Transaction Check Error:\n"
+ msgstr ""
+
+-#: ../cli.py:473
++#: ../cli.py:521
+ msgid "Transaction Test Succeeded"
+ msgstr ""
+
+-#: ../cli.py:495
++#: ../cli.py:543
+ msgid "Running Transaction"
+ msgstr ""
+
+-#: ../cli.py:525
++#: ../cli.py:573
+ msgid ""
+ "Refusing to automatically import keys when running unattended.\n"
+ "Use \"-y\" to override."
+ msgstr ""
+
+-#: ../cli.py:544 ../cli.py:578
++#: ../cli.py:592 ../cli.py:626
+ msgid " * Maybe you meant: "
+ msgstr ""
+
+-#: ../cli.py:561 ../cli.py:569
++#: ../cli.py:609 ../cli.py:617
+ #, python-format
+ msgid "Package(s) %s%s%s available, but not installed."
+ msgstr ""
+
+-#: ../cli.py:575 ../cli.py:607 ../cli.py:687
++#: ../cli.py:623 ../cli.py:656 ../cli.py:810
+ #, python-format
+ msgid "No package %s%s%s available."
+ msgstr ""
+
+-#: ../cli.py:612 ../cli.py:748
++#: ../cli.py:663 ../cli.py:875
+ msgid "Package(s) to install"
+ msgstr ""
+
+-#: ../cli.py:613 ../cli.py:693 ../cli.py:727 ../cli.py:749
+-#: ../yumcommands.py:160
++#: ../cli.py:666 ../cli.py:667 ../cli.py:816 ../cli.py:850 ../cli.py:876
++#: ../yumcommands.py:179
+ msgid "Nothing to do"
+ msgstr ""
+
+-#: ../cli.py:647
++#: ../cli.py:701
+ #, python-format
+ msgid "%d packages marked for Update"
+ msgstr ""
+
+-#: ../cli.py:650
++#: ../cli.py:704
+ msgid "No Packages marked for Update"
+ msgstr ""
+
+-#: ../cli.py:664
++#: ../cli.py:770
++#, python-format
++msgid "%d packages marked for Distribution Synchronization"
++msgstr ""
++
++#: ../cli.py:773
++msgid "No Packages marked for Distribution Synchronization"
++msgstr ""
++
++#: ../cli.py:787
+ #, python-format
+ msgid "%d packages marked for removal"
+ msgstr ""
+
+-#: ../cli.py:667
++#: ../cli.py:790
+ msgid "No Packages marked for removal"
+ msgstr ""
+
+-#: ../cli.py:692
++#: ../cli.py:815
+ msgid "Package(s) to downgrade"
+ msgstr ""
+
+-#: ../cli.py:717
++#: ../cli.py:840
+ #, python-format
+ msgid " (from %s)"
+ msgstr ""
+
+-#: ../cli.py:719
++#: ../cli.py:841
+ #, python-format
+ msgid "Installed package %s%s%s%s not available."
+ msgstr ""
+
+-#: ../cli.py:726
++#: ../cli.py:849
+ msgid "Package(s) to reinstall"
+ msgstr ""
+
+-#: ../cli.py:739
++#: ../cli.py:862
+ msgid "No Packages Provided"
+ msgstr ""
+
+-#: ../cli.py:818
++#: ../cli.py:945
+ #, python-format
+ msgid "Matched: %s"
+ msgstr ""
+
+-#: ../cli.py:825
++#: ../cli.py:952
+ #, python-format
+ msgid "Warning: No matches found for: %s"
+ msgstr ""
+
+-#: ../cli.py:828
++#: ../cli.py:955
+ msgid "No Matches found"
+ msgstr ""
+
+-#: ../cli.py:868
++#: ../cli.py:995
+ #, python-format
+ msgid ""
+ "Warning: 3.0.x versions of yum would erroneously match against filenames.\n"
+ " You can use \"%s*/%s%s\" and/or \"%s*bin/%s%s\" to get that behaviour"
+ msgstr ""
+
+-#: ../cli.py:884
++#: ../cli.py:1011
+ #, python-format
+ msgid "No Package Found for %s"
+ msgstr ""
+
+-#: ../cli.py:896
++#: ../cli.py:1021
++msgid "Cleaning repos: "
++msgstr ""
++
++#: ../cli.py:1026
+ msgid "Cleaning up Everything"
+ msgstr ""
+
+-#: ../cli.py:912
++#: ../cli.py:1042
+ msgid "Cleaning up Headers"
+ msgstr ""
+
+-#: ../cli.py:915
++#: ../cli.py:1045
+ msgid "Cleaning up Packages"
+ msgstr ""
+
+-#: ../cli.py:918
++#: ../cli.py:1048
+ msgid "Cleaning up xml metadata"
+ msgstr ""
+
+-#: ../cli.py:921
++#: ../cli.py:1051
+ msgid "Cleaning up database cache"
+ msgstr ""
+
+-#: ../cli.py:924
++#: ../cli.py:1054
+ msgid "Cleaning up expire-cache metadata"
+ msgstr ""
+
+-#: ../cli.py:927
++#: ../cli.py:1057
+ msgid "Cleaning up cached rpmdb data"
+ msgstr ""
+
+-#: ../cli.py:930
++#: ../cli.py:1060
+ msgid "Cleaning up plugins"
+ msgstr ""
+
+-#: ../cli.py:955
++#: ../cli.py:1085
+ msgid "Installed Groups:"
+ msgstr ""
+
+-#: ../cli.py:967
++#: ../cli.py:1097
+ msgid "Available Groups:"
+ msgstr ""
+
+-#: ../cli.py:977
++#: ../cli.py:1107
+ msgid "Done"
+ msgstr ""
+
+-#: ../cli.py:988 ../cli.py:1006 ../cli.py:1012 ../yum/__init__.py:2788
++#: ../cli.py:1118 ../cli.py:1136 ../cli.py:1142 ../yum/__init__.py:3069
+ #, python-format
+ msgid "Warning: Group %s does not exist."
+ msgstr ""
+
+-#: ../cli.py:1016
++#: ../cli.py:1146
+ msgid "No packages in any requested group available to install or update"
+ msgstr ""
+
+-#: ../cli.py:1018
++#: ../cli.py:1148
+ #, python-format
+ msgid "%d Package(s) to Install"
+ msgstr ""
+
+-#: ../cli.py:1028 ../yum/__init__.py:2800
++#: ../cli.py:1158 ../yum/__init__.py:3081
+ #, python-format
+ msgid "No group named %s exists"
+ msgstr ""
+
+-#: ../cli.py:1034
++#: ../cli.py:1164
+ msgid "No packages to remove from groups"
+ msgstr ""
+
+-#: ../cli.py:1036
++#: ../cli.py:1166
+ #, python-format
+ msgid "%d Package(s) to remove"
+ msgstr ""
+
+-#: ../cli.py:1078
++#: ../cli.py:1208
+ #, python-format
+ msgid "Package %s is already installed, skipping"
+ msgstr ""
+
+-#: ../cli.py:1089
++#: ../cli.py:1219
+ #, python-format
+ msgid "Discarding non-comparable pkg %s.%s"
+ msgstr ""
+
+ #. we've not got any installed that match n or n+a
+-#: ../cli.py:1115
++#: ../cli.py:1245
+ #, python-format
+ msgid "No other %s installed, adding to list for potential install"
+ msgstr ""
+
+-#: ../cli.py:1135
++#: ../cli.py:1265
+ msgid "Plugin Options"
+ msgstr ""
+
+-#: ../cli.py:1143
++#: ../cli.py:1273
+ #, python-format
+ msgid "Command line error: %s"
+ msgstr ""
+
+-#: ../cli.py:1156
++#: ../cli.py:1287
+ #, python-format
+ msgid ""
+ "\n"
+@@ -390,114 +404,118 @@ msgid ""
+ "%s: %s option requires an argument"
+ msgstr ""
+
+-#: ../cli.py:1209
++#: ../cli.py:1340
+ msgid "--color takes one of: auto, always, never"
+ msgstr ""
+
+-#: ../cli.py:1319
++#: ../cli.py:1450
+ msgid "show this help message and exit"
+ msgstr ""
+
+-#: ../cli.py:1323
++#: ../cli.py:1454
+ msgid "be tolerant of errors"
+ msgstr ""
+
+-#: ../cli.py:1326
++#: ../cli.py:1457
+ msgid "run entirely from system cache, don't update cache"
+ msgstr ""
+
+-#: ../cli.py:1329
++#: ../cli.py:1460
+ msgid "config file location"
+ msgstr ""
+
+-#: ../cli.py:1332
++#: ../cli.py:1463
+ msgid "maximum command wait time"
+ msgstr ""
+
+-#: ../cli.py:1334
++#: ../cli.py:1465
+ msgid "debugging output level"
+ msgstr ""
+
+-#: ../cli.py:1338
++#: ../cli.py:1469
+ msgid "show duplicates, in repos, in list/search commands"
+ msgstr ""
+
+-#: ../cli.py:1340
++#: ../cli.py:1471
+ msgid "error output level"
+ msgstr ""
+
+-#: ../cli.py:1343
++#: ../cli.py:1474
+ msgid "debugging output level for rpm"
+ msgstr ""
+
+-#: ../cli.py:1346
++#: ../cli.py:1477
+ msgid "quiet operation"
+ msgstr ""
+
+-#: ../cli.py:1348
++#: ../cli.py:1479
+ msgid "verbose operation"
+ msgstr ""
+
+-#: ../cli.py:1350
++#: ../cli.py:1481
+ msgid "answer yes for all questions"
+ msgstr ""
+
+-#: ../cli.py:1352
++#: ../cli.py:1483
+ msgid "show Yum version and exit"
+ msgstr ""
+
+-#: ../cli.py:1353
++#: ../cli.py:1484
+ msgid "set install root"
+ msgstr ""
+
+-#: ../cli.py:1357
++#: ../cli.py:1488
+ msgid "enable one or more repositories (wildcards allowed)"
+ msgstr ""
+
+-#: ../cli.py:1361
++#: ../cli.py:1492
+ msgid "disable one or more repositories (wildcards allowed)"
+ msgstr ""
+
+-#: ../cli.py:1364
++#: ../cli.py:1495
+ msgid "exclude package(s) by name or glob"
+ msgstr ""
+
+-#: ../cli.py:1366
++#: ../cli.py:1497
+ msgid "disable exclude from main, for a repo or for everything"
+ msgstr ""
+
+-#: ../cli.py:1369
++#: ../cli.py:1500
+ msgid "enable obsoletes processing during updates"
+ msgstr ""
+
+-#: ../cli.py:1371
++#: ../cli.py:1502
+ msgid "disable Yum plugins"
+ msgstr ""
+
+-#: ../cli.py:1373
++#: ../cli.py:1504
+ msgid "disable gpg signature checking"
+ msgstr ""
+
+-#: ../cli.py:1375
++#: ../cli.py:1506
+ msgid "disable plugins by name"
+ msgstr ""
+
+-#: ../cli.py:1378
++#: ../cli.py:1509
+ msgid "enable plugins by name"
+ msgstr ""
+
+-#: ../cli.py:1381
++#: ../cli.py:1512
+ msgid "skip packages with depsolving problems"
+ msgstr ""
+
+-#: ../cli.py:1383
++#: ../cli.py:1514
+ msgid "control whether color is used"
+ msgstr ""
+
+-#: ../cli.py:1385
++#: ../cli.py:1516
+ msgid "set value of $releasever in yum config and repo files"
+ msgstr ""
+
++#: ../cli.py:1518
++msgid "set arbitrary config and repo options"
++msgstr ""
++
+ #: ../output.py:305
+ msgid "Jan"
+ msgstr ""
+@@ -550,255 +568,255 @@ msgstr ""
+ msgid "Trying other mirror."
+ msgstr ""
+
+-#: ../output.py:534
++#: ../output.py:579
++#, python-format
++msgid "Name : %s%s%s"
++msgstr ""
++
++#: ../output.py:580
++#, python-format
++msgid "Arch : %s"
++msgstr ""
++
++#: ../output.py:582
+ #, python-format
+-msgid "Name : %s%s%s"
++msgid "Epoch : %s"
+ msgstr ""
+
+-#: ../output.py:535
++#: ../output.py:583
+ #, python-format
+-msgid "Arch : %s"
++msgid "Version : %s"
+ msgstr ""
+
+-#: ../output.py:537
++#: ../output.py:584
+ #, python-format
+-msgid "Epoch : %s"
++msgid "Release : %s"
+ msgstr ""
+
+-#: ../output.py:538
++#: ../output.py:585
+ #, python-format
+-msgid "Version : %s"
++msgid "Size : %s"
+ msgstr ""
+
+-#: ../output.py:539
++#: ../output.py:586 ../output.py:890
+ #, python-format
+-msgid "Release : %s"
++msgid "Repo : %s"
+ msgstr ""
+
+-#: ../output.py:540
++#: ../output.py:588
+ #, python-format
+-msgid "Size : %s"
++msgid "From repo : %s"
+ msgstr ""
+
+-#: ../output.py:541
++#: ../output.py:590
+ #, python-format
+-msgid "Repo : %s"
++msgid "Committer : %s"
+ msgstr ""
+
+-#: ../output.py:543
++#: ../output.py:591
+ #, python-format
+-msgid "From repo : %s"
++msgid "Committime : %s"
+ msgstr ""
+
+-#: ../output.py:545
++#: ../output.py:592
+ #, python-format
+-msgid "Committer : %s"
++msgid "Buildtime : %s"
+ msgstr ""
+
+-#: ../output.py:546
++#: ../output.py:594
+ #, python-format
+-msgid "Committime : %s"
++msgid "Install time: %s"
+ msgstr ""
+
+-#: ../output.py:547
++#: ../output.py:602
+ #, python-format
+-msgid "Buildtime : %s"
++msgid "Installed by: %s"
+ msgstr ""
+
+-#: ../output.py:549
++#: ../output.py:609
+ #, python-format
+-msgid "Installtime: %s"
++msgid "Changed by : %s"
+ msgstr ""
+
+-#: ../output.py:550
+-msgid "Summary : "
++#: ../output.py:610
++msgid "Summary : "
+ msgstr ""
+
+-#: ../output.py:552
++#: ../output.py:612 ../output.py:903
+ #, python-format
+-msgid "URL : %s"
++msgid "URL : %s"
+ msgstr ""
+
+-#: ../output.py:553
+-msgid "License : "
++#: ../output.py:613
++msgid "License : "
+ msgstr ""
+
+-#: ../output.py:554
+-msgid "Description: "
++#: ../output.py:614 ../output.py:900
++msgid "Description : "
+ msgstr ""
+
+-#: ../output.py:622
++#: ../output.py:682
+ msgid "y"
+ msgstr ""
+
+-#: ../output.py:622
++#: ../output.py:682
+ msgid "yes"
+ msgstr ""
+
+-#: ../output.py:623
++#: ../output.py:683
+ msgid "n"
+ msgstr ""
+
+-#: ../output.py:623
++#: ../output.py:683
+ msgid "no"
+ msgstr ""
+
+-#: ../output.py:627
++#: ../output.py:687
+ msgid "Is this ok [y/N]: "
+ msgstr ""
+
+-#: ../output.py:715
++#: ../output.py:775
+ #, python-format
+ msgid ""
+ "\n"
+ "Group: %s"
+ msgstr ""
+
+-#: ../output.py:719
++#: ../output.py:779
+ #, python-format
+ msgid " Group-Id: %s"
+ msgstr ""
+
+-#: ../output.py:724
++#: ../output.py:784
+ #, python-format
+ msgid " Description: %s"
+ msgstr ""
+
+-#: ../output.py:726
++#: ../output.py:786
+ msgid " Mandatory Packages:"
+ msgstr ""
+
+-#: ../output.py:727
++#: ../output.py:787
+ msgid " Default Packages:"
+ msgstr ""
+
+-#: ../output.py:728
++#: ../output.py:788
+ msgid " Optional Packages:"
+ msgstr ""
+
+-#: ../output.py:729
++#: ../output.py:789
+ msgid " Conditional Packages:"
+ msgstr ""
+
+-#: ../output.py:749
++#: ../output.py:809
+ #, python-format
+ msgid "package: %s"
+ msgstr ""
+
+-#: ../output.py:751
++#: ../output.py:811
+ msgid " No dependencies for this package"
+ msgstr ""
+
+-#: ../output.py:756
++#: ../output.py:816
+ #, python-format
+ msgid " dependency: %s"
+ msgstr ""
+
+-#: ../output.py:758
++#: ../output.py:818
+ msgid " Unsatisfied dependency"
+ msgstr ""
+
+-#: ../output.py:830
+-#, python-format
+-msgid "Repo : %s"
+-msgstr ""
+-
+-#: ../output.py:831
++#: ../output.py:891
+ msgid "Matched from:"
+ msgstr ""
+
+-#: ../output.py:840
+-msgid "Description : "
+-msgstr ""
+-
+-#: ../output.py:843
+-#, python-format
+-msgid "URL : %s"
+-msgstr ""
+-
+-#: ../output.py:846
++#: ../output.py:906
+ #, python-format
+ msgid "License : %s"
+ msgstr ""
+
+-#: ../output.py:849
++#: ../output.py:909
+ #, python-format
+ msgid "Filename : %s"
+ msgstr ""
+
+-#: ../output.py:853
++#: ../output.py:913
+ msgid "Other : "
+ msgstr ""
+
+-#: ../output.py:896
++#: ../output.py:956
+ msgid "There was an error calculating total download size"
+ msgstr ""
+
+-#: ../output.py:901
++#: ../output.py:961
+ #, python-format
+ msgid "Total size: %s"
+ msgstr ""
+
+-#: ../output.py:904
++#: ../output.py:964
+ #, python-format
+ msgid "Total download size: %s"
+ msgstr ""
+
+-#: ../output.py:908
++#: ../output.py:968 ../output.py:988
+ #, python-format
+ msgid "Installed size: %s"
+ msgstr ""
+
+-#: ../output.py:949
++#: ../output.py:984
++msgid "There was an error calculating installed size"
++msgstr ""
++
++#: ../output.py:1029
+ msgid "Reinstalling"
+ msgstr ""
+
+-#: ../output.py:950
++#: ../output.py:1030
+ msgid "Downgrading"
+ msgstr ""
+
+-#: ../output.py:951
++#: ../output.py:1031
+ msgid "Installing for dependencies"
+ msgstr ""
+
+-#: ../output.py:952
++#: ../output.py:1032
+ msgid "Updating for dependencies"
+ msgstr ""
+
+-#: ../output.py:953
++#: ../output.py:1033
+ msgid "Removing for dependencies"
+ msgstr ""
+
+-#: ../output.py:960 ../output.py:1072
++#: ../output.py:1040 ../output.py:1159
+ msgid "Skipped (dependency problems)"
+ msgstr ""
+
+-#: ../output.py:983
++#: ../output.py:1063
+ msgid "Package"
+ msgstr ""
+
+-#: ../output.py:983
++#: ../output.py:1063
+ msgid "Arch"
+ msgstr ""
+
+-#: ../output.py:984
++#: ../output.py:1064
+ msgid "Version"
+ msgstr ""
+
+-#: ../output.py:984
++#: ../output.py:1064
+ msgid "Repository"
+ msgstr ""
+
+-#: ../output.py:985
++#: ../output.py:1065
+ msgid "Size"
+ msgstr ""
+
+-#: ../output.py:997
++#: ../output.py:1077
+ #, python-format
+ msgid " replacing %s%s%s.%s %s\n"
+ msgstr ""
+
+-#: ../output.py:1006
++#: ../output.py:1086
+ #, python-format
+ msgid ""
+ "\n"
+@@ -806,47 +824,57 @@ msgid ""
+ "%s\n"
+ msgstr ""
+
+-#: ../output.py:1013
++#: ../output.py:1097
+ #, python-format
+-msgid ""
+-"Install %5.5s Package(s)\n"
+-"Upgrade %5.5s Package(s)\n"
++msgid "Install %5.5s Package(s)\n"
+ msgstr ""
+
+-#: ../output.py:1022
++#: ../output.py:1101
+ #, python-format
+-msgid ""
+-"Remove %5.5s Package(s)\n"
+-"Reinstall %5.5s Package(s)\n"
+-"Downgrade %5.5s Package(s)\n"
++msgid "Upgrade %5.5s Package(s)\n"
++msgstr ""
++
++#: ../output.py:1105
++#, python-format
++msgid "Remove %5.5s Package(s)\n"
++msgstr ""
++
++#: ../output.py:1109
++#, python-format
++msgid "Reinstall %5.5s Package(s)\n"
+ msgstr ""
+
+-#: ../output.py:1066
++#: ../output.py:1113
++#, python-format
++msgid "Downgrade %5.5s Package(s)\n"
++msgstr ""
++
++#: ../output.py:1153
+ msgid "Removed"
+ msgstr ""
+
+-#: ../output.py:1067
++#: ../output.py:1154
+ msgid "Dependency Removed"
+ msgstr ""
+
+-#: ../output.py:1069
++#: ../output.py:1156
+ msgid "Dependency Installed"
+ msgstr ""
+
+-#: ../output.py:1071
++#: ../output.py:1158
+ msgid "Dependency Updated"
+ msgstr ""
+
+-#: ../output.py:1073
++#: ../output.py:1160
+ msgid "Replaced"
+ msgstr ""
+
+-#: ../output.py:1074
++#: ../output.py:1161
+ msgid "Failed"
+ msgstr ""
+
+ #. Delta between C-c's so we treat as exit
+-#: ../output.py:1140
++#: ../output.py:1245
+ msgid "two"
+ msgstr ""
+
+@@ -854,7 +882,7 @@ msgstr ""
+ #. Current download cancelled, interrupt (ctrl-c) again within two seconds
+ #. to exit.
+ #. Where "interupt (ctrl-c) again" and "two" are highlighted.
+-#: ../output.py:1151
++#: ../output.py:1256
+ #, python-format
+ msgid ""
+ "\n"
+@@ -863,374 +891,448 @@ msgid ""
+ "to exit.\n"
+ msgstr ""
+
+-#: ../output.py:1162
++#: ../output.py:1267
+ msgid "user interrupt"
+ msgstr ""
+
+-#: ../output.py:1180
++#: ../output.py:1285
+ msgid "Total"
+ msgstr ""
+
+-#: ../output.py:1202
++#: ../output.py:1307
+ msgid "I"
+ msgstr ""
+
+-#: ../output.py:1203
++#: ../output.py:1308
+ msgid "O"
+ msgstr ""
+
+-#: ../output.py:1204
++#: ../output.py:1309
+ msgid "E"
+ msgstr ""
+
+-#: ../output.py:1205
++#: ../output.py:1310
+ msgid "R"
+ msgstr ""
+
+-#: ../output.py:1206
++#: ../output.py:1311
+ msgid "D"
+ msgstr ""
+
+-#: ../output.py:1207
++#: ../output.py:1312
+ msgid "U"
+ msgstr ""
+
+-#: ../output.py:1217
++#: ../output.py:1323
+ msgid "<unset>"
+ msgstr ""
+
+-#: ../output.py:1218
++#: ../output.py:1324
+ msgid "System"
+ msgstr ""
+
+-#: ../output.py:1254
++#: ../output.py:1368
+ msgid "Bad transaction IDs, or package(s), given"
+ msgstr ""
+
+-#: ../output.py:1266
++#: ../output.py:1380
+ msgid "ID"
+ msgstr ""
+
+-#: ../output.py:1267 ../output.py:1520
++#: ../output.py:1381 ../output.py:1699
+ msgid "Login user"
+ msgstr ""
+
+-#: ../output.py:1268
++#: ../output.py:1382
+ msgid "Date and time"
+ msgstr ""
+
+-#: ../output.py:1269 ../output.py:1522
++#: ../output.py:1383 ../output.py:1701
+ msgid "Action(s)"
+ msgstr ""
+
+-#: ../output.py:1270 ../output.py:1523
++#: ../output.py:1384 ../output.py:1702
+ msgid "Altered"
+ msgstr ""
+
+-#: ../output.py:1310
++#: ../output.py:1431 ../output.py:1760
+ msgid "No transaction ID given"
+ msgstr ""
+
+-#: ../output.py:1336
++#: ../output.py:1457
+ msgid "Bad transaction ID given"
+ msgstr ""
+
+-#: ../output.py:1341
++#: ../output.py:1462
+ msgid "Not found given transaction ID"
+ msgstr ""
+
+-#: ../output.py:1349
++#: ../output.py:1470
+ msgid "Found more than one transaction ID!"
+ msgstr ""
+
+-#: ../output.py:1370
++#: ../output.py:1491 ../output.py:1770
+ msgid "No transaction ID, or package, given"
+ msgstr ""
+
+-#: ../output.py:1396
++#: ../output.py:1518 ../output.py:1645
++msgid "Downgraded"
++msgstr ""
++
++#: ../output.py:1519
++msgid "Not installed"
++msgstr ""
++
++#: ../output.py:1520
++msgid "Older"
++msgstr ""
++
++#: ../output.py:1520
++msgid "Newer"
++msgstr ""
++
++#: ../output.py:1552
+ msgid "Transaction ID :"
+ msgstr ""
+
+-#: ../output.py:1398
++#: ../output.py:1554
+ msgid "Begin time :"
+ msgstr ""
+
+-#: ../output.py:1401 ../output.py:1403
++#: ../output.py:1557 ../output.py:1559
+ msgid "Begin rpmdb :"
+ msgstr ""
+
+-#: ../output.py:1417
++#: ../output.py:1573
+ #, python-format
+ msgid "(%s seconds)"
+ msgstr ""
+
+-#: ../output.py:1418
++#: ../output.py:1574
+ msgid "End time :"
+ msgstr ""
+
+-#: ../output.py:1421 ../output.py:1423
++#: ../output.py:1577 ../output.py:1579
+ msgid "End rpmdb :"
+ msgstr ""
+
+-#: ../output.py:1424
++#: ../output.py:1580
+ msgid "User :"
+ msgstr ""
+
+-#: ../output.py:1426 ../output.py:1428 ../output.py:1430
++#: ../output.py:1582 ../output.py:1584 ../output.py:1586
+ msgid "Return-Code :"
+ msgstr ""
+
+-#: ../output.py:1426
++#: ../output.py:1582
+ msgid "Aborted"
+ msgstr ""
+
+-#: ../output.py:1428
++#: ../output.py:1584
+ msgid "Failure:"
+ msgstr ""
+
+-#: ../output.py:1430
++#: ../output.py:1586
+ msgid "Success"
+ msgstr ""
+
+-#: ../output.py:1431
+-msgid "Transaction performed with:"
++#: ../output.py:1589
++msgid "Command Line :"
+ msgstr ""
+
+-#: ../output.py:1444 ../output.py:1489
+-msgid "Downgraded"
++#: ../output.py:1597
++#, python-format
++msgid "Additional non-default information stored: %d"
+ msgstr ""
+
+-#. multiple versions installed, both older and newer
+-#: ../output.py:1446
+-msgid "Weird"
++#: ../output.py:1600
++msgid "Transaction performed with:"
+ msgstr ""
+
+-#: ../output.py:1448
++#: ../output.py:1603
+ msgid "Packages Altered:"
+ msgstr ""
+
+-#: ../output.py:1451
++#: ../output.py:1607
++msgid "Packages Skipped:"
++msgstr ""
++
++#: ../output.py:1612
++msgid "Rpmdb Problems:"
++msgstr ""
++
++#: ../output.py:1620
+ msgid "Scriptlet output:"
+ msgstr ""
+
+-#: ../output.py:1457
++#: ../output.py:1626
+ msgid "Errors:"
+ msgstr ""
+
+-#: ../output.py:1481 ../output.py:1482
++#. Note that these don't use _simple_pkg() because we are showing what
++#. happened to them in the transaction ... not the difference between the
++#. version in the transaction and now.
++#: ../output.py:1637 ../output.py:1638
+ msgid "Install"
+ msgstr ""
+
+-#: ../output.py:1483
++#: ../output.py:1639
+ msgid "Dep-Install"
+ msgstr ""
+
+-#: ../output.py:1485
++#: ../output.py:1641
+ msgid "Obsoleting"
+ msgstr ""
+
+-#: ../output.py:1486
++#: ../output.py:1642
+ msgid "Erase"
+ msgstr ""
+
+-#: ../output.py:1487
++#: ../output.py:1643
+ msgid "Reinstall"
+ msgstr ""
+
+-#: ../output.py:1488
++#: ../output.py:1644
+ msgid "Downgrade"
+ msgstr ""
+
+-#: ../output.py:1490
++#: ../output.py:1646
+ msgid "Update"
+ msgstr ""
+
+-#: ../output.py:1521
++#: ../output.py:1700
+ msgid "Time"
+ msgstr ""
+
+-#: ../output.py:1547
++#: ../output.py:1726
+ msgid "Last day"
+ msgstr ""
+
+-#: ../output.py:1548
++#: ../output.py:1727
+ msgid "Last week"
+ msgstr ""
+
+-#: ../output.py:1549
++#: ../output.py:1728
+ msgid "Last 2 weeks"
+ msgstr ""
+
+ #. US default :p
+-#: ../output.py:1550
++#: ../output.py:1729
+ msgid "Last 3 months"
+ msgstr ""
+
+-#: ../output.py:1551
++#: ../output.py:1730
+ msgid "Last 6 months"
+ msgstr ""
+
+-#: ../output.py:1552
++#: ../output.py:1731
+ msgid "Last year"
+ msgstr ""
+
+-#: ../output.py:1553
++#: ../output.py:1732
+ msgid "Over a year ago"
+ msgstr ""
+
+-#: ../output.py:1585
++#: ../output.py:1774
++#, python-format
++msgid "No Transaction %s found"
++msgstr ""
++
++#: ../output.py:1780
++msgid "Transaction ID:"
++msgstr ""
++
++#: ../output.py:1781
++msgid "Available additional history information:"
++msgstr ""
++
++#: ../output.py:1793
++#, python-format
++msgid "%s: No additional data found by this name"
++msgstr ""
++
++#: ../output.py:1809
+ msgid "installed"
+ msgstr ""
+
+-#: ../output.py:1586
++#: ../output.py:1810
+ msgid "updated"
+ msgstr ""
+
+-#: ../output.py:1587
++#: ../output.py:1811
+ msgid "obsoleted"
+ msgstr ""
+
+-#: ../output.py:1588
++#: ../output.py:1812
+ msgid "erased"
+ msgstr ""
+
+-#: ../output.py:1592
++#: ../output.py:1813
++msgid "reinstalled"
++msgstr ""
++
++#: ../output.py:1814
++msgid "downgraded"
++msgstr ""
++
++#: ../output.py:1818
+ #, python-format
+ msgid "---> Package %s.%s %s:%s-%s set to be %s"
+ msgstr ""
+
+-#: ../output.py:1599
++#: ../output.py:1825
+ msgid "--> Running transaction check"
+ msgstr ""
+
+-#: ../output.py:1604
++#: ../output.py:1830
+ msgid "--> Restarting Dependency Resolution with new changes."
+ msgstr ""
+
+-#: ../output.py:1609
++#: ../output.py:1835
+ msgid "--> Finished Dependency Resolution"
+ msgstr ""
+
+-#: ../output.py:1614 ../output.py:1619
++#: ../output.py:1840 ../output.py:1845
+ #, python-format
+ msgid "--> Processing Dependency: %s for package: %s"
+ msgstr ""
+
+-#: ../output.py:1623
++#: ../output.py:1850
++#, python-format
++msgid "---> Keeping package: %s"
++msgstr ""
++
++#: ../output.py:1853
+ #, python-format
+ msgid "--> Unresolved Dependency: %s"
+ msgstr ""
+
+-#: ../output.py:1634
++#: ../output.py:1864
+ #, python-format
+ msgid "Package: %s"
+ msgstr ""
+
+-#: ../output.py:1636
++#: ../output.py:1866
+ #, python-format
+ msgid ""
+ "\n"
+ " Requires: %s"
+ msgstr ""
+
+-#: ../output.py:1649 ../output.py:1660
++#: ../output.py:1875
+ #, python-format
+ msgid ""
+ "\n"
+ " %s: %s (%s)"
+ msgstr ""
+
+-#: ../output.py:1657
++#: ../output.py:1880
++#, python-format
++msgid ""
++"\n"
++" %s"
++msgstr ""
++
++#: ../output.py:1882
++msgid ""
++"\n"
++" Not found"
++msgstr ""
++
++#. These should be the only three things we care about:
++#: ../output.py:1897
++msgid "Updated By"
++msgstr ""
++
++#: ../output.py:1898
++msgid "Downgraded By"
++msgstr ""
++
++#: ../output.py:1899
++msgid "Obsoleted By"
++msgstr ""
++
++#: ../output.py:1917
+ msgid "Available"
+ msgstr ""
+
+-#: ../output.py:1665 ../output.py:1670
++#: ../output.py:1944 ../output.py:1949
+ #, python-format
+ msgid "--> Processing Conflict: %s conflicts %s"
+ msgstr ""
+
+-#: ../output.py:1674
++#: ../output.py:1953
+ msgid "--> Populating transaction set with selected packages. Please wait."
+ msgstr ""
+
+-#: ../output.py:1678
++#: ../output.py:1957
+ #, python-format
+ msgid "---> Downloading header for %s to pack into transaction set."
+ msgstr ""
+
+-#: ../utils.py:93
++#: ../utils.py:94
+ msgid "Running"
+ msgstr ""
+
+-#: ../utils.py:94
++#: ../utils.py:95
+ msgid "Sleeping"
+ msgstr ""
+
+-#: ../utils.py:95
++#: ../utils.py:96
+ msgid "Uninterruptible"
+ msgstr ""
+
+-#: ../utils.py:96
++#: ../utils.py:97
+ msgid "Zombie"
+ msgstr ""
+
+-#: ../utils.py:97
++#: ../utils.py:98
+ msgid "Traced/Stopped"
+ msgstr ""
+
+-#: ../utils.py:98 ../yumcommands.py:917
++#: ../utils.py:99 ../yumcommands.py:972
+ msgid "Unknown"
+ msgstr ""
+
+-#: ../utils.py:109
++#: ../utils.py:110
+ msgid " The other application is: PackageKit"
+ msgstr ""
+
+-#: ../utils.py:111
++#: ../utils.py:112
+ #, python-format
+ msgid " The other application is: %s"
+ msgstr ""
+
+-#: ../utils.py:114
++#: ../utils.py:115
+ #, python-format
+ msgid " Memory : %5s RSS (%5sB VSZ)"
+ msgstr ""
+
+-#: ../utils.py:119
++#: ../utils.py:120
+ #, python-format
+ msgid " Started: %s - %s ago"
+ msgstr ""
+
+-#: ../utils.py:121
++#: ../utils.py:122
+ #, python-format
+ msgid " State : %s, pid: %d"
+ msgstr ""
+
+-#: ../utils.py:199
+-#, python-format
+-msgid "PluginExit Error: %s"
+-msgstr ""
+-
+-#: ../utils.py:202
+-#, python-format
+-msgid "Yum Error: %s"
+-msgstr ""
+-
+-#: ../utils.py:235 ../yummain.py:42
++#: ../utils.py:143 ../yummain.py:42
+ msgid ""
+ "\n"
+ "\n"
+ "Exiting on user cancel"
+ msgstr ""
+
+-#: ../utils.py:241 ../yummain.py:48
++#: ../utils.py:149 ../yummain.py:48
+ msgid ""
+ "\n"
+ "\n"
+ "Exiting on Broken Pipe"
+ msgstr ""
+
+-#: ../utils.py:243 ../yummain.py:50
++#: ../utils.py:151 ../yummain.py:50
+ #, python-format
+ msgid ""
+ "\n"
+@@ -1238,7 +1340,47 @@ msgid ""
+ "%s"
+ msgstr ""
+
+-#: ../utils.py:282 ../yummain.py:211
++#: ../utils.py:201 ../yummain.py:107
++msgid ""
++"Another app is currently holding the yum lock; exiting as configured by "
++"exit_on_lock"
++msgstr ""
++
++#: ../utils.py:260
++#, python-format
++msgid "PluginExit Error: %s"
++msgstr ""
++
++#: ../utils.py:263
++#, python-format
++msgid "Yum Error: %s"
++msgstr ""
++
++#: ../utils.py:315 ../yummain.py:134 ../yummain.py:173
++#, python-format
++msgid "Error: %s"
++msgstr ""
++
++#: ../utils.py:319 ../yummain.py:177
++msgid " You could try using --skip-broken to work around the problem"
++msgstr ""
++
++#: ../utils.py:321 ../yummain.py:179 ../yummain.py:212
++msgid " You could try running: rpm -Va --nofiles --nodigest"
++msgstr ""
++
++#: ../utils.py:328 ../yummain.py:144 ../yummain.py:186
++#, python-format
++msgid "Unknown Error(s): Exit Code: %d:"
++msgstr ""
++
++#: ../utils.py:334 ../yummain.py:192
++msgid ""
++"\n"
++"Dependencies Resolved"
++msgstr ""
++
++#: ../utils.py:349 ../yummain.py:215
+ msgid "Complete!"
+ msgstr ""
+
+@@ -1305,403 +1447,398 @@ msgstr ""
+ msgid "Error: more than one file given as argument to shell."
+ msgstr ""
+
+-#: ../yumcommands.py:170
++#: ../yumcommands.py:138
++msgid ""
++"There are no enabled repos.\n"
++" Run \"yum repolist all\" to see the repos you have.\n"
++" You can enable repos with yum-config-manager --enable <repo>"
++msgstr ""
++
++#: ../yumcommands.py:189
+ msgid "PACKAGE..."
+ msgstr ""
+
+-#: ../yumcommands.py:173
++#: ../yumcommands.py:192
+ msgid "Install a package or packages on your system"
+ msgstr ""
+
+-#: ../yumcommands.py:181
++#: ../yumcommands.py:201
+ msgid "Setting up Install Process"
+ msgstr ""
+
+-#: ../yumcommands.py:192
++#: ../yumcommands.py:212 ../yumcommands.py:234
+ msgid "[PACKAGE...]"
+ msgstr ""
+
+-#: ../yumcommands.py:195
++#: ../yumcommands.py:215
+ msgid "Update a package or packages on your system"
+ msgstr ""
+
+-#: ../yumcommands.py:202
++#: ../yumcommands.py:223
+ msgid "Setting up Update Process"
+ msgstr ""
+
+-#: ../yumcommands.py:244
++#: ../yumcommands.py:237
++msgid "Synchronize installed packages to the latest available versions"
++msgstr ""
++
++#: ../yumcommands.py:245
++msgid "Setting up Distribution Synchronization Process"
++msgstr ""
++
++#: ../yumcommands.py:288
+ msgid "Display details about a package or group of packages"
+ msgstr ""
+
+-#: ../yumcommands.py:293
++#: ../yumcommands.py:337
+ msgid "Installed Packages"
+ msgstr ""
+
+-#: ../yumcommands.py:301
++#: ../yumcommands.py:345
+ msgid "Available Packages"
+ msgstr ""
+
+-#: ../yumcommands.py:305
++#: ../yumcommands.py:349
+ msgid "Extra Packages"
+ msgstr ""
+
+-#: ../yumcommands.py:309
++#: ../yumcommands.py:353
+ msgid "Updated Packages"
+ msgstr ""
+
+ #. This only happens in verbose mode
+-#: ../yumcommands.py:317 ../yumcommands.py:324 ../yumcommands.py:601
++#: ../yumcommands.py:361 ../yumcommands.py:368 ../yumcommands.py:655
+ msgid "Obsoleting Packages"
+ msgstr ""
+
+-#: ../yumcommands.py:326
++#: ../yumcommands.py:370
+ msgid "Recently Added Packages"
+ msgstr ""
+
+-#: ../yumcommands.py:333
++#: ../yumcommands.py:377
+ msgid "No matching Packages to list"
+ msgstr ""
+
+-#: ../yumcommands.py:347
++#: ../yumcommands.py:391
+ msgid "List a package or groups of packages"
+ msgstr ""
+
+-#: ../yumcommands.py:359
++#: ../yumcommands.py:403
+ msgid "Remove a package or packages from your system"
+ msgstr ""
+
+-#: ../yumcommands.py:366
++#: ../yumcommands.py:410
+ msgid "Setting up Remove Process"
+ msgstr ""
+
+-#: ../yumcommands.py:380
++#: ../yumcommands.py:424
+ msgid "Setting up Group Process"
+ msgstr ""
+
+-#: ../yumcommands.py:386
++#: ../yumcommands.py:430
+ msgid "No Groups on which to run command"
+ msgstr ""
+
+-#: ../yumcommands.py:399
++#: ../yumcommands.py:443
+ msgid "List available package groups"
+ msgstr ""
+
+-#: ../yumcommands.py:416
++#: ../yumcommands.py:463
+ msgid "Install the packages in a group on your system"
+ msgstr ""
+
+-#: ../yumcommands.py:438
++#: ../yumcommands.py:486
+ msgid "Remove the packages in a group from your system"
+ msgstr ""
+
+-#: ../yumcommands.py:465
++#: ../yumcommands.py:514
+ msgid "Display details about a package group"
+ msgstr ""
+
+-#: ../yumcommands.py:489
++#: ../yumcommands.py:539
+ msgid "Generate the metadata cache"
+ msgstr ""
+
+-#: ../yumcommands.py:495
++#: ../yumcommands.py:545
+ msgid "Making cache files for all metadata files."
+ msgstr ""
+
+-#: ../yumcommands.py:496
++#: ../yumcommands.py:546
+ msgid "This may take a while depending on the speed of this computer"
+ msgstr ""
+
+-#: ../yumcommands.py:517
++#: ../yumcommands.py:567
+ msgid "Metadata Cache Created"
+ msgstr ""
+
+-#: ../yumcommands.py:531
++#: ../yumcommands.py:581
+ msgid "Remove cached data"
+ msgstr ""
+
+-#: ../yumcommands.py:551
++#: ../yumcommands.py:602
+ msgid "Find what package provides the given value"
+ msgstr ""
+
+-#: ../yumcommands.py:571
++#: ../yumcommands.py:622
+ msgid "Check for available package updates"
+ msgstr ""
+
+-#: ../yumcommands.py:621
++#: ../yumcommands.py:675
+ msgid "Search package details for the given string"
+ msgstr ""
+
+-#: ../yumcommands.py:627
++#: ../yumcommands.py:681
+ msgid "Searching Packages: "
+ msgstr ""
+
+-#: ../yumcommands.py:644
++#: ../yumcommands.py:698
+ msgid "Update packages taking obsoletes into account"
+ msgstr ""
+
+-#: ../yumcommands.py:652
++#: ../yumcommands.py:707
+ msgid "Setting up Upgrade Process"
+ msgstr ""
+
+-#: ../yumcommands.py:666
++#: ../yumcommands.py:721
+ msgid "Install a local RPM"
+ msgstr ""
+
+-#: ../yumcommands.py:674
++#: ../yumcommands.py:729
+ msgid "Setting up Local Package Process"
+ msgstr ""
+
+-#: ../yumcommands.py:693
++#: ../yumcommands.py:748
+ msgid "Determine which package provides the given dependency"
+ msgstr ""
+
+-#: ../yumcommands.py:696
++#: ../yumcommands.py:751
+ msgid "Searching Packages for Dependency:"
+ msgstr ""
+
+-#: ../yumcommands.py:710
++#: ../yumcommands.py:765
+ msgid "Run an interactive yum shell"
+ msgstr ""
+
+-#: ../yumcommands.py:716
++#: ../yumcommands.py:771
+ msgid "Setting up Yum Shell"
+ msgstr ""
+
+-#: ../yumcommands.py:734
++#: ../yumcommands.py:789
+ msgid "List a package's dependencies"
+ msgstr ""
+
+-#: ../yumcommands.py:740
++#: ../yumcommands.py:795
+ msgid "Finding dependencies: "
+ msgstr ""
+
+-#: ../yumcommands.py:756
++#: ../yumcommands.py:811
+ msgid "Display the configured software repositories"
+ msgstr ""
+
+-#: ../yumcommands.py:822 ../yumcommands.py:823
++#: ../yumcommands.py:877 ../yumcommands.py:878
+ msgid "enabled"
+ msgstr ""
+
+-#: ../yumcommands.py:849 ../yumcommands.py:850
++#: ../yumcommands.py:904 ../yumcommands.py:905
+ msgid "disabled"
+ msgstr ""
+
+-#: ../yumcommands.py:866
++#: ../yumcommands.py:921
+ msgid "Repo-id : "
+ msgstr ""
+
+-#: ../yumcommands.py:867
++#: ../yumcommands.py:922
+ msgid "Repo-name : "
+ msgstr ""
+
+-#: ../yumcommands.py:870
++#: ../yumcommands.py:925
+ msgid "Repo-status : "
+ msgstr ""
+
+-#: ../yumcommands.py:873
++#: ../yumcommands.py:928
+ msgid "Repo-revision: "
+ msgstr ""
+
+-#: ../yumcommands.py:877
++#: ../yumcommands.py:932
+ msgid "Repo-tags : "
+ msgstr ""
+
+-#: ../yumcommands.py:883
++#: ../yumcommands.py:938
+ msgid "Repo-distro-tags: "
+ msgstr ""
+
+-#: ../yumcommands.py:888
++#: ../yumcommands.py:943
+ msgid "Repo-updated : "
+ msgstr ""
+
+-#: ../yumcommands.py:890
++#: ../yumcommands.py:945
+ msgid "Repo-pkgs : "
+ msgstr ""
+
+-#: ../yumcommands.py:891
++#: ../yumcommands.py:946
+ msgid "Repo-size : "
+ msgstr ""
+
+-#: ../yumcommands.py:898
++#: ../yumcommands.py:953
+ msgid "Repo-baseurl : "
+ msgstr ""
+
+-#: ../yumcommands.py:906
++#: ../yumcommands.py:961
+ msgid "Repo-metalink: "
+ msgstr ""
+
+-#: ../yumcommands.py:910
++#: ../yumcommands.py:965
+ msgid " Updated : "
+ msgstr ""
+
+-#: ../yumcommands.py:913
++#: ../yumcommands.py:968
+ msgid "Repo-mirrors : "
+ msgstr ""
+
+-#: ../yumcommands.py:923
++#: ../yumcommands.py:978
+ #, python-format
+ msgid "Never (last: %s)"
+ msgstr ""
+
+-#: ../yumcommands.py:925
++#: ../yumcommands.py:980
+ #, python-format
+ msgid "Instant (last: %s)"
+ msgstr ""
+
+-#: ../yumcommands.py:928
++#: ../yumcommands.py:983
+ #, python-format
+ msgid "%s second(s) (last: %s)"
+ msgstr ""
+
+-#: ../yumcommands.py:930
++#: ../yumcommands.py:985
+ msgid "Repo-expire : "
+ msgstr ""
+
+-#: ../yumcommands.py:933
++#: ../yumcommands.py:988
+ msgid "Repo-exclude : "
+ msgstr ""
+
+-#: ../yumcommands.py:937
++#: ../yumcommands.py:992
+ msgid "Repo-include : "
+ msgstr ""
+
+-#: ../yumcommands.py:941
++#: ../yumcommands.py:996
+ msgid "Repo-excluded: "
+ msgstr ""
+
+ #. Work out the first (id) and last (enabled/disalbed/count),
+ #. then chop the middle (name)...
+-#: ../yumcommands.py:951 ../yumcommands.py:980
++#: ../yumcommands.py:1006 ../yumcommands.py:1035
+ msgid "repo id"
+ msgstr ""
+
+-#: ../yumcommands.py:968 ../yumcommands.py:969 ../yumcommands.py:987
++#: ../yumcommands.py:1023 ../yumcommands.py:1024 ../yumcommands.py:1042
+ msgid "status"
+ msgstr ""
+
+-#: ../yumcommands.py:981
++#: ../yumcommands.py:1036
+ msgid "repo name"
+ msgstr ""
+
+-#: ../yumcommands.py:1018
++#: ../yumcommands.py:1073
+ msgid "Display a helpful usage message"
+ msgstr ""
+
+-#: ../yumcommands.py:1052
++#: ../yumcommands.py:1107
+ #, python-format
+ msgid "No help available for %s"
+ msgstr ""
+
+-#: ../yumcommands.py:1057
++#: ../yumcommands.py:1112
+ msgid ""
+ "\n"
+ "\n"
+ "aliases: "
msgstr ""
-#: ../yumcommands.py:1059
@@ -33873,6 +37321,18 @@ index 0000000..569ba8d
+ self.testUpRmInuMerge2(xstate='Obsoleting')
+ self.testUpRmInuMerge2(ystate='Obsoleting')
+ self.testUpRmInuMerge2(xstate='Obsoleting', ystate='Obsoleting')
+diff --git a/test/misc-tests.py b/test/misc-tests.py
+index d6e49d8..d34c161 100644
+--- a/test/misc-tests.py
++++ b/test/misc-tests.py
+@@ -93,6 +93,7 @@ class MiscTests(DepsolveTests):
+
+ def resolveCode(self,skip = False):
+ solver = YumBase()
++ solver.save_ts = save_ts
+ solver.conf = FakeConf()
+ solver.arch.setup_arch('x86_64')
+ solver.conf.skip_broken = skip
diff --git a/test/packagetests.py b/test/packagetests.py
index dac8abd..1e3302b 100644
--- a/test/packagetests.py
@@ -34054,11 +37514,34 @@ index df641f7..6bc2efe 100644
+ [pa1, pa2], multi_cmds=True)
+ self.assert_(res=='ok', msg)
+ self.assertResult((pa1, pa2))
+diff --git a/test/skipbroken-tests.py b/test/skipbroken-tests.py
+index 43b0726..c1d0c1f 100644
+--- a/test/skipbroken-tests.py
++++ b/test/skipbroken-tests.py
+@@ -626,6 +626,7 @@ class SkipBrokenTests(DepsolveTests):
+
+ def resolveCode(self,skip = False):
+ solver = YumBase()
++ solver.save_ts = save_ts
+ solver.arch.setup_arch('x86_64')
+ solver.conf = FakeConf()
+ solver.conf.skip_broken = skip
diff --git a/test/testbase.py b/test/testbase.py
-index f91fbf1..30cf177 100644
+index f91fbf1..81591ad 100644
--- a/test/testbase.py
+++ b/test/testbase.py
-@@ -128,8 +128,10 @@ class DepSolveProgressCallBack:
+@@ -27,6 +27,10 @@ from rpmUtils.transaction import initReadOnlyTransaction
+ def _(msg):
+ return msg
+
++# dummy save_ts to avoid lots of errors
++def save_ts(*args, **kwargs):
++ pass
++
+ class FakeConf(object):
+
+ def __init__(self):
+@@ -128,8 +132,10 @@ class DepSolveProgressCallBack:
def pkgAdded(self, pkgtup, mode):
modedict = { 'i': _('installed'),
'u': _('updated'),
@@ -34071,7 +37554,18 @@ index f91fbf1..30cf177 100644
(n, a, e, v, r) = pkgtup
modeterm = modedict[mode]
self.verbose_logger.log(logginglevels.INFO_2,
-@@ -399,7 +401,7 @@ class OperationsTests(_DepsolveTestsBase):
+@@ -356,9 +362,9 @@ class DepsolveTests(_DepsolveTestsBase):
+ def resetTsInfo(self):
+ self.tsInfo = transactioninfo.TransactionData()
+
+-
+ def resolveCode(self):
+ solver = YumBase()
++ solver.save_ts = save_ts
+ solver.conf = FakeConf()
+ solver.arch.setup_arch('x86_64')
+ solver.tsInfo = solver._tsInfo = self.tsInfo
+@@ -399,7 +405,7 @@ class OperationsTests(_DepsolveTestsBase):
"""
def runOperation(self, args, installed=[], available=[],
@@ -34080,7 +37574,15 @@ index f91fbf1..30cf177 100644
"""Sets up and runs the depsolver. args[0] must be a valid yum command
("install", "update", ...). It might be followed by pkg names as on the
yum command line. The pkg objects in installed are added to self.rpmdb and
-@@ -428,9 +430,18 @@ class OperationsTests(_DepsolveTestsBase):
+@@ -407,6 +413,7 @@ class OperationsTests(_DepsolveTestsBase):
+ requirements from.
+ """
+ depsolver = YumBaseCli()
++ depsolver.save_ts = save_ts
+ depsolver.arch.setup_arch('x86_64')
+ self.rpmdb = depsolver.rpmdb = FakeRpmDb()
+ self.xsack = depsolver._pkgSack = packageSack.PackageSack()
+@@ -428,9 +435,18 @@ class OperationsTests(_DepsolveTestsBase):
po.repoid = po.repo.id
self.depsolver._pkgSack.addPackage(po)
@@ -34157,7 +37659,7 @@ index c3c7133..fc05aa6 100644
Requires: python-iniparse
Requires: pygpgme
diff --git a/yum/__init__.py b/yum/__init__.py
-index 2ea9f20..14eabc9 100644
+index 2ea9f20..234b599 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -21,6 +21,19 @@ The Yum RPM software updater.
@@ -34180,6 +37682,15 @@ index 2ea9f20..14eabc9 100644
import re
import types
import errno
+@@ -30,7 +43,7 @@ import fnmatch
+ import logging
+ import logging.config
+ import operator
+-
++import tempfile
+
+ import yum.i18n
+ _ = yum.i18n._
@@ -86,6 +99,7 @@ __version_info__ = tuple([ int(num) for num in __version__.split('.')])
# multiple YumBase() objects.
default_grabber.opts.user_agent += " yum/" + __version__
@@ -34188,7 +37699,15 @@ index 2ea9f20..14eabc9 100644
class _YumPreBaseConf:
"""This is the configuration interface for the YumBase configuration.
So if you want to change if plugins are on/off, or debuglevel/etc.
-@@ -294,6 +308,11 @@ class YumBase(depsolve.Depsolve):
+@@ -164,6 +178,7 @@ class YumBase(depsolve.Depsolve):
+ self._pkgSack = None
+ self._lockfile = None
+ self._tags = None
++ self._ts_save_file = None
+ self.skipped_packages = [] # packages skip by the skip-broken code
+ self.logger = logging.getLogger("yum.YumBase")
+ self.verbose_logger = logging.getLogger("yum.verbose.YumBase")
+@@ -294,6 +309,11 @@ class YumBase(depsolve.Depsolve):
startupconf.syslog_facility = syslog_facility
if syslog_device != None:
startupconf.syslog_device = syslog_device
@@ -34200,7 +37719,16 @@ index 2ea9f20..14eabc9 100644
if releasever != None:
startupconf.releasever = releasever
-@@ -442,7 +461,11 @@ class YumBase(depsolve.Depsolve):
+@@ -395,7 +415,7 @@ class YumBase(depsolve.Depsolve):
+ else:
+ thisrepo.repo_config_age = repo_age
+ thisrepo.repofile = repofn
+-
++
+ if thisrepo.id in self.repo_setopts:
+ for opt in self.repo_setopts[thisrepo.id].items:
+ setattr(thisrepo, opt, getattr(self.repo_setopts[thisrepo.id], opt))
+@@ -442,7 +462,11 @@ class YumBase(depsolve.Depsolve):
@return: YumRepository instance.
'''
repo = yumRepo.YumRepository(section)
@@ -34213,7 +37741,7 @@ index 2ea9f20..14eabc9 100644
# Ensure that the repo name is set
if not repo.name:
-@@ -752,7 +775,7 @@ class YumBase(depsolve.Depsolve):
+@@ -752,7 +776,7 @@ class YumBase(depsolve.Depsolve):
groupfile = repo.getGroups()
# open it up as a file object so iterparse can cope with our compressed file
if groupfile:
@@ -34222,7 +37750,7 @@ index 2ea9f20..14eabc9 100644
try:
self._comps.add(groupfile)
-@@ -790,7 +813,8 @@ class YumBase(depsolve.Depsolve):
+@@ -790,7 +814,8 @@ class YumBase(depsolve.Depsolve):
# fetch the sqlite tagdb
try:
tag_md = repo.retrieveMD('pkgtags')
@@ -34232,16 +37760,18 @@ index 2ea9f20..14eabc9 100644
# feed it into _tags.add()
self._tags.add(repo.id, tag_sqlite)
except (Errors.RepoError, Errors.PkgTagsError), e:
-@@ -976,8 +1000,6 @@ class YumBase(depsolve.Depsolve):
+@@ -976,8 +1001,8 @@ class YumBase(depsolve.Depsolve):
restring.append(_('Trying to remove "%s", which is protected') %
pkgname)
- self.rpmdb.dropCachedData()
-
++ if rescode == 2:
++ self.save_ts(auto=True)
self.verbose_logger.debug('Depsolve time: %0.3f' % (time.time() - ds_st))
return rescode, restring
-@@ -1311,7 +1333,10 @@ class YumBase(depsolve.Depsolve):
+@@ -1311,7 +1336,10 @@ class YumBase(depsolve.Depsolve):
self.run_with_package_names.add('yum-metadata-parser')
break
@@ -34253,7 +37783,7 @@ index 2ea9f20..14eabc9 100644
using_pkgs_pats = list(self.run_with_package_names)
using_pkgs = self.rpmdb.returnPackages(patterns=using_pkgs_pats)
rpmdbv = self.rpmdb.simpleVersion(main_only=True)[0]
-@@ -1330,10 +1355,14 @@ class YumBase(depsolve.Depsolve):
+@@ -1330,10 +1358,14 @@ class YumBase(depsolve.Depsolve):
cmdline = ' '.join(self.args)
elif hasattr(self, 'cmds') and self.cmds:
cmdline = ' '.join(self.cmds)
@@ -34268,26 +37798,35 @@ index 2ea9f20..14eabc9 100644
self.plugins.run('historybegin')
# Just before we update the transaction, update what we think the
-@@ -1341,7 +1370,7 @@ class YumBase(depsolve.Depsolve):
+@@ -1341,8 +1373,15 @@ class YumBase(depsolve.Depsolve):
# "something" happens and the rpmdb is different from what we think it
# will be we store what we thought, not what happened (so it'll be an
# invalid cache).
- self.rpmdb.transactionResultVersion(self.tsInfo.futureRpmDBVersion())
+ self.rpmdb.transactionResultVersion(frpmdbv)
++ # transaction has started - all bets are off on our saved ts file
++ try:
++ os.unlink(self._ts_save_file)
++ except (IOError, OSError), e:
++ pass
++ self._ts_save_file = None
++
errors = self.ts.run(cb.callback, '')
# ts.run() exit codes are, hmm, "creative": None means all ok, empty
-@@ -1382,7 +1411,8 @@ class YumBase(depsolve.Depsolve):
+ # list means some errors happened in the transaction and non-empty
+@@ -1382,7 +1421,9 @@ class YumBase(depsolve.Depsolve):
except (IOError, OSError), e:
self.logger.critical(_('Failed to remove transaction file %s') % fn)
- self.rpmdb.dropCachedData() # drop out the rpm cache so we don't step on bad hdr indexes
++
+ # drop out the rpm cache so we don't step on bad hdr indexes
+ self.rpmdb.dropCachedDataPostTransaction(list(self.tsInfo))
self.plugins.run('posttrans')
# sync up what just happened versus what is in the rpmdb
if not self.ts.isTsFlagSet(rpm.RPMTRANS_FLAG_TEST):
-@@ -1403,8 +1433,8 @@ class YumBase(depsolve.Depsolve):
+@@ -1403,8 +1444,8 @@ class YumBase(depsolve.Depsolve):
# that there is not also an install of this pkg in the tsInfo (reinstall)
# for any kind of install add from_repo to the yumdb, and the cmdline
# and the install reason
@@ -34298,7 +37837,7 @@ index 2ea9f20..14eabc9 100644
self.plugins.run('preverifytrans')
for txmbr in self.tsInfo:
if txmbr.output_state in TS_INSTALL_STATES:
-@@ -1482,13 +1512,15 @@ class YumBase(depsolve.Depsolve):
+@@ -1482,13 +1523,15 @@ class YumBase(depsolve.Depsolve):
self.verbose_logger.log(logginglevels.DEBUG_2, 'What is this? %s' % txmbr.po)
self.plugins.run('postverifytrans')
@@ -34315,7 +37854,7 @@ index 2ea9f20..14eabc9 100644
def costExcludePackages(self):
""" Create an excluder for repos. with higher cost. Eg.
-@@ -1836,6 +1868,10 @@ class YumBase(depsolve.Depsolve):
+@@ -1836,6 +1879,10 @@ class YumBase(depsolve.Depsolve):
self.plugins.run('postdownload', pkglist=pkglist, errors=errors)
@@ -34326,7 +37865,7 @@ index 2ea9f20..14eabc9 100644
return errors
def verifyHeader(self, fo, po, raiseError):
-@@ -1919,7 +1955,7 @@ class YumBase(depsolve.Depsolve):
+@@ -1919,7 +1966,7 @@ class YumBase(depsolve.Depsolve):
- 2 - Fatal GPG verification error, give up.
'''
if hasattr(po, 'pkgtype') and po.pkgtype == 'local':
@@ -34335,7 +37874,102 @@ index 2ea9f20..14eabc9 100644
hasgpgkey = 0
else:
repo = self.repos.getRepo(po.repoid)
-@@ -3100,6 +3136,9 @@ class YumBase(depsolve.Depsolve):
+@@ -2276,7 +2323,8 @@ class YumBase(depsolve.Depsolve):
+ return results
+
+ # pre 3.2.10 API used to always showdups, so that's the default atm.
+- def searchGenerator(self, fields, criteria, showdups=True, keys=False):
++ def searchGenerator(self, fields, criteria, showdups=True, keys=False,
++ searchtags=True, searchrpmdb=True):
+ """Generator method to lighten memory load for some searches.
+ This is the preferred search function to use. Setting keys to True
+ will use the search keys that matched in the sorting, and return
+@@ -2322,41 +2370,45 @@ class YumBase(depsolve.Depsolve):
+
+ if len(tmpvalues) > 0:
+ sorted_lists[count].append((po, tmpkeys, tmpvalues))
++
+ results2sorted_lists(tmpres, sorted_lists)
+
+- tmpres = self.rpmdb.searchPrimaryFieldsMultipleStrings(fields,
+- real_crit_lower,
+- lowered=True)
+- # close our rpmdb connection so we can ctrl-c, kthxbai
+- self.closeRpmDB()
++ if searchrpmdb:
++ tmpres = self.rpmdb.searchPrimaryFieldsMultipleStrings(fields,
++ real_crit_lower,
++ lowered=True)
++ # close our rpmdb connection so we can ctrl-c, kthxbai
++ self.closeRpmDB()
+
+- results2sorted_lists(tmpres, sorted_lists)
+- del tmpres
++ results2sorted_lists(tmpres, sorted_lists)
++ del tmpres
+
+- tmpres = self.searchPackageTags(real_crit_lower)
+-
+ results_by_pkg = {} # pkg=[list_of_tuples_of_values]
+-
+- for pkg in tmpres:
+- count = 0
+- matchkeys = []
+- tagresults = []
+- for (match, taglist) in tmpres[pkg]:
+- count += len(taglist)
+- matchkeys.append(rcl2c[match])
+- tagresults.extend(taglist)
+- if pkg not in results_by_pkg:
+- results_by_pkg[pkg] = []
+- results_by_pkg[pkg].append((matchkeys, tagresults))
+-
+- del tmpres
+-
+- # do the ones we already have
+- for item in sorted_lists.values():
+- for pkg, k, v in item:
+- if pkg not in results_by_pkg:
+- results_by_pkg[pkg] = []
+- results_by_pkg[pkg].append((k,v))
++ if searchtags:
++ tmpres = self.searchPackageTags(real_crit_lower)
++
++
++ for pkg in tmpres:
++ count = 0
++ matchkeys = []
++ tagresults = []
++ for (match, taglist) in tmpres[pkg]:
++ count += len(taglist)
++ matchkeys.append(rcl2c[match])
++ tagresults.extend(taglist)
++ if pkg not in results_by_pkg:
++ results_by_pkg[pkg] = []
++ results_by_pkg[pkg].append((matchkeys, tagresults))
++
++ del tmpres
++
++ if sorted_lists.values():
++ # do the ones we already have
++ for item in sorted_lists.values():
++ for pkg, k, v in item:
++ if pkg not in results_by_pkg:
++ results_by_pkg[pkg] = []
++ results_by_pkg[pkg].append((k,v))
+
+ # take our existing dict-by-pkg and make the dict-by-count for
+ # this bizarro sorted_lists format
+@@ -2887,7 +2939,7 @@ class YumBase(depsolve.Depsolve):
+ if len(dep_split) == 3:
+ depname, flagsymbol, depver = dep_split
+ if not flagsymbol in SYMBOLFLAGS:
+- raise Errors.YumBaseError, _('Invalid version flag')
++ raise Errors.YumBaseError, _('Invalid version flag from: %s') % str(depstring)
+ depflags = SYMBOLFLAGS[flagsymbol]
+
+ return self.rpmdb.getProvides(depname, depflags, depver).keys()
+@@ -3100,6 +3152,9 @@ class YumBase(depsolve.Depsolve):
def _find_obsoletees(self, po):
""" Return the pkgs. that are obsoleted by the po we pass in. """
@@ -34345,7 +37979,7 @@ index 2ea9f20..14eabc9 100644
if not isinstance(po, YumLocalPackage):
for (obstup, inst_tup) in self.up.getObsoletersTuples(name=po.name):
if po.pkgtup == obstup:
-@@ -3160,7 +3199,7 @@ class YumBase(depsolve.Depsolve):
+@@ -3160,7 +3215,7 @@ class YumBase(depsolve.Depsolve):
try:
mypkgs = self.returnPackagesByDep(arg)
except yum.Errors.YumBaseError, e:
@@ -34354,7 +37988,7 @@ index 2ea9f20..14eabc9 100644
else:
# install MTA* == fail, because provides don't do globs
# install /usr/kerberos/bin/* == success (and we want
-@@ -3490,7 +3529,7 @@ class YumBase(depsolve.Depsolve):
+@@ -3490,7 +3545,7 @@ class YumBase(depsolve.Depsolve):
availpkgs.extend(m)
if not availpkgs and not instpkgs:
@@ -34363,7 +37997,7 @@ index 2ea9f20..14eabc9 100644
else: # we have kwargs, sort them out.
nevra_dict = self._nevra_kwarg_parse(kwargs)
-@@ -3576,6 +3615,9 @@ class YumBase(depsolve.Depsolve):
+@@ -3576,6 +3631,9 @@ class YumBase(depsolve.Depsolve):
self.tsInfo.addObsoleted(obsoletee, po)
tx_return.append(txmbr)
else:
@@ -34373,7 +38007,7 @@ index 2ea9f20..14eabc9 100644
txmbr = self._add_up_txmbr(requiringPo, po, installed_pkg)
tx_return.append(txmbr)
-@@ -3599,6 +3641,9 @@ class YumBase(depsolve.Depsolve):
+@@ -3599,6 +3657,9 @@ class YumBase(depsolve.Depsolve):
else:
updated_pkg = self.getInstalledPackageObject(updated)
@@ -34383,7 +38017,7 @@ index 2ea9f20..14eabc9 100644
txmbr = self._add_up_txmbr(requiringPo,
available_pkg, updated_pkg)
tx_return.append(txmbr)
-@@ -3669,7 +3714,8 @@ class YumBase(depsolve.Depsolve):
+@@ -3669,7 +3730,8 @@ class YumBase(depsolve.Depsolve):
self.logger.critical(_('%s') % e)
if not depmatches:
@@ -34393,7 +38027,7 @@ index 2ea9f20..14eabc9 100644
else:
pkgs.extend(depmatches)
-@@ -3690,6 +3736,14 @@ class YumBase(depsolve.Depsolve):
+@@ -3690,6 +3752,14 @@ class YumBase(depsolve.Depsolve):
if self.conf.protected_packages and po.pkgtup == kern_pkgtup:
self.logger.warning(_("Skipping the running kernel: %s") % po)
continue
@@ -34408,7 +38042,7 @@ index 2ea9f20..14eabc9 100644
txmbr = self.tsInfo.addErase(po)
tx_return.append(txmbr)
-@@ -3952,7 +4006,7 @@ class YumBase(depsolve.Depsolve):
+@@ -3952,7 +4022,7 @@ class YumBase(depsolve.Depsolve):
EOL """
if not po and not kwargs:
@@ -34417,7 +38051,7 @@ index 2ea9f20..14eabc9 100644
doing_group_pkgs = False
if po:
-@@ -3975,7 +4029,7 @@ class YumBase(depsolve.Depsolve):
+@@ -3975,7 +4045,7 @@ class YumBase(depsolve.Depsolve):
try:
apkgs = self.returnPackagesByDep(arg)
except yum.Errors.YumBaseError, e:
@@ -34426,7 +38060,7 @@ index 2ea9f20..14eabc9 100644
else:
nevra_dict = self._nevra_kwarg_parse(kwargs)
-@@ -4196,23 +4250,20 @@ class YumBase(depsolve.Depsolve):
+@@ -4196,23 +4266,20 @@ class YumBase(depsolve.Depsolve):
key_installed = False
self.logger.info(_('Retrieving GPG key from %s') % keyurl)
@@ -34456,7 +38090,7 @@ index 2ea9f20..14eabc9 100644
except urlgrabber.grabber.URLGrabError, e:
raise Errors.YumBaseError(_('GPG key retrieval failed: ') +
-@@ -4276,12 +4327,11 @@ class YumBase(depsolve.Depsolve):
+@@ -4276,12 +4343,11 @@ class YumBase(depsolve.Depsolve):
keyurls = repo.gpgkey
key_installed = False
@@ -34470,7 +38104,7 @@ index 2ea9f20..14eabc9 100644
# Check if key is already installed
if misc.keyInstalled(ts, info['keyid'], info['timestamp']) >= 0:
self.logger.info(_('GPG key at %s (0x%s) is already installed') % (
-@@ -4306,6 +4356,7 @@ class YumBase(depsolve.Depsolve):
+@@ -4306,6 +4372,7 @@ class YumBase(depsolve.Depsolve):
raise Errors.YumBaseError, _("Not installing key")
# Import the key
@@ -34478,6 +38112,229 @@ index 2ea9f20..14eabc9 100644
result = ts.pgpImportPubkey(misc.procgpgkey(info['raw_key']))
if result != 0:
raise Errors.YumBaseError, \
+@@ -4626,6 +4693,7 @@ class YumBase(depsolve.Depsolve):
+ newrepo = yumRepo.YumRepository(repoid)
+ newrepo.name = repoid
+ newrepo.basecachedir = self.conf.cachedir
++
+ var_convert = kwargs.get('variable_convert', True)
+
+ if baseurls:
+@@ -4722,3 +4790,214 @@ class YumBase(depsolve.Depsolve):
+ self.plugins.run('verify_package', verify_package=verify_package)
+ return verify_package
+
++ def save_ts(self, filename=None, auto=False):
++ """saves out a transaction to .yumtx file to be loaded later"""
++
++ if self.tsInfo._unresolvedMembers:
++ if auto:
++ self.logger.critical(_("Dependencies not solved. Will not save unresolved transaction."))
++ return
++ raise Errors.YumBaseError(_("Dependencies not solved. Will not save unresolved transaction."))
++
++ if not filename:
++ prefix = 'yum_save_tx-%s' % time.strftime('%Y-%m-%d-%H-%M')
++ fd,filename = tempfile.mkstemp(suffix='.yumtx', prefix=prefix)
++ f = os.fdopen(fd, 'w')
++ else:
++ f = open(filename, 'w')
++
++ self._ts_save_file = filename
++
++ msg = "%s\n" % self.rpmdb.simpleVersion(main_only=True)[0]
++ msg += "%s\n" % self.ts.getTsFlags()
++ msg += "%s\n" % len(self.repos.listEnabled())
++ for r in self.repos.listEnabled():
++ msg += "%s:%s:%s\n" % (r.id, len(r.sack), r.repoXML.revision)
++ msg += "%s\n" % len(self.tsInfo.getMembers())
++ for txmbr in self.tsInfo.getMembers():
++ msg += txmbr._dump()
++ try:
++ f.write(msg)
++ f.close()
++ except (IOError, OSError), e:
++ self._ts_save_file = None
++ if auto:
++ self.logger.critical(_("Could not save transaction file %s: %s") % (filename, str(e)))
++ else:
++ raise Errors.YumBaseError(_("Could not save transaction file %s: %s") % (filename, str(e)))
++
++
++ def load_ts(self, filename, ignorerpm=None, ignoremissing=None):
++ """loads a transaction from a .yumtx file"""
++ # check rpmversion - if not match throw a fit
++ # check repoversions (and repos)- if not match throw a fit
++ # load each txmbr - if pkgs being updated don't exist, bail w/error
++ # setup any ts flags
++ # setup cmds for history/yumdb to know about
++ # return txmbrs loaded
++ try:
++ data = open(filename, 'r').readlines()
++ except (IOError, OSError), e:
++ raise Errors.YumBaseError(_("Could not access/read saved transaction %s : %s") % (filename, str(e)))
++
++
++ if ignorerpm is None:
++ ignorerpm = self.conf.loadts_ignorerpm
++ if ignoremissing is None:
++ ignoremissing = self.conf.loadts_ignoremissing
++
++ # data format
++ # 0 == rpmdb version
++ # 1 == tsflags
++ # 2 == numrepos
++ # 3:numrepos = repos
++ # 3+numrepos = num pkgs
++ # 3+numrepos+1 -> EOF= txmembers
++
++ # rpm db ver
++ rpmv = data[0].strip()
++ if rpmv != str(self.rpmdb.simpleVersion(main_only=True)[0]):
++ msg = _("rpmdb ver mismatched saved transaction version, ")
++ if ignorerpm:
++ msg += _(" ignoring, as requested.")
++ self.logger.critical(_(msg))
++ else:
++ msg += _(" aborting.")
++ raise Errors.YumBaseError(msg)
++
++ # tsflags
++ # FIXME - probably should let other tsflags play nicely together
++ # so someone can add --nogpgcheck or --nodocs or --nodiskspace or some nonsense and have it work
++ try:
++ tsflags = int(data[1].strip())
++ except (ValueError, IndexError), e:
++ msg = _("cannot find tsflags or tsflags not integer.")
++ raise Errors.YumBaseError(msg)
++
++ self.ts.setFlags(tsflags)
++
++ # repos
++ numrepos = int(data[2].strip())
++ repos = []
++ rindex=3+numrepos
++ for r in data[3:rindex]:
++ repos.append(r.strip().split(':'))
++
++ # pkgs/txmbrs
++ numpkgs = int(data[rindex].strip())
++
++ pkgstart = rindex + 1
++
++ pkgcount = 0
++ pkgprob = False
++ curpkg = None
++ for l in data[pkgstart:]:
++ l = l.rstrip()
++ # our main txmbrs
++ if l.startswith('mbr:'):
++ if curpkg:
++ self.tsInfo.add(curpkg)
++ if curpkg in self.tsInfo._unresolvedMembers and not missingany:
++ self.tsInfo._unresolvedMembers.remove(curpkg)
++
++ missingany = False
++ pkgtup, current_state = l.split(':')[1].strip().split(' ')
++ current_state = int(current_state.strip())
++ pkgtup = tuple(pkgtup.strip().split(','))
++ try:
++ if current_state == TS_INSTALL:
++ po = self.getInstalledPackageObject(pkgtup)
++ elif current_state == TS_AVAILABLE:
++ po = self.getPackageObject(pkgtup)
++ else:
++ msg = _("Found txmbr in unknown current state: %s" % current_state)
++ raise Errors.YumBaseError(msg)
++ except Errors.YumBaseError, e:
++ missingany = True
++ msg = _("Could not find txmbr: %s in state %s" % (str(pkgtup), current_state))
++ if not ignoremissing:
++ raise Errors.YumBaseError(msg)
++ else:
++ self.logger.critical(msg)
++ else:
++ pkgcount += 1
++ curpkg = transactioninfo.TransactionMember(po)
++ curpkg.current_state = current_state
++ continue
++
++ l = l.strip()
++ k,v = l.split(':', 1)
++ v = v.lstrip()
++ # attributes of our txmbrs
++ if k in ('isDep', 'reinstall'):
++ v = v.strip().lower()
++ if v == 'false':
++ setattr(curpkg, k, False)
++ elif v == 'true':
++ setattr(curpkg, k, True)
++ elif k in ('output_state'):
++ setattr(curpkg, k, int(v.strip()))
++ elif k in ('groups'):
++ curpkg.groups.extend(v.split(' '))
++ # the relationships to our main txmbrs
++ elif k in ('updated_by', 'obsoleted_by', 'downgraded_by',
++ 'downgrades', 'updates', 'obsoletes', 'depends_on'):
++ for pkgspec in v.strip().split(' '):
++ pkgtup, origin = pkgspec.split('@')
++ try:
++ if origin == 'i':
++ po = self.getInstalledPackageObject(tuple(pkgtup.split(',')))
++ else:
++ po = self.getPackageObject(tuple(pkgtup.split(',')))
++ except Errors.YumBaseError, e:
++ msg = _("Could not find txmbr: %s from origin: %s" % (str(pkgtup), origin))
++ self.logger.critical(msg)
++ missingany = True
++ else:
++ curlist = getattr(curpkg, k)
++ curlist.append(po)
++ setattr(curpkg, k, curlist)
++ elif k in ('relatedto'):
++ for item in v.split(' '):
++ pkgspec, rel = item.split(':')
++ pkgtup,origin = pkgspec.split('@')
++ try:
++ if origin == 'i':
++ po = self.getInstalledPackageObject(tuple(pkgtup.split(',')))
++ else:
++ po = self.getPackageObject(tuple(pkgtup.split(',')))
++ except Errors.YumBaseError, e:
++ msg = _("Could not find txmbr: %s from origin: %s" % (str(pkgtup), origin))
++ self.logger.critical(msg)
++ missingany = True
++ else:
++ curlist = getattr(curpkg, k)
++ curlist.append((po,rel))
++ setattr(curpkg, k, curlist)
++
++ # the plain strings
++ else: #ts_state, reason
++ setattr(curpkg, k, v.strip())
++
++ if missingany:
++ pkgprob = True
++
++ # make sure we get the last one in!
++ self.tsInfo.add(curpkg)
++ if curpkg in self.tsInfo._unresolvedMembers:
++ self.tsInfo._unresolvedMembers.remove(curpkg)
++
++
++ if numpkgs != pkgcount:
++ pkgprob = True
++
++ if pkgprob:
++ msg = _("Transaction members, relations are missing or ts has been modified,")
++ if ignoremissing:
++ msg += _(" ignoring, as requested. You must redepsolve!")
++ self.logger.critical(msg)
++ else:
++ msg += _(" aborting.")
++ raise Errors.YumBaseError(msg)
++
++ return self.tsInfo.getMembers()
diff --git a/yum/comps.py b/yum/comps.py
index 5ccfba2..408bb1c 100755
--- a/yum/comps.py
@@ -34488,7 +38345,7 @@ index 5ccfba2..408bb1c 100755
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
diff --git a/yum/config.py b/yum/config.py
-index 650d7b9..2118792 100644
+index 650d7b9..2f133ef 100644
--- a/yum/config.py
+++ b/yum/config.py
@@ -645,6 +645,8 @@ class YumConf(StartupConf):
@@ -34508,7 +38365,17 @@ index 650d7b9..2118792 100644
obsoletes = BoolOption(True)
showdupesfromrepos = BoolOption(False)
enabled = BoolOption(True)
-@@ -794,6 +797,8 @@ class RepoConf(BaseConfig):
+@@ -737,6 +740,9 @@ class YumConf(StartupConf):
+ parse_default=True)
+ exit_on_lock = BoolOption(False)
+
++ loadts_ignoremissing = BoolOption(False)
++ loadts_ignorerpm = BoolOption(False)
++
+ _reposlist = []
+
+ def dump(self):
+@@ -794,6 +800,8 @@ class RepoConf(BaseConfig):
proxy_password = Inherit(YumConf.proxy_password)
retries = Inherit(YumConf.retries)
failovermethod = Inherit(YumConf.failovermethod)
@@ -34527,7 +38394,7 @@ index 06d5a6b..5c728d4 100644
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
diff --git a/yum/depsolve.py b/yum/depsolve.py
-index e9b3fa7..cba0fc5 100644
+index e9b3fa7..3cc7a7f 100644
--- a/yum/depsolve.py
+++ b/yum/depsolve.py
@@ -38,7 +38,7 @@ import Errors
@@ -34589,7 +38456,15 @@ index e9b3fa7..cba0fc5 100644
if txmbrs[0].output_state == TS_OBSOLETED:
self.verbose_logger.log(logginglevels.DEBUG_2, _('TSINFO: Obsoleting %s with %s to resolve dep.'),
requiringPo, txmbrs[0].obsoleted_by[0])
-@@ -795,8 +822,11 @@ class Depsolve(object):
+@@ -778,6 +805,7 @@ class Depsolve(object):
+
+ if not len(self.tsInfo):
+ return (0, [_('Success - empty transaction')])
++
+ return (2, [_('Success - deps resolved')])
+
+ def _resolveRequires(self, errors):
+@@ -795,8 +823,11 @@ class Depsolve(object):
dscb_ts_state = 'd'
if dscb_ts_state == 'u' and txmbr.reinstall:
dscb_ts_state = 'r'
@@ -34603,7 +38478,7 @@ index e9b3fa7..cba0fc5 100644
self.dsCallback.pkgAdded(txmbr.pkgtup, dscb_ts_state)
self.verbose_logger.log(logginglevels.DEBUG_2,
_("Checking deps for %s") %(txmbr,))
-@@ -1092,6 +1122,10 @@ class Depsolve(object):
+@@ -1092,6 +1123,10 @@ class Depsolve(object):
continue
ret.append( (po, self._prco_req_nfv2req(r, f, v),
conflicting_po) )
@@ -34614,7 +38489,7 @@ index e9b3fa7..cba0fc5 100644
self.rpmdb.transactionCacheConflictPackages(cpkgs)
return ret
-@@ -1195,6 +1229,10 @@ class Depsolve(object):
+@@ -1195,6 +1230,10 @@ class Depsolve(object):
# We get here from bestPackagesFromList(), give a giant
# bump to stuff that is already installed.
pkgresults[pkg] += 1000
@@ -35250,7 +39125,7 @@ index d822394..153edbb 100644
def getProvides(self, name, flags=None, version=(None, None, None)):
diff --git a/yum/packages.py b/yum/packages.py
-index b5a7d40..38f305c 100644
+index b5a7d40..093d3c8 100644
--- a/yum/packages.py
+++ b/yum/packages.py
@@ -290,8 +290,9 @@ class PackageObject(object):
@@ -35289,6 +39164,15 @@ index b5a7d40..38f305c 100644
return hdr
+@@ -1571,7 +1575,7 @@ class _RPMVerifyPackageFile(YUMVerifyPackageFile):
+ if vflags & _RPMVERIFY_DIGEST:
+ self.digest = (csum_type, filetuple[12])
+
+- if self.ftype == 'symlnk' and vflags & _RPMVERIFY_LINKTO:
++ if self.ftype == 'symlink' and vflags & _RPMVERIFY_LINKTO:
+ self.readlink = fi.FLink() # fi.foo is magic, don't think about it
+ elif vflags & _RPMVERIFY_LINKTO:
+ self.readlink = ''
diff --git a/yum/parser.py b/yum/parser.py
index dd45d6d..e46d611 100644
--- a/yum/parser.py
@@ -35366,7 +39250,7 @@ index afc7947..31b1080 100755
if cpeid:
tag = """ <distro cpeid="%s">%s</distro>\n""" % (
diff --git a/yum/rpmsack.py b/yum/rpmsack.py
-index ae73c32..6d6bf1c 100644
+index ae73c32..346decc 100644
--- a/yum/rpmsack.py
+++ b/yum/rpmsack.py
@@ -195,13 +195,20 @@ class RPMDBPackageSack(PackageSackBase):
@@ -35402,7 +39286,7 @@ index ae73c32..6d6bf1c 100644
self._idx2pkg = {}
self._name2pkg = {}
self._pkgnames_loaded = set()
-@@ -236,6 +247,73 @@ class RPMDBPackageSack(PackageSackBase):
+@@ -236,6 +247,80 @@ class RPMDBPackageSack(PackageSackBase):
self.transactionReset() # Should do nothing, but meh...
self._cached_rpmdb_mtime = None
@@ -35441,18 +39325,24 @@ index ae73c32..6d6bf1c 100644
+ rpmdbfname = self.root + "/var/lib/rpm/Packages"
+ self._cached_rpmdb_mtime = os.path.getmtime(rpmdbfname)
+
++ def _safe_del(x, y):
++ """ Make sure we never traceback here, because it screws our yumdb
++ if we do. """
++ # Maybe use x.pop(y, None) ?
++ if y in x:
++ del x[y]
++
+ precache = []
+ for txmbr in txmbrs:
+ self._pkgnames_loaded.discard(txmbr.name)
-+ if txmbr.name in self._name2pkg:
-+ del self._name2pkg[txmbr.name]
++ _safe_del(self._name2pkg, txmbr.name)
+
+ if txmbr.output_state in constants.TS_INSTALL_STATES:
+ self._pkgname_fails.discard(txmbr.name)
+ precache.append(txmbr)
+ if txmbr.output_state in constants.TS_REMOVE_STATES:
-+ del self._idx2pkg[txmbr.po.idx]
-+ del self._tup2pkg[txmbr.pkgtup]
++ _safe_del(self._idx2pkg, txmbr.po.idx)
++ _safe_del(self._tup2pkg, txmbr.pkgtup)
+
+ for txmbr in precache:
+ (n, a, e, v, r) = txmbr.pkgtup
@@ -35460,6 +39350,7 @@ index ae73c32..6d6bf1c 100644
+ if not pkg:
+ # Wibble?
+ self._deal_with_bad_rpmdbcache("dCDPT(pkg checksums)")
++ continue
+
+ pkg = pkg[0]
+ csum = txmbr.po.returnIdSum()
@@ -35476,7 +39367,7 @@ index ae73c32..6d6bf1c 100644
def setCacheDir(self, cachedir):
""" Sets the internal cachedir value for the rpmdb, to be the
"rpmdb-indexes" directory in the persisent yum storage. """
-@@ -244,6 +322,10 @@ class RPMDBPackageSack(PackageSackBase):
+@@ -244,6 +329,10 @@ class RPMDBPackageSack(PackageSackBase):
else:
self._cachedir = '/' + cachedir
@@ -35487,7 +39378,15 @@ index ae73c32..6d6bf1c 100644
def readOnlyTS(self):
if not self.ts:
self.ts = initReadOnlyTransaction(root=self.root)
-@@ -511,12 +593,34 @@ class RPMDBPackageSack(PackageSackBase):
+@@ -293,6 +382,7 @@ class RPMDBPackageSack(PackageSackBase):
+ ts = self.readOnlyTS()
+ result = {}
+
++ name = os.path.normpath(name)
+ mi = ts.dbMatch('basenames', name)
+ for hdr in mi:
+ if hdr['name'] == 'gpg-pubkey':
+@@ -511,12 +601,34 @@ class RPMDBPackageSack(PackageSackBase):
return pkgobjlist
def _uncached_returnConflictPackages(self):
@@ -35527,7 +39426,7 @@ index ae73c32..6d6bf1c 100644
return self._cached_conflicts_data
def _write_conflicts_new(self, pkgs, rpmdbv):
-@@ -543,7 +647,7 @@ class RPMDBPackageSack(PackageSackBase):
+@@ -543,7 +655,7 @@ class RPMDBPackageSack(PackageSackBase):
misc.unlink_f(self._cachedir + "/version")
misc.unlink_f(self._cachedir + '/conflicts')
misc.unlink_f(self._cachedir + '/file-requires')
@@ -35536,7 +39435,7 @@ index ae73c32..6d6bf1c 100644
# We have a couple of options here, we can:
#
# . Ignore it and continue - least invasive, least likely to get any
-@@ -627,8 +731,8 @@ class RPMDBPackageSack(PackageSackBase):
+@@ -627,8 +739,8 @@ class RPMDBPackageSack(PackageSackBase):
data = self._trans_cache_store['file-requires']
self._write_file_requires(rpmdbv, data)
@@ -35547,7 +39446,7 @@ index ae73c32..6d6bf1c 100644
self._write_package_checksums(rpmdbv, data)
self._trans_cache_store = {}
-@@ -803,22 +907,23 @@ class RPMDBPackageSack(PackageSackBase):
+@@ -803,22 +915,23 @@ class RPMDBPackageSack(PackageSackBase):
os.rename(self._cachedir + '/file-requires.tmp',
self._cachedir + '/file-requires')
@@ -35575,7 +39474,7 @@ index ae73c32..6d6bf1c 100644
frpmdbv = fo.readline()
if not frpmdbv or rpmdbv != frpmdbv[:-1]:
return
-@@ -837,7 +942,10 @@ class RPMDBPackageSack(PackageSackBase):
+@@ -837,7 +950,10 @@ class RPMDBPackageSack(PackageSackBase):
T = _read_str(fo)
D = _read_str(fo)
@@ -35587,7 +39486,7 @@ index ae73c32..6d6bf1c 100644
if fo.readline() != '': # Should be EOF
return
-@@ -845,7 +953,13 @@ class RPMDBPackageSack(PackageSackBase):
+@@ -845,7 +961,13 @@ class RPMDBPackageSack(PackageSackBase):
self._deal_with_bad_rpmdbcache("pkg checksums")
return
@@ -35601,7 +39500,7 @@ index ae73c32..6d6bf1c 100644
(n, a, e, v, r) = pkgtup
pkg = self.searchNevra(n, e, v, r, a)
if not pkg:
-@@ -863,24 +977,26 @@ class RPMDBPackageSack(PackageSackBase):
+@@ -863,24 +985,26 @@ class RPMDBPackageSack(PackageSackBase):
if not self.__cache_rpmdb__:
return
@@ -35632,7 +39531,7 @@ index ae73c32..6d6bf1c 100644
def _get_cached_simpleVersion_main(self):
""" Return the cached string of the main rpmdbv. """
-@@ -1046,7 +1162,6 @@ class RPMDBPackageSack(PackageSackBase):
+@@ -1046,7 +1170,6 @@ class RPMDBPackageSack(PackageSackBase):
if self.auto_close:
self.ts.close()
@@ -35640,7 +39539,7 @@ index ae73c32..6d6bf1c 100644
def _header_from_index(self, idx):
"""returns a package header having been given an index"""
warnings.warn('_header_from_index() will go away in a future version of Yum.\n',
-@@ -1422,9 +1537,10 @@ class RPMDBAdditionalData(object):
+@@ -1422,9 +1545,10 @@ class RPMDBAdditionalData(object):
# dirs have files per piece of info we're keeping
# repoid, install reason, status, blah, (group installed for?), notes?
@@ -35652,7 +39551,7 @@ index ae73c32..6d6bf1c 100644
self.conf.writable = False
self._packages = {} # pkgid = dir
-@@ -1566,7 +1682,6 @@ class RPMDBAdditionalDataPackage(object):
+@@ -1566,7 +1690,6 @@ class RPMDBAdditionalDataPackage(object):
self._yumdb_cache['attr'][value][2].add(fn)
self._yumdb_cache[fn] = value
@@ -35660,7 +39559,7 @@ index ae73c32..6d6bf1c 100644
return True
-@@ -1587,6 +1702,11 @@ class RPMDBAdditionalDataPackage(object):
+@@ -1587,6 +1710,11 @@ class RPMDBAdditionalDataPackage(object):
if attr.endswith('.tmp'):
raise AttributeError, "Cannot set attribute %s on %s" % (attr, self)
@@ -35673,10 +39572,26 @@ index ae73c32..6d6bf1c 100644
if self._link_yumdb_cache(fn, value):
return
diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
-index 820f003..fb8333f 100644
+index 820f003..ed681fb 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
-@@ -1263,7 +1263,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
+@@ -845,6 +845,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
+ @catchSqliteException
+ def _search_primary_files(self, name):
+ querytype = 'glob'
++ name = os.path.normpath(name)
+ if not misc.re_glob(name):
+ querytype = '='
+ results = []
+@@ -898,6 +899,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
+ glob = True
+ file_glob = True
+ querytype = 'glob'
++ name = os.path.normpath(name)
+ dirname = os.path.dirname(name)
+ filename = os.path.basename(name)
+ if strict or not misc.re_glob(name):
+@@ -1263,7 +1265,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
return self._search("requires", name, flags, version)
@catchSqliteException
@@ -35685,7 +39600,7 @@ index 820f003..fb8333f 100644
"""return a list of packages matching any of the given names. This is
only a match on package name, nothing else"""
-@@ -1283,6 +1283,8 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
+@@ -1283,6 +1285,8 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
else:
names.append(pkgname)
@@ -35694,7 +39609,7 @@ index 820f003..fb8333f 100644
if not names:
return returnList
-@@ -1290,7 +1292,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
+@@ -1290,7 +1294,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
if len(names) > max_entries:
# Unique is done at user_names time, above.
for names in seq_max_split(names, max_entries):
@@ -35703,7 +39618,7 @@ index 820f003..fb8333f 100644
return returnList
pat_sqls = []
-@@ -1304,10 +1306,19 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
+@@ -1304,10 +1308,19 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
cur = cache.cursor()
executeSQL(cur, qsql, names)
@@ -35726,7 +39641,7 @@ index 820f003..fb8333f 100644
return returnList
diff --git a/yum/transactioninfo.py b/yum/transactioninfo.py
-index 31d3569..4c59301 100644
+index 31d3569..b0c7ddd 100644
--- a/yum/transactioninfo.py
+++ b/yum/transactioninfo.py
@@ -1,3 +1,4 @@
@@ -35795,7 +39710,7 @@ index 31d3569..4c59301 100644
txmbr.relatedto.append((obsoleting_po, 'obsoletedby'))
txmbr.obsoleted_by.append(obsoleting_po)
self.add(txmbr)
-@@ -645,12 +650,26 @@ class TransactionData:
+@@ -645,12 +650,25 @@ class TransactionData:
csum = None
if 'checksum_type' in ydbi and 'checksum_data' in ydbi:
csum = (ydbi.checksum_type, ydbi.checksum_data)
@@ -35819,14 +39734,84 @@ index 31d3569..4c59301 100644
+ self.addObsoleted(pkg, txmbr.po)
+ txmbr.output_state = TS_OBSOLETING
+ txmbr.po.state = TS_OBSOLETING
-+
class ConditionalTransactionData(TransactionData):
"""A transaction data implementing conditional package addition"""
+@@ -722,7 +740,7 @@ class TransactionMember:
+ self.output_state = None # what state to list if printing it
+ self.isDep = 0
+ self.reason = 'user' # reason for it to be in the transaction set
+- self.process = None #
++ self.process = None # I think this is used nowhere by nothing - skv 2010/11/03
+ self.relatedto = [] # ([relatedpkg, relationship)]
+ self.depends_on = []
+ self.obsoletes = []
+@@ -769,14 +787,42 @@ class TransactionMember:
+
+ def __repr__(self):
+ return "<%s : %s (%s)>" % (self.__class__.__name__, str(self),hex(id(self)))
+-
+- # This is the tricky part - how do we nicely setup all this data w/o going insane
+- # we could make the txmember object be created from a YumPackage base object
+- # we still may need to pass in 'groups', 'ts_state', 'output_state', 'reason', 'current_state'
+- # and any related packages. A world of fun that will be, you betcha
+
+-
+- # definitions
+- # current and output states are defined in constants
+- # relationships are defined in constants
+- # ts states are: u, i, e
++ def _dump(self):
++ msg = "mbr: %s,%s,%s,%s,%s %s\n" % (self.name, self.arch, self.epoch,
++ self.version, self.release, self.current_state)
++ msg += " repo: %s\n" % self.po.repo.id
++ msg += " ts_state: %s\n" % self.ts_state
++ msg += " output_state: %s\n" % self.output_state
++ msg += " isDep: %s\n" % bool(self.isDep)
++ msg += " reason: %s\n" % self.reason
++ #msg += " process: %s\n" % self.process
++ msg += " reinstall: %s\n" % bool(self.reinstall)
++
++ if self.relatedto:
++ msg += " relatedto:"
++ for (po, rel) in self.relatedto:
++ pkgorigin = 'a'
++ if isinstance(po, YumInstalledPackage):
++ pkgorigin = 'i'
++ msg += " %s,%s,%s,%s,%s@%s:%s" % (po.name, po.arch, po.epoch,
++ po.version, po.release, pkgorigin, rel)
++ msg += "\n"
++
++ for lst in ['depends_on', 'obsoletes', 'obsoleted_by', 'downgrades',
++ 'downgraded_by', 'updates', 'updated_by']:
++ thislist = getattr(self, lst)
++ if thislist:
++ msg += " %s:" % lst
++ for po in thislist:
++ pkgorigin = 'a'
++ if isinstance(po, YumInstalledPackage):
++ pkgorigin = 'i'
++ msg += " %s,%s,%s,%s,%s@%s" % (po.name, po.arch, po.epoch,
++ po.version, po.release, pkgorigin)
++ msg += "\n"
++
++ if self.groups:
++ msg += " groups: %s\n" % ' '.join(self.groups)
++
++ return msg
diff --git a/yum/update_md.py b/yum/update_md.py
-index 9e492ba..74db5ad 100644
+index 9e492ba..56b5307 100644
--- a/yum/update_md.py
+++ b/yum/update_md.py
+@@ -26,7 +26,7 @@ import sys
+ from yum.i18n import utf8_text_wrap, to_utf8
+ from yum.yumRepo import YumRepository
+ from yum.packages import FakeRepository
+-from yum.misc import to_xml, decompress
++from yum.misc import to_xml, decompress, repo_gen_decompress
+ from yum.misc import cElementTree_iterparse as iterparse
+ import Errors
+
@@ -56,6 +56,10 @@ class UpdateNotice(object):
'issued' : '',
'updated' : '',
@@ -35843,7 +39828,7 @@ index 9e492ba..74db5ad 100644
self._md[item] = val
- def __str__(self):
-+ def text(self, skip_data=('files',)):
++ def text(self, skip_data=('files', 'summary', 'solution')):
head = """
===============================================================================
%(title)s
@@ -35974,6 +39959,15 @@ index 9e492ba..74db5ad 100644
if self._md['references']:
msg += """ <references>\n"""
for ref in self._md['references']:
+@@ -384,7 +438,7 @@ class UpdateMetadata(object):
+ md = obj.retrieveMD(mdtype)
+ if not md:
+ raise UpdateNoticeException()
+- unfile = decompress(md)
++ unfile = repo_gen_decompress(md, 'updateinfo.xml')
+ infile = open(unfile, 'rt')
+ elif isinstance(obj, FakeRepository):
+ raise Errors.RepoMDError, "No updateinfo for local pkg"
diff --git a/yum/yumRepo.py b/yum/yumRepo.py
index dd595f0..b0e23c6 100644
--- a/yum/yumRepo.py
@@ -36034,7 +40028,7 @@ index dd595f0..b0e23c6 100644
continue
diff --git a/yumcommands.py b/yumcommands.py
-index a7f5d9e..3c009f8 100644
+index a7f5d9e..ecce347 100644
--- a/yumcommands.py
+++ b/yumcommands.py
@@ -122,10 +122,30 @@ def checkShellArg(base, basecmd, extcmds):
@@ -36231,8 +40225,40 @@ index a7f5d9e..3c009f8 100644
rc = 0
if base._rpmdb_warn_checks(out=_out, warn=False, chkcmd=chkcmd,
+@@ -1394,3 +1440,31 @@ class CheckRpmdbCommand(YumCommand):
+ def needTs(self, base, basecmd, extcmds):
+ return False
+
++class LoadTransactionCommand(YumCommand):
++ def getNames(self):
++ return ['load-transaction', 'load-ts']
++
++ def getUsage(self):
++ return "filename"
++
++ def getSummary(self):
++ return _("load a saved transaction from filename")
++
++ def doCommand(self, base, basecmd, extcmds):
++ if not extcmds:
++ base.logger.critical(_("No saved transaction file specified."))
++ raise cli.CliError
++
++ load_file = extcmds[0]
++ self.doneCommand(base, _("loading transaction from %s") % load_file)
++
++ try:
++ base.load_ts(load_file)
++ except yum.Errors.YumBaseError, e:
++ return 1, [to_unicode(e)]
++ return 2, [_('Transaction loaded from %s with %s members') % (load_file, len(base.tsInfo.getMembers()))]
++
++
++ def needTs(self, base, basecmd, extcmds):
++ return True
++
diff --git a/yummain.py b/yummain.py
-index 95c7462..2892c34 100755
+index 95c7462..0241684 100755
--- a/yummain.py
+++ b/yummain.py
@@ -101,8 +101,10 @@ def main(args):
@@ -36248,3 +40274,12 @@ index 95c7462..2892c34 100755
else:
logger.critical(_("Another app is currently holding the yum lock; exiting as configured by exit_on_lock"))
return 1
+@@ -211,6 +213,8 @@ def main(args):
+ if not base._rpmdb_warn_checks(out=verbose_logger.info, warn=False):
+ verbose_logger.info(_(" You could try running: rpm -Va --nofiles --nodigest"))
+ return_code = result
++ if base._ts_save_file:
++ verbose_logger.info(_("Your transaction was saved, rerun it with: yum load-transaction %s") % base._ts_save_file)
+ else:
+ verbose_logger.log(logginglevels.INFO_2, _('Complete!'))
+
More information about the scm-commits
mailing list