diff --git a/cli.py b/cli.py index 615a1f6..332be99 100644 --- a/cli.py +++ b/cli.py @@ -100,6 +100,7 @@ class YumBaseCli(yum.YumBase, output.YumOutput): self.registerCommand(yumcommands.ReInstallCommand()) self.registerCommand(yumcommands.DowngradeCommand()) self.registerCommand(yumcommands.VersionCommand()) + self.registerCommand(yumcommands.HistoryCommand()) def registerCommand(self, command): for name in command.getNames(): @@ -206,8 +207,7 @@ class YumBaseCli(yum.YumBase, output.YumOutput): if opts.version: self.conf.cache = 1 - yum_progs = ['yum', 'yum-metadata-parser', 'rpm', - 'yum-rhn-plugin'] + yum_progs = self.run_with_package_names done = False def sm_ui_time(x): return time.strftime("%Y-%m-%d %H:%M", time.gmtime(x)) diff --git a/docs/yum.8 b/docs/yum.8 index 3520912..9cd68dd 100644 --- a/docs/yum.8 +++ b/docs/yum.8 @@ -67,6 +67,10 @@ gnome\-packagekit application\&. .br .I \fR * repolist [all|enabled|disabled] .br +.I \fR * version [all|installed|available|group-*|grouplist|groupinfo] +.br +.I \fR * history [info|list|summary|redo|undo|new] +.br .I \fR * help [command] .br .PP @@ -225,6 +229,26 @@ Produces a list of configured repositories. The default is to list all enabled repositories. If you pass \-v, for verbose mode, more information is listed. .IP +.IP "\fBversion\fP" +Produces a "version" of the rpmdb, and of the enabled repositories if "all" is +given as the first argument. You can also specify version groups in the +version-groups config. file. If you pass \-v, for verbose mode, more +information is listed. The version is calculated by taking a sha1 hash of the +packages (in sorted order), and the checksum_type/checksum_data entries from +the yumdb. Note that this rpmdb version is now also used significantly within +yum (esp. in yum history). +.IP +.IP "\fBhistory\fP" +The history command allows the user to view what has happened in past +transactions (assuming the history_record config. option is set). You can use +info/list/summary to view what happend, undo/redo to act on that information +and new to start a new history file. + +The info/list/summary commands take either a transactions id or a package (with +wildcards, as in \fBSpecifying package names\fP), all three can also be passed +no arguments. list can be passed the keyword "all" to list all the transactions. +undo/redo just take a transaction id. +.IP .IP "\fBhelp\fP" Produces help, either for all commands or if given a command name then the help for that particular command\&. @@ -266,7 +290,8 @@ Sets the maximum amount of time yum will wait before performing a command \- it Tells yum to run entirely from cache - does not download or update any headers unless it has to to perform the requested action. .IP "\fB\-\-version\fP" -Reports the \fByum\fP version number and exits. +Reports the \fByum\fP version number and installed package versions for +everything in history_record_packages (can be added to by plugins). .IP "\fB\-\-showduplicates\fP" Doesn't limit packages to their latest versions in the info, list and search commands (will also affect plugins which use the doPackageLists() API). @@ -450,6 +475,7 @@ configuration options. .SH "FILES" .nf /etc/yum/yum.conf +/etc/yum/version-groups.conf /etc/yum/repos.d/ /etc/yum/pluginconf.d/ /var/cache/yum/ diff --git a/docs/yum.conf.5 b/docs/yum.conf.5 index 69b601d..8976b0c 100644 --- a/docs/yum.conf.5 +++ b/docs/yum.conf.5 @@ -128,6 +128,9 @@ Number of packages listed in installonlypkgs to keep installed at the same time. Setting to 0 disables this feature. Default is '0'. Note that this functionality used to be in the "installonlyn" plugin, where this option was altered via. tokeep. +Note that as of version 3.2.24, yum will now look in the yumdb for a installonly +attribute on installed packages. If that attribute is "keep", then they will +never be removed. .IP \fBkernelpkgnames \fR @@ -274,6 +277,21 @@ Path to the ssl client key yum should use to connect to repos/remote sites Defaults to none. .IP +\fBhistory_record \fR +Boolean - should yum record history entries for transactions. This takes some +disk space, and some extra time in the transactions. But it allos how to know a +lot of information about what has happened before, and display it to the user +with the history info/list/summary commands. yum also provides the +history undo/redo commands. Defaults to True. + +.IP +\fBhistory_record_packages \fR +This is a list of package names that should be recorded as having helped the +transaction. yum plugins have an API to add themself to this, so it should not +normally be necessary to add packages here. Not that this is also used for the +packages to look for in --version. Defaults to rpm, yum, yum-metadata-parser. + +.IP \fBcommands\fR List of functional commands to run if no functional commands are specified on the command line (eg. "update foo bar baz quux"). None of the short options diff --git a/etc/Makefile b/etc/Makefile index 1ba5a1f..7a083f7 100644 --- a/etc/Makefile +++ b/etc/Makefile @@ -1,3 +1,5 @@ +YUMETC=$(DESTDIR)/etc/yum + all: echo "Nothing to do" @@ -8,7 +10,9 @@ install: mkdir -p $(DESTDIR)/etc/yum/ mkdir -p $(DESTDIR)/etc/yum/repos.d - install -m 644 yum.conf $(DESTDIR)/etc/yum/yum.conf + install -m 644 yum.conf $(YUMETC)/yum.conf + + install -m 644 version-groups.conf $(YUMETC)/version-groups.conf mkdir -p $(DESTDIR)/etc/logrotate.d install -m 644 yum.logrotate $(DESTDIR)/etc/logrotate.d/yum diff --git a/etc/version-groups.conf b/etc/version-groups.conf new file mode 100644 index 0000000..57d97dd --- /dev/null +++ b/etc/version-groups.conf @@ -0,0 +1,11 @@ +# This file allows you to create "groups" of package names, which are used by +# the version command. + +[yum] +# These are the top level things to do with yum, we don't list Eg. libselinux +# even though that's require by rpm(-libs). +run_with_packages = true +pkglist = glibc, sqlite, libcurl, nss, + rpm, rpm-libs, rpm-python, + python, + python-iniparse, python-urlgrabber, python-pycurl diff --git a/output.py b/output.py index 2299a9c..d0b9f7f 100755 --- a/output.py +++ b/output.py @@ -22,6 +22,7 @@ import time import logging import types import gettext +import pwd import rpm import re # For YumTerm @@ -40,6 +41,7 @@ from yum.constants import * from yum import logginglevels, _ from yum.rpmtrans import RPMBaseCallback from yum.packageSack import packagesNewestByNameArch +import yum.packages from yum.i18n import utf8_width, utf8_width_fill, utf8_text_fill @@ -1172,6 +1174,328 @@ to exit. ui_bs, ui_size, ui_time, ui_end) self.verbose_logger.log(logginglevels.INFO_2, msg) + def _history_uiactions(self, hpkgs): + actions = set() + count = 0 + for hpkg in hpkgs: + st = hpkg.state + if st == 'True-Install': + st = 'Install' + if st == 'Obsoleted': # This is just a UI tweak, as we can't have + # just one but we need to count them all. + st = 'Obsoleting' + if st in ('Install', 'Update', 'Erase', 'Reinstall', 'Downgrade', + 'Obsoleting'): + actions.add(st) + count += 1 + assert len(actions) <= 6 + if len(actions) > 1: + return count, ", ".join([x[0] for x in sorted(actions)]) + + # So empty transactions work, although that "shouldn't" really happen + return count, "".join(list(actions)) + + def _pwd_ui_username(self, uid, limit=None): + # loginuid is set to -1 on init. + if uid is None or uid == 0xFFFFFFFF: + loginid = _("") + name = _("System") + " " + loginid + if limit is not None and len(name) > limit: + name = loginid + return name + + try: + user = pwd.getpwuid(uid) + fullname = user.pw_gecos.split(';', 2)[0] + name = "%s <%s>" % (fullname, user.pw_name) + if limit is not None and len(name) > limit: + name = "%s ... <%s>" % (fullname.split()[0], user.pw_name) + if len(name) > limit: + name = "<%s>" % user.pw_name + return name + except KeyError: + return str(uid) + + def _history_list_transactions(self, extcmds): + tids = set() + pats = [] + usertids = extcmds[1:] + printall = False + if usertids: + printall = True + if usertids[0] == 'all': + usertids.pop(0) + for tid in usertids: + try: + int(tid) + tids.add(tid) + except ValueError: + pats.append(tid) + if pats: + tids.update(self.history.search(pats)) + + if not tids and usertids: + self.logger.critical(_('Bad transaction IDs, or package(s), given')) + return None, None + return tids, printall + + def historyListCmd(self, extcmds): + """ Shows the user a list of data about the history. """ + + tids, printall = self._history_list_transactions(extcmds) + if tids is None: + return 1, ['Failed history info'] + + fmt = "%-6s | %-22s | %-16s | %-14s | %-7s" + print fmt % ("ID", "Login user", "Date and time", "Action(s)","Altered") + print "-" * 79 + fmt = "%6u | %-22.22s | %-16s | %-14s | %4u" + done = 0 + limit = 20 + if printall: + limit = None + for old in self.history.old(tids, limit=limit): + if not printall and done >= limit: + break + + done += 1 + name = self._pwd_ui_username(old.loginuid, 22) + tm = time.strftime("%Y-%m-%d %H:%M", + time.localtime(old.beg_timestamp)) + num, uiacts = self._history_uiactions(old.trans_data) + if old.altered_lt_rpmdb and old.altered_gt_rpmdb: + print fmt % (old.tid, name, tm, uiacts, num), "><" + elif old.return_code is None: + print fmt % (old.tid, name, tm, uiacts, num), "**" + elif old.altered_lt_rpmdb: + print fmt % (old.tid, name, tm, uiacts, num), " <" + elif old.altered_gt_rpmdb: + print fmt % (old.tid, name, tm, uiacts, num), "> " + else: + print fmt % (old.tid, name, tm, uiacts, num) + lastdbv = self.history.last() + if lastdbv is not None: + # If this is the last transaction, is good and it doesn't + # match the current rpmdb ... then mark it as bad. + rpmdbv = self.rpmdb.simpleVersion(main_only=True)[0] + if lastdbv.end_rpmdbversion != rpmdbv: + errstring = _('Warning: RPMDB has been altered since the last yum transaction.') + self.logger.warning(errstring) + + def _history_get_transactions(self, extcmds): + if len(extcmds) < 2: + self.logger.critical(_('No transaction ID given')) + return None + + tids = [] + try: + int(extcmds[1]) + tids.append(extcmds[1]) + except ValueError: + self.logger.critical(_('Bad transaction ID given')) + return None + + old = self.history.old(tids) + if not old: + self.logger.critical(_('Not found given transaction ID')) + return None + return old + def _history_get_transaction(self, extcmds): + old = self._history_get_transactions(extcmds) + if old is None: + return None + if len(old) > 1: + self.logger.critical(_('Found more than one transaction ID!')) + return old[0] + + def historyInfoCmd(self, extcmds): + tids = set() + pats = [] + for tid in extcmds[1:]: + try: + int(tid) + tids.add(tid) + except ValueError: + pats.append(tid) + if pats: + tids.update(self.history.search(pats)) + + if not tids and len(extcmds) < 2: + old = self.history.last() + if old is not None: + tids.add(old.tid) + + if not tids: + self.logger.critical(_('No transaction ID, or package, given')) + return 1, ['Failed history info'] + + lastdbv = self.history.last() + if lastdbv is not None: + lasttid = lastdbv.tid + lastdbv = lastdbv.end_rpmdbversion + + done = False + for tid in self.history.old(tids): + if lastdbv is not None and tid.tid == lasttid: + # If this is the last transaction, is good and it doesn't + # match the current rpmdb ... then mark it as bad. + rpmdbv = self.rpmdb.simpleVersion(main_only=True)[0] + if lastdbv != rpmdbv: + tid.altered_gt_rpmdb = True + lastdbv = None + + if done: + print "-" * 79 + done = True + self._historyInfoCmd(tid, pats) + + def _historyInfoCmd(self, old, pats=[]): + name = self._pwd_ui_username(old.loginuid) + + print _("Transaction ID :"), old.tid + begtm = time.ctime(old.beg_timestamp) + print _("Begin time :"), begtm + if old.beg_rpmdbversion is not None: + if old.altered_lt_rpmdb: + print _("Begin rpmdb :"), old.beg_rpmdbversion, "**" + else: + print _("Begin rpmdb :"), old.beg_rpmdbversion + if old.end_timestamp is not None: + endtm = time.ctime(old.end_timestamp) + endtms = endtm.split() + if begtm.startswith(endtms[0]): # Chop uninteresting prefix + begtms = begtm.split() + sofar = 0 + for i in range(len(endtms)): + if i > len(begtms): + break + if begtms[i] != endtms[i]: + break + sofar += len(begtms[i]) + 1 + endtm = (' ' * sofar) + endtm[sofar:] + diff = _("(%s seconds)") % (old.end_timestamp - old.beg_timestamp) + print _("End time :"), endtm, diff + if old.end_rpmdbversion is not None: + if old.altered_gt_rpmdb: + print _("End rpmdb :"), old.end_rpmdbversion, "**" + else: + print _("End rpmdb :"), old.end_rpmdbversion + print _("User :"), name + if old.return_code is None: + print _("Return-Code :"), "**", _("Aborted"), "**" + elif old.return_code: + print _("Return-Code :"), _("Failure:"), old.return_code + else: + print _("Return-Code :"), _("Success") + print _("Transaction performed with :") + for hpkg in old.trans_with: + prefix = " " * 4 + state = _('Installed') + ipkgs = self.rpmdb.searchNames([hpkg.name]) + ipkgs.sort() + if not ipkgs: + state = _('Erased') + elif hpkg.pkgtup in (ipkg.pkgtup for ipkg in ipkgs): + pass + elif ipkgs[-1] > hpkg: + state = _('Updated') + elif ipkgs[0] < hpkg: + state = _('Downgraded') + else: # multiple versions installed, both older and newer + state = _('Weird') + print "%s%-12s %s" % (prefix, state, hpkg) + print _("Packages Altered:") + self.historyInfoCmdPkgsAltered(old, pats) + + def historyInfoCmdPkgsAltered(self, old, pats=[]): + for hpkg in old.trans_data: + prefix = " " * 4 + if not hpkg.done: + prefix = " ** " + + highlight = 'normal' + if pats: + x,m,u = yum.packages.parsePackages([hpkg], pats) + if x or m: + highlight = 'bold' + (hibeg, hiend) = self._highlight(highlight) + + # To chop the name off we need nevra strings, str(pkg) gives envra + # so we have to do it by hand ... *sigh*. + if hpkg.epoch == '0': + cn = str(hpkg) + else: + cn = "%s-%s:%s-%s.%s" % (hpkg.name, hpkg.epoch, + hpkg.version, hpkg.release, hpkg.arch) + + if False: pass + elif hpkg.state == 'Update': + ln = len(hpkg.name) + 1 + cn = (" " * ln) + cn[ln:] + print "%s%s%-12s%s %s" % (prefix, hibeg, hpkg.state, hiend, cn) + elif hpkg.state == 'Downgraded': + ln = len(hpkg.name) + 1 + cn = (" " * ln) + cn[ln:] + print "%s%s%-12s%s %s" % (prefix, hibeg, hpkg.state, hiend, cn) + elif hpkg.state == 'True-Install': + print "%s%s%-12s%s %s" % (prefix, hibeg, "Install", hiend, cn) + else: + print "%s%s%-12s%s %s" % (prefix, hibeg, hpkg.state, hiend, cn) + + def historySummaryCmd(self, extcmds): + tids, printall = self._history_list_transactions(extcmds) + if tids is None: + return 1, ['Failed history info'] + + fmt = "%-26s | %-19s | %-16s | %-8s" + print fmt % ("Login user", "Time", "Action(s)", "Altered") + print "-" * 79 + fmt = "%-26.26s | %-19.19s | %-16s | %8u" + data = {'day' : {}, 'week' : {}, + 'fortnight' : {}, 'quarter' : {}, 'half' : {}, + 'year' : {}, 'all' : {}} + for old in self.history.old(tids): + name = self._pwd_ui_username(old.loginuid, 26) + period = 'all' + now = time.time() + if False: pass + elif old.beg_timestamp > (now - (24 * 60 * 60)): + period = 'day' + elif old.beg_timestamp > (now - (24 * 60 * 60 * 7)): + period = 'week' + elif old.beg_timestamp > (now - (24 * 60 * 60 * 14)): + period = 'fortnight' + elif old.beg_timestamp > (now - (24 * 60 * 60 * 7 * 13)): + period = 'quarter' + elif old.beg_timestamp > (now - (24 * 60 * 60 * 7 * 26)): + period = 'half' + elif old.beg_timestamp > (now - (24 * 60 * 60 * 365)): + period = 'year' + data[period].setdefault(name, []).append(old) + _period2user = {'day' : _("Last day"), + 'week' : _("Last week"), + 'fortnight' : _("Last 2 weeks"), # US default :p + 'quarter' : _("Last 3 months"), + 'half' : _("Last 6 months"), + 'year' : _("Last year"), + 'all' : _("Over a year ago")} + done = 0 + for period in ('day', 'week', 'fortnight', 'quarter', 'half', 'year', + 'all'): + if not data[period]: + continue + for name in sorted(data[period]): + if not printall and done > 19: + break + done += 1 + + hpkgs = [] + for old in data[period][name]: + hpkgs.extend(old.trans_data) + count, uiacts = self._history_uiactions(hpkgs) + uperiod = _period2user[period] + print fmt % (name, uperiod, uiacts, count) + class DepSolveProgressCallBack: """provides text output callback functions for Dependency Solver callback""" diff --git a/po/ca.po b/po/ca.po index 3bef4b5..1869dc2 100644 --- a/po/ca.po +++ b/po/ca.po @@ -5,6 +5,7 @@ # # Josep Maria Brunetti Fernández , 2008 # Xavier Conde Rueda , 2008 +# Josep Torné Llavall , 2009 # # This file is translated according to the glossary and style guide of # Softcatalà. If you plan to modify this file, please read first the page @@ -21,8 +22,8 @@ msgid "" msgstr "" "Project-Id-Version: yum\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-03-27 19:24+0000\n" -"PO-Revision-Date: 2009-03-31 22:25+0100\n" +"POT-Creation-Date: 2009-09-05 08:55+0000\n" +"PO-Revision-Date: 2009-09-06 22:25+0100\n" "Last-Translator: Agustí Grau \n" "Language-Team: Catalan \n" "MIME-Version: 1.0\n" @@ -31,46 +32,32 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Poedit-Language: Catalan\n" -#: ../callback.py:48 -#: ../output.py:922 -#: ../yum/rpmtrans.py:71 +#: ../callback.py:48 ../output.py:938 ../yum/rpmtrans.py:71 msgid "Updating" msgstr "Actualitzant" -#: ../callback.py:49 -#: ../yum/rpmtrans.py:72 +#: ../callback.py:49 ../yum/rpmtrans.py:72 msgid "Erasing" -msgstr "S'està esborrant" - -#: ../callback.py:50 -#: ../callback.py:51 -#: ../callback.py:53 -#: ../output.py:921 -#: ../yum/rpmtrans.py:73 -#: ../yum/rpmtrans.py:74 -#: ../yum/rpmtrans.py:76 +msgstr "Suprimint" + +#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:937 +#: ../yum/rpmtrans.py:73 ../yum/rpmtrans.py:74 ../yum/rpmtrans.py:76 msgid "Installing" msgstr "Instal·lant" -#: ../callback.py:52 -#: ../callback.py:58 -#: ../yum/rpmtrans.py:75 +#: ../callback.py:52 ../callback.py:58 ../yum/rpmtrans.py:75 msgid "Obsoleted" msgstr "Obsolet" -#: ../callback.py:54 -#: ../output.py:1029 +#: ../callback.py:54 ../output.py:1061 msgid "Updated" msgstr "Actualitzat" #: ../callback.py:55 msgid "Erased" -msgstr "Esborrat" +msgstr "Suprimit" -#: ../callback.py:56 -#: ../callback.py:57 -#: ../callback.py:59 -#: ../output.py:1027 +#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:1059 msgid "Installed" msgstr "Instal·lat" @@ -90,75 +77,70 @@ msgstr "Error: estat de sortida invàlid: %s per a %s" #: ../callback.py:212 #, python-format msgid "Erased: %s" -msgstr "Esborrat: %s" +msgstr "Suprimit: %s" -#: ../callback.py:217 -#: ../output.py:923 +#: ../callback.py:217 ../output.py:939 msgid "Removing" -msgstr "S'està esborrant" +msgstr "Suprimint" -#: ../callback.py:219 -#: ../yum/rpmtrans.py:77 +#: ../callback.py:219 ../yum/rpmtrans.py:77 msgid "Cleanup" msgstr "Neteja" -#: ../cli.py:106 +#: ../cli.py:107 #, python-format msgid "Command \"%s\" already defined" msgstr "L'ordre «%s» ja està definida" -#: ../cli.py:118 +#: ../cli.py:119 msgid "Setting up repositories" msgstr "Configurant repositoris" -#: ../cli.py:129 +#: ../cli.py:130 msgid "Reading repository metadata in from local files" msgstr "S'estan llegint les metadades de repositoris des de fitxers locals" -#: ../cli.py:192 -#: ../utils.py:79 +#: ../cli.py:193 ../utils.py:87 #, python-format msgid "Config Error: %s" msgstr "Error de configuració: %s" -#: ../cli.py:195 -#: ../cli.py:1224 -#: ../utils.py:82 +#: ../cli.py:196 ../cli.py:1253 ../utils.py:90 #, python-format msgid "Options Error: %s" msgstr "Error d'opcions: %s" -#: ../cli.py:223 +#: ../cli.py:225 #, python-format msgid " Installed: %s-%s at %s" msgstr " Instal·lat: %s-%s a %s" -#: ../cli.py:225 +#: ../cli.py:227 #, python-format msgid " Built : %s at %s" msgstr " Muntat : %s a %s" -#: ../cli.py:227 +#: ../cli.py:229 #, python-format msgid " Committed: %s at %s" msgstr " Pujat: %s a %s" -#: ../cli.py:266 +#: ../cli.py:268 msgid "You need to give some command" msgstr "Cal que doneu alguna ordre" -#: ../cli.py:309 +#: ../cli.py:311 msgid "Disk Requirements:\n" msgstr "Requeriments de disc:\n" -#: ../cli.py:311 +#: ../cli.py:313 #, python-format msgid " At least %dMB needed on the %s filesystem.\n" msgstr " Es necessiten almenys %dMB al sistema de fitxers %s.\n" #. TODO: simplify the dependency errors? #. Fixup the summary -#: ../cli.py:316 +#: ../cli.py:318 msgid "" "Error Summary\n" "-------------\n" @@ -166,58 +148,66 @@ msgstr "" "Resum d'errors\n" "-------------\n" -#: ../cli.py:359 +#: ../cli.py:361 msgid "Trying to run the transaction but nothing to do. Exiting." -msgstr "S'ha intentat executar la transacció però no hi ha cap tasca a fer. S'està sortint." +msgstr "" +"S'ha intentat executar la transacció però no hi ha cap tasca a fer. S'està " +"sortint." -#: ../cli.py:395 +#: ../cli.py:397 msgid "Exiting on user Command" msgstr "S'està sortint de l'ordre de l'usuari" -#: ../cli.py:399 +#: ../cli.py:401 msgid "Downloading Packages:" -msgstr "S'estan descarregant els següents paquets:" +msgstr "S'estan baixant els següents paquets:" -#: ../cli.py:404 +#: ../cli.py:406 msgid "Error Downloading Packages:\n" -msgstr "S'ha produït un error descarregant els següents paquets:\n" +msgstr "S'ha produït un error baixant els següents paquets:\n" -#: ../cli.py:418 -#: ../yum/__init__.py:3520 +#: ../cli.py:420 ../yum/__init__.py:3854 msgid "Running rpm_check_debug" msgstr "S'està executant rpm_check_debug" -#: ../cli.py:421 -#: ../yum/__init__.py:3523 +#: ../cli.py:429 ../yum/__init__.py:3863 +msgid "ERROR You need to update rpm to handle:" +msgstr "S'ha produït un error. Necessiteu actualitzar el gestor rpm:" + +#: ../cli.py:431 ../yum/__init__.py:3866 msgid "ERROR with rpm_check_debug vs depsolve:" msgstr "S'ha produït un error amb rpm_check_debug contra depsolve:" -#: ../cli.py:425 +#: ../cli.py:437 +msgid "RPM needs to be updated" +msgstr "Cal actualitzar l'RPM" + +#: ../cli.py:438 #, python-format msgid "Please report this error in %s" msgstr "Siusplau, informeu d'aquest error a %s" -#: ../cli.py:431 +#: ../cli.py:444 msgid "Running Transaction Test" msgstr "S'està executant la transacció de prova" -#: ../cli.py:447 +#: ../cli.py:460 msgid "Finished Transaction Test" msgstr "Ha acabat la transacció de prova" -#: ../cli.py:449 +#: ../cli.py:462 msgid "Transaction Check Error:\n" msgstr "S'ha produït un error en la transacció de prova:\n" -#: ../cli.py:456 +#: ../cli.py:469 msgid "Transaction Test Succeeded" msgstr "La transacció de prova ha acabat amb èxit" -#: ../cli.py:477 +#: ../cli.py:491 msgid "Running Transaction" msgstr "S'està executant la transacció" -#: ../cli.py:507 +#: ../cli.py:521 msgid "" "Refusing to automatically import keys when running unattended.\n" "Use \"-y\" to override." @@ -225,184 +215,191 @@ msgstr "" "No s'importaran automàticament les claus en una execució desatesa.\n" "Feu servir \"-y\" per a importar les claus." -#: ../cli.py:526 -#: ../cli.py:560 +#: ../cli.py:540 ../cli.py:574 msgid " * Maybe you meant: " msgstr " * Potser volíeu dir: " -#: ../cli.py:543 -#: ../cli.py:551 +#: ../cli.py:557 ../cli.py:565 #, python-format msgid "Package(s) %s%s%s available, but not installed." msgstr "Paquets %s%s%s disponibles, però no instal·lats." -#: ../cli.py:557 -#: ../cli.py:588 -#: ../cli.py:668 +#: ../cli.py:571 ../cli.py:602 ../cli.py:680 #, python-format msgid "No package %s%s%s available." msgstr "El paquet %s%s%s no està disponible." -#: ../cli.py:593 -#: ../cli.py:695 +#: ../cli.py:607 ../cli.py:740 msgid "Package(s) to install" msgstr "Paquets a instal·lar" -#: ../cli.py:594 -#: ../cli.py:674 -#: ../cli.py:696 -#: ../yumcommands.py:159 -#: ../yumcommands.py:1013 +#: ../cli.py:608 ../cli.py:686 ../cli.py:719 ../cli.py:741 +#: ../yumcommands.py:157 msgid "Nothing to do" msgstr "Res a fer" -#: ../cli.py:627 +#: ../cli.py:641 #, python-format msgid "%d packages marked for Update" msgstr "%d paquets marcats per a actualitzar" -#: ../cli.py:630 +#: ../cli.py:644 msgid "No Packages marked for Update" msgstr "No hi ha cap paquet marcat per a actualitzar" -#: ../cli.py:644 +#: ../cli.py:658 #, python-format msgid "%d packages marked for removal" -msgstr "%d paquets marcats per a esborrar" +msgstr "%d paquets marcats per a suprimir" -#: ../cli.py:647 +#: ../cli.py:661 msgid "No Packages marked for removal" -msgstr "No hi ha cap paquet marcat per a esborrar" +msgstr "No hi ha cap paquet marcat per a suprimir" -#: ../cli.py:673 +#: ../cli.py:685 msgid "Package(s) to downgrade" msgstr "Paquets per a desactualitzar" -#: ../cli.py:686 +#: ../cli.py:709 +#, python-format +msgid " (from %s)" +msgstr " (des de %s)" + +#: ../cli.py:711 +#, python-format +msgid "Installed package %s%s%s%s not available." +msgstr "El paquet instal·lat %s%s%s%s no està disponible." + +#: ../cli.py:718 +msgid "Package(s) to reinstall" +msgstr "Paquets a reinstal·lar" + +#: ../cli.py:731 msgid "No Packages Provided" msgstr "No s'ha proporcionat cap paquet" -#: ../cli.py:741 -msgid "Matching packages for package list to user args" -msgstr "S'està comparant els paquets per a la llista de paquets amb els arguments de l'usuari" - -#: ../cli.py:790 +#: ../cli.py:815 #, python-format msgid "Warning: No matches found for: %s" msgstr "Avís: no s'ha trobat cap coincidència per a: %s" -#: ../cli.py:793 +#: ../cli.py:818 msgid "No Matches found" msgstr "No s'ha trobat cap coincidència" -#: ../cli.py:832 +#: ../cli.py:857 #, 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 "" -"Avís: les versions 3.0.x del yum comproven incorrectament els noms de fitxer.\n" +"Avís: les versions 3.0.x del yum comproven incorrectament els noms de " +"fitxer.\n" " Podeu usar \"%s*/%s%s\" i/o \"%s*bin/%s%s\" per obtenir aquest comportament" -#: ../cli.py:848 +#: ../cli.py:873 #, python-format msgid "No Package Found for %s" msgstr "No s'ha trobat cap paquet per a %s" -#: ../cli.py:860 +#: ../cli.py:885 msgid "Cleaning up Everything" msgstr "S'està netejant tot" -#: ../cli.py:874 +#: ../cli.py:899 msgid "Cleaning up Headers" msgstr "S'estan netejant les capçaleres" -#: ../cli.py:877 +#: ../cli.py:902 msgid "Cleaning up Packages" msgstr "S'estan netejant els paquets" -#: ../cli.py:880 +#: ../cli.py:905 msgid "Cleaning up xml metadata" msgstr "S'estan netejant les metadades xml" -#: ../cli.py:883 +#: ../cli.py:908 msgid "Cleaning up database cache" msgstr "S'està netejant la memòria cau de la base de dades" -#: ../cli.py:886 +#: ../cli.py:911 msgid "Cleaning up expire-cache metadata" msgstr "S'està netejant la memòria cau de metadades que han vençut" -#: ../cli.py:889 +#: ../cli.py:914 msgid "Cleaning up plugins" msgstr "S'estan netejant els connectors" -#: ../cli.py:914 +#: ../cli.py:939 msgid "Installed Groups:" msgstr "Grups instal·lats:" -#: ../cli.py:926 +#: ../cli.py:951 msgid "Available Groups:" msgstr "Grups disponibles:" -#: ../cli.py:936 +#: ../cli.py:961 msgid "Done" msgstr "Fet" -#: ../cli.py:947 -#: ../cli.py:965 -#: ../cli.py:971 -#: ../yum/__init__.py:2421 +#: ../cli.py:972 ../cli.py:990 ../cli.py:996 ../yum/__init__.py:2560 #, python-format msgid "Warning: Group %s does not exist." msgstr "Avís: El grup %s no existeix." -#: ../cli.py:975 +#: ../cli.py:1000 msgid "No packages in any requested group available to install or update" -msgstr "No hi ha cap paquet disponible per a instal·lar o actualitzar en els grups sol·licitats" +msgstr "" +"No hi ha cap paquet disponible per a instal·lar o actualitzar en els grups " +"sol·licitats" -#: ../cli.py:977 +#: ../cli.py:1002 #, python-format msgid "%d Package(s) to Install" msgstr "%d paquets a instal·lar" -#: ../cli.py:987 -#: ../yum/__init__.py:2433 +#: ../cli.py:1012 ../yum/__init__.py:2572 #, python-format msgid "No group named %s exists" msgstr "No existeix cap grup anomenat %s" -#: ../cli.py:993 +#: ../cli.py:1018 msgid "No packages to remove from groups" -msgstr "No hi ha cap paquet a esborrar dels grups" +msgstr "No hi ha cap paquet a suprimir dels grups" -#: ../cli.py:995 +#: ../cli.py:1020 #, python-format msgid "%d Package(s) to remove" -msgstr "%d paquets a esborrar" +msgstr "%d paquets a suprimir" -#: ../cli.py:1037 +#: ../cli.py:1062 #, python-format msgid "Package %s is already installed, skipping" msgstr "El paquet %s ja està instal·lat, s'ometrà" -#: ../cli.py:1048 +#: ../cli.py:1073 #, python-format msgid "Discarding non-comparable pkg %s.%s" msgstr "S'està descartant el paquet no comparable %s.%s" #. we've not got any installed that match n or n+a -#: ../cli.py:1074 +#: ../cli.py:1099 #, python-format msgid "No other %s installed, adding to list for potential install" -msgstr "No hi ha cap altre %s instal·lat, s'afegeix a la llista per a una possible instal·lació" +msgstr "" +"No hi ha cap altre %s instal·lat, s'afegeix a la llista per a una possible " +"instal·lació" -#: ../cli.py:1093 +#: ../cli.py:1119 +msgid "Plugin Options" +msgstr "Opcions del connector" + +#: ../cli.py:1127 #, python-format msgid "Command line error: %s" msgstr "Error en la línia d'ordres: %s" -#: ../cli.py:1106 +#: ../cli.py:1140 #, python-format msgid "" "\n" @@ -413,253 +410,259 @@ msgstr "" "\n" "%s: l'opció %s necessita un argument" -#: ../cli.py:1164 +#: ../cli.py:1193 msgid "--color takes one of: auto, always, never" msgstr "--color pren un valor d'entre: auto, always, never" -#: ../cli.py:1266 +#: ../cli.py:1300 msgid "show this help message and exit" msgstr "mostra el missatge d'ajuda i surt" -#: ../cli.py:1270 +#: ../cli.py:1304 msgid "be tolerant of errors" msgstr "sigues tolerant amb els errors" -#: ../cli.py:1272 +#: ../cli.py:1306 msgid "run entirely from cache, don't update cache" msgstr "executa totalment des de la memòria cau, no l'actualitzis" -#: ../cli.py:1274 +#: ../cli.py:1308 msgid "config file location" msgstr "ubicació del fitxer de configuració" -#: ../cli.py:1276 +#: ../cli.py:1310 msgid "maximum command wait time" msgstr "temps màxim d'espera d'ordres" -#: ../cli.py:1278 +#: ../cli.py:1312 msgid "debugging output level" msgstr "nivell de sortida de depuració" -#: ../cli.py:1282 +#: ../cli.py:1316 msgid "show duplicates, in repos, in list/search commands" msgstr "mostra duplicats, en repositoris, en les ordres per llistar i cercar" -#: ../cli.py:1284 +#: ../cli.py:1318 msgid "error output level" msgstr "nivell de sortida d'error" -#: ../cli.py:1287 +#: ../cli.py:1321 msgid "quiet operation" msgstr "operació silenciosa" -#: ../cli.py:1289 +#: ../cli.py:1323 msgid "verbose operation" msgstr "operació descriptiva" -#: ../cli.py:1291 +#: ../cli.py:1325 msgid "answer yes for all questions" msgstr "respon sí a totes les preguntes" -#: ../cli.py:1293 +#: ../cli.py:1327 msgid "show Yum version and exit" msgstr "mostra la versió del Yum i surt" -#: ../cli.py:1294 +#: ../cli.py:1328 msgid "set install root" msgstr "estableix l'arrel de la instal·lació" -#: ../cli.py:1298 +#: ../cli.py:1332 msgid "enable one or more repositories (wildcards allowed)" msgstr "habilita un o més repositoris (es permeten caràcters de reemplaçament)" -#: ../cli.py:1302 +#: ../cli.py:1336 msgid "disable one or more repositories (wildcards allowed)" -msgstr "deshabilita un o més repositoris (es permeten caràcters de reemplaçament)" +msgstr "" +"deshabilita un o més repositoris (es permeten caràcters de reemplaçament)" -#: ../cli.py:1305 +#: ../cli.py:1339 msgid "exclude package(s) by name or glob" msgstr "exclou els paquets per nom o expressió regular del glob" -#: ../cli.py:1307 +#: ../cli.py:1341 msgid "disable exclude from main, for a repo or for everything" msgstr "inhabilita l'exclusió des de l'inici, per a un repositori o per a tot" -#: ../cli.py:1310 +#: ../cli.py:1344 msgid "enable obsoletes processing during updates" msgstr "habilita el processament d'obsolets durant les actualitzacions" -#: ../cli.py:1312 +#: ../cli.py:1346 msgid "disable Yum plugins" msgstr "inhabilita els connectors de Yum" -#: ../cli.py:1314 +#: ../cli.py:1348 msgid "disable gpg signature checking" msgstr "inhabilita la comprobació de signatures gpg" -#: ../cli.py:1316 +#: ../cli.py:1350 msgid "disable plugins by name" msgstr "inhabilita els connectors pel seu nom" -#: ../cli.py:1319 +#: ../cli.py:1353 msgid "enable plugins by name" msgstr "habilita els connectors pel seu nom" -#: ../cli.py:1322 +#: ../cli.py:1356 msgid "skip packages with depsolving problems" msgstr "omet paquets amb problemes de resolució de dependències" -#: ../cli.py:1324 +#: ../cli.py:1358 msgid "control whether color is used" msgstr "controla sempre que s'usi color" -#: ../output.py:298 +#: ../output.py:303 msgid "Jan" msgstr "Gen" -#: ../output.py:298 +#: ../output.py:303 msgid "Feb" msgstr "Feb" -#: ../output.py:298 +#: ../output.py:303 msgid "Mar" msgstr "Mar" -#: ../output.py:298 +#: ../output.py:303 msgid "Apr" msgstr "Abr" -#: ../output.py:298 +#: ../output.py:303 msgid "May" msgstr "Mai" -#: ../output.py:298 +#: ../output.py:303 msgid "Jun" msgstr "Jun" -#: ../output.py:299 +#: ../output.py:304 msgid "Jul" msgstr "Jul" -#: ../output.py:299 +#: ../output.py:304 msgid "Aug" msgstr "Ago" -#: ../output.py:299 +#: ../output.py:304 msgid "Sep" msgstr "Set" -#: ../output.py:299 +#: ../output.py:304 msgid "Oct" msgstr "Oct" -#: ../output.py:299 +#: ../output.py:304 msgid "Nov" msgstr "Nov" -#: ../output.py:299 +#: ../output.py:304 msgid "Dec" msgstr "Des" -#: ../output.py:309 +#: ../output.py:314 msgid "Trying other mirror." msgstr "S'està intentant un altre servidor rèplica." -#: ../output.py:525 +#: ../output.py:536 #, python-format msgid "Name : %s%s%s" msgstr "Nom : %s%s%s" -#: ../output.py:526 +#: ../output.py:537 #, python-format msgid "Arch : %s" msgstr "Arq : %s" -#: ../output.py:528 +#: ../output.py:539 #, python-format msgid "Epoch : %s" msgstr "Època : %s" -#: ../output.py:529 +#: ../output.py:540 #, python-format msgid "Version : %s" msgstr "Versió : %s" -#: ../output.py:530 +#: ../output.py:541 #, python-format msgid "Release : %s" msgstr "Release : %s" -#: ../output.py:531 +#: ../output.py:542 #, python-format msgid "Size : %s" msgstr "Mida : %s" -#: ../output.py:532 +#: ../output.py:543 #, python-format msgid "Repo : %s" msgstr "Repo : %s" -#: ../output.py:534 +#: ../output.py:545 +#, python-format +msgid "From repo : %s" +msgstr "Des del repo : %s" + +#: ../output.py:547 #, python-format msgid "Committer : %s" msgstr "Desenvolupador : %s" -#: ../output.py:535 +#: ../output.py:548 #, python-format msgid "Committime : %s" msgstr "Pujat : %s" -#: ../output.py:536 +#: ../output.py:549 #, python-format msgid "Buildtime : %s" msgstr "Temps de creació : %s" -#: ../output.py:538 +#: ../output.py:551 #, python-format msgid "Installtime: %s" msgstr "Temps d'instal·lació: %s" -#: ../output.py:539 +#: ../output.py:552 msgid "Summary : " msgstr "Resum : " -#: ../output.py:541 +#: ../output.py:554 #, python-format msgid "URL : %s" msgstr "URL : %s" -#: ../output.py:542 +#: ../output.py:555 #, python-format msgid "License : %s" msgstr "Llicència : %s" -#: ../output.py:543 +#: ../output.py:556 msgid "Description: " msgstr "Descripció: " -#: ../output.py:611 +#: ../output.py:624 msgid "y" msgstr "s" -#: ../output.py:611 +#: ../output.py:624 msgid "yes" msgstr "sí" -#: ../output.py:612 +#: ../output.py:625 msgid "n" msgstr "n" -#: ../output.py:612 +#: ../output.py:625 msgid "no" msgstr "no" # REMEMBER to Translate [Y/N] to the current locale -#: ../output.py:616 +#: ../output.py:629 msgid "Is this ok [y/N]: " msgstr "És correcte [s/N]: " -#: ../output.py:704 +#: ../output.py:720 #, python-format msgid "" "\n" @@ -668,134 +671,142 @@ msgstr "" "\n" "Grup: %s" -#: ../output.py:708 +#: ../output.py:724 #, python-format msgid " Group-Id: %s" msgstr " Id de Grup: %s" -#: ../output.py:713 +#: ../output.py:729 #, python-format msgid " Description: %s" msgstr " Descripció: %s" -#: ../output.py:715 +#: ../output.py:731 msgid " Mandatory Packages:" msgstr " Paquets obligatoris:" -#: ../output.py:716 +#: ../output.py:732 msgid " Default Packages:" msgstr " Paquets per defecte:" -#: ../output.py:717 +#: ../output.py:733 msgid " Optional Packages:" msgstr " Paquets opcionals:" -#: ../output.py:718 +#: ../output.py:734 msgid " Conditional Packages:" msgstr " Paquets condicionals:" -#: ../output.py:738 +#: ../output.py:754 #, python-format msgid "package: %s" msgstr "paquet: %s" -#: ../output.py:740 +#: ../output.py:756 msgid " No dependencies for this package" msgstr " No hi ha dependències per a aquest paquet" -#: ../output.py:745 +#: ../output.py:761 #, python-format msgid " dependency: %s" msgstr " dependència: %s" -#: ../output.py:747 +#: ../output.py:763 msgid " Unsatisfied dependency" msgstr " Dependència insatisfeta" -#: ../output.py:819 +#: ../output.py:835 #, python-format msgid "Repo : %s" msgstr "Repo : %s" -#: ../output.py:820 +#: ../output.py:836 msgid "Matched from:" msgstr "Coincidències amb:" -#: ../output.py:828 +#: ../output.py:845 msgid "Description : " msgstr "Descripció : " -#: ../output.py:831 +#: ../output.py:848 #, python-format msgid "URL : %s" msgstr "URL : %s" -#: ../output.py:834 +#: ../output.py:851 #, python-format msgid "License : %s" msgstr "Llicència : %s" -#: ../output.py:837 +#: ../output.py:854 #, python-format msgid "Filename : %s" msgstr "Fitxer : %s" -#: ../output.py:841 +#: ../output.py:858 msgid "Other : " msgstr "Altre : " -#: ../output.py:874 +#: ../output.py:891 msgid "There was an error calculating total download size" msgstr "S'ha produït un error en calcular la mida total de la descàrrega" -#: ../output.py:879 +#: ../output.py:896 #, python-format msgid "Total size: %s" msgstr "Mida total: %s" -#: ../output.py:882 +#: ../output.py:899 #, python-format msgid "Total download size: %s" msgstr "Mida total de la descàrrega: %s" -#: ../output.py:924 +#: ../output.py:940 +#, +msgid "Reinstalling" +msgstr "Tornant a instal·lar" + +#: ../output.py:941 +msgid "Downgrading" +msgstr "Desfent l'actualització" + +#: ../output.py:942 msgid "Installing for dependencies" msgstr "S'està instal·lant per dependències" -#: ../output.py:925 +#: ../output.py:943 msgid "Updating for dependencies" msgstr "S'està actualitzant degut a les dependències" -#: ../output.py:926 +#: ../output.py:944 msgid "Removing for dependencies" -msgstr "S'està esborrant degut a les dependències" +msgstr "S'està suprimint degut a les dependències" -#: ../output.py:933 -#: ../output.py:1031 +#: ../output.py:951 ../output.py:1063 msgid "Skipped (dependency problems)" msgstr "Ignorat degut a problemes de dependències:" -#: ../output.py:954 +#: ../output.py:974 msgid "Package" msgstr "Paquet" -#: ../output.py:954 +#: ../output.py:974 msgid "Arch" msgstr "Arq" -#: ../output.py:955 +#: ../output.py:975 msgid "Version" msgstr "Versió" -#: ../output.py:955 +#: ../output.py:975 msgid "Repository" msgstr "Repositori" -#: ../output.py:956 +#: ../output.py:976 msgid "Size" msgstr "Mida" -#: ../output.py:968 +#: ../output.py:988 #, python-format msgid "" " replacing %s%s%s.%s %s\n" @@ -804,135 +815,164 @@ msgstr "" " s'està reemplaçant %s%s%s.%s %s\n" "\n" -#: ../output.py:977 +#: ../output.py:997 #, 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" -"Resum de transaccions\n" +"Resum de la transacció\n" "%s\n" -"Instal·la %5.5s paquets \n" -"Actualitza %5.5s paquets \n" -"Esborra %5.5s paquets \n" -#: ../output.py:1025 +#: ../output.py:1004 +#, python-format +msgid "" +"Install %5.5s Package(s)\n" +"Upgrade %5.5s Package(s)\n" +msgstr "" +"Instal·la %5.5s paquets\n" +"Actualitza %5.5s paquets\n" + + +#: ../output.py:1013 +#, python-format //paraula downgrade +msgid "" +"Remove %5.5s Package(s)\n" +"Reinstall %5.5s Package(s)\n" +"Downgrade %5.5s Package(s)\n" +msgstr "" +"Suprimeix %5.5s paquets\n" +"Reinstal·la %5.5s paquets\n" +"Desactualitza %5.5s paquets\n" + +#: ../output.py:1057 msgid "Removed" -msgstr "Esborrat" +msgstr "Suprimit" -#: ../output.py:1026 +#: ../output.py:1058 msgid "Dependency Removed" -msgstr "Dependència esborrada" +msgstr "Dependència suprimida" -#: ../output.py:1028 +#: ../output.py:1060 msgid "Dependency Installed" msgstr "Dependència instal·lada" -#: ../output.py:1030 +#: ../output.py:1062 msgid "Dependency Updated" msgstr "Dependència actualitzada" -#: ../output.py:1032 +#: ../output.py:1064 msgid "Replaced" msgstr "Reemplaçat" -#: ../output.py:1033 +#: ../output.py:1065 msgid "Failed" msgstr "Ha fallat" #. Delta between C-c's so we treat as exit -#: ../output.py:1099 +#: ../output.py:1131 msgid "two" msgstr "dos" -#: ../output.py:1106 +#. For translators: This is output like: +#. Current download cancelled, interrupt (ctrl-c) again within two seconds +#. to exit. +#. Where "interupt (ctrl-c) again" and "two" are highlighted. +#: ../output.py:1142 #, python-format msgid "" "\n" -" Current download cancelled, %sinterrupt (ctrl-c) again%s within %s%s%s seconds to exit.\n" +" Current download cancelled, %sinterrupt (ctrl-c) again%s within %s%s%s " +"seconds\n" +"to exit.\n" msgstr "" "\n" -" S'ha cancel·lat la descàrrega actual, %sinterromp (crtl-c) de nou%s en %s%s%s segons per a sortir.\n" +" S'ha cancel·lat la descàrrega actual, %sinterromp (crtl-c) de nou%s en %s%s%s " +"segons\n" +"per a sortir.\n" -#: ../output.py:1116 +#: ../output.py:1153 msgid "user interrupt" msgstr "interrupció de l'usuari" -#: ../output.py:1132 +#: ../output.py:1171 msgid "Total" msgstr "Total" -#: ../output.py:1146 +#: ../output.py:1186 msgid "installed" msgstr "instal·lat" -#: ../output.py:1147 +#: ../output.py:1187 msgid "updated" msgstr "actualitzat" -#: ../output.py:1148 +#: ../output.py:1188 msgid "obsoleted" msgstr "obsolet" -#: ../output.py:1149 +#: ../output.py:1189 msgid "erased" -msgstr "esborrat" +msgstr "suprimit" -#: ../output.py:1153 +#: ../output.py:1193 #, python-format msgid "---> Package %s.%s %s:%s-%s set to be %s" msgstr "---> Paquet %s.%s %s:%s-%s passarà a ser %s" -#: ../output.py:1160 +#: ../output.py:1200 msgid "--> Running transaction check" msgstr "--> S'està executant la transacció de prova" -#: ../output.py:1165 +#: ../output.py:1205 msgid "--> Restarting Dependency Resolution with new changes." -msgstr "--> Tornant a calcular la resolució de dependències amb els nous canvis." +msgstr "" +"--> Tornant a calcular la resolució de dependències amb els nous canvis." -#: ../output.py:1170 +#: ../output.py:1210 msgid "--> Finished Dependency Resolution" msgstr "--> Ha finalitzat la resolució de dependències" -#: ../output.py:1175 +#: ../output.py:1215 ../output.py:1220 #, python-format msgid "--> Processing Dependency: %s for package: %s" msgstr "--> S'està processant la dependència %s per al paquet: %s" -#: ../output.py:1180 +#: ../output.py:1224 #, python-format msgid "--> Unresolved Dependency: %s" msgstr "--> Dependència no resolta: %s" -#: ../output.py:1186 +#: ../output.py:1230 ../output.py:1235 #, python-format msgid "--> Processing Conflict: %s conflicts %s" msgstr "--> S'està processant el conflicte: %s té un conflicte amb %s" -#: ../output.py:1189 +#: ../output.py:1239 msgid "--> Populating transaction set with selected packages. Please wait." -msgstr "--> S'està poblant la transacció amb els paquets sel·leccionats. Si us plau, espereu." +msgstr "" +"--> S'està poblant la transacció amb els paquets sel·leccionats. Si us plau, " +"espereu." -#: ../output.py:1193 +#: ../output.py:1243 #, python-format msgid "---> Downloading header for %s to pack into transaction set." -msgstr "---> S'està descarregant la capçalera per a %s per a empaquetar dins de la transacció de prova." +msgstr "" +"---> S'està baixant la capçalera per a %s per a empaquetar dins de la " +"transacció de prova." -#: ../yumcommands.py:41 +#: ../yumcommands.py:40 msgid "You need to be root to perform this command." msgstr "Heu de ser root per a executar aquesta ordre." -#: ../yumcommands.py:48 +#: ../yumcommands.py:47 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" +"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" @@ -945,8 +985,10 @@ msgid "" "For more information contact your distribution or package provider.\n" msgstr "" "\n" -"Heu habilitat la comprovació de paquets utilitzant claus GPG. És una bona opció. \n" -"No obstant, no teniu cap clau pública GPG instal·lada. Necessiteu descarregar\n" +"Heu habilitat la comprovació de paquets utilitzant claus GPG. És una bona " +"opció. \n" +"No obstant, no teniu cap clau pública GPG instal·lada. Necessiteu " +"baixar\n" "les claus per als paquets que desitgeu instal·lar i instal·lar-les.\n" "Podeu fer-ho executant l'ordre:\n" " rpm --import clau.pública.gpg\n" @@ -956,163 +998,164 @@ msgstr "" "per a un repositori en l'opció 'gpgkey' en la secció d'un repositori i yum \n" "la instal·larà per vosaltres.\n" "\n" -"Per a més informació contacteu el vostre distribuïdor o proveïdor de paquets.\n" +"Per a més informació contacteu el vostre distribuïdor o proveïdor de " +"paquets.\n" -#: ../yumcommands.py:68 +#: ../yumcommands.py:67 #, python-format msgid "Error: Need to pass a list of pkgs to %s" msgstr "Error: es necessita passar una llista de paquets a %s" -#: ../yumcommands.py:74 +#: ../yumcommands.py:73 msgid "Error: Need an item to match" msgstr "Error: es necessita algun element per comparar" -#: ../yumcommands.py:80 +#: ../yumcommands.py:79 msgid "Error: Need a group or list of groups" msgstr "Error: es necessita un grup o una llista de grups" -#: ../yumcommands.py:89 +#: ../yumcommands.py:88 #, python-format msgid "Error: clean requires an option: %s" msgstr "Error: la neteja requereix una opció: %s" -#: ../yumcommands.py:94 +#: ../yumcommands.py:93 #, python-format msgid "Error: invalid clean argument: %r" msgstr "Error: argument invàlid per a la neteja: %r" -#: ../yumcommands.py:107 +#: ../yumcommands.py:106 msgid "No argument to shell" msgstr "No hi ha arguments per a l'intèrpret d'ordres" -#: ../yumcommands.py:110 +#: ../yumcommands.py:108 #, python-format msgid "Filename passed to shell: %s" msgstr "Nom del fitxer passat a l'intèrpret d'ordres: %s" -#: ../yumcommands.py:114 +#: ../yumcommands.py:112 #, python-format msgid "File %s given as argument to shell does not exist." msgstr "El fitxer %s donat com a argument a l'intèrpret d'ordres no existeix." -#: ../yumcommands.py:120 +#: ../yumcommands.py:118 msgid "Error: more than one file given as argument to shell." -msgstr "Error: s'ha donat més d'un fitxer com a argument per a l'intèrpret d'ordres." +msgstr "" +"Error: s'ha donat més d'un fitxer com a argument per a l'intèrpret d'ordres." -#: ../yumcommands.py:169 +#: ../yumcommands.py:167 msgid "PACKAGE..." msgstr "PAQUET..." -#: ../yumcommands.py:172 +#: ../yumcommands.py:170 msgid "Install a package or packages on your system" msgstr "Instal·la un o més paquets al vostre sistema" -#: ../yumcommands.py:180 +#: ../yumcommands.py:178 msgid "Setting up Install Process" msgstr "S'està preparant el procés d'instal·lació" -#: ../yumcommands.py:191 +#: ../yumcommands.py:189 msgid "[PACKAGE...]" msgstr "[PAQUET...]" -#: ../yumcommands.py:194 +#: ../yumcommands.py:192 msgid "Update a package or packages on your system" msgstr "S'ha actualitzat un o més paquets al vostre sistema" -#: ../yumcommands.py:201 +#: ../yumcommands.py:199 msgid "Setting up Update Process" msgstr "S'està preparant el procés d'actualització" -#: ../yumcommands.py:243 +#: ../yumcommands.py:244 msgid "Display details about a package or group of packages" msgstr "Mostra detalls sobre un paquet o un grup de paquets" -#: ../yumcommands.py:292 +#: ../yumcommands.py:293 msgid "Installed Packages" msgstr "Paquets instal·lats" -#: ../yumcommands.py:300 +#: ../yumcommands.py:301 msgid "Available Packages" msgstr "Paquets disponibles" -#: ../yumcommands.py:304 +#: ../yumcommands.py:305 msgid "Extra Packages" msgstr "Paquets extra" -#: ../yumcommands.py:308 +#: ../yumcommands.py:309 msgid "Updated Packages" msgstr "Paquets actualitzats" #. This only happens in verbose mode -#: ../yumcommands.py:316 -#: ../yumcommands.py:323 -#: ../yumcommands.py:600 +#: ../yumcommands.py:317 ../yumcommands.py:324 ../yumcommands.py:600 msgid "Obsoleting Packages" msgstr "Paquets obsolets" -#: ../yumcommands.py:325 +#: ../yumcommands.py:326 msgid "Recently Added Packages" msgstr "Paquets recentment afegits" -#: ../yumcommands.py:332 +#: ../yumcommands.py:333 msgid "No matching Packages to list" msgstr "No hi ha paquets coincidents per llistar" -#: ../yumcommands.py:346 +#: ../yumcommands.py:347 msgid "List a package or groups of packages" msgstr "Llista un paquet o un grup de paquets" -#: ../yumcommands.py:358 +#: ../yumcommands.py:359 msgid "Remove a package or packages from your system" -msgstr "Esborra un o més paquets del vostre sistema" +msgstr "Suprimeix un o més paquets del vostre sistema" -#: ../yumcommands.py:365 +#: ../yumcommands.py:366 msgid "Setting up Remove Process" -msgstr "S'està preparant el procés d'esborrat" +msgstr "S'està preparant el procés de supressió" -#: ../yumcommands.py:379 +#: ../yumcommands.py:380 msgid "Setting up Group Process" msgstr "S'està preparant el procés de grup" -#: ../yumcommands.py:385 +#: ../yumcommands.py:386 msgid "No Groups on which to run command" msgstr "No hi ha cap grup on executar l'ordre" -#: ../yumcommands.py:398 +#: ../yumcommands.py:399 msgid "List available package groups" msgstr "Llista els grups de paquets disponibles" -#: ../yumcommands.py:415 +#: ../yumcommands.py:416 msgid "Install the packages in a group on your system" msgstr "Instal·la els paquets en un grup en el vostre sistema" -#: ../yumcommands.py:437 +#: ../yumcommands.py:438 msgid "Remove the packages in a group from your system" -msgstr "Esborra els paquets en un grup en el vostre sistema" +msgstr "Suprimeix els paquets en un grup en el vostre sistema" -#: ../yumcommands.py:464 +#: ../yumcommands.py:465 msgid "Display details about a package group" msgstr "Mostra detalls sobre un grup de paquets" -#: ../yumcommands.py:488 +#: ../yumcommands.py:489 msgid "Generate the metadata cache" msgstr "Genera les metadades de la memòria cau" -#: ../yumcommands.py:494 +#: ../yumcommands.py:495 msgid "Making cache files for all metadata files." -msgstr "S'estan fent els fitxers de memòria cau per a tots els fitxers de metadades." +msgstr "" +"S'estan fent els fitxers de memòria cau per a tots els fitxers de metadades." -#: ../yumcommands.py:495 +#: ../yumcommands.py:496 msgid "This may take a while depending on the speed of this computer" msgstr "Això pot trigar una estona depenent de la velocitat d'aquest ordinador" -#: ../yumcommands.py:516 +#: ../yumcommands.py:517 msgid "Metadata Cache Created" msgstr "S'han creat les metadades per a la memòria cau" -#: ../yumcommands.py:530 +#: ../yumcommands.py:531 msgid "Remove cached data" -msgstr "S'han esborrat les dades de la memòria cau" +msgstr "S'han suprimit les dades de la memòria cau" #: ../yumcommands.py:551 msgid "Find what package provides the given value" @@ -1174,99 +1217,122 @@ msgstr "S'estan trobant dependències: " msgid "Display the configured software repositories" msgstr "Mostra els repositoris de programari configurats" -#: ../yumcommands.py:803 -#: ../yumcommands.py:804 +#: ../yumcommands.py:803 ../yumcommands.py:804 msgid "enabled" msgstr "habilitat" -#: ../yumcommands.py:812 -#: ../yumcommands.py:813 +#: ../yumcommands.py:812 ../yumcommands.py:813 msgid "disabled" msgstr "deshabilitat" #: ../yumcommands.py:827 -msgid "Repo-id : " -msgstr "Id-repo : " +msgid "Repo-id : " +msgstr "Id-repo : " #: ../yumcommands.py:828 -msgid "Repo-name : " -msgstr "Nom-repo : " +msgid "Repo-name : " +msgstr "Nom-repo : " #: ../yumcommands.py:829 -msgid "Repo-status : " -msgstr "Estat-repo : " +msgid "Repo-status : " +msgstr "Estat-repo : " #: ../yumcommands.py:831 msgid "Repo-revision: " -msgstr "Repo-revisió : " +msgstr "Repo-revisió : " #: ../yumcommands.py:835 -msgid "Repo-tags : " -msgstr "Repo-etiquetes : " +msgid "Repo-tags : " +msgstr "Repo-etiquetes : " #: ../yumcommands.py:841 msgid "Repo-distro-tags: " -msgstr "Repo-etiq-dist : " +msgstr "Repo-etiq-dist : " #: ../yumcommands.py:846 -msgid "Repo-updated: " -msgstr "Repo-actualitzat: " +msgid "Repo-updated : " +msgstr "Repo-actualitzat : " #: ../yumcommands.py:848 -msgid "Repo-pkgs : " -msgstr "Paquets-repo : " +msgid "Repo-pkgs : " +msgstr "Paquets-repo : " #: ../yumcommands.py:849 -msgid "Repo-size : " -msgstr "Mida-repo : " +msgid "Repo-size : " +msgstr "Mida-repo : " #: ../yumcommands.py:856 -msgid "Repo-baseurl: " -msgstr "URL-base-repo : " +msgid "Repo-baseurl : " +msgstr "URL-base-repo : " -#: ../yumcommands.py:860 +#: ../yumcommands.py:864 msgid "Repo-metalink: " -msgstr "Repo-metaenllaç : " - -#: ../yumcommands.py:863 -msgid "Repo-mirrors: " -msgstr "Miralls-repo : " +msgstr "Repo-metaenllaç : " -#: ../yumcommands.py:867 -msgid "Repo-exclude: " -msgstr "Repo-exclou : " +#: ../yumcommands.py:868 +#, +msgid " Updated : " +msgstr " Actualitzat : " #: ../yumcommands.py:871 -msgid "Repo-include: " -msgstr "Repo-inclou : " +msgid "Repo-mirrors : " +msgstr "Miralls-repo : " + +#: ../yumcommands.py:875 ../yummain.py:133 +msgid "Unknown" +msgstr "Desconegut" + +#: ../yumcommands.py:881 +#, python-format +msgid "Never (last: %s)" +msgstr "Mai (últim: %s)" + +#: ../yumcommands.py:883 +#, python-format +msgid "Instant (last: %s)" +msgstr "Temps d'instal·lació (últim: %s)" + +#: ../yumcommands.py:886 +#, python-format +msgid "%s second(s) (last: %s)" +msgstr "%s segons (últim: %s)" + +#: ../yumcommands.py:888 +msgid "Repo-expire : " +msgstr "Venç-repo : " + +#: ../yumcommands.py:891 +msgid "Repo-exclude : " +msgstr "Repo-exclou : " + +#: ../yumcommands.py:895 +msgid "Repo-include : " +msgstr "Repo-inclou : " #. Work out the first (id) and last (enabled/disalbed/count), #. then chop the middle (name)... -#: ../yumcommands.py:881 -#: ../yumcommands.py:907 +#: ../yumcommands.py:905 ../yumcommands.py:931 msgid "repo id" msgstr "id repo" -#: ../yumcommands.py:895 -#: ../yumcommands.py:896 -#: ../yumcommands.py:910 +#: ../yumcommands.py:919 ../yumcommands.py:920 ../yumcommands.py:934 msgid "status" msgstr "estat" -#: ../yumcommands.py:908 +#: ../yumcommands.py:932 msgid "repo name" msgstr "nom repo" -#: ../yumcommands.py:934 +#: ../yumcommands.py:958 msgid "Display a helpful usage message" msgstr "Mostra un missatge d'ajuda d'ús" -#: ../yumcommands.py:968 +#: ../yumcommands.py:992 #, python-format msgid "No help available for %s" msgstr "No hi ha ajuda disponible per a %s" -#: ../yumcommands.py:973 +#: ../yumcommands.py:997 msgid "" "\n" "\n" @@ -1276,7 +1342,7 @@ msgstr "" "\n" "àlies: " -#: ../yumcommands.py:975 +#: ../yumcommands.py:999 msgid "" "\n" "\n" @@ -1286,26 +1352,36 @@ msgstr "" "\n" "àlies: " -#: ../yumcommands.py:1003 +#: ../yumcommands.py:1027 msgid "Setting up Reinstall Process" msgstr "S'està preparant el procés de reinstal·lació" -#: ../yumcommands.py:1012 -msgid "Package(s) to reinstall" -msgstr "Paquets a reinstal·lar" - -#: ../yumcommands.py:1019 +#: ../yumcommands.py:1035 msgid "reinstall a package" msgstr "reinstal·la un paquet" -#: ../yumcommands.py:1037 +#: ../yumcommands.py:1053 msgid "Setting up Downgrade Process" msgstr "S'està preparant el procés de desactualització" -#: ../yumcommands.py:1044 +#: ../yumcommands.py:1060 msgid "downgrade a package" msgstr "desactualitza un paquet" +#: ../yumcommands.py:1074 +msgid "Display a version for the machine and/or available repos." +msgstr "Mostra una versió per a la màquina i/o repositoris disponibles" + +#: ../yumcommands.py:1101 +#, +msgid "Installed:" +msgstr "Instal·lat:" + +#: ../yumcommands.py:1110 +#, +msgid "Available:" +msgstr "Disponible:" + #: ../yummain.py:42 msgid "" "\n" @@ -1326,80 +1402,87 @@ msgstr "" "\n" "S'està sortint en trobar la canonada trencada" -#: ../yummain.py:126 +#: ../yummain.py:50 +#, python-format +msgid "" +"\n" +"\n" +"%s" +msgstr "" +"\n" +"\n" +"%s" + +#: ../yummain.py:128 msgid "Running" msgstr "S'està executant" -#: ../yummain.py:127 +#: ../yummain.py:129 msgid "Sleeping" msgstr "Està dormint" -#: ../yummain.py:128 +#: ../yummain.py:130 msgid "Uninteruptable" msgstr "Ininterrumpible" -#: ../yummain.py:129 +#: ../yummain.py:131 msgid "Zombie" msgstr "Zombi" -#: ../yummain.py:130 +#: ../yummain.py:132 msgid "Traced/Stopped" msgstr "Traçat/aturat" -#: ../yummain.py:131 -msgid "Unknown" -msgstr "Desconegut" - -#: ../yummain.py:135 +#: ../yummain.py:137 msgid " The other application is: PackageKit" msgstr " L'altre aplicatiu és: PackageKit" -#: ../yummain.py:137 +#: ../yummain.py:139 #, python-format msgid " The other application is: %s" msgstr " L'altre aplicatiu és: %s" -#: ../yummain.py:140 +#: ../yummain.py:142 #, python-format msgid " Memory : %5s RSS (%5sB VSZ)" msgstr " Memòria : %5s RSS (%5sB VSZ)" -#: ../yummain.py:144 +#: ../yummain.py:146 #, python-format msgid " Started: %s - %s ago" msgstr " Iniciat: fa %s-%s" -#: ../yummain.py:146 +#: ../yummain.py:148 #, python-format msgid " State : %s, pid: %d" msgstr " Estat : %s, pid: %d" -#: ../yummain.py:171 -msgid "Another app is currently holding the yum lock; waiting for it to exit..." -msgstr "Alguna altra aplicació té el bloqueig del yum; s'està esperant a que surti..." +#: ../yummain.py:173 +msgid "" +"Another app is currently holding the yum lock; waiting for it to exit..." +msgstr "" +"Alguna altra aplicació té el bloqueig del yum; s'està esperant a que surti..." -#: ../yummain.py:199 -#: ../yummain.py:238 +#: ../yummain.py:201 ../yummain.py:240 #, python-format msgid "Error: %s" msgstr "Error: %s" -#: ../yummain.py:209 -#: ../yummain.py:250 +#: ../yummain.py:211 ../yummain.py:253 #, python-format msgid "Unknown Error(s): Exit Code: %d:" msgstr "Errors desconeguts: Codi de sortida: %d:" #. Depsolve stage -#: ../yummain.py:216 +#: ../yummain.py:218 msgid "Resolving Dependencies" msgstr "S'estan resolent dependències" -#: ../yummain.py:240 +#: ../yummain.py:242 msgid " You could try using --skip-broken to work around the problem" msgstr " Hauríeu de provar utilitzant --skip-broken per evitar el problema" -#: ../yummain.py:241 +#: ../yummain.py:243 msgid "" " You could try running: package-cleanup --problems\n" " package-cleanup --dupes\n" @@ -1409,7 +1492,7 @@ msgstr "" " package-cleanup --dupes\n" " rpm -Va --nofiles --nodigest" -#: ../yummain.py:256 +#: ../yummain.py:259 msgid "" "\n" "Dependencies Resolved" @@ -1417,11 +1500,11 @@ msgstr "" "\n" "Dependències resoltes" -#: ../yummain.py:270 +#: ../yummain.py:273 msgid "Complete!" msgstr "Completat!" -#: ../yummain.py:317 +#: ../yummain.py:320 msgid "" "\n" "\n" @@ -1431,201 +1514,205 @@ msgstr "" "\n" "S'està sortint de l'ordre de l'usuari." -#: ../yum/depsolve.py:84 +#: ../yum/depsolve.py:83 msgid "doTsSetup() will go away in a future version of Yum.\n" msgstr "doTsSetup() desapareixerà en una futura versió de Yum.\n" -#: ../yum/depsolve.py:99 +#: ../yum/depsolve.py:98 msgid "Setting up TransactionSets before config class is up" -msgstr "S'està configurant TransactionSets abans que la classe de configuració estigui iniciada" +msgstr "" +"S'està configurant TransactionSets abans que la classe de configuració " +"estigui iniciada" -#: ../yum/depsolve.py:150 +#: ../yum/depsolve.py:149 #, python-format msgid "Invalid tsflag in config file: %s" msgstr "Tsflag invàlid en el fitxer de configuració: %s" -#: ../yum/depsolve.py:161 +#: ../yum/depsolve.py:160 #, python-format msgid "Searching pkgSack for dep: %s" msgstr "S'està buscant pkgSack per a la dependència: %s" -#: ../yum/depsolve.py:184 +#: ../yum/depsolve.py:183 #, python-format msgid "Potential match for %s from %s" msgstr "Coincidència potencial per a %s de %s" -#: ../yum/depsolve.py:192 +#: ../yum/depsolve.py:191 #, python-format msgid "Matched %s to require for %s" msgstr "La coincidència %s es requereix per a %s" -#: ../yum/depsolve.py:233 +#: ../yum/depsolve.py:232 #, python-format msgid "Member: %s" msgstr "Membre: %s" -#: ../yum/depsolve.py:247 -#: ../yum/depsolve.py:739 +#: ../yum/depsolve.py:246 ../yum/depsolve.py:756 #, python-format msgid "%s converted to install" msgstr "%s convertits per a instal·lar" -#: ../yum/depsolve.py:254 +#: ../yum/depsolve.py:253 #, python-format msgid "Adding Package %s in mode %s" msgstr "S'està afegint el paquet %s en mode %s" -#: ../yum/depsolve.py:264 +#: ../yum/depsolve.py:263 #, python-format msgid "Removing Package %s" -msgstr "S'està esborrant el paquet %s" +msgstr "S'està suprimint el paquet %s" -#: ../yum/depsolve.py:275 +#: ../yum/depsolve.py:285 #, python-format msgid "%s requires: %s" msgstr "%s requereix: %s" -#: ../yum/depsolve.py:333 +#: ../yum/depsolve.py:343 msgid "Needed Require has already been looked up, cheating" -msgstr "El requeriment necessari ja s'ha buscat anteriorment, s'estan fent trampes" +msgstr "" +"El requeriment necessari ja s'ha buscat anteriorment, s'estan fent trampes" -#: ../yum/depsolve.py:343 +#: ../yum/depsolve.py:353 #, python-format msgid "Needed Require is not a package name. Looking up: %s" msgstr "El requeriment necessari no és un nom de paquet. S'està buscant: %s" -#: ../yum/depsolve.py:350 +#: ../yum/depsolve.py:360 #, python-format msgid "Potential Provider: %s" msgstr "Proveïdor potencial: %s" -#: ../yum/depsolve.py:373 +#: ../yum/depsolve.py:383 #, python-format msgid "Mode is %s for provider of %s: %s" msgstr "El mode és %s per al proveïdor de %s: %s" -#: ../yum/depsolve.py:377 +#: ../yum/depsolve.py:387 #, python-format msgid "Mode for pkg providing %s: %s" msgstr "Mode per al paquet que proporciona %s: %s" -#: ../yum/depsolve.py:381 +#: ../yum/depsolve.py:391 #, python-format msgid "TSINFO: %s package requiring %s marked as erase" -msgstr "TSINFO: el paquet %s requereix %s marcat per a esborrar" +msgstr "TSINFO: el paquet %s requereix %s marcat per a suprimir" -#: ../yum/depsolve.py:394 +#: ../yum/depsolve.py:404 #, python-format msgid "TSINFO: Obsoleting %s with %s to resolve dep." -msgstr "TSINFO: S'està marcant com a obsolet %s amb %s per resoldre dependències." +msgstr "" +"TSINFO: S'està marcant com a obsolet %s amb %s per resoldre dependències." -#: ../yum/depsolve.py:397 +#: ../yum/depsolve.py:407 #, python-format msgid "TSINFO: Updating %s to resolve dep." msgstr "TSINFO: S'està actualitzant %s per a resoldre dependències." -#: ../yum/depsolve.py:405 +#: ../yum/depsolve.py:415 #, python-format msgid "Cannot find an update path for dep for: %s" msgstr "No es pot trobar un camí d'actualització de dependències per a: %s" -#: ../yum/depsolve.py:415 +#: ../yum/depsolve.py:425 #, python-format msgid "Unresolvable requirement %s for %s" msgstr "No es pot resoldre el requeriment %s per a %s" -#: ../yum/depsolve.py:438 +#: ../yum/depsolve.py:448 #, python-format msgid "Quick matched %s to require for %s" msgstr "La coincidència %s es requereix per a %s" #. is it already installed? -#: ../yum/depsolve.py:480 +#: ../yum/depsolve.py:490 #, python-format msgid "%s is in providing packages but it is already installed, removing." -msgstr "%s es troba en els paquets proporcionats però ja es troba instal·lat, s'està esborrant." +msgstr "" +"%s es troba en els paquets proporcionats però ja es troba instal·lat, s'està " +"suprimint." -#: ../yum/depsolve.py:496 +#: ../yum/depsolve.py:506 #, python-format msgid "Potential resolving package %s has newer instance in ts." -msgstr "El paquet potencial que resol dependències %s té una instància nova a ts" +msgstr "" +"El paquet potencial que resol dependències %s té una instància nova a ts" -#: ../yum/depsolve.py:507 +#: ../yum/depsolve.py:517 #, python-format msgid "Potential resolving package %s has newer instance installed." -msgstr "El paquet potencial que resol dependències %s té una nova instància insta·lada." +msgstr "" +"El paquet potencial que resol dependències %s té una nova instància " +"insta·lada." -#: ../yum/depsolve.py:515 -#: ../yum/depsolve.py:564 +#: ../yum/depsolve.py:525 ../yum/depsolve.py:571 #, python-format msgid "Missing Dependency: %s is needed by package %s" msgstr "Manca una dependència: %s es necessita per al paquet %s" -#: ../yum/depsolve.py:528 +#: ../yum/depsolve.py:538 #, python-format msgid "%s already in ts, skipping this one" msgstr "%s ja es troba en ts, s'està ometent" -#: ../yum/depsolve.py:574 +#: ../yum/depsolve.py:581 #, python-format msgid "TSINFO: Marking %s as update for %s" msgstr "TSINFO: S'està marcant %s com a actualització per a %s" -#: ../yum/depsolve.py:582 +#: ../yum/depsolve.py:589 #, python-format msgid "TSINFO: Marking %s as install for %s" msgstr "TSINFO: S'està marcant %s com a instal·lació per a %s" -#: ../yum/depsolve.py:675 -#: ../yum/depsolve.py:757 +#: ../yum/depsolve.py:692 ../yum/depsolve.py:774 msgid "Success - empty transaction" msgstr "Èxit - transacció buida" -#: ../yum/depsolve.py:714 -#: ../yum/depsolve.py:729 +#: ../yum/depsolve.py:731 ../yum/depsolve.py:746 msgid "Restarting Loop" msgstr "S'està recomençant el bucle" -#: ../yum/depsolve.py:745 +#: ../yum/depsolve.py:762 msgid "Dependency Process ending" msgstr "Està acabant el procés de dependències" -#: ../yum/depsolve.py:751 +#: ../yum/depsolve.py:768 #, python-format msgid "%s from %s has depsolving problems" msgstr "%s de %s té problemes resolent dependències" -#: ../yum/depsolve.py:758 +#: ../yum/depsolve.py:775 msgid "Success - deps resolved" msgstr "Èxit - dependències resoltes" -#: ../yum/depsolve.py:772 +#: ../yum/depsolve.py:789 #, python-format msgid "Checking deps for %s" msgstr "S'estan comprobant les dependències per a %s" -#: ../yum/depsolve.py:855 +#: ../yum/depsolve.py:872 #, python-format msgid "looking for %s as a requirement of %s" msgstr "s'està buscant %s com a requeriment de %s" -#: ../yum/depsolve.py:997 +#: ../yum/depsolve.py:1014 #, python-format msgid "Running compare_providers() for %s" msgstr "S'està executant compare_providers() per a %s" -#: ../yum/depsolve.py:1025 -#: ../yum/depsolve.py:1031 +#: ../yum/depsolve.py:1048 ../yum/depsolve.py:1054 #, python-format msgid "better arch in po %s" msgstr "millor arq en el po %s" -#: ../yum/depsolve.py:1092 +#: ../yum/depsolve.py:1140 #, python-format msgid "%s obsoletes %s" msgstr "%s fa obsolet %s" -#: ../yum/depsolve.py:1108 +#: ../yum/depsolve.py:1152 #, python-format msgid "" "archdist compared %s to %s on %s\n" @@ -1634,112 +1721,121 @@ msgstr "" "archdist ha comparat %s amb %s a %s\n" " Ha guanyat: %s" -#: ../yum/depsolve.py:1115 +#: ../yum/depsolve.py:1159 #, python-format msgid "common sourcerpm %s and %s" msgstr "rpm font comú %s i %s" -#: ../yum/depsolve.py:1121 +#: ../yum/depsolve.py:1165 #, python-format msgid "common prefix of %s between %s and %s" msgstr "prefix comú de %s entre %s i %s" -#: ../yum/depsolve.py:1129 +#: ../yum/depsolve.py:1173 #, python-format msgid "Best Order: %s" msgstr "Millor ordre: %s" -#: ../yum/__init__.py:158 +#: ../yum/__init__.py:180 msgid "doConfigSetup() will go away in a future version of Yum.\n" msgstr "doConfigsetup() desapareixerà en una futura versió de Yum.\n" -#: ../yum/__init__.py:367 +#: ../yum/__init__.py:401 #, python-format msgid "Repository %r is missing name in configuration, using id" msgstr "Falta el nom del repositori %r en la configuració, s'utilitzarà l'id" -#: ../yum/__init__.py:405 +#: ../yum/__init__.py:439 msgid "plugins already initialised" msgstr "els connectors ja estan inicialitzats" -#: ../yum/__init__.py:412 +#: ../yum/__init__.py:446 msgid "doRpmDBSetup() will go away in a future version of Yum.\n" msgstr "doRpmDBSetup() desapareixerà en una futura versió de Yum.\n" -#: ../yum/__init__.py:423 +#: ../yum/__init__.py:457 msgid "Reading Local RPMDB" msgstr "S'està llegint un RPMDB local" -#: ../yum/__init__.py:441 +#: ../yum/__init__.py:478 msgid "doRepoSetup() will go away in a future version of Yum.\n" msgstr "doRepoSetup() desapareixerà en una futura versió de Yum.\n" -#: ../yum/__init__.py:461 +#: ../yum/__init__.py:498 msgid "doSackSetup() will go away in a future version of Yum.\n" msgstr "doSackSetup() desapareixerà en una versió futura de Yum.\n" -#: ../yum/__init__.py:478 +#: ../yum/__init__.py:528 msgid "Setting up Package Sacks" msgstr "S'estan configurant els sacs de paquets" -#: ../yum/__init__.py:521 +#: ../yum/__init__.py:573 #, python-format msgid "repo object for repo %s lacks a _resetSack method\n" msgstr "l'objecte repositori per al repositori %s no té un mètode _resetSack\n" -#: ../yum/__init__.py:522 +#: ../yum/__init__.py:574 msgid "therefore this repo cannot be reset.\n" msgstr "Aquest repositori no es pot reiniciar.\n" -#: ../yum/__init__.py:527 +#: ../yum/__init__.py:579 msgid "doUpdateSetup() will go away in a future version of Yum.\n" msgstr "doUpdateSetup() desapareixerà en una futura versió de Yum.\n" -#: ../yum/__init__.py:539 +#: ../yum/__init__.py:591 msgid "Building updates object" msgstr "S'està construint l'objecte d'actualitzacions" -#: ../yum/__init__.py:570 +#: ../yum/__init__.py:626 msgid "doGroupSetup() will go away in a future version of Yum.\n" msgstr "doGroupSetup() desapareixerà en una futura versió de Yum.\n" -#: ../yum/__init__.py:595 +#: ../yum/__init__.py:651 msgid "Getting group metadata" msgstr "S'estan obtenint les metadades del grup" -#: ../yum/__init__.py:621 +#: ../yum/__init__.py:677 #, python-format msgid "Adding group file from repository: %s" msgstr "S'està afegint el fitxer del grup des del repositori: %s" -#: ../yum/__init__.py:630 +#: ../yum/__init__.py:686 #, python-format msgid "Failed to add groups file for repository: %s - %s" msgstr "No s'ha pogut afegir el fitxer dels grups des del repositori: %s - %s" -#: ../yum/__init__.py:636 +#: ../yum/__init__.py:692 msgid "No Groups Available in any repository" msgstr "No hi ha cap grup disponible en cap repositori" -#: ../yum/__init__.py:686 +#: ../yum/__init__.py:742 msgid "Importing additional filelist information" msgstr "S'està important informació adicional de la llista de fitxers" -#: ../yum/__init__.py:695 -msgid "There are unfinished transactions remaining. You might consider running yum-complete-transaction first to finish them." -msgstr "Encara hi ha transaccions sense acabar. Hauríeu de considerar executar yum-complete-transaction abans per acabar-les." +#: ../yum/__init__.py:756 +#, python-format +msgid "The program %s%s%s is found in the yum-utils package." +msgstr "El programa %s%s%s es troba en el paquet yum-utils." + +#: ../yum/__init__.py:764 +msgid "" +"There are unfinished transactions remaining. You might consider running yum-" +"complete-transaction first to finish them." +msgstr "" +"Encara hi ha transaccions sense acabar. Hauríeu de considerar executar yum-" +"complete-transaction abans per acabar-les." -#: ../yum/__init__.py:761 +#: ../yum/__init__.py:832 #, python-format msgid "Skip-broken round %i" msgstr "Intent %i d'omissió dels paquets trencats" -#: ../yum/__init__.py:813 +#: ../yum/__init__.py:884 #, python-format msgid "Skip-broken took %i rounds " msgstr "L'omissió dels paquets trencats ha necessitat %i intents" -#: ../yum/__init__.py:814 +#: ../yum/__init__.py:885 msgid "" "\n" "Packages skipped because of dependency problems:" @@ -1747,89 +1843,74 @@ msgstr "" "\n" "Paquets omesos degut a problemes de dependències:" -#: ../yum/__init__.py:818 +#: ../yum/__init__.py:889 #, python-format msgid " %s from %s" msgstr " %s des de %s" -#: ../yum/__init__.py:958 -msgid "Warning: scriptlet or other non-fatal errors occurred during transaction." -msgstr "Avís: ha fallat l'scriptlet o s'han produït altre tipus d'errors no fatals durant la transacció." +#: ../yum/__init__.py:1027 +msgid "" +"Warning: scriptlet or other non-fatal errors occurred during transaction." +msgstr "" +"Avís: ha fallat l'scriptlet o s'han produït altre tipus d'errors no fatals " +"durant la transacció." -#: ../yum/__init__.py:973 +#: ../yum/__init__.py:1042 #, python-format msgid "Failed to remove transaction file %s" -msgstr "No s'ha pogut esborrar el fitxer de transaccions %s" +msgstr "No s'ha pogut suprimir el fitxer de transaccions %s" -#: ../yum/__init__.py:1015 +#. maybe a file log here, too +#. but raising an exception is not going to do any good +#: ../yum/__init__.py:1071 #, python-format -msgid "excluding for cost: %s from %s" -msgstr "s'està excloent per cost: %s de %s" - -#: ../yum/__init__.py:1046 -msgid "Excluding Packages in global exclude list" -msgstr "S'estan excloent paquets en la llista global d'exclusió" +msgid "%s was supposed to be installed but is not!" +msgstr "S'havia d'instal·lar %s però no s'ha realitzat!" -#: ../yum/__init__.py:1048 +#. maybe a file log here, too +#. but raising an exception is not going to do any good +#: ../yum/__init__.py:1110 #, python-format -msgid "Excluding Packages from %s" -msgstr "S'estan excloent paquets de %s" - -#: ../yum/__init__.py:1077 -#, python-format -msgid "Reducing %s to included packages only" -msgstr "S'està reduint %s únicament a paquets inclosos." - -#: ../yum/__init__.py:1083 -#, python-format -msgid "Keeping included package %s" -msgstr "S'està mantenint el paquet inclòs %s" - -#: ../yum/__init__.py:1089 -#, python-format -msgid "Removing unmatched package %s" -msgstr "S'està esborrant el paquet sense coincidències %s" - -#: ../yum/__init__.py:1092 -msgid "Finished" -msgstr "Finalitzat" +msgid "%s was supposed to be removed but is not!" +msgstr "S'havia de suprimir %s però no s'ha realitzat!" #. Whoa. What the heck happened? -#: ../yum/__init__.py:1122 +#: ../yum/__init__.py:1225 #, python-format msgid "Unable to check if PID %s is active" msgstr "No s'ha pogut comprovar si el PID %s es troba actiu" #. Another copy seems to be running. -#: ../yum/__init__.py:1126 +#: ../yum/__init__.py:1229 #, python-format msgid "Existing lock %s: another copy is running as pid %s." msgstr "Bloqueig existent %s: una altra còpia s'està executant amb pid %s." -#: ../yum/__init__.py:1196 +#: ../yum/__init__.py:1306 msgid "Package does not match intended download" msgstr "El paquet no coincideix amb la descàrrega intentada" -#: ../yum/__init__.py:1211 +#: ../yum/__init__.py:1321 msgid "Could not perform checksum" msgstr "No s'ha pogut realitzar la suma de verificació" -#: ../yum/__init__.py:1214 +#: ../yum/__init__.py:1324 msgid "Package does not match checksum" msgstr "No coincideix la suma de verificació del paquet" -#: ../yum/__init__.py:1257 +#: ../yum/__init__.py:1366 #, python-format msgid "package fails checksum but caching is enabled for %s" -msgstr "la suma de verificació del paquet falla però l'ús de memòria cau està habilitat per a %s" +msgstr "" +"la suma de verificació del paquet falla però l'ús de memòria cau està " +"habilitat per a %s" -#: ../yum/__init__.py:1260 -#: ../yum/__init__.py:1289 +#: ../yum/__init__.py:1369 ../yum/__init__.py:1398 #, python-format msgid "using local copy of %s" msgstr "s'està utilitzant la còpia local de %s" -#: ../yum/__init__.py:1301 +#: ../yum/__init__.py:1410 #, python-format msgid "" "Insufficient space in download directory %s\n" @@ -1840,441 +1921,462 @@ msgstr "" " * lliure %s\n" " * necessari %s" -#: ../yum/__init__.py:1348 +#: ../yum/__init__.py:1459 msgid "Header is not complete." msgstr "La capçalera no està completa." -#: ../yum/__init__.py:1385 +#: ../yum/__init__.py:1496 #, python-format -msgid "Header not in local cache and caching-only mode enabled. Cannot download %s" -msgstr "La capçalera no es troba en la memòria cau local i està habilitat el mode de només memòria cau. No es pot descarregar %s" +msgid "" +"Header not in local cache and caching-only mode enabled. Cannot download %s" +msgstr "" +"La capçalera no es troba en la memòria cau local i està habilitat el mode de " +"només memòria cau. No es pot baixar %s" -#: ../yum/__init__.py:1440 +#: ../yum/__init__.py:1551 #, python-format msgid "Public key for %s is not installed" msgstr "La clau pública per a %s no està instal·lada" -#: ../yum/__init__.py:1444 +#: ../yum/__init__.py:1555 #, python-format msgid "Problem opening package %s" msgstr "Hi ha hagut un problema obrint el paquet %s" -#: ../yum/__init__.py:1452 +#: ../yum/__init__.py:1563 #, python-format msgid "Public key for %s is not trusted" msgstr "La clau pública per a %s no és de confiança" -#: ../yum/__init__.py:1456 +#: ../yum/__init__.py:1567 #, python-format msgid "Package %s is not signed" msgstr "El paquet %s no està signat" -#: ../yum/__init__.py:1494 +#: ../yum/__init__.py:1605 #, python-format msgid "Cannot remove %s" -msgstr "No es pot esborrar %s" +msgstr "No es pot suprimir %s" -#: ../yum/__init__.py:1498 +#: ../yum/__init__.py:1609 #, python-format msgid "%s removed" -msgstr "S'ha esborrat %s" +msgstr "S'ha suprimit %s" -#: ../yum/__init__.py:1534 +#: ../yum/__init__.py:1645 #, python-format msgid "Cannot remove %s file %s" -msgstr "No es pot esborrar %s fitxer %s" +msgstr "No es pot suprimir %s fitxer %s" -#: ../yum/__init__.py:1538 +#: ../yum/__init__.py:1649 #, python-format msgid "%s file %s removed" -msgstr "%s fitxer %s esborrat" +msgstr "%s fitxer %s suprimit" -#: ../yum/__init__.py:1540 +#: ../yum/__init__.py:1651 #, python-format msgid "%d %s files removed" -msgstr "%d %s fitxers esborrats" +msgstr "%d %s fitxers suprimits" -#: ../yum/__init__.py:1609 +#: ../yum/__init__.py:1720 #, python-format msgid "More than one identical match in sack for %s" msgstr "Hi ha més d'una coincidència idèntica en el sac per a %s" -#: ../yum/__init__.py:1615 +#: ../yum/__init__.py:1726 #, python-format msgid "Nothing matches %s.%s %s:%s-%s from update" msgstr "No hi ha coincidències %s.%s-%s:%s-%s de l'actualització" -#: ../yum/__init__.py:1833 -msgid "searchPackages() will go away in a future version of Yum. Use searchGenerator() instead. \n" -msgstr "searchPackages() desapareixerà en una futura versió de Yum. Useu searchGenerator(). \n" +#: ../yum/__init__.py:1959 +msgid "" +"searchPackages() will go away in a future version of " +"Yum. Use searchGenerator() instead. \n" +msgstr "" +"searchPackages() desapareixerà en una futura versió de " +"Yum. Useu searchGenerator(). \n" -#: ../yum/__init__.py:1875 +#: ../yum/__init__.py:2001 #, python-format msgid "Searching %d packages" msgstr "S'estan buscant %d paquets" -#: ../yum/__init__.py:1879 +#: ../yum/__init__.py:2005 #, python-format msgid "searching package %s" msgstr "s'està buscant el paquet %s" -#: ../yum/__init__.py:1891 +#: ../yum/__init__.py:2017 msgid "searching in file entries" msgstr "s'està buscant en les entrades de fitxers" -#: ../yum/__init__.py:1898 +#: ../yum/__init__.py:2024 msgid "searching in provides entries" msgstr "s'està buscant en les entrades proporcionades" -#: ../yum/__init__.py:1931 +#: ../yum/__init__.py:2057 #, python-format msgid "Provides-match: %s" msgstr "Proporciona-coincideix: %s" -#: ../yum/__init__.py:1980 +#: ../yum/__init__.py:2106 msgid "No group data available for configured repositories" msgstr "No hi ha dades de grup disponibles en cap dels repositoris configurats" -#: ../yum/__init__.py:2011 -#: ../yum/__init__.py:2030 -#: ../yum/__init__.py:2061 -#: ../yum/__init__.py:2067 -#: ../yum/__init__.py:2146 -#: ../yum/__init__.py:2150 -#: ../yum/__init__.py:2447 +#: ../yum/__init__.py:2137 ../yum/__init__.py:2156 ../yum/__init__.py:2187 +#: ../yum/__init__.py:2193 ../yum/__init__.py:2272 ../yum/__init__.py:2276 +#: ../yum/__init__.py:2586 #, python-format msgid "No Group named %s exists" msgstr "No existeix cap grup anomenat %s" -#: ../yum/__init__.py:2042 -#: ../yum/__init__.py:2163 +#: ../yum/__init__.py:2168 ../yum/__init__.py:2289 #, python-format msgid "package %s was not marked in group %s" msgstr "el paquet %s no estava marcat en el grup %s" -#: ../yum/__init__.py:2089 +#: ../yum/__init__.py:2215 #, python-format msgid "Adding package %s from group %s" msgstr "S'està afegint el paquet %s del grup %s" -#: ../yum/__init__.py:2093 +#: ../yum/__init__.py:2219 #, python-format msgid "No package named %s available to be installed" msgstr "No hi ha cap paquet anomenat %s disponible per a ser instal·lat" -#: ../yum/__init__.py:2190 +#: ../yum/__init__.py:2316 #, python-format msgid "Package tuple %s could not be found in packagesack" msgstr "No s'ha pogut trobar la tupla de paquets %s al sac de paquets" -#: ../yum/__init__.py:2205 -msgid "getInstalledPackageObject() will go away, use self.rpmdb.searchPkgTuple().\n" -msgstr "getInstalledPackageObject() desapareixarà, useu self.rpmdb.searchPkgTuple().\n" +#: ../yum/__init__.py:2330 +msgid "" +"getInstalledPackageObject() will go away, use self.rpmdb.searchPkgTuple().\n" +msgstr "" +"getInstalledPackageObject() desapareixarà, useu self.rpmdb.searchPkgTuple" +"().\n" -#: ../yum/__init__.py:2261 -#: ../yum/__init__.py:2305 +#: ../yum/__init__.py:2386 ../yum/__init__.py:2436 msgid "Invalid version flag" msgstr "Marcador de versió invàlid" -#: ../yum/__init__.py:2276 -#: ../yum/__init__.py:2280 +#: ../yum/__init__.py:2406 ../yum/__init__.py:2411 #, python-format msgid "No Package found for %s" msgstr "No s'ha trobat cap paquet per a %s" -#: ../yum/__init__.py:2480 +#: ../yum/__init__.py:2627 msgid "Package Object was not a package object instance" msgstr "L'objecte paquet no era una instància d'objecte paquet" -#: ../yum/__init__.py:2484 +#: ../yum/__init__.py:2631 msgid "Nothing specified to install" msgstr "No hi ha res especificat per a instal·lar" -#: ../yum/__init__.py:2500 -#: ../yum/__init__.py:3127 +#: ../yum/__init__.py:2647 ../yum/__init__.py:3411 #, python-format msgid "Checking for virtual provide or file-provide for %s" -msgstr "S'està verificant si hi ha un proveïdor virtual o un fitxer proveïdor per a %s" +msgstr "" +"S'està verificant si hi ha un proveïdor virtual o un fitxer proveïdor per a %" +"s" -#: ../yum/__init__.py:2506 -#: ../yum/__init__.py:2783 -#: ../yum/__init__.py:2943 -#: ../yum/__init__.py:3133 +#: ../yum/__init__.py:2653 ../yum/__init__.py:2960 ../yum/__init__.py:3127 +#: ../yum/__init__.py:3417 #, python-format msgid "No Match for argument: %s" msgstr "No hi ha cap coincidència per a l'argument: %s" -#: ../yum/__init__.py:2580 +#: ../yum/__init__.py:2729 #, python-format msgid "Package %s installed and not available" msgstr "El paquet %s es troba instal·lat però no és disponible" -#: ../yum/__init__.py:2583 +#: ../yum/__init__.py:2732 msgid "No package(s) available to install" msgstr "No hi ha cap paquet disponible per a instal·lar" -#: ../yum/__init__.py:2595 +#: ../yum/__init__.py:2744 #, python-format msgid "Package: %s - already in transaction set" msgstr "El paquet: %s - ja està en la transacció" -#: ../yum/__init__.py:2610 +#: ../yum/__init__.py:2770 +#, python-format +msgid "Package %s is obsoleted by %s which is already installed" +msgstr "El paquet %s és obsolet degut a %s, que ja està instal·lat" + +#: ../yum/__init__.py:2773 #, python-format msgid "Package %s is obsoleted by %s, trying to install %s instead" -msgstr "El paquet %s és obsolet degut a %s, es provarà d'instal·lar %s" +msgstr "El paquet %s és obsolet degut a %s, es provarà d'instal·lar %s en el seu lloc" -#: ../yum/__init__.py:2618 +#: ../yum/__init__.py:2781 #, python-format msgid "Package %s already installed and latest version" msgstr "El paquet %s ja es troba instal·lat i en l'última versió." -#: ../yum/__init__.py:2632 +#: ../yum/__init__.py:2795 #, python-format msgid "Package matching %s already installed. Checking for update." -msgstr "El paquet coincident %s ja es troba instal·lat. S'està buscant una actualització." +msgstr "" +"El paquet coincident %s ja es troba instal·lat. S'està buscant una " +"actualització." #. update everything (the easy case) -#: ../yum/__init__.py:2718 +#: ../yum/__init__.py:2889 msgid "Updating Everything" msgstr "S'està actualitzant tot" -#: ../yum/__init__.py:2736 -#: ../yum/__init__.py:2845 -#: ../yum/__init__.py:2866 -#: ../yum/__init__.py:2892 +#: ../yum/__init__.py:2910 ../yum/__init__.py:3025 ../yum/__init__.py:3054 +#: ../yum/__init__.py:3081 #, python-format msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s" msgstr "No s'actualitzarà el paquet obsolet: %s.%s %s:%s-%s" -#: ../yum/__init__.py:2771 -#: ../yum/__init__.py:2940 +#: ../yum/__init__.py:2945 ../yum/__init__.py:3124 #, python-format msgid "%s" msgstr "%s" -#: ../yum/__init__.py:2836 +#: ../yum/__init__.py:3016 #, python-format msgid "Package is already obsoleted: %s.%s %s:%s-%s" msgstr "El paquet és obsolet: %s.%s %s:%s-%s" -#: ../yum/__init__.py:2869 -#: ../yum/__init__.py:2895 +#: ../yum/__init__.py:3049 +#, python-format +msgid "Not Updating Package that is obsoleted: %s" +msgstr "No s'actualitzarà el paquet obsolet: %s" + +#: ../yum/__init__.py:3058 ../yum/__init__.py:3085 #, python-format msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s" msgstr "No s'actualitzarà el paquet actualitzat: %s.%s %s:%s-%s" -#: ../yum/__init__.py:2956 +#: ../yum/__init__.py:3140 msgid "No package matched to remove" -msgstr "No hi ha cap paquet coincident per a esborrar" +msgstr "No hi ha cap paquet coincident per a suprimir" -#: ../yum/__init__.py:2990 +#: ../yum/__init__.py:3173 ../yum/__init__.py:3277 ../yum/__init__.py:3366 #, python-format msgid "Cannot open file: %s. Skipping." msgstr "No es pot obrir el fitxer %s. S'ometrà." -#: ../yum/__init__.py:2993 +#: ../yum/__init__.py:3176 ../yum/__init__.py:3280 ../yum/__init__.py:3369 #, python-format msgid "Examining %s: %s" msgstr "S'està examinant %s: %s" -#: ../yum/__init__.py:3001 +#: ../yum/__init__.py:3184 ../yum/__init__.py:3283 ../yum/__init__.py:3372 #, python-format msgid "Cannot add package %s to transaction. Not a compatible architecture: %s" -msgstr "No s'ha pogut afegir el paquet %s a la transacció. No és una arquitectura compatible: %s" +msgstr "" +"No s'ha pogut afegir el paquet %s a la transacció. No és una arquitectura " +"compatible: %s" -#: ../yum/__init__.py:3009 +#: ../yum/__init__.py:3192 #, python-format -msgid "Package %s not installed, cannot update it. Run yum install to install it instead." -msgstr "El paquet %s no està instal·lat; no es pot actualitzar. Executeu «yum install» per a instal·lar-lo." +msgid "" +"Package %s not installed, cannot update it. Run yum install to install it " +"instead." +msgstr "" +"El paquet %s no està instal·lat; no es pot actualitzar. Executeu «yum " +"install» per a instal·lar-lo." -#: ../yum/__init__.py:3044 +#: ../yum/__init__.py:3227 ../yum/__init__.py:3294 ../yum/__init__.py:3383 #, python-format msgid "Excluding %s" msgstr "S'està excloent %s" -#: ../yum/__init__.py:3049 +#: ../yum/__init__.py:3232 #, python-format msgid "Marking %s to be installed" msgstr "S'està marcant %s per a ser instal·lat" -#: ../yum/__init__.py:3055 +#: ../yum/__init__.py:3238 #, python-format msgid "Marking %s as an update to %s" msgstr "S'està marcant %s com a actualització de %s" -#: ../yum/__init__.py:3062 +#: ../yum/__init__.py:3245 #, python-format msgid "%s: does not update installed package." msgstr "%s no actualitza el paquet instal·lat." -#: ../yum/__init__.py:3077 +#: ../yum/__init__.py:3313 msgid "Problem in reinstall: no package matched to remove" -msgstr "Hi ha un problema en reinstal·lar: no hi ha cap paquet marcat per a esborrar" +msgstr "" +"Hi ha un problema en reinstal·lar: no hi ha cap paquet marcat per a suprimir" -#: ../yum/__init__.py:3089 -#: ../yum/__init__.py:3160 +#: ../yum/__init__.py:3326 ../yum/__init__.py:3444 #, python-format msgid "Package %s is allowed multiple installs, skipping" msgstr "El paquet %s permet múltiples instal·lacions, s'està ometent" -#: ../yum/__init__.py:3098 -msgid "Problem in reinstall: no package matched to install" -msgstr "Hi ha un problema en reinstal·lar: no hi ha cap paquet marcat per a instal·lar" +#: ../yum/__init__.py:3347 +#, python-format +msgid "Problem in reinstall: no package %s matched to install" +msgstr "" +"Hi ha un problema en reinstal·lar: no hi ha cap paquet %s marcat per a " +"instal·lar" -#: ../yum/__init__.py:3152 +#: ../yum/__init__.py:3436 msgid "No package(s) available to downgrade" msgstr "No hi ha cap paquet disponible per a desactualitzar" -#: ../yum/__init__.py:3183 +#: ../yum/__init__.py:3480 #, python-format msgid "No Match for available package: %s" msgstr "No hi ha cap paquet disponible que coincideixi: %s" -#: ../yum/__init__.py:3189 +#: ../yum/__init__.py:3486 #, python-format msgid "Only Upgrade available on package: %s" msgstr "Només hi ha una actualització disponible per al paquet: %s" -#: ../yum/__init__.py:3241 +#: ../yum/__init__.py:3545 #, python-format msgid "Retrieving GPG key from %s" msgstr "S'està recuperant la clau GPG des de %s" -#: ../yum/__init__.py:3261 +#: ../yum/__init__.py:3565 msgid "GPG key retrieval failed: " msgstr "La recuperació de la clau GPG ha fallat: " -#: ../yum/__init__.py:3272 +#: ../yum/__init__.py:3576 #, python-format msgid "GPG key parsing failed: key does not have value %s" msgstr "L'ànalisi de la clau GPG ha fallat: la clau no té el valor %s" -#: ../yum/__init__.py:3304 +#: ../yum/__init__.py:3608 #, python-format msgid "GPG key at %s (0x%s) is already installed" msgstr "La clau GPG de %s (0x%s) ja està instal·lada" #. Try installing/updating GPG key -#: ../yum/__init__.py:3309 -#: ../yum/__init__.py:3371 +#: ../yum/__init__.py:3613 ../yum/__init__.py:3675 #, python-format msgid "Importing GPG key 0x%s \"%s\" from %s" msgstr "S'està important la clau GPG 0x%s \"%s\" des de %s" -#: ../yum/__init__.py:3326 +#: ../yum/__init__.py:3630 msgid "Not installing key" msgstr "No s'està instal·lant la clau" -#: ../yum/__init__.py:3332 +#: ../yum/__init__.py:3636 #, python-format msgid "Key import failed (code %d)" msgstr "La importació de la clau ha fallat (codi %d)" -#: ../yum/__init__.py:3333 -#: ../yum/__init__.py:3392 +#: ../yum/__init__.py:3637 ../yum/__init__.py:3696 msgid "Key imported successfully" msgstr "La clau s'ha importat amb èxit" -#: ../yum/__init__.py:3338 -#: ../yum/__init__.py:3397 +#: ../yum/__init__.py:3642 ../yum/__init__.py:3701 #, python-format msgid "" -"The GPG keys listed for the \"%s\" repository are already installed but they are not correct for this package.\n" +"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 "" -"Les claus GPG llistades per al repositori \"%s\" ja estan instal·lades però no són correctes per a aquest paquet.\n" -"Comproveu que les URL de claus correctes estan configurades per a aquest repositori." +"Les claus GPG llistades per al repositori \"%s\" ja estan instal·lades però " +"no són correctes per a aquest paquet.\n" +"Comproveu que les URL de claus correctes estan configurades per a aquest " +"repositori." -#: ../yum/__init__.py:3347 +#: ../yum/__init__.py:3651 msgid "Import of key(s) didn't help, wrong key(s)?" msgstr "La importació de claus no ha ajudat, eren claus incorrectes?" -#: ../yum/__init__.py:3366 +#: ../yum/__init__.py:3670 #, python-format msgid "GPG key at %s (0x%s) is already imported" msgstr "La clau GPG a %s (0x%s) ja ha estat importada" -#: ../yum/__init__.py:3386 +#: ../yum/__init__.py:3690 #, python-format msgid "Not installing key for repo %s" msgstr "No s'està instal·lant la clau per al repositori %s" -#: ../yum/__init__.py:3391 +#: ../yum/__init__.py:3695 msgid "Key import failed" msgstr "Ha fallat la importació de la clau" -#: ../yum/__init__.py:3482 +#: ../yum/__init__.py:3816 msgid "Unable to find a suitable mirror." msgstr "No s'ha pogut trobar un servidor rèplica vàlid." -#: ../yum/__init__.py:3484 +#: ../yum/__init__.py:3818 msgid "Errors were encountered while downloading packages." -msgstr "S'han trobat errors descarregant paquets." +msgstr "S'han trobat errors baixant paquets." -#: ../yum/__init__.py:3525 +#: ../yum/__init__.py:3868 #, python-format msgid "Please report this error at %s" msgstr "Siusplau, informeu d'aquest error al %s" -#: ../yum/__init__.py:3549 +#: ../yum/__init__.py:3892 msgid "Test Transaction Errors: " msgstr "Errors en la transacció de prova: " #. Mostly copied from YumOutput._outKeyValFill() -#: ../yum/plugins.py:204 +#: ../yum/plugins.py:202 msgid "Loaded plugins: " msgstr "Connectors carregats: " -#: ../yum/plugins.py:218 -#: ../yum/plugins.py:224 +#: ../yum/plugins.py:216 ../yum/plugins.py:222 #, python-format msgid "No plugin match for: %s" msgstr "No hi ha cap connector que coincideixi amb: %s" -#: ../yum/plugins.py:254 +#: ../yum/plugins.py:252 #, python-format msgid "Not loading \"%s\" plugin, as it is disabled" msgstr "No s'està carregant el connector \"%s\", ja que està deshabilitat" #. Give full backtrace: -#: ../yum/plugins.py:266 +#: ../yum/plugins.py:264 #, python-format msgid "Plugin \"%s\" can't be imported" msgstr "No s'ha pogut importar el connector \"%s\"" -#: ../yum/plugins.py:273 +#: ../yum/plugins.py:271 #, python-format msgid "Plugin \"%s\" doesn't specify required API version" msgstr "El connector \"%s\" no especifica la versió de l'API requerida." -#: ../yum/plugins.py:278 +#: ../yum/plugins.py:276 #, python-format msgid "Plugin \"%s\" requires API %s. Supported API is %s." msgstr "El connector \"%s\" requereix l'API %s. L'API disponible és %s" -#: ../yum/plugins.py:311 +#: ../yum/plugins.py:309 #, python-format msgid "Loading \"%s\" plugin" msgstr "S'està carregant el connector \"%s\"" -#: ../yum/plugins.py:318 +#: ../yum/plugins.py:316 #, python-format -msgid "Two or more plugins with the name \"%s\" exist in the plugin search path" -msgstr "Existeixen dos o més connectors amb el mateix nom \"%s\" en el camí de cerca de connectors" +msgid "" +"Two or more plugins with the name \"%s\" exist in the plugin search path" +msgstr "" +"Existeixen dos o més connectors amb el mateix nom \"%s\" en el camí de cerca " +"de connectors" -#: ../yum/plugins.py:338 +#: ../yum/plugins.py:336 #, python-format msgid "Configuration file %s not found" msgstr "No s'ha trobat el fitxer de configuració %s" #. for #. Configuration files for the plugin not found -#: ../yum/plugins.py:341 +#: ../yum/plugins.py:339 #, python-format msgid "Unable to find configuration file for plugin %s" msgstr "No s'ha pogut trobar un fitxer de configuració per al connector %s" -#: ../yum/plugins.py:495 +#: ../yum/plugins.py:497 msgid "registration of commands not supported" msgstr "l'enregistrament d'ordres no està suportat" @@ -2282,44 +2384,87 @@ msgstr "l'enregistrament d'ordres no està suportat" msgid "Repackaging" msgstr "Reempaquetant" -#: ../rpmUtils/oldUtils.py:31 +#: ../rpmUtils/oldUtils.py:33 #, python-format msgid "Header cannot be opened or does not match %s, %s." msgstr "La capçalera no es pot obrir o no coincideix amb %s, %s" -#: ../rpmUtils/oldUtils.py:51 +#: ../rpmUtils/oldUtils.py:53 #, python-format msgid "RPM %s fails md5 check" msgstr "Falla la comprobació md5 per al RPM %s" -#: ../rpmUtils/oldUtils.py:149 +#: ../rpmUtils/oldUtils.py:151 msgid "Could not open RPM database for reading. Perhaps it is already in use?" -msgstr "No s'ha pogut obrir la base de dades RPM per a llegir-la. Potser ja està en ús?" +msgstr "" +"No s'ha pogut obrir la base de dades RPM per a llegir-la. Potser ja està en " +"ús?" -#: ../rpmUtils/oldUtils.py:181 +#: ../rpmUtils/oldUtils.py:183 msgid "Got an empty Header, something has gone wrong" msgstr "S'ha obtingut una capçalera buida, alguna cosa ha anat malament" -#: ../rpmUtils/oldUtils.py:251 -#: ../rpmUtils/oldUtils.py:258 -#: ../rpmUtils/oldUtils.py:261 -#: ../rpmUtils/oldUtils.py:264 +#: ../rpmUtils/oldUtils.py:253 ../rpmUtils/oldUtils.py:260 +#: ../rpmUtils/oldUtils.py:263 ../rpmUtils/oldUtils.py:266 #, python-format msgid "Damaged Header %s" msgstr "Capçalera malmesa %s" -#: ../rpmUtils/oldUtils.py:279 +#: ../rpmUtils/oldUtils.py:281 #, python-format msgid "Error opening rpm %s - error %s" -msgstr "S'ha produïut un error en obrir rpm %s - error %s" +msgstr "S'ha produït un error en obrir l'rpm %s - error %s" + +#~ msgid "Matching packages for package list to user args" +#~ msgstr "" +#~ "S'està comparant els paquets per a la llista de paquets amb els arguments " +#~ "de l'usuari" + +#~ 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" +#~ "Resum de transaccions\n" +#~ "%s\n" +#~ "Instal·la %5.5s paquets \n" +#~ "Actualitza %5.5s paquets \n" +#~ "Esborra %5.5s paquets \n" + +#~ msgid "excluding for cost: %s from %s" +#~ msgstr "s'està excloent per cost: %s de %s" + +#~ msgid "Excluding Packages in global exclude list" +#~ msgstr "S'estan excloent paquets en la llista global d'exclusió" + +#~ msgid "Excluding Packages from %s" +#~ msgstr "S'estan excloent paquets de %s" + +#~ msgid "Reducing %s to included packages only" +#~ msgstr "S'està reduint %s únicament a paquets inclosos." + +#~ msgid "Keeping included package %s" +#~ msgstr "S'està mantenint el paquet inclòs %s" + +#~ msgid "Removing unmatched package %s" +#~ msgstr "S'està esborrant el paquet sense coincidències %s" + +#~ msgid "Finished" +#~ msgstr "Finalitzat" #~ msgid "Entering rpm code" #~ msgstr "S'està entrant en codi rpm" + #~ msgid "Leaving rpm code" #~ msgstr "Deixant codi rpm" + #~ msgid "Parsing package install arguments" #~ msgstr "S'estan analitzant els arguments del paquet a instal·lar" + #~ msgid "Invalid versioned dependency string, try quoting it." #~ msgstr "" #~ "La cadena de versió de dependència és invàlida, proveu-ho entre cometes." - diff --git a/po/cs.po b/po/cs.po new file mode 100644 index 0000000..18305e3 --- /dev/null +++ b/po/cs.po @@ -0,0 +1,2518 @@ +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Adam Pribyl , 2009. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-09-29 09:25+0000\n" +"PO-Revision-Date: 2009-09-29 17:44+0200\n" +"Last-Translator: Adam Pribyl \n" +"Language-Team: Czech \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.0\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: ../callback.py:48 ../output.py:940 ../yum/rpmtrans.py:71 +msgid "Updating" +msgstr "Aktualizuje se" + +#: ../callback.py:49 ../yum/rpmtrans.py:72 +msgid "Erasing" +msgstr "Maže se" + +#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:939 +#: ../yum/rpmtrans.py:73 ../yum/rpmtrans.py:74 ../yum/rpmtrans.py:76 +msgid "Installing" +msgstr "Instaluje se" + +#: ../callback.py:52 ../callback.py:58 ../yum/rpmtrans.py:75 +msgid "Obsoleted" +msgstr "Zastaralé" + +#: ../callback.py:54 ../output.py:1063 ../output.py:1401 +msgid "Updated" +msgstr "Aktualizováno" + +#: ../callback.py:55 ../output.py:1397 +msgid "Erased" +msgstr "Smazáno" + +#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:1061 +#: ../output.py:1393 +msgid "Installed" +msgstr "Nainstalováno" + +#: ../callback.py:130 +msgid "No header - huh?" +msgstr "Bez hlavičky???" + +#: ../callback.py:168 +msgid "Repackage" +msgstr "Přebalit" + +#: ../callback.py:189 +#, python-format +msgid "Error: invalid output state: %s for %s" +msgstr "Chyba: neplatný výstupní stav: %s pro %s" + +#: ../callback.py:212 +#, python-format +msgid "Erased: %s" +msgstr "Smazáno: %s" + +#: ../callback.py:217 ../output.py:941 +msgid "Removing" +msgstr "Odstraňuje se" + +#: ../callback.py:219 ../yum/rpmtrans.py:77 +msgid "Cleanup" +msgstr "Čiští se" + +#: ../cli.py:108 +#, python-format +msgid "Command \"%s\" already defined" +msgstr "Přikaz \"%s\" již definován" + +#: ../cli.py:120 +msgid "Setting up repositories" +msgstr "Nastavují se repozitáře" + +#: ../cli.py:131 +msgid "Reading repository metadata in from local files" +msgstr "Načítají se metadata repozitářů z lokálních souborů" + +#: ../cli.py:194 ../utils.py:102 +#, python-format +msgid "Config Error: %s" +msgstr "Chyba konfigurace: %s" + +#: ../cli.py:197 ../cli.py:1253 ../utils.py:105 +#, python-format +msgid "Options Error: %s" +msgstr "Chybná volba: %s" + +#: ../cli.py:225 +#, python-format +msgid " Installed: %s-%s at %s" +msgstr " Nainstalováno: %s-%s na %s" + +#: ../cli.py:227 +#, python-format +msgid " Built : %s at %s" +msgstr " Sestaveno : %s na %s" + +#: ../cli.py:229 +#, python-format +msgid " Committed: %s at %s" +msgstr " Odesláno : %s na %s" + +#: ../cli.py:268 +msgid "You need to give some command" +msgstr "Musíte zadat nějaký příkaz" + +#: ../cli.py:311 +msgid "Disk Requirements:\n" +msgstr "Diskové požadavky:\n" + +#: ../cli.py:313 +#, python-format +msgid " At least %dMB needed on the %s filesystem.\n" +msgstr " Je potřeba alespoň %dMB na souborovém systému %s.\n" + +#. TODO: simplify the dependency errors? +#. Fixup the summary +#: ../cli.py:318 +msgid "" +"Error Summary\n" +"-------------\n" +msgstr "" +"Přehled chyb\n" +"------------\n" + +#: ../cli.py:361 +msgid "Trying to run the transaction but nothing to do. Exiting." +msgstr "Pokus o spuštění transakce, ale není co dělat. Ukončeno." + +#: ../cli.py:397 +msgid "Exiting on user Command" +msgstr "Ukončeno na přikaz uživatele" + +#: ../cli.py:401 +msgid "Downloading Packages:" +msgstr "Stahují se balíčky:" + +#: ../cli.py:406 +msgid "Error Downloading Packages:\n" +msgstr "Chyba stahování balíčků:\n" + +#: ../cli.py:420 ../yum/__init__.py:3995 +msgid "Running rpm_check_debug" +msgstr "Spuští se rpm_check_debug" + +#: ../cli.py:429 ../yum/__init__.py:4004 +msgid "ERROR You need to update rpm to handle:" +msgstr "CHYBA Je potřeba aktualizovat rpm k provedení:" + +#: ../cli.py:431 ../yum/__init__.py:4007 +msgid "ERROR with rpm_check_debug vs depsolve:" +msgstr "CHYBA v rpm_check_debug vs depsolve:" + +#: ../cli.py:437 +msgid "RPM needs to be updated" +msgstr "Je potřeba aktualizovat RPM" + +#: ../cli.py:438 +#, python-format +msgid "Please report this error in %s" +msgstr "Prosím nahlašte tuto chybu v %s" + +#: ../cli.py:444 +msgid "Running Transaction Test" +msgstr "Spouští se test transakcí" + +#: ../cli.py:460 +msgid "Finished Transaction Test" +msgstr "Test transakcí dokončen" + +#: ../cli.py:462 +msgid "Transaction Check Error:\n" +msgstr "Chyba při kontrole transakcí:\n" + +#: ../cli.py:469 +msgid "Transaction Test Succeeded" +msgstr "Test transakcí uspěl" + +#: ../cli.py:491 +msgid "Running Transaction" +msgstr "Spouští se transakce" + +#: ../cli.py:521 +msgid "" +"Refusing to automatically import keys when running unattended.\n" +"Use \"-y\" to override." +msgstr "" +"Nelze automaticky importovat klíče při spuštění bez obsluhy.\n" +"Použite \"-y\" k potlačení." + +#: ../cli.py:540 ../cli.py:574 +msgid " * Maybe you meant: " +msgstr " * Možná jste myslel: " + +#: ../cli.py:557 ../cli.py:565 +#, python-format +msgid "Package(s) %s%s%s available, but not installed." +msgstr "Balíček(y) %s%s%s dostupné, ale nenainstalované." + +#: ../cli.py:571 ../cli.py:602 ../cli.py:680 +#, python-format +msgid "No package %s%s%s available." +msgstr "Žádné dostupné balíčky %s%s%s." + +#: ../cli.py:607 ../cli.py:740 +msgid "Package(s) to install" +msgstr "Balíček(y) k instalaci" + +#: ../cli.py:608 ../cli.py:686 ../cli.py:719 ../cli.py:741 +#: ../yumcommands.py:159 +msgid "Nothing to do" +msgstr "Není co dělat" + +#: ../cli.py:641 +#, python-format +msgid "%d packages marked for Update" +msgstr "%d balíčků označeno k aktualizaci" + +#: ../cli.py:644 +msgid "No Packages marked for Update" +msgstr "Žádné balíčky označené k aktualizaci" + +#: ../cli.py:658 +#, python-format +msgid "%d packages marked for removal" +msgstr "%d balíčků označeno ke smazání" + +#: ../cli.py:661 +msgid "No Packages marked for removal" +msgstr "Žádné balíčky označené k odstranění" + +#: ../cli.py:685 +msgid "Package(s) to downgrade" +msgstr "Balíček(y) ke snížení verze" + +#: ../cli.py:709 +#, python-format +msgid " (from %s)" +msgstr " (z %s)" + +#: ../cli.py:711 +#, python-format +msgid "Installed package %s%s%s%s not available." +msgstr "Instalované balíčky %s%s%s%s nejsou dostupné" + +#: ../cli.py:718 +msgid "Package(s) to reinstall" +msgstr "Balíček(y) k reinstalaci" + +#: ../cli.py:731 +msgid "No Packages Provided" +msgstr "Žádný balíček neposkytuje" + +#: ../cli.py:815 +#, python-format +msgid "Warning: No matches found for: %s" +msgstr "Varování: Žádný balíček odpovídající: %s" + +#: ../cli.py:818 +msgid "No Matches found" +msgstr "Nebyla nalezena shoda" + +#: ../cli.py:857 +#, 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 "" +"Varování: 3.0.x verze yumu by chybně hledala shodu se jménem souboru.\n" +" Můžete použít \"%s*/%s%s\" a/nebo \"%s*bin/%s%s\" k dosažení tohoto chování" + +#: ../cli.py:873 +#, python-format +msgid "No Package Found for %s" +msgstr "Nebyly nalezeny balíčky pro %s" + +#: ../cli.py:885 +msgid "Cleaning up Everything" +msgstr "Čistí se vše" + +#: ../cli.py:899 +msgid "Cleaning up Headers" +msgstr "Čistí se hlavičky" + +#: ../cli.py:902 +msgid "Cleaning up Packages" +msgstr "Čistí se balíčky" + +#: ../cli.py:905 +msgid "Cleaning up xml metadata" +msgstr "Čistí se XML metadata" + +#: ../cli.py:908 +msgid "Cleaning up database cache" +msgstr "Čistí se skladiště databáze" + +#: ../cli.py:911 +msgid "Cleaning up expire-cache metadata" +msgstr "Čistí se vypršelá metadata ze skladiště" + +#: ../cli.py:914 +msgid "Cleaning up plugins" +msgstr "Čistí se zásuvné moduly" + +#: ../cli.py:939 +msgid "Installed Groups:" +msgstr "Naintalované skupiny:" + +#: ../cli.py:951 +msgid "Available Groups:" +msgstr "Dostupné skupiny:" + +#: ../cli.py:961 +msgid "Done" +msgstr "Dokončeno" + +#: ../cli.py:972 ../cli.py:990 ../cli.py:996 ../yum/__init__.py:2621 +#, python-format +msgid "Warning: Group %s does not exist." +msgstr "Varování: skupina %s neexistuje." + +#: ../cli.py:1000 +msgid "No packages in any requested group available to install or update" +msgstr "" +"V žádné s požadovaných skupin nejsou balíčky k instalaci nebo aktualizaci" + +#: ../cli.py:1002 +#, python-format +msgid "%d Package(s) to Install" +msgstr "%d balíček(ů) k instalaci" + +#: ../cli.py:1012 ../yum/__init__.py:2633 +#, python-format +msgid "No group named %s exists" +msgstr "Neexistuje skupina se jménem %s" + +#: ../cli.py:1018 +msgid "No packages to remove from groups" +msgstr "Žádné balíčky k odstranění ve skupině" + +#: ../cli.py:1020 +#, python-format +msgid "%d Package(s) to remove" +msgstr "%d balíček(ů) k odstranění" + +#: ../cli.py:1062 +#, python-format +msgid "Package %s is already installed, skipping" +msgstr "Balíček %s je již nainstalován, přeskakuji." + +#: ../cli.py:1073 +#, python-format +msgid "Discarding non-comparable pkg %s.%s" +msgstr "Skartuje se neporovnatelný balíček %s.%s" + +#. we've not got any installed that match n or n+a +#: ../cli.py:1099 +#, python-format +msgid "No other %s installed, adding to list for potential install" +msgstr "Žádný jiný %s nainstalován, přidán do seznamu k potenciální instalaci" + +#: ../cli.py:1119 +msgid "Plugin Options" +msgstr "Možnosti zásuvného modulu" + +#: ../cli.py:1127 +#, python-format +msgid "Command line error: %s" +msgstr "Chyba příkazové řádky: %s" + +#: ../cli.py:1140 +#, python-format +msgid "" +"\n" +"\n" +"%s: %s option requires an argument" +msgstr "" +"\n" +"\n" +"%s: %s volba vyžaduje argument" + +#: ../cli.py:1193 +msgid "--color takes one of: auto, always, never" +msgstr "--color přijímá jeden z: auto, always, never" + +#: ../cli.py:1300 +msgid "show this help message and exit" +msgstr "ukázat tuto nápovedu a skončit" + +#: ../cli.py:1304 +msgid "be tolerant of errors" +msgstr "tolerovat chyby" + +#: ../cli.py:1306 +msgid "run entirely from cache, don't update cache" +msgstr "spustit vše z neaktualizovaného skladiště" + +#: ../cli.py:1308 +msgid "config file location" +msgstr "umístění konfiguračního souboru" + +#: ../cli.py:1310 +msgid "maximum command wait time" +msgstr "maximální čas čekání na příkaz" + +#: ../cli.py:1312 +msgid "debugging output level" +msgstr "úroveň výstupních ladících informací" + +#: ../cli.py:1316 +msgid "show duplicates, in repos, in list/search commands" +msgstr "ukázat duplikáty v repozitářích, v list/search příkazech" + +#: ../cli.py:1318 +msgid "error output level" +msgstr "úroveň výstupu chyb" + +#: ../cli.py:1321 +msgid "quiet operation" +msgstr "tichý chod" + +#: ../cli.py:1323 +msgid "verbose operation" +msgstr "užvaněný chod" + +#: ../cli.py:1325 +msgid "answer yes for all questions" +msgstr "odpovědět ano na všechny otázky" + +#: ../cli.py:1327 +msgid "show Yum version and exit" +msgstr "ukázat verzi yumu a skončit" + +#: ../cli.py:1328 +msgid "set install root" +msgstr "nastavit kořen instalace " + +#: ../cli.py:1332 +msgid "enable one or more repositories (wildcards allowed)" +msgstr "povolit jeden nebo více repozitářů (zástupné znaky povoleny)" + +#: ../cli.py:1336 +msgid "disable one or more repositories (wildcards allowed)" +msgstr "zakázat jeden nebo více repozitářů (zástupné znaky povoleny)" + +#: ../cli.py:1339 +msgid "exclude package(s) by name or glob" +msgstr "vyřadit balíček(y) podle jména nebo globálně" + +#: ../cli.py:1341 +msgid "disable exclude from main, for a repo or for everything" +msgstr "zakázat vyřazení z hlavní části pro repozitář nebo pro vše" + +#: ../cli.py:1344 +msgid "enable obsoletes processing during updates" +msgstr "povolit zpracování zastaralých během aktualizací" + +#: ../cli.py:1346 +msgid "disable Yum plugins" +msgstr "zakázat zásuvné moduly yumu" + +#: ../cli.py:1348 +msgid "disable gpg signature checking" +msgstr "zakázat kontrolu GPG podpisů" + +#: ../cli.py:1350 +msgid "disable plugins by name" +msgstr "zakázat zásuvné moduly podle jména" + +#: ../cli.py:1353 +msgid "enable plugins by name" +msgstr "povolit zásuvné moduly podle jména" + +#: ../cli.py:1356 +msgid "skip packages with depsolving problems" +msgstr "přeskočit balíčky s problémy v závislostech" + +#: ../cli.py:1358 +msgid "control whether color is used" +msgstr "kontrola zda jsou použity barvy" + +#: ../output.py:305 +msgid "Jan" +msgstr "Led" + +#: ../output.py:305 +msgid "Feb" +msgstr "Úno" + +#: ../output.py:305 +msgid "Mar" +msgstr "Bře" + +#: ../output.py:305 +msgid "Apr" +msgstr "Dub" + +#: ../output.py:305 +msgid "May" +msgstr "Kvě" + +#: ../output.py:305 +msgid "Jun" +msgstr "Čer" + +#: ../output.py:306 +msgid "Jul" +msgstr "Čec" + +#: ../output.py:306 +msgid "Aug" +msgstr "Srp" + +#: ../output.py:306 +msgid "Sep" +msgstr "Zář" + +#: ../output.py:306 +msgid "Oct" +msgstr "Řij" + +#: ../output.py:306 +msgid "Nov" +msgstr "Lis" + +#: ../output.py:306 +msgid "Dec" +msgstr "Pro" + +#: ../output.py:316 +msgid "Trying other mirror." +msgstr "Zkouší se jiné zrcadlo" + +#: ../output.py:538 +#, python-format +msgid "Name : %s%s%s" +msgstr "Jméno : %s%s%s" + +#: ../output.py:539 +#, python-format +msgid "Arch : %s" +msgstr "Arch : %s" + +#: ../output.py:541 +#, python-format +msgid "Epoch : %s" +msgstr "Epocha : %s" + +#: ../output.py:542 +#, python-format +msgid "Version : %s" +msgstr "Verze : %s" + +#: ../output.py:543 +#, python-format +msgid "Release : %s" +msgstr "Vydání : %s" + +#: ../output.py:544 +#, python-format +msgid "Size : %s" +msgstr "Velikost : %s" + +#: ../output.py:545 +#, python-format +msgid "Repo : %s" +msgstr "Repo : %s" + +#: ../output.py:547 +#, python-format +msgid "From repo : %s" +msgstr "Z repa : %s" + +#: ../output.py:549 +#, python-format +msgid "Committer : %s" +msgstr "Potvrzeno : %s" + +#: ../output.py:550 +#, python-format +msgid "Committime : %s" +msgstr "Čas povrzení : %s" + +#: ../output.py:551 +#, python-format +msgid "Buildtime : %s" +msgstr "Čas sestavení : %s" + +#: ../output.py:553 +#, python-format +msgid "Installtime: %s" +msgstr "Čas instalace : %s" + +#: ../output.py:554 +msgid "Summary : " +msgstr "Souhrn : " + +#: ../output.py:556 +#, python-format +msgid "URL : %s" +msgstr "URL : %s" + +#: ../output.py:557 +#, python-format +msgid "License : %s" +msgstr "Licence : %s" + +#: ../output.py:558 +msgid "Description: " +msgstr "Popis :" + +#: ../output.py:626 +msgid "y" +msgstr "a" + +#: ../output.py:626 +msgid "yes" +msgstr "ano" + +#: ../output.py:627 +msgid "n" +msgstr "n" + +#: ../output.py:627 +msgid "no" +msgstr "ne" + +#: ../output.py:631 +msgid "Is this ok [y/N]: " +msgstr "V pořádku [a/N]: " + +#: ../output.py:722 +#, python-format +msgid "" +"\n" +"Group: %s" +msgstr "" +"\n" +"Skupina: %s" + +#: ../output.py:726 +#, python-format +msgid " Group-Id: %s" +msgstr " ID skupiny: %s" + +#: ../output.py:731 +#, python-format +msgid " Description: %s" +msgstr " Popis: %s" + +#: ../output.py:733 +msgid " Mandatory Packages:" +msgstr " Povinné balíčky:" + +#: ../output.py:734 +msgid " Default Packages:" +msgstr " Výchozí balíčky:" + +#: ../output.py:735 +msgid " Optional Packages:" +msgstr " Volitelné balíčky:" + +#: ../output.py:736 +msgid " Conditional Packages:" +msgstr " Podmínečné balíčky:" + +#: ../output.py:756 +#, python-format +msgid "package: %s" +msgstr "balíčky: %s" + +#: ../output.py:758 +msgid " No dependencies for this package" +msgstr " Pro tento balíček nejsou žádné závislosti" + +#: ../output.py:763 +#, python-format +msgid " dependency: %s" +msgstr " závislosti: %s" + +#: ../output.py:765 +msgid " Unsatisfied dependency" +msgstr " Neuspokojené závislosti" + +#: ../output.py:837 +#, python-format +msgid "Repo : %s" +msgstr "Repo : %s" + +#: ../output.py:838 +msgid "Matched from:" +msgstr "Shoda s:" + +#: ../output.py:847 +msgid "Description : " +msgstr "Popis : " + +#: ../output.py:850 +#, python-format +msgid "URL : %s" +msgstr "URL : %s" + +#: ../output.py:853 +#, python-format +msgid "License : %s" +msgstr "Licence : %s" + +#: ../output.py:856 +#, python-format +msgid "Filename : %s" +msgstr "Soubor : %s" + +#: ../output.py:860 +msgid "Other : " +msgstr "Další : " + +#: ../output.py:893 +msgid "There was an error calculating total download size" +msgstr "Pří výpočtu celkové velikosti stahování nastala chyba" + +#: ../output.py:898 +#, python-format +msgid "Total size: %s" +msgstr "Celková velikost: %s" + +#: ../output.py:901 +#, python-format +msgid "Total download size: %s" +msgstr "Celková velikost stahování: %s" + +#: ../output.py:942 +msgid "Reinstalling" +msgstr "Reinstaluje se" + +#: ../output.py:943 +msgid "Downgrading" +msgstr "Snižuje se verze" + +#: ../output.py:944 +msgid "Installing for dependencies" +msgstr "Instaluje se kvůli závislostem" + +#: ../output.py:945 +msgid "Updating for dependencies" +msgstr "Aktualizuje se kvůli závislostem" + +#: ../output.py:946 +msgid "Removing for dependencies" +msgstr "Odstraňuje se kvůli závislostem" + +#: ../output.py:953 ../output.py:1065 +msgid "Skipped (dependency problems)" +msgstr "Přeskočeno (problémy se závislostmi)" + +#: ../output.py:976 +msgid "Package" +msgstr "Balíček" + +#: ../output.py:976 +msgid "Arch" +msgstr "Arch" + +#: ../output.py:977 +msgid "Version" +msgstr "Verze" + +#: ../output.py:977 +msgid "Repository" +msgstr "Repozitář" + +#: ../output.py:978 +msgid "Size" +msgstr "Velikost" + +#: ../output.py:990 +#, python-format +msgid "" +" replacing %s%s%s.%s %s\n" +"\n" +msgstr "" +" nahrazuje se %s%s%s.%s %s\n" +"\n" + +#: ../output.py:999 +#, python-format +msgid "" +"\n" +"Transaction Summary\n" +"%s\n" +msgstr "" +"\n" +"Shrnutí transakce\n" +"%s\n" + +#: ../output.py:1006 +#, python-format +msgid "" +"Install %5.5s Package(s)\n" +"Upgrade %5.5s Package(s)\n" +msgstr "" +"Instalace %5.5s balíčku/ů\n" +"Aktualizace %5.5s balíčku/ů\n" + +#: ../output.py:1015 +#, python-format +msgid "" +"Remove %5.5s Package(s)\n" +"Reinstall %5.5s Package(s)\n" +"Downgrade %5.5s Package(s)\n" +msgstr "" +"Odstraňení %5.5s balíčku/ů\n" +"Reinstalace %5.5s balíčku/ů\n" +"Snížení verze %5.5s balíčku/ů\n" + +#: ../output.py:1059 +msgid "Removed" +msgstr "Odstraněno" + +#: ../output.py:1060 +msgid "Dependency Removed" +msgstr "Odstraněné závislosti" + +#: ../output.py:1062 +msgid "Dependency Installed" +msgstr "Nainstalované závislosti" + +#: ../output.py:1064 +msgid "Dependency Updated" +msgstr "Aktualizované závislosti" + +#: ../output.py:1066 +msgid "Replaced" +msgstr "Nahrazeno" + +#: ../output.py:1067 +msgid "Failed" +msgstr "Selhalo" + +#. Delta between C-c's so we treat as exit +#: ../output.py:1133 +msgid "two" +msgstr "dvě" + +#. For translators: This is output like: +#. Current download cancelled, interrupt (ctrl-c) again within two seconds +#. to exit. +#. Where "interupt (ctrl-c) again" and "two" are highlighted. +#: ../output.py:1144 +#, python-format +msgid "" +"\n" +" Current download cancelled, %sinterrupt (ctrl-c) again%s within %s%s%s " +"seconds\n" +"to exit.\n" +msgstr "" +"\n" +" Aktuální stahování přerušeno, %spřerušte (ctrl-c) znovu%s během %s%s%s " +"sekund\n" +"pro ukončení.\n" + +#: ../output.py:1155 +msgid "user interrupt" +msgstr "Přerušeno uživatelem" + +#: ../output.py:1173 +msgid "Total" +msgstr "Celkem" + +#: ../output.py:1201 +msgid "" +msgstr "" + +#: ../output.py:1202 +msgid "System" +msgstr "Systém" + +#: ../output.py:1238 +msgid "Bad transaction IDs, or package(s), given" +msgstr "Zadáné špatné ID transakce nebo balíčku/ů" + +#: ../output.py:1282 ../yumcommands.py:1148 ../yum/__init__.py:1060 +msgid "Warning: RPMDB has been altered since the last yum transaction." +msgstr "Varování: RPMDB byla od poslední yum transakce změněna" + +#: ../output.py:1287 +msgid "No transaction ID given" +msgstr "Nezadáno ID transakce" + +#: ../output.py:1295 +msgid "Bad transaction ID given" +msgstr "Špatné ID transakce" + +#: ../output.py:1300 +msgid "Not found given transaction ID" +msgstr "Zadané ID transakce nenalezeno" + +#: ../output.py:1308 +msgid "Found more than one transaction ID!" +msgstr "Nalezeno více než jedno ID transakce!" + +#: ../output.py:1329 +msgid "No transaction ID, or package, given" +msgstr "Nebylo zadáno ID transakce nebo balíčku/ů" + +#: ../output.py:1355 +msgid "Transaction ID :" +msgstr "ID transakce:" + +#: ../output.py:1357 +msgid "Begin time :" +msgstr "Čas startu :" + +#: ../output.py:1360 ../output.py:1362 +msgid "Begin rpmdb :" +msgstr "Začátek rpmdb :" + +#: ../output.py:1376, python-format +msgid "(%s seconds)" +msgstr "(%s sekund)" + +#: ../output.py:1377 +msgid "End time :" +msgstr "Konečný čas :" + +#: ../output.py:1380 ../output.py:1382 +msgid "End rpmdb :" +msgstr "Konec rpmdb :" + +#: ../output.py:1383 +msgid "User :" +msgstr "Uživatel :" + +#: ../output.py:1385 ../output.py:1387 ../output.py:1389 +msgid "Return-Code :" +msgstr "Vrácený kód :" + +#: ../output.py:1385 +msgid "Aborted" +msgstr "Přerušeno" + +#: ../output.py:1387 +msgid "Failure:" +msgstr "Selhalo:" + +#: ../output.py:1389 +msgid "Success" +msgstr "Úspěch" + +#: ../output.py:1390 +msgid "Transaction performed with :" +msgstr "Transakce proběhla s :" + +#: ../output.py:1403 +msgid "Downgraded" +msgstr "Snížena verze" + +#. multiple versions installed, both older and newer +#: ../output.py:1405 +msgid "Weird" +msgstr "Divné" + +#: ../output.py:1407 +msgid "Packages Altered:" +msgstr "Pozměněné balíčky:" + +#: ../output.py:1475 +msgid "Last day" +msgstr "Poslední den" + +#: ../output.py:1476 +msgid "Last week" +msgstr "Poslední týden" + +#: ../output.py:1477 +msgid "Last 2 weeks" +msgstr "Poslední 2 týdny" + +#. US default :p +#: ../output.py:1478 +msgid "Last 3 months" +msgstr "Poslední 3 měsíce" + +#: ../output.py:1479 +msgid "Last 6 months" +msgstr "Posledních 6 měsíců" + +#: ../output.py:1480 +msgid "Last year" +msgstr "Poslední rok" + +#: ../output.py:1481 +msgid "Over a year ago" +msgstr "Více než rok" + +#: ../output.py:1510 +msgid "installed" +msgstr "nainstalováno" + +#: ../output.py:1511 +msgid "updated" +msgstr "aktualizováno" + +#: ../output.py:1512 +msgid "obsoleted" +msgstr "zastaralo" + +#: ../output.py:1513 +msgid "erased" +msgstr "vymazáno" + +#: ../output.py:1517 +#, python-format +msgid "---> Package %s.%s %s:%s-%s set to be %s" +msgstr "---> Balíček %s.%s %s:%s-%s nastaven k/ke %s" + +#: ../output.py:1524 +msgid "--> Running transaction check" +msgstr "--> Spouští se kontrola transakce" + +#: ../output.py:1529 +msgid "--> Restarting Dependency Resolution with new changes." +msgstr "--> Restartuje se řešení závislostí s novými změnami." + +#: ../output.py:1534 +msgid "--> Finished Dependency Resolution" +msgstr "--> Řešení závislostí dokončeno" + +#: ../output.py:1539 ../output.py:1544 +#, python-format +msgid "--> Processing Dependency: %s for package: %s" +msgstr "--> Zpracování závislosti: %s pro balíček: %s" + +#: ../output.py:1548 +#, python-format +msgid "--> Unresolved Dependency: %s" +msgstr "--> Nevyřešená závislost: %s" + +#: ../output.py:1554 ../output.py:1559 +#, python-format +msgid "--> Processing Conflict: %s conflicts %s" +msgstr "--> Zpracování konfliktu: %s je v konfliktu s %s" + +#: ../output.py:1563 +msgid "--> Populating transaction set with selected packages. Please wait." +msgstr "--> Přidávají se do transakce vybrané balíčky. Prosím čekejte." + +#: ../output.py:1567 +#, python-format +msgid "---> Downloading header for %s to pack into transaction set." +msgstr "---> Stahují se hlavičky %s pro přidání do transakce." + +#: ../utils.py:132 ../yummain.py:42 +msgid "" +"\n" +"\n" +"Exiting on user cancel" +msgstr "" +"\n" +"\n" +"Ukončeno na základě pokynu uživatele" + +#: ../utils.py:138 ../yummain.py:48 +msgid "" +"\n" +"\n" +"Exiting on Broken Pipe" +msgstr "" +"\n" +"\n" +"Ukončeno kvůli nefunkční rouře" + +#: ../utils.py:140 ../yummain.py:50, python-format +msgid "" +"\n" +"\n" +"%s" +msgstr "" +"\n" +"\n" +"%s" + +#: ../utils.py:179 ../yummain.py:273 +msgid "Complete!" +msgstr "Hotovo!" + +#: ../yumcommands.py:42 +msgid "You need to be root to perform this command." +msgstr "Pro spuštění tohoto příkazu potřebujete být root." + +#: ../yumcommands.py:49 +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 "" +"\n" +"Povolili jste kontrolu balíčků pomocí GPG klíčů, což je dobrá věc.\n" +"Bohužel nemáte ale nainstalován žádný veřejný GPG klíč. Musíte stáhnout " +"klíč\n" +"pro blíček, který si přejete nainstalovat a přidat jej příkazem.\n" +" rpm --import public.gpg.key\n" +"\n" +"\n" +"Jako druhou možnost můžete uvést URL ke klíči, který chcete použít\n" +"pro repozitář ve volbě 'gpgkey' v nastavení repozitáře a yum\n" +"jej nainstaluje.\n" +"\n" +"Pro více informací kontaktujte vašeho distributora nebo správce balíčku.\n" + +#: ../yumcommands.py:69 +#, python-format +msgid "Error: Need to pass a list of pkgs to %s" +msgstr "Chyba: Je potřeba předat seznam balíčků do %s" + +#: ../yumcommands.py:75 +msgid "Error: Need an item to match" +msgstr "Chyba: K nalezení shody je potřeba předmět" + +#: ../yumcommands.py:81 +msgid "Error: Need a group or list of groups" +msgstr "Chyba: Je potřeba skupina nebo seznam skupin" + +#: ../yumcommands.py:90 +#, python-format +msgid "Error: clean requires an option: %s" +msgstr "Chyba: clean vyžaduje volbu: %s" + +#: ../yumcommands.py:95 +#, python-format +msgid "Error: invalid clean argument: %r" +msgstr "Chyba: Neplatný argument pro clean: %r" + +#: ../yumcommands.py:108 +msgid "No argument to shell" +msgstr "Shell nemá žádný argument" + +#: ../yumcommands.py:110 +#, python-format +msgid "Filename passed to shell: %s" +msgstr "Jméno souboru předané shelu: %s" + +#: ../yumcommands.py:114 +#, python-format +msgid "File %s given as argument to shell does not exist." +msgstr "Soubor %s předaný jako argument shellu neexistuje." + +#: ../yumcommands.py:120 +msgid "Error: more than one file given as argument to shell." +msgstr "Chyba: Více než jeden soubor předán shellu jako argument." + +#: ../yumcommands.py:169 +msgid "PACKAGE..." +msgstr "Balíček..." + +#: ../yumcommands.py:172 +msgid "Install a package or packages on your system" +msgstr "Nainstalujte balíček nebo balíčky do vašeho systému" + +#: ../yumcommands.py:180 +msgid "Setting up Install Process" +msgstr "Uspořádává se instalační průběh" + +#: ../yumcommands.py:191 +msgid "[PACKAGE...]" +msgstr "[Balíček...]" + +#: ../yumcommands.py:194 +msgid "Update a package or packages on your system" +msgstr "Aktualizujte balíček nebo balíčky na vašem systému" + +#: ../yumcommands.py:201 +msgid "Setting up Update Process" +msgstr "Uspořádává se průběh aktualizace" + +#: ../yumcommands.py:246 +msgid "Display details about a package or group of packages" +msgstr "Zobrazit detaily o balíčku nebo skupině balíčků" + +#: ../yumcommands.py:295 +msgid "Installed Packages" +msgstr "Instalované balíčky" + +#: ../yumcommands.py:303 +msgid "Available Packages" +msgstr "Dostupné balíčky" + +#: ../yumcommands.py:307 +msgid "Extra Packages" +msgstr "Dodatečné balíčky" + +#: ../yumcommands.py:311 +msgid "Updated Packages" +msgstr "Aktualizované balíčky" + +#. This only happens in verbose mode +#: ../yumcommands.py:319 ../yumcommands.py:326 ../yumcommands.py:602 +msgid "Obsoleting Packages" +msgstr "Zastaralé balíčky" + +#: ../yumcommands.py:328 +msgid "Recently Added Packages" +msgstr "Nově přidané balíčky" + +#: ../yumcommands.py:335 +msgid "No matching Packages to list" +msgstr "Nenalezeny shodné balíčky" + +#: ../yumcommands.py:349 +msgid "List a package or groups of packages" +msgstr "Vypsat balíček nebo skupiny balíčků" + +#: ../yumcommands.py:361 +msgid "Remove a package or packages from your system" +msgstr "Odstranit balíček nebo balíčky ze systému" + +#: ../yumcommands.py:368 +msgid "Setting up Remove Process" +msgstr "Uspořádává se průběh odstranění" + +#: ../yumcommands.py:382 +msgid "Setting up Group Process" +msgstr "Uspořádává se zpracování skupiny" + +#: ../yumcommands.py:388 +msgid "No Groups on which to run command" +msgstr "Nenalezeny skupiny, na které by šlo příkaz aplikovat" + +#: ../yumcommands.py:401 +msgid "List available package groups" +msgstr "Vypsat dostupné skupiny balíčků" + +#: ../yumcommands.py:418 +msgid "Install the packages in a group on your system" +msgstr "Instalovat balíčky ze skupiny do systému" + +#: ../yumcommands.py:440 +msgid "Remove the packages in a group from your system" +msgstr "Odstranit balíčky ze skupiny ze systému" + +#: ../yumcommands.py:467 +msgid "Display details about a package group" +msgstr "Zobrazit detaily o skupině balíčků" + +#: ../yumcommands.py:491 +msgid "Generate the metadata cache" +msgstr "Vygenerovat skladiště metadat" + +#: ../yumcommands.py:497 +msgid "Making cache files for all metadata files." +msgstr "Vytváří se skladišťové soubory pro všechna metadata " + +#: ../yumcommands.py:498 +msgid "This may take a while depending on the speed of this computer" +msgstr "Může to chvíli trvat v závislosti na rychosti tohoto počítače" + +#: ../yumcommands.py:519 +msgid "Metadata Cache Created" +msgstr "Skladiště metadat vytvořeno" + +#: ../yumcommands.py:533 +msgid "Remove cached data" +msgstr "Odstranit data ze skladiště" + +#: ../yumcommands.py:553 +msgid "Find what package provides the given value" +msgstr "Nalézt balíček, který poskytuje danou hodnotu" + +#: ../yumcommands.py:573 +msgid "Check for available package updates" +msgstr "Zkontrolovat dostupné aktualizace balíčku" + +#: ../yumcommands.py:622 +msgid "Search package details for the given string" +msgstr "Nalézt detaily balíčku pro daný řetězec" + +#: ../yumcommands.py:628 +msgid "Searching Packages: " +msgstr "Prohledávají se balíčky: " + +#: ../yumcommands.py:645 +msgid "Update packages taking obsoletes into account" +msgstr "Aktualizovat balíčky a brát v úvahu zastaralé" + +#: ../yumcommands.py:653 +msgid "Setting up Upgrade Process" +msgstr "Upořádává se průběh aktualizace" + +#: ../yumcommands.py:667 +msgid "Install a local RPM" +msgstr "Instalovat lokální RPM" + +#: ../yumcommands.py:675 +msgid "Setting up Local Package Process" +msgstr "Uspořádává se zpracování lokálního balíčku" + +#: ../yumcommands.py:694 +msgid "Determine which package provides the given dependency" +msgstr "Určit který balíček poskytuje danou závislost" + +#: ../yumcommands.py:697 +msgid "Searching Packages for Dependency:" +msgstr "Prohledávají se balíčky kvůli závislostem:" + +#: ../yumcommands.py:711 +msgid "Run an interactive yum shell" +msgstr "Spustit interaktivní shell yum" + +#: ../yumcommands.py:717 +msgid "Setting up Yum Shell" +msgstr "Nastavuje se yum shell" + +#: ../yumcommands.py:735 +msgid "List a package's dependencies" +msgstr "Zobrazit závislosti balíčku" + +#: ../yumcommands.py:741 +msgid "Finding dependencies: " +msgstr "Hledají se závíslosti: " + +#: ../yumcommands.py:757 +msgid "Display the configured software repositories" +msgstr "Zobrazit nastavené softwarová repozitáře" + +#: ../yumcommands.py:809 ../yumcommands.py:810 +msgid "enabled" +msgstr "povoleno" + +#: ../yumcommands.py:818 ../yumcommands.py:819 +msgid "disabled" +msgstr "zakázáno" + +#: ../yumcommands.py:833 +msgid "Repo-id : " +msgstr "Repo-id : " + +#: ../yumcommands.py:834 +msgid "Repo-name : " +msgstr "Repo-jméno : " + +#: ../yumcommands.py:835 +msgid "Repo-status : " +msgstr "Repo-status : " + +#: ../yumcommands.py:837 +msgid "Repo-revision: " +msgstr "Repo-revize : " + +#: ../yumcommands.py:841 +msgid "Repo-tags : " +msgstr "Repo-tagy : " + +#: ../yumcommands.py:847 +msgid "Repo-distro-tags: " +msgstr "Repo-distro-tagy: " + +#: ../yumcommands.py:852 +msgid "Repo-updated : " +msgstr "Repo-aktuální: " + +#: ../yumcommands.py:854 +msgid "Repo-pkgs : " +msgstr "Repo-bal. : " + +#: ../yumcommands.py:855 +msgid "Repo-size : " +msgstr "Repo-velikost: " + +#: ../yumcommands.py:862 +msgid "Repo-baseurl : " +msgstr "Repo-baseurl : " + +#: ../yumcommands.py:870 +msgid "Repo-metalink: " +msgstr "Repo-metalink: " + +#: ../yumcommands.py:874 +msgid " Updated : " +msgstr " Aktualizováno: " + +#: ../yumcommands.py:877 +msgid "Repo-mirrors : " +msgstr "Repo-zrcadla : " + +#: ../yumcommands.py:881 ../yummain.py:133 +msgid "Unknown" +msgstr "Neznámý" + +#: ../yumcommands.py:887 +#, python-format +msgid "Never (last: %s)" +msgstr "Nikdy (poslední: %s)" + +#: ../yumcommands.py:889 +#, python-format +msgid "Instant (last: %s)" +msgstr "Okamžitě (naposledy: %s)" + +#: ../yumcommands.py:892 +#, python-format +msgid "%s second(s) (last: %s)" +msgstr "%s sekund (naposledy: %s)" + +#: ../yumcommands.py:894 +msgid "Repo-expire : " +msgstr "Repo-vyprší : " + +#: ../yumcommands.py:897 +msgid "Repo-exclude : " +msgstr "Repo-vyřazeno: " + +#: ../yumcommands.py:901 +msgid "Repo-include : " +msgstr "Repo-zahrnuto: " + +#. Work out the first (id) and last (enabled/disalbed/count), +#. then chop the middle (name)... +#: ../yumcommands.py:911 ../yumcommands.py:937 +msgid "repo id" +msgstr "repo id" + +#: ../yumcommands.py:925 ../yumcommands.py:926 ../yumcommands.py:940 +msgid "status" +msgstr "status" + +#: ../yumcommands.py:938 +msgid "repo name" +msgstr "jméno repa" + +#: ../yumcommands.py:964 +msgid "Display a helpful usage message" +msgstr "Zobrazit užitečnou nápovědu" + +#: ../yumcommands.py:998 +#, python-format +msgid "No help available for %s" +msgstr "Není dostupná nápověda pro %s" + +#: ../yumcommands.py:1003 +msgid "" +"\n" +"\n" +"aliases: " +msgstr "" +"\n" +"\n" +"aliasy: " + +#: ../yumcommands.py:1005 +msgid "" +"\n" +"\n" +"alias: " +msgstr "" +"\n" +"\n" +"alias: " + +#: ../yumcommands.py:1033 +msgid "Setting up Reinstall Process" +msgstr "Uspořádává se průběh reinstalace" + +#: ../yumcommands.py:1041 +msgid "reinstall a package" +msgstr "reinstalace balíčku" + +#: ../yumcommands.py:1059 +msgid "Setting up Downgrade Process" +msgstr "Uspořádává se průběh snížení verze" + +#: ../yumcommands.py:1066 +msgid "downgrade a package" +msgstr "snížení verze balíčku" + +#: ../yumcommands.py:1080 +msgid "Display a version for the machine and/or available repos." +msgstr "Zobrazit verzi pro tento počítač a/nebo dostupné repozitáře." + +#: ../yumcommands.py:1110 +msgid " Yum version groups:" +msgstr " Verze yum skupin:" + +#: ../yumcommands.py:1120 +msgid " Group :" +msgstr " Skupina :" + +#: ../yumcommands.py:1121 +msgid " Packages:" +msgstr " Balíčky :" + +#: ../yumcommands.py:1151 +msgid "Installed:" +msgstr "Nainstalováno:" + +#: ../yumcommands.py:1156 +msgid "Group-Installed:" +msgstr "Nainstalované skupiny:" + +#: ../yumcommands.py:1165 +msgid "Available:" +msgstr "Dostupné:" + +#: ../yumcommands.py:1171 +msgid "Group-Available:" +msgstr "Dostupné skupiny:" + +#: ../yumcommands.py:1210 +msgid "Display, or use, the transaction history" +msgstr "Zobrazit nebo používat transakční historii" + +#: ../yumcommands.py:1238 +#, python-format +msgid "Invalid history sub-command, use: %s." +msgstr "Neplatný pod-příkaz historie, použijte: %s." + +#: ../yummain.py:128 +msgid "Running" +msgstr "Běží" + +#: ../yummain.py:129 +msgid "Sleeping" +msgstr "Spí" + +#: ../yummain.py:130 +msgid "Uninteruptable" +msgstr "Nepřerušitelné" + +#: ../yummain.py:131 +msgid "Zombie" +msgstr "Zombie" + +#: ../yummain.py:132 +msgid "Traced/Stopped" +msgstr "Trasován/Zastaven" + +#: ../yummain.py:137 +msgid " The other application is: PackageKit" +msgstr " Další aplikace je: PackageKit" + +#: ../yummain.py:139 +#, python-format +msgid " The other application is: %s" +msgstr " Další aplikace je: %s" + +#: ../yummain.py:142 +#, python-format +msgid " Memory : %5s RSS (%5sB VSZ)" +msgstr " Paměť : %5s RSS (%5sB VSZ)" + +#: ../yummain.py:146 +#, python-format +msgid " Started: %s - %s ago" +msgstr " Spuštěn: %s - %s nazpět" + +#: ../yummain.py:148 +#, python-format +msgid " State : %s, pid: %d" +msgstr " Stav : %s, pid: %d" + +#: ../yummain.py:173 +msgid "" +"Another app is currently holding the yum lock; waiting for it to exit..." +msgstr "Zámek yumu je obsazen jinou aplikací; čeká se na její ukončení..." + +#: ../yummain.py:201 ../yummain.py:240 +#, python-format +msgid "Error: %s" +msgstr "Chyba: %s" + +#: ../yummain.py:211 ../yummain.py:253 +#, python-format +msgid "Unknown Error(s): Exit Code: %d:" +msgstr "Neznámá chyba/y: Výstupní kód: %d:" + +#. Depsolve stage +#: ../yummain.py:218 +msgid "Resolving Dependencies" +msgstr "Řeší se závislosti" + +#: ../yummain.py:242 +msgid " You could try using --skip-broken to work around the problem" +msgstr " Můžete zkusit volbu --skip-broken k překonání tohoto problému" + +#: ../yummain.py:243 +msgid "" +" You could try running: package-cleanup --problems\n" +" package-cleanup --dupes\n" +" rpm -Va --nofiles --nodigest" +msgstr "" +" Můžete zkusit spustit: package-cleanup --problems\n" +" package-cleanup --dupes\n" +" rpm -Va --nofiles --nodigest" + +#: ../yummain.py:259 +msgid "" +"\n" +"Dependencies Resolved" +msgstr "" +"\n" +"Závislosti vyřešeny" + +#: ../yummain.py:326 +msgid "" +"\n" +"\n" +"Exiting on user cancel." +msgstr "" +"\n" +"\n" +"Ukončeno na pokyn uživatele." + +#: ../yum/depsolve.py:83 +msgid "doTsSetup() will go away in a future version of Yum.\n" +msgstr "doTsSetup() bude v následujících verzích yumu odstraněno.\n" + +#: ../yum/depsolve.py:98 +msgid "Setting up TransactionSets before config class is up" +msgstr "Uspořádává se TransactionSet před tím než bude připravena třída config" + +#: ../yum/depsolve.py:149 +#, python-format +msgid "Invalid tsflag in config file: %s" +msgstr "Neplatný tsflag v konfiguračním souboru: %s" + +#: ../yum/depsolve.py:160 +#, python-format +msgid "Searching pkgSack for dep: %s" +msgstr "Hledá se pkgSack pro závislost: %s" + +#: ../yum/depsolve.py:176 +#, python-format +msgid "Potential match for %s from %s" +msgstr "Potenciálně shodné pro %s z %s" + +#: ../yum/depsolve.py:184 +#, python-format +msgid "Matched %s to require for %s" +msgstr "Shoda %s vyžadovaná pro %s" + +#: ../yum/depsolve.py:225 +#, python-format +msgid "Member: %s" +msgstr "Prvek: %s" + +#: ../yum/depsolve.py:239 ../yum/depsolve.py:749 +#, python-format +msgid "%s converted to install" +msgstr "%s zkonvertován na instalaci" + +#: ../yum/depsolve.py:246 +#, python-format +msgid "Adding Package %s in mode %s" +msgstr "Přidává se balíček %s v módu %s" + +#: ../yum/depsolve.py:256 +#, python-format +msgid "Removing Package %s" +msgstr "Odstraňuje se balíček %s" + +#: ../yum/depsolve.py:278 +#, python-format +msgid "%s requires: %s" +msgstr "%s vyžaduje: %s" + +#: ../yum/depsolve.py:336 +msgid "Needed Require has already been looked up, cheating" +msgstr "Závazné požadavky již byly prohledány, švindluje se" + +#: ../yum/depsolve.py:346 +#, python-format +msgid "Needed Require is not a package name. Looking up: %s" +msgstr "Závazný požadavek není jméno balíčku. Hledá se: %s" + +#: ../yum/depsolve.py:353 +#, python-format +msgid "Potential Provider: %s" +msgstr "Možný poskytovatel: %s" + +#: ../yum/depsolve.py:376 +#, python-format +msgid "Mode is %s for provider of %s: %s" +msgstr "Mód je %s pro poskytovatele %s: %s" + +#: ../yum/depsolve.py:380 +#, python-format +msgid "Mode for pkg providing %s: %s" +msgstr "Mód pro bal. poskytující %s: %s" + +#: ../yum/depsolve.py:384 +#, python-format +msgid "TSINFO: %s package requiring %s marked as erase" +msgstr "TSINFO: %s balíček požaduje %s označený ke smazání" + +#: ../yum/depsolve.py:397 +#, python-format +msgid "TSINFO: Obsoleting %s with %s to resolve dep." +msgstr "TSINFO: Zastarává se %s s %s k vyřešení závislostí." + +#: ../yum/depsolve.py:400 +#, python-format +msgid "TSINFO: Updating %s to resolve dep." +msgstr "TSINFO: Aktualizuji %s k vyřešení závislostí." + +#: ../yum/depsolve.py:408 +#, python-format +msgid "Cannot find an update path for dep for: %s" +msgstr "Nelze nalézt cestu aktualizací pro závislost pro: %s" + +#: ../yum/depsolve.py:418 +#, python-format +msgid "Unresolvable requirement %s for %s" +msgstr "Neřešitelný požadavek %s pro %s" + +#: ../yum/depsolve.py:441 +#, python-format +msgid "Quick matched %s to require for %s" +msgstr "Rychlá shoda %s vyžadovaného pro %s" + +#. is it already installed? +#: ../yum/depsolve.py:483 +#, python-format +msgid "%s is in providing packages but it is already installed, removing." +msgstr "" +"%s je v poskytujících balíčcích, ale je již nainstalován, odstraňuje se." + +#: ../yum/depsolve.py:499 +#, python-format +msgid "Potential resolving package %s has newer instance in ts." +msgstr "Balíček %s, který může být řešení má v ts novější verzi." + +#: ../yum/depsolve.py:510 +#, python-format +msgid "Potential resolving package %s has newer instance installed." +msgstr "Balíček %s, který může být řešení je nainstalován v novější verzi." + +#: ../yum/depsolve.py:518 ../yum/depsolve.py:564 +#, python-format +msgid "Missing Dependency: %s is needed by package %s" +msgstr "Chybí závislost: %s je vyžadován balíčkem %s" + +#: ../yum/depsolve.py:531 +#, python-format +msgid "%s already in ts, skipping this one" +msgstr "%s je již v ts, vynechává se" + +#: ../yum/depsolve.py:574 +#, python-format +msgid "TSINFO: Marking %s as update for %s" +msgstr "TSINFO: Označuji %s jako aktualizaci %s" + +#: ../yum/depsolve.py:582 +#, python-format +msgid "TSINFO: Marking %s as install for %s" +msgstr "TSINFO: Označuji %s jako instalaci %s" + +#: ../yum/depsolve.py:685 ../yum/depsolve.py:767 +msgid "Success - empty transaction" +msgstr "Úspěch - prázdná transakce" + +#: ../yum/depsolve.py:724 ../yum/depsolve.py:739 +msgid "Restarting Loop" +msgstr "Restartuje se smyčka" + +#: ../yum/depsolve.py:755 +msgid "Dependency Process ending" +msgstr "Proces zpracování závislostí končí" + +#: ../yum/depsolve.py:761 +#, python-format +msgid "%s from %s has depsolving problems" +msgstr "%s z %s má problémy se závislostmi" + +#: ../yum/depsolve.py:768 +msgid "Success - deps resolved" +msgstr "Úspěch - závislosti vyřešeny" + +#: ../yum/depsolve.py:782 +#, python-format +msgid "Checking deps for %s" +msgstr "Kontroluji závislosti pro %s" + +#: ../yum/depsolve.py:865 +#, python-format +msgid "looking for %s as a requirement of %s" +msgstr "hledá se %s jako požadavek od %s" + +#: ../yum/depsolve.py:1007 +#, python-format +msgid "Running compare_providers() for %s" +msgstr "Spouští se compare_providers() pro %s" + +#: ../yum/depsolve.py:1041 ../yum/depsolve.py:1047 +#, python-format +msgid "better arch in po %s" +msgstr "lepší architektura v po %s" + +#: ../yum/depsolve.py:1142 +#, python-format +msgid "%s obsoletes %s" +msgstr "%s zastarává %s" + +#: ../yum/depsolve.py:1154 +#, python-format +msgid "" +"archdist compared %s to %s on %s\n" +" Winner: %s" +msgstr "" +"archdist porovnán pro %s k %s na %s\n" +" Vítěz: %s" + +#: ../yum/depsolve.py:1161 +#, python-format +msgid "common sourcerpm %s and %s" +msgstr "společné zdrojové rpm %s a %s" + +#: ../yum/depsolve.py:1167 +#, python-format +msgid "common prefix of %s between %s and %s" +msgstr "společný prefix %s mezi %s a %s" + +#: ../yum/depsolve.py:1175 +#, python-format +msgid "Best Order: %s" +msgstr "Nejlepší pořádek: %s" + +#: ../yum/__init__.py:187 +msgid "doConfigSetup() will go away in a future version of Yum.\n" +msgstr "doConfigSetup() bude odstraněn v příští verzi Yumu.\n" + +#: ../yum/__init__.py:412 +#, python-format +msgid "Repository %r is missing name in configuration, using id" +msgstr "Repozitáři %r chybí jméno v konfiguraci, používá se id" + +#: ../yum/__init__.py:450 +msgid "plugins already initialised" +msgstr "zásuvný modul již inicializován" + +#: ../yum/__init__.py:457 +msgid "doRpmDBSetup() will go away in a future version of Yum.\n" +msgstr "doRpmDBSetup() bude odstraněn v příští verzi Yumu.\n" + +#: ../yum/__init__.py:468 +msgid "Reading Local RPMDB" +msgstr "Načítá se lokální RPMDB" + +#: ../yum/__init__.py:489 +msgid "doRepoSetup() will go away in a future version of Yum.\n" +msgstr "doRepoSetup() bude odstraněn v příští verzi Yumu.\n" + +#: ../yum/__init__.py:509 +msgid "doSackSetup() will go away in a future version of Yum.\n" +msgstr "doSackSetup() bude odstraněn v příští verzi Yumu.\n" + +#: ../yum/__init__.py:539 +msgid "Setting up Package Sacks" +msgstr "Připravuji pytle balíčků" + +#: ../yum/__init__.py:584 +#, python-format +msgid "repo object for repo %s lacks a _resetSack method\n" +msgstr "objekt repozitáře pro repo %s postrádá metodu _resetSack\n" + +#: ../yum/__init__.py:585 +msgid "therefore this repo cannot be reset.\n" +msgstr "proto nemůže toto repo být resetován.\n" + +#: ../yum/__init__.py:590 +msgid "doUpdateSetup() will go away in a future version of Yum.\n" +msgstr "doUpdateSetup() bude odstraněn v příští verzi Yumu.\n" + +#: ../yum/__init__.py:602 +msgid "Building updates object" +msgstr "Sestavuje se objekt aktualizací" + +#: ../yum/__init__.py:637 +msgid "doGroupSetup() will go away in a future version of Yum.\n" +msgstr "doGroupSetup() bude odstraněn v příští verzi Yumu.\n" + +#: ../yum/__init__.py:662 +msgid "Getting group metadata" +msgstr "Získávají se metadata skupin" + +#: ../yum/__init__.py:688 +#, python-format +msgid "Adding group file from repository: %s" +msgstr "Přidávám skupinový soubor pro repozitář: %s" + +#: ../yum/__init__.py:697 +#, python-format +msgid "Failed to add groups file for repository: %s - %s" +msgstr "Selhalo přidání skupinového souboru pro repozitář: %s - %s" + +#: ../yum/__init__.py:703 +msgid "No Groups Available in any repository" +msgstr "V žádném repozitáři nejsou dostupné skupiny" + +#: ../yum/__init__.py:763 +msgid "Importing additional filelist information" +msgstr "Importuji informace z dodatečného seznamu souborů" + +#: ../yum/__init__.py:777 +#, python-format +msgid "The program %s%s%s is found in the yum-utils package." +msgstr "Program %s %s %s byl nalezen v balíčku yum-utils." + +#: ../yum/__init__.py:785 +msgid "" +"There are unfinished transactions remaining. You might consider running yum-" +"complete-transaction first to finish them." +msgstr "" +"Existují nedokončené transakce. Měli byste zvážit možnost nejdříve spustit " +"yum-complete-transaction k jejich dokončení." + +#: ../yum/__init__.py:853 +#, python-format +msgid "Skip-broken round %i" +msgstr "Přeskočení rozpadlých - kolo %i" + +#: ../yum/__init__.py:906 +#, python-format +msgid "Skip-broken took %i rounds " +msgstr "Přeskočení rozpadlých trvalo %i kol " + +#: ../yum/__init__.py:907 +msgid "" +"\n" +"Packages skipped because of dependency problems:" +msgstr "\n
Balíčky přeskočené kvůli problémům se závislostmi:" + +#: ../yum/__init__.py:911 +#, python-format +msgid " %s from %s" +msgstr " %s z %s" + +#: ../yum/__init__.py:1076 +msgid "" +"Warning: scriptlet or other non-fatal errors occurred during transaction." +msgstr "" +"Varování: Během transakce došlo k chybě skripletu nebo jiné nefatální chybě." + +#: ../yum/__init__.py:1093 +#, python-format +msgid "Failed to remove transaction file %s" +msgstr "Selhalo odstranění transakčního souboru %s." + +#. maybe a file log here, too +#. but raising an exception is not going to do any good +#: ../yum/__init__.py:1122 +#, python-format +msgid "%s was supposed to be installed but is not!" +msgstr "%s mělo být nainstalováno ale neni!" + +#. maybe a file log here, too +#. but raising an exception is not going to do any good +#: ../yum/__init__.py:1161 +#, python-format +msgid "%s was supposed to be removed but is not!" +msgstr "%s mělo být odstraněno ale není!" + +#. Whoa. What the heck happened? +#: ../yum/__init__.py:1281 +#, python-format +msgid "Unable to check if PID %s is active" +msgstr "Nedá se zkontrolovat zda je PID %s aktivní." + +#. Another copy seems to be running. +#: ../yum/__init__.py:1285 +#, python-format +msgid "Existing lock %s: another copy is running as pid %s." +msgstr "Existující zámek %s: jiná kopie běží s pid %s." + +#. Whoa. What the heck happened? +#: ../yum/__init__.py:1320 +#, python-format +msgid "Could not create lock at %s: %s " +msgstr "Nelze vytvořit zámek na %s: %s " + +#: ../yum/__init__.py:1365 +msgid "Package does not match intended download" +msgstr "Balíček se neshoduje se zamýšleným stahováním" + +#: ../yum/__init__.py:1380 +msgid "Could not perform checksum" +msgstr "Nelze zkontrolovat kontrolní součet" + +#: ../yum/__init__.py:1383 +msgid "Package does not match checksum" +msgstr "Balíček neodpovídá kontrolnímu součtu" + +#: ../yum/__init__.py:1425 +#, python-format +msgid "package fails checksum but caching is enabled for %s" +msgstr "balíček neprošel kontrolním součtem ale skladiště je povoleno pro %s" + +#: ../yum/__init__.py:1428 ../yum/__init__.py:1457 +#, python-format +msgid "using local copy of %s" +msgstr "používá se lokální kopie %s" + +#: ../yum/__init__.py:1469 +#, python-format +msgid "" +"Insufficient space in download directory %s\n" +" * free %s\n" +" * needed %s" +msgstr "" +"Nedostatek diskového prostoru ve stahovacím adresáři %s\n" +" * volno %s\n" +" * potřeba %s" + +#: ../yum/__init__.py:1518 +msgid "Header is not complete." +msgstr "Hlavička není komplet." + +#: ../yum/__init__.py:1555 +#, python-format +msgid "" +"Header not in local cache and caching-only mode enabled. Cannot download %s" +msgstr "" +"Hlavička není v lokálním skladišti ale je povoleno používat pouze skladiště. " +"Nemohu stáhnout %s" + +#: ../yum/__init__.py:1610 +#, python-format +msgid "Public key for %s is not installed" +msgstr "Veřejný klíč %s není nainstalován" + +#: ../yum/__init__.py:1614 +#, python-format +msgid "Problem opening package %s" +msgstr "Problém s otevřením balíčku %s" + +#: ../yum/__init__.py:1622 +#, python-format +msgid "Public key for %s is not trusted" +msgstr "Veřejný klíč %s není důvěryhodný" + +#: ../yum/__init__.py:1626 +#, python-format +msgid "Package %s is not signed" +msgstr "Balíček %s není podepsán" + +#: ../yum/__init__.py:1664 +#, python-format +msgid "Cannot remove %s" +msgstr "Nemohu odstranit %s" + +#: ../yum/__init__.py:1668 +#, python-format +msgid "%s removed" +msgstr "%s odstraňen" + +#: ../yum/__init__.py:1704 +#, python-format +msgid "Cannot remove %s file %s" +msgstr "Nemohu odstranit %s soubor %s" + +#: ../yum/__init__.py:1708 +#, python-format +msgid "%s file %s removed" +msgstr "%s soubor %s odstraněn" + +#: ../yum/__init__.py:1710 +#, python-format +msgid "%d %s files removed" +msgstr "%d %s soubor odstraněn" + +#: ../yum/__init__.py:1779 +#, python-format +msgid "More than one identical match in sack for %s" +msgstr "Více než jedna identická shoda v pytly pro %s" + +#: ../yum/__init__.py:1785 +#, python-format +msgid "Nothing matches %s.%s %s:%s-%s from update" +msgstr "Nic se neshoduje s %s.%s %s:%s-%s z aktualizace" + +#: ../yum/__init__.py:2018 +msgid "" +"searchPackages() will go away in a future version of " +"Yum. Use searchGenerator() instead. \n" +msgstr "" +"searchPackages() bude odstraněno v příští verzi Yumu. " +"Používejte místo ní searchGenerator(). \n" + +#: ../yum/__init__.py:2057 +#, python-format +msgid "Searching %d packages" +msgstr "Prohledává se %d balíčků" + +#: ../yum/__init__.py:2061 +#, python-format +msgid "searching package %s" +msgstr "prohledává se balíček %s" + +#: ../yum/__init__.py:2073 +msgid "searching in file entries" +msgstr "hledá se v souborových položkách" + +#: ../yum/__init__.py:2080 +msgid "searching in provides entries" +msgstr "hledá se v položkách poskytovatelů" + +#: ../yum/__init__.py:2113 +#, python-format +msgid "Provides-match: %s" +msgstr "Poskytovatel-shoda: %s" + +#: ../yum/__init__.py:2162 +msgid "No group data available for configured repositories" +msgstr "Pro nastavený repozitář nejsou žádná dostupná skupinová data" + +#: ../yum/__init__.py:2193 ../yum/__init__.py:2212 ../yum/__init__.py:2243 +#: ../yum/__init__.py:2249 ../yum/__init__.py:2328 ../yum/__init__.py:2332 +#: ../yum/__init__.py:2647 +#, python-format +msgid "No Group named %s exists" +msgstr "Neexistuje skupina pojmenovaná %s" + +#: ../yum/__init__.py:2224 ../yum/__init__.py:2345 +#, python-format +msgid "package %s was not marked in group %s" +msgstr "balíček %s nebyl označen ve skupině %s" + +#: ../yum/__init__.py:2271 +#, python-format +msgid "Adding package %s from group %s" +msgstr "Přidává se balíček %s pro skupinu %s" + +#: ../yum/__init__.py:2275 +#, python-format +msgid "No package named %s available to be installed" +msgstr "Neexistuje žádný balíček pojmenovaný %s dostupný k instalaci" + +#: ../yum/__init__.py:2372 +#, python-format +msgid "Package tuple %s could not be found in packagesack" +msgstr "Uspořádaný seznam balíčků %s nenalezen v pytly balíčků" + +#: ../yum/__init__.py:2391, python-format +msgid "Package tuple %s could not be found in rpmdb" +msgstr "Uspořádaný seznam balíčků %s nenalezen v rpmdb" + +#: ../yum/__init__.py:2447 ../yum/__init__.py:2497 +msgid "Invalid version flag" +msgstr "Chybý příznak verze" + +#: ../yum/__init__.py:2467 ../yum/__init__.py:2472 +#, python-format +msgid "No Package found for %s" +msgstr "Nebyl nalezen balíček pro %s" + +#: ../yum/__init__.py:2688 +msgid "Package Object was not a package object instance" +msgstr "Objekt balíčku nebyl instancí balíčkového objektu" + +#: ../yum/__init__.py:2692 +msgid "Nothing specified to install" +msgstr "Nebylo určeno nic k instalaci" + +#: ../yum/__init__.py:2708 ../yum/__init__.py:3472 +#, python-format +msgid "Checking for virtual provide or file-provide for %s" +msgstr "Hledá se virtuální poskytovatel nebo soubor poskytující %s" + +#: ../yum/__init__.py:2714 ../yum/__init__.py:3021 ../yum/__init__.py:3188 +#: ../yum/__init__.py:3478 +#, python-format +msgid "No Match for argument: %s" +msgstr "Nenalezena shoda pro argument: %s" + +#: ../yum/__init__.py:2790 +#, python-format +msgid "Package %s installed and not available" +msgstr "Balíček %s nainstalován ale není dostupný" + +#: ../yum/__init__.py:2793 +msgid "No package(s) available to install" +msgstr "Žádný balíček/ky dostupný pro instalaci" + +#: ../yum/__init__.py:2805 +#, python-format +msgid "Package: %s - already in transaction set" +msgstr "Balíček: %s - již je v transakci" + +#: ../yum/__init__.py:2831 +#, python-format +msgid "Package %s is obsoleted by %s which is already installed" +msgstr "Balíček %s je zastaralý balíčkem %s, který je již nainstalován" + +#: ../yum/__init__.py:2834 +#, python-format +msgid "Package %s is obsoleted by %s, trying to install %s instead" +msgstr "Balíček %s je zastaralý balíčkem %s, zkouší se místo něj instalovat %s" + +#: ../yum/__init__.py:2842 +#, python-format +msgid "Package %s already installed and latest version" +msgstr "Balíček %s již nainstalován a v poslední verzi" + +#: ../yum/__init__.py:2856 +#, python-format +msgid "Package matching %s already installed. Checking for update." +msgstr "Balíček odpovídající %s je již nainstalován. Hledají se aktualizace." + +#. update everything (the easy case) +#: ../yum/__init__.py:2950 +msgid "Updating Everything" +msgstr "Aktualizuje se vše" + +#: ../yum/__init__.py:2971 ../yum/__init__.py:3086 ../yum/__init__.py:3115 +#: ../yum/__init__.py:3142 +#, python-format +msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s" +msgstr "Neaktualizuje se balíček, který je již zastaralý: %s.%s %s:%s-%s" + +#: ../yum/__init__.py:3006 ../yum/__init__.py:3185 +#, python-format +msgid "%s" +msgstr "%s" + +#: ../yum/__init__.py:3077 +#, python-format +msgid "Package is already obsoleted: %s.%s %s:%s-%s" +msgstr "Balíček je již zastaralý: %s.%s %s:%s-%s" + +#: ../yum/__init__.py:3110 +#, python-format +msgid "Not Updating Package that is obsoleted: %s" +msgstr "Neaktualizuje se balíček, který je zastaralý: %s" + +#: ../yum/__init__.py:3119 ../yum/__init__.py:3146 +#, python-format +msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s" +msgstr "Neaktualizuje se balíček, který jej již aktuální: %s.%s %s:%s-%s" + +#: ../yum/__init__.py:3201 +msgid "No package matched to remove" +msgstr "Nenalezen žádný shodný balíček pro odstranění" + +#: ../yum/__init__.py:3234 ../yum/__init__.py:3338 ../yum/__init__.py:3427 +#, python-format +msgid "Cannot open file: %s. Skipping." +msgstr "Nelze otevřít soubor: %s. Přeskakuje se." + +#: ../yum/__init__.py:3237 ../yum/__init__.py:3341 ../yum/__init__.py:3430 +#, python-format +msgid "Examining %s: %s" +msgstr "Zkoumá se %s: %s" + +#: ../yum/__init__.py:3245 ../yum/__init__.py:3344 ../yum/__init__.py:3433 +#, python-format +msgid "Cannot add package %s to transaction. Not a compatible architecture: %s" +msgstr "Nelze přídat balíček %s do transakce. Nekompatibilní architektura: %s" + +#: ../yum/__init__.py:3253 +#, python-format +msgid "" +"Package %s not installed, cannot update it. Run yum install to install it " +"instead." +msgstr "" +"Balíček %s není nainstalován, nelze jej aktualizovat. Spusťte místo toho yum " +"install a nainstalujte jej." + +#: ../yum/__init__.py:3288 ../yum/__init__.py:3355 ../yum/__init__.py:3444 +#, python-format +msgid "Excluding %s" +msgstr "Vynechává se %s" + +#: ../yum/__init__.py:3293 +#, python-format +msgid "Marking %s to be installed" +msgstr "Označuje se %s k instalaci" + +#: ../yum/__init__.py:3299 +#, python-format +msgid "Marking %s as an update to %s" +msgstr "Označuje se %s jako aktualizace %s" + +#: ../yum/__init__.py:3306 +#, python-format +msgid "%s: does not update installed package." +msgstr "%s: není aktualizací instalovaného balíčku" + +#: ../yum/__init__.py:3374 +msgid "Problem in reinstall: no package matched to remove" +msgstr "Problém při reinstalaci: žádný shodný balíček k odstranění" + +#: ../yum/__init__.py:3387 ../yum/__init__.py:3506 +#, python-format +msgid "Package %s is allowed multiple installs, skipping" +msgstr "Balíček %s má dovoleno vícero instalací, přeskakuje se" + +#: ../yum/__init__.py:3408 +#, python-format +msgid "Problem in reinstall: no package %s matched to install" +msgstr "Problém při reinstalaci: žádný shodný balíček %s k instalaci" + +#: ../yum/__init__.py:3498 +msgid "No package(s) available to downgrade" +msgstr "Žádný balíček/ky dostupné ke snížení verze" + +#: ../yum/__init__.py:3542 +#, python-format +msgid "No Match for available package: %s" +msgstr "Neexistuje shoda pro dostupný balíček: %s" + +#: ../yum/__init__.py:3548 +#, python-format +msgid "Only Upgrade available on package: %s" +msgstr "Pouze aktualizace dostupná pro balíček: %s" + +#: ../yum/__init__.py:3616 ../yum/__init__.py:3653, python-format +msgid "Failed to downgrade: %s" +msgstr "Nepodařilo se snížit verzi: %s" + +#: ../yum/__init__.py:3685 +#, python-format +msgid "Retrieving GPG key from %s" +msgstr "Získává se GPG klíč pro %s" + +#: ../yum/__init__.py:3705 +msgid "GPG key retrieval failed: " +msgstr "Získání GPG klíč selhalo: " + +#: ../yum/__init__.py:3716 +#, python-format +msgid "GPG key parsing failed: key does not have value %s" +msgstr "Zpracování GPG klíče selhalo: klíč nemá žádnou hodnotu %s" + +#: ../yum/__init__.py:3748 +#, python-format +msgid "GPG key at %s (0x%s) is already installed" +msgstr "GPG klíč %s (0x%s) je již nainstalován" + +#. Try installing/updating GPG key +#: ../yum/__init__.py:3753 ../yum/__init__.py:3815 +#, python-format +msgid "Importing GPG key 0x%s \"%s\" from %s" +msgstr "Importuje se GPG klíč 0x%s \"%s\" z %s" + +#: ../yum/__init__.py:3770 +msgid "Not installing key" +msgstr "Neinstaluji klíč" + +#: ../yum/__init__.py:3776 +#, python-format +msgid "Key import failed (code %d)" +msgstr "Import klíče selhal (kód %d)" + +#: ../yum/__init__.py:3777 ../yum/__init__.py:3836 +msgid "Key imported successfully" +msgstr "Import klíče proběhl úspěšně" + +#: ../yum/__init__.py:3782 ../yum/__init__.py:3841 +#, 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 klíč určený pro repozitář %s je již nainstalován, ale není správný pro " +"tento balíček.\n" +"Zkontrolujte, že URL klíče jsou pro repozitář správně nastavena." + +#: ../yum/__init__.py:3791 +msgid "Import of key(s) didn't help, wrong key(s)?" +msgstr "Import klíče/ů nepomohl, špatný klíč(e)?" + +#: ../yum/__init__.py:3810 +#, python-format +msgid "GPG key at %s (0x%s) is already imported" +msgstr "GPG klíč %s (0x%s) je již naimportován" + +#: ../yum/__init__.py:3830 +#, python-format +msgid "Not installing key for repo %s" +msgstr "Neinstaluji klíč pro repozitář %s" + +#: ../yum/__init__.py:3835 +msgid "Key import failed" +msgstr "Import klíče selhal" + +#: ../yum/__init__.py:3957 +msgid "Unable to find a suitable mirror." +msgstr "Nemohu nalézt vhodné zrcadlo" + +#: ../yum/__init__.py:3959 +msgid "Errors were encountered while downloading packages." +msgstr "Při stahování balíčků došlo k chybě." + +#: ../yum/__init__.py:4009 +#, python-format +msgid "Please report this error at %s" +msgstr "Prosím ohlašte tuto chybu na %s" + +#: ../yum/__init__.py:4033 +msgid "Test Transaction Errors: " +msgstr "Chyby testu transakce: " + +#. Mostly copied from YumOutput._outKeyValFill() +#: ../yum/plugins.py:202 +msgid "Loaded plugins: " +msgstr "Zavedeny zásuvné moduly:" + +#: ../yum/plugins.py:216 ../yum/plugins.py:222 +#, python-format +msgid "No plugin match for: %s" +msgstr "Neexistuje zásuvný modul pro: %s" + +#: ../yum/plugins.py:252 +#, python-format +msgid "Not loading \"%s\" plugin, as it is disabled" +msgstr "Nezavádí se \"%s\" modul, protože je zakázán" + +#. Give full backtrace: +#: ../yum/plugins.py:264 +#, python-format +msgid "Plugin \"%s\" can't be imported" +msgstr "Modul \"%s\" nemůže být importován" + +#: ../yum/plugins.py:271 +#, python-format +msgid "Plugin \"%s\" doesn't specify required API version" +msgstr "Modul \"%s\" neuvádí požadovanou verzi API" + +#: ../yum/plugins.py:276 +#, python-format +msgid "Plugin \"%s\" requires API %s. Supported API is %s." +msgstr "Modul \"%s\" požaduje API %s. Podporované API je %s." + +#: ../yum/plugins.py:309 +#, python-format +msgid "Loading \"%s\" plugin" +msgstr "Zavádí se zásvuný modul \"%s\"" + +#: ../yum/plugins.py:316 +#, python-format +msgid "" +"Two or more plugins with the name \"%s\" exist in the plugin search path" +msgstr "V prohledávaných cestách jsou dva nebo více modulů se jménem \"%s\"" + +#: ../yum/plugins.py:336 +#, python-format +msgid "Configuration file %s not found" +msgstr "Konfigurační soubor %s nenalezen" + +#. for +#. Configuration files for the plugin not found +#: ../yum/plugins.py:339 +#, python-format +msgid "Unable to find configuration file for plugin %s" +msgstr "Nelze nalézt konfigurační soubor pro modul %s" + +#: ../yum/plugins.py:501 +msgid "registration of commands not supported" +msgstr "registrace příkazů není podporována" + +#: ../yum/rpmtrans.py:78 +msgid "Repackaging" +msgstr "Přebaluje se" + +#: ../rpmUtils/oldUtils.py:33 +#, python-format +msgid "Header cannot be opened or does not match %s, %s." +msgstr "Hlavička nemůže být otevřena nebo neodpovídá %s, %s." + +#: ../rpmUtils/oldUtils.py:53 +#, python-format +msgid "RPM %s fails md5 check" +msgstr "Pro RPM %s selhala kontrola md5" + +#: ../rpmUtils/oldUtils.py:151 +msgid "Could not open RPM database for reading. Perhaps it is already in use?" +msgstr "Nelze otevřít databázi RPM pro čtení. Možná je jíž používána?" + +#: ../rpmUtils/oldUtils.py:183 +msgid "Got an empty Header, something has gone wrong" +msgstr "Vrátila se prázdná hlavička. Něco se stalo špatně." + +#: ../rpmUtils/oldUtils.py:253 ../rpmUtils/oldUtils.py:260 +#: ../rpmUtils/oldUtils.py:263 ../rpmUtils/oldUtils.py:266 +#, python-format +msgid "Damaged Header %s" +msgstr "Poškozená hlavička %s" + +#: ../rpmUtils/oldUtils.py:281 +#, python-format +msgid "Error opening rpm %s - error %s" +msgstr "Chyba při otevření rpm %s - chyba %s" + +#~ msgid "" +#~ "getInstalledPackageObject() will go away, use self.rpmdb.searchPkgTuple" +#~ "().\n" +#~ msgstr "" +#~ "getInstalledPackageObject() bude odstraněno, používejte self.rpmdb." +#~ "searchPkgTuple().\n" diff --git a/po/ja.po b/po/ja.po index 6f86fc8..e7b7084 100644 --- a/po/ja.po +++ b/po/ja.po @@ -6,17 +6,17 @@ # msgid "" msgstr "" -"Project-Id-Version: yum master\n" +"Project-Id-Version: yum (yum-3_2_X)\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" +"POT-Creation-Date: 2009-09-21 03:07+0900\n" +"PO-Revision-Date: 2009-09-21 04:52+0900\n" "Last-Translator: Tadashi Jokagi \n" "Language-Team: Japanese \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 +#: callback.py:48 output.py:938 yum/rpmtrans.py:71 msgid "Updating" msgstr "更新" @@ -24,7 +24,7 @@ msgstr "更新" msgid "Erasing" msgstr "削除中" -#: callback.py:50 callback.py:51 callback.py:53 output.py:921 +#: callback.py:50 callback.py:51 callback.py:53 output.py:937 #: yum/rpmtrans.py:73 yum/rpmtrans.py:74 yum/rpmtrans.py:76 msgid "Installing" msgstr "インストールしています" @@ -33,7 +33,7 @@ msgstr "インストールしています" msgid "Obsoleted" msgstr "不要でした" -#: callback.py:54 output.py:1029 +#: callback.py:54 output.py:1061 msgid "Updated" msgstr "更新しました" @@ -41,7 +41,7 @@ msgstr "更新しました" msgid "Erased" msgstr "削除しました" -#: callback.py:56 callback.py:57 callback.py:59 output.py:1027 +#: callback.py:56 callback.py:57 callback.py:59 output.py:1059 msgid "Installed" msgstr "インストールしました" @@ -63,7 +63,7 @@ msgstr "エラー: 不正な出力状態: %s for %s" msgid "Erased: %s" msgstr "削除しました: %s" -#: callback.py:217 output.py:923 +#: callback.py:217 output.py:939 msgid "Removing" msgstr "削除" @@ -71,58 +71,58 @@ msgstr "削除" msgid "Cleanup" msgstr "整理中" -#: cli.py:105 +#: cli.py:107 #, python-format msgid "Command \"%s\" already defined" msgstr "コマンド「%s」はすでに定義済みです" -#: cli.py:117 +#: cli.py:119 msgid "Setting up repositories" msgstr "リポジトリーの設定" -#: cli.py:128 +#: cli.py:130 msgid "Reading repository metadata in from local files" msgstr "ローカルファイルからリポジトリーのメタデータを読み込んでいます" -#: cli.py:192 utils.py:79 +#: cli.py:193 utils.py:102 #, python-format msgid "Config Error: %s" msgstr "設定エラー: %s" -#: cli.py:195 cli.py:1190 utils.py:82 +#: cli.py:196 cli.py:1253 utils.py:105 #, python-format msgid "Options Error: %s" msgstr "オプションエラー: %s" -#: cli.py:223 +#: cli.py:225 #, python-format msgid " Installed: %s-%s at %s" msgstr "" -#: cli.py:225 +#: cli.py:227 #, python-format msgid " Built : %s at %s" msgstr "" -#: cli.py:227 +#: cli.py:229 #, python-format msgid " Committed: %s at %s" msgstr "" -#: cli.py:266 +#: cli.py:268 msgid "You need to give some command" msgstr "いくつかのコマンドを指定する必要があります" -#: cli.py:309 +#: cli.py:311 msgid "Disk Requirements:\n" msgstr "ディスク要求:\n" -#: cli.py:311 +#: cli.py:313 #, python-format msgid " At least %dMB needed on the %s filesystem.\n" msgstr " 少なくとも %d MB の空き容量がファイルシステム %s で必要です。\n" -#: cli.py:316 +#: cli.py:318 msgid "" "Error Summary\n" "-------------\n" @@ -130,220 +130,246 @@ msgstr "" "エラーの要約\n" "-------------\n" -#: cli.py:359 +#: cli.py:361 msgid "Trying to run the transaction but nothing to do. Exiting." msgstr "" "トランザクションの実行を試みましたが、何もありませんでした。終了します。" -#: cli.py:395 +#: cli.py:397 msgid "Exiting on user Command" msgstr "ユーザーコマンドを終了しています" -#: cli.py:399 +#: cli.py:401 msgid "Downloading Packages:" msgstr "パッケージをダウンロードしています:" -#: cli.py:404 +#: cli.py:406 msgid "Error Downloading Packages:\n" msgstr "パッケージのダウンロードでエラー:\n" -#: cli.py:418 yum/__init__.py:3362 +#: cli.py:420 yum/__init__.py:3873 msgid "Running rpm_check_debug" msgstr "rpm_check_debug を実行しています" -#: cli.py:421 yum/__init__.py:3365 +#: cli.py:429 yum/__init__.py:3882 +msgid "ERROR You need to update rpm to handle:" +msgstr "" + +#: cli.py:431 yum/__init__.py:3885 msgid "ERROR with rpm_check_debug vs depsolve:" msgstr "" -#: cli.py:425 +#: cli.py:437 +msgid "RPM needs to be updated" +msgstr "" + +#: cli.py:438 #, python-format msgid "Please report this error in %s" msgstr "%s にこのエラーを報告してください" -#: cli.py:431 +#: cli.py:444 msgid "Running Transaction Test" msgstr "トランザクションのテストを実行しています" -#: cli.py:447 +#: cli.py:460 msgid "Finished Transaction Test" msgstr "トランザクションのテストを終了しました" -#: cli.py:449 +#: cli.py:462 msgid "Transaction Check Error:\n" msgstr "トランザクションの確認エラー\n" -#: cli.py:456 +#: cli.py:469 msgid "Transaction Test Succeeded" msgstr "トランザクションのテストを成功しました" -#: cli.py:477 +#: cli.py:491 msgid "Running Transaction" msgstr "トランザクションを実行しています" -#: cli.py:507 +#: cli.py:521 msgid "" "Refusing to automatically import keys when running unattended.\n" "Use \"-y\" to override." msgstr "" -#: cli.py:526 cli.py:560 +#: cli.py:540 cli.py:574 msgid " * Maybe you meant: " msgstr "" -#: cli.py:543 cli.py:551 +#: cli.py:557 cli.py:565 #, python-format msgid "Package(s) %s%s%s available, but not installed." msgstr "パッケージ %s%s%s は利用できますが、インストールしませんでした。" -#: cli.py:557 cli.py:590 +#: cli.py:571 cli.py:602 cli.py:680 #, python-format msgid "No package %s%s%s available." msgstr "パッケージ %s%s%s は利用できません。" -#: cli.py:595 cli.py:670 yumcommands.py:1010 +#: cli.py:607 cli.py:740 msgid "Package(s) to install" msgstr "インストールするパッケージ" -#: cli.py:596 cli.py:671 yumcommands.py:159 yumcommands.py:1011 +#: cli.py:608 cli.py:686 cli.py:719 cli.py:741 yumcommands.py:157 msgid "Nothing to do" msgstr "何もしません" -#: cli.py:629 +#: cli.py:641 #, python-format msgid "%d packages marked for Update" msgstr "%d 個のパッケージが更新の設定しました" -#: cli.py:632 +#: cli.py:644 msgid "No Packages marked for Update" msgstr "更新と設定されたパッケージがありません" -#: cli.py:646 +#: cli.py:658 #, python-format msgid "%d packages marked for removal" msgstr "%d 個のパッケージが削除の設定しました" -#: cli.py:649 +#: cli.py:661 msgid "No Packages marked for removal" msgstr "削除と設定されたパッケージがありません" -#: cli.py:661 +#: cli.py:685 +msgid "Package(s) to downgrade" +msgstr "ダウングレードするパッケージ" + +#: cli.py:709 +#, python-format +msgid " (from %s)" +msgstr "" + +#: cli.py:711 +#, python-format +msgid "Installed package %s%s%s%s not available." +msgstr "インストール済みパッケージ %s%s%s%s は利用できません。" + +#: cli.py:718 +msgid "Package(s) to reinstall" +msgstr "再インストールするパッケージ" + +#: cli.py:731 msgid "No Packages Provided" msgstr "パッケージが提供されていません" -#: cli.py:716 -msgid "Matching packages for package list to user args" -msgstr "ユーザーの引数にパッケージ一覧のパッケージを一致させています" - -#: cli.py:765 +#: cli.py:815 #, python-format msgid "Warning: No matches found for: %s" msgstr "警告: 一致するものが見つかりません: %s" -#: cli.py:768 +#: cli.py:818 msgid "No Matches found" msgstr "見つかりませんでした" -#: cli.py:807 +#: cli.py:857 #, 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 +#: cli.py:873 #, python-format msgid "No Package Found for %s" msgstr "%s のパッケージが見つかりません" -#: cli.py:835 +#: cli.py:885 msgid "Cleaning up Everything" msgstr "すべて掃除しています" -#: cli.py:849 +#: cli.py:899 msgid "Cleaning up Headers" msgstr "ヘッダーを掃除しています" -#: cli.py:852 +#: cli.py:902 msgid "Cleaning up Packages" msgstr "パッケージを掃除しています" -#: cli.py:855 +#: cli.py:905 msgid "Cleaning up xml metadata" msgstr "XML メタデータを掃除しています" -#: cli.py:858 +#: cli.py:908 msgid "Cleaning up database cache" msgstr "データベースキャッシュを掃除しています" -#: cli.py:861 +#: cli.py:911 msgid "Cleaning up expire-cache metadata" msgstr "期限切れのメタデータキャッシュを掃除しています" -#: cli.py:864 +#: cli.py:914 msgid "Cleaning up plugins" msgstr "プラグインを掃除しています" -#: cli.py:889 +#: cli.py:939 msgid "Installed Groups:" msgstr "インストール済みグループ:" -#: cli.py:896 +#: cli.py:951 msgid "Available Groups:" msgstr "利用可能なグループ" -#: cli.py:902 +#: cli.py:961 msgid "Done" msgstr "完了" -#: cli.py:913 cli.py:931 cli.py:937 yum/__init__.py:2410 +#: cli.py:972 cli.py:990 cli.py:996 yum/__init__.py:2579 #, python-format msgid "Warning: Group %s does not exist." msgstr "警告: グループ %s が存在しません。" -#: cli.py:941 +#: cli.py:1000 msgid "No packages in any requested group available to install or update" msgstr "" -#: cli.py:943 +#: cli.py:1002 #, python-format msgid "%d Package(s) to Install" msgstr "%d 個のパッケージをインストールします" -#: cli.py:953 yum/__init__.py:2422 +#: cli.py:1012 yum/__init__.py:2591 #, python-format msgid "No group named %s exists" msgstr "グループ名 %s が存在しません" -#: cli.py:959 +#: cli.py:1018 msgid "No packages to remove from groups" msgstr "グループから削除するパッケージがありません" -#: cli.py:961 +#: cli.py:1020 #, python-format msgid "%d Package(s) to remove" msgstr "%d 個のパッケージを削除します" -#: cli.py:1003 +#: cli.py:1062 #, python-format msgid "Package %s is already installed, skipping" msgstr "パッケージ %s は既にインストールされているので飛ばします" -#: cli.py:1014 +#: cli.py:1073 #, python-format msgid "Discarding non-comparable pkg %s.%s" msgstr "非互換のパッケージ %s.%s を破棄しています" -#: cli.py:1040 +#: cli.py:1099 #, python-format msgid "No other %s installed, adding to list for potential install" msgstr "" -#: cli.py:1059 +#: cli.py:1119 +msgid "Plugin Options" +msgstr "" + +#: cli.py:1127 #, python-format msgid "Command line error: %s" msgstr "コマンドラインエラー: %s" -#: cli.py:1072 +#: cli.py:1140 #, python-format msgid "" "\n" @@ -354,253 +380,258 @@ msgstr "" "\n" "%s: オプション %sは引数が必要です " -#: cli.py:1130 +#: cli.py:1193 msgid "--color takes one of: auto, always, never" msgstr "--color がとることができる値な次のうちひとつです: auto、always、never" -#: cli.py:1232 +#: cli.py:1300 msgid "show this help message and exit" msgstr "このヘルプメッセージを表示して終了する" -#: cli.py:1236 +#: cli.py:1304 msgid "be tolerant of errors" msgstr "" -#: cli.py:1238 +#: cli.py:1306 msgid "run entirely from cache, don't update cache" msgstr "キャッシュから完全に実行します。キャッシュを更新しません" -#: cli.py:1240 +#: cli.py:1308 msgid "config file location" msgstr "構成ファイルの場所" -#: cli.py:1242 +#: cli.py:1310 msgid "maximum command wait time" msgstr "コマンドの最大待ち時間" -#: cli.py:1244 +#: cli.py:1312 msgid "debugging output level" msgstr "デバッグ情報の出力レベル" -#: cli.py:1248 +#: cli.py:1316 msgid "show duplicates, in repos, in list/search commands" msgstr "一覧/検索コマンドのリポジトリーの重複の表示" -#: cli.py:1250 +#: cli.py:1318 msgid "error output level" msgstr "エラー出力レベル" -#: cli.py:1253 +#: cli.py:1321 msgid "quiet operation" msgstr "静かに処理をする" -#: cli.py:1255 +#: cli.py:1323 msgid "verbose operation" msgstr "冗長に処理をする" -#: cli.py:1257 +#: cli.py:1325 msgid "answer yes for all questions" msgstr "すべての問い合わせに「yes」で答える" -#: cli.py:1259 +#: cli.py:1327 msgid "show Yum version and exit" msgstr "Yum のバージョンを表示して終了する" -#: cli.py:1260 +#: cli.py:1328 msgid "set install root" msgstr "インストールのベースディレクトリを設定する" -#: cli.py:1264 +#: cli.py:1332 msgid "enable one or more repositories (wildcards allowed)" msgstr "ひとつ以上のリポジトリーを有効にする (ワイルドカード許可)" -#: cli.py:1268 +#: cli.py:1336 msgid "disable one or more repositories (wildcards allowed)" msgstr "ひとつ以上のリポジトリーを無効にする (ワイルドカード許可)" -#: cli.py:1271 +#: cli.py:1339 msgid "exclude package(s) by name or glob" msgstr "名前かワイルドカードでパッケージを除外する" -#: cli.py:1273 +#: cli.py:1341 msgid "disable exclude from main, for a repo or for everything" msgstr "" -#: cli.py:1276 +#: cli.py:1344 msgid "enable obsoletes processing during updates" msgstr "更新中に不要な処理を有効にします" -#: cli.py:1278 +#: cli.py:1346 msgid "disable Yum plugins" msgstr "Yum プラグインを無効にする" -#: cli.py:1280 +#: cli.py:1348 msgid "disable gpg signature checking" msgstr "GPG 署名の確認を無効にする" -#: cli.py:1282 +#: cli.py:1350 msgid "disable plugins by name" msgstr "名前でプラグインを無効にする" -#: cli.py:1285 +#: cli.py:1353 msgid "enable plugins by name" msgstr "名前でプラグインを有効にする" -#: cli.py:1288 +#: cli.py:1356 msgid "skip packages with depsolving problems" msgstr "依存性に問題があるパッケージを飛ばす" -#: cli.py:1290 +#: cli.py:1358 msgid "control whether color is used" msgstr "" -#: output.py:298 +#: output.py:303 msgid "Jan" msgstr "1 月" -#: output.py:298 +#: output.py:303 msgid "Feb" msgstr "2 月" -#: output.py:298 +#: output.py:303 msgid "Mar" msgstr "3 月" -#: output.py:298 +#: output.py:303 msgid "Apr" msgstr "4 月" -#: output.py:298 +#: output.py:303 msgid "May" msgstr "5 月" -#: output.py:298 +#: output.py:303 msgid "Jun" msgstr "6 月" -#: output.py:299 +#: output.py:304 msgid "Jul" msgstr "7 月" -#: output.py:299 +#: output.py:304 msgid "Aug" msgstr "8 月" -#: output.py:299 +#: output.py:304 msgid "Sep" msgstr "9 月" -#: output.py:299 +#: output.py:304 msgid "Oct" msgstr "10 月" -#: output.py:299 +#: output.py:304 msgid "Nov" msgstr "11 月" -#: output.py:299 +#: output.py:304 msgid "Dec" msgstr "12 月" -#: output.py:309 +#: output.py:314 msgid "Trying other mirror." msgstr "他のミラーを試します。" -#: output.py:525 +#: output.py:536 #, python-format msgid "Name : %s%s%s" msgstr "名前 : %s%s%s" -#: output.py:526 +#: output.py:537 #, python-format msgid "Arch : %s" msgstr "アーキテクチャ: %s" -#: output.py:528 +#: output.py:539 #, python-format msgid "Epoch : %s" msgstr "エポック : %s" -#: output.py:529 +#: output.py:540 #, python-format msgid "Version : %s" msgstr "バージョン : %s" -#: output.py:530 +#: output.py:541 #, python-format msgid "Release : %s" msgstr "リリース : %s" -#: output.py:531 +#: output.py:542 #, python-format msgid "Size : %s" msgstr "容量 : %s" -#: output.py:532 +#: output.py:543 #, python-format msgid "Repo : %s" msgstr "リポジトリー : %s" -#: output.py:534 +#: output.py:545 +#, python-format +msgid "From repo : %s" +msgstr "" + +#: output.py:547 #, python-format msgid "Committer : %s" msgstr "コミット者 : %s" -#: output.py:535 +#: output.py:548 #, python-format msgid "Committime : %s" msgstr "コミット日時 : %s" -#: output.py:536 +#: output.py:549 #, python-format msgid "Buildtime : %s" msgstr "ビルド日時 : %s" -#: output.py:538 +#: output.py:551 #, python-format msgid "Installtime: %s" msgstr "インストール日時 : %s " -#: output.py:539 +#: output.py:552 msgid "Summary : " msgstr "要約 : " -#: output.py:541 +#: output.py:554 #, python-format msgid "URL : %s" msgstr "URL : %s" -#: output.py:542 +#: output.py:555 #, python-format msgid "License : %s" msgstr "ライセンス : %s" -#: output.py:543 +#: output.py:556 msgid "Description: " msgstr "説明 : " -#: output.py:611 +#: output.py:624 msgid "y" msgstr "y" -#: output.py:611 +#: output.py:624 msgid "yes" msgstr "はい" -#: output.py:612 +#: output.py:625 msgid "n" msgstr "n" -#: output.py:612 +#: output.py:625 msgid "no" msgstr "いいえ" # REMEMBER to Translate [Y/N] to the current locale -#: output.py:616 +#: output.py:629 msgid "Is this ok [y/N]: " msgstr "これでいいですか? [y/N]" -#: output.py:704 +#: output.py:720 #, python-format msgid "" "\n" @@ -609,264 +640,313 @@ msgstr "" "\n" "グループ: %s" -#: output.py:708 +#: output.py:724 #, python-format msgid " Group-Id: %s" msgstr " グループ ID: %s" -#: output.py:713 +#: output.py:729 #, python-format msgid " Description: %s" msgstr " 説明: %s" -#: output.py:715 +#: output.py:731 msgid " Mandatory Packages:" msgstr " 強制的なパッケージ:" -#: output.py:716 +#: output.py:732 msgid " Default Packages:" msgstr " 標準パッケージ:" -#: output.py:717 +#: output.py:733 msgid " Optional Packages:" msgstr " オプションパッケージ:" -#: output.py:718 +#: output.py:734 msgid " Conditional Packages:" msgstr " 条件付パッケージ:" -#: output.py:738 +#: output.py:754 #, python-format msgid "package: %s" msgstr "パッケージ : %s" -#: output.py:740 +#: output.py:756 msgid " No dependencies for this package" msgstr " このパッケージの依存はありません" -#: output.py:745 +#: output.py:761 #, python-format msgid " dependency: %s" msgstr " 依存性 : %s" -#: output.py:747 +#: output.py:763 msgid " Unsatisfied dependency" msgstr " 満たされていない依存性" -#: output.py:819 +#: output.py:835 #, python-format msgid "Repo : %s" msgstr "リポジトリー : %s" -#: output.py:820 +#: output.py:836 msgid "Matched from:" msgstr "" -#: output.py:828 +#: output.py:845 msgid "Description : " msgstr "説明 : " -#: output.py:831 +#: output.py:848 #, python-format msgid "URL : %s" msgstr "URL : %s" -#: output.py:834 +#: output.py:851 #, python-format msgid "License : %s" msgstr "ライセンス : %s" -#: output.py:837 +#: output.py:854 #, python-format msgid "Filename : %s" msgstr "リリース : %s" -#: output.py:841 +#: output.py:858 msgid "Other : " msgstr "その他 : " -#: output.py:874 +#: output.py:891 msgid "There was an error calculating total download size" msgstr "総ダウンロード容量の計算中にエラーです" -#: output.py:879 +#: output.py:896 #, python-format msgid "Total size: %s" msgstr "合計容量: %s" -#: output.py:882 +#: output.py:899 #, python-format msgid "Total download size: %s" msgstr "総ダウンロード容量: %s" -#: output.py:924 +#: output.py:940 +msgid "Reinstalling" +msgstr "再インストールをしています" + +#: output.py:941 +msgid "Downgrading" +msgstr "ダウングレードをしています" + +#: output.py:942 msgid "Installing for dependencies" -msgstr "依存性関連でのインストールをします" +msgstr "依存性関連でのインストールをしています" -#: output.py:925 +#: output.py:943 msgid "Updating for dependencies" -msgstr "依存性関連での更新をします" +msgstr "依存性関連での更新をしています" -#: output.py:926 +#: output.py:944 msgid "Removing for dependencies" msgstr "依存性関連での削除をします" -#: output.py:933 output.py:1031 +#: output.py:951 output.py:1063 msgid "Skipped (dependency problems)" msgstr "飛ばしました (依存性の問題)" -#: output.py:954 +#: output.py:974 msgid "Package" msgstr "" -#: output.py:954 +#: output.py:974 msgid "Arch" msgstr "" -#: output.py:955 +#: output.py:975 msgid "Version" msgstr "" -#: output.py:955 +#: output.py:975 msgid "Repository" msgstr "" -#: output.py:956 +#: output.py:976 msgid "Size" msgstr "" -#: output.py:968 +#: output.py:988 #, python-format msgid "" " replacing %s%s%s.%s %s\n" "\n" -msgstr " 置き換えています %s%s%s.%s %s\n\n" +msgstr "" +" 置き換えています %s%s%s.%s %s\n" +"\n" -#: output.py:977 +#: output.py:997 #, 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 +#: output.py:1004 +#, python-format +msgid "" +"Install %5.5s Package(s)\n" +"Upgrade %5.5s Package(s)\n" +msgstr "" + +#: output.py:1013 +#, python-format +msgid "" +"Remove %5.5s Package(s)\n" +"Reinstall %5.5s Package(s)\n" +"Downgrade %5.5s Package(s)\n" +msgstr "" + +#: output.py:1057 msgid "Removed" msgstr "削除しました" -#: output.py:1026 +#: output.py:1058 msgid "Dependency Removed" msgstr "依存性の削除をしました" -#: output.py:1028 +#: output.py:1060 msgid "Dependency Installed" msgstr "依存性関連をインストールしました" -#: output.py:1030 +#: output.py:1062 msgid "Dependency Updated" msgstr "依存性を更新しました" -#: output.py:1032 +#: output.py:1064 msgid "Replaced" msgstr "置換しました" -#: output.py:1033 +#: output.py:1065 msgid "Failed" msgstr "失敗しました" -#: output.py:1099 +#: output.py:1131 msgid "two" msgstr "" -#: output.py:1106 +#: output.py:1142 #, python-format msgid "" "\n" " Current download cancelled, %sinterrupt (ctrl-c) again%s within %s%s%s " -"seconds to exit.\n" +"seconds\n" +"to exit.\n" msgstr "" -#: output.py:1116 +#: output.py:1153 msgid "user interrupt" msgstr "ユーザーの割り込み" -#: output.py:1132 +#: output.py:1171 msgid "Total" msgstr "合計" -#: output.py:1146 +#: output.py:1186 msgid "installed" msgstr "インストール" -#: output.py:1147 +#: output.py:1187 msgid "updated" msgstr "更新" -#: output.py:1148 +#: output.py:1188 msgid "obsoleted" msgstr "不要" -#: output.py:1149 +#: output.py:1189 msgid "erased" msgstr "削除" -#: output.py:1153 +#: output.py:1193 #, python-format msgid "---> Package %s.%s %s:%s-%s set to be %s" msgstr "---> パッケージ %s.%s %s:%s-%s を%sに設定しました" -#: output.py:1160 +#: output.py:1200 msgid "--> Running transaction check" msgstr "--> トランザクションの確認を実行しています" -#: output.py:1165 +#: output.py:1205 msgid "--> Restarting Dependency Resolution with new changes." msgstr "--> 新しい変更と依存性の解決を再開しています。" -#: output.py:1170 +#: output.py:1210 msgid "--> Finished Dependency Resolution" msgstr "--> 依存性解決を終了しました" -#: output.py:1175 +#: output.py:1215 output.py:1220 #, python-format msgid "--> Processing Dependency: %s for package: %s" msgstr "--> 依存性の処理をしています: %s のパッケージ: %s" -#: output.py:1180 +#: output.py:1224 #, python-format msgid "--> Unresolved Dependency: %s" msgstr "--> 未解決の依存性: %s" -#: output.py:1186 +#: output.py:1230 output.py:1235 #, python-format msgid "--> Processing Conflict: %s conflicts %s" msgstr "--> 衝突を処理しています: %s は %s と衝突しています" -#: output.py:1189 +#: output.py:1239 msgid "--> Populating transaction set with selected packages. Please wait." msgstr "" -#: output.py:1193 +#: output.py:1243 #, python-format msgid "---> Downloading header for %s to pack into transaction set." msgstr "" "---> トランザクションセットに束ねるために %s のヘッダーをダウンロードしていま" "す" -#: yumcommands.py:41 +#: utils.py:132 yummain.py:42 +msgid "" +"\n" +"\n" +"Exiting on user cancel" +msgstr "" +"\n" +"\n" +"ユーザーの取り消しで終了しています" + +#: utils.py:138 yummain.py:48 +msgid "" +"\n" +"\n" +"Exiting on Broken Pipe" +msgstr "" +"\n" +"\n" +"パイプが壊れたため終了しています" + +#: utils.py:140 yummain.py:50 +#, python-format +msgid "" +"\n" +"\n" +"%s" +msgstr "\n\n%s" + +#: utils.py:179 yummain.py:273 +msgid "Complete!" +msgstr "完了しました!" + +#: yumcommands.py:40 msgid "You need to be root to perform this command." msgstr "このコマンドを実行するには root である必要があります。" -#: yumcommands.py:48 +#: yumcommands.py:47 msgid "" "\n" "You have enabled checking of packages via GPG keys. This is a good thing. \n" @@ -884,156 +964,156 @@ msgid "" "For more information contact your distribution or package provider.\n" msgstr "" -#: yumcommands.py:68 +#: yumcommands.py:67 #, python-format msgid "Error: Need to pass a list of pkgs to %s" msgstr "エラー: パッケージの一覧を %s に渡す必要があります" -#: yumcommands.py:74 +#: yumcommands.py:73 msgid "Error: Need an item to match" msgstr "エラー: 一致する項目が必要です" -#: yumcommands.py:80 +#: yumcommands.py:79 msgid "Error: Need a group or list of groups" msgstr "エラー: グループ化グループの一覧が必要です" -#: yumcommands.py:89 +#: yumcommands.py:88 #, python-format msgid "Error: clean requires an option: %s" msgstr "エラー: clean は引数をひとつ要求します: %s" -#: yumcommands.py:94 +#: yumcommands.py:93 #, python-format msgid "Error: invalid clean argument: %r" msgstr "エラー: 不正な clean の引数です: %r" -#: yumcommands.py:107 +#: yumcommands.py:106 msgid "No argument to shell" msgstr "シェルへの引数がありません" -#: yumcommands.py:110 +#: yumcommands.py:108 #, python-format msgid "Filename passed to shell: %s" msgstr "シェルに渡すファイル名: %s" -#: yumcommands.py:114 +#: yumcommands.py:112 #, python-format msgid "File %s given as argument to shell does not exist." msgstr "シェルへの引数として渡したファイル %s は存在しません。" -#: yumcommands.py:120 +#: yumcommands.py:118 msgid "Error: more than one file given as argument to shell." msgstr "エラー: シェルへの引数としてひとつ以上のファイルを渡しました。" -#: yumcommands.py:169 +#: yumcommands.py:167 msgid "PACKAGE..." msgstr "パッケージ..." -#: yumcommands.py:172 +#: yumcommands.py:170 msgid "Install a package or packages on your system" msgstr "システムにパッケージをインストールする" -#: yumcommands.py:180 +#: yumcommands.py:178 msgid "Setting up Install Process" msgstr "インストール処理の設定をしています" -#: yumcommands.py:191 +#: yumcommands.py:189 msgid "[PACKAGE...]" msgstr "[パッケージ...]" -#: yumcommands.py:194 +#: yumcommands.py:192 msgid "Update a package or packages on your system" msgstr "システムのパッケージを更新する" -#: yumcommands.py:201 +#: yumcommands.py:199 msgid "Setting up Update Process" msgstr "更新処理の設定をしています" -#: yumcommands.py:243 +#: yumcommands.py:244 msgid "Display details about a package or group of packages" msgstr "パッケージもしくはパッケージのグループについての詳細を表示する" -#: yumcommands.py:292 +#: yumcommands.py:293 msgid "Installed Packages" msgstr "インストール済みパッケージ" -#: yumcommands.py:300 +#: yumcommands.py:301 msgid "Available Packages" msgstr "利用可能なパッケージ" -#: yumcommands.py:304 +#: yumcommands.py:305 msgid "Extra Packages" msgstr "外部パッケージ" -#: yumcommands.py:308 +#: yumcommands.py:309 msgid "Updated Packages" msgstr "更新したパッケージ" -#: yumcommands.py:316 yumcommands.py:323 yumcommands.py:600 +#: yumcommands.py:317 yumcommands.py:324 yumcommands.py:600 msgid "Obsoleting Packages" msgstr "パッケージを不要にしています" -#: yumcommands.py:325 +#: yumcommands.py:326 msgid "Recently Added Packages" msgstr "最近追加したパッケージ" -#: yumcommands.py:332 +#: yumcommands.py:333 msgid "No matching Packages to list" msgstr "表示するパッケージはありません" -#: yumcommands.py:346 +#: yumcommands.py:347 msgid "List a package or groups of packages" msgstr "パッケージグループの一覧を表示する" -#: yumcommands.py:358 +#: yumcommands.py:359 msgid "Remove a package or packages from your system" msgstr "システムから削除するパッケージ" -#: yumcommands.py:365 +#: yumcommands.py:366 msgid "Setting up Remove Process" msgstr "削除処理の設定をしています" -#: yumcommands.py:379 +#: yumcommands.py:380 msgid "Setting up Group Process" msgstr "グループ処理の設定をしています" -#: yumcommands.py:385 +#: yumcommands.py:386 msgid "No Groups on which to run command" msgstr "" -#: yumcommands.py:398 +#: yumcommands.py:399 msgid "List available package groups" msgstr "利用できるパッケージグループの一覧" -#: yumcommands.py:415 +#: yumcommands.py:416 msgid "Install the packages in a group on your system" msgstr "システムのグループのパッケージをインストールする" -#: yumcommands.py:437 +#: yumcommands.py:438 msgid "Remove the packages in a group from your system" msgstr "システムからグループのパッケージを削除する" -#: yumcommands.py:464 +#: yumcommands.py:465 msgid "Display details about a package group" msgstr "パッケージグループについての詳細を表示する" -#: yumcommands.py:488 +#: yumcommands.py:489 msgid "Generate the metadata cache" msgstr "メタデータキャッシュを生成する" -#: yumcommands.py:494 +#: yumcommands.py:495 msgid "Making cache files for all metadata files." msgstr "すべて飲めたデータファイルのキャッシュを作成します。" -#: yumcommands.py:495 +#: yumcommands.py:496 msgid "This may take a while depending on the speed of this computer" msgstr "" -#: yumcommands.py:516 +#: yumcommands.py:517 msgid "Metadata Cache Created" msgstr "メタデータのキャッシュを作成しました" -#: yumcommands.py:530 +#: yumcommands.py:531 msgid "Remove cached data" msgstr "キャッシュデータを削除する" @@ -1106,15 +1186,15 @@ msgid "disabled" msgstr "無効" #: yumcommands.py:827 -msgid "Repo-id : " -msgstr "リポジトリーID : " +msgid "Repo-id : " +msgstr "リポジトリーID : " #: yumcommands.py:828 -msgid "Repo-name : " -msgstr "リポジトリー名 : " +msgid "Repo-name : " +msgstr "リポジトリー名 : " #: yumcommands.py:829 -msgid "Repo-status : " +msgid "Repo-status : " msgstr "リポジトリーの状態: " #: yumcommands.py:831 @@ -1122,67 +1202,94 @@ msgid "Repo-revision: " msgstr "リポジトリーのリビジョン: " #: yumcommands.py:835 -msgid "Repo-tags : " -msgstr "リポジトリータグ : " +msgid "Repo-tags : " +msgstr "リポジトリータグ : " #: yumcommands.py:841 msgid "Repo-distro-tags: " msgstr "" #: yumcommands.py:846 -msgid "Repo-updated: " +msgid "Repo-updated : " msgstr "" #: yumcommands.py:848 -msgid "Repo-pkgs : " +msgid "Repo-pkgs : " msgstr "" #: yumcommands.py:849 -msgid "Repo-size : " -msgstr "リポジトリー容量 : %s" +msgid "Repo-size : " +msgstr "リポジトリー容量 : " #: yumcommands.py:856 -msgid "Repo-baseurl: " -msgstr "" +msgid "Repo-baseurl : " +msgstr "リポジトリー基点 URL: " -#: yumcommands.py:860 +#: yumcommands.py:864 msgid "Repo-metalink: " -msgstr "" - -#: yumcommands.py:863 -msgid "Repo-mirrors: " -msgstr "" +msgstr "リポジトリー メタリンク: " -#: yumcommands.py:867 -msgid "Repo-exclude: " -msgstr "" +#: yumcommands.py:868 +msgid " Updated : " +msgstr "更新しました : " #: yumcommands.py:871 -msgid "Repo-include: " +msgid "Repo-mirrors : " +msgstr "リポジトリー ミラー: " + +#: yumcommands.py:875 yummain.py:133 +msgid "Unknown" +msgstr "不明" + +#: yumcommands.py:881 +#, python-format +msgid "Never (last: %s)" msgstr "" -#: yumcommands.py:881 yumcommands.py:907 +#: yumcommands.py:883 +#, python-format +msgid "Instant (last: %s)" +msgstr "インスタント (最終: %s)" + +#: yumcommands.py:886 +#, python-format +msgid "%s second(s) (last: %s)" +msgstr "%s 秒 (最終: %s)" + +#: yumcommands.py:888 +msgid "Repo-expire : " +msgstr "リポジトリー期限 : " + +#: yumcommands.py:891 +msgid "Repo-exclude : " +msgstr "リポジトリー除外 : " + +#: yumcommands.py:895 +msgid "Repo-include : " +msgstr "リポジトリー内包 : " + +#: yumcommands.py:905 yumcommands.py:931 msgid "repo id" -msgstr "" +msgstr "リポジトリー ID" -#: yumcommands.py:895 yumcommands.py:896 yumcommands.py:910 +#: yumcommands.py:919 yumcommands.py:920 yumcommands.py:934 msgid "status" -msgstr "" +msgstr "状態" -#: yumcommands.py:908 +#: yumcommands.py:932 msgid "repo name" -msgstr "" +msgstr "リポジトリー名" -#: yumcommands.py:934 +#: yumcommands.py:958 msgid "Display a helpful usage message" msgstr "役立つ使い方のメッセージを表示する" -#: yumcommands.py:968 +#: yumcommands.py:992 #, python-format msgid "No help available for %s" msgstr "%s のヘルプは利用できません" -#: yumcommands.py:973 +#: yumcommands.py:997 msgid "" "\n" "\n" @@ -1192,7 +1299,7 @@ msgstr "" "\n" "別名: " -#: yumcommands.py:975 +#: yumcommands.py:999 msgid "" "\n" "\n" @@ -1202,108 +1309,104 @@ msgstr "" "\n" "別名: " -#: yumcommands.py:1003 +#: yumcommands.py:1027 msgid "Setting up Reinstall Process" msgstr "再インストール処理の設定をしています" -#: yumcommands.py:1017 +#: yumcommands.py:1035 msgid "reinstall a package" msgstr "パッケージの再インストール" -#: yummain.py:42 -msgid "" -"\n" -"\n" -"Exiting on user cancel" -msgstr "" -"\n" -"\n" -"ユーザーの取り消しで終了しています" +#: yumcommands.py:1053 +msgid "Setting up Downgrade Process" +msgstr "ダウングレード処理の設定をしています" -#: yummain.py:48 -msgid "" -"\n" -"\n" -"Exiting on Broken Pipe" +#: yumcommands.py:1060 +msgid "downgrade a package" +msgstr "パッケージのダウングレード" + +#: yumcommands.py:1074 +msgid "Display a version for the machine and/or available repos." msgstr "" -"\n" -"\n" -"パイプが壊れたため終了しています" -#: yummain.py:126 +#: yumcommands.py:1101 +msgid "Installed:" +msgstr "インストール済み:" + +#: yumcommands.py:1110 +msgid "Available:" +msgstr "利用可能:" + +#: yummain.py:128 msgid "Running" msgstr "実行中" -#: yummain.py:127 +#: yummain.py:129 msgid "Sleeping" msgstr "スリープ中" -#: yummain.py:128 +#: yummain.py:130 msgid "Uninteruptable" -msgstr "" +msgstr "割り込み不可" -#: yummain.py:129 +#: yummain.py:131 msgid "Zombie" msgstr "ゾンビ" -#: yummain.py:130 +#: yummain.py:132 msgid "Traced/Stopped" msgstr "" -#: yummain.py:131 -msgid "Unknown" -msgstr "不明" - -#: yummain.py:135 +#: yummain.py:137 msgid " The other application is: PackageKit" msgstr " 他のアプリケーション: PackageKit" -#: yummain.py:137 +#: yummain.py:139 #, python-format msgid " The other application is: %s" msgstr " 他のアプリケーション: %s" -#: yummain.py:140 +#: yummain.py:142 #, python-format msgid " Memory : %5s RSS (%5sB VSZ)" msgstr " メモリー: %5s RSS (%5sB VSZ)" -#: yummain.py:144 +#: yummain.py:146 #, python-format msgid " Started: %s - %s ago" msgstr " 開始 : %s - %s 秒経過" -#: yummain.py:146 +#: yummain.py:148 #, python-format msgid " State : %s, pid: %d" msgstr " 状態 : %s、PID: %d" -#: yummain.py:171 +#: yummain.py:173 msgid "" "Another app is currently holding the yum lock; waiting for it to exit..." msgstr "" "別のアプリケーションが現在 yum のロックを持っています。終了するまで待っていま" "す..." -#: yummain.py:199 yummain.py:238 +#: yummain.py:201 yummain.py:240 #, python-format msgid "Error: %s" msgstr "エラー: %s" -#: yummain.py:209 yummain.py:250 +#: yummain.py:211 yummain.py:253 #, python-format msgid "Unknown Error(s): Exit Code: %d:" msgstr "不明なエラー: 終了コード: %d:" -#: yummain.py:216 +#: yummain.py:218 msgid "Resolving Dependencies" msgstr "依存性の解決をしています" -#: yummain.py:240 +#: yummain.py:242 msgid " You could try using --skip-broken to work around the problem" msgstr " 問題を回避するために --skip-broken を用いることができません" -#: yummain.py:241 +#: yummain.py:243 msgid "" " You could try running: package-cleanup --problems\n" " package-cleanup --dupes\n" @@ -1313,7 +1416,7 @@ msgstr "" " package-cleanup --dupes\n" " rpm -Va --nofiles --nodigest" -#: yummain.py:256 +#: yummain.py:259 msgid "" "\n" "Dependencies Resolved" @@ -1321,321 +1424,328 @@ msgstr "" "\n" "依存性を解決しました" -#: yummain.py:270 -msgid "Complete!" -msgstr "完了しました!" - -#: yummain.py:325 +#: yummain.py:326 msgid "" "\n" "\n" "Exiting on user cancel." -msgstr "\n\n\nユーザーによる取り消しで終了しています。" +msgstr "" +"\n" +"\n" +"\n" +"ユーザーによる取り消しで終了しています。" -#: yum/depsolve.py:84 +#: yum/depsolve.py:83 msgid "doTsSetup() will go away in a future version of Yum.\n" msgstr "doTsSetup() は Yum の将来のバージョンでなくなります。\n" -#: yum/depsolve.py:99 +#: yum/depsolve.py:98 msgid "Setting up TransactionSets before config class is up" msgstr "構成クラスが終わる前にトランザクションセットを設定しています" -#: yum/depsolve.py:150 +#: yum/depsolve.py:149 #, python-format msgid "Invalid tsflag in config file: %s" msgstr "構成ファイルの tsflag が不正です: %s" -#: yum/depsolve.py:161 +#: yum/depsolve.py:160 #, python-format msgid "Searching pkgSack for dep: %s" msgstr "依存性の pkgSack を検索しています: %s" -#: yum/depsolve.py:184 +#: yum/depsolve.py:183 #, python-format msgid "Potential match for %s from %s" msgstr "" -#: yum/depsolve.py:192 +#: yum/depsolve.py:191 #, python-format msgid "Matched %s to require for %s" -msgstr "" +msgstr "%s は %s の要求に一致しました" -#: yum/depsolve.py:233 +#: yum/depsolve.py:232 #, python-format msgid "Member: %s" msgstr "メンバー: %s" -#: yum/depsolve.py:247 yum/depsolve.py:738 +#: yum/depsolve.py:246 yum/depsolve.py:756 #, python-format msgid "%s converted to install" msgstr "%s をインストールに変更しました" -#: yum/depsolve.py:254 +#: yum/depsolve.py:253 #, python-format msgid "Adding Package %s in mode %s" msgstr "モード %s にパッケージ %s を追加しています" -#: yum/depsolve.py:264 +#: yum/depsolve.py:263 #, python-format msgid "Removing Package %s" msgstr "パッケージ %s の削除をしています" -#: yum/depsolve.py:275 +#: yum/depsolve.py:285 #, python-format msgid "%s requires: %s" msgstr "%s の要求: %s" -#: yum/depsolve.py:333 +#: yum/depsolve.py:343 msgid "Needed Require has already been looked up, cheating" msgstr "必要な要求は既に調べましたが不正をしています" -#: yum/depsolve.py:343 +#: yum/depsolve.py:353 #, python-format msgid "Needed Require is not a package name. Looking up: %s" msgstr "必要な要求はパッケージ名ではありません。調べています: %s" -#: yum/depsolve.py:350 +#: yum/depsolve.py:360 #, python-format msgid "Potential Provider: %s" msgstr "" -#: yum/depsolve.py:373 +#: yum/depsolve.py:383 #, python-format msgid "Mode is %s for provider of %s: %s" -msgstr "" +msgstr "%s のモードは %s が提供しています: %s" -#: yum/depsolve.py:377 +#: yum/depsolve.py:387 #, python-format msgid "Mode for pkg providing %s: %s" -msgstr "" +msgstr "%s の提供しているパッケージのモード: %s" -#: yum/depsolve.py:381 +#: yum/depsolve.py:391 #, python-format msgid "TSINFO: %s package requiring %s marked as erase" msgstr "" -#: yum/depsolve.py:394 +#: yum/depsolve.py:404 #, python-format msgid "TSINFO: Obsoleting %s with %s to resolve dep." msgstr "" -#: yum/depsolve.py:397 +#: yum/depsolve.py:407 #, python-format msgid "TSINFO: Updating %s to resolve dep." msgstr "" -#: yum/depsolve.py:405 +#: yum/depsolve.py:415 #, python-format msgid "Cannot find an update path for dep for: %s" -msgstr "" +msgstr "依存する更新パスを見つけられません: %s" -#: yum/depsolve.py:415 +#: yum/depsolve.py:425 #, python-format msgid "Unresolvable requirement %s for %s" msgstr "要求された %s は %s で解決しませんでした" -#: yum/depsolve.py:438 +#: yum/depsolve.py:448 #, python-format msgid "Quick matched %s to require for %s" msgstr "" -#: yum/depsolve.py:480 +#: yum/depsolve.py:490 #, python-format msgid "%s is in providing packages but it is already installed, removing." msgstr "" "%s を提供するパッケージはすでにインストールされています。削除しています。" -#: yum/depsolve.py:496 +#: yum/depsolve.py:506 #, python-format msgid "Potential resolving package %s has newer instance in ts." msgstr "" -#: yum/depsolve.py:507 +#: yum/depsolve.py:517 #, python-format msgid "Potential resolving package %s has newer instance installed." msgstr "" -#: yum/depsolve.py:515 yum/depsolve.py:564 +#: yum/depsolve.py:525 yum/depsolve.py:571 #, python-format msgid "Missing Dependency: %s is needed by package %s" msgstr "依存性の欠落: %s はパッケージ %s が必要としています" -#: yum/depsolve.py:528 +#: yum/depsolve.py:538 #, python-format msgid "%s already in ts, skipping this one" -msgstr "" +msgstr "%s はすでに ts にあります。これを飛ばします" -#: yum/depsolve.py:574 +#: yum/depsolve.py:581 #, python-format msgid "TSINFO: Marking %s as update for %s" msgstr "TSINFO: %s を更新として %s で設定しています" -#: yum/depsolve.py:582 +#: yum/depsolve.py:589 #, python-format msgid "TSINFO: Marking %s as install for %s" msgstr "TSINFO: %s をインストールとして %s で設定しています" -#: yum/depsolve.py:675 yum/depsolve.py:756 +#: yum/depsolve.py:692 yum/depsolve.py:774 msgid "Success - empty transaction" msgstr "成功 - 空のトランザクション" -#: yum/depsolve.py:713 yum/depsolve.py:728 +#: yum/depsolve.py:731 yum/depsolve.py:746 msgid "Restarting Loop" msgstr "ループを再開しています" -#: yum/depsolve.py:744 +#: yum/depsolve.py:762 msgid "Dependency Process ending" msgstr "依存性の処理を終了しています" -#: yum/depsolve.py:750 +#: yum/depsolve.py:768 #, python-format msgid "%s from %s has depsolving problems" msgstr "%s(%s) は依存性に問題があります" -#: yum/depsolve.py:757 +#: yum/depsolve.py:775 msgid "Success - deps resolved" msgstr "成功 - 依存性を解決しました" -#: yum/depsolve.py:771 +#: yum/depsolve.py:789 #, python-format msgid "Checking deps for %s" msgstr "%s の依存性を確認しています" -#: yum/depsolve.py:854 +#: yum/depsolve.py:872 #, python-format msgid "looking for %s as a requirement of %s" -msgstr "" +msgstr "%s の要求として %s を検索しています" -#: yum/depsolve.py:996 +#: yum/depsolve.py:1014 #, python-format msgid "Running compare_providers() for %s" msgstr "%s の compare_providers() を実行しています" -#: yum/depsolve.py:1024 yum/depsolve.py:1030 +#: yum/depsolve.py:1048 yum/depsolve.py:1054 #, python-format msgid "better arch in po %s" msgstr "" -#: yum/depsolve.py:1091 +#: yum/depsolve.py:1149 #, python-format msgid "%s obsoletes %s" msgstr "" -#: yum/depsolve.py:1107 +#: yum/depsolve.py:1161 #, python-format msgid "" "archdist compared %s to %s on %s\n" " Winner: %s" msgstr "" -#: yum/depsolve.py:1114 +#: yum/depsolve.py:1168 #, python-format msgid "common sourcerpm %s and %s" msgstr "%s と %s の共通ソース RPM(SRPM)" -#: yum/depsolve.py:1120 +#: yum/depsolve.py:1174 #, python-format msgid "common prefix of %s between %s and %s" msgstr "%s から %s と %s の共通接頭辞" -#: yum/depsolve.py:1128 +#: yum/depsolve.py:1182 #, python-format msgid "Best Order: %s" msgstr "最適の順序: %s" -#: yum/__init__.py:176 +#: yum/__init__.py:180 msgid "doConfigSetup() will go away in a future version of Yum.\n" msgstr "doConfigSetup() は Yum の将来のバージョンでなくなります。\n" -#: yum/__init__.py:386 +#: yum/__init__.py:401 #, python-format msgid "Repository %r is missing name in configuration, using id" msgstr "リポジトリー %r は構成中に名前がありませんので ID を使います" -#: yum/__init__.py:424 +#: yum/__init__.py:439 msgid "plugins already initialised" msgstr "プラグインは既に初期化されています" -#: yum/__init__.py:431 +#: yum/__init__.py:446 msgid "doRpmDBSetup() will go away in a future version of Yum.\n" msgstr "dbRpmDBSetup() は Yum の将来のバージョンでなくなります。\n" -#: yum/__init__.py:441 +#: yum/__init__.py:457 msgid "Reading Local RPMDB" msgstr "ローカルの RPMDB を読み込んでいます" -#: yum/__init__.py:459 +#: yum/__init__.py:478 msgid "doRepoSetup() will go away in a future version of Yum.\n" msgstr "doRepoSetup() は Yum の将来のバージョンでなくなります。\n" -#: yum/__init__.py:479 +#: yum/__init__.py:498 msgid "doSackSetup() will go away in a future version of Yum.\n" msgstr "doSackSetup() は Yum の将来のバージョンでなくなります。\n" -#: yum/__init__.py:496 +#: yum/__init__.py:528 msgid "Setting up Package Sacks" msgstr "" -#: yum/__init__.py:539 +#: yum/__init__.py:573 #, python-format msgid "repo object for repo %s lacks a _resetSack method\n" msgstr "" -#: yum/__init__.py:540 +#: yum/__init__.py:574 msgid "therefore this repo cannot be reset.\n" -msgstr "" +msgstr "したがって、このリポジトリーはリセットできません。\n" -#: yum/__init__.py:545 +#: yum/__init__.py:579 msgid "doUpdateSetup() will go away in a future version of Yum.\n" msgstr "doUpdateSetup() は Yum の将来のバージョンでなくなります。\n" -#: yum/__init__.py:557 +#: yum/__init__.py:591 msgid "Building updates object" msgstr "オブジェクトの更新を構築しています" -#: yum/__init__.py:588 +#: yum/__init__.py:626 msgid "doGroupSetup() will go away in a future version of Yum.\n" msgstr "doGroupSetup() は Yum の将来のバージョンでなくなります。\n" -#: yum/__init__.py:612 +#: yum/__init__.py:651 msgid "Getting group metadata" msgstr "グループメタデータを取得しています" -#: yum/__init__.py:637 +#: yum/__init__.py:677 #, python-format msgid "Adding group file from repository: %s" msgstr "リポジトリーからグループファイルを追加しています: %s" -#: yum/__init__.py:642 +#: yum/__init__.py:686 #, python-format msgid "Failed to add groups file for repository: %s - %s" msgstr "リポジトリーのグループファイルに追加できませんでした: %s - %s" -#: yum/__init__.py:648 +#: yum/__init__.py:692 msgid "No Groups Available in any repository" msgstr "いずれかのリポジトリーに利用できるグループはありません" -#: yum/__init__.py:698 +#: yum/__init__.py:742 msgid "Importing additional filelist information" msgstr "追加ファイル一覧情報にインポートしています" -#: yum/__init__.py:706 +#: yum/__init__.py:756 +#, python-format +msgid "The program %s%s%s is found in the yum-utils package." +msgstr "プログラム %s%s%s を yum-utils パッケージ内で発見しました。" + +#: yum/__init__.py:764 msgid "" "There are unfinished transactions remaining. You might consider running yum-" "complete-transaction first to finish them." -msgstr "終了していない残作業があります。それらを終了するためにはじめに yum-complete-transaction の実行を検討するかもしれません。" +msgstr "" +"終了していない残作業があります。それらを終了するためにはじめに yum-complete-" +"transaction の実行を検討するかもしれません。" -#: yum/__init__.py:772 +#: yum/__init__.py:832 #, python-format msgid "Skip-broken round %i" msgstr "" -#: yum/__init__.py:824 +#: yum/__init__.py:885 #, python-format msgid "Skip-broken took %i rounds " msgstr "" -#: yum/__init__.py:825 +#: yum/__init__.py:886 msgid "" "\n" "Packages skipped because of dependency problems:" @@ -1643,87 +1753,73 @@ msgstr "" "\n" "パッケージは依存関係に問題があるため、飛ばします:" -#: yum/__init__.py:829 +#: yum/__init__.py:890 #, python-format msgid " %s from %s" msgstr "" -#: yum/__init__.py:968 +#: yum/__init__.py:1043 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 "" +msgid "Failed to remove transaction file %s" +msgstr "トランザクションファイル %s の削除に失敗しました" -#: yum/__init__.py:1091 +#: yum/__init__.py:1087 #, python-format -msgid "Keeping included package %s" +msgid "%s was supposed to be installed but is not!" msgstr "" -#: yum/__init__.py:1097 +#: yum/__init__.py:1126 #, python-format -msgid "Removing unmatched package %s" +msgid "%s was supposed to be removed but is not!" msgstr "" -#: yum/__init__.py:1100 -msgid "Finished" -msgstr "完了しました" - -#: yum/__init__.py:1130 +#: yum/__init__.py:1241 #, python-format msgid "Unable to check if PID %s is active" -msgstr "" +msgstr "PID %s がアクティブかどうかの確認に失敗しました" -#: yum/__init__.py:1134 +#: yum/__init__.py:1245 #, python-format msgid "Existing lock %s: another copy is running as pid %s." msgstr "ロックファイル %s が存在します: PID %s として別に実行されています。" -#: yum/__init__.py:1204 +#: yum/__init__.py:1280 +#, python-format +msgid "Could not create lock at %s: %s " +msgstr "%s でロックを作成できません: %s" + +#: yum/__init__.py:1325 msgid "Package does not match intended download" msgstr "パッケージは意図したダウンロードと一致しません" -#: yum/__init__.py:1219 +#: yum/__init__.py:1340 msgid "Could not perform checksum" msgstr "チェックサムの実行ができません" -#: yum/__init__.py:1222 +#: yum/__init__.py:1343 msgid "Package does not match checksum" msgstr "パッケージのチェックサムが一致しません" -#: yum/__init__.py:1265 +#: yum/__init__.py:1385 #, python-format msgid "package fails checksum but caching is enabled for %s" -msgstr "%s のためにキャッシュを有効にしていますが、パッケージのチェックサム演算に失敗します。" +msgstr "" +"%s のためにキャッシュを有効にしていますが、パッケージのチェックサム演算に失敗" +"します。" -#: yum/__init__.py:1268 yum/__init__.py:1297 +#: yum/__init__.py:1388 yum/__init__.py:1417 #, python-format msgid "using local copy of %s" msgstr "%s のローカルコピーを使う" -#: yum/__init__.py:1309 +#: yum/__init__.py:1429 #, python-format msgid "" "Insufficient space in download directory %s\n" @@ -1734,72 +1830,74 @@ msgstr "" " * 空き容量 %s\n" " * 必要容量 %s" -#: yum/__init__.py:1356 +#: yum/__init__.py:1478 msgid "Header is not complete." msgstr "ヘッダーが完了していません。" -#: yum/__init__.py:1393 +#: yum/__init__.py:1515 #, python-format msgid "" "Header not in local cache and caching-only mode enabled. Cannot download %s" -msgstr "ヘッダーはキャッシュのみのモードが有効で、ローカルにありません。%s のダウンロードができません" +msgstr "" +"ヘッダーはキャッシュのみのモードが有効で、ローカルにありません。%s のダウン" +"ロードができません" -#: yum/__init__.py:1448 +#: yum/__init__.py:1570 #, python-format msgid "Public key for %s is not installed" msgstr "%s の公開鍵がインストールされていません" -#: yum/__init__.py:1452 +#: yum/__init__.py:1574 #, python-format msgid "Problem opening package %s" msgstr "パッケージ %s を開いている最中に問題です" -#: yum/__init__.py:1460 +#: yum/__init__.py:1582 #, python-format msgid "Public key for %s is not trusted" msgstr "%s の公開鍵が信頼されません" -#: yum/__init__.py:1464 +#: yum/__init__.py:1586 #, python-format msgid "Package %s is not signed" msgstr "パッケージ %s は署名されていません" -#: yum/__init__.py:1502 +#: yum/__init__.py:1624 #, python-format msgid "Cannot remove %s" msgstr "%s を削除できません" -#: yum/__init__.py:1505 +#: yum/__init__.py:1628 #, python-format msgid "%s removed" msgstr "%s を削除しました" -#: yum/__init__.py:1541 +#: yum/__init__.py:1664 #, python-format msgid "Cannot remove %s file %s" msgstr "%s のファイル %s を削除できませんでした" -#: yum/__init__.py:1544 +#: yum/__init__.py:1668 #, python-format msgid "%s file %s removed" msgstr "%s のファイル %s を削除しました" -#: yum/__init__.py:1546 +#: yum/__init__.py:1670 #, python-format msgid "%d %s files removed" msgstr "%d %sファイルを削除しました" -#: yum/__init__.py:1614 +#: yum/__init__.py:1739 #, python-format msgid "More than one identical match in sack for %s" msgstr "" -#: yum/__init__.py:1619 +#: yum/__init__.py:1745 #, python-format msgid "Nothing matches %s.%s %s:%s-%s from update" msgstr "更新から %s.%s %s:%s-%s に一致しません" -#: yum/__init__.py:1838 +#: yum/__init__.py:1978 msgid "" "searchPackages() will go away in a future version of " "Yum. Use searchGenerator() instead. \n" @@ -1807,172 +1905,185 @@ msgstr "" "searchPackages() は Yum の将来のバージョンでなくなりま" "す。 代わりに searchGenerator() を使います。\n" -#: yum/__init__.py:1876 +#: yum/__init__.py:2020 #, python-format msgid "Searching %d packages" msgstr "%d 個のパッケージを検索しています" -#: yum/__init__.py:1879 +#: yum/__init__.py:2024 #, python-format msgid "searching package %s" msgstr "パッケージ %s を検索しています" -#: yum/__init__.py:1890 +#: yum/__init__.py:2036 msgid "searching in file entries" msgstr "ファイルのエントリーから検索しています" -#: yum/__init__.py:1896 +#: yum/__init__.py:2043 msgid "searching in provides entries" msgstr "提供されたエントリーを検索しています" -#: yum/__init__.py:1929 +#: yum/__init__.py:2076 #, python-format msgid "Provides-match: %s" msgstr "" -#: yum/__init__.py:1978 +#: yum/__init__.py:2125 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 +#: yum/__init__.py:2156 yum/__init__.py:2175 yum/__init__.py:2206 +#: yum/__init__.py:2212 yum/__init__.py:2291 yum/__init__.py:2295 +#: yum/__init__.py:2605 #, python-format msgid "No Group named %s exists" msgstr "グループ名 %s が存在しません" -#: yum/__init__.py:2039 yum/__init__.py:2159 +#: yum/__init__.py:2187 yum/__init__.py:2308 #, python-format msgid "package %s was not marked in group %s" msgstr "パッケージ%s はグループ %s で設定されていません" -#: yum/__init__.py:2085 +#: yum/__init__.py:2234 #, python-format msgid "Adding package %s from group %s" msgstr "パッケージ %s をグループ %s から追加しています" -#: yum/__init__.py:2090 +#: yum/__init__.py:2238 #, python-format msgid "No package named %s available to be installed" msgstr "" -#: yum/__init__.py:2186 +#: yum/__init__.py:2335 #, python-format msgid "Package tuple %s could not be found in packagesack" msgstr "" -#: yum/__init__.py:2201 +#: yum/__init__.py:2349 msgid "" "getInstalledPackageObject() will go away, use self.rpmdb.searchPkgTuple().\n" msgstr "" -#: yum/__init__.py:2253 yum/__init__.py:2294 +#: yum/__init__.py:2405 yum/__init__.py:2455 msgid "Invalid version flag" msgstr "不正なバージョンフラグ" -#: yum/__init__.py:2268 yum/__init__.py:2272 +#: yum/__init__.py:2425 yum/__init__.py:2430 #, python-format msgid "No Package found for %s" msgstr "%s のパッケージが見つかりません" -#: yum/__init__.py:2449 +#: yum/__init__.py:2646 msgid "Package Object was not a package object instance" msgstr "" +"パッケージ オブジェクトはパッケージ オブジェクト インスタンスではありません" -#: yum/__init__.py:2453 +#: yum/__init__.py:2650 msgid "Nothing specified to install" msgstr "インストールへの指定がありません" -#: yum/__init__.py:2469 +#: yum/__init__.py:2666 yum/__init__.py:3430 #, 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 +#: yum/__init__.py:2672 yum/__init__.py:2979 yum/__init__.py:3146 +#: yum/__init__.py:3436 #, python-format msgid "No Match for argument: %s" msgstr "引数に一致しません: %s" -#: yum/__init__.py:2548 +#: yum/__init__.py:2748 #, python-format msgid "Package %s installed and not available" msgstr "パッケージ %s はインストール済みか利用できません" -#: yum/__init__.py:2551 +#: yum/__init__.py:2751 msgid "No package(s) available to install" msgstr "インストールに利用できるパッケージはありません" -#: yum/__init__.py:2564 +#: yum/__init__.py:2763 #, python-format msgid "Package: %s - already in transaction set" msgstr "パッケージ: %s - すでにトランザクション設定をしています" -#: yum/__init__.py:2580 +#: yum/__init__.py:2789 +#, python-format +msgid "Package %s is obsoleted by %s which is already installed" +msgstr "パッケージ %s は既にインストールされている %s で古くなっています" + +#: yum/__init__.py:2792 #, python-format msgid "Package %s is obsoleted by %s, trying to install %s instead" msgstr "" "パッケージ %s は %s に不要です。代わりに %s のインストールを試みています" -#: yum/__init__.py:2588 +#: yum/__init__.py:2800 #, python-format msgid "Package %s already installed and latest version" msgstr "パッケージ %s はインストール済みか最新バージョンです" -#: yum/__init__.py:2595 +#: yum/__init__.py:2814 #, python-format msgid "Package matching %s already installed. Checking for update." msgstr "" "一致したパッケージ %s はすでにインストールされています。更新を確認していま" "す。" -#: yum/__init__.py:2675 +#: yum/__init__.py:2908 msgid "Updating Everything" msgstr "すべて更新しています" -#: yum/__init__.py:2693 yum/__init__.py:2802 yum/__init__.py:2823 -#: yum/__init__.py:2849 +#: yum/__init__.py:2929 yum/__init__.py:3044 yum/__init__.py:3073 +#: yum/__init__.py:3100 #, 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 +#: yum/__init__.py:2964 yum/__init__.py:3143 #, python-format msgid "%s" msgstr "%s" -#: yum/__init__.py:2793 +#: yum/__init__.py:3035 #, 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 +#: yum/__init__.py:3068 +#, python-format +msgid "Not Updating Package that is obsoleted: %s" +msgstr "既に不要なパッケージの更新はありません: %s" + +#: yum/__init__.py:3077 yum/__init__.py:3104 #, 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 +#: yum/__init__.py:3159 msgid "No package matched to remove" msgstr "削除に一致するパッケージはありません" -#: yum/__init__.py:2947 +#: yum/__init__.py:3192 yum/__init__.py:3296 yum/__init__.py:3385 #, python-format msgid "Cannot open file: %s. Skipping." msgstr "ファイル %s が開けません。飛ばします。" -#: yum/__init__.py:2949 +#: yum/__init__.py:3195 yum/__init__.py:3299 yum/__init__.py:3388 #, python-format msgid "Examining %s: %s" msgstr "%s を調べています: %s" -#: yum/__init__.py:2957 +#: yum/__init__.py:3203 yum/__init__.py:3302 yum/__init__.py:3391 #, python-format msgid "Cannot add package %s to transaction. Not a compatible architecture: %s" msgstr "" "トランザクションにパッケージ %s を追加できません。アーキテクチャに互換性があ" "りません: %s" -#: yum/__init__.py:2965 +#: yum/__init__.py:3211 #, python-format msgid "" "Package %s not installed, cannot update it. Run yum install to install it " @@ -1981,77 +2092,92 @@ msgstr "" "パッケージ %s はインストールされていないので更新できません。代わりに「yum " "install」を実行してインストールしてください。" -#: yum/__init__.py:2998 +#: yum/__init__.py:3246 yum/__init__.py:3313 yum/__init__.py:3402 #, python-format msgid "Excluding %s" msgstr "%s の除外中" -#: yum/__init__.py:3002 +#: yum/__init__.py:3251 #, python-format msgid "Marking %s to be installed" msgstr "%s をインストール済みとして設定しています" -#: yum/__init__.py:3007 +#: yum/__init__.py:3257 #, python-format msgid "Marking %s as an update to %s" msgstr "次のリポジトリーへの更新として %s を設定します: %s" -#: yum/__init__.py:3012 +#: yum/__init__.py:3264 #, python-format msgid "%s: does not update installed package." msgstr "%s: インストールされたパッケージを更新しません。" -#: yum/__init__.py:3029 +#: yum/__init__.py:3332 msgid "Problem in reinstall: no package matched to remove" msgstr "再インストール中に問題: 削除するパッケージがありません" -#: yum/__init__.py:3040 +#: yum/__init__.py:3345 yum/__init__.py:3463 #, 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:3366 +#, python-format +msgid "Problem in reinstall: no package %s matched to install" +msgstr "再インストール中に問題: %s に一致したインストール用パッケージがありません" + +#: yum/__init__.py:3455 +msgid "No package(s) available to downgrade" +msgstr "ダウングレードに利用できるパッケージはありません" -#: yum/__init__.py:3085 +#: yum/__init__.py:3499 +#, python-format +msgid "No Match for available package: %s" +msgstr "利用可能なパッケージが一致しません: %s" + +#: yum/__init__.py:3505 +#, python-format +msgid "Only Upgrade available on package: %s" +msgstr "アップグレードでのみ利用できるパッケージ: %s" + +#: yum/__init__.py:3564 #, python-format msgid "Retrieving GPG key from %s" msgstr "%s から GPG 鍵を取得しています" -#: yum/__init__.py:3105 +#: yum/__init__.py:3584 msgid "GPG key retrieval failed: " msgstr "GPG 鍵の取得に失敗しました: " -#: yum/__init__.py:3116 +#: yum/__init__.py:3595 #, python-format msgid "GPG key parsing failed: key does not have value %s" msgstr "GPG 鍵の解析に失敗しました: 鍵は値 %s を持っていません" -#: yum/__init__.py:3148 +#: yum/__init__.py:3627 #, 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 +#: yum/__init__.py:3632 yum/__init__.py:3694 #, python-format msgid "Importing GPG key 0x%s \"%s\" from %s" msgstr "GPG 公開鍵 0x%s 「%s」を %s からインポートしています" -#: yum/__init__.py:3169 +#: yum/__init__.py:3649 msgid "Not installing key" msgstr "インストールする鍵がありません" -#: yum/__init__.py:3175 +#: yum/__init__.py:3655 #, python-format msgid "Key import failed (code %d)" msgstr "鍵のインポートに失敗しました (コード: %d)" -#: yum/__init__.py:3176 yum/__init__.py:3236 +#: yum/__init__.py:3656 yum/__init__.py:3715 msgid "Key imported successfully" msgstr "鍵のインポートに成功しました" -#: yum/__init__.py:3181 yum/__init__.py:3241 +#: yum/__init__.py:3661 yum/__init__.py:3720 #, python-format msgid "" "The GPG keys listed for the \"%s\" repository are already installed but they " @@ -2059,93 +2185,93 @@ msgid "" "Check that the correct key URLs are configured for this repository." msgstr "" -#: yum/__init__.py:3190 +#: yum/__init__.py:3670 msgid "Import of key(s) didn't help, wrong key(s)?" msgstr "" -#: yum/__init__.py:3209 +#: yum/__init__.py:3689 #, python-format msgid "GPG key at %s (0x%s) is already imported" msgstr "GPG 鍵 %s (0x%s) はすでにインポートしています" -#: yum/__init__.py:3228 +#: yum/__init__.py:3709 #, python-format msgid "Not installing key for repo %s" msgstr "リポジトリー %s の鍵がインストールされていません" -#: yum/__init__.py:3235 +#: yum/__init__.py:3714 msgid "Key import failed" msgstr "鍵のインポートに失敗しました" -#: yum/__init__.py:3325 +#: yum/__init__.py:3835 msgid "Unable to find a suitable mirror." msgstr "適当なミラーを見つけることができませんでした。" -#: yum/__init__.py:3327 +#: yum/__init__.py:3837 msgid "Errors were encountered while downloading packages." msgstr "パッケージのダウンロード中にエラーに遭遇しました。" -#: yum/__init__.py:3367 +#: yum/__init__.py:3887 #, python-format msgid "Please report this error at %s" msgstr "%s にこのエラーを報告してください" -#: yum/__init__.py:3391 +#: yum/__init__.py:3911 msgid "Test Transaction Errors: " msgstr "テストトランザクションでエラー: " -#: yum/plugins.py:204 +#: yum/plugins.py:202 msgid "Loaded plugins: " msgstr "読み込んだプラグイン:" -#: yum/plugins.py:218 yum/plugins.py:224 +#: yum/plugins.py:216 yum/plugins.py:222 #, python-format msgid "No plugin match for: %s" msgstr "プラグインが一致しません: %s" -#: yum/plugins.py:254 +#: yum/plugins.py:252 #, python-format msgid "Not loading \"%s\" plugin, as it is disabled" msgstr "無効になっているため、プラグイン「%s」は読み込みません" -#: yum/plugins.py:266 +#: yum/plugins.py:264 #, python-format msgid "Plugin \"%s\" can't be imported" msgstr "プラグイン「%s」はインポートできませんでした" -#: yum/plugins.py:273 +#: yum/plugins.py:271 #, python-format msgid "Plugin \"%s\" doesn't specify required API version" msgstr "プラグイン「%s」は要求された API バージョンを明記していません" -#: yum/plugins.py:278 +#: yum/plugins.py:276 #, python-format msgid "Plugin \"%s\" requires API %s. Supported API is %s." msgstr "" "プラグイン「%s」は API %s を要求しています。サポートした API は %s です。" -#: yum/plugins.py:311 +#: yum/plugins.py:309 #, python-format msgid "Loading \"%s\" plugin" msgstr "プラグイン「%s」を読み込んでいます" -#: yum/plugins.py:318 +#: yum/plugins.py:316 #, python-format msgid "" "Two or more plugins with the name \"%s\" exist in the plugin search path" msgstr "" -#: yum/plugins.py:338 +#: yum/plugins.py:336 #, python-format msgid "Configuration file %s not found" msgstr "構成ファイル %s が見つかりません" -#: yum/plugins.py:341 +#: yum/plugins.py:339 #, python-format msgid "Unable to find configuration file for plugin %s" msgstr "プラグイン %s の構成ファイルの検索に失敗しました" -#: yum/plugins.py:495 +#: yum/plugins.py:497 msgid "registration of commands not supported" msgstr "コマンドの登録をサポートしていません" @@ -2153,39 +2279,69 @@ msgstr "コマンドの登録をサポートしていません" msgid "Repackaging" msgstr "再パッケージをしています" -#: rpmUtils/oldUtils.py:26 +#: rpmUtils/oldUtils.py:33 #, python-format msgid "Header cannot be opened or does not match %s, %s." msgstr "%s (%s) が一致しないかヘッダーが開けません" -#: rpmUtils/oldUtils.py:46 +#: rpmUtils/oldUtils.py:53 #, python-format msgid "RPM %s fails md5 check" msgstr "RPM %s は MD5 検査に失敗しました" -#: rpmUtils/oldUtils.py:144 +#: rpmUtils/oldUtils.py:151 msgid "Could not open RPM database for reading. Perhaps it is already in use?" msgstr "" "読み込みのために RPM データベースを開くことができません。おそらく既に使用して" "いませんか?" -#: rpmUtils/oldUtils.py:174 +#: rpmUtils/oldUtils.py:183 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 +#: rpmUtils/oldUtils.py:253 rpmUtils/oldUtils.py:260 rpmUtils/oldUtils.py:263 +#: rpmUtils/oldUtils.py:266 #, python-format msgid "Damaged Header %s" msgstr "ヘッダー %s は損傷があります" -#: rpmUtils/oldUtils.py:272 +#: rpmUtils/oldUtils.py:281 #, python-format msgid "Error opening rpm %s - error %s" msgstr "RPM %s へのアクセスでエラー - %s エラー" +#~ msgid "Matching packages for package list to user args" +#~ msgstr "ユーザーの引数にパッケージ一覧のパッケージを一致させています" + +#~ 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" + +#~ msgid "Excluding Packages in global exclude list" +#~ msgstr "全体の除外一覧でパッケージを除外します" + +#~ msgid "Excluding Packages from %s" +#~ msgstr "%s からパッケージを除外しています" + +#~ msgid "Keeping included package %s" +#~ msgstr "%s を含んで維持しています" + +#~ msgid "Removing unmatched package %s" +#~ msgstr "%s に一致しないものを削除しています" + +#~ msgid "Finished" +#~ msgstr "完了しました" + #~ msgid "Parsing package install arguments" #~ msgstr "パッケージインストールの引数を解析しています" - -#~ msgid "Could not find update match for %s" -#~ msgstr "%s に一致する更新を見つけることができません" diff --git a/po/pl.po b/po/pl.po index ba98fc0..e159b2d 100644 --- a/po/pl.po +++ b/po/pl.po @@ -5,15 +5,15 @@ msgid "" msgstr "" "Project-Id-Version: pl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-06-22 21:06+0200\n" -"PO-Revision-Date: 2009-06-22 21:07+0200\n" +"POT-Creation-Date: 2009-09-04 22:38+0200\n" +"PO-Revision-Date: 2009-09-04 22:54+0200\n" "Last-Translator: Piotr Drąg \n" -"Language-Team: Polish \n" +"Language-Team: Polish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../callback.py:48 ../output.py:939 ../yum/rpmtrans.py:71 +#: ../callback.py:48 ../output.py:938 ../yum/rpmtrans.py:71 msgid "Updating" msgstr "Aktualizowanie" @@ -21,7 +21,7 @@ msgstr "Aktualizowanie" msgid "Erasing" msgstr "Usuwanie" -#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:938 +#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:937 #: ../yum/rpmtrans.py:73 ../yum/rpmtrans.py:74 ../yum/rpmtrans.py:76 msgid "Installing" msgstr "Instalowanie" @@ -30,7 +30,7 @@ msgstr "Instalowanie" msgid "Obsoleted" msgstr "Przestarzałe" -#: ../callback.py:54 ../output.py:1060 +#: ../callback.py:54 ../output.py:1061 msgid "Updated" msgstr "Zaktualizowano" @@ -38,7 +38,7 @@ msgstr "Zaktualizowano" msgid "Erased" msgstr "Usunięto" -#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:1058 +#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:1059 msgid "Installed" msgstr "Zainstalowano" @@ -60,7 +60,7 @@ msgstr "Błąd: nieprawidłowy stan wyjścia: %s dla %s" msgid "Erased: %s" msgstr "Usunięto: %s" -#: ../callback.py:217 ../output.py:940 +#: ../callback.py:217 ../output.py:939 msgid "Removing" msgstr "Usuwanie" @@ -86,7 +86,7 @@ msgstr "Odczytywanie metadanych repozytoriów z lokalnych plików" msgid "Config Error: %s" msgstr "Błąd konfiguracji: %s" -#: ../cli.py:196 ../cli.py:1242 ../utils.py:90 +#: ../cli.py:196 ../cli.py:1253 ../utils.py:90 #, python-format msgid "Options Error: %s" msgstr "Błąd opcji: %s" @@ -145,40 +145,48 @@ msgstr "Pobieranie pakietów:" msgid "Error Downloading Packages:\n" msgstr "Błąd podczas pobierania pakietów:\n" -#: ../cli.py:420 ../yum/__init__.py:3750 +#: ../cli.py:420 ../yum/__init__.py:3854 msgid "Running rpm_check_debug" msgstr "Wykonywanie rpm_check_debug" -#: ../cli.py:423 ../yum/__init__.py:3753 +#: ../cli.py:429 ../yum/__init__.py:3863 +msgid "ERROR You need to update rpm to handle:" +msgstr "BŁĄD należy zaktualizować pakiet RPM, aby obsłużyć:" + +#: ../cli.py:431 ../yum/__init__.py:3866 msgid "ERROR with rpm_check_debug vs depsolve:" msgstr "BŁĄD rpm_check_debug i rozwiązywania zależności:" -#: ../cli.py:427 +#: ../cli.py:437 +msgid "RPM needs to be updated" +msgstr "Pakiet RPM musi zostać zaktualizowany" + +#: ../cli.py:438 #, python-format msgid "Please report this error in %s" msgstr "Zgłoś ten błąd na %s" -#: ../cli.py:433 +#: ../cli.py:444 msgid "Running Transaction Test" msgstr "Wykonywanie testu transakcji" -#: ../cli.py:449 +#: ../cli.py:460 msgid "Finished Transaction Test" msgstr "Zakończono test transakcji" -#: ../cli.py:451 +#: ../cli.py:462 msgid "Transaction Check Error:\n" msgstr "Błąd podczas sprawdzania transakcji:\n" -#: ../cli.py:458 +#: ../cli.py:469 msgid "Transaction Test Succeeded" msgstr "Test transakcji został zakończony powodzeniem" -#: ../cli.py:480 +#: ../cli.py:491 msgid "Running Transaction" msgstr "Wykonywanie transakcji" -#: ../cli.py:510 +#: ../cli.py:521 msgid "" "Refusing to automatically import keys when running unattended.\n" "Use \"-y\" to override." @@ -187,189 +195,189 @@ msgstr "" "uruchomienia.\n" "Użyj \"-y\", aby wymusić." -#: ../cli.py:529 ../cli.py:563 +#: ../cli.py:540 ../cli.py:574 msgid " * Maybe you meant: " msgstr " * Czy chodziło o: " -#: ../cli.py:546 ../cli.py:554 +#: ../cli.py:557 ../cli.py:565 #, python-format msgid "Package(s) %s%s%s available, but not installed." msgstr "Pakiety %s%s%s są dostępne, ale nie są zainstalowane." -#: ../cli.py:560 ../cli.py:591 ../cli.py:669 +#: ../cli.py:571 ../cli.py:602 ../cli.py:680 #, python-format msgid "No package %s%s%s available." msgstr "Nie ma pakietu %s%s%s." -#: ../cli.py:596 ../cli.py:729 +#: ../cli.py:607 ../cli.py:740 msgid "Package(s) to install" msgstr "Pakiety do zainstalowania" -#: ../cli.py:597 ../cli.py:675 ../cli.py:708 ../cli.py:730 +#: ../cli.py:608 ../cli.py:686 ../cli.py:719 ../cli.py:741 #: ../yumcommands.py:157 msgid "Nothing to do" msgstr "Nie ma niczego do zrobienia" -#: ../cli.py:630 +#: ../cli.py:641 #, python-format msgid "%d packages marked for Update" msgstr "%d pakietów oznaczonych do aktualizacji" -#: ../cli.py:633 +#: ../cli.py:644 msgid "No Packages marked for Update" msgstr "Brak pakietów oznaczonych do aktualizacji" -#: ../cli.py:647 +#: ../cli.py:658 #, python-format msgid "%d packages marked for removal" msgstr "%d pakietów oznaczonych do usunięcia" -#: ../cli.py:650 +#: ../cli.py:661 msgid "No Packages marked for removal" msgstr "Brak pakietów oznaczonych do usunięcia" -#: ../cli.py:674 +#: ../cli.py:685 msgid "Package(s) to downgrade" msgstr "Pakiety do instalacji starszej wersji" -#: ../cli.py:698 +#: ../cli.py:709 #, python-format msgid " (from %s)" msgstr " (z %s)" -#: ../cli.py:700 +#: ../cli.py:711 #, python-format msgid "Installed package %s%s%s%s not available." msgstr "Zainstalowany pakiet %s%s%s%s jest niedostępny." -#: ../cli.py:707 +#: ../cli.py:718 msgid "Package(s) to reinstall" msgstr "Pakiety do ponownego zainstalowania" -#: ../cli.py:720 +#: ../cli.py:731 msgid "No Packages Provided" msgstr "Nie podano pakietów" -#: ../cli.py:804 +#: ../cli.py:815 #, python-format msgid "Warning: No matches found for: %s" msgstr "Ostrzeżenie: nie znaleziono wyników dla: %s" -#: ../cli.py:807 +#: ../cli.py:818 msgid "No Matches found" msgstr "Brak wyników" -#: ../cli.py:846 +#: ../cli.py:857 #, 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 "" -"Ostrzeżenie: wersje 3.0.x yuma błędnie dopasowują nazwy plików.\n" +"Ostrzeżenie: wersje 3.0.x programu yum błędnie dopasowują nazwy plików.\n" " Można użyć \"%s*/%s%s\" i/lub \"%s*bin/%s%s\", aby uzyskać to zachowanie" -#: ../cli.py:862 +#: ../cli.py:873 #, python-format msgid "No Package Found for %s" msgstr "Nie znaleziono pakietów dla %s" -#: ../cli.py:874 +#: ../cli.py:885 msgid "Cleaning up Everything" msgstr "Czyszczenie wszystkiego" -#: ../cli.py:888 +#: ../cli.py:899 msgid "Cleaning up Headers" msgstr "Czyszczenie nagłówków" -#: ../cli.py:891 +#: ../cli.py:902 msgid "Cleaning up Packages" msgstr "Czyszczenie pakietów" -#: ../cli.py:894 +#: ../cli.py:905 msgid "Cleaning up xml metadata" msgstr "Czytanie metadanych XML" -#: ../cli.py:897 +#: ../cli.py:908 msgid "Cleaning up database cache" msgstr "Czyszczenie pamięci podręcznej bazy danych" -#: ../cli.py:900 +#: ../cli.py:911 msgid "Cleaning up expire-cache metadata" msgstr "Czytanie metadanych wygasłej pamięci podręcznej" -#: ../cli.py:903 +#: ../cli.py:914 msgid "Cleaning up plugins" msgstr "Czyszczenie wtyczek" -#: ../cli.py:928 +#: ../cli.py:939 msgid "Installed Groups:" msgstr "Zainstalowane grupy:" -#: ../cli.py:940 +#: ../cli.py:951 msgid "Available Groups:" msgstr "Dostępne grupy:" -#: ../cli.py:950 +#: ../cli.py:961 msgid "Done" msgstr "Zakończono" -#: ../cli.py:961 ../cli.py:979 ../cli.py:985 ../yum/__init__.py:2513 +#: ../cli.py:972 ../cli.py:990 ../cli.py:996 ../yum/__init__.py:2560 #, python-format msgid "Warning: Group %s does not exist." msgstr "Ostrzeżenie: grupa %s nie istnieje." -#: ../cli.py:989 +#: ../cli.py:1000 msgid "No packages in any requested group available to install or update" msgstr "" "Brak pakietów dostępnych do instalacji lub aktualizacji w żadnej z żądanych " "grup" -#: ../cli.py:991 +#: ../cli.py:1002 #, python-format msgid "%d Package(s) to Install" msgstr "%d pakietów do instalacji" -#: ../cli.py:1001 ../yum/__init__.py:2525 +#: ../cli.py:1012 ../yum/__init__.py:2572 #, python-format msgid "No group named %s exists" msgstr "Grupa o nazwie %s nie istnieje" -#: ../cli.py:1007 +#: ../cli.py:1018 msgid "No packages to remove from groups" msgstr "Brak pakietów do usunięcia z grup" -#: ../cli.py:1009 +#: ../cli.py:1020 #, python-format msgid "%d Package(s) to remove" msgstr "%d pakietów do usunięcia" -#: ../cli.py:1051 +#: ../cli.py:1062 #, python-format msgid "Package %s is already installed, skipping" msgstr "Pakiet %s jest już zainstalowany, pomijanie" -#: ../cli.py:1062 +#: ../cli.py:1073 #, python-format msgid "Discarding non-comparable pkg %s.%s" msgstr "Odrzucanie pakietu %s.%s, którego nie można porównać" #. we've not got any installed that match n or n+a -#: ../cli.py:1088 +#: ../cli.py:1099 #, python-format msgid "No other %s installed, adding to list for potential install" msgstr "" "Inne %s nie są zainstalowane, dodawanie do listy potencjalnie instalowanych" -#: ../cli.py:1108 +#: ../cli.py:1119 msgid "Plugin Options" msgstr "Opcje wtyczki" -#: ../cli.py:1116 +#: ../cli.py:1127 #, python-format msgid "Command line error: %s" msgstr "Błąd wiersza poleceń: %s" -#: ../cli.py:1129 +#: ../cli.py:1140 #, python-format msgid "" "\n" @@ -380,103 +388,103 @@ msgstr "" "\n" "%s: opcja %s wymaga parametru" -#: ../cli.py:1182 +#: ../cli.py:1193 msgid "--color takes one of: auto, always, never" msgstr "--color przyjmuje jedną z: auto, always, never" -#: ../cli.py:1289 +#: ../cli.py:1300 msgid "show this help message and exit" msgstr "wyświetla ten komunikat pomocy i wyłącza" -#: ../cli.py:1293 +#: ../cli.py:1304 msgid "be tolerant of errors" msgstr "toleruje błędy" -#: ../cli.py:1295 +#: ../cli.py:1306 msgid "run entirely from cache, don't update cache" msgstr "uruchamia wyłącznie z pamięci podręcznej i nie aktualizuje jej" -#: ../cli.py:1297 +#: ../cli.py:1308 msgid "config file location" msgstr "położenie pliku konfiguracji" -#: ../cli.py:1299 +#: ../cli.py:1310 msgid "maximum command wait time" msgstr "maksymalny czas oczekiwania na polecenie" -#: ../cli.py:1301 +#: ../cli.py:1312 msgid "debugging output level" msgstr "poziom wyjścia debugowania" -#: ../cli.py:1305 +#: ../cli.py:1316 msgid "show duplicates, in repos, in list/search commands" msgstr "wyświetla duplikaty w repozytoriach w poleceniach list/search" -#: ../cli.py:1307 +#: ../cli.py:1318 msgid "error output level" msgstr "poziom wyjścia błędów" -#: ../cli.py:1310 +#: ../cli.py:1321 msgid "quiet operation" msgstr "mało komunikatów" -#: ../cli.py:1312 +#: ../cli.py:1323 msgid "verbose operation" msgstr "dużo komunikatów" -#: ../cli.py:1314 +#: ../cli.py:1325 msgid "answer yes for all questions" msgstr "odpowiada tak na wszystkie pytania" -#: ../cli.py:1316 +#: ../cli.py:1327 msgid "show Yum version and exit" -msgstr "wyświetla wersję yuma i wyłącza" +msgstr "wyświetla wersję programu yum i wyłącza" -#: ../cli.py:1317 +#: ../cli.py:1328 msgid "set install root" msgstr "ustawia roota instalacji" -#: ../cli.py:1321 +#: ../cli.py:1332 msgid "enable one or more repositories (wildcards allowed)" msgstr "włącza jedno lub więcej repozytoriów (wieloznaczniki są dozwolone)" -#: ../cli.py:1325 +#: ../cli.py:1336 msgid "disable one or more repositories (wildcards allowed)" msgstr "wyłącza jedno lub więcej repozytoriów (wieloznaczniki są dozwolone)" -#: ../cli.py:1328 +#: ../cli.py:1339 msgid "exclude package(s) by name or glob" msgstr "wyklucza pakiety po nazwie lub wyrażeniu regularnym" -#: ../cli.py:1330 +#: ../cli.py:1341 msgid "disable exclude from main, for a repo or for everything" msgstr "wyłącza wykluczanie z głównego, dla repozytorium lub wszystkiego" -#: ../cli.py:1333 +#: ../cli.py:1344 msgid "enable obsoletes processing during updates" msgstr "włącza przetwarzanie przestarzałych pakietów podczas aktualizacji" -#: ../cli.py:1335 +#: ../cli.py:1346 msgid "disable Yum plugins" -msgstr "wyłącza wtyczki yuma" +msgstr "wyłącza wtyczki programu yum" -#: ../cli.py:1337 +#: ../cli.py:1348 msgid "disable gpg signature checking" msgstr "wyłącza sprawdzanie podpisu GPG" -#: ../cli.py:1339 +#: ../cli.py:1350 msgid "disable plugins by name" msgstr "wyłącza wtyczki po nazwie" -#: ../cli.py:1342 +#: ../cli.py:1353 msgid "enable plugins by name" msgstr "włącza wtyczki po nazwie" -#: ../cli.py:1345 +#: ../cli.py:1356 msgid "skip packages with depsolving problems" msgstr "pomija pakiety mające problemy z rozwiązaniem zależności" -#: ../cli.py:1347 +#: ../cli.py:1358 msgid "control whether color is used" msgstr "kontroluje użycie kolorów" @@ -599,7 +607,7 @@ msgstr "Podsumowanie : " #: ../output.py:554 #, python-format msgid "URL : %s" -msgstr "URL : %s" +msgstr "Adres URL : %s" #: ../output.py:555 #, python-format @@ -699,7 +707,7 @@ msgstr "Opis : " #: ../output.py:848 #, python-format msgid "URL : %s" -msgstr "URL : %s" +msgstr "Adres URL : %s" #: ../output.py:851 #, python-format @@ -729,51 +737,51 @@ msgstr "Całkowity rozmiar: %s" msgid "Total download size: %s" msgstr "Całkowity rozmiar pobierania: %s" -#: ../output.py:941 +#: ../output.py:940 msgid "Reinstalling" msgstr "Ponowne instalowanie" -#: ../output.py:942 +#: ../output.py:941 msgid "Downgrading" msgstr "Instalowanie starszej wersji" -#: ../output.py:943 +#: ../output.py:942 msgid "Installing for dependencies" msgstr "Instalowanie, aby rozwiązać zależności" -#: ../output.py:944 +#: ../output.py:943 msgid "Updating for dependencies" msgstr "Aktualizowanie, aby rozwiązać zależności" -#: ../output.py:945 +#: ../output.py:944 msgid "Removing for dependencies" msgstr "Usuwanie, aby rozwiązać zależności" -#: ../output.py:952 ../output.py:1062 +#: ../output.py:951 ../output.py:1063 msgid "Skipped (dependency problems)" msgstr "Pominięto (problemy z zależnościami)" -#: ../output.py:973 +#: ../output.py:974 msgid "Package" msgstr "Pakiet" -#: ../output.py:973 +#: ../output.py:974 msgid "Arch" msgstr "Architektura" -#: ../output.py:974 +#: ../output.py:975 msgid "Version" msgstr "Wersja" -#: ../output.py:974 +#: ../output.py:975 msgid "Repository" msgstr "Repozytorium" -#: ../output.py:975 +#: ../output.py:976 msgid "Size" msgstr "Rozmiar" -#: ../output.py:987 +#: ../output.py:988 #, python-format msgid "" " replacing %s%s%s.%s %s\n" @@ -782,7 +790,7 @@ msgstr "" " zastępuje %s%s%s.%s %s\n" "\n" -#: ../output.py:996 +#: ../output.py:997 #, python-format msgid "" "\n" @@ -793,7 +801,7 @@ msgstr "" "Podsumowanie transakcji\n" "%s\n" -#: ../output.py:1003 +#: ../output.py:1004 #, python-format msgid "" "Install %5.5s Package(s)\n" @@ -802,7 +810,7 @@ msgstr "" "Instalacja %5.5s pakiet(y)\n" "Aktualizacja %5.5s pakiet(y)\n" -#: ../output.py:1012 +#: ../output.py:1013 #, python-format msgid "" "Remove %5.5s Package(s)\n" @@ -813,32 +821,32 @@ msgstr "" "Ponowna instalacja %5.5s pakiet(y)\n" "Instalacja starszej wersji %5.5s pakiet(y)\n" -#: ../output.py:1056 +#: ../output.py:1057 msgid "Removed" msgstr "Usunięto" -#: ../output.py:1057 +#: ../output.py:1058 msgid "Dependency Removed" msgstr "Usunięto zależność" -#: ../output.py:1059 +#: ../output.py:1060 msgid "Dependency Installed" msgstr "Zainstalowano zależność" -#: ../output.py:1061 +#: ../output.py:1062 msgid "Dependency Updated" msgstr "Zaktualizowano zależność" -#: ../output.py:1063 +#: ../output.py:1064 msgid "Replaced" msgstr "Zastąpiono" -#: ../output.py:1064 +#: ../output.py:1065 msgid "Failed" msgstr "Nie powiodło się" #. Delta between C-c's so we treat as exit -#: ../output.py:1130 +#: ../output.py:1131 msgid "two" msgstr "dwóch" @@ -846,7 +854,7 @@ msgstr "dwóch" #. Current download cancelled, interrupt (ctrl-c) again within two seconds #. to exit. #. Where "interupt (ctrl-c) again" and "two" are highlighted. -#: ../output.py:1141 +#: ../output.py:1142 #, python-format msgid "" "\n" @@ -858,67 +866,67 @@ msgstr "" " Obecne pobieranie zostało anulowane, %sprzerwij (ctrl-c) ponownie%s w ciągu " "%s%s%s sekund, aby zakończyć.\n" -#: ../output.py:1152 +#: ../output.py:1153 msgid "user interrupt" msgstr "przerwane przez użytkownika" -#: ../output.py:1168 +#: ../output.py:1171 msgid "Total" msgstr "Razem" -#: ../output.py:1183 +#: ../output.py:1186 msgid "installed" msgstr "zainstalowany" -#: ../output.py:1184 +#: ../output.py:1187 msgid "updated" msgstr "zaktualizowany" -#: ../output.py:1185 +#: ../output.py:1188 msgid "obsoleted" msgstr "zastąpiony" -#: ../output.py:1186 +#: ../output.py:1189 msgid "erased" msgstr "usunięty" -#: ../output.py:1190 +#: ../output.py:1193 #, python-format msgid "---> Package %s.%s %s:%s-%s set to be %s" msgstr "---> Pakiet %s.%s %s:%s-%s zostanie %s" -#: ../output.py:1197 +#: ../output.py:1200 msgid "--> Running transaction check" msgstr "--> Wykonywanie sprawdzania transakcji" -#: ../output.py:1202 +#: ../output.py:1205 msgid "--> Restarting Dependency Resolution with new changes." msgstr "--> Ponowne uruchamianie rozwiązywania zależności z nowymi zmianami." -#: ../output.py:1207 +#: ../output.py:1210 msgid "--> Finished Dependency Resolution" msgstr "--> Zakończono rozwiązywanie zależności" -#: ../output.py:1212 ../output.py:1217 +#: ../output.py:1215 ../output.py:1220 #, python-format msgid "--> Processing Dependency: %s for package: %s" msgstr "--> Przetwarzanie zależności: %s dla pakietu: %s" -#: ../output.py:1221 +#: ../output.py:1224 #, python-format msgid "--> Unresolved Dependency: %s" msgstr "--> Nierozwiązana zależność: %s" -#: ../output.py:1227 ../output.py:1232 +#: ../output.py:1230 ../output.py:1235 #, python-format msgid "--> Processing Conflict: %s conflicts %s" msgstr "--> Przetwarzanie konfliktów: %s jest w konflikcie z %s" -#: ../output.py:1236 +#: ../output.py:1239 msgid "--> Populating transaction set with selected packages. Please wait." msgstr "--> Układanie zestawu transakcji z wybranymi pakietami. Proszę czekać." -#: ../output.py:1240 +#: ../output.py:1243 #, python-format msgid "---> Downloading header for %s to pack into transaction set." msgstr "---> Pobieranie nagłówka dla %s do umieszczenia w zestawie transakcji." @@ -952,8 +960,8 @@ msgstr "" " rpm --import klucz.publiczny.gpg\n" "\n" "\n" -"Można także podać URL klucza, którego chcesz używać dla repozytorium w\n" -"opcji \"gpgkey\" w sekcji repozytorium, a yum go zainstaluje.\n" +"Można także podać adres URL klucza, którego chcesz używać dla repozytorium\n" +"w opcji \"gpgkey\" w sekcji repozytorium, a program yum go zainstaluje.\n" "\n" "Aby dowiedzieć się więcej, skontaktuj się z dostawcą dystrybucji lub\n" "pakietu.\n" @@ -1154,11 +1162,11 @@ msgstr "Wyszukiwanie pakietów dla zależności:" #: ../yumcommands.py:709 msgid "Run an interactive yum shell" -msgstr "Uruchom interaktywną powłokę yuma" +msgstr "Uruchom interaktywną powłokę programu yum" #: ../yumcommands.py:715 msgid "Setting up Yum Shell" -msgstr "Ustawianie powłoki yuma" +msgstr "Ustawianie powłoki programu yum" #: ../yumcommands.py:733 msgid "List a package's dependencies" @@ -1181,15 +1189,15 @@ msgid "disabled" msgstr "wyłączone" #: ../yumcommands.py:827 -msgid "Repo-id : " +msgid "Repo-id : " msgstr "Identyfikator repozytorium : " #: ../yumcommands.py:828 -msgid "Repo-name : " +msgid "Repo-name : " msgstr "Nazwa repozytorium : " #: ../yumcommands.py:829 -msgid "Repo-status : " +msgid "Repo-status : " msgstr "Stan repozytorium : " #: ../yumcommands.py:831 @@ -1197,7 +1205,7 @@ msgid "Repo-revision: " msgstr "Wersja repozytorium : " #: ../yumcommands.py:835 -msgid "Repo-tags : " +msgid "Repo-tags : " msgstr "Znaczniki repozytorium : " #: ../yumcommands.py:841 @@ -1205,20 +1213,20 @@ msgid "Repo-distro-tags: " msgstr "Znaczniki dystrybucji repozytorium: " #: ../yumcommands.py:846 -msgid "Repo-updated: " +msgid "Repo-updated : " msgstr "Aktualizacje repozytorium : " #: ../yumcommands.py:848 -msgid "Repo-pkgs : " +msgid "Repo-pkgs : " msgstr "Pakiety repozytorium : " #: ../yumcommands.py:849 -msgid "Repo-size : " +msgid "Repo-size : " msgstr "Rozmiar repozytorium : " #: ../yumcommands.py:856 -msgid "Repo-baseurl: " -msgstr "Podstawowy URL repozytorium : " +msgid "Repo-baseurl : " +msgstr "Podstawowy adres URL repozytorium : " #: ../yumcommands.py:864 msgid "Repo-metalink: " @@ -1229,41 +1237,64 @@ msgid " Updated : " msgstr " Zaktualizowano : " #: ../yumcommands.py:871 -msgid "Repo-mirrors: " +msgid "Repo-mirrors : " msgstr "Serwery lustrzane repozytorium : " -#: ../yumcommands.py:875 -msgid "Repo-exclude: " +#: ../yumcommands.py:875 ../yummain.py:133 +msgid "Unknown" +msgstr "Nieznane" + +#: ../yumcommands.py:881 +#, python-format +msgid "Never (last: %s)" +msgstr "Nigdy (ostatnio: %s)" + +#: ../yumcommands.py:883 +#, python-format +msgid "Instant (last: %s)" +msgstr "Natychmiast (ostatnio: %s)" + +#: ../yumcommands.py:886 +#, python-format +msgid "%s second(s) (last: %s)" +msgstr "%s sekundy (ostatnio: %s)" + +#: ../yumcommands.py:888 +msgid "Repo-expire : " +msgstr "Wygaszenie repozytorium : " + +#: ../yumcommands.py:891 +msgid "Repo-exclude : " msgstr "Wykluczenia z repozytorium : " -#: ../yumcommands.py:879 -msgid "Repo-include: " +#: ../yumcommands.py:895 +msgid "Repo-include : " msgstr "Dołączone z repozytorium : " #. Work out the first (id) and last (enabled/disalbed/count), #. then chop the middle (name)... -#: ../yumcommands.py:889 ../yumcommands.py:915 +#: ../yumcommands.py:905 ../yumcommands.py:931 msgid "repo id" msgstr "ID repozytorium" -#: ../yumcommands.py:903 ../yumcommands.py:904 ../yumcommands.py:918 +#: ../yumcommands.py:919 ../yumcommands.py:920 ../yumcommands.py:934 msgid "status" msgstr "stan" -#: ../yumcommands.py:916 +#: ../yumcommands.py:932 msgid "repo name" msgstr "nazwa repozytorium" -#: ../yumcommands.py:942 +#: ../yumcommands.py:958 msgid "Display a helpful usage message" msgstr "Wyświetl pomocny komunikat o używaniu" -#: ../yumcommands.py:976 +#: ../yumcommands.py:992 #, python-format msgid "No help available for %s" msgstr "Brak pomocy dla %s" -#: ../yumcommands.py:981 +#: ../yumcommands.py:997 msgid "" "\n" "\n" @@ -1273,7 +1304,7 @@ msgstr "" "\n" "aliasy: " -#: ../yumcommands.py:983 +#: ../yumcommands.py:999 msgid "" "\n" "\n" @@ -1283,31 +1314,31 @@ msgstr "" "\n" "alias: " -#: ../yumcommands.py:1011 +#: ../yumcommands.py:1027 msgid "Setting up Reinstall Process" msgstr "Ustawianie procesu ponownej instalacji" -#: ../yumcommands.py:1019 +#: ../yumcommands.py:1035 msgid "reinstall a package" msgstr "ponownie zainstaluj pakiet" -#: ../yumcommands.py:1037 +#: ../yumcommands.py:1053 msgid "Setting up Downgrade Process" msgstr "Ustawianie procesu instalacji starszej wersji pakietu" -#: ../yumcommands.py:1044 +#: ../yumcommands.py:1060 msgid "downgrade a package" msgstr "zainstaluj starszą wersję pakietu" -#: ../yumcommands.py:1058 +#: ../yumcommands.py:1074 msgid "Display a version for the machine and/or available repos." msgstr "Wyświetl wersję dla komputera i/lub dostępnych repozytoriów." -#: ../yumcommands.py:1085 +#: ../yumcommands.py:1101 msgid "Installed:" msgstr "Zainstalowano:" -#: ../yumcommands.py:1094 +#: ../yumcommands.py:1110 msgid "Available:" msgstr "Dostępne:" @@ -1331,79 +1362,87 @@ msgstr "" "\n" "Zamykanie na przerwanym potoku" -#: ../yummain.py:126 +#: ../yummain.py:50 +#, python-format +msgid "" +"\n" +"\n" +"%s" +msgstr "" +"\n" +"\n" +"%s" + +#: ../yummain.py:128 msgid "Running" msgstr "Wykonywanie" -#: ../yummain.py:127 +#: ../yummain.py:129 msgid "Sleeping" msgstr "Zasypianie" -#: ../yummain.py:128 +#: ../yummain.py:130 msgid "Uninteruptable" msgstr "Nie można przerywać" -#: ../yummain.py:129 +#: ../yummain.py:131 msgid "Zombie" msgstr "Zombie" -#: ../yummain.py:130 +#: ../yummain.py:132 msgid "Traced/Stopped" msgstr "Śledzone/zatrzymane" -#: ../yummain.py:131 -msgid "Unknown" -msgstr "Nienznane" - -#: ../yummain.py:135 +#: ../yummain.py:137 msgid " The other application is: PackageKit" msgstr " Inna aplikacja to PackageKit" -#: ../yummain.py:137 +#: ../yummain.py:139 #, python-format msgid " The other application is: %s" msgstr " Inna aplikacja to: %s" -#: ../yummain.py:140 +#: ../yummain.py:142 #, python-format msgid " Memory : %5s RSS (%5sB VSZ)" msgstr " Pamięć: %5s RSS (%5sB VSZ)" -#: ../yummain.py:144 +#: ../yummain.py:146 #, python-format msgid " Started: %s - %s ago" msgstr " Uruchomiono: %s - %s temu" -#: ../yummain.py:146 +#: ../yummain.py:148 #, python-format msgid " State : %s, pid: %d" msgstr " Stan: %s, PID: %d" -#: ../yummain.py:171 +#: ../yummain.py:173 msgid "" "Another app is currently holding the yum lock; waiting for it to exit..." -msgstr "Inna aplikacja obecnie blokuje yuma. Oczekiwanie na jej zakończenie..." +msgstr "" +"Inna aplikacja obecnie blokuje program yum. Oczekiwanie na jej zakończenie..." -#: ../yummain.py:199 ../yummain.py:238 +#: ../yummain.py:201 ../yummain.py:240 #, python-format msgid "Error: %s" msgstr "Błąd: %s" -#: ../yummain.py:209 ../yummain.py:251 +#: ../yummain.py:211 ../yummain.py:253 #, python-format msgid "Unknown Error(s): Exit Code: %d:" msgstr "Nieznane błędy: kod wyjścia: %d:" #. Depsolve stage -#: ../yummain.py:216 +#: ../yummain.py:218 msgid "Resolving Dependencies" msgstr "Rozwiązywanie zależności" -#: ../yummain.py:240 +#: ../yummain.py:242 msgid " You could try using --skip-broken to work around the problem" msgstr " Powinieneś spróbować użyć --skip-broken, aby obejść problem" -#: ../yummain.py:241 +#: ../yummain.py:243 msgid "" " You could try running: package-cleanup --problems\n" " package-cleanup --dupes\n" @@ -1413,7 +1452,7 @@ msgstr "" " package-cleanup --dupes\n" " rpm -Va --nofiles --nodigest" -#: ../yummain.py:257 +#: ../yummain.py:259 msgid "" "\n" "Dependencies Resolved" @@ -1421,11 +1460,11 @@ msgstr "" "\n" "Rozwiązano zależności" -#: ../yummain.py:271 +#: ../yummain.py:273 msgid "Complete!" msgstr "Zakończono!" -#: ../yummain.py:318 +#: ../yummain.py:320 msgid "" "\n" "\n" @@ -1437,7 +1476,7 @@ msgstr "" #: ../yum/depsolve.py:83 msgid "doTsSetup() will go away in a future version of Yum.\n" -msgstr "doTsSetup() zostanie usunięte w przyszłych wersjach yuma.\n" +msgstr "doTsSetup() zostanie usunięte w przyszłych wersjach programu yum.\n" #: ../yum/depsolve.py:98 msgid "Setting up TransactionSets before config class is up" @@ -1468,7 +1507,7 @@ msgstr "%s pasuje jako wymaganie dla %s" msgid "Member: %s" msgstr "Członek: %s" -#: ../yum/depsolve.py:246 ../yum/depsolve.py:759 +#: ../yum/depsolve.py:246 ../yum/depsolve.py:756 #, python-format msgid "%s converted to install" msgstr "%s przekonwertowano do zainstalowania" @@ -1562,7 +1601,7 @@ msgstr "" msgid "Potential resolving package %s has newer instance installed." msgstr "Pakiet %s potencjalnie rozwiązujący ma zainstalowaną nowszą wersję." -#: ../yum/depsolve.py:525 ../yum/depsolve.py:574 +#: ../yum/depsolve.py:525 ../yum/depsolve.py:571 #, python-format msgid "Missing Dependency: %s is needed by package %s" msgstr "Brakująca zależność: %s jest wymagane przez pakiet %s" @@ -1572,63 +1611,63 @@ msgstr "Brakująca zależność: %s jest wymagane przez pakiet %s" msgid "%s already in ts, skipping this one" msgstr "%s jest już w zestawie transakcji, pomijanie" -#: ../yum/depsolve.py:584 +#: ../yum/depsolve.py:581 #, python-format msgid "TSINFO: Marking %s as update for %s" msgstr "TSINFO: oznaczanie %s jako aktualizacji dla %s" -#: ../yum/depsolve.py:592 +#: ../yum/depsolve.py:589 #, python-format msgid "TSINFO: Marking %s as install for %s" msgstr "TSINFO: oznaczanie %s jako do zainstalowania dla %s" -#: ../yum/depsolve.py:695 ../yum/depsolve.py:777 +#: ../yum/depsolve.py:692 ../yum/depsolve.py:774 msgid "Success - empty transaction" msgstr "Powodzenie - pusta transakcja" -#: ../yum/depsolve.py:734 ../yum/depsolve.py:749 +#: ../yum/depsolve.py:731 ../yum/depsolve.py:746 msgid "Restarting Loop" msgstr "Ponowne uruchamianie pętli" -#: ../yum/depsolve.py:765 +#: ../yum/depsolve.py:762 msgid "Dependency Process ending" msgstr "Kończenie procesu zależności" -#: ../yum/depsolve.py:771 +#: ../yum/depsolve.py:768 #, python-format msgid "%s from %s has depsolving problems" msgstr "%s z %s ma problemy z rozwiązywaniem zależności" -#: ../yum/depsolve.py:778 +#: ../yum/depsolve.py:775 msgid "Success - deps resolved" msgstr "Powodzenie - rozwiązano zależności" -#: ../yum/depsolve.py:792 +#: ../yum/depsolve.py:789 #, python-format msgid "Checking deps for %s" msgstr "Sprawdzanie zależności dla %s" -#: ../yum/depsolve.py:875 +#: ../yum/depsolve.py:872 #, python-format msgid "looking for %s as a requirement of %s" msgstr "wyszukiwanie %s jako wymagania %s" -#: ../yum/depsolve.py:1017 +#: ../yum/depsolve.py:1014 #, python-format msgid "Running compare_providers() for %s" msgstr "Wykonywanie compare_providers() dla %s" -#: ../yum/depsolve.py:1051 ../yum/depsolve.py:1057 +#: ../yum/depsolve.py:1048 ../yum/depsolve.py:1054 #, python-format msgid "better arch in po %s" msgstr "lepsze arch w po %s" -#: ../yum/depsolve.py:1132 +#: ../yum/depsolve.py:1140 #, python-format msgid "%s obsoletes %s" msgstr "%s zastępuje %s" -#: ../yum/depsolve.py:1144 +#: ../yum/depsolve.py:1152 #, python-format msgid "" "archdist compared %s to %s on %s\n" @@ -1637,103 +1676,105 @@ msgstr "" "archdist porównało %s do %s na %s\n" " Zwycięzca: %s" -#: ../yum/depsolve.py:1151 +#: ../yum/depsolve.py:1159 #, python-format msgid "common sourcerpm %s and %s" msgstr "wspólny źródłowy pakiet RPM %s i %s" -#: ../yum/depsolve.py:1157 +#: ../yum/depsolve.py:1165 #, python-format msgid "common prefix of %s between %s and %s" msgstr "wspólny przedrostek %s dla %s i %s" -#: ../yum/depsolve.py:1165 +#: ../yum/depsolve.py:1173 #, python-format msgid "Best Order: %s" msgstr "Najlepszy porządek: %s" -#: ../yum/__init__.py:159 +#: ../yum/__init__.py:180 msgid "doConfigSetup() will go away in a future version of Yum.\n" -msgstr "doConfigSetup() zostanie usunięte w przyszłych wersjach yuma.\n" +msgstr "" +"doConfigSetup() zostanie usunięte w przyszłych wersjach programu yum.\n" -#: ../yum/__init__.py:380 +#: ../yum/__init__.py:401 #, python-format msgid "Repository %r is missing name in configuration, using id" msgstr "Repozytorium %r nie posiada nazwy w konfiguracji, używanie ID" -#: ../yum/__init__.py:418 +#: ../yum/__init__.py:439 msgid "plugins already initialised" msgstr "wtyczki zostały już zainicjowane" -#: ../yum/__init__.py:425 +#: ../yum/__init__.py:446 msgid "doRpmDBSetup() will go away in a future version of Yum.\n" -msgstr "doRpmDBSetup() zostanie usunięte w przyszłych wersjach yuma.\n" +msgstr "doRpmDBSetup() zostanie usunięte w przyszłych wersjach programu yum.\n" -#: ../yum/__init__.py:436 +#: ../yum/__init__.py:457 msgid "Reading Local RPMDB" msgstr "Odczytywanie lokalnej bazy danych RPM" -#: ../yum/__init__.py:457 +#: ../yum/__init__.py:478 msgid "doRepoSetup() will go away in a future version of Yum.\n" -msgstr "doRepoSetup() zostanie usunięte w przyszłych wersjach yuma.\n" +msgstr "doRepoSetup() zostanie usunięte w przyszłych wersjach programu yum.\n" -#: ../yum/__init__.py:477 +#: ../yum/__init__.py:498 msgid "doSackSetup() will go away in a future version of Yum.\n" -msgstr "doSackSetup() zostanie usunięte w przyszłych wersjach yuma.\n" +msgstr "doSackSetup() zostanie usunięte w przyszłych wersjach programu yum.\n" -#: ../yum/__init__.py:494 +#: ../yum/__init__.py:528 msgid "Setting up Package Sacks" msgstr "Ustawianie zestawów pakietów" -#: ../yum/__init__.py:537 +#: ../yum/__init__.py:573 #, python-format msgid "repo object for repo %s lacks a _resetSack method\n" msgstr "obiekt repozytorium %s nie posiada metody _resetSack\n" -#: ../yum/__init__.py:538 +#: ../yum/__init__.py:574 msgid "therefore this repo cannot be reset.\n" msgstr "więc to repozytorium nie może zostać przywrócone.\n" -#: ../yum/__init__.py:543 +#: ../yum/__init__.py:579 msgid "doUpdateSetup() will go away in a future version of Yum.\n" -msgstr "doUpdateSetup() zostanie usunięte w przyszłych wersjach yuma.\n" +msgstr "" +"doUpdateSetup() zostanie usunięte w przyszłych wersjach programu yum.\n" -#: ../yum/__init__.py:555 +#: ../yum/__init__.py:591 msgid "Building updates object" msgstr "Budowanie obiektu aktualizacji" -#: ../yum/__init__.py:590 +#: ../yum/__init__.py:626 msgid "doGroupSetup() will go away in a future version of Yum.\n" -msgstr "doGroupSetup() zostanie usunięte w przyszłych wersjach yuma.\n" +msgstr "doGroupSetup() zostanie usunięte w przyszłych wersjach programu yum.\n" -#: ../yum/__init__.py:615 +#: ../yum/__init__.py:651 msgid "Getting group metadata" msgstr "Pobieranie metadanych grup" -#: ../yum/__init__.py:641 +#: ../yum/__init__.py:677 #, python-format msgid "Adding group file from repository: %s" msgstr "Dodawanie pliku grup z repozytorium: %s" -#: ../yum/__init__.py:650 +#: ../yum/__init__.py:686 #, python-format msgid "Failed to add groups file for repository: %s - %s" msgstr "Dodanie pliku grup dla repozytorium nie powiodło się: %s - %s" -#: ../yum/__init__.py:656 +#: ../yum/__init__.py:692 msgid "No Groups Available in any repository" msgstr "Brak dostępnych grup we wszystkich repozytoriach" -#: ../yum/__init__.py:706 +#: ../yum/__init__.py:742 msgid "Importing additional filelist information" msgstr "Importowanie dodatkowych informacji o liście plików" -#: ../yum/__init__.py:720 +#: ../yum/__init__.py:756 #, python-format msgid "The program %s%s%s is found in the yum-utils package." msgstr "Program %s%s%s można znaleźć w pakiecie yum-utils." -#: ../yum/__init__.py:728 +#: ../yum/__init__.py:764 msgid "" "There are unfinished transactions remaining. You might consider running yum-" "complete-transaction first to finish them." @@ -1741,17 +1782,17 @@ msgstr "" "Pozostały niezakończone transakcje. Rozważ wykonanie yum-complete-" "transaction, aby najpierw je zakończyć." -#: ../yum/__init__.py:796 +#: ../yum/__init__.py:832 #, python-format msgid "Skip-broken round %i" msgstr "Pierwsza runda pomijania uszkodzonych %i" -#: ../yum/__init__.py:848 +#: ../yum/__init__.py:884 #, python-format msgid "Skip-broken took %i rounds " msgstr "Pomijanie uszkodzonych zajęło %i rund " -#: ../yum/__init__.py:849 +#: ../yum/__init__.py:885 msgid "" "\n" "Packages skipped because of dependency problems:" @@ -1759,78 +1800,73 @@ msgstr "" "\n" "Pakiety pominięto z powodu problemów z zależnościami:" -#: ../yum/__init__.py:853 +#: ../yum/__init__.py:889 #, python-format msgid " %s from %s" msgstr " %s z %s" -#: ../yum/__init__.py:991 +#: ../yum/__init__.py:1027 msgid "" "Warning: scriptlet or other non-fatal errors occurred during transaction." msgstr "" "Ostrzeżenie: podczas transakcji wystąpił skrypt lub inne nie fatalne błędy." -#: ../yum/__init__.py:1006 +#: ../yum/__init__.py:1042 #, python-format msgid "Failed to remove transaction file %s" msgstr "Usunięcie pliku transakcji %s nie powiodło się" #. maybe a file log here, too #. but raising an exception is not going to do any good -#: ../yum/__init__.py:1035 +#: ../yum/__init__.py:1071 #, python-format msgid "%s was supposed to be installed but is not!" msgstr "%s miało zostać zainstalowane, ale nie zostało!" #. maybe a file log here, too #. but raising an exception is not going to do any good -#: ../yum/__init__.py:1074 +#: ../yum/__init__.py:1110 #, python-format msgid "%s was supposed to be removed but is not!" msgstr "%s miało zostać usunięte, ale nie zostało!" -#: ../yum/__init__.py:1120 -#, python-format -msgid "excluding for cost: %s from %s" -msgstr "wykluczanie z kosztów: %s z %s" - #. Whoa. What the heck happened? -#: ../yum/__init__.py:1191 +#: ../yum/__init__.py:1225 #, python-format msgid "Unable to check if PID %s is active" msgstr "Nie można sprawdzić, czy PID %s jest aktywny" #. Another copy seems to be running. -#: ../yum/__init__.py:1195 +#: ../yum/__init__.py:1229 #, python-format msgid "Existing lock %s: another copy is running as pid %s." msgstr "Istnieje blokada %s: inna kopia jest uruchomiona jako PID %s." -#: ../yum/__init__.py:1272 +#: ../yum/__init__.py:1306 msgid "Package does not match intended download" msgstr "Pakiet nie zgadza się z zamierzonym pobieraniem" -#: ../yum/__init__.py:1287 +#: ../yum/__init__.py:1321 msgid "Could not perform checksum" msgstr "Nie można wykonać sprawdzenia sum kontrolnych" -#: ../yum/__init__.py:1290 +#: ../yum/__init__.py:1324 msgid "Package does not match checksum" msgstr "Sumy kontrolne pakietu nie zgadzają się" -#: ../yum/__init__.py:1332 +#: ../yum/__init__.py:1366 #, python-format msgid "package fails checksum but caching is enabled for %s" msgstr "" "sprawdzenie sum kontrolnych pakietu nie powiodło się, ale zapisywanie w " "pamięci podręcznej dla %s jest włączone" -#: ../yum/__init__.py:1335 ../yum/__init__.py:1364 +#: ../yum/__init__.py:1369 ../yum/__init__.py:1398 #, python-format msgid "using local copy of %s" msgstr "używanie lokalnej kopii %s" -#: ../yum/__init__.py:1376 +#: ../yum/__init__.py:1410 #, python-format msgid "" "Insufficient space in download directory %s\n" @@ -1841,11 +1877,11 @@ msgstr "" " * wolne %s\n" " * wymagane %s" -#: ../yum/__init__.py:1425 +#: ../yum/__init__.py:1459 msgid "Header is not complete." msgstr "Nagłówek nie jest kompletny." -#: ../yum/__init__.py:1462 +#: ../yum/__init__.py:1496 #, python-format msgid "" "Header not in local cache and caching-only mode enabled. Cannot download %s" @@ -1853,62 +1889,62 @@ msgstr "" "Nagłówek nie jest w lokalnej pamięci podręcznej, a tryb używania tylko " "pamięci podręcznej jest włączony. Nie można pobrać %s" -#: ../yum/__init__.py:1517 +#: ../yum/__init__.py:1551 #, python-format msgid "Public key for %s is not installed" msgstr "Klucz publiczny dla %s nie jest zainstalowany" -#: ../yum/__init__.py:1521 +#: ../yum/__init__.py:1555 #, python-format msgid "Problem opening package %s" msgstr "Podczas otwierania pakietu %s wystąpił problem" -#: ../yum/__init__.py:1529 +#: ../yum/__init__.py:1563 #, python-format msgid "Public key for %s is not trusted" msgstr "Klucz publiczny dla %s nie jest zaufany" -#: ../yum/__init__.py:1533 +#: ../yum/__init__.py:1567 #, python-format msgid "Package %s is not signed" msgstr "Pakiet %s nie jest podpisany" -#: ../yum/__init__.py:1571 +#: ../yum/__init__.py:1605 #, python-format msgid "Cannot remove %s" msgstr "Nie można usunąć %s" -#: ../yum/__init__.py:1575 +#: ../yum/__init__.py:1609 #, python-format msgid "%s removed" msgstr "Usunięto %s" -#: ../yum/__init__.py:1611 +#: ../yum/__init__.py:1645 #, python-format msgid "Cannot remove %s file %s" msgstr "Nie można usunąć %s pliku %s" -#: ../yum/__init__.py:1615 +#: ../yum/__init__.py:1649 #, python-format msgid "%s file %s removed" msgstr "Usunięto %s plik %s" -#: ../yum/__init__.py:1617 +#: ../yum/__init__.py:1651 #, python-format msgid "%d %s files removed" msgstr "Usunięto %d %s plików" -#: ../yum/__init__.py:1686 +#: ../yum/__init__.py:1720 #, python-format msgid "More than one identical match in sack for %s" msgstr "Więcej niż jeden identyczny wynik znajduje się w zestawie dla %s" -#: ../yum/__init__.py:1692 +#: ../yum/__init__.py:1726 #, python-format msgid "Nothing matches %s.%s %s:%s-%s from update" msgstr "Nic nie pasuje do %s.%s %s:%s-%s z aktualizacji" -#: ../yum/__init__.py:1925 +#: ../yum/__init__.py:1959 msgid "" "searchPackages() will go away in a future version of " "Yum. Use searchGenerator() instead. \n" @@ -1916,172 +1952,182 @@ msgstr "" "searchPackages() zostanie usunięte w przyszłych wersjach " "yuma. Zamiast tego użyj searchGenerator(). \n" -#: ../yum/__init__.py:1967 +#: ../yum/__init__.py:2001 #, python-format msgid "Searching %d packages" msgstr "Wyszukiwanie %d pakietów" -#: ../yum/__init__.py:1971 +#: ../yum/__init__.py:2005 #, python-format msgid "searching package %s" msgstr "wyszukiwanie pakietu %s" -#: ../yum/__init__.py:1983 +#: ../yum/__init__.py:2017 msgid "searching in file entries" msgstr "wyszukiwanie we wpisach plików" -#: ../yum/__init__.py:1990 +#: ../yum/__init__.py:2024 msgid "searching in provides entries" msgstr "wyszukiwanie we wpisach dostarczania" -#: ../yum/__init__.py:2023 +#: ../yum/__init__.py:2057 #, python-format msgid "Provides-match: %s" msgstr "Wyniki dostarczania: %s" -#: ../yum/__init__.py:2072 +#: ../yum/__init__.py:2106 msgid "No group data available for configured repositories" msgstr "Brak dostępnych danych grup dla skonfigurowanych repozytoriów" -#: ../yum/__init__.py:2103 ../yum/__init__.py:2122 ../yum/__init__.py:2153 -#: ../yum/__init__.py:2159 ../yum/__init__.py:2238 ../yum/__init__.py:2242 -#: ../yum/__init__.py:2539 +#: ../yum/__init__.py:2137 ../yum/__init__.py:2156 ../yum/__init__.py:2187 +#: ../yum/__init__.py:2193 ../yum/__init__.py:2272 ../yum/__init__.py:2276 +#: ../yum/__init__.py:2586 #, python-format msgid "No Group named %s exists" msgstr "Grupa o nazwie %s nie istnieje" -#: ../yum/__init__.py:2134 ../yum/__init__.py:2255 +#: ../yum/__init__.py:2168 ../yum/__init__.py:2289 #, python-format msgid "package %s was not marked in group %s" msgstr "pakiet %s nie został oznaczony w grupie %s" -#: ../yum/__init__.py:2181 +#: ../yum/__init__.py:2215 #, python-format msgid "Adding package %s from group %s" msgstr "Dodawanie pakietu %s z grupy %s" -#: ../yum/__init__.py:2185 +#: ../yum/__init__.py:2219 #, python-format msgid "No package named %s available to be installed" msgstr "Brak dostępnego pakietu o nazwie %s do zainstalowania" -#: ../yum/__init__.py:2282 +#: ../yum/__init__.py:2316 #, python-format msgid "Package tuple %s could not be found in packagesack" msgstr "Nie można znaleźć krotki pakietu %s w zestawie pakietów" -#: ../yum/__init__.py:2296 +#: ../yum/__init__.py:2330 msgid "" "getInstalledPackageObject() will go away, use self.rpmdb.searchPkgTuple().\n" msgstr "" "getInstalledPackageObject() zostanie usunięte, użyj self.rpmdb.searchPkgTuple" "().\n" -#: ../yum/__init__.py:2352 ../yum/__init__.py:2397 +#: ../yum/__init__.py:2386 ../yum/__init__.py:2436 msgid "Invalid version flag" msgstr "Nieprawidłowa flaga wersji" -#: ../yum/__init__.py:2367 ../yum/__init__.py:2372 +#: ../yum/__init__.py:2406 ../yum/__init__.py:2411 #, python-format msgid "No Package found for %s" msgstr "Nie znaleziono pakietu %s" -#: ../yum/__init__.py:2572 +#: ../yum/__init__.py:2627 msgid "Package Object was not a package object instance" msgstr "Obiekt pakietu nie był instancją obiektu pakietu" -#: ../yum/__init__.py:2576 +#: ../yum/__init__.py:2631 msgid "Nothing specified to install" msgstr "Nie podano nic do zainstalowania" -#: ../yum/__init__.py:2592 ../yum/__init__.py:3307 +#: ../yum/__init__.py:2647 ../yum/__init__.py:3411 #, python-format msgid "Checking for virtual provide or file-provide for %s" msgstr "Sprawdzanie wirtualnych zależności lub plików dla %s" -#: ../yum/__init__.py:2598 ../yum/__init__.py:2874 ../yum/__init__.py:3037 -#: ../yum/__init__.py:3313 +#: ../yum/__init__.py:2653 ../yum/__init__.py:2960 ../yum/__init__.py:3127 +#: ../yum/__init__.py:3417 #, python-format msgid "No Match for argument: %s" msgstr "Brak wyników dla parametru: %s" -#: ../yum/__init__.py:2672 +#: ../yum/__init__.py:2729 #, python-format msgid "Package %s installed and not available" msgstr "Pakiet %s jest zainstalowany, ale nie jest dostępny" -#: ../yum/__init__.py:2675 +#: ../yum/__init__.py:2732 msgid "No package(s) available to install" msgstr "Brak pakietów dostępnych do instalacji" -#: ../yum/__init__.py:2687 +#: ../yum/__init__.py:2744 #, python-format msgid "Package: %s - already in transaction set" msgstr "Pakiet: %s - jest już w zestawie transakcji" -#: ../yum/__init__.py:2702 +#: ../yum/__init__.py:2770 +#, python-format +msgid "Package %s is obsoleted by %s which is already installed" +msgstr "Pakiet %s został zastąpiony przez %s, który jest już zainstalowany" + +#: ../yum/__init__.py:2773 #, python-format msgid "Package %s is obsoleted by %s, trying to install %s instead" msgstr "" "Pakiet %s został zastąpiony przez %s, próbowanie instalacji %s zamiast niego" -#: ../yum/__init__.py:2710 +#: ../yum/__init__.py:2781 #, python-format msgid "Package %s already installed and latest version" msgstr "Pakiet %s jest już zainstalowany w najnowszej wersji" -#: ../yum/__init__.py:2724 +#: ../yum/__init__.py:2795 #, python-format msgid "Package matching %s already installed. Checking for update." msgstr "" "Pakiet pasujący do %s jest już zainstalowany. Sprawdzanie aktualizacji." #. update everything (the easy case) -#: ../yum/__init__.py:2810 +#: ../yum/__init__.py:2889 msgid "Updating Everything" msgstr "Aktualizowanie wszystkiego" -#: ../yum/__init__.py:2828 ../yum/__init__.py:2939 ../yum/__init__.py:2960 -#: ../yum/__init__.py:2986 +#: ../yum/__init__.py:2910 ../yum/__init__.py:3025 ../yum/__init__.py:3054 +#: ../yum/__init__.py:3081 #, python-format msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s" msgstr "Przestarzały pakiet nie zostanie zaktualizowany: %s.%s %s:%s-%s" -#: ../yum/__init__.py:2863 ../yum/__init__.py:3034 +#: ../yum/__init__.py:2945 ../yum/__init__.py:3124 #, python-format msgid "%s" msgstr "%s" -#: ../yum/__init__.py:2930 +#: ../yum/__init__.py:3016 #, python-format msgid "Package is already obsoleted: %s.%s %s:%s-%s" msgstr "Pakiet został już zastąpiony: %s.%s %s:%s-%s" -#: ../yum/__init__.py:2963 ../yum/__init__.py:2989 +#: ../yum/__init__.py:3049 +#, python-format +msgid "Not Updating Package that is obsoleted: %s" +msgstr "Przestarzały pakiet nie zostanie zaktualizowany: %s" + +#: ../yum/__init__.py:3058 ../yum/__init__.py:3085 #, python-format msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s" msgstr "Już zaktualizowany pakiet nie zostanie zaktualizowany: %s.%s %s:%s-%s" -#: ../yum/__init__.py:3050 +#: ../yum/__init__.py:3140 msgid "No package matched to remove" msgstr "Brak pasujących pakietów do usunięcia" -#: ../yum/__init__.py:3084 ../yum/__init__.py:3175 ../yum/__init__.py:3262 +#: ../yum/__init__.py:3173 ../yum/__init__.py:3277 ../yum/__init__.py:3366 #, python-format msgid "Cannot open file: %s. Skipping." msgstr "Nie można otworzyć pliku: %s. Pomijanie." -#: ../yum/__init__.py:3087 ../yum/__init__.py:3178 ../yum/__init__.py:3265 +#: ../yum/__init__.py:3176 ../yum/__init__.py:3280 ../yum/__init__.py:3369 #, python-format msgid "Examining %s: %s" msgstr "Sprawdzanie %s: %s" -#: ../yum/__init__.py:3095 ../yum/__init__.py:3181 ../yum/__init__.py:3268 +#: ../yum/__init__.py:3184 ../yum/__init__.py:3283 ../yum/__init__.py:3372 #, python-format msgid "Cannot add package %s to transaction. Not a compatible architecture: %s" msgstr "Nie można dodać pakietu %s do transakcji. Niezgodna architektura: %s" -#: ../yum/__init__.py:3103 +#: ../yum/__init__.py:3192 #, python-format msgid "" "Package %s not installed, cannot update it. Run yum install to install it " @@ -2090,98 +2136,98 @@ msgstr "" "Pakiet %s nie jest zainstalowany, nie można go zaktualizować. Uruchom yum " "install, aby go zainstalować." -#: ../yum/__init__.py:3138 ../yum/__init__.py:3192 ../yum/__init__.py:3279 +#: ../yum/__init__.py:3227 ../yum/__init__.py:3294 ../yum/__init__.py:3383 #, python-format msgid "Excluding %s" msgstr "Wykluczanie %s" -#: ../yum/__init__.py:3143 +#: ../yum/__init__.py:3232 #, python-format msgid "Marking %s to be installed" msgstr "Oznaczanie %s do zainstalowania" -#: ../yum/__init__.py:3149 +#: ../yum/__init__.py:3238 #, python-format msgid "Marking %s as an update to %s" msgstr "Oznaczanie %s jako aktualizacji %s" -#: ../yum/__init__.py:3156 +#: ../yum/__init__.py:3245 #, python-format msgid "%s: does not update installed package." msgstr "%s: nie aktualizuj zainstalowanego pakietu." -#: ../yum/__init__.py:3211 +#: ../yum/__init__.py:3313 msgid "Problem in reinstall: no package matched to remove" msgstr "" "Podczas ponownego instalowania wystąpił problem: brak pasujących pakietów do " "usunięcia" -#: ../yum/__init__.py:3223 ../yum/__init__.py:3340 +#: ../yum/__init__.py:3326 ../yum/__init__.py:3444 #, python-format msgid "Package %s is allowed multiple installs, skipping" msgstr "Pakiet %s może być wielokrotnie instalowany, pomijanie" -#: ../yum/__init__.py:3241 +#: ../yum/__init__.py:3347 #, python-format msgid "Problem in reinstall: no package %s matched to install" msgstr "" "Podczas ponownego instalowania wystąpił problem: brak pakietu %s pasującego " "do zainstalowania" -#: ../yum/__init__.py:3332 +#: ../yum/__init__.py:3436 msgid "No package(s) available to downgrade" msgstr "Brak pakietów dostępnych do instalacji starszej wersji" -#: ../yum/__init__.py:3376 +#: ../yum/__init__.py:3480 #, python-format msgid "No Match for available package: %s" msgstr "Brak wyników dla dostępnych pakietów: %s" -#: ../yum/__init__.py:3382 +#: ../yum/__init__.py:3486 #, python-format msgid "Only Upgrade available on package: %s" msgstr "Dla pakietu dostępna jest tylko aktualizacja: %s" -#: ../yum/__init__.py:3441 +#: ../yum/__init__.py:3545 #, python-format msgid "Retrieving GPG key from %s" msgstr "Pobieranie klucza GPG z %s" -#: ../yum/__init__.py:3461 +#: ../yum/__init__.py:3565 msgid "GPG key retrieval failed: " msgstr "Pobranie klucza GPG nie powiodło się: " -#: ../yum/__init__.py:3472 +#: ../yum/__init__.py:3576 #, python-format msgid "GPG key parsing failed: key does not have value %s" msgstr "" "Przeanalizowanie klucza GPG nie powiodło się: klucz nie posiada wartości %s" -#: ../yum/__init__.py:3504 +#: ../yum/__init__.py:3608 #, python-format msgid "GPG key at %s (0x%s) is already installed" msgstr "Klucz GPG %s (0x%s) jest już zainstalowany" #. Try installing/updating GPG key -#: ../yum/__init__.py:3509 ../yum/__init__.py:3571 +#: ../yum/__init__.py:3613 ../yum/__init__.py:3675 #, python-format msgid "Importing GPG key 0x%s \"%s\" from %s" msgstr "Importowanie klucza GPG 0x%s \"%s\" z %s" -#: ../yum/__init__.py:3526 +#: ../yum/__init__.py:3630 msgid "Not installing key" msgstr "Klucz nie zostanie zainstalowany" -#: ../yum/__init__.py:3532 +#: ../yum/__init__.py:3636 #, python-format msgid "Key import failed (code %d)" msgstr "Zaimportowanie klucza nie powiodło się (kod %d)" -#: ../yum/__init__.py:3533 ../yum/__init__.py:3592 +#: ../yum/__init__.py:3637 ../yum/__init__.py:3696 msgid "Key imported successfully" msgstr "Klucz został pomyślnie zaimportowany" -#: ../yum/__init__.py:3538 ../yum/__init__.py:3597 +#: ../yum/__init__.py:3642 ../yum/__init__.py:3701 #, python-format msgid "" "The GPG keys listed for the \"%s\" repository are already installed but they " @@ -2190,81 +2236,81 @@ msgid "" msgstr "" "Klucze GPG wyświetlone dla repozytorium \"%s\" są już zainstalowane, ale nie " "są poprawne dla tego pakietu.\n" -"Sprawdź, czy dla tego repozytorium skonfigurowane są poprawne adresy do " +"Sprawdź, czy dla tego repozytorium skonfigurowane są poprawne adresy URL do " "kluczy." -#: ../yum/__init__.py:3547 +#: ../yum/__init__.py:3651 msgid "Import of key(s) didn't help, wrong key(s)?" msgstr "Zaimportowanie kluczy nie pomogło, błędne klucze?" -#: ../yum/__init__.py:3566 +#: ../yum/__init__.py:3670 #, python-format msgid "GPG key at %s (0x%s) is already imported" msgstr "Klucz GPG %s (0x%s) został już zaimportowany" -#: ../yum/__init__.py:3586 +#: ../yum/__init__.py:3690 #, python-format msgid "Not installing key for repo %s" msgstr "Klucz dla repozytorium %s nie zostanie zainstalowany" -#: ../yum/__init__.py:3591 +#: ../yum/__init__.py:3695 msgid "Key import failed" msgstr "Zaimportowanie klucza nie powiodło się" -#: ../yum/__init__.py:3712 +#: ../yum/__init__.py:3816 msgid "Unable to find a suitable mirror." msgstr "Nie można znaleźć odpowiedniego serwera lustrzanego." -#: ../yum/__init__.py:3714 +#: ../yum/__init__.py:3818 msgid "Errors were encountered while downloading packages." msgstr "Podczas pobierania pakietów wystąpiły błędy." -#: ../yum/__init__.py:3755 +#: ../yum/__init__.py:3868 #, python-format msgid "Please report this error at %s" msgstr "Zgłoś ten błąd na %s" -#: ../yum/__init__.py:3779 +#: ../yum/__init__.py:3892 msgid "Test Transaction Errors: " msgstr "Błędy testu transakcji: " #. Mostly copied from YumOutput._outKeyValFill() -#: ../yum/plugins.py:205 +#: ../yum/plugins.py:202 msgid "Loaded plugins: " msgstr "Wczytane wtyczki: " -#: ../yum/plugins.py:219 ../yum/plugins.py:225 +#: ../yum/plugins.py:216 ../yum/plugins.py:222 #, python-format msgid "No plugin match for: %s" msgstr "Brak wyników dla wtyczki: %s" -#: ../yum/plugins.py:255 +#: ../yum/plugins.py:252 #, python-format msgid "Not loading \"%s\" plugin, as it is disabled" msgstr "Wtyczka \"%s\" nie została wczytana, ponieważ jest wyłączona" #. Give full backtrace: -#: ../yum/plugins.py:267 +#: ../yum/plugins.py:264 #, python-format msgid "Plugin \"%s\" can't be imported" msgstr "Nie można zaimportować wtyczki \"%s\"" -#: ../yum/plugins.py:274 +#: ../yum/plugins.py:271 #, python-format msgid "Plugin \"%s\" doesn't specify required API version" msgstr "Wtyczka \"%s\" nie określa wymaganej wersji API" -#: ../yum/plugins.py:279 +#: ../yum/plugins.py:276 #, python-format msgid "Plugin \"%s\" requires API %s. Supported API is %s." msgstr "Wtyczka \"%s\" wymaga API %s. Obsługiwane API to %s." -#: ../yum/plugins.py:312 +#: ../yum/plugins.py:309 #, python-format msgid "Loading \"%s\" plugin" msgstr "Wczytywanie wtyczki \"%s\"" -#: ../yum/plugins.py:319 +#: ../yum/plugins.py:316 #, python-format msgid "" "Two or more plugins with the name \"%s\" exist in the plugin search path" @@ -2272,19 +2318,19 @@ msgstr "" "Istnieją dwie lub więcej wtyczek o nazwie \"%s\" w ścieżce wyszukiwania " "wtyczek" -#: ../yum/plugins.py:339 +#: ../yum/plugins.py:336 #, python-format msgid "Configuration file %s not found" msgstr "Nie znaleziono pliku konfiguracji %s" #. for #. Configuration files for the plugin not found -#: ../yum/plugins.py:342 +#: ../yum/plugins.py:339 #, python-format msgid "Unable to find configuration file for plugin %s" msgstr "Nie można naleźć pliku konfiguracji dla wtyczki %s" -#: ../yum/plugins.py:500 +#: ../yum/plugins.py:497 msgid "registration of commands not supported" msgstr "rejestracja poleceń nie jest obsługiwana" diff --git a/rpmUtils/arch.py b/rpmUtils/arch.py index d22782b..edfc707 100644 --- a/rpmUtils/arch.py +++ b/rpmUtils/arch.py @@ -255,6 +255,7 @@ def getCanonPPCArch(arch): def getCanonSPARCArch(arch): # Deal with sun4v, sun4u, sun4m cases + SPARCtype = None f = open("/proc/cpuinfo", "r") lines = f.readlines() f.close() @@ -262,6 +263,9 @@ def getCanonSPARCArch(arch): if line.startswith("type"): SPARCtype = line.split(':')[1] break + if SPARCtype is None: + return arch + if SPARCtype.find("sun4v") != -1: if arch.startswith("sparc64"): return "sparc64v" diff --git a/rpmUtils/updates.py b/rpmUtils/updates.py index f2d43f8..3264956 100644 --- a/rpmUtils/updates.py +++ b/rpmUtils/updates.py @@ -24,7 +24,7 @@ class Updates: """ This class computes and keeps track of updates and obsoletes. initialize, add installed packages, add available packages (both as - unique lists of name, epoch, ver, rel, arch tuples), add an optional dict + unique lists of name, arch, ver, rel, epoch tuples), add an optional dict of obsoleting packages with obsoletes and what they obsolete ie:: foo, i386, 0, 1.1, 1: bar >= 1.1. """ diff --git a/test/skipbroken-tests.py b/test/skipbroken-tests.py index db71a21..f8896f1 100644 --- a/test/skipbroken-tests.py +++ b/test/skipbroken-tests.py @@ -582,6 +582,24 @@ class SkipBrokenTests(DepsolveTests): self.assertEquals('empty', *self.resolveCode(skip=True)) self.assertResult([c1,d1,r1,r2,r3,r4]) + def testDualPackageUpdate(self): + ''' + RHBZ #522112 + two version of the same package installed on the system + and update will update both, but if it fail some dep only + One of the updated packages will be removed from the + transaction. + ''' + i1 = self.instPackage('xorg-x11-server-Xorg','1.6.99.900') + i2 = self.instPackage('xorg-x11-server-Xorg','1.6.3') + u1 = self.repoPackage('xorg-x11-server-Xorg', '1.6.99.901') + u1.addRequires("notfound") + self.tsInfo.addUpdate(u1, oldpo=i1) + self.tsInfo.addUpdate(u1, oldpo=i2) + self.assertEquals('empty', *self.resolveCode(skip=True)) + self.assertResult([i1,i2]) + + def resolveCode(self,skip = False): solver = YumBase() diff --git a/utils.py b/utils.py index 5456c68..945aa65 100644 --- a/utils.py +++ b/utils.py @@ -15,14 +15,29 @@ import sys import time +import exceptions import yum from cli import * +from yum import Errors from yum import _ +from yum import logginglevels from optparse import OptionGroup import yum.plugins as plugins + +def suppress_keyboard_interrupt_message(): + old_excepthook = sys.excepthook + + def new_hook(type, value, traceback): + if type != exceptions.KeyboardInterrupt: + old_excepthook(type, value, traceback) + else: + pass + + sys.excepthook = new_hook + class YumUtilBase(YumBaseCli): def __init__(self,name,ver,usage): YumBaseCli.__init__(self) @@ -32,7 +47,7 @@ class YumUtilBase(YumBaseCli): self._utilVer = ver self._option_group = OptionGroup(self._parser, "%s options" % self._utilName,"") self._parser.add_option_group(self._option_group) - + suppress_keyboard_interrupt_message() def getOptionParser(self): return self._parser @@ -46,7 +61,7 @@ class YumUtilBase(YumBaseCli): while True: try: self.doLock() - except yum.Errors.LockError, e: + except Errors.LockError, e: if "%s" %(e.msg,) != lockerr: lockerr = "%s" %(e.msg,) self.logger.critical(lockerr) @@ -83,7 +98,7 @@ class YumUtilBase(YumBaseCli): pc.enabled_plugins = self._parser._splitArg(opts.enableplugins) self.conf - except yum.Errors.ConfigError, e: + except Errors.ConfigError, e: self.logger.critical(_('Config Error: %s'), e) sys.exit(1) except ValueError, e: @@ -108,10 +123,63 @@ class YumUtilBase(YumBaseCli): self._getRpmDB() self._getRepos(doSetup = True) self._getSacks() - except yum.Errors.YumBaseError, msg: + except Errors.YumBaseError, msg: self.logger.critical(str(msg)) sys.exit(1) - + + def doUtilTransaction(self): + def exUserCancel(): + self.logger.critical(_('\n\nExiting on user cancel')) + if unlock(): return 200 + return 1 + + def exIOError(e): + if e.errno == 32: + self.logger.critical(_('\n\nExiting on Broken Pipe')) + else: + self.logger.critical(_('\n\n%s') % str(e)) + if unlock(): return 200 + return 1 + + def exPluginExit(e): + '''Called when a plugin raises PluginYumExit. + + Log the plugin's exit message if one was supplied. + ''' # ' xemacs hack + exitmsg = str(e) + if exitmsg: + self.logger.warn('\n\n%s', exitmsg) + if unlock(): return 200 + return 1 + + def exFatal(e): + self.logger.critical('\n\n%s', to_unicode(e.value)) + if unlock(): return 200 + return 1 + + def unlock(): + try: + self.closeRpmDB() + self.doUnlock() + except Errors.LockError, e: + return 200 + return 0 + + try: + return_code = self.doTransaction() + except plugins.PluginYumExit, e: + return exPluginExit(e) + except Errors.YumBaseError, e: + return exFatal(e) + except KeyboardInterrupt: + return exUserCancel() + except IOError, e: + return exIOError(e) + + self.verbose_logger.log(logginglevels.INFO_2, _('Complete!')) + if unlock(): return 200 + return return_code + def main(): name = 'testutil' ver = '0.1' diff --git a/yum.spec b/yum.spec index 5145061..5652586 100644 --- a/yum.spec +++ b/yum.spec @@ -78,6 +78,7 @@ exit 0 %defattr(-, root, root) %doc README AUTHORS COPYING TODO INSTALL ChangeLog PLUGINS %config(noreplace) %{_sysconfdir}/yum/yum.conf +%config(noreplace) %{_sysconfdir}/yum/version-groups.conf %dir %{_sysconfdir}/%{name} %dir %{_sysconfdir}/yum/repos.d %config %{_sysconfdir}/logrotate.d/%{name} diff --git a/yum/Errors.py b/yum/Errors.py index 6f0ffe4..3a5aca9 100644 --- a/yum/Errors.py +++ b/yum/Errors.py @@ -101,6 +101,9 @@ class RepoMDError(YumBaseError): class PackageSackError(YumBaseError): pass +class RpmDBError(YumBaseError): + pass + class CompsException(YumBaseError): pass diff --git a/yum/__init__.py b/yum/__init__.py index 8211c70..6e06005 100644 --- a/yum/__init__.py +++ b/yum/__init__.py @@ -32,9 +32,9 @@ import logging.config import operator import gzip -import yum.i18n -_ = yum.i18n._ -P_ = yum.i18n.P_ +import i18n +_ = i18n._ +P_ = i18n.P_ import config from config import ParsingError, ConfigParser @@ -57,14 +57,15 @@ import plugins import logginglevels import yumRepo import callbacks +import history import warnings warnings.simplefilter("ignore", Errors.YumFutureDeprecationWarning) from packages import parsePackages, YumAvailablePackage, YumLocalPackage, YumInstalledPackage, comparePoEVR from constants import * -from yum.rpmtrans import RPMTransaction,SimpleCliCallBack -from yum.i18n import to_unicode +from rpmtrans import RPMTransaction,SimpleCliCallBack +from i18n import to_unicode, to_str import string @@ -137,6 +138,7 @@ class YumBase(depsolve.Depsolve): self._rpmdb = None self._up = None self._comps = None + self._history = None self._pkgSack = None self._lockfile = None self.skipped_packages = [] # packages skip by the skip-broken code @@ -153,6 +155,7 @@ class YumBase(depsolve.Depsolve): self.arch = ArchStorage() self.preconf = _YumPreBaseConf() + self.run_with_package_names = set() def __del__(self): self.close() @@ -160,6 +163,10 @@ class YumBase(depsolve.Depsolve): self.doUnlock() def close(self): + # We don't want to create the object, so we test if it's been created + if self._history is not None: + self.history.close() + if self._repos: self._repos.close() @@ -272,6 +279,10 @@ class YumBase(depsolve.Depsolve): # worthless. So we delete it, and thus. it'll raise AttributeError del self.preconf + # Packages used to run yum... + for pkgname in self.conf.history_record_packages: + self.run_with_package_names.add(pkgname) + # run the postconfig plugin hook self.plugins.run('postconfig') self.yumvar = self.conf.yumvar @@ -694,6 +705,13 @@ class YumBase(depsolve.Depsolve): self._comps.compile(self.rpmdb.simplePkgList()) self.verbose_logger.debug('group time: %0.3f' % (time.time() - group_st)) return self._comps + + def _getHistory(self): + """auto create the history object that to acess/append the transaction + history information. """ + if self._history is None: + self._history = yum.history.YumHistory(root=self.conf.installroot) + return self._history # properties so they auto-create themselves with defaults repos = property(fget=lambda self: self._getRepos(), @@ -718,6 +736,9 @@ class YumBase(depsolve.Depsolve): comps = property(fget=lambda self: self._getGroups(), fset=lambda self, value: self._setGroups(value), fdel=lambda self: setattr(self, "_comps", None)) + history = property(fget=lambda self: self._getHistory(), + fset=lambda self, value: setattr(self, "_history",value), + fdel=lambda self: setattr(self, "_history", None)) def doSackFilelistPopulate(self): @@ -879,6 +900,7 @@ class YumBase(depsolve.Depsolve): self.verbose_logger.debug('SKIPBROKEN: sanity check the current transaction' ) self.tsInfo.resetResolved(hard=True) self._checkMissingObsoleted() # This is totally insane, but needed :( + self._checkUpdatedLeftovers() # Cleanup updated leftovers rescode, restring = self.resolveDeps() if rescode != 1: self.verbose_logger.debug(_("Skip-broken took %i rounds "), count) @@ -901,7 +923,7 @@ class YumBase(depsolve.Depsolve): then the TS_OBSOLETED can get removed from the transaction so we must make sure that they, exist and else create them """ - for txmbr in self.tsInfo: + for txmbr in self.tsInfo.getMembersWithState(None, [TS_OBSOLETING,TS_OBSOLETED]): for pkg in txmbr.obsoletes: if not self.tsInfo.exists(pkg.pkgtup): obs = self.tsInfo.addObsoleted(pkg,txmbr.po) @@ -914,6 +936,21 @@ class YumBase(depsolve.Depsolve): self.verbose_logger.debug('SKIPBROKEN: Remove extra obsoleted %s (%s)' % (txmbr.po,pkg) ) self.tsInfo.remove(txmbr.po.pkgtup) + def _checkUpdatedLeftovers(self): + """ + If multiple packages is updated the same package + and this package get removed because of an dep issue + then make sure that all the TS_UPDATED get removed. + """ + for txmbr in self.tsInfo.getMembersWithState(None, [TS_UPDATED]): + for pkg in txmbr.updated_by: + # check if the updating txmbr is in the transaction + # else remove the updated txmbr + # it clean out some really wierd cases with dupes installed on the system + if not self.tsInfo.exists(pkg.pkgtup): + self.verbose_logger.debug('SKIPBROKEN: Remove extra updated %s (%s)' % (txmbr.po,pkg) ) + self.tsInfo.remove(txmbr.po.pkgtup) + def _getPackagesToRemoveAllArch(self,po): ''' get all compatible arch packages in pkgSack''' pkgs = [] @@ -1013,6 +1050,18 @@ class YumBase(depsolve.Depsolve): self.plugins.run('pretrans') + using_pkgs_pats = list(self.run_with_package_names) + using_pkgs = self.rpmdb.returnPackages(patterns=using_pkgs_pats) + rpmdbv = self.rpmdb.simpleVersion(main_only=True)[0] + lastdbv = self.history.last() + if lastdbv is not None: + lastdbv = lastdbv.end_rpmdbversion + if lastdbv is not None and rpmdbv != lastdbv: + errstring = _('Warning: RPMDB has been altered since the last yum transaction.') + self.logger.warning(errstring) + if self.conf.history_record: + self.history.beg(rpmdbv, using_pkgs, list(self.tsInfo)) + errors = self.ts.run(cb.callback, '') # ts.run() exit codes are, hmm, "creative": None means all ok, empty # list means some errors happened in the transaction and non-empty @@ -1028,6 +1077,9 @@ class YumBase(depsolve.Depsolve): self.verbose_logger.debug(errstring) resultobject.return_code = 1 else: + if self.conf.history_record: + herrors = [to_unicode(to_str(x)) for x in errors] + self.history.end(rpmdbv, 2, errors=herrors) raise Errors.YumBaseError, errors if not self.conf.keepcache: @@ -1044,10 +1096,10 @@ class YumBase(depsolve.Depsolve): self.rpmdb.dropCachedData() # drop out the rpm cache so we don't step on bad hdr indexes self.plugins.run('posttrans') # sync up what just happened versus what is in the rpmdb - self.verifyTransaction() + self.verifyTransaction(resultobject) return resultobject - def verifyTransaction(self): + def verifyTransaction(self, resultobject=None): """checks that the transaction did what we expected it to do. Also propagates our external yumdb info""" @@ -1071,7 +1123,7 @@ class YumBase(depsolve.Depsolve): self.logger.critical(_('%s was supposed to be installed' \ ' but is not!' % txmbr.po)) continue - po = self.rpmdb.searchPkgTuple(txmbr.pkgtup)[0] + po = self.getInstalledPackageObject(txmbr.pkgtup) rpo = txmbr.po po.yumdb_info.from_repo = rpo.repoid po.yumdb_info.reason = txmbr.reason @@ -1115,6 +1167,11 @@ class YumBase(depsolve.Depsolve): else: self.verbose_logger.log(logginglevels.DEBUG_2, 'What is this? %s' % txmbr.po) + if self.conf.history_record: + ret = -1 + if resultobject is not None: + ret = resultobject.return_code + self.history.end(self.rpmdb.simpleVersion(main_only=True)[0], ret) self.rpmdb.dropCachedData() def costExcludePackages(self): @@ -1259,7 +1316,10 @@ class YumBase(depsolve.Depsolve): os.makedirs(lockdir, mode=0755) fd = os.open(filename, os.O_EXCL|os.O_CREAT|os.O_WRONLY, mode) except OSError, msg: - if not msg.errno == errno.EEXIST: raise msg + if not msg.errno == errno.EEXIST: + # Whoa. What the heck happened? + errmsg = _('Could not create lock at %s: %s ') % (filename, str(msg)) + raise Errors.LockError(msg.errno, errmsg, contents) return 0 else: os.write(fd, contents) @@ -1783,7 +1843,7 @@ class YumBase(depsolve.Depsolve): for (pkgtup, instTup) in self.up.getObsoletesTuples(): (n,a,e,v,r) = pkgtup pkgs = self.pkgSack.searchNevra(name=n, arch=a, ver=v, rel=r, epoch=e) - instpo = self.rpmdb.searchPkgTuple(instTup)[0] # the first one + instpo = self.getInstalledPackageObject(instTup) for po in pkgs: obsoletes.append(po) obsoletesTuples.append((po, instpo)) @@ -1986,10 +2046,7 @@ class YumBase(depsolve.Depsolve): canBeFile = True else: isglob = True - if arg[0] != '/' and not misc.re_glob(arg[0]): - canBeFile = False - else: - canBeFile = True + canBeFile = misc.re_filename(arg) if not isglob: usedDepString = True @@ -2326,11 +2383,16 @@ class YumBase(depsolve.Depsolve): return result def getInstalledPackageObject(self, pkgtup): - """returns a YumInstallPackage object for the pkgtup specified""" - warnings.warn(_('getInstalledPackageObject() will go away, use self.rpmdb.searchPkgTuple().\n'), - Errors.YumFutureDeprecationWarning, stacklevel=2) - - po = self.rpmdb.searchPkgTuple(pkgtup)[0] # take the first one + """ Returns a YumInstallPackage object for the pkgtup specified, or + raises an exception. You should use this instead of + searchPkgTuple() if you are assuming there is a value. """ + + pkgs = self.rpmdb.searchPkgTuple(pkgtup) + if len(pkgs) == 0: + raise Errors.RpmDBError, _('Package tuple %s could not be found in rpmdb') % str(pkgtup) + + # Dito. FIXME from getPackageObject() for len() > 1 ... :) + po = pkgs[0] # take the first one return po def gpgKeyCheck(self): @@ -2594,7 +2656,7 @@ class YumBase(depsolve.Depsolve): if not isinstance(po, YumLocalPackage): for (obstup, inst_tup) in self.up.getObsoletersTuples(name=po.name): if po.pkgtup == obstup: - installed_pkg = self.rpmdb.searchPkgTuple(inst_tup)[0] + installed_pkg = self.getInstalledPackageObject(inst_tup) yield installed_pkg else: for (obs_n, obs_f, (obs_e, obs_v, obs_r)) in po.obsoletes: @@ -2898,7 +2960,7 @@ class YumBase(depsolve.Depsolve): topkg = self._test_loop(obsoleting_pkg, self._pkg2obspkg) if topkg is not None: obsoleting_pkg = topkg - installed_pkg = self.rpmdb.searchPkgTuple(installed)[0] + installed_pkg = self.getInstalledPackageObject(installed) txmbr = self.tsInfo.addObsoleting(obsoleting_pkg, installed_pkg) self.tsInfo.addObsoleted(installed_pkg, obsoleting_pkg) if requiringPo: @@ -3059,7 +3121,7 @@ class YumBase(depsolve.Depsolve): updated) else: - updated_pkg = self.rpmdb.searchPkgTuple(updated)[0] + updated_pkg = self.getInstalledPackageObject(updated) txmbr = self.tsInfo.addUpdate(available_pkg, updated_pkg) if requiringPo: txmbr.setAsDep(requiringPo) @@ -3426,6 +3488,7 @@ class YumBase(depsolve.Depsolve): if not apkgs: # Do we still want to return errors here? # We don't in the cases below, so I didn't here... + pkgs = [] if 'pattern' in kwargs: pkgs = self.rpmdb.returnPackages(patterns=[kwargs['pattern']], ignore_case=False) @@ -3534,6 +3597,84 @@ class YumBase(depsolve.Depsolve): return returndict + def history_redo(self, transaction): + """ Given a valid historical transaction object, try and repeat + that transaction. """ + # NOTE: This is somewhat basic atm. ... see comment in undo. + old_conf_obs = self.conf.obsoletes + self.conf.obsoletes = False + done = False + for pkg in transaction.trans_data: + if pkg.state == 'Reinstall': + if self.reinstall(pkgtup=pkg.pkgtup): + done = True + for pkg in transaction.trans_data: + if pkg.state == 'Downgrade': + try: + if self.downgrade(pkgtup=pkg.pkgtup): + done = True + except yum.Errors.DowngradeError: + self.logger.critical(_('Failed to downgrade: %s'), pkg) + for pkg in transaction.trans_data: + if pkg.state == 'Update': + if self.update(pkgtup=pkg.pkgtup): + done = True + for pkg in transaction.trans_data: + if pkg.state in ('Install', 'True-Install', 'Obsoleting'): + if self.install(pkgtup=pkg.pkgtup): + done = True + for pkg in transaction.trans_data: + if pkg.state == 'Erase': + if self.remove(pkgtup=pkg.pkgtup): + done = True + self.conf.obsoletes = old_conf_obs + return done + + def history_undo(self, transaction): + """ Given a valid historical transaction object, try and undo + that transaction. """ + # NOTE: This is somewhat basic atm. ... for instance we don't check + # that we are going from the old new version. However it's still + # better than the RHN rollback code, and people pay for that :). + # We turn obsoletes off because we want the specific versions of stuff + # from history ... even if they've been obsoleted since then. + old_conf_obs = self.conf.obsoletes + self.conf.obsoletes = False + done = False + for pkg in transaction.trans_data: + if pkg.state == 'Reinstall': + if self.reinstall(pkgtup=pkg.pkgtup): + done = True + for pkg in transaction.trans_data: + if pkg.state == 'Updated': + try: + if self.downgrade(pkgtup=pkg.pkgtup): + done = True + except yum.Errors.DowngradeError: + self.logger.critical(_('Failed to downgrade: %s'), pkg) + for pkg in transaction.trans_data: + if pkg.state == 'Downgraded': + if self.update(pkgtup=pkg.pkgtup): + done = True + for pkg in transaction.trans_data: + if pkg.state == 'Obsoleting': + if self.remove(pkgtup=pkg.pkgtup): + done = True + for pkg in transaction.trans_data: + if pkg.state in ('Install', 'True-Install'): + if self.remove(pkgtup=pkg.pkgtup): + done = True + for pkg in transaction.trans_data: + if pkg.state == 'Obsoleted': + if self.install(pkgtup=pkg.pkgtup): + done = True + for pkg in transaction.trans_data: + if pkg.state == 'Erase': + if self.install(pkgtup=pkg.pkgtup): + done = True + self.conf.obsoletes = old_conf_obs + return done + def _retrievePublicKey(self, keyurl, repo=None): """ Retrieve a key file @@ -3726,6 +3867,7 @@ class YumBase(depsolve.Depsolve): if True: # Don't to magic sorting, yet ret_mid.append(pkg) + continue if pkg.yumdb_info.installonly == 'remove-first': ret_beg.append(pkg) diff --git a/yum/comps.py b/yum/comps.py index 2048c77..d310b1b 100755 --- a/yum/comps.py +++ b/yum/comps.py @@ -26,7 +26,7 @@ from Errors import CompsException # switch all compsexceptions to grouperrors after api break import fnmatch import re -from yum.i18n import to_unicode +from i18n import to_unicode from misc import get_my_lang_code lang_attr = '{http://www.w3.org/XML/1998/namespace}lang' diff --git a/yum/config.py b/yum/config.py index 2f057c3..63b3d17 100644 --- a/yum/config.py +++ b/yum/config.py @@ -703,6 +703,8 @@ class YumConf(StartupConf): sslclientcert = Option() sslclientkey = Option() + history_record = BoolOption(True) + history_record_packages = ListOption(['yum', 'rpm', 'yum-metadata-parser']) _reposlist = [] @@ -763,6 +765,11 @@ class RepoConf(BaseConfig): sslclientkey = Inherit(YumConf.sslclientkey) +class VersionGroupConf(BaseConfig): + pkglist = ListOption() + run_with_packages = BoolOption(False) + + def readStartupConfig(configfile, root): ''' Parse Yum's main configuration file and return a StartupConf instance. @@ -849,6 +856,20 @@ def readMainConfig(startupconf): return yumconf +def readVersionGroupsConfig(configfile="/etc/yum/version-groups.conf"): + parser = ConfigParser() + confpp_obj = ConfigPreProcessor(configfile) + try: + parser.readfp(confpp_obj) + except ParsingError, e: + raise Errors.ConfigError("Parsing file failed: %s" % e) + ret = {} + for section in parser.sections(): + ret[section] = VersionGroupConf() + ret[section].populate(parser, section) + return ret + + def getOption(conf, section, name, option): '''Convenience function to retrieve a parsed and converted value from a ConfigParser. @@ -893,7 +914,13 @@ def _getsysver(installroot, distroverpkg): idx = ts.dbMatch('provides', distroverpkg) except TypeError, e: # This is code for "cannot open rpmdb" - raise Errors.YumBaseError("Error: " + e.message) + # this is for pep 352 compliance on python 2.6 and above :( + if sys.hexversion < 0x02050000: + if hasattr(e,'message'): + raise Errors.YumBaseError("Error: " + str(e.message)) + else: + raise Errors.YumBaseError("Error: " + str(e)) + raise Errors.YumBaseError("Error: " + str(e)) # we're going to take the first one - if there is more than one of these # then the user needs a beating if idx.count() == 0: diff --git a/yum/depsolve.py b/yum/depsolve.py index d6b1b02..c5baacb 100644 --- a/yum/depsolve.py +++ b/yum/depsolve.py @@ -159,13 +159,6 @@ class Depsolve(object): self.verbose_logger.log(logginglevels.DEBUG_1, _('Searching pkgSack for dep: %s'), name) - # we need to check the name - if it doesn't match: - # /etc/* bin/* or /usr/lib/sendmail then we should fetch the - # filelists.xml for all repos to make the searchProvides more complete. - if name[0] == '/': - if not misc.re_primary_filename(name): - self.doSackFilelistPopulate() - pkgs = self.pkgSack.searchProvides(name) @@ -181,7 +174,7 @@ class Depsolve(object): for po in pkgs: self.verbose_logger.log(logginglevels.DEBUG_2, _('Potential match for %s from %s'), name, po) - if name[0] == '/' and r_v is None: + if misc.re_filename(name) and r_v is None: # file dep add all matches to the defSack defSack.addPackage(po) continue @@ -1083,7 +1076,16 @@ class Depsolve(object): # could play a part ... this probably needs a better fix. newest = sorted(rpmdbpkgs)[-1] if newest.verLT(pkg): - ipkgresults[pkg] = 0 + # give pkgs which are updates just a SLIGHT edge + # we should also make sure that any pkg + # we are giving an edge to is not obsoleted by + # something else in the transaction. :( + # there are many ways I hate this - this is but one + ipkgresults[pkg] = 5 + else: + # just b/c they're not installed pkgs doesn't mean they should + # be ignored entirely. Just not preferred + ipkgresults[pkg] = 0 # This is probably only for "renames". What happens is that pkgA-1 gets # obsoleted by pkgB but pkgB requires pkgA-2, now _if_ the pkgA txmbr diff --git a/yum/history.py b/yum/history.py new file mode 100644 index 0000000..18d2a41 --- /dev/null +++ b/yum/history.py @@ -0,0 +1,639 @@ +#!/usr/bin/python -t +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Library General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# Copyright 2009 Red Hat +# +# James Antill + +import time +import os, os.path +import glob +from weakref import proxy as weakref + +from sqlutils import sqlite, executeSQL +import misc +from constants import * +from packages import YumInstalledPackage, YumAvailablePackage, PackageObject +from i18n import to_unicode + +_history_dir = '/var/lib/yum/history' + +# NOTE: That we don't list TS_FAILED, because pkgs shouldn't go into the +# transaction with that. And if they come out with that we don't want to +# match them to anything anyway. +_stcode2sttxt = {TS_UPDATE : 'Update', + TS_UPDATED : 'Updated', + TS_ERASE: 'Erase', + TS_INSTALL: 'Install', + TS_TRUEINSTALL : 'True-Install', + TS_OBSOLETED: 'Obsoleted', + TS_OBSOLETING: 'Obsoleting'} + +_sttxt2stcode = {'Update' : TS_UPDATE, + 'Updated' : TS_UPDATED, + 'Erase' : TS_ERASE, + 'Install' : TS_INSTALL, + 'True-Install' : TS_TRUEINSTALL, + 'Reinstall' : TS_INSTALL, # Broken + 'Downgrade' : TS_INSTALL, # Broken + 'Downgraded' : TS_INSTALL, # Broken + 'Obsoleted' : TS_OBSOLETED, + 'Obsoleting' : TS_OBSOLETING} + +# ---- horrible Copy and paste from sqlitesack ---- +def _sql_esc(pattern): + """ Apply SQLite escaping, if needed. Returns pattern and esc. """ + esc = '' + if "_" in pattern or "%" in pattern: + esc = ' ESCAPE "!"' + pattern = pattern.replace("!", "!!") + pattern = pattern.replace("%", "!%") + pattern = pattern.replace("_", "!_") + return (pattern, esc) + +def _sql_esc_glob(patterns): + """ Converts patterns to SQL LIKE format, if required (or gives up if + not possible). """ + ret = [] + for pattern in patterns: + if '[' in pattern: # LIKE only has % and _, so [abc] can't be done. + return [] # So Load everything + + # Convert to SQL LIKE format + (pattern, esc) = _sql_esc(pattern) + pattern = pattern.replace("*", "%") + pattern = pattern.replace("?", "_") + ret.append((pattern, esc)) + return ret + +def _setupHistorySearchSQL(patterns=None, ignore_case=False): + """Setup need_full and patterns for _yieldSQLDataList, also see if + we can get away with just using searchNames(). """ + + if patterns is None: + patterns = [] + + fields = ['name', 'sql_nameArch', 'sql_nameVerRelArch', + 'sql_nameVer', 'sql_nameVerRel', + 'sql_envra', 'sql_nevra'] + need_full = False + for pat in patterns: + if yum.misc.re_full_search_needed(pat): + need_full = True + break + + pat_max = PATTERNS_MAX + if not need_full: + fields = ['name'] + pat_max = PATTERNS_INDEXED_MAX + if len(patterns) > pat_max: + patterns = [] + if ignore_case: + patterns = _sql_esc_glob(patterns) + else: + tmp = [] + need_glob = False + for pat in patterns: + if misc.re_glob(pat): + tmp.append((pat, 'glob')) + need_glob = True + else: + tmp.append((pat, '=')) + if not need_full and not need_glob and patterns: + return (need_full, patterns, fields, True) + patterns = tmp + return (need_full, patterns, fields, False) +# ---- horrible Copy and paste from sqlitesack ---- + +class YumHistoryPackage(PackageObject): + + def __init__(self, name, arch, epoch, version, release, checksum): + self.name = name + self.version = version + self.release = release + self.epoch = epoch + self.arch = arch + self.pkgtup = (self.name, self.arch, + self.epoch, self.version, self.release) + if checksum is None: + self._checksums = [] # (type, checksum, id(0,1) + else: + chk = checksum.split(':') + self._checksums = [(chk[0], chk[1], 0)] # (type, checksum, id(0,1)) + +class YumHistoryTransaction: + """ Holder for a history transaction. """ + + def __init__(self, history, row): + self._history = weakref(history) + + self.tid = row[0] + self.beg_timestamp = row[1] + self.beg_rpmdbversion = row[2] + self.end_timestamp = row[3] + self.end_rpmdbversion = row[4] + self.loginuid = row[5] + self.return_code = row[6] + + self._loaded_TW = None + self._loaded_TD = None + + self.altered_lt_rpmdb = None + self.altered_gt_rpmdb = None + + def __cmp__(self, other): + if other is None: + return 1 + ret = cmp(self.beg_timestamp, other.beg_timestamp) + if ret: return -ret + ret = cmp(self.end_timestamp, other.end_timestamp) + if ret: return ret + ret = cmp(self.tid, other.tid) + return -ret + + def _getTransWith(self): + if self._loaded_TW is None: + self._loaded_TW = sorted(self._history._old_with_pkgs(self.tid)) + return self._loaded_TW + def _getTransData(self): + if self._loaded_TD is None: + self._loaded_TD = sorted(self._history._old_data_pkgs(self.tid)) + return self._loaded_TD + + trans_with = property(fget=lambda self: self._getTransWith()) + trans_data = property(fget=lambda self: self._getTransData()) + +class YumHistory: + """ API for accessing the history sqlite data. """ + + def __init__(self, root='/', db_path=_history_dir): + self._conn = None + + self.conf = yum.misc.GenericHolder() + self.conf.db_path = os.path.normpath(root + '/' + db_path) + self.conf.writable = False + + if not os.path.exists(self.conf.db_path): + try: + os.makedirs(self.conf.db_path) + except (IOError, OSError), e: + # some sort of useful thing here? A warning? + return + self.conf.writable = True + else: + if os.access(self.conf.db_path, os.W_OK): + self.conf.writable = True + + DBs = glob.glob('%s/history-*-*-*.sqlite' % self.conf.db_path) + self._db_file = None + for d in reversed(sorted(DBs)): + fname = os.path.basename(d) + fname = fname[len("history-"):-len(".sqlite")] + pieces = fname.split('-', 4) + if len(pieces) != 3: + continue + try: + map(int, pieces) + except ValueError: + continue + + self._db_file = d + break + + if self._db_file is None: + self._create_db_file() + + def __del__(self): + self.close() + + def _get_cursor(self): + if self._conn is None: + self._conn = sqlite.connect(self._db_file) + return self._conn.cursor() + def _commit(self): + return self._conn.commit() + + def close(self): + if self._conn is not None: + self._conn.close() + self._conn = None + + def _pkgtup2pid(self, pkgtup, checksum=None): + cur = self._get_cursor() + executeSQL(cur, """SELECT pkgtupid, checksum FROM pkgtups + WHERE name=? AND arch=? AND + epoch=? AND version=? AND release=?""", pkgtup) + for sql_pkgtupid, sql_checksum in cur: + if checksum is None and sql_checksum is None: + return sql_pkgtupid + if checksum is None: + continue + if sql_checksum is None: + continue + if checksum == sql_checksum: + return sql_pkgtupid + + (n,a,e,v,r) = pkgtup + (n,a,e,v,r) = (to_unicode(n),to_unicode(a), + to_unicode(e),to_unicode(v),to_unicode(r)) + if checksum is not None: + res = executeSQL(cur, + """INSERT INTO pkgtups + (name, arch, epoch, version, release, checksum) + VALUES (?, ?, ?, ?, ?, ?)""", (n,a,e,v,r, + checksum)) + else: + res = executeSQL(cur, + """INSERT INTO pkgtups + (name, arch, epoch, version, release) + VALUES (?, ?, ?, ?, ?)""", (n,a,e,v,r)) + return cur.lastrowid + def _apkg2pid(self, po): + csum = po.returnIdSum() + if csum is not None: + csum = "%s:%s" % (str(csum[0]), str(csum[1])) + return self._pkgtup2pid(po.pkgtup, csum) + def _ipkg2pid(self, po): + csum = None + yumdb = po.yumdb_info + if 'checksum_type' in yumdb and 'checksum_type' in yumdb: + csum = "%s:%s" % (yumdb.checksum_type, yumdb.checksum_data) + return self._pkgtup2pid(po.pkgtup, csum) + def pkg2pid(self, po): + if isinstance(po, YumInstalledPackage): + return self._ipkg2pid(po) + if isinstance(po, YumAvailablePackage): + return self._apkg2pid(po) + return self._pkgtup2pid(po.pkgtup, None) + + @staticmethod + def txmbr2state(txmbr): + state = None + if txmbr.output_state in (TS_INSTALL, TS_TRUEINSTALL): + if hasattr(txmbr, 'reinstall'): + state = 'Reinstall' + elif txmbr.downgrades: + state = 'Downgrade' + if txmbr.output_state == TS_ERASE: + if txmbr.downgraded_by: + state = 'Downgraded' + if state is None: + state = _stcode2sttxt.get(txmbr.output_state) + return state + + def trans_with_pid(self, pid): + cur = self._get_cursor() + res = executeSQL(cur, + """INSERT INTO trans_with_pkgs + (tid, pkgtupid) + VALUES (?, ?)""", (self._tid, pid)) + return cur.lastrowid + + def trans_data_pid_beg(self, pid, state): + assert state is not None + if not hasattr(self, '_tid') or state is None: + return # Not configured to run + cur = self._get_cursor() + res = executeSQL(cur, + """INSERT INTO trans_data_pkgs + (tid, pkgtupid, state) + VALUES (?, ?, ?)""", (self._tid, pid, state)) + return cur.lastrowid + def trans_data_pid_end(self, pid, state): + # State can be none here, Eg. TS_FAILED from rpmtrans + if not hasattr(self, '_tid') or state is None: + return # Not configured to run + + cur = self._get_cursor() + res = executeSQL(cur, + """UPDATE trans_data_pkgs SET done = ? + WHERE tid = ? AND pkgtupid = ? AND state = ? + """, ('TRUE', self._tid, pid, state)) + self._commit() + return cur.lastrowid + + def beg(self, rpmdb_version, using_pkgs, txmbrs): + cur = self._get_cursor() + res = executeSQL(cur, + """INSERT INTO trans_beg + (timestamp, rpmdb_version, loginuid) + VALUES (?, ?, ?)""", (int(time.time()), + str(rpmdb_version), + yum.misc.getloginuid())) + self._tid = cur.lastrowid + + for pkg in using_pkgs: + pid = self._ipkg2pid(pkg) + self.trans_with_pid(pid) + + for txmbr in txmbrs: + pid = self.pkg2pid(txmbr.po) + state = self.txmbr2state(txmbr) + self.trans_data_pid_beg(pid, state) + + self._commit() + + def _log_errors(self, errors): + cur = self._get_cursor() + for error in errors: + error = to_unicode(error) + executeSQL(cur, + """INSERT INTO trans_error + (tid, msg) VALUES (?, ?)""", (self._tid, error)) + self._commit() + + def log_scriptlet_output(self, data, msg): + """ Note that data can be either a real pkg. ... or not. """ + if msg is None or not hasattr(self, '_tid'): + return # Not configured to run + + cur = self._get_cursor() + for error in msg.split('\n'): + error = to_unicode(error) + executeSQL(cur, + """INSERT INTO trans_script_stdout + (tid, line) VALUES (?, ?)""", (self._tid, error)) + self._commit() + + def end(self, rpmdb_version, return_code, errors=None): + assert return_code or not errors + cur = self._get_cursor() + res = executeSQL(cur, + """INSERT INTO trans_end + (tid, timestamp, rpmdb_version, return_code) + VALUES (?, ?, ?, ?)""", (self._tid,int(time.time()), + str(rpmdb_version), + return_code)) + self._commit() + if not return_code: + # Simple hack, if the transaction finished. Note that this + # catches the erase cases (as we still don't get pkgtups for them), + # Eg. Updated elements. + executeSQL(cur, + """UPDATE trans_data_pkgs SET done = ? + WHERE tid = ?""", ('TRUE', self._tid,)) + self._commit() + if errors is not None: + self._log_errors(errors) + del self._tid + + def _old_with_pkgs(self, tid): + cur = self._get_cursor() + executeSQL(cur, + """SELECT name, arch, epoch, version, release, checksum + FROM trans_with_pkgs JOIN pkgtups USING(pkgtupid) + WHERE tid = ? + ORDER BY name ASC, epoch ASC""", (tid,)) + ret = [] + for row in cur: + obj = YumHistoryPackage(row[0],row[1],row[2],row[3],row[4], row[5]) + ret.append(obj) + return ret + def _old_data_pkgs(self, tid): + cur = self._get_cursor() + executeSQL(cur, + """SELECT name, arch, epoch, version, release, + checksum, done, state + FROM trans_data_pkgs JOIN pkgtups USING(pkgtupid) + WHERE tid = ? + ORDER BY name ASC, epoch ASC, state DESC""", (tid,)) + ret = [] + for row in cur: + obj = YumHistoryPackage(row[0],row[1],row[2],row[3],row[4], row[5]) + obj.done = row[6] == 'TRUE' + obj.state = row[7] + obj.state_installed = None + if _sttxt2stcode[obj.state] in TS_INSTALL_STATES: + obj.state_installed = True + if _sttxt2stcode[obj.state] in TS_REMOVE_STATES: + obj.state_installed = False + ret.append(obj) + return ret + + def old(self, tids=[], limit=None, complete_transactions_only=False): + """ Return a list of the last transactions, note that this includes + partial transactions (ones without an end transaction). """ + cur = self._get_cursor() + sql = """SELECT tid, + trans_beg.timestamp AS beg_ts, + trans_beg.rpmdb_version AS beg_rv, + trans_end.timestamp AS end_ts, + trans_end.rpmdb_version AS end_rv, + loginuid, return_code + FROM trans_beg JOIN trans_end USING(tid)""" + # NOTE: sqlite doesn't do OUTER JOINs ... *sigh*. So we have to do it + # ourself. + if not complete_transactions_only: + sql = """SELECT tid, + trans_beg.timestamp AS beg_ts, + trans_beg.rpmdb_version AS beg_rv, + NULL, NULL, + loginuid, NULL + FROM trans_beg""" + params = None + if tids and len(tids) <= yum.constants.PATTERNS_INDEXED_MAX: + params = tids = list(set(tids)) + sql += " WHERE tid IN (%s)" % ", ".join(['?'] * len(tids)) + sql += " ORDER BY beg_ts DESC, tid ASC" + if limit is not None: + sql += " LIMIT " + str(limit) + executeSQL(cur, sql, params) + ret = [] + tid2obj = {} + for row in cur: + if tids and len(tids) > yum.constants.PATTERNS_INDEXED_MAX: + if row[0] not in tids: + continue + obj = YumHistoryTransaction(self, row) + tid2obj[row[0]] = obj + ret.append(obj) + + sql = """SELECT tid, + trans_end.timestamp AS end_ts, + trans_end.rpmdb_version AS end_rv, + return_code + FROM trans_end""" + params = tid2obj.keys() + if len(params) > yum.constants.PATTERNS_INDEXED_MAX: + executeSQL(cur, sql) + else: + sql += " WHERE tid IN (%s)" % ", ".join(['?'] * len(params)) + executeSQL(cur, sql, params) + for row in cur: + if row[0] not in tid2obj: + continue + tid2obj[row[0]].end_timestamp = row[1] + tid2obj[row[0]].end_rpmdbversion = row[2] + tid2obj[row[0]].return_code = row[3] + + # Go through backwards, and see if the rpmdb versions match + las = None + for obj in reversed(ret): + cur_rv = obj.beg_rpmdbversion + las_rv = None + if las is not None: + las_rv = las.end_rpmdbversion + if las_rv is None or cur_rv is None or (las.tid + 1) != obj.tid: + pass + elif las_rv != cur_rv: + obj.altered_lt_rpmdb = True + las.altered_gt_rpmdb = True + else: + obj.altered_lt_rpmdb = False + las.altered_gt_rpmdb = False + las = obj + + return ret + + def last(self): + """ This is the last full transaction. So any imcomplete transactions + do not count. """ + cur = self._get_cursor() + sql = """SELECT tid, + trans_beg.timestamp AS beg_ts, + trans_beg.rpmdb_version AS beg_rv, + trans_end.timestamp AS end_ts, + trans_end.rpmdb_version AS end_rv, + loginuid, return_code + FROM trans_beg JOIN trans_end USING(tid) + ORDER BY beg_ts DESC, tid ASC + LIMIT 1""" + executeSQL(cur, sql) + for row in cur: + return YumHistoryTransaction(self, row) + return None + + def _yieldSQLDataList(self, patterns, fields, ignore_case): + """Yields all the package data for the given params. """ + + cur = self._get_cursor() + qsql = _FULL_PARSE_QUERY_BEG + + pat_sqls = [] + pat_data = [] + for (pattern, rest) in patterns: + for field in fields: + if ignore_case: + pat_sqls.append("%s LIKE ?%s" % (field, rest)) + else: + pat_sqls.append("%s %s ?" % (field, rest)) + pat_data.append(pattern) + assert pat_sqls + + qsql += " OR ".join(pat_sqls) + executeSQL(cur, qsql, pat_data) + for x in cur: + yield x + + def search(self, patterns, ignore_case=True): + """ Search for history transactions which contain specified + packages al. la. "yum list". Returns transaction ids. """ + # Search packages ... kind of sucks that it's search not list, pkglist? + + data = _setupHistorySearchSQL(patterns, ignore_case) + (need_full, patterns, fields, names) = data + + ret = [] + pkgtupids = set() + for row in self._yieldSQLDataList(patterns, fields, ignore_case): + pkgtupids.add(row[0]) + + cur = self._get_cursor() + sql = """SELECT tid FROM trans_data_pkgs WHERE pkgtupid IN """ + sql += "(%s)" % ",".join(['?'] * len(pkgtupids)) + params = list(pkgtupids) + tids = set() + if len(params) > yum.constants.PATTERNS_INDEXED_MAX: + executeSQL(cur, """SELECT tid FROM trans_data_pkgs""") + for row in cur: + if row[0] in params: + tids.add(row[0]) + return tids + if not params: + return tids + executeSQL(cur, sql, params) + for row in cur: + tids.add(row[0]) + return tids + + def _create_db_file(self): + """ Create a new history DB file, populating tables etc. """ + + _db_file = '%s/%s-%s.%s' % (self.conf.db_path, + 'history', + time.strftime('%Y-%m-%d'), + 'sqlite') + if self._db_file == _db_file: + os.rename(_db_file, _db_file + '.old') + self._db_file = _db_file + + cur = self._get_cursor() + ops = ['''\ + CREATE TABLE trans_beg ( + tid INTEGER PRIMARY KEY, + timestamp INTEGER NOT NULL, rpmdb_version TEXT NOT NULL, + loginuid INTEGER); +''', '''\ + CREATE TABLE trans_end ( + tid INTEGER PRIMARY KEY REFERENCES trans_beg, + timestamp INTEGER NOT NULL, rpmdb_version TEXT NOT NULL, + return_code INTEGER NOT NULL); +''', '''\ +\ + CREATE TABLE trans_with_pkgs ( + tid INTEGER NOT NULL REFERENCES trans_beg, + pkgtupid INTEGER NOT NULL REFERENCES pkgtups); +''', '''\ +\ + CREATE TABLE trans_error ( + mid INTEGER PRIMARY KEY, + tid INTEGER NOT NULL REFERENCES trans_beg, + msg TEXT NOT NULL); +''', '''\ + CREATE TABLE trans_script_stdout ( + lid INTEGER PRIMARY KEY, + tid INTEGER NOT NULL REFERENCES trans_beg, + line TEXT NOT NULL); +''', '''\ +\ + CREATE TABLE trans_data_pkgs ( + tid INTEGER NOT NULL REFERENCES trans_beg, + pkgtupid INTEGER NOT NULL REFERENCES pkgtups, + done BOOL NOT NULL DEFAULT FALSE, state TEXT NOT NULL); +''', '''\ +\ + CREATE TABLE pkgtups ( + pkgtupid INTEGER PRIMARY KEY, name TEXT NOT NULL, arch TEXT NOT NULL, + epoch TEXT NOT NULL, version TEXT NOT NULL, release TEXT NOT NULL, + checksum TEXT); +''', '''\ + CREATE INDEX i_pkgtup_naevr ON pkgtups (name, arch, epoch, version, release); +'''] + for op in ops: + cur.execute(op) + self._commit() + +# Pasted from sqlitesack +_FULL_PARSE_QUERY_BEG = """ +SELECT pkgtupid,name,epoch,version,release,arch, + name || "." || arch AS sql_nameArch, + name || "-" || version || "-" || release || "." || arch AS sql_nameVerRelArch, + name || "-" || version AS sql_nameVer, + name || "-" || version || "-" || release AS sql_nameVerRel, + epoch || ":" || name || "-" || version || "-" || release || "." || arch AS sql_envra, + name || "-" || epoch || ":" || version || "-" || release || "." || arch AS sql_nevra + FROM pkgtups + WHERE +""" diff --git a/yum/misc.py b/yum/misc.py index a8f7954..16ffca0 100644 --- a/yum/misc.py +++ b/yum/misc.py @@ -76,35 +76,38 @@ def unshare_data(): _re_compiled_glob_match = None def re_glob(s): """ Tests if a string is a shell wildcard. """ - # re.match('.*[\*\?\[\]].*', name) global _re_compiled_glob_match if _re_compiled_glob_match is None: _re_compiled_glob_match = re.compile('.*([*?]|\[.+\])') return _re_compiled_glob_match.match(s) -_re_compiled_pri_fnames_match = None +_re_compiled_filename_match = None +def re_filename(s): + """ Tests if a string could be a filename. We still get negated character + classes wrong (are they supported), and ranges in character classes. """ + global _re_compiled_filename_match + if _re_compiled_filename_match is None: + _re_compiled_filename_match = re.compile('^(/|[*?]|\[[^]]*/[^]]*\])') + return _re_compiled_filename_match.match(s) + def re_primary_filename(filename): - global _re_compiled_pri_fnames_match - if _re_compiled_pri_fnames_match is None: - one = re.compile('.*bin\/.*') - two = re.compile('^\/etc\/.*') - three = re.compile('^\/usr\/lib\/sendmail$') - _re_compiled_pri_fnames_match = (one, two, three) - for rec in _re_compiled_pri_fnames_match: - if rec.match(filename): - return True + """ Tests if a filename string, can be matched against just primary. + Note that this can produce false negatives (but not false + positives). """ + if 'bin/' in filename: + return True + if filename.startswith('/etc/'): + return True + if filename == '/usr/lib/sendmail': + return True return False -_re_compiled_pri_dnames_match = None def re_primary_dirname(dirname): - global _re_compiled_pri_dnames_match - if _re_compiled_pri_dnames_match is None: - one = re.compile('.*bin\/.*') - two = re.compile('^\/etc\/.*') - _re_compiled_pri_dnames_match = (one, two) - for rec in _re_compiled_pri_dnames_match: - if rec.match(dirname): - return True + """ Tests if a dirname string, can be matched against just primary. """ + if 'bin/' in dirname: + return True + if dirname.startswith('/etc/'): + return True return False _re_compiled_full_match = None @@ -290,7 +293,8 @@ def checksum(sumtype, file, CHUNK=2**16, datasize=None): data = Checksums([sumtype]) while data.read(fo, CHUNK): - pass + if datasize is not None and len(data) > datasize: + break if type(file) is types.StringType: fo.close() @@ -298,7 +302,7 @@ def checksum(sumtype, file, CHUNK=2**16, datasize=None): # This screws up the length, but that shouldn't matter. We only care # if this checksum == what we expect. - if datasize is not None and datasize > len(data): + if datasize is not None and datasize != len(data): return '!%u!%s' % (datasize, data.hexdigest(sumtype)) return data.hexdigest(sumtype) @@ -797,6 +801,21 @@ def unlink_f(filename): if e.errno != errno.ENOENT: raise +def getloginuid(): + """ Get the audit-uid/login-uid, if available. None is returned if there + was a problem. Note that no caching is done here. """ + # We might normally call audit.audit_getloginuid(), except that requires + # importing all of the audit module. And it doesn't work anyway: BZ 518721 + try: + fo = open("/proc/self/loginuid") + except IOError: + return None + data = fo.read() + try: + return int(data) + except ValueError: + return None + # ---------- i18n ---------- import locale import sys diff --git a/yum/packageSack.py b/yum/packageSack.py index 3716410..45e4e2d 100644 --- a/yum/packageSack.py +++ b/yum/packageSack.py @@ -35,6 +35,8 @@ class PackageSackVersion: def __eq__(self, other): if other is None: return False + if type(other) in (type(''), type(u'')): + return str(self) == other if self._num != other._num: return False if self._chksum.digest() != other._chksum.digest(): return False return True @@ -182,23 +184,42 @@ class PackageSackBase(object): then it's still not a huge wart. """ raise NotImplementedError() - def simpleVersion(self): + def simpleVersion(self, main_only=False, groups={}): """ Return a simple version for all available packages. """ + def _up_revs(arepos, repoid, rev, pkg, csum): + arevs = arepos.setdefault(repoid, {}) + rpsv = arevs.setdefault(None, PackageSackVersion()) + rpsv.update(pkg, csum) + if rev is not None: + rpsv = arevs.setdefault(rev, PackageSackVersion()) + rpsv.update(pkg, csum) + main = PackageSackVersion() arepos = {} + main_grps = {} + arepos_grps = {} 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) + for group in groups: + if pkg.name in groups[group]: + if group not in main_grps: + main_grps[group] = PackageSackVersion() + arepos_grps[group] = {} + main_grps[group].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) + if main_only: + continue + + rev = pkg.repo.repoXML.revision + _up_revs(arepos, pkg.repoid, rev, pkg, csum) + for group in groups: + if pkg.name in groups[group]: + _up_revs(arepos_grps[group], pkg.repoid, rev, pkg, csum) + if groups: + return [main, arepos, main_grps, arepos_grps] return [main, arepos] def returnNewestByNameArch(self, naTup=None, diff --git a/yum/packages.py b/yum/packages.py index 9a56fc4..7bbb61d 100644 --- a/yum/packages.py +++ b/yum/packages.py @@ -617,7 +617,10 @@ class YumAvailablePackage(PackageObject, RpmBase): # ignoring "bad" chars. val = _nf2ascii(val) # Hacky way to get rid of version numbers... - self._committer_ret = re.sub("""> .*""", '>', val) + ix = val.find('> ') + if ix != -1: + val = val[0:ix+1] + self._committer_ret = val return self._committer_ret committer = property(_committer) diff --git a/yum/plugins.py b/yum/plugins.py index 27b1aa5..c0e510f 100644 --- a/yum/plugins.py +++ b/yum/plugins.py @@ -34,7 +34,7 @@ from weakref import proxy as weakref from yum import _ -from yum.i18n import utf8_width +from i18n import utf8_width # TODO: expose rpm package sack objects to plugins (once finished) # TODO: allow plugins to use the existing config stuff to define options for @@ -457,6 +457,10 @@ class PluginConduit: ''' return config.getOption(self._conf, section, opt, config.BoolOption(default)) + def registerPackageName(self, name): + self._base.run_with_package_names.add(name) + + class ConfigPluginConduit(PluginConduit): def registerOpt(self, name, valuetype, where, default): diff --git a/yum/rpmsack.py b/yum/rpmsack.py index fbeb9b3..74dd69d 100644 --- a/yum/rpmsack.py +++ b/yum/rpmsack.py @@ -31,7 +31,7 @@ from packageSack import PackageSackBase, PackageSackVersion import fnmatch import re -from yum.i18n import to_unicode +from i18n import to_unicode import constants class RPMInstalledPackage(YumInstalledPackage): @@ -339,10 +339,20 @@ class RPMDBPackageSack(PackageSackBase): pkgobjlist = pkgobjlist[0] + pkgobjlist[1] return pkgobjlist - def simpleVersion(self): + def simpleVersion(self, main_only=False, groups={}): """ Return a simple version for all installed packages. """ + def _up_revs(irepos, repoid, rev, pkg, csum): + 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) + main = PackageSackVersion() irepos = {} + main_grps = {} + irepos_grps = {} for pkg in sorted(self.returnPackages()): ydbi = pkg.yumdb_info csum = None @@ -350,19 +360,30 @@ class RPMDBPackageSack(PackageSackBase): csum = (ydbi.checksum_type, ydbi.checksum_data) main.update(pkg, csum) + for group in groups: + if pkg.name in groups[group]: + if group not in main_grps: + main_grps[group] = PackageSackVersion() + irepos_grps[group] = {} + main_grps[group].update(pkg, csum) + + if main_only: + continue + 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) + _up_revs(irepos, repoid, rev, pkg, csum) + for group in groups: + if pkg.name in groups[group]: + _up_revs(irepos_grps[group], repoid, rev, pkg, csum) + + if groups: + return [main, irepos, main_grps, irepos_grps] return [main, irepos] @staticmethod diff --git a/yum/rpmtrans.py b/yum/rpmtrans.py index 77b06a2..ed52df0 100644 --- a/yum/rpmtrans.py +++ b/yum/rpmtrans.py @@ -23,7 +23,7 @@ import time import logging import types import sys -from yum.constants import * +from constants import * from yum import _ import misc @@ -230,6 +230,11 @@ class RPMTransaction: except IOError: pass + def _scriptout(self, data): + msgs = self._scriptOutput() + self.display.scriptout(data, msgs) + self.base.history.log_scriptlet_output(data, msgs) + def __del__(self): self._shutdownOutputLogging() @@ -339,7 +344,7 @@ class RPMTransaction: # we hand back the right path to those 'outside' of the chroot() calls # but we're using the right path inside. if self.base.conf.installroot != '/': - tsfn = tsfn.replace(self.base.conf.installroot,'') + tsfn = tsfn.replace(os.path.normpath(self.base.conf.installroot),'') try: if not os.path.exists(os.path.dirname(tsfn)): os.makedirs(os.path.dirname(tsfn)) # make the dir, @@ -439,10 +444,14 @@ class RPMTransaction: txmbrs = self.base.tsInfo.getMembers(pkgtup=pkgtup) for txmbr in txmbrs: self.display.filelog(txmbr.po, txmbr.output_state) - self.display.scriptout(txmbr.po, self._scriptOutput()) + self._scriptout(txmbr.po) + # NOTE: We only do this for install, not erase atm. + # because we don't get pkgtup data for erase (this + # includes "Updated" pkgs). + pid = self.base.history.pkg2pid(txmbr.po) + state = self.base.history.txmbr2state(txmbr) + self.base.history.trans_data_pid_end(pid, state) self.ts_done(txmbr.po, txmbr.output_state) - - def _instProgress(self, bytes, total, h): if h is not None: @@ -477,7 +486,7 @@ class RPMTransaction: self.display.event(h, action, 100, 100, self.complete_actions, self.total_actions) - self.display.scriptout(h, self._scriptOutput()) + self._scriptout(h) if self.test: return # and we're done self.ts_done(h, action) diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py index b6c14c5..89744ff 100644 --- a/yum/sqlitesack.py +++ b/yum/sqlitesack.py @@ -33,8 +33,8 @@ import rpmUtils.miscutils import sqlutils import constants import operator -from yum.misc import seq_max_split -from yum.i18n import to_utf8, to_unicode +from misc import seq_max_split +from i18n import to_utf8, to_unicode import sys import re @@ -911,6 +911,20 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack): dirname_check = "dirname GLOB ? and filenames LIKE ? %s and " % esc sql_params.append(dirname) sql_params.append('%' + pattern + '%') + elif filename == '*': + # We only care about matching on dirname... + for (rep,cache) in self.filelistsdb.items(): + if rep in self._all_excludes: + continue + + cur = cache.cursor() + sql_params.append(dirname) + executeSQL(cur, """SELECT pkgKey FROM filelist + WHERE dirname %s ?""" % (querytype,), + sql_params) + self._sql_pkgKey2po(rep, cur, pkgs) + + return misc.unique(pkgs) for (rep,cache) in self.filelistsdb.items(): if rep in self._all_excludes: @@ -929,15 +943,19 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack): if file_glob: name_re = re.compile(fnmatch.translate(name)) def filelist_globber(sql_dirname, sql_filenames): + # Note: Can't return bool, because sqlite doesn't like it in + # weird ways. Test: + # install '*bin/autoheader' + # provides /lib/security/pam_loginuid.so files = sql_filenames.split('/') if not file_glob: - return filename in files + return int(filename in files) fns = map(lambda f: '%s/%s' % (sql_dirname, f), files) for match in fns: if name_re.match(match): - return True - return False + return 1 + return 0 cache.create_function("filelist_globber", 2, filelist_globber) # for all the ones where filenames is multiple files, @@ -1277,7 +1295,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack): # If it's not a provides or a filename, we are done if prcotype != "provides": return results - if name[0] != '/' and (not glob or not misc.re_glob(name[0])): + if not misc.re_filename(name): return results # If it is a filename, search the primary.xml file info diff --git a/yum/sqlutils.py b/yum/sqlutils.py index fda380e..3a93146 100644 --- a/yum/sqlutils.py +++ b/yum/sqlutils.py @@ -121,6 +121,11 @@ def QmarkToPyformat(query, params): if token.endswith("?"): output.append(token[:-1] + "%%(param%d)s" % count) count+=1 + elif token.endswith("?,") or token.endswith("?)"): + ntoken = token[:-2] + "%%(param%d)s" % count + ntoken += token[-1] + output.append(ntoken) + count+=1 else: output.append(token) diff --git a/yum/transactioninfo.py b/yum/transactioninfo.py index be772e5..bd7bf80 100644 --- a/yum/transactioninfo.py +++ b/yum/transactioninfo.py @@ -271,6 +271,7 @@ class TransactionData: elif txmbr.output_state in (TS_INSTALL, TS_TRUEINSTALL): if include_reinstall and self.rpmdb.contains(po=txmbr.po): + txmbr.reinstall = True self.reinstalled.append(txmbr) continue @@ -319,6 +320,8 @@ class TransactionData: self.depremoved.sort() self.instgroups.sort() self.removedgroups.sort() + self.reinstalled.sort() + self.downgraded.sort() self.failed.sort() diff --git a/yum/update_md.py b/yum/update_md.py index b3a120e..34179ea 100644 --- a/yum/update_md.py +++ b/yum/update_md.py @@ -24,10 +24,10 @@ Update metadata (updateinfo.xml) parsing. import sys import gzip -from yum.i18n import utf8_text_wrap, to_utf8 -from yum.yumRepo import YumRepository -from yum.packages import FakeRepository -from yum.misc import to_xml +from i18n import utf8_text_wrap, to_utf8 +from yumRepo import YumRepository +from packages import FakeRepository +from misc import to_xml import Errors import rpmUtils.miscutils diff --git a/yum/yumRepo.py b/yum/yumRepo.py index fac218a..2bc7476 100644 --- a/yum/yumRepo.py +++ b/yum/yumRepo.py @@ -32,9 +32,9 @@ from repos import Repository import parser import sqlitecachec import sqlitesack -from yum import config -from yum import misc -from yum import comps +import config +import misc +import comps from constants import * import metalink @@ -233,6 +233,7 @@ class YumRepository(Repository, config.RepoConf): Repository.__init__(self, repoid) self.repofile = None + self.mirrorurls = [] self._urls = [] self.enablegroups = 0 self.groupsfilename = 'yumgroups.xml' # something some freaks might @@ -712,7 +713,8 @@ class YumRepository(Repository, config.RepoConf): fdel=lambda self: setattr(self, "_metalink", None)) def _getFile(self, url=None, relative=None, local=None, start=None, end=None, - copy_local=None, checkfunc=None, text=None, reget='simple', cache=True): + copy_local=None, checkfunc=None, text=None, reget='simple', + cache=True, size=None): """retrieve file from the mirrorgroup for the repo relative to local, optionally get range from start to end, also optionally retrieve from a specific baseurl""" @@ -784,7 +786,8 @@ class YumRepository(Repository, config.RepoConf): ssl_verify_host=self.sslverify, ssl_ca_cert=self.sslcacert, ssl_cert=self.sslclientcert, - ssl_key=self.sslclientkey + ssl_key=self.sslclientkey, + size=size ) ug.opts.user_agent = default_grabber.opts.user_agent @@ -816,6 +819,7 @@ class YumRepository(Repository, config.RepoConf): reget = reget, checkfunc=checkfunc, http_headers=headers, + size=size ) except URLGrabError, e: errstr = "failure: %s from %s: %s" % (relative, self.id, e) @@ -827,7 +831,7 @@ class YumRepository(Repository, config.RepoConf): return result __get = _getFile - def getPackage(self, package, checkfunc = None, text = None, cache = True): + def getPackage(self, package, checkfunc=None, text=None, cache=True): remote = package.relativepath local = package.localPkg() basepath = package.basepath @@ -842,7 +846,8 @@ class YumRepository(Repository, config.RepoConf): local=local, checkfunc=checkfunc, text=text, - cache=cache + cache=cache, + size=package.size, ) def getHeader(self, package, checkfunc = None, reget = 'simple', @@ -852,6 +857,7 @@ class YumRepository(Repository, config.RepoConf): local = package.localHdr() start = package.hdrstart end = package.hdrend + size = end-start basepath = package.basepath # yes, I know, don't ask if not os.path.exists(self.hdrdir): @@ -859,7 +865,7 @@ class YumRepository(Repository, config.RepoConf): return self._getFile(url=basepath, relative=remote, local=local, start=start, reget=None, end=end, checkfunc=checkfunc, copy_local=1, - cache=cache, + cache=cache, size=size, ) def metadataCurrent(self): @@ -988,7 +994,8 @@ class YumRepository(Repository, config.RepoConf): text=text, reget=None, checkfunc=checkfunc, - cache=self.http_caching == 'all') + cache=self.http_caching == 'all', + size=102400) # setting max size as 100K except URLGrabError, e: misc.unlink_f(tfname) @@ -1034,6 +1041,8 @@ class YumRepository(Repository, config.RepoConf): old_local = local + '.old.tmp' # locked, so this is ok shutil.copy2(local, old_local) xml = self._parseRepoXML(old_local, True) + if xml is None: + return None self._oldRepoMDData = {'old_repo_XML' : xml, 'local' : local, 'old_local' : old_local, 'new_MD_files' : []} return xml @@ -1419,7 +1428,8 @@ class YumRepository(Repository, config.RepoConf): text='%s/signature' % self.id, reget=None, checkfunc=None, - cache=self.http_caching == 'all') + cache=self.http_caching == 'all', + size=102400) except URLGrabError, e: raise URLGrabError(-1, 'Error finding signature for repomd.xml for %s: %s' % (self, e)) @@ -1533,9 +1543,14 @@ class YumRepository(Repository, config.RepoConf): try: checkfunc = (self.checkMD, (mdtype,), {}) text = "%s/%s" % (self.id, mdtype) - local = self._getFile(relative=remote, local=local, copy_local=1, - checkfunc=checkfunc, reget=None, text=text, - cache=self.http_caching == 'all') + local = self._getFile(relative=remote, + local=local, + copy_local=1, + checkfunc=checkfunc, + reget=None, + text=text, + cache=self.http_caching == 'all', + size=thisdata.size) except (Errors.NoMoreMirrorsRepoError, Errors.RepoError): if retrieve_can_fail: return None @@ -1605,8 +1620,8 @@ class YumRepository(Repository, config.RepoConf): for line in content: if re.match('^\s*\#.*', line) or re.match('^\s*$', line): continue - mirror = re.sub('\n$', '', line) # no more trailing \n's - (mirror, count) = re.subn('\$ARCH', '$BASEARCH', mirror) + mirror = line.rstrip() # no more trailing \n's + mirror = mirror.replace('$ARCH', '$BASEARCH') returnlist.append(mirror) return (returnlist, content) @@ -1807,8 +1822,8 @@ def getMirrorList(mirrorlist, pdict = None): for line in content: if re.match('^\s*\#.*', line) or re.match('^\s*$', line): continue - mirror = re.sub('\n$', '', line) # no more trailing \n's - (mirror, count) = re.subn('\$ARCH', '$BASEARCH', mirror) + mirror = line.rstrip() # no more trailing \n's + mirror = mirror.replace('$ARCH', '$BASEARCH') returnlist.append(mirror) return returnlist diff --git a/yumcommands.py b/yumcommands.py index bd73d0c..1451a36 100644 --- a/yumcommands.py +++ b/yumcommands.py @@ -30,6 +30,8 @@ import fnmatch import time from yum.i18n import utf8_width, utf8_width_fill, to_unicode +import yum.config + def checkRootUID(base): """ Verify that the program is being run by the root user. @@ -575,7 +577,8 @@ class CheckUpdateCommand(YumCommand): result = 0 try: ypl = base.returnPkgLists(extcmds) - if base.verbose_logger.isEnabledFor(logginglevels.DEBUG_3): + if (base.conf.obsoletes or + base.verbose_logger.isEnabledFor(logginglevels.DEBUG_3)): typl = base.returnPkgLists(['obsoletes']) ypl.obsoletes = typl.obsoletes ypl.obsoletesTuples = typl.obsoletesTuples @@ -778,13 +781,17 @@ class RepoListCommand(YumCommand): arg = 'enabled' extcmds = map(lambda x: x.lower(), extcmds) - # Setup so len(repo.sack) is correct - base.repos.populateSack() + verbose = base.verbose_logger.isEnabledFor(logginglevels.DEBUG_3) + try: + # Setup so len(repo.sack) is correct + base.repos.populateSack() + except yum.Errors.RepoError: + if verbose: + raise repos = base.repos.repos.values() repos.sort() enabled_repos = base.repos.listEnabled() - verbose = base.verbose_logger.isEnabledFor(logginglevels.DEBUG_3) if arg == 'all': ehibeg = base.term.FG_COLOR['green'] + base.term.MODE['bold'] dhibeg = base.term.FG_COLOR['red'] @@ -1061,7 +1068,7 @@ class DowngradeCommand(YumCommand): def needTs(self, base, basecmd, extcmds): return False - + class VersionCommand(YumCommand): def getNames(self): @@ -1092,25 +1099,80 @@ class VersionCommand(YumCommand): cols.append((" %s" % repoid, str(cur[None]))) cols.extend(ncols) + verbose = base.verbose_logger.isEnabledFor(logginglevels.DEBUG_3) + groups = {} + gconf = yum.config.readVersionGroupsConfig() + for group in gconf: + groups[group] = set(gconf[group].pkglist) + if gconf[group].run_with_packages: + groups[group].update(base.run_with_package_names) + + if vcmd in ('grouplist'): + print _(" Yum version groups:") + for group in sorted(groups): + print " ", group + + return 0, ['version grouplist'] + + if vcmd in ('groupinfo'): + for group in groups: + if group not in extcmds[1:]: + continue + print _(" Group :"), group + print _(" Packages:") + if not verbose: + for pkgname in sorted(groups[group]): + print " ", pkgname + else: + data = {'envra' : {}, 'rid' : {}} + pkg_names = groups[group] + pkg_names2pkgs = base._group_names2aipkgs(pkg_names) + base._calcDataPkgColumns(data, pkg_names, pkg_names2pkgs) + data = [data['envra'], data['rid']] + columns = base.calcColumns(data) + columns = (-columns[0], -columns[1]) + base._displayPkgsFromNames(pkg_names, True, pkg_names2pkgs, + columns=columns) + + return 0, ['version groupinfo'] + rel = base.yumvar['releasever'] ba = base.yumvar['basearch'] cols = [] - if vcmd in ('installed', 'all'): + if vcmd in ('installed', 'all', 'group-installed', 'group-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): + data = base.rpmdb.simpleVersion(not verbose, groups=groups) + lastdbv = base.history.last() + if lastdbv is not None: + lastdbv = lastdbv.end_rpmdbversion + if lastdbv is not None and data[0] != lastdbv: + errstring = _('Warning: RPMDB has been altered since the last yum transaction.') + base.logger.warning(errstring) + if vcmd not in ('group-installed', 'group-all'): + cols.append(("%s %s/%s" % (_("Installed:"), rel, ba), + str(data[0]))) _append_repos(cols, data[1]) + if groups: + for grp in sorted(data[2]): + cols.append(("%s %s" % (_("Group-Installed:"), grp), + str(data[2][grp]))) + _append_repos(cols, data[3][grp]) except yum.Errors.YumBaseError, e: return 1, [str(e)] - if vcmd in ('available', 'all'): + if vcmd in ('available', 'all', 'group-available', 'group-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]) + data = base.pkgSack.simpleVersion(not verbose, groups=groups) + if vcmd not in ('group-available', 'group-all'): + cols.append(("%s %s/%s" % (_("Available:"), rel, ba), + str(data[0]))) + if verbose: + _append_repos(cols, data[1]) + if groups: + for grp in sorted(data[2]): + cols.append(("%s %s" % (_("Group-Available:"), grp), + str(data[2][grp]))) + if verbose: + _append_repos(cols, data[3][grp]) except yum.Errors.YumBaseError, e: return 1, [str(e)] @@ -1126,10 +1188,86 @@ class VersionCommand(YumCommand): for line in cols: print base.fmtColumns(zip(line, columns)) - return 0, [] + return 0, ['version'] def needTs(self, base, basecmd, extcmds): vcmd = 'installed' if extcmds: vcmd = extcmds[0] - return vcmd in ('available', 'all') + verbose = base.verbose_logger.isEnabledFor(logginglevels.DEBUG_3) + if vcmd == 'groupinfo' and verbose: + return True + return vcmd in ('available', 'all', 'group-available', 'group-all') + + +class HistoryCommand(YumCommand): + def getNames(self): + return ['history'] + + def getUsage(self): + return "[info|list|summary|redo|undo|new]" + + def getSummary(self): + return _("Display, or use, the transaction history") + + def _hcmd_redo(self, base, extcmds): + old = base._history_get_transaction(extcmds) + if old is None: + return 1, ['Failed history redo'] + tm = time.ctime(old.beg_timestamp) + print "Repeating transaction %u, from %s" % (old.tid, tm) + base.historyInfoCmdPkgsAltered(old) + if base.history_redo(old): + return 2, ["Repeating transaction %u" % (old.tid,)] + + def _hcmd_undo(self, base, extcmds): + old = base._history_get_transaction(extcmds) + if old is None: + return 1, ['Failed history undo'] + tm = time.ctime(old.beg_timestamp) + print "Undoing transaction %u, from %s" % (old.tid, tm) + base.historyInfoCmdPkgsAltered(old) + if base.history_undo(old): + return 2, ["Undoing transaction %u" % (old.tid,)] + + def _hcmd_new(self, base, extcmds): + base.history._create_db_file() + + def doCheck(self, base, basecmd, extcmds): + cmds = ('list', 'info', 'summary', 'repeat', 'redo', 'undo', 'new') + if extcmds and extcmds[0] not in cmds: + base.logger.critical(_('Invalid history sub-command, use: %s.'), + ", ".join(cmds)) + raise cli.CliError + if extcmds and extcmds[0] in ('repeat', 'redo', 'undo', 'new'): + checkRootUID(base) + checkGPGKey(base) + + def doCommand(self, base, basecmd, extcmds): + vcmd = 'list' + if extcmds: + vcmd = extcmds[0] + + if False: pass + elif vcmd == 'list': + ret = base.historyListCmd(extcmds) + elif vcmd == 'info': + ret = base.historyInfoCmd(extcmds) + elif vcmd == 'summary': + ret = base.historySummaryCmd(extcmds) + elif vcmd == 'undo': + ret = self._hcmd_undo(base, extcmds) + elif vcmd in ('redo', 'repeat'): + ret = self._hcmd_redo(base, extcmds) + elif vcmd == 'new': + ret = self._hcmd_new(base, extcmds) + + if ret is None: + return 0, ['history %s' % (vcmd,)] + return ret + + def needTs(self, base, basecmd, extcmds): + vcmd = 'list' + if extcmds: + vcmd = extcmds[0] + return vcmd in ('repeat', 'redo', 'undo') diff --git a/yummain.py b/yummain.py index 964975b..b2a09cc 100755 --- a/yummain.py +++ b/yummain.py @@ -31,7 +31,7 @@ from yum import _ from yum.i18n import to_unicode import yum.misc import cli - +from utils import suppress_keyboard_interrupt_message def main(args): """This does all the real work""" @@ -307,12 +307,18 @@ def user_main(args, exit_code=False): errcode = cprof(main, args) if os.environ['YUM_PROF'] == 'hotshot': errcode = hotshot(main, args) + if 'YUM_PDB' in os.environ: + import pdb + pdb.run(main(args)) + if errcode is None: errcode = main(args) if exit_code: sys.exit(errcode) return errcode +suppress_keyboard_interrupt_message() + if __name__ == "__main__": try: user_main(sys.argv[1:], exit_code=True)