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 , 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 \n" - "Language-Team: LANGUAGE \n" -+"Language: \n" ++"PO-Revision-Date: 2010-10-21 21:26+0200\n" + "Last-Translator: Göran Uddeborg \n" + "Language-Team: Swedish \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 "" - msgstr "" + msgstr "" -#: ../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 " +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 " + +#: ../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 \n" + "Language-Team: LANGUAGE \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 "" + 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 " ++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 = """ %s\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 += """ \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!')) +