diff --git a/cli.py b/cli.py
index 7c4047a..5ad4e2b 100644
--- a/cli.py
+++ b/cli.py
@@ -37,7 +37,7 @@ import yum.Errors
import yum.logginglevels
import yum.misc
import yum.plugins
-import rpmUtils.arch
+from rpmUtils.arch import isMultiLibArch
import rpmUtils.miscutils
from yum.packages import parsePackages
from yum import _
@@ -99,6 +99,7 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
self.registerCommand(yumcommands.HelpCommand())
self.registerCommand(yumcommands.ReInstallCommand())
self.registerCommand(yumcommands.DowngradeCommand())
+ self.registerCommand(yumcommands.VersionCommand())
def registerCommand(self, command):
for name in command.getNames():
@@ -687,12 +688,21 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
try:
self.reinstall(pattern=arg)
- except yum.Errors.ReinstallError:
+ except yum.Errors.ReinstallRemoveError:
+ self._checkMaybeYouMeant(arg, always_output=False)
+ except yum.Errors.ReinstallInstallError, e:
+ ipkg = self.rpmdb.returnPackages(patterns=[arg])[0]
+ xmsg = ''
+ if 'from_repo' in ipkg.yumdb_info:
+ xmsg = ipkg.yumdb_info.from_repo
+ xmsg = _(' (from %s)') % xmsg
self.verbose_logger.log(yum.logginglevels.INFO_2,
- _('No package %s%s%s available.'),
- self.term.MODE['bold'], arg,
- self.term.MODE['normal'])
- self._maybeYouMeant(arg)
+ _('Installed package %s%s%s%s not available.'),
+ self.term.MODE['bold'], ipkg,
+ self.term.MODE['normal'], xmsg)
+ except yum.Errors.ReinstallError, e:
+ assert False, "Shouldn't happen, but just in case"
+ self.verbose_logger.log(yum.logginglevels.INFO_2, e)
if len(self.tsInfo) > oldcount:
return 2, [_('Package(s) to reinstall')]
return 0, [_('Nothing to do')]
@@ -1045,7 +1055,7 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
installedByKey = self.rpmdb.searchNevra(name=pkg.name)
comparable = []
for instpo in installedByKey:
- if rpmUtils.arch.isMultiLibArch(instpo.arch) == rpmUtils.arch.isMultiLibArch(pkg.arch):
+ if isMultiLibArch(instpo.arch) == isMultiLibArch(pkg.arch):
comparable.append(instpo)
else:
self.verbose_logger.log(yum.logginglevels.DEBUG_3,
@@ -1152,13 +1162,8 @@ class YumOptionParser(OptionParser):
# user writable cachedir. If that fails fall back to cache-only.
if opts.cacheonly:
self.base.conf.cache = 1
- elif self.base.conf.uid != 0:
- cachedir = yum.misc.getCacheDir()
- if cachedir is None:
- self.base.conf.cache = 1
- else:
- self.base.conf.cachedir = cachedir
- self.base.repos.setCacheDir(cachedir)
+ elif not self.base.setCacheDir():
+ self.base.conf.cache = 1
if opts.obsoletes:
self.base.conf.obsoletes = 1
diff --git a/docs/yum.conf.5 b/docs/yum.conf.5
index 521ffed..18e72ea 100644
--- a/docs/yum.conf.5
+++ b/docs/yum.conf.5
@@ -318,7 +318,7 @@ always (using ANSI codes) or never.
Command-line option: \fB\-\-color\fP
.IP \fBcolor_list_installed_older \fR
-The colorization/highlighting for pacakges in list/info installed which are
+The colorization/highlighting for packages in list/info installed which are
older than the latest available package with the same name and arch.
Default is `bold'.
Possible values are a comma seperated list containing: bold, blink, dim,
@@ -327,43 +327,43 @@ fg:cyan, fg:white, bg:black, bg:red, bg:green, bg:yellow, bg:blue, bg:magenta,
bg:cyan, bg:white.
.IP \fBcolor_list_installed_newer \fR
-The colorization/highlighting for pacakges in list/info installed which are
+The colorization/highlighting for packages in list/info installed which are
newer than the latest available package with the same name and arch.
Default is `bold,yellow'.
See color_list_installed_older for possible values.
.IP \fBcolor_list_installed_reinstall \fR
-The colorization/highlighting for pacakges in list/info installed which is
+The colorization/highlighting for packages in list/info installed which is
the same version as the latest available package with the same name and arch.
Default is `normal'.
See color_list_installed_older for possible values.
.IP \fBcolor_list_installed_extra \fR
-The colorization/highlighting for pacakges in list/info installed which has
+The colorization/highlighting for packages in list/info installed which has
no available package with the same name and arch.
Default is `bold,red'.
See color_list_installed_older for possible values.
.IP \fBcolor_list_available_upgrade \fR
-The colorization/highlighting for pacakges in list/info available which is
+The colorization/highlighting for packages in list/info available which is
an upgrade for the latest installed package with the same name and arch.
Default is `bold,blue'.
See color_list_installed_older for possible values.
.IP \fBcolor_list_available_downgrade \fR
-The colorization/highlighting for pacakges in list/info available which is
+The colorization/highlighting for packages in list/info available which is
a downgrade for the latest installed package with the same name and arch.
Default is `dim,cyan'.
See color_list_installed_older for possible values.
.IP \fBcolor_list_available_install \fR
-The colorization/highlighting for pacakges in list/info available which has
+The colorization/highlighting for packages in list/info available which has
no installed package with the same name and arch.
Default is `normal'.
See color_list_installed_older for possible values.
.IP \fBcolor_list_available_reinstall \fR
-The colorization/highlighting for pacakges in list/info available which is
+The colorization/highlighting for packages in list/info available which is
the same version as the installed package with the same name and arch.
Default is `bold,underline,green.
See color_list_installed_older for possible values.
diff --git a/output.py b/output.py
index 7803275..3efccf2 100755
--- a/output.py
+++ b/output.py
@@ -141,10 +141,6 @@ class YumTerm:
self.BG_COLOR = self.__ansi_forced_BG_COLOR
def reinit(self, term_stream=None, color='auto'):
- if color == 'never':
- self.__enabled = False
- return
-
self.__enabled = True
if not hasattr(urlgrabber.progress, 'terminal_width_cached'):
self.columns = 80
@@ -153,7 +149,6 @@ class YumTerm:
if color == 'always':
self.__forced_init()
return
- assert color == 'auto'
# Output modes:
self.MODE = {
@@ -188,6 +183,11 @@ class YumTerm:
'white' : ''
}
+ if color == 'never':
+ self.__enabled = False
+ return
+ assert color == 'auto'
+
# Curses isn't available on all platforms
try:
import curses
@@ -902,7 +902,7 @@ class YumOutput:
def listTransaction(self):
"""returns a string rep of the transaction in an easy-to-read way."""
- self.tsInfo.makelists()
+ self.tsInfo.makelists(True, True)
out = u""
pkglist_lines = []
data = {'n' : {}, 'v' : {}, 'r' : {}}
@@ -938,6 +938,8 @@ class YumOutput:
for (action, pkglist) in [(_('Installing'), self.tsInfo.installed),
(_('Updating'), self.tsInfo.updated),
(_('Removing'), self.tsInfo.removed),
+ (_('Reinstalling'), self.tsInfo.reinstalled),
+ (_('Downgrading'), self.tsInfo.downgraded),
(_('Installing for dependencies'), self.tsInfo.depinstalled),
(_('Updating for dependencies'), self.tsInfo.depupdated),
(_('Removing for dependencies'), self.tsInfo.depremoved)]:
@@ -963,7 +965,7 @@ class YumOutput:
(n_wid, a_wid, v_wid, r_wid, s_wid) = columns
assert s_wid == 5
- out = u"""
+ out = [u"""
%s
%s
%s
@@ -971,7 +973,7 @@ class YumOutput:
self.fmtColumns(((_('Package'), -n_wid), (_('Arch'), -a_wid),
(_('Version'), -v_wid), (_('Repository'), -r_wid),
(_('Size'), s_wid)), u" "),
- '=' * self.term.columns)
+ '=' * self.term.columns)]
for (action, lines) in pkglist_lines:
if lines:
@@ -989,21 +991,33 @@ class YumOutput:
totalmsg = totalmsg + msg
if lines:
- out = out + totalmsg
+ out.append(totalmsg)
summary = _("""
Transaction Summary
%s
-Install %5.5s Package(s)
-Update %5.5s Package(s)
-Remove %5.5s Package(s)
-""") % ('=' * self.term.columns,
- len(self.tsInfo.installed + self.tsInfo.depinstalled),
- len(self.tsInfo.updated + self.tsInfo.depupdated),
- len(self.tsInfo.removed + self.tsInfo.depremoved))
- out = out + summary
+""") % ('=' * self.term.columns,)
+ out.append(summary)
+ num_in = len(self.tsInfo.installed + self.tsInfo.depinstalled)
+ num_up = len(self.tsInfo.updated + self.tsInfo.depupdated)
+ summary = _("""\
+Install %5.5s Package(s)
+Upgrade %5.5s Package(s)
+""") % (num_in, num_up,)
+ if num_in or num_up: # Always do this?
+ out.append(summary)
+ num_rm = len(self.tsInfo.removed + self.tsInfo.depremoved)
+ num_re = len(self.tsInfo.reinstalled)
+ num_dg = len(self.tsInfo.downgraded)
+ summary = _("""\
+Remove %5.5s Package(s)
+Reinstall %5.5s Package(s)
+Downgrade %5.5s Package(s)
+""") % (num_rm, num_re, num_dg)
+ if num_rm or num_re or num_dg:
+ out.append(summary)
- return out
+ return ''.join(out)
def postTransactionOutput(self):
out = ''
@@ -1125,7 +1139,8 @@ Remove %5.5s Package(s)
# to exit.
# Where "interupt (ctrl-c) again" and "two" are highlighted.
msg = _("""
- Current download cancelled, %sinterrupt (ctrl-c) again%s within %s%s%s seconds to exit.
+ Current download cancelled, %sinterrupt (ctrl-c) again%s within %s%s%s seconds
+to exit.
""") % (hibeg, hiend, hibeg, delta_exit_str, hiend)
self.verbose_logger.log(logginglevels.INFO_2, msg)
elif now - self._last_interrupt < delta_exit_chk:
diff --git a/po/da.po b/po/da.po
index 68cef3a..5678fe7 100644
--- a/po/da.po
+++ b/po/da.po
@@ -1,5 +1,5 @@
# Danish translation of yum
-# Copyright (C) 2008 THE yum'S COPYRIGHT HOLDER
+# Copyright (C) 2008 yum
# This file is distributed under the same license as the yum package.
# tim <timlau@fedoraproject.org>, 2008.
# Kris Thomsen <lakristho@gmail.com>, 2009.
@@ -9,15 +9,15 @@ msgid ""
msgstr ""
"Project-Id-Version: yum 3.2.x\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-04-15 14:37+0000\n"
-"PO-Revision-Date: 2009-04-15 16:39+0200\n"
+"POT-Creation-Date: 2009-05-23 20:05+0000\n"
+"PO-Revision-Date: 2009-05-24 13:08+0200\n"
"Last-Translator: Kris Thomsen <lakristho@gmail.com>\n"
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ../callback.py:48 ../output.py:936 ../yum/rpmtrans.py:71
+#: ../callback.py:48 ../output.py:939 ../yum/rpmtrans.py:71
msgid "Updating"
msgstr "Opdaterer"
@@ -25,7 +25,7 @@ msgstr "Opdaterer"
msgid "Erasing"
msgstr "Sletter"
-#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:935
+#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:938
#: ../yum/rpmtrans.py:73 ../yum/rpmtrans.py:74 ../yum/rpmtrans.py:76
msgid "Installing"
msgstr "Installerer"
@@ -34,7 +34,7 @@ msgstr "Installerer"
msgid "Obsoleted"
msgstr "Overflødiggjort"
-#: ../callback.py:54 ../output.py:1043
+#: ../callback.py:54 ../output.py:1046
msgid "Updated"
msgstr "Opdateret"
@@ -42,7 +42,7 @@ msgstr "Opdateret"
msgid "Erased"
msgstr "Slettet"
-#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:1041
+#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:1044
msgid "Installed"
msgstr "Installeret"
@@ -64,7 +64,7 @@ msgstr "Error: ugyldig uddatastatus: %s for %s"
msgid "Erased: %s"
msgstr "Slettet: %s"
-#: ../callback.py:217 ../output.py:937
+#: ../callback.py:217 ../output.py:940
msgid "Removing"
msgstr "Sletter"
@@ -72,60 +72,60 @@ msgstr "Sletter"
msgid "Cleanup"
msgstr "Oprydning af"
-#: ../cli.py:104
+#: ../cli.py:107
#, python-format
msgid "Command \"%s\" already defined"
msgstr "Kommandoen \"%s\" er allerede defineret"
-#: ../cli.py:116
+#: ../cli.py:119
msgid "Setting up repositories"
msgstr "Indstiller pakkearkiver"
-#: ../cli.py:127
+#: ../cli.py:130
msgid "Reading repository metadata in from local files"
msgstr "Læser pakkearkiv for metadata fra lokale filer"
-#: ../cli.py:190 ../utils.py:87
+#: ../cli.py:193 ../utils.py:87
#, python-format
msgid "Config Error: %s"
msgstr "Konfigurationsfejl: %s"
-#: ../cli.py:193 ../cli.py:1229 ../utils.py:90
+#: ../cli.py:196 ../cli.py:1233 ../utils.py:90
#, python-format
msgid "Options Error: %s"
msgstr "Fejl i indstilling: %s"
-#: ../cli.py:221
+#: ../cli.py:225
#, python-format
msgid " Installed: %s-%s at %s"
msgstr " Installeret: %s-%s på %s"
-#: ../cli.py:223
+#: ../cli.py:227
#, python-format
msgid " Built : %s at %s"
msgstr " Bygget : %s på %s"
-#: ../cli.py:225
+#: ../cli.py:229
#, python-format
msgid " Committed: %s at %s"
msgstr " Indsendt: %s på %s"
-#: ../cli.py:264
+#: ../cli.py:268
msgid "You need to give some command"
msgstr "Du skal angive en kommando"
-#: ../cli.py:307
+#: ../cli.py:311
msgid "Disk Requirements:\n"
msgstr "Behov for diskplads:\n"
-#: ../cli.py:309
+#: ../cli.py:313
#, python-format
msgid " At least %dMB needed on the %s filesystem.\n"
msgstr " Der er brug for mindst %dmb på %s-filsystemet.\n"
#. TODO: simplify the dependency errors?
#. Fixup the summary
-#: ../cli.py:314
+#: ../cli.py:318
msgid ""
"Error Summary\n"
"-------------\n"
@@ -133,56 +133,56 @@ msgstr ""
"Fejlopsummering\n"
"---------------\n"
-#: ../cli.py:357
+#: ../cli.py:361
msgid "Trying to run the transaction but nothing to do. Exiting."
msgstr "Forsøger at udføre overførslen, men der intet at udføre. Afslutter."
-#: ../cli.py:393
+#: ../cli.py:397
msgid "Exiting on user Command"
msgstr "Afslutter efter brugerens ønske"
-#: ../cli.py:397
+#: ../cli.py:401
msgid "Downloading Packages:"
msgstr "Henter pakker:"
-#: ../cli.py:402
+#: ../cli.py:406
msgid "Error Downloading Packages:\n"
msgstr "Fejl ved hentning af pakker:\n"
-#: ../cli.py:416 ../yum/__init__.py:3613
+#: ../cli.py:420 ../yum/__init__.py:3728
msgid "Running rpm_check_debug"
msgstr "Kører rpm_check_debug"
-#: ../cli.py:419 ../yum/__init__.py:3616
+#: ../cli.py:423 ../yum/__init__.py:3731
msgid "ERROR with rpm_check_debug vs depsolve:"
msgstr "FEJL i rpm_check_dedug vs afhængighedsløsning:"
-#: ../cli.py:423
+#: ../cli.py:427
#, python-format
msgid "Please report this error in %s"
msgstr "Rapportér venligst denne fejl i %s"
-#: ../cli.py:429
+#: ../cli.py:433
msgid "Running Transaction Test"
msgstr "Kører overførselstest"
-#: ../cli.py:445
+#: ../cli.py:449
msgid "Finished Transaction Test"
msgstr "Afsluttede overførselstest"
-#: ../cli.py:447
+#: ../cli.py:451
msgid "Transaction Check Error:\n"
msgstr "Fejl i overførselskontrol:\n"
-#: ../cli.py:454
+#: ../cli.py:458
msgid "Transaction Test Succeeded"
msgstr "Overførselstest afsluttet uden fejl"
-#: ../cli.py:475
+#: ../cli.py:480
msgid "Running Transaction"
msgstr "Kører overførsel"
-#: ../cli.py:505
+#: ../cli.py:510
msgid ""
"Refusing to automatically import keys when running unattended.\n"
"Use \"-y\" to override."
@@ -190,69 +190,69 @@ msgstr ""
"Afviser automatisk importering af nøgler ved baggrundskørsel.\n"
"Brug \"-y\" til at overskrive."
-#: ../cli.py:524 ../cli.py:558
+#: ../cli.py:529 ../cli.py:563
msgid " * Maybe you meant: "
msgstr " * Du mente måske: "
-#: ../cli.py:541 ../cli.py:549
+#: ../cli.py:546 ../cli.py:554
#, python-format
msgid "Package(s) %s%s%s available, but not installed."
msgstr "Pakke(r) %s%s%S tilgængelig(e), men ikke installeret."
-#: ../cli.py:555 ../cli.py:586 ../cli.py:664
+#: ../cli.py:560 ../cli.py:591 ../cli.py:669 ../cli.py:693
#, python-format
msgid "No package %s%s%s available."
msgstr "Pakken %s%s%s er ikke tilgængelig."
-#: ../cli.py:591 ../cli.py:691
+#: ../cli.py:596 ../cli.py:720
msgid "Package(s) to install"
msgstr "Pakke(r) til installation"
-#: ../cli.py:592 ../cli.py:670 ../cli.py:692 ../yumcommands.py:157
-#: ../yumcommands.py:1018
+#: ../cli.py:597 ../cli.py:675 ../cli.py:699 ../cli.py:721
+#: ../yumcommands.py:157
msgid "Nothing to do"
msgstr "Intet at udføre"
-#: ../cli.py:625
+#: ../cli.py:630
#, python-format
msgid "%d packages marked for Update"
msgstr "%d pakker markeret til opdatering"
-#: ../cli.py:628
+#: ../cli.py:633
msgid "No Packages marked for Update"
msgstr "Ingen pakker markeret til opdatering"
-#: ../cli.py:642
+#: ../cli.py:647
#, python-format
msgid "%d packages marked for removal"
msgstr "%d pakker markeret til sletning"
-#: ../cli.py:645
+#: ../cli.py:650
msgid "No Packages marked for removal"
msgstr "Ingen pakker markeret til sletning"
-#: ../cli.py:669
+#: ../cli.py:674
msgid "Package(s) to downgrade"
msgstr "Pakke(r) til nedgradering"
-#: ../cli.py:682
+#: ../cli.py:698
+msgid "Package(s) to reinstall"
+msgstr "Pakke(r) til geninstallation"
+
+#: ../cli.py:711
msgid "No Packages Provided"
msgstr "Ingen pakker angivet"
-#: ../cli.py:737
-msgid "Matching packages for package list to user args"
-msgstr "Matcher pakker til pakkeliste baseret på brugerens argumenter"
-
-#: ../cli.py:786
+#: ../cli.py:795
#, python-format
msgid "Warning: No matches found for: %s"
msgstr "Advarsel: Ingen match blev fundet for: %s"
-#: ../cli.py:789
+#: ../cli.py:798
msgid "No Matches found"
msgstr "Ingen match fundet"
-#: ../cli.py:828
+#: ../cli.py:837
#, python-format
msgid ""
"Warning: 3.0.x versions of yum would erroneously match against filenames.\n"
@@ -261,108 +261,108 @@ msgstr ""
"Advarsel: 3.0.x-versioner af yum vil matche fejlagtigt mod filnavne.\n"
" Du kan bruge \"%s*/%s%s\" og/eller \"%s*bin/%s%s\" for at få den opførsel"
-#: ../cli.py:844
+#: ../cli.py:853
#, python-format
msgid "No Package Found for %s"
msgstr "Ingen pakke fundet for %s"
-#: ../cli.py:856
+#: ../cli.py:865
msgid "Cleaning up Everything"
msgstr "Oprydning af alt"
-#: ../cli.py:870
+#: ../cli.py:879
msgid "Cleaning up Headers"
msgstr "Oprydning af headerfiler"
-#: ../cli.py:873
+#: ../cli.py:882
msgid "Cleaning up Packages"
msgstr "Oprydning af pakker"
-#: ../cli.py:876
+#: ../cli.py:885
msgid "Cleaning up xml metadata"
msgstr "Oprydning af xml-metadata"
-#: ../cli.py:879
+#: ../cli.py:888
msgid "Cleaning up database cache"
msgstr "Oprydning af mellemlager til database"
-#: ../cli.py:882
+#: ../cli.py:891
msgid "Cleaning up expire-cache metadata"
msgstr "Oprydning af udløbet mellemlager til metadata"
-#: ../cli.py:885
+#: ../cli.py:894
msgid "Cleaning up plugins"
msgstr "Oprydning af udvidelsesmoduler"
-#: ../cli.py:910
+#: ../cli.py:919
msgid "Installed Groups:"
msgstr "Installerede grupper:"
-#: ../cli.py:922
+#: ../cli.py:931
msgid "Available Groups:"
msgstr "Tilgængelige grupper:"
-#: ../cli.py:932
+#: ../cli.py:941
msgid "Done"
msgstr "Afsluttet"
-#: ../cli.py:943 ../cli.py:961 ../cli.py:967 ../yum/__init__.py:2463
+#: ../cli.py:952 ../cli.py:970 ../cli.py:976 ../yum/__init__.py:2521
#, python-format
msgid "Warning: Group %s does not exist."
msgstr "Advarsel: Gruppen %s findes ikke."
-#: ../cli.py:971
+#: ../cli.py:980
msgid "No packages in any requested group available to install or update"
msgstr ""
"Ingen pakke i nogen de efterspurgte grupper, er tilgængelige til "
"installation eller opdatering"
-#: ../cli.py:973
+#: ../cli.py:982
#, python-format
msgid "%d Package(s) to Install"
msgstr "%d pakke(r) til installation"
-#: ../cli.py:983 ../yum/__init__.py:2475
+#: ../cli.py:992 ../yum/__init__.py:2533
#, python-format
msgid "No group named %s exists"
msgstr "Gruppen %s findes ikke"
-#: ../cli.py:989
+#: ../cli.py:998
msgid "No packages to remove from groups"
msgstr "Ingen pakker at slette fra grupper"
-#: ../cli.py:991
+#: ../cli.py:1000
#, python-format
msgid "%d Package(s) to remove"
msgstr "%d pakke(r) til sletning"
-#: ../cli.py:1033
+#: ../cli.py:1042
#, python-format
msgid "Package %s is already installed, skipping"
msgstr "Pakken %s er allerede installeret, springer over"
-#: ../cli.py:1044
+#: ../cli.py:1053
#, python-format
msgid "Discarding non-comparable pkg %s.%s"
msgstr "Ser bort fra ikke-kompatibel pakke %s.%s"
#. we've not got any installed that match n or n+a
-#: ../cli.py:1070
+#: ../cli.py:1079
#, python-format
msgid "No other %s installed, adding to list for potential install"
msgstr ""
"Ingen andre %s er installeret, tilføjer til liste til mulig installation"
-#: ../cli.py:1090
+#: ../cli.py:1099
msgid "Plugin Options"
msgstr "Indstillinger til udvidelsesmodul"
-#: ../cli.py:1098
+#: ../cli.py:1107
#, python-format
msgid "Command line error: %s"
msgstr "Kommandoliniefejl: %s"
-#: ../cli.py:1111
+#: ../cli.py:1120
#, python-format
msgid ""
"\n"
@@ -373,257 +373,257 @@ msgstr ""
"\n"
"%s: %s indstilling kræver et argument"
-#: ../cli.py:1169
+#: ../cli.py:1173
msgid "--color takes one of: auto, always, never"
msgstr "--color tager en af: auto, altid, aldrig"
-#: ../cli.py:1276
+#: ../cli.py:1280
msgid "show this help message and exit"
msgstr "vis denne hjælpemeddelse og afslut"
-#: ../cli.py:1280
+#: ../cli.py:1284
msgid "be tolerant of errors"
msgstr "vær fejltolerant"
-#: ../cli.py:1282
+#: ../cli.py:1286
msgid "run entirely from cache, don't update cache"
msgstr "kør kun fra mellemlager, ingen opdatering af mellemlageret"
-#: ../cli.py:1284
+#: ../cli.py:1288
msgid "config file location"
msgstr "placering af konfigurationsfil"
-#: ../cli.py:1286
+#: ../cli.py:1290
msgid "maximum command wait time"
msgstr "maksimal ventetid på kommando"
-#: ../cli.py:1288
+#: ../cli.py:1292
msgid "debugging output level"
msgstr "debug-visningsniveau"
-#: ../cli.py:1292
+#: ../cli.py:1296
msgid "show duplicates, in repos, in list/search commands"
msgstr "vis gengangere, i pakkearkiver, i list/search-kommandoer"
-#: ../cli.py:1294
+#: ../cli.py:1298
msgid "error output level"
msgstr "fejlvisningsniveau"
-#: ../cli.py:1297
+#: ../cli.py:1301
msgid "quiet operation"
msgstr "stille operation"
-#: ../cli.py:1299
+#: ../cli.py:1303
msgid "verbose operation"
msgstr "uddybende operation"
-#: ../cli.py:1301
+#: ../cli.py:1305
msgid "answer yes for all questions"
msgstr "svar ja til alle spørgsmål"
-#: ../cli.py:1303
+#: ../cli.py:1307
msgid "show Yum version and exit"
msgstr "vis Yum-version og afslut"
-#: ../cli.py:1304
+#: ../cli.py:1308
msgid "set install root"
msgstr "sæt installationsroden"
-#: ../cli.py:1308
+#: ../cli.py:1312
msgid "enable one or more repositories (wildcards allowed)"
msgstr "aktivér en eller flere pakkearkiver (wildcards er tilladt)"
-#: ../cli.py:1312
+#: ../cli.py:1316
msgid "disable one or more repositories (wildcards allowed)"
msgstr "deaktivér en eller flere pakkearkiver (wildcards er tilladt)"
-#: ../cli.py:1315
+#: ../cli.py:1319
msgid "exclude package(s) by name or glob"
msgstr "ekskludér pakke(r) med navn eller klump"
-#: ../cli.py:1317
+#: ../cli.py:1321
msgid "disable exclude from main, for a repo or for everything"
msgstr "deaktivér ekskludering fra main, for et pakkearkiv eller for alt"
-#: ../cli.py:1320
+#: ../cli.py:1324
msgid "enable obsoletes processing during updates"
msgstr "aktivér overflødiggørelse under behandling af opdateringer"
-#: ../cli.py:1322
+#: ../cli.py:1326
msgid "disable Yum plugins"
msgstr "deaktivér Yum-udvidelsesmoduler"
-#: ../cli.py:1324
+#: ../cli.py:1328
msgid "disable gpg signature checking"
msgstr "deaktivér kontrol af gpg-signaturer"
-#: ../cli.py:1326
+#: ../cli.py:1330
msgid "disable plugins by name"
msgstr "deaktivér udvidelsesmoduler ved navn"
-#: ../cli.py:1329
+#: ../cli.py:1333
msgid "enable plugins by name"
msgstr "aktivér udvidelsesmoduler ved navn"
-#: ../cli.py:1332
+#: ../cli.py:1336
msgid "skip packages with depsolving problems"
msgstr "spring pakker med afhængighedsproblemer over"
-#: ../cli.py:1334
+#: ../cli.py:1338
msgid "control whether color is used"
msgstr "kontrollér om farve er brugt"
-#: ../output.py:301
+#: ../output.py:303
msgid "Jan"
msgstr "Jan"
-#: ../output.py:301
+#: ../output.py:303
msgid "Feb"
msgstr "Feb"
-#: ../output.py:301
+#: ../output.py:303
msgid "Mar"
msgstr "Mar"
-#: ../output.py:301
+#: ../output.py:303
msgid "Apr"
msgstr "Apr"
-#: ../output.py:301
+#: ../output.py:303
msgid "May"
msgstr "Maj"
-#: ../output.py:301
+#: ../output.py:303
msgid "Jun"
msgstr "Jun"
-#: ../output.py:302
+#: ../output.py:304
msgid "Jul"
msgstr "Jul"
-#: ../output.py:302
+#: ../output.py:304
msgid "Aug"
msgstr "Aug"
-#: ../output.py:302
+#: ../output.py:304
msgid "Sep"
msgstr "Sep"
-#: ../output.py:302
+#: ../output.py:304
msgid "Oct"
msgstr "Okt"
-#: ../output.py:302
+#: ../output.py:304
msgid "Nov"
msgstr "Nov"
-#: ../output.py:302
+#: ../output.py:304
msgid "Dec"
msgstr "Dec"
-#: ../output.py:312
+#: ../output.py:314
msgid "Trying other mirror."
msgstr "Prøver et andet filspejl."
-#: ../output.py:534
+#: ../output.py:536
#, python-format
msgid "Name : %s%s%s"
msgstr "Navn : %s%s%s"
-#: ../output.py:535
+#: ../output.py:537
#, python-format
msgid "Arch : %s"
msgstr "Arkitektur : %s"
-#: ../output.py:537
+#: ../output.py:539
#, python-format
msgid "Epoch : %s"
msgstr "Epoch : %s"
-#: ../output.py:538
+#: ../output.py:540
#, python-format
msgid "Version : %s"
msgstr "Version : %s"
-#: ../output.py:539
+#: ../output.py:541
#, python-format
msgid "Release : %s"
msgstr "Udgivelse : %s"
-#: ../output.py:540
+#: ../output.py:542
#, python-format
msgid "Size : %s"
msgstr "Størrelse : %s"
-#: ../output.py:541
+#: ../output.py:543
#, python-format
msgid "Repo : %s"
msgstr "Kilde : %s"
-#: ../output.py:543
+#: ../output.py:545
#, python-format
msgid "From repo : %s"
msgstr "Fra kilde : %s"
-#: ../output.py:545
+#: ../output.py:547
#, python-format
msgid "Committer : %s"
msgstr "Indsender : %s"
-#: ../output.py:546
+#: ../output.py:548
#, python-format
msgid "Committime : %s"
msgstr "Indsendingstid : %s"
-#: ../output.py:547
+#: ../output.py:549
#, python-format
msgid "Buildtime : %s"
msgstr "Byggetid : %s"
-#: ../output.py:549
+#: ../output.py:551
#, python-format
msgid "Installtime: %s"
msgstr "Installationstid: %s"
-#: ../output.py:550
+#: ../output.py:552
msgid "Summary : "
msgstr "Resumé : "
-#: ../output.py:552
+#: ../output.py:554
#, python-format
msgid "URL : %s"
msgstr "URL : %s"
-#: ../output.py:553
+#: ../output.py:555
#, python-format
msgid "License : %s"
msgstr "Licens : %s"
-#: ../output.py:554
+#: ../output.py:556
msgid "Description: "
msgstr "Beskrivelse: "
-#: ../output.py:622
+#: ../output.py:624
msgid "y"
msgstr "j"
-#: ../output.py:622
+#: ../output.py:624
msgid "yes"
msgstr "ja"
-#: ../output.py:623
+#: ../output.py:625
msgid "n"
msgstr "n"
-#: ../output.py:623
+#: ../output.py:625
msgid "no"
msgstr "nej"
-#: ../output.py:627
+#: ../output.py:629
msgid "Is this ok [y/N]: "
msgstr "Er dette o.k. [j/N]: "
-#: ../output.py:718
+#: ../output.py:720
#, python-format
msgid ""
"\n"
@@ -632,133 +632,133 @@ msgstr ""
"\n"
"Gruppe: %s"
-#: ../output.py:722
+#: ../output.py:724
#, python-format
msgid " Group-Id: %s"
msgstr " Gruppeid: %s"
-#: ../output.py:727
+#: ../output.py:729
#, python-format
msgid " Description: %s"
msgstr " Beskrivelse: %s"
-#: ../output.py:729
+#: ../output.py:731
msgid " Mandatory Packages:"
msgstr " Tvungne pakker:"
-#: ../output.py:730
+#: ../output.py:732
msgid " Default Packages:"
msgstr " Standardpakker:"
-#: ../output.py:731
+#: ../output.py:733
msgid " Optional Packages:"
msgstr " Valgfrie pakker:"
-#: ../output.py:732
+#: ../output.py:734
msgid " Conditional Packages:"
msgstr " Afhængige pakker:"
-#: ../output.py:752
+#: ../output.py:754
#, python-format
msgid "package: %s"
msgstr "pakke: %s"
-#: ../output.py:754
+#: ../output.py:756
msgid " No dependencies for this package"
msgstr " Ingen afhængigheder for denne pakke"
-#: ../output.py:759
+#: ../output.py:761
#, python-format
msgid " dependency: %s"
msgstr " afhængighed: %s"
-#: ../output.py:761
+#: ../output.py:763
msgid " Unsatisfied dependency"
msgstr " Ufuldendt afhængighed"
-#: ../output.py:833
+#: ../output.py:835
#, python-format
msgid "Repo : %s"
msgstr "Kilde : %s"
-#: ../output.py:834
+#: ../output.py:836
msgid "Matched from:"
msgstr "Matchet af:"
-#: ../output.py:842
+#: ../output.py:845
msgid "Description : "
msgstr "Beskrivelse : "
-#: ../output.py:845
+#: ../output.py:848
#, python-format
msgid "URL : %s"
msgstr "URL : %s"
-#: ../output.py:848
+#: ../output.py:851
#, python-format
msgid "License : %s"
msgstr "Licens : %s"
-#: ../output.py:851
+#: ../output.py:854
#, python-format
msgid "Filename : %s"
msgstr "Filnavn : %s"
-#: ../output.py:855
+#: ../output.py:858
msgid "Other : "
msgstr "Andre : "
-#: ../output.py:888
+#: ../output.py:891
msgid "There was an error calculating total download size"
msgstr "Der opstod en fejl i beregning af den totale hentningsstørrelse"
-#: ../output.py:893
+#: ../output.py:896
#, python-format
msgid "Total size: %s"
msgstr "Total størrelse: %s"
-#: ../output.py:896
+#: ../output.py:899
#, python-format
msgid "Total download size: %s"
msgstr "Total hentningsstørrelse: %s"
-#: ../output.py:938
+#: ../output.py:941
msgid "Installing for dependencies"
msgstr "Installerer til afhængigheder"
-#: ../output.py:939
+#: ../output.py:942
msgid "Updating for dependencies"
msgstr "Opdaterer til afhængigheder"
-#: ../output.py:940
+#: ../output.py:943
msgid "Removing for dependencies"
msgstr "Sletter til afhængigheder"
-#: ../output.py:947 ../output.py:1045
+#: ../output.py:950 ../output.py:1048
msgid "Skipped (dependency problems)"
msgstr "Sprunget over (afhængighedsproblemer)"
-#: ../output.py:968
+#: ../output.py:971
msgid "Package"
msgstr "Pakke"
-#: ../output.py:968
+#: ../output.py:971
msgid "Arch"
msgstr "Arkitektur"
-#: ../output.py:969
+#: ../output.py:972
msgid "Version"
msgstr "Version"
-#: ../output.py:969
+#: ../output.py:972
msgid "Repository"
msgstr "Pakkearkiv"
-#: ../output.py:970
+#: ../output.py:973
msgid "Size"
msgstr "Størrelse"
-#: ../output.py:982
+#: ../output.py:985
#, python-format
msgid ""
" replacing %s%s%s.%s %s\n"
@@ -767,7 +767,7 @@ msgstr ""
" erstatter %s%s%s.%s %s\n"
"\n"
-#: ../output.py:991
+#: ../output.py:994
#, python-format
msgid ""
"\n"
@@ -784,32 +784,32 @@ msgstr ""
"Opdaterer %5.5s pakke(r) \n"
"Sletter %5.5s pakke(r) \n"
-#: ../output.py:1039
+#: ../output.py:1042
msgid "Removed"
msgstr "Slettet"
-#: ../output.py:1040
+#: ../output.py:1043
msgid "Dependency Removed"
msgstr "Afhængighed slettet"
-#: ../output.py:1042
+#: ../output.py:1045
msgid "Dependency Installed"
msgstr "Afhængighed installeret"
-#: ../output.py:1044
+#: ../output.py:1047
msgid "Dependency Updated"
msgstr "Afhængighed opdateret"
-#: ../output.py:1046
+#: ../output.py:1049
msgid "Replaced"
msgstr "Erstattet"
-#: ../output.py:1047
+#: ../output.py:1050
msgid "Failed"
msgstr "Fejlede"
#. Delta between C-c's so we treat as exit
-#: ../output.py:1113
+#: ../output.py:1116
msgid "two"
msgstr "to"
@@ -817,7 +817,7 @@ msgstr "to"
#. Current download cancelled, interrupt (ctrl-c) again within two seconds
#. to exit.
#. Where "interupt (ctrl-c) again" and "two" are highlighted.
-#: ../output.py:1124
+#: ../output.py:1127
#, python-format
msgid ""
"\n"
@@ -828,67 +828,67 @@ msgstr ""
" Nuværende hentning afbrudt, %safbryd (ctrl-c) igen %s indenfor %s%s%s "
"sekunder for at afslutte.\n"
-#: ../output.py:1134
+#: ../output.py:1137
msgid "user interrupt"
msgstr "afsluttet af bruger"
-#: ../output.py:1150
+#: ../output.py:1153
msgid "Total"
msgstr "Ialt"
-#: ../output.py:1164
+#: ../output.py:1168
msgid "installed"
msgstr "installeret"
-#: ../output.py:1165
+#: ../output.py:1169
msgid "updated"
msgstr "opdateret"
-#: ../output.py:1166
+#: ../output.py:1170
msgid "obsoleted"
msgstr "overflødiggjort"
-#: ../output.py:1167
+#: ../output.py:1171
msgid "erased"
msgstr "slettet"
-#: ../output.py:1171
+#: ../output.py:1175
#, python-format
msgid "---> Package %s.%s %s:%s-%s set to be %s"
msgstr "---> Pakke %s.%s %s:%s-%s sat til at blive %s"
-#: ../output.py:1178
+#: ../output.py:1182
msgid "--> Running transaction check"
msgstr "--> Kører overførselskontrol"
-#: ../output.py:1183
+#: ../output.py:1187
msgid "--> Restarting Dependency Resolution with new changes."
msgstr "--> Genstarter afhængighedssøgning med nye ændringer."
-#: ../output.py:1188
+#: ../output.py:1192
msgid "--> Finished Dependency Resolution"
msgstr "--> Afsluttede afhængighedssøgningen"
-#: ../output.py:1193
+#: ../output.py:1197 ../output.py:1202
#, python-format
msgid "--> Processing Dependency: %s for package: %s"
msgstr "--> Behandler afhængighed: %s for pakken: %s"
-#: ../output.py:1198
+#: ../output.py:1206
#, python-format
msgid "--> Unresolved Dependency: %s"
msgstr "--> Ikke fundet afhængighed: %s"
-#: ../output.py:1204
+#: ../output.py:1212 ../output.py:1217
#, python-format
msgid "--> Processing Conflict: %s conflicts %s"
msgstr "--> Behandler konflikt: %s konflikter med %s"
-#: ../output.py:1207
+#: ../output.py:1221
msgid "--> Populating transaction set with selected packages. Please wait."
msgstr "--> Udfylder overførselssættet med valgte pakker. Vent venligst."
-#: ../output.py:1211
+#: ../output.py:1225
#, python-format
msgid "---> Downloading header for %s to pack into transaction set."
msgstr "---> Henter headerfil for %s til at indsætte i overførselssættet."
@@ -1015,7 +1015,7 @@ msgid "Updated Packages"
msgstr "Opdaterede pakker"
#. This only happens in verbose mode
-#: ../yumcommands.py:317 ../yumcommands.py:324 ../yumcommands.py:601
+#: ../yumcommands.py:317 ../yumcommands.py:324 ../yumcommands.py:600
msgid "Obsoleting Packages"
msgstr "Overflødiggør pakker"
@@ -1084,158 +1084,158 @@ msgstr "Mellemlager for metadata oprettet"
msgid "Remove cached data"
msgstr "Sletter data fra cachen"
-#: ../yumcommands.py:552
+#: ../yumcommands.py:551
msgid "Find what package provides the given value"
msgstr "Finder pakker som leverer en given værdi"
-#: ../yumcommands.py:572
+#: ../yumcommands.py:571
msgid "Check for available package updates"
msgstr "Kontrol af tilgængelige pakkeopdateringer"
-#: ../yumcommands.py:621
+#: ../yumcommands.py:620
msgid "Search package details for the given string"
msgstr "Søger efter en given streng i pakkeinformationerne"
-#: ../yumcommands.py:627
+#: ../yumcommands.py:626
msgid "Searching Packages: "
msgstr "Søger i pakkerne: "
-#: ../yumcommands.py:644
+#: ../yumcommands.py:643
msgid "Update packages taking obsoletes into account"
msgstr "Opdaterer pakker, tager hensyn til overflødiggjorte pakker"
-#: ../yumcommands.py:652
+#: ../yumcommands.py:651
msgid "Setting up Upgrade Process"
msgstr "Opsætning af opgraderingsprocessen"
-#: ../yumcommands.py:666
+#: ../yumcommands.py:665
msgid "Install a local RPM"
msgstr "Installer en lokal RPM-fil"
-#: ../yumcommands.py:674
+#: ../yumcommands.py:673
msgid "Setting up Local Package Process"
msgstr "Opsætning af lokalpakkeprocessen"
-#: ../yumcommands.py:693
+#: ../yumcommands.py:692
msgid "Determine which package provides the given dependency"
msgstr "Bestem hvilken pakke som leverer en bestemt afhængighed"
-#: ../yumcommands.py:696
+#: ../yumcommands.py:695
msgid "Searching Packages for Dependency:"
msgstr "Søger efter afhængighed i pakkerne:"
-#: ../yumcommands.py:710
+#: ../yumcommands.py:709
msgid "Run an interactive yum shell"
msgstr "Kør en interaktiv Yum-skal"
-#: ../yumcommands.py:716
+#: ../yumcommands.py:715
msgid "Setting up Yum Shell"
msgstr "Opsætning af Yum-skal"
-#: ../yumcommands.py:734
+#: ../yumcommands.py:733
msgid "List a package's dependencies"
msgstr "Viser en pakkes afhængigheder"
-#: ../yumcommands.py:740
+#: ../yumcommands.py:739
msgid "Finding dependencies: "
msgstr "Finder afhængigheder: "
-#: ../yumcommands.py:756
+#: ../yumcommands.py:755
msgid "Display the configured software repositories"
msgstr "Viser de konfigurerede pakkearkiver"
-#: ../yumcommands.py:804 ../yumcommands.py:805
+#: ../yumcommands.py:803 ../yumcommands.py:804
msgid "enabled"
msgstr "aktiveret"
-#: ../yumcommands.py:813 ../yumcommands.py:814
+#: ../yumcommands.py:812 ../yumcommands.py:813
msgid "disabled"
msgstr "deaktiveret"
-#: ../yumcommands.py:828
+#: ../yumcommands.py:827
msgid "Repo-id : "
msgstr "Kildeid : "
-#: ../yumcommands.py:829
+#: ../yumcommands.py:828
msgid "Repo-name : "
msgstr "Kildenavn : "
-#: ../yumcommands.py:830
+#: ../yumcommands.py:829
msgid "Repo-status : "
msgstr "Kildestatus : "
-#: ../yumcommands.py:832
+#: ../yumcommands.py:831
msgid "Repo-revision: "
msgstr "Kilderevision: "
-#: ../yumcommands.py:836
+#: ../yumcommands.py:835
msgid "Repo-tags : "
msgstr "Kildeflag : "
-#: ../yumcommands.py:842
+#: ../yumcommands.py:841
msgid "Repo-distro-tags: "
msgstr "Kildedistroflag: "
-#: ../yumcommands.py:847
+#: ../yumcommands.py:846
msgid "Repo-updated: "
msgstr "Kildeopdateret: "
-#: ../yumcommands.py:849
+#: ../yumcommands.py:848
msgid "Repo-pkgs : "
msgstr "Kildepakker : "
-#: ../yumcommands.py:850
+#: ../yumcommands.py:849
msgid "Repo-size : "
msgstr "Kildestørrelse : "
-#: ../yumcommands.py:857
+#: ../yumcommands.py:856
msgid "Repo-baseurl: "
msgstr "Kildegrundurl: "
-#: ../yumcommands.py:861
+#: ../yumcommands.py:864
msgid "Repo-metalink: "
msgstr "Kildemetahenvisning: "
-#: ../yumcommands.py:865
+#: ../yumcommands.py:868
msgid " Updated : "
msgstr " Opdateret : "
-#: ../yumcommands.py:868
+#: ../yumcommands.py:871
msgid "Repo-mirrors: "
msgstr "Kildespejle: "
-#: ../yumcommands.py:872
+#: ../yumcommands.py:875
msgid "Repo-exclude: "
msgstr "Kildeekskluder: "
-#: ../yumcommands.py:876
+#: ../yumcommands.py:879
msgid "Repo-include: "
msgstr "Kildeinkluder: "
#. Work out the first (id) and last (enabled/disalbed/count),
#. then chop the middle (name)...
-#: ../yumcommands.py:886 ../yumcommands.py:912
+#: ../yumcommands.py:889 ../yumcommands.py:915
msgid "repo id"
msgstr "kildeid"
-#: ../yumcommands.py:900 ../yumcommands.py:901 ../yumcommands.py:915
+#: ../yumcommands.py:903 ../yumcommands.py:904 ../yumcommands.py:918
msgid "status"
msgstr "status"
-#: ../yumcommands.py:913
+#: ../yumcommands.py:916
msgid "repo name"
msgstr "kildenavn"
-#: ../yumcommands.py:939
+#: ../yumcommands.py:942
msgid "Display a helpful usage message"
msgstr "Viser hjælp om brugen af en kommando"
-#: ../yumcommands.py:973
+#: ../yumcommands.py:976
#, python-format
msgid "No help available for %s"
msgstr "Ingen tilgængelig hjælp til %s"
-#: ../yumcommands.py:978
+#: ../yumcommands.py:981
msgid ""
"\n"
"\n"
@@ -1245,7 +1245,7 @@ msgstr ""
"\n"
"aliaser: "
-#: ../yumcommands.py:980
+#: ../yumcommands.py:983
msgid ""
"\n"
"\n"
@@ -1255,26 +1255,34 @@ msgstr ""
"\n"
"alias: "
-#: ../yumcommands.py:1008
+#: ../yumcommands.py:1011
msgid "Setting up Reinstall Process"
msgstr "Opsætning af geninstallationsprocessen"
-#: ../yumcommands.py:1017
-msgid "Package(s) to reinstall"
-msgstr "Pakke(r) til geninstallation"
-
-#: ../yumcommands.py:1024
+#: ../yumcommands.py:1019
msgid "reinstall a package"
msgstr "geninstallér en pakke"
-#: ../yumcommands.py:1042
+#: ../yumcommands.py:1037
msgid "Setting up Downgrade Process"
msgstr "Opsætning af nedgraderingsprocessen"
-#: ../yumcommands.py:1049
+#: ../yumcommands.py:1044
msgid "downgrade a package"
msgstr "nedgradér en pakke"
+#: ../yumcommands.py:1058
+msgid "Display a version for the machine and/or available repos."
+msgstr "Vis en version for maskinen og/eller tilgængelige pakkearkiver."
+
+#: ../yumcommands.py:1081
+msgid "Installed:"
+msgstr "Installeret:"
+
+#: ../yumcommands.py:1090
+msgid "Available:"
+msgstr "Tilgængelige:"
+
#: ../yummain.py:42
msgid ""
"\n"
@@ -1432,7 +1440,7 @@ msgstr "Matchede %s som afhængighed for %s"
msgid "Member: %s"
msgstr "Medlem: %s"
-#: ../yum/depsolve.py:247 ../yum/depsolve.py:739
+#: ../yum/depsolve.py:247 ../yum/depsolve.py:760
#, python-format
msgid "%s converted to install"
msgstr "%s konverteret til installation"
@@ -1447,148 +1455,148 @@ msgstr "Tilføjer pakke %s i mode %s"
msgid "Removing Package %s"
msgstr "Sletter Pakke %s"
-#: ../yum/depsolve.py:275
+#: ../yum/depsolve.py:286
#, python-format
msgid "%s requires: %s"
msgstr "%s behøver: %s"
-#: ../yum/depsolve.py:333
+#: ../yum/depsolve.py:344
msgid "Needed Require has already been looked up, cheating"
msgstr "Afhængighed fundet tidligere, snyder"
-#: ../yum/depsolve.py:343
+#: ../yum/depsolve.py:354
#, python-format
msgid "Needed Require is not a package name. Looking up: %s"
msgstr "Afhængighed er ikke et pakkenavn. Søger efter: %s"
-#: ../yum/depsolve.py:350
+#: ../yum/depsolve.py:361
#, python-format
msgid "Potential Provider: %s"
msgstr "Mulig udbyder: %s"
-#: ../yum/depsolve.py:373
+#: ../yum/depsolve.py:384
#, python-format
msgid "Mode is %s for provider of %s: %s"
msgstr "Tilstand er %s for udbyder af %s: %s"
-#: ../yum/depsolve.py:377
+#: ../yum/depsolve.py:388
#, python-format
msgid "Mode for pkg providing %s: %s"
msgstr "Tilstand for pakke som leverer %s: %s"
-#: ../yum/depsolve.py:381
+#: ../yum/depsolve.py:392
#, python-format
msgid "TSINFO: %s package requiring %s marked as erase"
msgstr "TSINFO: %s pakker som behøver %s markeret til sletning"
-#: ../yum/depsolve.py:394
+#: ../yum/depsolve.py:405
#, python-format
msgid "TSINFO: Obsoleting %s with %s to resolve dep."
msgstr "TSINFO: Overflødiggør %s med %s for at finde afhængighed."
-#: ../yum/depsolve.py:397
+#: ../yum/depsolve.py:408
#, python-format
msgid "TSINFO: Updating %s to resolve dep."
msgstr "TSINFO: Opdaterer %s for at opfylde afhængighed."
-#: ../yum/depsolve.py:405
+#: ../yum/depsolve.py:416
#, python-format
msgid "Cannot find an update path for dep for: %s"
msgstr "Kan ikke finde en opdateringsvej for afhængigheden for: %s"
-#: ../yum/depsolve.py:415
+#: ../yum/depsolve.py:426
#, python-format
msgid "Unresolvable requirement %s for %s"
msgstr "Uløst afhængighed %s for %s"
-#: ../yum/depsolve.py:438
+#: ../yum/depsolve.py:449
#, python-format
msgid "Quick matched %s to require for %s"
msgstr "Hurtigmatchede %s som afhængighed for %s"
#. is it already installed?
-#: ../yum/depsolve.py:480
+#: ../yum/depsolve.py:491
#, python-format
msgid "%s is in providing packages but it is already installed, removing."
msgstr "%s er i udbydet pakker, men er allerede installeret, fjerner."
-#: ../yum/depsolve.py:496
+#: ../yum/depsolve.py:507
#, python-format
msgid "Potential resolving package %s has newer instance in ts."
msgstr "Mulig løsningspakke %s har en nyere udgave i ts."
-#: ../yum/depsolve.py:507
+#: ../yum/depsolve.py:518
#, python-format
msgid "Potential resolving package %s has newer instance installed."
msgstr "Mulig løsningspakke %s har en nyere udgave installeret."
-#: ../yum/depsolve.py:515 ../yum/depsolve.py:564
+#: ../yum/depsolve.py:526 ../yum/depsolve.py:575
#, python-format
msgid "Missing Dependency: %s is needed by package %s"
msgstr "Manglende afhængighed: %s behøves af følgende pakke %s"
-#: ../yum/depsolve.py:528
+#: ../yum/depsolve.py:539
#, python-format
msgid "%s already in ts, skipping this one"
msgstr "%s er allerede i ts, springer den over"
-#: ../yum/depsolve.py:574
+#: ../yum/depsolve.py:585
#, python-format
msgid "TSINFO: Marking %s as update for %s"
msgstr "TSINFO: Markerer %s som en opdatering for %s"
-#: ../yum/depsolve.py:582
+#: ../yum/depsolve.py:593
#, python-format
msgid "TSINFO: Marking %s as install for %s"
msgstr "TSINFO: Markerer %s til installerer for %s"
-#: ../yum/depsolve.py:675 ../yum/depsolve.py:757
+#: ../yum/depsolve.py:696 ../yum/depsolve.py:778
msgid "Success - empty transaction"
msgstr "Succes -- tom overførsel"
-#: ../yum/depsolve.py:714 ../yum/depsolve.py:729
+#: ../yum/depsolve.py:735 ../yum/depsolve.py:750
msgid "Restarting Loop"
msgstr "Genstarter løkke"
-#: ../yum/depsolve.py:745
+#: ../yum/depsolve.py:766
msgid "Dependency Process ending"
msgstr "Afhængighedsproces afslutter"
-#: ../yum/depsolve.py:751
+#: ../yum/depsolve.py:772
#, python-format
msgid "%s from %s has depsolving problems"
msgstr "%s fra %s har afhængighedsproblemer"
-#: ../yum/depsolve.py:758
+#: ../yum/depsolve.py:779
msgid "Success - deps resolved"
msgstr "Succes - afhængigheder løst"
-#: ../yum/depsolve.py:772
+#: ../yum/depsolve.py:793
#, python-format
msgid "Checking deps for %s"
msgstr "Kontrollerer afhængigheder for %s"
-#: ../yum/depsolve.py:855
+#: ../yum/depsolve.py:876
#, python-format
msgid "looking for %s as a requirement of %s"
msgstr "søger efter %s som afhængighed for %s"
-#: ../yum/depsolve.py:997
+#: ../yum/depsolve.py:1018
#, python-format
msgid "Running compare_providers() for %s"
msgstr "Kører compare_providers() for %s"
-#: ../yum/depsolve.py:1031 ../yum/depsolve.py:1037
+#: ../yum/depsolve.py:1052 ../yum/depsolve.py:1058
#, python-format
msgid "better arch in po %s"
msgstr "bedre arkitektur i po %s"
-#: ../yum/depsolve.py:1099
+#: ../yum/depsolve.py:1130
#, python-format
msgid "%s obsoletes %s"
msgstr "%s overflødigør %s"
-#: ../yum/depsolve.py:1111
+#: ../yum/depsolve.py:1142
#, python-format
msgid ""
"archdist compared %s to %s on %s\n"
@@ -1597,17 +1605,17 @@ msgstr ""
"arkitekturdistribution sammenligner %s med %s på %s\n"
" Vinder: %s"
-#: ../yum/depsolve.py:1118
+#: ../yum/depsolve.py:1149
#, python-format
msgid "common sourcerpm %s and %s"
msgstr "normal kilde-RPM %s og %s"
-#: ../yum/depsolve.py:1124
+#: ../yum/depsolve.py:1155
#, python-format
msgid "common prefix of %s between %s and %s"
msgstr "normal præfiks af %s mellem %s og %s"
-#: ../yum/depsolve.py:1132
+#: ../yum/depsolve.py:1163
#, python-format
msgid "Best Order: %s"
msgstr "Bedste orden: %s"
@@ -1633,67 +1641,67 @@ msgstr "doRpmDBSetup() vil forsvinde i en fremtidig version af Yum.\n"
msgid "Reading Local RPMDB"
msgstr "Læser lokal RPMDB"
-#: ../yum/__init__.py:441
+#: ../yum/__init__.py:444
msgid "doRepoSetup() will go away in a future version of Yum.\n"
msgstr "doRepoSetup() vil forsvinde i en fremtidig version af Yum.\n"
-#: ../yum/__init__.py:461
+#: ../yum/__init__.py:464
msgid "doSackSetup() will go away in a future version of Yum.\n"
msgstr "doSackSetup() vil forsvinde i en fremtidig version af Yum.\n"
-#: ../yum/__init__.py:478
+#: ../yum/__init__.py:481
msgid "Setting up Package Sacks"
msgstr "Opsætning af pakkelister"
-#: ../yum/__init__.py:521
+#: ../yum/__init__.py:524
#, python-format
msgid "repo object for repo %s lacks a _resetSack method\n"
msgstr "kildeobjekt for kilde %s mangler en _resetSack-metode\n"
-#: ../yum/__init__.py:522
+#: ../yum/__init__.py:525
msgid "therefore this repo cannot be reset.\n"
msgstr "derfor kan dette pakkearkiv ikke blive nulstillet.\n"
-#: ../yum/__init__.py:527
+#: ../yum/__init__.py:530
msgid "doUpdateSetup() will go away in a future version of Yum.\n"
msgstr "doUpdateSetup() vil forsvinde i en fremtidig version af Yum.\n"
-#: ../yum/__init__.py:539
+#: ../yum/__init__.py:542
msgid "Building updates object"
msgstr "Bygger opdateringsobjekt"
-#: ../yum/__init__.py:570
+#: ../yum/__init__.py:573
msgid "doGroupSetup() will go away in a future version of Yum.\n"
msgstr "doGroupSetup() vil forsvinde i en fremtidig version af Yum.\n"
-#: ../yum/__init__.py:595
+#: ../yum/__init__.py:598
msgid "Getting group metadata"
msgstr "Henter gruppemetadata"
-#: ../yum/__init__.py:621
+#: ../yum/__init__.py:624
#, python-format
msgid "Adding group file from repository: %s"
msgstr "Tilfører gruppefil fra pakkearkiv: %s"
-#: ../yum/__init__.py:630
+#: ../yum/__init__.py:633
#, python-format
msgid "Failed to add groups file for repository: %s - %s"
msgstr "Tilføjelse af gruppefil fejlede for følgende pakkearkiv: %s - %s"
-#: ../yum/__init__.py:636
+#: ../yum/__init__.py:639
msgid "No Groups Available in any repository"
msgstr "Ingen tilgængelige grupper i noget pakkearkiv"
-#: ../yum/__init__.py:686
+#: ../yum/__init__.py:689
msgid "Importing additional filelist information"
msgstr "Importerer yderligere information om filliste"
-#: ../yum/__init__.py:700
+#: ../yum/__init__.py:703
#, python-format
msgid "The program %s%s%s is found in the yum-utils package."
msgstr "Programmet %s%s%s er fundet i yum-utils-pakken."
-#: ../yum/__init__.py:708
+#: ../yum/__init__.py:711
msgid ""
"There are unfinished transactions remaining. You might consider running yum-"
"complete-transaction first to finish them."
@@ -1701,17 +1709,17 @@ msgstr ""
"Der er uafsluttede overførsler tilbage. Du bør overveje at køre yum-complete-"
"transaction først for at afslutte dem."
-#: ../yum/__init__.py:775
+#: ../yum/__init__.py:779
#, python-format
msgid "Skip-broken round %i"
msgstr "Skip-broken runde %i"
-#: ../yum/__init__.py:827
+#: ../yum/__init__.py:831
#, python-format
msgid "Skip-broken took %i rounds "
msgstr "Skip-broken tog %i runder "
-#: ../yum/__init__.py:828
+#: ../yum/__init__.py:832
msgid ""
"\n"
"Packages skipped because of dependency problems:"
@@ -1719,90 +1727,104 @@ msgstr ""
"\n"
"Pakker sprunget over på grund af problemer med afhængigheder:"
-#: ../yum/__init__.py:832
+#: ../yum/__init__.py:836
#, python-format
msgid " %s from %s"
msgstr " %s fra %s"
-#: ../yum/__init__.py:972
+#: ../yum/__init__.py:976
msgid ""
"Warning: scriptlet or other non-fatal errors occurred during transaction."
msgstr ""
"Advarsel: skriptlet eller andre ikke-fatale fejl opstod under overførslen."
-#: ../yum/__init__.py:987
+#: ../yum/__init__.py:991
#, python-format
msgid "Failed to remove transaction file %s"
msgstr "Kunne ikke slette transaktionsfilen %s"
-#: ../yum/__init__.py:1051
+#. maybe a file log here, too
+#. but raising an exception is not going to do any good
+#: ../yum/__init__.py:1020
+#, python-format
+msgid "%s was supposed to be installed but is not!"
+msgstr "%s skulle være blevet installeret, men det blev den ikke!"
+
+#. maybe a file log here, too
+#. but raising an exception is not going to do any good
+#: ../yum/__init__.py:1046
+#, python-format
+msgid "%s was supposed to be removed but is not!"
+msgstr "%s skulle være blevet fjernet, men det blev den ikke!"
+
+#: ../yum/__init__.py:1092
#, python-format
msgid "excluding for cost: %s from %s"
msgstr "ekskluderer for cost: %s fra %s"
-#: ../yum/__init__.py:1082
+#: ../yum/__init__.py:1123
msgid "Excluding Packages in global exclude list"
msgstr "Ekskluderer pakker i den globale ekskluderingsliste"
-#: ../yum/__init__.py:1084
+#: ../yum/__init__.py:1125
#, python-format
msgid "Excluding Packages from %s"
msgstr "Ekskluderer pakker fra %s"
-#: ../yum/__init__.py:1113
+#: ../yum/__init__.py:1154
#, python-format
msgid "Reducing %s to included packages only"
msgstr "Reducerer %s til kun at indholde inkluderede pakker"
-#: ../yum/__init__.py:1119
+#: ../yum/__init__.py:1160
#, python-format
msgid "Keeping included package %s"
msgstr "Beholder inkluderet pakke %s"
-#: ../yum/__init__.py:1125
+#: ../yum/__init__.py:1166
#, python-format
msgid "Removing unmatched package %s"
msgstr "Sletter umatchende pakke %s"
-#: ../yum/__init__.py:1128
+#: ../yum/__init__.py:1169
msgid "Finished"
msgstr "Afsluttet"
#. Whoa. What the heck happened?
-#: ../yum/__init__.py:1158
+#: ../yum/__init__.py:1199
#, python-format
msgid "Unable to check if PID %s is active"
msgstr "Kunne ikke kontrollere om PID %s er aktiv"
#. Another copy seems to be running.
-#: ../yum/__init__.py:1162
+#: ../yum/__init__.py:1203
#, python-format
msgid "Existing lock %s: another copy is running as pid %s."
msgstr "Lås fundet %s: en anden kopi kører som PID %s."
-#: ../yum/__init__.py:1239
+#: ../yum/__init__.py:1280
msgid "Package does not match intended download"
msgstr "Pakken matcher ikke den planlagte nedhentning"
-#: ../yum/__init__.py:1254
+#: ../yum/__init__.py:1295
msgid "Could not perform checksum"
msgstr "Kunne ikke udføre checksum"
-#: ../yum/__init__.py:1257
+#: ../yum/__init__.py:1298
msgid "Package does not match checksum"
msgstr "Pakken matcher ikke checksum"
-#: ../yum/__init__.py:1299
+#: ../yum/__init__.py:1340
#, python-format
msgid "package fails checksum but caching is enabled for %s"
msgstr "pakken fejlede checksum, men mellemlagring er aktiveret for %s"
-#: ../yum/__init__.py:1302 ../yum/__init__.py:1331
+#: ../yum/__init__.py:1343 ../yum/__init__.py:1372
#, python-format
msgid "using local copy of %s"
msgstr "bruger lokal kopi af %s"
-#: ../yum/__init__.py:1343
+#: ../yum/__init__.py:1384
#, python-format
msgid ""
"Insufficient space in download directory %s\n"
@@ -1813,11 +1835,11 @@ msgstr ""
" * fri %s\n"
" * behøvet %s"
-#: ../yum/__init__.py:1390
+#: ../yum/__init__.py:1433
msgid "Header is not complete."
msgstr "Headerfil er ikke komplet."
-#: ../yum/__init__.py:1427
+#: ../yum/__init__.py:1470
#, python-format
msgid ""
"Header not in local cache and caching-only mode enabled. Cannot download %s"
@@ -1825,62 +1847,62 @@ msgstr ""
"Headerfil er ikke i lokal cache og kun-caching-tilstand er aktiveret. Kan "
"ikke hente %s"
-#: ../yum/__init__.py:1482
+#: ../yum/__init__.py:1525
#, python-format
msgid "Public key for %s is not installed"
msgstr "Offentlig nøgle for %s er ikke installeret"
-#: ../yum/__init__.py:1486
+#: ../yum/__init__.py:1529
#, python-format
msgid "Problem opening package %s"
msgstr "Kunne ikke åbne pakke %s"
-#: ../yum/__init__.py:1494
+#: ../yum/__init__.py:1537
#, python-format
msgid "Public key for %s is not trusted"
msgstr "Offentlig nøgle for %s er ikke sikker"
-#: ../yum/__init__.py:1498
+#: ../yum/__init__.py:1541
#, python-format
msgid "Package %s is not signed"
msgstr "Pakken %s er ikke signeret"
-#: ../yum/__init__.py:1536
+#: ../yum/__init__.py:1579
#, python-format
msgid "Cannot remove %s"
msgstr "Kan ikke slette %s"
-#: ../yum/__init__.py:1540
+#: ../yum/__init__.py:1583
#, python-format
msgid "%s removed"
msgstr "%s slettet"
-#: ../yum/__init__.py:1576
+#: ../yum/__init__.py:1619
#, python-format
msgid "Cannot remove %s file %s"
msgstr "Kan ikke slette %s filen %s"
-#: ../yum/__init__.py:1580
+#: ../yum/__init__.py:1623
#, python-format
msgid "%s file %s removed"
msgstr "%s filen %s er slettet"
-#: ../yum/__init__.py:1582
+#: ../yum/__init__.py:1625
#, python-format
msgid "%d %s files removed"
msgstr "%d %s filer slettet"
-#: ../yum/__init__.py:1651
+#: ../yum/__init__.py:1694
#, python-format
msgid "More than one identical match in sack for %s"
msgstr "Mere end et identisk match i liste for %s"
-#: ../yum/__init__.py:1657
+#: ../yum/__init__.py:1700
#, python-format
msgid "Nothing matches %s.%s %s:%s-%s from update"
msgstr "Ingen opdateringer matcher %s.%s %s:%s-%s"
-#: ../yum/__init__.py:1875
+#: ../yum/__init__.py:1933
msgid ""
"searchPackages() will go away in a future version of "
"Yum. Use searchGenerator() instead. \n"
@@ -1888,173 +1910,173 @@ msgstr ""
"searchPackages() vil forsvinde i en fremtidig version af "
"Yum. Brug searchGenerator() istedet. \n"
-#: ../yum/__init__.py:1917
+#: ../yum/__init__.py:1975
#, python-format
msgid "Searching %d packages"
msgstr "Genemsøger %d pakker"
-#: ../yum/__init__.py:1921
+#: ../yum/__init__.py:1979
#, python-format
msgid "searching package %s"
msgstr "gennemsøger pakke %s"
-#: ../yum/__init__.py:1933
+#: ../yum/__init__.py:1991
msgid "searching in file entries"
msgstr "gennemsøger filopslag"
-#: ../yum/__init__.py:1940
+#: ../yum/__init__.py:1998
msgid "searching in provides entries"
msgstr "søger efter afhængigheder"
-#: ../yum/__init__.py:1973
+#: ../yum/__init__.py:2031
#, python-format
msgid "Provides-match: %s"
msgstr "Leverer match: %s"
-#: ../yum/__init__.py:2022
+#: ../yum/__init__.py:2080
msgid "No group data available for configured repositories"
msgstr "Ingen tilgængelige gruppedata i konfigurerede pakkearkiver"
-#: ../yum/__init__.py:2053 ../yum/__init__.py:2072 ../yum/__init__.py:2103
-#: ../yum/__init__.py:2109 ../yum/__init__.py:2188 ../yum/__init__.py:2192
-#: ../yum/__init__.py:2489
+#: ../yum/__init__.py:2111 ../yum/__init__.py:2130 ../yum/__init__.py:2161
+#: ../yum/__init__.py:2167 ../yum/__init__.py:2246 ../yum/__init__.py:2250
+#: ../yum/__init__.py:2547
#, python-format
msgid "No Group named %s exists"
msgstr "Gruppen %s findes ikke"
-#: ../yum/__init__.py:2084 ../yum/__init__.py:2205
+#: ../yum/__init__.py:2142 ../yum/__init__.py:2263
#, python-format
msgid "package %s was not marked in group %s"
msgstr "pakken %s var ikke markeret i gruppen %s"
-#: ../yum/__init__.py:2131
+#: ../yum/__init__.py:2189
#, python-format
msgid "Adding package %s from group %s"
msgstr "Tilføjer pakken %s fra gruppen %s"
-#: ../yum/__init__.py:2135
+#: ../yum/__init__.py:2193
#, python-format
msgid "No package named %s available to be installed"
msgstr "Pakken %s er ikke tilgængelig til installation"
-#: ../yum/__init__.py:2232
+#: ../yum/__init__.py:2290
#, python-format
msgid "Package tuple %s could not be found in packagesack"
msgstr "Pakken %s kunne ikke findes i pakkeliste"
-#: ../yum/__init__.py:2246
+#: ../yum/__init__.py:2304
msgid ""
"getInstalledPackageObject() will go away, use self.rpmdb.searchPkgTuple().\n"
msgstr ""
"getInstalledPackageObject() vil forsvinde, brug self.rpmdb.searchPkgTuple"
"().\n"
-#: ../yum/__init__.py:2302 ../yum/__init__.py:2347
+#: ../yum/__init__.py:2360 ../yum/__init__.py:2405
msgid "Invalid version flag"
msgstr "Ugyldig versionsflag"
-#: ../yum/__init__.py:2317 ../yum/__init__.py:2322
+#: ../yum/__init__.py:2375 ../yum/__init__.py:2380
#, python-format
msgid "No Package found for %s"
msgstr "Ingen pakke fundet for %s"
-#: ../yum/__init__.py:2522
+#: ../yum/__init__.py:2580
msgid "Package Object was not a package object instance"
msgstr "Pakkeobjektet er ikke en pakkeobjektinstans"
-#: ../yum/__init__.py:2526
+#: ../yum/__init__.py:2584
msgid "Nothing specified to install"
msgstr "Der er intet angivet til installation"
-#: ../yum/__init__.py:2542 ../yum/__init__.py:3211
+#: ../yum/__init__.py:2600 ../yum/__init__.py:3312
#, python-format
msgid "Checking for virtual provide or file-provide for %s"
msgstr "Kontrollerer for virtueludbyder eller filudbyder for %s"
-#: ../yum/__init__.py:2548 ../yum/__init__.py:2824 ../yum/__init__.py:2984
-#: ../yum/__init__.py:3217
+#: ../yum/__init__.py:2606 ../yum/__init__.py:2882 ../yum/__init__.py:3045
+#: ../yum/__init__.py:3318
#, python-format
msgid "No Match for argument: %s"
msgstr "Ingen match for argument: %s"
-#: ../yum/__init__.py:2622
+#: ../yum/__init__.py:2680
#, python-format
msgid "Package %s installed and not available"
msgstr "Pakken %s installeret og ikke tilgængelig"
-#: ../yum/__init__.py:2625
+#: ../yum/__init__.py:2683
msgid "No package(s) available to install"
msgstr "Ingen pakke(r) er tilgængelig(e) til installation"
-#: ../yum/__init__.py:2637
+#: ../yum/__init__.py:2695
#, python-format
msgid "Package: %s - already in transaction set"
msgstr "Pakken: %s - allerede i overførselssættet"
-#: ../yum/__init__.py:2652
+#: ../yum/__init__.py:2710
#, python-format
msgid "Package %s is obsoleted by %s, trying to install %s instead"
msgstr "Pakke %s er overflødiggjort af %s, prøver at installere %s istedet"
-#: ../yum/__init__.py:2660
+#: ../yum/__init__.py:2718
#, python-format
msgid "Package %s already installed and latest version"
msgstr "Pakke %s er allerede installeret i den nyeste version"
-#: ../yum/__init__.py:2674
+#: ../yum/__init__.py:2732
#, python-format
msgid "Package matching %s already installed. Checking for update."
msgstr "Pakken som matcher %s er allerede installeret. Søger efter opdatering."
#. update everything (the easy case)
-#: ../yum/__init__.py:2760
+#: ../yum/__init__.py:2818
msgid "Updating Everything"
msgstr "Opdaterer alt"
-#: ../yum/__init__.py:2778 ../yum/__init__.py:2886 ../yum/__init__.py:2907
-#: ../yum/__init__.py:2933
+#: ../yum/__init__.py:2836 ../yum/__init__.py:2947 ../yum/__init__.py:2968
+#: ../yum/__init__.py:2994
#, python-format
msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
msgstr ""
"Ingen opdatering af pakke som allerede er overflødiggjort: %s.%s %s:%s-%s"
-#: ../yum/__init__.py:2813 ../yum/__init__.py:2981
+#: ../yum/__init__.py:2871 ../yum/__init__.py:3042
#, python-format
msgid "%s"
msgstr "%s"
-#: ../yum/__init__.py:2877
+#: ../yum/__init__.py:2938
#, python-format
msgid "Package is already obsoleted: %s.%s %s:%s-%s"
msgstr "Pakke er allerede overflødiggjort: %s.%s %s:%s-%s"
-#: ../yum/__init__.py:2910 ../yum/__init__.py:2936
+#: ../yum/__init__.py:2971 ../yum/__init__.py:2997
#, python-format
msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s"
msgstr ""
"Ingen opdatering af pakke som allerede er overflødiggjort: %s.%s %s:%s-%s"
-#: ../yum/__init__.py:2997
+#: ../yum/__init__.py:3058
msgid "No package matched to remove"
msgstr "Ingen pakker fundet til sletning"
-#: ../yum/__init__.py:3031 ../yum/__init__.py:3165
+#: ../yum/__init__.py:3092 ../yum/__init__.py:3183 ../yum/__init__.py:3267
#, python-format
msgid "Cannot open file: %s. Skipping."
msgstr "Kan ikke åbne fil: %s. Springer over."
-#: ../yum/__init__.py:3034 ../yum/__init__.py:3168
+#: ../yum/__init__.py:3095 ../yum/__init__.py:3186 ../yum/__init__.py:3270
#, python-format
msgid "Examining %s: %s"
msgstr "Undersøger %s: %s"
-#: ../yum/__init__.py:3042 ../yum/__init__.py:3171
+#: ../yum/__init__.py:3103 ../yum/__init__.py:3189 ../yum/__init__.py:3273
#, python-format
msgid "Cannot add package %s to transaction. Not a compatible architecture: %s"
msgstr ""
"Kan ikke tilføje pakke %s til overførsel. Ikke en kompatibel arkitektur: %s"
-#: ../yum/__init__.py:3050
+#: ../yum/__init__.py:3111
#, python-format
msgid ""
"Package %s not installed, cannot update it. Run yum install to install it "
@@ -2063,92 +2085,92 @@ msgstr ""
"Pakken %s er ikke installeret, så den kan ikke opdateres. Kør yum install "
"for at installere den istedet."
-#: ../yum/__init__.py:3085 ../yum/__init__.py:3183
+#: ../yum/__init__.py:3146 ../yum/__init__.py:3200 ../yum/__init__.py:3284
#, python-format
msgid "Excluding %s"
msgstr "Ekskluderer %s"
-#: ../yum/__init__.py:3090
+#: ../yum/__init__.py:3151
#, python-format
msgid "Marking %s to be installed"
msgstr "Markerer %s til installation"
-#: ../yum/__init__.py:3096
+#: ../yum/__init__.py:3157
#, python-format
msgid "Marking %s as an update to %s"
msgstr "Markerer %s som en opdatering til %s"
-#: ../yum/__init__.py:3103
+#: ../yum/__init__.py:3164
#, python-format
msgid "%s: does not update installed package."
msgstr "%s kan ikke opdatere installeret pakke."
-#: ../yum/__init__.py:3118
+#: ../yum/__init__.py:3216
msgid "Problem in reinstall: no package matched to remove"
msgstr "Problem med geninstallation, ingen pakke fundet til at blive slettet"
-#: ../yum/__init__.py:3130 ../yum/__init__.py:3244
+#: ../yum/__init__.py:3228 ../yum/__init__.py:3345
#, python-format
msgid "Package %s is allowed multiple installs, skipping"
msgstr "Pakke %s er tilladt at have flere installationer, springer over"
-#: ../yum/__init__.py:3144
+#: ../yum/__init__.py:3246
msgid "Problem in reinstall: no package matched to install"
msgstr "Problem med geninstallation: ingen pakke fundet til at installere"
-#: ../yum/__init__.py:3236
+#: ../yum/__init__.py:3337
msgid "No package(s) available to downgrade"
msgstr "Ingen pakke(r) er tilgængelig(e) til nedgradering"
-#: ../yum/__init__.py:3267
+#: ../yum/__init__.py:3381
#, python-format
msgid "No Match for available package: %s"
msgstr "Ingen match for tilgængelig pakke: %s"
-#: ../yum/__init__.py:3273
+#: ../yum/__init__.py:3387
#, python-format
msgid "Only Upgrade available on package: %s"
msgstr "Opgradér kun tilgængelig på pakke: %s"
-#: ../yum/__init__.py:3334
+#: ../yum/__init__.py:3449
#, python-format
msgid "Retrieving GPG key from %s"
msgstr "Henter GPG-nøgle fra %s"
-#: ../yum/__init__.py:3354
+#: ../yum/__init__.py:3469
msgid "GPG key retrieval failed: "
msgstr "Hentning af GPG-nøglen mislykkedes: "
-#: ../yum/__init__.py:3365
+#: ../yum/__init__.py:3480
#, python-format
msgid "GPG key parsing failed: key does not have value %s"
msgstr "Tolkning af GPG-nøgle mislykkedes: nøgle har ikke nogen værdi %s"
-#: ../yum/__init__.py:3397
+#: ../yum/__init__.py:3512
#, python-format
msgid "GPG key at %s (0x%s) is already installed"
msgstr "GPG-nøgle på %s (0x%s) er allerede installeret"
#. Try installing/updating GPG key
-#: ../yum/__init__.py:3402 ../yum/__init__.py:3464
+#: ../yum/__init__.py:3517 ../yum/__init__.py:3579
#, python-format
msgid "Importing GPG key 0x%s \"%s\" from %s"
msgstr "Importerer GPG-nøgle 0x%s \"%s\" fra %s"
-#: ../yum/__init__.py:3419
+#: ../yum/__init__.py:3534
msgid "Not installing key"
msgstr "Installerer ikke nøgle"
-#: ../yum/__init__.py:3425
+#: ../yum/__init__.py:3540
#, python-format
msgid "Key import failed (code %d)"
msgstr "Importering af nøgle mislykkedes (kode %d)"
-#: ../yum/__init__.py:3426 ../yum/__init__.py:3485
+#: ../yum/__init__.py:3541 ../yum/__init__.py:3600
msgid "Key imported successfully"
msgstr "Nøglen blev importet med succes"
-#: ../yum/__init__.py:3431 ../yum/__init__.py:3490
+#: ../yum/__init__.py:3546 ../yum/__init__.py:3605
#, python-format
msgid ""
"The GPG keys listed for the \"%s\" repository are already installed but they "
@@ -2159,79 +2181,79 @@ msgstr ""
"er ikke korrekt for denne pakke.\n"
"Kontrollér at konfigurationen af nøgle-URL'er er korrekt for denne kilde."
-#: ../yum/__init__.py:3440
+#: ../yum/__init__.py:3555
msgid "Import of key(s) didn't help, wrong key(s)?"
msgstr "Importering af nøgle(r) hjalp ikke, forkerte nøgle(r)?"
-#: ../yum/__init__.py:3459
+#: ../yum/__init__.py:3574
#, python-format
msgid "GPG key at %s (0x%s) is already imported"
msgstr "GPG-nøgle på %s (0x%s) er allerede importeret"
-#: ../yum/__init__.py:3479
+#: ../yum/__init__.py:3594
#, python-format
msgid "Not installing key for repo %s"
msgstr "Installerer ikke nøgle for kilde %s"
-#: ../yum/__init__.py:3484
+#: ../yum/__init__.py:3599
msgid "Key import failed"
msgstr "Importering af nøgle mislykkedes"
-#: ../yum/__init__.py:3575
+#: ../yum/__init__.py:3690
msgid "Unable to find a suitable mirror."
msgstr "Kunne ikke finde et passende filspejl."
-#: ../yum/__init__.py:3577
+#: ../yum/__init__.py:3692
msgid "Errors were encountered while downloading packages."
msgstr "Fejl blev fundet under hentning af pakker."
-#: ../yum/__init__.py:3618
+#: ../yum/__init__.py:3733
#, python-format
msgid "Please report this error at %s"
msgstr "Rapportér venligst denne fejl på %s"
-#: ../yum/__init__.py:3642
+#: ../yum/__init__.py:3757
msgid "Test Transaction Errors: "
msgstr "Fejl i testoverførslen: "
#. Mostly copied from YumOutput._outKeyValFill()
-#: ../yum/plugins.py:204
+#: ../yum/plugins.py:205
msgid "Loaded plugins: "
msgstr "Indlæste udvidelsesmoduler: "
-#: ../yum/plugins.py:218 ../yum/plugins.py:224
+#: ../yum/plugins.py:219 ../yum/plugins.py:225
#, python-format
msgid "No plugin match for: %s"
msgstr "Intet udvidelsesmodul til: %s"
-#: ../yum/plugins.py:254
+#: ../yum/plugins.py:255
#, python-format
msgid "Not loading \"%s\" plugin, as it is disabled"
msgstr "Indlæser ikke \"%s\" udvidelsesmodul, fordi det er deaktiveret"
#. Give full backtrace:
-#: ../yum/plugins.py:266
+#: ../yum/plugins.py:267
#, python-format
msgid "Plugin \"%s\" can't be imported"
msgstr "Udvidelsesmodul \"%s\" kan ikke importeres"
-#: ../yum/plugins.py:273
+#: ../yum/plugins.py:274
#, python-format
msgid "Plugin \"%s\" doesn't specify required API version"
msgstr ""
"Udvidelsesmodul \"%s\" angiver ikke hvilken API-version der er påkrævet"
-#: ../yum/plugins.py:278
+#: ../yum/plugins.py:279
#, python-format
msgid "Plugin \"%s\" requires API %s. Supported API is %s."
msgstr "Udvidelsesmodul \"%s\" krævet API %s. Understøttet API er %s."
-#: ../yum/plugins.py:311
+#: ../yum/plugins.py:312
#, python-format
msgid "Loading \"%s\" plugin"
msgstr "Indlæser \"%s\" udvidelsesmodul"
-#: ../yum/plugins.py:318
+#: ../yum/plugins.py:319
#, python-format
msgid ""
"Two or more plugins with the name \"%s\" exist in the plugin search path"
@@ -2239,19 +2261,19 @@ msgstr ""
"To eller flere udvidelsesmoduler med navnet \"%s\" er fundet i søgestien for "
"udvidelsesmoduler"
-#: ../yum/plugins.py:338
+#: ../yum/plugins.py:339
#, python-format
msgid "Configuration file %s not found"
msgstr "Konfigurationsfilen %s er ikke fundet"
#. for
#. Configuration files for the plugin not found
-#: ../yum/plugins.py:341
+#: ../yum/plugins.py:342
#, python-format
msgid "Unable to find configuration file for plugin %s"
msgstr "Kunne ikke finde konfigurationsfilen til udvidelsesmodul: %s"
-#: ../yum/plugins.py:499
+#: ../yum/plugins.py:500
msgid "registration of commands not supported"
msgstr "registrering af komandoer er ikke understøttet"
@@ -2289,6 +2311,9 @@ msgstr "Ødelagt headerfil %s"
msgid "Error opening rpm %s - error %s"
msgstr "Fejl ved åbning af RPM %s - fejl %s"
+#~ msgid "Matching packages for package list to user args"
+#~ msgstr "Matcher pakker til pakkeliste baseret på brugerens argumenter"
+
#~ msgid "Parsing package install arguments"
#~ msgstr "Behandler argumenter for pakkeinstallation"
diff --git a/po/ja.po b/po/ja.po
new file mode 100644
index 0000000..6f86fc8
--- /dev/null
+++ b/po/ja.po
@@ -0,0 +1,2191 @@
+# translation of yum.master.po to ja_JP
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# Tadashi Jokagi <elf@elf.no-ip.org>, 2008-2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: yum master\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-05-07 11:34+0900\n"
+"PO-Revision-Date: 2009-05-20 03:23+0900\n"
+"Last-Translator: Tadashi Jokagi <elf@elf.no-ip.org>\n"
+"Language-Team: Japanese <ja@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: callback.py:48 output.py:922 yum/rpmtrans.py:71
+msgid "Updating"
+msgstr "更新"
+
+#: callback.py:49 yum/rpmtrans.py:72
+msgid "Erasing"
+msgstr "削除中"
+
+#: callback.py:50 callback.py:51 callback.py:53 output.py:921
+#: yum/rpmtrans.py:73 yum/rpmtrans.py:74 yum/rpmtrans.py:76
+msgid "Installing"
+msgstr "インストールしています"
+
+#: callback.py:52 callback.py:58 yum/rpmtrans.py:75
+msgid "Obsoleted"
+msgstr "不要でした"
+
+#: callback.py:54 output.py:1029
+msgid "Updated"
+msgstr "更新しました"
+
+#: callback.py:55
+msgid "Erased"
+msgstr "削除しました"
+
+#: callback.py:56 callback.py:57 callback.py:59 output.py:1027
+msgid "Installed"
+msgstr "インストールしました"
+
+#: callback.py:130
+msgid "No header - huh?"
+msgstr "ヘッダーがありません - はて?"
+
+#: callback.py:168
+msgid "Repackage"
+msgstr "再パッケージ"
+
+#: callback.py:189
+#, python-format
+msgid "Error: invalid output state: %s for %s"
+msgstr "エラー: 不正な出力状態: %s for %s"
+
+#: callback.py:212
+#, python-format
+msgid "Erased: %s"
+msgstr "削除しました: %s"
+
+#: callback.py:217 output.py:923
+msgid "Removing"
+msgstr "削除"
+
+#: callback.py:219 yum/rpmtrans.py:77
+msgid "Cleanup"
+msgstr "整理中"
+
+#: cli.py:105
+#, python-format
+msgid "Command \"%s\" already defined"
+msgstr "コマンド「%s」はすでに定義済みです"
+
+#: cli.py:117
+msgid "Setting up repositories"
+msgstr "リポジトリーの設定"
+
+#: cli.py:128
+msgid "Reading repository metadata in from local files"
+msgstr "ローカルファイルからリポジトリーのメタデータを読み込んでいます"
+
+#: cli.py:192 utils.py:79
+#, python-format
+msgid "Config Error: %s"
+msgstr "設定エラー: %s"
+
+#: cli.py:195 cli.py:1190 utils.py:82
+#, python-format
+msgid "Options Error: %s"
+msgstr "オプションエラー: %s"
+
+#: cli.py:223
+#, python-format
+msgid " Installed: %s-%s at %s"
+msgstr ""
+
+#: cli.py:225
+#, python-format
+msgid " Built : %s at %s"
+msgstr ""
+
+#: cli.py:227
+#, python-format
+msgid " Committed: %s at %s"
+msgstr ""
+
+#: cli.py:266
+msgid "You need to give some command"
+msgstr "いくつかのコマンドを指定する必要があります"
+
+#: cli.py:309
+msgid "Disk Requirements:\n"
+msgstr "ディスク要求:\n"
+
+#: cli.py:311
+#, python-format
+msgid " At least %dMB needed on the %s filesystem.\n"
+msgstr " 少なくとも %d MB の空き容量がファイルシステム %s で必要です。\n"
+
+#: cli.py:316
+msgid ""
+"Error Summary\n"
+"-------------\n"
+msgstr ""
+"エラーの要約\n"
+"-------------\n"
+
+#: cli.py:359
+msgid "Trying to run the transaction but nothing to do. Exiting."
+msgstr ""
+"トランザクションの実行を試みましたが、何もありませんでした。終了します。"
+
+#: cli.py:395
+msgid "Exiting on user Command"
+msgstr "ユーザーコマンドを終了しています"
+
+#: cli.py:399
+msgid "Downloading Packages:"
+msgstr "パッケージをダウンロードしています:"
+
+#: cli.py:404
+msgid "Error Downloading Packages:\n"
+msgstr "パッケージのダウンロードでエラー:\n"
+
+#: cli.py:418 yum/__init__.py:3362
+msgid "Running rpm_check_debug"
+msgstr "rpm_check_debug を実行しています"
+
+#: cli.py:421 yum/__init__.py:3365
+msgid "ERROR with rpm_check_debug vs depsolve:"
+msgstr ""
+
+#: cli.py:425
+#, python-format
+msgid "Please report this error in %s"
+msgstr "%s にこのエラーを報告してください"
+
+#: cli.py:431
+msgid "Running Transaction Test"
+msgstr "トランザクションのテストを実行しています"
+
+#: cli.py:447
+msgid "Finished Transaction Test"
+msgstr "トランザクションのテストを終了しました"
+
+#: cli.py:449
+msgid "Transaction Check Error:\n"
+msgstr "トランザクションの確認エラー\n"
+
+#: cli.py:456
+msgid "Transaction Test Succeeded"
+msgstr "トランザクションのテストを成功しました"
+
+#: cli.py:477
+msgid "Running Transaction"
+msgstr "トランザクションを実行しています"
+
+#: cli.py:507
+msgid ""
+"Refusing to automatically import keys when running unattended.\n"
+"Use \"-y\" to override."
+msgstr ""
+
+#: cli.py:526 cli.py:560
+msgid " * Maybe you meant: "
+msgstr ""
+
+#: cli.py:543 cli.py:551
+#, python-format
+msgid "Package(s) %s%s%s available, but not installed."
+msgstr "パッケージ %s%s%s は利用できますが、インストールしませんでした。"
+
+#: cli.py:557 cli.py:590
+#, python-format
+msgid "No package %s%s%s available."
+msgstr "パッケージ %s%s%s は利用できません。"
+
+#: cli.py:595 cli.py:670 yumcommands.py:1010
+msgid "Package(s) to install"
+msgstr "インストールするパッケージ"
+
+#: cli.py:596 cli.py:671 yumcommands.py:159 yumcommands.py:1011
+msgid "Nothing to do"
+msgstr "何もしません"
+
+#: cli.py:629
+#, python-format
+msgid "%d packages marked for Update"
+msgstr "%d 個のパッケージが更新の設定しました"
+
+#: cli.py:632
+msgid "No Packages marked for Update"
+msgstr "更新と設定されたパッケージがありません"
+
+#: cli.py:646
+#, python-format
+msgid "%d packages marked for removal"
+msgstr "%d 個のパッケージが削除の設定しました"
+
+#: cli.py:649
+msgid "No Packages marked for removal"
+msgstr "削除と設定されたパッケージがありません"
+
+#: cli.py:661
+msgid "No Packages Provided"
+msgstr "パッケージが提供されていません"
+
+#: cli.py:716
+msgid "Matching packages for package list to user args"
+msgstr "ユーザーの引数にパッケージ一覧のパッケージを一致させています"
+
+#: cli.py:765
+#, python-format
+msgid "Warning: No matches found for: %s"
+msgstr "警告: 一致するものが見つかりません: %s"
+
+#: cli.py:768
+msgid "No Matches found"
+msgstr "見つかりませんでした"
+
+#: cli.py:807
+#, 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:823
+#, python-format
+msgid "No Package Found for %s"
+msgstr "%s のパッケージが見つかりません"
+
+#: cli.py:835
+msgid "Cleaning up Everything"
+msgstr "すべて掃除しています"
+
+#: cli.py:849
+msgid "Cleaning up Headers"
+msgstr "ヘッダーを掃除しています"
+
+#: cli.py:852
+msgid "Cleaning up Packages"
+msgstr "パッケージを掃除しています"
+
+#: cli.py:855
+msgid "Cleaning up xml metadata"
+msgstr "XML メタデータを掃除しています"
+
+#: cli.py:858
+msgid "Cleaning up database cache"
+msgstr "データベースキャッシュを掃除しています"
+
+#: cli.py:861
+msgid "Cleaning up expire-cache metadata"
+msgstr "期限切れのメタデータキャッシュを掃除しています"
+
+#: cli.py:864
+msgid "Cleaning up plugins"
+msgstr "プラグインを掃除しています"
+
+#: cli.py:889
+msgid "Installed Groups:"
+msgstr "インストール済みグループ:"
+
+#: cli.py:896
+msgid "Available Groups:"
+msgstr "利用可能なグループ"
+
+#: cli.py:902
+msgid "Done"
+msgstr "完了"
+
+#: cli.py:913 cli.py:931 cli.py:937 yum/__init__.py:2410
+#, python-format
+msgid "Warning: Group %s does not exist."
+msgstr "警告: グループ %s が存在しません。"
+
+#: cli.py:941
+msgid "No packages in any requested group available to install or update"
+msgstr ""
+
+#: cli.py:943
+#, python-format
+msgid "%d Package(s) to Install"
+msgstr "%d 個のパッケージをインストールします"
+
+#: cli.py:953 yum/__init__.py:2422
+#, python-format
+msgid "No group named %s exists"
+msgstr "グループ名 %s が存在しません"
+
+#: cli.py:959
+msgid "No packages to remove from groups"
+msgstr "グループから削除するパッケージがありません"
+
+#: cli.py:961
+#, python-format
+msgid "%d Package(s) to remove"
+msgstr "%d 個のパッケージを削除します"
+
+#: cli.py:1003
+#, python-format
+msgid "Package %s is already installed, skipping"
+msgstr "パッケージ %s は既にインストールされているので飛ばします"
+
+#: cli.py:1014
+#, python-format
+msgid "Discarding non-comparable pkg %s.%s"
+msgstr "非互換のパッケージ %s.%s を破棄しています"
+
+#: cli.py:1040
+#, python-format
+msgid "No other %s installed, adding to list for potential install"
+msgstr ""
+
+#: cli.py:1059
+#, python-format
+msgid "Command line error: %s"
+msgstr "コマンドラインエラー: %s"
+
+#: cli.py:1072
+#, python-format
+msgid ""
+"\n"
+"\n"
+"%s: %s option requires an argument"
+msgstr ""
+"\n"
+"\n"
+"%s: オプション %sは引数が必要です "
+
+#: cli.py:1130
+msgid "--color takes one of: auto, always, never"
+msgstr "--color がとることができる値な次のうちひとつです: auto、always、never"
+
+#: cli.py:1232
+msgid "show this help message and exit"
+msgstr "このヘルプメッセージを表示して終了する"
+
+#: cli.py:1236
+msgid "be tolerant of errors"
+msgstr ""
+
+#: cli.py:1238
+msgid "run entirely from cache, don't update cache"
+msgstr "キャッシュから完全に実行します。キャッシュを更新しません"
+
+#: cli.py:1240
+msgid "config file location"
+msgstr "構成ファイルの場所"
+
+#: cli.py:1242
+msgid "maximum command wait time"
+msgstr "コマンドの最大待ち時間"
+
+#: cli.py:1244
+msgid "debugging output level"
+msgstr "デバッグ情報の出力レベル"
+
+#: cli.py:1248
+msgid "show duplicates, in repos, in list/search commands"
+msgstr "一覧/検索コマンドのリポジトリーの重複の表示"
+
+#: cli.py:1250
+msgid "error output level"
+msgstr "エラー出力レベル"
+
+#: cli.py:1253
+msgid "quiet operation"
+msgstr "静かに処理をする"
+
+#: cli.py:1255
+msgid "verbose operation"
+msgstr "冗長に処理をする"
+
+#: cli.py:1257
+msgid "answer yes for all questions"
+msgstr "すべての問い合わせに「yes」で答える"
+
+#: cli.py:1259
+msgid "show Yum version and exit"
+msgstr "Yum のバージョンを表示して終了する"
+
+#: cli.py:1260
+msgid "set install root"
+msgstr "インストールのベースディレクトリを設定する"
+
+#: cli.py:1264
+msgid "enable one or more repositories (wildcards allowed)"
+msgstr "ひとつ以上のリポジトリーを有効にする (ワイルドカード許可)"
+
+#: cli.py:1268
+msgid "disable one or more repositories (wildcards allowed)"
+msgstr "ひとつ以上のリポジトリーを無効にする (ワイルドカード許可)"
+
+#: cli.py:1271
+msgid "exclude package(s) by name or glob"
+msgstr "名前かワイルドカードでパッケージを除外する"
+
+#: cli.py:1273
+msgid "disable exclude from main, for a repo or for everything"
+msgstr ""
+
+#: cli.py:1276
+msgid "enable obsoletes processing during updates"
+msgstr "更新中に不要な処理を有効にします"
+
+#: cli.py:1278
+msgid "disable Yum plugins"
+msgstr "Yum プラグインを無効にする"
+
+#: cli.py:1280
+msgid "disable gpg signature checking"
+msgstr "GPG 署名の確認を無効にする"
+
+#: cli.py:1282
+msgid "disable plugins by name"
+msgstr "名前でプラグインを無効にする"
+
+#: cli.py:1285
+msgid "enable plugins by name"
+msgstr "名前でプラグインを有効にする"
+
+#: cli.py:1288
+msgid "skip packages with depsolving problems"
+msgstr "依存性に問題があるパッケージを飛ばす"
+
+#: cli.py:1290
+msgid "control whether color is used"
+msgstr ""
+
+#: output.py:298
+msgid "Jan"
+msgstr "1 月"
+
+#: output.py:298
+msgid "Feb"
+msgstr "2 月"
+
+#: output.py:298
+msgid "Mar"
+msgstr "3 月"
+
+#: output.py:298
+msgid "Apr"
+msgstr "4 月"
+
+#: output.py:298
+msgid "May"
+msgstr "5 月"
+
+#: output.py:298
+msgid "Jun"
+msgstr "6 月"
+
+#: output.py:299
+msgid "Jul"
+msgstr "7 月"
+
+#: output.py:299
+msgid "Aug"
+msgstr "8 月"
+
+#: output.py:299
+msgid "Sep"
+msgstr "9 月"
+
+#: output.py:299
+msgid "Oct"
+msgstr "10 月"
+
+#: output.py:299
+msgid "Nov"
+msgstr "11 月"
+
+#: output.py:299
+msgid "Dec"
+msgstr "12 月"
+
+#: output.py:309
+msgid "Trying other mirror."
+msgstr "他のミラーを試します。"
+
+#: output.py:525
+#, python-format
+msgid "Name : %s%s%s"
+msgstr "名前 : %s%s%s"
+
+#: output.py:526
+#, python-format
+msgid "Arch : %s"
+msgstr "アーキテクチャ: %s"
+
+#: output.py:528
+#, python-format
+msgid "Epoch : %s"
+msgstr "エポック : %s"
+
+#: output.py:529
+#, python-format
+msgid "Version : %s"
+msgstr "バージョン : %s"
+
+#: output.py:530
+#, python-format
+msgid "Release : %s"
+msgstr "リリース : %s"
+
+#: output.py:531
+#, python-format
+msgid "Size : %s"
+msgstr "容量 : %s"
+
+#: output.py:532
+#, python-format
+msgid "Repo : %s"
+msgstr "リポジトリー : %s"
+
+#: output.py:534
+#, python-format
+msgid "Committer : %s"
+msgstr "コミット者 : %s"
+
+#: output.py:535
+#, python-format
+msgid "Committime : %s"
+msgstr "コミット日時 : %s"
+
+#: output.py:536
+#, python-format
+msgid "Buildtime : %s"
+msgstr "ビルド日時 : %s"
+
+#: output.py:538
+#, python-format
+msgid "Installtime: %s"
+msgstr "インストール日時 : %s "
+
+#: output.py:539
+msgid "Summary : "
+msgstr "要約 : "
+
+#: output.py:541
+#, python-format
+msgid "URL : %s"
+msgstr "URL : %s"
+
+#: output.py:542
+#, python-format
+msgid "License : %s"
+msgstr "ライセンス : %s"
+
+#: output.py:543
+msgid "Description: "
+msgstr "説明 : "
+
+#: output.py:611
+msgid "y"
+msgstr "y"
+
+#: output.py:611
+msgid "yes"
+msgstr "はい"
+
+#: output.py:612
+msgid "n"
+msgstr "n"
+
+#: output.py:612
+msgid "no"
+msgstr "いいえ"
+
+# REMEMBER to Translate [Y/N] to the current locale
+#: output.py:616
+msgid "Is this ok [y/N]: "
+msgstr "これでいいですか? [y/N]"
+
+#: output.py:704
+#, python-format
+msgid ""
+"\n"
+"Group: %s"
+msgstr ""
+"\n"
+"グループ: %s"
+
+#: output.py:708
+#, python-format
+msgid " Group-Id: %s"
+msgstr " グループ ID: %s"
+
+#: output.py:713
+#, python-format
+msgid " Description: %s"
+msgstr " 説明: %s"
+
+#: output.py:715
+msgid " Mandatory Packages:"
+msgstr " 強制的なパッケージ:"
+
+#: output.py:716
+msgid " Default Packages:"
+msgstr " 標準パッケージ:"
+
+#: output.py:717
+msgid " Optional Packages:"
+msgstr " オプションパッケージ:"
+
+#: output.py:718
+msgid " Conditional Packages:"
+msgstr " 条件付パッケージ:"
+
+#: output.py:738
+#, python-format
+msgid "package: %s"
+msgstr "パッケージ : %s"
+
+#: output.py:740
+msgid " No dependencies for this package"
+msgstr " このパッケージの依存はありません"
+
+#: output.py:745
+#, python-format
+msgid " dependency: %s"
+msgstr " 依存性 : %s"
+
+#: output.py:747
+msgid " Unsatisfied dependency"
+msgstr " 満たされていない依存性"
+
+#: output.py:819
+#, python-format
+msgid "Repo : %s"
+msgstr "リポジトリー : %s"
+
+#: output.py:820
+msgid "Matched from:"
+msgstr ""
+
+#: output.py:828
+msgid "Description : "
+msgstr "説明 : "
+
+#: output.py:831
+#, python-format
+msgid "URL : %s"
+msgstr "URL : %s"
+
+#: output.py:834
+#, python-format
+msgid "License : %s"
+msgstr "ライセンス : %s"
+
+#: output.py:837
+#, python-format
+msgid "Filename : %s"
+msgstr "リリース : %s"
+
+#: output.py:841
+msgid "Other : "
+msgstr "その他 : "
+
+#: output.py:874
+msgid "There was an error calculating total download size"
+msgstr "総ダウンロード容量の計算中にエラーです"
+
+#: output.py:879
+#, python-format
+msgid "Total size: %s"
+msgstr "合計容量: %s"
+
+#: output.py:882
+#, python-format
+msgid "Total download size: %s"
+msgstr "総ダウンロード容量: %s"
+
+#: output.py:924
+msgid "Installing for dependencies"
+msgstr "依存性関連でのインストールをします"
+
+#: output.py:925
+msgid "Updating for dependencies"
+msgstr "依存性関連での更新をします"
+
+#: output.py:926
+msgid "Removing for dependencies"
+msgstr "依存性関連での削除をします"
+
+#: output.py:933 output.py:1031
+msgid "Skipped (dependency problems)"
+msgstr "飛ばしました (依存性の問題)"
+
+#: output.py:954
+msgid "Package"
+msgstr ""
+
+#: output.py:954
+msgid "Arch"
+msgstr ""
+
+#: output.py:955
+msgid "Version"
+msgstr ""
+
+#: output.py:955
+msgid "Repository"
+msgstr ""
+
+#: output.py:956
+msgid "Size"
+msgstr ""
+
+#: output.py:968
+#, python-format
+msgid ""
+" replacing %s%s%s.%s %s\n"
+"\n"
+msgstr " 置き換えています %s%s%s.%s %s\n\n"
+
+#: output.py:977
+#, python-format
+msgid ""
+"\n"
+"Transaction Summary\n"
+"%s\n"
+"Install %5.5s Package(s) \n"
+"Update %5.5s Package(s) \n"
+"Remove %5.5s Package(s) \n"
+msgstr ""
+"\n"
+"トランザクションの要約\n"
+"%s\n"
+"インストール %5.5s パッケージ \n"
+"更新 %5.5s パッケージ \n"
+"削除 %5.5s パッケージ \n"
+
+#: output.py:1025
+msgid "Removed"
+msgstr "削除しました"
+
+#: output.py:1026
+msgid "Dependency Removed"
+msgstr "依存性の削除をしました"
+
+#: output.py:1028
+msgid "Dependency Installed"
+msgstr "依存性関連をインストールしました"
+
+#: output.py:1030
+msgid "Dependency Updated"
+msgstr "依存性を更新しました"
+
+#: output.py:1032
+msgid "Replaced"
+msgstr "置換しました"
+
+#: output.py:1033
+msgid "Failed"
+msgstr "失敗しました"
+
+#: output.py:1099
+msgid "two"
+msgstr ""
+
+#: output.py:1106
+#, python-format
+msgid ""
+"\n"
+" Current download cancelled, %sinterrupt (ctrl-c) again%s within %s%s%s "
+"seconds to exit.\n"
+msgstr ""
+
+#: output.py:1116
+msgid "user interrupt"
+msgstr "ユーザーの割り込み"
+
+#: output.py:1132
+msgid "Total"
+msgstr "合計"
+
+#: output.py:1146
+msgid "installed"
+msgstr "インストール"
+
+#: output.py:1147
+msgid "updated"
+msgstr "更新"
+
+#: output.py:1148
+msgid "obsoleted"
+msgstr "不要"
+
+#: output.py:1149
+msgid "erased"
+msgstr "削除"
+
+#: output.py:1153
+#, python-format
+msgid "---> Package %s.%s %s:%s-%s set to be %s"
+msgstr "---> パッケージ %s.%s %s:%s-%s を%sに設定しました"
+
+#: output.py:1160
+msgid "--> Running transaction check"
+msgstr "--> トランザクションの確認を実行しています"
+
+#: output.py:1165
+msgid "--> Restarting Dependency Resolution with new changes."
+msgstr "--> 新しい変更と依存性の解決を再開しています。"
+
+#: output.py:1170
+msgid "--> Finished Dependency Resolution"
+msgstr "--> 依存性解決を終了しました"
+
+#: output.py:1175
+#, python-format
+msgid "--> Processing Dependency: %s for package: %s"
+msgstr "--> 依存性の処理をしています: %s のパッケージ: %s"
+
+#: output.py:1180
+#, python-format
+msgid "--> Unresolved Dependency: %s"
+msgstr "--> 未解決の依存性: %s"
+
+#: output.py:1186
+#, python-format
+msgid "--> Processing Conflict: %s conflicts %s"
+msgstr "--> 衝突を処理しています: %s は %s と衝突しています"
+
+#: output.py:1189
+msgid "--> Populating transaction set with selected packages. Please wait."
+msgstr ""
+
+#: output.py:1193
+#, python-format
+msgid "---> Downloading header for %s to pack into transaction set."
+msgstr ""
+"---> トランザクションセットに束ねるために %s のヘッダーをダウンロードしていま"
+"す"
+
+#: yumcommands.py:41
+msgid "You need to be root to perform this command."
+msgstr "このコマンドを実行するには root である必要があります。"
+
+#: yumcommands.py:48
+msgid ""
+"\n"
+"You have enabled checking of packages via GPG keys. This is a good thing. \n"
+"However, you do not have any GPG public keys installed. You need to "
+"download\n"
+"the keys for packages you wish to install and install them.\n"
+"You can do that by running the command:\n"
+" rpm --import public.gpg.key\n"
+"\n"
+"\n"
+"Alternatively you can specify the url to the key you would like to use\n"
+"for a repository in the 'gpgkey' option in a repository section and yum \n"
+"will install it for you.\n"
+"\n"
+"For more information contact your distribution or package provider.\n"
+msgstr ""
+
+#: yumcommands.py:68
+#, python-format
+msgid "Error: Need to pass a list of pkgs to %s"
+msgstr "エラー: パッケージの一覧を %s に渡す必要があります"
+
+#: yumcommands.py:74
+msgid "Error: Need an item to match"
+msgstr "エラー: 一致する項目が必要です"
+
+#: yumcommands.py:80
+msgid "Error: Need a group or list of groups"
+msgstr "エラー: グループ化グループの一覧が必要です"
+
+#: yumcommands.py:89
+#, python-format
+msgid "Error: clean requires an option: %s"
+msgstr "エラー: clean は引数をひとつ要求します: %s"
+
+#: yumcommands.py:94
+#, python-format
+msgid "Error: invalid clean argument: %r"
+msgstr "エラー: 不正な clean の引数です: %r"
+
+#: yumcommands.py:107
+msgid "No argument to shell"
+msgstr "シェルへの引数がありません"
+
+#: yumcommands.py:110
+#, python-format
+msgid "Filename passed to shell: %s"
+msgstr "シェルに渡すファイル名: %s"
+
+#: yumcommands.py:114
+#, python-format
+msgid "File %s given as argument to shell does not exist."
+msgstr "シェルへの引数として渡したファイル %s は存在しません。"
+
+#: yumcommands.py:120
+msgid "Error: more than one file given as argument to shell."
+msgstr "エラー: シェルへの引数としてひとつ以上のファイルを渡しました。"
+
+#: yumcommands.py:169
+msgid "PACKAGE..."
+msgstr "パッケージ..."
+
+#: yumcommands.py:172
+msgid "Install a package or packages on your system"
+msgstr "システムにパッケージをインストールする"
+
+#: yumcommands.py:180
+msgid "Setting up Install Process"
+msgstr "インストール処理の設定をしています"
+
+#: yumcommands.py:191
+msgid "[PACKAGE...]"
+msgstr "[パッケージ...]"
+
+#: yumcommands.py:194
+msgid "Update a package or packages on your system"
+msgstr "システムのパッケージを更新する"
+
+#: yumcommands.py:201
+msgid "Setting up Update Process"
+msgstr "更新処理の設定をしています"
+
+#: yumcommands.py:243
+msgid "Display details about a package or group of packages"
+msgstr "パッケージもしくはパッケージのグループについての詳細を表示する"
+
+#: yumcommands.py:292
+msgid "Installed Packages"
+msgstr "インストール済みパッケージ"
+
+#: yumcommands.py:300
+msgid "Available Packages"
+msgstr "利用可能なパッケージ"
+
+#: yumcommands.py:304
+msgid "Extra Packages"
+msgstr "外部パッケージ"
+
+#: yumcommands.py:308
+msgid "Updated Packages"
+msgstr "更新したパッケージ"
+
+#: yumcommands.py:316 yumcommands.py:323 yumcommands.py:600
+msgid "Obsoleting Packages"
+msgstr "パッケージを不要にしています"
+
+#: yumcommands.py:325
+msgid "Recently Added Packages"
+msgstr "最近追加したパッケージ"
+
+#: yumcommands.py:332
+msgid "No matching Packages to list"
+msgstr "表示するパッケージはありません"
+
+#: yumcommands.py:346
+msgid "List a package or groups of packages"
+msgstr "パッケージグループの一覧を表示する"
+
+#: yumcommands.py:358
+msgid "Remove a package or packages from your system"
+msgstr "システムから削除するパッケージ"
+
+#: yumcommands.py:365
+msgid "Setting up Remove Process"
+msgstr "削除処理の設定をしています"
+
+#: yumcommands.py:379
+msgid "Setting up Group Process"
+msgstr "グループ処理の設定をしています"
+
+#: yumcommands.py:385
+msgid "No Groups on which to run command"
+msgstr ""
+
+#: yumcommands.py:398
+msgid "List available package groups"
+msgstr "利用できるパッケージグループの一覧"
+
+#: yumcommands.py:415
+msgid "Install the packages in a group on your system"
+msgstr "システムのグループのパッケージをインストールする"
+
+#: yumcommands.py:437
+msgid "Remove the packages in a group from your system"
+msgstr "システムからグループのパッケージを削除する"
+
+#: yumcommands.py:464
+msgid "Display details about a package group"
+msgstr "パッケージグループについての詳細を表示する"
+
+#: yumcommands.py:488
+msgid "Generate the metadata cache"
+msgstr "メタデータキャッシュを生成する"
+
+#: yumcommands.py:494
+msgid "Making cache files for all metadata files."
+msgstr "すべて飲めたデータファイルのキャッシュを作成します。"
+
+#: yumcommands.py:495
+msgid "This may take a while depending on the speed of this computer"
+msgstr ""
+
+#: yumcommands.py:516
+msgid "Metadata Cache Created"
+msgstr "メタデータのキャッシュを作成しました"
+
+#: yumcommands.py:530
+msgid "Remove cached data"
+msgstr "キャッシュデータを削除する"
+
+#: yumcommands.py:551
+msgid "Find what package provides the given value"
+msgstr ""
+
+#: yumcommands.py:571
+msgid "Check for available package updates"
+msgstr "更新に利用できるパッケージを確認する"
+
+#: yumcommands.py:620
+msgid "Search package details for the given string"
+msgstr "指定した文字列でパッケージの詳細を検索する"
+
+#: yumcommands.py:626
+msgid "Searching Packages: "
+msgstr "パッケージの検索中: "
+
+#: yumcommands.py:643
+msgid "Update packages taking obsoletes into account"
+msgstr ""
+
+#: yumcommands.py:651
+msgid "Setting up Upgrade Process"
+msgstr "更新処理の設定をしています"
+
+#: yumcommands.py:665
+msgid "Install a local RPM"
+msgstr "ローカル RPM のインストール"
+
+#: yumcommands.py:673
+msgid "Setting up Local Package Process"
+msgstr "ローカルパッケージ処理の設定をしています"
+
+#: yumcommands.py:692
+msgid "Determine which package provides the given dependency"
+msgstr ""
+
+#: yumcommands.py:695
+msgid "Searching Packages for Dependency:"
+msgstr "依存性のパッケージ検索:"
+
+#: yumcommands.py:709
+msgid "Run an interactive yum shell"
+msgstr "対話型の yum シェルを実行する"
+
+#: yumcommands.py:715
+msgid "Setting up Yum Shell"
+msgstr "Yum シェルの設定をしています"
+
+#: yumcommands.py:733
+msgid "List a package's dependencies"
+msgstr "パッケージの依存性の一覧を表示する"
+
+#: yumcommands.py:739
+msgid "Finding dependencies: "
+msgstr "依存性の検索中: "
+
+#: yumcommands.py:755
+msgid "Display the configured software repositories"
+msgstr "ソフトウェアリポジトリーの構成を表示する"
+
+#: yumcommands.py:803 yumcommands.py:804
+msgid "enabled"
+msgstr "有効"
+
+#: yumcommands.py:812 yumcommands.py:813
+msgid "disabled"
+msgstr "無効"
+
+#: yumcommands.py:827
+msgid "Repo-id : "
+msgstr "リポジトリーID : "
+
+#: yumcommands.py:828
+msgid "Repo-name : "
+msgstr "リポジトリー名 : "
+
+#: yumcommands.py:829
+msgid "Repo-status : "
+msgstr "リポジトリーの状態: "
+
+#: yumcommands.py:831
+msgid "Repo-revision: "
+msgstr "リポジトリーのリビジョン: "
+
+#: yumcommands.py:835
+msgid "Repo-tags : "
+msgstr "リポジトリータグ : "
+
+#: yumcommands.py:841
+msgid "Repo-distro-tags: "
+msgstr ""
+
+#: yumcommands.py:846
+msgid "Repo-updated: "
+msgstr ""
+
+#: yumcommands.py:848
+msgid "Repo-pkgs : "
+msgstr ""
+
+#: yumcommands.py:849
+msgid "Repo-size : "
+msgstr "リポジトリー容量 : %s"
+
+#: yumcommands.py:856
+msgid "Repo-baseurl: "
+msgstr ""
+
+#: yumcommands.py:860
+msgid "Repo-metalink: "
+msgstr ""
+
+#: yumcommands.py:863
+msgid "Repo-mirrors: "
+msgstr ""
+
+#: yumcommands.py:867
+msgid "Repo-exclude: "
+msgstr ""
+
+#: yumcommands.py:871
+msgid "Repo-include: "
+msgstr ""
+
+#: yumcommands.py:881 yumcommands.py:907
+msgid "repo id"
+msgstr ""
+
+#: yumcommands.py:895 yumcommands.py:896 yumcommands.py:910
+msgid "status"
+msgstr ""
+
+#: yumcommands.py:908
+msgid "repo name"
+msgstr ""
+
+#: yumcommands.py:934
+msgid "Display a helpful usage message"
+msgstr "役立つ使い方のメッセージを表示する"
+
+#: yumcommands.py:968
+#, python-format
+msgid "No help available for %s"
+msgstr "%s のヘルプは利用できません"
+
+#: yumcommands.py:973
+msgid ""
+"\n"
+"\n"
+"aliases: "
+msgstr ""
+"\n"
+"\n"
+"別名: "
+
+#: yumcommands.py:975
+msgid ""
+"\n"
+"\n"
+"alias: "
+msgstr ""
+"\n"
+"\n"
+"別名: "
+
+#: yumcommands.py:1003
+msgid "Setting up Reinstall Process"
+msgstr "再インストール処理の設定をしています"
+
+#: yumcommands.py:1017
+msgid "reinstall a package"
+msgstr "パッケージの再インストール"
+
+#: yummain.py:42
+msgid ""
+"\n"
+"\n"
+"Exiting on user cancel"
+msgstr ""
+"\n"
+"\n"
+"ユーザーの取り消しで終了しています"
+
+#: yummain.py:48
+msgid ""
+"\n"
+"\n"
+"Exiting on Broken Pipe"
+msgstr ""
+"\n"
+"\n"
+"パイプが壊れたため終了しています"
+
+#: yummain.py:126
+msgid "Running"
+msgstr "実行中"
+
+#: yummain.py:127
+msgid "Sleeping"
+msgstr "スリープ中"
+
+#: yummain.py:128
+msgid "Uninteruptable"
+msgstr ""
+
+#: yummain.py:129
+msgid "Zombie"
+msgstr "ゾンビ"
+
+#: yummain.py:130
+msgid "Traced/Stopped"
+msgstr ""
+
+#: yummain.py:131
+msgid "Unknown"
+msgstr "不明"
+
+#: yummain.py:135
+msgid " The other application is: PackageKit"
+msgstr " 他のアプリケーション: PackageKit"
+
+#: yummain.py:137
+#, python-format
+msgid " The other application is: %s"
+msgstr " 他のアプリケーション: %s"
+
+#: yummain.py:140
+#, python-format
+msgid " Memory : %5s RSS (%5sB VSZ)"
+msgstr " メモリー: %5s RSS (%5sB VSZ)"
+
+#: yummain.py:144
+#, python-format
+msgid " Started: %s - %s ago"
+msgstr " 開始 : %s - %s 秒経過"
+
+#: yummain.py:146
+#, python-format
+msgid " State : %s, pid: %d"
+msgstr " 状態 : %s、PID: %d"
+
+#: yummain.py:171
+msgid ""
+"Another app is currently holding the yum lock; waiting for it to exit..."
+msgstr ""
+"別のアプリケーションが現在 yum のロックを持っています。終了するまで待っていま"
+"す..."
+
+#: yummain.py:199 yummain.py:238
+#, python-format
+msgid "Error: %s"
+msgstr "エラー: %s"
+
+#: yummain.py:209 yummain.py:250
+#, python-format
+msgid "Unknown Error(s): Exit Code: %d:"
+msgstr "不明なエラー: 終了コード: %d:"
+
+#: yummain.py:216
+msgid "Resolving Dependencies"
+msgstr "依存性の解決をしています"
+
+#: yummain.py:240
+msgid " You could try using --skip-broken to work around the problem"
+msgstr " 問題を回避するために --skip-broken を用いることができません"
+
+#: yummain.py:241
+msgid ""
+" You could try running: package-cleanup --problems\n"
+" package-cleanup --dupes\n"
+" rpm -Va --nofiles --nodigest"
+msgstr ""
+" 実行を試せません: package-cleanup --problems\n"
+" package-cleanup --dupes\n"
+" rpm -Va --nofiles --nodigest"
+
+#: yummain.py:256
+msgid ""
+"\n"
+"Dependencies Resolved"
+msgstr ""
+"\n"
+"依存性を解決しました"
+
+#: yummain.py:270
+msgid "Complete!"
+msgstr "完了しました!"
+
+#: yummain.py:325
+msgid ""
+"\n"
+"\n"
+"Exiting on user cancel."
+msgstr "\n\n\nユーザーによる取り消しで終了しています。"
+
+#: yum/depsolve.py:84
+msgid "doTsSetup() will go away in a future version of Yum.\n"
+msgstr "doTsSetup() は Yum の将来のバージョンでなくなります。\n"
+
+#: yum/depsolve.py:99
+msgid "Setting up TransactionSets before config class is up"
+msgstr "構成クラスが終わる前にトランザクションセットを設定しています"
+
+#: yum/depsolve.py:150
+#, python-format
+msgid "Invalid tsflag in config file: %s"
+msgstr "構成ファイルの tsflag が不正です: %s"
+
+#: yum/depsolve.py:161
+#, python-format
+msgid "Searching pkgSack for dep: %s"
+msgstr "依存性の pkgSack を検索しています: %s"
+
+#: yum/depsolve.py:184
+#, python-format
+msgid "Potential match for %s from %s"
+msgstr ""
+
+#: yum/depsolve.py:192
+#, python-format
+msgid "Matched %s to require for %s"
+msgstr ""
+
+#: yum/depsolve.py:233
+#, python-format
+msgid "Member: %s"
+msgstr "メンバー: %s"
+
+#: yum/depsolve.py:247 yum/depsolve.py:738
+#, python-format
+msgid "%s converted to install"
+msgstr "%s をインストールに変更しました"
+
+#: yum/depsolve.py:254
+#, python-format
+msgid "Adding Package %s in mode %s"
+msgstr "モード %s にパッケージ %s を追加しています"
+
+#: yum/depsolve.py:264
+#, python-format
+msgid "Removing Package %s"
+msgstr "パッケージ %s の削除をしています"
+
+#: yum/depsolve.py:275
+#, python-format
+msgid "%s requires: %s"
+msgstr "%s の要求: %s"
+
+#: yum/depsolve.py:333
+msgid "Needed Require has already been looked up, cheating"
+msgstr "必要な要求は既に調べましたが不正をしています"
+
+#: yum/depsolve.py:343
+#, python-format
+msgid "Needed Require is not a package name. Looking up: %s"
+msgstr "必要な要求はパッケージ名ではありません。調べています: %s"
+
+#: yum/depsolve.py:350
+#, python-format
+msgid "Potential Provider: %s"
+msgstr ""
+
+#: yum/depsolve.py:373
+#, python-format
+msgid "Mode is %s for provider of %s: %s"
+msgstr ""
+
+#: yum/depsolve.py:377
+#, python-format
+msgid "Mode for pkg providing %s: %s"
+msgstr ""
+
+#: yum/depsolve.py:381
+#, python-format
+msgid "TSINFO: %s package requiring %s marked as erase"
+msgstr ""
+
+#: yum/depsolve.py:394
+#, python-format
+msgid "TSINFO: Obsoleting %s with %s to resolve dep."
+msgstr ""
+
+#: yum/depsolve.py:397
+#, python-format
+msgid "TSINFO: Updating %s to resolve dep."
+msgstr ""
+
+#: yum/depsolve.py:405
+#, python-format
+msgid "Cannot find an update path for dep for: %s"
+msgstr ""
+
+#: yum/depsolve.py:415
+#, python-format
+msgid "Unresolvable requirement %s for %s"
+msgstr "要求された %s は %s で解決しませんでした"
+
+#: yum/depsolve.py:438
+#, python-format
+msgid "Quick matched %s to require for %s"
+msgstr ""
+
+#: yum/depsolve.py:480
+#, python-format
+msgid "%s is in providing packages but it is already installed, removing."
+msgstr ""
+"%s を提供するパッケージはすでにインストールされています。削除しています。"
+
+#: yum/depsolve.py:496
+#, python-format
+msgid "Potential resolving package %s has newer instance in ts."
+msgstr ""
+
+#: yum/depsolve.py:507
+#, python-format
+msgid "Potential resolving package %s has newer instance installed."
+msgstr ""
+
+#: yum/depsolve.py:515 yum/depsolve.py:564
+#, python-format
+msgid "Missing Dependency: %s is needed by package %s"
+msgstr "依存性の欠落: %s はパッケージ %s が必要としています"
+
+#: yum/depsolve.py:528
+#, python-format
+msgid "%s already in ts, skipping this one"
+msgstr ""
+
+#: yum/depsolve.py:574
+#, python-format
+msgid "TSINFO: Marking %s as update for %s"
+msgstr "TSINFO: %s を更新として %s で設定しています"
+
+#: yum/depsolve.py:582
+#, python-format
+msgid "TSINFO: Marking %s as install for %s"
+msgstr "TSINFO: %s をインストールとして %s で設定しています"
+
+#: yum/depsolve.py:675 yum/depsolve.py:756
+msgid "Success - empty transaction"
+msgstr "成功 - 空のトランザクション"
+
+#: yum/depsolve.py:713 yum/depsolve.py:728
+msgid "Restarting Loop"
+msgstr "ループを再開しています"
+
+#: yum/depsolve.py:744
+msgid "Dependency Process ending"
+msgstr "依存性の処理を終了しています"
+
+#: yum/depsolve.py:750
+#, python-format
+msgid "%s from %s has depsolving problems"
+msgstr "%s(%s) は依存性に問題があります"
+
+#: yum/depsolve.py:757
+msgid "Success - deps resolved"
+msgstr "成功 - 依存性を解決しました"
+
+#: yum/depsolve.py:771
+#, python-format
+msgid "Checking deps for %s"
+msgstr "%s の依存性を確認しています"
+
+#: yum/depsolve.py:854
+#, python-format
+msgid "looking for %s as a requirement of %s"
+msgstr ""
+
+#: yum/depsolve.py:996
+#, python-format
+msgid "Running compare_providers() for %s"
+msgstr "%s の compare_providers() を実行しています"
+
+#: yum/depsolve.py:1024 yum/depsolve.py:1030
+#, python-format
+msgid "better arch in po %s"
+msgstr ""
+
+#: yum/depsolve.py:1091
+#, python-format
+msgid "%s obsoletes %s"
+msgstr ""
+
+#: yum/depsolve.py:1107
+#, python-format
+msgid ""
+"archdist compared %s to %s on %s\n"
+" Winner: %s"
+msgstr ""
+
+#: yum/depsolve.py:1114
+#, python-format
+msgid "common sourcerpm %s and %s"
+msgstr "%s と %s の共通ソース RPM(SRPM)"
+
+#: yum/depsolve.py:1120
+#, python-format
+msgid "common prefix of %s between %s and %s"
+msgstr "%s から %s と %s の共通接頭辞"
+
+#: yum/depsolve.py:1128
+#, python-format
+msgid "Best Order: %s"
+msgstr "最適の順序: %s"
+
+#: yum/__init__.py:176
+msgid "doConfigSetup() will go away in a future version of Yum.\n"
+msgstr "doConfigSetup() は Yum の将来のバージョンでなくなります。\n"
+
+#: yum/__init__.py:386
+#, python-format
+msgid "Repository %r is missing name in configuration, using id"
+msgstr "リポジトリー %r は構成中に名前がありませんので ID を使います"
+
+#: yum/__init__.py:424
+msgid "plugins already initialised"
+msgstr "プラグインは既に初期化されています"
+
+#: yum/__init__.py:431
+msgid "doRpmDBSetup() will go away in a future version of Yum.\n"
+msgstr "dbRpmDBSetup() は Yum の将来のバージョンでなくなります。\n"
+
+#: yum/__init__.py:441
+msgid "Reading Local RPMDB"
+msgstr "ローカルの RPMDB を読み込んでいます"
+
+#: yum/__init__.py:459
+msgid "doRepoSetup() will go away in a future version of Yum.\n"
+msgstr "doRepoSetup() は Yum の将来のバージョンでなくなります。\n"
+
+#: yum/__init__.py:479
+msgid "doSackSetup() will go away in a future version of Yum.\n"
+msgstr "doSackSetup() は Yum の将来のバージョンでなくなります。\n"
+
+#: yum/__init__.py:496
+msgid "Setting up Package Sacks"
+msgstr ""
+
+#: yum/__init__.py:539
+#, python-format
+msgid "repo object for repo %s lacks a _resetSack method\n"
+msgstr ""
+
+#: yum/__init__.py:540
+msgid "therefore this repo cannot be reset.\n"
+msgstr ""
+
+#: yum/__init__.py:545
+msgid "doUpdateSetup() will go away in a future version of Yum.\n"
+msgstr "doUpdateSetup() は Yum の将来のバージョンでなくなります。\n"
+
+#: yum/__init__.py:557
+msgid "Building updates object"
+msgstr "オブジェクトの更新を構築しています"
+
+#: yum/__init__.py:588
+msgid "doGroupSetup() will go away in a future version of Yum.\n"
+msgstr "doGroupSetup() は Yum の将来のバージョンでなくなります。\n"
+
+#: yum/__init__.py:612
+msgid "Getting group metadata"
+msgstr "グループメタデータを取得しています"
+
+#: yum/__init__.py:637
+#, python-format
+msgid "Adding group file from repository: %s"
+msgstr "リポジトリーからグループファイルを追加しています: %s"
+
+#: yum/__init__.py:642
+#, python-format
+msgid "Failed to add groups file for repository: %s - %s"
+msgstr "リポジトリーのグループファイルに追加できませんでした: %s - %s"
+
+#: yum/__init__.py:648
+msgid "No Groups Available in any repository"
+msgstr "いずれかのリポジトリーに利用できるグループはありません"
+
+#: yum/__init__.py:698
+msgid "Importing additional filelist information"
+msgstr "追加ファイル一覧情報にインポートしています"
+
+#: yum/__init__.py:706
+msgid ""
+"There are unfinished transactions remaining. You might consider running yum-"
+"complete-transaction first to finish them."
+msgstr "終了していない残作業があります。それらを終了するためにはじめに yum-complete-transaction の実行を検討するかもしれません。"
+
+#: yum/__init__.py:772
+#, python-format
+msgid "Skip-broken round %i"
+msgstr ""
+
+#: yum/__init__.py:824
+#, python-format
+msgid "Skip-broken took %i rounds "
+msgstr ""
+
+#: yum/__init__.py:825
+msgid ""
+"\n"
+"Packages skipped because of dependency problems:"
+msgstr ""
+"\n"
+"パッケージは依存関係に問題があるため、飛ばします:"
+
+#: yum/__init__.py:829
+#, python-format
+msgid " %s from %s"
+msgstr ""
+
+#: yum/__init__.py:968
+msgid ""
+"Warning: scriptlet or other non-fatal errors occurred during transaction."
+msgstr "警告: スクリプト、もしくはその他で処理の間に致命的ではないエラーが発生しました。"
+
+#: yum/__init__.py:983
+#, python-format
+msgid "Failed to remove transaction file %s"
+msgstr "トランザクションファイル %s の削除に失敗しました"
+
+#: yum/__init__.py:1025
+#, python-format
+msgid "excluding for cost: %s from %s"
+msgstr ""
+
+#: yum/__init__.py:1056
+msgid "Excluding Packages in global exclude list"
+msgstr "全体の除外一覧でパッケージを除外します"
+
+#: yum/__init__.py:1058
+#, python-format
+msgid "Excluding Packages from %s"
+msgstr "%s からパッケージを除外しています"
+
+#: yum/__init__.py:1085
+#, python-format
+msgid "Reducing %s to included packages only"
+msgstr ""
+
+#: yum/__init__.py:1091
+#, python-format
+msgid "Keeping included package %s"
+msgstr ""
+
+#: yum/__init__.py:1097
+#, python-format
+msgid "Removing unmatched package %s"
+msgstr ""
+
+#: yum/__init__.py:1100
+msgid "Finished"
+msgstr "完了しました"
+
+#: yum/__init__.py:1130
+#, python-format
+msgid "Unable to check if PID %s is active"
+msgstr ""
+
+#: yum/__init__.py:1134
+#, python-format
+msgid "Existing lock %s: another copy is running as pid %s."
+msgstr "ロックファイル %s が存在します: PID %s として別に実行されています。"
+
+#: yum/__init__.py:1204
+msgid "Package does not match intended download"
+msgstr "パッケージは意図したダウンロードと一致しません"
+
+#: yum/__init__.py:1219
+msgid "Could not perform checksum"
+msgstr "チェックサムの実行ができません"
+
+#: yum/__init__.py:1222
+msgid "Package does not match checksum"
+msgstr "パッケージのチェックサムが一致しません"
+
+#: yum/__init__.py:1265
+#, python-format
+msgid "package fails checksum but caching is enabled for %s"
+msgstr "%s のためにキャッシュを有効にしていますが、パッケージのチェックサム演算に失敗します。"
+
+#: yum/__init__.py:1268 yum/__init__.py:1297
+#, python-format
+msgid "using local copy of %s"
+msgstr "%s のローカルコピーを使う"
+
+#: yum/__init__.py:1309
+#, python-format
+msgid ""
+"Insufficient space in download directory %s\n"
+" * free %s\n"
+" * needed %s"
+msgstr ""
+"ダウンロードディレクトリー %s の空きが不十分です\n"
+" * 空き容量 %s\n"
+" * 必要容量 %s"
+
+#: yum/__init__.py:1356
+msgid "Header is not complete."
+msgstr "ヘッダーが完了していません。"
+
+#: yum/__init__.py:1393
+#, python-format
+msgid ""
+"Header not in local cache and caching-only mode enabled. Cannot download %s"
+msgstr "ヘッダーはキャッシュのみのモードが有効で、ローカルにありません。%s のダウンロードができません"
+
+#: yum/__init__.py:1448
+#, python-format
+msgid "Public key for %s is not installed"
+msgstr "%s の公開鍵がインストールされていません"
+
+#: yum/__init__.py:1452
+#, python-format
+msgid "Problem opening package %s"
+msgstr "パッケージ %s を開いている最中に問題です"
+
+#: yum/__init__.py:1460
+#, python-format
+msgid "Public key for %s is not trusted"
+msgstr "%s の公開鍵が信頼されません"
+
+#: yum/__init__.py:1464
+#, python-format
+msgid "Package %s is not signed"
+msgstr "パッケージ %s は署名されていません"
+
+#: yum/__init__.py:1502
+#, python-format
+msgid "Cannot remove %s"
+msgstr "%s を削除できません"
+
+#: yum/__init__.py:1505
+#, python-format
+msgid "%s removed"
+msgstr "%s を削除しました"
+
+#: yum/__init__.py:1541
+#, python-format
+msgid "Cannot remove %s file %s"
+msgstr "%s のファイル %s を削除できませんでした"
+
+#: yum/__init__.py:1544
+#, python-format
+msgid "%s file %s removed"
+msgstr "%s のファイル %s を削除しました"
+
+#: yum/__init__.py:1546
+#, python-format
+msgid "%d %s files removed"
+msgstr "%d %sファイルを削除しました"
+
+#: yum/__init__.py:1614
+#, python-format
+msgid "More than one identical match in sack for %s"
+msgstr ""
+
+#: yum/__init__.py:1619
+#, python-format
+msgid "Nothing matches %s.%s %s:%s-%s from update"
+msgstr "更新から %s.%s %s:%s-%s に一致しません"
+
+#: yum/__init__.py:1838
+msgid ""
+"searchPackages() will go away in a future version of "
+"Yum. Use searchGenerator() instead. \n"
+msgstr ""
+"searchPackages() は Yum の将来のバージョンでなくなりま"
+"す。 代わりに searchGenerator() を使います。\n"
+
+#: yum/__init__.py:1876
+#, python-format
+msgid "Searching %d packages"
+msgstr "%d 個のパッケージを検索しています"
+
+#: yum/__init__.py:1879
+#, python-format
+msgid "searching package %s"
+msgstr "パッケージ %s を検索しています"
+
+#: yum/__init__.py:1890
+msgid "searching in file entries"
+msgstr "ファイルのエントリーから検索しています"
+
+#: yum/__init__.py:1896
+msgid "searching in provides entries"
+msgstr "提供されたエントリーを検索しています"
+
+#: yum/__init__.py:1929
+#, python-format
+msgid "Provides-match: %s"
+msgstr ""
+
+#: yum/__init__.py:1978
+msgid "No group data available for configured repositories"
+msgstr "構成されたリポジトリーに利用できるグループはありません"
+
+#: yum/__init__.py:2009 yum/__init__.py:2028 yum/__init__.py:2058
+#: yum/__init__.py:2064 yum/__init__.py:2143 yum/__init__.py:2147
+#, python-format
+msgid "No Group named %s exists"
+msgstr "グループ名 %s が存在しません"
+
+#: yum/__init__.py:2039 yum/__init__.py:2159
+#, python-format
+msgid "package %s was not marked in group %s"
+msgstr "パッケージ%s はグループ %s で設定されていません"
+
+#: yum/__init__.py:2085
+#, python-format
+msgid "Adding package %s from group %s"
+msgstr "パッケージ %s をグループ %s から追加しています"
+
+#: yum/__init__.py:2090
+#, python-format
+msgid "No package named %s available to be installed"
+msgstr ""
+
+#: yum/__init__.py:2186
+#, python-format
+msgid "Package tuple %s could not be found in packagesack"
+msgstr ""
+
+#: yum/__init__.py:2201
+msgid ""
+"getInstalledPackageObject() will go away, use self.rpmdb.searchPkgTuple().\n"
+msgstr ""
+
+#: yum/__init__.py:2253 yum/__init__.py:2294
+msgid "Invalid version flag"
+msgstr "不正なバージョンフラグ"
+
+#: yum/__init__.py:2268 yum/__init__.py:2272
+#, python-format
+msgid "No Package found for %s"
+msgstr "%s のパッケージが見つかりません"
+
+#: yum/__init__.py:2449
+msgid "Package Object was not a package object instance"
+msgstr ""
+
+#: yum/__init__.py:2453
+msgid "Nothing specified to install"
+msgstr "インストールへの指定がありません"
+
+#: yum/__init__.py:2469
+#, python-format
+msgid "Checking for virtual provide or file-provide for %s"
+msgstr ""
+
+#: yum/__init__.py:2475 yum/__init__.py:2740 yum/__init__.py:2900
+#, python-format
+msgid "No Match for argument: %s"
+msgstr "引数に一致しません: %s"
+
+#: yum/__init__.py:2548
+#, python-format
+msgid "Package %s installed and not available"
+msgstr "パッケージ %s はインストール済みか利用できません"
+
+#: yum/__init__.py:2551
+msgid "No package(s) available to install"
+msgstr "インストールに利用できるパッケージはありません"
+
+#: yum/__init__.py:2564
+#, python-format
+msgid "Package: %s - already in transaction set"
+msgstr "パッケージ: %s - すでにトランザクション設定をしています"
+
+#: yum/__init__.py:2580
+#, python-format
+msgid "Package %s is obsoleted by %s, trying to install %s instead"
+msgstr ""
+"パッケージ %s は %s に不要です。代わりに %s のインストールを試みています"
+
+#: yum/__init__.py:2588
+#, python-format
+msgid "Package %s already installed and latest version"
+msgstr "パッケージ %s はインストール済みか最新バージョンです"
+
+#: yum/__init__.py:2595
+#, python-format
+msgid "Package matching %s already installed. Checking for update."
+msgstr ""
+"一致したパッケージ %s はすでにインストールされています。更新を確認していま"
+"す。"
+
+#: yum/__init__.py:2675
+msgid "Updating Everything"
+msgstr "すべて更新しています"
+
+#: yum/__init__.py:2693 yum/__init__.py:2802 yum/__init__.py:2823
+#: yum/__init__.py:2849
+#, python-format
+msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
+msgstr "既に不要なパッケージの更新はありません: %s.%s %s:%s-%s"
+
+#: yum/__init__.py:2728 yum/__init__.py:2897
+#, python-format
+msgid "%s"
+msgstr "%s"
+
+#: yum/__init__.py:2793
+#, python-format
+msgid "Package is already obsoleted: %s.%s %s:%s-%s"
+msgstr "パッケージは既に不要です: %s.%s %s:%s-%s"
+
+#: yum/__init__.py:2826 yum/__init__.py:2852
+#, python-format
+msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s"
+msgstr ""
+"既にアップデートされているのでパッケージをアップデートしません: %s.%s %s:%s-%"
+"s"
+
+#: yum/__init__.py:2913
+msgid "No package matched to remove"
+msgstr "削除に一致するパッケージはありません"
+
+#: yum/__init__.py:2947
+#, python-format
+msgid "Cannot open file: %s. Skipping."
+msgstr "ファイル %s が開けません。飛ばします。"
+
+#: yum/__init__.py:2949
+#, python-format
+msgid "Examining %s: %s"
+msgstr "%s を調べています: %s"
+
+#: yum/__init__.py:2957
+#, python-format
+msgid "Cannot add package %s to transaction. Not a compatible architecture: %s"
+msgstr ""
+"トランザクションにパッケージ %s を追加できません。アーキテクチャに互換性があ"
+"りません: %s"
+
+#: yum/__init__.py:2965
+#, python-format
+msgid ""
+"Package %s not installed, cannot update it. Run yum install to install it "
+"instead."
+msgstr ""
+"パッケージ %s はインストールされていないので更新できません。代わりに「yum "
+"install」を実行してインストールしてください。"
+
+#: yum/__init__.py:2998
+#, python-format
+msgid "Excluding %s"
+msgstr "%s の除外中"
+
+#: yum/__init__.py:3002
+#, python-format
+msgid "Marking %s to be installed"
+msgstr "%s をインストール済みとして設定しています"
+
+#: yum/__init__.py:3007
+#, python-format
+msgid "Marking %s as an update to %s"
+msgstr "次のリポジトリーへの更新として %s を設定します: %s"
+
+#: yum/__init__.py:3012
+#, python-format
+msgid "%s: does not update installed package."
+msgstr "%s: インストールされたパッケージを更新しません。"
+
+#: yum/__init__.py:3029
+msgid "Problem in reinstall: no package matched to remove"
+msgstr "再インストール中に問題: 削除するパッケージがありません"
+
+#: yum/__init__.py:3040
+#, python-format
+msgid "Package %s is allowed multiple installs, skipping"
+msgstr "パッケージ %s は複数インストールが許可されています。飛ばします"
+
+#: yum/__init__.py:3050
+msgid "Problem in reinstall: no package matched to install"
+msgstr "再インストール中に問題: インストールするパッケージがありません"
+
+#: yum/__init__.py:3085
+#, python-format
+msgid "Retrieving GPG key from %s"
+msgstr "%s から GPG 鍵を取得しています"
+
+#: yum/__init__.py:3105
+msgid "GPG key retrieval failed: "
+msgstr "GPG 鍵の取得に失敗しました: "
+
+#: yum/__init__.py:3116
+#, python-format
+msgid "GPG key parsing failed: key does not have value %s"
+msgstr "GPG 鍵の解析に失敗しました: 鍵は値 %s を持っていません"
+
+#: yum/__init__.py:3148
+#, python-format
+msgid "GPG key at %s (0x%s) is already installed"
+msgstr "GPG 鍵 %s (0x%s) はすでにインストールしています"
+
+#: yum/__init__.py:3153 yum/__init__.py:3214
+#, python-format
+msgid "Importing GPG key 0x%s \"%s\" from %s"
+msgstr "GPG 公開鍵 0x%s 「%s」を %s からインポートしています"
+
+#: yum/__init__.py:3169
+msgid "Not installing key"
+msgstr "インストールする鍵がありません"
+
+#: yum/__init__.py:3175
+#, python-format
+msgid "Key import failed (code %d)"
+msgstr "鍵のインポートに失敗しました (コード: %d)"
+
+#: yum/__init__.py:3176 yum/__init__.py:3236
+msgid "Key imported successfully"
+msgstr "鍵のインポートに成功しました"
+
+#: yum/__init__.py:3181 yum/__init__.py:3241
+#, python-format
+msgid ""
+"The GPG keys listed for the \"%s\" repository are already installed but they "
+"are not correct for this package.\n"
+"Check that the correct key URLs are configured for this repository."
+msgstr ""
+
+#: yum/__init__.py:3190
+msgid "Import of key(s) didn't help, wrong key(s)?"
+msgstr ""
+
+#: yum/__init__.py:3209
+#, python-format
+msgid "GPG key at %s (0x%s) is already imported"
+msgstr "GPG 鍵 %s (0x%s) はすでにインポートしています"
+
+#: yum/__init__.py:3228
+#, python-format
+msgid "Not installing key for repo %s"
+msgstr "リポジトリー %s の鍵がインストールされていません"
+
+#: yum/__init__.py:3235
+msgid "Key import failed"
+msgstr "鍵のインポートに失敗しました"
+
+#: yum/__init__.py:3325
+msgid "Unable to find a suitable mirror."
+msgstr "適当なミラーを見つけることができませんでした。"
+
+#: yum/__init__.py:3327
+msgid "Errors were encountered while downloading packages."
+msgstr "パッケージのダウンロード中にエラーに遭遇しました。"
+
+#: yum/__init__.py:3367
+#, python-format
+msgid "Please report this error at %s"
+msgstr "%s にこのエラーを報告してください"
+
+#: yum/__init__.py:3391
+msgid "Test Transaction Errors: "
+msgstr "テストトランザクションでエラー: "
+
+#: yum/plugins.py:204
+msgid "Loaded plugins: "
+msgstr "読み込んだプラグイン:"
+
+#: yum/plugins.py:218 yum/plugins.py:224
+#, python-format
+msgid "No plugin match for: %s"
+msgstr "プラグインが一致しません: %s"
+
+#: yum/plugins.py:254
+#, python-format
+msgid "Not loading \"%s\" plugin, as it is disabled"
+msgstr "無効になっているため、プラグイン「%s」は読み込みません"
+
+#: yum/plugins.py:266
+#, python-format
+msgid "Plugin \"%s\" can't be imported"
+msgstr "プラグイン「%s」はインポートできませんでした"
+
+#: yum/plugins.py:273
+#, python-format
+msgid "Plugin \"%s\" doesn't specify required API version"
+msgstr "プラグイン「%s」は要求された API バージョンを明記していません"
+
+#: yum/plugins.py:278
+#, python-format
+msgid "Plugin \"%s\" requires API %s. Supported API is %s."
+msgstr ""
+"プラグイン「%s」は API %s を要求しています。サポートした API は %s です。"
+
+#: yum/plugins.py:311
+#, python-format
+msgid "Loading \"%s\" plugin"
+msgstr "プラグイン「%s」を読み込んでいます"
+
+#: yum/plugins.py:318
+#, python-format
+msgid ""
+"Two or more plugins with the name \"%s\" exist in the plugin search path"
+msgstr ""
+
+#: yum/plugins.py:338
+#, python-format
+msgid "Configuration file %s not found"
+msgstr "構成ファイル %s が見つかりません"
+
+#: yum/plugins.py:341
+#, python-format
+msgid "Unable to find configuration file for plugin %s"
+msgstr "プラグイン %s の構成ファイルの検索に失敗しました"
+
+#: yum/plugins.py:495
+msgid "registration of commands not supported"
+msgstr "コマンドの登録をサポートしていません"
+
+#: yum/rpmtrans.py:78
+msgid "Repackaging"
+msgstr "再パッケージをしています"
+
+#: rpmUtils/oldUtils.py:26
+#, python-format
+msgid "Header cannot be opened or does not match %s, %s."
+msgstr "%s (%s) が一致しないかヘッダーが開けません"
+
+#: rpmUtils/oldUtils.py:46
+#, python-format
+msgid "RPM %s fails md5 check"
+msgstr "RPM %s は MD5 検査に失敗しました"
+
+#: rpmUtils/oldUtils.py:144
+msgid "Could not open RPM database for reading. Perhaps it is already in use?"
+msgstr ""
+"読み込みのために RPM データベースを開くことができません。おそらく既に使用して"
+"いませんか?"
+
+#: rpmUtils/oldUtils.py:174
+msgid "Got an empty Header, something has gone wrong"
+msgstr "空のヘッダーを取得しました。何かがうまくいっていません"
+
+#: rpmUtils/oldUtils.py:244 rpmUtils/oldUtils.py:251 rpmUtils/oldUtils.py:254
+#: rpmUtils/oldUtils.py:257
+#, python-format
+msgid "Damaged Header %s"
+msgstr "ヘッダー %s は損傷があります"
+
+#: rpmUtils/oldUtils.py:272
+#, python-format
+msgid "Error opening rpm %s - error %s"
+msgstr "RPM %s へのアクセスでエラー - %s エラー"
+
+#~ msgid "Parsing package install arguments"
+#~ msgstr "パッケージインストールの引数を解析しています"
+
+#~ msgid "Could not find update match for %s"
+#~ msgstr "%s に一致する更新を見つけることができません"
diff --git a/po/sv.po b/po/sv.po
index 22e1334..b8a0b67 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -3,21 +3,21 @@
# This file is distributed under the same license as the yum package.
# Göran Uddeborg <goeran@uddeborg.se>, 2009.
#
-# $Id: yum-HEAD.patch,v 1.23 2009/06/18 19:46:27 skvidal Exp $
+# $Id: yum-HEAD.patch,v 1.23 2009/06/18 19:46:27 skvidal Exp $
#
msgid ""
msgstr ""
"Project-Id-Version: yum\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-01-23 13:23+0000\n"
-"PO-Revision-Date: 2009-02-20 22:45+0100\n"
+"POT-Creation-Date: 2009-05-21 14:38+0000\n"
+"PO-Revision-Date: 2009-05-23 18:52+0200\n"
"Last-Translator: Göran Uddeborg <goeran@uddeborg.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ../callback.py:48 ../output.py:909 ../yum/rpmtrans.py:71
+#: ../callback.py:48 ../output.py:922 ../yum/rpmtrans.py:71
msgid "Updating"
msgstr "Uppdaterar"
@@ -25,16 +25,16 @@ msgstr "Uppdaterar"
msgid "Erasing"
msgstr "Raderar"
-#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:908
+#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:921
#: ../yum/rpmtrans.py:73 ../yum/rpmtrans.py:74 ../yum/rpmtrans.py:76
msgid "Installing"
msgstr "Installerar"
#: ../callback.py:52 ../callback.py:58 ../yum/rpmtrans.py:75
msgid "Obsoleted"
-msgstr "Utgick"
+msgstr "Låter utgå"
-#: ../callback.py:54 ../output.py:1014
+#: ../callback.py:54 ../output.py:1029
msgid "Updated"
msgstr "Uppdaterade"
@@ -42,7 +42,7 @@ msgstr "Uppdaterade"
msgid "Erased"
msgstr "Raderade"
-#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:1012
+#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:1027
msgid "Installed"
msgstr "Installerade"
@@ -52,7 +52,7 @@ msgstr "Inget huvud - va?"
#: ../callback.py:168
msgid "Repackage"
-msgstr "Packetera om"
+msgstr "Paketera om"
#: ../callback.py:189
#, python-format
@@ -64,7 +64,7 @@ msgstr "Fel: ogiltig utdatatillstånd: %s för %s"
msgid "Erased: %s"
msgstr "Raderade: %s"
-#: ../callback.py:217 ../output.py:910
+#: ../callback.py:217 ../output.py:923
msgid "Removing"
msgstr "Tar bort"
@@ -85,47 +85,47 @@ msgstr "Gör i ordning förråd"
msgid "Reading repository metadata in from local files"
msgstr "Läser in förrådsmetadata från lokala filer"
-#: ../cli.py:191 ../utils.py:79
+#: ../cli.py:192 ../utils.py:79
#, python-format
msgid "Config Error: %s"
msgstr "Konfigurationsfel: %s"
-#: ../cli.py:194 ../cli.py:1178 ../utils.py:82
+#: ../cli.py:195 ../cli.py:1190 ../utils.py:82
#, python-format
msgid "Options Error: %s"
msgstr "Fel bland flaggor: %s"
-#: ../cli.py:222
+#: ../cli.py:223
#, python-format
msgid " Installed: %s-%s at %s"
msgstr " Installerade: %s-%s %s"
-#: ../cli.py:224
+#: ../cli.py:225
#, python-format
msgid " Built : %s at %s"
msgstr " Byggde : %s %s"
-#: ../cli.py:226
+#: ../cli.py:227
#, python-format
msgid " Committed: %s at %s"
msgstr " Verkställde : %s %s"
-#: ../cli.py:263
+#: ../cli.py:266
msgid "You need to give some command"
msgstr "Du måste ange något kommando"
-#: ../cli.py:305
+#: ../cli.py:309
msgid "Disk Requirements:\n"
msgstr "Diskbehov:\n"
-#: ../cli.py:307
+#: ../cli.py:311
#, python-format
msgid " At least %dMB needed on the %s filesystem.\n"
msgstr " Åtminstone %d MB behövs på filsystemet %s.\n"
#. TODO: simplify the dependency errors?
#. Fixup the summary
-#: ../cli.py:312
+#: ../cli.py:316
msgid ""
"Error Summary\n"
"-------------\n"
@@ -133,56 +133,56 @@ msgstr ""
"Felsammandrag\n"
"-------------\n"
-#: ../cli.py:355
+#: ../cli.py:359
msgid "Trying to run the transaction but nothing to do. Exiting."
msgstr "Försöker köra transaktionen men det finns inget att göra. Avslutar."
-#: ../cli.py:391
+#: ../cli.py:395
msgid "Exiting on user Command"
msgstr "Avslutar på användarens order"
-#: ../cli.py:395
+#: ../cli.py:399
msgid "Downloading Packages:"
msgstr "Hämtar paket:"
-#: ../cli.py:400
+#: ../cli.py:404
msgid "Error Downloading Packages:\n"
msgstr "Fel när paket hämtades:\n"
-#: ../cli.py:414 ../yum/__init__.py:3328
+#: ../cli.py:418 ../yum/__init__.py:3362
msgid "Running rpm_check_debug"
msgstr "Kör rpm_check_debug"
-#: ../cli.py:417 ../yum/__init__.py:3331
+#: ../cli.py:421 ../yum/__init__.py:3365
msgid "ERROR with rpm_check_debug vs depsolve:"
msgstr "FEL med rpm_check_debug mot depsolve:"
-#: ../cli.py:421
+#: ../cli.py:425
#, python-format
msgid "Please report this error in %s"
msgstr "Vänligen rapportera detta fel i %s"
-#: ../cli.py:427
+#: ../cli.py:431
msgid "Running Transaction Test"
msgstr "Kör transaktionstest"
-#: ../cli.py:443
+#: ../cli.py:447
msgid "Finished Transaction Test"
msgstr "Avslutade transaktionstest"
-#: ../cli.py:445
+#: ../cli.py:449
msgid "Transaction Check Error:\n"
msgstr "Transaktionskontrollfel:\n"
-#: ../cli.py:452
+#: ../cli.py:456
msgid "Transaction Test Succeeded"
msgstr "Transaktionskontrollen lyckades"
-#: ../cli.py:473
+#: ../cli.py:477
msgid "Running Transaction"
msgstr "Kör transaktionen"
-#: ../cli.py:503
+#: ../cli.py:507
msgid ""
"Refusing to automatically import keys when running unattended.\n"
"Use \"-y\" to override."
@@ -190,271 +190,278 @@ msgstr ""
"Vägrar att automatiskt importera nycklar vid oövervakad körning.\n"
"Använd \"-y\" för att åsidosätta."
-#: ../cli.py:522 ../cli.py:556
+#: ../cli.py:526 ../cli.py:560
msgid " * Maybe you meant: "
msgstr " * Du kanske menade: "
-#: ../cli.py:539 ../cli.py:547
+#: ../cli.py:543 ../cli.py:551
#, python-format
msgid "Package(s) %s%s%s available, but not installed."
msgstr "Paket %s%s%s tillgängliga, men inte installerade."
-#: ../cli.py:553 ../cli.py:586
+#: ../cli.py:557 ../cli.py:590
#, python-format
msgid "No package %s%s%s available."
msgstr "Inget paket %s%s%s tillgängligt."
-#: ../cli.py:591 ../cli.py:666 ../yumcommands.py:988
+#: ../cli.py:595 ../cli.py:670 ../yumcommands.py:1010
msgid "Package(s) to install"
msgstr "Paket att installera"
-#: ../cli.py:592 ../cli.py:667 ../yumcommands.py:159 ../yumcommands.py:989
+#: ../cli.py:596 ../cli.py:671 ../yumcommands.py:159 ../yumcommands.py:1011
msgid "Nothing to do"
msgstr "Inget att göra"
-#: ../cli.py:625
+#: ../cli.py:629
#, python-format
msgid "%d packages marked for Update"
-msgstr "%d paket noterade för att uppdateras"
+msgstr "%d paket noterade att uppdateras"
-#: ../cli.py:628
+#: ../cli.py:632
msgid "No Packages marked for Update"
-msgstr "Inga paket noterade för att uppdateras"
+msgstr "Inga paket noterade att uppdateras"
-#: ../cli.py:642
+#: ../cli.py:646
#, python-format
msgid "%d packages marked for removal"
-msgstr "%d paket noterade för att tas bort"
+msgstr "%d paket noterade att tas bort"
-#: ../cli.py:645
+#: ../cli.py:649
msgid "No Packages marked for removal"
-msgstr "Inga paket noterade för att tas bort"
+msgstr "Inga paket noterade att tas bort"
-#: ../cli.py:657
+#: ../cli.py:661
msgid "No Packages Provided"
msgstr "Inga paket angivna"
-#: ../cli.py:712
+#: ../cli.py:716
msgid "Matching packages for package list to user args"
msgstr "Matchar paket för paketlistan mot användarargument"
-#: ../cli.py:761
+#: ../cli.py:765
#, python-format
msgid "Warning: No matches found for: %s"
msgstr "Varning: Ingen matchning hittades för: %s"
-#: ../cli.py:764
+#: ../cli.py:768
msgid "No Matches found"
msgstr "Inga matchningar hittades"
-#: ../cli.py:803
+#: ../cli.py:807
#, python-format
msgid ""
-"Warning: 3.0.x versions of yum would erronously match against filenames.\n"
+"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 ""
"Varing: versionerna 3.0.x av yum matchade felaktigt mot filnamn.\n"
-" Du kan använda \"%s*/%s%s\" och/eller \"%s*bin/%s%s\" för att få detta beteende"
+" Du kan använda \"%s*/%s%s\" och/eller \"%s*bin/%s%s\" för att få detta "
+"beteende"
-#: ../cli.py:819
+#: ../cli.py:823
#, python-format
msgid "No Package Found for %s"
msgstr "Inga paket hittades för %s"
-#: ../cli.py:831
+#: ../cli.py:835
msgid "Cleaning up Everything"
msgstr "Rensar upp allt"
-#: ../cli.py:845
+#: ../cli.py:849
msgid "Cleaning up Headers"
msgstr "Rensar upp huvuden"
-#: ../cli.py:848
+#: ../cli.py:852
msgid "Cleaning up Packages"
msgstr "Rensar upp paket"
-#: ../cli.py:851
+#: ../cli.py:855
msgid "Cleaning up xml metadata"
msgstr "Rensar upp xml-metadata"
-#: ../cli.py:854
+#: ../cli.py:858
msgid "Cleaning up database cache"
msgstr "Rensar upp databas-cache"
-#: ../cli.py:857
+#: ../cli.py:861
msgid "Cleaning up expire-cache metadata"
msgstr "Rensar upp expire-cache-metadata"
-#: ../cli.py:860
+#: ../cli.py:864
msgid "Cleaning up plugins"
msgstr "Rensar upp insticksmoduler"
-#: ../cli.py:885
+#: ../cli.py:889
msgid "Installed Groups:"
msgstr "Installerade grupper:"
-#: ../cli.py:892
+#: ../cli.py:896
msgid "Available Groups:"
msgstr "Tillgängliga grupper:"
-#: ../cli.py:898
+#: ../cli.py:902
msgid "Done"
msgstr "Klart"
-#: ../cli.py:909 ../cli.py:927 ../cli.py:933 ../yum/__init__.py:2376
+#: ../cli.py:913 ../cli.py:931 ../cli.py:937 ../yum/__init__.py:2410
#, python-format
msgid "Warning: Group %s does not exist."
msgstr "Varning: Grupp %s finns inte."
-#: ../cli.py:937
+#: ../cli.py:941
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"
+msgstr ""
+"Inget paket i någon begärd grupp är tillgängligt för installation eller "
+"uppdatering"
-#: ../cli.py:939
+#: ../cli.py:943
#, python-format
msgid "%d Package(s) to Install"
msgstr "%d paket att installera"
-#: ../cli.py:949 ../yum/__init__.py:2388
+#: ../cli.py:953 ../yum/__init__.py:2422
#, python-format
msgid "No group named %s exists"
msgstr "Ingen grupp med namnet %s finns"
-#: ../cli.py:955
+#: ../cli.py:959
msgid "No packages to remove from groups"
msgstr "Inget paket att ta bort från grupper"
-#: ../cli.py:957
+#: ../cli.py:961
#, python-format
msgid "%d Package(s) to remove"
msgstr "%d paket att ta bort"
-#: ../cli.py:999
+#: ../cli.py:1003
#, python-format
msgid "Package %s is already installed, skipping"
msgstr "Paket %s är redan installerat, hoppar över"
-#: ../cli.py:1010
+#: ../cli.py:1014
#, python-format
msgid "Discarding non-comparable pkg %s.%s"
msgstr "Kastar ojämförbart paket %s.%s"
#. we've not got any installed that match n or n+a
-#: ../cli.py:1036
+#: ../cli.py:1040
#, 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"
+msgstr ""
+"Ingen annat %s installerat, lägger till listan för potentiell installation"
-#: ../cli.py:1055
+#: ../cli.py:1059
#, python-format
msgid "Command line error: %s"
msgstr "Kommandoradsfel: %s"
-#: ../cli.py:1068
+#: ../cli.py:1072
#, python-format
msgid ""
"\n"
"\n"
"%s: %s option requires an argument"
-msgstr "\n\n%s: flaggan %s behöver ett argument"
+msgstr ""
+"\n"
+"\n"
+"%s: flaggan %s behöver ett argument"
-#: ../cli.py:1118
+#: ../cli.py:1130
msgid "--color takes one of: auto, always, never"
msgstr "--color tar en av: auto, always, never"
-#: ../cli.py:1220
+#: ../cli.py:1232
msgid "show this help message and exit"
msgstr "visa detta hjälpmeddelande och avsluta"
-#: ../cli.py:1224
+#: ../cli.py:1236
msgid "be tolerant of errors"
msgstr "var tolerant vid fel"
-#: ../cli.py:1226
+#: ../cli.py:1238
msgid "run entirely from cache, don't update cache"
msgstr "kör helt från cache, uppdatera inte cachen"
-#: ../cli.py:1228
+#: ../cli.py:1240
msgid "config file location"
msgstr "konfigurationsfilens plats"
-#: ../cli.py:1230
+#: ../cli.py:1242
msgid "maximum command wait time"
msgstr "maximal tid att vänta på kommandon"
-#: ../cli.py:1232
+#: ../cli.py:1244
msgid "debugging output level"
msgstr "nivå på felsökningsutskrifter"
-#: ../cli.py:1236
+#: ../cli.py:1248
msgid "show duplicates, in repos, in list/search commands"
msgstr "visa dubletter, i förråd, i list-/search-kommandon"
-#: ../cli.py:1238
+#: ../cli.py:1250
msgid "error output level"
msgstr "nivå på felutskrifter"
-#: ../cli.py:1241
+#: ../cli.py:1253
msgid "quiet operation"
msgstr "tyst operation"
-#: ../cli.py:1243
+#: ../cli.py:1255
msgid "verbose operation"
msgstr "utförlig operation"
-#: ../cli.py:1245
+#: ../cli.py:1257
msgid "answer yes for all questions"
msgstr "svara ja på alla frågor"
-#: ../cli.py:1247
+#: ../cli.py:1259
msgid "show Yum version and exit"
msgstr "visa Yum-version och avsluta"
-#: ../cli.py:1248
+#: ../cli.py:1260
msgid "set install root"
msgstr "ange installationsrot"
-#: ../cli.py:1252
+#: ../cli.py:1264
msgid "enable one or more repositories (wildcards allowed)"
msgstr "aktivera ett eller flera förråd (jokrertecken tillåts)"
-#: ../cli.py:1256
+#: ../cli.py:1268
msgid "disable one or more repositories (wildcards allowed)"
-msgstr "avaktivera ett eller flera förråd (jokertecken tillåts)"
+msgstr "inaktivera ett eller flera förråd (jokertecken tillåts)"
-#: ../cli.py:1259
+#: ../cli.py:1271
msgid "exclude package(s) by name or glob"
msgstr "uteslut paket via namn eller mönster"
-#: ../cli.py:1261
+#: ../cli.py:1273
msgid "disable exclude from main, for a repo or for everything"
-msgstr "avaktivera uteslutningar från main, för ett förråd, eller för allt"
+msgstr "inaktivera uteslutningar från main, för ett förråd, eller för allt"
-#: ../cli.py:1264
+#: ../cli.py:1276
msgid "enable obsoletes processing during updates"
msgstr "aktivera bearbetning av utfasningar under uppdateringar"
-#: ../cli.py:1266
+#: ../cli.py:1278
msgid "disable Yum plugins"
-msgstr "avaktivera Yum-insticksmoduler"
+msgstr "inaktivera Yum-insticksmoduler"
-#: ../cli.py:1268
+#: ../cli.py:1280
msgid "disable gpg signature checking"
-msgstr "avaktivera kontroll av gpg-signatur"
+msgstr "inaktivera kontroll av gpg-signatur"
-#: ../cli.py:1270
+#: ../cli.py:1282
msgid "disable plugins by name"
-msgstr "avaktivera insticksmoduler efter namn"
+msgstr "inaktivera insticksmoduler efter namn"
-#: ../cli.py:1273
+#: ../cli.py:1285
msgid "enable plugins by name"
msgstr "aktivera insticksmoduler efter namn"
-#: ../cli.py:1276
+#: ../cli.py:1288
msgid "skip packages with depsolving problems"
msgstr "hoppa över paket med problem vid beroendeupplösning"
-#: ../cli.py:1278
+#: ../cli.py:1290
msgid "control whether color is used"
msgstr "styr om färg skall användas"
@@ -583,162 +590,169 @@ msgstr "Licens : %s"
msgid "Description: "
msgstr "Beskrivning: "
-#: ../output.py:607
+#: ../output.py:611
msgid "y"
msgstr "j"
-#: ../output.py:607
+#: ../output.py:611
msgid "yes"
msgstr "ja"
-#: ../output.py:608
+#: ../output.py:612
msgid "n"
msgstr "n"
-#: ../output.py:608
+#: ../output.py:612
msgid "no"
msgstr "nej"
-#: ../output.py:612
+#: ../output.py:616
msgid "Is this ok [y/N]: "
msgstr "Är detta ok [j/N]: "
-#: ../output.py:700
+#: ../output.py:704
#, python-format
msgid ""
"\n"
"Group: %s"
-msgstr "\nGrupp: %s"
+msgstr ""
+"\n"
+"Grupp: %s"
+
+#: ../output.py:708
+#, python-format
+msgid " Group-Id: %s"
+msgstr " Grupp-id: %s"
-#: ../output.py:707
+#: ../output.py:713
#, python-format
msgid " Description: %s"
msgstr " Beskrivning: %s"
-#: ../output.py:709
+#: ../output.py:715
msgid " Mandatory Packages:"
msgstr " Obligatoriska paket:"
-#: ../output.py:710
+#: ../output.py:716
msgid " Default Packages:"
msgstr " Standardpaket:"
-#: ../output.py:711
+#: ../output.py:717
msgid " Optional Packages:"
msgstr " Valfria paket:"
-#: ../output.py:712
+#: ../output.py:718
msgid " Conditional Packages:"
msgstr " Villkorliga paket:"
-#: ../output.py:732
+#: ../output.py:738
#, python-format
msgid "package: %s"
msgstr "paket: %s"
-#: ../output.py:734
+#: ../output.py:740
msgid " No dependencies for this package"
msgstr " Inga beroenden för detta paket"
-#: ../output.py:739
+#: ../output.py:745
#, python-format
msgid " dependency: %s"
msgstr " beroende: %s"
-#: ../output.py:741
+#: ../output.py:747
msgid " Unsatisfied dependency"
msgstr " Ej uppfyllt beroende"
-#: ../output.py:813
+#: ../output.py:819
#, python-format
msgid "Repo : %s"
msgstr "Förråd : %s"
-#: ../output.py:814
+#: ../output.py:820
msgid "Matched from:"
msgstr "Matchat från:"
-#: ../output.py:822
+#: ../output.py:828
msgid "Description : "
msgstr "Beskrivning : "
-#: ../output.py:825
+#: ../output.py:831
#, python-format
msgid "URL : %s"
msgstr "URL : %s"
-#: ../output.py:828
+#: ../output.py:834
#, python-format
msgid "License : %s"
msgstr "Licens : %s"
-#: ../output.py:831
+#: ../output.py:837
#, python-format
msgid "Filename : %s"
msgstr "Filnamn : %s"
-#: ../output.py:835
+#: ../output.py:841
msgid "Other : "
msgstr "Övrigt : "
-#: ../output.py:868
+#: ../output.py:874
msgid "There was an error calculating total download size"
msgstr "Ett fel uppstod vid beräkningen av total storlek att hämta"
-#: ../output.py:873
+#: ../output.py:879
#, python-format
msgid "Total size: %s"
msgstr "Total storlek: %s"
-#: ../output.py:876
+#: ../output.py:882
#, python-format
msgid "Total download size: %s"
msgstr "Total storlek att hämta: %s"
-#: ../output.py:911
+#: ../output.py:924
msgid "Installing for dependencies"
msgstr "Installerar på grund av beroenden"
-#: ../output.py:912
+#: ../output.py:925
msgid "Updating for dependencies"
msgstr "Uppdaterar på grund av beroenden"
-#: ../output.py:913
+#: ../output.py:926
msgid "Removing for dependencies"
msgstr "Tar bort på grund av beroenden"
-#: ../output.py:920 ../output.py:1016
+#: ../output.py:933 ../output.py:1031
msgid "Skipped (dependency problems)"
msgstr "Hoppas över (beroendeproblem)"
-#: ../output.py:941
+#: ../output.py:954
msgid "Package"
msgstr "Paket"
-#: ../output.py:941
+#: ../output.py:954
msgid "Arch"
msgstr "Ark"
-#: ../output.py:942
+#: ../output.py:955
msgid "Version"
msgstr "Version"
-#: ../output.py:942
+#: ../output.py:955
msgid "Repository"
msgstr "Förråd"
-#: ../output.py:943
+#: ../output.py:956
msgid "Size"
-msgstr "Strlk"
+msgstr "Storl."
-#: ../output.py:954
+#: ../output.py:968
#, python-format
msgid ""
-" replacing %s.%s %s\n"
+" replacing %s%s%s.%s %s\n"
"\n"
-msgstr " ersätter %s.%s %s\n\n"
+msgstr " ersätter %s%s%s.%s %s\n\n"
-#: ../output.py:962
+#: ../output.py:977
#, python-format
msgid ""
"\n"
@@ -749,109 +763,116 @@ msgid ""
"Remove %5.5s Package(s) \n"
msgstr ""
"\n"
-"Transaktionssamanfattning\n"
+"Transaktionssammanfattning\n"
"%s\n"
-"Installerar %5.5s Package(s) \n"
-"Uppdaterar %5.5s Package(s) \n"
-"Tar bort %5.5s Package(s) \n"
+"Installerar %5.5s Paket \n"
+"Uppdaterar %5.5s Paket \n"
+"Tar bort %5.5s Paket \n"
-#: ../output.py:1010
+#: ../output.py:1025
msgid "Removed"
msgstr "Borttagna"
-#: ../output.py:1011
+#: ../output.py:1026
msgid "Dependency Removed"
msgstr "Borttagna beroenden"
-#: ../output.py:1013
+#: ../output.py:1028
msgid "Dependency Installed"
msgstr "Installerade beroenden"
-#: ../output.py:1015
+#: ../output.py:1030
msgid "Dependency Updated"
msgstr "Uppdaterade beroenden"
-#: ../output.py:1017
+#: ../output.py:1032
msgid "Replaced"
msgstr "Ersatte"
-#: ../output.py:1018
+#: ../output.py:1033
msgid "Failed"
msgstr "Misslyckade"
+#. Delta between C-c's so we treat as exit
+#: ../output.py:1099
+msgid "two"
+msgstr "två"
+
# Alla utom fjärde %s ger styrtecken för att styra fetstil.
#
-# Det sista är den hårdkodade strängen "two", felrapporterad:
-# http://yum.baseurl.org/ticket/34
-#: ../output.py:1091
+# Det sista är den översättningen av strängen "two".
+#: ../output.py:1106
#, python-format
msgid ""
"\n"
" Current download cancelled, %sinterrupt (ctrl-c) again%s within %s%s%s "
"seconds to exit.\n"
-msgstr "\n Aktuell nedladdning avbröts, %savbryt (ctrl-c) igen%s inom %s%s%s sekunder för att avsluta.\n"
+msgstr ""
+"\n"
+" Aktuell nedladdning avbröts, %savbryt (ctrl-c) igen%s inom %s%s%s sekunder "
+"för att avsluta.\n"
-#: ../output.py:1101
+#: ../output.py:1116
msgid "user interrupt"
msgstr "avbrott från användaren"
-#: ../output.py:1117
+#: ../output.py:1132
msgid "Total"
msgstr "Totalt"
-#: ../output.py:1131
+#: ../output.py:1146
msgid "installed"
msgstr "installeras"
-#: ../output.py:1132
+#: ../output.py:1147
msgid "updated"
msgstr "uppdateras"
-#: ../output.py:1133
+#: ../output.py:1148
msgid "obsoleted"
msgstr "fasas ut"
-#: ../output.py:1134
+#: ../output.py:1149
msgid "erased"
msgstr "raderas"
-#: ../output.py:1138
+#: ../output.py:1153
#, python-format
msgid "---> Package %s.%s %s:%s-%s set to be %s"
msgstr "---> Paket %s.%s %s:%s-%s satt till att %s"
-#: ../output.py:1145
+#: ../output.py:1160
msgid "--> Running transaction check"
msgstr "--> Kör transaktionskontroll"
-#: ../output.py:1150
+#: ../output.py:1165
msgid "--> Restarting Dependency Resolution with new changes."
msgstr "--> Startar om beroendeupplösning med nya ändringar."
-#: ../output.py:1155
+#: ../output.py:1170
msgid "--> Finished Dependency Resolution"
msgstr "--> Avslutade beroendeupplösning"
-#: ../output.py:1160
+#: ../output.py:1175
#, python-format
msgid "--> Processing Dependency: %s for package: %s"
msgstr "--> Bearbetar beroende: %s för paket: %s"
-#: ../output.py:1165
+#: ../output.py:1180
#, python-format
msgid "--> Unresolved Dependency: %s"
msgstr "--> Ej upplöst beroende: %s"
-#: ../output.py:1171
+#: ../output.py:1186
#, python-format
msgid "--> Processing Conflict: %s conflicts %s"
msgstr "--> Bearbetar konflikt: %s står i konflikt med %s"
-#: ../output.py:1174
+#: ../output.py:1189
msgid "--> Populating transaction set with selected packages. Please wait."
msgstr "--> Fyller transaktionsmängden med valda paket. Var god dröj."
-#: ../output.py:1178
+#: ../output.py:1193
#, python-format
msgid "---> Downloading header for %s to pack into transaction set."
msgstr "---> Hämtar huvud för %s för att paketera i transaktionsmängden."
@@ -960,256 +981,263 @@ msgstr "Förbereder uppdateringsprocessen"
msgid "Display details about a package or group of packages"
msgstr "Visa detaljer om ett paket eller en grupp paket"
-#: ../yumcommands.py:284
+#: ../yumcommands.py:292
msgid "Installed Packages"
msgstr "Installerade paket"
-#: ../yumcommands.py:291
+#: ../yumcommands.py:300
msgid "Available Packages"
msgstr "Tillgängliga paket"
-#: ../yumcommands.py:295
+#: ../yumcommands.py:304
msgid "Extra Packages"
msgstr "Extra paket"
-#: ../yumcommands.py:297
+#: ../yumcommands.py:308
msgid "Updated Packages"
msgstr "Uppdaterade paket"
-#: ../yumcommands.py:304 ../yumcommands.py:311 ../yumcommands.py:578
+#. This only happens in verbose mode
+#: ../yumcommands.py:316 ../yumcommands.py:323 ../yumcommands.py:600
msgid "Obsoleting Packages"
msgstr "Fasar ut paket"
-#: ../yumcommands.py:313
+#: ../yumcommands.py:325
msgid "Recently Added Packages"
msgstr "Nyligen tillagda paket"
-#: ../yumcommands.py:320
+#: ../yumcommands.py:332
msgid "No matching Packages to list"
msgstr "Inga matchande paket att lista"
-#: ../yumcommands.py:334
+#: ../yumcommands.py:346
msgid "List a package or groups of packages"
msgstr "Lista ett paket eller en grupp paket"
-#: ../yumcommands.py:346
+#: ../yumcommands.py:358
msgid "Remove a package or packages from your system"
msgstr "Ta bort ett eller flera paket från ditt system"
-#: ../yumcommands.py:353
+#: ../yumcommands.py:365
msgid "Setting up Remove Process"
msgstr "Förbereder processen att ta bort"
-#: ../yumcommands.py:367
+#: ../yumcommands.py:379
msgid "Setting up Group Process"
msgstr "Förbereder grupprocessen"
-#: ../yumcommands.py:373
+#: ../yumcommands.py:385
msgid "No Groups on which to run command"
msgstr "Inga grupper att köra kommandot på"
-#: ../yumcommands.py:386
+#: ../yumcommands.py:398
msgid "List available package groups"
msgstr "Lista tillgängliga paketgrupper"
-#: ../yumcommands.py:403
+#: ../yumcommands.py:415
msgid "Install the packages in a group on your system"
msgstr "Installera paketen i en grupp på ditt system"
-#: ../yumcommands.py:425
+#: ../yumcommands.py:437
msgid "Remove the packages in a group from your system"
msgstr "Ta bort paketen in en grupp från ditt system"
-#: ../yumcommands.py:452
+#: ../yumcommands.py:464
msgid "Display details about a package group"
msgstr "Visa detaljer om en paketgrupp"
-#: ../yumcommands.py:476
+#: ../yumcommands.py:488
msgid "Generate the metadata cache"
msgstr "Generera metadata-cache:n"
-#: ../yumcommands.py:482
+#: ../yumcommands.py:494
msgid "Making cache files for all metadata files."
msgstr "Skapar cache-filer för alla metadatafiler."
-#: ../yumcommands.py:483
+#: ../yumcommands.py:495
msgid "This may take a while depending on the speed of this computer"
msgstr "Detta kan ta ett tag beroende på datorns fart"
-#: ../yumcommands.py:504
+#: ../yumcommands.py:516
msgid "Metadata Cache Created"
msgstr "Metadata-cache skapad"
-#: ../yumcommands.py:518
+#: ../yumcommands.py:530
msgid "Remove cached data"
msgstr "Ta bort cache:ade data"
-#: ../yumcommands.py:539
+#: ../yumcommands.py:551
msgid "Find what package provides the given value"
msgstr "Ta reda på vilka paket som tillhandahåller det angivna värdet"
-#: ../yumcommands.py:559
+#: ../yumcommands.py:571
msgid "Check for available package updates"
msgstr "Leta efter tillgängliga paketuppdateringar"
-#: ../yumcommands.py:598
+#: ../yumcommands.py:620
msgid "Search package details for the given string"
msgstr "Sök i paketdetaljer efter den angivna strängen"
-#: ../yumcommands.py:604
+#: ../yumcommands.py:626
msgid "Searching Packages: "
msgstr "Söker paket: "
-#: ../yumcommands.py:621
+#: ../yumcommands.py:643
msgid "Update packages taking obsoletes into account"
msgstr "Uppdatera paket med hänsyn tagen till utfasningar"
-#: ../yumcommands.py:629
+#: ../yumcommands.py:651
msgid "Setting up Upgrade Process"
msgstr "Förbereder uppgraderingsprocessen"
-#: ../yumcommands.py:643
+#: ../yumcommands.py:665
msgid "Install a local RPM"
msgstr "Installera en lokal RPM"
-#: ../yumcommands.py:651
+#: ../yumcommands.py:673
msgid "Setting up Local Package Process"
msgstr "Förbereder den lokala paketprocessen"
-#: ../yumcommands.py:670
+#: ../yumcommands.py:692
msgid "Determine which package provides the given dependency"
msgstr "Avgör vilket paket som tillhandahåller ett angivet beroende"
-#: ../yumcommands.py:673
+#: ../yumcommands.py:695
msgid "Searching Packages for Dependency:"
msgstr "Söker i paketen efter beroende:"
-#: ../yumcommands.py:687
+#: ../yumcommands.py:709
msgid "Run an interactive yum shell"
msgstr "Kör ett interactivt yum-skal"
-#: ../yumcommands.py:693
+#: ../yumcommands.py:715
msgid "Setting up Yum Shell"
msgstr "Förbereder ett yum-skal"
-#: ../yumcommands.py:711
+#: ../yumcommands.py:733
msgid "List a package's dependencies"
msgstr "Lista ett pakets beroenden"
-#: ../yumcommands.py:717
+#: ../yumcommands.py:739
msgid "Finding dependencies: "
msgstr "Letar efter beroenden: "
-#: ../yumcommands.py:733
+#: ../yumcommands.py:755
msgid "Display the configured software repositories"
msgstr "Visa konfigurerade programvaruförråd"
-#: ../yumcommands.py:781 ../yumcommands.py:782
+#: ../yumcommands.py:803 ../yumcommands.py:804
msgid "enabled"
msgstr "aktivt"
-#: ../yumcommands.py:790 ../yumcommands.py:791
+#: ../yumcommands.py:812 ../yumcommands.py:813
msgid "disabled"
msgstr "inaktivt"
-#: ../yumcommands.py:805
+#: ../yumcommands.py:827
msgid "Repo-id : "
msgstr "Förråds-id : "
-#: ../yumcommands.py:806
+#: ../yumcommands.py:828
msgid "Repo-name : "
msgstr "Förrådsnamn : "
-#: ../yumcommands.py:807
+#: ../yumcommands.py:829
msgid "Repo-status : "
msgstr "Förrådsstatus : "
-#: ../yumcommands.py:809
+#: ../yumcommands.py:831
msgid "Repo-revision: "
msgstr "Förrådsversion : "
-#: ../yumcommands.py:813
+#: ../yumcommands.py:835
msgid "Repo-tags : "
msgstr "Förrådstaggar : "
-#: ../yumcommands.py:819
+#: ../yumcommands.py:841
msgid "Repo-distro-tags: "
msgstr "Förråds-distro-taggar: "
-#: ../yumcommands.py:824
+#: ../yumcommands.py:846
msgid "Repo-updated: "
msgstr "Förråd uppdat. : "
-#: ../yumcommands.py:826
+#: ../yumcommands.py:848
msgid "Repo-pkgs : "
msgstr "Förrådspaket : "
-#: ../yumcommands.py:827
+#: ../yumcommands.py:849
msgid "Repo-size : "
msgstr "Förrådstorlek : "
-#: ../yumcommands.py:834
+#: ../yumcommands.py:856
msgid "Repo-baseurl: "
msgstr "Förrådsbasurl : "
-#: ../yumcommands.py:838
+#: ../yumcommands.py:860
msgid "Repo-metalink: "
msgstr "Förrådsmetalänk : "
-#: ../yumcommands.py:841
+#: ../yumcommands.py:863
msgid "Repo-mirrors: "
msgstr "Förrådspeglar : "
-#: ../yumcommands.py:845
+#: ../yumcommands.py:867
msgid "Repo-exclude: "
msgstr "Förrådsuteslut : "
-#: ../yumcommands.py:849
+#: ../yumcommands.py:871
msgid "Repo-include: "
msgstr "Förrådsinkludera: "
#. Work out the first (id) and last (enabled/disalbed/count),
#. then chop the middle (name)...
-#: ../yumcommands.py:859 ../yumcommands.py:885
+#: ../yumcommands.py:881 ../yumcommands.py:907
msgid "repo id"
msgstr "förråds-id"
-#: ../yumcommands.py:873 ../yumcommands.py:874 ../yumcommands.py:888
+#: ../yumcommands.py:895 ../yumcommands.py:896 ../yumcommands.py:910
msgid "status"
msgstr "status"
-#: ../yumcommands.py:886
+#: ../yumcommands.py:908
msgid "repo name"
msgstr "förrådsnamn"
-#: ../yumcommands.py:912
+#: ../yumcommands.py:934
msgid "Display a helpful usage message"
msgstr "Visa ett hjälpsamt meddelande om användning"
-#: ../yumcommands.py:946
+#: ../yumcommands.py:968
#, python-format
msgid "No help available for %s"
msgstr "Ingen hjälp tillgänglig för %s"
-#: ../yumcommands.py:951
+#: ../yumcommands.py:973
msgid ""
"\n"
"\n"
"aliases: "
-msgstr "\n\nalias: "
+msgstr ""
+"\n"
+"\n"
+"alias: "
-#: ../yumcommands.py:953
+#: ../yumcommands.py:975
msgid ""
"\n"
"\n"
"alias: "
-msgstr "\n\nalias: "
+msgstr ""
+"\n"
+"\n"
+"alias: "
-#: ../yumcommands.py:981
+#: ../yumcommands.py:1003
msgid "Setting up Reinstall Process"
msgstr "Förbereder ominstallationsprocessen"
-#: ../yumcommands.py:995
+#: ../yumcommands.py:1017
msgid "reinstall a package"
msgstr "ominstallera ett paket"
@@ -1218,99 +1246,126 @@ msgid ""
"\n"
"\n"
"Exiting on user cancel"
-msgstr "\n\nSlutar efter att användaren avbröt"
+msgstr ""
+"\n"
+"\n"
+"Slutar efter att användaren avbröt"
#: ../yummain.py:48
msgid ""
"\n"
"\n"
"Exiting on Broken Pipe"
-msgstr "\n\nSlutar med brutet rör (pipe)"
+msgstr ""
+"\n"
+"\n"
+"Slutar med brutet rör (pipe)"
-#: ../yummain.py:122
+#: ../yummain.py:126
msgid "Running"
msgstr "Kör"
-#: ../yummain.py:123
+#: ../yummain.py:127
msgid "Sleeping"
msgstr "Sover"
-#: ../yummain.py:124
+#: ../yummain.py:128
msgid "Uninteruptable"
msgstr "Oavbrytbar"
-#: ../yummain.py:125
+#: ../yummain.py:129
msgid "Zombie"
msgstr "Zombie"
-#: ../yummain.py:126
+#: ../yummain.py:130
msgid "Traced/Stopped"
msgstr "Spårad/Stoppad"
-#: ../yummain.py:127
+#: ../yummain.py:131
msgid "Unknown"
msgstr "Okänd"
-#: ../yummain.py:131
+#: ../yummain.py:135
msgid " The other application is: PackageKit"
msgstr " Det andra programmet är: PackageKit"
-#: ../yummain.py:133
+#: ../yummain.py:137
#, python-format
msgid " The other application is: %s"
msgstr " Det andra programmet är: %s"
-#: ../yummain.py:136
+#: ../yummain.py:140
#, python-format
msgid " Memory : %5s RSS (%5sB VSZ)"
msgstr " Minne : %5s RSS (%5s B VSZ)"
-#: ../yummain.py:140
+#: ../yummain.py:144
#, python-format
msgid " Started: %s - %s ago"
msgstr " Startade: %s - för %s sedan"
-#: ../yummain.py:142
+#: ../yummain.py:146
#, python-format
msgid " State : %s, pid: %d"
msgstr " Status : %s, pid: %d"
-#: ../yummain.py:167
+#: ../yummain.py:171
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 ..."
+msgstr ""
+"Ett annat program håller för närvarande yum-låset, väntar på att den skall "
+"avsluta ..."
-#: ../yummain.py:195 ../yummain.py:234
+#: ../yummain.py:199 ../yummain.py:238
#, python-format
msgid "Error: %s"
msgstr "Fel: %s"
-#: ../yummain.py:205 ../yummain.py:241
+#: ../yummain.py:209 ../yummain.py:250
#, python-format
msgid "Unknown Error(s): Exit Code: %d:"
msgstr "Okänt fel: Felkod: %d:"
#. Depsolve stage
-#: ../yummain.py:212
+#: ../yummain.py:216
msgid "Resolving Dependencies"
msgstr "Löser upp beroenden"
-#: ../yummain.py:247
+#: ../yummain.py:240
+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:241
+msgid ""
+" You could try running: package-cleanup --problems\n"
+" package-cleanup --dupes\n"
+" rpm -Va --nofiles --nodigest"
+msgstr ""
+" Du kan försöka köra: package-cleanup --problems\n"
+" package-cleanup --dupes\n"
+" rpm -Va --nofiles --nodigest"
+
+#: ../yummain.py:256
msgid ""
"\n"
"Dependencies Resolved"
-msgstr "\nBeroenden upplösta"
+msgstr ""
+"\n"
+"Beroenden upplösta"
-#: ../yummain.py:261
+#: ../yummain.py:270
msgid "Complete!"
msgstr "Klart!"
-#: ../yummain.py:308
+#: ../yummain.py:325
msgid ""
"\n"
"\n"
"Exiting on user cancel."
-msgstr "\n\nSlutar efter att användaren avbröt."
+msgstr ""
+"\n"
+"\n"
+"Slutar efter att användaren avbröt."
#: ../yum/depsolve.py:84
msgid "doTsSetup() will go away in a future version of Yum.\n"
@@ -1392,7 +1447,7 @@ msgstr "Läge för paket som tillhandahåller %s: %s"
#: ../yum/depsolve.py:381
#, python-format
msgid "TSINFO: %s package requiring %s marked as erase"
-msgstr "TSINFO: paket %s behöver %s noterat att raderas"
+msgstr "TSINFO: paket %s behöver %s noteras att raderas"
#: ../yum/depsolve.py:394
#, python-format
@@ -1423,39 +1478,41 @@ msgstr "Snabb matcning av %s mot behov för %s"
#: ../yum/depsolve.py:480
#, 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."
+msgstr ""
+"%s finns bland tillhandahållande paket men det är redan installerat, tar "
+"bort."
-#: ../yum/depsolve.py:495
+#: ../yum/depsolve.py:496
#, 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:506
+#: ../yum/depsolve.py:507
#, python-format
msgid "Potential resolving package %s has newer instance installed."
msgstr "Potentiellt upplösande paket %s har nyare instans installerad."
-#: ../yum/depsolve.py:514 ../yum/depsolve.py:563
+#: ../yum/depsolve.py:515 ../yum/depsolve.py:564
#, python-format
msgid "Missing Dependency: %s is needed by package %s"
msgstr "Saknat beroende: %s behövs av paketet %s"
-#: ../yum/depsolve.py:527
+#: ../yum/depsolve.py:528
#, python-format
msgid "%s already in ts, skipping this one"
msgstr "%s är redan i ts, hoppar över denna"
-#: ../yum/depsolve.py:573
+#: ../yum/depsolve.py:574
#, python-format
msgid "TSINFO: Marking %s as update for %s"
msgstr "TSINFO: Noterar %s som en uppdatering av %s"
-#: ../yum/depsolve.py:581
+#: ../yum/depsolve.py:582
#, python-format
msgid "TSINFO: Marking %s as install for %s"
msgstr "TSINFO: Noterar %s som en installation av %s"
-#: ../yum/depsolve.py:674 ../yum/depsolve.py:756
+#: ../yum/depsolve.py:675 ../yum/depsolve.py:756
msgid "Success - empty transaction"
msgstr "Klart - tom transaktion"
@@ -1496,12 +1553,12 @@ msgstr "Kör compare_providers() för %s"
msgid "better arch in po %s"
msgstr "bättre arkitektur i po %s"
-#: ../yum/depsolve.py:1084
+#: ../yum/depsolve.py:1091
#, python-format
msgid "%s obsoletes %s"
msgstr "%s fasar ut %s"
-#: ../yum/depsolve.py:1100
+#: ../yum/depsolve.py:1107
#, python-format
msgid ""
"archdist compared %s to %s on %s\n"
@@ -1510,202 +1567,209 @@ msgstr ""
"arkitekturavstånd jämför %s med %s på %s\n"
" Vinnare: %s"
-#: ../yum/depsolve.py:1107
+#: ../yum/depsolve.py:1114
#, python-format
msgid "common sourcerpm %s and %s"
msgstr "samma käll-rpm %s och %s"
-#: ../yum/depsolve.py:1113
+#: ../yum/depsolve.py:1120
#, python-format
msgid "common prefix of %s between %s and %s"
msgstr "gemensamt prefix för %s mellan %s och %s"
-#: ../yum/depsolve.py:1121
+#: ../yum/depsolve.py:1128
#, python-format
msgid "Best Order: %s"
msgstr "Bästa ordning: %s"
-#: ../yum/__init__.py:154
+#: ../yum/__init__.py:176
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:340
+#. FIXME: Use critical? or exception?
+#: ../yum/__init__.py:386
#, 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:378
+#: ../yum/__init__.py:424
msgid "plugins already initialised"
msgstr "insticksmoduler redan initierade"
-#: ../yum/__init__.py:385
+#: ../yum/__init__.py:431
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:395
+#: ../yum/__init__.py:441
msgid "Reading Local RPMDB"
msgstr "Läser lokal RPMDB"
-#: ../yum/__init__.py:413
+#: ../yum/__init__.py:459
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:433
+#: ../yum/__init__.py:479
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:450
+#: ../yum/__init__.py:496
msgid "Setting up Package Sacks"
msgstr "Förbereder paketsäckar"
-#: ../yum/__init__.py:493
+#: ../yum/__init__.py:539
#, 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:494
+#: ../yum/__init__.py:540
msgid "therefore this repo cannot be reset.\n"
msgstr "därför kan inte detta förråd återställas.\n"
-#: ../yum/__init__.py:499
+#: ../yum/__init__.py:545
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:511
+#: ../yum/__init__.py:557
msgid "Building updates object"
msgstr "Bygger uppdateringsobjekt"
-#: ../yum/__init__.py:542
+#: ../yum/__init__.py:588
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:566
+#: ../yum/__init__.py:612
msgid "Getting group metadata"
msgstr "Hämtar gruppmetadata"
-#: ../yum/__init__.py:592
+#: ../yum/__init__.py:637
#, python-format
msgid "Adding group file from repository: %s"
msgstr "Lägger till gruppfil från förrådet: %s"
-#: ../yum/__init__.py:601
+#: ../yum/__init__.py:642
#, 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:607
+#: ../yum/__init__.py:648
msgid "No Groups Available in any repository"
msgstr "Inga grupper tillgängliga i något förråd"
-#: ../yum/__init__.py:657
+#: ../yum/__init__.py:698
msgid "Importing additional filelist information"
msgstr "Importerar ytterligare fillisteinformation"
-#: ../yum/__init__.py:666
+#: ../yum/__init__.py:706
msgid ""
"There are unfinished transactions remaining. You might consider running yum-"
"complete-transaction first to finish them."
-msgstr "Det finns oavslutade transaktioner kvar. Du kan överväga att köra yumcomplete-transaction först för att avsluta dem."
+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:732
+#: ../yum/__init__.py:772
#, python-format
msgid "Skip-broken round %i"
msgstr "Hoppa-över-trasiga runda %i"
-#: ../yum/__init__.py:784
+#: ../yum/__init__.py:824
#, python-format
msgid "Skip-broken took %i rounds "
msgstr "Hoppa-över-trasiga tog %i rundor "
-#: ../yum/__init__.py:785
+#: ../yum/__init__.py:825
msgid ""
"\n"
"Packages skipped because of dependency problems:"
-msgstr "\nPaket hoppades över på grund av beroendeproblem:"
+msgstr ""
+"\n"
+"Paket hoppades över på grund av beroendeproblem:"
-#: ../yum/__init__.py:789
+#: ../yum/__init__.py:829
#, python-format
msgid " %s from %s"
msgstr " %s från %s"
-#: ../yum/__init__.py:933
+#: ../yum/__init__.py:968
msgid ""
"Warning: scriptlet or other non-fatal errors occurred during transaction."
-msgstr "Varning: skript- eller annat icke ödesdigert fel inträffade under transaktionen."
+msgstr ""
+"Varning: skript- eller annat icke ödesdigert fel inträffade under "
+"transaktionen."
-#: ../yum/__init__.py:948
+#: ../yum/__init__.py:983
#, python-format
msgid "Failed to remove transaction file %s"
msgstr "Kunde inte ta bort transaktionsfilen %s"
-#: ../yum/__init__.py:989
+#: ../yum/__init__.py:1025
#, python-format
msgid "excluding for cost: %s from %s"
msgstr "utesluter på grund av kostnad: %s från %s"
-#: ../yum/__init__.py:1020
+#: ../yum/__init__.py:1056
msgid "Excluding Packages in global exclude list"
msgstr "Utesluter paket i global uteslutningslista"
-#: ../yum/__init__.py:1022
+#: ../yum/__init__.py:1058
#, python-format
msgid "Excluding Packages from %s"
msgstr "Utesluter paket från %s"
-#: ../yum/__init__.py:1049
+#: ../yum/__init__.py:1085
#, python-format
msgid "Reducing %s to included packages only"
msgstr "Reducerar %s till endast inkluderade paket"
-#: ../yum/__init__.py:1055
+#: ../yum/__init__.py:1091
#, python-format
msgid "Keeping included package %s"
msgstr "Behåller inkluderat paket %s"
-#: ../yum/__init__.py:1061
+#: ../yum/__init__.py:1097
#, python-format
msgid "Removing unmatched package %s"
msgstr "Tar bort ej matchat paket %s"
-#: ../yum/__init__.py:1064
+#: ../yum/__init__.py:1100
msgid "Finished"
msgstr "Klar"
#. Whoa. What the heck happened?
-#: ../yum/__init__.py:1094
+#: ../yum/__init__.py:1130
#, 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:1098
+#: ../yum/__init__.py:1134
#, 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."
-#: ../yum/__init__.py:1165
+#: ../yum/__init__.py:1204
msgid "Package does not match intended download"
msgstr "Paketet matchar inte avsedd det avsett att laddas ner"
-#: ../yum/__init__.py:1180
+#: ../yum/__init__.py:1219
msgid "Could not perform checksum"
msgstr "Kunde inte utföra kontrollsummering"
-#: ../yum/__init__.py:1183
+#: ../yum/__init__.py:1222
msgid "Package does not match checksum"
msgstr "Paketet stämmer inte med kontrollsumman"
-#: ../yum/__init__.py:1226
+#: ../yum/__init__.py:1265
#, 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:1229 ../yum/__init__.py:1258
+#: ../yum/__init__.py:1268 ../yum/__init__.py:1297
#, python-format
msgid "using local copy of %s"
msgstr "använder lokal kopia av %s"
-#: ../yum/__init__.py:1270
+#: ../yum/__init__.py:1309
#, python-format
msgid ""
"Insufficient space in download directory %s\n"
@@ -1716,421 +1780,430 @@ msgstr ""
" * fritt %s\n"
" * behovet %s"
-#: ../yum/__init__.py:1317
+#: ../yum/__init__.py:1356
msgid "Header is not complete."
msgstr "Huvudet är inte komplett."
-#: ../yum/__init__.py:1354
+#: ../yum/__init__.py:1393
#, python-format
msgid ""
"Header not in local cache and caching-only mode enabled. Cannot download %s"
-msgstr "Huvudet finns inte i den lokala cachen och endast-cache-läget är aktiverat. Kan inte hämta %s"
+msgstr ""
+"Huvudet finns inte i den lokala cachen och endast-cache-läget är aktiverat. "
+"Kan inte hämta %s"
-#: ../yum/__init__.py:1409
+#: ../yum/__init__.py:1448
#, python-format
msgid "Public key for %s is not installed"
msgstr "Den publika nyckeln för %s är inte installerad"
-#: ../yum/__init__.py:1413
+#: ../yum/__init__.py:1452
#, python-format
msgid "Problem opening package %s"
msgstr "Problem att öppna paketet %s"
-#: ../yum/__init__.py:1421
+#: ../yum/__init__.py:1460
#, python-format
msgid "Public key for %s is not trusted"
msgstr "Den publika nyckeln för %s är inte betrodd"
-#: ../yum/__init__.py:1425
+#: ../yum/__init__.py:1464
#, python-format
msgid "Package %s is not signed"
msgstr "Paket %s är inte signerat"
-#: ../yum/__init__.py:1463
+#: ../yum/__init__.py:1502
#, python-format
msgid "Cannot remove %s"
msgstr "Det går inte att ta bort %s"
-#: ../yum/__init__.py:1467
+#: ../yum/__init__.py:1505
#, 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:1504
+#: ../yum/__init__.py:1541
#, python-format
msgid "Cannot remove %s file %s"
msgstr "Det går inte att ta bort %s-filen %s"
-#: ../yum/__init__.py:1508
+#: ../yum/__init__.py:1544
#, python-format
msgid "%s file %s removed"
msgstr "%s-filen %s borttagen"
-#: ../yum/__init__.py:1510
+#: ../yum/__init__.py:1546
#, python-format
msgid "%d %s files removed"
msgstr "%d %s-filer borttagna"
-#: ../yum/__init__.py:1579
+#: ../yum/__init__.py:1614
#, 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:1585
+#: ../yum/__init__.py:1619
#, 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:1803
+#: ../yum/__init__.py:1838
msgid ""
"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"
+msgstr ""
+"searchPackages() kommer att försvinna i en framtida version av "
+"Yum. Använd searchGenerator() istället. \n"
-#: ../yum/__init__.py:1841
+#: ../yum/__init__.py:1876
#, python-format
msgid "Searching %d packages"
msgstr "Söker i %d paket"
-#: ../yum/__init__.py:1845
+#: ../yum/__init__.py:1879
#, python-format
msgid "searching package %s"
msgstr "söker i paketet %s"
-#: ../yum/__init__.py:1857
+#: ../yum/__init__.py:1890
msgid "searching in file entries"
msgstr "söker i filposter"
-#: ../yum/__init__.py:1864
+#: ../yum/__init__.py:1896
msgid "searching in provides entries"
msgstr "söker i tillhandahållandeposter"
-#: ../yum/__init__.py:1897
+#: ../yum/__init__.py:1929
#, python-format
msgid "Provides-match: %s"
msgstr "Tillhandahållandematchning: %s"
-#: ../yum/__init__.py:1946
+#: ../yum/__init__.py:1978
msgid "No group data available for configured repositories"
msgstr "Inga gruppdata är tillgängliga för de konfigurerade förråden"
-#: ../yum/__init__.py:1977 ../yum/__init__.py:1996 ../yum/__init__.py:2027
-#: ../yum/__init__.py:2033 ../yum/__init__.py:2106 ../yum/__init__.py:2110
+#: ../yum/__init__.py:2009 ../yum/__init__.py:2028 ../yum/__init__.py:2058
+#: ../yum/__init__.py:2064 ../yum/__init__.py:2143 ../yum/__init__.py:2147
#, python-format
msgid "No Group named %s exists"
msgstr "Det finns ingen grupp med namnet %s"
-#: ../yum/__init__.py:2008 ../yum/__init__.py:2123
+#: ../yum/__init__.py:2039 ../yum/__init__.py:2159
#, python-format
msgid "package %s was not marked in group %s"
msgstr "paket %s noterades inte i gruppen %s"
-#: ../yum/__init__.py:2055
+#: ../yum/__init__.py:2085
#, python-format
msgid "Adding package %s from group %s"
msgstr "Lägger till paket %s från grupp %s"
-#: ../yum/__init__.py:2059
+#: ../yum/__init__.py:2090
#, 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:2148
+#: ../yum/__init__.py:2186
#, python-format
msgid "Package tuple %s could not be found in packagesack"
msgstr "Pakettupel %s fanns inte i paketsäcken"
-#: ../yum/__init__.py:2163
+#: ../yum/__init__.py:2201
msgid ""
"getInstalledPackageObject() will go away, use self.rpmdb.searchPkgTuple().\n"
-msgstr "getInstalledPackageObject() kommer att försvinna, använd self.rpmdb.searchPkgTuple().\n"
-
-#: ../yum/__init__.py:2215 ../yum/__init__.py:2258
-msgid "Invalid versioned dependency string, try quoting it."
-msgstr "Ogiltig versionsberoendesträng, försök att citera den."
+msgstr ""
+"getInstalledPackageObject() kommer att försvinna, använd self.rpmdb."
+"searchPkgTuple().\n"
-#: ../yum/__init__.py:2217 ../yum/__init__.py:2260
+#: ../yum/__init__.py:2253 ../yum/__init__.py:2294
msgid "Invalid version flag"
msgstr "Ogiltig versionsflagga"
-#: ../yum/__init__.py:2232 ../yum/__init__.py:2236
+#: ../yum/__init__.py:2268 ../yum/__init__.py:2272
#, python-format
msgid "No Package found for %s"
msgstr "Inga paket hittades för %s"
-#: ../yum/__init__.py:2415
+#: ../yum/__init__.py:2449
msgid "Package Object was not a package object instance"
msgstr "Paketobjektet var inte en paketobjektinstans"
-#: ../yum/__init__.py:2419
+#: ../yum/__init__.py:2453
msgid "Nothing specified to install"
msgstr "Inget angivet att installeras"
-#. only one in there
-#: ../yum/__init__.py:2437
+#: ../yum/__init__.py:2469
#, python-format
msgid "Checking for virtual provide or file-provide for %s"
-msgstr "Kontrollerar virtuella tillhandahållanden eller filtillhandahållanden för %s"
+msgstr ""
+"Kontrollerar virtuella tillhandahållanden eller filtillhandahållanden för %s"
-#: ../yum/__init__.py:2443 ../yum/__init__.py:2691 ../yum/__init__.py:2861
+#: ../yum/__init__.py:2475 ../yum/__init__.py:2740 ../yum/__init__.py:2900
#, python-format
msgid "No Match for argument: %s"
msgstr "Ingen matchning för argument: %s"
-#: ../yum/__init__.py:2509
+#: ../yum/__init__.py:2548
#, python-format
msgid "Package %s installed and not available"
msgstr "Paket %s installerat och inte tillgänligt"
-#: ../yum/__init__.py:2512
+#: ../yum/__init__.py:2551
msgid "No package(s) available to install"
msgstr "Inga paket tillgängliga att installera"
-#: ../yum/__init__.py:2524
+#: ../yum/__init__.py:2564
#, python-format
msgid "Package: %s - already in transaction set"
msgstr "Paket: %s - redan i transaktionsmängden"
-#: ../yum/__init__.py:2539
+#: ../yum/__init__.py:2580
#, 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:2547
+#: ../yum/__init__.py:2588
#, python-format
msgid "Package %s already installed and latest version"
msgstr "Paket %s är redan installerast och senaste version"
-#: ../yum/__init__.py:2554
+#: ../yum/__init__.py:2595
#, 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:2635
+#: ../yum/__init__.py:2675
msgid "Updating Everything"
msgstr "Uppdaterar allt"
-#: ../yum/__init__.py:2653 ../yum/__init__.py:2763 ../yum/__init__.py:2784
-#: ../yum/__init__.py:2810
+#: ../yum/__init__.py:2693 ../yum/__init__.py:2802 ../yum/__init__.py:2823
+#: ../yum/__init__.py:2849
#, 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:2688 ../yum/__init__.py:2858
+#: ../yum/__init__.py:2728 ../yum/__init__.py:2897
#, python-format
msgid "%s"
msgstr "%s"
-#: ../yum/__init__.py:2754
+#: ../yum/__init__.py:2793
#, 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:2787 ../yum/__init__.py:2813
+#: ../yum/__init__.py:2826 ../yum/__init__.py:2852
#, 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:2874
+#: ../yum/__init__.py:2913
msgid "No package matched to remove"
msgstr "Inget paket matchar att tas bort"
-#: ../yum/__init__.py:2908
+#: ../yum/__init__.py:2947
#, python-format
msgid "Cannot open file: %s. Skipping."
msgstr "Det går inte att öppna filen: %s. Hoppar över."
-#: ../yum/__init__.py:2911
+#: ../yum/__init__.py:2949
#, python-format
msgid "Examining %s: %s"
msgstr "Undersöker %s: %s"
-#: ../yum/__init__.py:2919
+#: ../yum/__init__.py:2957
#, 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"
+msgstr ""
+"Kan inte lägga till paket %s till transaktionen. Inte en kompatibel "
+"arkitektur: %s"
-#: ../yum/__init__.py:2927
+#: ../yum/__init__.py:2965
#, python-format
msgid ""
"Package %s not installed, cannot update it. Run yum install to install it "
"instead."
-msgstr "Paket %s är inte installerat, kan inte uppdatera det. Kör yum install för att installera det istället."
+msgstr ""
+"Paket %s är inte installerat, kan inte uppdatera det. Kör yum install för "
+"att installera det istället."
-#: ../yum/__init__.py:2960
+#: ../yum/__init__.py:2998
#, python-format
msgid "Excluding %s"
msgstr "Utesluter %s"
-#: ../yum/__init__.py:2965
+#: ../yum/__init__.py:3002
#, python-format
msgid "Marking %s to be installed"
msgstr "Noterar %s för installation"
-#: ../yum/__init__.py:2971
+#: ../yum/__init__.py:3007
#, python-format
msgid "Marking %s as an update to %s"
msgstr "Noterar %s som en uppdatering av %s"
-#: ../yum/__init__.py:2978
+#: ../yum/__init__.py:3012
#, python-format
msgid "%s: does not update installed package."
msgstr "%s: uppdaterar inte ett installerat paket."
-#: ../yum/__init__.py:2996
+#: ../yum/__init__.py:3029
msgid "Problem in reinstall: no package matched to remove"
msgstr "Problem att ominstallera: inget paket matchades att tas bort"
-#: ../yum/__init__.py:3007
+#: ../yum/__init__.py:3040
#, python-format
msgid "Package %s is allowed multiple installs, skipping"
msgstr "Paket %s tillåts multipla installationer, hoppar över"
-#: ../yum/__init__.py:3014
+#: ../yum/__init__.py:3050
msgid "Problem in reinstall: no package matched to install"
msgstr "Problem att ominstallera: inget paket matchades att installeras"
-#: ../yum/__init__.py:3049
+#: ../yum/__init__.py:3085
#, python-format
msgid "Retrieving GPG key from %s"
msgstr "Hämtar GPG-nyckel från %s"
-#: ../yum/__init__.py:3069
+#: ../yum/__init__.py:3105
msgid "GPG key retrieval failed: "
msgstr "Hämtandet av GPG-nyckeln misslyckades: "
-#: ../yum/__init__.py:3080
+#: ../yum/__init__.py:3116
#, 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:3112
+#: ../yum/__init__.py:3148
#, python-format
msgid "GPG key at %s (0x%s) is already installed"
msgstr "GPG-nyckel vid %s (0x%s) är redan installerad"
#. Try installing/updating GPG key
-#: ../yum/__init__.py:3117 ../yum/__init__.py:3179
+#: ../yum/__init__.py:3153 ../yum/__init__.py:3214
#, python-format
msgid "Importing GPG key 0x%s \"%s\" from %s"
msgstr "Importerar GPG-nyckel 0x%s \"%s\" från %s"
-#: ../yum/__init__.py:3134
+#: ../yum/__init__.py:3169
msgid "Not installing key"
msgstr "Installerar inte nyckeln"
-#: ../yum/__init__.py:3140
+#: ../yum/__init__.py:3175
#, python-format
msgid "Key import failed (code %d)"
msgstr "Nyckelimport misslyckades (kod %d)"
-#: ../yum/__init__.py:3141 ../yum/__init__.py:3200
+#: ../yum/__init__.py:3176 ../yum/__init__.py:3236
msgid "Key imported successfully"
msgstr "Nyckelimport lyckades"
-#: ../yum/__init__.py:3146 ../yum/__init__.py:3205
+#: ../yum/__init__.py:3181 ../yum/__init__.py:3241
#, python-format
msgid ""
"The GPG keys listed for the \"%s\" repository are already installed but they "
"are not correct for this package.\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 för detta paket.\n"
+"GPG-nycklarna uppräknade för förrådet \"%s\" är redan installerade men de är "
+"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:3155
+#: ../yum/__init__.py:3190
msgid "Import of key(s) didn't help, wrong key(s)?"
msgstr "Import av nycklar hjälpte inte, fel nycklar?"
-#: ../yum/__init__.py:3174
+#: ../yum/__init__.py:3209
#, 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:3194
+#: ../yum/__init__.py:3228
#, python-format
msgid "Not installing key for repo %s"
msgstr "Installerar inte nyckel för förråd %s"
-#: ../yum/__init__.py:3199
+#: ../yum/__init__.py:3235
msgid "Key import failed"
msgstr "Nyckelimport misslyckades"
-#: ../yum/__init__.py:3290
+#: ../yum/__init__.py:3325
msgid "Unable to find a suitable mirror."
msgstr "Kan inte hitta en lämplig spegel."
-#: ../yum/__init__.py:3292
+#: ../yum/__init__.py:3327
msgid "Errors were encountered while downloading packages."
msgstr "Fel uppstod när paket hämtades."
-#: ../yum/__init__.py:3333
+#: ../yum/__init__.py:3367
#, python-format
msgid "Please report this error at %s"
msgstr "Rapportera gärna detta fel till %s"
-#: ../yum/__init__.py:3357
+#: ../yum/__init__.py:3391
msgid "Test Transaction Errors: "
msgstr "Transaktionstestfel: "
#. Mostly copied from YumOutput._outKeyValFill()
-#: ../yum/plugins.py:201
+#: ../yum/plugins.py:204
msgid "Loaded plugins: "
msgstr "Inlästa insticksmoduler: "
-#: ../yum/plugins.py:215 ../yum/plugins.py:221
+#: ../yum/plugins.py:218 ../yum/plugins.py:224
#, python-format
msgid "No plugin match for: %s"
msgstr "Ingen insticksmodul matchar: %s"
-#: ../yum/plugins.py:251
+#: ../yum/plugins.py:254
#, python-format
-msgid "\"%s\" plugin is disabled"
-msgstr "Insticksmodulen \"%s\" avaktiverad"
+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:263
+#: ../yum/plugins.py:266
#, python-format
msgid "Plugin \"%s\" can't be imported"
msgstr "Insticksmodulen \"%s\" kan inte importeras"
-#: ../yum/plugins.py:270
+#: ../yum/plugins.py:273
#, python-format
msgid "Plugin \"%s\" doesn't specify required API version"
msgstr "Insticksmodulen \"%s\" specificerare inte nödvändig API-version"
-#: ../yum/plugins.py:275
+#: ../yum/plugins.py:278
#, 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:308
+#: ../yum/plugins.py:311
#, python-format
msgid "Loading \"%s\" plugin"
msgstr "Läser in insticksmodulen \"%s\""
-#: ../yum/plugins.py:315
+#: ../yum/plugins.py:318
#, python-format
msgid ""
"Two or more plugins with the name \"%s\" exist in the plugin search path"
-msgstr "Två eller flera insticksmoduler med namnet \"%s\" finns i sökvägen för insticksmoduler"
+msgstr ""
+"Två eller flera insticksmoduler med namnet \"%s\" finns i sökvägen för "
+"insticksmoduler"
-#: ../yum/plugins.py:335
+#: ../yum/plugins.py:338
#, python-format
msgid "Configuration file %s not found"
msgstr "Konfigurationsfilen %s finns inte"
#. for
#. Configuration files for the plugin not found
-#: ../yum/plugins.py:338
+#: ../yum/plugins.py:341
#, python-format
msgid "Unable to find configuration file for plugin %s"
msgstr "Kan inte hitta konfigurationsfil för insticksmodulen %s"
-#: ../yum/plugins.py:492
+#: ../yum/plugins.py:495
msgid "registration of commands not supported"
msgstr "registrering av kommandon stöds inte"
@@ -2150,7 +2223,8 @@ msgstr "RPM %s misslyckas med md5-kontroll"
#: ../rpmUtils/oldUtils.py:144
msgid "Could not open RPM database for reading. Perhaps it is already in use?"
-msgstr "Det gick inte att öppna RPM-databasen för läsning. Kanske den redan används?"
+msgstr ""
+"Det gick inte att öppna RPM-databasen för läsning. Kanske den redan används?"
#: ../rpmUtils/oldUtils.py:174
msgid "Got an empty Header, something has gone wrong"
diff --git a/rpmUtils/arch.py b/rpmUtils/arch.py
index e88cbde..b493b6a 100644
--- a/rpmUtils/arch.py
+++ b/rpmUtils/arch.py
@@ -380,3 +380,41 @@ def getBaseArch(myarch=None):
return basearch
+
+class ArchStorage(object):
+ """class for keeping track of what arch we have set and doing various
+ permutations based on it"""
+ def __init__(self):
+ self.canonarch = None
+ self.basearch = None
+ self.bestarch = None
+ self.compatarches = []
+ self.archlist = []
+ self.multilib = False
+ self.setup_arch()
+
+ def setup_arch(self, arch=None):
+ if arch:
+ self.canonarch = arch
+ else:
+ self.canonarch = getCanonArch()
+
+ self.basearch = getBaseArch(myarch=self.canonarch)
+ self.archlist = getArchList(thisarch=self.canonarch)
+ self.bestarch = getBestArch(myarch=self.canonarch)
+ self.compatarches = getMultiArchInfo(arch=self.canonarch)
+ self.multilib = isMultiLibArch(arch=self.canonarch)
+ self.legit_multi_arches = legitMultiArchesInSameLib(arch = self.canonarch)
+
+ def get_best_arch_from_list(self, archlist, fromarch=None):
+ if not fromarch:
+ fromarch = self.canonarch
+ return getBestArchFromList(archlist, myarch=fromarch)
+
+ def score(self, arch):
+ return archDifference(self.canonarch, arch)
+
+ def get_arch_list(self, arch):
+ if not arch:
+ return self.archlist
+ return getArchList(thisarch=arch)
diff --git a/rpmUtils/updates.py b/rpmUtils/updates.py
index 0e697bc..3ce1eba 100644
--- a/rpmUtils/updates.py
+++ b/rpmUtils/updates.py
@@ -48,7 +48,12 @@ class Updates:
self.myarch = rpmUtils.arch.canonArch # set this if you want to
# test on some other arch
# otherwise leave it alone
+ self._is_multilib = rpmUtils.arch.isMultiLibArch(self.myarch)
+ self._archlist = rpmUtils.arch.getArchList(self.myarch)
+
+ self._multilib_compat_arches = rpmUtils.arch.getMultiArchInfo(self.myarch)
+
# make some dicts from installed and available
self.installdict = self.makeNADict(self.installed, 1)
self.availdict = self.makeNADict(self.available, 1)
@@ -291,7 +296,7 @@ class Updates:
newpkgs = []
newpkgs = self.availdict
- archlist = rpmUtils.arch.getArchList(self.myarch)
+ archlist = self._archlist
for (n, a) in newpkgs.keys():
# remove stuff not in our archdict
# high log here
@@ -408,14 +413,14 @@ class Updates:
# however, we do want to descend x86_64->noarch, sadly.
archlists = []
- if rpmUtils.arch.isMultiLibArch(arch=self.myarch):
+ if self._is_multilib:
if rpmUtils.arch.multilibArches.has_key(self.myarch):
biarches = [self.myarch]
else:
biarches = [self.myarch, rpmUtils.arch.arches[self.myarch]]
biarches.append('noarch')
- multicompat = rpmUtils.arch.getMultiArchInfo(self.myarch)[0]
+ multicompat = self._multilib_compat_arches[0]
multiarchlist = rpmUtils.arch.getArchList(multicompat)
archlists = [ set(biarches), set(multiarchlist) ]
# archlists = [ biarches, multiarchlist ]
diff --git a/shell.py b/shell.py
index 2ac5c59..f1c82a3 100644
--- a/shell.py
+++ b/shell.py
@@ -86,13 +86,17 @@ class YumShell(cmd.Cmd):
else:
(cmd, args, line) = self.parseline(line)
if cmd not in self.commandlist:
- self.do_help('')
- return False
+ xargs = [cmd]
+ self.base.plugins.run('args', args=xargs)
+ if xargs[0] == cmd:
+ self.do_help('')
+ return False
if cmd == 'shell':
return
self.base.cmdstring = line
self.base.cmdstring = self.base.cmdstring.replace('\n', '')
self.base.cmds = self._shlex_split(self.base.cmdstring)
+ self.base.plugins.run('args', args=self.base.cmds)
try:
self.base.parseCommands()
diff --git a/test/depsolvetests.py b/test/depsolvetests.py
index e6c4619..02bbf8f 100644
--- a/test/depsolvetests.py
+++ b/test/depsolvetests.py
@@ -329,10 +329,7 @@ class DepsolveTests(DepsolveTests):
self.xsack.addPackage(xpo64)
self.assertEquals('ok', *self.resolveCode())
- if self.canonArch == 'x86_64':
- self.assertResult((po, xpo64))
- else:
- self.assertResult((po, xpo))
+ self.assertResult((po, xpo64))
def testUpdateSinglePackage(self):
ipo = FakePackage('zsh', '1', '1', None, 'i386')
@@ -648,11 +645,6 @@ class DepsolveTests(DepsolveTests):
def testCompareProvidersSameLen2_noarch_to_64_1(self):
# Make sure they are still ok, the other way around
- myarch = self.canonArch
-
- if myarch not in ('i386', 'x86_64'):
- return
-
po = FakePackage('abcd', arch='noarch')
po.addRequires('libxyz-1.so.0', None, (None, None, None))
@@ -666,20 +658,12 @@ class DepsolveTests(DepsolveTests):
self.xsack.addPackage(po1)
self.assertEquals('ok', *self.resolveCode())
- if myarch == 'i386':
- self.assertResult((po, po2))
-
- if myarch == 'x86_64':
- self.assertResult((po, po1))
+ self.assertResult((po, po1))
def testCompareProvidersSameLen2_noarch_to_64_2(self):
# Make sure they are still ok, the other way around
- myarch = self.canonArch
- if myarch not in ('i386', 'x86_64'):
- return
-
po = FakePackage('abcd', arch='noarch')
po.addRequires('libxyz-1.so.0', None, (None, None, None))
self.tsInfo.addInstall(po)
@@ -692,10 +676,7 @@ class DepsolveTests(DepsolveTests):
self.xsack.addPackage(po1)
self.assertEquals('ok', *self.resolveCode())
- if myarch == 'x86_64':
- self.assertResult((po, po2))
- if myarch == 'i386':
- self.assertResult((po, po1))
+ self.assertResult((po, po2))
def testCompareProvidersDiffLen_64(self):
@@ -1196,3 +1177,23 @@ class DepsolveTests(DepsolveTests):
self.assertEquals('ok', *self.resolveCode())
self.assertResult((ipo1, apo3))
+
+ def testCompareProvidersNoarchWithHigherVer_to_64(self):
+
+ po = FakePackage('abcd', arch='x86_64')
+ po.addRequires('libxyz-1.so.0', None, (None, None, None))
+ self.tsInfo.addInstall(po)
+
+ po3 = FakePackage('libbar', version='1.1', arch='x86_64')
+ po3.addProvides('libxyz-1.so.0', None,(None,None,None))
+ self.xsack.addPackage(po3)
+ po2 = FakePackage('libbar', version='1.2', arch='noarch')
+ po2.addProvides('libxyz-1.so.0', None,(None,None,None))
+ self.xsack.addPackage(po2)
+ po1 = FakePackage('libbar', version='1.1', arch='i386')
+ po1.addProvides('libxyz-1.so.0', None,(None,None,None))
+ self.xsack.addPackage(po1)
+
+ self.assertEquals('ok', *self.resolveCode())
+ self.assertResult((po, po2))
+
diff --git a/test/misc-tests.py b/test/misc-tests.py
index 4709ce1..d6e49d8 100644
--- a/test/misc-tests.py
+++ b/test/misc-tests.py
@@ -94,6 +94,7 @@ class MiscTests(DepsolveTests):
def resolveCode(self,skip = False):
solver = YumBase()
solver.conf = FakeConf()
+ solver.arch.setup_arch('x86_64')
solver.conf.skip_broken = skip
solver.tsInfo = solver._tsInfo = self.tsInfo
solver.rpmdb = self.rpmdb
diff --git a/test/simpleupdatetests.py b/test/simpleupdatetests.py
index d52cc9d..7307b5e 100644
--- a/test/simpleupdatetests.py
+++ b/test/simpleupdatetests.py
@@ -100,18 +100,12 @@ class SimpleUpdateTests(OperationsTests):
p = self.pkgs
res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_noarch], [p.update_x86_64, p.update_i386, p.requires_update])
self.assert_(res=='ok', msg)
- if self.canonArch == 'x86_64':
- self.assertResult((p.update_x86_64, p.requires_update))
- else:
- self.assertResult((p.update_i386, p.requires_update))
+ self.assertResult((p.update_x86_64, p.requires_update))
def testUpdatenoarchToMultilibForDependency(self):
p = self.pkgs
res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_noarch], [p.update_i386, p.update_x86_64, p.requires_update])
self.assert_(res=='ok', msg)
- if self.canonArch == 'x86_64':
- self.assertResult((p.update_x86_64, p.requires_update))
- else:
- self.assertResult((p.update_i386, p.requires_update))
+ self.assertResult((p.update_x86_64, p.requires_update))
def testUpdatenoarchToMultilibForDependency2(self):
p = self.pkgs
res, msg = self.runOperation(['update', 'bar'], [p.required, p.installed_noarch],
diff --git a/test/skipbroken-tests.py b/test/skipbroken-tests.py
index d6f763c..db71a21 100644
--- a/test/skipbroken-tests.py
+++ b/test/skipbroken-tests.py
@@ -585,6 +585,7 @@ class SkipBrokenTests(DepsolveTests):
def resolveCode(self,skip = False):
solver = YumBase()
+ solver.arch.setup_arch('x86_64')
solver.conf = FakeConf()
solver.conf.skip_broken = skip
solver.tsInfo = solver._tsInfo = self.tsInfo
diff --git a/test/testbase.py b/test/testbase.py
index 9cab5f9..d91c01c 100644
--- a/test/testbase.py
+++ b/test/testbase.py
@@ -30,7 +30,7 @@ class FakeConf(object):
def __init__(self):
self.installonlypkgs = ['kernel']
self.exclude = []
- self.debuglevel = 0
+ self.debuglevel = 8
self.obsoletes = True
self.exactarch = False
self.exactarchlist = []
@@ -156,7 +156,6 @@ class DepSolveProgressCallBack:
class _DepsolveTestsBase(unittest.TestCase):
res = {0 : 'empty', 2 : 'ok', 1 : 'err'}
- canonArch = "x86_64"
def __init__(self, methodName='runTest'):
unittest.TestCase.__init__(self, methodName)
@@ -164,10 +163,9 @@ class _DepsolveTestsBase(unittest.TestCase):
self.buildPkgs(self.pkgs)
def setUp(self):
- self._canonArch = arch.canonArch
- arch.canonArch = self.canonArch
+ pass
def tearDown(self):
- arch.canonArch = self._canonArch
+ pass
@staticmethod
def buildPkgs(pkgs, *args):
@@ -284,6 +282,7 @@ class DepsolveTests(_DepsolveTestsBase):
def resolveCode(self):
solver = YumBase()
solver.conf = FakeConf()
+ solver.arch.setup_arch('x86_64')
solver.tsInfo = solver._tsInfo = self.tsInfo
solver.rpmdb = self.rpmdb
solver.pkgSack = self.xsack
@@ -325,6 +324,7 @@ class OperationsTests(_DepsolveTestsBase):
requirements from.
"""
depsolver = YumBaseCli()
+ depsolver.arch.setup_arch('x86_64')
self.rpmdb = depsolver.rpmdb = FakeRpmDb()
self.xsack = depsolver._pkgSack = packageSack.PackageSack()
self.repo = depsolver.repo = FakeRepo("installed")
diff --git a/yum/Errors.py b/yum/Errors.py
index 322765e..6f0ffe4 100644
--- a/yum/Errors.py
+++ b/yum/Errors.py
@@ -86,6 +86,12 @@ class RemoveError(YumBaseError):
class ReinstallError(YumBaseError):
pass
+class ReinstallRemoveError(ReinstallError):
+ pass
+
+class ReinstallInstallError(ReinstallError):
+ pass
+
class DowngradeError(YumBaseError):
pass
diff --git a/yum/__init__.py b/yum/__init__.py
index 6378cdc..1a3ee3f 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -43,8 +43,7 @@ except ImportError:
import Errors
import rpmsack
import rpmUtils.updates
-import rpmUtils.arch
-from rpmUtils.arch import getCanonArch, archDifference, canCoinstall
+from rpmUtils.arch import canCoinstall, ArchStorage, isMultiLibArch
import rpmUtils.transaction
import comps
import config
@@ -101,7 +100,8 @@ class _YumPreBaseConf:
self.syslog_ident = None
self.syslog_facility = None
self.syslog_device = '/dev/log'
-
+ self.arch = None
+ self.releasever = None
class YumBase(depsolve.Depsolve):
"""This is a primary structure and base class. It houses the objects and
@@ -129,9 +129,10 @@ class YumBase(depsolve.Depsolve):
self.localPackages = [] # for local package handling
self.mediagrabber = None
-
+ self.arch = ArchStorage()
self.preconf = _YumPreBaseConf()
+
def __del__(self):
self.close()
self.closeRpmDB()
@@ -203,6 +204,13 @@ class YumBase(depsolve.Depsolve):
syslog_ident = self.preconf.syslog_ident
syslog_facility = self.preconf.syslog_facility
syslog_device = self.preconf.syslog_device
+ releasever = self.preconf.releasever
+ arch = self.preconf.arch
+
+ if arch: # if preconf is setting an arch we need to pass that up
+ self.arch.setup_arch(arch)
+ else:
+ arch = self.arch.canonarch
# We don't want people accessing/altering preconf after it becomes
# worthless. So we delete it, and thus. it'll raise AttributeError
@@ -215,6 +223,9 @@ class YumBase(depsolve.Depsolve):
fn = '/etc/yum.conf'
startupconf = config.readStartupConfig(fn, root)
+ startupconf.arch = arch
+ startupconf.basearch = self.arch.basearch
+
if startupconf.gaftonmode:
global _
_ = yum.i18n.dummy_wrapper
@@ -227,6 +238,8 @@ class YumBase(depsolve.Depsolve):
startupconf.syslog_ident = syslog_ident
if syslog_facility != None:
startupconf.syslog_facility = syslog_facility
+ if releasever != None:
+ startupconf.releasever = releasever
self.doLoggingSetup(startupconf.debuglevel, startupconf.errorlevel,
startupconf.syslog_ident,
@@ -427,6 +440,9 @@ class YumBase(depsolve.Depsolve):
def closeRpmDB(self):
"""closes down the instances of the rpmdb we have wangling around"""
+ if self._rpmdb is not None:
+ self._rpmdb.ts = None
+ self._rpmdb.dropCachedData()
self._rpmdb = None
self._ts = None
self._tsInfo = None
@@ -478,7 +494,7 @@ class YumBase(depsolve.Depsolve):
self.verbose_logger.debug(_('Setting up Package Sacks'))
sack_st = time.time()
if not archlist:
- archlist = rpmUtils.arch.getArchList()
+ archlist = self.arch.archlist
archdict = {}
for arch in archlist:
@@ -548,7 +564,11 @@ class YumBase(depsolve.Depsolve):
obs_init = time.time()
self._up.rawobsoletes = self.pkgSack.returnObsoletes()
self.verbose_logger.debug('up:Obs Init time: %0.3f' % (time.time() - obs_init))
-
+
+ self._up.myarch = self.arch.canonarch
+ self._up._is_multilib = self.arch.multilib
+ self._up._archlist = self.arch.archlist
+ self._up._multilib_compat_arches = self.arch.compatarches
self._up.exactarch = self.conf.exactarch
self._up.exactarchlist = self.conf.exactarchlist
up_pr_st = time.time()
@@ -861,11 +881,10 @@ class YumBase(depsolve.Depsolve):
def _getPackagesToRemoveAllArch(self,po):
''' get all compatible arch packages in pkgSack'''
pkgs = []
- if rpmUtils.arch.isMultiLibArch():
- archs = rpmUtils.arch.getArchList()
+ if self.arch.multilib:
n,a,e,v,r = po.pkgtup
# skip for all compat archs
- for a in archs:
+ for a in self.arch.archlist:
pkgtup = (n,a,e,v,r)
matched = self.pkgSack.searchNevra(n,e,v,r,a)
pkgs.extend(matched)
@@ -879,10 +898,9 @@ class YumBase(depsolve.Depsolve):
def _skipFromTransaction(self,po):
skipped = []
- archs = rpmUtils.arch.getArchList()
n,a,e,v,r = po.pkgtup
# skip for all compat archs
- for a in archs:
+ for a in self.arch.archlist:
pkgtup = (n,a,e,v,r)
if self.tsInfo.exists(pkgtup):
for txmbr in self.tsInfo.getMembers(pkgtup):
@@ -1008,6 +1026,7 @@ class YumBase(depsolve.Depsolve):
# for any kind of install add from_repo to the yumdb, and the cmdline
# and the install reason
+ self.rpmdb.dropCachedData()
for txmbr in self.tsInfo:
if txmbr.output_state in TS_INSTALL_STATES:
if not self.rpmdb.contains(po=txmbr.po):
@@ -1017,11 +1036,21 @@ class YumBase(depsolve.Depsolve):
' but is not!' % txmbr.po))
continue
po = self.rpmdb.searchPkgTuple(txmbr.pkgtup)[0]
- po.yumdb_info.from_repo = txmbr.po.repoid
+ rpo = txmbr.po
+ po.yumdb_info.from_repo = rpo.repoid
po.yumdb_info.reason = txmbr.reason
po.yumdb_info.releasever = self.yumvar['releasever']
if hasattr(self, 'cmds') and self.cmds:
po.yumdb_info.command_line = ' '.join(self.cmds)
+ csum = rpo.returnIdSum()
+ if csum is not None:
+ po.yumdb_info.checksum_type = str(csum[0])
+ po.yumdb_info.checksum_data = str(csum[1])
+ md = rpo.repo.repoXML
+ if md and md.revision is not None:
+ po.yumdb_info.from_repo_revision = str(md.revision)
+ if md:
+ po.yumdb_info.from_repo_timestamp = str(md.timestamp)
elif txmbr.output_state in TS_REMOVE_STATES:
if self.rpmdb.contains(po=txmbr.po):
@@ -1037,7 +1066,7 @@ class YumBase(depsolve.Depsolve):
else:
self.verbose_logger.log(logginglevels.DEBUG_2, 'What is this? %s' % txmbr.po)
-
+ self.rpmdb.dropCachedData()
def costExcludePackages(self):
"""exclude packages if they have an identical package in another repo
@@ -1102,24 +1131,8 @@ class YumBase(depsolve.Depsolve):
excludelist = repo.getExcludePkgList()
repoid = repo.id
- if len(excludelist) == 0:
- return
-
- if not repo:
- self.verbose_logger.log(logginglevels.INFO_2, _('Excluding Packages in global exclude list'))
- else:
- self.verbose_logger.log(logginglevels.INFO_2, _('Excluding Packages from %s'),
- repo.name)
-
- pkgs = self._pkgSack.returnPackages(repoid, patterns=excludelist,
- ignore_case=False)
-
- for po in pkgs:
- self.verbose_logger.debug('Excluding %s', po)
- po.repo.sack.delPackage(po)
-
-
- self.verbose_logger.log(logginglevels.INFO_2, 'Finished')
+ for match in excludelist:
+ self.pkgSack.addPackageExcluder(repoid, 'exclude.match', match)
def includePackages(self, repo):
"""removes packages from packageSacks based on list of packages, to include.
@@ -1130,29 +1143,9 @@ class YumBase(depsolve.Depsolve):
if len(includelist) == 0:
return
- # FIXME: Here we have to get all packages, and then exclude those that
- # don't match. Need a "negation" flag for returnPackages().
- pkglist = self.pkgSack.returnPackages(repo.id)
- exactmatch, matched, unmatched = \
- parsePackages(pkglist, includelist, casematch=1)
-
- self.verbose_logger.log(logginglevels.INFO_2,
- _('Reducing %s to included packages only'), repo.name)
- rmlist = []
- keeplist = set(exactmatch + matched)
-
- for po in pkglist:
- if po in keeplist:
- self.verbose_logger.debug(_('Keeping included package %s'), po)
- continue
- else:
- rmlist.append(po)
-
- for po in rmlist:
- self.verbose_logger.debug(_('Removing unmatched package %s'), po)
- po.repo.sack.delPackage(po)
-
- self.verbose_logger.log(logginglevels.INFO_2, _('Finished'))
+ for match in includelist:
+ self.pkgSack.addPackageExcluder(repo.id, 'include.match', match)
+ self.pkgSack.addPackageExcluder(repo.id, 'exclude.*')
def doLock(self, lockfile = YUM_PID_FILE):
"""perform the yum locking, raise yum-based exceptions, not OSErrors"""
@@ -2208,10 +2201,10 @@ class YumBase(depsolve.Depsolve):
# sure we'll catch it if its added later in this transaction
pkgs = self.pkgSack.searchNevra(name=condreq)
if pkgs:
- if rpmUtils.arch.isMultiLibArch():
+ if self.arch.multilib:
if self.conf.multilib_policy == 'best':
use = []
- best = rpmUtils.arch.legitMultiArchesInSameLib()
+ best = self.arch.legit_multi_arches
best.append('noarch')
for pkg in pkgs:
if pkg.arch in best:
@@ -2416,7 +2409,7 @@ class YumBase(depsolve.Depsolve):
multilib to singlelib packages"""
returnlist = []
- compatArchList = rpmUtils.arch.getArchList(arch)
+ compatArchList = self.arch.get_arch_list(arch)
multiLib = []
singleLib = []
noarch = []
@@ -2425,7 +2418,7 @@ class YumBase(depsolve.Depsolve):
continue
elif po.arch in ("noarch"):
noarch.append(po)
- elif rpmUtils.arch.isMultiLibArch(arch=po.arch):
+ elif isMultiLibArch(arch=po.arch):
multiLib.append(po)
else:
singleLib.append(po)
@@ -2614,14 +2607,14 @@ class YumBase(depsolve.Depsolve):
# only do these things if we're multilib
- if rpmUtils.arch.isMultiLibArch():
+ if self.arch.multilib:
if was_pattern or not nevra_dict['arch']: # and only if they
# they didn't specify an arch
if self.conf.multilib_policy == 'best':
pkgs_by_name = {}
use = []
not_added = []
- best = rpmUtils.arch.legitMultiArchesInSameLib()
+ best = self.arch.legit_multi_arches
best.append('noarch')
for pkg in pkgs:
if pkg.arch in best:
@@ -3085,7 +3078,7 @@ class YumBase(depsolve.Depsolve):
# do this: but it's not a config file sort of thing
# FIXME: Should add noarch, yum localinstall works ...
# just rm this method?
- if po.arch not in rpmUtils.arch.getArchList():
+ if po.arch not in self.arch.archlist:
self.logger.critical(_('Cannot add package %s to transaction. Not a compatible architecture: %s'), pkg, po.arch)
return tx_return
@@ -3110,8 +3103,8 @@ class YumBase(depsolve.Depsolve):
updatepkgs.append((po, installed_pkg))
elif po.verEQ(installed_pkg):
if (po.arch != installed_pkg.arch and
- (rpmUtils.arch.isMultiLibArch(po.arch) or
- rpmUtils.arch.isMultiLibArch(installed_pkg.arch))):
+ (isMultiLibArch(po.arch) or
+ isMultiLibArch(installed_pkg.arch))):
installpkgs.append(po)
else:
donothingpkgs.append(po)
@@ -3171,7 +3164,7 @@ class YumBase(depsolve.Depsolve):
self.verbose_logger.log(logginglevels.INFO_2,
_('Examining %s: %s'), po.localpath, po)
- if po.arch not in rpmUtils.arch.getArchList():
+ if po.arch not in self.arch.archlist:
self.logger.critical(_('Cannot add package %s to transaction. Not a compatible architecture: %s'), pkg, po.arch)
return []
@@ -3199,7 +3192,7 @@ class YumBase(depsolve.Depsolve):
tx_mbrs = []
tx_mbrs.extend(self.remove(po, **kwargs))
if not tx_mbrs:
- raise Errors.ReinstallError, _("Problem in reinstall: no package matched to remove")
+ raise Errors.ReinstallRemoveError, _("Problem in reinstall: no package matched to remove")
templen = len(tx_mbrs)
# this is a reinstall, so if we can't reinstall exactly what we uninstalled
# then we really shouldn't go on
@@ -3229,7 +3222,7 @@ class YumBase(depsolve.Depsolve):
if len(members) == 0:
self.tsInfo.remove(item.pkgtup)
tx_mbrs.remove(item)
- raise Errors.ReinstallError, _("Problem in reinstall: no package matched to install")
+ raise Errors.ReinstallInstallError, _("Problem in reinstall: no package %s matched to install") % item.po
new_members.extend(members)
tx_mbrs.extend(new_members)
@@ -3255,7 +3248,7 @@ class YumBase(depsolve.Depsolve):
self.verbose_logger.log(logginglevels.INFO_2,
_('Examining %s: %s'), po.localpath, po)
- if po.arch not in rpmUtils.arch.getArchList():
+ if po.arch not in self.arch.archlist:
self.logger.critical(_('Cannot add package %s to transaction. Not a compatible architecture: %s'), pkg, po.arch)
return []
@@ -3385,14 +3378,11 @@ class YumBase(depsolve.Depsolve):
na = (po.name, po.arch)
if na not in downgrade_apkgs:
continue
- itxmbr = self.tsInfo.addErase(po)
- atxmbr = self.tsInfo.addInstall(downgrade_apkgs[na])
- if not atxmbr: # Fail?
- self.tsInfo.remove(itxmbr.pkgtup)
+ txmbrs = self.tsInfo.addDowngrade(downgrade_apkgs[na], po)
+ if not txmbrs: # Fail?
continue
self._add_prob_flags(rpm.RPMPROB_FILTER_OLDPACKAGE)
- tx_return.append(itxmbr)
- tx_return.append(atxmbr)
+ tx_return.extend(txmbrs)
return tx_return
@@ -3596,6 +3586,36 @@ class YumBase(depsolve.Depsolve):
def _limit_installonly_pkgs(self):
+ """ Limit packages based on conf.installonly_limit, if any of the
+ packages being installed have a provide in conf.installonlypkgs.
+ New in 3.2.24: Obey yumdb_info.installonly data. """
+
+ def _sort_and_filter_installonly(pkgs):
+ """ Allow the admin to specify some overrides fo installonly pkgs.
+ using the yumdb. """
+ ret_beg = []
+ ret_mid = []
+ ret_end = []
+ for pkg in sorted(pkgs):
+ if 'installonly' not in pkg.yumdb_info:
+ ret_mid.append(pkg)
+ continue
+
+ if pkg.yumdb_info.installonly == 'keep':
+ continue
+
+ if True: # Don't to magic sorting, yet
+ ret_mid.append(pkg)
+
+ if pkg.yumdb_info.installonly == 'remove-first':
+ ret_beg.append(pkg)
+ elif pkg.yumdb_info.installonly == 'remove-last':
+ ret_end.append(pkg)
+ else:
+ ret_mid.append(pkg)
+
+ return ret_beg + ret_mid + ret_end
+
if self.conf.installonly_limit < 1 :
return
@@ -3612,9 +3632,9 @@ class YumBase(depsolve.Depsolve):
if (m.name == instpkg or instpkg in m.po.provides_names) \
and m.ts_state in ('i', 'u'):
installed = self.rpmdb.searchNevra(name=m.name)
+ installed = _sort_and_filter_installonly(installed)
if len(installed) >= self.conf.installonly_limit - 1: # since we're adding one
numleft = len(installed) - self.conf.installonly_limit + 1
- installed.sort(comparePoEVR)
for po in installed:
if (po.version, po.release) == (cur_kernel_v, cur_kernel_r):
# don't remove running
@@ -3828,3 +3848,19 @@ class YumBase(depsolve.Depsolve):
self.repos.enableRepo(newrepo.id)
return newrepo
+ def setCacheDir(self, force=False, tmpdir='/var/tmp', reuse=True,
+ suffix='/$basearch/$releasever'):
+ ''' Set a new cache dir, using misc.getCacheDir() and var. replace
+ on suffix. '''
+
+ if not force and os.geteuid() == 0:
+ return True # We are root, not forced, so happy with the global dir.
+
+ cachedir = misc.getCacheDir(tmpdir, reuse)
+ if cachedir is None:
+ return False # Tried, but failed, to get a "user" cachedir
+
+ self.repos.setCacheDir(cachedir + varReplace(suffix, self.yumvar))
+
+ return True # We got a new cache dir
+
diff --git a/yum/config.py b/yum/config.py
index 9a47f1c..4737bd1 100644
--- a/yum/config.py
+++ b/yum/config.py
@@ -24,12 +24,11 @@ import warnings
import rpm
import copy
import urlparse
-from parser import ConfigPreProcessor
+from parser import ConfigPreProcessor, varReplace
from iniparse import INIConfig
from iniparse.compat import NoSectionError, NoOptionError, ConfigParser
from iniparse.compat import ParsingError
import rpmUtils.transaction
-import rpmUtils.arch
import Errors
# Alter/patch these to change the default checking...
@@ -771,9 +770,10 @@ def readStartupConfig(configfile, root):
for path in startupconf.pluginpath:
if not path[0] == '/':
raise Errors.ConfigError("All plugin search paths must be absolute")
-
# Stuff this here to avoid later re-parsing
startupconf._parser = parser
+ # setup the release ver here
+ startupconf.releasever = _getsysver(startupconf.installroot, startupconf.distroverpkg)
return startupconf
@@ -789,9 +789,9 @@ def readMainConfig(startupconf):
# Set up substitution vars
yumvars = _getEnvVar()
- yumvars['basearch'] = rpmUtils.arch.getBaseArch() # FIXME make this configurable??
- yumvars['arch'] = rpmUtils.arch.getCanonArch() # FIXME make this configurable??
- yumvars['releasever'] = _getsysver(startupconf.installroot, startupconf.distroverpkg)
+ yumvars['basearch'] = startupconf.basearch
+ yumvars['arch'] = startupconf.arch
+ yumvars['releasever'] = startupconf.releasever
# Read [main] section
yumconf = YumConf()
@@ -803,6 +803,7 @@ def readMainConfig(startupconf):
ir_path = yumconf.installroot + path
ir_path = ir_path.replace('//', '/') # os.path.normpath won't fix this and
# it annoys me
+ ir_path = varReplace(ir_path, yumvars)
setattr(yumconf, option, ir_path)
# Add in some extra attributes which aren't actually configuration values
diff --git a/yum/depsolve.py b/yum/depsolve.py
index 370d12a..81de803 100644
--- a/yum/depsolve.py
+++ b/yum/depsolve.py
@@ -15,7 +15,7 @@
# Copyright 2005 Duke University
"""
-Depedancy resolution module for yum.
+Dependency resolution module for yum.
"""
import os.path
@@ -24,8 +24,7 @@ import logging
import rpmUtils.transaction
import rpmUtils.miscutils
-import rpmUtils.arch
-from rpmUtils.arch import archDifference, isMultiLibArch, getBestArch, canCoinstall
+from rpmUtils.arch import archDifference, canCoinstall
import misc
from misc import unique, version_tuple_to_string
import rpm
@@ -1046,7 +1045,7 @@ class Depsolve(object):
# return the package which is closer or None for equal, or equally useless
x_dist = archDifference(req_compare_arch, x.arch)
- if isMultiLibArch(): # only go to the next one if we're multilib -
+ if self.arch.multilib: # only go to the next one if we're multilib -
if x_dist == 0: # can't really use best's arch anyway...
self.verbose_logger.log(logginglevels.DEBUG_4,
_("better arch in po %s") %(y))
@@ -1106,6 +1105,7 @@ class Depsolve(object):
# add the negative of the length of the name to the score
+
for po in pkgs:
for nextpo in pkgs:
if po == nextpo:
@@ -1115,8 +1115,7 @@ class Depsolve(object):
# treat it like it's obsoleted. The problem here is X-1
# accidentally provides FOO, so you release X-2 without the
# provide, but X-1 is still picked over a real provider.
- na = (po.name,po.arch)
- lpos = self.pkgSack.returnNewestByNameArch(naTup=na)
+ lpos = self.pkgSack.returnNewestByName(po.name)
if not lpos or po != sorted(lpos)[-1]:
pkgresults[po] -= 1024
@@ -1130,9 +1129,9 @@ class Depsolve(object):
_("%s obsoletes %s") % (nextpo, po))
if reqpo:
- arches = (reqpo.arch, getBestArch())
+ arches = (reqpo.arch, self.arch.bestarch)
else:
- arches = (getBestArch(),)
+ arches = (self.arch.bestarch,)
for thisarch in arches:
res = _compare_arch_distance(po, nextpo, thisarch)
diff --git a/yum/misc.py b/yum/misc.py
index 7d4ee61..2135634 100644
--- a/yum/misc.py
+++ b/yum/misc.py
@@ -24,13 +24,13 @@ except ImportError:
gpgme = None
try:
import hashlib
- _available_checksums = ['md5', 'sha1', 'sha256', 'sha512']
+ _available_checksums = set(['md5', 'sha1', 'sha256', 'sha512'])
_default_checksums = ['sha256']
except ImportError:
# Python-2.4.z ... gah!
import sha
import md5
- _available_checksums = ['md5', 'sha1']
+ _available_checksums = set(['md5', 'sha1'])
_default_checksums = ['sha1']
class hashlib:
diff --git a/yum/packageSack.py b/yum/packageSack.py
index f405217..16c4f1e 100644
--- a/yum/packageSack.py
+++ b/yum/packageSack.py
@@ -25,6 +25,22 @@ import fnmatch
import misc
from packages import parsePackages
+class PackageSackVersion:
+ def __init__(self):
+ self._num = 0
+ self._chksum = misc.Checksums(['sha1'])
+
+ def __str__(self):
+ return "%u:%s" % (self._num, self._chksum.hexdigest())
+
+ def update(self, pkg, csum):
+ self._num += 1
+ self._chksum.update(str(pkg))
+ if csum is not None:
+ self._chksum.update(csum[0])
+ self._chksum.update(csum[1])
+
+
class PackageSackBase(object):
"""Base class that provides the interface for PackageSacks."""
def __init__(self):
@@ -148,6 +164,29 @@ class PackageSackBase(object):
"""return list of all packages"""
raise NotImplementedError()
+ def addPackageExcluder(self, repoid, excluder, *args):
+ """exclude packages, for a variety of reasons"""
+ raise NotImplementedError()
+
+ def simpleVersion(self):
+ """ Return a simple version for all available packages. """
+ main = PackageSackVersion()
+ arepos = {}
+ for pkg in sorted(self.returnPackages()):
+ csum = pkg.returnIdSum()
+ main.update(pkg, csum)
+
+ arevs = arepos.setdefault(pkg.repoid, {})
+ rpsv = arevs.setdefault(None, PackageSackVersion())
+ rpsv.update(pkg, csum)
+
+ if pkg.repo.repoXML.revision is not None:
+ rev = pkg.repo.repoXML.revision
+ rpsv = arevs.setdefault(rev, PackageSackVersion())
+ rpsv.update(pkg, csum)
+
+ return [main, arepos]
+
def returnNewestByNameArch(self, naTup=None,
patterns=None, ignore_case=False):
"""return list of newest packages based on name, arch matching
@@ -397,6 +436,13 @@ class MetaSack(PackageSackBase):
return self.sacks[repoid].returnPackages(patterns=patterns,
ignore_case=ignore_case)
+ def addPackageExcluder(self, repoid, excluder, *args):
+ """exclude packages, for a variety of reasons"""
+ if not repoid:
+ return self._computeAggregateListResult("addPackageExcluder",
+ None, excluder, *args)
+ return self.sacks[repoid].addPackageExcluder(None, excluder, *args)
+
def returnNewestByNameArch(self, naTup=None,
patterns=None, ignore_case=False):
"""return list of newest packages based on name, arch matching
diff --git a/yum/packages.py b/yum/packages.py
index e3a12f2..9827f9d 100644
--- a/yum/packages.py
+++ b/yum/packages.py
@@ -27,8 +27,8 @@ import re
import fnmatch
import stat
import warnings
+from subprocess import Popen, PIPE
from rpmUtils import RpmUtilsError
-import rpmUtils.arch
import rpmUtils.miscutils
from rpmUtils.miscutils import flagToString, stringToVersion
import Errors
@@ -909,11 +909,11 @@ class YumAvailablePackage(PackageObject, RpmBase):
if flags:
pcostring += ''' flags="%s"''' % flags
if e:
- pcostring += ''' epoch="%s"''' % e
+ pcostring += ''' epoch="%s"''' % misc.to_xml(e, attrib=True)
if v:
- pcostring += ''' ver="%s"''' % v
+ pcostring += ''' ver="%s"''' % misc.to_xml(v, attrib=True)
if r:
- pcostring += ''' rel="%s"''' % r
+ pcostring += ''' rel="%s"''' % misc.to_xml(r, attrib=True)
pcostring += "/>\n"
msg += pcostring
@@ -980,11 +980,11 @@ class YumAvailablePackage(PackageObject, RpmBase):
if flags:
prcostring += ''' flags="%s"''' % flags
if e:
- prcostring += ''' epoch="%s"''' % e
+ prcostring += ''' epoch="%s"''' % misc.to_xml(e, attrib=True)
if v:
- prcostring += ''' ver="%s"''' % v
+ prcostring += ''' ver="%s"''' % misc.to_xml(v, attrib=True)
if r:
- prcostring += ''' rel="%s"''' % r
+ prcostring += ''' rel="%s"''' % misc.to_xml(r, attrib=True)
if pre:
prcostring += ''' pre="%s"''' % pre
@@ -1386,8 +1386,14 @@ class YumInstalledPackage(YumHeaderPackage):
# stat
my_st = os.lstat(fn)
my_st_size = my_st.st_size
- my_user = pwd.getpwuid(my_st[stat.ST_UID])[0]
- my_group = grp.getgrgid(my_st[stat.ST_GID])[0]
+ try:
+ my_user = pwd.getpwuid(my_st[stat.ST_UID])[0]
+ except KeyError, e:
+ my_user = 'uid %s not found' % my_st[stat.ST_UID]
+ try:
+ my_group = grp.getgrgid(my_st[stat.ST_GID])[0]
+ except KeyError, e:
+ my_group = 'gid %s not found' % my_st[stat.ST_GID]
if mode < 0:
# Stupid rpm, should be unsigned value but is signed ...
@@ -1481,7 +1487,10 @@ class YumInstalledPackage(YumHeaderPackage):
if gen_csum and my_csum != csum and have_prelink:
# This is how rpm -V works, try and if that fails try
# again with prelink.
- (ig, fp,er) = os.popen3([prelink_cmd, "-y", fn])
+ p = Popen([prelink_cmd, "-y", fn],
+ shell=True, bufsize=-1, stdin=PIPE,
+ stdout=PIPE, stderr=PIPE, close_fds=True)
+ (ig, fp, er) = (p.stdin, p.stdout, p.stderr)
# er.read(1024 * 1024) # Try and get most of the stderr
fp = _CountedReadFile(fp)
my_csum = misc.checksum(csum_type, fp)
diff --git a/yum/rpmsack.py b/yum/rpmsack.py
index 5189b18..c5a5b77 100644
--- a/yum/rpmsack.py
+++ b/yum/rpmsack.py
@@ -25,7 +25,7 @@ from rpmUtils.transaction import initReadOnlyTransaction
import misc
import Errors
from packages import YumInstalledPackage, parsePackages
-from packageSack import PackageSackBase
+from packageSack import PackageSackBase, PackageSackVersion
# For returnPackages(patterns=)
import fnmatch
@@ -140,7 +140,10 @@ class RPMDBPackageSack(PackageSackBase):
self._simple_pkgtup_list = []
self._get_pro_cache = {}
self._get_req_cache = {}
- misc.unshare_data()
+ # We can be called on python shutdown (due to yb.__del__), at which
+ # point other modules might not be available.
+ if misc is not None:
+ misc.unshare_data()
self._cache = {
'provides' : { },
'requires' : { },
@@ -332,6 +335,32 @@ class RPMDBPackageSack(PackageSackBase):
pkgobjlist = pkgobjlist[0] + pkgobjlist[1]
return pkgobjlist
+ def simpleVersion(self):
+ """ Return a simple version for all installed packages. """
+ main = PackageSackVersion()
+ irepos = {}
+ for pkg in sorted(self.returnPackages()):
+ ydbi = pkg.yumdb_info
+ csum = None
+ if 'checksum_type' in ydbi and 'checksum_data' in ydbi:
+ csum = (ydbi.checksum_type, ydbi.checksum_data)
+ main.update(pkg, csum)
+
+ repoid = 'installed'
+ rev = None
+ if 'from_repo' in pkg.yumdb_info:
+ repoid = '@' + pkg.yumdb_info.from_repo
+ if 'from_repo_revision' in pkg.yumdb_info:
+ rev = pkg.yumdb_info.from_repo_revision
+ irevs = irepos.setdefault(repoid, {})
+ rpsv = irevs.setdefault(None, PackageSackVersion())
+ rpsv.update(pkg, csum)
+ if rev is not None:
+ rpsv = irevs.setdefault(rev, PackageSackVersion())
+ rpsv.update(pkg, csum)
+
+ return [main, irepos]
+
@staticmethod
def _find_search_fields(fields, searchstrings, hdr):
count = 0
@@ -735,6 +764,9 @@ class RPMDBAdditionalDataPackage(object):
def _read(self, attr):
attr = _sanitize(attr)
+ if attr.endswith('.tmp'):
+ raise AttributeError, "%s has no attribute %s" % (self, attr)
+
if attr in self._read_cached_data:
return self._read_cached_data[attr]
@@ -751,7 +783,7 @@ class RPMDBAdditionalDataPackage(object):
def _delete(self, attr):
"""remove the attribute file"""
- self.get(attr)
+ attr = _sanitize(attr)
fn = self._mydir + '/' + attr
if attr in self._read_cached_data:
del self._read_cached_data[attr]
@@ -776,18 +808,20 @@ class RPMDBAdditionalDataPackage(object):
else:
object.__delattr__(self, attr)
- def __iter__(self):
+ def __iter__(self, show_hidden=False):
for item in self._read_cached_data:
yield item
for item in glob.glob(self._mydir + '/*'):
item = item[(len(self._mydir) + 1):]
if item in self._read_cached_data:
continue
+ if not show_hidden and item.endswith('.tmp'):
+ continue
yield item
def clean(self):
# purge out everything
- for item in self:
+ for item in self.__iter__(show_hidden=True):
self._delete(item)
try:
os.rmdir(self._mydir)
diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index 7d87e0b..96ed13c 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -60,6 +60,52 @@ def catchSqliteException(func):
def _share_data(value):
return misc.share_data(value)
+# FIXME: parsePackages()
+import re
+import fnmatch
+def _parse_pkg_n(match, regexp_match, n):
+ if match == n:
+ return True
+ if not regexp_match:
+ return False
+
+ if (match and n and match[0] not in ('?', '*') and match[0] != n[0]):
+ return False
+ if regexp_match(n):
+ return True
+ return False
+
+def _parse_pkg(match, regexp_match, data, e,v,r,a):
+
+ n = data['n']
+ assert e, 'Nothing in epoch'
+ # Worthless speed hacks?
+ if match == n:
+ return True
+ if (match and n and match[0] not in ('?', '*') and
+ match[0] != n[0] and match[0] != e[0]):
+ return False
+
+ if 'nameArch' not in data:
+ data['nameArch'] = '%s.%s' % (n, a)
+ data['nameVerRelArch'] = '%s-%s-%s.%s' % (n, v, r, a)
+ data['nameVer'] = '%s-%s' % (n, v)
+ data['nameVerRel'] = '%s-%s-%s' % (n, v, r)
+ data['envra'] = '%s:%s-%s-%s.%s' % (e, n, v, r, a)
+ data['nevra'] = '%s-%s:%s-%s.%s' % (n, e, v, r, a)
+ data = set([n, data['nameArch'], data['nameVerRelArch'], data['nameVer'],
+ data['nameVerRel'], data['envra'], data['nevra']])
+
+ if match in data:
+ return True
+ if not regexp_match:
+ return False
+
+ for item in data:
+ if regexp_match(item):
+ return True
+ return False
+
class YumAvailablePackageSqlite(YumAvailablePackage, PackageObject, RpmBase):
def __init__(self, repo, db_obj):
self.prco = { 'obsoletes': (),
@@ -291,8 +337,9 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
self.primarydb = {}
self.filelistsdb = {}
self.otherdb = {}
- self.excludes = {}
+ self.excludes = {} # of [repo] => {} of pkgId's => 1
self._excludes = set() # of (repo, pkgKey)
+ self._exclude_whitelist = set() # of (repo, pkgKey)
self._all_excludes = {}
self._search_cache = {
'provides' : { },
@@ -300,6 +347,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
}
self._key2pkg = {}
self._arch_allowed = None
+ self._pkgExcluder = []
@catchSqliteException
def _sql_MD(self, MD, repo, sql, *args):
@@ -364,6 +412,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
self.otherdb = {}
self.excludes = {}
self._excludes = set()
+ self._exclude_whitelist = set()
self._all_excludes = {}
yumRepo.YumPackageSack.close(self)
@@ -376,6 +425,11 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
def _checkIndexes(self, failure='error'):
return
+ def _delPackageRK(self, repo, pkgKey):
+ ''' Exclude a package so that _pkgExcluded*() knows it's gone.
+ Note that this doesn't update self.exclude. '''
+ self._excludes.add((repo, pkgKey))
+
# Remove a package
# Because we don't want to remove a package from the database we just
# add it to the exclude list
@@ -383,7 +437,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
if not self.excludes.has_key(obj.repo):
self.excludes[obj.repo] = {}
self.excludes[obj.repo][obj.pkgId] = 1
- self._excludes.add( (obj.repo, obj.pkgKey) )
+ self._delPackageRK(obj.repo, obj.pkgKey)
def _delAllPackages(self, repo):
""" Exclude all packages from the repo. """
@@ -408,36 +462,170 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
return (repo, pkgKey) in self._excludes
- def _pkgArchExcluded(self, pkgarch):
- """ Test the arch for a package against the archlist we were passed. """
- if self._arch_allowed is not None and pkgarch not in self._arch_allowed:
+ def _pkgExcludedRKNEVRA(self, repo,pkgKey, n,e,v,r,a):
+ ''' Main function to use for "can we use this package" question.
+ . Tests repo against allowed repos.
+ . Tests pkgKey against allowed packages.
+ . Tests arch against allowed arches.
+ . Tests addPackageExcluder() calls.
+ '''
+
+ if (repo, pkgKey) in self._exclude_whitelist:
+ return False
+
+ if self._pkgKeyExcluded(repo, pkgKey):
return True
+
+ if self._arch_allowed is not None and a not in self._arch_allowed:
+ self._delPackageRK(repo, pkgKey)
+ return True
+
+ data = {'n' : n.lower()}
+ e = e.lower()
+ v = v.lower()
+ r = r.lower()
+ a = a.lower()
+
+ for repoid, excluder, match, regexp_match in self._pkgExcluder:
+ if repoid is not None and repoid != repo.id:
+ continue
+
+ if False: pass
+ elif excluder in ('exclude.eq', 'exclude.match'):
+ if _parse_pkg(match, regexp_match, data, e,v,r,a):
+ self._delPackageRK(repo, pkgKey)
+ return True
+
+ elif excluder in ('exclude.name.eq', 'exclude.name.match'):
+ if _parse_pkg_n(match, regexp_match, data['n']):
+ self._delPackageRK(repo, pkgKey)
+ return True
+
+ elif excluder in ('exclude.arch.eq', 'exclude.arch.match'):
+ if _parse_pkg_n(match, regexp_match, a):
+ self._delPackageRK(repo, pkgKey)
+ return True
+
+ elif excluder in ('exclude.nevra.eq', 'exclude.nevra.match'):
+ if 'nevra' not in data:
+ data['nevra'] = '%s-%s:%s-%s.%s' % (n, e, v, r, a)
+ if _parse_pkg_n(match, regexp_match, data['nevra']):
+ self._delPackageRK(repo, pkgKey)
+ return True
+
+ elif excluder == 'exclude.name.in':
+ if data['n'] in match:
+ self._delPackageRK(repo, pkgKey)
+ return True
+
+ elif excluder == 'exclude.nevra.in':
+ if 'nevra' not in data:
+ data['nevra'] = '%s-%s:%s-%s.%s' % (n, e, v, r, a)
+ if data['nevra'] in match:
+ self._delPackageRK(repo, pkgKey)
+ return True
+
+ elif excluder in ('include.eq', 'include.match'):
+ if _parse_pkg(match, regexp_match, data, e,v,r,a):
+ break
+
+ elif excluder in ('include.name.eq', 'include.name.match'):
+ if _parse_pkg_n(match, regexp_match, data['n']):
+ break
+
+ elif excluder in ('include.arch.eq', 'include.arch.match'):
+ if _parse_pkg_n(match, regexp_match, a):
+ break
+
+ elif excluder in ('include.nevra.eq', 'include.nevra.match'):
+ if 'nevra' not in data:
+ data['nevra'] = '%s-%s:%s-%s.%s' % (n, e, v, r, a)
+ if _parse_pkg_n(match, regexp_match, data['nevra']):
+ break
+
+ elif excluder == 'include.name.in':
+ if data['n'] in match:
+ break
+
+ elif excluder == 'include.nevra.in':
+ if 'nevra' not in data:
+ data['nevra'] = '%s-%s:%s-%s.%s' % (n, e, v, r, a)
+ if data['nevra'] in match:
+ break
+
+ elif excluder == 'exclude.*':
+ self._delPackageRK(repo, pkgKey)
+ return True
+
+ elif excluder == 'include.*':
+ break
+
+ else:
+ assert False, 'Bad excluder: ' + excluder
+
+ self._exclude_whitelist.add((repo, pkgKey))
return False
- def _pkgExcluded(self, po):
- return (self._pkgKeyExcluded(po.repo, po.pkgKey) or
- self._pkgArchExcluded(po.arch))
+ def _pkgExcludedRKT(self, repo,pkgKey, pkgtup):
+ ''' Helper function to call _pkgRKNEVRAExcluded.
+ Takes a repo, pkgKey and a package tuple'''
+ (n,a,e,v,r) = pkgtup
+ return self._pkgExcludedRKNEVRA(repo, pkgKey, n,e,v,r,a)
+
+ def _pkgExcludedRKD(self, repo,pkgKey, data):
+ ''' Helper function to call _pkgRKNEVRAExcluded.
+ Takes a repo, pkgKey and a dict of package data'''
+ (n,a,e,v,r) = (data['name'], data['arch'],
+ data['epoch'], data['version'], data['release'])
+ return self._pkgExcludedRKNEVRA(repo, pkgKey, n,e,v,r,a)
- def _packageByKey(self, repo, pkgKey):
+ def _pkgExcluded(self, po):
+ ''' Helper function to call _pkgRKNEVRAExcluded.
+ Takes a package object. '''
+ return self._pkgExcludedRKT(po.repo, po.pkgKey, po.pkgtup)
+
+ def addPackageExcluder(self, repoid, excluder, *args):
+ match = None
+ regexp_match = None
+ if False: pass
+ elif excluder.endswith('.eq'):
+ assert len(args) == 1
+ match = args[0].lower()
+ elif excluder.endswith('.in'):
+ assert len(args) == 1
+ match = args[0]
+ elif excluder.endswith('.match'):
+ assert len(args) == 1
+ match = args[0].lower()
+ if misc.re_glob(match):
+ regexp_match = re.compile(fnmatch.translate(match)).match
+ elif excluder.endswith('.*'):
+ assert len(args) == 0
+ self._pkgExcluder.append((repoid, excluder, match, regexp_match))
+
+ def _packageByKey(self, repo, pkgKey, exclude=True):
""" Lookup a pkg by it's pkgKey, if we don't have it load it """
+ # Speed hack, so we don't load the pkg. if the pkgKey is dead.
+ if exclude and self._pkgKeyExcluded(repo, pkgKey):
+ return None
+
if not self._key2pkg.has_key(repo):
self._key2pkg[repo] = {}
if not self._key2pkg[repo].has_key(pkgKey):
- sql = "SELECT pkgKey, pkgId, name, epoch, version, release " \
+ sql = "SELECT pkgKey, pkgId, name, epoch, version, release, arch " \
"FROM packages WHERE pkgKey = ?"
data = self._sql_MD('primary', repo, sql, (pkgKey,)).fetchone()
if data is None:
msg = "pkgKey %s doesn't exist in repo %s" % (pkgKey, repo)
raise Errors.RepoError, msg
-
+ if exclude and self._pkgExcludedRKD(repo, pkgKey, data):
+ return None
self._key2pkg[repo][pkgKey] = self.pc(repo, data)
- if self._pkgArchExcluded(self._key2pkg[repo][pkgKey].arch):
- return None
return self._key2pkg[repo][pkgKey]
- def _packageByKeyData(self, repo, pkgKey, data):
+ def _packageByKeyData(self, repo, pkgKey, data, exclude=True):
""" Like _packageByKey() but we already have the data for .pc() """
- if self._pkgArchExcluded(data['arch']):
+ if exclude and self._pkgExcludedRKD(repo, pkgKey, data):
return None
if data['pkgKey'] not in self._key2pkg.get(repo, {}):
po = self.pc(repo, data)
@@ -481,8 +669,6 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
""" Takes a cursor and maps the pkgKey rows into a list of packages. """
if pkgs is None: pkgs = []
for ob in cur:
- if self._pkgKeyExcluded(repo, ob['pkgKey']):
- continue
if have_data:
pkg = self._packageByKeyData(repo, ob['pkgKey'], ob)
else:
@@ -676,8 +862,6 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
cur = cache.cursor()
executeSQL(cur, totalstring)
for ob in cur:
- if self._pkgKeyExcluded(rep, ob['pkgKey']):
- continue
pkg = self._packageByKey(rep, ob['pkgKey'])
if pkg is None:
continue
@@ -704,16 +888,12 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
obsoletes.flags as oflags\
from obsoletes,packages where obsoletes.pkgKey = packages.pkgKey")
for ob in cur:
- # If the package that is causing the obsoletes is excluded
- # continue without processing the obsoletes
- if self._pkgKeyExcluded(rep, ob['pkgKey']):
- continue
- if self._pkgArchExcluded(ob['arch']):
- continue
-
key = ( _share_data(ob['name']), _share_data(ob['arch']),
_share_data(ob['epoch']), _share_data(ob['version']),
_share_data(ob['release']))
+ if self._pkgExcludedRKT(rep, ob['pkgKey'], key):
+ continue
+
(n,f,e,v,r) = ( _share_data(ob['oname']),
_share_data(ob['oflags']),
_share_data(ob['oepoch']),
@@ -817,8 +997,6 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
if rpmUtils.miscutils.rangeCompare(req, val):
tmp.setdefault(pkgkey, []).append(val)
for pkgKey, hits in tmp.iteritems():
- if self._pkgKeyExcluded(rep, pkgKey):
- continue
pkg = self._packageByKey(rep, pkgKey)
if pkg is None:
continue
@@ -840,8 +1018,6 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
if rpmUtils.miscutils.rangeCompare(req, val):
tmp.setdefault(x['pkgKey'], []).append(val)
for pkgKey, hits in tmp.iteritems():
- if self._pkgKeyExcluded(rep, pkgKey):
- continue
pkg = self._packageByKey(rep, pkgKey)
if pkg is None:
continue
@@ -869,8 +1045,6 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
cur = cache.cursor()
executeSQL(cur, "select DISTINCT pkgKey from files where name = ?", (name,))
for ob in cur:
- if self._pkgKeyExcluded(rep, ob['pkgKey']):
- continue
pkg = self._packageByKey(rep, ob['pkgKey'])
if pkg is None:
continue
@@ -1184,11 +1358,15 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
if pat_sqls:
qsql = _FULL_PARSE_QUERY_BEG + " OR ".join(pat_sqls)
executeSQL(cur, qsql, pat_data)
- # Note: Not using _sql_pkgKey2po() so that we can "un-exclude"
- # things later on ... if that matters.
+ # Note: If we are building the pkgobjlist, we don't exclude
+ # here, so that we can un-exclude later on ... if that matters.
for x in cur:
- po = self._packageByKeyData(repo, x['pkgKey'], x)
- if po is None: # Arch exclude is done here.
+ exclude = not patterns
+ if True: # NOTE: Can't unexclude things...
+ exclude = True
+ po = self._packageByKeyData(repo, x['pkgKey'], x,
+ exclude=exclude)
+ if po is None:
continue
returnList.append(po)
if not patterns:
@@ -1203,16 +1381,23 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
if self._skip_all():
return []
- if hasattr(self, 'pkgobjlist'):
+ internal_pkgoblist = hasattr(self, 'pkgobjlist')
+ if internal_pkgoblist:
pkgobjlist = self.pkgobjlist
else:
pkgobjlist = self._buildPkgObjList(repoid, patterns, ignore_case)
- if hasattr(self, 'pkgobjlist') and patterns:
+ if internal_pkgoblist and patterns:
+ internal_pkgoblist = False
pkgobjlist = parsePackages(pkgobjlist, patterns, not ignore_case,
unique='repo-pkgkey')
pkgobjlist = pkgobjlist[0] + pkgobjlist[1]
+ if True: # NOTE: Can't unexclude things...
+ if internal_pkgoblist:
+ pkgobjlist = pkgobjlist[:]
+ return pkgobjlist
+
returnList = []
for po in pkgobjlist:
if repoid is not None and repoid != po.repoid:
diff --git a/yum/transactioninfo.py b/yum/transactioninfo.py
index 05820fa..84dbb4b 100644
--- a/yum/transactioninfo.py
+++ b/yum/transactioninfo.py
@@ -63,6 +63,8 @@ class TransactionData:
self.depremoved = []
self.depinstalled = []
self.depupdated = []
+ self.reinstalled = []
+ self.downgraded = []
def __len__(self):
return len(self.pkgdict)
@@ -242,7 +244,7 @@ class TransactionData:
return False
- def makelists(self):
+ def makelists(self, include_reinstall=False, include_downgrade=False):
"""returns lists of transaction Member objects based on mode:
updated, installed, erased, obsoleted, depupdated, depinstalled
deperased"""
@@ -256,8 +258,18 @@ class TransactionData:
self.depremoved = []
self.depinstalled = []
self.depupdated = []
+ self.reinstalled = []
+ self.downgraded = []
self.failed = []
+ if include_reinstall:
+ pkgtups = {'up' : set(), 'in' : set(), 'rm' : set()}
+ for txmbr in self.getMembers():
+ if txmbr.output_state in (TS_INSTALL, TS_TRUEINSTALL):
+ pkgtups['in'].add(txmbr.po.pkgtup)
+ if txmbr.output_state == TS_ERASE:
+ pkgtups['rm'].add(txmbr.po.pkgtup)
+
for txmbr in self.getMembers():
if txmbr.output_state == TS_UPDATE:
if txmbr.isDep:
@@ -265,7 +277,15 @@ class TransactionData:
else:
self.updated.append(txmbr)
- elif txmbr.output_state == TS_INSTALL or txmbr.output_state == TS_TRUEINSTALL:
+ elif txmbr.output_state in (TS_INSTALL, TS_TRUEINSTALL):
+ if include_reinstall and txmbr.po.pkgtup in pkgtups['rm']:
+ self.reinstalled.append(txmbr)
+ continue
+
+ if include_downgrade and txmbr.downgrades:
+ self.downgraded.append(txmbr)
+ continue
+
if txmbr.groups:
for g in txmbr.groups:
if g not in self.instgroups:
@@ -276,6 +296,12 @@ class TransactionData:
self.installed.append(txmbr)
elif txmbr.output_state == TS_ERASE:
+ if include_reinstall and txmbr.po.pkgtup in pkgtups['in']:
+ continue
+
+ if include_downgrade and txmbr.downgraded_by:
+ continue
+
for g in txmbr.groups:
if g not in self.instgroups:
self.removedgroups.append(g)
@@ -368,6 +394,23 @@ class TransactionData:
self.add(txmbr)
return txmbr
+ def addDowngrade(self, po, oldpo):
+ """adds a package as an downgrade takes a packages object and returns
+ a pair of TransactionMember Objects"""
+
+ itxmbr = self.addErase(oldpo)
+ itxmbr.relatedto.append((po, 'downgradedby'))
+ itxmbr.downgraded_by.append(po)
+
+ atxmbr = self.addInstall(po)
+ if not atxmbr: # Fail?
+ self.remove(itxmbr.pkgtup)
+ return None
+ atxmbr.relatedto.append((oldpo, 'downgrades'))
+ atxmbr.downgrades.append(oldpo)
+
+ return (itxmbr, atxmbr)
+
def addUpdated(self, po, updating_po):
"""adds a package as being updated by another pkg
takes a packages object and returns a TransactionMember Object"""
@@ -544,6 +587,8 @@ class TransactionMember:
self.obsoleted_by = []
self.updates = []
self.updated_by = []
+ self.downgrades = []
+ self.downgraded_by = []
self.groups = [] # groups it's in
self._poattr = ['pkgtup', 'repoid', 'name', 'arch', 'epoch', 'version',
'release']
diff --git a/yum/update_md.py b/yum/update_md.py
index b297704..b3a120e 100644
--- a/yum/update_md.py
+++ b/yum/update_md.py
@@ -113,6 +113,8 @@ class UpdateNotice(object):
head += "Description : %s\n" % '\n'.join(desc)
# Get a list of arches we care about:
+ #XXX ARCH CHANGE - what happens here if we set the arch - we need to
+ # pass this in, perhaps
arches = set(rpmUtils.arch.getArchList())
filelist = " Files :"
@@ -375,7 +377,12 @@ class UpdateMetadata(object):
for event, elem in iterparse(infile):
if elem.tag == 'update':
- un = UpdateNotice(elem)
+ try:
+ un = UpdateNotice(elem)
+ except UpdateNoticeException, e:
+ print >> sys.stderr, "An update notice is broken, skipping."
+ # what else should we do?
+ continue
if not self._notices.has_key(un['update_id']):
self._notices[un['update_id']] = un
for pkg in un['pkglist']:
diff --git a/yum/yumRepo.py b/yum/yumRepo.py
index 94e352c..028d821 100644
--- a/yum/yumRepo.py
+++ b/yum/yumRepo.py
@@ -495,6 +495,21 @@ class YumRepository(Repository, config.RepoConf):
grabfunc = property(lambda self: self._getgrabfunc())
grab = property(lambda self: self._getgrab())
+ def _dirSetupMkdir_p(self, dpath):
+ """make the necessary directory path, if possible, raise on failure"""
+ if os.path.exists(dpath) and os.path.isdir(dpath):
+ return
+
+ if self.cache:
+ raise Errors.RepoError, "Cannot access repository dir %s" % dpath
+
+ try:
+ os.makedirs(dpath, mode=0755)
+ except OSError, e:
+ msg = "%s: %s %s: %s" % ("Error making cache directory",
+ dpath, "error was", e)
+ raise Errors.RepoError, msg
+
def dirSetup(self):
"""make the necessary dirs, if possible, raise on failure"""
@@ -510,19 +525,8 @@ class YumRepository(Repository, config.RepoConf):
self.setAttribute('_dir_setup_metadata_cookie', cookie)
for dir in [self.cachedir, self.pkgdir]:
- if self.cache == 0:
- if os.path.exists(dir) and os.path.isdir(dir):
- continue
- else:
- try:
- os.makedirs(dir, mode=0755)
- except OSError, e:
- raise Errors.RepoError, \
- "Error making cache directory: %s error was: %s" % (dir, e)
- else:
- if not os.path.exists(dir):
- raise Errors.RepoError, \
- "Cannot access repository dir %s" % dir
+ self._dirSetupMkdir_p(dir)
+
# if we're using a cachedir that's not the system one, copy over these
# basic items from the system one
self._preload_md_from_system_cache('repomd.xml')
@@ -530,17 +534,35 @@ class YumRepository(Repository, config.RepoConf):
self._preload_md_from_system_cache('mirrorlist.txt')
self._preload_md_from_system_cache('metalink.xml')
- def _dirAttr(self, attr):
+ def _dirGetAttr(self, attr):
""" Make the directory attributes call .dirSetup() if needed. """
attr = '_dir_setup_' + attr
if not hasattr(self, attr):
self.dirSetup()
return getattr(self, attr)
- cachedir = property(lambda self: self._dirAttr('cachedir'))
- pkgdir = property(lambda self: self._dirAttr('pkgdir'))
- hdrdir = property(lambda self: self._dirAttr('hdrdir'))
- gpgdir = property(lambda self: self._dirAttr('gpgdir'))
- metadata_cookie = property(lambda self: self._dirAttr('metadata_cookie'))
+ def _dirSetAttr(self, attr, val):
+ """ Make the directory attributes call .dirSetup() if needed. """
+ attr = '_dir_setup_' + attr
+ if not hasattr(self, attr):
+ self.dirSetup()
+
+ if attr == '_dir_setup_pkgdir':
+ if not hasattr(self, '_old_pkgdirs'):
+ self._old_pkgdirs = []
+ self._old_pkgdirs.append(getattr(self, attr))
+
+ ret = setattr(self, attr, val)
+ if attr in ('_dir_setup_pkgdir', ):
+ self._dirSetupMkdir_p(val)
+ return ret
+ cachedir = property(lambda self: self._dirGetAttr('cachedir'))
+ pkgdir = property(lambda self: self._dirGetAttr('pkgdir'),
+ lambda self, x: self._dirSetAttr('pkgdir', x))
+ hdrdir = property(lambda self: self._dirGetAttr('hdrdir'),
+ lambda self, x: self._dirSetAttr('hdrdir', x))
+ gpgdir = property(lambda self: self._dirGetAttr('gpgdir'),
+ lambda self, x: self._dirSetAttr('gpgdir', x))
+ metadata_cookie = property(lambda self: self._dirGetAttr('metadata_cookie'))
def baseurlSetup(self):
warnings.warn('baseurlSetup() will go away in a future version of Yum.\n',
@@ -790,6 +812,11 @@ class YumRepository(Repository, config.RepoConf):
local = package.localPkg()
basepath = package.basepath
+ if self._preload_pkg_from_system_cache(package):
+ if package.verifyLocalPkg():
+ return local
+ misc.unlink_f(local)
+
return self._getFile(url=basepath,
relative=remote,
local=local,
@@ -820,18 +847,28 @@ class YumRepository(Repository, config.RepoConf):
age of the cookie is less than metadata_expire time then return true
else return False. This result is cached, so that metalink/repomd.xml
are synchronized."""
- if self._metadataCurrent is None:
- mlfn = self.cachedir + '/' + 'metalink.xml'
- if self.metalink and not os.path.exists(mlfn):
- self._metadataCurrent = False
- if self._metadataCurrent is None:
- repomdfn = self.cachedir + '/' + 'repomd.xml'
- if not os.path.exists(repomdfn):
- self._metadataCurrent = False
- if self._metadataCurrent is None:
- self._metadataCurrent = self.withinCacheAge(self.metadata_cookie,
- self.metadata_expire)
- return self._metadataCurrent
+ if self._metadataCurrent is not None:
+ return self._metadataCurrent
+
+ mC_def = self.withinCacheAge(self.metadata_cookie, self.metadata_expire)
+ if not mC_def: # Normal path...
+ self._metadataCurrent = mC_def
+ return mC_def
+
+ # Edge cases, both repomd.xml and metalink (if used). Must exist.
+ repomdfn = self.cachedir + '/' + 'repomd.xml'
+ if not os.path.exists(repomdfn):
+ self._metadataCurrent = False
+ return False
+
+ self._hack_mirrorlist_for_anaconda()
+ mlfn = self.cachedir + '/' + 'metalink.xml'
+ if self.metalink and not os.path.exists(mlfn):
+ self._metadataCurrent = False
+ return False
+
+ self._metadataCurrent = True
+ return True
# The metalink _shouldn't_ be newer than the repomd.xml or the checksums
# will be off, but we only really care when we are downloading the
@@ -1596,7 +1633,19 @@ class YumRepository(Repository, config.RepoConf):
return returnlist
- def _preload_file_from_system_cache(self, filename, subdir=''):
+ def _preload_file(self, fn, destfn):
+ """attempts to copy the file, if possible"""
+ # don't copy it if the copy in our users dir is newer or equal
+ if not os.path.exists(fn):
+ return False
+ if os.path.exists(destfn):
+ if os.stat(fn)[stat.ST_CTIME] <= os.stat(destfn)[stat.ST_CTIME]:
+ return False
+ shutil.copy2(fn, destfn)
+ return True
+
+ def _preload_file_from_system_cache(self, filename, subdir='',
+ destfn=None):
"""attempts to copy the file from the system-wide cache,
if possible"""
if not hasattr(self, 'old_base_cache_dir'):
@@ -1611,16 +1660,10 @@ class YumRepository(Repository, config.RepoConf):
return False
# Try to copy whatever file it is
- fn = glob_repo_cache_dir + '/' + subdir + os.path.basename(filename)
- destfn = self.cachedir + '/' + subdir + os.path.basename(filename)
- # don't copy it if the copy in our users dir is newer or equal
- if not os.path.exists(fn):
- return False
- if os.path.exists(destfn):
- if os.stat(fn)[stat.ST_CTIME] <= os.stat(destfn)[stat.ST_CTIME]:
- return False
- shutil.copy2(fn, destfn)
- return True
+ fn = glob_repo_cache_dir + '/' + subdir + os.path.basename(filename)
+ if destfn is None:
+ destfn = self.cachedir + '/' + subdir + os.path.basename(filename)
+ return self._preload_file(fn, destfn)
def _preload_md_from_system_cache(self, filename):
"""attempts to copy the metadata file from the system-wide cache,
@@ -1630,7 +1673,19 @@ class YumRepository(Repository, config.RepoConf):
def _preload_pkg_from_system_cache(self, pkg):
"""attempts to copy the package from the system-wide cache,
if possible"""
- return self._preload_file_from_system_cache(pkg.localPkg(),subdir='packages/')
+ pname = os.path.basename(pkg.localPkg())
+ destfn = os.path.join(self.pkgdir, pname)
+ if self._preload_file_from_system_cache(pkg.localPkg(),
+ subdir='packages/',
+ destfn=destfn):
+ return True
+
+ if not hasattr(self, '_old_pkgdirs'):
+ return False
+ for opkgdir in self._old_pkgdirs:
+ if self._preload_file(os.path.join(opkgdir, pname), destfn):
+ return True
+ return False
def getMirrorList(mirrorlist, pdict = None):
diff --git a/yumcommands.py b/yumcommands.py
index 706d908..6a0e243 100644
--- a/yumcommands.py
+++ b/yumcommands.py
@@ -531,7 +531,6 @@ class CleanCommand(YumCommand):
return _("Remove cached data")
def doCheck(self, base, basecmd, extcmds):
- checkRootUID(base)
checkCleanArg(base, basecmd, extcmds)
def doCommand(self, base, basecmd, extcmds):
@@ -857,6 +856,10 @@ class RepoListCommand(YumCommand):
out += [base.fmtKeyValFill(_("Repo-baseurl: "),
", ".join(baseurls))]
+ if enabled:
+ # This needs to be here due to the mirrorlists are
+ # metalinks hack.
+ repo.urls
if repo.metalink:
out += [base.fmtKeyValFill(_("Repo-metalink: "),
repo.metalink)]
@@ -1043,3 +1046,70 @@ class DowngradeCommand(YumCommand):
def needTs(self, base, basecmd, extcmds):
return False
+
+class VersionCommand(YumCommand):
+ def getNames(self):
+ return ['version']
+
+ def getUsage(self):
+ return "[all|installed|available]"
+
+ def getSummary(self):
+ return _("Display a version for the machine and/or available repos.")
+
+ def doCommand(self, base, basecmd, extcmds):
+ vcmd = 'installed'
+ if extcmds:
+ vcmd = extcmds[0]
+
+ def _append_repos(cols, repo_data):
+ for repoid in sorted(repo_data):
+ cur = repo_data[repoid]
+ if None in cur and len(cur) != 2:
+ cols.append((" %s" % repoid, str(cur[None])))
+ for rev in sorted(cur):
+ if rev is None:
+ continue
+ cols.append((" %s/%s" % (repoid, rev), str(cur[rev])))
+
+ rel = base.yumvar['releasever']
+ ba = base.yumvar['basearch']
+ cols = []
+ if vcmd in ('installed', 'all'):
+ try:
+ data = base.rpmdb.simpleVersion()
+ cols.append(("%s %s/%s" % (_("Installed:"), rel, ba),
+ str(data[0])))
+ if base.verbose_logger.isEnabledFor(logginglevels.DEBUG_3):
+ _append_repos(cols, data[1])
+ except yum.Errors.YumBaseError, e:
+ return 1, [str(e)]
+ if vcmd in ('available', 'all'):
+ try:
+ data = base.pkgSack.simpleVersion()
+ cols.append(("%s %s/%s" % (_("Available:"), rel, ba),
+ str(data[0])))
+ if base.verbose_logger.isEnabledFor(logginglevels.DEBUG_3):
+ _append_repos(cols, data[1])
+ except yum.Errors.YumBaseError, e:
+ return 1, [str(e)]
+
+ data = {'rid' : {}, 'ver' : {}}
+ for (rid, ver) in cols:
+ for (d, v) in (('rid', len(rid)), ('ver', len(ver))):
+ data[d].setdefault(v, 0)
+ data[d][v] += 1
+ data = [data['rid'], data['ver']]
+ columns = base.calcColumns(data)
+ columns = (-columns[0], columns[1])
+
+ for line in cols:
+ print base.fmtColumns(zip(line, columns))
+
+ return 0, []
+
+ def needTs(self, base, basecmd, extcmds):
+ vcmd = 'installed'
+ if extcmds:
+ vcmd = extcmds[0]
+ return vcmd in ('available', 'all')