[yum-commits] 387 commits - ChangeLog Makefile README README.API_CHANGES cli.py docs/yum.8 docs/yum.conf.5 output.py po/POTFILES.in po/POTFILES.skip po/ca.po po/da.po po/de.po po/fr.po po/it.po po/pl.po po/pt_BR.po po/sr.po po/sr at latin.po po/zh_CN.po rpmUtils/arch.py rpmUtils/miscutils.py shell.py test/check-po-yes-no.py test/depsolvetests.py test/operationstests.py test/packagetests.py test/simpleobsoletestests.py test/simpleupdatetests.py test/skipbroken-tests.py test/testbase.py utils.py yum.spec yum/__init__.py yum/comps.py yum/config.py yum/constants.py yum/depsolve.py yum/i18n.py yum/logginglevels.py yum/metalink.py yum/misc.py yum/packageSack.py yum/packages.py yum/plugins.py yum/repoMDObject.py yum/repos.py yum/rpmsack.py yum/rpmtrans.py yum/sqlitesack.py yum/transactioninfo.py yum/update_md.py yum/yumRepo.py yumcommands.py yummain.py
James Antill
james at osuosl.org
Fri Nov 21 17:28:03 UTC 2008
ChangeLog |10200 +++++++------------------------------------
Makefile | 5
README | 5
README.API_CHANGES | 11
cli.py | 286 -
docs/yum.8 | 9
docs/yum.conf.5 | 88
output.py | 929 +++
po/POTFILES.in | 1
po/POTFILES.skip | 1
po/ca.po | 1329 +++--
po/da.po | 9
po/de.po | 1192 ++---
po/fr.po | 981 ++--
po/it.po | 6
po/pl.po | 1178 ++--
po/pt_BR.po | 1391 +++--
po/sr.po | 1153 ++--
po/sr at latin.po | 1166 ++--
po/zh_CN.po | 2388 ++++++----
rpmUtils/arch.py | 3
rpmUtils/miscutils.py | 48
shell.py | 19
test/check-po-yes-no.py | 6
test/depsolvetests.py | 377 +
test/operationstests.py | 10
test/packagetests.py | 60
test/simpleobsoletestests.py | 119
test/simpleupdatetests.py | 24
test/skipbroken-tests.py | 262 +
test/testbase.py | 118
utils.py | 10
yum.spec | 18
yum/__init__.py | 890 +++
yum/comps.py | 195
yum/config.py | 58
yum/constants.py | 11
yum/depsolve.py | 368 +
yum/i18n.py | 306 +
yum/logginglevels.py | 37
yum/metalink.py | 273 +
yum/misc.py | 286 +
yum/packageSack.py | 210
yum/packages.py | 411 +
yum/plugins.py | 80
yum/repoMDObject.py | 61
yum/repos.py | 12
yum/rpmsack.py | 162
yum/rpmtrans.py | 81
yum/sqlitesack.py | 401 +
yum/transactioninfo.py | 9
yum/update_md.py | 134
yum/yumRepo.py | 508 +-
yumcommands.py | 278 -
yummain.py | 26
55 files changed, 14076 insertions(+), 14123 deletions(-)
New commits:
commit b6b1403e553d435d900781c256f14bb6c8276929
Merge: 00403a9... eac42df...
Author: James Antill <james at and.org>
Date: Fri Nov 21 12:26:19 2008 -0500
Do a merge from yum-3_2_X onto master, _UNTESTED_ but not that many conflicts
diff --cc yum/__init__.py
index 5786816,1f03840..bacd9ca
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@@ -111,10 -96,10 +113,12 @@@ class YumBase(depsolve.Depsolve)
self._up = None
self._comps = None
self._pkgSack = None
+ # FIXME: backwards compat. with plugins etc., remove?
+ self.logger = log.logger
+ self.verbose_logger = vlog.logger
+
+ self._lockfile = None
+ self.skipped_packages = [] # packages skip by the skip-broken code
- self.logger = logging.getLogger("yum.YumBase")
- self.verbose_logger = logging.getLogger("yum.verbose.YumBase")
self._repos = RepoStorage(self)
# Start with plugins disabled
@@@ -319,9 -312,9 +331,10 @@@
# Ensure that the repo name is set
if not repo.name:
repo.name = section
- self.logger.error(_('Repository %r is missing name in configuration, '
- 'using id') % section)
+ # FIXME: Use critical? or exception?
+ log.error(_('Repository %r is missing name in configuration, '
+ 'using id'), section)
+ repo.name = to_unicode(repo.name)
# Set attributes not from the config file
repo.basecachedir = self.conf.cachedir
@@@ -630,12 -629,20 +644,19 @@@
necessary = True
if necessary:
- msg = _('Importing additional filelist information')
- self.verbose_logger.log(logginglevels.INFO_2, msg)
+ vinfo2(_('Importing additional filelist information'))
self.repos.populateSack(mdtype='filelists')
- def buildTransaction(self):
+ def buildTransaction(self, unfinished_transactions_check=True):
"""go through the packages in the transaction set, find them in the
packageSack or rpmdb, and pack up the ts accordingly"""
+ if (unfinished_transactions_check and
+ misc.find_unfinished_transactions(yumlibpath=self.conf.persistdir)):
+ msg = _('There are unfinished transactions remaining. You might ' \
+ 'consider running yum-complete-transaction first to finish them.' )
+ self.logger.critical(msg)
+ time.sleep(3)
+
self.plugins.run('preresolve')
ds_st = time.time()
@@@ -657,9 -664,13 +678,13 @@@
# The remove the broken packages from the transactions and
# Try another depsolve
if self.conf.skip_broken and rescode==1:
+ self.skipped_packages = [] # reset the public list of skipped packages.
+ sb_st = time.time()
rescode, restring = self._skipPackagesWithProblems(rescode, restring)
+ self._printTransaction()
+ self.verbose_logger.debug('Skip-Broken time: %0.3f' % (time.time() - sb_st))
- self.verbose_logger.debug('Depsolve time: %0.3f' % (time.time() - ds_st))
+ vdebug_tm(ds_st, 'Depsolve time')
return rescode, restring
def _skipPackagesWithProblems(self, rescode, restring):
@@@ -678,10 -699,13 +713,13 @@@
# or the transaction is empty
count = 0
skipped_po = set()
- orig_restring = restring # Keep the old error messages
- while len(self.po_with_problems) > 0 and rescode == 1:
+ removed_from_sack = set()
+ orig_restring = restring # Keep the old error messages
+ hard_restart = False
+ while (len(self.po_with_problems) > 0 and rescode == 1):
count += 1
- self.verbose_logger.debug(_("Skip-broken round %i"), count)
+ vdebug(_("Skip-broken round %i"), count)
+ self._printTransaction()
depTree = self._buildDepTree()
startTs = set(self.tsInfo)
toRemove = set()
@@@ -701,22 -735,76 +749,75 @@@
endTs = set(self.tsInfo)
# Check if tsInfo has changes since we started to skip packages
# if there is no changes then we got a loop.
+ # the first time we get here we reset the resolved members of
+ # tsInfo and takes a new run all members in the current transaction
if startTs-endTs == set():
- break # bail out
+ if hard_restart:
+ break # Bail out
+ else:
+ self.verbose_logger.debug('SKIPBROKEN: resetting already resovled packages (transaction not changed)' )
+ self.tsInfo.resetResolved(hard=True)
+ # if we are all clear, then we have to check that the whole current transaction
+ # can complete the depsolve without error, because the packages skipped
+ # can have broken something that passed the tests earliere.
+ # FIXME: We need do this in a better way.
+ if rescode != 1:
+ self.verbose_logger.debug('SKIPBROKEN: sanity check the current transaction' )
+ self.tsInfo.resetResolved(hard=True)
+ self._checkMissingObsoleted() # This is totally insane, but needed :(
+ rescode, restring = self.resolveDeps()
if rescode != 1:
- self.verbose_logger.debug(_("Skip-broken took %i rounds "), count)
- self.verbose_logger.info(_('\nPackages skipped because of dependency problems:'))
+ vdebug(_("Skip-broken took %i rounds "), count)
+ vinfo(_('\nPackages skipped because of dependency problems:'))
skipped_list = [p for p in skipped_po]
skipped_list.sort()
for po in skipped_list:
- msg = _(" %s from %s") % (str(po),po.repo.id)
- self.verbose_logger.info(msg)
+ vinfo(_(" %s from %s"), str(po),po.repo.id)
+ self.skipped_packages = skipped_list # make the skipped packages public
else:
# If we cant solve the problems the show the original error messages.
- self.verbose_logger.info("Skip-broken could not solve problems")
+ vinfo("Skip-broken could not solve problems")
return 1, orig_restring
-
return rescode, restring
+ def _checkMissingObsoleted(self):
+ """
+ If multiple packages is obsoleting the same package
+ 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 pkg in txmbr.obsoletes:
+ if not self.tsInfo.exists(pkg.pkgtup):
+ obs = self.tsInfo.addObsoleted(pkg,txmbr.po)
+ self.verbose_logger.debug('SKIPBROKEN: Added missing obsoleted %s (%s)' % (pkg,txmbr.po) )
+ for pkg in txmbr.obsoleted_by:
+ # check if the obsoleting txmbr is in the transaction
+ # else remove the obsoleted txmbr
+ # it clean out some really wierd cases
+ if not self.tsInfo.exists(pkg.pkgtup):
+ self.verbose_logger.debug('SKIPBROKEN: Remove extra obsoleted %s (%s)' % (txmbr.po,pkg) )
+ self.tsInfo.remove(txmbr.po.pkgtup)
+
+ def _getPackagesToRemoveAllArch(self,po):
+ ''' get all compatible arch packages in pkgSack'''
+ pkgs = []
+ if rpmUtils.arch.isMultiLibArch():
+ archs = rpmUtils.arch.getArchList()
+ n,a,e,v,r = po.pkgtup
+ # skip for all compat archs
+ for a in archs:
+ pkgtup = (n,a,e,v,r)
+ matched = self.pkgSack.searchNevra(n,e,v,r,a)
+ pkgs.extend(matched)
+ else:
+ pkgs.append(po)
+ return pkgs
+
+
+
+
+
def _skipFromTransaction(self,po):
skipped = []
if rpmUtils.arch.isMultiLibArch():
@@@ -790,7 -903,8 +916,8 @@@
pass
elif len(errors) == 0:
errstring = _('Warning: scriptlet or other non-fatal errors occurred during transaction.')
- self.verbose_logger.debug(errstring)
+ vdebug(errstring)
+ resultobject.return_code = 1
else:
raise Errors.YumBaseError, errors
@@@ -804,10 -918,11 +931,11 @@@
try:
os.unlink(fn)
except (IOError, OSError), e:
- self.logger.critical(_('Failed to remove transaction file %s') % fn)
+ critical(_('Failed to remove transaction file %s'), fn)
self.plugins.run('posttrans')
-
+ return resultobject
+
def costExcludePackages(self):
"""exclude packages if they have an identical package in another repo
and their repo.cost value is the greater one"""
@@@ -875,16 -990,16 +1003,15 @@@
return
if not repo:
- self.verbose_logger.log(logginglevels.INFO_2, _('Excluding Packages in global exclude list'))
+ vinfo2(_('Excluding Packages in global exclude list'))
else:
- self.verbose_logger.log(logginglevels.INFO_2, _('Excluding Packages from %s'),
- repo.name)
+ vinfo2(_('Excluding Packages from %s'), repo.name)
- pkgs = self._pkgSack.returnPackages(repoid, patterns=excludelist)
- exactmatch, matched, unmatched = \
- parsePackages(pkgs, excludelist, casematch=1, unique='repo-pkgkey')
+ pkgs = self._pkgSack.returnPackages(repoid, patterns=excludelist,
+ ignore_case=False)
- for po in exactmatch + matched:
+ for po in pkgs:
- self.verbose_logger.debug('Excluding %s', po)
+ vdebug('Excluding %s', po)
po.repo.sack.delPackage(po)
@@@ -903,12 -1018,14 +1030,13 @@@
exactmatch, matched, unmatched = \
parsePackages(pkglist, includelist, casematch=1)
- self.verbose_logger.log(logginglevels.INFO_2,
- _('Reducing %s to included packages only'), repo.name)
+ vinfo2(_('Reducing %s to included packages only'), repo.name)
rmlist = []
+ keeplist = set(exactmatch + matched)
for po in pkglist:
- if po in exactmatch + matched:
+ if po in keeplist:
- self.verbose_logger.debug(_('Keeping included package %s'), po)
+ vdebug(_('Keeping included package %s'), po)
continue
else:
rmlist.append(po)
@@@ -2127,10 -2450,14 +2452,14 @@@
try:
mypkgs = self.returnPackagesByDep(arg)
except yum.Errors.YumBaseError, e:
- self.logger.critical(_('No Match for argument: %s') % arg)
+ critical(_('No Match for argument: %s'), arg)
else:
if mypkgs:
- pkgs.extend(self.bestPackagesFromList(mypkgs))
+ # Dep. installs don't do wildcards, so we
+ # just want a single named package.
+ mypkgs = self.bestPackagesFromList(mypkgs,
+ single_name=True)
+ pkgs.extend(mypkgs)
else:
nevra_dict = self._nevra_kwarg_parse(kwargs)
@@@ -2216,28 -2551,72 +2555,72 @@@
# if so pass it to update b/c it should be able to figure it out
if self.rpmdb.contains(name=po.name, arch=po.arch) and not self.allowedMultipleInstalls(po):
if not self.tsInfo.getMembersWithState(po.pkgtup, TS_REMOVE_STATES):
- self.verbose_logger.warning(_('Package matching %s already installed. Checking for update.'), po)
- txmbrs = self.update(po=po)
- tx_return.extend(txmbrs)
+ vwarning(_('Package matching %s already installed. Checking for update.'), po)
+ res = self.update(po=po)
+ result.add(res)
continue
- # make sure we're not installing a package which is obsoleted by something
- # else in the repo
- thispkgobsdict = self.up.checkForObsolete([po.pkgtup])
- if thispkgobsdict.has_key(po.pkgtup):
- obsoleting = thispkgobsdict[po.pkgtup][0]
- obsoleting_pkg = self.getPackageObject(obsoleting)
+ # Make sure we're not installing a package which is obsoleted by
+ # something else in the repo. Unless there is a obsoletion loop,
+ # at which point ignore everything.
+ obsoleting_pkg = self._test_loop(po, self._pkg2obspkg)
+ if obsoleting_pkg is not None:
- self.verbose_logger.warning(_('Package %s is obsoleted by %s, trying to install %s instead'),
+ vwarning(_('Package %s is obsoleted by %s, trying to install %s instead'),
po.name, obsoleting_pkg.name, obsoleting_pkg)
- self.install(po=obsoleting_pkg)
+ self.install(po=obsoleting_pkg) # XXX result???
continue
- res = self.tsInfo.addInstall(po)
- result.add(res)
+ # at this point we are going to mark the pkg to be installed, make sure
+ # it doesn't obsolete anything. If it does, mark that in the tsInfo, too
+ if po.pkgtup in self.up.getObsoletesList(name=po.name, arch=po.arch):
+ for obsoletee in self._find_obsoletees(po):
+ txmbr = self.tsInfo.addObsoleting(po, obsoletee)
+ self.tsInfo.addObsoleted(obsoletee, po)
+ tx_return.append(txmbr)
+ else:
+ txmbr = self.tsInfo.addInstall(po)
+ tx_return.append(txmbr)
- return tx_return
+ return result
-
+ def _check_new_update_provides(self, opkg, npkg):
+ """ Check for any difference in the provides of the old and new update
+ that is needed by the transaction. If so we "update" those pkgs
+ too, to the latest version. """
+ oprovs = set(opkg.returnPrco('provides'))
+ nprovs = set(npkg.returnPrco('provides'))
+ for prov in oprovs.difference(nprovs):
+ reqs = self.tsInfo.getRequires(*prov)
+ for pkg in reqs:
+ for req in reqs[pkg]:
+ if not npkg.inPrcoRange('provides', req):
+ naTup = (pkg.name, pkg.arch)
+ for pkg in self.pkgSack.returnNewestByNameArch(naTup):
+ self.update(po=pkg)
+ break
+
+ def _newer_update_in_trans(self, pkgtup, available_pkg):
+ """ We return True if there is a newer package already in the
+ transaction. If there is an older one, we remove it (and update any
+ deps. that aren't satisfied by the newer pkg) and return False so
+ we'll update to this newer pkg. """
+ found = False
+ for txmbr in self.tsInfo.getMembersWithState(pkgtup, [TS_UPDATED]):
+ count = 0
+ for po in txmbr.updated_by:
+ if available_pkg.verLE(po):
+ count += 1
+ else:
+ for ntxmbr in self.tsInfo.getMembers(po.pkgtup):
+ self.tsInfo.remove(ntxmbr.po.pkgtup)
+ self._check_new_update_provides(ntxmbr.po,
+ available_pkg)
+ if count:
+ found = True
+ else:
+ self.tsInfo.remove(txmbr.po.pkgtup)
+ return found
+
def update(self, po=None, requiringPo=None, **kwargs):
"""try to mark for update the item(s) specified.
po is a package object - if that is there, mark it for update,
@@@ -2370,25 -2749,35 +2753,35 @@@
for installed_pkg in instpkgs:
for updating in self.up.updatesdict.get(installed_pkg.pkgtup, []):
- updating_pkg = self.getPackageObject(updating)
+ po = self.getPackageObject(updating)
if self.tsInfo.isObsoleted(installed_pkg.pkgtup):
- self.verbose_logger.log(logginglevels.DEBUG_2, _('Not Updating Package that is already obsoleted: %s.%s %s:%s-%s'),
- installed_pkg.pkgtup)
+ vdebug2(_('Not Updating Package that is already obsoleted: %s.%s %s:%s-%s'),
+ installed_pkg.pkgtup)
+ # at this point we are going to mark the pkg to be installed, make sure
+ # it doesn't obsolete anything. If it does, mark that in the tsInfo, too
+ elif po.pkgtup in self.up.getObsoletesList(name=po.name,
+ arch=po.arch):
+ for obsoletee in self._find_obsoletees(po):
+ txmbr = self.tsInfo.addUpdate(po, installed_pkg)
+ if requiringPo:
+ txmbr.setAsDep(requiringPo)
+ self.tsInfo.addObsoleting(po, obsoletee)
+ self.tsInfo.addObsoleted(obsoletee, po)
+ tx_return.append(txmbr)
else:
- res = self.tsInfo.addUpdate(updating_pkg, installed_pkg)
+ txmbr = self.tsInfo.addUpdate(po, installed_pkg)
if requiringPo:
- txmbr.setAsDep(requiringPo)
- tx_return.append(txmbr)
+ res.primary.setAsDep(requiringPo)
+ result.add(res)
-
for available_pkg in availpkgs:
for updated in self.up.updating_dict.get(available_pkg.pkgtup, []):
if self.tsInfo.isObsoleted(updated):
- self.verbose_logger.log(logginglevels.DEBUG_2, _('Not Updating Package that is already obsoleted: %s.%s %s:%s-%s'),
- updated)
+ vdebug2(_('Not Updating Package that is already obsoleted: %s.%s %s:%s-%s'),
+ updated)
- elif self.tsInfo.getMembersWithState(updated, [TS_UPDATED]):
+ elif self._newer_update_in_trans(updated, available_pkg):
- self.verbose_logger.log(logginglevels.DEBUG_2, _('Not Updating Package that is already updated: %s.%s %s:%s-%s'),
- updated)
+ vdebug2(_('Not Updating Package that is already updated: %s.%s %s:%s-%s'),
+ updated)
else:
updated_pkg = self.rpmdb.searchPkgTuple(updated)[0]
@@@ -2405,15 -2794,26 +2798,26 @@@
# most likely correct
pot_updated = self.rpmdb.searchNevra(name=available_pkg.name, arch=available_pkg.arch)
for ipkg in pot_updated:
- if ipkg.EVR < available_pkg.EVR:
- res = self.tsInfo.addUpdate(available_pkg, ipkg)
+ if self.tsInfo.isObsoleted(ipkg.pkgtup):
- self.verbose_logger.log(logginglevels.DEBUG_2, _('Not Updating Package that is already obsoleted: %s.%s %s:%s-%s'),
- ipkg.pkgtup)
++ vdebug2(_('Not Updating Package that is already obsoleted: %s.%s %s:%s-%s'),
++ ipkg.pkgtup)
+ elif self._newer_update_in_trans(ipkg.pkgtup, available_pkg):
- self.verbose_logger.log(logginglevels.DEBUG_2, _('Not Updating Package that is already updated: %s.%s %s:%s-%s'),
- ipkg.pkgtup)
++ vdebug2(_('Not Updating Package that is already updated: %s.%s %s:%s-%s'),
++ ipkg.pkgtup)
+ elif ipkg.verLT(available_pkg):
+ txmbr = self.tsInfo.addUpdate(available_pkg, ipkg)
if requiringPo:
- res.primary.setAsDep(requiringPo)
- result.add(res)
+ txmbr.setAsDep(requiringPo)
+ tx_return.append(txmbr)
+
+ #else:
+ #magically make allowdowngrade work here
+ # yum --allow-downgrade update something-specific here
+ # could work but we will need to be careful with it
+ # maybe a downgrade command is necessary
- return tx_return
+ return result
-
def remove(self, po=None, **kwargs):
"""try to find and mark for remove the specified package(s) -
if po is specified then that package object (if it is installed)
@@@ -2455,17 -2858,14 +2862,14 @@@
ver=nevra_dict['version'], rel=nevra_dict['release'])
if len(pkgs) == 0:
- # FIXME we should give the caller some nice way to hush this warning
- # probably just a kwarg of 'silence_warnings' or something
- # b/c when this is called from groupRemove() it makes a lot of
- # garbage noise
- warning(_("No package matched to remove"))
+ if not kwargs.get('silence_warnings', False):
- self.logger.warning(_("No package matched to remove"))
++ warning(_("No package matched to remove"))
for po in pkgs:
- txmbr = self.tsInfo.addErase(po)
- tx_return.append(txmbr)
+ res = self.tsInfo.addErase(po)
+ result.add(res)
- return tx_return
+ return result
def installLocal(self, pkg, po=None, updateonly=False):
"""
@@@ -2500,9 -2901,11 +2904,11 @@@
# if by any chance we're a noncompat arch rpm - bail and throw out an error
# FIXME -our archlist should be stored somewhere so we don't have to
# do this: but it's not a config file sort of thing
+ # FIXME: Should add noarch, yum localinstall works ...
+ # just rm this method?
if po.arch not in rpmUtils.arch.getArchList():
- self.logger.critical(_('Cannot add package %s to transaction. Not a compatible architecture: %s'), pkg, po.arch)
+ critical(_('Cannot add package %s to transaction. Not a compatible architecture: %s'), pkg, po.arch)
- return result
+ return tx_return
# everything installed that matches the name
installedByKey = self.rpmdb.searchNevra(name=po.name)
@@@ -2635,42 -3089,23 +3087,22 @@@
keyurls = repo.gpgkey
key_installed = False
- ts = rpmUtils.transaction.TransactionWrapper(self.conf.installroot)
+ ts = self.rpmdb.readOnlyTS()
for keyurl in keyurls:
- info(_('Retrieving GPG key from %s') % keyurl)
-
- # Go get the GPG key from the given URL
- try:
- rawkey = urlgrabber.urlread(keyurl, limit=9999)
- except urlgrabber.grabber.URLGrabError, e:
- raise Errors.YumBaseError(_('GPG key retrieval failed: ') +
- unicode(str(e), 'UTF-8', 'replace'))
-
- # Parse the key
- keys_info = misc.getgpgkeyinfo(rawkey)
-
- for keyinfo in keys_info:
- try:
- keyid = keyinfo['keyid']
- hexkeyid = misc.keyIdToRPMVer(keyid).upper()
- timestamp = keyinfo['timestamp']
- userid = keyinfo['userid']
- fingerprint = keyinfo['fingerprint']
- raw_key = keyinfo['raw_key']
- except ValueError, e:
- raise Errors.YumBaseError, \
- _('GPG key parsing failed: ') + str(e)
+ keys = self._retrievePublicKey(keyurl, repo)
+ for info in keys:
# Check if key is already installed
- if misc.keyInstalled(ts, keyid, timestamp) >= 0:
- info(_('GPG key at %s (0x%s) is already installed'),
- keyurl, hexkeyid)
+ if misc.keyInstalled(ts, info['keyid'], info['timestamp']) >= 0:
- self.logger.info(_('GPG key at %s (0x%s) is already installed') % (
- keyurl, info['hexkeyid']))
++ info(_('GPG key at %s (0x%s) is already installed') %
++ (keyurl, info['hexkeyid']))
continue
# Try installing/updating GPG key
- critical(_('Importing GPG key 0x%s "%s" from %s'),
- hexkeyid, userid, keyurl.replace("file://",""))
- self.logger.critical(_('Importing GPG key 0x%s "%s" from %s') %
- (info['hexkeyid'],
- to_unicode(info['userid']),
- keyurl.replace("file://","")))
++ critical(_('Importing GPG key 0x%s "%s" from %s') %
++ (info['hexkeyid'], to_unicode(info['userid']),
++ keyurl.replace("file://","")))
rc = False
if self.conf.assumeyes:
rc = True
@@@ -2689,9 -3126,7 +3123,7 @@@
if result != 0:
raise Errors.YumBaseError, \
_('Key import failed (code %d)') % result
- misc.import_key_to_pubring(rawkey, po.repo.cachedir)
-
- self.logger.info(_('Key imported successfully'))
+ info(_('Key imported successfully'))
key_installed = True
if not key_installed:
@@@ -2705,9 -3140,63 +3137,63 @@@
# Check if the newly installed keys helped
result, errmsg = self.sigCheckPkg(po)
if result != 0:
- self.logger.info(_("Import of key(s) didn't help, wrong key(s)?"))
+ info(_("Import of key(s) didn't help, wrong key(s)?"))
raise Errors.YumBaseError, errmsg
+
+ def getKeyForRepo(self, repo, callback=None):
+ """
+ Retrieve a key for a repository If needed, prompt for if the key should
+ be imported using callback
+
+ @param repo: Repository object to retrieve the key of.
+ @param callback: Callback function to use for asking for verification
+ of a key. Takes a dictionary of key info.
+ """
+ keyurls = repo.gpgkey
+ key_installed = False
+ for keyurl in keyurls:
+ keys = self._retrievePublicKey(keyurl, repo)
+ for info in keys:
+ # Check if key is already installed
+ if info['keyid'] in misc.return_keyids_from_pubring(repo.gpgdir):
- self.logger.info(_('GPG key at %s (0x%s) is already imported') % (
- keyurl, info['hexkeyid']))
++ info(_('GPG key at %s (0x%s) is already imported') %
++ (keyurl, info['hexkeyid']))
+ continue
+
+ # Try installing/updating GPG key
- self.logger.critical(_('Importing GPG key 0x%s "%s" from %s') %
- (info['hexkeyid'],
- to_unicode(info['userid']),
- keyurl.replace("file://","")))
++ critical(_('Importing GPG key 0x%s "%s" from %s') %
++ (info['hexkeyid'], to_unicode(info['userid']),
++ keyurl.replace("file://","")))
+ rc = False
+ if self.conf.assumeyes:
+ rc = True
+ elif callback:
+ rc = callback({"repo": repo, "userid": info['userid'],
+ "hexkeyid": info['hexkeyid'], "keyurl": keyurl,
+ "fingerprint": info['fingerprint'],
+ "timestamp": info['timestamp']})
+
+
+ if not rc:
+ raise Errors.YumBaseError, _("Not installing key for repo %s") % repo
+
+ # Import the key
- result = misc.import_key_to_pubring(info['raw_key'], info['hexkeyid'], gpgdir=repo.gpgdir)
++ result = misc.import_key_to_pubring(info['raw_key'],
++ info['hexkeyid'],
++ gpgdir=repo.gpgdir)
+ if not result:
+ raise Errors.YumBaseError, _('Key import failed')
- self.logger.info(_('Key imported successfully'))
++ info(_('Key imported successfully'))
+ key_installed = True
+
+ if not key_installed:
+ raise Errors.YumBaseError, \
+ _('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.') % (repo.name)
-
def _limit_installonly_pkgs(self):
if self.conf.installonly_limit < 1 :
return
diff --cc yum/config.py
index 01604a3,ffd70b3..98ad3d6
--- a/yum/config.py
+++ b/yum/config.py
@@@ -31,8 -31,11 +31,12 @@@ from iniparse.compat import ParsingErro
import rpmUtils.transaction
import rpmUtils.arch
import Errors
+import logginglevels
+ # Alter/patch these to change the default checking...
+ __pkgs_gpgcheck_default__ = False
+ __repo_gpgcheck_default__ = False
+
class Option(object):
'''
This class handles a single Yum configuration file option. Create
@@@ -559,12 -576,9 +577,13 @@@ class StartupConf(BaseConfig)
required early in the initialisation process or before the other [main]
options can be parsed.
'''
+ # xemacs highlighting hack: '
- debuglevel = IntOption(2, 0, 10)
- errorlevel = IntOption(2, 0, 10)
+ debuglevel = IntOption(logginglevels.DEBUG_NORMAL_LEVEL,
+ logginglevels.DEBUG_MIN_LEVEL,
+ logginglevels.DEBUG_MAX_LEVEL)
+ errorlevel = IntOption(logginglevels.ERROR_NORMAL_LEVEL,
+ logginglevels.ERROR_MIN_LEVEL,
+ logginglevels.ERROR_MAX_LEVEL)
distroverpkg = Option('redhat-release')
installroot = Option('/')
diff --cc yum/logginglevels.py
index 8b1d233,756e47a..d87ee48
--- a/yum/logginglevels.py
+++ b/yum/logginglevels.py
@@@ -53,31 -45,42 +53,61 @@@ logging.addLevelName(DEBUG_4, "DEBUG_4"
__NO_LOGGING = 100
logging.raiseExceptions = False
+ import syslog as syslog_module
+
syslog = None
+DEBUG_QUIET_LEVEL = 0
+DEBUG_NORMAL_LEVEL = 2
+DEBUG_VERBOSE_LEVEL = 3
+DEBUG_DEBUG0_LEVEL = 4
+DEBUG_DEBUG1_LEVEL = 5
+DEBUG_DEBUG2_LEVEL = 6
+DEBUG_DEBUG3_LEVEL = 7
+DEBUG_DEBUG4_LEVEL = 8
+DEBUG_UPDATES_LEVEL = DEBUG_DEBUG3_LEVEL
+
+DEBUG_MIN_LEVEL = 0
+DEBUG_MAX_LEVEL = DEBUG_DEBUG4_LEVEL
+
+ERROR_NORMAL_LEVEL = 1
+ERROR_VERBOSE_LEVEL = 2
+
+ERROR_MIN_LEVEL = 0
+ERROR_MAX_LEVEL = ERROR_VERBOSE_LEVEL
+
+ # Mostly borrowed from original yum-updated.py
+ _syslog_facility_map = { "KERN" : syslog_module.LOG_KERN,
+ "USER" : syslog_module.LOG_USER,
+ "MAIL" : syslog_module.LOG_MAIL,
+ "DAEMON" : syslog_module.LOG_DAEMON,
+ "AUTH" : syslog_module.LOG_AUTH,
+ "LPR" : syslog_module.LOG_LPR,
+ "NEWS" : syslog_module.LOG_NEWS,
+ "UUCP" : syslog_module.LOG_UUCP,
+ "CRON" : syslog_module.LOG_CRON,
+ "LOCAL0" : syslog_module.LOG_LOCAL0,
+ "LOCAL1" : syslog_module.LOG_LOCAL1,
+ "LOCAL2" : syslog_module.LOG_LOCAL2,
+ "LOCAL3" : syslog_module.LOG_LOCAL3,
+ "LOCAL4" : syslog_module.LOG_LOCAL4,
+ "LOCAL5" : syslog_module.LOG_LOCAL5,
+ "LOCAL6" : syslog_module.LOG_LOCAL6,
+ "LOCAL7" : syslog_module.LOG_LOCAL7,}
+ def syslogFacilityMap(facility):
+ if type(facility) == int:
+ return facility
+ elif facility.upper() in _syslog_facility_map:
+ return _syslog_facility_map[facility.upper()]
+ elif (facility.upper().startswith("LOG_") and
+ facility[4:].upper() in _syslog_facility_map):
+ return _syslog_facility_map[facility[4:].upper()]
+ return syslog.LOG_USER
+
def logLevelFromErrorLevel(error_level):
""" Convert an old-style error logging level to the new style. """
- error_table = { -1 : __NO_LOGGING, 0 : logging.CRITICAL, 1 : logging.ERROR,
- 2 : logging.WARNING}
+ error_table = { -1 : __NO_LOGGING,
+ 0 : logging.CRITICAL, 1 : logging.ERROR, 2 :logging.WARNING}
return __convertLevel(error_level, error_table)
diff --cc yum/misc.py
index e6c22c2,801fc0f..30887b9
--- a/yum/misc.py
+++ b/yum/misc.py
@@@ -233,10 -326,10 +326,10 @@@ def procgpgkey(rawkey)
# Decode and return
return base64.decodestring(block.getvalue())
- def getgpgkeyinfo(rawkey):
- '''Return a list of dicts of info for the given ASCII armoured key text
+ def getgpgkeyinfo(rawkey, multiple=False):
+ '''Return a dict of info for the given ASCII armoured key text
- Returned dict will have the following keys: 'userid', 'keyid', 'timestamp'
+ Returned dicts will have the following keys: 'userid', 'keyid', 'timestamp'
Will raise ValueError if there was a problem decoding the key.
'''
@@@ -275,8 -368,11 +368,10 @@@
info['timestamp'] = int(tspkt[1])
break
key_info_objs.append(info)
+ if multiple:
return key_info_objs
-
+ else:
+ return key_info_objs[0]
-
def keyIdToRPMVer(keyid):
'''Convert an integer representing a GPG key ID to the hex version string
diff --cc yum/transactioninfo.py
index a6336c7,5a843fd..f0044f1
--- a/yum/transactioninfo.py
+++ b/yum/transactioninfo.py
@@@ -199,15 -193,13 +199,14 @@@ class TransactionData
self.pkgSackPackages += 1
if self.conditionals.has_key(txmember.name):
- for po in self.conditionals[txmember.name]:
- if self.rpmdb.contains(po=po):
+ for pkg in self.conditionals[txmember.name]:
+ if self.rpmdb.contains(po=pkg):
continue
- res = self.addInstall(po, True)
- result.addConditionals(res)
- res.primary.setAsDep(po=txmember.po)
+ for condtxmbr in self.install_method(po=pkg):
+ condtxmbr.setAsDep(po=txmember.po)
self._unresolvedMembers.add(txmember)
+ return result
def remove(self, pkgtup):
"""remove a package from the transaction"""
commit 00403a9aadd3537799b8d46d9e6f84100b2bba83
Author: James Antill <james at and.org>
Date: Fri Nov 21 12:04:56 2008 -0500
Revert "updated de translation by Jochen Schmitt"
This reverts commit 0801c7cf79c95df649bfc005062799f3786d74f8.
Trying to merge with yum-3_2_X
diff --git a/po/de.po b/po/de.po
index ae1fa57..e766d20 100644
--- a/po/de.po
+++ b/po/de.po
@@ -713,9 +713,9 @@ msgstr ""
"\n"
"Transaktionszusammenfassung\n"
"=============================================================================\n"
-"Installieren %5.5s Paket(e) \n"
-"Aktualisieren %5.5s Paket(e) \n"
-"Enfernen %5.5s Paket(e) \n"
+"Installieren %5.5s Pakete(e) \n"
+"Aktualisieren %5.5s Pakete(e) \n"
+"Enfernen %5.5s Paket(e) \n"
#: ../output.py:558
msgid "Removed"
commit c1c433fd923dd272c87e19c5c2ad33071cdd79c0
Author: James Antill <james at and.org>
Date: Fri Nov 21 12:03:53 2008 -0500
Revert "Added Catalan translation by Xavier Conde"
This reverts commit c0775d5862db6cf5a2db38e5816d205a10a9f0ea.
Trying to merge with yum-3_2_X
diff --git a/po/ca.po b/po/ca.po
deleted file mode 100644
index 0e21ad5..0000000
--- a/po/ca.po
+++ /dev/null
@@ -1,1933 +0,0 @@
-# Catalan translations for yum package.
-# Copyright (C) 2008 Red Hat, Inc.
-# This file is distributed under the same license as the
-# yum package.
-#
-# Josep Maria Brunetti Fernández <josepb at gmail.com>, 2008
-#
-# 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
-# of the Catalan translation team for the Fedora project at:
-# http://www.softcatala.org/projectes/fedora/
-# and contact the previous translator
-#
-# Aquest fitxer s'ha de traduir d'acord amb el recull de termes i la guia
-# d'estil de Softcatalà . Si voleu modificar aquest fitxer, llegiu si
-# us plau la pà gina de catalanització del projecte Fedora a:
-# http://www.softcatala.org/projectes/fedora/
-# i contacteu l'anterior traductor/a.
-msgid ""
-msgstr ""
-"Project-Id-Version: yum\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-03-25 11:29+0100\n"
-"PO-Revision-Date: 2008-06-26 19:39+0200\n"
-"Last-Translator: Josep Maria Brunetti Fernández <josepb at gmail.com>\n"
-"Language-Team: Language-Team: Catalan <fedora at softcatala.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;"
-
-#: ../callback.py:48 ../output.py:512
-msgid "Updating"
-msgstr "S'està actualitzant"
-
-#: ../callback.py:49
-msgid "Erasing"
-msgstr "S'està esborrant"
-
-#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:511
-msgid "Installing"
-msgstr "S'està instal·lant"
-
-#: ../callback.py:52 ../callback.py:58
-msgid "Obsoleted"
-msgstr "Obsolet"
-
-#: ../callback.py:54 ../output.py:558
-msgid "Updated"
-msgstr "Actualitzat"
-
-#: ../callback.py:55
-msgid "Erased"
-msgstr "Esborrat"
-
-#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:556
-msgid "Installed"
-msgstr "Instal·lat"
-
-#: ../callback.py:130
-msgid "No header - huh?"
-msgstr "No hi ha capçalera"
-
-#: ../callback.py:168
-msgid "Repackage"
-msgstr "Reempaqueta"
-
-#: ../callback.py:189
-#, python-format
-msgid "Error: invalid output state: %s for %s"
-msgstr "Error: estat de sortida invà lid: %s per a %s"
-
-#: ../callback.py:212
-#, python-format
-msgid "Erased: %s"
-msgstr "Esborrat: %s"
-
-#: ../callback.py:217 ../output.py:513
-msgid "Removing"
-msgstr "S'està esborrant"
-
-#: ../callback.py:219
-msgid "Cleanup"
-msgstr "Neteja"
-
-#: ../cli.py:103
-#, python-format
-msgid "Command \"%s\" already defined"
-msgstr "L'ordre «%s» ja està definida"
-
-#: ../cli.py:115
-msgid "Setting up repositories"
-msgstr "Configurant repositoris"
-
-#: ../cli.py:126
-msgid "Reading repository metadata in from local files"
-msgstr "S'estan llegint les metadades de repositoris des de fitxers locals"
-
-#: ../cli.py:183 ../utils.py:72
-#, python-format
-msgid "Config Error: %s"
-msgstr "Error de configuració: %s"
-
-#: ../cli.py:186 ../cli.py:1068 ../utils.py:75
-#, python-format
-msgid "Options Error: %s"
-msgstr "Error d'opcions: %s"
-
-#: ../cli.py:229
-msgid "You need to give some command"
-msgstr "Cal que doneu alguna ordre"
-
-#: ../cli.py:271
-msgid "Disk Requirements:\n"
-msgstr "Requeriments de disc:\n"
-
-#: ../cli.py:273
-#, 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:278
-msgid ""
-"Error Summary\n"
-"-------------\n"
-msgstr "Resum d'errors\n"
-"-------------\n"
-
-#: ../cli.py:317
-msgid "Trying to run the transaction but nothing to do. Exiting."
-msgstr "S'ha intentat executar la transacció però no hi ha res a fer. S'està sortint."
-
-#: ../cli.py:347
-msgid "Exiting on user Command"
-msgstr "S'està sortint de l'ordre de l'usuari"
-
-#: ../cli.py:351
-msgid "Downloading Packages:"
-msgstr "S'estan descarregant els següents paquets:"
-
-#: ../cli.py:356
-msgid "Error Downloading Packages:\n"
-msgstr "S'ha produït un error descarregant els següents paquets:\n"
-
-#: ../cli.py:370 ../yum/__init__.py:2746
-msgid "Running rpm_check_debug"
-msgstr "S'està executant rpm_check_debug"
-
-#: ../cli.py:373 ../yum/__init__.py:2749
-msgid "ERROR with rpm_check_debug vs depsolve:"
-msgstr "ERROR amb rpm_check_debug vs depsolve:"
-
-#: ../cli.py:377 ../yum/__init__.py:2751
-msgid "Please report this error in bugzilla"
-msgstr "Siusplau, informeu d'aquest error al bugzilla"
-
-#: ../cli.py:383
-msgid "Running Transaction Test"
-msgstr "S'està executant la transacció de prova"
-
-#: ../cli.py:399
-msgid "Finished Transaction Test"
-msgstr "Ha acabat la transacció de prova"
-
-#: ../cli.py:401
-msgid "Transaction Check Error:\n"
-msgstr "S'ha produït un error en la transacció de prova:\n"
-
-#: ../cli.py:408
-msgid "Transaction Test Succeeded"
-msgstr "La transacció de prova ha acabat amb èxit"
-
-#: ../cli.py:429
-msgid "Running Transaction"
-msgstr "S'està executant la transacció"
-
-#: ../cli.py:459
-msgid ""
-"Refusing to automatically import keys when running unattended.\n"
-"Use \"-y\" to override."
-msgstr "No s'importaran automà ticament les claus en una execució desatesa.\n"
-"Feu servir \"-y\" per a importar les claus."
-
-#: ../cli.py:491
-msgid "Parsing package install arguments"
-msgstr "S'estan analitzant els arguments del paquet a instal·lar"
-
-#: ../cli.py:501
-#, python-format
-msgid "No package %s available."
-msgstr "El paquet %s no està disponible"
-
-#: ../cli.py:505 ../cli.py:623 ../yumcommands.py:748
-msgid "Package(s) to install"
-msgstr "Paquets a instal·lar"
-
-#: ../cli.py:506 ../cli.py:624 ../yumcommands.py:146 ../yumcommands.py:749
-msgid "Nothing to do"
-msgstr "Res a fer"
-
-#: ../cli.py:536 ../yum/__init__.py:2232 ../yum/__init__.py:2311
-#: ../yum/__init__.py:2340
-#, 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"
-
-#: ../cli.py:568
-#, python-format
-msgid "Could not find update match for %s"
-msgstr "No s'ha pogut trobar cap actualització per a %s"
-
-#: ../cli.py:580
-#, python-format
-msgid "%d packages marked for Update"
-msgstr "%d paquets marcats per a actualitzar"
-
-#: ../cli.py:583
-msgid "No Packages marked for Update"
-msgstr "No hi ha cap paquet marcat per a actualitzar"
-
-#: ../cli.py:599
-#, python-format
-msgid "%d packages marked for removal"
-msgstr "%d paquets marcats per a esborrar"
-
-#: ../cli.py:602
-msgid "No Packages marked for removal"
-msgstr "No hi ha cap paquet marcat per a esborrar"
-
-#: ../cli.py:614
-msgid "No Packages Provided"
-msgstr "No s'ha proporcionat cap paquet"
-
-#: ../cli.py:654
-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:701
-#, python-format
-msgid "Warning: No matches found for: %s"
-msgstr "AvÃs: no s'ha trobat cap coincidència per a: %s"
-
-#: ../cli.py:704
-msgid "No Matches found"
-msgstr "No s'ha trobat cap coincidència"
-
-#: ../cli.py:745
-#, python-format
-msgid "No Package Found for %s"
-msgstr "No s'ha trobat cap paquet per a %s"
-
-#: ../cli.py:757
-msgid "Cleaning up Everything"
-msgstr "S'està netejant tot"
-
-#: ../cli.py:771
-msgid "Cleaning up Headers"
-msgstr "S'estan netejant les capçaleres"
-
-#: ../cli.py:774
-msgid "Cleaning up Packages"
-msgstr "S'estan netejant els paquets"
-
-#: ../cli.py:777
-msgid "Cleaning up xml metadata"
-msgstr "S'estan netejant les metadades xml"
-
-#: ../cli.py:780
-msgid "Cleaning up database cache"
-msgstr "S'està netejant la memòria cau de la base de dades"
-
-#: ../cli.py:783
-msgid "Cleaning up expire-cache metadata"
-msgstr "S'està netejant la memòria cau de metadades que han vençut"
-
-#: ../cli.py:786
-msgid "Cleaning up plugins"
-msgstr "S'estan netejant les extensions"
-
-#: ../cli.py:807
-msgid "Installed Groups:"
-msgstr "Grups instal·lats:"
-
-#: ../cli.py:814
-msgid "Available Groups:"
-msgstr "Grups disponibles:"
-
-#: ../cli.py:820
-msgid "Done"
-msgstr "Fet"
-
-#: ../cli.py:829 ../cli.py:841 ../cli.py:847
-#, python-format
-msgid "Warning: Group %s does not exist."
-msgstr "AvÃs: El grup %s no existeix"
-
-#: ../cli.py:853
-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"
-
-#: ../cli.py:855
-#, python-format
-msgid "%d Package(s) to Install"
-msgstr "%d paquets a instal·lar"
-
-#: ../cli.py:865
-#, python-format
-msgid "No group named %s exists"
-msgstr "No existeix cap grup anomenat %s"
-
-#: ../cli.py:871
-msgid "No packages to remove from groups"
-msgstr "No hi ha cap paquet a esborrar dels grups"
-
-#: ../cli.py:873
-#, python-format
-msgid "%d Package(s) to remove"
-msgstr "%d paquets a esborrar"
-
-#: ../cli.py:915
-#, python-format
-msgid "Package %s is already installed, skipping"
-msgstr "El paquet %s ja està instal·lat, s'ometrà "
-
-#: ../cli.py:926
-#, 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:952
-#, 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ó"
-
-#: ../cli.py:971
-#, python-format
-msgid "Command line error: %s"
-msgstr "Error en la lÃnia d'ordres: %s"
-
-#: ../cli.py:1101
-msgid "be tolerant of errors"
-msgstr "sigues tolerant a errors"
-
-#: ../cli.py:1103
-msgid "run entirely from cache, don't update cache"
-msgstr "executa totalment des de la memòria cau, no actualitzis la memòria cau"
-
-#: ../cli.py:1105
-msgid "config file location"
-msgstr "ubicació del fitxer de configuració"
-
-#: ../cli.py:1107
-msgid "maximum command wait time"
-msgstr "temps mà xim d'espera d'ordres"
-
-#: ../cli.py:1109
-msgid "debugging output level"
-msgstr "nivell de sortida de depuració"
-
-#: ../cli.py:1113
-msgid "show duplicates, in repos, in list/search commands"
-msgstr "mostra duplicats, en repositoris, en les ordres llista i cerca"
-
-#: ../cli.py:1115
-msgid "error output level"
-msgstr "error en el nivell de sortida"
-
-#: ../cli.py:1118
-msgid "quiet operation"
-msgstr "operació silenciosa"
-
-#: ../cli.py:1122
-msgid "answer yes for all questions"
-msgstr "respon sà a totes les preguntes"
-
-#: ../cli.py:1124
-msgid "show Yum version and exit"
-msgstr "mostra la versió de Yum i surt"
-
-#: ../cli.py:1125
-msgid "set install root"
-msgstr "estableix l'arrel de la instal·lació"
-
-#: ../cli.py:1129
-msgid "enable one or more repositories (wildcards allowed)"
-msgstr "habilita un o més repositoris (es permeten carà cters de reemplaçament)"
-
-#: ../cli.py:1133
-msgid "disable one or more repositories (wildcards allowed)"
-msgstr "deshabilita un o més repositoris (es permeten carà cters de reemplaçament)"
-
-#: ../cli.py:1136
-msgid "exclude package(s) by name or glob"
-msgstr "exclou els paquets per nom o expressió regular del glob"
-
-#: ../cli.py:1138
-msgid "disable exclude from main, for a repo or for everything"
-msgstr "deshabilita l'exclusió des de l'inici, per a un repositori o per a tot"
-
-#: ../cli.py:1141
-msgid "enable obsoletes processing during updates"
-msgstr "habilita el processament d'obsolets durant les actualitzacions"
-
-#: ../cli.py:1143
-msgid "disable Yum plugins"
-msgstr "deshabilita les extensions de Yum"
-
-#: ../cli.py:1145
-msgid "disable gpg signature checking"
-msgstr "deshabilita la comprobació de signatures gpg"
-
-#: ../cli.py:1147
-msgid "disable plugins by name"
-msgstr "deshabilita extensions per nom"
-
-#: ../cli.py:1150
-msgid "skip packages with depsolving problems"
-msgstr "omet paquets amb problemes de resolució de dependències"
-
-#: ../output.py:229
-msgid "Jan"
-msgstr "Gen"
-
-#: ../output.py:229
-msgid "Feb"
-msgstr "Feb"
-
-#: ../output.py:229
-msgid "Mar"
-msgstr "Mar"
-
-#: ../output.py:229
-msgid "Apr"
-msgstr "Abr"
-
-#: ../output.py:229
-msgid "May"
-msgstr "Mai"
-
-#: ../output.py:229
-msgid "Jun"
-msgstr "Jun"
-
-#: ../output.py:230
-msgid "Jul"
-msgstr "Jul"
-
-#: ../output.py:230
-msgid "Aug"
-msgstr "Ago"
-
-#: ../output.py:230
-msgid "Sep"
-msgstr "Set"
-
-#: ../output.py:230
-msgid "Oct"
-msgstr "Oct"
-
-#: ../output.py:230
-msgid "Nov"
-msgstr "Nov"
-
-#: ../output.py:230
-msgid "Dec"
-msgstr "Des"
-
-#: ../output.py:240
-msgid "Trying other mirror."
-msgstr "S'està intentant un altre servidor rèplica"
-
-#: ../output.py:293
-#, python-format
-msgid "Name : %s"
-msgstr "Nom : %s"
-
-#: ../output.py:294
-#, python-format
-msgid "Arch : %s"
-msgstr "Arq : %s"
-
-#: ../output.py:296
-#, python-format
-msgid "Epoch : %s"
-msgstr "Ãpoca : %s"
-
-#: ../output.py:297
-#, python-format
-msgid "Version : %s"
-msgstr "Versió : %s"
-
-#: ../output.py:298
-#, python-format
-msgid "Release : %s"
-msgstr "Release : %s"
-
-#: ../output.py:299
-#, python-format
-msgid "Size : %s"
-msgstr "Mida : %s"
-
-#: ../output.py:300
-#, python-format
-msgid "Repo : %s"
-msgstr "Repo : %s"
-
-#: ../output.py:302
-#, python-format
-msgid "Committer : %s"
-msgstr "Desenvolupador : %s"
-
-#: ../output.py:303
-msgid "Summary : "
-msgstr "Resum : "
-
-#: ../output.py:305
-#, python-format
-msgid "URL : %s"
-msgstr "URL : %s"
-
-#: ../output.py:306
-#, python-format
-msgid "License : %s"
-msgstr "Llicència : %s"
-
-#: ../output.py:307
-msgid "Description: "
-msgstr "Descripció: "
-
-#: ../output.py:351
-# REMEMBER to Translate [Y/N] to the current locale
-msgid "Is this ok [y/N]: "
-msgstr "Ãs correcte [s/N]: "
-
-#: ../output.py:357 ../output.py:360
-msgid "y"
-msgstr "s"
-
-#: ../output.py:357
-msgid "n"
-msgstr "n"
-
-#: ../output.py:357 ../output.py:360
-msgid "yes"
-msgstr "sÃ"
-
-#: ../output.py:357
-msgid "no"
-msgstr "no"
-
-#: ../output.py:367
-#, python-format
-msgid ""
-"\n"
-"Group: %s"
-msgstr ""
-"\n"
-"Grup: %s"
-
-#: ../output.py:369
-#, python-format
-msgid " Description: %s"
-msgstr " Descripció: %s"
-
-#: ../output.py:371
-msgid " Mandatory Packages:"
-msgstr " Paquets obligatoris:"
-
-#: ../output.py:376
-msgid " Default Packages:"
-msgstr " Paquets per defecte:"
-
-#: ../output.py:381
-msgid " Optional Packages:"
-msgstr " Paquets opcionals:"
-
-#: ../output.py:386
-msgid " Conditional Packages:"
-msgstr " Paquets condicionals:"
-
-#: ../output.py:394
-#, python-format
-msgid "package: %s"
-msgstr "paquet: %s"
-
-#: ../output.py:396
-msgid " No dependencies for this package"
-msgstr " No hi ha dependències per a aquest paquet"
-
-#: ../output.py:401
-#, python-format
-msgid " dependency: %s"
-msgstr " dependència: %s"
-
-#: ../output.py:403
-msgid " Unsatisfied dependency"
-msgstr " Dependència insatisfeta"
-
-#: ../output.py:461
-msgid "Matched from:"
-msgstr "Coincidències amb:"
-
-#: ../output.py:487
-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:492
-#, python-format
-msgid "Total size: %s"
-msgstr "Mida total: %s"
-
-#: ../output.py:495
-#, python-format
-msgid "Total download size: %s"
-msgstr "Mida total de la descà rrega: %s"
-
-#: ../output.py:507
-msgid "Package"
-msgstr "Paquet"
-
-#: ../output.py:507
-msgid "Arch"
-msgstr "Arq"
-
-#: ../output.py:507
-msgid "Version"
-msgstr "Versió"
-
-#: ../output.py:507
-msgid "Repository"
-msgstr "Repositori"
-
-#: ../output.py:507
-msgid "Size"
-msgstr "Mida"
-
-#: ../output.py:514
-msgid "Installing for dependencies"
-msgstr "S'està instal·lant per dependències"
-
-#: ../output.py:515
-msgid "Updating for dependencies"
-msgstr "S'està actualitzant per dependències"
-
-#: ../output.py:516
-msgid "Removing for dependencies"
-msgstr "S'està esborrant per dependències"
-
-#: ../output.py:528
-#, python-format
-msgid ""
-" replacing %s.%s %s\n"
-"\n"
-msgstr ""
-" s'està reemplaçant %s.%s %s\n"
-"\n"
-
-#: ../output.py:536
-#, python-format
-msgid ""
-"\n"
-"Transaction Summary\n"
-"=============================================================================\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"
-"=============================================================================\n"
-"Instal·la %5.5s paquets\n"
-"Actualitza %5.5s paquets\n"
-"Esborra %5.5s paquets\n"
-""
-
-#: ../output.py:554
-msgid "Removed"
-msgstr "Esborrat"
-
-#: ../output.py:555
-msgid "Dependency Removed"
-msgstr "Dependència esborrada"
-
-#: ../output.py:557
-msgid "Dependency Installed"
-msgstr "Dependència instal·lada"
-
-#: ../output.py:559
-msgid "Dependency Updated"
-msgstr "Dependència actualitzada"
-
-#: ../output.py:560
-msgid "Replaced"
-msgstr "Reemplaçat"
-
-#: ../output.py:618
-#, python-format
-msgid ""
-"\n"
-" Current download cancelled, %sinterrupt (ctrl-c) again%s within %s%s%s "
-"seconds 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"
-
-#: ../output.py:628
-msgid "user interrupt"
-msgstr "interrupció de l'usuari"
-
-#: ../output.py:639
-msgid "installed"
-msgstr "instal·lat"
-
-#: ../output.py:640
-msgid "updated"
-msgstr "actualitzat"
-
-#: ../output.py:641
-msgid "obsoleted"
-msgstr "obsolet"
-
-#: ../output.py:642
-msgid "erased"
-msgstr "esborrat"
-
-#: ../output.py:646
-#, 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:653
-msgid "--> Running transaction check"
-msgstr "--> S'està executant la transacció de prova"
-
-#: ../output.py:658
-msgid "--> Restarting Dependency Resolution with new changes."
-msgstr "--> Tornant a calcular la resolució de dependències amb els nous canvis."
-
-#: ../output.py:663
-msgid "--> Finished Dependency Resolution"
-msgstr "--> Ha finalitzat la resolució de dependències"
-
-#: ../output.py:668
-#, python-format
-msgid "--> Processing Dependency: %s for package: %s"
-msgstr "--> S'està processant la dependència %s per al paquet: %s"
-
-#: ../output.py:673
-#, python-format
-msgid "--> Unresolved Dependency: %s"
-msgstr "--> Dependència no resolta: %s"
-
-#: ../output.py:679
-#, python-format
-msgid "--> Processing Conflict: %s conflicts %s"
-msgstr "--> S'està processant el conflicte: %s té un conflicte amb %s"
-
-#: ../output.py:682
-msgid "--> Populating transaction set with selected packages. Please wait."
-msgstr "--> S'està poblant la transacció amb els paquets sel·leccionats. Si us plau, espereu."
-
-#: ../output.py:686
-#, 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."
-
-#: ../yumcommands.py:36
-msgid "You need to be root to perform this command."
-msgstr "Heu de ser root per a executar aquesta ordre."
-
-#: ../yumcommands.py:43
-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"
-"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"
-"les claus per als paquets paquets que desitdeu instal·lar i instal·lar-les.\n"
-"Podeu fer-ho executant l'ordre:\n"
-" rpm --import clau.pública.gpg\n"
-"\n"
-"\n"
-"També podeu especificar la url de la clau que voleu utilitzar\n"
-"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 distribuidor o proveïdor de paquets.\n"
-
-#: ../yumcommands.py:63
-#, 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:69
-msgid "Error: Need an item to match"
-msgstr "Error: es necessita algun element per comparar"
-
-#: ../yumcommands.py:75
-msgid "Error: Need a group or list of groups"
-msgstr "Error: es necessita un grup o una llista de grups"
-
-#: ../yumcommands.py:84
-#, python-format
-msgid "Error: clean requires an option: %s"
-msgstr "Error: la neteja requereix una opció: %s"
-
-#: ../yumcommands.py:89
-#, python-format
-msgid "Error: invalid clean argument: %r"
-msgstr "Error: argument invà lid per a la neteja: %r"
-
-#: ../yumcommands.py:102
-msgid "No argument to shell"
-msgstr "No hi ha arguments per a l'intèrpret d'ordres"
-
-#: ../yumcommands.py:105
-#, python-format
-msgid "Filename passed to shell: %s"
-msgstr "Nom del fitxer passat a l'intèrpret d'ordres: %s"
-
-#: ../yumcommands.py:109
-#, 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:115
-msgid "Error: more than one file given as argument to shell."
-msgstr "Error: s'ha donat més d'un fitxer com a arguments per a l'intèrpret d'ordres."
-
-#: ../yumcommands.py:156
-msgid "PACKAGE..."
-msgstr "PAQUET..."
-
-#: ../yumcommands.py:159
-msgid "Install a package or packages on your system"
-msgstr "Instal·la un o més paquets al vostre sistema"
-
-#: ../yumcommands.py:168
-msgid "Setting up Install Process"
-msgstr "S'està preparant el procés d'instal·lació"
-
-#: ../yumcommands.py:179
-msgid "[PACKAGE...]"
-msgstr "[PAQUET...]"
-
-#: ../yumcommands.py:182
-msgid "Update a package or packages on your system"
-msgstr "S'ha actualitzat un o més paquets al vostre sistema"
-
-#: ../yumcommands.py:190
-msgid "Setting up Update Process"
-msgstr "S'està preparant el procés d'actualització"
-
-#: ../yumcommands.py:204
-msgid "Display details about a package or group of packages"
-msgstr "Mostra detalls sobre un paquet o un grup de paquets"
-
-#: ../yumcommands.py:212
-msgid "Installed Packages"
-msgstr "Paquets instal·lats"
-
-#: ../yumcommands.py:213
-msgid "Available Packages"
-msgstr "Paquets disponibles"
-
-#: ../yumcommands.py:214
-msgid "Extra Packages"
-msgstr "Paquets extra"
-
-#: ../yumcommands.py:215
-msgid "Updated Packages"
-msgstr "Paquets actualitzats"
-
-#: ../yumcommands.py:221 ../yumcommands.py:225
-msgid "Obsoleting Packages"
-msgstr "Paquets fets obsolets"
-
-#: ../yumcommands.py:226
-msgid "Recently Added Packages"
-msgstr "Paquets recentment afegits"
-
-#: ../yumcommands.py:232
-msgid "No matching Packages to list"
-msgstr "No hi ha paquets coincidents per llistar"
-
-#: ../yumcommands.py:246
-msgid "List a package or groups of packages"
-msgstr "Llista un paquet o un grup de paquets"
-
-#: ../yumcommands.py:258
-msgid "Remove a package or packages from your system"
-msgstr "Esborra un o més paquets del vostre sistema"
-
-#: ../yumcommands.py:266
-msgid "Setting up Remove Process"
-msgstr "S'està preparant el procés d'esborrat"
-
-#: ../yumcommands.py:278
-msgid "Setting up Group Process"
-msgstr "S'està preparant el procés de grup"
-
-#: ../yumcommands.py:284
-msgid "No Groups on which to run command"
-msgstr "No hi ha cap grup on executar l'ordre"
-
-#: ../yumcommands.py:297
-msgid "List available package groups"
-msgstr "Llista els grups de paquets disponibles"
-
-#: ../yumcommands.py:314
-msgid "Install the packages in a group on your system"
-msgstr "Instal·la els paquets en un grup en el vostre sistema"
-
-#: ../yumcommands.py:336
-msgid "Remove the packages in a group from your system"
-msgstr "Esborra els paquets en un grup en el vostre sistema"
-
-#: ../yumcommands.py:360
-msgid "Display details about a package group"
-msgstr "Mostra detalls sobre un grup de paquets"
-
-#: ../yumcommands.py:384
-msgid "Generate the metadata cache"
-msgstr "Genera les metadades de la memòria cau"
-
-#: ../yumcommands.py:390
-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."
-
-#: ../yumcommands.py:391
-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:412
-msgid "Metadata Cache Created"
-msgstr "S'han creat les metadades per a la memòria cau"
-
-#: ../yumcommands.py:426
-msgid "Remove cached data"
-msgstr "S'han esborrat les dades de la memòria cau"
-
-#: ../yumcommands.py:447
-msgid "Find what package provides the given value"
-msgstr "Troba quin paquet proporciona el valor donat"
-
-#: ../yumcommands.py:467
-msgid "Check for available package updates"
-msgstr "Comprova si hi ha actualitzacions de paquets disponibles"
-
-#: ../yumcommands.py:490
-msgid "Search package details for the given string"
-msgstr "Busca detalls del paquet per la cadena donada"
-
-#: ../yumcommands.py:496
-msgid "Searching Packages: "
-msgstr "S'estan buscant paquets: "
-
-#: ../yumcommands.py:513
-msgid "Update packages taking obsoletes into account"
-msgstr "Actualitza paquets tenint en compte els obsolets"
-
-#: ../yumcommands.py:522
-msgid "Setting up Upgrade Process"
-msgstr "S'està preparant el procés d'actualització"
-
-#: ../yumcommands.py:536
-msgid "Install a local RPM"
-msgstr "Instal·la un RPM local"
-
-#: ../yumcommands.py:545
-msgid "Setting up Local Package Process"
-msgstr "S'està configurant el procés local de paquets"
-
-#: ../yumcommands.py:564
-msgid "Determine which package provides the given dependency"
-msgstr "Determina quin paquet satisfà la dependència donada"
-
-#: ../yumcommands.py:567
-msgid "Searching Packages for Dependency:"
-msgstr "S'estan buscant paquets per a la dependència:"
-
-#: ../yumcommands.py:581
-msgid "Run an interactive yum shell"
-msgstr "Executa un intèrpret d'ordres interactiu de yum"
-
-#: ../yumcommands.py:587
-msgid "Setting up Yum Shell"
-msgstr "S'està preparant l'intèrpret d'ordres de yum"
-
-#: ../yumcommands.py:605
-msgid "List a package's dependencies"
-msgstr "Llista les dependències d'un paquet"
-
-#: ../yumcommands.py:611
-msgid "Finding dependencies: "
-msgstr "S'estan trobant dependències: "
-
-#: ../yumcommands.py:627
-msgid "Display the configured software repositories"
-msgstr "Mostra els repositoris de programari configurats"
-
-#: ../yumcommands.py:645
-msgid "repo id"
-msgstr "id repo"
-
-#: ../yumcommands.py:645
-msgid "repo name"
-msgstr "nom repo"
-
-#: ../yumcommands.py:645
-msgid "status"
-msgstr "estat"
-
-#: ../yumcommands.py:651
-msgid "enabled"
-msgstr "habilitat"
-
-#: ../yumcommands.py:654
-msgid "disabled"
-msgstr "deshabilitat"
-
-#: ../yumcommands.py:671
-msgid "Display a helpful usage message"
-msgstr "Mostra un missatge d'ajuda d'ús"
-
-#: ../yumcommands.py:705
-#, python-format
-msgid "No help available for %s"
-msgstr "No hi ha ajuda disponible per a %s"
-
-#: ../yumcommands.py:710
-msgid ""
-"\n"
-"\n"
-"aliases: "
-msgstr ""
-"\n"
-"\n"
-"Ã lies: "
-
-#: ../yumcommands.py:712
-msgid ""
-"\n"
-"\n"
-"alias: "
-msgstr ""
-"\n"
-"\n"
-"Ã lies: "
-
-#: ../yumcommands.py:741
-msgid "Setting up Reinstall Process"
-msgstr "S'està preparant el procés de reinstal·lació"
-
-#: ../yumcommands.py:755
-msgid "reinstall a package"
-msgstr "reinstal·la un paquet"
-
-#: ../yummain.py:41
-msgid ""
-"\n"
-"\n"
-"Exiting on user cancel"
-msgstr ""
-"\n"
-"\n"
-"S'està sortint per la cancel·lació de l'usuari"
-
-#: ../yummain.py:47
-msgid ""
-"\n"
-"\n"
-"Exiting on Broken Pipe"
-msgstr ""
-"\n"
-"\n"
-"S'està sortint en trobar la canonada trencada"
-
-#: ../yummain.py:105
-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:132 ../yummain.py:171
-#, python-format
-msgid "Error: %s"
-msgstr "Error: %s"
-
-#: ../yummain.py:142 ../yummain.py:178
-#, python-format
-msgid "Unknown Error(s): Exit Code: %d:"
-msgstr "Errors desconeguts: Codi de sortida: %d:"
-
-#. Depsolve stage
-#: ../yummain.py:149
-msgid "Resolving Dependencies"
-msgstr "S'estan resolent dependències"
-
-#: ../yummain.py:184
-msgid ""
-"\n"
-"Dependencies Resolved"
-msgstr ""
-"\n"
-"Dependències resoltes"
-
-#: ../yummain.py:198
-msgid "Complete!"
-msgstr "Completat!"
-
-#: ../yummain.py:245
-msgid ""
-"\n"
-"\n"
-"Exiting on user cancel."
-msgstr ""
-"\n"
-"\n"
-"S'està sortint de l'ordre de l'usuari."
-
-#: ../yum/depsolve.py:82
-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:95
-msgid "Setting up TransactionSets before config class is up"
-msgstr "S'està configurant TransactionSets abans que la classe de configuració "
-"estigui iniciada"
-
-#: ../yum/depsolve.py:136
-#, python-format
-msgid "Invalid tsflag in config file: %s"
-msgstr "Tsflag invà lid en el fitxer de configuració: %s"
-
-#: ../yum/depsolve.py:147
-#, python-format
-msgid "Searching pkgSack for dep: %s"
-msgstr "S'està buscant pkgSack per a la dependència: %s"
-
-#: ../yum/depsolve.py:170
-#, python-format
-msgid "Potential match for %s from %s"
-msgstr "Coincidència potencial per a %s de %s"
-
-#: ../yum/depsolve.py:178
-#, python-format
-msgid "Matched %s to require for %s"
-msgstr "La coincidència %s es requereix per a %s"
-
-#: ../yum/depsolve.py:219
-#, python-format
-msgid "Member: %s"
-msgstr "Membre: %s"
-
-#: ../yum/depsolve.py:233 ../yum/depsolve.py:696
-#, python-format
-msgid "%s converted to install"
-msgstr "%s convertits per a instal·lar"
-
-#: ../yum/depsolve.py:240
-#, python-format
-msgid "Adding Package %s in mode %s"
-msgstr "S'està afegint el paquet %s en mode %s"
-
-#: ../yum/depsolve.py:250
-#, python-format
-msgid "Removing Package %s"
-msgstr "S'està esborrant el paquet %s"
-
-#: ../yum/depsolve.py:261
-#, python-format
-msgid "%s requires: %s"
-msgstr "%s requereix: %s"
-
-#: ../yum/depsolve.py:312
-msgid "Needed Require has already been looked up, cheating"
-msgstr "El requeriment necessari ja s'ha buscat anteriorment, s'estan fent trampes"
-
-#: ../yum/depsolve.py:322
-#, 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:329
-#, python-format
-msgid "Potential Provider: %s"
-msgstr "Proveïdor potencial: %s"
-
-#: ../yum/depsolve.py:352
-#, 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:356
-#, python-format
-msgid "Mode for pkg providing %s: %s"
-msgstr "Mode per al paquet que proporciona %s: %s"
-
-#: ../yum/depsolve.py:360
-#, python-format
-msgid "TSINFO: %s package requiring %s marked as erase"
-msgstr "TSINFO: el paquet %s requereix %s marcat per a esborrar"
-
-#: ../yum/depsolve.py:372
-#, 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."
-
-#: ../yum/depsolve.py:375
-#, python-format
-msgid "TSINFO: Updating %s to resolve dep."
-msgstr "TSINFO: S'està actualitzant %s per a resoldre dependències."
-
-#: ../yum/depsolve.py:378
-#, 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:388
-#, python-format
-msgid "Unresolvable requirement %s for %s"
-msgstr "No es pot resoldre el requeriment %s per a %s"
-
-#. is it already installed?
-#: ../yum/depsolve.py:434
-#, 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."
-
-#: ../yum/depsolve.py:449
-#, 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"
-
-#: ../yum/depsolve.py:460
-#, 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."
-
-#: ../yum/depsolve.py:468 ../yum/depsolve.py:527
-#, python-format
-msgid "Missing Dependency: %s is needed by package %s"
-msgstr "La dependència que falta: %s es necessita per al paquet %s"
-
-#: ../yum/depsolve.py:481
-#, python-format
-msgid "%s already in ts, skipping this one"
-msgstr "%s ja es troba en ts, s'està ometent"
-
-#: ../yum/depsolve.py:510
-#, python-format
-msgid ""
-"Failure finding best provider of %s for %s, exceeded maximum loop length"
-msgstr ""
-"S'ha produït un error trobant el millor proveïdor de %s per a %s, el bucle ha excedit la longitud mà xima"
-
-#: ../yum/depsolve.py:537
-#, 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:544
-#, 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:635 ../yum/depsolve.py:714
-msgid "Success - empty transaction"
-msgstr "Ãxit - transacció buida"
-
-#: ../yum/depsolve.py:673 ../yum/depsolve.py:686
-msgid "Restarting Loop"
-msgstr "S'està recomençant el bucle"
-
-#: ../yum/depsolve.py:702
-msgid "Dependency Process ending"
-msgstr "Està acabant el procés de dependències"
-
-#: ../yum/depsolve.py:708
-#, python-format
-msgid "%s from %s has depsolving problems"
-msgstr "%s de %s té problemes resolent dependències"
-
-#: ../yum/depsolve.py:715
-msgid "Success - deps resolved"
-msgstr "Ãxit - dependències resoltes"
-
-#: ../yum/depsolve.py:729
-#, python-format
-msgid "Checking deps for %s"
-msgstr "S'estan comprobant les dependències per a %s"
-
-#: ../yum/depsolve.py:782
-#, python-format
-msgid "looking for %s as a requirement of %s"
-msgstr "s'està buscant %s com a requeriment de %s"
-
-#: ../yum/depsolve.py:933
-#, python-format
-msgid "Comparing best: %s to po: %s"
-msgstr "S'està comparant el millor: %s amb po: %s"
-
-#: ../yum/depsolve.py:937
-#, python-format
-msgid "Same: best %s == po: %s"
-msgstr "Igual: el millor %s == po: %s"
-
-#: ../yum/depsolve.py:952 ../yum/depsolve.py:963
-#, python-format
-msgid "best %s obsoletes po: %s"
-msgstr "el millor %s deixa com a obsolet el po: %s"
-
-#: ../yum/depsolve.py:955
-#, python-format
-msgid "po %s obsoletes best: %s"
-msgstr "el po %s deixa com a obsolet el millor: %s"
-
-#: ../yum/depsolve.py:972 ../yum/depsolve.py:979 ../yum/depsolve.py:1036
-#, python-format
-msgid "better arch in po %s"
-msgstr "millor arq en el po %s"
-
-#: ../yum/depsolve.py:988 ../yum/depsolve.py:1010
-#, python-format
-msgid "po %s shares a sourcerpm with %s"
-msgstr "el po %s comparteix un rpm origen amb %s"
-
-#: ../yum/depsolve.py:992 ../yum/depsolve.py:1015
-#, python-format
-msgid "best %s shares a sourcerpm with %s"
-msgstr "el millor %s comparteix un rpm origen amb %s"
-
-#: ../yum/depsolve.py:999 ../yum/depsolve.py:1020
-#, python-format
-msgid "po %s shares more of the name prefix with %s"
-msgstr "el po %s comparteix més que el prefix del nom amb %s"
-
-#: ../yum/depsolve.py:1003 ../yum/depsolve.py:1029
-#, python-format
-msgid "po %s has a shorter name than best %s"
-msgstr "el po %s té un nom més curt que el millor %s"
-
-#: ../yum/depsolve.py:1025
-#, python-format
-msgid "bestpkg %s shares more of the name prefix with %s"
-msgstr "el millor paquet %s comparteix més el prefix del nom amb %s"
-
-#: ../yum/__init__.py:119
-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:296
-#, 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:332
-msgid "plugins already initialised"
-msgstr "els connectors ja estan inicialitzats"
-
-#: ../yum/__init__.py:339
-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:349
-msgid "Reading Local RPMDB"
-msgstr "S'està llegint un RPMDB local"
-
-#: ../yum/__init__.py:367
-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:387
-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:404
-msgid "Setting up Package Sacks"
-msgstr "S'estan configurant els sacs de paquets"
-
-#: ../yum/__init__.py:447
-#, 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:448
-msgid "therefore this repo cannot be reset.\n"
-msgstr "Aquest repositori no es pot reiniciar.\n"
-
-#: ../yum/__init__.py:453
-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:465
-msgid "Building updates object"
-msgstr "S'està construint l'objecte d'actualitzacions"
-
-#: ../yum/__init__.py:496
-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:520
-msgid "Getting group metadata"
-msgstr "S'estan obtenint les metadades del grup"
-
-#: ../yum/__init__.py:546
-#, python-format
-msgid "Adding group file from repository: %s"
-msgstr "S'està afegint el fitxer del grup des del repositori: %s"
-
-#: ../yum/__init__.py:555
-#, 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:561
-msgid "No Groups Available in any repository"
-msgstr "No hi ha cap grup disponible en cap repositori"
-
-#: ../yum/__init__.py:611
-msgid "Importing additional filelist information"
-msgstr "S'està important informació adicional de la llista de fitxers"
-
-#: ../yum/__init__.py:657
-#, python-format
-msgid "Skip-broken round %i"
-msgstr "Intent %i d'omissió dels trencats"
-
-#: ../yum/__init__.py:680
-#, python-format
-msgid "Skip-broken took %i rounds "
-msgstr "L'omisió dels trencats ha necessitat %i intents"
-
-#: ../yum/__init__.py:681
-msgid ""
-"\n"
-"Packages skipped because of dependency problems:"
-msgstr ""
-"\n"
-"Paquets omesos degut a problemes de dependències:"
-
-#: ../yum/__init__.py:685
-#, python-format
-msgid " %s from %s"
-msgstr " %s des de %s"
-
-#: ../yum/__init__.py:774
-#, python-format
-msgid "Failed to remove transaction file %s"
-msgstr "No s'ha pogut esborrar el fitxer de transaccions %s"
-
-#: ../yum/__init__.py:814
-#, python-format
-msgid "excluding for cost: %s from %s"
-msgstr "s'està excloent per cost: %s de %s"
-
-#: ../yum/__init__.py:845
-msgid "Excluding Packages in global exclude list"
-msgstr "S'estan excloent paquets en la llista global d'exclusió"
-
-#: ../yum/__init__.py:847
-#, python-format
-msgid "Excluding Packages from %s"
-msgstr "S'estan excloent paquets de %s"
-
-#: ../yum/__init__.py:875
-#, python-format
-msgid "Reducing %s to included packages only"
-msgstr "S'està reduint %s únicament a paquets inclosos."
-
-#: ../yum/__init__.py:880
-#, python-format
-msgid "Keeping included package %s"
-msgstr "S'està mantenint el paquet inclòs %s"
-
-#: ../yum/__init__.py:886
-#, python-format
-msgid "Removing unmatched package %s"
-msgstr "S'està esborrant el paquet sense coincidències %s"
-
-#: ../yum/__init__.py:889
-msgid "Finished"
-msgstr "Finalitzat"
-
-#. Whoa. What the heck happened?
-#: ../yum/__init__.py:919
-#, 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:923
-#, 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:970 ../yum/__init__.py:977
-msgid "Package does not match intended download"
-msgstr "El paquet no coincideix amb la descà rrega intentada"
-
-#: ../yum/__init__.py:991
-msgid "Could not perform checksum"
-msgstr "No s'ha pogut realitzar la suma de verificació"
-
-#: ../yum/__init__.py:994
-msgid "Package does not match checksum"
-msgstr "No coincideix la suma de verificació del paquet"
-
-#: ../yum/__init__.py:1036
-#, 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"
-
-#: ../yum/__init__.py:1042
-#, python-format
-msgid "using local copy of %s"
-msgstr "s'està utilitzant la còpia local de %s"
-
-#: ../yum/__init__.py:1061
-#, python-format
-msgid "Insufficient space in download directory %s to download"
-msgstr "No hi ha espai suficient al directori de descà rregues %s per a descarregar"
-
-#: ../yum/__init__.py:1094
-msgid "Header is not complete."
-msgstr "La capçalera no està completa."
-
-#: ../yum/__init__.py:1134
-#, 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"
-
-#: ../yum/__init__.py:1189
-#, 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:1193
-#, python-format
-msgid "Problem opening package %s"
-msgstr "Hi ha hagut un problema obrint el paquet %s"
-
-#: ../yum/__init__.py:1201
-#, 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:1205
-#, python-format
-msgid "Package %s is not signed"
-msgstr "El paquet %s no està signat"
-
-#: ../yum/__init__.py:1243
-#, python-format
-msgid "Cannot remove %s"
-msgstr "No es pot esborrar %s"
-
-#: ../yum/__init__.py:1247
-#, python-format
-msgid "%s removed"
-msgstr "S'ha esborrat %s"
-
-#: ../yum/__init__.py:1283
-#, python-format
-msgid "Cannot remove %s file %s"
-msgstr "No es pot esborrar %s fitxer %s"
-
-#: ../yum/__init__.py:1287
-#, python-format
-msgid "%s file %s removed"
-msgstr "%s fitxer %s esborrat"
-
-#: ../yum/__init__.py:1289
-#, python-format
-msgid "%d %s files removed"
-msgstr "%d %s fitxers esborrats"
-
-#: ../yum/__init__.py:1329
-#, 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:1335
-#, 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:1543
-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:1580
-#, python-format
-msgid "Searching %d packages"
-msgstr "S'estan buscant %d paquets"
-
-#: ../yum/__init__.py:1584
-#, python-format
-msgid "searching package %s"
-msgstr "s'està buscant el paquet %s"
-
-#: ../yum/__init__.py:1596
-msgid "searching in file entries"
-msgstr "s'està buscant en les entrades de fitxers"
-
-#: ../yum/__init__.py:1603
-msgid "searching in provides entries"
-msgstr "s'està buscant en les entrades proporcionades"
-
-#: ../yum/__init__.py:1633
-#, python-format
-msgid "Provides-match: %s"
-msgstr "Proporciona-coincideix: %s"
-
-#: ../yum/__init__.py:1702 ../yum/__init__.py:1720 ../yum/__init__.py:1748
-#: ../yum/__init__.py:1753 ../yum/__init__.py:1808 ../yum/__init__.py:1812
-#, python-format
-msgid "No Group named %s exists"
-msgstr "No existeix cap grup anomenat %s"
-
-#: ../yum/__init__.py:1731 ../yum/__init__.py:1824
-#, 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:1770
-#, python-format
-msgid "Adding package %s from group %s"
-msgstr "S'està afegint el paquet %s del grup %s"
-
-#: ../yum/__init__.py:1774
-#, 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:1849
-#, 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:1917 ../yum/__init__.py:1960
-msgid "Invalid versioned dependency string, try quoting it."
-msgstr "La cadena de versió de dependència és invà lida, proveu-ho entre cometes."
-
-#: ../yum/__init__.py:1919 ../yum/__init__.py:1962
-msgid "Invalid version flag"
-msgstr "Versió de flag invà lida"
-
-#: ../yum/__init__.py:1934 ../yum/__init__.py:1938
-#, python-format
-msgid "No Package found for %s"
-msgstr "No s'ha trobat cap paquet per a %s"
-
-#: ../yum/__init__.py:2066
-msgid "Package Object was not a package object instance"
-msgstr "L'objecte paquet no era una instà ncia d'objecte paquet"
-
-#: ../yum/__init__.py:2070
-msgid "Nothing specified to install"
-msgstr "No hi ha res especificat per a instal·lar"
-
-#. only one in there
-#: ../yum/__init__.py:2085
-#, 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"
-
-#: ../yum/__init__.py:2091 ../yum/__init__.py:2380
-#, python-format
-msgid "No Match for argument: %s"
-msgstr "No hi ha cap coincidència per a l'argument: %s"
-
-#. FIXME - this is where we could check to see if it already installed
-#. for returning better errors
-#: ../yum/__init__.py:2146
-msgid "No package(s) available to install"
-msgstr "No hi ha cap paquet disponible per a instal·lar"
-
-#: ../yum/__init__.py:2158
-#, python-format
-msgid "Package: %s - already in transaction set"
-msgstr "El paquet: %s - ja està en la transacció"
-
-#: ../yum/__init__.py:2171
-#, 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:2178
-#, 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ó."
-
-#. update everything (the easy case)
-#: ../yum/__init__.py:2220
-msgid "Updating Everything"
-msgstr "S'està actualitzant tot"
-
-#: ../yum/__init__.py:2304
-#, 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:2377
-#, python-format
-msgid "%s"
-msgstr "%s"
-
-#: ../yum/__init__.py:2392
-msgid "No package matched to remove"
-msgstr "No hi ha cap paquet coincident per a esborrar"
-
-#: ../yum/__init__.py:2426
-#, python-format
-msgid "Cannot open file: %s. Skipping."
-msgstr "No es pot obrir el fitxer %s. S'ometrà ."
-
-#: ../yum/__init__.py:2429
-#, python-format
-msgid "Examining %s: %s"
-msgstr "S'està examinant %s: %s"
-
-#: ../yum/__init__.py:2436
-#, 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. Executa yum install per a instal·lar-lo."
-
-#: ../yum/__init__.py:2468
-#, python-format
-msgid "Excluding %s"
-msgstr "S'està excloent %s"
-
-#: ../yum/__init__.py:2473
-#, python-format
-msgid "Marking %s to be installed"
-msgstr "S'està marcant %s per a ser instal·lat"
-
-#: ../yum/__init__.py:2479
-#, python-format
-msgid "Marking %s as an update to %s"
-msgstr "S'està marcant %s com a actualització de %s"
-
-#: ../yum/__init__.py:2486
-#, python-format
-msgid "%s: does not update installed package."
-msgstr "%s no actualitza el paquet instal·lat."
-
-#: ../yum/__init__.py:2504
-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"
-
-#: ../yum/__init__.py:2515
-#, 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:2522
-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:2570
-#, python-format
-msgid "Retrieving GPG key from %s"
-msgstr "S'està recuperant la clau GPG des de %s"
-
-#: ../yum/__init__.py:2576
-msgid "GPG key retrieval failed: "
-msgstr "La recuperació de la clau GPG ha fallat: "
-
-#: ../yum/__init__.py:2589
-msgid "GPG key parsing failed: "
-msgstr "L'Ã nalisi de la clau GPG ha fallat: "
-
-#: ../yum/__init__.py:2593
-#, 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:2598
-#, 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:2610
-msgid "Not installing key"
-msgstr "No s'està instal·lant la clau"
-
-#: ../yum/__init__.py:2616
-#, python-format
-msgid "Key import failed (code %d)"
-msgstr "L'importació de la clau ha fallat (codi %d)"
-
-#: ../yum/__init__.py:2619
-msgid "Key imported successfully"
-msgstr "La clau s'ha importat amb èxit"
-
-#: ../yum/__init__.py:2624
-#, 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 ""
-"Les claus GPG llistades pel repositori \"%s\" ja estan instal·lades però "
-"no són correctes per a aquest paquet.\n"
-"Comproveu que les URL de clau correctes estan configurades per a aquest repositori."
-
-#: ../yum/__init__.py:2633
-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:2707
-msgid "Unable to find a suitable mirror."
-msgstr "No s'ha pogut trobar un servidor rèplica và lid."
-
-#: ../yum/__init__.py:2709
-msgid "Errors were encountered while downloading packages."
-msgstr "S'han trobat errors descarregant paquets."
-
-#: ../yum/__init__.py:2774
-msgid "Test Transaction Errors: "
-msgstr "Errors en la transacció de prova: "
-
-#. Mostly copied from YumOutput._outKeyValFill()
-#: ../yum/plugins.py:195
-msgid "Loaded plugins: "
-msgstr "Connectors carregats: "
-
-#: ../yum/plugins.py:206
-#, python-format
-msgid "No plugin match for: %s"
-msgstr "No hi ha cap connector que coincideixi amb: %s"
-
-#: ../yum/plugins.py:219
-#, python-format
-msgid "\"%s\" plugin is disabled"
-msgstr "El connector \"%s\" està deshabilitat"
-
-#: ../yum/plugins.py:231
-#, 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:235
-#, 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:264
-#, python-format
-msgid "Loading \"%s\" plugin"
-msgstr "S'està carregant el connector \"%s\""
-
-#: ../yum/plugins.py:271
-#, 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"
-
-#: ../yum/plugins.py:291
-#, 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:294
-#, 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:448
-msgid "registration of commands not supported"
-msgstr "l'enregistrament d'ordres no està suportat"
-
-#: ../rpmUtils/oldUtils.py:26
-#, 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:46
-#, python-format
-msgid "RPM %s fails md5 check"
-msgstr "falla la comprobació md5 per al RPM %s"
-
-#: ../rpmUtils/oldUtils.py:144
-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?"
-
-#: ../rpmUtils/oldUtils.py:174
-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:244 ../rpmUtils/oldUtils.py:251
-#: ../rpmUtils/oldUtils.py:254 ../rpmUtils/oldUtils.py:257
-#, python-format
-msgid "Damaged Header %s"
-msgstr "Capçalera danyada %s"
-
-#: ../rpmUtils/oldUtils.py:272
-#, python-format
-msgid "Error opening rpm %s - error %s"
-msgstr "Error en obrir rpm %s - error %s"
-
commit 7247e4744cb34503a0be6f671cec8b37845c03c4
Author: James Antill <james at and.org>
Date: Fri Nov 21 12:03:42 2008 -0500
Revert "Added chinese translation by lijiansheng"
This reverts commit 388ea0b4b2a526955beab9ab6fa6004b1e4de2f7.
Trying to merge with yum-3_2_X
diff --git a/po/zh_CN.po b/po/zh_CN.po
deleted file mode 100644
index 3b30c2f..0000000
--- a/po/zh_CN.po
+++ /dev/null
@@ -1,1311 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: yum\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-03-20 10:00+0000\n"
-"PO-Revision-Date: 2008-07-24 19:43+0800\n"
-"Last-Translator: lijiansheng <lijiangsheng1 at gmail.com>\n"
-"Language-Team: zh_CN <lijiangsheng1 at gmail.com>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Poedit-Language: Chinese\n"
-"X-Poedit-Country: CHINA\n"
-
-msgid ""
-"\n"
-"\n"
-"Exiting on Broken Pipe"
-msgstr ""
-"\n"
-"\n"
-"管éæåèéåº"
-
-msgid ""
-"\n"
-"\n"
-"Exiting on user cancel"
-msgstr ""
-"\n"
-"\n"
-"ç¨æ·åæ¶èéåº"
-
-msgid ""
-"\n"
-"\n"
-"Exiting on user cancel."
-msgstr ""
-"\n"
-"\n"
-"ç¨æ·åæ¶èéåº"
-
-msgid ""
-"\n"
-"\n"
-"alias: "
-msgstr ""
-"\n"
-"\n"
-"å«å: "
-
-msgid ""
-"\n"
-"\n"
-"aliases: "
-msgstr ""
-"\n"
-"\n"
-"å¤éå«å: "
-
-msgid ""
-"\n"
-" Current download cancelled, %sinterrupt (ctrl-c) again%s within %s%s%s seconds to exit.\n"
-msgstr ""
-"\n"
-" å½åä¸è½½åæ¶, %s ä¸æ (ctrl-c) å次 %s å°å¨%s%s%s ç§å
éåº.\n"
-
-msgid ""
-"\n"
-"Dependencies Resolved"
-msgstr ""
-"\n"
-"ä¾èµæ§è§£å³"
-
-msgid ""
-"\n"
-"Group: %s"
-msgstr ""
-"\n"
-"ç»: %s"
-
-msgid ""
-"\n"
-"Packages skipped because of dependency problems:"
-msgstr ""
-"\n"
-"å 为ä¾èµæ§é®é¢è忽ç¥çå
:"
-
-msgid ""
-"\n"
-"Transaction Summary\n"
-"=============================================================================\n"
-"Install %5.5s Package(s) \n"
-"Update %5.5s Package(s) \n"
-"Remove %5.5s Package(s) \n"
-msgstr ""
-"\n"
-"å¤çä¿¡æ¯æè¦\n"
-"=============================================================================\n"
-"å®è£
%5.5s 个å
\n"
-"å级 %5.5s 个å
\n"
-"å é¤ %5.5s 个å
\n"
-
-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"
-"ä½ å·²ç»æ¿æ´»éè¿GPGå¯é¥éªè¯å
ï¼è¿æ¯ä¸ªå¥½ä¸è¥¿ã \n"
-"ç¶èï¼ä½ 没æå®è£
ä»»ä½çGPGå
¬é¥ï¼ä½ éè¦ä¸è½½ï¼\n"
-"å¦æä½ è¦å®è£
å
çå¯é¥\n"
-"ä½ å¯ä»¥æ§è¡ä¸é¢çå½ä»¤:\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"
-
-msgid ""
-" replacing %s.%s %s\n"
-"\n"
-msgstr ""
-" æ¿ä»£ä¸ %s.%s %s\n"
-"\n"
-
-msgid " %s from %s"
-msgstr " %s ä» %s"
-
-msgid " Unsatisfied dependency"
-msgstr " ä¸è½æ»¡æçä¾èµæ§"
-
-msgid " At least %dMB needed on the %s filesystem.\n"
-msgstr " è³å° éè¦%d MB ï¼ä½åç %s æ件系ç».\n"
-
-msgid " No dependencies for this package"
-msgstr "æ¤å
æ ä»»ä½çä¾èµ"
-
-msgid " dependency: %s"
-msgstr " ä¾èµ: %s"
-
-msgid " Conditional Packages:"
-msgstr " å
æ¡ä»¶:"
-
-msgid " Default Packages:"
-msgstr " é»è®¤çå
:"
-
-msgid " Description: %s"
-msgstr " æè¿°: %s"
-
-msgid " Mandatory Packages:"
-msgstr " æ管çå
æ¯:"
-
-msgid " Optional Packages:"
-msgstr " å
çå±æ§:"
-
-msgid "\"%s\" plugin is disabled"
-msgstr "\"%s\" æ¤æ件已被ç¦æ"
-
-msgid "%d %s files removed"
-msgstr "%d %s æ件已移é¤"
-
-msgid "%d Package(s) to Install"
-msgstr "%d 个å
å°å®è£
"
-
-msgid "%d Package(s) to remove"
-msgstr "%d 个å
å°å é¤"
-
-msgid "%d packages marked for Update"
-msgstr "%d 个å
å·²æ å¿ä¸ºå级"
-
-msgid "%d packages marked for removal"
-msgstr "%d 个å
å·²æ å¿ä¸ºå é¤"
-
-msgid "%s"
-msgstr "%s"
-
-msgid "%s already in ts, skipping this one"
-msgstr "%s å·²å¨å¤çä¸, 忽ç¥æ¤é¡¹"
-
-msgid "%s converted to install"
-msgstr "%s 已转æ¢çå°å®è£
"
-
-msgid "%s file %s removed"
-msgstr "%s æ件 %s 已移é¤"
-
-msgid "%s from %s has depsolving problems"
-msgstr "%s å·²ä»%s 解å³äºé®é¢"
-
-msgid "%s is in providing packages but it is already installed, removing."
-msgstr "%s å¨å设çå
ä¸ï¼ä½æ¯å·²ç»å®è£
ï¼å é¤ä¸...."
-
-msgid "%s removed"
-msgstr "%s å·²å é¤"
-
-msgid "%s requires: %s"
-msgstr "%s éè¦: %s"
-
-msgid "%s: does not update installed package."
-msgstr "%s: 没æå¯ä¾å级çå
."
-
-msgid "---> Downloading header for %s to pack into transaction set."
-msgstr "--->为 %sä¸è½½å¤´æ件以便äºè®¾ç½®å¤ç."
-
-msgid "---> Package %s.%s %s:%s-%s set to be %s"
-msgstr "---> å
%s.%s %s:%s-%s 设置为 %s "
-
-msgid "--> Finished Dependency Resolution"
-msgstr "--> å®æä¾èµæ§æ£æ¥"
-
-msgid "--> Populating transaction set with selected packages. Please wait."
-msgstr "--> æ£å¨å¤çå·²éæ©çå
ï¼è¯·ç¨åã"
-
-msgid "--> Processing Conflict: %s conflicts %s"
-msgstr "--> è¿ç¨å²çª: %s å²çªäº %s"
-
-msgid "--> Processing Dependency: %s for package: %s"
-msgstr "--> è¿ç¨ä¾èµ: %s ä¾èµäºå
: %s"
-
-msgid "--> Restarting Dependency Resolution with new changes."
-msgstr "--> 为æ°å
éæ°å¯å¨è§£å³ä¾èµé®é¢"
-
-msgid "--> Running transaction check"
-msgstr "-->è¿è¡å¤çæ£æ¥"
-
-msgid "--> Unresolved Dependency: %s"
-msgstr "--> 没æ解å³çä¾èµ: %s"
-
-msgid "Adding Package %s in mode %s"
-msgstr "æ·»å å
%s å¨ %s ç模å¼ä¸"
-
-msgid "Adding group file from repository: %s"
-msgstr "ä»ä»åº: %s ä¸æ·»å ç»æ件"
-
-msgid "Adding package %s from group %s"
-msgstr "æ·»å å
%s ä»ç» %s ä¸"
-
-msgid "Another app is currently holding the yum lock; waiting for it to exit..."
-msgstr "å¦å¤ä¸ä¸ªåºç¨ç¨åºæ£å¨éç¨yuméï¼çå¾
å
¶éåº ... ..."
-
-msgid "Apr"
-msgstr "Apr"
-
-msgid "Arch"
-msgstr "æ¶æ"
-
-msgid "Arch : %s"
-msgstr "æ¶æ : %s"
-
-msgid "Aug"
-msgstr "Aug"
-
-msgid "Available Groups:"
-msgstr "ææçç»:"
-
-msgid "Available Packages"
-msgstr "å·²ç»æä¾çå
"
-
-msgid "Building updates object"
-msgstr "建ç«å级对象"
-
-msgid "Cannot find an update path for dep for: %s"
-msgstr "Cannot find an update path for dep for: %s"
-
-msgid "Cannot open file: %s. Skipping."
-msgstr "ä¸è½æå¼æ件: %s. è·³è¿."
-
-msgid "Cannot remove %s"
-msgstr "æ æ³å é¤ %s "
-
-msgid "Cannot remove %s file %s"
-msgstr "æ æ³å é¤ %s æ件 %s"
-
-msgid "Check for available package updates"
-msgstr "æ£æ¥å¯æä¾çå
å级"
-
-msgid "Checking deps for %s"
-msgstr "为 %s æ£æ¥ä¾èµæ§"
-
-msgid "Checking for virtual provide or file-provide for %s"
-msgstr "Checking for virtual provide or file-provide for %s"
-
-msgid "Cleaning up Everything"
-msgstr "æ¸
çä¸å"
-
-msgid "Cleaning up Headers"
-msgstr "Räume Header auf"
-
-msgid "Cleaning up Packages"
-msgstr "æ¸
çå
"
-
-msgid "Cleaning up database cache"
-msgstr "æ¸
çæ°æ®åºç¼å"
-
-msgid "Cleaning up plugins"
-msgstr "æ¸
çæ件"
-
-msgid "Cleaning up xml metadata"
-msgstr "æ¸
çXMLå
æ°æ®"
-
-msgid "Cleanup"
-msgstr "æ¸
ç"
-
-msgid "Command \"%s\" already defined"
-msgstr "å½ä»¤ \"%s\" æ©å·²ç»è¢«å®ä¹"
-
-msgid "Command line error: %s"
-msgstr "å½ä»¤è¡é误: %s"
-
-msgid "Committer : %s"
-msgstr "Ãbermittler : %s"
-
-msgid "Comparing best: %s to po: %s"
-msgstr "Vergleiche besseres: %s zu po: %s"
-
-msgid "Complete!"
-msgstr "æåä½ !æåå®æï¼"
-
-msgid "Config Error: %s"
-msgstr "é
ç½®é误: %s"
-
-msgid "Configuration file %s not found"
-msgstr "é
ç½®æ件 %s ä¸è½è¢«æ¾å°"
-
-msgid "Could not find update match for %s"
-msgstr "ä¸è½æ¾å°å %s å¹é
çå级"
-
-msgid "Could not open RPM database for reading. Perhaps it is already in use?"
-msgstr "ä¸è½ä»¥è¯»çæ¹å¼æå¼RPMæ°æ®åºï¼æ许æ¯å®å·²ç»å¨è¢«ç¨?"
-
-msgid "Could not perform checksum"
-msgstr "æ æ³æ§è¡æ ¡éªå"
-
-msgid "Damaged Header %s"
-msgstr "æåç头æ件 %s"
-
-msgid "Dec"
-msgstr "Dec"
-
-msgid "Dependency Installed"
-msgstr "ä¾èµå®è£
"
-
-msgid "Dependency Process ending"
-msgstr "ä¾èµè¿ç¨å®æä¸"
-
-msgid "Dependency Removed"
-msgstr "ä¾èµå é¤"
-
-msgid "Dependency Updated"
-msgstr "ä¾èµå级"
-
-msgid "Description: "
-msgstr "å级:"
-
-msgid "Determine which package provides the given dependency"
-msgstr "å³å®åªä¸ªå
æä¾äºç»å®çä¾èµ"
-
-msgid "Discarding non-comparable pkg %s.%s"
-msgstr " 丢å¼æ 对ç
§çå
%s.%s"
-
-msgid "Disk Requirements:\n"
-msgstr "ç£çè¦æ±:\n"
-
-msgid "Display a helpful usage message"
-msgstr "æ¾ç¤ºå¸®å©ç¨æ³ä¿¡æ¯"
-
-msgid "Display details about a package group"
-msgstr "æ¾ç¤ºå
³äºå
ç»çç»è"
-
-msgid "Display details about a package or group of packages"
-msgstr "æ¾ç¤ºå
³äºå
æä¸ç»å
çç»èä¿¡æ¯"
-
-msgid "Display the configured software repositories"
-msgstr "æ¾ç¤ºè½¯ä»¶ä»åºçé
ç½®"
-
-msgid "Done"
-msgstr "å®æ"
-
-msgid "Downloading Packages:"
-msgstr "ä¸è½½è½¯ä»¶å
:"
-
-msgid "ERROR with rpm_check_debug vs depsolve:"
-msgstr "é误 rpm_check_debug å depsolve:"
-
-msgid "Epoch : %s"
-msgstr "Epoch : %s"
-
-msgid "Erased"
-msgstr "å·²å é¤"
-
-msgid "Erased: %s"
-msgstr "å·²å é¤: %s"
-
-msgid "Erasing"
-msgstr "æ£å¨å é¤"
-
-msgid "Error Downloading Packages:\n"
-msgstr "ä¸è½½å
é误:\n"
-
-msgid ""
-"Error Summary\n"
-"-------------\n"
-msgstr ""
-"é误çè¯æ³\n"
-"-------------\n"
-
-msgid "Error opening rpm %s - error %s"
-msgstr "æå¼ RPM %s é误 - é误 %s"
-
-msgid "Error: %s"
-msgstr "é误: %s"
-
-msgid "Error: Need a group or list of groups"
-msgstr "é误ï¼éè¦ç»æç»çå表"
-
-msgid "Error: Need an item to match"
-msgstr "é误ï¼éè¦ç»å¾®çå¹é
"
-
-msgid "Error: Need to pass a list of pkgs to %s"
-msgstr "é误: éè¦ä¼ è¾å¨å表çå
å°%s"
-
-msgid "Error: clean requires an option: %s"
-msgstr "Error: clean requires an option: %s"
-
-msgid "Error: invalid clean argument: %r"
-msgstr "Error: invalid clean argument: %r"
-
-msgid "Error: invalid output state: %s for %s"
-msgstr "Error: invalid output state: %s for %s"
-
-msgid "Error: more than one file given as argument to shell."
-msgstr "Error: more than one file given as argument to shell."
-
-msgid "Errors were encountered while downloading packages."
-msgstr "Errors were encountered while downloading packages."
-
-msgid "Examining %s: %s"
-msgstr " è¯æ %s: %s"
-
-msgid "Excluding %s"
-msgstr "ä¸å
æ¬ %s"
-
-msgid "Excluding Packages from %s"
-msgstr "å¨ %s ä¸æé¤çå
"
-
-msgid "Excluding Packages in global exclude list"
-msgstr "ä¸å
éå
å¨å
¨å±çæé¤çå表ä¸"
-
-msgid "Existing lock %s: another copy is running as pid %s."
-msgstr "éå·²è¢«ç¨ %s: å¦å¤çä¸ä¸ªå¤å¶æ£å¨è¿è¡å¨ PID为 %s."
-
-msgid "Exiting on user Command"
-msgstr "å¨ç¨æ·çå½ä»¤ä¸éåº"
-
-msgid "Extra Packages"
-msgstr "æ©å±çå
"
-
-msgid "Failed to add groups file for repository: %s - %s"
-msgstr "为ä»åºæ·»å ç»å¤±è´¥: %s - %s"
-
-msgid "Failed to remove transaction file %s"
-msgstr "移é¤å¤çæ件%s 失败"
-
-msgid "Failure finding best provider of %s for %s, exceeded maximum loop length"
-msgstr "Failure finding best provider of %s for %s, exceeded maximum loop length"
-
-msgid "Feb"
-msgstr "äºæ"
-
-msgid "File %s given as argument to shell does not exist."
-msgstr "File %s given as argument to shell does not exist."
-
-msgid "Filename passed to shell: %s"
-msgstr "Filename passed to shell: %s"
-
-msgid "Find what package provides the given value"
-msgstr "Find what package provides the given value"
-
-msgid "Finding dependencies: "
-msgstr "æ¾å°ä¾èµ:"
-
-msgid "Finished"
-msgstr "å®æ"
-
-msgid "Finished Transaction Test"
-msgstr "ä¼ è¾æµè¯å®æ"
-
-msgid "GPG key at %s (0x%s) is already installed"
-msgstr "GPGå¯é¥å¨ %s (0x%s) å·²ç»å®è£
"
-
-msgid "GPG key parsing failed: "
-msgstr "åæGPGå¯é¥å¤±è´¥: "
-
-msgid "GPG key retrieval failed: "
-msgstr "GPGå¯é¥ä¿®å¤å¤±è´¥:"
-
-msgid "Generate the metadata cache"
-msgstr "çæåæ°æ®ç¼å"
-
-msgid "Getting group metadata"
-msgstr "è·å¾ç»å
æ°æ®"
-
-msgid "Got an empty Header, something has gone wrong"
-msgstr "å¾å°ç©ºç头æ件ï¼æé误åç"
-
-msgid "Header cannot be opened or does not match %s, %s."
-msgstr "Header ä¸è½æå¼æ对 %s, %sä¸å¹é
."
-
-msgid "Header is not complete."
-msgstr "Header ä¸æ¯å®æ´ç."
-
-msgid "Header not in local cache and caching-only mode enabled. Cannot download %s"
-msgstr "Header并ä¸å¨æ¬å°ç¼åèä¸caching-only 模å¼è¢«æ¿æ´»ãä¸è½ä¸è½½ %s"
-
-msgid "Import of key(s) didn't help, wrong key(s)?"
-msgstr "导å
¥å¯é¥æ¶æ²¡ææ±å©ï¼é误çå¯é¥?"
-
-msgid "Importing GPG key 0x%s \"%s\" from %s"
-msgstr "导å
¥GPGå¯é¥ 0x%s \"%s\" ,æ¥èª %s"
-
-msgid "Importing additional filelist information"
-msgstr "æ£å¨å¯¼å
¥é¢å¤çæ件å表信æ¯"
-
-msgid "Install a local RPM"
-msgstr "å®è£
æ¬å° RPM"
-
-msgid "Install a package or packages on your system"
-msgstr "å®è£
ä¸ä¸ªæå¤ä¸ªè½¯ä»¶å
å¨ä½ çç³»ç»"
-
-msgid "Install the packages in a group on your system"
-msgstr "ä»ç»éå®è£
软件å
å°ä½ çç³»ç»"
-
-msgid "Installed"
-msgstr "å·²å®è£
"
-
-msgid "Installed Groups:"
-msgstr "å·²å®è£
ç»:"
-
-msgid "Installed Packages"
-msgstr "å·²ç»å®è£
çå
"
-
-msgid "Installing"
-msgstr "æ£å¨å®è£
"
-
-msgid "Installing for dependencies"
-msgstr "为ä¾èµèå®è£
"
-
-msgid "Insufficient space in download directory %s to download"
-msgstr "ç®å½ %s没æ足å¤ç空é´ä¸è½½æ件"
-
-msgid "Invalid tsflag in config file: %s"
-msgstr "é
ç½®æ件: %sä¸çtsflagæ¯æ æç"
-
-msgid "Invalid version flag"
-msgstr "æ æççæ¬æ å¿"
-
-msgid "Invalid versioned dependency string, try quoting it."
-msgstr "æ æçä¾èµå符串ï¼å°è¯éæ°å¼ç¨."
-
-msgid "Is this ok [y/N]: "
-msgstr "ç¡®å®æ¯è¿æ ·å? [y/N]: "
-
-msgid "Jan"
-msgstr "ä¸æ"
-
-msgid "Jul"
-msgstr "Jul"
-
-msgid "Jun"
-msgstr "Jun"
-
-msgid "Keeping included package %s"
-msgstr "ä¿æå·²å
å«çå
%s"
-
-msgid "Key import failed (code %d)"
-msgstr "导å
¥å¯é¥å¤±è´¥ (ä»£å· %d)"
-
-msgid "Key imported successfully"
-msgstr "导å
¥å¯é¥æå"
-
-msgid "License : %s"
-msgstr "许å¯è¯ : %s"
-
-msgid "List a package or groups of packages"
-msgstr "ååºä¸ä¸ªå
ææç»çå
"
-
-msgid "List a package's dependencies"
-msgstr "ååºå
ä¾èµç¸å
³"
-
-msgid "List available package groups"
-msgstr "ååºå½åçç»"
-
-msgid "Loaded plugins: "
-msgstr "è½½å
¥æ件: "
-
-msgid "Loading \"%s\" plugin"
-msgstr "è½½å
¥ \"%s\" æ件"
-
-msgid "Making cache files for all metadata files."
-msgstr "å°ææçå
æ°æ®æ件çæç¼åæ件."
-
-msgid "Mar"
-msgstr "Mar"
-
-msgid "Marking %s as an update to %s"
-msgstr "æ å¿ %s å°è¢«æ´æ°ä¸º %s"
-
-msgid "Marking %s to be installed"
-msgstr "æ å¿ %s å°è¢«å®è£
"
-
-msgid "Matched %s to require for %s"
-msgstr "æ å¿%s è¦æ± %s"
-
-msgid "Matched from:"
-msgstr "å¹é
æ¥èªäº:"
-
-msgid "Matching packages for package list to user args"
-msgstr "ä»ç¨æ·çå
å表ä¸å¹é
å
"
-
-msgid "May"
-msgstr "Mai"
-
-msgid "Member: %s"
-msgstr "æå: %s"
-
-msgid "Metadata Cache Created"
-msgstr "åæ°æ®ç¼å已建ç«"
-
-msgid "Missing Dependency: %s is needed by package %s"
-msgstr "丢失çä¾èµç¸å
³: %s 被å
%s æéè¦"
-
-msgid "Mode for pkg providing %s: %s"
-msgstr "Mode for pkg providing %s: %s"
-
-msgid "Mode is %s for provider of %s: %s"
-msgstr "Mode is %s for provider of %s: %s"
-
-msgid "More than one identical match in sack for %s"
-msgstr "More than one identical match in sack for %s"
-
-msgid "Name : %s"
-msgstr "å称 : %s"
-
-msgid "Needed Require has already been looked up, cheating"
-msgstr "Needed Require has already been looked up, cheating"
-
-msgid "Needed Require is not a package name. Looking up: %s"
-msgstr "Needed Require is not a package name. Looking up: %s"
-
-msgid "No Group named %s exists"
-msgstr "没æåç°ç» %s "
-
-msgid "No Groups Available in any repository"
-msgstr "å¨ç°æçä»åºä¸æ²¡æç»å¯è¢«æä¾"
-
-msgid "No Groups on which to run command"
-msgstr "没æç»å¯ä»¥è¿è¡çå½ä»¤"
-
-msgid "No Match for argument: %s"
-msgstr "没æå¹é
çåæ°: %s"
-
-msgid "No Matches found"
-msgstr "没æå¹é
åç°"
-
-msgid "No Package Found for %s"
-msgstr "没æåç°å
%s"
-
-msgid "No Package found for %s"
-msgstr "没æåç°å
%s"
-
-msgid "No Packages Provided"
-msgstr "没æå¯æä¾çå
"
-
-msgid "No Packages marked for Update"
-msgstr "没æå
æ å¿ä¸ºå级"
-
-msgid "No Packages marked for removal"
-msgstr "没æå
æ å¿ä¸ºå é¤"
-
-msgid "No argument to shell"
-msgstr "没æåæ°æä¾ç»shell"
-
-msgid "No group named %s exists"
-msgstr "没æç»å为 %s "
-
-msgid "No header - huh?"
-msgstr "没æ头æ件--ï¼ï¼?"
-
-msgid "No help available for %s"
-msgstr "没æå
³äº %s ç帮å©"
-
-msgid "No matching Packages to list"
-msgstr "å表ä¸æ²¡æå¹é
çå
"
-
-msgid "No other %s installed, adding to list for potential install"
-msgstr "No other %s installed, adding to list for æ½å¨çinstall"
-
-msgid "No package %s available."
-msgstr "å
%s ä¸å¯æä¾."
-
-msgid "No package matched to remove"
-msgstr "没æå¹é
çå
å é¤"
-
-msgid "No package named %s available to be installed"
-msgstr "没æå称为 %s å
å¯ä¾å®è£
"
-
-msgid "No package(s) available to install"
-msgstr "没æå
å¯ä¾å®è£
."
-
-msgid "No packages in any requested group available to install or update"
-msgstr "没æå
å¨æè¦æ±çç»ä¸å¯æä¾å®è£
æå级"
-
-msgid "No packages to remove from groups"
-msgstr "No packages to remove from groups"
-
-msgid "No plugin match for: %s"
-msgstr "没ææ件å¯å¹é
: %s"
-
-msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
-msgstr "ä¸å¯æ´æ°æ©å·²è¢«åºå¼çå
: %s.%s %s:%s-%s"
-
-msgid "Not installing key"
-msgstr "没æå®è£
å¯é¥"
-
-msgid "Nothing matches %s.%s %s:%s-%s from update"
-msgstr "æ æ³å¹é
%s.%s %s:%s-%s ä»æ´æ°ä¸"
-
-msgid "Nothing specified to install"
-msgstr "没ææå®å®è£
"
-
-msgid "Nothing to do"
-msgstr "æ äºå¯å"
-
-msgid "Nov"
-msgstr "Nov"
-
-msgid "Obsoleted"
-msgstr "å·²åºå¼"
-
-msgid "Obsoleting Packages"
-msgstr "åºå¼ä¸çå
"
-
-msgid "Oct"
-msgstr "åæ"
-
-msgid "Options Error: %s"
-msgstr "å±æ§é误: %s"
-
-msgid "PACKAGE..."
-msgstr "å
..."
-
-msgid "Package"
-msgstr "å
"
-
-msgid "Package %s already installed and latest version"
-msgstr "å
%s å·²å®è£
并ä¸æ¯ææ°çæ¬"
-
-msgid "Package %s is allowed multiple installs, skipping"
-msgstr "å
%s 被å
许å¤æ¹å¼å®è£
ï¼å¿½ç¥"
-
-msgid "Package %s is already installed, skipping"
-msgstr "å
%s æ©å·²å®è£
ï¼å¿½ç¥"
-
-msgid "Package %s is not signed"
-msgstr "å
%s æ ç¾å认è¯"
-
-msgid "Package %s not installed, cannot update it. Run yum install to install it instead."
-msgstr "å
%s 没æå®è£
, ä¸è½å®è£
ã请éç¨yum install å®è£
å®ã"
-
-msgid "Package Object was not a package object instance"
-msgstr "Package Object was not a package object instance"
-
-msgid "Package does not match checksum"
-msgstr "å
ä¸å¹é
æ ¡éªç»æ"
-
-msgid "Package does not match intended download"
-msgstr "Package does not match intended download."
-
-msgid "Package is already obsoleted: %s.%s %s:%s-%s"
-msgstr "å
å·²ç»åºå¼: %s.%s %s:%s-%s"
-
-msgid "Package matching %s already installed. Checking for update."
-msgstr "å¹é
å
%s å·²ç»å®è£
. æ£æ¥æ´æ°."
-
-msgid "Package tuple %s could not be found in packagesack"
-msgstr "å
å
ç» %s ä¸è½å¨packagesackä¸åç°"
-
-msgid "Package(s) to install"
-msgstr "å
å°å®è£
"
-
-msgid "Package: %s - already in transaction set"
-msgstr "å®è£
å
: %s - äºå¡å¤ç已设置"
-
-msgid "Parsing package install arguments"
-msgstr "åæå®è£
åæ°çè¯æ³"
-
-msgid "Please report this error in bugzilla"
-msgstr "请æ¥åè¿ä¸ªéè¯¯ç» Bugzilla"
-
-msgid "Plugin \"%s\" doesn't specify required API version"
-msgstr "Plugin \"%s\" 没ææå®å¿
è¦çAPIçæ¬"
-
-msgid "Plugin \"%s\" requires API %s. Supported API is %s."
-msgstr "Plugin \"%s\" éè¦ API %s. æ¯æç API 为 %s."
-
-msgid "Potential Provider: %s"
-msgstr " æ½å¨çæä¾è
: %s"
-
-msgid "Potential match for %s from %s"
-msgstr "Potential match for %s from %s"
-
-msgid "Potential resolving package %s has newer instance in ts."
-msgstr "Potential resolving package %s has newer instance in ts."
-
-msgid "Potential resolving package %s has newer instance installed."
-msgstr "Potential resolving package %s has newer instance installed."
-
-msgid "Problem in reinstall: no package matched to install"
-msgstr "Problem in reinstall: no package matched to install"
-
-msgid "Problem in reinstall: no package matched to remove"
-msgstr "Problem in reinstall: no package matched to remove"
-
-msgid "Problem opening package %s"
-msgstr "æå¼å
%s åºç°é®é¢"
-
-msgid "Provides-match: %s"
-msgstr "Provides-match: %s"
-
-msgid "Public key for %s is not installed"
-msgstr "ç» %s çå
¬é¥æ²¡æå®è£
"
-
-msgid "Public key for %s is not trusted"
-msgstr "ç» %s çå
¬é¥ä¸å¯ä¿¡ä»»"
-
-msgid "RPM %s fails md5 check"
-msgstr "RPM %s md5ç æ ¡éªå¤±è´¥"
-
-msgid "Reading Local RPMDB"
-msgstr "读å
¥æ¬å°RPMDB"
-
-msgid "Reading repository metadata in from local files"
-msgstr "ä»æ¬å°æ件读å
¥ä»åºå
æ°æ®"
-
-msgid "Recently Added Packages"
-msgstr "è¿ææ·»å çå
"
-
-msgid "Reducing %s to included packages only"
-msgstr "åå° %s æä»
å
å«çå
"
-
-msgid ""
-"Refusing to automatically import keys when running unattended.\n"
-"Use \"-y\" to override."
-msgstr ""
-"å½è¿è¡unattendedæ¶æç»èªå¨å¯¼å
¥å¯é¥.\n"
-"ç¨ \"-y\" æ¥è¦ç"
-
-msgid "Release : %s"
-msgstr "åè¡ : %s"
-
-msgid "Remove a package or packages from your system"
-msgstr "移é¤ä¸ä¸ªæå¤ä¸ªå
ä»ä½ çç³»ç»"
-
-msgid "Remove cached data"
-msgstr "å é¤ç¼åæ°æ®"
-
-msgid "Remove the packages in a group from your system"
-msgstr "å¨ä¸ä¸ªç»ä¸ç§»é¤å
ä»æ¨çç³»ç»"
-
-msgid "Removed"
-msgstr "å·²å é¤"
-
-msgid "Removing"
-msgstr "æ£å¨å é¤"
-
-msgid "Removing Package %s"
-msgstr "æ£å¨å é¤å
%s"
-
-msgid "Removing for dependencies"
-msgstr "为ä¾èµç§»é¤"
-
-msgid "Removing unmatched package %s"
-msgstr "移é¤ä¸å¹é
çå
ï¼ %s"
-
-msgid "Repackage"
-msgstr "éæ°æå
"
-
-msgid "Replaced"
-msgstr "æ¿ä»£"
-
-msgid "Repo : %s"
-msgstr "Repo : %s"
-
-msgid "Repository"
-msgstr "ä»åº"
-
-msgid "Repository %r is missing name in configuration, using id"
-msgstr "ä»åº %r 丢失äºååå¨é
ç½®æ件ä¸ï¼ç¨id代æ¿"
-
-msgid "Resolving Dependencies"
-msgstr "解å³ä¾èµç¸å
³"
-
-msgid "Restarting Loop"
-msgstr "éæ°å¯å¨ç¯å"
-
-msgid "Retrieving GPG key from %s"
-msgstr "ä» %s ä¸æ¢å¤GPGå¯é¥"
-
-msgid "Run an interactive yum shell"
-msgstr "è¿è¡äº¤äºå¼çyum shell"
-
-msgid "Running Transaction"
-msgstr "è¿è¡äºå¡å¤ç"
-
-msgid "Running Transaction Test"
-msgstr "è¿è¡æµè¯äºå¡å¤ç"
-
-msgid "Running rpm_check_debug"
-msgstr "è¿è¡ rpm_check_debug "
-
-msgid "Same: best %s == po: %s"
-msgstr "Same: best %s == po: %s"
-
-msgid "Search package details for the given string"
-msgstr "æ¥æ¾å
ç»èå±
ç»å®çå符串"
-
-msgid "Searching %d packages"
-msgstr "æ¥è¯¢ %d 个å
"
-
-msgid "Searching Packages for Dependency:"
-msgstr "为ä¾èµç¸å
³æ¥æ¾å
:"
-
-msgid "Searching Packages: "
-msgstr "æ¥è¯¢å
:"
-
-msgid "Searching pkgSack for dep: %s"
-msgstr "æ¥æ¾pkgSack 为ä¾èµ: %s"
-
-msgid "Sep"
-msgstr "Sep"
-
-msgid "Setting up Group Process"
-msgstr "设置ç»è¿ç¨"
-
-msgid "Setting up Install Process"
-msgstr "设置å®è£
è¿ç¨"
-
-msgid "Setting up Local Package Process"
-msgstr "设置æ¬å°å
è¿ç¨"
-
-msgid "Setting up Package Sacks"
-msgstr "设置å
麻è¢"
-
-msgid "Setting up Reinstall Process"
-msgstr "设置éæ°å®è£
è¿ç¨"
-
-msgid "Setting up Remove Process"
-msgstr "设置å é¤è¿ç¨"
-
-msgid "Setting up TransactionSets before config class is up"
-msgstr "å¨configç±»å¯ç¨ä¹å设置äºå¡å¤ç"
-
-msgid "Setting up Update Process"
-msgstr "设置æ´æ°è¿ç¨"
-
-msgid "Setting up Upgrade Process"
-msgstr "设置å级è¿ç¨"
-
-msgid "Setting up Yum Shell"
-msgstr "设置Yum-Shell yum交äºå¼ç¯å¢"
-
-msgid "Setting up repositories"
-msgstr "设置ä»åº"
-
-msgid "Size"
-msgstr "大å°"
-
-msgid "Size : %s"
-msgstr "å¤§å° : %s"
-
-msgid "Skip-broken round %i"
-msgstr "Skip-broken round %i"
-
-msgid "Skip-broken took %i rounds "
-msgstr "Skip-broken took %i rounds"
-
-msgid "Success - deps resolved"
-msgstr "æå --ä¾èµæ§è§£å³"
-
-msgid "Success - empty transaction"
-msgstr "æå --空çäºå¡å¤ç"
-
-msgid "Summary : "
-msgstr "è¯æ³ : "
-
-msgid "TSINFO: %s package requiring %s marked as erase"
-msgstr "TSINFO: %s package requiring %s marked as erase"
-
-msgid "TSINFO: Marking %s as install for %s"
-msgstr "TSINFO: Marking %s as install for %s"
-
-msgid "TSINFO: Marking %s as update for %s"
-msgstr "TSINFO: Marking %s as update for %s"
-
-msgid "TSINFO: Obsoleting %s with %s to resolve dep."
-msgstr "TSINFO: Obsoleting %s with %s to resolve dep."
-
-msgid "TSINFO: Updating %s to resolve dep."
-msgstr "TSINFO: Updating %s to resolve dep."
-
-msgid "Test Transaction Errors: "
-msgstr "æµè¯äºå¡å¤çé误"
-
-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 ""
-"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."
-
-msgid "There was an error calculating total download size"
-msgstr "There was an error calculating total download size"
-
-msgid "This may take a while depending on the speed of this computer"
-msgstr "è¿ä¼å ç¨ä¸æ®µæ¶é´ï¼å
·ä½å°åå³äºè¿å°è®¡ç®æºçé度"
-
-msgid "Total download size: %s"
-msgstr "æ»å
±ä¸è½½å¤§å°: %s"
-
-msgid "Total size: %s"
-msgstr "æ»å¤§å°: %s"
-
-msgid "Transaction Check Error:\n"
-msgstr "å¤çæ£æ¥é误:\n"
-
-msgid "Transaction Test Succeeded"
-msgstr "äºå¡å¤çæµè¯æå"
-
-msgid "Trying other mirror."
-msgstr "å°è¯å
¶ä»éå."
-
-msgid "Trying to run the transaction but nothing to do. Exiting."
-msgstr "å°è¯è¿è¡äºå¡å¤çä½æ¯ä»ä¹ä¹åä¸æï¼éåº."
-
-msgid "Two or more plugins with the name \"%s\" exist in the plugin search path"
-msgstr "Two or more plugins with the name \"%s\" exist in the plugin search path"
-
-msgid "URL : %s"
-msgstr "ç»ä¸èµæºå®ä½ç¬¦ : %s"
-
-msgid "Unable to check if PID %s is active"
-msgstr "ä¸è½æ£æ¥å°PID %sæ¯å¦æ¿æ´»"
-
-msgid "Unable to find a suitable mirror."
-msgstr "ä¸è½åç°åéçéå."
-
-msgid "Unable to find configuration file for plugin %s"
-msgstr "ä¸è½æ¾å°æ件 %s çé
ç½®æ件 "
-
-msgid "Unknown Error(s): Exit Code: %d:"
-msgstr "è«åçé误: éåºä»£ç ä¸ºï¼ %d:"
-
-msgid "Unresolvable requirement %s for %s"
-msgstr "没æ解å³çéæ± %s 为 %s"
-
-msgid "Update a package or packages on your system"
-msgstr "æ´æ°ä¸ä¸ªæå¤ä¸ªå
å¨ä½ çç³»ç»"
-
-msgid "Update packages taking obsoletes into account"
-msgstr "Update packages taking obsoletes into account"
-
-msgid "Updated"
-msgstr "æ´æ°å®æ¯"
-
-msgid "Updated Packages"
-msgstr "æ´æ°è¿çå
"
-
-msgid "Updating"
-msgstr "æ£å¨å级"
-
-msgid "Updating Everything"
-msgstr "å
¨é¨å级"
-
-msgid "Updating for dependencies"
-msgstr "æ´æ°ä¾èµæ§"
-
-msgid "Version"
-msgstr "çæ¬"
-
-msgid "Version : %s"
-msgstr "çæ¬ : %s"
-
-msgid "Warning: Group %s does not exist."
-msgstr "æ示: ç» %s ä¸åå¨."
-
-msgid "Warning: No matches found for: %s"
-msgstr "æ示 : 没æåç°å: %s å¹é
"
-
-msgid "You need to be root to perform this command."
-msgstr "ä½ éè¦root身份æ§è¡æ¤å½ä»¤."
-
-msgid "You need to give some command"
-msgstr "ä½ éè¦ç»åºå½ä»¤"
-
-msgid "[PACKAGE...]"
-msgstr "[å
...]"
-
-msgid "answer yes for all questions"
-msgstr "åçææçé®é¢ä¸ºæ¯"
-
-msgid "be tolerant of errors"
-msgstr "be tolerant of errors"
-
-msgid "best %s obsoletes po: %s"
-msgstr "best %s obsoletes po: %s"
-
-msgid "best %s shares a sourcerpm with %s"
-msgstr "best %s shares a sourcerpm with %s"
-
-msgid "bestpkg %s shares more of the name prefix with %s"
-msgstr "bestpkg %s shares more of the name prefix with %s"
-
-msgid "better arch in po %s"
-msgstr "better arch in po %s"
-
-msgid "config file location"
-msgstr "config file location"
-
-msgid "debugging output level"
-msgstr "è°è¯è¾åºçº§å«"
-
-msgid "disable Yum plugins"
-msgstr "ç¦æyumæ件"
-
-msgid "disable exclude from main, for a repo or for everything"
-msgstr "disable exclude from main, for a repo or for everything"
-
-msgid "disable gpg signature checking"
-msgstr "ç¦æGPGéªè¯æ£æ¥"
-
-msgid "disable one or more repositories (wildcards allowed)"
-msgstr "ç¦æä¸ä¸ªæå¤ä¸ªä»åºï¼æ¯æéé
符ï¼"
-
-msgid "disable plugins by name"
-msgstr "ç¨å称ç¦ææ件"
-
-msgid "disabled"
-msgstr "ç¦æ"
-
-msgid "doConfigSetup() will go away in a future version of Yum.\n"
-msgstr "doConfigSetup() å°å¨æªæ¥çYUMçæ¬ä¸æ¶å¤±.\n"
-
-msgid "doGroupSetup() will go away in a future version of Yum.\n"
-msgstr "doGroupSetup()å°å¨æªæ¥çYUMçæ¬ä¸æ¶å¤±.\n"
-
-msgid "doRepoSetup() will go away in a future version of Yum.\n"
-msgstr "doRepoSetup() å°å¨æªæ¥çYUMçæ¬ä¸æ¶å¤±.\n"
-
-msgid "doRpmDBSetup() will go away in a future version of Yum.\n"
-msgstr "doRpmDBSetup() å°å¨æªæ¥çYUMçæ¬ä¸æ¶å¤±.\n"
-
-msgid "doSackSetup() will go away in a future version of Yum.\n"
-msgstr "doSackSetup() å°å¨æªæ¥çYUMçæ¬ä¸æ¶å¤±.\n"
-
-msgid "doTsSetup() will go away in a future version of Yum.\n"
-msgstr "doTsSetup() å°å¨æªæ¥çYUMçæ¬ä¸æ¶å¤±.\n"
-
-msgid "doUpdateSetup() will go away in a future version of Yum.\n"
-msgstr "doUpdateSetup() wird verschwinden in zukünfigen Version von Yum.\n"
-
-msgid "enable obsoletes processing during updates"
-msgstr "enable obsoletes processing during updates"
-
-msgid "enable one or more repositories (wildcards allowed)"
-msgstr "æ¿æ´»ä¸ä¸ªæå¤ä¸ªä»åºï¼æ¯æéé
符ï¼"
-
-msgid "enabled"
-msgstr "æ¿æ´»"
-
-msgid "erased"
-msgstr "å é¤"
-
-msgid "error output level"
-msgstr "é误è¾åºçº§å«"
-
-msgid "exclude package(s) by name or glob"
-msgstr "å¨å称æglobä¸å
å«å
ã"
-
-msgid "excluding for cost: %s from %s"
-msgstr "excluding for cost: %s from %s"
-
-msgid "installed"
-msgstr "å·²å®è£
"
-
-msgid "looking for %s as a requirement of %s"
-msgstr "æ¥æ¾ %s å¨è¦æ±ç %s ä¸"
-
-msgid "maximum command wait time"
-msgstr "æ大åçå½ä»¤çå¾
æ¶é´"
-
-msgid "n"
-msgstr "n"
-
-msgid "no"
-msgstr "å¦"
-
-msgid "obsoleted"
-msgstr "å·²åºå¼"
-
-msgid "package %s was not marked in group %s"
-msgstr "å
%s å¨ç» %sä¸æ²¡æ被æ å¿"
-
-msgid "package fails checksum but caching is enabled for %s"
-msgstr "å
æ ¡éªå¤±è´¥ä½æ¯ç¼å已为 %sæ¿æ´»"
-
-msgid "package: %s"
-msgstr "å
: %s"
-
-msgid "plugins already initialised"
-msgstr "æ件已ç»initialised"
-
-msgid "po %s has a shorter name than best %s"
-msgstr "po %s has a shorter name than best %s"
-
-msgid "po %s obsoletes best: %s"
-msgstr "po %s obsoletes best: %s"
-
-msgid "po %s shares a sourcerpm with %s"
-msgstr "po %s shares a sourcerpm with %s"
-
-msgid "po %s shares more of the name prefix with %s"
-msgstr "po %s shares more of the name prefix with %s"
-
-msgid "quiet operation"
-msgstr "å®éçæä½"
-
-msgid "registration of commands not supported"
-msgstr "注åå½ä»¤ä¸æ¯æ"
-
-msgid "reinstall a package"
-msgstr "éæ°å®è£
ä¸ä¸ªå
"
-
-msgid "repo id"
-msgstr "Repo-å·"
-
-msgid "repo name"
-msgstr "Repo-å称:"
-
-msgid "repo object for repo %s lacks a _resetSack method\n"
-msgstr "repo对象for repo %s ç¼ºå° a _resetSack æ¹æ³\n"
-
-msgid "run entirely from cache, don't update cache"
-msgstr "ä»ç¼å²ä¸è¿è¡ï¼èä¸æ¯å级ç¼å"
-
-msgid "searchPackages() will go away in a future version of Yum. Use searchGenerator() instead. \n"
-msgstr "searchPackages() å°å¨YUMæªæ¥ççæ¬ä¸æ¶å¤±. ç¨ searchGenerator()æ¿ä»£. \n"
-
-msgid "searching in file entries"
-msgstr "searching in file entries"
-
-msgid "searching in provides entries"
-msgstr "å¨å¯æä¾çå
¥å£æ¥è¯¢"
-
-msgid "searching package %s"
-msgstr "æ¥è¯¢å
ï¼ %s"
-
-msgid "set install root"
-msgstr "设置为rootå®è£
"
-
-msgid "show Yum version and exit"
-msgstr "æ¾ç¤º YUMçæ¬ä¿¡æ¯å¹¶éåº"
-
-msgid "show duplicates, in repos, in list/search commands"
-msgstr "æ¾ç¤ºå¤å¶, å¨repo,list/searchå½ä»¤ä¸"
-
-msgid "skip packages with depsolving problems"
-msgstr "忽ç¥å
çä¾èµé®é¢"
-
-msgid "status"
-msgstr "ç¶æ"
-
-msgid "therefore this repo cannot be reset.\n"
-msgstr "å æ¤æ¤repoä¸è½å¤ä½.\n"
-
-msgid "updated"
-msgstr "å级"
-
-msgid "user interrupt"
-msgstr "ç¨æ·ä¸æ"
-
-msgid "using local copy of %s"
-msgstr "å¨æ¬å°å¤å¶ %s"
-
-msgid "y"
-msgstr "Y"
-
-msgid "yes"
-msgstr "æ¯"
-
commit a1e3e80591f6763c007ff650b5342a1969e2abe7
Author: James Antill <james at and.org>
Date: Fri Nov 21 12:03:10 2008 -0500
Revert "added updated Norsk translation by Kjartan Maraas"
This reverts commit 51229db7af0db6148fe8ceacbd01a7a526c18da6.
Trying to merge with yum-3_2_X
diff --git a/po/nb.po b/po/nb.po
index 512a227..a4214b1 100644
--- a/po/nb.po
+++ b/po/nb.po
@@ -3,39 +3,36 @@
# Copyright (C) 2008 Terje Røsten
# This file is distributed under the same license as the yum package.
# Terje Røsten <terje.rosten at ntnu.no>, 2008.
-# Kjartan Maraas <kmaraas at broadpark.no>, 2008.
-#
-
+#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: yum 3.2.10\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-10-31 13:29+0000\n"
-"PO-Revision-Date: 2008-10-31 20:25+0100\n"
-"Last-Translator: Kjartan Maraas <kmaraas at broadpark.no>\n"
-"Language-Team: Norwegian bokmål <i18n-nb at lister.ping.uio.no>\n"
+"POT-Creation-Date: 2008-03-25 11:29+0100\n"
+"PO-Revision-Date: 2008-02-12 11:16+0100\n"
+"Last-Translator: Terje Røsten <terje.rosten at ntnu.no>\n"
+"Language-Team: Norwegian (bokmål) <i18n-no at lister.ping.uio.no>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ../callback.py:48 ../output.py:516 ../yum/rpmtrans.py:71
+#: ../callback.py:48 ../output.py:512
msgid "Updating"
msgstr "Oppdaterer"
-#: ../callback.py:49 ../yum/rpmtrans.py:72
+#: ../callback.py:49
msgid "Erasing"
msgstr "Fjerner"
-#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:515
-#: ../yum/rpmtrans.py:73 ../yum/rpmtrans.py:74 ../yum/rpmtrans.py:76
+#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:511
msgid "Installing"
msgstr "Legger inn"
-#: ../callback.py:52 ../callback.py:58 ../yum/rpmtrans.py:75
+#: ../callback.py:52 ../callback.py:58
msgid "Obsoleted"
msgstr "Er utgått"
-#: ../callback.py:54 ../output.py:562
+#: ../callback.py:54 ../output.py:558
msgid "Updated"
msgstr "Oppdatert"
@@ -43,7 +40,7 @@ msgstr "Oppdatert"
msgid "Erased"
msgstr "Fjernet"
-#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:560
+#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:556
msgid "Installed"
msgstr "Lagt inn"
@@ -53,7 +50,7 @@ msgstr "Intet hode - merksnodig?!"
#: ../callback.py:168
msgid "Repackage"
-msgstr "Pakk på nytt"
+msgstr "Pakker på nytt"
#: ../callback.py:189
#, python-format
@@ -65,425 +62,405 @@ msgstr "Feil: ugyldig tilstand ut: %s for %s"
msgid "Erased: %s"
msgstr "Fjernet: %s"
-#: ../callback.py:217 ../output.py:517
+#: ../callback.py:217 ../output.py:513
msgid "Removing"
msgstr "Fjerner"
-#: ../callback.py:219 ../yum/rpmtrans.py:77
+#: ../callback.py:219
msgid "Cleanup"
msgstr "Rydder opp"
-#: ../cli.py:105
+#: ../cli.py:103
#, python-format
msgid "Command \"%s\" already defined"
-msgstr "Kommando «%s» er allerede definert"
+msgstr "Kommando \"%s\" er allerede definert"
-#: ../cli.py:117
+#: ../cli.py:115
msgid "Setting up repositories"
-msgstr "Konfigurerer lagre"
+msgstr "Lager pakkeoversikt"
-#: ../cli.py:128
+#: ../cli.py:126
msgid "Reading repository metadata in from local files"
-msgstr "Leser inn data om lager fra lokale filer"
+msgstr "Leser inn data om pakker fra lokale filer"
-#: ../cli.py:186 ../utils.py:71
+#: ../cli.py:183 ../utils.py:72
#, python-format
msgid "Config Error: %s"
-msgstr "Feil i konfigurasjon: %s"
+msgstr "Feil ved konfigurasjon: %s"
-#: ../cli.py:189 ../cli.py:1081 ../utils.py:74
+#: ../cli.py:186 ../cli.py:1068 ../utils.py:75
#, python-format
msgid "Options Error: %s"
-msgstr "Feil i flagg: %s"
+msgstr "Feil med opsjoner: %s"
-#: ../cli.py:232
+#: ../cli.py:229
msgid "You need to give some command"
-msgstr "Du må oppgi en kommando"
+msgstr "Vennligst oppgi minst en kommando"
-#: ../cli.py:274
+#: ../cli.py:271
msgid "Disk Requirements:\n"
-msgstr "Krav til ledig diskplass:\n"
+msgstr "Krav til ledig diskplass\n"
-#: ../cli.py:276
+#: ../cli.py:273
#, python-format
msgid " At least %dMB needed on the %s filesystem.\n"
-msgstr "Minst %dMB kreves på filsystem %s.\n"
+msgstr "Minst %dMB er nødvendig i filsystemet %s.\n"
#. TODO: simplify the dependency errors?
#. Fixup the summary
-#: ../cli.py:281
+#: ../cli.py:278
msgid ""
"Error Summary\n"
"-------------\n"
msgstr ""
-"Sammendrag for feil\n"
-"---------------------\n"
+"Oversikt over feil\n"
+"------------------\n"
-#: ../cli.py:320
+#: ../cli.py:317
msgid "Trying to run the transaction but nothing to do. Exiting."
-msgstr "Prøver å kjøre transaksjonen, men den er tom. Avslutter."
+msgstr "Prøver og fullføre transaksjonen, men den er tom. Avslutter."
-#: ../cli.py:350
+#: ../cli.py:347
msgid "Exiting on user Command"
msgstr "Avslutter på grunn av kommando fra bruker"
-#: ../cli.py:354
+#: ../cli.py:351
msgid "Downloading Packages:"
msgstr "Laster ned pakker:"
-#: ../cli.py:359
+#: ../cli.py:356
msgid "Error Downloading Packages:\n"
msgstr "Kunne ikke laste ned pakkene:\n"
-#: ../cli.py:373 ../yum/__init__.py:2826
+#: ../cli.py:370 ../yum/__init__.py:2746
msgid "Running rpm_check_debug"
-msgstr "Kjører rpm_check_debug"
+msgstr "Kjører rpm-sjekker"
-#: ../cli.py:376 ../yum/__init__.py:2829
+#: ../cli.py:373 ../yum/__init__.py:2749
msgid "ERROR with rpm_check_debug vs depsolve:"
-msgstr "FEIL med rpm_check_debug i forhold til løsing av avhengigheter:"
+msgstr "Feil: en forskjell mellom rpm-sjekker og yum har oppstått"
-#: ../cli.py:380 ../yum/__init__.py:2831
+#: ../cli.py:377 ../yum/__init__.py:2751
msgid "Please report this error in bugzilla"
msgstr "Vennligst send en feilrapport til bugzilla"
-#: ../cli.py:386
+#: ../cli.py:383
msgid "Running Transaction Test"
-msgstr "Gjennomfører test av transaksjonen"
+msgstr "Gjennomfører en test av transaksjonen"
-#: ../cli.py:402
+#: ../cli.py:399
msgid "Finished Transaction Test"
msgstr "Transaksjonstesten er fullført"
-#: ../cli.py:404
+#: ../cli.py:401
msgid "Transaction Check Error:\n"
-msgstr "Feil ved test av transaksjonen:\n"
+msgstr "Feil ved sjekk av transaksjonen:\n"
-#: ../cli.py:411
+#: ../cli.py:408
msgid "Transaction Test Succeeded"
msgstr "Test av transaksjonen var vellykket"
-#: ../cli.py:432
+#: ../cli.py:429
msgid "Running Transaction"
msgstr "Utfører transaksjonen"
-#: ../cli.py:462
+#: ../cli.py:459
msgid ""
"Refusing to automatically import keys when running unattended.\n"
"Use \"-y\" to override."
msgstr ""
-"Nekter å importere nøkler automatisk ved kjøring uten oppsyn.\n"
-"Bruk «-y» for å overstyre."
+"Nekter og automatisk importere nøkler når man kjører uten oppsyn.\n"
+"Bruk \"-y\" for uansett å godta import."
-#: ../cli.py:494
+#: ../cli.py:491
msgid "Parsing package install arguments"
msgstr "Analyserer argumentene for pakkeinstallasjon"
-#: ../cli.py:504
+#: ../cli.py:501
#, python-format
msgid "No package %s available."
-msgstr "Pakke: %s er ikke tilgjengelig."
+msgstr "Ingen pakke: %s er tilgjengelig."
-#: ../cli.py:508 ../cli.py:626 ../yumcommands.py:790
+#: ../cli.py:505 ../cli.py:623 ../yumcommands.py:748
msgid "Package(s) to install"
-msgstr "Pakke(r) som skal legges inn"
+msgstr "Pakker som legges"
-#: ../cli.py:509 ../cli.py:627 ../yumcommands.py:147 ../yumcommands.py:791
+#: ../cli.py:506 ../cli.py:624 ../yumcommands.py:146 ../yumcommands.py:749
msgid "Nothing to do"
-msgstr "Ingenting å gjøre"
+msgstr "Ingenting og gjøre"
-#: ../cli.py:539 ../yum/__init__.py:2275 ../yum/__init__.py:2375
-#: ../yum/__init__.py:2387
+#: ../cli.py:536 ../yum/__init__.py:2232 ../yum/__init__.py:2311
+#: ../yum/__init__.py:2340
#, python-format
msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
msgstr "Vil ikke oppdatere pakke som allerede er foreldet: %s.%s %s:%s-%s"
-#: ../cli.py:571
+#: ../cli.py:568
#, python-format
msgid "Could not find update match for %s"
msgstr "Kunne ikke finne oppdatering som passet for %s"
-#: ../cli.py:583
+#: ../cli.py:580
#, python-format
msgid "%d packages marked for Update"
-msgstr "%d pakker merket for oppdatering"
+msgstr "%d pakker er vil bli oppdatert"
-#: ../cli.py:586
+#: ../cli.py:583
msgid "No Packages marked for Update"
-msgstr "Ingen pakker merket for oppdatering"
+msgstr "Ingen pakker vil bli oppdatert"
-#: ../cli.py:602
+#: ../cli.py:599
#, python-format
msgid "%d packages marked for removal"
-msgstr "%d pakker merket for fjerning"
+msgstr "%d pakker vil bli fjernet"
-#: ../cli.py:605
+#: ../cli.py:602
msgid "No Packages marked for removal"
-msgstr "Ingen pakker merket for fjerning"
+msgstr "Ingen pakker vil bli fjernet"
-#: ../cli.py:617
+#: ../cli.py:614
msgid "No Packages Provided"
msgstr "Ingen pakker ble tilbudt"
-#: ../cli.py:657
+#: ../cli.py:654
msgid "Matching packages for package list to user args"
msgstr "Tilpasser pakkeliste etter brukers ønske"
-#: ../cli.py:705
-#, python-format
+#: ../cli.py:701
+#, fuzzy, python-format
msgid "Warning: No matches found for: %s"
-msgstr "Advarsel: Ingen treff funnet for: %s"
+msgstr "Ingen pakke for %s er funnet"
-#: ../cli.py:708
+#: ../cli.py:704
msgid "No Matches found"
-msgstr "Fant ingen treff"
+msgstr "Ingen passende pakker ble funnet"
-#: ../cli.py:749
+#: ../cli.py:745
#, python-format
msgid "No Package Found for %s"
msgstr "Ingen pakke ble funnet for %s"
-#: ../cli.py:761
+#: ../cli.py:757
msgid "Cleaning up Everything"
msgstr "Rydder opp alt"
-#: ../cli.py:775
+#: ../cli.py:771
msgid "Cleaning up Headers"
-msgstr "Rydder opp pakkehoder"
+msgstr "Rydder opp metadata"
-#: ../cli.py:778
+#: ../cli.py:774
msgid "Cleaning up Packages"
-msgstr "Rydder opp pakker"
+msgstr "Fjerner lagrede pakker"
-#: ../cli.py:781
+#: ../cli.py:777
msgid "Cleaning up xml metadata"
msgstr "Rydder opp i XML-metadata"
-#: ../cli.py:784
+#: ../cli.py:780
msgid "Cleaning up database cache"
-msgstr "Rydder opp i mellomlager for database"
+msgstr "Rydder opp i databasen"
-#: ../cli.py:787
+#: ../cli.py:783
+#, fuzzy
msgid "Cleaning up expire-cache metadata"
-msgstr "Rydder opp i metadata for expire-cache"
+msgstr "Rydder opp i XML-metadata"
-#: ../cli.py:790
+#: ../cli.py:786
msgid "Cleaning up plugins"
msgstr "Rydder opp i tillegg"
-#: ../cli.py:812
+#: ../cli.py:807
msgid "Installed Groups:"
msgstr "Installerte grupper:"
-#: ../cli.py:819
+#: ../cli.py:814
msgid "Available Groups:"
msgstr "Tilgjengelig grupper:"
-#: ../cli.py:825
+#: ../cli.py:820
msgid "Done"
msgstr "Ferdig"
-#: ../cli.py:836 ../cli.py:854 ../cli.py:860
+#: ../cli.py:829 ../cli.py:841 ../cli.py:847
#, python-format
msgid "Warning: Group %s does not exist."
-msgstr "Advarsel: Gruppe %s eksisterer ikke."
+msgstr "Advarsel: gruppe %s eksisterer ikke."
-#: ../cli.py:864
+#: ../cli.py:853
msgid "No packages in any requested group available to install or update"
-msgstr ""
-"Ingen pakker tilgjengelig for installering eller oppdatering i aktuelle "
-"grupper"
+msgstr "Ingen pakker i aktuelle grupper er tilgjengelig"
-#: ../cli.py:866
+#: ../cli.py:855
#, python-format
msgid "%d Package(s) to Install"
-msgstr "%d pakke(r) vil bli installert"
+msgstr "%d pakker vil bli installert"
-#: ../cli.py:876
+#: ../cli.py:865
#, python-format
msgid "No group named %s exists"
-msgstr "Det finnes ingen gruppe med navn %s"
+msgstr "Ingen gruppe med navn %s er tilgjengelig"
-#: ../cli.py:882
+#: ../cli.py:871
msgid "No packages to remove from groups"
-msgstr "Ingen pakker å fjerne fra grupper"
+msgstr "Ingen pakker og fjerne fra gruppe"
-#: ../cli.py:884
+#: ../cli.py:873
#, python-format
msgid "%d Package(s) to remove"
msgstr "%d pakker vil bli fjernet"
-#: ../cli.py:926
+#: ../cli.py:915
#, python-format
msgid "Package %s is already installed, skipping"
msgstr "Pakke %s er allerede lagt inn, hopper over"
-#: ../cli.py:937
+#: ../cli.py:926
#, python-format
msgid "Discarding non-comparable pkg %s.%s"
-msgstr "Vraker pakke som ikke kan sammenlignes %s.%s"
+msgstr "Vraker pakke som ikke sammenlignes %s.%s"
#. we've not got any installed that match n or n+a
-#: ../cli.py:963
+#: ../cli.py:952
#, python-format
msgid "No other %s installed, adding to list for potential install"
msgstr ""
-"Ingen annen %s er lagt inn, legger til pakke til liste over potensielle "
-"pakker"
+"Ingen annen pakke %s er lagt inn, legger til pakke til liste over "
+"potensielle pakker"
-#: ../cli.py:982
+#: ../cli.py:971
#, python-format
msgid "Command line error: %s"
-msgstr "Feil med kommandolinje: %s"
-
-#: ../cli.py:994
-#, python-format
-msgid ""
-"\n"
-"\n"
-"%s: %s option requires an argument"
-msgstr ""
-"\n"
-"\n"
-"%s: flagg %s krever et argument"
+msgstr "Feil ved kommandolinje: %s"
-#: ../cli.py:1123
-msgid "show this help message and exit"
-msgstr "vis denne hjelpteksten og avslutt"
-
-#: ../cli.py:1127
+#: ../cli.py:1101
msgid "be tolerant of errors"
msgstr "vær tolerant ved feil"
-#: ../cli.py:1129
+#: ../cli.py:1103
msgid "run entirely from cache, don't update cache"
msgstr "bruk kun lagrede filer ved kjøring, ikke oppdater lagrede filer"
-#: ../cli.py:1131
+#: ../cli.py:1105
msgid "config file location"
msgstr "plassering av konfigurasjonsfil"
-#: ../cli.py:1133
+#: ../cli.py:1107
msgid "maximum command wait time"
msgstr "maksimaltid for å vente på kommando"
-#: ../cli.py:1135
+#: ../cli.py:1109
msgid "debugging output level"
-msgstr "nivå for tilbakemeldinger ved avlusing"
+msgstr "mengde tilbakemelding ved avlusing"
-#: ../cli.py:1139
+#: ../cli.py:1113
msgid "show duplicates, in repos, in list/search commands"
-msgstr "vis duplikater i lager og i kommandoer for å liste/søke i pakker"
+msgstr ""
-#: ../cli.py:1141
+#: ../cli.py:1115
msgid "error output level"
msgstr "mengde tilbakemelding ved feil"
-#: ../cli.py:1144
+#: ../cli.py:1118
msgid "quiet operation"
-msgstr "stille operasjon"
-
-#: ../cli.py:1146
-msgid "verbose operation"
-msgstr "vis ekstra informasjon"
+msgstr "utfører med minimalt av tilbakemelding"
-#: ../cli.py:1148
+#: ../cli.py:1122
msgid "answer yes for all questions"
-msgstr "svar Ja til alle spørsmål"
+msgstr "svar Ja til alle eventuelle spørsmål som kan oppstå"
-#: ../cli.py:1150
+#: ../cli.py:1124
msgid "show Yum version and exit"
-msgstr "vis Yum-versjon og avslutt"
+msgstr "vis versjon til Yum og avslutt deretter"
-#: ../cli.py:1151
+#: ../cli.py:1125
msgid "set install root"
-msgstr "sett rot for installasjonen"
+msgstr "setter laveste filtre-nivå for intallering (standard er /)"
-#: ../cli.py:1155
+#: ../cli.py:1129
msgid "enable one or more repositories (wildcards allowed)"
-msgstr "legger til et eller flere lager (jokertegn er tillatt)"
+msgstr "legger til en eller flere pakkeoversikter (jokertegn er tillatt)"
-#: ../cli.py:1159
+#: ../cli.py:1133
msgid "disable one or more repositories (wildcards allowed)"
-msgstr "slå av et eller flere lager (jokertegn er tillatt)"
+msgstr "fjernet en eller flere pakkeoversikter (jokertegn er tillatt)"
-#: ../cli.py:1162
+#: ../cli.py:1136
msgid "exclude package(s) by name or glob"
-msgstr "overse pakke(r) ved navn eller mønster"
+msgstr "overse pakke(r) ved navn eller glob"
-#: ../cli.py:1164
+#: ../cli.py:1138
msgid "disable exclude from main, for a repo or for everything"
-msgstr "fjerner ekskludering av pakker, for et lager eller alle pakker"
+msgstr "fjerner ekskludering av pakker, for en pakkeoversikt eller fullstendig"
-#: ../cli.py:1167
+#: ../cli.py:1141
msgid "enable obsoletes processing during updates"
msgstr "ta med foreldede pakker i beregningen ved oppdatering"
-#: ../cli.py:1169
+#: ../cli.py:1143
msgid "disable Yum plugins"
msgstr "ikke bruk tillegg til Yum"
-#: ../cli.py:1171
+#: ../cli.py:1145
msgid "disable gpg signature checking"
-msgstr "ikke sjekk GPG-signaturer"
+msgstr "ikke gjennomfør sjekk av GPG-signaturer"
-#: ../cli.py:1173
+#: ../cli.py:1147
msgid "disable plugins by name"
-msgstr "slå av tillegg til yum etter navn"
+msgstr "ikke bruk tillegg til yum ved navn"
-#: ../cli.py:1176
+#: ../cli.py:1150
msgid "skip packages with depsolving problems"
-msgstr "hopp over pakker som har problemer med avhengigheter"
+msgstr "hoppe over pakker som har problemer med avhengigheter"
-#: ../output.py:228
+#: ../output.py:229
msgid "Jan"
msgstr "jan"
-#: ../output.py:228
+#: ../output.py:229
msgid "Feb"
msgstr "feb"
-#: ../output.py:228
+#: ../output.py:229
msgid "Mar"
msgstr "mar"
-#: ../output.py:228
+#: ../output.py:229
msgid "Apr"
msgstr "apr"
-#: ../output.py:228
+#: ../output.py:229
msgid "May"
msgstr "mai"
-#: ../output.py:228
+#: ../output.py:229
msgid "Jun"
msgstr "jun"
-#: ../output.py:229
+#: ../output.py:230
msgid "Jul"
msgstr "jul"
-#: ../output.py:229
+#: ../output.py:230
msgid "Aug"
msgstr "aug"
-#: ../output.py:229
+#: ../output.py:230
msgid "Sep"
msgstr "sep"
-#: ../output.py:229
+#: ../output.py:230
msgid "Oct"
msgstr "okt"
-#: ../output.py:229
+#: ../output.py:230
msgid "Nov"
msgstr "nov"
-#: ../output.py:229
+#: ../output.py:230
msgid "Dec"
msgstr "des"
-#: ../output.py:239
+#: ../output.py:240
msgid "Trying other mirror."
msgstr "Prøver et annet speil."
@@ -547,25 +524,25 @@ msgstr "Beskrivelse:"
#: ../output.py:351
msgid "Is this ok [y/N]: "
-msgstr "Er dette ok [j/N]:"
+msgstr "Er dette greit [y/N]:"
-#: ../output.py:359 ../output.py:362
+#: ../output.py:357 ../output.py:360
msgid "y"
-msgstr "j"
+msgstr ""
-#: ../output.py:359
+#: ../output.py:357
msgid "n"
-msgstr "n"
+msgstr ""
-#: ../output.py:359 ../output.py:362
+#: ../output.py:357 ../output.py:360
msgid "yes"
-msgstr "ja"
+msgstr ""
-#: ../output.py:359
+#: ../output.py:357
msgid "no"
-msgstr "nei"
+msgstr ""
-#: ../output.py:370
+#: ../output.py:367
#, python-format
msgid ""
"\n"
@@ -574,96 +551,96 @@ msgstr ""
"\n"
"Gruppe:%s"
-#: ../output.py:372
+#: ../output.py:369
#, python-format
msgid " Description: %s"
msgstr " Beskrivelse: %s"
-#: ../output.py:374
+#: ../output.py:371
msgid " Mandatory Packages:"
msgstr "Obligatoriske pakker:"
-#: ../output.py:379
+#: ../output.py:376
msgid " Default Packages:"
msgstr "Standard pakker:"
-#: ../output.py:384
+#: ../output.py:381
msgid " Optional Packages:"
msgstr "Valgfrie pakker:"
-#: ../output.py:389
+#: ../output.py:386
msgid " Conditional Packages:"
msgstr "Betingede pakker:"
-#: ../output.py:398
+#: ../output.py:394
#, python-format
msgid "package: %s"
msgstr "pakke: %s"
-#: ../output.py:400
+#: ../output.py:396
msgid " No dependencies for this package"
msgstr " Ingen avhengigheter for denne pakka"
-#: ../output.py:405
+#: ../output.py:401
#, python-format
msgid " dependency: %s"
msgstr " avhengighet: %s"
-#: ../output.py:407
+#: ../output.py:403
msgid " Unsatisfied dependency"
msgstr " avhengighet som ikke kunne tilfredstilles"
-#: ../output.py:465
+#: ../output.py:461
msgid "Matched from:"
msgstr "Treff fra:"
-#: ../output.py:491
+#: ../output.py:487
msgid "There was an error calculating total download size"
msgstr "Kunne ikke finne ut størrelse på det som skal hentes ned"
-#: ../output.py:496
+#: ../output.py:492
#, python-format
msgid "Total size: %s"
msgstr "Totale størrelse: %s"
-#: ../output.py:499
+#: ../output.py:495
#, python-format
msgid "Total download size: %s"
msgstr "Totale størrelse på pakker som hentes: %s"
-#: ../output.py:511
+#: ../output.py:507
msgid "Package"
msgstr "Pakke"
-#: ../output.py:511
+#: ../output.py:507
msgid "Arch"
msgstr "Arkitektur"
-#: ../output.py:511
+#: ../output.py:507
msgid "Version"
msgstr "Versjon"
-#: ../output.py:511
+#: ../output.py:507
msgid "Repository"
msgstr "Pakkeoversikt"
-#: ../output.py:511
+#: ../output.py:507
msgid "Size"
msgstr "Størrelse"
-#: ../output.py:518
+#: ../output.py:514
msgid "Installing for dependencies"
msgstr "Legges inn på grunn avhengigheter"
-#: ../output.py:519
+#: ../output.py:515
msgid "Updating for dependencies"
msgstr "Oppdateres på grunn avhengigheter"
-#: ../output.py:520
+#: ../output.py:516
msgid "Removing for dependencies"
msgstr "Fjernes på grunn avhengigheter"
-#: ../output.py:532
+#: ../output.py:528
#, python-format
msgid ""
" replacing %s.%s %s\n"
@@ -672,7 +649,7 @@ msgstr ""
" erstatter %s.%s %s\"\n"
"\n"
-#: ../output.py:540
+#: ../output.py:536
#, python-format
msgid ""
"\n"
@@ -689,27 +666,27 @@ msgstr ""
"Oppdaterer %5.5s pakker\n"
"Fjerner %5.5s pakker\n"
-#: ../output.py:558
+#: ../output.py:554
msgid "Removed"
msgstr "Fjernet"
-#: ../output.py:559
+#: ../output.py:555
msgid "Dependency Removed"
msgstr "Fjernet på grunn avhengighet"
-#: ../output.py:561
+#: ../output.py:557
msgid "Dependency Installed"
msgstr "Lagt inn på grunn av avhengighet"
-#: ../output.py:563
+#: ../output.py:559
msgid "Dependency Updated"
msgstr "Oppdatert på grunn avhengighet"
-#: ../output.py:564
+#: ../output.py:560
msgid "Replaced"
msgstr "Erstattet"
-#: ../output.py:622
+#: ../output.py:618
#, python-format
msgid ""
"\n"
@@ -720,72 +697,72 @@ msgstr ""
" Pågående nedlastning er avbrutt, %s avbryt (ved å trykke Ctrl-C) %s ganger "
"til innen %s%s%s sekunder for å avslutte helt.\n"
-#: ../output.py:632
+#: ../output.py:628
msgid "user interrupt"
-msgstr "avbrutt av bruker"
+msgstr "avbryt av bruker"
-#: ../output.py:643
+#: ../output.py:639
msgid "installed"
msgstr "lagt inn"
-#: ../output.py:644
+#: ../output.py:640
msgid "updated"
msgstr "oppdatert"
-#: ../output.py:645
+#: ../output.py:641
msgid "obsoleted"
msgstr "foreldet"
-#: ../output.py:646
+#: ../output.py:642
msgid "erased"
msgstr "fjernet"
-#: ../output.py:650
+#: ../output.py:646
#, python-format
msgid "---> Package %s.%s %s:%s-%s set to be %s"
msgstr "---> pakke %s.%s %s:%s-%s er satt til %s"
-#: ../output.py:657
+#: ../output.py:653
msgid "--> Running transaction check"
msgstr "--> Utfører sjekk av transaksjonen"
-#: ../output.py:662
+#: ../output.py:658
msgid "--> Restarting Dependency Resolution with new changes."
-msgstr "--> Starter løsing av avhengigheter på nytt med endringer"
+msgstr "--> Starter løsning av avhengigheter på nytt"
-#: ../output.py:667
+#: ../output.py:663
msgid "--> Finished Dependency Resolution"
msgstr "--> Alle avhengigheter er løst"
-#: ../output.py:672
+#: ../output.py:668
#, python-format
msgid "--> Processing Dependency: %s for package: %s"
msgstr "--> Beregner avhengighet: %s for pakke: %s"
-#: ../output.py:677
+#: ../output.py:673
#, python-format
msgid "--> Unresolved Dependency: %s"
msgstr "--> Avhengigheter som ikke kunne bli tilfredstilt: %s"
-#: ../output.py:683
+#: ../output.py:679
#, python-format
msgid "--> Processing Conflict: %s conflicts %s"
msgstr "--> Beregner konflikter: %s er i konflikt med %s"
-#: ../output.py:686
+#: ../output.py:682
msgid "--> Populating transaction set with selected packages. Please wait."
-msgstr "--> Fyller transaksjonen med valgte pakker. Vennligst vent."
+msgstr "--> Fyller transaksjonen med valgt pakker. Vennligst vent."
-#: ../output.py:690
+#: ../output.py:686
#, python-format
msgid "---> Downloading header for %s to pack into transaction set."
msgstr "---> Henter ned filhode for pakke %s for å fylle transaksjonen."
-#: ../yumcommands.py:37
+#: ../yumcommands.py:36
msgid "You need to be root to perform this command."
msgstr "Du må være rootbruker for å utføre denne kommandoen."
-#: ../yumcommands.py:44
+#: ../yumcommands.py:43
msgid ""
"\n"
"You have enabled checking of packages via GPG keys. This is a good thing. \n"
@@ -803,277 +780,261 @@ msgid ""
"For more information contact your distribution or package provider.\n"
msgstr ""
"\n"
-"Du har valgt å sjekke pakkene ved hjelp av GPG-nøkler. Det er fornuftig.\n"
+"Du har valgt og sjekk pakkene ved hjelp av GPG-nøkler. Det er fornufting.\n"
"Du har imidlertid ingen offentlige GPG-nøkler installert\n"
-"Du må hente ned og legge inn nøklene. Du kan legge dem inn med kommandoen:\n"
+"Du må hente ned og legge inn nøklene. Du kan legge de inn med kommandoen:\n"
"\n"
" rpm --import public.gpg.key\n"
"\n"
-"Et annet og bedre alternativ er å oppgi URL til de nøklene du vil bruke.\n"
-"Bruk opsjonen 'gpgkey' for hvert lager for å ta dette i bruk.\n"
+"Et annet og bedre alternativ er og oppgi URL til de nøklene du vil bruke.\n"
+"Bruk opsjonen 'gpgkey' for hver pakkeoversikt for å ta dette i bruk.\n"
+"\n"
"\n"
-"Kontakt din distribusjon eller pakkeansvarlig for mer informasjon.\n"
-#: ../yumcommands.py:64
+#: ../yumcommands.py:63
#, python-format
msgid "Error: Need to pass a list of pkgs to %s"
-msgstr "Feil: du må oppgi en liste med pakker som skal %s"
+msgstr "Feil: du må oppgi ei liste over pakker som skal %s"
-#: ../yumcommands.py:70
+#: ../yumcommands.py:69
msgid "Error: Need an item to match"
-msgstr "Feil: trenger noe å sammenligne med"
+msgstr "Feil: trenger noe og sammenligne med"
-#: ../yumcommands.py:76
+#: ../yumcommands.py:75
msgid "Error: Need a group or list of groups"
-msgstr "Feil: trenger en gruppe eller en liste med grupper"
+msgstr "Feil: trenger ei gruppe eller ei liste med grupper"
-#: ../yumcommands.py:85
+#: ../yumcommands.py:84
#, python-format
msgid "Error: clean requires an option: %s"
msgstr "Feil: clean trenger minst et argument: %s"
-#: ../yumcommands.py:90
+#: ../yumcommands.py:89
#, python-format
msgid "Error: invalid clean argument: %r"
msgstr "Feil: ugyldig argument gitt til kommandoen clean: %r"
-#: ../yumcommands.py:103
+#: ../yumcommands.py:102
msgid "No argument to shell"
msgstr "Ingen argumenter ble gitt til kommandoen shell"
-#: ../yumcommands.py:106
+#: ../yumcommands.py:105
#, python-format
msgid "Filename passed to shell: %s"
-msgstr "Følgende filnavn ble sendt til skallet: %s"
+msgstr "Følgende filnavn ble som argument til shell: %s"
-#: ../yumcommands.py:110
+#: ../yumcommands.py:109
#, python-format
msgid "File %s given as argument to shell does not exist."
msgstr ""
"Filen %s som ble gitt som argument til kommandoen shell eksisterer ikke."
-#: ../yumcommands.py:116
+#: ../yumcommands.py:115
msgid "Error: more than one file given as argument to shell."
-msgstr "Feil: mer enn en fil ble gitt som argument til kommandoen shell."
+msgstr "Feil: mer enn ei fil ble gitt som argument til kommandoen shell."
-#: ../yumcommands.py:157
+#: ../yumcommands.py:156
msgid "PACKAGE..."
-msgstr "PAKKE..."
+msgstr "Pakke..."
-#: ../yumcommands.py:160
+#: ../yumcommands.py:159
msgid "Install a package or packages on your system"
-msgstr "Legg inn en eller flere pakker på systemet"
+msgstr "Legger inn pakke(r) på ditt system"
-#: ../yumcommands.py:169
+#: ../yumcommands.py:168
msgid "Setting up Install Process"
msgstr "Forberedelser for installasjon"
-#: ../yumcommands.py:180
+#: ../yumcommands.py:179
msgid "[PACKAGE...]"
-msgstr "[PAKKE...]"
+msgstr "[Pakke...}"
-#: ../yumcommands.py:183
+#: ../yumcommands.py:182
msgid "Update a package or packages on your system"
-msgstr "Oppdater en eller flere pakker på systemet"
+msgstr "Oppdaterer pakke(r) på ditt system"
-#: ../yumcommands.py:191
+#: ../yumcommands.py:190
msgid "Setting up Update Process"
msgstr "Forberedelser for oppdatering"
-#: ../yumcommands.py:205
+#: ../yumcommands.py:204
msgid "Display details about a package or group of packages"
msgstr "Viser detaljer om en pakke eller en gruppe av grupper"
-#: ../yumcommands.py:213
+#: ../yumcommands.py:212
msgid "Installed Packages"
msgstr "Pakker som er installert"
-#: ../yumcommands.py:214
+#: ../yumcommands.py:213
msgid "Available Packages"
-msgstr "Tilgjengelige pakker"
+msgstr "Tilgjengelig pakker"
-#: ../yumcommands.py:215
+#: ../yumcommands.py:214
msgid "Extra Packages"
msgstr "Tilleggspakker"
-#: ../yumcommands.py:216
+#: ../yumcommands.py:215
msgid "Updated Packages"
msgstr "Oppdaterte pakker"
-#: ../yumcommands.py:222 ../yumcommands.py:228
+#: ../yumcommands.py:221 ../yumcommands.py:225
msgid "Obsoleting Packages"
msgstr "Utdaterte pakker"
-#: ../yumcommands.py:229
+#: ../yumcommands.py:226
msgid "Recently Added Packages"
-msgstr "Pakker som nylig er lagt til"
+msgstr "Pakker som nylig er blitt lagt til"
-#: ../yumcommands.py:235
+#: ../yumcommands.py:232
msgid "No matching Packages to list"
-msgstr "Ingen passende pakker å liste opp"
+msgstr "Ingen passende pakker og liste opp"
-#: ../yumcommands.py:249
+#: ../yumcommands.py:246
msgid "List a package or groups of packages"
-msgstr "Lag en liste med pakker eller grupper av pakker"
+msgstr "Lag en liste over pakker eller gruppe av pakker"
-#: ../yumcommands.py:261
+#: ../yumcommands.py:258
msgid "Remove a package or packages from your system"
-msgstr "Fjern en eller flere pakker fra systemet"
+msgstr "Fjerner pakke(r) fra ditt system"
-#: ../yumcommands.py:269
+#: ../yumcommands.py:266
msgid "Setting up Remove Process"
msgstr "Klargjør for fjerning av pakker"
-#: ../yumcommands.py:281
+#: ../yumcommands.py:278
msgid "Setting up Group Process"
-msgstr "Klargjør grupper med pakker"
+msgstr "Klargjør grupper av pakker"
-#: ../yumcommands.py:287
+#: ../yumcommands.py:284
msgid "No Groups on which to run command"
-msgstr "Ingen gruppe er valgt for aktuell kommando"
+msgstr "Ingen gruppe er valgt for aktuelle kommando"
-#: ../yumcommands.py:300
+#: ../yumcommands.py:297
msgid "List available package groups"
-msgstr "Lag liste over tilgjengelige pakkegrupper"
+msgstr "Lag liste over tilgjengelig grupper"
-#: ../yumcommands.py:317
+#: ../yumcommands.py:314
msgid "Install the packages in a group on your system"
-msgstr "Legger inn pakkene i en gruppe på systemet"
+msgstr "Legger inn pakkene i gruppe av pakker"
-#: ../yumcommands.py:339
+#: ../yumcommands.py:336
msgid "Remove the packages in a group from your system"
-msgstr "Fjern pakkene i en gruppe fra systemet"
+msgstr "Fjerner alle pakkene i en gruppe av pakker"
-#: ../yumcommands.py:363
+#: ../yumcommands.py:360
msgid "Display details about a package group"
msgstr "Viser detaljer om en gruppe av pakker"
-#: ../yumcommands.py:387
+#: ../yumcommands.py:384
msgid "Generate the metadata cache"
-msgstr "Lag mellomlager med metadata"
+msgstr "Generer mellomlager av metadata"
-#: ../yumcommands.py:393
+#: ../yumcommands.py:390
msgid "Making cache files for all metadata files."
msgstr "Lager mellomlager for samtlige filer med metadata."
-#: ../yumcommands.py:394
+#: ../yumcommands.py:391
msgid "This may take a while depending on the speed of this computer"
-msgstr "Dette kan en stund avhengig av hvor rask datamaskinen er"
+msgstr "Dette kan ei stund alt ettersom hvor rask din maskin er"
-#: ../yumcommands.py:415
+#: ../yumcommands.py:412
msgid "Metadata Cache Created"
msgstr "Mellomlager er ferdig lagd"
-#: ../yumcommands.py:429
+#: ../yumcommands.py:426
msgid "Remove cached data"
msgstr "Fjern mellomlager med metadata"
-#: ../yumcommands.py:450
+#: ../yumcommands.py:447
msgid "Find what package provides the given value"
-msgstr "Finn hvilken pakke som inneholder etterspurt verdi"
+msgstr "Finn hvilken pakke som tilbyr den søkte verdi"
-#: ../yumcommands.py:470
+#: ../yumcommands.py:467
msgid "Check for available package updates"
-msgstr "Se etter tilgjengelige pakkeoppdateringer"
+msgstr "Sjekker om det oppdatering tilgjengelig for gruppene av pakker"
-#: ../yumcommands.py:493
+#: ../yumcommands.py:490
msgid "Search package details for the given string"
-msgstr "Søker etter oppgitt streng i pakkedetaljene"
+msgstr "Søker etter detaljer om pakke utenifra den aktuelle strengen"
-#: ../yumcommands.py:499
+#: ../yumcommands.py:496
msgid "Searching Packages: "
-msgstr "Søker i pakker: "
+msgstr "Søker etter pakker: "
-#: ../yumcommands.py:516
+#: ../yumcommands.py:513
msgid "Update packages taking obsoletes into account"
-msgstr "Oppdater pakker og ta hensyn til pakker som blir utdatert"
+msgstr "Oppdatering pakker og tar samtidig hensyn til pakker som er utdatert"
-#: ../yumcommands.py:525
+#: ../yumcommands.py:522
msgid "Setting up Upgrade Process"
msgstr "Klargjør for oppdatering"
-#: ../yumcommands.py:539
+#: ../yumcommands.py:536
msgid "Install a local RPM"
msgstr "Legger inn en RPM fra filsystemet"
-#: ../yumcommands.py:548
+#: ../yumcommands.py:545
msgid "Setting up Local Package Process"
msgstr "Klargjøring for pakker på lokalt filsystem"
-#: ../yumcommands.py:567
+#: ../yumcommands.py:564
msgid "Determine which package provides the given dependency"
msgstr "Finner hvilken pakke som tilbyr den gitte avhengigheten"
-#: ../yumcommands.py:570
+#: ../yumcommands.py:567
msgid "Searching Packages for Dependency:"
-msgstr "Søker i pakker etter avhengighet:"
+msgstr "Søker etter pakker med avhengighet:"
-#: ../yumcommands.py:584
+#: ../yumcommands.py:581
msgid "Run an interactive yum shell"
msgstr "Kjører det interaktive Yum-skallet"
-#: ../yumcommands.py:590
+#: ../yumcommands.py:587
msgid "Setting up Yum Shell"
msgstr "Klargjør Yum-skallet"
-#: ../yumcommands.py:608
+#: ../yumcommands.py:605
msgid "List a package's dependencies"
-msgstr "Vis avhengigheter for en pakke"
+msgstr "Lister opp avhengighetene til pakka"
-#: ../yumcommands.py:614
+#: ../yumcommands.py:611
msgid "Finding dependencies: "
msgstr "Finner avhengigheter: "
-#: ../yumcommands.py:630
+#: ../yumcommands.py:627
msgid "Display the configured software repositories"
msgstr "Viser de pakkeoversiktene som er satt opp"
-#: ../yumcommands.py:666
-msgid "enabled"
-msgstr "aktiv"
-
-#: ../yumcommands.py:673
-msgid "disabled"
-msgstr "inaktiv"
-
-#: ../yumcommands.py:682
+#: ../yumcommands.py:645
msgid "repo id"
msgstr "id"
-#: ../yumcommands.py:683
+#: ../yumcommands.py:645
msgid "repo name"
msgstr "navn"
-#: ../yumcommands.py:683
+#: ../yumcommands.py:645
msgid "status"
msgstr "status"
-#: ../yumcommands.py:686
-msgid "Repo-id : "
-msgstr "ID for lager: "
-
-#: ../yumcommands.py:687
-msgid "Repo-name : "
-msgstr "Navn på lager : "
-
-#: ../yumcommands.py:688
-msgid "Repo-enabled: "
-msgstr "Lager aktivt: "
+#: ../yumcommands.py:651
+msgid "enabled"
+msgstr "aktiv"
-#: ../yumcommands.py:689
-msgid "Repo-size : "
-msgstr "Størrelse på lager : "
+#: ../yumcommands.py:654
+msgid "disabled"
+msgstr "inaktiv"
-#: ../yumcommands.py:713
+#: ../yumcommands.py:671
msgid "Display a helpful usage message"
msgstr "Viser en hjelpetekst"
-#: ../yumcommands.py:747
+#: ../yumcommands.py:705
#, python-format
msgid "No help available for %s"
msgstr "Ingen hjelp er tilgjengelig for %s"
-#: ../yumcommands.py:752
+#: ../yumcommands.py:710
msgid ""
"\n"
"\n"
@@ -1081,9 +1042,9 @@ msgid ""
msgstr ""
"\n"
"\n"
-"alias:"
+"aliaser:"
-#: ../yumcommands.py:754
+#: ../yumcommands.py:712
msgid ""
"\n"
"\n"
@@ -1093,15 +1054,15 @@ msgstr ""
"\n"
"alias:"
-#: ../yumcommands.py:783
+#: ../yumcommands.py:741
msgid "Setting up Reinstall Process"
msgstr "Klargjør for å legge inn pakke(r) på nytt"
-#: ../yumcommands.py:797
+#: ../yumcommands.py:755
msgid "reinstall a package"
-msgstr "legg inn en pakke på nytt"
+msgstr "Legger inn en pakke på nytt"
-#: ../yummain.py:55
+#: ../yummain.py:41
msgid ""
"\n"
"\n"
@@ -1111,7 +1072,7 @@ msgstr ""
"\n"
"Avslutter etter ønske"
-#: ../yummain.py:61
+#: ../yummain.py:47
msgid ""
"\n"
"\n"
@@ -1119,42 +1080,42 @@ msgid ""
msgstr ""
"\n"
"\n"
-"Avslutter på grunn av brutt rør"
+"Avslutter på grunn ødelagt programrør"
-#: ../yummain.py:112
+#: ../yummain.py:105
msgid ""
"Another app is currently holding the yum lock; waiting for it to exit..."
msgstr ""
"Et annet program holder en fillås for Yum, venter til fillåsen frigjøres..."
-#: ../yummain.py:139 ../yummain.py:178
+#: ../yummain.py:132 ../yummain.py:171
#, python-format
msgid "Error: %s"
msgstr "Feil: %s"
-#: ../yummain.py:149 ../yummain.py:185
+#: ../yummain.py:142 ../yummain.py:178
#, python-format
msgid "Unknown Error(s): Exit Code: %d:"
-msgstr "Ukjent feil: feilkode: %d:"
+msgstr "Ukjent feil: feilkode: %d"
#. Depsolve stage
-#: ../yummain.py:156
+#: ../yummain.py:149
msgid "Resolving Dependencies"
-msgstr "Løser avhengigheter"
+msgstr "Løser opp i avhengigheter"
-#: ../yummain.py:191
+#: ../yummain.py:184
msgid ""
"\n"
"Dependencies Resolved"
msgstr ""
"\n"
-"Alle avhengigheter er løst"
+"Alle avhengigheter er oppløst"
-#: ../yummain.py:205
+#: ../yummain.py:198
msgid "Complete!"
msgstr "Ferdig!"
-#: ../yummain.py:252
+#: ../yummain.py:245
msgid ""
"\n"
"\n"
@@ -1164,258 +1125,319 @@ msgstr ""
"\n"
"Avslutter etter ønske"
-#: ../yum/depsolve.py:78
+#: ../yum/depsolve.py:82
msgid "doTsSetup() will go away in a future version of Yum.\n"
msgstr "doTsSetup() vil forsvinne i en kommende utgave av Yum.\n"
-#: ../yum/depsolve.py:91
+#: ../yum/depsolve.py:95
msgid "Setting up TransactionSets before config class is up"
msgstr "Setter opp transaksjons-sett før config klassen er klar"
-#: ../yum/depsolve.py:132
+#: ../yum/depsolve.py:136
#, python-format
msgid "Invalid tsflag in config file: %s"
msgstr "Ugyldig tsflag in konfigurasjonsfil: %s"
-#: ../yum/depsolve.py:176
+#: ../yum/depsolve.py:147
+#, python-format
+msgid "Searching pkgSack for dep: %s"
+msgstr "Søker i pkgSack etter avhengighet: %s"
+
+#: ../yum/depsolve.py:170
+#, python-format
+msgid "Potential match for %s from %s"
+msgstr "Potensielt treff for %s i %s"
+
+#: ../yum/depsolve.py:178
+#, python-format
+msgid "Matched %s to require for %s"
+msgstr "Passende %s for å tilfredstille %s"
+
+#: ../yum/depsolve.py:219
#, python-format
msgid "Member: %s"
msgstr "Medlem: %s"
-#: ../yum/depsolve.py:190 ../yum/depsolve.py:592
+#: ../yum/depsolve.py:233 ../yum/depsolve.py:696
#, python-format
msgid "%s converted to install"
msgstr "%s ble omdannet til installering"
-#: ../yum/depsolve.py:197
+#: ../yum/depsolve.py:240
#, python-format
msgid "Adding Package %s in mode %s"
msgstr "Legger til pakke %s in modus %s"
-#: ../yum/depsolve.py:207
+#: ../yum/depsolve.py:250
#, python-format
msgid "Removing Package %s"
msgstr "Fjerner pakke %s"
-#: ../yum/depsolve.py:218
+#: ../yum/depsolve.py:261
#, python-format
msgid "%s requires: %s"
-msgstr "%s krever: %s"
+msgstr "%s avhenger av: %s"
+
+#: ../yum/depsolve.py:312
+msgid "Needed Require has already been looked up, cheating"
+msgstr "Nødvendig avhengighet har allerede blitt plukket opp, jukser"
-#: ../yum/depsolve.py:273
+#: ../yum/depsolve.py:322
+#, python-format
+msgid "Needed Require is not a package name. Looking up: %s"
+msgstr "Nødvendig avhengighet er ikke et navn på pakke. Ser etter: %s"
+
+#: ../yum/depsolve.py:329
+#, python-format
+msgid "Potential Provider: %s"
+msgstr "Potensiell tilbyder: %s"
+
+#: ../yum/depsolve.py:352
+#, python-format
+msgid "Mode is %s for provider of %s: %s"
+msgstr "Modus er %s for tilbyder av %s: %s"
+
+#: ../yum/depsolve.py:356
+#, python-format
+msgid "Mode for pkg providing %s: %s"
+msgstr "Modus for pakke som tilbyr %s: %s"
+
+#: ../yum/depsolve.py:360
+#, python-format
+msgid "TSINFO: %s package requiring %s marked as erase"
+msgstr "TSINFO: pakke %s som er nødvendig for %s vil bli fjernet"
+
+#: ../yum/depsolve.py:372
#, python-format
msgid "TSINFO: Obsoleting %s with %s to resolve dep."
msgstr "TSINFO: Bytter ut %s med %s for å løse opp i avhengighet."
-#: ../yum/depsolve.py:276
+#: ../yum/depsolve.py:375
#, python-format
msgid "TSINFO: Updating %s to resolve dep."
msgstr "TSINFO: Oppdaterer %s for å løse opp i avhengighet."
-#: ../yum/depsolve.py:279
+#: ../yum/depsolve.py:378
#, python-format
msgid "Cannot find an update path for dep for: %s"
msgstr "Kunne ikke finne måte å oppdatere sti for avhengighet: %s."
-#: ../yum/depsolve.py:283
+#: ../yum/depsolve.py:388
#, python-format
-msgid "TSINFO: %s package requiring %s marked as erase"
-msgstr "TSINFO: pakke %s som er nødvendig for %s vil bli fjernet"
+msgid "Unresolvable requirement %s for %s"
+msgstr "Avhengighet %s kan ikke løses opp: %s"
#. is it already installed?
-#: ../yum/depsolve.py:329
+#: ../yum/depsolve.py:434
#, python-format
msgid "%s is in providing packages but it is already installed, removing."
msgstr "%s tilbyr pakker, men er allerede installert, fjerner denne."
-#: ../yum/depsolve.py:344
+#: ../yum/depsolve.py:449
#, python-format
msgid "Potential resolving package %s has newer instance in ts."
-msgstr "Pakke %s som potensielt løser opp avhengighet har nyere instans in ts."
+msgstr ""
+"Pakke %s som potensielt tilbyder løsning har allerede nyere instans in ts."
-#: ../yum/depsolve.py:355
+#: ../yum/depsolve.py:460
#, python-format
msgid "Potential resolving package %s has newer instance installed."
msgstr "Pakke %s som potensielt løser opp avhengighet er allerde installert."
-#: ../yum/depsolve.py:363 ../yum/depsolve.py:410
+#: ../yum/depsolve.py:468 ../yum/depsolve.py:527
#, python-format
msgid "Missing Dependency: %s is needed by package %s"
msgstr "Uløst avhengighet: %s trengs av pakke %s"
-#: ../yum/depsolve.py:376
+#: ../yum/depsolve.py:481
#, python-format
msgid "%s already in ts, skipping this one"
msgstr "%s er allerde i ts, hopper over denne"
-#: ../yum/depsolve.py:420
+#: ../yum/depsolve.py:510
+#, python-format
+msgid ""
+"Failure finding best provider of %s for %s, exceeded maximum loop length"
+msgstr ""
+
+#: ../yum/depsolve.py:537
#, python-format
msgid "TSINFO: Marking %s as update for %s"
msgstr "TSINFO: Setter opp %s som oppdatering av %s"
-#: ../yum/depsolve.py:427
+#: ../yum/depsolve.py:544
#, python-format
msgid "TSINFO: Marking %s as install for %s"
msgstr "TSINFO: Setter opp %s som pakke for installering av %s"
-#: ../yum/depsolve.py:518 ../yum/depsolve.py:610
+#: ../yum/depsolve.py:635 ../yum/depsolve.py:714
msgid "Success - empty transaction"
-msgstr "Suksess - transaksjonen er tom"
+msgstr "Suksess- transaksjonen er tom"
-#: ../yum/depsolve.py:562 ../yum/depsolve.py:582
+#: ../yum/depsolve.py:673 ../yum/depsolve.py:686
msgid "Restarting Loop"
msgstr "Starter sløyfe på nytt"
-#: ../yum/depsolve.py:598
+#: ../yum/depsolve.py:702
msgid "Dependency Process ending"
msgstr "Beregning av avhengighet avsluttes"
-#: ../yum/depsolve.py:604
+#: ../yum/depsolve.py:708
#, python-format
msgid "%s from %s has depsolving problems"
-msgstr "%s fra %s har problemer med avhengigheter"
+msgstr "%s to %s har problemer med avhengigheter"
-#: ../yum/depsolve.py:611
+#: ../yum/depsolve.py:715
msgid "Success - deps resolved"
msgstr "Suksess - alle avhengigheter er tilfredstilt"
-#: ../yum/depsolve.py:625
+#: ../yum/depsolve.py:729
#, python-format
msgid "Checking deps for %s"
msgstr "Sjekker avhengigheter for %s"
-#: ../yum/depsolve.py:687
+#: ../yum/depsolve.py:782
#, python-format
msgid "looking for %s as a requirement of %s"
-msgstr "leter etter %s som kreves av %s"
+msgstr "leter etter %s som en nødvendighet fra %s"
+
+#: ../yum/depsolve.py:933
+#, python-format
+msgid "Comparing best: %s to po: %s"
+msgstr ""
-#: ../yum/depsolve.py:814
+#: ../yum/depsolve.py:937
#, python-format
-msgid "Running compare_providers() for %s"
-msgstr "Kjører compare_providers() for %s"
+msgid "Same: best %s == po: %s"
+msgstr ""
+
+#: ../yum/depsolve.py:952 ../yum/depsolve.py:963
+#, python-format
+msgid "best %s obsoletes po: %s"
+msgstr ""
-#: ../yum/depsolve.py:842 ../yum/depsolve.py:848
+#: ../yum/depsolve.py:955
#, python-format
+msgid "po %s obsoletes best: %s"
+msgstr ""
+
+#: ../yum/depsolve.py:972 ../yum/depsolve.py:979 ../yum/depsolve.py:1036
+#, fuzzy, python-format
msgid "better arch in po %s"
-msgstr "bedre arch i po %s"
+msgstr "søker etter pakke %s"
-#: ../yum/depsolve.py:887
+#: ../yum/depsolve.py:988 ../yum/depsolve.py:1010
#, python-format
-msgid "%s obsoletes %s"
-msgstr "%s faser ut %s"
+msgid "po %s shares a sourcerpm with %s"
+msgstr ""
-#: ../yum/depsolve.py:898
+#: ../yum/depsolve.py:992 ../yum/depsolve.py:1015
#, python-format
-msgid ""
-"archdist compared %s to %s on %s\n"
-" Winner: %s"
+msgid "best %s shares a sourcerpm with %s"
msgstr ""
-"archdist sammenlignet %s med %s på %s\n"
-" Vinner: %s"
-#: ../yum/depsolve.py:905
+#: ../yum/depsolve.py:999 ../yum/depsolve.py:1020
#, python-format
-msgid "common sourcerpm %s and %s"
+msgid "po %s shares more of the name prefix with %s"
msgstr ""
-#: ../yum/depsolve.py:911
+#: ../yum/depsolve.py:1003 ../yum/depsolve.py:1029
#, python-format
-msgid "common prefix of %s between %s and %s"
+msgid "po %s has a shorter name than best %s"
msgstr ""
-#: ../yum/depsolve.py:919
+#: ../yum/depsolve.py:1025
#, python-format
-msgid "Best Order: %s"
-msgstr "Beste rekkefølge: %s"
+msgid "bestpkg %s shares more of the name prefix with %s"
+msgstr ""
-#: ../yum/__init__.py:148
+#: ../yum/__init__.py:119
msgid "doConfigSetup() will go away in a future version of Yum.\n"
msgstr "doConfigSetup() vil forsvinne i en kommende utgave av Yum.\n"
-#. FIXME: Use critical? or exception?
-#: ../yum/__init__.py:323
+#: ../yum/__init__.py:296
#, python-format
msgid "Repository %r is missing name in configuration, using id"
-msgstr "Pakkelager %r mangler navn i konfigurasjonsfilen(e), bruker id"
+msgstr "Pakkeoversikt %r har intet navn i konfigurasjonsfilen(e), bruker id"
-#: ../yum/__init__.py:359
+#: ../yum/__init__.py:332
msgid "plugins already initialised"
-msgstr "tillegg til yum er allerede initiert"
+msgstr "tillegg til yum er allerede satt opp"
-#: ../yum/__init__.py:366
+#: ../yum/__init__.py:339
msgid "doRpmDBSetup() will go away in a future version of Yum.\n"
msgstr "doRepoSetup() vil forsvinne i en kommende utgave av Yum.\n"
-#: ../yum/__init__.py:376
+#: ../yum/__init__.py:349
msgid "Reading Local RPMDB"
-msgstr "Leser inn lokal RPM-database"
+msgstr "Leser inn lokale RPM-database"
-#: ../yum/__init__.py:394
+#: ../yum/__init__.py:367
msgid "doRepoSetup() will go away in a future version of Yum.\n"
msgstr "doRepoSetup() vil forsvinne i en kommende utgave av Yum\n"
-#: ../yum/__init__.py:414
+#: ../yum/__init__.py:387
msgid "doSackSetup() will go away in a future version of Yum.\n"
msgstr "doSackSetup() vil forsvinne i en kommende utgave av Yum\n"
-#: ../yum/__init__.py:431
+#: ../yum/__init__.py:404
msgid "Setting up Package Sacks"
msgstr "Lager sekker med pakker"
-#: ../yum/__init__.py:474
+#: ../yum/__init__.py:447
#, python-format
msgid "repo object for repo %s lacks a _resetSack method\n"
-msgstr "objekt for pakkelager %s mangler metoden _resetSack\n"
+msgstr "objekt for pakkesoversikt %s mangler metoden _resetSack\n"
-#: ../yum/__init__.py:475
+#: ../yum/__init__.py:448
msgid "therefore this repo cannot be reset.\n"
-msgstr "derfor kan ikke denne pakkeoversikten nullstilles\n"
+msgstr "derfor kan ikke denne pakkeoversikten bli nullstilt\n"
-#: ../yum/__init__.py:480
+#: ../yum/__init__.py:453
msgid "doUpdateSetup() will go away in a future version of Yum.\n"
msgstr "doUpdateSetup() vil forsvinne i en kommende utgave av Yum.\n"
-#: ../yum/__init__.py:492
+#: ../yum/__init__.py:465
msgid "Building updates object"
-msgstr "Bygger opp oppdateringsobjekt"
+msgstr "Bygger opp oppdateringobject"
-#: ../yum/__init__.py:523
+#: ../yum/__init__.py:496
msgid "doGroupSetup() will go away in a future version of Yum.\n"
msgstr "doGroupSetup() vil forsvinne i en kommende utgave av Yum.\n"
-#: ../yum/__init__.py:547
+#: ../yum/__init__.py:520
msgid "Getting group metadata"
-msgstr "Henter metadata for grupper"
+msgstr "Henter metadata om grupper"
-#: ../yum/__init__.py:572
+#: ../yum/__init__.py:546
#, python-format
msgid "Adding group file from repository: %s"
msgstr "Legger til gruppefil fra pakkeoversikt: %s"
-#: ../yum/__init__.py:577
+#: ../yum/__init__.py:555
#, python-format
msgid "Failed to add groups file for repository: %s - %s"
-msgstr "Kunne ikke legge til gruppefil for pakkeoversikt: %s - %s"
+msgstr "Kunne ike legge til gruppefil for pakkeoversikt: %s - %s"
-#: ../yum/__init__.py:583
+#: ../yum/__init__.py:561
msgid "No Groups Available in any repository"
-msgstr "Ingen grupper tilgjengelig fra noen lagre"
+msgstr "Ingen grupper overhode tilgjengelig"
-#: ../yum/__init__.py:633
+#: ../yum/__init__.py:611
msgid "Importing additional filelist information"
-msgstr "Henter mer informasjon om fil-lister"
+msgstr "Henter ytterligere informasjon om fil-lister"
-#: ../yum/__init__.py:684
+#: ../yum/__init__.py:657
#, python-format
msgid "Skip-broken round %i"
-msgstr "Runde %i for å hoppe over feil avhengighet"
+msgstr "Runde %i på grunn av ødelagte avhengigheter."
-#: ../yum/__init__.py:707
+#: ../yum/__init__.py:680
#, python-format
msgid "Skip-broken took %i rounds "
-msgstr "På grunn feil i avhengigheter ble det gjennomført %i runder "
+msgstr "På grunn ødelagte avhengigheter ble det gjennomført %i runder "
-#: ../yum/__init__.py:708
+#: ../yum/__init__.py:681
msgid ""
"\n"
"Packages skipped because of dependency problems:"
@@ -1423,161 +1445,157 @@ msgstr ""
"\n"
"Pakker som ble oversett på grunn av problemer med avhengigheter:"
-#: ../yum/__init__.py:712
+#: ../yum/__init__.py:685
#, python-format
msgid " %s from %s"
msgstr " %s fra %s"
-#: ../yum/__init__.py:792
-msgid ""
-"Warning: scriptlet or other non-fatal errors occurred during transaction."
-msgstr ""
-
-#: ../yum/__init__.py:807
+#: ../yum/__init__.py:774
#, python-format
msgid "Failed to remove transaction file %s"
msgstr "Kunne ikke fjerne transaksjonsfil %s"
-#: ../yum/__init__.py:847
+#: ../yum/__init__.py:814
#, python-format
msgid "excluding for cost: %s from %s"
msgstr "ekskluderer på grunn av kostnad: %s fra %s"
-#: ../yum/__init__.py:878
+#: ../yum/__init__.py:845
msgid "Excluding Packages in global exclude list"
-msgstr "Ekskluderer pakker som er i global liste med ekskluderte pakker"
+msgstr "Ekskluderer pakker som er i global liste av ekskluderte pakker"
-#: ../yum/__init__.py:880
+#: ../yum/__init__.py:847
#, python-format
msgid "Excluding Packages from %s"
msgstr "Ekskluderer pakker fra %s"
-#: ../yum/__init__.py:906
+#: ../yum/__init__.py:875
#, python-format
msgid "Reducing %s to included packages only"
msgstr "Reduserer %s til kun inkluderte pakker"
-#: ../yum/__init__.py:911
+#: ../yum/__init__.py:880
#, python-format
msgid "Keeping included package %s"
msgstr "Tar vare på inkludert pakke %s"
-#: ../yum/__init__.py:917
+#: ../yum/__init__.py:886
#, python-format
msgid "Removing unmatched package %s"
msgstr "Fjerner upassende pakke: %s"
-#: ../yum/__init__.py:920
+#: ../yum/__init__.py:889
msgid "Finished"
msgstr "Ferdig"
#. Whoa. What the heck happened?
-#: ../yum/__init__.py:950
+#: ../yum/__init__.py:919
#, python-format
msgid "Unable to check if PID %s is active"
msgstr "Kunne ikke sjekke om PID %s er aktiv"
#. Another copy seems to be running.
-#: ../yum/__init__.py:954
+#: ../yum/__init__.py:923
#, python-format
msgid "Existing lock %s: another copy is running as pid %s."
-msgstr "Det fins allerede en låsfil %s: en annen Yum kjører med PID %s."
+msgstr ""
+"Det fins allerede en låsefil: %s, en annen Yum kjører med PID %s allerede."
-#: ../yum/__init__.py:1017
+#: ../yum/__init__.py:970 ../yum/__init__.py:977
msgid "Package does not match intended download"
msgstr "Det er forskjell mellom nedlastet og forventet størrelse"
-#: ../yum/__init__.py:1032
+#: ../yum/__init__.py:991
msgid "Could not perform checksum"
-msgstr "Kunne ikke beregne sjekksum"
+msgstr "Kunne ikke beregne tverrsum"
-#: ../yum/__init__.py:1035
+#: ../yum/__init__.py:994
msgid "Package does not match checksum"
-msgstr "Pakken har ikke korrekt sjekksum"
+msgstr "Pakka har ikke korrekt tverrsum"
-#: ../yum/__init__.py:1079
+#: ../yum/__init__.py:1036
#, python-format
msgid "package fails checksum but caching is enabled for %s"
-msgstr "sjekksummen til pakken er feil, men mellomlagring er satt på for %s"
+msgstr "tverrsummen til pakka er feil, men mellomlagring er satt på for %s"
-#: ../yum/__init__.py:1082
+#: ../yum/__init__.py:1042
#, python-format
msgid "using local copy of %s"
-msgstr "bruker lokal kopi av %s"
+msgstr "bruker lokal kop av %s"
-#: ../yum/__init__.py:1107
+#: ../yum/__init__.py:1061
#, python-format
msgid "Insufficient space in download directory %s to download"
msgstr "Det er ikke nok ledig plass i katalogen %s hvor pakkene blir lagret"
-#: ../yum/__init__.py:1140
+#: ../yum/__init__.py:1094
msgid "Header is not complete."
-msgstr "Filhode er ikke fullstendig."
+msgstr "Filhode er ikke komplett."
-#: ../yum/__init__.py:1180
+#: ../yum/__init__.py:1134
#, python-format
msgid ""
"Header not in local cache and caching-only mode enabled. Cannot download %s"
msgstr ""
-"Filhode er ikke tilgjengelig lokalt og mellomlager-modus er aktivert Kan "
-"ikke hente ned %s"
+"Filhode er ikke tilgjengelig lokalt og i vi er mellomlager-modes. Kan ikke "
+"hente ned %s"
-#: ../yum/__init__.py:1235
+#: ../yum/__init__.py:1189
#, python-format
msgid "Public key for %s is not installed"
msgstr "Offentlig nøkkel for %s er ikke lagt inn"
-#: ../yum/__init__.py:1239
+#: ../yum/__init__.py:1193
#, python-format
msgid "Problem opening package %s"
-msgstr "Problem ved åpning av pakke %s"
+msgstr "Kunne ved åpning av pakke %s"
-#: ../yum/__init__.py:1247
+#: ../yum/__init__.py:1201
#, python-format
msgid "Public key for %s is not trusted"
msgstr "Offentlig nøkkel %s er ikke til å stole på"
-#: ../yum/__init__.py:1251
+#: ../yum/__init__.py:1205
#, python-format
msgid "Package %s is not signed"
-msgstr "Pakken %s er ikke signert"
+msgstr "Pakka %s er ikke signert"
-#: ../yum/__init__.py:1289
+#: ../yum/__init__.py:1243
#, python-format
msgid "Cannot remove %s"
-msgstr "Kan ikke fjerne %s"
+msgstr "Kunne ikke fjern %s"
-#: ../yum/__init__.py:1292
+#: ../yum/__init__.py:1247
#, python-format
msgid "%s removed"
msgstr "%s fjernet"
-#: ../yum/__init__.py:1328
+#: ../yum/__init__.py:1283
#, python-format
msgid "Cannot remove %s file %s"
-msgstr "Kan ikke fjerne %s fra fil %s"
+msgstr "Kan ikke fjerne %s fra fila %s"
-#: ../yum/__init__.py:1331
+#: ../yum/__init__.py:1287
#, python-format
msgid "%s file %s removed"
-msgstr "%s fil %s er fjernet"
+msgstr "%s fila %s er fjernet"
-#: ../yum/__init__.py:1333
+#: ../yum/__init__.py:1289
#, python-format
msgid "%d %s files removed"
-msgstr "%d %s filer fjernet"
+msgstr "%d %s filer er fjernet"
-#: ../yum/__init__.py:1386
+#: ../yum/__init__.py:1329
#, python-format
msgid "More than one identical match in sack for %s"
-msgstr "Mer enn ett identisk passende treff i sekken %s"
+msgstr "Mer enn en identisk passende treff i sekken %s"
-#: ../yum/__init__.py:1391
+#: ../yum/__init__.py:1335
#, python-format
msgid "Nothing matches %s.%s %s:%s-%s from update"
msgstr "Ingenting passer %s.%s %s:%s-%s fra oppdatering"
-#: ../yum/__init__.py:1585
+#: ../yum/__init__.py:1543
msgid ""
"searchPackages() will go away in a future version of "
"Yum. Use searchGenerator() instead. \n"
@@ -1585,165 +1603,140 @@ msgstr ""
"searchPackages() vil forsvinne i en kommende utgave av Yum.\n"
"Bruk heller searchGenerator()\n"
-#: ../yum/__init__.py:1621
+#: ../yum/__init__.py:1580
#, python-format
msgid "Searching %d packages"
msgstr "Søker etter %d pakker"
-#: ../yum/__init__.py:1624
+#: ../yum/__init__.py:1584
#, python-format
msgid "searching package %s"
msgstr "søker etter pakke %s"
-#: ../yum/__init__.py:1635
+#: ../yum/__init__.py:1596
msgid "searching in file entries"
msgstr "søker i filoversikt"
-#: ../yum/__init__.py:1641
+#: ../yum/__init__.py:1603
msgid "searching in provides entries"
-msgstr "søker i oppføringer av tilbud"
+msgstr "søker i oppføringer av tilbydere"
-#: ../yum/__init__.py:1671
+#: ../yum/__init__.py:1633
#, python-format
msgid "Provides-match: %s"
msgstr "Tilbyder-treff: %s"
-#: ../yum/__init__.py:1717
-msgid "No group data available for configured repositories"
-msgstr "Ingen gruppedata tilgjengelig for konfigurerte pakkelager"
-
-#: ../yum/__init__.py:1743 ../yum/__init__.py:1762 ../yum/__init__.py:1788
-#: ../yum/__init__.py:1794 ../yum/__init__.py:1850 ../yum/__init__.py:1854
+#: ../yum/__init__.py:1702 ../yum/__init__.py:1720 ../yum/__init__.py:1748
+#: ../yum/__init__.py:1753 ../yum/__init__.py:1808 ../yum/__init__.py:1812
#, python-format
msgid "No Group named %s exists"
-msgstr "Det eksisterer ingen gruppe med navn %s "
+msgstr "Ikke gruppe med navn %s er tilgjengelig"
-#: ../yum/__init__.py:1773 ../yum/__init__.py:1866
+#: ../yum/__init__.py:1731 ../yum/__init__.py:1824
#, python-format
msgid "package %s was not marked in group %s"
-msgstr "pakke %s var ikke med i gruppe %s"
+msgstr "pakka %s var ikke med i gruppa %s"
-#: ../yum/__init__.py:1811
+#: ../yum/__init__.py:1770
#, python-format
msgid "Adding package %s from group %s"
msgstr "Legger til pakke %s fra gruppe %s"
-#: ../yum/__init__.py:1816
+#: ../yum/__init__.py:1774
#, python-format
msgid "No package named %s available to be installed"
msgstr "Ingen pakke med navn %s er tilgjendelig for installering"
-#: ../yum/__init__.py:1891
+#: ../yum/__init__.py:1849
#, python-format
msgid "Package tuple %s could not be found in packagesack"
msgstr "Pakke tuppel %s ble ikke funnet i sekken med pakker"
-#: ../yum/__init__.py:1959 ../yum/__init__.py:1999
+#: ../yum/__init__.py:1917 ../yum/__init__.py:1960
msgid "Invalid versioned dependency string, try quoting it."
msgstr ""
-"Den versjonerte strengen med avhengigheter er ugyldig, prøv å sette den i "
+"Den versjonerte strengen med avhengigheter er ugyldig, prøv og sette den i "
"anførelsestegn."
-#: ../yum/__init__.py:1961 ../yum/__init__.py:2001
+#: ../yum/__init__.py:1919 ../yum/__init__.py:1962
msgid "Invalid version flag"
msgstr "Ugyldig versjonsflagg"
-#: ../yum/__init__.py:1973 ../yum/__init__.py:1977
+#: ../yum/__init__.py:1934 ../yum/__init__.py:1938
#, python-format
msgid "No Package found for %s"
msgstr "Ingen pakke for %s er funnet"
-#: ../yum/__init__.py:2105
+#: ../yum/__init__.py:2066
msgid "Package Object was not a package object instance"
-msgstr "Pakkeobjekt var ikke en pakkeobjektinstans"
+msgstr "Pakkeobjekt var ikke en pakkeobjekt instans"
-#: ../yum/__init__.py:2109
+#: ../yum/__init__.py:2070
msgid "Nothing specified to install"
-msgstr "Ingenting oppgitt for installasjon"
+msgstr "Det ble ikke bedt om og installere noe som helst"
#. only one in there
-#: ../yum/__init__.py:2124
+#: ../yum/__init__.py:2085
#, python-format
msgid "Checking for virtual provide or file-provide for %s"
msgstr "Sjekker for virtuelle tilbydere eller tilbydere av filer for %s"
-#: ../yum/__init__.py:2130 ../yum/__init__.py:2446
+#: ../yum/__init__.py:2091 ../yum/__init__.py:2380
#, python-format
msgid "No Match for argument: %s"
-msgstr "Ingen treff for argument: %s"
+msgstr "Intet treff for argument: %s"
#. FIXME - this is where we could check to see if it already installed
#. for returning better errors
-#: ../yum/__init__.py:2185
+#: ../yum/__init__.py:2146
msgid "No package(s) available to install"
msgstr "Ingen pakke(r) er tilgjengelig for installering"
-#: ../yum/__init__.py:2198
+#: ../yum/__init__.py:2158
#, python-format
msgid "Package: %s - already in transaction set"
msgstr "Pakke: %s - allerede i transaksjonensettet"
-#: ../yum/__init__.py:2212
+#: ../yum/__init__.py:2171
#, python-format
msgid "Package %s already installed and latest version"
-msgstr "Pakke %s er allerede installert i siste versjon"
+msgstr "Pakke %s er allerede installert i siste og beste versjon"
-#: ../yum/__init__.py:2219
-#, python-format
-msgid "Package matching %s already installed. Checking for update."
-msgstr "Pakke med treff på %s er allerede lagt inn. Ser etter oppdatering"
-
-#: ../yum/__init__.py:2230
+#: ../yum/__init__.py:2178
#, fuzzy, python-format
-msgid "Package %s is obsoleted by %s, trying to install %s instead"
-msgstr ""
-"Pakka %s er ikke installert, så den kan ikke oppdateres. Bruk kommandoen yum "
-"install for å legge den inn."
+msgid "Package matching %s already installed. Checking for update."
+msgstr "Pakke %s er allerede lagt inn, hopper over"
#. update everything (the easy case)
-#: ../yum/__init__.py:2263
+#: ../yum/__init__.py:2220
msgid "Updating Everything"
msgstr "Oppdaterer alt"
-#: ../yum/__init__.py:2366
+#: ../yum/__init__.py:2304
#, python-format
msgid "Package is already obsoleted: %s.%s %s:%s-%s"
msgstr "Pakka er allerede foreldet: %s.%s %s:%s-%s"
-#: ../yum/__init__.py:2390
-#, fuzzy, python-format
-msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s"
-msgstr "Vil ikke oppdatere pakke som allerede er foreldet: %s.%s %s:%s-%s"
-
-#: ../yum/__init__.py:2443
+#: ../yum/__init__.py:2377
#, python-format
msgid "%s"
msgstr "%s"
-#. FIXME we should give the caller some nice way to hush this warning
-#. probably just a kwarg of 'silence_warnings' or something
-#. b/c when this is called from groupRemove() it makes a lot of
-#. garbage noise
-#: ../yum/__init__.py:2462
+#: ../yum/__init__.py:2392
msgid "No package matched to remove"
msgstr "Kunne ikke finne noen passende pakke for fjerning"
-#: ../yum/__init__.py:2496
+#: ../yum/__init__.py:2426
#, python-format
msgid "Cannot open file: %s. Skipping."
msgstr "Kunne ikke åpne fil: %s. Hopper over."
-#: ../yum/__init__.py:2498
+#: ../yum/__init__.py:2429
#, python-format
msgid "Examining %s: %s"
-msgstr "Undersøker: %s: %s"
-
-#: ../yum/__init__.py:2504
-#, python-format
-msgid "Cannot add package %s to transaction. Not a compatible architecture: %s"
-msgstr ""
+msgstr "Gransker: %s: %s"
-#: ../yum/__init__.py:2512
+#: ../yum/__init__.py:2436
#, python-format
msgid ""
"Package %s not installed, cannot update it. Run yum install to install it "
@@ -1752,77 +1745,77 @@ msgstr ""
"Pakka %s er ikke installert, så den kan ikke oppdateres. Bruk kommandoen yum "
"install for å legge den inn."
-#: ../yum/__init__.py:2545
+#: ../yum/__init__.py:2468
#, python-format
msgid "Excluding %s"
msgstr "Ekskluderer %s"
-#: ../yum/__init__.py:2549
+#: ../yum/__init__.py:2473
#, python-format
msgid "Marking %s to be installed"
msgstr "Setter av %s for kommende installering"
-#: ../yum/__init__.py:2554
+#: ../yum/__init__.py:2479
#, python-format
msgid "Marking %s as an update to %s"
msgstr "Setter av %s som en oppdatering av %s"
-#: ../yum/__init__.py:2559
+#: ../yum/__init__.py:2486
#, python-format
msgid "%s: does not update installed package."
msgstr "%s: vil ikke oppdatere installert pakke."
-#: ../yum/__init__.py:2576
+#: ../yum/__init__.py:2504
msgid "Problem in reinstall: no package matched to remove"
msgstr "Problem ved reinstall: kunne ikke finne passende pakke og fjerne"
-#: ../yum/__init__.py:2587
+#: ../yum/__init__.py:2515
#, fuzzy, python-format
msgid "Package %s is allowed multiple installs, skipping"
msgstr "Pakke %s er allerede lagt inn, hopper over"
-#: ../yum/__init__.py:2594
+#: ../yum/__init__.py:2522
msgid "Problem in reinstall: no package matched to install"
msgstr "Problem ved reinstall: kunne ikke finne passende pakke og installere "
-#: ../yum/__init__.py:2641
+#: ../yum/__init__.py:2570
#, python-format
msgid "Retrieving GPG key from %s"
msgstr "Henter GPG-nøkkel fra %s"
-#: ../yum/__init__.py:2647
+#: ../yum/__init__.py:2576
msgid "GPG key retrieval failed: "
msgstr "Henting av GPG-nøkkel feilet: "
-#: ../yum/__init__.py:2663
+#: ../yum/__init__.py:2589
msgid "GPG key parsing failed: "
msgstr "Analyse av GPG-nøkkel feilet: "
-#: ../yum/__init__.py:2667
+#: ../yum/__init__.py:2593
#, python-format
msgid "GPG key at %s (0x%s) is already installed"
msgstr "GPG-nøkkel ved %s (0x%s) er allerede lagt inn"
#. Try installing/updating GPG key
-#: ../yum/__init__.py:2672
+#: ../yum/__init__.py:2598
#, python-format
msgid "Importing GPG key 0x%s \"%s\" from %s"
msgstr "Legger inn GPG-nøkkel 0x%s \"%s\" fra %s"
-#: ../yum/__init__.py:2685
+#: ../yum/__init__.py:2610
msgid "Not installing key"
msgstr "Legger ikke inn nøkkel"
-#: ../yum/__init__.py:2691
+#: ../yum/__init__.py:2616
#, python-format
msgid "Key import failed (code %d)"
msgstr "Import av nøkkel feilet (kode %d)"
-#: ../yum/__init__.py:2694
+#: ../yum/__init__.py:2619
msgid "Key imported successfully"
msgstr "Nøkler ble lagt inn med suksess"
-#: ../yum/__init__.py:2699
+#: ../yum/__init__.py:2624
#, python-format
msgid ""
"The GPG keys listed for the \"%s\" repository are already installed but they "
@@ -1834,79 +1827,74 @@ msgstr ""
"Sjekk at korrekt URL (gpgkey opsjonen) er oppgitt for denne\n"
"pakkeoversikten."
-#: ../yum/__init__.py:2708
+#: ../yum/__init__.py:2633
msgid "Import of key(s) didn't help, wrong key(s)?"
msgstr "Import av nøkler hjalp ikke, feil nøkler?"
-#: ../yum/__init__.py:2789
+#: ../yum/__init__.py:2707
msgid "Unable to find a suitable mirror."
msgstr "Kunne ikke finne passende filspeil"
-#: ../yum/__init__.py:2791
+#: ../yum/__init__.py:2709
msgid "Errors were encountered while downloading packages."
msgstr "Det oppstod feil ved nedlastning av pakker."
-#: ../yum/__init__.py:2854
+#: ../yum/__init__.py:2774
msgid "Test Transaction Errors: "
msgstr "Feil ved testtransaksjon: "
#. Mostly copied from YumOutput._outKeyValFill()
-#: ../yum/plugins.py:197
+#: ../yum/plugins.py:195
msgid "Loaded plugins: "
msgstr "Tillegg som er i bruk:"
-#: ../yum/plugins.py:208
+#: ../yum/plugins.py:206
#, fuzzy, python-format
msgid "No plugin match for: %s"
msgstr "Intet treff for argument: %s"
-#: ../yum/plugins.py:221
+#: ../yum/plugins.py:219
#, python-format
msgid "\"%s\" plugin is disabled"
msgstr "Tillegg: %s er ikke aktiv."
-#: ../yum/plugins.py:233
+#: ../yum/plugins.py:231
#, python-format
msgid "Plugin \"%s\" doesn't specify required API version"
msgstr "Tillegg \"%s\" tilfredstiller ikke versjonskravene fra Yum."
-#: ../yum/plugins.py:237
+#: ../yum/plugins.py:235
#, python-format
msgid "Plugin \"%s\" requires API %s. Supported API is %s."
msgstr "Tillegg \"%s\" krever API versjon: %s. Men støttet API versjon er %s."
-#: ../yum/plugins.py:266
+#: ../yum/plugins.py:264
#, python-format
msgid "Loading \"%s\" plugin"
msgstr "Laster tillegg \"%s\""
-#: ../yum/plugins.py:273
+#: ../yum/plugins.py:271
#, python-format
msgid ""
"Two or more plugins with the name \"%s\" exist in the plugin search path"
-msgstr "Det finnes to eller flere tillegg med navn «%s» i søkestien for tillegg"
+msgstr "To eller flere tillegg har samme navn."
-#: ../yum/plugins.py:293
+#: ../yum/plugins.py:291
#, python-format
msgid "Configuration file %s not found"
msgstr "Konfigurasjonsfila %s ble ikke funnet"
#. for
#. Configuration files for the plugin not found
-#: ../yum/plugins.py:296
+#: ../yum/plugins.py:294
#, python-format
msgid "Unable to find configuration file for plugin %s"
msgstr "Kunne ikke finne konfigurasjon for tillegg %s"
-#: ../yum/plugins.py:450
+#: ../yum/plugins.py:448
msgid "registration of commands not supported"
msgstr "registering av kommandoer er ikke støttet"
-#: ../yum/rpmtrans.py:78
-#, fuzzy
-msgid "Repackaging"
-msgstr "Pakker på nytt"
-
#: ../rpmUtils/oldUtils.py:26
#, python-format
msgid "Header cannot be opened or does not match %s, %s."
@@ -1936,33 +1924,6 @@ msgstr "Filhode til %s er ødelagt"
msgid "Error opening rpm %s - error %s"
msgstr "Kunne ikke åpen rpm pakke %s - feilen er %s"
-#~ msgid "Searching pkgSack for dep: %s"
-#~ msgstr "Søker i pkgSack etter avhengighet: %s"
-
-#~ msgid "Potential match for %s from %s"
-#~ msgstr "Potensielt treff for %s i %s"
-
-#~ msgid "Matched %s to require for %s"
-#~ msgstr "Passende %s for å tilfredstille %s"
-
-#~ msgid "Needed Require has already been looked up, cheating"
-#~ msgstr "Nødvendig avhengighet har allerede blitt plukket opp, jukser"
-
-#~ msgid "Needed Require is not a package name. Looking up: %s"
-#~ msgstr "Nødvendig avhengighet er ikke et navn på pakke. Ser etter: %s"
-
-#~ msgid "Potential Provider: %s"
-#~ msgstr "Potensiell tilbyder: %s"
-
-#~ msgid "Mode is %s for provider of %s: %s"
-#~ msgstr "Modus er %s for tilbyder av %s: %s"
-
-#~ msgid "Mode for pkg providing %s: %s"
-#~ msgstr "Modus for pakke som tilbyr %s: %s"
-
-#~ msgid "Unresolvable requirement %s for %s"
-#~ msgstr "Avhengighet %s kan ikke løses opp: %s"
-
#~ msgid "Looking for Obsoletes for %s"
#~ msgstr "Leter opp informasjon utgåtte pakker for %s"
commit eac42df07f91bdce3e65633d9b18d9aa61877bd8
Author: James Antill <james at and.org>
Date: Fri Nov 21 09:41:38 2008 -0500
Fix the color config. option to work the same as the --color cmd line opt.
diff --git a/cli.py b/cli.py
index e13d48d..c0fc920 100644
--- a/cli.py
+++ b/cli.py
@@ -1114,7 +1114,9 @@ class YumOptionParser(OptionParser):
self.base.term.reinit(color=self.base.conf.color)
else:
_remap = {'tty' : 'auto', 'if-tty' : 'auto',
+ '1' : 'always', 'true' : 'always',
'yes' : 'always', 'on' : 'always',
+ '0' : 'always', 'false' : 'always',
'no' : 'never', 'off' : 'never'}
opts.color = _remap.get(opts.color, opts.color)
if opts.color != 'auto':
diff --git a/yum/config.py b/yum/config.py
index 700b49a..ffd70b3 100644
--- a/yum/config.py
+++ b/yum/config.py
@@ -670,8 +670,11 @@ class YumConf(StartupConf):
bugtracker_url = Option('http://yum.baseurl.org/report')
color = SelectionOption('auto', ('auto', 'never', 'always'),
- mapper={'on' : 'always',
- 'off' : 'nevern'})
+ mapper={'on' : 'always', 'yes' : 'always',
+ '1' : 'always', 'true' : 'always',
+ 'off' : 'never', 'no' : 'never',
+ '0' : 'never', 'false' : 'never',
+ 'tty' : 'auto', 'if-tty' : 'auto'})
color_list_installed_older = Option('bold')
color_list_installed_newer = Option('bold,yellow')
color_list_installed_extra = Option('bold,red')
commit 71d1ee2ce8071d3605d2b8ab903a509e3125988c
Author: James Antill <james at and.org>
Date: Fri Nov 21 09:40:12 2008 -0500
Add documentation for all the color* config. options
diff --git a/docs/yum.conf.5 b/docs/yum.conf.5
index 8171455..901f6b4 100644
--- a/docs/yum.conf.5
+++ b/docs/yum.conf.5
@@ -309,6 +309,55 @@ if it is available. Best means install the best arch for this platform, only.
Url where bugs should be filed for yum. Configurable for local versions or distro-specific
bugtrackers.
+.IP \fBcolor \fR
+Display colorized output automatically, depending on the output terminal,
+always (using ANSI codes) or never.
+Command-line option: \fB\-\-color\fP
+
+.IP \fBcolor_list_installed_older \fR
+The colorization/highlighting for pacakges in list/info installed which are
+older than the latest available package with the same name and arch.
+Default is `bold'.
+Possible values are a comma seperated list containing: bold, blink, dim,
+reverse, underline, fg:black, fg:red, fg:green, fg:yellow, fg:blue, fg:magenta,
+fg:cyan, fg:white, bg:black, bg:red, bg:green, bg:yellow, bg:blue, bg:magenta,
+bg:cyan, bg:white.
+
+.IP \fBcolor_list_installed_newer \fR
+The colorization/highlighting for pacakges in list/info installed which are
+newer than the latest available package with the same name and arch.
+Default is `bold,yellow'.
+See color_list_installed_older for possible values.
+
+.IP \fBcolor_list_installed_extra \fR
+The colorization/highlighting for pacakges in list/info installed which has
+no available package with the same name and arch.
+Default is `bold,red'.
+See color_list_installed_older for possible values.
+
+.IP \fBcolor_list_available_upgrade \fR
+The colorization/highlighting for pacakges in list/info available which is
+an upgrade for the latest installed package with the same name and arch.
+Default is `bold,blue'.
+See color_list_installed_older for possible values.
+
+.IP \fBcolor_list_available_downgrade \fR
+The colorization/highlighting for pacakges in list/info available which is
+a downgrade for the latest installed package with the same name and arch.
+Default is `dim,cyan'.
+See color_list_installed_older for possible values.
+
+.IP \fBcolor_list_available_install \fR
+The colorization/highlighting for pacakges in list/info available which has
+no installed package with the same name and arch.
+Default is `normal'.
+See color_list_installed_older for possible values.
+
+.IP \fBcolor_search_match \fR
+The colorization/highlighting for text matches in search.
+Default is `bold'.
+See color_list_installed_older for possible values.
+
.SH "[repository] OPTIONS"
.LP
The repository section(s) take the following form:
commit 73d7c2561b7b3758d1afde8f21b55a7e6ae3f361
Author: James Antill <james at and.org>
Date: Fri Nov 21 09:39:49 2008 -0500
Add documentation for the --color option
diff --git a/docs/yum.8 b/docs/yum.8
index 4ebd19d..641899d 100644
--- a/docs/yum.8
+++ b/docs/yum.8
@@ -262,6 +262,11 @@ Configuration Option: \fBobsoletes\fP
Exclude a specific package by name or glob from updates on all repositories.
Configuration Option: \fBexclude\fP
.br
+.IP "\fB\-\-color=[always|auto|never]\fP"
+Display colorized output automatically, depending on the output terminal,
+always (using ANSI codes) or never.
+Configuration Option: \fBcolor\fP
+.br
.IP "\fB\-\-disableexcludes=[all|main|repoid]\fP"
Disable the excludes defined in your config files. Takes one of three options:
.br
commit e69f206df701a37716a48ea04cbc1c08f1f0c95c
Author: James Antill <james at and.org>
Date: Fri Nov 21 09:39:32 2008 -0500
Minor opt. for no highlighting
diff --git a/output.py b/output.py
index 81b22ca..4f7a6cf 100755
--- a/output.py
+++ b/output.py
@@ -323,6 +323,8 @@ class YumOutput:
pass
elif not isinstance(highlight, basestring) or highlight == 'bold':
hibeg = self.term.MODE['bold']
+ elif highlight == 'normal':
+ pass # Minor opt.
else:
# Turn a string into a specific output: colour, bold, etc.
for high in highlight.replace(',', ' ').split():
commit e62fbe4cd187fc47d93872e5902f7bae26638de7
Author: James Antill <james at and.org>
Date: Fri Nov 21 00:14:37 2008 -0500
Use highlighting config. in groupinfo -v
diff --git a/output.py b/output.py
index d07d0cb..81b22ca 100755
--- a/output.py
+++ b/output.py
@@ -686,8 +686,14 @@ class YumOutput:
continue
for (apkg, ipkg) in sorted(pkg_names2pkgs[item],
key=lambda x: x[1] or x[0]):
+ if ipkg and apkg:
+ highlight = self.conf.color_list_installed_older
+ elif apkg:
+ highlight = self.conf.color_list_available_install
+ else:
+ highlight = False
self.simpleEnvraList(ipkg or apkg, ui_overflow=True,
- indent=indent, highlight=ipkg and apkg,
+ indent=indent, highlight=highlight,
columns=columns)
def displayPkgsInGroups(self, group):
commit 6707f479bb37b8f45a246a04d209ca37b967d492
Author: James Antill <james at and.org>
Date: Thu Nov 20 19:51:43 2008 -0500
Fix search highlighting to ignore case, allow configurable highlight
diff --git a/output.py b/output.py
index 87bb3c7..d07d0cb 100755
--- a/output.py
+++ b/output.py
@@ -250,7 +250,7 @@ class YumTerm:
cap = self._ctigetstr(cap_name) or ''
return re.sub(r'\$<\d+>[/*]?', '', cap)
- def sub(self, haystack, beg, end, needles, escape=None):
+ def sub(self, haystack, beg, end, needles, escape=None, ignore_case=False):
if not self.__enabled:
return haystack
@@ -259,7 +259,10 @@ class YumTerm:
render = lambda match: beg + match.group() + end
for needle in needles:
- haystack = re.sub(escape(needle), render, haystack)
+ pat = escape(needle)
+ if ignore_case:
+ pat = re.template(pat, re.I)
+ haystack = re.sub(pat, render, haystack)
return haystack
def sub_norm(self, haystack, beg, needles, **kwds):
return self.sub(haystack, beg, self.MODE['normal'], needles, **kwds)
@@ -268,7 +271,7 @@ class YumTerm:
return self.sub_norm(haystack, self.MODE[mode], needles, **kwds)
def sub_bold(self, haystack, needles, **kwds):
- return self.sub_mode(haystack, 'bold', needles)
+ return self.sub_mode(haystack, 'bold', needles, **kwds)
def sub_fg(self, haystack, color, needles, **kwds):
return self.sub_norm(haystack, self.FG_COLOR[color], needles, **kwds)
@@ -341,6 +344,10 @@ class YumOutput:
hiend = self.term.MODE['normal']
return (hibeg, hiend)
+ def _sub_highlight(self, haystack, highlight, needles, **kwds):
+ hibeg, hiend = self._highlight(highlight)
+ return self.term.sub(haystack, hibeg, hiend, needles, **kwds)
+
@staticmethod
def _calc_columns_spaces_helps(current, data_tups, left):
""" Spaces left on the current field will help how many pkgs? """
@@ -775,7 +782,8 @@ class YumOutput:
def format_time(seconds, use_hours=0):
return urlgrabber.progress.format_time(seconds, use_hours)
- def matchcallback(self, po, values, matchfor=None, verbose=None):
+ def matchcallback(self, po, values, matchfor=None, verbose=None,
+ highlight=None):
""" Output search/provides type callback matches. po is the pkg object,
values are the things in the po that we've matched.
If matchfor is passed, all the strings in that list will be
@@ -788,7 +796,9 @@ class YumOutput:
msg = '%s.%s : ' % (po.name, po.arch)
msg = self.fmtKeyValFill(msg, self._enc(po.summary))
if matchfor:
- msg = self.term.sub_bold(msg, matchfor)
+ if highlight is None:
+ highlight = self.conf.color_search_match
+ msg = self._sub_highlight(msg, highlight, matchfor,ignore_case=True)
print msg
@@ -822,7 +832,8 @@ class YumOutput:
key = _("Other : ")
if matchfor:
- item = self.term.sub_bold(item, matchfor)
+ item = self._sub_highlight(item, highlight, matchfor,
+ ignore_case=True)
if can_overflow:
print self.fmtKeyValFill(key, item)
else:
diff --git a/yum/config.py b/yum/config.py
index b1ad657..700b49a 100644
--- a/yum/config.py
+++ b/yum/config.py
@@ -679,6 +679,8 @@ class YumConf(StartupConf):
color_list_available_upgrade = Option('bold,blue')
color_list_available_downgrade = Option('dim,cyan')
color_list_available_install = Option('normal')
+
+ color_search_match = Option('bold')
_reposlist = []
commit c495c1c37d2f70932b71ea897f7b05974e3d8a76
Author: James Antill <james at and.org>
Date: Thu Nov 20 16:58:31 2008 -0500
Make list color programable, so Seth can have blink :).
Allow color to be turned off/on al. la. GNU cmd line (plus .conf).
Add hilight data for fmtColumns().
Add prefix/suffix arguments for utf8_width_fill().
diff --git a/cli.py b/cli.py
index 13a2bfa..e13d48d 100644
--- a/cli.py
+++ b/cli.py
@@ -1106,6 +1106,20 @@ class YumOptionParser(OptionParser):
if opts.showdupesfromrepos:
self.base.conf.showdupesfromrepos = True
+ if opts.color not in (None, 'auto', 'always', 'never',
+ 'tty', 'if-tty', 'yes', 'no', 'on', 'off'):
+ raise ValueError, _("--color takes one of: auto, always, never")
+ elif opts.color is None:
+ if self.base.conf.color != 'auto':
+ self.base.term.reinit(color=self.base.conf.color)
+ else:
+ _remap = {'tty' : 'auto', 'if-tty' : 'auto',
+ 'yes' : 'always', 'on' : 'always',
+ 'no' : 'never', 'off' : 'never'}
+ opts.color = _remap.get(opts.color, opts.color)
+ if opts.color != 'auto':
+ self.base.term.reinit(color=opts.color)
+
if opts.disableexcludes:
disable_excludes = self._splitArg(opts.disableexcludes)
else:
@@ -1251,6 +1265,8 @@ class YumOptionParser(OptionParser):
metavar='[plugin]')
self.add_option("--skip-broken", action="store_true", dest="skipbroken",
help=_("skip packages with depsolving problems"))
+ self.add_option("", "--color", dest="color", default=None,
+ help=_("control whether color is used"))
diff --git a/output.py b/output.py
index a5504c9..87bb3c7 100755
--- a/output.py
+++ b/output.py
@@ -76,42 +76,7 @@ class YumTerm:
__enabled = True
if hasattr(urlgrabber.progress, 'terminal_width_cached'):
- columns = property(lambda self: _term_width())
- else:
- columns = 80
- lines = 24
- # Output modes:
- MODE = {
- 'bold' : '',
- 'blink' : '',
- 'dim' : '',
- 'reverse' : '',
- 'underline' : '',
- 'normal' : ''
- }
-
- # Colours
- FG_COLOR = {
- 'black' : '',
- 'blue' : '',
- 'green' : '',
- 'cyan' : '',
- 'red' : '',
- 'magenta' : '',
- 'yellow' : '',
- 'white' : ''
- }
-
- BG_COLOR = {
- 'black' : '',
- 'blue' : '',
- 'green' : '',
- 'cyan' : '',
- 'red' : '',
- 'magenta' : '',
- 'yellow' : '',
- 'white' : ''
- }
+ __auto_columns = property(lambda self: _term_width())
__cap_names = {
'underline' : 'smul',
@@ -139,8 +104,90 @@ class YumTerm:
'cyan' : 6,
'white' : 7
}
+ __ansi_forced_MODE = {
+ 'bold' : '\x1b[1m',
+ 'blink' : '\x1b[5m',
+ 'dim' : '',
+ 'reverse' : '\x1b[7m',
+ 'underline' : '\x1b[4m',
+ 'normal' : '\x1b(B\x1b[m'
+ }
+ __ansi_forced_FG_COLOR = {
+ 'black' : '\x1b[30m',
+ 'red' : '\x1b[31m',
+ 'green' : '\x1b[32m',
+ 'yellow' : '\x1b[33m',
+ 'blue' : '\x1b[34m',
+ 'magenta' : '\x1b[35m',
+ 'cyan' : '\x1b[36m',
+ 'white' : '\x1b[37m'
+ }
+ __ansi_forced_BG_COLOR = {
+ 'black' : '\x1b[40m',
+ 'red' : '\x1b[41m',
+ 'green' : '\x1b[42m',
+ 'yellow' : '\x1b[43m',
+ 'blue' : '\x1b[44m',
+ 'magenta' : '\x1b[45m',
+ 'cyan' : '\x1b[46m',
+ 'white' : '\x1b[47m'
+ }
+
+ def __forced_init(self):
+ self.MODE = self.__ansi_forced_MODE
+ self.FG_COLOR = self.__ansi_forced_FG_COLOR
+ self.BG_COLOR = self.__ansi_forced_BG_COLOR
+
+ def reinit(self, term_stream=None, color='auto'):
+ if color == 'never':
+ self.__enabled = False
+ return
+
+ self.__enabled = True
+ if hasattr(urlgrabber.progress, 'terminal_width_cached'):
+ self.columns = self.__auto_columns
+ else:
+ self.columns = 80
+ self.lines = 24
+
+ if color == 'always':
+ self.__forced_init()
+ return
+ assert color == 'auto'
+
+ # Output modes:
+ self.MODE = {
+ 'bold' : '',
+ 'blink' : '',
+ 'dim' : '',
+ 'reverse' : '',
+ 'underline' : '',
+ 'normal' : ''
+ }
+
+ # Colours
+ self.FG_COLOR = {
+ 'black' : '',
+ 'blue' : '',
+ 'green' : '',
+ 'cyan' : '',
+ 'red' : '',
+ 'magenta' : '',
+ 'yellow' : '',
+ 'white' : ''
+ }
+
+ self.BG_COLOR = {
+ 'black' : '',
+ 'blue' : '',
+ 'green' : '',
+ 'cyan' : '',
+ 'red' : '',
+ 'magenta' : '',
+ 'yellow' : '',
+ 'white' : ''
+ }
- def __init__(self, term_stream=None):
# Curses isn't available on all platforms
try:
import curses
@@ -166,7 +213,7 @@ class YumTerm:
if not hasattr(urlgrabber.progress, 'terminal_width_cached'):
self.columns = curses.tigetnum('cols')
- self.lines = curses.tigetnum('lines')
+ self.lines = curses.tigetnum('lines')
# Look up string capabilities.
for cap_name in self.MODE:
@@ -193,6 +240,9 @@ class YumTerm:
for (color, val) in self.__ansi_colors.items():
self.BG_COLOR[color] = curses.tparm(set_bg_ansi, val) or ''
+ def __init__(self, term_stream=None, color='auto'):
+ self.reinit(term_stream, color)
+
def _tigetstr(self, cap_name):
# String capabilities can include "delays" of the form "$<2>".
# For any modern terminal, we should be able to just ignore
@@ -359,12 +409,24 @@ class YumOutput:
return (u"-", -width)
return (u"", width)
+ def _col_data(self, col_data):
+ assert len(col_data) == 2 or len(col_data) == 3
+ if len(col_data) == 2:
+ (val, width) = col_data
+ hibeg = hiend = ''
+ if len(col_data) == 3:
+ (val, width, highlight) = col_data
+ (hibeg, hiend) = self._highlight(highlight)
+ return (val, width, hibeg, hiend)
+
def fmtColumns(self, columns, msg=u'', end=u''):
""" Return a string for columns of data, which can overflow."""
total_width = len(msg)
data = []
- for (val, width) in columns[:-1]:
+ for col_data in columns[:-1]:
+ (val, width, hibeg, hiend) = self._col_data(col_data)
+
if not width: # Don't count this column, invisible text
msg += u"%s"
data.append(val)
@@ -373,15 +435,18 @@ class YumOutput:
(align, width) = self._fmt_column_align_width(width)
if utf8_width(val) <= width:
msg += u"%s "
- val = utf8_width_fill(val, width, left=(align == u'-'))
+ val = utf8_width_fill(val, width, left=(align == u'-'),
+ prefix=hibeg, suffix=hiend)
+ data.append(val)
else:
- msg += u"%s\n" + " " * (total_width + width + 1)
+ msg += u"%s%s%s\n" + " " * (total_width + width + 1)
+ data.extend([hibeg, val, hiend])
total_width += width
total_width += 1
- data.append(val)
- (val, width) = columns[-1]
+ (val, width, hibeg, hiend) = self._col_data(columns[-1])
(align, width) = self._fmt_column_align_width(width)
- val = utf8_width_fill(val, width, left=(align == u'-'))
+ val = utf8_width_fill(val, width, left=(align == u'-'),
+ prefix=hibeg, suffix=hiend)
msg += u"%%s%s" % end
data.append(val)
return msg % tuple(data)
@@ -392,12 +457,10 @@ class YumOutput:
if columns is None:
columns = (-40, -22, -16) # Old default
- (hibeg, hiend) = self._highlight(highlight)
ver = pkg.printVer()
na = '%s%s.%s' % (indent, pkg.name, pkg.arch)
- columns = zip((na, ver, pkg.repoid), columns)
- columns.insert(1, (hiend, 0))
- columns.insert(0, (hibeg, 0))
+ hi_cols = [highlight, 'normal', 'normal']
+ columns = zip((na, ver, pkg.repoid), columns, hi_cols)
print self.fmtColumns(columns)
def simpleEnvraList(self, pkg, ui_overflow=False,
@@ -407,11 +470,9 @@ class YumOutput:
if columns is None:
columns = (-63, -16) # Old default
- (hibeg, hiend) = self._highlight(highlight)
envra = '%s%s' % (indent, str(pkg))
- columns = zip((envra, pkg.repoid), columns)
- columns.insert(1, (hiend, 0))
- columns.insert(0, (hibeg, 0))
+ hi_cols = [highlight, 'normal', 'normal']
+ columns = zip((envra, pkg.repoid), columns, hi_cols)
print self.fmtColumns(columns)
def fmtKeyValFill(self, key, val):
diff --git a/yum/config.py b/yum/config.py
index cb7e726..b1ad657 100644
--- a/yum/config.py
+++ b/yum/config.py
@@ -668,6 +668,17 @@ class YumConf(StartupConf):
# best == use the 'best arch' for the system
bugtracker_url = Option('http://yum.baseurl.org/report')
+
+ color = SelectionOption('auto', ('auto', 'never', 'always'),
+ mapper={'on' : 'always',
+ 'off' : 'nevern'})
+ color_list_installed_older = Option('bold')
+ color_list_installed_newer = Option('bold,yellow')
+ color_list_installed_extra = Option('bold,red')
+
+ color_list_available_upgrade = Option('bold,blue')
+ color_list_available_downgrade = Option('dim,cyan')
+ color_list_available_install = Option('normal')
_reposlist = []
diff --git a/yum/i18n.py b/yum/i18n.py
index 2d50e74..bcc895e 100755
--- a/yum/i18n.py
+++ b/yum/i18n.py
@@ -241,7 +241,7 @@ def utf8_width_chop(msg, chop=None):
return ret, msg
-def utf8_width_fill(msg, fill, chop=None, left=True):
+def utf8_width_fill(msg, fill, chop=None, left=True, prefix='', suffix=''):
""" Expand a utf8 msg to a specified "width" or chop to same.
Expansion can be left or right. This is what you want to use instead of
%*.*s, as it does the "right" thing with regard to utf-8 sequences.
@@ -260,9 +260,9 @@ def utf8_width_fill(msg, fill, chop=None, left=True):
if width < fill:
extra = " " * (fill - width)
if left:
- msg = ''.join([msg, extra])
+ msg = ''.join([prefix, msg, suffix, extra])
else:
- msg = ''.join([extra, msg])
+ msg = ''.join([extra, prefix, msg, suffix])
if isinstance(passed_msg, unicode):
return to_unicode(msg)
diff --git a/yumcommands.py b/yumcommands.py
index cc6b387..3783292 100644
--- a/yumcommands.py
+++ b/yumcommands.py
@@ -272,15 +272,20 @@ class InfoCommand(YumCommand):
inst_pkgs[key] = pkg
# Output the packages:
+ clio = base.conf.color_list_installed_older
+ clin = base.conf.color_list_installed_newer
+ clie = base.conf.color_list_installed_extra
rip = base.listPkgs(ypl.installed, _('Installed Packages'), basecmd,
highlight_na=update_pkgs, columns=columns,
- highlight_modes={'>' : 'bold',
- '<' : 'bold,yellow',
- 'not in' : 'red,bold'})
+ highlight_modes={'>' : clio, '<' : clin,
+ 'not in' : clie})
+ clau = base.conf.color_list_available_upgrade
+ clad = base.conf.color_list_available_downgrade
+ clai = base.conf.color_list_available_install
rap = base.listPkgs(ypl.available, _('Available Packages'), basecmd,
highlight_na=inst_pkgs, columns=columns,
- highlight_modes={'<' : 'bold,blue',
- '>' : 'cyan,dim'})
+ highlight_modes={'<' : clau, '>' : clad,
+ 'not in' : clai})
rep = base.listPkgs(ypl.extras, _('Extra Packages'), basecmd,
columns=columns)
rup = base.listPkgs(ypl.updates, _('Updated Packages'), basecmd,
commit 7c37027cfb0d1ea2a49ec0b92d743d0d2f3df70c
Author: James Antill <james at and.org>
Date: Thu Nov 20 11:26:04 2008 -0500
Use to_utf8 for changelog data
diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index 7ff7d9a..76c9a41 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -34,7 +34,7 @@ import sqlutils
import constants
import operator
import time
-from yum.misc import seq_max_split
+from yum.misc import seq_max_split, to_utf8
def catchSqliteException(func):
"""This decorator converts sqlite exceptions into RepoError"""
@@ -205,8 +205,8 @@ class YumAvailablePackageSqlite(YumAvailablePackage, PackageObject, RpmBase):
# Failure mode is much less of a problem.
for ob in cur:
c_date = ob['date']
- c_author = ob['author'].encode('utf-8', 'replace')
- c_log = ob['changelog'].encode('utf-8', 'replace')
+ c_author = to_utf8(ob['author'])
+ c_log = to_utf8(ob['changelog'])
result.append((c_date, _share_data(c_author), c_log))
self._changelog = result
return
commit 6f58a52cb569810ae2057dc3588f0be3a4108e8e
Author: James Antill <james at and.org>
Date: Thu Nov 20 11:06:03 2008 -0500
Deal with utf8 in licenses! Given it's there just shoot everything with it
diff --git a/output.py b/output.py
index d2c2ec5..a5504c9 100755
--- a/output.py
+++ b/output.py
@@ -443,8 +443,7 @@ class YumOutput:
def _enc(self, s):
"""Get the translated version from specspo and ensure that
it's actually encoded in UTF-8."""
- if type(s) == unicode:
- s = s.encode("UTF-8")
+ s = to_utf8(s)
if len(s) > 0:
for d in self.i18ndomains:
t = gettext.dgettext(d, s)
@@ -455,24 +454,24 @@ class YumOutput:
def infoOutput(self, pkg, highlight=False):
(hibeg, hiend) = self._highlight(highlight)
- print _("Name : %s%s%s") % (hibeg, pkg.name, hiend)
- print _("Arch : %s") % pkg.arch
+ print _("Name : %s%s%s") % (hibeg, to_unicode(pkg.name), hiend)
+ print _("Arch : %s") % to_unicode(pkg.arch)
if pkg.epoch != "0":
- print _("Epoch : %s") % pkg.epoch
- print _("Version : %s") % pkg.version
- print _("Release : %s") % pkg.release
+ print _("Epoch : %s") % to_unicode(pkg.epoch)
+ print _("Version : %s") % to_unicode(pkg.version)
+ print _("Release : %s") % to_unicode(pkg.release)
print _("Size : %s") % self.format_number(float(pkg.size))
- print _("Repo : %s") % pkg.repoid
+ print _("Repo : %s") % to_unicode(pkg.repoid)
if self.verbose_logger.isEnabledFor(logginglevels.DEBUG_3):
- print _("Committer : %s") % pkg.committer
+ print _("Committer : %s") % to_unicode(pkg.committer)
print _("Committime : %s") % time.ctime(pkg.committime)
print _("Buildtime : %s") % time.ctime(pkg.buildtime)
if hasattr(pkg, 'installtime'):
print _("Installtime: %s") % time.ctime(pkg.installtime)
print self.fmtKeyValFill(_("Summary : "), self._enc(pkg.summary))
if pkg.url:
- print _("URL : %s") % pkg.url
- print _("License : %s") % pkg.license
+ print _("URL : %s") % to_unicode(pkg.url)
+ print _("License : %s") % to_unicode(pkg.license)
print self.fmtKeyValFill(_("Description: "), self._enc(pkg.description))
print ""
commit bc04865e5f6534a2bbbdcf5887dcfd5520e5d6db
Author: James Antill <james at and.org>
Date: Thu Nov 20 01:03:54 2008 -0500
Add sections for entering/leaving rpm code
diff --git a/cli.py b/cli.py
index fbbbb59..13a2bfa 100644
--- a/cli.py
+++ b/cli.py
@@ -398,6 +398,8 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
if self.gpgsigcheck(downloadpkgs) != 0:
return 1
+ self.verbose_logger.log(yum.logginglevels.INFO_2,
+ self.fmtSection(_("Entering rpm code")))
if self.conf.rpm_check_debug:
rcd_st = time.time()
self.verbose_logger.log(yum.logginglevels.INFO_2,
@@ -464,6 +466,8 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
resultobject = self.runTransaction(cb=cb)
self.verbose_logger.debug('Transaction time: %0.3f' % (time.time() - ts_st))
+ self.verbose_logger.log(yum.logginglevels.INFO_2,
+ self.fmtSection(_("Leaving rpm code")))
# close things
self.verbose_logger.log(yum.logginglevels.INFO_1,
self.postTransactionOutput())
commit 985c528fb388f2aead376e63ed07d840b76f90b7
Author: James Antill <james at and.org>
Date: Thu Nov 20 01:03:40 2008 -0500
Use utf8_width for fmtSection
diff --git a/output.py b/output.py
index 6bc9df1..d2c2ec5 100755
--- a/output.py
+++ b/output.py
@@ -431,7 +431,7 @@ class YumOutput:
def fmtSection(self, name, fill='='):
name = to_str(name)
cols = self.term.columns - 2
- name_len = len(name)
+ name_len = utf8_width(name)
if name_len >= (cols - 4):
beg = end = fill * 2
else:
commit c9778fd48e18e316c74832941233dc4781ebeb8f
Author: James Antill <james at and.org>
Date: Thu Nov 20 00:57:44 2008 -0500
Allow _highlight() to do colour and other modes.
Extra whizbang highlighting:
. Show installed "extra" packages in bold red.
. Show installed "newer than available" packages in bold yellow.
. Show installed "update available" packages in bold.
. Show available "old" packages in dim cyan.
. Show available "newest" packages in bold blue.
...it's still mostly blank, and all seem to be visible when they are used,
on white and black backgrounds.
Do highlighting for "list available".
diff --git a/cli.py b/cli.py
index e3e77d7..fbbbb59 100644
--- a/cli.py
+++ b/cli.py
@@ -677,10 +677,14 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
pkgnarrow = 'all'
done_hidden_available = False
+ done_hidden_installed = False
if len(extcmds) > 0:
if installed_available and extcmds[0] == 'installed':
done_hidden_available = True
extcmds.pop(0)
+ elif installed_available and extcmds[0] == 'available':
+ done_hidden_installed = True
+ extcmds.pop(0)
elif extcmds[0] in special:
pkgnarrow = extcmds.pop(0)
@@ -709,8 +713,11 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
if installed_available:
ypl.hidden_available = ypl.available
+ ypl.hidden_installed = ypl.installed
if done_hidden_available:
ypl.available = []
+ if done_hidden_installed:
+ ypl.installed = []
return ypl
def search(self, args):
diff --git a/output.py b/output.py
index cc7a585..6bc9df1 100755
--- a/output.py
+++ b/output.py
@@ -264,12 +264,31 @@ class YumOutput:
progressbar(current, total, name)
def _highlight(self, highlight):
- if highlight:
+ hibeg = ''
+ hiend = ''
+ if not highlight:
+ pass
+ elif not isinstance(highlight, basestring) or highlight == 'bold':
hibeg = self.term.MODE['bold']
- hiend = self.term.MODE['normal']
else:
- hibeg = ''
- hiend = ''
+ # Turn a string into a specific output: colour, bold, etc.
+ for high in highlight.replace(',', ' ').split():
+ if False: pass
+ elif high == 'normal':
+ hibeg = ''
+ elif high in self.term.MODE:
+ hibeg += self.term.MODE[high]
+ elif high in self.term.FG_COLOR:
+ hibeg += self.term.FG_COLOR[high]
+ elif (high.startswith('fg:') and
+ high[3:] in self.term.FG_COLOR):
+ hibeg += self.term.FG_COLOR[high[3:]]
+ elif (high.startswith('bg:') and
+ high[3:] in self.term.BG_COLOR):
+ hibeg += self.term.BG_COLOR[high[3:]]
+
+ if hibeg:
+ hiend = self.term.MODE['normal']
return (hibeg, hiend)
@staticmethod
@@ -476,7 +495,7 @@ class YumOutput:
print '%-35.35s [%.12s] %.10s %-20.20s' % (c_compact, c_repo, changetype, i_compact)
def listPkgs(self, lst, description, outputType, highlight_na={},
- columns=None):
+ columns=None, highlight_modes={}):
"""outputs based on whatever outputType is. Current options:
'list' - simple pkg list
'info' - similar to rpm -qi output
@@ -491,8 +510,15 @@ class YumOutput:
for pkg in sorted(lst):
key = (pkg.name, pkg.arch)
highlight = False
- if key in highlight_na and pkg.verLT(highlight_na[key]):
- highlight = True
+ if False: pass
+ elif key not in highlight_na:
+ highlight = highlight_modes.get('not in', 'normal')
+ elif pkg.verEQ(highlight_na[key]):
+ highlight = highlight_modes.get('=', 'normal')
+ elif pkg.verLT(highlight_na[key]):
+ highlight = highlight_modes.get('>', 'bold')
+ else:
+ highlight = highlight_modes.get('<', 'normal')
if outputType == 'list':
self.simpleList(pkg, ui_overflow=True,
diff --git a/yumcommands.py b/yumcommands.py
index bc86088..cc6b387 100644
--- a/yumcommands.py
+++ b/yumcommands.py
@@ -244,6 +244,7 @@ class InfoCommand(YumCommand):
return 1, [str(e)]
else:
update_pkgs = {}
+ inst_pkgs = {}
columns = None
if basecmd == 'list':
@@ -253,17 +254,33 @@ class InfoCommand(YumCommand):
if highlight and ypl.installed:
# If we have installed and available lists, then do the
# highlighting for the installed packages so you can see what's
- # available to install vs. available to update.
- for pkg in ypl.hidden_available:
+ # available to update, an extra, or newer than what we have.
+ for pkg in (ypl.hidden_available +
+ ypl.reinstall_available +
+ ypl.old_available):
key = (pkg.name, pkg.arch)
if key not in update_pkgs or pkg.verGT(update_pkgs[key]):
update_pkgs[key] = pkg
+ if highlight and ypl.available:
+ # If we have installed and available lists, then do the
+ # highlighting for the available packages so you can see what's
+ # available to install vs. update vs. old.
+ for pkg in ypl.hidden_installed:
+ key = (pkg.name, pkg.arch)
+ if key not in inst_pkgs or pkg.verGT(inst_pkgs[key]):
+ inst_pkgs[key] = pkg
+
# Output the packages:
rip = base.listPkgs(ypl.installed, _('Installed Packages'), basecmd,
- highlight_na=update_pkgs, columns=columns)
+ highlight_na=update_pkgs, columns=columns,
+ highlight_modes={'>' : 'bold',
+ '<' : 'bold,yellow',
+ 'not in' : 'red,bold'})
rap = base.listPkgs(ypl.available, _('Available Packages'), basecmd,
- columns=columns)
+ highlight_na=inst_pkgs, columns=columns,
+ highlight_modes={'<' : 'bold,blue',
+ '>' : 'cyan,dim'})
rep = base.listPkgs(ypl.extras, _('Extra Packages'), basecmd,
columns=columns)
rup = base.listPkgs(ypl.updates, _('Updated Packages'), basecmd,
commit 7faf7dcbd090e13b96841a0346ff9eabc24743a2
Author: James Antill <james at and.org>
Date: Thu Nov 20 00:55:26 2008 -0500
Add reinstall_available and old_available do doPkgLists
diff --git a/yum/__init__.py b/yum/__init__.py
index 6bbae16..1f03840 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -1501,6 +1501,8 @@ class YumBase(depsolve.Depsolve):
installed = []
available = []
+ reinstall_available = []
+ old_available = []
updates = []
obsoletes = []
obsoletesTuples = []
@@ -1526,7 +1528,6 @@ class YumBase(depsolve.Depsolve):
avail = self.pkgSack.returnPackages(patterns=patterns,
ignore_case=ic)
else:
- del dinst # Using ndinst instead
try:
avail = self.pkgSack.returnNewestByNameArch(patterns=patterns,
ignore_case=ic)
@@ -1535,12 +1536,18 @@ class YumBase(depsolve.Depsolve):
for pkg in avail:
if showdups:
- if pkg.pkgtup not in dinst:
+ if pkg.pkgtup in dinst:
+ reinstall_available.append(pkg)
+ else:
available.append(pkg)
else:
key = (pkg.name, pkg.arch)
- if key not in ndinst or pkg.verGT(ndinst[key]):
+ if pkg.pkgtup in dinst:
+ reinstall_available.append(pkg)
+ elif key not in ndinst or pkg.verGT(ndinst[key]):
available.append(pkg)
+ else:
+ old_available.append(pkg)
# produce the updates list of tuples
elif pkgnarrow == 'updates':
@@ -1578,12 +1585,20 @@ class YumBase(depsolve.Depsolve):
for pkg in avail:
if showdups:
- if not self.rpmdb.contains(po=pkg):
+ if self.rpmdb.contains(po=pkg):
+ reinstall_available.append(pkg)
+ else:
available.append(pkg)
else:
ipkgs = self.rpmdb.searchNevra(pkg.name, arch=pkg.arch)
- if not ipkgs or pkg.verGT(sorted(ipkgs, reverse=True)[0]):
+ if ipkgs:
+ latest = sorted(ipkgs, reverse=True)[0]
+ if not ipkgs or pkg.verGT(latest):
available.append(pkg)
+ elif pkg.verEQ(latest):
+ reinstall_available.append(pkg)
+ else:
+ old_available.append(pkg)
# not in a repo but installed
elif pkgnarrow == 'extras':
@@ -1639,6 +1654,8 @@ class YumBase(depsolve.Depsolve):
ygh.installed = installed
ygh.available = available
+ ygh.reinstall_available = reinstall_available
+ ygh.old_available = old_available
ygh.updates = updates
ygh.obsoletes = obsoletes
ygh.obsoletesTuples = obsoletesTuples
commit 12c70cbc6080f1a8a05b0b7c380424991359ffe0
Author: James Antill <james at and.org>
Date: Tue Nov 18 16:18:48 2008 -0500
Do dynamic repolist columns, always output the id and num, chop name
diff --git a/yumcommands.py b/yumcommands.py
index 77f550b..bc86088 100644
--- a/yumcommands.py
+++ b/yumcommands.py
@@ -738,7 +738,6 @@ class RepoListCommand(YumCommand):
repos = base.repos.repos.values()
repos.sort()
enabled_repos = base.repos.listEnabled()
- done = False
verbose = base.verbose_logger.isEnabledFor(logginglevels.DEBUG_3)
if arg == 'all':
ehibeg = base.term.FG_COLOR['green'] + base.term.MODE['bold']
@@ -749,43 +748,31 @@ class RepoListCommand(YumCommand):
dhibeg = ''
hiend = ''
tot_num = 0
+ cols = []
for repo in repos:
if len(extcmds) and not _repo_match(repo, extcmds):
continue
if repo in enabled_repos:
enabled = True
- ui_enabled = ehibeg + _('enabled') + hiend
+ ui_enabled = ehibeg + _('enabled') + hiend + ": "
+ ui_endis_wid = utf8_width(_('enabled')) + 2
num = len(repo.sack)
tot_num += num
ui_num = to_unicode(locale.format("%d", num, True))
- ui_fmt_num = ": %7s"
if verbose:
ui_size = _repo_size(repo)
else:
enabled = False
ui_enabled = dhibeg + _('disabled') + hiend
+ ui_endis_wid = utf8_width(_('disabled'))
ui_num = ""
- ui_fmt_num = "%s"
- ui_endis_wid = utf8_width(_('disabled'))
- if ui_endis_wid < utf8_width(_('enabled')):
- ui_endis_wid = utf8_width(_('enabled'))
if (arg == 'all' or
(arg == 'enabled' and enabled) or
(arg == 'disabled' and not enabled)):
if not verbose:
- if not done:
- txt_rid = utf8_width_fill(_('repo id'), 20, 20)
- txt_rnam = utf8_width_fill(_('repo name'), 40, 40)
- base.verbose_logger.log(logginglevels.INFO_2,"%s %s %s",
- txt_rid, txt_rnam, _('status'))
- done = True
- base.verbose_logger.log(logginglevels.INFO_2, "%s %s %s%s",
- utf8_width_fill(str(repo), 20, 20),
- utf8_width_fill(repo.name, 40, 40),
- utf8_width_fill(ui_enabled,
- ui_endis_wid),
- ui_fmt_num % ui_num)
+ cols.append((str(repo), repo.name,
+ (ui_enabled, ui_endis_wid), ui_num))
else:
md = repo.repoXML
out = [base.fmtKeyValFill(_("Repo-id : "), repo),
@@ -839,6 +826,47 @@ class RepoListCommand(YumCommand):
"%s\n",
"\n".join(out))
+ if not verbose and cols:
+ # Work out the first (id) and last (enabled/disalbed/count),
+ # then chop the middle (name)...
+ id_len = utf8_width(_('repo id'))
+ nm_len = 0
+ ct_len = 0
+ ui_len = 0
+
+ for (rid, rname, (ui_enabled, ui_endis_wid), ui_num) in cols:
+ if id_len < utf8_width(rid):
+ id_len = utf8_width(rid)
+ if nm_len < utf8_width(rname):
+ nm_len = utf8_width(rname)
+ if ct_len < ui_endis_wid:
+ ct_len = ui_endis_wid
+ if ui_len < len(ui_num):
+ ui_len = len(ui_num)
+ if utf8_width(_('status')) > ct_len + ui_len:
+ left = base.term.columns - (id_len + utf8_width(_('status')) +2)
+ else:
+ left = base.term.columns - (id_len + ct_len + ui_len + 2)
+
+ if left < nm_len: # Name gets chopped
+ nm_len = left
+ else: # Share the extra...
+ left -= nm_len
+ id_len += left / 2
+ nm_len += left - (left / 2)
+
+ txt_rid = utf8_width_fill(_('repo id'), id_len)
+ txt_rnam = utf8_width_fill(_('repo name'), nm_len, nm_len)
+ base.verbose_logger.log(logginglevels.INFO_2,"%s %s %s",
+ txt_rid, txt_rnam, _('status'))
+ for (rid, rname, (ui_enabled, ui_endis_wid), ui_num) in cols:
+ if ui_num:
+ ui_num = utf8_width_fill(ui_num, ui_len, left=False)
+ base.verbose_logger.log(logginglevels.INFO_2, "%s %s %s%s",
+ utf8_width_fill(rid, id_len),
+ utf8_width_fill(rname, nm_len, nm_len),
+ ui_enabled, ui_num)
+
return 0, ['repolist: ' +to_unicode(locale.format("%d", tot_num, True))]
def needTs(self, base, basecmd, extcmds):
commit c49b794a6fe6384b05b14d7bf31a214bf5142334
Author: James Antill <james at and.org>
Date: Tue Nov 18 15:55:01 2008 -0500
Add repo back into search -v
diff --git a/output.py b/output.py
index 5191b9b..cc7a585 100755
--- a/output.py
+++ b/output.py
@@ -711,6 +711,7 @@ class YumOutput:
if not verbose:
return
+ print _("Repo : %s") % po.repoid
print _('Matched from:')
for item in yum.misc.unique(values):
if po.name == item or po.summary == item:
commit 58832271b5fbb15a42770bac6875ce8f46595de0
Author: James Antill <james at and.org>
Date: Tue Nov 18 11:05:26 2008 -0500
Do the update pkg highlighting for "yum list install", turn off when no bold
diff --git a/cli.py b/cli.py
index 9a93d15..e3e77d7 100644
--- a/cli.py
+++ b/cli.py
@@ -657,7 +657,7 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
return 2, [_('Package(s) to install')]
return 0, [_('Nothing to do')]
- def returnPkgLists(self, extcmds):
+ def returnPkgLists(self, extcmds, installed_available=False):
"""Returns packages lists based on arguments on the cli.returns a
GenericHolder instance with the following lists defined:
available = list of packageObjects
@@ -666,14 +666,22 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
extras = list of packageObjects
obsoletes = tuples of packageObjects (obsoleting, installed)
recent = list of packageObjects
+
+ installed_available = that the available package list is present
+ as .hidden_available when doing any of:
+ all/available/installed
"""
special = ['available', 'installed', 'all', 'extras', 'updates', 'recent',
'obsoletes']
pkgnarrow = 'all'
+ done_hidden_available = False
if len(extcmds) > 0:
- if extcmds[0] in special:
+ if installed_available and extcmds[0] == 'installed':
+ done_hidden_available = True
+ extcmds.pop(0)
+ elif extcmds[0] in special:
pkgnarrow = extcmds.pop(0)
ypl = self.doPackageLists(pkgnarrow=pkgnarrow, patterns=extcmds,
@@ -699,6 +707,10 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
ypl.extras = _shrinklist(ypl.extras, extcmds)
ypl.obsoletes = _shrinklist(ypl.obsoletes, extcmds)
+ if installed_available:
+ ypl.hidden_available = ypl.available
+ if done_hidden_available:
+ ypl.available = []
return ypl
def search(self, args):
diff --git a/yumcommands.py b/yumcommands.py
index 6766593..77f550b 100644
--- a/yumcommands.py
+++ b/yumcommands.py
@@ -238,7 +238,8 @@ class InfoCommand(YumCommand):
def doCommand(self, base, basecmd, extcmds):
try:
- ypl = base.returnPkgLists(extcmds)
+ highlight = base.term.MODE['bold']
+ ypl = base.returnPkgLists(extcmds, installed_available=highlight)
except yum.Errors.YumBaseError, e:
return 1, [str(e)]
else:
@@ -249,11 +250,11 @@ class InfoCommand(YumCommand):
# Dynamically size the columns
columns = _list_cmd_calc_columns(base, ypl)
- if ypl.installed:
+ if highlight and ypl.installed:
# If we have installed and available lists, then do the
# highlighting for the installed packages so you can see what's
# available to install vs. available to update.
- for pkg in ypl.available:
+ for pkg in ypl.hidden_available:
key = (pkg.name, pkg.arch)
if key not in update_pkgs or pkg.verGT(update_pkgs[key]):
update_pkgs[key] = pkg
commit 5a5c9352694ba416d03cc81979a9eeed36456123
Merge: a7356cf... 6121276...
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Tue Nov 18 11:18:37 2008 -0500
Merge branch 'yum-3_2_X' of ssh://yum.baseurl.org/srv/projects/yum/git/yum into yum-3_2_X
* 'yum-3_2_X' of ssh://yum.baseurl.org/srv/projects/yum/git/yum:
Test cases for kernel/kernel-xen obsoletes
Remove debug lines, fix "yum update foo" where foo is obsolseted by an update
Add test case and fix for 471736, same as 470440 but for update not install
Cleanup the repomd.xml.asc files with the metadata
Only try importing the repo key, if the sig verify failed (like pkgs).
commit a7356cf0f23483fc75e895179e5328e2aa6c5db6
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Tue Nov 18 11:17:51 2008 -0500
yes, umm, if you do need to get headers for some crack reason (like checking for
potential file conflicts) then you need to make the header dir.
diff --git a/yum/yumRepo.py b/yum/yumRepo.py
index 01ff5ea..00dc2b6 100644
--- a/yum/yumRepo.py
+++ b/yum/yumRepo.py
@@ -780,6 +780,9 @@ class YumRepository(Repository, config.RepoConf):
start = package.hdrstart
end = package.hdrend
basepath = package.basepath
+ # yes, I know, don't ask
+ if not os.path.exists(self.hdrdir):
+ os.makedirs(self.hdrdir)
return self._getFile(url=basepath, relative=remote, local=local, start=start,
reget=None, end=end, checkfunc=checkfunc, copy_local=1,
commit 61212763b1ef6663d058f2684f7503d74682a742
Author: James Antill <james at and.org>
Date: Mon Nov 17 12:19:13 2008 -0500
Test cases for kernel/kernel-xen obsoletes
diff --git a/test/simpleobsoletestests.py b/test/simpleobsoletestests.py
index 2e5b5a7..035970c 100644
--- a/test/simpleobsoletestests.py
+++ b/test/simpleobsoletestests.py
@@ -283,6 +283,53 @@ class SimpleObsoletesTests(OperationsTests):
self.assert_(res=='ok', msg)
self.assertResult((pkgs['shark'],))
+ # NOTE: Do we really want to remove the old kernel-xen? ... not 100% sure
+ def testMultiObsKern1(self):
+ # kernel + kernel-xen installed, and update kernel obsoletes kernel-xen
+ okern1 = FakePackage('kernel', '0.1', '1', '0', 'noarch')
+ okern2 = FakePackage('kernel', '0.2', '1', '0', 'noarch')
+ okernxen1 = FakePackage('kernel-xen', '0.1', '1', '0', 'noarch')
+ okernxen2 = FakePackage('kernel-xen', '0.2', '1', '0', 'noarch')
+ nkern = FakePackage('kernel', '0.8', '1', '0', 'noarch')
+ nkern.addObsoletes('kernel-xen', None, (None, None, None))
+
+ res, msg = self.runOperation(['update', 'kernel'],
+ [okern1, okernxen1,
+ okern2, okernxen2], [nkern])
+ self.assert_(res=='ok', msg)
+ self.assertResult((okern1,okern2,nkern,))
+
+ def testMultiObsKern2(self):
+ # kernel + kernel-xen installed, and update kernel obsoletes kernel-xen
+ okern1 = FakePackage('kernel', '0.1', '1', '0', 'noarch')
+ okern2 = FakePackage('kernel', '0.2', '1', '0', 'noarch')
+ okernxen1 = FakePackage('kernel-xen', '0.1', '1', '0', 'noarch')
+ okernxen2 = FakePackage('kernel-xen', '0.2', '1', '0', 'noarch')
+ nkern = FakePackage('kernel', '0.8', '1', '0', 'noarch')
+ nkern.addObsoletes('kernel-xen', None, (None, None, None))
+
+ res, msg = self.runOperation(['update', 'kernel-xen'],
+ [okern1, okernxen1,
+ okern2, okernxen2], [nkern])
+ self.assert_(res=='ok', msg)
+ self.assertResult((okern1,okern2,nkern,))
+
+ def testMultiObsKern3(self):
+ # kernel + kernel-xen installed, and update kernel obsoletes kernel-xen
+ okern1 = FakePackage('kernel', '0.1', '1', '0', 'noarch')
+ okern2 = FakePackage('kernel', '0.2', '1', '0', 'noarch')
+ okernxen1 = FakePackage('kernel-xen', '0.1', '1', '0', 'noarch')
+ okernxen2 = FakePackage('kernel-xen', '0.2', '1', '0', 'noarch')
+ nkern = FakePackage('kernel', '0.8', '1', '0', 'noarch')
+ nkern.addObsoletes('kernel-xen', None, (None, None, None))
+
+ res, msg = self.runOperation(['update'],
+ [okern1, okernxen1,
+ okern2, okernxen2], [nkern])
+ self.assert_(res=='ok', msg)
+ self.assertResult((okern1,okern2,nkern,))
+
+
class GitMetapackageObsoletesTests(OperationsTests):
@staticmethod
commit 179893590e0a18b37e66401b213ae4dab26870f5
Author: James Antill <james at and.org>
Date: Sat Nov 15 13:31:56 2008 -0500
Remove debug lines, fix "yum update foo" where foo is obsolseted by an update
diff --git a/test/simpleobsoletestests.py b/test/simpleobsoletestests.py
index 8c37a83..2e5b5a7 100644
--- a/test/simpleobsoletestests.py
+++ b/test/simpleobsoletestests.py
@@ -273,6 +273,16 @@ class SimpleObsoletesTests(OperationsTests):
self.assert_(res=='ok', msg)
self.assertResult((pkgs['shark'],))
+ def testMultiObs5(self):
+ # This tests update of the to be obsoleted pkg...
+ pkgs = self._MultiObsHelper()
+ oldshark = FakePackage('shark', '0.1', '1', '0', 'noarch')
+
+ res, msg = self.runOperation(['update', 'nash'],
+ pkgs['pi'] + [oldshark], pkgs['po'])
+ self.assert_(res=='ok', msg)
+ self.assertResult((pkgs['shark'],))
+
class GitMetapackageObsoletesTests(OperationsTests):
@staticmethod
diff --git a/yum/__init__.py b/yum/__init__.py
index 1d770f9..6bbae16 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -2713,18 +2713,10 @@ class YumBase(depsolve.Depsolve):
# check for obsoletes first
if self.conf.obsoletes:
- print "JDBG:", instpkgs, availpkgs
for installed_pkg in instpkgs:
- print "JDBG: inst:", installed_pkg, self.up.getObsoletesList(name=installed_pkg.name, arch=installed_pkg.arch)
for obsoleting in self.up.obsoleted_dict.get(installed_pkg.pkgtup, []):
- print "JDBG: obs:", obsoleting
obsoleting_pkg = self.getPackageObject(obsoleting)
- # FIXME check for what might be in there here
- txmbr = self.tsInfo.addObsoleting(obsoleting_pkg, installed_pkg)
- self.tsInfo.addObsoleted(installed_pkg, obsoleting_pkg)
- if requiringPo:
- txmbr.setAsDep(requiringPo)
- tx_return.append(txmbr)
+ tx_return.extend(self.install(po=obsoleting_pkg))
for available_pkg in availpkgs:
for obsoleted in self.up.obsoleting_dict.get(available_pkg.pkgtup, []):
obsoleted_pkg = self.getInstalledPackageObject(obsoleted)
commit a89961b334e4eed0d960b50cfed635619d870d7c
Author: James Antill <james at and.org>
Date: Sat Nov 15 12:46:26 2008 -0500
Add test case and fix for 471736, same as 470440 but for update not install
diff --git a/test/simpleobsoletestests.py b/test/simpleobsoletestests.py
index 9a9b5fc..8c37a83 100644
--- a/test/simpleobsoletestests.py
+++ b/test/simpleobsoletestests.py
@@ -263,6 +263,16 @@ class SimpleObsoletesTests(OperationsTests):
self.assert_(res=='ok', msg)
self.assertResult((pkgs['shark'],))
+ def testMultiObs4(self):
+ # This tests update...
+ pkgs = self._MultiObsHelper()
+ oldshark = FakePackage('shark', '0.1', '1', '0', 'noarch')
+
+ res, msg = self.runOperation(['update', 'shark'],
+ pkgs['pi'] + [oldshark], pkgs['po'])
+ self.assert_(res=='ok', msg)
+ self.assertResult((pkgs['shark'],))
+
class GitMetapackageObsoletesTests(OperationsTests):
@staticmethod
diff --git a/yum/__init__.py b/yum/__init__.py
index 86375b7..1d770f9 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -2382,6 +2382,15 @@ class YumBase(depsolve.Depsolve):
tx_return.extend(txmbrs)
return tx_return
+ def _find_obsoletees(self, po):
+ """ Return the pkgs. that are obsoleted by the po we pass in. """
+ for (obstup, inst_tup) in self.up.getObsoletesTuples(name=po.name,
+ arch=po.arch):
+ if po.pkgtup == obstup:
+ installed_pkg = self.rpmdb.searchPkgTuple(inst_tup)[0]
+ yield installed_pkg
+
+
def install(self, po=None, **kwargs):
"""try to mark for install the item specified. Uses provided package
object, if available. If not it uses the kwargs and gets the best
@@ -2543,13 +2552,10 @@ class YumBase(depsolve.Depsolve):
# at this point we are going to mark the pkg to be installed, make sure
# it doesn't obsolete anything. If it does, mark that in the tsInfo, too
if po.pkgtup in self.up.getObsoletesList(name=po.name, arch=po.arch):
- for (obstup, inst_tup) in self.up.getObsoletesTuples(name=po.name,
- arch=po.arch):
- if po.pkgtup == obstup:
- installed_pkg = self.rpmdb.searchPkgTuple(inst_tup)[0]
- txmbr = self.tsInfo.addObsoleting(po, installed_pkg)
- self.tsInfo.addObsoleted(installed_pkg, po)
- tx_return.append(txmbr)
+ for obsoletee in self._find_obsoletees(po):
+ txmbr = self.tsInfo.addObsoleting(po, obsoletee)
+ self.tsInfo.addObsoleted(obsoletee, po)
+ tx_return.append(txmbr)
else:
txmbr = self.tsInfo.addInstall(po)
tx_return.append(txmbr)
@@ -2707,8 +2713,11 @@ class YumBase(depsolve.Depsolve):
# check for obsoletes first
if self.conf.obsoletes:
+ print "JDBG:", instpkgs, availpkgs
for installed_pkg in instpkgs:
+ print "JDBG: inst:", installed_pkg, self.up.getObsoletesList(name=installed_pkg.name, arch=installed_pkg.arch)
for obsoleting in self.up.obsoleted_dict.get(installed_pkg.pkgtup, []):
+ print "JDBG: obs:", obsoleting
obsoleting_pkg = self.getPackageObject(obsoleting)
# FIXME check for what might be in there here
txmbr = self.tsInfo.addObsoleting(obsoleting_pkg, installed_pkg)
@@ -2731,12 +2740,23 @@ class YumBase(depsolve.Depsolve):
for installed_pkg in instpkgs:
for updating in self.up.updatesdict.get(installed_pkg.pkgtup, []):
- updating_pkg = self.getPackageObject(updating)
+ po = self.getPackageObject(updating)
if self.tsInfo.isObsoleted(installed_pkg.pkgtup):
self.verbose_logger.log(logginglevels.DEBUG_2, _('Not Updating Package that is already obsoleted: %s.%s %s:%s-%s'),
installed_pkg.pkgtup)
+ # at this point we are going to mark the pkg to be installed, make sure
+ # it doesn't obsolete anything. If it does, mark that in the tsInfo, too
+ elif po.pkgtup in self.up.getObsoletesList(name=po.name,
+ arch=po.arch):
+ for obsoletee in self._find_obsoletees(po):
+ txmbr = self.tsInfo.addUpdate(po, installed_pkg)
+ if requiringPo:
+ txmbr.setAsDep(requiringPo)
+ self.tsInfo.addObsoleting(po, obsoletee)
+ self.tsInfo.addObsoleted(obsoletee, po)
+ tx_return.append(txmbr)
else:
- txmbr = self.tsInfo.addUpdate(updating_pkg, installed_pkg)
+ txmbr = self.tsInfo.addUpdate(po, installed_pkg)
if requiringPo:
txmbr.setAsDep(requiringPo)
tx_return.append(txmbr)
commit 047495f20a8642cb71ef6a8bce6dfda4275ba21b
Author: James Antill <james at and.org>
Date: Fri Nov 14 10:55:58 2008 -0500
Cleanup the repomd.xml.asc files with the metadata
diff --git a/yum/__init__.py b/yum/__init__.py
index a207959..86375b7 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -1460,7 +1460,7 @@ class YumBase(depsolve.Depsolve):
return self._cleanFiles(exts, 'cachedir', 'sqlite')
def cleanMetadata(self):
- exts = ['xml.gz', 'xml', 'cachecookie', 'mirrorlist.txt']
+ exts = ['xml.gz', 'xml', 'cachecookie', 'mirrorlist.txt', 'asc']
# Metalink is also here, but is a *.xml file
return self._cleanFiles(exts, 'cachedir', 'metadata')
commit d3f7acae8d202b3fd3d094161297f5a2a54f50c7
Author: James Antill <james at and.org>
Date: Fri Nov 14 10:47:25 2008 -0500
Only try importing the repo key, if the sig verify failed (like pkgs).
diff --git a/yum/yumRepo.py b/yum/yumRepo.py
index 01ff5ea..6046beb 100644
--- a/yum/yumRepo.py
+++ b/yum/yumRepo.py
@@ -1319,20 +1319,22 @@ class YumRepository(Repository, config.RepoConf):
result = self._getFile(relative='repodata/repomd.xml.asc',
copy_local=1,
local = sigfile,
- text='%s repo signature' % self.id,
+ text='%s/signature' % self.id,
reget=None,
checkfunc=None,
cache=self.http_caching == 'all')
except URLGrabError, e:
raise URLGrabError(-1, 'Error finding signature for repomd.xml for %s: %s' % (self, e))
- if self.gpg_import_func:
+ valid = misc.valid_detached_sig(result, filepath, self.gpgdir)
+ if not valid and self.gpg_import_func:
try:
self.gpg_import_func(self, self.confirm_func)
except Errors.YumBaseError, e:
raise URLGrabError(-1, 'Gpg Keys not imported, cannot verify repomd.xml for repo %s' % (self))
+ valid = misc.valid_detached_sig(result, filepath, self.gpgdir)
- if not misc.valid_detached_sig(result, filepath, self.gpgdir):
+ if not valid:
raise URLGrabError(-1, 'repomd.xml signature could not be verified for %s' % (self))
try:
commit 2c3734e99ada52826eb4dacb385f810ff41c501c
Author: James Antill <james at and.org>
Date: Thu Nov 13 14:16:54 2008 -0500
Catch XML parse exceptions and convert to MetaLinkRepoErrorParseFail
diff --git a/yum/metalink.py b/yum/metalink.py
index 5a57511..c478e0e 100755
--- a/yum/metalink.py
+++ b/yum/metalink.py
@@ -179,7 +179,10 @@ class MetaLinkRepoMD:
self.mirrors = []
if not os.path.exists(filename):
raise MetaLinkRepoErrorParseFail, "File %s does not exist" %filename
- root = xmlparse(filename)
+ try:
+ root = xmlparse(filename)
+ except SyntaxError:
+ raise MetaLinkRepoErrorParseFail, "File %s is not XML" % filename
for elem in root.findall(__ML_FILE_ELEMENT__):
name = elem.get('name')
commit b17d14c90c51223ec83026173cb8784e8950b596
Author: James Antill <james at and.org>
Date: Wed Nov 12 11:34:38 2008 -0500
Explain "repo list" better in shell command help
diff --git a/shell.py b/shell.py
index 145e344..97bd963 100644
--- a/shell.py
+++ b/shell.py
@@ -114,7 +114,7 @@ class YumShell(cmd.Cmd):
msg = """
Shell specific arguments:
config - set config options
- repository (or repo) - enable/disable repositories
+ repository (or repo) - enable/disable/list repositories
transaction (or ts) - list, reset or run the transaction set
run - run the transaction set
exit or quit - exit the shell
@@ -131,7 +131,7 @@ class YumShell(cmd.Cmd):
elif arg in ['repo', 'repository']:
msg = """
%s arg [option]
- list: lists repositories and their status
+ list: lists repositories and their status. option = [all] name/id glob
enable: enable repositories. option = repository id
disable: disable repositories. option = repository id
""" % arg
commit faa79adb21ffa695a35e2a170fc93f03615af06f
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Thu Nov 13 14:09:14 2008 -0500
add bugtracker_url as a config option - for when we tell someone to file a bug
rh bug #471164
diff --git a/cli.py b/cli.py
index 91088d4..9a93d15 100644
--- a/cli.py
+++ b/cli.py
@@ -408,7 +408,7 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
for msg in msgs:
print to_utf8(msg)
- return 1, [_('Please report this error in bugzilla')]
+ return 1, [_('Please report this error in %s') % self.conf.bugtracker_url]
self.verbose_logger.debug('rpm_check_debug time: %0.3f' % (time.time() - rcd_st))
diff --git a/docs/yum.conf.5 b/docs/yum.conf.5
index 40148a6..8171455 100644
--- a/docs/yum.conf.5
+++ b/docs/yum.conf.5
@@ -305,6 +305,10 @@ Can be set to 'all' or 'best'. All means install all possible arches for any pac
want to install. Therefore yum install foo will install foo.i386 and foo.x86_64 on x86_64,
if it is available. Best means install the best arch for this platform, only.
+.IP \fBbugtracker_url \fR
+Url where bugs should be filed for yum. Configurable for local versions or distro-specific
+bugtrackers.
+
.SH "[repository] OPTIONS"
.LP
The repository section(s) take the following form:
diff --git a/yum/__init__.py b/yum/__init__.py
index 5121da5..a207959 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -3289,7 +3289,8 @@ class YumBase(depsolve.Depsolve):
if msgs:
retmsgs = [_('ERROR with rpm_check_debug vs depsolve:')]
retmsgs.extend(msgs)
- retmsgs.append(_('Please report this error in bugzilla'))
+ retmsgs.append(_('Please report this error at %s')
+ % self.conf.bugtracker_url)
raise Errors.YumRPMCheckError,retmsgs
tsConf = {}
diff --git a/yum/config.py b/yum/config.py
index 03123a9..cb7e726 100644
--- a/yum/config.py
+++ b/yum/config.py
@@ -667,7 +667,7 @@ class YumConf(StartupConf):
# all == install any/all arches you can
# best == use the 'best arch' for the system
-
+ bugtracker_url = Option('http://yum.baseurl.org/report')
_reposlist = []
commit b3fc8bad22366d3a7a47297e38466ad4a85f1081
Author: James Antill <james at and.org>
Date: Wed Nov 12 10:38:20 2008 -0500
Allow re-adding deleted keys
diff --git a/yum/yumRepo.py b/yum/yumRepo.py
index 4729ae3..01ff5ea 100644
--- a/yum/yumRepo.py
+++ b/yum/yumRepo.py
@@ -1326,18 +1326,11 @@ class YumRepository(Repository, config.RepoConf):
except URLGrabError, e:
raise URLGrabError(-1, 'Error finding signature for repomd.xml for %s: %s' % (self, e))
- if not os.path.exists(self.gpgdir):
- if self.gpg_import_func:
- #FIXME probably should have an else off of this to
- # complain if there is no import function
- try:
- self.gpg_import_func(self, self.confirm_func)
- except Errors.YumBaseError, e:
- raise URLGrabError(-1, 'Gpg Keys not imported, cannot verify repomd.xml for repo %s' % (self))
-
- # FIXME if we get the okay here to import the key then
- # we should set an option so that future key imports for this
- # repo will be allowed w/o question
+ if self.gpg_import_func:
+ try:
+ self.gpg_import_func(self, self.confirm_func)
+ except Errors.YumBaseError, e:
+ raise URLGrabError(-1, 'Gpg Keys not imported, cannot verify repomd.xml for repo %s' % (self))
if not misc.valid_detached_sig(result, filepath, self.gpgdir):
raise URLGrabError(-1, 'repomd.xml signature could not be verified for %s' % (self))
commit 0017a9a7a770c53308f035e916dcea79ece32de9
Author: James Antill <james at and.org>
Date: Tue Nov 11 15:04:45 2008 -0500
Revert the previous attempt to fix repomd.xml verification failing
Use download to tempfile + rename.
This means even if someone pulls the plug after the download, but before the
failure, we'll still not have a bad repomd.xml file there.
diff --git a/yum/yumRepo.py b/yum/yumRepo.py
index f5356c6..4729ae3 100644
--- a/yum/yumRepo.py
+++ b/yum/yumRepo.py
@@ -45,6 +45,7 @@ import glob
import shutil
import stat
import errno
+import tempfile
# If you want yum to _always_ check the MD .sqlite files then set this to
# False (this doesn't affect .xml files or .sqilte files derived from them).
@@ -879,12 +880,20 @@ class YumRepository(Repository, config.RepoConf):
def _getFileRepoXML(self, local, text=None, grab_can_fail=None):
""" Call _getFile() for the repomd.xml file. """
+ def _cleanup_tmp():
+ try:
+ os.unlink(tfname)
+ except:
+ pass
checkfunc = (self._checkRepoXML, (), {})
if grab_can_fail is None:
grab_can_fail = 'old_repo_XML' in self._oldRepoMDData
try:
+ # This is named so that "yum clean metadata" picks it up
+ tfname = tempfile.mktemp(prefix='repomd', suffix="tmp.xml",
+ dir=os.path.dirname(local))
result = self._getFile(relative=self.repoMDFile,
- local=local,
+ local=tfname,
copy_local=1,
text=text,
reget=None,
@@ -892,16 +901,27 @@ class YumRepository(Repository, config.RepoConf):
cache=self.http_caching == 'all')
except URLGrabError, e:
+ _cleanup_tmp()
if grab_can_fail:
return None
raise Errors.RepoError, 'Error downloading file %s: %s' % (local, e)
except (Errors.NoMoreMirrorsRepoError, Errors.RepoError):
+ _cleanup_tmp()
if grab_can_fail:
return None
raise
-
- return result
+ # This should always work...
+ try:
+ os.rename(result, local)
+ except:
+ # But in case it doesn't...
+ _cleanup_tmp()
+ if grab_can_fail:
+ return None
+ raise Errors.RepoError, 'Error renaming file %s to %s' % (result,
+ local)
+ return local
def _parseRepoXML(self, local, parse_can_fail=None):
""" Parse the repomd.xml file. """
@@ -1284,20 +1304,6 @@ class YumRepository(Repository, config.RepoConf):
fdel=lambda self: setattr(self, "_repoXML", None))
def _checkRepoXML(self, fo):
- try:
- self._checkRepoXML_inner(fo)
- except:
- # Unlink the repomd.xml if it didn't pass our checks, really
- # urlgrabber/whatever should be doing this ... but we do it.
- # Also we are screwed if this can ever fail for some reason like
- # the ZFS quota snafu.
- try:
- os.unlink(self.cachedir + '/repomd.xml')
- except:
- pass
- raise
-
- def _checkRepoXML_inner(self, fo):
if type(fo) is types.InstanceType:
filepath = fo.filename
else:
commit 18f774ed5c9ec45cc71496380ce47c9fa2335ab0
Author: James Antill <james at and.org>
Date: Tue Nov 11 14:18:13 2008 -0500
If anything bad happens with the repomd.xml checking, delete it for safety
diff --git a/yum/yumRepo.py b/yum/yumRepo.py
index 9a24d20..f5356c6 100644
--- a/yum/yumRepo.py
+++ b/yum/yumRepo.py
@@ -1284,6 +1284,20 @@ class YumRepository(Repository, config.RepoConf):
fdel=lambda self: setattr(self, "_repoXML", None))
def _checkRepoXML(self, fo):
+ try:
+ self._checkRepoXML_inner(fo)
+ except:
+ # Unlink the repomd.xml if it didn't pass our checks, really
+ # urlgrabber/whatever should be doing this ... but we do it.
+ # Also we are screwed if this can ever fail for some reason like
+ # the ZFS quota snafu.
+ try:
+ os.unlink(self.cachedir + '/repomd.xml')
+ except:
+ pass
+ raise
+
+ def _checkRepoXML_inner(self, fo):
if type(fo) is types.InstanceType:
filepath = fo.filename
else:
commit e59d9491bb4ccdd5e5f4cdd8de24e858a342a2d6
Merge: 674dfc2... af4feb6...
Author: James Antill <james at and.org>
Date: Tue Nov 11 09:57:59 2008 -0500
Merge branch 'yum-3_2_X' of ssh://yum.baseurl.org/srv/projects/yum/git/yum into yum-3_2_X
* 'yum-3_2_X' of ssh://yum.baseurl.org/srv/projects/yum/git/yum:
make skip-broken handle a case where foo.x86_64 is skipped, and the foo.i386 is pulled in instead (rhbz #470291)
handle obsoleted txmbr without obsoleting txmbr in skip-broken
add tsInfo debug messages to output in broken tests
commit 674dfc28da754fe3cbc470067fe496e3240cbca8
Author: James Antill <james at and.org>
Date: Tue Nov 11 09:57:49 2008 -0500
Obey enable/disable plugins for yumdownloader etc. ... fixes bug 470936
diff --git a/utils.py b/utils.py
index d92f533..cea9110 100644
--- a/utils.py
+++ b/utils.py
@@ -61,12 +61,20 @@ class YumUtilBase(YumBaseCli):
root = self._parser.getRoot(opts)
# Read up configuration options and initialise plugins
try:
+ disabled_plugins = None
+ if hasattr(opts, "disableplugins"):
+ disabled_plugins = self._parser._splitArg(opts.disableplugins)
+ enabled_plugins = None
+ if hasattr(opts, "enableplugins"):
+ enabled_plugins = self._parser._splitArg(opts.enableplugins)
self._getConfig(opts.conffile, root,
init_plugins=not opts.noplugins,
plugin_types= pluginsTypes,
optparser=self._parser,
debuglevel=opts.debuglevel,
- errorlevel=opts.errorlevel)
+ errorlevel=opts.errorlevel,
+ disabled_plugins=disabled_plugins,
+ enabled_plugins=enabled_plugins)
except yum.Errors.ConfigError, e:
self.logger.critical(_('Config Error: %s'), e)
sys.exit(1)
commit af4feb628ace315ae37a30fdf55821812453ceea
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date: Tue Nov 11 08:18:37 2008 +0100
make skip-broken handle a case where foo.x86_64 is skipped, and the foo.i386 is pulled in instead (rhbz #470291)
diff --git a/test/skipbroken-tests.py b/test/skipbroken-tests.py
index 968989c..d6f763c 100644
--- a/test/skipbroken-tests.py
+++ b/test/skipbroken-tests.py
@@ -526,6 +526,62 @@ class SkipBrokenTests(DepsolveTests):
self.tsInfo.addUpdate(ur4, oldpo=r4)
self.assertEquals('err', *self.resolveCode(skip=False))
+
+ def testBumpedSoNameMultiArch(self):
+ """
+ if compat-db45.x86_64 get skipped, then compat-db45.i386 should not
+ get pulled in instead
+ """
+ c1 = self.instPackage('cyrus-sasl-lib', '2.1.22',"18", arch='x86_64')
+ c1.addRequires("libdb-4.3.so")
+
+ d1 = self.instPackage('compat-db', '4.6.21',"4", arch='x86_64')
+ d1.addProvides("libdb-4.3.so")
+ od1 = self.repoPackage('compat-db46', '4.6.21',"5", arch='x86_64')
+ od1.addProvides("libdb-4.6.so")
+ od1.addObsoletes("compat-db")
+ od2 = self.repoPackage('compat-db45', '4.6.21',"5", arch='x86_64')
+ od2.addProvides("libdb-4.5.so")
+ od2.addObsoletes("compat-db")
+ od3 = self.repoPackage('compat-db45', '4.6.21',"5", arch='i386')
+ od3.addProvides("libdb-4.5.so")
+ od3.addObsoletes("compat-db")
+
+ r1 = self.instPackage('rpm', '4.6.0-0','0.rc1.3', arch='x86_64')
+ r1.addRequires("libdb-4.5.so")
+ r2 = self.instPackage('rpm-libs', '4.6.0-0','0.rc1.3', arch='x86_64')
+ r2.addRequires("libdb-4.5.so")
+ r3 = self.instPackage('rpm-build', '4.6.0-0','0.rc1.3', arch='x86_64')
+ r3.addRequires("libdb-4.5.so")
+ r4 = self.instPackage('rpm-python', '4.6.0-0','0.rc1.3', arch='x86_64')
+ r4.addRequires("libdb-4.5.so")
+
+ ur1 = self.repoPackage('rpm', '4.6.0-0','0.rc1.5', arch='x86_64')
+ ur1.addRequires("libdb-4.5.so")
+ ur1.addRequires("compat-db45")
+ ur2 = self.repoPackage('rpm-libs', '4.6.0-0','0.rc1.5', arch='x86_64')
+ ur2.addRequires("libdb-4.5.so")
+ ur2.addRequires("compat-db45")
+ ur3 = self.repoPackage('rpm-build', '4.6.0-0','0.rc1.5', arch='x86_64')
+ ur3.addRequires("libdb-4.5.so")
+ ur3.addRequires("compat-db45")
+ ur4 = self.repoPackage('rpm-python', '4.6.0-0','0.rc1.5', arch='x86_64')
+ ur4.addRequires("libdb-4.5.so")
+ ur4.addRequires("compat-db45")
+
+
+ self.tsInfo.addObsoleting(od2, oldpo=d1)
+ self.tsInfo.addObsoleted(d1, od2)
+ self.tsInfo.addObsoleting(od1, oldpo=d1)
+ self.tsInfo.addObsoleted(d1, od1)
+ self.tsInfo.addUpdate(ur1, oldpo=r1)
+ self.tsInfo.addUpdate(ur2, oldpo=r2)
+ self.tsInfo.addUpdate(ur3, oldpo=r3)
+ self.tsInfo.addUpdate(ur4, oldpo=r4)
+
+ self.assertEquals('empty', *self.resolveCode(skip=True))
+ self.assertResult([c1,d1,r1,r2,r3,r4])
+
def resolveCode(self,skip = False):
solver = YumBase()
diff --git a/yum/__init__.py b/yum/__init__.py
index 94e732d..dc19660 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -684,11 +684,16 @@ class YumBase(depsolve.Depsolve):
_remove_from_sack(po)
def _remove_from_sack(po):
- if not po.repoid == 'installed' and po not in removed_from_sack:
- self.verbose_logger.debug('SKIPBROKEN: removing %s from pkgSack & updates' % str(po))
- self.pkgSack.delPackage(po)
- self.up.delPackage(po.pkgtup)
- removed_from_sack.add(po)
+ # get all compatible arch packages from pkgSack
+ # we need to remove them to so a i386 paqckages is not
+ # dragged in when a x86_64 is skipped.
+ pkgs = self._getPackagesToRemoveAllArch(po)
+ for pkg in pkgs:
+ if not po.repoid == 'installed' and pkg not in removed_from_sack:
+ self.verbose_logger.debug('SKIPBROKEN: removing %s from pkgSack & updates' % str(po))
+ self.pkgSack.delPackage(pkg)
+ self.up.delPackage(pkg.pkgtup)
+ removed_from_sack.add(pkg)
# Keep removing packages & Depsolve until all errors is gone
# or the transaction is empty
@@ -780,7 +785,25 @@ class YumBase(depsolve.Depsolve):
if not self.tsInfo.exists(pkg.pkgtup):
self.verbose_logger.debug('SKIPBROKEN: Remove extra obsoleted %s (%s)' % (txmbr.po,pkg) )
self.tsInfo.remove(txmbr.po.pkgtup)
-
+
+ def _getPackagesToRemoveAllArch(self,po):
+ ''' get all compatible arch packages in pkgSack'''
+ pkgs = []
+ if rpmUtils.arch.isMultiLibArch():
+ archs = rpmUtils.arch.getArchList()
+ n,a,e,v,r = po.pkgtup
+ # skip for all compat archs
+ for a in archs:
+ pkgtup = (n,a,e,v,r)
+ matched = self.pkgSack.searchNevra(n,e,v,r,a)
+ pkgs.extend(matched)
+ else:
+ pkgs.append(po)
+ return pkgs
+
+
+
+
def _skipFromTransaction(self,po):
skipped = []
commit 268784438956545d34332b71a47d63b21da008c0
Author: James Antill <james at and.org>
Date: Mon Nov 10 11:44:13 2008 -0500
Allow arguments to grouplist to only show a subset of groups
diff --git a/cli.py b/cli.py
index ff4c7d6..91088d4 100644
--- a/cli.py
+++ b/cli.py
@@ -843,8 +843,12 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
if len(userlist) > 0:
if userlist[0] == 'hidden':
uservisible=0
+ userlist.pop(0)
+ if not userlist:
+ userlist = None # Match everything...
- installed, available = self.doGroupLists(uservisible=uservisible)
+ installed, available = self.doGroupLists(uservisible=uservisible,
+ patterns=userlist)
if len(installed) > 0:
self.verbose_logger.log(yum.logginglevels.INFO_2,
diff --git a/yum/__init__.py b/yum/__init__.py
index 316d11e..ddfbf82 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -1870,7 +1870,7 @@ class YumBase(depsolve.Depsolve):
return matches
- def doGroupLists(self, uservisible=0):
+ def doGroupLists(self, uservisible=0, patterns=None, ignore_case=True):
"""returns two lists of groups, installed groups and available groups
optional 'uservisible' bool to tell it whether or not to return
only groups marked as uservisible"""
@@ -1882,7 +1882,12 @@ class YumBase(depsolve.Depsolve):
if self.comps.compscount == 0:
raise Errors.GroupsError, _('No group data available for configured repositories')
- for grp in self.comps.groups:
+ if patterns is None:
+ grps = self.comps.groups
+ else:
+ grps = self.comps.return_groups(",".join(patterns),
+ case_sensitive=not ignore_case)
+ for grp in grps:
if grp.installed:
if uservisible:
if grp.user_visible:
commit 8b4f9781f0b18978d04fcc467b276478e6e7e5e3
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date: Sun Nov 9 13:50:04 2008 +0100
handle obsoleted txmbr without obsoleting txmbr in skip-broken
diff --git a/yum/__init__.py b/yum/__init__.py
index 316d11e..94e732d 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -768,14 +768,18 @@ 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
"""
- added = set()
for txmbr in self.tsInfo:
for pkg in txmbr.obsoletes:
if not self.tsInfo.exists(pkg.pkgtup):
obs = self.tsInfo.addObsoleted(pkg,txmbr.po)
self.verbose_logger.debug('SKIPBROKEN: Added missing obsoleted %s (%s)' % (pkg,txmbr.po) )
- added.add(obs)
- return added
+ for pkg in txmbr.obsoleted_by:
+ # check if the obsoleting txmbr is in the transaction
+ # else remove the obsoleted txmbr
+ # it clean out some really wierd cases
+ if not self.tsInfo.exists(pkg.pkgtup):
+ self.verbose_logger.debug('SKIPBROKEN: Remove extra obsoleted %s (%s)' % (txmbr.po,pkg) )
+ self.tsInfo.remove(txmbr.po.pkgtup)
def _skipFromTransaction(self,po):
commit c6643eb7aed4f5dc60c6350a7005f9e7fcd374ab
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date: Sun Nov 9 13:35:36 2008 +0100
add tsInfo debug messages to output in broken tests
diff --git a/test/testbase.py b/test/testbase.py
index 0beffc6..bed2267 100644
--- a/test/testbase.py
+++ b/test/testbase.py
@@ -267,6 +267,7 @@ class DepsolveTests(_DepsolveTestsBase):
""" Called at the start of each test. """
_DepsolveTestsBase.setUp(self)
self.tsInfo = transactioninfo.TransactionData()
+ self.tsInfo.debug = 1
self.rpmdb = FakeRpmDb()
self.xsack = packageSack.PackageSack()
self.repo = FakeRepo("installed")
commit 0f969e0d174ff968fb05059dff51a9a13aab6187
Author: James Antill <james at and.org>
Date: Fri Nov 7 15:22:59 2008 -0500
Fix typo which stopped a testcase from running
diff --git a/test/simpleobsoletestests.py b/test/simpleobsoletestests.py
index ca9750e..9a9b5fc 100644
--- a/test/simpleobsoletestests.py
+++ b/test/simpleobsoletestests.py
@@ -256,7 +256,7 @@ class SimpleObsoletesTests(OperationsTests):
self.assert_(res=='ok', msg)
self.assertResult((pkgs['nash'],pkgs['bigfish'],))
- def testMultiObs2(self):
+ def testMultiObs3(self):
pkgs = self._MultiObsHelper()
res, msg = self.runOperation(['install', 'shark'],
pkgs['pi'], pkgs['po'])
commit 1b89ab3d02b6aa1f23c7fb48b3ae32b8d82d6855
Author: James Antill <james at and.org>
Date: Fri Nov 7 15:21:05 2008 -0500
Test multi. obsoletes for install
diff --git a/test/simpleobsoletestests.py b/test/simpleobsoletestests.py
index 4ea7c82..ca9750e 100644
--- a/test/simpleobsoletestests.py
+++ b/test/simpleobsoletestests.py
@@ -223,6 +223,46 @@ class SimpleObsoletesTests(OperationsTests):
self.assert_(res=='ok', msg)
self.assertResult((p.obsoletes_noarch,))
+ def _MultiObsHelper(self):
+ ret = {'zsh' : FakePackage('zsh', '1', '1', '0', 'noarch'),
+ 'ksh' : FakePackage('ksh', '1', '1', '0', 'noarch'),
+ 'nash' : FakePackage('nash', '1', '1', '0', 'noarch')}
+ ret['pi'] = [ret['zsh'], ret['ksh'], ret['nash']]
+
+ ret['fish'] = FakePackage('fish', '0.1', '1', '0', 'noarch')
+ ret['fish'].addObsoletes('zsh', None, (None, None, None))
+ ret['bigfish'] = FakePackage('bigfish', '0.2', '1', '0', 'noarch')
+ ret['bigfish'].addObsoletes('zsh', None, (None, None, None))
+ ret['bigfish'].addObsoletes('ksh', None, (None, None, None))
+ ret['shark'] = FakePackage('shark', '0.3', '1', '0', 'noarch')
+ ret['shark'].addObsoletes('zsh', None, (None, None, None))
+ ret['shark'].addObsoletes('ksh', None, (None, None, None))
+ ret['shark'].addObsoletes('nash', None, (None, None, None))
+
+ ret['po'] = [ret['fish'], ret['bigfish'], ret['shark']]
+ return ret
+
+ def testMultiObs1(self):
+ pkgs = self._MultiObsHelper()
+ res, msg = self.runOperation(['install', 'fish'],
+ pkgs['pi'], pkgs['po'])
+ self.assert_(res=='ok', msg)
+ self.assertResult((pkgs['ksh'],pkgs['nash'],pkgs['fish'],))
+
+ def testMultiObs2(self):
+ pkgs = self._MultiObsHelper()
+ res, msg = self.runOperation(['install', 'bigfish'],
+ pkgs['pi'], pkgs['po'])
+ self.assert_(res=='ok', msg)
+ self.assertResult((pkgs['nash'],pkgs['bigfish'],))
+
+ def testMultiObs2(self):
+ pkgs = self._MultiObsHelper()
+ res, msg = self.runOperation(['install', 'shark'],
+ pkgs['pi'], pkgs['po'])
+ self.assert_(res=='ok', msg)
+ self.assertResult((pkgs['shark'],))
+
class GitMetapackageObsoletesTests(OperationsTests):
@staticmethod
commit 164337d34544f90823c885075605524b06a2ff5b
Author: James Antill <james at and.org>
Date: Fri Nov 7 15:08:38 2008 -0500
Add testcase for install obsoleters
diff --git a/test/simpleobsoletestests.py b/test/simpleobsoletestests.py
index 05ebf05..4ea7c82 100644
--- a/test/simpleobsoletestests.py
+++ b/test/simpleobsoletestests.py
@@ -217,6 +217,12 @@ class SimpleObsoletesTests(OperationsTests):
self.assertResult((p.obsoletes_i386, p.obsoletes_x86_64, p.requires_obsoletes))
+ def testInstallObsoletenoarchTonoarch(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['install', 'zsh-ng'], [p.installed_noarch], [p.obsoletes_noarch])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.obsoletes_noarch,))
+
class GitMetapackageObsoletesTests(OperationsTests):
@staticmethod
commit 563f25f55324691a76d120d666c7055f74504284
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Fri Nov 7 15:04:20 2008 -0500
make sure we mark as obsoleted pkgs when we do an install.
closes rh bug 470440
diff --git a/yum/__init__.py b/yum/__init__.py
index dcf1654..316d11e 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -2508,8 +2508,19 @@ class YumBase(depsolve.Depsolve):
self.install(po=obsoleting_pkg)
continue
- txmbr = self.tsInfo.addInstall(po)
- tx_return.append(txmbr)
+ # at this point we are going to mark the pkg to be installed, make sure
+ # it doesn't obsolete anything. If it does, mark that in the tsInfo, too
+ if po.pkgtup in self.up.getObsoletesList(name=po.name, arch=po.arch):
+ for (obstup, inst_tup) in self.up.getObsoletesTuples(name=po.name,
+ arch=po.arch):
+ if po.pkgtup == obstup:
+ installed_pkg = self.rpmdb.searchPkgTuple(inst_tup)[0]
+ txmbr = self.tsInfo.addObsoleting(po, installed_pkg)
+ self.tsInfo.addObsoleted(installed_pkg, po)
+ tx_return.append(txmbr)
+ else:
+ txmbr = self.tsInfo.addInstall(po)
+ tx_return.append(txmbr)
return tx_return
commit b8662f1bdc87863095d25505461e57961f23bd21
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Fri Nov 7 11:24:24 2008 -0500
minor modification to make the error message be more accurate
diff --git a/shell.py b/shell.py
index 4c490e8..145e344 100644
--- a/shell.py
+++ b/shell.py
@@ -337,11 +337,13 @@ class YumShell(cmd.Cmd):
if e.errno == 32:
self.logger.critical('\n\nExiting on Broken Pipe')
else:
- if returnval != 0:
- self.verbose_logger.info('Transaction did not run.')
+ if returnval not in [0,1]:
+ self.verbose_logger.info('Transaction encountered a serious error.')
else:
+ if returnval == 1:
+ self.verbose_logger.info('There were non-fatal errors in the transaction')
self.verbose_logger.log(logginglevels.INFO_2,
'Finished Transaction')
- self.base.closeRpmDB()
+ self.base.closeRpmDB()
commit 0a79698b6ce13e918b90e569de618a0b8aa43ef6
Author: James Antill <james at and.org>
Date: Thu Nov 6 10:54:13 2008 -0500
Only eat the exception if it's ENOENT
diff --git a/yum/yumRepo.py b/yum/yumRepo.py
index decc662..9a24d20 100644
--- a/yum/yumRepo.py
+++ b/yum/yumRepo.py
@@ -44,6 +44,7 @@ import warnings
import glob
import shutil
import stat
+import errno
# If you want yum to _always_ check the MD .sqlite files then set this to
# False (this doesn't affect .xml files or .sqilte files derived from them).
@@ -209,8 +210,9 @@ class YumPackageSack(packageSack.PackageSack):
if not repo.cache:
try:
os.unlink(db_un_fn)
- except: # Could have an error before anything happens
- pass
+ except OSError, e:
+ if e.errno != errno.ENOENT:
+ raise # Could have an error before anything happens
else:
result = db_un_fn
commit 9ff0d3ee7cb08e85a3fe6f39c3417ee3be6dc080
Author: James Antill <james at and.org>
Date: Thu Nov 6 10:34:55 2008 -0500
Don't die if we haven't downloaded anything before we get the URLGrabError
diff --git a/yum/yumRepo.py b/yum/yumRepo.py
index b762deb..decc662 100644
--- a/yum/yumRepo.py
+++ b/yum/yumRepo.py
@@ -207,7 +207,10 @@ class YumPackageSack(packageSack.PackageSack):
repo.checkMD(db_un_fn, mdtype, openchecksum=True)
except URLGrabError:
if not repo.cache:
- os.unlink(db_un_fn)
+ try:
+ os.unlink(db_un_fn)
+ except: # Could have an error before anything happens
+ pass
else:
result = db_un_fn
commit 65bf1d5f6ba89ad1f70306525c390f7e11615dc5
Author: James Antill <james at and.org>
Date: Tue Nov 4 18:14:09 2008 -0500
Minor comment copy/paste fix, group => category
diff --git a/yum/comps.py b/yum/comps.py
index f5af0bd..6820c64 100755
--- a/yum/comps.py
+++ b/yum/comps.py
@@ -354,7 +354,7 @@ class Category(CompsObj):
self.translated_description[lang] = obj.translated_description[lang]
def xml(self):
- """write out an xml stanza for the group object"""
+ """write out an xml stanza for the category object"""
msg ="""
<category>
<id>%s</id>
commit ac4b9a7e0ed7afa2bd42d2e7334b64c12afbc50e
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date: Thu Nov 6 15:10:54 2008 +0100
updated catalan translation Xavier Conde
diff --git a/po/ca.po b/po/ca.po
index 4af6f82..f4a0eb3 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -4,6 +4,7 @@
# yum package.
#
# Josep Maria Brunetti Fernández <josepb at gmail.com>, 2008
+# Xavier Conde Rueda <xavi.conde at gmail.com>, 2008
#
# 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
@@ -20,16 +21,16 @@ msgid ""
msgstr ""
"Project-Id-Version: yum\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-10-17 02:09+0000\n"
-"PO-Revision-Date: 2008-10-18 19:39+0200\n"
-"Last-Translator: Josep Maria Brunetti Fernández <josepb at gmail.com>\n"
+"POT-Creation-Date: 2008-11-06 01:31+0000\n"
+"PO-Revision-Date: 2008-11-06 19:39+0200\n"
+"Last-Translator: Xavier Conde Rueda <xavi.conde at gmail.com>\n"
"Language-Team: Language-Team: Catalan <fedora at softcatala.net>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-#: ../callback.py:48 ../output.py:777 ../yum/rpmtrans.py:71
+#: ../callback.py:48 ../output.py:808 ../yum/rpmtrans.py:71
msgid "Updating"
msgstr "S'està actualitzant"
@@ -37,8 +38,7 @@ msgstr "S'està actualitzant"
msgid "Erasing"
msgstr "S'està esborrant"
-#. Arch can't get "that big" ... so always use the max.
-#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:776
+#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:807
#: ../yum/rpmtrans.py:73 ../yum/rpmtrans.py:74 ../yum/rpmtrans.py:76
msgid "Installing"
msgstr "S'està instal·lant"
@@ -47,7 +47,7 @@ msgstr "S'està instal·lant"
msgid "Obsoleted"
msgstr "Obsolet"
-#: ../callback.py:54 ../output.py:890
+#: ../callback.py:54 ../output.py:913
msgid "Updated"
msgstr "Actualitzat"
@@ -55,7 +55,7 @@ msgstr "Actualitzat"
msgid "Erased"
msgstr "Esborrat"
-#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:888
+#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:911
msgid "Installed"
msgstr "Instal·lat"
@@ -77,7 +77,7 @@ msgstr "Error: estat de sortida invà lid: %s per a %s"
msgid "Erased: %s"
msgstr "Esborrat: %s"
-#: ../callback.py:217 ../output.py:778
+#: ../callback.py:217 ../output.py:809
msgid "Removing"
msgstr "S'està esborrant"
@@ -103,7 +103,7 @@ msgstr "S'estan llegint les metadades de repositoris des de fitxers locals"
msgid "Config Error: %s"
msgstr "Error de configuració: %s"
-#: ../cli.py:190 ../cli.py:1125 ../utils.py:74
+#: ../cli.py:190 ../cli.py:1128 ../utils.py:74
#, python-format
msgid "Options Error: %s"
msgstr "Error d'opcions: %s"
@@ -149,7 +149,7 @@ msgstr ""
#: ../cli.py:351
msgid "Trying to run the transaction but nothing to do. Exiting."
msgstr ""
-"S'ha intentat executar la transacció però no hi ha res a fer. S'està sortint."
+"S'ha intentat executar la transacció però no hi ha cap tasca a fer. S'està sortint."
#: ../cli.py:381
msgid "Exiting on user Command"
@@ -163,15 +163,15 @@ msgstr "S'estan descarregant els següents paquets:"
msgid "Error Downloading Packages:\n"
msgstr "S'ha produït un error descarregant els següents paquets:\n"
-#: ../cli.py:404 ../yum/__init__.py:3133
+#: ../cli.py:404 ../yum/__init__.py:3244
msgid "Running rpm_check_debug"
msgstr "S'està executant rpm_check_debug"
-#: ../cli.py:407 ../yum/__init__.py:3136
+#: ../cli.py:407 ../yum/__init__.py:3247
msgid "ERROR with rpm_check_debug vs depsolve:"
msgstr "ERROR amb rpm_check_debug vs depsolve:"
-#: ../cli.py:411 ../yum/__init__.py:3138
+#: ../cli.py:411 ../yum/__init__.py:3249
msgid "Please report this error in bugzilla"
msgstr "Siusplau, informeu d'aquest error al bugzilla"
@@ -215,17 +215,17 @@ msgstr "Paquets %s%s%s disponibles, però no instal·lats."
#: ../cli.py:542 ../cli.py:577
#, python-format
msgid "No package %s%s%s available."
-msgstr "El paquet %s%s%s està disponible."
+msgstr "El paquet %s%s%s no està disponible."
#: ../cli.py:567
msgid "Parsing package install arguments"
msgstr "S'estan analitzant els arguments del paquet a instal·lar"
-#: ../cli.py:582 ../cli.py:657 ../yumcommands.py:889
+#: ../cli.py:582 ../cli.py:657 ../yumcommands.py:933
msgid "Package(s) to install"
msgstr "Paquets a instal·lar"
-#: ../cli.py:583 ../cli.py:658 ../yumcommands.py:150 ../yumcommands.py:890
+#: ../cli.py:583 ../cli.py:658 ../yumcommands.py:151 ../yumcommands.py:934
msgid "Nothing to do"
msgstr "Res a fer"
@@ -272,7 +272,8 @@ msgid ""
"Warning: 3.0.x versions of yum would erronously 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:789
@@ -320,7 +321,7 @@ msgstr "Grups disponibles:"
msgid "Done"
msgstr "Fet"
-#: ../cli.py:875 ../cli.py:893 ../cli.py:899 ../yum/__init__.py:2245
+#: ../cli.py:875 ../cli.py:893 ../cli.py:899 ../yum/__init__.py:2336
#, python-format
msgid "Warning: Group %s does not exist."
msgstr "AvÃs: El grup %s no existeix"
@@ -336,7 +337,7 @@ msgstr ""
msgid "%d Package(s) to Install"
msgstr "%d paquets a instal·lar"
-#: ../cli.py:915 ../yum/__init__.py:2257
+#: ../cli.py:915 ../yum/__init__.py:2348
#, python-format
msgid "No group named %s exists"
msgstr "No existeix cap grup anomenat %s"
@@ -384,246 +385,246 @@ msgstr ""
"\n"
"%s: l'opció %s necessita un argument"
-#: ../cli.py:1167
+#: ../cli.py:1170
msgid "show this help message and exit"
msgstr "mostra el missatge d'ajuda i surt"
-#: ../cli.py:1171
+#: ../cli.py:1174
msgid "be tolerant of errors"
-msgstr "sigues tolerant a errors"
+msgstr "sigues tolerant amb els errors"
-#: ../cli.py:1173
+#: ../cli.py:1176
msgid "run entirely from cache, don't update cache"
-msgstr "executa totalment des de la memòria cau, no actualitzis la memòria cau"
+msgstr "executa totalment des de la memòria cau, no l'actualitzis"
-#: ../cli.py:1175
+#: ../cli.py:1178
msgid "config file location"
msgstr "ubicació del fitxer de configuració"
-#: ../cli.py:1177
+#: ../cli.py:1180
msgid "maximum command wait time"
msgstr "temps mà xim d'espera d'ordres"
-#: ../cli.py:1179
+#: ../cli.py:1182
msgid "debugging output level"
msgstr "nivell de sortida de depuració"
-#: ../cli.py:1183
+#: ../cli.py:1186
msgid "show duplicates, in repos, in list/search commands"
-msgstr "mostra duplicats, en repositoris, en les ordres llista i cerca"
+msgstr "mostra duplicats, en repositoris, en les ordres per llistar i cercar"
-#: ../cli.py:1185
+#: ../cli.py:1188
msgid "error output level"
-msgstr "error en el nivell de sortida"
+msgstr "nivell de sortida d'error"
-#: ../cli.py:1188
+#: ../cli.py:1191
msgid "quiet operation"
msgstr "operació silenciosa"
-#: ../cli.py:1190
+#: ../cli.py:1193
msgid "verbose operation"
msgstr "operació descriptiva"
-#: ../cli.py:1192
+#: ../cli.py:1195
msgid "answer yes for all questions"
msgstr "respon sà a totes les preguntes"
-#: ../cli.py:1194
+#: ../cli.py:1197
msgid "show Yum version and exit"
-msgstr "mostra la versió de Yum i surt"
+msgstr "mostra la versió del Yum i surt"
-#: ../cli.py:1195
+#: ../cli.py:1198
msgid "set install root"
msgstr "estableix l'arrel de la instal·lació"
-#: ../cli.py:1199
+#: ../cli.py:1202
msgid "enable one or more repositories (wildcards allowed)"
msgstr "habilita un o més repositoris (es permeten carà cters de reemplaçament)"
-#: ../cli.py:1203
+#: ../cli.py:1206
msgid "disable one or more repositories (wildcards allowed)"
msgstr ""
"deshabilita un o més repositoris (es permeten carà cters de reemplaçament)"
-#: ../cli.py:1206
+#: ../cli.py:1209
msgid "exclude package(s) by name or glob"
msgstr "exclou els paquets per nom o expressió regular del glob"
-#: ../cli.py:1208
+#: ../cli.py:1211
msgid "disable exclude from main, for a repo or for everything"
-msgstr "deshabilita l'exclusió des de l'inici, per a un repositori o per a tot"
+msgstr "inhabilita l'exclusió des de l'inici, per a un repositori o per a tot"
-#: ../cli.py:1211
+#: ../cli.py:1214
msgid "enable obsoletes processing during updates"
msgstr "habilita el processament d'obsolets durant les actualitzacions"
-#: ../cli.py:1213
+#: ../cli.py:1216
msgid "disable Yum plugins"
-msgstr "deshabilita les extensions de Yum"
+msgstr "inhabilita les extensions de Yum"
-#: ../cli.py:1215
+#: ../cli.py:1218
msgid "disable gpg signature checking"
-msgstr "deshabilita la comprobació de signatures gpg"
+msgstr "inhabilita la comprobació de signatures gpg"
-#: ../cli.py:1217
+#: ../cli.py:1220
msgid "disable plugins by name"
-msgstr "deshabilita extensions per nom"
+msgstr "inhabilita extensions per nom"
-#: ../cli.py:1220
+#: ../cli.py:1223
msgid "enable plugins by name"
msgstr "habilita extensions per nom"
-#: ../cli.py:1223
+#: ../cli.py:1226
msgid "skip packages with depsolving problems"
msgstr "omet paquets amb problemes de resolució de dependències"
-#: ../output.py:236
+#: ../output.py:248
msgid "Jan"
msgstr "Gen"
-#: ../output.py:236
+#: ../output.py:248
msgid "Feb"
msgstr "Feb"
-#: ../output.py:236
+#: ../output.py:248
msgid "Mar"
msgstr "Mar"
-#: ../output.py:236
+#: ../output.py:248
msgid "Apr"
msgstr "Abr"
-#: ../output.py:236
+#: ../output.py:248
msgid "May"
msgstr "Mai"
-#: ../output.py:236
+#: ../output.py:248
msgid "Jun"
msgstr "Jun"
-#: ../output.py:237
+#: ../output.py:249
msgid "Jul"
msgstr "Jul"
-#: ../output.py:237
+#: ../output.py:249
msgid "Aug"
msgstr "Ago"
-#: ../output.py:237
+#: ../output.py:249
msgid "Sep"
msgstr "Set"
-#: ../output.py:237
+#: ../output.py:249
msgid "Oct"
msgstr "Oct"
-#: ../output.py:237
+#: ../output.py:249
msgid "Nov"
msgstr "Nov"
-#: ../output.py:237
+#: ../output.py:249
msgid "Dec"
msgstr "Des"
-#: ../output.py:247
+#: ../output.py:259
msgid "Trying other mirror."
msgstr "S'està intentant un altre servidor rèplica."
-#: ../output.py:425
+#: ../output.py:439
#, python-format
msgid "Name : %s%s%s"
msgstr "Nom : %s%s%s"
-#: ../output.py:426
+#: ../output.py:440
#, python-format
msgid "Arch : %s"
msgstr "Arq : %s"
-#: ../output.py:428
+#: ../output.py:442
#, python-format
msgid "Epoch : %s"
msgstr "Ãpoca : %s"
-#: ../output.py:429
+#: ../output.py:443
#, python-format
msgid "Version : %s"
msgstr "Versió : %s"
-#: ../output.py:430
+#: ../output.py:444
#, python-format
msgid "Release : %s"
msgstr "Release : %s"
-#: ../output.py:431
+#: ../output.py:445
#, python-format
msgid "Size : %s"
msgstr "Mida : %s"
-#: ../output.py:432
+#: ../output.py:446
#, python-format
msgid "Repo : %s"
msgstr "Repo : %s"
-#: ../output.py:434
+#: ../output.py:448
#, python-format
msgid "Committer : %s"
msgstr "Desenvolupador : %s"
-#: ../output.py:435
+#: ../output.py:449
#, python-format
msgid "Committime : %s"
msgstr "Pujat : %s"
-#: ../output.py:436
+#: ../output.py:450
#, python-format
msgid "Buildtime : %s"
msgstr "Temps de creació : %s"
-#: ../output.py:438
+#: ../output.py:452
#, python-format
msgid "Installtime: %s"
msgstr "Temps d'instal·lació: %s"
-#: ../output.py:439
+#: ../output.py:453
msgid "Summary : "
msgstr "Resum : "
-#: ../output.py:441
+#: ../output.py:455
#, python-format
msgid "URL : %s"
msgstr "URL : %s"
-#: ../output.py:442
+#: ../output.py:456
#, python-format
msgid "License : %s"
msgstr "Llicència : %s"
-#: ../output.py:443
+#: ../output.py:457
msgid "Description: "
msgstr "Descripció: "
-#: ../output.py:500
+#: ../output.py:514
msgid "y"
msgstr "s"
-#: ../output.py:500
+#: ../output.py:514
msgid "yes"
msgstr "sÃ"
-#: ../output.py:501
+#: ../output.py:515
msgid "n"
msgstr "n"
-#: ../output.py:501
+#: ../output.py:515
msgid "no"
msgstr "no"
# REMEMBER to Translate [Y/N] to the current locale
-#: ../output.py:505
+#: ../output.py:519
msgid "Is this ok [y/N]: "
msgstr "Ãs correcte [s/N]: "
-#: ../output.py:587
+#: ../output.py:601
#, python-format
msgid ""
"\n"
@@ -632,119 +633,123 @@ msgstr ""
"\n"
"Grup: %s"
-#: ../output.py:594
+#: ../output.py:608
#, python-format
msgid " Description: %s"
msgstr " Descripció: %s"
-#: ../output.py:596
+#: ../output.py:610
msgid " Mandatory Packages:"
msgstr " Paquets obligatoris:"
-#: ../output.py:597
+#: ../output.py:611
msgid " Default Packages:"
msgstr " Paquets per defecte:"
-#: ../output.py:598
+#: ../output.py:612
msgid " Optional Packages:"
msgstr " Paquets opcionals:"
-#: ../output.py:599
+#: ../output.py:613
msgid " Conditional Packages:"
msgstr " Paquets condicionals:"
-#: ../output.py:619
+#: ../output.py:633
#, python-format
msgid "package: %s"
msgstr "paquet: %s"
-#: ../output.py:621
+#: ../output.py:635
msgid " No dependencies for this package"
msgstr " No hi ha dependències per a aquest paquet"
-#: ../output.py:626
+#: ../output.py:640
#, python-format
msgid " dependency: %s"
msgstr " dependència: %s"
-#: ../output.py:628
+#: ../output.py:642
msgid " Unsatisfied dependency"
msgstr " Dependència insatisfeta"
-#: ../output.py:700
+#: ../output.py:714
msgid "Matched from:"
msgstr "Coincidències amb:"
-#: ../output.py:708
+#: ../output.py:722
msgid "Description : "
msgstr "Descripció: "
-#: ../output.py:711
+#: ../output.py:725
#, python-format
msgid "URL : %s"
msgstr "URL : %s"
-#: ../output.py:714
+#: ../output.py:728
#, python-format
msgid "License : %s"
msgstr "Llicència : %s"
-#: ../output.py:717
+#: ../output.py:731
#, python-format
msgid "Filename : %s"
msgstr "Fitxer : %s"
-#: ../output.py:721
+#: ../output.py:735
msgid "Other : "
msgstr "Altre : "
-#: ../output.py:753
+#: ../output.py:767
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:758
+#: ../output.py:772
#, python-format
msgid "Total size: %s"
msgstr "Mida total: %s"
-#: ../output.py:761
+#: ../output.py:775
#, python-format
msgid "Total download size: %s"
msgstr "Mida total de la descà rrega: %s"
-#: ../output.py:779
+#: ../output.py:810
msgid "Installing for dependencies"
msgstr "S'està instal·lant per dependències"
-#: ../output.py:780
+#: ../output.py:811
msgid "Updating for dependencies"
-msgstr "S'està actualitzant per dependències"
+msgstr "S'està actualitzant degut a les dependències"
-#: ../output.py:781
+#: ../output.py:812
msgid "Removing for dependencies"
-msgstr "S'està esborrant per dependències"
+msgstr "S'està esborrant degut a les dependències"
+
+#: ../output.py:819 ../output.py:915
+msgid "Skipped (dependency problems)"
+msgstr "Ignorat degut a problemes de dependències:"
-#: ../output.py:817
+#: ../output.py:840
msgid "Package"
msgstr "Paquet"
-#: ../output.py:817
+#: ../output.py:840
msgid "Arch"
msgstr "Arq"
-#: ../output.py:818
+#: ../output.py:841
msgid "Version"
msgstr "Versió"
-#: ../output.py:818
+#: ../output.py:841
msgid "Repository"
msgstr "Repositori"
-#: ../output.py:819
+#: ../output.py:842
msgid "Size"
msgstr "Mida"
-#: ../output.py:830
+#: ../output.py:853
#, python-format
msgid ""
" replacing %s.%s %s\n"
@@ -753,7 +758,7 @@ msgstr ""
" s'està reemplaçant %s.%s %s\n"
"\n"
-#: ../output.py:838
+#: ../output.py:861
#, python-format
msgid ""
"\n"
@@ -770,27 +775,27 @@ msgstr ""
"Actualitza %5.5s paquets \n"
"Esborra %5.5s paquets \n"
-#: ../output.py:886
+#: ../output.py:909
msgid "Removed"
msgstr "Esborrat"
-#: ../output.py:887
+#: ../output.py:910
msgid "Dependency Removed"
msgstr "Dependència esborrada"
-#: ../output.py:889
+#: ../output.py:912
msgid "Dependency Installed"
msgstr "Dependència instal·lada"
-#: ../output.py:891
+#: ../output.py:914
msgid "Dependency Updated"
msgstr "Dependència actualitzada"
-#: ../output.py:892
+#: ../output.py:916
msgid "Replaced"
msgstr "Reemplaçat"
-#: ../output.py:965
+#: ../output.py:989
#, python-format
msgid ""
"\n"
@@ -801,81 +806,81 @@ msgstr ""
"S'ha cancel·lat la descà rrega actual, %sinterromp (crtl-c) de nou%s en %s%s%"
"s segons per a sortir.\n"
-#: ../output.py:975
+#: ../output.py:999
msgid "user interrupt"
msgstr "interrupció de l'usuari"
-#: ../output.py:991
+#: ../output.py:1015
msgid "Total"
msgstr "Total"
-#: ../output.py:1005
+#: ../output.py:1029
msgid "installed"
msgstr "instal·lat"
-#: ../output.py:1006
+#: ../output.py:1030
msgid "updated"
msgstr "actualitzat"
-#: ../output.py:1007
+#: ../output.py:1031
msgid "obsoleted"
msgstr "obsolet"
-#: ../output.py:1008
+#: ../output.py:1032
msgid "erased"
msgstr "esborrat"
-#: ../output.py:1012
+#: ../output.py:1036
#, 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:1019
+#: ../output.py:1043
msgid "--> Running transaction check"
msgstr "--> S'està executant la transacció de prova"
-#: ../output.py:1024
+#: ../output.py:1048
msgid "--> Restarting Dependency Resolution with new changes."
msgstr ""
"--> Tornant a calcular la resolució de dependències amb els nous canvis."
-#: ../output.py:1029
+#: ../output.py:1053
msgid "--> Finished Dependency Resolution"
msgstr "--> Ha finalitzat la resolució de dependències"
-#: ../output.py:1034
+#: ../output.py:1058
#, python-format
msgid "--> Processing Dependency: %s for package: %s"
msgstr "--> S'està processant la dependència %s per al paquet: %s"
-#: ../output.py:1039
+#: ../output.py:1063
#, python-format
msgid "--> Unresolved Dependency: %s"
msgstr "--> Dependència no resolta: %s"
-#: ../output.py:1045
+#: ../output.py:1069
#, python-format
msgid "--> Processing Conflict: %s conflicts %s"
msgstr "--> S'està processant el conflicte: %s té un conflicte amb %s"
-#: ../output.py:1048
+#: ../output.py:1072
msgid "--> Populating transaction set with selected packages. Please wait."
msgstr ""
"--> S'està poblant la transacció amb els paquets sel·leccionats. Si us plau, "
"espereu."
-#: ../output.py:1052
+#: ../output.py:1076
#, 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."
-#: ../yumcommands.py:40
+#: ../yumcommands.py:41
msgid "You need to be root to perform this command."
msgstr "Heu de ser root per a executar aquesta ordre."
-#: ../yumcommands.py:47
+#: ../yumcommands.py:48
msgid ""
"\n"
"You have enabled checking of packages via GPG keys. This is a good thing. \n"
@@ -897,7 +902,7 @@ msgstr ""
"opció. \n"
"No obstant, no teniu cap clau pública GPG instal·lada. Necessiteu "
"descarregar\n"
-"les claus per als paquets paquets que desitdeu instal·lar i instal·lar-les.\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"
"\n"
@@ -906,295 +911,312 @@ 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 distribuidor o proveïdor de "
+"Per a més informació contacteu el vostre distribuÃdor o proveïdor de "
"paquets.\n"
-#: ../yumcommands.py:67
+#: ../yumcommands.py:68
#, 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:73
+#: ../yumcommands.py:74
msgid "Error: Need an item to match"
msgstr "Error: es necessita algun element per comparar"
-#: ../yumcommands.py:79
+#: ../yumcommands.py:80
msgid "Error: Need a group or list of groups"
msgstr "Error: es necessita un grup o una llista de grups"
-#: ../yumcommands.py:88
+#: ../yumcommands.py:89
#, python-format
msgid "Error: clean requires an option: %s"
msgstr "Error: la neteja requereix una opció: %s"
-#: ../yumcommands.py:93
+#: ../yumcommands.py:94
#, python-format
msgid "Error: invalid clean argument: %r"
msgstr "Error: argument invà lid per a la neteja: %r"
-#: ../yumcommands.py:106
+#: ../yumcommands.py:107
msgid "No argument to shell"
msgstr "No hi ha arguments per a l'intèrpret d'ordres"
-#: ../yumcommands.py:109
+#: ../yumcommands.py:110
#, python-format
msgid "Filename passed to shell: %s"
msgstr "Nom del fitxer passat a l'intèrpret d'ordres: %s"
-#: ../yumcommands.py:113
+#: ../yumcommands.py:114
#, 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:119
+#: ../yumcommands.py:120
msgid "Error: more than one file given as argument to shell."
msgstr ""
-"Error: s'ha donat més d'un fitxer com a arguments per a l'intèrpret d'ordres."
+"Error: s'ha donat més d'un fitxer com a argument per a l'intèrpret d'ordres."
-#: ../yumcommands.py:160
+#: ../yumcommands.py:161
msgid "PACKAGE..."
msgstr "PAQUET..."
-#: ../yumcommands.py:163
+#: ../yumcommands.py:164
msgid "Install a package or packages on your system"
msgstr "Instal·la un o més paquets al vostre sistema"
-#: ../yumcommands.py:172
+#: ../yumcommands.py:173
msgid "Setting up Install Process"
msgstr "S'està preparant el procés d'instal·lació"
-#: ../yumcommands.py:183
+#: ../yumcommands.py:184
msgid "[PACKAGE...]"
msgstr "[PAQUET...]"
-#: ../yumcommands.py:186
+#: ../yumcommands.py:187
msgid "Update a package or packages on your system"
msgstr "S'ha actualitzat un o més paquets al vostre sistema"
-#: ../yumcommands.py:194
+#: ../yumcommands.py:195
msgid "Setting up Update Process"
msgstr "S'està preparant el procés d'actualització"
-#: ../yumcommands.py:236
+#: ../yumcommands.py:237
msgid "Display details about a package or group of packages"
msgstr "Mostra detalls sobre un paquet o un grup de paquets"
#. Output the packages:
-#: ../yumcommands.py:261
+#: ../yumcommands.py:262
msgid "Installed Packages"
msgstr "Paquets instal·lats"
-#: ../yumcommands.py:263
+#: ../yumcommands.py:264
msgid "Available Packages"
msgstr "Paquets disponibles"
-#: ../yumcommands.py:265
+#: ../yumcommands.py:266
msgid "Extra Packages"
msgstr "Paquets extra"
-#: ../yumcommands.py:267
+#: ../yumcommands.py:268
msgid "Updated Packages"
msgstr "Paquets actualitzats"
-#: ../yumcommands.py:274 ../yumcommands.py:281
+#: ../yumcommands.py:275 ../yumcommands.py:282 ../yumcommands.py:551
msgid "Obsoleting Packages"
-msgstr "Paquets fets obsolets"
+msgstr "Paquets obsolets"
-#: ../yumcommands.py:283
+#: ../yumcommands.py:284
msgid "Recently Added Packages"
msgstr "Paquets recentment afegits"
-#: ../yumcommands.py:290
+#: ../yumcommands.py:291
msgid "No matching Packages to list"
msgstr "No hi ha paquets coincidents per llistar"
-#: ../yumcommands.py:304
+#: ../yumcommands.py:305
msgid "List a package or groups of packages"
msgstr "Llista un paquet o un grup de paquets"
-#: ../yumcommands.py:316
+#: ../yumcommands.py:317
msgid "Remove a package or packages from your system"
msgstr "Esborra un o més paquets del vostre sistema"
-#: ../yumcommands.py:324
+#: ../yumcommands.py:325
msgid "Setting up Remove Process"
msgstr "S'està preparant el procés d'esborrat"
-#: ../yumcommands.py:339
+#: ../yumcommands.py:340
msgid "Setting up Group Process"
msgstr "S'està preparant el procés de grup"
-#: ../yumcommands.py:345
+#: ../yumcommands.py:346
msgid "No Groups on which to run command"
msgstr "No hi ha cap grup on executar l'ordre"
-#: ../yumcommands.py:358
+#: ../yumcommands.py:359
msgid "List available package groups"
msgstr "Llista els grups de paquets disponibles"
-#: ../yumcommands.py:375
+#: ../yumcommands.py:376
msgid "Install the packages in a group on your system"
msgstr "Instal·la els paquets en un grup en el vostre sistema"
-#: ../yumcommands.py:397
+#: ../yumcommands.py:398
msgid "Remove the packages in a group from your system"
msgstr "Esborra els paquets en un grup en el vostre sistema"
-#: ../yumcommands.py:424
+#: ../yumcommands.py:425
msgid "Display details about a package group"
msgstr "Mostra detalls sobre un grup de paquets"
-#: ../yumcommands.py:448
+#: ../yumcommands.py:449
msgid "Generate the metadata cache"
msgstr "Genera les metadades de la memòria cau"
-#: ../yumcommands.py:454
+#: ../yumcommands.py:455
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."
-#: ../yumcommands.py:455
+#: ../yumcommands.py:456
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:476
+#: ../yumcommands.py:477
msgid "Metadata Cache Created"
msgstr "S'han creat les metadades per a la memòria cau"
-#: ../yumcommands.py:490
+#: ../yumcommands.py:491
msgid "Remove cached data"
msgstr "S'han esborrat les dades de la memòria cau"
-#: ../yumcommands.py:511
+#: ../yumcommands.py:512
msgid "Find what package provides the given value"
msgstr "Troba quin paquet proporciona el valor donat"
-#: ../yumcommands.py:531
+#: ../yumcommands.py:532
msgid "Check for available package updates"
msgstr "Comprova si hi ha actualitzacions de paquets disponibles"
-#: ../yumcommands.py:556
+#: ../yumcommands.py:571
msgid "Search package details for the given string"
msgstr "Busca detalls del paquet per la cadena donada"
-#: ../yumcommands.py:562
+#: ../yumcommands.py:577
msgid "Searching Packages: "
msgstr "S'estan buscant paquets: "
-#: ../yumcommands.py:579
+#: ../yumcommands.py:594
msgid "Update packages taking obsoletes into account"
msgstr "Actualitza paquets tenint en compte els obsolets"
-#: ../yumcommands.py:588
+#: ../yumcommands.py:603
msgid "Setting up Upgrade Process"
msgstr "S'està preparant el procés d'actualització"
-#: ../yumcommands.py:602
+#: ../yumcommands.py:617
msgid "Install a local RPM"
msgstr "Instal·la un RPM local"
-#: ../yumcommands.py:611
+#: ../yumcommands.py:626
msgid "Setting up Local Package Process"
msgstr "S'està configurant el procés local de paquets"
-#: ../yumcommands.py:630
+#: ../yumcommands.py:645
msgid "Determine which package provides the given dependency"
msgstr "Determina quin paquet satisfà la dependència donada"
-#: ../yumcommands.py:633
+#: ../yumcommands.py:648
msgid "Searching Packages for Dependency:"
msgstr "S'estan buscant paquets per a la dependència:"
-#: ../yumcommands.py:647
+#: ../yumcommands.py:662
msgid "Run an interactive yum shell"
msgstr "Executa un intèrpret d'ordres interactiu de yum"
-#: ../yumcommands.py:653
+#: ../yumcommands.py:668
msgid "Setting up Yum Shell"
msgstr "S'està preparant l'intèrpret d'ordres de yum"
-#: ../yumcommands.py:671
+#: ../yumcommands.py:686
msgid "List a package's dependencies"
msgstr "Llista les dependències d'un paquet"
-#: ../yumcommands.py:677
+#: ../yumcommands.py:692
msgid "Finding dependencies: "
msgstr "S'estan trobant dependències: "
-#: ../yumcommands.py:693
+#: ../yumcommands.py:708
msgid "Display the configured software repositories"
msgstr "Mostra els repositoris de programari configurats"
-#: ../yumcommands.py:742
+#: ../yumcommands.py:756 ../yumcommands.py:769 ../yumcommands.py:770
msgid "enabled"
msgstr "habilitat"
-#: ../yumcommands.py:751
+#: ../yumcommands.py:765 ../yumcommands.py:768
msgid "disabled"
msgstr "deshabilitat"
-#: ../yumcommands.py:760
+#: ../yumcommands.py:777
msgid "repo id"
msgstr "id repo"
-#: ../yumcommands.py:761
+#: ../yumcommands.py:778
msgid "repo name"
msgstr "nom repo"
-#: ../yumcommands.py:761
+#: ../yumcommands.py:780
msgid "status"
msgstr "estat"
-#: ../yumcommands.py:764
+#: ../yumcommands.py:790
msgid "Repo-id : "
msgstr "Id-repo : "
-#: ../yumcommands.py:765
+#: ../yumcommands.py:791
msgid "Repo-name : "
msgstr "Nom-repo : "
-#: ../yumcommands.py:766
+#: ../yumcommands.py:792
msgid "Repo-status : "
msgstr "Estat-repo : "
-#: ../yumcommands.py:768
+#: ../yumcommands.py:794
+
+msgid "Repo-revision: "
+msgstr "Repo-revisió : "
+
+#: ../yumcommands.py:798
+msgid "Repo-tags : "
+msgstr "Repo-etiquetes : "
+
+#: ../yumcommands.py:804
+msgid "Repo-distro-tags: "
+msgstr "Repo-etiq-dist : "
+
+#: ../yumcommands.py:809
msgid "Repo-updated: "
msgstr "Repo-actualitzat: "
-#: ../yumcommands.py:770
+#: ../yumcommands.py:811
msgid "Repo-pkgs : "
msgstr "Paquets-repo : "
-#: ../yumcommands.py:771
+#: ../yumcommands.py:812
msgid "Repo-size : "
msgstr "Mida-repo : "
-#: ../yumcommands.py:774
+#: ../yumcommands.py:819
msgid "Repo-baseurl: "
msgstr "URL-base-repo : "
-#: ../yumcommands.py:778
+#: ../yumcommands.py:823
+msgid "Repo-metalink: "
+msgstr "Repo-metaenllaç : "
+
+#: ../yumcommands.py:826
msgid "Repo-mirrors: "
msgstr "Miralls-repo : "
-#: ../yumcommands.py:782
+#: ../yumcommands.py:830
msgid "Repo-exclude: "
msgstr "Repo-exclou : "
-#: ../yumcommands.py:786
+#: ../yumcommands.py:834
msgid "Repo-include: "
msgstr "Repo-inclou : "
-#: ../yumcommands.py:812
+#: ../yumcommands.py:856
msgid "Display a helpful usage message"
msgstr "Mostra un missatge d'ajuda d'ús"
-#: ../yumcommands.py:846
+#: ../yumcommands.py:890
#, python-format
msgid "No help available for %s"
msgstr "No hi ha ajuda disponible per a %s"
-#: ../yumcommands.py:851
+#: ../yumcommands.py:895
msgid ""
"\n"
"\n"
@@ -1204,7 +1226,7 @@ msgstr ""
"\n"
"Ã lies: "
-#: ../yumcommands.py:853
+#: ../yumcommands.py:897
msgid ""
"\n"
"\n"
@@ -1214,11 +1236,11 @@ msgstr ""
"\n"
"Ã lies: "
-#: ../yumcommands.py:882
+#: ../yumcommands.py:926
msgid "Setting up Reinstall Process"
msgstr "S'està preparant el procés de reinstal·lació"
-#: ../yumcommands.py:896
+#: ../yumcommands.py:940
msgid "reinstall a package"
msgstr "reinstal·la un paquet"
@@ -1289,201 +1311,201 @@ msgstr ""
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:97
+#: ../yum/depsolve.py:99
msgid "Setting up TransactionSets before config class is up"
msgstr ""
"S'està configurant TransactionSets abans que la classe de configuració "
"estigui iniciada"
-#: ../yum/depsolve.py:148
+#: ../yum/depsolve.py:150
#, python-format
msgid "Invalid tsflag in config file: %s"
msgstr "Tsflag invà lid en el fitxer de configuració: %s"
-#: ../yum/depsolve.py:159
+#: ../yum/depsolve.py:161
#, python-format
msgid "Searching pkgSack for dep: %s"
msgstr "S'està buscant pkgSack per a la dependència: %s"
-#: ../yum/depsolve.py:182
+#: ../yum/depsolve.py:184
#, python-format
msgid "Potential match for %s from %s"
msgstr "Coincidència potencial per a %s de %s"
-#: ../yum/depsolve.py:190
+#: ../yum/depsolve.py:192
#, python-format
msgid "Matched %s to require for %s"
msgstr "La coincidència %s es requereix per a %s"
-#: ../yum/depsolve.py:231
+#: ../yum/depsolve.py:233
#, python-format
msgid "Member: %s"
msgstr "Membre: %s"
-#: ../yum/depsolve.py:245 ../yum/depsolve.py:732
+#: ../yum/depsolve.py:247 ../yum/depsolve.py:734
#, python-format
msgid "%s converted to install"
msgstr "%s convertits per a instal·lar"
-#: ../yum/depsolve.py:252
+#: ../yum/depsolve.py:254
#, python-format
msgid "Adding Package %s in mode %s"
msgstr "S'està afegint el paquet %s en mode %s"
-#: ../yum/depsolve.py:262
+#: ../yum/depsolve.py:264
#, python-format
msgid "Removing Package %s"
msgstr "S'està esborrant el paquet %s"
-#: ../yum/depsolve.py:273
+#: ../yum/depsolve.py:275
#, python-format
msgid "%s requires: %s"
msgstr "%s requereix: %s"
-#: ../yum/depsolve.py:331
+#: ../yum/depsolve.py:333
msgid "Needed Require has already been looked up, cheating"
msgstr ""
"El requeriment necessari ja s'ha buscat anteriorment, s'estan fent trampes"
-#: ../yum/depsolve.py:341
+#: ../yum/depsolve.py:343
#, 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:348
+#: ../yum/depsolve.py:350
#, python-format
msgid "Potential Provider: %s"
msgstr "Proveïdor potencial: %s"
-#: ../yum/depsolve.py:371
+#: ../yum/depsolve.py:373
#, 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:375
+#: ../yum/depsolve.py:377
#, python-format
msgid "Mode for pkg providing %s: %s"
msgstr "Mode per al paquet que proporciona %s: %s"
-#: ../yum/depsolve.py:379
+#: ../yum/depsolve.py:381
#, python-format
msgid "TSINFO: %s package requiring %s marked as erase"
msgstr "TSINFO: el paquet %s requereix %s marcat per a esborrar"
-#: ../yum/depsolve.py:391
+#: ../yum/depsolve.py:393
#, 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."
-#: ../yum/depsolve.py:394
+#: ../yum/depsolve.py:396
#, python-format
msgid "TSINFO: Updating %s to resolve dep."
msgstr "TSINFO: S'està actualitzant %s per a resoldre dependències."
-#: ../yum/depsolve.py:402
+#: ../yum/depsolve.py:404
#, 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:412
+#: ../yum/depsolve.py:414
#, python-format
msgid "Unresolvable requirement %s for %s"
msgstr "No es pot resoldre el requeriment %s per a %s"
-#: ../yum/depsolve.py:435
+#: ../yum/depsolve.py:437
#, 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:477
+#: ../yum/depsolve.py:479
#, 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."
-#: ../yum/depsolve.py:492
+#: ../yum/depsolve.py:494
#, 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"
-#: ../yum/depsolve.py:503
+#: ../yum/depsolve.py:505
#, 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."
-#: ../yum/depsolve.py:511 ../yum/depsolve.py:560
+#: ../yum/depsolve.py:513 ../yum/depsolve.py:562
#, python-format
msgid "Missing Dependency: %s is needed by package %s"
msgstr "La dependència que falta: %s es necessita per al paquet %s"
-#: ../yum/depsolve.py:524
+#: ../yum/depsolve.py:526
#, python-format
msgid "%s already in ts, skipping this one"
msgstr "%s ja es troba en ts, s'està ometent"
-#: ../yum/depsolve.py:570
+#: ../yum/depsolve.py:572
#, 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:578
+#: ../yum/depsolve.py:580
#, 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:670 ../yum/depsolve.py:750
+#: ../yum/depsolve.py:672 ../yum/depsolve.py:752
msgid "Success - empty transaction"
msgstr "Ãxit - transacció buida"
-#: ../yum/depsolve.py:709 ../yum/depsolve.py:722
+#: ../yum/depsolve.py:711 ../yum/depsolve.py:724
msgid "Restarting Loop"
msgstr "S'està recomençant el bucle"
-#: ../yum/depsolve.py:738
+#: ../yum/depsolve.py:740
msgid "Dependency Process ending"
msgstr "Està acabant el procés de dependències"
-#: ../yum/depsolve.py:744
+#: ../yum/depsolve.py:746
#, python-format
msgid "%s from %s has depsolving problems"
msgstr "%s de %s té problemes resolent dependències"
-#: ../yum/depsolve.py:751
+#: ../yum/depsolve.py:753
msgid "Success - deps resolved"
msgstr "Ãxit - dependències resoltes"
-#: ../yum/depsolve.py:765
+#: ../yum/depsolve.py:767
#, python-format
msgid "Checking deps for %s"
msgstr "S'estan comprobant les dependències per a %s"
-#: ../yum/depsolve.py:848
+#: ../yum/depsolve.py:850
#, python-format
msgid "looking for %s as a requirement of %s"
msgstr "s'està buscant %s com a requeriment de %s"
-#: ../yum/depsolve.py:988
+#: ../yum/depsolve.py:990
#, python-format
msgid "Running compare_providers() for %s"
msgstr "S'està executant compare_providers() per a %s"
-#: ../yum/depsolve.py:1016 ../yum/depsolve.py:1022
+#: ../yum/depsolve.py:1018 ../yum/depsolve.py:1024
#, python-format
msgid "better arch in po %s"
msgstr "millor arq en el po %s"
-#: ../yum/depsolve.py:1061
+#: ../yum/depsolve.py:1063
#, python-format
msgid "%s obsoletes %s"
msgstr "%s fa obsolet %s"
-#: ../yum/depsolve.py:1077
+#: ../yum/depsolve.py:1079
#, python-format
msgid ""
"archdist compared %s to %s on %s\n"
@@ -1492,116 +1514,116 @@ msgstr ""
"archdist ha comparat %s amb %s a %s\n"
" Ha guanyat: %s"
-#: ../yum/depsolve.py:1084
+#: ../yum/depsolve.py:1086
#, python-format
msgid "common sourcerpm %s and %s"
msgstr "rpm font comú %s i %s"
-#: ../yum/depsolve.py:1090
+#: ../yum/depsolve.py:1092
#, python-format
msgid "common prefix of %s between %s and %s"
msgstr "prefix comú de %s entre %s i %s"
-#: ../yum/depsolve.py:1098
+#: ../yum/depsolve.py:1100
#, python-format
msgid "Best Order: %s"
msgstr "Millor ordre: %s"
-#: ../yum/__init__.py:134
+#: ../yum/__init__.py:135
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:314
+#: ../yum/__init__.py:315
#, 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:352
+#: ../yum/__init__.py:353
msgid "plugins already initialised"
msgstr "els connectors ja estan inicialitzats"
-#: ../yum/__init__.py:359
+#: ../yum/__init__.py:360
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:369
+#: ../yum/__init__.py:370
msgid "Reading Local RPMDB"
msgstr "S'està llegint un RPMDB local"
-#: ../yum/__init__.py:387
+#: ../yum/__init__.py:388
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:407
+#: ../yum/__init__.py:408
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:424
+#: ../yum/__init__.py:425
msgid "Setting up Package Sacks"
msgstr "S'estan configurant els sacs de paquets"
-#: ../yum/__init__.py:467
+#: ../yum/__init__.py:468
#, 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:468
+#: ../yum/__init__.py:469
msgid "therefore this repo cannot be reset.\n"
msgstr "Aquest repositori no es pot reiniciar.\n"
-#: ../yum/__init__.py:473
+#: ../yum/__init__.py:474
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:485
+#: ../yum/__init__.py:486
msgid "Building updates object"
msgstr "S'està construint l'objecte d'actualitzacions"
-#: ../yum/__init__.py:516
+#: ../yum/__init__.py:517
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:540
+#: ../yum/__init__.py:541
msgid "Getting group metadata"
msgstr "S'estan obtenint les metadades del grup"
-#: ../yum/__init__.py:566
+#: ../yum/__init__.py:567
#, python-format
msgid "Adding group file from repository: %s"
msgstr "S'està afegint el fitxer del grup des del repositori: %s"
-#: ../yum/__init__.py:575
+#: ../yum/__init__.py:576
#, 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:581
+#: ../yum/__init__.py:582
msgid "No Groups Available in any repository"
msgstr "No hi ha cap grup disponible en cap repositori"
-#: ../yum/__init__.py:631
+#: ../yum/__init__.py:632
msgid "Importing additional filelist information"
msgstr "S'està important informació adicional de la llista de fitxers"
-#: ../yum/__init__.py:639
+#: ../yum/__init__.py:641
msgid ""
-"There are unfinished transactions remaining. You mightconsider running yum-"
+"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-ho."
+"Encara hi ha transaccions sense acabar. HaurÃeu de considerar executar yum-"
+"complete-transaction abans per acabar-les."
-#: ../yum/__init__.py:689
+#: ../yum/__init__.py:702
#, python-format
msgid "Skip-broken round %i"
msgstr "Intent %i d'omissió dels trencats"
-#: ../yum/__init__.py:712
+#: ../yum/__init__.py:751
#, python-format
msgid "Skip-broken took %i rounds "
msgstr "L'omisió dels trencats ha necessitat %i intents"
-#: ../yum/__init__.py:713
+#: ../yum/__init__.py:752
msgid ""
"\n"
"Packages skipped because of dependency problems:"
@@ -1609,93 +1631,93 @@ msgstr ""
"\n"
"Paquets omesos degut a problemes de dependències:"
-#: ../yum/__init__.py:717
+#: ../yum/__init__.py:756
#, python-format
msgid " %s from %s"
msgstr " %s des de %s"
-#: ../yum/__init__.py:802
+#: ../yum/__init__.py:878
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:818
+#: ../yum/__init__.py:894
#, python-format
msgid "Failed to remove transaction file %s"
msgstr "No s'ha pogut esborrar el fitxer de transaccions %s"
-#: ../yum/__init__.py:859
+#: ../yum/__init__.py:935
#, python-format
msgid "excluding for cost: %s from %s"
msgstr "s'està excloent per cost: %s de %s"
-#: ../yum/__init__.py:890
+#: ../yum/__init__.py:966
msgid "Excluding Packages in global exclude list"
msgstr "S'estan excloent paquets en la llista global d'exclusió"
-#: ../yum/__init__.py:892
+#: ../yum/__init__.py:968
#, python-format
msgid "Excluding Packages from %s"
msgstr "S'estan excloent paquets de %s"
-#: ../yum/__init__.py:919
+#: ../yum/__init__.py:995
#, python-format
msgid "Reducing %s to included packages only"
msgstr "S'està reduint %s únicament a paquets inclosos."
-#: ../yum/__init__.py:925
+#: ../yum/__init__.py:1001
#, python-format
msgid "Keeping included package %s"
msgstr "S'està mantenint el paquet inclòs %s"
-#: ../yum/__init__.py:931
+#: ../yum/__init__.py:1007
#, python-format
msgid "Removing unmatched package %s"
msgstr "S'està esborrant el paquet sense coincidències %s"
-#: ../yum/__init__.py:934
+#: ../yum/__init__.py:1010
msgid "Finished"
msgstr "Finalitzat"
#. Whoa. What the heck happened?
-#: ../yum/__init__.py:964
+#: ../yum/__init__.py:1040
#, 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:968
+#: ../yum/__init__.py:1044
#, 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:1039
+#: ../yum/__init__.py:1115
msgid "Package does not match intended download"
msgstr "El paquet no coincideix amb la descà rrega intentada"
-#: ../yum/__init__.py:1054
+#: ../yum/__init__.py:1130
msgid "Could not perform checksum"
msgstr "No s'ha pogut realitzar la suma de verificació"
-#: ../yum/__init__.py:1057
+#: ../yum/__init__.py:1133
msgid "Package does not match checksum"
msgstr "No coincideix la suma de verificació del paquet"
-#: ../yum/__init__.py:1100
+#: ../yum/__init__.py:1176
#, 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"
-#: ../yum/__init__.py:1103
+#: ../yum/__init__.py:1179 ../yum/__init__.py:1207
#, python-format
msgid "using local copy of %s"
msgstr "s'està utilitzant la còpia local de %s"
-#: ../yum/__init__.py:1130
+#: ../yum/__init__.py:1221
#, python-format
msgid ""
"Insufficient space in download directory %s\n"
@@ -1706,11 +1728,11 @@ msgstr ""
" * lliure %s\n"
" * necessari %s"
-#: ../yum/__init__.py:1177
+#: ../yum/__init__.py:1268
msgid "Header is not complete."
msgstr "La capçalera no està completa."
-#: ../yum/__init__.py:1217
+#: ../yum/__init__.py:1308
#, python-format
msgid ""
"Header not in local cache and caching-only mode enabled. Cannot download %s"
@@ -1718,62 +1740,62 @@ 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"
-#: ../yum/__init__.py:1272
+#: ../yum/__init__.py:1363
#, 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:1276
+#: ../yum/__init__.py:1367
#, python-format
msgid "Problem opening package %s"
msgstr "Hi ha hagut un problema obrint el paquet %s"
-#: ../yum/__init__.py:1284
+#: ../yum/__init__.py:1375
#, 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:1288
+#: ../yum/__init__.py:1379
#, python-format
msgid "Package %s is not signed"
msgstr "El paquet %s no està signat"
-#: ../yum/__init__.py:1326
+#: ../yum/__init__.py:1417
#, python-format
msgid "Cannot remove %s"
msgstr "No es pot esborrar %s"
-#: ../yum/__init__.py:1330
+#: ../yum/__init__.py:1421
#, python-format
msgid "%s removed"
msgstr "S'ha esborrat %s"
-#: ../yum/__init__.py:1367
+#: ../yum/__init__.py:1458
#, python-format
msgid "Cannot remove %s file %s"
msgstr "No es pot esborrar %s fitxer %s"
-#: ../yum/__init__.py:1371
+#: ../yum/__init__.py:1462
#, python-format
msgid "%s file %s removed"
msgstr "%s fitxer %s esborrat"
-#: ../yum/__init__.py:1373
+#: ../yum/__init__.py:1464
#, python-format
msgid "%d %s files removed"
msgstr "%d %s fitxers esborrats"
-#: ../yum/__init__.py:1435
+#: ../yum/__init__.py:1526
#, 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:1441
+#: ../yum/__init__.py:1532
#, 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:1649
+#: ../yum/__init__.py:1740
msgid ""
"searchPackages() will go away in a future version of "
"Yum. Use searchGenerator() instead. \n"
@@ -1781,179 +1803,180 @@ msgstr ""
"searchPackages() desapareixerà en una futura versió de "
"Yum. Useu searchGenerator(). \n"
-#: ../yum/__init__.py:1687
+#: ../yum/__init__.py:1778
#, python-format
msgid "Searching %d packages"
msgstr "S'estan buscant %d paquets"
-#: ../yum/__init__.py:1691
+#: ../yum/__init__.py:1782
#, python-format
msgid "searching package %s"
msgstr "s'està buscant el paquet %s"
-#: ../yum/__init__.py:1703
+#: ../yum/__init__.py:1794
msgid "searching in file entries"
msgstr "s'està buscant en les entrades de fitxers"
-#: ../yum/__init__.py:1710
+#: ../yum/__init__.py:1801
msgid "searching in provides entries"
msgstr "s'està buscant en les entrades proporcionades"
-#: ../yum/__init__.py:1743
+#: ../yum/__init__.py:1834
#, python-format
msgid "Provides-match: %s"
msgstr "Proporciona-coincideix: %s"
-#: ../yum/__init__.py:1792
+#: ../yum/__init__.py:1883
msgid "No group data available for configured repositories"
msgstr "No hi ha dades de grup disponible en cap dels repositoris configurats"
-#: ../yum/__init__.py:1818 ../yum/__init__.py:1837 ../yum/__init__.py:1868
-#: ../yum/__init__.py:1874 ../yum/__init__.py:1947 ../yum/__init__.py:1951
+#: ../yum/__init__.py:1909 ../yum/__init__.py:1928 ../yum/__init__.py:1959
+#: ../yum/__init__.py:1965 ../yum/__init__.py:2038 ../yum/__init__.py:2042
#, python-format
msgid "No Group named %s exists"
msgstr "No existeix cap grup anomenat %s"
-#: ../yum/__init__.py:1849 ../yum/__init__.py:1964
+#: ../yum/__init__.py:1940 ../yum/__init__.py:2055
#, 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:1896
+#: ../yum/__init__.py:1987
#, python-format
msgid "Adding package %s from group %s"
msgstr "S'està afegint el paquet %s del grup %s"
-#: ../yum/__init__.py:1900
+#: ../yum/__init__.py:1991
#, 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:1989
+#: ../yum/__init__.py:2080
#, 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:2004
+#: ../yum/__init__.py:2095
msgid ""
"getInstalledPackageObject() will go away, use self.rpmdb.searchPkgTuple().\n"
msgstr ""
-"getInstalledPackageObject() desapareixarà , useu self.rpmdb.searchPkgTuple().\n"
+"getInstalledPackageObject() desapareixarà , useu self.rpmdb.searchPkgTuple"
+"().\n"
-#: ../yum/__init__.py:2056 ../yum/__init__.py:2099
+#: ../yum/__init__.py:2147 ../yum/__init__.py:2190
msgid "Invalid versioned dependency string, try quoting it."
msgstr ""
"La cadena de versió de dependència és invà lida, proveu-ho entre cometes."
-#: ../yum/__init__.py:2058 ../yum/__init__.py:2101
+#: ../yum/__init__.py:2149 ../yum/__init__.py:2192
msgid "Invalid version flag"
msgstr "Versió de flag invà lida"
-#: ../yum/__init__.py:2073 ../yum/__init__.py:2077
+#: ../yum/__init__.py:2164 ../yum/__init__.py:2168
#, python-format
msgid "No Package found for %s"
msgstr "No s'ha trobat cap paquet per a %s"
-#: ../yum/__init__.py:2276
+#: ../yum/__init__.py:2367
msgid "Package Object was not a package object instance"
msgstr "L'objecte paquet no era una instà ncia d'objecte paquet"
-#: ../yum/__init__.py:2280
+#: ../yum/__init__.py:2371
msgid "Nothing specified to install"
msgstr "No hi ha res especificat per a instal·lar"
#. only one in there
-#: ../yum/__init__.py:2298
+#: ../yum/__init__.py:2389
#, 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"
-#: ../yum/__init__.py:2304 ../yum/__init__.py:2680
+#: ../yum/__init__.py:2395 ../yum/__init__.py:2777
#, python-format
msgid "No Match for argument: %s"
msgstr "No hi ha cap coincidència per a l'argument: %s"
-#: ../yum/__init__.py:2370
+#: ../yum/__init__.py:2461
#, python-format
msgid "Package %s installed and not available"
msgstr "El paquet %s es troba instal·lat però no és disponible"
-#: ../yum/__init__.py:2373
+#: ../yum/__init__.py:2464
msgid "No package(s) available to install"
msgstr "No hi ha cap paquet disponible per a instal·lar"
-#: ../yum/__init__.py:2385
+#: ../yum/__init__.py:2476
#, python-format
msgid "Package: %s - already in transaction set"
msgstr "El paquet: %s - ja està en la transacció"
-#: ../yum/__init__.py:2398
+#: ../yum/__init__.py:2489
#, 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:2405
+#: ../yum/__init__.py:2496
#, 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ó."
-#: ../yum/__init__.py:2415
+#: ../yum/__init__.py:2506
#, 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"
#. update everything (the easy case)
-#: ../yum/__init__.py:2485
+#: ../yum/__init__.py:2576
msgid "Updating Everything"
msgstr "S'està actualitzant tot"
-#: ../yum/__init__.py:2497 ../yum/__init__.py:2602 ../yum/__init__.py:2613
-#: ../yum/__init__.py:2635
+#: ../yum/__init__.py:2588 ../yum/__init__.py:2693 ../yum/__init__.py:2704
+#: ../yum/__init__.py:2726
#, 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:2593
+#: ../yum/__init__.py:2684
#, 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:2616 ../yum/__init__.py:2638
+#: ../yum/__init__.py:2707 ../yum/__init__.py:2729
#, 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:2677
+#: ../yum/__init__.py:2774
#, python-format
msgid "%s"
msgstr "%s"
-#: ../yum/__init__.py:2693
+#: ../yum/__init__.py:2790
msgid "No package matched to remove"
msgstr "No hi ha cap paquet coincident per a esborrar"
-#: ../yum/__init__.py:2727
+#: ../yum/__init__.py:2824
#, python-format
msgid "Cannot open file: %s. Skipping."
msgstr "No es pot obrir el fitxer %s. S'ometrà ."
-#: ../yum/__init__.py:2730
+#: ../yum/__init__.py:2827
#, python-format
msgid "Examining %s: %s"
msgstr "S'està examinant %s: %s"
-#: ../yum/__init__.py:2738
+#: ../yum/__init__.py:2835
#, 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"
-#: ../yum/__init__.py:2746
+#: ../yum/__init__.py:2843
#, python-format
msgid ""
"Package %s not installed, cannot update it. Run yum install to install it "
@@ -1962,81 +1985,81 @@ msgstr ""
"El paquet %s no està instal·lat; no es pot actualitzar. Executa yum install "
"per a instal·lar-lo."
-#: ../yum/__init__.py:2779
+#: ../yum/__init__.py:2876
#, python-format
msgid "Excluding %s"
msgstr "S'està excloent %s"
-#: ../yum/__init__.py:2784
+#: ../yum/__init__.py:2881
#, python-format
msgid "Marking %s to be installed"
msgstr "S'està marcant %s per a ser instal·lat"
-#: ../yum/__init__.py:2790
+#: ../yum/__init__.py:2887
#, python-format
msgid "Marking %s as an update to %s"
msgstr "S'està marcant %s com a actualització de %s"
-#: ../yum/__init__.py:2797
+#: ../yum/__init__.py:2894
#, python-format
msgid "%s: does not update installed package."
msgstr "%s no actualitza el paquet instal·lat."
-#: ../yum/__init__.py:2815
+#: ../yum/__init__.py:2912
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"
-#: ../yum/__init__.py:2826
+#: ../yum/__init__.py:2923
#, 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:2833
+#: ../yum/__init__.py:2930
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:2868
+#: ../yum/__init__.py:2965
#, python-format
msgid "Retrieving GPG key from %s"
msgstr "S'està recuperant la clau GPG des de %s"
-#: ../yum/__init__.py:2874
+#: ../yum/__init__.py:2985
msgid "GPG key retrieval failed: "
msgstr "La recuperació de la clau GPG ha fallat: "
-#: ../yum/__init__.py:2885
+#: ../yum/__init__.py:2996
#, 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:2917
+#: ../yum/__init__.py:3028
#, 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:2922 ../yum/__init__.py:2984
+#: ../yum/__init__.py:3033 ../yum/__init__.py:3095
#, 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:2939
+#: ../yum/__init__.py:3050
msgid "Not installing key"
msgstr "No s'està instal·lant la clau"
-#: ../yum/__init__.py:2945
+#: ../yum/__init__.py:3056
#, python-format
msgid "Key import failed (code %d)"
msgstr "L'importació de la clau ha fallat (codi %d)"
-#: ../yum/__init__.py:2946 ../yum/__init__.py:3005
+#: ../yum/__init__.py:3057 ../yum/__init__.py:3116
msgid "Key imported successfully"
msgstr "La clau s'ha importat amb èxit"
-#: ../yum/__init__.py:2951 ../yum/__init__.py:3010
+#: ../yum/__init__.py:3062 ../yum/__init__.py:3121
#, python-format
msgid ""
"The GPG keys listed for the \"%s\" repository are already installed but they "
@@ -2048,73 +2071,73 @@ msgstr ""
"Comproveu que les URL de clau correctes estan configurades per a aquest "
"repositori."
-#: ../yum/__init__.py:2960
+#: ../yum/__init__.py:3071
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:2979
+#: ../yum/__init__.py:3090
#, 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:2999
+#: ../yum/__init__.py:3110
#, python-format
msgid "Not installing key for repo %s"
msgstr "No s'està instal·lant la clau per al repositori %s"
-#: ../yum/__init__.py:3004
+#: ../yum/__init__.py:3115
msgid "Key import failed"
msgstr "Ha fallat la importació de la clau"
-#: ../yum/__init__.py:3095
+#: ../yum/__init__.py:3206
msgid "Unable to find a suitable mirror."
msgstr "No s'ha pogut trobar un servidor rèplica và lid."
-#: ../yum/__init__.py:3097
+#: ../yum/__init__.py:3208
msgid "Errors were encountered while downloading packages."
msgstr "S'han trobat errors descarregant paquets."
-#: ../yum/__init__.py:3161
+#: ../yum/__init__.py:3272
msgid "Test Transaction Errors: "
msgstr "Errors en la transacció de prova: "
#. Mostly copied from YumOutput._outKeyValFill()
-#: ../yum/plugins.py:199
+#: ../yum/plugins.py:201
msgid "Loaded plugins: "
msgstr "Connectors carregats: "
-#: ../yum/plugins.py:213 ../yum/plugins.py:219
+#: ../yum/plugins.py:215 ../yum/plugins.py:221
#, python-format
msgid "No plugin match for: %s"
msgstr "No hi ha cap connector que coincideixi amb: %s"
-#: ../yum/plugins.py:249
+#: ../yum/plugins.py:251
#, python-format
msgid "\"%s\" plugin is disabled"
msgstr "El connector \"%s\" està deshabilitat"
#. Give full backtrace:
-#: ../yum/plugins.py:261
+#: ../yum/plugins.py:263
#, python-format
msgid "Plugin \"%s\" can't be imported"
msgstr "No s'ha pogut importar el connector «%s»"
-#: ../yum/plugins.py:268
+#: ../yum/plugins.py:270
#, 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:273
+#: ../yum/plugins.py:275
#, 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:306
+#: ../yum/plugins.py:308
#, python-format
msgid "Loading \"%s\" plugin"
msgstr "S'està carregant el connector \"%s\""
-#: ../yum/plugins.py:313
+#: ../yum/plugins.py:315
#, python-format
msgid ""
"Two or more plugins with the name \"%s\" exist in the plugin search path"
@@ -2122,19 +2145,19 @@ msgstr ""
"Existeixen dos o més connectors amb el mateix nom \"%s\" en el camà de cerca "
"de connectors"
-#: ../yum/plugins.py:333
+#: ../yum/plugins.py:335
#, 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:336
+#: ../yum/plugins.py:338
#, 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:490
+#: ../yum/plugins.py:492
msgid "registration of commands not supported"
msgstr "l'enregistrament d'ordres no està suportat"
commit 37c3641f8e4313748ac22ace9b1a0a1377a2734b
Merge: 6b3e588... 432c777...
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Tue Nov 4 17:43:09 2008 -0500
Merge branch 'yum-3_2_X' of ssh://yum.baseurl.org/srv/projects/yum/git/yum into yum-3_2_X
* 'yum-3_2_X' of ssh://yum.baseurl.org/srv/projects/yum/git/yum:
Add bigger doc comments to utf8_width_chop and utf8_width_full
check-update -v lists obsoleted pkgs too, related to 462999
commit 6b3e5888bab0b56d57b72924d6d05e34f5eb76b7
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Tue Nov 4 17:42:27 2008 -0500
make sure the bools in the xml output of groups are lowercase b/c relaxng is fairly retarded.
diff --git a/yum/comps.py b/yum/comps.py
index ee9f187..f5af0bd 100755
--- a/yum/comps.py
+++ b/yum/comps.py
@@ -247,8 +247,8 @@ class Group(CompsObj):
<id>%s</id>
<default>%s</default>
<uservisible>%s</uservisible>
- <display_order>%s</display_order>\n""" % (self.groupid, str(self.default),
- str(self.user_visible), self.display_order)
+ <display_order>%s</display_order>\n""" % (self.groupid, str(self.default).lower(),
+ str(self.user_visible).lower(), self.display_order)
if self.langonly:
msg += """ <langonly>%s</langonly>""" % self.langonly
commit 432c7778384bf9bef4eb2f386ebcc608a598b4d7
Author: James Antill <james at and.org>
Date: Mon Nov 3 17:01:00 2008 -0500
Add bigger doc comments to utf8_width_chop and utf8_width_full
diff --git a/yum/i18n.py b/yum/i18n.py
index b1632ca..2d50e74 100755
--- a/yum/i18n.py
+++ b/yum/i18n.py
@@ -213,7 +213,9 @@ def utf8_width(msg):
def utf8_width_chop(msg, chop=None):
""" Return the textual width of a utf8 string, chopping it to a specified
- value. """
+ value. This is what you want to use instead of %.*s, as it does the
+ "right" thing with regard to utf-8 sequences. Eg.
+ "%.*s" % (10, msg) <= becomes => "%s" % (utf8_width_chop(msg, 10)) """
if chop is None or utf8_width(msg) <= chop:
return utf8_width(msg), msg
@@ -241,7 +243,17 @@ def utf8_width_chop(msg, chop=None):
def utf8_width_fill(msg, fill, chop=None, left=True):
""" Expand a utf8 msg to a specified "width" or chop to same.
- Expansion can be left or right. """
+ Expansion can be left or right. This is what you want to use instead of
+ %*.*s, as it does the "right" thing with regard to utf-8 sequences.
+ Eg.
+ "%-*.*s" % (10, 20, msg)
+ <= becomes =>
+ "%s" % (utf8_width_fill(msg, 10, 20)).
+
+ "%20.10s" % (msg)
+ <= becomes =>
+ "%s" % (utf8_width_fill(msg, 20, 10, left=False)).
+ """
passed_msg = msg
width, msg = utf8_width_chop(msg, chop)
commit d5ff8d3f3f8017de3d8d98d24356c9d65f80f588
Author: James Antill <james at and.org>
Date: Mon Nov 3 10:16:33 2008 -0500
check-update -v lists obsoleted pkgs too, related to 462999
diff --git a/yumcommands.py b/yumcommands.py
index 7b0214f..6766593 100644
--- a/yumcommands.py
+++ b/yumcommands.py
@@ -536,11 +536,25 @@ class CheckUpdateCommand(YumCommand):
result = 0
try:
ypl = base.returnPkgLists(extcmds)
+ if base.verbose_logger.isEnabledFor(logginglevels.DEBUG_3):
+ typl = base.returnPkgLists(['obsoletes'])
+ ypl.obsoletes = typl.obsoletes
+ ypl.obsoletesTuples = typl.obsoletesTuples
+
columns = _list_cmd_calc_columns(base, ypl)
if len(ypl.updates) > 0:
base.listPkgs(ypl.updates, '', outputType='list',
columns=columns)
result = 100
+ if len(ypl.obsoletes) > 0: # This only happens in verbose mode
+ rop = [0, '']
+ print _('Obsoleting Packages')
+ # The tuple is (newPkg, oldPkg) ... so sort by new
+ for obtup in sorted(ypl.obsoletesTuples,
+ key=operator.itemgetter(0)):
+ base.updatesObsoletesList(obtup, 'obsoletes',
+ columns=columns)
+ result = 100
except yum.Errors.YumBaseError, e:
return 1, [str(e)]
else:
commit 809f033c400b124668f74b44834cf71a76a4fe13
Author: James Antill <james at and.org>
Date: Sun Nov 2 01:25:11 2008 -0400
Fix stupid typo in port of utf8_width, all 2 pair sequences were seen as bad
diff --git a/yum/i18n.py b/yum/i18n.py
index 27dcc62..b1632ca 100755
--- a/yum/i18n.py
+++ b/yum/i18n.py
@@ -165,8 +165,8 @@ def __utf8_iter_ucs(msg):
yield (byte0, 1)
elif (byte0 & 0xe0) == 0xc0: # 110XXXXx 10xxxxxx
byte1 = uiter.next()
- if (((byte0 & 0xc0) != 0x80) or
- ((byte1 & 0xfe) == 0xc0)): # overlong?
+ if (((byte1 & 0xc0) != 0x80) or
+ ((byte0 & 0xfe) == 0xc0)): # overlong?
yield (None, 2)
return
yield ((((byte0 & 0x1f) << 6) | (byte1 & 0x3f)), 2)
commit 523e8f7c8332bb1e6ee3925cc0d0b61d2750c12f
Author: James Antill <james at and.org>
Date: Sun Nov 2 01:12:23 2008 -0400
Make the width of enabled/disable in repolist, correct for i18n
diff --git a/yumcommands.py b/yumcommands.py
index 66468ec..7b0214f 100644
--- a/yumcommands.py
+++ b/yumcommands.py
@@ -29,7 +29,7 @@ import locale
import fnmatch
import time
from yum.misc import to_unicode
-from yum.i18n import utf8_width_fill
+from yum.i18n import utf8_width, utf8_width_fill
def checkRootUID(base):
"""
@@ -751,6 +751,9 @@ class RepoListCommand(YumCommand):
ui_enabled = dhibeg + _('disabled') + hiend
ui_num = ""
ui_fmt_num = "%s"
+ ui_endis_wid = utf8_width(_('disabled'))
+ if ui_endis_wid < utf8_width(_('enabled')):
+ ui_endis_wid = utf8_width(_('enabled'))
if (arg == 'all' or
(arg == 'enabled' and enabled) or
@@ -759,14 +762,14 @@ class RepoListCommand(YumCommand):
if not done:
txt_rid = utf8_width_fill(_('repo id'), 20, 20)
txt_rnam = utf8_width_fill(_('repo name'), 40, 40)
- txt_stat = utf8_width_fill(_('status'), 8)
base.verbose_logger.log(logginglevels.INFO_2,"%s %s %s",
- txt_rid, txt_rnam, txt_stat)
+ txt_rid, txt_rnam, _('status'))
done = True
base.verbose_logger.log(logginglevels.INFO_2, "%s %s %s%s",
utf8_width_fill(str(repo), 20, 20),
utf8_width_fill(repo.name, 40, 40),
- utf8_width_fill(ui_enabled, 8),
+ utf8_width_fill(ui_enabled,
+ ui_endis_wid),
ui_fmt_num % ui_num)
else:
md = repo.repoXML
commit 06c492dd20497db94ef7a8d9203b4c22d4a96d5f
Author: James Antill <james at and.org>
Date: Sun Nov 2 01:02:09 2008 -0400
Space the info output for po/zh_CN, to prove we can make non-en look good
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 20dc426..bb32159 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -3,7 +3,7 @@ msgstr ""
"Project-Id-Version: yum\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2008-03-25 11:29+0100\n"
-"PO-Revision-Date: 2008-07-24 19:43+0800\n"
+"PO-Revision-Date: 2008-11-01 23:43+0400\n"
"Last-Translator: lijiansheng <lijiangsheng1 at gmail.com>\n"
"Language-Team: zh_CN <lijiangsheng1 at gmail.com>\n"
"MIME-Version: 1.0\n"
@@ -460,61 +460,61 @@ msgstr "å°è¯å
¶ä»éå."
#: ../output.py:293
#, python-format
-msgid "Name : %s"
-msgstr "å称 : %s"
+msgid "Name : %s%s%s"
+msgstr "å称 : %s%s%s"
#: ../output.py:294
#, python-format
msgid "Arch : %s"
-msgstr "æ¶æ : %s"
+msgstr "æ¶æ : %s"
#: ../output.py:296
#, python-format
msgid "Epoch : %s"
-msgstr "Epoch : %s"
+msgstr "Epoch : %s"
#: ../output.py:297
#, python-format
msgid "Version : %s"
-msgstr "çæ¬ : %s"
+msgstr "çæ¬ : %s"
#: ../output.py:298
#, python-format
msgid "Release : %s"
-msgstr "åè¡ : %s"
+msgstr "åè¡ : %s"
#: ../output.py:299
#, python-format
msgid "Size : %s"
-msgstr "å¤§å° : %s"
+msgstr "å¤§å° : %s"
#: ../output.py:300
#, python-format
msgid "Repo : %s"
-msgstr "Repo : %s"
+msgstr "Repo : %s"
#: ../output.py:302
#, python-format
msgid "Committer : %s"
-msgstr "Ãbermittler : %s"
+msgstr "Ãbermittler : %s"
#: ../output.py:303
msgid "Summary : "
-msgstr "è¯æ³ : "
+msgstr "è¯æ³ : "
#: ../output.py:305
#, python-format
msgid "URL : %s"
-msgstr "ç»ä¸èµæºå®ä½ç¬¦ : %s"
+msgstr "ç»ä¸èµæºå®ä½ç¬¦: %s"
#: ../output.py:306
#, python-format
msgid "License : %s"
-msgstr "许å¯è¯ : %s"
+msgstr "许å¯è¯ : %s"
#: ../output.py:307
msgid "Description: "
-msgstr "å级:"
+msgstr "å级 : "
#: ../output.py:351
msgid "Is this ok [y/N]: "
commit d01eebfcc4f43d0b1f1e36745a295dc94905d575
Author: James Antill <james at and.org>
Date: Sun Nov 2 00:40:48 2008 -0400
Use utf8_width_fill for repolist
diff --git a/yumcommands.py b/yumcommands.py
index d3ce5ee..66468ec 100644
--- a/yumcommands.py
+++ b/yumcommands.py
@@ -29,6 +29,7 @@ import locale
import fnmatch
import time
from yum.misc import to_unicode
+from yum.i18n import utf8_width_fill
def checkRootUID(base):
"""
@@ -719,7 +720,6 @@ class RepoListCommand(YumCommand):
# Setup so len(repo.sack) is correct
base.repos.populateSack()
- format_string = "%-20.20s %-40.40s %-8s%s"
repos = base.repos.repos.values()
repos.sort()
enabled_repos = base.repos.listEnabled()
@@ -755,12 +755,20 @@ class RepoListCommand(YumCommand):
if (arg == 'all' or
(arg == 'enabled' and enabled) or
(arg == 'disabled' and not enabled)):
- if not done and not verbose:
- base.verbose_logger.log(logginglevels.INFO_2,
- format_string, _('repo id'),
- _('repo name'), _('status'), "")
- done = True
- if verbose:
+ if not verbose:
+ if not done:
+ txt_rid = utf8_width_fill(_('repo id'), 20, 20)
+ txt_rnam = utf8_width_fill(_('repo name'), 40, 40)
+ txt_stat = utf8_width_fill(_('status'), 8)
+ base.verbose_logger.log(logginglevels.INFO_2,"%s %s %s",
+ txt_rid, txt_rnam, txt_stat)
+ done = True
+ base.verbose_logger.log(logginglevels.INFO_2, "%s %s %s%s",
+ utf8_width_fill(str(repo), 20, 20),
+ utf8_width_fill(repo.name, 40, 40),
+ utf8_width_fill(ui_enabled, 8),
+ ui_fmt_num % ui_num)
+ else:
md = repo.repoXML
out = [base.fmtKeyValFill(_("Repo-id : "), repo),
base.fmtKeyValFill(_("Repo-name : "), repo.name),
@@ -812,10 +820,6 @@ class RepoListCommand(YumCommand):
base.verbose_logger.log(logginglevels.DEBUG_3,
"%s\n",
"\n".join(out))
- else:
- base.verbose_logger.log(logginglevels.INFO_2, format_string,
- repo, repo.name, ui_enabled,
- ui_fmt_num % ui_num)
return 0, ['repolist: ' +to_unicode(locale.format("%d", tot_num, True))]
commit 0c832bd74c22c94ef8330887bd41ff1477ef6737
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date: Sat Nov 1 14:12:04 2008 +0100
better skip-broken transaction debug data (-d7)
diff --git a/yum/__init__.py b/yum/__init__.py
index dc50fd7..dcf1654 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -666,7 +666,6 @@ class YumBase(depsolve.Depsolve):
if self.conf.skip_broken and rescode==1:
self.skipped_packages = [] # reset the public list of skipped packages.
sb_st = time.time()
- self._printTransaction()
rescode, restring = self._skipPackagesWithProblems(rescode, restring)
self._printTransaction()
self.verbose_logger.debug('Skip-Broken time: %0.3f' % (time.time() - sb_st))
@@ -701,6 +700,7 @@ class YumBase(depsolve.Depsolve):
while (len(self.po_with_problems) > 0 and rescode == 1):
count += 1
self.verbose_logger.debug(_("Skip-broken round %i"), count)
+ self._printTransaction()
depTree = self._buildDepTree()
startTs = set(self.tsInfo)
toRemove = set()
@@ -833,8 +833,12 @@ class YumBase(depsolve.Depsolve):
self.verbose_logger.log(logginglevels.DEBUG_2,"TSINFO: Current Transaction : %i member(s) " % len(self.tsInfo))
for txmbr in self.tsInfo:
- msg = " %-11s : %s" % (state[txmbr.output_state],txmbr.po)
+ msg = " %-11s : %s " % (state[txmbr.output_state],txmbr.po)
self.verbose_logger.log(logginglevels.DEBUG_2, msg)
+ for po,rel in txmbr.relatedto:
+ msg = " %s : %s" % (rel,po)
+ self.verbose_logger.log(logginglevels.DEBUG_2, msg)
+
def _getPackagesToRemove(self,po,deptree,toRemove):
'''
commit 435f3f97dcfa911022ba915a34f5a2a5079d4134
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date: Sat Nov 1 10:24:55 2008 +0100
Updated Serbian translations by Milos Komarcevic
diff --git a/po/sr.po b/po/sr.po
old mode 100644
new mode 100755
index afff3ea..a8de8e7
--- a/po/sr.po
+++ b/po/sr.po
@@ -1,42 +1,43 @@
-# translation of sr.po to Serbian
# Serbian translations for yum
# Copyright (C) 2008 Linux at Duke
# This file is distributed under the same license as the yum package.
-#
# Jovan Krunic <jovan.krunic at gmail.com>, 2008.
# Igor Miletic <grejigl-gnomeprevod at yahoo.ca>, 2008.
# MiloÅ¡ KomarÄeviÄ <kmilos at gmail.com>, 2008.
+#
msgid ""
msgstr ""
"Project-Id-Version: yum\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-03-25 11:29+0100\n"
-"PO-Revision-Date: 2008-05-26 20:30-0000\n"
+"POT-Creation-Date: 2008-10-27 13:29+0000\n"
+"PO-Revision-Date: 2008-10-27 22:52+0000\n"
"Last-Translator: MiloÅ¡ KomarÄeviÄ <kmilos at gmail.com>\n"
"Language-Team: Serbian (sr) <fedora-trans-sr at redhat.com>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
-"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-#: ../callback.py:48 ../output.py:512
+#: ../callback.py:48 ../output.py:777 ../yum/rpmtrans.py:71
msgid "Updating"
-msgstr "AжÑÑиÑам"
+msgstr "ÐжÑÑиÑам"
-#: ../callback.py:49
+#: ../callback.py:49 ../yum/rpmtrans.py:72
msgid "Erasing"
msgstr "ÐÑиÑем"
-#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:511
+#. Arch can't get "that big" ... so always use the max.
+#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:776
+#: ../yum/rpmtrans.py:73 ../yum/rpmtrans.py:74 ../yum/rpmtrans.py:76
msgid "Installing"
msgstr "ÐнÑÑалиÑам"
-#: ../callback.py:52 ../callback.py:58
+#: ../callback.py:52 ../callback.py:58 ../yum/rpmtrans.py:75
msgid "Obsoleted"
msgstr "ÐÑевазиÑени"
-#: ../callback.py:54 ../output.py:558
+#: ../callback.py:54 ../output.py:891
msgid "Updated"
msgstr "ÐжÑÑиÑани"
@@ -44,7 +45,7 @@ msgstr "ÐжÑÑиÑани"
msgid "Erased"
msgstr "ÐбÑиÑани"
-#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:556
+#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:889
msgid "Installed"
msgstr "ÐнÑÑалиÑани"
@@ -66,53 +67,68 @@ msgstr "ÐÑеÑка: погÑеÑно излазно ÑÑаÑе: %s за %s"
msgid "Erased: %s"
msgstr "ÐбÑиÑано: %s"
-#: ../callback.py:217 ../output.py:513
+#: ../callback.py:217 ../output.py:778
msgid "Removing"
msgstr "УклаÑам"
-#: ../callback.py:219
+#: ../callback.py:219 ../yum/rpmtrans.py:77
msgid "Cleanup"
msgstr "ЧиÑÑеÑе"
-#: ../cli.py:103
+#: ../cli.py:105
#, python-format
msgid "Command \"%s\" already defined"
msgstr "ÐаÑедба â%sâ Ñе Ð²ÐµÑ Ð´ÐµÑиниÑана"
-#: ../cli.py:115
+#: ../cli.py:117
msgid "Setting up repositories"
msgstr "ÐоÑÑавÑам ÑизниÑе"
-#: ../cli.py:126
+#: ../cli.py:128
msgid "Reading repository metadata in from local files"
msgstr "ЧиÑам меÑаподаÑке ÑизниÑа из локалниÑ
даÑоÑека"
-#: ../cli.py:183 ../utils.py:72
+#: ../cli.py:187 ../utils.py:71
#, python-format
msgid "Config Error: %s"
msgstr "ÐÑеÑка пÑи подеÑаваÑÑ: %s"
-#: ../cli.py:186 ../cli.py:1068 ../utils.py:75
+#: ../cli.py:190 ../cli.py:1128 ../utils.py:74
#, python-format
msgid "Options Error: %s"
msgstr "ÐÑеÑка Ñ Ð¾Ð¿ÑиÑама: %s"
-#: ../cli.py:229
+#: ../cli.py:218
+#, python-format
+msgid " Installed: %s-%s at %s"
+msgstr " ÐнÑÑалиÑано: %s-%s на %s"
+
+#: ../cli.py:220
+#, fuzzy, python-format
+msgid " Built : %s at %s"
+msgstr "УРР: %s"
+
+#: ../cli.py:222
+#, fuzzy, python-format
+msgid " Committed: %s at %s"
+msgstr "ÐбÑавÑÐ¸Ð²Ð°Ñ : %s"
+
+#: ../cli.py:259
msgid "You need to give some command"
msgstr "ÐоÑаÑе да ÑнеÑеÑе Ð½ÐµÐºÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ"
-#: ../cli.py:271
+#: ../cli.py:301
msgid "Disk Requirements:\n"
msgstr "ÐаÑ
Ñеви диÑка:\n"
-#: ../cli.py:273
+#: ../cli.py:303
#, python-format
msgid " At least %dMB needed on the %s filesystem.\n"
msgstr " ÐоÑÑебно Ñе наÑмаÑе %dÐРна %s ÑиÑÑÐµÐ¼Ñ Ð´Ð°ÑоÑека.\n"
#. TODO: simplify the dependency errors?
#. Fixup the summary
-#: ../cli.py:278
+#: ../cli.py:308
msgid ""
"Error Summary\n"
"-------------\n"
@@ -120,55 +136,55 @@ msgstr ""
"СажеÑак гÑеÑака\n"
"-------------\n"
-#: ../cli.py:317
+#: ../cli.py:351
msgid "Trying to run the transaction but nothing to do. Exiting."
msgstr "ÐокÑÑавам да извÑÑим ÑÑанÑакÑиÑÑ Ð°Ð»Ð¸ нема ÑÑа да Ñе Ñади. Ðзлазим."
-#: ../cli.py:347
+#: ../cli.py:381
msgid "Exiting on user Command"
msgstr "Ðзлазим на ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ ÐºÐ¾ÑиÑника"
-#: ../cli.py:351
+#: ../cli.py:385
msgid "Downloading Packages:"
msgstr "ÐÑеÑзимам пакеÑе:"
-#: ../cli.py:356
+#: ../cli.py:390
msgid "Error Downloading Packages:\n"
msgstr "ÐÑеÑка пÑи пÑеÑзимаÑÑ Ð¿Ð°ÐºÐµÑа:\n"
-#: ../cli.py:370 ../yum/__init__.py:2746
+#: ../cli.py:404 ../yum/__init__.py:3182
msgid "Running rpm_check_debug"
msgstr "ÐзвÑÑавам rpm_check_debug"
-#: ../cli.py:373 ../yum/__init__.py:2749
+#: ../cli.py:407 ../yum/__init__.py:3185
msgid "ERROR with rpm_check_debug vs depsolve:"
msgstr "ÐÐ ÐШÐÐ Ñа rpm_check_debug Ñ Ð¾Ð´Ð½Ð¾ÑÑ Ð½Ð° depsolve:"
-#: ../cli.py:377 ../yum/__init__.py:2751
+#: ../cli.py:411 ../yum/__init__.py:3187
msgid "Please report this error in bugzilla"
msgstr "Ðолим ваÑ, пÑиÑавиÑе Ð¾Ð²Ñ Ð³ÑеÑÐºÑ Ñ bugzilla-и"
-#: ../cli.py:383
+#: ../cli.py:417
msgid "Running Transaction Test"
msgstr "ÐзвÑÑавам пÑовеÑÑ ÑÑанÑакÑиÑе"
-#: ../cli.py:399
+#: ../cli.py:433
msgid "Finished Transaction Test"
-msgstr "ÐавÑÑио Ñам пÑовеÑÑ ÑÑанÑакÑиÑе"
+msgstr "ÐавÑÑена Ñе пÑовеÑа ÑÑанÑакÑиÑе"
-#: ../cli.py:401
+#: ../cli.py:435
msgid "Transaction Check Error:\n"
msgstr "ÐÑеÑка пÑи пÑовеÑи ÑÑанÑакÑиÑе:\n"
-#: ../cli.py:408
+#: ../cli.py:442
msgid "Transaction Test Succeeded"
msgstr "ÐÑовеÑа ÑÑанÑакÑиÑе Ñе ÑÑпела"
-#: ../cli.py:429
+#: ../cli.py:463
msgid "Running Transaction"
msgstr "ÐзвÑÑавам ÑÑанÑакÑиÑÑ"
-#: ../cli.py:459
+#: ../cli.py:493
msgid ""
"Refusing to automatically import keys when running unattended.\n"
"Use \"-y\" to override."
@@ -176,378 +192,426 @@ msgstr ""
"ÐдбиÑам да аÑÑомаÑÑки Ñвезем кÑÑÑеве када Ñе извÑÑаваÑе не надгледа.\n"
"Ðа пÑевазилажеÑе овога коÑиÑÑиÑе â-yâ."
-#: ../cli.py:491
-msgid "Parsing package install arguments"
-msgstr "РаÑÑлаÑÑÑем аÑгÑменÑе инÑÑалаÑиÑе пакеÑа"
+#: ../cli.py:512 ../cli.py:545
+msgid " * Maybe you meant: "
+msgstr " * Ðожда ÑÑе миÑлили: "
+
+#: ../cli.py:528 ../cli.py:536
+#, python-format
+msgid "Package(s) %s%s%s available, but not installed."
+msgstr "%s%s%s Ð¿Ð°ÐºÐµÑ Ñе доÑÑÑпан, али ниÑе инÑÑалиÑан."
-#: ../cli.py:501
+#: ../cli.py:542 ../cli.py:577
#, python-format
-msgid "No package %s available."
-msgstr "Ðе поÑÑоÑи доÑÑÑпан %s пакеÑ."
+msgid "No package %s%s%s available."
+msgstr "Ðе поÑÑоÑи доÑÑÑпан %s%s%s пакеÑ."
-#: ../cli.py:505 ../cli.py:623 ../yumcommands.py:748
+#: ../cli.py:567
+msgid "Parsing package install arguments"
+msgstr "РаÑÑлаÑÑÑем аÑгÑменÑе инÑÑалаÑиÑе пакеÑа"
+
+#: ../cli.py:582 ../cli.py:657 ../yumcommands.py:912
msgid "Package(s) to install"
msgstr "ÐакеÑ(и) коÑи Ñе Ñе инÑÑалиÑаÑи"
-#: ../cli.py:506 ../cli.py:624 ../yumcommands.py:146 ../yumcommands.py:749
+#: ../cli.py:583 ../cli.py:658 ../yumcommands.py:150 ../yumcommands.py:913
msgid "Nothing to do"
msgstr "Ðема ÑÑа да Ñе Ñади"
-#: ../cli.py:536 ../yum/__init__.py:2232 ../yum/__init__.py:2311
-#: ../yum/__init__.py:2340
-#, python-format
-msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
-msgstr "Ðе ажÑÑиÑам пакеÑе коÑи ÑÑ Ð²ÐµÑ Ð¿ÑевазиÑени: %s.%s %s:%s-%s"
-
-#: ../cli.py:568
-#, python-format
-msgid "Could not find update match for %s"
-msgstr "Ðе Ð¼Ð¾Ð³Ñ Ð´Ð° пÑонаÑем одговаÑаÑÑÑе ажÑÑиÑаÑе за %s"
-
-#: ../cli.py:580
+#: ../cli.py:616
#, python-format
msgid "%d packages marked for Update"
msgstr "%d пакеÑи ознаÑени за ажÑÑиÑаÑе"
-#: ../cli.py:583
+#: ../cli.py:619
msgid "No Packages marked for Update"
msgstr "Ðема пакеÑа ознаÑениÑ
за ажÑÑиÑаÑе"
-#: ../cli.py:599
+#: ../cli.py:633
#, python-format
msgid "%d packages marked for removal"
msgstr "%d пакеÑи ознаÑени за ÑклаÑаÑе"
-#: ../cli.py:602
+#: ../cli.py:636
msgid "No Packages marked for removal"
msgstr "Ðема пакеÑа ознаÑениÑ
за ÑклаÑаÑе"
-#: ../cli.py:614
+#: ../cli.py:648
msgid "No Packages Provided"
msgstr "ÐиÑедан Ð¿Ð°ÐºÐµÑ Ð½Ð¸Ñе добавÑен"
-#: ../cli.py:654
+#: ../cli.py:689
+#, fuzzy
msgid "Matching packages for package list to user args"
msgstr "ÐовезиваÑе пакеÑа за ÑпиÑак пакеÑа по аÑгÑменÑима коÑиÑника"
-#: ../cli.py:701
+#: ../cli.py:731
#, python-format
msgid "Warning: No matches found for: %s"
msgstr "УпозоÑеÑе: ниÑе наÑено подÑдаÑаÑе за %s"
-#: ../cli.py:704
+#: ../cli.py:734
msgid "No Matches found"
msgstr "ÐиÑÑ Ð¿ÑонаÑена подÑдаÑаÑа"
-#: ../cli.py:745
+#: ../cli.py:773
+#, python-format
+msgid ""
+"Warning: 3.0.x versions of yum would erronously match against filenames.\n"
+" You can use \"%s*/%s%s\" and/or \"%s*bin/%s%s\" to get that behaviour"
+msgstr ""
+"УпозоÑеÑе: 3.0.x yum веÑзиÑе би гÑеÑком вÑÑиле подÑдаÑаÑе Ñа називима "
+"даÑоÑека.\n"
+" ÐожеÑе ÑпоÑÑебиÑи â%s*/%s%sâ и/или â%s*bin/%s%sâ да биÑÑе добили Ñакво "
+"понаÑаÑе"
+
+#: ../cli.py:789
#, python-format
msgid "No Package Found for %s"
msgstr "ÐиÑÑ Ð¿ÑонаÑени пакеÑи за %s"
-#: ../cli.py:757
+#: ../cli.py:801
msgid "Cleaning up Everything"
msgstr "ЧиÑÑим Ñве"
-#: ../cli.py:771
+#: ../cli.py:815
msgid "Cleaning up Headers"
msgstr "ЧиÑÑим заглавÑа"
-#: ../cli.py:774
+#: ../cli.py:818
msgid "Cleaning up Packages"
msgstr "ЧиÑÑим пакеÑе"
-#: ../cli.py:777
+#: ../cli.py:821
msgid "Cleaning up xml metadata"
msgstr "ЧиÑÑим xml меÑаподаÑке"
-#: ../cli.py:780
+#: ../cli.py:824
msgid "Cleaning up database cache"
-msgstr "ЧиÑÑим ÐºÐµÑ Ð±Ð°Ð·Ð° подаÑака"
+msgstr "ЧиÑÑим ÐºÐµÑ Ð±Ð°Ð·Ðµ подаÑака"
-#: ../cli.py:783
+#: ../cli.py:827
msgid "Cleaning up expire-cache metadata"
msgstr "ЧиÑÑим expire-cache меÑаподаÑке"
-#: ../cli.py:786
+#: ../cli.py:830
msgid "Cleaning up plugins"
msgstr "ЧиÑÑим додаÑке"
-#: ../cli.py:807
+#: ../cli.py:851
msgid "Installed Groups:"
msgstr "ÐнÑÑалиÑане гÑÑпе:"
-#: ../cli.py:814
+#: ../cli.py:858
msgid "Available Groups:"
msgstr "ÐоÑÑÑпне гÑÑпе:"
-#: ../cli.py:820
+#: ../cli.py:864
msgid "Done"
msgstr "УÑаÑено"
-#: ../cli.py:829 ../cli.py:841 ../cli.py:847
+#: ../cli.py:875 ../cli.py:893 ../cli.py:899 ../yum/__init__.py:2274
#, python-format
msgid "Warning: Group %s does not exist."
msgstr "УпозоÑеÑе: гÑÑпа %s не поÑÑоÑи."
-#: ../cli.py:853
+#: ../cli.py:903
msgid "No packages in any requested group available to install or update"
msgstr ""
"Ðема доÑÑÑпниÑ
пакеÑа за инÑÑалаÑиÑÑ Ð¸Ð»Ð¸ ажÑÑиÑаÑе Ñ Ñвим заÑ
Ñеваним гÑÑпама"
-#: ../cli.py:855
+#: ../cli.py:905
#, python-format
msgid "%d Package(s) to Install"
msgstr "%d пакеÑ(и) за инÑÑалаÑиÑÑ"
-#: ../cli.py:865
+#: ../cli.py:915 ../yum/__init__.py:2286
#, python-format
msgid "No group named %s exists"
msgstr "Ðе поÑÑоÑи гÑÑпа под именом %s"
-#: ../cli.py:871
+#: ../cli.py:921
msgid "No packages to remove from groups"
msgstr "Ðема пакеÑа за ÑклаÑаÑе из гÑÑпа"
-#: ../cli.py:873
+#: ../cli.py:923
#, python-format
msgid "%d Package(s) to remove"
msgstr "%d пакеÑ(и) за ÑклаÑаÑе"
-#: ../cli.py:915
+#: ../cli.py:965
#, python-format
msgid "Package %s is already installed, skipping"
msgstr "ÐÐ°ÐºÐµÑ %s Ñе Ð²ÐµÑ Ð¸Ð½ÑÑалиÑан, пÑеÑкаÑем га"
-#: ../cli.py:926
+#: ../cli.py:976
#, python-format
msgid "Discarding non-comparable pkg %s.%s"
msgstr "УклаÑам неÑпоÑедив Ð¿Ð°ÐºÐµÑ %s.%s"
#. we've not got any installed that match n or n+a
-#: ../cli.py:952
+#: ../cli.py:1002
#, python-format
msgid "No other %s installed, adding to list for potential install"
msgstr ""
"Ðе поÑÑоÑи инÑÑалиÑан дÑÑги %s, додаÑем га Ñ ÑпиÑак за поÑенÑиÑÐ°Ð»Ð½Ñ "
"инÑÑалаÑиÑÑ"
-#: ../cli.py:971
+#: ../cli.py:1021
#, python-format
msgid "Command line error: %s"
msgstr "ÐÑеÑка командне линиÑе: %s"
-#: ../cli.py:1101
+#: ../cli.py:1034
+#, python-format
+msgid ""
+"\n"
+"\n"
+"%s: %s option requires an argument"
+msgstr ""
+"\n"
+"\n"
+"%s: %s опÑиÑа заÑ
Ñева аÑгÑменÑ"
+
+#: ../cli.py:1170
+msgid "show this help message and exit"
+msgstr "пÑикажи Ð¾Ð²Ñ Ð¿Ð¾Ð¼Ð¾ÑÐ½Ñ Ð¿Ð¾ÑÑÐºÑ Ð¸ изаÑи"
+
+#: ../cli.py:1174
msgid "be tolerant of errors"
msgstr "бÑди ÑолеÑанÑан на гÑеÑке"
-#: ../cli.py:1103
+#: ../cli.py:1176
msgid "run entirely from cache, don't update cache"
msgstr "извÑÑÐ°Ð²Ð°Ñ Ñе Ñ Ð¿Ð¾ÑпÑноÑÑи из кеÑа, не ажÑÑиÑÐ°Ñ ÐºÐµÑ"
-#: ../cli.py:1105
+#: ../cli.py:1178
msgid "config file location"
msgstr "меÑÑо даÑоÑеке подеÑаваÑа"
-#: ../cli.py:1107
+#: ../cli.py:1180
msgid "maximum command wait time"
msgstr "наÑдÑже вÑеме ÑекаÑа на командÑ"
-#: ../cli.py:1109
+#: ../cli.py:1182
msgid "debugging output level"
msgstr "ниво излазног пÑиказа за пÑоналажеÑе гÑеÑака"
-#: ../cli.py:1113
+#: ../cli.py:1186
msgid "show duplicates, in repos, in list/search commands"
msgstr ""
"пÑиказÑÑ Ð´ÑпликаÑе, Ñ ÑизниÑама, Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ð¼Ð° за излиÑÑаваÑе/пÑеÑÑаживаÑе"
-#: ../cli.py:1115
+#: ../cli.py:1188
msgid "error output level"
msgstr "ниво излазног пÑиказа гÑеÑака"
-#: ../cli.py:1118
+#: ../cli.py:1191
msgid "quiet operation"
msgstr "ÑиÑ
а ÑадÑа"
-#: ../cli.py:1122
+#: ../cli.py:1193
+msgid "verbose operation"
+msgstr "опÑиÑна ÑадÑа"
+
+#: ../cli.py:1195
msgid "answer yes for all questions"
msgstr "одговоÑи Ñа да на Ñва пиÑаÑа"
-#: ../cli.py:1124
+#: ../cli.py:1197
msgid "show Yum version and exit"
-msgstr "пÑикажи веÑзиÑÑ Yum-а и изаÑи"
+msgstr "пÑикажи Yum веÑзиÑÑ Ð¸ изаÑи"
-#: ../cli.py:1125
+#: ../cli.py:1198
msgid "set install root"
msgstr "поÑÑави коÑени диÑекÑоÑиÑÑм инÑÑалаÑиÑе"
-#: ../cli.py:1129
+#: ../cli.py:1202
msgid "enable one or more repositories (wildcards allowed)"
msgstr "ÑкÑÑÑи ÑÐµÐ´Ð½Ñ Ð¸Ð»Ð¸ виÑе ÑизниÑа (ÑкÑаÑениÑе ÑÑ Ð´Ð¾Ð·Ð²Ð¾Ñене)"
-#: ../cli.py:1133
+#: ../cli.py:1206
msgid "disable one or more repositories (wildcards allowed)"
msgstr "иÑкÑÑÑи ÑÐµÐ´Ð½Ñ Ð¸Ð»Ð¸ виÑе ÑизниÑа (ÑкÑаÑениÑе ÑÑ Ð´Ð¾Ð·Ð²Ð¾Ñене)"
-#: ../cli.py:1136
+#: ../cli.py:1209
msgid "exclude package(s) by name or glob"
-msgstr "изÑзмиÑе пакеÑ(е) по Ð¸Ð¼ÐµÐ½Ñ Ð¸Ð»Ð¸ glob-Ñ"
+msgstr "изÑзми пакеÑ(е) по Ð¸Ð¼ÐµÐ½Ñ Ð¸Ð»Ð¸ глобÑ"
-#: ../cli.py:1138
+#: ../cli.py:1211
msgid "disable exclude from main, for a repo or for everything"
msgstr "иÑкÑÑÑи изÑзимаÑе из главног ÑкÑпа, за ÑизниÑÑ Ð¸Ð»Ð¸ за Ñве"
-#: ../cli.py:1141
+#: ../cli.py:1214
msgid "enable obsoletes processing during updates"
msgstr "ÑкÑÑÑи обÑÐ°Ð´Ñ Ð·Ð°ÑÑаÑелиÑ
пакеÑа Ñ ÑÐ¾ÐºÑ Ð°Ð¶ÑÑиÑаÑа"
-#: ../cli.py:1143
+#: ../cli.py:1216
msgid "disable Yum plugins"
msgstr "иÑкÑÑÑи додаÑке за Yum"
-#: ../cli.py:1145
+#: ../cli.py:1218
msgid "disable gpg signature checking"
msgstr "иÑкÑÑÑи пÑовеÑÑ gpg поÑпиÑа"
-#: ../cli.py:1147
+#: ../cli.py:1220
msgid "disable plugins by name"
msgstr "иÑкÑÑÑи додаÑке по именÑ"
-#: ../cli.py:1150
+#: ../cli.py:1223
+msgid "enable plugins by name"
+msgstr "ÑкÑÑÑи додаÑке по именÑ"
+
+#: ../cli.py:1226
msgid "skip packages with depsolving problems"
msgstr "пÑеÑкоÑи пакеÑе коÑи имаÑÑ Ð¿Ñоблема Ñа ÑеÑаваÑем завиÑноÑÑи"
-#: ../output.py:229
+#: ../output.py:236
msgid "Jan"
msgstr "Ñан"
-#: ../output.py:229
+#: ../output.py:236
msgid "Feb"
msgstr "Ñеб"
-#: ../output.py:229
+#: ../output.py:236
msgid "Mar"
msgstr "маÑ"
-#: ../output.py:229
+#: ../output.py:236
msgid "Apr"
msgstr "апÑ"
-#: ../output.py:229
+#: ../output.py:236
msgid "May"
msgstr "маÑ"
-#: ../output.py:229
+#: ../output.py:236
msgid "Jun"
msgstr "ÑÑн"
-#: ../output.py:230
+#: ../output.py:237
msgid "Jul"
msgstr "ÑÑл"
-#: ../output.py:230
+#: ../output.py:237
msgid "Aug"
msgstr "авг"
-#: ../output.py:230
+#: ../output.py:237
msgid "Sep"
msgstr "Ñеп"
-#: ../output.py:230
+#: ../output.py:237
msgid "Oct"
msgstr "окÑ"
-#: ../output.py:230
+#: ../output.py:237
msgid "Nov"
msgstr "нов"
-#: ../output.py:230
+#: ../output.py:237
msgid "Dec"
msgstr "деÑ"
-#: ../output.py:240
+#: ../output.py:247
msgid "Trying other mirror."
msgstr "ÐокÑÑавам дÑÑги одÑаз."
-#: ../output.py:293
+#: ../output.py:425
#, python-format
-msgid "Name : %s"
-msgstr "Ðме : %s"
+msgid "Name : %s%s%s"
+msgstr "Ðме : %s%s%s"
-#: ../output.py:294
+#: ../output.py:426
#, python-format
msgid "Arch : %s"
msgstr "ÐÑÑ
иÑекÑÑÑа: %s"
-#: ../output.py:296
+#: ../output.py:428
#, python-format
msgid "Epoch : %s"
msgstr "ÐеÑиод : %s"
-#: ../output.py:297
+#: ../output.py:429
#, python-format
msgid "Version : %s"
msgstr "ÐеÑзиÑа : %s"
-#: ../output.py:298
+#: ../output.py:430
#, python-format
msgid "Release : %s"
msgstr "ÐздаÑе : %s"
-#: ../output.py:299
+#: ../output.py:431
#, python-format
msgid "Size : %s"
msgstr "ÐелиÑина : %s"
-#: ../output.py:300
+#: ../output.py:432
#, python-format
msgid "Repo : %s"
msgstr "РизниÑа : %s"
-#: ../output.py:302
+#: ../output.py:434
#, python-format
msgid "Committer : %s"
msgstr "ÐбÑавÑÐ¸Ð²Ð°Ñ : %s"
-#: ../output.py:303
+#: ../output.py:435
+#, fuzzy, python-format
+msgid "Committime : %s"
+msgstr "ÐбÑавÑÐ¸Ð²Ð°Ñ : %s"
+
+#: ../output.py:436
+#, fuzzy, python-format
+msgid "Buildtime : %s"
+msgstr "ÐбÑавÑÐ¸Ð²Ð°Ñ : %s"
+
+#: ../output.py:438
+#, fuzzy, python-format
+msgid "Installtime: %s"
+msgstr "ÐнÑÑалиÑани"
+
+#: ../output.py:439
msgid "Summary : "
msgstr "СажеÑак :"
-#: ../output.py:305
+#: ../output.py:441
#, python-format
msgid "URL : %s"
msgstr "УРР: %s"
-#: ../output.py:306
+#: ../output.py:442
#, python-format
msgid "License : %s"
msgstr "ÐиÑенÑа : %s"
-#: ../output.py:307
+#: ../output.py:443
msgid "Description: "
msgstr "ÐÐ¿Ð¸Ñ : "
-#: ../output.py:351
-msgid "Is this ok [y/N]: "
-msgstr "Ðа ли Ñе ово Ñ ÑÐµÐ´Ñ [d/N]: "
-
-#: ../output.py:357 ../output.py:360
+#: ../output.py:500
msgid "y"
msgstr "d"
-#: ../output.py:357
-msgid "n"
-msgstr "n"
-
-#: ../output.py:357 ../output.py:360
+#: ../output.py:500
msgid "yes"
msgstr "da"
-#: ../output.py:357
+#: ../output.py:501
+msgid "n"
+msgstr "n"
+
+#: ../output.py:501
msgid "no"
msgstr "ne"
-#: ../output.py:367
+#: ../output.py:505
+msgid "Is this ok [y/N]: "
+msgstr "Ðа ли Ñе ово Ñ ÑÐµÐ´Ñ [d/N]: "
+
+#: ../output.py:587
#, python-format
msgid ""
"\n"
@@ -556,96 +620,123 @@ msgstr ""
"\n"
"ÐÑÑпа: %s"
-#: ../output.py:369
+#: ../output.py:594
#, python-format
msgid " Description: %s"
msgstr " ÐпиÑ: %s"
-#: ../output.py:371
+#: ../output.py:596
msgid " Mandatory Packages:"
msgstr " Ðбавезни пакеÑи:"
-#: ../output.py:376
+#: ../output.py:597
msgid " Default Packages:"
msgstr " ÐодÑазÑмевани пакеÑи:"
-#: ../output.py:381
+#: ../output.py:598
msgid " Optional Packages:"
msgstr " ÐзбоÑни пакеÑи:"
-#: ../output.py:386
+#: ../output.py:599
msgid " Conditional Packages:"
msgstr " УÑловÑени пакеÑи:"
-#: ../output.py:394
+#: ../output.py:619
#, python-format
msgid "package: %s"
msgstr "пакеÑ: %s"
-#: ../output.py:396
+#: ../output.py:621
msgid " No dependencies for this package"
msgstr " Ðе поÑÑоÑе завиÑноÑÑи овог пакеÑа"
-#: ../output.py:401
+#: ../output.py:626
#, python-format
msgid " dependency: %s"
msgstr " завиÑноÑÑ: %s"
-#: ../output.py:403
+#: ../output.py:628
msgid " Unsatisfied dependency"
msgstr " ÐезадовоÑена завиÑноÑÑ"
-#: ../output.py:461
+#: ../output.py:700
msgid "Matched from:"
msgstr "Ðовезан из:"
-#: ../output.py:487
+#: ../output.py:708
+msgid "Description : "
+msgstr "ÐÐ¿Ð¸Ñ : "
+
+#: ../output.py:711
+#, python-format
+msgid "URL : %s"
+msgstr "УРР: %s"
+
+#: ../output.py:714
+#, python-format
+msgid "License : %s"
+msgstr "ÐиÑенÑа : %s"
+
+#: ../output.py:717
+#, python-format
+msgid "Filename : %s"
+msgstr "Ðме даÑоÑеке: %s"
+
+#: ../output.py:721
+msgid "Other : "
+msgstr "ÐÑÑало : "
+
+#: ../output.py:753
msgid "There was an error calculating total download size"
msgstr "Ðогодила Ñе гÑеÑка пÑи ÑаÑÑнаÑÑ ÑкÑпне велиÑине за пÑеÑзимаÑе"
-#: ../output.py:492
+#: ../output.py:758
#, python-format
msgid "Total size: %s"
msgstr "УкÑпна велиÑина: %s"
-#: ../output.py:495
+#: ../output.py:761
#, python-format
msgid "Total download size: %s"
msgstr "УкÑпна велиÑина за пÑеÑзимаÑе: %s"
-#: ../output.py:507
+#: ../output.py:779
+msgid "Installing for dependencies"
+msgstr "ÐнÑÑалиÑам због завиÑноÑÑи"
+
+#: ../output.py:780
+msgid "Updating for dependencies"
+msgstr "ÐжÑÑиÑам због завиÑноÑÑи"
+
+#: ../output.py:781
+msgid "Removing for dependencies"
+msgstr "УклаÑам због завиÑноÑÑи"
+
+#: ../output.py:782 ../output.py:893
+msgid "Skipped (dependency problems)"
+msgstr "ÐÑеÑкоÑено (пÑоблеми Ñа завиÑноÑÑима)"
+
+#: ../output.py:818
msgid "Package"
msgstr "ÐакеÑ"
-#: ../output.py:507
+#: ../output.py:818
msgid "Arch"
msgstr "ÐÑÑ
иÑекÑÑÑа"
-#: ../output.py:507
+#: ../output.py:819
msgid "Version"
msgstr "ÐеÑзиÑа"
-#: ../output.py:507
+#: ../output.py:819
msgid "Repository"
msgstr "РизниÑа"
-#: ../output.py:507
+#: ../output.py:820
msgid "Size"
msgstr "ÐелиÑина"
-#: ../output.py:514
-msgid "Installing for dependencies"
-msgstr "ÐнÑÑалиÑам због завиÑноÑÑи"
-
-#: ../output.py:515
-msgid "Updating for dependencies"
-msgstr "ÐжÑÑиÑам због завиÑноÑÑи"
-
-#: ../output.py:516
-msgid "Removing for dependencies"
-msgstr "УклаÑам због завиÑноÑÑи"
-
-#: ../output.py:528
+#: ../output.py:831
#, python-format
msgid ""
" replacing %s.%s %s\n"
@@ -654,44 +745,44 @@ msgstr ""
" ÑклаÑам %s.%s %s\n"
"\n"
-#: ../output.py:536
+#: ../output.py:839
#, python-format
msgid ""
"\n"
"Transaction Summary\n"
-"=============================================================================\n"
+"%s\n"
"Install %5.5s Package(s) \n"
"Update %5.5s Package(s) \n"
"Remove %5.5s Package(s) \n"
msgstr ""
"\n"
"СажеÑак ÑÑанÑакÑиÑе\n"
-"=============================================================================\n"
-"инÑÑалиÑаÑе %5.5s пакеÑ(а) \n"
-"ажÑÑиÑаÑе %5.5s пакеÑ(а) \n"
-"ÑклаÑаÑе %5.5s пакеÑ(а) \n"
+"%s\n"
+"ÐнÑÑалаÑиÑа %5.5s пакеÑ(а) \n"
+"ÐжÑÑиÑаÑе %5.5s пакеÑ(а) \n"
+"УклаÑаÑе %5.5s пакеÑ(а) \n"
-#: ../output.py:554
+#: ../output.py:887
msgid "Removed"
msgstr "УклоÑено"
-#: ../output.py:555
+#: ../output.py:888
msgid "Dependency Removed"
msgstr "ÐавиÑноÑÑ ÑклоÑена"
-#: ../output.py:557
+#: ../output.py:890
msgid "Dependency Installed"
msgstr "ÐавиÑноÑÑ Ð¸Ð½ÑÑалиÑана"
-#: ../output.py:559
+#: ../output.py:892
msgid "Dependency Updated"
msgstr "ÐавиÑноÑÑ Ð°Ð¶ÑÑиÑана"
-#: ../output.py:560
+#: ../output.py:894
msgid "Replaced"
msgstr "ÐамеÑено"
-#: ../output.py:618
+#: ../output.py:967
#, python-format
msgid ""
"\n"
@@ -702,73 +793,77 @@ msgstr ""
" ТÑенÑÑно пÑеÑзимаÑе Ñе обÑÑÑавÑено, %sinterrupt (ctrl-c) ÑÐ¾Ñ Ñедном%s Ñ "
"ÑÐ¾ÐºÑ %s%s%s ÑекÑнди да биÑÑе изаÑли.\n"
-#: ../output.py:628
+#: ../output.py:977
msgid "user interrupt"
msgstr "пÑекид од ÑÑÑане коÑиÑника"
-#: ../output.py:639
+#: ../output.py:993
+msgid "Total"
+msgstr "УкÑпно"
+
+#: ../output.py:1007
msgid "installed"
msgstr "инÑÑалиÑан"
-#: ../output.py:640
+#: ../output.py:1008
msgid "updated"
msgstr "ажÑÑиÑан"
-#: ../output.py:641
+#: ../output.py:1009
msgid "obsoleted"
msgstr "пÑевазиÑен"
-#: ../output.py:642
+#: ../output.py:1010
msgid "erased"
msgstr "обÑиÑан"
-#: ../output.py:646
+#: ../output.py:1014
#, python-format
msgid "---> Package %s.%s %s:%s-%s set to be %s"
msgstr "---> ÐÐ°ÐºÐµÑ %s.%s %s:%s-%s поÑÑавÑен да бÑде %s"
-#: ../output.py:653
+#: ../output.py:1021
msgid "--> Running transaction check"
msgstr "--> ÐзвÑÑава Ñе пÑовеÑа ÑÑанÑакÑиÑе"
-#: ../output.py:658
+#: ../output.py:1026
msgid "--> Restarting Dependency Resolution with new changes."
msgstr "--> Ðоновно покÑеÑаÑе ÑазÑеÑаваÑа завиÑноÑÑи Ñа новим пÑоменама."
-#: ../output.py:663
+#: ../output.py:1031
msgid "--> Finished Dependency Resolution"
msgstr "--> ÐавÑÑено Ñе ÑазÑеÑаваÑе завиÑноÑÑи"
-#: ../output.py:668
+#: ../output.py:1036
#, python-format
msgid "--> Processing Dependency: %s for package: %s"
msgstr "--> ÐбÑаÑÑÑем завиÑноÑÑ: %s за пакеÑ: %s"
-#: ../output.py:673
+#: ../output.py:1041
#, python-format
msgid "--> Unresolved Dependency: %s"
msgstr "--> ÐеÑазÑеÑена завиÑноÑÑ: %s"
-#: ../output.py:679
+#: ../output.py:1047
#, python-format
msgid "--> Processing Conflict: %s conflicts %s"
msgstr "--> СÑкоб пÑи обÑади: %s Ñе ÑÑкоби Ñа %s"
-#: ../output.py:682
+#: ../output.py:1050
msgid "--> Populating transaction set with selected packages. Please wait."
msgstr ""
"--> ÐопÑÑавам ÑкÑп ÑÑанÑакÑиÑе Ñа изабÑаним пакеÑима. Ðолим ваÑ, ÑаÑекаÑÑе."
-#: ../output.py:686
+#: ../output.py:1054
#, python-format
msgid "---> Downloading header for %s to pack into transaction set."
msgstr "---> ÐÑеÑзимам заглавÑе за %s Ñади паковаÑа Ñ ÑкÑп ÑÑанÑакÑиÑе."
-#: ../yumcommands.py:36
+#: ../yumcommands.py:40
msgid "You need to be root to perform this command."
msgstr "ÐоÑаÑе биÑи root коÑиÑник да биÑÑе извÑÑили Ð¾Ð²Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ."
-#: ../yumcommands.py:43
+#: ../yumcommands.py:47
msgid ""
"\n"
"You have enabled checking of packages via GPG keys. This is a good thing. \n"
@@ -799,251 +894,312 @@ msgstr ""
"\n"
"Ðа виÑе инÑоÑмаÑиÑа конÑакÑиÑаÑÑе добавÑаÑа ваÑе диÑÑÑибÑÑиÑе или пакеÑа.\n"
-#: ../yumcommands.py:63
+#: ../yumcommands.py:67
#, python-format
msgid "Error: Need to pass a list of pkgs to %s"
msgstr "ÐÑеÑка: поÑÑебно Ñе да додаÑе ÑпиÑак пакеÑа %s-Ñ"
-#: ../yumcommands.py:69
+#: ../yumcommands.py:73
msgid "Error: Need an item to match"
msgstr "ÐÑеÑка: поÑÑебно Ñе пÑидÑÑжиÑи ÑÑавкÑ"
-#: ../yumcommands.py:75
+#: ../yumcommands.py:79
msgid "Error: Need a group or list of groups"
msgstr "ÐÑеÑка: поÑÑебна Ñе гÑÑпа или ÑпиÑак гÑÑпа"
-#: ../yumcommands.py:84
+#: ../yumcommands.py:88
#, python-format
msgid "Error: clean requires an option: %s"
msgstr "ÐÑеÑка: clean заÑ
Ñева опÑиÑÑ: %s"
-#: ../yumcommands.py:89
+#: ../yumcommands.py:93
#, python-format
msgid "Error: invalid clean argument: %r"
msgstr "ÐÑеÑка: погÑеÑан clean аÑгÑменÑ:%r"
-#: ../yumcommands.py:102
+#: ../yumcommands.py:106
msgid "No argument to shell"
msgstr "Ðе поÑÑоÑи аÑгÑÐ¼ÐµÐ½Ñ Ð·Ð° командно окÑÑжеÑе"
-#: ../yumcommands.py:105
+#: ../yumcommands.py:109
#, python-format
msgid "Filename passed to shell: %s"
msgstr "Ðме даÑоÑеке Ñе пÑоÑлеÑено командном окÑÑжеÑÑ: %s"
-#: ../yumcommands.py:109
+#: ../yumcommands.py:113
#, python-format
msgid "File %s given as argument to shell does not exist."
msgstr ""
-"Ðе поÑÑоÑи даÑоÑека %s, коÑа Ñе пÑоÑлеÑена као аÑгÑÐ¼ÐµÐ½Ñ ÐºÐ¾Ð¼Ð°Ð´Ð½Ð¾Ð¼ окÑÑжеÑÑ."
+"Ðе поÑÑоÑи даÑоÑека %s, коÑа Ñе пÑоÑлеÑена као аÑгÑÐ¼ÐµÐ½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð¼ окÑÑжеÑÑ."
-#: ../yumcommands.py:115
+#: ../yumcommands.py:119
msgid "Error: more than one file given as argument to shell."
msgstr ""
"ÐÑеÑка: виÑе од Ñедне даÑоÑеке Ñе пÑоÑлеÑено као аÑгÑÐ¼ÐµÐ½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð¼ окÑÑжеÑÑ."
-#: ../yumcommands.py:156
+#: ../yumcommands.py:160
msgid "PACKAGE..."
msgstr "ÐÐÐÐТ..."
-#: ../yumcommands.py:159
+#: ../yumcommands.py:163
msgid "Install a package or packages on your system"
msgstr "ÐнÑÑалиÑаÑÑе Ð¿Ð°ÐºÐµÑ Ð¸Ð»Ð¸ пакеÑе на Ð²Ð°Ñ ÑиÑÑем"
-#: ../yumcommands.py:168
+#: ../yumcommands.py:172
msgid "Setting up Install Process"
msgstr "ÐоÑÑавÑам пÑоÑÐµÑ Ð¸Ð½ÑÑалаÑиÑе"
-#: ../yumcommands.py:179
+#: ../yumcommands.py:183
msgid "[PACKAGE...]"
msgstr "[ÐÐÐÐТ...]"
-#: ../yumcommands.py:182
+#: ../yumcommands.py:186
msgid "Update a package or packages on your system"
msgstr "ÐжÑÑиÑÐ°Ñ Ð¿Ð°ÐºÐµÑ Ð¸Ð»Ð¸ пакеÑе на ваÑем ÑиÑÑемÑ"
-#: ../yumcommands.py:190
+#: ../yumcommands.py:194
msgid "Setting up Update Process"
msgstr "ÐоÑÑавÑам пÑоÑÐµÑ Ð°Ð¶ÑÑиÑаÑа"
-#: ../yumcommands.py:204
+#: ../yumcommands.py:236
msgid "Display details about a package or group of packages"
msgstr "ÐÑикажи деÑаÑе о Ñваком пакеÑÑ Ð¸Ð»Ð¸ гÑÑпи пакеÑа"
-#: ../yumcommands.py:212
+#. Output the packages:
+#: ../yumcommands.py:261
msgid "Installed Packages"
msgstr "ÐнÑÑалиÑани пакеÑи"
-#: ../yumcommands.py:213
+#: ../yumcommands.py:263
msgid "Available Packages"
msgstr "ÐоÑÑÑпни пакеÑи"
-#: ../yumcommands.py:214
+#: ../yumcommands.py:265
msgid "Extra Packages"
msgstr "ÐодаÑни пакеÑи"
-#: ../yumcommands.py:215
+#: ../yumcommands.py:267
msgid "Updated Packages"
msgstr "ÐжÑÑиÑани пакеÑи"
-#: ../yumcommands.py:221 ../yumcommands.py:225
+#: ../yumcommands.py:274 ../yumcommands.py:281
msgid "Obsoleting Packages"
msgstr "ÐÑевазиÑени пакеÑи"
-#: ../yumcommands.py:226
+#: ../yumcommands.py:283
msgid "Recently Added Packages"
msgstr "Ðедавно додаÑи пакеÑи"
-#: ../yumcommands.py:232
+#: ../yumcommands.py:290
msgid "No matching Packages to list"
msgstr "Ðе поÑÑоÑе одговаÑаÑÑÑи пакеÑи за излиÑÑаваÑе"
-#: ../yumcommands.py:246
+#: ../yumcommands.py:304
msgid "List a package or groups of packages"
msgstr "ÐзлиÑÑÐ°Ñ Ð¿Ð°ÐºÐµÑе или гÑÑпе пакеÑа"
-#: ../yumcommands.py:258
+#: ../yumcommands.py:316
msgid "Remove a package or packages from your system"
msgstr "УклониÑе Ð¿Ð°ÐºÐµÑ Ð¸Ð»Ð¸ пакеÑе Ñа ваÑег ÑиÑÑема"
-#: ../yumcommands.py:266
+#: ../yumcommands.py:324
msgid "Setting up Remove Process"
msgstr "ÐоÑÑавÑам пÑоÑÐµÑ ÑклаÑаÑа"
-#: ../yumcommands.py:278
+#: ../yumcommands.py:339
msgid "Setting up Group Process"
msgstr "ÐоÑÑавÑам пÑоÑÐµÑ Ð·Ð° гÑÑпе"
-#: ../yumcommands.py:284
+#: ../yumcommands.py:345
msgid "No Groups on which to run command"
msgstr "Ðе поÑÑоÑи гÑÑпа над коÑом Ñе може извÑÑиÑи команда"
-#: ../yumcommands.py:297
+#: ../yumcommands.py:358
msgid "List available package groups"
msgstr "ÐзлиÑÑÐ°Ñ Ð´Ð¾ÑÑÑпне гÑÑпе пакеÑа"
-#: ../yumcommands.py:314
+#: ../yumcommands.py:375
msgid "Install the packages in a group on your system"
msgstr "ÐнÑÑалиÑаÑÑе пакеÑе Ñ Ð³ÑÑпи на ваÑем ÑиÑÑемÑ"
-#: ../yumcommands.py:336
+#: ../yumcommands.py:397
msgid "Remove the packages in a group from your system"
msgstr "УклониÑе пакеÑе Ñ Ð³ÑÑпи Ñа ваÑег ÑиÑÑема"
-#: ../yumcommands.py:360
+#: ../yumcommands.py:424
msgid "Display details about a package group"
msgstr "ÐÑикажи деÑаÑе о гÑÑпи пакеÑа"
-#: ../yumcommands.py:384
+#: ../yumcommands.py:448
msgid "Generate the metadata cache"
msgstr "ÐапÑави ÐºÐµÑ Ñа меÑаподаÑима"
-#: ../yumcommands.py:390
+#: ../yumcommands.py:454
msgid "Making cache files for all metadata files."
msgstr "ÐÑавим ÐºÐµÑ Ð´Ð°ÑоÑеке за Ñве даÑоÑеке Ñа меÑаподаÑима."
-#: ../yumcommands.py:391
+#: ../yumcommands.py:455
msgid "This may take a while depending on the speed of this computer"
msgstr "Ðво може да поÑÑаÑе Ñ Ð·Ð°Ð²Ð¸ÑноÑÑи од бÑзине ваÑег ÑаÑÑнаÑа"
-#: ../yumcommands.py:412
+#: ../yumcommands.py:476
msgid "Metadata Cache Created"
msgstr "ÐапÑавÑен Ñе ÐºÐµÑ Ñа меÑаподаÑима"
-#: ../yumcommands.py:426
+#: ../yumcommands.py:490
msgid "Remove cached data"
msgstr "Уклони кеÑиÑане подаÑке"
-#: ../yumcommands.py:447
+#: ../yumcommands.py:511
msgid "Find what package provides the given value"
msgstr "ÐÑонаÑи коÑи Ð¿Ð°ÐºÐµÑ Ð¿ÑÑжа даÑÑ Ð²ÑедноÑÑ"
-#: ../yumcommands.py:467
+#: ../yumcommands.py:531
msgid "Check for available package updates"
msgstr "ÐÑовеÑиÑе да ли ÑÑ Ð´Ð¾ÑÑÑпна ажÑÑиÑаÑа пакеÑа"
-#: ../yumcommands.py:490
+#: ../yumcommands.py:556
msgid "Search package details for the given string"
msgstr "ÐÑеÑÑажиÑе деÑаÑе о пакеÑÑ Ð·Ð° задаÑÑ Ð½Ð¸ÑкÑ"
-#: ../yumcommands.py:496
+#: ../yumcommands.py:562
msgid "Searching Packages: "
msgstr "ÐÑеÑÑажÑÑем пакеÑе: "
-#: ../yumcommands.py:513
+#: ../yumcommands.py:579
msgid "Update packages taking obsoletes into account"
msgstr "ÐжÑÑиÑаÑÑе пакеÑе ÑзимаÑÑÑи пÑевазиÑене Ñ Ð¾Ð±Ð·Ð¸Ñ"
-#: ../yumcommands.py:522
+#: ../yumcommands.py:588
msgid "Setting up Upgrade Process"
msgstr "ÐоÑÑавÑам пÑоÑÐµÑ Ð½Ð°Ð´Ð³ÑадÑе"
-#: ../yumcommands.py:536
+#: ../yumcommands.py:602
msgid "Install a local RPM"
msgstr "ÐнÑÑалиÑÐ°Ñ Ð»Ð¾ÐºÐ°Ð»Ð½Ð¸ RPM"
-#: ../yumcommands.py:545
+#: ../yumcommands.py:611
msgid "Setting up Local Package Process"
msgstr "ÐоÑÑавÑам пÑоÑÐµÑ Ð»Ð¾ÐºÐ°Ð»Ð½Ð¸Ñ
пакеÑа"
-#: ../yumcommands.py:564
+#: ../yumcommands.py:630
msgid "Determine which package provides the given dependency"
msgstr "ÐдÑеди коÑи пакеÑи пÑÑжаÑÑ Ð´Ð°ÑÑ Ð·Ð°Ð²Ð¸ÑноÑÑ"
-#: ../yumcommands.py:567
+#: ../yumcommands.py:633
msgid "Searching Packages for Dependency:"
msgstr "ÐÑеÑÑажÑÑем пакеÑе Ñ Ð¿Ð¾ÑÑази за завиÑноÑÑима:"
-#: ../yumcommands.py:581
+#: ../yumcommands.py:647
msgid "Run an interactive yum shell"
msgstr "ÐзвÑÑÐ°Ð²Ð°Ñ Ð¸Ð½ÑеÑакÑивно командно окÑÑжеÑе yum-а"
-#: ../yumcommands.py:587
+#: ../yumcommands.py:653
msgid "Setting up Yum Shell"
msgstr "ÐоÑÑавÑам Yum командно окÑÑжеÑе"
-#: ../yumcommands.py:605
+#: ../yumcommands.py:671
msgid "List a package's dependencies"
msgstr "ÐзлиÑÑÐ°Ñ Ð·Ð°Ð²Ð¸ÑноÑÑи пакеÑа"
-#: ../yumcommands.py:611
+#: ../yumcommands.py:677
msgid "Finding dependencies: "
msgstr "ТÑажим завиÑноÑÑи: "
-#: ../yumcommands.py:627
+#: ../yumcommands.py:693
msgid "Display the configured software repositories"
msgstr "ÐÑикажи подеÑене ÑоÑÑвеÑÑке ÑизниÑе"
-#: ../yumcommands.py:645
+#: ../yumcommands.py:742
+msgid "enabled"
+msgstr "ÑкÑÑÑена"
+
+#: ../yumcommands.py:751
+msgid "disabled"
+msgstr "иÑкÑÑÑена"
+
+#: ../yumcommands.py:760
msgid "repo id"
msgstr "Ñепо id"
-#: ../yumcommands.py:645
+#: ../yumcommands.py:761
msgid "repo name"
msgstr "Ñепо име"
-#: ../yumcommands.py:645
+#: ../yumcommands.py:761
msgid "status"
msgstr "ÑÑаÑÑÑ"
-#: ../yumcommands.py:651
-msgid "enabled"
-msgstr "ÑкÑÑÑена"
+#: ../yumcommands.py:765
+msgid "Repo-id : "
+msgstr "ÐÐ ÑизниÑе : "
-#: ../yumcommands.py:654
-msgid "disabled"
-msgstr "иÑкÑÑÑена"
+#: ../yumcommands.py:766
+msgid "Repo-name : "
+msgstr "Ðме ÑизниÑе : "
-#: ../yumcommands.py:671
+#: ../yumcommands.py:767
+msgid "Repo-status : "
+msgstr "СÑаÑÑÑ ÑизниÑе : "
+
+#: ../yumcommands.py:769
+#, fuzzy
+msgid "Repo-revision: "
+msgstr "ÐелиÑина ÑизниÑе : "
+
+#: ../yumcommands.py:773
+#, fuzzy
+msgid "Repo-tags : "
+msgstr "ÐакеÑи ÑизниÑе : "
+
+#: ../yumcommands.py:779
+#, fuzzy
+msgid "Repo-distro-tags: "
+msgstr "СÑаÑÑÑ ÑизниÑе : "
+
+#: ../yumcommands.py:784
+msgid "Repo-updated: "
+msgstr "РизниÑа ажÑÑиÑана : "
+
+#: ../yumcommands.py:786
+msgid "Repo-pkgs : "
+msgstr "ÐакеÑи ÑизниÑе : "
+
+#: ../yumcommands.py:787
+msgid "Repo-size : "
+msgstr "ÐелиÑина ÑизниÑе : "
+
+#: ../yumcommands.py:794
+msgid "Repo-baseurl: "
+msgstr "ÐÑновни УРРÑизниÑе: "
+
+#: ../yumcommands.py:798
+#, fuzzy
+msgid "Repo-metalink: "
+msgstr "Ðме ÑизниÑе : "
+
+#: ../yumcommands.py:801
+msgid "Repo-mirrors: "
+msgstr "ÐдÑази ÑизниÑе : "
+
+#: ../yumcommands.py:805
+msgid "Repo-exclude: "
+msgstr "РизниÑа иÑкÑÑÑена : "
+
+#: ../yumcommands.py:809
+msgid "Repo-include: "
+msgstr "РизниÑа ÑкÑÑÑена : "
+
+#: ../yumcommands.py:835
msgid "Display a helpful usage message"
msgstr "ÐÑикажи коÑиÑÐ½Ñ Ð¿Ð¾ÑÑÐºÑ Ð¾ ÑпоÑÑеби"
-#: ../yumcommands.py:705
+#: ../yumcommands.py:869
#, python-format
msgid "No help available for %s"
msgstr "ÐиÑе доÑÑÑпна Ð¿Ð¾Ð¼Ð¾Ñ Ð·Ð° %s"
-#: ../yumcommands.py:710
+#: ../yumcommands.py:874
msgid ""
"\n"
"\n"
@@ -1051,9 +1207,9 @@ msgid ""
msgstr ""
"\n"
"\n"
-"алиÑаÑи: "
+"пÑеÑдоними: "
-#: ../yumcommands.py:712
+#: ../yumcommands.py:876
msgid ""
"\n"
"\n"
@@ -1061,13 +1217,13 @@ msgid ""
msgstr ""
"\n"
"\n"
-"алиÑаÑ: "
+"пÑеÑдоним: "
-#: ../yumcommands.py:741
+#: ../yumcommands.py:905
msgid "Setting up Reinstall Process"
msgstr "ÐоÑÑавÑам пÑоÑÐµÑ Ð¿Ð¾Ð½Ð¾Ð²Ð½Ðµ инÑÑалаÑиÑе"
-#: ../yumcommands.py:755
+#: ../yumcommands.py:919
msgid "reinstall a package"
msgstr "поновно инÑÑалиÑам пакеÑ"
@@ -1091,29 +1247,29 @@ msgstr ""
"\n"
"Ðзлазим када Ñе Ñломи Ñев"
-#: ../yummain.py:105
+#: ../yummain.py:98
msgid ""
"Another app is currently holding the yum lock; waiting for it to exit..."
msgstr ""
-"Ðеки дÑÑги пÑогÑам ÑÑенÑÑно дÑжи yum закÑÑÑаваÑе, Ñекам да Ñе ÑÐ°Ñ Ð¿ÑогÑам "
-"иÑкÑÑÑи..."
+"Ðеки дÑÑги пÑогÑам ÑÑенÑÑно дÑжи yum закÑÑÑаним; Ñекам да ÑÐ°Ñ Ð¿ÑогÑам "
+"изаÑе..."
-#: ../yummain.py:132 ../yummain.py:171
+#: ../yummain.py:125 ../yummain.py:164
#, python-format
msgid "Error: %s"
msgstr "ÐÑеÑка: %s"
-#: ../yummain.py:142 ../yummain.py:178
+#: ../yummain.py:135 ../yummain.py:171
#, python-format
msgid "Unknown Error(s): Exit Code: %d:"
msgstr "ÐепознаÑа гÑеÑка(е): излазни код: %d:"
#. Depsolve stage
-#: ../yummain.py:149
+#: ../yummain.py:142
msgid "Resolving Dependencies"
msgstr "РазÑеÑавам завиÑноÑÑи"
-#: ../yummain.py:184
+#: ../yummain.py:177
msgid ""
"\n"
"Dependencies Resolved"
@@ -1121,11 +1277,11 @@ msgstr ""
"\n"
"ÐавиÑноÑÑи ÑÑ ÑазÑеÑене"
-#: ../yummain.py:198
+#: ../yummain.py:191
msgid "Complete!"
msgstr "ÐавÑÑено!"
-#: ../yummain.py:245
+#: ../yummain.py:238
msgid ""
"\n"
"\n"
@@ -1135,318 +1291,315 @@ msgstr ""
"\n"
"Ðзлазим када коÑиÑник оÑкаже."
-#: ../yum/depsolve.py:82
+#: ../yum/depsolve.py:84
msgid "doTsSetup() will go away in a future version of Yum.\n"
msgstr "doTsSetup() неÑе биÑи пÑиÑÑÑна Ñ Ð±ÑдÑÑим веÑзиÑама Yum-а.\n"
-#: ../yum/depsolve.py:95
+#: ../yum/depsolve.py:97
msgid "Setting up TransactionSets before config class is up"
msgstr "ÐоÑÑавÑам TransactionSets пÑе него ÑÑо Ñе подигне клаÑа подеÑаваÑа"
-#: ../yum/depsolve.py:136
+#: ../yum/depsolve.py:148
#, python-format
msgid "Invalid tsflag in config file: %s"
msgstr "ÐогÑеÑан tsflag Ñ Ð´Ð°ÑоÑеÑи подеÑаваÑа: %s"
-#: ../yum/depsolve.py:147
+#: ../yum/depsolve.py:159
#, fuzzy, python-format
msgid "Searching pkgSack for dep: %s"
msgstr "ÑÑажим Ð¿Ð°ÐºÐµÑ %s"
-#: ../yum/depsolve.py:170
+#: ../yum/depsolve.py:182
#, fuzzy, python-format
msgid "Potential match for %s from %s"
msgstr "ÐоÑÑоÑи виÑе од Ñедног иденÑиÑног ÑлагаÑа Ñ Ð³ÑÑпи за %s"
-#: ../yum/depsolve.py:178
+#: ../yum/depsolve.py:190
#, fuzzy, python-format
msgid "Matched %s to require for %s"
msgstr "%s заÑ
Ñева: %s"
-#: ../yum/depsolve.py:219
+#: ../yum/depsolve.py:231
#, python-format
msgid "Member: %s"
msgstr "Члан: %s"
-#: ../yum/depsolve.py:233 ../yum/depsolve.py:696
+#: ../yum/depsolve.py:245 ../yum/depsolve.py:732
#, python-format
msgid "%s converted to install"
msgstr "%s пÑебаÑен за инÑÑалаÑиÑÑ"
-#: ../yum/depsolve.py:240
+#: ../yum/depsolve.py:252
#, python-format
msgid "Adding Package %s in mode %s"
msgstr "ÐодаÑем Ð¿Ð°ÐºÐµÑ %s Ñ Ð½Ð°ÑÐ¸Ð½Ñ Ñада %s"
-#: ../yum/depsolve.py:250
+#: ../yum/depsolve.py:262
#, python-format
msgid "Removing Package %s"
msgstr "УклаÑам Ð¿Ð°ÐºÐµÑ %s"
-#: ../yum/depsolve.py:261
+#: ../yum/depsolve.py:273
#, python-format
msgid "%s requires: %s"
msgstr "%s заÑ
Ñева: %s"
-#: ../yum/depsolve.py:312
+#: ../yum/depsolve.py:331
msgid "Needed Require has already been looked up, cheating"
-msgstr ""
+msgstr "ÐоÑÑебан заÑ
Ñев Ñе Ð²ÐµÑ Ð¿Ð¾ÑÑажен, обмаÑÑÑем"
-#: ../yum/depsolve.py:322
+#: ../yum/depsolve.py:341
#, python-format
msgid "Needed Require is not a package name. Looking up: %s"
-msgstr ""
+msgstr "ÐоÑÑебан заÑ
Ñев ниÑе име пакеÑа. ТÑажим: %s"
-#: ../yum/depsolve.py:329
-#, fuzzy, python-format
+#: ../yum/depsolve.py:348
+#, python-format
msgid "Potential Provider: %s"
-msgstr "УкÑпна велиÑина: %s"
+msgstr "ÐогÑÑи ÑнабдеваÑ: %s"
-#: ../yum/depsolve.py:352
+#: ../yum/depsolve.py:371
#, python-format
msgid "Mode is %s for provider of %s: %s"
-msgstr ""
+msgstr "Режим Ñе %s за ÑнабдеваÑа %s: %s"
-#: ../yum/depsolve.py:356
+#: ../yum/depsolve.py:375
#, python-format
msgid "Mode for pkg providing %s: %s"
-msgstr ""
+msgstr "Режим за Ð¿Ð°ÐºÐµÑ ÐºÐ¾Ñи Ñнабдева %s: %s"
-#: ../yum/depsolve.py:360
+#: ../yum/depsolve.py:379
#, python-format
msgid "TSINFO: %s package requiring %s marked as erase"
msgstr "TSINFO: %s Ð¿Ð°ÐºÐµÑ Ð·Ð°Ñ
Ñева да %s бÑде ознаÑен за бÑиÑаÑе"
-#: ../yum/depsolve.py:372
+#: ../yum/depsolve.py:391
#, python-format
msgid "TSINFO: Obsoleting %s with %s to resolve dep."
-msgstr "TSINFO: меÑам %s Ñа %s да биÑ
ÑазÑеÑио завиÑноÑÑ."
+msgstr "TSINFO: меÑам %s Ñа %s Ñади ÑазÑеÑаваÑа завиÑноÑÑи."
-#: ../yum/depsolve.py:375
+#: ../yum/depsolve.py:394
#, python-format
msgid "TSINFO: Updating %s to resolve dep."
-msgstr "TSINFO: ажÑÑиÑам %s да биÑ
ÑазÑеÑио завиÑноÑÑ."
+msgstr "TSINFO: ажÑÑиÑам %s Ñади ÑазÑеÑаваÑа завиÑноÑÑи."
-#: ../yum/depsolve.py:378
+#: ../yum/depsolve.py:402
#, python-format
msgid "Cannot find an update path for dep for: %s"
msgstr "Ðе Ð¼Ð¾Ð³Ñ Ð´Ð° пÑонаÑем пÑÑаÑÑ Ð°Ð¶ÑÑиÑаÑа за завиÑноÑÑ Ð·Ð°: %s"
-#: ../yum/depsolve.py:388
+#: ../yum/depsolve.py:412
#, python-format
msgid "Unresolvable requirement %s for %s"
-msgstr ""
+msgstr "ÐеÑазÑеÑив заÑ
Ñев пакеÑа %s за %s"
+
+#: ../yum/depsolve.py:435
+#, python-format
+msgid "Quick matched %s to require for %s"
+msgstr "ÐÑзо повезиваÑе пакеÑа %s као заÑ
Ñева за %s"
#. is it already installed?
-#: ../yum/depsolve.py:434
+#: ../yum/depsolve.py:477
#, python-format
msgid "%s is in providing packages but it is already installed, removing."
-msgstr "%s Ñе Ñ Ð¿ÑÑженим пакеÑа али Ñе Ð²ÐµÑ Ð¸Ð½ÑÑалиÑан, ÑклаÑам га."
+msgstr "%s Ñе Ñ Ð¿ÑÑженим пакеÑима али Ñе Ð²ÐµÑ Ð¸Ð½ÑÑалиÑан, ÑклаÑам га."
-#: ../yum/depsolve.py:449
+#: ../yum/depsolve.py:492
#, python-format
msgid "Potential resolving package %s has newer instance in ts."
msgstr "ÐоÑенÑиÑално ÑазÑеÑаваÑе пакеÑа %s има новиÑи пÑимеÑак Ñ ts-Ñ."
-#: ../yum/depsolve.py:460
+#: ../yum/depsolve.py:503
#, python-format
msgid "Potential resolving package %s has newer instance installed."
-msgstr "ÐоÑенÑиÑално ÑазÑеÑаваÑе пакеÑа %s има инÑÑалиÑан нови пÑимеÑак."
+msgstr "ÐоÑенÑиÑално ÑазÑеÑаваÑе пакеÑа %s има инÑÑалиÑан новиÑи пÑимеÑак."
-#: ../yum/depsolve.py:468 ../yum/depsolve.py:527
+#: ../yum/depsolve.py:511 ../yum/depsolve.py:560
#, python-format
msgid "Missing Dependency: %s is needed by package %s"
msgstr "ÐедоÑÑаÑе завиÑноÑÑ: %s Ñе поÑÑебан од ÑÑÑане пакеÑа %s"
-#: ../yum/depsolve.py:481
+#: ../yum/depsolve.py:524
#, python-format
msgid "%s already in ts, skipping this one"
msgstr "%s Ñе Ð²ÐµÑ Ñ ts-Ñ, пÑеÑкаÑем га"
-#: ../yum/depsolve.py:510
-#, python-format
-msgid ""
-"Failure finding best provider of %s for %s, exceeded maximum loop length"
-msgstr ""
-
-#: ../yum/depsolve.py:537
+#: ../yum/depsolve.py:570
#, python-format
msgid "TSINFO: Marking %s as update for %s"
msgstr "TSINFO: ознаÑавам %s као ажÑÑиÑаÑе за %s"
-#: ../yum/depsolve.py:544
+#: ../yum/depsolve.py:578
#, python-format
msgid "TSINFO: Marking %s as install for %s"
msgstr "TSINFO: ознаÑавам %s као инÑÑалаÑиÑÑ Ð·Ð° %s"
-#: ../yum/depsolve.py:635 ../yum/depsolve.py:714
+#: ../yum/depsolve.py:670 ../yum/depsolve.py:750
msgid "Success - empty transaction"
msgstr "УÑпеÑ
- пÑазна ÑÑанÑакÑиÑа"
-#: ../yum/depsolve.py:673 ../yum/depsolve.py:686
+#: ../yum/depsolve.py:709 ../yum/depsolve.py:722
msgid "Restarting Loop"
msgstr "Ðоново покÑеÑем пеÑÑÑ"
-#: ../yum/depsolve.py:702
+#: ../yum/depsolve.py:738
msgid "Dependency Process ending"
msgstr "ÐавÑÑеÑак пÑоÑеÑа завиÑноÑÑи"
-#: ../yum/depsolve.py:708
+#: ../yum/depsolve.py:744
#, python-format
msgid "%s from %s has depsolving problems"
msgstr "%s из %s има пÑоблема Ñа ÑазÑеÑаваÑем завиÑноÑÑи"
-#: ../yum/depsolve.py:715
+#: ../yum/depsolve.py:751
msgid "Success - deps resolved"
msgstr "УÑпеÑ
- завиÑноÑÑи ÑÑ ÑазÑеÑене"
-#: ../yum/depsolve.py:729
+#: ../yum/depsolve.py:765
#, python-format
msgid "Checking deps for %s"
msgstr "ÐÑовеÑавам завиÑноÑÑи за %s"
-#: ../yum/depsolve.py:782
+#: ../yum/depsolve.py:848
#, python-format
msgid "looking for %s as a requirement of %s"
msgstr "ÑÑажим %s као заÑ
Ñев за %s"
-#: ../yum/depsolve.py:933
-#, python-format
-msgid "Comparing best: %s to po: %s"
-msgstr ""
-
-#: ../yum/depsolve.py:937
+#: ../yum/depsolve.py:988
#, python-format
-msgid "Same: best %s == po: %s"
-msgstr ""
+msgid "Running compare_providers() for %s"
+msgstr "ÐокÑеÑем compare_providers() за %s"
-#: ../yum/depsolve.py:952 ../yum/depsolve.py:963
+#: ../yum/depsolve.py:1016 ../yum/depsolve.py:1022
#, fuzzy, python-format
-msgid "best %s obsoletes po: %s"
-msgstr "%s пÑевазилази %s"
-
-#: ../yum/depsolve.py:955
-#, fuzzy, python-format
-msgid "po %s obsoletes best: %s"
-msgstr "%s пÑевазилази %s"
-
-#: ../yum/depsolve.py:972 ../yum/depsolve.py:979 ../yum/depsolve.py:1036
-#, python-format
msgid "better arch in po %s"
msgstr "боÑа аÑÑ
иÑекÑÑÑа Ñ po %s"
-#: ../yum/depsolve.py:988 ../yum/depsolve.py:1010
+#: ../yum/depsolve.py:1061
#, python-format
-msgid "po %s shares a sourcerpm with %s"
-msgstr ""
+msgid "%s obsoletes %s"
+msgstr "%s пÑевазилази %s"
-#: ../yum/depsolve.py:992 ../yum/depsolve.py:1015
+#: ../yum/depsolve.py:1077
#, python-format
-msgid "best %s shares a sourcerpm with %s"
+msgid ""
+"archdist compared %s to %s on %s\n"
+" Winner: %s"
msgstr ""
+"archdist ÑпоÑедио %s Ñа %s на %s\n"
+" Ðобедник: %s"
-#: ../yum/depsolve.py:999 ../yum/depsolve.py:1020
+#: ../yum/depsolve.py:1084
#, python-format
-msgid "po %s shares more of the name prefix with %s"
-msgstr ""
+msgid "common sourcerpm %s and %s"
+msgstr "заÑедниÑки извоÑни rpm %s и %s"
-#: ../yum/depsolve.py:1003 ../yum/depsolve.py:1029
+#: ../yum/depsolve.py:1090
#, python-format
-msgid "po %s has a shorter name than best %s"
-msgstr ""
+msgid "common prefix of %s between %s and %s"
+msgstr "заÑедниÑки пÑеÑÐ¸ÐºÑ %s измеÑÑ %s и %s"
-#: ../yum/depsolve.py:1025
+#: ../yum/depsolve.py:1098
#, python-format
-msgid "bestpkg %s shares more of the name prefix with %s"
-msgstr ""
+msgid "Best Order: %s"
+msgstr "ÐаÑбоÑи ÑедоÑлед: %s"
-#: ../yum/__init__.py:119
+#: ../yum/__init__.py:135
msgid "doConfigSetup() will go away in a future version of Yum.\n"
msgstr "doConfigSetup() неÑе биÑи пÑиÑÑÑна Ñ Ð±ÑдÑÑим веÑзиÑама Yum-а.\n"
-#: ../yum/__init__.py:296
+#: ../yum/__init__.py:315
#, python-format
msgid "Repository %r is missing name in configuration, using id"
msgstr "РизниÑи %r недоÑÑаÑе име Ñ Ð¿Ð¾Ð´ÐµÑаваÑима, коÑиÑÑим id"
-#: ../yum/__init__.py:332
+#: ../yum/__init__.py:353
msgid "plugins already initialised"
msgstr "Ð²ÐµÑ Ð¸Ð½Ð¸ÑиÑализовани додаÑи"
-#: ../yum/__init__.py:339
+#: ../yum/__init__.py:360
msgid "doRpmDBSetup() will go away in a future version of Yum.\n"
msgstr "doRpmDBSetup() неÑе биÑи пÑиÑÑÑна Ñ Ð±ÑдÑÑим веÑзиÑама Yum-а.\n"
-#: ../yum/__init__.py:349
+#: ../yum/__init__.py:370
msgid "Reading Local RPMDB"
msgstr "ЧиÑам локални RPMDB"
-#: ../yum/__init__.py:367
+#: ../yum/__init__.py:388
msgid "doRepoSetup() will go away in a future version of Yum.\n"
msgstr "doRepoSetup() неÑе биÑи пÑиÑÑÑна Ñ Ð±ÑдÑÑим веÑзиÑама Yum-а.\n"
-#: ../yum/__init__.py:387
+#: ../yum/__init__.py:408
msgid "doSackSetup() will go away in a future version of Yum.\n"
msgstr "doSackSetup() неÑе биÑи пÑиÑÑÑна Ñ Ð±ÑдÑÑим веÑзиÑама Yum-а.\n"
-#: ../yum/__init__.py:404
+#: ../yum/__init__.py:425
msgid "Setting up Package Sacks"
msgstr "ÐоÑÑавÑам гÑÑпе пакеÑа"
-#: ../yum/__init__.py:447
+#: ../yum/__init__.py:468
#, python-format
msgid "repo object for repo %s lacks a _resetSack method\n"
msgstr "Ñепо обÑекÑÑ Ð·Ð° Ñепо %s недоÑÑаÑе a _resetSack меÑода\n"
-#: ../yum/__init__.py:448
+#: ../yum/__init__.py:469
msgid "therefore this repo cannot be reset.\n"
msgstr "због Ñога Ñе Ð¾Ð²Ð°Ñ Ñепо не може вÑаÑиÑи на поÑеÑÐ½Ñ Ð¿Ð¾ÑÑавкÑ.\n"
-#: ../yum/__init__.py:453
+#: ../yum/__init__.py:474
msgid "doUpdateSetup() will go away in a future version of Yum.\n"
msgstr "doUpdateSetup() неÑе биÑи пÑиÑÑÑна Ñ Ð±ÑдÑÑим веÑзиÑама Yum-а.\n"
-#: ../yum/__init__.py:465
+#: ../yum/__init__.py:486
msgid "Building updates object"
-msgstr "ÐзгÑаÑÑÑем обÑÐµÐºÐ°Ñ Ð°Ð¶ÑÑиÑÑа"
+msgstr "ÐзгÑаÑÑÑем обÑÐµÐºÐ°Ñ Ð°Ð¶ÑÑиÑаÑа"
-#: ../yum/__init__.py:496
+#: ../yum/__init__.py:517
msgid "doGroupSetup() will go away in a future version of Yum.\n"
msgstr "doGroupSetup() неÑе биÑи пÑиÑÑÑна Ñ Ð±ÑдÑÑим веÑзиÑама Yum-а.\n"
-#: ../yum/__init__.py:520
+#: ../yum/__init__.py:541
msgid "Getting group metadata"
msgstr "ÐобавÑам меÑаподаÑке гÑÑпе"
-#: ../yum/__init__.py:546
+#: ../yum/__init__.py:567
#, python-format
msgid "Adding group file from repository: %s"
msgstr "ÐодаÑем даÑоÑÐµÐºÑ Ð³ÑÑпе из ÑизниÑе: %s"
-#: ../yum/__init__.py:555
+#: ../yum/__init__.py:576
#, python-format
msgid "Failed to add groups file for repository: %s - %s"
-msgstr "ÐиÑам ÑÑпео да додам даÑоÑÐµÐºÑ Ð³ÑÑпе за ÑизниÑÑ: %s - %s"
+msgstr "ÐиÑе ÑÑпело додаваÑе даÑоÑеке гÑÑпе за ÑизниÑÑ: %s - %s"
-#: ../yum/__init__.py:561
+#: ../yum/__init__.py:582
msgid "No Groups Available in any repository"
msgstr "Ðе поÑÑоÑи гÑÑпа коÑа Ñе доÑÑÑпна Ñ Ð±Ð¸Ð»Ð¾ коÑÐ¾Ñ ÑизниÑи"
-#: ../yum/__init__.py:611
+#: ../yum/__init__.py:632
msgid "Importing additional filelist information"
msgstr "Увозим додаÑне инÑоÑмаÑиÑе о ÑпиÑковима даÑоÑека"
-#: ../yum/__init__.py:657
+#: ../yum/__init__.py:641
+#, fuzzy
+msgid ""
+"There are unfinished transactions remaining. You might consider running yum-"
+"complete-transaction first to finish them."
+msgstr ""
+"ÐÑÑале ÑÑ Ð½ÐµÐ´Ð¾Ð²ÑÑене ÑÑанÑакÑиÑе. Ðожда би ÑÑебало да извÑÑиÑе yum-complete-"
+"transaction да биÑÑе иÑ
завÑÑили."
+
+#: ../yum/__init__.py:698
#, python-format
msgid "Skip-broken round %i"
msgstr "Skip-broken еÑапа %i"
-#: ../yum/__init__.py:680
+#: ../yum/__init__.py:724
#, python-format
msgid "Skip-broken took %i rounds "
msgstr "Skip-broken Ñе завÑÑен Ñ %i еÑапа "
-#: ../yum/__init__.py:681
+#: ../yum/__init__.py:725
msgid ""
"\n"
"Packages skipped because of dependency problems:"
@@ -1454,95 +1607,108 @@ msgstr ""
"\n"
"ÐакеÑи ÑÑ Ð¿ÑеÑкоÑени због пÑоблема Ñа завиÑноÑÑима:"
-#: ../yum/__init__.py:685
+#: ../yum/__init__.py:729
#, python-format
msgid " %s from %s"
msgstr " %s из %s"
-#: ../yum/__init__.py:774
+#: ../yum/__init__.py:816
+msgid ""
+"Warning: scriptlet or other non-fatal errors occurred during transaction."
+msgstr ""
+"УпозоÑеÑе: доÑло Ñе до гÑеÑке Ñ ÑкÑипÑиÑи или неке дÑÑге некÑиÑиÑне гÑеÑке "
+"Ñоком ÑÑанÑакÑиÑе."
+
+#: ../yum/__init__.py:832
#, python-format
msgid "Failed to remove transaction file %s"
-msgstr "ÐиÑам ÑÑпео да Ñклоним даÑоÑÐµÐºÑ ÑÑанÑакÑиÑе %s"
+msgstr "ÐиÑе ÑÑпело ÑклаÑаÑе даÑоÑеке ÑÑанÑакÑиÑе %s"
-#: ../yum/__init__.py:814
+#: ../yum/__init__.py:873
#, python-format
msgid "excluding for cost: %s from %s"
msgstr "изÑзимам из ÑÑоÑка: %s из %s"
-#: ../yum/__init__.py:845
+#: ../yum/__init__.py:904
msgid "Excluding Packages in global exclude list"
msgstr "ÐзÑзимам пакеÑе Ñ Ð³Ð»Ð¾Ð±Ð°Ð»Ð½Ð¾Ð¼ ÑпиÑÐºÑ Ð·Ð° изÑзимаÑе"
-#: ../yum/__init__.py:847
+#: ../yum/__init__.py:906
#, python-format
msgid "Excluding Packages from %s"
msgstr "ÐзÑзимам пакеÑе из %s"
-#: ../yum/__init__.py:875
+#: ../yum/__init__.py:933
#, python-format
msgid "Reducing %s to included packages only"
msgstr "Сажимам %s Ñамо Ñ ÑадÑжане пакеÑе"
-#: ../yum/__init__.py:880
+#: ../yum/__init__.py:939
#, python-format
msgid "Keeping included package %s"
msgstr "ÐадÑжавам ÑадÑжани Ð¿Ð°ÐºÐµÑ %s"
-#: ../yum/__init__.py:886
+#: ../yum/__init__.py:945
#, python-format
msgid "Removing unmatched package %s"
msgstr "УклаÑам неповезани Ð¿Ð°ÐºÐµÑ %s"
-#: ../yum/__init__.py:889
+#: ../yum/__init__.py:948
msgid "Finished"
msgstr "ÐавÑÑио"
#. Whoa. What the heck happened?
-#: ../yum/__init__.py:919
+#: ../yum/__init__.py:978
#, python-format
msgid "Unable to check if PID %s is active"
-msgstr "ÐиÑам Ñ Ð¼Ð¾Ð³ÑÑниÑÑи да пÑовеÑим да ли Ñе PID %s акÑиван"
+msgstr "ÐиÑам Ñ Ð¼Ð¾Ð³ÑÑноÑÑи да пÑовеÑим да ли Ñе PID %s акÑиван"
#. Another copy seems to be running.
-#: ../yum/__init__.py:923
+#: ../yum/__init__.py:982
#, python-format
msgid "Existing lock %s: another copy is running as pid %s."
msgstr "ÐоÑÑоÑи закÑÑÑаваÑе %s: дÑÑга копиÑа Ñе извÑÑава као pid %s."
-#: ../yum/__init__.py:970 ../yum/__init__.py:977
+#: ../yum/__init__.py:1053
msgid "Package does not match intended download"
msgstr "ÐÐ°ÐºÐµÑ Ð½Ð¸Ñе одговаÑаÑÑÑи за намеÑавано пÑеÑзимаÑе"
-#: ../yum/__init__.py:991
+#: ../yum/__init__.py:1068
msgid "Could not perform checksum"
msgstr "Ðе Ð¼Ð¾Ð³Ñ Ð´Ð° извÑÑим конÑÑÐ¾Ð»Ñ ÑÑме"
-#: ../yum/__init__.py:994
+#: ../yum/__init__.py:1071
msgid "Package does not match checksum"
msgstr "ÐÐ°ÐºÐµÑ Ð½ÐµÐ¼Ð° одговаÑаÑÑÑи конÑÑÐ¾Ð»Ð½Ñ ÑÑмÑ"
-#: ../yum/__init__.py:1036
+#: ../yum/__init__.py:1114
#, python-format
msgid "package fails checksum but caching is enabled for %s"
msgstr ""
"Ð¿Ð°ÐºÐµÑ Ð½ÐµÐ¼Ð° одговаÑаÑÑÑÑ Ð²ÑедноÑÑ ÐºÐ¾Ð½ÑÑолне ÑÑме или Ñе за %s ÑкÑÑÑено "
"кеÑиÑаÑе"
-#: ../yum/__init__.py:1042
+#: ../yum/__init__.py:1117 ../yum/__init__.py:1145
#, python-format
msgid "using local copy of %s"
msgstr "коÑиÑÑим локални Ñмножак %s-а"
-#: ../yum/__init__.py:1061
+#: ../yum/__init__.py:1159
#, python-format
-msgid "Insufficient space in download directory %s to download"
-msgstr "ÐедовоÑна колиÑина пÑоÑÑоÑа Ñ Ð´Ð¸ÑекÑоÑиÑÑÐ¼Ñ %s намеÑеног за пÑеÑзимаÑе"
+msgid ""
+"Insufficient space in download directory %s\n"
+" * free %s\n"
+" * needed %s"
+msgstr ""
+"ÐедовоÑна колиÑина пÑоÑÑоÑа Ñ Ð´Ð¸ÑекÑоÑиÑÑÐ¼Ñ %s за пÑеÑзимаÑе\n"
+" * Ñлободно Ñе %s\n"
+" * поÑÑебно Ñе %s"
-#: ../yum/__init__.py:1094
+#: ../yum/__init__.py:1206
msgid "Header is not complete."
msgstr "ÐаглавÑе ниÑе поÑпÑно."
-#: ../yum/__init__.py:1134
+#: ../yum/__init__.py:1246
#, python-format
msgid ""
"Header not in local cache and caching-only mode enabled. Cannot download %s"
@@ -1550,204 +1716,240 @@ msgstr ""
"ÐаглавÑе ниÑе Ñ Ð»Ð¾ÐºÐ°Ð»Ð½Ð¾Ð¼ кеÑÑ Ð¸ Ñамо наÑин Ñада Ñа кеÑиÑаÑем Ñе ÑкÑÑÑен. Ðе "
"Ð¼Ð¾Ð³Ñ Ð´Ð° пÑеÑзмем %s"
-#: ../yum/__init__.py:1189
+#: ../yum/__init__.py:1301
#, python-format
msgid "Public key for %s is not installed"
msgstr "Ðавни кÑÑÑ Ð·Ð° %s ниÑе инÑÑалиÑан"
-#: ../yum/__init__.py:1193
+#: ../yum/__init__.py:1305
#, python-format
msgid "Problem opening package %s"
msgstr "ÐÑоблем Ñа оÑваÑаÑем пакеÑа %s"
-#: ../yum/__init__.py:1201
+#: ../yum/__init__.py:1313
#, python-format
msgid "Public key for %s is not trusted"
msgstr "Ðавни кÑÑÑ Ð·Ð° %s ниÑе повеÑÑив"
-#: ../yum/__init__.py:1205
+#: ../yum/__init__.py:1317
#, python-format
msgid "Package %s is not signed"
msgstr "ÐÐ°ÐºÐµÑ %s ниÑе поÑпиÑан"
-#: ../yum/__init__.py:1243
+#: ../yum/__init__.py:1355
#, python-format
msgid "Cannot remove %s"
msgstr "Ðе Ð¼Ð¾Ð³Ñ Ð´Ð° Ñклоним %s"
-#: ../yum/__init__.py:1247
+#: ../yum/__init__.py:1359
#, python-format
msgid "%s removed"
msgstr "%s Ñе ÑклоÑен"
-#: ../yum/__init__.py:1283
+#: ../yum/__init__.py:1396
#, python-format
msgid "Cannot remove %s file %s"
msgstr "Ðе Ð¼Ð¾Ð³Ñ Ð´Ð° Ñклоним %s даÑоÑÐµÐºÑ %s"
-#: ../yum/__init__.py:1287
+#: ../yum/__init__.py:1400
#, python-format
msgid "%s file %s removed"
msgstr "%s даÑоÑека %s Ñе ÑклоÑена"
-#: ../yum/__init__.py:1289
+#: ../yum/__init__.py:1402
#, python-format
msgid "%d %s files removed"
msgstr "%d %s даÑоÑеке ÑÑ ÑклоÑене"
-#: ../yum/__init__.py:1329
+#: ../yum/__init__.py:1464
#, python-format
msgid "More than one identical match in sack for %s"
msgstr "ÐоÑÑоÑи виÑе од Ñедног иденÑиÑног ÑлагаÑа Ñ Ð³ÑÑпи за %s"
-#: ../yum/__init__.py:1335
+#: ../yum/__init__.py:1470
#, python-format
msgid "Nothing matches %s.%s %s:%s-%s from update"
msgstr "ÐиÑÑа Ñе не Ñлаже Ñа %s.%s %s:%s-%s из ажÑÑиÑаÑа"
-#: ../yum/__init__.py:1543
+#: ../yum/__init__.py:1678
msgid ""
"searchPackages() will go away in a future version of "
"Yum. Use searchGenerator() instead. \n"
msgstr ""
-"searchPackages() неÑе биÑи пÑиÑÑÑна Ñ Ð±ÑдÑÑим веÑзиÑама Yum-"
-"а. УмеÑÑо Ñе коÑиÑÑиÑе searchGenerator(). \n"
+"searchPackages() неÑе биÑи пÑиÑÑÑна Ñ Ð±ÑдÑÑим Yum "
+"веÑзиÑама. УмеÑÑо Ñе коÑиÑÑиÑе searchGenerator(). \n"
-#: ../yum/__init__.py:1580
+#: ../yum/__init__.py:1716
#, python-format
msgid "Searching %d packages"
msgstr "ÐÑеÑÑажÑÑем %d пакеÑе"
-#: ../yum/__init__.py:1584
+#: ../yum/__init__.py:1720
#, python-format
msgid "searching package %s"
msgstr "ÑÑажим Ð¿Ð°ÐºÐµÑ %s"
-#: ../yum/__init__.py:1596
+#: ../yum/__init__.py:1732
msgid "searching in file entries"
msgstr "ÑÑажим Ñ ÑноÑима даÑоÑека"
-#: ../yum/__init__.py:1603
+#: ../yum/__init__.py:1739
msgid "searching in provides entries"
msgstr "ÑÑажим Ñ ÑноÑима доÑÑавÑаÑа"
-#: ../yum/__init__.py:1633
+#: ../yum/__init__.py:1772
#, python-format
msgid "Provides-match: %s"
msgstr "ÐоÑÑавÑа-ÑлагаÑе: %s"
-#: ../yum/__init__.py:1702 ../yum/__init__.py:1720 ../yum/__init__.py:1748
-#: ../yum/__init__.py:1753 ../yum/__init__.py:1808 ../yum/__init__.py:1812
+#: ../yum/__init__.py:1821
+msgid "No group data available for configured repositories"
+msgstr "Ðема доÑÑÑпниÑ
подаÑака о гÑÑпама за подеÑене ÑизниÑе"
+
+#: ../yum/__init__.py:1847 ../yum/__init__.py:1866 ../yum/__init__.py:1897
+#: ../yum/__init__.py:1903 ../yum/__init__.py:1976 ../yum/__init__.py:1980
#, python-format
msgid "No Group named %s exists"
msgstr "Ðе поÑÑоÑи гÑÑпа под именом %s"
-#: ../yum/__init__.py:1731 ../yum/__init__.py:1824
+#: ../yum/__init__.py:1878 ../yum/__init__.py:1993
#, python-format
msgid "package %s was not marked in group %s"
msgstr "Ð¿Ð°ÐºÐµÑ %s ниÑе ознаÑен Ñ Ð³ÑÑпи %s"
-#: ../yum/__init__.py:1770
+#: ../yum/__init__.py:1925
#, python-format
msgid "Adding package %s from group %s"
msgstr "ÐодаÑем Ð¿Ð°ÐºÐµÑ %s из гÑÑпе %s"
-#: ../yum/__init__.py:1774
+#: ../yum/__init__.py:1929
#, python-format
msgid "No package named %s available to be installed"
msgstr "ÐиÑедан Ð¿Ð°ÐºÐµÑ Ð¿Ð¾Ð´ именом %s ниÑе доÑÑÑпан за инÑÑалаÑиÑÑ"
-#: ../yum/__init__.py:1849
+#: ../yum/__init__.py:2018
#, python-format
msgid "Package tuple %s could not be found in packagesack"
msgstr "ÐÑÑпа пакеÑа %s ниÑе наÑена Ñ packagesack-Ñ"
-#: ../yum/__init__.py:1917 ../yum/__init__.py:1960
+#: ../yum/__init__.py:2033
+msgid ""
+"getInstalledPackageObject() will go away, use self.rpmdb.searchPkgTuple().\n"
+msgstr ""
+"getInstalledPackageObject() Ñе неÑÑаÑи, коÑиÑÑиÑе self.rpmdb.searchPkgTuple"
+"().\n"
+
+#: ../yum/__init__.py:2085 ../yum/__init__.py:2128
msgid "Invalid versioned dependency string, try quoting it."
msgstr ""
"ÐеиÑпÑавна ниÑка завиÑноÑÑи Ñа веÑзиÑом, покÑÑаÑÑе да Ñе обележиÑе "
"наводниÑима."
-#: ../yum/__init__.py:1919 ../yum/__init__.py:1962
+#: ../yum/__init__.py:2087 ../yum/__init__.py:2130
msgid "Invalid version flag"
msgstr "ÐогÑеÑна ознака веÑзиÑе"
-#: ../yum/__init__.py:1934 ../yum/__init__.py:1938
+#: ../yum/__init__.py:2102 ../yum/__init__.py:2106
#, python-format
msgid "No Package found for %s"
msgstr "Ðема пÑонаÑениÑ
пакеÑа за %s"
-#: ../yum/__init__.py:2066
+#: ../yum/__init__.py:2305
msgid "Package Object was not a package object instance"
msgstr "ÐбÑÐµÐºÐ°Ñ Ð¿Ð°ÐºÐµÑа ниÑе био пÑимеÑак обÑекÑа пакеÑа"
-#: ../yum/__init__.py:2070
+#: ../yum/__init__.py:2309
msgid "Nothing specified to install"
msgstr "ÐиÑе одÑеÑено ниÑÑа за инÑÑалаÑиÑÑ"
#. only one in there
-#: ../yum/__init__.py:2085
+#: ../yum/__init__.py:2327
#, python-format
msgid "Checking for virtual provide or file-provide for %s"
msgstr "ÐÑовеÑавам виÑÑÑÐµÐ»Ð½Ñ Ð´Ð¾ÑÑÐ°Ð²Ñ Ð¸Ð»Ð¸ доÑÑÐ°Ð²Ñ Ð´Ð°ÑоÑеке за %s"
-#: ../yum/__init__.py:2091 ../yum/__init__.py:2380
+#: ../yum/__init__.py:2333 ../yum/__init__.py:2715
#, python-format
msgid "No Match for argument: %s"
msgstr "Ðе поÑÑоÑи ÑлагаÑе за аÑгÑменÑ: %s"
-#. FIXME - this is where we could check to see if it already installed
-#. for returning better errors
-#: ../yum/__init__.py:2146
+#: ../yum/__init__.py:2399
+#, python-format
+msgid "Package %s installed and not available"
+msgstr "ÐÐ°ÐºÐµÑ %s Ñе инÑÑалиÑан и ниÑе доÑÑÑпан"
+
+#: ../yum/__init__.py:2402
msgid "No package(s) available to install"
msgstr "Ðема пакеÑа доÑÑÑпниÑ
за инÑÑалаÑиÑÑ"
-#: ../yum/__init__.py:2158
+#: ../yum/__init__.py:2414
#, python-format
msgid "Package: %s - already in transaction set"
msgstr "ÐакеÑ: %s - Ð²ÐµÑ Ñе Ñ ÑкÑÐ¿Ñ ÑÑанÑакÑиÑе"
-#: ../yum/__init__.py:2171
+#: ../yum/__init__.py:2427
#, python-format
msgid "Package %s already installed and latest version"
msgstr "ÐÐµÑ Ñе инÑÑалиÑана наÑновиÑа веÑзиÑа пакеÑа %s"
-#: ../yum/__init__.py:2178
+#: ../yum/__init__.py:2434
#, python-format
msgid "Package matching %s already installed. Checking for update."
msgstr ""
"ÐÐ°ÐºÐµÑ ÐºÐ¾Ñи Ñе поклапа Ñа %s Ñе Ð²ÐµÑ Ð¸Ð½ÑÑалиÑан. ÐÑовеÑавам за новиÑÑ Ð²ÐµÑзиÑÑ."
+#: ../yum/__init__.py:2444
+#, python-format
+msgid "Package %s is obsoleted by %s, trying to install %s instead"
+msgstr "ÐÐ°ÐºÐµÑ %s Ñе замеÑен пакеÑом %s, покÑÑавам да намеÑÑо инÑÑалиÑам %s"
+
#. update everything (the easy case)
-#: ../yum/__init__.py:2220
+#: ../yum/__init__.py:2514
msgid "Updating Everything"
msgstr "ÐжÑÑиÑам Ñве"
-#: ../yum/__init__.py:2304
+#: ../yum/__init__.py:2526 ../yum/__init__.py:2631 ../yum/__init__.py:2642
+#: ../yum/__init__.py:2664
+#, python-format
+msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
+msgstr "Ðе ажÑÑиÑам пакеÑе коÑи ÑÑ Ð²ÐµÑ Ð¿ÑевазиÑени: %s.%s %s:%s-%s"
+
+#: ../yum/__init__.py:2622
#, python-format
msgid "Package is already obsoleted: %s.%s %s:%s-%s"
msgstr "ÐÐ°ÐºÐµÑ Ñе Ð²ÐµÑ Ð¿ÑевазиÑен: %s.%s %s:%s-%s"
-#: ../yum/__init__.py:2377
+#: ../yum/__init__.py:2645 ../yum/__init__.py:2667
+#, python-format
+msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s"
+msgstr "Ðе ажÑÑиÑам пакеÑе коÑи ÑÑ Ð²ÐµÑ Ð°Ð¶ÑÑиÑани: %s.%s %s:%s-%s"
+
+#: ../yum/__init__.py:2712
#, python-format
msgid "%s"
msgstr "%s"
-#: ../yum/__init__.py:2392
+#: ../yum/__init__.py:2728
msgid "No package matched to remove"
msgstr "ÐиÑедан Ð¿Ð°ÐºÐµÑ Ð½Ð¸Ñе одÑеÑен за ÑклаÑаÑе"
-#: ../yum/__init__.py:2426
+#: ../yum/__init__.py:2762
#, python-format
msgid "Cannot open file: %s. Skipping."
msgstr "Ðе Ð¼Ð¾Ð³Ñ Ð´Ð° оÑвоÑим даÑоÑекÑ: %s. ÐÑеÑкаÑем Ñе."
-#: ../yum/__init__.py:2429
+#: ../yum/__init__.py:2765
#, python-format
msgid "Examining %s: %s"
msgstr "ÐÑпиÑÑÑем %s: %s"
-#: ../yum/__init__.py:2436
+#: ../yum/__init__.py:2773
+#, python-format
+msgid "Cannot add package %s to transaction. Not a compatible architecture: %s"
+msgstr ""
+"Ðе Ð¼Ð¾Ð³Ñ Ð´Ð° додам Ð¿Ð°ÐºÐµÑ %s Ñ ÑÑанÑакÑиÑÑ. ÐÑÑ
иÑекÑÑÑа ниÑе ÑÑаглаÑена: %s"
+
+#: ../yum/__init__.py:2781
#, python-format
msgid ""
"Package %s not installed, cannot update it. Run yum install to install it "
@@ -1756,136 +1958,157 @@ msgstr ""
"ÐÐ°ÐºÐµÑ %s ниÑе инÑÑалиÑан, не Ð¼Ð¾Ð³Ñ Ð´Ð° га ажÑÑиÑам. ÐзвÑÑиÑе yum инÑÑалаÑиÑÑ "
"да биÑÑе га инÑÑалиÑали."
-#: ../yum/__init__.py:2468
+#: ../yum/__init__.py:2814
#, python-format
msgid "Excluding %s"
msgstr "ÐзÑзимам %s"
-#: ../yum/__init__.py:2473
+#: ../yum/__init__.py:2819
#, python-format
msgid "Marking %s to be installed"
msgstr "ÐзнаÑавам %s за инÑÑалаÑиÑÑ"
-#: ../yum/__init__.py:2479
+#: ../yum/__init__.py:2825
#, python-format
msgid "Marking %s as an update to %s"
msgstr "ÐзнаÑавам %s као ажÑÑиÑаÑе за %s"
-#: ../yum/__init__.py:2486
+#: ../yum/__init__.py:2832
#, python-format
msgid "%s: does not update installed package."
msgstr "%s: не ажÑÑиÑа инÑÑалиÑани пакеÑ."
-#: ../yum/__init__.py:2504
+#: ../yum/__init__.py:2850
msgid "Problem in reinstall: no package matched to remove"
msgstr ""
"ÐÑоблем пÑи Ð¿Ð¾Ð½Ð¾Ð²Ð½Ð¾Ñ Ð¸Ð½ÑÑалаÑиÑи: ниÑедан Ð¿Ð°ÐºÐµÑ Ð½Ð¸Ñе одÑеÑен за ÑклаÑаÑе"
-#: ../yum/__init__.py:2515
+#: ../yum/__init__.py:2861
#, python-format
msgid "Package %s is allowed multiple installs, skipping"
msgstr "ÐакеÑÑ %s ÑÑ Ð´Ð¾Ð·Ð²Ð¾Ñене многоÑÑÑÑке инÑÑалаÑиÑе, пÑеÑкаÑем га"
-#: ../yum/__init__.py:2522
+#: ../yum/__init__.py:2868
msgid "Problem in reinstall: no package matched to install"
msgstr ""
"ÐÑоблем пÑи Ð¿Ð¾Ð½Ð¾Ð²Ð½Ð¾Ñ Ð¸Ð½ÑÑалаÑиÑи: ниÑедан Ð¿Ð°ÐºÐµÑ Ð½Ð¸Ñе одÑеÑен за инÑÑалаÑиÑÑ"
-#: ../yum/__init__.py:2570
+#: ../yum/__init__.py:2903
#, python-format
msgid "Retrieving GPG key from %s"
msgstr "ÐобавÑам GPG кÑÑÑ Ñа %s"
-#: ../yum/__init__.py:2576
+#: ../yum/__init__.py:2923
msgid "GPG key retrieval failed: "
msgstr "ÐобавÑаÑе GPG кÑÑÑа ниÑе ÑÑпело: "
-#: ../yum/__init__.py:2589
-msgid "GPG key parsing failed: "
-msgstr "РаÑÑлаÑиваÑе GPG кÑÑÑа ниÑе ÑÑпело: "
+#: ../yum/__init__.py:2934
+#, python-format
+msgid "GPG key parsing failed: key does not have value %s"
+msgstr "РаÑÑлаÑиваÑе GPG кÑÑÑа ниÑе ÑÑпело: кÑÑÑ Ð½ÐµÐ¼Ð° вÑедноÑÑ %s"
-#: ../yum/__init__.py:2593
+#: ../yum/__init__.py:2966
#, python-format
msgid "GPG key at %s (0x%s) is already installed"
msgstr "GPG кÑÑÑ Ð½Ð° %s (0x%s) Ñе Ð²ÐµÑ Ð¸Ð½ÑÑалиÑан"
#. Try installing/updating GPG key
-#: ../yum/__init__.py:2598
+#: ../yum/__init__.py:2971 ../yum/__init__.py:3033
#, python-format
msgid "Importing GPG key 0x%s \"%s\" from %s"
msgstr "Увозим GPG кÑÑÑ 0x%s â%sâ из %s"
-#: ../yum/__init__.py:2610
+#: ../yum/__init__.py:2988
msgid "Not installing key"
msgstr "Ðе инÑÑалиÑам кÑÑÑ"
-#: ../yum/__init__.py:2616
+#: ../yum/__init__.py:2994
#, python-format
msgid "Key import failed (code %d)"
msgstr "ÐиÑе ÑÑпео Ñвоз кÑÑÑа (код %d)"
-#: ../yum/__init__.py:2619
+#: ../yum/__init__.py:2995 ../yum/__init__.py:3054
msgid "Key imported successfully"
msgstr "ÐÑÑÑ Ñе ÑÑпеÑно Ñвезен"
-#: ../yum/__init__.py:2624
+#: ../yum/__init__.py:3000 ../yum/__init__.py:3059
#, 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 кÑÑÑеви излиÑÑани за â%sâ ÑизниÑÑ ÑÑ Ð²ÐµÑ Ð¸ÑÑалиÑани али ниÑÑ "
+"GPG кÑÑÑеви излиÑÑани за â%sâ ÑизниÑÑ ÑÑ Ð²ÐµÑ Ð¸Ð½ÑÑалиÑани али ниÑÑ "
"одговаÑаÑÑÑи за Ð¾Ð²Ð°Ñ Ð¿Ð°ÐºÐµÑ.\n"
"ÐÑовеÑиÑе да ли ÑÑ Ð¿Ð¾Ð´ÐµÑени одговаÑаÑÑÑи УРÐ-ови кÑÑÑева за Ð¾Ð²Ñ ÑизниÑÑ."
-#: ../yum/__init__.py:2633
+#: ../yum/__init__.py:3009
msgid "Import of key(s) didn't help, wrong key(s)?"
msgstr "Увоз кÑÑÑа(кÑÑÑева) ниÑе помогао, погÑеÑан кÑÑÑ(кÑÑÑеви)?"
-#: ../yum/__init__.py:2707
+#: ../yum/__init__.py:3028
+#, python-format
+msgid "GPG key at %s (0x%s) is already imported"
+msgstr "GPG кÑÑÑ Ð½Ð° %s (0x%s) Ñе Ð²ÐµÑ Ñвезен"
+
+#: ../yum/__init__.py:3048
+#, python-format
+msgid "Not installing key for repo %s"
+msgstr "Ðе инÑÑалиÑам кÑÑÑ Ð·Ð° ÑизниÑÑ %s"
+
+#: ../yum/__init__.py:3053
+msgid "Key import failed"
+msgstr "ÐиÑе ÑÑпео Ñвоз кÑÑÑа"
+
+#: ../yum/__init__.py:3144
msgid "Unable to find a suitable mirror."
msgstr "Ðе Ð¼Ð¾Ð³Ñ Ð´Ð° пÑонаÑем одговаÑаÑÑÑи одÑаз."
-#: ../yum/__init__.py:2709
+#: ../yum/__init__.py:3146
msgid "Errors were encountered while downloading packages."
msgstr "ÐоÑавиле ÑÑ Ñе гÑеÑке за вÑеме пÑеÑзимаÑа пакеÑа."
-#: ../yum/__init__.py:2774
+#: ../yum/__init__.py:3210
msgid "Test Transaction Errors: "
msgstr "ÐÑеÑке пÑи пÑовеÑи ÑÑанÑакÑиÑе: "
#. Mostly copied from YumOutput._outKeyValFill()
-#: ../yum/plugins.py:195
+#: ../yum/plugins.py:199
msgid "Loaded plugins: "
msgstr "УÑиÑани додаÑи: "
-#: ../yum/plugins.py:206
+#: ../yum/plugins.py:213 ../yum/plugins.py:219
#, python-format
msgid "No plugin match for: %s"
msgstr "Ðе поÑÑоÑи ÑлагаÑе за додаÑак: %s"
-#: ../yum/plugins.py:219
+#: ../yum/plugins.py:249
#, python-format
msgid "\"%s\" plugin is disabled"
msgstr "â%sâ додаÑак Ñе иÑкÑÑÑен"
-#: ../yum/plugins.py:231
+#. Give full backtrace:
+#: ../yum/plugins.py:261
+#, python-format
+msgid "Plugin \"%s\" can't be imported"
+msgstr "ÐодаÑак â%sâ не може да бÑде Ñвезен"
+
+#: ../yum/plugins.py:268
#, python-format
msgid "Plugin \"%s\" doesn't specify required API version"
msgstr "ÐодаÑак â%sâ не одÑеÑÑÑе веÑзиÑÑ Ð·Ð°Ñ
Ñеваног API-а"
-#: ../yum/plugins.py:235
+#: ../yum/plugins.py:273
#, python-format
msgid "Plugin \"%s\" requires API %s. Supported API is %s."
msgstr "ÐодаÑак â%sâ заÑ
Ñева API %s. ÐодÑжани API Ñе %s."
-#: ../yum/plugins.py:264
+#: ../yum/plugins.py:306
#, python-format
msgid "Loading \"%s\" plugin"
msgstr "УÑиÑавам â%sâ додаÑак"
-#: ../yum/plugins.py:271
+#: ../yum/plugins.py:313
#, python-format
msgid ""
"Two or more plugins with the name \"%s\" exist in the plugin search path"
@@ -1893,22 +2116,26 @@ msgstr ""
"У пÑÑаÑи за пÑеÑÑаживаÑе додаÑака поÑÑоÑе два или виÑе додаÑака под именом â%"
"sâ"
-#: ../yum/plugins.py:291
+#: ../yum/plugins.py:333
#, python-format
msgid "Configuration file %s not found"
msgstr "ÐаÑоÑека подеÑаваÑа %s ниÑе пÑонаÑена"
#. for
#. Configuration files for the plugin not found
-#: ../yum/plugins.py:294
+#: ../yum/plugins.py:336
#, python-format
msgid "Unable to find configuration file for plugin %s"
msgstr "Ðе Ð¼Ð¾Ð³Ñ Ð´Ð° пÑонаÑем даÑоÑÐµÐºÑ Ð¿Ð¾Ð´ÐµÑаваÑа за додаÑак %s"
-#: ../yum/plugins.py:448
+#: ../yum/plugins.py:490
msgid "registration of commands not supported"
msgstr "ÑегиÑÑÑаÑиÑа команди ниÑе подÑжана"
+#: ../yum/rpmtrans.py:78
+msgid "Repackaging"
+msgstr "Ðоновно паковаÑе"
+
#: ../rpmUtils/oldUtils.py:26
#, python-format
msgid "Header cannot be opened or does not match %s, %s."
@@ -1927,7 +2154,7 @@ msgstr ""
#: ../rpmUtils/oldUtils.py:174
msgid "Got an empty Header, something has gone wrong"
-msgstr "Ðобио Ñам пÑазно заглавÑе, неÑÑо Ñе поÑло наопако"
+msgstr "ÐÑимÑено Ñе пÑазно заглавÑе, неÑÑо Ñе поÑло наопако"
#: ../rpmUtils/oldUtils.py:244 ../rpmUtils/oldUtils.py:251
#: ../rpmUtils/oldUtils.py:254 ../rpmUtils/oldUtils.py:257
@@ -1939,64 +2166,3 @@ msgstr "ÐÑÑеÑено заглавÑе %s"
#, python-format
msgid "Error opening rpm %s - error %s"
msgstr "ÐÑеÑка пÑи оÑваÑаÑÑ rpm-а %s - гÑеÑка %s"
-
-#~ msgid ""
-#~ "\n"
-#~ "\n"
-#~ "%s: %s option requires an argument"
-#~ msgstr ""
-#~ "\n"
-#~ "\n"
-#~ "%s: %s опÑиÑа заÑ
Ñева аÑгÑменÑ"
-
-#~ msgid "show this help message and exit"
-#~ msgstr "пÑикажи Ð¾Ð²Ñ Ð¿Ð¾Ð¼Ð¾ÑÐ½Ñ Ð¿Ð¾ÑÑÐºÑ Ð¸ изаÑи"
-
-#~ msgid "verbose operation"
-#~ msgstr "опÑиÑна ÑадÑа"
-
-#~ msgid "Repo-id : "
-#~ msgstr "ÐÐ ÑизниÑе : "
-
-#~ msgid "Repo-name : "
-#~ msgstr "Ðме ÑизниÑе : "
-
-#~ msgid "Repo-enabled: "
-#~ msgstr "РизниÑа ÑкÑÑÑена: "
-
-#~ msgid "Repo-size : "
-#~ msgstr "ÐелиÑина ÑизниÑе: "
-
-#~ msgid "Running compare_providers() for %s"
-#~ msgstr "ÐокÑеÑем compare_providers() за %s"
-
-#~ msgid ""
-#~ "archdist compared %s to %s on %s\n"
-#~ " Winner: %s"
-#~ msgstr ""
-#~ "archdist ÑпоÑедио %s Ñа %s на %s\n"
-#~ " Ðобедник: %s"
-
-#~ msgid "common sourcerpm %s and %s"
-#~ msgstr "заÑедниÑки извоÑни rpm %s и %s"
-
-#~ msgid "common prefix of %s between %s and %s"
-#~ msgstr "заÑедниÑки пÑеÑÐ¸ÐºÑ %s измеÑÑ %s и %s"
-
-#~ msgid "Best Order: %s"
-#~ msgstr "ÐаÑбоÑи ÑедоÑлед: %s"
-
-#~ msgid ""
-#~ "Warning: scriptlet or other non-fatal errors occurred during transaction."
-#~ msgstr ""
-#~ "УпозоÑеÑе: доÑло Ñе до гÑеÑке Ñ ÑкÑипÑиÑи или неке дÑÑге некÑиÑиÑне "
-#~ "гÑеÑке Ñоком ÑÑанÑкаÑиÑе."
-
-#~ msgid "Package %s is obsoleted by %s, trying to install %s instead"
-#~ msgstr "ÐÐ°ÐºÐµÑ %s Ñе замеÑен пакеÑом %s, покÑÑавам да намеÑÑо инÑÑалиÑам %s"
-
-#~ msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s"
-#~ msgstr "Ðе ажÑÑиÑам пакеÑе коÑи ÑÑ Ð²ÐµÑ Ð°Ð¶ÑÑиÑани: %s.%s %s:%s-%s"
-
-#~ msgid "Repackaging"
-#~ msgstr "Ðоновно паковаÑе"
diff --git a/po/sr at latin.po b/po/sr at latin.po
old mode 100644
new mode 100755
index dba9dcc..58af237
--- a/po/sr at latin.po
+++ b/po/sr at latin.po
@@ -1,42 +1,43 @@
-# translation of sr.po to Serbian
# Serbian(Latin) translations for yum
# Copyright (C) 2008 Linux at Duke
# This file is distributed under the same license as the yum package.
-#
# Jovan Krunic <jovan.krunic at gmail.com>, 2008.
# Igor Miletic <grejigl-gnomeprevod at yahoo.ca>, 2008.
# MiloÅ¡ KomarÄeviÄ <kmilos at gmail.com>, 2008.
+#
msgid ""
msgstr ""
"Project-Id-Version: yum\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-03-25 11:29+0100\n"
-"PO-Revision-Date: 2008-05-26 20:30-0000\n"
+"POT-Creation-Date: 2008-10-27 13:29+0000\n"
+"PO-Revision-Date: 2008-10-27 22:52+0000\n"
"Last-Translator: MiloÅ¡ KomarÄeviÄ <kmilos at gmail.com>\n"
"Language-Team: Serbian (sr) <fedora-trans-sr at redhat.com>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
-"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-#: ../callback.py:48 ../output.py:512
+#: ../callback.py:48 ../output.py:777 ../yum/rpmtrans.py:71
msgid "Updating"
msgstr "Ažuriram"
-#: ../callback.py:49
+#: ../callback.py:49 ../yum/rpmtrans.py:72
msgid "Erasing"
msgstr "Brišem"
-#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:511
+#. Arch can't get "that big" ... so always use the max.
+#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:776
+#: ../yum/rpmtrans.py:73 ../yum/rpmtrans.py:74 ../yum/rpmtrans.py:76
msgid "Installing"
msgstr "Instaliram"
-#: ../callback.py:52 ../callback.py:58
+#: ../callback.py:52 ../callback.py:58 ../yum/rpmtrans.py:75
msgid "Obsoleted"
msgstr "PrevaziÄeni"
-#: ../callback.py:54 ../output.py:558
+#: ../callback.py:54 ../output.py:891
msgid "Updated"
msgstr "Ažurirani"
@@ -44,7 +45,7 @@ msgstr "Ažurirani"
msgid "Erased"
msgstr "Obrisani"
-#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:556
+#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:889
msgid "Installed"
msgstr "Instalirani"
@@ -66,53 +67,68 @@ msgstr "Greška: pogrešno izlazno stanje: %s za %s"
msgid "Erased: %s"
msgstr "Obrisano: %s"
-#: ../callback.py:217 ../output.py:513
+#: ../callback.py:217 ../output.py:778
msgid "Removing"
msgstr "Uklanjam"
-#: ../callback.py:219
+#: ../callback.py:219 ../yum/rpmtrans.py:77
msgid "Cleanup"
msgstr "ÄiÅ¡Äenje"
-#: ../cli.py:103
+#: ../cli.py:105
#, python-format
msgid "Command \"%s\" already defined"
msgstr "Naredba â%sâ je veÄ definisana"
-#: ../cli.py:115
+#: ../cli.py:117
msgid "Setting up repositories"
msgstr "Postavljam riznice"
-#: ../cli.py:126
+#: ../cli.py:128
msgid "Reading repository metadata in from local files"
msgstr "Äitam metapodatke riznica iz lokalnih datoteka"
-#: ../cli.py:183 ../utils.py:72
+#: ../cli.py:187 ../utils.py:71
#, python-format
msgid "Config Error: %s"
msgstr "Greška pri podešavanju: %s"
-#: ../cli.py:186 ../cli.py:1068 ../utils.py:75
+#: ../cli.py:190 ../cli.py:1128 ../utils.py:74
#, python-format
msgid "Options Error: %s"
msgstr "Greška u opcijama: %s"
-#: ../cli.py:229
+#: ../cli.py:218
+#, python-format
+msgid " Installed: %s-%s at %s"
+msgstr " Instalirano: %s-%s na %s"
+
+#: ../cli.py:220
+#, fuzzy, python-format
+msgid " Built : %s at %s"
+msgstr "URL : %s"
+
+#: ../cli.py:222
+#, fuzzy, python-format
+msgid " Committed: %s at %s"
+msgstr "ObjavljivaÄ : %s"
+
+#: ../cli.py:259
msgid "You need to give some command"
msgstr "Morate da unesete neku komandu"
-#: ../cli.py:271
+#: ../cli.py:301
msgid "Disk Requirements:\n"
msgstr "Zahtevi diska:\n"
-#: ../cli.py:273
+#: ../cli.py:303
#, python-format
msgid " At least %dMB needed on the %s filesystem.\n"
msgstr " Potrebno je najmanje %dMB na %s sistemu datoteka.\n"
#. TODO: simplify the dependency errors?
#. Fixup the summary
-#: ../cli.py:278
+#: ../cli.py:308
msgid ""
"Error Summary\n"
"-------------\n"
@@ -120,55 +136,55 @@ msgstr ""
"Sažetak grešaka\n"
"-------------\n"
-#: ../cli.py:317
+#: ../cli.py:351
msgid "Trying to run the transaction but nothing to do. Exiting."
msgstr "Pokušavam da izvršim transakciju ali nema šta da se radi. Izlazim."
-#: ../cli.py:347
+#: ../cli.py:381
msgid "Exiting on user Command"
msgstr "Izlazim na komandu korisnika"
-#: ../cli.py:351
+#: ../cli.py:385
msgid "Downloading Packages:"
msgstr "Preuzimam pakete:"
-#: ../cli.py:356
+#: ../cli.py:390
msgid "Error Downloading Packages:\n"
msgstr "Greška pri preuzimanju paketa:\n"
-#: ../cli.py:370 ../yum/__init__.py:2746
+#: ../cli.py:404 ../yum/__init__.py:3182
msgid "Running rpm_check_debug"
msgstr "Izvršavam rpm_check_debug"
-#: ../cli.py:373 ../yum/__init__.py:2749
+#: ../cli.py:407 ../yum/__init__.py:3185
msgid "ERROR with rpm_check_debug vs depsolve:"
msgstr "GREÅ KA sa rpm_check_debug u odnosu na depsolve:"
-#: ../cli.py:377 ../yum/__init__.py:2751
+#: ../cli.py:411 ../yum/__init__.py:3187
msgid "Please report this error in bugzilla"
msgstr "Molim vas, prijavite ovu grešku u bugzilli"
-#: ../cli.py:383
+#: ../cli.py:417
msgid "Running Transaction Test"
msgstr "Izvršavam proveru transakcije"
-#: ../cli.py:399
+#: ../cli.py:433
msgid "Finished Transaction Test"
-msgstr "Završio sam proveru transakcije"
+msgstr "Završena je provera transakcije"
-#: ../cli.py:401
+#: ../cli.py:435
msgid "Transaction Check Error:\n"
msgstr "Greška pri proveri transakcije:\n"
-#: ../cli.py:408
+#: ../cli.py:442
msgid "Transaction Test Succeeded"
msgstr "Provera transakcije je uspela"
-#: ../cli.py:429
+#: ../cli.py:463
msgid "Running Transaction"
msgstr "Izvršavam transakciju"
-#: ../cli.py:459
+#: ../cli.py:493
msgid ""
"Refusing to automatically import keys when running unattended.\n"
"Use \"-y\" to override."
@@ -176,378 +192,426 @@ msgstr ""
"Odbijam da automatski uvezem kljuÄeve kada se izvrÅ¡avanje ne nadgleda.\n"
"Za prevazilaženje ovoga koristite â-yâ."
-#: ../cli.py:491
-msgid "Parsing package install arguments"
-msgstr "RaÅ¡Älanjujem argumente instalacije paketa"
+#: ../cli.py:512 ../cli.py:545
+msgid " * Maybe you meant: "
+msgstr " * Možda ste mislili: "
+
+#: ../cli.py:528 ../cli.py:536
+#, python-format
+msgid "Package(s) %s%s%s available, but not installed."
+msgstr "%s%s%s paket je dostupan, ali nije instaliran."
-#: ../cli.py:501
+#: ../cli.py:542 ../cli.py:577
#, python-format
-msgid "No package %s available."
-msgstr "Ne postoji dostupan %s paket."
+msgid "No package %s%s%s available."
+msgstr "Ne postoji dostupan %s%s%s paket."
-#: ../cli.py:505 ../cli.py:623 ../yumcommands.py:748
+#: ../cli.py:567
+msgid "Parsing package install arguments"
+msgstr "RaÅ¡Älanjujem argumente instalacije paketa"
+
+#: ../cli.py:582 ../cli.py:657 ../yumcommands.py:912
msgid "Package(s) to install"
msgstr "Paket(i) koji Äe se instalirati"
-#: ../cli.py:506 ../cli.py:624 ../yumcommands.py:146 ../yumcommands.py:749
+#: ../cli.py:583 ../cli.py:658 ../yumcommands.py:150 ../yumcommands.py:913
msgid "Nothing to do"
msgstr "Nema Å¡ta da se radi"
-#: ../cli.py:536 ../yum/__init__.py:2232 ../yum/__init__.py:2311
-#: ../yum/__init__.py:2340
-#, python-format
-msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
-msgstr "Ne ažuriram pakete koji su veÄ prevaziÄeni: %s.%s %s:%s-%s"
-
-#: ../cli.py:568
-#, python-format
-msgid "Could not find update match for %s"
-msgstr "Ne mogu da pronaÄem odgovarajuÄe ažuriranje za %s"
-
-#: ../cli.py:580
+#: ../cli.py:616
#, python-format
msgid "%d packages marked for Update"
msgstr "%d paketi oznaÄeni za ažuriranje"
-#: ../cli.py:583
+#: ../cli.py:619
msgid "No Packages marked for Update"
msgstr "Nema paketa oznaÄenih za ažuriranje"
-#: ../cli.py:599
+#: ../cli.py:633
#, python-format
msgid "%d packages marked for removal"
msgstr "%d paketi oznaÄeni za uklanjanje"
-#: ../cli.py:602
+#: ../cli.py:636
msgid "No Packages marked for removal"
msgstr "Nema paketa oznaÄenih za uklanjanje"
-#: ../cli.py:614
+#: ../cli.py:648
msgid "No Packages Provided"
msgstr "Nijedan paket nije dobavljen"
-#: ../cli.py:654
+#: ../cli.py:689
+#, fuzzy
msgid "Matching packages for package list to user args"
msgstr "Povezivanje paketa za spisak paketa po argumentima korisnika"
-#: ../cli.py:701
+#: ../cli.py:731
#, python-format
msgid "Warning: No matches found for: %s"
msgstr "Upozorenje: nije naÄeno podudaranje za %s"
-#: ../cli.py:704
+#: ../cli.py:734
msgid "No Matches found"
msgstr "Nisu pronaÄena podudaranja"
-#: ../cli.py:745
+#: ../cli.py:773
+#, python-format
+msgid ""
+"Warning: 3.0.x versions of yum would erronously match against filenames.\n"
+" You can use \"%s*/%s%s\" and/or \"%s*bin/%s%s\" to get that behaviour"
+msgstr ""
+"Upozorenje: 3.0.x yum verzije bi greškom vršile podudaranje sa nazivima "
+"datoteka.\n"
+" Možete upotrebiti â%s*/%s%sâ i/ili â%s*bin/%s%sâ da biste dobili takvo "
+"ponašanje"
+
+#: ../cli.py:789
#, python-format
msgid "No Package Found for %s"
msgstr "Nisu pronaÄeni paketi za %s"
-#: ../cli.py:757
+#: ../cli.py:801
msgid "Cleaning up Everything"
msgstr "Äistim sve"
-#: ../cli.py:771
+#: ../cli.py:815
msgid "Cleaning up Headers"
msgstr "Äistim zaglavlja"
-#: ../cli.py:774
+#: ../cli.py:818
msgid "Cleaning up Packages"
msgstr "Äistim pakete"
-#: ../cli.py:777
+#: ../cli.py:821
msgid "Cleaning up xml metadata"
msgstr "Äistim xml metapodatke"
-#: ../cli.py:780
+#: ../cli.py:824
msgid "Cleaning up database cache"
-msgstr "Äistim keÅ¡ baza podataka"
+msgstr "Äistim keÅ¡ baze podataka"
-#: ../cli.py:783
+#: ../cli.py:827
msgid "Cleaning up expire-cache metadata"
msgstr "Äistim expire-cache metapodatke"
-#: ../cli.py:786
+#: ../cli.py:830
msgid "Cleaning up plugins"
msgstr "Äistim dodatke"
-#: ../cli.py:807
+#: ../cli.py:851
msgid "Installed Groups:"
msgstr "Instalirane grupe:"
-#: ../cli.py:814
+#: ../cli.py:858
msgid "Available Groups:"
msgstr "Dostupne grupe:"
-#: ../cli.py:820
+#: ../cli.py:864
msgid "Done"
msgstr "UraÄeno"
-#: ../cli.py:829 ../cli.py:841 ../cli.py:847
+#: ../cli.py:875 ../cli.py:893 ../cli.py:899 ../yum/__init__.py:2274
#, python-format
msgid "Warning: Group %s does not exist."
msgstr "Upozorenje: grupa %s ne postoji."
-#: ../cli.py:853
+#: ../cli.py:903
msgid "No packages in any requested group available to install or update"
msgstr ""
"Nema dostupnih paketa za instalaciju ili ažuriranje u svim zahtevanim grupama"
-#: ../cli.py:855
+#: ../cli.py:905
#, python-format
msgid "%d Package(s) to Install"
msgstr "%d paket(i) za instalaciju"
-#: ../cli.py:865
+#: ../cli.py:915 ../yum/__init__.py:2286
#, python-format
msgid "No group named %s exists"
msgstr "Ne postoji grupa pod imenom %s"
-#: ../cli.py:871
+#: ../cli.py:921
msgid "No packages to remove from groups"
msgstr "Nema paketa za uklanjanje iz grupa"
-#: ../cli.py:873
+#: ../cli.py:923
#, python-format
msgid "%d Package(s) to remove"
msgstr "%d paket(i) za uklanjanje"
-#: ../cli.py:915
+#: ../cli.py:965
#, python-format
msgid "Package %s is already installed, skipping"
msgstr "Paket %s je veÄ instaliran, preskaÄem ga"
-#: ../cli.py:926
+#: ../cli.py:976
#, python-format
msgid "Discarding non-comparable pkg %s.%s"
msgstr "Uklanjam neuporediv paket %s.%s"
#. we've not got any installed that match n or n+a
-#: ../cli.py:952
+#: ../cli.py:1002
#, python-format
msgid "No other %s installed, adding to list for potential install"
msgstr ""
"Ne postoji instaliran drugi %s, dodajem ga u spisak za potencijalnu "
"instalaciju"
-#: ../cli.py:971
+#: ../cli.py:1021
#, python-format
msgid "Command line error: %s"
msgstr "Greška komandne linije: %s"
-#: ../cli.py:1101
+#: ../cli.py:1034
+#, python-format
+msgid ""
+"\n"
+"\n"
+"%s: %s option requires an argument"
+msgstr ""
+"\n"
+"\n"
+"%s: %s opcija zahteva argument"
+
+#: ../cli.py:1170
+msgid "show this help message and exit"
+msgstr "prikaži ovu pomoÄnu poruku i izaÄi"
+
+#: ../cli.py:1174
msgid "be tolerant of errors"
msgstr "budi tolerantan na greške"
-#: ../cli.py:1103
+#: ../cli.py:1176
msgid "run entirely from cache, don't update cache"
msgstr "izvršavaj se u potpunosti iz keša, ne ažuriraj keš"
-#: ../cli.py:1105
+#: ../cli.py:1178
msgid "config file location"
msgstr "mesto datoteke podešavanja"
-#: ../cli.py:1107
+#: ../cli.py:1180
msgid "maximum command wait time"
msgstr "najduže vreme Äekanja na komandu"
-#: ../cli.py:1109
+#: ../cli.py:1182
msgid "debugging output level"
msgstr "nivo izlaznog prikaza za pronalaženje grešaka"
-#: ../cli.py:1113
+#: ../cli.py:1186
msgid "show duplicates, in repos, in list/search commands"
msgstr ""
"prikazuj duplikate, u riznicama, u komandama za izlistavanje/pretraživanje"
-#: ../cli.py:1115
+#: ../cli.py:1188
msgid "error output level"
msgstr "nivo izlaznog prikaza grešaka"
-#: ../cli.py:1118
+#: ../cli.py:1191
msgid "quiet operation"
msgstr "tiha radnja"
-#: ../cli.py:1122
+#: ../cli.py:1193
+msgid "verbose operation"
+msgstr "opširna radnja"
+
+#: ../cli.py:1195
msgid "answer yes for all questions"
msgstr "odgovori sa da na sva pitanja"
-#: ../cli.py:1124
+#: ../cli.py:1197
msgid "show Yum version and exit"
-msgstr "prikaži verziju Yum-a i izaÄi"
+msgstr "prikaži Yum verziju i izaÄi"
-#: ../cli.py:1125
+#: ../cli.py:1198
msgid "set install root"
msgstr "postavi koreni direktorijum instalacije"
-#: ../cli.py:1129
+#: ../cli.py:1202
msgid "enable one or more repositories (wildcards allowed)"
msgstr "ukljuÄi jednu ili viÅ¡e riznica (skraÄenice su dozvoljene)"
-#: ../cli.py:1133
+#: ../cli.py:1206
msgid "disable one or more repositories (wildcards allowed)"
msgstr "iskljuÄi jednu ili viÅ¡e riznica (skraÄenice su dozvoljene)"
-#: ../cli.py:1136
+#: ../cli.py:1209
msgid "exclude package(s) by name or glob"
-msgstr "izuzmite paket(e) po imenu ili glob-u"
+msgstr "izuzmi paket(e) po imenu ili globu"
-#: ../cli.py:1138
+#: ../cli.py:1211
msgid "disable exclude from main, for a repo or for everything"
msgstr "iskljuÄi izuzimanje iz glavnog skupa, za riznicu ili za sve"
-#: ../cli.py:1141
+#: ../cli.py:1214
msgid "enable obsoletes processing during updates"
msgstr "ukljuÄi obradu zastarelih paketa u toku ažuriranja"
-#: ../cli.py:1143
+#: ../cli.py:1216
msgid "disable Yum plugins"
msgstr "iskljuÄi dodatke za Yum"
-#: ../cli.py:1145
+#: ../cli.py:1218
msgid "disable gpg signature checking"
msgstr "iskljuÄi proveru gpg potpisa"
-#: ../cli.py:1147
+#: ../cli.py:1220
msgid "disable plugins by name"
msgstr "iskljuÄi dodatke po imenu"
-#: ../cli.py:1150
+#: ../cli.py:1223
+msgid "enable plugins by name"
+msgstr "ukljuÄi dodatke po imenu"
+
+#: ../cli.py:1226
msgid "skip packages with depsolving problems"
msgstr "preskoÄi pakete koji imaju problema sa reÅ¡avanjem zavisnosti"
-#: ../output.py:229
+#: ../output.py:236
msgid "Jan"
msgstr "jan"
-#: ../output.py:229
+#: ../output.py:236
msgid "Feb"
msgstr "feb"
-#: ../output.py:229
+#: ../output.py:236
msgid "Mar"
msgstr "mar"
-#: ../output.py:229
+#: ../output.py:236
msgid "Apr"
msgstr "apr"
-#: ../output.py:229
+#: ../output.py:236
msgid "May"
msgstr "maj"
-#: ../output.py:229
+#: ../output.py:236
msgid "Jun"
msgstr "jun"
-#: ../output.py:230
+#: ../output.py:237
msgid "Jul"
msgstr "jul"
-#: ../output.py:230
+#: ../output.py:237
msgid "Aug"
msgstr "avg"
-#: ../output.py:230
+#: ../output.py:237
msgid "Sep"
msgstr "sep"
-#: ../output.py:230
+#: ../output.py:237
msgid "Oct"
msgstr "okt"
-#: ../output.py:230
+#: ../output.py:237
msgid "Nov"
msgstr "nov"
-#: ../output.py:230
+#: ../output.py:237
msgid "Dec"
msgstr "dec"
-#: ../output.py:240
+#: ../output.py:247
msgid "Trying other mirror."
msgstr "Pokušavam drugi odraz."
-#: ../output.py:293
+#: ../output.py:425
#, python-format
-msgid "Name : %s"
-msgstr "Ime : %s"
+msgid "Name : %s%s%s"
+msgstr "Ime : %s%s%s"
-#: ../output.py:294
+#: ../output.py:426
#, python-format
msgid "Arch : %s"
msgstr "Arhitektura: %s"
-#: ../output.py:296
+#: ../output.py:428
#, python-format
msgid "Epoch : %s"
msgstr "Period : %s"
-#: ../output.py:297
+#: ../output.py:429
#, python-format
msgid "Version : %s"
msgstr "Verzija : %s"
-#: ../output.py:298
+#: ../output.py:430
#, python-format
msgid "Release : %s"
-msgstr "Izdanje : %s"
+msgstr "Izdanje : %s"
-#: ../output.py:299
+#: ../output.py:431
#, python-format
msgid "Size : %s"
msgstr "VeliÄina : %s"
-#: ../output.py:300
+#: ../output.py:432
#, python-format
msgid "Repo : %s"
msgstr "Riznica : %s"
-#: ../output.py:302
+#: ../output.py:434
#, python-format
msgid "Committer : %s"
+msgstr "ObjavljivaÄ: %s"
+
+#: ../output.py:435
+#, fuzzy, python-format
+msgid "Committime : %s"
+msgstr "ObjavljivaÄ : %s"
+
+#: ../output.py:436
+#, fuzzy, python-format
+msgid "Buildtime : %s"
msgstr "ObjavljivaÄ : %s"
-#: ../output.py:303
+#: ../output.py:438
+#, fuzzy, python-format
+msgid "Installtime: %s"
+msgstr "Instalirani"
+
+#: ../output.py:439
msgid "Summary : "
msgstr "Sažetak :"
-#: ../output.py:305
+#: ../output.py:441
#, python-format
msgid "URL : %s"
msgstr "URL : %s"
-#: ../output.py:306
+#: ../output.py:442
#, python-format
msgid "License : %s"
msgstr "Licenca : %s"
-#: ../output.py:307
+#: ../output.py:443
msgid "Description: "
msgstr "Opis : "
-#: ../output.py:351
-msgid "Is this ok [y/N]: "
-msgstr "Da li je ovo u redu [d/N]: "
-
-#: ../output.py:357 ../output.py:360
+#: ../output.py:500
msgid "y"
msgstr "d"
-#: ../output.py:357
-msgid "n"
-msgstr "n"
-
-#: ../output.py:357 ../output.py:360
+#: ../output.py:500
msgid "yes"
msgstr "da"
-#: ../output.py:357
+#: ../output.py:501
+msgid "n"
+msgstr "n"
+
+#: ../output.py:501
msgid "no"
msgstr "ne"
-#: ../output.py:367
+#: ../output.py:505
+msgid "Is this ok [y/N]: "
+msgstr "Da li je ovo u redu [d/N]: "
+
+#: ../output.py:587
#, python-format
msgid ""
"\n"
@@ -556,96 +620,123 @@ msgstr ""
"\n"
"Grupa: %s"
-#: ../output.py:369
+#: ../output.py:594
#, python-format
msgid " Description: %s"
msgstr " Opis: %s"
-#: ../output.py:371
+#: ../output.py:596
msgid " Mandatory Packages:"
msgstr " Obavezni paketi:"
-#: ../output.py:376
+#: ../output.py:597
msgid " Default Packages:"
msgstr " Podrazumevani paketi:"
-#: ../output.py:381
+#: ../output.py:598
msgid " Optional Packages:"
msgstr " Izborni paketi:"
-#: ../output.py:386
+#: ../output.py:599
msgid " Conditional Packages:"
msgstr " Uslovljeni paketi:"
-#: ../output.py:394
+#: ../output.py:619
#, python-format
msgid "package: %s"
msgstr "paket: %s"
-#: ../output.py:396
+#: ../output.py:621
msgid " No dependencies for this package"
msgstr " Ne postoje zavisnosti ovog paketa"
-#: ../output.py:401
+#: ../output.py:626
#, python-format
msgid " dependency: %s"
msgstr " zavisnost: %s"
-#: ../output.py:403
+#: ../output.py:628
msgid " Unsatisfied dependency"
msgstr " Nezadovoljena zavisnost"
-#: ../output.py:461
+#: ../output.py:700
msgid "Matched from:"
msgstr "Povezan iz:"
-#: ../output.py:487
+#: ../output.py:708
+msgid "Description : "
+msgstr "Opis : "
+
+#: ../output.py:711
+#, python-format
+msgid "URL : %s"
+msgstr "URL : %s"
+
+#: ../output.py:714
+#, python-format
+msgid "License : %s"
+msgstr "Licenca : %s"
+
+#: ../output.py:717
+#, python-format
+msgid "Filename : %s"
+msgstr "Ime datoteke: %s"
+
+#: ../output.py:721
+msgid "Other : "
+msgstr "Ostalo : "
+
+#: ../output.py:753
msgid "There was an error calculating total download size"
msgstr "Dogodila se greÅ¡ka pri raÄunanju ukupne veliÄine za preuzimanje"
-#: ../output.py:492
+#: ../output.py:758
#, python-format
msgid "Total size: %s"
msgstr "Ukupna veliÄina: %s"
-#: ../output.py:495
+#: ../output.py:761
#, python-format
msgid "Total download size: %s"
msgstr "Ukupna veliÄina za preuzimanje: %s"
-#: ../output.py:507
+#: ../output.py:779
+msgid "Installing for dependencies"
+msgstr "Instaliram zbog zavisnosti"
+
+#: ../output.py:780
+msgid "Updating for dependencies"
+msgstr "Ažuriram zbog zavisnosti"
+
+#: ../output.py:781
+msgid "Removing for dependencies"
+msgstr "Uklanjam zbog zavisnosti"
+
+#: ../output.py:782 ../output.py:893
+msgid "Skipped (dependency problems)"
+msgstr "PreskoÄeno (problemi sa zavisnostima)"
+
+#: ../output.py:818
msgid "Package"
msgstr "Paket"
-#: ../output.py:507
+#: ../output.py:818
msgid "Arch"
msgstr "Arhitektura"
-#: ../output.py:507
+#: ../output.py:819
msgid "Version"
msgstr "Verzija"
-#: ../output.py:507
+#: ../output.py:819
msgid "Repository"
msgstr "Riznica"
-#: ../output.py:507
+#: ../output.py:820
msgid "Size"
msgstr "VeliÄina"
-#: ../output.py:514
-msgid "Installing for dependencies"
-msgstr "Instaliram zbog zavisnosti"
-
-#: ../output.py:515
-msgid "Updating for dependencies"
-msgstr "Ažuriram zbog zavisnosti"
-
-#: ../output.py:516
-msgid "Removing for dependencies"
-msgstr "Uklanjam zbog zavisnosti"
-
-#: ../output.py:528
+#: ../output.py:831
#, python-format
msgid ""
" replacing %s.%s %s\n"
@@ -654,44 +745,44 @@ msgstr ""
" uklanjam %s.%s %s\n"
"\n"
-#: ../output.py:536
+#: ../output.py:839
#, python-format
msgid ""
"\n"
"Transaction Summary\n"
-"=============================================================================\n"
+"%s\n"
"Install %5.5s Package(s) \n"
"Update %5.5s Package(s) \n"
"Remove %5.5s Package(s) \n"
msgstr ""
"\n"
"Sažetak transakcije\n"
-"=============================================================================\n"
-"instaliranje %5.5s paket(a) \n"
-"ažuriranje %5.5s paket(a) \n"
-"uklanjanje %5.5s paket(a) \n"
+"%s\n"
+"Instalacija %5.5s paket(a) \n"
+"Ažuriranje %5.5s paket(a) \n"
+"Uklanjanje %5.5s paket(a) \n"
-#: ../output.py:554
+#: ../output.py:887
msgid "Removed"
msgstr "Uklonjeno"
-#: ../output.py:555
+#: ../output.py:888
msgid "Dependency Removed"
msgstr "Zavisnost uklonjena"
-#: ../output.py:557
+#: ../output.py:890
msgid "Dependency Installed"
msgstr "Zavisnost instalirana"
-#: ../output.py:559
+#: ../output.py:892
msgid "Dependency Updated"
msgstr "Zavisnost ažurirana"
-#: ../output.py:560
+#: ../output.py:894
msgid "Replaced"
msgstr "Zamenjeno"
-#: ../output.py:618
+#: ../output.py:967
#, python-format
msgid ""
"\n"
@@ -702,73 +793,77 @@ msgstr ""
" Trenutno preuzimanje je obustavljeno, %sinterrupt (ctrl-c) još jednom%s u "
"toku %s%s%s sekundi da biste izašli.\n"
-#: ../output.py:628
+#: ../output.py:977
msgid "user interrupt"
msgstr "prekid od strane korisnika"
-#: ../output.py:639
+#: ../output.py:993
+msgid "Total"
+msgstr "Ukupno"
+
+#: ../output.py:1007
msgid "installed"
msgstr "instaliran"
-#: ../output.py:640
+#: ../output.py:1008
msgid "updated"
msgstr "ažuriran"
-#: ../output.py:641
+#: ../output.py:1009
msgid "obsoleted"
msgstr "prevaziÄen"
-#: ../output.py:642
+#: ../output.py:1010
msgid "erased"
msgstr "obrisan"
-#: ../output.py:646
+#: ../output.py:1014
#, python-format
msgid "---> Package %s.%s %s:%s-%s set to be %s"
msgstr "---> Paket %s.%s %s:%s-%s postavljen da bude %s"
-#: ../output.py:653
+#: ../output.py:1021
msgid "--> Running transaction check"
msgstr "--> Izvršava se provera transakcije"
-#: ../output.py:658
+#: ../output.py:1026
msgid "--> Restarting Dependency Resolution with new changes."
msgstr "--> Ponovno pokretanje razrešavanja zavisnosti sa novim promenama."
-#: ../output.py:663
+#: ../output.py:1031
msgid "--> Finished Dependency Resolution"
msgstr "--> Završeno je razrešavanje zavisnosti"
-#: ../output.py:668
+#: ../output.py:1036
#, python-format
msgid "--> Processing Dependency: %s for package: %s"
msgstr "--> ObraÄujem zavisnost: %s za paket: %s"
-#: ../output.py:673
+#: ../output.py:1041
#, python-format
msgid "--> Unresolved Dependency: %s"
msgstr "--> Nerazrešena zavisnost: %s"
-#: ../output.py:679
+#: ../output.py:1047
#, python-format
msgid "--> Processing Conflict: %s conflicts %s"
msgstr "--> Sukob pri obradi: %s se sukobi sa %s"
-#: ../output.py:682
+#: ../output.py:1050
msgid "--> Populating transaction set with selected packages. Please wait."
msgstr ""
"--> Popunjavam skup transakcije sa izabranim paketima. Molim vas, saÄekajte."
-#: ../output.py:686
+#: ../output.py:1054
#, python-format
msgid "---> Downloading header for %s to pack into transaction set."
msgstr "---> Preuzimam zaglavlje za %s radi pakovanja u skup transakcije."
-#: ../yumcommands.py:36
+#: ../yumcommands.py:40
msgid "You need to be root to perform this command."
msgstr "Morate biti root korisnik da biste izvršili ovu komandu."
-#: ../yumcommands.py:43
+#: ../yumcommands.py:47
msgid ""
"\n"
"You have enabled checking of packages via GPG keys. This is a good thing. \n"
@@ -799,252 +894,313 @@ msgstr ""
"\n"
"Za viÅ¡e informacija kontaktirajte dobavljaÄa vaÅ¡e distribucije ili paketa.\n"
-#: ../yumcommands.py:63
+#: ../yumcommands.py:67
#, python-format
msgid "Error: Need to pass a list of pkgs to %s"
msgstr "Greška: potrebno je da dodate spisak paketa %s-u"
-#: ../yumcommands.py:69
+#: ../yumcommands.py:73
msgid "Error: Need an item to match"
msgstr "Greška: potrebno je pridružiti stavku"
-#: ../yumcommands.py:75
+#: ../yumcommands.py:79
msgid "Error: Need a group or list of groups"
msgstr "Greška: potrebna je grupa ili spisak grupa"
-#: ../yumcommands.py:84
+#: ../yumcommands.py:88
#, python-format
msgid "Error: clean requires an option: %s"
msgstr "Greška: clean zahteva opciju: %s"
-#: ../yumcommands.py:89
+#: ../yumcommands.py:93
#, python-format
msgid "Error: invalid clean argument: %r"
msgstr "Greška: pogrešan clean argument:%r"
-#: ../yumcommands.py:102
+#: ../yumcommands.py:106
msgid "No argument to shell"
msgstr "Ne postoji argument za komandno okruženje"
-#: ../yumcommands.py:105
+#: ../yumcommands.py:109
#, python-format
msgid "Filename passed to shell: %s"
msgstr "Ime datoteke je prosleÄeno komandnom okruženju: %s"
-#: ../yumcommands.py:109
+#: ../yumcommands.py:113
#, python-format
msgid "File %s given as argument to shell does not exist."
msgstr ""
-"Ne postoji datoteka %s, koja je prosleÄena kao argument komadnom okruženju."
+"Ne postoji datoteka %s, koja je prosleÄena kao argument komandnom okruženju."
-#: ../yumcommands.py:115
+#: ../yumcommands.py:119
msgid "Error: more than one file given as argument to shell."
msgstr ""
"GreÅ¡ka: viÅ¡e od jedne datoteke je prosleÄeno kao argument komandnom "
"okruženju."
-#: ../yumcommands.py:156
+#: ../yumcommands.py:160
msgid "PACKAGE..."
msgstr "PAKET..."
-#: ../yumcommands.py:159
+#: ../yumcommands.py:163
msgid "Install a package or packages on your system"
msgstr "Instalirajte paket ili pakete na vaš sistem"
-#: ../yumcommands.py:168
+#: ../yumcommands.py:172
msgid "Setting up Install Process"
msgstr "Postavljam proces instalacije"
-#: ../yumcommands.py:179
+#: ../yumcommands.py:183
msgid "[PACKAGE...]"
msgstr "[PAKET...]"
-#: ../yumcommands.py:182
+#: ../yumcommands.py:186
msgid "Update a package or packages on your system"
msgstr "Ažuriraj paket ili pakete na vašem sistemu"
-#: ../yumcommands.py:190
+#: ../yumcommands.py:194
msgid "Setting up Update Process"
msgstr "Postavljam proces ažuriranja"
-#: ../yumcommands.py:204
+#: ../yumcommands.py:236
msgid "Display details about a package or group of packages"
msgstr "Prikaži detalje o svakom paketu ili grupi paketa"
-#: ../yumcommands.py:212
+#. Output the packages:
+#: ../yumcommands.py:261
msgid "Installed Packages"
msgstr "Instalirani paketi"
-#: ../yumcommands.py:213
+#: ../yumcommands.py:263
msgid "Available Packages"
msgstr "Dostupni paketi"
-#: ../yumcommands.py:214
+#: ../yumcommands.py:265
msgid "Extra Packages"
msgstr "Dodatni paketi"
-#: ../yumcommands.py:215
+#: ../yumcommands.py:267
msgid "Updated Packages"
msgstr "Ažurirani paketi"
-#: ../yumcommands.py:221 ../yumcommands.py:225
+#: ../yumcommands.py:274 ../yumcommands.py:281
msgid "Obsoleting Packages"
msgstr "PrevaziÄeni paketi"
-#: ../yumcommands.py:226
+#: ../yumcommands.py:283
msgid "Recently Added Packages"
msgstr "Nedavno dodati paketi"
-#: ../yumcommands.py:232
+#: ../yumcommands.py:290
msgid "No matching Packages to list"
msgstr "Ne postoje odgovarajuÄi paketi za izlistavanje"
-#: ../yumcommands.py:246
+#: ../yumcommands.py:304
msgid "List a package or groups of packages"
msgstr "Izlistaj pakete ili grupe paketa"
-#: ../yumcommands.py:258
+#: ../yumcommands.py:316
msgid "Remove a package or packages from your system"
msgstr "Uklonite paket ili pakete sa vašeg sistema"
-#: ../yumcommands.py:266
+#: ../yumcommands.py:324
msgid "Setting up Remove Process"
msgstr "Postavljam proces uklanjanja"
-#: ../yumcommands.py:278
+#: ../yumcommands.py:339
msgid "Setting up Group Process"
msgstr "Postavljam proces za grupe"
-#: ../yumcommands.py:284
+#: ../yumcommands.py:345
msgid "No Groups on which to run command"
msgstr "Ne postoji grupa nad kojom se može izvršiti komanda"
-#: ../yumcommands.py:297
+#: ../yumcommands.py:358
msgid "List available package groups"
msgstr "Izlistaj dostupne grupe paketa"
-#: ../yumcommands.py:314
+#: ../yumcommands.py:375
msgid "Install the packages in a group on your system"
msgstr "Instalirajte pakete u grupi na vašem sistemu"
-#: ../yumcommands.py:336
+#: ../yumcommands.py:397
msgid "Remove the packages in a group from your system"
msgstr "Uklonite pakete u grupi sa vašeg sistema"
-#: ../yumcommands.py:360
+#: ../yumcommands.py:424
msgid "Display details about a package group"
msgstr "Prikaži detalje o grupi paketa"
-#: ../yumcommands.py:384
+#: ../yumcommands.py:448
msgid "Generate the metadata cache"
msgstr "Napravi keš sa metapodacima"
-#: ../yumcommands.py:390
+#: ../yumcommands.py:454
msgid "Making cache files for all metadata files."
msgstr "Pravim keš datoteke za sve datoteke sa metapodacima."
-#: ../yumcommands.py:391
+#: ../yumcommands.py:455
msgid "This may take a while depending on the speed of this computer"
msgstr "Ovo može da potraje u zavisnosti od brzine vaÅ¡eg raÄunara"
-#: ../yumcommands.py:412
+#: ../yumcommands.py:476
msgid "Metadata Cache Created"
msgstr "Napravljen je keš sa metapodacima"
-#: ../yumcommands.py:426
+#: ../yumcommands.py:490
msgid "Remove cached data"
msgstr "Ukloni keširane podatke"
-#: ../yumcommands.py:447
+#: ../yumcommands.py:511
msgid "Find what package provides the given value"
msgstr "PronaÄi koji paket pruža datu vrednost"
-#: ../yumcommands.py:467
+#: ../yumcommands.py:531
msgid "Check for available package updates"
msgstr "Proverite da li su dostupna ažuriranja paketa"
-#: ../yumcommands.py:490
+#: ../yumcommands.py:556
msgid "Search package details for the given string"
msgstr "Pretražite detalje o paketu za zadatu nisku"
-#: ../yumcommands.py:496
+#: ../yumcommands.py:562
msgid "Searching Packages: "
msgstr "Pretražujem pakete: "
-#: ../yumcommands.py:513
+#: ../yumcommands.py:579
msgid "Update packages taking obsoletes into account"
msgstr "Ažurirajte pakete uzimajuÄi prevaziÄene u obzir"
-#: ../yumcommands.py:522
+#: ../yumcommands.py:588
msgid "Setting up Upgrade Process"
msgstr "Postavljam proces nadgradnje"
-#: ../yumcommands.py:536
+#: ../yumcommands.py:602
msgid "Install a local RPM"
msgstr "Instaliraj lokalni RPM"
-#: ../yumcommands.py:545
+#: ../yumcommands.py:611
msgid "Setting up Local Package Process"
msgstr "Postavljam proces lokalnih paketa"
-#: ../yumcommands.py:564
+#: ../yumcommands.py:630
msgid "Determine which package provides the given dependency"
msgstr "Odredi koji paketi pružaju datu zavisnost"
-#: ../yumcommands.py:567
+#: ../yumcommands.py:633
msgid "Searching Packages for Dependency:"
msgstr "Pretražujem pakete u potrazi za zavisnostima:"
-#: ../yumcommands.py:581
+#: ../yumcommands.py:647
msgid "Run an interactive yum shell"
msgstr "Izvršavaj interaktivno komandno okruženje yum-a"
-#: ../yumcommands.py:587
+#: ../yumcommands.py:653
msgid "Setting up Yum Shell"
msgstr "Postavljam Yum komandno okruženje"
-#: ../yumcommands.py:605
+#: ../yumcommands.py:671
msgid "List a package's dependencies"
msgstr "Izlistaj zavisnosti paketa"
-#: ../yumcommands.py:611
+#: ../yumcommands.py:677
msgid "Finding dependencies: "
msgstr "Tražim zavisnosti: "
-#: ../yumcommands.py:627
+#: ../yumcommands.py:693
msgid "Display the configured software repositories"
msgstr "Prikaži podešene softverske riznice"
-#: ../yumcommands.py:645
+#: ../yumcommands.py:742
+msgid "enabled"
+msgstr "ukljuÄena"
+
+#: ../yumcommands.py:751
+msgid "disabled"
+msgstr "iskljuÄena"
+
+#: ../yumcommands.py:760
msgid "repo id"
msgstr "repo id"
-#: ../yumcommands.py:645
+#: ../yumcommands.py:761
msgid "repo name"
msgstr "repo ime"
-#: ../yumcommands.py:645
+#: ../yumcommands.py:761
msgid "status"
msgstr "status"
-#: ../yumcommands.py:651
-msgid "enabled"
-msgstr "ukljuÄena"
+#: ../yumcommands.py:765
+msgid "Repo-id : "
+msgstr "IB riznice : "
-#: ../yumcommands.py:654
-msgid "disabled"
-msgstr "iskljuÄena"
+#: ../yumcommands.py:766
+msgid "Repo-name : "
+msgstr "Ime riznice : "
-#: ../yumcommands.py:671
+#: ../yumcommands.py:767
+msgid "Repo-status : "
+msgstr "Status riznice : "
+
+#: ../yumcommands.py:769
+#, fuzzy
+msgid "Repo-revision: "
+msgstr "VeliÄina riznice : "
+
+#: ../yumcommands.py:773
+#, fuzzy
+msgid "Repo-tags : "
+msgstr "Paketi riznice : "
+
+#: ../yumcommands.py:779
+#, fuzzy
+msgid "Repo-distro-tags: "
+msgstr "Status riznice : "
+
+#: ../yumcommands.py:784
+msgid "Repo-updated: "
+msgstr "Riznica ažurirana : "
+
+#: ../yumcommands.py:786
+msgid "Repo-pkgs : "
+msgstr "Paketi riznice : "
+
+#: ../yumcommands.py:787
+msgid "Repo-size : "
+msgstr "VeliÄina riznice : "
+
+#: ../yumcommands.py:794
+msgid "Repo-baseurl: "
+msgstr "Osnovni URL riznice: "
+
+#: ../yumcommands.py:798
+#, fuzzy
+msgid "Repo-metalink: "
+msgstr "Ime riznice : "
+
+#: ../yumcommands.py:801
+msgid "Repo-mirrors: "
+msgstr "Odrazi riznice : "
+
+#: ../yumcommands.py:805
+msgid "Repo-exclude: "
+msgstr "Riznica iskljuÄena : "
+
+#: ../yumcommands.py:809
+msgid "Repo-include: "
+msgstr "Riznica ukljuÄena : "
+
+#: ../yumcommands.py:835
msgid "Display a helpful usage message"
msgstr "Prikaži korisnu poruku o upotrebi"
-#: ../yumcommands.py:705
+#: ../yumcommands.py:869
#, python-format
msgid "No help available for %s"
msgstr "Nije dostupna pomoÄ za %s"
-#: ../yumcommands.py:710
+#: ../yumcommands.py:874
msgid ""
"\n"
"\n"
@@ -1052,9 +1208,9 @@ msgid ""
msgstr ""
"\n"
"\n"
-"alijasi: "
+"pseudonimi: "
-#: ../yumcommands.py:712
+#: ../yumcommands.py:876
msgid ""
"\n"
"\n"
@@ -1062,13 +1218,13 @@ msgid ""
msgstr ""
"\n"
"\n"
-"alijas: "
+"pseudonim: "
-#: ../yumcommands.py:741
+#: ../yumcommands.py:905
msgid "Setting up Reinstall Process"
msgstr "Postavljam proces ponovne instalacije"
-#: ../yumcommands.py:755
+#: ../yumcommands.py:919
msgid "reinstall a package"
msgstr "ponovno instaliram paket"
@@ -1092,29 +1248,29 @@ msgstr ""
"\n"
"Izlazim kada se slomi cev"
-#: ../yummain.py:105
+#: ../yummain.py:98
msgid ""
"Another app is currently holding the yum lock; waiting for it to exit..."
msgstr ""
-"Neki drugi program trenutno drži yum zakljuÄavanje, Äekam da se taj program "
-"iskljuÄi..."
+"Neki drugi program trenutno drži yum zakljuÄanim; Äekam da taj program "
+"izaÄe..."
-#: ../yummain.py:132 ../yummain.py:171
+#: ../yummain.py:125 ../yummain.py:164
#, python-format
msgid "Error: %s"
msgstr "Greška: %s"
-#: ../yummain.py:142 ../yummain.py:178
+#: ../yummain.py:135 ../yummain.py:171
#, python-format
msgid "Unknown Error(s): Exit Code: %d:"
msgstr "Nepoznata greška(e): izlazni kod: %d:"
#. Depsolve stage
-#: ../yummain.py:149
+#: ../yummain.py:142
msgid "Resolving Dependencies"
msgstr "Razrešavam zavisnosti"
-#: ../yummain.py:184
+#: ../yummain.py:177
msgid ""
"\n"
"Dependencies Resolved"
@@ -1122,11 +1278,11 @@ msgstr ""
"\n"
"Zavisnosti su razrešene"
-#: ../yummain.py:198
+#: ../yummain.py:191
msgid "Complete!"
msgstr "Završeno!"
-#: ../yummain.py:245
+#: ../yummain.py:238
msgid ""
"\n"
"\n"
@@ -1136,318 +1292,315 @@ msgstr ""
"\n"
"Izlazim kada korisnik otkaže."
-#: ../yum/depsolve.py:82
+#: ../yum/depsolve.py:84
msgid "doTsSetup() will go away in a future version of Yum.\n"
msgstr "doTsSetup() neÄe biti prisutna u buduÄim verzijama Yum-a.\n"
-#: ../yum/depsolve.py:95
+#: ../yum/depsolve.py:97
msgid "Setting up TransactionSets before config class is up"
msgstr "Postavljam TransactionSets pre nego što se podigne klasa podešavanja"
-#: ../yum/depsolve.py:136
+#: ../yum/depsolve.py:148
#, python-format
msgid "Invalid tsflag in config file: %s"
msgstr "Pogrešan tsflag u datoteci podešavanja: %s"
-#: ../yum/depsolve.py:147
+#: ../yum/depsolve.py:159
#, fuzzy, python-format
msgid "Searching pkgSack for dep: %s"
msgstr "tražim paket %s"
-#: ../yum/depsolve.py:170
+#: ../yum/depsolve.py:182
#, fuzzy, python-format
msgid "Potential match for %s from %s"
msgstr "Postoji viÅ¡e od jednog identiÄnog slaganja u grupi za %s"
-#: ../yum/depsolve.py:178
+#: ../yum/depsolve.py:190
#, fuzzy, python-format
msgid "Matched %s to require for %s"
msgstr "%s zahteva: %s"
-#: ../yum/depsolve.py:219
+#: ../yum/depsolve.py:231
#, python-format
msgid "Member: %s"
msgstr "Älan: %s"
-#: ../yum/depsolve.py:233 ../yum/depsolve.py:696
+#: ../yum/depsolve.py:245 ../yum/depsolve.py:732
#, python-format
msgid "%s converted to install"
msgstr "%s prebaÄen za instalaciju"
-#: ../yum/depsolve.py:240
+#: ../yum/depsolve.py:252
#, python-format
msgid "Adding Package %s in mode %s"
msgstr "Dodajem paket %s u naÄinu rada %s"
-#: ../yum/depsolve.py:250
+#: ../yum/depsolve.py:262
#, python-format
msgid "Removing Package %s"
msgstr "Uklanjam paket %s"
-#: ../yum/depsolve.py:261
+#: ../yum/depsolve.py:273
#, python-format
msgid "%s requires: %s"
msgstr "%s zahteva: %s"
-#: ../yum/depsolve.py:312
+#: ../yum/depsolve.py:331
msgid "Needed Require has already been looked up, cheating"
-msgstr ""
+msgstr "Potreban zahtev je veÄ potražen, obmanjujem"
-#: ../yum/depsolve.py:322
+#: ../yum/depsolve.py:341
#, python-format
msgid "Needed Require is not a package name. Looking up: %s"
-msgstr ""
+msgstr "Potreban zahtev nije ime paketa. Tražim: %s"
-#: ../yum/depsolve.py:329
-#, fuzzy, python-format
+#: ../yum/depsolve.py:348
+#, python-format
msgid "Potential Provider: %s"
-msgstr "Ukupna veliÄina: %s"
+msgstr "MoguÄi snabdevaÄ: %s"
-#: ../yum/depsolve.py:352
+#: ../yum/depsolve.py:371
#, python-format
msgid "Mode is %s for provider of %s: %s"
-msgstr ""
+msgstr "Režim je %s za snabdevaÄa %s: %s"
-#: ../yum/depsolve.py:356
+#: ../yum/depsolve.py:375
#, python-format
msgid "Mode for pkg providing %s: %s"
-msgstr ""
+msgstr "Režim za paket koji snabdeva %s: %s"
-#: ../yum/depsolve.py:360
+#: ../yum/depsolve.py:379
#, python-format
msgid "TSINFO: %s package requiring %s marked as erase"
msgstr "TSINFO: %s paket zahteva da %s bude oznaÄen za brisanje"
-#: ../yum/depsolve.py:372
+#: ../yum/depsolve.py:391
#, python-format
msgid "TSINFO: Obsoleting %s with %s to resolve dep."
-msgstr "TSINFO: menjam %s sa %s da bih razrešio zavisnost."
+msgstr "TSINFO: menjam %s sa %s radi razrešavanja zavisnosti."
-#: ../yum/depsolve.py:375
+#: ../yum/depsolve.py:394
#, python-format
msgid "TSINFO: Updating %s to resolve dep."
-msgstr "TSINFO: ažuriram %s da bih razrešio zavisnost."
+msgstr "TSINFO: ažuriram %s radi razrešavanja zavisnosti."
-#: ../yum/depsolve.py:378
+#: ../yum/depsolve.py:402
#, python-format
msgid "Cannot find an update path for dep for: %s"
msgstr "Ne mogu da pronaÄem putanju ažuriranja za zavisnost za: %s"
-#: ../yum/depsolve.py:388
+#: ../yum/depsolve.py:412
#, python-format
msgid "Unresolvable requirement %s for %s"
-msgstr ""
+msgstr "Nerazrešiv zahtev paketa %s za %s"
+
+#: ../yum/depsolve.py:435
+#, python-format
+msgid "Quick matched %s to require for %s"
+msgstr "Brzo povezivanje paketa %s kao zahteva za %s"
#. is it already installed?
-#: ../yum/depsolve.py:434
+#: ../yum/depsolve.py:477
#, python-format
msgid "%s is in providing packages but it is already installed, removing."
-msgstr "%s je u pruženim paketa ali je veÄ instaliran, uklanjam ga."
+msgstr "%s je u pruženim paketima ali je veÄ instaliran, uklanjam ga."
-#: ../yum/depsolve.py:449
+#: ../yum/depsolve.py:492
#, python-format
msgid "Potential resolving package %s has newer instance in ts."
msgstr "Potencijalno razrešavanje paketa %s ima noviji primerak u ts-u."
-#: ../yum/depsolve.py:460
+#: ../yum/depsolve.py:503
#, python-format
msgid "Potential resolving package %s has newer instance installed."
-msgstr "Potencijalno razrešavanje paketa %s ima instaliran novi primerak."
+msgstr "Potencijalno razrešavanje paketa %s ima instaliran noviji primerak."
-#: ../yum/depsolve.py:468 ../yum/depsolve.py:527
+#: ../yum/depsolve.py:511 ../yum/depsolve.py:560
#, python-format
msgid "Missing Dependency: %s is needed by package %s"
msgstr "Nedostaje zavisnost: %s je potreban od strane paketa %s"
-#: ../yum/depsolve.py:481
+#: ../yum/depsolve.py:524
#, python-format
msgid "%s already in ts, skipping this one"
msgstr "%s je veÄ u ts-u, preskaÄem ga"
-#: ../yum/depsolve.py:510
-#, python-format
-msgid ""
-"Failure finding best provider of %s for %s, exceeded maximum loop length"
-msgstr ""
-
-#: ../yum/depsolve.py:537
+#: ../yum/depsolve.py:570
#, python-format
msgid "TSINFO: Marking %s as update for %s"
msgstr "TSINFO: oznaÄavam %s kao ažuriranje za %s"
-#: ../yum/depsolve.py:544
+#: ../yum/depsolve.py:578
#, python-format
msgid "TSINFO: Marking %s as install for %s"
msgstr "TSINFO: oznaÄavam %s kao instalaciju za %s"
-#: ../yum/depsolve.py:635 ../yum/depsolve.py:714
+#: ../yum/depsolve.py:670 ../yum/depsolve.py:750
msgid "Success - empty transaction"
msgstr "Uspeh - prazna transakcija"
-#: ../yum/depsolve.py:673 ../yum/depsolve.py:686
+#: ../yum/depsolve.py:709 ../yum/depsolve.py:722
msgid "Restarting Loop"
msgstr "Ponovo pokreÄem petlju"
-#: ../yum/depsolve.py:702
+#: ../yum/depsolve.py:738
msgid "Dependency Process ending"
msgstr "Završetak procesa zavisnosti"
-#: ../yum/depsolve.py:708
+#: ../yum/depsolve.py:744
#, python-format
msgid "%s from %s has depsolving problems"
msgstr "%s iz %s ima problema sa razrešavanjem zavisnosti"
-#: ../yum/depsolve.py:715
+#: ../yum/depsolve.py:751
msgid "Success - deps resolved"
msgstr "Uspeh - zavisnosti su razrešene"
-#: ../yum/depsolve.py:729
+#: ../yum/depsolve.py:765
#, python-format
msgid "Checking deps for %s"
msgstr "Proveravam zavisnosti za %s"
-#: ../yum/depsolve.py:782
+#: ../yum/depsolve.py:848
#, python-format
msgid "looking for %s as a requirement of %s"
msgstr "tražim %s kao zahtev za %s"
-#: ../yum/depsolve.py:933
-#, python-format
-msgid "Comparing best: %s to po: %s"
-msgstr ""
-
-#: ../yum/depsolve.py:937
+#: ../yum/depsolve.py:988
#, python-format
-msgid "Same: best %s == po: %s"
-msgstr ""
+msgid "Running compare_providers() for %s"
+msgstr "PokreÄem compare_providers() za %s"
-#: ../yum/depsolve.py:952 ../yum/depsolve.py:963
+#: ../yum/depsolve.py:1016 ../yum/depsolve.py:1022
#, fuzzy, python-format
-msgid "best %s obsoletes po: %s"
-msgstr "%s prevazilazi %s"
-
-#: ../yum/depsolve.py:955
-#, fuzzy, python-format
-msgid "po %s obsoletes best: %s"
-msgstr "%s prevazilazi %s"
-
-#: ../yum/depsolve.py:972 ../yum/depsolve.py:979 ../yum/depsolve.py:1036
-#, python-format
msgid "better arch in po %s"
msgstr "bolja arhitektura u po %s"
-#: ../yum/depsolve.py:988 ../yum/depsolve.py:1010
+#: ../yum/depsolve.py:1061
#, python-format
-msgid "po %s shares a sourcerpm with %s"
-msgstr ""
+msgid "%s obsoletes %s"
+msgstr "%s prevazilazi %s"
-#: ../yum/depsolve.py:992 ../yum/depsolve.py:1015
+#: ../yum/depsolve.py:1077
#, python-format
-msgid "best %s shares a sourcerpm with %s"
+msgid ""
+"archdist compared %s to %s on %s\n"
+" Winner: %s"
msgstr ""
+"archdist uporedio %s sa %s na %s\n"
+" Pobednik: %s"
-#: ../yum/depsolve.py:999 ../yum/depsolve.py:1020
+#: ../yum/depsolve.py:1084
#, python-format
-msgid "po %s shares more of the name prefix with %s"
-msgstr ""
+msgid "common sourcerpm %s and %s"
+msgstr "zajedniÄki izvorni rpm %s i %s"
-#: ../yum/depsolve.py:1003 ../yum/depsolve.py:1029
+#: ../yum/depsolve.py:1090
#, python-format
-msgid "po %s has a shorter name than best %s"
-msgstr ""
+msgid "common prefix of %s between %s and %s"
+msgstr "zajedniÄki prefiks %s izmeÄu %s i %s"
-#: ../yum/depsolve.py:1025
+#: ../yum/depsolve.py:1098
#, python-format
-msgid "bestpkg %s shares more of the name prefix with %s"
-msgstr ""
+msgid "Best Order: %s"
+msgstr "Najbolji redosled: %s"
-#: ../yum/__init__.py:119
+#: ../yum/__init__.py:135
msgid "doConfigSetup() will go away in a future version of Yum.\n"
msgstr "doConfigSetup() neÄe biti prisutna u buduÄim verzijama Yum-a.\n"
-#: ../yum/__init__.py:296
+#: ../yum/__init__.py:315
#, python-format
msgid "Repository %r is missing name in configuration, using id"
msgstr "Riznici %r nedostaje ime u podešavanjima, koristim id"
-#: ../yum/__init__.py:332
+#: ../yum/__init__.py:353
msgid "plugins already initialised"
msgstr "veÄ inicijalizovani dodaci"
-#: ../yum/__init__.py:339
+#: ../yum/__init__.py:360
msgid "doRpmDBSetup() will go away in a future version of Yum.\n"
msgstr "doRpmDBSetup() neÄe biti prisutna u buduÄim verzijama Yum-a.\n"
-#: ../yum/__init__.py:349
+#: ../yum/__init__.py:370
msgid "Reading Local RPMDB"
msgstr "Äitam lokalni RPMDB"
-#: ../yum/__init__.py:367
+#: ../yum/__init__.py:388
msgid "doRepoSetup() will go away in a future version of Yum.\n"
msgstr "doRepoSetup() neÄe biti prisutna u buduÄim verzijama Yum-a.\n"
-#: ../yum/__init__.py:387
+#: ../yum/__init__.py:408
msgid "doSackSetup() will go away in a future version of Yum.\n"
msgstr "doSackSetup() neÄe biti prisutna u buduÄim verzijama Yum-a.\n"
-#: ../yum/__init__.py:404
+#: ../yum/__init__.py:425
msgid "Setting up Package Sacks"
msgstr "Postavljam grupe paketa"
-#: ../yum/__init__.py:447
+#: ../yum/__init__.py:468
#, python-format
msgid "repo object for repo %s lacks a _resetSack method\n"
msgstr "repo objektu za repo %s nedostaje a _resetSack metoda\n"
-#: ../yum/__init__.py:448
+#: ../yum/__init__.py:469
msgid "therefore this repo cannot be reset.\n"
msgstr "zbog toga se ovaj repo ne može vratiti na poÄetnu postavku.\n"
-#: ../yum/__init__.py:453
+#: ../yum/__init__.py:474
msgid "doUpdateSetup() will go away in a future version of Yum.\n"
msgstr "doUpdateSetup() neÄe biti prisutna u buduÄim verzijama Yum-a.\n"
-#: ../yum/__init__.py:465
+#: ../yum/__init__.py:486
msgid "Building updates object"
-msgstr "IzgraÄujem objekat ažurirnja"
+msgstr "IzgraÄujem objekat ažuriranja"
-#: ../yum/__init__.py:496
+#: ../yum/__init__.py:517
msgid "doGroupSetup() will go away in a future version of Yum.\n"
msgstr "doGroupSetup() neÄe biti prisutna u buduÄim verzijama Yum-a.\n"
-#: ../yum/__init__.py:520
+#: ../yum/__init__.py:541
msgid "Getting group metadata"
msgstr "Dobavljam metapodatke grupe"
-#: ../yum/__init__.py:546
+#: ../yum/__init__.py:567
#, python-format
msgid "Adding group file from repository: %s"
msgstr "Dodajem datoteku grupe iz riznice: %s"
-#: ../yum/__init__.py:555
+#: ../yum/__init__.py:576
#, python-format
msgid "Failed to add groups file for repository: %s - %s"
-msgstr "Nisam uspeo da dodam datoteku grupe za riznicu: %s - %s"
+msgstr "Nije uspelo dodavanje datoteke grupe za riznicu: %s - %s"
-#: ../yum/__init__.py:561
+#: ../yum/__init__.py:582
msgid "No Groups Available in any repository"
msgstr "Ne postoji grupa koja je dostupna u bilo kojoj riznici"
-#: ../yum/__init__.py:611
+#: ../yum/__init__.py:632
msgid "Importing additional filelist information"
msgstr "Uvozim dodatne informacije o spiskovima datoteka"
-#: ../yum/__init__.py:657
+#: ../yum/__init__.py:641
+#, fuzzy
+msgid ""
+"There are unfinished transactions remaining. You might consider running yum-"
+"complete-transaction first to finish them."
+msgstr ""
+"Ostale su nedovršene transakcije. Možda bi trebalo da izvršite yum-complete-"
+"transaction da biste ih završili."
+
+#: ../yum/__init__.py:698
#, python-format
msgid "Skip-broken round %i"
msgstr "Skip-broken etapa %i"
-#: ../yum/__init__.py:680
+#: ../yum/__init__.py:724
#, python-format
msgid "Skip-broken took %i rounds "
msgstr "Skip-broken je završen u %i etapa "
-#: ../yum/__init__.py:681
+#: ../yum/__init__.py:725
msgid ""
"\n"
"Packages skipped because of dependency problems:"
@@ -1455,96 +1608,108 @@ msgstr ""
"\n"
"Paketi su preskoÄeni zbog problema sa zavisnostima:"
-#: ../yum/__init__.py:685
+#: ../yum/__init__.py:729
#, python-format
msgid " %s from %s"
msgstr " %s iz %s"
-#: ../yum/__init__.py:774
+#: ../yum/__init__.py:816
+msgid ""
+"Warning: scriptlet or other non-fatal errors occurred during transaction."
+msgstr ""
+"Upozorenje: doÅ¡lo je do greÅ¡ke u skriptici ili neke druge nekritiÄne greÅ¡ke "
+"tokom transakcije."
+
+#: ../yum/__init__.py:832
#, python-format
msgid "Failed to remove transaction file %s"
-msgstr "Nisam uspeo da uklonim datoteku transakcije %s"
+msgstr "Nije uspelo uklanjanje datoteke transakcije %s"
-#: ../yum/__init__.py:814
+#: ../yum/__init__.py:873
#, python-format
msgid "excluding for cost: %s from %s"
msgstr "izuzimam iz troška: %s iz %s"
-#: ../yum/__init__.py:845
+#: ../yum/__init__.py:904
msgid "Excluding Packages in global exclude list"
msgstr "Izuzimam pakete u globalnom spisku za izuzimanje"
-#: ../yum/__init__.py:847
+#: ../yum/__init__.py:906
#, python-format
msgid "Excluding Packages from %s"
msgstr "Izuzimam pakete iz %s"
-#: ../yum/__init__.py:875
+#: ../yum/__init__.py:933
#, python-format
msgid "Reducing %s to included packages only"
msgstr "Sažimam %s samo u sadržane pakete"
-#: ../yum/__init__.py:880
+#: ../yum/__init__.py:939
#, python-format
msgid "Keeping included package %s"
msgstr "Zadržavam sadržani paket %s"
-#: ../yum/__init__.py:886
+#: ../yum/__init__.py:945
#, python-format
msgid "Removing unmatched package %s"
msgstr "Uklanjam nepovezani paket %s"
-#: ../yum/__init__.py:889
+#: ../yum/__init__.py:948
msgid "Finished"
msgstr "Završio"
#. Whoa. What the heck happened?
-#: ../yum/__init__.py:919
+#: ../yum/__init__.py:978
#, python-format
msgid "Unable to check if PID %s is active"
-msgstr "Nisam u moguÄnisti da proverim da li je PID %s aktivan"
+msgstr "Nisam u moguÄnosti da proverim da li je PID %s aktivan"
#. Another copy seems to be running.
-#: ../yum/__init__.py:923
+#: ../yum/__init__.py:982
#, python-format
msgid "Existing lock %s: another copy is running as pid %s."
msgstr "Postoji zakljuÄavanje %s: druga kopija se izvrÅ¡ava kao pid %s."
-#: ../yum/__init__.py:970 ../yum/__init__.py:977
+#: ../yum/__init__.py:1053
msgid "Package does not match intended download"
msgstr "Paket nije odgovarajuÄi za nameravano preuzimanje"
-#: ../yum/__init__.py:991
+#: ../yum/__init__.py:1068
msgid "Could not perform checksum"
msgstr "Ne mogu da izvršim kontrolu sume"
-#: ../yum/__init__.py:994
+#: ../yum/__init__.py:1071
msgid "Package does not match checksum"
msgstr "Paket nema odgovarajuÄi kontrolnu sumu"
-#: ../yum/__init__.py:1036
+#: ../yum/__init__.py:1114
#, python-format
msgid "package fails checksum but caching is enabled for %s"
msgstr ""
"paket nema odgovarajuÄu vrednost kontrolne sume ili je za %s ukljuÄeno "
"keširanje"
-#: ../yum/__init__.py:1042
+#: ../yum/__init__.py:1117 ../yum/__init__.py:1145
#, python-format
msgid "using local copy of %s"
msgstr "koristim lokalni umnožak %s-a"
-#: ../yum/__init__.py:1061
+#: ../yum/__init__.py:1159
#, python-format
-msgid "Insufficient space in download directory %s to download"
+msgid ""
+"Insufficient space in download directory %s\n"
+" * free %s\n"
+" * needed %s"
msgstr ""
-"Nedovoljna koliÄina prostora u direktorijumu %s namenjenog za preuzimanje"
+"Nedovoljna koliÄina prostora u direktorijumu %s za preuzimanje\n"
+" * slobodno je %s\n"
+" * potrebno je %s"
-#: ../yum/__init__.py:1094
+#: ../yum/__init__.py:1206
msgid "Header is not complete."
msgstr "Zaglavlje nije potpuno."
-#: ../yum/__init__.py:1134
+#: ../yum/__init__.py:1246
#, python-format
msgid ""
"Header not in local cache and caching-only mode enabled. Cannot download %s"
@@ -1552,204 +1717,240 @@ msgstr ""
"Zaglavlje nije u lokalnom keÅ¡u i samo naÄin rada sa keÅ¡iranjem je ukljuÄen. "
"Ne mogu da preuzmem %s"
-#: ../yum/__init__.py:1189
+#: ../yum/__init__.py:1301
#, python-format
msgid "Public key for %s is not installed"
msgstr "Javni kljuÄ za %s nije instaliran"
-#: ../yum/__init__.py:1193
+#: ../yum/__init__.py:1305
#, python-format
msgid "Problem opening package %s"
msgstr "Problem sa otvaranjem paketa %s"
-#: ../yum/__init__.py:1201
+#: ../yum/__init__.py:1313
#, python-format
msgid "Public key for %s is not trusted"
msgstr "Javni kljuÄ za %s nije poverljiv"
-#: ../yum/__init__.py:1205
+#: ../yum/__init__.py:1317
#, python-format
msgid "Package %s is not signed"
msgstr "Paket %s nije potpisan"
-#: ../yum/__init__.py:1243
+#: ../yum/__init__.py:1355
#, python-format
msgid "Cannot remove %s"
msgstr "Ne mogu da uklonim %s"
-#: ../yum/__init__.py:1247
+#: ../yum/__init__.py:1359
#, python-format
msgid "%s removed"
msgstr "%s je uklonjen"
-#: ../yum/__init__.py:1283
+#: ../yum/__init__.py:1396
#, python-format
msgid "Cannot remove %s file %s"
msgstr "Ne mogu da uklonim %s datoteku %s"
-#: ../yum/__init__.py:1287
+#: ../yum/__init__.py:1400
#, python-format
msgid "%s file %s removed"
msgstr "%s datoteka %s je uklonjena"
-#: ../yum/__init__.py:1289
+#: ../yum/__init__.py:1402
#, python-format
msgid "%d %s files removed"
msgstr "%d %s datoteke su uklonjene"
-#: ../yum/__init__.py:1329
+#: ../yum/__init__.py:1464
#, python-format
msgid "More than one identical match in sack for %s"
msgstr "Postoji viÅ¡e od jednog identiÄnog slaganja u grupi za %s"
-#: ../yum/__init__.py:1335
+#: ../yum/__init__.py:1470
#, python-format
msgid "Nothing matches %s.%s %s:%s-%s from update"
msgstr "Ništa se ne slaže sa %s.%s %s:%s-%s iz ažuriranja"
-#: ../yum/__init__.py:1543
+#: ../yum/__init__.py:1678
msgid ""
"searchPackages() will go away in a future version of "
"Yum. Use searchGenerator() instead. \n"
msgstr ""
-"searchPackages() neÄe biti prisutna u buduÄim verzijama Yum-"
-"a. Umesto nje koristite searchGenerator(). \n"
+"searchPackages() neÄe biti prisutna u buduÄim Yum "
+"verzijama. Umesto nje koristite searchGenerator(). \n"
-#: ../yum/__init__.py:1580
+#: ../yum/__init__.py:1716
#, python-format
msgid "Searching %d packages"
msgstr "Pretražujem %d pakete"
-#: ../yum/__init__.py:1584
+#: ../yum/__init__.py:1720
#, python-format
msgid "searching package %s"
msgstr "tražim paket %s"
-#: ../yum/__init__.py:1596
+#: ../yum/__init__.py:1732
msgid "searching in file entries"
msgstr "tražim u unosima datoteka"
-#: ../yum/__init__.py:1603
+#: ../yum/__init__.py:1739
msgid "searching in provides entries"
msgstr "tražim u unosima dostavljaÄa"
-#: ../yum/__init__.py:1633
+#: ../yum/__init__.py:1772
#, python-format
msgid "Provides-match: %s"
msgstr "Dostavlja-slaganje: %s"
-#: ../yum/__init__.py:1702 ../yum/__init__.py:1720 ../yum/__init__.py:1748
-#: ../yum/__init__.py:1753 ../yum/__init__.py:1808 ../yum/__init__.py:1812
+#: ../yum/__init__.py:1821
+msgid "No group data available for configured repositories"
+msgstr "Nema dostupnih podataka o grupama za podešene riznice"
+
+#: ../yum/__init__.py:1847 ../yum/__init__.py:1866 ../yum/__init__.py:1897
+#: ../yum/__init__.py:1903 ../yum/__init__.py:1976 ../yum/__init__.py:1980
#, python-format
msgid "No Group named %s exists"
msgstr "Ne postoji grupa pod imenom %s"
-#: ../yum/__init__.py:1731 ../yum/__init__.py:1824
+#: ../yum/__init__.py:1878 ../yum/__init__.py:1993
#, python-format
msgid "package %s was not marked in group %s"
msgstr "paket %s nije oznaÄen u grupi %s"
-#: ../yum/__init__.py:1770
+#: ../yum/__init__.py:1925
#, python-format
msgid "Adding package %s from group %s"
msgstr "Dodajem paket %s iz grupe %s"
-#: ../yum/__init__.py:1774
+#: ../yum/__init__.py:1929
#, python-format
msgid "No package named %s available to be installed"
msgstr "Nijedan paket pod imenom %s nije dostupan za instalaciju"
-#: ../yum/__init__.py:1849
-#, python-format
+#: ../yum/__init__.py:2018
+#, fuzzy, python-format
msgid "Package tuple %s could not be found in packagesack"
msgstr "Grupa paketa %s nije naÄena u packagesack-u"
-#: ../yum/__init__.py:1917 ../yum/__init__.py:1960
+#: ../yum/__init__.py:2033
+msgid ""
+"getInstalledPackageObject() will go away, use self.rpmdb.searchPkgTuple().\n"
+msgstr ""
+"getInstalledPackageObject() Äe nestati, koristite self.rpmdb.searchPkgTuple"
+"().\n"
+
+#: ../yum/__init__.py:2085 ../yum/__init__.py:2128
msgid "Invalid versioned dependency string, try quoting it."
msgstr ""
"Neispravna niska zavisnosti sa verzijom, pokušajte da je obeležite "
"navodnicima."
-#: ../yum/__init__.py:1919 ../yum/__init__.py:1962
+#: ../yum/__init__.py:2087 ../yum/__init__.py:2130
msgid "Invalid version flag"
msgstr "Pogrešna oznaka verzije"
-#: ../yum/__init__.py:1934 ../yum/__init__.py:1938
+#: ../yum/__init__.py:2102 ../yum/__init__.py:2106
#, python-format
msgid "No Package found for %s"
msgstr "Nema pronaÄenih paketa za %s"
-#: ../yum/__init__.py:2066
+#: ../yum/__init__.py:2305
msgid "Package Object was not a package object instance"
msgstr "Objekat paketa nije bio primerak objekta paketa"
-#: ../yum/__init__.py:2070
+#: ../yum/__init__.py:2309
msgid "Nothing specified to install"
msgstr "Nije odreÄeno niÅ¡ta za instalaciju"
#. only one in there
-#: ../yum/__init__.py:2085
+#: ../yum/__init__.py:2327
#, python-format
msgid "Checking for virtual provide or file-provide for %s"
msgstr "Proveravam virtuelnu dostavu ili dostavu datoteke za %s"
-#: ../yum/__init__.py:2091 ../yum/__init__.py:2380
+#: ../yum/__init__.py:2333 ../yum/__init__.py:2715
#, python-format
msgid "No Match for argument: %s"
msgstr "Ne postoji slaganje za argument: %s"
-#. FIXME - this is where we could check to see if it already installed
-#. for returning better errors
-#: ../yum/__init__.py:2146
+#: ../yum/__init__.py:2399
+#, python-format
+msgid "Package %s installed and not available"
+msgstr "Paket %s je instaliran i nije dostupan"
+
+#: ../yum/__init__.py:2402
msgid "No package(s) available to install"
msgstr "Nema paketa dostupnih za instalaciju"
-#: ../yum/__init__.py:2158
+#: ../yum/__init__.py:2414
#, python-format
msgid "Package: %s - already in transaction set"
msgstr "Paket: %s - veÄ je u skupu transakcije"
-#: ../yum/__init__.py:2171
+#: ../yum/__init__.py:2427
#, python-format
msgid "Package %s already installed and latest version"
msgstr "VeÄ je instalirana najnovija verzija paketa %s"
-#: ../yum/__init__.py:2178
+#: ../yum/__init__.py:2434
#, python-format
msgid "Package matching %s already installed. Checking for update."
msgstr ""
"Paket koji se poklapa sa %s je veÄ instaliran. Proveravam za noviju verziju."
+#: ../yum/__init__.py:2444
+#, python-format
+msgid "Package %s is obsoleted by %s, trying to install %s instead"
+msgstr "Paket %s je zamenjen paketom %s, pokušavam da namesto instaliram %s"
+
#. update everything (the easy case)
-#: ../yum/__init__.py:2220
+#: ../yum/__init__.py:2514
msgid "Updating Everything"
msgstr "Ažuriram sve"
-#: ../yum/__init__.py:2304
+#: ../yum/__init__.py:2526 ../yum/__init__.py:2631 ../yum/__init__.py:2642
+#: ../yum/__init__.py:2664
+#, python-format
+msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
+msgstr "Ne ažuriram pakete koji su veÄ prevaziÄeni: %s.%s %s:%s-%s"
+
+#: ../yum/__init__.py:2622
#, python-format
msgid "Package is already obsoleted: %s.%s %s:%s-%s"
msgstr "Paket je veÄ prevaziÄen: %s.%s %s:%s-%s"
-#: ../yum/__init__.py:2377
+#: ../yum/__init__.py:2645 ../yum/__init__.py:2667
+#, python-format
+msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s"
+msgstr "Ne ažuriram pakete koji su veÄ ažurirani: %s.%s %s:%s-%s"
+
+#: ../yum/__init__.py:2712
#, python-format
msgid "%s"
msgstr "%s"
-#: ../yum/__init__.py:2392
+#: ../yum/__init__.py:2728
msgid "No package matched to remove"
msgstr "Nijedan paket nije odreÄen za uklanjanje"
-#: ../yum/__init__.py:2426
+#: ../yum/__init__.py:2762
#, python-format
msgid "Cannot open file: %s. Skipping."
msgstr "Ne mogu da otvorim datoteku: %s. PreskaÄem je."
-#: ../yum/__init__.py:2429
+#: ../yum/__init__.py:2765
#, python-format
msgid "Examining %s: %s"
msgstr "Ispitujem %s: %s"
-#: ../yum/__init__.py:2436
+#: ../yum/__init__.py:2773
+#, python-format
+msgid "Cannot add package %s to transaction. Not a compatible architecture: %s"
+msgstr ""
+"Ne mogu da dodam paket %s u transakciju. Arhitektura nije usaglašena: %s"
+
+#: ../yum/__init__.py:2781
#, python-format
msgid ""
"Package %s not installed, cannot update it. Run yum install to install it "
@@ -1758,136 +1959,157 @@ msgstr ""
"Paket %s nije instaliran, ne mogu da ga ažuriram. Izvršite yum instalaciju "
"da biste ga instalirali."
-#: ../yum/__init__.py:2468
+#: ../yum/__init__.py:2814
#, python-format
msgid "Excluding %s"
msgstr "Izuzimam %s"
-#: ../yum/__init__.py:2473
+#: ../yum/__init__.py:2819
#, python-format
msgid "Marking %s to be installed"
msgstr "OznaÄavam %s za instalaciju"
-#: ../yum/__init__.py:2479
+#: ../yum/__init__.py:2825
#, python-format
msgid "Marking %s as an update to %s"
msgstr "OznaÄavam %s kao ažuriranje za %s"
-#: ../yum/__init__.py:2486
+#: ../yum/__init__.py:2832
#, python-format
msgid "%s: does not update installed package."
msgstr "%s: ne ažurira instalirani paket."
-#: ../yum/__init__.py:2504
+#: ../yum/__init__.py:2850
msgid "Problem in reinstall: no package matched to remove"
msgstr ""
"Problem pri ponovnoj instalaciji: nijedan paket nije odreÄen za uklanjanje"
-#: ../yum/__init__.py:2515
+#: ../yum/__init__.py:2861
#, python-format
msgid "Package %s is allowed multiple installs, skipping"
msgstr "Paketu %s su dozvoljene mnogostruke instalacije, preskaÄem ga"
-#: ../yum/__init__.py:2522
+#: ../yum/__init__.py:2868
msgid "Problem in reinstall: no package matched to install"
msgstr ""
"Problem pri ponovnoj instalaciji: nijedan paket nije odreÄen za instalaciju"
-#: ../yum/__init__.py:2570
+#: ../yum/__init__.py:2903
#, python-format
msgid "Retrieving GPG key from %s"
msgstr "Dobavljam GPG kljuÄ sa %s"
-#: ../yum/__init__.py:2576
+#: ../yum/__init__.py:2923
msgid "GPG key retrieval failed: "
msgstr "Dobavljanje GPG kljuÄa nije uspelo: "
-#: ../yum/__init__.py:2589
-msgid "GPG key parsing failed: "
-msgstr "RaÅ¡Älanjivanje GPG kljuÄa nije uspelo: "
+#: ../yum/__init__.py:2934
+#, python-format
+msgid "GPG key parsing failed: key does not have value %s"
+msgstr "RaÅ¡Älanjivanje GPG kljuÄa nije uspelo: kljuÄ nema vrednost %s"
-#: ../yum/__init__.py:2593
+#: ../yum/__init__.py:2966
#, python-format
msgid "GPG key at %s (0x%s) is already installed"
msgstr "GPG kljuÄ na %s (0x%s) je veÄ instaliran"
#. Try installing/updating GPG key
-#: ../yum/__init__.py:2598
+#: ../yum/__init__.py:2971 ../yum/__init__.py:3033
#, python-format
msgid "Importing GPG key 0x%s \"%s\" from %s"
msgstr "Uvozim GPG kljuÄ 0x%s â%sâ iz %s"
-#: ../yum/__init__.py:2610
+#: ../yum/__init__.py:2988
msgid "Not installing key"
msgstr "Ne instaliram kljuÄ"
-#: ../yum/__init__.py:2616
+#: ../yum/__init__.py:2994
#, python-format
msgid "Key import failed (code %d)"
msgstr "Nije uspeo uvoz kljuÄa (kod %d)"
-#: ../yum/__init__.py:2619
+#: ../yum/__init__.py:2995 ../yum/__init__.py:3054
msgid "Key imported successfully"
msgstr "KljuÄ je uspeÅ¡no uvezen"
-#: ../yum/__init__.py:2624
+#: ../yum/__init__.py:3000 ../yum/__init__.py:3059
#, 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 kljuÄevi izlistani za â%sâ riznicu su veÄ istalirani ali nisu "
+"GPG kljuÄevi izlistani za â%sâ riznicu su veÄ instalirani ali nisu "
"odgovarajuÄi za ovaj paket.\n"
"Proverite da li su podeÅ¡eni odgovarajuÄi URL-ovi kljuÄeva za ovu riznicu."
-#: ../yum/__init__.py:2633
+#: ../yum/__init__.py:3009
msgid "Import of key(s) didn't help, wrong key(s)?"
msgstr "Uvoz kljuÄa(kljuÄeva) nije pomogao, pogreÅ¡an kljuÄ(kljuÄevi)?"
-#: ../yum/__init__.py:2707
+#: ../yum/__init__.py:3028
+#, python-format
+msgid "GPG key at %s (0x%s) is already imported"
+msgstr "GPG kljuÄ na %s (0x%s) je veÄ uvezen"
+
+#: ../yum/__init__.py:3048
+#, python-format
+msgid "Not installing key for repo %s"
+msgstr "Ne instaliram kljuÄ za riznicu %s"
+
+#: ../yum/__init__.py:3053
+msgid "Key import failed"
+msgstr "Nije uspeo uvoz kljuÄa"
+
+#: ../yum/__init__.py:3144
msgid "Unable to find a suitable mirror."
msgstr "Ne mogu da pronaÄem odgovarajuÄi odraz."
-#: ../yum/__init__.py:2709
+#: ../yum/__init__.py:3146
msgid "Errors were encountered while downloading packages."
msgstr "Pojavile su se greške za vreme preuzimanja paketa."
-#: ../yum/__init__.py:2774
+#: ../yum/__init__.py:3210
msgid "Test Transaction Errors: "
msgstr "Greške pri proveri transakcije: "
#. Mostly copied from YumOutput._outKeyValFill()
-#: ../yum/plugins.py:195
+#: ../yum/plugins.py:199
msgid "Loaded plugins: "
msgstr "UÄitani dodaci: "
-#: ../yum/plugins.py:206
+#: ../yum/plugins.py:213 ../yum/plugins.py:219
#, python-format
msgid "No plugin match for: %s"
msgstr "Ne postoji slaganje za dodatak: %s"
-#: ../yum/plugins.py:219
+#: ../yum/plugins.py:249
#, python-format
msgid "\"%s\" plugin is disabled"
msgstr "â%sâ dodatak je iskljuÄen"
-#: ../yum/plugins.py:231
+#. Give full backtrace:
+#: ../yum/plugins.py:261
+#, python-format
+msgid "Plugin \"%s\" can't be imported"
+msgstr "Dodatak â%sâ ne može da bude uvezen"
+
+#: ../yum/plugins.py:268
#, python-format
msgid "Plugin \"%s\" doesn't specify required API version"
msgstr "Dodatak â%sâ ne odreÄuje verziju zahtevanog API-a"
-#: ../yum/plugins.py:235
+#: ../yum/plugins.py:273
#, python-format
msgid "Plugin \"%s\" requires API %s. Supported API is %s."
msgstr "Dodatak â%sâ zahteva API %s. Podržani API je %s."
-#: ../yum/plugins.py:264
+#: ../yum/plugins.py:306
#, python-format
msgid "Loading \"%s\" plugin"
msgstr "UÄitavam â%sâ dodatak"
-#: ../yum/plugins.py:271
+#: ../yum/plugins.py:313
#, python-format
msgid ""
"Two or more plugins with the name \"%s\" exist in the plugin search path"
@@ -1895,22 +2117,26 @@ msgstr ""
"U putanji za pretraživanje dodataka postoje dva ili više dodataka pod imenom "
"â%sâ"
-#: ../yum/plugins.py:291
+#: ../yum/plugins.py:333
#, python-format
msgid "Configuration file %s not found"
msgstr "Datoteka podeÅ¡avanja %s nije pronaÄena"
#. for
#. Configuration files for the plugin not found
-#: ../yum/plugins.py:294
+#: ../yum/plugins.py:336
#, python-format
msgid "Unable to find configuration file for plugin %s"
msgstr "Ne mogu da pronaÄem datoteku podeÅ¡avanja za dodatak %s"
-#: ../yum/plugins.py:448
+#: ../yum/plugins.py:490
msgid "registration of commands not supported"
msgstr "registracija komandi nije podržana"
+#: ../yum/rpmtrans.py:78
+msgid "Repackaging"
+msgstr "Ponovno pakovanje"
+
#: ../rpmUtils/oldUtils.py:26
#, python-format
msgid "Header cannot be opened or does not match %s, %s."
@@ -1929,7 +2155,7 @@ msgstr ""
#: ../rpmUtils/oldUtils.py:174
msgid "Got an empty Header, something has gone wrong"
-msgstr "Dobio sam prazno zaglavlje, nešto je pošlo naopako"
+msgstr "Primljeno je prazno zaglavlje, nešto je pošlo naopako"
#: ../rpmUtils/oldUtils.py:244 ../rpmUtils/oldUtils.py:251
#: ../rpmUtils/oldUtils.py:254 ../rpmUtils/oldUtils.py:257
@@ -1941,64 +2167,3 @@ msgstr "OÅ¡teÄeno zaglavlje %s"
#, python-format
msgid "Error opening rpm %s - error %s"
msgstr "Greška pri otvaranju rpm-a %s - greška %s"
-
-#~ msgid ""
-#~ "\n"
-#~ "\n"
-#~ "%s: %s option requires an argument"
-#~ msgstr ""
-#~ "\n"
-#~ "\n"
-#~ "%s: %s opcija zahteva argument"
-
-#~ msgid "show this help message and exit"
-#~ msgstr "prikaži ovu pomoÄnu poruku i izaÄi"
-
-#~ msgid "verbose operation"
-#~ msgstr "opširna radnja"
-
-#~ msgid "Repo-id : "
-#~ msgstr "IB riznice : "
-
-#~ msgid "Repo-name : "
-#~ msgstr "Ime riznice : "
-
-#~ msgid "Repo-enabled: "
-#~ msgstr "Riznica ukljuÄena: "
-
-#~ msgid "Repo-size : "
-#~ msgstr "VeliÄina riznice: "
-
-#~ msgid "Running compare_providers() for %s"
-#~ msgstr "PokreÄem compare_providers() za %s"
-
-#~ msgid ""
-#~ "archdist compared %s to %s on %s\n"
-#~ " Winner: %s"
-#~ msgstr ""
-#~ "archdist uporedio %s sa %s na %s\n"
-#~ " Pobednik: %s"
-
-#~ msgid "common sourcerpm %s and %s"
-#~ msgstr "zajedniÄki izvorni rpm %s i %s"
-
-#~ msgid "common prefix of %s between %s and %s"
-#~ msgstr "zajedniÄki prefiks %s izmeÄu %s i %s"
-
-#~ msgid "Best Order: %s"
-#~ msgstr "Najbolji redosled: %s"
-
-#~ msgid ""
-#~ "Warning: scriptlet or other non-fatal errors occurred during transaction."
-#~ msgstr ""
-#~ "Upozorenje: doÅ¡lo je do greÅ¡ke u skriptici ili neke druge nekritiÄne "
-#~ "greške tokom transkacije."
-
-#~ msgid "Package %s is obsoleted by %s, trying to install %s instead"
-#~ msgstr "Paket %s je zamenjen paketom %s, pokušavam da namesto instaliram %s"
-
-#~ msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s"
-#~ msgstr "Ne ažuriram pakete koji su veÄ ažurirani: %s.%s %s:%s-%s"
-
-#~ msgid "Repackaging"
-#~ msgstr "Ponovno pakovanje"
commit 380d93005d83fad19d8e793096cac8d7190a5175
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date: Sat Nov 1 10:22:27 2008 +0100
Updated Brazilian Portuguese translation by Igor Pires Soares
diff --git a/po/pt_BR.po b/po/pt_BR.po
index 919c002..8f8c0fb 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -2,12 +2,13 @@
# This file is distributed under the same license as the Yum package.
# Igor Pires Soares <igor at projetofedora.org>, 2007,2008.
#
+
msgid ""
msgstr ""
"Project-Id-Version: Yum\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-03-25 11:29+0100\n"
-"PO-Revision-Date: 2008-04-12 00:41-0300\n"
+"POT-Creation-Date: 2008-10-23 01:29+0000\n"
+"PO-Revision-Date: 2008-10-25 14:56-0300\n"
"Last-Translator: Igor Pires Soares <igor at projetofedora.org>\n"
"Language-Team: Brazilian Portuguese <fedora-trans-pt_br at redhat.com>\n"
"MIME-Version: 1.0\n"
@@ -17,23 +18,36 @@ msgstr ""
"X-Poedit-Language: Portuguese\n"
"X-Poedit-Country: BRAZIL\n"
-#: ../callback.py:48 ../output.py:512
+#: ../callback.py:48
+#: ../output.py:777
+#: ../yum/rpmtrans.py:71
msgid "Updating"
msgstr "Atualizando"
#: ../callback.py:49
+#: ../yum/rpmtrans.py:72
msgid "Erasing"
msgstr "Apagando"
-#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:511
+#. Arch can't get "that big" ... so always use the max.
+#: ../callback.py:50
+#: ../callback.py:51
+#: ../callback.py:53
+#: ../output.py:776
+#: ../yum/rpmtrans.py:73
+#: ../yum/rpmtrans.py:74
+#: ../yum/rpmtrans.py:76
msgid "Installing"
msgstr "Instalando"
-#: ../callback.py:52 ../callback.py:58
+#: ../callback.py:52
+#: ../callback.py:58
+#: ../yum/rpmtrans.py:75
msgid "Obsoleted"
msgstr "Obsoletos"
-#: ../callback.py:54 ../output.py:558
+#: ../callback.py:54
+#: ../output.py:890
msgid "Updated"
msgstr "Atualizados"
@@ -41,7 +55,10 @@ msgstr "Atualizados"
msgid "Erased"
msgstr "Removidos"
-#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:556
+#: ../callback.py:56
+#: ../callback.py:57
+#: ../callback.py:59
+#: ../output.py:888
msgid "Installed"
msgstr "Instalados"
@@ -51,7 +68,7 @@ msgstr "Sem cabeçalho - huh?"
#: ../callback.py:168
msgid "Repackage"
-msgstr "Reempacotados"
+msgstr "Reempacotar"
#: ../callback.py:189
#, python-format
@@ -63,491 +80,564 @@ msgstr "Erro: estado de saÃda inválido: %s de %s"
msgid "Erased: %s"
msgstr "Removidos: %s"
-#: ../callback.py:217 ../output.py:513
+#: ../callback.py:217
+#: ../output.py:778
msgid "Removing"
msgstr "Removendo"
#: ../callback.py:219
+#: ../yum/rpmtrans.py:77
msgid "Cleanup"
msgstr "Limpeza"
-#: ../cli.py:103
+#: ../cli.py:105
#, python-format
msgid "Command \"%s\" already defined"
msgstr "Comando \"%s\" já definido"
-#: ../cli.py:115
+#: ../cli.py:117
msgid "Setting up repositories"
msgstr "Configurando repositórios"
-#: ../cli.py:126
+#: ../cli.py:128
msgid "Reading repository metadata in from local files"
msgstr "Lendo metadados do repositório a partir dos arquivos locais"
-#: ../cli.py:183 ../utils.py:72
+#: ../cli.py:187
+#: ../utils.py:71
#, python-format
msgid "Config Error: %s"
-msgstr "Erro de Configuração: %s"
+msgstr "Erro de configuração: %s"
-#: ../cli.py:186 ../cli.py:1068 ../utils.py:75
+#: ../cli.py:190
+#: ../cli.py:1128
+#: ../utils.py:74
#, python-format
msgid "Options Error: %s"
-msgstr "Erro nas Opções: %s"
+msgstr "Erro nas opções: %s"
+
+#: ../cli.py:218
+#, python-format
+msgid " Installed: %s-%s at %s"
+msgstr " Instalados: %s-%s em %s"
+
+#: ../cli.py:220
+#, python-format
+msgid " Built : %s at %s"
+msgstr " ConstruÃdos : %s em %s"
-#: ../cli.py:229
+#: ../cli.py:222
+#, python-format
+msgid " Committed: %s at %s"
+msgstr " Enviados: %s em %s"
+
+#: ../cli.py:259
msgid "You need to give some command"
msgstr "Você precisa dar algum comando"
-#: ../cli.py:271
+#: ../cli.py:301
msgid "Disk Requirements:\n"
-msgstr "Requerimentos de Disco:\n"
+msgstr "Requisitos de disco:\n"
-#: ../cli.py:273
+#: ../cli.py:303
#, python-format
msgid " At least %dMB needed on the %s filesystem.\n"
msgstr " Pelo menos %d MB são necessários no sistema de arquivos %s.\n"
#. TODO: simplify the dependency errors?
#. Fixup the summary
-#: ../cli.py:278
+#: ../cli.py:308
msgid ""
"Error Summary\n"
"-------------\n"
msgstr ""
-"Sumário de Erros\n"
+"Sumário de erros\n"
"-------------\n"
-#: ../cli.py:317
+#: ../cli.py:351
msgid "Trying to run the transaction but nothing to do. Exiting."
msgstr "Tentando executar a transação, mas não há nada a ser feito. Saindo."
-#: ../cli.py:347
+#: ../cli.py:381
msgid "Exiting on user Command"
msgstr "Saindo pelo comando do usuário"
-#: ../cli.py:351
+#: ../cli.py:385
msgid "Downloading Packages:"
-msgstr "Baixando Pacotes:"
+msgstr "Baixando pacotes:"
-#: ../cli.py:356
+#: ../cli.py:390
msgid "Error Downloading Packages:\n"
-msgstr "Erro ao Baixar Pacotes:\n"
+msgstr "Erro ao baixar pacotes:\n"
-#: ../cli.py:370 ../yum/__init__.py:2746
+#: ../cli.py:404
+#: ../yum/__init__.py:3134
msgid "Running rpm_check_debug"
msgstr "Executando o rpm_check_debug"
-#: ../cli.py:373 ../yum/__init__.py:2749
+#: ../cli.py:407
+#: ../yum/__init__.py:3137
msgid "ERROR with rpm_check_debug vs depsolve:"
msgstr "Erro com o rpm_check_debug vs depsolve:"
-#: ../cli.py:377 ../yum/__init__.py:2751
+#: ../cli.py:411
+#: ../yum/__init__.py:3139
msgid "Please report this error in bugzilla"
msgstr "Por favor, reporte esse erro ao bugzilla"
-#: ../cli.py:383
+#: ../cli.py:417
msgid "Running Transaction Test"
-msgstr "Executando Teste de Transação"
+msgstr "Executando teste de transação"
-#: ../cli.py:399
+#: ../cli.py:433
msgid "Finished Transaction Test"
-msgstr "Teste de Transação Finalizado"
+msgstr "Teste de transação finalizado"
-#: ../cli.py:401
+#: ../cli.py:435
msgid "Transaction Check Error:\n"
-msgstr "Erro na Verificação da Transação:\n"
+msgstr "Erro na verificação da transação:\n"
-#: ../cli.py:408
+#: ../cli.py:442
msgid "Transaction Test Succeeded"
-msgstr "Teste de Transação Completo"
+msgstr "Teste de transação completo"
-#: ../cli.py:429
+#: ../cli.py:463
msgid "Running Transaction"
-msgstr "Executando a Transação"
+msgstr "Executando a transação"
-#: ../cli.py:459
+#: ../cli.py:493
msgid ""
"Refusing to automatically import keys when running unattended.\n"
"Use \"-y\" to override."
msgstr ""
-"Recusa de importação automática das chaves ao executar de forma não "
-"assistida.\n"
+"Recusa de importação automática das chaves ao executar de forma não assistida.\n"
"Use \"-y\" para sobrescrever."
-#: ../cli.py:491
-msgid "Parsing package install arguments"
-msgstr "Analisando argumentos da instalação de pacotes"
+#: ../cli.py:512
+#: ../cli.py:545
+msgid " * Maybe you meant: "
+msgstr " * Talvez você queira dizer: "
+
+#: ../cli.py:528
+#: ../cli.py:536
+#, python-format
+msgid "Package(s) %s%s%s available, but not installed."
+msgstr "Pacotes %s%s%s disponÃveis, mas já instalados."
-#: ../cli.py:501
+#: ../cli.py:542
+#: ../cli.py:577
#, python-format
-msgid "No package %s available."
-msgstr "Nenhum pacote %s disponÃvel."
+msgid "No package %s%s%s available."
+msgstr "Nenhum pacote %s%s%s disponÃvel."
+
+#: ../cli.py:567
+msgid "Parsing package install arguments"
+msgstr "Analisando argumentos da instalação de pacotes"
-#: ../cli.py:505 ../cli.py:623 ../yumcommands.py:748
+#: ../cli.py:582
+#: ../cli.py:657
+#: ../yumcommands.py:912
msgid "Package(s) to install"
msgstr "Pacotes a serem instalados"
-#: ../cli.py:506 ../cli.py:624 ../yumcommands.py:146 ../yumcommands.py:749
+#: ../cli.py:583
+#: ../cli.py:658
+#: ../yumcommands.py:150
+#: ../yumcommands.py:913
msgid "Nothing to do"
msgstr "Nada a ser feito"
-#: ../cli.py:536 ../yum/__init__.py:2232 ../yum/__init__.py:2311
-#: ../yum/__init__.py:2340
-#, python-format
-msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
-msgstr "Pacote já obsoleto não será atualizado: %s.%s %s:%s-%s"
-
-#: ../cli.py:568
-#, python-format
-msgid "Could not find update match for %s"
-msgstr "Não foi possÃvel encontrar uma atualização correspondente ao %s"
-
-#: ../cli.py:580
+#: ../cli.py:616
#, python-format
msgid "%d packages marked for Update"
msgstr "%d pacotes marcados para atualização"
-#: ../cli.py:583
+#: ../cli.py:619
msgid "No Packages marked for Update"
msgstr "Nenhum pacote marcado para atualização"
-#: ../cli.py:599
+#: ../cli.py:633
#, python-format
msgid "%d packages marked for removal"
msgstr "%d pacotes marcados para remoção"
-#: ../cli.py:602
+#: ../cli.py:636
msgid "No Packages marked for removal"
msgstr "Nenhum pacote marcado para remoção"
-#: ../cli.py:614
+#: ../cli.py:648
msgid "No Packages Provided"
-msgstr "Nenhum Pacote Fornecido"
+msgstr "Nenhum pacote fornecido"
-#: ../cli.py:654
+#: ../cli.py:689
msgid "Matching packages for package list to user args"
-msgstr ""
-"Resultado dos pacotes para a lista de pacotes dos argumentos do usuário"
+msgstr "Resultado dos pacotes para a lista de pacotes dos argumentos do usuário"
-#: ../cli.py:701
+#: ../cli.py:731
#, python-format
msgid "Warning: No matches found for: %s"
-msgstr "Aviso: Nenhum resultado para: %s"
+msgstr "Aviso: nenhum resultado para: %s"
-#: ../cli.py:704
+#: ../cli.py:734
msgid "No Matches found"
-msgstr "Nenhum pacote encontrado"
+msgstr "Nenhum pacote localizado"
-#: ../cli.py:745
+#: ../cli.py:773
+#, python-format
+msgid ""
+"Warning: 3.0.x versions of yum would erronously match against filenames.\n"
+" You can use \"%s*/%s%s\" and/or \"%s*bin/%s%s\" to get that behaviour"
+msgstr ""
+"Aviso: as versões 3.0.x do yum iriam corresponder erroneamente pelos nomes de arquivos\n"
+" Você pode usar \"%s*/%s%s\" e/ou \"%s*bin/%s%s\" para obter esse comportamento"
+
+#: ../cli.py:789
#, python-format
msgid "No Package Found for %s"
-msgstr "Nenhum Pacote Encontrado para %s"
+msgstr "Nenhum pacote localizado para %s"
-#: ../cli.py:757
+#: ../cli.py:801
msgid "Cleaning up Everything"
-msgstr "Limpando Tudo"
+msgstr "Limpando tudo"
-#: ../cli.py:771
+#: ../cli.py:815
msgid "Cleaning up Headers"
-msgstr "Limpando Cabeçalhos"
+msgstr "Limpando cabeçalhos"
-#: ../cli.py:774
+#: ../cli.py:818
msgid "Cleaning up Packages"
-msgstr "Limpando Pacotes"
+msgstr "Limpando pacotes"
-#: ../cli.py:777
+#: ../cli.py:821
msgid "Cleaning up xml metadata"
msgstr "Limpando metadados em xml"
-#: ../cli.py:780
+#: ../cli.py:824
msgid "Cleaning up database cache"
msgstr "Limpando cache do banco de dados"
-#: ../cli.py:783
+#: ../cli.py:827
msgid "Cleaning up expire-cache metadata"
msgstr "Limpando metadados expirados do cache"
-#: ../cli.py:786
+#: ../cli.py:830
msgid "Cleaning up plugins"
msgstr "Limpando plugins"
-#: ../cli.py:807
+#: ../cli.py:851
msgid "Installed Groups:"
-msgstr "Grupos Instalados:"
+msgstr "Grupos instalados:"
-#: ../cli.py:814
+#: ../cli.py:858
msgid "Available Groups:"
-msgstr "Grupos DisponÃveis:"
+msgstr "Grupos disponÃveis:"
-#: ../cli.py:820
+#: ../cli.py:864
msgid "Done"
msgstr "ConcluÃdo"
-#: ../cli.py:829 ../cli.py:841 ../cli.py:847
+#: ../cli.py:875
+#: ../cli.py:893
+#: ../cli.py:899
+#: ../yum/__init__.py:2246
#, python-format
msgid "Warning: Group %s does not exist."
msgstr "Aviso: O grupo %s não existe."
-#: ../cli.py:853
+#: ../cli.py:903
msgid "No packages in any requested group available to install or update"
-msgstr ""
-"Nenhum pacote disponÃvel para instalação ou atualização nos grupos "
-"requisitados"
+msgstr "Nenhum pacote disponÃvel para instalação ou atualização nos grupos requisitados"
-#: ../cli.py:855
+#: ../cli.py:905
#, python-format
msgid "%d Package(s) to Install"
-msgstr "%d Pacote(s) a Ser(em) Instalado(s)"
+msgstr "%d pacote(s) a ser(em) instalado(s)"
-#: ../cli.py:865
+#: ../cli.py:915
+#: ../yum/__init__.py:2258
#, python-format
msgid "No group named %s exists"
msgstr "Nenhum grupo de nome %s existe"
-#: ../cli.py:871
+#: ../cli.py:921
msgid "No packages to remove from groups"
msgstr "Nenhum pacote a ser removido a partir dos grupos"
-#: ../cli.py:873
+#: ../cli.py:923
#, python-format
msgid "%d Package(s) to remove"
-msgstr "%d Pacote(s) a Ser(em) Removido(s)"
+msgstr "%d pacote(s) a ser(em) removido(s)"
-#: ../cli.py:915
+#: ../cli.py:965
#, python-format
msgid "Package %s is already installed, skipping"
msgstr "O pacote %s já está instalado, ignorando"
-#: ../cli.py:926
+#: ../cli.py:976
#, python-format
msgid "Discarding non-comparable pkg %s.%s"
msgstr "Descartando pacote não comparável %s.%s"
#. we've not got any installed that match n or n+a
-#: ../cli.py:952
+#: ../cli.py:1002
#, python-format
msgid "No other %s installed, adding to list for potential install"
-msgstr ""
-"Nenhum outro %s instalado, adicionado à lista para potencial instalação"
+msgstr "Nenhum outro %s instalado, adicionado à lista para potencial instalação"
-#: ../cli.py:971
+#: ../cli.py:1021
#, python-format
msgid "Command line error: %s"
msgstr "Erro na linha de comando: %s"
-#: ../cli.py:1101
+#: ../cli.py:1034
+#, python-format
+msgid ""
+"\n"
+"\n"
+"%s: %s option requires an argument"
+msgstr ""
+"\n"
+"\n"
+"%s: a opção %s requer um argumento"
+
+#: ../cli.py:1170
+msgid "show this help message and exit"
+msgstr "mostrar essa mensagem ajuda e sai"
+
+#: ../cli.py:1174
msgid "be tolerant of errors"
msgstr "ser tolerante com os erros"
-#: ../cli.py:1103
+#: ../cli.py:1176
msgid "run entirely from cache, don't update cache"
msgstr "executar por completo a partir do cache, não atualiza o cache"
-#: ../cli.py:1105
+#: ../cli.py:1178
msgid "config file location"
msgstr "configurar localização do arquivo"
-#: ../cli.py:1107
+#: ../cli.py:1180
msgid "maximum command wait time"
msgstr "Tempo máximo de espera do comando"
-#: ../cli.py:1109
+#: ../cli.py:1182
msgid "debugging output level"
msgstr "nÃvel de depuração na saÃda"
-#: ../cli.py:1113
+#: ../cli.py:1186
msgid "show duplicates, in repos, in list/search commands"
msgstr "mostrar duplicados em repos e em comandos de pesquisa/listagem"
-#: ../cli.py:1115
+#: ../cli.py:1188
msgid "error output level"
msgstr "nÃvel de erro na saÃda"
-#: ../cli.py:1118
+#: ../cli.py:1191
msgid "quiet operation"
msgstr "operação discreta"
-#: ../cli.py:1122
+#: ../cli.py:1193
+msgid "verbose operation"
+msgstr "operação detalhada"
+
+#: ../cli.py:1195
msgid "answer yes for all questions"
msgstr "responder sim para todas as perguntas"
-#: ../cli.py:1124
+#: ../cli.py:1197
msgid "show Yum version and exit"
msgstr "mostrar versão do Yum ao sair"
-#: ../cli.py:1125
+#: ../cli.py:1198
msgid "set install root"
msgstr "definir raiz de instalação"
-#: ../cli.py:1129
+#: ../cli.py:1202
msgid "enable one or more repositories (wildcards allowed)"
msgstr "habilitar um ou mais repositórios (curingas são permitidos)"
-#: ../cli.py:1133
+#: ../cli.py:1206
msgid "disable one or more repositories (wildcards allowed)"
msgstr "desabilitar um ou mais repositórios (curingas são permitidos)"
-#: ../cli.py:1136
+#: ../cli.py:1209
msgid "exclude package(s) by name or glob"
msgstr "excluir pacote(s) por nome ou glob"
-#: ../cli.py:1138
+#: ../cli.py:1211
msgid "disable exclude from main, for a repo or for everything"
-msgstr ""
-"desabilitar a exclusão a partir do principal, para um repositório ou para "
-"tudo"
+msgstr "desabilitar a exclusão a partir do principal, para um repositório ou para tudo"
-#: ../cli.py:1141
+#: ../cli.py:1214
msgid "enable obsoletes processing during updates"
msgstr "Habilitar processo de obsolescência durante as atualizações"
-#: ../cli.py:1143
+#: ../cli.py:1216
msgid "disable Yum plugins"
msgstr "desabilitar plugins do Yum"
-#: ../cli.py:1145
+#: ../cli.py:1218
msgid "disable gpg signature checking"
msgstr "desabilitar verificação de assinaturas gpg"
-#: ../cli.py:1147
+#: ../cli.py:1220
msgid "disable plugins by name"
msgstr "desabilitar plugins pelo nome"
-#: ../cli.py:1150
+#: ../cli.py:1223
+msgid "enable plugins by name"
+msgstr "habilita plugins pelo nome"
+
+#: ../cli.py:1226
msgid "skip packages with depsolving problems"
msgstr "ignorar pacotes com problemas de solução de dependências"
-#: ../output.py:229
+#: ../output.py:236
msgid "Jan"
msgstr "Jan"
-#: ../output.py:229
+#: ../output.py:236
msgid "Feb"
msgstr "Fev"
-#: ../output.py:229
+#: ../output.py:236
msgid "Mar"
msgstr "Mar"
-#: ../output.py:229
+#: ../output.py:236
msgid "Apr"
msgstr "Abr"
-#: ../output.py:229
+#: ../output.py:236
msgid "May"
msgstr "Mai"
-#: ../output.py:229
+#: ../output.py:236
msgid "Jun"
msgstr "Jun"
-#: ../output.py:230
+#: ../output.py:237
msgid "Jul"
msgstr "Jul"
-#: ../output.py:230
+#: ../output.py:237
msgid "Aug"
msgstr "Ago"
-#: ../output.py:230
+#: ../output.py:237
msgid "Sep"
msgstr "Set"
-#: ../output.py:230
+#: ../output.py:237
msgid "Oct"
msgstr "Out"
-#: ../output.py:230
+#: ../output.py:237
msgid "Nov"
msgstr "Nov"
-#: ../output.py:230
+#: ../output.py:237
msgid "Dec"
msgstr "Dez"
-#: ../output.py:240
+#: ../output.py:247
msgid "Trying other mirror."
msgstr "Tentando outro espelho."
-#: ../output.py:293
+#: ../output.py:425
#, python-format
-msgid "Name : %s"
-msgstr "Nome : %s"
+msgid "Name : %s%s%s"
+msgstr "Nome : %s%s%s"
-#: ../output.py:294
+#: ../output.py:426
#, python-format
msgid "Arch : %s"
msgstr "Arq. : %s"
-#: ../output.py:296
+#: ../output.py:428
#, python-format
msgid "Epoch : %s"
msgstr "PerÃodo : %s"
-#: ../output.py:297
+#: ../output.py:429
#, python-format
msgid "Version : %s"
msgstr "Versão : %s"
-#: ../output.py:298
+#: ../output.py:430
#, python-format
msgid "Release : %s"
msgstr "Lançamento : %s"
-#: ../output.py:299
+#: ../output.py:431
#, python-format
msgid "Size : %s"
msgstr "Tamanho : %s"
-#: ../output.py:300
+#: ../output.py:432
#, python-format
msgid "Repo : %s"
msgstr "Repo : %s"
-#: ../output.py:302
+#: ../output.py:434
#, python-format
msgid "Committer : %s"
msgstr "Enviado por : %s"
-#: ../output.py:303
+#: ../output.py:435
+#, python-format
+msgid "Committime : %s"
+msgstr "Horário do envio : %s"
+
+#: ../output.py:436
+#, python-format
+msgid "Buildtime : %s"
+msgstr "Horário da construção : %s"
+
+#: ../output.py:438
+#, python-format
+msgid "Installtime: %s"
+msgstr "Horário da instalação: %s"
+
+#: ../output.py:439
msgid "Summary : "
msgstr "Sumário : "
-#: ../output.py:305
+#: ../output.py:441
#, python-format
msgid "URL : %s"
msgstr "URL : %s"
-#: ../output.py:306
+#: ../output.py:442
#, python-format
msgid "License : %s"
msgstr "Licença : %s"
-#: ../output.py:307
+#: ../output.py:443
msgid "Description: "
msgstr "Descrição: "
-#: ../output.py:351
-msgid "Is this ok [y/N]: "
-msgstr "Correto? [s/N]:"
-
-#: ../output.py:357 ../output.py:360
+#: ../output.py:500
msgid "y"
msgstr "s"
-#: ../output.py:357
-msgid "n"
-msgstr "n"
-
-#: ../output.py:357 ../output.py:360
+#: ../output.py:500
msgid "yes"
msgstr "sim"
-#: ../output.py:357
+#: ../output.py:501
+msgid "n"
+msgstr "n"
+
+#: ../output.py:501
msgid "no"
msgstr "não"
-#: ../output.py:367
+#: ../output.py:505
+msgid "Is this ok [y/N]: "
+msgstr "Correto? [s/N]:"
+
+#: ../output.py:587
#, python-format
msgid ""
"\n"
@@ -556,96 +646,119 @@ msgstr ""
"\n"
"Grupo: %s"
-#: ../output.py:369
+#: ../output.py:594
#, python-format
msgid " Description: %s"
msgstr " Descrição: %s"
-#: ../output.py:371
+#: ../output.py:596
msgid " Mandatory Packages:"
-msgstr " Pacotes Obrigatórios:"
+msgstr " Pacotes obrigatórios:"
-#: ../output.py:376
+#: ../output.py:597
msgid " Default Packages:"
-msgstr " Pacotes Padrão:"
+msgstr " Pacotes padrão:"
-#: ../output.py:381
+#: ../output.py:598
msgid " Optional Packages:"
-msgstr " Pacotes Opcionais:"
+msgstr " Pacotes opcionais:"
-#: ../output.py:386
+#: ../output.py:599
msgid " Conditional Packages:"
-msgstr " Pacotes Condicionais:"
+msgstr " Pacotes condicionais:"
-#: ../output.py:394
+#: ../output.py:619
#, python-format
msgid "package: %s"
msgstr "pacote: %s"
-#: ../output.py:396
+#: ../output.py:621
msgid " No dependencies for this package"
msgstr " Nenhuma dependência para este pacote"
-#: ../output.py:401
+#: ../output.py:626
#, python-format
msgid " dependency: %s"
msgstr " dependência: %s"
-#: ../output.py:403
+#: ../output.py:628
msgid " Unsatisfied dependency"
msgstr " Dependência não satisfeita"
-#: ../output.py:461
+#: ../output.py:700
msgid "Matched from:"
msgstr "Resultado a partir de:"
-#: ../output.py:487
+#: ../output.py:708
+msgid "Description : "
+msgstr "Descrição : "
+
+#: ../output.py:711
+#, python-format
+msgid "URL : %s"
+msgstr "URL : %s"
+
+#: ../output.py:714
+#, python-format
+msgid "License : %s"
+msgstr "Licença : %s"
+
+#: ../output.py:717
+#, python-format
+msgid "Filename : %s"
+msgstr "Nome de arquivo : %s"
+
+#: ../output.py:721
+msgid "Other : "
+msgstr "Outro : "
+
+#: ../output.py:753
msgid "There was an error calculating total download size"
msgstr "Houve um erro no cálculo do tamanho total do download"
-#: ../output.py:492
+#: ../output.py:758
#, python-format
msgid "Total size: %s"
msgstr "Tamanho total: %s"
-#: ../output.py:495
+#: ../output.py:761
#, python-format
msgid "Total download size: %s"
msgstr "Tamanho total do download: %s"
-#: ../output.py:507
+#: ../output.py:779
+msgid "Installing for dependencies"
+msgstr "Instalando para as dependências"
+
+#: ../output.py:780
+msgid "Updating for dependencies"
+msgstr "Atualizando para as dependências"
+
+#: ../output.py:781
+msgid "Removing for dependencies"
+msgstr "Removendo para as dependências"
+
+#: ../output.py:817
msgid "Package"
msgstr "Pacote"
-#: ../output.py:507
+#: ../output.py:817
msgid "Arch"
msgstr "Arq."
-#: ../output.py:507
+#: ../output.py:818
msgid "Version"
msgstr "Versão"
-#: ../output.py:507
+#: ../output.py:818
msgid "Repository"
-msgstr "Repositório"
+msgstr "Repo"
-#: ../output.py:507
+#: ../output.py:819
msgid "Size"
msgstr "Tamanho"
-#: ../output.py:514
-msgid "Installing for dependencies"
-msgstr "Instalando para as dependências"
-
-#: ../output.py:515
-msgid "Updating for dependencies"
-msgstr "Atualizando para as dependências"
-
-#: ../output.py:516
-msgid "Removing for dependencies"
-msgstr "Removendo para as dependências"
-
-#: ../output.py:528
+#: ../output.py:830
#, python-format
msgid ""
" replacing %s.%s %s\n"
@@ -654,127 +767,126 @@ msgstr ""
" substituindo %s.%s %s\n"
"\n"
-#: ../output.py:536
+#: ../output.py:838
#, python-format
msgid ""
"\n"
"Transaction Summary\n"
-"=============================================================================\n"
+"%s\n"
"Install %5.5s Package(s) \n"
"Update %5.5s Package(s) \n"
"Remove %5.5s Package(s) \n"
msgstr ""
"\n"
-"Sumário da Transação\n"
-"=============================================================================\n"
-"Instalar %5.5s Pacote(s) \n"
-"Atualizar %5.5s Pacote(s) \n"
-"Remover %5.5s Pacote(s) \n"
+"Sumário da transação\n"
+"%s\n"
+"Instalar %5.5s pacote(s) \n"
+"Atualizar %5.5s pacote(s) \n"
+"Remover %5.5s pacote(s) \n"
-#: ../output.py:554
+#: ../output.py:886
msgid "Removed"
-msgstr "Removidos"
+msgstr "Removido(s)"
-#: ../output.py:555
+#: ../output.py:887
msgid "Dependency Removed"
-msgstr "Dependência Removida"
+msgstr "Dependência(s) removida(s)"
-#: ../output.py:557
+#: ../output.py:889
msgid "Dependency Installed"
-msgstr "Dependência Instalada"
+msgstr "Dependência(s) instalada(s)"
-#: ../output.py:559
+#: ../output.py:891
msgid "Dependency Updated"
-msgstr "Dependência Atualizada"
+msgstr "Dependência(s) atualizada(s)"
-#: ../output.py:560
+#: ../output.py:892
msgid "Replaced"
msgstr "SubstituÃdo(s)"
-#: ../output.py:618
+#: ../output.py:965
#, 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 to exit.\n"
msgstr ""
"\n"
-" Download atual cancelado, interrupção %s, (ctrl-c) novamente %s com %s%s%s "
-"segundos até sair.\n"
+" Download atual cancelado, interrupção %s, (ctrl-c) novamente %s com %s%s%s segundos até sair.\n"
-#: ../output.py:628
+#: ../output.py:975
msgid "user interrupt"
-msgstr "interrupção pelo usuário"
+msgstr "interrupção do usuário"
+
+#: ../output.py:991
+msgid "Total"
+msgstr "Total"
-#: ../output.py:639
+#: ../output.py:1005
msgid "installed"
msgstr "instalado"
-#: ../output.py:640
+#: ../output.py:1006
msgid "updated"
msgstr "atualizado"
-#: ../output.py:641
+#: ../output.py:1007
msgid "obsoleted"
msgstr "obsoleto"
-#: ../output.py:642
+#: ../output.py:1008
msgid "erased"
msgstr "removido"
-#: ../output.py:646
+#: ../output.py:1012
#, python-format
msgid "---> Package %s.%s %s:%s-%s set to be %s"
msgstr "---> Pacote %s.%s %s:%s-%s definido para ser %s"
-#: ../output.py:653
+#: ../output.py:1019
msgid "--> Running transaction check"
msgstr "--> Executando verificação da transação"
-#: ../output.py:658
+#: ../output.py:1024
msgid "--> Restarting Dependency Resolution with new changes."
-msgstr "--> Reiniciando Resolução de Dependências com as novas alterações."
+msgstr "--> Reiniciando resolução de dependências com as novas alterações."
-#: ../output.py:663
+#: ../output.py:1029
msgid "--> Finished Dependency Resolution"
-msgstr "--> Resolução de Dependências Finalizada"
+msgstr "--> Resolução de dependências finalizada"
-#: ../output.py:668
+#: ../output.py:1034
#, python-format
msgid "--> Processing Dependency: %s for package: %s"
-msgstr "--> Processando Dependência: %s para o pacote: %s"
+msgstr "--> Processando dependência: %s para o pacote: %s"
-#: ../output.py:673
+#: ../output.py:1039
#, python-format
msgid "--> Unresolved Dependency: %s"
-msgstr "--> Dependência Não Resolvida: %s"
+msgstr "--> Dependência não resolvida: %s"
-#: ../output.py:679
+#: ../output.py:1045
#, python-format
msgid "--> Processing Conflict: %s conflicts %s"
-msgstr "--> Processando Conflito: %s conflita com %s"
+msgstr "--> Processando conflito: %s conflita com %s"
-#: ../output.py:682
+#: ../output.py:1048
msgid "--> Populating transaction set with selected packages. Please wait."
-msgstr ""
-"--> Construindo conjunto de transações com os pacotes selecionados. Por "
-"favor aguarde."
+msgstr "--> Construindo conjunto de transações com os pacotes selecionados. Por favor aguarde."
-#: ../output.py:686
+#: ../output.py:1052
#, python-format
msgid "---> Downloading header for %s to pack into transaction set."
msgstr "--> Baixando cabeçalho do %s para inclusão no conjunto de transações."
-#: ../yumcommands.py:36
+#: ../yumcommands.py:40
msgid "You need to be root to perform this command."
msgstr "Você precisa ser root para executar este comando."
-#: ../yumcommands.py:43
+#: ../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"
@@ -787,10 +899,8 @@ msgid ""
"For more information contact your distribution or package provider.\n"
msgstr ""
"\n"
-"Você habilitou a verificação de pacotes através de chaves GPG. Isso é uma "
-"boa coisa.\n"
-"Entretanto, você não tem nenhuma chave GPG pública instalada. Você precisa "
-"baixar\n"
+"Você habilitou a verificação de pacotes através de chaves GPG. Isso é uma boa coisa.\n"
+"Entretanto, você não tem nenhuma chave GPG pública instalada. Você precisa baixar\n"
"e instalar essas chaves para os pacotes que deseja instalar.\n"
"Você pode fazer isso executando o comando:\n"
" rpm --import public.gpg.key\n"
@@ -800,252 +910,309 @@ msgstr ""
" do repositório, a url da chave que você gostaria de usar\n"
"para ele e o yum irá instalá-la para você.\n"
"\n"
-"Para mais informações contate o fornecedor da sua distribuição ou do "
-"pacote.\n"
+"Para mais informações contate o fornecedor da sua distribuição ou do pacote.\n"
-#: ../yumcommands.py:63
+#: ../yumcommands.py:67
#, python-format
msgid "Error: Need to pass a list of pkgs to %s"
msgstr "Erro: à necessário passar uma lista de pacotes para %s"
-#: ../yumcommands.py:69
+#: ../yumcommands.py:73
msgid "Error: Need an item to match"
msgstr "Erro: à necessário um item para corresponder"
-#: ../yumcommands.py:75
+#: ../yumcommands.py:79
msgid "Error: Need a group or list of groups"
msgstr "Erro: à necessário um grupo ou uma lista de grupos"
-#: ../yumcommands.py:84
+#: ../yumcommands.py:88
#, python-format
msgid "Error: clean requires an option: %s"
msgstr "Erro: a limpeza requer uma opção: %s"
-#: ../yumcommands.py:89
+#: ../yumcommands.py:93
#, python-format
msgid "Error: invalid clean argument: %r"
msgstr "Erro: argumento de limpeza inválido: %r"
-#: ../yumcommands.py:102
+#: ../yumcommands.py:106
msgid "No argument to shell"
msgstr "Nenhum argumento para o shell"
-#: ../yumcommands.py:105
+#: ../yumcommands.py:109
#, python-format
msgid "Filename passed to shell: %s"
msgstr "Nome de arquivo passado para o shell: %s"
-#: ../yumcommands.py:109
+#: ../yumcommands.py:113
#, python-format
msgid "File %s given as argument to shell does not exist."
msgstr "O arquivo %s, passado como um argumento para o shell, não existe."
-#: ../yumcommands.py:115
+#: ../yumcommands.py:119
msgid "Error: more than one file given as argument to shell."
msgstr "Erro: mais de um arquivo passado como argumento para o shell."
-#: ../yumcommands.py:156
+#: ../yumcommands.py:160
msgid "PACKAGE..."
msgstr "PACOTE..."
-#: ../yumcommands.py:159
+#: ../yumcommands.py:163
msgid "Install a package or packages on your system"
msgstr "Instala um ou mais pacotes no seu sistema"
-#: ../yumcommands.py:168
+#: ../yumcommands.py:172
msgid "Setting up Install Process"
-msgstr "Configurando o Processo de Instalação"
+msgstr "Configurando o processo de instalação"
-#: ../yumcommands.py:179
+#: ../yumcommands.py:183
msgid "[PACKAGE...]"
msgstr "[PACOTE...]"
-#: ../yumcommands.py:182
+#: ../yumcommands.py:186
msgid "Update a package or packages on your system"
msgstr "Atualiza um ou mais pacotes do seu sistema"
-#: ../yumcommands.py:190
+#: ../yumcommands.py:194
msgid "Setting up Update Process"
-msgstr "Configurando o Processo de Atualização"
+msgstr "Configurando o processo de atualização"
-#: ../yumcommands.py:204
+#: ../yumcommands.py:236
msgid "Display details about a package or group of packages"
msgstr "Mostra detalhes sobre um pacote ou grupos de pacotes"
-#: ../yumcommands.py:212
+#. Output the packages:
+#: ../yumcommands.py:261
msgid "Installed Packages"
-msgstr "Pacotes Instalados"
+msgstr "Pacotes instalados"
-#: ../yumcommands.py:213
+#: ../yumcommands.py:263
msgid "Available Packages"
-msgstr "Pacotes DisponÃveis"
+msgstr "Pacotes disponÃveis"
-#: ../yumcommands.py:214
+#: ../yumcommands.py:265
msgid "Extra Packages"
-msgstr "Pacotes Extras"
+msgstr "Pacotes extras"
-#: ../yumcommands.py:215
+#: ../yumcommands.py:267
msgid "Updated Packages"
-msgstr "Pacotes Atualizados"
+msgstr "Pacotes atualizados"
-#: ../yumcommands.py:221 ../yumcommands.py:225
+#: ../yumcommands.py:274
+#: ../yumcommands.py:281
msgid "Obsoleting Packages"
-msgstr "Tornando Pacotes Obsoletos"
+msgstr "Tornando pacotes obsoletos"
-#: ../yumcommands.py:226
+#: ../yumcommands.py:283
msgid "Recently Added Packages"
-msgstr "Pacotes Adicionados Recentemente"
+msgstr "Pacotes adicionados recentemente"
-#: ../yumcommands.py:232
+#: ../yumcommands.py:290
msgid "No matching Packages to list"
-msgstr "Nenhum Pacote Correspondente para Listar"
+msgstr "Nenhum pacote correspondente a ser listado"
-#: ../yumcommands.py:246
+#: ../yumcommands.py:304
msgid "List a package or groups of packages"
msgstr "Lista um pacote ou grupos de pacotes"
-#: ../yumcommands.py:258
+#: ../yumcommands.py:316
msgid "Remove a package or packages from your system"
msgstr "Remove um ou mais pacotes do seu sistema"
-#: ../yumcommands.py:266
+#: ../yumcommands.py:324
msgid "Setting up Remove Process"
-msgstr "Configurando o Processo de Remoção"
+msgstr "Configurando o processo de remoção"
-#: ../yumcommands.py:278
+#: ../yumcommands.py:339
msgid "Setting up Group Process"
-msgstr "Configurando Processo de Grupos"
+msgstr "Configurando o processo de grupos"
-#: ../yumcommands.py:284
+#: ../yumcommands.py:345
msgid "No Groups on which to run command"
msgstr "Não há grupos nos quais executar o comando"
-#: ../yumcommands.py:297
+#: ../yumcommands.py:358
msgid "List available package groups"
msgstr "Lista os grupos de pacotes disponÃveis"
-#: ../yumcommands.py:314
+#: ../yumcommands.py:375
msgid "Install the packages in a group on your system"
msgstr "Instala pacotes em um grupo ou no seu sistema"
-#: ../yumcommands.py:336
+#: ../yumcommands.py:397
msgid "Remove the packages in a group from your system"
msgstr "Remove pacotes de um grupo ou do seu sistema"
-#: ../yumcommands.py:360
+#: ../yumcommands.py:424
msgid "Display details about a package group"
msgstr "Mostra detalhes sobre um grupo de pacotes"
-#: ../yumcommands.py:384
+#: ../yumcommands.py:448
msgid "Generate the metadata cache"
msgstr "Gera o cache de metadados"
-#: ../yumcommands.py:390
+#: ../yumcommands.py:454
msgid "Making cache files for all metadata files."
msgstr "Realizando cache de arquivos para todos os metadados."
-#: ../yumcommands.py:391
+#: ../yumcommands.py:455
msgid "This may take a while depending on the speed of this computer"
msgstr "Isso pode demorar um pouco, dependendo da velocidade deste computador"
-#: ../yumcommands.py:412
+#: ../yumcommands.py:476
msgid "Metadata Cache Created"
-msgstr "Cache de Metadados Criado"
+msgstr "Cache de metadados criado"
-#: ../yumcommands.py:426
+#: ../yumcommands.py:490
msgid "Remove cached data"
msgstr "Remove os dados do cache"
-#: ../yumcommands.py:447
+#: ../yumcommands.py:511
msgid "Find what package provides the given value"
msgstr "Localiza qual pacote fornece o valor dado"
-#: ../yumcommands.py:467
+#: ../yumcommands.py:531
msgid "Check for available package updates"
msgstr "Verifica por atualizações de pacotes disponÃveis"
-#: ../yumcommands.py:490
+#: ../yumcommands.py:556
msgid "Search package details for the given string"
msgstr "Pesquisa detalhes do pacote para a string fornecida"
-#: ../yumcommands.py:496
+#: ../yumcommands.py:562
msgid "Searching Packages: "
-msgstr "Pesquisando por Pacotes:"
+msgstr "Pesquisando por pacotes:"
-#: ../yumcommands.py:513
+#: ../yumcommands.py:579
msgid "Update packages taking obsoletes into account"
msgstr "Atualiza pacotes levando em conta os obsoletos"
-#: ../yumcommands.py:522
+#: ../yumcommands.py:588
msgid "Setting up Upgrade Process"
-msgstr "Configurando o Processo de Atualização"
+msgstr "Configurando o processo de atualização"
-#: ../yumcommands.py:536
+#: ../yumcommands.py:602
msgid "Install a local RPM"
msgstr "Instala um RPM local"
-#: ../yumcommands.py:545
+#: ../yumcommands.py:611
msgid "Setting up Local Package Process"
-msgstr "Configurando o Processo de Pacote Local"
+msgstr "Configurando o processo de pacote local"
-#: ../yumcommands.py:564
+#: ../yumcommands.py:630
msgid "Determine which package provides the given dependency"
msgstr "Determina qual pacote fornece a dependência dada"
-#: ../yumcommands.py:567
+#: ../yumcommands.py:633
msgid "Searching Packages for Dependency:"
-msgstr "Pesquisando Pacotes por Dependência:"
+msgstr "Pesquisando pacotes por dependência:"
-#: ../yumcommands.py:581
+#: ../yumcommands.py:647
msgid "Run an interactive yum shell"
msgstr "Executa um shell interativo do yum"
-#: ../yumcommands.py:587
+#: ../yumcommands.py:653
msgid "Setting up Yum Shell"
-msgstr "Configurando o Shell do Yum"
+msgstr "Configurando o shell do Yum"
-#: ../yumcommands.py:605
+#: ../yumcommands.py:671
msgid "List a package's dependencies"
msgstr "Lista as dependências de um pacote"
-#: ../yumcommands.py:611
+#: ../yumcommands.py:677
msgid "Finding dependencies: "
msgstr "Localizando dependências:"
-#: ../yumcommands.py:627
+#: ../yumcommands.py:693
msgid "Display the configured software repositories"
msgstr "Exibe os repositórios de software configurados"
-#: ../yumcommands.py:645
+#: ../yumcommands.py:742
+msgid "enabled"
+msgstr "habilitado"
+
+#: ../yumcommands.py:751
+msgid "disabled"
+msgstr "desabilitado"
+
+#: ../yumcommands.py:760
msgid "repo id"
msgstr "id do repo"
-#: ../yumcommands.py:645
+#: ../yumcommands.py:761
msgid "repo name"
msgstr "nome do repo"
-#: ../yumcommands.py:645
+#: ../yumcommands.py:761
msgid "status"
msgstr "status"
-#: ../yumcommands.py:651
-msgid "enabled"
-msgstr "habilitado"
+#: ../yumcommands.py:765
+msgid "Repo-id : "
+msgstr "Repo-id : "
-#: ../yumcommands.py:654
-msgid "disabled"
-msgstr "desabilitado"
+#: ../yumcommands.py:766
+msgid "Repo-name : "
+msgstr "Repo-name : "
-#: ../yumcommands.py:671
+#: ../yumcommands.py:767
+msgid "Repo-status : "
+msgstr "Repo-status : "
+
+#: ../yumcommands.py:769
+msgid "Repo-revision: "
+msgstr "Repo-revision: "
+
+#: ../yumcommands.py:773
+msgid "Repo-tags : "
+msgstr "Repo-tags : "
+
+#: ../yumcommands.py:779
+msgid "Repo-distro-tags: "
+msgstr "Repo-distro-tags: "
+
+#: ../yumcommands.py:784
+msgid "Repo-updated: "
+msgstr "Repo-updated: "
+
+#: ../yumcommands.py:786
+msgid "Repo-pkgs : "
+msgstr "Repo-pkgs : "
+
+#: ../yumcommands.py:787
+msgid "Repo-size : "
+msgstr "Repo-size : "
+
+#: ../yumcommands.py:794
+msgid "Repo-baseurl: "
+msgstr "Repo-baseurl: "
+
+#: ../yumcommands.py:798
+msgid "Repo-metalink: "
+msgstr "Repo-metalink: "
+
+#: ../yumcommands.py:801
+msgid "Repo-mirrors: "
+msgstr "Repo-mirrors: "
+
+#: ../yumcommands.py:805
+msgid "Repo-exclude: "
+msgstr "Repo-exclude: "
+
+#: ../yumcommands.py:809
+msgid "Repo-include: "
+msgstr "Repo-include: "
+
+#: ../yumcommands.py:835
msgid "Display a helpful usage message"
msgstr "Exibe uma mensagem de uso para ajuda"
-#: ../yumcommands.py:705
+#: ../yumcommands.py:869
#, python-format
msgid "No help available for %s"
msgstr "Nenhuma ajuda disponÃvel para %s"
-#: ../yumcommands.py:710
+#: ../yumcommands.py:874
msgid ""
"\n"
"\n"
@@ -1055,7 +1222,7 @@ msgstr ""
"\n"
"apelidos: "
-#: ../yumcommands.py:712
+#: ../yumcommands.py:876
msgid ""
"\n"
"\n"
@@ -1065,11 +1232,11 @@ msgstr ""
"\n"
"apelido: "
-#: ../yumcommands.py:741
+#: ../yumcommands.py:905
msgid "Setting up Reinstall Process"
-msgstr "Configurando o Processo de Reinstalação"
+msgstr "Configurando o processo de reinstalação"
-#: ../yumcommands.py:755
+#: ../yumcommands.py:919
msgid "reinstall a package"
msgstr "reinstala um pacote"
@@ -1091,43 +1258,42 @@ msgid ""
msgstr ""
"\n"
"\n"
-"Saindo por um Pipe Defeituoso"
+"Saindo por um pipe defeituoso"
-#: ../yummain.py:105
-msgid ""
-"Another app is currently holding the yum lock; waiting for it to exit..."
-msgstr ""
-"Outra aplicação está retendo o bloqueio do yum; esperando por ele para "
-"sair..."
+#: ../yummain.py:98
+msgid "Another app is currently holding the yum lock; waiting for it to exit..."
+msgstr "Outra aplicação está retendo o bloqueio do yum; esperando por ele para sair..."
-#: ../yummain.py:132 ../yummain.py:171
+#: ../yummain.py:125
+#: ../yummain.py:164
#, python-format
msgid "Error: %s"
msgstr "Error: %s"
-#: ../yummain.py:142 ../yummain.py:178
+#: ../yummain.py:135
+#: ../yummain.py:171
#, python-format
msgid "Unknown Error(s): Exit Code: %d:"
-msgstr "Erro(s) Desconhecido(s): Código de SaÃda: %d:"
+msgstr "Erro(s) desconhecido(s): código de saÃda: %d:"
#. Depsolve stage
-#: ../yummain.py:149
+#: ../yummain.py:142
msgid "Resolving Dependencies"
-msgstr "Resolvendo Dependências"
+msgstr "Resolvendo dependências"
-#: ../yummain.py:184
+#: ../yummain.py:177
msgid ""
"\n"
"Dependencies Resolved"
msgstr ""
"\n"
-"Dependências Resolvidas"
+"Dependências resolvidas"
-#: ../yummain.py:198
+#: ../yummain.py:191
msgid "Complete!"
msgstr "ConcluÃdo!"
-#: ../yummain.py:245
+#: ../yummain.py:238
msgid ""
"\n"
"\n"
@@ -1137,323 +1303,315 @@ msgstr ""
"\n"
"Saindo pelo cancelamento do usuário."
-#: ../yum/depsolve.py:82
+#: ../yum/depsolve.py:84
msgid "doTsSetup() will go away in a future version of Yum.\n"
msgstr "doTsSetup() será removida em uma futura versão do Yum.\n"
-#: ../yum/depsolve.py:95
+#: ../yum/depsolve.py:97
msgid "Setting up TransactionSets before config class is up"
-msgstr ""
-"Configurando TransactionSets antes da ativação da classe de configuração"
+msgstr "Configurando TransactionSets antes da ativação da classe de configuração"
-#: ../yum/depsolve.py:136
+#: ../yum/depsolve.py:148
#, python-format
msgid "Invalid tsflag in config file: %s"
msgstr "tsflag inválido no arquivo de configuração: %s"
-#: ../yum/depsolve.py:147
+#: ../yum/depsolve.py:159
#, python-format
msgid "Searching pkgSack for dep: %s"
msgstr "Pesquisando pkgSack para a dep.: %s"
-#: ../yum/depsolve.py:170
+#: ../yum/depsolve.py:182
#, python-format
msgid "Potential match for %s from %s"
msgstr "Correspondência potencial para o %s a partir de %s"
-#: ../yum/depsolve.py:178
+#: ../yum/depsolve.py:190
#, python-format
msgid "Matched %s to require for %s"
msgstr "%s encontrado para solicitar o %s"
-#: ../yum/depsolve.py:219
+#: ../yum/depsolve.py:231
#, python-format
msgid "Member: %s"
msgstr "Membro: %s"
-#: ../yum/depsolve.py:233 ../yum/depsolve.py:696
+#: ../yum/depsolve.py:245
+#: ../yum/depsolve.py:732
#, python-format
msgid "%s converted to install"
msgstr "%s convertido para instalar"
-#: ../yum/depsolve.py:240
+#: ../yum/depsolve.py:252
#, python-format
msgid "Adding Package %s in mode %s"
-msgstr "Adicionando Pacote %s ao modo %s"
+msgstr "Adicionando pacote %s no modo %s"
-#: ../yum/depsolve.py:250
+#: ../yum/depsolve.py:262
#, python-format
msgid "Removing Package %s"
-msgstr "Removendo Pacote %s"
+msgstr "Removendo pacote %s"
-#: ../yum/depsolve.py:261
+#: ../yum/depsolve.py:273
#, python-format
msgid "%s requires: %s"
msgstr "%s requer: %s"
-#: ../yum/depsolve.py:312
+#: ../yum/depsolve.py:331
msgid "Needed Require has already been looked up, cheating"
msgstr "O requerimento necessário já foi localizado, enganando"
-#: ../yum/depsolve.py:322
+#: ../yum/depsolve.py:341
#, python-format
msgid "Needed Require is not a package name. Looking up: %s"
msgstr "O requerimento necessário não é o nome de um pacote. Localizando: %s"
-#: ../yum/depsolve.py:329
+#: ../yum/depsolve.py:348
#, python-format
msgid "Potential Provider: %s"
msgstr "Fornecedor em potencial: %s"
-#: ../yum/depsolve.py:352
+#: ../yum/depsolve.py:371
#, python-format
msgid "Mode is %s for provider of %s: %s"
msgstr "O modo é %s para o fornecedor do %s: %s"
-#: ../yum/depsolve.py:356
+#: ../yum/depsolve.py:375
#, python-format
msgid "Mode for pkg providing %s: %s"
msgstr "Modo para o pacote que fornece o %s: %s"
-#: ../yum/depsolve.py:360
+#: ../yum/depsolve.py:379
#, python-format
msgid "TSINFO: %s package requiring %s marked as erase"
msgstr "TSINFO: o pacote %s que requer o %s foi marcado para remoção"
-#: ../yum/depsolve.py:372
+#: ../yum/depsolve.py:391
#, python-format
msgid "TSINFO: Obsoleting %s with %s to resolve dep."
msgstr "TSINFO: Tornando %s obsoleto com o %s para resolver a dependência."
-#: ../yum/depsolve.py:375
+#: ../yum/depsolve.py:394
#, python-format
msgid "TSINFO: Updating %s to resolve dep."
msgstr "TSINFO: Atualizando %s para resolver a dependência."
-#: ../yum/depsolve.py:378
+#: ../yum/depsolve.py:402
#, python-format
msgid "Cannot find an update path for dep for: %s"
-msgstr ""
-"Não foi possÃvel encontrar um caminho de atualização para a dep. para: %s"
+msgstr "Não foi possÃvel encontrar um caminho de atualização para a dep. para: %s"
-#: ../yum/depsolve.py:388
+#: ../yum/depsolve.py:412
#, python-format
msgid "Unresolvable requirement %s for %s"
msgstr "Requerimento %s insolúvel para o %s"
+#: ../yum/depsolve.py:435
+#, python-format
+msgid "Quick matched %s to require for %s"
+msgstr "%s localizado rapidamente a ser requerido por %s"
+
#. is it already installed?
-#: ../yum/depsolve.py:434
+#: ../yum/depsolve.py:477
#, python-format
msgid "%s is in providing packages but it is already installed, removing."
msgstr "%s está nos pacotes fornecedores mas já está instalado, removendo."
-#: ../yum/depsolve.py:449
+#: ../yum/depsolve.py:492
#, python-format
msgid "Potential resolving package %s has newer instance in ts."
msgstr "O pacote de solução em potencial %s tem uma instância mais nova no ct."
-#: ../yum/depsolve.py:460
+#: ../yum/depsolve.py:503
#, python-format
msgid "Potential resolving package %s has newer instance installed."
-msgstr ""
-"O pacote de solução em potencial %s tem uma instância mais nova instalada."
+msgstr "O pacote de solução em potencial %s tem uma instância mais nova instalada."
-#: ../yum/depsolve.py:468 ../yum/depsolve.py:527
+#: ../yum/depsolve.py:511
+#: ../yum/depsolve.py:560
#, python-format
msgid "Missing Dependency: %s is needed by package %s"
-msgstr "Dependência Faltando: %s é requerido pelo pacote %s"
+msgstr "Dependência faltando: %s é requerido pelo pacote %s"
-#: ../yum/depsolve.py:481
+#: ../yum/depsolve.py:524
#, python-format
msgid "%s already in ts, skipping this one"
msgstr "%s já está no ct, pulando esse"
-#: ../yum/depsolve.py:510
-#, python-format
-msgid ""
-"Failure finding best provider of %s for %s, exceeded maximum loop length"
-msgstr ""
-"Falha ao encontrar o melhor fornecedor de %s para %s, tamanho máximo do loop "
-"excedido"
-
-#: ../yum/depsolve.py:537
+#: ../yum/depsolve.py:570
#, python-format
msgid "TSINFO: Marking %s as update for %s"
msgstr "TSINFO: Marcando %s como uma atualização para o %s"
-#: ../yum/depsolve.py:544
+#: ../yum/depsolve.py:578
#, python-format
msgid "TSINFO: Marking %s as install for %s"
msgstr "TSINFO: Marcando %s como uma instalação para o %s"
-#: ../yum/depsolve.py:635 ../yum/depsolve.py:714
+#: ../yum/depsolve.py:670
+#: ../yum/depsolve.py:750
msgid "Success - empty transaction"
msgstr "Sucesso - transação vazia"
-#: ../yum/depsolve.py:673 ../yum/depsolve.py:686
+#: ../yum/depsolve.py:709
+#: ../yum/depsolve.py:722
msgid "Restarting Loop"
-msgstr "Reiniciando o Loop"
+msgstr "Reiniciando o loop"
-#: ../yum/depsolve.py:702
+#: ../yum/depsolve.py:738
msgid "Dependency Process ending"
-msgstr "Término do Processo de Dependências"
+msgstr "Término do processo de dependências"
-#: ../yum/depsolve.py:708
+#: ../yum/depsolve.py:744
#, python-format
msgid "%s from %s has depsolving problems"
msgstr "%s a partir de %s tem problemas de resolução de dependências"
-#: ../yum/depsolve.py:715
+#: ../yum/depsolve.py:751
msgid "Success - deps resolved"
msgstr "Sucesso - dependências resolvidas"
-#: ../yum/depsolve.py:729
+#: ../yum/depsolve.py:765
#, python-format
msgid "Checking deps for %s"
msgstr "Verificando dependências para %s"
-#: ../yum/depsolve.py:782
+#: ../yum/depsolve.py:848
#, python-format
msgid "looking for %s as a requirement of %s"
msgstr "procurando por %s como um requerimento do %s"
-#: ../yum/depsolve.py:933
+#: ../yum/depsolve.py:988
#, python-format
-msgid "Comparing best: %s to po: %s"
-msgstr "Comparando melhor: %s para po: %s"
+msgid "Running compare_providers() for %s"
+msgstr "Executando compare_providers() para %s"
-#: ../yum/depsolve.py:937
-#, python-format
-msgid "Same: best %s == po: %s"
-msgstr "Igual: melhor %s == po: %s"
-
-#: ../yum/depsolve.py:952 ../yum/depsolve.py:963
-#, python-format
-msgid "best %s obsoletes po: %s"
-msgstr "melhor %s torna po obsoleto: %s"
-
-#: ../yum/depsolve.py:955
-#, python-format
-msgid "po %s obsoletes best: %s"
-msgstr "po %s torna melhor obsoleto: %s"
-
-#: ../yum/depsolve.py:972 ../yum/depsolve.py:979 ../yum/depsolve.py:1036
+#: ../yum/depsolve.py:1016
+#: ../yum/depsolve.py:1022
#, python-format
msgid "better arch in po %s"
msgstr "melhor arquitetura no po %s"
-#: ../yum/depsolve.py:988 ../yum/depsolve.py:1010
+#: ../yum/depsolve.py:1061
#, python-format
-msgid "po %s shares a sourcerpm with %s"
-msgstr "po %s compartilha um sourcerpm com %s"
+msgid "%s obsoletes %s"
+msgstr "%s torna %s obsoleto"
-#: ../yum/depsolve.py:992 ../yum/depsolve.py:1015
+#: ../yum/depsolve.py:1077
#, python-format
-msgid "best %s shares a sourcerpm with %s"
-msgstr "melhor %s compartilha um sourcerpm com %s"
+msgid ""
+"archdist compared %s to %s on %s\n"
+" Winner: %s"
+msgstr ""
+"archdist comparou %s com %s em %s\n"
+" Vencedor: %s"
-#: ../yum/depsolve.py:999 ../yum/depsolve.py:1020
+#: ../yum/depsolve.py:1084
#, python-format
-msgid "po %s shares more of the name prefix with %s"
-msgstr "po %s compartilha mais do prefixo do nome com %s"
+msgid "common sourcerpm %s and %s"
+msgstr "Sourcerpm comum %s e %s"
-#: ../yum/depsolve.py:1003 ../yum/depsolve.py:1029
+#: ../yum/depsolve.py:1090
#, python-format
-msgid "po %s has a shorter name than best %s"
-msgstr "po %s tem um nome mais curto do que o melhor %s"
+msgid "common prefix of %s between %s and %s"
+msgstr "prefixo comum de %s entre %s e %s"
-#: ../yum/depsolve.py:1025
+#: ../yum/depsolve.py:1098
#, python-format
-msgid "bestpkg %s shares more of the name prefix with %s"
-msgstr "bestpkg %s compartilha mais do prefixo do nome com %s"
+msgid "Best Order: %s"
+msgstr "Melhor ordem: %s"
-#: ../yum/__init__.py:119
+#: ../yum/__init__.py:134
msgid "doConfigSetup() will go away in a future version of Yum.\n"
msgstr "doConfigSetup() será removida em uma futura versão do Yum.\n"
-#: ../yum/__init__.py:296
+#: ../yum/__init__.py:314
#, python-format
msgid "Repository %r is missing name in configuration, using id"
msgstr "O repositório %r não tem nome na configuração, usando o id"
-#: ../yum/__init__.py:332
+#: ../yum/__init__.py:352
msgid "plugins already initialised"
msgstr "plugins já inicializados"
-#: ../yum/__init__.py:339
+#: ../yum/__init__.py:359
msgid "doRpmDBSetup() will go away in a future version of Yum.\n"
msgstr "doRpmDBSetup() será removida em uma futura versão do Yum.\n"
-#: ../yum/__init__.py:349
+#: ../yum/__init__.py:369
msgid "Reading Local RPMDB"
-msgstr "Lendo RPMDB Local"
+msgstr "Lendo RPMDB local"
-#: ../yum/__init__.py:367
+#: ../yum/__init__.py:387
msgid "doRepoSetup() will go away in a future version of Yum.\n"
msgstr "doRepoSetup() será removida em uma futura versão do Yum.\n"
-#: ../yum/__init__.py:387
+#: ../yum/__init__.py:407
msgid "doSackSetup() will go away in a future version of Yum.\n"
msgstr "doSackSetup() será removida em uma futura versão do Yum.\n"
-#: ../yum/__init__.py:404
+#: ../yum/__init__.py:424
msgid "Setting up Package Sacks"
-msgstr "Configurando Sacos de Pacotes"
+msgstr "Configurando sacos de pacotes"
-#: ../yum/__init__.py:447
+#: ../yum/__init__.py:467
#, python-format
msgid "repo object for repo %s lacks a _resetSack method\n"
msgstr "o objeto de repositório para o %s necessita de um método _resetSack\n"
-#: ../yum/__init__.py:448
+#: ../yum/__init__.py:468
msgid "therefore this repo cannot be reset.\n"
msgstr "conseqüentemente este repo não pode ser restaurado.\n"
-#: ../yum/__init__.py:453
+#: ../yum/__init__.py:473
msgid "doUpdateSetup() will go away in a future version of Yum.\n"
msgstr "doUpdateSetup() será removida em uma futura versão do Yum.\n"
-#: ../yum/__init__.py:465
+#: ../yum/__init__.py:485
msgid "Building updates object"
msgstr "Construindo objeto de atualizações"
-#: ../yum/__init__.py:496
+#: ../yum/__init__.py:516
msgid "doGroupSetup() will go away in a future version of Yum.\n"
msgstr "doGroupSetup() será removida em uma futura versão do Yum.\n"
-#: ../yum/__init__.py:520
+#: ../yum/__init__.py:540
msgid "Getting group metadata"
msgstr "Obtendo metadados do grupo"
-#: ../yum/__init__.py:546
+#: ../yum/__init__.py:566
#, python-format
msgid "Adding group file from repository: %s"
msgstr "Adicionando arquivo de grupo a partir do repositório: %s"
-#: ../yum/__init__.py:555
+#: ../yum/__init__.py:575
#, python-format
msgid "Failed to add groups file for repository: %s - %s"
msgstr "Falha ao adicionar o arquivo de grupos para o repositório: %s - %s"
-#: ../yum/__init__.py:561
+#: ../yum/__init__.py:581
msgid "No Groups Available in any repository"
msgstr "Nenhum grupo disponÃvel em nenhum repositório"
-#: ../yum/__init__.py:611
+#: ../yum/__init__.py:631
msgid "Importing additional filelist information"
msgstr "Importando informações adicionais da lista de arquivos"
-#: ../yum/__init__.py:657
+#: ../yum/__init__.py:640
+msgid "There are unfinished transactions remaining. You might consider running yum-complete-transaction first to finish them."
+msgstr "Há transações não finalizadas restantes. Você pode considerar executar o yum-complete-transaction primeiro para finalizá-las."
+
+#: ../yum/__init__.py:690
#, python-format
msgid "Skip-broken round %i"
msgstr "Rodada de ignoração de dependências quebradas %i"
-#: ../yum/__init__.py:680
+#: ../yum/__init__.py:713
#, python-format
msgid "Skip-broken took %i rounds "
msgstr "A ignoração de dependências quebradas levou %i rodadas"
-#: ../yum/__init__.py:681
+#: ../yum/__init__.py:714
msgid ""
"\n"
"Packages skipped because of dependency problems:"
@@ -1461,455 +1619,521 @@ msgstr ""
"\n"
"Pacotes ignorados devido a problemas de dependências:"
-#: ../yum/__init__.py:685
+#: ../yum/__init__.py:718
#, python-format
msgid " %s from %s"
msgstr " %s a partir de %s"
-#: ../yum/__init__.py:774
+#: ../yum/__init__.py:803
+msgid "Warning: scriptlet or other non-fatal errors occurred during transaction."
+msgstr "Aviso: scriptlet ou outros erros não fatais ocorreram durante a transação."
+
+#: ../yum/__init__.py:819
#, python-format
msgid "Failed to remove transaction file %s"
msgstr "Falha ao remover o arquivo de transação %s"
-#: ../yum/__init__.py:814
+#: ../yum/__init__.py:860
#, python-format
msgid "excluding for cost: %s from %s"
msgstr "excluindo para custo: %s a partir de %s"
-#: ../yum/__init__.py:845
+#: ../yum/__init__.py:891
msgid "Excluding Packages in global exclude list"
msgstr "Excluindo pacotes na lista global de excluÃdos"
-#: ../yum/__init__.py:847
+#: ../yum/__init__.py:893
#, python-format
msgid "Excluding Packages from %s"
-msgstr "Excluindo Pacotes de %s"
+msgstr "Excluindo pacotes de %s"
-#: ../yum/__init__.py:875
+#: ../yum/__init__.py:920
#, python-format
msgid "Reducing %s to included packages only"
msgstr "Reduzindo %s apenas aos pacotes inclusos"
-#: ../yum/__init__.py:880
+#: ../yum/__init__.py:926
#, python-format
msgid "Keeping included package %s"
msgstr "Mantendo o pacote incluso %s"
-#: ../yum/__init__.py:886
+#: ../yum/__init__.py:932
#, python-format
msgid "Removing unmatched package %s"
msgstr "Removendo pacote não encontrado %s"
-#: ../yum/__init__.py:889
+#: ../yum/__init__.py:935
msgid "Finished"
msgstr "ConcluÃdo"
#. Whoa. What the heck happened?
-#: ../yum/__init__.py:919
+#: ../yum/__init__.py:965
#, python-format
msgid "Unable to check if PID %s is active"
msgstr "Não foi possÃvel verificar se o PID %s está ativo"
#. Another copy seems to be running.
-#: ../yum/__init__.py:923
+#: ../yum/__init__.py:969
#, python-format
msgid "Existing lock %s: another copy is running as pid %s."
msgstr "Bloqueio existente em %s: outra cópia está em execução com o pid %s."
-#: ../yum/__init__.py:970 ../yum/__init__.py:977
+#: ../yum/__init__.py:1040
msgid "Package does not match intended download"
msgstr "O pacote não corresponde ao download pretendido"
-#: ../yum/__init__.py:991
+#: ../yum/__init__.py:1055
msgid "Could not perform checksum"
msgstr "Não foi possÃvel realizar a soma de verificação"
-#: ../yum/__init__.py:994
+#: ../yum/__init__.py:1058
msgid "Package does not match checksum"
msgstr "O pacote não corresponde à soma de verificação"
-#: ../yum/__init__.py:1036
+#: ../yum/__init__.py:1101
#, python-format
msgid "package fails checksum but caching is enabled for %s"
-msgstr ""
-"o pacote falhou na soma de verificação mas o cache está habilitado para o %s"
+msgstr "o pacote falhou na soma de verificação mas o cache está habilitado para o %s"
-#: ../yum/__init__.py:1042
+#: ../yum/__init__.py:1104
#, python-format
msgid "using local copy of %s"
msgstr "usando cópia local do %s"
-#: ../yum/__init__.py:1061
+#: ../yum/__init__.py:1131
#, python-format
-msgid "Insufficient space in download directory %s to download"
-msgstr "Espaço insuficiente no diretório de download %s para baixar o arquivo"
+msgid ""
+"Insufficient space in download directory %s\n"
+" * free %s\n"
+" * needed %s"
+msgstr ""
+"Espaço insuficiente no diretório de download %s\n"
+" * livre %s\n"
+" * necessário %s"
-#: ../yum/__init__.py:1094
+#: ../yum/__init__.py:1178
msgid "Header is not complete."
msgstr "O cabeçalho não está completo."
-#: ../yum/__init__.py:1134
+#: ../yum/__init__.py:1218
#, python-format
-msgid ""
-"Header not in local cache and caching-only mode enabled. Cannot download %s"
-msgstr ""
-"O cabeçalho não está no cache local e o modo de somente cache está "
-"habilitado. Não foi possÃvel baixar o %s."
+msgid "Header not in local cache and caching-only mode enabled. Cannot download %s"
+msgstr "O cabeçalho não está no cache local e o modo de somente cache está habilitado. Não foi possÃvel baixar o %s."
-#: ../yum/__init__.py:1189
+#: ../yum/__init__.py:1273
#, python-format
msgid "Public key for %s is not installed"
msgstr "A chave pública para o %s não está instalada"
-#: ../yum/__init__.py:1193
+#: ../yum/__init__.py:1277
#, python-format
msgid "Problem opening package %s"
msgstr "Problema ao abrir o pacote %s"
-#: ../yum/__init__.py:1201
+#: ../yum/__init__.py:1285
#, python-format
msgid "Public key for %s is not trusted"
msgstr "A chave pública para o %s não é confiável"
-#: ../yum/__init__.py:1205
+#: ../yum/__init__.py:1289
#, python-format
msgid "Package %s is not signed"
msgstr "O pacote %s não está assinado"
-#: ../yum/__init__.py:1243
+#: ../yum/__init__.py:1327
#, python-format
msgid "Cannot remove %s"
msgstr "Não foi possÃvel remover %s"
-#: ../yum/__init__.py:1247
+#: ../yum/__init__.py:1331
#, python-format
msgid "%s removed"
msgstr "%s removido"
-#: ../yum/__init__.py:1283
+#: ../yum/__init__.py:1368
#, python-format
msgid "Cannot remove %s file %s"
msgstr "Não foi possÃvel remover %s arquivo %s"
-#: ../yum/__init__.py:1287
+#: ../yum/__init__.py:1372
#, python-format
msgid "%s file %s removed"
msgstr "%s arquivo %s removido"
-#: ../yum/__init__.py:1289
+#: ../yum/__init__.py:1374
#, python-format
msgid "%d %s files removed"
msgstr "%d %s arquivos removidos"
-#: ../yum/__init__.py:1329
+#: ../yum/__init__.py:1436
#, python-format
msgid "More than one identical match in sack for %s"
msgstr "Mais de uma correspondência idêntica no saco para %s"
-#: ../yum/__init__.py:1335
+#: ../yum/__init__.py:1442
#, python-format
msgid "Nothing matches %s.%s %s:%s-%s from update"
msgstr "Nada corresponde ao %s.%s %s:%s-%s a partir da atualização"
-#: ../yum/__init__.py:1543
-msgid ""
-"searchPackages() will go away in a future version of "
-"Yum. Use searchGenerator() instead. \n"
-msgstr ""
-"searchPackages() será removida em uma futura versão do Yum. Ao invés disso, "
-"use a searchGenerator().\n"
+#: ../yum/__init__.py:1650
+msgid "searchPackages() will go away in a future version of Yum. Use searchGenerator() instead. \n"
+msgstr "searchPackages() será removida em uma futura versão do Yum. Ao invés disso, use a searchGenerator().\n"
-#: ../yum/__init__.py:1580
+#: ../yum/__init__.py:1688
#, python-format
msgid "Searching %d packages"
msgstr "Pesquisando por %d pacotes"
-#: ../yum/__init__.py:1584
+#: ../yum/__init__.py:1692
#, python-format
msgid "searching package %s"
msgstr "pesquisando pelo pacote %s"
-#: ../yum/__init__.py:1596
+#: ../yum/__init__.py:1704
msgid "searching in file entries"
msgstr "pesquisando nas entradas do arquivo"
-#: ../yum/__init__.py:1603
+#: ../yum/__init__.py:1711
msgid "searching in provides entries"
msgstr "pesquisando nas entradas dos fornecimentos"
-#: ../yum/__init__.py:1633
+#: ../yum/__init__.py:1744
#, python-format
msgid "Provides-match: %s"
msgstr "Fornecimento combina com: %s"
-#: ../yum/__init__.py:1702 ../yum/__init__.py:1720 ../yum/__init__.py:1748
-#: ../yum/__init__.py:1753 ../yum/__init__.py:1808 ../yum/__init__.py:1812
+#: ../yum/__init__.py:1793
+msgid "No group data available for configured repositories"
+msgstr "Nenhum dado de grupos disponÃvel para os repositório configurados"
+
+#: ../yum/__init__.py:1819
+#: ../yum/__init__.py:1838
+#: ../yum/__init__.py:1869
+#: ../yum/__init__.py:1875
+#: ../yum/__init__.py:1948
+#: ../yum/__init__.py:1952
#, python-format
msgid "No Group named %s exists"
msgstr "Não existe nenhum grupo de nome %s"
-#: ../yum/__init__.py:1731 ../yum/__init__.py:1824
+#: ../yum/__init__.py:1850
+#: ../yum/__init__.py:1965
#, python-format
msgid "package %s was not marked in group %s"
msgstr "o pacote %s não foi marcado no grupo %s"
-#: ../yum/__init__.py:1770
+#: ../yum/__init__.py:1897
#, python-format
msgid "Adding package %s from group %s"
msgstr "Adicionando o pacote %s do grupo %s"
-#: ../yum/__init__.py:1774
+#: ../yum/__init__.py:1901
#, python-format
msgid "No package named %s available to be installed"
msgstr "Nenhum pacote de nome %s disponÃvel para ser instalado"
-#: ../yum/__init__.py:1849
+#: ../yum/__init__.py:1990
#, python-format
msgid "Package tuple %s could not be found in packagesack"
msgstr "A tupla %s do pacote não pôde ser encontrada no packagesack"
-#: ../yum/__init__.py:1917 ../yum/__init__.py:1960
+#: ../yum/__init__.py:2005
+msgid "getInstalledPackageObject() will go away, use self.rpmdb.searchPkgTuple().\n"
+msgstr "getInstalledPackageObject() será deixada de lado, use a self.rpmdb.searchPkgTuple().\n"
+
+#: ../yum/__init__.py:2057
+#: ../yum/__init__.py:2100
msgid "Invalid versioned dependency string, try quoting it."
msgstr "String de dependência versionada inválida, tente citá-la."
-#: ../yum/__init__.py:1919 ../yum/__init__.py:1962
+#: ../yum/__init__.py:2059
+#: ../yum/__init__.py:2102
msgid "Invalid version flag"
msgstr "Sinalizador de versão inválido"
-#: ../yum/__init__.py:1934 ../yum/__init__.py:1938
+#: ../yum/__init__.py:2074
+#: ../yum/__init__.py:2078
#, python-format
msgid "No Package found for %s"
msgstr "Nenhum pacote encontrado para %s"
-#: ../yum/__init__.py:2066
+#: ../yum/__init__.py:2277
msgid "Package Object was not a package object instance"
-msgstr "O Pacote de Objeto não era uma instância de pacote de objeto"
+msgstr "O pacote de objeto não era uma instância de pacote de objeto"
-#: ../yum/__init__.py:2070
+#: ../yum/__init__.py:2281
msgid "Nothing specified to install"
msgstr "Nada especificado para instalar"
#. only one in there
-#: ../yum/__init__.py:2085
+#: ../yum/__init__.py:2299
#, python-format
msgid "Checking for virtual provide or file-provide for %s"
msgstr "Verificando por fornecimento virtual ou de arquivo para %s"
-#: ../yum/__init__.py:2091 ../yum/__init__.py:2380
+#: ../yum/__init__.py:2305
+#: ../yum/__init__.py:2681
#, python-format
msgid "No Match for argument: %s"
msgstr "Nenhuma correspondência para o argumento: %s"
-#. FIXME - this is where we could check to see if it already installed
-#. for returning better errors
-#: ../yum/__init__.py:2146
+#: ../yum/__init__.py:2371
+#, python-format
+msgid "Package %s installed and not available"
+msgstr "Pacote %s instalado, mas não disponÃvel"
+
+#: ../yum/__init__.py:2374
msgid "No package(s) available to install"
msgstr "Nenhum pacote disponÃvel para instalar"
-#: ../yum/__init__.py:2158
+#: ../yum/__init__.py:2386
#, python-format
msgid "Package: %s - already in transaction set"
msgstr "Pacote: %s - já está no conjunto de transações"
-#: ../yum/__init__.py:2171
+#: ../yum/__init__.py:2399
#, python-format
msgid "Package %s already installed and latest version"
msgstr "O pacote %s já está instalado em sua última versão"
-#: ../yum/__init__.py:2178
+#: ../yum/__init__.py:2406
#, python-format
msgid "Package matching %s already installed. Checking for update."
msgstr "O pacote %s já está instalado. Verificando por uma atualização."
+#: ../yum/__init__.py:2416
+#, python-format
+msgid "Package %s is obsoleted by %s, trying to install %s instead"
+msgstr "O pacote %s foi tornado obsoleto por %s, tentando instalar %s ao invés disso"
+
#. update everything (the easy case)
-#: ../yum/__init__.py:2220
+#: ../yum/__init__.py:2486
msgid "Updating Everything"
-msgstr "Atualizando Tudo"
+msgstr "Atualizando tudo"
+
+#: ../yum/__init__.py:2498
+#: ../yum/__init__.py:2603
+#: ../yum/__init__.py:2614
+#: ../yum/__init__.py:2636
+#, python-format
+msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
+msgstr "Pacote já obsoleto não será atualizado: %s.%s %s:%s-%s"
-#: ../yum/__init__.py:2304
+#: ../yum/__init__.py:2594
#, python-format
msgid "Package is already obsoleted: %s.%s %s:%s-%s"
msgstr "O pacote já está obsoleto: %s.%s %s:%s-%s"
-#: ../yum/__init__.py:2377
+#: ../yum/__init__.py:2617
+#: ../yum/__init__.py:2639
+#, python-format
+msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s"
+msgstr "Pacote já atualizado não será atualizado novamente: %s.%s %s:%s-%s"
+
+#: ../yum/__init__.py:2678
#, python-format
msgid "%s"
msgstr "%s"
-#: ../yum/__init__.py:2392
+#: ../yum/__init__.py:2694
msgid "No package matched to remove"
msgstr "Nenhum pacote encontrado para remoção"
-#: ../yum/__init__.py:2426
+#: ../yum/__init__.py:2728
#, python-format
msgid "Cannot open file: %s. Skipping."
msgstr "Não foi possÃvel abrir o arquivo: %s. Ignorando."
-#: ../yum/__init__.py:2429
+#: ../yum/__init__.py:2731
#, python-format
msgid "Examining %s: %s"
msgstr "Examinando %s: %s"
-#: ../yum/__init__.py:2436
+#: ../yum/__init__.py:2739
#, python-format
-msgid ""
-"Package %s not installed, cannot update it. Run yum install to install it "
-"instead."
-msgstr ""
-"O pacote %s não está instalado, não é possÃvel atualizá-lo. Execute o yum "
-"install para instalá-lo."
+msgid "Cannot add package %s to transaction. Not a compatible architecture: %s"
+msgstr "Não foi possÃvel adicionar o pacote %s à transação. %s não é uma arquitetura compatÃvel."
-#: ../yum/__init__.py:2468
+#: ../yum/__init__.py:2747
+#, python-format
+msgid "Package %s not installed, cannot update it. Run yum install to install it instead."
+msgstr "O pacote %s não está instalado, não é possÃvel atualizá-lo. Execute o yum install para instalá-lo."
+
+#: ../yum/__init__.py:2780
#, python-format
msgid "Excluding %s"
msgstr "Excluindo %s"
-#: ../yum/__init__.py:2473
+#: ../yum/__init__.py:2785
#, python-format
msgid "Marking %s to be installed"
msgstr "Marcando %s para ser instalado"
-#: ../yum/__init__.py:2479
+#: ../yum/__init__.py:2791
#, python-format
msgid "Marking %s as an update to %s"
msgstr "Marcando %s como uma atualização do %s"
-#: ../yum/__init__.py:2486
+#: ../yum/__init__.py:2798
#, python-format
msgid "%s: does not update installed package."
msgstr "%s: não atualiza o pacote instalado."
-#: ../yum/__init__.py:2504
+#: ../yum/__init__.py:2816
msgid "Problem in reinstall: no package matched to remove"
msgstr "Problema na reinstalação: nenhum pacote encontrado para remoção"
-#: ../yum/__init__.py:2515
+#: ../yum/__init__.py:2827
#, python-format
msgid "Package %s is allowed multiple installs, skipping"
msgstr "O pacote %s permite múltiplas instalações, ignorando"
-#: ../yum/__init__.py:2522
+#: ../yum/__init__.py:2834
msgid "Problem in reinstall: no package matched to install"
msgstr "Problema na reinstalação: nenhum pacote encontrado para instalação"
-#: ../yum/__init__.py:2570
+#: ../yum/__init__.py:2869
#, python-format
msgid "Retrieving GPG key from %s"
msgstr "Obtendo a chave GPG a partir de %s"
-#: ../yum/__init__.py:2576
+#: ../yum/__init__.py:2875
msgid "GPG key retrieval failed: "
msgstr "A obtenção da chave GPG falhou:"
-#: ../yum/__init__.py:2589
-msgid "GPG key parsing failed: "
-msgstr "A análise da chave GPG falhou:"
+#: ../yum/__init__.py:2886
+#, python-format
+msgid "GPG key parsing failed: key does not have value %s"
+msgstr "Falha na análise da chave GPG: ela não tem o valor %s"
-#: ../yum/__init__.py:2593
+#: ../yum/__init__.py:2918
#, python-format
msgid "GPG key at %s (0x%s) is already installed"
msgstr "A chave GPG em %s (0x%s) já está instalada"
#. Try installing/updating GPG key
-#: ../yum/__init__.py:2598
+#: ../yum/__init__.py:2923
+#: ../yum/__init__.py:2985
#, python-format
msgid "Importing GPG key 0x%s \"%s\" from %s"
msgstr "Importando chave GPG 0x%s \"%s\" a partir de %s"
-#: ../yum/__init__.py:2610
+#: ../yum/__init__.py:2940
msgid "Not installing key"
msgstr "Não está instalando a chave"
-#: ../yum/__init__.py:2616
+#: ../yum/__init__.py:2946
#, python-format
msgid "Key import failed (code %d)"
msgstr "Falha na importação da chave (código %d)"
-#: ../yum/__init__.py:2619
+#: ../yum/__init__.py:2947
+#: ../yum/__init__.py:3006
msgid "Key imported successfully"
msgstr "Chave importada com sucesso"
-#: ../yum/__init__.py:2624
+#: ../yum/__init__.py:2952
+#: ../yum/__init__.py:3011
#, 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 ""
-"As chaves GPG listadas para o repositório \"%s\" já estão instaladas, mas "
-"não estão corretas para este pacote.\n"
-"Verifique se as URLs corretas das chaves estão configuradas para esse "
-"repositório."
+"As chaves GPG listadas para o repositório \"%s\" já estão instaladas, mas não estão corretas para este pacote.\n"
+"Verifique se as URLs corretas das chaves estão configuradas para esse repositório."
-#: ../yum/__init__.py:2633
+#: ../yum/__init__.py:2961
msgid "Import of key(s) didn't help, wrong key(s)?"
msgstr "A importação da(s) chave(s) não ajudou, chave(s) errada(s)?"
-#: ../yum/__init__.py:2707
+#: ../yum/__init__.py:2980
+#, python-format
+msgid "GPG key at %s (0x%s) is already imported"
+msgstr "A chave GPG em %s (0x%s) já foi importada"
+
+#: ../yum/__init__.py:3000
+#, python-format
+msgid "Not installing key for repo %s"
+msgstr "A chave para o repositório %s não será instalada"
+
+#: ../yum/__init__.py:3005
+msgid "Key import failed"
+msgstr "Falha na importação da chave"
+
+#: ../yum/__init__.py:3096
msgid "Unable to find a suitable mirror."
msgstr "Não foi possÃvel encontrar um espelho apropriado."
-#: ../yum/__init__.py:2709
+#: ../yum/__init__.py:3098
msgid "Errors were encountered while downloading packages."
msgstr "Foram encontrados erros ao baixar os pacotes."
-#: ../yum/__init__.py:2774
+#: ../yum/__init__.py:3162
msgid "Test Transaction Errors: "
-msgstr "Erros do Teste de Transação:"
+msgstr "Erros do teste de transação:"
#. Mostly copied from YumOutput._outKeyValFill()
-#: ../yum/plugins.py:195
+#: ../yum/plugins.py:199
msgid "Loaded plugins: "
msgstr "Plugins carregados: "
-#: ../yum/plugins.py:206
+#: ../yum/plugins.py:213
+#: ../yum/plugins.py:219
#, python-format
msgid "No plugin match for: %s"
-msgstr "Nenhum plugin correspondente com: %s"
+msgstr "Nenhum plugin correspondente para: %s"
-#: ../yum/plugins.py:219
+#: ../yum/plugins.py:249
#, python-format
msgid "\"%s\" plugin is disabled"
msgstr "O plugin \"%s\" está desabilitado"
-#: ../yum/plugins.py:231
+#. Give full backtrace:
+#: ../yum/plugins.py:261
+#, python-format
+msgid "Plugin \"%s\" can't be imported"
+msgstr "O plugin \"%s\" não pôde ser importado"
+
+#: ../yum/plugins.py:268
#, python-format
msgid "Plugin \"%s\" doesn't specify required API version"
msgstr "O plugin \"%s\" não especifica a versão requerida da API"
-#: ../yum/plugins.py:235
+#: ../yum/plugins.py:273
#, python-format
msgid "Plugin \"%s\" requires API %s. Supported API is %s."
msgstr "O plugin \"%s\" requer a API %s. A API suportada é a %s."
-#: ../yum/plugins.py:264
+#: ../yum/plugins.py:306
#, python-format
msgid "Loading \"%s\" plugin"
msgstr "Carregando o plugin \"%s\""
-#: ../yum/plugins.py:271
+#: ../yum/plugins.py:313
#, python-format
-msgid ""
-"Two or more plugins with the name \"%s\" exist in the plugin search path"
-msgstr ""
-"Dois ou mais plugins com o nome \"%s\" existem no caminho de pesquisa plugins"
+msgid "Two or more plugins with the name \"%s\" exist in the plugin search path"
+msgstr "Dois ou mais plugins com o nome \"%s\" existem no caminho de pesquisa plugins"
-#: ../yum/plugins.py:291
+#: ../yum/plugins.py:333
#, python-format
msgid "Configuration file %s not found"
msgstr "Arquivos de configuração %s não encontrado"
#. for
#. Configuration files for the plugin not found
-#: ../yum/plugins.py:294
+#: ../yum/plugins.py:336
#, python-format
msgid "Unable to find configuration file for plugin %s"
msgstr "Não foi possÃvel encontrar o arquivo de configuração para o plugin %s"
-#: ../yum/plugins.py:448
+#: ../yum/plugins.py:490
msgid "registration of commands not supported"
msgstr "O registro de comandos não é suportado"
+#: ../yum/rpmtrans.py:78
+msgid "Repackaging"
+msgstr "Reempacotando"
+
#: ../rpmUtils/oldUtils.py:26
#, python-format
msgid "Header cannot be opened or does not match %s, %s."
@@ -1922,58 +2146,68 @@ msgstr "O RPM %s não passou na verificação md5"
#: ../rpmUtils/oldUtils.py:144
msgid "Could not open RPM database for reading. Perhaps it is already in use?"
-msgstr ""
-"Não foi possÃvel abrir o banco de dados RPM para leitura. Talvez por que ele "
-"já esteja em uso?"
+msgstr "Não foi possÃvel abrir o banco de dados RPM para leitura. Talvez por que ele já esteja em uso?"
#: ../rpmUtils/oldUtils.py:174
msgid "Got an empty Header, something has gone wrong"
msgstr "Um cabeçalho vazio foi obtido, algo deu errado"
-#: ../rpmUtils/oldUtils.py:244 ../rpmUtils/oldUtils.py:251
-#: ../rpmUtils/oldUtils.py:254 ../rpmUtils/oldUtils.py:257
+#: ../rpmUtils/oldUtils.py:244
+#: ../rpmUtils/oldUtils.py:251
+#: ../rpmUtils/oldUtils.py:254
+#: ../rpmUtils/oldUtils.py:257
#, python-format
msgid "Damaged Header %s"
-msgstr "Cabeçalho %s Danificado"
+msgstr "Cabeçalho %s danificado"
#: ../rpmUtils/oldUtils.py:272
#, python-format
msgid "Error opening rpm %s - error %s"
msgstr "Erro ao abrir o rpm %s - erro %s"
+#~ msgid "Could not find update match for %s"
+#~ msgstr "Não foi possÃvel encontrar uma atualização correspondente ao %s"
+#~ msgid ""
+#~ "Failure finding best provider of %s for %s, exceeded maximum loop length"
+#~ msgstr ""
+#~ "Falha ao encontrar o melhor fornecedor de %s para %s, tamanho máximo do "
+#~ "loop excedido"
+#~ msgid "Comparing best: %s to po: %s"
+#~ msgstr "Comparando melhor: %s para po: %s"
+#~ msgid "Same: best %s == po: %s"
+#~ msgstr "Igual: melhor %s == po: %s"
+#~ msgid "po %s obsoletes best: %s"
+#~ msgstr "po %s torna melhor obsoleto: %s"
+#~ msgid "po %s shares a sourcerpm with %s"
+#~ msgstr "po %s compartilha um sourcerpm com %s"
+#~ msgid "best %s shares a sourcerpm with %s"
+#~ msgstr "melhor %s compartilha um sourcerpm com %s"
+#~ msgid "po %s shares more of the name prefix with %s"
+#~ msgstr "po %s compartilha mais do prefixo do nome com %s"
+#~ msgid "po %s has a shorter name than best %s"
+#~ msgstr "po %s tem um nome mais curto do que o melhor %s"
+#~ msgid "bestpkg %s shares more of the name prefix with %s"
+#~ msgstr "bestpkg %s compartilha mais do prefixo do nome com %s"
#~ msgid "Looking for Obsoletes for %s"
#~ msgstr "Localizando Obsoletos para %s"
-
#~ msgid "unable to find newer package for %s"
#~ msgstr "não foi possÃvel encontrar um pacote mais recente para o %s"
-
#~ msgid "TSINFO: Updating %s to resolve conflict."
#~ msgstr "TSINFO: Atualizando o %s para resolver o conflito."
-
#~ msgid "%s conflicts: %s"
#~ msgstr "%s conflita com: %s"
-
#~ msgid "%s conflicts with %s"
#~ msgstr "%s conflita com %s"
-
-#~ msgid "Package %s needs %s, this is not available."
-#~ msgstr "O pacote %s necessita do %s, que não está disponÃvel."
-
#~ msgid "Package %s conflicts with %s."
#~ msgstr "O pacote %s conflita com %s."
-
#~ msgid "Running \"%s\" handler for \"%s\" plugin"
#~ msgstr "Executando o manipulador \"%s\" para o plugin \"%s\""
-
#~ msgid "Directory of rpms must exist"
#~ msgstr "O diretório de rpms precisa existir"
-
#~ msgid "Error accessing URL: %s"
#~ msgstr "Erro ao acessar a URL: %s"
-
#~ msgid "No Packages installed not included in a repository"
#~ msgstr "Nenhum pacote instalado não incluÃdo em um repositório"
-
#~ msgid ""
#~ "\n"
#~ " Total: %d\n"
@@ -1984,13 +2218,10 @@ msgstr "Erro ao abrir o rpm %s - erro %s"
#~ " Total: %d\n"
#~ " Usado: %d\n"
#~ " Src: %d"
-
#~ msgid "Error restoring the backup of lilo.conf The backup was:\n"
#~ msgstr "Erro ao restaurar o backup do lilo.conf. O backup era:\n"
-
#~ msgid "Looking in available packages for a providing package"
#~ msgstr "Procurando pelo pacote fornecido nos pacotes disponÃveis"
-
#~ msgid ""
#~ "retrygrab() failed for:\n"
#~ " %s%s\n"
@@ -1999,16 +2230,12 @@ msgstr "Erro ao abrir o rpm %s - erro %s"
#~ "retrygrab() falhou para:\n"
#~ " %s%s\n"
#~ " Executando método de recuperação"
-
#~ msgid "I will install/upgrade these to satisfy the dependencies:"
#~ msgstr "Eu irei instalar/atualizar isto para satisfazer as dependências:"
-
#~ msgid "Cannot delete %s - check perms"
#~ msgstr "Não foi possÃvel remover %s - verifique as permissões"
-
#~ msgid "Need a provides to match"
#~ msgstr "à necessário fornecer uma informação para corresponder"
-
#~ msgid ""
#~ "lilo options that are not supported by yum are used in the default lilo."
#~ "conf. This file will not be modified. The options include:\n"
@@ -2016,13 +2243,10 @@ msgstr "Erro ao abrir o rpm %s - erro %s"
#~ "opções do lilo que não são suportadas pelo yum estão sendo utilizadas no "
#~ "arquivo lilo.conf padrão. Este arquivo não será modificado. Dentre as "
#~ "opções estão:\n"
-
#~ msgid "Error getting file %s"
#~ msgstr "Erro ao obter arquivo %s"
-
#~ msgid "%s is not writable"
#~ msgstr "%s não é gravável"
-
#~ msgid ""
#~ "\n"
#~ "Already found tuple: %s %s:\n"
@@ -2031,117 +2255,86 @@ msgstr "Erro ao abrir o rpm %s - erro %s"
#~ "\n"
#~ "Tupla já encontrada: %s %s:\n"
#~ "%s "
-
#~ msgid "errors found"
#~ msgstr "erros encontrados"
-
#~ msgid "Unable to determine boot loader."
#~ msgstr "Não foi possÃvel determinar o gerenciador de inicialização."
-
#~ msgid "getting %s"
#~ msgstr "obtendo %s"
-
#~ msgid "Error Reading Header on %s"
#~ msgstr "Erro ao Ler Cabeçalho em %s"
-
#~ msgid "Error accessing File: %s"
#~ msgstr "Erro ao acessar arquivo: %s"
-
#~ msgid "You're not root, we can't install things"
#~ msgstr "Você não é root, nós não podemos instalar coisas"
-
#~ msgid "Cannot find any conf file."
#~ msgstr "Não foi possÃvel encontrar um arquivo de configuração."
-
#~ msgid "Local file does not exist: %s"
#~ msgstr "O arquivo local não existe: %s"
-
#~ msgid "using ftp, http[s], or file for servers, Aborting - %s"
#~ msgstr "usando ftp, http[s] ou arquivos para servidores. Abortando - %s"
-
#~ msgid "Found %s."
#~ msgstr "%s encontrado."
-
#~ msgid "Transaction(s) Complete"
#~ msgstr "Transação Completa"
-
#~ msgid "IOError: %s"
#~ msgstr "IOError (Erro E/S): %s"
-
#~ msgid "Cleaning packages and old headers"
#~ msgstr "Limpando pacotes e cabeçalhos antigos"
-
#~ msgid ""
#~ "Cannot download %s in caching only mode or when running as non-root user."
#~ msgstr ""
#~ "Não é possÃvel baixar %s no modo \"somente cache\" ou quando estiver "
#~ "executando com um usuário não root."
-
#~ msgid ""
#~ "Error: You may want to run yum clean or remove the file: \n"
#~ " %s"
#~ msgstr ""
#~ "Erro: Você pode querer executar a limpeza do yum ou remover o arquivo: \n"
#~ " %s"
-
#~ msgid "Error reading lilo.conf: The messages was:\n"
#~ msgstr "Erro ao ler o lilo.conf: A mensagem foi:\n"
-
#~ msgid "No groups provided or accessible on any server."
#~ msgstr "Nenhum grupo fornecido ou acessÃvel em nenhum servidor."
-
#~ msgid "%s results returned"
#~ msgstr "%s resultados retornados"
-
#~ msgid "Error moving %s to %s, fatal"
#~ msgstr "Erro ao mover %s para %s, fatal"
-
#~ msgid ""
#~ "\n"
#~ "ignoring bad rpm: %s"
#~ msgstr ""
#~ "\n"
#~ "ignorando rpm defeituoso: %s"
-
#~ msgid "[erase: %s]"
#~ msgstr "[remover: %s]"
-
#~ msgid "%s is not a dir"
#~ msgstr "%s não é um diretório"
-
#~ msgid "Best version for %s is %s:%s-%s"
#~ msgstr "A melhor versão para %s é %s:%s-%s"
-
#~ msgid "[deps: %s]"
#~ msgstr "[deps: %s]"
-
#~ msgid ""
#~ "\n"
#~ "ignoring srpm: %s"
#~ msgstr ""
#~ "\n"
#~ "ignorando srpm: %s"
-
#~ msgid "Checking deps %d/%d complete"
#~ msgstr "Checando dependências, %d/%d completo"
-
#~ msgid ""
#~ "Errors within the dir(s):\n"
#~ " %s"
#~ msgstr ""
#~ "Erro dentro do(s) diretório(s):\n"
#~ " %s"
-
#~ msgid "Please run yum in non-caching mode to correct this header."
#~ msgstr ""
#~ "Por favor, execute o yum no modo sem cache para corrigir este cabeçalho."
-
#~ msgid "Error installing lilo.conf The message was:\n"
#~ msgstr "Erro ao instalar o lilo.conf. A mensagem foi:\n"
-
#~ msgid "Error: Untrusted GPG key on %s"
#~ msgstr "Erro: Chave GPG não confiável em %s"
-
#~ msgid ""
#~ "\n"
#~ "\n"
@@ -2152,69 +2345,50 @@ msgstr "Erro ao abrir o rpm %s - erro %s"
#~ "\n"
#~ "Problema com a assinatura gpg ou com o md5sum em %s\n"
#~ "\n"
-
#~ msgid "No Packages Available for Update or Install"
#~ msgstr "Nenhum Pacote DisponÃvel para Atualização ou Instalação"
-
#~ msgid "Found best arch for install only pkg %s"
#~ msgstr "Encontre a melhor arquitetura para instalar apenas o pacote %s"
-
#~ msgid "I will do the following:"
#~ msgstr "Eu farei o seguinte:"
-
#~ msgid "Bad URL: %s"
#~ msgstr "URL Inválida: %s"
-
#~ msgid "NonMatching RPM version, %s, removing."
#~ msgstr "Versão do RPM não coincide, %s, removendo."
-
#~ msgid "I will erase these to satisfy the dependencies:"
#~ msgstr "Eu irei apagar isto para satisfazer as dependências:"
-
#~ msgid "HTTP Error (%s): %s"
#~ msgstr "Erro HTTP (%s): %s"
-
#~ msgid "Please ask your sysadmin to update the headers on this system."
#~ msgstr ""
#~ "Por favor, peça ao administrador do seu sistema para atualizar os "
#~ "cabeçalhos."
-
#~ msgid "Putting back old headers"
#~ msgstr "Recolocando cabeçalhos antigos"
-
#~ msgid "CacheDir: %s"
#~ msgstr "CacheDir (diretório de cache): %s"
-
#~ msgid "Completing update for %s - %d/%d"
#~ msgstr "Completando atualização para %s - %d/%d"
-
#~ msgid ""
#~ "Error: You may need to disable gpg checking to install this package\n"
#~ msgstr ""
#~ "Erro: Talvez seja necessário desabilitar a verificação gpg para instalar "
#~ "este pacote\n"
-
#~ msgid "Options Error: no commands found"
#~ msgstr "Erro nas opções: nenhum comando encontrado"
-
#~ msgid "Unable to run grubby correctly: the message was:\n"
#~ msgstr "Não foi possÃvel executar o grubby corretamente: a mensagem foi:\n"
-
#~ msgid "IOError - # %s - %s"
#~ msgstr "IOError (Erro E/S) - # %s - %s"
-
#~ msgid "Kernel Updated/Installed, checking for bootloader"
#~ msgstr ""
#~ "Kernel atualizado/instalado, verificando gerenciador de inicialização"
-
#~ msgid "Need to pass a list of pkgs to install"
#~ msgstr "à necessário passar uma lista de pacotes para instalar"
-
#~ msgid "Insufficient server config - no servers found. Aborting."
#~ msgstr ""
#~ "Configuração de servidor insuficiente - nenhum servidor encontrado. "
#~ "Abortando."
-
#~ msgid ""
#~ "\n"
#~ " Usage: yum [options] <update | upgrade | install | info | remove | "
@@ -2260,102 +2434,76 @@ msgstr "Erro ao abrir o rpm %s - erro %s"
#~ " --version - exibe a versão do yum\n"
#~ " -h, --help - exibe esta tela\n"
#~ " "
-
#~ msgid "From %s installing %s"
#~ msgstr "A partir de %s, instalando %s"
-
#~ msgid "No bootloader found, Cannot configure kernel, continuing."
#~ msgstr ""
#~ "Nenhum gerenciador de inicialização encontrado. Não é possÃvel configurar "
#~ "o kernel, continuando."
-
#~ msgid "Attempt to delete a missing file %s - ignoring."
#~ msgstr "Tentativa de remover um arquivo faltando %s - ignorando."
-
#~ msgid "Getting %s"
#~ msgstr "Obtendo %s"
-
#~ msgid ""
#~ "\n"
#~ "Writing header.info file"
#~ msgstr ""
#~ "\n"
#~ "Gravando arquivo header.info"
-
#~ msgid "Gathering header information file(s) from server(s)"
#~ msgstr ""
#~ "Coletando arquivo(s) de informações de cabeçalhos a partir do(s) servidor"
#~ "(es)"
-
#~ msgid "Using cached header.info file"
#~ msgstr "Utilizando arquivo header.info do cache"
-
#~ msgid "localrpmdb not defined"
#~ msgstr "localrpmdb não definido"
-
#~ msgid "Error installing the new bootloader: \n"
#~ msgstr "Erro ao instalar o novo gerenciador de inicialização: \n"
-
#~ msgid "Error: Could not find the GPG Key necessary to validate pkg %s"
#~ msgstr ""
#~ "Erro: Não foi possÃvel localizar a Chave GPG necessária para validar o "
#~ "pacote %s"
-
#~ msgid "No actions to take"
#~ msgstr "Nenhuma ação a ser tomada"
-
#~ msgid ""
#~ "Available package: %s.%s %s:%s-%s from %s matches with\n"
#~ " %s"
#~ msgstr ""
#~ "Pacote disponÃvel: %s.%s %s:%s-%s de %s resultados com\n"
#~ " %s"
-
#~ msgid " "
#~ msgstr " "
-
#~ msgid "Error: Cannot find baseurl or name for server '%s'. Skipping"
#~ msgstr ""
#~ "Erro: Não foi possÃvel localizar a baseurl ou o nome do servidor \"%s\". "
#~ "Ignorando."
-
#~ msgid "Odd header %s suddenly disappeared"
#~ msgstr "Cabeçalho indefinido %s desapareceu repentinamente"
-
#~ msgid "All dependencies resolved and no conflicts detected"
#~ msgstr "Todas as dependências resolvidas e nenhum conflito detectado"
-
#~ msgid "using cached groups from server: %s"
#~ msgstr "usando grupos em cache a partir do servidor: %s"
-
#~ msgid "Exiting."
#~ msgstr "Saindo."
-
#~ msgid ""
#~ "asking for package %s.%s - does not exist in nevral - bailing out - check "
#~ "rpmdb for errors"
#~ msgstr ""
#~ "perguntando pelo pacote %s.%s - não existe no nevral - saindo "
#~ "abruptamente - verifique por erros no rpmdb"
-
#~ msgid "Errors reported doing trial run"
#~ msgstr "Erros reportados na execução experimental"
-
#~ msgid "Lilo found - adding kernel to lilo and making it the default"
#~ msgstr "Lilo encontrado - adicionando o kernel ao lilo e tornando-o padrão"
-
#~ msgid "[update: %s]"
#~ msgstr "[atualizar: %s]"
-
#~ msgid "ERROR: Url Return no Content-Length - something is wrong"
#~ msgstr "ERRO: A URL retornou conteúdo vazio - algo está errado"
-
#~ msgid "Got a file - yay"
#~ msgstr "Obteve um arquivo - yay"
-
#~ msgid "From %s updating %s"
#~ msgstr "A partir de %s, atualizando %s"
-
#~ msgid ""
#~ "Usage:\n"
#~ "yum-arch [-v] [-z] [-l] [-c] [-n] [-d] [-q] [-vv] (path of dir where "
@@ -2385,77 +2533,54 @@ msgstr "Erro ao abrir o rpm %s - erro %s"
#~ " -l = utiliza links simbólicos como rpms válidos ao compilar "
#~ "cabeçalhos\n"
#~ " -q = faz uma exibição mais discreta"
-
#~ msgid "The file %s is damaged."
#~ msgstr "O arquivo %s está danificado."
-
#~ msgid "Repo"
#~ msgstr "Repo"
-
#~ msgid "No bootloader found, Cannot configure kernel."
#~ msgstr ""
#~ "Nenhum gerenciador de inicialização encontrado. Não é possÃvel configurar "
#~ "o kernel."
-
#~ msgid "Name"
#~ msgstr "Nome"
-
-#~ msgid "[install: %s]"
-#~ msgstr "[instalar: %s]"
-
#~ msgid "Downloading needed headers"
#~ msgstr "Baixando os cabeçalhos necessários"
-
#~ msgid "Header for pkg %s not found"
#~ msgstr "O cabeçalho para o pacote %s não foi encontrado"
-
#~ msgid "Cleaning all headers"
#~ msgstr "Limpando todos os cabeçalhos"
-
#~ msgid "depcheck: package %s needs %s"
#~ msgstr "verificação de dependências: o pacote %s precisa do %s"
-
#~ msgid "Error - %s cannot be found"
#~ msgstr "Erro - %s não pôde ser encontrado"
-
#~ msgid "Erasing: %s %d/%d"
#~ msgstr "Apagando: %s %d/%d"
-
#~ msgid "Nothing in any group to update or install"
#~ msgstr "Nada em nenhum grupo para atualizar ou instalar"
-
#~ msgid "Grub found - making this kernel the default"
#~ msgstr "Grub encontrado - tornando este kernel o padrão"
-
#~ msgid "Digesting rpm - %s - %d/%d"
#~ msgstr "Preparando rpm - %s - %d/%d"
-
#~ msgid "Damaged RPM %s, removing."
#~ msgstr "RPM %s danificado, removendo."
-
#~ msgid ""
#~ "Bad Header for pkg %s.%s trying to get headers for the nevral - exiting"
#~ msgstr ""
#~ "Cabeçalho danificado para o pacote %s.%s, tentando obter cabeçalhos para "
#~ "o nevral - saindo"
-
#~ msgid ""
#~ "Error: You may also check that you have the correct GPG keys installed"
#~ msgstr ""
#~ "Erro: Você também pode verificar se tem as Chaves GPG corretas instaladas"
-
#~ msgid "No rpms to work with and no header dir. Exiting."
#~ msgstr ""
#~ "Nenhum diretório de cabeçalhos e nenhum rpm para ser utilizado. Saindo."
-
#~ msgid "ignoring bad rpm: %s"
#~ msgstr "ignorando rpm danificado: %s"
-
#~ msgid "Directory of rpms must be a directory."
#~ msgstr "O diretório de rpms deve ser um diretório."
-
#~ msgid "failover: out of servers to try"
#~ msgstr "recuperação: não há mais servidores para tentar"
-
#~ msgid "Getting header.info from server"
#~ msgstr "Obtendo header.info do servidor"
+
commit e8e26704dc5803dc259929b747a43bd59e08b747
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date: Sat Nov 1 09:18:40 2008 +0100
added updated Norsk translation by Kjartan Maraas
diff --git a/po/nb.po b/po/nb.po
index a4214b1..512a227 100644
--- a/po/nb.po
+++ b/po/nb.po
@@ -3,36 +3,39 @@
# Copyright (C) 2008 Terje Røsten
# This file is distributed under the same license as the yum package.
# Terje Røsten <terje.rosten at ntnu.no>, 2008.
-#, fuzzy
+# Kjartan Maraas <kmaraas at broadpark.no>, 2008.
+#
+
msgid ""
msgstr ""
"Project-Id-Version: yum 3.2.10\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-03-25 11:29+0100\n"
-"PO-Revision-Date: 2008-02-12 11:16+0100\n"
-"Last-Translator: Terje Røsten <terje.rosten at ntnu.no>\n"
-"Language-Team: Norwegian (bokmål) <i18n-no at lister.ping.uio.no>\n"
+"POT-Creation-Date: 2008-10-31 13:29+0000\n"
+"PO-Revision-Date: 2008-10-31 20:25+0100\n"
+"Last-Translator: Kjartan Maraas <kmaraas at broadpark.no>\n"
+"Language-Team: Norwegian bokmål <i18n-nb at lister.ping.uio.no>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ../callback.py:48 ../output.py:512
+#: ../callback.py:48 ../output.py:516 ../yum/rpmtrans.py:71
msgid "Updating"
msgstr "Oppdaterer"
-#: ../callback.py:49
+#: ../callback.py:49 ../yum/rpmtrans.py:72
msgid "Erasing"
msgstr "Fjerner"
-#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:511
+#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:515
+#: ../yum/rpmtrans.py:73 ../yum/rpmtrans.py:74 ../yum/rpmtrans.py:76
msgid "Installing"
msgstr "Legger inn"
-#: ../callback.py:52 ../callback.py:58
+#: ../callback.py:52 ../callback.py:58 ../yum/rpmtrans.py:75
msgid "Obsoleted"
msgstr "Er utgått"
-#: ../callback.py:54 ../output.py:558
+#: ../callback.py:54 ../output.py:562
msgid "Updated"
msgstr "Oppdatert"
@@ -40,7 +43,7 @@ msgstr "Oppdatert"
msgid "Erased"
msgstr "Fjernet"
-#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:556
+#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:560
msgid "Installed"
msgstr "Lagt inn"
@@ -50,7 +53,7 @@ msgstr "Intet hode - merksnodig?!"
#: ../callback.py:168
msgid "Repackage"
-msgstr "Pakker på nytt"
+msgstr "Pakk på nytt"
#: ../callback.py:189
#, python-format
@@ -62,405 +65,425 @@ msgstr "Feil: ugyldig tilstand ut: %s for %s"
msgid "Erased: %s"
msgstr "Fjernet: %s"
-#: ../callback.py:217 ../output.py:513
+#: ../callback.py:217 ../output.py:517
msgid "Removing"
msgstr "Fjerner"
-#: ../callback.py:219
+#: ../callback.py:219 ../yum/rpmtrans.py:77
msgid "Cleanup"
msgstr "Rydder opp"
-#: ../cli.py:103
+#: ../cli.py:105
#, python-format
msgid "Command \"%s\" already defined"
-msgstr "Kommando \"%s\" er allerede definert"
+msgstr "Kommando «%s» er allerede definert"
-#: ../cli.py:115
+#: ../cli.py:117
msgid "Setting up repositories"
-msgstr "Lager pakkeoversikt"
+msgstr "Konfigurerer lagre"
-#: ../cli.py:126
+#: ../cli.py:128
msgid "Reading repository metadata in from local files"
-msgstr "Leser inn data om pakker fra lokale filer"
+msgstr "Leser inn data om lager fra lokale filer"
-#: ../cli.py:183 ../utils.py:72
+#: ../cli.py:186 ../utils.py:71
#, python-format
msgid "Config Error: %s"
-msgstr "Feil ved konfigurasjon: %s"
+msgstr "Feil i konfigurasjon: %s"
-#: ../cli.py:186 ../cli.py:1068 ../utils.py:75
+#: ../cli.py:189 ../cli.py:1081 ../utils.py:74
#, python-format
msgid "Options Error: %s"
-msgstr "Feil med opsjoner: %s"
+msgstr "Feil i flagg: %s"
-#: ../cli.py:229
+#: ../cli.py:232
msgid "You need to give some command"
-msgstr "Vennligst oppgi minst en kommando"
+msgstr "Du må oppgi en kommando"
-#: ../cli.py:271
+#: ../cli.py:274
msgid "Disk Requirements:\n"
-msgstr "Krav til ledig diskplass\n"
+msgstr "Krav til ledig diskplass:\n"
-#: ../cli.py:273
+#: ../cli.py:276
#, python-format
msgid " At least %dMB needed on the %s filesystem.\n"
-msgstr "Minst %dMB er nødvendig i filsystemet %s.\n"
+msgstr "Minst %dMB kreves på filsystem %s.\n"
#. TODO: simplify the dependency errors?
#. Fixup the summary
-#: ../cli.py:278
+#: ../cli.py:281
msgid ""
"Error Summary\n"
"-------------\n"
msgstr ""
-"Oversikt over feil\n"
-"------------------\n"
+"Sammendrag for feil\n"
+"---------------------\n"
-#: ../cli.py:317
+#: ../cli.py:320
msgid "Trying to run the transaction but nothing to do. Exiting."
-msgstr "Prøver og fullføre transaksjonen, men den er tom. Avslutter."
+msgstr "Prøver å kjøre transaksjonen, men den er tom. Avslutter."
-#: ../cli.py:347
+#: ../cli.py:350
msgid "Exiting on user Command"
msgstr "Avslutter på grunn av kommando fra bruker"
-#: ../cli.py:351
+#: ../cli.py:354
msgid "Downloading Packages:"
msgstr "Laster ned pakker:"
-#: ../cli.py:356
+#: ../cli.py:359
msgid "Error Downloading Packages:\n"
msgstr "Kunne ikke laste ned pakkene:\n"
-#: ../cli.py:370 ../yum/__init__.py:2746
+#: ../cli.py:373 ../yum/__init__.py:2826
msgid "Running rpm_check_debug"
-msgstr "Kjører rpm-sjekker"
+msgstr "Kjører rpm_check_debug"
-#: ../cli.py:373 ../yum/__init__.py:2749
+#: ../cli.py:376 ../yum/__init__.py:2829
msgid "ERROR with rpm_check_debug vs depsolve:"
-msgstr "Feil: en forskjell mellom rpm-sjekker og yum har oppstått"
+msgstr "FEIL med rpm_check_debug i forhold til løsing av avhengigheter:"
-#: ../cli.py:377 ../yum/__init__.py:2751
+#: ../cli.py:380 ../yum/__init__.py:2831
msgid "Please report this error in bugzilla"
msgstr "Vennligst send en feilrapport til bugzilla"
-#: ../cli.py:383
+#: ../cli.py:386
msgid "Running Transaction Test"
-msgstr "Gjennomfører en test av transaksjonen"
+msgstr "Gjennomfører test av transaksjonen"
-#: ../cli.py:399
+#: ../cli.py:402
msgid "Finished Transaction Test"
msgstr "Transaksjonstesten er fullført"
-#: ../cli.py:401
+#: ../cli.py:404
msgid "Transaction Check Error:\n"
-msgstr "Feil ved sjekk av transaksjonen:\n"
+msgstr "Feil ved test av transaksjonen:\n"
-#: ../cli.py:408
+#: ../cli.py:411
msgid "Transaction Test Succeeded"
msgstr "Test av transaksjonen var vellykket"
-#: ../cli.py:429
+#: ../cli.py:432
msgid "Running Transaction"
msgstr "Utfører transaksjonen"
-#: ../cli.py:459
+#: ../cli.py:462
msgid ""
"Refusing to automatically import keys when running unattended.\n"
"Use \"-y\" to override."
msgstr ""
-"Nekter og automatisk importere nøkler når man kjører uten oppsyn.\n"
-"Bruk \"-y\" for uansett å godta import."
+"Nekter å importere nøkler automatisk ved kjøring uten oppsyn.\n"
+"Bruk «-y» for å overstyre."
-#: ../cli.py:491
+#: ../cli.py:494
msgid "Parsing package install arguments"
msgstr "Analyserer argumentene for pakkeinstallasjon"
-#: ../cli.py:501
+#: ../cli.py:504
#, python-format
msgid "No package %s available."
-msgstr "Ingen pakke: %s er tilgjengelig."
+msgstr "Pakke: %s er ikke tilgjengelig."
-#: ../cli.py:505 ../cli.py:623 ../yumcommands.py:748
+#: ../cli.py:508 ../cli.py:626 ../yumcommands.py:790
msgid "Package(s) to install"
-msgstr "Pakker som legges"
+msgstr "Pakke(r) som skal legges inn"
-#: ../cli.py:506 ../cli.py:624 ../yumcommands.py:146 ../yumcommands.py:749
+#: ../cli.py:509 ../cli.py:627 ../yumcommands.py:147 ../yumcommands.py:791
msgid "Nothing to do"
-msgstr "Ingenting og gjøre"
+msgstr "Ingenting å gjøre"
-#: ../cli.py:536 ../yum/__init__.py:2232 ../yum/__init__.py:2311
-#: ../yum/__init__.py:2340
+#: ../cli.py:539 ../yum/__init__.py:2275 ../yum/__init__.py:2375
+#: ../yum/__init__.py:2387
#, python-format
msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
msgstr "Vil ikke oppdatere pakke som allerede er foreldet: %s.%s %s:%s-%s"
-#: ../cli.py:568
+#: ../cli.py:571
#, python-format
msgid "Could not find update match for %s"
msgstr "Kunne ikke finne oppdatering som passet for %s"
-#: ../cli.py:580
+#: ../cli.py:583
#, python-format
msgid "%d packages marked for Update"
-msgstr "%d pakker er vil bli oppdatert"
+msgstr "%d pakker merket for oppdatering"
-#: ../cli.py:583
+#: ../cli.py:586
msgid "No Packages marked for Update"
-msgstr "Ingen pakker vil bli oppdatert"
+msgstr "Ingen pakker merket for oppdatering"
-#: ../cli.py:599
+#: ../cli.py:602
#, python-format
msgid "%d packages marked for removal"
-msgstr "%d pakker vil bli fjernet"
+msgstr "%d pakker merket for fjerning"
-#: ../cli.py:602
+#: ../cli.py:605
msgid "No Packages marked for removal"
-msgstr "Ingen pakker vil bli fjernet"
+msgstr "Ingen pakker merket for fjerning"
-#: ../cli.py:614
+#: ../cli.py:617
msgid "No Packages Provided"
msgstr "Ingen pakker ble tilbudt"
-#: ../cli.py:654
+#: ../cli.py:657
msgid "Matching packages for package list to user args"
msgstr "Tilpasser pakkeliste etter brukers ønske"
-#: ../cli.py:701
-#, fuzzy, python-format
+#: ../cli.py:705
+#, python-format
msgid "Warning: No matches found for: %s"
-msgstr "Ingen pakke for %s er funnet"
+msgstr "Advarsel: Ingen treff funnet for: %s"
-#: ../cli.py:704
+#: ../cli.py:708
msgid "No Matches found"
-msgstr "Ingen passende pakker ble funnet"
+msgstr "Fant ingen treff"
-#: ../cli.py:745
+#: ../cli.py:749
#, python-format
msgid "No Package Found for %s"
msgstr "Ingen pakke ble funnet for %s"
-#: ../cli.py:757
+#: ../cli.py:761
msgid "Cleaning up Everything"
msgstr "Rydder opp alt"
-#: ../cli.py:771
+#: ../cli.py:775
msgid "Cleaning up Headers"
-msgstr "Rydder opp metadata"
+msgstr "Rydder opp pakkehoder"
-#: ../cli.py:774
+#: ../cli.py:778
msgid "Cleaning up Packages"
-msgstr "Fjerner lagrede pakker"
+msgstr "Rydder opp pakker"
-#: ../cli.py:777
+#: ../cli.py:781
msgid "Cleaning up xml metadata"
msgstr "Rydder opp i XML-metadata"
-#: ../cli.py:780
+#: ../cli.py:784
msgid "Cleaning up database cache"
-msgstr "Rydder opp i databasen"
+msgstr "Rydder opp i mellomlager for database"
-#: ../cli.py:783
-#, fuzzy
+#: ../cli.py:787
msgid "Cleaning up expire-cache metadata"
-msgstr "Rydder opp i XML-metadata"
+msgstr "Rydder opp i metadata for expire-cache"
-#: ../cli.py:786
+#: ../cli.py:790
msgid "Cleaning up plugins"
msgstr "Rydder opp i tillegg"
-#: ../cli.py:807
+#: ../cli.py:812
msgid "Installed Groups:"
msgstr "Installerte grupper:"
-#: ../cli.py:814
+#: ../cli.py:819
msgid "Available Groups:"
msgstr "Tilgjengelig grupper:"
-#: ../cli.py:820
+#: ../cli.py:825
msgid "Done"
msgstr "Ferdig"
-#: ../cli.py:829 ../cli.py:841 ../cli.py:847
+#: ../cli.py:836 ../cli.py:854 ../cli.py:860
#, python-format
msgid "Warning: Group %s does not exist."
-msgstr "Advarsel: gruppe %s eksisterer ikke."
+msgstr "Advarsel: Gruppe %s eksisterer ikke."
-#: ../cli.py:853
+#: ../cli.py:864
msgid "No packages in any requested group available to install or update"
-msgstr "Ingen pakker i aktuelle grupper er tilgjengelig"
+msgstr ""
+"Ingen pakker tilgjengelig for installering eller oppdatering i aktuelle "
+"grupper"
-#: ../cli.py:855
+#: ../cli.py:866
#, python-format
msgid "%d Package(s) to Install"
-msgstr "%d pakker vil bli installert"
+msgstr "%d pakke(r) vil bli installert"
-#: ../cli.py:865
+#: ../cli.py:876
#, python-format
msgid "No group named %s exists"
-msgstr "Ingen gruppe med navn %s er tilgjengelig"
+msgstr "Det finnes ingen gruppe med navn %s"
-#: ../cli.py:871
+#: ../cli.py:882
msgid "No packages to remove from groups"
-msgstr "Ingen pakker og fjerne fra gruppe"
+msgstr "Ingen pakker å fjerne fra grupper"
-#: ../cli.py:873
+#: ../cli.py:884
#, python-format
msgid "%d Package(s) to remove"
msgstr "%d pakker vil bli fjernet"
-#: ../cli.py:915
+#: ../cli.py:926
#, python-format
msgid "Package %s is already installed, skipping"
msgstr "Pakke %s er allerede lagt inn, hopper over"
-#: ../cli.py:926
+#: ../cli.py:937
#, python-format
msgid "Discarding non-comparable pkg %s.%s"
-msgstr "Vraker pakke som ikke sammenlignes %s.%s"
+msgstr "Vraker pakke som ikke kan sammenlignes %s.%s"
#. we've not got any installed that match n or n+a
-#: ../cli.py:952
+#: ../cli.py:963
#, python-format
msgid "No other %s installed, adding to list for potential install"
msgstr ""
-"Ingen annen pakke %s er lagt inn, legger til pakke til liste over "
-"potensielle pakker"
+"Ingen annen %s er lagt inn, legger til pakke til liste over potensielle "
+"pakker"
-#: ../cli.py:971
+#: ../cli.py:982
#, python-format
msgid "Command line error: %s"
-msgstr "Feil ved kommandolinje: %s"
+msgstr "Feil med kommandolinje: %s"
+
+#: ../cli.py:994
+#, python-format
+msgid ""
+"\n"
+"\n"
+"%s: %s option requires an argument"
+msgstr ""
+"\n"
+"\n"
+"%s: flagg %s krever et argument"
-#: ../cli.py:1101
+#: ../cli.py:1123
+msgid "show this help message and exit"
+msgstr "vis denne hjelpteksten og avslutt"
+
+#: ../cli.py:1127
msgid "be tolerant of errors"
msgstr "vær tolerant ved feil"
-#: ../cli.py:1103
+#: ../cli.py:1129
msgid "run entirely from cache, don't update cache"
msgstr "bruk kun lagrede filer ved kjøring, ikke oppdater lagrede filer"
-#: ../cli.py:1105
+#: ../cli.py:1131
msgid "config file location"
msgstr "plassering av konfigurasjonsfil"
-#: ../cli.py:1107
+#: ../cli.py:1133
msgid "maximum command wait time"
msgstr "maksimaltid for å vente på kommando"
-#: ../cli.py:1109
+#: ../cli.py:1135
msgid "debugging output level"
-msgstr "mengde tilbakemelding ved avlusing"
+msgstr "nivå for tilbakemeldinger ved avlusing"
-#: ../cli.py:1113
+#: ../cli.py:1139
msgid "show duplicates, in repos, in list/search commands"
-msgstr ""
+msgstr "vis duplikater i lager og i kommandoer for å liste/søke i pakker"
-#: ../cli.py:1115
+#: ../cli.py:1141
msgid "error output level"
msgstr "mengde tilbakemelding ved feil"
-#: ../cli.py:1118
+#: ../cli.py:1144
msgid "quiet operation"
-msgstr "utfører med minimalt av tilbakemelding"
+msgstr "stille operasjon"
+
+#: ../cli.py:1146
+msgid "verbose operation"
+msgstr "vis ekstra informasjon"
-#: ../cli.py:1122
+#: ../cli.py:1148
msgid "answer yes for all questions"
-msgstr "svar Ja til alle eventuelle spørsmål som kan oppstå"
+msgstr "svar Ja til alle spørsmål"
-#: ../cli.py:1124
+#: ../cli.py:1150
msgid "show Yum version and exit"
-msgstr "vis versjon til Yum og avslutt deretter"
+msgstr "vis Yum-versjon og avslutt"
-#: ../cli.py:1125
+#: ../cli.py:1151
msgid "set install root"
-msgstr "setter laveste filtre-nivå for intallering (standard er /)"
+msgstr "sett rot for installasjonen"
-#: ../cli.py:1129
+#: ../cli.py:1155
msgid "enable one or more repositories (wildcards allowed)"
-msgstr "legger til en eller flere pakkeoversikter (jokertegn er tillatt)"
+msgstr "legger til et eller flere lager (jokertegn er tillatt)"
-#: ../cli.py:1133
+#: ../cli.py:1159
msgid "disable one or more repositories (wildcards allowed)"
-msgstr "fjernet en eller flere pakkeoversikter (jokertegn er tillatt)"
+msgstr "slå av et eller flere lager (jokertegn er tillatt)"
-#: ../cli.py:1136
+#: ../cli.py:1162
msgid "exclude package(s) by name or glob"
-msgstr "overse pakke(r) ved navn eller glob"
+msgstr "overse pakke(r) ved navn eller mønster"
-#: ../cli.py:1138
+#: ../cli.py:1164
msgid "disable exclude from main, for a repo or for everything"
-msgstr "fjerner ekskludering av pakker, for en pakkeoversikt eller fullstendig"
+msgstr "fjerner ekskludering av pakker, for et lager eller alle pakker"
-#: ../cli.py:1141
+#: ../cli.py:1167
msgid "enable obsoletes processing during updates"
msgstr "ta med foreldede pakker i beregningen ved oppdatering"
-#: ../cli.py:1143
+#: ../cli.py:1169
msgid "disable Yum plugins"
msgstr "ikke bruk tillegg til Yum"
-#: ../cli.py:1145
+#: ../cli.py:1171
msgid "disable gpg signature checking"
-msgstr "ikke gjennomfør sjekk av GPG-signaturer"
+msgstr "ikke sjekk GPG-signaturer"
-#: ../cli.py:1147
+#: ../cli.py:1173
msgid "disable plugins by name"
-msgstr "ikke bruk tillegg til yum ved navn"
+msgstr "slå av tillegg til yum etter navn"
-#: ../cli.py:1150
+#: ../cli.py:1176
msgid "skip packages with depsolving problems"
-msgstr "hoppe over pakker som har problemer med avhengigheter"
+msgstr "hopp over pakker som har problemer med avhengigheter"
-#: ../output.py:229
+#: ../output.py:228
msgid "Jan"
msgstr "jan"
-#: ../output.py:229
+#: ../output.py:228
msgid "Feb"
msgstr "feb"
-#: ../output.py:229
+#: ../output.py:228
msgid "Mar"
msgstr "mar"
-#: ../output.py:229
+#: ../output.py:228
msgid "Apr"
msgstr "apr"
-#: ../output.py:229
+#: ../output.py:228
msgid "May"
msgstr "mai"
-#: ../output.py:229
+#: ../output.py:228
msgid "Jun"
msgstr "jun"
-#: ../output.py:230
+#: ../output.py:229
msgid "Jul"
msgstr "jul"
-#: ../output.py:230
+#: ../output.py:229
msgid "Aug"
msgstr "aug"
-#: ../output.py:230
+#: ../output.py:229
msgid "Sep"
msgstr "sep"
-#: ../output.py:230
+#: ../output.py:229
msgid "Oct"
msgstr "okt"
-#: ../output.py:230
+#: ../output.py:229
msgid "Nov"
msgstr "nov"
-#: ../output.py:230
+#: ../output.py:229
msgid "Dec"
msgstr "des"
-#: ../output.py:240
+#: ../output.py:239
msgid "Trying other mirror."
msgstr "Prøver et annet speil."
@@ -524,25 +547,25 @@ msgstr "Beskrivelse:"
#: ../output.py:351
msgid "Is this ok [y/N]: "
-msgstr "Er dette greit [y/N]:"
+msgstr "Er dette ok [j/N]:"
-#: ../output.py:357 ../output.py:360
+#: ../output.py:359 ../output.py:362
msgid "y"
-msgstr ""
+msgstr "j"
-#: ../output.py:357
+#: ../output.py:359
msgid "n"
-msgstr ""
+msgstr "n"
-#: ../output.py:357 ../output.py:360
+#: ../output.py:359 ../output.py:362
msgid "yes"
-msgstr ""
+msgstr "ja"
-#: ../output.py:357
+#: ../output.py:359
msgid "no"
-msgstr ""
+msgstr "nei"
-#: ../output.py:367
+#: ../output.py:370
#, python-format
msgid ""
"\n"
@@ -551,96 +574,96 @@ msgstr ""
"\n"
"Gruppe:%s"
-#: ../output.py:369
+#: ../output.py:372
#, python-format
msgid " Description: %s"
msgstr " Beskrivelse: %s"
-#: ../output.py:371
+#: ../output.py:374
msgid " Mandatory Packages:"
msgstr "Obligatoriske pakker:"
-#: ../output.py:376
+#: ../output.py:379
msgid " Default Packages:"
msgstr "Standard pakker:"
-#: ../output.py:381
+#: ../output.py:384
msgid " Optional Packages:"
msgstr "Valgfrie pakker:"
-#: ../output.py:386
+#: ../output.py:389
msgid " Conditional Packages:"
msgstr "Betingede pakker:"
-#: ../output.py:394
+#: ../output.py:398
#, python-format
msgid "package: %s"
msgstr "pakke: %s"
-#: ../output.py:396
+#: ../output.py:400
msgid " No dependencies for this package"
msgstr " Ingen avhengigheter for denne pakka"
-#: ../output.py:401
+#: ../output.py:405
#, python-format
msgid " dependency: %s"
msgstr " avhengighet: %s"
-#: ../output.py:403
+#: ../output.py:407
msgid " Unsatisfied dependency"
msgstr " avhengighet som ikke kunne tilfredstilles"
-#: ../output.py:461
+#: ../output.py:465
msgid "Matched from:"
msgstr "Treff fra:"
-#: ../output.py:487
+#: ../output.py:491
msgid "There was an error calculating total download size"
msgstr "Kunne ikke finne ut størrelse på det som skal hentes ned"
-#: ../output.py:492
+#: ../output.py:496
#, python-format
msgid "Total size: %s"
msgstr "Totale størrelse: %s"
-#: ../output.py:495
+#: ../output.py:499
#, python-format
msgid "Total download size: %s"
msgstr "Totale størrelse på pakker som hentes: %s"
-#: ../output.py:507
+#: ../output.py:511
msgid "Package"
msgstr "Pakke"
-#: ../output.py:507
+#: ../output.py:511
msgid "Arch"
msgstr "Arkitektur"
-#: ../output.py:507
+#: ../output.py:511
msgid "Version"
msgstr "Versjon"
-#: ../output.py:507
+#: ../output.py:511
msgid "Repository"
msgstr "Pakkeoversikt"
-#: ../output.py:507
+#: ../output.py:511
msgid "Size"
msgstr "Størrelse"
-#: ../output.py:514
+#: ../output.py:518
msgid "Installing for dependencies"
msgstr "Legges inn på grunn avhengigheter"
-#: ../output.py:515
+#: ../output.py:519
msgid "Updating for dependencies"
msgstr "Oppdateres på grunn avhengigheter"
-#: ../output.py:516
+#: ../output.py:520
msgid "Removing for dependencies"
msgstr "Fjernes på grunn avhengigheter"
-#: ../output.py:528
+#: ../output.py:532
#, python-format
msgid ""
" replacing %s.%s %s\n"
@@ -649,7 +672,7 @@ msgstr ""
" erstatter %s.%s %s\"\n"
"\n"
-#: ../output.py:536
+#: ../output.py:540
#, python-format
msgid ""
"\n"
@@ -666,27 +689,27 @@ msgstr ""
"Oppdaterer %5.5s pakker\n"
"Fjerner %5.5s pakker\n"
-#: ../output.py:554
+#: ../output.py:558
msgid "Removed"
msgstr "Fjernet"
-#: ../output.py:555
+#: ../output.py:559
msgid "Dependency Removed"
msgstr "Fjernet på grunn avhengighet"
-#: ../output.py:557
+#: ../output.py:561
msgid "Dependency Installed"
msgstr "Lagt inn på grunn av avhengighet"
-#: ../output.py:559
+#: ../output.py:563
msgid "Dependency Updated"
msgstr "Oppdatert på grunn avhengighet"
-#: ../output.py:560
+#: ../output.py:564
msgid "Replaced"
msgstr "Erstattet"
-#: ../output.py:618
+#: ../output.py:622
#, python-format
msgid ""
"\n"
@@ -697,72 +720,72 @@ msgstr ""
" Pågående nedlastning er avbrutt, %s avbryt (ved å trykke Ctrl-C) %s ganger "
"til innen %s%s%s sekunder for å avslutte helt.\n"
-#: ../output.py:628
+#: ../output.py:632
msgid "user interrupt"
-msgstr "avbryt av bruker"
+msgstr "avbrutt av bruker"
-#: ../output.py:639
+#: ../output.py:643
msgid "installed"
msgstr "lagt inn"
-#: ../output.py:640
+#: ../output.py:644
msgid "updated"
msgstr "oppdatert"
-#: ../output.py:641
+#: ../output.py:645
msgid "obsoleted"
msgstr "foreldet"
-#: ../output.py:642
+#: ../output.py:646
msgid "erased"
msgstr "fjernet"
-#: ../output.py:646
+#: ../output.py:650
#, python-format
msgid "---> Package %s.%s %s:%s-%s set to be %s"
msgstr "---> pakke %s.%s %s:%s-%s er satt til %s"
-#: ../output.py:653
+#: ../output.py:657
msgid "--> Running transaction check"
msgstr "--> Utfører sjekk av transaksjonen"
-#: ../output.py:658
+#: ../output.py:662
msgid "--> Restarting Dependency Resolution with new changes."
-msgstr "--> Starter løsning av avhengigheter på nytt"
+msgstr "--> Starter løsing av avhengigheter på nytt med endringer"
-#: ../output.py:663
+#: ../output.py:667
msgid "--> Finished Dependency Resolution"
msgstr "--> Alle avhengigheter er løst"
-#: ../output.py:668
+#: ../output.py:672
#, python-format
msgid "--> Processing Dependency: %s for package: %s"
msgstr "--> Beregner avhengighet: %s for pakke: %s"
-#: ../output.py:673
+#: ../output.py:677
#, python-format
msgid "--> Unresolved Dependency: %s"
msgstr "--> Avhengigheter som ikke kunne bli tilfredstilt: %s"
-#: ../output.py:679
+#: ../output.py:683
#, python-format
msgid "--> Processing Conflict: %s conflicts %s"
msgstr "--> Beregner konflikter: %s er i konflikt med %s"
-#: ../output.py:682
+#: ../output.py:686
msgid "--> Populating transaction set with selected packages. Please wait."
-msgstr "--> Fyller transaksjonen med valgt pakker. Vennligst vent."
+msgstr "--> Fyller transaksjonen med valgte pakker. Vennligst vent."
-#: ../output.py:686
+#: ../output.py:690
#, python-format
msgid "---> Downloading header for %s to pack into transaction set."
msgstr "---> Henter ned filhode for pakke %s for å fylle transaksjonen."
-#: ../yumcommands.py:36
+#: ../yumcommands.py:37
msgid "You need to be root to perform this command."
msgstr "Du må være rootbruker for å utføre denne kommandoen."
-#: ../yumcommands.py:43
+#: ../yumcommands.py:44
msgid ""
"\n"
"You have enabled checking of packages via GPG keys. This is a good thing. \n"
@@ -780,261 +803,277 @@ msgid ""
"For more information contact your distribution or package provider.\n"
msgstr ""
"\n"
-"Du har valgt og sjekk pakkene ved hjelp av GPG-nøkler. Det er fornufting.\n"
+"Du har valgt å sjekke pakkene ved hjelp av GPG-nøkler. Det er fornuftig.\n"
"Du har imidlertid ingen offentlige GPG-nøkler installert\n"
-"Du må hente ned og legge inn nøklene. Du kan legge de inn med kommandoen:\n"
+"Du må hente ned og legge inn nøklene. Du kan legge dem inn med kommandoen:\n"
"\n"
" rpm --import public.gpg.key\n"
"\n"
-"Et annet og bedre alternativ er og oppgi URL til de nøklene du vil bruke.\n"
-"Bruk opsjonen 'gpgkey' for hver pakkeoversikt for å ta dette i bruk.\n"
-"\n"
+"Et annet og bedre alternativ er å oppgi URL til de nøklene du vil bruke.\n"
+"Bruk opsjonen 'gpgkey' for hvert lager for å ta dette i bruk.\n"
"\n"
+"Kontakt din distribusjon eller pakkeansvarlig for mer informasjon.\n"
-#: ../yumcommands.py:63
+#: ../yumcommands.py:64
#, python-format
msgid "Error: Need to pass a list of pkgs to %s"
-msgstr "Feil: du må oppgi ei liste over pakker som skal %s"
+msgstr "Feil: du må oppgi en liste med pakker som skal %s"
-#: ../yumcommands.py:69
+#: ../yumcommands.py:70
msgid "Error: Need an item to match"
-msgstr "Feil: trenger noe og sammenligne med"
+msgstr "Feil: trenger noe å sammenligne med"
-#: ../yumcommands.py:75
+#: ../yumcommands.py:76
msgid "Error: Need a group or list of groups"
-msgstr "Feil: trenger ei gruppe eller ei liste med grupper"
+msgstr "Feil: trenger en gruppe eller en liste med grupper"
-#: ../yumcommands.py:84
+#: ../yumcommands.py:85
#, python-format
msgid "Error: clean requires an option: %s"
msgstr "Feil: clean trenger minst et argument: %s"
-#: ../yumcommands.py:89
+#: ../yumcommands.py:90
#, python-format
msgid "Error: invalid clean argument: %r"
msgstr "Feil: ugyldig argument gitt til kommandoen clean: %r"
-#: ../yumcommands.py:102
+#: ../yumcommands.py:103
msgid "No argument to shell"
msgstr "Ingen argumenter ble gitt til kommandoen shell"
-#: ../yumcommands.py:105
+#: ../yumcommands.py:106
#, python-format
msgid "Filename passed to shell: %s"
-msgstr "Følgende filnavn ble som argument til shell: %s"
+msgstr "Følgende filnavn ble sendt til skallet: %s"
-#: ../yumcommands.py:109
+#: ../yumcommands.py:110
#, python-format
msgid "File %s given as argument to shell does not exist."
msgstr ""
"Filen %s som ble gitt som argument til kommandoen shell eksisterer ikke."
-#: ../yumcommands.py:115
+#: ../yumcommands.py:116
msgid "Error: more than one file given as argument to shell."
-msgstr "Feil: mer enn ei fil ble gitt som argument til kommandoen shell."
+msgstr "Feil: mer enn en fil ble gitt som argument til kommandoen shell."
-#: ../yumcommands.py:156
+#: ../yumcommands.py:157
msgid "PACKAGE..."
-msgstr "Pakke..."
+msgstr "PAKKE..."
-#: ../yumcommands.py:159
+#: ../yumcommands.py:160
msgid "Install a package or packages on your system"
-msgstr "Legger inn pakke(r) på ditt system"
+msgstr "Legg inn en eller flere pakker på systemet"
-#: ../yumcommands.py:168
+#: ../yumcommands.py:169
msgid "Setting up Install Process"
msgstr "Forberedelser for installasjon"
-#: ../yumcommands.py:179
+#: ../yumcommands.py:180
msgid "[PACKAGE...]"
-msgstr "[Pakke...}"
+msgstr "[PAKKE...]"
-#: ../yumcommands.py:182
+#: ../yumcommands.py:183
msgid "Update a package or packages on your system"
-msgstr "Oppdaterer pakke(r) på ditt system"
+msgstr "Oppdater en eller flere pakker på systemet"
-#: ../yumcommands.py:190
+#: ../yumcommands.py:191
msgid "Setting up Update Process"
msgstr "Forberedelser for oppdatering"
-#: ../yumcommands.py:204
+#: ../yumcommands.py:205
msgid "Display details about a package or group of packages"
msgstr "Viser detaljer om en pakke eller en gruppe av grupper"
-#: ../yumcommands.py:212
+#: ../yumcommands.py:213
msgid "Installed Packages"
msgstr "Pakker som er installert"
-#: ../yumcommands.py:213
+#: ../yumcommands.py:214
msgid "Available Packages"
-msgstr "Tilgjengelig pakker"
+msgstr "Tilgjengelige pakker"
-#: ../yumcommands.py:214
+#: ../yumcommands.py:215
msgid "Extra Packages"
msgstr "Tilleggspakker"
-#: ../yumcommands.py:215
+#: ../yumcommands.py:216
msgid "Updated Packages"
msgstr "Oppdaterte pakker"
-#: ../yumcommands.py:221 ../yumcommands.py:225
+#: ../yumcommands.py:222 ../yumcommands.py:228
msgid "Obsoleting Packages"
msgstr "Utdaterte pakker"
-#: ../yumcommands.py:226
+#: ../yumcommands.py:229
msgid "Recently Added Packages"
-msgstr "Pakker som nylig er blitt lagt til"
+msgstr "Pakker som nylig er lagt til"
-#: ../yumcommands.py:232
+#: ../yumcommands.py:235
msgid "No matching Packages to list"
-msgstr "Ingen passende pakker og liste opp"
+msgstr "Ingen passende pakker å liste opp"
-#: ../yumcommands.py:246
+#: ../yumcommands.py:249
msgid "List a package or groups of packages"
-msgstr "Lag en liste over pakker eller gruppe av pakker"
+msgstr "Lag en liste med pakker eller grupper av pakker"
-#: ../yumcommands.py:258
+#: ../yumcommands.py:261
msgid "Remove a package or packages from your system"
-msgstr "Fjerner pakke(r) fra ditt system"
+msgstr "Fjern en eller flere pakker fra systemet"
-#: ../yumcommands.py:266
+#: ../yumcommands.py:269
msgid "Setting up Remove Process"
msgstr "Klargjør for fjerning av pakker"
-#: ../yumcommands.py:278
+#: ../yumcommands.py:281
msgid "Setting up Group Process"
-msgstr "Klargjør grupper av pakker"
+msgstr "Klargjør grupper med pakker"
-#: ../yumcommands.py:284
+#: ../yumcommands.py:287
msgid "No Groups on which to run command"
-msgstr "Ingen gruppe er valgt for aktuelle kommando"
+msgstr "Ingen gruppe er valgt for aktuell kommando"
-#: ../yumcommands.py:297
+#: ../yumcommands.py:300
msgid "List available package groups"
-msgstr "Lag liste over tilgjengelig grupper"
+msgstr "Lag liste over tilgjengelige pakkegrupper"
-#: ../yumcommands.py:314
+#: ../yumcommands.py:317
msgid "Install the packages in a group on your system"
-msgstr "Legger inn pakkene i gruppe av pakker"
+msgstr "Legger inn pakkene i en gruppe på systemet"
-#: ../yumcommands.py:336
+#: ../yumcommands.py:339
msgid "Remove the packages in a group from your system"
-msgstr "Fjerner alle pakkene i en gruppe av pakker"
+msgstr "Fjern pakkene i en gruppe fra systemet"
-#: ../yumcommands.py:360
+#: ../yumcommands.py:363
msgid "Display details about a package group"
msgstr "Viser detaljer om en gruppe av pakker"
-#: ../yumcommands.py:384
+#: ../yumcommands.py:387
msgid "Generate the metadata cache"
-msgstr "Generer mellomlager av metadata"
+msgstr "Lag mellomlager med metadata"
-#: ../yumcommands.py:390
+#: ../yumcommands.py:393
msgid "Making cache files for all metadata files."
msgstr "Lager mellomlager for samtlige filer med metadata."
-#: ../yumcommands.py:391
+#: ../yumcommands.py:394
msgid "This may take a while depending on the speed of this computer"
-msgstr "Dette kan ei stund alt ettersom hvor rask din maskin er"
+msgstr "Dette kan en stund avhengig av hvor rask datamaskinen er"
-#: ../yumcommands.py:412
+#: ../yumcommands.py:415
msgid "Metadata Cache Created"
msgstr "Mellomlager er ferdig lagd"
-#: ../yumcommands.py:426
+#: ../yumcommands.py:429
msgid "Remove cached data"
msgstr "Fjern mellomlager med metadata"
-#: ../yumcommands.py:447
+#: ../yumcommands.py:450
msgid "Find what package provides the given value"
-msgstr "Finn hvilken pakke som tilbyr den søkte verdi"
+msgstr "Finn hvilken pakke som inneholder etterspurt verdi"
-#: ../yumcommands.py:467
+#: ../yumcommands.py:470
msgid "Check for available package updates"
-msgstr "Sjekker om det oppdatering tilgjengelig for gruppene av pakker"
+msgstr "Se etter tilgjengelige pakkeoppdateringer"
-#: ../yumcommands.py:490
+#: ../yumcommands.py:493
msgid "Search package details for the given string"
-msgstr "Søker etter detaljer om pakke utenifra den aktuelle strengen"
+msgstr "Søker etter oppgitt streng i pakkedetaljene"
-#: ../yumcommands.py:496
+#: ../yumcommands.py:499
msgid "Searching Packages: "
-msgstr "Søker etter pakker: "
+msgstr "Søker i pakker: "
-#: ../yumcommands.py:513
+#: ../yumcommands.py:516
msgid "Update packages taking obsoletes into account"
-msgstr "Oppdatering pakker og tar samtidig hensyn til pakker som er utdatert"
+msgstr "Oppdater pakker og ta hensyn til pakker som blir utdatert"
-#: ../yumcommands.py:522
+#: ../yumcommands.py:525
msgid "Setting up Upgrade Process"
msgstr "Klargjør for oppdatering"
-#: ../yumcommands.py:536
+#: ../yumcommands.py:539
msgid "Install a local RPM"
msgstr "Legger inn en RPM fra filsystemet"
-#: ../yumcommands.py:545
+#: ../yumcommands.py:548
msgid "Setting up Local Package Process"
msgstr "Klargjøring for pakker på lokalt filsystem"
-#: ../yumcommands.py:564
+#: ../yumcommands.py:567
msgid "Determine which package provides the given dependency"
msgstr "Finner hvilken pakke som tilbyr den gitte avhengigheten"
-#: ../yumcommands.py:567
+#: ../yumcommands.py:570
msgid "Searching Packages for Dependency:"
-msgstr "Søker etter pakker med avhengighet:"
+msgstr "Søker i pakker etter avhengighet:"
-#: ../yumcommands.py:581
+#: ../yumcommands.py:584
msgid "Run an interactive yum shell"
msgstr "Kjører det interaktive Yum-skallet"
-#: ../yumcommands.py:587
+#: ../yumcommands.py:590
msgid "Setting up Yum Shell"
msgstr "Klargjør Yum-skallet"
-#: ../yumcommands.py:605
+#: ../yumcommands.py:608
msgid "List a package's dependencies"
-msgstr "Lister opp avhengighetene til pakka"
+msgstr "Vis avhengigheter for en pakke"
-#: ../yumcommands.py:611
+#: ../yumcommands.py:614
msgid "Finding dependencies: "
msgstr "Finner avhengigheter: "
-#: ../yumcommands.py:627
+#: ../yumcommands.py:630
msgid "Display the configured software repositories"
msgstr "Viser de pakkeoversiktene som er satt opp"
-#: ../yumcommands.py:645
+#: ../yumcommands.py:666
+msgid "enabled"
+msgstr "aktiv"
+
+#: ../yumcommands.py:673
+msgid "disabled"
+msgstr "inaktiv"
+
+#: ../yumcommands.py:682
msgid "repo id"
msgstr "id"
-#: ../yumcommands.py:645
+#: ../yumcommands.py:683
msgid "repo name"
msgstr "navn"
-#: ../yumcommands.py:645
+#: ../yumcommands.py:683
msgid "status"
msgstr "status"
-#: ../yumcommands.py:651
-msgid "enabled"
-msgstr "aktiv"
+#: ../yumcommands.py:686
+msgid "Repo-id : "
+msgstr "ID for lager: "
-#: ../yumcommands.py:654
-msgid "disabled"
-msgstr "inaktiv"
+#: ../yumcommands.py:687
+msgid "Repo-name : "
+msgstr "Navn på lager : "
+
+#: ../yumcommands.py:688
+msgid "Repo-enabled: "
+msgstr "Lager aktivt: "
+
+#: ../yumcommands.py:689
+msgid "Repo-size : "
+msgstr "Størrelse på lager : "
-#: ../yumcommands.py:671
+#: ../yumcommands.py:713
msgid "Display a helpful usage message"
msgstr "Viser en hjelpetekst"
-#: ../yumcommands.py:705
+#: ../yumcommands.py:747
#, python-format
msgid "No help available for %s"
msgstr "Ingen hjelp er tilgjengelig for %s"
-#: ../yumcommands.py:710
+#: ../yumcommands.py:752
msgid ""
"\n"
"\n"
@@ -1042,9 +1081,9 @@ msgid ""
msgstr ""
"\n"
"\n"
-"aliaser:"
+"alias:"
-#: ../yumcommands.py:712
+#: ../yumcommands.py:754
msgid ""
"\n"
"\n"
@@ -1054,15 +1093,15 @@ msgstr ""
"\n"
"alias:"
-#: ../yumcommands.py:741
+#: ../yumcommands.py:783
msgid "Setting up Reinstall Process"
msgstr "Klargjør for å legge inn pakke(r) på nytt"
-#: ../yumcommands.py:755
+#: ../yumcommands.py:797
msgid "reinstall a package"
-msgstr "Legger inn en pakke på nytt"
+msgstr "legg inn en pakke på nytt"
-#: ../yummain.py:41
+#: ../yummain.py:55
msgid ""
"\n"
"\n"
@@ -1072,7 +1111,7 @@ msgstr ""
"\n"
"Avslutter etter ønske"
-#: ../yummain.py:47
+#: ../yummain.py:61
msgid ""
"\n"
"\n"
@@ -1080,42 +1119,42 @@ msgid ""
msgstr ""
"\n"
"\n"
-"Avslutter på grunn ødelagt programrør"
+"Avslutter på grunn av brutt rør"
-#: ../yummain.py:105
+#: ../yummain.py:112
msgid ""
"Another app is currently holding the yum lock; waiting for it to exit..."
msgstr ""
"Et annet program holder en fillås for Yum, venter til fillåsen frigjøres..."
-#: ../yummain.py:132 ../yummain.py:171
+#: ../yummain.py:139 ../yummain.py:178
#, python-format
msgid "Error: %s"
msgstr "Feil: %s"
-#: ../yummain.py:142 ../yummain.py:178
+#: ../yummain.py:149 ../yummain.py:185
#, python-format
msgid "Unknown Error(s): Exit Code: %d:"
-msgstr "Ukjent feil: feilkode: %d"
+msgstr "Ukjent feil: feilkode: %d:"
#. Depsolve stage
-#: ../yummain.py:149
+#: ../yummain.py:156
msgid "Resolving Dependencies"
-msgstr "Løser opp i avhengigheter"
+msgstr "Løser avhengigheter"
-#: ../yummain.py:184
+#: ../yummain.py:191
msgid ""
"\n"
"Dependencies Resolved"
msgstr ""
"\n"
-"Alle avhengigheter er oppløst"
+"Alle avhengigheter er løst"
-#: ../yummain.py:198
+#: ../yummain.py:205
msgid "Complete!"
msgstr "Ferdig!"
-#: ../yummain.py:245
+#: ../yummain.py:252
msgid ""
"\n"
"\n"
@@ -1125,319 +1164,258 @@ msgstr ""
"\n"
"Avslutter etter ønske"
-#: ../yum/depsolve.py:82
+#: ../yum/depsolve.py:78
msgid "doTsSetup() will go away in a future version of Yum.\n"
msgstr "doTsSetup() vil forsvinne i en kommende utgave av Yum.\n"
-#: ../yum/depsolve.py:95
+#: ../yum/depsolve.py:91
msgid "Setting up TransactionSets before config class is up"
msgstr "Setter opp transaksjons-sett før config klassen er klar"
-#: ../yum/depsolve.py:136
+#: ../yum/depsolve.py:132
#, python-format
msgid "Invalid tsflag in config file: %s"
msgstr "Ugyldig tsflag in konfigurasjonsfil: %s"
-#: ../yum/depsolve.py:147
-#, python-format
-msgid "Searching pkgSack for dep: %s"
-msgstr "Søker i pkgSack etter avhengighet: %s"
-
-#: ../yum/depsolve.py:170
-#, python-format
-msgid "Potential match for %s from %s"
-msgstr "Potensielt treff for %s i %s"
-
-#: ../yum/depsolve.py:178
-#, python-format
-msgid "Matched %s to require for %s"
-msgstr "Passende %s for å tilfredstille %s"
-
-#: ../yum/depsolve.py:219
+#: ../yum/depsolve.py:176
#, python-format
msgid "Member: %s"
msgstr "Medlem: %s"
-#: ../yum/depsolve.py:233 ../yum/depsolve.py:696
+#: ../yum/depsolve.py:190 ../yum/depsolve.py:592
#, python-format
msgid "%s converted to install"
msgstr "%s ble omdannet til installering"
-#: ../yum/depsolve.py:240
+#: ../yum/depsolve.py:197
#, python-format
msgid "Adding Package %s in mode %s"
msgstr "Legger til pakke %s in modus %s"
-#: ../yum/depsolve.py:250
+#: ../yum/depsolve.py:207
#, python-format
msgid "Removing Package %s"
msgstr "Fjerner pakke %s"
-#: ../yum/depsolve.py:261
+#: ../yum/depsolve.py:218
#, python-format
msgid "%s requires: %s"
-msgstr "%s avhenger av: %s"
-
-#: ../yum/depsolve.py:312
-msgid "Needed Require has already been looked up, cheating"
-msgstr "Nødvendig avhengighet har allerede blitt plukket opp, jukser"
+msgstr "%s krever: %s"
-#: ../yum/depsolve.py:322
-#, python-format
-msgid "Needed Require is not a package name. Looking up: %s"
-msgstr "Nødvendig avhengighet er ikke et navn på pakke. Ser etter: %s"
-
-#: ../yum/depsolve.py:329
-#, python-format
-msgid "Potential Provider: %s"
-msgstr "Potensiell tilbyder: %s"
-
-#: ../yum/depsolve.py:352
-#, python-format
-msgid "Mode is %s for provider of %s: %s"
-msgstr "Modus er %s for tilbyder av %s: %s"
-
-#: ../yum/depsolve.py:356
-#, python-format
-msgid "Mode for pkg providing %s: %s"
-msgstr "Modus for pakke som tilbyr %s: %s"
-
-#: ../yum/depsolve.py:360
-#, python-format
-msgid "TSINFO: %s package requiring %s marked as erase"
-msgstr "TSINFO: pakke %s som er nødvendig for %s vil bli fjernet"
-
-#: ../yum/depsolve.py:372
+#: ../yum/depsolve.py:273
#, python-format
msgid "TSINFO: Obsoleting %s with %s to resolve dep."
msgstr "TSINFO: Bytter ut %s med %s for å løse opp i avhengighet."
-#: ../yum/depsolve.py:375
+#: ../yum/depsolve.py:276
#, python-format
msgid "TSINFO: Updating %s to resolve dep."
msgstr "TSINFO: Oppdaterer %s for å løse opp i avhengighet."
-#: ../yum/depsolve.py:378
+#: ../yum/depsolve.py:279
#, python-format
msgid "Cannot find an update path for dep for: %s"
msgstr "Kunne ikke finne måte å oppdatere sti for avhengighet: %s."
-#: ../yum/depsolve.py:388
+#: ../yum/depsolve.py:283
#, python-format
-msgid "Unresolvable requirement %s for %s"
-msgstr "Avhengighet %s kan ikke løses opp: %s"
+msgid "TSINFO: %s package requiring %s marked as erase"
+msgstr "TSINFO: pakke %s som er nødvendig for %s vil bli fjernet"
#. is it already installed?
-#: ../yum/depsolve.py:434
+#: ../yum/depsolve.py:329
#, python-format
msgid "%s is in providing packages but it is already installed, removing."
msgstr "%s tilbyr pakker, men er allerede installert, fjerner denne."
-#: ../yum/depsolve.py:449
+#: ../yum/depsolve.py:344
#, python-format
msgid "Potential resolving package %s has newer instance in ts."
-msgstr ""
-"Pakke %s som potensielt tilbyder løsning har allerede nyere instans in ts."
+msgstr "Pakke %s som potensielt løser opp avhengighet har nyere instans in ts."
-#: ../yum/depsolve.py:460
+#: ../yum/depsolve.py:355
#, python-format
msgid "Potential resolving package %s has newer instance installed."
msgstr "Pakke %s som potensielt løser opp avhengighet er allerde installert."
-#: ../yum/depsolve.py:468 ../yum/depsolve.py:527
+#: ../yum/depsolve.py:363 ../yum/depsolve.py:410
#, python-format
msgid "Missing Dependency: %s is needed by package %s"
msgstr "Uløst avhengighet: %s trengs av pakke %s"
-#: ../yum/depsolve.py:481
+#: ../yum/depsolve.py:376
#, python-format
msgid "%s already in ts, skipping this one"
msgstr "%s er allerde i ts, hopper over denne"
-#: ../yum/depsolve.py:510
-#, python-format
-msgid ""
-"Failure finding best provider of %s for %s, exceeded maximum loop length"
-msgstr ""
-
-#: ../yum/depsolve.py:537
+#: ../yum/depsolve.py:420
#, python-format
msgid "TSINFO: Marking %s as update for %s"
msgstr "TSINFO: Setter opp %s som oppdatering av %s"
-#: ../yum/depsolve.py:544
+#: ../yum/depsolve.py:427
#, python-format
msgid "TSINFO: Marking %s as install for %s"
msgstr "TSINFO: Setter opp %s som pakke for installering av %s"
-#: ../yum/depsolve.py:635 ../yum/depsolve.py:714
+#: ../yum/depsolve.py:518 ../yum/depsolve.py:610
msgid "Success - empty transaction"
-msgstr "Suksess- transaksjonen er tom"
+msgstr "Suksess - transaksjonen er tom"
-#: ../yum/depsolve.py:673 ../yum/depsolve.py:686
+#: ../yum/depsolve.py:562 ../yum/depsolve.py:582
msgid "Restarting Loop"
msgstr "Starter sløyfe på nytt"
-#: ../yum/depsolve.py:702
+#: ../yum/depsolve.py:598
msgid "Dependency Process ending"
msgstr "Beregning av avhengighet avsluttes"
-#: ../yum/depsolve.py:708
+#: ../yum/depsolve.py:604
#, python-format
msgid "%s from %s has depsolving problems"
-msgstr "%s to %s har problemer med avhengigheter"
+msgstr "%s fra %s har problemer med avhengigheter"
-#: ../yum/depsolve.py:715
+#: ../yum/depsolve.py:611
msgid "Success - deps resolved"
msgstr "Suksess - alle avhengigheter er tilfredstilt"
-#: ../yum/depsolve.py:729
+#: ../yum/depsolve.py:625
#, python-format
msgid "Checking deps for %s"
msgstr "Sjekker avhengigheter for %s"
-#: ../yum/depsolve.py:782
+#: ../yum/depsolve.py:687
#, python-format
msgid "looking for %s as a requirement of %s"
-msgstr "leter etter %s som en nødvendighet fra %s"
-
-#: ../yum/depsolve.py:933
-#, python-format
-msgid "Comparing best: %s to po: %s"
-msgstr ""
+msgstr "leter etter %s som kreves av %s"
-#: ../yum/depsolve.py:937
+#: ../yum/depsolve.py:814
#, python-format
-msgid "Same: best %s == po: %s"
-msgstr ""
-
-#: ../yum/depsolve.py:952 ../yum/depsolve.py:963
-#, python-format
-msgid "best %s obsoletes po: %s"
-msgstr ""
+msgid "Running compare_providers() for %s"
+msgstr "Kjører compare_providers() for %s"
-#: ../yum/depsolve.py:955
+#: ../yum/depsolve.py:842 ../yum/depsolve.py:848
#, python-format
-msgid "po %s obsoletes best: %s"
-msgstr ""
-
-#: ../yum/depsolve.py:972 ../yum/depsolve.py:979 ../yum/depsolve.py:1036
-#, fuzzy, python-format
msgid "better arch in po %s"
-msgstr "søker etter pakke %s"
+msgstr "bedre arch i po %s"
-#: ../yum/depsolve.py:988 ../yum/depsolve.py:1010
+#: ../yum/depsolve.py:887
#, python-format
-msgid "po %s shares a sourcerpm with %s"
-msgstr ""
+msgid "%s obsoletes %s"
+msgstr "%s faser ut %s"
-#: ../yum/depsolve.py:992 ../yum/depsolve.py:1015
+#: ../yum/depsolve.py:898
#, python-format
-msgid "best %s shares a sourcerpm with %s"
+msgid ""
+"archdist compared %s to %s on %s\n"
+" Winner: %s"
msgstr ""
+"archdist sammenlignet %s med %s på %s\n"
+" Vinner: %s"
-#: ../yum/depsolve.py:999 ../yum/depsolve.py:1020
+#: ../yum/depsolve.py:905
#, python-format
-msgid "po %s shares more of the name prefix with %s"
+msgid "common sourcerpm %s and %s"
msgstr ""
-#: ../yum/depsolve.py:1003 ../yum/depsolve.py:1029
+#: ../yum/depsolve.py:911
#, python-format
-msgid "po %s has a shorter name than best %s"
+msgid "common prefix of %s between %s and %s"
msgstr ""
-#: ../yum/depsolve.py:1025
+#: ../yum/depsolve.py:919
#, python-format
-msgid "bestpkg %s shares more of the name prefix with %s"
-msgstr ""
+msgid "Best Order: %s"
+msgstr "Beste rekkefølge: %s"
-#: ../yum/__init__.py:119
+#: ../yum/__init__.py:148
msgid "doConfigSetup() will go away in a future version of Yum.\n"
msgstr "doConfigSetup() vil forsvinne i en kommende utgave av Yum.\n"
-#: ../yum/__init__.py:296
+#. FIXME: Use critical? or exception?
+#: ../yum/__init__.py:323
#, python-format
msgid "Repository %r is missing name in configuration, using id"
-msgstr "Pakkeoversikt %r har intet navn i konfigurasjonsfilen(e), bruker id"
+msgstr "Pakkelager %r mangler navn i konfigurasjonsfilen(e), bruker id"
-#: ../yum/__init__.py:332
+#: ../yum/__init__.py:359
msgid "plugins already initialised"
-msgstr "tillegg til yum er allerede satt opp"
+msgstr "tillegg til yum er allerede initiert"
-#: ../yum/__init__.py:339
+#: ../yum/__init__.py:366
msgid "doRpmDBSetup() will go away in a future version of Yum.\n"
msgstr "doRepoSetup() vil forsvinne i en kommende utgave av Yum.\n"
-#: ../yum/__init__.py:349
+#: ../yum/__init__.py:376
msgid "Reading Local RPMDB"
-msgstr "Leser inn lokale RPM-database"
+msgstr "Leser inn lokal RPM-database"
-#: ../yum/__init__.py:367
+#: ../yum/__init__.py:394
msgid "doRepoSetup() will go away in a future version of Yum.\n"
msgstr "doRepoSetup() vil forsvinne i en kommende utgave av Yum\n"
-#: ../yum/__init__.py:387
+#: ../yum/__init__.py:414
msgid "doSackSetup() will go away in a future version of Yum.\n"
msgstr "doSackSetup() vil forsvinne i en kommende utgave av Yum\n"
-#: ../yum/__init__.py:404
+#: ../yum/__init__.py:431
msgid "Setting up Package Sacks"
msgstr "Lager sekker med pakker"
-#: ../yum/__init__.py:447
+#: ../yum/__init__.py:474
#, python-format
msgid "repo object for repo %s lacks a _resetSack method\n"
-msgstr "objekt for pakkesoversikt %s mangler metoden _resetSack\n"
+msgstr "objekt for pakkelager %s mangler metoden _resetSack\n"
-#: ../yum/__init__.py:448
+#: ../yum/__init__.py:475
msgid "therefore this repo cannot be reset.\n"
-msgstr "derfor kan ikke denne pakkeoversikten bli nullstilt\n"
+msgstr "derfor kan ikke denne pakkeoversikten nullstilles\n"
-#: ../yum/__init__.py:453
+#: ../yum/__init__.py:480
msgid "doUpdateSetup() will go away in a future version of Yum.\n"
msgstr "doUpdateSetup() vil forsvinne i en kommende utgave av Yum.\n"
-#: ../yum/__init__.py:465
+#: ../yum/__init__.py:492
msgid "Building updates object"
-msgstr "Bygger opp oppdateringobject"
+msgstr "Bygger opp oppdateringsobjekt"
-#: ../yum/__init__.py:496
+#: ../yum/__init__.py:523
msgid "doGroupSetup() will go away in a future version of Yum.\n"
msgstr "doGroupSetup() vil forsvinne i en kommende utgave av Yum.\n"
-#: ../yum/__init__.py:520
+#: ../yum/__init__.py:547
msgid "Getting group metadata"
-msgstr "Henter metadata om grupper"
+msgstr "Henter metadata for grupper"
-#: ../yum/__init__.py:546
+#: ../yum/__init__.py:572
#, python-format
msgid "Adding group file from repository: %s"
msgstr "Legger til gruppefil fra pakkeoversikt: %s"
-#: ../yum/__init__.py:555
+#: ../yum/__init__.py:577
#, python-format
msgid "Failed to add groups file for repository: %s - %s"
-msgstr "Kunne ike legge til gruppefil for pakkeoversikt: %s - %s"
+msgstr "Kunne ikke legge til gruppefil for pakkeoversikt: %s - %s"
-#: ../yum/__init__.py:561
+#: ../yum/__init__.py:583
msgid "No Groups Available in any repository"
-msgstr "Ingen grupper overhode tilgjengelig"
+msgstr "Ingen grupper tilgjengelig fra noen lagre"
-#: ../yum/__init__.py:611
+#: ../yum/__init__.py:633
msgid "Importing additional filelist information"
-msgstr "Henter ytterligere informasjon om fil-lister"
+msgstr "Henter mer informasjon om fil-lister"
-#: ../yum/__init__.py:657
+#: ../yum/__init__.py:684
#, python-format
msgid "Skip-broken round %i"
-msgstr "Runde %i på grunn av ødelagte avhengigheter."
+msgstr "Runde %i for å hoppe over feil avhengighet"
-#: ../yum/__init__.py:680
+#: ../yum/__init__.py:707
#, python-format
msgid "Skip-broken took %i rounds "
-msgstr "På grunn ødelagte avhengigheter ble det gjennomført %i runder "
+msgstr "På grunn feil i avhengigheter ble det gjennomført %i runder "
-#: ../yum/__init__.py:681
+#: ../yum/__init__.py:708
msgid ""
"\n"
"Packages skipped because of dependency problems:"
@@ -1445,157 +1423,161 @@ msgstr ""
"\n"
"Pakker som ble oversett på grunn av problemer med avhengigheter:"
-#: ../yum/__init__.py:685
+#: ../yum/__init__.py:712
#, python-format
msgid " %s from %s"
msgstr " %s fra %s"
-#: ../yum/__init__.py:774
+#: ../yum/__init__.py:792
+msgid ""
+"Warning: scriptlet or other non-fatal errors occurred during transaction."
+msgstr ""
+
+#: ../yum/__init__.py:807
#, python-format
msgid "Failed to remove transaction file %s"
msgstr "Kunne ikke fjerne transaksjonsfil %s"
-#: ../yum/__init__.py:814
+#: ../yum/__init__.py:847
#, python-format
msgid "excluding for cost: %s from %s"
msgstr "ekskluderer på grunn av kostnad: %s fra %s"
-#: ../yum/__init__.py:845
+#: ../yum/__init__.py:878
msgid "Excluding Packages in global exclude list"
-msgstr "Ekskluderer pakker som er i global liste av ekskluderte pakker"
+msgstr "Ekskluderer pakker som er i global liste med ekskluderte pakker"
-#: ../yum/__init__.py:847
+#: ../yum/__init__.py:880
#, python-format
msgid "Excluding Packages from %s"
msgstr "Ekskluderer pakker fra %s"
-#: ../yum/__init__.py:875
+#: ../yum/__init__.py:906
#, python-format
msgid "Reducing %s to included packages only"
msgstr "Reduserer %s til kun inkluderte pakker"
-#: ../yum/__init__.py:880
+#: ../yum/__init__.py:911
#, python-format
msgid "Keeping included package %s"
msgstr "Tar vare på inkludert pakke %s"
-#: ../yum/__init__.py:886
+#: ../yum/__init__.py:917
#, python-format
msgid "Removing unmatched package %s"
msgstr "Fjerner upassende pakke: %s"
-#: ../yum/__init__.py:889
+#: ../yum/__init__.py:920
msgid "Finished"
msgstr "Ferdig"
#. Whoa. What the heck happened?
-#: ../yum/__init__.py:919
+#: ../yum/__init__.py:950
#, python-format
msgid "Unable to check if PID %s is active"
msgstr "Kunne ikke sjekke om PID %s er aktiv"
#. Another copy seems to be running.
-#: ../yum/__init__.py:923
+#: ../yum/__init__.py:954
#, python-format
msgid "Existing lock %s: another copy is running as pid %s."
-msgstr ""
-"Det fins allerede en låsefil: %s, en annen Yum kjører med PID %s allerede."
+msgstr "Det fins allerede en låsfil %s: en annen Yum kjører med PID %s."
-#: ../yum/__init__.py:970 ../yum/__init__.py:977
+#: ../yum/__init__.py:1017
msgid "Package does not match intended download"
msgstr "Det er forskjell mellom nedlastet og forventet størrelse"
-#: ../yum/__init__.py:991
+#: ../yum/__init__.py:1032
msgid "Could not perform checksum"
-msgstr "Kunne ikke beregne tverrsum"
+msgstr "Kunne ikke beregne sjekksum"
-#: ../yum/__init__.py:994
+#: ../yum/__init__.py:1035
msgid "Package does not match checksum"
-msgstr "Pakka har ikke korrekt tverrsum"
+msgstr "Pakken har ikke korrekt sjekksum"
-#: ../yum/__init__.py:1036
+#: ../yum/__init__.py:1079
#, python-format
msgid "package fails checksum but caching is enabled for %s"
-msgstr "tverrsummen til pakka er feil, men mellomlagring er satt på for %s"
+msgstr "sjekksummen til pakken er feil, men mellomlagring er satt på for %s"
-#: ../yum/__init__.py:1042
+#: ../yum/__init__.py:1082
#, python-format
msgid "using local copy of %s"
-msgstr "bruker lokal kop av %s"
+msgstr "bruker lokal kopi av %s"
-#: ../yum/__init__.py:1061
+#: ../yum/__init__.py:1107
#, python-format
msgid "Insufficient space in download directory %s to download"
msgstr "Det er ikke nok ledig plass i katalogen %s hvor pakkene blir lagret"
-#: ../yum/__init__.py:1094
+#: ../yum/__init__.py:1140
msgid "Header is not complete."
-msgstr "Filhode er ikke komplett."
+msgstr "Filhode er ikke fullstendig."
-#: ../yum/__init__.py:1134
+#: ../yum/__init__.py:1180
#, python-format
msgid ""
"Header not in local cache and caching-only mode enabled. Cannot download %s"
msgstr ""
-"Filhode er ikke tilgjengelig lokalt og i vi er mellomlager-modes. Kan ikke "
-"hente ned %s"
+"Filhode er ikke tilgjengelig lokalt og mellomlager-modus er aktivert Kan "
+"ikke hente ned %s"
-#: ../yum/__init__.py:1189
+#: ../yum/__init__.py:1235
#, python-format
msgid "Public key for %s is not installed"
msgstr "Offentlig nøkkel for %s er ikke lagt inn"
-#: ../yum/__init__.py:1193
+#: ../yum/__init__.py:1239
#, python-format
msgid "Problem opening package %s"
-msgstr "Kunne ved åpning av pakke %s"
+msgstr "Problem ved åpning av pakke %s"
-#: ../yum/__init__.py:1201
+#: ../yum/__init__.py:1247
#, python-format
msgid "Public key for %s is not trusted"
msgstr "Offentlig nøkkel %s er ikke til å stole på"
-#: ../yum/__init__.py:1205
+#: ../yum/__init__.py:1251
#, python-format
msgid "Package %s is not signed"
-msgstr "Pakka %s er ikke signert"
+msgstr "Pakken %s er ikke signert"
-#: ../yum/__init__.py:1243
+#: ../yum/__init__.py:1289
#, python-format
msgid "Cannot remove %s"
-msgstr "Kunne ikke fjern %s"
+msgstr "Kan ikke fjerne %s"
-#: ../yum/__init__.py:1247
+#: ../yum/__init__.py:1292
#, python-format
msgid "%s removed"
msgstr "%s fjernet"
-#: ../yum/__init__.py:1283
+#: ../yum/__init__.py:1328
#, python-format
msgid "Cannot remove %s file %s"
-msgstr "Kan ikke fjerne %s fra fila %s"
+msgstr "Kan ikke fjerne %s fra fil %s"
-#: ../yum/__init__.py:1287
+#: ../yum/__init__.py:1331
#, python-format
msgid "%s file %s removed"
-msgstr "%s fila %s er fjernet"
+msgstr "%s fil %s er fjernet"
-#: ../yum/__init__.py:1289
+#: ../yum/__init__.py:1333
#, python-format
msgid "%d %s files removed"
-msgstr "%d %s filer er fjernet"
+msgstr "%d %s filer fjernet"
-#: ../yum/__init__.py:1329
+#: ../yum/__init__.py:1386
#, python-format
msgid "More than one identical match in sack for %s"
-msgstr "Mer enn en identisk passende treff i sekken %s"
+msgstr "Mer enn ett identisk passende treff i sekken %s"
-#: ../yum/__init__.py:1335
+#: ../yum/__init__.py:1391
#, python-format
msgid "Nothing matches %s.%s %s:%s-%s from update"
msgstr "Ingenting passer %s.%s %s:%s-%s fra oppdatering"
-#: ../yum/__init__.py:1543
+#: ../yum/__init__.py:1585
msgid ""
"searchPackages() will go away in a future version of "
"Yum. Use searchGenerator() instead. \n"
@@ -1603,140 +1585,165 @@ msgstr ""
"searchPackages() vil forsvinne i en kommende utgave av Yum.\n"
"Bruk heller searchGenerator()\n"
-#: ../yum/__init__.py:1580
+#: ../yum/__init__.py:1621
#, python-format
msgid "Searching %d packages"
msgstr "Søker etter %d pakker"
-#: ../yum/__init__.py:1584
+#: ../yum/__init__.py:1624
#, python-format
msgid "searching package %s"
msgstr "søker etter pakke %s"
-#: ../yum/__init__.py:1596
+#: ../yum/__init__.py:1635
msgid "searching in file entries"
msgstr "søker i filoversikt"
-#: ../yum/__init__.py:1603
+#: ../yum/__init__.py:1641
msgid "searching in provides entries"
-msgstr "søker i oppføringer av tilbydere"
+msgstr "søker i oppføringer av tilbud"
-#: ../yum/__init__.py:1633
+#: ../yum/__init__.py:1671
#, python-format
msgid "Provides-match: %s"
msgstr "Tilbyder-treff: %s"
-#: ../yum/__init__.py:1702 ../yum/__init__.py:1720 ../yum/__init__.py:1748
-#: ../yum/__init__.py:1753 ../yum/__init__.py:1808 ../yum/__init__.py:1812
+#: ../yum/__init__.py:1717
+msgid "No group data available for configured repositories"
+msgstr "Ingen gruppedata tilgjengelig for konfigurerte pakkelager"
+
+#: ../yum/__init__.py:1743 ../yum/__init__.py:1762 ../yum/__init__.py:1788
+#: ../yum/__init__.py:1794 ../yum/__init__.py:1850 ../yum/__init__.py:1854
#, python-format
msgid "No Group named %s exists"
-msgstr "Ikke gruppe med navn %s er tilgjengelig"
+msgstr "Det eksisterer ingen gruppe med navn %s "
-#: ../yum/__init__.py:1731 ../yum/__init__.py:1824
+#: ../yum/__init__.py:1773 ../yum/__init__.py:1866
#, python-format
msgid "package %s was not marked in group %s"
-msgstr "pakka %s var ikke med i gruppa %s"
+msgstr "pakke %s var ikke med i gruppe %s"
-#: ../yum/__init__.py:1770
+#: ../yum/__init__.py:1811
#, python-format
msgid "Adding package %s from group %s"
msgstr "Legger til pakke %s fra gruppe %s"
-#: ../yum/__init__.py:1774
+#: ../yum/__init__.py:1816
#, python-format
msgid "No package named %s available to be installed"
msgstr "Ingen pakke med navn %s er tilgjendelig for installering"
-#: ../yum/__init__.py:1849
+#: ../yum/__init__.py:1891
#, python-format
msgid "Package tuple %s could not be found in packagesack"
msgstr "Pakke tuppel %s ble ikke funnet i sekken med pakker"
-#: ../yum/__init__.py:1917 ../yum/__init__.py:1960
+#: ../yum/__init__.py:1959 ../yum/__init__.py:1999
msgid "Invalid versioned dependency string, try quoting it."
msgstr ""
-"Den versjonerte strengen med avhengigheter er ugyldig, prøv og sette den i "
+"Den versjonerte strengen med avhengigheter er ugyldig, prøv å sette den i "
"anførelsestegn."
-#: ../yum/__init__.py:1919 ../yum/__init__.py:1962
+#: ../yum/__init__.py:1961 ../yum/__init__.py:2001
msgid "Invalid version flag"
msgstr "Ugyldig versjonsflagg"
-#: ../yum/__init__.py:1934 ../yum/__init__.py:1938
+#: ../yum/__init__.py:1973 ../yum/__init__.py:1977
#, python-format
msgid "No Package found for %s"
msgstr "Ingen pakke for %s er funnet"
-#: ../yum/__init__.py:2066
+#: ../yum/__init__.py:2105
msgid "Package Object was not a package object instance"
-msgstr "Pakkeobjekt var ikke en pakkeobjekt instans"
+msgstr "Pakkeobjekt var ikke en pakkeobjektinstans"
-#: ../yum/__init__.py:2070
+#: ../yum/__init__.py:2109
msgid "Nothing specified to install"
-msgstr "Det ble ikke bedt om og installere noe som helst"
+msgstr "Ingenting oppgitt for installasjon"
#. only one in there
-#: ../yum/__init__.py:2085
+#: ../yum/__init__.py:2124
#, python-format
msgid "Checking for virtual provide or file-provide for %s"
msgstr "Sjekker for virtuelle tilbydere eller tilbydere av filer for %s"
-#: ../yum/__init__.py:2091 ../yum/__init__.py:2380
+#: ../yum/__init__.py:2130 ../yum/__init__.py:2446
#, python-format
msgid "No Match for argument: %s"
-msgstr "Intet treff for argument: %s"
+msgstr "Ingen treff for argument: %s"
#. FIXME - this is where we could check to see if it already installed
#. for returning better errors
-#: ../yum/__init__.py:2146
+#: ../yum/__init__.py:2185
msgid "No package(s) available to install"
msgstr "Ingen pakke(r) er tilgjengelig for installering"
-#: ../yum/__init__.py:2158
+#: ../yum/__init__.py:2198
#, python-format
msgid "Package: %s - already in transaction set"
msgstr "Pakke: %s - allerede i transaksjonensettet"
-#: ../yum/__init__.py:2171
+#: ../yum/__init__.py:2212
#, python-format
msgid "Package %s already installed and latest version"
-msgstr "Pakke %s er allerede installert i siste og beste versjon"
+msgstr "Pakke %s er allerede installert i siste versjon"
-#: ../yum/__init__.py:2178
-#, fuzzy, python-format
+#: ../yum/__init__.py:2219
+#, python-format
msgid "Package matching %s already installed. Checking for update."
-msgstr "Pakke %s er allerede lagt inn, hopper over"
+msgstr "Pakke med treff på %s er allerede lagt inn. Ser etter oppdatering"
+
+#: ../yum/__init__.py:2230
+#, fuzzy, python-format
+msgid "Package %s is obsoleted by %s, trying to install %s instead"
+msgstr ""
+"Pakka %s er ikke installert, så den kan ikke oppdateres. Bruk kommandoen yum "
+"install for å legge den inn."
#. update everything (the easy case)
-#: ../yum/__init__.py:2220
+#: ../yum/__init__.py:2263
msgid "Updating Everything"
msgstr "Oppdaterer alt"
-#: ../yum/__init__.py:2304
+#: ../yum/__init__.py:2366
#, python-format
msgid "Package is already obsoleted: %s.%s %s:%s-%s"
msgstr "Pakka er allerede foreldet: %s.%s %s:%s-%s"
-#: ../yum/__init__.py:2377
+#: ../yum/__init__.py:2390
+#, fuzzy, python-format
+msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s"
+msgstr "Vil ikke oppdatere pakke som allerede er foreldet: %s.%s %s:%s-%s"
+
+#: ../yum/__init__.py:2443
#, python-format
msgid "%s"
msgstr "%s"
-#: ../yum/__init__.py:2392
+#. FIXME we should give the caller some nice way to hush this warning
+#. probably just a kwarg of 'silence_warnings' or something
+#. b/c when this is called from groupRemove() it makes a lot of
+#. garbage noise
+#: ../yum/__init__.py:2462
msgid "No package matched to remove"
msgstr "Kunne ikke finne noen passende pakke for fjerning"
-#: ../yum/__init__.py:2426
+#: ../yum/__init__.py:2496
#, python-format
msgid "Cannot open file: %s. Skipping."
msgstr "Kunne ikke åpne fil: %s. Hopper over."
-#: ../yum/__init__.py:2429
+#: ../yum/__init__.py:2498
#, python-format
msgid "Examining %s: %s"
-msgstr "Gransker: %s: %s"
+msgstr "Undersøker: %s: %s"
+
+#: ../yum/__init__.py:2504
+#, python-format
+msgid "Cannot add package %s to transaction. Not a compatible architecture: %s"
+msgstr ""
-#: ../yum/__init__.py:2436
+#: ../yum/__init__.py:2512
#, python-format
msgid ""
"Package %s not installed, cannot update it. Run yum install to install it "
@@ -1745,77 +1752,77 @@ msgstr ""
"Pakka %s er ikke installert, så den kan ikke oppdateres. Bruk kommandoen yum "
"install for å legge den inn."
-#: ../yum/__init__.py:2468
+#: ../yum/__init__.py:2545
#, python-format
msgid "Excluding %s"
msgstr "Ekskluderer %s"
-#: ../yum/__init__.py:2473
+#: ../yum/__init__.py:2549
#, python-format
msgid "Marking %s to be installed"
msgstr "Setter av %s for kommende installering"
-#: ../yum/__init__.py:2479
+#: ../yum/__init__.py:2554
#, python-format
msgid "Marking %s as an update to %s"
msgstr "Setter av %s som en oppdatering av %s"
-#: ../yum/__init__.py:2486
+#: ../yum/__init__.py:2559
#, python-format
msgid "%s: does not update installed package."
msgstr "%s: vil ikke oppdatere installert pakke."
-#: ../yum/__init__.py:2504
+#: ../yum/__init__.py:2576
msgid "Problem in reinstall: no package matched to remove"
msgstr "Problem ved reinstall: kunne ikke finne passende pakke og fjerne"
-#: ../yum/__init__.py:2515
+#: ../yum/__init__.py:2587
#, fuzzy, python-format
msgid "Package %s is allowed multiple installs, skipping"
msgstr "Pakke %s er allerede lagt inn, hopper over"
-#: ../yum/__init__.py:2522
+#: ../yum/__init__.py:2594
msgid "Problem in reinstall: no package matched to install"
msgstr "Problem ved reinstall: kunne ikke finne passende pakke og installere "
-#: ../yum/__init__.py:2570
+#: ../yum/__init__.py:2641
#, python-format
msgid "Retrieving GPG key from %s"
msgstr "Henter GPG-nøkkel fra %s"
-#: ../yum/__init__.py:2576
+#: ../yum/__init__.py:2647
msgid "GPG key retrieval failed: "
msgstr "Henting av GPG-nøkkel feilet: "
-#: ../yum/__init__.py:2589
+#: ../yum/__init__.py:2663
msgid "GPG key parsing failed: "
msgstr "Analyse av GPG-nøkkel feilet: "
-#: ../yum/__init__.py:2593
+#: ../yum/__init__.py:2667
#, python-format
msgid "GPG key at %s (0x%s) is already installed"
msgstr "GPG-nøkkel ved %s (0x%s) er allerede lagt inn"
#. Try installing/updating GPG key
-#: ../yum/__init__.py:2598
+#: ../yum/__init__.py:2672
#, python-format
msgid "Importing GPG key 0x%s \"%s\" from %s"
msgstr "Legger inn GPG-nøkkel 0x%s \"%s\" fra %s"
-#: ../yum/__init__.py:2610
+#: ../yum/__init__.py:2685
msgid "Not installing key"
msgstr "Legger ikke inn nøkkel"
-#: ../yum/__init__.py:2616
+#: ../yum/__init__.py:2691
#, python-format
msgid "Key import failed (code %d)"
msgstr "Import av nøkkel feilet (kode %d)"
-#: ../yum/__init__.py:2619
+#: ../yum/__init__.py:2694
msgid "Key imported successfully"
msgstr "Nøkler ble lagt inn med suksess"
-#: ../yum/__init__.py:2624
+#: ../yum/__init__.py:2699
#, python-format
msgid ""
"The GPG keys listed for the \"%s\" repository are already installed but they "
@@ -1827,74 +1834,79 @@ msgstr ""
"Sjekk at korrekt URL (gpgkey opsjonen) er oppgitt for denne\n"
"pakkeoversikten."
-#: ../yum/__init__.py:2633
+#: ../yum/__init__.py:2708
msgid "Import of key(s) didn't help, wrong key(s)?"
msgstr "Import av nøkler hjalp ikke, feil nøkler?"
-#: ../yum/__init__.py:2707
+#: ../yum/__init__.py:2789
msgid "Unable to find a suitable mirror."
msgstr "Kunne ikke finne passende filspeil"
-#: ../yum/__init__.py:2709
+#: ../yum/__init__.py:2791
msgid "Errors were encountered while downloading packages."
msgstr "Det oppstod feil ved nedlastning av pakker."
-#: ../yum/__init__.py:2774
+#: ../yum/__init__.py:2854
msgid "Test Transaction Errors: "
msgstr "Feil ved testtransaksjon: "
#. Mostly copied from YumOutput._outKeyValFill()
-#: ../yum/plugins.py:195
+#: ../yum/plugins.py:197
msgid "Loaded plugins: "
msgstr "Tillegg som er i bruk:"
-#: ../yum/plugins.py:206
+#: ../yum/plugins.py:208
#, fuzzy, python-format
msgid "No plugin match for: %s"
msgstr "Intet treff for argument: %s"
-#: ../yum/plugins.py:219
+#: ../yum/plugins.py:221
#, python-format
msgid "\"%s\" plugin is disabled"
msgstr "Tillegg: %s er ikke aktiv."
-#: ../yum/plugins.py:231
+#: ../yum/plugins.py:233
#, python-format
msgid "Plugin \"%s\" doesn't specify required API version"
msgstr "Tillegg \"%s\" tilfredstiller ikke versjonskravene fra Yum."
-#: ../yum/plugins.py:235
+#: ../yum/plugins.py:237
#, python-format
msgid "Plugin \"%s\" requires API %s. Supported API is %s."
msgstr "Tillegg \"%s\" krever API versjon: %s. Men støttet API versjon er %s."
-#: ../yum/plugins.py:264
+#: ../yum/plugins.py:266
#, python-format
msgid "Loading \"%s\" plugin"
msgstr "Laster tillegg \"%s\""
-#: ../yum/plugins.py:271
+#: ../yum/plugins.py:273
#, python-format
msgid ""
"Two or more plugins with the name \"%s\" exist in the plugin search path"
-msgstr "To eller flere tillegg har samme navn."
+msgstr "Det finnes to eller flere tillegg med navn «%s» i søkestien for tillegg"
-#: ../yum/plugins.py:291
+#: ../yum/plugins.py:293
#, python-format
msgid "Configuration file %s not found"
msgstr "Konfigurasjonsfila %s ble ikke funnet"
#. for
#. Configuration files for the plugin not found
-#: ../yum/plugins.py:294
+#: ../yum/plugins.py:296
#, python-format
msgid "Unable to find configuration file for plugin %s"
msgstr "Kunne ikke finne konfigurasjon for tillegg %s"
-#: ../yum/plugins.py:448
+#: ../yum/plugins.py:450
msgid "registration of commands not supported"
msgstr "registering av kommandoer er ikke støttet"
+#: ../yum/rpmtrans.py:78
+#, fuzzy
+msgid "Repackaging"
+msgstr "Pakker på nytt"
+
#: ../rpmUtils/oldUtils.py:26
#, python-format
msgid "Header cannot be opened or does not match %s, %s."
@@ -1924,6 +1936,33 @@ msgstr "Filhode til %s er ødelagt"
msgid "Error opening rpm %s - error %s"
msgstr "Kunne ikke åpen rpm pakke %s - feilen er %s"
+#~ msgid "Searching pkgSack for dep: %s"
+#~ msgstr "Søker i pkgSack etter avhengighet: %s"
+
+#~ msgid "Potential match for %s from %s"
+#~ msgstr "Potensielt treff for %s i %s"
+
+#~ msgid "Matched %s to require for %s"
+#~ msgstr "Passende %s for å tilfredstille %s"
+
+#~ msgid "Needed Require has already been looked up, cheating"
+#~ msgstr "Nødvendig avhengighet har allerede blitt plukket opp, jukser"
+
+#~ msgid "Needed Require is not a package name. Looking up: %s"
+#~ msgstr "Nødvendig avhengighet er ikke et navn på pakke. Ser etter: %s"
+
+#~ msgid "Potential Provider: %s"
+#~ msgstr "Potensiell tilbyder: %s"
+
+#~ msgid "Mode is %s for provider of %s: %s"
+#~ msgstr "Modus er %s for tilbyder av %s: %s"
+
+#~ msgid "Mode for pkg providing %s: %s"
+#~ msgstr "Modus for pakke som tilbyr %s: %s"
+
+#~ msgid "Unresolvable requirement %s for %s"
+#~ msgstr "Avhengighet %s kan ikke løses opp: %s"
+
#~ msgid "Looking for Obsoletes for %s"
#~ msgstr "Leter opp informasjon utgåtte pakker for %s"
commit ad44a577a353580229aac2a857f4c58ac51bcf1d
Merge: f91e0b4... 7ae8c7a...
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date: Sat Nov 1 09:10:12 2008 +0100
Merge branch 'yum-3_2_X' of ssh://yum.baseurl.org/srv/projects/yum/git/yum into yum-3_2_X
commit f91e0b47d2f95ba7fd56da627b7d8cabeda52928
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date: Sat Nov 1 09:06:05 2008 +0100
add some extra skip-broken debug output and minor cleanups
diff --git a/yum/__init__.py b/yum/__init__.py
index 784e826..dc50fd7 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -665,7 +665,11 @@ class YumBase(depsolve.Depsolve):
# Try another depsolve
if self.conf.skip_broken and rescode==1:
self.skipped_packages = [] # reset the public list of skipped packages.
+ sb_st = time.time()
+ self._printTransaction()
rescode, restring = self._skipPackagesWithProblems(rescode, restring)
+ self._printTransaction()
+ self.verbose_logger.debug('Skip-Broken time: %0.3f' % (time.time() - sb_st))
self.verbose_logger.debug('Depsolve time: %0.3f' % (time.time() - ds_st))
return rescode, restring
@@ -698,7 +702,6 @@ class YumBase(depsolve.Depsolve):
count += 1
self.verbose_logger.debug(_("Skip-broken round %i"), count)
depTree = self._buildDepTree()
- print depTree
startTs = set(self.tsInfo)
toRemove = set()
for po,wpo,err in self.po_with_problems:
@@ -740,7 +743,7 @@ class YumBase(depsolve.Depsolve):
# can have broken something that passed the tests earliere.
# FIXME: We need do this in a better way.
if rescode != 1:
- self.verbose_logger.debug('SKIPBROKEN: Check the current transaction one last time' )
+ self.verbose_logger.debug('SKIPBROKEN: sanity check the current transaction' )
self.tsInfo.resetResolved(hard=True)
self._checkMissingObsoleted() # This is totally insane, but needed :(
rescode, restring = self.resolveDeps()
@@ -757,7 +760,6 @@ class YumBase(depsolve.Depsolve):
# If we cant solve the problems the show the original error messages.
self.verbose_logger.info("Skip-broken could not solve problems")
return 1, orig_restring
-
return rescode, restring
def _checkMissingObsoleted(self):
@@ -766,10 +768,15 @@ 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
"""
+ added = set()
for txmbr in self.tsInfo:
for pkg in txmbr.obsoletes:
if not self.tsInfo.exists(pkg.pkgtup):
- self.tsInfo.addObsoleted(pkg,txmbr.po)
+ obs = self.tsInfo.addObsoleted(pkg,txmbr.po)
+ self.verbose_logger.debug('SKIPBROKEN: Added missing obsoleted %s (%s)' % (pkg,txmbr.po) )
+ added.add(obs)
+ return added
+
def _skipFromTransaction(self,po):
skipped = []
@@ -813,6 +820,22 @@ class YumBase(depsolve.Depsolve):
for p in l:
print "\t", p
+ def _printTransaction(self):
+ #transaction set states
+ state = { TS_UPDATE : "update",
+ TS_INSTALL : "install",
+ TS_TRUEINSTALL: "trueinstall",
+ TS_ERASE : "erase",
+ TS_OBSOLETED : "obsoleted",
+ TS_OBSOLETING : "obsoleting",
+ TS_AVAILABLE : "available",
+ TS_UPDATED : "updated"}
+
+ self.verbose_logger.log(logginglevels.DEBUG_2,"TSINFO: Current Transaction : %i member(s) " % len(self.tsInfo))
+ for txmbr in self.tsInfo:
+ msg = " %-11s : %s" % (state[txmbr.output_state],txmbr.po)
+ self.verbose_logger.log(logginglevels.DEBUG_2, msg)
+
def _getPackagesToRemove(self,po,deptree,toRemove):
'''
get the (related) pos to remove.
commit 7ae8c7a3aafce74b6855a6c86b1459c404b0e0ae
Author: James Antill <james at and.org>
Date: Sat Nov 1 00:50:55 2008 -0400
Fix the total download line to use utf8_width_fill too
diff --git a/output.py b/output.py
index 9972d1e..5191b9b 100755
--- a/output.py
+++ b/output.py
@@ -1012,8 +1012,8 @@ Remove %5.5s Package(s)
ui_time = tl.add(' %9s' % self.format_time(dl_time))
ui_end = tl.add(' ' * 5)
ui_bs = tl.add(' %5sB/s' % self.format_number(remote_size / dl_time))
- msg = "%-*.*s%s%s%s%s" % (tl.rest(), tl.rest(), _("Total"),
- ui_bs, ui_size, ui_time, ui_end)
+ msg = "%s%s%s%s%s" % (utf8_width_fill(_("Total"), tl.rest(), tl.rest()),
+ ui_bs, ui_size, ui_time, ui_end)
self.verbose_logger.log(logginglevels.INFO_2, msg)
commit 713b04ee43f6d718014846e1fbe82556a904c4d1
Author: James Antill <james at and.org>
Date: Fri Oct 31 13:58:36 2008 -0400
Fix "Loaded plugins" line to use correct utf8 widths
diff --git a/yum/plugins.py b/yum/plugins.py
index 82efdee..287fba7 100644
--- a/yum/plugins.py
+++ b/yum/plugins.py
@@ -37,6 +37,8 @@ from weakref import proxy as weakref
from yum import _
+from yum.i18n import utf8_width, utf8_width_fill
+
# TODO: expose rpm package sack objects to plugins (once finished)
# TODO: allow plugins to use the existing config stuff to define options for
# their own configuration files (would replace confString() etc).
@@ -198,7 +200,7 @@ class YumPlugins:
# Mostly copied from YumOutput._outKeyValFill()
key = _("Loaded plugins: ")
val = ", ".join(sorted(self._plugins))
- nxt = ' ' * (len(key) - 2) + ': '
+ nxt = ' ' * (utf8_width(key) - 2) + ': '
width = 80
if hasattr(self.base, 'term'):
width = self.base.term.columns
commit 2082cb6a16e980fac6e6eedd899858fb167f2b8e
Author: James Antill <james at and.org>
Date: Fri Oct 31 13:57:25 2008 -0400
Fix fmtKeyValFill, fmtColumns and progress to work with correct utf8 widths
diff --git a/output.py b/output.py
old mode 100644
new mode 100755
index d98e281..9972d1e
--- a/output.py
+++ b/output.py
@@ -39,6 +39,7 @@ from yum.rpmtrans import RPMBaseCallback
from yum.packageSack import packagesNewestByNameArch
from textwrap import fill
+from yum.i18n import utf8_width, utf8_width_fill
def _term_width():
""" Simple terminal width, limit to 20 chars. and make 0 == 80. """
@@ -299,7 +300,7 @@ class YumOutput:
if columns is None:
columns = [1] * cols
- total_width -= (sum(columns) + (cols - 1) + len(indent))
+ total_width -= (sum(columns) + (cols - 1) + utf8_width(indent))
while total_width > 0:
# Find which field all the spaces left will help best
helps = 0
@@ -351,8 +352,9 @@ class YumOutput:
continue
(align, width) = self._fmt_column_align_width(width)
- if len(val) <= width:
- msg += u"%%%s%ds " % (align, width)
+ if utf8_width(val) <= width:
+ msg += u"%s "
+ val = utf8_width_fill(val, width, left=(align == u'-'))
else:
msg += u"%s\n" + " " * (total_width + width + 1)
total_width += width
@@ -360,7 +362,8 @@ class YumOutput:
data.append(val)
(val, width) = columns[-1]
(align, width) = self._fmt_column_align_width(width)
- msg += u"%%%s%ds%s" % (align, width, end)
+ val = utf8_width_fill(val, width, left=(align == u'-'))
+ msg += u"%%s%s" % end
data.append(val)
return msg % tuple(data)
@@ -395,7 +398,7 @@ class YumOutput:
def fmtKeyValFill(self, key, val):
""" Return a key value pair in the common two column output format. """
val = to_str(val)
- keylen = len(key)
+ keylen = utf8_width(key)
cols = self.term.columns
nxt = ' ' * (keylen - 2) + ': '
ret = fill(val, width=cols,
@@ -572,7 +575,7 @@ class YumOutput:
continue
for (apkg, ipkg) in pkg_names2pkgs[item]:
pkg = ipkg or apkg
- envra = len(str(pkg)) + len(indent)
+ envra = utf8_width(str(pkg)) + utf8_width(indent)
rid = len(pkg.repoid)
for (d, v) in (('envra', envra), ('rid', rid)):
data[d].setdefault(v, 0)
@@ -1133,10 +1136,10 @@ class YumCliRPMCallBack(RPMBaseCallback):
percent = (te_current*100L)/te_total
if self.output and (sys.stdout.isatty() or te_current == te_total):
- fmt = self._makefmt(percent, ts_current, ts_total, pkgname=pkgname)
- # FIXME: Converting to utf8 here is a HACK ... but it's better
- # to underflow than overflow, see the i18n-rpm-progress example
- msg = fmt % (to_utf8(process), pkgname)
+ (fmt, wid1, wid2) = self._makefmt(percent, ts_current, ts_total,
+ pkgname=pkgname)
+ msg = fmt % (utf8_width_fill(process, wid1, wid1),
+ utf8_width_fill(pkgname, wid2, wid2))
if msg != self.lastmsg:
sys.stdout.write(to_unicode(msg))
sys.stdout.flush()
@@ -1161,7 +1164,7 @@ class YumCliRPMCallBack(RPMBaseCallback):
if pkgname is None:
pnl = 22
else:
- pnl = len(pkgname)
+ pnl = utf8_width(pkgname)
overhead = (2 * l) + 2 # Length of done, above
overhead += 19 # Length of begining
@@ -1179,20 +1182,23 @@ class YumCliRPMCallBack(RPMBaseCallback):
width = "%s.%s" % (marks, marks)
fmt_bar = "[%-" + width + "s]"
# pnl = str(28 + marks + 1)
- full_pnl = "%%-%d.%ds" % (pnl + marks + 1, pnl + marks + 1)
- half_pnl = "%%-%d.%ds" % (pnl, pnl)
+ full_pnl = pnl + marks + 1
if progress and percent == 100: # Don't chop pkg name on 100%
- fmt = "\r %-15.15s: " + full_pnl + " " + done
+ fmt = "\r %s: %s " + done
+ wid2 = full_pnl
elif progress:
bar = fmt_bar % (self.mark * int(marks * (percent / 100.0)), )
- fmt = "\r %-15.15s: " + half_pnl + " " + bar + " " + done
+ fmt = "\r %s: %s " + bar + " " + done
+ wid2 = pnl
elif percent == 100:
- fmt = " %-15.15s: " + full_pnl + " " + done
+ fmt = " %s: %s " + done
+ wid2 = full_pnl
else:
bar = fmt_bar % (self.mark * marks, )
- fmt = " %-15.15s: " + half_pnl + " " + bar + " " + done
- return fmt
+ fmt = " %s: %s " + bar + " " + done
+ wid2 = pnl
+ return fmt, 15, wid2
def progressbar(current, total, name=None):
@@ -1214,8 +1220,6 @@ def progressbar(current, total, name=None):
if name is None and current == total:
name = '-'
- if name is not None: # FIXME: This is a hack without utf8_width()
- width -= len(to_utf8(name)) - len(name)
end = ' %d/%d' % (current, total)
width -= len(end) + 1
@@ -1228,17 +1232,18 @@ def progressbar(current, total, name=None):
hashbar = mark * int(width * percent)
output = '\r[%-*s]%s' % (width, hashbar, end)
elif current == total: # Don't chop name on 100%
- output = '\r%-*.*s%s' % (width, width, name, end)
+ output = '\r%s%s' % (utf8_width_fill(name, width, width), end)
else:
width -= 4
if width < 0:
width = 0
nwid = width / 2
- if nwid > len(name):
- nwid = len(name)
+ if nwid > utf8_width(name):
+ nwid = utf8_width(name)
width -= nwid
hashbar = mark * int(width * percent)
- output = '\r%-*.*s: [%-*s]%s' % (nwid, nwid, name, width, hashbar, end)
+ output = '\r%s: [%-*s]%s' % (utf8_width_fill(name, nwid, nwid), width,
+ hashbar, end)
if current <= total:
sys.stdout.write(output)
commit 7cb7bddd642150b5274772b5cb7b13f7441367c4
Author: James Antill <james at and.org>
Date: Fri Oct 31 13:56:17 2008 -0400
Add utf8_width chop/fill as helper functions for printing utf8 stuff
diff --git a/yum/i18n.py b/yum/i18n.py
index ba71e4f..27dcc62 100755
--- a/yum/i18n.py
+++ b/yum/i18n.py
@@ -211,6 +211,52 @@ def utf8_width(msg):
ret += __utf8_ucp_width(ucs)
return ret
+def utf8_width_chop(msg, chop=None):
+ """ Return the textual width of a utf8 string, chopping it to a specified
+ value. """
+
+ if chop is None or utf8_width(msg) <= chop:
+ return utf8_width(msg), msg
+
+ ret = 0
+ passed_unicode = isinstance(msg, unicode)
+ msg_bytes = 0
+ msg = to_utf8(msg)
+ for (ucs, bytes) in __utf8_iter_ucs(msg):
+ if ucs is None:
+ width = bytes # Ugly ... should not feed bad utf8
+ else:
+ width = __utf8_ucp_width(ucs)
+
+ if chop is not None and (ret + width) > chop:
+ msg = msg[:msg_bytes]
+ break
+ ret += width
+ msg_bytes += bytes
+
+ if passed_unicode:
+ msg = to_unicode(msg)
+
+ return ret, msg
+
+def utf8_width_fill(msg, fill, chop=None, left=True):
+ """ Expand a utf8 msg to a specified "width" or chop to same.
+ Expansion can be left or right. """
+ passed_msg = msg
+ width, msg = utf8_width_chop(msg, chop)
+
+ if width < fill:
+ extra = " " * (fill - width)
+ if left:
+ msg = ''.join([msg, extra])
+ else:
+ msg = ''.join([extra, msg])
+
+ if isinstance(passed_msg, unicode):
+ return to_unicode(msg)
+
+ return msg
+
def utf8_valid(msg):
""" Return True/False is the text is valid utf8. """
for (ucs, bytes) in __utf8_iter_ucs(msg):
@@ -238,36 +284,45 @@ except:
if __name__ == "__main__":
import sys
- print " ---- Arguments/str ---- "
- for arg in sys.argv[1:]:
+ def out(arg):
arg = to_utf8(arg)
print "UTF8 :", arg
print "len :", len(arg)
+ arg = to_unicode(arg)
+ print "USC :", arg
+ print "len :", len(arg)
print "valid:", utf8_valid(arg)
print "width:", utf8_width(arg)
+ print "4.8 :", "%s%s%s" % ('<', utf8_width_fill(arg, 4, 8), '>')
+ print "4.3 :", "%s%s%s" % ('<', utf8_width_fill(arg, 4, 3), '>')
+ print "4.2 :", "%s%s%s" % ('<', utf8_width_fill(arg, 4, 2), '>')
+ print "4.1 :", "%s%s%s" % ('<', utf8_width_fill(arg, 4, 1), '>')
+ print "3.3 :", "%s%s%s" % ('<', utf8_width_fill(arg, 3, 3), '>')
+ print "3.2 :", "%s%s%s" % ('<', utf8_width_fill(arg, 3, 2), '>')
+ print "3.1 :", "%s%s%s" % ('<', utf8_width_fill(arg, 3, 1), '>')
+ print "40.79:", "%s%s%s" % ('<', utf8_width_fill(arg, 40, 79), '>')
+ print "40.20:", "%s%s%s" % ('<', utf8_width_fill(arg, 40, 20), '>')
print ''
+ print " ---- Arguments/str ---- "
+ for arg in sys.argv[1:]:
+ out(arg)
+
print " ---- Arguments/gettext ---- "
for arg in sys.argv[1:]:
- arg = to_utf8(_(arg))
- print "UTF8 :", arg
- print "len :", len(arg)
- print "valid:", utf8_valid(arg)
- print "width:", utf8_width(arg)
- print ''
+ try:
+ arg = _(arg)
+ except UnicodeDecodeError:
+ continue
+ out(arg)
if len(sys.argv) > 2:
print " ---- Arguments/str/all ---- "
- arg = to_utf8(sys.argv[1] % sys.argv[2:])
- print "UTF8 :", arg
- print "len :", len(arg)
- print "valid:", utf8_valid(arg)
- print "width:", utf8_width(arg)
- print ''
+ out(sys.argv[1] % sys.argv[2:])
+
print " ---- Arguments/gettext/all ---- "
- arg = to_utf8(_(sys.argv[1]) % map(_, sys.argv[2:]))
- print "UTF8 :", arg
- print "len :", len(arg)
- print "valid:", utf8_valid(arg)
- print "width:", utf8_width(arg)
- print ''
+ try:
+ arg = _(sys.argv[1]) % map(_, sys.argv[2:])
+ except UnicodeDecodeError:
+ sys.exit(0)
+ out(arg)
commit fed9a04e3973d4d827092e66b60f48004a28cd46
Author: James Antill <james at and.org>
Date: Fri Oct 31 11:45:44 2008 -0400
Add testing code for utf8_width
diff --git a/yum/i18n.py b/yum/i18n.py
old mode 100644
new mode 100755
index f14dc19..ba71e4f
--- a/yum/i18n.py
+++ b/yum/i18n.py
@@ -234,3 +234,40 @@ except:
returning the same text
'''
_ = dummy_wrapper
+
+if __name__ == "__main__":
+ import sys
+
+ print " ---- Arguments/str ---- "
+ for arg in sys.argv[1:]:
+ arg = to_utf8(arg)
+ print "UTF8 :", arg
+ print "len :", len(arg)
+ print "valid:", utf8_valid(arg)
+ print "width:", utf8_width(arg)
+ print ''
+
+ print " ---- Arguments/gettext ---- "
+ for arg in sys.argv[1:]:
+ arg = to_utf8(_(arg))
+ print "UTF8 :", arg
+ print "len :", len(arg)
+ print "valid:", utf8_valid(arg)
+ print "width:", utf8_width(arg)
+ print ''
+
+ if len(sys.argv) > 2:
+ print " ---- Arguments/str/all ---- "
+ arg = to_utf8(sys.argv[1] % sys.argv[2:])
+ print "UTF8 :", arg
+ print "len :", len(arg)
+ print "valid:", utf8_valid(arg)
+ print "width:", utf8_width(arg)
+ print ''
+ print " ---- Arguments/gettext/all ---- "
+ arg = to_utf8(_(sys.argv[1]) % map(_, sys.argv[2:]))
+ print "UTF8 :", arg
+ print "len :", len(arg)
+ print "valid:", utf8_valid(arg)
+ print "width:", utf8_width(arg)
+ print ''
commit ea1caa2bdd7e9d8fd22e2eeebef53ad810c94fdb
Author: James Antill <james at and.org>
Date: Wed Oct 29 17:05:05 2008 -0400
Add utf8_width to i18n, so we can do progress bars etc. well
diff --git a/yum/i18n.py b/yum/i18n.py
index 86f3ce2..f14dc19 100644
--- a/yum/i18n.py
+++ b/yum/i18n.py
@@ -13,11 +13,211 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+from yum.misc import to_unicode, to_utf8
+
def dummy_wrapper(str):
'''
Dummy Translation wrapper, just returning the same string.
'''
- return str
+ return to_unicode(str)
+
+# This is ported from ustr_utf8_* which I got from:
+# http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c
+# I've tried to leave it close to the original C (same names etc.) so that
+# it is easy to read/compare both versions...
+
+# ----------------------------- BEG utf8 -----------------------------
+# This is an implementation of wcwidth() and wcswidth() (defined in
+# IEEE Std 1002.1-2001) for Unicode.
+#
+# http://www.opengroup.org/onlinepubs/007904975/functions/wcwidth.html
+# http://www.opengroup.org/onlinepubs/007904975/functions/wcswidth.html
+#
+# In fixed-width output devices, Latin characters all occupy a single
+# "cell" position of equal width, whereas ideographic CJK characters
+# occupy two such cells. Interoperability between terminal-line
+# applications and (teletype-style) character terminals using the
+# UTF-8 encoding requires agreement on which character should advance
+# the cursor by how many cell positions. No established formal
+# standards exist at present on which Unicode character shall occupy
+# how many cell positions on character terminals. These routines are
+# a first attempt of defining such behavior based on simple rules
+# applied to data provided by the Unicode Consortium.
+#
+# [...]
+#
+# Markus Kuhn -- 2007-05-26 (Unicode 5.0)
+#
+# Permission to use, copy, modify, and distribute this software
+# for any purpose and without fee is hereby granted. The author
+# disclaims all warranties with regard to this software.
+#
+# Latest version: http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c
+
+def __utf8_bisearch(ucs, table):
+ """ auxiliary function for binary search in interval table. """
+
+ min = 0
+ max = len(table) - 1
+ if ucs < table[min][0] or ucs > table[max][1]:
+ return False
+
+ while max >= min:
+ mid = (min + max) / 2;
+ if ucs > table[mid][1]:
+ min = mid + 1;
+ elif ucs < table[mid][0]:
+ max = mid - 1;
+ else:
+ return True
+
+ return False
+
+def __utf8_ucp_width(ucs):
+ """ Get the textual width of a ucs character. """
+ # sorted list of non-overlapping intervals of non-spacing characters
+ # generated by "uniset +cat=Me +cat=Mn +cat=Cf -00AD +1160-11FF +200B c"
+ combining = [
+ ( 0x0300, 0x036F ), ( 0x0483, 0x0486 ), ( 0x0488, 0x0489 ),
+ ( 0x0591, 0x05BD ), ( 0x05BF, 0x05BF ), ( 0x05C1, 0x05C2 ),
+ ( 0x05C4, 0x05C5 ), ( 0x05C7, 0x05C7 ), ( 0x0600, 0x0603 ),
+ ( 0x0610, 0x0615 ), ( 0x064B, 0x065E ), ( 0x0670, 0x0670 ),
+ ( 0x06D6, 0x06E4 ), ( 0x06E7, 0x06E8 ), ( 0x06EA, 0x06ED ),
+ ( 0x070F, 0x070F ), ( 0x0711, 0x0711 ), ( 0x0730, 0x074A ),
+ ( 0x07A6, 0x07B0 ), ( 0x07EB, 0x07F3 ), ( 0x0901, 0x0902 ),
+ ( 0x093C, 0x093C ), ( 0x0941, 0x0948 ), ( 0x094D, 0x094D ),
+ ( 0x0951, 0x0954 ), ( 0x0962, 0x0963 ), ( 0x0981, 0x0981 ),
+ ( 0x09BC, 0x09BC ), ( 0x09C1, 0x09C4 ), ( 0x09CD, 0x09CD ),
+ ( 0x09E2, 0x09E3 ), ( 0x0A01, 0x0A02 ), ( 0x0A3C, 0x0A3C ),
+ ( 0x0A41, 0x0A42 ), ( 0x0A47, 0x0A48 ), ( 0x0A4B, 0x0A4D ),
+ ( 0x0A70, 0x0A71 ), ( 0x0A81, 0x0A82 ), ( 0x0ABC, 0x0ABC ),
+ ( 0x0AC1, 0x0AC5 ), ( 0x0AC7, 0x0AC8 ), ( 0x0ACD, 0x0ACD ),
+ ( 0x0AE2, 0x0AE3 ), ( 0x0B01, 0x0B01 ), ( 0x0B3C, 0x0B3C ),
+ ( 0x0B3F, 0x0B3F ), ( 0x0B41, 0x0B43 ), ( 0x0B4D, 0x0B4D ),
+ ( 0x0B56, 0x0B56 ), ( 0x0B82, 0x0B82 ), ( 0x0BC0, 0x0BC0 ),
+ ( 0x0BCD, 0x0BCD ), ( 0x0C3E, 0x0C40 ), ( 0x0C46, 0x0C48 ),
+ ( 0x0C4A, 0x0C4D ), ( 0x0C55, 0x0C56 ), ( 0x0CBC, 0x0CBC ),
+ ( 0x0CBF, 0x0CBF ), ( 0x0CC6, 0x0CC6 ), ( 0x0CCC, 0x0CCD ),
+ ( 0x0CE2, 0x0CE3 ), ( 0x0D41, 0x0D43 ), ( 0x0D4D, 0x0D4D ),
+ ( 0x0DCA, 0x0DCA ), ( 0x0DD2, 0x0DD4 ), ( 0x0DD6, 0x0DD6 ),
+ ( 0x0E31, 0x0E31 ), ( 0x0E34, 0x0E3A ), ( 0x0E47, 0x0E4E ),
+ ( 0x0EB1, 0x0EB1 ), ( 0x0EB4, 0x0EB9 ), ( 0x0EBB, 0x0EBC ),
+ ( 0x0EC8, 0x0ECD ), ( 0x0F18, 0x0F19 ), ( 0x0F35, 0x0F35 ),
+ ( 0x0F37, 0x0F37 ), ( 0x0F39, 0x0F39 ), ( 0x0F71, 0x0F7E ),
+ ( 0x0F80, 0x0F84 ), ( 0x0F86, 0x0F87 ), ( 0x0F90, 0x0F97 ),
+ ( 0x0F99, 0x0FBC ), ( 0x0FC6, 0x0FC6 ), ( 0x102D, 0x1030 ),
+ ( 0x1032, 0x1032 ), ( 0x1036, 0x1037 ), ( 0x1039, 0x1039 ),
+ ( 0x1058, 0x1059 ), ( 0x1160, 0x11FF ), ( 0x135F, 0x135F ),
+ ( 0x1712, 0x1714 ), ( 0x1732, 0x1734 ), ( 0x1752, 0x1753 ),
+ ( 0x1772, 0x1773 ), ( 0x17B4, 0x17B5 ), ( 0x17B7, 0x17BD ),
+ ( 0x17C6, 0x17C6 ), ( 0x17C9, 0x17D3 ), ( 0x17DD, 0x17DD ),
+ ( 0x180B, 0x180D ), ( 0x18A9, 0x18A9 ), ( 0x1920, 0x1922 ),
+ ( 0x1927, 0x1928 ), ( 0x1932, 0x1932 ), ( 0x1939, 0x193B ),
+ ( 0x1A17, 0x1A18 ), ( 0x1B00, 0x1B03 ), ( 0x1B34, 0x1B34 ),
+ ( 0x1B36, 0x1B3A ), ( 0x1B3C, 0x1B3C ), ( 0x1B42, 0x1B42 ),
+ ( 0x1B6B, 0x1B73 ), ( 0x1DC0, 0x1DCA ), ( 0x1DFE, 0x1DFF ),
+ ( 0x200B, 0x200F ), ( 0x202A, 0x202E ), ( 0x2060, 0x2063 ),
+ ( 0x206A, 0x206F ), ( 0x20D0, 0x20EF ), ( 0x302A, 0x302F ),
+ ( 0x3099, 0x309A ), ( 0xA806, 0xA806 ), ( 0xA80B, 0xA80B ),
+ ( 0xA825, 0xA826 ), ( 0xFB1E, 0xFB1E ), ( 0xFE00, 0xFE0F ),
+ ( 0xFE20, 0xFE23 ), ( 0xFEFF, 0xFEFF ), ( 0xFFF9, 0xFFFB ),
+ ( 0x10A01, 0x10A03 ), ( 0x10A05, 0x10A06 ), ( 0x10A0C, 0x10A0F ),
+ ( 0x10A38, 0x10A3A ), ( 0x10A3F, 0x10A3F ), ( 0x1D167, 0x1D169 ),
+ ( 0x1D173, 0x1D182 ), ( 0x1D185, 0x1D18B ), ( 0x1D1AA, 0x1D1AD ),
+ ( 0x1D242, 0x1D244 ), ( 0xE0001, 0xE0001 ), ( 0xE0020, 0xE007F ),
+ ( 0xE0100, 0xE01EF )]
+
+ # test for 8-bit control characters
+ if ucs == 0:
+ return 0
+
+ if ucs < 32 or (ucs >= 0x7f and ucs < 0xa0):
+ return (-1)
+
+ if __utf8_bisearch(ucs, combining):
+ return 0
+
+ # if we arrive here, ucs is not a combining or C0/C1 control character
+
+ return (1 +
+ (ucs >= 0x1100 and
+ (ucs <= 0x115f or # Hangul Jamo init. consonants
+ ucs == 0x2329 or ucs == 0x232a or
+ (ucs >= 0x2e80 and ucs <= 0xa4cf and
+ ucs != 0x303f) or # CJK ... Yi
+ (ucs >= 0xac00 and ucs <= 0xd7a3) or # Hangul Syllables
+ (ucs >= 0xf900 and ucs <= 0xfaff) or # CJK Compatibility Ideographs
+ (ucs >= 0xfe10 and ucs <= 0xfe19) or # Vertical forms
+ (ucs >= 0xfe30 and ucs <= 0xfe6f) or # CJK Compatibility Forms
+ (ucs >= 0xff00 and ucs <= 0xff60) or # Fullwidth Forms
+ (ucs >= 0xffe0 and ucs <= 0xffe6) or
+ (ucs >= 0x20000 and ucs <= 0x2fffd) or
+ (ucs >= 0x30000 and ucs <= 0x3fffd))))
+
+
+def __utf8_iter_ints(msg):
+ for byte in to_utf8(msg):
+ yield ord(byte)
+def __utf8_iter_ucs(msg):
+ uiter = __utf8_iter_ints(msg)
+ for byte0 in uiter:
+ if byte0 < 0x80: # 0xxxxxxx
+ yield (byte0, 1)
+ elif (byte0 & 0xe0) == 0xc0: # 110XXXXx 10xxxxxx
+ byte1 = uiter.next()
+ if (((byte0 & 0xc0) != 0x80) or
+ ((byte1 & 0xfe) == 0xc0)): # overlong?
+ yield (None, 2)
+ return
+ yield ((((byte0 & 0x1f) << 6) | (byte1 & 0x3f)), 2)
+ elif (byte0 & 0xf0) == 0xe0: # 1110XXXX 10Xxxxxx 10xxxxxx
+ byte1 = uiter.next()
+ byte2 = uiter.next()
+ if (((byte1 & 0xc0) != 0x80) or ((byte2 & 0xc0) != 0x80) or
+ ((byte0 == 0xe0) and ((byte1 & 0xe0) == 0x80)) or # overlong?
+ ((byte0 == 0xed) and ((byte1 & 0xe0) == 0xa0)) or # surrogate?
+ ((byte0 == 0xef) and (byte1 == 0xbf) and
+ ((byte2 & 0xfe) == 0xbe))): # U+FFFE or U+FFFF?
+ yield (None, 3)
+ return
+ yield ((((byte0 & 0x0f) << 12) | ((byte1 & 0x3f) << 6) |
+ (byte2 & 0x3f)), 3)
+ elif (byte0 & 0xf8) == 0xf0: # 11110XXX 10XXxxxx 10xxxxxx 10xxxxxx
+ byte1 = uiter.next()
+ byte2 = uiter.next()
+ byte3 = uiter.next()
+ if (((byte1 & 0xc0) != 0x80) or
+ ((byte2 & 0xc0) != 0x80) or
+ ((byte3 & 0xc0) != 0x80) or
+ ((byte0 == 0xf0) and ((byte1 & 0xf0) == 0x80)) or # overlong?
+ ((byte0 == 0xf4) and (byte1 > 0x8f)) or # > U+10FFFF?
+ (byte0 > 0xf4)): # > U+10FFFF?
+ yield (None, 4)
+ return
+
+ yield ((((byte0 & 0x07) << 18) | ((byte1 & 0x3f) << 12) |
+ ((byte2 & 0x3f) << 6) | (byte3 & 0x3f)), 4)
+ else:
+ yield (None, 1)
+ return
+
+def utf8_width(msg):
+ """ Get the textual width of a utf8 string. """
+ ret = 0
+ for (ucs, bytes) in __utf8_iter_ucs(msg):
+ if ucs is None:
+ ret += bytes # Ugly ... should not feed bad utf8
+ else:
+ ret += __utf8_ucp_width(ucs)
+ return ret
+
+def utf8_valid(msg):
+ """ Return True/False is the text is valid utf8. """
+ for (ucs, bytes) in __utf8_iter_ucs(msg):
+ if ucs is None:
+ return False
+ return True
+# ----------------------------- END utf8 -----------------------------
try:
'''
commit ca60206e366d2212ef83843f264a3707548869c4
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date: Fri Oct 31 12:58:35 2008 +0100
* Added an extra depsolve on the result transaction after skip-broken has ripped out the disty stuff, to make sure that allready depsolved packages, not has been broken by the skipped package.
* Added a check for missing TS_OBSOLETED members, this problem occours if multiple packages are obsoleting the same packages and one of these get skipped. (rhbz# 468785) (It is totally DIRTY HACK, but need for now)
diff --git a/test/skipbroken-tests.py b/test/skipbroken-tests.py
index 8723975..968989c 100644
--- a/test/skipbroken-tests.py
+++ b/test/skipbroken-tests.py
@@ -440,8 +440,10 @@ class SkipBrokenTests(DepsolveTests):
d1.addProvides("libdb-4.3.so")
od1 = self.repoPackage('compat-db46', '4.6.21',"5")
od1.addProvides("libdb-4.6.so")
+ od1.addObsoletes("compat-db")
od2 = self.repoPackage('compat-db45', '4.6.21',"5")
od2.addProvides("libdb-4.5.so")
+ od2.addObsoletes("compat-db")
r1 = self.instPackage('rpm', '4.6.0-0','0.rc1.3')
r1.addRequires("libdb-4.5.so")
@@ -453,15 +455,18 @@ class SkipBrokenTests(DepsolveTests):
r4.addRequires("libdb-4.5.so")
ur1 = self.repoPackage('rpm', '4.6.0-0','0.rc1.5')
+ ur1.addRequires("libdb-4.5.so")
ur1.addRequires("compat-db45")
ur2 = self.repoPackage('rpm-libs', '4.6.0-0','0.rc1.5')
+ ur2.addRequires("libdb-4.5.so")
ur2.addRequires("compat-db45")
ur3 = self.repoPackage('rpm-build', '4.6.0-0','0.rc1.5')
+ ur3.addRequires("libdb-4.5.so")
ur3.addRequires("compat-db45")
ur4 = self.repoPackage('rpm-python', '4.6.0-0','0.rc1.5')
+ ur4.addRequires("libdb-4.5.so")
ur4.addRequires("compat-db45")
-
self.tsInfo.addObsoleting(od2, oldpo=d1)
self.tsInfo.addObsoleted(d1, od2)
self.tsInfo.addObsoleting(od1, oldpo=d1)
@@ -471,8 +476,56 @@ class SkipBrokenTests(DepsolveTests):
self.tsInfo.addUpdate(ur3, oldpo=r3)
self.tsInfo.addUpdate(ur4, oldpo=r4)
- self.assertEquals('ok', *self.resolveCode(skip=True))
+ self.assertEquals('empty', *self.resolveCode(skip=True))
self.assertResult([c1,d1,r1,r2,r3,r4])
+
+ def testBumpedSoName3(self):
+ """
+ https://bugzilla.redhat.com/show_bug.cgi?id=468785
+ yum update compat-db46
+ """
+ c1 = self.instPackage('cyrus-sasl-lib', '2.1.22',"18")
+ c1.addRequires("libdb-4.3.so")
+
+ d1 = self.instPackage('compat-db', '4.6.21',"4")
+ d1.addProvides("libdb-4.3.so")
+ od1 = self.repoPackage('compat-db46', '4.6.21',"5")
+ od1.addProvides("libdb-4.6.so")
+ od1.addObsoletes("compat-db")
+ od2 = self.repoPackage('compat-db45', '4.6.21',"5")
+ od2.addProvides("libdb-4.5.so")
+ od2.addObsoletes("compat-db")
+
+ r1 = self.instPackage('rpm', '4.6.0-0','0.rc1.3')
+ r1.addRequires("libdb-4.5.so")
+ r2 = self.instPackage('rpm-libs', '4.6.0-0','0.rc1.3')
+ r2.addRequires("libdb-4.5.so")
+ r3 = self.instPackage('rpm-build', '4.6.0-0','0.rc1.3')
+ r3.addRequires("libdb-4.5.so")
+ r4 = self.instPackage('rpm-python', '4.6.0-0','0.rc1.3')
+ r4.addRequires("libdb-4.5.so")
+
+ ur1 = self.repoPackage('rpm', '4.6.0-0','0.rc1.5')
+ ur1.addRequires("libdb-4.5.so")
+ ur1.addRequires("compat-db45")
+ ur2 = self.repoPackage('rpm-libs', '4.6.0-0','0.rc1.5')
+ ur2.addRequires("libdb-4.5.so")
+ ur2.addRequires("compat-db45")
+ ur3 = self.repoPackage('rpm-build', '4.6.0-0','0.rc1.5')
+ ur3.addRequires("libdb-4.5.so")
+ ur3.addRequires("compat-db45")
+ ur4 = self.repoPackage('rpm-python', '4.6.0-0','0.rc1.5')
+ ur4.addRequires("libdb-4.5.so")
+ ur4.addRequires("compat-db45")
+
+ self.tsInfo.addObsoleting(od1, oldpo=d1)
+ self.tsInfo.addObsoleted(d1, od1)
+ self.tsInfo.addUpdate(ur1, oldpo=r1)
+ self.tsInfo.addUpdate(ur2, oldpo=r2)
+ self.tsInfo.addUpdate(ur3, oldpo=r3)
+ self.tsInfo.addUpdate(ur4, oldpo=r4)
+
+ self.assertEquals('err', *self.resolveCode(skip=False))
def resolveCode(self,skip = False):
solver = YumBase()
diff --git a/yum/__init__.py b/yum/__init__.py
index 151806b..784e826 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -694,10 +694,11 @@ class YumBase(depsolve.Depsolve):
removed_from_sack = set()
orig_restring = restring # Keep the old error messages
hard_restart = False
- while len(self.po_with_problems) > 0 and rescode == 1:
+ while (len(self.po_with_problems) > 0 and rescode == 1):
count += 1
self.verbose_logger.debug(_("Skip-broken round %i"), count)
depTree = self._buildDepTree()
+ print depTree
startTs = set(self.tsInfo)
toRemove = set()
for po,wpo,err in self.po_with_problems:
@@ -734,6 +735,15 @@ class YumBase(depsolve.Depsolve):
else:
self.verbose_logger.debug('SKIPBROKEN: resetting already resovled packages (transaction not changed)' )
self.tsInfo.resetResolved(hard=True)
+ # if we are all clear, then we have to check that the whole current transaction
+ # can complete the depsolve without error, because the packages skipped
+ # can have broken something that passed the tests earliere.
+ # FIXME: We need do this in a better way.
+ if rescode != 1:
+ self.verbose_logger.debug('SKIPBROKEN: Check the current transaction one last time' )
+ self.tsInfo.resetResolved(hard=True)
+ self._checkMissingObsoleted() # This is totally insane, but needed :(
+ rescode, restring = self.resolveDeps()
if rescode != 1:
self.verbose_logger.debug(_("Skip-broken took %i rounds "), count)
self.verbose_logger.info(_('\nPackages skipped because of dependency problems:'))
@@ -750,6 +760,17 @@ class YumBase(depsolve.Depsolve):
return rescode, restring
+ def _checkMissingObsoleted(self):
+ """
+ If multiple packages is obsoleting the same package
+ 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 pkg in txmbr.obsoletes:
+ if not self.tsInfo.exists(pkg.pkgtup):
+ self.tsInfo.addObsoleted(pkg,txmbr.po)
+
def _skipFromTransaction(self,po):
skipped = []
if rpmUtils.arch.isMultiLibArch():
commit c4c8227915acf0b7ca259ba9d29269a8be50d898
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date: Fri Oct 31 10:10:52 2008 +0100
Added testcase to show the skipbroken problem in rhbz #468785
diff --git a/test/skipbroken-tests.py b/test/skipbroken-tests.py
index 28ce279..8723975 100644
--- a/test/skipbroken-tests.py
+++ b/test/skipbroken-tests.py
@@ -428,6 +428,51 @@ class SkipBrokenTests(DepsolveTests):
self.tsInfo.addUpdate(f2, oldpo=f1)
self.assertEquals('ok', *self.resolveCode(skip=True))
self.assertResult([a1,b1,c1,d1,e2,f2])
+
+ def testBumpedSoName2(self):
+ """
+ https://bugzilla.redhat.com/show_bug.cgi?id=468785
+ """
+ c1 = self.instPackage('cyrus-sasl-lib', '2.1.22',"18")
+ c1.addRequires("libdb-4.3.so")
+
+ d1 = self.instPackage('compat-db', '4.6.21',"4")
+ d1.addProvides("libdb-4.3.so")
+ od1 = self.repoPackage('compat-db46', '4.6.21',"5")
+ od1.addProvides("libdb-4.6.so")
+ od2 = self.repoPackage('compat-db45', '4.6.21',"5")
+ od2.addProvides("libdb-4.5.so")
+
+ r1 = self.instPackage('rpm', '4.6.0-0','0.rc1.3')
+ r1.addRequires("libdb-4.5.so")
+ r2 = self.instPackage('rpm-libs', '4.6.0-0','0.rc1.3')
+ r2.addRequires("libdb-4.5.so")
+ r3 = self.instPackage('rpm-build', '4.6.0-0','0.rc1.3')
+ r3.addRequires("libdb-4.5.so")
+ r4 = self.instPackage('rpm-python', '4.6.0-0','0.rc1.3')
+ r4.addRequires("libdb-4.5.so")
+
+ ur1 = self.repoPackage('rpm', '4.6.0-0','0.rc1.5')
+ ur1.addRequires("compat-db45")
+ ur2 = self.repoPackage('rpm-libs', '4.6.0-0','0.rc1.5')
+ ur2.addRequires("compat-db45")
+ ur3 = self.repoPackage('rpm-build', '4.6.0-0','0.rc1.5')
+ ur3.addRequires("compat-db45")
+ ur4 = self.repoPackage('rpm-python', '4.6.0-0','0.rc1.5')
+ ur4.addRequires("compat-db45")
+
+
+ self.tsInfo.addObsoleting(od2, oldpo=d1)
+ self.tsInfo.addObsoleted(d1, od2)
+ self.tsInfo.addObsoleting(od1, oldpo=d1)
+ self.tsInfo.addObsoleted(d1, od1)
+ self.tsInfo.addUpdate(ur1, oldpo=r1)
+ self.tsInfo.addUpdate(ur2, oldpo=r2)
+ self.tsInfo.addUpdate(ur3, oldpo=r3)
+ self.tsInfo.addUpdate(ur4, oldpo=r4)
+
+ self.assertEquals('ok', *self.resolveCode(skip=True))
+ self.assertResult([c1,d1,r1,r2,r3,r4])
def resolveCode(self,skip = False):
solver = YumBase()
commit 5656dc7b9f2d9a9043ccfd9ceb527155453d73a5
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date: Thu Oct 30 07:43:20 2008 +0100
Extra skip-broken debug info
diff --git a/yum/__init__.py b/yum/__init__.py
index c4cb4fa..151806b 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -720,6 +720,7 @@ class YumBase(depsolve.Depsolve):
if hard_restart:
break # Bail out
else:
+ self.verbose_logger.debug('SKIPBROKEN: resetting already resovled packages (no packages to skip)' )
self.tsInfo.resetResolved(hard=True)
rescode, restring = self.resolveDeps()
endTs = set(self.tsInfo)
@@ -731,6 +732,7 @@ class YumBase(depsolve.Depsolve):
if hard_restart:
break # Bail out
else:
+ self.verbose_logger.debug('SKIPBROKEN: resetting already resovled packages (transaction not changed)' )
self.tsInfo.resetResolved(hard=True)
if rescode != 1:
self.verbose_logger.debug(_("Skip-broken took %i rounds "), count)
commit 5e25798c6b86dca4a07454c4f86be0eb27b1d17f
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date: Wed Oct 29 14:58:50 2008 +0100
make skip-broken better and solve the latest added test case
diff --git a/test/skipbroken-tests.py b/test/skipbroken-tests.py
index 9992416..28ce279 100644
--- a/test/skipbroken-tests.py
+++ b/test/skipbroken-tests.py
@@ -386,11 +386,11 @@ class SkipBrokenTests(DepsolveTests):
def testBumpedSoName1(self):
- """ This will fail because the skip-broken code can handle this case
+ """
d2 need a lib from b1, so the update fails.
d2 and b2 get skipped, but the installed b1 needs a
lib from a1, but it has been updated to a2, so it is
- no longer there.
+ no longer there. so a2 needs to be skipped to
"""
a1 = self.instPackage('a', '1', arch='x86_64')
a1.addProvides("liba.so.1()(64bit)")
@@ -427,7 +427,7 @@ class SkipBrokenTests(DepsolveTests):
self.tsInfo.addUpdate(e2, oldpo=e1)
self.tsInfo.addUpdate(f2, oldpo=f1)
self.assertEquals('ok', *self.resolveCode(skip=True))
- #self.assertResult([a2,b1,c2,d1,e2,f2])
+ self.assertResult([a1,b1,c1,d1,e2,f2])
def resolveCode(self,skip = False):
solver = YumBase()
diff --git a/yum/__init__.py b/yum/__init__.py
index 04f2aac..c4cb4fa 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -692,7 +692,8 @@ class YumBase(depsolve.Depsolve):
count = 0
skipped_po = set()
removed_from_sack = set()
- orig_restring = restring # Keep the old error messages
+ orig_restring = restring # Keep the old error messages
+ hard_restart = False
while len(self.po_with_problems) > 0 and rescode == 1:
count += 1
self.verbose_logger.debug(_("Skip-broken round %i"), count)
@@ -712,14 +713,25 @@ class YumBase(depsolve.Depsolve):
# make sure we get the compat arch packages skip from pkgSack and up too.
if skip not in removed_from_sack and skip.repoid == 'installed':
_remove_from_sack(skip)
- if not toRemove: # Nothing was removed, so we still got a problem
- break # Bail out
+ # Nothing was removed, so we still got a problem
+ # the first time we get here we reset the resolved members of
+ # tsInfo and takes a new run all members in the current transaction
+ if not toRemove:
+ if hard_restart:
+ break # Bail out
+ else:
+ self.tsInfo.resetResolved(hard=True)
rescode, restring = self.resolveDeps()
endTs = set(self.tsInfo)
# Check if tsInfo has changes since we started to skip packages
# if there is no changes then we got a loop.
+ # the first time we get here we reset the resolved members of
+ # tsInfo and takes a new run all members in the current transaction
if startTs-endTs == set():
- break # bail out
+ if hard_restart:
+ break # Bail out
+ else:
+ self.tsInfo.resetResolved(hard=True)
if rescode != 1:
self.verbose_logger.debug(_("Skip-broken took %i rounds "), count)
self.verbose_logger.info(_('\nPackages skipped because of dependency problems:'))
commit 55f6d9757c975b25e10e9f79df57c4336785f57d
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date: Wed Oct 29 12:43:08 2008 +0100
added a failing skip-broken test case there reproduces the case in rhbz #468394 and others
diff --git a/test/skipbroken-tests.py b/test/skipbroken-tests.py
index 5129cde..9992416 100644
--- a/test/skipbroken-tests.py
+++ b/test/skipbroken-tests.py
@@ -386,7 +386,11 @@ class SkipBrokenTests(DepsolveTests):
def testBumpedSoName1(self):
- """
+ """ This will fail because the skip-broken code can handle this case
+ d2 need a lib from b1, so the update fails.
+ d2 and b2 get skipped, but the installed b1 needs a
+ lib from a1, but it has been updated to a2, so it is
+ no longer there.
"""
a1 = self.instPackage('a', '1', arch='x86_64')
a1.addProvides("liba.so.1()(64bit)")
@@ -395,8 +399,10 @@ class SkipBrokenTests(DepsolveTests):
b1 = self.instPackage('b', '1', arch='x86_64')
b1.addProvides("libb.so.1()(64bit)")
+ b1.addRequires("liba.so.1()(64bit)")
b2 = self.repoPackage('b', '2', arch='x86_64')
b2.addProvides("libb.so.2()(64bit)")
+ b2.addRequires("liba.so.2()(64bit)")
c1 = self.instPackage('c', '1', arch='x86_64')
c1.addRequires("liba.so.1()(64bit)")
@@ -421,7 +427,7 @@ class SkipBrokenTests(DepsolveTests):
self.tsInfo.addUpdate(e2, oldpo=e1)
self.tsInfo.addUpdate(f2, oldpo=f1)
self.assertEquals('ok', *self.resolveCode(skip=True))
- self.assertResult([a2,b1,c2,d1,e2,f2])
+ #self.assertResult([a2,b1,c2,d1,e2,f2])
def resolveCode(self,skip = False):
solver = YumBase()
commit a69588352502c1ea50d4d9ab2605932937f662fe
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date: Wed Oct 29 12:19:15 2008 +0100
added a skipbroken test case
diff --git a/test/skipbroken-tests.py b/test/skipbroken-tests.py
index e2e88b2..5129cde 100644
--- a/test/skipbroken-tests.py
+++ b/test/skipbroken-tests.py
@@ -385,7 +385,7 @@ class SkipBrokenTests(DepsolveTests):
self.assertResult([po1,po2,po3])
- def testInstalledFail(self):
+ def testBumpedSoName1(self):
"""
"""
a1 = self.instPackage('a', '1', arch='x86_64')
@@ -420,8 +420,8 @@ class SkipBrokenTests(DepsolveTests):
self.tsInfo.addUpdate(d2, oldpo=d1)
self.tsInfo.addUpdate(e2, oldpo=e1)
self.tsInfo.addUpdate(f2, oldpo=f1)
- self.assertEquals('err', *self.resolveCode(skip=False))
- #self.assertResult([a2,b2,c2,d2,e2,f2])
+ self.assertEquals('ok', *self.resolveCode(skip=True))
+ self.assertResult([a2,b1,c2,d1,e2,f2])
def resolveCode(self,skip = False):
solver = YumBase()
commit 7fe6c652f325c9384b21f90eeb054f195108b5b7
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date: Wed Oct 29 12:15:26 2008 +0100
make at FakeRpmDB class to use as self.rpmdb when doing unit tests, because PackageSack dont always behave the same as RPMDBSack, so it can break skipbroken tests using unversioned lib requests
diff --git a/test/testbase.py b/test/testbase.py
index 51224bc..0beffc6 100644
--- a/test/testbase.py
+++ b/test/testbase.py
@@ -210,6 +210,35 @@ class _DepsolveTestsBase(unittest.TestCase):
errors.append("\n")
self.fail("".join(errors))
+class FakeRpmDb(packageSack.PackageSack):
+ '''
+ We use a PackagePack for a Fake rpmdb insted of the normal
+ RPMDBPackageSack, getProvides works a little different on
+ unversioned requirements so we have to overload an add some
+ extra checkcode.
+ '''
+ def __init__(self):
+ packageSack.PackageSack.__init__(self)
+
+ def getProvides(self, name, flags=None, version=(None, None, None)):
+ """return dict { packages -> list of matching provides }"""
+ self._checkIndexes(failure='build')
+ result = { }
+ # convert flags & version for unversioned reqirements
+ if not version:
+ version=(None, None, None)
+ if flags == '0':
+ flags=None
+ for po in self.provides.get(name, []):
+ hits = po.matchingPrcos('provides', (name, flags, version))
+ if hits:
+ result[po] = hits
+ if name[0] == '/':
+ hit = (name, None, (None, None, None))
+ for po in self.searchFiles(name):
+ result.setdefault(po, []).append(hit)
+ return result
+
#######################################################################
### Derive Tests from these classes or unittest.TestCase ##############
@@ -238,7 +267,7 @@ class DepsolveTests(_DepsolveTestsBase):
""" Called at the start of each test. """
_DepsolveTestsBase.setUp(self)
self.tsInfo = transactioninfo.TransactionData()
- self.rpmdb = packageSack.PackageSack()
+ self.rpmdb = FakeRpmDb()
self.xsack = packageSack.PackageSack()
self.repo = FakeRepo("installed")
# XXX this side-affect is hacky:
commit 923c037cb78a703060780fcca94b0d199f49d550
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date: Wed Oct 29 08:51:10 2008 +0100
Added depsolve callbacks to skipbroken tests, to get better output if a test fails
diff --git a/test/skipbroken-tests.py b/test/skipbroken-tests.py
index 977a0c2..e2e88b2 100644
--- a/test/skipbroken-tests.py
+++ b/test/skipbroken-tests.py
@@ -384,6 +384,44 @@ class SkipBrokenTests(DepsolveTests):
self.assertEquals('ok', *self.resolveCode(skip=True))
self.assertResult([po1,po2,po3])
+
+ def testInstalledFail(self):
+ """
+ """
+ a1 = self.instPackage('a', '1', arch='x86_64')
+ a1.addProvides("liba.so.1()(64bit)")
+ a2 = self.repoPackage('a', '2', arch='x86_64')
+ a2.addProvides("liba.so.2()(64bit)")
+
+ b1 = self.instPackage('b', '1', arch='x86_64')
+ b1.addProvides("libb.so.1()(64bit)")
+ b2 = self.repoPackage('b', '2', arch='x86_64')
+ b2.addProvides("libb.so.2()(64bit)")
+
+ c1 = self.instPackage('c', '1', arch='x86_64')
+ c1.addRequires("liba.so.1()(64bit)")
+ c2 = self.repoPackage('c', '2', arch='x86_64')
+ c2.addRequires("liba.so.2()(64bit)")
+
+ d1 = self.instPackage('d', '1', arch='x86_64')
+ d1.addRequires("libb.so.1()(64bit)")
+ d2 = self.repoPackage('d', '2', arch='x86_64')
+ d2.addRequires("libb.so.1()(64bit)")
+
+ e1 = self.instPackage('e', '1', arch='x86_64')
+ e2 = self.repoPackage('e', '2', arch='x86_64')
+
+ f1 = self.instPackage('f', '1', arch='x86_64')
+ f2 = self.repoPackage('f', '2', arch='x86_64')
+
+ self.tsInfo.addUpdate(a2, oldpo=a1)
+ self.tsInfo.addUpdate(b2, oldpo=b1)
+ self.tsInfo.addUpdate(c2, oldpo=c1)
+ self.tsInfo.addUpdate(d2, oldpo=d1)
+ self.tsInfo.addUpdate(e2, oldpo=e1)
+ self.tsInfo.addUpdate(f2, oldpo=f1)
+ self.assertEquals('err', *self.resolveCode(skip=False))
+ #self.assertResult([a2,b2,c2,d2,e2,f2])
def resolveCode(self,skip = False):
solver = YumBase()
@@ -392,6 +430,7 @@ class SkipBrokenTests(DepsolveTests):
solver.tsInfo = solver._tsInfo = self.tsInfo
solver.rpmdb = self.rpmdb
solver.pkgSack = self.xsack
+ solver.dsCallback = DepSolveProgressCallBack()
for po in self.rpmdb:
po.repoid = po.repo.id = "installed"
@@ -415,4 +454,3 @@ def setup_logging():
verbose.propagate = False
verbose.addHandler(console_stdout)
verbose.setLevel(2)
-
diff --git a/test/testbase.py b/test/testbase.py
index ccab847..51224bc 100644
--- a/test/testbase.py
+++ b/test/testbase.py
@@ -3,6 +3,8 @@ import sys
import unittest
import settestpath
+import logging
+import yum.logginglevels as logginglevels
new_behavior = "NEW_BEHAVIOR" in os.environ.keys()
@@ -19,6 +21,10 @@ from rpmUtils import arch
### Helper classes ##########################################
#############################################################
+# Dummy translation wrapper
+def _(msg):
+ return msg
+
class FakeConf(object):
def __init__(self):
@@ -81,6 +87,65 @@ class _Container(object):
pass
+class DepSolveProgressCallBack:
+ """provides text output callback functions for Dependency Solver callback"""
+
+ def __init__(self):
+ """requires yum-cli log and errorlog functions as arguments"""
+ self.verbose_logger = logging.getLogger("yum.verbose.cli")
+ self.loops = 0
+
+ def pkgAdded(self, pkgtup, mode):
+ modedict = { 'i': _('installed'),
+ 'u': _('updated'),
+ 'o': _('obsoleted'),
+ 'e': _('erased')}
+ (n, a, e, v, r) = pkgtup
+ modeterm = modedict[mode]
+ self.verbose_logger.log(logginglevels.INFO_2,
+ _('---> Package %s.%s %s:%s-%s set to be %s'), n, a, e, v, r,
+ modeterm)
+
+ def start(self):
+ self.loops += 1
+
+ def tscheck(self):
+ self.verbose_logger.log(logginglevels.INFO_2, _('--> Running transaction check'))
+
+ def restartLoop(self):
+ self.loops += 1
+ self.verbose_logger.log(logginglevels.INFO_2,
+ _('--> Restarting Dependency Resolution with new changes.'))
+ self.verbose_logger.debug('---> Loop Number: %d', self.loops)
+
+ def end(self):
+ self.verbose_logger.log(logginglevels.INFO_2,
+ _('--> Finished Dependency Resolution'))
+
+
+ def procReq(self, name, formatted_req):
+ self.verbose_logger.log(logginglevels.INFO_2,
+ _('--> Processing Dependency: %s for package: %s'), formatted_req,
+ name)
+
+
+ def unresolved(self, msg):
+ self.verbose_logger.log(logginglevels.INFO_2, _('--> Unresolved Dependency: %s'),
+ msg)
+
+
+ def procConflict(self, name, confname):
+ self.verbose_logger.log(logginglevels.INFO_2,
+ _('--> Processing Conflict: %s conflicts %s'), name, confname)
+
+ def transactionPopulation(self):
+ self.verbose_logger.log(logginglevels.INFO_2, _('--> Populating transaction set '
+ 'with selected packages. Please wait.'))
+
+ def downloadHeader(self, name):
+ self.verbose_logger.log(logginglevels.INFO_2, _('---> Downloading header for %s '
+ 'to pack into transaction set.'), name)
+
#######################################################################
### Abstract super class for test cases ###############################
#######################################################################
@@ -179,6 +244,10 @@ class DepsolveTests(_DepsolveTestsBase):
# XXX this side-affect is hacky:
self.tsInfo.setDatabases(self.rpmdb, self.xsack)
+ def resetTsInfo(self):
+ self.tsInfo = transactioninfo.TransactionData()
+
+
def resolveCode(self):
solver = YumBase()
solver.conf = FakeConf()
commit a71482d1f45a2dfa531fedbef16dd3c7ffc7c607
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date: Tue Oct 28 08:39:24 2008 +0100
remove failing skip-broken test and add FIXME note the the working one, it causes to much confusion when testing the skipbroken code
diff --git a/test/skipbroken-tests.py b/test/skipbroken-tests.py
index 7af855e..977a0c2 100644
--- a/test/skipbroken-tests.py
+++ b/test/skipbroken-tests.py
@@ -378,35 +378,12 @@ class SkipBrokenTests(DepsolveTests):
po2.addProvides('barlib', 'EQ', ('0', '2', '0'))
po3 = self.repoPackage('zap', '2')
po3.addRequires('barlib', 'EQ', ('0', '2', '0'))
+ #FIXME: Find out why this line is needed, it should be auto updated by the solver.
self.tsInfo.addUpdate(po1, oldpo=ipo1) # why is this needed, it should work without ?
self.tsInfo.addUpdate(po3, oldpo=ipo3)
self.assertEquals('ok', *self.resolveCode(skip=True))
self.assertResult([po1,po2,po3])
- def testInstReqOldVer2(self):
- """
- zap-2.0 updates zap-1.0, but zap-2.0 needs barlib-2.0 provided by
- bar-2.0, but the installed foo, needs barlib-1.0, so it need to be updated to
- foo-2.0, that requires barlib-2.0
- But it only work if foo-1.0 -> foo-2.0 is added as an update, it is not
- pulled in by it self.
- FIXME: This test case will fail for now
- """
- ipo1 = self.instPackage('foo', '1')
- ipo1.addRequires('barlib', 'EQ', ('0', '1', '0'))
- ipo2 = self.instPackage('bar', '1')
- ipo2.addProvides('barlib', 'EQ', ('0', '1', '0'))
- ipo3 = self.instPackage('zap', '1')
- po1 = self.repoPackage('foo', '2')
- po1.addRequires('barlib', 'EQ', ('0', '2', '0'))
- po2 = self.repoPackage('bar', '2')
- po2.addProvides('barlib', 'EQ', ('0', '2', '0'))
- po3 = self.repoPackage('zap', '2')
- po3.addRequires('barlib', 'EQ', ('0', '2', '0'))
- #self.tsInfo.addUpdate(po1, oldpo=ipo1) # why is this needed, it should work without ?
- self.tsInfo.addUpdate(po3, oldpo=ipo3)
- self.assertEquals('ok', *self.resolveCode(skip=True))
- self.assertResult([po1,po2,po3])
def resolveCode(self,skip = False):
solver = YumBase()
commit 1a1c9181bf790ef72d03cff5b2ee10067b7d9fe1
Author: James Antill <james at and.org>
Date: Tue Oct 28 00:26:57 2008 -0400
Merge the txmbr and po loops in listTransaction, code tidy up
diff --git a/output.py b/output.py
index 3c2795c..d98e281 100644
--- a/output.py
+++ b/output.py
@@ -778,12 +778,29 @@ class YumOutput:
self.tsInfo.makelists()
out = u""
pkglist_lines = []
- # Tried to do this statically using:
- # http://fedorapeople.org/~james/yum/commands/length_distributions.py
- # but it sucked for corner cases, so this is dynamic...
-
data = {'n' : {}, 'v' : {}, 'r' : {}}
a_wid = 0 # Arch can't get "that big" ... so always use the max.
+
+ def _add_line(lines, data, a_wid, po, obsoletes=[]):
+ (n,a,e,v,r) = po.pkgtup
+ evr = po.printVer()
+ repoid = po.repoid
+ pkgsize = float(po.size)
+ size = self.format_number(pkgsize)
+
+ if a is None: # gpgkeys are weird
+ a = 'noarch'
+
+ lines.append((n, a, evr, repoid, size, obsoletes))
+ # Create a dict of field_length => number of packages, for
+ # each field.
+ for (d, v) in (("n",len(n)), ("v",len(evr)), ("r",len(repoid))):
+ data[d].setdefault(v, 0)
+ data[d][v] += 1
+ if a_wid < len(a): # max() is only in 2.5.z
+ a_wid = len(a)
+ return a_wid
+
for (action, pkglist) in [(_('Installing'), self.tsInfo.installed),
(_('Updating'), self.tsInfo.updated),
(_('Removing'), self.tsInfo.removed),
@@ -792,23 +809,7 @@ class YumOutput:
(_('Removing for dependencies'), self.tsInfo.depremoved)]:
lines = []
for txmbr in pkglist:
- (n,a,e,v,r) = txmbr.pkgtup
- evr = txmbr.po.printVer()
- repoid = txmbr.repoid
- pkgsize = float(txmbr.po.size)
- size = self.format_number(pkgsize)
-
- if a is None: # gpgkeys are weird
- a = 'noarch'
-
- lines.append((n, a, evr, repoid, size, txmbr.obsoletes))
- # Create a dict of field_length => number of packages, for
- # each field.
- for (d, v) in (("n",len(n)), ("v",len(evr)), ("r",len(repoid))):
- data[d].setdefault(v, 0)
- data[d][v] += 1
- if a_wid < len(a): # max() is only in 2.5.z
- a_wid = len(a)
+ a_wid = _add_line(lines, data, a_wid, txmbr.po, txmbr.obsoletes)
pkglist_lines.append((action, lines))
@@ -816,23 +817,7 @@ class YumOutput:
self.skipped_packages),]:
lines = []
for po in pkglist:
- (n,a,e,v,r) = po.pkgtup
- evr = po.printVer()
- repoid = po.repoid
- pkgsize = float(po.size)
- size = self.format_number(pkgsize)
-
- if a is None: # gpgkeys are weird
- a = 'noarch'
-
- lines.append((n, a, evr, repoid, size, []))
- # Create a dict of field_length => number of packages, for
- # each field.
- for (d, v) in (("n",len(n)), ("v",len(evr)), ("r",len(repoid))):
- data[d].setdefault(v, 0)
- data[d][v] += 1
- if a_wid < len(a): # max() is only in 2.5.z
- a_wid = len(a)
+ a_wid = _add_line(lines, data, a_wid, po)
pkglist_lines.append((action, lines))
commit 5e405ec2e6651dc828c9b47075b6867a7e145536
Author: James Antill <james at and.org>
Date: Mon Oct 27 23:59:37 2008 -0400
Iterate skipped_packages properly as they are pos not txmbrs, fixes BZ 468785
diff --git a/output.py b/output.py
index 502aa4b..3c2795c 100644
--- a/output.py
+++ b/output.py
@@ -789,8 +789,7 @@ class YumOutput:
(_('Removing'), self.tsInfo.removed),
(_('Installing for dependencies'), self.tsInfo.depinstalled),
(_('Updating for dependencies'), self.tsInfo.depupdated),
- (_('Removing for dependencies'), self.tsInfo.depremoved),
- (_('Skipped (dependency problems)'), self.skipped_packages),]:
+ (_('Removing for dependencies'), self.tsInfo.depremoved)]:
lines = []
for txmbr in pkglist:
(n,a,e,v,r) = txmbr.pkgtup
@@ -813,6 +812,30 @@ class YumOutput:
pkglist_lines.append((action, lines))
+ for (action, pkglist) in [(_('Skipped (dependency problems)'),
+ self.skipped_packages),]:
+ lines = []
+ for po in pkglist:
+ (n,a,e,v,r) = po.pkgtup
+ evr = po.printVer()
+ repoid = po.repoid
+ pkgsize = float(po.size)
+ size = self.format_number(pkgsize)
+
+ if a is None: # gpgkeys are weird
+ a = 'noarch'
+
+ lines.append((n, a, evr, repoid, size, []))
+ # Create a dict of field_length => number of packages, for
+ # each field.
+ for (d, v) in (("n",len(n)), ("v",len(evr)), ("r",len(repoid))):
+ data[d].setdefault(v, 0)
+ data[d][v] += 1
+ if a_wid < len(a): # max() is only in 2.5.z
+ a_wid = len(a)
+
+ pkglist_lines.append((action, lines))
+
if data['n']:
data = [data['n'], {}, data['v'], data['r'], {}]
columns = [1, a_wid, 1, 1, 5]
commit d17e6ea6a853e5a184e26b501c0c28321e0e8740
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Mon Oct 27 16:11:52 2008 -0400
merge changelog
diff --git a/ChangeLog b/ChangeLog
index 9ef67ab..452cc25 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,567 @@
+2008-10-27 Seth Vidal <skvidal at fedoraproject.org>
+
+ * yum.spec, yum/__init__.py: mark as 3.2.20
+
+2008-10-27 James Antill <james at and.org>
+
+ * yum/depsolve.py: Allow rm only trans. but allow later install too
+
+
+2008-10-27 James Antill <james at and.org>
+
+ * yum/depsolve.py: Add the pkgSack to the transaction, if we have a
+ remove followed by an install
+
+2008-10-27 James Antill <james at and.org>
+
+ * test/simpleupdatetests.py: Test update which requires specific
+ version, but not a later one
+
+2008-10-27 James Antill <james at and.org>
+
+ * output.py: Underflow for utf8 width in progressbar, too
+
+2008-10-27 James Antill <james at and.org>
+
+ * output.py: Workaround not having a real width() method for utf8
+
+2008-10-27 James Antill <james at and.org>
+
+ * output.py: Limit terminal width to 20 chars, do the right thing
+ for serial console
+
+2008-10-27 James Antill <james at and.org>
+
+ * yum/__init__.py: combat => compat, typos in comments
+
+2008-10-27 Tim Lauridsen <timlau at fedoraproject.org>
+
+ * test/skipbroken-tests.py: Added note to skip-broken test case
+
+2008-10-27 Tim Lauridsen <timlau at fedoraproject.org>
+
+ * output.py, yum/__init__.py: Added skipped packages to transaction
+ overview
+
+2008-10-27 Tim Lauridsen <timlau at fedoraproject.org>
+
+ * yum/__init__.py: more skipbroken debug output, show what packages
+ there gets pulled out of the transaction
+
+2008-10-27 Tim Lauridsen <timlau at fedoraproject.org>
+
+ * yum/__init__.py: make the packages skipped by skip-broken public,
+ so it can be accessed from the outside. it make it posible to add
+ the skipped packages to the transaction results etc.
+
+2008-10-27 Tim Lauridsen <timlau at fedoraproject.org>
+
+ * yum/__init__.py: - Added extra skip-broken debug output, so we better can see what is
+ going on - don't remove the same package from pkgSack & up more than
+ once - make sure that the compat arch packages get removed from the
+ pkgSack & up too and not just from the transaction, else they can
+ get pulled in again in the next depsolve loop.
+
+2008-10-27 Tim Lauridsen <timlau at fedoraproject.org>
+
+ * po/pl.po: updated Polish translation by Piotr DrÄ
g
+
+2008-10-27 James Antill <james at and.org>
+
+ * yum/__init__.py: Check if the package has appeared before we try
+ and download it, bug 468401
+
+2008-10-26 Tim Lauridsen <timlau at fedoraproject.org>
+
+ * po/de.po: updated german translation by Fabian Affolter
+
+2008-10-26 Tim Lauridsen <timlau at fedoraproject.org>
+
+ * po/pl.po: updated Polish translation by Piotr DrÄ
g
+
+2008-10-25 James Antill <james at and.org>
+
+ * yum/__init__.py: Add proxy/etc. config. to gpgkey downloads, fixes
+ Fedora BZ 445336
+
+2008-10-22 James Antill <james at and.org>
+
+ * docs/yum.8: Add documentation on install @grp
+
+2008-10-24 Seth Vidal <skvidal at fedoraproject.org>
+
+ * yum/__init__.py: comment about allowdowngrade/downgrade in general
+
+
+2008-10-24 Seth Vidal <skvidal at fedoraproject.org>
+
+ * yum/packages.py: fix installed size being wrong for metadata/local
+ pkgs
+
+2008-10-22 James Antill <james at and.org>
+
+ * yum/yumRepo.py: Change fixed_repoid to timestamp_check, to make it
+ more obvious wtf it does :)
+
+2008-10-22 James Antill <james at and.org>
+
+ * yum/yumRepo.py: Add a fixed_repoid attribute, which tells us if we can do timestamp
+ checks on the repo. etc. -- fixes the repodiff/repoquery problems
+ where you have a single repoid that referrs to a bunch of different
+ repos. When using metalink, check to see if we already have the
+ latest repomd.xml and if so don't re-download
+
+2008-10-21 James Antill <james at and.org>
+
+ * yumcommands.py: Show revision/tags in repolist -v
+
+2008-10-21 James Antill <james at and.org>
+
+ * yum/repoMDObject.py: Parse out revision and tags from repomd.xml
+
+2008-10-21 James Antill <james at and.org>
+
+ * yumcommands.py: Add metalink to repolist -v
+
+2008-10-21 James Antill <james at and.org>
+
+ * yum/yumRepo.py, yumcommands.py: Fix baseurl output in repolist -v,
+ when we've got a new mirrorlist/metalink
+
+2008-10-20 James Antill <james at and.org>
+
+ * yum/yumRepo.py: Use the metadata index name, and not the filename
+ for the progress output
+
+2008-10-20 James Antill <james at and.org>
+
+ * yum/config.py: Revert kernel-firmware addition to default
+ installonly
+
+2008-10-19 James Antill <james at and.org>
+
+ * yum/config.py: Add kernel-firmware to the kernel pkgs list, bug
+ 467628
+
+2008-10-19 Tim Lauridsen <timlau at fedoraproject.org>
+
+ * po/POTFILES.skip: Added POTFILES.skip with pygettext.py, to avoid
+ warning in translate system (rhbz# 467413)
+
+2008-10-19 Tim Lauridsen <timlau at fedoraproject.org>
+
+ * po/ca.po: added updated catalan translation by Xavier Conde
+
+2008-10-19 Tim Lauridsen <timlau at fedoraproject.org>
+
+ * po/POTFILES.in, po/ca.po, po/da.po, po/de.po, po/fr.po, po/it.po,
+ po/pt_BR.po, po/sr.po, po/sr at latin.po, po/zh_CN.po: rebuild
+ POTFILES.in and *.po files
+
+2008-10-17 James Antill <james at and.org>
+
+ * yum/__init__.py: Allow yum-complete-transaction to turn off the
+ unfinished transactions check
+
+2008-10-17 James Antill <james at and.org>
+
+ * yum/__init__.py: Fix typo in unfinished transactions msg
+
+2008-10-17 Seth Vidal <skvidal at fedoraproject.org>
+
+ * yum/update_md.py: add xml() method for UpdateMetadata and
+ UpdateNotice objects to push back out xml from these objects
+
+2008-10-17 David Cantrell <dcantrell at redhat.com>
+
+ * cli.py: Allow sys.argv to be overridden by "clever" callers, fixes
+ bug 465653
+
+2008-10-17 James Antill <james at and.org>
+
+ * cli.py: Don't show the 3.0.x provides warning for full path names
+
+
+2008-10-17 James Antill <james at and.org>
+
+ * yum/yumRepo.py: Catch repo/mirror errors as w3ell as urlgrabber
+ errors, if we can revert
+
+2008-10-15 James Antill <james at and.org>
+
+ * output.py: Use terminal_width_cached() in YumTerm, if available, for dynamic
+ widths. Make progressbar and YumCliRPMCallBack._makefmt dynamicaly
+ wide. Use the pkgname in YumCliRPMCallBack._makefmt, to get
+ better output.
+
+2008-10-15 Seth Vidal <skvidal at fedoraproject.org>
+
+ * yum/packages.py: magic combination of to_unicode and to_utf8:
+ to_unicode makes the string combination happy coming out of the
+ sqlite to_utf8 makes the string happy going into the gzip'd xml.
+ LOVE LOVE LOVE
+
+2008-10-14 James Antill <james at and.org>
+
+ * output.py: Cleanup the post transaction text
+
+2008-10-14 James Antill <james at and.org>
+
+ * yum/__init__.py: Don't explicitly list metalink.xml for cleanup,
+ as it's got by *.xml filter
+
+2008-10-14 Seth Vidal <skvidal at fedoraproject.org>
+
+ Merge branch 'yum-3_2_X' of
+ ssh://yum.baseurl.org/srv/projects/yum/git/yum into yum-3_2_X *
+ 'yum-3_2_X' of ssh://yum.baseurl.org/srv/projects/yum/git/yum:
+ Don't output progress for rpm callbacks when in -e 0 -d 0 Fix
+ unicode exceptions in reinstall, bug 466838 Fix another unicode
+ problem, locale.format("%d", ...) in cs_CZ Add documentation for
+ metalink Undeprecate metadataCurrent(), and use it for
+ metalink.xml and repomd.xml Add metalink config. option to each
+ repo. Fix metalink exceptions, and make it easier to use for
+ yumRepo Cleanup metalink data Add length/checksums to the RepoMD
+ object Expand on checksum() to allow multiple checksums over a
+ single file Give a nicer message when filelists contains pkgKeys
+ primary doesn't
+
+2008-10-14 Seth Vidal <skvidal at fedoraproject.org>
+
+ * yum/packages.py, yum/sqlitesack.py: some minor changes to how we
+ output the xml - to, theoretically, solve the
+ unicode/random-encoding problems.
+
+2008-10-14 James Antill <james at and.org>
+
+ * output.py: Don't output progress for rpm callbacks when in -e 0 -d
+ 0
+
+2008-10-13 James Antill <james at and.org>
+
+ * yumcommands.py: Fix unicode exceptions in reinstall, bug 466838
+
+2008-10-08 James Antill <james at and.org>
+
+ * yumcommands.py: Fix another unicode problem, locale.format("%d",
+ ...) in cs_CZ
+
+2008-10-06 James Antill <james at and.org>
+
+ * docs/yum.conf.5: Add documentation for metalink
+
+2008-10-04 James Antill <james at and.org>
+
+ * yum/yumRepo.py: Undeprecate metadataCurrent(), and use it for metalink.xml and
+ repomd.xml We can't have a newer repomd.xml than we have a
+ metalink file, or it fails. Download/use metalink data if it's
+ configured. It overrides mirrorlist, so you can use both for
+ older versions of yum Check repomd.xml against metalink data, if
+ we have it. Failover to next mirror, if it fails (like
+ repomd.xml gpg signing).
+
+2008-10-04 James Antill <james at and.org>
+
+ * yum/config.py: Add metalink config. option to each repo.
+
+2008-10-04 James Antill <james at and.org>
+
+ * yum/metalink.py: Fix metalink exceptions, and make it easier to
+ use for yumRepo
+
+2008-10-04 James Antill <james at and.org>
+
+ * yum/__init__.py: Cleanup metalink data
+
+2008-10-04 James Antill <james at and.org>
+
+ * yum/repoMDObject.py: Add length/checksums to the RepoMD object
+
+2008-10-04 James Antill <james at and.org>
+
+ * yum/misc.py: Expand on checksum() to allow multiple checksums over
+ a single file
+
+2008-10-04 James Antill <james at and.org>
+
+ * yum/repoMDObject.py, yum/sqlitesack.py: Give a nicer message when
+ filelists contains pkgKeys primary doesn't
+
+2008-10-02 James Antill <james at and.org>
+
+ * cli.py: Expand the "Maybe you meant" messages for update/remove
+
+2008-10-01 James Antill <james at and.org>
+
+ * yum/plugins.py: Do a simple try/except on the plugin load_module,
+ dtops 464920 going critical
+
+2008-09-29 Seth Vidal <skvidal at fedoraproject.org>
+
+ * yum.spec: change spec file url to yum.baseurl.org
+
+2008-09-27 Jeff Seltren <jeff at osuosl.org>
+
+ * docs/yum.conf.5: Fix typos in man pages, bug 447588
+
+2008-09-24 Tim Lauridsen <timlau at fedoraproject.org>
+
+ * po/fr.po: Updated French translation by Michael Ughetto
+
+2008-09-23 James Antill <james at and.org>
+
+ * yum/rpmtrans.py: Protect I/O calls within RPMTransaction itself, due to rpm insane
+ mode. Try and cleanup if they trigger, so we don't have half a
+ transaction saved in the log files.
+
+2008-09-23 James Antill <james at and.org>
+
+ * yum/rpmtrans.py: Wrap all calls to the display callbacks within the rpm transaction.
+ The problem here is that rpm gets _very_ unhappy if exceptions
+ happen in any of the code it calls during the transaction, and can
+ basically destroy the system (stopping the install phase but doing
+ the cleanup phase). This doesn't 100% protect us, as we can still
+ have errors in our code but it'll protect against anything in the
+ callbacks.
+
+2008-09-22 James Antill <james at and.org>
+
+ * output.py: Use ui_name and ui_description in displayPkgsInGroups
+
+2008-09-22 James Antill <james at and.org>
+
+ * yum/comps.py: Add ui_description for ease of use
+
+2008-09-22 James Antill <james at and.org>
+
+ * yum/__init__.py: Have doGroupLists returned "user sorted data"
+
+2008-09-22 James Antill <james at and.org>
+
+ * yumcommands.py: Do the Remove only TS thing for GroupRemove
+
+2008-09-22 James Antill <james at and.org>
+
+ * cli.py: Fix the sorting of grouplist to obey display_order, just
+ use the group cmp
+
+2008-09-22 James Antill <james at and.org>
+
+ * yum/comps.py: Add return_categories() to comps object. Add
+ nameByLang/descriptionByLang to category objects. Add ui_name to
+ groups/categories, using the current locale's name. Add __cmp__
+ function to group/categories.
+
+2008-09-22 James Antill <james at and.org>
+
+ * yum/misc.py: Minor fix to get_my_lang_code, no need to import
+ locale as it already is
+
+2008-09-20 James Antill <james at and.org>
+
+ * yumcommands.py: Dynamically size check-update using the "list
+ updates" code
+
+2008-09-20 Seth Vidal <skvidal at fedoraproject.org>
+
+ Merge branch 'yum-3_2_X' of
+ ssh://login.linux.duke.edu/home/groups/yum/git/yum into yum-3_2_X *
+ 'yum-3_2_X' of ssh://login.linux.duke.edu/home/groups/yum/git/yum:
+ groups are already sorted, so sort the contents. Makes comps stable.
+ Use sys.exit instead of exit as it's not a keyword in python.
+
+2008-09-20 Seth Vidal <skvidal at fedoraproject.org>
+
+ * rpmUtils/arch.py: make sure noarch is added to all the
+ freaky-deaky arches
+
+2008-09-19 James Antill <james at and.org>
+
+ * yum/comps.py: groups are already sorted, so sort the contents.
+ Makes comps stable.
+
+2008-09-18 James Antill <james at and.org>
+
+ * rpmUtils/miscutils.py: Use sys.exit instead of exit as it's not a keyword in python.
+ causes a traceback if interupt_handler isn't setup (spacewalk/etc.)
+
+
+2008-09-18 Seth Vidal <skvidal at fedoraproject.org>
+
+ Merge branch 'yum-3_2_X' of
+ ssh://login.linux.duke.edu/home/groups/yum/git/yum into yum-3_2_X *
+ 'yum-3_2_X' of ssh://login.linux.duke.edu/home/groups/yum/git/yum:
+ remove extra spaces in indent Include the indent in the column
+ calculation for groupinfo -v Use calcColumns for groupinfo -v,
+ per. group. Tidy up group section printing Create a calcColumns()
+ from the work in listTransaction. Dynamically size the width for
+ the Loaded plugins message, if possible
+
+2008-09-18 Seth Vidal <skvidal at fedoraproject.org>
+
+ * Makefile: limit the changelog to 3.2.0 and up
+
+2008-09-17 Tim Lauridsen <timlau at fedoraproject.org>
+
+ * yum/yumRepo.py: remove extra spaces in indent
+
+2008-09-16 James Antill <james at and.org>
+
+ * output.py: Include the indent in the column calculation for
+ groupinfo -v
+
+2008-09-16 James Antill <james at and.org>
+
+ * output.py: Use calcColumns for groupinfo -v, per. group. Tidy up
+ group section printing
+
+2008-09-15 James Antill <james at and.org>
+
+ * output.py, yumcommands.py: Create a calcColumns() from the work in listTransaction. Call
+ calcColumns() from the list command. Tweak the APIs used to pass
+ the column data down to simpleList(). Make simpleList etc. work
+ based on fmtColumns(). Tweak the output format for list obsoletes.
+
+
+2008-09-15 James Antill <james at and.org>
+
+ Merge branch 'yum-3_2_X' of
+ ssh://login.linux.duke.edu/home/groups/yum/git/yum into yum-3_2_X *
+ 'yum-3_2_X' of ssh://login.linux.duke.edu/home/groups/yum/git/yum:
+ - add crazy utf8 conversion routine for outputting xml for metadata
+
+
+2008-09-15 Seth Vidal <skvidal at fedoraproject.org>
+
+ Merge branch 'yum-3_2_X' of
+ ssh://login.linux.duke.edu/home/groups/yum/git/yum into yum-3_2_X *
+ 'yum-3_2_X' of ssh://login.linux.duke.edu/home/groups/yum/git/yum:
+ Make sure we get two packages with the same nevra, but different
+ pkgKey's Fix the testcases to not die due to missing persistdir
+ Speedup for includepkgs, use a set for main in test Don't use
+ parsePacakges where just returnPackages() dtrt. now Make
+ rpmdb.returnPackages dtrt. like sqlitesack, always doing the
+ minimization Patterns max constant change, adding
+ PATTERNS_INDEXED_MAX and comments.
+
+2008-09-15 Seth Vidal <skvidal at fedoraproject.org>
+
+ * yum/misc.py: - add crazy utf8 conversion routine for outputting xml for metadata
+ - if/when non-utf8 filenames/metadata content becomes good and
+ illegal then we should be able to clean this all out
+
+2008-09-15 James Antill <james at and.org>
+
+ * yum/plugins.py: Dynamically size the width for the Loaded plugins
+ message, if possible
+
+2008-09-12 James Antill <james at and.org>
+
+ * yum/sqlitesack.py: Make sure we get two packages with the same
+ nevra, but different pkgKey's
+
+2008-09-12 James Antill <james at and.org>
+
+ * test/testbase.py: Fix the testcases to not die due to missing
+ persistdir
+
+2008-09-12 James Antill <james at and.org>
+
+ * yum/__init__.py: Speedup for includepkgs, use a set for main in
+ test
+
+2008-09-12 James Antill <james at and.org>
+
+ * yum/__init__.py: Don't use parsePacakges where just
+ returnPackages() dtrt. now
+
+2008-09-12 James Antill <james at and.org>
+
+ * yum/rpmsack.py: Make rpmdb.returnPackages dtrt. like sqlitesack,
+ always doing the minimization
+
+2008-09-11 James Antill <james at and.org>
+
+ * yum/constants.py, yum/sqlitesack.py: Patterns max constant change, adding PATTERNS_INDEXED_MAX and
+ comments. Also dtrt. wrt. large returnPackages() pattern lists
+ (using parsePackages instead of returning everything). Testing
+ done with: time yum ls $(perl -e 'print "python-urlgrabber " x
+ 8') time yum ls $(perl -e 'print "ustr " x 128') ...the last two
+ are stupidly fast still, due to the index on name so they get a
+ different limit. Also tested: time yum search $(perl -e 'print
+ "ustr " x 14') ...but that doesn't seem affected, as it grows
+ linearly but takes even longer in python. And: time yum groupinfo
+ -v \* ...but that seems to be just as fast when PATTERNS_*MAX is
+ low and thus. requires multiple SQL queries.
+
+2008-09-11 Seth Vidal <skvidal at fedoraproject.org>
+
+ * yum/__init__.py: emit a warning and pause for 3s when there are
+ unfinished transactions hanging about
+
+2008-09-11 Seth Vidal <skvidal at fedoraproject.org>
+
+ * po/de.po, yum/rpmsack.py: - check in new german translation - correct a docstring
+
+2008-09-07 James Antill <james at and.org>
+
+ * output.py: Use self.verbose_logger.log instead of print for
+ download_callback_total_cb
+
+2008-09-04 James Antill <james at and.org>
+
+ * yum/__init__.py: Fix stupid python syntax error in previous commit
+
+
+2008-09-04 James Antill <james at and.org>
+
+ * yum/__init__.py: Only return a single package name on provide
+ based installs, bug 460783
+
+2008-09-02 James Antill <james at and.org>
+
+ * test/depsolvetests.py: Add some test cases, including weird
+ behaviuor for inst_require_obsoletes
+
+2008-09-02 James Antill <james at and.org>
+
+ * cli.py, yum/__init__.py, yum/depsolve.py, yum/rpmsack.py,
+ yumcommands.py: Allow yum to create "remove only" transactions, use
+ it for rm cmd: bug 240821
+
+2008-08-29 Seth Vidal <skvidal at fedoraproject.org>
+
+ * yum/misc.py: make sure we do a fulle search for name.arch
+ separations, too - so if a . is present, search the whole shooting
+ match, not just the name.
+
+2008-08-28 Tim Lauridsen <timlau at fedoraproject.org>
+
+ * yum/config.py: Restore Standard ConfigParser compatibility to
+ config.py
+
+2008-08-28 Tim Lauridsen <tilau at tlaws.ibm.com>
+
+ * Makefile, test/skipbroken-tests.py: Added test-skipbroken make
+ target and some extra testcases
+
+2008-08-27 James Antill <james at and.org>
+
+ * yum/sqlitesack.py: Fix typo for arch excludes for obsolete tuples
+ fix
+
+2008-08-27 James Antill <james at and.org>
+
+ * yum/sqlitesack.py: Do arch excludes for obsolete tuples
+
+2008-08-26 James Antill <james at and.org>
+
+ * yum.spec: Fixup the License to be the same as Fedora
+
+2008-08-26 Seth Vidal <skvidal at fedoraproject.org>
+
+ * ChangeLog: merge changelog
+
2008-08-26 Seth Vidal <skvidal at fedoraproject.org>
Merge branch 'yum-3_2_X' of
@@ -5684,8423 +6248,12 @@
2007-05-16 Seth Vidal <skvidal at linux.duke.edu>
- * rpmUtils/Makefile, yum/Makefile: fix from Christoph Thiel and Jan
- Matejek "The problem is that when precompiling python files, the
- compiler needs to know their "base path" which will be used in debug
- outputs (such as the backtrace). Without this patch, makefile sets
- $(PYDIR) as the base path, but $(PYDIR) isn't defined and the base
- path stays empty. (some of our python builds apparently can't deal
- with it and use PIL's base path instead) The patch replaces $(PYDIR)
- with correct value, $(PKGDIR)."
-
-2007-05-14 Jeremy Katz <katzj at redhat.com>
-
- * yum/__init__.py: don't cause repos to be set up unnecessarily
- (rh#238940)
-
-2007-05-06 Luke Macken <lmacken at redhat.com>
-
- * yum/update_md.py: - Add title and release to metadata - Clean up UpdateNotice.__str__
- - Remove pushcount, as it does not seem very useful at the moment -
- inline DTD updates - s/summary/title/ for Bugzilla and CVE's
-
-2007-05-03 Jeremy Katz <katzj at redhat.com>
-
- * bin/yum-updatesd.py, yum-updatesd.py: move option parsing around a
- little so that yum-updatesd will start faster (rh#220614)
-
-2007-05-02 James Bowes <jbowes at redhat.com>
-
- * cli.py, docs/yum.8, shell.py, yumcommands.py: Add repolist
- command. This is just the 'repo list' yum shell command. 'repo
- list' now calls the repolist command instead.
-
-2007-05-02 Jeremy Katz <katzj at redhat.com>
-
- * yum-updatesd.py: fix name error (#238685)
-
-2007-04-29 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/yumRepo.py: make sure we can set and del repoobj.urls for
- fastestmirrors, etc rh bugs: 238305 and 238276
-
-2007-04-27 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: changelog merge - 3.1.7
-
-2007-04-27 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum.spec: add dep on yum-metadata-parser for dbversion 10
-
-2007-04-27 Seth Vidal <skvidal at linux.duke.edu>
-
- * rpmUtils/arch.py: closes some obscure arch sorting issues with ppc
- and sparc rh bug: 233427
-
-2007-04-26 James Bowes <jbowes at redhat.com>
-
- * cli.py, docs/yum.8: add --nogpgcheck command line option
-
-2007-04-26 Jeremy Katz <katzj at redhat.com>
-
- * yum/rpmsack.py: reduce overhead of rpmack._search (Florian Festi)
-
-
-2007-04-26 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum.spec, yum/__init__.py: mark as 3.1.7
-
-2007-04-26 James Bowes <jbowes at redhat.com>
-
- * yum/config.py: Actually revert the metaclass config changes
-
-2007-04-26 James Bowes <jbowes at redhat.com>
-
- * yum/config.py: Revert config changes to use a metaclass. We need
- to let plugins add new class attributes to the config classes, and
- to have these new class attributes be accessable from subclasses.
- Rather than wrangle the metaclass code to do this (if possible),
- let's just revert it.
-
-2007-04-26 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: clean up some cases where we output 'Setting up
- Repositories' when we really don't need to.
-
-2007-04-26 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/plugins.py: iterate plugin minor version number
-
-2007-04-26 Jeremy Katz <katzj at redhat.com>
-
- * cli.py: set up progress callbacks before we od the repo setup;
- we've removed the explicit calls to doRepoSetup() and therefore need
- to ensure that we do the callback setup before we implicitly use
- doRepoSetup (and thus, call the postreposetup hook) (rh#236152)
-
-2007-04-25 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: setup caching at the right place in yum-cli. If the conf
- object is already done and the repos have been touched then we won't
- be able to set caching mode later. This prevents a silent exit if
- we're running as user
-
-2007-04-25 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/yumRepo.py: debug cleanup
-
-2007-04-25 Jeremy Katz <katzj at redhat.com>
-
- * yum/yumRepo.py: make repoXML a property so that we don't get it
- until we need it. this fixes --disablerepo (rh#230851) and -C
- working offline (rh#223607)
-
-2007-04-25 gijs <gijs>
-
- * yum/packages.py: Fix problem with inPrcoRange which incorrectly
- takes the release of the providing package for requirements with
- flag != 'EQ' that do not specify an exact release.
-
-2007-04-25 gijs <gijs>
-
- * test/packagetests.py: Added two unit-tests for inPrcoRange with
- prcotype=requires This shows that for requires with flag != EQ yum
- incorrectly takes the version of the package itself for requirements
- that do not require a specific release (i.e. release==None)
-
-2007-04-25 Jeremy Katz <katzj at redhat.com>
-
- * etc/yum-updatesd.init: nice yum-updatesd (rh#232202)
-
-2007-04-25 Jeremy Katz <katzj at redhat.com>
-
- * yum-updatesd.py: default to sending email to/from just root
- (rh#221940)
-
-2007-04-25 Luke Macken <lmacken at redhat.com>
-
- * yum/update_md.py: - Handle unicode metadata filenames - Accept 'n-v-r' as well as
- ('n', 'v', 'r') in get_notice() - A couple of other cleanups too
-
-2007-04-25 Jeremy Katz <katzj at redhat.com>
-
- * yum/__init__.py, yum/repos.py, yum/sqlitesack.py, yum/yumRepo.py:
- add close methods so that sqlite dbs get closed (Mark McLoughlin,
- rh#236409)
-
-2007-04-25 Jeremy Katz <katzj at redhat.com>
-
- * yum/__init__.py: report what the other pid is (rh#201393)
-
-2007-04-24 Jeremy Katz <katzj at redhat.com>
-
- * yum/sqlitesack.py: From Gijs Hollestelle -- Now for every package
- we get it's requirements, provides, etc by performing a query like
- this: select provides.* from provides,packages where provides.pkgKey
- = packages.pkgKey and package.pkgId = 'foo' This uses two tables in
- a join. Because yum is already smart enough to know which sqlite
- database to query and because pkgKey's are unique per database we
- can do this without the join by doing it directly on the pkgKey:
- select provides.* from provides where provides.pkgKey = 'bar'
-
-2007-04-24 Jeremy Katz <katzj at redhat.com>
-
- * yum/depsolve.py: From Gijs Hollestelle -- I managed to trace it
- to the already_seen cache in depsolver.py it turns out that when
- resolveDeps has missing requirements and restarts the depsolving
- loop the packages that caused that missing requirements are marked
- as already seen in the cache and their dependencies not always
- resolved again, this causes problems at least in the case of an
- upgrade but I can imagine that it could cause other problems as
- well. I've included a small patch to fix this, it removes all
- packages resulting in missing dependencies from the already seen
- cache before starting the next round of depsolving.
-
-2007-04-24 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py, yum/plugins.py: add a postconfig hook to the
- plugin architecture
-
-2007-04-24 Jeremy Katz <katzj at redhat.com>
-
- * yum/depsolve.py: checking conflicts is good for us (rh#237599)
-
-2007-04-20 Tim Lauridisen <tla at rasmil.dk>
-
- * yum/__init__.py: Patch to make API applications like yumdownloader
- work as non root, without beeing forced to use the cache.
-
-2007-04-19 James Bowes <jbowes at redhat.com>
-
- * yum/yumRepo.py: Lazy mirrorlist initialization via properties
-
-2007-04-19 Tim Lauridisen <tla at rasmil.dk>
-
- * cli.py: fixed using an installroot dont work if yum.conf was
- located in /my/install/root/etc/yum.conf', only if it was located in
- /my/install/root/etc/yum/yum.conf.
-
-2007-04-19 Tim Lauridisen <tla at rasmil.dk>
-
- * yum/depsolve.py: Add patch by James Antill, to handle the case
- where all packages has been removed by a plugin.
-
-2007-04-18 Jeremy Katz <katzj at redhat.com>
-
- * yum/__init__.py: unset comps before we do the setup. this ensures
- that we go back through and set everything back up (related to
- rh#231543)
-
-2007-04-18 Jeremy Katz <katzj at redhat.com>
-
- * yum/__init__.py: fix explicit sack setup (rh#231543)
-
-2007-04-18 Jeremy Katz <katzj at redhat.com>
-
- * yum/__init__.py: fix pattern installs (rh#236950)
-
-2007-04-18 Tim Lauridisen <tla at rasmil.dk>
-
- * utils.py: Added missing import
-
-2007-04-17 Jeremy Katz <katzj at redhat.com>
-
- * yum/depsolve.py, yum/transactioninfo.py: fix broken api if you
- have your own TransactionData class, then the signature of
- getMembers() changing breaks thing substantially. instead, just add
- a new method for the new functionality that we want in the depsolver
- that can work with subclasses too
-
-2007-04-17 Jeremy Katz <katzj at redhat.com>
-
- * yum/rpmsack.py: raise error instead of printing when there's not a
- package in the rpmdb. this makes the API the same as that of all
- the other package sacks
-
-2007-04-17 Tim Lauridisen <tla at rasmil.dk>
-
- * yum/config.py: Fixed the baseconf write method so it: * dont
- causes a Traceback. * booleans are saved as "0" & "1", insted of
- "yes" & "no" * Save all options read by the ConfigParser also if the
- values are default values. * saves "option=value", insted of 'option
- = value'
-
-2007-04-13 Tim Lauridisen <tla at rasmil.dk>
-
- * yum/packages.py: fix Traceback, if other is a transaction member
- rhbz #232183 and others.
-
-2007-04-11 James Bowes <jbowes at redhat.com>
-
- * yum/sqlitesack.py: Commit Jeremy's map checksum_value to pkgId for
- completeness patch
-
-2007-04-10 James Bowes <jbowes at redhat.com>
-
- * yum/constants.py, yum/sqlitesack.py: Go up to database version 10
-
-
-2007-04-09 Jeremy Katz <katzj at redhat.com>
-
- * yum/depsolve.py: quiet things back down now that we're more
- comfortable
-
-2007-04-09 Seth Vidal <skvidal at linux.duke.edu>
-
- * rpmUtils/updates.py: make sure the pseudo arches get it too.
-
-2007-04-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * etc/yum.conf: remove the unused and the not-sensible from the
- default config file.
-
-2007-04-08 James Bowes <jbowes at redhat.com>
-
- * yum/sqlitesack.py: Ok, let's always rip off the trailing slash
-
-2007-04-08 James Bowes <jbowes at redhat.com>
-
- * yum/sqlitesack.py: Just in case someone has an odd Requires:
- /foo/bar/ cover that too
-
-2007-04-08 James Bowes <jbowes at redhat.com>
-
- * yum/sqlitesack.py: Speed up searchFiles by searching for dirname
- when name is not a glob. This takes yum install eclipse-cdt from 33s
- to 13s on my machine.
-
-2007-04-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * rpmUtils/updates.py: closes rh bug:235632 make sure we consider
- noarch pkgs when looking at things that can update noarch->x86_64
- and x86_64->noarch
-
-2007-04-08 James Bowes <jbowes at redhat.com>
-
- * yum/rpmsack.py: Revert my previous read-only ts patch
-
-2007-04-08 James Bowes <jbowes at redhat.com>
-
- * yum/rpmsack.py: Replace FutureDeprecationWarning with
- YumFutureDeprecationWarning
-
-2007-04-08 James Bowes <jbowes at redhat.com>
-
- * yum/__init__.py, yum/depsolve.py: Collapse Depsolve and
- Yumdepsolver into a single class
-
-2007-04-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: fix for rh bug: 235572 - merged up from 3.0.X
-
-2007-04-07 James Bowes <jbowes at redhat.com>
-
- * rpmUtils/miscutils.py: Micro optimization: use elif for
- flagToString
-
-2007-04-07 James Bowes <jbowes at redhat.com>
-
- * yum/rpmsack.py: Micro optimization: initialize the read-only
- transaction at object creation
-
-2007-04-06 Tim Lauridisen <tla at rasmil.dk>
-
- * cli.py: Make sure that repo added with --enablerepo is setup. rhbz
- #230870,#233573.
-
-2007-04-04 James Bowes <jbowes at redhat.com>
-
- * yum/sqlitesack.py: Micro optimization: speed up the query in
- returnPrco
-
-2007-04-04 James Bowes <jbowes at redhat.com>
-
- * cli.py, yum/config.py, yum/depsolve.py: Micro optimization:
- replace string.startswith(<single char>) with comparison.
-
-2007-04-04 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: check in changelog
-
-2007-04-04 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum.spec, yum/__init__.py: mark as 3.1.6
-
-2007-04-03 Jeremy Katz <katzj at redhat.com>
-
- * yum/depsolve.py: I made anaconda's tscheck callback less crappy.
-
-2007-04-03 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: merge up perl/perl-devel case and a bunch of other similar
- ones. fixes rh bug: 231549 thanks to Robin Norwood for the easy
- replicator.
-
-2007-04-03 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: make 'search' case insensitive
-
-2007-04-03 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/depsolve.py: don't constantly reset the tsInfo if there's
- nothing in it.
-
-2007-04-03 James Bowes <jbowes at redhat.com>
-
- * yum/sqlitecache.py: Create pkgKey index on PRCO data, as suggested
- by Florian Festi
-
-2007-04-03 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: don't refer to self.pkgSack until we're positive
- it's setup, otherwise we get good and recursive in the wrong place -
- should make --enablerepo/--disablrepo work properly when combined
- with excludes
-
-2007-04-02 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/rpmsack.py: fix breakage in lookup of rpmsack - idx was being
- used nested in a for loop and overwriting itself. fixes issue with
- installonlyn and all lookups by name
-
-2007-04-02 James Bowes <jbowes at redhat.com>
-
- * yum/depsolve.py: Remove _checkUpdate If a transaction member was
- marked as 'update', we'd run _checkInstall on it, then run
- _checkRemove on all of the packages that it was updating. After
- this, we'd then run _checkRemove on all transaction members marked
- as 'updated'. So we were running _checkRemove on every 'updated'
- package twice. Get rid of this.
-
-2007-04-01 James Bowes <jbowes at redhat.com>
-
- * yum/depsolve.py: Only call pkgAdded if the transaction member has
- a state
-
-2007-04-01 James Bowes <jbowes at redhat.com>
-
- * yum/rpmsack.py: Rpmsack _search optimization If we have the full
- pkgtup, then just look it up in the header dict. Takes 'yum remove
- glibc' from 1m2s to 0m41s on my machine.
-
-2007-04-01 James Bowes <jbowes at redhat.com>
-
- * yum/depsolve.py: Simplify provideToPkg code
-
-2007-04-01 James Bowes <jbowes at redhat.com>
-
- * yum/depsolve.py: fix recent tscheck breakage
-
-2007-04-01 Jeremy Katz <katzj at redhat.com>
-
- * yum/depsolve.py: From Chris Lumens (clumens AT redhat DOT com)
- Looking at why the anaconda dependency progress bar never moves, I
- found two small things. First, we're never calling pkgAdded in
- _resolveDeps so the progress bar is never getting updated. Second,
- we're never initializing the progress bar with the number of things
- to check so we don't know how big to make the increments.
-
-2007-04-01 Jeremy Katz <katzj at redhat.com>
-
- * yum/depsolve.py: split up checking on package erasure into things
- from the rpmdb and things in the tsinfo. given the lack of
- searchability with the tsinfo, we're better off just going through
- it once with the set of provides rather than looping over it for
- each provide.
-
-2007-04-01 James Bowes <jbowes at redhat.com>
-
- * yum/transactioninfo.py: Fix a misnamed variable in getMembers, and
- rearrange the code a bit
-
-2007-03-30 Jeremy Katz <katzj at redhat.com>
-
- * yum/depsolve.py: switch back to logic we were previously using on
- removal as it handled some of the corner cases better. but add
- checking to ensure that nothing in the tsinfo requires the provide.
- this should fix the problem where quux requires bar, bar is
- currently installed remove bar, install quux in same transaction
-
-2007-03-30 Jeremy Katz <katzj at redhat.com>
-
- * yum/sqlitesack.py: and re-fix handling of the filesystem package.
- the split of the filenames gets confused with / being in filesystem
- which is what the uniq got added for originally
-
-2007-03-30 Jeremy Katz <katzj at redhat.com>
-
- * yum/rpmsack.py: some speedups * don't use yield with _get_pkglist;
- we've already generated the list and just returning it is faster *
- remove inner match() function of _search() so that we don't have
- the overhead of a bazillion function calls. yes, this is noticable.
-
-
-2007-03-29 Jeremy Katz <katzj at redhat.com>
-
- * yum/sqlitesack.py: fix filelist/dirlist population to be correct!
- we've been doing sort/uniq on the filenames which makes
- (illustrative example..) /lib
- dff|dbus-1.0/lidbus-1.so.3.2.0/libdbus-1.so.3 end up giving
- /lib/libdbus-1.so.3 (dir) /lib/libdbus-1.so.3.2.0 (file)
- /lib/dbus-1.0 (file) This is clearly *not* what it's supposed to be
- :)
-
-2007-03-28 Jeremy Katz <katzj at redhat.com>
-
- * yum-updatesd.py: make it so that we can pass back initialization
- errors to callers over the bus. Patch from Ray Strode (halfline AT
- gmail DOT com)
-
-2007-03-28 Jeremy Katz <katzj at redhat.com>
-
- * yum/plugins.py: allow YumPluginExit to have a translation domain
- set so that we can get a localized error message
-
-2007-03-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/depsolve.py: make it a small amount faster. searching the
- transaction set members is slow - it needs to be faster
-
-2007-03-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/depsolve.py: - catch the case where we remove something needed in the transaction
- - partial limited delta case
-
-2007-03-26 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/transactioninfo.py: allow getMembers() to return a package
- sack, optionally.
-
-2007-03-23 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/depsolve.py: just a stub - need to fill it out tomorrow to act
- as a simplifier for _checkRemove()
-
-2007-03-22 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: changelog merge
-
-2007-03-22 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum.spec, yum/__init__.py: mark as 3.1.5
-
-2007-03-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/depsolve.py: newpoprovs as a dict, not a list
-
-2007-03-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * rpmUtils/miscutils.py: somehow we trickled in a '0' in the single
- case where we really do mean ('None') for epoch - the case is when
- the 'version' string from an rpm header is '' then we should be
- returning (None, None, None) for the evr tuple not ('0', None, None)
- We tripped this, I think b/c maybe rpm changed from returning None
- for empty version fields to returning ''. Unsure but this appears to
- do what is expected either way.
-
-2007-03-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/depsolve.py: do a filelists check for each of the updated pkgs
- - this lets us prune out the lists of real problems faster at the
- expense of downloading the filelists metadata. also do a first cut
- of the new dep check object. This isn't wired up yet, but if it
- works it means not looking up data we already know and it should let
- us implement the delta in it.
-
-2007-03-20 Tim Lauridisen <tla at rasmil.dk>
-
- * yum/comps.py: Make comps handle situation where comps.xml for 3.
- part repos dont contains any name and description tags for groups
- shared with the base repo, because they what to use the same name
- and description as set in the base repo. If the 3. part repo
- comps.xml get parsed first, then the group ends up with no name.
- This fix solves the problem by merging the names & descriptions.
-
-2007-03-20 Tim Lauridisen <tla at rasmil.dk>
-
- * yum/__init__.py: fixed TypeError in comps property (fset)
-
-2007-03-19 Jeremy Katz <katzj at redhat.com>
-
- * yum/__init__.py: when we close the rpmdb, we need to also ensure
- that the repos don't think they're represented in the comps object
- anymore (rh#230877 and others)
-
-2007-03-19 Jeremy Katz <katzj at redhat.com>
-
- * yum/depsolve.py: remove the busted attempt at depsolving since it
- keeps throwing off my searches
-
-2007-03-19 Jeremy Katz <katzj at redhat.com>
-
- * yum/__init__.py, yum/depsolve.py: export the isPackageInstalled
- method and just use the one from __init__ instead of copies
- everywhere. remove the one from the depsolver which is subtly
- different (and breaks for the fresh install case)
-
-2007-03-19 Jeremy Katz <katzj at redhat.com>
-
- * yum-updatesd.py: Fixes GetUpdateInfo() barfing with
- dbus-python-0.80 or later. From Bill Nottingham
-
-2007-03-19 Tim Lauridisen <tla at rasmil.dk>
-
- * yum/__init__.py: make doRepoSetup (__getRepos) only add the repos
- once. So dont get 'Repository xxxx is listed more than once in the
- configuration' in yum api programs like yum-utils, yumex etc,
- calling doRepoSetup() because self.repos has been accessed before.
-
-2007-03-19 Jeremy Katz <katzj at redhat.com>
-
- * rpmUtils/arch.py: canonArch of rpmUtils.arch isn't used everywhere
- it could be, making it less useful. use it more. patch from Bill
- Nottingham
-
-2007-03-19 Jeremy Katz <katzj at redhat.com>
-
- * yum/depsolve.py: we shouldn't ignore config() deps -- it was
- reasonable to do so in the closed universe of anaconda, but not so
- much here.
-
-2007-03-16 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: don't print time.time() when doing glob'd
- 'provides' searches
-
-2007-03-09 James Bowes <jbowes at redhat.com>
-
- * yum/sqlitesack.py: Use a user-defined function for searchfiles
-
-2007-03-07 Jeremy Katz <katzj at redhat.com>
-
- * shell.py: nuke no-longer existent and dead method call (rh#231202)
-
-
-2007-03-07 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: check in changelog
-
-2007-03-07 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum.spec, yum/__init__.py: mark as 3.1.4
-
-2007-03-05 Jeremy Katz <katzj at redhat.com>
-
- * yum/yumRepo.py: YumRepository.__get -> YumRepository._getFile.
- and a placeholder compat stub although I don't know how it could be
- used in reality
-
-2007-03-05 Jeremy Katz <katzj at redhat.com>
-
- * yum/config.py: define _reposlist in the YumConf object.
- otherwise, we break API for callers who override config setup
-
-2007-03-05 James Bowes <jbowes at redhat.com>
-
- * yum/sqlitesack.py: Uniq the search results, and use a variable for
- 'glob' or '=' in the sql queries
-
-2007-03-05 James Bowes <jbowes at redhat.com>
-
- * yum/sqlitesack.py: Fix traceback in filelist search
-
-2007-03-05 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/depsolve.py: make sure we look at the provides in the txmbr
- from packages which aren't in any packagesack at all (localinstalls)
-
-
-2007-03-05 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/sqlitesack.py: optimize a couple of returns from changelog and
- filelist dumps
-
-2007-03-05 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py, yum/sqlitesack.py: clean up the 'yum provides'
- command by fixing searchALL, implementing searchFiles() properly and
- by jbowes showing me how sqlite is stupid with the ordering of the
- tables you're selecting from.
-
-2007-03-04 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/packageSack.py: optimize delPackage() in MetaSack even though
- it seems like it is a performance hit in every situation
-
-2007-03-04 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: remove same issue with includePackages()
-
-2007-03-04 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py, yum/packageSack.py, yum/sqlitesack.py: kill
- performance hit on excludePackage() call by not referencing the same
- information 4 times for no apparent reason.
-
-2007-03-04 James Bowes <jbowes at redhat.com>
-
- * yum/__init__.py, yum/sqlitesack.py: For the yum provides command,
- don't return packages by dep first, as this is covered by searchAll
- (with the addition of /bin etc file search). Also, unique the
- results from searchAll.
-
-2007-03-04 James Bowes <jbowes at redhat.com>
-
- * yum/sqlitecache.py, yum/sqlitesack.py: Iterate over the cursor
- instead of using fetchall
-
-2007-03-04 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: get all the cases where we need to read in the
- filelist info in doSackFilelistPopulate()
-
-2007-03-04 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: fix merge conflict
-
-2007-03-04 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/sqlitesack.py, yum/sqlutils.py: - implement not-quite-complete searchFiles() method to the
- sqlitesack - add a couple of commented-out debug statements so I
- don't have to constantly add and delete them to sqlutils
-
-2007-03-04 James Bowes <jbowes at redhat.com>
-
- * yum/sqlitesack.py: Partial fix for 'yum provides' results. Still
- not getting as many hits as 3.0.3 however.
-
-2007-03-04 James Bowes <jbowes at redhat.com>
-
- * yum/__init__.py: Fix a block's indentation level
-
-2007-03-03 James Bowes <jbowes at redhat.com>
-
- * yum/sqlitesack.py: Fix an improperly indented block
-
-2007-03-02 Jeremy Katz <katzj at redhat.com>
-
- * yum/__init__.py: if someone calls doRepoSetup(), then they're
- expecting to go through the full setup. perhaps due to specifying a
- repo or something along those lines. so make it so that we can do
- that
-
-2007-03-02 Jeremy Katz <katzj at redhat.com>
-
- * yum/__init__.py: fix callers of doRepoSetup as well
-
-2007-03-02 Jeremy Katz <katzj at redhat.com>
-
- * yum/__init__.py: fix a typo. and switch to fdel setting things to
- None so that we don't get tracebacks from it
-
-2007-03-02 Jeremy Katz <katzj at redhat.com>
-
- * yum/__init__.py: actually, do generic setattr and delattr on all
- of these so we don't have to get a bug filed on each
-
-2007-03-02 Jeremy Katz <katzj at redhat.com>
-
- * yum/__init__.py: allow setting pkgSack (rh#230734)
-
-2007-03-02 Jeremy Katz <katzj at redhat.com>
-
- * yum/sqlitesack.py: need to reset the pkglist when excluding
- packages. otherwise, we end up with excluded packages in the
- package list (rh#230771)
-
-2007-03-02 James Bowes <jbowes at redhat.com>
-
- * yum/config.py: get iteritems to do what its supposed to - return
- the value, not the option object
-
-2007-03-02 Jeremy Katz <katzj at redhat.com>
-
- * yum/sqlitesack.py: * convert pkgids to be str type instead of unicode. * can't do qmark
- substitution with "where foo in ?" expressions. at least, I can't
- figure out how to make them work.
-
-2007-03-02 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: correct API break in doSackSetup()
-
-2007-03-01 Jeremy Katz <katzj at redhat.com>
-
- * yum/depsolve.py: don't do the tsInfoDelta optimization. with it,
- if we have a missing dep on the first time through the loop and
- don't resolve it, we don't ever go back to see if it's resolved.
- this breaks updating on a repo with broken deps
-
-2007-03-01 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: update changelog
-
-2007-03-01 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum.spec, yum/__init__.py: mark as 3.1.3
-
-2007-03-01 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py, yum/depsolve.py: allow setting/delete tsInfo
- cleanly
-
-2007-03-01 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/packageSack.py: note about a fixme
-
-2007-03-01 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: make sure anything about the repo has been setup
- before we see if the filelists are imported
-
-2007-02-28 Jeremy Katz <katzj at redhat.com>
-
- * yum/depsolve.py: make sure we actually have something to set as a
- dep. fixes traceback found by jon corbet
-
-2007-02-28 James Bowes <jbowes at redhat.com>
-
- * yum/sqlitesack.py: Fixing a sql query for python 2.5. I'll just
- assume it still works on older pythons
-
-2007-02-28 Jeremy Katz <katzj at redhat.com>
-
- * yum/depsolve.py: check to ensure that things being removed aren't
- still satisfied by the rpmdb (rh#230392)
-
-2007-02-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/yumRepo.py: grudgingly check the just-unzipped sqlite file.
-
-2007-02-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/yumRepo.py: delete the bz2 file after we uncompress it.
-
-2007-02-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/yumRepo.py: with clean cache, make sure you bunzip the sqlite
- file :)
-
-2007-02-28 Jeremy Katz <katzj at redhat.com>
-
- * yum/sqlitesack.py: fix to work with either sqlite API
-
-2007-02-28 James Bowes <jbowes at redhat.com>
-
- * yum/__init__.py: During yum search, only output the package name,
- ver, etc once per match
-
-2007-02-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/sqlitesack.py: - fix traceback found by Tim - kill of the last of the db2class
- calls
-
-2007-02-28 Tim Lauridisen <tla at rasmil.dk>
-
- * yum/packages.py: Added patch by Jack Neely to fix traceback when
- the following is used. if po == None: (rhbz #229917)
-
-2007-02-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/sqlitesack.py: - make excludes work again - add _excluded() method to check if a
- package in a repo is excluded
-
-2007-02-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/sqlitesack.py: check excludeArch query to use not in (range)
-
-2007-02-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/sqlitesack.py: - condense down some more code - get rid of the need for db2class()
-
-
-2007-02-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/sqlitesack.py: get rid of some unused imports
-
-2007-02-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/sqlitesack.py: looks like we get the same benefit of not
- calling __init__() on each of the objects as we do by flattening the
- class. So don't flatten them.
-
-2007-02-28 James Bowes <jbowes at redhat.com>
-
- * yum/config.py: Use dark metaclass magic to reduce the number of
- times we have to examine the attributes of config stuff. Before we
- did it per instance, now it is per class.
-
-2007-02-27 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/rpmsack.py: minor change as to how to check for header_dict
- being empty
-
-2007-02-27 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/sqlitesack.py: - flatten down the YumAvailablePackageSqlite object by porting
- methods from YumAvailablePackage. - misc code clean ups - more to go
-
-
-2007-02-27 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/yumRepo.py: make sure xml-based repos work, too.
-
-2007-02-27 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: - small speed improvements to doPackageLists() - some minor changes
- to _getSacks()
-
-2007-02-27 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/yumRepo.py: - get rid of a bunch of duplicated code - make it so we don't bunzip
- the sqlite.bz file everytime for no good reason - add an
- openchecksum optional argument to repo.checkMD()
-
-2007-02-26 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/sqlitesack.py: - condense a couple of select statements - add statement to return
- multiple pkgs from pkgid's at once. - add some checks in to keep
- from tracing back when people reset the package sacks in odd ways
- (thanks to Jesse for showing me this)
-
-2007-02-26 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/sqlitesack.py: combine the selects into a single statement.
-
-2007-02-24 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/sqlitesack.py: make install/remove/update globs work again :)
-
-
-2007-02-23 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/sqlitesack.py: collapse the searchPrco select into a single
- select combining packages and the prco table. Speeds up returns of
- big items.
-
-2007-02-23 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: fixme to remember
-
-2007-02-23 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/sqlitesack.py: keep from tripping over an empty list
-
-2007-02-23 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py, yum/constants.py, yum/sqlitesack.py: Take a
- hammer to the search function based on suggestions by Patrick
- Reynolds.
-
-2007-02-22 Seth Vidal <skvidal at linux.duke.edu>
-
- * shell.py, utils.py, yum/plugins.py: more deprecation clean ups.
-
-2007-02-22 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: more deprecation warning clean ups
-
-2007-02-22 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/depsolve.py: clean up some deprecated methods
-
-2007-02-22 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py, yum/depsolve.py: fix all the deprecation warnings
- to be future warnings
-
-2007-02-22 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py, yum/depsolve.py: implement the rest of the
- properties, rename all the methods, add deprecation warnings to the
- old method names.
-
-2007-02-22 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/__init__.py, yum/depsolve.py, yum/transactioninfo.py:
- yum-with-properties patch. This makes yum use properties for most of
- the base attributes of YumBase so that setup is less necessary for
- default operation. This is half way through the changes.
-
-2007-02-21 Jeremy Katz <katzj at redhat.com>
-
- * yum/__init__.py: don't complain about being unable to remove
- headers that may not exist
-
-2007-02-21 Jeremy Katz <katzj at redhat.com>
-
- * yum/sqlitesack.py: we need to take excludes into account with
- matchPackageNames()
-
-2007-02-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: checkin changelog
-
-2007-02-20 Jeremy Katz <katzj at redhat.com>
-
- * yum/depsolve.py: add a teensy bit more logging so that things
- aren't as silent
-
-2007-02-20 Jeremy Katz <katzj at redhat.com>
-
- * yum/depsolve.py: make sure the sack is setup. ugh.
-
-2007-02-20 Jeremy Katz <katzj at redhat.com>
-
- * yum/depsolve.py: decrease the likelihood that we have to grab the
- filelists
-
-2007-02-20 Jeremy Katz <katzj at redhat.com>
-
- * yum/depsolve.py: simple optimization for the update case -- if
- updated foo-1 provided /usr/bin/foo and foo-2 still provides
- /usr/bin/foo, then there's no need to care about the erasure case of
- /usr/bin/foo; it'll still be covered. similarly for identical
- requires and remove the bits seth commented out, they're dead dead
- dead now.
-
-2007-02-19 Jeremy Katz <katzj at redhat.com>
-
- * yum/depsolve.py: got a little bit too carried away cleaning up
- unrelated changes
-
-2007-02-19 Jeremy Katz <katzj at redhat.com>
-
- * yum/depsolve.py: this doesn't really belong here, but make it so
- that we see that installonly packages are being installed and not
- updated. otherwise, it's not reflected until you actually do the
- install/update breaking plugins (installonlyn) and the display of
- what's being done possibly move to __init__.py:buildTransaction()
- after the resolveDeps() ???
-
-2007-02-19 Jeremy Katz <katzj at redhat.com>
-
- * yum/constants.py, yum/depsolve.py: fixes to pass my current
- testing set * ensure that we add the updated package relation when
- doing an addUpdate() * significantly rework the removal case. the
- basic idea is for all provides being removed for everything
- that requires the provide (by name) make sure we're not
- already removing the package ensure the removed package
- _actually_ was a satisfier see what's installed that provides
- the same name if it's being removed, ignore it see
- if it satisfies our require; if so, this package is ok do the
- same checks with packages being installed to find out if we're ok
- if we're not okay, then we need to fulfill a dep for prov
-
-2007-02-19 Jeremy Katz <katzj at redhat.com>
-
- * yum/transactioninfo.py: allow getting tsinfo members that are just
- in a specific state. this is a bit ugly right now
-
-2007-02-19 Jeremy Katz <katzj at redhat.com>
-
- * yum/sqlitesack.py: * now that we have provides as a property, they get filled in when
- requested and we don't have to prefill with the prco we searched
- for. filling it in means that we don't get it from the sqlitedb
- for full results * the LIKE sqlite query seems to not work, disable
- it for now
-
-2007-02-19 Jeremy Katz <katzj at redhat.com>
-
- * yum/packages.py: if a package requires foo-version without a
- release, we need to match that as being satisfied with a provide of
- foo-version-*. eg, glest-data requires glest = 2.0.0 glest
- provides glest = 2.0.0-5.fc7
-
-2007-02-19 James Bowes <jbowes at redhat.com>
-
- * yum/packages.py: silly jeremy, i'd *never* break the api. revert
- previous change to returnHeaderFromPackage, since its a new method
-
-2007-02-19 Jeremy Katz <katzj at redhat.com>
-
- * yum/packages.py: * simplify checkPrco slightly * don't break API gratuitously with
- po.returnHeaderFromPackage()
-
-2007-02-19 James Bowes <jbowes at redhat.com>
-
- * yum/packages.py: _populatePrco is called often. use map() to speed
- things up a bit.
-
-2007-02-19 James Bowes <jbowes at redhat.com>
-
- * yum/depsolve.py: Let the logger do the string substitution, so we
- don't have to call __str__ on packages unless we're actually
- printing
-
-2007-02-18 James Bowes <jbowes at redhat.com>
-
- * yum/depsolve.py: Speed up erase by only doing tscheck on the new
- editions to tsInfo, rather than doing the old ones over and over
- again
-
-2007-02-18 James Bowes <jbowes at redhat.com>
-
- * rpmUtils/miscutils.py, yum/depsolve.py, yum/packages.py: When
- loading the header for transaction checking, don't check the
- signature. rpm will raise an exception when we try to read the
- header from an fdno, if we have signature checking turned on and the
- header's signature is bad or unknown. At the stage that we're
- reading the header, we don't care and just want to get that data.
-
-2007-02-17 James Bowes <jbowes at redhat.com>
-
- * yum/rpmsack.py: Store hdr and idx in header_dict, to reduce the
- calls to header_from_index. Also use header_dict's pkgtups for
- _get_pkglist. Testing on my laptop shows depsolving for 'install
- kdelibs' to go from 7s to 5s, which is on par with old dep solving,
- with all headers on disk.
-
-2007-02-17 James Bowes <jbowes at redhat.com>
-
- * test/packagetests.py: Add some buildPkgDictRef tests
-
-2007-02-17 James Bowes <jbowes at redhat.com>
-
- * docs/yum.conf.5, yum/config.py: Search for plugins in /usr/share
- and /usr/lib
-
-2007-02-16 James Bowes <jbowes at redhat.com>
-
- * test/packagetests.py: Add PackageEVR tests
-
-2007-02-16 James Bowes <jbowes at redhat.com>
-
- * test/packagetests.py: Use setUp and remove a bunch of duplication
-
-
-2007-02-16 James Bowes <jbowes at redhat.com>
-
- * test/packagetests.py: add more inPrcoRange tests
-
-2007-02-16 Tim Lauridisen <tla at rasmil.dk>
-
- * cli.py: Let the plugins know what the commandline options and
- arguments are.
-
-2007-02-16 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/constants.py, yum/depsolve.py, yum/transactioninfo.py: all of
- this may need to be rolled back but: - add an 'updated' txmbr for
- tsInfo so we can easily see what's being removed, implicitly as
- part of an update - make _checkUpdate() in YumDepsolver be an
- amalgam of install and remove - add the TS_UPDATED constant to
- constants
-
-2007-02-16 James Bowes <jbowes at redhat.com>
-
- * test/packagetests.py, yum/packages.py: Add more inPrcoRange tests,
- plus fix a bug
-
-2007-02-15 James Bowes <jbowes at redhat.com>
-
- * Makefile: add a 'test' makefile target
-
-2007-02-15 James Bowes <jbowes at redhat.com>
-
- * test/alltests.py, test/packagetests.py, test/settestpath.py: add
- test dir for unit tests, with sample inPrcoRange test
-
-2007-02-15 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/depsolve.py, yum/packages.py: fix checkRemove and flesh out
- inPrcoRange() to be fairly complete
-
-2007-02-15 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/depsolve.py: import os.path
-
-2007-02-14 Jeremy Katz <katzj at redhat.com>
-
- * cli.py, yum-updatesd.py, yum/depsolve.py: make it so that we see
- that the local rpm is present and then don't download rather than
- requiring API callers to specify what to do
-
-2007-02-14 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum.spec, yum/__init__.py: 3.1.2 mark
-
-2007-02-14 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum-updatesd.py, yum/depsolve.py, yum/packages.py: remove
- the need for .hdr files for the transaction run. - add 'noheaders'
- option to DepSolve.populateTs(). Defaults to False for backward
- api compat. When True it will not attempt to retrieve the .hdr via
- byteranges but will read it out of the rpm add
-
-2007-02-14 James Bowes <jbowes at redhat.com>
-
- * yum/depsolve.py: Use a boolean for CheckDeps rather than an int
-
-2007-02-14 Jeremy Katz <katzj at redhat.com>
-
- * yum/packages.py: fix the traceback terje hit
-
-2007-02-14 Jeremy Katz <katzj at redhat.com>
-
- * yum/__init__.py, yum/depsolve.py: headerless dep solving, take 3
- now we have a method to return the same sort of stuff as rpm's
- ts.check(), this makes it so that we can continue to use all of the
- handling we've had thus far for finding what to update, etc instead
- of having to reinvent all of those wheels. switch over to using
- this.
-
-2007-02-14 Jeremy Katz <katzj at redhat.com>
-
- * yum/misc.py: split out conversion of version tuple -> string, use
- it
-
-2007-02-14 Jeremy Katz <katzj at redhat.com>
-
- * rpmUtils/miscutils.py: epoch value should always be a string
-
-2007-02-13 Panu Matilainen <pmatilai at laiskiainen.org>
-
- * yum/packages.py: - return changelog data from rpm headers in the same (date, author,
- message) order as elsewhere (rhbz#221166)
-
-2007-02-13 James Bowes <jbowes at redhat.com>
-
- * yum/depsolve.py: Add a fixme for a case when we should fail. Maybe
- I'll get to it later, but anyone else is welcome to it
-
-2007-02-12 Jeremy Katz <katzj at redhat.com>
-
- * yum/depsolve.py: make removes fast too.
-
-2007-02-12 Jeremy Katz <katzj at redhat.com>
-
- * yum/packages.py: whitespace so there's a commit message for
- this... * if there's not a sha1header in the package (ie, it was
- built with old old rpm) then we should still have _something_ for
- the pkgid. use the md5 for now
-
-2007-02-12 Jeremy Katz <katzj at redhat.com>
-
- * yum/__init__.py, yum/packages.py, yum/yumRepo.py: * switch back to using AnacondaDepsolver by default media fixes: *
- remove the media placeholder at this point * sort downloading based
- on discid to avoid ping pong-ing between discs * handle getting the
- discnum from the package * default disc to 1, not None
-
-2007-02-12 Jeremy Katz <katzj at redhat.com>
-
- * yum/depsolve.py, yum/rpmsack.py: further work on in-yum depsolver
- * handle packages which are already installed and solve deps for new
- packages * handle packages being removed including file bits * add
- whatRequires method for the rpmdb * split things up a little note
- that removals are currently very slow.
-
-2007-02-07 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/constants.py, yum/repoMDObject.py, yum/sqlitecache.py,
- yum/yumRepo.py: check dbversion before downloading sqlite dbs move
- dbversion into constants
-
-2007-02-07 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: more changelog updates
-
-2007-02-07 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: fix yum deplist to work with new matchPackageNames method
-
-
-2007-02-07 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: check in changelog
-
-2007-02-06 Tim Lauridisen <tla at rasmil.dk>
-
- * utils.py: Added missing yum.plugins import
-
-2007-02-06 Tim Lauridisen <tla at rasmil.dk>
-
- * cli.py, utils.py: - Changes to yum's getOptionConfig and YumOption parser to make them
- reuseable in future yum-util tools. - Added utils.py with baseclass
- for future yum-utils.
-
-2007-02-06 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum.spec, yum/__init__.py: 3.1.1 labels in source and spec
-
-2007-02-05 James Bowes <jbowes at redhat.com>
-
- * yum/__init__.py: use the old depsolver for now, since the new one
- will like, not work.
-
-2007-02-04 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/yumRepo.py: make user execution from db-based-cache work
-
-2007-02-04 Jeremy Katz <katzj at redhat.com>
-
- * yum/yumRepo.py: further support for media installs. determine the
- discid, don't do the url bits for scheme == media (this may also
- work for yum 3.0.x to handle the dvd being mounted for your core
- baseurl), and pass a few more bits NOTE: the arguments for the
- media grabber function are not at all set in stone right now and
- will change as pirut/anaconda actually use this.
-
-2007-02-04 James Bowes <jbowes at redhat.com>
-
- * yum/__init__.py, yum/depsolve.py: Add anaconda's no-headers
- depsolver
-
-2007-02-04 James Bowes <jbowes at redhat.com>
-
- * yum/__init__.py: Reduce code duplication for cache cleaning
-
-2007-02-03 James Bowes <jbowes at redhat.com>
-
- * yum/__init__.py: remove the sqlite.bz2 files on clean
-
-2007-02-03 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/misc.py, yum/repoMDObject.py, yum/yumRepo.py: clean up the
- silliness to make the db on repos work
-
-2007-02-03 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/yumRepo.py: check for the db file before getting the xml file
- from the repo
-
-2007-02-03 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/sqlitecache.py: add open_database function to match
- sqlitecachec.py in metadata_parser
-
-2007-02-03 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/misc.py: bunzip files
-
-2007-02-03 Jeremy Katz <katzj at redhat.com>
-
- * yum/Errors.py, yum/__init__.py, yum/config.py, yum/yumRepo.py:
- start of pushing media handling into yum. define mediaid= in a repo
- config file to say that a specific repo is tied to a specific media
- set. yum api users need to set self.mediagrabber in their YumBase
- object to a function that actually does the getting of the file.
-
-2007-02-03 James Bowes <jbowes at redhat.com>
-
- * cli.py, yum/packageSack.py, yum/sqlitesack.py: Apply patch from
- David Lutterkort for speedup of yum install
-
-2007-02-03 James Bowes <jbowes at redhat.com>
-
- * cli.py: Patch from Brian Wheeler for a nicer error summary of
- required disk space
-
-2007-02-03 James Bowes <jbowes at redhat.com>
-
- * callback.py, cli.py, yum-updatesd.py: Fix for rhbz 222835 - Yet
- another patch for logging
-
-2007-02-03 Jeremy Katz <katzj at redhat.com>
-
- * yum/__init__.py, yum/transactioninfo.py: make conditionals not a
- subclass since we really don't want to have to deal with that in the
- inheritance chain. also, it doesn't really make any difference
- since we only add to conditionals if the config option is set
-
-2007-02-03 Jeremy Katz <katzj at redhat.com>
-
- * yum/__init__.py, yum/packages.py: * filter FutureWarnings * mark some things as deprecation warnings
-
-2007-02-03 Jeremy Katz <katzj at redhat.com>
-
- * yum/Errors.py: add deprecation warnings
-
-2007-02-01 Seth Vidal <skvidal at linux.duke.edu>
-
- * callback.py: merge Ed Swierk's lovely patch to keep the rpm
- callback from updating uselessly.
-
-2007-01-31 James Bowes <jbowes at redhat.com>
-
- * docs/yum.conf.5, yum/__init__.py, yum/config.py: Add a fallback to
- the old default locations for config stuff
-
-2007-01-28 James Bowes <jbowes at redhat.com>
-
- * yum/sqlitesack.py: Make addDict on SqlitePackageSack behave more
- like the one on YumPackageSack SqlitePackageSack used to store
- 'metadata' in added as 'primary', and only kept the last type in
- added. Now it stores 'metadata' as 'metadata', and appends to added.
-
-
-2007-01-28 James Bowes <jbowes at redhat.com>
-
- * yum/packageSack.py: Replace another use of 'with' with mdtype
-
-2007-01-27 Seth Vidal <skvidal at linux.duke.edu>
-
- * docs/yum.8: fix unclosed parens typo in man page - closes rh bug:
- 224879
-
-2007-01-27 James Bowes <jbowes at redhat.com>
-
- * cli.py, docs/yum.8, docs/yum.conf.5, etc/Makefile, etc/yum.conf,
- yum-updatesd.py, yum.spec, yum/__init__.py, yum/config.py,
- yummain.py: Store all config files under /etc/yum, with no fallback.
-
-
-2007-01-25 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/Errors.py, yum/comps.py: make compsexception a subclass of
- YumBaseError
-
-2007-01-25 Jeremy Katz <katzj at redhat.com>
-
- * yum/comps.py: ignore bad package lines to avoid barrages like
- #224292
-
-2007-01-25 Tim Lauridisen <tla at rasmil.dk>
-
- * yum/packages.py: fixed po.ver -> po.version & po.rel ->
- po.release, because TransactionMember dont have .rel and .ver
- properties.
-
-2007-01-22 Jeremy Katz <katzj at redhat.com>
-
- * yum-updatesd.py: fix tyop
-
-2007-01-22 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py, yum/repos.py, yum/sqlitesack.py, yum/yumRepo.py,
- yumcommands.py: - change out 'with' option to populate() closing rh bug 223650 - add
- gpl headed to yumRepo.py
-
-2007-01-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: merge in changelogs
-
-2007-01-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum.spec, yum/__init__.py: mark as 3.1.0
-
-2007-01-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * AUTHORS, TODO, output.py: - merge in changes to AUTHORS/TODO - bring output.py up to patch vs
- 3.0.X
-
-2007-01-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: bring head up to all patches to 3.0.X
-
-2007-01-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/depsolve.py: dep solving debug timing
-
-2007-01-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/packageSack.py: port forward the obsoletes processing patch
-
-2007-01-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/rpmsack.py: merge forward the remove-rpmdb-close patch
-
-2007-01-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * rpmUtils/arch.py: bring tim's patch for tab/whitespace fixes up
- from 3.0.X
-
-2007-01-09 James Bowes <jbowes at redhat.com>
-
- * yum-updatesd.py: Reduce code size on the loop attempting to doLock
- for yum-updatesd.
-
-2007-01-09 James Bowes <jbowes at redhat.com>
-
- * yum-updatesd.py: Move header downloading into the child threads
- for yum-updatesd
-
-2007-01-08 Jeremy Katz <katzj at redhat.com>
-
- * yum/config.py: man page says redhat-release, so we should check
- that (rh#221770)
-
-2007-01-03 Jeremy Katz <katzj at redhat.com>
-
- * rpmUtils/arch.py: sparc support from spot (rh#220953)
-
-2007-01-03 Tim Lauridisen <tla at rasmil.dk>
-
- * yum/logginglevels.py: Add modified version Terje's syslog patch,
- to make it possible for a application using yum api to register its
- application name to be written to the syslog in the following format
- yum (applicationname) : message.
-
-2006-12-20 James Bowes <jbowes at redhat.com>
-
- * shell.py: Add tab completion for yum commands to the shell
-
-2006-12-19 James Bowes <jbowes at redhat.com>
-
- * yum/parser.py: Urlgrabber will always be used here (especially
- since we don't import urllib)
-
-2006-12-19 James Bowes <jbowes at redhat.com>
-
- * output.py: Remove unused code
-
-2006-12-19 James Bowes <jbowes at redhat.com>
-
- * yum-updatesd.py, yum/__init__.py, yum/depsolve.py,
- yum/packageSack.py, yum/repos.py, yummain.py: Remove a bunch of
- unused imports
-
-2006-12-19 James Bowes <jbowes at redhat.com>
-
- * yum/logginglevels.py: Replace catching Exception with IOError,
- which should catch all cases
-
-2006-12-15 Jeremy Katz <katzj at redhat.com>
-
- * yum/sqlitesack.py: fix provides matching (rh#219716)
-
-2006-12-12 Jeremy Katz <katzj at redhat.com>
-
- * yum/update_md.py: further python 2.5 fix (Richard Dawe, rh#219206)
-
-
-2006-12-11 Jeremy Katz <katzj at redhat.com>
-
- * yum/Errors.py: ensure we get a string
-
-2006-12-10 James Bowes <jbowes at redhat.com>
-
- * rpmUtils/miscutils.py: Just use str() it's faster and does the
- same thing.
-
-2006-12-09 James Bowes <jbowes at redhat.com>
-
- * yum/sqlitesack.py: Fix typo in some sqlitesack methods
-
-2006-12-09 James Bowes <jbowes at redhat.com>
-
- * yum/packages.py: Undo my previous property related patch, since it
- breaks how the sql package overrides returnChecksums
-
-2006-12-09 James Bowes <jbowes at redhat.com>
-
- * yum/sqlitesack.py: Fix small typo in sql query parameter
-
-2006-12-09 James Bowes <jbowes at redhat.com>
-
- * yum/packages.py: Remove unneeded use of lambda in some properties
-
-
-2006-12-09 James Bowes <jbowes at redhat.com>
-
- * yum/packages.py: Make pkgtup a property, rather than setting it
- during init
-
-2006-12-07 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: whitespace fix - thanks to terje
-
-2006-12-07 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/config.py: fix up the debuglevel and errorlevel so they are
- set appropriately from the cmdline to the conf
-
-2006-12-05 Jeremy Katz <katzj at redhat.com>
-
- * yum/mdparser.py: jbowes (rightfully) points out that this can be
- even simpler
-
-2006-12-05 Jeremy Katz <katzj at redhat.com>
-
- * yum/sqlitecache.py, yum/sqlitesack.py: support newer versions of
- pysqlite as included in python 2.5 and standalone the bulk of this
- is: a) converting to use qmark instead of pyformat for queries
- (http://www.python.org/dev/peps/pep-0249/ for DB-API info) b) doing
- on-the-fly conversion to pyformat if we're still using old
- pysqlite. since with this version of yum, I'd expect most people to
- move to new python or at least new pysqlite, things are done in the
- direction that's faster for the new stuff. if we decide to require
- python2.5 or pysqlite 2.x for yum 3.2, then this can be simplified a
- bit
-
-2006-12-05 Jeremy Katz <katzj at redhat.com>
-
- * yum/sqlutils.py: utility functions to handle differences in
- pysqlite versions These are from Wichert Akkerman
- <wichert at deephackmode.org>'s python-dhm
- http://www.wiggy.net/code/python-dhm
-
-2006-12-05 Jeremy Katz <katzj at redhat.com>
-
- * yum/comps.py, yum/repoMDObject.py: for python2.5, cElementTree is
- now xml.etree; use it
-
-2006-12-05 Jeremy Katz <katzj at redhat.com>
-
- * yum/mdparser.py: removing this chunk breaks things if you're not
- using yum-metadata-parser, but at least make it more readable
-
-2006-12-05 Jeremy Katz <katzj at redhat.com>
-
- * yum/Errors.py: Yum errors take a single value and not a tuple of
- arguments since the value is a string -- change to reflect that so
- that we don't get "interesting" error messages with python2.5
-
-2006-12-05 James Bowes <jbowes at redhat.com>
-
- * bin/yum-updatesd.py, bin/yum.py, callback.py, cli.py, output.py,
- progress_meter.py, rpmUtils/miscutils.py, rpmUtils/updates.py,
- shell.py, yum-updatesd.py, yum/comps.py, yum/depsolve.py,
- yum/failover.py, yum/mdparser.py, yum/misc.py, yum/packageSack.py,
- yum/packages.py, yum/pgpmsg.py, yum/sqlitecache.py,
- yum/update_md.py: pychecker related fixes, including unused imports,
- and removal of use of deprecated methods from the string module
-
-2006-12-03 James Bowes <jbowes at redhat.com>
-
- * yum/packageSack.py: Re-enable using sack.searchAll in the provides
- command. This really speeds up things, since we'll pull fewer
- filelists for packages out of the db. Looks like this broke when the
- metasack was introduced. oops. ;)
-
-2006-12-01 James Bowes <jbowes at redhat.com>
-
- * yum/yumRepo.py: Remove unused code for manipulating the
- failure_obj during __get
-
-2006-11-28 Jeremy Katz <katzj at redhat.com>
-
- * yum/__init__.py: * fix a deprecation warning * give an idea of where gpg keys come
- from on the import; add a new callback method that's more
- extensible
-
-2006-11-26 James Bowes <jbowes at redhat.com>
-
- * cli.py, shell.py, yumcommands.py, yummain.py: Implement the
- ShellCommand code
-
-2006-11-25 James Bowes <jbowes at redhat.com>
-
- * yum/plugins.py: Close the file descriptor used by imp in case an
- exception is thrown.
-
-2006-11-25 James Bowes <jbowes at redhat.com>
-
- * yum/packages.py: Add missing getattr to replace tagByName for
- installed packages
-
-2006-11-23 James Bowes <jbowes at redhat.com>
-
- * yum-updatesd.py, yum/__init__.py, yummain.py: Provide a default
- file name for doLock and doUnlock
-
-2006-11-23 James Bowes <jbowes at redhat.com>
-
- * output.py, yum-updatesd.py, yum/__init__.py, yum/packageSack.py,
- yum/packages.py, yum/rpmsack.py, yum/sqlitesack.py, yum/yumRepo.py:
- Deprecate returnSimple and tagByName; use __getattr__ instead.
-
-2006-11-23 James Bowes <jbowes at redhat.com>
-
- * yum/storagefactory.py: Only catch ImportError in storagefactory
-
-2006-11-17 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/Errors.py: apply patch for bug 670 to HEAD
-
-2006-11-17 Seth Vidal <skvidal at linux.duke.edu>
-
- * docs/yum.conf.5, yum/__init__.py, yum/config.py: allow setting the
- type of packages that will be installed by default on a
- 'groupinstall' command.
-
-2006-11-16 Jeremy Katz <katzj at redhat.com>
-
- * cli.py: fix format error (rh#212850)
-
-2006-11-14 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/misc.py: make sure we're actually comparing versions - not
- packages
-
-2006-11-14 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/sqlitesack.py: make changelogs return
-
-2006-11-08 Jeremy Katz <katzj at redhat.com>
-
- * yum-updatesd.py: init plugins, fix log config (jbowes)
-
-2006-11-08 Jeremy Katz <katzj at redhat.com>
-
- * etc/yum-updatesd.init: fix tyop (rh#214298)
-
-2006-11-06 Jeremy Katz <katzj at redhat.com>
-
- * yum-updatesd.py: fix excludes (rh#213622, rh#212494) and
- auto-update (rh#212507)
-
-2006-11-06 Jeremy Katz <katzj at redhat.com>
-
- * etc/yum-updatesd.conf: add a comment and the dbus_listener option
- (rh#214242)
-
-2006-11-03 Jeremy Katz <katzj at redhat.com>
-
- * cli.py: print out version before plugins are loaded (rh#212292)
-
-2006-10-30 Luke Macken <lmacken at redhat.com>
-
- * Makefile, docs/Makefile: Add docs target to Makefile for epydoc
- generation
-
-2006-10-25 Jeremy Katz <katzj at redhat.com>
-
- * yum/misc.py: file can be a unicode string also
-
-2006-10-25 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/comps.py, yum/config.py, yum/logginglevels.py, yum/misc.py,
- yum/packages.py, yum/repos.py, yum/sqlitesack.py,
- yum/storagefactory.py, yum/yumRepo.py: merge pychecker patches from
- 3.0.X up to head
-
-2006-10-17 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum-updatesd.py, yum/parser.py: - remove IncludingConfigParser,IncludedConfigParser - make
- yum-updatesd.py use ConfigPreProcessor for include= config files
-
-2006-10-16 Jeremy Katz <katzj at redhat.com>
-
- * yum/packages.py: bring back equality of package objects
-
-2006-10-16 Luke Macken <lmacken at redhat.com>
-
- * ChangeLog, yum/yumRepo.py: Patch from Mark McLoughlin to fix typo
- in yumRepo.py
-
-2006-10-13 Paul Nasrat <pnasrat at redhat.com>
-
- * yum/depsolve.py: EVR comparison from Tim Lauridsen
-
-2006-10-13 Paul Nasrat <pnasrat at redhat.com>
-
- * yum/packages.py: Fix up comparison thinkos Man unit tests would be
- nice ;)
-
-2006-10-13 Paul Nasrat <pnasrat at redhat.com>
-
- * yum/packages.py: Update comparison patch from Tim Lauridsen
-
-2006-10-13 Jeremy Katz <katzj at redhat.com>
-
- * cli.py, yum/packageSack.py, yum/packages.py: fix so that
- foo-1.1-1.i386 != foo-1.1-1.x86_64. at the same time, move
- comparison to be of an EVR object and adjust callers accordingly.
- patch for EVR comparison from Tim Lauridsen
-
-2006-10-13 Jeremy Katz <katzj at redhat.com>
-
- * yum/logginglevels.py: close the syslog handler if we don't
- successfully set it up (rh#208773)
-
-2006-10-12 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/rpmsack.py: - speed up searchNevra() by building a pkgtup->headerindex dict -
- make the header_from_index() method work by deleting match iterator
- each time explicitly. Thanks to Jay Soffian for finding this.
-
-2006-10-11 Jeremy Katz <katzj at redhat.com>
-
- * yum/__init__.py: raise the right error... this ended up
- manifesting itself by raising the last error (which had been passed
- on) instead of the intended and an entirely non-obvious traceback.
- moral of the story: always raise a specific exception (rh#210135)
-
-2006-10-06 Jeremy Katz <katzj at redhat.com>
-
- * yum/yumRepo.py: fix basepath handling (from Dennis Gregorivic)
-
-2006-10-06 Jeremy Katz <katzj at redhat.com>
-
- * yum/parser.py: fix traceback (patch from Dawid Zamirski <dzrudy AT
- gmail DOT com>)
-
-2006-10-05 Jeremy Katz <katzj at redhat.com>
-
- * yum-updatesd.py: IncludingConfigParser moved
-
-2006-10-05 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: check in changelog
-
-2006-10-05 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum.spec, yum/__init__.py: - 3.0 mark - make python 2.4 a req in yum.spec
-
-2006-10-03 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/depsolve.py: messing around with a few tests to figure out
- where it is slow.
-
-2006-10-03 Seth Vidal <skvidal at linux.duke.edu>
-
- * shell.py, yum/depsolve.py: make the fix for pekka's bug more
- correct
-
-2006-10-03 Seth Vidal <skvidal at linux.duke.edu>
-
- * shell.py: fix for the traceback Pekka reported - makes sure that
- our ts is reopened/intialized when the user decides to not run the
- transaction from the shell.
-
-2006-10-02 Tim Lauridisen <tla at rasmil.dk>
-
- * yum/plugins.py: replaced IncludingConfigParser with
- ConfigPreProcessor/ConfigParser in plugins, so i works like the rest
- of yum.
-
-2006-10-02 Jeremy Katz <katzj at redhat.com>
-
- * yum/packages.py: * add a remote_url property for packages to get the remote location
- as a string that can be printed * get rid of some explicit uses of
- relativepath
-
-2006-10-02 Menno Smits <menno at freshfoo.com>
-
- * yum/config.py: Copy the default value in case it is mutable and
- different config instances end up manipulating the same default
- value.
-
-2006-10-02 Tim Lauridisen <tla at rasmil.dk>
-
- * yum/plugins.py: fix for this error : AttributeError: 'module'
- object has no attribute 'IncludingConfigParser' When running latest
- yum-cvs with plugins.
-
-2006-10-02 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py, yum/config.py, yum/parser.py: make the include=
- and yum -c http://path/to/file behave like I thought they should.
- This, ultimately, removes the need for parser.IncludingConfigParser
- and parser.IncludedConfigParser but I haven't removed them yet b/c I
- wanted to verify that they are not used elsewhere, first.
-
-2006-09-29 Menno Smits <menno at freshfoo.com>
-
- * yum/config.py: put accidentally removed line back
-
-2006-09-29 Menno Smits <menno at freshfoo.com>
-
- * yum/packages.py, yum/repos.py: cleaned up Repository.setkeys as
- discussed on yum-devel
-
-2006-09-29 Menno Smits <menno at freshfoo.com>
-
- * yum/config.py: Removed on the fly write-back support from the
- config classes. Added BaseConfig.write() instead. This is simpler
- and should use less memory. No-one was using the write support
- anyway.
-
-2006-09-29 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: check in changelog
-
-2006-09-29 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum.spec, yum/__init__.py: mark as 2.9.8
-
-2006-09-29 Tim Lauridisen <tla at rasmil.dk>
-
- * yum/rpmsack.py: minor fix to deprecated returnTupleByKeyword
- method in rpmsack.
-
-2006-09-29 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: make sure we're not accidentally trying to install an old
- version
-
-2006-09-29 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/repos.py: make excludes (and who knows how many other things)
- work again. This, however, may not be the correct fix - willing to
- roll it back out
-
-2006-09-29 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/packageSack.py: make sure we're only returning the newest from
- the metasack
-
-2006-09-28 Jeremy Katz <katzj at redhat.com>
-
- * yum/__init__.py: if we have a local copy of the package that
- checksums fine, use it instead of trying to do a range request from
- the end of the file (rh#208460)208460)208460)208460)
-
-2006-09-28 Jeremy Katz <katzj at redhat.com>
-
- * yum-updatesd.py: define a checkFailed signal so that watchers can
- notify users about failures to check for updates
-
-2006-09-28 Menno Smits <menno at freshfoo.com>
-
- * yum/config.py: Commited James Bowes' inheritance fix and simplify
- the logic.
-
-2006-09-27 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: check in changelog
-
-2006-09-27 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum.spec, yum/__init__.py: bump the rpm requirement to 4.4.X - I
- think this covered returning headers by index bump version
-
-2006-09-26 Menno Smits <menno at freshfoo.com>
-
- * cli.py, shell.py, yum/plugins.py, yumcommands.py: Committed
- Bastiaan Bakker's command extension patch. I made a few bug fixes to
- it.
-
-2006-09-25 Jeremy Katz <katzj at redhat.com>
-
- * yum-updatesd.py: some error logging; avoid leaving a stale lock
- file (rh#203938)
-
-2006-09-18 Jeremy Katz <katzj at redhat.com>
-
- * yum/packages.py: lazily populate prco to speed up rpmsack
- initialization when it's not needed
-
-2006-09-18 Jeremy Katz <katzj at redhat.com>
-
- * yum/packages.py: fix dep installs for locales like turkish where
- string.lower("I") != "i" (rh#206853)
-
-2006-09-14 Jeremy Katz <katzj at redhat.com>
-
- * yum/logginglevels.py: if we can't connect to a syslog, don't die
- (rh#206474)
-
-2006-09-14 Menno Smits <menno at freshfoo.com>
-
- * yum/rpmsack.py: Removed unused excludes attribute and updated
- comments
-
-2006-09-14 Menno Smits <menno at freshfoo.com>
-
- * yum/__init__.py, yum/config.py, yum/yumRepo.py: As discussed
- privately with Paul Nasrat, merged YumRepository and RepoConf to
- help allow config dumping.
-
-2006-09-13 Jeremy Katz <katzj at redhat.com>
-
- * yum-updatesd.py: * actually time out after a few tries * catch another place we could
- potentially not unlock the pid file
-
-2006-09-13 Jeremy Katz <katzj at redhat.com>
-
- * yum/packages.py, yum/sqlitesack.py: swap arguments on __init__ for
- a few Package types so that we have consistency
-
-2006-09-13 Jeremy Katz <katzj at redhat.com>
-
- * yum/__init__.py: clean up some duplicate code to take advantage of
- the fact that the rpmdb is now a package sack
-
-2006-09-11 Jeremy Katz <katzj at redhat.com>
-
- * yum/yumRepo.py: we need to redo setupGrab() after changing
- callbacks so that our grabber has the right info. this makes it so
- that we get progress feedback when downloading in pirut again
-
-2006-09-11 Jeremy Katz <katzj at redhat.com>
-
- * cli.py, yum/__init__.py: fix whatprovides based on a patch from
- Tim Lauridsen (rh#205924)
-
-2006-09-11 Menno Smits <menno at freshfoo.com>
-
- * yum/rpmsack.py: makePackageObject -> _makePackageObject
-
-2006-09-11 Menno Smits <menno at freshfoo.com>
-
- * yum/__init__.py: Fixed the disk space check; it was failing
- because po.size can be a string. Make the disk space check more
- readable by using the statvfs attributes.
-
-2006-09-11 Menno Smits <menno at freshfoo.com>
-
- * yum/__init__.py: Prevent a KeyError that was occur during the disk
- space check because errors wasn't always initialised correctly.
- Added adderror() to avoid initialisation problems like this and
- minimise clutter.
-
-2006-09-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py, yum/packages.py: partial check in just to get it
- off my laptop: 1. do check for space in cache dir for downloading
- packages 2. start changing around the way packages are checked
-
-2006-09-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py, yum/packages.py: get rid of silly code in
- verifyPkg()
-
-2006-09-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/rpmsack.py: as I read through the changes: - clean up one
- docstring - make some of the list constructions using _search look
- the same
-
-2006-09-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/rpmsack.py: make getNameArchPkgList() and getNamePkgList()
- consistent - if our pkglist is length zero then they would have
- traced back.
-
-2006-09-08 Menno Smits <menno at freshfoo.com>
-
- * yum/rpmsack.py: update comments
-
-2006-09-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py, yum/misc.py, yum/packages.py: - move refineSearchPattern into misc from YumBase - clean up some
- pychecker errors
-
-2006-09-08 Menno Smits <menno at freshfoo.com>
-
- * yum/rpmsack.py: Big cleanup of RPMDBPackageSack. Indexes are no
- longer built (buildIndexes). This significantly reducing Yum's
- initialisation time and reduces memory footprint. Despite the lack
- of indexes almost all operations are faster. Will post stats to
- yum-devel.
-
-2006-09-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, output.py, yum/__init__.py, yum/misc.py, yum/packages.py: - fix up findDeps interface - it now takes a list of package objects
- - clean up a deprecation in deplistoutput - remove
- RpmBase._prcoTuple2Printable() since it was no longer needed and
- only introduced in this devel series.
-
-2006-09-06 Jeremy Katz <katzj at redhat.com>
-
- * cli.py: more obvious error message for group not existing
- (rh#204878)
-
-2006-09-06 Menno Smits <menno at freshfoo.com>
-
- * cli.py: remove a bunch of unused imports
-
-2006-09-06 Menno Smits <menno at freshfoo.com>
-
- * cli.py: use TYPE_INTERACTIVE instead of the deprecated
- TYPE_INTERFACE
-
-2006-09-06 Seth Vidal <skvidal at linux.duke.edu>
-
- * rpmUtils/miscutils.py: make epoch output quasi-consistent for
- comparisons
-
-2006-09-06 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/depsolve.py: add some debug output to depsolving
-
-2006-09-06 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: check in changelog
-
-2006-09-06 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum.spec, yum/__init__.py: mark as 2.9.6
-
-2006-09-06 Jeremy Katz <katzj at redhat.com>
-
- * cli.py: initialize "interface" plugins for the cli (patch from
- panu)
-
-2006-09-06 Jeremy Katz <katzj at redhat.com>
-
- * yum-updatesd.py: fix up logging
-
-2006-09-05 Panu Matilainen <pmatilai at laiskiainen.org>
-
- * yum/depsolve.py: - set transaction problem filters according to what's specified in
- tsInfo.problemFilter list
-
-2006-09-05 Panu Matilainen <pmatilai at laiskiainen.org>
-
- * yum/plugins.py: - dont traceback trying to call nonexistent log() method if plugin
- configuration not found
-
-2006-09-05 Jeremy Katz <katzj at redhat.com>
-
- * yum/packageSack.py: mo' bettah deprecation warnings
-
-2006-09-05 Jeremy Katz <katzj at redhat.com>
-
- * yum/__init__.py: fix deprecation warning
-
-2006-09-05 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: make output about key importing work
-
-2006-09-04 Menno Smits <menno at freshfoo.com>
-
- * cli.py, shell.py, yum-updatesd.py, yum/__init__.py,
- yum/depsolve.py: Clean up the attributes of YumBase so that they are
- always defined. They are None when not initialised and set if
- initialised. No more messing around with hasattr and deinitialising
- in now a matter of "self.foo = None".
-
-2006-09-03 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/yumRepo.py: set the default interrupt_callback to None for the
- folks operating in lazy-mode
-
-2006-09-03 Menno Smits <menno at freshfoo.com>
-
- * output.py, yum/repos.py, yum/yumRepo.py: Allow the interrupt
- callback to be set via the API. Push the command line Yum's own
- interrupt callback function out of the API code.
-
-2006-09-03 Menno Smits <menno at freshfoo.com>
-
- * cli.py, rpmUtils/transaction.py, yum/__init__.py, yum/rpmsack.py,
- yum/yumRepo.py: Fixes so that CTRL-C finally works properly: -
- rpmdb transactions are only kept open when strictly necessary so
- that SIGINT handler is left alone by rpm during downloads etc
- - added a simple interrupt_callback for package downloads. A single
- CTRL-C will push the download to the next mirror. Two quick
- CTRL-C's will terminate Yum. This needs cleaning up to not
- upset Yum API clients.
-
-2006-09-03 Menno Smits <menno at freshfoo.com>
-
- * yum/__init__.py: fix a return that should be a raise
-
-2006-09-03 Menno Smits <menno at freshfoo.com>
-
- * yum/misc.py: removed unnecessary import
-
-2006-09-03 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/rpmsack.py: make sure every package object returned from the
- rpmsack has an idx attribute
-
-2006-09-02 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/depsolve.py: that addErase is to the ts, not tsInfo so it
- needs a header or an header index - not a po.
-
-2006-09-02 Jeremy Katz <katzj at redhat.com>
-
- * yum/depsolve.py: fix for API change
-
-2006-09-02 Jeremy Katz <katzj at redhat.com>
-
- * yum/packages.py: add back getProvidesNames() as deprecated, spew a
- deprecation warning for prcoPrintable() as well
-
-2006-09-02 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py, yum/depsolve.py, yum/packages.py, yum/repos.py,
- yum/rpmsack.py, yum/sqlitesack.py, yum/yumRepo.py: - add a repository object to each package object. - fix a small bug
- in depsolving when the requires and the provides don't match up with
- 0-epoch use - add prco's_print properties to all package objects -
- make it so filelists are autoloaded, if possible, when querying
- filelists of YumAvailablePackageSqlite
-
-2006-09-02 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/depsolve.py, yum/packages.py, yum/sqlitesack.py: clean up some
- of the dealing with package objects setup: po.provides po.requires
- po.obsoletes po.conflicts po.provides_names po.requires_names
- po.obsoletes_names po.conflicts_names po.changelog po.filelist
- po.dirlist po.ghostlist po.checksums po.changelog all as
- properties. They call out when needed so we shouldn't need to setup
- anything to go get them.
-
-2006-09-02 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/packages.py, yum/sqlitesack.py: - properties do not behave like other subclassable items - which
- sucks - add filelists, dirlists and ghostlist property attributes to
- all package objects
-
-2006-09-01 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/depsolve.py, yum/rpmsack.py: added our rpmdb index
- into package objects from the rpmdb. po.idx gets rid of last
- returnIndexesByTuple()
-
-2006-09-01 Jeremy Katz <katzj at redhat.com>
-
- * yum/__init__.py: only initialize core plugins by default as
- discussed on yum-devel
-
-2006-08-31 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/sqlitesack.py: cleaning up the things we're suddenly not
- importing - this makes checksums work and maybe prcos
-
-2006-08-30 Jeremy Katz <katzj at redhat.com>
-
- * yum/__init__.py: fix logging setup to pass debug and error in the
- right order. fixes yum -d6 and other similar things
-
-2006-08-30 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/depsolve.py: make conflicts stop tracing back when it gets a
- pkgobj closes rhbug #204171
-
-2006-08-30 Menno Smits <menno at freshfoo.com>
-
- * yum/packageSack.py: Faster and more memory efficient
- implementation of matchPackageNames()
-
-2006-08-29 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py, yum/packages.py: make 'yum provides' stop
- backtracing on provides add providesnames property to package
- objects
-
-2006-08-29 Jack Neely <slack at quackmaster.net>
-
- * yum/packageSack.py: Found a few more returnPackageTuple() methods
- and replaced with po.pkgtup
-
-2006-08-29 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/packageSack.py, yum/sqlitesack.py: - typo in sqlitesack that made it all break - change out
- matchPackages for matchPackageNames() as that's what it is doing -
- convert to a generator for memory use - simplify what it does
-
-2006-08-29 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/sqlitesack.py: fix up YumAvailablePackageSqlite.returnSimple()
- - if you select %s and pass it in on the cursor.execute with sqlite
- you end up with a quoted string. So "select %s from foo",
- ('somevar') results in this: select 'somevar' from foo which
- means EVERY answer you get back will be 'somevar' and not the value
- in the row for that column. If anyone knows how to turn off that
- quoting per-variable in sqlite, let me know - the docs didn't have
- it. We also needed an simple-dict to db column-name map so querying
- for certain things would return the right information.
-
-2006-08-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/packageSack.py: note about how to make this a
- generator-capable interface
-
-2006-08-27 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/packageSack.py, yum/rpmsack.py, yum/sqlitesack.py: implement
- matchPackages() - the equivalent of packages.parsePackages() inside
- PackageSack.PackageSack remove repoid optional argument from
- simplePkgList as it was used nowhere. store results of
- anysack.simplePkgList() in anysack.pkglist and return from there if
- called multiple times.
-
-2006-08-25 Tambet Ingo <tambet at ximian.com>
-
- * cli.py: 2006-08-25 Tambet Ingo <tambet at ximian.com> * cli.py
- (YumBaseCli.installPkgs): Use objects instead of tuples,
- comparision works only with objects.
-
-2006-08-25 Jeremy Katz <katzj at redhat.com>
-
- * yum/sqlitesack.py: speed up sqlite querying a bit by only looking
- things up in the appropriate sqlitedb and also only getting what we
- want
-
-2006-08-25 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/packageSack.py, yum/packages.py: fix up some issues with
- overlapping methods
-
-2006-08-25 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/packages.py: clean up and compress some of the duplicate
- methods in the various package objects
-
-2006-08-25 Seth Vidal <skvidal at linux.duke.edu>
-
- * rpmUtils/miscutils.py: fix problem in flagToString not handling
- prereq and rpmsense requires correctly
-
-2006-08-25 Seth Vidal <skvidal at linux.duke.edu>
-
- * output.py, yum/__init__.py, yum/packages.py: get rid of
- packageobject.size() method - replaced with packageobject.size
- attribute/property
-
-2006-08-25 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/depsolve.py, yum/packageSack.py, yum/packages.py: depsolve.py:
- - get rid of the last call using nevra tuples packageSack.py: -
- kill nevra tuples and dumb print mechanisms packages.py: - remove
- unused methods
-
-2006-08-25 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/packageSack.py, yum/packages.py: - clean up a few uses of compareEVR - add requires, conflicts,
- provides, obsoletes properties to package objects - add a
- remote_path attribute to YumAvailablePackage objects for easier
- reference
-
-2006-08-24 Jeremy Katz <katzj at redhat.com>
-
- * yum/rpmsack.py: don't do this check at runtime. it fails if you
- have an empty rpmdb. and since we have no fallback, it doesn't help
- us much. we just need to Requires: a new enough version of
- rpm-python to support this
-
-2006-08-24 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/Errors.py, yum/repos.py: added Chris Lumens patch for
- duplicate-repo detection error generation.
-
-2006-08-23 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum-updatesd.py, yum/__init__.py, yum/depsolve.py,
- yum/packages.py: s/packagesByTuple/searchPkgTuple/ - Thanks to Tim
- Lauridsen
-
-2006-08-22 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/packages.py: condense down the rich comparison methods
-
-2006-08-22 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/packageSack.py, yum/rpmsack.py: move the searchPO,
- searchPkgTuples up into PackageSackBase
-
-2006-08-22 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/depsolve.py, yum/misc.py: cleaned up some other uses of
- compareEVR()
-
-2006-08-22 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: actually remove one entry I left in
-
-2006-08-22 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: clean up a few uses of compareEVR()
-
-2006-08-22 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/packageSack.py, yum/packages.py: rich comparison methods for
- package objects
-
-2006-08-22 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/packageSack.py, yum/rpmsack.py: all sacks should now have:
- searchNevra searchPO searchPkgTuples it should return a list of
- package objects in every case
-
-2006-08-22 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/logger.py: remove logger as nothing is using it
-
-2006-08-22 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: changelog
-
-2006-08-22 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/rpmsack.py: make RPMDBPackageSack must inherit from
- PackageSackBase to use the iterator method
-
-2006-08-22 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: changelog update
-
-2006-08-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum.spec, yum/__init__.py: 2.9.5
-
-2006-08-21 Jeremy Katz <katzj at redhat.com>
-
- * yum/packageSack.py, yum/rpmsack.py: just define __iter__ once in
- the parent packageSack class and use the inheritance. also, only
- call returnPackages() once on __iter__
-
-2006-08-21 Jeremy Katz <katzj at redhat.com>
-
- * yum/rpmsack.py: remove no longer used compat code
-
-2006-08-21 Jeremy Katz <katzj at redhat.com>
-
- * yum/rpmsack.py: make the warnings give the useful stackframe
-
-2006-08-21 Jeremy Katz <katzj at redhat.com>
-
- * yum/depsolve.py: fix a traceback due to the API changes
-
-2006-08-20 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/depsolve.py: minor change
-
-2006-08-20 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py, yum/depsolve.py, yum/rpmsack.py: more deprecation
- warnings added more deprecation warnings fixed
-
-2006-08-20 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/depsolve.py: still more cleanups for deprecation warnings
-
-2006-08-20 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: unnecessary code removal
-
-2006-08-20 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py, yum/depsolve.py: a few more fixes
- getInstalledPackageObject should probably be deprecated, too
-
-2006-08-20 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum-updatesd.py, yum/__init__.py, yum/depsolve.py,
- yum/rpmsack.py: checking in lots of minor changes to get rid of
- deprecation warnings add 'po' keyword to rpmsack.searchNevra so a
- package object can be passed in instead of just nevras. Maybe should
- be a new method to just take the package object or a more generic
- search method.
-
-2006-08-19 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/rpmsack.py: helps to have the iterator
-
-2006-08-19 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/__init__.py, yum/rpmsack.py: purge out getHdrList()
-
-2006-08-19 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py, yum/rpmsack.py, yum/yumRepo.py: fixup a couple of
- problems
-
-2006-08-19 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/rpmsack.py: emit deprecation warnings for annoying functions
- in rpmsack/rpmdbholder
-
-2006-08-19 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/constants.py, yummain.py: make YUM_PID_FILE a constant
-
-2006-08-19 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/yumRepo.py: fix for metadata_cookie not expiring when people
- have broken clocks and don't know how to use ntp :)
-
-2006-08-19 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/yumRepo.py: fix for rh bug: 200693
-
-2006-08-19 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: include nicolas mailhot's patch for -x == --exclude
-
-2006-08-19 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: added chris lumens patch to fix pattern install()
- operations
-
-2006-08-19 Seth Vidal <skvidal at linux.duke.edu>
-
- * rpmUtils/__init__.py: clean out all of old rpmdb code
-
-2006-08-19 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/packages.py, yum/rpmsack.py: make rpmsack the default rpmdb
- interface minor cleanups
-
-2006-08-19 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: - make rpmsack the default rpmdb interface - some minor pychecker
- cleanups
-
-2006-08-17 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/rpmsack.py: - fix up rpmsack to be able to be have more like RpmDBHolder. - make
- rpmsack.whatProvides() mostly work. a little more and we should be
- able to swap out then start cleaning up.
-
-2006-08-09 Luke Macken <lmacken at redhat.com>
-
- * ChangeLog, yum-updatesd.py, yum/update_md.py: 2006-08-09 10:40
- lmacken * yum/update_md.py: Rewrite to handle new metadata
- schema. Allow scripted metadata access. Accept YumRepository
- objects in add(). Cache notices for quick searching *
- yum-updatesd.py: Remove (most of) the old metadata retrieval
- code. Try and grab the update 'type' from the metadata so we
- can check if we are dealing with any security updates.
-
-2006-08-09 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: changelog check in
-
-2006-08-09 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum.spec, yum/__init__.py: mark as 2.9.4
-
-2006-08-09 Jeremy Katz <katzj at redhat.com>
-
- * yum/__init__.py: Jeremy broke gpg key checking in yum 2.9x*.
- Attached is a patch to fix it, as well as clean up exceptions (from
- yum.Error* to Error*). The problem was just a matter of indentation.
- (patch + commentary from jbowes :)
-
-2006-08-08 Jeremy Katz <katzj at redhat.com>
-
- * yum/__init__.py: There was still a call to self.log in
- yum/__init__.py. This patch fixes it. (jbowes)
-
-2006-08-08 Jeremy Katz <katzj at redhat.com>
-
- * cli.py, yum/__init__.py, yum/logginglevels.py: set up logging by
- default, ensure we have basic logging initialized before plugins
- (jbowes at redhat.com)
-
-2006-08-02 Jeremy Katz <katzj at redhat.com>
-
- * yum/__init__.py: namespace error (rh#200901)
-
-2006-07-31 Jeremy Katz <katzj at redhat.com>
-
- * yum/__init__.py: ensure that we do the arch reduction on
- yum.install(pattern=) also (rh#200346)
-
-2006-07-25 Jeremy Katz <katzj at redhat.com>
-
- * yum/__init__.py: only clean the installed headers/packages as
- opposed to all (rh#189483 and others)
-
-2006-07-20 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/logginglevels.py: checking in patch to bug 199558 from jbowes.
-
-
-2006-07-12 Jeremy Katz <katzj at redhat.com>
-
- * yum/__init__.py: if we already have the lock file, trying to get
- it again is fine
-
-2006-07-12 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/depsolve.py: fix missing variable as pointed out by Chris
- Lumens
-
-2006-07-12 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: update changelog
-
-2006-07-12 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/yumRepo.py: fix http headers __headersListFromDict so that it
- will actually run
-
-2006-07-12 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: Changelog update
-
-2006-07-12 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum.spec: fix up spec for yum-updatesd and cron job removal
-
-2006-07-12 Seth Vidal <skvidal at linux.duke.edu>
-
- * etc/Makefile, etc/yum-updatesd-dbus.conf, etc/yum-updatesd.conf:
- fix up makefile make yum-updatesd.conf be the actual conf file move
- old yum-updatesd.conf to yum-updatesd-dbus.conf
-
-2006-07-12 Seth Vidal <skvidal at linux.duke.edu>
-
- * Makefile: fix archive make
-
-2006-07-12 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum.spec, yum/__init__.py: bump version - 2.9.3
-
-2006-07-11 Paul Nasrat <pnasrat at redhat.com>
-
- * cli.py: Enable logging to work correctly for config breakages
-
-2006-07-10 Seth Vidal <skvidal at linux.duke.edu>
-
- * callback.py, cli.py, yum/logginglevels.py: checking in changes
- from jbowes for rh bug 197872: fixes file log output
-
-2006-07-10 Jeremy Katz <katzj at redhat.com>
-
- * yum/yumRepo.py: From James Bowes <jbowes at redhat.com> Attached is a
- patch that adds an http_headers field to YumRepository objects.
- http_headers is a dict (for easy manipulation) that is converted to
- a tuple of 2-tuples before it is passed down into urlgrabber.
-
-2006-07-10 Paul Nasrat <pnasrat at redhat.com>
-
- * yum/sqlitecache.py: Move to dbversion 9 - add pre for requires
-
-2006-07-05 Seth Vidal <skvidal at linux.duke.edu>
-
- * output.py: fix for
- https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=197720
-
-2006-07-05 Jack Neely <slack at quackmaster.net>
-
- * yum/packages.py: Make seth's eyes not bleed and replace the list
- comps. Oh the temptation to use map() was strong.
-
-2006-07-05 Jack Neely <slack at quackmaster.net>
-
- * rpmUtils/miscutils.py, yum/packages.py: Populate the PRCO
- information for YumHeaderPackage and subclasses. This makes
- examining installed packages a little saner.
-
-2006-07-05 Jeremy Katz <katzj at redhat.com>
-
- * cli.py: fixup debug level (rh#197607)
-
-2006-07-05 Jeremy Katz <katzj at redhat.com>
-
- * cli.py: fix-up for api skew (rh#197603)
-
-2006-07-05 Menno Smits <menno at freshfoo.com>
-
- * yum/__init__.py: fixed ParsingError reference
-
-2006-07-05 Menno Smits <menno at freshfoo.com>
-
- * yum/parser.py: removed debugging output and fixed line wrapping
-
-2006-07-05 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/rpmsack.py: minor string change
-
-2006-07-01 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/repos.py: remove unused modules
-
-2006-06-28 Jeremy Katz <katzj at redhat.com>
-
- * yum/depsolve.py: fix tyop (jbowes)
-
-2006-06-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * rpmUtils/__init__.py: make the code, you know, work. remove old
- cruft
-
-2006-06-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/rpmsack.py: make the code, you know, work.
-
-2006-06-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/rpmsack.py: make it a bit more packagesack-y and track some
- data we don't need to re-opening the rpmdb for.
-
-2006-06-27 Jeremy Katz <katzj at redhat.com>
-
- * yum.spec: i can do shell... relaly...
-
-2006-06-27 Jeremy Katz <katzj at redhat.com>
-
- * yum.spec: Strongly couple version
-
-2006-06-27 Jeremy Katz <katzj at redhat.com>
-
- * yum.spec: add yum-updatesd subpackage
-
-2006-06-27 Jeremy Katz <katzj at redhat.com>
-
- * docs/Makefile, etc/Makefile, etc/yum-daily.yum, etc/yum.cron,
- etc/yum.cron.weekly, etc/yum.init: * install yum-updatesd man pages and initscript * don't install yum
- cron job stuff anymore (yum-updatesd can do all of this)
-
-2006-06-27 Jeremy Katz <katzj at redhat.com>
-
- * Makefile, bin/yum-updatesd.py: * install yum-updatesd wrapper binary in /usr/sbin * rename
- /usr/share/yum-cli/yum-updatesd.py to something that can be
- imported
-
-2006-06-27 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: merge changelog, again
-
-2006-06-27 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/packages.py: undue stupid things
-
-2006-06-27 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: merge changelog
-
-2006-06-27 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum.spec: mark as 2.9.2 in spec
-
-2006-06-27 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: label as 2.9.2
-
-2006-06-27 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/rpmsack.py: remove odd methods
-
-2006-06-27 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/packages.py: minor addendum
-
-2006-06-26 Jeremy Katz <katzj at redhat.com>
-
- * docs/yum-updatesd.8, docs/yum-updatesd.conf.5: add docs for
- yum-updatesd
-
-2006-06-26 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/rpmsack.py: check in tambet's rpmsack.py modify mi2list to
- return YumInstalledPackage objects instead of tuples rename main
- class to RPMDBPackageSack to hopefully decrease confusion
-
-2006-06-26 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/packageSack.py: a few changes to make it a little more like
- things in rpmsack.py
-
-2006-06-23 Jeremy Katz <katzj at redhat.com>
-
- * callback.py, cli.py, output.py, shell.py, yum/__init__.py,
- yum/depsolve.py, yum/logginglevels.py, yum/plugins.py,
- yum/sqlitecache.py, yummain.py: From James Bowes <jbowes at redhat.com>
- and modified by me to bring it up to current HEAD Move yum from
- using a custom logging implementation to python's logging module.
- Full details about the changes at
-
- https://lists.dulug.duke.edu/pipermail/yum-devel/2006-May/002235.html
-
-2006-06-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum.spec: remove libxml2 dep
-
-2006-06-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/mdcache.py: removed mdcache.py
-
-2006-06-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, docs/yum.8, output.py, yum/__init__.py, yum/repos.py,
- yum/storagefactory.py, yum/yumRepo.py: all pickle references and
- mdcache references removed, I think. :)
-
-2006-06-21 Jeremy Katz <katzj at redhat.com>
-
- * yum-updatesd.py: fix for api change
-
-2006-06-19 Paul Nasrat <pnasrat at redhat.com>
-
- * yum/sqlitesack.py: Nuke a pychecker warning for shadowing dir
-
-2006-06-19 Paul Nasrat <pnasrat at redhat.com>
-
- * yum/sqlitesack.py: fix resolvedeps
-
-2006-06-19 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: merge changelog
-
-2006-06-19 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum.spec: spec file version bump - 2.9.1
-
-2006-06-19 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: mark as 2.9.1 - forward port patch from 2.6 for
- installing obsoletes
-
-2006-06-19 Seth Vidal <skvidal at linux.duke.edu>
-
- * rpmUtils/updates.py: forward port obsolete install patch from
- 2.6.X
-
-2006-06-19 Jeremy Katz <katzj at redhat.com>
-
- * yum-updatesd.py: * ensure path for cli.py is present * if there's an exception at any
- point in getting update info, be sure we release the lock
- (rh#195797)
-
-2006-06-16 Menno Smits <menno at freshfoo.com>
-
- * yum/plugins.py: updated TODO entries
-
-2006-06-16 Menno Smits <menno at freshfoo.com>
-
- * docs/yum.conf.5: Document the pluginconfpath option.
-
-2006-06-16 Menno Smits <menno at freshfoo.com>
-
- * yum/__init__.py: Run the "init" plugin slot a little later so that
- the conf object and repository configuration is available when
- "init" is reached.
-
-2006-06-16 Menno Smits <menno at freshfoo.com>
-
- * yum/plugins.py: Fixed "inhert" typo.
-
-2006-06-15 Menno Smits <menno at freshfoo.com>
-
- * cli.py, yum/__init__.py, yum/config.py, yum/plugins.py: Clean up
- recent changes to config setup API: - removed doStartupConfig() -
- doConfigSetup() now sets up plugins and logging at the right time
- via external (overridable) methods - don't keep startupconf
- hanging around in base object (removed all references)
-
-2006-06-14 Paul Nasrat <pnasrat at redhat.com>
-
- * yum/packageSack.py: Fix composite for individual sack exception
- handling
-
-2006-06-14 Paul Nasrat <pnasrat at redhat.com>
-
- * cli.py: fix for prompting in interactive mode
-
-2006-06-14 Paul Nasrat <pnasrat at redhat.com>
-
- * yum/__init__.py: Fix import for key grab
-
-2006-06-14 Jeremy Katz <katzj at redhat.com>
-
- * etc/yum-updatesd.init: add init script
-
-2006-06-13 Luke Macken <lmacken at redhat.com>
-
- * yum-updatesd.py, yum/update_md.py: Add support for reading
- 'updateinfo' metadata from repos, if it exists, and sending it
- through dbus to the puplet. For testing purposes, arbitrary
- metadata may be inserted into repository using the following tool:
- http://people.redhat.com/lmacken/insertmd.py
-
-2006-06-13 Jeremy Katz <katzj at redhat.com>
-
- * yum/misc.py: fix syntax error
-
-2006-06-13 Jeremy Katz <katzj at redhat.com>
-
- * yum/sqlitesack.py: uniqify the file list. this avoids the fact
- that with the C-parser and the filesystem package, the list of files
- ends up with / at the end and so we end up with double entries.
- since we can't have duplicate filenames in a directory anyway,
- unique fixes
-
-2006-06-13 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/packageSack.py: make global excludes work again -
- packgeSack.MetaSack.delPackage needs to be able to delete the pkg
- object asked for in each/every sack or global excludes fail to do
- anything jeremy told me I had to mention that this is all jbowes'
- fault when I fixed it. :)
-
-2006-06-13 Luke Macken <lmacken at redhat.com>
-
- * yum/repoMDObject.py: fix unexpanded error message
-
-2006-06-13 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/yumRepo.py: fix for bug 615 - dont crash when out of mirrors
- to try
-
-2006-06-12 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: check in changelog
-
-2006-06-12 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum.spec: remove yum-arch
-
-2006-06-09 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/repoMDObject.py: apply lewk's patch to fix jeremy's
- lambda (iiiiiiiiiick) make corrupt repomd.xml's do the right thing
- in the new celementree repomd.xml parser
-
-2006-06-07 Jeremy Katz <katzj at redhat.com>
-
- * cli.py: and actually save with the comment explaining this...
-
-2006-06-07 Jeremy Katz <katzj at redhat.com>
-
- * yum-updatesd.py: lots of work to get this to do more of what's
- needed for puplet. high-level summary: * add support for automatic
- downloading of updates when available * add support for automatic
- installation of updates when available * make emitters more object-y
- so that we can emit more types of signals more easily. dbus is
- probably the most fleshed out right now * threads for
- updates/downloading so that we can continue to interact with the
- daemon while these occur * little bit more command-line fun for
- ease-of-debugging
-
-2006-06-07 Jeremy Katz <katzj at redhat.com>
-
- * cli.py: use generic getKeyForPackage
-
-2006-06-07 Jeremy Katz <katzj at redhat.com>
-
- * yum/__init__.py: move gpg key fetching code into core library; use
- a callback function so that we can determine whether or not to
- import if user interaction is needed cleanly between, eg, yum tui
- and pirut
-
-2006-06-06 Jeremy Katz <katzj at redhat.com>
-
- * yum/yumRepo.py: fix getting group data
-
-2006-06-06 Jeremy Katz <katzj at redhat.com>
-
- * docs/Makefile: likewise
-
-2006-06-06 Jeremy Katz <katzj at redhat.com>
-
- * Makefile: no more yum-arch
-
-2006-06-04 Menno Smits <menno at freshfoo.com>
-
- * yum/plugins.py: Fixed missing comma
-
-2006-06-04 Menno Smits <menno at freshfoo.com>
-
- * cli.py, yum/__init__.py, yum/config.py, yum/plugins.py: Allow
- plugins to add and manipulate Yum's configuration file options in
- the same way as they are defined in Yum. This means that plugin
- option defines are far more flexible and powerful than before. The
- old API (registerOpt) still exists but is deprecated (with a saner
- implementation). I will update the wiki with info on how plugins can
- now define their own options. This cleans up a lot of plugin
- related code but changes the Yum API slightly wrt to initialisation.
- Documentation about this to come on yum-devel. This commit also
- includes Misa's (misa+yum at redhat.com) patch to add a config option
- for specifying the directories to look in for plugin configuration
- files.
-
-2006-05-30 Tambet Ingo <tambet at ximian.com>
-
- * yum/__init__.py, yum/packages.py, yum/storagefactory.py,
- yum/yumRepo.py: 2006-05-30 Tambet Ingo <tambet at ximian.com> *
- yum/storagefactory.py: Implement. The yumRepo class got a little
- crowded with all of these "try to import _sqlitecache, sqlite,
- etc...". * yum/yumRepo.py (YumPackageSack.populate): Use
- repo.storage to get cache handler. (YumRepository.__init__): Use
- storagefactory to get package sack. * yum/packages.py
- (RpmBase.inPrcoRange): Fix the leftover mdUtils.compareEVR usage.
- * yum/__init__.py (YumBase.__init__): Log the used storage name.
-
-2006-05-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum-updatesd.py: add some todo's at the top
-
-2006-05-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * Makefile, yum.spec: remove repomd from spec and Makefiles
-
-2006-05-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/Errors.py, yum/__init__.py, yum/depsolve.py, yum/misc.py,
- yum/packageSack.py, yum/packages.py, yum/repoMDObject.py,
- yum/repos.py, yum/sqlitesack.py, yum/yumRepo.py: - move files from repomd into yum - modify lots of things to make
- this work
-
-2006-05-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * repomd/Makefile, repomd/__init__.py, repomd/mdErrors.py,
- repomd/mdUtils.py, repomd/packageObject.py, repomd/packageSack.py,
- repomd/repoMDObject.py: getting rid of repomd
-
-2006-05-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * repomd/test.py: remove not-so-useful test.py
-
-2006-05-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * repomd/packageSack.py: remove XMLPackageSack class b/c: 1. it
- removes our libxml2 dep 2. nothing uses this class b/c it is slow
-
-2006-05-25 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/depsolve.py, yum/sqlitesack.py: collection of changes to speed
- up whatProvides() using the sqlite db's
-
-2006-05-25 Seth Vidal <skvidal at linux.duke.edu>
-
- * repomd/repoMDObject.py: - make the checksum storage more obvious - there's no need for them
- to be a list, there's no way to have more than one checksum for any
- specific data in repomd.xml
-
-2006-05-25 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/yumRepo.py: - fix up a couple of places where the new routines were not used
-
-2006-05-24 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/yumRepo.py: - rename _retrieveMD to retrieveMD() - rename _checkMD to checkMD()
- - clean up both functions
-
-2006-05-24 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: fix minor call into repos
-
-2006-05-24 Seth Vidal <skvidal at linux.duke.edu>
-
- * repomd/repoMDObject.py: - make arbitrary metadata retrieval more trivial - renames methods
- from _retrieveMD to retrieveMD - and _checkMD to checkMD
- - simplify both functions fix for base and href
-
-2006-05-24 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/repos.py: remove some unused imports
-
-2006-05-24 Seth Vidal <skvidal at linux.duke.edu>
-
- * repomd/repoMDObject.py: - make repomd.xml parsing use celementTree - vastly simplify adding
- data types - need to clean up yumRepo.py and friends for this change
-
-
-2006-05-24 Paul Nasrat <pnasrat at redhat.com>
-
- * yum/repos.py, yum/yumRepo.py: Enable failure_callbacks on mirror
- objects
-
-2006-05-24 Jeremy Katz <katzj at redhat.com>
-
- * yum/__init__.py: keeping around older Extras packages, we can end
- up with some pretty pathological multilib cases around noarch
- packages. Having both x86_64 and noarch of the same package
- installed is non-sensical. But we want to allow switching from
- native -> noarch and back. So, let's take into account that noarch
- is a third case beyond base arch and compat arch. With that, we get
- to where there are four basic cases of newest packages 1) No noarch
- packages. This ends up with what we have today where you install
- the base arch and the compat arch if available 2) Only noarch
- packages. This also ends up like present 3) Noarch package that's
- newer than the basearch package. This means that we want the noarch
- package and not the basearch or compat-arch 4) Noarch package that's
- older than the basearch package. This means we want the basearch
- and compat-arch if it exists rh #189998
-
-2006-05-19 Jeremy Katz <katzj at redhat.com>
-
- * yum-updatesd.py: okay, every 10 seconds is a little bit often...
- :-)
-
-2006-05-19 Jeremy Katz <katzj at redhat.com>
-
- * etc/yum-updatesd.conf, yum-updatesd.py: a variety of things as I
- start to hook up proto-puplet * some consistency fixes to make
- service names all edu.duke.linux.yum, object paths differ between
- the signaller and the listener but that makes sense * add a
- --no-fork mode so that you can use ctrl-c and hack on this more
- easily * add a ShutDown method (disabled by default) since I was
- getting hit by the sigint catcher a few times * add a
- GetUpdatesInfo method to return the information on the available
- updates. this should probably be changed to return the information
- in an async fashion, but I'll get there
-
-2006-05-11 Menno Smits <menno at freshfoo.com>
-
- * yum/plugins.py: Committed Michael Chapman's patch for bug #596.
- Plugin defined repository options weren't being read from the
- repository config but from the main config instead.
-
-2006-05-10 Seth Vidal <skvidal at linux.duke.edu>
-
- * callback.py: check in Erich Focht <efocht at hpce.nec.com>'s
- callback patch for non-tty progress
-
-2006-05-09 Jeremy Katz <katzj at redhat.com>
-
- * yum/sqlitesack.py: From James Bowes (jbowes AT redhat DOT com)
- The attached patch fixes sqllitesack's two methods,
- returnNewestByNameArch and returnNewestByName, which were looking
- for their super class in the wrong module.
-
-2006-05-09 Menno Smits <menno at freshfoo.com>
-
- * cli.py, yum/plugins.py: Commited Luke's "clean" plugin hook patch.
-
-
-2006-05-09 Menno Smits <menno at freshfoo.com>
-
- * yum/plugins.py: repo.set now seems to be repo.setAttribute
-
-2006-05-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum-updatesd.py: and mean it this time!
-
-2006-05-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum-updatesd.py: fix email notifications
-
-2006-05-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: merge up fix for 191013 from 2.6 branch
-
-2006-05-07 Seth Vidal <skvidal at linux.duke.edu>
-
- * etc/yum-updatesd.conf: allow for the listener, too
-
-2006-05-07 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum-updatesd.py: updatesd changes: - works as a daemon and uses a
- gobject mainloop dtrt - exports a dbus system bus method to allow
- for triggering to check for updates - uses name =
- edu.duke.linux.yum.Updatesd, object=/Updatesd, with the method
- "CheckNow" - emits a dbus system bus signal if updates are
- available: membername is UpdatesAvailableSignal - the string tells
- how many are available. - emits a dbus system bus signal if updates
- are NOT available membername is: NoUpdatesAvailableSignal
-
-2006-05-07 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum-updatesd.py: checking in latest set of changes before I start
- redoing it
-
-2006-05-05 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum-updatesd.py: syslog support enabled
-
-2006-05-05 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum-updatesd.py: first version with working dbus
-
-2006-05-05 Seth Vidal <skvidal at linux.duke.edu>
-
- * etc/yum-updatesd.conf: dbus config file needed to talk to the
- system message bus
-
-2006-05-04 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum-updatesd.py: adding yum-updatesd.py to yum cvs HEAD.
-
-2006-04-26 Jeremy Katz <katzj at redhat.com>
-
- * docs/yum.8: add some more clean options (#575)
-
-2006-04-20 Jeremy Katz <katzj at redhat.com>
-
- * cli.py: handle --exclude used with a localinstall or localupdate
- (rh#178741)
-
-2006-04-19 Paul Nasrat <pnasrat at redhat.com>
-
- * yum/sqlitesack.py, yum/yumRepo.py: importFromDict signature fixup
-
-
-2006-04-19 Paul Nasrat <pnasrat at redhat.com>
-
- * yum/__init__.py: Consult repo sack not master
-
-2006-04-19 Paul Nasrat <pnasrat at redhat.com>
-
- * yum/sqlitesack.py, yum/yumRepo.py: Fix some issues with new
- sack/repo setup
-
-2006-04-19 Jeremy Katz <katzj at redhat.com>
-
- * yum/yumRepo.py: ensure consistent access of proxy information so
- that it's always set up even if you're not setting up all the repo
- callbacks (rh#185309) also, use the proxies for grabbing the mirror
- list (rh#161190)
-
-2006-04-12 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/yumRepo.py: forgot to cvs add this file - thanks to jbowes for
- the reminder
-
-2006-04-11 Seth Vidal <skvidal at linux.duke.edu>
-
- * callback.py, yum/__init__.py, yum/config.py, yum/sqlitesack.py:
- merge in jbowes patches for his previous patches - 4/4 had to modify
- the patch due to first hunk not actually having a change in it.
-
-2006-04-11 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/packages.py: merge in jbowes packages patch - 3/4
-
-2006-04-11 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/repos.py: merge in jbowes repository patch - 2/4
-
-2006-04-11 Seth Vidal <skvidal at linux.duke.edu>
-
- * repomd/packageSack.py: merge in Jbowes at redhat's first patch
-
-2006-03-29 Seth Vidal <skvidal at linux.duke.edu>
-
- * output.py: list epoch if it exists in yum info - bug 576
-
-2006-03-26 Menno Smits <menno at freshfoo.com>
-
- * yum/config.py: - Defaults are now copied at BaseConfig instantation time so that
- they can be safely changed at runtime in multithreaded situations
- - It is now ok to read and write from/to options before populate()
- has been called. This avoids the AttributeError that occurred
- previously. Related mailing list thread:
-
- https://lists.dulug.duke.edu/pipermail/yum-devel/2006-March/002024.html
-
-2006-03-22 Jeremy Katz <katzj at redhat.com>
-
- * yum/__init__.py: don't traceback if conditionals have non-existent
- packages (rh#185946)
-
-2006-03-14 Seth Vidal <skvidal at linux.duke.edu>
-
- * shell.py: patch to enable sorting of repos in the repo list in the
- shell - bug #568 from Noah Friedman
-
-2006-03-12 Menno Smits <menno at freshfoo.com>
-
- * yum/plugins.py: Introduced TYPE_INTERACTIVE as a better name for
- TYPE_INTERFACE. Warn when TYPE_INTERFACE is used. These warnings and
- the TYPE_INTERFACE constant itself will go away before Yum 3.0.0.
-
-2006-03-12 Menno Smits <menno at freshfoo.com>
-
- * PLUGINS: No longer required in CVS. The master copy is the wiki.
-
-2006-03-12 Menno Smits <menno at freshfoo.com>
-
- * Makefile: Have the archive and daily targets pull down PLUGINS and
- FAQ from the wiki. Merged the implementation of the archive and
- daily targets.
-
-2006-03-07 Seth Vidal <skvidal at linux.duke.edu>
-
- * docs/yum-arch.8: remove yum-arch man page
-
-2006-03-07 Seth Vidal <skvidal at linux.duke.edu>
-
- * bin/yum-arch, pullheaders.py, serverStuff.py: removed all the bits
- for yum-arch. This might show back up in yum-utils but it's gone
- from yum as it no longer has anything to do with yum.
-
-2006-03-07 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum.spec, yum/__init__.py: mark for new dev cycle
-
-2006-03-07 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: changelog check in
-
-2006-03-07 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum.spec: remove silly versioned req
-
-2006-03-07 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum.spec, yum/__init__.py: 2.6.0 in spec and init scripts
-
-2006-03-06 Paul Nasrat <pnasrat at redhat.com>
-
- * yum/__init__.py: Return error list
-
-2006-03-04 Jeremy Katz <katzj at redhat.com>
-
- * docs/yum.conf.5, etc/yum.conf, yum/__init__.py, yum/config.py: new
- option 'keepcache' to allow the cache of packages and headers to be
- automatically purged after successful package installation. the
- default behavior remains to keep things (as previously)
-
-2006-03-03 Jeremy Katz <katzj at redhat.com>
-
- * yum/transactioninfo.py: we also need to invalidate the sort on
- txmbr add/remove and then _sorted can be used as the overall key of
- if we need to do the sort
-
-2006-03-03 Paul Nasrat <pnasrat at redhat.com>
-
- * yum/__init__.py: Add install(pattern=) support
-
-2006-03-03 Jeremy Katz <katzj at redhat.com>
-
- * yum/__init__.py, yum/depsolve.py: handle deps changing as a result
- of a plugin run and re-run depsolve
-
-2006-03-03 Jeremy Katz <katzj at redhat.com>
-
- * yum/transactioninfo.py: move changed info into main
- TransactionData class
-
-2006-03-02 Paul Nasrat <pnasrat at redhat.com>
-
- * yum/__init__.py: Cover case if package selected, then group
-
-2006-03-02 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/pgpmsg.py: reverse the sort order of the displayed user id
- from gpg keys. This is more likely to get us the most recent and
- hopefully most correct user id.
-
-2006-03-02 Paul Nasrat <pnasrat at redhat.com>
-
- * yum/__init__.py, yum/transactioninfo.py: Add conditional group
- support
-
-2006-03-01 Paul Nasrat <pnasrat at redhat.com>
-
- * docs/yum.conf.5, yum/config.py: Add option for conditional groups
-
-
-2006-02-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py, yum/sqlitesack.py: fix for yum provides
- foocommand not working this, ultimately, means that yum provides
- *foocommand* will be VERY SLOW for dumb reasons. there needs to be
- a better solution than this but at least this solution is
- functionally correct, albeit slow
-
-2006-02-28 Jeremy Katz <katzj at redhat.com>
-
- * yum/depsolve.py: fix error message for conflicts (rh#168687)
-
-2006-02-24 Seth Vidal <skvidal at linux.duke.edu>
-
- * docs/yum.8: a few doc clarifications for bugs 562 and 563
-
-2006-02-23 Paul Nasrat <pnasrat at redhat.com>
-
- * output.py: List conditionals in cli/shell
-
-2006-02-22 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: update changelog for 2.5.3 *sigh*
-
-2006-02-22 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum.spec, yum/__init__.py: mark as 2.5.3
-
-2006-02-22 Jeremy Katz <katzj at redhat.com>
-
- * yum/__init__.py: make it a debug message instead
-
-2006-02-22 Jeremy Katz <katzj at redhat.com>
-
- * yum/__init__.py: pass the right number of args for a log method
-
-2006-02-22 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: update the changelog
-
-2006-02-22 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, shell.py: a few more last minute changes to the shell and
- cli way of figuring out if a command is valid
-
-2006-02-22 Seth Vidal <skvidal at linux.duke.edu>
-
- * shell.py: fix minor bug in shell help
-
-2006-02-22 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: Changelog update
-
-2006-02-22 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum.spec, yum/__init__.py: mark as 2.5.2
-
-2006-02-22 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/__init__.py: - remove useless log output - make 'yum search' use
- searchGenerator()
-
-2006-02-22 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: first stab at making the search function a
- generator. In order to maintain API I made a searchGenerator()
- method which is used by searchPackages to get the same result.
- searchGenerator should be much lighter on memory for big searches
- and give you more immediate results. Additionally, you don't need
- the search callback as results are yielded immediately upon finding
- them. need to port searchPackageProvides() to use a generator as
- well.
-
-2006-02-11 Menno Smits <menno at freshfoo.com>
-
- * yum/config.py: Fix for bug #552.
-
-2006-02-10 Paul Nasrat <pnasrat at redhat.com>
-
- * yum/comps.py: Handle conditional req types in comps
-
-2006-02-10 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/config.py: fix for rh bug #179512 make yum error out
- appropriately if config file does not exist
-
-2006-02-10 Seth Vidal <skvidal at linux.duke.edu>
-
- * rpmUtils/transaction.py: add David Lutterkort's patch to fix
- returnLeafNodes to include packages that are required only by
- themselves.
-
-2006-02-10 Seth Vidal <skvidal at linux.duke.edu>
-
- * docs/yum.conf.5: added patch to conf man page to mention basic
- auth from within the baseurl Thanks to Sean Reifschneider <jafo at
- tummmy.com>
-
-2006-02-06 Paul Nasrat <pnasrat at redhat.com>
-
- * yum/parser.py: Actually return default dict
-
-2006-02-05 Menno Smits <menno at freshfoo.com>
-
- * yum/plugins.py: Applied Paul Nasrat's patch to make plugins group
- aware with some changes. Since group information is only available
- after repos have been set up, RepoSetupPluginConduit has been split
- into PreRepoSetupPluginConduit and PostRepoSetupPluginConduit with
- getGroups() available in the latter.
-
-2006-02-01 Paul Nasrat <pnasrat at redhat.com>
-
- * yum/__init__.py, yum/transactioninfo.py: Record information about
- removed groups
-
-2006-01-31 Paul Nasrat <pnasrat at redhat.com>
-
- * yum/__init__.py: Add method to allow easy use of TransactionData
- subclasses
-
-2006-01-31 Paul Nasrat <pnasrat at redhat.com>
-
- * yum/transactioninfo.py: Add sortable transaction class
-
-2006-01-31 Paul Nasrat <pnasrat at redhat.com>
-
- * yum/constants.py: Add constants for transaction sorting
-
-2006-01-27 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: make repo processing less 'ugly' as described by
- menno
-
-2006-01-26 Paul Nasrat <pnasrat at redhat.com>
-
- * yum/transactioninfo.py: Record installed groups in tsInfo lists
-
-2006-01-26 Paul Nasrat <pnasrat at redhat.com>
-
- * yum/__init__.py: Fix group removal traceback
-
-2006-01-26 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: make the repoSetup progress callback not
- overwrite each other.
-
-2006-01-26 Menno Smits <menno at freshfoo.com>
-
- * yum/config.py: - fixed bug that caused option inheritance via class inheritance not
- to work (installroot and distroverpkg no longer need to be
- defined twice) - lots of documentation - handle repo sections that
- don't have a name set (warn and use id instead) - warn when
- getConfigOption and setConfigOption are used
-
-2006-01-17 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: make note about bug 550 and to make yum check if
- there is space available in the cache dir before downloading
- packages.
-
-2006-01-16 Jack Neely <slack at quackmaster.net>
-
- * yum/depsolve.py: This removes the previous support for
- kernel-modules. This code no longer conforms to the fedora
- standards and kernel module code will live in a yum plugin instead.
-
-
-2006-01-15 Seth Vidal <skvidal at linux.duke.edu>
-
- * shell.py: fix traceback when printing help
-
-2006-01-15 Paul Nasrat <pnasrat at redhat.com>
-
- * yum/__init__.py: Fix traceback
- https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=177737
-
-2006-01-13 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/config.py: fix up the ident
-
-2006-01-13 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/config.py: syslog logging support for the contents
- that go to yum.log
-
-2006-01-12 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: - fix for rh bug 177528 - don't call the repos callback if there are
- no repos defined. - jeremy, look at this and see if it breaks
- anything in pup or pirut
-
-2006-01-12 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py, yum/depsolve.py, yum/sqlitesack.py: - remove some code duplication - add sqlitesack searchALL parameter
- to do glob queries - massively speed up the searchPackageProvides()
- method.
-
-2006-01-11 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/repos.py: allow repos to be specified with commas to
- --enablerepo and --disablerepo, partial application of tim
- lauridsen's patch.
-
-2006-01-11 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/depsolve.py: make whatProvides a little less chatty if it
- doesn't need to be
-
-2006-01-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: changelog update
-
-2006-01-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum.spec, yum/__init__.py: 2.5.1 mark
-
-2006-01-05 Jeremy Katz <katzj at redhat.com>
-
- * yum/comps.py: bye bye debug print
-
-2006-01-05 Jeremy Katz <katzj at redhat.com>
-
- * yum/__init__.py, yum/comps.py: * fix determination of package groups being installed to not require
- all the default packages to be there, just the mandatory * add
- support for reverting a groupRemove (ie, a groupUnremove)
-
-2006-01-05 Jeremy Katz <katzj at redhat.com>
-
- * yum/depsolve.py: make Depsolve an object
-
-2006-01-05 Jeremy Katz <katzj at redhat.com>
-
- * yum/packages.py: make YumInstalledPackage a subclass of
- YumAvailablePackage so that we can count on having the same methods
- available in both
-
-2005-12-22 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/update_md.py: - first checkin of update_md.py for update notice parsing - note -
- this is not used anywhere, yet
-
-2005-12-21 Paul Nasrat <pnasrat at redhat.com>
-
- * yum/transactioninfo.py: Make txmbr hashable
-
-2005-12-20 Panu Matilainen <pmatilai at laiskiainen.org>
-
- * docs/yum.8: - document "clean metadata" operation - document that all yum
- operations use the active repository configuration, including
- clean
-
-2005-12-20 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/config.py: fix for rh bug: 175505 needed installroot and
- distroverpkg options in YumConf, too. maybe key inheritance isn't
- working quite as it should?
-
-2005-12-19 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/config.py: - fix throttle config parsing problem - add kernel-devel to
- exactarchlist
-
-2005-12-19 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: fix for rh bug 175791, don't post 'download size needed if
- there's nothing being installed/updated and therefore nothing to be
- downloaded.
-
-2005-12-17 Jeremy Katz <katzj at redhat.com>
-
- * yum/__init__.py: provide callback feedback in reposetup. this is
- especially important for UI code
-
-2005-12-16 Paul Nasrat <pnasrat at redhat.com>
-
- * yum/packages.py: fix KeyError when no base in location
-
-2005-12-15 Jeremy Katz <katzj at redhat.com>
-
- * yum/config.py: inherit the repo being enabled from the base config
- per seth's request :)
-
-2005-12-14 Jeremy Katz <katzj at redhat.com>
-
- * yum/config.py, yum/repos.py: better fix for the mirror problem.
- ensure we set the value if it doesn't exist in the repo object.
- also, default enabled/groupsenabled to 0 in the repo since we'll
- override if the config says one. RepoConf and Repository really do
- need to be merged...
-
-2005-12-14 Jeremy Katz <katzj at redhat.com>
-
- * yum/config.py, yum/repos.py: only set options which have a value.
- add more defaults. fixes mirrorlists (and other stuff) getting
- overwritten (#175436)
-
-2005-12-14 Jeremy Katz <katzj at redhat.com>
-
- * yum/depsolve.py: better fix for #175647 -- find the package object
- once and allow it to be either installed or from the sacks. tested
- with a) yum update libgcj on a system where updating gcj would break
- deps b) yum update gnome-vfs2 where there are things depending on
- gnome-vfs2 c) yum remove gnome-vfs2 The only case I didn't check
- was the obsoletes case, but it looks like the right thing should
- happen
-
-2005-12-14 Jeremy Katz <katzj at redhat.com>
-
- * yum/depsolve.py: fix traceback with an installed package requiring
- something that's no longer in any repos (#175647)
-
-2005-12-13 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: 1. get rid of unnecessary print_short_help method on our optparser
- object - just use print_usage 2. fix silly 'None' Output in usage
- as reported by Luke.
-
-2005-12-13 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: check in changelog
-
-2005-12-13 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, shell.py: - make shell not traceback when user doesn't close a quoted string -
- exit with a fatal error if running from file-based yum-shell script,
- though. - add a shortened usage() output if calling from the shell
- as the --options won't help a someone in the shell.
-
-2005-12-13 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/__init__.py: make groupremove work reduce some code
- duplication in groupRemove() and remove()
-
-2005-12-13 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/__init__.py: groupupdate is now just the same function
- as groupinstall - so make the command continue to work but remove
- the unecessary code.
-
-2005-12-13 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/__init__.py, yum/repos.py: make yum groupinstall work
- again remove unnecessary recreation of comps object
-
-2005-12-12 Seth Vidal <skvidal at linux.duke.edu>
-
- * docs/yum.8: make the man page reference be more useful
-
-2005-12-11 Jeremy Katz <katzj at redhat.com>
-
- * yum/__init__.py, yum/comps.py: * fix a few typos in the group code * parse the order as an integer
- instead of a boolean * default groups without an order to be a high
- number instead of 0 (so they end up shown later)
-
-2005-12-11 Jeremy Katz <katzj at redhat.com>
-
- * yum/transactioninfo.py: typo fix
-
-2005-12-09 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: add log output when update() is called w/o any
- options
-
-2005-12-09 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/__init__.py, yum/comps.py: many changes to comps.
- Cleans up the interface quite a bit.
-
-2005-12-08 Jeremy Katz <katzj at redhat.com>
-
- * yum/config.py: suport the old option setting API too
-
-2005-12-08 Jeremy Katz <katzj at redhat.com>
-
- * yum/config.py: fix for gratutious config API breakage
-
-2005-12-08 Paul Nasrat <pnasrat at redhat.com>
-
- * yum/mdcache.py, yum/mdparser.py, yum/packages.py,
- yum/sqlitecache.py, yum/sqlitesack.py: Add location base/url to
- sqlite cache
-
-2005-12-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/depsolve.py, yum/transactioninfo.py: depsolve.py: - new api
- for txmbr.setAsDep() - fix minor indentation item - label some
- fixmes and potential improvements
-
-2005-12-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * output.py, yum/transactioninfo.py: - store relationships in the transaction members a bit more sanely -
- still supporting the older style (relatedto) style for now - make it
- work in output.py
-
-2005-12-07 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py, yum/constants.py: add TS_INSTALL_STATES and
- TS_REMOVE STATES into constants use them in deselectGroup()
-
-2005-12-07 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: whoops
-
-2005-12-07 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: oops
-
-2005-12-07 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: make deselectGroup just look through the tsInfo
- rather than traversing the pkgsack for no apparent reason
-
-2005-12-07 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: make sure deselectGroup() removes all the
- packages it added, including multilib
-
-2005-12-06 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py, yum/packages.py: - make install check if the package is already installed - add rel
- and ver attributes to all the PackageObjects for convenience.
-
-2005-12-03 Seth Vidal <skvidal at linux.duke.edu>
-
- * output.py, yum/__init__.py, yum/misc.py: kill off sortPkgObj()
- from __init__ remove excludeNonCompatArch as it was trivial and
- useless
-
-2005-12-03 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/__init__.py: change minor mechanism in cli.py for
- installs until I can spend some time better integrating the new
- methods
-
-2005-12-03 Seth Vidal <skvidal at linux.duke.edu>
-
- * yummain.py: fix for rh bug: 174669 set locale to C if our locale
- assertion fails.
-
-2005-12-03 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, docs/yum.conf.5, yum/__init__.py, yum/config.py: - decrease default metadata_expire value from 8 hours to 30 minutes
- - make yum clean metadata remove the cachecookie - make yum
- makecache zero out the value of the metadata_expire so running it
- will force cache updating
-
-2005-12-02 Jeremy Katz <katzj at redhat.com>
-
- * yum/plugins.py: fix up for new config API
-
-2005-11-23 Menno Smits <menno at freshfoo.com>
-
- * yum/parser.py: - Added support for URL style includes. Not perfect but good enough
- for now. - Documentation
-
-2005-11-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: log output from remove()
-
-2005-11-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/Errors.py, yum/__init__.py: clean up some duplicated code
- initial stab at YumBase.remove()
-
-2005-11-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: pass updates off to update() from install() if
- that's where they should be
-
-2005-11-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: use isObsoleted in other places
-
-2005-11-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py, yum/transactioninfo.py: do ts check for the
- updatable package already being obsoleted
-
-2005-11-20 Seth Vidal <skvidal at linux.duke.edu>
-
- * rpmUtils/updates.py: more or less get yum.YumBase.update() working
- add updating_dict to updates
-
-2005-11-20 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: [no log message]
-
-2005-11-19 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/Errors.py, yum/__init__.py: - move localPackages out of YumBaseCli and into YumBase - fix a
- minor bug in install() - start on update() but not finished for the
- specific-package case
-
-2005-11-16 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/depsolve.py: ts.check() can be None - don't unique if it is -
- bug #520 - thanks to dgregor
-
-2005-11-13 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/__init__.py, yum/packages.py: - doGenericSetup() takes a cache argument so it can be used by
- non-root users - remove several duplicate functions from packages.py
- - make install() handle multilib correctly
-
-2005-11-09 Paul Nasrat <pnasrat at redhat.com>
-
- * repomd/test.py: name arguement for callback
-
-2005-11-08 Menno Smits <menno at freshfoo.com>
-
- * yum/sqlitesack.py: Use correct db column names in new
- searchNevra()
-
-2005-11-08 Menno Smits <menno at freshfoo.com>
-
- * yum/config.py: Added UrlOption and UrlListOption and used where
- appropriate.
-
-2005-11-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: fixme's notes for install()
-
-2005-11-07 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/Errors.py, yum/__init__.py: - fix YumBase.install() method - still room for more work, though -
- make YumBase.selectGroup() and deselectGroup() work more correctly -
- implement a YumBase.doGenericSetup() method to simplify
- testing/setup
-
-2005-11-07 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py, yum/sqlitesack.py: - initial implementation of yum.install() - make sqlitesack's
- searchNevra() ignore args that are None - works more like the repomd
- searchNevra()
-
-2005-11-07 Seth Vidal <skvidal at linux.duke.edu>
-
- * docs/yum.8, docs/yum.conf.5: duplicate entry for yum.repos.d in
- man page close bug #507
-
-2005-11-07 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py, yum/depsolve.py: fix for rh bugzilla 172510
-
-2005-11-06 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/repos.py: make the cookie check, you know, work.
-
-2005-11-06 Seth Vidal <skvidal at linux.duke.edu>
-
- * docs/yum.conf.5, yum/config.py, yum/repos.py: implement checking
- for a repomd.xml cookie to allow us to fetch it less often
-
-2005-11-02 Seth Vidal <skvidal at linux.duke.edu>
-
- * bin/yum.py: add link to the faq, not post to the list
-
-2005-10-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: fix silly newcomps reference
-
-2005-10-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py, yum/comps.py, yum/groups.py, yum/newcomps.py:
- removed groups.py, move newcomps.py to comps.py and remove old
- comps.py
-
-2005-10-27 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/transactioninfo.py: when removing the package from the
- transaction set, make sure you unset the state attribute.
-
-2005-10-27 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/packages.py, yum/transactioninfo.py: add state attribute to
- package objects and update this info in the tsInfo
-
-2005-10-25 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, output.py: fix up groupinfo command
-
-2005-10-25 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: reset comps compiled when you close the rpmdb
-
-2005-10-25 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/__init__.py, yum/newcomps.py: make grouplist work.
-
-2005-10-25 Menno Smits <menno at freshfoo.com>
-
- * cli.py, shell.py, yum/__init__.py, yum/config.py, yum/parser.py,
- yum/plugins.py, yum/repos.py: Major overhaul of configuration file
- handling.
-
-2005-10-25 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/newcomps.py: add mechanism for marking groups as installed or
- not.
-
-2005-10-24 Jeremy Katz <katzj at redhat.com>
-
- * repomd/mdUtils.py, yum/sqlitesack.py: returnNewest* needs to
- return all arches of equal "newness"
-
-2005-10-23 Paul Nasrat <pnasrat at redhat.com>
-
- * rpmUtils/arch.py: correct basearch for ppc64pseries/iseries
-
-2005-10-23 Menno Smits <menno at freshfoo.com>
-
- * docs/yum.conf.5: Fixed small typo
-
-2005-10-21 Paul Nasrat <pnasrat at redhat.com>
-
- * docs/yum.conf.5: remove archwork reference
-
-2005-10-21 Paul Nasrat <pnasrat at redhat.com>
-
- * yum/archwork.py: archwork unused
-
-2005-10-18 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: stubs for install(), update() and erase() methods
- for YumBase class
-
-2005-10-18 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/newcomps.py: newcomps format handling - vastly simplified the
- comps handling
-
-2005-10-18 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: new selectGroup and deselectGroup methods for
- handling groups fix up doGroupSetup to work with the new group
- interface
-
-2005-10-11 Paul Nasrat <pnasrat at redhat.com>
-
- * yum/parser.py: Make includeddir parser work
-
-2005-10-11 Paul Nasrat <pnasrat at redhat.com>
-
- * yum/parser.py: fix typo
-
-2005-10-11 Paul Nasrat <pnasrat at redhat.com>
-
- * yum/parser.py: New configuration parser routines
-
-2005-10-07 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/config.py: getting rid of the tuples - back to simple
- attributes. This should be headed in the direction to merge with
- what Menno and Paul have been doing.
-
-2005-10-04 Paul Nasrat <pnasrat at redhat.com>
-
- * callback.py: import constants
-
-2005-10-04 Paul Nasrat <pnasrat at redhat.com>
-
- * yum/constants.py: output uses a dict anyway - simplify
-
-2005-10-04 Paul Nasrat <pnasrat at redhat.com>
-
- * callback.py, cli.py, repomd/packageObject.py, yum/config.py,
- yum/constants.py, yum/depsolve.py, yum/transactioninfo.py: Move to
- use constants for transaction states
-
-2005-09-22 Jeremy Katz <katzj at redhat.com>
-
- * yum/transactioninfo.py: fix typo
-
-2005-09-21 Jeremy Katz <katzj at redhat.com>
-
- * yum/depsolve.py, yum/sqlitesack.py: returnByName* methods are
- expected to return a list. make sure we do so (and deal with it
- being done) consistently. (rh bug#168712)
-
-2005-09-16 Jeremy Katz <katzj at redhat.com>
-
- * yum/transactioninfo.py: need to be able to remove a package from
- the transaction for package exclusion in kickstart
-
-2005-09-16 Jeremy Katz <katzj at redhat.com>
-
- * yum/sqlitesack.py: implement returnNewestByName for the sqlite
- backend. speeds up group selection in anaconda by about 2 minutes
- :-)
-
-2005-09-16 Jeremy Katz <katzj at redhat.com>
-
- * repomd/mdUtils.py: add utility function to find the newest package
- in a list since I've seen this code a few times...
-
-2005-09-15 Paul Nasrat <pnasrat at redhat.com>
-
- * yum/config.py: fix typo in YumBaseClass
-
-2005-09-15 Paul Nasrat <pnasrat at redhat.com>
-
- * yum/config.py: fix class declaration
-
-2005-09-03 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/config.py: start of new YumBaseConfig - not even remotely
- finished
-
-2005-08-14 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum-daily.spec, yum.spec, yum/__init__.py: remove yum-daily b/c we
- never use it rebrand as 2.5.0 - devel series
-
-2005-08-14 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: changelog for 2.4.0
-
-2005-08-14 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog, yum-daily.spec, yum.spec, yum/__init__.py: update
- changelog mark as 2.4.0 in __init__.py and spec files
-
-2005-08-08 Panu Matilainen <pmatilai at laiskiainen.org>
-
- * yum/misc.py: Allow misc.GenericHolder class to be accessed like a
- dictionary.
-
-2005-08-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * shell.py, yum/repos.py: return consistent results from findRepos
-
-2005-08-07 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: make grouplist stop presenting duplicate
- groupnames
-
-2005-08-05 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum.spec: add plugins to docs
-
-2005-08-05 Seth Vidal <skvidal at linux.duke.edu>
-
- * callback.py: 'fix' for bug 481
-
-2005-08-05 Seth Vidal <skvidal at linux.duke.edu>
-
- * bin/yum.py: check in Hans-Peter Jansen's patch to help make the
- error output when a needed module is missing a bit easier.
-
-2005-08-05 Seth Vidal <skvidal at linux.duke.edu>
-
- * README, yum.spec: README: point to webpage and wiki add
- libxml2-python req back into spec file
-
-2005-08-05 Seth Vidal <skvidal at linux.duke.edu>
-
- * docs/Makefile, docs/yum-shell.8, docs/yum.8, shell.py: shell.py:
- support shell-like quoting of arguments - especially useful for
- group names docs/yum-shell.8: document the yum shell docs/yum.8:
- point to the yum shell docs docs/Makefile: install the yum-shell man
- page.
-
-2005-07-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py, yum/repos.py: if caching is enabled and the
- package in the cache is damaged/incomplete/corrupted. Make sure we
- exit out rather than trying to install/update the package anyway.
- Closes rh bug: 164394 need to backport to 2.2.X
-
-2005-07-24 Seth Vidal <skvidal at linux.duke.edu>
-
- * docs/yum.8: add hidden option for grouplist
-
-2005-07-22 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/repos.py: clean up error string - bug #488
-
-2005-07-17 Menno Smits <menno at freshfoo.com>
-
- * PLUGINS: Initial add of developer docs for plugins.
-
-2005-07-17 Menno Smits <menno at freshfoo.com>
-
- * yum/plugins.py: - SLOT_TO_CONDUIT to clarify slot to conduit class mapping - added
- and extended documentation
-
-2005-07-14 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: obscure "broken depstring" case in remove by provides
-
-2005-07-14 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/__init__.py: allow remove option to handle virtual
- provides, versioned provides, file-deps, etc, like install can deal
- with.
-
-2005-07-13 Panu Matilainen <pmatilai at laiskiainen.org>
-
- * yum/__init__.py: Fix TypeError traceback in yum.getPackageObject()
- when package not found. CVSr
-
- ----------------------------------------------------------------------
-
-2005-07-09 Jack Neely <slack at quackmaster.net>
-
- * yum/depsolve.py: Beginings of support for kernel-module style
- packages as described on fedora-packaging. This patch attempts to
- figure out if any kernel-module package should be removed when a new
- one is installed. This works by making sure there is only one
- kernel-module-foo package that requires kernel-A = VR. Some other
- kernel-module package work is forth coming.
-
-2005-07-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: update changelog
-
-2005-07-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum-daily.spec, yum.spec, yum/__init__.py: mark as 2.3.4
-
-2005-07-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * docs/yum.8: document 'list recent' and 'deplist'
-
-2005-07-04 Seth Vidal <skvidal at linux.duke.edu>
-
- * Makefile: add *.bak to clean removal
-
-2005-07-02 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: fix the 'perl(foo::bar::baz)' searching provides
- bug.
-
-2005-07-01 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/config.py: <sigh> fix proxy check if proxy is None
-
-2005-07-01 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/config.py: make the proxy checking patch actually work.
-
-2005-07-01 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/config.py: check if the proxy is anything sensible
-
-2005-06-30 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, shell.py: - make yum shell not exit when failing to enable/disable a repo -
- fix an unneccesary sys.exit() in doRepoSetup()
-
-2005-06-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: when you're sorting a package Sack it is best if
- you've put packages into it. la la la
-
-2005-06-27 Menno Smits <menno at freshfoo.com>
-
- * cli.py: Correct my grammar
-
-2005-06-27 Menno Smits <menno at freshfoo.com>
-
- * cli.py: Cleanup and clarification of _filtercmdline()
-
-2005-06-27 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/repos.py: remove extras types, cleanup rogue ,
-
-2005-06-27 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/repos.py: if repomd.xml is mangled, try another mirror for
- unmangled one. This deals, correctly with horribly broken http
- servers that redirect a 404 error to an error page and issue a 200
- *Thwack*
-
-2005-06-27 Seth Vidal <skvidal at linux.duke.edu>
-
- * callback.py, docs/yum.conf.5, yum/depsolve.py: - check in Christopher Weis's patch to enable repackaging support in
- yum - modify the patch to ouput progress bars and semi-sensible
- output for the rpm callback
-
-2005-06-27 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: make -d0 and -e0 work again.
-
-2005-06-23 Seth Vidal <skvidal at linux.duke.edu>
-
- * docs/yum-arch.8, docs/yum.8, docs/yum.conf.5: - misc updates to the man pages - merge terje rosten's patch for the
- new nevra package specification
-
-2005-06-23 Seth Vidal <skvidal at linux.duke.edu>
-
- * docs/yum.conf.5: remove rss-filename
-
-2005-06-23 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/misc.py: make tmpdir be an option to pass into getCacheDir()
-
-2005-06-23 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: change out returnPackageByDep() to use
- returnPackagesByDep() and bestPackageFromList() rather than
- duplicating a lot of simple code
-
-2005-06-22 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/config.py: Check in terje rosten's patch to config.py to
- handle reposdir as a list, not a string
-
-2005-06-21 Panu Matilainen <pmatilai at laiskiainen.org>
-
- * yum/packages.py: Add support for name-epoch:version-release.arch
- naming convention to parsePackages()
-
-2005-06-21 Menno Smits <menno at freshfoo.com>
-
- * yum/__init__.py, yum/plugins.py: Renamed the plugin "typefilter"
- argument to just "types" (sorry, couldn't stand it)
-
-2005-06-20 Seth Vidal <skvidal at linux.duke.edu>
-
- * rpmUtils/__init__.py: make the header-by-index check work properly
- on older versions of rpm
-
-2005-06-20 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/config.py, yum/repos.py: get rid of defineDirs() method
- integrate it into dirSetup()
-
-2005-06-19 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: add os.path.normcase() for lockfile to fix rh
- bug: 160928
-
-2005-06-19 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/config.py, yum/depsolve.py, yum/repos.py: needed a space
- there, I dunno
-
-2005-06-19 Seth Vidal <skvidal at linux.duke.edu>
-
- * rpmUtils/__init__.py: - make the use-indexes-to-retrieve-hdrs mechanism work. - this makes
- a big speed up for yum remove calls when using rpm >= 4.4.1
-
-2005-06-16 Menno Smits <menno at freshfoo.com>
-
- * docs/yum.conf.5, yum/__init__.py, yum/config.py, yum/repos.py:
- Added http_caching option to provide control over http caching
- headers. This addresses bug #412
-
-2005-06-15 Menno Smits <menno at freshfoo.com>
-
- * cli.py, docs/yum.conf.5, yum/__init__.py, yum/config.py: Support
- for multple GPG keys per repo.
-
-2005-06-14 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: changelog update from 2.3.3
-
-2005-06-14 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum-daily.spec: daily spec - unused
-
-2005-06-14 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum.spec, yum/__init__.py: - minor change to use constants - mark as 2.3.3
-
-2005-06-14 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: resolve rh bug: 160328
-
-2005-06-13 Seth Vidal <skvidal at linux.duke.edu>
-
- * output.py: cleanup userconfirm()
-
-2005-06-09 Menno Smits <menno at freshfoo.com>
-
- * output.py: Applied Terje's locale workaround.
-
-2005-06-07 Menno Smits <menno at freshfoo.com>
-
- * yum/plugins.py: - base PluginYumExit on Exception instead of YumBaseError so that it
- can be handled separately - Updated TODO
-
-2005-06-07 Menno Smits <menno at freshfoo.com>
-
- * yummain.py: - refactored to avoid code duplication and clarify - specialised
- handling for PluginYumExit exceptions - fixed exception catching
- typo
-
-2005-06-07 Menno Smits <menno at freshfoo.com>
-
- * yum/__init__.py, yum/plugins.py: Plugin type support: -
- plugins can specify what type they are via the plugin_type attribute
- - the type(s) of plugin to load can be specified when calling
- doPluginSetup() Updated plugin TODO.
-
-2005-06-04 Seth Vidal <skvidal at linux.duke.edu>
-
- * bin/yum.py: rather funny little patch
-
-2005-06-03 Seth Vidal <skvidal at linux.duke.edu>
-
- * output.py: check in terje rosten's patch for making timestamp in
- log be consistently C locale.
-
-2005-06-03 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/config.py: fix for bug 464
-
-2005-06-02 Panu Matilainen <pmatilai at laiskiainen.org>
-
- * yum/__init__.py, yum/plugins.py: Add preresolve and postresolve
- slots to plugin interface, bump up plugin api version.
-
-2005-05-30 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: make update, install, erase commands case sensitive rather
- than insensitive. yum install G* should not catch all g* and G*,
- just G*
-
-2005-05-29 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, output.py, shell.py, yum/__init__.py, yum/depsolve.py:
- deplist function from Chip Turner: yum deplist pkgglob returns a
- list of package deps and the packages that satisfy those deps
-
-2005-05-29 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/groups.py: added in Sean Dilda's patch to speed along the
- groups parsing and fix a bug for mandatory metapackages
-
-2005-05-24 Jeremy Katz <katzj at redhat.com>
-
- * yum/config.py, yum/depsolve.py: installonlypkgs should be matched
- against provides also instead of just the explicit list of kernel,
- kernel-modules. fixes the kernel-*-devel problem (#155988)
-
-2005-05-23 Jeremy Katz <katzj at redhat.com>
-
- * rpmUtils/arch.py: fix typo noticed by Terje Rosten
- <terje.rosten at ntnu.no>
-
-2005-05-23 Jeremy Katz <katzj at redhat.com>
-
- * rpmUtils/arch.py: add support for alpha arches from Balint
- Cristian (#158550)
-
-2005-05-20 Seth Vidal <skvidal at linux.duke.edu>
-
- * output.py: remove the truncation from the output
-
-2005-05-10 Jeremy Katz <katzj at redhat.com>
-
- * yum/config.py: revert last change -- I fixed the kernel-*-devel to
- provide kernel-devel
-
-2005-05-10 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/config.py: kernel-smp-devel to installonly list
-
-2005-05-10 Jeremy Katz <katzj at redhat.com>
-
- * ChangeLog, rpmUtils/arch.py: 2005-05-09 Jeremy Katz
- <katzj at redhat.com> * rpmUtils/arch.py (getBaseArch): ppc64 and
- sparc64 are odd in that you want a mostly ppc and sparc userland
- respectively. make $basearch realize that.
-
-2005-05-10 Seth Vidal <skvidal at linux.duke.edu>
-
- * shell.py: make sure you solve before you run (whoops) thanks to
- pjones for the fix
-
-2005-05-08 Menno Smits <menno at freshfoo.com>
-
- * cli.py, docs/yum.8, yum/__init__.py, yum/plugins.py: Added
- --noplugins command line option.
-
-2005-05-07 Menno Smits <menno at freshfoo.com>
-
- * yum/plugins.py: Allow plugins direct access to RepoStorage
- instance rather than try and mimic it's API. This break backwards
- compat. API_VERSION is now 2.0.
-
-2005-05-07 Menno Smits <menno at freshfoo.com>
-
- * yum/repos.py: RepoStorage.__str__() wasn't returning a string!
-
-2005-05-05 Menno Smits <menno at freshfoo.com>
-
- * cli.py, yum/__init__.py, yum/plugins.py, yummain.py: - Converted command line option parsing from getopt to optparse
- module - Allow plugins to modify command line options and query
- parsed command line
-
-2005-04-25 gijs <gijs>
-
- * rpmUtils/__init__.py: Fixed an inconsistency between rpm and yum,
- allow unversioned provides to fulfill versioned requires.
-
-2005-04-21 Menno Smits <menno at freshfoo.com>
-
- * yum/plugins.py: Fixed subtle problem that meant config slot check
- was not working in Python 2.2. Updated TODO items.
-
-2005-04-19 Menno Smits <menno at freshfoo.com>
-
- * docs/yum.8, docs/yum.conf.5: End user documentation for plugins.
-
-2005-04-15 Menno Smits <menno at freshfoo.com>
-
- * yum/__init__.py, yum/plugins.py: Panu's patch for prereposetup and
- postreposetup slots. Increased major API version number as the above
- breaks backward compat. Added getRpmDB() and getPackageByNevra()
-
-2005-04-14 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: obvious typo on exception raising
-
-2005-04-13 gijs <gijs>
-
- * cli.py, docs/yum.8: Updated yum.8 manpage and added missing
- commands to the --help output of cli.py.
-
-2005-04-07 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum.spec: elementtree dep
-
-2005-04-05 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: fix for rh bug: 153127
-
-2005-04-04 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum.spec: typo in spec file
-
-2005-04-04 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog, yum-daily.spec, yum.spec, yum/__init__.py: mark as
- 2.3.2
-
-2005-04-04 Seth Vidal <skvidal at linux.duke.edu>
-
- * rpmUtils/tests/updates-test.py: add some items to the
- updates-test. Mostly to check out multiple, lesser, updating pkgs.
-
-2005-03-30 Menno Smits <menno at freshfoo.com>
-
- * yum/plugins.py: - implemented predownload and postdownload slots - documented
- bugzilla entries that should be do-able as plugins - added GPL
- header - updated TODOs - added a little more documentation
-
-2005-03-30 Menno Smits <menno at freshfoo.com>
-
- * yum/__init__.py: Added predownload and postdownload plugin hooks.
-
-
-2005-03-30 Menno Smits <menno at freshfoo.com>
-
- * docs/yum.conf.5: Documented plugin related options.
-
-2005-03-29 Seth Vidal <skvidal at linux.duke.edu>
-
- * shell.py: catch traceback on ts solve errors
-
-2005-03-29 Seth Vidal <skvidal at linux.duke.edu>
-
- * output.py: check in a few more modifications to the ts list
-
-2005-03-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/comps.py: remove the python 2.2 shebang
-
-2005-03-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * output.py, yum/transactioninfo.py: cleanup transaction listing.
-
-2005-03-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum.spec: modify spec file for yum-daily.yum file
-
-2005-03-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * output.py, yum/transactioninfo.py: make listTransaction() output
- similar to michael favia's design at:
- http://michael.insitesinc.com/mediawiki/index.php?title=Yum slight
- modification to transactionInfo obsoleted pkg data to do that.
-
-2005-03-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * etc/Makefile, etc/yum-daily.yum, etc/yum.cron: - add yum-daily.yum - make yum.cron use it for the daily cron job -
- modify the Makefile to know about it
-
-2005-03-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * shell.py: when specifying a comma-separated-list for exclude,
- replace the commas with spaces for split() to work on.
-
-2005-03-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * shell.py: display off by one in repo list
-
-2005-03-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * shell.py: fix some typos in the repos help output
-
-2005-03-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, shell.py, yum/__init__.py: config exclude implemented when
- you exit a ts run w/o actually finishing the transaction, don't
- reset the tsInfo class clean up the help output in the shell.
-
-2005-03-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * shell.py: implement some config options that involve the least
- amount of pain
-
-2005-03-27 Seth Vidal <skvidal at linux.duke.edu>
-
- * shell.py: add some limited config settings in the shell. More to
- go.
-
-2005-03-27 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/config.py, yum/constants.py: add BOOLEAN_STATES to constants,
- use it in config.py
-
-2005-03-27 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/config.py: remove pkgpolicy option - it is unused, anyway.
-
-2005-03-27 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: fix for a small problem in searchPackages()
-
-2005-03-27 Menno Smits <menno at freshfoo.com>
-
- * cli.py, yum/__init__.py, yum/config.py, yum/plugins.py: More
- plugin related updates: - rearranged plugin initialisation:
- - YumBase.doPluginSetup() now exists and must be called to
- initialise plugins. - Yum's config and command
- line args are now parsed before plugins are initialised.
- This fixes the problems with the debug level being ignored
- for early plugin related output. - refactored the plugin
- config registration stuff so its handled outside of
- config.py (much cleaner). - because yum config is parsed
- before plugin initialisation, a separate plugin.conf is no
- longer required. Moved plugin settings to [main] of
- yum.conf. - cleaned up YumPlugins.run() (return code not used
- anymore) - fixed up the levels on some plugin related log output
-
-
-2005-03-27 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, shell.py: modify order of args for cli.doRepoSetup() make
- todo list in shell.py
-
-2005-03-27 Seth Vidal <skvidal at linux.duke.edu>
-
- * shell.py: change semantic for repos commands in shell, add in list
- functionality: yum shell: repos list - lists repositories and
- their states repos enable <repolist> - enables a list of
- repositories (space separated) repos
- disable <repolisT> - disables a list of repositories (space
- separated)
-
-2005-03-27 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, output.py, shell.py, yum/__init__.py, yum/repos.py,
- yummain.py: add 'enablerepo' and 'disablerepo' commands to yum
- shell. - modified doRepoSetup() to take a thisrepo setup argument
- so we can setup one repo at a time - modified the
- RepoStorage.populateSack() so that the repos list is checked if
- it is repoids or repo objects and used correctly - We might want to
- think about a YumBase.reset() function that resets the internal
- state of the object. - cleaned up some garbage comments and white
- space in yummain.py and cli.py
-
-2005-03-27 Menno Smits <menno at freshfoo.com>
-
- * cli.py, yum/__init__.py, yum/plugins.py: - modified doRepoSetup so that cli.py calls YumBase to do most of
- the work. This makes the code cleaner (less duplication) and means
- the call for the reposetup plugin hook is only in one place. -
- added call reposetup plugin hook
-
-2005-03-27 Menno Smits <menno at freshfoo.com>
-
- * cli.py, yum/__init__.py, yum/plugins.py: Moved __version__ to
- yum/__init__.py Added getYumVersion() to PluginConduit
-
-2005-03-27 Seth Vidal <skvidal at linux.duke.edu>
-
- * rpmUtils/transaction.py: remove old TransactionData class
-
-2005-03-27 Menno Smits <menno at freshfoo.com>
-
- * yum/__init__.py, yum/config.py, yum/constants.py, yum/plugins.py:
- Lots of plugin related changes: - API versioning - cleaned
- up API somewhat - hook methods now need a "_hook" suffix. This
- will allow detection of plugins that are trying to register
- hooks that aren't supported. - plugin hook method return codes
- are now ignored. Plugins should now use PluginYumExit
- exception if yum should terminate. - started reposetup hook
- - custom option conflict detection - renamed
- PLUG_OPT_WHERE_GLOBAL to PLUG_OPT_WHERE_MAIN
-
-2005-03-26 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/config.py: exactarchlist put through the
- variableReplace/listmaker routines
-
-2005-03-26 Seth Vidal <skvidal at linux.duke.edu>
-
- * rpmUtils/updates.py: check in Adam Greenfield's patch for yum bug
- #410
-
-2005-03-26 Seth Vidal <skvidal at linux.duke.edu>
-
- * rpmUtils/tests/updates-test.py, rpmUtils/updates.py: make
- exactarch not used exactarchlist is used, If the pkg name exists in
- this list then it will not be allowed to change archs. If it does
- not exist in this list then it will be allowed to change archs in an
- update.
-
-2005-03-26 Menno Smits <menno at freshfoo.com>
-
- * yum/groups.py: Changed Comps exception catching because of change
- to cElementTree.
-
-2005-03-26 Menno Smits <menno at freshfoo.com>
-
- * yum/comps.py: Converted from libxml2 to cElementTree. General
- cleanup and style enhancements.
-
-2005-03-26 Menno Smits <menno at freshfoo.com>
-
- * yum/config.py: Fixed missing brackets.
-
-2005-03-26 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/__init__.py, yum/config.py, yum/depsolve.py: make
- exactarch not used exactarchlist is used, If the pkg name exists in
- this list then it will not be allowed to change archs. If it does
- not exist in this list then it will be allowed to change archs in an
- update.
-
-2005-03-25 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/config.py: missing , in a list
-
-2005-03-25 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/config.py: minor changes in config.py - make reposdir
- variableReplaced for $vars - make a couple of items that were
- uselessly tuples into lists
-
-2005-03-25 Menno Smits <menno at freshfoo.com>
-
- * yum/plugins.py: Plugins now have a general config file at
- /etc/yum/plugins.conf. Each plugin also has a config file at
- /etc/yum/pluginconf.d/<pluginname>.conf. Added methods to
- PluginConduit to allow retrieval of plugin specific options.
-
-2005-03-25 Menno Smits <menno at freshfoo.com>
-
- * docs/yum.conf.5, yum/__init__.py, yum/config.py: The "reposdir"
- option now takes a list of directories to search for .repo files.
- The default is /etc/yum/repos.d and /etc/yum.repos.d.
-
-2005-03-25 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: copyright date change
-
-2005-03-24 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/__init__.py: move the plugins call outside of cli.py
- and into the yum module.
-
-2005-03-24 Seth Vidal <skvidal at linux.duke.edu>
-
- * posts/bootloadercfg.py, posts/checkbootloader.py,
- posts/grubcfg.py, posts/iutil.py, posts/lilo.py, posts/lilocfg.py,
- posts/up2datetheft.py: remove all this old code
-
-2005-03-24 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/sqlitesack.py: fix for rh bug: 151950
-
-2005-03-21 Menno Smits <menno at freshfoo.com>
-
- * cli.py, yum/__init__.py, yum/config.py, yum/constants.py,
- yum/plugins.py: Initial yum plugin work.
-
-2005-03-21 Menno Smits <menno at freshfoo.com>
-
- * yum/pgpmsg.py: Updated pgpmsg to latest upstream version to fix
- problems parsing some keys (eg. current ATrpms key). (This is NOT
- related to other recently reported pgpmsg issue:
- http://devel.linux.duke.edu/bugzilla/show_bug.cgi?id=426)
-
-2005-03-18 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/repos.py, yum/sqlitesack.py: make sqliteSack.getPrco only
- search for the requested prco type, If none specified it searches
- for all. modify yum/repos.py to allow for unsetting sqlite backend
- db selection.
-
-2005-03-15 gijs <gijs>
-
- * yum/sqlitesack.py: Fixed another typo in changelog related queries
-
-
-2005-03-15 gijs <gijs>
-
- * yum/sqlitesack.py: Fixed two typos in sql queries (spotted by
- Hans-Peter Jansen).
-
-2005-03-15 gijs <gijs>
-
- * yum/sqlitesack.py: Explicitly name columns when doing selects from
- multiple tables. This should fix sqlite 3.1 issues while remaining
- compatible with sqlite 3.0 and older.
-
-2005-03-15 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, output.py, yum/config.py: purge generate-rss and all of
- its reqs
-
-2005-03-15 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: make the lock file dir, if it is not present
-
-2005-03-14 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: make yum lock file aware of the installroot - no
- need for a global lock
-
-2005-03-13 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/packages.py, yum/sqlitecache.py: add a requiresList method to
- YumAvailablePackage to make it match YumInstalledPackage. Fix up a
- case where sqlitecache would traceback if the db file was not
- writable and we wanted to delete it.
-
-2005-03-12 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/constants.py: add constants.py - generic constants so we don't
- have to do so many string comparisons for storing types of things.
- This isn't used anywhere yet.
-
-2005-03-12 Seth Vidal <skvidal at linux.duke.edu>
-
- * rpmUtils/updates.py: setup an 'obsoleted' dict for easy look up of
- what packages obsolete an installed package
-
-2005-03-12 Seth Vidal <skvidal at linux.duke.edu>
-
- * output.py, yum/__init__.py, yum/depsolve.py: - clean up some dumb code laste night - make obsoletes easier to
- search - tidy up some code in depsolver - make obsoletes print out
- in the transaction list again
-
-2005-03-11 Seth Vidal <skvidal at linux.duke.edu>
-
- * repomd/packageSack.py, rpmUtils/updates.py: packageSack -
- packagesByTuple(pkgtup) updates - getObsoletedList()
-
-2005-03-11 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py, yum/depsolve.py: in the event we can't find a
- resolving package, look for obsoletes (as well as updates) of the
- requiring package to get out of the unresolveable dep.
-
-2005-03-11 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, docs/yum.conf.5, yum/config.py: merge in the "turn off the
- confirm in 'expected' situations" patch from Matt Miller
-
-2005-03-10 gijs <gijs>
-
- * yum/sqlitesack.py: Make getPrco return epoch version and release
- in the correct order.
-
-2005-03-10 gijs <gijs>
-
- * yum/sqlitesack.py: Apply a patch by Panu Matilainen, fixing
- getPrco returning empty sets and a bug triggered by files that have
- no dirname (such specs in as SRPMS).
-
-2005-03-10 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/transactioninfo.py: add an __iter__ method to the
- TransactionData class
-
-2005-03-09 gijs <gijs>
-
- * yum/sqlitecache.py, yum/sqlitesack.py: - store filetypes as one char instead of as a / seperated string -
- move functions for encoding and decoding lists of filenames /
- filetypes to seperate helper functions. - update TODOs
-
-2005-03-09 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/config.py, yum/repos.py: made the replacement variables in the
- config file ($releasever, $basearch, $arch, $YUM0-$YUM9) apply to
- almost all of the options equally. Cleaned up a fair bit of code and
- muddied some other code
-
-2005-03-09 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/config.py: variableReplace() over gpgkey option
-
-2005-03-08 gijs <gijs>
-
- * repomd/packageSack.py: Fixed a typo in excludeArch(e)s that caused
- yum to fail when sqlite was not available.
-
-2005-03-08 gijs <gijs>
-
- * yum/repos.py: Enable wildcards to be used for enabling and
- disabling repositories. Based on a patch by Terrel Shumway.
-
-2005-03-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/mdparser.py, yum/sqlitecache.py: check in Icon's cElementTree
- patches and unicode patches to sqlite backend.
-
-2005-03-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: move callback return to better location - spews less crap
- pre-final-transaction
-
-2005-03-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/sqlitesack.py: merge Panu's searchPrco method for
- sqlitesack.py
-
-2005-03-07 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: update changelog
-
-2005-03-07 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum-daily.spec, yum.spec: modify version numbers change
- specs a little bit
-
-2005-03-07 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: tidy up 'clean' output for use in shell
-
-2005-03-07 Seth Vidal <skvidal at linux.duke.edu>
-
- * shell.py: refined language a bit: normal commands from yum cli
- special shell commands: run - same as 'ts run' transaction (aliased
- to 'ts' as well) run - run transaction solve - dep
- solve transaction list - list transaction reset -
- reset transaction quit exit
-
-2005-03-07 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, shell.py, yum/__init__.py, yum/repos.py: permit multiple
- shell transactions in one run.
-
-2005-03-07 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/config.py, yum/repos.py: fix for bug 407 delete some commented
- code in config.py
-
-2005-03-06 Seth Vidal <skvidal at linux.duke.edu>
-
- * shell.py, yum/__init__.py: some shell updates and made it possible
- to reset the state of the rpmdb and transaction set that yum has
- available.
-
-2005-03-06 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: left out a variable in the dbcache cleanup changes - fixed
-
-
-2005-03-04 Seth Vidal <skvidal at linux.duke.edu>
-
- * repomd/packageSack.py, yum/__init__.py, yum/sqlitesack.py,
- yummain.py: - made excludeArches in repomd pkgsack and sqlite pkgsack. - makes
- more sense to be in that class - sql select is a bit faster than
- iterating all the packages and comparing
-
-2005-03-04 gijs <gijs>
-
- * repomd/packageObject.py: Applying a patch by Panu Matilainen to
- make the way to return Changelog information uniform for sqlite and
- non sqlite packages.
-
-2005-03-04 Seth Vidal <skvidal at linux.duke.edu>
-
- * output.py, yum/__init__.py, yum/depsolve.py: - clean up some misc items in the depsolver - remove two completely
- redundant if statements - add dep relationship information for
- erasure deps to txmbr - fix printing of removal deps in transaction
- listing
-
-2005-03-03 gijs <gijs>
-
- * yum/sqlitesack.py: Applied a patch by Panu Matilainen that allows
- queries on raw prco data.
-
-2005-03-03 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/transactioninfo.py: update TODOS on transactioninfo
-
-2005-03-03 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/depsolve.py, yum/transactioninfo.py: clean up the txmbr stuff
- to use package objects internally. need to also use them for the
- transaction-set relationship information
-
-2005-03-03 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: pychecker found some rather dumb, and apparently
- infrequently encountered problems.
-
-2005-03-02 Menno Smits <menno at freshfoo.com>
-
- * cli.py, output.py, yum/mdcache.py, yum/repos.py,
- yum/sqlitecache.py: Enhanced callback for reporting cache update
- progress (no more prints in sqlite code).
-
-2005-03-02 gijs <gijs>
-
- * yum/repos.py, yum/sqlitecache.py, yum/sqlitesack.py: - No longer subclass RepodataParserSqlite from mdcache. - Report
- repo id while caching - Update TODOs
-
-2005-03-02 gijs <gijs>
-
- * yum/sqlitesack.py: Dont list providing packages if they are
- excluded.
-
-2005-03-02 gijs <gijs>
-
- * yum/__init__.py, yum/sqlitesack.py: Perform yum whatprovides
- queries that are not regular expressions by using database queries
- instead of iterating over all packages.
-
-2005-03-02 gijs <gijs>
-
- * yum/sqlitesack.py: sqlitesack should not be printing anything,
- remove 2 old debug messages.
-
-2005-03-02 gijs <gijs>
-
- * yum/sqlitecache.py, yum/sqlitesack.py: Using / as a database
- seperator for a list of files now. Cleaned up this stuff by using
- python's split and join instead of our own code.
-
-2005-03-02 gijs <gijs>
-
- * output.py, repomd/packageObject.py, yum/sqlitesack.py: Fixes in
- Changelog handling code, mostly contributed by Panu Matilainen.
-
-2005-03-02 Menno Smits <menno at freshfoo.com>
-
- * yum/mdparser.py, yum/sqlitecache.py, yum/sqlitesack.py: Added
- missing GPL headers to newly added files.
-
-2005-03-02 Seth Vidal <skvidal at linux.duke.edu>
-
- * bin/yum.py: update to yum.py from Terrel Shumway - makes nicer
- output message if the yum module doesn't exist.
-
-2005-03-02 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, docs/yum.8, yum/__init__.py: clean dbcache option for
- removing sqlite caches. updated docs
-
-2005-03-02 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: remove duplicate call in install function
-
-2005-03-02 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/__init__.py: make yum install "foo > 1.1" work, along
- with all other virtual provides. fixed a couple of bugs in the
- returnPackageByDep cleaned up some useless string output
-
-2005-03-02 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/depsolve.py: file:// repos work again. By collapsing
- and remaking the po we lose localpath which is used if we have
- file:// repos. Whoops. :)
-
-2005-03-01 Seth Vidal <skvidal at linux.duke.edu>
-
- * etc/Makefile: patch from terje rosten for me being a dumbass
-
-2005-03-01 Menno Smits <menno at freshfoo.com>
-
- * yum/sqlitecache.py: Added missing "rpm_packager" column mapping to
- PackageToDBAdapter . This, combined with BaseEntry.__getitem__()
- behaviour (fixed) was causing packagers to be cached as None,
- causing "yum search" to fail.
-
-2005-03-01 Menno Smits <menno at freshfoo.com>
-
- * yum/mdparser.py: Entry __getitem__() no longer returns None for
- unknown values. This was hiding bugs when the entry parameters were
- being accessed with the wrong name. 'pkgid' parameter now called
- 'pkgId' to suit database.
-
-2005-02-27 gijs <gijs>
-
- * yum/sqlitesack.py: Fixing a bug in the sqlite exclude code that
- can lead to tracebacks
-
-2005-02-26 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: make exclusion of non-compat archs work for
- sqlite as well
-
-2005-02-26 gijs <gijs>
-
- * yum/sqlitecache.py, yum/sqlitesack.py: Implemented exclude support
- for sqlite. Some minor fixes to the sqlite files inspired by
- pychecker.
-
-2005-02-26 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/misc.py: make the gpgkey importer check the rpmdb in
- the installroot if specified.
-
-2005-02-25 Seth Vidal <skvidal at linux.duke.edu>
-
- * etc/yum.cron.weekly: actually 'add' yum.cron.weekly
-
-2005-02-25 gijs <gijs>
-
- * output.py, yum-daily.spec, yum.spec, yum/__init__.py,
- yum/mdparser.py, yum/repos.py, yum/sqlitecache.py,
- yum/sqlitesack.py: Adding the sqlite stuff to yum HEAD. Note that
- currently package excludes are non-functional and there are a number
- of outstanding TODOs.
-
-2005-02-25 Seth Vidal <skvidal at linux.duke.edu>
-
- * Makefile, repomd/Makefile, rpmUtils/Makefile, yum/Makefile: PYTHON
- override in makefiles - make it complete fixes:
- http://devel.linux.duke.edu/bugzilla/show_bug.cgi?id=403 thanks to
- bill nottingham
-
-2005-02-25 Seth Vidal <skvidal at linux.duke.edu>
-
- * etc/Makefile, yum-daily.spec, yum.spec: yum.cron.weekly to clean
- out old packages
-
-2005-02-24 gijs <gijs>
-
- * AUTHORS: Fixed a typo in my name in AUTHORS
-
-2005-02-24 Seth Vidal <skvidal at linux.duke.edu>
-
- * AUTHORS, callback.py, cli.py, output.py, progress_meter.py,
- pullheaders.py, serverStuff.py, shell.py, yummain.py: Add Menno,
- Gijs and Terje to Authors file update copyright years in code
- touched this year
-
-2005-02-24 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/misc.py, yum/pgpmsg.py: merged Menno's patch to the pgp/gpg
- functions
-
-2005-02-24 Seth Vidal <skvidal at linux.duke.edu>
-
- * Makefile, urlgrabber/LICENSE, urlgrabber/Makefile,
- urlgrabber/README, urlgrabber/__init__.py, urlgrabber/byterange.py,
- urlgrabber/grabber.py, urlgrabber/keepalive.py,
- urlgrabber/mirror.py, urlgrabber/progress.py: removed urlgrabber
- modified Makefile to remove urlgrabber
-
-2005-02-23 Seth Vidal <skvidal at linux.duke.edu>
-
- * rpmUtils/transaction.py: don't turn off nosignatures/nodigests,
- turn it on. Should do the right thing on rpm 4.4.1 now
-
-2005-02-23 Seth Vidal <skvidal at linux.duke.edu>
-
- * shell.py: add a depsolve and listTransaction command into the
- shell mostly a proof-of-concept.
-
-2005-02-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/repos.py: duplicate repository traceback fix
-
-2005-02-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: updated changelog
-
-2005-02-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum-template.xml: remove template xml that has no value anymore
-
-2005-02-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum-daily.spec, yum.spec: updated spec file for versin changes -
- 2.3.0
-
-2005-02-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * urlgrabber/LICENSE, urlgrabber/README, urlgrabber/__init__.py,
- urlgrabber/byterange.py, urlgrabber/grabber.py,
- urlgrabber/keepalive.py: check new urlgrabber into yum-HEAD. Once
- urlgrabber package is made this will be removed from this source
- tree
-
-2005-02-19 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/repos.py: proxy fixes
-
-2005-02-19 Seth Vidal <skvidal at linux.duke.edu>
-
- * docs/yum.conf.5: updated docs for proxy options that are now
- implemented
-
-2005-02-17 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/config.py, yum/repos.py: allow undefining proxies in repo
- sections use _none_ to disable proxy for a repo. abstract out the
- repos classes from the config class
-
-2005-02-14 Seth Vidal <skvidal at linux.duke.edu>
-
- * callback.py, cli.py, yum/__init__.py, yum/depsolve.py,
- yum/packages.py, yum/transactioninfo.py: - added in Terje's new patch for the rpm callback - setup some
- background for some items in transactioninfo.py - specifically
- storing the package object in the transaction member object. - made
- pkgtup an attribute of every package object rather than a callable
- method.
-
-2005-02-11 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/__init__.py, yum/config.py, yum/repos.py: rearranged
- repository configuration. Instead of repos being an attribute of the
- config class it is now split out as a base attribute from the
- YumBase object. This gives us better separation from the
- configParser format and let's us do newer things with resetting
- information in repositories
-
-2005-02-11 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: fix for localupdate/localinstall where it could not update
- b/c of arch change on localPackage. Also fix two related bugs: 1.
- unnecessary searching of filelists when the local package cannot be
- installed 2. error in output string for localupdate output -
- surprised no one has seen that one yet merge to HEAD
-
-2005-02-11 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/depsolve.py: fix for:
- https://bugzilla.redhat.com/beta/show_bug.cgi?id=147275 merge to
- HEAD
-
-2005-02-10 Seth Vidal <skvidal at linux.duke.edu>
-
- * callback.py: checked in Terje's callback progress changes to HEAD
-
-
-2005-02-09 Seth Vidal <skvidal at linux.duke.edu>
-
- * urlgrabber/byterange.py: HEAD check in of byterange, for now.
-
-2005-02-05 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/repos.py: get rid of bogus print statement in repo class
-
-2005-02-03 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/depsolve.py: fix for case where it keeps picking the wrong
- package to solve for in a list of two possible cases. This whole
- problem will go away when we stop 'GUESSING' which arch on a
- multilib has the requirement.
-
-2005-02-01 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, shell.py: implement yum shell filename - patch from Terje
- Rosten. now you can do: #!/usr/bin/yum shell install foo bar baz
- remove quux update dor run and have it do those all in one
- transaction.
-
-2005-02-01 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: remove crap
-
-2005-02-01 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, shell.py: split shell out into separate class using
- cmd.Cmd cleaned up cruft in cli from shell
-
-2005-02-01 Seth Vidal <skvidal at linux.duke.edu>
-
- * docs/yum.conf.5: add yum.conf man page entries for tsflags
-
-2005-02-01 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, rpmUtils/transaction.py, yum/__init__.py, yum/config.py,
- yum/depsolve.py: add in tsflags config option. Allows you to set
- certain transaction flags for use for your runs. Enabled flags are:
- noscripts notriggers nodocs test default is no tsflags.
-
-2005-01-31 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/__init__.py, yummain.py: Very early implementation of
- a yum shell. For most very simple cases it appears to work. It
- doesn't look very pretty, though.
-
-2005-01-31 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: crack resulting from this weekends 'resolvedep' for all
- the apt addicts who seem to think this command matters: yum install
- /some/path/to/some/file it will search the provide files for a
- match and install the package providing that. it doesn't work for
- updates it doesn't work for erases don't ask.
-
-2005-01-30 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/transactioninfo.py: fix for not alphabetizing pre-trans and
- post-trans pkg listings
-
-2005-01-30 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: minor fix in how the 'best package' is selected
- (craaaaaaaaaaaaaack)
-
-2005-01-30 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: finish out dep search for versioned deps
-
-2005-01-30 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/__init__.py, yum/depsolve.py, yum/repos.py: check in
- resolvedeps function not quite complete but most of the way there
- and cleaned up a bug that might show up in dep resolution
-
-2005-01-25 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: updated changelog
-
-2005-01-25 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum-daily.spec, yum.spec: updated versions to 2.1.13
-
-2005-01-25 Seth Vidal <skvidal at linux.duke.edu>
-
- * Makefile: fix up to Makefiles - patch by Paul Howarth
-
-2005-01-24 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/config.py: add kernel-devel to installonlypkgs in config.py
- for those zany kernel people
-
-2005-01-24 Seth Vidal <skvidal at linux.duke.edu>
-
- * output.py: small changes to download total size output patches
- (mostly to make them be quiet)
-
-2005-01-24 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, output.py: included Gijs' patch to output total download
- amount before confirming w/user
-
-2005-01-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * docs/yum.8: added url to webpage in manpage
-
-2005-01-20 Seth Vidal <skvidal at linux.duke.edu>
-
- * urlgrabber/grabber.py, yum/__init__.py, yum/packages.py,
- yum/repos.py: regets are enabled now. It looks like it should be
- handling everything nicely, we'll see how well it works :) regets
- are disabled for header downloads, though, due to the byte-range
- gets.
-
-2005-01-20 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/repos.py: - fixing up proxy info - enabling regets makes all things fall over.
-
-
-2005-01-19 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/depsolve.py: more correct solution for aforementioned problem
-
-
-2005-01-19 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/depsolve.py: slight output log adjustment
-
-2005-01-19 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/depsolve.py: potential fix for problem of yum trying to
- install older versions of things
-
-2005-01-18 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, repomd/packageSack.py: cli.py - correct some typos and
- change a log level for some debug output packageSack.py - apply
- Gijs' patch to reduce search size.
-
-2005-01-16 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/__init__.py, yum/repos.py: few more clean ups to
- baseurl parsing from repos.py
-
-2005-01-16 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/misc.py: minor fix in gpgkeyinfo for garbage keys
-
-2005-01-16 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/repos.py: fix for not doing a replacement variable call on
- baseurls
-
-2005-01-16 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, docs/yum.conf.5, yum/misc.py, yum/pgpmsg.py: check in
- Menno's gpg key import enhancement and yum.conf man page updates.
-
-2005-01-15 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/__init__.py, yum/config.py, yum/repos.py: make sure
- mirrorlists are not downloaded and parsed until repo is explicitly
- enabled in repoSetup() or by repo.enable() or repo.baseurlSetup()
-
-2005-01-15 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: fixed up gpgcheck warning message if no keys in light of
- gpgkey info
-
-2005-01-15 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, rpmUtils/__init__.py: StopIteration added for empty rpmdb
- queries fixed yum -c option to allow: url config files again and fix
- installroot specification. if installroot is specified then it will
- look for the config file in the installroot path. If it can't find
- one there it defaults to the normal / path.
-
-2005-01-14 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, output.py, yum/__init__.py, yum/repos.py: merge terje's
- yum-ui patch to add a package download counter and add a text
- information to repomd grabbing.
-
-2005-01-14 Seth Vidal <skvidal at linux.duke.edu>
-
- * urlgrabber/byterange.py, urlgrabber/grabber.py,
- urlgrabber/progress.py: terje's patches and new-merge of urlgrabber
- - include REST fixes
-
-2005-01-14 Seth Vidal <skvidal at linux.duke.edu>
-
- * output.py: added repository to transaction confirmation listing.
-
-2005-01-14 Seth Vidal <skvidal at linux.duke.edu>
-
- * serverStuff.py: Bug in Error reporting - closing bug #384 - thanks
- for the patch
-
-2005-01-14 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/depsolve.py, yum/transactioninfo.py: Mark packages with
- Provides: kernel as kernels - and therefore only install them
-
-2005-01-14 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/depsolve.py: don't resolve deps for packages we're removing
- resolve deps ON packages we're removing, but not FOR it. closes bug
- #386
-
-2005-01-11 Seth Vidal <skvidal at linux.duke.edu>
-
- * AUTHORS: Added Menno Smits to AUTHORS file
-
-2005-01-11 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/__init__.py, yum/config.py, yum/misc.py,
- yum/pgpmsg.py: changes for menno's pgp key importing routines -
- thanks to Menno Smits
-
-2005-01-10 Seth Vidal <skvidal at linux.duke.edu>
-
- * docs/yum.8: remove some ambiguity in the man page: close bug
- #144613
-
-2005-01-07 Seth Vidal <skvidal at linux.duke.edu>
-
- * yummain.py: fix for bug 382
-
-2005-01-06 Seth Vidal <skvidal at linux.duke.edu>
-
- * callback.py: fix for case in callback where package is obsoleting
- and updated (grr)
-
-2005-01-04 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/transactioninfo.py: don't add duplicates to the transaction
- info, no point.
-
-2004-12-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * rpmUtils/miscutils.py, yum/groups.py: apparently I needed more
- space in yum/groups.py :) fix for garbage strings in epoch field in
- stringToVersion()
-
-2004-12-14 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, output.py, yum/__init__.py, yum/groups.py: allow groups to
- take group.id's too not just group.names.
-
-2004-12-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * pullheaders.py: fix for signature checking in legacy yum-arch -
- closes rh bug 141758
-
-2004-12-06 Seth Vidal <skvidal at linux.duke.edu>
-
- * docs/yum.conf.5: proper yum.conf - thanks to Menno Smits
-
-2004-12-05 Seth Vidal <skvidal at linux.duke.edu>
-
- * rpmUtils/__init__.py: all the hdr pulling does so by using the hdr
- index in the rpmdb - big speed up for removes and updates
-
-2004-12-05 Seth Vidal <skvidal at linux.duke.edu>
-
- * callback.py, cli.py, output.py, yum/__init__.py, yum/depsolve.py,
- yum/packages.py, yum/transactioninfo.py: much of transactioninfo is
- implemented god does some of this need to be cleaned up, again. and
- why, just for fun, don't I make EVERYTHING take and return package
- objects?
-
-2004-12-02 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/__init__.py, yum/transactioninfo.py: - modified __init__.py to use transactioninfo - made most of the
- transactioninfo changes for cli - need to fix updates uses of it -
- modified getMember in transactioninfo.TransactionData to return all
- if none specified.
-
-2004-11-30 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/transactioninfo.py: typo fix in matchNaevr()
-
-2004-11-30 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/repos.py: cleaned up the config.py yum.conf output defaults
-
-2004-11-27 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: changelog edits
-
-2004-11-27 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum-daily.spec, yum.spec: update misc files to yum 2.1.12
-
-
-2004-11-27 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: typo in #! line
-
-2004-11-25 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: yum clean output fix - bug: 140872
-
-2004-11-25 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/config.py, yum/depsolve.py: fixes for installroot with
- logfiles and paths to repo.d dir fix for bug 281 at atrpms fix for
- bug 140832
-
-2004-11-24 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/config.py: prelim fixes for logfile and chroot paths
-
-2004-11-24 Seth Vidal <skvidal at linux.duke.edu>
-
- * bin/yum.py: try to catch keyboard interrupt earlier
-
-2004-11-24 Seth Vidal <skvidal at linux.duke.edu>
-
- * docs/yum.conf.5, yum/config.py: check in throttle and bandwidth
- config option patch from Menno Smits check in yum.conf.5 man page
- update from Menno Smits
-
-2004-11-24 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: remove --download-only option so it doesn't pass through
- the options check
-
-2004-11-19 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: minor change in logging level for post-transaction output.
-
-
-2004-11-19 Seth Vidal <skvidal at linux.duke.edu>
-
- * callback.py: minor logic change in patch for output in cron job.
-
-2004-11-17 Seth Vidal <skvidal at linux.duke.edu>
-
- * callback.py, cli.py: fix for outputting in cron job to cron emails
- - whoops fix for moving output when not on a tty.
-
-2004-11-12 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py, yum/repos.py: make it more reasonable to import
- yum as a module instead of running it directly.
-
-2004-11-12 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/transactioninfo.py: some nice, purty methods for the
- transactioninfo. Still not complete but getting closer
-
-2004-11-09 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: fix for generate-rss bug with 'recent' not specified
-
-2004-11-09 Seth Vidal <skvidal at linux.duke.edu>
-
- * rpmUtils/miscutils.py, yum/depsolve.py: check in patch to make
- output look prettier and more accurate for unresolveable dep
-
-2004-11-09 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/depsolve.py: traceback when both packages of conflict in the
- ts.
-
-2004-11-05 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/transactioninfo.py: more detail on what I need to do
-
-2004-11-03 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: fix for log file being executable - rh bug #137963
-
-2004-10-31 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/depsolve.py: fix for two different bugs: 1. yum
- install foo.i386 on an x86_64 machine 2. yum remove foo where two
- different packages require something from foo
-
-2004-10-31 Seth Vidal <skvidal at linux.duke.edu>
-
- * rpmUtils/arch.py: fix for noarch pkg installs.
-
-2004-10-29 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, output.py, yum/__init__.py: implement yum list obsoletes
- which outputs a nicer layout for obsoletes
-
-2004-10-29 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, rpmUtils/__init__.py, yum/__init__.py: - implement yum update /path/to/file.rpm - fix yum module so it
- won't import the rpmdb more than once
-
-2004-10-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * rpmUtils/updates.py: remove debug print output
-
-2004-10-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * rpmUtils/updates.py: I'm beginning to hate ia32e
-
-2004-10-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * rpmUtils/arch.py: one more ia32e fix - this code needs a testunit,
- badly.
-
-2004-10-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * rpmUtils/updates.py: fix for ia32e on updates
-
-2004-10-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * rpmUtils/arch.py: fix ia32e and iseries to be picked up as
- multilib arches.
-
-2004-10-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: Package is spelled with 2 As
-
-2004-10-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: Changelog updates
-
-2004-10-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum-daily.spec, yum.spec: version number changes
-
-2004-10-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * docs/yum.conf.5: doc updates for includepkgs
-
-2004-10-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py, yum/depsolve.py: make some of the error messages
- from the depsolver a little more verbose/clear
-
-2004-10-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: fix traceback when group specified to update or remove
- does not exist
-
-2004-10-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * etc/Makefile: Fix cron job perms
-
-2004-10-27 Seth Vidal <skvidal at linux.duke.edu>
-
- * repomd/packageSack.py: fix for list objects not offering an
- __iter__ method in python 2.2
-
-2004-10-25 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/depsolve.py: update out of conflict implemented - fixes bug
- 347
-
-2004-10-25 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/transactioninfo.py: minor doc changes to transactioninfo.py -
- need to finish fleshing out these classes
-
-2004-10-23 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/transactioninfo.py: make an unused file compile
-
-2004-10-23 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: output transaction info for confirmation from user when in
- debuglevel 1
-
-2004-10-23 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/config.py, yummain.py: fix for bug 344
-
-2004-10-22 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: implemented includepkgs for repositories
-
-2004-10-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/config.py: allow for #'s in mirrorlists as comments deal with
- blank lines more gracefully in mirrorlists
-
-2004-10-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * docs/yum.8: remove --downloadonly option, for now
-
-2004-10-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * rpmUtils/__init__.py: fix for erasure dep problem in bug 340
-
-2004-10-19 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: Check in the Changelog
-
-2004-10-19 Seth Vidal <skvidal at linux.duke.edu>
-
- * docs/yum.conf.5: more yum.conf updates
-
-2004-10-19 Seth Vidal <skvidal at linux.duke.edu>
-
- * docs/yum.conf.5: yum.conf update for gpgcheck
-
-2004-10-19 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum-daily.spec, yum.spec, yum/__init__.py: fixed problem
- if one repo had a broken groups file it would take out the whole
- process.
-
-2004-10-19 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/groups.py, yum/repos.py: minor pychecker catches
-
-2004-10-19 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/config.py: minor pychecker fix
-
-2004-10-19 Seth Vidal <skvidal at linux.duke.edu>
-
- * docs/yum.8: update man page
-
-2004-10-19 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, output.py, yummain.py: handle failurereport properly Fix
- for: 136178
-
-2004-10-19 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/config.py, yum/repos.py: now --disablerepo and --enablerepo
- work as you'd more or less expect them to work
-
-2004-10-18 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: Changelog for the moron-release
-
-2004-10-18 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum-daily.spec, yum.spec: look, I'm an idiot, and I left a
- local devel path in the binary 2.1.9 iteration
-
-2004-10-18 Seth Vidal <skvidal at linux.duke.edu>
-
- * bin/yum.py: damn it.
-
-2004-10-18 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: Changelog checkin
-
-2004-10-18 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum-daily.spec, yum.spec: update version number to 2.1.8
-
-2004-10-18 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: modified file name for gpgkeycheck caching
-
-2004-10-18 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: sort groups for grouplist
-
-2004-10-18 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/__init__.py: misc fixed pychecker found
-
-2004-10-18 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/__init__.py: add in a function that will check if the
- user has any gpg public keys installed in the rpmdb if the user has
- gpgcheck=1 set anywhere. If the user has it set and does not have
- any gpg keys installed it will error out and report a sensible
- message about how to solve it. If they do have keys installed it
- will save a file in cachedir so it won't have to make the check
- again. It's not intended to be a serious measure to stop abuse, but
- it will catch 90% of the people who have enabled gpgchecking w/o
- importing any keys
-
-2004-10-17 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, output.py, rpmUtils/transaction.py: implemented
- post-transaction report output - just a short format of what
- happened
-
-2004-10-17 Seth Vidal <skvidal at linux.duke.edu>
-
- * urlgrabber/grabber.py: checked in fix to yum-urlgrabber for bug
- 335
-
-2004-10-17 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/__init__.py: add clean metadata and clean cache
- functions remove garbage print output from makecache
-
-2004-10-17 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: stray period
-
-2004-10-17 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/config.py: minor string change for config error message
-
-2004-10-17 Seth Vidal <skvidal at linux.duke.edu>
-
- * callback.py, cli.py, output.py: few more callback clean ups tidy
- up some output in different debug levels
-
-2004-10-17 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: fix for install with localrpm package via 'install' not
- 'localinstall'
-
-2004-10-17 Seth Vidal <skvidal at linux.duke.edu>
-
- * callback.py, cli.py, output.py, rpmUtils/transaction.py: filelog
- functional
-
-2004-10-17 Seth Vidal <skvidal at linux.duke.edu>
-
- * urlgrabber/grabber.py: update urlgrabber to fix up a couple of
- problems, Thanks to Ryan for making these happen so quickly
-
-2004-10-17 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, output.py, yum/__init__.py, yum/depsolve.py: lots of
- output changes to make the output and callbacks prettier
-
-2004-10-16 Seth Vidal <skvidal at linux.duke.edu>
-
- * Makefile: modify makefile for transition from yum.sh -> yum.py in
- bin/
-
-2004-10-16 Seth Vidal <skvidal at linux.duke.edu>
-
- * bin/yum.py, bin/yum.sh: removing shell script which caused pain,
- adding python script that removes pain
-
-2004-10-16 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/__init__.py, yummain.py: Check in Fix for duke bug
- #323
-
-2004-10-15 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/__init__.py, yum/depsolve.py, yum/packages.py,
- yum/repos.py: implement a local package install mechanism you can
- now do: yum localinstall /path/to/a/file.rpm and it will install or
- update it depending on what should be done to it. you can also do:
- yum install /path/to/a/file.rpm some_package_from_a_repo and it
- will 'do the right thing' However, you will pay the performance
- penalty of importing the repository metadata if you do it w/install
-
-
-2004-10-15 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/mdcache.py: grouse around in mdcache some more to make it
- delete the memory it's holding. Ultimately to no avail.
-
-2004-10-15 Seth Vidal <skvidal at linux.duke.edu>
-
- * rpmUtils/oldUtils.py: fix for i18n import that doesn't exist
-
-2004-10-14 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/__init__.py, yum/mdcache.py, yum/repos.py, yummain.py: - make yum makecache just a little light - though clearly something
- is wrong with the garbage collection - change a few debug outputs
-
-2004-10-13 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: fix up usage()
-
-2004-10-13 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: Check in Changelog
-
-2004-10-13 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum-daily.spec, yum.spec: update version strings
-
-2004-10-13 Seth Vidal <skvidal at linux.duke.edu>
-
- * docs/yum.8: modifications to the yum man page
-
-2004-10-13 Seth Vidal <skvidal at linux.duke.edu>
-
- * docs/yum.8: checked in Gijs Hollestelle's updated yum man page
- Thanks!
-
-2004-10-13 Seth Vidal <skvidal at linux.duke.edu>
-
- * Makefile, bin/yum-arch, bin/yum.sh, yum-arch, yum.sh: move
- yum-arch and yum.sh into bin/ dir
-
-2004-10-13 Seth Vidal <skvidal at linux.duke.edu>
-
- * docs/yum-arch.8: add in yum-arch man page
-
-2004-10-13 Seth Vidal <skvidal at linux.duke.edu>
-
- * pullheaders.py: fix minor bug in pullheaders and add warning
- expression
-
-2004-10-13 Seth Vidal <skvidal at linux.duke.edu>
-
- * bin/yum: remove obsolete yum bin file
-
-2004-10-13 Seth Vidal <skvidal at linux.duke.edu>
-
- * Makefile, docs/Makefile, pullheaders.py, rpmUtils/__init__.py,
- rpmUtils/oldUtils.py, serverStuff.py, yum-arch, yum.spec: merge in
- yum-arch
-
-2004-10-13 Seth Vidal <skvidal at linux.duke.edu>
-
- * urlgrabber/__init__.py, urlgrabber/grabber.py,
- urlgrabber/mirror.py, urlgrabber/progress.py, yum/__init__.py,
- yum/config.py, yum/repos.py: added in new urlgrabber implemented
- timeout and fixed up changes for new urlgrabber checkfunc api
-
-2004-10-11 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, rpmUtils/__init__.py: implemented groupupdate and
- groupremove
-
-2004-10-11 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, rpmUtils/arch.py, yum/packages.py: fix situation with
- kernels of lesser archs getting installed on calls to install when
- they should really be 'update' calls.
-
-2004-10-09 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, output.py: yum generate-rss updates option added
-
-2004-10-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: clean up debug wording
-
-2004-10-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: partial implementation of groupinstall - need to clean up
- the yum install kernel problem w/older non-bestarch kernels
-
-2004-10-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, output.py: implemented groupinfo
-
-2004-10-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, output.py, yum/__init__.py, yum/repos.py: fix grouplist
- for nonroot users added yum makecache to setup all the metadata
- cache pickles.
-
-2004-10-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, output.py, yum/__init__.py: grouplist now works correctly
- - takes one argument 'hidden'
-
-2004-10-07 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: changelog update
-
-2004-10-07 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum-daily.spec, yum.spec: 2.1.6
-
-2004-10-07 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum.conf: removed stray yum.conf
-
-2004-10-07 Seth Vidal <skvidal at linux.duke.edu>
-
- * output.py, yum/__init__.py, yum/config.py, yum/packages.py: add
- showdupesfromrepos option to config - boolean if set then duplicate
- packages of different versions will be shown if unset then only the
- newest packages in a repository will be shown this only affects
- display it does not affect depresolution or other functions.
- defaults to 0
-
-2004-10-07 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/packages.py, yum/repos.py: mdcache import working and
- fixed a bug where the repomd.xml would be downloaded twice and
- imported twice.
-
-2004-10-06 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, repomd/packageObject.py, yum/mdcache.py, yum/packages.py,
- yum/repos.py: mdcache implemented. Need to write yum clean mdcache
-
-2004-10-05 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/packages.py: fleshed out some of the PrimaryEntry object
- parsing
-
-2004-10-05 Seth Vidal <skvidal at linux.duke.edu>
-
- * repomd/packageObject.py, yum/__init__.py, yum/mdcache.py,
- yum/packages.py, yum/repos.py: incomplete modifications to
- incorporate icon's pickle handler for metadata caching
-
-2004-10-04 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: whoops - last minute fix
-
-2004-10-04 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: update changelog for 2.1.5
-
-2004-10-04 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum-daily.spec, yum.spec: update to 2.1.5
-
-2004-10-04 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, output.py, yum/__init__.py: made yum list recent be sane
- and sensible
-
-2004-10-04 Seth Vidal <skvidal at linux.duke.edu>
-
- * yummain.py: remove a bunch of unused imports
-
-2004-10-04 Seth Vidal <skvidal at linux.duke.edu>
-
- * yummain.py: uncommented something that should not have been
- commented
-
-2004-10-04 Seth Vidal <skvidal at linux.duke.edu>
-
- * output.py, rpmUtils/updates.py, yum/__init__.py, yummain.py:
- explicitly delete all transaction set objects in unlock() to make
- sure we free up any lockers. It boggles my mind why this isn't
- caught by another item but <shrug>
-
-2004-10-03 Seth Vidal <skvidal at linux.duke.edu>
-
- * output.py, rpmUtils/__init__.py: fix for lists being > 80chars
- deleted all match iterators I create, just in case
-
-2004-10-01 Seth Vidal <skvidal at linux.duke.edu>
-
- * output.py, yum/__init__.py: - Fix for Bug 324 - when in caching-only mode and the header is not
- available then it would traceback - fix for typo in yum info
- function.
-
-2004-09-30 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/__init__.py, yum/groups.py: stubs for group functions
- in place cleaned up groupsetup so it's no longer importing metadata
- it doesn't, yet, need added a nosack option to doRepoSetup() so it
- will setup the repo dirs and get the repomd.xml but not download
- primary.xml.gz or import the metadata
-
-2004-09-29 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: updated changelog - call it 2.1.4
-
-2004-09-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, etc/yum.conf, yum-daily.spec, yum.spec: - label things as 2.1.4 - make the config file less stupid
-
-2004-09-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * output.py, rpmUtils/__init__.py, yum/depsolve.py: speed up erasure
- depresolution a little. mi.pattern() is slooooooooow
-
-2004-09-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py:
-
- ---------------------------------------------------------------------- finished yum provides - can be very slow on repomd search due to filelists
-
-2004-09-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/__init__.py, yum/packages.py: partial implementation
- of provides/whatprovides need to search rpmdb, too.
-
-2004-09-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: hopeful fix for the ts errors tuple pain
-
-2004-09-27 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/__init__.py, yummain.py: fix ctrl-c from users. If
- you've imported the rpmdb first then ctrl-c signal is grabbed by rpm
-
-
-2004-09-27 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: fix for stupid sigcheck error result strings bug #319
-
-2004-09-27 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/__init__.py: search rpmdb, too
-
-2004-09-27 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, output.py, yum/__init__.py, yum/packages.py, yummain.py:
- give search a callback for faster output added a KeyboardInterrupt
- exception to yummain to catch user ctrl-c'ing things
-
-2004-09-26 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, repomd/packageSack.py, yum/__init__.py: check in search
- function
-
-2004-09-26 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: fix for bug #318 - correct when no option narrowing option
- specified to yum list
-
-2004-09-24 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, output.py, yum/packages.py: new obsoletes/updates list
- output
-
-2004-09-24 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, output.py, yum/depsolve.py: implement a depsolve callback
-
-
-2004-09-23 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, output.py, rpmUtils/transaction.py, yum/__init__.py:
- potentional fix for rh bug# 133051 cleaned up list functions - a lot
- more generic now need to clean up obsoletes lists and refine recent
- metric.
-
-2004-09-23 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/repos.py: - fix for bug #314, check download md against checksum
-
-2004-09-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/__init__.py: partially completed abstraction of
- package list generation and display code.
-
-2004-09-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/config.py: fix for yum -c w/no file found
-
-2004-09-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: fix list bug in 'recent' changes
-
-2004-09-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py, yum/depsolve.py: solve issue with up attribute
- not existing when needed.
-
-2004-09-20 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, output.py, yum/__init__.py, yum/config.py, yum/misc.py: - begin rework of list functions - stub of depsolve progress
- callback - GenericHolder object in yum/misc.py - Make config's show
- up as attributes when re-set - remove src files from default
- searches/lookups
-
-2004-09-19 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, output.py, yum/__init__.py: make output into a class
- (abstract, really) to be inherited from for the base yum class for
- the cli make rss generation include a link
-
-2004-09-19 Seth Vidal <skvidal at linux.duke.edu>
-
- * repomd/packageSack.py: iterator method - untested
-
-2004-09-19 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum.sh: fix for the shell expanding globs
-
-2004-09-19 Seth Vidal <skvidal at linux.duke.edu>
-
- * output.py: clean up rss generation so it is a lot nicer on memory
- for output from lots of packages.
-
-2004-09-17 Seth Vidal <skvidal at linux.duke.edu>
-
- * rpmUtils/miscutils.py, yum/__init__.py, yum/depsolve.py,
- yum/packages.py: after much pain header downloading and checking
- work nicely package downloading and checking work nicely. especially
- cache verification
-
-2004-09-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * repomd/packageSack.py, yum/depsolve.py: make filelists.xml be
- imported from all repos if a file dep exists that does not match
- /etc/*, *bin/* or /usr/lib/sendmail.
-
-2004-09-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/transactioninfo.py: add transaction info class stubs - these
- will be used to store the transaction Info instead of the one from
- rpmUtils.
-
-2004-09-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/depsolve.py: put in stubs for depsolve callbacks
-
-2004-09-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * rpmUtils/miscutils.py, rpmUtils/updates.py, yum/__init__.py: fixed
- traceback on bad pkg in sigcheck fixed problem with available file
- also being installed and obsoleting something that is installed, as
- well. set debug mode on for updates parsing if debuglevel is > 5 in
- yum.
-
-2004-09-07 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, repomd/packageSack.py, yum/__init__.py: make indexes be
- built after the package exclusions have occurred speeds up excludes
- tremendously.
-
-2004-09-03 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog, cli.py, yum.spec: fix for reporting errors from
- transactions runs. updated changelog updated spec file
-
-2004-09-03 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog, cli.py, repomd/packageSack.py, yum/__init__.py,
- yum/depsolve.py, yum/packages.py: Large number of depsolver changes
- and fixes. Should be much more correct.
-
-2004-09-02 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog, cli.py, yum.spec: Couple more doc strings updated
- changelog brand this as 2.1.2 made isatty() work so outputting to a
- file doesn't show a bunch of garbage
-
-2004-09-02 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/__init__.py, yum/misc.py: yum clean implemented added
- a few explanatory output strings
-
-2004-09-02 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/depsolve.py: noticed I left out the gpl header
-
-2004-09-02 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/depsolve.py: probable fix for depresolution error - bug #290
-
-2004-09-01 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: iterate version and various clean ups in cli.py
-
-2004-09-01 Seth Vidal <skvidal at linux.duke.edu>
-
- * Makefile, yum.sh, yum.spec: - change base path to /usr/share/yum-cli for cli front end and to
- stop conflict with older yum .pyc files
-
-2004-09-01 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/Errors.py, yum/__init__.py, yum/groups.py,
- yum/repos.py: many modifications to form the basis for the groups to
- start working again
-
-2004-09-01 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/comps.py, yum/groups.py, yum/yumcomps.py: fix tab/space issue
- in comps.py move yumcomps.py to groups.py
-
-2004-09-01 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yummain.py: fixed traceback on unimplemented command made
- yum check-update work There is room for much improvement here
-
-2004-08-31 Seth Vidal <skvidal at linux.duke.edu>
-
- * INSTALL, README: update install and readme
-
-2004-08-31 Seth Vidal <skvidal at linux.duke.edu>
-
- * AUTHORS: add some people more needed, I'm sure
-
-2004-08-31 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: updated Changelog
-
-2004-08-31 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum.spec, yum/__init__.py: sigchecking is here
-
-2004-08-31 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum.spec: iterate release, silly
-
-2004-08-31 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum.spec: rm old .pyc files if they can be found in /usr/share/yum
- this to get rid of old cruft clogging up the works
-
-2004-08-31 Seth Vidal <skvidal at linux.duke.edu>
-
- * Makefile, etc/Makefile, etc/yum.console, etc/yum.pam, yum.spec:
- remove consolehelper dep from makefile remove consolehelper from
- makefile add yum.console and yum.pam files jeremy katz added to tree
- for consolehelper
-
-2004-08-31 Seth Vidal <skvidal at linux.duke.edu>
-
- * install-sh: removed install-sh b/c I'm a dumbass
-
-2004-08-31 Seth Vidal <skvidal at linux.duke.edu>
-
- * Makefile, docs/Makefile, etc/Makefile, repomd/Makefile,
- rpmUtils/Makefile, urlgrabber/Makefile, yum/Makefile: Add Makefiles
-
-
-2004-08-31 Seth Vidal <skvidal at linux.duke.edu>
-
- * Makefile.in, bin/Makefile.in, configure.in, docs/Makefile.in,
- etc/Makefile.in, po/Makefile.in: apply jeremy's makefile patches,
- removes configure stuff
-
-2004-08-31 Seth Vidal <skvidal at linux.duke.edu>
-
- * install-sh: need for configure
-
-2004-08-31 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum.sh: added yum.sh from Jeremy Katz's Patch
-
-2004-08-31 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum.spec, yum/depsolve.py, yum/packages.py, yum/repos.py: moved
- metadata to repomd
-
-2004-08-30 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/depsolve.py: comment a little more
-
-2004-08-30 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: if you find something that could be an update, when doing
- installs, pass it off to update to make sure it is.
-
-2004-08-30 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/depsolve.py, yum/repos.py: make caching mode/user mode
- work again - silly caches, tricks are for kids!
-
-2004-08-30 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, rpmUtils/transaction.py, yum/packages.py: update takes
- options now obsoletes should work better - a touch weird though.
-
-2004-08-30 Seth Vidal <skvidal at linux.duke.edu>
-
- * output.py, yum/packages.py: fixup yum info
-
-2004-08-30 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/repos.py: remove some functions that don't really do anything
-
-
-2004-08-30 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, output.py, yum/config.py, yum/depsolve.py: --rss-filename=
- to output the rss to a file default writes to yum-rss.xml in cwd
-
-2004-08-29 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, rpmUtils/miscutils.py, rpmUtils/transaction.py,
- yum/__init__.py, yum/config.py, yum/depsolve.py, yum/repos.py: - installroot now works - fix depsolving for filedeps in certain
- situations - clean up cruft in all sorts of places
-
-2004-08-29 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, repomd/packageObject.py, repomd/packageSack.py,
- rpmUtils/updates.py, yum/__init__.py: --obsoletes working fixed
- extras
-
-2004-08-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * output.py, yum/__init__.py, yum/depsolve.py: empty repository fix
- and clean up debug print's
-
-2004-08-27 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, rpmUtils/miscutils.py, yum/depsolve.py, yum/packages.py: - fix for erasure problem with multilib - added some extra debug
- information that will be handy later
-
-2004-08-25 Seth Vidal <skvidal at linux.duke.edu>
-
- * rpmUtils/__init__.py, rpmUtils/miscutils.py, yum/depsolve.py:
- erase resolves out non-pkg requirements for depsolving
-
-2004-08-23 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/depsolve.py, yum/repos.py: fix file:// urls for
- installs
-
-2004-08-23 Seth Vidal <skvidal at linux.duke.edu>
-
- * repomd/packageSack.py: fix up progress callback counter for other
- and filemd importing when packages have been deleted from
- packagesack.
-
-2004-08-23 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: additional output/debugging strings
-
-2004-08-23 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/config.py: - make a numrecent option in the yum.conf - refine the functionality
- of yum list recent (and hence generate-rss) a bit - The concept of
- what 'recent' means will need to be refined considerably right
- now it's pretty much a sort by file timestamp, not much more.
- it really should be something more related to relative age to system
- date. There is much room for refinement and anyone wishing to
- undertake that refinement is quite welcome to do so. :)
-
-2004-08-23 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: add debugging output make yum list (w/o any package
- narrowing option) work
-
-2004-08-23 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, rpmUtils/__init__.py, yum/packages.py: whitespace fix in
- rpmUtils fix docstring in yum/packages.py
-
-2004-08-23 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py, yum/config.py: - make excludes work - this might require some re-implementation as
- it currently removes the packageobject from the pkgSack. This is
- fine, but it takes time to do this. A couple of options: - simply
- make a list of excluded packageobjects and check that during
- listing and depresolution (this is kinda icky b/c we end up doing
- lots of checks throughout all of yum) - delete the objects from
- the pkgsack and add them to an excluded sack so we can query on
- them later.
-
-2004-08-23 Seth Vidal <skvidal at linux.duke.edu>
-
- * repomd/packageSack.py: - fixed exception in returnPackages() for calls to it with an
- empty/non-existent repoid - removed redundant method call
-
-2004-08-23 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/depsolve.py: removed wrongly named and redundant method call
-
-2004-08-22 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/depsolve.py: removed old function stubs
-
-2004-08-22 Seth Vidal <skvidal at linux.duke.edu>
-
- * output.py: - added guid to each package item. - more info to non-xhtml output -
- need to pass in repos object or figure another way to get valid
- link locations for packages.
-
-2004-08-22 Ryan Tomayko <rtomayko at naeblis.cx>
-
- * output.py: Fixed a few generateRSS bugs: - ChangeLog entries don't
- have dates. Removed from format. - Put a pre tag around changelog
- text in description. Readers that don't understand xhtml:body were
- stripping linear whitespace.
-
-2004-08-22 Ryan Tomayko <rtomayko at naeblis.cx>
-
- * output.py: Fixed bad indent (some lines were 2 spaces)
-
-2004-08-22 Ryan Tomayko <rtomayko at naeblis.cx>
-
- * output.py: First crack at implementing generate-rss command. I've
- been testing with: python yummain.py -c yum.conf -d 0
- generate-rss > yum.rss The generated file should be valid RSS 2.0.
- All required elements are present and there should be no chance of
- outputting ill-formed XML. Some other implementation notes of
- interest: * Item title's are set to the package's n-e.v-r.a *
- Item pubDate's are set to the package's buildtime. * The content
- for an item is the package's summary, followed by the
- description, followed by the changelog. * The ChangeLog for a
- package contains only the last three entries. Some notes for the
- future: * The entire RSS feed is being built up within a single
- libxml2 document. If we want to extend this to build arbitrarily
- large feeds, we may need to output each item as we go instead of
- waiting until the whole feed is built. * Might be nice to add
- an output file argument for convienience (-d 0 and redirecting
- stdout is slightly annoying). Should just work.
-
-2004-08-19 Seth Vidal <skvidal at linux.duke.edu>
-
- * callback.py, yum/repos.py: fix caching code for pkg download bug
- in callback on erasures
-
-2004-08-19 Seth Vidal <skvidal at linux.duke.edu>
-
- * rpmUtils/__init__.py, yum/depsolve.py, yum/packages.py,
- yummain.py: still more dep resolution fixes and now erasures should
- be significantly faster
-
-2004-08-19 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/depsolve.py: more dep fixes and a rather silly process
- ordering problem in doTransaction()
-
-2004-08-19 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, rpmUtils/__init__.py, rpmUtils/transaction.py,
- yum/__init__.py, yum/depsolve.py: more noise on output note to some
- functions in rpmUtils depresolution fixes
-
-2004-08-18 Seth Vidal <skvidal at linux.duke.edu>
-
- * callback.py, cli.py, output.py, rpmUtils/__init__.py,
- rpmUtils/transaction.py, yum/__init__.py, yum/depsolve.py,
- yum/packages.py, yummain.py: installations work erasures work - but
- some of the depresolution is wrong. rpm callback needs to be cleaned
- up for output.
-
-2004-08-14 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py, yum/depsolve.py: speed up the depsolver a bit
-
-2004-08-13 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, output.py, repomd/packageSack.py, yum/__init__.py,
- yum/depsolve.py, yum/repos.py, yummain.py: - cleaned up the failover on download - added intelligence to the
- depsolver for multiple equal deps - much more needed, though. -
- added an addPkg() method to ListPackageSack Class
-
-2004-08-12 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, urlgrabber/grabber.py, urlgrabber/mirror.py, yum/repos.py:
- fix up the failure callback merge in newest urlgrabber + a fix
-
-2004-08-12 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, rpmUtils/__init__.py, yum/packages.py: fix how the
- available, update and install lists are handled as package objects
-
-2004-08-11 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, output.py, repomd/packageSack.py, yum/config.py,
- yum/repos.py: move around the cache and callback setup fix a typo in
- packageSack.py - thanks to first, not so functioning, try at the
- failover callback
-
-2004-08-11 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/config.py, yum/repos.py: download callback is working
- now.
-
-2004-08-10 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/config.py, yum/repos.py: cleaned up how 'cache' is
- handled for all repos and config
-
-2004-08-09 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, urlgrabber/__init__.py, urlgrabber/grabber.py,
- urlgrabber/progress.py, yum/__init__.py, yum/misc.py, yum/repos.py:
- merge in latest urlgrabber fix up checksum routine (hahhah) make
- downloads work at all
-
-2004-08-06 Seth Vidal <skvidal at linux.duke.edu>
-
- * repomd/packageSack.py, yum/Errors.py, yum/__init__.py,
- yum/misc.py, yum/repos.py: downloader work
-
-2004-07-30 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, output.py, repomd/packageObject.py,
- repomd/packageSack.py, yum/__init__.py, yum/repos.py: clean up rss
- generation, clear up some sillyness with callback setup for
- repository, fix code for importing non-primary metadata, fix double
- line output for metadata import callback
-
-2004-07-27 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, output.py, repomd/packageObject.py, yum/__init__.py,
- yum/repos.py: found bug in the import packageObject parseSimple()
- method - empty objects, not pretty printed were erroring on
- importing.
-
-2004-07-27 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, output.py, yum/packages.py, yum/repos.py: list/info
- functions in places that make more sense. need to write generate-rss
- function and import changelog metadata
-
-2004-07-26 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, output.py, yum/packages.py: check in for temp changes in
- list code and packages classes mostly to preserve changes so hd
- doesn't crash :)
-
-2004-07-24 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/__init__.py, yum/packages.py, yum/repos.py:
- modifications for the Yum*Packages classes
-
-2004-07-24 Seth Vidal <skvidal at linux.duke.edu>
-
- * bootloadercfg.py, checkbootloader.py, clientStuff.py, grubcfg.py,
- iutil.py, lilo.py, lilocfg.py, nevral.py, pkgaction.py,
- posts/bootloadercfg.py, posts/checkbootloader.py, posts/grubcfg.py,
- posts/iutil.py, posts/lilo.py, posts/lilocfg.py,
- posts/up2datetheft.py, up2datetheft.py: remove old and move things
- into better locations
-
-2004-07-22 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: process for part of the doTransaction
-
-2004-07-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: yum list recent - list the most recent 14 times of
- packages.
-
-2004-07-13 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yummain.py: made list look purty commented out what
- doTransaction() should do made all the returns match for main()
-
-2004-07-12 Seth Vidal <skvidal at linux.duke.edu>
-
- * repomd/packageSack.py, yum/depsolve.py, yum/packages.py: more
- depsolving goodness
-
-2004-07-11 Seth Vidal <skvidal at linux.duke.edu>
-
- * repomd/packageSack.py, rpmUtils/transaction.py, yum/depsolve.py:
- more working-ness in depsolve, onto erase and update actions
-
-2004-07-11 Seth Vidal <skvidal at linux.duke.edu>
-
- * output.py, rpmUtils/__init__.py, rpmUtils/transaction.py,
- yum/depsolve.py, yum/packages.py: more depresolution changes
-
-2004-07-09 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/depsolve.py: ...
-
-2004-07-09 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/__init__.py, yum/depsolve.py, yum/packages.py: playing
- with more things for the depsolver
-
-2004-07-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * repomd/packageObject.py, yum/depsolve.py, yummain.py: clean it up
- and dump out some results.
-
-2004-07-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/__init__.py, yum/depsolve.py, yum/repos.py: made
- depsolving a subclass of the yum base class made use of a method
- there in the list functions more hijinks ensue
-
-2004-07-07 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, rpmUtils/transaction.py: on our way to the finish line
- sorta
-
-2004-07-06 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: addendum for something to fix
-
-2004-07-06 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, rpmUtils/arch.py, rpmUtils/miscutils.py, yum/packages.py:
- this should parse out the right arch/ver to use on installs when
- multiples are available.
-
-2004-06-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: ignore src.rpms, for now.
-
-2004-06-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: more fun with installPkgs - it now produces reasonable
- lists of packages to be installed, based on match
-
-2004-06-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * yummain.py: flesh out most of the primary calling function
-
-2004-06-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * rpmUtils/__init__.py: correct returnTupleByKeyword method
-
-2004-06-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: change name from doTransaction to
- buildTransaction (for all the setup suff before the depsolve)
-
-2004-06-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/packages.py: fix some minor bugs
-
-2004-06-25 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py, yum/depsolve.py, yum/packages.py: do more work
- fleshing out for depsolve
-
-2004-06-25 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/config.py: make it possible for conf file to be relative path
- on command line option
-
-2004-06-25 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: added commands for yum update
-
-2004-06-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, rpmUtils/__init__.py, yum/misc.py, yum/packages.py: add
- misc to yum for unique() and eventually other functions partially
- implemented cli parsing for installing packages
-
-2004-06-18 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: whoops, one tab off
-
-2004-06-18 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: make returns work for listPkgs and setup stub for
- installPkgs
-
-2004-06-18 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/repos.py: make dirs when setting up repos
-
-2004-06-07 Seth Vidal <skvidal at linux.duke.edu>
-
- * repomd/packageObject.py, repomd/packageSack.py: xmlReader based
- package import - should be about 25% faster
-
-2004-06-01 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: made the output function more sensible and less uselessly
- repetetive need to make it use a package object but first I must
- make the package objects for installed packages
-
-2004-06-01 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: small clean up in yum list available
-
-2004-06-01 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, rpmUtils/__init__.py: convert all evr items to strings
- when pulling from the rpmdb make yum list extras work
-
-2004-06-01 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: refined list options, made list sorting work, add case
- sensitivity as an option to the package search
-
-2004-05-30 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/repos.py: catch error if failed to get/import metadata
- xml files
-
-2004-05-29 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, repomd/repoMDObject.py, yum/__init__.py, yum/repos.py:
- downloads of repomd.xml works again - fix the local file use for
- caches.
-
-2004-05-29 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yum/__init__.py: look, look, progress bars
-
-2004-05-26 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, repomd/packageObject.py, rpmUtils/__init__.py,
- yum/__init__.py, yum/config.py, yum/packages.py, yum/repos.py,
- yummain.py: - much of yum list - test out the new classes - lots of places to
- work on
-
-2004-05-12 Seth Vidal <skvidal at linux.duke.edu>
-
- * rpmUtils/arch.py, rpmUtils/miscutils.py, rpmUtils/transaction.py:
- apply x86_64 changes to arch.py from rhpl add methods to
- TransactionWrapper from real ts a couple of useful string functions
-
-
-2004-05-03 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: Made the YumBase class a lot more like a base
- class - added in setup methods for the core of the yum
- infrastructure.
-
-2004-05-03 Seth Vidal <skvidal at linux.duke.edu>
-
- * yummain.py: cleaned out all the useless logic and flow garbage in
- main()
-
-2004-05-03 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: fleshed out useful methods for initial setup of yum
- 'space'
-
-2004-05-02 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/repos.py: useless checkin
-
-2004-05-02 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/depsolve.py: proof of concept for the new metadata dep
- resolution. Need to take nevral.py and convert it to: 1. finding
- it's own suggests 2. resolving via new metadata for archs
-
-2004-05-02 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/__init__.py: restructure locks with that base class
-
-2004-05-02 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py: all new cli base class for doing all the serious work
-
-2004-05-02 Seth Vidal <skvidal at linux.duke.edu>
-
- * yummain.py: restructure and clean up for new base class for the
- cli
-
-2004-04-25 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/packages.py: new packages.py file for YumPackage class
-
-2004-04-25 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, rpmUtils/transaction.py, yum/depsolve.py, yum/repos.py,
- yummain.py: made the transaction.TransactionWrapper support
- iterating over the rpm.ts to extract transaction elements made new
- YumPackage class which subclasses packageObject.RpmXMLPackageObject
- - need a nicer getHeader() function and the repos.get() function
- needs to handle more of urlgrabbers handling - the ts for
- depsolving is now populateable w/o any heavy lifting. should sit
- down tonight and do the cli parsing f'real and populate the ts,
- f'real.
-
-2004-04-22 Seth Vidal <skvidal at linux.duke.edu>
-
- * urlgrabber/byterange.py, urlgrabber/grabber.py,
- urlgrabber/keepalive.py, urlgrabber/mirror.py,
- urlgrabber/progress.py, yum/repos.py, yummain.py: imported new
- urlgrabber fleshed out the metadata retrieval and checksumming
- routines.
-
-2004-04-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/depsolve.py: initial cut at depsolve - nothing working yet but
- the populated ts is a good start needs getHeader function and
- ultimately that function needs to go somewhere tidier - but it is a
- convolution of multiple parts of yum so I'm not sure _ where_ yet.
-
-2004-04-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * rpmUtils/__init__.py, rpmUtils/transaction.py, yum/repos.py: added
- a getIndexesByKeywords() function to rpmUtils/__init__.py - to grab
- the rpmdb index based on pkgtup - to help with erasures added
- dump() and change() methods to the transaction.TransactionData
- class to expedite importing that data to the ts modifications to
- yum repos for urlgrabbing
-
-2004-04-16 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yummain.py: some clean ups of the cli code and the
- ordering of the code
-
-2004-04-11 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, rpmUtils/transaction.py, yummain.py: - yummain filled with cruft for testing - added parsing of packages
- for matching: name name.arch name-ver-rel.arch name-ver-rel
- name-ver epoch:name-ver-rel.arch and wildcards of the above
-
-2004-04-07 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, yummain.py: cli.parseCommands() bugfix getting correct
- data back from the packageSack seems reliable now :)
-
-2004-04-05 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, output.py, rpmUtils/transaction.py, rpmUtils/updates.py,
- yummain.py: output - added - for output from command line cli -
- split out the output from the input parsing transaction - added some
- functions for the TransactionData class updates - fixed
- getOthersList() yummain - just temporarily made it list all updates
-
-
-2004-04-01 Seth Vidal <skvidal at linux.duke.edu>
-
- * yumlock.py: kill yumlock from main now in yum/__init__.py
-
-2004-04-01 Seth Vidal <skvidal at linux.duke.edu>
-
- * repomd/packageSack.py, yummain.py: packageSack.py - added __len__
- method to PackageSack Class - added delPackage()
- method, too yummain.py - used __len__ method of PackageSack
-
-2004-03-29 Seth Vidal <skvidal at linux.duke.edu>
-
- * rpmUtils/updates.py: updates call fix - when you remove an entry
- you need to blank the key, as well.
-
-2004-03-29 Seth Vidal <skvidal at linux.duke.edu>
-
- * cli.py, clientStuff.py, rpmUtils/transaction.py,
- rpmUtils/updates.py, yum/repos.py, yummain.py: added cli.py to store
- all the output to the command-line functions and parsing of the
- command line options updated rpmUtils from cvs pruned
- clientStuff.py - this file will eventually vanish, I think.
- yummain.py now only has a main function in it.
-
-2004-03-29 Seth Vidal <skvidal at linux.duke.edu>
-
- * rpmUtils/miscutils.py, rpmUtils/tests/test.py,
- rpmUtils/tests/updates-test.py, rpmUtils/transaction.py,
- rpmUtils/updates.py: update the rpmUtils module from its cvs
-
-2004-03-26 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/repos.py, yummain.py: added two functions to repo and repos
- classes shuffled around init order in main() in yummain.py need to
- go through and work out all the methods I need to the rpmdb and
- metadata classes to make searching easier also need to go through
- and move the cli option parsing to clientStuff.py and make a routine
- to parse the package arguments and match them out to things in our
- lists.
-
-2004-03-22 Seth Vidal <skvidal at linux.duke.edu>
-
- * repomd/packageSack.py, rpmUtils/updates.py, yum/Errors.py,
- yum/__init__.py, yum/config.py, yum/repos.py, yummain.py: this is a
- temporary place with lots of debug output, deal. :) yummain.py -
- imports local cached xml metadata, prints out some interesting info
- metadata/packageSack.py - added a simplePkgList() method, need to
- clean this up a lot and fix del() then merge it backover to the
- metadata cvs rpmUtils/updates.py - remove arbitrary print statements
- - merge back, as well yum/Errors.py - New LockError yum/__init__.py
- - base class, lock functions yum/config.py - pushed progress object
- to repos class - something prettier needs to be done yum/repos.py -
- made it deal with packageSacks and repositories - needs to take
- progress objects, optionally at instantiation.
-
-2004-03-22 Seth Vidal <skvidal at linux.duke.edu>
-
- * urlgrabber/mirror.py: add mirror.py
-
-2004-03-22 Seth Vidal <skvidal at linux.duke.edu>
-
- * urlgrabber/__init__.py, urlgrabber/byterange.py,
- urlgrabber/byterangetests.py, urlgrabber/grabber.py,
- urlgrabber/grabbertests.py, urlgrabber/keepalive.py,
- urlgrabber/setup.py: update to newest urlgrabber
-
-2004-03-20 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/repos.py: - remove failover stuff as it is handled by mirrorgroups now, need
- to deal with repo.failed - added in repomd.xml handling
-
-2004-03-18 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/config.py: whoops, forgot to save
-
-2004-03-18 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/config.py, yum/repos.py: misc things for the
- urlgrabber/mirrorgroup changeover. dumping failover to urlgrabber
- MirrorGroups
-
-2004-03-18 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/repos.py: useless stubs but I wanted to check it in before my
- disk crashed
-
-2004-03-18 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/config.py: fix the mirrorlist pull for up2date-style
- mirrorlists. this means $ARCH == $BASEARCH
-
-2004-03-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/config.py: dumbass typo - failovermethod
-
-2004-03-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/config.py: add bandwidth, throttle, keepalive, retries and
- gpgcheck to the options that can be set globally to map to all
- repositories where it is not set.
-
-2004-03-07 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/config.py, yum/repos.py: for: gpgcheck, proxy, proxy_username,
- proxy_password and keepalive, if the setting is set under [main] but
- not under the repo then the setting in [main] is the default for the
- setting in the repo.
-
-2004-03-07 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/config.py: make mirrorlist= in urls work make $arch,
- $basearch, $releasever and $YUM0-9 case insensitive matches
-
-2004-03-06 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/config.py: docstring updates
-
-2004-03-06 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py, pkgaction.py, rpmUtils/transaction.py,
- transactions.py, txn-main.py, yummain.py: lots of clean ups and
- touches - mostly deletions, truth be told
-
-2004-03-06 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/config.py, yum/repos.py: added reposdir (ie: /etc/yum.repos.d)
- support to config processing - it looks for *.repo in the config
- variable reposdir path processes each one out using the include=
- options then reads them in as repositories
-
-2004-03-05 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/config.py, yum/repos.py: fixes to repos from the other night's
- changes separated out the repository parsing code into a method of
- config - now it should be easier to do the yum.repos.d
-
-2004-02-20 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/yumcomps.py: remove rpm and ts requirement from yumcomps.py -
- just needs a package tuple list, now.
-
-2004-02-20 Seth Vidal <skvidal at linux.duke.edu>
-
- * rpmUtils/arch.py, rpmUtils/updates.py, yum/config.py,
- yum/repos.py: updates.py: finished obsoletes code arch.py: added
- getBestArch() and changed getBaseArch() config.py: fixed up baseurl
- lists, added stubs for mirror list handling repos.py: added
- repos.delete() function
-
-2004-02-19 Seth Vidal <skvidal at linux.duke.edu>
-
- * rpmUtils/miscutils.py, rpmUtils/tests/test.py,
- rpmUtils/updates.py: obsoletes code and obsoletes testing
-
-2004-02-18 Seth Vidal <skvidal at linux.duke.edu>
-
- * rpmUtils/updates.py: it might not be obvious right away, but I'm
- an idiot. when you're iterating over a list, it's a good idea to NOT
- remove items from that list lest you wish to truncate your results
-
-2004-02-17 Seth Vidal <skvidal at linux.duke.edu>
-
- * rpmUtils/updates.py: mindboggling simple functions added FIXME to
- where I need to do work
-
-2004-02-17 Seth Vidal <skvidal at linux.duke.edu>
-
- * rpmUtils/arch.py, rpmUtils/tests/test.py, rpmUtils/updates.py:
- check in some testing code for rpmUtils.updates
-
-2004-02-17 Seth Vidal <skvidal at linux.duke.edu>
-
- * urlgrabber/LICENSE, urlgrabber/README, urlgrabber/__init__.py,
- urlgrabber/byterange.py, urlgrabber/byterangetests.py,
- urlgrabber/grabber.py, urlgrabber/grabbertests.py,
- urlgrabber/keepalive.py, urlgrabber/progress.py,
- urlgrabber/setup.py, yum/rpmUtils.py: added urlgrabber in the right
- place removed old rpmUtils
-
-2004-02-17 Seth Vidal <skvidal at linux.duke.edu>
-
- * repomd/__init__.py, repomd/mdErrors.py, repomd/mdUtils.py,
- repomd/packageObject.py, repomd/packageSack.py,
- repomd/repoMDObject.py, repomd/test.py, rpmUtils/__init__.py,
- rpmUtils/arch.py, rpmUtils/miscutils.py, rpmUtils/oldUtils.py,
- rpmUtils/transaction.py, rpmUtils/updates.py, yum/repos.py,
- yummain.py: create most of the rpmUtils new updates class import the
- metadata stuff for now cleanups to yummain and repos much more to go
-
-
-2004-02-12 Seth Vidal <skvidal at linux.duke.edu>
-
- * yumlock.py: do it 'right'
-
-2004-02-12 Seth Vidal <skvidal at linux.duke.edu>
-
- * yumlock.py: fix for locale issue with lockfile exception check
-
-2004-02-04 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/config.py, yum/repos.py: clean up some comments and > 80 char
- lines
-
-2004-02-02 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/repos.py: comment about handling urls and $vars in the
- Repository Class
-
-2004-02-02 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/config.py, yum/failover.py, yum/repos.py: modified config for
- new repos.RepoStorage and repos.Repository Classes modified failover
- to meet new repository class add repos.py
-
-2004-01-30 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum/config.py, yummain.py: rename things in the config.py methods
- and objects to talk about repos not servers (might as well do it
- now) clean up and expan cli/arg parsing
-
-2004-01-29 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py, yum/config.py: clean out clientStuff of old,
- crufty functions add obsoletes boolean to config
-
-2004-01-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * config.py: removed config.py - now on yum/config.py
-
-2004-01-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * Makefile.in, archwork.py, bin/Makefile.in, bin/yum-arch,
- callback.py, clientStuff.py, comps.py, docs/Makefile.in,
- docs/yum-arch.8, failover.py, i18n.py, install-sh, keepalive.py,
- logger.py, mkinstalldirs, nevral.py, pkgaction.py, po/pygettext.py,
- po/ru.po, po/yum.pot, pullheaders.py, py-compile, rpmUtils.py,
- serverStuff.py, urlgrabber.py, yum/Errors.py, yum/__init__.py,
- yum/archwork.py, yum/comps.py, yum/config.py, yum/failover.py,
- yum/logger.py, yum/rpmUtils.py, yum/yumcomps.py, yumcomps.py,
- yummain.py: - deleted all the cruft for yum-arch - moved all the things that
- will be library modules into yum/ - updated makefiles - if this
- builds and works it would be an absolute miracle.
-
-2003-12-05 Seth Vidal <skvidal at linux.duke.edu>
-
- * docs/yum.conf.5: doc typo
-
-2003-11-19 Seth Vidal <skvidal at linux.duke.edu>
-
- * bin/yum-arch: fix from rtomayko - fixes change in call for
- pullheaders.main()
-
-2003-11-15 Seth Vidal <skvidal at linux.duke.edu>
-
- * keepalive.py: patch for python 2.3
-
-2003-10-30 Seth Vidal <skvidal at linux.duke.edu>
-
- * config.py: add kernel-source to installonlypkgs make the lists
- take comma or space or \n or tab separation
-
-2003-10-25 Seth Vidal <skvidal at linux.duke.edu>
-
- * pullheaders.py, serverStuff.py: port --exclude for yum-arch
- forward to HEAD
-
-2003-10-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * bin/yum, yumlock.py, yummain.py: apply locking patches to HEAD
-
-2003-10-15 Seth Vidal <skvidal at linux.duke.edu>
-
- * config.py: merging Ryan Tomayko's include= patch for the config
- file
-
-2003-10-15 Seth Vidal <skvidal at linux.duke.edu>
-
- * archwork.py, clientStuff.py, config.py, docs/yum.8,
- docs/yum.conf.5, etc/yum.init, etc/yum.logrotate, nevral.py,
- pkgaction.py, rpmUtils.py, yummain.py: merge all of 2.0.X changes
- back into head
-
-2003-10-15 Seth Vidal <skvidal at linux.duke.edu>
-
- * keepalive.py: one more clean up
-
-2003-10-15 Seth Vidal <skvidal at linux.duke.edu>
-
- * po/Makefile.in, po/pygettext.py, po/ru.po, po/yum.pot: fix yum
- translation files from the cvs shuffle
-
-2003-10-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * comps.py, depchecktree.py, failover.py, i18n.py,
- progress_meter.py, rpmUtils.py, yumcomps.py: adds, deletes, all a
- happy merge
-
-2003-10-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * transactions.py, txn-main.py, yum-template.xml: add the new files
-
-
-2003-10-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum-7.x.spec, yum-daily-7x.spec: delete things that don't exist
- anymore
-
-2003-10-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog, Makefile.in, README, TODO, archwork.py, bin/yum,
- bootloadercfg.py, callback.py, checkbootloader.py, clientStuff.py,
- config.py, configure.in, depchecktree.py, docs/yum-arch.8,
- docs/yum.8, docs/yum.conf.5, etc/Makefile.in, etc/yum.conf,
- etc/yum.init, grubcfg.py, iutil.py, lilocfg.py, nevral.py,
- pkgaction.py, pullheaders.py, serverStuff.py, up2datetheft.py,
- yum-daily.spec, yum.conf, yum.spec, yummain.py: merge yum-2_1 branch
- to become HEAD begin to 'correct' how cvs is done so it matches the
- rest of the world
-
-2003-09-18 Seth Vidal <skvidal at linux.duke.edu>
-
- * docs/yum.8: doc typo fix old-headers->oldheaders
-
-2003-09-18 Seth Vidal <skvidal at linux.duke.edu>
-
- * yummain.py: typo in --help
-
-2003-09-10 Seth Vidal <skvidal at linux.duke.edu>
-
- * docs/yum.conf.5: argh - dumb typo in manpage fixed
-
-2003-09-09 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: official 1.0.3 tagging
-
-2003-09-09 Seth Vidal <skvidal at linux.duke.edu>
-
- * configure.in, yum-7.x.spec, yum.spec: update to make 1.0.3
-
-2003-09-09 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: completely check in files <sigh>
-
-2003-09-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * configure.in, yum-7.x.spec, yum.spec: edits for version number
- 1.0.2
-
-2003-08-31 Seth Vidal <skvidal at linux.duke.edu>
-
- * Makefile.in, etc/Makefile.in, yum-daily-7x.spec, yum-daily.spec:
- added yum-daily spec files, fixed up makefiles for them
-
-2003-08-31 Seth Vidal <skvidal at linux.duke.edu>
-
- * urlgrabber.py: typo in urlgrabber
-
-2003-08-25 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py, config.py: exactarch was never being checked for
- in the config file - so the exactarch setting was doing exactly
- nothing. exactly :) fixed - thanks to frank costanza for pointing
- this out.
-
-2003-07-28 Michael Stenner <mstenner at linux.duke.edu>
-
- * urlgrabber.py: Dropped in the new urlgrabber from the yum-2
- branch. Not much has been added for yum-1 (user-agent support has)
- but the two versions of urlgrabber are the same again.
-
-2003-07-28 Michael Stenner <mstenner at linux.duke.edu>
-
- * clientStuff.py: Modified to push yum version into urlgrabber for
- use in user-agent. This happens at import.
-
-2003-07-17 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py: catch a zlib.error - bug #71
-
-2003-07-03 Seth Vidal <skvidal at linux.duke.edu>
-
- * docs/yum.8, docs/yum.conf.5: updated docs for tolerant mode
-
-2003-07-03 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py, config.py, pkgaction.py, yummain.py: add in
- tolerant mode for 1.0/rpm 4.0.4 branch
-
-2003-05-31 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog, yummain.py: make docs consistent
-
-2003-05-20 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog, configure.in, yum-7.x.spec, yum.conf, yum.spec: mark as
- 1.0.1 update changelog update spec files update silly conf file
-
-2003-05-20 Seth Vidal <skvidal at linux.duke.edu>
-
- * lilocfg.py, pkgaction.py, translate.py: pkgaction: catch lilo test
- error more gracefully lilocfg: fix s/up2date/yum/ translate: fix
- s/up2date/yum/ - those last two from D. Burcaw's patches
-
-2003-05-11 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py:
-
- ---------------------------------------------------------------------- disable disk space check if there is nothing is nothing to be installed.
-
-2003-05-09 Seth Vidal <skvidal at linux.duke.edu>
-
- * docs/yum.conf.5: document it
-
-2003-05-09 Seth Vidal <skvidal at linux.duke.edu>
-
- * yummain.py: import rpm needed in yummain (boggle)
-
-2003-05-09 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py, yummain.py: fixing up the ignore disk space check
-
-
-2003-05-09 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py: typo
-
-2003-05-09 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py, config.py: ignore disk space check make disk check
- error codes not suck
-
-2003-05-06 Seth Vidal <skvidal at linux.duke.edu>
-
- * nevral.py: space off
-
-2003-05-06 Seth Vidal <skvidal at linux.duke.edu>
-
- * nevral.py: fixing some depresolution bugs
-
-2003-04-29 Seth Vidal <skvidal at linux.duke.edu>
-
- * nevral.py: potential fix for remove error
-
-2003-04-29 Seth Vidal <skvidal at linux.duke.edu>
-
- * serverStuff.py: need to import types to do that
-
-2003-04-29 Seth Vidal <skvidal at linux.duke.edu>
-
- * serverStuff.py: depcheck update to deal with bad headers
-
-2003-04-29 Seth Vidal <skvidal at linux.duke.edu>
-
- * pullheaders.py: make the log output suck less
-
-2003-04-29 Seth Vidal <skvidal at linux.duke.edu>
-
- * pullheaders.py: this should be outputting more things
-
-2003-04-29 Seth Vidal <skvidal at linux.duke.edu>
-
- * pullheaders.py: no more perl for you young man.
-
-2003-04-29 Seth Vidal <skvidal at linux.duke.edu>
-
- * pullheaders.py: make it output more correct things
-
-2003-04-29 Seth Vidal <skvidal at linux.duke.edu>
-
- * pullheaders.py, serverStuff.py: make yum-arch act sane if it
- encounters a non-rpm with a .rpm extension
-
-2003-04-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * bin/yum, bin/yum-arch: these need to reference /usr/share/yum not
- /usr/lib/yum anymore
-
-2003-04-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * Makefile.in, yum-7.x.spec, yum.spec: updated Makefile for /usr/lib
- -> /usr/share updated spec files
-
-2003-04-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * etc/yum.conf: conf file now has $options
-
-2003-04-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * docs/yum.conf.5: updated docs for: $YUM0-$YUM9 $releasever $arch,
- $basearch commands= distroverpkg= file:// support
-
-2003-04-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * nevral.py: more fixes
-
-2003-04-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py: rpmloc not updated
-
-2003-04-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * nevral.py: setlocalhdrpath needed
-
-2003-04-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * urlgrabber.py: modifications to make it work with urllib under
- 1.5.2
-
-2003-04-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * Makefile.in, urlgrabber.py: added urlgrabber and Makefile.in
- updates to include it
-
-2003-04-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py, config.py: file:// support and urlgrabber
-
-2003-04-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * nevral.py: catch problems that would eventually show up in the
- depresolution code - thanks to pychecker
-
-2003-04-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * config.py: and more cleanups
-
-2003-04-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * config.py: fix useless variables that were created
-
-2003-04-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py: need to include types
-
-2003-04-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py, pullheaders.py: fix up pullheaders to correct for
- int in labelCompare
-
-2003-04-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * checkbootloader.py: backport of checkbootloader.py too
-
-2003-04-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py: only download archs for your architecture
-
-2003-04-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * nevral.py: ok, well, so - we need that db :)
-
-2003-04-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * nevral.py: fix fix fix - no db to delete
-
-2003-04-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * nevral.py: merge back the 2.x depresolution - much cleaner
-
-2003-04-20 Seth Vidal <skvidal at linux.duke.edu>
-
- * yummain.py: allow empty command fields
-
-2003-04-20 Seth Vidal <skvidal at linux.duke.edu>
-
- * config.py, yummain.py: backport: commands= $YUM0-9 options clean
- up regex use in config.py
-
-2003-03-22 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py, yummain.py: Comments put in for diskspace check
-
-2003-03-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * nevral.py: fixing archwork callback for zero length arch list
-
-2003-03-17 Seth Vidal <skvidal at linux.duke.edu>
-
- * pkgaction.py: modification to upgrade code testing
-
-2003-03-17 Seth Vidal <skvidal at linux.duke.edu>
-
- * config.py: close out the db when I'm done
-
-2003-03-17 Seth Vidal <skvidal at linux.duke.edu>
-
- * config.py: for real this time
-
-2003-03-17 Seth Vidal <skvidal at linux.duke.edu>
-
- * config.py: make distroverpkg work
-
-2003-03-17 Seth Vidal <skvidal at linux.duke.edu>
-
- * config.py: ooo - look - reading the code you copy and paste from
- elsewhere what a novel idea!
-
-2003-03-17 Seth Vidal <skvidal at linux.duke.edu>
-
- * config.py: and again - the right variables are handy
-
-2003-03-17 Seth Vidal <skvidal at linux.duke.edu>
-
- * config.py: helps if you define the right variable
-
-2003-03-17 Seth Vidal <skvidal at linux.duke.edu>
-
- * config.py: config variables in conf file - first pass
-
-2003-03-16 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py, pkgaction.py: typos
-
-2003-03-16 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py, pkgaction.py, yummain.py: first check-in for new
- upgrade with arguments
-
-2003-03-14 Seth Vidal <skvidal at linux.duke.edu>
-
- * pkgaction.py: misc info on what to write tomorrow remember -
- useful if we can get more fun things to list out of this like a list
- upgrades - maybe
-
-2003-03-14 Seth Vidal <skvidal at linux.duke.edu>
-
- * pkgaction.py: ugh things to fix: 1. obsoletes need to be handled
- if pkgx obsoletes pkgy AND pkgz 2. vice versa - if pkgx is obsoleted
- by pkgy and pkgz which to we install? 3. continue the obsoletes
- handling in general for yum upgrade [pkgs]
-
-2003-03-14 Seth Vidal <skvidal at linux.duke.edu>
-
- * pkgaction.py: typo
-
-2003-03-14 Seth Vidal <skvidal at linux.duke.edu>
-
- * pkgaction.py: ooo look, regression, how nice
-
-2003-03-14 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py, pkgaction.py, yummain.py: modifications to make
- upgrade [pkgs] work - incomplete partial rewrite of updatepkgs
- needed
-
-2003-03-13 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py, pkgaction.py: fix to versioned obsoletes - Thanks
- to Phil Radden
-
-2003-03-12 Seth Vidal <skvidal at linux.duke.edu>
-
- * yummain.py: remove other sillyness
-
-2003-03-12 Seth Vidal <skvidal at linux.duke.edu>
-
- * config.py: new test to fix subclassing Thanks to michael stenner
-
-2003-03-12 Seth Vidal <skvidal at linux.duke.edu>
-
- * config.py: put it back
-
-2003-03-12 Seth Vidal <skvidal at linux.duke.edu>
-
- * config.py: a try
-
-2003-03-12 Seth Vidal <skvidal at linux.duke.edu>
-
- * yummain.py: [no log message]
-
-2003-03-12 Seth Vidal <skvidal at linux.duke.edu>
-
- * config.py: look - typing and reading - novel concepts
-
-2003-03-12 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog, config.py, yummain.py: try to subclass - first try
-
-2003-03-11 Seth Vidal <skvidal at linux.duke.edu>
-
- * configure.in, yum-7.x.spec, yum.spec: mark as 1.0
-
-2003-03-11 Seth Vidal <skvidal at linux.duke.edu>
-
- * configure.in, yum-7.x.spec, yum.spec: bump ver to 0.9.5, fix spec
- files
-
-2003-03-11 Seth Vidal <skvidal at linux.duke.edu>
-
- * etc/Makefile.in, etc/yum.conf: add the 7.3 conf file to the
- release tarball
-
-2003-03-11 Seth Vidal <skvidal at linux.duke.edu>
-
- * README, clientStuff.py, docs/yum.8, docs/yum.conf.5: doc fixes for
- assumeyes and proxy information Update the readme make an error
- message have more oomph in clientStuff.py
-
-2003-03-09 Seth Vidal <skvidal at linux.duke.edu>
-
- * pullheaders.py: remove old dead comment
-
-2003-03-05 Seth Vidal <skvidal at linux.duke.edu>
-
- * docs/yum.conf.5: typo
-
-2003-03-05 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog, TODO: Update Changelog - update TODO
-
-2003-03-05 Seth Vidal <skvidal at linux.duke.edu>
-
- * docs/yum.8, docs/yum.conf.5: updates to the docs Thanks to Joshua
- Baker-LePain for the fixes to the pkgpolicy statement
-
-2003-03-04 Seth Vidal <skvidal at linux.duke.edu>
-
- * pullheaders.py: fix problems with empty repositories having trash
- lying about
-
-2003-03-04 Seth Vidal <skvidal at linux.duke.edu>
-
- * pkgaction.py: reverting - don't want to mess with the print vs log
- inside 1.x
-
-2003-03-04 Seth Vidal <skvidal at linux.duke.edu>
-
- * pkgaction.py: doh
-
-2003-03-04 Seth Vidal <skvidal at linux.duke.edu>
-
- * pkgaction.py: modification number 2
-
-2003-03-04 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog, clientStuff.py, yummain.py: implement check-update - to
- test - might not stick around for yum 2.x
-
-2003-03-03 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum-7.x.spec, yum.spec: remove perl requirements
-
-2003-02-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * bin/yum: and one more little fix
-
-2003-02-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * bin/yum: update lockfile stuff to clear old locks
-
-2003-02-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * archwork.py: archwork backport for more archs
-
-2003-02-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * pullheaders.py: typo in -q
-
-2003-02-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * docs/yum-arch.8: update docs to explain -q and -vv
-
-2003-02-28 Seth Vidal <skvidal at linux.duke.edu>
-
- * pullheaders.py, serverStuff.py: update yum-arch stuff to include
- -q and -vv
-
-2003-02-26 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py, config.py: implement exactarch - config and
- getupdatedhdrlist
-
-2003-02-26 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py: wow, this is SO MUCH nicer and it appears to work
-
-
-2003-02-26 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py: new way to do the getupdatedhdrlist helluva lot
- tidier too
-
-2003-02-25 Seth Vidal <skvidal at linux.duke.edu>
-
- * archwork.py, clientStuff.py: fix up archwork further fixing of
- clientstuff.getupdatedhdrlist
-
-2003-02-25 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py: I think I fixed the arch problem.
-
-2003-02-25 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py: possible fix for odd arch case in updates
-
-2003-01-18 Seth Vidal <skvidal at linux.duke.edu>
-
- * Makefile.in, clientStuff.py, yum.conf: Fix makefile.in to include
- yumlock.py, clientstuff.py typos, yum.conf and yum.spec trash
-
-2003-01-18 Seth Vidal <skvidal at linux.duke.edu>
-
- * Makefile.in, clientStuff.py, nevral.py: made changes that _should_
- make header checking do _something_ and retry if one is damaged more
- testing needed
-
-2003-01-17 Seth Vidal <skvidal at linux.duke.edu>
-
- * bin/yum: [no log message]
-
-2003-01-17 Seth Vidal <skvidal at linux.duke.edu>
-
- * bin/yum: hehe that's yum.pid not yum/pid
-
-2003-01-17 Seth Vidal <skvidal at linux.duke.edu>
-
- * bin/yum, yumlock.py: added yumlock from michael stenner for
- locking functionality made yum support lockfiles for root uses
-
-2003-01-16 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py: unfinished changes to readHeader and get header to
- make it more robust for bad headers it should: check for headers,
- and if, when reading it, it encounters an error return none. this
- means edits in other locations to deal with the possibility of
- getting a none instead of a hdr - but only in a few spots. finish
- this tomorrow?
-
-2003-01-16 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py: fix for clean_old_headers to deal with double
- deletion silliness
-
-2002-12-22 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog, Makefile.in, configure.in, yum-7.x.spec, yum.spec:
- Update to 0.9.4 - split into two spec files for 7.x and 8.0
-
-2002-12-20 Seth Vidal <skvidal at linux.duke.edu>
-
- * bin/yum, bin/yum-arch: fixed sys.path.insert
-
-2002-12-09 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: look an updated changelog
-
-2002-12-09 Seth Vidal <skvidal at linux.duke.edu>
-
- * TODO, docs/yum.conf.5: doc update for excludes changes
-
-2002-12-09 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py, nevral.py, yum.conf: make fnmatch glob excludes
- work
-
-2002-12-09 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py: simple edits
-
-2002-12-06 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog, clientStuff.py: not quite complete changes for excludes
-
-
-2002-12-05 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py: fix to use in_file.readlines() instead of dumb
- line by line in HeaderInfoNevralLoad Thanks to Bor for that patch
-
-2002-12-05 Seth Vidal <skvidal at linux.duke.edu>
-
- * pkgaction.py: added stuff into the kernel updating so if it can't
- find either bootloader it exits nicely and notifies the user on the
- console and in the yum.log stopgap to deal with ydl and other
- non-x86 systems
-
-2002-12-05 Seth Vidal <skvidal at linux.duke.edu>
-
- * bin/yum, bin/yum-arch: fix append vs insert to avoid namespace
- collision
-
-2002-10-22 Seth Vidal <skvidal at linux.duke.edu>
-
- * archwork.py, callback.py, clientStuff.py, depchecktree.py,
- nevral.py, pkgaction.py, pullheaders.py, serverStuff.py,
- up2datetheft.py: fix rpm404 import in clientStuff and everywhere to
- deal with exception handling on 7.x machines. This is ugly but
- theoretically it is temporary.
-
-2002-10-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: Changelog updates
-
-2002-10-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * configure.in, yum.spec: updated to 0.9.3 in spec and configure
-
-2002-10-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * docs/yum-arch.8, docs/yum.8: updated docs for list extras and
- yum-arch -l
-
-2002-10-19 Seth Vidal <skvidal at linux.duke.edu>
-
- * pkgaction.py: changed layout for yum info
-
-2002-10-18 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py, pkgaction.py: yum info extras work added groups
- and arch to the display fields in yum info.
-
-2002-10-18 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py, pkgaction.py: stubs in place for
- per-server-section gpg-keyrings
-
-2002-10-18 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py, pkgaction.py: made updates only operate on
- update-able packages. so 'yum update somepkgnotyetinstalled' won't
- install that package also made yum clean headers remove the
- header.info file as well as the .hdr files
-
-2002-10-18 Seth Vidal <skvidal at linux.duke.edu>
-
- * pullheaders.py, serverStuff.py: yum-arch -l implemented to make
- yum-arch pay attention to symlinks
-
-2002-10-14 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py: made the header load catch bad headers and exit
- nicely w/ a real error.
-
-2002-10-14 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py, depchecktree.py: few more rpm vs rpm404 fixes and
- yum list extras is implemented. not documented (of course)
-
-2002-10-13 Seth Vidal <skvidal at linux.duke.edu>
-
- * archwork.py, callback.py, clientStuff.py, depchecktree.py,
- nevral.py, pkgaction.py, pullheaders.py, serverStuff.py,
- up2datetheft.py: update all files for changes to make things
- potentially work for rpm 4.1 and rpm 4.0.4 so it should work on rhl
- 7.X and 8.0
-
-2002-09-26 Seth Vidal <skvidal at linux.duke.edu>
-
- * nevral.py: updated nevral dep resolution to use the bestarch - not
- the first arch. thanks to slack for finding this.
-
-2002-09-25 Seth Vidal <skvidal at linux.duke.edu>
-
- * nevral.py: add change to fix arch dep resolve for non-kernel
- bestarch resolution also adds more logging/debug info here.
-
-2002-09-25 Seth Vidal <skvidal at linux.duke.edu>
-
- * pkgaction.py: fix dumbass update bug when looping through archs -
- its nice to actually finish the list before exiting <sigh>
-
-2002-09-13 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py: fixed stupid diskspace check backtrace cleaned up
- a few comma space problems
-
-2002-08-27 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: updated changelog
-
-2002-08-27 Seth Vidal <skvidal at linux.duke.edu>
-
- * docs/yum.8: updated docs to list yum list and yum info options
-
-2002-08-27 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum.conf: updated conf file - in / too :)
-
-2002-08-27 Seth Vidal <skvidal at linux.duke.edu>
-
- * etc/yum.conf: updated conf file
-
-2002-08-27 Seth Vidal <skvidal at linux.duke.edu>
-
- * Makefile.in, configure.in, docs/yum-arch.8, docs/yum.8,
- etc/yum.conf, etc/yum.cron, pullheaders.py, serverStuff.py,
- yum.conf, yum.spec, yummain.py: Bumped version number Fixed -h and
- --help in yum-arch Moved yum and yum-arch to /usr/bin updated docs
- updated cron jobs made conf file have more meaning and use.
-
-2002-08-27 Seth Vidal <skvidal at linux.duke.edu>
-
- * bin/Makefile.in, bin/yum, bin/yum-arch: added to repository moved
- from /sbin
-
-2002-08-26 Seth Vidal <skvidal at linux.duke.edu>
-
- * archwork.py, pkgaction.py: pychecker run caught a couple of
- mistakes
-
-2002-08-25 Seth Vidal <skvidal at linux.duke.edu>
-
- * callback.py: fixed an odd divide by zero error under rpm404 in
- (null)
-
-2002-08-24 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog, archwork.py: changelog update - fix - no newline at end
- of archwork.py
-
-2002-08-24 Seth Vidal <skvidal at linux.duke.edu>
-
- * archwork.py, clientStuff.py, config.py, nevral.py,
- pullheaders.py, yummain.py: ok, I swear, I think this is all of them
- - the imports are now at the top of the files excepting some very
- odd little cases.
-
-2002-08-24 Seth Vidal <skvidal at linux.duke.edu>
-
- * callback.py, pkgaction.py: yay - more fun import fixes
-
-2002-08-24 Seth Vidal <skvidal at linux.duke.edu>
-
- * serverStuff.py: missed one
-
-2002-08-24 Seth Vidal <skvidal at linux.duke.edu>
-
- * pkgaction.py, serverStuff.py: clean up some dumb import statements
-
-
-2002-08-23 Seth Vidal <skvidal at linux.duke.edu>
-
- * pkgaction.py, pullheaders.py: make depcheck happen first in
- yum-arch -d - just so you know if stuff is broken fix - wording on
- error message in pkgaction
-
-2002-08-23 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py: made yum list and yum info match syntacticly
-
-2002-08-23 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: [no log message]
-
-2002-08-23 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py, pkgaction.py: made yum info work on the installed
- pkgs too made yum list installed dtrt/work made yum list availabe
- exist instead of yum list new - it was confusingly named
-
-2002-08-17 Seth Vidal <skvidal at linux.duke.edu>
-
- * yummain.py: added mode so clean commands are always run in
- cache-only mode. need to make cache-only brighter but this is
- probably going to be ok for now
-
-2002-08-16 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: changelog update
-
-2002-08-16 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py, docs/yum.8, yummain.py: updated docs and misc to
- note the changes in functionality
-
-2002-08-16 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: changelog update
-
-2002-08-16 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py, config.py, logger.py, pkgaction.py, yummain.py:
- added the new logger module made non-root runs work properly made
- 'provides' work as non-root and work better in general
-
-2002-08-13 Seth Vidal <skvidal at linux.duke.edu>
-
- * pkgaction.py: change how provides works a bit
-
-2002-08-13 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py: make updates for yum list new - so it works change
- how provides works a bit
-
-2002-08-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py, nevral.py, pkgaction.py, yum.conf, yummain.py:
- added yum whatprovides support made non-root-run be caching-only
-
-2002-08-03 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py, config.py, yummain.py: add -C option to work out
- of the cache make things faster by not caring about obsoletes unless
- its during an operation where it matters (upgrade)
-
-2002-07-31 Seth Vidal <skvidal at linux.duke.edu>
-
- * pkgaction.py: stub in place for findrequires/findprovides so I can
- start a yum find [thing] and have yum tell the user what pkg its in.
-
-
-2002-07-31 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py: added some debugging information to the final
- diskspace-ts check. I think something odd is happening there when
- it comes to conflicting pkgs.
-
-2002-07-22 Seth Vidal <skvidal at linux.duke.edu>
-
- * yummain.py: usage patch from Bor
-
-2002-07-19 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: updated changelog
-
-2002-07-19 Seth Vidal <skvidal at linux.duke.edu>
-
- * docs/yum.8, pkgaction.py: fix a duplication in listpkgs and add
- 'info' to the man page
-
-2002-07-19 Seth Vidal <skvidal at linux.duke.edu>
-
- * yummain.py: clean up main() some - make it shorted - break out cmd
- parsing to a separate function. pychecker no longer tells me I'm a
- loser.
-
-2002-07-19 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py, pkgaction.py, yum.conf, yummain.py: made yum info
- [pkgname] work. not documented yet - probably not finished yet
- either.
-
-2002-07-11 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog, configure.in, yum.spec: updated for 0.9.1 <sigh>
-
-2002-07-11 Seth Vidal <skvidal at linux.duke.edu>
-
- * etc/yum.cron: Wow - lucky I'm a moron. yum -R not yum -r <sigh>
-
-2002-07-11 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog, configure.in, yum.spec: bumped to 0.9.0 ChangeLog updated
-
-2002-07-11 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum.conf: fixed conf file
-
-2002-07-11 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py, config.py, docs/yum.conf.5, pkgaction.py,
- yum.conf, yum.spec, yummain.py: fixed gpg checking to make gpghome
- configurable and gpgkeyring made gpg checking more like up2date's
- updated docs to reflect this fixed the updatehrdlist function
- (again)
-
-2002-07-11 Seth Vidal <skvidal at linux.duke.edu>
-
- * docs/yum.8, yummain.py: change -r option to -R
-
-2002-07-10 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: changelog changed by cvs2cl
-
-2002-07-10 Seth Vidal <skvidal at linux.duke.edu>
-
- * archwork.py, clientStuff.py, nevral.py, serverStuff.py,
- yummain.py: pychecker fixes the world. wow - I found a lot of
- soon-to-be-discovered problems w/o having to stumble on them on my
- own :)
-
-2002-07-09 Seth Vidal <skvidal at linux.duke.edu>
-
- * docs/yum.8, etc/yum.cron, yummain.py: make -r command work
- correctly
-
-2002-07-09 Seth Vidal <skvidal at linux.duke.edu>
-
- * AUTHORS: Updated Authors file
-
-2002-07-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: updated the changelog!
-
-2002-07-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py: fixes a case where a pkg changes arch in an
- update. also fixes some problems in the getupdatedhdrlist function
-
-2002-07-04 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py: cleaned up some dumb spacing things
-
-2002-07-03 Seth Vidal <skvidal at linux.duke.edu>
-
- * docs/yum.8: add -c into man page
-
-2002-07-03 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: new changelog
-
-2002-07-03 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog, archwork.py, clientStuff.py, config.py, nevral.py,
- yummain.py: cleaned up comma space issues and single vs double
- quotes. Not finished but a lot better. Also fixed a bizarre
- overlooked bug in nevral load that would have almost never have been
- hit but could have been.
-
-2002-07-01 Seth Vidal <skvidal at linux.duke.edu>
-
- * yummain.py: fix things being out of order - pointed out by icon
-
-2002-07-01 Seth Vidal <skvidal at linux.duke.edu>
-
- * Makefile.in: date stamps for daily
-
-2002-07-01 Seth Vidal <skvidal at linux.duke.edu>
-
- * Makefile.in, docs/Makefile.in, etc/Makefile.in: add entries to
- Makefiles to make a daily tar-ball option
-
-2002-07-01 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py, config.py, nevral.py, yummain.py: switched from
- tabs to spaces modified startup so a -c [config file] option is
- available probably broke the world moving shit around.
-
-2002-06-30 Seth Vidal <skvidal at linux.duke.edu>
-
- * archwork.py, callback.py, clientStuff.py, config.py,
- depchecktree.py, iutil.py, lilo.py, lilocfg.py, nevral.py,
- pkgaction.py, pullheaders.py, serverStuff.py, translate.py,
- yummain.py: all files modified for tab->space conversion., god,
- shit will probably break
-
-2002-06-30 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum.spec: fixed the spec file.
-
-2002-06-29 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py, pullheaders.py, yum.spec: my doesn't that just
- suck - occasionally rpm.labelCompare returns < -1 <boggle> thanks to
- icon and hunter
-
-2002-06-29 Seth Vidal <skvidal at linux.duke.edu>
-
- * docs/yum-arch.8: fixed typo from yup to yum :) thanks icon
-
-2002-06-21 Seth Vidal <skvidal at linux.duke.edu>
-
- * TODO: more extreme wishlist items
-
-2002-06-20 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: updated changelog
-
-2002-06-20 Seth Vidal <skvidal at linux.duke.edu>
-
- * Makefile.in, docs/yum.8: updated docs to reflect addition of
- "upgrade" command
-
-2002-06-20 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py, configure.in, pkgaction.py, yum.spec, yummain.py:
- added os.unlink on checkSig made a differentation from update to
- upgrade upgrade includes obsoletes iff there is no update for the
- same package update does not include obsoletes.
-
-2002-06-17 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog: Look Look a real ChangeLog!
-
-2002-06-16 Seth Vidal <skvidal at linux.duke.edu>
-
- * TODO, configure.in, etc/yum.cron, yum.spec: spec file and
- configure changes, add -e 0 to yum.cron
-
-2002-06-16 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py, yummain.py: make the non-gzipped header reading
- actually work
-
-2002-06-16 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py: clean up dumb-o in clientStuff.py
-
-2002-06-16 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py, docs/yum-arch.8, pullheaders.py, serverStuff.py:
- make gzip'd headers work - used most of grigory's patch
-
-2002-06-15 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog, pkgaction.py: Fixed dumb bug - thanks to Grigory
- Bakunov
-
-2002-06-14 Seth Vidal <skvidal at linux.duke.edu>
-
- * configure.in, yum.spec, yummain.py: fix spec file, back <sigh>
- update configure, again. add dumbass check for undeleted vars in
- yummain.py
-
-2002-06-14 Seth Vidal <skvidal at linux.duke.edu>
-
- * Makefile.in, configure.in: Added entries for yum.spec's version to
- be automatically changed with configure
-
-2002-06-14 Seth Vidal <skvidal at linux.duke.edu>
-
- * docs/yum.8, docs/yum.conf.5: updated man pages to reflect
- errorlevel and -e options
-
-2002-06-14 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py, config.py, nevral.py, pkgaction.py, yummain.py:
- change errorlogs so they are leveled add -e option to set errorlog
- level = default is 2 which means print all errors even if they
- aren't really serious
-
-2002-06-13 Seth Vidal <skvidal at linux.duke.edu>
-
- * configure.in, yum.spec: bumped version number, again.
-
-2002-06-13 Seth Vidal <skvidal at linux.duke.edu>
-
- * pullheaders.py: fix logger.py class change in pullheaders.py
- (doh!)
-
-2002-06-13 Seth Vidal <skvidal at linux.duke.edu>
-
- * configure.in, yum.spec: updated ver number after fixing kinda
- serious kernel problem, earlier
-
-2002-06-13 Seth Vidal <skvidal at linux.duke.edu>
-
- * yummain.py: if we return errors from the tsfin.run then we want to
- exit with an error condition, not continue and possibly fuckup
- lilo.conf or grub.conf
-
-2002-06-13 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py: fix a problem where yum would attempt to install
- all the archs of kernels installed. Read the comment in
- clientStuff.getupdatehdrlist (line 283 or so) for an explanation
-
-2002-06-13 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum.spec: duh
-
-2002-06-13 Seth Vidal <skvidal at linux.duke.edu>
-
- * TODO, callback.py, clientStuff.py, config.py, configure.in,
- nevral.py, pkgaction.py, yummain.py: made the cmd line args nice and
- tidy made the logging make more sense made the rpm callback quiet
- when it should be quiet
-
-2002-06-12 Seth Vidal <skvidal at linux.duke.edu>
-
- * yummain.py: [no log message]
-
-2002-06-12 Seth Vidal <skvidal at linux.duke.edu>
-
- * callback.py, clientStuff.py, logger.py, nevral.py, pkgaction.py:
- fix a lot of -d # logging problems. made logging more consistent.
- file logs still need to be used more cmdline options need to be
- pushed into the config class and handled in callback.py
-
-2002-06-12 Seth Vidal <skvidal at linux.duke.edu>
-
- * yummain.py: fix the logfile need to make yummain non-root-happy.
-
-2002-06-12 Seth Vidal <skvidal at linux.duke.edu>
-
- * yummain.py: logs work like this: log(2,"words") 2 is default -
- print to stdout - nothing fancy anything above 2 is debug to stdout
- errorlog is print to stderr filelog is print to conf.logfile when
- you yum -d # - the number is what level of those logs you want to
- see. if the number is 3 then you see all logs at level 3 or lower
- (this only effects the 'log' object - errorlog and filelog ALWAYS
- happen) yum -d 0 should show nothing b/c there is nothing that low.
-
-
-2002-06-11 Seth Vidal <skvidal at linux.duke.edu>
-
- * yummain.py: add a message to tell people more about what is going
- on.
-
-2002-06-11 Seth Vidal <skvidal at linux.duke.edu>
-
- * nevral.py, yum.spec: <sigh> the dependency loops grow ever longer.
- I want to write out a complete diagram of all possible states for
- this loop. then just fulfill them all. That'd probably be best.
-
-2002-06-11 Seth Vidal <skvidal at linux.duke.edu>
-
- * configure.in: bumped version
-
-2002-06-11 Seth Vidal <skvidal at linux.duke.edu>
-
- * nevral.py: more debugging info.
-
-2002-06-11 Seth Vidal <skvidal at linux.duke.edu>
-
- * pkgaction.py: fixing thinko in pkg installs should be
- (name,bestarch) not (name,arch)
-
-2002-06-11 Seth Vidal <skvidal at linux.duke.edu>
-
- * nevral.py: and once more, with feeling so much pain
-
-2002-06-11 Seth Vidal <skvidal at linux.duke.edu>
-
- * nevral.py: this might help some of the conflict problems. it at
- least targets a particular problem
-
-2002-06-11 Seth Vidal <skvidal at linux.duke.edu>
-
- * yummain.py: its amazing what you learn when someone tells you
- specifically where in the fucking MODULE source to look for it.
- <sigh>
-
-2002-06-11 Seth Vidal <skvidal at linux.duke.edu>
-
- * nevral.py, pkgaction.py: "fixes" and an intelligent comment
-
-2002-06-11 Seth Vidal <skvidal at linux.duke.edu>
-
- * TODO, clientStuff.py, nevral.py, pkgaction.py, yummain.py: attempt
- to solve stupid update/install conflicts. might have to fudge
- conflicts like anaconda does.
-
-2002-06-09 Seth Vidal <skvidal at linux.duke.edu>
-
- * nevral.py: one letter fix to the kernel upgrade problem.
-
-2002-06-09 Seth Vidal <skvidal at linux.duke.edu>
-
- * nevral.py: <sigh>
-
-2002-06-09 Seth Vidal <skvidal at linux.duke.edu>
-
- * nevral.py: ridiculous special case for the kernel. I think I'm
- going to cry
-
-2002-06-09 Seth Vidal <skvidal at linux.duke.edu>
-
- * pkgaction.py: test to see if this fixes an obsoleting problem
-
-2002-06-09 Seth Vidal <skvidal at linux.duke.edu>
-
- * nevral.py: GAH! one more dep problem - I think this should solve
- it. I hope please
-
-2002-06-09 Seth Vidal <skvidal at linux.duke.edu>
-
- * nevral.py, yummain.py: After much pain and agony recursive erase
- dependencies appear to work. I need to comment A LOT more in
- nevral.nevral.resolvedeps but it appears to work "mostly" correct.
-
-2002-06-09 Seth Vidal <skvidal at linux.duke.edu>
-
- * configure.in, yum.spec: iterate version to 0.8.2 - update spec
- file too
-
-2002-06-09 Seth Vidal <skvidal at linux.duke.edu>
-
- * TODO: remove client-side excludes todo item
-
-2002-06-09 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py, config.py, docs/yum.conf.5, nevral.py: nevral -
- put back the thinko b/c I'm really a dumbass and shouldn't program
- this early. yum.conf.5 - add exclude option clientStuff - add
- support for client-side excludes from updates/installs config.py -
- add support for exclude option excludes are a space separated list
- of pkgs to exclude - it is in the [main] section of the yum.conf
- file.
-
-2002-06-09 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py, yummain.py: clean ups trying to fix a depresolve
- bug
-
-2002-06-09 Seth Vidal <skvidal at linux.duke.edu>
-
- * nevral.py: fix a depresolve thinko
-
-2002-06-09 Seth Vidal <skvidal at linux.duke.edu>
-
- * serverStuff.py: fix dumbass display issue on depcheck
-
-2002-06-09 Seth Vidal <skvidal at linux.duke.edu>
-
- * TODO, config.py, pkgaction.py, yummain.py: implemented sigchecking
- - gpg and md5. md5 will always happen gpg will only happen if
- gpgcheck=1 is set in the yum.conf file in each server section ie:
- [serverid] baseurl=blarg name=blarg gpgcheck=1
-
-2002-06-09 Seth Vidal <skvidal at linux.duke.edu>
-
- * TODO: Prioritized and cleaned up TODO list.
-
-2002-06-09 Seth Vidal <skvidal at linux.duke.edu>
-
- * TODO, clientStuff.py, docs/yum.8, yummain.py: implemented yum
- clean * - updated man page to reflect that change
-
-2002-06-09 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py, yummain.py: Reorder things in yummain and
- clientStuff a little to make yummain.main() shorter and perhaps
- easier to follow.
-
-2002-06-09 Seth Vidal <skvidal at linux.duke.edu>
-
- * docs/yum.conf.5: real conf file man page
-
-2002-06-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * docs/yum-arch.8: yum-arch has _some_ meaning and should work
-
-2002-06-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * docs/yum.8: man page now has some meaning
-
-2002-06-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * yummain.py: --help -h and just typing 'yum' now work to display
- the usage. That was annoying the crap out of me.
-
-2002-06-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum.conf, yummain.py: consistent sort order in the servers list.
- using sort()
-
-2002-06-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog, configure.in, yum.spec: changed ver to 0.8.1
-
-2002-06-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog, TODO, pkgaction.py, yummain.py: added yum list updates
- command
-
-2002-06-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * Makefile.in: Added ChangeLog to Makefile.in
-
-2002-06-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * ChangeLog, TODO: added Changelog - updated TODO
-
-2002-06-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py, config.py, yum.conf: clientStuff.py: made the
- headerinfo nevral do pkgpolicy for last vs newest - default is
- newest. this means that the servers are loaded in the order they
- appear in the conf file. If you have pkgpolicy=last then the last
- server's pkgs if they conflict/collide with the others will win.
- pkgpolicy=newest (or nothing) will mean the newest pkgs get into the
- headerInfonevral. modifications to config.py to accomodate this
- yum.conf to show it.
-
-2002-06-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * TODO, clientStuff.py: clientstuff.py: make http url error spit out
- the url too TODO: more fun and painful things
-
-2002-06-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * clientStuff.py, config.py, pkgaction.py, yum.conf: Made urlgrab
- handle ftp urls and better broken url handling made config allow
- http and ftp urls fixed dumbass comma in pkgaction example changed
- in yum.conf
-
-2002-06-08 Seth Vidal <skvidal at linux.duke.edu>
-
- * TODO: updated for docs information
-
-2002-06-07 Seth Vidal <skvidal at linux.duke.edu>
-
- * README: Updated theory and use
-
-2002-06-07 Seth Vidal <skvidal at linux.duke.edu>
-
- * TODO: [no log message]
-
-2002-06-07 Seth Vidal <skvidal at linux.duke.edu>
-
- * pkgaction.py: Added in checksig and cleanpackages functions -
- cleanpackages needs to be fleshed out.
-
-2002-06-07 Seth Vidal <skvidal at linux.duke.edu>
-
- * yummain.py: added note in yummain where sigchecking should go
-
-2002-06-07 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum.spec: fix the source
-
-2002-06-07 Seth Vidal <skvidal at linux.duke.edu>
-
- * yum.spec: Changed the %setup to not have -n
-
-2002-06-07 Seth Vidal <skvidal at linux.duke.edu>
+ * fix from Christoph Thiel and Jan Matejek "The problem is that when
+ precompiling python files, the compiler needs to know their "base
+ path" which will be used in debug outputs (such as the backtrace).
+ Without this patch, makefile sets $(PYDIR) as the base path, but
+ $(PYDIR) isn't defined and the base path stays empty. (some of our
+ python builds apparently can't deal with it and use PIL's base path
+ instead) The patch replaces $(PYDIR) with correct value, $(PKGDIR)."
- * Initial revision
commit 8a15eebdb06e5f52f5a76a8d760e763279f5cb9e
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Mon Oct 27 16:11:31 2008 -0400
mark as 3.2.20
diff --git a/yum.spec b/yum.spec
index 0eb35e3..531b2ca 100644
--- a/yum.spec
+++ b/yum.spec
@@ -1,6 +1,6 @@
Summary: RPM installer/updater
Name: yum
-Version: 3.2.19
+Version: 3.2.20
Release: 0
License: GPLv2+
Group: System Environment/Base
@@ -99,6 +99,9 @@ exit 0
%{_mandir}/man*/yum-updatesd*
%changelog
+* Mon Oct 27 2008 Seth Vidal <skvidal at fedoraproject.org>
+- 3.2.20
+
* Mon Aug 25 2008 Seth Vidal <skvidal at fedoraproject.org>
- 3.2.19
diff --git a/yum/__init__.py b/yum/__init__.py
index 4296f5d..04f2aac 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -73,7 +73,7 @@ import string
from urlgrabber.grabber import default_grabber
-__version__ = '3.2.19'
+__version__ = '3.2.20'
__version_info__ = tuple([ int(num) for num in __version__.split('.')])
# Setup a default_grabber UA here that says we are yum, done using the global
commit a50ffbc85fae4d036bd48632406acea9e4806df5
Author: James Antill <james at and.org>
Date: Mon Oct 27 15:49:11 2008 -0400
Allow rm only trans. but allow later install too
diff --git a/yum/depsolve.py b/yum/depsolve.py
index 749a280..579e7a1 100644
--- a/yum/depsolve.py
+++ b/yum/depsolve.py
@@ -91,6 +91,8 @@ class Depsolve(object):
yet"""
if self._tsInfo != None and self._ts != None:
+ if not remove_only and self._tsInfo.pkgSack is None:
+ self._tsInfo.setDatabases(self.rpmdb, self.pkgSack)
return
if not self.conf.installroot:
@@ -114,8 +116,6 @@ class Depsolve(object):
self._tsInfo.install_method = self.install
self._tsInfo.update_method = self.update
self._tsInfo.remove_method = self.remove
- elif not remove_only and self._tsInfo.pkgSack is None:
- self._tsInfo.setDatabases(self.rpmdb, self.pkgSack)
return self._tsInfo
def _setTsInfo(self, value):
commit 46ea40a4d3df479b367f52002d6dae58b222f6d7
Author: James Antill <james at and.org>
Date: Mon Oct 27 15:45:36 2008 -0400
Add the pkgSack to the transaction, if we have a remove followed by an install
diff --git a/yum/depsolve.py b/yum/depsolve.py
index 25eb0e6..749a280 100644
--- a/yum/depsolve.py
+++ b/yum/depsolve.py
@@ -114,6 +114,8 @@ class Depsolve(object):
self._tsInfo.install_method = self.install
self._tsInfo.update_method = self.update
self._tsInfo.remove_method = self.remove
+ elif not remove_only and self._tsInfo.pkgSack is None:
+ self._tsInfo.setDatabases(self.rpmdb, self.pkgSack)
return self._tsInfo
def _setTsInfo(self, value):
commit 5aa9470b325a7829af4d57d557ecb814da31c070
Author: James Antill <james at and.org>
Date: Mon Oct 27 14:16:21 2008 -0400
Test update which requires specific version, but not a later one
diff --git a/test/simpleupdatetests.py b/test/simpleupdatetests.py
index 9ee7ce0..4efe382 100644
--- a/test/simpleupdatetests.py
+++ b/test/simpleupdatetests.py
@@ -348,3 +348,15 @@ class SimpleUpdateTests(OperationsTests):
[p.required_updated, p.update_i386, p.update_x86_64])
self.assert_(res=='ok', msg)
self.assertResult((p.required_updated, p.update_i386, p.update_x86_64))
+
+ def testUpdateNotLatestDep(self):
+ foo11 = FakePackage('foo', '1', '1', '0', 'i386')
+ foo11.addRequires('bar', 'EQ', ('0', '1', '1'))
+ foo12 = FakePackage('foo', '1', '2', '0', 'i386')
+ foo12.addRequires('bar', 'EQ', ('0', '1', '2'))
+ bar11 = FakePackage('bar', '1', '1', '0', 'i386')
+ bar12 = FakePackage('bar', '1', '2', '0', 'i386')
+ bar21 = FakePackage('bar', '2', '1', '0', 'i386')
+ res, msg = self.runOperation(['install', 'foo'], [foo11, bar11], [foo12, bar12, bar21])
+ self.assert_(res=='ok', msg)
+ self.assertResult((foo12, bar12))
commit 6811a8bac70d3ee917df36d9f3911acf56a2d425
Author: James Antill <james at and.org>
Date: Mon Oct 27 13:27:22 2008 -0400
Underflow for utf8 width in progressbar, too
diff --git a/output.py b/output.py
index f644e44..502aa4b 100644
--- a/output.py
+++ b/output.py
@@ -1206,6 +1206,8 @@ def progressbar(current, total, name=None):
if name is None and current == total:
name = '-'
+ if name is not None: # FIXME: This is a hack without utf8_width()
+ width -= len(to_utf8(name)) - len(name)
end = ' %d/%d' % (current, total)
width -= len(end) + 1
@@ -1278,12 +1280,35 @@ if __name__ == "__main__":
cb.event("lpkg" + "-=" * 15 + ".end", "bar", i, 100, i, 100)
time.sleep(0.1)
- if len(sys.argv) > 1 and sys.argv[1] in ("progress", "rpm-progress",
+ if len(sys.argv) > 1 and sys.argv[1] in ("progress", "i18n-progress",
+ "rpm-progress",
'i18n-rpm-progress'):
yum.misc.setup_locale()
+ if len(sys.argv) > 1 and sys.argv[1] in ("progress", "i18n-progress"):
+ print ""
+ print " Doing progress, i18n: small name"
+ print ""
+ for i in xrange(0, 101):
+ progressbar(i, 100, to_unicode('\xe6\xad\xa3\xe5\x9c\xa8\xe5\xae\x89\xe8\xa3\x85'))
+ time.sleep(0.1)
+ print ""
+
+ print ""
+ print " Doing progress, i18n: big name"
+ print ""
+ for i in xrange(0, 101):
+ progressbar(i, 100, to_unicode('\xe6\xad\xa3\xe5\x9c\xa8\xe5\xae\x89\xe8\xa3\x85' * 5 + ".end"))
+ time.sleep(0.1)
+ print ""
+
+
+ if len(sys.argv) > 1 and sys.argv[1] in ("progress", "i18n-progress",
+ "rpm-progress",
+ 'i18n-rpm-progress'):
cb = YumCliRPMCallBack()
cb.output = True
cb.action["foo"] = to_unicode('\xe6\xad\xa3\xe5\x9c\xa8\xe5\xae\x89\xe8\xa3\x85')
+ cb.action["bar"] = cb.action["foo"] * 5 + ".end"
print ""
print " Doing CB, i18n: small proc / small pkg"
print ""
@@ -1291,4 +1316,10 @@ if __name__ == "__main__":
cb.event("spkg", "foo", i, 100, i, 100)
time.sleep(0.1)
print ""
+ print " Doing CB, i18n: big proc / big pkg"
+ print ""
+ for i in xrange(0, 101):
+ cb.event("lpkg" + "-=" * 15 + ".end", "bar", i, 100, i, 100)
+ time.sleep(0.1)
+ print ""
commit ff8c16ee59f829116d26decbfade29b2c5ad3696
Author: James Antill <james at and.org>
Date: Mon Oct 27 12:59:57 2008 -0400
Workaround not having a real width() method for utf8
diff --git a/output.py b/output.py
index e7cd66e..f644e44 100644
--- a/output.py
+++ b/output.py
@@ -29,7 +29,7 @@ import re # For YumTerm
from urlgrabber.progress import TextMeter
import urlgrabber.progress
from urlgrabber.grabber import URLGrabError
-from yum.misc import sortPkgObj, prco_tuple_to_string, to_str, to_unicode, get_my_lang_code
+from yum.misc import sortPkgObj, prco_tuple_to_string, to_str, to_utf8, to_unicode, get_my_lang_code
import yum.misc
from rpmUtils.miscutils import checkSignals
from yum.constants import *
@@ -1126,7 +1126,9 @@ class YumCliRPMCallBack(RPMBaseCallback):
if self.output and (sys.stdout.isatty() or te_current == te_total):
fmt = self._makefmt(percent, ts_current, ts_total, pkgname=pkgname)
- msg = fmt % (process, pkgname)
+ # FIXME: Converting to utf8 here is a HACK ... but it's better
+ # to underflow than overflow, see the i18n-rpm-progress example
+ msg = fmt % (to_utf8(process), pkgname)
if msg != self.lastmsg:
sys.stdout.write(to_unicode(msg))
sys.stdout.flush()
@@ -1275,5 +1277,18 @@ if __name__ == "__main__":
for i in xrange(0, 101):
cb.event("lpkg" + "-=" * 15 + ".end", "bar", i, 100, i, 100)
time.sleep(0.1)
+
+ if len(sys.argv) > 1 and sys.argv[1] in ("progress", "rpm-progress",
+ 'i18n-rpm-progress'):
+ yum.misc.setup_locale()
+ cb = YumCliRPMCallBack()
+ cb.output = True
+ cb.action["foo"] = to_unicode('\xe6\xad\xa3\xe5\x9c\xa8\xe5\xae\x89\xe8\xa3\x85')
+ print ""
+ print " Doing CB, i18n: small proc / small pkg"
+ print ""
+ for i in xrange(0, 101):
+ cb.event("spkg", "foo", i, 100, i, 100)
+ time.sleep(0.1)
print ""
commit 38f64fcf228a3af105d51fe744861c6e9b66095b
Author: James Antill <james at and.org>
Date: Mon Oct 27 12:43:09 2008 -0400
Limit terminal width to 20 chars, do the right thing for serial console
diff --git a/output.py b/output.py
index d7356ce..e7cd66e 100644
--- a/output.py
+++ b/output.py
@@ -40,6 +40,18 @@ from yum.packageSack import packagesNewestByNameArch
from textwrap import fill
+def _term_width():
+ """ Simple terminal width, limit to 20 chars. and make 0 == 80. """
+ if not hasattr(urlgrabber.progress, 'terminal_width_cached'):
+ return 80
+ ret = urlgrabber.progress.terminal_width_cached()
+ if ret == 0:
+ return 80
+ if ret < 20:
+ return 20
+ return ret
+
+
class YumTextMeter(TextMeter):
"""
@@ -63,8 +75,7 @@ class YumTerm:
__enabled = True
if hasattr(urlgrabber.progress, 'terminal_width_cached'):
- columns = property(lambda self:
- urlgrabber.progress.terminal_width_cached())
+ columns = property(lambda self: _term_width())
else:
columns = 80
lines = 24
@@ -1084,8 +1095,7 @@ class YumCliRPMCallBack(RPMBaseCallback):
Yum specific callback class for RPM operations.
"""
- if hasattr(urlgrabber.progress, 'terminal_width_cached'):
- _width = property(lambda x: urlgrabber.progress.terminal_width_cached())
+ _width = property(lambda x: _term_width())
def __init__(self):
RPMBaseCallback.__init__(self)
@@ -1097,10 +1107,7 @@ class YumCliRPMCallBack(RPMBaseCallback):
self.mark = "#"
self.marks = 22
- if hasattr(urlgrabber.progress, 'terminal_width_cached'):
- self.width = self._width
- else:
- self.width = 80
+ self.width = self._width
def event(self, package, action, te_current, te_total, ts_current, ts_total):
# this is where a progress bar would be called
@@ -1193,10 +1200,7 @@ def progressbar(current, total, name=None):
else:
percent = 0
- if hasattr(urlgrabber.progress, 'terminal_width_cached'):
- width = urlgrabber.progress.terminal_width_cached()
- else:
- width = 80
+ width = _term_width()
if name is None and current == total:
name = '-'
commit 0968e129c31d9457e5dca5b3e498a0cf89141065
Author: James Antill <james at and.org>
Date: Mon Oct 27 09:25:07 2008 -0400
combat => compat, typos in comments
diff --git a/yum/__init__.py b/yum/__init__.py
index 7c8c57a..4296f5d 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -709,7 +709,7 @@ class YumBase(depsolve.Depsolve):
skipped = self._skipFromTransaction(po)
for skip in skipped:
skipped_po.add(skip)
- # make sure we get the combat arch packages skip from pkgSack and up too.
+ # make sure we get the compat arch packages skip from pkgSack and up too.
if skip not in removed_from_sack and skip.repoid == 'installed':
_remove_from_sack(skip)
if not toRemove: # Nothing was removed, so we still got a problem
@@ -741,7 +741,7 @@ class YumBase(depsolve.Depsolve):
if rpmUtils.arch.isMultiLibArch():
archs = rpmUtils.arch.getArchList()
n,a,e,v,r = po.pkgtup
- # skip for all combat archs
+ # skip for all compat archs
for a in archs:
pkgtup = (n,a,e,v,r)
if self.tsInfo.exists(pkgtup):
commit 040d9e3ea6fee1af341797910cfd49121da03c18
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date: Mon Oct 27 16:42:11 2008 +0100
Added note to skip-broken test case
diff --git a/test/skipbroken-tests.py b/test/skipbroken-tests.py
index 47480fe..7af855e 100644
--- a/test/skipbroken-tests.py
+++ b/test/skipbroken-tests.py
@@ -390,6 +390,7 @@ class SkipBrokenTests(DepsolveTests):
foo-2.0, that requires barlib-2.0
But it only work if foo-1.0 -> foo-2.0 is added as an update, it is not
pulled in by it self.
+ FIXME: This test case will fail for now
"""
ipo1 = self.instPackage('foo', '1')
ipo1.addRequires('barlib', 'EQ', ('0', '1', '0'))
commit 456dc3456721a5038b727b45ffb86e55686ed469
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date: Mon Oct 27 14:16:47 2008 +0100
Added skipped packages to transaction overview
diff --git a/output.py b/output.py
index 79d8bb0..d7356ce 100644
--- a/output.py
+++ b/output.py
@@ -778,7 +778,8 @@ class YumOutput:
(_('Removing'), self.tsInfo.removed),
(_('Installing for dependencies'), self.tsInfo.depinstalled),
(_('Updating for dependencies'), self.tsInfo.depupdated),
- (_('Removing for dependencies'), self.tsInfo.depremoved)]:
+ (_('Removing for dependencies'), self.tsInfo.depremoved),
+ (_('Skipped (dependency problems)'), self.skipped_packages),]:
lines = []
for txmbr in pkglist:
(n,a,e,v,r) = txmbr.pkgtup
@@ -889,6 +890,7 @@ Remove %5.5s Package(s)
(_('Dependency Installed'), self.tsInfo.depinstalled),
(_('Updated'), self.tsInfo.updated),
(_('Dependency Updated'), self.tsInfo.depupdated),
+ (_('Skipped (dependency problems)'), self.skipped_packages),
(_('Replaced'), self.tsInfo.obsoleted)]:
msgs = []
if len(pkglist) > 0:
diff --git a/yum/__init__.py b/yum/__init__.py
index ae2bd67..7c8c57a 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -97,7 +97,7 @@ class YumBase(depsolve.Depsolve):
self._comps = None
self._pkgSack = None
self._lockfile = None
- self.skipped_packages = None # packages skip by the skip-broken code
+ self.skipped_packages = [] # packages skip by the skip-broken code
self.logger = logging.getLogger("yum.YumBase")
self.verbose_logger = logging.getLogger("yum.verbose.YumBase")
self._repos = RepoStorage(self)
@@ -664,7 +664,7 @@ class YumBase(depsolve.Depsolve):
# The remove the broken packages from the transactions and
# Try another depsolve
if self.conf.skip_broken and rescode==1:
- self.skipped_packages = None # reset the public list of skipped packages.
+ self.skipped_packages = [] # reset the public list of skipped packages.
rescode, restring = self._skipPackagesWithProblems(rescode, restring)
self.verbose_logger.debug('Depsolve time: %0.3f' % (time.time() - ds_st))
commit d28f41078e6f741270eda35fdf056212fda84ae9
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date: Mon Oct 27 13:50:25 2008 +0100
more skipbroken debug output, show what packages there gets pulled out of the transaction
diff --git a/yum/__init__.py b/yum/__init__.py
index 07a9262..ae2bd67 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -757,6 +757,7 @@ class YumBase(depsolve.Depsolve):
def _removePoFromTransaction(self,po):
skip = []
if self.tsInfo.exists(po.pkgtup):
+ self.verbose_logger.debug('SKIPBROKEN: removing %s from transaction' % str(po))
self.tsInfo.remove(po.pkgtup)
if not po.repoid == 'installed':
skip.append(po)
commit a51e09aafa1cd2ce7be64cdc4ed7f9349aff512e
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date: Mon Oct 27 13:42:15 2008 +0100
make the packages skipped by skip-broken public, so it can be accessed from the outside. it make it posible to add the skipped packages to the transaction results etc.
diff --git a/yum/__init__.py b/yum/__init__.py
index d7f2daa..07a9262 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -97,6 +97,7 @@ class YumBase(depsolve.Depsolve):
self._comps = None
self._pkgSack = None
self._lockfile = None
+ self.skipped_packages = None # packages skip by the skip-broken code
self.logger = logging.getLogger("yum.YumBase")
self.verbose_logger = logging.getLogger("yum.verbose.YumBase")
self._repos = RepoStorage(self)
@@ -663,6 +664,7 @@ class YumBase(depsolve.Depsolve):
# The remove the broken packages from the transactions and
# Try another depsolve
if self.conf.skip_broken and rescode==1:
+ self.skipped_packages = None # reset the public list of skipped packages.
rescode, restring = self._skipPackagesWithProblems(rescode, restring)
self.verbose_logger.debug('Depsolve time: %0.3f' % (time.time() - ds_st))
@@ -726,6 +728,7 @@ class YumBase(depsolve.Depsolve):
for po in skipped_list:
msg = _(" %s from %s") % (str(po),po.repo.id)
self.verbose_logger.info(msg)
+ self.skipped_packages = skipped_list # make the skipped packages public
else:
# If we cant solve the problems the show the original error messages.
self.verbose_logger.info("Skip-broken could not solve problems")
commit 3f5ac4d048da54f29f45be0269a05dc892236c24
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date: Mon Oct 27 09:07:35 2008 +0100
- Added extra skip-broken debug output, so we better can see what is going on
- don't remove the same package from pkgSack & up more than once
- make sure that the compat arch packages get removed from the pkgSack & up
too and not just from the transaction, else they can get pulled in again
in the next depsolve loop.
diff --git a/yum/__init__.py b/yum/__init__.py
index 3806a5c..d7f2daa 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -676,14 +676,20 @@ class YumBase(depsolve.Depsolve):
return
self._getPackagesToRemove(po, depTree, toRemove)
# Only remove non installed packages from pkgSack
- if not po.repoid == 'installed':
+ _remove_from_sack(po)
+
+ def _remove_from_sack(po):
+ if not po.repoid == 'installed' and po not in removed_from_sack:
+ self.verbose_logger.debug('SKIPBROKEN: removing %s from pkgSack & updates' % str(po))
self.pkgSack.delPackage(po)
self.up.delPackage(po.pkgtup)
+ removed_from_sack.add(po)
# Keep removing packages & Depsolve until all errors is gone
# or the transaction is empty
count = 0
skipped_po = set()
+ removed_from_sack = set()
orig_restring = restring # Keep the old error messages
while len(self.po_with_problems) > 0 and rescode == 1:
count += 1
@@ -701,6 +707,9 @@ class YumBase(depsolve.Depsolve):
skipped = self._skipFromTransaction(po)
for skip in skipped:
skipped_po.add(skip)
+ # make sure we get the combat arch packages skip from pkgSack and up too.
+ if skip not in removed_from_sack and skip.repoid == 'installed':
+ _remove_from_sack(skip)
if not toRemove: # Nothing was removed, so we still got a problem
break # Bail out
rescode, restring = self.resolveDeps()
commit 0e4339ab0c8f2c45c8e523a45bf1e0442ba2d995
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date: Mon Oct 27 07:30:14 2008 +0100
updated Polish translation by Piotr DrÄ
g
diff --git a/po/pl.po b/po/pl.po
index 14a6bef..51e5f29 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: pl\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-10-21 00:29+0200\n"
+"POT-Creation-Date: 2008-10-26 15:54+0100\n"
"PO-Revision-Date: 2008-10-22 00:15+0200\n"
"Last-Translator: Piotr DrÄ
g <piotrdrag at gmail.com>\n"
"Language-Team: Polish <pl at li.org>\n"
@@ -146,15 +146,15 @@ msgstr "Pobieranie pakietów:"
msgid "Error Downloading Packages:\n"
msgstr "BÅÄ
d podczas pobierania pakietów:\n"
-#: ../cli.py:404 ../yum/__init__.py:3134
+#: ../cli.py:404 ../yum/__init__.py:3154
msgid "Running rpm_check_debug"
msgstr "Wykonywanie rpm_check_debug"
-#: ../cli.py:407 ../yum/__init__.py:3137
+#: ../cli.py:407 ../yum/__init__.py:3157
msgid "ERROR with rpm_check_debug vs depsolve:"
msgstr "BÅÄD rpm_check_debug i rozwiÄ
zywania zależnoÅci:"
-#: ../cli.py:411 ../yum/__init__.py:3139
+#: ../cli.py:411 ../yum/__init__.py:3159
msgid "Please report this error in bugzilla"
msgstr "ZgÅoÅ ten bÅÄ
d w Bugzilli"
@@ -205,11 +205,11 @@ msgstr "Nie ma pakietu %s%s%s."
msgid "Parsing package install arguments"
msgstr "Analizowanie parametrów instalacji pakietów"
-#: ../cli.py:582 ../cli.py:657 ../yumcommands.py:889
+#: ../cli.py:582 ../cli.py:657 ../yumcommands.py:912
msgid "Package(s) to install"
msgstr "Pakiety do zainstalowania"
-#: ../cli.py:583 ../cli.py:658 ../yumcommands.py:150 ../yumcommands.py:890
+#: ../cli.py:583 ../cli.py:658 ../yumcommands.py:150 ../yumcommands.py:913
msgid "Nothing to do"
msgstr "Nie ma niczego do zrobienia"
@@ -675,7 +675,7 @@ msgstr "Nazwa pliku : %s"
#: ../output.py:721
msgid "Other : "
-msgstr "Inne : %s"
+msgstr "Inne : "
#: ../output.py:753
msgid "There was an error calculating total download size"
@@ -1114,56 +1114,72 @@ msgstr "nazwa repozytorium"
msgid "status"
msgstr "stan"
-#: ../yumcommands.py:764
+#: ../yumcommands.py:765
msgid "Repo-id : "
-msgstr "Identyfikator repozytorium : "
+msgstr "Identyfikator repozytorium : "
-#: ../yumcommands.py:765
+#: ../yumcommands.py:766
msgid "Repo-name : "
-msgstr "Nazwa repozytorium : "
+msgstr "Nazwa repozytorium : "
-#: ../yumcommands.py:766
+#: ../yumcommands.py:767
msgid "Repo-status : "
-msgstr "Stan repozytorium : "
+msgstr "Stan repozytorium : "
-#: ../yumcommands.py:768
+#: ../yumcommands.py:769
+msgid "Repo-revision: "
+msgstr "Wersja repozytorium : "
+
+#: ../yumcommands.py:773
+msgid "Repo-tags : "
+msgstr "Znaczniki repozytorium : "
+
+#: ../yumcommands.py:779
+msgid "Repo-distro-tags: "
+msgstr "Znaczniki dystrybucji repozytorium: "
+
+#: ../yumcommands.py:784
msgid "Repo-updated: "
-msgstr "Aktualizacje repozytorium : "
+msgstr "Aktualizacje repozytorium : "
-#: ../yumcommands.py:770
+#: ../yumcommands.py:786
msgid "Repo-pkgs : "
-msgstr "Pakiety repozytorium : "
+msgstr "Pakiety repozytorium : "
-#: ../yumcommands.py:771
+#: ../yumcommands.py:787
msgid "Repo-size : "
-msgstr "Rozmiar repozytorium : "
+msgstr "Rozmiar repozytorium : "
-#: ../yumcommands.py:774
+#: ../yumcommands.py:794
msgid "Repo-baseurl: "
-msgstr "Podstawowy URL repozytorium : "
+msgstr "Podstawowy URL repozytorium : "
-#: ../yumcommands.py:778
+#: ../yumcommands.py:798
+msgid "Repo-metalink: "
+msgstr "MetaodnoÅnik repozytorium : "
+
+#: ../yumcommands.py:801
msgid "Repo-mirrors: "
-msgstr "Serwery lustrzane repozytorium: "
+msgstr "Serwery lustrzane repozytorium : "
-#: ../yumcommands.py:782
+#: ../yumcommands.py:805
msgid "Repo-exclude: "
-msgstr "Wykluczenia z repozytorium: "
+msgstr "Wykluczenia z repozytorium : "
-#: ../yumcommands.py:786
+#: ../yumcommands.py:809
msgid "Repo-include: "
-msgstr "DoÅÄ
czone z repozytorium: "
+msgstr "DoÅÄ
czone z repozytorium : "
-#: ../yumcommands.py:812
+#: ../yumcommands.py:835
msgid "Display a helpful usage message"
msgstr "WyÅwietl pomocny komunikat o używaniu"
-#: ../yumcommands.py:846
+#: ../yumcommands.py:869
#, python-format
msgid "No help available for %s"
msgstr "Brak pomocy dla %s"
-#: ../yumcommands.py:851
+#: ../yumcommands.py:874
msgid ""
"\n"
"\n"
@@ -1173,7 +1189,7 @@ msgstr ""
"\n"
"aliasy: "
-#: ../yumcommands.py:853
+#: ../yumcommands.py:876
msgid ""
"\n"
"\n"
@@ -1183,11 +1199,11 @@ msgstr ""
"\n"
"alias: "
-#: ../yumcommands.py:882
+#: ../yumcommands.py:905
msgid "Setting up Reinstall Process"
msgstr "Ustawianie procesu ponownej instalacji"
-#: ../yumcommands.py:896
+#: ../yumcommands.py:919
msgid "reinstall a package"
msgstr "ponownie zainstaluj pakiet"
@@ -1800,8 +1816,8 @@ msgstr "Nie można znaleÅºÄ krotki pakietu %s w zestawie pakietów"
msgid ""
"getInstalledPackageObject() will go away, use self.rpmdb.searchPkgTuple().\n"
msgstr ""
-"getInstalledPackageObject() zostanie usuniÄte, użyj "
-"self.rpmdb.searchPkgTuple().\n"
+"getInstalledPackageObject() zostanie usuniÄte, użyj self.rpmdb.searchPkgTuple"
+"().\n"
#: ../yum/__init__.py:2057 ../yum/__init__.py:2100
msgid "Invalid versioned dependency string, try quoting it."
@@ -1830,7 +1846,7 @@ msgstr "Nie podano nic do zainstalowania"
msgid "Checking for virtual provide or file-provide for %s"
msgstr "Sprawdzanie wirtualnych zależnoÅci lub plików dla %s"
-#: ../yum/__init__.py:2305 ../yum/__init__.py:2681
+#: ../yum/__init__.py:2305 ../yum/__init__.py:2687
#, python-format
msgid "No Match for argument: %s"
msgstr "Brak wyników dla parametru: %s"
@@ -1887,31 +1903,31 @@ msgstr "Pakiet zostaÅ już zastÄ
piony: %s.%s %s:%s-%s"
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:2678
+#: ../yum/__init__.py:2684
#, python-format
msgid "%s"
msgstr "%s"
-#: ../yum/__init__.py:2694
+#: ../yum/__init__.py:2700
msgid "No package matched to remove"
msgstr "Brak pasujÄ
cych pakietów do usuniÄcia"
-#: ../yum/__init__.py:2728
+#: ../yum/__init__.py:2734
#, python-format
msgid "Cannot open file: %s. Skipping."
msgstr "Nie można otworzyÄ pliku: %s. Pomijanie."
-#: ../yum/__init__.py:2731
+#: ../yum/__init__.py:2737
#, python-format
msgid "Examining %s: %s"
msgstr "Sprawdzanie %s: %s"
-#: ../yum/__init__.py:2739
+#: ../yum/__init__.py:2745
#, 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:2747
+#: ../yum/__init__.py:2753
#, python-format
msgid ""
"Package %s not installed, cannot update it. Run yum install to install it "
@@ -1920,83 +1936,83 @@ msgstr ""
"Pakiet %s nie jest zainstalowany, nie można go zaktualizowaÄ. Uruchom yum "
"install, aby go zainstalowaÄ."
-#: ../yum/__init__.py:2780
+#: ../yum/__init__.py:2786
#, python-format
msgid "Excluding %s"
msgstr "Wykluczanie %s"
-#: ../yum/__init__.py:2785
+#: ../yum/__init__.py:2791
#, python-format
msgid "Marking %s to be installed"
msgstr "Oznaczanie %s do zainstalowania"
-#: ../yum/__init__.py:2791
+#: ../yum/__init__.py:2797
#, python-format
msgid "Marking %s as an update to %s"
msgstr "Oznaczanie %s jako aktualizacji %s"
-#: ../yum/__init__.py:2798
+#: ../yum/__init__.py:2804
#, python-format
msgid "%s: does not update installed package."
msgstr "%s: nie aktualizuj zainstalowanego pakietu."
-#: ../yum/__init__.py:2816
+#: ../yum/__init__.py:2822
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:2827
+#: ../yum/__init__.py:2833
#, python-format
msgid "Package %s is allowed multiple installs, skipping"
msgstr "Pakiet %s może byÄ wielokrotnie instalowany, pomijanie"
-#: ../yum/__init__.py:2834
+#: ../yum/__init__.py:2840
msgid "Problem in reinstall: no package matched to install"
msgstr ""
"Podczas ponownego instalowania wystÄ
piÅ problem: brak pasujÄ
cych pakietów do "
"zainstalowania"
-#: ../yum/__init__.py:2869
+#: ../yum/__init__.py:2875
#, python-format
msgid "Retrieving GPG key from %s"
msgstr "Pobieranie klucza GPG z %s"
-#: ../yum/__init__.py:2875
+#: ../yum/__init__.py:2895
msgid "GPG key retrieval failed: "
msgstr "Pobranie klucza GPG nie powiodÅo siÄ: "
-#: ../yum/__init__.py:2886
+#: ../yum/__init__.py:2906
#, 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:2918
+#: ../yum/__init__.py:2938
#, 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:2923 ../yum/__init__.py:2985
+#: ../yum/__init__.py:2943 ../yum/__init__.py:3005
#, python-format
msgid "Importing GPG key 0x%s \"%s\" from %s"
msgstr "Importowanie klucza GPG 0x%s \"%s\" z %s"
-#: ../yum/__init__.py:2940
+#: ../yum/__init__.py:2960
msgid "Not installing key"
msgstr "Klucz nie zostanie zainstalowany"
-#: ../yum/__init__.py:2946
+#: ../yum/__init__.py:2966
#, python-format
msgid "Key import failed (code %d)"
msgstr "Zaimportowanie klucza nie powiodÅo siÄ (kod %d)"
-#: ../yum/__init__.py:2947 ../yum/__init__.py:3006
+#: ../yum/__init__.py:2967 ../yum/__init__.py:3026
msgid "Key imported successfully"
msgstr "Klucz zostaÅ pomyÅlnie zaimportowany"
-#: ../yum/__init__.py:2952 ../yum/__init__.py:3011
+#: ../yum/__init__.py:2972 ../yum/__init__.py:3031
#, python-format
msgid ""
"The GPG keys listed for the \"%s\" repository are already installed but they "
@@ -2008,33 +2024,33 @@ msgstr ""
"Sprawdź, czy dla tego repozytorium skonfigurowane sÄ
poprawne adresy do "
"kluczy."
-#: ../yum/__init__.py:2961
+#: ../yum/__init__.py:2981
msgid "Import of key(s) didn't help, wrong key(s)?"
msgstr "Zaimportowanie kluczy nie pomogÅo, bÅÄdne klucze?"
-#: ../yum/__init__.py:2980
+#: ../yum/__init__.py:3000
#, python-format
msgid "GPG key at %s (0x%s) is already imported"
msgstr "Klucz GPG %s (0x%s) zostaŠjuż zaimportowany"
-#: ../yum/__init__.py:3000
+#: ../yum/__init__.py:3020
#, python-format
msgid "Not installing key for repo %s"
msgstr "Klucz dla repozytorium %s nie zostanie zainstalowany"
-#: ../yum/__init__.py:3005
+#: ../yum/__init__.py:3025
msgid "Key import failed"
msgstr "Zaimportowanie klucza nie powiodÅo siÄ"
-#: ../yum/__init__.py:3096
+#: ../yum/__init__.py:3116
msgid "Unable to find a suitable mirror."
msgstr "Nie można znaleÅºÄ odpowiedniego serwera lustrzanego."
-#: ../yum/__init__.py:3098
+#: ../yum/__init__.py:3118
msgid "Errors were encountered while downloading packages."
msgstr "Podczas pobierania pakietów wystÄ
piÅy bÅÄdy."
-#: ../yum/__init__.py:3162
+#: ../yum/__init__.py:3182
msgid "Test Transaction Errors: "
msgstr "BÅÄdy testu transakcji: "
commit cfe3b8342976ba05e140d776ba67660c893cabd5
Author: James Antill <james at and.org>
Date: Mon Oct 27 00:09:58 2008 -0400
Check if the package has appeared before we try and download it, bug 468401
diff --git a/yum/__init__.py b/yum/__init__.py
index d679fca..3806a5c 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -1124,6 +1124,21 @@ class YumBase(depsolve.Depsolve):
i = 0
local_size = 0
for po in remote_pkgs:
+ # Recheck if the file is there, works around a couple of weird
+ # edge cases.
+ local = po.localPkg()
+ if os.path.exists(local):
+ if self.verifyPkg(local, po, False):
+ self.verbose_logger.debug(_("using local copy of %s") %(po,))
+ i -= 1
+ remote_size -= po.size
+ if hasattr(urlgrabber.progress, 'text_meter_total_size'):
+ urlgrabber.progress.text_meter_total_size(remote_size,
+ local_size)
+ continue
+ if os.path.getsize(local) >= po.size:
+ os.unlink(local)
+
i += 1
checkfunc = (self.verifyPkg, (po, 1), {})
dirstat = os.statvfs(po.repo.pkgdir)
@@ -1137,7 +1152,7 @@ class YumBase(depsolve.Depsolve):
continue
try:
- if len(remote_pkgs) == 1:
+ if i == 1 and not local_size and remote_size == po.size:
text = os.path.basename(po.relativepath)
else:
text = '(%s/%s): %s' % (i, len(remote_pkgs),
commit 1bef8a2fb6e99d009f485bec37ed6cab77c5155f
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date: Sun Oct 26 13:53:39 2008 +0100
updated german translation by Fabian Affolter
diff --git a/po/de.po b/po/de.po
index 411eedf..2e31f46 100644
--- a/po/de.po
+++ b/po/de.po
@@ -1,37 +1,54 @@
+# German translation of yum
+# Copyright (C) 2006 Duke
+# This file is distributed under the same license as the yum package.
# Fabian Affolter <fab at fedoraproject.org>, 2007,2008.
# Dominik Sandjaja <dominiksandjaja at fedoraproject.org>, 2008.
-# Thomas Spura <tomspur at fedoraproject.org>, 2008
+# Thomas Spura <tomspur at fedoraproject.org>, 2008.
#
msgid ""
msgstr ""
"Project-Id-Version: yum\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-03-25 11:29+0100\n"
-"PO-Revision-Date: 2008-09-11 15:51+0100\n"
+"POT-Creation-Date: 2008-10-17 02:09+0000\n"
+"PO-Revision-Date: 2008-10-23 09:23+0100\n"
"Last-Translator: Fabian Affolter <fab at fedoraproject.org>\n"
"Language-Team: German <fedora-trans-de at redhat.com>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: German\n"
-#: ../callback.py:48 ../output.py:512
+#: ../callback.py:48
+#: ../output.py:777
+#: ../yum/rpmtrans.py:71
msgid "Updating"
msgstr "Aktualisieren"
#: ../callback.py:49
+#: ../yum/rpmtrans.py:72
msgid "Erasing"
msgstr "Löschen"
-#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:511
+#. Arch can't get "that big" ... so always use the max.
+#: ../callback.py:50
+#: ../callback.py:51
+#: ../callback.py:53
+#: ../output.py:776
+#: ../yum/rpmtrans.py:73
+#: ../yum/rpmtrans.py:74
+#: ../yum/rpmtrans.py:76
msgid "Installing"
msgstr "Installieren"
-#: ../callback.py:52 ../callback.py:58
+#: ../callback.py:52
+#: ../callback.py:58
+#: ../yum/rpmtrans.py:75
msgid "Obsoleted"
msgstr "Veraltet"
-#: ../callback.py:54 ../output.py:558
+#: ../callback.py:54
+#: ../output.py:890
msgid "Updated"
msgstr "Aktualisiert"
@@ -39,7 +56,10 @@ msgstr "Aktualisiert"
msgid "Erased"
msgstr "Gelöscht"
-#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:556
+#: ../callback.py:56
+#: ../callback.py:57
+#: ../callback.py:59
+#: ../output.py:888
msgid "Installed"
msgstr "Installiert"
@@ -62,491 +82,566 @@ msgstr "Fehler: Ungültiger Ausgabe-Zustand: %s for %s"
msgid "Erased: %s"
msgstr "Gelöscht: %s"
-#: ../callback.py:217 ../output.py:513
+#: ../callback.py:217
+#: ../output.py:778
msgid "Removing"
msgstr "Entfernen"
#: ../callback.py:219
+#: ../yum/rpmtrans.py:77
msgid "Cleanup"
msgstr "Aufräumen"
-#: ../cli.py:103
+#: ../cli.py:105
#, python-format
msgid "Command \"%s\" already defined"
msgstr "Befehl \"%s\" ist bereits definiert"
-#: ../cli.py:115
+#: ../cli.py:117
msgid "Setting up repositories"
msgstr "Repositories werden eingerichtet"
-#: ../cli.py:126
+#: ../cli.py:128
msgid "Reading repository metadata in from local files"
msgstr "Lese Repository-Metadaten aus lokalen Dateien ein"
-#: ../cli.py:183 ../utils.py:72
+#: ../cli.py:187
+#: ../utils.py:71
#, python-format
msgid "Config Error: %s"
msgstr "Konfigurationsfehler: %s"
-#: ../cli.py:186 ../cli.py:1068 ../utils.py:75
+#: ../cli.py:190
+#: ../cli.py:1125
+#: ../utils.py:74
#, python-format
msgid "Options Error: %s"
msgstr "Optionenfehler: %s"
-#: ../cli.py:229
+#: ../cli.py:218
+#, python-format
+msgid " Installed: %s-%s at %s"
+msgstr " Installiert: %s-%s am %s"
+
+#: ../cli.py:220
+#, python-format
+msgid " Built : %s at %s"
+msgstr " Gebaut : %s am %s"
+
+#: ../cli.py:222
+#, python-format
+msgid " Committed: %s at %s"
+msgstr " Ãnermittelt: %s am %s"
+
+#: ../cli.py:259
msgid "You need to give some command"
-msgstr "Sie müssen ein paar Befehle eingeben"
+msgstr "Sie müssen irgendeinen Befehl eingeben"
-#: ../cli.py:271
+#: ../cli.py:301
msgid "Disk Requirements:\n"
msgstr "Festplattenplatz-Anforderungen:\n"
-#: ../cli.py:273
+#: ../cli.py:303
#, python-format
msgid " At least %dMB needed on the %s filesystem.\n"
msgstr " Mindestens %d MB werden auf dem Dateisystem %s benötigt.\n"
#. TODO: simplify the dependency errors?
#. Fixup the summary
-#: ../cli.py:278
+#: ../cli.py:308
msgid ""
"Error Summary\n"
"-------------\n"
msgstr ""
-"Fehlerzusammenfassung\n"
+"Fehler-Zusammenfassung\n"
"-------------\n"
-#: ../cli.py:317
+#: ../cli.py:351
msgid "Trying to run the transaction but nothing to do. Exiting."
msgstr "Versuche Transaktion auzuführen, aber es ist nichts zu tun. Beende."
-#: ../cli.py:347
+#: ../cli.py:381
msgid "Exiting on user Command"
-msgstr "Beende auf Benutzer-Befehl hin"
+msgstr "Beende nach Befehl des Benutzers"
-#: ../cli.py:351
+#: ../cli.py:385
msgid "Downloading Packages:"
msgstr "Lade Pakete herunter:"
-#: ../cli.py:356
+#: ../cli.py:390
msgid "Error Downloading Packages:\n"
msgstr "Fehler beim Herunterladen der Pakete:\n"
-#: ../cli.py:370 ../yum/__init__.py:2746
+#: ../cli.py:404
+#: ../yum/__init__.py:3133
msgid "Running rpm_check_debug"
msgstr "Führe rpm_check_debug durch"
-#: ../cli.py:373 ../yum/__init__.py:2749
+#: ../cli.py:407
+#: ../yum/__init__.py:3136
msgid "ERROR with rpm_check_debug vs depsolve:"
msgstr "FEHLER mit rpm_check_debug gegen depsolve:"
-#: ../cli.py:377 ../yum/__init__.py:2751
+#: ../cli.py:411
+#: ../yum/__init__.py:3138
msgid "Please report this error in bugzilla"
msgstr "Bitte melden Sie diesen Fehler in Bugzilla"
-#: ../cli.py:383
+#: ../cli.py:417
msgid "Running Transaction Test"
msgstr "Führe Verarbeitungsstest durch"
-#: ../cli.py:399
+#: ../cli.py:433
msgid "Finished Transaction Test"
msgstr "Verarbeitungstest beendet"
-#: ../cli.py:401
+#: ../cli.py:435
msgid "Transaction Check Error:\n"
msgstr "Prüffehler bei Verarbeitung:\n"
-#: ../cli.py:408
+#: ../cli.py:442
msgid "Transaction Test Succeeded"
msgstr "Verarbeitungstest erfolgreich"
-#: ../cli.py:429
+#: ../cli.py:463
msgid "Running Transaction"
msgstr "Führe Verarbeitung durch"
-#: ../cli.py:459
+#: ../cli.py:493
msgid ""
"Refusing to automatically import keys when running unattended.\n"
"Use \"-y\" to override."
msgstr ""
-"Verweigere automatischen Import der Schlüssel, wenn unbeaufsichtigt "
-"ausgeführt.\n"
+"Verweigere automatischen Import der Schlüssel, wenn unbeaufsichtigt ausgeführt.\n"
"Benutze \"-y\" zum Ãberschreiben."
-#: ../cli.py:491
-msgid "Parsing package install arguments"
-msgstr "Analysiere Installationsargumente des Pakets"
+#: ../cli.py:512
+#: ../cli.py:545
+msgid " * Maybe you meant: "
+msgstr " * Meinten Sie vielleicht:"
-#: ../cli.py:501
+#: ../cli.py:528
+#: ../cli.py:536
#, python-format
-msgid "No package %s available."
-msgstr "Kein Paket %s verfügbar."
+msgid "Package(s) %s%s%s available, but not installed."
+msgstr "Paket(e) %s%s%s verfügbar, aber nicht installiert."
+
+#: ../cli.py:542
+#: ../cli.py:577
+#, python-format
+msgid "No package %s%s%s available."
+msgstr "Kein Paket %s%s%s verfügbar."
+
+#: ../cli.py:567
+msgid "Parsing package install arguments"
+msgstr "Analysiere Installationsargumente des Pakets"
-#: ../cli.py:505 ../cli.py:623 ../yumcommands.py:748
+#: ../cli.py:582
+#: ../cli.py:657
+#: ../yumcommands.py:889
msgid "Package(s) to install"
msgstr "Paket(e) zum Installieren"
-#: ../cli.py:506 ../cli.py:624 ../yumcommands.py:146 ../yumcommands.py:749
+#: ../cli.py:583
+#: ../cli.py:658
+#: ../yumcommands.py:150
+#: ../yumcommands.py:890
msgid "Nothing to do"
msgstr "Nichts zu tun"
-#: ../cli.py:536 ../yum/__init__.py:2232 ../yum/__init__.py:2311
-#: ../yum/__init__.py:2340
-#, python-format
-msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
-msgstr "Aktualisiere Paket nicht, da es bereits veraltet ist: %s.%s %s:%s-%s"
-
-#: ../cli.py:568
-#, python-format
-msgid "Could not find update match for %s"
-msgstr "Kann keine Aktualisierungsübereinstimmung finden für %s"
-
-#: ../cli.py:580
+#: ../cli.py:616
#, python-format
msgid "%d packages marked for Update"
msgstr "%d Pakete zur Aktualisierung markiert"
-#: ../cli.py:583
+#: ../cli.py:619
msgid "No Packages marked for Update"
-msgstr "Keine Pakete für die Aktualisierung angegeben"
+msgstr "Keine Pakete für die Aktualisierung markiert"
-#: ../cli.py:599
+#: ../cli.py:633
#, python-format
msgid "%d packages marked for removal"
-msgstr "%d Pakete für die Entfernung angegeben"
+msgstr "%d Pakete für die Entfernung markiert"
-#: ../cli.py:602
+#: ../cli.py:636
msgid "No Packages marked for removal"
-msgstr "Keine Pakete für die Entfernung angegeben"
+msgstr "Keine Pakete für die Entfernung markiert"
-#: ../cli.py:614
+#: ../cli.py:648
msgid "No Packages Provided"
msgstr "Keine Pakete bereitgestellt"
-#: ../cli.py:654
+#: ../cli.py:689
msgid "Matching packages for package list to user args"
msgstr "Ãbereinstimmende Pakete für Paket-Liste nach Benutzer-Argument"
-#: ../cli.py:701
+#: ../cli.py:731
#, python-format
msgid "Warning: No matches found for: %s"
msgstr "Warnung: Keine Ãbereinstimmung gefunden für: %s"
-#: ../cli.py:704
+#: ../cli.py:734
msgid "No Matches found"
msgstr "Keine Ãbereinstimmungen gefunden"
-#: ../cli.py:745
+# dies geht sicher auch noch verständlicher. Fabian
+#: ../cli.py:773
+#, python-format
+msgid ""
+"Warning: 3.0.x versions of yum would erronously match against filenames.\n"
+" You can use \"%s*/%s%s\" and/or \"%s*bin/%s%s\" to get that behaviour"
+msgstr ""
+"Warnung: 3.0.x Versionen von yum stimmen irrtümlicherweisen gegen Dateinamen überein.\n"
+" Sie können \"%s*/%s%s\" und/oder \"%s*bin/%s%s\" benutzen, um dieses Verhalten zu bekommen"
+
+#: ../cli.py:789
#, python-format
msgid "No Package Found for %s"
msgstr "Kein Paket gefunden für %s"
# Räume auf, säubere...weiss jemand eine Ãbersetzung, welche nicht an den Staubsauger erinnert. Fabian
-#: ../cli.py:757
+#: ../cli.py:801
msgid "Cleaning up Everything"
msgstr "Räume alles auf"
-#: ../cli.py:771
+#: ../cli.py:815
msgid "Cleaning up Headers"
msgstr "Räume Header auf"
-#: ../cli.py:774
+#: ../cli.py:818
msgid "Cleaning up Packages"
msgstr "Räume Pakete auf"
-#: ../cli.py:777
+#: ../cli.py:821
msgid "Cleaning up xml metadata"
msgstr "Räume XML-Metadaten auf"
-#: ../cli.py:780
+#: ../cli.py:824
msgid "Cleaning up database cache"
msgstr "Räume Datenbank-Speicher auf"
-#: ../cli.py:783
+#: ../cli.py:827
msgid "Cleaning up expire-cache metadata"
msgstr "Räume Metadaten für abgelaufene Caches auf"
-#: ../cli.py:786
+#: ../cli.py:830
msgid "Cleaning up plugins"
msgstr "Räume Plugins auf"
-#: ../cli.py:807
+#: ../cli.py:851
msgid "Installed Groups:"
msgstr "Installierte Gruppen:"
-#: ../cli.py:814
+#: ../cli.py:858
msgid "Available Groups:"
msgstr "Verfügbare Gruppen:"
-#: ../cli.py:820
+#: ../cli.py:864
msgid "Done"
msgstr "Fertig"
-#: ../cli.py:829 ../cli.py:841 ../cli.py:847
+#: ../cli.py:875
+#: ../cli.py:893
+#: ../cli.py:899
+#: ../yum/__init__.py:2245
#, python-format
msgid "Warning: Group %s does not exist."
msgstr "Warnung: Gruppe %s existiert nicht."
-#: ../cli.py:853
+#: ../cli.py:903
msgid "No packages in any requested group available to install or update"
-msgstr ""
-"Keine Pakete in irgendeiner Gruppe verfügbar zum Installieren oder "
-"Aktualisieren"
+msgstr "Keine Pakete in irgendeiner Gruppe verfügbar zum Installieren oder Aktualisieren"
-#: ../cli.py:855
+#: ../cli.py:905
#, python-format
msgid "%d Package(s) to Install"
msgstr "%d Paket(e) zum Installieren"
-#: ../cli.py:865
+#: ../cli.py:915
+#: ../yum/__init__.py:2257
#, python-format
msgid "No group named %s exists"
-msgstr "Keine Gruppe existiert mit dem Namen %s"
+msgstr "Es existiert keine Gruppe mit dem Namen %s"
-#: ../cli.py:871
+#: ../cli.py:921
msgid "No packages to remove from groups"
msgstr "Keine Pakete zum Entfernen aus dem Gruppen gefunden"
-#: ../cli.py:873
+#: ../cli.py:923
#, python-format
msgid "%d Package(s) to remove"
msgstr "%d Paket(e) zum Entfernen"
-#: ../cli.py:915
+#: ../cli.py:965
#, python-format
msgid "Package %s is already installed, skipping"
msgstr "Paket %s ist bereits installiert, überspringe"
-#: ../cli.py:926
+#: ../cli.py:976
#, python-format
msgid "Discarding non-comparable pkg %s.%s"
msgstr "Verwerfe nicht vergleichbare Pakete %s.%s"
#. we've not got any installed that match n or n+a
-#: ../cli.py:952
+#: ../cli.py:1002
#, python-format
msgid "No other %s installed, adding to list for potential install"
-msgstr ""
-"Kein anderes %s installiert, füge es zur Liste für eine potentielle "
-"Installation hinzu"
+msgstr "Kein anderes %s installiert, füge es zur Liste für eine potentielle Installation hinzu"
-#: ../cli.py:971
+#: ../cli.py:1021
#, python-format
msgid "Command line error: %s"
msgstr "Kommandozeilen-Fehler: %s"
-#: ../cli.py:1101
+#: ../cli.py:1034
+#, python-format
+msgid ""
+"\n"
+"\n"
+"%s: %s option requires an argument"
+msgstr ""
+"\n"
+"\n"
+"%s: %s Option benötigt ein Argument"
+
+#: ../cli.py:1167
+msgid "show this help message and exit"
+msgstr "Hilfeinformation anzeigen und beenden"
+
+#: ../cli.py:1171
msgid "be tolerant of errors"
msgstr "fehlertolerant sein"
-#: ../cli.py:1103
+#: ../cli.py:1173
msgid "run entirely from cache, don't update cache"
-msgstr ""
-"laufe komplett aus dem Zwischenspeicher, aktualisiere Zwischenspeicher nicht"
+msgstr "laufe komplett aus dem Zwischenspeicher, aktualisiere Zwischenspeicher nicht"
-#: ../cli.py:1105
+#: ../cli.py:1175
msgid "config file location"
msgstr "Ort der Konfigurationsdatei"
-#: ../cli.py:1107
+#: ../cli.py:1177
msgid "maximum command wait time"
msgstr "maximale Befehlswartezeit"
-#: ../cli.py:1109
+#: ../cli.py:1179
msgid "debugging output level"
msgstr "Debugging-Ausgabe-Stufe"
-#: ../cli.py:1113
+#: ../cli.py:1183
msgid "show duplicates, in repos, in list/search commands"
msgstr "Zeige Duplikate, in Repos, in Listen/Suchen-Befehlen"
-#: ../cli.py:1115
+#: ../cli.py:1185
msgid "error output level"
msgstr "Fehler-Ausgabe-Stufe"
-#: ../cli.py:1118
+#: ../cli.py:1188
msgid "quiet operation"
msgstr "Stiller Betrieb"
-#: ../cli.py:1122
+#: ../cli.py:1190
+msgid "verbose operation"
+msgstr "Wortreicher Betrieb"
+
+#: ../cli.py:1192
msgid "answer yes for all questions"
msgstr "Beantworte alle Fragen mit 'ja'"
-#: ../cli.py:1124
+#: ../cli.py:1194
msgid "show Yum version and exit"
-msgstr "Versionsinformationen anzeigen und Programm beenden"
+msgstr "Yum-Version anzeigen und Programm beenden"
-#: ../cli.py:1125
+#: ../cli.py:1195
msgid "set install root"
msgstr "Wurzel-Installationsverzeichnis setzen"
-#: ../cli.py:1129
+#: ../cli.py:1199
msgid "enable one or more repositories (wildcards allowed)"
msgstr "aktiviere eines oder mehrere Repositories (Wildcards erlaubt)"
-#: ../cli.py:1133
+#: ../cli.py:1203
msgid "disable one or more repositories (wildcards allowed)"
msgstr "deaktiviere eines oder mehrere Repositories (Wildcards erlaubt)"
-#: ../cli.py:1136
+#: ../cli.py:1206
msgid "exclude package(s) by name or glob"
msgstr "schliesse Paket(e) nach Namen oder global aus"
-#: ../cli.py:1138
+#: ../cli.py:1208
msgid "disable exclude from main, for a repo or for everything"
msgstr "deaktiviere Ausschluss von 'main', einem Repository oder allem"
-#: ../cli.py:1141
+#: ../cli.py:1211
msgid "enable obsoletes processing during updates"
msgstr "aktiviere veraltetes Verarbeiten während Aktualisierung"
-#: ../cli.py:1143
+#: ../cli.py:1213
msgid "disable Yum plugins"
msgstr "deaktiviere Yum-Plugins"
-#: ../cli.py:1145
+#: ../cli.py:1215
msgid "disable gpg signature checking"
msgstr "deaktiviere GPG-Signatur-Prüfung"
-#: ../cli.py:1147
+#: ../cli.py:1217
msgid "disable plugins by name"
msgstr "deaktiviere Plugins nach Namen"
-#: ../cli.py:1150
+#: ../cli.py:1220
+msgid "enable plugins by name"
+msgstr "aktiviere Plugins nach Namen"
+
+#: ../cli.py:1223
msgid "skip packages with depsolving problems"
msgstr "überspringe Pakete mit Abhängigkeitsauflösungsproblemen"
-#: ../output.py:229
+#: ../output.py:236
msgid "Jan"
msgstr "Jan"
-#: ../output.py:229
+#: ../output.py:236
msgid "Feb"
msgstr "Feb"
-#: ../output.py:229
+#: ../output.py:236
msgid "Mar"
msgstr "Mär"
-#: ../output.py:229
+#: ../output.py:236
msgid "Apr"
msgstr "Apr"
-#: ../output.py:229
+#: ../output.py:236
msgid "May"
msgstr "Mai"
-#: ../output.py:229
+#: ../output.py:236
msgid "Jun"
msgstr "Jun"
-#: ../output.py:230
+#: ../output.py:237
msgid "Jul"
msgstr "Jul"
-#: ../output.py:230
+#: ../output.py:237
msgid "Aug"
msgstr "Aug"
-#: ../output.py:230
+#: ../output.py:237
msgid "Sep"
msgstr "Sep"
-#: ../output.py:230
+#: ../output.py:237
msgid "Oct"
msgstr "Okt"
-#: ../output.py:230
+#: ../output.py:237
msgid "Nov"
msgstr "Nov"
-#: ../output.py:230
+#: ../output.py:237
msgid "Dec"
msgstr "Dez"
-#: ../output.py:240
+#: ../output.py:247
msgid "Trying other mirror."
msgstr "Versuche anderen Spiegel-Server."
-#: ../output.py:293
+#: ../output.py:425
#, python-format
-msgid "Name : %s"
-msgstr "Name : %s"
+msgid "Name : %s%s%s"
+msgstr "Name : %s%s%s"
-#: ../output.py:294
+#: ../output.py:426
#, python-format
msgid "Arch : %s"
msgstr "Architektur : %s"
-#: ../output.py:296
+#: ../output.py:428
#, python-format
msgid "Epoch : %s"
msgstr "Epoch : %s"
-#: ../output.py:297
+#: ../output.py:429
#, python-format
msgid "Version : %s"
msgstr "Version : %s"
-#: ../output.py:298
+#: ../output.py:430
#, python-format
msgid "Release : %s"
msgstr "Ausgabe : %s"
-#: ../output.py:299
+#: ../output.py:431
#, python-format
msgid "Size : %s"
msgstr "Grösse : %s"
-#: ../output.py:300
+#: ../output.py:432
#, python-format
msgid "Repo : %s"
msgstr "Repo : %s"
-#: ../output.py:302
+#: ../output.py:434
#, python-format
msgid "Committer : %s"
msgstr "Ãbermittler : %s"
-#: ../output.py:303
+#: ../output.py:435
+#, python-format
+msgid "Committime : %s"
+msgstr "Ãbermittllungszeit : %s"
+
+#: ../output.py:436
+#, python-format
+msgid "Buildtime : %s"
+msgstr "Build-Zeit : %s"
+
+#: ../output.py:438
+#, python-format
+msgid "Installtime: %s"
+msgstr "Installationszeit: %s"
+
+#: ../output.py:439
msgid "Summary : "
msgstr "Zusammenfassung : "
-#: ../output.py:305
+#: ../output.py:441
#, python-format
msgid "URL : %s"
msgstr "URL : %s"
-#: ../output.py:306
+#: ../output.py:442
#, python-format
msgid "License : %s"
msgstr "Lizenz : %s"
-#: ../output.py:307
+#: ../output.py:443
msgid "Description: "
msgstr "Beschreibung:"
-#: ../output.py:351
-msgid "Is this ok [y/N]: "
-msgstr "Ist dies in Ordnung? [j/N] :"
-
-#: ../output.py:357 ../output.py:360
+#: ../output.py:500
msgid "y"
msgstr "j"
-#: ../output.py:357
-msgid "n"
-msgstr "n"
-
-#: ../output.py:357 ../output.py:360
+#: ../output.py:500
msgid "yes"
msgstr "ja"
-#: ../output.py:357
+#: ../output.py:501
+msgid "n"
+msgstr "n"
+
+#: ../output.py:501
msgid "no"
msgstr "nein"
-#: ../output.py:367
+#: ../output.py:505
+msgid "Is this ok [y/N]: "
+msgstr "Ist dies in Ordnung? [j/N] :"
+
+#: ../output.py:587
#, python-format
msgid ""
"\n"
@@ -555,96 +650,119 @@ msgstr ""
"\n"
"Gruppe: %s"
-#: ../output.py:369
+#: ../output.py:594
#, python-format
msgid " Description: %s"
msgstr " Beschreibung: %s"
-#: ../output.py:371
+#: ../output.py:596
msgid " Mandatory Packages:"
msgstr " Obligatorische Pakete:"
-#: ../output.py:376
+#: ../output.py:597
msgid " Default Packages:"
msgstr " Standard-Pakete:"
-#: ../output.py:381
+#: ../output.py:598
msgid " Optional Packages:"
msgstr " Optionale Pakete:"
-#: ../output.py:386
+#: ../output.py:599
msgid " Conditional Packages:"
msgstr " Zwangsbedingte Pakete:"
-#: ../output.py:394
+#: ../output.py:619
#, python-format
msgid "package: %s"
msgstr "Paket: %s"
-#: ../output.py:396
+#: ../output.py:621
msgid " No dependencies for this package"
msgstr " Keine Abhängigkeiten für dieses Paket"
-#: ../output.py:401
+#: ../output.py:626
#, python-format
msgid " dependency: %s"
msgstr " Abhängigkeit: %s"
-#: ../output.py:403
+#: ../output.py:628
msgid " Unsatisfied dependency"
msgstr " Nicht erfüllte Abhängigkeit"
-#: ../output.py:461
+#: ../output.py:700
msgid "Matched from:"
msgstr "Ãbereinstimmung von:"
-#: ../output.py:487
+#: ../output.py:708
+msgid "Description : "
+msgstr "Beschreibung : "
+
+#: ../output.py:711
+#, python-format
+msgid "URL : %s"
+msgstr "URL : %s"
+
+#: ../output.py:714
+#, python-format
+msgid "License : %s"
+msgstr "Lizenz : %s"
+
+#: ../output.py:717
+#, python-format
+msgid "Filename : %s"
+msgstr "Dateiname : %s"
+
+#: ../output.py:721
+msgid "Other : "
+msgstr "Andere : "
+
+#: ../output.py:753
msgid "There was an error calculating total download size"
msgstr "Fehler beim Berechnen der Gesamtgrösse der Downloads"
-#: ../output.py:492
+#: ../output.py:758
#, python-format
msgid "Total size: %s"
msgstr "Gesamtgrösse: %s"
-#: ../output.py:495
+#: ../output.py:761
#, python-format
msgid "Total download size: %s"
msgstr "Gesamte Downloadgrösse: %s"
-#: ../output.py:507
+#: ../output.py:779
+msgid "Installing for dependencies"
+msgstr "Installiert für Abhängigkeiten"
+
+#: ../output.py:780
+msgid "Updating for dependencies"
+msgstr "Aktualisiert für Abhängigkeiten"
+
+#: ../output.py:781
+msgid "Removing for dependencies"
+msgstr "Entfernt für Abhängigkeiten"
+
+#: ../output.py:817
msgid "Package"
msgstr "Paket"
-#: ../output.py:507
+#: ../output.py:817
msgid "Arch"
msgstr "Arch"
-#: ../output.py:507
+#: ../output.py:818
msgid "Version"
msgstr "Version"
-#: ../output.py:507
+#: ../output.py:818
msgid "Repository"
msgstr "Repository"
-#: ../output.py:507
+#: ../output.py:819
msgid "Size"
msgstr "Grösse"
-#: ../output.py:514
-msgid "Installing for dependencies"
-msgstr "Installiert für Abhängigkeiten"
-
-#: ../output.py:515
-msgid "Updating for dependencies"
-msgstr "Aktualisiert für Abhängigkeiten"
-
-#: ../output.py:516
-msgid "Removing for dependencies"
-msgstr "Entfernt für Abhängigkeiten"
-
-#: ../output.py:528
+#: ../output.py:830
#, python-format
msgid ""
" replacing %s.%s %s\n"
@@ -653,126 +771,127 @@ msgstr ""
" ersetze %s.%s %s\n"
"\n"
-#: ../output.py:536
+#: ../output.py:838
#, python-format
msgid ""
"\n"
"Transaction Summary\n"
-"=============================================================================\n"
+"%s\n"
"Install %5.5s Package(s) \n"
"Update %5.5s Package(s) \n"
"Remove %5.5s Package(s) \n"
msgstr ""
"\n"
"Transaktionszusammenfassung\n"
-"=============================================================================\n"
+"%s\n"
"Installieren %5.5s Paket(e) \n"
"Aktualisieren %5.5s Paket(e) \n"
"Enfernen %5.5s Paket(e) \n"
-#: ../output.py:554
+#: ../output.py:886
msgid "Removed"
msgstr "Entfernt"
-#: ../output.py:555
+#: ../output.py:887
msgid "Dependency Removed"
msgstr "Abhängigkeiten entfernt"
-#: ../output.py:557
+#: ../output.py:889
msgid "Dependency Installed"
msgstr "Abhängigkeit installiert"
-#: ../output.py:559
+#: ../output.py:891
msgid "Dependency Updated"
msgstr "Abhängigkeit aktualisiert"
-#: ../output.py:560
+#: ../output.py:892
msgid "Replaced"
msgstr "Ersetzt "
-#: ../output.py:618
+#: ../output.py:965
#, 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 to exit.\n"
msgstr ""
"\n"
-" Aktueller Download abgebrochen, %s unterbreche (ctrl-c) erneut %s innerhalb "
-"%s%s%s Sekunden bis Verlassen.\n"
+" Aktueller Download abgebrochen, %s unterbrechen Sie (ctrl-c) erneut %s innerhalb %s%s%s Sekunden zum Beenden.\n"
-#: ../output.py:628
+#: ../output.py:975
msgid "user interrupt"
msgstr "Benutzer-Unterbrechung"
-#: ../output.py:639
+#: ../output.py:991
+msgid "Total"
+msgstr "Total"
+
+#: ../output.py:1005
msgid "installed"
msgstr "installiert"
-#: ../output.py:640
+#: ../output.py:1006
msgid "updated"
msgstr "aktualisiert"
-#: ../output.py:641
+#: ../output.py:1007
msgid "obsoleted"
msgstr "veraltet"
-#: ../output.py:642
+#: ../output.py:1008
msgid "erased"
msgstr "gelöscht"
# Dies ist das Sorgenkind. So weit ich weiss, werden die Verben von oben bezogen. Eventuell könnte auch eine radikale Ãnderung eine Lösung sein. Fabian
-#: ../output.py:646
+#: ../output.py:1012
#, python-format
msgid "---> Package %s.%s %s:%s-%s set to be %s"
-msgstr "---> Paket %s.%s %s:%s-%s gesetzt, um %s zu werden"
+msgstr "---> Paket %s.%s %s:%s-%s markiert, um %s zu werden"
-#: ../output.py:653
+#: ../output.py:1019
msgid "--> Running transaction check"
msgstr "--> Führe Transaktionsprüfung aus"
-#: ../output.py:658
+#: ../output.py:1024
msgid "--> Restarting Dependency Resolution with new changes."
msgstr "--> Starte Abhängigkeitsauflösung mit den neuen Ãnderungen neu."
-#: ../output.py:663
+#: ../output.py:1029
msgid "--> Finished Dependency Resolution"
msgstr "--> Abhängigkeitsauflösung beendet"
-#: ../output.py:668
+#: ../output.py:1034
#, python-format
msgid "--> Processing Dependency: %s for package: %s"
msgstr "--> Verarbeite Abhängigkeiten: %s für Paket: %s"
-#: ../output.py:673
+#: ../output.py:1039
#, python-format
msgid "--> Unresolved Dependency: %s"
msgstr "--> Nicht aufgelöste Abhängigkeit: %s"
-#: ../output.py:679
+#: ../output.py:1045
#, python-format
msgid "--> Processing Conflict: %s conflicts %s"
msgstr "--> Verarbeite Konflikt: %s kollidiert mit %s"
-#: ../output.py:682
+#: ../output.py:1048
msgid "--> Populating transaction set with selected packages. Please wait."
msgstr "--> Fülle Verarbeitungsset mit ausgewählten Paketen. Bitte warten."
-#: ../output.py:686
+#: ../output.py:1052
#, python-format
msgid "---> Downloading header for %s to pack into transaction set."
msgstr "---> Lade Header für %s herunter, um ins Verarbeitungsset zu packen."
-#: ../yumcommands.py:36
+#: ../yumcommands.py:40
msgid "You need to be root to perform this command."
msgstr "Sie müssen root sein, um diesen Befehl ausführen zu können."
-#: ../yumcommands.py:43
+#: ../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"
@@ -785,10 +904,8 @@ msgid ""
"For more information contact your distribution or package provider.\n"
msgstr ""
"\n"
-"Sie haben das Ãberprüfen der Pakete via GPG-Schlüssel aktiviert. Dies ist "
-"eine gute Sache. \n"
-"Allerdings haben Sie nicht alle öffentlichen GPG-Schlüssel installiert. Sie "
-"müssen die\n"
+"Sie haben das Ãberprüfen der Pakete via GPG-Schlüssel aktiviert. Dies ist eine gute Sache. \n"
+"Allerdings haben Sie nicht alle öffentlichen GPG-Schlüssel installiert. Sie müssen die\n"
"gewünschten Schlüssel für die Pakete herunterladen und installieren.\n"
"Sie können dies mit folgendem Befehl machen:\n"
" rpm --import public.gpg.key\n"
@@ -798,254 +915,293 @@ msgstr ""
"für ein Repository, durch die 'gpgkey'-Option in einem Repository-Bereich\n"
"angeben und yum wird ihn für Sie installieren.\n"
"\n"
-"Für weitere Informationen kontaktieren Sie Ihre Distribution oder Ihren "
-"Paket-Bereitsteller.\n"
+"Für weitere Informationen kontaktieren Sie Ihre Distribution oder Ihren Paket-Anbieter.\n"
-#: ../yumcommands.py:63
+#: ../yumcommands.py:67
#, python-format
msgid "Error: Need to pass a list of pkgs to %s"
msgstr "Fehler: Muss eine Liste von Paketen an %s übergeben"
-#: ../yumcommands.py:69
+#: ../yumcommands.py:73
msgid "Error: Need an item to match"
msgstr "Fehler: Brauche einen Begriff, der passt"
-#: ../yumcommands.py:75
+#: ../yumcommands.py:79
msgid "Error: Need a group or list of groups"
msgstr "Fehler: Brauche eine Gruppe oder eine Liste von Gruppen"
-#: ../yumcommands.py:84
+#: ../yumcommands.py:88
#, python-format
msgid "Error: clean requires an option: %s"
msgstr "Fehler: Aufräumen benötigt eine Option: %s"
-#: ../yumcommands.py:89
+#: ../yumcommands.py:93
#, python-format
msgid "Error: invalid clean argument: %r"
msgstr "Fehler: Ungültiges Argument für Aufräumen: %r"
-#: ../yumcommands.py:102
+#: ../yumcommands.py:106
msgid "No argument to shell"
msgstr "Kein Argument für Shell"
-#: ../yumcommands.py:105
+#: ../yumcommands.py:109
#, python-format
msgid "Filename passed to shell: %s"
msgstr "Dateinamen an Shell übergeben: %s"
-#: ../yumcommands.py:109
+#: ../yumcommands.py:113
#, python-format
msgid "File %s given as argument to shell does not exist."
msgstr "Datei %s, angegeben als Argument für Shell, existiert nicht."
-#: ../yumcommands.py:115
+#: ../yumcommands.py:119
msgid "Error: more than one file given as argument to shell."
msgstr "Fehler: mehr als eine Datei als Argument an die Shell übergeben."
-#: ../yumcommands.py:156
+#: ../yumcommands.py:160
msgid "PACKAGE..."
msgstr "PAKET..."
-#: ../yumcommands.py:159
+#: ../yumcommands.py:163
msgid "Install a package or packages on your system"
msgstr "Installiere ein Paket oder Pakete auf Ihrem System"
-#: ../yumcommands.py:168
+#: ../yumcommands.py:172
msgid "Setting up Install Process"
msgstr "Einrichten des Installationsprozess"
-#: ../yumcommands.py:179
+#: ../yumcommands.py:183
msgid "[PACKAGE...]"
msgstr "[PAKET...]"
-#: ../yumcommands.py:182
+#: ../yumcommands.py:186
msgid "Update a package or packages on your system"
msgstr "Aktualisiere ein Paket oder Pakete auf Ihrem System"
-#: ../yumcommands.py:190
+#: ../yumcommands.py:194
msgid "Setting up Update Process"
msgstr "Einrichten des Aktualisierungsprozess"
-#: ../yumcommands.py:204
+#: ../yumcommands.py:236
msgid "Display details about a package or group of packages"
msgstr "Zeige Details über ein Paket oder einer Gruppe von Pakete an"
-#: ../yumcommands.py:212
+#. Output the packages:
+#: ../yumcommands.py:261
msgid "Installed Packages"
msgstr "Installierte Pakete"
-#: ../yumcommands.py:213
+#: ../yumcommands.py:263
msgid "Available Packages"
msgstr "Verfügbare Pakete"
-#: ../yumcommands.py:214
+#: ../yumcommands.py:265
msgid "Extra Packages"
msgstr "Extra-Pakete"
-#: ../yumcommands.py:215
+#: ../yumcommands.py:267
msgid "Updated Packages"
msgstr "Aktualisierte Pakete"
-#: ../yumcommands.py:221 ../yumcommands.py:225
+#: ../yumcommands.py:274
+#: ../yumcommands.py:281
msgid "Obsoleting Packages"
msgstr "Veraltete Pakete"
-#: ../yumcommands.py:226
+#: ../yumcommands.py:283
msgid "Recently Added Packages"
msgstr "Kürzlich hinzugefügte Pakete"
-#: ../yumcommands.py:232
+#: ../yumcommands.py:290
msgid "No matching Packages to list"
msgstr "Keine übereinstimmenden Pakete zum Auflisten"
-#: ../yumcommands.py:246
+#: ../yumcommands.py:304
msgid "List a package or groups of packages"
msgstr "Liste von Pakete oder Gruppen von Paketen"
-#: ../yumcommands.py:258
+#: ../yumcommands.py:316
msgid "Remove a package or packages from your system"
msgstr "Entferne ein Paket oder Pakete auf Ihrem System"
-#: ../yumcommands.py:266
+#: ../yumcommands.py:324
msgid "Setting up Remove Process"
msgstr "Einrichten des Entfernungsprozess"
-#: ../yumcommands.py:278
+#: ../yumcommands.py:339
msgid "Setting up Group Process"
msgstr "Einrichten des Gruppenprozess"
-#: ../yumcommands.py:284
+#: ../yumcommands.py:345
msgid "No Groups on which to run command"
msgstr "Keine Gruppe, auf welcher der Befehl ausgeführt werden kann"
-#: ../yumcommands.py:297
+#: ../yumcommands.py:358
msgid "List available package groups"
msgstr "Verfügbare Gruppen anzeigen"
-#: ../yumcommands.py:314
+#: ../yumcommands.py:375
msgid "Install the packages in a group on your system"
msgstr "Installiere die Pakete in einer Gruppe auf Ihrem System"
-#: ../yumcommands.py:336
+#: ../yumcommands.py:397
msgid "Remove the packages in a group from your system"
msgstr "Entferne die Pakete in einer Gruppe von Ihrem System"
-#: ../yumcommands.py:360
+#: ../yumcommands.py:424
msgid "Display details about a package group"
msgstr "Zeigt Details über eine Paket-Gruppe an"
-#: ../yumcommands.py:384
+#: ../yumcommands.py:448
msgid "Generate the metadata cache"
msgstr "Generiere den Metadaten-Zwischenspeicher"
-#: ../yumcommands.py:390
+#: ../yumcommands.py:454
msgid "Making cache files for all metadata files."
msgstr "Erstelle Zwischenspeicherungsdatei für alle Metadaten-Dateien."
-#: ../yumcommands.py:391
+#: ../yumcommands.py:455
msgid "This may take a while depending on the speed of this computer"
-msgstr ""
-"Dies kann eine Weile dauert, abhängig von der Geschwindigkeit dieses "
-"Computers"
+msgstr "Dies kann eine Weile dauert, abhängig von der Geschwindigkeit dieses Computers"
-#: ../yumcommands.py:412
+#: ../yumcommands.py:476
msgid "Metadata Cache Created"
msgstr "Metadaten-Zwischenspeicher erstellt"
-#: ../yumcommands.py:426
+#: ../yumcommands.py:490
msgid "Remove cached data"
msgstr "Entferne gespeicherte Daten"
-#: ../yumcommands.py:447
+#: ../yumcommands.py:511
msgid "Find what package provides the given value"
-msgstr "Suche welches Paket den gegebenen Wert bereitstellen"
+msgstr "Suche ein Paket, welches den gegebenen Wert bereitstellen"
-#: ../yumcommands.py:467
+#: ../yumcommands.py:531
msgid "Check for available package updates"
msgstr "Ãberprüfe auf verfügbare Paket-Aktualisierungen"
-#: ../yumcommands.py:490
+#: ../yumcommands.py:556
msgid "Search package details for the given string"
-msgstr "Suche nach Paket-Details nach der gegebenen Zeichenkette"
+msgstr "Suche nach Paket-Details für die gegebene Zeichenkette"
-#: ../yumcommands.py:496
+#: ../yumcommands.py:562
msgid "Searching Packages: "
msgstr "Suche Pakete:"
-#: ../yumcommands.py:513
+#: ../yumcommands.py:579
msgid "Update packages taking obsoletes into account"
msgstr "Aktualisiere Pakete, berücksichtige veraltete"
-#: ../yumcommands.py:522
+#: ../yumcommands.py:588
msgid "Setting up Upgrade Process"
msgstr "Einrichten des Upgradeprozess"
-#: ../yumcommands.py:536
+#: ../yumcommands.py:602
msgid "Install a local RPM"
msgstr "Installiere ein lokales RPM"
-#: ../yumcommands.py:545
+#: ../yumcommands.py:611
msgid "Setting up Local Package Process"
msgstr "Einrichten der lokalen Paketverarbeitung"
-#: ../yumcommands.py:564
+#: ../yumcommands.py:630
msgid "Determine which package provides the given dependency"
msgstr "Bestimme, welche Pakete die gegebenen Abhängigkeiten bereitstellen"
-#: ../yumcommands.py:567
+#: ../yumcommands.py:633
msgid "Searching Packages for Dependency:"
msgstr "Suche Pakete für Abhängigkeit:"
-#: ../yumcommands.py:581
+#: ../yumcommands.py:647
msgid "Run an interactive yum shell"
msgstr "Führe eine interaktive Yum-Shell aus"
-#: ../yumcommands.py:587
+#: ../yumcommands.py:653
msgid "Setting up Yum Shell"
msgstr "Einrichten der Yum-Shell"
-#: ../yumcommands.py:605
+#: ../yumcommands.py:671
msgid "List a package's dependencies"
msgstr "Liste von Paket-Abhängigkeiten"
-#: ../yumcommands.py:611
+#: ../yumcommands.py:677
msgid "Finding dependencies: "
msgstr "Suche Abhängigkeiten:"
-#: ../yumcommands.py:627
+#: ../yumcommands.py:693
msgid "Display the configured software repositories"
msgstr "Zeige die konfigurierten Software-Repositories an"
-#: ../yumcommands.py:645
+#: ../yumcommands.py:742
+msgid "enabled"
+msgstr "aktiviert"
+
+#: ../yumcommands.py:751
+msgid "disabled"
+msgstr "deaktiviert"
+
+#: ../yumcommands.py:760
msgid "repo id"
msgstr "Repo-ID"
-#: ../yumcommands.py:645
+#: ../yumcommands.py:761
msgid "repo name"
msgstr "Repo-Name:"
-#: ../yumcommands.py:645
+#: ../yumcommands.py:761
msgid "status"
msgstr "Status"
-#: ../yumcommands.py:651
-msgid "enabled"
-msgstr "aktiviert"
+#: ../yumcommands.py:764
+msgid "Repo-id : "
+msgstr "Repo-ID : "
-#: ../yumcommands.py:654
-msgid "disabled"
-msgstr "deaktiviert"
+#: ../yumcommands.py:765
+msgid "Repo-name : "
+msgstr "Repo-Name : "
-#: ../yumcommands.py:671
+#: ../yumcommands.py:766
+msgid "Repo-status : "
+msgstr "Repo-Status : "
+
+#: ../yumcommands.py:768
+msgid "Repo-updated: "
+msgstr "Repo aktualisiert:"
+
+#: ../yumcommands.py:770
+msgid "Repo-pkgs : "
+msgstr "Repo-PKGS : "
+
+#: ../yumcommands.py:771
+msgid "Repo-size : "
+msgstr "Repo-Grösse : "
+
+#: ../yumcommands.py:774
+msgid "Repo-baseurl: "
+msgstr "Repo BaseURL:"
+
+#: ../yumcommands.py:778
+msgid "Repo-mirrors: "
+msgstr "Repo-Spiegel: "
+
+#: ../yumcommands.py:782
+msgid "Repo-exclude: "
+msgstr "Repo ausgeschlossen:"
+
+#: ../yumcommands.py:786
+msgid "Repo-include: "
+msgstr "Repo eingeschlossen:"
+
+#: ../yumcommands.py:812
msgid "Display a helpful usage message"
msgstr "Zeigt eine kurze Verwendungsinformation"
-#: ../yumcommands.py:705
+#: ../yumcommands.py:846
#, python-format
msgid "No help available for %s"
msgstr "Keine Hilfe für %s vorhanden"
-#: ../yumcommands.py:710
+#: ../yumcommands.py:851
msgid ""
"\n"
"\n"
@@ -1055,7 +1211,7 @@ msgstr ""
"\n"
"Aliase: "
-#: ../yumcommands.py:712
+#: ../yumcommands.py:853
msgid ""
"\n"
"\n"
@@ -1065,11 +1221,11 @@ msgstr ""
"\n"
"Alias: "
-#: ../yumcommands.py:741
+#: ../yumcommands.py:882
msgid "Setting up Reinstall Process"
msgstr "Einrichten des Neuinstallationsprozess"
-#: ../yumcommands.py:755
+#: ../yumcommands.py:896
msgid "reinstall a package"
msgstr "Installiere Paket neu"
@@ -1081,7 +1237,7 @@ msgid ""
msgstr ""
"\n"
"\n"
-"Verlasse nach Benutzer-Befehl"
+"Beende nach Abbruch durch den Benutzer"
#: ../yummain.py:47
msgid ""
@@ -1091,31 +1247,30 @@ msgid ""
msgstr ""
"\n"
"\n"
-"Verlasse wegen defekter Pipe"
+"Beende wegen defekter Pipe"
-#: ../yummain.py:105
-msgid ""
-"Another app is currently holding the yum lock; waiting for it to exit..."
-msgstr ""
-"Eine andere Anwendung hält momentan den Yum-Lock. Warte, dass sie endet "
-"wird..."
+#: ../yummain.py:98
+msgid "Another app is currently holding the yum lock; waiting for it to exit..."
+msgstr "Eine andere Anwendung hält momentan den Yum-Lock. Warte, dass sie beendet wird..."
-#: ../yummain.py:132 ../yummain.py:171
+#: ../yummain.py:125
+#: ../yummain.py:164
#, python-format
msgid "Error: %s"
msgstr "Fehler: %s"
-#: ../yummain.py:142 ../yummain.py:178
+#: ../yummain.py:135
+#: ../yummain.py:171
#, python-format
msgid "Unknown Error(s): Exit Code: %d:"
msgstr "Unbekannte(r) Fehlercode: Exit Code: %d:"
#. Depsolve stage
-#: ../yummain.py:149
+#: ../yummain.py:142
msgid "Resolving Dependencies"
msgstr "Löse Abhängigkeiten auf"
-#: ../yummain.py:184
+#: ../yummain.py:177
msgid ""
"\n"
"Dependencies Resolved"
@@ -1123,11 +1278,12 @@ msgstr ""
"\n"
"Abhängigkeiten aufgelöst"
-#: ../yummain.py:198
+#: ../yummain.py:191
msgid "Complete!"
msgstr "Komplett!"
-#: ../yummain.py:245
+# Ist eine ziemlich unschöne Ãbersetzung...Vorschläge? Fabian
+#: ../yummain.py:238
msgid ""
"\n"
"\n"
@@ -1135,324 +1291,320 @@ msgid ""
msgstr ""
"\n"
"\n"
-"Verlasse nach Benutzer-Anforderung."
+"Verlasse nach Abbruch durch den Benutzer."
-#: ../yum/depsolve.py:82
+#: ../yum/depsolve.py:84
msgid "doTsSetup() will go away in a future version of Yum.\n"
msgstr "doTsSetup() wird in zukünftigen Version von Yum verschwinden.\n"
-#: ../yum/depsolve.py:95
+#: ../yum/depsolve.py:97
msgid "Setting up TransactionSets before config class is up"
-msgstr ""
-"Konfiguriere TransactionSets bevor die Konfigurationsklasse gestartet ist"
+msgstr "Konfiguriere TransactionSets bevor die Konfigurationsklasse gestartet ist"
-#: ../yum/depsolve.py:136
+#: ../yum/depsolve.py:148
#, python-format
msgid "Invalid tsflag in config file: %s"
msgstr "Ungültiges tsflag in Konfigurationsdatei: %s"
-#: ../yum/depsolve.py:147
+#: ../yum/depsolve.py:159
#, python-format
msgid "Searching pkgSack for dep: %s"
msgstr "Suche pkgSack für Abhängigkeiten: %s"
-#: ../yum/depsolve.py:170
+#: ../yum/depsolve.py:182
#, python-format
msgid "Potential match for %s from %s"
msgstr "Potentielle Ãbereinstimmung für %s von %s"
-#: ../yum/depsolve.py:178
+#: ../yum/depsolve.py:190
#, python-format
msgid "Matched %s to require for %s"
msgstr "Ãbereinstimmung von %s, welche gebraucht wird für %s"
-#: ../yum/depsolve.py:219
+#: ../yum/depsolve.py:231
#, python-format
msgid "Member: %s"
msgstr "Mitglied: %s"
-#: ../yum/depsolve.py:233 ../yum/depsolve.py:696
+#: ../yum/depsolve.py:245
+#: ../yum/depsolve.py:732
#, python-format
msgid "%s converted to install"
msgstr "%s konvertiert zum Installieren"
-#: ../yum/depsolve.py:240
+#: ../yum/depsolve.py:252
#, python-format
msgid "Adding Package %s in mode %s"
msgstr "Füge Paket %s hinzu in Modus %s"
-#: ../yum/depsolve.py:250
+#: ../yum/depsolve.py:262
#, python-format
msgid "Removing Package %s"
msgstr "Entferne Paket %s"
-#: ../yum/depsolve.py:261
+#: ../yum/depsolve.py:273
#, python-format
msgid "%s requires: %s"
msgstr "%s benötigt: %s"
-#: ../yum/depsolve.py:312
+#: ../yum/depsolve.py:331
msgid "Needed Require has already been looked up, cheating"
msgstr "Benötigte Anforderung wurde bereits nachgeschlagen, betrüge"
-#: ../yum/depsolve.py:322
+#: ../yum/depsolve.py:341
#, python-format
msgid "Needed Require is not a package name. Looking up: %s"
msgstr "Benötigte Anforderung ist kein Paket-Name. Schlagen nach: %s"
-#: ../yum/depsolve.py:329
+#: ../yum/depsolve.py:348
#, python-format
msgid "Potential Provider: %s"
-msgstr "Potentieller Bereitsteller: %s"
+msgstr "Potentieller Anbieter: %s"
-#: ../yum/depsolve.py:352
+#: ../yum/depsolve.py:371
#, python-format
msgid "Mode is %s for provider of %s: %s"
-msgstr "Modus ist %s für Bereitsteller von %s: %s"
+msgstr "Modus ist %s für Anbieter von %s: %s"
-#: ../yum/depsolve.py:356
+#: ../yum/depsolve.py:375
#, python-format
msgid "Mode for pkg providing %s: %s"
msgstr "Modus für pkg-Bereitstellung %s: %s"
-#: ../yum/depsolve.py:360
+#: ../yum/depsolve.py:379
#, python-format
msgid "TSINFO: %s package requiring %s marked as erase"
msgstr "TSINFO: %s Paket benötigt %s markiert als gelöscht"
-#: ../yum/depsolve.py:372
+#: ../yum/depsolve.py:391
#, python-format
msgid "TSINFO: Obsoleting %s with %s to resolve dep."
msgstr "TSINFO: Veraltetes %s mit %s zum Auflösen der Abhängigkeit."
-#: ../yum/depsolve.py:375
+#: ../yum/depsolve.py:394
#, python-format
msgid "TSINFO: Updating %s to resolve dep."
msgstr "TSINFO: Aktualisiere %s zum Auflösen der Abhängigkeit."
-#: ../yum/depsolve.py:378
+#: ../yum/depsolve.py:402
#, python-format
msgid "Cannot find an update path for dep for: %s"
msgstr "Kann keine Aktualisierungspfad für Abhängigkeit finden für: %s"
-#: ../yum/depsolve.py:388
+#: ../yum/depsolve.py:412
#, python-format
msgid "Unresolvable requirement %s for %s"
msgstr "Unlösbare Anforderung %s für %s"
+#: ../yum/depsolve.py:435
+#, python-format
+msgid "Quick matched %s to require for %s"
+msgstr "Ãbereinstimmung von %s, welche gebraucht wird für %s"
+
#. is it already installed?
-#: ../yum/depsolve.py:434
+#: ../yum/depsolve.py:477
#, python-format
msgid "%s is in providing packages but it is already installed, removing."
-msgstr ""
-"%s ist in einem bereitgestellten Paket, aber bereits installiert, entferne."
+msgstr "%s ist in einem bereitgestellten Paket, aber bereits installiert, entferne."
-#: ../yum/depsolve.py:449
+#: ../yum/depsolve.py:492
#, python-format
msgid "Potential resolving package %s has newer instance in ts."
msgstr "Potentielles aufgelöste Paket %s hat eine neuere Instanz in ts."
-#: ../yum/depsolve.py:460
+#: ../yum/depsolve.py:503
#, python-format
msgid "Potential resolving package %s has newer instance installed."
msgstr "Potentielles aufgelöste Paket %s hat eine neuere Instanz installiert."
-#: ../yum/depsolve.py:468 ../yum/depsolve.py:527
+#: ../yum/depsolve.py:511
+#: ../yum/depsolve.py:560
#, python-format
msgid "Missing Dependency: %s is needed by package %s"
msgstr "Fehlende Abhängigkeit: %s wird benötigt von Paket %s"
-#: ../yum/depsolve.py:481
+#: ../yum/depsolve.py:524
#, python-format
msgid "%s already in ts, skipping this one"
msgstr "%s bereits in ts, überspringe dies"
-#: ../yum/depsolve.py:510
-#, python-format
-msgid ""
-"Failure finding best provider of %s for %s, exceeded maximum loop length"
-msgstr ""
-"Fehler beim FInden des besten Providers von %s für %s, überschrittene "
-"maximale Schleifenlänge"
-
-#: ../yum/depsolve.py:537
+#: ../yum/depsolve.py:570
#, python-format
msgid "TSINFO: Marking %s as update for %s"
msgstr "TSINFO: Markiere %s als Aktualisierung für %s"
-#: ../yum/depsolve.py:544
+#: ../yum/depsolve.py:578
#, python-format
msgid "TSINFO: Marking %s as install for %s"
msgstr "TSINFO: Markiert %s als Installation für %s"
-#: ../yum/depsolve.py:635 ../yum/depsolve.py:714
+#: ../yum/depsolve.py:670
+#: ../yum/depsolve.py:750
msgid "Success - empty transaction"
msgstr "Erfolg - Leere Transaktion"
-#: ../yum/depsolve.py:673 ../yum/depsolve.py:686
+#: ../yum/depsolve.py:709
+#: ../yum/depsolve.py:722
msgid "Restarting Loop"
msgstr "Starte Schleife neu"
-#: ../yum/depsolve.py:702
+#: ../yum/depsolve.py:738
msgid "Dependency Process ending"
msgstr "Abhängigkeitsverarbeitung beendet"
-#: ../yum/depsolve.py:708
+#: ../yum/depsolve.py:744
#, python-format
msgid "%s from %s has depsolving problems"
msgstr "%s von %s hat Abhängigkeitsauflöse-Probleme"
-#: ../yum/depsolve.py:715
+#: ../yum/depsolve.py:751
msgid "Success - deps resolved"
msgstr "Erfolg - Abhängigkeiten aufgelöst"
-#: ../yum/depsolve.py:729
+#: ../yum/depsolve.py:765
#, python-format
msgid "Checking deps for %s"
msgstr "Prüfe Abhängigkeiten für %s"
-#: ../yum/depsolve.py:782
+#: ../yum/depsolve.py:848
#, python-format
msgid "looking for %s as a requirement of %s"
msgstr "schauen nach %s als eine Anforderung von %s"
-#: ../yum/depsolve.py:933
-#, python-format
-msgid "Comparing best: %s to po: %s"
-msgstr "Vergleiche besseres: %s zu po: %s"
-
-#: ../yum/depsolve.py:937
-#, python-format
-msgid "Same: best %s == po: %s"
-msgstr "Gleich: besser %s == po: %s"
-
-#: ../yum/depsolve.py:952 ../yum/depsolve.py:963
-#, fuzzy, python-format
-msgid "best %s obsoletes po: %s"
-msgstr " %s veraltete %s"
-
-#: ../yum/depsolve.py:955
+#: ../yum/depsolve.py:988
#, python-format
-msgid "po %s obsoletes best: %s"
-msgstr "po %s veraltetes besser: %s"
+msgid "Running compare_providers() for %s"
+msgstr "Führe compare_providers() aus für %s"
-#: ../yum/depsolve.py:972 ../yum/depsolve.py:979 ../yum/depsolve.py:1036
+#: ../yum/depsolve.py:1016
+#: ../yum/depsolve.py:1022
#, python-format
msgid "better arch in po %s"
msgstr "bessere Architektur in po %s"
-#: ../yum/depsolve.py:988 ../yum/depsolve.py:1010
+#: ../yum/depsolve.py:1061
#, python-format
-msgid "po %s shares a sourcerpm with %s"
-msgstr "po %s teilen ein Quellen-RPM mit %s"
+msgid "%s obsoletes %s"
+msgstr " %s veraltete %s"
-#: ../yum/depsolve.py:992 ../yum/depsolve.py:1015
+#: ../yum/depsolve.py:1077
#, python-format
-msgid "best %s shares a sourcerpm with %s"
-msgstr "besseres %s teilen ein Quellen-RPM mit %s"
+msgid ""
+"archdist compared %s to %s on %s\n"
+" Winner: %s"
+msgstr ""
+"Archdist verglichen %s zu %s auf %s\n"
+" Gewinner: %s"
-#: ../yum/depsolve.py:999 ../yum/depsolve.py:1020
+#: ../yum/depsolve.py:1084
#, python-format
-msgid "po %s shares more of the name prefix with %s"
-msgstr "po %s teilt mehr als den Prefixnamen mit %s"
+msgid "common sourcerpm %s and %s"
+msgstr "Gemeinsames Quellen-RPM %s und %s"
-#: ../yum/depsolve.py:1003 ../yum/depsolve.py:1029
+#: ../yum/depsolve.py:1090
#, python-format
-msgid "po %s has a shorter name than best %s"
-msgstr "po %s hat einen kürzeren Namen als das bessere %s"
+msgid "common prefix of %s between %s and %s"
+msgstr "Gemeinsamer Prefix von %s zwischen %s und %s"
-#: ../yum/depsolve.py:1025
+# Hat jemand eine Idee für eine bessere Ãbersetzung? Fabian
+#: ../yum/depsolve.py:1098
#, python-format
-msgid "bestpkg %s shares more of the name prefix with %s"
-msgstr "bestpkg %s teilt mehr als als den Prefixnamen mit %s"
+msgid "Best Order: %s"
+msgstr "Beste Bestellung: %s"
-#: ../yum/__init__.py:119
+#: ../yum/__init__.py:134
msgid "doConfigSetup() will go away in a future version of Yum.\n"
-msgstr "doConfigSetup() wird verschwinden in zukünftigen Version von Yum.\n"
+msgstr "doConfigSetup() wird in zukünftigen Version von Yum verschwinden.\n"
-#: ../yum/__init__.py:296
+#: ../yum/__init__.py:314
#, python-format
msgid "Repository %r is missing name in configuration, using id"
msgstr "Bei Repository %r fehlt der Name in der Konfiguration, benutze id"
-#: ../yum/__init__.py:332
+#: ../yum/__init__.py:352
msgid "plugins already initialised"
msgstr "Plugins bereits initialisiert"
-#: ../yum/__init__.py:339
+#: ../yum/__init__.py:359
msgid "doRpmDBSetup() will go away in a future version of Yum.\n"
-msgstr "doRpmDBSetup() wird verschwinden in zukünftigen Version von Yum.\n"
+msgstr "doRpmDBSetup() wird in zukünftigen Version von Yum verschwinden.\n"
-#: ../yum/__init__.py:349
+#: ../yum/__init__.py:369
msgid "Reading Local RPMDB"
msgstr "Lese lokale RPMDB"
-#: ../yum/__init__.py:367
+#: ../yum/__init__.py:387
msgid "doRepoSetup() will go away in a future version of Yum.\n"
-msgstr "doRepoSetup() wird verschwinden in zukünftigen Version von Yum.\n"
+msgstr "doRepoSetup() wird in zukünftigen Version von Yum verschwinden.\n"
-#: ../yum/__init__.py:387
+#: ../yum/__init__.py:407
msgid "doSackSetup() will go away in a future version of Yum.\n"
-msgstr "doSackSetup() wird verschwinden in zukünftigen Version von Yum.\n"
+msgstr "doSackSetup() wird in zukünftigen Version von Yum verschwinden \n"
-#: ../yum/__init__.py:404
+#: ../yum/__init__.py:424
msgid "Setting up Package Sacks"
msgstr "Einrichten des Paket-Behälters"
-#: ../yum/__init__.py:447
+#: ../yum/__init__.py:467
#, python-format
msgid "repo object for repo %s lacks a _resetSack method\n"
msgstr "Repository-Objekt für Repository %s fehlt a _resetSack method\n"
-#: ../yum/__init__.py:448
+#: ../yum/__init__.py:468
msgid "therefore this repo cannot be reset.\n"
msgstr "deshalb dieses Repository kann nicht zurückgesetzt werden.\n"
-#: ../yum/__init__.py:453
+#: ../yum/__init__.py:473
msgid "doUpdateSetup() will go away in a future version of Yum.\n"
-msgstr "doUpdateSetup() wird verschwinden in zukünftigen Version von Yum.\n"
+msgstr "doUpdateSetup() wird in zukünftigen Version von Yum verschwinden.\n"
-#: ../yum/__init__.py:465
+#: ../yum/__init__.py:485
msgid "Building updates object"
msgstr "Baue Aktualisierungsobjekt"
-#: ../yum/__init__.py:496
+#: ../yum/__init__.py:516
msgid "doGroupSetup() will go away in a future version of Yum.\n"
-msgstr "doGroupSetup() wird verschwinden in zukünftigen Version von Yum.\n"
+msgstr "doGroupSetup() wird in zukünftigen Version von Yum verschwinden .\n"
-#: ../yum/__init__.py:520
+#: ../yum/__init__.py:540
msgid "Getting group metadata"
msgstr "Beziehe Gruppen-Metadaten"
-#: ../yum/__init__.py:546
+#: ../yum/__init__.py:566
#, python-format
msgid "Adding group file from repository: %s"
msgstr "Füge Gruppen-Datei von Repository hinzu: %s"
-#: ../yum/__init__.py:555
+#: ../yum/__init__.py:575
#, python-format
msgid "Failed to add groups file for repository: %s - %s"
msgstr "Hinzufügen von Gruppen-Datei für Repository fehlgeschlagen: %s - %s"
-#: ../yum/__init__.py:561
+#: ../yum/__init__.py:581
msgid "No Groups Available in any repository"
msgstr "Keine Gruppen in irgendeinem Repository verfügbar"
-#: ../yum/__init__.py:611
+#: ../yum/__init__.py:631
msgid "Importing additional filelist information"
msgstr "Importiere zusätzlichen Dateilisten-Informationen"
-#: ../yum/__init__.py:657
+#: ../yum/__init__.py:639
+msgid "There are unfinished transactions remaining. You mightconsider running yum-complete-transaction first to finish them."
+msgstr "Es gibt noch nicht abgeschlossene Transaktionen. Sie sollten in Betracht ziehen, zuerst yum-complete-transaction auszuführen, um sie abzuschliessen."
+
+# Ob da die Ãbersetzung den Punkt trifft...Fabian
+#: ../yum/__init__.py:689
#, python-format
msgid "Skip-broken round %i"
msgstr "Ãberspringe defekte Runde %i"
-#: ../yum/__init__.py:680
+# Ob da die Ãbersetzung den Punkt trifft...Fabian
+#: ../yum/__init__.py:712
#, python-format
msgid "Skip-broken took %i rounds "
-msgstr "Ãberspringe defekte brachte %i Runden"
+msgstr "Ãberspringen der defekte brachte %i Runden"
-#: ../yum/__init__.py:681
+#: ../yum/__init__.py:713
msgid ""
"\n"
"Packages skipped because of dependency problems:"
@@ -1460,462 +1612,525 @@ msgstr ""
"\n"
"Pakete übersprungen wegen Abhängigkeitsproblemen:"
-#: ../yum/__init__.py:685
+#: ../yum/__init__.py:717
#, python-format
msgid " %s from %s"
msgstr " %s von %s"
-#: ../yum/__init__.py:774
+#: ../yum/__init__.py:802
+msgid "Warning: scriptlet or other non-fatal errors occurred during transaction."
+msgstr "Warnung: Es sind Scriptlet- oder andere nicht-fatale Fehler bei der Verarbeitung aufgetreten."
+
+#: ../yum/__init__.py:818
#, python-format
msgid "Failed to remove transaction file %s"
msgstr "Entfernen der Verarbeitungsdatei %s fehlgeschlagen"
-#: ../yum/__init__.py:814
+# verstehe ich nicht ganz, was gemeint ist. Fabian
+#: ../yum/__init__.py:859
#, python-format
msgid "excluding for cost: %s from %s"
-msgstr "Ausschluss für Kosten: %s from %s"
+msgstr "Ausschluss für Aufwand: %s from %s"
-#: ../yum/__init__.py:845
+# Dies gefällt auch nicht allen. Fabian
+#: ../yum/__init__.py:890
msgid "Excluding Packages in global exclude list"
-msgstr "Schliessen Pakete aus globaler Ausschlussliste aus"
+msgstr "Schliessen Pakete, welche in der globalen Ausschlussliste sind, aus"
-#: ../yum/__init__.py:847
+#: ../yum/__init__.py:892
#, python-format
msgid "Excluding Packages from %s"
msgstr "Schliesse Pakete aus von %s"
-#: ../yum/__init__.py:875
+#: ../yum/__init__.py:919
#, python-format
msgid "Reducing %s to included packages only"
msgstr "Reduziere %s nur zum Einbeziehen der Pakete"
-#: ../yum/__init__.py:880
+#: ../yum/__init__.py:925
#, python-format
msgid "Keeping included package %s"
msgstr "Behalte integriertes Paket %s"
-#: ../yum/__init__.py:886
+#: ../yum/__init__.py:931
#, python-format
msgid "Removing unmatched package %s"
msgstr "Entferne nicht übereinstimmendes Paket %s"
-#: ../yum/__init__.py:889
+#: ../yum/__init__.py:934
msgid "Finished"
msgstr "Abgeschlossen"
#. Whoa. What the heck happened?
-#: ../yum/__init__.py:919
+#: ../yum/__init__.py:964
#, python-format
msgid "Unable to check if PID %s is active"
msgstr "Unfähig zum Prüfen, ob PID %s ist aktiv"
#. Another copy seems to be running.
-#: ../yum/__init__.py:923
+#: ../yum/__init__.py:968
#, python-format
msgid "Existing lock %s: another copy is running as pid %s."
msgstr "Existierende Blockierung %s: eine andere Kopie läuft mit PID %s."
-#: ../yum/__init__.py:970 ../yum/__init__.py:977
+#: ../yum/__init__.py:1039
msgid "Package does not match intended download"
msgstr "Paket stimmt nicht mit dem vorgesehenen Herunterladen überein."
-#: ../yum/__init__.py:991
+#: ../yum/__init__.py:1054
msgid "Could not perform checksum"
-msgstr "Konnte Prüfsumme nicht ausführen"
+msgstr "Konnte Prüfsumme nicht bilden"
-#: ../yum/__init__.py:994
+#: ../yum/__init__.py:1057
msgid "Package does not match checksum"
msgstr "Paket stimmt nicht mit der Prüfsumme überein"
-#: ../yum/__init__.py:1036
+#: ../yum/__init__.py:1100
#, python-format
msgid "package fails checksum but caching is enabled for %s"
-msgstr ""
-"Paket bei Checksumme-Prüfung durchgefallen, aber Zwischenspeicherung ist "
-"aktiviert für %s"
+msgstr "Paket bei Checksumme-Prüfung durchgefallen, aber Zwischenspeicherung ist aktiviert für %s"
-#: ../yum/__init__.py:1042
+#: ../yum/__init__.py:1103
#, python-format
msgid "using local copy of %s"
msgstr "benutze lokale Kopie von %s"
-#: ../yum/__init__.py:1061
+#: ../yum/__init__.py:1130
#, python-format
-msgid "Insufficient space in download directory %s to download"
-msgstr "Nicht genügend Platz im Download-Verzeichnis %s vorhanden"
+msgid ""
+"Insufficient space in download directory %s\n"
+" * free %s\n"
+" * needed %s"
+msgstr ""
+"Nicht genügend Platz im Download-Verzeichnis %s vorhanden\n"
+" * frei %s\n"
+" * benötigt %s"
-#: ../yum/__init__.py:1094
+#: ../yum/__init__.py:1177
msgid "Header is not complete."
msgstr "Header ist nicht vollständig."
-#: ../yum/__init__.py:1134
+#: ../yum/__init__.py:1217
#, python-format
-msgid ""
-"Header not in local cache and caching-only mode enabled. Cannot download %s"
-msgstr ""
-"Header ist nicht im lokalen Zwischen-Speicher und Nur-Zwischenspeicher-Modus "
-"aktiviert. Kann nicht herunterladen %s"
+msgid "Header not in local cache and caching-only mode enabled. Cannot download %s"
+msgstr "Header ist nicht im lokalen Zwischenspeicher und Nur-Zwischenspeicher-Modus aktiviert. Kann %s nicht herunterladen"
-#: ../yum/__init__.py:1189
+#: ../yum/__init__.py:1272
#, python-format
msgid "Public key for %s is not installed"
msgstr "Ãffentlicher Schlüssel für %s ist nicht installiert"
-#: ../yum/__init__.py:1193
+#: ../yum/__init__.py:1276
#, python-format
msgid "Problem opening package %s"
msgstr "Problem beim Ãffnen des Paketes %s"
-#: ../yum/__init__.py:1201
+#: ../yum/__init__.py:1284
#, python-format
msgid "Public key for %s is not trusted"
msgstr "Ãffentlicher Schlüssel für %s ist nicht vertrauenswürdig"
-#: ../yum/__init__.py:1205
+#: ../yum/__init__.py:1288
#, python-format
msgid "Package %s is not signed"
msgstr "Paket %s ist nicht unterschrieben"
-#: ../yum/__init__.py:1243
+#: ../yum/__init__.py:1326
#, python-format
msgid "Cannot remove %s"
msgstr "Kann %s nicht entfernen"
-#: ../yum/__init__.py:1247
+#: ../yum/__init__.py:1330
#, python-format
msgid "%s removed"
msgstr "%s entfernt"
-#: ../yum/__init__.py:1283
+#: ../yum/__init__.py:1367
#, python-format
msgid "Cannot remove %s file %s"
msgstr "Kann %s Datei nicht entfernt %s"
-#: ../yum/__init__.py:1287
+#: ../yum/__init__.py:1371
#, python-format
msgid "%s file %s removed"
msgstr "%s Datei %s entfernt"
-#: ../yum/__init__.py:1289
+#: ../yum/__init__.py:1373
#, python-format
msgid "%d %s files removed"
msgstr "%d %s Dateien entfernt"
-#: ../yum/__init__.py:1329
+#: ../yum/__init__.py:1435
#, python-format
msgid "More than one identical match in sack for %s"
msgstr "Mehr als eine identische Ãbereinstimmung im Behälter für %s"
-#: ../yum/__init__.py:1335
+#: ../yum/__init__.py:1441
#, python-format
msgid "Nothing matches %s.%s %s:%s-%s from update"
msgstr "Keine Ãbereinstimmungen %s.%s %s:%s-%s mit der Aktualisierung"
-#: ../yum/__init__.py:1543
-msgid ""
-"searchPackages() will go away in a future version of "
-"Yum. Use searchGenerator() instead. \n"
-msgstr ""
-"searchPackages() wird verschwinden in zukünftigen Version von "
-"Yum. Benutze stattdessen searchGenerator(). \n"
+#: ../yum/__init__.py:1649
+msgid "searchPackages() will go away in a future version of Yum. Use searchGenerator() instead. \n"
+msgstr "searchPackages() wird in zukünftigen Version von Yum verschwinden. Benutze stattdessen searchGenerator(). \n"
-#: ../yum/__init__.py:1580
+#: ../yum/__init__.py:1687
#, python-format
msgid "Searching %d packages"
msgstr "Suche %d Pakete"
-#: ../yum/__init__.py:1584
+#: ../yum/__init__.py:1691
#, python-format
msgid "searching package %s"
msgstr "Suche Paket %s"
-#: ../yum/__init__.py:1596
+#: ../yum/__init__.py:1703
msgid "searching in file entries"
msgstr "Suche in Datei-Einträgen"
-#: ../yum/__init__.py:1603
+#: ../yum/__init__.py:1710
msgid "searching in provides entries"
msgstr "suche in bereitgestellten Einträgen"
-#: ../yum/__init__.py:1633
+#: ../yum/__init__.py:1743
#, python-format
msgid "Provides-match: %s"
msgstr "Stelle Ãbereinstimmung bereit: %s"
-#: ../yum/__init__.py:1702 ../yum/__init__.py:1720 ../yum/__init__.py:1748
-#: ../yum/__init__.py:1753 ../yum/__init__.py:1808 ../yum/__init__.py:1812
+#: ../yum/__init__.py:1792
+msgid "No group data available for configured repositories"
+msgstr "Keine Gruppe für konfigurierte Repositories verfügbar"
+
+#: ../yum/__init__.py:1818
+#: ../yum/__init__.py:1837
+#: ../yum/__init__.py:1868
+#: ../yum/__init__.py:1874
+#: ../yum/__init__.py:1947
+#: ../yum/__init__.py:1951
#, python-format
msgid "No Group named %s exists"
msgstr "Kein Gruppe mit dem Namen %s vorhanden"
-#: ../yum/__init__.py:1731 ../yum/__init__.py:1824
+#: ../yum/__init__.py:1849
+#: ../yum/__init__.py:1964
#, python-format
msgid "package %s was not marked in group %s"
msgstr "Paket %s war nicht markiert in Gruppe %s"
-#: ../yum/__init__.py:1770
+#: ../yum/__init__.py:1896
#, python-format
msgid "Adding package %s from group %s"
msgstr "Füge Paket %s aus Gruppe %s hinzu"
-#: ../yum/__init__.py:1774
+#: ../yum/__init__.py:1900
#, python-format
msgid "No package named %s available to be installed"
msgstr "Kein Paket mit Namen %s verfügbar zum Installieren"
-#: ../yum/__init__.py:1849
+# Paket-Behälter wird sicher nicht allen gefallen. Fabian
+#: ../yum/__init__.py:1989
#, python-format
msgid "Package tuple %s could not be found in packagesack"
msgstr "Paket-Tupel %s kann nicht gefunden werden im Paket-Behälter"
-#: ../yum/__init__.py:1917 ../yum/__init__.py:1960
+#: ../yum/__init__.py:2004
+msgid "getInstalledPackageObject() will go away, use self.rpmdb.searchPkgTuple().\n"
+msgstr "getInstalledPackageObject() wird verschwinden, benutze self.rpmdb.searchPkgTuple().\n"
+
+#: ../yum/__init__.py:2056
+#: ../yum/__init__.py:2099
msgid "Invalid versioned dependency string, try quoting it."
-msgstr ""
-"Ungültig versionierte Abhängigkeitszeichenkette, versuche es zu notieren."
+msgstr "Ungültig versionierte Abhängigkeitszeichenkette, versuche es zu notieren."
-#: ../yum/__init__.py:1919 ../yum/__init__.py:1962
+#: ../yum/__init__.py:2058
+#: ../yum/__init__.py:2101
msgid "Invalid version flag"
msgstr "Ungültiges Versionsflag"
-#: ../yum/__init__.py:1934 ../yum/__init__.py:1938
+#: ../yum/__init__.py:2073
+#: ../yum/__init__.py:2077
#, python-format
msgid "No Package found for %s"
msgstr "Kein Paket gefunden für %s"
-#: ../yum/__init__.py:2066
+#: ../yum/__init__.py:2276
msgid "Package Object was not a package object instance"
msgstr "Paketobjekt war keine Paketobjektinstanz"
-#: ../yum/__init__.py:2070
+#: ../yum/__init__.py:2280
msgid "Nothing specified to install"
msgstr "Nichts angegeben zum Installieren"
#. only one in there
-#: ../yum/__init__.py:2085
+#: ../yum/__init__.py:2298
#, python-format
msgid "Checking for virtual provide or file-provide for %s"
-msgstr ""
-"Ãberprüfe nach virtueller Bereitstellung oder Datei-Bereitstellung für %s"
+msgstr "Ãberprüfe nach virtueller Bereitstellung oder Datei-Bereitstellung für %s"
-#: ../yum/__init__.py:2091 ../yum/__init__.py:2380
+#: ../yum/__init__.py:2304
+#: ../yum/__init__.py:2680
#, python-format
msgid "No Match for argument: %s"
msgstr "Kein Ãbereinstimmung für Argument: %s"
-#. FIXME - this is where we could check to see if it already installed
-#. for returning better errors
-#: ../yum/__init__.py:2146
+#: ../yum/__init__.py:2370
+#, python-format
+msgid "Package %s installed and not available"
+msgstr "Paket %s installiert und nicht verfügbar"
+
+#: ../yum/__init__.py:2373
msgid "No package(s) available to install"
-msgstr "Kein Paket(e) zum Installieren verfügbar."
+msgstr "Kein(e) Paket(e) zum Installieren verfügbar."
-#: ../yum/__init__.py:2158
+#: ../yum/__init__.py:2385
#, python-format
msgid "Package: %s - already in transaction set"
msgstr "Paket: %s - bereits im Transaktionsset"
-#: ../yum/__init__.py:2171
+#: ../yum/__init__.py:2398
#, python-format
msgid "Package %s already installed and latest version"
-msgstr ""
-"Paket %s ist bereits installiert und ist in der neusten Version vorhanden."
+msgstr "Paket %s ist bereits installiert und ist in der neusten Version vorhanden."
-#: ../yum/__init__.py:2178
+#: ../yum/__init__.py:2405
#, python-format
msgid "Package matching %s already installed. Checking for update."
-msgstr ""
-"Paket, das auf %s passt ist bereits installiert. Ãberprüfe auf "
-"Aktualisierung."
+msgstr "Paket, das auf %s passt, ist bereits installiert. Ãberprüfe auf Aktualisierung."
+
+#: ../yum/__init__.py:2415
+#, python-format
+msgid "Package %s is obsoleted by %s, trying to install %s instead"
+msgstr "Paket %svon %s ist veraltet, versuche stattdessen %s zu installieren."
#. update everything (the easy case)
-#: ../yum/__init__.py:2220
+#: ../yum/__init__.py:2485
msgid "Updating Everything"
msgstr "Aktualisiere alles"
-#: ../yum/__init__.py:2304
+#: ../yum/__init__.py:2497
+#: ../yum/__init__.py:2602
+#: ../yum/__init__.py:2613
+#: ../yum/__init__.py:2635
+#, python-format
+msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
+msgstr "Aktualisiere Paket nicht, da es bereits veraltet ist: %s.%s %s:%s-%s"
+
+#: ../yum/__init__.py:2593
#, python-format
msgid "Package is already obsoleted: %s.%s %s:%s-%s"
msgstr "Paket ist bereits veraltet: %s.%s %s:%s-%s"
-#: ../yum/__init__.py:2377
+#: ../yum/__init__.py:2616
+#: ../yum/__init__.py:2638
+#, python-format
+msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s"
+msgstr "Aktualisiere Paket nicht, da es bereits veraltet ist: %s.%s %s:%s-%s"
+
+#: ../yum/__init__.py:2677
#, python-format
msgid "%s"
msgstr "%s"
-#: ../yum/__init__.py:2392
+#: ../yum/__init__.py:2693
msgid "No package matched to remove"
msgstr "Kein Paket stimmt zum Entfernen überein"
-#: ../yum/__init__.py:2426
+#: ../yum/__init__.py:2727
#, python-format
msgid "Cannot open file: %s. Skipping."
msgstr "Kann Datei nicht öffnen: %s. Ãberspringen."
-#: ../yum/__init__.py:2429
+#: ../yum/__init__.py:2730
#, python-format
msgid "Examining %s: %s"
msgstr "Untersuche %s: %s"
-#: ../yum/__init__.py:2436
+#: ../yum/__init__.py:2738
#, python-format
-msgid ""
-"Package %s not installed, cannot update it. Run yum install to install it "
-"instead."
-msgstr ""
-"Paket %s nicht installiert, kann es nicht aktualisieren. Führen Sie "
-"stattdessen yum install aus, um es zu installieren."
+msgid "Cannot add package %s to transaction. Not a compatible architecture: %s"
+msgstr "Kann Paket %s nicht zur Transaktion hinzufügen. Keine kompatible Architektur: %s"
+
+#: ../yum/__init__.py:2746
+#, python-format
+msgid "Package %s not installed, cannot update it. Run yum install to install it instead."
+msgstr "Paket %s nicht installiert, kann es nicht aktualisieren. Führen Sie stattdessen yum install aus, um es zu installieren."
-#: ../yum/__init__.py:2468
+#: ../yum/__init__.py:2779
#, python-format
msgid "Excluding %s"
msgstr "Exklusive %s"
-#: ../yum/__init__.py:2473
+#: ../yum/__init__.py:2784
#, python-format
msgid "Marking %s to be installed"
msgstr "Markiere %s zum Installieren"
-#: ../yum/__init__.py:2479
+#: ../yum/__init__.py:2790
#, python-format
msgid "Marking %s as an update to %s"
msgstr "Markiere %s als eine Aktualisierung für %s"
-#: ../yum/__init__.py:2486
+#: ../yum/__init__.py:2797
#, python-format
msgid "%s: does not update installed package."
msgstr "%s: aktualisiert installierte Pakete nicht."
-#: ../yum/__init__.py:2504
+#: ../yum/__init__.py:2815
msgid "Problem in reinstall: no package matched to remove"
msgstr "Probleme beim Neuinstallieren: kein Paket stimmt zum Entfernen überein"
-#: ../yum/__init__.py:2515
+#: ../yum/__init__.py:2826
#, python-format
msgid "Package %s is allowed multiple installs, skipping"
msgstr "Paket %s darf mehrfach installiert sein, überspringe"
-#: ../yum/__init__.py:2522
+#: ../yum/__init__.py:2833
msgid "Problem in reinstall: no package matched to install"
-msgstr ""
-"Probleme beim Neuinstallieren: kein Paket stimmt zum Installieren überein"
+msgstr "Probleme beim Neuinstallieren: kein Paket stimmt zum Installieren überein"
-#: ../yum/__init__.py:2570
+#: ../yum/__init__.py:2868
#, python-format
msgid "Retrieving GPG key from %s"
msgstr "GPG-Schlüssel abrufen von %s"
-#: ../yum/__init__.py:2576
+#: ../yum/__init__.py:2874
msgid "GPG key retrieval failed: "
msgstr "GPG-Schlüssel-Abruf fehlgeschlagen:"
-#: ../yum/__init__.py:2589
-msgid "GPG key parsing failed: "
-msgstr "GPG-Schlüssel-Analyse fehlgeschlagen: "
+#: ../yum/__init__.py:2885
+#, python-format
+msgid "GPG key parsing failed: key does not have value %s"
+msgstr "GPG-Schlüssel-Analyse fehlgeschlagen: Schlüssel hat keinen Wert %s"
-#: ../yum/__init__.py:2593
+#: ../yum/__init__.py:2917
#, python-format
msgid "GPG key at %s (0x%s) is already installed"
msgstr "GPG-Schlüssel unter %s (0x%s) ist bereits installiert"
#. Try installing/updating GPG key
-#: ../yum/__init__.py:2598
+#: ../yum/__init__.py:2922
+#: ../yum/__init__.py:2984
#, python-format
msgid "Importing GPG key 0x%s \"%s\" from %s"
msgstr "Importiere GPG-Schlüssel 0x%s \"%s\" von %s"
-#: ../yum/__init__.py:2610
+#: ../yum/__init__.py:2939
msgid "Not installing key"
msgstr "Nicht installierter Schlüssel"
-#: ../yum/__init__.py:2616
+#: ../yum/__init__.py:2945
#, python-format
msgid "Key import failed (code %d)"
msgstr "Schlüssel-Import fehlgeschlagen (Code %d)"
-#: ../yum/__init__.py:2619
+#: ../yum/__init__.py:2946
+#: ../yum/__init__.py:3005
msgid "Key imported successfully"
msgstr "Schlüssel erfolgreich importiert"
-#: ../yum/__init__.py:2624
+#: ../yum/__init__.py:2951
+#: ../yum/__init__.py:3010
#, 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 ""
-"Die aufgelisteten GPG-Schlüssel für das \"%s\" Repository sind bereits "
-"installiert, aber sie sind nicht korrekt für dieses Paket.\n"
-"Stellen Sie sicher, dass die korrekten Schlüssel-URLs für dieses Repository "
-"konfiguriert sind."
+"Die aufgelisteten GPG-Schlüssel für das \"%s\"-Repository sind bereits installiert, aber sie sind nicht korrekt für dieses Paket.\n"
+"Stellen Sie sicher, dass die korrekten Schlüssel-URLs für dieses Repository konfiguriert sind."
-#: ../yum/__init__.py:2633
+#: ../yum/__init__.py:2960
msgid "Import of key(s) didn't help, wrong key(s)?"
msgstr "Importieren der Schlüssel hat nicht geholfen, falsche Schlüssel?"
-#: ../yum/__init__.py:2707
+#: ../yum/__init__.py:2979
+#, python-format
+msgid "GPG key at %s (0x%s) is already imported"
+msgstr "GPG-Schlüssel unter %s (0x%s) ist bereits importiert"
+
+#: ../yum/__init__.py:2999
+#, python-format
+msgid "Not installing key for repo %s"
+msgstr "Nicht installierter Schlüssel für Repo %s"
+
+#: ../yum/__init__.py:3004
+msgid "Key import failed"
+msgstr "Schlüssel-Import fehlgeschlagen"
+
+#: ../yum/__init__.py:3095
msgid "Unable to find a suitable mirror."
msgstr "Es kann kein geeigneter Mirror gefunden werden."
-#: ../yum/__init__.py:2709
+#: ../yum/__init__.py:3097
msgid "Errors were encountered while downloading packages."
msgstr "Beim Herunterladen der Pakete sind Fehler aufgetreten."
-#: ../yum/__init__.py:2774
+#: ../yum/__init__.py:3161
msgid "Test Transaction Errors: "
msgstr "Test-Transaktionsfehler"
#. Mostly copied from YumOutput._outKeyValFill()
-#: ../yum/plugins.py:195
+#: ../yum/plugins.py:199
msgid "Loaded plugins: "
msgstr "Geladene Plugins: "
-#: ../yum/plugins.py:206
+#: ../yum/plugins.py:213
+#: ../yum/plugins.py:219
#, python-format
msgid "No plugin match for: %s"
msgstr "Kein Plugin für Argument: %s"
-#: ../yum/plugins.py:219
+#: ../yum/plugins.py:249
#, python-format
msgid "\"%s\" plugin is disabled"
msgstr "\"%s\" Plugin ist deaktiviert"
-#: ../yum/plugins.py:231
+#. Give full backtrace:
+#: ../yum/plugins.py:261
+#, python-format
+msgid "Plugin \"%s\" can't be imported"
+msgstr "Plugin \"%s\" kann nicht importiert werden"
+
+#: ../yum/plugins.py:268
#, python-format
msgid "Plugin \"%s\" doesn't specify required API version"
msgstr "Plugin \"%s\" gibt keine benötigte API-Version an"
-#: ../yum/plugins.py:235
+#: ../yum/plugins.py:273
#, python-format
msgid "Plugin \"%s\" requires API %s. Supported API is %s."
msgstr "Plugin \"%s\" benötigt API %s. Unterstützte API ist %s."
-#: ../yum/plugins.py:264
+#: ../yum/plugins.py:306
#, python-format
msgid "Loading \"%s\" plugin"
msgstr "Lade \"%s\" Plugin"
-#: ../yum/plugins.py:271
+#: ../yum/plugins.py:313
#, python-format
-msgid ""
-"Two or more plugins with the name \"%s\" exist in the plugin search path"
-msgstr ""
-"Zwei oder mehr Plugins mit dem Namen \"%s\" existieren im Plugin-Suchpfad"
+msgid "Two or more plugins with the name \"%s\" exist in the plugin search path"
+msgstr "Zwei oder mehr Plugins mit dem Namen \"%s\" existieren im Plugin-Suchpfad"
-#: ../yum/plugins.py:291
+#: ../yum/plugins.py:333
#, python-format
msgid "Configuration file %s not found"
msgstr "Konfigurationsdatei %s nicht gefunden"
#. for
#. Configuration files for the plugin not found
-#: ../yum/plugins.py:294
+#: ../yum/plugins.py:336
#, python-format
msgid "Unable to find configuration file for plugin %s"
msgstr "Kann Konfigurationsdatei für Plugin %s nicht finden"
-#: ../yum/plugins.py:448
+#: ../yum/plugins.py:490
msgid "registration of commands not supported"
msgstr "Registrierung von Befehlen nicht unterstützt"
+# Geht sicher auch besser..., Ideen? Fabian
+#: ../yum/rpmtrans.py:78
+msgid "Repackaging"
+msgstr "Neu verpacken"
+
#: ../rpmUtils/oldUtils.py:26
#, python-format
msgid "Header cannot be opened or does not match %s, %s."
@@ -1934,8 +2149,10 @@ msgstr "Kann RPM-Datenbank nicht öffnen. Wird sie eventuell schon benutzt?"
msgid "Got an empty Header, something has gone wrong"
msgstr "Erhalte einen leeren Header, irgendetwas ging schief"
-#: ../rpmUtils/oldUtils.py:244 ../rpmUtils/oldUtils.py:251
-#: ../rpmUtils/oldUtils.py:254 ../rpmUtils/oldUtils.py:257
+#: ../rpmUtils/oldUtils.py:244
+#: ../rpmUtils/oldUtils.py:251
+#: ../rpmUtils/oldUtils.py:254
+#: ../rpmUtils/oldUtils.py:257
#, python-format
msgid "Damaged Header %s"
msgstr "Defekter Header %s"
@@ -1945,95 +2162,37 @@ msgstr "Defekter Header %s"
msgid "Error opening rpm %s - error %s"
msgstr "Fehler bei Ãffnen des RPM %s - Fehler %s"
+#~ msgid "Could not find update match for %s"
+#~ msgstr "Kann keine Aktualisierungsübereinstimmung finden für %s"
#~ msgid ""
-#~ "\n"
-#~ "\n"
-#~ "%s: %s option requires an argument"
-#~ msgstr ""
-#~ "\n"
-#~ "\n"
-#~ "%s: %s Option benötigt ein Argument"
-
-#~ msgid "show this help message and exit"
-#~ msgstr "Hilfeinformation anzeigen und beenden"
-
-#~ msgid "verbose operation"
-#~ msgstr "Wortreicher Betrieb"
-
-#~ msgid "Repo-id : "
-#~ msgstr "Repo-ID : "
-
-#~ msgid "Repo-name : "
-#~ msgstr "Repo-Name : "
-
-#~ msgid "Repo-enabled: "
-#~ msgstr "Repo aktiviert:"
-
-#~ msgid "Repo-size : "
-#~ msgstr "Repo-Grösse : "
-
-#~ msgid "Running compare_providers() for %s"
-#~ msgstr "Führe compare_providers() aus für %s"
-
-#~ msgid ""
-#~ "archdist compared %s to %s on %s\n"
-#~ " Winner: %s"
-#~ msgstr ""
-#~ "Archdist verglichen %s zu %s auf %s\n"
-#~ " Gewinner: %s"
-
-#~ msgid "common sourcerpm %s and %s"
-#~ msgstr "Gemeinsames Quellen-RPM %s und %s"
-
-#~ msgid "common prefix of %s between %s and %s"
-#~ msgstr "Gemeinsamer Prefix von %s zwischen %s und %s"
-
-# Hat jemand eine Idee für eine bessere Ãbersetzung? Fabian
-#, fuzzy
-#~ msgid "Best Order: %s"
-#~ msgstr "Beste Bestellung: %s"
-
-#~ msgid ""
-#~ "Warning: scriptlet or other non-fatal errors occurred during transaction."
-#~ msgstr ""
-#~ "Warnung: Es sind Scriptlet- oder andere nicht-fatale Fehler bei der "
-#~ "Verarbeitung aufgetreten."
-
-#~ msgid "No group data available for configured repositories"
-#~ msgstr "Keine Gruppe für konfigurierte Repositories verfügbar"
-
-#~ msgid "Package %s is obsoleted by %s, trying to install %s instead"
+#~ "Failure finding best provider of %s for %s, exceeded maximum loop length"
#~ msgstr ""
-#~ "Paket %s ist veraltet von %s, versuche stattdessen %s zu installieren."
-
-#~ msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s"
-#~ msgstr ""
-#~ "Aktualisiere Paket nicht, da es bereits veraltet ist: %s.%s %s:%s-%s"
-
-#~ msgid ""
-#~ "Cannot add package %s to transaction. Not a compatible architecture: %s"
-#~ msgstr ""
-#~ "Kann Paket %s nicht zur Transaktion hinzufügen. Keine kompatible "
-#~ "Architektur: %s"
-
-# Geht sicher auch besser..., Ideen? Fabian
-#~ msgid "Repackaging"
-#~ msgstr "Neu verpacken"
-
-#~ msgid "Package %s needs %s, this is not available."
-#~ msgstr "Paket %s braucht %s, dies ist nicht verfügbar."
-
+#~ "Fehler beim FInden des besten Providers von %s für %s, überschrittene "
+#~ "maximale Schleifenlänge"
+#~ msgid "Comparing best: %s to po: %s"
+#~ msgstr "Vergleiche besseres: %s zu po: %s"
+#~ msgid "Same: best %s == po: %s"
+#~ msgstr "Gleich: besser %s == po: %s"
+#~ msgid "po %s obsoletes best: %s"
+#~ msgstr "po %s veraltetes besser: %s"
+#~ msgid "po %s shares a sourcerpm with %s"
+#~ msgstr "po %s teilen ein Quellen-RPM mit %s"
+#~ msgid "best %s shares a sourcerpm with %s"
+#~ msgstr "besseres %s teilen ein Quellen-RPM mit %s"
+#~ msgid "po %s shares more of the name prefix with %s"
+#~ msgstr "po %s teilt mehr als den Prefixnamen mit %s"
+#~ msgid "po %s has a shorter name than best %s"
+#~ msgstr "po %s hat einen kürzeren Namen als das bessere %s"
+#~ msgid "bestpkg %s shares more of the name prefix with %s"
+#~ msgstr "bestpkg %s teilt mehr als als den Prefixnamen mit %s"
#~ msgid "Package %s conflicts with %s."
#~ msgstr "Paket %s kollidiert mit %s."
-
#~ msgid "Looking for Obsoletes for %s"
#~ msgstr "Suche nach veralteten Paketen für %s"
-
#~ msgid "TSINFO: Updating %s to resolve conflict."
#~ msgstr "TSINFO: Aktualisiere %s zum Lösen des Konflikts.."
-
#~ msgid "%s conflicts: %s"
#~ msgstr "%s kollidiert: %s"
-
#~ msgid "%s conflicts with %s"
#~ msgstr "%s kollidiert mit %s"
+
commit 471adef61d6cf9804b01087780ca2339c75829dc
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date: Sun Oct 26 13:50:39 2008 +0100
updated Polish translation by Piotr DrÄ
g
diff --git a/po/pl.po b/po/pl.po
index e196fac..14a6bef 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -5,31 +5,33 @@ msgid ""
msgstr ""
"Project-Id-Version: pl\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-03-25 11:29+0100\n"
-"PO-Revision-Date: 2008-03-26 22:28+0200\n"
+"POT-Creation-Date: 2008-10-21 00:29+0200\n"
+"PO-Revision-Date: 2008-10-22 00:15+0200\n"
"Last-Translator: Piotr DrÄ
g <piotrdrag at gmail.com>\n"
"Language-Team: Polish <pl at li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ../callback.py:48 ../output.py:512
+#: ../callback.py:48 ../output.py:777 ../yum/rpmtrans.py:71
msgid "Updating"
msgstr "Aktualizowanie"
-#: ../callback.py:49
+#: ../callback.py:49 ../yum/rpmtrans.py:72
msgid "Erasing"
msgstr "Usuwanie"
-#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:511
+#. Arch can't get "that big" ... so always use the max.
+#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:776
+#: ../yum/rpmtrans.py:73 ../yum/rpmtrans.py:74 ../yum/rpmtrans.py:76
msgid "Installing"
msgstr "Instalowanie"
-#: ../callback.py:52 ../callback.py:58
+#: ../callback.py:52 ../callback.py:58 ../yum/rpmtrans.py:75
msgid "Obsoleted"
msgstr "PrzestarzaÅe"
-#: ../callback.py:54 ../output.py:558
+#: ../callback.py:54 ../output.py:890
msgid "Updated"
msgstr "Zaktualizowano"
@@ -37,7 +39,7 @@ msgstr "Zaktualizowano"
msgid "Erased"
msgstr "UsuniÄto"
-#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:556
+#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:888
msgid "Installed"
msgstr "Zainstalowano"
@@ -59,53 +61,68 @@ msgstr "BÅÄ
d: nieprawidÅowy stan wyjÅcia: %s dla %s"
msgid "Erased: %s"
msgstr "UsuniÄto: %s"
-#: ../callback.py:217 ../output.py:513
+#: ../callback.py:217 ../output.py:778
msgid "Removing"
msgstr "Usuwanie"
-#: ../callback.py:219
+#: ../callback.py:219 ../yum/rpmtrans.py:77
msgid "Cleanup"
msgstr "Czyszczenie"
-#: ../cli.py:103
+#: ../cli.py:105
#, python-format
msgid "Command \"%s\" already defined"
msgstr "Polecenie \"%s\" zostaÅo już okreÅlone"
-#: ../cli.py:115
+#: ../cli.py:117
msgid "Setting up repositories"
msgstr "Ustawianie repozytoriów"
-#: ../cli.py:126
+#: ../cli.py:128
msgid "Reading repository metadata in from local files"
msgstr "Odczytywanie metadanych repozytoriów z lokalnych plików"
-#: ../cli.py:183 ../utils.py:72
+#: ../cli.py:187 ../utils.py:71
#, python-format
msgid "Config Error: %s"
msgstr "BÅÄ
d konfiguracji: %s"
-#: ../cli.py:186 ../cli.py:1068 ../utils.py:75
+#: ../cli.py:190 ../cli.py:1128 ../utils.py:74
#, python-format
msgid "Options Error: %s"
msgstr "BÅÄ
d opcji: %s"
-#: ../cli.py:229
+#: ../cli.py:218
+#, python-format
+msgid " Installed: %s-%s at %s"
+msgstr " Zainstalowane: %s-%s at %s"
+
+#: ../cli.py:220
+#, python-format
+msgid " Built : %s at %s"
+msgstr " Zbudowane : %s o %s"
+
+#: ../cli.py:222
+#, python-format
+msgid " Committed: %s at %s"
+msgstr " WysÅane: %s o %s"
+
+#: ../cli.py:259
msgid "You need to give some command"
msgstr "Musisz podaÄ jakieÅ polecenie"
-#: ../cli.py:271
+#: ../cli.py:301
msgid "Disk Requirements:\n"
msgstr "Wymagana przestrzeÅ na dysku:\n"
-#: ../cli.py:273
+#: ../cli.py:303
#, python-format
msgid " At least %dMB needed on the %s filesystem.\n"
msgstr " Potrzeba co najmniej %d MB w systemie plików %s.\n"
#. TODO: simplify the dependency errors?
#. Fixup the summary
-#: ../cli.py:278
+#: ../cli.py:308
msgid ""
"Error Summary\n"
"-------------\n"
@@ -113,55 +130,55 @@ msgstr ""
"Podsumowanie bÅÄdów\n"
"-------------------\n"
-#: ../cli.py:317
+#: ../cli.py:351
msgid "Trying to run the transaction but nothing to do. Exiting."
msgstr "Próbowano wykonaÄ transakcjÄ, ale nie ma nic do zrobienia. Zamykanie."
-#: ../cli.py:347
+#: ../cli.py:381
msgid "Exiting on user Command"
msgstr "Zamykanie na polecenie użytkownika"
-#: ../cli.py:351
+#: ../cli.py:385
msgid "Downloading Packages:"
msgstr "Pobieranie pakietów:"
-#: ../cli.py:356
+#: ../cli.py:390
msgid "Error Downloading Packages:\n"
msgstr "BÅÄ
d podczas pobierania pakietów:\n"
-#: ../cli.py:370 ../yum/__init__.py:2746
+#: ../cli.py:404 ../yum/__init__.py:3134
msgid "Running rpm_check_debug"
msgstr "Wykonywanie rpm_check_debug"
-#: ../cli.py:373 ../yum/__init__.py:2749
+#: ../cli.py:407 ../yum/__init__.py:3137
msgid "ERROR with rpm_check_debug vs depsolve:"
msgstr "BÅÄD rpm_check_debug i rozwiÄ
zywania zależnoÅci:"
-#: ../cli.py:377 ../yum/__init__.py:2751
+#: ../cli.py:411 ../yum/__init__.py:3139
msgid "Please report this error in bugzilla"
msgstr "ZgÅoÅ ten bÅÄ
d w Bugzilli"
-#: ../cli.py:383
+#: ../cli.py:417
msgid "Running Transaction Test"
msgstr "Wykonywanie testu transakcji"
-#: ../cli.py:399
+#: ../cli.py:433
msgid "Finished Transaction Test"
msgstr "ZakoÅczono test transakcji"
-#: ../cli.py:401
+#: ../cli.py:435
msgid "Transaction Check Error:\n"
msgstr "BÅÄ
d podczas sprawdzania transakcji:\n"
-#: ../cli.py:408
+#: ../cli.py:442
msgid "Transaction Test Succeeded"
msgstr "Test transakcji zostaÅ zakoÅczony powodzeniem"
-#: ../cli.py:429
+#: ../cli.py:463
msgid "Running Transaction"
msgstr "Wykonywanie transakcji"
-#: ../cli.py:459
+#: ../cli.py:493
msgid ""
"Refusing to automatically import keys when running unattended.\n"
"Use \"-y\" to override."
@@ -170,377 +187,422 @@ msgstr ""
"uruchomienia.\n"
"Użyj \"-y\", aby wymusiÄ."
-#: ../cli.py:491
-msgid "Parsing package install arguments"
-msgstr "Analizowanie argumentów instalacji pakietów"
+#: ../cli.py:512 ../cli.py:545
+msgid " * Maybe you meant: "
+msgstr " * Czy chodziÅo o: "
+
+#: ../cli.py:528 ../cli.py:536
+#, 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:501
+#: ../cli.py:542 ../cli.py:577
#, python-format
-msgid "No package %s available."
-msgstr "Nie ma pakietu %s."
+msgid "No package %s%s%s available."
+msgstr "Nie ma pakietu %s%s%s."
-#: ../cli.py:505 ../cli.py:623 ../yumcommands.py:748
+#: ../cli.py:567
+msgid "Parsing package install arguments"
+msgstr "Analizowanie parametrów instalacji pakietów"
+
+#: ../cli.py:582 ../cli.py:657 ../yumcommands.py:889
msgid "Package(s) to install"
msgstr "Pakiety do zainstalowania"
-#: ../cli.py:506 ../cli.py:624 ../yumcommands.py:146 ../yumcommands.py:749
+#: ../cli.py:583 ../cli.py:658 ../yumcommands.py:150 ../yumcommands.py:890
msgid "Nothing to do"
msgstr "Nie ma niczego do zrobienia"
-#: ../cli.py:536 ../yum/__init__.py:2232 ../yum/__init__.py:2311
-#: ../yum/__init__.py:2340
-#, 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"
-
-#: ../cli.py:568
-#, python-format
-msgid "Could not find update match for %s"
-msgstr "Nie można znaleÅºÄ pasujÄ
cych aktualizacji dla %s"
-
-#: ../cli.py:580
+#: ../cli.py:616
#, python-format
msgid "%d packages marked for Update"
msgstr "%d pakietów oznaczonych do aktualizacji"
-#: ../cli.py:583
+#: ../cli.py:619
msgid "No Packages marked for Update"
msgstr "Brak pakietów oznaczonych do aktualizacji"
-#: ../cli.py:599
+#: ../cli.py:633
#, python-format
msgid "%d packages marked for removal"
msgstr "%d pakietów oznaczonych do usuniÄcia"
-#: ../cli.py:602
+#: ../cli.py:636
msgid "No Packages marked for removal"
msgstr "Brak pakietów oznaczonych do usuniÄcia"
-#: ../cli.py:614
+#: ../cli.py:648
msgid "No Packages Provided"
msgstr "Nie podano pakietów"
-#: ../cli.py:654
+#: ../cli.py:689
msgid "Matching packages for package list to user args"
-msgstr "Dopasowywanie listy pakietów do argumentów użytkownika"
+msgstr "Dopasowywanie listy pakietów do parametrów użytkownika"
-#: ../cli.py:701
+#: ../cli.py:731
#, python-format
msgid "Warning: No matches found for: %s"
msgstr "Ostrzeżenie: nie znaleziono wyników dla: %s"
-#: ../cli.py:704
+#: ../cli.py:734
msgid "No Matches found"
msgstr "Brak wyników"
-#: ../cli.py:745
+#: ../cli.py:773
+#, python-format
+msgid ""
+"Warning: 3.0.x versions of yum would erronously match against filenames.\n"
+" You can use \"%s*/%s%s\" and/or \"%s*bin/%s%s\" to get that behaviour"
+msgstr ""
+"Ostrzeżenie: wersje yuma 3.0.x 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:789
#, python-format
msgid "No Package Found for %s"
msgstr "Nie znaleziono pakietów dla %s"
-#: ../cli.py:757
+#: ../cli.py:801
msgid "Cleaning up Everything"
msgstr "Czyszczenie wszystkiego"
-#: ../cli.py:771
+#: ../cli.py:815
msgid "Cleaning up Headers"
msgstr "Czyszczenie nagÅówków"
-#: ../cli.py:774
+#: ../cli.py:818
msgid "Cleaning up Packages"
msgstr "Czyszczenie pakietów"
-#: ../cli.py:777
+#: ../cli.py:821
msgid "Cleaning up xml metadata"
msgstr "Czytanie metadanych XML"
-#: ../cli.py:780
+#: ../cli.py:824
msgid "Cleaning up database cache"
msgstr "Czyszczenie pamiÄci podrÄcznej bazy danych"
-#: ../cli.py:783
+#: ../cli.py:827
msgid "Cleaning up expire-cache metadata"
msgstr "Czytanie metadanych wygasÅej pamiÄci podrÄcznej"
-#: ../cli.py:786
+#: ../cli.py:830
msgid "Cleaning up plugins"
msgstr "Czyszczenie wtyczek"
-#: ../cli.py:807
+#: ../cli.py:851
msgid "Installed Groups:"
msgstr "Zainstalowane grupy:"
-#: ../cli.py:814
+#: ../cli.py:858
msgid "Available Groups:"
msgstr "DostÄpne grupy:"
-#: ../cli.py:820
+#: ../cli.py:864
msgid "Done"
msgstr "ZakoÅczono"
-#: ../cli.py:829 ../cli.py:841 ../cli.py:847
+#: ../cli.py:875 ../cli.py:893 ../cli.py:899 ../yum/__init__.py:2246
#, python-format
msgid "Warning: Group %s does not exist."
msgstr "Ostrzeżenie: grupa %s nie istnieje."
-#: ../cli.py:853
+#: ../cli.py:903
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:855
+#: ../cli.py:905
#, python-format
msgid "%d Package(s) to Install"
msgstr "%d pakietów do instalacji"
-#: ../cli.py:865
+#: ../cli.py:915 ../yum/__init__.py:2258
#, python-format
msgid "No group named %s exists"
msgstr "Grupa o nazwie %s nie istnieje"
-#: ../cli.py:871
+#: ../cli.py:921
msgid "No packages to remove from groups"
msgstr "Brak pakietów do usuniÄcia z grup"
-#: ../cli.py:873
+#: ../cli.py:923
#, python-format
msgid "%d Package(s) to remove"
msgstr "%d pakietów do usuniÄcia"
-#: ../cli.py:915
+#: ../cli.py:965
#, python-format
msgid "Package %s is already installed, skipping"
msgstr "Pakiet %s jest już zainstalowany, pomijanie"
-#: ../cli.py:926
+#: ../cli.py:976
#, 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:952
+#: ../cli.py:1002
#, 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:971
+#: ../cli.py:1021
#, python-format
msgid "Command line error: %s"
msgstr "BÅÄ
d wiersza poleceÅ: %s"
-#: ../cli.py:1101
+#: ../cli.py:1034
+#, python-format
+msgid ""
+"\n"
+"\n"
+"%s: %s option requires an argument"
+msgstr ""
+"\n"
+"\n"
+"%s: opcja %s wymaga parametru"
+
+#: ../cli.py:1170
+msgid "show this help message and exit"
+msgstr "wyÅwietla ten komunikat pomocy i wyÅÄ
cza"
+
+#: ../cli.py:1174
msgid "be tolerant of errors"
msgstr "toleruje bÅÄdy"
-#: ../cli.py:1103
+#: ../cli.py:1176
msgid "run entirely from cache, don't update cache"
msgstr "uruchamia wyÅÄ
cznie z pamiÄci podrÄcznej i nie aktualizuje jej"
-#: ../cli.py:1105
+#: ../cli.py:1178
msgid "config file location"
msgstr "poÅożenie pliku konfiguracji"
-#: ../cli.py:1107
+#: ../cli.py:1180
msgid "maximum command wait time"
msgstr "maksymalny czas oczekiwania na polecenie"
-#: ../cli.py:1109
+#: ../cli.py:1182
msgid "debugging output level"
msgstr "poziom wyjÅcia debugowania"
-#: ../cli.py:1113
+#: ../cli.py:1186
msgid "show duplicates, in repos, in list/search commands"
msgstr "wyÅwietla duplikaty w repozytoriach w poleceniach list/search"
-#: ../cli.py:1115
+#: ../cli.py:1188
msgid "error output level"
msgstr "poziom wyjÅcia bÅÄdów"
-#: ../cli.py:1118
+#: ../cli.py:1191
msgid "quiet operation"
-msgstr "cicha praca"
+msgstr "maÅo komunikatów"
+
+#: ../cli.py:1193
+msgid "verbose operation"
+msgstr "dużo komunikatów"
-#: ../cli.py:1122
+#: ../cli.py:1195
msgid "answer yes for all questions"
msgstr "odpowiada tak na wszystkie pytania"
-#: ../cli.py:1124
+#: ../cli.py:1197
msgid "show Yum version and exit"
msgstr "wyÅwietla wersjÄ yuma i wyÅÄ
cza"
-#: ../cli.py:1125
+#: ../cli.py:1198
msgid "set install root"
msgstr "ustawia roota instalacji"
-#: ../cli.py:1129
+#: ../cli.py:1202
msgid "enable one or more repositories (wildcards allowed)"
msgstr "wÅÄ
cza jedno lub wiÄcej repozytoriów (wieloznaczniki sÄ
dozwolone)"
-#: ../cli.py:1133
+#: ../cli.py:1206
msgid "disable one or more repositories (wildcards allowed)"
msgstr "wyÅÄ
cza jedno lub wiÄcej repozytoriów (wieloznaczniki sÄ
dozwolone)"
-#: ../cli.py:1136
+#: ../cli.py:1209
msgid "exclude package(s) by name or glob"
msgstr "wyklucza pakiety po nazwie lub wyrażeniu regularnym"
-#: ../cli.py:1138
+#: ../cli.py:1211
msgid "disable exclude from main, for a repo or for everything"
msgstr "wyÅÄ
cza wykluczanie z gÅównego, dla repozytorium lub wszystkiego"
-#: ../cli.py:1141
+#: ../cli.py:1214
msgid "enable obsoletes processing during updates"
msgstr "wÅÄ
cza przetwarzanie przestarzaÅych pakietów podczas aktualizacji"
-#: ../cli.py:1143
+#: ../cli.py:1216
msgid "disable Yum plugins"
msgstr "wyÅÄ
cza wtyczki yuma"
-#: ../cli.py:1145
+#: ../cli.py:1218
msgid "disable gpg signature checking"
msgstr "wyÅÄ
cza sprawdzanie podpisu GPG"
-#: ../cli.py:1147
+#: ../cli.py:1220
msgid "disable plugins by name"
msgstr "wyÅÄ
cza wtyczki po nazwie"
-#: ../cli.py:1150
+#: ../cli.py:1223
+msgid "enable plugins by name"
+msgstr "wÅÄ
cza wtyczki po nazwie"
+
+#: ../cli.py:1226
msgid "skip packages with depsolving problems"
msgstr "pomija pakiety majÄ
ce problemy z rozwiÄ
zaniem zależnoÅci"
-#: ../output.py:229
+#: ../output.py:236
msgid "Jan"
msgstr "sty"
-#: ../output.py:229
+#: ../output.py:236
msgid "Feb"
msgstr "lut"
-#: ../output.py:229
+#: ../output.py:236
msgid "Mar"
msgstr "mar"
-#: ../output.py:229
+#: ../output.py:236
msgid "Apr"
msgstr "kwi"
-#: ../output.py:229
+#: ../output.py:236
msgid "May"
msgstr "maj"
-#: ../output.py:229
+#: ../output.py:236
msgid "Jun"
msgstr "cze"
-#: ../output.py:230
+#: ../output.py:237
msgid "Jul"
msgstr "lip"
-#: ../output.py:230
+#: ../output.py:237
msgid "Aug"
msgstr "sie"
-#: ../output.py:230
+#: ../output.py:237
msgid "Sep"
msgstr "wrz"
-#: ../output.py:230
+#: ../output.py:237
msgid "Oct"
msgstr "paź"
-#: ../output.py:230
+#: ../output.py:237
msgid "Nov"
msgstr "lis"
-#: ../output.py:230
+#: ../output.py:237
msgid "Dec"
msgstr "gru"
-#: ../output.py:240
+#: ../output.py:247
msgid "Trying other mirror."
msgstr "Próbowanie innego serwera lustrzanego."
-#: ../output.py:293
+#: ../output.py:425
#, python-format
-msgid "Name : %s"
-msgstr "Nazwa : %s"
+msgid "Name : %s%s%s"
+msgstr "Nazwa : %s%s%s"
-#: ../output.py:294
+#: ../output.py:426
#, python-format
msgid "Arch : %s"
-msgstr "Architektura: %s"
+msgstr "Architektura : %s"
-#: ../output.py:296
+#: ../output.py:428
#, python-format
msgid "Epoch : %s"
-msgstr "Epoka : %s"
+msgstr "Epoka : %s"
-#: ../output.py:297
+#: ../output.py:429
#, python-format
msgid "Version : %s"
-msgstr "Wersja : %s"
+msgstr "Wersja : %s"
-#: ../output.py:298
+#: ../output.py:430
#, python-format
msgid "Release : %s"
-msgstr "Wydanie : %s"
+msgstr "Wydanie : %s"
-#: ../output.py:299
+#: ../output.py:431
#, python-format
msgid "Size : %s"
-msgstr "Rozmiar : %s"
+msgstr "Rozmiar : %s"
-#: ../output.py:300
+#: ../output.py:432
#, python-format
msgid "Repo : %s"
-msgstr "Repozytorium: %s"
+msgstr "Repozytorium : %s"
-#: ../output.py:302
+#: ../output.py:434
#, python-format
msgid "Committer : %s"
-msgstr "Twórca : %s"
+msgstr "Twórca : %s"
+
+#: ../output.py:435
+#, python-format
+msgid "Committime : %s"
+msgstr "Czas wysÅania : %s"
+
+#: ../output.py:436
+#, python-format
+msgid "Buildtime : %s"
+msgstr "Czas zbudowania : %s"
-#: ../output.py:303
+#: ../output.py:438
+#, python-format
+msgid "Installtime: %s"
+msgstr "Czas zainstalowania: %s"
+
+#: ../output.py:439
msgid "Summary : "
-msgstr "Podsumowanie: "
+msgstr "Podsumowanie : "
-#: ../output.py:305
+#: ../output.py:441
#, python-format
msgid "URL : %s"
-msgstr "URL : %s"
+msgstr "URL : %s"
-#: ../output.py:306
+#: ../output.py:442
#, python-format
msgid "License : %s"
-msgstr "Licencja : %s"
+msgstr "Licencja : %s"
-#: ../output.py:307
+#: ../output.py:443
msgid "Description: "
-msgstr "Opis : "
+msgstr "Opis : "
-#: ../output.py:351
-msgid "Is this ok [y/N]: "
-msgstr "W porzÄ
dku? [t/N]: "
-
-#: ../output.py:357 ../output.py:360
+#: ../output.py:500
msgid "y"
msgstr "t"
-#: ../output.py:357
-msgid "n"
-msgstr "n"
-
-#: ../output.py:357 ../output.py:360
+#: ../output.py:500
msgid "yes"
msgstr "tak"
-#: ../output.py:357
+#: ../output.py:501
+msgid "n"
+msgstr "n"
+
+#: ../output.py:501
msgid "no"
msgstr "nie"
-#: ../output.py:367
+#: ../output.py:505
+msgid "Is this ok [y/N]: "
+msgstr "W porzÄ
dku? [t/N]: "
+
+#: ../output.py:587
#, python-format
msgid ""
"\n"
@@ -549,96 +611,119 @@ msgstr ""
"\n"
"Grupa: %s"
-#: ../output.py:369
+#: ../output.py:594
#, python-format
msgid " Description: %s"
msgstr " Opis: %s"
-#: ../output.py:371
+#: ../output.py:596
msgid " Mandatory Packages:"
msgstr " Pakiety obowiÄ
zkowe:"
-#: ../output.py:376
+#: ../output.py:597
msgid " Default Packages:"
msgstr " DomyÅlne pakiety:"
-#: ../output.py:381
+#: ../output.py:598
msgid " Optional Packages:"
msgstr " Pakiety opcjonalne:"
-#: ../output.py:386
+#: ../output.py:599
msgid " Conditional Packages:"
msgstr " Pakiety warunkowe:"
-#: ../output.py:394
+#: ../output.py:619
#, python-format
msgid "package: %s"
msgstr "pakiet: %s"
-#: ../output.py:396
+#: ../output.py:621
msgid " No dependencies for this package"
msgstr " Brak zależnoÅci dla tego pakietu"
-#: ../output.py:401
+#: ../output.py:626
#, python-format
msgid " dependency: %s"
msgstr " zależnoÅÄ: %s"
-#: ../output.py:403
+#: ../output.py:628
msgid " Unsatisfied dependency"
msgstr " NierozwiÄ
zana zależnoÅÄ"
-#: ../output.py:461
+#: ../output.py:700
msgid "Matched from:"
msgstr "Dopasowano z:"
-#: ../output.py:487
+#: ../output.py:708
+msgid "Description : "
+msgstr "Opis : "
+
+#: ../output.py:711
+#, python-format
+msgid "URL : %s"
+msgstr "URL : %s"
+
+#: ../output.py:714
+#, python-format
+msgid "License : %s"
+msgstr "Licencja : %s"
+
+#: ../output.py:717
+#, python-format
+msgid "Filename : %s"
+msgstr "Nazwa pliku : %s"
+
+#: ../output.py:721
+msgid "Other : "
+msgstr "Inne : %s"
+
+#: ../output.py:753
msgid "There was an error calculating total download size"
msgstr "WystÄ
piÅ bÅÄ
d podczas obliczania caÅkowitego rozmiaru pobierania"
-#: ../output.py:492
+#: ../output.py:758
#, python-format
msgid "Total size: %s"
msgstr "CaÅkowity rozmiar: %s"
-#: ../output.py:495
+#: ../output.py:761
#, python-format
msgid "Total download size: %s"
msgstr "CaÅkowity rozmiar pobierania: %s"
-#: ../output.py:507
+#: ../output.py:779
+msgid "Installing for dependencies"
+msgstr "Instalowanie, aby rozwiÄ
zaÄ zależnoÅci"
+
+#: ../output.py:780
+msgid "Updating for dependencies"
+msgstr "Aktualizowanie, aby rozwiÄ
zaÄ zależnoÅci"
+
+#: ../output.py:781
+msgid "Removing for dependencies"
+msgstr "Usuwanie, aby rozwiÄ
zaÄ zależnoÅci"
+
+#: ../output.py:817
msgid "Package"
msgstr "Pakiet"
-#: ../output.py:507
+#: ../output.py:817
msgid "Arch"
msgstr "Architektura"
-#: ../output.py:507
+#: ../output.py:818
msgid "Version"
msgstr "Wersja"
-#: ../output.py:507
+#: ../output.py:818
msgid "Repository"
msgstr "Repozytorium"
-#: ../output.py:507
+#: ../output.py:819
msgid "Size"
msgstr "Rozmiar"
-#: ../output.py:514
-msgid "Installing for dependencies"
-msgstr "Instalowanie, aby rozwiÄ
zaÄ zależnoÅci"
-
-#: ../output.py:515
-msgid "Updating for dependencies"
-msgstr "Aktualizowanie, aby rozwiÄ
zaÄ zależnoÅci"
-
-#: ../output.py:516
-msgid "Removing for dependencies"
-msgstr "Usuwanie, aby rozwiÄ
zaÄ zależnoÅci"
-
-#: ../output.py:528
+#: ../output.py:830
#, python-format
msgid ""
" replacing %s.%s %s\n"
@@ -647,44 +732,44 @@ msgstr ""
" zastÄpuje %s.%s %s\n"
"\n"
-#: ../output.py:536
+#: ../output.py:838
#, python-format
msgid ""
"\n"
"Transaction Summary\n"
-"=============================================================================\n"
+"%s\n"
"Install %5.5s Package(s) \n"
"Update %5.5s Package(s) \n"
"Remove %5.5s Package(s) \n"
msgstr ""
"\n"
"Podsumowanie transakcji\n"
-"=============================================================================\n"
+"%s\n"
"Instalowanie %5.5s pakietów \n"
"Aktualizowanie %5.5s pakietów \n"
"Usuwanie %5.5s pakietów \n"
-#: ../output.py:554
+#: ../output.py:886
msgid "Removed"
msgstr "UsuniÄto"
-#: ../output.py:555
+#: ../output.py:887
msgid "Dependency Removed"
msgstr "UsuniÄto zależnoÅÄ"
-#: ../output.py:557
+#: ../output.py:889
msgid "Dependency Installed"
msgstr "Zainstalowano zależnoÅÄ"
-#: ../output.py:559
+#: ../output.py:891
msgid "Dependency Updated"
msgstr "Zaktualizowano zależnoÅÄ"
-#: ../output.py:560
+#: ../output.py:892
msgid "Replaced"
msgstr "ZastÄ
piono"
-#: ../output.py:618
+#: ../output.py:965
#, python-format
msgid ""
"\n"
@@ -695,72 +780,76 @@ msgstr ""
" Obecne pobieranie zostaÅo anulowane, %sprzerwij (Ctrl-C) ponownie%s w ciÄ
gu "
"%s%s%s sekund, aby zakoÅczyÄ.\n"
-#: ../output.py:628
+#: ../output.py:975
msgid "user interrupt"
msgstr "przerwane przez użytkownika"
-#: ../output.py:639
+#: ../output.py:991
+msgid "Total"
+msgstr "Razem"
+
+#: ../output.py:1005
msgid "installed"
msgstr "zainstalowany"
-#: ../output.py:640
+#: ../output.py:1006
msgid "updated"
msgstr "zaktualizowany"
-#: ../output.py:641
+#: ../output.py:1007
msgid "obsoleted"
msgstr "zastÄ
piony"
-#: ../output.py:642
+#: ../output.py:1008
msgid "erased"
msgstr "usuniÄty"
-#: ../output.py:646
+#: ../output.py:1012
#, python-format
msgid "---> Package %s.%s %s:%s-%s set to be %s"
msgstr "---> Pakiet %s.%s %s:%s-%s zostanie %s"
-#: ../output.py:653
+#: ../output.py:1019
msgid "--> Running transaction check"
msgstr "--> Wykonywanie sprawdzania transakcji"
-#: ../output.py:658
+#: ../output.py:1024
msgid "--> Restarting Dependency Resolution with new changes."
msgstr "--> Ponowne uruchamianie rozwiÄ
zywania zależnoÅci z nowymi zmianami."
-#: ../output.py:663
+#: ../output.py:1029
msgid "--> Finished Dependency Resolution"
msgstr "--> ZakoÅczono rozwiÄ
zywanie zależnoÅci"
-#: ../output.py:668
+#: ../output.py:1034
#, python-format
msgid "--> Processing Dependency: %s for package: %s"
msgstr "--> Przetwarzanie zależnoÅci: %s dla pakietu: %s"
-#: ../output.py:673
+#: ../output.py:1039
#, python-format
msgid "--> Unresolved Dependency: %s"
msgstr "--> NierozwiÄ
zana zależnoÅÄ: %s"
-#: ../output.py:679
+#: ../output.py:1045
#, python-format
msgid "--> Processing Conflict: %s conflicts %s"
msgstr "--> Przetwarzanie konfliktów: %s jest w konflikcie z %s"
-#: ../output.py:682
+#: ../output.py:1048
msgid "--> Populating transaction set with selected packages. Please wait."
msgstr "--> UkÅadanie zestawu transakcji z wybranymi pakietami. ProszÄ czekaÄ."
-#: ../output.py:686
+#: ../output.py:1052
#, python-format
msgid "---> Downloading header for %s to pack into transaction set."
msgstr "---> Pobieranie nagÅówka dla %s do umieszczenia w zestawie transakcji."
-#: ../yumcommands.py:36
+#: ../yumcommands.py:40
msgid "You need to be root to perform this command."
msgstr "Musisz byÄ zalogowany jako root, aby wykonaÄ to polecenie."
-#: ../yumcommands.py:43
+#: ../yumcommands.py:47
msgid ""
"\n"
"You have enabled checking of packages via GPG keys. This is a good thing. \n"
@@ -791,249 +880,290 @@ msgstr ""
"Aby dowiedzieÄ siÄ wiÄcej, skontaktuj siÄ z dostawcÄ
dystrybucji lub\n"
"pakietu.\n"
-#: ../yumcommands.py:63
+#: ../yumcommands.py:67
#, python-format
msgid "Error: Need to pass a list of pkgs to %s"
msgstr "BÅÄ
d: wymagane jest przekazanie listy pakietów do %s"
-#: ../yumcommands.py:69
+#: ../yumcommands.py:73
msgid "Error: Need an item to match"
-msgstr "BÅÄ
d: wymagany jest argument do dopasowania"
+msgstr "BÅÄ
d: wymagany jest parametr do dopasowania"
-#: ../yumcommands.py:75
+#: ../yumcommands.py:79
msgid "Error: Need a group or list of groups"
msgstr "BÅÄ
d: wymagana jest grupa lub lista grup"
-#: ../yumcommands.py:84
+#: ../yumcommands.py:88
#, python-format
msgid "Error: clean requires an option: %s"
msgstr "BÅÄ
d: czyszczenie wymaga opcji: %s"
-#: ../yumcommands.py:89
+#: ../yumcommands.py:93
#, python-format
msgid "Error: invalid clean argument: %r"
-msgstr "BÅÄ
d: nieprawidÅowy argument czyszczenia: %r"
+msgstr "BÅÄ
d: nieprawidÅowy parametr czyszczenia: %r"
-#: ../yumcommands.py:102
+#: ../yumcommands.py:106
msgid "No argument to shell"
-msgstr "Brak argumentów dla powÅoki"
+msgstr "Brak parametrów dla powÅoki"
-#: ../yumcommands.py:105
+#: ../yumcommands.py:109
#, python-format
msgid "Filename passed to shell: %s"
msgstr "Przekazano nazwÄ pliku do powÅoki: %s"
-#: ../yumcommands.py:109
+#: ../yumcommands.py:113
#, python-format
msgid "File %s given as argument to shell does not exist."
-msgstr "Plik %s podany powÅoce jako argument nie istnieje."
+msgstr "Plik %s podany powÅoce jako parametr nie istnieje."
-#: ../yumcommands.py:115
+#: ../yumcommands.py:119
msgid "Error: more than one file given as argument to shell."
-msgstr "BÅÄ
d: podano powÅoce wiÄcej niż jeden plik jako argument."
+msgstr "BÅÄ
d: podano powÅoce wiÄcej niż jeden plik jako parametr."
-#: ../yumcommands.py:156
+#: ../yumcommands.py:160
msgid "PACKAGE..."
msgstr "PAKIET..."
-#: ../yumcommands.py:159
+#: ../yumcommands.py:163
msgid "Install a package or packages on your system"
msgstr "Zainstaluj pakiet lub pakiety w systemie"
-#: ../yumcommands.py:168
+#: ../yumcommands.py:172
msgid "Setting up Install Process"
msgstr "Ustawianie procesu instalacji"
-#: ../yumcommands.py:179
+#: ../yumcommands.py:183
msgid "[PACKAGE...]"
msgstr "[PAKIET...]"
-#: ../yumcommands.py:182
+#: ../yumcommands.py:186
msgid "Update a package or packages on your system"
msgstr "Zaktualizuj pakiet lub pakiety w systemie"
-#: ../yumcommands.py:190
+#: ../yumcommands.py:194
msgid "Setting up Update Process"
msgstr "Ustawianie procesu aktualizacji"
-#: ../yumcommands.py:204
+#: ../yumcommands.py:236
msgid "Display details about a package or group of packages"
msgstr "WyÅwietl szczegóÅy o pakiecie lub grupie pakietów"
-#: ../yumcommands.py:212
+#. Output the packages:
+#: ../yumcommands.py:261
msgid "Installed Packages"
msgstr "Zainstalowane pakiety"
-#: ../yumcommands.py:213
+#: ../yumcommands.py:263
msgid "Available Packages"
msgstr "DostÄpne pakiety"
-#: ../yumcommands.py:214
+#: ../yumcommands.py:265
msgid "Extra Packages"
msgstr "Dodatkowe pakiety"
-#: ../yumcommands.py:215
+#: ../yumcommands.py:267
msgid "Updated Packages"
msgstr "Zaktualizowane pakiety"
-#: ../yumcommands.py:221 ../yumcommands.py:225
+#: ../yumcommands.py:274 ../yumcommands.py:281
msgid "Obsoleting Packages"
msgstr "ZastÄpowanie przestarzaÅych pakietów"
-#: ../yumcommands.py:226
+#: ../yumcommands.py:283
msgid "Recently Added Packages"
msgstr "Ostatnio dodane pakiety"
-#: ../yumcommands.py:232
+#: ../yumcommands.py:290
msgid "No matching Packages to list"
msgstr "Brak pakietów pasujÄ
cych do listy"
-#: ../yumcommands.py:246
+#: ../yumcommands.py:304
msgid "List a package or groups of packages"
msgstr "WyÅwietl listÄ pakietów lub grup pakietów"
-#: ../yumcommands.py:258
+#: ../yumcommands.py:316
msgid "Remove a package or packages from your system"
msgstr "UsuÅ pakiet lub pakiety z systemu"
-#: ../yumcommands.py:266
+#: ../yumcommands.py:324
msgid "Setting up Remove Process"
msgstr "Ustawianie procesu usuwania"
-#: ../yumcommands.py:278
+#: ../yumcommands.py:339
msgid "Setting up Group Process"
msgstr "Ustawianie procesu grup"
-#: ../yumcommands.py:284
+#: ../yumcommands.py:345
msgid "No Groups on which to run command"
msgstr "Brak grup, na których można wykonaÄ polecenie"
-#: ../yumcommands.py:297
+#: ../yumcommands.py:358
msgid "List available package groups"
msgstr "WyÅwietl listÄ dostÄpnych grup pakietów"
-#: ../yumcommands.py:314
+#: ../yumcommands.py:375
msgid "Install the packages in a group on your system"
msgstr "Zainstaluj pakiety z grupy w systemie"
-#: ../yumcommands.py:336
+#: ../yumcommands.py:397
msgid "Remove the packages in a group from your system"
msgstr "UsuÅ pakiety z grupy z systemu"
-#: ../yumcommands.py:360
+#: ../yumcommands.py:424
msgid "Display details about a package group"
msgstr "WyÅwietl szczegóÅy o grupie pakietów"
-#: ../yumcommands.py:384
+#: ../yumcommands.py:448
msgid "Generate the metadata cache"
msgstr "Utwórz pamiÄÄ podrÄcznÄ
metadanych"
-#: ../yumcommands.py:390
+#: ../yumcommands.py:454
msgid "Making cache files for all metadata files."
msgstr "Tworzenie plików pamiÄci podrÄcznej ze wszystkich plików metadanych."
-#: ../yumcommands.py:391
+#: ../yumcommands.py:455
msgid "This may take a while depending on the speed of this computer"
msgstr "Może to chwilÄ zajÄ
Ä, z zależnoÅci od szybkoÅci komputera"
-#: ../yumcommands.py:412
+#: ../yumcommands.py:476
msgid "Metadata Cache Created"
msgstr "Utworzono pamiÄÄ podrÄcznÄ
metadanych"
-#: ../yumcommands.py:426
+#: ../yumcommands.py:490
msgid "Remove cached data"
msgstr "UsuniÄto dane z pamiÄci podrÄcznej"
-#: ../yumcommands.py:447
+#: ../yumcommands.py:511
msgid "Find what package provides the given value"
msgstr "Znajdź pakiet dostarczajÄ
cy podanÄ
wartoÅÄ"
-#: ../yumcommands.py:467
+#: ../yumcommands.py:531
msgid "Check for available package updates"
msgstr "Sprawdź dostÄpne aktualizacje pakietów"
-#: ../yumcommands.py:490
+#: ../yumcommands.py:556
msgid "Search package details for the given string"
msgstr "Znajdź szczegóÅy pakietów dla podanego ÅaÅcucha tekstowego"
-#: ../yumcommands.py:496
+#: ../yumcommands.py:562
msgid "Searching Packages: "
msgstr "Wyszukiwanie pakietów: "
-#: ../yumcommands.py:513
+#: ../yumcommands.py:579
msgid "Update packages taking obsoletes into account"
msgstr "Zaktualizuj pakiety, w tym przestarzaÅe"
-#: ../yumcommands.py:522
+#: ../yumcommands.py:588
msgid "Setting up Upgrade Process"
msgstr "Ustawianie procesu aktualizacji"
-#: ../yumcommands.py:536
+#: ../yumcommands.py:602
msgid "Install a local RPM"
msgstr "Zainstaluj lokalny pakiet RPM"
-#: ../yumcommands.py:545
+#: ../yumcommands.py:611
msgid "Setting up Local Package Process"
msgstr "Ustawianie procesu lokalnego pakietu"
-#: ../yumcommands.py:564
+#: ../yumcommands.py:630
msgid "Determine which package provides the given dependency"
msgstr "OkreÅl, który pakiet dostarcza podanÄ
zależnoÅÄ"
-#: ../yumcommands.py:567
+#: ../yumcommands.py:633
msgid "Searching Packages for Dependency:"
msgstr "Wyszukiwanie pakietów dla zależnoÅci:"
-#: ../yumcommands.py:581
+#: ../yumcommands.py:647
msgid "Run an interactive yum shell"
msgstr "Uruchom interaktywnÄ
powÅokÄ yuma"
-#: ../yumcommands.py:587
+#: ../yumcommands.py:653
msgid "Setting up Yum Shell"
msgstr "Ustawianie powÅoki yuma"
-#: ../yumcommands.py:605
+#: ../yumcommands.py:671
msgid "List a package's dependencies"
msgstr "WyÅwietl listÄ zależnoÅci pakietu"
-#: ../yumcommands.py:611
+#: ../yumcommands.py:677
msgid "Finding dependencies: "
msgstr "Wyszukiwanie zależnoÅci: "
-#: ../yumcommands.py:627
+#: ../yumcommands.py:693
msgid "Display the configured software repositories"
msgstr "WyÅwietl skonfigurowane repozytoria oprogramowania"
-#: ../yumcommands.py:645
+#: ../yumcommands.py:742
+msgid "enabled"
+msgstr "wÅÄ
czone"
+
+#: ../yumcommands.py:751
+msgid "disabled"
+msgstr "wyÅÄ
czone"
+
+#: ../yumcommands.py:760
msgid "repo id"
msgstr "ID repozytorium"
-#: ../yumcommands.py:645
+#: ../yumcommands.py:761
msgid "repo name"
msgstr "nazwa repozytorium"
-#: ../yumcommands.py:645
+#: ../yumcommands.py:761
msgid "status"
msgstr "stan"
-#: ../yumcommands.py:651
-msgid "enabled"
-msgstr "wÅÄ
czone"
+#: ../yumcommands.py:764
+msgid "Repo-id : "
+msgstr "Identyfikator repozytorium : "
-#: ../yumcommands.py:654
-msgid "disabled"
-msgstr "wyÅÄ
czone"
+#: ../yumcommands.py:765
+msgid "Repo-name : "
+msgstr "Nazwa repozytorium : "
-#: ../yumcommands.py:671
+#: ../yumcommands.py:766
+msgid "Repo-status : "
+msgstr "Stan repozytorium : "
+
+#: ../yumcommands.py:768
+msgid "Repo-updated: "
+msgstr "Aktualizacje repozytorium : "
+
+#: ../yumcommands.py:770
+msgid "Repo-pkgs : "
+msgstr "Pakiety repozytorium : "
+
+#: ../yumcommands.py:771
+msgid "Repo-size : "
+msgstr "Rozmiar repozytorium : "
+
+#: ../yumcommands.py:774
+msgid "Repo-baseurl: "
+msgstr "Podstawowy URL repozytorium : "
+
+#: ../yumcommands.py:778
+msgid "Repo-mirrors: "
+msgstr "Serwery lustrzane repozytorium: "
+
+#: ../yumcommands.py:782
+msgid "Repo-exclude: "
+msgstr "Wykluczenia z repozytorium: "
+
+#: ../yumcommands.py:786
+msgid "Repo-include: "
+msgstr "DoÅÄ
czone z repozytorium: "
+
+#: ../yumcommands.py:812
msgid "Display a helpful usage message"
msgstr "WyÅwietl pomocny komunikat o używaniu"
-#: ../yumcommands.py:705
+#: ../yumcommands.py:846
#, python-format
msgid "No help available for %s"
msgstr "Brak pomocy dla %s"
-#: ../yumcommands.py:710
+#: ../yumcommands.py:851
msgid ""
"\n"
"\n"
@@ -1043,7 +1173,7 @@ msgstr ""
"\n"
"aliasy: "
-#: ../yumcommands.py:712
+#: ../yumcommands.py:853
msgid ""
"\n"
"\n"
@@ -1053,11 +1183,11 @@ msgstr ""
"\n"
"alias: "
-#: ../yumcommands.py:741
+#: ../yumcommands.py:882
msgid "Setting up Reinstall Process"
msgstr "Ustawianie procesu ponownej instalacji"
-#: ../yumcommands.py:755
+#: ../yumcommands.py:896
msgid "reinstall a package"
msgstr "ponownie zainstaluj pakiet"
@@ -1081,27 +1211,27 @@ msgstr ""
"\n"
"Zamykanie na przerwanym potoku"
-#: ../yummain.py:105
+#: ../yummain.py:98
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..."
-#: ../yummain.py:132 ../yummain.py:171
+#: ../yummain.py:125 ../yummain.py:164
#, python-format
msgid "Error: %s"
msgstr "BÅÄ
d: %s"
-#: ../yummain.py:142 ../yummain.py:178
+#: ../yummain.py:135 ../yummain.py:171
#, python-format
msgid "Unknown Error(s): Exit Code: %d:"
msgstr "Nieznane bÅÄdy: kod wyjÅcia: %d:"
#. Depsolve stage
-#: ../yummain.py:149
+#: ../yummain.py:142
msgid "Resolving Dependencies"
msgstr "RozwiÄ
zywanie zależnoÅci"
-#: ../yummain.py:184
+#: ../yummain.py:177
msgid ""
"\n"
"Dependencies Resolved"
@@ -1109,11 +1239,11 @@ msgstr ""
"\n"
"RozwiÄ
zano zależnoÅci"
-#: ../yummain.py:198
+#: ../yummain.py:191
msgid "Complete!"
msgstr "ZakoÅczono!"
-#: ../yummain.py:245
+#: ../yummain.py:238
msgid ""
"\n"
"\n"
@@ -1123,324 +1253,318 @@ msgstr ""
"\n"
"Zamykanie na polecenie użytkownika."
-#: ../yum/depsolve.py:82
+#: ../yum/depsolve.py:84
msgid "doTsSetup() will go away in a future version of Yum.\n"
msgstr "doTsSetup() zostanie usuniÄte w przyszÅych wersjach yuma.\n"
-#: ../yum/depsolve.py:95
+#: ../yum/depsolve.py:97
msgid "Setting up TransactionSets before config class is up"
msgstr "Ustawianie zestawów transakcji przed wÅÄ
czeniem klasy konfiguracji"
-#: ../yum/depsolve.py:136
+#: ../yum/depsolve.py:148
#, python-format
msgid "Invalid tsflag in config file: %s"
msgstr "NieprawidÅowa flaga zestawu transakcji tsflag w pliku konfiguracji: %s"
-#: ../yum/depsolve.py:147
+#: ../yum/depsolve.py:159
#, python-format
msgid "Searching pkgSack for dep: %s"
msgstr "Wyszukiwanie zestawu pakietów dla zależnoÅci: %s"
-#: ../yum/depsolve.py:170
+#: ../yum/depsolve.py:182
#, python-format
msgid "Potential match for %s from %s"
msgstr "Potencjalny wynik dla %s z %s"
-#: ../yum/depsolve.py:178
+#: ../yum/depsolve.py:190
#, python-format
msgid "Matched %s to require for %s"
msgstr "%s pasuje jako wymaganie dla %s"
-#: ../yum/depsolve.py:219
+#: ../yum/depsolve.py:231
#, python-format
msgid "Member: %s"
msgstr "CzÅonek: %s"
-#: ../yum/depsolve.py:233 ../yum/depsolve.py:696
+#: ../yum/depsolve.py:245 ../yum/depsolve.py:732
#, python-format
msgid "%s converted to install"
msgstr "%s przekonwertowano do zainstalowania"
-#: ../yum/depsolve.py:240
+#: ../yum/depsolve.py:252
#, python-format
msgid "Adding Package %s in mode %s"
msgstr "Dodawanie pakietu %s w trybie %s"
-#: ../yum/depsolve.py:250
+#: ../yum/depsolve.py:262
#, python-format
msgid "Removing Package %s"
msgstr "Usuwanie pakietu %s"
-#: ../yum/depsolve.py:261
+#: ../yum/depsolve.py:273
#, python-format
msgid "%s requires: %s"
msgstr "%s wymaga: %s"
-#: ../yum/depsolve.py:312
+#: ../yum/depsolve.py:331
msgid "Needed Require has already been looked up, cheating"
msgstr "Wymagana zależnoÅÄ zostaÅa już znaleziona, oszukiwanie"
-#: ../yum/depsolve.py:322
+#: ../yum/depsolve.py:341
#, python-format
msgid "Needed Require is not a package name. Looking up: %s"
msgstr "Wymagana zależnoÅÄ nie jest nazwÄ
pakietu. Wyszukiwanie: %s"
-#: ../yum/depsolve.py:329
+#: ../yum/depsolve.py:348
#, python-format
msgid "Potential Provider: %s"
msgstr "Potencjalny dostawca: %s"
-#: ../yum/depsolve.py:352
+#: ../yum/depsolve.py:371
#, python-format
msgid "Mode is %s for provider of %s: %s"
msgstr "Tryb to %s dla dostawcy %s: %s"
-#: ../yum/depsolve.py:356
+#: ../yum/depsolve.py:375
#, python-format
msgid "Mode for pkg providing %s: %s"
msgstr "Tryb dla pakietu dostarczajÄ
cego %s: %s"
-#: ../yum/depsolve.py:360
+#: ../yum/depsolve.py:379
#, python-format
msgid "TSINFO: %s package requiring %s marked as erase"
msgstr "TSINFO: pakiet %s wymagajÄ
cy %s zostaÅ oznaczony jako do usuniÄcia"
-#: ../yum/depsolve.py:372
+#: ../yum/depsolve.py:391
#, python-format
msgid "TSINFO: Obsoleting %s with %s to resolve dep."
msgstr ""
"TSINFO: zastÄpowanie przestarzaÅego pakietu %s pakietem %s, aby rozwiÄ
zaÄ "
"zależnoÅÄ."
-#: ../yum/depsolve.py:375
+#: ../yum/depsolve.py:394
#, python-format
msgid "TSINFO: Updating %s to resolve dep."
msgstr "TSINFO: aktualizowanie %s, aby rozwiÄ
zaÄ zależnoÅÄ."
-#: ../yum/depsolve.py:378
+#: ../yum/depsolve.py:402
#, python-format
msgid "Cannot find an update path for dep for: %s"
msgstr "Nie można znaleÅºÄ Åcieżki aktualizacji dla zależnoÅci dla: %s"
-#: ../yum/depsolve.py:388
+#: ../yum/depsolve.py:412
#, python-format
msgid "Unresolvable requirement %s for %s"
msgstr "Nie można rozwiÄ
zaÄ wymagania %s dla %s"
+#: ../yum/depsolve.py:435
+#, python-format
+msgid "Quick matched %s to require for %s"
+msgstr "Szybko dopasowano %s jako wymaganie %s"
+
#. is it already installed?
-#: ../yum/depsolve.py:434
+#: ../yum/depsolve.py:477
#, python-format
msgid "%s is in providing packages but it is already installed, removing."
msgstr ""
"%s jest w dostarczajÄ
cych pakietach, ale jest już zainstalowany, usuwanie."
-#: ../yum/depsolve.py:449
+#: ../yum/depsolve.py:492
#, python-format
msgid "Potential resolving package %s has newer instance in ts."
msgstr ""
"Pakiet %s potencjalnie rozwiÄ
zujÄ
cy ma nowszÄ
wersjÄ w zestawie transakcji."
-#: ../yum/depsolve.py:460
+#: ../yum/depsolve.py:503
#, python-format
msgid "Potential resolving package %s has newer instance installed."
msgstr "Pakiet %s potencjalnie rozwiÄ
zujÄ
cy ma zainstalowanÄ
nowszÄ
wersjÄ."
-#: ../yum/depsolve.py:468 ../yum/depsolve.py:527
+#: ../yum/depsolve.py:511 ../yum/depsolve.py:560
#, python-format
msgid "Missing Dependency: %s is needed by package %s"
msgstr "BrakujÄ
ca zależnoÅÄ: %s jest wymagane przez pakiet %s"
-#: ../yum/depsolve.py:481
+#: ../yum/depsolve.py:524
#, python-format
msgid "%s already in ts, skipping this one"
msgstr "%s jest już w zestawie transakcji, pomijanie"
-#: ../yum/depsolve.py:510
-#, python-format
-msgid ""
-"Failure finding best provider of %s for %s, exceeded maximum loop length"
-msgstr ""
-"Wyszukanie najlepszego dostawcy %s dla %s nie powiodÅo siÄ, przekroczono "
-"maksymalnÄ
dÅugoÅÄ pÄtli"
-
-#: ../yum/depsolve.py:537
+#: ../yum/depsolve.py:570
#, python-format
msgid "TSINFO: Marking %s as update for %s"
msgstr "TSINFO: oznaczanie %s jako aktualizacji dla %s"
-#: ../yum/depsolve.py:544
+#: ../yum/depsolve.py:578
#, python-format
msgid "TSINFO: Marking %s as install for %s"
msgstr "TSINFO: oznaczanie %s jako do zainstalowania dla %s"
-#: ../yum/depsolve.py:635 ../yum/depsolve.py:714
+#: ../yum/depsolve.py:670 ../yum/depsolve.py:750
msgid "Success - empty transaction"
msgstr "Powodzenie - pusta transakcja"
-#: ../yum/depsolve.py:673 ../yum/depsolve.py:686
+#: ../yum/depsolve.py:709 ../yum/depsolve.py:722
msgid "Restarting Loop"
msgstr "Ponowne uruchamianie pÄtli"
-#: ../yum/depsolve.py:702
+#: ../yum/depsolve.py:738
msgid "Dependency Process ending"
msgstr "KoÅczenie procesu zależnoÅci"
-#: ../yum/depsolve.py:708
+#: ../yum/depsolve.py:744
#, python-format
msgid "%s from %s has depsolving problems"
msgstr "%s z %s ma problemy z rozwiÄ
zywaniem zależnoÅci"
-#: ../yum/depsolve.py:715
+#: ../yum/depsolve.py:751
msgid "Success - deps resolved"
msgstr "Powodzenie - rozwiÄ
zano zależnoÅci"
-#: ../yum/depsolve.py:729
+#: ../yum/depsolve.py:765
#, python-format
msgid "Checking deps for %s"
msgstr "Sprawdzanie zależnoÅci dla %s"
-#: ../yum/depsolve.py:782
+#: ../yum/depsolve.py:848
#, python-format
msgid "looking for %s as a requirement of %s"
msgstr "wyszukiwanie %s jako wymagania %s"
-#: ../yum/depsolve.py:933
-#, python-format
-msgid "Comparing best: %s to po: %s"
-msgstr "Porównywanie best: %s do po: %s"
-
-#: ../yum/depsolve.py:937
+#: ../yum/depsolve.py:988
#, python-format
-msgid "Same: best %s == po: %s"
-msgstr "Takie same: best %s == po: %s"
+msgid "Running compare_providers() for %s"
+msgstr "Wykonywanie compare_providers() dla %s"
-#: ../yum/depsolve.py:952 ../yum/depsolve.py:963
-#, python-format
-msgid "best %s obsoletes po: %s"
-msgstr "best %s zastÄpuje po: %s"
-
-#: ../yum/depsolve.py:955
-#, python-format
-msgid "po %s obsoletes best: %s"
-msgstr "po %s zastÄpuje best: %s"
-
-#: ../yum/depsolve.py:972 ../yum/depsolve.py:979 ../yum/depsolve.py:1036
+#: ../yum/depsolve.py:1016 ../yum/depsolve.py:1022
#, python-format
msgid "better arch in po %s"
msgstr "lepsze arch w po %s"
-#: ../yum/depsolve.py:988 ../yum/depsolve.py:1010
+#: ../yum/depsolve.py:1061
#, python-format
-msgid "po %s shares a sourcerpm with %s"
-msgstr "po %s wspóÅdzieli źródÅowy RPM z %s"
+msgid "%s obsoletes %s"
+msgstr "%s zastÄpuje %s"
-#: ../yum/depsolve.py:992 ../yum/depsolve.py:1015
+#: ../yum/depsolve.py:1077
#, python-format
-msgid "best %s shares a sourcerpm with %s"
-msgstr "best %s wspóÅdzieli źródÅowy RPM z %s"
+msgid ""
+"archdist compared %s to %s on %s\n"
+" Winner: %s"
+msgstr ""
+"archdist porównaÅo %s do %s na %s\n"
+" ZwyciÄzca: %s"
-#: ../yum/depsolve.py:999 ../yum/depsolve.py:1020
+#: ../yum/depsolve.py:1084
#, python-format
-msgid "po %s shares more of the name prefix with %s"
-msgstr "po %s wspóÅdzieli wiÄcej niż przedrostek nazwy z %s"
+msgid "common sourcerpm %s and %s"
+msgstr "wspólny RPM źródÅowy %s i %s"
-#: ../yum/depsolve.py:1003 ../yum/depsolve.py:1029
+#: ../yum/depsolve.py:1090
#, python-format
-msgid "po %s has a shorter name than best %s"
-msgstr "po %s ma krótszÄ
nazwÄ od best %s"
+msgid "common prefix of %s between %s and %s"
+msgstr "wspólny przedrostek %s dla %s i %s"
-#: ../yum/depsolve.py:1025
+#: ../yum/depsolve.py:1098
#, python-format
-msgid "bestpkg %s shares more of the name prefix with %s"
-msgstr "bestpkg %s wspóÅdzieli wiÄcej niż przedrostek nazwy z %s"
+msgid "Best Order: %s"
+msgstr "Najlepszy porzÄ
dek: %s"
-#: ../yum/__init__.py:119
+#: ../yum/__init__.py:134
msgid "doConfigSetup() will go away in a future version of Yum.\n"
msgstr "doConfigSetup() zostanie usuniÄte w przyszÅych wersjach yuma.\n"
-#: ../yum/__init__.py:296
+#: ../yum/__init__.py:314
#, 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:332
+#: ../yum/__init__.py:352
msgid "plugins already initialised"
msgstr "wtyczki zostaÅy już zainicjowane"
-#: ../yum/__init__.py:339
+#: ../yum/__init__.py:359
msgid "doRpmDBSetup() will go away in a future version of Yum.\n"
msgstr "doRpmDBSetup() zostanie usuniÄte w przyszÅych wersjach yuma.\n"
-#: ../yum/__init__.py:349
+#: ../yum/__init__.py:369
msgid "Reading Local RPMDB"
msgstr "Odczytywanie lokalnej bazy danych RPM"
-#: ../yum/__init__.py:367
+#: ../yum/__init__.py:387
msgid "doRepoSetup() will go away in a future version of Yum.\n"
msgstr "doRepoSetup() zostanie usuniÄte w przyszÅych wersjach yuma.\n"
-#: ../yum/__init__.py:387
+#: ../yum/__init__.py:407
msgid "doSackSetup() will go away in a future version of Yum.\n"
msgstr "doSackSetup() zostanie usuniÄte w przyszÅych wersjach yuma.\n"
-#: ../yum/__init__.py:404
+#: ../yum/__init__.py:424
msgid "Setting up Package Sacks"
msgstr "Ustawianie zestawów pakietów"
-#: ../yum/__init__.py:447
+#: ../yum/__init__.py:467
#, 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:448
+#: ../yum/__init__.py:468
msgid "therefore this repo cannot be reset.\n"
msgstr "wiÄc to repozytorium nie może zostaÄ przywrócone.\n"
-#: ../yum/__init__.py:453
+#: ../yum/__init__.py:473
msgid "doUpdateSetup() will go away in a future version of Yum.\n"
msgstr "doUpdateSetup() zostanie usuniÄte w przyszÅych wersjach yuma.\n"
-#: ../yum/__init__.py:465
+#: ../yum/__init__.py:485
msgid "Building updates object"
msgstr "Budowanie obiektu aktualizacji"
-#: ../yum/__init__.py:496
+#: ../yum/__init__.py:516
msgid "doGroupSetup() will go away in a future version of Yum.\n"
msgstr "doGroupSetup() zostanie usuniÄte w przyszÅych wersjach yuma.\n"
-#: ../yum/__init__.py:520
+#: ../yum/__init__.py:540
msgid "Getting group metadata"
msgstr "Pobieranie metadanych grup"
-#: ../yum/__init__.py:546
+#: ../yum/__init__.py:566
#, python-format
msgid "Adding group file from repository: %s"
msgstr "Dodawanie pliku grup z repozytorium: %s"
-#: ../yum/__init__.py:555
+#: ../yum/__init__.py:575
#, 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:561
+#: ../yum/__init__.py:581
msgid "No Groups Available in any repository"
msgstr "Brak dostÄpnych grup we wszystkich repozytoriach"
-#: ../yum/__init__.py:611
+#: ../yum/__init__.py:631
msgid "Importing additional filelist information"
msgstr "Importowanie dodatkowych informacji o liÅcie plików"
-#: ../yum/__init__.py:657
+#: ../yum/__init__.py:640
+msgid ""
+"There are unfinished transactions remaining. You might consider running yum-"
+"complete-transaction first to finish them."
+msgstr ""
+"PozostaÅy niezakoÅczone transakcje. Rozważ wykonanie yum-complete-"
+"transaction, aby najpierw je zakoÅczyÄ."
+
+#: ../yum/__init__.py:690
#, python-format
msgid "Skip-broken round %i"
msgstr "Pierwsza runda pomijania uszkodzonych %i"
-#: ../yum/__init__.py:680
+#: ../yum/__init__.py:713
#, python-format
msgid "Skip-broken took %i rounds "
msgstr "Pomijanie uszkodzonych zajÄÅo %i rund "
-#: ../yum/__init__.py:681
+#: ../yum/__init__.py:714
msgid ""
"\n"
"Packages skipped because of dependency problems:"
@@ -1448,95 +1572,107 @@ msgstr ""
"\n"
"Pakiety pominiÄto z powodu problemów z zależnoÅciami:"
-#: ../yum/__init__.py:685
+#: ../yum/__init__.py:718
#, python-format
msgid " %s from %s"
msgstr " %s z %s"
-#: ../yum/__init__.py:774
+#: ../yum/__init__.py:803
+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:819
#, python-format
msgid "Failed to remove transaction file %s"
msgstr "UsuniÄcie pliku transakcji %s nie powiodÅo siÄ"
-#: ../yum/__init__.py:814
+#: ../yum/__init__.py:860
#, python-format
msgid "excluding for cost: %s from %s"
msgstr "wykluczanie z kosztów: %s z %s"
-#: ../yum/__init__.py:845
+#: ../yum/__init__.py:891
msgid "Excluding Packages in global exclude list"
msgstr "Wykluczanie pakietów na globalnej liÅcie wykluczonych pakietów"
-#: ../yum/__init__.py:847
+#: ../yum/__init__.py:893
#, python-format
msgid "Excluding Packages from %s"
msgstr "Wykluczanie pakietów z %s"
-#: ../yum/__init__.py:875
+#: ../yum/__init__.py:920
#, python-format
msgid "Reducing %s to included packages only"
msgstr "Zmniejszanie %s tylko do doÅÄ
czonych pakietów"
-#: ../yum/__init__.py:880
+#: ../yum/__init__.py:926
#, python-format
msgid "Keeping included package %s"
msgstr "Utrzymywanie doÅÄ
czonego pakietu %s"
-#: ../yum/__init__.py:886
+#: ../yum/__init__.py:932
#, python-format
msgid "Removing unmatched package %s"
msgstr "Usuwanie niepasujÄ
cego pakietu %s"
-#: ../yum/__init__.py:889
+#: ../yum/__init__.py:935
msgid "Finished"
msgstr "ZakoÅczono"
#. Whoa. What the heck happened?
-#: ../yum/__init__.py:919
+#: ../yum/__init__.py:965
#, 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:923
+#: ../yum/__init__.py:969
#, 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:970 ../yum/__init__.py:977
+#: ../yum/__init__.py:1040
msgid "Package does not match intended download"
msgstr "Pakiet nie zgadza siÄ z zamierzonym pobieraniem"
-#: ../yum/__init__.py:991
+#: ../yum/__init__.py:1055
msgid "Could not perform checksum"
msgstr "Nie można wykonaÄ sprawdzenia sum kontrolnych"
-#: ../yum/__init__.py:994
+#: ../yum/__init__.py:1058
msgid "Package does not match checksum"
msgstr "Sumy kontrolne pakietu nie zgadzajÄ
siÄ"
-#: ../yum/__init__.py:1036
+#: ../yum/__init__.py:1101
#, 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:1042
+#: ../yum/__init__.py:1104
#, python-format
msgid "using local copy of %s"
msgstr "używanie lokalnej kopii %s"
-#: ../yum/__init__.py:1061
+#: ../yum/__init__.py:1131
#, python-format
-msgid "Insufficient space in download directory %s to download"
-msgstr "NiewystarczajÄ
ca iloÅÄ miejsca w folderze pobierania %s, aby pobraÄ"
+msgid ""
+"Insufficient space in download directory %s\n"
+" * free %s\n"
+" * needed %s"
+msgstr ""
+"NiewystarczajÄ
ca iloÅÄ miejsca w folderze pobierania %s\n"
+" * wolne %s\n"
+" * wymagane %s"
-#: ../yum/__init__.py:1094
+#: ../yum/__init__.py:1178
msgid "Header is not complete."
msgstr "NagÅówek nie jest kompletny."
-#: ../yum/__init__.py:1134
+#: ../yum/__init__.py:1218
#, python-format
msgid ""
"Header not in local cache and caching-only mode enabled. Cannot download %s"
@@ -1544,62 +1680,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:1189
+#: ../yum/__init__.py:1273
#, python-format
msgid "Public key for %s is not installed"
msgstr "Klucz publiczny dla %s nie jest zainstalowany"
-#: ../yum/__init__.py:1193
+#: ../yum/__init__.py:1277
#, python-format
msgid "Problem opening package %s"
msgstr "Podczas otwierania pakietu %s wystÄ
piÅ problem"
-#: ../yum/__init__.py:1201
+#: ../yum/__init__.py:1285
#, python-format
msgid "Public key for %s is not trusted"
msgstr "Klucz publiczny dla %s nie jest zaufany"
-#: ../yum/__init__.py:1205
+#: ../yum/__init__.py:1289
#, python-format
msgid "Package %s is not signed"
msgstr "Pakiet %s nie jest podpisany"
-#: ../yum/__init__.py:1243
+#: ../yum/__init__.py:1327
#, python-format
msgid "Cannot remove %s"
msgstr "Nie można usunÄ
Ä %s"
-#: ../yum/__init__.py:1247
+#: ../yum/__init__.py:1331
#, python-format
msgid "%s removed"
msgstr "UsuniÄto %s"
-#: ../yum/__init__.py:1283
+#: ../yum/__init__.py:1368
#, python-format
msgid "Cannot remove %s file %s"
msgstr "Nie można usunÄ
Ä %s pliku %s"
-#: ../yum/__init__.py:1287
+#: ../yum/__init__.py:1372
#, python-format
msgid "%s file %s removed"
msgstr "UsuniÄto %s plik %s"
-#: ../yum/__init__.py:1289
+#: ../yum/__init__.py:1374
#, python-format
msgid "%d %s files removed"
msgstr "UsuniÄto %d %s plików"
-#: ../yum/__init__.py:1329
+#: ../yum/__init__.py:1436
#, 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:1335
+#: ../yum/__init__.py:1442
#, 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:1543
+#: ../yum/__init__.py:1650
msgid ""
"searchPackages() will go away in a future version of "
"Yum. Use searchGenerator() instead. \n"
@@ -1607,139 +1743,175 @@ msgstr ""
"searchPackages() zostanie usuniÄte w przyszÅych wersjach "
"yuma. Zamiast tego użyj searchGenerator(). \n"
-#: ../yum/__init__.py:1580
+#: ../yum/__init__.py:1688
#, python-format
msgid "Searching %d packages"
msgstr "Wyszukiwanie %d pakietów"
-#: ../yum/__init__.py:1584
+#: ../yum/__init__.py:1692
#, python-format
msgid "searching package %s"
msgstr "wyszukiwanie pakietu %s"
-#: ../yum/__init__.py:1596
+#: ../yum/__init__.py:1704
msgid "searching in file entries"
msgstr "wyszukiwanie we wpisach plików"
-#: ../yum/__init__.py:1603
+#: ../yum/__init__.py:1711
msgid "searching in provides entries"
msgstr "wyszukiwanie we wpisach dostarczania"
-#: ../yum/__init__.py:1633
+#: ../yum/__init__.py:1744
#, python-format
msgid "Provides-match: %s"
msgstr "Wyniki dostarczania: %s"
-#: ../yum/__init__.py:1702 ../yum/__init__.py:1720 ../yum/__init__.py:1748
-#: ../yum/__init__.py:1753 ../yum/__init__.py:1808 ../yum/__init__.py:1812
+#: ../yum/__init__.py:1793
+msgid "No group data available for configured repositories"
+msgstr "Brak dostÄpnych danych grup dla skonfigurowanych repozytoriów"
+
+#: ../yum/__init__.py:1819 ../yum/__init__.py:1838 ../yum/__init__.py:1869
+#: ../yum/__init__.py:1875 ../yum/__init__.py:1948 ../yum/__init__.py:1952
#, python-format
msgid "No Group named %s exists"
msgstr "Grupa o nazwie %s nie istnieje"
-#: ../yum/__init__.py:1731 ../yum/__init__.py:1824
+#: ../yum/__init__.py:1850 ../yum/__init__.py:1965
#, python-format
msgid "package %s was not marked in group %s"
msgstr "pakiet %s nie zostaÅ oznaczony w grupie %s"
-#: ../yum/__init__.py:1770
+#: ../yum/__init__.py:1897
#, python-format
msgid "Adding package %s from group %s"
msgstr "Dodawanie pakietu %s z grupy %s"
-#: ../yum/__init__.py:1774
+#: ../yum/__init__.py:1901
#, python-format
msgid "No package named %s available to be installed"
msgstr "Brak dostÄpnego pakietu o nazwie %s do zainstalowania"
-#: ../yum/__init__.py:1849
+#: ../yum/__init__.py:1990
#, 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:1917 ../yum/__init__.py:1960
+#: ../yum/__init__.py:2005
+msgid ""
+"getInstalledPackageObject() will go away, use self.rpmdb.searchPkgTuple().\n"
+msgstr ""
+"getInstalledPackageObject() zostanie usuniÄte, użyj "
+"self.rpmdb.searchPkgTuple().\n"
+
+#: ../yum/__init__.py:2057 ../yum/__init__.py:2100
msgid "Invalid versioned dependency string, try quoting it."
msgstr "NieprawidÅowy ÅaÅcuch tekstowy wersji, spróbuj go zacytowaÄ."
-#: ../yum/__init__.py:1919 ../yum/__init__.py:1962
+#: ../yum/__init__.py:2059 ../yum/__init__.py:2102
msgid "Invalid version flag"
msgstr "NieprawidÅowa flaga wersji"
-#: ../yum/__init__.py:1934 ../yum/__init__.py:1938
+#: ../yum/__init__.py:2074 ../yum/__init__.py:2078
#, python-format
msgid "No Package found for %s"
msgstr "Nie znaleziono pakietu %s"
-#: ../yum/__init__.py:2066
+#: ../yum/__init__.py:2277
msgid "Package Object was not a package object instance"
msgstr "Obiekt pakietu nie byÅ instancjÄ
obiektu pakietu"
-#: ../yum/__init__.py:2070
+#: ../yum/__init__.py:2281
msgid "Nothing specified to install"
msgstr "Nie podano nic do zainstalowania"
#. only one in there
-#: ../yum/__init__.py:2085
+#: ../yum/__init__.py:2299
#, 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:2091 ../yum/__init__.py:2380
+#: ../yum/__init__.py:2305 ../yum/__init__.py:2681
#, python-format
msgid "No Match for argument: %s"
-msgstr "Brak wyników dla argumentu: %s"
+msgstr "Brak wyników dla parametru: %s"
+
+#: ../yum/__init__.py:2371
+#, python-format
+msgid "Package %s installed and not available"
+msgstr "Pakiet %s jest zainstalowany, ale nie jest dostÄpny"
-#. FIXME - this is where we could check to see if it already installed
-#. for returning better errors
-#: ../yum/__init__.py:2146
+#: ../yum/__init__.py:2374
msgid "No package(s) available to install"
msgstr "Brak pakietów dostÄpnych do instalacji"
-#: ../yum/__init__.py:2158
+#: ../yum/__init__.py:2386
#, python-format
msgid "Package: %s - already in transaction set"
msgstr "Pakiet: %s - jest już w zestawie transakcji"
-#: ../yum/__init__.py:2171
+#: ../yum/__init__.py:2399
#, python-format
msgid "Package %s already installed and latest version"
msgstr "Pakiet %s jest już zainstalowany w najnowszej wersji"
-#: ../yum/__init__.py:2178
+#: ../yum/__init__.py:2406
#, python-format
msgid "Package matching %s already installed. Checking for update."
msgstr ""
"Pakiet pasujÄ
cy do %s jest już zainstalowany. Sprawdzanie aktualizacji."
+#: ../yum/__init__.py:2416
+#, 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"
+
#. update everything (the easy case)
-#: ../yum/__init__.py:2220
+#: ../yum/__init__.py:2486
msgid "Updating Everything"
msgstr "Aktualizowanie wszystkiego"
-#: ../yum/__init__.py:2304
+#: ../yum/__init__.py:2498 ../yum/__init__.py:2603 ../yum/__init__.py:2614
+#: ../yum/__init__.py:2636
+#, 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:2594
#, 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:2377
+#: ../yum/__init__.py:2617 ../yum/__init__.py:2639
+#, 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:2678
#, python-format
msgid "%s"
msgstr "%s"
-#: ../yum/__init__.py:2392
+#: ../yum/__init__.py:2694
msgid "No package matched to remove"
msgstr "Brak pasujÄ
cych pakietów do usuniÄcia"
-#: ../yum/__init__.py:2426
+#: ../yum/__init__.py:2728
#, python-format
msgid "Cannot open file: %s. Skipping."
msgstr "Nie można otworzyÄ pliku: %s. Pomijanie."
-#: ../yum/__init__.py:2429
+#: ../yum/__init__.py:2731
#, python-format
msgid "Examining %s: %s"
msgstr "Sprawdzanie %s: %s"
-#: ../yum/__init__.py:2436
+#: ../yum/__init__.py:2739
+#, 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:2747
#, python-format
msgid ""
"Package %s not installed, cannot update it. Run yum install to install it "
@@ -1748,81 +1920,83 @@ msgstr ""
"Pakiet %s nie jest zainstalowany, nie można go zaktualizowaÄ. Uruchom yum "
"install, aby go zainstalowaÄ."
-#: ../yum/__init__.py:2468
+#: ../yum/__init__.py:2780
#, python-format
msgid "Excluding %s"
msgstr "Wykluczanie %s"
-#: ../yum/__init__.py:2473
+#: ../yum/__init__.py:2785
#, python-format
msgid "Marking %s to be installed"
msgstr "Oznaczanie %s do zainstalowania"
-#: ../yum/__init__.py:2479
+#: ../yum/__init__.py:2791
#, python-format
msgid "Marking %s as an update to %s"
msgstr "Oznaczanie %s jako aktualizacji %s"
-#: ../yum/__init__.py:2486
+#: ../yum/__init__.py:2798
#, python-format
msgid "%s: does not update installed package."
msgstr "%s: nie aktualizuj zainstalowanego pakietu."
-#: ../yum/__init__.py:2504
+#: ../yum/__init__.py:2816
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:2515
+#: ../yum/__init__.py:2827
#, python-format
msgid "Package %s is allowed multiple installs, skipping"
msgstr "Pakiet %s może byÄ wielokrotnie instalowany, pomijanie"
-#: ../yum/__init__.py:2522
+#: ../yum/__init__.py:2834
msgid "Problem in reinstall: no package matched to install"
msgstr ""
"Podczas ponownego instalowania wystÄ
piÅ problem: brak pasujÄ
cych pakietów do "
"zainstalowania"
-#: ../yum/__init__.py:2570
+#: ../yum/__init__.py:2869
#, python-format
msgid "Retrieving GPG key from %s"
msgstr "Pobieranie klucza GPG z %s"
-#: ../yum/__init__.py:2576
+#: ../yum/__init__.py:2875
msgid "GPG key retrieval failed: "
msgstr "Pobranie klucza GPG nie powiodÅo siÄ: "
-#: ../yum/__init__.py:2589
-msgid "GPG key parsing failed: "
-msgstr "Przeanalizowanie klucza GPG nie powiodÅo siÄ: "
+#: ../yum/__init__.py:2886
+#, 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:2593
+#: ../yum/__init__.py:2918
#, 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:2598
+#: ../yum/__init__.py:2923 ../yum/__init__.py:2985
#, python-format
msgid "Importing GPG key 0x%s \"%s\" from %s"
msgstr "Importowanie klucza GPG 0x%s \"%s\" z %s"
-#: ../yum/__init__.py:2610
+#: ../yum/__init__.py:2940
msgid "Not installing key"
msgstr "Klucz nie zostanie zainstalowany"
-#: ../yum/__init__.py:2616
+#: ../yum/__init__.py:2946
#, python-format
msgid "Key import failed (code %d)"
msgstr "Zaimportowanie klucza nie powiodÅo siÄ (kod %d)"
-#: ../yum/__init__.py:2619
+#: ../yum/__init__.py:2947 ../yum/__init__.py:3006
msgid "Key imported successfully"
msgstr "Klucz zostaÅ pomyÅlnie zaimportowany"
-#: ../yum/__init__.py:2624
+#: ../yum/__init__.py:2952 ../yum/__init__.py:3011
#, python-format
msgid ""
"The GPG keys listed for the \"%s\" repository are already installed but they "
@@ -1834,53 +2008,73 @@ msgstr ""
"Sprawdź, czy dla tego repozytorium skonfigurowane sÄ
poprawne adresy do "
"kluczy."
-#: ../yum/__init__.py:2633
+#: ../yum/__init__.py:2961
msgid "Import of key(s) didn't help, wrong key(s)?"
msgstr "Zaimportowanie kluczy nie pomogÅo, bÅÄdne klucze?"
-#: ../yum/__init__.py:2707
+#: ../yum/__init__.py:2980
+#, python-format
+msgid "GPG key at %s (0x%s) is already imported"
+msgstr "Klucz GPG %s (0x%s) zostaŠjuż zaimportowany"
+
+#: ../yum/__init__.py:3000
+#, python-format
+msgid "Not installing key for repo %s"
+msgstr "Klucz dla repozytorium %s nie zostanie zainstalowany"
+
+#: ../yum/__init__.py:3005
+msgid "Key import failed"
+msgstr "Zaimportowanie klucza nie powiodÅo siÄ"
+
+#: ../yum/__init__.py:3096
msgid "Unable to find a suitable mirror."
msgstr "Nie można znaleÅºÄ odpowiedniego serwera lustrzanego."
-#: ../yum/__init__.py:2709
+#: ../yum/__init__.py:3098
msgid "Errors were encountered while downloading packages."
msgstr "Podczas pobierania pakietów wystÄ
piÅy bÅÄdy."
-#: ../yum/__init__.py:2774
+#: ../yum/__init__.py:3162
msgid "Test Transaction Errors: "
msgstr "BÅÄdy testu transakcji: "
#. Mostly copied from YumOutput._outKeyValFill()
-#: ../yum/plugins.py:195
+#: ../yum/plugins.py:199
msgid "Loaded plugins: "
msgstr "Wczytane wtyczki: "
-#: ../yum/plugins.py:206
+#: ../yum/plugins.py:213 ../yum/plugins.py:219
#, python-format
msgid "No plugin match for: %s"
msgstr "Brak wyników dla wtyczki: %s"
-#: ../yum/plugins.py:219
+#: ../yum/plugins.py:249
#, python-format
msgid "\"%s\" plugin is disabled"
msgstr "Wtyczka \"%s\" jest wyÅÄ
czona"
-#: ../yum/plugins.py:231
+#. Give full backtrace:
+#: ../yum/plugins.py:261
+#, python-format
+msgid "Plugin \"%s\" can't be imported"
+msgstr "Nie można zaimportowaÄ wtyczki \"%s\""
+
+#: ../yum/plugins.py:268
#, python-format
msgid "Plugin \"%s\" doesn't specify required API version"
msgstr "Wtyczka \"%s\" nie okreÅla wymaganej wersji API"
-#: ../yum/plugins.py:235
+#: ../yum/plugins.py:273
#, 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:264
+#: ../yum/plugins.py:306
#, python-format
msgid "Loading \"%s\" plugin"
msgstr "Wczytywanie wtyczki \"%s\""
-#: ../yum/plugins.py:271
+#: ../yum/plugins.py:313
#, python-format
msgid ""
"Two or more plugins with the name \"%s\" exist in the plugin search path"
@@ -1888,22 +2082,26 @@ msgstr ""
"IstniejÄ
dwie lub wiÄcej wtyczek o nazwie \"%s\" w Åcieżce wyszukiwania "
"wtyczek"
-#: ../yum/plugins.py:291
+#: ../yum/plugins.py:333
#, 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:294
+#: ../yum/plugins.py:336
#, python-format
msgid "Unable to find configuration file for plugin %s"
msgstr "Nie można naleÅºÄ pliku konfiguracji dla wtyczki %s"
-#: ../yum/plugins.py:448
+#: ../yum/plugins.py:490
msgid "registration of commands not supported"
msgstr "rejestracja poleceÅ nie jest obsÅugiwana"
+#: ../yum/rpmtrans.py:78
+msgid "Repackaging"
+msgstr "Ponowne tworzenie pakietu"
+
#: ../rpmUtils/oldUtils.py:26
#, python-format
msgid "Header cannot be opened or does not match %s, %s."
commit 14ccb3cd86c89f5ae96f74f78210287e14943b68
Author: James Antill <james at and.org>
Date: Sat Oct 25 13:07:32 2008 -0400
Add proxy/etc. config. to gpgkey downloads, fixes Fedora BZ 445336
diff --git a/yum/__init__.py b/yum/__init__.py
index 25e1353..d679fca 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -52,7 +52,7 @@ import misc
from parser import ConfigPreProcessor, varReplace
import transactioninfo
import urlgrabber
-from urlgrabber.grabber import URLGrabError
+from urlgrabber.grabber import URLGrabber, URLGrabError
from urlgrabber.progress import format_number
from packageSack import packagesNewestByNameArch, packagesNewestByName
import depsolve
@@ -2864,7 +2864,7 @@ class YumBase(depsolve.Depsolve):
return returndict
- def _retrievePublicKey(self, keyurl):
+ def _retrievePublicKey(self, keyurl, repo=None):
"""
Retrieve a key file
@param keyurl: url to the key to retrieve
@@ -2876,7 +2876,21 @@ class YumBase(depsolve.Depsolve):
# Go get the GPG key from the given URL
try:
- rawkey = urlgrabber.urlread(keyurl, limit=9999)
+ url = misc.to_utf8(keyurl)
+ if repo is None:
+ rawkey = urlgrabber.urlread(url, limit=9999)
+ else:
+ # If we have a repo. use the proxy etc. configuration for it.
+ # In theory we have a global proxy config. too, but meh...
+ # external callers should just update.
+ ug = URLGrabber(bandwidth = repo.bandwidth,
+ retry = repo.retries,
+ throttle = repo.throttle,
+ progress_obj = repo.callback,
+ proxies=repo.proxy_dict)
+ ug.opts.user_agent = default_grabber.opts.user_agent
+ rawkey = ug.urlread(url, text=repo.id + "/gpgkey")
+
except urlgrabber.grabber.URLGrabError, e:
raise Errors.YumBaseError(_('GPG key retrieval failed: ') +
to_unicode(str(e)))
@@ -2916,7 +2930,7 @@ class YumBase(depsolve.Depsolve):
ts = self.rpmdb.readOnlyTS()
for keyurl in keyurls:
- keys = self._retrievePublicKey(keyurl)
+ keys = self._retrievePublicKey(keyurl, repo)
for info in keys:
# Check if key is already installed
@@ -2979,7 +2993,7 @@ class YumBase(depsolve.Depsolve):
keyurls = repo.gpgkey
key_installed = False
for keyurl in keyurls:
- keys = self._retrievePublicKey(keyurl)
+ keys = self._retrievePublicKey(keyurl, repo)
for info in keys:
# Check if key is already installed
if info['keyid'] in misc.return_keyids_from_pubring(repo.gpgdir):
commit 3cc6dff7b9424dba1788522e1a5e89ec4a785557
Author: James Antill <james at and.org>
Date: Wed Oct 22 01:41:48 2008 -0400
Add documentation on install @grp
diff --git a/docs/yum.8 b/docs/yum.8
index 4b82533..4ebd19d 100644
--- a/docs/yum.8
+++ b/docs/yum.8
@@ -75,7 +75,9 @@ Repository configuration is honored in all operations.
Is used to install the latest version of a package or
group of packages while ensuring that all dependencies are
satisfied\&. If no package matches the given package name(s), they are
-assumed to be a shell glob and any matches are then installed\&.
+assumed to be a shell glob and any matches are then installed\&. If the
+name starts with an @ character the rest of the name is used as though
+passed to the groupinstall command\&.
.IP
.IP "\fBupdate\fP"
If run without any packages, update will update every currently
commit c547fac1b1efef4ba38b3a867a6799531847cc56
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Fri Oct 24 17:14:53 2008 -0400
comment about allowdowngrade/downgrade in general
diff --git a/yum/__init__.py b/yum/__init__.py
index 7aafb84..25e1353 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -2643,6 +2643,12 @@ class YumBase(depsolve.Depsolve):
if requiringPo:
txmbr.setAsDep(requiringPo)
tx_return.append(txmbr)
+
+ #else:
+ #magically make allowdowngrade work here
+ # yum --allow-downgrade update something-specific here
+ # could work but we will need to be careful with it
+ # maybe a downgrade command is necessary
return tx_return
commit 2d6891b527495507884d142ca43de2be83647b0a
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Fri Oct 24 13:57:18 2008 -0400
fix installed size being wrong for metadata/local pkgs
diff --git a/yum/packages.py b/yum/packages.py
index 4e3bbd5..48dfc8d 100644
--- a/yum/packages.py
+++ b/yum/packages.py
@@ -523,8 +523,8 @@ class YumAvailablePackage(PackageObject, RpmBase):
base = base + '/'
return urlparse.urljoin(base, self.remote_path)
return urlparse.urljoin(self.repo.urls[0], self.remote_path)
-
- size = property(_size)
+
+ size = property(fget=lambda self: self._size())
remote_path = property(_remote_path)
remote_url = property(_remote_url)
@@ -1111,6 +1111,9 @@ class YumHeaderPackage(YumAvailablePackage):
def returnChecksums(self):
raise NotImplementedError()
+ def _size(self):
+ return self.hdr['size']
+
def _is_pre_req(self, flag):
"""check the flags for a requirement, return 1 or 0 whether or not requires
is a pre-requires or a not"""
commit 6b31af648c435e01ce9a5f84796a81df9f3de959
Author: James Antill <james at and.org>
Date: Wed Oct 22 01:37:22 2008 -0400
Change fixed_repoid to timestamp_check, to make it more obvious wtf it does :)
diff --git a/yum/yumRepo.py b/yum/yumRepo.py
index dfe0643..b762deb 100644
--- a/yum/yumRepo.py
+++ b/yum/yumRepo.py
@@ -272,11 +272,9 @@ class YumRepository(Repository, config.RepoConf):
self.gpg_import_func = None
self.confirm_func = None
- # Does this repoid "always" refer to the same repo. If true we
- # can/should should do thing like the timestamp check, as we always
- # want the newest data. If it isn't, then the timestamp might be "old"
- # because we've just changed to an older/different repo.
- self.fixed_repoid = True
+ # The reason we want to turn this off are things like repoids
+ # called "tmp" in repoquery --repofrompath and/or new1/old1 in repodiff.
+ self.timestamp_check = True
self._sack = None
@@ -992,7 +990,7 @@ class YumRepository(Repository, config.RepoConf):
return True
old_repo_XML = self._oldRepoMDData['old_repo_XML']
- if (self.fixed_repoid and
+ if (self.timestamp_check and
old_repo_XML.timestamp > self.repoXML.timestamp):
logger.warning("Not using downloaded repomd.xml because it is "
"older than what we have:\n"
@@ -1068,7 +1066,7 @@ class YumRepository(Repository, config.RepoConf):
# Get the latest metalink, and the latest repomd data from it
repomd = self.metalink_data.repomd
- if self.fixed_repoid and oxml.timestamp > repomd.timestamp:
+ if self.timestamp_check and oxml.timestamp > repomd.timestamp:
# We have something "newer" than the latest, and have timestamp
# checking which will kill anything passing the metalink check.
return True
commit d0f1a05256fe16a5caae2b4f3fa9ca09fa28cb60
Author: James Antill <james at and.org>
Date: Wed Oct 22 00:56:47 2008 -0400
Add a fixed_repoid attribute, which tells us if we can do timestamp checks
on the repo. etc. -- fixes the repodiff/repoquery problems where you have
a single repoid that referrs to a bunch of different repos.
When using metalink, check to see if we already have the latest repomd.xml
and if so don't re-download
diff --git a/yum/yumRepo.py b/yum/yumRepo.py
index d9d1ae6..dfe0643 100644
--- a/yum/yumRepo.py
+++ b/yum/yumRepo.py
@@ -272,6 +272,12 @@ class YumRepository(Repository, config.RepoConf):
self.gpg_import_func = None
self.confirm_func = None
+ # Does this repoid "always" refer to the same repo. If true we
+ # can/should should do thing like the timestamp check, as we always
+ # want the newest data. If it isn't, then the timestamp might be "old"
+ # because we've just changed to an older/different repo.
+ self.fixed_repoid = True
+
self._sack = None
self._grabfunc = None
@@ -847,7 +853,6 @@ class YumRepository(Repository, config.RepoConf):
fo.close()
del fo
-
def setup(self, cache, mediafunc = None, gpg_import_func=None, confirm_func=None):
try:
self.cache = cache
@@ -918,9 +923,8 @@ class YumRepository(Repository, config.RepoConf):
xml = self._parseRepoXML(old_local, True)
self._oldRepoMDData = {'old_repo_XML' : xml, 'local' : local,
'old_local' : old_local, 'new_MD_files' : []}
- return True
- return False
-
+ return xml
+ return None
def _revertOldRepoXML(self):
""" If we have older data available, revert to it. """
@@ -988,7 +992,8 @@ class YumRepository(Repository, config.RepoConf):
return True
old_repo_XML = self._oldRepoMDData['old_repo_XML']
- if old_repo_XML.timestamp > self.repoXML.timestamp:
+ if (self.fixed_repoid and
+ old_repo_XML.timestamp > self.repoXML.timestamp):
logger.warning("Not using downloaded repomd.xml because it is "
"older than what we have:\n"
" Current : %s\n Downloaded: %s" %
@@ -997,49 +1002,49 @@ class YumRepository(Repository, config.RepoConf):
return False
return True
- def _checkRepoMetalink(self, repoXML=None, metalink_data=None):
- """ Check the repomd.xml against the metalink data, if we have it. """
+ @staticmethod
+ def _checkRepoXMLMetalink(repoXML, repomd):
+ """ Check parsed repomd.xml against metalink.repomd data. """
+ if repoXML.timestamp != repomd.timestamp:
+ return False
+ if repoXML.length != repomd.size:
+ return False
- def _chk_repomd(repomd):
- verbose_logger.log(logginglevels.DEBUG_4, "checking repomd %d> %d",
- repoXML.timestamp, repomd.timestamp)
- if repoXML.timestamp != repomd.timestamp:
- return False
- if repoXML.length != repomd.size:
- return False
+ # MirrorManager isn't generating sha256 yet, and we should probably
+ # not require all of the checksums we produce.
+ done = set()
+ for checksum in repoXML.checksums:
+ if checksum not in repomd.chksums:
+ continue
- # MirrorManager isn't generating sha256 yet, and we should probably
- # not require all of the checksums we produce.
- done = set()
- for checksum in repoXML.checksums:
- if checksum not in repomd.chksums:
- continue
+ if repoXML.checksums[checksum] != repomd.chksums[checksum]:
+ return False
+ done.add(checksum)
- if repoXML.checksums[checksum] != repomd.chksums[checksum]:
- return False
- done.add(checksum)
+ # Only allow approved checksums, might want to not "approve" of
+ # sha1/md5
+ for checksum in ('sha512', 'sha256', 'sha1', 'md5'):
+ if checksum in done:
+ return True
- # Only allow approved checksums, might want to not "approve" of
- # sha1/md5
- for checksum in ('sha512', 'sha256', 'sha1', 'md5'):
- if checksum in done:
- return True
+ return False
- return False
+ def _checkRepoMetalink(self, repoXML=None, metalink_data=None):
+ """ Check the repomd.xml against the metalink data, if we have it. """
if repoXML is None:
repoXML = self._repoXML
if metalink_data is None:
metalink_data = self.metalink_data
- if _chk_repomd(metalink_data.repomd):
+ if self._checkRepoXMLMetalink(repoXML, metalink_data.repomd):
return True
# FIXME: We probably want to skip to the first mirror which has the
# latest repomd.xml, but say "if we can't find one, use the newest old
# repomd.xml" ... alas. that's not so easy to do in urlgrabber atm.
for repomd in self.metalink_data.old_repomds:
- if _chk_repomd(repomd):
+ if self._checkRepoXMLMetalink(repoXML, repomd):
verbose_logger.log(logginglevels.DEBUG_2,
"Using older repomd.xml\n"
" Latest: %s\n"
@@ -1049,6 +1054,28 @@ class YumRepository(Repository, config.RepoConf):
return True
return False
+ def _latestRepoXML(self, local):
+ """ Save the Old Repo XML, and if it exists check to see if it's the
+ latest available given the metalink data. """
+
+ oxml = self._saveOldRepoXML(local)
+ if not oxml: # No old repomd.xml data
+ return False
+
+ if not self.metalink: # Nothing to check it against
+ return False
+
+ # Get the latest metalink, and the latest repomd data from it
+ repomd = self.metalink_data.repomd
+
+ if self.fixed_repoid and oxml.timestamp > repomd.timestamp:
+ # We have something "newer" than the latest, and have timestamp
+ # checking which will kill anything passing the metalink check.
+ return True
+
+ # Do we have the latest repomd already
+ return self._checkRepoXMLMetalink(oxml, repomd)
+
def _commonLoadRepoXML(self, text, mdtypes=None):
""" Common LoadRepoXML for instant and group, returns False if you
should just return. """
@@ -1061,7 +1088,10 @@ class YumRepository(Repository, config.RepoConf):
result = local
else:
caching = False
- self._saveOldRepoXML(local)
+ if self._latestRepoXML(local):
+ self._revertOldRepoXML()
+ self.setMetadataCookie()
+ return False
result = self._getFileRepoXML(local, text)
if result is None:
commit 8405eb545a9698a95322c9717407d73e6d5d3c18
Author: James Antill <james at and.org>
Date: Tue Oct 21 15:00:17 2008 -0400
Show revision/tags in repolist -v
diff --git a/yumcommands.py b/yumcommands.py
index 916feb0..d3ce5ee 100644
--- a/yumcommands.py
+++ b/yumcommands.py
@@ -761,12 +761,28 @@ class RepoListCommand(YumCommand):
_('repo name'), _('status'), "")
done = True
if verbose:
+ md = repo.repoXML
out = [base.fmtKeyValFill(_("Repo-id : "), repo),
base.fmtKeyValFill(_("Repo-name : "), repo.name),
base.fmtKeyValFill(_("Repo-status : "), ui_enabled)]
+ if md.revision is not None:
+ out += [base.fmtKeyValFill(_("Repo-revision: "),
+ md.revision)]
+ if md.tags['content']:
+ tags = md.tags['content']
+ out += [base.fmtKeyValFill(_("Repo-tags : "),
+ ", ".join(sorted(tags)))]
+
+ if md.tags['distro']:
+ for distro in sorted(md.tags['distro']):
+ tags = md.tags['distro'][distro]
+ out += [base.fmtKeyValFill(_("Repo-distro-tags: "),
+ "[%s]: %s" % (distro,
+ ", ".join(sorted(tags))))]
+
if enabled:
out += [base.fmtKeyValFill(_("Repo-updated: "),
- time.ctime(repo.repoXML.timestamp)),
+ time.ctime(md.timestamp)),
base.fmtKeyValFill(_("Repo-pkgs : "), ui_num),
base.fmtKeyValFill(_("Repo-size : "),ui_size)]
commit bca1f21b3fca934035dc07e3f16b5527e80badc9
Author: James Antill <james at and.org>
Date: Tue Oct 21 14:50:26 2008 -0400
Parse out revision and tags from repomd.xml
diff --git a/yum/repoMDObject.py b/yum/repoMDObject.py
index 0ec8a04..76d9834 100755
--- a/yum/repoMDObject.py
+++ b/yum/repoMDObject.py
@@ -75,6 +75,8 @@ class RepoMD:
self.repoData = {}
self.checksums = {}
self.length = 0
+ self.revision = None
+ self.tags = {'content' : set(), 'distro' : {}}
if type(srcfile) == type('str'):
# srcfile is a filename string
@@ -100,6 +102,17 @@ class RepoMD:
self.timestamp = nts
except:
pass
+ elif elem_name == "revision":
+ self.revision = elem.text
+ elif elem_name == "tags":
+ for child in elem:
+ child_name = ns_cleanup(child.tag)
+ if child_name == 'content':
+ self.tags['content'].add(child.text)
+ if child_name == 'distro':
+ cpeid = child.attrib.get('cpeid', '')
+ distro = self.tags['distro'].setdefault(cpeid,set())
+ distro.add(child.text)
self.checksums = infile.checksums.hexdigests()
self.length = len(infile.checksums)
@@ -123,6 +136,16 @@ class RepoMD:
print "file length : %s" % self.length
for csum in sorted(self.checksums):
print "file checksum : %s/%s" % (csum, self.checksums[csum])
+ if self.revision is not None:
+ print 'revision: %s' % self.revision
+ if self.tags['content']:
+ print 'tags content: %s' % ", ".join(sorted(self.tags['content']))
+ if self.tags['distro']:
+ for distro in sorted(self.tags['distro']):
+ print 'tags distro: %s' % distro
+ tags = self.tags['distro'][distro]
+ print ' tags: %s' % ", ".join(sorted(tags))
+ print '\n---- Data ----'
for ft in sorted(self.fileTypes()):
thisdata = self.repoData[ft]
print ' datatype: %s' % thisdata.type
commit 42d71353951a7b847d9631ab7fbc5646d79fadfc
Author: James Antill <james at and.org>
Date: Tue Oct 21 12:16:01 2008 -0400
Add metalink to repolist -v
diff --git a/yumcommands.py b/yumcommands.py
index 47d4b0e..916feb0 100644
--- a/yumcommands.py
+++ b/yumcommands.py
@@ -778,7 +778,10 @@ class RepoListCommand(YumCommand):
out += [base.fmtKeyValFill(_("Repo-baseurl: "),
", ".join(baseurls))]
- if repo.mirrorlist:
+ if repo.metalink:
+ out += [base.fmtKeyValFill(_("Repo-metalink: "),
+ repo.metalink)]
+ elif repo.mirrorlist:
out += [base.fmtKeyValFill(_("Repo-mirrors: "),
repo.mirrorlist)]
commit 15ee98b2d55e6638f063411834185f5ba53c2e33
Author: James Antill <james at and.org>
Date: Tue Oct 21 12:15:33 2008 -0400
Fix baseurl output in repolist -v, when we've got a new mirrorlist/metalink
diff --git a/yum/yumRepo.py b/yum/yumRepo.py
index 795febf..d9d1ae6 100644
--- a/yum/yumRepo.py
+++ b/yum/yumRepo.py
@@ -532,6 +532,10 @@ class YumRepository(Repository, config.RepoConf):
with valid ones, run self.check() at the end to make sure it worked"""
self.baseurl = self._replace_and_check_url(self.baseurl)
+ # FIXME: We put all the mirrors in .baseurl as well as
+ # .urls for backward compat. (see bottom of func). So we'll save this
+ # out for repolist -v ... or anything else wants to know the baseurl
+ self._orig_baseurl = self.baseurl
mirrorurls = []
if self.metalink and not self.mirrorlistparsed:
diff --git a/yumcommands.py b/yumcommands.py
index 8f25623..47d4b0e 100644
--- a/yumcommands.py
+++ b/yumcommands.py
@@ -770,9 +770,13 @@ class RepoListCommand(YumCommand):
base.fmtKeyValFill(_("Repo-pkgs : "), ui_num),
base.fmtKeyValFill(_("Repo-size : "),ui_size)]
- if repo.baseurl:
+ if hasattr(repo, '_orig_baseurl'):
+ baseurls = repo._orig_baseurl
+ else:
+ baseurls = repo.baseurl
+ if baseurls:
out += [base.fmtKeyValFill(_("Repo-baseurl: "),
- ", ".join(repo.baseurl))]
+ ", ".join(baseurls))]
if repo.mirrorlist:
out += [base.fmtKeyValFill(_("Repo-mirrors: "),
commit fbbe7ce8b82c8edfc69f2c11bf33e6e8efd80a29
Author: James Antill <james at and.org>
Date: Mon Oct 20 11:13:52 2008 -0400
Use the metadata index name, and not the filename for the progress output
diff --git a/yum/yumRepo.py b/yum/yumRepo.py
index 5cf3444..795febf 100644
--- a/yum/yumRepo.py
+++ b/yum/yumRepo.py
@@ -1374,8 +1374,9 @@ 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,
+ checkfunc=checkfunc, reget=None, text=text,
cache=self.http_caching == 'all')
except (Errors.NoMoreMirrorsRepoError, Errors.RepoError):
if retrieve_can_fail:
commit c76e6cebbec71bd5e4782b58a1fced7034132f0f
Author: James Antill <james at and.org>
Date: Mon Oct 20 09:33:29 2008 -0400
Revert kernel-firmware addition to default installonly
diff --git a/yum/config.py b/yum/config.py
index 94aa57a..03123a9 100644
--- a/yum/config.py
+++ b/yum/config.py
@@ -614,7 +614,7 @@ class YumConf(StartupConf):
installonlypkgs = ListOption(['kernel', 'kernel-bigmem',
'kernel-enterprise','kernel-smp', 'kernel-modules', 'kernel-debug',
'kernel-unsupported', 'kernel-source', 'kernel-devel', 'kernel-PAE',
- 'kernel-PAE-debug', 'kernel-firmware'])
+ 'kernel-PAE-debug'])
# NOTE: If you set this to 2, then because it keeps the current kernel it
# means if you ever install an "old" kernel it'll get rid of the newest one
# so you probably want to use 3 as a minimum ... if you turn it on.
commit d0f45a4ef9cb165b29f8d6fdc4fe527acea97e79
Author: James Antill <james at and.org>
Date: Sun Oct 19 14:05:39 2008 -0400
Add kernel-firmware to the kernel pkgs list, bug 467628
diff --git a/yum/config.py b/yum/config.py
index 471303a..94aa57a 100644
--- a/yum/config.py
+++ b/yum/config.py
@@ -64,6 +64,7 @@ class Option(object):
@return: The parsed option value or the default value if the value
wasn't set in the configuration file.
'''
+ # xemacs highlighting hack: '
if obj is None:
return self
@@ -575,6 +576,7 @@ class StartupConf(BaseConfig):
required early in the initialisation process or before the other [main]
options can be parsed.
'''
+ # xemacs highlighting hack: '
debuglevel = IntOption(2, 0, 10)
errorlevel = IntOption(2, 0, 10)
@@ -612,7 +614,7 @@ class YumConf(StartupConf):
installonlypkgs = ListOption(['kernel', 'kernel-bigmem',
'kernel-enterprise','kernel-smp', 'kernel-modules', 'kernel-debug',
'kernel-unsupported', 'kernel-source', 'kernel-devel', 'kernel-PAE',
- 'kernel-PAE-debug'])
+ 'kernel-PAE-debug', 'kernel-firmware'])
# NOTE: If you set this to 2, then because it keeps the current kernel it
# means if you ever install an "old" kernel it'll get rid of the newest one
# so you probably want to use 3 as a minimum ... if you turn it on.
commit 69b66f98f553d773cc5ee249903a0431818c1fc5
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date: Sun Oct 19 18:28:25 2008 +0200
Added POTFILES.skip with pygettext.py, to avoid warning in translate system (rhbz# 467413)
diff --git a/po/POTFILES.skip b/po/POTFILES.skip
new file mode 100644
index 0000000..88d4055
--- /dev/null
+++ b/po/POTFILES.skip
@@ -0,0 +1 @@
+pygettext.py
commit c67ff9651929b3f83fb36401fd5a9abd071035f3
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date: Sun Oct 19 16:13:08 2008 +0200
added updated catalan translation by Xavier Conde
diff --git a/po/ca.po b/po/ca.po
index c2deee6..4af6f82 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -20,8 +20,8 @@ msgid ""
msgstr ""
"Project-Id-Version: yum\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-03-25 11:29+0100\n"
-"PO-Revision-Date: 2008-06-26 19:39+0200\n"
+"POT-Creation-Date: 2008-10-17 02:09+0000\n"
+"PO-Revision-Date: 2008-10-18 19:39+0200\n"
"Last-Translator: Josep Maria Brunetti Fernández <josepb at gmail.com>\n"
"Language-Team: Language-Team: Catalan <fedora at softcatala.net>\n"
"MIME-Version: 1.0\n"
@@ -29,23 +29,25 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-#: ../callback.py:48 ../output.py:512
+#: ../callback.py:48 ../output.py:777 ../yum/rpmtrans.py:71
msgid "Updating"
msgstr "S'està actualitzant"
-#: ../callback.py:49
+#: ../callback.py:49 ../yum/rpmtrans.py:72
msgid "Erasing"
msgstr "S'està esborrant"
-#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:511
+#. Arch can't get "that big" ... so always use the max.
+#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:776
+#: ../yum/rpmtrans.py:73 ../yum/rpmtrans.py:74 ../yum/rpmtrans.py:76
msgid "Installing"
msgstr "S'està instal·lant"
-#: ../callback.py:52 ../callback.py:58
+#: ../callback.py:52 ../callback.py:58 ../yum/rpmtrans.py:75
msgid "Obsoleted"
msgstr "Obsolet"
-#: ../callback.py:54 ../output.py:558
+#: ../callback.py:54 ../output.py:890
msgid "Updated"
msgstr "Actualitzat"
@@ -53,7 +55,7 @@ msgstr "Actualitzat"
msgid "Erased"
msgstr "Esborrat"
-#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:556
+#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:888
msgid "Installed"
msgstr "Instal·lat"
@@ -75,53 +77,68 @@ msgstr "Error: estat de sortida invà lid: %s per a %s"
msgid "Erased: %s"
msgstr "Esborrat: %s"
-#: ../callback.py:217 ../output.py:513
+#: ../callback.py:217 ../output.py:778
msgid "Removing"
msgstr "S'està esborrant"
-#: ../callback.py:219
+#: ../callback.py:219 ../yum/rpmtrans.py:77
msgid "Cleanup"
msgstr "Neteja"
-#: ../cli.py:103
+#: ../cli.py:105
#, python-format
msgid "Command \"%s\" already defined"
msgstr "L'ordre «%s» ja està definida"
-#: ../cli.py:115
+#: ../cli.py:117
msgid "Setting up repositories"
msgstr "Configurant repositoris"
-#: ../cli.py:126
+#: ../cli.py:128
msgid "Reading repository metadata in from local files"
msgstr "S'estan llegint les metadades de repositoris des de fitxers locals"
-#: ../cli.py:183 ../utils.py:72
+#: ../cli.py:187 ../utils.py:71
#, python-format
msgid "Config Error: %s"
msgstr "Error de configuració: %s"
-#: ../cli.py:186 ../cli.py:1068 ../utils.py:75
+#: ../cli.py:190 ../cli.py:1125 ../utils.py:74
#, python-format
msgid "Options Error: %s"
msgstr "Error d'opcions: %s"
-#: ../cli.py:229
+#: ../cli.py:218
+#, python-format
+msgid " Installed: %s-%s at %s"
+msgstr " Instal·lat: %s-%s a %s"
+
+#: ../cli.py:220
+#, python-format
+msgid " Built : %s at %s"
+msgstr " Muntat : %s a %s"
+
+#: ../cli.py:222
+#, python-format
+msgid " Committed: %s at %s"
+msgstr " Pujat: %s a %s"
+
+#: ../cli.py:259
msgid "You need to give some command"
msgstr "Cal que doneu alguna ordre"
-#: ../cli.py:271
+#: ../cli.py:301
msgid "Disk Requirements:\n"
msgstr "Requeriments de disc:\n"
-#: ../cli.py:273
+#: ../cli.py:303
#, 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:278
+#: ../cli.py:308
msgid ""
"Error Summary\n"
"-------------\n"
@@ -129,56 +146,56 @@ msgstr ""
"Resum d'errors\n"
"-------------\n"
-#: ../cli.py:317
+#: ../cli.py:351
msgid "Trying to run the transaction but nothing to do. Exiting."
msgstr ""
"S'ha intentat executar la transacció però no hi ha res a fer. S'està sortint."
-#: ../cli.py:347
+#: ../cli.py:381
msgid "Exiting on user Command"
msgstr "S'està sortint de l'ordre de l'usuari"
-#: ../cli.py:351
+#: ../cli.py:385
msgid "Downloading Packages:"
msgstr "S'estan descarregant els següents paquets:"
-#: ../cli.py:356
+#: ../cli.py:390
msgid "Error Downloading Packages:\n"
msgstr "S'ha produït un error descarregant els següents paquets:\n"
-#: ../cli.py:370 ../yum/__init__.py:2746
+#: ../cli.py:404 ../yum/__init__.py:3133
msgid "Running rpm_check_debug"
msgstr "S'està executant rpm_check_debug"
-#: ../cli.py:373 ../yum/__init__.py:2749
+#: ../cli.py:407 ../yum/__init__.py:3136
msgid "ERROR with rpm_check_debug vs depsolve:"
msgstr "ERROR amb rpm_check_debug vs depsolve:"
-#: ../cli.py:377 ../yum/__init__.py:2751
+#: ../cli.py:411 ../yum/__init__.py:3138
msgid "Please report this error in bugzilla"
msgstr "Siusplau, informeu d'aquest error al bugzilla"
-#: ../cli.py:383
+#: ../cli.py:417
msgid "Running Transaction Test"
msgstr "S'està executant la transacció de prova"
-#: ../cli.py:399
+#: ../cli.py:433
msgid "Finished Transaction Test"
msgstr "Ha acabat la transacció de prova"
-#: ../cli.py:401
+#: ../cli.py:435
msgid "Transaction Check Error:\n"
msgstr "S'ha produït un error en la transacció de prova:\n"
-#: ../cli.py:408
+#: ../cli.py:442
msgid "Transaction Test Succeeded"
msgstr "La transacció de prova ha acabat amb èxit"
-#: ../cli.py:429
+#: ../cli.py:463
msgid "Running Transaction"
msgstr "S'està executant la transacció"
-#: ../cli.py:459
+#: ../cli.py:493
msgid ""
"Refusing to automatically import keys when running unattended.\n"
"Use \"-y\" to override."
@@ -186,382 +203,427 @@ msgstr ""
"No s'importaran automà ticament les claus en una execució desatesa.\n"
"Feu servir \"-y\" per a importar les claus."
-#: ../cli.py:491
-msgid "Parsing package install arguments"
-msgstr "S'estan analitzant els arguments del paquet a instal·lar"
+#: ../cli.py:512 ../cli.py:545
+msgid " * Maybe you meant: "
+msgstr " * Potser volÃeu dir: "
+
+#: ../cli.py:528 ../cli.py:536
+#, python-format
+msgid "Package(s) %s%s%s available, but not installed."
+msgstr "Paquets %s%s%s disponibles, però no instal·lats."
-#: ../cli.py:501
+#: ../cli.py:542 ../cli.py:577
#, python-format
-msgid "No package %s available."
-msgstr "El paquet %s no està disponible"
+msgid "No package %s%s%s available."
+msgstr "El paquet %s%s%s està disponible."
-#: ../cli.py:505 ../cli.py:623 ../yumcommands.py:748
+#: ../cli.py:567
+msgid "Parsing package install arguments"
+msgstr "S'estan analitzant els arguments del paquet a instal·lar"
+
+#: ../cli.py:582 ../cli.py:657 ../yumcommands.py:889
msgid "Package(s) to install"
msgstr "Paquets a instal·lar"
-#: ../cli.py:506 ../cli.py:624 ../yumcommands.py:146 ../yumcommands.py:749
+#: ../cli.py:583 ../cli.py:658 ../yumcommands.py:150 ../yumcommands.py:890
msgid "Nothing to do"
msgstr "Res a fer"
-#: ../cli.py:536 ../yum/__init__.py:2232 ../yum/__init__.py:2311
-#: ../yum/__init__.py:2340
-#, 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"
-
-#: ../cli.py:568
-#, python-format
-msgid "Could not find update match for %s"
-msgstr "No s'ha pogut trobar cap actualització per a %s"
-
-#: ../cli.py:580
+#: ../cli.py:616
#, python-format
msgid "%d packages marked for Update"
msgstr "%d paquets marcats per a actualitzar"
-#: ../cli.py:583
+#: ../cli.py:619
msgid "No Packages marked for Update"
msgstr "No hi ha cap paquet marcat per a actualitzar"
-#: ../cli.py:599
+#: ../cli.py:633
#, python-format
msgid "%d packages marked for removal"
msgstr "%d paquets marcats per a esborrar"
-#: ../cli.py:602
+#: ../cli.py:636
msgid "No Packages marked for removal"
msgstr "No hi ha cap paquet marcat per a esborrar"
-#: ../cli.py:614
+#: ../cli.py:648
msgid "No Packages Provided"
msgstr "No s'ha proporcionat cap paquet"
-#: ../cli.py:654
+#: ../cli.py:689
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:701
+#: ../cli.py:731
#, python-format
msgid "Warning: No matches found for: %s"
msgstr "AvÃs: no s'ha trobat cap coincidència per a: %s"
-#: ../cli.py:704
+#: ../cli.py:734
msgid "No Matches found"
msgstr "No s'ha trobat cap coincidència"
-#: ../cli.py:745
+#: ../cli.py:773
+#, python-format
+msgid ""
+"Warning: 3.0.x versions of yum would erronously 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"
+" Podeu usar \"%s*/%s%s\" i/o \"%s*bin/%s%s\" per obtenir aquest comportament"
+
+#: ../cli.py:789
#, python-format
msgid "No Package Found for %s"
msgstr "No s'ha trobat cap paquet per a %s"
-#: ../cli.py:757
+#: ../cli.py:801
msgid "Cleaning up Everything"
msgstr "S'està netejant tot"
-#: ../cli.py:771
+#: ../cli.py:815
msgid "Cleaning up Headers"
msgstr "S'estan netejant les capçaleres"
-#: ../cli.py:774
+#: ../cli.py:818
msgid "Cleaning up Packages"
msgstr "S'estan netejant els paquets"
-#: ../cli.py:777
+#: ../cli.py:821
msgid "Cleaning up xml metadata"
msgstr "S'estan netejant les metadades xml"
-#: ../cli.py:780
+#: ../cli.py:824
msgid "Cleaning up database cache"
msgstr "S'està netejant la memòria cau de la base de dades"
-#: ../cli.py:783
+#: ../cli.py:827
msgid "Cleaning up expire-cache metadata"
msgstr "S'està netejant la memòria cau de metadades que han vençut"
-#: ../cli.py:786
+#: ../cli.py:830
msgid "Cleaning up plugins"
msgstr "S'estan netejant les extensions"
-#: ../cli.py:807
+#: ../cli.py:851
msgid "Installed Groups:"
msgstr "Grups instal·lats:"
-#: ../cli.py:814
+#: ../cli.py:858
msgid "Available Groups:"
msgstr "Grups disponibles:"
-#: ../cli.py:820
+#: ../cli.py:864
msgid "Done"
msgstr "Fet"
-#: ../cli.py:829 ../cli.py:841 ../cli.py:847
+#: ../cli.py:875 ../cli.py:893 ../cli.py:899 ../yum/__init__.py:2245
#, python-format
msgid "Warning: Group %s does not exist."
msgstr "AvÃs: El grup %s no existeix"
-#: ../cli.py:853
+#: ../cli.py:903
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"
-#: ../cli.py:855
+#: ../cli.py:905
#, python-format
msgid "%d Package(s) to Install"
msgstr "%d paquets a instal·lar"
-#: ../cli.py:865
+#: ../cli.py:915 ../yum/__init__.py:2257
#, python-format
msgid "No group named %s exists"
msgstr "No existeix cap grup anomenat %s"
-#: ../cli.py:871
+#: ../cli.py:921
msgid "No packages to remove from groups"
msgstr "No hi ha cap paquet a esborrar dels grups"
-#: ../cli.py:873
+#: ../cli.py:923
#, python-format
msgid "%d Package(s) to remove"
msgstr "%d paquets a esborrar"
-#: ../cli.py:915
+#: ../cli.py:965
#, python-format
msgid "Package %s is already installed, skipping"
msgstr "El paquet %s ja està instal·lat, s'ometrà "
-#: ../cli.py:926
+#: ../cli.py:976
#, 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:952
+#: ../cli.py:1002
#, 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ó"
-#: ../cli.py:971
+#: ../cli.py:1021
#, python-format
msgid "Command line error: %s"
msgstr "Error en la lÃnia d'ordres: %s"
-#: ../cli.py:1101
+#: ../cli.py:1034
+#, python-format
+msgid ""
+"\n"
+"\n"
+"%s: %s option requires an argument"
+msgstr ""
+"\n"
+"\n"
+"%s: l'opció %s necessita un argument"
+
+#: ../cli.py:1167
+msgid "show this help message and exit"
+msgstr "mostra el missatge d'ajuda i surt"
+
+#: ../cli.py:1171
msgid "be tolerant of errors"
msgstr "sigues tolerant a errors"
-#: ../cli.py:1103
+#: ../cli.py:1173
msgid "run entirely from cache, don't update cache"
msgstr "executa totalment des de la memòria cau, no actualitzis la memòria cau"
-#: ../cli.py:1105
+#: ../cli.py:1175
msgid "config file location"
msgstr "ubicació del fitxer de configuració"
-#: ../cli.py:1107
+#: ../cli.py:1177
msgid "maximum command wait time"
msgstr "temps mà xim d'espera d'ordres"
-#: ../cli.py:1109
+#: ../cli.py:1179
msgid "debugging output level"
msgstr "nivell de sortida de depuració"
-#: ../cli.py:1113
+#: ../cli.py:1183
msgid "show duplicates, in repos, in list/search commands"
msgstr "mostra duplicats, en repositoris, en les ordres llista i cerca"
-#: ../cli.py:1115
+#: ../cli.py:1185
msgid "error output level"
msgstr "error en el nivell de sortida"
-#: ../cli.py:1118
+#: ../cli.py:1188
msgid "quiet operation"
msgstr "operació silenciosa"
-#: ../cli.py:1122
+#: ../cli.py:1190
+msgid "verbose operation"
+msgstr "operació descriptiva"
+
+#: ../cli.py:1192
msgid "answer yes for all questions"
msgstr "respon sà a totes les preguntes"
-#: ../cli.py:1124
+#: ../cli.py:1194
msgid "show Yum version and exit"
msgstr "mostra la versió de Yum i surt"
-#: ../cli.py:1125
+#: ../cli.py:1195
msgid "set install root"
msgstr "estableix l'arrel de la instal·lació"
-#: ../cli.py:1129
+#: ../cli.py:1199
msgid "enable one or more repositories (wildcards allowed)"
msgstr "habilita un o més repositoris (es permeten carà cters de reemplaçament)"
-#: ../cli.py:1133
+#: ../cli.py:1203
msgid "disable one or more repositories (wildcards allowed)"
msgstr ""
"deshabilita un o més repositoris (es permeten carà cters de reemplaçament)"
-#: ../cli.py:1136
+#: ../cli.py:1206
msgid "exclude package(s) by name or glob"
msgstr "exclou els paquets per nom o expressió regular del glob"
-#: ../cli.py:1138
+#: ../cli.py:1208
msgid "disable exclude from main, for a repo or for everything"
msgstr "deshabilita l'exclusió des de l'inici, per a un repositori o per a tot"
-#: ../cli.py:1141
+#: ../cli.py:1211
msgid "enable obsoletes processing during updates"
msgstr "habilita el processament d'obsolets durant les actualitzacions"
-#: ../cli.py:1143
+#: ../cli.py:1213
msgid "disable Yum plugins"
msgstr "deshabilita les extensions de Yum"
-#: ../cli.py:1145
+#: ../cli.py:1215
msgid "disable gpg signature checking"
msgstr "deshabilita la comprobació de signatures gpg"
-#: ../cli.py:1147
+#: ../cli.py:1217
msgid "disable plugins by name"
msgstr "deshabilita extensions per nom"
-#: ../cli.py:1150
+#: ../cli.py:1220
+msgid "enable plugins by name"
+msgstr "habilita extensions per nom"
+
+#: ../cli.py:1223
msgid "skip packages with depsolving problems"
msgstr "omet paquets amb problemes de resolució de dependències"
-#: ../output.py:229
+#: ../output.py:236
msgid "Jan"
msgstr "Gen"
-#: ../output.py:229
+#: ../output.py:236
msgid "Feb"
msgstr "Feb"
-#: ../output.py:229
+#: ../output.py:236
msgid "Mar"
msgstr "Mar"
-#: ../output.py:229
+#: ../output.py:236
msgid "Apr"
msgstr "Abr"
-#: ../output.py:229
+#: ../output.py:236
msgid "May"
msgstr "Mai"
-#: ../output.py:229
+#: ../output.py:236
msgid "Jun"
msgstr "Jun"
-#: ../output.py:230
+#: ../output.py:237
msgid "Jul"
msgstr "Jul"
-#: ../output.py:230
+#: ../output.py:237
msgid "Aug"
msgstr "Ago"
-#: ../output.py:230
+#: ../output.py:237
msgid "Sep"
msgstr "Set"
-#: ../output.py:230
+#: ../output.py:237
msgid "Oct"
msgstr "Oct"
-#: ../output.py:230
+#: ../output.py:237
msgid "Nov"
msgstr "Nov"
-#: ../output.py:230
+#: ../output.py:237
msgid "Dec"
msgstr "Des"
-#: ../output.py:240
+#: ../output.py:247
msgid "Trying other mirror."
-msgstr "S'està intentant un altre servidor rèplica"
+msgstr "S'està intentant un altre servidor rèplica."
-#: ../output.py:293
+#: ../output.py:425
#, python-format
-msgid "Name : %s"
-msgstr "Nom : %s"
+msgid "Name : %s%s%s"
+msgstr "Nom : %s%s%s"
-#: ../output.py:294
+#: ../output.py:426
#, python-format
msgid "Arch : %s"
msgstr "Arq : %s"
-#: ../output.py:296
+#: ../output.py:428
#, python-format
msgid "Epoch : %s"
msgstr "Ãpoca : %s"
-#: ../output.py:297
+#: ../output.py:429
#, python-format
msgid "Version : %s"
msgstr "Versió : %s"
-#: ../output.py:298
+#: ../output.py:430
#, python-format
msgid "Release : %s"
msgstr "Release : %s"
-#: ../output.py:299
+#: ../output.py:431
#, python-format
msgid "Size : %s"
msgstr "Mida : %s"
-#: ../output.py:300
+#: ../output.py:432
#, python-format
msgid "Repo : %s"
msgstr "Repo : %s"
-#: ../output.py:302
+#: ../output.py:434
#, python-format
msgid "Committer : %s"
msgstr "Desenvolupador : %s"
-#: ../output.py:303
+#: ../output.py:435
+#, python-format
+msgid "Committime : %s"
+msgstr "Pujat : %s"
+
+#: ../output.py:436
+#, python-format
+msgid "Buildtime : %s"
+msgstr "Temps de creació : %s"
+
+#: ../output.py:438
+#, python-format
+msgid "Installtime: %s"
+msgstr "Temps d'instal·lació: %s"
+
+#: ../output.py:439
msgid "Summary : "
msgstr "Resum : "
-#: ../output.py:305
+#: ../output.py:441
#, python-format
msgid "URL : %s"
msgstr "URL : %s"
-#: ../output.py:306
+#: ../output.py:442
#, python-format
msgid "License : %s"
msgstr "Llicència : %s"
-#: ../output.py:307
+#: ../output.py:443
msgid "Description: "
msgstr "Descripció: "
-# REMEMBER to Translate [Y/N] to the current locale
-#: ../output.py:351
-msgid "Is this ok [y/N]: "
-msgstr "Ãs correcte [s/N]: "
-
-#: ../output.py:357 ../output.py:360
+#: ../output.py:500
msgid "y"
msgstr "s"
-#: ../output.py:357
-msgid "n"
-msgstr "n"
-
-#: ../output.py:357 ../output.py:360
+#: ../output.py:500
msgid "yes"
msgstr "sÃ"
-#: ../output.py:357
+#: ../output.py:501
+msgid "n"
+msgstr "n"
+
+#: ../output.py:501
msgid "no"
msgstr "no"
-#: ../output.py:367
+# REMEMBER to Translate [Y/N] to the current locale
+#: ../output.py:505
+msgid "Is this ok [y/N]: "
+msgstr "Ãs correcte [s/N]: "
+
+#: ../output.py:587
#, python-format
msgid ""
"\n"
@@ -570,96 +632,119 @@ msgstr ""
"\n"
"Grup: %s"
-#: ../output.py:369
+#: ../output.py:594
#, python-format
msgid " Description: %s"
msgstr " Descripció: %s"
-#: ../output.py:371
+#: ../output.py:596
msgid " Mandatory Packages:"
msgstr " Paquets obligatoris:"
-#: ../output.py:376
+#: ../output.py:597
msgid " Default Packages:"
msgstr " Paquets per defecte:"
-#: ../output.py:381
+#: ../output.py:598
msgid " Optional Packages:"
msgstr " Paquets opcionals:"
-#: ../output.py:386
+#: ../output.py:599
msgid " Conditional Packages:"
msgstr " Paquets condicionals:"
-#: ../output.py:394
+#: ../output.py:619
#, python-format
msgid "package: %s"
msgstr "paquet: %s"
-#: ../output.py:396
+#: ../output.py:621
msgid " No dependencies for this package"
msgstr " No hi ha dependències per a aquest paquet"
-#: ../output.py:401
+#: ../output.py:626
#, python-format
msgid " dependency: %s"
msgstr " dependència: %s"
-#: ../output.py:403
+#: ../output.py:628
msgid " Unsatisfied dependency"
msgstr " Dependència insatisfeta"
-#: ../output.py:461
+#: ../output.py:700
msgid "Matched from:"
msgstr "Coincidències amb:"
-#: ../output.py:487
+#: ../output.py:708
+msgid "Description : "
+msgstr "Descripció: "
+
+#: ../output.py:711
+#, python-format
+msgid "URL : %s"
+msgstr "URL : %s"
+
+#: ../output.py:714
+#, python-format
+msgid "License : %s"
+msgstr "Llicència : %s"
+
+#: ../output.py:717
+#, python-format
+msgid "Filename : %s"
+msgstr "Fitxer : %s"
+
+#: ../output.py:721
+msgid "Other : "
+msgstr "Altre : "
+
+#: ../output.py:753
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:492
+#: ../output.py:758
#, python-format
msgid "Total size: %s"
msgstr "Mida total: %s"
-#: ../output.py:495
+#: ../output.py:761
#, python-format
msgid "Total download size: %s"
msgstr "Mida total de la descà rrega: %s"
-#: ../output.py:507
+#: ../output.py:779
+msgid "Installing for dependencies"
+msgstr "S'està instal·lant per dependències"
+
+#: ../output.py:780
+msgid "Updating for dependencies"
+msgstr "S'està actualitzant per dependències"
+
+#: ../output.py:781
+msgid "Removing for dependencies"
+msgstr "S'està esborrant per dependències"
+
+#: ../output.py:817
msgid "Package"
msgstr "Paquet"
-#: ../output.py:507
+#: ../output.py:817
msgid "Arch"
msgstr "Arq"
-#: ../output.py:507
+#: ../output.py:818
msgid "Version"
msgstr "Versió"
-#: ../output.py:507
+#: ../output.py:818
msgid "Repository"
msgstr "Repositori"
-#: ../output.py:507
+#: ../output.py:819
msgid "Size"
msgstr "Mida"
-#: ../output.py:514
-msgid "Installing for dependencies"
-msgstr "S'està instal·lant per dependències"
-
-#: ../output.py:515
-msgid "Updating for dependencies"
-msgstr "S'està actualitzant per dependències"
-
-#: ../output.py:516
-msgid "Removing for dependencies"
-msgstr "S'està esborrant per dependències"
-
-#: ../output.py:528
+#: ../output.py:830
#, python-format
msgid ""
" replacing %s.%s %s\n"
@@ -668,44 +753,44 @@ msgstr ""
" s'està reemplaçant %s.%s %s\n"
"\n"
-#: ../output.py:536
+#: ../output.py:838
#, python-format
msgid ""
"\n"
"Transaction Summary\n"
-"=============================================================================\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"
-"=============================================================================\n"
-"Instal·la %5.5s paquets\n"
-"Actualitza %5.5s paquets\n"
-"Esborra %5.5s paquets\n"
+"%s\n"
+"Instal·la %5.5s paquets \n"
+"Actualitza %5.5s paquets \n"
+"Esborra %5.5s paquets \n"
-#: ../output.py:554
+#: ../output.py:886
msgid "Removed"
msgstr "Esborrat"
-#: ../output.py:555
+#: ../output.py:887
msgid "Dependency Removed"
msgstr "Dependència esborrada"
-#: ../output.py:557
+#: ../output.py:889
msgid "Dependency Installed"
msgstr "Dependència instal·lada"
-#: ../output.py:559
+#: ../output.py:891
msgid "Dependency Updated"
msgstr "Dependència actualitzada"
-#: ../output.py:560
+#: ../output.py:892
msgid "Replaced"
msgstr "Reemplaçat"
-#: ../output.py:618
+#: ../output.py:965
#, python-format
msgid ""
"\n"
@@ -716,77 +801,81 @@ msgstr ""
"S'ha cancel·lat la descà rrega actual, %sinterromp (crtl-c) de nou%s en %s%s%"
"s segons per a sortir.\n"
-#: ../output.py:628
+#: ../output.py:975
msgid "user interrupt"
msgstr "interrupció de l'usuari"
-#: ../output.py:639
+#: ../output.py:991
+msgid "Total"
+msgstr "Total"
+
+#: ../output.py:1005
msgid "installed"
msgstr "instal·lat"
-#: ../output.py:640
+#: ../output.py:1006
msgid "updated"
msgstr "actualitzat"
-#: ../output.py:641
+#: ../output.py:1007
msgid "obsoleted"
msgstr "obsolet"
-#: ../output.py:642
+#: ../output.py:1008
msgid "erased"
msgstr "esborrat"
-#: ../output.py:646
+#: ../output.py:1012
#, 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:653
+#: ../output.py:1019
msgid "--> Running transaction check"
msgstr "--> S'està executant la transacció de prova"
-#: ../output.py:658
+#: ../output.py:1024
msgid "--> Restarting Dependency Resolution with new changes."
msgstr ""
"--> Tornant a calcular la resolució de dependències amb els nous canvis."
-#: ../output.py:663
+#: ../output.py:1029
msgid "--> Finished Dependency Resolution"
msgstr "--> Ha finalitzat la resolució de dependències"
-#: ../output.py:668
+#: ../output.py:1034
#, python-format
msgid "--> Processing Dependency: %s for package: %s"
msgstr "--> S'està processant la dependència %s per al paquet: %s"
-#: ../output.py:673
+#: ../output.py:1039
#, python-format
msgid "--> Unresolved Dependency: %s"
msgstr "--> Dependència no resolta: %s"
-#: ../output.py:679
+#: ../output.py:1045
#, python-format
msgid "--> Processing Conflict: %s conflicts %s"
msgstr "--> S'està processant el conflicte: %s té un conflicte amb %s"
-#: ../output.py:682
+#: ../output.py:1048
msgid "--> Populating transaction set with selected packages. Please wait."
msgstr ""
"--> S'està poblant la transacció amb els paquets sel·leccionats. Si us plau, "
"espereu."
-#: ../output.py:686
+#: ../output.py:1052
#, 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."
-#: ../yumcommands.py:36
+#: ../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:43
+#: ../yumcommands.py:47
msgid ""
"\n"
"You have enabled checking of packages via GPG keys. This is a good thing. \n"
@@ -820,251 +909,292 @@ msgstr ""
"Per a més informació contacteu el vostre distribuidor o proveïdor de "
"paquets.\n"
-#: ../yumcommands.py:63
+#: ../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:69
+#: ../yumcommands.py:73
msgid "Error: Need an item to match"
msgstr "Error: es necessita algun element per comparar"
-#: ../yumcommands.py:75
+#: ../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:84
+#: ../yumcommands.py:88
#, python-format
msgid "Error: clean requires an option: %s"
msgstr "Error: la neteja requereix una opció: %s"
-#: ../yumcommands.py:89
+#: ../yumcommands.py:93
#, python-format
msgid "Error: invalid clean argument: %r"
msgstr "Error: argument invà lid per a la neteja: %r"
-#: ../yumcommands.py:102
+#: ../yumcommands.py:106
msgid "No argument to shell"
msgstr "No hi ha arguments per a l'intèrpret d'ordres"
-#: ../yumcommands.py:105
+#: ../yumcommands.py:109
#, python-format
msgid "Filename passed to shell: %s"
msgstr "Nom del fitxer passat a l'intèrpret d'ordres: %s"
-#: ../yumcommands.py:109
+#: ../yumcommands.py:113
#, 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:115
+#: ../yumcommands.py:119
msgid "Error: more than one file given as argument to shell."
msgstr ""
"Error: s'ha donat més d'un fitxer com a arguments per a l'intèrpret d'ordres."
-#: ../yumcommands.py:156
+#: ../yumcommands.py:160
msgid "PACKAGE..."
msgstr "PAQUET..."
-#: ../yumcommands.py:159
+#: ../yumcommands.py:163
msgid "Install a package or packages on your system"
msgstr "Instal·la un o més paquets al vostre sistema"
-#: ../yumcommands.py:168
+#: ../yumcommands.py:172
msgid "Setting up Install Process"
msgstr "S'està preparant el procés d'instal·lació"
-#: ../yumcommands.py:179
+#: ../yumcommands.py:183
msgid "[PACKAGE...]"
msgstr "[PAQUET...]"
-#: ../yumcommands.py:182
+#: ../yumcommands.py:186
msgid "Update a package or packages on your system"
msgstr "S'ha actualitzat un o més paquets al vostre sistema"
-#: ../yumcommands.py:190
+#: ../yumcommands.py:194
msgid "Setting up Update Process"
msgstr "S'està preparant el procés d'actualització"
-#: ../yumcommands.py:204
+#: ../yumcommands.py:236
msgid "Display details about a package or group of packages"
msgstr "Mostra detalls sobre un paquet o un grup de paquets"
-#: ../yumcommands.py:212
+#. Output the packages:
+#: ../yumcommands.py:261
msgid "Installed Packages"
msgstr "Paquets instal·lats"
-#: ../yumcommands.py:213
+#: ../yumcommands.py:263
msgid "Available Packages"
msgstr "Paquets disponibles"
-#: ../yumcommands.py:214
+#: ../yumcommands.py:265
msgid "Extra Packages"
msgstr "Paquets extra"
-#: ../yumcommands.py:215
+#: ../yumcommands.py:267
msgid "Updated Packages"
msgstr "Paquets actualitzats"
-#: ../yumcommands.py:221 ../yumcommands.py:225
+#: ../yumcommands.py:274 ../yumcommands.py:281
msgid "Obsoleting Packages"
msgstr "Paquets fets obsolets"
-#: ../yumcommands.py:226
+#: ../yumcommands.py:283
msgid "Recently Added Packages"
msgstr "Paquets recentment afegits"
-#: ../yumcommands.py:232
+#: ../yumcommands.py:290
msgid "No matching Packages to list"
msgstr "No hi ha paquets coincidents per llistar"
-#: ../yumcommands.py:246
+#: ../yumcommands.py:304
msgid "List a package or groups of packages"
msgstr "Llista un paquet o un grup de paquets"
-#: ../yumcommands.py:258
+#: ../yumcommands.py:316
msgid "Remove a package or packages from your system"
msgstr "Esborra un o més paquets del vostre sistema"
-#: ../yumcommands.py:266
+#: ../yumcommands.py:324
msgid "Setting up Remove Process"
msgstr "S'està preparant el procés d'esborrat"
-#: ../yumcommands.py:278
+#: ../yumcommands.py:339
msgid "Setting up Group Process"
msgstr "S'està preparant el procés de grup"
-#: ../yumcommands.py:284
+#: ../yumcommands.py:345
msgid "No Groups on which to run command"
msgstr "No hi ha cap grup on executar l'ordre"
-#: ../yumcommands.py:297
+#: ../yumcommands.py:358
msgid "List available package groups"
msgstr "Llista els grups de paquets disponibles"
-#: ../yumcommands.py:314
+#: ../yumcommands.py:375
msgid "Install the packages in a group on your system"
msgstr "Instal·la els paquets en un grup en el vostre sistema"
-#: ../yumcommands.py:336
+#: ../yumcommands.py:397
msgid "Remove the packages in a group from your system"
msgstr "Esborra els paquets en un grup en el vostre sistema"
-#: ../yumcommands.py:360
+#: ../yumcommands.py:424
msgid "Display details about a package group"
msgstr "Mostra detalls sobre un grup de paquets"
-#: ../yumcommands.py:384
+#: ../yumcommands.py:448
msgid "Generate the metadata cache"
msgstr "Genera les metadades de la memòria cau"
-#: ../yumcommands.py:390
+#: ../yumcommands.py:454
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."
-#: ../yumcommands.py:391
+#: ../yumcommands.py:455
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:412
+#: ../yumcommands.py:476
msgid "Metadata Cache Created"
msgstr "S'han creat les metadades per a la memòria cau"
-#: ../yumcommands.py:426
+#: ../yumcommands.py:490
msgid "Remove cached data"
msgstr "S'han esborrat les dades de la memòria cau"
-#: ../yumcommands.py:447
+#: ../yumcommands.py:511
msgid "Find what package provides the given value"
msgstr "Troba quin paquet proporciona el valor donat"
-#: ../yumcommands.py:467
+#: ../yumcommands.py:531
msgid "Check for available package updates"
msgstr "Comprova si hi ha actualitzacions de paquets disponibles"
-#: ../yumcommands.py:490
+#: ../yumcommands.py:556
msgid "Search package details for the given string"
msgstr "Busca detalls del paquet per la cadena donada"
-#: ../yumcommands.py:496
+#: ../yumcommands.py:562
msgid "Searching Packages: "
msgstr "S'estan buscant paquets: "
-#: ../yumcommands.py:513
+#: ../yumcommands.py:579
msgid "Update packages taking obsoletes into account"
msgstr "Actualitza paquets tenint en compte els obsolets"
-#: ../yumcommands.py:522
+#: ../yumcommands.py:588
msgid "Setting up Upgrade Process"
msgstr "S'està preparant el procés d'actualització"
-#: ../yumcommands.py:536
+#: ../yumcommands.py:602
msgid "Install a local RPM"
msgstr "Instal·la un RPM local"
-#: ../yumcommands.py:545
+#: ../yumcommands.py:611
msgid "Setting up Local Package Process"
msgstr "S'està configurant el procés local de paquets"
-#: ../yumcommands.py:564
+#: ../yumcommands.py:630
msgid "Determine which package provides the given dependency"
msgstr "Determina quin paquet satisfà la dependència donada"
-#: ../yumcommands.py:567
+#: ../yumcommands.py:633
msgid "Searching Packages for Dependency:"
msgstr "S'estan buscant paquets per a la dependència:"
-#: ../yumcommands.py:581
+#: ../yumcommands.py:647
msgid "Run an interactive yum shell"
msgstr "Executa un intèrpret d'ordres interactiu de yum"
-#: ../yumcommands.py:587
+#: ../yumcommands.py:653
msgid "Setting up Yum Shell"
msgstr "S'està preparant l'intèrpret d'ordres de yum"
-#: ../yumcommands.py:605
+#: ../yumcommands.py:671
msgid "List a package's dependencies"
msgstr "Llista les dependències d'un paquet"
-#: ../yumcommands.py:611
+#: ../yumcommands.py:677
msgid "Finding dependencies: "
msgstr "S'estan trobant dependències: "
-#: ../yumcommands.py:627
+#: ../yumcommands.py:693
msgid "Display the configured software repositories"
msgstr "Mostra els repositoris de programari configurats"
-#: ../yumcommands.py:645
+#: ../yumcommands.py:742
+msgid "enabled"
+msgstr "habilitat"
+
+#: ../yumcommands.py:751
+msgid "disabled"
+msgstr "deshabilitat"
+
+#: ../yumcommands.py:760
msgid "repo id"
msgstr "id repo"
-#: ../yumcommands.py:645
+#: ../yumcommands.py:761
msgid "repo name"
msgstr "nom repo"
-#: ../yumcommands.py:645
+#: ../yumcommands.py:761
msgid "status"
msgstr "estat"
-#: ../yumcommands.py:651
-msgid "enabled"
-msgstr "habilitat"
+#: ../yumcommands.py:764
+msgid "Repo-id : "
+msgstr "Id-repo : "
-#: ../yumcommands.py:654
-msgid "disabled"
-msgstr "deshabilitat"
+#: ../yumcommands.py:765
+msgid "Repo-name : "
+msgstr "Nom-repo : "
-#: ../yumcommands.py:671
+#: ../yumcommands.py:766
+msgid "Repo-status : "
+msgstr "Estat-repo : "
+
+#: ../yumcommands.py:768
+msgid "Repo-updated: "
+msgstr "Repo-actualitzat: "
+
+#: ../yumcommands.py:770
+msgid "Repo-pkgs : "
+msgstr "Paquets-repo : "
+
+#: ../yumcommands.py:771
+msgid "Repo-size : "
+msgstr "Mida-repo : "
+
+#: ../yumcommands.py:774
+msgid "Repo-baseurl: "
+msgstr "URL-base-repo : "
+
+#: ../yumcommands.py:778
+msgid "Repo-mirrors: "
+msgstr "Miralls-repo : "
+
+#: ../yumcommands.py:782
+msgid "Repo-exclude: "
+msgstr "Repo-exclou : "
+
+#: ../yumcommands.py:786
+msgid "Repo-include: "
+msgstr "Repo-inclou : "
+
+#: ../yumcommands.py:812
msgid "Display a helpful usage message"
msgstr "Mostra un missatge d'ajuda d'ús"
-#: ../yumcommands.py:705
+#: ../yumcommands.py:846
#, python-format
msgid "No help available for %s"
msgstr "No hi ha ajuda disponible per a %s"
-#: ../yumcommands.py:710
+#: ../yumcommands.py:851
msgid ""
"\n"
"\n"
@@ -1074,7 +1204,7 @@ msgstr ""
"\n"
"Ã lies: "
-#: ../yumcommands.py:712
+#: ../yumcommands.py:853
msgid ""
"\n"
"\n"
@@ -1084,11 +1214,11 @@ msgstr ""
"\n"
"Ã lies: "
-#: ../yumcommands.py:741
+#: ../yumcommands.py:882
msgid "Setting up Reinstall Process"
msgstr "S'està preparant el procés de reinstal·lació"
-#: ../yumcommands.py:755
+#: ../yumcommands.py:896
msgid "reinstall a package"
msgstr "reinstal·la un paquet"
@@ -1112,28 +1242,28 @@ msgstr ""
"\n"
"S'està sortint en trobar la canonada trencada"
-#: ../yummain.py:105
+#: ../yummain.py:98
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:132 ../yummain.py:171
+#: ../yummain.py:125 ../yummain.py:164
#, python-format
msgid "Error: %s"
msgstr "Error: %s"
-#: ../yummain.py:142 ../yummain.py:178
+#: ../yummain.py:135 ../yummain.py:171
#, python-format
msgid "Unknown Error(s): Exit Code: %d:"
msgstr "Errors desconeguts: Codi de sortida: %d:"
#. Depsolve stage
-#: ../yummain.py:149
+#: ../yummain.py:142
msgid "Resolving Dependencies"
msgstr "S'estan resolent dependències"
-#: ../yummain.py:184
+#: ../yummain.py:177
msgid ""
"\n"
"Dependencies Resolved"
@@ -1141,11 +1271,11 @@ msgstr ""
"\n"
"Dependències resoltes"
-#: ../yummain.py:198
+#: ../yummain.py:191
msgid "Complete!"
msgstr "Completat!"
-#: ../yummain.py:245
+#: ../yummain.py:238
msgid ""
"\n"
"\n"
@@ -1155,329 +1285,323 @@ msgstr ""
"\n"
"S'està sortint de l'ordre de l'usuari."
-#: ../yum/depsolve.py:82
+#: ../yum/depsolve.py:84
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:95
+#: ../yum/depsolve.py:97
msgid "Setting up TransactionSets before config class is up"
msgstr ""
"S'està configurant TransactionSets abans que la classe de configuració "
"estigui iniciada"
-#: ../yum/depsolve.py:136
+#: ../yum/depsolve.py:148
#, python-format
msgid "Invalid tsflag in config file: %s"
msgstr "Tsflag invà lid en el fitxer de configuració: %s"
-#: ../yum/depsolve.py:147
+#: ../yum/depsolve.py:159
#, python-format
msgid "Searching pkgSack for dep: %s"
msgstr "S'està buscant pkgSack per a la dependència: %s"
-#: ../yum/depsolve.py:170
+#: ../yum/depsolve.py:182
#, python-format
msgid "Potential match for %s from %s"
msgstr "Coincidència potencial per a %s de %s"
-#: ../yum/depsolve.py:178
+#: ../yum/depsolve.py:190
#, python-format
msgid "Matched %s to require for %s"
msgstr "La coincidència %s es requereix per a %s"
-#: ../yum/depsolve.py:219
+#: ../yum/depsolve.py:231
#, python-format
msgid "Member: %s"
msgstr "Membre: %s"
-#: ../yum/depsolve.py:233 ../yum/depsolve.py:696
+#: ../yum/depsolve.py:245 ../yum/depsolve.py:732
#, python-format
msgid "%s converted to install"
msgstr "%s convertits per a instal·lar"
-#: ../yum/depsolve.py:240
+#: ../yum/depsolve.py:252
#, python-format
msgid "Adding Package %s in mode %s"
msgstr "S'està afegint el paquet %s en mode %s"
-#: ../yum/depsolve.py:250
+#: ../yum/depsolve.py:262
#, python-format
msgid "Removing Package %s"
msgstr "S'està esborrant el paquet %s"
-#: ../yum/depsolve.py:261
+#: ../yum/depsolve.py:273
#, python-format
msgid "%s requires: %s"
msgstr "%s requereix: %s"
-#: ../yum/depsolve.py:312
+#: ../yum/depsolve.py:331
msgid "Needed Require has already been looked up, cheating"
msgstr ""
"El requeriment necessari ja s'ha buscat anteriorment, s'estan fent trampes"
-#: ../yum/depsolve.py:322
+#: ../yum/depsolve.py:341
#, 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:329
+#: ../yum/depsolve.py:348
#, python-format
msgid "Potential Provider: %s"
msgstr "Proveïdor potencial: %s"
-#: ../yum/depsolve.py:352
+#: ../yum/depsolve.py:371
#, 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:356
+#: ../yum/depsolve.py:375
#, python-format
msgid "Mode for pkg providing %s: %s"
msgstr "Mode per al paquet que proporciona %s: %s"
-#: ../yum/depsolve.py:360
+#: ../yum/depsolve.py:379
#, python-format
msgid "TSINFO: %s package requiring %s marked as erase"
msgstr "TSINFO: el paquet %s requereix %s marcat per a esborrar"
-#: ../yum/depsolve.py:372
+#: ../yum/depsolve.py:391
#, 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."
-#: ../yum/depsolve.py:375
+#: ../yum/depsolve.py:394
#, python-format
msgid "TSINFO: Updating %s to resolve dep."
msgstr "TSINFO: S'està actualitzant %s per a resoldre dependències."
-#: ../yum/depsolve.py:378
+#: ../yum/depsolve.py:402
#, 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:388
+#: ../yum/depsolve.py:412
#, python-format
msgid "Unresolvable requirement %s for %s"
msgstr "No es pot resoldre el requeriment %s per a %s"
+#: ../yum/depsolve.py:435
+#, 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:434
+#: ../yum/depsolve.py:477
#, 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."
-#: ../yum/depsolve.py:449
+#: ../yum/depsolve.py:492
#, 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"
-#: ../yum/depsolve.py:460
+#: ../yum/depsolve.py:503
#, 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."
-#: ../yum/depsolve.py:468 ../yum/depsolve.py:527
+#: ../yum/depsolve.py:511 ../yum/depsolve.py:560
#, python-format
msgid "Missing Dependency: %s is needed by package %s"
msgstr "La dependència que falta: %s es necessita per al paquet %s"
-#: ../yum/depsolve.py:481
+#: ../yum/depsolve.py:524
#, python-format
msgid "%s already in ts, skipping this one"
msgstr "%s ja es troba en ts, s'està ometent"
-#: ../yum/depsolve.py:510
-#, python-format
-msgid ""
-"Failure finding best provider of %s for %s, exceeded maximum loop length"
-msgstr ""
-"S'ha produït un error trobant el millor proveïdor de %s per a %s, el bucle "
-"ha excedit la longitud mà xima"
-
-#: ../yum/depsolve.py:537
+#: ../yum/depsolve.py:570
#, 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:544
+#: ../yum/depsolve.py:578
#, 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:635 ../yum/depsolve.py:714
+#: ../yum/depsolve.py:670 ../yum/depsolve.py:750
msgid "Success - empty transaction"
msgstr "Ãxit - transacció buida"
-#: ../yum/depsolve.py:673 ../yum/depsolve.py:686
+#: ../yum/depsolve.py:709 ../yum/depsolve.py:722
msgid "Restarting Loop"
msgstr "S'està recomençant el bucle"
-#: ../yum/depsolve.py:702
+#: ../yum/depsolve.py:738
msgid "Dependency Process ending"
msgstr "Està acabant el procés de dependències"
-#: ../yum/depsolve.py:708
+#: ../yum/depsolve.py:744
#, python-format
msgid "%s from %s has depsolving problems"
msgstr "%s de %s té problemes resolent dependències"
-#: ../yum/depsolve.py:715
+#: ../yum/depsolve.py:751
msgid "Success - deps resolved"
msgstr "Ãxit - dependències resoltes"
-#: ../yum/depsolve.py:729
+#: ../yum/depsolve.py:765
#, python-format
msgid "Checking deps for %s"
msgstr "S'estan comprobant les dependències per a %s"
-#: ../yum/depsolve.py:782
+#: ../yum/depsolve.py:848
#, python-format
msgid "looking for %s as a requirement of %s"
msgstr "s'està buscant %s com a requeriment de %s"
-#: ../yum/depsolve.py:933
-#, python-format
-msgid "Comparing best: %s to po: %s"
-msgstr "S'està comparant el millor: %s amb po: %s"
-
-#: ../yum/depsolve.py:937
+#: ../yum/depsolve.py:988
#, python-format
-msgid "Same: best %s == po: %s"
-msgstr "Igual: el millor %s == po: %s"
+msgid "Running compare_providers() for %s"
+msgstr "S'està executant compare_providers() per a %s"
-#: ../yum/depsolve.py:952 ../yum/depsolve.py:963
-#, python-format
-msgid "best %s obsoletes po: %s"
-msgstr "el millor %s deixa com a obsolet el po: %s"
-
-#: ../yum/depsolve.py:955
-#, python-format
-msgid "po %s obsoletes best: %s"
-msgstr "el po %s deixa com a obsolet el millor: %s"
-
-#: ../yum/depsolve.py:972 ../yum/depsolve.py:979 ../yum/depsolve.py:1036
+#: ../yum/depsolve.py:1016 ../yum/depsolve.py:1022
#, python-format
msgid "better arch in po %s"
msgstr "millor arq en el po %s"
-#: ../yum/depsolve.py:988 ../yum/depsolve.py:1010
+#: ../yum/depsolve.py:1061
#, python-format
-msgid "po %s shares a sourcerpm with %s"
-msgstr "el po %s comparteix un rpm origen amb %s"
+msgid "%s obsoletes %s"
+msgstr "%s fa obsolet %s"
-#: ../yum/depsolve.py:992 ../yum/depsolve.py:1015
+#: ../yum/depsolve.py:1077
#, python-format
-msgid "best %s shares a sourcerpm with %s"
-msgstr "el millor %s comparteix un rpm origen amb %s"
+msgid ""
+"archdist compared %s to %s on %s\n"
+" Winner: %s"
+msgstr ""
+"archdist ha comparat %s amb %s a %s\n"
+" Ha guanyat: %s"
-#: ../yum/depsolve.py:999 ../yum/depsolve.py:1020
+#: ../yum/depsolve.py:1084
#, python-format
-msgid "po %s shares more of the name prefix with %s"
-msgstr "el po %s comparteix més que el prefix del nom amb %s"
+msgid "common sourcerpm %s and %s"
+msgstr "rpm font comú %s i %s"
-#: ../yum/depsolve.py:1003 ../yum/depsolve.py:1029
+#: ../yum/depsolve.py:1090
#, python-format
-msgid "po %s has a shorter name than best %s"
-msgstr "el po %s té un nom més curt que el millor %s"
+msgid "common prefix of %s between %s and %s"
+msgstr "prefix comú de %s entre %s i %s"
-#: ../yum/depsolve.py:1025
+#: ../yum/depsolve.py:1098
#, python-format
-msgid "bestpkg %s shares more of the name prefix with %s"
-msgstr "el millor paquet %s comparteix més el prefix del nom amb %s"
+msgid "Best Order: %s"
+msgstr "Millor ordre: %s"
-#: ../yum/__init__.py:119
+#: ../yum/__init__.py:134
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:296
+#: ../yum/__init__.py:314
#, 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:332
+#: ../yum/__init__.py:352
msgid "plugins already initialised"
msgstr "els connectors ja estan inicialitzats"
-#: ../yum/__init__.py:339
+#: ../yum/__init__.py:359
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:349
+#: ../yum/__init__.py:369
msgid "Reading Local RPMDB"
msgstr "S'està llegint un RPMDB local"
-#: ../yum/__init__.py:367
+#: ../yum/__init__.py:387
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:387
+#: ../yum/__init__.py:407
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:404
+#: ../yum/__init__.py:424
msgid "Setting up Package Sacks"
msgstr "S'estan configurant els sacs de paquets"
-#: ../yum/__init__.py:447
+#: ../yum/__init__.py:467
#, 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:448
+#: ../yum/__init__.py:468
msgid "therefore this repo cannot be reset.\n"
msgstr "Aquest repositori no es pot reiniciar.\n"
-#: ../yum/__init__.py:453
+#: ../yum/__init__.py:473
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:465
+#: ../yum/__init__.py:485
msgid "Building updates object"
msgstr "S'està construint l'objecte d'actualitzacions"
-#: ../yum/__init__.py:496
+#: ../yum/__init__.py:516
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:520
+#: ../yum/__init__.py:540
msgid "Getting group metadata"
msgstr "S'estan obtenint les metadades del grup"
-#: ../yum/__init__.py:546
+#: ../yum/__init__.py:566
#, python-format
msgid "Adding group file from repository: %s"
msgstr "S'està afegint el fitxer del grup des del repositori: %s"
-#: ../yum/__init__.py:555
+#: ../yum/__init__.py:575
#, 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:561
+#: ../yum/__init__.py:581
msgid "No Groups Available in any repository"
msgstr "No hi ha cap grup disponible en cap repositori"
-#: ../yum/__init__.py:611
+#: ../yum/__init__.py:631
msgid "Importing additional filelist information"
msgstr "S'està important informació adicional de la llista de fitxers"
-#: ../yum/__init__.py:657
+#: ../yum/__init__.py:639
+msgid ""
+"There are unfinished transactions remaining. You mightconsider 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-ho."
+
+#: ../yum/__init__.py:689
#, python-format
msgid "Skip-broken round %i"
msgstr "Intent %i d'omissió dels trencats"
-#: ../yum/__init__.py:680
+#: ../yum/__init__.py:712
#, python-format
msgid "Skip-broken took %i rounds "
msgstr "L'omisió dels trencats ha necessitat %i intents"
-#: ../yum/__init__.py:681
+#: ../yum/__init__.py:713
msgid ""
"\n"
"Packages skipped because of dependency problems:"
@@ -1485,96 +1609,108 @@ msgstr ""
"\n"
"Paquets omesos degut a problemes de dependències:"
-#: ../yum/__init__.py:685
+#: ../yum/__init__.py:717
#, python-format
msgid " %s from %s"
msgstr " %s des de %s"
-#: ../yum/__init__.py:774
+#: ../yum/__init__.py:802
+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:818
#, python-format
msgid "Failed to remove transaction file %s"
msgstr "No s'ha pogut esborrar el fitxer de transaccions %s"
-#: ../yum/__init__.py:814
+#: ../yum/__init__.py:859
#, python-format
msgid "excluding for cost: %s from %s"
msgstr "s'està excloent per cost: %s de %s"
-#: ../yum/__init__.py:845
+#: ../yum/__init__.py:890
msgid "Excluding Packages in global exclude list"
msgstr "S'estan excloent paquets en la llista global d'exclusió"
-#: ../yum/__init__.py:847
+#: ../yum/__init__.py:892
#, python-format
msgid "Excluding Packages from %s"
msgstr "S'estan excloent paquets de %s"
-#: ../yum/__init__.py:875
+#: ../yum/__init__.py:919
#, python-format
msgid "Reducing %s to included packages only"
msgstr "S'està reduint %s únicament a paquets inclosos."
-#: ../yum/__init__.py:880
+#: ../yum/__init__.py:925
#, python-format
msgid "Keeping included package %s"
msgstr "S'està mantenint el paquet inclòs %s"
-#: ../yum/__init__.py:886
+#: ../yum/__init__.py:931
#, python-format
msgid "Removing unmatched package %s"
msgstr "S'està esborrant el paquet sense coincidències %s"
-#: ../yum/__init__.py:889
+#: ../yum/__init__.py:934
msgid "Finished"
msgstr "Finalitzat"
#. Whoa. What the heck happened?
-#: ../yum/__init__.py:919
+#: ../yum/__init__.py:964
#, 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:923
+#: ../yum/__init__.py:968
#, 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:970 ../yum/__init__.py:977
+#: ../yum/__init__.py:1039
msgid "Package does not match intended download"
msgstr "El paquet no coincideix amb la descà rrega intentada"
-#: ../yum/__init__.py:991
+#: ../yum/__init__.py:1054
msgid "Could not perform checksum"
msgstr "No s'ha pogut realitzar la suma de verificació"
-#: ../yum/__init__.py:994
+#: ../yum/__init__.py:1057
msgid "Package does not match checksum"
msgstr "No coincideix la suma de verificació del paquet"
-#: ../yum/__init__.py:1036
+#: ../yum/__init__.py:1100
#, 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"
-#: ../yum/__init__.py:1042
+#: ../yum/__init__.py:1103
#, python-format
msgid "using local copy of %s"
msgstr "s'està utilitzant la còpia local de %s"
-#: ../yum/__init__.py:1061
+#: ../yum/__init__.py:1130
#, python-format
-msgid "Insufficient space in download directory %s to download"
+msgid ""
+"Insufficient space in download directory %s\n"
+" * free %s\n"
+" * needed %s"
msgstr ""
-"No hi ha espai suficient al directori de descà rregues %s per a descarregar"
+"No hi ha espai suficient al directori de descà rregues %s\n"
+" * lliure %s\n"
+" * necessari %s"
-#: ../yum/__init__.py:1094
+#: ../yum/__init__.py:1177
msgid "Header is not complete."
msgstr "La capçalera no està completa."
-#: ../yum/__init__.py:1134
+#: ../yum/__init__.py:1217
#, python-format
msgid ""
"Header not in local cache and caching-only mode enabled. Cannot download %s"
@@ -1582,62 +1718,62 @@ 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"
-#: ../yum/__init__.py:1189
+#: ../yum/__init__.py:1272
#, 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:1193
+#: ../yum/__init__.py:1276
#, python-format
msgid "Problem opening package %s"
msgstr "Hi ha hagut un problema obrint el paquet %s"
-#: ../yum/__init__.py:1201
+#: ../yum/__init__.py:1284
#, 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:1205
+#: ../yum/__init__.py:1288
#, python-format
msgid "Package %s is not signed"
msgstr "El paquet %s no està signat"
-#: ../yum/__init__.py:1243
+#: ../yum/__init__.py:1326
#, python-format
msgid "Cannot remove %s"
msgstr "No es pot esborrar %s"
-#: ../yum/__init__.py:1247
+#: ../yum/__init__.py:1330
#, python-format
msgid "%s removed"
msgstr "S'ha esborrat %s"
-#: ../yum/__init__.py:1283
+#: ../yum/__init__.py:1367
#, python-format
msgid "Cannot remove %s file %s"
msgstr "No es pot esborrar %s fitxer %s"
-#: ../yum/__init__.py:1287
+#: ../yum/__init__.py:1371
#, python-format
msgid "%s file %s removed"
msgstr "%s fitxer %s esborrat"
-#: ../yum/__init__.py:1289
+#: ../yum/__init__.py:1373
#, python-format
msgid "%d %s files removed"
msgstr "%d %s fitxers esborrats"
-#: ../yum/__init__.py:1329
+#: ../yum/__init__.py:1435
#, 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:1335
+#: ../yum/__init__.py:1441
#, 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:1543
+#: ../yum/__init__.py:1649
msgid ""
"searchPackages() will go away in a future version of "
"Yum. Use searchGenerator() instead. \n"
@@ -1645,143 +1781,179 @@ msgstr ""
"searchPackages() desapareixerà en una futura versió de "
"Yum. Useu searchGenerator(). \n"
-#: ../yum/__init__.py:1580
+#: ../yum/__init__.py:1687
#, python-format
msgid "Searching %d packages"
msgstr "S'estan buscant %d paquets"
-#: ../yum/__init__.py:1584
+#: ../yum/__init__.py:1691
#, python-format
msgid "searching package %s"
msgstr "s'està buscant el paquet %s"
-#: ../yum/__init__.py:1596
+#: ../yum/__init__.py:1703
msgid "searching in file entries"
msgstr "s'està buscant en les entrades de fitxers"
-#: ../yum/__init__.py:1603
+#: ../yum/__init__.py:1710
msgid "searching in provides entries"
msgstr "s'està buscant en les entrades proporcionades"
-#: ../yum/__init__.py:1633
+#: ../yum/__init__.py:1743
#, python-format
msgid "Provides-match: %s"
msgstr "Proporciona-coincideix: %s"
-#: ../yum/__init__.py:1702 ../yum/__init__.py:1720 ../yum/__init__.py:1748
-#: ../yum/__init__.py:1753 ../yum/__init__.py:1808 ../yum/__init__.py:1812
+#: ../yum/__init__.py:1792
+msgid "No group data available for configured repositories"
+msgstr "No hi ha dades de grup disponible en cap dels repositoris configurats"
+
+#: ../yum/__init__.py:1818 ../yum/__init__.py:1837 ../yum/__init__.py:1868
+#: ../yum/__init__.py:1874 ../yum/__init__.py:1947 ../yum/__init__.py:1951
#, python-format
msgid "No Group named %s exists"
msgstr "No existeix cap grup anomenat %s"
-#: ../yum/__init__.py:1731 ../yum/__init__.py:1824
+#: ../yum/__init__.py:1849 ../yum/__init__.py:1964
#, 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:1770
+#: ../yum/__init__.py:1896
#, python-format
msgid "Adding package %s from group %s"
msgstr "S'està afegint el paquet %s del grup %s"
-#: ../yum/__init__.py:1774
+#: ../yum/__init__.py:1900
#, 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:1849
+#: ../yum/__init__.py:1989
#, 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:1917 ../yum/__init__.py:1960
+#: ../yum/__init__.py:2004
+msgid ""
+"getInstalledPackageObject() will go away, use self.rpmdb.searchPkgTuple().\n"
+msgstr ""
+"getInstalledPackageObject() desapareixarà , useu self.rpmdb.searchPkgTuple().\n"
+
+#: ../yum/__init__.py:2056 ../yum/__init__.py:2099
msgid "Invalid versioned dependency string, try quoting it."
msgstr ""
"La cadena de versió de dependència és invà lida, proveu-ho entre cometes."
-#: ../yum/__init__.py:1919 ../yum/__init__.py:1962
+#: ../yum/__init__.py:2058 ../yum/__init__.py:2101
msgid "Invalid version flag"
msgstr "Versió de flag invà lida"
-#: ../yum/__init__.py:1934 ../yum/__init__.py:1938
+#: ../yum/__init__.py:2073 ../yum/__init__.py:2077
#, python-format
msgid "No Package found for %s"
msgstr "No s'ha trobat cap paquet per a %s"
-#: ../yum/__init__.py:2066
+#: ../yum/__init__.py:2276
msgid "Package Object was not a package object instance"
msgstr "L'objecte paquet no era una instà ncia d'objecte paquet"
-#: ../yum/__init__.py:2070
+#: ../yum/__init__.py:2280
msgid "Nothing specified to install"
msgstr "No hi ha res especificat per a instal·lar"
#. only one in there
-#: ../yum/__init__.py:2085
+#: ../yum/__init__.py:2298
#, 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"
-#: ../yum/__init__.py:2091 ../yum/__init__.py:2380
+#: ../yum/__init__.py:2304 ../yum/__init__.py:2680
#, python-format
msgid "No Match for argument: %s"
msgstr "No hi ha cap coincidència per a l'argument: %s"
-#. FIXME - this is where we could check to see if it already installed
-#. for returning better errors
-#: ../yum/__init__.py:2146
+#: ../yum/__init__.py:2370
+#, python-format
+msgid "Package %s installed and not available"
+msgstr "El paquet %s es troba instal·lat però no és disponible"
+
+#: ../yum/__init__.py:2373
msgid "No package(s) available to install"
msgstr "No hi ha cap paquet disponible per a instal·lar"
-#: ../yum/__init__.py:2158
+#: ../yum/__init__.py:2385
#, python-format
msgid "Package: %s - already in transaction set"
msgstr "El paquet: %s - ja està en la transacció"
-#: ../yum/__init__.py:2171
+#: ../yum/__init__.py:2398
#, 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:2178
+#: ../yum/__init__.py:2405
#, 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ó."
+#: ../yum/__init__.py:2415
+#, 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"
+
#. update everything (the easy case)
-#: ../yum/__init__.py:2220
+#: ../yum/__init__.py:2485
msgid "Updating Everything"
msgstr "S'està actualitzant tot"
-#: ../yum/__init__.py:2304
+#: ../yum/__init__.py:2497 ../yum/__init__.py:2602 ../yum/__init__.py:2613
+#: ../yum/__init__.py:2635
+#, 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:2593
#, 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:2377
+#: ../yum/__init__.py:2616 ../yum/__init__.py:2638
+#, 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:2677
#, python-format
msgid "%s"
msgstr "%s"
-#: ../yum/__init__.py:2392
+#: ../yum/__init__.py:2693
msgid "No package matched to remove"
msgstr "No hi ha cap paquet coincident per a esborrar"
-#: ../yum/__init__.py:2426
+#: ../yum/__init__.py:2727
#, python-format
msgid "Cannot open file: %s. Skipping."
msgstr "No es pot obrir el fitxer %s. S'ometrà ."
-#: ../yum/__init__.py:2429
+#: ../yum/__init__.py:2730
#, python-format
msgid "Examining %s: %s"
msgstr "S'està examinant %s: %s"
-#: ../yum/__init__.py:2436
+#: ../yum/__init__.py:2738
+#, 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"
+
+#: ../yum/__init__.py:2746
#, python-format
msgid ""
"Package %s not installed, cannot update it. Run yum install to install it "
@@ -1790,80 +1962,81 @@ msgstr ""
"El paquet %s no està instal·lat; no es pot actualitzar. Executa yum install "
"per a instal·lar-lo."
-#: ../yum/__init__.py:2468
+#: ../yum/__init__.py:2779
#, python-format
msgid "Excluding %s"
msgstr "S'està excloent %s"
-#: ../yum/__init__.py:2473
+#: ../yum/__init__.py:2784
#, python-format
msgid "Marking %s to be installed"
msgstr "S'està marcant %s per a ser instal·lat"
-#: ../yum/__init__.py:2479
+#: ../yum/__init__.py:2790
#, python-format
msgid "Marking %s as an update to %s"
msgstr "S'està marcant %s com a actualització de %s"
-#: ../yum/__init__.py:2486
+#: ../yum/__init__.py:2797
#, python-format
msgid "%s: does not update installed package."
msgstr "%s no actualitza el paquet instal·lat."
-#: ../yum/__init__.py:2504
+#: ../yum/__init__.py:2815
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"
-#: ../yum/__init__.py:2515
+#: ../yum/__init__.py:2826
#, 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:2522
+#: ../yum/__init__.py:2833
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:2570
+#: ../yum/__init__.py:2868
#, python-format
msgid "Retrieving GPG key from %s"
msgstr "S'està recuperant la clau GPG des de %s"
-#: ../yum/__init__.py:2576
+#: ../yum/__init__.py:2874
msgid "GPG key retrieval failed: "
msgstr "La recuperació de la clau GPG ha fallat: "
-#: ../yum/__init__.py:2589
-msgid "GPG key parsing failed: "
-msgstr "L'Ã nalisi de la clau GPG ha fallat: "
+#: ../yum/__init__.py:2885
+#, 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:2593
+#: ../yum/__init__.py:2917
#, 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:2598
+#: ../yum/__init__.py:2922 ../yum/__init__.py:2984
#, 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:2610
+#: ../yum/__init__.py:2939
msgid "Not installing key"
msgstr "No s'està instal·lant la clau"
-#: ../yum/__init__.py:2616
+#: ../yum/__init__.py:2945
#, python-format
msgid "Key import failed (code %d)"
msgstr "L'importació de la clau ha fallat (codi %d)"
-#: ../yum/__init__.py:2619
+#: ../yum/__init__.py:2946 ../yum/__init__.py:3005
msgid "Key imported successfully"
msgstr "La clau s'ha importat amb èxit"
-#: ../yum/__init__.py:2624
+#: ../yum/__init__.py:2951 ../yum/__init__.py:3010
#, python-format
msgid ""
"The GPG keys listed for the \"%s\" repository are already installed but they "
@@ -1875,53 +2048,73 @@ msgstr ""
"Comproveu que les URL de clau correctes estan configurades per a aquest "
"repositori."
-#: ../yum/__init__.py:2633
+#: ../yum/__init__.py:2960
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:2707
+#: ../yum/__init__.py:2979
+#, 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:2999
+#, python-format
+msgid "Not installing key for repo %s"
+msgstr "No s'està instal·lant la clau per al repositori %s"
+
+#: ../yum/__init__.py:3004
+msgid "Key import failed"
+msgstr "Ha fallat la importació de la clau"
+
+#: ../yum/__init__.py:3095
msgid "Unable to find a suitable mirror."
msgstr "No s'ha pogut trobar un servidor rèplica và lid."
-#: ../yum/__init__.py:2709
+#: ../yum/__init__.py:3097
msgid "Errors were encountered while downloading packages."
msgstr "S'han trobat errors descarregant paquets."
-#: ../yum/__init__.py:2774
+#: ../yum/__init__.py:3161
msgid "Test Transaction Errors: "
msgstr "Errors en la transacció de prova: "
#. Mostly copied from YumOutput._outKeyValFill()
-#: ../yum/plugins.py:195
+#: ../yum/plugins.py:199
msgid "Loaded plugins: "
msgstr "Connectors carregats: "
-#: ../yum/plugins.py:206
+#: ../yum/plugins.py:213 ../yum/plugins.py:219
#, python-format
msgid "No plugin match for: %s"
msgstr "No hi ha cap connector que coincideixi amb: %s"
-#: ../yum/plugins.py:219
+#: ../yum/plugins.py:249
#, python-format
msgid "\"%s\" plugin is disabled"
msgstr "El connector \"%s\" està deshabilitat"
-#: ../yum/plugins.py:231
+#. Give full backtrace:
+#: ../yum/plugins.py:261
+#, python-format
+msgid "Plugin \"%s\" can't be imported"
+msgstr "No s'ha pogut importar el connector «%s»"
+
+#: ../yum/plugins.py:268
#, 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:235
+#: ../yum/plugins.py:273
#, 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:264
+#: ../yum/plugins.py:306
#, python-format
msgid "Loading \"%s\" plugin"
msgstr "S'està carregant el connector \"%s\""
-#: ../yum/plugins.py:271
+#: ../yum/plugins.py:313
#, python-format
msgid ""
"Two or more plugins with the name \"%s\" exist in the plugin search path"
@@ -1929,22 +2122,26 @@ msgstr ""
"Existeixen dos o més connectors amb el mateix nom \"%s\" en el camà de cerca "
"de connectors"
-#: ../yum/plugins.py:291
+#: ../yum/plugins.py:333
#, 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:294
+#: ../yum/plugins.py:336
#, 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:448
+#: ../yum/plugins.py:490
msgid "registration of commands not supported"
msgstr "l'enregistrament d'ordres no està suportat"
+#: ../yum/rpmtrans.py:78
+msgid "Repackaging"
+msgstr "Reempaquetant"
+
#: ../rpmUtils/oldUtils.py:26
#, python-format
msgid "Header cannot be opened or does not match %s, %s."
@@ -1975,3 +2172,36 @@ msgstr "Capçalera danyada %s"
#, python-format
msgid "Error opening rpm %s - error %s"
msgstr "Error en obrir rpm %s - error %s"
+
+#~ msgid "Could not find update match for %s"
+#~ msgstr "No s'ha pogut trobar cap actualització per a %s"
+
+#~ msgid ""
+#~ "Failure finding best provider of %s for %s, exceeded maximum loop length"
+#~ msgstr ""
+#~ "S'ha produït un error trobant el millor proveïdor de %s per a %s, el "
+#~ "bucle ha excedit la longitud mà xima"
+
+#~ msgid "Comparing best: %s to po: %s"
+#~ msgstr "S'està comparant el millor: %s amb po: %s"
+
+#~ msgid "Same: best %s == po: %s"
+#~ msgstr "Igual: el millor %s == po: %s"
+
+#~ msgid "po %s obsoletes best: %s"
+#~ msgstr "el po %s deixa com a obsolet el millor: %s"
+
+#~ msgid "po %s shares a sourcerpm with %s"
+#~ msgstr "el po %s comparteix un rpm origen amb %s"
+
+#~ msgid "best %s shares a sourcerpm with %s"
+#~ msgstr "el millor %s comparteix un rpm origen amb %s"
+
+#~ msgid "po %s shares more of the name prefix with %s"
+#~ msgstr "el po %s comparteix més que el prefix del nom amb %s"
+
+#~ msgid "po %s has a shorter name than best %s"
+#~ msgstr "el po %s té un nom més curt que el millor %s"
+
+#~ msgid "bestpkg %s shares more of the name prefix with %s"
+#~ msgstr "el millor paquet %s comparteix més el prefix del nom amb %s"
commit 79188c0f945b2b40bf5e88de90304abd218baf39
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date: Sun Oct 19 15:57:49 2008 +0200
rebuild POTFILES.in and *.po files
diff --git a/po/POTFILES.in b/po/POTFILES.in
index c7b02c9..081d601 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -18,6 +18,7 @@ yum/i18n.py
yum/__init__.py
yum/logginglevels.py
yum/mdparser.py
+yum/metalink.py
yum/misc.py
yum/packageSack.py
yum/packages.py
diff --git a/po/ca.po b/po/ca.po
index 0e21ad5..c2deee6 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -27,7 +27,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
#: ../callback.py:48 ../output.py:512
msgid "Updating"
@@ -125,12 +125,14 @@ msgstr " Es necessiten almenys %dMB al sistema de fitxers %s.\n"
msgid ""
"Error Summary\n"
"-------------\n"
-msgstr "Resum d'errors\n"
+msgstr ""
+"Resum d'errors\n"
"-------------\n"
#: ../cli.py:317
msgid "Trying to run the transaction but nothing to do. Exiting."
-msgstr "S'ha intentat executar la transacció però no hi ha res a fer. S'està sortint."
+msgstr ""
+"S'ha intentat executar la transacció però no hi ha res a fer. S'està sortint."
#: ../cli.py:347
msgid "Exiting on user Command"
@@ -180,7 +182,8 @@ msgstr "S'està executant la transacció"
msgid ""
"Refusing to automatically import keys when running unattended.\n"
"Use \"-y\" to override."
-msgstr "No s'importaran automà ticament les claus en una execució desatesa.\n"
+msgstr ""
+"No s'importaran automà ticament les claus en una execució desatesa.\n"
"Feu servir \"-y\" per a importar les claus."
#: ../cli.py:491
@@ -235,7 +238,9 @@ msgstr "No s'ha proporcionat cap paquet"
#: ../cli.py:654
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"
+msgstr ""
+"S'està comparant els paquets per a la llista de paquets amb els arguments de "
+"l'usuari"
#: ../cli.py:701
#, python-format
@@ -298,7 +303,9 @@ msgstr "AvÃs: El grup %s no existeix"
#: ../cli.py:853
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:855
#, python-format
@@ -333,7 +340,9 @@ msgstr "S'està descartant el paquet no comparable %s.%s"
#: ../cli.py:952
#, 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:971
#, python-format
@@ -390,7 +399,8 @@ msgstr "habilita un o més repositoris (es permeten carà cters de reemplaçament
#: ../cli.py:1133
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:1136
msgid "exclude package(s) by name or glob"
@@ -530,8 +540,8 @@ msgstr "Llicència : %s"
msgid "Description: "
msgstr "Descripció: "
-#: ../output.py:351
# REMEMBER to Translate [Y/N] to the current locale
+#: ../output.py:351
msgid "Is this ok [y/N]: "
msgstr "Ãs correcte [s/N]: "
@@ -674,7 +684,6 @@ msgstr ""
"Instal·la %5.5s paquets\n"
"Actualitza %5.5s paquets\n"
"Esborra %5.5s paquets\n"
-""
#: ../output.py:554
msgid "Removed"
@@ -704,8 +713,8 @@ msgid ""
"seconds 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 per a sortir.\n"
#: ../output.py:628
msgid "user interrupt"
@@ -738,7 +747,8 @@ msgstr "--> S'està executant la transacció de prova"
#: ../output.py:658
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:663
msgid "--> Finished Dependency Resolution"
@@ -761,12 +771,16 @@ msgstr "--> S'està processant el conflicte: %s té un conflicte amb %s"
#: ../output.py:682
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:686
#, 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à descarregant la capçalera per a %s per a empaquetar dins de la "
+"transacció de prova."
#: ../yumcommands.py:36
msgid "You need to be root to perform this command."
@@ -790,7 +804,8 @@ 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"
+"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"
"les claus per als paquets paquets que desitdeu instal·lar i instal·lar-les.\n"
@@ -802,7 +817,8 @@ 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 distribuidor o proveïdor de paquets.\n"
+"Per a més informació contacteu el vostre distribuidor o proveïdor de "
+"paquets.\n"
#: ../yumcommands.py:63
#, python-format
@@ -843,7 +859,8 @@ msgstr "El fitxer %s donat com a argument a l'intèrpret d'ordres no existeix."
#: ../yumcommands.py:115
msgid "Error: more than one file given as argument to shell."
-msgstr "Error: s'ha donat més d'un fitxer com a arguments per a l'intèrpret d'ordres."
+msgstr ""
+"Error: s'ha donat més d'un fitxer com a arguments per a l'intèrpret d'ordres."
#: ../yumcommands.py:156
msgid "PACKAGE..."
@@ -943,7 +960,8 @@ msgstr "Genera les metadades de la memòria cau"
#: ../yumcommands.py:390
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:391
msgid "This may take a while depending on the speed of this computer"
@@ -1143,7 +1161,8 @@ msgstr "doTsSetup() desapareixerà en una futura versió de Yum.\n"
#: ../yum/depsolve.py:95
msgid "Setting up TransactionSets before config class is up"
-msgstr "S'està configurant TransactionSets abans que la classe de configuració "
+msgstr ""
+"S'està configurant TransactionSets abans que la classe de configuració "
"estigui iniciada"
#: ../yum/depsolve.py:136
@@ -1193,7 +1212,8 @@ msgstr "%s requereix: %s"
#: ../yum/depsolve.py:312
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:322
#, python-format
@@ -1223,7 +1243,8 @@ msgstr "TSINFO: el paquet %s requereix %s marcat per a esborrar"
#: ../yum/depsolve.py:372
#, 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:375
#, python-format
@@ -1244,17 +1265,22 @@ msgstr "No es pot resoldre el requeriment %s per a %s"
#: ../yum/depsolve.py:434
#, 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à "
+"esborrant."
#: ../yum/depsolve.py:449
#, 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:460
#, 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:468 ../yum/depsolve.py:527
#, python-format
@@ -1271,7 +1297,8 @@ msgstr "%s ja es troba en ts, s'està ometent"
msgid ""
"Failure finding best provider of %s for %s, exceeded maximum loop length"
msgstr ""
-"S'ha produït un error trobant el millor proveïdor de %s per a %s, el bucle ha excedit la longitud mà xima"
+"S'ha produït un error trobant el millor proveïdor de %s per a %s, el bucle "
+"ha excedit la longitud mà xima"
#: ../yum/depsolve.py:537
#, python-format
@@ -1528,7 +1555,9 @@ msgstr "No coincideix la suma de verificació del paquet"
#: ../yum/__init__.py:1036
#, 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:1042
#, python-format
@@ -1538,7 +1567,8 @@ msgstr "s'està utilitzant la còpia local de %s"
#: ../yum/__init__.py:1061
#, python-format
msgid "Insufficient space in download directory %s to download"
-msgstr "No hi ha espai suficient al directori de descà rregues %s per a descarregar"
+msgstr ""
+"No hi ha espai suficient al directori de descà rregues %s per a descarregar"
#: ../yum/__init__.py:1094
msgid "Header is not complete."
@@ -1549,7 +1579,8 @@ msgstr "La capçalera no està completa."
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"
+"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"
#: ../yum/__init__.py:1189
#, python-format
@@ -1665,7 +1696,8 @@ msgstr "No s'ha pogut trobar la tupla de paquets %s al sac de paquets"
#: ../yum/__init__.py:1917 ../yum/__init__.py:1960
msgid "Invalid versioned dependency string, try quoting it."
-msgstr "La cadena de versió de dependència és invà lida, proveu-ho entre cometes."
+msgstr ""
+"La cadena de versió de dependència és invà lida, proveu-ho entre cometes."
#: ../yum/__init__.py:1919 ../yum/__init__.py:1962
msgid "Invalid version flag"
@@ -1688,7 +1720,9 @@ msgstr "No hi ha res especificat per a instal·lar"
#: ../yum/__init__.py:2085
#, 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:2091 ../yum/__init__.py:2380
#, python-format
@@ -1714,7 +1748,9 @@ msgstr "El paquet %s ja es troba instal·lat i en l'última versió."
#: ../yum/__init__.py:2178
#, 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:2220
@@ -1750,7 +1786,9 @@ msgstr "S'està examinant %s: %s"
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. Executa yum install per a instal·lar-lo."
+msgstr ""
+"El paquet %s no està instal·lat; no es pot actualitzar. Executa yum install "
+"per a instal·lar-lo."
#: ../yum/__init__.py:2468
#, python-format
@@ -1774,7 +1812,8 @@ msgstr "%s no actualitza el paquet instal·lat."
#: ../yum/__init__.py:2504
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 esborrar"
#: ../yum/__init__.py:2515
#, python-format
@@ -1783,7 +1822,9 @@ msgstr "El paquet %s permet múltiples instal·lacions, s'està ometent"
#: ../yum/__init__.py:2522
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"
+msgstr ""
+"Hi ha un problema en reinstal·lar: no hi ha cap paquet marcat per a "
+"instal·lar"
#: ../yum/__init__.py:2570
#, python-format
@@ -1829,9 +1870,10 @@ msgid ""
"are not correct for this package.\n"
"Check that the correct key URLs are configured for this repository."
msgstr ""
-"Les claus GPG llistades pel repositori \"%s\" ja estan instal·lades però "
-"no són correctes per a aquest paquet.\n"
-"Comproveu que les URL de clau correctes estan configurades per a aquest repositori."
+"Les claus GPG llistades pel repositori \"%s\" ja estan instal·lades però no "
+"són correctes per a aquest paquet.\n"
+"Comproveu que les URL de clau correctes estan configurades per a aquest "
+"repositori."
#: ../yum/__init__.py:2633
msgid "Import of key(s) didn't help, wrong key(s)?"
@@ -1884,7 +1926,8 @@ msgstr "S'està carregant el connector \"%s\""
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"
+"Existeixen dos o més connectors amb el mateix nom \"%s\" en el camà de cerca "
+"de connectors"
#: ../yum/plugins.py:291
#, python-format
@@ -1914,7 +1957,9 @@ msgstr "falla la comprobació md5 per al RPM %s"
#: ../rpmUtils/oldUtils.py:144
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:174
msgid "Got an empty Header, something has gone wrong"
@@ -1930,4 +1975,3 @@ msgstr "Capçalera danyada %s"
#, python-format
msgid "Error opening rpm %s - error %s"
msgstr "Error en obrir rpm %s - error %s"
-
diff --git a/po/da.po b/po/da.po
index 38d0e7a..2e81805 100644
--- a/po/da.po
+++ b/po/da.po
@@ -4,8 +4,8 @@
# tim <timlau at fedoraproject.org>, 2008.
# , fuzzy
# tim <timlau at fedoraproject.org>, 2008.
-#
-#
+#
+#
msgid ""
msgstr ""
"Project-Id-Version: yum 3.2.10\n"
@@ -16,7 +16,7 @@ msgstr ""
"Language-Team: Danish <dansk at klid.dk>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit"
+"Content-Transfer-Encoding: 8bit\n"
#: ../callback.py:48 ../output.py:512
msgid "Updating"
@@ -1773,7 +1773,8 @@ msgstr "Problem med geninstallation, ingen pakke fundet til at blive slettet"
#: ../yum/__init__.py:2515
#, python-format
msgid "Package %s is allowed multiple installs, skipping"
-msgstr "Springer pakken %s over, da den er tilladt til installering i flere verisoner"
+msgstr ""
+"Springer pakken %s over, da den er tilladt til installering i flere verisoner"
#: ../yum/__init__.py:2522
msgid "Problem in reinstall: no package matched to install"
diff --git a/po/de.po b/po/de.po
index adc5e06..411eedf 100644
--- a/po/de.po
+++ b/po/de.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: yum\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-08-27 21:26+0000\n"
+"POT-Creation-Date: 2008-03-25 11:29+0100\n"
"PO-Revision-Date: 2008-09-11 15:51+0100\n"
"Last-Translator: Fabian Affolter <fab at fedoraproject.org>\n"
"Language-Team: German <fedora-trans-de at redhat.com>\n"
@@ -15,35 +15,23 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: ../callback.py:48
-#: ../output.py:516
-#: ../yum/rpmtrans.py:71
+#: ../callback.py:48 ../output.py:512
msgid "Updating"
msgstr "Aktualisieren"
#: ../callback.py:49
-#: ../yum/rpmtrans.py:72
msgid "Erasing"
msgstr "Löschen"
-#: ../callback.py:50
-#: ../callback.py:51
-#: ../callback.py:53
-#: ../output.py:515
-#: ../yum/rpmtrans.py:73
-#: ../yum/rpmtrans.py:74
-#: ../yum/rpmtrans.py:76
+#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:511
msgid "Installing"
msgstr "Installieren"
-#: ../callback.py:52
-#: ../callback.py:58
-#: ../yum/rpmtrans.py:75
+#: ../callback.py:52 ../callback.py:58
msgid "Obsoleted"
msgstr "Veraltet"
-#: ../callback.py:54
-#: ../output.py:562
+#: ../callback.py:54 ../output.py:558
msgid "Updated"
msgstr "Aktualisiert"
@@ -51,10 +39,7 @@ msgstr "Aktualisiert"
msgid "Erased"
msgstr "Gelöscht"
-#: ../callback.py:56
-#: ../callback.py:57
-#: ../callback.py:59
-#: ../output.py:560
+#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:556
msgid "Installed"
msgstr "Installiert"
@@ -77,58 +62,53 @@ msgstr "Fehler: Ungültiger Ausgabe-Zustand: %s for %s"
msgid "Erased: %s"
msgstr "Gelöscht: %s"
-#: ../callback.py:217
-#: ../output.py:517
+#: ../callback.py:217 ../output.py:513
msgid "Removing"
msgstr "Entfernen"
#: ../callback.py:219
-#: ../yum/rpmtrans.py:77
msgid "Cleanup"
msgstr "Aufräumen"
-#: ../cli.py:105
+#: ../cli.py:103
#, python-format
msgid "Command \"%s\" already defined"
msgstr "Befehl \"%s\" ist bereits definiert"
-#: ../cli.py:117
+#: ../cli.py:115
msgid "Setting up repositories"
msgstr "Repositories werden eingerichtet"
-#: ../cli.py:128
+#: ../cli.py:126
msgid "Reading repository metadata in from local files"
msgstr "Lese Repository-Metadaten aus lokalen Dateien ein"
-#: ../cli.py:186
-#: ../utils.py:71
+#: ../cli.py:183 ../utils.py:72
#, python-format
msgid "Config Error: %s"
msgstr "Konfigurationsfehler: %s"
-#: ../cli.py:189
-#: ../cli.py:1081
-#: ../utils.py:74
+#: ../cli.py:186 ../cli.py:1068 ../utils.py:75
#, python-format
msgid "Options Error: %s"
msgstr "Optionenfehler: %s"
-#: ../cli.py:232
+#: ../cli.py:229
msgid "You need to give some command"
msgstr "Sie müssen ein paar Befehle eingeben"
-#: ../cli.py:274
+#: ../cli.py:271
msgid "Disk Requirements:\n"
msgstr "Festplattenplatz-Anforderungen:\n"
-#: ../cli.py:276
+#: ../cli.py:273
#, python-format
msgid " At least %dMB needed on the %s filesystem.\n"
msgstr " Mindestens %d MB werden auf dem Dateisystem %s benötigt.\n"
#. TODO: simplify the dependency errors?
#. Fixup the summary
-#: ../cli.py:281
+#: ../cli.py:278
msgid ""
"Error Summary\n"
"-------------\n"
@@ -136,380 +116,355 @@ msgstr ""
"Fehlerzusammenfassung\n"
"-------------\n"
-#: ../cli.py:320
+#: ../cli.py:317
msgid "Trying to run the transaction but nothing to do. Exiting."
msgstr "Versuche Transaktion auzuführen, aber es ist nichts zu tun. Beende."
-#: ../cli.py:350
+#: ../cli.py:347
msgid "Exiting on user Command"
msgstr "Beende auf Benutzer-Befehl hin"
-#: ../cli.py:354
+#: ../cli.py:351
msgid "Downloading Packages:"
msgstr "Lade Pakete herunter:"
-#: ../cli.py:359
+#: ../cli.py:356
msgid "Error Downloading Packages:\n"
msgstr "Fehler beim Herunterladen der Pakete:\n"
-#: ../cli.py:373
-#: ../yum/__init__.py:2826
+#: ../cli.py:370 ../yum/__init__.py:2746
msgid "Running rpm_check_debug"
msgstr "Führe rpm_check_debug durch"
-#: ../cli.py:376
-#: ../yum/__init__.py:2829
+#: ../cli.py:373 ../yum/__init__.py:2749
msgid "ERROR with rpm_check_debug vs depsolve:"
msgstr "FEHLER mit rpm_check_debug gegen depsolve:"
-#: ../cli.py:380
-#: ../yum/__init__.py:2831
+#: ../cli.py:377 ../yum/__init__.py:2751
msgid "Please report this error in bugzilla"
msgstr "Bitte melden Sie diesen Fehler in Bugzilla"
-#: ../cli.py:386
+#: ../cli.py:383
msgid "Running Transaction Test"
msgstr "Führe Verarbeitungsstest durch"
-#: ../cli.py:402
+#: ../cli.py:399
msgid "Finished Transaction Test"
msgstr "Verarbeitungstest beendet"
-#: ../cli.py:404
+#: ../cli.py:401
msgid "Transaction Check Error:\n"
msgstr "Prüffehler bei Verarbeitung:\n"
-#: ../cli.py:411
+#: ../cli.py:408
msgid "Transaction Test Succeeded"
msgstr "Verarbeitungstest erfolgreich"
-#: ../cli.py:432
+#: ../cli.py:429
msgid "Running Transaction"
msgstr "Führe Verarbeitung durch"
-#: ../cli.py:462
+#: ../cli.py:459
msgid ""
"Refusing to automatically import keys when running unattended.\n"
"Use \"-y\" to override."
msgstr ""
-"Verweigere automatischen Import der Schlüssel, wenn unbeaufsichtigt ausgeführt.\n"
+"Verweigere automatischen Import der Schlüssel, wenn unbeaufsichtigt "
+"ausgeführt.\n"
"Benutze \"-y\" zum Ãberschreiben."
-#: ../cli.py:494
+#: ../cli.py:491
msgid "Parsing package install arguments"
msgstr "Analysiere Installationsargumente des Pakets"
-#: ../cli.py:504
+#: ../cli.py:501
#, python-format
msgid "No package %s available."
msgstr "Kein Paket %s verfügbar."
-#: ../cli.py:508
-#: ../cli.py:626
-#: ../yumcommands.py:790
+#: ../cli.py:505 ../cli.py:623 ../yumcommands.py:748
msgid "Package(s) to install"
msgstr "Paket(e) zum Installieren"
-#: ../cli.py:509
-#: ../cli.py:627
-#: ../yumcommands.py:147
-#: ../yumcommands.py:791
+#: ../cli.py:506 ../cli.py:624 ../yumcommands.py:146 ../yumcommands.py:749
msgid "Nothing to do"
msgstr "Nichts zu tun"
-#: ../cli.py:539
-#: ../yum/__init__.py:2275
-#: ../yum/__init__.py:2375
-#: ../yum/__init__.py:2387
+#: ../cli.py:536 ../yum/__init__.py:2232 ../yum/__init__.py:2311
+#: ../yum/__init__.py:2340
#, python-format
msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
msgstr "Aktualisiere Paket nicht, da es bereits veraltet ist: %s.%s %s:%s-%s"
-#: ../cli.py:571
+#: ../cli.py:568
#, python-format
msgid "Could not find update match for %s"
msgstr "Kann keine Aktualisierungsübereinstimmung finden für %s"
-#: ../cli.py:583
+#: ../cli.py:580
#, python-format
msgid "%d packages marked for Update"
msgstr "%d Pakete zur Aktualisierung markiert"
-#: ../cli.py:586
+#: ../cli.py:583
msgid "No Packages marked for Update"
msgstr "Keine Pakete für die Aktualisierung angegeben"
-#: ../cli.py:602
+#: ../cli.py:599
#, python-format
msgid "%d packages marked for removal"
msgstr "%d Pakete für die Entfernung angegeben"
-#: ../cli.py:605
+#: ../cli.py:602
msgid "No Packages marked for removal"
msgstr "Keine Pakete für die Entfernung angegeben"
-#: ../cli.py:617
+#: ../cli.py:614
msgid "No Packages Provided"
msgstr "Keine Pakete bereitgestellt"
-#: ../cli.py:657
+#: ../cli.py:654
msgid "Matching packages for package list to user args"
msgstr "Ãbereinstimmende Pakete für Paket-Liste nach Benutzer-Argument"
-#: ../cli.py:705
+#: ../cli.py:701
#, python-format
msgid "Warning: No matches found for: %s"
msgstr "Warnung: Keine Ãbereinstimmung gefunden für: %s"
-#: ../cli.py:708
+#: ../cli.py:704
msgid "No Matches found"
msgstr "Keine Ãbereinstimmungen gefunden"
-#: ../cli.py:749
+#: ../cli.py:745
#, python-format
msgid "No Package Found for %s"
msgstr "Kein Paket gefunden für %s"
# Räume auf, säubere...weiss jemand eine Ãbersetzung, welche nicht an den Staubsauger erinnert. Fabian
-#: ../cli.py:761
+#: ../cli.py:757
msgid "Cleaning up Everything"
msgstr "Räume alles auf"
-#: ../cli.py:775
+#: ../cli.py:771
msgid "Cleaning up Headers"
msgstr "Räume Header auf"
-#: ../cli.py:778
+#: ../cli.py:774
msgid "Cleaning up Packages"
msgstr "Räume Pakete auf"
-#: ../cli.py:781
+#: ../cli.py:777
msgid "Cleaning up xml metadata"
msgstr "Räume XML-Metadaten auf"
-#: ../cli.py:784
+#: ../cli.py:780
msgid "Cleaning up database cache"
msgstr "Räume Datenbank-Speicher auf"
-#: ../cli.py:787
+#: ../cli.py:783
msgid "Cleaning up expire-cache metadata"
msgstr "Räume Metadaten für abgelaufene Caches auf"
-#: ../cli.py:790
+#: ../cli.py:786
msgid "Cleaning up plugins"
msgstr "Räume Plugins auf"
-#: ../cli.py:812
+#: ../cli.py:807
msgid "Installed Groups:"
msgstr "Installierte Gruppen:"
-#: ../cli.py:819
+#: ../cli.py:814
msgid "Available Groups:"
msgstr "Verfügbare Gruppen:"
-#: ../cli.py:825
+#: ../cli.py:820
msgid "Done"
msgstr "Fertig"
-#: ../cli.py:836
-#: ../cli.py:854
-#: ../cli.py:860
+#: ../cli.py:829 ../cli.py:841 ../cli.py:847
#, python-format
msgid "Warning: Group %s does not exist."
msgstr "Warnung: Gruppe %s existiert nicht."
-#: ../cli.py:864
+#: ../cli.py:853
msgid "No packages in any requested group available to install or update"
-msgstr "Keine Pakete in irgendeiner Gruppe verfügbar zum Installieren oder Aktualisieren"
+msgstr ""
+"Keine Pakete in irgendeiner Gruppe verfügbar zum Installieren oder "
+"Aktualisieren"
-#: ../cli.py:866
+#: ../cli.py:855
#, python-format
msgid "%d Package(s) to Install"
msgstr "%d Paket(e) zum Installieren"
-#: ../cli.py:876
+#: ../cli.py:865
#, python-format
msgid "No group named %s exists"
msgstr "Keine Gruppe existiert mit dem Namen %s"
-#: ../cli.py:882
+#: ../cli.py:871
msgid "No packages to remove from groups"
msgstr "Keine Pakete zum Entfernen aus dem Gruppen gefunden"
-#: ../cli.py:884
+#: ../cli.py:873
#, python-format
msgid "%d Package(s) to remove"
msgstr "%d Paket(e) zum Entfernen"
-#: ../cli.py:926
+#: ../cli.py:915
#, python-format
msgid "Package %s is already installed, skipping"
msgstr "Paket %s ist bereits installiert, überspringe"
-#: ../cli.py:937
+#: ../cli.py:926
#, python-format
msgid "Discarding non-comparable pkg %s.%s"
msgstr "Verwerfe nicht vergleichbare Pakete %s.%s"
#. we've not got any installed that match n or n+a
-#: ../cli.py:963
+#: ../cli.py:952
#, python-format
msgid "No other %s installed, adding to list for potential install"
-msgstr "Kein anderes %s installiert, füge es zur Liste für eine potentielle Installation hinzu"
+msgstr ""
+"Kein anderes %s installiert, füge es zur Liste für eine potentielle "
+"Installation hinzu"
-#: ../cli.py:982
+#: ../cli.py:971
#, python-format
msgid "Command line error: %s"
msgstr "Kommandozeilen-Fehler: %s"
-#: ../cli.py:994
-#, python-format
-msgid ""
-"\n"
-"\n"
-"%s: %s option requires an argument"
-msgstr ""
-"\n"
-"\n"
-"%s: %s Option benötigt ein Argument"
-
-#: ../cli.py:1123
-msgid "show this help message and exit"
-msgstr "Hilfeinformation anzeigen und beenden"
-
-#: ../cli.py:1127
+#: ../cli.py:1101
msgid "be tolerant of errors"
msgstr "fehlertolerant sein"
-#: ../cli.py:1129
+#: ../cli.py:1103
msgid "run entirely from cache, don't update cache"
-msgstr "laufe komplett aus dem Zwischenspeicher, aktualisiere Zwischenspeicher nicht"
+msgstr ""
+"laufe komplett aus dem Zwischenspeicher, aktualisiere Zwischenspeicher nicht"
-#: ../cli.py:1131
+#: ../cli.py:1105
msgid "config file location"
msgstr "Ort der Konfigurationsdatei"
-#: ../cli.py:1133
+#: ../cli.py:1107
msgid "maximum command wait time"
msgstr "maximale Befehlswartezeit"
-#: ../cli.py:1135
+#: ../cli.py:1109
msgid "debugging output level"
msgstr "Debugging-Ausgabe-Stufe"
-#: ../cli.py:1139
+#: ../cli.py:1113
msgid "show duplicates, in repos, in list/search commands"
msgstr "Zeige Duplikate, in Repos, in Listen/Suchen-Befehlen"
-#: ../cli.py:1141
+#: ../cli.py:1115
msgid "error output level"
msgstr "Fehler-Ausgabe-Stufe"
-#: ../cli.py:1144
+#: ../cli.py:1118
msgid "quiet operation"
msgstr "Stiller Betrieb"
-#: ../cli.py:1146
-msgid "verbose operation"
-msgstr "Wortreicher Betrieb"
-
-#: ../cli.py:1148
+#: ../cli.py:1122
msgid "answer yes for all questions"
msgstr "Beantworte alle Fragen mit 'ja'"
-#: ../cli.py:1150
+#: ../cli.py:1124
msgid "show Yum version and exit"
msgstr "Versionsinformationen anzeigen und Programm beenden"
-#: ../cli.py:1151
+#: ../cli.py:1125
msgid "set install root"
msgstr "Wurzel-Installationsverzeichnis setzen"
-#: ../cli.py:1155
+#: ../cli.py:1129
msgid "enable one or more repositories (wildcards allowed)"
msgstr "aktiviere eines oder mehrere Repositories (Wildcards erlaubt)"
-#: ../cli.py:1159
+#: ../cli.py:1133
msgid "disable one or more repositories (wildcards allowed)"
msgstr "deaktiviere eines oder mehrere Repositories (Wildcards erlaubt)"
-#: ../cli.py:1162
+#: ../cli.py:1136
msgid "exclude package(s) by name or glob"
msgstr "schliesse Paket(e) nach Namen oder global aus"
-#: ../cli.py:1164
+#: ../cli.py:1138
msgid "disable exclude from main, for a repo or for everything"
msgstr "deaktiviere Ausschluss von 'main', einem Repository oder allem"
-#: ../cli.py:1167
+#: ../cli.py:1141
msgid "enable obsoletes processing during updates"
msgstr "aktiviere veraltetes Verarbeiten während Aktualisierung"
-#: ../cli.py:1169
+#: ../cli.py:1143
msgid "disable Yum plugins"
msgstr "deaktiviere Yum-Plugins"
-#: ../cli.py:1171
+#: ../cli.py:1145
msgid "disable gpg signature checking"
msgstr "deaktiviere GPG-Signatur-Prüfung"
-#: ../cli.py:1173
+#: ../cli.py:1147
msgid "disable plugins by name"
msgstr "deaktiviere Plugins nach Namen"
-#: ../cli.py:1176
+#: ../cli.py:1150
msgid "skip packages with depsolving problems"
msgstr "überspringe Pakete mit Abhängigkeitsauflösungsproblemen"
-#: ../output.py:228
+#: ../output.py:229
msgid "Jan"
msgstr "Jan"
-#: ../output.py:228
+#: ../output.py:229
msgid "Feb"
msgstr "Feb"
-#: ../output.py:228
+#: ../output.py:229
msgid "Mar"
msgstr "Mär"
-#: ../output.py:228
+#: ../output.py:229
msgid "Apr"
msgstr "Apr"
-#: ../output.py:228
+#: ../output.py:229
msgid "May"
msgstr "Mai"
-#: ../output.py:228
+#: ../output.py:229
msgid "Jun"
msgstr "Jun"
-#: ../output.py:229
+#: ../output.py:230
msgid "Jul"
msgstr "Jul"
-#: ../output.py:229
+#: ../output.py:230
msgid "Aug"
msgstr "Aug"
-#: ../output.py:229
+#: ../output.py:230
msgid "Sep"
msgstr "Sep"
-#: ../output.py:229
+#: ../output.py:230
msgid "Oct"
msgstr "Okt"
-#: ../output.py:229
+#: ../output.py:230
msgid "Nov"
msgstr "Nov"
-#: ../output.py:229
+#: ../output.py:230
msgid "Dec"
msgstr "Dez"
-#: ../output.py:239
+#: ../output.py:240
msgid "Trying other mirror."
msgstr "Versuche anderen Spiegel-Server."
@@ -575,25 +530,23 @@ msgstr "Beschreibung:"
msgid "Is this ok [y/N]: "
msgstr "Ist dies in Ordnung? [j/N] :"
-#: ../output.py:359
-#: ../output.py:362
+#: ../output.py:357 ../output.py:360
msgid "y"
msgstr "j"
-#: ../output.py:359
+#: ../output.py:357
msgid "n"
msgstr "n"
-#: ../output.py:359
-#: ../output.py:362
+#: ../output.py:357 ../output.py:360
msgid "yes"
msgstr "ja"
-#: ../output.py:359
+#: ../output.py:357
msgid "no"
msgstr "nein"
-#: ../output.py:370
+#: ../output.py:367
#, python-format
msgid ""
"\n"
@@ -602,96 +555,96 @@ msgstr ""
"\n"
"Gruppe: %s"
-#: ../output.py:372
+#: ../output.py:369
#, python-format
msgid " Description: %s"
msgstr " Beschreibung: %s"
-#: ../output.py:374
+#: ../output.py:371
msgid " Mandatory Packages:"
msgstr " Obligatorische Pakete:"
-#: ../output.py:379
+#: ../output.py:376
msgid " Default Packages:"
msgstr " Standard-Pakete:"
-#: ../output.py:384
+#: ../output.py:381
msgid " Optional Packages:"
msgstr " Optionale Pakete:"
-#: ../output.py:389
+#: ../output.py:386
msgid " Conditional Packages:"
msgstr " Zwangsbedingte Pakete:"
-#: ../output.py:398
+#: ../output.py:394
#, python-format
msgid "package: %s"
msgstr "Paket: %s"
-#: ../output.py:400
+#: ../output.py:396
msgid " No dependencies for this package"
msgstr " Keine Abhängigkeiten für dieses Paket"
-#: ../output.py:405
+#: ../output.py:401
#, python-format
msgid " dependency: %s"
msgstr " Abhängigkeit: %s"
-#: ../output.py:407
+#: ../output.py:403
msgid " Unsatisfied dependency"
msgstr " Nicht erfüllte Abhängigkeit"
-#: ../output.py:465
+#: ../output.py:461
msgid "Matched from:"
msgstr "Ãbereinstimmung von:"
-#: ../output.py:491
+#: ../output.py:487
msgid "There was an error calculating total download size"
msgstr "Fehler beim Berechnen der Gesamtgrösse der Downloads"
-#: ../output.py:496
+#: ../output.py:492
#, python-format
msgid "Total size: %s"
msgstr "Gesamtgrösse: %s"
-#: ../output.py:499
+#: ../output.py:495
#, python-format
msgid "Total download size: %s"
msgstr "Gesamte Downloadgrösse: %s"
-#: ../output.py:511
+#: ../output.py:507
msgid "Package"
msgstr "Paket"
-#: ../output.py:511
+#: ../output.py:507
msgid "Arch"
msgstr "Arch"
-#: ../output.py:511
+#: ../output.py:507
msgid "Version"
msgstr "Version"
-#: ../output.py:511
+#: ../output.py:507
msgid "Repository"
msgstr "Repository"
-#: ../output.py:511
+#: ../output.py:507
msgid "Size"
msgstr "Grösse"
-#: ../output.py:518
+#: ../output.py:514
msgid "Installing for dependencies"
msgstr "Installiert für Abhängigkeiten"
-#: ../output.py:519
+#: ../output.py:515
msgid "Updating for dependencies"
msgstr "Aktualisiert für Abhängigkeiten"
-#: ../output.py:520
+#: ../output.py:516
msgid "Removing for dependencies"
msgstr "Entfernt für Abhängigkeiten"
-#: ../output.py:532
+#: ../output.py:528
#, python-format
msgid ""
" replacing %s.%s %s\n"
@@ -700,7 +653,7 @@ msgstr ""
" ersetze %s.%s %s\n"
"\n"
-#: ../output.py:540
+#: ../output.py:536
#, python-format
msgid ""
"\n"
@@ -717,106 +670,109 @@ msgstr ""
"Aktualisieren %5.5s Paket(e) \n"
"Enfernen %5.5s Paket(e) \n"
-#: ../output.py:558
+#: ../output.py:554
msgid "Removed"
msgstr "Entfernt"
-#: ../output.py:559
+#: ../output.py:555
msgid "Dependency Removed"
msgstr "Abhängigkeiten entfernt"
-#: ../output.py:561
+#: ../output.py:557
msgid "Dependency Installed"
msgstr "Abhängigkeit installiert"
-#: ../output.py:563
+#: ../output.py:559
msgid "Dependency Updated"
msgstr "Abhängigkeit aktualisiert"
-#: ../output.py:564
+#: ../output.py:560
msgid "Replaced"
msgstr "Ersetzt "
-#: ../output.py:622
+#: ../output.py:618
#, 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 to exit.\n"
msgstr ""
"\n"
-" Aktueller Download abgebrochen, %s unterbreche (ctrl-c) erneut %s innerhalb %s%s%s Sekunden bis Verlassen.\n"
+" Aktueller Download abgebrochen, %s unterbreche (ctrl-c) erneut %s innerhalb "
+"%s%s%s Sekunden bis Verlassen.\n"
-#: ../output.py:632
+#: ../output.py:628
msgid "user interrupt"
msgstr "Benutzer-Unterbrechung"
-#: ../output.py:643
+#: ../output.py:639
msgid "installed"
msgstr "installiert"
-#: ../output.py:644
+#: ../output.py:640
msgid "updated"
msgstr "aktualisiert"
-#: ../output.py:645
+#: ../output.py:641
msgid "obsoleted"
msgstr "veraltet"
-#: ../output.py:646
+#: ../output.py:642
msgid "erased"
msgstr "gelöscht"
# Dies ist das Sorgenkind. So weit ich weiss, werden die Verben von oben bezogen. Eventuell könnte auch eine radikale Ãnderung eine Lösung sein. Fabian
-#: ../output.py:650
+#: ../output.py:646
#, python-format
msgid "---> Package %s.%s %s:%s-%s set to be %s"
msgstr "---> Paket %s.%s %s:%s-%s gesetzt, um %s zu werden"
-#: ../output.py:657
+#: ../output.py:653
msgid "--> Running transaction check"
msgstr "--> Führe Transaktionsprüfung aus"
-#: ../output.py:662
+#: ../output.py:658
msgid "--> Restarting Dependency Resolution with new changes."
msgstr "--> Starte Abhängigkeitsauflösung mit den neuen Ãnderungen neu."
-#: ../output.py:667
+#: ../output.py:663
msgid "--> Finished Dependency Resolution"
msgstr "--> Abhängigkeitsauflösung beendet"
-#: ../output.py:672
+#: ../output.py:668
#, python-format
msgid "--> Processing Dependency: %s for package: %s"
msgstr "--> Verarbeite Abhängigkeiten: %s für Paket: %s"
-#: ../output.py:677
+#: ../output.py:673
#, python-format
msgid "--> Unresolved Dependency: %s"
msgstr "--> Nicht aufgelöste Abhängigkeit: %s"
-#: ../output.py:683
+#: ../output.py:679
#, python-format
msgid "--> Processing Conflict: %s conflicts %s"
msgstr "--> Verarbeite Konflikt: %s kollidiert mit %s"
-#: ../output.py:686
+#: ../output.py:682
msgid "--> Populating transaction set with selected packages. Please wait."
msgstr "--> Fülle Verarbeitungsset mit ausgewählten Paketen. Bitte warten."
-#: ../output.py:690
+#: ../output.py:686
#, python-format
msgid "---> Downloading header for %s to pack into transaction set."
msgstr "---> Lade Header für %s herunter, um ins Verarbeitungsset zu packen."
-#: ../yumcommands.py:37
+#: ../yumcommands.py:36
msgid "You need to be root to perform this command."
msgstr "Sie müssen root sein, um diesen Befehl ausführen zu können."
-#: ../yumcommands.py:44
+#: ../yumcommands.py:43
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"
@@ -829,8 +785,10 @@ msgid ""
"For more information contact your distribution or package provider.\n"
msgstr ""
"\n"
-"Sie haben das Ãberprüfen der Pakete via GPG-Schlüssel aktiviert. Dies ist eine gute Sache. \n"
-"Allerdings haben Sie nicht alle öffentlichen GPG-Schlüssel installiert. Sie müssen die\n"
+"Sie haben das Ãberprüfen der Pakete via GPG-Schlüssel aktiviert. Dies ist "
+"eine gute Sache. \n"
+"Allerdings haben Sie nicht alle öffentlichen GPG-Schlüssel installiert. Sie "
+"müssen die\n"
"gewünschten Schlüssel für die Pakete herunterladen und installieren.\n"
"Sie können dies mit folgendem Befehl machen:\n"
" rpm --import public.gpg.key\n"
@@ -840,268 +798,254 @@ msgstr ""
"für ein Repository, durch die 'gpgkey'-Option in einem Repository-Bereich\n"
"angeben und yum wird ihn für Sie installieren.\n"
"\n"
-"Für weitere Informationen kontaktieren Sie Ihre Distribution oder Ihren Paket-Bereitsteller.\n"
+"Für weitere Informationen kontaktieren Sie Ihre Distribution oder Ihren "
+"Paket-Bereitsteller.\n"
-#: ../yumcommands.py:64
+#: ../yumcommands.py:63
#, python-format
msgid "Error: Need to pass a list of pkgs to %s"
msgstr "Fehler: Muss eine Liste von Paketen an %s übergeben"
-#: ../yumcommands.py:70
+#: ../yumcommands.py:69
msgid "Error: Need an item to match"
msgstr "Fehler: Brauche einen Begriff, der passt"
-#: ../yumcommands.py:76
+#: ../yumcommands.py:75
msgid "Error: Need a group or list of groups"
msgstr "Fehler: Brauche eine Gruppe oder eine Liste von Gruppen"
-#: ../yumcommands.py:85
+#: ../yumcommands.py:84
#, python-format
msgid "Error: clean requires an option: %s"
msgstr "Fehler: Aufräumen benötigt eine Option: %s"
-#: ../yumcommands.py:90
+#: ../yumcommands.py:89
#, python-format
msgid "Error: invalid clean argument: %r"
msgstr "Fehler: Ungültiges Argument für Aufräumen: %r"
-#: ../yumcommands.py:103
+#: ../yumcommands.py:102
msgid "No argument to shell"
msgstr "Kein Argument für Shell"
-#: ../yumcommands.py:106
+#: ../yumcommands.py:105
#, python-format
msgid "Filename passed to shell: %s"
msgstr "Dateinamen an Shell übergeben: %s"
-#: ../yumcommands.py:110
+#: ../yumcommands.py:109
#, python-format
msgid "File %s given as argument to shell does not exist."
msgstr "Datei %s, angegeben als Argument für Shell, existiert nicht."
-#: ../yumcommands.py:116
+#: ../yumcommands.py:115
msgid "Error: more than one file given as argument to shell."
msgstr "Fehler: mehr als eine Datei als Argument an die Shell übergeben."
-#: ../yumcommands.py:157
+#: ../yumcommands.py:156
msgid "PACKAGE..."
msgstr "PAKET..."
-#: ../yumcommands.py:160
+#: ../yumcommands.py:159
msgid "Install a package or packages on your system"
msgstr "Installiere ein Paket oder Pakete auf Ihrem System"
-#: ../yumcommands.py:169
+#: ../yumcommands.py:168
msgid "Setting up Install Process"
msgstr "Einrichten des Installationsprozess"
-#: ../yumcommands.py:180
+#: ../yumcommands.py:179
msgid "[PACKAGE...]"
msgstr "[PAKET...]"
-#: ../yumcommands.py:183
+#: ../yumcommands.py:182
msgid "Update a package or packages on your system"
msgstr "Aktualisiere ein Paket oder Pakete auf Ihrem System"
-#: ../yumcommands.py:191
+#: ../yumcommands.py:190
msgid "Setting up Update Process"
msgstr "Einrichten des Aktualisierungsprozess"
-#: ../yumcommands.py:205
+#: ../yumcommands.py:204
msgid "Display details about a package or group of packages"
msgstr "Zeige Details über ein Paket oder einer Gruppe von Pakete an"
-#: ../yumcommands.py:213
+#: ../yumcommands.py:212
msgid "Installed Packages"
msgstr "Installierte Pakete"
-#: ../yumcommands.py:214
+#: ../yumcommands.py:213
msgid "Available Packages"
msgstr "Verfügbare Pakete"
-#: ../yumcommands.py:215
+#: ../yumcommands.py:214
msgid "Extra Packages"
msgstr "Extra-Pakete"
-#: ../yumcommands.py:216
+#: ../yumcommands.py:215
msgid "Updated Packages"
msgstr "Aktualisierte Pakete"
-#: ../yumcommands.py:222
-#: ../yumcommands.py:228
+#: ../yumcommands.py:221 ../yumcommands.py:225
msgid "Obsoleting Packages"
msgstr "Veraltete Pakete"
-#: ../yumcommands.py:229
+#: ../yumcommands.py:226
msgid "Recently Added Packages"
msgstr "Kürzlich hinzugefügte Pakete"
-#: ../yumcommands.py:235
+#: ../yumcommands.py:232
msgid "No matching Packages to list"
msgstr "Keine übereinstimmenden Pakete zum Auflisten"
-#: ../yumcommands.py:249
+#: ../yumcommands.py:246
msgid "List a package or groups of packages"
msgstr "Liste von Pakete oder Gruppen von Paketen"
-#: ../yumcommands.py:261
+#: ../yumcommands.py:258
msgid "Remove a package or packages from your system"
msgstr "Entferne ein Paket oder Pakete auf Ihrem System"
-#: ../yumcommands.py:269
+#: ../yumcommands.py:266
msgid "Setting up Remove Process"
msgstr "Einrichten des Entfernungsprozess"
-#: ../yumcommands.py:281
+#: ../yumcommands.py:278
msgid "Setting up Group Process"
msgstr "Einrichten des Gruppenprozess"
-#: ../yumcommands.py:287
+#: ../yumcommands.py:284
msgid "No Groups on which to run command"
msgstr "Keine Gruppe, auf welcher der Befehl ausgeführt werden kann"
-#: ../yumcommands.py:300
+#: ../yumcommands.py:297
msgid "List available package groups"
msgstr "Verfügbare Gruppen anzeigen"
-#: ../yumcommands.py:317
+#: ../yumcommands.py:314
msgid "Install the packages in a group on your system"
msgstr "Installiere die Pakete in einer Gruppe auf Ihrem System"
-#: ../yumcommands.py:339
+#: ../yumcommands.py:336
msgid "Remove the packages in a group from your system"
msgstr "Entferne die Pakete in einer Gruppe von Ihrem System"
-#: ../yumcommands.py:363
+#: ../yumcommands.py:360
msgid "Display details about a package group"
msgstr "Zeigt Details über eine Paket-Gruppe an"
-#: ../yumcommands.py:387
+#: ../yumcommands.py:384
msgid "Generate the metadata cache"
msgstr "Generiere den Metadaten-Zwischenspeicher"
-#: ../yumcommands.py:393
+#: ../yumcommands.py:390
msgid "Making cache files for all metadata files."
msgstr "Erstelle Zwischenspeicherungsdatei für alle Metadaten-Dateien."
-#: ../yumcommands.py:394
+#: ../yumcommands.py:391
msgid "This may take a while depending on the speed of this computer"
-msgstr "Dies kann eine Weile dauert, abhängig von der Geschwindigkeit dieses Computers"
+msgstr ""
+"Dies kann eine Weile dauert, abhängig von der Geschwindigkeit dieses "
+"Computers"
-#: ../yumcommands.py:415
+#: ../yumcommands.py:412
msgid "Metadata Cache Created"
msgstr "Metadaten-Zwischenspeicher erstellt"
-#: ../yumcommands.py:429
+#: ../yumcommands.py:426
msgid "Remove cached data"
msgstr "Entferne gespeicherte Daten"
-#: ../yumcommands.py:450
+#: ../yumcommands.py:447
msgid "Find what package provides the given value"
msgstr "Suche welches Paket den gegebenen Wert bereitstellen"
-#: ../yumcommands.py:470
+#: ../yumcommands.py:467
msgid "Check for available package updates"
msgstr "Ãberprüfe auf verfügbare Paket-Aktualisierungen"
-#: ../yumcommands.py:493
+#: ../yumcommands.py:490
msgid "Search package details for the given string"
msgstr "Suche nach Paket-Details nach der gegebenen Zeichenkette"
-#: ../yumcommands.py:499
+#: ../yumcommands.py:496
msgid "Searching Packages: "
msgstr "Suche Pakete:"
-#: ../yumcommands.py:516
+#: ../yumcommands.py:513
msgid "Update packages taking obsoletes into account"
msgstr "Aktualisiere Pakete, berücksichtige veraltete"
-#: ../yumcommands.py:525
+#: ../yumcommands.py:522
msgid "Setting up Upgrade Process"
msgstr "Einrichten des Upgradeprozess"
-#: ../yumcommands.py:539
+#: ../yumcommands.py:536
msgid "Install a local RPM"
msgstr "Installiere ein lokales RPM"
-#: ../yumcommands.py:548
+#: ../yumcommands.py:545
msgid "Setting up Local Package Process"
msgstr "Einrichten der lokalen Paketverarbeitung"
-#: ../yumcommands.py:567
+#: ../yumcommands.py:564
msgid "Determine which package provides the given dependency"
msgstr "Bestimme, welche Pakete die gegebenen Abhängigkeiten bereitstellen"
-#: ../yumcommands.py:570
+#: ../yumcommands.py:567
msgid "Searching Packages for Dependency:"
msgstr "Suche Pakete für Abhängigkeit:"
-#: ../yumcommands.py:584
+#: ../yumcommands.py:581
msgid "Run an interactive yum shell"
msgstr "Führe eine interaktive Yum-Shell aus"
-#: ../yumcommands.py:590
+#: ../yumcommands.py:587
msgid "Setting up Yum Shell"
msgstr "Einrichten der Yum-Shell"
-#: ../yumcommands.py:608
+#: ../yumcommands.py:605
msgid "List a package's dependencies"
msgstr "Liste von Paket-Abhängigkeiten"
-#: ../yumcommands.py:614
+#: ../yumcommands.py:611
msgid "Finding dependencies: "
msgstr "Suche Abhängigkeiten:"
-#: ../yumcommands.py:630
+#: ../yumcommands.py:627
msgid "Display the configured software repositories"
msgstr "Zeige die konfigurierten Software-Repositories an"
-#: ../yumcommands.py:666
-msgid "enabled"
-msgstr "aktiviert"
-
-#: ../yumcommands.py:673
-msgid "disabled"
-msgstr "deaktiviert"
-
-#: ../yumcommands.py:682
+#: ../yumcommands.py:645
msgid "repo id"
msgstr "Repo-ID"
-#: ../yumcommands.py:683
+#: ../yumcommands.py:645
msgid "repo name"
msgstr "Repo-Name:"
-#: ../yumcommands.py:683
+#: ../yumcommands.py:645
msgid "status"
msgstr "Status"
-#: ../yumcommands.py:686
-msgid "Repo-id : "
-msgstr "Repo-ID : "
-
-#: ../yumcommands.py:687
-msgid "Repo-name : "
-msgstr "Repo-Name : "
-
-#: ../yumcommands.py:688
-msgid "Repo-enabled: "
-msgstr "Repo aktiviert:"
+#: ../yumcommands.py:651
+msgid "enabled"
+msgstr "aktiviert"
-#: ../yumcommands.py:689
-msgid "Repo-size : "
-msgstr "Repo-Grösse : "
+#: ../yumcommands.py:654
+msgid "disabled"
+msgstr "deaktiviert"
-#: ../yumcommands.py:713
+#: ../yumcommands.py:671
msgid "Display a helpful usage message"
msgstr "Zeigt eine kurze Verwendungsinformation"
-#: ../yumcommands.py:747
+#: ../yumcommands.py:705
#, python-format
msgid "No help available for %s"
msgstr "Keine Hilfe für %s vorhanden"
-#: ../yumcommands.py:752
+#: ../yumcommands.py:710
msgid ""
"\n"
"\n"
@@ -1111,7 +1055,7 @@ msgstr ""
"\n"
"Aliase: "
-#: ../yumcommands.py:754
+#: ../yumcommands.py:712
msgid ""
"\n"
"\n"
@@ -1121,15 +1065,15 @@ msgstr ""
"\n"
"Alias: "
-#: ../yumcommands.py:783
+#: ../yumcommands.py:741
msgid "Setting up Reinstall Process"
msgstr "Einrichten des Neuinstallationsprozess"
-#: ../yumcommands.py:797
+#: ../yumcommands.py:755
msgid "reinstall a package"
msgstr "Installiere Paket neu"
-#: ../yummain.py:55
+#: ../yummain.py:41
msgid ""
"\n"
"\n"
@@ -1139,7 +1083,7 @@ msgstr ""
"\n"
"Verlasse nach Benutzer-Befehl"
-#: ../yummain.py:61
+#: ../yummain.py:47
msgid ""
"\n"
"\n"
@@ -1149,28 +1093,29 @@ msgstr ""
"\n"
"Verlasse wegen defekter Pipe"
-#: ../yummain.py:112
-msgid "Another app is currently holding the yum lock; waiting for it to exit..."
-msgstr "Eine andere Anwendung hält momentan den Yum-Lock. Warte, dass sie endet wird..."
+#: ../yummain.py:105
+msgid ""
+"Another app is currently holding the yum lock; waiting for it to exit..."
+msgstr ""
+"Eine andere Anwendung hält momentan den Yum-Lock. Warte, dass sie endet "
+"wird..."
-#: ../yummain.py:139
-#: ../yummain.py:178
+#: ../yummain.py:132 ../yummain.py:171
#, python-format
msgid "Error: %s"
msgstr "Fehler: %s"
-#: ../yummain.py:149
-#: ../yummain.py:185
+#: ../yummain.py:142 ../yummain.py:178
#, python-format
msgid "Unknown Error(s): Exit Code: %d:"
msgstr "Unbekannte(r) Fehlercode: Exit Code: %d:"
#. Depsolve stage
-#: ../yummain.py:156
+#: ../yummain.py:149
msgid "Resolving Dependencies"
msgstr "Löse Abhängigkeiten auf"
-#: ../yummain.py:191
+#: ../yummain.py:184
msgid ""
"\n"
"Dependencies Resolved"
@@ -1178,11 +1123,11 @@ msgstr ""
"\n"
"Abhängigkeiten aufgelöst"
-#: ../yummain.py:205
+#: ../yummain.py:198
msgid "Complete!"
msgstr "Komplett!"
-#: ../yummain.py:252
+#: ../yummain.py:245
msgid ""
"\n"
"\n"
@@ -1192,264 +1137,322 @@ msgstr ""
"\n"
"Verlasse nach Benutzer-Anforderung."
-#: ../yum/depsolve.py:78
+#: ../yum/depsolve.py:82
msgid "doTsSetup() will go away in a future version of Yum.\n"
msgstr "doTsSetup() wird in zukünftigen Version von Yum verschwinden.\n"
-#: ../yum/depsolve.py:91
+#: ../yum/depsolve.py:95
msgid "Setting up TransactionSets before config class is up"
-msgstr "Konfiguriere TransactionSets bevor die Konfigurationsklasse gestartet ist"
+msgstr ""
+"Konfiguriere TransactionSets bevor die Konfigurationsklasse gestartet ist"
-#: ../yum/depsolve.py:132
+#: ../yum/depsolve.py:136
#, python-format
msgid "Invalid tsflag in config file: %s"
msgstr "Ungültiges tsflag in Konfigurationsdatei: %s"
-#: ../yum/depsolve.py:176
+#: ../yum/depsolve.py:147
+#, python-format
+msgid "Searching pkgSack for dep: %s"
+msgstr "Suche pkgSack für Abhängigkeiten: %s"
+
+#: ../yum/depsolve.py:170
+#, python-format
+msgid "Potential match for %s from %s"
+msgstr "Potentielle Ãbereinstimmung für %s von %s"
+
+#: ../yum/depsolve.py:178
+#, python-format
+msgid "Matched %s to require for %s"
+msgstr "Ãbereinstimmung von %s, welche gebraucht wird für %s"
+
+#: ../yum/depsolve.py:219
#, python-format
msgid "Member: %s"
msgstr "Mitglied: %s"
-#: ../yum/depsolve.py:190
-#: ../yum/depsolve.py:592
+#: ../yum/depsolve.py:233 ../yum/depsolve.py:696
#, python-format
msgid "%s converted to install"
msgstr "%s konvertiert zum Installieren"
-#: ../yum/depsolve.py:197
+#: ../yum/depsolve.py:240
#, python-format
msgid "Adding Package %s in mode %s"
msgstr "Füge Paket %s hinzu in Modus %s"
-#: ../yum/depsolve.py:207
+#: ../yum/depsolve.py:250
#, python-format
msgid "Removing Package %s"
msgstr "Entferne Paket %s"
-#: ../yum/depsolve.py:218
+#: ../yum/depsolve.py:261
#, python-format
msgid "%s requires: %s"
msgstr "%s benötigt: %s"
-#: ../yum/depsolve.py:273
+#: ../yum/depsolve.py:312
+msgid "Needed Require has already been looked up, cheating"
+msgstr "Benötigte Anforderung wurde bereits nachgeschlagen, betrüge"
+
+#: ../yum/depsolve.py:322
+#, python-format
+msgid "Needed Require is not a package name. Looking up: %s"
+msgstr "Benötigte Anforderung ist kein Paket-Name. Schlagen nach: %s"
+
+#: ../yum/depsolve.py:329
+#, python-format
+msgid "Potential Provider: %s"
+msgstr "Potentieller Bereitsteller: %s"
+
+#: ../yum/depsolve.py:352
+#, python-format
+msgid "Mode is %s for provider of %s: %s"
+msgstr "Modus ist %s für Bereitsteller von %s: %s"
+
+#: ../yum/depsolve.py:356
+#, python-format
+msgid "Mode for pkg providing %s: %s"
+msgstr "Modus für pkg-Bereitstellung %s: %s"
+
+#: ../yum/depsolve.py:360
+#, python-format
+msgid "TSINFO: %s package requiring %s marked as erase"
+msgstr "TSINFO: %s Paket benötigt %s markiert als gelöscht"
+
+#: ../yum/depsolve.py:372
#, python-format
msgid "TSINFO: Obsoleting %s with %s to resolve dep."
msgstr "TSINFO: Veraltetes %s mit %s zum Auflösen der Abhängigkeit."
-#: ../yum/depsolve.py:276
+#: ../yum/depsolve.py:375
#, python-format
msgid "TSINFO: Updating %s to resolve dep."
msgstr "TSINFO: Aktualisiere %s zum Auflösen der Abhängigkeit."
-#: ../yum/depsolve.py:279
+#: ../yum/depsolve.py:378
#, python-format
msgid "Cannot find an update path for dep for: %s"
msgstr "Kann keine Aktualisierungspfad für Abhängigkeit finden für: %s"
-#: ../yum/depsolve.py:283
+#: ../yum/depsolve.py:388
#, python-format
-msgid "TSINFO: %s package requiring %s marked as erase"
-msgstr "TSINFO: %s Paket benötigt %s markiert als gelöscht"
+msgid "Unresolvable requirement %s for %s"
+msgstr "Unlösbare Anforderung %s für %s"
#. is it already installed?
-#: ../yum/depsolve.py:329
+#: ../yum/depsolve.py:434
#, python-format
msgid "%s is in providing packages but it is already installed, removing."
-msgstr "%s ist in einem bereitgestellten Paket, aber bereits installiert, entferne."
+msgstr ""
+"%s ist in einem bereitgestellten Paket, aber bereits installiert, entferne."
-#: ../yum/depsolve.py:344
+#: ../yum/depsolve.py:449
#, python-format
msgid "Potential resolving package %s has newer instance in ts."
msgstr "Potentielles aufgelöste Paket %s hat eine neuere Instanz in ts."
-#: ../yum/depsolve.py:355
+#: ../yum/depsolve.py:460
#, python-format
msgid "Potential resolving package %s has newer instance installed."
msgstr "Potentielles aufgelöste Paket %s hat eine neuere Instanz installiert."
-#: ../yum/depsolve.py:363
-#: ../yum/depsolve.py:410
+#: ../yum/depsolve.py:468 ../yum/depsolve.py:527
#, python-format
msgid "Missing Dependency: %s is needed by package %s"
msgstr "Fehlende Abhängigkeit: %s wird benötigt von Paket %s"
-#: ../yum/depsolve.py:376
+#: ../yum/depsolve.py:481
#, python-format
msgid "%s already in ts, skipping this one"
msgstr "%s bereits in ts, überspringe dies"
-#: ../yum/depsolve.py:420
+#: ../yum/depsolve.py:510
+#, python-format
+msgid ""
+"Failure finding best provider of %s for %s, exceeded maximum loop length"
+msgstr ""
+"Fehler beim FInden des besten Providers von %s für %s, überschrittene "
+"maximale Schleifenlänge"
+
+#: ../yum/depsolve.py:537
#, python-format
msgid "TSINFO: Marking %s as update for %s"
msgstr "TSINFO: Markiere %s als Aktualisierung für %s"
-#: ../yum/depsolve.py:427
+#: ../yum/depsolve.py:544
#, python-format
msgid "TSINFO: Marking %s as install for %s"
msgstr "TSINFO: Markiert %s als Installation für %s"
-#: ../yum/depsolve.py:518
-#: ../yum/depsolve.py:610
+#: ../yum/depsolve.py:635 ../yum/depsolve.py:714
msgid "Success - empty transaction"
msgstr "Erfolg - Leere Transaktion"
-#: ../yum/depsolve.py:562
-#: ../yum/depsolve.py:582
+#: ../yum/depsolve.py:673 ../yum/depsolve.py:686
msgid "Restarting Loop"
msgstr "Starte Schleife neu"
-#: ../yum/depsolve.py:598
+#: ../yum/depsolve.py:702
msgid "Dependency Process ending"
msgstr "Abhängigkeitsverarbeitung beendet"
-#: ../yum/depsolve.py:604
+#: ../yum/depsolve.py:708
#, python-format
msgid "%s from %s has depsolving problems"
msgstr "%s von %s hat Abhängigkeitsauflöse-Probleme"
-#: ../yum/depsolve.py:611
+#: ../yum/depsolve.py:715
msgid "Success - deps resolved"
msgstr "Erfolg - Abhängigkeiten aufgelöst"
-#: ../yum/depsolve.py:625
+#: ../yum/depsolve.py:729
#, python-format
msgid "Checking deps for %s"
msgstr "Prüfe Abhängigkeiten für %s"
-#: ../yum/depsolve.py:687
+#: ../yum/depsolve.py:782
#, python-format
msgid "looking for %s as a requirement of %s"
msgstr "schauen nach %s als eine Anforderung von %s"
-#: ../yum/depsolve.py:814
+#: ../yum/depsolve.py:933
+#, python-format
+msgid "Comparing best: %s to po: %s"
+msgstr "Vergleiche besseres: %s zu po: %s"
+
+#: ../yum/depsolve.py:937
+#, python-format
+msgid "Same: best %s == po: %s"
+msgstr "Gleich: besser %s == po: %s"
+
+#: ../yum/depsolve.py:952 ../yum/depsolve.py:963
+#, fuzzy, python-format
+msgid "best %s obsoletes po: %s"
+msgstr " %s veraltete %s"
+
+#: ../yum/depsolve.py:955
#, python-format
-msgid "Running compare_providers() for %s"
-msgstr "Führe compare_providers() aus für %s"
+msgid "po %s obsoletes best: %s"
+msgstr "po %s veraltetes besser: %s"
-#: ../yum/depsolve.py:842
-#: ../yum/depsolve.py:848
+#: ../yum/depsolve.py:972 ../yum/depsolve.py:979 ../yum/depsolve.py:1036
#, python-format
msgid "better arch in po %s"
msgstr "bessere Architektur in po %s"
-#: ../yum/depsolve.py:887
+#: ../yum/depsolve.py:988 ../yum/depsolve.py:1010
#, python-format
-msgid "%s obsoletes %s"
-msgstr " %s veraltete %s"
+msgid "po %s shares a sourcerpm with %s"
+msgstr "po %s teilen ein Quellen-RPM mit %s"
-#: ../yum/depsolve.py:898
+#: ../yum/depsolve.py:992 ../yum/depsolve.py:1015
#, python-format
-msgid ""
-"archdist compared %s to %s on %s\n"
-" Winner: %s"
-msgstr ""
-"Archdist verglichen %s zu %s auf %s\n"
-" Gewinner: %s"
+msgid "best %s shares a sourcerpm with %s"
+msgstr "besseres %s teilen ein Quellen-RPM mit %s"
-#: ../yum/depsolve.py:905
+#: ../yum/depsolve.py:999 ../yum/depsolve.py:1020
#, python-format
-msgid "common sourcerpm %s and %s"
-msgstr "Gemeinsames Quellen-RPM %s und %s"
+msgid "po %s shares more of the name prefix with %s"
+msgstr "po %s teilt mehr als den Prefixnamen mit %s"
-#: ../yum/depsolve.py:911
+#: ../yum/depsolve.py:1003 ../yum/depsolve.py:1029
#, python-format
-msgid "common prefix of %s between %s and %s"
-msgstr "Gemeinsamer Prefix von %s zwischen %s und %s"
+msgid "po %s has a shorter name than best %s"
+msgstr "po %s hat einen kürzeren Namen als das bessere %s"
-# Hat jemand eine Idee für eine bessere Ãbersetzung? Fabian
-#: ../yum/depsolve.py:919
-#, fuzzy, python-format
-msgid "Best Order: %s"
-msgstr "Beste Bestellung: %s"
+#: ../yum/depsolve.py:1025
+#, python-format
+msgid "bestpkg %s shares more of the name prefix with %s"
+msgstr "bestpkg %s teilt mehr als als den Prefixnamen mit %s"
-#: ../yum/__init__.py:148
+#: ../yum/__init__.py:119
msgid "doConfigSetup() will go away in a future version of Yum.\n"
msgstr "doConfigSetup() wird verschwinden in zukünftigen Version von Yum.\n"
-#. FIXME: Use critical? or exception?
-#: ../yum/__init__.py:323
+#: ../yum/__init__.py:296
#, python-format
msgid "Repository %r is missing name in configuration, using id"
msgstr "Bei Repository %r fehlt der Name in der Konfiguration, benutze id"
-#: ../yum/__init__.py:359
+#: ../yum/__init__.py:332
msgid "plugins already initialised"
msgstr "Plugins bereits initialisiert"
-#: ../yum/__init__.py:366
+#: ../yum/__init__.py:339
msgid "doRpmDBSetup() will go away in a future version of Yum.\n"
msgstr "doRpmDBSetup() wird verschwinden in zukünftigen Version von Yum.\n"
-#: ../yum/__init__.py:376
+#: ../yum/__init__.py:349
msgid "Reading Local RPMDB"
msgstr "Lese lokale RPMDB"
-#: ../yum/__init__.py:394
+#: ../yum/__init__.py:367
msgid "doRepoSetup() will go away in a future version of Yum.\n"
msgstr "doRepoSetup() wird verschwinden in zukünftigen Version von Yum.\n"
-#: ../yum/__init__.py:414
+#: ../yum/__init__.py:387
msgid "doSackSetup() will go away in a future version of Yum.\n"
msgstr "doSackSetup() wird verschwinden in zukünftigen Version von Yum.\n"
-#: ../yum/__init__.py:431
+#: ../yum/__init__.py:404
msgid "Setting up Package Sacks"
msgstr "Einrichten des Paket-Behälters"
-#: ../yum/__init__.py:474
+#: ../yum/__init__.py:447
#, python-format
msgid "repo object for repo %s lacks a _resetSack method\n"
msgstr "Repository-Objekt für Repository %s fehlt a _resetSack method\n"
-#: ../yum/__init__.py:475
+#: ../yum/__init__.py:448
msgid "therefore this repo cannot be reset.\n"
msgstr "deshalb dieses Repository kann nicht zurückgesetzt werden.\n"
-#: ../yum/__init__.py:480
+#: ../yum/__init__.py:453
msgid "doUpdateSetup() will go away in a future version of Yum.\n"
msgstr "doUpdateSetup() wird verschwinden in zukünftigen Version von Yum.\n"
-#: ../yum/__init__.py:492
+#: ../yum/__init__.py:465
msgid "Building updates object"
msgstr "Baue Aktualisierungsobjekt"
-#: ../yum/__init__.py:523
+#: ../yum/__init__.py:496
msgid "doGroupSetup() will go away in a future version of Yum.\n"
msgstr "doGroupSetup() wird verschwinden in zukünftigen Version von Yum.\n"
-#: ../yum/__init__.py:547
+#: ../yum/__init__.py:520
msgid "Getting group metadata"
msgstr "Beziehe Gruppen-Metadaten"
-#: ../yum/__init__.py:572
+#: ../yum/__init__.py:546
#, python-format
msgid "Adding group file from repository: %s"
msgstr "Füge Gruppen-Datei von Repository hinzu: %s"
-#: ../yum/__init__.py:577
+#: ../yum/__init__.py:555
#, python-format
msgid "Failed to add groups file for repository: %s - %s"
msgstr "Hinzufügen von Gruppen-Datei für Repository fehlgeschlagen: %s - %s"
-#: ../yum/__init__.py:583
+#: ../yum/__init__.py:561
msgid "No Groups Available in any repository"
msgstr "Keine Gruppen in irgendeinem Repository verfügbar"
-#: ../yum/__init__.py:633
+#: ../yum/__init__.py:611
msgid "Importing additional filelist information"
msgstr "Importiere zusätzlichen Dateilisten-Informationen"
-#: ../yum/__init__.py:684
+#: ../yum/__init__.py:657
#, python-format
msgid "Skip-broken round %i"
msgstr "Ãberspringe defekte Runde %i"
-#: ../yum/__init__.py:707
+#: ../yum/__init__.py:680
#, python-format
msgid "Skip-broken took %i rounds "
msgstr "Ãberspringe defekte brachte %i Runden"
-#: ../yum/__init__.py:708
+#: ../yum/__init__.py:681
msgid ""
"\n"
"Packages skipped because of dependency problems:"
@@ -1457,479 +1460,462 @@ msgstr ""
"\n"
"Pakete übersprungen wegen Abhängigkeitsproblemen:"
-#: ../yum/__init__.py:712
+#: ../yum/__init__.py:685
#, python-format
msgid " %s from %s"
msgstr " %s von %s"
-#: ../yum/__init__.py:792
-msgid "Warning: scriptlet or other non-fatal errors occurred during transaction."
-msgstr "Warnung: Es sind Scriptlet- oder andere nicht-fatale Fehler bei der Verarbeitung aufgetreten."
-
-#: ../yum/__init__.py:807
+#: ../yum/__init__.py:774
#, python-format
msgid "Failed to remove transaction file %s"
msgstr "Entfernen der Verarbeitungsdatei %s fehlgeschlagen"
-#: ../yum/__init__.py:847
+#: ../yum/__init__.py:814
#, python-format
msgid "excluding for cost: %s from %s"
msgstr "Ausschluss für Kosten: %s from %s"
-#: ../yum/__init__.py:878
+#: ../yum/__init__.py:845
msgid "Excluding Packages in global exclude list"
msgstr "Schliessen Pakete aus globaler Ausschlussliste aus"
-#: ../yum/__init__.py:880
+#: ../yum/__init__.py:847
#, python-format
msgid "Excluding Packages from %s"
msgstr "Schliesse Pakete aus von %s"
-#: ../yum/__init__.py:906
+#: ../yum/__init__.py:875
#, python-format
msgid "Reducing %s to included packages only"
msgstr "Reduziere %s nur zum Einbeziehen der Pakete"
-#: ../yum/__init__.py:911
+#: ../yum/__init__.py:880
#, python-format
msgid "Keeping included package %s"
msgstr "Behalte integriertes Paket %s"
-#: ../yum/__init__.py:917
+#: ../yum/__init__.py:886
#, python-format
msgid "Removing unmatched package %s"
msgstr "Entferne nicht übereinstimmendes Paket %s"
-#: ../yum/__init__.py:920
+#: ../yum/__init__.py:889
msgid "Finished"
msgstr "Abgeschlossen"
#. Whoa. What the heck happened?
-#: ../yum/__init__.py:950
+#: ../yum/__init__.py:919
#, python-format
msgid "Unable to check if PID %s is active"
msgstr "Unfähig zum Prüfen, ob PID %s ist aktiv"
#. Another copy seems to be running.
-#: ../yum/__init__.py:954
+#: ../yum/__init__.py:923
#, python-format
msgid "Existing lock %s: another copy is running as pid %s."
msgstr "Existierende Blockierung %s: eine andere Kopie läuft mit PID %s."
-#: ../yum/__init__.py:1017
+#: ../yum/__init__.py:970 ../yum/__init__.py:977
msgid "Package does not match intended download"
msgstr "Paket stimmt nicht mit dem vorgesehenen Herunterladen überein."
-#: ../yum/__init__.py:1032
+#: ../yum/__init__.py:991
msgid "Could not perform checksum"
msgstr "Konnte Prüfsumme nicht ausführen"
-#: ../yum/__init__.py:1035
+#: ../yum/__init__.py:994
msgid "Package does not match checksum"
msgstr "Paket stimmt nicht mit der Prüfsumme überein"
-#: ../yum/__init__.py:1079
+#: ../yum/__init__.py:1036
#, python-format
msgid "package fails checksum but caching is enabled for %s"
-msgstr "Paket bei Checksumme-Prüfung durchgefallen, aber Zwischenspeicherung ist aktiviert für %s"
+msgstr ""
+"Paket bei Checksumme-Prüfung durchgefallen, aber Zwischenspeicherung ist "
+"aktiviert für %s"
-#: ../yum/__init__.py:1082
+#: ../yum/__init__.py:1042
#, python-format
msgid "using local copy of %s"
msgstr "benutze lokale Kopie von %s"
-#: ../yum/__init__.py:1107
+#: ../yum/__init__.py:1061
#, python-format
msgid "Insufficient space in download directory %s to download"
msgstr "Nicht genügend Platz im Download-Verzeichnis %s vorhanden"
-#: ../yum/__init__.py:1140
+#: ../yum/__init__.py:1094
msgid "Header is not complete."
msgstr "Header ist nicht vollständig."
-#: ../yum/__init__.py:1180
+#: ../yum/__init__.py:1134
#, python-format
-msgid "Header not in local cache and caching-only mode enabled. Cannot download %s"
-msgstr "Header ist nicht im lokalen Zwischen-Speicher und Nur-Zwischenspeicher-Modus aktiviert. Kann nicht herunterladen %s"
+msgid ""
+"Header not in local cache and caching-only mode enabled. Cannot download %s"
+msgstr ""
+"Header ist nicht im lokalen Zwischen-Speicher und Nur-Zwischenspeicher-Modus "
+"aktiviert. Kann nicht herunterladen %s"
-#: ../yum/__init__.py:1235
+#: ../yum/__init__.py:1189
#, python-format
msgid "Public key for %s is not installed"
msgstr "Ãffentlicher Schlüssel für %s ist nicht installiert"
-#: ../yum/__init__.py:1239
+#: ../yum/__init__.py:1193
#, python-format
msgid "Problem opening package %s"
msgstr "Problem beim Ãffnen des Paketes %s"
-#: ../yum/__init__.py:1247
+#: ../yum/__init__.py:1201
#, python-format
msgid "Public key for %s is not trusted"
msgstr "Ãffentlicher Schlüssel für %s ist nicht vertrauenswürdig"
-#: ../yum/__init__.py:1251
+#: ../yum/__init__.py:1205
#, python-format
msgid "Package %s is not signed"
msgstr "Paket %s ist nicht unterschrieben"
-#: ../yum/__init__.py:1289
+#: ../yum/__init__.py:1243
#, python-format
msgid "Cannot remove %s"
msgstr "Kann %s nicht entfernen"
-#: ../yum/__init__.py:1292
+#: ../yum/__init__.py:1247
#, python-format
msgid "%s removed"
msgstr "%s entfernt"
-#: ../yum/__init__.py:1328
+#: ../yum/__init__.py:1283
#, python-format
msgid "Cannot remove %s file %s"
msgstr "Kann %s Datei nicht entfernt %s"
-#: ../yum/__init__.py:1331
+#: ../yum/__init__.py:1287
#, python-format
msgid "%s file %s removed"
msgstr "%s Datei %s entfernt"
-#: ../yum/__init__.py:1333
+#: ../yum/__init__.py:1289
#, python-format
msgid "%d %s files removed"
msgstr "%d %s Dateien entfernt"
-#: ../yum/__init__.py:1386
+#: ../yum/__init__.py:1329
#, python-format
msgid "More than one identical match in sack for %s"
msgstr "Mehr als eine identische Ãbereinstimmung im Behälter für %s"
-#: ../yum/__init__.py:1391
+#: ../yum/__init__.py:1335
#, python-format
msgid "Nothing matches %s.%s %s:%s-%s from update"
msgstr "Keine Ãbereinstimmungen %s.%s %s:%s-%s mit der Aktualisierung"
-#: ../yum/__init__.py:1585
-msgid "searchPackages() will go away in a future version of Yum. Use searchGenerator() instead. \n"
-msgstr "searchPackages() wird verschwinden in zukünftigen Version von Yum. Benutze stattdessen searchGenerator(). \n"
+#: ../yum/__init__.py:1543
+msgid ""
+"searchPackages() will go away in a future version of "
+"Yum. Use searchGenerator() instead. \n"
+msgstr ""
+"searchPackages() wird verschwinden in zukünftigen Version von "
+"Yum. Benutze stattdessen searchGenerator(). \n"
-#: ../yum/__init__.py:1621
+#: ../yum/__init__.py:1580
#, python-format
msgid "Searching %d packages"
msgstr "Suche %d Pakete"
-#: ../yum/__init__.py:1624
+#: ../yum/__init__.py:1584
#, python-format
msgid "searching package %s"
msgstr "Suche Paket %s"
-#: ../yum/__init__.py:1635
+#: ../yum/__init__.py:1596
msgid "searching in file entries"
msgstr "Suche in Datei-Einträgen"
-#: ../yum/__init__.py:1641
+#: ../yum/__init__.py:1603
msgid "searching in provides entries"
msgstr "suche in bereitgestellten Einträgen"
-#: ../yum/__init__.py:1671
+#: ../yum/__init__.py:1633
#, python-format
msgid "Provides-match: %s"
msgstr "Stelle Ãbereinstimmung bereit: %s"
-#: ../yum/__init__.py:1717
-msgid "No group data available for configured repositories"
-msgstr "Keine Gruppe für konfigurierte Repositories verfügbar"
-
-#: ../yum/__init__.py:1743
-#: ../yum/__init__.py:1762
-#: ../yum/__init__.py:1788
-#: ../yum/__init__.py:1794
-#: ../yum/__init__.py:1850
-#: ../yum/__init__.py:1854
+#: ../yum/__init__.py:1702 ../yum/__init__.py:1720 ../yum/__init__.py:1748
+#: ../yum/__init__.py:1753 ../yum/__init__.py:1808 ../yum/__init__.py:1812
#, python-format
msgid "No Group named %s exists"
msgstr "Kein Gruppe mit dem Namen %s vorhanden"
-#: ../yum/__init__.py:1773
-#: ../yum/__init__.py:1866
+#: ../yum/__init__.py:1731 ../yum/__init__.py:1824
#, python-format
msgid "package %s was not marked in group %s"
msgstr "Paket %s war nicht markiert in Gruppe %s"
-#: ../yum/__init__.py:1811
+#: ../yum/__init__.py:1770
#, python-format
msgid "Adding package %s from group %s"
msgstr "Füge Paket %s aus Gruppe %s hinzu"
-#: ../yum/__init__.py:1816
+#: ../yum/__init__.py:1774
#, python-format
msgid "No package named %s available to be installed"
msgstr "Kein Paket mit Namen %s verfügbar zum Installieren"
-#: ../yum/__init__.py:1891
+#: ../yum/__init__.py:1849
#, python-format
msgid "Package tuple %s could not be found in packagesack"
msgstr "Paket-Tupel %s kann nicht gefunden werden im Paket-Behälter"
-#: ../yum/__init__.py:1959
-#: ../yum/__init__.py:1999
+#: ../yum/__init__.py:1917 ../yum/__init__.py:1960
msgid "Invalid versioned dependency string, try quoting it."
-msgstr "Ungültig versionierte Abhängigkeitszeichenkette, versuche es zu notieren."
+msgstr ""
+"Ungültig versionierte Abhängigkeitszeichenkette, versuche es zu notieren."
-#: ../yum/__init__.py:1961
-#: ../yum/__init__.py:2001
+#: ../yum/__init__.py:1919 ../yum/__init__.py:1962
msgid "Invalid version flag"
msgstr "Ungültiges Versionsflag"
-#: ../yum/__init__.py:1973
-#: ../yum/__init__.py:1977
+#: ../yum/__init__.py:1934 ../yum/__init__.py:1938
#, python-format
msgid "No Package found for %s"
msgstr "Kein Paket gefunden für %s"
-#: ../yum/__init__.py:2105
+#: ../yum/__init__.py:2066
msgid "Package Object was not a package object instance"
msgstr "Paketobjekt war keine Paketobjektinstanz"
-#: ../yum/__init__.py:2109
+#: ../yum/__init__.py:2070
msgid "Nothing specified to install"
msgstr "Nichts angegeben zum Installieren"
#. only one in there
-#: ../yum/__init__.py:2124
+#: ../yum/__init__.py:2085
#, python-format
msgid "Checking for virtual provide or file-provide for %s"
-msgstr "Ãberprüfe nach virtueller Bereitstellung oder Datei-Bereitstellung für %s"
+msgstr ""
+"Ãberprüfe nach virtueller Bereitstellung oder Datei-Bereitstellung für %s"
-#: ../yum/__init__.py:2130
-#: ../yum/__init__.py:2446
+#: ../yum/__init__.py:2091 ../yum/__init__.py:2380
#, python-format
msgid "No Match for argument: %s"
msgstr "Kein Ãbereinstimmung für Argument: %s"
#. FIXME - this is where we could check to see if it already installed
#. for returning better errors
-#: ../yum/__init__.py:2185
+#: ../yum/__init__.py:2146
msgid "No package(s) available to install"
msgstr "Kein Paket(e) zum Installieren verfügbar."
-#: ../yum/__init__.py:2198
+#: ../yum/__init__.py:2158
#, python-format
msgid "Package: %s - already in transaction set"
msgstr "Paket: %s - bereits im Transaktionsset"
-#: ../yum/__init__.py:2212
+#: ../yum/__init__.py:2171
#, python-format
msgid "Package %s already installed and latest version"
-msgstr "Paket %s ist bereits installiert und ist in der neusten Version vorhanden."
+msgstr ""
+"Paket %s ist bereits installiert und ist in der neusten Version vorhanden."
-#: ../yum/__init__.py:2219
+#: ../yum/__init__.py:2178
#, python-format
msgid "Package matching %s already installed. Checking for update."
-msgstr "Paket, das auf %s passt ist bereits installiert. Ãberprüfe auf Aktualisierung."
-
-#: ../yum/__init__.py:2230
-#, python-format
-msgid "Package %s is obsoleted by %s, trying to install %s instead"
-msgstr "Paket %s ist veraltet von %s, versuche stattdessen %s zu installieren."
+msgstr ""
+"Paket, das auf %s passt ist bereits installiert. Ãberprüfe auf "
+"Aktualisierung."
#. update everything (the easy case)
-#: ../yum/__init__.py:2263
+#: ../yum/__init__.py:2220
msgid "Updating Everything"
msgstr "Aktualisiere alles"
-#: ../yum/__init__.py:2366
+#: ../yum/__init__.py:2304
#, python-format
msgid "Package is already obsoleted: %s.%s %s:%s-%s"
msgstr "Paket ist bereits veraltet: %s.%s %s:%s-%s"
-#: ../yum/__init__.py:2390
-#, python-format
-msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s"
-msgstr "Aktualisiere Paket nicht, da es bereits veraltet ist: %s.%s %s:%s-%s"
-
-#: ../yum/__init__.py:2443
+#: ../yum/__init__.py:2377
#, python-format
msgid "%s"
msgstr "%s"
-#. FIXME we should give the caller some nice way to hush this warning
-#. probably just a kwarg of 'silence_warnings' or something
-#. b/c when this is called from groupRemove() it makes a lot of
-#. garbage noise
-#: ../yum/__init__.py:2462
+#: ../yum/__init__.py:2392
msgid "No package matched to remove"
msgstr "Kein Paket stimmt zum Entfernen überein"
-#: ../yum/__init__.py:2496
+#: ../yum/__init__.py:2426
#, python-format
msgid "Cannot open file: %s. Skipping."
msgstr "Kann Datei nicht öffnen: %s. Ãberspringen."
-#: ../yum/__init__.py:2498
+#: ../yum/__init__.py:2429
#, python-format
msgid "Examining %s: %s"
msgstr "Untersuche %s: %s"
-#: ../yum/__init__.py:2504
-#, python-format
-msgid "Cannot add package %s to transaction. Not a compatible architecture: %s"
-msgstr "Kann Paket %s nicht zur Transaktion hinzufügen. Keine kompatible Architektur: %s"
-
-#: ../yum/__init__.py:2512
+#: ../yum/__init__.py:2436
#, python-format
-msgid "Package %s not installed, cannot update it. Run yum install to install it instead."
-msgstr "Paket %s nicht installiert, kann es nicht aktualisieren. Führen Sie stattdessen yum install aus, um es zu installieren."
+msgid ""
+"Package %s not installed, cannot update it. Run yum install to install it "
+"instead."
+msgstr ""
+"Paket %s nicht installiert, kann es nicht aktualisieren. Führen Sie "
+"stattdessen yum install aus, um es zu installieren."
-#: ../yum/__init__.py:2545
+#: ../yum/__init__.py:2468
#, python-format
msgid "Excluding %s"
msgstr "Exklusive %s"
-#: ../yum/__init__.py:2549
+#: ../yum/__init__.py:2473
#, python-format
msgid "Marking %s to be installed"
msgstr "Markiere %s zum Installieren"
-#: ../yum/__init__.py:2554
+#: ../yum/__init__.py:2479
#, python-format
msgid "Marking %s as an update to %s"
msgstr "Markiere %s als eine Aktualisierung für %s"
-#: ../yum/__init__.py:2559
+#: ../yum/__init__.py:2486
#, python-format
msgid "%s: does not update installed package."
msgstr "%s: aktualisiert installierte Pakete nicht."
-#: ../yum/__init__.py:2576
+#: ../yum/__init__.py:2504
msgid "Problem in reinstall: no package matched to remove"
msgstr "Probleme beim Neuinstallieren: kein Paket stimmt zum Entfernen überein"
-#: ../yum/__init__.py:2587
+#: ../yum/__init__.py:2515
#, python-format
msgid "Package %s is allowed multiple installs, skipping"
msgstr "Paket %s darf mehrfach installiert sein, überspringe"
-#: ../yum/__init__.py:2594
+#: ../yum/__init__.py:2522
msgid "Problem in reinstall: no package matched to install"
-msgstr "Probleme beim Neuinstallieren: kein Paket stimmt zum Installieren überein"
+msgstr ""
+"Probleme beim Neuinstallieren: kein Paket stimmt zum Installieren überein"
-#: ../yum/__init__.py:2641
+#: ../yum/__init__.py:2570
#, python-format
msgid "Retrieving GPG key from %s"
msgstr "GPG-Schlüssel abrufen von %s"
-#: ../yum/__init__.py:2647
+#: ../yum/__init__.py:2576
msgid "GPG key retrieval failed: "
msgstr "GPG-Schlüssel-Abruf fehlgeschlagen:"
-#: ../yum/__init__.py:2663
+#: ../yum/__init__.py:2589
msgid "GPG key parsing failed: "
msgstr "GPG-Schlüssel-Analyse fehlgeschlagen: "
-#: ../yum/__init__.py:2667
+#: ../yum/__init__.py:2593
#, python-format
msgid "GPG key at %s (0x%s) is already installed"
msgstr "GPG-Schlüssel unter %s (0x%s) ist bereits installiert"
#. Try installing/updating GPG key
-#: ../yum/__init__.py:2672
+#: ../yum/__init__.py:2598
#, python-format
msgid "Importing GPG key 0x%s \"%s\" from %s"
msgstr "Importiere GPG-Schlüssel 0x%s \"%s\" von %s"
-#: ../yum/__init__.py:2685
+#: ../yum/__init__.py:2610
msgid "Not installing key"
msgstr "Nicht installierter Schlüssel"
-#: ../yum/__init__.py:2691
+#: ../yum/__init__.py:2616
#, python-format
msgid "Key import failed (code %d)"
msgstr "Schlüssel-Import fehlgeschlagen (Code %d)"
-#: ../yum/__init__.py:2694
+#: ../yum/__init__.py:2619
msgid "Key imported successfully"
msgstr "Schlüssel erfolgreich importiert"
-#: ../yum/__init__.py:2699
+#: ../yum/__init__.py:2624
#, 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 ""
-"Die aufgelisteten GPG-Schlüssel für das \"%s\" Repository sind bereits installiert, aber sie sind nicht korrekt für dieses Paket.\n"
-"Stellen Sie sicher, dass die korrekten Schlüssel-URLs für dieses Repository konfiguriert sind."
+"Die aufgelisteten GPG-Schlüssel für das \"%s\" Repository sind bereits "
+"installiert, aber sie sind nicht korrekt für dieses Paket.\n"
+"Stellen Sie sicher, dass die korrekten Schlüssel-URLs für dieses Repository "
+"konfiguriert sind."
-#: ../yum/__init__.py:2708
+#: ../yum/__init__.py:2633
msgid "Import of key(s) didn't help, wrong key(s)?"
msgstr "Importieren der Schlüssel hat nicht geholfen, falsche Schlüssel?"
-#: ../yum/__init__.py:2789
+#: ../yum/__init__.py:2707
msgid "Unable to find a suitable mirror."
msgstr "Es kann kein geeigneter Mirror gefunden werden."
-#: ../yum/__init__.py:2791
+#: ../yum/__init__.py:2709
msgid "Errors were encountered while downloading packages."
msgstr "Beim Herunterladen der Pakete sind Fehler aufgetreten."
-#: ../yum/__init__.py:2854
+#: ../yum/__init__.py:2774
msgid "Test Transaction Errors: "
msgstr "Test-Transaktionsfehler"
#. Mostly copied from YumOutput._outKeyValFill()
-#: ../yum/plugins.py:197
+#: ../yum/plugins.py:195
msgid "Loaded plugins: "
msgstr "Geladene Plugins: "
-#: ../yum/plugins.py:208
+#: ../yum/plugins.py:206
#, python-format
msgid "No plugin match for: %s"
msgstr "Kein Plugin für Argument: %s"
-#: ../yum/plugins.py:221
+#: ../yum/plugins.py:219
#, python-format
msgid "\"%s\" plugin is disabled"
msgstr "\"%s\" Plugin ist deaktiviert"
-#: ../yum/plugins.py:233
+#: ../yum/plugins.py:231
#, python-format
msgid "Plugin \"%s\" doesn't specify required API version"
msgstr "Plugin \"%s\" gibt keine benötigte API-Version an"
-#: ../yum/plugins.py:237
+#: ../yum/plugins.py:235
#, python-format
msgid "Plugin \"%s\" requires API %s. Supported API is %s."
msgstr "Plugin \"%s\" benötigt API %s. Unterstützte API ist %s."
-#: ../yum/plugins.py:266
+#: ../yum/plugins.py:264
#, python-format
msgid "Loading \"%s\" plugin"
msgstr "Lade \"%s\" Plugin"
-#: ../yum/plugins.py:273
+#: ../yum/plugins.py:271
#, python-format
-msgid "Two or more plugins with the name \"%s\" exist in the plugin search path"
-msgstr "Zwei oder mehr Plugins mit dem Namen \"%s\" existieren im Plugin-Suchpfad"
+msgid ""
+"Two or more plugins with the name \"%s\" exist in the plugin search path"
+msgstr ""
+"Zwei oder mehr Plugins mit dem Namen \"%s\" existieren im Plugin-Suchpfad"
-#: ../yum/plugins.py:293
+#: ../yum/plugins.py:291
#, python-format
msgid "Configuration file %s not found"
msgstr "Konfigurationsdatei %s nicht gefunden"
#. for
#. Configuration files for the plugin not found
-#: ../yum/plugins.py:296
+#: ../yum/plugins.py:294
#, python-format
msgid "Unable to find configuration file for plugin %s"
msgstr "Kann Konfigurationsdatei für Plugin %s nicht finden"
-#: ../yum/plugins.py:450
+#: ../yum/plugins.py:448
msgid "registration of commands not supported"
msgstr "Registrierung von Befehlen nicht unterstützt"
-# Geht sicher auch besser..., Ideen? Fabian
-#: ../yum/rpmtrans.py:78
-msgid "Repackaging"
-msgstr "Neu verpacken"
-
#: ../rpmUtils/oldUtils.py:26
#, python-format
msgid "Header cannot be opened or does not match %s, %s."
@@ -1948,10 +1934,8 @@ msgstr "Kann RPM-Datenbank nicht öffnen. Wird sie eventuell schon benutzt?"
msgid "Got an empty Header, something has gone wrong"
msgstr "Erhalte einen leeren Header, irgendetwas ging schief"
-#: ../rpmUtils/oldUtils.py:244
-#: ../rpmUtils/oldUtils.py:251
-#: ../rpmUtils/oldUtils.py:254
-#: ../rpmUtils/oldUtils.py:257
+#: ../rpmUtils/oldUtils.py:244 ../rpmUtils/oldUtils.py:251
+#: ../rpmUtils/oldUtils.py:254 ../rpmUtils/oldUtils.py:257
#, python-format
msgid "Damaged Header %s"
msgstr "Defekter Header %s"
@@ -1961,55 +1945,95 @@ msgstr "Defekter Header %s"
msgid "Error opening rpm %s - error %s"
msgstr "Fehler bei Ãffnen des RPM %s - Fehler %s"
-#~ msgid "Searching pkgSack for dep: %s"
-#~ msgstr "Suche pkgSack für Abhängigkeiten: %s"
-#~ msgid "Potential match for %s from %s"
-#~ msgstr "Potentielle Ãbereinstimmung für %s von %s"
-#~ msgid "Matched %s to require for %s"
-#~ msgstr "Ãbereinstimmung von %s, welche gebraucht wird für %s"
-#~ msgid "Needed Require has already been looked up, cheating"
-#~ msgstr "Benötigte Anforderung wurde bereits nachgeschlagen, betrüge"
-#~ msgid "Needed Require is not a package name. Looking up: %s"
-#~ msgstr "Benötigte Anforderung ist kein Paket-Name. Schlagen nach: %s"
-#~ msgid "Potential Provider: %s"
-#~ msgstr "Potentieller Bereitsteller: %s"
-#~ msgid "Mode is %s for provider of %s: %s"
-#~ msgstr "Modus ist %s für Bereitsteller von %s: %s"
-#~ msgid "Mode for pkg providing %s: %s"
-#~ msgstr "Modus für pkg-Bereitstellung %s: %s"
-#~ msgid "Unresolvable requirement %s for %s"
-#~ msgstr "Unlösbare Anforderung %s für %s"
#~ msgid ""
-#~ "Failure finding best provider of %s for %s, exceeded maximum loop length"
+#~ "\n"
+#~ "\n"
+#~ "%s: %s option requires an argument"
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "%s: %s Option benötigt ein Argument"
+
+#~ msgid "show this help message and exit"
+#~ msgstr "Hilfeinformation anzeigen und beenden"
+
+#~ msgid "verbose operation"
+#~ msgstr "Wortreicher Betrieb"
+
+#~ msgid "Repo-id : "
+#~ msgstr "Repo-ID : "
+
+#~ msgid "Repo-name : "
+#~ msgstr "Repo-Name : "
+
+#~ msgid "Repo-enabled: "
+#~ msgstr "Repo aktiviert:"
+
+#~ msgid "Repo-size : "
+#~ msgstr "Repo-Grösse : "
+
+#~ msgid "Running compare_providers() for %s"
+#~ msgstr "Führe compare_providers() aus für %s"
+
+#~ msgid ""
+#~ "archdist compared %s to %s on %s\n"
+#~ " Winner: %s"
#~ msgstr ""
-#~ "Fehler beim FInden des besten Providers von %s für %s, überschrittene "
-#~ "maximale Schleifenlänge"
-#~ msgid "Comparing best: %s to po: %s"
-#~ msgstr "Vergleiche besseres: %s zu po: %s"
-#~ msgid "Same: best %s == po: %s"
-#~ msgstr "Gleich: besser %s == po: %s"
-#~ msgid "po %s obsoletes best: %s"
-#~ msgstr "po %s veraltetes besser: %s"
-#~ msgid "po %s shares a sourcerpm with %s"
-#~ msgstr "po %s teilen ein Quellen-RPM mit %s"
-#~ msgid "best %s shares a sourcerpm with %s"
-#~ msgstr "besseres %s teilen ein Quellen-RPM mit %s"
-#~ msgid "po %s shares more of the name prefix with %s"
-#~ msgstr "po %s teilt mehr als den Prefixnamen mit %s"
-#~ msgid "po %s has a shorter name than best %s"
-#~ msgstr "po %s hat einen kürzeren Namen als das bessere %s"
-#~ msgid "bestpkg %s shares more of the name prefix with %s"
-#~ msgstr "bestpkg %s teilt mehr als als den Prefixnamen mit %s"
+#~ "Archdist verglichen %s zu %s auf %s\n"
+#~ " Gewinner: %s"
+
+#~ msgid "common sourcerpm %s and %s"
+#~ msgstr "Gemeinsames Quellen-RPM %s und %s"
+
+#~ msgid "common prefix of %s between %s and %s"
+#~ msgstr "Gemeinsamer Prefix von %s zwischen %s und %s"
+
+# Hat jemand eine Idee für eine bessere Ãbersetzung? Fabian
+#, fuzzy
+#~ msgid "Best Order: %s"
+#~ msgstr "Beste Bestellung: %s"
+
+#~ msgid ""
+#~ "Warning: scriptlet or other non-fatal errors occurred during transaction."
+#~ msgstr ""
+#~ "Warnung: Es sind Scriptlet- oder andere nicht-fatale Fehler bei der "
+#~ "Verarbeitung aufgetreten."
+
+#~ msgid "No group data available for configured repositories"
+#~ msgstr "Keine Gruppe für konfigurierte Repositories verfügbar"
+
+#~ msgid "Package %s is obsoleted by %s, trying to install %s instead"
+#~ msgstr ""
+#~ "Paket %s ist veraltet von %s, versuche stattdessen %s zu installieren."
+
+#~ msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s"
+#~ msgstr ""
+#~ "Aktualisiere Paket nicht, da es bereits veraltet ist: %s.%s %s:%s-%s"
+
+#~ msgid ""
+#~ "Cannot add package %s to transaction. Not a compatible architecture: %s"
+#~ msgstr ""
+#~ "Kann Paket %s nicht zur Transaktion hinzufügen. Keine kompatible "
+#~ "Architektur: %s"
+
+# Geht sicher auch besser..., Ideen? Fabian
+#~ msgid "Repackaging"
+#~ msgstr "Neu verpacken"
+
#~ msgid "Package %s needs %s, this is not available."
#~ msgstr "Paket %s braucht %s, dies ist nicht verfügbar."
+
#~ msgid "Package %s conflicts with %s."
#~ msgstr "Paket %s kollidiert mit %s."
+
#~ msgid "Looking for Obsoletes for %s"
#~ msgstr "Suche nach veralteten Paketen für %s"
+
#~ msgid "TSINFO: Updating %s to resolve conflict."
#~ msgstr "TSINFO: Aktualisiere %s zum Lösen des Konflikts.."
+
#~ msgid "%s conflicts: %s"
#~ msgstr "%s kollidiert: %s"
+
#~ msgid "%s conflicts with %s"
#~ msgstr "%s kollidiert mit %s"
-
diff --git a/po/fr.po b/po/fr.po
index a828bc0..c0ebd33 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -9,32 +9,31 @@ msgid ""
msgstr ""
"Project-Id-Version: yum.master\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-09-20 09:28+0000\n"
+"POT-Creation-Date: 2008-03-25 11:29+0100\n"
"PO-Revision-Date: 2008-09-20 19:32+0200\n"
"Last-Translator: Johan Cwiklinski <johan at x-tnd.be>\n"
"Language-Team: fr_FR <fedora-trans-fr at redhat.com>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit"
+"Content-Transfer-Encoding: 8bit\n"
-#: ../callback.py:48 ../output.py:516 ../yum/rpmtrans.py:71
+#: ../callback.py:48 ../output.py:512
msgid "Updating"
msgstr "Mise à jour"
-#: ../callback.py:49 ../yum/rpmtrans.py:72
+#: ../callback.py:49
msgid "Erasing"
msgstr "Suppression"
-#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:515
-#: ../yum/rpmtrans.py:73 ../yum/rpmtrans.py:74 ../yum/rpmtrans.py:76
+#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:511
msgid "Installing"
msgstr "Installation"
-#: ../callback.py:52 ../callback.py:58 ../yum/rpmtrans.py:75
+#: ../callback.py:52 ../callback.py:58
msgid "Obsoleted"
msgstr "Obsolète"
-#: ../callback.py:54 ../output.py:562
+#: ../callback.py:54 ../output.py:558
msgid "Updated"
msgstr "Mis à jour"
@@ -42,7 +41,7 @@ msgstr "Mis à jour"
msgid "Erased"
msgstr "Supprimé"
-#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:560
+#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:556
msgid "Installed"
msgstr "Installé"
@@ -64,53 +63,53 @@ msgstr "Erreur : statut de sortie invalide : %s pour %s"
msgid "Erased: %s"
msgstr "Supprimé : %s"
-#: ../callback.py:217 ../output.py:517
+#: ../callback.py:217 ../output.py:513
msgid "Removing"
msgstr "Suppression"
-#: ../callback.py:219 ../yum/rpmtrans.py:77
+#: ../callback.py:219
msgid "Cleanup"
msgstr "Nettoyage"
-#: ../cli.py:105
+#: ../cli.py:103
#, python-format
msgid "Command \"%s\" already defined"
msgstr "Commande « %s » déjà définie"
-#: ../cli.py:117
+#: ../cli.py:115
msgid "Setting up repositories"
msgstr "Configuration des dépôts"
-#: ../cli.py:128
+#: ../cli.py:126
msgid "Reading repository metadata in from local files"
msgstr "Lecture des méta données du dépôt depuis les fichiers locaux"
-#: ../cli.py:186 ../utils.py:71
+#: ../cli.py:183 ../utils.py:72
#, python-format
msgid "Config Error: %s"
msgstr "Erreur de configuration : %s"
-#: ../cli.py:189 ../cli.py:1081 ../utils.py:74
+#: ../cli.py:186 ../cli.py:1068 ../utils.py:75
#, python-format
msgid "Options Error: %s"
msgstr "Erreur d'options : %s"
-#: ../cli.py:232
+#: ../cli.py:229
msgid "You need to give some command"
msgstr "Vous devez spécifier des commandes"
-#: ../cli.py:274
+#: ../cli.py:271
msgid "Disk Requirements:\n"
msgstr "Besoins en espace disque :\n"
-#: ../cli.py:276
+#: ../cli.py:273
#, python-format
msgid " At least %dMB needed on the %s filesystem.\n"
msgstr "Au moins %dMB requis sur le système de fichiers %s.\n"
#. TODO: simplify the dependency errors?
#. Fixup the summary
-#: ../cli.py:281
+#: ../cli.py:278
msgid ""
"Error Summary\n"
"-------------\n"
@@ -118,57 +117,57 @@ msgstr ""
"Résumé des erreurs\n"
"-------------\n"
-#: ../cli.py:320
+#: ../cli.py:317
msgid "Trying to run the transaction but nothing to do. Exiting."
msgstr ""
"Tentative d'exécution de la transaction mais aucune tâche à effectuer. "
"Sortie."
-#: ../cli.py:350
+#: ../cli.py:347
msgid "Exiting on user Command"
msgstr "Arrêt à la demande de l'utilisateur"
-#: ../cli.py:354
+#: ../cli.py:351
msgid "Downloading Packages:"
msgstr "Téléchargement des paquetages :"
-#: ../cli.py:359
+#: ../cli.py:356
msgid "Error Downloading Packages:\n"
msgstr "Erreur durant le téléchargement des paquetages :\n"
-#: ../cli.py:373 ../yum/__init__.py:2826
+#: ../cli.py:370 ../yum/__init__.py:2746
msgid "Running rpm_check_debug"
msgstr "Lancement de rpm_check_debug"
-#: ../cli.py:376 ../yum/__init__.py:2829
+#: ../cli.py:373 ../yum/__init__.py:2749
msgid "ERROR with rpm_check_debug vs depsolve:"
msgstr "ERREUR de résolution de dépendance par rpm_check_debug :"
-#: ../cli.py:380 ../yum/__init__.py:2831
+#: ../cli.py:377 ../yum/__init__.py:2751
msgid "Please report this error in bugzilla"
msgstr "Veuillez reporter cette erreur dans le bugzilla"
-#: ../cli.py:386
+#: ../cli.py:383
msgid "Running Transaction Test"
msgstr "Lancement de la transaction de test"
-#: ../cli.py:402
+#: ../cli.py:399
msgid "Finished Transaction Test"
msgstr "Transaction de test terminée"
-#: ../cli.py:404
+#: ../cli.py:401
msgid "Transaction Check Error:\n"
msgstr "Erreur du contrôle de transaction :\n"
-#: ../cli.py:411
+#: ../cli.py:408
msgid "Transaction Test Succeeded"
msgstr "Transaction de test réussie"
-#: ../cli.py:432
+#: ../cli.py:429
msgid "Running Transaction"
msgstr "Lancement de la transaction"
-#: ../cli.py:462
+#: ../cli.py:459
msgid ""
"Refusing to automatically import keys when running unattended.\n"
"Use \"-y\" to override."
@@ -177,318 +176,299 @@ msgstr ""
"inattendue.\n"
"Utilisez l'option « -y » pour passer outre."
-#: ../cli.py:494
+#: ../cli.py:491
msgid "Parsing package install arguments"
msgstr "Traitement des options d'installation des paquetages"
-#: ../cli.py:504
+#: ../cli.py:501
#, python-format
msgid "No package %s available."
msgstr "Aucun paquetage %s disponible."
-#: ../cli.py:508 ../cli.py:626 ../yumcommands.py:790
+#: ../cli.py:505 ../cli.py:623 ../yumcommands.py:748
msgid "Package(s) to install"
msgstr "Paquetage(s) Ã installer"
-#: ../cli.py:509 ../cli.py:627 ../yumcommands.py:147 ../yumcommands.py:791
+#: ../cli.py:506 ../cli.py:624 ../yumcommands.py:146 ../yumcommands.py:749
msgid "Nothing to do"
msgstr "Rien à faire"
-#: ../cli.py:539 ../yum/__init__.py:2275 ../yum/__init__.py:2375
-#: ../yum/__init__.py:2387
+#: ../cli.py:536 ../yum/__init__.py:2232 ../yum/__init__.py:2311
+#: ../yum/__init__.py:2340
#, python-format
msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
msgstr ""
"Pas de mise à jour des paquetages qui ont déjà été rendus obsolètes : %s.%s %"
"s:%s-%s"
-#: ../cli.py:571
+#: ../cli.py:568
#, python-format
msgid "Could not find update match for %s"
msgstr "Impossible de trouver une correspondance pour la mise à jour de %s"
-#: ../cli.py:583
+#: ../cli.py:580
#, python-format
msgid "%d packages marked for Update"
msgstr "%d paquetages marqués pour mise à jour"
-#: ../cli.py:586
+#: ../cli.py:583
msgid "No Packages marked for Update"
msgstr "Aucun paquetage marqué pour mise à jour"
-#: ../cli.py:602
+#: ../cli.py:599
#, python-format
msgid "%d packages marked for removal"
msgstr "%d paquetages marqués pour suppression"
-#: ../cli.py:605
+#: ../cli.py:602
msgid "No Packages marked for removal"
msgstr "Aucun paquetage marqué pour suppression"
-#: ../cli.py:617
+#: ../cli.py:614
msgid "No Packages Provided"
msgstr "Pas de paquetage fourni"
-#: ../cli.py:657
+#: ../cli.py:654
msgid "Matching packages for package list to user args"
msgstr "Liste des paquetages correspondant à la demande de l'utilisateur"
-#: ../cli.py:705
+#: ../cli.py:701
#, python-format
msgid "Warning: No matches found for: %s"
msgstr "Attention : Aucune correspondance trouvée pour : %s"
-#: ../cli.py:708
+#: ../cli.py:704
msgid "No Matches found"
msgstr "Aucune correspondance trouvée"
-#: ../cli.py:749
+#: ../cli.py:745
#, python-format
msgid "No Package Found for %s"
msgstr "Aucun paquetage trouvé pour %s"
-#: ../cli.py:761
+#: ../cli.py:757
msgid "Cleaning up Everything"
msgstr "Nettoyage complet"
-#: ../cli.py:775
+#: ../cli.py:771
msgid "Cleaning up Headers"
msgstr "Nettoyage des en-têtes"
-#: ../cli.py:778
+#: ../cli.py:774
msgid "Cleaning up Packages"
msgstr "Nettoyage des paquetages"
-#: ../cli.py:781
+#: ../cli.py:777
msgid "Cleaning up xml metadata"
msgstr "Nettoyage des méta données xml"
-#: ../cli.py:784
+#: ../cli.py:780
msgid "Cleaning up database cache"
msgstr "Nettoyage du cache de la base de données"
-#: ../cli.py:787
+#: ../cli.py:783
msgid "Cleaning up expire-cache metadata"
msgstr "Nettoyage des méta données expirées dans le cache"
-#: ../cli.py:790
+#: ../cli.py:786
msgid "Cleaning up plugins"
msgstr "Nettoyage des modules complémentaires"
-#: ../cli.py:812
+#: ../cli.py:807
msgid "Installed Groups:"
msgstr "Groupes installés :"
-#: ../cli.py:819
+#: ../cli.py:814
msgid "Available Groups:"
msgstr "Groupes disponibles :"
-#: ../cli.py:825
+#: ../cli.py:820
msgid "Done"
msgstr "Effectué"
-#: ../cli.py:836 ../cli.py:854 ../cli.py:860
+#: ../cli.py:829 ../cli.py:841 ../cli.py:847
#, python-format
msgid "Warning: Group %s does not exist."
msgstr "Attention : le groupe %s n'existe pas."
-#: ../cli.py:864
+#: ../cli.py:853
msgid "No packages in any requested group available to install or update"
msgstr ""
"Aucun paquetage disponible pour installation ou mise à jour dans les groupes "
"demandés"
-#: ../cli.py:866
+#: ../cli.py:855
#, python-format
msgid "%d Package(s) to Install"
msgstr "%d paquetage(s) Ã installer"
-#: ../cli.py:876
+#: ../cli.py:865
#, python-format
msgid "No group named %s exists"
msgstr "Aucun groupe nommé %s n'existe"
-#: ../cli.py:882
+#: ../cli.py:871
msgid "No packages to remove from groups"
msgstr "Aucun paquetage du groupe à supprimer"
-#: ../cli.py:884
+#: ../cli.py:873
#, python-format
msgid "%d Package(s) to remove"
msgstr "%d paquetage(s) Ã supprimer"
-#: ../cli.py:926
+#: ../cli.py:915
#, python-format
msgid "Package %s is already installed, skipping"
msgstr "Le paquetage %s est déjà installé, omission"
-#: ../cli.py:937
+#: ../cli.py:926
#, python-format
msgid "Discarding non-comparable pkg %s.%s"
msgstr "Rejet du paquetage non comparable %s.%s"
#. we've not got any installed that match n or n+a
-#: ../cli.py:963
+#: ../cli.py:952
#, python-format
msgid "No other %s installed, adding to list for potential install"
msgstr ""
"Pas d'autre %s installé, ajout à la liste pour installation potentielle"
-#: ../cli.py:982
+#: ../cli.py:971
#, python-format
msgid "Command line error: %s"
msgstr "Erreur sur la ligne de commande : %s"
-#: ../cli.py:994
-#, python-format
-msgid ""
-"\n"
-"\n"
-"%s: %s option requires an argument"
-msgstr ""
-"\n"
-"\n"
-"%s : l'option %s requiert un argument"
-
-#: ../cli.py:1123
-msgid "show this help message and exit"
-msgstr "affiche ce message d'aide et quitte"
-
-#: ../cli.py:1127
+#: ../cli.py:1101
msgid "be tolerant of errors"
msgstr "tolérer les erreurs"
-#: ../cli.py:1129
+#: ../cli.py:1103
msgid "run entirely from cache, don't update cache"
msgstr "exécuter entièrement depuis le cache, ne pas le mettre à jour"
-#: ../cli.py:1131
+#: ../cli.py:1105
msgid "config file location"
msgstr "emplacement du fichier de configuration"
-#: ../cli.py:1133
+#: ../cli.py:1107
msgid "maximum command wait time"
msgstr "temps d'attente maximum de la commande"
-#: ../cli.py:1135
+#: ../cli.py:1109
msgid "debugging output level"
msgstr "niveau de déboguage pour la sortie"
-#: ../cli.py:1139
+#: ../cli.py:1113
msgid "show duplicates, in repos, in list/search commands"
msgstr "afficher les doublons, dans les dépôts, pour les commandes list/search"
-#: ../cli.py:1141
+#: ../cli.py:1115
msgid "error output level"
msgstr "niveau d'erreur pour la sortie"
-#: ../cli.py:1144
+#: ../cli.py:1118
msgid "quiet operation"
msgstr "opération silencieuse"
-#: ../cli.py:1146
-msgid "verbose operation"
-msgstr "opération verbeuse"
-
-#: ../cli.py:1148
+#: ../cli.py:1122
msgid "answer yes for all questions"
msgstr "répondre oui à toutes les questions"
-#: ../cli.py:1150
+#: ../cli.py:1124
msgid "show Yum version and exit"
msgstr "affiche la version de Yum et quitte"
-#: ../cli.py:1151
+#: ../cli.py:1125
msgid "set install root"
msgstr "définit la racine d'installation"
-#: ../cli.py:1155
+#: ../cli.py:1129
msgid "enable one or more repositories (wildcards allowed)"
msgstr "active un ou plusieurs dépôts (jokers autorisés)"
-#: ../cli.py:1159
+#: ../cli.py:1133
msgid "disable one or more repositories (wildcards allowed)"
msgstr "désactive un ou plusieurs dépôts (jokers autorisés)"
-#: ../cli.py:1162
+#: ../cli.py:1136
msgid "exclude package(s) by name or glob"
msgstr "exclut des paquetages par nom ou caractère générique"
-#: ../cli.py:1164
+#: ../cli.py:1138
msgid "disable exclude from main, for a repo or for everything"
msgstr ""
"désactive l'exclusion pour le dépôt principal, pour un dépôt particulier ou "
"pour tout"
-#: ../cli.py:1167
+#: ../cli.py:1141
msgid "enable obsoletes processing during updates"
msgstr "active le traitement des paquetages obsolètes pendant les mises à jour"
-#: ../cli.py:1169
+#: ../cli.py:1143
msgid "disable Yum plugins"
msgstr "désactive les modules complémentaires Yum"
-#: ../cli.py:1171
+#: ../cli.py:1145
msgid "disable gpg signature checking"
msgstr "désactive la vérification de clé gpg"
-#: ../cli.py:1173
+#: ../cli.py:1147
msgid "disable plugins by name"
msgstr "désactive les modules complémentaires par nom"
-#: ../cli.py:1176
+#: ../cli.py:1150
msgid "skip packages with depsolving problems"
msgstr "omettre les paquetages qui ont des problèmes de dépendances"
-#: ../output.py:228
+#: ../output.py:229
msgid "Jan"
msgstr "Jan"
-#: ../output.py:228
+#: ../output.py:229
msgid "Feb"
msgstr "Fév"
-#: ../output.py:228
+#: ../output.py:229
msgid "Mar"
msgstr "Mars"
-#: ../output.py:228
+#: ../output.py:229
msgid "Apr"
msgstr "Avr"
-#: ../output.py:228
+#: ../output.py:229
msgid "May"
msgstr "Mai"
-#: ../output.py:228
+#: ../output.py:229
msgid "Jun"
msgstr "Juin"
-#: ../output.py:229
+#: ../output.py:230
msgid "Jul"
msgstr "Jui"
-#: ../output.py:229
+#: ../output.py:230
msgid "Aug"
msgstr "Août"
-#: ../output.py:229
+#: ../output.py:230
msgid "Sep"
msgstr "Sep"
-#: ../output.py:229
+#: ../output.py:230
msgid "Oct"
msgstr "Oct"
-#: ../output.py:229
+#: ../output.py:230
msgid "Nov"
msgstr "Nov"
-#: ../output.py:229
+#: ../output.py:230
msgid "Dec"
msgstr "Déc"
-#: ../output.py:239
+#: ../output.py:240
msgid "Trying other mirror."
msgstr "Essai d'un autre miroir."
@@ -554,23 +534,23 @@ msgstr "Description :"
msgid "Is this ok [y/N]: "
msgstr "Est-ce correct [o/N]Â : "
-#: ../output.py:359 ../output.py:362
+#: ../output.py:357 ../output.py:360
msgid "y"
msgstr "o"
-#: ../output.py:359
+#: ../output.py:357
msgid "n"
msgstr "n"
-#: ../output.py:359 ../output.py:362
+#: ../output.py:357 ../output.py:360
msgid "yes"
msgstr "oui"
-#: ../output.py:359
+#: ../output.py:357
msgid "no"
msgstr "non"
-#: ../output.py:370
+#: ../output.py:367
#, python-format
msgid ""
"\n"
@@ -579,98 +559,98 @@ msgstr ""
"\n"
"Groupe : %s"
-#: ../output.py:372
+#: ../output.py:369
#, python-format
msgid " Description: %s"
msgstr " Description : %s"
-#: ../output.py:374
+#: ../output.py:371
msgid " Mandatory Packages:"
msgstr " Paquetages mandataires :"
-#: ../output.py:379
+#: ../output.py:376
msgid " Default Packages:"
msgstr "Paquetages par défaut :"
-#: ../output.py:384
+#: ../output.py:381
msgid " Optional Packages:"
msgstr "Paquetages optionnels :"
-#: ../output.py:389
+#: ../output.py:386
msgid " Conditional Packages:"
msgstr " Paquetages conditionnels :"
-#: ../output.py:398
+#: ../output.py:394
#, python-format
msgid "package: %s"
msgstr "paquetage : %s"
-#: ../output.py:400
+#: ../output.py:396
msgid " No dependencies for this package"
msgstr "Pas de dépendances pour ce paquetage"
-#: ../output.py:405
+#: ../output.py:401
#, python-format
msgid " dependency: %s"
msgstr " dépendance : %s"
-#: ../output.py:407
+#: ../output.py:403
msgid " Unsatisfied dependency"
msgstr " Dépendance non satisfaite"
-#: ../output.py:465
+#: ../output.py:461
msgid "Matched from:"
msgstr "Correspondance depuis :"
-#: ../output.py:491
+#: ../output.py:487
msgid "There was an error calculating total download size"
msgstr ""
"Une erreur est survenue pendant le calcul de la taille totale des "
"téléchargements"
-#: ../output.py:496
+#: ../output.py:492
#, python-format
msgid "Total size: %s"
msgstr "Taille totale : %s"
-#: ../output.py:499
+#: ../output.py:495
#, python-format
msgid "Total download size: %s"
msgstr "Taille totale des téléchargement : %s"
-#: ../output.py:511
+#: ../output.py:507
msgid "Package"
msgstr "Paquetage"
-#: ../output.py:511
+#: ../output.py:507
msgid "Arch"
msgstr "Architecture"
-#: ../output.py:511
+#: ../output.py:507
msgid "Version"
msgstr "Version"
-#: ../output.py:511
+#: ../output.py:507
msgid "Repository"
msgstr "Dépôt"
-#: ../output.py:511
+#: ../output.py:507
msgid "Size"
msgstr "Taille"
-#: ../output.py:518
+#: ../output.py:514
msgid "Installing for dependencies"
msgstr "Installation pour dépendance"
-#: ../output.py:519
+#: ../output.py:515
msgid "Updating for dependencies"
msgstr "Mise à jour pour dépendance"
-#: ../output.py:520
+#: ../output.py:516
msgid "Removing for dependencies"
msgstr "Suppression pour dépendance"
-#: ../output.py:532
+#: ../output.py:528
#, python-format
msgid ""
" replacing %s.%s %s\n"
@@ -679,7 +659,7 @@ msgstr ""
" remplace %s.%s %s\n"
"\n"
-#: ../output.py:540
+#: ../output.py:536
#, python-format
msgid ""
"\n"
@@ -696,27 +676,27 @@ msgstr ""
"Mise à jour %5.5s Package(s) \n"
"Suppression %5.5s Package(s) \n"
-#: ../output.py:558
+#: ../output.py:554
msgid "Removed"
msgstr "Supprimé"
-#: ../output.py:559
+#: ../output.py:555
msgid "Dependency Removed"
msgstr "Dépendance supprimée"
-#: ../output.py:561
+#: ../output.py:557
msgid "Dependency Installed"
msgstr "Dépendance installée"
-#: ../output.py:563
+#: ../output.py:559
msgid "Dependency Updated"
msgstr "Dépendance mise à jour"
-#: ../output.py:564
+#: ../output.py:560
msgid "Replaced"
msgstr "Remplacé"
-#: ../output.py:622
+#: ../output.py:618
#, python-format
msgid ""
"\n"
@@ -727,76 +707,76 @@ msgstr ""
"Téléchargement courant annulé, interruption %s (crtl-c), %s de nouveau dans %"
"s%s%s secondes pour quitter.\n"
-#: ../output.py:632
+#: ../output.py:628
msgid "user interrupt"
msgstr "interruption par l'utilisateur"
-#: ../output.py:643
+#: ../output.py:639
msgid "installed"
msgstr "installé"
-#: ../output.py:644
+#: ../output.py:640
msgid "updated"
msgstr "mis à jour"
-#: ../output.py:645
+#: ../output.py:641
msgid "obsoleted"
msgstr "obsolète"
-#: ../output.py:646
+#: ../output.py:642
msgid "erased"
msgstr "effacé"
-#: ../output.py:650
+#: ../output.py:646
#, python-format
msgid "---> Package %s.%s %s:%s-%s set to be %s"
msgstr "---> Paquetage %s.%s %s:%s-%s marqué pour être %s "
-#: ../output.py:657
+#: ../output.py:653
msgid "--> Running transaction check"
msgstr "--> Lancement de la transaction de test"
-#: ../output.py:662
+#: ../output.py:658
msgid "--> Restarting Dependency Resolution with new changes."
msgstr ""
"--> Redémarrage de la résolution des dépendances avec les nouveaux "
"changements."
-#: ../output.py:667
+#: ../output.py:663
msgid "--> Finished Dependency Resolution"
msgstr "--> Résolution des dépendances terminée"
-#: ../output.py:672
+#: ../output.py:668
#, python-format
msgid "--> Processing Dependency: %s for package: %s"
msgstr "--> Traitement de la dépendance : %s pour le paquetage : %s"
-#: ../output.py:677
+#: ../output.py:673
#, python-format
msgid "--> Unresolved Dependency: %s"
msgstr "--> Dépendance non résolue : %s"
-#: ../output.py:683
+#: ../output.py:679
#, python-format
msgid "--> Processing Conflict: %s conflicts %s"
msgstr "--> Traitement du conflit : %s entre en conflit avec %s"
-#: ../output.py:686
+#: ../output.py:682
msgid "--> Populating transaction set with selected packages. Please wait."
msgstr ""
"--> Peuplement du jeu de transaction avec les paquetages sélectionnés. Merci "
"de patienter."
-#: ../output.py:690
+#: ../output.py:686
#, python-format
msgid "---> Downloading header for %s to pack into transaction set."
msgstr "--> Téléchargement de l'en-tête de %s pour l'ajouter à la transaction."
-#: ../yumcommands.py:37
+#: ../yumcommands.py:36
msgid "You need to be root to perform this command."
msgstr "Vous devez être super-utilisateur pour lancer cette commande."
-#: ../yumcommands.py:44
+#: ../yumcommands.py:43
msgid ""
"\n"
"You have enabled checking of packages via GPG keys. This is a good thing. \n"
@@ -831,265 +811,249 @@ msgstr ""
"Pour plus de renseignements, contactez le fournisseur de paquetages de votre "
"distribution.\n"
-#: ../yumcommands.py:64
+#: ../yumcommands.py:63
#, python-format
msgid "Error: Need to pass a list of pkgs to %s"
msgstr "Erreur : il faut passer une liste de paquetages à %s"
-#: ../yumcommands.py:70
+#: ../yumcommands.py:69
msgid "Error: Need an item to match"
msgstr "Erreur : un élément de correspondance est requis"
-#: ../yumcommands.py:76
+#: ../yumcommands.py:75
msgid "Error: Need a group or list of groups"
msgstr "Erreur : un groupe ou une liste de groupes est requise"
-#: ../yumcommands.py:85
+#: ../yumcommands.py:84
#, python-format
msgid "Error: clean requires an option: %s"
msgstr "Erreur : clean requiert une option : %s"
-#: ../yumcommands.py:90
+#: ../yumcommands.py:89
#, python-format
msgid "Error: invalid clean argument: %r"
msgstr "Erreur : argument invalide pour clean : %r"
-#: ../yumcommands.py:103
+#: ../yumcommands.py:102
msgid "No argument to shell"
msgstr "Pas d'options à passer au terminal"
-#: ../yumcommands.py:106
+#: ../yumcommands.py:105
#, python-format
msgid "Filename passed to shell: %s"
msgstr "Nom de fichier passé au terminal : %s"
-#: ../yumcommands.py:110
+#: ../yumcommands.py:109
#, python-format
msgid "File %s given as argument to shell does not exist."
msgstr "Le fichier %s passé en argument au shell n'existe pas."
-#: ../yumcommands.py:116
+#: ../yumcommands.py:115
msgid "Error: more than one file given as argument to shell."
msgstr "Erreur : plus d'un fichier passé en argument au shell."
-#: ../yumcommands.py:157
+#: ../yumcommands.py:156
msgid "PACKAGE..."
msgstr "PAQUETAGE..."
-#: ../yumcommands.py:160
+#: ../yumcommands.py:159
msgid "Install a package or packages on your system"
msgstr "Installe un ou plusieurs paquetages sur votre système"
-#: ../yumcommands.py:169
+#: ../yumcommands.py:168
msgid "Setting up Install Process"
msgstr "Configuration du processus d'installation"
-#: ../yumcommands.py:180
+#: ../yumcommands.py:179
msgid "[PACKAGE...]"
msgstr "[PAQUETAGE...]"
-#: ../yumcommands.py:183
+#: ../yumcommands.py:182
msgid "Update a package or packages on your system"
msgstr "Met à jour un ou plusieurs paquetages sur votre système"
-#: ../yumcommands.py:191
+#: ../yumcommands.py:190
msgid "Setting up Update Process"
msgstr "Configuration du processus de mise à jour"
-#: ../yumcommands.py:205
+#: ../yumcommands.py:204
msgid "Display details about a package or group of packages"
msgstr "Affiche les détails d'un paquetage ou d'un groupe de paquetages"
-#: ../yumcommands.py:213
+#: ../yumcommands.py:212
msgid "Installed Packages"
msgstr "Paquetages installés"
-#: ../yumcommands.py:214
+#: ../yumcommands.py:213
msgid "Available Packages"
msgstr "Paquetages disponibles"
-#: ../yumcommands.py:215
+#: ../yumcommands.py:214
msgid "Extra Packages"
msgstr "Paquetages supplémentaires"
-#: ../yumcommands.py:216
+#: ../yumcommands.py:215
msgid "Updated Packages"
msgstr "Paquetages mis à jour"
-#: ../yumcommands.py:222 ../yumcommands.py:228
+#: ../yumcommands.py:221 ../yumcommands.py:225
msgid "Obsoleting Packages"
msgstr "Obsolescence des paquetages"
-#: ../yumcommands.py:229
+#: ../yumcommands.py:226
msgid "Recently Added Packages"
msgstr "Paquetages récemment ajoutés"
-#: ../yumcommands.py:235
+#: ../yumcommands.py:232
msgid "No matching Packages to list"
msgstr "Aucun paquetage correspondant à lister"
-#: ../yumcommands.py:249
+#: ../yumcommands.py:246
msgid "List a package or groups of packages"
msgstr "Liste un paquetage ou un groupe de paquetages"
-#: ../yumcommands.py:261
+#: ../yumcommands.py:258
msgid "Remove a package or packages from your system"
msgstr "Supprime un ou plusieurs paquetages de votre système"
-#: ../yumcommands.py:269
+#: ../yumcommands.py:266
msgid "Setting up Remove Process"
msgstr "Configuration du processus de suppression"
-#: ../yumcommands.py:281
+#: ../yumcommands.py:278
msgid "Setting up Group Process"
msgstr "Configuration du processus de groupe"
-#: ../yumcommands.py:287
+#: ../yumcommands.py:284
msgid "No Groups on which to run command"
msgstr "Aucun groupe sur lequel lancer la commande"
-#: ../yumcommands.py:300
+#: ../yumcommands.py:297
msgid "List available package groups"
msgstr "Liste les groupes de paquetages disponibles"
-#: ../yumcommands.py:317
+#: ../yumcommands.py:314
msgid "Install the packages in a group on your system"
msgstr "Installe les paquetages d'un groupe sur votre système"
-#: ../yumcommands.py:339
+#: ../yumcommands.py:336
msgid "Remove the packages in a group from your system"
msgstr "Supprime les paquetages d'un groupe de votre système"
-#: ../yumcommands.py:363
+#: ../yumcommands.py:360
msgid "Display details about a package group"
msgstr "Affiche des détails sur un groupe de paquetages"
-#: ../yumcommands.py:387
+#: ../yumcommands.py:384
msgid "Generate the metadata cache"
msgstr "Génère le cache des méta données"
-#: ../yumcommands.py:393
+#: ../yumcommands.py:390
msgid "Making cache files for all metadata files."
msgstr "Création des fichiers de cache pour tous les fichiers de méta données."
-#: ../yumcommands.py:394
+#: ../yumcommands.py:391
msgid "This may take a while depending on the speed of this computer"
msgstr "Cela peut prendre du temps en fonction de la vitesse de cet ordinateur"
-#: ../yumcommands.py:415
+#: ../yumcommands.py:412
msgid "Metadata Cache Created"
msgstr "Cache des méta données créé"
-#: ../yumcommands.py:429
+#: ../yumcommands.py:426
msgid "Remove cached data"
msgstr "Supprime les données en cache"
-#: ../yumcommands.py:450
+#: ../yumcommands.py:447
msgid "Find what package provides the given value"
msgstr "Cherche à quel paquetage correspond la valeur donnée"
-#: ../yumcommands.py:470
+#: ../yumcommands.py:467
msgid "Check for available package updates"
msgstr "Cherche les mises à jour de paquetages disponibles"
-#: ../yumcommands.py:493
+#: ../yumcommands.py:490
msgid "Search package details for the given string"
msgstr "Cherche les détails du paquetage en fonction de la chaîne entrée"
-#: ../yumcommands.py:499
+#: ../yumcommands.py:496
msgid "Searching Packages: "
msgstr "Recherche dans les paquetages :"
-#: ../yumcommands.py:516
+#: ../yumcommands.py:513
msgid "Update packages taking obsoletes into account"
msgstr "Mises à jour en tenant compte des paquetages obsolètes du profil"
-#: ../yumcommands.py:525
+#: ../yumcommands.py:522
msgid "Setting up Upgrade Process"
msgstr "Configuration du processus de mise à jour"
-#: ../yumcommands.py:539
+#: ../yumcommands.py:536
msgid "Install a local RPM"
msgstr "Installe un RPM local"
-#: ../yumcommands.py:548
+#: ../yumcommands.py:545
msgid "Setting up Local Package Process"
msgstr "Configuration du processus de paquetages locaux"
-#: ../yumcommands.py:567
+#: ../yumcommands.py:564
msgid "Determine which package provides the given dependency"
msgstr "Détermine quel paquetage fournit une dépendance donnée"
-#: ../yumcommands.py:570
+#: ../yumcommands.py:567
msgid "Searching Packages for Dependency:"
msgstr "Recherche dans les paquetages pour la dépendance :"
-#: ../yumcommands.py:584
+#: ../yumcommands.py:581
msgid "Run an interactive yum shell"
msgstr "Lance un shell yum interactif"
-#: ../yumcommands.py:590
+#: ../yumcommands.py:587
msgid "Setting up Yum Shell"
msgstr "Configuration du shell Yum"
-#: ../yumcommands.py:608
+#: ../yumcommands.py:605
msgid "List a package's dependencies"
msgstr "Liste les dépendances d'un paquetage"
-#: ../yumcommands.py:614
+#: ../yumcommands.py:611
msgid "Finding dependencies: "
msgstr "Recherche de dépendances :"
-#: ../yumcommands.py:630
+#: ../yumcommands.py:627
msgid "Display the configured software repositories"
msgstr "Affiche les dépôts logiciels configurés"
-#: ../yumcommands.py:666
-msgid "enabled"
-msgstr "activé"
-
-#: ../yumcommands.py:673
-msgid "disabled"
-msgstr "désactivé"
-
-#: ../yumcommands.py:682
+#: ../yumcommands.py:645
msgid "repo id"
msgstr "id du dépôt"
-#: ../yumcommands.py:683
+#: ../yumcommands.py:645
msgid "repo name"
msgstr "nom du dépôt"
-#: ../yumcommands.py:683
+#: ../yumcommands.py:645
msgid "status"
msgstr "statut"
-#: ../yumcommands.py:686
-msgid "Repo-id : "
-msgstr "Id du dépôt : "
-
-#: ../yumcommands.py:687
-msgid "Repo-name : "
-msgstr "Nom du dépôt  : "
-
-#: ../yumcommands.py:688
-msgid "Repo-enabled: "
-msgstr "Dépôt activé :"
+#: ../yumcommands.py:651
+msgid "enabled"
+msgstr "activé"
-#: ../yumcommands.py:689
-msgid "Repo-size : "
-msgstr "Nom du dépôt  : "
+#: ../yumcommands.py:654
+msgid "disabled"
+msgstr "désactivé"
-#: ../yumcommands.py:713
+#: ../yumcommands.py:671
msgid "Display a helpful usage message"
msgstr "Affiche un message d'aide à l'utilisation"
-#: ../yumcommands.py:747
+#: ../yumcommands.py:705
#, python-format
msgid "No help available for %s"
msgstr "Aucune aide disponible pour %s"
-#: ../yumcommands.py:752
+#: ../yumcommands.py:710
msgid ""
"\n"
"\n"
@@ -1099,7 +1063,7 @@ msgstr ""
"\n"
"alias : "
-#: ../yumcommands.py:754
+#: ../yumcommands.py:712
msgid ""
"\n"
"\n"
@@ -1109,15 +1073,15 @@ msgstr ""
"\n"
"alias : "
-#: ../yumcommands.py:783
+#: ../yumcommands.py:741
msgid "Setting up Reinstall Process"
msgstr "Configuration du processus de réinstallation"
-#: ../yumcommands.py:797
+#: ../yumcommands.py:755
msgid "reinstall a package"
msgstr "réinstaller un paquetage"
-#: ../yummain.py:55
+#: ../yummain.py:41
msgid ""
"\n"
"\n"
@@ -1127,7 +1091,7 @@ msgstr ""
"\n"
"Sortie sur annulation par l'utilisateur"
-#: ../yummain.py:61
+#: ../yummain.py:47
msgid ""
"\n"
"\n"
@@ -1137,29 +1101,29 @@ msgstr ""
"\n"
"Sortie suite à une redirection cassée"
-#: ../yummain.py:112
+#: ../yummain.py:105
msgid ""
"Another app is currently holding the yum lock; waiting for it to exit..."
msgstr ""
"Une autre application verrouille actuellement l'utilisation de yum ; attente "
"de déverrouillage..."
-#: ../yummain.py:139 ../yummain.py:178
+#: ../yummain.py:132 ../yummain.py:171
#, python-format
msgid "Error: %s"
msgstr "Erreur : %s"
-#: ../yummain.py:149 ../yummain.py:185
+#: ../yummain.py:142 ../yummain.py:178
#, python-format
msgid "Unknown Error(s): Exit Code: %d:"
msgstr "Erreur(s) inconnue(s) : Code de sortie : %d :"
#. Depsolve stage
-#: ../yummain.py:156
+#: ../yummain.py:149
msgid "Resolving Dependencies"
msgstr "Résolution des dépendances"
-#: ../yummain.py:191
+#: ../yummain.py:184
msgid ""
"\n"
"Dependencies Resolved"
@@ -1167,11 +1131,11 @@ msgstr ""
"\n"
"Dépendances résolues"
-#: ../yummain.py:205
+#: ../yummain.py:198
msgid "Complete!"
msgstr "Terminé !"
-#: ../yummain.py:252
+#: ../yummain.py:245
msgid ""
"\n"
"\n"
@@ -1181,266 +1145,326 @@ msgstr ""
"\n"
"Sortie sur annulation par l'utilisateur."
-#: ../yum/depsolve.py:78
+#: ../yum/depsolve.py:82
msgid "doTsSetup() will go away in a future version of Yum.\n"
msgstr "doTsSetup() sera supprimé dans une future version de Yum.\n"
-#: ../yum/depsolve.py:91
+#: ../yum/depsolve.py:95
msgid "Setting up TransactionSets before config class is up"
msgstr "Mise en place de l'ensemble des transactions avant configuration"
-#: ../yum/depsolve.py:132
+#: ../yum/depsolve.py:136
#, python-format
msgid "Invalid tsflag in config file: %s"
msgstr "tsflag invalide dans le fichier de configuration : %s"
-#: ../yum/depsolve.py:176
+#: ../yum/depsolve.py:147
+#, python-format
+msgid "Searching pkgSack for dep: %s"
+msgstr "Recherche dans le regroupement pour la dépendance : %s"
+
+#: ../yum/depsolve.py:170
+#, python-format
+msgid "Potential match for %s from %s"
+msgstr "Correspondance potentielle pour %s depuis %s"
+
+#: ../yum/depsolve.py:178
+#, python-format
+msgid "Matched %s to require for %s"
+msgstr "Correspondance %s trouvé pour %s "
+
+#: ../yum/depsolve.py:219
#, python-format
msgid "Member: %s"
msgstr "Membre : %s"
-#: ../yum/depsolve.py:190 ../yum/depsolve.py:592
+#: ../yum/depsolve.py:233 ../yum/depsolve.py:696
#, python-format
msgid "%s converted to install"
msgstr "%s converti pour installation"
-#: ../yum/depsolve.py:197
+#: ../yum/depsolve.py:240
#, python-format
msgid "Adding Package %s in mode %s"
msgstr "Ajout du paquetage %s en mode %s"
-#: ../yum/depsolve.py:207
+#: ../yum/depsolve.py:250
#, python-format
msgid "Removing Package %s"
msgstr "Suppression du paquetage %s"
-#: ../yum/depsolve.py:218
+#: ../yum/depsolve.py:261
#, python-format
msgid "%s requires: %s"
msgstr "%s requiert : %s"
-#: ../yum/depsolve.py:273
+#: ../yum/depsolve.py:312
+msgid "Needed Require has already been looked up, cheating"
+msgstr "Le prérequis a déjà été trouvé, on triche"
+
+#: ../yum/depsolve.py:322
+#, python-format
+msgid "Needed Require is not a package name. Looking up: %s"
+msgstr "Le prérequis n'est pas un nom de paquetage. Recherche de : %s "
+
+#: ../yum/depsolve.py:329
+#, python-format
+msgid "Potential Provider: %s"
+msgstr "Fournisseur potentiel : %s"
+
+#: ../yum/depsolve.py:352
+#, python-format
+msgid "Mode is %s for provider of %s: %s"
+msgstr "Le mode est %s pour le fournisseur de %s : %s"
+
+#: ../yum/depsolve.py:356
+#, python-format
+msgid "Mode for pkg providing %s: %s"
+msgstr "Mode pour le paquetage qui fournit %s : %s"
+
+#: ../yum/depsolve.py:360
+#, python-format
+msgid "TSINFO: %s package requiring %s marked as erase"
+msgstr "TSINFO : le paquetage %s requiert %s marqué pour suppression"
+
+#: ../yum/depsolve.py:372
#, python-format
msgid "TSINFO: Obsoleting %s with %s to resolve dep."
msgstr "TSINFO : Obsolescence de %s avec %s pour résoudre les dépendances."
-#: ../yum/depsolve.py:276
+#: ../yum/depsolve.py:375
#, python-format
msgid "TSINFO: Updating %s to resolve dep."
msgstr "TSINFO : Mise à jour de %s pour la résolution des dépendances."
-#: ../yum/depsolve.py:279
+#: ../yum/depsolve.py:378
#, python-format
msgid "Cannot find an update path for dep for: %s"
msgstr ""
"Impossible de trouver un chemin de mise à jour pour la dépendance de : %s"
-#: ../yum/depsolve.py:283
+#: ../yum/depsolve.py:388
#, python-format
-msgid "TSINFO: %s package requiring %s marked as erase"
-msgstr "TSINFO : le paquetage %s requiert %s marqué pour suppression"
+msgid "Unresolvable requirement %s for %s"
+msgstr "Impossible de résoudre le prérequis %s pour %s"
#. is it already installed?
-#: ../yum/depsolve.py:329
+#: ../yum/depsolve.py:434
#, python-format
msgid "%s is in providing packages but it is already installed, removing."
msgstr ""
"%s est dans les paquetages fournis mais est déjà installé, suppression."
-#: ../yum/depsolve.py:344
+#: ../yum/depsolve.py:449
#, python-format
msgid "Potential resolving package %s has newer instance in ts."
msgstr ""
"ts contient une version plus récente du paquetage %s susceptible de résoudre "
"la dépendance."
-#: ../yum/depsolve.py:355
+#: ../yum/depsolve.py:460
#, python-format
msgid "Potential resolving package %s has newer instance installed."
msgstr ""
"Le paquetage susceptible de résoudre la dépedence %s est déjà installé dans "
"une version plus récente."
-#: ../yum/depsolve.py:363 ../yum/depsolve.py:410
+#: ../yum/depsolve.py:468 ../yum/depsolve.py:527
#, python-format
msgid "Missing Dependency: %s is needed by package %s"
msgstr "Dépendance manquante : %s est requis par le paquetage %s"
-#: ../yum/depsolve.py:376
+#: ../yum/depsolve.py:481
#, python-format
msgid "%s already in ts, skipping this one"
msgstr "%s déjà dans ts, omission de celui-ci"
-#: ../yum/depsolve.py:420
+#: ../yum/depsolve.py:510
+#, python-format
+msgid ""
+"Failure finding best provider of %s for %s, exceeded maximum loop length"
+msgstr ""
+
+#: ../yum/depsolve.py:537
#, python-format
msgid "TSINFO: Marking %s as update for %s"
msgstr "TSINFO : Sélection de %s pour mise à jour de %s"
-#: ../yum/depsolve.py:427
+#: ../yum/depsolve.py:544
#, python-format
msgid "TSINFO: Marking %s as install for %s"
msgstr "TSINFO : Sélection de %s pour installation de %s"
-#: ../yum/depsolve.py:518 ../yum/depsolve.py:610
+#: ../yum/depsolve.py:635 ../yum/depsolve.py:714
msgid "Success - empty transaction"
msgstr "Succès - transaction vide"
-#: ../yum/depsolve.py:562 ../yum/depsolve.py:582
+#: ../yum/depsolve.py:673 ../yum/depsolve.py:686
msgid "Restarting Loop"
msgstr "Re-démarrage de la boucle"
-#: ../yum/depsolve.py:598
+#: ../yum/depsolve.py:702
msgid "Dependency Process ending"
msgstr "Finalisation du processus de dépendance"
-#: ../yum/depsolve.py:604
+#: ../yum/depsolve.py:708
#, python-format
msgid "%s from %s has depsolving problems"
msgstr "%s de %s a des problèmes de dépendances"
-#: ../yum/depsolve.py:611
+#: ../yum/depsolve.py:715
msgid "Success - deps resolved"
msgstr "Succès - dépendances résolues"
-#: ../yum/depsolve.py:625
+#: ../yum/depsolve.py:729
#, python-format
msgid "Checking deps for %s"
msgstr "Recherche des dépendances pour %s"
-#: ../yum/depsolve.py:687
+#: ../yum/depsolve.py:782
#, python-format
msgid "looking for %s as a requirement of %s"
msgstr "recherche de %s comme prérequis de %s"
-#: ../yum/depsolve.py:814
+#: ../yum/depsolve.py:933
#, python-format
-msgid "Running compare_providers() for %s"
-msgstr "Lancement de compare_providers() pour %s"
+msgid "Comparing best: %s to po: %s"
+msgstr ""
-#: ../yum/depsolve.py:842 ../yum/depsolve.py:848
+#: ../yum/depsolve.py:937
+#, python-format
+msgid "Same: best %s == po: %s"
+msgstr ""
+
+#: ../yum/depsolve.py:952 ../yum/depsolve.py:963
+#, fuzzy, python-format
+msgid "best %s obsoletes po: %s"
+msgstr "%s rend obsolète %s"
+
+#: ../yum/depsolve.py:955
+#, fuzzy, python-format
+msgid "po %s obsoletes best: %s"
+msgstr "%s rend obsolète %s"
+
+#: ../yum/depsolve.py:972 ../yum/depsolve.py:979 ../yum/depsolve.py:1036
#, python-format
msgid "better arch in po %s"
msgstr "meilleure architecture dans l'objet paquetage %s"
-#: ../yum/depsolve.py:887
+#: ../yum/depsolve.py:988 ../yum/depsolve.py:1010
#, python-format
-msgid "%s obsoletes %s"
-msgstr "%s rend obsolète %s"
+msgid "po %s shares a sourcerpm with %s"
+msgstr ""
-#: ../yum/depsolve.py:898
+#: ../yum/depsolve.py:992 ../yum/depsolve.py:1015
#, python-format
-msgid ""
-"archdist compared %s to %s on %s\n"
-" Winner: %s"
+msgid "best %s shares a sourcerpm with %s"
msgstr ""
-"architecture %s comparée à %s sur %s\n"
-" Gagnant : %s"
-#: ../yum/depsolve.py:905
+#: ../yum/depsolve.py:999 ../yum/depsolve.py:1020
#, python-format
-msgid "common sourcerpm %s and %s"
-msgstr "rpm source commun pour %s et %s"
+msgid "po %s shares more of the name prefix with %s"
+msgstr ""
-#: ../yum/depsolve.py:911
+#: ../yum/depsolve.py:1003 ../yum/depsolve.py:1029
#, python-format
-msgid "common prefix of %s between %s and %s"
-msgstr "préfix commun %s entre %s et %s"
+msgid "po %s has a shorter name than best %s"
+msgstr ""
-#: ../yum/depsolve.py:919
+#: ../yum/depsolve.py:1025
#, python-format
-msgid "Best Order: %s"
-msgstr "Meilleur ordre : %s"
+msgid "bestpkg %s shares more of the name prefix with %s"
+msgstr ""
-#: ../yum/__init__.py:148
+#: ../yum/__init__.py:119
msgid "doConfigSetup() will go away in a future version of Yum.\n"
msgstr "doConfigSetup() sera supprimé dans une future version de Yum.\n"
-#. FIXME: Use critical? or exception?
-#: ../yum/__init__.py:323
+#: ../yum/__init__.py:296
#, python-format
msgid "Repository %r is missing name in configuration, using id"
msgstr ""
"Il manque le nom du dépôt %r dans la configuration, utilisation de "
"l'identifiant"
-#: ../yum/__init__.py:359
+#: ../yum/__init__.py:332
msgid "plugins already initialised"
msgstr "modules complémentaires déjà initialisés"
-#: ../yum/__init__.py:366
+#: ../yum/__init__.py:339
msgid "doRpmDBSetup() will go away in a future version of Yum.\n"
msgstr "doRpmDBSetup() sera supprimé dans une future version de Yum.\n"
-#: ../yum/__init__.py:376
+#: ../yum/__init__.py:349
msgid "Reading Local RPMDB"
msgstr "Lecture de la base de données RPM locale"
-#: ../yum/__init__.py:394
+#: ../yum/__init__.py:367
msgid "doRepoSetup() will go away in a future version of Yum.\n"
msgstr "doRepoSetup() sera supprimé dans une future version de Yum.\n"
-#: ../yum/__init__.py:414
+#: ../yum/__init__.py:387
msgid "doSackSetup() will go away in a future version of Yum.\n"
msgstr "doSackSetup() sera supprimé dans une future version de Yum.\n"
-#: ../yum/__init__.py:431
+#: ../yum/__init__.py:404
msgid "Setting up Package Sacks"
msgstr "Configuration du groupe de paquetages"
-#: ../yum/__init__.py:474
+#: ../yum/__init__.py:447
#, python-format
msgid "repo object for repo %s lacks a _resetSack method\n"
msgstr "une méthode _resetSack est manquante pour l'objet dépôt du dépôt %s\n"
-#: ../yum/__init__.py:475
+#: ../yum/__init__.py:448
msgid "therefore this repo cannot be reset.\n"
msgstr "en conséquence ce dépôt ne peut être réinitialisé.\n"
-#: ../yum/__init__.py:480
+#: ../yum/__init__.py:453
msgid "doUpdateSetup() will go away in a future version of Yum.\n"
msgstr "doUpdateSetup() sera supprimé dans une future version de Yum.\n"
-#: ../yum/__init__.py:492
+#: ../yum/__init__.py:465
msgid "Building updates object"
msgstr "Construction de l'objet de mises à jour"
-#: ../yum/__init__.py:523
+#: ../yum/__init__.py:496
msgid "doGroupSetup() will go away in a future version of Yum.\n"
msgstr "doGroupSetup() sera supprimé dans une future version de Yum.\n"
-#: ../yum/__init__.py:547
+#: ../yum/__init__.py:520
msgid "Getting group metadata"
msgstr "Obtention des méta données du groupe"
-#: ../yum/__init__.py:572
+#: ../yum/__init__.py:546
#, python-format
msgid "Adding group file from repository: %s"
msgstr "Ajout du ficher de groupes depuis le dépôt : %s"
-#: ../yum/__init__.py:577
+#: ../yum/__init__.py:555
#, python-format
msgid "Failed to add groups file for repository: %s - %s"
msgstr "Ãchec d'ajout du fichier de groupes pour le dépôt : %s - %s"
-#: ../yum/__init__.py:583
+#: ../yum/__init__.py:561
msgid "No Groups Available in any repository"
msgstr "Aucun groupe disponible dans les dépôts"
-#: ../yum/__init__.py:633
+#: ../yum/__init__.py:611
msgid "Importing additional filelist information"
msgstr "Import d'informations additionnelles sur la liste de fichiers"
-#: ../yum/__init__.py:684
+#: ../yum/__init__.py:657
#, python-format
msgid "Skip-broken round %i"
msgstr "Cycle %i d'évitement des dépendances cassées"
-#: ../yum/__init__.py:707
+#: ../yum/__init__.py:680
#, python-format
msgid "Skip-broken took %i rounds "
msgstr "L'évitement des dépendances cassées a pris %i cycles"
-#: ../yum/__init__.py:708
+#: ../yum/__init__.py:681
msgid ""
"\n"
"Packages skipped because of dependency problems:"
@@ -1448,103 +1472,97 @@ msgstr ""
"\n"
"Paquetages ignorés en raison de problèmes de dépendances :"
-#: ../yum/__init__.py:712
+#: ../yum/__init__.py:685
#, python-format
msgid " %s from %s"
msgstr " %s depuis %s"
-#: ../yum/__init__.py:792
-msgid ""
-"Warning: scriptlet or other non-fatal errors occurred during transaction."
-msgstr ""
-"Attention : scriptlet ou autre erreur non fatale pendant la transaction."
-
-#: ../yum/__init__.py:807
+#: ../yum/__init__.py:774
#, python-format
msgid "Failed to remove transaction file %s"
msgstr "Ãchec de la suppression du fichier de transaction %s"
-#: ../yum/__init__.py:847
+#: ../yum/__init__.py:814
#, python-format
msgid "excluding for cost: %s from %s"
msgstr "exclusion pour coût : %s depuis %s"
-#: ../yum/__init__.py:878
+#: ../yum/__init__.py:845
msgid "Excluding Packages in global exclude list"
msgstr "Exclusion des paquetages dans la liste globale d'exclusion"
-#: ../yum/__init__.py:880
+#: ../yum/__init__.py:847
#, python-format
msgid "Excluding Packages from %s"
msgstr "Exclusion des paquetages depuis %s"
-#: ../yum/__init__.py:906
+#: ../yum/__init__.py:875
#, python-format
msgid "Reducing %s to included packages only"
msgstr "Réduction de %s aux paquetages inclus uniquement"
-#: ../yum/__init__.py:911
+#: ../yum/__init__.py:880
#, python-format
msgid "Keeping included package %s"
msgstr "Conservation du paquetage inclus %s"
-#: ../yum/__init__.py:917
+#: ../yum/__init__.py:886
#, python-format
msgid "Removing unmatched package %s"
msgstr "Suppression du paquetage non concordant %s"
-#: ../yum/__init__.py:920
+#: ../yum/__init__.py:889
msgid "Finished"
msgstr "Terminé"
#. Whoa. What the heck happened?
-#: ../yum/__init__.py:950
+#: ../yum/__init__.py:919
#, python-format
msgid "Unable to check if PID %s is active"
msgstr "Impossible de vérifier si le PID %s est actif"
#. Another copy seems to be running.
-#: ../yum/__init__.py:954
+#: ../yum/__init__.py:923
#, python-format
msgid "Existing lock %s: another copy is running as pid %s."
msgstr "Verrou %s existant : une autre copie est lancée avec le pid %s."
-#: ../yum/__init__.py:1017
+#: ../yum/__init__.py:970 ../yum/__init__.py:977
msgid "Package does not match intended download"
msgstr "Le paquetage ne correspond pas au téléchargement attendu"
-#: ../yum/__init__.py:1032
+#: ../yum/__init__.py:991
msgid "Could not perform checksum"
msgstr "Ne peut procéder à la vérification des sommes de contrôle"
-#: ../yum/__init__.py:1035
+#: ../yum/__init__.py:994
msgid "Package does not match checksum"
msgstr "Le paquetage ne correspond pas à sa somme de contrôle"
-#: ../yum/__init__.py:1079
+#: ../yum/__init__.py:1036
#, python-format
msgid "package fails checksum but caching is enabled for %s"
msgstr ""
"Le paquetage ne correspond pas à la somme de contrôle mais le cache est "
"activé pour %s"
-#: ../yum/__init__.py:1082
+#: ../yum/__init__.py:1042
#, python-format
msgid "using local copy of %s"
msgstr "utilisation de la copie locale de %s"
-#: ../yum/__init__.py:1107
+#: ../yum/__init__.py:1061
#, python-format
msgid "Insufficient space in download directory %s to download"
msgstr ""
"Espace disque insuffisant dans le dossier de téléchargement %s pour "
"télécharger"
-#: ../yum/__init__.py:1140
+#: ../yum/__init__.py:1094
msgid "Header is not complete."
msgstr "L'en-tête est incomplet."
-#: ../yum/__init__.py:1180
+#: ../yum/__init__.py:1134
#, python-format
msgid ""
"Header not in local cache and caching-only mode enabled. Cannot download %s"
@@ -1552,62 +1570,62 @@ msgstr ""
"L'en-tête n'est pas dans le cache et le mode cache uniquement est activé. "
"Impossible de télécharger %s"
-#: ../yum/__init__.py:1235
+#: ../yum/__init__.py:1189
#, python-format
msgid "Public key for %s is not installed"
msgstr "La clé publique pour %s n'est pas installée"
-#: ../yum/__init__.py:1239
+#: ../yum/__init__.py:1193
#, python-format
msgid "Problem opening package %s"
msgstr "Problème à l'ouverture du paquetage %s"
-#: ../yum/__init__.py:1247
+#: ../yum/__init__.py:1201
#, python-format
msgid "Public key for %s is not trusted"
msgstr "La clé publique pour %s n'est pas de confiance"
-#: ../yum/__init__.py:1251
+#: ../yum/__init__.py:1205
#, python-format
msgid "Package %s is not signed"
msgstr "Le paquetage %s n'est pas signé"
-#: ../yum/__init__.py:1289
+#: ../yum/__init__.py:1243
#, python-format
msgid "Cannot remove %s"
msgstr "Impossible de supprimer %s"
-#: ../yum/__init__.py:1292
+#: ../yum/__init__.py:1247
#, python-format
msgid "%s removed"
msgstr "%s supprimé"
-#: ../yum/__init__.py:1328
+#: ../yum/__init__.py:1283
#, python-format
msgid "Cannot remove %s file %s"
msgstr "Impossible de supprimer depuis %s le fichier %s"
-#: ../yum/__init__.py:1331
+#: ../yum/__init__.py:1287
#, python-format
msgid "%s file %s removed"
msgstr "fichier de %s : %s supprimé"
-#: ../yum/__init__.py:1333
+#: ../yum/__init__.py:1289
#, python-format
msgid "%d %s files removed"
msgstr "%d fichiers de %s supprimés"
-#: ../yum/__init__.py:1386
+#: ../yum/__init__.py:1329
#, python-format
msgid "More than one identical match in sack for %s"
msgstr "Plus d'une correspondance identique dans le regroupement pour %s"
-#: ../yum/__init__.py:1391
+#: ../yum/__init__.py:1335
#, python-format
msgid "Nothing matches %s.%s %s:%s-%s from update"
msgstr "Rien ne correspond à %s.%s %s:%s-%s dans la mise à jour"
-#: ../yum/__init__.py:1585
+#: ../yum/__init__.py:1543
msgid ""
"searchPackages() will go away in a future version of "
"Yum. Use searchGenerator() instead. \n"
@@ -1615,169 +1633,142 @@ msgstr ""
"searchPackages() sera supprimé dans une future version de "
"Yum. Utilisez searchGenerator() Ã la place. \n"
-#: ../yum/__init__.py:1621
+#: ../yum/__init__.py:1580
#, python-format
msgid "Searching %d packages"
msgstr "Recherche de %d paquetages"
-#: ../yum/__init__.py:1624
+#: ../yum/__init__.py:1584
#, python-format
msgid "searching package %s"
msgstr "recherche du paquetage %s"
-#: ../yum/__init__.py:1635
+#: ../yum/__init__.py:1596
msgid "searching in file entries"
msgstr "recherche dans les entrées de fichiers"
-#: ../yum/__init__.py:1641
+#: ../yum/__init__.py:1603
msgid "searching in provides entries"
msgstr "recherche dans les entrées de correspondance"
-#: ../yum/__init__.py:1671
+#: ../yum/__init__.py:1633
#, python-format
msgid "Provides-match: %s"
msgstr "Correspondance fournie : %s"
-#: ../yum/__init__.py:1717
-msgid "No group data available for configured repositories"
-msgstr "Aucune donnée sur les groupes disponible pour les dépôts configurés"
-
-#: ../yum/__init__.py:1743 ../yum/__init__.py:1762 ../yum/__init__.py:1788
-#: ../yum/__init__.py:1794 ../yum/__init__.py:1850 ../yum/__init__.py:1854
+#: ../yum/__init__.py:1702 ../yum/__init__.py:1720 ../yum/__init__.py:1748
+#: ../yum/__init__.py:1753 ../yum/__init__.py:1808 ../yum/__init__.py:1812
#, python-format
msgid "No Group named %s exists"
msgstr "Aucun groupe nommé %s n'existe"
-#: ../yum/__init__.py:1773 ../yum/__init__.py:1866
+#: ../yum/__init__.py:1731 ../yum/__init__.py:1824
#, python-format
msgid "package %s was not marked in group %s"
msgstr "le paquetage %s n'a pas été marqué dans le groupe %s"
-#: ../yum/__init__.py:1811
+#: ../yum/__init__.py:1770
#, python-format
msgid "Adding package %s from group %s"
msgstr "Ajout du paquetage %s pour le groupe %s"
-#: ../yum/__init__.py:1816
+#: ../yum/__init__.py:1774
#, python-format
msgid "No package named %s available to be installed"
msgstr "Aucun paquetage nommé %s n'est disponible pour installation"
-#: ../yum/__init__.py:1891
+#: ../yum/__init__.py:1849
#, python-format
msgid "Package tuple %s could not be found in packagesack"
msgstr "Impossible de trouver le tuple de paquetage %s dans le regroupement"
-#: ../yum/__init__.py:1959 ../yum/__init__.py:1999
+#: ../yum/__init__.py:1917 ../yum/__init__.py:1960
msgid "Invalid versioned dependency string, try quoting it."
msgstr "Chaîne de version de dépendance invalide, essai entre guillemets."
-#: ../yum/__init__.py:1961 ../yum/__init__.py:2001
+#: ../yum/__init__.py:1919 ../yum/__init__.py:1962
msgid "Invalid version flag"
msgstr "Drapeau de version invalide"
-#: ../yum/__init__.py:1973 ../yum/__init__.py:1977
+#: ../yum/__init__.py:1934 ../yum/__init__.py:1938
#, python-format
msgid "No Package found for %s"
msgstr "Aucun paquetage trouvé pour %s"
-#: ../yum/__init__.py:2105
+#: ../yum/__init__.py:2066
msgid "Package Object was not a package object instance"
msgstr "L'objet paquetage n'était pas une instance correcte d'objet paquetage"
-#: ../yum/__init__.py:2109
+#: ../yum/__init__.py:2070
msgid "Nothing specified to install"
msgstr "Rien de spécifié pour installation"
# Aucune idée
#. only one in there
-#: ../yum/__init__.py:2124
+#: ../yum/__init__.py:2085
#, python-format
msgid "Checking for virtual provide or file-provide for %s"
msgstr ""
"Recherche de correspondance virtuelle ou de correspondance fichier pour %s"
-#: ../yum/__init__.py:2130 ../yum/__init__.py:2446
+#: ../yum/__init__.py:2091 ../yum/__init__.py:2380
#, python-format
msgid "No Match for argument: %s"
msgstr "Aucune correspondance pour l'argument : %s"
#. FIXME - this is where we could check to see if it already installed
#. for returning better errors
-#: ../yum/__init__.py:2185
+#: ../yum/__init__.py:2146
msgid "No package(s) available to install"
msgstr "Aucun paquetage disponible pour installation"
-#: ../yum/__init__.py:2198
+#: ../yum/__init__.py:2158
#, python-format
msgid "Package: %s - already in transaction set"
msgstr "Paquetage : %s - déjà dans le jeu de transaction"
-#: ../yum/__init__.py:2212
+#: ../yum/__init__.py:2171
#, python-format
msgid "Package %s already installed and latest version"
msgstr "Le paquetage %s est déjà installé dans sa dernière version"
-#: ../yum/__init__.py:2219
+#: ../yum/__init__.py:2178
#, python-format
msgid "Package matching %s already installed. Checking for update."
msgstr ""
"Le paquetage qui correspond à %s est déjà installé. Recherche d'une mise à "
"jour."
-#: ../yum/__init__.py:2230
-#, python-format
-msgid "Package %s is obsoleted by %s, trying to install %s instead"
-msgstr ""
-"Le paquetage %s est rendu obsolète par %s, tentative d'installation de %s à "
-"la place"
-
#. update everything (the easy case)
-#: ../yum/__init__.py:2263
+#: ../yum/__init__.py:2220
msgid "Updating Everything"
msgstr "Mise à jour complète"
-#: ../yum/__init__.py:2366
+#: ../yum/__init__.py:2304
#, python-format
msgid "Package is already obsoleted: %s.%s %s:%s-%s"
msgstr "Paquetage déjà rendu obsolète : %s.%s %s:%s-%s"
-#: ../yum/__init__.py:2390
-#, python-format
-msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s"
-msgstr ""
-"Pas de mise à jour des paquetages qui ont déjà été mis à jour : %s.%s %s:%s-%"
-"s"
-
-#: ../yum/__init__.py:2443
+#: ../yum/__init__.py:2377
#, python-format
msgid "%s"
msgstr "%s"
-#. FIXME we should give the caller some nice way to hush this warning
-#. probably just a kwarg of 'silence_warnings' or something
-#. b/c when this is called from groupRemove() it makes a lot of
-#. garbage noise
-#: ../yum/__init__.py:2462
+#: ../yum/__init__.py:2392
msgid "No package matched to remove"
msgstr "Aucun paquetage sélectionné pour suppression"
-#: ../yum/__init__.py:2496
+#: ../yum/__init__.py:2426
#, python-format
msgid "Cannot open file: %s. Skipping."
msgstr "Impossible d'ouvrir le fichier : %s. Omission."
-#: ../yum/__init__.py:2498
+#: ../yum/__init__.py:2429
#, python-format
msgid "Examining %s: %s"
msgstr "Examen de %s : %s"
-#: ../yum/__init__.py:2504
-#, python-format
-msgid "Cannot add package %s to transaction. Not a compatible architecture: %s"
-msgstr "Impossible d'ajouter le paquet %s à la transaction. Architecture incompatible : %s"
-
-#: ../yum/__init__.py:2512
+#: ../yum/__init__.py:2436
#, python-format
msgid ""
"Package %s not installed, cannot update it. Run yum install to install it "
@@ -1786,80 +1777,80 @@ msgstr ""
"Le paquetage %s n'est pas installé, il est impossible de le mettre à jour. "
"Lancez plutôt yum install pour l'installer."
-#: ../yum/__init__.py:2545
+#: ../yum/__init__.py:2468
#, python-format
msgid "Excluding %s"
msgstr "Exclusion de %s"
-#: ../yum/__init__.py:2549
+#: ../yum/__init__.py:2473
#, python-format
msgid "Marking %s to be installed"
msgstr "Sélection de %s pour installation "
-#: ../yum/__init__.py:2554
+#: ../yum/__init__.py:2479
#, python-format
msgid "Marking %s as an update to %s"
msgstr "Sélection de %s pour mise à jour de %s"
-#: ../yum/__init__.py:2559
+#: ../yum/__init__.py:2486
#, python-format
msgid "%s: does not update installed package."
msgstr "%s : ne met pas à jour le paquetage installé."
-#: ../yum/__init__.py:2576
+#: ../yum/__init__.py:2504
msgid "Problem in reinstall: no package matched to remove"
msgstr ""
"Problème dans la réinstallation : aucun paquetage correspondant à supprimer"
# Je suis pas sûr d'avoir bien compris la chaîne originale
-#: ../yum/__init__.py:2587
+#: ../yum/__init__.py:2515
#, python-format
msgid "Package %s is allowed multiple installs, skipping"
msgstr "Le paquetage %s autorise des installations multiples, omission"
-#: ../yum/__init__.py:2594
+#: ../yum/__init__.py:2522
msgid "Problem in reinstall: no package matched to install"
msgstr ""
"Problème dans la réinstallation : aucun paquetage correspondant à installer"
-#: ../yum/__init__.py:2641
+#: ../yum/__init__.py:2570
#, python-format
msgid "Retrieving GPG key from %s"
msgstr "Récupération de la clé GPG depuis %s"
-#: ../yum/__init__.py:2647
+#: ../yum/__init__.py:2576
msgid "GPG key retrieval failed: "
msgstr "Ãchec de la récupération de la clé GPG : "
-#: ../yum/__init__.py:2663
+#: ../yum/__init__.py:2589
msgid "GPG key parsing failed: "
msgstr "Ãchec d'analyse de la clé GPG : "
-#: ../yum/__init__.py:2667
+#: ../yum/__init__.py:2593
#, python-format
msgid "GPG key at %s (0x%s) is already installed"
msgstr "La clé GPG %s (0x%s) est déjà installée"
#. Try installing/updating GPG key
-#: ../yum/__init__.py:2672
+#: ../yum/__init__.py:2598
#, python-format
msgid "Importing GPG key 0x%s \"%s\" from %s"
msgstr "Import de la clé GPG 0x%s « %s » depuis %s"
-#: ../yum/__init__.py:2685
+#: ../yum/__init__.py:2610
msgid "Not installing key"
msgstr "N'installe pas la clé"
-#: ../yum/__init__.py:2691
+#: ../yum/__init__.py:2616
#, python-format
msgid "Key import failed (code %d)"
msgstr "L'import de la clé à échoué (code %d)"
-#: ../yum/__init__.py:2694
+#: ../yum/__init__.py:2619
msgid "Key imported successfully"
msgstr "La clé a été importée avec succès"
-#: ../yum/__init__.py:2699
+#: ../yum/__init__.py:2624
#, python-format
msgid ""
"The GPG keys listed for the \"%s\" repository are already installed but they "
@@ -1870,57 +1861,57 @@ msgstr ""
"incorrectes pour ce paquetage.\n"
"Vérifiez que les URL des clés pour ce dépôt soient correctes."
-#: ../yum/__init__.py:2708
+#: ../yum/__init__.py:2633
msgid "Import of key(s) didn't help, wrong key(s)?"
msgstr ""
"L'import de la (des) clé(s) n'a pas résolu le problème, mauvaise(s) clé(s) ?"
-#: ../yum/__init__.py:2789
+#: ../yum/__init__.py:2707
msgid "Unable to find a suitable mirror."
msgstr "Impossible de trouver un miroir adapté."
-#: ../yum/__init__.py:2791
+#: ../yum/__init__.py:2709
msgid "Errors were encountered while downloading packages."
msgstr ""
"Des erreurs ont été rencontrée durant le téléchargement des paquetages."
-#: ../yum/__init__.py:2854
+#: ../yum/__init__.py:2774
msgid "Test Transaction Errors: "
msgstr "Erreurs de la transaction de test : "
#. Mostly copied from YumOutput._outKeyValFill()
-#: ../yum/plugins.py:197
+#: ../yum/plugins.py:195
msgid "Loaded plugins: "
msgstr "Modules complémentaires chargés : "
-#: ../yum/plugins.py:208
+#: ../yum/plugins.py:206
#, python-format
msgid "No plugin match for: %s"
msgstr "Aucun plugin correspondant pour : %s"
-#: ../yum/plugins.py:221
+#: ../yum/plugins.py:219
#, python-format
msgid "\"%s\" plugin is disabled"
msgstr "le module complémentaire « %s » est désactivé"
-#: ../yum/plugins.py:233
+#: ../yum/plugins.py:231
#, python-format
msgid "Plugin \"%s\" doesn't specify required API version"
msgstr ""
"Le module complémentaire « %s » ne spécifie pas la version de l'API requise"
-#: ../yum/plugins.py:237
+#: ../yum/plugins.py:235
#, python-format
msgid "Plugin \"%s\" requires API %s. Supported API is %s."
msgstr ""
"Le module complémentaire « %s » requiert l'API %s. L'API supportée est %s."
-#: ../yum/plugins.py:266
+#: ../yum/plugins.py:264
#, python-format
msgid "Loading \"%s\" plugin"
msgstr "Chargement du module complémentaire « %s »"
-#: ../yum/plugins.py:273
+#: ../yum/plugins.py:271
#, python-format
msgid ""
"Two or more plugins with the name \"%s\" exist in the plugin search path"
@@ -1928,28 +1919,24 @@ msgstr ""
"Au moins deux modules complémentaires avec le même nom « %s » existent dans "
"le chemin de recherche des modules complémentaires"
-#: ../yum/plugins.py:293
+#: ../yum/plugins.py:291
#, python-format
msgid "Configuration file %s not found"
msgstr "Fichier de configuration %s non trouvé"
#. for
#. Configuration files for the plugin not found
-#: ../yum/plugins.py:296
+#: ../yum/plugins.py:294
#, python-format
msgid "Unable to find configuration file for plugin %s"
msgstr ""
"Impossible de trouver le fichier de configuration pour le module "
"complémentaire %s"
-#: ../yum/plugins.py:450
+#: ../yum/plugins.py:448
msgid "registration of commands not supported"
msgstr "enregistrement de commandes non supporté"
-#: ../yum/rpmtrans.py:78
-msgid "Repackaging"
-msgstr "Ré-empaquetage"
-
#: ../rpmUtils/oldUtils.py:26
#, python-format
msgid "Header cannot be opened or does not match %s, %s."
@@ -1980,29 +1967,75 @@ msgstr "En-tête endommagé %s"
msgid "Error opening rpm %s - error %s"
msgstr "Erreur d'ouverture du rpm %s - erreur %s"
-#~ msgid "Searching pkgSack for dep: %s"
-#~ msgstr "Recherche dans le regroupement pour la dépendance : %s"
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "%s: %s option requires an argument"
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "%s : l'option %s requiert un argument"
+
+#~ msgid "show this help message and exit"
+#~ msgstr "affiche ce message d'aide et quitte"
+
+#~ msgid "verbose operation"
+#~ msgstr "opération verbeuse"
+
+#~ msgid "Repo-id : "
+#~ msgstr "Id du dépôt : "
+
+#~ msgid "Repo-name : "
+#~ msgstr "Nom du dépôt  : "
+
+#~ msgid "Repo-enabled: "
+#~ msgstr "Dépôt activé :"
+
+#~ msgid "Repo-size : "
+#~ msgstr "Nom du dépôt  : "
+
+#~ msgid "Running compare_providers() for %s"
+#~ msgstr "Lancement de compare_providers() pour %s"
+
+#~ msgid ""
+#~ "archdist compared %s to %s on %s\n"
+#~ " Winner: %s"
+#~ msgstr ""
+#~ "architecture %s comparée à %s sur %s\n"
+#~ " Gagnant : %s"
+
+#~ msgid "common sourcerpm %s and %s"
+#~ msgstr "rpm source commun pour %s et %s"
-#~ msgid "Potential match for %s from %s"
-#~ msgstr "Correspondance potentielle pour %s depuis %s"
+#~ msgid "common prefix of %s between %s and %s"
+#~ msgstr "préfix commun %s entre %s et %s"
-#~ msgid "Matched %s to require for %s"
-#~ msgstr "Correspondance %s trouvé pour %s "
+#~ msgid "Best Order: %s"
+#~ msgstr "Meilleur ordre : %s"
-#~ msgid "Needed Require has already been looked up, cheating"
-#~ msgstr "Le prérequis a déjà été trouvé, on triche"
+#~ msgid ""
+#~ "Warning: scriptlet or other non-fatal errors occurred during transaction."
+#~ msgstr ""
+#~ "Attention : scriptlet ou autre erreur non fatale pendant la transaction."
-#~ msgid "Needed Require is not a package name. Looking up: %s"
-#~ msgstr "Le prérequis n'est pas un nom de paquetage. Recherche de : %s "
+#~ msgid "No group data available for configured repositories"
+#~ msgstr "Aucune donnée sur les groupes disponible pour les dépôts configurés"
-#~ msgid "Potential Provider: %s"
-#~ msgstr "Fournisseur potentiel : %s"
+#~ msgid "Package %s is obsoleted by %s, trying to install %s instead"
+#~ msgstr ""
+#~ "Le paquetage %s est rendu obsolète par %s, tentative d'installation de %s "
+#~ "Ã la place"
-#~ msgid "Mode is %s for provider of %s: %s"
-#~ msgstr "Le mode est %s pour le fournisseur de %s : %s"
+#~ msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s"
+#~ msgstr ""
+#~ "Pas de mise à jour des paquetages qui ont déjà été mis à jour : %s.%s %s:%"
+#~ "s-%s"
-#~ msgid "Mode for pkg providing %s: %s"
-#~ msgstr "Mode pour le paquetage qui fournit %s : %s"
+#~ msgid ""
+#~ "Cannot add package %s to transaction. Not a compatible architecture: %s"
+#~ msgstr ""
+#~ "Impossible d'ajouter le paquet %s à la transaction. Architecture "
+#~ "incompatible : %s"
-#~ msgid "Unresolvable requirement %s for %s"
-#~ msgstr "Impossible de résoudre le prérequis %s pour %s"
+#~ msgid "Repackaging"
+#~ msgstr "Ré-empaquetage"
diff --git a/po/it.po b/po/it.po
index e409dae..7e608b0 100644
--- a/po/it.po
+++ b/po/it.po
@@ -4,8 +4,8 @@
# This file is distributed under the same license as the yum package.
# Silvio Pierro <perplesso82 at gmail.com>, 2008.
# Gianluca Busiello <busiello at ceinge.unina.it>, 2008.
-#
-#
+#
+#
msgid ""
msgstr ""
"Project-Id-Version: yum-it 3.2.8\n"
@@ -527,8 +527,8 @@ msgstr "Licenza : %s"
msgid "Description: "
msgstr "Descrizione: "
+#
#: ../output.py:351
-#
msgid "Is this ok [y/N]: "
msgstr "Ã corretto [s/N]: "
diff --git a/po/pt_BR.po b/po/pt_BR.po
index 4f17e03..919c002 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -17,8 +17,7 @@ msgstr ""
"X-Poedit-Language: Portuguese\n"
"X-Poedit-Country: BRAZIL\n"
-#: ../callback.py:48
-#: ../output.py:512
+#: ../callback.py:48 ../output.py:512
msgid "Updating"
msgstr "Atualizando"
@@ -26,20 +25,15 @@ msgstr "Atualizando"
msgid "Erasing"
msgstr "Apagando"
-#: ../callback.py:50
-#: ../callback.py:51
-#: ../callback.py:53
-#: ../output.py:511
+#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:511
msgid "Installing"
msgstr "Instalando"
-#: ../callback.py:52
-#: ../callback.py:58
+#: ../callback.py:52 ../callback.py:58
msgid "Obsoleted"
msgstr "Obsoletos"
-#: ../callback.py:54
-#: ../output.py:558
+#: ../callback.py:54 ../output.py:558
msgid "Updated"
msgstr "Atualizados"
@@ -47,10 +41,7 @@ msgstr "Atualizados"
msgid "Erased"
msgstr "Removidos"
-#: ../callback.py:56
-#: ../callback.py:57
-#: ../callback.py:59
-#: ../output.py:556
+#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:556
msgid "Installed"
msgstr "Instalados"
@@ -72,8 +63,7 @@ msgstr "Erro: estado de saÃda inválido: %s de %s"
msgid "Erased: %s"
msgstr "Removidos: %s"
-#: ../callback.py:217
-#: ../output.py:513
+#: ../callback.py:217 ../output.py:513
msgid "Removing"
msgstr "Removendo"
@@ -94,15 +84,12 @@ msgstr "Configurando repositórios"
msgid "Reading repository metadata in from local files"
msgstr "Lendo metadados do repositório a partir dos arquivos locais"
-#: ../cli.py:183
-#: ../utils.py:72
+#: ../cli.py:183 ../utils.py:72
#, python-format
msgid "Config Error: %s"
msgstr "Erro de Configuração: %s"
-#: ../cli.py:186
-#: ../cli.py:1068
-#: ../utils.py:75
+#: ../cli.py:186 ../cli.py:1068 ../utils.py:75
#, python-format
msgid "Options Error: %s"
msgstr "Erro nas Opções: %s"
@@ -146,18 +133,15 @@ msgstr "Baixando Pacotes:"
msgid "Error Downloading Packages:\n"
msgstr "Erro ao Baixar Pacotes:\n"
-#: ../cli.py:370
-#: ../yum/__init__.py:2746
+#: ../cli.py:370 ../yum/__init__.py:2746
msgid "Running rpm_check_debug"
msgstr "Executando o rpm_check_debug"
-#: ../cli.py:373
-#: ../yum/__init__.py:2749
+#: ../cli.py:373 ../yum/__init__.py:2749
msgid "ERROR with rpm_check_debug vs depsolve:"
msgstr "Erro com o rpm_check_debug vs depsolve:"
-#: ../cli.py:377
-#: ../yum/__init__.py:2751
+#: ../cli.py:377 ../yum/__init__.py:2751
msgid "Please report this error in bugzilla"
msgstr "Por favor, reporte esse erro ao bugzilla"
@@ -186,7 +170,8 @@ msgid ""
"Refusing to automatically import keys when running unattended.\n"
"Use \"-y\" to override."
msgstr ""
-"Recusa de importação automática das chaves ao executar de forma não assistida.\n"
+"Recusa de importação automática das chaves ao executar de forma não "
+"assistida.\n"
"Use \"-y\" para sobrescrever."
#: ../cli.py:491
@@ -198,22 +183,15 @@ msgstr "Analisando argumentos da instalação de pacotes"
msgid "No package %s available."
msgstr "Nenhum pacote %s disponÃvel."
-#: ../cli.py:505
-#: ../cli.py:623
-#: ../yumcommands.py:748
+#: ../cli.py:505 ../cli.py:623 ../yumcommands.py:748
msgid "Package(s) to install"
msgstr "Pacotes a serem instalados"
-#: ../cli.py:506
-#: ../cli.py:624
-#: ../yumcommands.py:146
-#: ../yumcommands.py:749
+#: ../cli.py:506 ../cli.py:624 ../yumcommands.py:146 ../yumcommands.py:749
msgid "Nothing to do"
msgstr "Nada a ser feito"
-#: ../cli.py:536
-#: ../yum/__init__.py:2232
-#: ../yum/__init__.py:2311
+#: ../cli.py:536 ../yum/__init__.py:2232 ../yum/__init__.py:2311
#: ../yum/__init__.py:2340
#, python-format
msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
@@ -248,7 +226,8 @@ msgstr "Nenhum Pacote Fornecido"
#: ../cli.py:654
msgid "Matching packages for package list to user args"
-msgstr "Resultado dos pacotes para a lista de pacotes dos argumentos do usuário"
+msgstr ""
+"Resultado dos pacotes para a lista de pacotes dos argumentos do usuário"
#: ../cli.py:701
#, python-format
@@ -304,16 +283,16 @@ msgstr "Grupos DisponÃveis:"
msgid "Done"
msgstr "ConcluÃdo"
-#: ../cli.py:829
-#: ../cli.py:841
-#: ../cli.py:847
+#: ../cli.py:829 ../cli.py:841 ../cli.py:847
#, python-format
msgid "Warning: Group %s does not exist."
msgstr "Aviso: O grupo %s não existe."
#: ../cli.py:853
msgid "No packages in any requested group available to install or update"
-msgstr "Nenhum pacote disponÃvel para instalação ou atualização nos grupos requisitados"
+msgstr ""
+"Nenhum pacote disponÃvel para instalação ou atualização nos grupos "
+"requisitados"
#: ../cli.py:855
#, python-format
@@ -348,7 +327,8 @@ msgstr "Descartando pacote não comparável %s.%s"
#: ../cli.py:952
#, python-format
msgid "No other %s installed, adding to list for potential install"
-msgstr "Nenhum outro %s instalado, adicionado à lista para potencial instalação"
+msgstr ""
+"Nenhum outro %s instalado, adicionado à lista para potencial instalação"
#: ../cli.py:971
#, python-format
@@ -413,7 +393,9 @@ msgstr "excluir pacote(s) por nome ou glob"
#: ../cli.py:1138
msgid "disable exclude from main, for a repo or for everything"
-msgstr "desabilitar a exclusão a partir do principal, para um repositório ou para tudo"
+msgstr ""
+"desabilitar a exclusão a partir do principal, para um repositório ou para "
+"tudo"
#: ../cli.py:1141
msgid "enable obsoletes processing during updates"
@@ -549,8 +531,7 @@ msgstr "Descrição: "
msgid "Is this ok [y/N]: "
msgstr "Correto? [s/N]:"
-#: ../output.py:357
-#: ../output.py:360
+#: ../output.py:357 ../output.py:360
msgid "y"
msgstr "s"
@@ -558,8 +539,7 @@ msgstr "s"
msgid "n"
msgstr "n"
-#: ../output.py:357
-#: ../output.py:360
+#: ../output.py:357 ../output.py:360
msgid "yes"
msgstr "sim"
@@ -715,10 +695,12 @@ msgstr "SubstituÃdo(s)"
#, 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 to exit.\n"
msgstr ""
"\n"
-" Download atual cancelado, interrupção %s, (ctrl-c) novamente %s com %s%s%s segundos até sair.\n"
+" Download atual cancelado, interrupção %s, (ctrl-c) novamente %s com %s%s%s "
+"segundos até sair.\n"
#: ../output.py:628
msgid "user interrupt"
@@ -774,7 +756,9 @@ msgstr "--> Processando Conflito: %s conflita com %s"
#: ../output.py:682
msgid "--> Populating transaction set with selected packages. Please wait."
-msgstr "--> Construindo conjunto de transações com os pacotes selecionados. Por favor aguarde."
+msgstr ""
+"--> Construindo conjunto de transações com os pacotes selecionados. Por "
+"favor aguarde."
#: ../output.py:686
#, python-format
@@ -789,7 +773,8 @@ msgstr "Você precisa ser root para executar este comando."
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"
@@ -802,8 +787,10 @@ msgid ""
"For more information contact your distribution or package provider.\n"
msgstr ""
"\n"
-"Você habilitou a verificação de pacotes através de chaves GPG. Isso é uma boa coisa.\n"
-"Entretanto, você não tem nenhuma chave GPG pública instalada. Você precisa baixar\n"
+"Você habilitou a verificação de pacotes através de chaves GPG. Isso é uma "
+"boa coisa.\n"
+"Entretanto, você não tem nenhuma chave GPG pública instalada. Você precisa "
+"baixar\n"
"e instalar essas chaves para os pacotes que deseja instalar.\n"
"Você pode fazer isso executando o comando:\n"
" rpm --import public.gpg.key\n"
@@ -813,7 +800,8 @@ msgstr ""
" do repositório, a url da chave que você gostaria de usar\n"
"para ele e o yum irá instalá-la para você.\n"
"\n"
-"Para mais informações contate o fornecedor da sua distribuição ou do pacote.\n"
+"Para mais informações contate o fornecedor da sua distribuição ou do "
+"pacote.\n"
#: ../yumcommands.py:63
#, python-format
@@ -900,8 +888,7 @@ msgstr "Pacotes Extras"
msgid "Updated Packages"
msgstr "Pacotes Atualizados"
-#: ../yumcommands.py:221
-#: ../yumcommands.py:225
+#: ../yumcommands.py:221 ../yumcommands.py:225
msgid "Obsoleting Packages"
msgstr "Tornando Pacotes Obsoletos"
@@ -1107,17 +1094,18 @@ msgstr ""
"Saindo por um Pipe Defeituoso"
#: ../yummain.py:105
-msgid "Another app is currently holding the yum lock; waiting for it to exit..."
-msgstr "Outra aplicação está retendo o bloqueio do yum; esperando por ele para sair..."
+msgid ""
+"Another app is currently holding the yum lock; waiting for it to exit..."
+msgstr ""
+"Outra aplicação está retendo o bloqueio do yum; esperando por ele para "
+"sair..."
-#: ../yummain.py:132
-#: ../yummain.py:171
+#: ../yummain.py:132 ../yummain.py:171
#, python-format
msgid "Error: %s"
msgstr "Error: %s"
-#: ../yummain.py:142
-#: ../yummain.py:178
+#: ../yummain.py:142 ../yummain.py:178
#, python-format
msgid "Unknown Error(s): Exit Code: %d:"
msgstr "Erro(s) Desconhecido(s): Código de SaÃda: %d:"
@@ -1155,7 +1143,8 @@ msgstr "doTsSetup() será removida em uma futura versão do Yum.\n"
#: ../yum/depsolve.py:95
msgid "Setting up TransactionSets before config class is up"
-msgstr "Configurando TransactionSets antes da ativação da classe de configuração"
+msgstr ""
+"Configurando TransactionSets antes da ativação da classe de configuração"
#: ../yum/depsolve.py:136
#, python-format
@@ -1182,8 +1171,7 @@ msgstr "%s encontrado para solicitar o %s"
msgid "Member: %s"
msgstr "Membro: %s"
-#: ../yum/depsolve.py:233
-#: ../yum/depsolve.py:696
+#: ../yum/depsolve.py:233 ../yum/depsolve.py:696
#, python-format
msgid "%s converted to install"
msgstr "%s convertido para instalar"
@@ -1245,7 +1233,8 @@ msgstr "TSINFO: Atualizando %s para resolver a dependência."
#: ../yum/depsolve.py:378
#, python-format
msgid "Cannot find an update path for dep for: %s"
-msgstr "Não foi possÃvel encontrar um caminho de atualização para a dep. para: %s"
+msgstr ""
+"Não foi possÃvel encontrar um caminho de atualização para a dep. para: %s"
#: ../yum/depsolve.py:388
#, python-format
@@ -1266,10 +1255,10 @@ msgstr "O pacote de solução em potencial %s tem uma instância mais nova no ct
#: ../yum/depsolve.py:460
#, python-format
msgid "Potential resolving package %s has newer instance installed."
-msgstr "O pacote de solução em potencial %s tem uma instância mais nova instalada."
+msgstr ""
+"O pacote de solução em potencial %s tem uma instância mais nova instalada."
-#: ../yum/depsolve.py:468
-#: ../yum/depsolve.py:527
+#: ../yum/depsolve.py:468 ../yum/depsolve.py:527
#, python-format
msgid "Missing Dependency: %s is needed by package %s"
msgstr "Dependência Faltando: %s é requerido pelo pacote %s"
@@ -1281,8 +1270,11 @@ msgstr "%s já está no ct, pulando esse"
#: ../yum/depsolve.py:510
#, python-format
-msgid "Failure finding best provider of %s for %s, exceeded maximum loop length"
-msgstr "Falha ao encontrar o melhor fornecedor de %s para %s, tamanho máximo do loop excedido"
+msgid ""
+"Failure finding best provider of %s for %s, exceeded maximum loop length"
+msgstr ""
+"Falha ao encontrar o melhor fornecedor de %s para %s, tamanho máximo do loop "
+"excedido"
#: ../yum/depsolve.py:537
#, python-format
@@ -1294,13 +1286,11 @@ msgstr "TSINFO: Marcando %s como uma atualização para o %s"
msgid "TSINFO: Marking %s as install for %s"
msgstr "TSINFO: Marcando %s como uma instalação para o %s"
-#: ../yum/depsolve.py:635
-#: ../yum/depsolve.py:714
+#: ../yum/depsolve.py:635 ../yum/depsolve.py:714
msgid "Success - empty transaction"
msgstr "Sucesso - transação vazia"
-#: ../yum/depsolve.py:673
-#: ../yum/depsolve.py:686
+#: ../yum/depsolve.py:673 ../yum/depsolve.py:686
msgid "Restarting Loop"
msgstr "Reiniciando o Loop"
@@ -1337,8 +1327,7 @@ msgstr "Comparando melhor: %s para po: %s"
msgid "Same: best %s == po: %s"
msgstr "Igual: melhor %s == po: %s"
-#: ../yum/depsolve.py:952
-#: ../yum/depsolve.py:963
+#: ../yum/depsolve.py:952 ../yum/depsolve.py:963
#, python-format
msgid "best %s obsoletes po: %s"
msgstr "melhor %s torna po obsoleto: %s"
@@ -1348,33 +1337,27 @@ msgstr "melhor %s torna po obsoleto: %s"
msgid "po %s obsoletes best: %s"
msgstr "po %s torna melhor obsoleto: %s"
-#: ../yum/depsolve.py:972
-#: ../yum/depsolve.py:979
-#: ../yum/depsolve.py:1036
+#: ../yum/depsolve.py:972 ../yum/depsolve.py:979 ../yum/depsolve.py:1036
#, python-format
msgid "better arch in po %s"
msgstr "melhor arquitetura no po %s"
-#: ../yum/depsolve.py:988
-#: ../yum/depsolve.py:1010
+#: ../yum/depsolve.py:988 ../yum/depsolve.py:1010
#, python-format
msgid "po %s shares a sourcerpm with %s"
msgstr "po %s compartilha um sourcerpm com %s"
-#: ../yum/depsolve.py:992
-#: ../yum/depsolve.py:1015
+#: ../yum/depsolve.py:992 ../yum/depsolve.py:1015
#, python-format
msgid "best %s shares a sourcerpm with %s"
msgstr "melhor %s compartilha um sourcerpm com %s"
-#: ../yum/depsolve.py:999
-#: ../yum/depsolve.py:1020
+#: ../yum/depsolve.py:999 ../yum/depsolve.py:1020
#, python-format
msgid "po %s shares more of the name prefix with %s"
msgstr "po %s compartilha mais do prefixo do nome com %s"
-#: ../yum/depsolve.py:1003
-#: ../yum/depsolve.py:1029
+#: ../yum/depsolve.py:1003 ../yum/depsolve.py:1029
#, python-format
msgid "po %s has a shorter name than best %s"
msgstr "po %s tem um nome mais curto do que o melhor %s"
@@ -1533,8 +1516,7 @@ msgstr "Não foi possÃvel verificar se o PID %s está ativo"
msgid "Existing lock %s: another copy is running as pid %s."
msgstr "Bloqueio existente em %s: outra cópia está em execução com o pid %s."
-#: ../yum/__init__.py:970
-#: ../yum/__init__.py:977
+#: ../yum/__init__.py:970 ../yum/__init__.py:977
msgid "Package does not match intended download"
msgstr "O pacote não corresponde ao download pretendido"
@@ -1549,7 +1531,8 @@ msgstr "O pacote não corresponde à soma de verificação"
#: ../yum/__init__.py:1036
#, python-format
msgid "package fails checksum but caching is enabled for %s"
-msgstr "o pacote falhou na soma de verificação mas o cache está habilitado para o %s"
+msgstr ""
+"o pacote falhou na soma de verificação mas o cache está habilitado para o %s"
#: ../yum/__init__.py:1042
#, python-format
@@ -1567,8 +1550,11 @@ msgstr "O cabeçalho não está completo."
#: ../yum/__init__.py:1134
#, python-format
-msgid "Header not in local cache and caching-only mode enabled. Cannot download %s"
-msgstr "O cabeçalho não está no cache local e o modo de somente cache está habilitado. Não foi possÃvel baixar o %s."
+msgid ""
+"Header not in local cache and caching-only mode enabled. Cannot download %s"
+msgstr ""
+"O cabeçalho não está no cache local e o modo de somente cache está "
+"habilitado. Não foi possÃvel baixar o %s."
#: ../yum/__init__.py:1189
#, python-format
@@ -1626,8 +1612,12 @@ msgid "Nothing matches %s.%s %s:%s-%s from update"
msgstr "Nada corresponde ao %s.%s %s:%s-%s a partir da atualização"
#: ../yum/__init__.py:1543
-msgid "searchPackages() will go away in a future version of Yum. Use searchGenerator() instead. \n"
-msgstr "searchPackages() será removida em uma futura versão do Yum. Ao invés disso, use a searchGenerator().\n"
+msgid ""
+"searchPackages() will go away in a future version of "
+"Yum. Use searchGenerator() instead. \n"
+msgstr ""
+"searchPackages() será removida em uma futura versão do Yum. Ao invés disso, "
+"use a searchGenerator().\n"
#: ../yum/__init__.py:1580
#, python-format
@@ -1652,18 +1642,13 @@ msgstr "pesquisando nas entradas dos fornecimentos"
msgid "Provides-match: %s"
msgstr "Fornecimento combina com: %s"
-#: ../yum/__init__.py:1702
-#: ../yum/__init__.py:1720
-#: ../yum/__init__.py:1748
-#: ../yum/__init__.py:1753
-#: ../yum/__init__.py:1808
-#: ../yum/__init__.py:1812
+#: ../yum/__init__.py:1702 ../yum/__init__.py:1720 ../yum/__init__.py:1748
+#: ../yum/__init__.py:1753 ../yum/__init__.py:1808 ../yum/__init__.py:1812
#, python-format
msgid "No Group named %s exists"
msgstr "Não existe nenhum grupo de nome %s"
-#: ../yum/__init__.py:1731
-#: ../yum/__init__.py:1824
+#: ../yum/__init__.py:1731 ../yum/__init__.py:1824
#, python-format
msgid "package %s was not marked in group %s"
msgstr "o pacote %s não foi marcado no grupo %s"
@@ -1683,18 +1668,15 @@ msgstr "Nenhum pacote de nome %s disponÃvel para ser instalado"
msgid "Package tuple %s could not be found in packagesack"
msgstr "A tupla %s do pacote não pôde ser encontrada no packagesack"
-#: ../yum/__init__.py:1917
-#: ../yum/__init__.py:1960
+#: ../yum/__init__.py:1917 ../yum/__init__.py:1960
msgid "Invalid versioned dependency string, try quoting it."
msgstr "String de dependência versionada inválida, tente citá-la."
-#: ../yum/__init__.py:1919
-#: ../yum/__init__.py:1962
+#: ../yum/__init__.py:1919 ../yum/__init__.py:1962
msgid "Invalid version flag"
msgstr "Sinalizador de versão inválido"
-#: ../yum/__init__.py:1934
-#: ../yum/__init__.py:1938
+#: ../yum/__init__.py:1934 ../yum/__init__.py:1938
#, python-format
msgid "No Package found for %s"
msgstr "Nenhum pacote encontrado para %s"
@@ -1713,8 +1695,7 @@ msgstr "Nada especificado para instalar"
msgid "Checking for virtual provide or file-provide for %s"
msgstr "Verificando por fornecimento virtual ou de arquivo para %s"
-#: ../yum/__init__.py:2091
-#: ../yum/__init__.py:2380
+#: ../yum/__init__.py:2091 ../yum/__init__.py:2380
#, python-format
msgid "No Match for argument: %s"
msgstr "Nenhuma correspondência para o argumento: %s"
@@ -1771,8 +1752,12 @@ msgstr "Examinando %s: %s"
#: ../yum/__init__.py:2436
#, python-format
-msgid "Package %s not installed, cannot update it. Run yum install to install it instead."
-msgstr "O pacote %s não está instalado, não é possÃvel atualizá-lo. Execute o yum install para instalá-lo."
+msgid ""
+"Package %s not installed, cannot update it. Run yum install to install it "
+"instead."
+msgstr ""
+"O pacote %s não está instalado, não é possÃvel atualizá-lo. Execute o yum "
+"install para instalá-lo."
#: ../yum/__init__.py:2468
#, python-format
@@ -1847,11 +1832,14 @@ msgstr "Chave importada com sucesso"
#: ../yum/__init__.py:2624
#, 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 ""
-"As chaves GPG listadas para o repositório \"%s\" já estão instaladas, mas não estão corretas para este pacote.\n"
-"Verifique se as URLs corretas das chaves estão configuradas para esse repositório."
+"As chaves GPG listadas para o repositório \"%s\" já estão instaladas, mas "
+"não estão corretas para este pacote.\n"
+"Verifique se as URLs corretas das chaves estão configuradas para esse "
+"repositório."
#: ../yum/__init__.py:2633
msgid "Import of key(s) didn't help, wrong key(s)?"
@@ -1901,8 +1889,10 @@ msgstr "Carregando o plugin \"%s\""
#: ../yum/plugins.py:271
#, python-format
-msgid "Two or more plugins with the name \"%s\" exist in the plugin search path"
-msgstr "Dois ou mais plugins com o nome \"%s\" existem no caminho de pesquisa plugins"
+msgid ""
+"Two or more plugins with the name \"%s\" exist in the plugin search path"
+msgstr ""
+"Dois ou mais plugins com o nome \"%s\" existem no caminho de pesquisa plugins"
#: ../yum/plugins.py:291
#, python-format
@@ -1932,16 +1922,16 @@ msgstr "O RPM %s não passou na verificação md5"
#: ../rpmUtils/oldUtils.py:144
msgid "Could not open RPM database for reading. Perhaps it is already in use?"
-msgstr "Não foi possÃvel abrir o banco de dados RPM para leitura. Talvez por que ele já esteja em uso?"
+msgstr ""
+"Não foi possÃvel abrir o banco de dados RPM para leitura. Talvez por que ele "
+"já esteja em uso?"
#: ../rpmUtils/oldUtils.py:174
msgid "Got an empty Header, something has gone wrong"
msgstr "Um cabeçalho vazio foi obtido, algo deu errado"
-#: ../rpmUtils/oldUtils.py:244
-#: ../rpmUtils/oldUtils.py:251
-#: ../rpmUtils/oldUtils.py:254
-#: ../rpmUtils/oldUtils.py:257
+#: ../rpmUtils/oldUtils.py:244 ../rpmUtils/oldUtils.py:251
+#: ../rpmUtils/oldUtils.py:254 ../rpmUtils/oldUtils.py:257
#, python-format
msgid "Damaged Header %s"
msgstr "Cabeçalho %s Danificado"
@@ -1953,26 +1943,37 @@ msgstr "Erro ao abrir o rpm %s - erro %s"
#~ msgid "Looking for Obsoletes for %s"
#~ msgstr "Localizando Obsoletos para %s"
+
#~ msgid "unable to find newer package for %s"
#~ msgstr "não foi possÃvel encontrar um pacote mais recente para o %s"
+
#~ msgid "TSINFO: Updating %s to resolve conflict."
#~ msgstr "TSINFO: Atualizando o %s para resolver o conflito."
+
#~ msgid "%s conflicts: %s"
#~ msgstr "%s conflita com: %s"
+
#~ msgid "%s conflicts with %s"
#~ msgstr "%s conflita com %s"
+
#~ msgid "Package %s needs %s, this is not available."
#~ msgstr "O pacote %s necessita do %s, que não está disponÃvel."
+
#~ msgid "Package %s conflicts with %s."
#~ msgstr "O pacote %s conflita com %s."
+
#~ msgid "Running \"%s\" handler for \"%s\" plugin"
#~ msgstr "Executando o manipulador \"%s\" para o plugin \"%s\""
+
#~ msgid "Directory of rpms must exist"
#~ msgstr "O diretório de rpms precisa existir"
+
#~ msgid "Error accessing URL: %s"
#~ msgstr "Erro ao acessar a URL: %s"
+
#~ msgid "No Packages installed not included in a repository"
#~ msgstr "Nenhum pacote instalado não incluÃdo em um repositório"
+
#~ msgid ""
#~ "\n"
#~ " Total: %d\n"
@@ -1983,10 +1984,13 @@ msgstr "Erro ao abrir o rpm %s - erro %s"
#~ " Total: %d\n"
#~ " Usado: %d\n"
#~ " Src: %d"
+
#~ msgid "Error restoring the backup of lilo.conf The backup was:\n"
#~ msgstr "Erro ao restaurar o backup do lilo.conf. O backup era:\n"
+
#~ msgid "Looking in available packages for a providing package"
#~ msgstr "Procurando pelo pacote fornecido nos pacotes disponÃveis"
+
#~ msgid ""
#~ "retrygrab() failed for:\n"
#~ " %s%s\n"
@@ -1995,12 +1999,16 @@ msgstr "Erro ao abrir o rpm %s - erro %s"
#~ "retrygrab() falhou para:\n"
#~ " %s%s\n"
#~ " Executando método de recuperação"
+
#~ msgid "I will install/upgrade these to satisfy the dependencies:"
#~ msgstr "Eu irei instalar/atualizar isto para satisfazer as dependências:"
+
#~ msgid "Cannot delete %s - check perms"
#~ msgstr "Não foi possÃvel remover %s - verifique as permissões"
+
#~ msgid "Need a provides to match"
#~ msgstr "à necessário fornecer uma informação para corresponder"
+
#~ msgid ""
#~ "lilo options that are not supported by yum are used in the default lilo."
#~ "conf. This file will not be modified. The options include:\n"
@@ -2008,10 +2016,13 @@ msgstr "Erro ao abrir o rpm %s - erro %s"
#~ "opções do lilo que não são suportadas pelo yum estão sendo utilizadas no "
#~ "arquivo lilo.conf padrão. Este arquivo não será modificado. Dentre as "
#~ "opções estão:\n"
+
#~ msgid "Error getting file %s"
#~ msgstr "Erro ao obter arquivo %s"
+
#~ msgid "%s is not writable"
#~ msgstr "%s não é gravável"
+
#~ msgid ""
#~ "\n"
#~ "Already found tuple: %s %s:\n"
@@ -2020,86 +2031,117 @@ msgstr "Erro ao abrir o rpm %s - erro %s"
#~ "\n"
#~ "Tupla já encontrada: %s %s:\n"
#~ "%s "
+
#~ msgid "errors found"
#~ msgstr "erros encontrados"
+
#~ msgid "Unable to determine boot loader."
#~ msgstr "Não foi possÃvel determinar o gerenciador de inicialização."
+
#~ msgid "getting %s"
#~ msgstr "obtendo %s"
+
#~ msgid "Error Reading Header on %s"
#~ msgstr "Erro ao Ler Cabeçalho em %s"
+
#~ msgid "Error accessing File: %s"
#~ msgstr "Erro ao acessar arquivo: %s"
+
#~ msgid "You're not root, we can't install things"
#~ msgstr "Você não é root, nós não podemos instalar coisas"
+
#~ msgid "Cannot find any conf file."
#~ msgstr "Não foi possÃvel encontrar um arquivo de configuração."
+
#~ msgid "Local file does not exist: %s"
#~ msgstr "O arquivo local não existe: %s"
+
#~ msgid "using ftp, http[s], or file for servers, Aborting - %s"
#~ msgstr "usando ftp, http[s] ou arquivos para servidores. Abortando - %s"
+
#~ msgid "Found %s."
#~ msgstr "%s encontrado."
+
#~ msgid "Transaction(s) Complete"
#~ msgstr "Transação Completa"
+
#~ msgid "IOError: %s"
#~ msgstr "IOError (Erro E/S): %s"
+
#~ msgid "Cleaning packages and old headers"
#~ msgstr "Limpando pacotes e cabeçalhos antigos"
+
#~ msgid ""
#~ "Cannot download %s in caching only mode or when running as non-root user."
#~ msgstr ""
#~ "Não é possÃvel baixar %s no modo \"somente cache\" ou quando estiver "
#~ "executando com um usuário não root."
+
#~ msgid ""
#~ "Error: You may want to run yum clean or remove the file: \n"
#~ " %s"
#~ msgstr ""
#~ "Erro: Você pode querer executar a limpeza do yum ou remover o arquivo: \n"
#~ " %s"
+
#~ msgid "Error reading lilo.conf: The messages was:\n"
#~ msgstr "Erro ao ler o lilo.conf: A mensagem foi:\n"
+
#~ msgid "No groups provided or accessible on any server."
#~ msgstr "Nenhum grupo fornecido ou acessÃvel em nenhum servidor."
+
#~ msgid "%s results returned"
#~ msgstr "%s resultados retornados"
+
#~ msgid "Error moving %s to %s, fatal"
#~ msgstr "Erro ao mover %s para %s, fatal"
+
#~ msgid ""
#~ "\n"
#~ "ignoring bad rpm: %s"
#~ msgstr ""
#~ "\n"
#~ "ignorando rpm defeituoso: %s"
+
#~ msgid "[erase: %s]"
#~ msgstr "[remover: %s]"
+
#~ msgid "%s is not a dir"
#~ msgstr "%s não é um diretório"
+
#~ msgid "Best version for %s is %s:%s-%s"
#~ msgstr "A melhor versão para %s é %s:%s-%s"
+
#~ msgid "[deps: %s]"
#~ msgstr "[deps: %s]"
+
#~ msgid ""
#~ "\n"
#~ "ignoring srpm: %s"
#~ msgstr ""
#~ "\n"
#~ "ignorando srpm: %s"
+
#~ msgid "Checking deps %d/%d complete"
#~ msgstr "Checando dependências, %d/%d completo"
+
#~ msgid ""
#~ "Errors within the dir(s):\n"
#~ " %s"
#~ msgstr ""
#~ "Erro dentro do(s) diretório(s):\n"
#~ " %s"
+
#~ msgid "Please run yum in non-caching mode to correct this header."
#~ msgstr ""
#~ "Por favor, execute o yum no modo sem cache para corrigir este cabeçalho."
+
#~ msgid "Error installing lilo.conf The message was:\n"
#~ msgstr "Erro ao instalar o lilo.conf. A mensagem foi:\n"
+
#~ msgid "Error: Untrusted GPG key on %s"
#~ msgstr "Erro: Chave GPG não confiável em %s"
+
#~ msgid ""
#~ "\n"
#~ "\n"
@@ -2110,50 +2152,69 @@ msgstr "Erro ao abrir o rpm %s - erro %s"
#~ "\n"
#~ "Problema com a assinatura gpg ou com o md5sum em %s\n"
#~ "\n"
+
#~ msgid "No Packages Available for Update or Install"
#~ msgstr "Nenhum Pacote DisponÃvel para Atualização ou Instalação"
+
#~ msgid "Found best arch for install only pkg %s"
#~ msgstr "Encontre a melhor arquitetura para instalar apenas o pacote %s"
+
#~ msgid "I will do the following:"
#~ msgstr "Eu farei o seguinte:"
+
#~ msgid "Bad URL: %s"
#~ msgstr "URL Inválida: %s"
+
#~ msgid "NonMatching RPM version, %s, removing."
#~ msgstr "Versão do RPM não coincide, %s, removendo."
+
#~ msgid "I will erase these to satisfy the dependencies:"
#~ msgstr "Eu irei apagar isto para satisfazer as dependências:"
+
#~ msgid "HTTP Error (%s): %s"
#~ msgstr "Erro HTTP (%s): %s"
+
#~ msgid "Please ask your sysadmin to update the headers on this system."
#~ msgstr ""
#~ "Por favor, peça ao administrador do seu sistema para atualizar os "
#~ "cabeçalhos."
+
#~ msgid "Putting back old headers"
#~ msgstr "Recolocando cabeçalhos antigos"
+
#~ msgid "CacheDir: %s"
#~ msgstr "CacheDir (diretório de cache): %s"
+
#~ msgid "Completing update for %s - %d/%d"
#~ msgstr "Completando atualização para %s - %d/%d"
+
#~ msgid ""
#~ "Error: You may need to disable gpg checking to install this package\n"
#~ msgstr ""
#~ "Erro: Talvez seja necessário desabilitar a verificação gpg para instalar "
#~ "este pacote\n"
+
#~ msgid "Options Error: no commands found"
#~ msgstr "Erro nas opções: nenhum comando encontrado"
+
#~ msgid "Unable to run grubby correctly: the message was:\n"
#~ msgstr "Não foi possÃvel executar o grubby corretamente: a mensagem foi:\n"
+
#~ msgid "IOError - # %s - %s"
#~ msgstr "IOError (Erro E/S) - # %s - %s"
+
#~ msgid "Kernel Updated/Installed, checking for bootloader"
#~ msgstr ""
#~ "Kernel atualizado/instalado, verificando gerenciador de inicialização"
+
#~ msgid "Need to pass a list of pkgs to install"
#~ msgstr "à necessário passar uma lista de pacotes para instalar"
+
#~ msgid "Insufficient server config - no servers found. Aborting."
#~ msgstr ""
#~ "Configuração de servidor insuficiente - nenhum servidor encontrado. "
#~ "Abortando."
+
#~ msgid ""
#~ "\n"
#~ " Usage: yum [options] <update | upgrade | install | info | remove | "
@@ -2199,76 +2260,102 @@ msgstr "Erro ao abrir o rpm %s - erro %s"
#~ " --version - exibe a versão do yum\n"
#~ " -h, --help - exibe esta tela\n"
#~ " "
+
#~ msgid "From %s installing %s"
#~ msgstr "A partir de %s, instalando %s"
+
#~ msgid "No bootloader found, Cannot configure kernel, continuing."
#~ msgstr ""
#~ "Nenhum gerenciador de inicialização encontrado. Não é possÃvel configurar "
#~ "o kernel, continuando."
+
#~ msgid "Attempt to delete a missing file %s - ignoring."
#~ msgstr "Tentativa de remover um arquivo faltando %s - ignorando."
+
#~ msgid "Getting %s"
#~ msgstr "Obtendo %s"
+
#~ msgid ""
#~ "\n"
#~ "Writing header.info file"
#~ msgstr ""
#~ "\n"
#~ "Gravando arquivo header.info"
+
#~ msgid "Gathering header information file(s) from server(s)"
#~ msgstr ""
#~ "Coletando arquivo(s) de informações de cabeçalhos a partir do(s) servidor"
#~ "(es)"
+
#~ msgid "Using cached header.info file"
#~ msgstr "Utilizando arquivo header.info do cache"
+
#~ msgid "localrpmdb not defined"
#~ msgstr "localrpmdb não definido"
+
#~ msgid "Error installing the new bootloader: \n"
#~ msgstr "Erro ao instalar o novo gerenciador de inicialização: \n"
+
#~ msgid "Error: Could not find the GPG Key necessary to validate pkg %s"
#~ msgstr ""
#~ "Erro: Não foi possÃvel localizar a Chave GPG necessária para validar o "
#~ "pacote %s"
+
#~ msgid "No actions to take"
#~ msgstr "Nenhuma ação a ser tomada"
+
#~ msgid ""
#~ "Available package: %s.%s %s:%s-%s from %s matches with\n"
#~ " %s"
#~ msgstr ""
#~ "Pacote disponÃvel: %s.%s %s:%s-%s de %s resultados com\n"
#~ " %s"
+
#~ msgid " "
#~ msgstr " "
+
#~ msgid "Error: Cannot find baseurl or name for server '%s'. Skipping"
#~ msgstr ""
#~ "Erro: Não foi possÃvel localizar a baseurl ou o nome do servidor \"%s\". "
#~ "Ignorando."
+
#~ msgid "Odd header %s suddenly disappeared"
#~ msgstr "Cabeçalho indefinido %s desapareceu repentinamente"
+
#~ msgid "All dependencies resolved and no conflicts detected"
#~ msgstr "Todas as dependências resolvidas e nenhum conflito detectado"
+
#~ msgid "using cached groups from server: %s"
#~ msgstr "usando grupos em cache a partir do servidor: %s"
+
#~ msgid "Exiting."
#~ msgstr "Saindo."
+
#~ msgid ""
#~ "asking for package %s.%s - does not exist in nevral - bailing out - check "
#~ "rpmdb for errors"
#~ msgstr ""
#~ "perguntando pelo pacote %s.%s - não existe no nevral - saindo "
#~ "abruptamente - verifique por erros no rpmdb"
+
#~ msgid "Errors reported doing trial run"
#~ msgstr "Erros reportados na execução experimental"
+
#~ msgid "Lilo found - adding kernel to lilo and making it the default"
#~ msgstr "Lilo encontrado - adicionando o kernel ao lilo e tornando-o padrão"
+
#~ msgid "[update: %s]"
#~ msgstr "[atualizar: %s]"
+
#~ msgid "ERROR: Url Return no Content-Length - something is wrong"
#~ msgstr "ERRO: A URL retornou conteúdo vazio - algo está errado"
+
#~ msgid "Got a file - yay"
#~ msgstr "Obteve um arquivo - yay"
+
#~ msgid "From %s updating %s"
#~ msgstr "A partir de %s, atualizando %s"
+
#~ msgid ""
#~ "Usage:\n"
#~ "yum-arch [-v] [-z] [-l] [-c] [-n] [-d] [-q] [-vv] (path of dir where "
@@ -2298,56 +2385,77 @@ msgstr "Erro ao abrir o rpm %s - erro %s"
#~ " -l = utiliza links simbólicos como rpms válidos ao compilar "
#~ "cabeçalhos\n"
#~ " -q = faz uma exibição mais discreta"
+
#~ msgid "The file %s is damaged."
#~ msgstr "O arquivo %s está danificado."
+
#~ msgid "Repo"
#~ msgstr "Repo"
+
#~ msgid "No bootloader found, Cannot configure kernel."
#~ msgstr ""
#~ "Nenhum gerenciador de inicialização encontrado. Não é possÃvel configurar "
#~ "o kernel."
+
#~ msgid "Name"
#~ msgstr "Nome"
+
#~ msgid "[install: %s]"
#~ msgstr "[instalar: %s]"
+
#~ msgid "Downloading needed headers"
#~ msgstr "Baixando os cabeçalhos necessários"
+
#~ msgid "Header for pkg %s not found"
#~ msgstr "O cabeçalho para o pacote %s não foi encontrado"
+
#~ msgid "Cleaning all headers"
#~ msgstr "Limpando todos os cabeçalhos"
+
#~ msgid "depcheck: package %s needs %s"
#~ msgstr "verificação de dependências: o pacote %s precisa do %s"
+
#~ msgid "Error - %s cannot be found"
#~ msgstr "Erro - %s não pôde ser encontrado"
+
#~ msgid "Erasing: %s %d/%d"
#~ msgstr "Apagando: %s %d/%d"
+
#~ msgid "Nothing in any group to update or install"
#~ msgstr "Nada em nenhum grupo para atualizar ou instalar"
+
#~ msgid "Grub found - making this kernel the default"
#~ msgstr "Grub encontrado - tornando este kernel o padrão"
+
#~ msgid "Digesting rpm - %s - %d/%d"
#~ msgstr "Preparando rpm - %s - %d/%d"
+
#~ msgid "Damaged RPM %s, removing."
#~ msgstr "RPM %s danificado, removendo."
+
#~ msgid ""
#~ "Bad Header for pkg %s.%s trying to get headers for the nevral - exiting"
#~ msgstr ""
#~ "Cabeçalho danificado para o pacote %s.%s, tentando obter cabeçalhos para "
#~ "o nevral - saindo"
+
#~ msgid ""
#~ "Error: You may also check that you have the correct GPG keys installed"
#~ msgstr ""
#~ "Erro: Você também pode verificar se tem as Chaves GPG corretas instaladas"
+
#~ msgid "No rpms to work with and no header dir. Exiting."
#~ msgstr ""
#~ "Nenhum diretório de cabeçalhos e nenhum rpm para ser utilizado. Saindo."
+
#~ msgid "ignoring bad rpm: %s"
#~ msgstr "ignorando rpm danificado: %s"
+
#~ msgid "Directory of rpms must be a directory."
#~ msgstr "O diretório de rpms deve ser um diretório."
+
#~ msgid "failover: out of servers to try"
#~ msgstr "recuperação: não há mais servidores para tentar"
+
#~ msgid "Getting header.info from server"
#~ msgstr "Obtendo header.info do servidor"
-
diff --git a/po/sr.po b/po/sr.po
index 0f51d47..afff3ea 100644
--- a/po/sr.po
+++ b/po/sr.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: yum\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-05-26 13:28+0000\n"
+"POT-Creation-Date: 2008-03-25 11:29+0100\n"
"PO-Revision-Date: 2008-05-26 20:30-0000\n"
"Last-Translator: MiloÅ¡ KomarÄeviÄ <kmilos at gmail.com>\n"
"Language-Team: Serbian (sr) <fedora-trans-sr at redhat.com>\n"
@@ -20,24 +20,23 @@ msgstr ""
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-#: ../callback.py:48 ../output.py:516 ../yum/rpmtrans.py:71
+#: ../callback.py:48 ../output.py:512
msgid "Updating"
msgstr "AжÑÑиÑам"
-#: ../callback.py:49 ../yum/rpmtrans.py:72
+#: ../callback.py:49
msgid "Erasing"
msgstr "ÐÑиÑем"
-#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:515
-#: ../yum/rpmtrans.py:73 ../yum/rpmtrans.py:74 ../yum/rpmtrans.py:76
+#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:511
msgid "Installing"
msgstr "ÐнÑÑалиÑам"
-#: ../callback.py:52 ../callback.py:58 ../yum/rpmtrans.py:75
+#: ../callback.py:52 ../callback.py:58
msgid "Obsoleted"
msgstr "ÐÑевазиÑени"
-#: ../callback.py:54 ../output.py:562
+#: ../callback.py:54 ../output.py:558
msgid "Updated"
msgstr "ÐжÑÑиÑани"
@@ -45,7 +44,7 @@ msgstr "ÐжÑÑиÑани"
msgid "Erased"
msgstr "ÐбÑиÑани"
-#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:560
+#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:556
msgid "Installed"
msgstr "ÐнÑÑалиÑани"
@@ -67,53 +66,53 @@ msgstr "ÐÑеÑка: погÑеÑно излазно ÑÑаÑе: %s за %s"
msgid "Erased: %s"
msgstr "ÐбÑиÑано: %s"
-#: ../callback.py:217 ../output.py:517
+#: ../callback.py:217 ../output.py:513
msgid "Removing"
msgstr "УклаÑам"
-#: ../callback.py:219 ../yum/rpmtrans.py:77
+#: ../callback.py:219
msgid "Cleanup"
msgstr "ЧиÑÑеÑе"
-#: ../cli.py:105
+#: ../cli.py:103
#, python-format
msgid "Command \"%s\" already defined"
msgstr "ÐаÑедба â%sâ Ñе Ð²ÐµÑ Ð´ÐµÑиниÑана"
-#: ../cli.py:117
+#: ../cli.py:115
msgid "Setting up repositories"
msgstr "ÐоÑÑавÑам ÑизниÑе"
-#: ../cli.py:128
+#: ../cli.py:126
msgid "Reading repository metadata in from local files"
msgstr "ЧиÑам меÑаподаÑке ÑизниÑа из локалниÑ
даÑоÑека"
-#: ../cli.py:185 ../utils.py:71
+#: ../cli.py:183 ../utils.py:72
#, python-format
msgid "Config Error: %s"
msgstr "ÐÑеÑка пÑи подеÑаваÑÑ: %s"
-#: ../cli.py:188 ../cli.py:1080 ../utils.py:74
+#: ../cli.py:186 ../cli.py:1068 ../utils.py:75
#, python-format
msgid "Options Error: %s"
msgstr "ÐÑеÑка Ñ Ð¾Ð¿ÑиÑама: %s"
-#: ../cli.py:231
+#: ../cli.py:229
msgid "You need to give some command"
msgstr "ÐоÑаÑе да ÑнеÑеÑе Ð½ÐµÐºÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ"
-#: ../cli.py:273
+#: ../cli.py:271
msgid "Disk Requirements:\n"
msgstr "ÐаÑ
Ñеви диÑка:\n"
-#: ../cli.py:275
+#: ../cli.py:273
#, python-format
msgid " At least %dMB needed on the %s filesystem.\n"
msgstr " ÐоÑÑебно Ñе наÑмаÑе %dÐРна %s ÑиÑÑÐµÐ¼Ñ Ð´Ð°ÑоÑека.\n"
#. TODO: simplify the dependency errors?
#. Fixup the summary
-#: ../cli.py:280
+#: ../cli.py:278
msgid ""
"Error Summary\n"
"-------------\n"
@@ -121,55 +120,55 @@ msgstr ""
"СажеÑак гÑеÑака\n"
"-------------\n"
-#: ../cli.py:319
+#: ../cli.py:317
msgid "Trying to run the transaction but nothing to do. Exiting."
msgstr "ÐокÑÑавам да извÑÑим ÑÑанÑакÑиÑÑ Ð°Ð»Ð¸ нема ÑÑа да Ñе Ñади. Ðзлазим."
-#: ../cli.py:349
+#: ../cli.py:347
msgid "Exiting on user Command"
msgstr "Ðзлазим на ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ ÐºÐ¾ÑиÑника"
-#: ../cli.py:353
+#: ../cli.py:351
msgid "Downloading Packages:"
msgstr "ÐÑеÑзимам пакеÑе:"
-#: ../cli.py:358
+#: ../cli.py:356
msgid "Error Downloading Packages:\n"
msgstr "ÐÑеÑка пÑи пÑеÑзимаÑÑ Ð¿Ð°ÐºÐµÑа:\n"
-#: ../cli.py:372 ../yum/__init__.py:2816
+#: ../cli.py:370 ../yum/__init__.py:2746
msgid "Running rpm_check_debug"
msgstr "ÐзвÑÑавам rpm_check_debug"
-#: ../cli.py:375 ../yum/__init__.py:2819
+#: ../cli.py:373 ../yum/__init__.py:2749
msgid "ERROR with rpm_check_debug vs depsolve:"
msgstr "ÐÐ ÐШÐÐ Ñа rpm_check_debug Ñ Ð¾Ð´Ð½Ð¾ÑÑ Ð½Ð° depsolve:"
-#: ../cli.py:379 ../yum/__init__.py:2821
+#: ../cli.py:377 ../yum/__init__.py:2751
msgid "Please report this error in bugzilla"
msgstr "Ðолим ваÑ, пÑиÑавиÑе Ð¾Ð²Ñ Ð³ÑеÑÐºÑ Ñ bugzilla-и"
-#: ../cli.py:385
+#: ../cli.py:383
msgid "Running Transaction Test"
msgstr "ÐзвÑÑавам пÑовеÑÑ ÑÑанÑакÑиÑе"
-#: ../cli.py:401
+#: ../cli.py:399
msgid "Finished Transaction Test"
msgstr "ÐавÑÑио Ñам пÑовеÑÑ ÑÑанÑакÑиÑе"
-#: ../cli.py:403
+#: ../cli.py:401
msgid "Transaction Check Error:\n"
msgstr "ÐÑеÑка пÑи пÑовеÑи ÑÑанÑакÑиÑе:\n"
-#: ../cli.py:410
+#: ../cli.py:408
msgid "Transaction Test Succeeded"
msgstr "ÐÑовеÑа ÑÑанÑакÑиÑе Ñе ÑÑпела"
-#: ../cli.py:431
+#: ../cli.py:429
msgid "Running Transaction"
msgstr "ÐзвÑÑавам ÑÑанÑакÑиÑÑ"
-#: ../cli.py:461
+#: ../cli.py:459
msgid ""
"Refusing to automatically import keys when running unattended.\n"
"Use \"-y\" to override."
@@ -177,315 +176,296 @@ msgstr ""
"ÐдбиÑам да аÑÑомаÑÑки Ñвезем кÑÑÑеве када Ñе извÑÑаваÑе не надгледа.\n"
"Ðа пÑевазилажеÑе овога коÑиÑÑиÑе â-yâ."
-#: ../cli.py:493
+#: ../cli.py:491
msgid "Parsing package install arguments"
msgstr "РаÑÑлаÑÑÑем аÑгÑменÑе инÑÑалаÑиÑе пакеÑа"
-#: ../cli.py:503
+#: ../cli.py:501
#, python-format
msgid "No package %s available."
msgstr "Ðе поÑÑоÑи доÑÑÑпан %s пакеÑ."
-#: ../cli.py:507 ../cli.py:625 ../yumcommands.py:790
+#: ../cli.py:505 ../cli.py:623 ../yumcommands.py:748
msgid "Package(s) to install"
msgstr "ÐакеÑ(и) коÑи Ñе Ñе инÑÑалиÑаÑи"
-#: ../cli.py:508 ../cli.py:626 ../yumcommands.py:147 ../yumcommands.py:791
+#: ../cli.py:506 ../cli.py:624 ../yumcommands.py:146 ../yumcommands.py:749
msgid "Nothing to do"
msgstr "Ðема ÑÑа да Ñе Ñади"
-#: ../cli.py:538 ../yum/__init__.py:2268 ../yum/__init__.py:2368
-#: ../yum/__init__.py:2380
+#: ../cli.py:536 ../yum/__init__.py:2232 ../yum/__init__.py:2311
+#: ../yum/__init__.py:2340
#, python-format
msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
msgstr "Ðе ажÑÑиÑам пакеÑе коÑи ÑÑ Ð²ÐµÑ Ð¿ÑевазиÑени: %s.%s %s:%s-%s"
-#: ../cli.py:570
+#: ../cli.py:568
#, python-format
msgid "Could not find update match for %s"
msgstr "Ðе Ð¼Ð¾Ð³Ñ Ð´Ð° пÑонаÑем одговаÑаÑÑÑе ажÑÑиÑаÑе за %s"
-#: ../cli.py:582
+#: ../cli.py:580
#, python-format
msgid "%d packages marked for Update"
msgstr "%d пакеÑи ознаÑени за ажÑÑиÑаÑе"
-#: ../cli.py:585
+#: ../cli.py:583
msgid "No Packages marked for Update"
msgstr "Ðема пакеÑа ознаÑениÑ
за ажÑÑиÑаÑе"
-#: ../cli.py:601
+#: ../cli.py:599
#, python-format
msgid "%d packages marked for removal"
msgstr "%d пакеÑи ознаÑени за ÑклаÑаÑе"
-#: ../cli.py:604
+#: ../cli.py:602
msgid "No Packages marked for removal"
msgstr "Ðема пакеÑа ознаÑениÑ
за ÑклаÑаÑе"
-#: ../cli.py:616
+#: ../cli.py:614
msgid "No Packages Provided"
msgstr "ÐиÑедан Ð¿Ð°ÐºÐµÑ Ð½Ð¸Ñе добавÑен"
-#: ../cli.py:656
+#: ../cli.py:654
msgid "Matching packages for package list to user args"
msgstr "ÐовезиваÑе пакеÑа за ÑпиÑак пакеÑа по аÑгÑменÑима коÑиÑника"
-#: ../cli.py:704
+#: ../cli.py:701
#, python-format
msgid "Warning: No matches found for: %s"
msgstr "УпозоÑеÑе: ниÑе наÑено подÑдаÑаÑе за %s"
-#: ../cli.py:707
+#: ../cli.py:704
msgid "No Matches found"
msgstr "ÐиÑÑ Ð¿ÑонаÑена подÑдаÑаÑа"
-#: ../cli.py:748
+#: ../cli.py:745
#, python-format
msgid "No Package Found for %s"
msgstr "ÐиÑÑ Ð¿ÑонаÑени пакеÑи за %s"
-#: ../cli.py:760
+#: ../cli.py:757
msgid "Cleaning up Everything"
msgstr "ЧиÑÑим Ñве"
-#: ../cli.py:774
+#: ../cli.py:771
msgid "Cleaning up Headers"
msgstr "ЧиÑÑим заглавÑа"
-#: ../cli.py:777
+#: ../cli.py:774
msgid "Cleaning up Packages"
msgstr "ЧиÑÑим пакеÑе"
-#: ../cli.py:780
+#: ../cli.py:777
msgid "Cleaning up xml metadata"
msgstr "ЧиÑÑим xml меÑаподаÑке"
-#: ../cli.py:783
+#: ../cli.py:780
msgid "Cleaning up database cache"
msgstr "ЧиÑÑим ÐºÐµÑ Ð±Ð°Ð·Ð° подаÑака"
-#: ../cli.py:786
+#: ../cli.py:783
msgid "Cleaning up expire-cache metadata"
msgstr "ЧиÑÑим expire-cache меÑаподаÑке"
-#: ../cli.py:789
+#: ../cli.py:786
msgid "Cleaning up plugins"
msgstr "ЧиÑÑим додаÑке"
-#: ../cli.py:811
+#: ../cli.py:807
msgid "Installed Groups:"
msgstr "ÐнÑÑалиÑане гÑÑпе:"
-#: ../cli.py:818
+#: ../cli.py:814
msgid "Available Groups:"
msgstr "ÐоÑÑÑпне гÑÑпе:"
-#: ../cli.py:824
+#: ../cli.py:820
msgid "Done"
msgstr "УÑаÑено"
-#: ../cli.py:835 ../cli.py:853 ../cli.py:859
+#: ../cli.py:829 ../cli.py:841 ../cli.py:847
#, python-format
msgid "Warning: Group %s does not exist."
msgstr "УпозоÑеÑе: гÑÑпа %s не поÑÑоÑи."
-#: ../cli.py:863
+#: ../cli.py:853
msgid "No packages in any requested group available to install or update"
msgstr ""
"Ðема доÑÑÑпниÑ
пакеÑа за инÑÑалаÑиÑÑ Ð¸Ð»Ð¸ ажÑÑиÑаÑе Ñ Ñвим заÑ
Ñеваним гÑÑпама"
-#: ../cli.py:865
+#: ../cli.py:855
#, python-format
msgid "%d Package(s) to Install"
msgstr "%d пакеÑ(и) за инÑÑалаÑиÑÑ"
-#: ../cli.py:875
+#: ../cli.py:865
#, python-format
msgid "No group named %s exists"
msgstr "Ðе поÑÑоÑи гÑÑпа под именом %s"
-#: ../cli.py:881
+#: ../cli.py:871
msgid "No packages to remove from groups"
msgstr "Ðема пакеÑа за ÑклаÑаÑе из гÑÑпа"
-#: ../cli.py:883
+#: ../cli.py:873
#, python-format
msgid "%d Package(s) to remove"
msgstr "%d пакеÑ(и) за ÑклаÑаÑе"
-#: ../cli.py:925
+#: ../cli.py:915
#, python-format
msgid "Package %s is already installed, skipping"
msgstr "ÐÐ°ÐºÐµÑ %s Ñе Ð²ÐµÑ Ð¸Ð½ÑÑалиÑан, пÑеÑкаÑем га"
-#: ../cli.py:936
+#: ../cli.py:926
#, python-format
msgid "Discarding non-comparable pkg %s.%s"
msgstr "УклаÑам неÑпоÑедив Ð¿Ð°ÐºÐµÑ %s.%s"
#. we've not got any installed that match n or n+a
-#: ../cli.py:962
+#: ../cli.py:952
#, python-format
msgid "No other %s installed, adding to list for potential install"
msgstr ""
"Ðе поÑÑоÑи инÑÑалиÑан дÑÑги %s, додаÑем га Ñ ÑпиÑак за поÑенÑиÑÐ°Ð»Ð½Ñ "
"инÑÑалаÑиÑÑ"
-#: ../cli.py:981
+#: ../cli.py:971
#, python-format
msgid "Command line error: %s"
msgstr "ÐÑеÑка командне линиÑе: %s"
-#: ../cli.py:993
-#, python-format
-msgid ""
-"\n"
-"\n"
-"%s: %s option requires an argument"
-msgstr ""
-"\n"
-"\n"
-"%s: %s опÑиÑа заÑ
Ñева аÑгÑменÑ"
-
-#: ../cli.py:1122
-msgid "show this help message and exit"
-msgstr "пÑикажи Ð¾Ð²Ñ Ð¿Ð¾Ð¼Ð¾ÑÐ½Ñ Ð¿Ð¾ÑÑÐºÑ Ð¸ изаÑи"
-
-#: ../cli.py:1126
+#: ../cli.py:1101
msgid "be tolerant of errors"
msgstr "бÑди ÑолеÑанÑан на гÑеÑке"
-#: ../cli.py:1128
+#: ../cli.py:1103
msgid "run entirely from cache, don't update cache"
msgstr "извÑÑÐ°Ð²Ð°Ñ Ñе Ñ Ð¿Ð¾ÑпÑноÑÑи из кеÑа, не ажÑÑиÑÐ°Ñ ÐºÐµÑ"
-#: ../cli.py:1130
+#: ../cli.py:1105
msgid "config file location"
msgstr "меÑÑо даÑоÑеке подеÑаваÑа"
-#: ../cli.py:1132
+#: ../cli.py:1107
msgid "maximum command wait time"
msgstr "наÑдÑже вÑеме ÑекаÑа на командÑ"
-#: ../cli.py:1134
+#: ../cli.py:1109
msgid "debugging output level"
msgstr "ниво излазног пÑиказа за пÑоналажеÑе гÑеÑака"
-#: ../cli.py:1138
+#: ../cli.py:1113
msgid "show duplicates, in repos, in list/search commands"
msgstr ""
"пÑиказÑÑ Ð´ÑпликаÑе, Ñ ÑизниÑама, Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ð¼Ð° за излиÑÑаваÑе/пÑеÑÑаживаÑе"
-#: ../cli.py:1140
+#: ../cli.py:1115
msgid "error output level"
msgstr "ниво излазног пÑиказа гÑеÑака"
-#: ../cli.py:1143
+#: ../cli.py:1118
msgid "quiet operation"
msgstr "ÑиÑ
а ÑадÑа"
-#: ../cli.py:1145
-msgid "verbose operation"
-msgstr "опÑиÑна ÑадÑа"
-
-#: ../cli.py:1147
+#: ../cli.py:1122
msgid "answer yes for all questions"
msgstr "одговоÑи Ñа да на Ñва пиÑаÑа"
-#: ../cli.py:1149
+#: ../cli.py:1124
msgid "show Yum version and exit"
msgstr "пÑикажи веÑзиÑÑ Yum-а и изаÑи"
-#: ../cli.py:1150
+#: ../cli.py:1125
msgid "set install root"
msgstr "поÑÑави коÑени диÑекÑоÑиÑÑм инÑÑалаÑиÑе"
-#: ../cli.py:1154
+#: ../cli.py:1129
msgid "enable one or more repositories (wildcards allowed)"
msgstr "ÑкÑÑÑи ÑÐµÐ´Ð½Ñ Ð¸Ð»Ð¸ виÑе ÑизниÑа (ÑкÑаÑениÑе ÑÑ Ð´Ð¾Ð·Ð²Ð¾Ñене)"
-#: ../cli.py:1158
+#: ../cli.py:1133
msgid "disable one or more repositories (wildcards allowed)"
msgstr "иÑкÑÑÑи ÑÐµÐ´Ð½Ñ Ð¸Ð»Ð¸ виÑе ÑизниÑа (ÑкÑаÑениÑе ÑÑ Ð´Ð¾Ð·Ð²Ð¾Ñене)"
-#: ../cli.py:1161
+#: ../cli.py:1136
msgid "exclude package(s) by name or glob"
msgstr "изÑзмиÑе пакеÑ(е) по Ð¸Ð¼ÐµÐ½Ñ Ð¸Ð»Ð¸ glob-Ñ"
-#: ../cli.py:1163
+#: ../cli.py:1138
msgid "disable exclude from main, for a repo or for everything"
msgstr "иÑкÑÑÑи изÑзимаÑе из главног ÑкÑпа, за ÑизниÑÑ Ð¸Ð»Ð¸ за Ñве"
-#: ../cli.py:1166
+#: ../cli.py:1141
msgid "enable obsoletes processing during updates"
msgstr "ÑкÑÑÑи обÑÐ°Ð´Ñ Ð·Ð°ÑÑаÑелиÑ
пакеÑа Ñ ÑÐ¾ÐºÑ Ð°Ð¶ÑÑиÑаÑа"
-#: ../cli.py:1168
+#: ../cli.py:1143
msgid "disable Yum plugins"
msgstr "иÑкÑÑÑи додаÑке за Yum"
-#: ../cli.py:1170
+#: ../cli.py:1145
msgid "disable gpg signature checking"
msgstr "иÑкÑÑÑи пÑовеÑÑ gpg поÑпиÑа"
-#: ../cli.py:1172
+#: ../cli.py:1147
msgid "disable plugins by name"
msgstr "иÑкÑÑÑи додаÑке по именÑ"
-#: ../cli.py:1175
+#: ../cli.py:1150
msgid "skip packages with depsolving problems"
msgstr "пÑеÑкоÑи пакеÑе коÑи имаÑÑ Ð¿Ñоблема Ñа ÑеÑаваÑем завиÑноÑÑи"
-#: ../output.py:228
+#: ../output.py:229
msgid "Jan"
msgstr "Ñан"
-#: ../output.py:228
+#: ../output.py:229
msgid "Feb"
msgstr "Ñеб"
-#: ../output.py:228
+#: ../output.py:229
msgid "Mar"
msgstr "маÑ"
-#: ../output.py:228
+#: ../output.py:229
msgid "Apr"
msgstr "апÑ"
-#: ../output.py:228
+#: ../output.py:229
msgid "May"
msgstr "маÑ"
-#: ../output.py:228
+#: ../output.py:229
msgid "Jun"
msgstr "ÑÑн"
-#: ../output.py:229
+#: ../output.py:230
msgid "Jul"
msgstr "ÑÑл"
-#: ../output.py:229
+#: ../output.py:230
msgid "Aug"
msgstr "авг"
-#: ../output.py:229
+#: ../output.py:230
msgid "Sep"
msgstr "Ñеп"
-#: ../output.py:229
+#: ../output.py:230
msgid "Oct"
msgstr "окÑ"
-#: ../output.py:229
+#: ../output.py:230
msgid "Nov"
msgstr "нов"
-#: ../output.py:229
+#: ../output.py:230
msgid "Dec"
msgstr "деÑ"
-#: ../output.py:239
+#: ../output.py:240
msgid "Trying other mirror."
msgstr "ÐокÑÑавам дÑÑги одÑаз."
@@ -551,23 +531,23 @@ msgstr "ÐÐ¿Ð¸Ñ : "
msgid "Is this ok [y/N]: "
msgstr "Ðа ли Ñе ово Ñ ÑÐµÐ´Ñ [d/N]: "
-#: ../output.py:359 ../output.py:362
+#: ../output.py:357 ../output.py:360
msgid "y"
msgstr "d"
-#: ../output.py:359
+#: ../output.py:357
msgid "n"
msgstr "n"
-#: ../output.py:359 ../output.py:362
+#: ../output.py:357 ../output.py:360
msgid "yes"
msgstr "da"
-#: ../output.py:359
+#: ../output.py:357
msgid "no"
msgstr "ne"
-#: ../output.py:370
+#: ../output.py:367
#, python-format
msgid ""
"\n"
@@ -576,96 +556,96 @@ msgstr ""
"\n"
"ÐÑÑпа: %s"
-#: ../output.py:372
+#: ../output.py:369
#, python-format
msgid " Description: %s"
msgstr " ÐпиÑ: %s"
-#: ../output.py:374
+#: ../output.py:371
msgid " Mandatory Packages:"
msgstr " Ðбавезни пакеÑи:"
-#: ../output.py:379
+#: ../output.py:376
msgid " Default Packages:"
msgstr " ÐодÑазÑмевани пакеÑи:"
-#: ../output.py:384
+#: ../output.py:381
msgid " Optional Packages:"
msgstr " ÐзбоÑни пакеÑи:"
-#: ../output.py:389
+#: ../output.py:386
msgid " Conditional Packages:"
msgstr " УÑловÑени пакеÑи:"
-#: ../output.py:398
+#: ../output.py:394
#, python-format
msgid "package: %s"
msgstr "пакеÑ: %s"
-#: ../output.py:400
+#: ../output.py:396
msgid " No dependencies for this package"
msgstr " Ðе поÑÑоÑе завиÑноÑÑи овог пакеÑа"
-#: ../output.py:405
+#: ../output.py:401
#, python-format
msgid " dependency: %s"
msgstr " завиÑноÑÑ: %s"
-#: ../output.py:407
+#: ../output.py:403
msgid " Unsatisfied dependency"
msgstr " ÐезадовоÑена завиÑноÑÑ"
-#: ../output.py:465
+#: ../output.py:461
msgid "Matched from:"
msgstr "Ðовезан из:"
-#: ../output.py:491
+#: ../output.py:487
msgid "There was an error calculating total download size"
msgstr "Ðогодила Ñе гÑеÑка пÑи ÑаÑÑнаÑÑ ÑкÑпне велиÑине за пÑеÑзимаÑе"
-#: ../output.py:496
+#: ../output.py:492
#, python-format
msgid "Total size: %s"
msgstr "УкÑпна велиÑина: %s"
-#: ../output.py:499
+#: ../output.py:495
#, python-format
msgid "Total download size: %s"
msgstr "УкÑпна велиÑина за пÑеÑзимаÑе: %s"
-#: ../output.py:511
+#: ../output.py:507
msgid "Package"
msgstr "ÐакеÑ"
-#: ../output.py:511
+#: ../output.py:507
msgid "Arch"
msgstr "ÐÑÑ
иÑекÑÑÑа"
-#: ../output.py:511
+#: ../output.py:507
msgid "Version"
msgstr "ÐеÑзиÑа"
-#: ../output.py:511
+#: ../output.py:507
msgid "Repository"
msgstr "РизниÑа"
-#: ../output.py:511
+#: ../output.py:507
msgid "Size"
msgstr "ÐелиÑина"
-#: ../output.py:518
+#: ../output.py:514
msgid "Installing for dependencies"
msgstr "ÐнÑÑалиÑам због завиÑноÑÑи"
-#: ../output.py:519
+#: ../output.py:515
msgid "Updating for dependencies"
msgstr "ÐжÑÑиÑам због завиÑноÑÑи"
-#: ../output.py:520
+#: ../output.py:516
msgid "Removing for dependencies"
msgstr "УклаÑам због завиÑноÑÑи"
-#: ../output.py:532
+#: ../output.py:528
#, python-format
msgid ""
" replacing %s.%s %s\n"
@@ -674,7 +654,7 @@ msgstr ""
" ÑклаÑам %s.%s %s\n"
"\n"
-#: ../output.py:540
+#: ../output.py:536
#, python-format
msgid ""
"\n"
@@ -691,27 +671,27 @@ msgstr ""
"ажÑÑиÑаÑе %5.5s пакеÑ(а) \n"
"ÑклаÑаÑе %5.5s пакеÑ(а) \n"
-#: ../output.py:558
+#: ../output.py:554
msgid "Removed"
msgstr "УклоÑено"
-#: ../output.py:559
+#: ../output.py:555
msgid "Dependency Removed"
msgstr "ÐавиÑноÑÑ ÑклоÑена"
-#: ../output.py:561
+#: ../output.py:557
msgid "Dependency Installed"
msgstr "ÐавиÑноÑÑ Ð¸Ð½ÑÑалиÑана"
-#: ../output.py:563
+#: ../output.py:559
msgid "Dependency Updated"
msgstr "ÐавиÑноÑÑ Ð°Ð¶ÑÑиÑана"
-#: ../output.py:564
+#: ../output.py:560
msgid "Replaced"
msgstr "ÐамеÑено"
-#: ../output.py:622
+#: ../output.py:618
#, python-format
msgid ""
"\n"
@@ -722,73 +702,73 @@ msgstr ""
" ТÑенÑÑно пÑеÑзимаÑе Ñе обÑÑÑавÑено, %sinterrupt (ctrl-c) ÑÐ¾Ñ Ñедном%s Ñ "
"ÑÐ¾ÐºÑ %s%s%s ÑекÑнди да биÑÑе изаÑли.\n"
-#: ../output.py:632
+#: ../output.py:628
msgid "user interrupt"
msgstr "пÑекид од ÑÑÑане коÑиÑника"
-#: ../output.py:643
+#: ../output.py:639
msgid "installed"
msgstr "инÑÑалиÑан"
-#: ../output.py:644
+#: ../output.py:640
msgid "updated"
msgstr "ажÑÑиÑан"
-#: ../output.py:645
+#: ../output.py:641
msgid "obsoleted"
msgstr "пÑевазиÑен"
-#: ../output.py:646
+#: ../output.py:642
msgid "erased"
msgstr "обÑиÑан"
-#: ../output.py:650
+#: ../output.py:646
#, python-format
msgid "---> Package %s.%s %s:%s-%s set to be %s"
msgstr "---> ÐÐ°ÐºÐµÑ %s.%s %s:%s-%s поÑÑавÑен да бÑде %s"
-#: ../output.py:657
+#: ../output.py:653
msgid "--> Running transaction check"
msgstr "--> ÐзвÑÑава Ñе пÑовеÑа ÑÑанÑакÑиÑе"
-#: ../output.py:662
+#: ../output.py:658
msgid "--> Restarting Dependency Resolution with new changes."
msgstr "--> Ðоновно покÑеÑаÑе ÑазÑеÑаваÑа завиÑноÑÑи Ñа новим пÑоменама."
-#: ../output.py:667
+#: ../output.py:663
msgid "--> Finished Dependency Resolution"
msgstr "--> ÐавÑÑено Ñе ÑазÑеÑаваÑе завиÑноÑÑи"
-#: ../output.py:672
+#: ../output.py:668
#, python-format
msgid "--> Processing Dependency: %s for package: %s"
msgstr "--> ÐбÑаÑÑÑем завиÑноÑÑ: %s за пакеÑ: %s"
-#: ../output.py:677
+#: ../output.py:673
#, python-format
msgid "--> Unresolved Dependency: %s"
msgstr "--> ÐеÑазÑеÑена завиÑноÑÑ: %s"
-#: ../output.py:683
+#: ../output.py:679
#, python-format
msgid "--> Processing Conflict: %s conflicts %s"
msgstr "--> СÑкоб пÑи обÑади: %s Ñе ÑÑкоби Ñа %s"
-#: ../output.py:686
+#: ../output.py:682
msgid "--> Populating transaction set with selected packages. Please wait."
msgstr ""
"--> ÐопÑÑавам ÑкÑп ÑÑанÑакÑиÑе Ñа изабÑаним пакеÑима. Ðолим ваÑ, ÑаÑекаÑÑе."
-#: ../output.py:690
+#: ../output.py:686
#, python-format
msgid "---> Downloading header for %s to pack into transaction set."
msgstr "---> ÐÑеÑзимам заглавÑе за %s Ñади паковаÑа Ñ ÑкÑп ÑÑанÑакÑиÑе."
-#: ../yumcommands.py:37
+#: ../yumcommands.py:36
msgid "You need to be root to perform this command."
msgstr "ÐоÑаÑе биÑи root коÑиÑник да биÑÑе извÑÑили Ð¾Ð²Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ."
-#: ../yumcommands.py:44
+#: ../yumcommands.py:43
msgid ""
"\n"
"You have enabled checking of packages via GPG keys. This is a good thing. \n"
@@ -819,267 +799,251 @@ msgstr ""
"\n"
"Ðа виÑе инÑоÑмаÑиÑа конÑакÑиÑаÑÑе добавÑаÑа ваÑе диÑÑÑибÑÑиÑе или пакеÑа.\n"
-#: ../yumcommands.py:64
+#: ../yumcommands.py:63
#, python-format
msgid "Error: Need to pass a list of pkgs to %s"
msgstr "ÐÑеÑка: поÑÑебно Ñе да додаÑе ÑпиÑак пакеÑа %s-Ñ"
-#: ../yumcommands.py:70
+#: ../yumcommands.py:69
msgid "Error: Need an item to match"
msgstr "ÐÑеÑка: поÑÑебно Ñе пÑидÑÑжиÑи ÑÑавкÑ"
-#: ../yumcommands.py:76
+#: ../yumcommands.py:75
msgid "Error: Need a group or list of groups"
msgstr "ÐÑеÑка: поÑÑебна Ñе гÑÑпа или ÑпиÑак гÑÑпа"
-#: ../yumcommands.py:85
+#: ../yumcommands.py:84
#, python-format
msgid "Error: clean requires an option: %s"
msgstr "ÐÑеÑка: clean заÑ
Ñева опÑиÑÑ: %s"
-#: ../yumcommands.py:90
+#: ../yumcommands.py:89
#, python-format
msgid "Error: invalid clean argument: %r"
msgstr "ÐÑеÑка: погÑеÑан clean аÑгÑменÑ:%r"
-#: ../yumcommands.py:103
+#: ../yumcommands.py:102
msgid "No argument to shell"
msgstr "Ðе поÑÑоÑи аÑгÑÐ¼ÐµÐ½Ñ Ð·Ð° командно окÑÑжеÑе"
-#: ../yumcommands.py:106
+#: ../yumcommands.py:105
#, python-format
msgid "Filename passed to shell: %s"
msgstr "Ðме даÑоÑеке Ñе пÑоÑлеÑено командном окÑÑжеÑÑ: %s"
-#: ../yumcommands.py:110
+#: ../yumcommands.py:109
#, python-format
msgid "File %s given as argument to shell does not exist."
msgstr ""
"Ðе поÑÑоÑи даÑоÑека %s, коÑа Ñе пÑоÑлеÑена као аÑгÑÐ¼ÐµÐ½Ñ ÐºÐ¾Ð¼Ð°Ð´Ð½Ð¾Ð¼ окÑÑжеÑÑ."
-#: ../yumcommands.py:116
+#: ../yumcommands.py:115
msgid "Error: more than one file given as argument to shell."
msgstr ""
"ÐÑеÑка: виÑе од Ñедне даÑоÑеке Ñе пÑоÑлеÑено као аÑгÑÐ¼ÐµÐ½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð¼ окÑÑжеÑÑ."
-#: ../yumcommands.py:157
+#: ../yumcommands.py:156
msgid "PACKAGE..."
msgstr "ÐÐÐÐТ..."
-#: ../yumcommands.py:160
+#: ../yumcommands.py:159
msgid "Install a package or packages on your system"
msgstr "ÐнÑÑалиÑаÑÑе Ð¿Ð°ÐºÐµÑ Ð¸Ð»Ð¸ пакеÑе на Ð²Ð°Ñ ÑиÑÑем"
-#: ../yumcommands.py:169
+#: ../yumcommands.py:168
msgid "Setting up Install Process"
msgstr "ÐоÑÑавÑам пÑоÑÐµÑ Ð¸Ð½ÑÑалаÑиÑе"
-#: ../yumcommands.py:180
+#: ../yumcommands.py:179
msgid "[PACKAGE...]"
msgstr "[ÐÐÐÐТ...]"
-#: ../yumcommands.py:183
+#: ../yumcommands.py:182
msgid "Update a package or packages on your system"
msgstr "ÐжÑÑиÑÐ°Ñ Ð¿Ð°ÐºÐµÑ Ð¸Ð»Ð¸ пакеÑе на ваÑем ÑиÑÑемÑ"
-#: ../yumcommands.py:191
+#: ../yumcommands.py:190
msgid "Setting up Update Process"
msgstr "ÐоÑÑавÑам пÑоÑÐµÑ Ð°Ð¶ÑÑиÑаÑа"
-#: ../yumcommands.py:205
+#: ../yumcommands.py:204
msgid "Display details about a package or group of packages"
msgstr "ÐÑикажи деÑаÑе о Ñваком пакеÑÑ Ð¸Ð»Ð¸ гÑÑпи пакеÑа"
-#: ../yumcommands.py:213
+#: ../yumcommands.py:212
msgid "Installed Packages"
msgstr "ÐнÑÑалиÑани пакеÑи"
-#: ../yumcommands.py:214
+#: ../yumcommands.py:213
msgid "Available Packages"
msgstr "ÐоÑÑÑпни пакеÑи"
-#: ../yumcommands.py:215
+#: ../yumcommands.py:214
msgid "Extra Packages"
msgstr "ÐодаÑни пакеÑи"
-#: ../yumcommands.py:216
+#: ../yumcommands.py:215
msgid "Updated Packages"
msgstr "ÐжÑÑиÑани пакеÑи"
-#: ../yumcommands.py:222 ../yumcommands.py:228
+#: ../yumcommands.py:221 ../yumcommands.py:225
msgid "Obsoleting Packages"
msgstr "ÐÑевазиÑени пакеÑи"
-#: ../yumcommands.py:229
+#: ../yumcommands.py:226
msgid "Recently Added Packages"
msgstr "Ðедавно додаÑи пакеÑи"
-#: ../yumcommands.py:235
+#: ../yumcommands.py:232
msgid "No matching Packages to list"
msgstr "Ðе поÑÑоÑе одговаÑаÑÑÑи пакеÑи за излиÑÑаваÑе"
-#: ../yumcommands.py:249
+#: ../yumcommands.py:246
msgid "List a package or groups of packages"
msgstr "ÐзлиÑÑÐ°Ñ Ð¿Ð°ÐºÐµÑе или гÑÑпе пакеÑа"
-#: ../yumcommands.py:261
+#: ../yumcommands.py:258
msgid "Remove a package or packages from your system"
msgstr "УклониÑе Ð¿Ð°ÐºÐµÑ Ð¸Ð»Ð¸ пакеÑе Ñа ваÑег ÑиÑÑема"
-#: ../yumcommands.py:269
+#: ../yumcommands.py:266
msgid "Setting up Remove Process"
msgstr "ÐоÑÑавÑам пÑоÑÐµÑ ÑклаÑаÑа"
-#: ../yumcommands.py:281
+#: ../yumcommands.py:278
msgid "Setting up Group Process"
msgstr "ÐоÑÑавÑам пÑоÑÐµÑ Ð·Ð° гÑÑпе"
-#: ../yumcommands.py:287
+#: ../yumcommands.py:284
msgid "No Groups on which to run command"
msgstr "Ðе поÑÑоÑи гÑÑпа над коÑом Ñе може извÑÑиÑи команда"
-#: ../yumcommands.py:300
+#: ../yumcommands.py:297
msgid "List available package groups"
msgstr "ÐзлиÑÑÐ°Ñ Ð´Ð¾ÑÑÑпне гÑÑпе пакеÑа"
-#: ../yumcommands.py:317
+#: ../yumcommands.py:314
msgid "Install the packages in a group on your system"
msgstr "ÐнÑÑалиÑаÑÑе пакеÑе Ñ Ð³ÑÑпи на ваÑем ÑиÑÑемÑ"
-#: ../yumcommands.py:339
+#: ../yumcommands.py:336
msgid "Remove the packages in a group from your system"
msgstr "УклониÑе пакеÑе Ñ Ð³ÑÑпи Ñа ваÑег ÑиÑÑема"
-#: ../yumcommands.py:363
+#: ../yumcommands.py:360
msgid "Display details about a package group"
msgstr "ÐÑикажи деÑаÑе о гÑÑпи пакеÑа"
-#: ../yumcommands.py:387
+#: ../yumcommands.py:384
msgid "Generate the metadata cache"
msgstr "ÐапÑави ÐºÐµÑ Ñа меÑаподаÑима"
-#: ../yumcommands.py:393
+#: ../yumcommands.py:390
msgid "Making cache files for all metadata files."
msgstr "ÐÑавим ÐºÐµÑ Ð´Ð°ÑоÑеке за Ñве даÑоÑеке Ñа меÑаподаÑима."
-#: ../yumcommands.py:394
+#: ../yumcommands.py:391
msgid "This may take a while depending on the speed of this computer"
msgstr "Ðво може да поÑÑаÑе Ñ Ð·Ð°Ð²Ð¸ÑноÑÑи од бÑзине ваÑег ÑаÑÑнаÑа"
-#: ../yumcommands.py:415
+#: ../yumcommands.py:412
msgid "Metadata Cache Created"
msgstr "ÐапÑавÑен Ñе ÐºÐµÑ Ñа меÑаподаÑима"
-#: ../yumcommands.py:429
+#: ../yumcommands.py:426
msgid "Remove cached data"
msgstr "Уклони кеÑиÑане подаÑке"
-#: ../yumcommands.py:450
+#: ../yumcommands.py:447
msgid "Find what package provides the given value"
msgstr "ÐÑонаÑи коÑи Ð¿Ð°ÐºÐµÑ Ð¿ÑÑжа даÑÑ Ð²ÑедноÑÑ"
-#: ../yumcommands.py:470
+#: ../yumcommands.py:467
msgid "Check for available package updates"
msgstr "ÐÑовеÑиÑе да ли ÑÑ Ð´Ð¾ÑÑÑпна ажÑÑиÑаÑа пакеÑа"
-#: ../yumcommands.py:493
+#: ../yumcommands.py:490
msgid "Search package details for the given string"
msgstr "ÐÑеÑÑажиÑе деÑаÑе о пакеÑÑ Ð·Ð° задаÑÑ Ð½Ð¸ÑкÑ"
-#: ../yumcommands.py:499
+#: ../yumcommands.py:496
msgid "Searching Packages: "
msgstr "ÐÑеÑÑажÑÑем пакеÑе: "
-#: ../yumcommands.py:516
+#: ../yumcommands.py:513
msgid "Update packages taking obsoletes into account"
msgstr "ÐжÑÑиÑаÑÑе пакеÑе ÑзимаÑÑÑи пÑевазиÑене Ñ Ð¾Ð±Ð·Ð¸Ñ"
-#: ../yumcommands.py:525
+#: ../yumcommands.py:522
msgid "Setting up Upgrade Process"
msgstr "ÐоÑÑавÑам пÑоÑÐµÑ Ð½Ð°Ð´Ð³ÑадÑе"
-#: ../yumcommands.py:539
+#: ../yumcommands.py:536
msgid "Install a local RPM"
msgstr "ÐнÑÑалиÑÐ°Ñ Ð»Ð¾ÐºÐ°Ð»Ð½Ð¸ RPM"
-#: ../yumcommands.py:548
+#: ../yumcommands.py:545
msgid "Setting up Local Package Process"
msgstr "ÐоÑÑавÑам пÑоÑÐµÑ Ð»Ð¾ÐºÐ°Ð»Ð½Ð¸Ñ
пакеÑа"
-#: ../yumcommands.py:567
+#: ../yumcommands.py:564
msgid "Determine which package provides the given dependency"
msgstr "ÐдÑеди коÑи пакеÑи пÑÑжаÑÑ Ð´Ð°ÑÑ Ð·Ð°Ð²Ð¸ÑноÑÑ"
-#: ../yumcommands.py:570
+#: ../yumcommands.py:567
msgid "Searching Packages for Dependency:"
msgstr "ÐÑеÑÑажÑÑем пакеÑе Ñ Ð¿Ð¾ÑÑази за завиÑноÑÑима:"
-#: ../yumcommands.py:584
+#: ../yumcommands.py:581
msgid "Run an interactive yum shell"
msgstr "ÐзвÑÑÐ°Ð²Ð°Ñ Ð¸Ð½ÑеÑакÑивно командно окÑÑжеÑе yum-а"
-#: ../yumcommands.py:590
+#: ../yumcommands.py:587
msgid "Setting up Yum Shell"
msgstr "ÐоÑÑавÑам Yum командно окÑÑжеÑе"
-#: ../yumcommands.py:608
+#: ../yumcommands.py:605
msgid "List a package's dependencies"
msgstr "ÐзлиÑÑÐ°Ñ Ð·Ð°Ð²Ð¸ÑноÑÑи пакеÑа"
-#: ../yumcommands.py:614
+#: ../yumcommands.py:611
msgid "Finding dependencies: "
msgstr "ТÑажим завиÑноÑÑи: "
-#: ../yumcommands.py:630
+#: ../yumcommands.py:627
msgid "Display the configured software repositories"
msgstr "ÐÑикажи подеÑене ÑоÑÑвеÑÑке ÑизниÑе"
-#: ../yumcommands.py:666
-msgid "enabled"
-msgstr "ÑкÑÑÑена"
-
-#: ../yumcommands.py:673
-msgid "disabled"
-msgstr "иÑкÑÑÑена"
-
-#: ../yumcommands.py:682
+#: ../yumcommands.py:645
msgid "repo id"
msgstr "Ñепо id"
-#: ../yumcommands.py:683
+#: ../yumcommands.py:645
msgid "repo name"
msgstr "Ñепо име"
-#: ../yumcommands.py:683
+#: ../yumcommands.py:645
msgid "status"
msgstr "ÑÑаÑÑÑ"
-#: ../yumcommands.py:686
-msgid "Repo-id : "
-msgstr "ÐÐ ÑизниÑе : "
-
-#: ../yumcommands.py:687
-msgid "Repo-name : "
-msgstr "Ðме ÑизниÑе : "
-
-#: ../yumcommands.py:688
-msgid "Repo-enabled: "
-msgstr "РизниÑа ÑкÑÑÑена: "
+#: ../yumcommands.py:651
+msgid "enabled"
+msgstr "ÑкÑÑÑена"
-#: ../yumcommands.py:689
-msgid "Repo-size : "
-msgstr "ÐелиÑина ÑизниÑе: "
+#: ../yumcommands.py:654
+msgid "disabled"
+msgstr "иÑкÑÑÑена"
-#: ../yumcommands.py:713
+#: ../yumcommands.py:671
msgid "Display a helpful usage message"
msgstr "ÐÑикажи коÑиÑÐ½Ñ Ð¿Ð¾ÑÑÐºÑ Ð¾ ÑпоÑÑеби"
-#: ../yumcommands.py:747
+#: ../yumcommands.py:705
#, python-format
msgid "No help available for %s"
msgstr "ÐиÑе доÑÑÑпна Ð¿Ð¾Ð¼Ð¾Ñ Ð·Ð° %s"
-#: ../yumcommands.py:752
+#: ../yumcommands.py:710
msgid ""
"\n"
"\n"
@@ -1089,7 +1053,7 @@ msgstr ""
"\n"
"алиÑаÑи: "
-#: ../yumcommands.py:754
+#: ../yumcommands.py:712
msgid ""
"\n"
"\n"
@@ -1099,15 +1063,15 @@ msgstr ""
"\n"
"алиÑаÑ: "
-#: ../yumcommands.py:783
+#: ../yumcommands.py:741
msgid "Setting up Reinstall Process"
msgstr "ÐоÑÑавÑам пÑоÑÐµÑ Ð¿Ð¾Ð½Ð¾Ð²Ð½Ðµ инÑÑалаÑиÑе"
-#: ../yumcommands.py:797
+#: ../yumcommands.py:755
msgid "reinstall a package"
msgstr "поновно инÑÑалиÑам пакеÑ"
-#: ../yummain.py:53
+#: ../yummain.py:41
msgid ""
"\n"
"\n"
@@ -1117,7 +1081,7 @@ msgstr ""
"\n"
"Ðзлазим када коÑиÑник оÑкаже"
-#: ../yummain.py:59
+#: ../yummain.py:47
msgid ""
"\n"
"\n"
@@ -1127,29 +1091,29 @@ msgstr ""
"\n"
"Ðзлазим када Ñе Ñломи Ñев"
-#: ../yummain.py:110
+#: ../yummain.py:105
msgid ""
"Another app is currently holding the yum lock; waiting for it to exit..."
msgstr ""
"Ðеки дÑÑги пÑогÑам ÑÑенÑÑно дÑжи yum закÑÑÑаваÑе, Ñекам да Ñе ÑÐ°Ñ Ð¿ÑогÑам "
"иÑкÑÑÑи..."
-#: ../yummain.py:137 ../yummain.py:176
+#: ../yummain.py:132 ../yummain.py:171
#, python-format
msgid "Error: %s"
msgstr "ÐÑеÑка: %s"
-#: ../yummain.py:147 ../yummain.py:183
+#: ../yummain.py:142 ../yummain.py:178
#, python-format
msgid "Unknown Error(s): Exit Code: %d:"
msgstr "ÐепознаÑа гÑеÑка(е): излазни код: %d:"
#. Depsolve stage
-#: ../yummain.py:154
+#: ../yummain.py:149
msgid "Resolving Dependencies"
msgstr "РазÑеÑавам завиÑноÑÑи"
-#: ../yummain.py:189
+#: ../yummain.py:184
msgid ""
"\n"
"Dependencies Resolved"
@@ -1157,11 +1121,11 @@ msgstr ""
"\n"
"ÐавиÑноÑÑи ÑÑ ÑазÑеÑене"
-#: ../yummain.py:203
+#: ../yummain.py:198
msgid "Complete!"
msgstr "ÐавÑÑено!"
-#: ../yummain.py:250
+#: ../yummain.py:245
msgid ""
"\n"
"\n"
@@ -1171,257 +1135,318 @@ msgstr ""
"\n"
"Ðзлазим када коÑиÑник оÑкаже."
-#: ../yum/depsolve.py:78
+#: ../yum/depsolve.py:82
msgid "doTsSetup() will go away in a future version of Yum.\n"
msgstr "doTsSetup() неÑе биÑи пÑиÑÑÑна Ñ Ð±ÑдÑÑим веÑзиÑама Yum-а.\n"
-#: ../yum/depsolve.py:91
+#: ../yum/depsolve.py:95
msgid "Setting up TransactionSets before config class is up"
msgstr "ÐоÑÑавÑам TransactionSets пÑе него ÑÑо Ñе подигне клаÑа подеÑаваÑа"
-#: ../yum/depsolve.py:132
+#: ../yum/depsolve.py:136
#, python-format
msgid "Invalid tsflag in config file: %s"
msgstr "ÐогÑеÑан tsflag Ñ Ð´Ð°ÑоÑеÑи подеÑаваÑа: %s"
-#: ../yum/depsolve.py:176
+#: ../yum/depsolve.py:147
+#, fuzzy, python-format
+msgid "Searching pkgSack for dep: %s"
+msgstr "ÑÑажим Ð¿Ð°ÐºÐµÑ %s"
+
+#: ../yum/depsolve.py:170
+#, fuzzy, python-format
+msgid "Potential match for %s from %s"
+msgstr "ÐоÑÑоÑи виÑе од Ñедног иденÑиÑног ÑлагаÑа Ñ Ð³ÑÑпи за %s"
+
+#: ../yum/depsolve.py:178
+#, fuzzy, python-format
+msgid "Matched %s to require for %s"
+msgstr "%s заÑ
Ñева: %s"
+
+#: ../yum/depsolve.py:219
#, python-format
msgid "Member: %s"
msgstr "Члан: %s"
-#: ../yum/depsolve.py:190 ../yum/depsolve.py:595
+#: ../yum/depsolve.py:233 ../yum/depsolve.py:696
#, python-format
msgid "%s converted to install"
msgstr "%s пÑебаÑен за инÑÑалаÑиÑÑ"
-#: ../yum/depsolve.py:197
+#: ../yum/depsolve.py:240
#, python-format
msgid "Adding Package %s in mode %s"
msgstr "ÐодаÑем Ð¿Ð°ÐºÐµÑ %s Ñ Ð½Ð°ÑÐ¸Ð½Ñ Ñада %s"
-#: ../yum/depsolve.py:207
+#: ../yum/depsolve.py:250
#, python-format
msgid "Removing Package %s"
msgstr "УклаÑам Ð¿Ð°ÐºÐµÑ %s"
-#: ../yum/depsolve.py:218
+#: ../yum/depsolve.py:261
#, python-format
msgid "%s requires: %s"
msgstr "%s заÑ
Ñева: %s"
-#: ../yum/depsolve.py:273
+#: ../yum/depsolve.py:312
+msgid "Needed Require has already been looked up, cheating"
+msgstr ""
+
+#: ../yum/depsolve.py:322
+#, python-format
+msgid "Needed Require is not a package name. Looking up: %s"
+msgstr ""
+
+#: ../yum/depsolve.py:329
+#, fuzzy, python-format
+msgid "Potential Provider: %s"
+msgstr "УкÑпна велиÑина: %s"
+
+#: ../yum/depsolve.py:352
+#, python-format
+msgid "Mode is %s for provider of %s: %s"
+msgstr ""
+
+#: ../yum/depsolve.py:356
+#, python-format
+msgid "Mode for pkg providing %s: %s"
+msgstr ""
+
+#: ../yum/depsolve.py:360
+#, python-format
+msgid "TSINFO: %s package requiring %s marked as erase"
+msgstr "TSINFO: %s Ð¿Ð°ÐºÐµÑ Ð·Ð°Ñ
Ñева да %s бÑде ознаÑен за бÑиÑаÑе"
+
+#: ../yum/depsolve.py:372
#, python-format
msgid "TSINFO: Obsoleting %s with %s to resolve dep."
msgstr "TSINFO: меÑам %s Ñа %s да биÑ
ÑазÑеÑио завиÑноÑÑ."
-#: ../yum/depsolve.py:276
+#: ../yum/depsolve.py:375
#, python-format
msgid "TSINFO: Updating %s to resolve dep."
msgstr "TSINFO: ажÑÑиÑам %s да биÑ
ÑазÑеÑио завиÑноÑÑ."
-#: ../yum/depsolve.py:279
+#: ../yum/depsolve.py:378
#, python-format
msgid "Cannot find an update path for dep for: %s"
msgstr "Ðе Ð¼Ð¾Ð³Ñ Ð´Ð° пÑонаÑем пÑÑаÑÑ Ð°Ð¶ÑÑиÑаÑа за завиÑноÑÑ Ð·Ð°: %s"
-#: ../yum/depsolve.py:283
+#: ../yum/depsolve.py:388
#, python-format
-msgid "TSINFO: %s package requiring %s marked as erase"
-msgstr "TSINFO: %s Ð¿Ð°ÐºÐµÑ Ð·Ð°Ñ
Ñева да %s бÑде ознаÑен за бÑиÑаÑе"
+msgid "Unresolvable requirement %s for %s"
+msgstr ""
#. is it already installed?
-#: ../yum/depsolve.py:329
+#: ../yum/depsolve.py:434
#, python-format
msgid "%s is in providing packages but it is already installed, removing."
msgstr "%s Ñе Ñ Ð¿ÑÑженим пакеÑа али Ñе Ð²ÐµÑ Ð¸Ð½ÑÑалиÑан, ÑклаÑам га."
-#: ../yum/depsolve.py:344
+#: ../yum/depsolve.py:449
#, python-format
msgid "Potential resolving package %s has newer instance in ts."
msgstr "ÐоÑенÑиÑално ÑазÑеÑаваÑе пакеÑа %s има новиÑи пÑимеÑак Ñ ts-Ñ."
-#: ../yum/depsolve.py:355
+#: ../yum/depsolve.py:460
#, python-format
msgid "Potential resolving package %s has newer instance installed."
msgstr "ÐоÑенÑиÑално ÑазÑеÑаваÑе пакеÑа %s има инÑÑалиÑан нови пÑимеÑак."
-#: ../yum/depsolve.py:363 ../yum/depsolve.py:412
+#: ../yum/depsolve.py:468 ../yum/depsolve.py:527
#, python-format
msgid "Missing Dependency: %s is needed by package %s"
msgstr "ÐедоÑÑаÑе завиÑноÑÑ: %s Ñе поÑÑебан од ÑÑÑане пакеÑа %s"
-#: ../yum/depsolve.py:376
+#: ../yum/depsolve.py:481
#, python-format
msgid "%s already in ts, skipping this one"
msgstr "%s Ñе Ð²ÐµÑ Ñ ts-Ñ, пÑеÑкаÑем га"
-#: ../yum/depsolve.py:422
+#: ../yum/depsolve.py:510
+#, python-format
+msgid ""
+"Failure finding best provider of %s for %s, exceeded maximum loop length"
+msgstr ""
+
+#: ../yum/depsolve.py:537
#, python-format
msgid "TSINFO: Marking %s as update for %s"
msgstr "TSINFO: ознаÑавам %s као ажÑÑиÑаÑе за %s"
-#: ../yum/depsolve.py:429
+#: ../yum/depsolve.py:544
#, python-format
msgid "TSINFO: Marking %s as install for %s"
msgstr "TSINFO: ознаÑавам %s као инÑÑалаÑиÑÑ Ð·Ð° %s"
-#: ../yum/depsolve.py:520 ../yum/depsolve.py:613
+#: ../yum/depsolve.py:635 ../yum/depsolve.py:714
msgid "Success - empty transaction"
msgstr "УÑпеÑ
- пÑазна ÑÑанÑакÑиÑа"
-#: ../yum/depsolve.py:565 ../yum/depsolve.py:585
+#: ../yum/depsolve.py:673 ../yum/depsolve.py:686
msgid "Restarting Loop"
msgstr "Ðоново покÑеÑем пеÑÑÑ"
-#: ../yum/depsolve.py:601
+#: ../yum/depsolve.py:702
msgid "Dependency Process ending"
msgstr "ÐавÑÑеÑак пÑоÑеÑа завиÑноÑÑи"
-#: ../yum/depsolve.py:607
+#: ../yum/depsolve.py:708
#, python-format
msgid "%s from %s has depsolving problems"
msgstr "%s из %s има пÑоблема Ñа ÑазÑеÑаваÑем завиÑноÑÑи"
-#: ../yum/depsolve.py:614
+#: ../yum/depsolve.py:715
msgid "Success - deps resolved"
msgstr "УÑпеÑ
- завиÑноÑÑи ÑÑ ÑазÑеÑене"
-#: ../yum/depsolve.py:628
+#: ../yum/depsolve.py:729
#, python-format
msgid "Checking deps for %s"
msgstr "ÐÑовеÑавам завиÑноÑÑи за %s"
-#: ../yum/depsolve.py:690
+#: ../yum/depsolve.py:782
#, python-format
msgid "looking for %s as a requirement of %s"
msgstr "ÑÑажим %s као заÑ
Ñев за %s"
-#: ../yum/depsolve.py:817
+#: ../yum/depsolve.py:933
#, python-format
-msgid "Running compare_providers() for %s"
-msgstr "ÐокÑеÑем compare_providers() за %s"
+msgid "Comparing best: %s to po: %s"
+msgstr ""
-#: ../yum/depsolve.py:845 ../yum/depsolve.py:851
+#: ../yum/depsolve.py:937
+#, python-format
+msgid "Same: best %s == po: %s"
+msgstr ""
+
+#: ../yum/depsolve.py:952 ../yum/depsolve.py:963
+#, fuzzy, python-format
+msgid "best %s obsoletes po: %s"
+msgstr "%s пÑевазилази %s"
+
+#: ../yum/depsolve.py:955
+#, fuzzy, python-format
+msgid "po %s obsoletes best: %s"
+msgstr "%s пÑевазилази %s"
+
+#: ../yum/depsolve.py:972 ../yum/depsolve.py:979 ../yum/depsolve.py:1036
#, python-format
msgid "better arch in po %s"
msgstr "боÑа аÑÑ
иÑекÑÑÑа Ñ po %s"
-#: ../yum/depsolve.py:890
+#: ../yum/depsolve.py:988 ../yum/depsolve.py:1010
#, python-format
-msgid "%s obsoletes %s"
-msgstr "%s пÑевазилази %s"
+msgid "po %s shares a sourcerpm with %s"
+msgstr ""
-#: ../yum/depsolve.py:901
+#: ../yum/depsolve.py:992 ../yum/depsolve.py:1015
#, python-format
-msgid ""
-"archdist compared %s to %s on %s\n"
-" Winner: %s"
+msgid "best %s shares a sourcerpm with %s"
msgstr ""
-"archdist ÑпоÑедио %s Ñа %s на %s\n"
-" Ðобедник: %s"
-#: ../yum/depsolve.py:908
+#: ../yum/depsolve.py:999 ../yum/depsolve.py:1020
#, python-format
-msgid "common sourcerpm %s and %s"
-msgstr "заÑедниÑки извоÑни rpm %s и %s"
+msgid "po %s shares more of the name prefix with %s"
+msgstr ""
-#: ../yum/depsolve.py:914
+#: ../yum/depsolve.py:1003 ../yum/depsolve.py:1029
#, python-format
-msgid "common prefix of %s between %s and %s"
-msgstr "заÑедниÑки пÑеÑÐ¸ÐºÑ %s измеÑÑ %s и %s"
+msgid "po %s has a shorter name than best %s"
+msgstr ""
-#: ../yum/depsolve.py:922
+#: ../yum/depsolve.py:1025
#, python-format
-msgid "Best Order: %s"
-msgstr "ÐаÑбоÑи ÑедоÑлед: %s"
+msgid "bestpkg %s shares more of the name prefix with %s"
+msgstr ""
-#: ../yum/__init__.py:129
+#: ../yum/__init__.py:119
msgid "doConfigSetup() will go away in a future version of Yum.\n"
msgstr "doConfigSetup() неÑе биÑи пÑиÑÑÑна Ñ Ð±ÑдÑÑим веÑзиÑама Yum-а.\n"
-#: ../yum/__init__.py:303
+#: ../yum/__init__.py:296
#, python-format
msgid "Repository %r is missing name in configuration, using id"
msgstr "РизниÑи %r недоÑÑаÑе име Ñ Ð¿Ð¾Ð´ÐµÑаваÑима, коÑиÑÑим id"
-#: ../yum/__init__.py:339
+#: ../yum/__init__.py:332
msgid "plugins already initialised"
msgstr "Ð²ÐµÑ Ð¸Ð½Ð¸ÑиÑализовани додаÑи"
-#: ../yum/__init__.py:346
+#: ../yum/__init__.py:339
msgid "doRpmDBSetup() will go away in a future version of Yum.\n"
msgstr "doRpmDBSetup() неÑе биÑи пÑиÑÑÑна Ñ Ð±ÑдÑÑим веÑзиÑама Yum-а.\n"
-#: ../yum/__init__.py:356
+#: ../yum/__init__.py:349
msgid "Reading Local RPMDB"
msgstr "ЧиÑам локални RPMDB"
-#: ../yum/__init__.py:374
+#: ../yum/__init__.py:367
msgid "doRepoSetup() will go away in a future version of Yum.\n"
msgstr "doRepoSetup() неÑе биÑи пÑиÑÑÑна Ñ Ð±ÑдÑÑим веÑзиÑама Yum-а.\n"
-#: ../yum/__init__.py:394
+#: ../yum/__init__.py:387
msgid "doSackSetup() will go away in a future version of Yum.\n"
msgstr "doSackSetup() неÑе биÑи пÑиÑÑÑна Ñ Ð±ÑдÑÑим веÑзиÑама Yum-а.\n"
-#: ../yum/__init__.py:411
+#: ../yum/__init__.py:404
msgid "Setting up Package Sacks"
msgstr "ÐоÑÑавÑам гÑÑпе пакеÑа"
-#: ../yum/__init__.py:454
+#: ../yum/__init__.py:447
#, python-format
msgid "repo object for repo %s lacks a _resetSack method\n"
msgstr "Ñепо обÑекÑÑ Ð·Ð° Ñепо %s недоÑÑаÑе a _resetSack меÑода\n"
-#: ../yum/__init__.py:455
+#: ../yum/__init__.py:448
msgid "therefore this repo cannot be reset.\n"
msgstr "због Ñога Ñе Ð¾Ð²Ð°Ñ Ñепо не може вÑаÑиÑи на поÑеÑÐ½Ñ Ð¿Ð¾ÑÑавкÑ.\n"
-#: ../yum/__init__.py:460
+#: ../yum/__init__.py:453
msgid "doUpdateSetup() will go away in a future version of Yum.\n"
msgstr "doUpdateSetup() неÑе биÑи пÑиÑÑÑна Ñ Ð±ÑдÑÑим веÑзиÑама Yum-а.\n"
-#: ../yum/__init__.py:472
+#: ../yum/__init__.py:465
msgid "Building updates object"
msgstr "ÐзгÑаÑÑÑем обÑÐµÐºÐ°Ñ Ð°Ð¶ÑÑиÑÑа"
-#: ../yum/__init__.py:503
+#: ../yum/__init__.py:496
msgid "doGroupSetup() will go away in a future version of Yum.\n"
msgstr "doGroupSetup() неÑе биÑи пÑиÑÑÑна Ñ Ð±ÑдÑÑим веÑзиÑама Yum-а.\n"
-#: ../yum/__init__.py:527
+#: ../yum/__init__.py:520
msgid "Getting group metadata"
msgstr "ÐобавÑам меÑаподаÑке гÑÑпе"
-#: ../yum/__init__.py:553
+#: ../yum/__init__.py:546
#, python-format
msgid "Adding group file from repository: %s"
msgstr "ÐодаÑем даÑоÑÐµÐºÑ Ð³ÑÑпе из ÑизниÑе: %s"
-#: ../yum/__init__.py:562
+#: ../yum/__init__.py:555
#, python-format
msgid "Failed to add groups file for repository: %s - %s"
msgstr "ÐиÑам ÑÑпео да додам даÑоÑÐµÐºÑ Ð³ÑÑпе за ÑизниÑÑ: %s - %s"
-#: ../yum/__init__.py:568
+#: ../yum/__init__.py:561
msgid "No Groups Available in any repository"
msgstr "Ðе поÑÑоÑи гÑÑпа коÑа Ñе доÑÑÑпна Ñ Ð±Ð¸Ð»Ð¾ коÑÐ¾Ñ ÑизниÑи"
-#: ../yum/__init__.py:618
+#: ../yum/__init__.py:611
msgid "Importing additional filelist information"
msgstr "Увозим додаÑне инÑоÑмаÑиÑе о ÑпиÑковима даÑоÑека"
-#: ../yum/__init__.py:670
+#: ../yum/__init__.py:657
#, python-format
msgid "Skip-broken round %i"
msgstr "Skip-broken еÑапа %i"
-#: ../yum/__init__.py:693
+#: ../yum/__init__.py:680
#, python-format
msgid "Skip-broken took %i rounds "
msgstr "Skip-broken Ñе завÑÑен Ñ %i еÑапа "
-#: ../yum/__init__.py:694
+#: ../yum/__init__.py:681
msgid ""
"\n"
"Packages skipped because of dependency problems:"
@@ -1429,102 +1454,95 @@ msgstr ""
"\n"
"ÐакеÑи ÑÑ Ð¿ÑеÑкоÑени због пÑоблема Ñа завиÑноÑÑима:"
-#: ../yum/__init__.py:698
+#: ../yum/__init__.py:685
#, python-format
msgid " %s from %s"
msgstr " %s из %s"
-#: ../yum/__init__.py:779
-msgid ""
-"Warning: scriptlet or other non-fatal errors occurred during transaction."
-msgstr ""
-"УпозоÑеÑе: доÑло Ñе до гÑеÑке Ñ ÑкÑипÑиÑи или неке дÑÑге некÑиÑиÑне гÑеÑке "
-"Ñоком ÑÑанÑкаÑиÑе."
-
-#: ../yum/__init__.py:794
+#: ../yum/__init__.py:774
#, python-format
msgid "Failed to remove transaction file %s"
msgstr "ÐиÑам ÑÑпео да Ñклоним даÑоÑÐµÐºÑ ÑÑанÑакÑиÑе %s"
-#: ../yum/__init__.py:834
+#: ../yum/__init__.py:814
#, python-format
msgid "excluding for cost: %s from %s"
msgstr "изÑзимам из ÑÑоÑка: %s из %s"
-#: ../yum/__init__.py:865
+#: ../yum/__init__.py:845
msgid "Excluding Packages in global exclude list"
msgstr "ÐзÑзимам пакеÑе Ñ Ð³Ð»Ð¾Ð±Ð°Ð»Ð½Ð¾Ð¼ ÑпиÑÐºÑ Ð·Ð° изÑзимаÑе"
-#: ../yum/__init__.py:867
+#: ../yum/__init__.py:847
#, python-format
msgid "Excluding Packages from %s"
msgstr "ÐзÑзимам пакеÑе из %s"
-#: ../yum/__init__.py:895
+#: ../yum/__init__.py:875
#, python-format
msgid "Reducing %s to included packages only"
msgstr "Сажимам %s Ñамо Ñ ÑадÑжане пакеÑе"
-#: ../yum/__init__.py:900
+#: ../yum/__init__.py:880
#, python-format
msgid "Keeping included package %s"
msgstr "ÐадÑжавам ÑадÑжани Ð¿Ð°ÐºÐµÑ %s"
-#: ../yum/__init__.py:906
+#: ../yum/__init__.py:886
#, python-format
msgid "Removing unmatched package %s"
msgstr "УклаÑам неповезани Ð¿Ð°ÐºÐµÑ %s"
-#: ../yum/__init__.py:909
+#: ../yum/__init__.py:889
msgid "Finished"
msgstr "ÐавÑÑио"
#. Whoa. What the heck happened?
-#: ../yum/__init__.py:939
+#: ../yum/__init__.py:919
#, python-format
msgid "Unable to check if PID %s is active"
msgstr "ÐиÑам Ñ Ð¼Ð¾Ð³ÑÑниÑÑи да пÑовеÑим да ли Ñе PID %s акÑиван"
#. Another copy seems to be running.
-#: ../yum/__init__.py:943
+#: ../yum/__init__.py:923
#, python-format
msgid "Existing lock %s: another copy is running as pid %s."
msgstr "ÐоÑÑоÑи закÑÑÑаваÑе %s: дÑÑга копиÑа Ñе извÑÑава као pid %s."
-#: ../yum/__init__.py:1006
+#: ../yum/__init__.py:970 ../yum/__init__.py:977
msgid "Package does not match intended download"
msgstr "ÐÐ°ÐºÐµÑ Ð½Ð¸Ñе одговаÑаÑÑÑи за намеÑавано пÑеÑзимаÑе"
-#: ../yum/__init__.py:1021
+#: ../yum/__init__.py:991
msgid "Could not perform checksum"
msgstr "Ðе Ð¼Ð¾Ð³Ñ Ð´Ð° извÑÑим конÑÑÐ¾Ð»Ñ ÑÑме"
-#: ../yum/__init__.py:1024
+#: ../yum/__init__.py:994
msgid "Package does not match checksum"
msgstr "ÐÐ°ÐºÐµÑ Ð½ÐµÐ¼Ð° одговаÑаÑÑÑи конÑÑÐ¾Ð»Ð½Ñ ÑÑмÑ"
-#: ../yum/__init__.py:1068
+#: ../yum/__init__.py:1036
#, python-format
msgid "package fails checksum but caching is enabled for %s"
msgstr ""
"Ð¿Ð°ÐºÐµÑ Ð½ÐµÐ¼Ð° одговаÑаÑÑÑÑ Ð²ÑедноÑÑ ÐºÐ¾Ð½ÑÑолне ÑÑме или Ñе за %s ÑкÑÑÑено "
"кеÑиÑаÑе"
-#: ../yum/__init__.py:1071
+#: ../yum/__init__.py:1042
#, python-format
msgid "using local copy of %s"
msgstr "коÑиÑÑим локални Ñмножак %s-а"
-#: ../yum/__init__.py:1096
+#: ../yum/__init__.py:1061
#, python-format
msgid "Insufficient space in download directory %s to download"
msgstr "ÐедовоÑна колиÑина пÑоÑÑоÑа Ñ Ð´Ð¸ÑекÑоÑиÑÑÐ¼Ñ %s намеÑеног за пÑеÑзимаÑе"
-#: ../yum/__init__.py:1129
+#: ../yum/__init__.py:1094
msgid "Header is not complete."
msgstr "ÐаглавÑе ниÑе поÑпÑно."
-#: ../yum/__init__.py:1169
+#: ../yum/__init__.py:1134
#, python-format
msgid ""
"Header not in local cache and caching-only mode enabled. Cannot download %s"
@@ -1532,62 +1550,62 @@ msgstr ""
"ÐаглавÑе ниÑе Ñ Ð»Ð¾ÐºÐ°Ð»Ð½Ð¾Ð¼ кеÑÑ Ð¸ Ñамо наÑин Ñада Ñа кеÑиÑаÑем Ñе ÑкÑÑÑен. Ðе "
"Ð¼Ð¾Ð³Ñ Ð´Ð° пÑеÑзмем %s"
-#: ../yum/__init__.py:1224
+#: ../yum/__init__.py:1189
#, python-format
msgid "Public key for %s is not installed"
msgstr "Ðавни кÑÑÑ Ð·Ð° %s ниÑе инÑÑалиÑан"
-#: ../yum/__init__.py:1228
+#: ../yum/__init__.py:1193
#, python-format
msgid "Problem opening package %s"
msgstr "ÐÑоблем Ñа оÑваÑаÑем пакеÑа %s"
-#: ../yum/__init__.py:1236
+#: ../yum/__init__.py:1201
#, python-format
msgid "Public key for %s is not trusted"
msgstr "Ðавни кÑÑÑ Ð·Ð° %s ниÑе повеÑÑив"
-#: ../yum/__init__.py:1240
+#: ../yum/__init__.py:1205
#, python-format
msgid "Package %s is not signed"
msgstr "ÐÐ°ÐºÐµÑ %s ниÑе поÑпиÑан"
-#: ../yum/__init__.py:1278
+#: ../yum/__init__.py:1243
#, python-format
msgid "Cannot remove %s"
msgstr "Ðе Ð¼Ð¾Ð³Ñ Ð´Ð° Ñклоним %s"
-#: ../yum/__init__.py:1282
+#: ../yum/__init__.py:1247
#, python-format
msgid "%s removed"
msgstr "%s Ñе ÑклоÑен"
-#: ../yum/__init__.py:1318
+#: ../yum/__init__.py:1283
#, python-format
msgid "Cannot remove %s file %s"
msgstr "Ðе Ð¼Ð¾Ð³Ñ Ð´Ð° Ñклоним %s даÑоÑÐµÐºÑ %s"
-#: ../yum/__init__.py:1322
+#: ../yum/__init__.py:1287
#, python-format
msgid "%s file %s removed"
msgstr "%s даÑоÑека %s Ñе ÑклоÑена"
-#: ../yum/__init__.py:1324
+#: ../yum/__init__.py:1289
#, python-format
msgid "%d %s files removed"
msgstr "%d %s даÑоÑеке ÑÑ ÑклоÑене"
-#: ../yum/__init__.py:1378
+#: ../yum/__init__.py:1329
#, python-format
msgid "More than one identical match in sack for %s"
msgstr "ÐоÑÑоÑи виÑе од Ñедног иденÑиÑног ÑлагаÑа Ñ Ð³ÑÑпи за %s"
-#: ../yum/__init__.py:1384
+#: ../yum/__init__.py:1335
#, python-format
msgid "Nothing matches %s.%s %s:%s-%s from update"
msgstr "ÐиÑÑа Ñе не Ñлаже Ñа %s.%s %s:%s-%s из ажÑÑиÑаÑа"
-#: ../yum/__init__.py:1577
+#: ../yum/__init__.py:1543
msgid ""
"searchPackages() will go away in a future version of "
"Yum. Use searchGenerator() instead. \n"
@@ -1595,155 +1613,141 @@ msgstr ""
"searchPackages() неÑе биÑи пÑиÑÑÑна Ñ Ð±ÑдÑÑим веÑзиÑама Yum-"
"а. УмеÑÑо Ñе коÑиÑÑиÑе searchGenerator(). \n"
-#: ../yum/__init__.py:1614
+#: ../yum/__init__.py:1580
#, python-format
msgid "Searching %d packages"
msgstr "ÐÑеÑÑажÑÑем %d пакеÑе"
-#: ../yum/__init__.py:1618
+#: ../yum/__init__.py:1584
#, python-format
msgid "searching package %s"
msgstr "ÑÑажим Ð¿Ð°ÐºÐµÑ %s"
-#: ../yum/__init__.py:1630
+#: ../yum/__init__.py:1596
msgid "searching in file entries"
msgstr "ÑÑажим Ñ ÑноÑима даÑоÑека"
-#: ../yum/__init__.py:1637
+#: ../yum/__init__.py:1603
msgid "searching in provides entries"
msgstr "ÑÑажим Ñ ÑноÑима доÑÑавÑаÑа"
-#: ../yum/__init__.py:1667
+#: ../yum/__init__.py:1633
#, python-format
msgid "Provides-match: %s"
msgstr "ÐоÑÑавÑа-ÑлагаÑе: %s"
-#: ../yum/__init__.py:1736 ../yum/__init__.py:1755 ../yum/__init__.py:1782
-#: ../yum/__init__.py:1788 ../yum/__init__.py:1844 ../yum/__init__.py:1848
+#: ../yum/__init__.py:1702 ../yum/__init__.py:1720 ../yum/__init__.py:1748
+#: ../yum/__init__.py:1753 ../yum/__init__.py:1808 ../yum/__init__.py:1812
#, python-format
msgid "No Group named %s exists"
msgstr "Ðе поÑÑоÑи гÑÑпа под именом %s"
-#: ../yum/__init__.py:1767 ../yum/__init__.py:1861
+#: ../yum/__init__.py:1731 ../yum/__init__.py:1824
#, python-format
msgid "package %s was not marked in group %s"
msgstr "Ð¿Ð°ÐºÐµÑ %s ниÑе ознаÑен Ñ Ð³ÑÑпи %s"
-#: ../yum/__init__.py:1806
+#: ../yum/__init__.py:1770
#, python-format
msgid "Adding package %s from group %s"
msgstr "ÐодаÑем Ð¿Ð°ÐºÐµÑ %s из гÑÑпе %s"
-#: ../yum/__init__.py:1810
+#: ../yum/__init__.py:1774
#, python-format
msgid "No package named %s available to be installed"
msgstr "ÐиÑедан Ð¿Ð°ÐºÐµÑ Ð¿Ð¾Ð´ именом %s ниÑе доÑÑÑпан за инÑÑалаÑиÑÑ"
-#: ../yum/__init__.py:1886
+#: ../yum/__init__.py:1849
#, python-format
msgid "Package tuple %s could not be found in packagesack"
msgstr "ÐÑÑпа пакеÑа %s ниÑе наÑена Ñ packagesack-Ñ"
-#: ../yum/__init__.py:1954 ../yum/__init__.py:1994
+#: ../yum/__init__.py:1917 ../yum/__init__.py:1960
msgid "Invalid versioned dependency string, try quoting it."
msgstr ""
"ÐеиÑпÑавна ниÑка завиÑноÑÑи Ñа веÑзиÑом, покÑÑаÑÑе да Ñе обележиÑе "
"наводниÑима."
-#: ../yum/__init__.py:1956 ../yum/__init__.py:1996
+#: ../yum/__init__.py:1919 ../yum/__init__.py:1962
msgid "Invalid version flag"
msgstr "ÐогÑеÑна ознака веÑзиÑе"
-#: ../yum/__init__.py:1968 ../yum/__init__.py:1972
+#: ../yum/__init__.py:1934 ../yum/__init__.py:1938
#, python-format
msgid "No Package found for %s"
msgstr "Ðема пÑонаÑениÑ
пакеÑа за %s"
-#: ../yum/__init__.py:2100
+#: ../yum/__init__.py:2066
msgid "Package Object was not a package object instance"
msgstr "ÐбÑÐµÐºÐ°Ñ Ð¿Ð°ÐºÐµÑа ниÑе био пÑимеÑак обÑекÑа пакеÑа"
-#: ../yum/__init__.py:2104
+#: ../yum/__init__.py:2070
msgid "Nothing specified to install"
msgstr "ÐиÑе одÑеÑено ниÑÑа за инÑÑалаÑиÑÑ"
#. only one in there
-#: ../yum/__init__.py:2119
+#: ../yum/__init__.py:2085
#, python-format
msgid "Checking for virtual provide or file-provide for %s"
msgstr "ÐÑовеÑавам виÑÑÑÐµÐ»Ð½Ñ Ð´Ð¾ÑÑÐ°Ð²Ñ Ð¸Ð»Ð¸ доÑÑÐ°Ð²Ñ Ð´Ð°ÑоÑеке за %s"
-#: ../yum/__init__.py:2125 ../yum/__init__.py:2440
+#: ../yum/__init__.py:2091 ../yum/__init__.py:2380
#, python-format
msgid "No Match for argument: %s"
msgstr "Ðе поÑÑоÑи ÑлагаÑе за аÑгÑменÑ: %s"
#. FIXME - this is where we could check to see if it already installed
#. for returning better errors
-#: ../yum/__init__.py:2180
+#: ../yum/__init__.py:2146
msgid "No package(s) available to install"
msgstr "Ðема пакеÑа доÑÑÑпниÑ
за инÑÑалаÑиÑÑ"
-#: ../yum/__init__.py:2192
+#: ../yum/__init__.py:2158
#, python-format
msgid "Package: %s - already in transaction set"
msgstr "ÐакеÑ: %s - Ð²ÐµÑ Ñе Ñ ÑкÑÐ¿Ñ ÑÑанÑакÑиÑе"
-#: ../yum/__init__.py:2205
+#: ../yum/__init__.py:2171
#, python-format
msgid "Package %s already installed and latest version"
msgstr "ÐÐµÑ Ñе инÑÑалиÑана наÑновиÑа веÑзиÑа пакеÑа %s"
-#: ../yum/__init__.py:2212
+#: ../yum/__init__.py:2178
#, python-format
msgid "Package matching %s already installed. Checking for update."
msgstr ""
"ÐÐ°ÐºÐµÑ ÐºÐ¾Ñи Ñе поклапа Ñа %s Ñе Ð²ÐµÑ Ð¸Ð½ÑÑалиÑан. ÐÑовеÑавам за новиÑÑ Ð²ÐµÑзиÑÑ."
-#: ../yum/__init__.py:2223
-#, python-format
-msgid "Package %s is obsoleted by %s, trying to install %s instead"
-msgstr "ÐÐ°ÐºÐµÑ %s Ñе замеÑен пакеÑом %s, покÑÑавам да намеÑÑо инÑÑалиÑам %s"
-
#. update everything (the easy case)
-#: ../yum/__init__.py:2256
+#: ../yum/__init__.py:2220
msgid "Updating Everything"
msgstr "ÐжÑÑиÑам Ñве"
-#: ../yum/__init__.py:2359
+#: ../yum/__init__.py:2304
#, python-format
msgid "Package is already obsoleted: %s.%s %s:%s-%s"
msgstr "ÐÐ°ÐºÐµÑ Ñе Ð²ÐµÑ Ð¿ÑевазиÑен: %s.%s %s:%s-%s"
-#: ../yum/__init__.py:2383
-#, python-format
-msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s"
-msgstr "Ðе ажÑÑиÑам пакеÑе коÑи ÑÑ Ð²ÐµÑ Ð°Ð¶ÑÑиÑани: %s.%s %s:%s-%s"
-
-#: ../yum/__init__.py:2437
+#: ../yum/__init__.py:2377
#, python-format
msgid "%s"
msgstr "%s"
-#. FIXME we should give the caller some nice way to hush this warning
-#. probably just a kwarg of 'silence_warnings' or something
-#. b/c when this is called from groupRemove() it makes a lot of
-#. garbage noise
-#: ../yum/__init__.py:2456
+#: ../yum/__init__.py:2392
msgid "No package matched to remove"
msgstr "ÐиÑедан Ð¿Ð°ÐºÐµÑ Ð½Ð¸Ñе одÑеÑен за ÑклаÑаÑе"
-#: ../yum/__init__.py:2490
+#: ../yum/__init__.py:2426
#, python-format
msgid "Cannot open file: %s. Skipping."
msgstr "Ðе Ð¼Ð¾Ð³Ñ Ð´Ð° оÑвоÑим даÑоÑекÑ: %s. ÐÑеÑкаÑем Ñе."
-#: ../yum/__init__.py:2493
+#: ../yum/__init__.py:2429
#, python-format
msgid "Examining %s: %s"
msgstr "ÐÑпиÑÑÑем %s: %s"
-#: ../yum/__init__.py:2500
+#: ../yum/__init__.py:2436
#, python-format
msgid ""
"Package %s not installed, cannot update it. Run yum install to install it "
@@ -1752,79 +1756,79 @@ msgstr ""
"ÐÐ°ÐºÐµÑ %s ниÑе инÑÑалиÑан, не Ð¼Ð¾Ð³Ñ Ð´Ð° га ажÑÑиÑам. ÐзвÑÑиÑе yum инÑÑалаÑиÑÑ "
"да биÑÑе га инÑÑалиÑали."
-#: ../yum/__init__.py:2533
+#: ../yum/__init__.py:2468
#, python-format
msgid "Excluding %s"
msgstr "ÐзÑзимам %s"
-#: ../yum/__init__.py:2538
+#: ../yum/__init__.py:2473
#, python-format
msgid "Marking %s to be installed"
msgstr "ÐзнаÑавам %s за инÑÑалаÑиÑÑ"
-#: ../yum/__init__.py:2544
+#: ../yum/__init__.py:2479
#, python-format
msgid "Marking %s as an update to %s"
msgstr "ÐзнаÑавам %s као ажÑÑиÑаÑе за %s"
-#: ../yum/__init__.py:2551
+#: ../yum/__init__.py:2486
#, python-format
msgid "%s: does not update installed package."
msgstr "%s: не ажÑÑиÑа инÑÑалиÑани пакеÑ."
-#: ../yum/__init__.py:2569
+#: ../yum/__init__.py:2504
msgid "Problem in reinstall: no package matched to remove"
msgstr ""
"ÐÑоблем пÑи Ð¿Ð¾Ð½Ð¾Ð²Ð½Ð¾Ñ Ð¸Ð½ÑÑалаÑиÑи: ниÑедан Ð¿Ð°ÐºÐµÑ Ð½Ð¸Ñе одÑеÑен за ÑклаÑаÑе"
-#: ../yum/__init__.py:2580
+#: ../yum/__init__.py:2515
#, python-format
msgid "Package %s is allowed multiple installs, skipping"
msgstr "ÐакеÑÑ %s ÑÑ Ð´Ð¾Ð·Ð²Ð¾Ñене многоÑÑÑÑке инÑÑалаÑиÑе, пÑеÑкаÑем га"
-#: ../yum/__init__.py:2587
+#: ../yum/__init__.py:2522
msgid "Problem in reinstall: no package matched to install"
msgstr ""
"ÐÑоблем пÑи Ð¿Ð¾Ð½Ð¾Ð²Ð½Ð¾Ñ Ð¸Ð½ÑÑалаÑиÑи: ниÑедан Ð¿Ð°ÐºÐµÑ Ð½Ð¸Ñе одÑеÑен за инÑÑалаÑиÑÑ"
-#: ../yum/__init__.py:2635
+#: ../yum/__init__.py:2570
#, python-format
msgid "Retrieving GPG key from %s"
msgstr "ÐобавÑам GPG кÑÑÑ Ñа %s"
-#: ../yum/__init__.py:2641
+#: ../yum/__init__.py:2576
msgid "GPG key retrieval failed: "
msgstr "ÐобавÑаÑе GPG кÑÑÑа ниÑе ÑÑпело: "
-#: ../yum/__init__.py:2654
+#: ../yum/__init__.py:2589
msgid "GPG key parsing failed: "
msgstr "РаÑÑлаÑиваÑе GPG кÑÑÑа ниÑе ÑÑпело: "
-#: ../yum/__init__.py:2658
+#: ../yum/__init__.py:2593
#, python-format
msgid "GPG key at %s (0x%s) is already installed"
msgstr "GPG кÑÑÑ Ð½Ð° %s (0x%s) Ñе Ð²ÐµÑ Ð¸Ð½ÑÑалиÑан"
#. Try installing/updating GPG key
-#: ../yum/__init__.py:2663
+#: ../yum/__init__.py:2598
#, python-format
msgid "Importing GPG key 0x%s \"%s\" from %s"
msgstr "Увозим GPG кÑÑÑ 0x%s â%sâ из %s"
-#: ../yum/__init__.py:2675
+#: ../yum/__init__.py:2610
msgid "Not installing key"
msgstr "Ðе инÑÑалиÑам кÑÑÑ"
-#: ../yum/__init__.py:2681
+#: ../yum/__init__.py:2616
#, python-format
msgid "Key import failed (code %d)"
msgstr "ÐиÑе ÑÑпео Ñвоз кÑÑÑа (код %d)"
-#: ../yum/__init__.py:2684
+#: ../yum/__init__.py:2619
msgid "Key imported successfully"
msgstr "ÐÑÑÑ Ñе ÑÑпеÑно Ñвезен"
-#: ../yum/__init__.py:2689
+#: ../yum/__init__.py:2624
#, python-format
msgid ""
"The GPG keys listed for the \"%s\" repository are already installed but they "
@@ -1835,53 +1839,53 @@ msgstr ""
"одговаÑаÑÑÑи за Ð¾Ð²Ð°Ñ Ð¿Ð°ÐºÐµÑ.\n"
"ÐÑовеÑиÑе да ли ÑÑ Ð¿Ð¾Ð´ÐµÑени одговаÑаÑÑÑи УРÐ-ови кÑÑÑева за Ð¾Ð²Ñ ÑизниÑÑ."
-#: ../yum/__init__.py:2698
+#: ../yum/__init__.py:2633
msgid "Import of key(s) didn't help, wrong key(s)?"
msgstr "Увоз кÑÑÑа(кÑÑÑева) ниÑе помогао, погÑеÑан кÑÑÑ(кÑÑÑеви)?"
-#: ../yum/__init__.py:2778
+#: ../yum/__init__.py:2707
msgid "Unable to find a suitable mirror."
msgstr "Ðе Ð¼Ð¾Ð³Ñ Ð´Ð° пÑонаÑем одговаÑаÑÑÑи одÑаз."
-#: ../yum/__init__.py:2780
+#: ../yum/__init__.py:2709
msgid "Errors were encountered while downloading packages."
msgstr "ÐоÑавиле ÑÑ Ñе гÑеÑке за вÑеме пÑеÑзимаÑа пакеÑа."
-#: ../yum/__init__.py:2844
+#: ../yum/__init__.py:2774
msgid "Test Transaction Errors: "
msgstr "ÐÑеÑке пÑи пÑовеÑи ÑÑанÑакÑиÑе: "
#. Mostly copied from YumOutput._outKeyValFill()
-#: ../yum/plugins.py:197
+#: ../yum/plugins.py:195
msgid "Loaded plugins: "
msgstr "УÑиÑани додаÑи: "
-#: ../yum/plugins.py:208
+#: ../yum/plugins.py:206
#, python-format
msgid "No plugin match for: %s"
msgstr "Ðе поÑÑоÑи ÑлагаÑе за додаÑак: %s"
-#: ../yum/plugins.py:221
+#: ../yum/plugins.py:219
#, python-format
msgid "\"%s\" plugin is disabled"
msgstr "â%sâ додаÑак Ñе иÑкÑÑÑен"
-#: ../yum/plugins.py:233
+#: ../yum/plugins.py:231
#, python-format
msgid "Plugin \"%s\" doesn't specify required API version"
msgstr "ÐодаÑак â%sâ не одÑеÑÑÑе веÑзиÑÑ Ð·Ð°Ñ
Ñеваног API-а"
-#: ../yum/plugins.py:237
+#: ../yum/plugins.py:235
#, python-format
msgid "Plugin \"%s\" requires API %s. Supported API is %s."
msgstr "ÐодаÑак â%sâ заÑ
Ñева API %s. ÐодÑжани API Ñе %s."
-#: ../yum/plugins.py:266
+#: ../yum/plugins.py:264
#, python-format
msgid "Loading \"%s\" plugin"
msgstr "УÑиÑавам â%sâ додаÑак"
-#: ../yum/plugins.py:273
+#: ../yum/plugins.py:271
#, python-format
msgid ""
"Two or more plugins with the name \"%s\" exist in the plugin search path"
@@ -1889,26 +1893,22 @@ msgstr ""
"У пÑÑаÑи за пÑеÑÑаживаÑе додаÑака поÑÑоÑе два или виÑе додаÑака под именом â%"
"sâ"
-#: ../yum/plugins.py:293
+#: ../yum/plugins.py:291
#, python-format
msgid "Configuration file %s not found"
msgstr "ÐаÑоÑека подеÑаваÑа %s ниÑе пÑонаÑена"
#. for
#. Configuration files for the plugin not found
-#: ../yum/plugins.py:296
+#: ../yum/plugins.py:294
#, python-format
msgid "Unable to find configuration file for plugin %s"
msgstr "Ðе Ð¼Ð¾Ð³Ñ Ð´Ð° пÑонаÑем даÑоÑÐµÐºÑ Ð¿Ð¾Ð´ÐµÑаваÑа за додаÑак %s"
-#: ../yum/plugins.py:450
+#: ../yum/plugins.py:448
msgid "registration of commands not supported"
msgstr "ÑегиÑÑÑаÑиÑа команди ниÑе подÑжана"
-#: ../yum/rpmtrans.py:78
-msgid "Repackaging"
-msgstr "Ðоновно паковаÑе"
-
#: ../rpmUtils/oldUtils.py:26
#, python-format
msgid "Header cannot be opened or does not match %s, %s."
@@ -1939,3 +1939,64 @@ msgstr "ÐÑÑеÑено заглавÑе %s"
#, python-format
msgid "Error opening rpm %s - error %s"
msgstr "ÐÑеÑка пÑи оÑваÑаÑÑ rpm-а %s - гÑеÑка %s"
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "%s: %s option requires an argument"
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "%s: %s опÑиÑа заÑ
Ñева аÑгÑменÑ"
+
+#~ msgid "show this help message and exit"
+#~ msgstr "пÑикажи Ð¾Ð²Ñ Ð¿Ð¾Ð¼Ð¾ÑÐ½Ñ Ð¿Ð¾ÑÑÐºÑ Ð¸ изаÑи"
+
+#~ msgid "verbose operation"
+#~ msgstr "опÑиÑна ÑадÑа"
+
+#~ msgid "Repo-id : "
+#~ msgstr "ÐÐ ÑизниÑе : "
+
+#~ msgid "Repo-name : "
+#~ msgstr "Ðме ÑизниÑе : "
+
+#~ msgid "Repo-enabled: "
+#~ msgstr "РизниÑа ÑкÑÑÑена: "
+
+#~ msgid "Repo-size : "
+#~ msgstr "ÐелиÑина ÑизниÑе: "
+
+#~ msgid "Running compare_providers() for %s"
+#~ msgstr "ÐокÑеÑем compare_providers() за %s"
+
+#~ msgid ""
+#~ "archdist compared %s to %s on %s\n"
+#~ " Winner: %s"
+#~ msgstr ""
+#~ "archdist ÑпоÑедио %s Ñа %s на %s\n"
+#~ " Ðобедник: %s"
+
+#~ msgid "common sourcerpm %s and %s"
+#~ msgstr "заÑедниÑки извоÑни rpm %s и %s"
+
+#~ msgid "common prefix of %s between %s and %s"
+#~ msgstr "заÑедниÑки пÑеÑÐ¸ÐºÑ %s измеÑÑ %s и %s"
+
+#~ msgid "Best Order: %s"
+#~ msgstr "ÐаÑбоÑи ÑедоÑлед: %s"
+
+#~ msgid ""
+#~ "Warning: scriptlet or other non-fatal errors occurred during transaction."
+#~ msgstr ""
+#~ "УпозоÑеÑе: доÑло Ñе до гÑеÑке Ñ ÑкÑипÑиÑи или неке дÑÑге некÑиÑиÑне "
+#~ "гÑеÑке Ñоком ÑÑанÑкаÑиÑе."
+
+#~ msgid "Package %s is obsoleted by %s, trying to install %s instead"
+#~ msgstr "ÐÐ°ÐºÐµÑ %s Ñе замеÑен пакеÑом %s, покÑÑавам да намеÑÑо инÑÑалиÑам %s"
+
+#~ msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s"
+#~ msgstr "Ðе ажÑÑиÑам пакеÑе коÑи ÑÑ Ð²ÐµÑ Ð°Ð¶ÑÑиÑани: %s.%s %s:%s-%s"
+
+#~ msgid "Repackaging"
+#~ msgstr "Ðоновно паковаÑе"
diff --git a/po/sr at latin.po b/po/sr at latin.po
index e053e91..dba9dcc 100644
--- a/po/sr at latin.po
+++ b/po/sr at latin.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: yum\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-05-26 13:28+0000\n"
+"POT-Creation-Date: 2008-03-25 11:29+0100\n"
"PO-Revision-Date: 2008-05-26 20:30-0000\n"
"Last-Translator: MiloÅ¡ KomarÄeviÄ <kmilos at gmail.com>\n"
"Language-Team: Serbian (sr) <fedora-trans-sr at redhat.com>\n"
@@ -20,24 +20,23 @@ msgstr ""
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-#: ../callback.py:48 ../output.py:516 ../yum/rpmtrans.py:71
+#: ../callback.py:48 ../output.py:512
msgid "Updating"
msgstr "Ažuriram"
-#: ../callback.py:49 ../yum/rpmtrans.py:72
+#: ../callback.py:49
msgid "Erasing"
msgstr "Brišem"
-#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:515
-#: ../yum/rpmtrans.py:73 ../yum/rpmtrans.py:74 ../yum/rpmtrans.py:76
+#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:511
msgid "Installing"
msgstr "Instaliram"
-#: ../callback.py:52 ../callback.py:58 ../yum/rpmtrans.py:75
+#: ../callback.py:52 ../callback.py:58
msgid "Obsoleted"
msgstr "PrevaziÄeni"
-#: ../callback.py:54 ../output.py:562
+#: ../callback.py:54 ../output.py:558
msgid "Updated"
msgstr "Ažurirani"
@@ -45,7 +44,7 @@ msgstr "Ažurirani"
msgid "Erased"
msgstr "Obrisani"
-#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:560
+#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:556
msgid "Installed"
msgstr "Instalirani"
@@ -67,53 +66,53 @@ msgstr "Greška: pogrešno izlazno stanje: %s za %s"
msgid "Erased: %s"
msgstr "Obrisano: %s"
-#: ../callback.py:217 ../output.py:517
+#: ../callback.py:217 ../output.py:513
msgid "Removing"
msgstr "Uklanjam"
-#: ../callback.py:219 ../yum/rpmtrans.py:77
+#: ../callback.py:219
msgid "Cleanup"
msgstr "ÄiÅ¡Äenje"
-#: ../cli.py:105
+#: ../cli.py:103
#, python-format
msgid "Command \"%s\" already defined"
msgstr "Naredba â%sâ je veÄ definisana"
-#: ../cli.py:117
+#: ../cli.py:115
msgid "Setting up repositories"
msgstr "Postavljam riznice"
-#: ../cli.py:128
+#: ../cli.py:126
msgid "Reading repository metadata in from local files"
msgstr "Äitam metapodatke riznica iz lokalnih datoteka"
-#: ../cli.py:185 ../utils.py:71
+#: ../cli.py:183 ../utils.py:72
#, python-format
msgid "Config Error: %s"
msgstr "Greška pri podešavanju: %s"
-#: ../cli.py:188 ../cli.py:1080 ../utils.py:74
+#: ../cli.py:186 ../cli.py:1068 ../utils.py:75
#, python-format
msgid "Options Error: %s"
msgstr "Greška u opcijama: %s"
-#: ../cli.py:231
+#: ../cli.py:229
msgid "You need to give some command"
msgstr "Morate da unesete neku komandu"
-#: ../cli.py:273
+#: ../cli.py:271
msgid "Disk Requirements:\n"
msgstr "Zahtevi diska:\n"
-#: ../cli.py:275
+#: ../cli.py:273
#, python-format
msgid " At least %dMB needed on the %s filesystem.\n"
msgstr " Potrebno je najmanje %dMB na %s sistemu datoteka.\n"
#. TODO: simplify the dependency errors?
#. Fixup the summary
-#: ../cli.py:280
+#: ../cli.py:278
msgid ""
"Error Summary\n"
"-------------\n"
@@ -121,55 +120,55 @@ msgstr ""
"Sažetak grešaka\n"
"-------------\n"
-#: ../cli.py:319
+#: ../cli.py:317
msgid "Trying to run the transaction but nothing to do. Exiting."
msgstr "Pokušavam da izvršim transakciju ali nema šta da se radi. Izlazim."
-#: ../cli.py:349
+#: ../cli.py:347
msgid "Exiting on user Command"
msgstr "Izlazim na komandu korisnika"
-#: ../cli.py:353
+#: ../cli.py:351
msgid "Downloading Packages:"
msgstr "Preuzimam pakete:"
-#: ../cli.py:358
+#: ../cli.py:356
msgid "Error Downloading Packages:\n"
msgstr "Greška pri preuzimanju paketa:\n"
-#: ../cli.py:372 ../yum/__init__.py:2816
+#: ../cli.py:370 ../yum/__init__.py:2746
msgid "Running rpm_check_debug"
msgstr "Izvršavam rpm_check_debug"
-#: ../cli.py:375 ../yum/__init__.py:2819
+#: ../cli.py:373 ../yum/__init__.py:2749
msgid "ERROR with rpm_check_debug vs depsolve:"
msgstr "GREÅ KA sa rpm_check_debug u odnosu na depsolve:"
-#: ../cli.py:379 ../yum/__init__.py:2821
+#: ../cli.py:377 ../yum/__init__.py:2751
msgid "Please report this error in bugzilla"
msgstr "Molim vas, prijavite ovu grešku u bugzilli"
-#: ../cli.py:385
+#: ../cli.py:383
msgid "Running Transaction Test"
msgstr "Izvršavam proveru transakcije"
-#: ../cli.py:401
+#: ../cli.py:399
msgid "Finished Transaction Test"
msgstr "Završio sam proveru transakcije"
-#: ../cli.py:403
+#: ../cli.py:401
msgid "Transaction Check Error:\n"
msgstr "Greška pri proveri transakcije:\n"
-#: ../cli.py:410
+#: ../cli.py:408
msgid "Transaction Test Succeeded"
msgstr "Provera transakcije je uspela"
-#: ../cli.py:431
+#: ../cli.py:429
msgid "Running Transaction"
msgstr "Izvršavam transakciju"
-#: ../cli.py:461
+#: ../cli.py:459
msgid ""
"Refusing to automatically import keys when running unattended.\n"
"Use \"-y\" to override."
@@ -177,315 +176,296 @@ msgstr ""
"Odbijam da automatski uvezem kljuÄeve kada se izvrÅ¡avanje ne nadgleda.\n"
"Za prevazilaženje ovoga koristite â-yâ."
-#: ../cli.py:493
+#: ../cli.py:491
msgid "Parsing package install arguments"
msgstr "RaÅ¡Älanjujem argumente instalacije paketa"
-#: ../cli.py:503
+#: ../cli.py:501
#, python-format
msgid "No package %s available."
msgstr "Ne postoji dostupan %s paket."
-#: ../cli.py:507 ../cli.py:625 ../yumcommands.py:790
+#: ../cli.py:505 ../cli.py:623 ../yumcommands.py:748
msgid "Package(s) to install"
msgstr "Paket(i) koji Äe se instalirati"
-#: ../cli.py:508 ../cli.py:626 ../yumcommands.py:147 ../yumcommands.py:791
+#: ../cli.py:506 ../cli.py:624 ../yumcommands.py:146 ../yumcommands.py:749
msgid "Nothing to do"
msgstr "Nema Å¡ta da se radi"
-#: ../cli.py:538 ../yum/__init__.py:2268 ../yum/__init__.py:2368
-#: ../yum/__init__.py:2380
+#: ../cli.py:536 ../yum/__init__.py:2232 ../yum/__init__.py:2311
+#: ../yum/__init__.py:2340
#, python-format
msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
msgstr "Ne ažuriram pakete koji su veÄ prevaziÄeni: %s.%s %s:%s-%s"
-#: ../cli.py:570
+#: ../cli.py:568
#, python-format
msgid "Could not find update match for %s"
msgstr "Ne mogu da pronaÄem odgovarajuÄe ažuriranje za %s"
-#: ../cli.py:582
+#: ../cli.py:580
#, python-format
msgid "%d packages marked for Update"
msgstr "%d paketi oznaÄeni za ažuriranje"
-#: ../cli.py:585
+#: ../cli.py:583
msgid "No Packages marked for Update"
msgstr "Nema paketa oznaÄenih za ažuriranje"
-#: ../cli.py:601
+#: ../cli.py:599
#, python-format
msgid "%d packages marked for removal"
msgstr "%d paketi oznaÄeni za uklanjanje"
-#: ../cli.py:604
+#: ../cli.py:602
msgid "No Packages marked for removal"
msgstr "Nema paketa oznaÄenih za uklanjanje"
-#: ../cli.py:616
+#: ../cli.py:614
msgid "No Packages Provided"
msgstr "Nijedan paket nije dobavljen"
-#: ../cli.py:656
+#: ../cli.py:654
msgid "Matching packages for package list to user args"
msgstr "Povezivanje paketa za spisak paketa po argumentima korisnika"
-#: ../cli.py:704
+#: ../cli.py:701
#, python-format
msgid "Warning: No matches found for: %s"
msgstr "Upozorenje: nije naÄeno podudaranje za %s"
-#: ../cli.py:707
+#: ../cli.py:704
msgid "No Matches found"
msgstr "Nisu pronaÄena podudaranja"
-#: ../cli.py:748
+#: ../cli.py:745
#, python-format
msgid "No Package Found for %s"
msgstr "Nisu pronaÄeni paketi za %s"
-#: ../cli.py:760
+#: ../cli.py:757
msgid "Cleaning up Everything"
msgstr "Äistim sve"
-#: ../cli.py:774
+#: ../cli.py:771
msgid "Cleaning up Headers"
msgstr "Äistim zaglavlja"
-#: ../cli.py:777
+#: ../cli.py:774
msgid "Cleaning up Packages"
msgstr "Äistim pakete"
-#: ../cli.py:780
+#: ../cli.py:777
msgid "Cleaning up xml metadata"
msgstr "Äistim xml metapodatke"
-#: ../cli.py:783
+#: ../cli.py:780
msgid "Cleaning up database cache"
msgstr "Äistim keÅ¡ baza podataka"
-#: ../cli.py:786
+#: ../cli.py:783
msgid "Cleaning up expire-cache metadata"
msgstr "Äistim expire-cache metapodatke"
-#: ../cli.py:789
+#: ../cli.py:786
msgid "Cleaning up plugins"
msgstr "Äistim dodatke"
-#: ../cli.py:811
+#: ../cli.py:807
msgid "Installed Groups:"
msgstr "Instalirane grupe:"
-#: ../cli.py:818
+#: ../cli.py:814
msgid "Available Groups:"
msgstr "Dostupne grupe:"
-#: ../cli.py:824
+#: ../cli.py:820
msgid "Done"
msgstr "UraÄeno"
-#: ../cli.py:835 ../cli.py:853 ../cli.py:859
+#: ../cli.py:829 ../cli.py:841 ../cli.py:847
#, python-format
msgid "Warning: Group %s does not exist."
msgstr "Upozorenje: grupa %s ne postoji."
-#: ../cli.py:863
+#: ../cli.py:853
msgid "No packages in any requested group available to install or update"
msgstr ""
"Nema dostupnih paketa za instalaciju ili ažuriranje u svim zahtevanim grupama"
-#: ../cli.py:865
+#: ../cli.py:855
#, python-format
msgid "%d Package(s) to Install"
msgstr "%d paket(i) za instalaciju"
-#: ../cli.py:875
+#: ../cli.py:865
#, python-format
msgid "No group named %s exists"
msgstr "Ne postoji grupa pod imenom %s"
-#: ../cli.py:881
+#: ../cli.py:871
msgid "No packages to remove from groups"
msgstr "Nema paketa za uklanjanje iz grupa"
-#: ../cli.py:883
+#: ../cli.py:873
#, python-format
msgid "%d Package(s) to remove"
msgstr "%d paket(i) za uklanjanje"
-#: ../cli.py:925
+#: ../cli.py:915
#, python-format
msgid "Package %s is already installed, skipping"
msgstr "Paket %s je veÄ instaliran, preskaÄem ga"
-#: ../cli.py:936
+#: ../cli.py:926
#, python-format
msgid "Discarding non-comparable pkg %s.%s"
msgstr "Uklanjam neuporediv paket %s.%s"
#. we've not got any installed that match n or n+a
-#: ../cli.py:962
+#: ../cli.py:952
#, python-format
msgid "No other %s installed, adding to list for potential install"
msgstr ""
"Ne postoji instaliran drugi %s, dodajem ga u spisak za potencijalnu "
"instalaciju"
-#: ../cli.py:981
+#: ../cli.py:971
#, python-format
msgid "Command line error: %s"
msgstr "Greška komandne linije: %s"
-#: ../cli.py:993
-#, python-format
-msgid ""
-"\n"
-"\n"
-"%s: %s option requires an argument"
-msgstr ""
-"\n"
-"\n"
-"%s: %s opcija zahteva argument"
-
-#: ../cli.py:1122
-msgid "show this help message and exit"
-msgstr "prikaži ovu pomoÄnu poruku i izaÄi"
-
-#: ../cli.py:1126
+#: ../cli.py:1101
msgid "be tolerant of errors"
msgstr "budi tolerantan na greške"
-#: ../cli.py:1128
+#: ../cli.py:1103
msgid "run entirely from cache, don't update cache"
msgstr "izvršavaj se u potpunosti iz keša, ne ažuriraj keš"
-#: ../cli.py:1130
+#: ../cli.py:1105
msgid "config file location"
msgstr "mesto datoteke podešavanja"
-#: ../cli.py:1132
+#: ../cli.py:1107
msgid "maximum command wait time"
msgstr "najduže vreme Äekanja na komandu"
-#: ../cli.py:1134
+#: ../cli.py:1109
msgid "debugging output level"
msgstr "nivo izlaznog prikaza za pronalaženje grešaka"
-#: ../cli.py:1138
+#: ../cli.py:1113
msgid "show duplicates, in repos, in list/search commands"
msgstr ""
"prikazuj duplikate, u riznicama, u komandama za izlistavanje/pretraživanje"
-#: ../cli.py:1140
+#: ../cli.py:1115
msgid "error output level"
msgstr "nivo izlaznog prikaza grešaka"
-#: ../cli.py:1143
+#: ../cli.py:1118
msgid "quiet operation"
msgstr "tiha radnja"
-#: ../cli.py:1145
-msgid "verbose operation"
-msgstr "opširna radnja"
-
-#: ../cli.py:1147
+#: ../cli.py:1122
msgid "answer yes for all questions"
msgstr "odgovori sa da na sva pitanja"
-#: ../cli.py:1149
+#: ../cli.py:1124
msgid "show Yum version and exit"
msgstr "prikaži verziju Yum-a i izaÄi"
-#: ../cli.py:1150
+#: ../cli.py:1125
msgid "set install root"
msgstr "postavi koreni direktorijum instalacije"
-#: ../cli.py:1154
+#: ../cli.py:1129
msgid "enable one or more repositories (wildcards allowed)"
msgstr "ukljuÄi jednu ili viÅ¡e riznica (skraÄenice su dozvoljene)"
-#: ../cli.py:1158
+#: ../cli.py:1133
msgid "disable one or more repositories (wildcards allowed)"
msgstr "iskljuÄi jednu ili viÅ¡e riznica (skraÄenice su dozvoljene)"
-#: ../cli.py:1161
+#: ../cli.py:1136
msgid "exclude package(s) by name or glob"
msgstr "izuzmite paket(e) po imenu ili glob-u"
-#: ../cli.py:1163
+#: ../cli.py:1138
msgid "disable exclude from main, for a repo or for everything"
msgstr "iskljuÄi izuzimanje iz glavnog skupa, za riznicu ili za sve"
-#: ../cli.py:1166
+#: ../cli.py:1141
msgid "enable obsoletes processing during updates"
msgstr "ukljuÄi obradu zastarelih paketa u toku ažuriranja"
-#: ../cli.py:1168
+#: ../cli.py:1143
msgid "disable Yum plugins"
msgstr "iskljuÄi dodatke za Yum"
-#: ../cli.py:1170
+#: ../cli.py:1145
msgid "disable gpg signature checking"
msgstr "iskljuÄi proveru gpg potpisa"
-#: ../cli.py:1172
+#: ../cli.py:1147
msgid "disable plugins by name"
msgstr "iskljuÄi dodatke po imenu"
-#: ../cli.py:1175
+#: ../cli.py:1150
msgid "skip packages with depsolving problems"
msgstr "preskoÄi pakete koji imaju problema sa reÅ¡avanjem zavisnosti"
-#: ../output.py:228
+#: ../output.py:229
msgid "Jan"
msgstr "jan"
-#: ../output.py:228
+#: ../output.py:229
msgid "Feb"
msgstr "feb"
-#: ../output.py:228
+#: ../output.py:229
msgid "Mar"
msgstr "mar"
-#: ../output.py:228
+#: ../output.py:229
msgid "Apr"
msgstr "apr"
-#: ../output.py:228
+#: ../output.py:229
msgid "May"
msgstr "maj"
-#: ../output.py:228
+#: ../output.py:229
msgid "Jun"
msgstr "jun"
-#: ../output.py:229
+#: ../output.py:230
msgid "Jul"
msgstr "jul"
-#: ../output.py:229
+#: ../output.py:230
msgid "Aug"
msgstr "avg"
-#: ../output.py:229
+#: ../output.py:230
msgid "Sep"
msgstr "sep"
-#: ../output.py:229
+#: ../output.py:230
msgid "Oct"
msgstr "okt"
-#: ../output.py:229
+#: ../output.py:230
msgid "Nov"
msgstr "nov"
-#: ../output.py:229
+#: ../output.py:230
msgid "Dec"
msgstr "dec"
-#: ../output.py:239
+#: ../output.py:240
msgid "Trying other mirror."
msgstr "Pokušavam drugi odraz."
@@ -551,23 +531,23 @@ msgstr "Opis : "
msgid "Is this ok [y/N]: "
msgstr "Da li je ovo u redu [d/N]: "
-#: ../output.py:359 ../output.py:362
+#: ../output.py:357 ../output.py:360
msgid "y"
msgstr "d"
-#: ../output.py:359
+#: ../output.py:357
msgid "n"
msgstr "n"
-#: ../output.py:359 ../output.py:362
+#: ../output.py:357 ../output.py:360
msgid "yes"
msgstr "da"
-#: ../output.py:359
+#: ../output.py:357
msgid "no"
msgstr "ne"
-#: ../output.py:370
+#: ../output.py:367
#, python-format
msgid ""
"\n"
@@ -576,96 +556,96 @@ msgstr ""
"\n"
"Grupa: %s"
-#: ../output.py:372
+#: ../output.py:369
#, python-format
msgid " Description: %s"
msgstr " Opis: %s"
-#: ../output.py:374
+#: ../output.py:371
msgid " Mandatory Packages:"
msgstr " Obavezni paketi:"
-#: ../output.py:379
+#: ../output.py:376
msgid " Default Packages:"
msgstr " Podrazumevani paketi:"
-#: ../output.py:384
+#: ../output.py:381
msgid " Optional Packages:"
msgstr " Izborni paketi:"
-#: ../output.py:389
+#: ../output.py:386
msgid " Conditional Packages:"
msgstr " Uslovljeni paketi:"
-#: ../output.py:398
+#: ../output.py:394
#, python-format
msgid "package: %s"
msgstr "paket: %s"
-#: ../output.py:400
+#: ../output.py:396
msgid " No dependencies for this package"
msgstr " Ne postoje zavisnosti ovog paketa"
-#: ../output.py:405
+#: ../output.py:401
#, python-format
msgid " dependency: %s"
msgstr " zavisnost: %s"
-#: ../output.py:407
+#: ../output.py:403
msgid " Unsatisfied dependency"
msgstr " Nezadovoljena zavisnost"
-#: ../output.py:465
+#: ../output.py:461
msgid "Matched from:"
msgstr "Povezan iz:"
-#: ../output.py:491
+#: ../output.py:487
msgid "There was an error calculating total download size"
msgstr "Dogodila se greÅ¡ka pri raÄunanju ukupne veliÄine za preuzimanje"
-#: ../output.py:496
+#: ../output.py:492
#, python-format
msgid "Total size: %s"
msgstr "Ukupna veliÄina: %s"
-#: ../output.py:499
+#: ../output.py:495
#, python-format
msgid "Total download size: %s"
msgstr "Ukupna veliÄina za preuzimanje: %s"
-#: ../output.py:511
+#: ../output.py:507
msgid "Package"
msgstr "Paket"
-#: ../output.py:511
+#: ../output.py:507
msgid "Arch"
msgstr "Arhitektura"
-#: ../output.py:511
+#: ../output.py:507
msgid "Version"
msgstr "Verzija"
-#: ../output.py:511
+#: ../output.py:507
msgid "Repository"
msgstr "Riznica"
-#: ../output.py:511
+#: ../output.py:507
msgid "Size"
msgstr "VeliÄina"
-#: ../output.py:518
+#: ../output.py:514
msgid "Installing for dependencies"
msgstr "Instaliram zbog zavisnosti"
-#: ../output.py:519
+#: ../output.py:515
msgid "Updating for dependencies"
msgstr "Ažuriram zbog zavisnosti"
-#: ../output.py:520
+#: ../output.py:516
msgid "Removing for dependencies"
msgstr "Uklanjam zbog zavisnosti"
-#: ../output.py:532
+#: ../output.py:528
#, python-format
msgid ""
" replacing %s.%s %s\n"
@@ -674,7 +654,7 @@ msgstr ""
" uklanjam %s.%s %s\n"
"\n"
-#: ../output.py:540
+#: ../output.py:536
#, python-format
msgid ""
"\n"
@@ -691,27 +671,27 @@ msgstr ""
"ažuriranje %5.5s paket(a) \n"
"uklanjanje %5.5s paket(a) \n"
-#: ../output.py:558
+#: ../output.py:554
msgid "Removed"
msgstr "Uklonjeno"
-#: ../output.py:559
+#: ../output.py:555
msgid "Dependency Removed"
msgstr "Zavisnost uklonjena"
-#: ../output.py:561
+#: ../output.py:557
msgid "Dependency Installed"
msgstr "Zavisnost instalirana"
-#: ../output.py:563
+#: ../output.py:559
msgid "Dependency Updated"
msgstr "Zavisnost ažurirana"
-#: ../output.py:564
+#: ../output.py:560
msgid "Replaced"
msgstr "Zamenjeno"
-#: ../output.py:622
+#: ../output.py:618
#, python-format
msgid ""
"\n"
@@ -722,73 +702,73 @@ msgstr ""
" Trenutno preuzimanje je obustavljeno, %sinterrupt (ctrl-c) još jednom%s u "
"toku %s%s%s sekundi da biste izašli.\n"
-#: ../output.py:632
+#: ../output.py:628
msgid "user interrupt"
msgstr "prekid od strane korisnika"
-#: ../output.py:643
+#: ../output.py:639
msgid "installed"
msgstr "instaliran"
-#: ../output.py:644
+#: ../output.py:640
msgid "updated"
msgstr "ažuriran"
-#: ../output.py:645
+#: ../output.py:641
msgid "obsoleted"
msgstr "prevaziÄen"
-#: ../output.py:646
+#: ../output.py:642
msgid "erased"
msgstr "obrisan"
-#: ../output.py:650
+#: ../output.py:646
#, python-format
msgid "---> Package %s.%s %s:%s-%s set to be %s"
msgstr "---> Paket %s.%s %s:%s-%s postavljen da bude %s"
-#: ../output.py:657
+#: ../output.py:653
msgid "--> Running transaction check"
msgstr "--> Izvršava se provera transakcije"
-#: ../output.py:662
+#: ../output.py:658
msgid "--> Restarting Dependency Resolution with new changes."
msgstr "--> Ponovno pokretanje razrešavanja zavisnosti sa novim promenama."
-#: ../output.py:667
+#: ../output.py:663
msgid "--> Finished Dependency Resolution"
msgstr "--> Završeno je razrešavanje zavisnosti"
-#: ../output.py:672
+#: ../output.py:668
#, python-format
msgid "--> Processing Dependency: %s for package: %s"
msgstr "--> ObraÄujem zavisnost: %s za paket: %s"
-#: ../output.py:677
+#: ../output.py:673
#, python-format
msgid "--> Unresolved Dependency: %s"
msgstr "--> Nerazrešena zavisnost: %s"
-#: ../output.py:683
+#: ../output.py:679
#, python-format
msgid "--> Processing Conflict: %s conflicts %s"
msgstr "--> Sukob pri obradi: %s se sukobi sa %s"
-#: ../output.py:686
+#: ../output.py:682
msgid "--> Populating transaction set with selected packages. Please wait."
msgstr ""
"--> Popunjavam skup transakcije sa izabranim paketima. Molim vas, saÄekajte."
-#: ../output.py:690
+#: ../output.py:686
#, python-format
msgid "---> Downloading header for %s to pack into transaction set."
msgstr "---> Preuzimam zaglavlje za %s radi pakovanja u skup transakcije."
-#: ../yumcommands.py:37
+#: ../yumcommands.py:36
msgid "You need to be root to perform this command."
msgstr "Morate biti root korisnik da biste izvršili ovu komandu."
-#: ../yumcommands.py:44
+#: ../yumcommands.py:43
msgid ""
"\n"
"You have enabled checking of packages via GPG keys. This is a good thing. \n"
@@ -819,267 +799,252 @@ msgstr ""
"\n"
"Za viÅ¡e informacija kontaktirajte dobavljaÄa vaÅ¡e distribucije ili paketa.\n"
-#: ../yumcommands.py:64
+#: ../yumcommands.py:63
#, python-format
msgid "Error: Need to pass a list of pkgs to %s"
msgstr "Greška: potrebno je da dodate spisak paketa %s-u"
-#: ../yumcommands.py:70
+#: ../yumcommands.py:69
msgid "Error: Need an item to match"
msgstr "Greška: potrebno je pridružiti stavku"
-#: ../yumcommands.py:76
+#: ../yumcommands.py:75
msgid "Error: Need a group or list of groups"
msgstr "Greška: potrebna je grupa ili spisak grupa"
-#: ../yumcommands.py:85
+#: ../yumcommands.py:84
#, python-format
msgid "Error: clean requires an option: %s"
msgstr "Greška: clean zahteva opciju: %s"
-#: ../yumcommands.py:90
+#: ../yumcommands.py:89
#, python-format
msgid "Error: invalid clean argument: %r"
msgstr "Greška: pogrešan clean argument:%r"
-#: ../yumcommands.py:103
+#: ../yumcommands.py:102
msgid "No argument to shell"
msgstr "Ne postoji argument za komandno okruženje"
-#: ../yumcommands.py:106
+#: ../yumcommands.py:105
#, python-format
msgid "Filename passed to shell: %s"
msgstr "Ime datoteke je prosleÄeno komandnom okruženju: %s"
-#: ../yumcommands.py:110
+#: ../yumcommands.py:109
#, python-format
msgid "File %s given as argument to shell does not exist."
msgstr ""
"Ne postoji datoteka %s, koja je prosleÄena kao argument komadnom okruženju."
-#: ../yumcommands.py:116
+#: ../yumcommands.py:115
msgid "Error: more than one file given as argument to shell."
msgstr ""
-"GreÅ¡ka: viÅ¡e od jedne datoteke je prosleÄeno kao argument komandnom okruženju."
+"GreÅ¡ka: viÅ¡e od jedne datoteke je prosleÄeno kao argument komandnom "
+"okruženju."
-#: ../yumcommands.py:157
+#: ../yumcommands.py:156
msgid "PACKAGE..."
msgstr "PAKET..."
-#: ../yumcommands.py:160
+#: ../yumcommands.py:159
msgid "Install a package or packages on your system"
msgstr "Instalirajte paket ili pakete na vaš sistem"
-#: ../yumcommands.py:169
+#: ../yumcommands.py:168
msgid "Setting up Install Process"
msgstr "Postavljam proces instalacije"
-#: ../yumcommands.py:180
+#: ../yumcommands.py:179
msgid "[PACKAGE...]"
msgstr "[PAKET...]"
-#: ../yumcommands.py:183
+#: ../yumcommands.py:182
msgid "Update a package or packages on your system"
msgstr "Ažuriraj paket ili pakete na vašem sistemu"
-#: ../yumcommands.py:191
+#: ../yumcommands.py:190
msgid "Setting up Update Process"
msgstr "Postavljam proces ažuriranja"
-#: ../yumcommands.py:205
+#: ../yumcommands.py:204
msgid "Display details about a package or group of packages"
msgstr "Prikaži detalje o svakom paketu ili grupi paketa"
-#: ../yumcommands.py:213
+#: ../yumcommands.py:212
msgid "Installed Packages"
msgstr "Instalirani paketi"
-#: ../yumcommands.py:214
+#: ../yumcommands.py:213
msgid "Available Packages"
msgstr "Dostupni paketi"
-#: ../yumcommands.py:215
+#: ../yumcommands.py:214
msgid "Extra Packages"
msgstr "Dodatni paketi"
-#: ../yumcommands.py:216
+#: ../yumcommands.py:215
msgid "Updated Packages"
msgstr "Ažurirani paketi"
-#: ../yumcommands.py:222 ../yumcommands.py:228
+#: ../yumcommands.py:221 ../yumcommands.py:225
msgid "Obsoleting Packages"
msgstr "PrevaziÄeni paketi"
-#: ../yumcommands.py:229
+#: ../yumcommands.py:226
msgid "Recently Added Packages"
msgstr "Nedavno dodati paketi"
-#: ../yumcommands.py:235
+#: ../yumcommands.py:232
msgid "No matching Packages to list"
msgstr "Ne postoje odgovarajuÄi paketi za izlistavanje"
-#: ../yumcommands.py:249
+#: ../yumcommands.py:246
msgid "List a package or groups of packages"
msgstr "Izlistaj pakete ili grupe paketa"
-#: ../yumcommands.py:261
+#: ../yumcommands.py:258
msgid "Remove a package or packages from your system"
msgstr "Uklonite paket ili pakete sa vašeg sistema"
-#: ../yumcommands.py:269
+#: ../yumcommands.py:266
msgid "Setting up Remove Process"
msgstr "Postavljam proces uklanjanja"
-#: ../yumcommands.py:281
+#: ../yumcommands.py:278
msgid "Setting up Group Process"
msgstr "Postavljam proces za grupe"
-#: ../yumcommands.py:287
+#: ../yumcommands.py:284
msgid "No Groups on which to run command"
msgstr "Ne postoji grupa nad kojom se može izvršiti komanda"
-#: ../yumcommands.py:300
+#: ../yumcommands.py:297
msgid "List available package groups"
msgstr "Izlistaj dostupne grupe paketa"
-#: ../yumcommands.py:317
+#: ../yumcommands.py:314
msgid "Install the packages in a group on your system"
msgstr "Instalirajte pakete u grupi na vašem sistemu"
-#: ../yumcommands.py:339
+#: ../yumcommands.py:336
msgid "Remove the packages in a group from your system"
msgstr "Uklonite pakete u grupi sa vašeg sistema"
-#: ../yumcommands.py:363
+#: ../yumcommands.py:360
msgid "Display details about a package group"
msgstr "Prikaži detalje o grupi paketa"
-#: ../yumcommands.py:387
+#: ../yumcommands.py:384
msgid "Generate the metadata cache"
msgstr "Napravi keš sa metapodacima"
-#: ../yumcommands.py:393
+#: ../yumcommands.py:390
msgid "Making cache files for all metadata files."
msgstr "Pravim keš datoteke za sve datoteke sa metapodacima."
-#: ../yumcommands.py:394
+#: ../yumcommands.py:391
msgid "This may take a while depending on the speed of this computer"
msgstr "Ovo može da potraje u zavisnosti od brzine vaÅ¡eg raÄunara"
-#: ../yumcommands.py:415
+#: ../yumcommands.py:412
msgid "Metadata Cache Created"
msgstr "Napravljen je keš sa metapodacima"
-#: ../yumcommands.py:429
+#: ../yumcommands.py:426
msgid "Remove cached data"
msgstr "Ukloni keširane podatke"
-#: ../yumcommands.py:450
+#: ../yumcommands.py:447
msgid "Find what package provides the given value"
msgstr "PronaÄi koji paket pruža datu vrednost"
-#: ../yumcommands.py:470
+#: ../yumcommands.py:467
msgid "Check for available package updates"
msgstr "Proverite da li su dostupna ažuriranja paketa"
-#: ../yumcommands.py:493
+#: ../yumcommands.py:490
msgid "Search package details for the given string"
msgstr "Pretražite detalje o paketu za zadatu nisku"
-#: ../yumcommands.py:499
+#: ../yumcommands.py:496
msgid "Searching Packages: "
msgstr "Pretražujem pakete: "
-#: ../yumcommands.py:516
+#: ../yumcommands.py:513
msgid "Update packages taking obsoletes into account"
msgstr "Ažurirajte pakete uzimajuÄi prevaziÄene u obzir"
-#: ../yumcommands.py:525
+#: ../yumcommands.py:522
msgid "Setting up Upgrade Process"
msgstr "Postavljam proces nadgradnje"
-#: ../yumcommands.py:539
+#: ../yumcommands.py:536
msgid "Install a local RPM"
msgstr "Instaliraj lokalni RPM"
-#: ../yumcommands.py:548
+#: ../yumcommands.py:545
msgid "Setting up Local Package Process"
msgstr "Postavljam proces lokalnih paketa"
-#: ../yumcommands.py:567
+#: ../yumcommands.py:564
msgid "Determine which package provides the given dependency"
msgstr "Odredi koji paketi pružaju datu zavisnost"
-#: ../yumcommands.py:570
+#: ../yumcommands.py:567
msgid "Searching Packages for Dependency:"
msgstr "Pretražujem pakete u potrazi za zavisnostima:"
-#: ../yumcommands.py:584
+#: ../yumcommands.py:581
msgid "Run an interactive yum shell"
msgstr "Izvršavaj interaktivno komandno okruženje yum-a"
-#: ../yumcommands.py:590
+#: ../yumcommands.py:587
msgid "Setting up Yum Shell"
msgstr "Postavljam Yum komandno okruženje"
-#: ../yumcommands.py:608
+#: ../yumcommands.py:605
msgid "List a package's dependencies"
msgstr "Izlistaj zavisnosti paketa"
-#: ../yumcommands.py:614
+#: ../yumcommands.py:611
msgid "Finding dependencies: "
msgstr "Tražim zavisnosti: "
-#: ../yumcommands.py:630
+#: ../yumcommands.py:627
msgid "Display the configured software repositories"
msgstr "Prikaži podešene softverske riznice"
-#: ../yumcommands.py:666
-msgid "enabled"
-msgstr "ukljuÄena"
-
-#: ../yumcommands.py:673
-msgid "disabled"
-msgstr "iskljuÄena"
-
-#: ../yumcommands.py:682
+#: ../yumcommands.py:645
msgid "repo id"
msgstr "repo id"
-#: ../yumcommands.py:683
+#: ../yumcommands.py:645
msgid "repo name"
msgstr "repo ime"
-#: ../yumcommands.py:683
+#: ../yumcommands.py:645
msgid "status"
msgstr "status"
-#: ../yumcommands.py:686
-msgid "Repo-id : "
-msgstr "IB riznice : "
-
-#: ../yumcommands.py:687
-msgid "Repo-name : "
-msgstr "Ime riznice : "
-
-#: ../yumcommands.py:688
-msgid "Repo-enabled: "
-msgstr "Riznica ukljuÄena: "
+#: ../yumcommands.py:651
+msgid "enabled"
+msgstr "ukljuÄena"
-#: ../yumcommands.py:689
-msgid "Repo-size : "
-msgstr "VeliÄina riznice: "
+#: ../yumcommands.py:654
+msgid "disabled"
+msgstr "iskljuÄena"
-#: ../yumcommands.py:713
+#: ../yumcommands.py:671
msgid "Display a helpful usage message"
msgstr "Prikaži korisnu poruku o upotrebi"
-#: ../yumcommands.py:747
+#: ../yumcommands.py:705
#, python-format
msgid "No help available for %s"
msgstr "Nije dostupna pomoÄ za %s"
-#: ../yumcommands.py:752
+#: ../yumcommands.py:710
msgid ""
"\n"
"\n"
@@ -1089,7 +1054,7 @@ msgstr ""
"\n"
"alijasi: "
-#: ../yumcommands.py:754
+#: ../yumcommands.py:712
msgid ""
"\n"
"\n"
@@ -1099,15 +1064,15 @@ msgstr ""
"\n"
"alijas: "
-#: ../yumcommands.py:783
+#: ../yumcommands.py:741
msgid "Setting up Reinstall Process"
msgstr "Postavljam proces ponovne instalacije"
-#: ../yumcommands.py:797
+#: ../yumcommands.py:755
msgid "reinstall a package"
msgstr "ponovno instaliram paket"
-#: ../yummain.py:53
+#: ../yummain.py:41
msgid ""
"\n"
"\n"
@@ -1117,7 +1082,7 @@ msgstr ""
"\n"
"Izlazim kada korisnik otkaže"
-#: ../yummain.py:59
+#: ../yummain.py:47
msgid ""
"\n"
"\n"
@@ -1127,29 +1092,29 @@ msgstr ""
"\n"
"Izlazim kada se slomi cev"
-#: ../yummain.py:110
+#: ../yummain.py:105
msgid ""
"Another app is currently holding the yum lock; waiting for it to exit..."
msgstr ""
"Neki drugi program trenutno drži yum zakljuÄavanje, Äekam da se taj program "
"iskljuÄi..."
-#: ../yummain.py:137 ../yummain.py:176
+#: ../yummain.py:132 ../yummain.py:171
#, python-format
msgid "Error: %s"
msgstr "Greška: %s"
-#: ../yummain.py:147 ../yummain.py:183
+#: ../yummain.py:142 ../yummain.py:178
#, python-format
msgid "Unknown Error(s): Exit Code: %d:"
msgstr "Nepoznata greška(e): izlazni kod: %d:"
#. Depsolve stage
-#: ../yummain.py:154
+#: ../yummain.py:149
msgid "Resolving Dependencies"
msgstr "Razrešavam zavisnosti"
-#: ../yummain.py:189
+#: ../yummain.py:184
msgid ""
"\n"
"Dependencies Resolved"
@@ -1157,11 +1122,11 @@ msgstr ""
"\n"
"Zavisnosti su razrešene"
-#: ../yummain.py:203
+#: ../yummain.py:198
msgid "Complete!"
msgstr "Završeno!"
-#: ../yummain.py:250
+#: ../yummain.py:245
msgid ""
"\n"
"\n"
@@ -1171,257 +1136,318 @@ msgstr ""
"\n"
"Izlazim kada korisnik otkaže."
-#: ../yum/depsolve.py:78
+#: ../yum/depsolve.py:82
msgid "doTsSetup() will go away in a future version of Yum.\n"
msgstr "doTsSetup() neÄe biti prisutna u buduÄim verzijama Yum-a.\n"
-#: ../yum/depsolve.py:91
+#: ../yum/depsolve.py:95
msgid "Setting up TransactionSets before config class is up"
msgstr "Postavljam TransactionSets pre nego što se podigne klasa podešavanja"
-#: ../yum/depsolve.py:132
+#: ../yum/depsolve.py:136
#, python-format
msgid "Invalid tsflag in config file: %s"
msgstr "Pogrešan tsflag u datoteci podešavanja: %s"
-#: ../yum/depsolve.py:176
+#: ../yum/depsolve.py:147
+#, fuzzy, python-format
+msgid "Searching pkgSack for dep: %s"
+msgstr "tražim paket %s"
+
+#: ../yum/depsolve.py:170
+#, fuzzy, python-format
+msgid "Potential match for %s from %s"
+msgstr "Postoji viÅ¡e od jednog identiÄnog slaganja u grupi za %s"
+
+#: ../yum/depsolve.py:178
+#, fuzzy, python-format
+msgid "Matched %s to require for %s"
+msgstr "%s zahteva: %s"
+
+#: ../yum/depsolve.py:219
#, python-format
msgid "Member: %s"
msgstr "Älan: %s"
-#: ../yum/depsolve.py:190 ../yum/depsolve.py:595
+#: ../yum/depsolve.py:233 ../yum/depsolve.py:696
#, python-format
msgid "%s converted to install"
msgstr "%s prebaÄen za instalaciju"
-#: ../yum/depsolve.py:197
+#: ../yum/depsolve.py:240
#, python-format
msgid "Adding Package %s in mode %s"
msgstr "Dodajem paket %s u naÄinu rada %s"
-#: ../yum/depsolve.py:207
+#: ../yum/depsolve.py:250
#, python-format
msgid "Removing Package %s"
msgstr "Uklanjam paket %s"
-#: ../yum/depsolve.py:218
+#: ../yum/depsolve.py:261
#, python-format
msgid "%s requires: %s"
msgstr "%s zahteva: %s"
-#: ../yum/depsolve.py:273
+#: ../yum/depsolve.py:312
+msgid "Needed Require has already been looked up, cheating"
+msgstr ""
+
+#: ../yum/depsolve.py:322
+#, python-format
+msgid "Needed Require is not a package name. Looking up: %s"
+msgstr ""
+
+#: ../yum/depsolve.py:329
+#, fuzzy, python-format
+msgid "Potential Provider: %s"
+msgstr "Ukupna veliÄina: %s"
+
+#: ../yum/depsolve.py:352
+#, python-format
+msgid "Mode is %s for provider of %s: %s"
+msgstr ""
+
+#: ../yum/depsolve.py:356
+#, python-format
+msgid "Mode for pkg providing %s: %s"
+msgstr ""
+
+#: ../yum/depsolve.py:360
+#, python-format
+msgid "TSINFO: %s package requiring %s marked as erase"
+msgstr "TSINFO: %s paket zahteva da %s bude oznaÄen za brisanje"
+
+#: ../yum/depsolve.py:372
#, python-format
msgid "TSINFO: Obsoleting %s with %s to resolve dep."
msgstr "TSINFO: menjam %s sa %s da bih razrešio zavisnost."
-#: ../yum/depsolve.py:276
+#: ../yum/depsolve.py:375
#, python-format
msgid "TSINFO: Updating %s to resolve dep."
msgstr "TSINFO: ažuriram %s da bih razrešio zavisnost."
-#: ../yum/depsolve.py:279
+#: ../yum/depsolve.py:378
#, python-format
msgid "Cannot find an update path for dep for: %s"
msgstr "Ne mogu da pronaÄem putanju ažuriranja za zavisnost za: %s"
-#: ../yum/depsolve.py:283
+#: ../yum/depsolve.py:388
#, python-format
-msgid "TSINFO: %s package requiring %s marked as erase"
-msgstr "TSINFO: %s paket zahteva da %s bude oznaÄen za brisanje"
+msgid "Unresolvable requirement %s for %s"
+msgstr ""
#. is it already installed?
-#: ../yum/depsolve.py:329
+#: ../yum/depsolve.py:434
#, python-format
msgid "%s is in providing packages but it is already installed, removing."
msgstr "%s je u pruženim paketa ali je veÄ instaliran, uklanjam ga."
-#: ../yum/depsolve.py:344
+#: ../yum/depsolve.py:449
#, python-format
msgid "Potential resolving package %s has newer instance in ts."
msgstr "Potencijalno razrešavanje paketa %s ima noviji primerak u ts-u."
-#: ../yum/depsolve.py:355
+#: ../yum/depsolve.py:460
#, python-format
msgid "Potential resolving package %s has newer instance installed."
msgstr "Potencijalno razrešavanje paketa %s ima instaliran novi primerak."
-#: ../yum/depsolve.py:363 ../yum/depsolve.py:412
+#: ../yum/depsolve.py:468 ../yum/depsolve.py:527
#, python-format
msgid "Missing Dependency: %s is needed by package %s"
msgstr "Nedostaje zavisnost: %s je potreban od strane paketa %s"
-#: ../yum/depsolve.py:376
+#: ../yum/depsolve.py:481
#, python-format
msgid "%s already in ts, skipping this one"
msgstr "%s je veÄ u ts-u, preskaÄem ga"
-#: ../yum/depsolve.py:422
+#: ../yum/depsolve.py:510
+#, python-format
+msgid ""
+"Failure finding best provider of %s for %s, exceeded maximum loop length"
+msgstr ""
+
+#: ../yum/depsolve.py:537
#, python-format
msgid "TSINFO: Marking %s as update for %s"
msgstr "TSINFO: oznaÄavam %s kao ažuriranje za %s"
-#: ../yum/depsolve.py:429
+#: ../yum/depsolve.py:544
#, python-format
msgid "TSINFO: Marking %s as install for %s"
msgstr "TSINFO: oznaÄavam %s kao instalaciju za %s"
-#: ../yum/depsolve.py:520 ../yum/depsolve.py:613
+#: ../yum/depsolve.py:635 ../yum/depsolve.py:714
msgid "Success - empty transaction"
msgstr "Uspeh - prazna transakcija"
-#: ../yum/depsolve.py:565 ../yum/depsolve.py:585
+#: ../yum/depsolve.py:673 ../yum/depsolve.py:686
msgid "Restarting Loop"
msgstr "Ponovo pokreÄem petlju"
-#: ../yum/depsolve.py:601
+#: ../yum/depsolve.py:702
msgid "Dependency Process ending"
msgstr "Završetak procesa zavisnosti"
-#: ../yum/depsolve.py:607
+#: ../yum/depsolve.py:708
#, python-format
msgid "%s from %s has depsolving problems"
msgstr "%s iz %s ima problema sa razrešavanjem zavisnosti"
-#: ../yum/depsolve.py:614
+#: ../yum/depsolve.py:715
msgid "Success - deps resolved"
msgstr "Uspeh - zavisnosti su razrešene"
-#: ../yum/depsolve.py:628
+#: ../yum/depsolve.py:729
#, python-format
msgid "Checking deps for %s"
msgstr "Proveravam zavisnosti za %s"
-#: ../yum/depsolve.py:690
+#: ../yum/depsolve.py:782
#, python-format
msgid "looking for %s as a requirement of %s"
msgstr "tražim %s kao zahtev za %s"
-#: ../yum/depsolve.py:817
+#: ../yum/depsolve.py:933
#, python-format
-msgid "Running compare_providers() for %s"
-msgstr "PokreÄem compare_providers() za %s"
+msgid "Comparing best: %s to po: %s"
+msgstr ""
+
+#: ../yum/depsolve.py:937
+#, python-format
+msgid "Same: best %s == po: %s"
+msgstr ""
-#: ../yum/depsolve.py:845 ../yum/depsolve.py:851
+#: ../yum/depsolve.py:952 ../yum/depsolve.py:963
+#, fuzzy, python-format
+msgid "best %s obsoletes po: %s"
+msgstr "%s prevazilazi %s"
+
+#: ../yum/depsolve.py:955
+#, fuzzy, python-format
+msgid "po %s obsoletes best: %s"
+msgstr "%s prevazilazi %s"
+
+#: ../yum/depsolve.py:972 ../yum/depsolve.py:979 ../yum/depsolve.py:1036
#, python-format
msgid "better arch in po %s"
msgstr "bolja arhitektura u po %s"
-#: ../yum/depsolve.py:890
+#: ../yum/depsolve.py:988 ../yum/depsolve.py:1010
#, python-format
-msgid "%s obsoletes %s"
-msgstr "%s prevazilazi %s"
+msgid "po %s shares a sourcerpm with %s"
+msgstr ""
-#: ../yum/depsolve.py:901
+#: ../yum/depsolve.py:992 ../yum/depsolve.py:1015
#, python-format
-msgid ""
-"archdist compared %s to %s on %s\n"
-" Winner: %s"
+msgid "best %s shares a sourcerpm with %s"
msgstr ""
-"archdist uporedio %s sa %s na %s\n"
-" Pobednik: %s"
-#: ../yum/depsolve.py:908
+#: ../yum/depsolve.py:999 ../yum/depsolve.py:1020
#, python-format
-msgid "common sourcerpm %s and %s"
-msgstr "zajedniÄki izvorni rpm %s i %s"
+msgid "po %s shares more of the name prefix with %s"
+msgstr ""
-#: ../yum/depsolve.py:914
+#: ../yum/depsolve.py:1003 ../yum/depsolve.py:1029
#, python-format
-msgid "common prefix of %s between %s and %s"
-msgstr "zajedniÄki prefiks %s izmeÄu %s i %s"
+msgid "po %s has a shorter name than best %s"
+msgstr ""
-#: ../yum/depsolve.py:922
+#: ../yum/depsolve.py:1025
#, python-format
-msgid "Best Order: %s"
-msgstr "Najbolji redosled: %s"
+msgid "bestpkg %s shares more of the name prefix with %s"
+msgstr ""
-#: ../yum/__init__.py:129
+#: ../yum/__init__.py:119
msgid "doConfigSetup() will go away in a future version of Yum.\n"
msgstr "doConfigSetup() neÄe biti prisutna u buduÄim verzijama Yum-a.\n"
-#: ../yum/__init__.py:303
+#: ../yum/__init__.py:296
#, python-format
msgid "Repository %r is missing name in configuration, using id"
msgstr "Riznici %r nedostaje ime u podešavanjima, koristim id"
-#: ../yum/__init__.py:339
+#: ../yum/__init__.py:332
msgid "plugins already initialised"
msgstr "veÄ inicijalizovani dodaci"
-#: ../yum/__init__.py:346
+#: ../yum/__init__.py:339
msgid "doRpmDBSetup() will go away in a future version of Yum.\n"
msgstr "doRpmDBSetup() neÄe biti prisutna u buduÄim verzijama Yum-a.\n"
-#: ../yum/__init__.py:356
+#: ../yum/__init__.py:349
msgid "Reading Local RPMDB"
msgstr "Äitam lokalni RPMDB"
-#: ../yum/__init__.py:374
+#: ../yum/__init__.py:367
msgid "doRepoSetup() will go away in a future version of Yum.\n"
msgstr "doRepoSetup() neÄe biti prisutna u buduÄim verzijama Yum-a.\n"
-#: ../yum/__init__.py:394
+#: ../yum/__init__.py:387
msgid "doSackSetup() will go away in a future version of Yum.\n"
msgstr "doSackSetup() neÄe biti prisutna u buduÄim verzijama Yum-a.\n"
-#: ../yum/__init__.py:411
+#: ../yum/__init__.py:404
msgid "Setting up Package Sacks"
msgstr "Postavljam grupe paketa"
-#: ../yum/__init__.py:454
+#: ../yum/__init__.py:447
#, python-format
msgid "repo object for repo %s lacks a _resetSack method\n"
msgstr "repo objektu za repo %s nedostaje a _resetSack metoda\n"
-#: ../yum/__init__.py:455
+#: ../yum/__init__.py:448
msgid "therefore this repo cannot be reset.\n"
msgstr "zbog toga se ovaj repo ne može vratiti na poÄetnu postavku.\n"
-#: ../yum/__init__.py:460
+#: ../yum/__init__.py:453
msgid "doUpdateSetup() will go away in a future version of Yum.\n"
msgstr "doUpdateSetup() neÄe biti prisutna u buduÄim verzijama Yum-a.\n"
-#: ../yum/__init__.py:472
+#: ../yum/__init__.py:465
msgid "Building updates object"
msgstr "IzgraÄujem objekat ažurirnja"
-#: ../yum/__init__.py:503
+#: ../yum/__init__.py:496
msgid "doGroupSetup() will go away in a future version of Yum.\n"
msgstr "doGroupSetup() neÄe biti prisutna u buduÄim verzijama Yum-a.\n"
-#: ../yum/__init__.py:527
+#: ../yum/__init__.py:520
msgid "Getting group metadata"
msgstr "Dobavljam metapodatke grupe"
-#: ../yum/__init__.py:553
+#: ../yum/__init__.py:546
#, python-format
msgid "Adding group file from repository: %s"
msgstr "Dodajem datoteku grupe iz riznice: %s"
-#: ../yum/__init__.py:562
+#: ../yum/__init__.py:555
#, python-format
msgid "Failed to add groups file for repository: %s - %s"
msgstr "Nisam uspeo da dodam datoteku grupe za riznicu: %s - %s"
-#: ../yum/__init__.py:568
+#: ../yum/__init__.py:561
msgid "No Groups Available in any repository"
msgstr "Ne postoji grupa koja je dostupna u bilo kojoj riznici"
-#: ../yum/__init__.py:618
+#: ../yum/__init__.py:611
msgid "Importing additional filelist information"
msgstr "Uvozim dodatne informacije o spiskovima datoteka"
-#: ../yum/__init__.py:670
+#: ../yum/__init__.py:657
#, python-format
msgid "Skip-broken round %i"
msgstr "Skip-broken etapa %i"
-#: ../yum/__init__.py:693
+#: ../yum/__init__.py:680
#, python-format
msgid "Skip-broken took %i rounds "
msgstr "Skip-broken je završen u %i etapa "
-#: ../yum/__init__.py:694
+#: ../yum/__init__.py:681
msgid ""
"\n"
"Packages skipped because of dependency problems:"
@@ -1429,165 +1455,159 @@ msgstr ""
"\n"
"Paketi su preskoÄeni zbog problema sa zavisnostima:"
-#: ../yum/__init__.py:698
+#: ../yum/__init__.py:685
#, python-format
msgid " %s from %s"
msgstr " %s iz %s"
-#: ../yum/__init__.py:779
-msgid ""
-"Warning: scriptlet or other non-fatal errors occurred during transaction."
-msgstr ""
-"Upozorenje: doÅ¡lo je do greÅ¡ke u skriptici ili neke druge nekritiÄne greÅ¡ke "
-"tokom transkacije."
-
-#: ../yum/__init__.py:794
+#: ../yum/__init__.py:774
#, python-format
msgid "Failed to remove transaction file %s"
msgstr "Nisam uspeo da uklonim datoteku transakcije %s"
-#: ../yum/__init__.py:834
+#: ../yum/__init__.py:814
#, python-format
msgid "excluding for cost: %s from %s"
msgstr "izuzimam iz troška: %s iz %s"
-#: ../yum/__init__.py:865
+#: ../yum/__init__.py:845
msgid "Excluding Packages in global exclude list"
msgstr "Izuzimam pakete u globalnom spisku za izuzimanje"
-#: ../yum/__init__.py:867
+#: ../yum/__init__.py:847
#, python-format
msgid "Excluding Packages from %s"
msgstr "Izuzimam pakete iz %s"
-#: ../yum/__init__.py:895
+#: ../yum/__init__.py:875
#, python-format
msgid "Reducing %s to included packages only"
msgstr "Sažimam %s samo u sadržane pakete"
-#: ../yum/__init__.py:900
+#: ../yum/__init__.py:880
#, python-format
msgid "Keeping included package %s"
msgstr "Zadržavam sadržani paket %s"
-#: ../yum/__init__.py:906
+#: ../yum/__init__.py:886
#, python-format
msgid "Removing unmatched package %s"
msgstr "Uklanjam nepovezani paket %s"
-#: ../yum/__init__.py:909
+#: ../yum/__init__.py:889
msgid "Finished"
msgstr "Završio"
#. Whoa. What the heck happened?
-#: ../yum/__init__.py:939
+#: ../yum/__init__.py:919
#, python-format
msgid "Unable to check if PID %s is active"
msgstr "Nisam u moguÄnisti da proverim da li je PID %s aktivan"
#. Another copy seems to be running.
-#: ../yum/__init__.py:943
+#: ../yum/__init__.py:923
#, python-format
msgid "Existing lock %s: another copy is running as pid %s."
msgstr "Postoji zakljuÄavanje %s: druga kopija se izvrÅ¡ava kao pid %s."
-#: ../yum/__init__.py:1006
+#: ../yum/__init__.py:970 ../yum/__init__.py:977
msgid "Package does not match intended download"
msgstr "Paket nije odgovarajuÄi za nameravano preuzimanje"
-#: ../yum/__init__.py:1021
+#: ../yum/__init__.py:991
msgid "Could not perform checksum"
msgstr "Ne mogu da izvršim kontrolu sume"
-#: ../yum/__init__.py:1024
+#: ../yum/__init__.py:994
msgid "Package does not match checksum"
msgstr "Paket nema odgovarajuÄi kontrolnu sumu"
-#: ../yum/__init__.py:1068
+#: ../yum/__init__.py:1036
#, python-format
msgid "package fails checksum but caching is enabled for %s"
msgstr ""
"paket nema odgovarajuÄu vrednost kontrolne sume ili je za %s ukljuÄeno "
"keširanje"
-#: ../yum/__init__.py:1071
+#: ../yum/__init__.py:1042
#, python-format
msgid "using local copy of %s"
msgstr "koristim lokalni umnožak %s-a"
-#: ../yum/__init__.py:1096
+#: ../yum/__init__.py:1061
#, python-format
msgid "Insufficient space in download directory %s to download"
-msgstr "Nedovoljna koliÄina prostora u direktorijumu %s namenjenog za preuzimanje"
+msgstr ""
+"Nedovoljna koliÄina prostora u direktorijumu %s namenjenog za preuzimanje"
-#: ../yum/__init__.py:1129
+#: ../yum/__init__.py:1094
msgid "Header is not complete."
msgstr "Zaglavlje nije potpuno."
-#: ../yum/__init__.py:1169
+#: ../yum/__init__.py:1134
#, python-format
msgid ""
"Header not in local cache and caching-only mode enabled. Cannot download %s"
msgstr ""
-"Zaglavlje nije u lokalnom keÅ¡u i samo naÄin rada sa keÅ¡iranjem je ukljuÄen. Ne "
-"mogu da preuzmem %s"
+"Zaglavlje nije u lokalnom keÅ¡u i samo naÄin rada sa keÅ¡iranjem je ukljuÄen. "
+"Ne mogu da preuzmem %s"
-#: ../yum/__init__.py:1224
+#: ../yum/__init__.py:1189
#, python-format
msgid "Public key for %s is not installed"
msgstr "Javni kljuÄ za %s nije instaliran"
-#: ../yum/__init__.py:1228
+#: ../yum/__init__.py:1193
#, python-format
msgid "Problem opening package %s"
msgstr "Problem sa otvaranjem paketa %s"
-#: ../yum/__init__.py:1236
+#: ../yum/__init__.py:1201
#, python-format
msgid "Public key for %s is not trusted"
msgstr "Javni kljuÄ za %s nije poverljiv"
-#: ../yum/__init__.py:1240
+#: ../yum/__init__.py:1205
#, python-format
msgid "Package %s is not signed"
msgstr "Paket %s nije potpisan"
-#: ../yum/__init__.py:1278
+#: ../yum/__init__.py:1243
#, python-format
msgid "Cannot remove %s"
msgstr "Ne mogu da uklonim %s"
-#: ../yum/__init__.py:1282
+#: ../yum/__init__.py:1247
#, python-format
msgid "%s removed"
msgstr "%s je uklonjen"
-#: ../yum/__init__.py:1318
+#: ../yum/__init__.py:1283
#, python-format
msgid "Cannot remove %s file %s"
msgstr "Ne mogu da uklonim %s datoteku %s"
-#: ../yum/__init__.py:1322
+#: ../yum/__init__.py:1287
#, python-format
msgid "%s file %s removed"
msgstr "%s datoteka %s je uklonjena"
-#: ../yum/__init__.py:1324
+#: ../yum/__init__.py:1289
#, python-format
msgid "%d %s files removed"
msgstr "%d %s datoteke su uklonjene"
-#: ../yum/__init__.py:1378
+#: ../yum/__init__.py:1329
#, python-format
msgid "More than one identical match in sack for %s"
msgstr "Postoji viÅ¡e od jednog identiÄnog slaganja u grupi za %s"
-#: ../yum/__init__.py:1384
+#: ../yum/__init__.py:1335
#, python-format
msgid "Nothing matches %s.%s %s:%s-%s from update"
msgstr "Ništa se ne slaže sa %s.%s %s:%s-%s iz ažuriranja"
-#: ../yum/__init__.py:1577
+#: ../yum/__init__.py:1543
msgid ""
"searchPackages() will go away in a future version of "
"Yum. Use searchGenerator() instead. \n"
@@ -1595,155 +1615,141 @@ msgstr ""
"searchPackages() neÄe biti prisutna u buduÄim verzijama Yum-"
"a. Umesto nje koristite searchGenerator(). \n"
-#: ../yum/__init__.py:1614
+#: ../yum/__init__.py:1580
#, python-format
msgid "Searching %d packages"
msgstr "Pretražujem %d pakete"
-#: ../yum/__init__.py:1618
+#: ../yum/__init__.py:1584
#, python-format
msgid "searching package %s"
msgstr "tražim paket %s"
-#: ../yum/__init__.py:1630
+#: ../yum/__init__.py:1596
msgid "searching in file entries"
msgstr "tražim u unosima datoteka"
-#: ../yum/__init__.py:1637
+#: ../yum/__init__.py:1603
msgid "searching in provides entries"
msgstr "tražim u unosima dostavljaÄa"
-#: ../yum/__init__.py:1667
+#: ../yum/__init__.py:1633
#, python-format
msgid "Provides-match: %s"
msgstr "Dostavlja-slaganje: %s"
-#: ../yum/__init__.py:1736 ../yum/__init__.py:1755 ../yum/__init__.py:1782
-#: ../yum/__init__.py:1788 ../yum/__init__.py:1844 ../yum/__init__.py:1848
+#: ../yum/__init__.py:1702 ../yum/__init__.py:1720 ../yum/__init__.py:1748
+#: ../yum/__init__.py:1753 ../yum/__init__.py:1808 ../yum/__init__.py:1812
#, python-format
msgid "No Group named %s exists"
msgstr "Ne postoji grupa pod imenom %s"
-#: ../yum/__init__.py:1767 ../yum/__init__.py:1861
+#: ../yum/__init__.py:1731 ../yum/__init__.py:1824
#, python-format
msgid "package %s was not marked in group %s"
msgstr "paket %s nije oznaÄen u grupi %s"
-#: ../yum/__init__.py:1806
+#: ../yum/__init__.py:1770
#, python-format
msgid "Adding package %s from group %s"
msgstr "Dodajem paket %s iz grupe %s"
-#: ../yum/__init__.py:1810
+#: ../yum/__init__.py:1774
#, python-format
msgid "No package named %s available to be installed"
msgstr "Nijedan paket pod imenom %s nije dostupan za instalaciju"
-#: ../yum/__init__.py:1886
+#: ../yum/__init__.py:1849
#, python-format
msgid "Package tuple %s could not be found in packagesack"
msgstr "Grupa paketa %s nije naÄena u packagesack-u"
-#: ../yum/__init__.py:1954 ../yum/__init__.py:1994
+#: ../yum/__init__.py:1917 ../yum/__init__.py:1960
msgid "Invalid versioned dependency string, try quoting it."
msgstr ""
"Neispravna niska zavisnosti sa verzijom, pokušajte da je obeležite "
"navodnicima."
-#: ../yum/__init__.py:1956 ../yum/__init__.py:1996
+#: ../yum/__init__.py:1919 ../yum/__init__.py:1962
msgid "Invalid version flag"
msgstr "Pogrešna oznaka verzije"
-#: ../yum/__init__.py:1968 ../yum/__init__.py:1972
+#: ../yum/__init__.py:1934 ../yum/__init__.py:1938
#, python-format
msgid "No Package found for %s"
msgstr "Nema pronaÄenih paketa za %s"
-#: ../yum/__init__.py:2100
+#: ../yum/__init__.py:2066
msgid "Package Object was not a package object instance"
msgstr "Objekat paketa nije bio primerak objekta paketa"
-#: ../yum/__init__.py:2104
+#: ../yum/__init__.py:2070
msgid "Nothing specified to install"
msgstr "Nije odreÄeno niÅ¡ta za instalaciju"
#. only one in there
-#: ../yum/__init__.py:2119
+#: ../yum/__init__.py:2085
#, python-format
msgid "Checking for virtual provide or file-provide for %s"
msgstr "Proveravam virtuelnu dostavu ili dostavu datoteke za %s"
-#: ../yum/__init__.py:2125 ../yum/__init__.py:2440
+#: ../yum/__init__.py:2091 ../yum/__init__.py:2380
#, python-format
msgid "No Match for argument: %s"
msgstr "Ne postoji slaganje za argument: %s"
#. FIXME - this is where we could check to see if it already installed
#. for returning better errors
-#: ../yum/__init__.py:2180
+#: ../yum/__init__.py:2146
msgid "No package(s) available to install"
msgstr "Nema paketa dostupnih za instalaciju"
-#: ../yum/__init__.py:2192
+#: ../yum/__init__.py:2158
#, python-format
msgid "Package: %s - already in transaction set"
msgstr "Paket: %s - veÄ je u skupu transakcije"
-#: ../yum/__init__.py:2205
+#: ../yum/__init__.py:2171
#, python-format
msgid "Package %s already installed and latest version"
msgstr "VeÄ je instalirana najnovija verzija paketa %s"
-#: ../yum/__init__.py:2212
+#: ../yum/__init__.py:2178
#, python-format
msgid "Package matching %s already installed. Checking for update."
msgstr ""
"Paket koji se poklapa sa %s je veÄ instaliran. Proveravam za noviju verziju."
-#: ../yum/__init__.py:2223
-#, python-format
-msgid "Package %s is obsoleted by %s, trying to install %s instead"
-msgstr "Paket %s je zamenjen paketom %s, pokušavam da namesto instaliram %s"
-
#. update everything (the easy case)
-#: ../yum/__init__.py:2256
+#: ../yum/__init__.py:2220
msgid "Updating Everything"
msgstr "Ažuriram sve"
-#: ../yum/__init__.py:2359
+#: ../yum/__init__.py:2304
#, python-format
msgid "Package is already obsoleted: %s.%s %s:%s-%s"
msgstr "Paket je veÄ prevaziÄen: %s.%s %s:%s-%s"
-#: ../yum/__init__.py:2383
-#, python-format
-msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s"
-msgstr "Ne ažuriram pakete koji su veÄ ažurirani: %s.%s %s:%s-%s"
-
-#: ../yum/__init__.py:2437
+#: ../yum/__init__.py:2377
#, python-format
msgid "%s"
msgstr "%s"
-#. FIXME we should give the caller some nice way to hush this warning
-#. probably just a kwarg of 'silence_warnings' or something
-#. b/c when this is called from groupRemove() it makes a lot of
-#. garbage noise
-#: ../yum/__init__.py:2456
+#: ../yum/__init__.py:2392
msgid "No package matched to remove"
msgstr "Nijedan paket nije odreÄen za uklanjanje"
-#: ../yum/__init__.py:2490
+#: ../yum/__init__.py:2426
#, python-format
msgid "Cannot open file: %s. Skipping."
msgstr "Ne mogu da otvorim datoteku: %s. PreskaÄem je."
-#: ../yum/__init__.py:2493
+#: ../yum/__init__.py:2429
#, python-format
msgid "Examining %s: %s"
msgstr "Ispitujem %s: %s"
-#: ../yum/__init__.py:2500
+#: ../yum/__init__.py:2436
#, python-format
msgid ""
"Package %s not installed, cannot update it. Run yum install to install it "
@@ -1752,79 +1758,79 @@ msgstr ""
"Paket %s nije instaliran, ne mogu da ga ažuriram. Izvršite yum instalaciju "
"da biste ga instalirali."
-#: ../yum/__init__.py:2533
+#: ../yum/__init__.py:2468
#, python-format
msgid "Excluding %s"
msgstr "Izuzimam %s"
-#: ../yum/__init__.py:2538
+#: ../yum/__init__.py:2473
#, python-format
msgid "Marking %s to be installed"
msgstr "OznaÄavam %s za instalaciju"
-#: ../yum/__init__.py:2544
+#: ../yum/__init__.py:2479
#, python-format
msgid "Marking %s as an update to %s"
msgstr "OznaÄavam %s kao ažuriranje za %s"
-#: ../yum/__init__.py:2551
+#: ../yum/__init__.py:2486
#, python-format
msgid "%s: does not update installed package."
msgstr "%s: ne ažurira instalirani paket."
-#: ../yum/__init__.py:2569
+#: ../yum/__init__.py:2504
msgid "Problem in reinstall: no package matched to remove"
msgstr ""
"Problem pri ponovnoj instalaciji: nijedan paket nije odreÄen za uklanjanje"
-#: ../yum/__init__.py:2580
+#: ../yum/__init__.py:2515
#, python-format
msgid "Package %s is allowed multiple installs, skipping"
msgstr "Paketu %s su dozvoljene mnogostruke instalacije, preskaÄem ga"
-#: ../yum/__init__.py:2587
+#: ../yum/__init__.py:2522
msgid "Problem in reinstall: no package matched to install"
msgstr ""
"Problem pri ponovnoj instalaciji: nijedan paket nije odreÄen za instalaciju"
-#: ../yum/__init__.py:2635
+#: ../yum/__init__.py:2570
#, python-format
msgid "Retrieving GPG key from %s"
msgstr "Dobavljam GPG kljuÄ sa %s"
-#: ../yum/__init__.py:2641
+#: ../yum/__init__.py:2576
msgid "GPG key retrieval failed: "
msgstr "Dobavljanje GPG kljuÄa nije uspelo: "
-#: ../yum/__init__.py:2654
+#: ../yum/__init__.py:2589
msgid "GPG key parsing failed: "
msgstr "RaÅ¡Älanjivanje GPG kljuÄa nije uspelo: "
-#: ../yum/__init__.py:2658
+#: ../yum/__init__.py:2593
#, python-format
msgid "GPG key at %s (0x%s) is already installed"
msgstr "GPG kljuÄ na %s (0x%s) je veÄ instaliran"
#. Try installing/updating GPG key
-#: ../yum/__init__.py:2663
+#: ../yum/__init__.py:2598
#, python-format
msgid "Importing GPG key 0x%s \"%s\" from %s"
msgstr "Uvozim GPG kljuÄ 0x%s â%sâ iz %s"
-#: ../yum/__init__.py:2675
+#: ../yum/__init__.py:2610
msgid "Not installing key"
msgstr "Ne instaliram kljuÄ"
-#: ../yum/__init__.py:2681
+#: ../yum/__init__.py:2616
#, python-format
msgid "Key import failed (code %d)"
msgstr "Nije uspeo uvoz kljuÄa (kod %d)"
-#: ../yum/__init__.py:2684
+#: ../yum/__init__.py:2619
msgid "Key imported successfully"
msgstr "KljuÄ je uspeÅ¡no uvezen"
-#: ../yum/__init__.py:2689
+#: ../yum/__init__.py:2624
#, python-format
msgid ""
"The GPG keys listed for the \"%s\" repository are already installed but they "
@@ -1835,80 +1841,76 @@ msgstr ""
"odgovarajuÄi za ovaj paket.\n"
"Proverite da li su podeÅ¡eni odgovarajuÄi URL-ovi kljuÄeva za ovu riznicu."
-#: ../yum/__init__.py:2698
+#: ../yum/__init__.py:2633
msgid "Import of key(s) didn't help, wrong key(s)?"
msgstr "Uvoz kljuÄa(kljuÄeva) nije pomogao, pogreÅ¡an kljuÄ(kljuÄevi)?"
-#: ../yum/__init__.py:2778
+#: ../yum/__init__.py:2707
msgid "Unable to find a suitable mirror."
msgstr "Ne mogu da pronaÄem odgovarajuÄi odraz."
-#: ../yum/__init__.py:2780
+#: ../yum/__init__.py:2709
msgid "Errors were encountered while downloading packages."
msgstr "Pojavile su se greške za vreme preuzimanja paketa."
-#: ../yum/__init__.py:2844
+#: ../yum/__init__.py:2774
msgid "Test Transaction Errors: "
msgstr "Greške pri proveri transakcije: "
#. Mostly copied from YumOutput._outKeyValFill()
-#: ../yum/plugins.py:197
+#: ../yum/plugins.py:195
msgid "Loaded plugins: "
msgstr "UÄitani dodaci: "
-#: ../yum/plugins.py:208
+#: ../yum/plugins.py:206
#, python-format
msgid "No plugin match for: %s"
msgstr "Ne postoji slaganje za dodatak: %s"
-#: ../yum/plugins.py:221
+#: ../yum/plugins.py:219
#, python-format
msgid "\"%s\" plugin is disabled"
msgstr "â%sâ dodatak je iskljuÄen"
-#: ../yum/plugins.py:233
+#: ../yum/plugins.py:231
#, python-format
msgid "Plugin \"%s\" doesn't specify required API version"
msgstr "Dodatak â%sâ ne odreÄuje verziju zahtevanog API-a"
-#: ../yum/plugins.py:237
+#: ../yum/plugins.py:235
#, python-format
msgid "Plugin \"%s\" requires API %s. Supported API is %s."
msgstr "Dodatak â%sâ zahteva API %s. Podržani API je %s."
-#: ../yum/plugins.py:266
+#: ../yum/plugins.py:264
#, python-format
msgid "Loading \"%s\" plugin"
msgstr "UÄitavam â%sâ dodatak"
-#: ../yum/plugins.py:273
+#: ../yum/plugins.py:271
#, python-format
msgid ""
"Two or more plugins with the name \"%s\" exist in the plugin search path"
msgstr ""
-"U putanji za pretraživanje dodataka postoje dva ili viÅ¡e dodataka pod imenom â%"
-"sâ"
+"U putanji za pretraživanje dodataka postoje dva ili više dodataka pod imenom "
+"â%sâ"
-#: ../yum/plugins.py:293
+#: ../yum/plugins.py:291
#, python-format
msgid "Configuration file %s not found"
msgstr "Datoteka podeÅ¡avanja %s nije pronaÄena"
#. for
#. Configuration files for the plugin not found
-#: ../yum/plugins.py:296
+#: ../yum/plugins.py:294
#, python-format
msgid "Unable to find configuration file for plugin %s"
msgstr "Ne mogu da pronaÄem datoteku podeÅ¡avanja za dodatak %s"
-#: ../yum/plugins.py:450
+#: ../yum/plugins.py:448
msgid "registration of commands not supported"
msgstr "registracija komandi nije podržana"
-#: ../yum/rpmtrans.py:78
-msgid "Repackaging"
-msgstr "Ponovno pakovanje"
-
#: ../rpmUtils/oldUtils.py:26
#, python-format
msgid "Header cannot be opened or does not match %s, %s."
@@ -1939,3 +1941,64 @@ msgstr "OÅ¡teÄeno zaglavlje %s"
#, python-format
msgid "Error opening rpm %s - error %s"
msgstr "Greška pri otvaranju rpm-a %s - greška %s"
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "%s: %s option requires an argument"
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "%s: %s opcija zahteva argument"
+
+#~ msgid "show this help message and exit"
+#~ msgstr "prikaži ovu pomoÄnu poruku i izaÄi"
+
+#~ msgid "verbose operation"
+#~ msgstr "opširna radnja"
+
+#~ msgid "Repo-id : "
+#~ msgstr "IB riznice : "
+
+#~ msgid "Repo-name : "
+#~ msgstr "Ime riznice : "
+
+#~ msgid "Repo-enabled: "
+#~ msgstr "Riznica ukljuÄena: "
+
+#~ msgid "Repo-size : "
+#~ msgstr "VeliÄina riznice: "
+
+#~ msgid "Running compare_providers() for %s"
+#~ msgstr "PokreÄem compare_providers() za %s"
+
+#~ msgid ""
+#~ "archdist compared %s to %s on %s\n"
+#~ " Winner: %s"
+#~ msgstr ""
+#~ "archdist uporedio %s sa %s na %s\n"
+#~ " Pobednik: %s"
+
+#~ msgid "common sourcerpm %s and %s"
+#~ msgstr "zajedniÄki izvorni rpm %s i %s"
+
+#~ msgid "common prefix of %s between %s and %s"
+#~ msgstr "zajedniÄki prefiks %s izmeÄu %s i %s"
+
+#~ msgid "Best Order: %s"
+#~ msgstr "Najbolji redosled: %s"
+
+#~ msgid ""
+#~ "Warning: scriptlet or other non-fatal errors occurred during transaction."
+#~ msgstr ""
+#~ "Upozorenje: doÅ¡lo je do greÅ¡ke u skriptici ili neke druge nekritiÄne "
+#~ "greške tokom transkacije."
+
+#~ msgid "Package %s is obsoleted by %s, trying to install %s instead"
+#~ msgstr "Paket %s je zamenjen paketom %s, pokušavam da namesto instaliram %s"
+
+#~ msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s"
+#~ msgstr "Ne ažuriram pakete koji su veÄ ažurirani: %s.%s %s:%s-%s"
+
+#~ msgid "Repackaging"
+#~ msgstr "Ponovno pakovanje"
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 3b30c2f..20dc426 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: yum\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-03-20 10:00+0000\n"
+"POT-Creation-Date: 2008-03-25 11:29+0100\n"
"PO-Revision-Date: 2008-07-24 19:43+0800\n"
"Last-Translator: lijiansheng <lijiangsheng1 at gmail.com>\n"
"Language-Team: zh_CN <lijiangsheng1 at gmail.com>\n"
@@ -12,1300 +12,1900 @@ msgstr ""
"X-Poedit-Language: Chinese\n"
"X-Poedit-Country: CHINA\n"
-msgid ""
-"\n"
-"\n"
-"Exiting on Broken Pipe"
-msgstr ""
-"\n"
-"\n"
-"管éæåèéåº"
-
-msgid ""
-"\n"
-"\n"
-"Exiting on user cancel"
-msgstr ""
-"\n"
-"\n"
-"ç¨æ·åæ¶èéåº"
-
-msgid ""
-"\n"
-"\n"
-"Exiting on user cancel."
-msgstr ""
-"\n"
-"\n"
-"ç¨æ·åæ¶èéåº"
-
-msgid ""
-"\n"
-"\n"
-"alias: "
-msgstr ""
-"\n"
-"\n"
-"å«å: "
-
-msgid ""
-"\n"
-"\n"
-"aliases: "
-msgstr ""
-"\n"
-"\n"
-"å¤éå«å: "
-
-msgid ""
-"\n"
-" Current download cancelled, %sinterrupt (ctrl-c) again%s within %s%s%s seconds to exit.\n"
-msgstr ""
-"\n"
-" å½åä¸è½½åæ¶, %s ä¸æ (ctrl-c) å次 %s å°å¨%s%s%s ç§å
éåº.\n"
-
-msgid ""
-"\n"
-"Dependencies Resolved"
-msgstr ""
-"\n"
-"ä¾èµæ§è§£å³"
-
-msgid ""
-"\n"
-"Group: %s"
-msgstr ""
-"\n"
-"ç»: %s"
-
-msgid ""
-"\n"
-"Packages skipped because of dependency problems:"
-msgstr ""
-"\n"
-"å 为ä¾èµæ§é®é¢è忽ç¥çå
:"
-
-msgid ""
-"\n"
-"Transaction Summary\n"
-"=============================================================================\n"
-"Install %5.5s Package(s) \n"
-"Update %5.5s Package(s) \n"
-"Remove %5.5s Package(s) \n"
-msgstr ""
-"\n"
-"å¤çä¿¡æ¯æè¦\n"
-"=============================================================================\n"
-"å®è£
%5.5s 个å
\n"
-"å级 %5.5s 个å
\n"
-"å é¤ %5.5s 个å
\n"
-
-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"
-"ä½ å·²ç»æ¿æ´»éè¿GPGå¯é¥éªè¯å
ï¼è¿æ¯ä¸ªå¥½ä¸è¥¿ã \n"
-"ç¶èï¼ä½ 没æå®è£
ä»»ä½çGPGå
¬é¥ï¼ä½ éè¦ä¸è½½ï¼\n"
-"å¦æä½ è¦å®è£
å
çå¯é¥\n"
-"ä½ å¯ä»¥æ§è¡ä¸é¢çå½ä»¤:\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"
-
-msgid ""
-" replacing %s.%s %s\n"
-"\n"
-msgstr ""
-" æ¿ä»£ä¸ %s.%s %s\n"
-"\n"
-
-msgid " %s from %s"
-msgstr " %s ä» %s"
-
-msgid " Unsatisfied dependency"
-msgstr " ä¸è½æ»¡æçä¾èµæ§"
-
-msgid " At least %dMB needed on the %s filesystem.\n"
-msgstr " è³å° éè¦%d MB ï¼ä½åç %s æ件系ç».\n"
+#: ../callback.py:48 ../output.py:512
+msgid "Updating"
+msgstr "æ£å¨å级"
-msgid " No dependencies for this package"
-msgstr "æ¤å
æ ä»»ä½çä¾èµ"
+#: ../callback.py:49
+msgid "Erasing"
+msgstr "æ£å¨å é¤"
-msgid " dependency: %s"
-msgstr " ä¾èµ: %s"
+#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:511
+msgid "Installing"
+msgstr "æ£å¨å®è£
"
-msgid " Conditional Packages:"
-msgstr " å
æ¡ä»¶:"
+#: ../callback.py:52 ../callback.py:58
+msgid "Obsoleted"
+msgstr "å·²åºå¼"
-msgid " Default Packages:"
-msgstr " é»è®¤çå
:"
+#: ../callback.py:54 ../output.py:558
+msgid "Updated"
+msgstr "æ´æ°å®æ¯"
-msgid " Description: %s"
-msgstr " æè¿°: %s"
+#: ../callback.py:55
+msgid "Erased"
+msgstr "å·²å é¤"
-msgid " Mandatory Packages:"
-msgstr " æ管çå
æ¯:"
+#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:556
+msgid "Installed"
+msgstr "å·²å®è£
"
-msgid " Optional Packages:"
-msgstr " å
çå±æ§:"
+#: ../callback.py:130
+msgid "No header - huh?"
+msgstr "没æ头æ件--ï¼ï¼?"
-msgid "\"%s\" plugin is disabled"
-msgstr "\"%s\" æ¤æ件已被ç¦æ"
+#: ../callback.py:168
+msgid "Repackage"
+msgstr "éæ°æå
"
-msgid "%d %s files removed"
-msgstr "%d %s æ件已移é¤"
+#: ../callback.py:189
+#, python-format
+msgid "Error: invalid output state: %s for %s"
+msgstr "Error: invalid output state: %s for %s"
-msgid "%d Package(s) to Install"
-msgstr "%d 个å
å°å®è£
"
+#: ../callback.py:212
+#, python-format
+msgid "Erased: %s"
+msgstr "å·²å é¤: %s"
-msgid "%d Package(s) to remove"
-msgstr "%d 个å
å°å é¤"
+#: ../callback.py:217 ../output.py:513
+msgid "Removing"
+msgstr "æ£å¨å é¤"
-msgid "%d packages marked for Update"
-msgstr "%d 个å
å·²æ å¿ä¸ºå级"
+#: ../callback.py:219
+msgid "Cleanup"
+msgstr "æ¸
ç"
-msgid "%d packages marked for removal"
-msgstr "%d 个å
å·²æ å¿ä¸ºå é¤"
+#: ../cli.py:103
+#, python-format
+msgid "Command \"%s\" already defined"
+msgstr "å½ä»¤ \"%s\" æ©å·²ç»è¢«å®ä¹"
-msgid "%s"
-msgstr "%s"
+#: ../cli.py:115
+msgid "Setting up repositories"
+msgstr "设置ä»åº"
-msgid "%s already in ts, skipping this one"
-msgstr "%s å·²å¨å¤çä¸, 忽ç¥æ¤é¡¹"
+#: ../cli.py:126
+msgid "Reading repository metadata in from local files"
+msgstr "ä»æ¬å°æ件读å
¥ä»åºå
æ°æ®"
-msgid "%s converted to install"
-msgstr "%s 已转æ¢çå°å®è£
"
+#: ../cli.py:183 ../utils.py:72
+#, python-format
+msgid "Config Error: %s"
+msgstr "é
ç½®é误: %s"
-msgid "%s file %s removed"
-msgstr "%s æ件 %s 已移é¤"
+#: ../cli.py:186 ../cli.py:1068 ../utils.py:75
+#, python-format
+msgid "Options Error: %s"
+msgstr "å±æ§é误: %s"
-msgid "%s from %s has depsolving problems"
-msgstr "%s å·²ä»%s 解å³äºé®é¢"
+#: ../cli.py:229
+msgid "You need to give some command"
+msgstr "ä½ éè¦ç»åºå½ä»¤"
-msgid "%s is in providing packages but it is already installed, removing."
-msgstr "%s å¨å设çå
ä¸ï¼ä½æ¯å·²ç»å®è£
ï¼å é¤ä¸...."
+#: ../cli.py:271
+msgid "Disk Requirements:\n"
+msgstr "ç£çè¦æ±:\n"
-msgid "%s removed"
-msgstr "%s å·²å é¤"
+#: ../cli.py:273
+#, python-format
+msgid " At least %dMB needed on the %s filesystem.\n"
+msgstr " è³å° éè¦%d MB ï¼ä½åç %s æ件系ç».\n"
-msgid "%s requires: %s"
-msgstr "%s éè¦: %s"
+#. TODO: simplify the dependency errors?
+#. Fixup the summary
+#: ../cli.py:278
+msgid ""
+"Error Summary\n"
+"-------------\n"
+msgstr ""
+"é误çè¯æ³\n"
+"-------------\n"
-msgid "%s: does not update installed package."
-msgstr "%s: 没æå¯ä¾å级çå
."
+#: ../cli.py:317
+msgid "Trying to run the transaction but nothing to do. Exiting."
+msgstr "å°è¯è¿è¡äºå¡å¤çä½æ¯ä»ä¹ä¹åä¸æï¼éåº."
-msgid "---> Downloading header for %s to pack into transaction set."
-msgstr "--->为 %sä¸è½½å¤´æ件以便äºè®¾ç½®å¤ç."
+#: ../cli.py:347
+msgid "Exiting on user Command"
+msgstr "å¨ç¨æ·çå½ä»¤ä¸éåº"
-msgid "---> Package %s.%s %s:%s-%s set to be %s"
-msgstr "---> å
%s.%s %s:%s-%s 设置为 %s "
+#: ../cli.py:351
+msgid "Downloading Packages:"
+msgstr "ä¸è½½è½¯ä»¶å
:"
-msgid "--> Finished Dependency Resolution"
-msgstr "--> å®æä¾èµæ§æ£æ¥"
+#: ../cli.py:356
+msgid "Error Downloading Packages:\n"
+msgstr "ä¸è½½å
é误:\n"
-msgid "--> Populating transaction set with selected packages. Please wait."
-msgstr "--> æ£å¨å¤çå·²éæ©çå
ï¼è¯·ç¨åã"
+#: ../cli.py:370 ../yum/__init__.py:2746
+msgid "Running rpm_check_debug"
+msgstr "è¿è¡ rpm_check_debug "
-msgid "--> Processing Conflict: %s conflicts %s"
-msgstr "--> è¿ç¨å²çª: %s å²çªäº %s"
+#: ../cli.py:373 ../yum/__init__.py:2749
+msgid "ERROR with rpm_check_debug vs depsolve:"
+msgstr "é误 rpm_check_debug å depsolve:"
-msgid "--> Processing Dependency: %s for package: %s"
-msgstr "--> è¿ç¨ä¾èµ: %s ä¾èµäºå
: %s"
+#: ../cli.py:377 ../yum/__init__.py:2751
+msgid "Please report this error in bugzilla"
+msgstr "请æ¥åè¿ä¸ªéè¯¯ç» Bugzilla"
-msgid "--> Restarting Dependency Resolution with new changes."
-msgstr "--> 为æ°å
éæ°å¯å¨è§£å³ä¾èµé®é¢"
+#: ../cli.py:383
+msgid "Running Transaction Test"
+msgstr "è¿è¡æµè¯äºå¡å¤ç"
-msgid "--> Running transaction check"
-msgstr "-->è¿è¡å¤çæ£æ¥"
+#: ../cli.py:399
+msgid "Finished Transaction Test"
+msgstr "ä¼ è¾æµè¯å®æ"
-msgid "--> Unresolved Dependency: %s"
-msgstr "--> 没æ解å³çä¾èµ: %s"
+#: ../cli.py:401
+msgid "Transaction Check Error:\n"
+msgstr "å¤çæ£æ¥é误:\n"
-msgid "Adding Package %s in mode %s"
-msgstr "æ·»å å
%s å¨ %s ç模å¼ä¸"
+#: ../cli.py:408
+msgid "Transaction Test Succeeded"
+msgstr "äºå¡å¤çæµè¯æå"
-msgid "Adding group file from repository: %s"
-msgstr "ä»ä»åº: %s ä¸æ·»å ç»æ件"
+#: ../cli.py:429
+msgid "Running Transaction"
+msgstr "è¿è¡äºå¡å¤ç"
-msgid "Adding package %s from group %s"
-msgstr "æ·»å å
%s ä»ç» %s ä¸"
+#: ../cli.py:459
+msgid ""
+"Refusing to automatically import keys when running unattended.\n"
+"Use \"-y\" to override."
+msgstr ""
+"å½è¿è¡unattendedæ¶æç»èªå¨å¯¼å
¥å¯é¥.\n"
+"ç¨ \"-y\" æ¥è¦ç"
-msgid "Another app is currently holding the yum lock; waiting for it to exit..."
-msgstr "å¦å¤ä¸ä¸ªåºç¨ç¨åºæ£å¨éç¨yuméï¼çå¾
å
¶éåº ... ..."
+#: ../cli.py:491
+msgid "Parsing package install arguments"
+msgstr "åæå®è£
åæ°çè¯æ³"
-msgid "Apr"
-msgstr "Apr"
+#: ../cli.py:501
+#, python-format
+msgid "No package %s available."
+msgstr "å
%s ä¸å¯æä¾."
-msgid "Arch"
-msgstr "æ¶æ"
+#: ../cli.py:505 ../cli.py:623 ../yumcommands.py:748
+msgid "Package(s) to install"
+msgstr "å
å°å®è£
"
-msgid "Arch : %s"
-msgstr "æ¶æ : %s"
+#: ../cli.py:506 ../cli.py:624 ../yumcommands.py:146 ../yumcommands.py:749
+msgid "Nothing to do"
+msgstr "æ äºå¯å"
-msgid "Aug"
-msgstr "Aug"
+#: ../cli.py:536 ../yum/__init__.py:2232 ../yum/__init__.py:2311
+#: ../yum/__init__.py:2340
+#, python-format
+msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
+msgstr "ä¸å¯æ´æ°æ©å·²è¢«åºå¼çå
: %s.%s %s:%s-%s"
-msgid "Available Groups:"
-msgstr "ææçç»:"
+#: ../cli.py:568
+#, python-format
+msgid "Could not find update match for %s"
+msgstr "ä¸è½æ¾å°å %s å¹é
çå级"
-msgid "Available Packages"
-msgstr "å·²ç»æä¾çå
"
+#: ../cli.py:580
+#, python-format
+msgid "%d packages marked for Update"
+msgstr "%d 个å
å·²æ å¿ä¸ºå级"
-msgid "Building updates object"
-msgstr "建ç«å级对象"
+#: ../cli.py:583
+msgid "No Packages marked for Update"
+msgstr "没æå
æ å¿ä¸ºå级"
-msgid "Cannot find an update path for dep for: %s"
-msgstr "Cannot find an update path for dep for: %s"
+#: ../cli.py:599
+#, python-format
+msgid "%d packages marked for removal"
+msgstr "%d 个å
å·²æ å¿ä¸ºå é¤"
-msgid "Cannot open file: %s. Skipping."
-msgstr "ä¸è½æå¼æ件: %s. è·³è¿."
+#: ../cli.py:602
+msgid "No Packages marked for removal"
+msgstr "没æå
æ å¿ä¸ºå é¤"
-msgid "Cannot remove %s"
-msgstr "æ æ³å é¤ %s "
+#: ../cli.py:614
+msgid "No Packages Provided"
+msgstr "没æå¯æä¾çå
"
-msgid "Cannot remove %s file %s"
-msgstr "æ æ³å é¤ %s æ件 %s"
+#: ../cli.py:654
+msgid "Matching packages for package list to user args"
+msgstr "ä»ç¨æ·çå
å表ä¸å¹é
å
"
-msgid "Check for available package updates"
-msgstr "æ£æ¥å¯æä¾çå
å级"
+#: ../cli.py:701
+#, python-format
+msgid "Warning: No matches found for: %s"
+msgstr "æ示 : 没æåç°å: %s å¹é
"
-msgid "Checking deps for %s"
-msgstr "为 %s æ£æ¥ä¾èµæ§"
+#: ../cli.py:704
+msgid "No Matches found"
+msgstr "没æå¹é
åç°"
-msgid "Checking for virtual provide or file-provide for %s"
-msgstr "Checking for virtual provide or file-provide for %s"
+#: ../cli.py:745
+#, python-format
+msgid "No Package Found for %s"
+msgstr "没æåç°å
%s"
+#: ../cli.py:757
msgid "Cleaning up Everything"
msgstr "æ¸
çä¸å"
+#: ../cli.py:771
msgid "Cleaning up Headers"
msgstr "Räume Header auf"
+#: ../cli.py:774
msgid "Cleaning up Packages"
msgstr "æ¸
çå
"
+#: ../cli.py:777
+msgid "Cleaning up xml metadata"
+msgstr "æ¸
çXMLå
æ°æ®"
+
+#: ../cli.py:780
msgid "Cleaning up database cache"
msgstr "æ¸
çæ°æ®åºç¼å"
+#: ../cli.py:783
+#, fuzzy
+msgid "Cleaning up expire-cache metadata"
+msgstr "æ¸
çXMLå
æ°æ®"
+
+#: ../cli.py:786
msgid "Cleaning up plugins"
msgstr "æ¸
çæ件"
-msgid "Cleaning up xml metadata"
-msgstr "æ¸
çXMLå
æ°æ®"
+#: ../cli.py:807
+msgid "Installed Groups:"
+msgstr "å·²å®è£
ç»:"
-msgid "Cleanup"
-msgstr "æ¸
ç"
+#: ../cli.py:814
+msgid "Available Groups:"
+msgstr "ææçç»:"
-msgid "Command \"%s\" already defined"
-msgstr "å½ä»¤ \"%s\" æ©å·²ç»è¢«å®ä¹"
+#: ../cli.py:820
+msgid "Done"
+msgstr "å®æ"
-msgid "Command line error: %s"
-msgstr "å½ä»¤è¡é误: %s"
+#: ../cli.py:829 ../cli.py:841 ../cli.py:847
+#, python-format
+msgid "Warning: Group %s does not exist."
+msgstr "æ示: ç» %s ä¸åå¨."
-msgid "Committer : %s"
-msgstr "Ãbermittler : %s"
+#: ../cli.py:853
+msgid "No packages in any requested group available to install or update"
+msgstr "没æå
å¨æè¦æ±çç»ä¸å¯æä¾å®è£
æå级"
-msgid "Comparing best: %s to po: %s"
-msgstr "Vergleiche besseres: %s zu po: %s"
+#: ../cli.py:855
+#, python-format
+msgid "%d Package(s) to Install"
+msgstr "%d 个å
å°å®è£
"
-msgid "Complete!"
-msgstr "æåä½ !æåå®æï¼"
+#: ../cli.py:865
+#, python-format
+msgid "No group named %s exists"
+msgstr "没æç»å为 %s "
-msgid "Config Error: %s"
-msgstr "é
ç½®é误: %s"
+#: ../cli.py:871
+msgid "No packages to remove from groups"
+msgstr "No packages to remove from groups"
-msgid "Configuration file %s not found"
-msgstr "é
ç½®æ件 %s ä¸è½è¢«æ¾å°"
+#: ../cli.py:873
+#, python-format
+msgid "%d Package(s) to remove"
+msgstr "%d 个å
å°å é¤"
-msgid "Could not find update match for %s"
-msgstr "ä¸è½æ¾å°å %s å¹é
çå级"
+#: ../cli.py:915
+#, python-format
+msgid "Package %s is already installed, skipping"
+msgstr "å
%s æ©å·²å®è£
ï¼å¿½ç¥"
-msgid "Could not open RPM database for reading. Perhaps it is already in use?"
-msgstr "ä¸è½ä»¥è¯»çæ¹å¼æå¼RPMæ°æ®åºï¼æ许æ¯å®å·²ç»å¨è¢«ç¨?"
+#: ../cli.py:926
+#, python-format
+msgid "Discarding non-comparable pkg %s.%s"
+msgstr " 丢å¼æ 对ç
§çå
%s.%s"
-msgid "Could not perform checksum"
-msgstr "æ æ³æ§è¡æ ¡éªå"
+#. we've not got any installed that match n or n+a
+#: ../cli.py:952
+#, python-format
+msgid "No other %s installed, adding to list for potential install"
+msgstr "No other %s installed, adding to list for æ½å¨çinstall"
-msgid "Damaged Header %s"
-msgstr "æåç头æ件 %s"
+#: ../cli.py:971
+#, python-format
+msgid "Command line error: %s"
+msgstr "å½ä»¤è¡é误: %s"
-msgid "Dec"
-msgstr "Dec"
+#: ../cli.py:1101
+msgid "be tolerant of errors"
+msgstr "be tolerant of errors"
-msgid "Dependency Installed"
-msgstr "ä¾èµå®è£
"
+#: ../cli.py:1103
+msgid "run entirely from cache, don't update cache"
+msgstr "ä»ç¼å²ä¸è¿è¡ï¼èä¸æ¯å级ç¼å"
-msgid "Dependency Process ending"
-msgstr "ä¾èµè¿ç¨å®æä¸"
+#: ../cli.py:1105
+msgid "config file location"
+msgstr "config file location"
-msgid "Dependency Removed"
-msgstr "ä¾èµå é¤"
+#: ../cli.py:1107
+msgid "maximum command wait time"
+msgstr "æ大åçå½ä»¤çå¾
æ¶é´"
-msgid "Dependency Updated"
-msgstr "ä¾èµå级"
+#: ../cli.py:1109
+msgid "debugging output level"
+msgstr "è°è¯è¾åºçº§å«"
-msgid "Description: "
-msgstr "å级:"
+#: ../cli.py:1113
+msgid "show duplicates, in repos, in list/search commands"
+msgstr "æ¾ç¤ºå¤å¶, å¨repo,list/searchå½ä»¤ä¸"
-msgid "Determine which package provides the given dependency"
-msgstr "å³å®åªä¸ªå
æä¾äºç»å®çä¾èµ"
+#: ../cli.py:1115
+msgid "error output level"
+msgstr "é误è¾åºçº§å«"
-msgid "Discarding non-comparable pkg %s.%s"
-msgstr " 丢å¼æ 对ç
§çå
%s.%s"
+#: ../cli.py:1118
+msgid "quiet operation"
+msgstr "å®éçæä½"
-msgid "Disk Requirements:\n"
-msgstr "ç£çè¦æ±:\n"
+#: ../cli.py:1122
+msgid "answer yes for all questions"
+msgstr "åçææçé®é¢ä¸ºæ¯"
-msgid "Display a helpful usage message"
-msgstr "æ¾ç¤ºå¸®å©ç¨æ³ä¿¡æ¯"
+#: ../cli.py:1124
+msgid "show Yum version and exit"
+msgstr "æ¾ç¤º YUMçæ¬ä¿¡æ¯å¹¶éåº"
-msgid "Display details about a package group"
-msgstr "æ¾ç¤ºå
³äºå
ç»çç»è"
+#: ../cli.py:1125
+msgid "set install root"
+msgstr "设置为rootå®è£
"
-msgid "Display details about a package or group of packages"
-msgstr "æ¾ç¤ºå
³äºå
æä¸ç»å
çç»èä¿¡æ¯"
+#: ../cli.py:1129
+msgid "enable one or more repositories (wildcards allowed)"
+msgstr "æ¿æ´»ä¸ä¸ªæå¤ä¸ªä»åºï¼æ¯æéé
符ï¼"
-msgid "Display the configured software repositories"
-msgstr "æ¾ç¤ºè½¯ä»¶ä»åºçé
ç½®"
+#: ../cli.py:1133
+msgid "disable one or more repositories (wildcards allowed)"
+msgstr "ç¦æä¸ä¸ªæå¤ä¸ªä»åºï¼æ¯æéé
符ï¼"
-msgid "Done"
-msgstr "å®æ"
+#: ../cli.py:1136
+msgid "exclude package(s) by name or glob"
+msgstr "å¨å称æglobä¸å
å«å
ã"
-msgid "Downloading Packages:"
-msgstr "ä¸è½½è½¯ä»¶å
:"
+#: ../cli.py:1138
+msgid "disable exclude from main, for a repo or for everything"
+msgstr "disable exclude from main, for a repo or for everything"
-msgid "ERROR with rpm_check_debug vs depsolve:"
-msgstr "é误 rpm_check_debug å depsolve:"
+#: ../cli.py:1141
+msgid "enable obsoletes processing during updates"
+msgstr "enable obsoletes processing during updates"
-msgid "Epoch : %s"
-msgstr "Epoch : %s"
+#: ../cli.py:1143
+msgid "disable Yum plugins"
+msgstr "ç¦æyumæ件"
-msgid "Erased"
-msgstr "å·²å é¤"
+#: ../cli.py:1145
+msgid "disable gpg signature checking"
+msgstr "ç¦æGPGéªè¯æ£æ¥"
-msgid "Erased: %s"
-msgstr "å·²å é¤: %s"
+#: ../cli.py:1147
+msgid "disable plugins by name"
+msgstr "ç¨å称ç¦ææ件"
-msgid "Erasing"
-msgstr "æ£å¨å é¤"
+#: ../cli.py:1150
+msgid "skip packages with depsolving problems"
+msgstr "忽ç¥å
çä¾èµé®é¢"
-msgid "Error Downloading Packages:\n"
-msgstr "ä¸è½½å
é误:\n"
+#: ../output.py:229
+msgid "Jan"
+msgstr "ä¸æ"
-msgid ""
-"Error Summary\n"
-"-------------\n"
-msgstr ""
-"é误çè¯æ³\n"
-"-------------\n"
+#: ../output.py:229
+msgid "Feb"
+msgstr "äºæ"
-msgid "Error opening rpm %s - error %s"
-msgstr "æå¼ RPM %s é误 - é误 %s"
+#: ../output.py:229
+msgid "Mar"
+msgstr "Mar"
-msgid "Error: %s"
-msgstr "é误: %s"
+#: ../output.py:229
+msgid "Apr"
+msgstr "Apr"
-msgid "Error: Need a group or list of groups"
-msgstr "é误ï¼éè¦ç»æç»çå表"
+#: ../output.py:229
+msgid "May"
+msgstr "Mai"
-msgid "Error: Need an item to match"
-msgstr "é误ï¼éè¦ç»å¾®çå¹é
"
+#: ../output.py:229
+msgid "Jun"
+msgstr "Jun"
-msgid "Error: Need to pass a list of pkgs to %s"
-msgstr "é误: éè¦ä¼ è¾å¨å表çå
å°%s"
+#: ../output.py:230
+msgid "Jul"
+msgstr "Jul"
-msgid "Error: clean requires an option: %s"
-msgstr "Error: clean requires an option: %s"
+#: ../output.py:230
+msgid "Aug"
+msgstr "Aug"
-msgid "Error: invalid clean argument: %r"
-msgstr "Error: invalid clean argument: %r"
+#: ../output.py:230
+msgid "Sep"
+msgstr "Sep"
-msgid "Error: invalid output state: %s for %s"
-msgstr "Error: invalid output state: %s for %s"
+#: ../output.py:230
+msgid "Oct"
+msgstr "åæ"
-msgid "Error: more than one file given as argument to shell."
-msgstr "Error: more than one file given as argument to shell."
+#: ../output.py:230
+msgid "Nov"
+msgstr "Nov"
-msgid "Errors were encountered while downloading packages."
-msgstr "Errors were encountered while downloading packages."
+#: ../output.py:230
+msgid "Dec"
+msgstr "Dec"
-msgid "Examining %s: %s"
-msgstr " è¯æ %s: %s"
+#: ../output.py:240
+msgid "Trying other mirror."
+msgstr "å°è¯å
¶ä»éå."
-msgid "Excluding %s"
-msgstr "ä¸å
æ¬ %s"
+#: ../output.py:293
+#, python-format
+msgid "Name : %s"
+msgstr "å称 : %s"
-msgid "Excluding Packages from %s"
-msgstr "å¨ %s ä¸æé¤çå
"
+#: ../output.py:294
+#, python-format
+msgid "Arch : %s"
+msgstr "æ¶æ : %s"
-msgid "Excluding Packages in global exclude list"
-msgstr "ä¸å
éå
å¨å
¨å±çæé¤çå表ä¸"
+#: ../output.py:296
+#, python-format
+msgid "Epoch : %s"
+msgstr "Epoch : %s"
-msgid "Existing lock %s: another copy is running as pid %s."
-msgstr "éå·²è¢«ç¨ %s: å¦å¤çä¸ä¸ªå¤å¶æ£å¨è¿è¡å¨ PID为 %s."
+#: ../output.py:297
+#, python-format
+msgid "Version : %s"
+msgstr "çæ¬ : %s"
-msgid "Exiting on user Command"
-msgstr "å¨ç¨æ·çå½ä»¤ä¸éåº"
+#: ../output.py:298
+#, python-format
+msgid "Release : %s"
+msgstr "åè¡ : %s"
-msgid "Extra Packages"
-msgstr "æ©å±çå
"
+#: ../output.py:299
+#, python-format
+msgid "Size : %s"
+msgstr "å¤§å° : %s"
-msgid "Failed to add groups file for repository: %s - %s"
-msgstr "为ä»åºæ·»å ç»å¤±è´¥: %s - %s"
+#: ../output.py:300
+#, python-format
+msgid "Repo : %s"
+msgstr "Repo : %s"
-msgid "Failed to remove transaction file %s"
-msgstr "移é¤å¤çæ件%s 失败"
+#: ../output.py:302
+#, python-format
+msgid "Committer : %s"
+msgstr "Ãbermittler : %s"
-msgid "Failure finding best provider of %s for %s, exceeded maximum loop length"
-msgstr "Failure finding best provider of %s for %s, exceeded maximum loop length"
+#: ../output.py:303
+msgid "Summary : "
+msgstr "è¯æ³ : "
-msgid "Feb"
-msgstr "äºæ"
+#: ../output.py:305
+#, python-format
+msgid "URL : %s"
+msgstr "ç»ä¸èµæºå®ä½ç¬¦ : %s"
-msgid "File %s given as argument to shell does not exist."
-msgstr "File %s given as argument to shell does not exist."
+#: ../output.py:306
+#, python-format
+msgid "License : %s"
+msgstr "许å¯è¯ : %s"
-msgid "Filename passed to shell: %s"
-msgstr "Filename passed to shell: %s"
+#: ../output.py:307
+msgid "Description: "
+msgstr "å级:"
-msgid "Find what package provides the given value"
-msgstr "Find what package provides the given value"
+#: ../output.py:351
+msgid "Is this ok [y/N]: "
+msgstr "ç¡®å®æ¯è¿æ ·å? [y/N]: "
-msgid "Finding dependencies: "
-msgstr "æ¾å°ä¾èµ:"
+#: ../output.py:357 ../output.py:360
+msgid "y"
+msgstr "Y"
-msgid "Finished"
-msgstr "å®æ"
+#: ../output.py:357
+msgid "n"
+msgstr "n"
-msgid "Finished Transaction Test"
-msgstr "ä¼ è¾æµè¯å®æ"
+#: ../output.py:357 ../output.py:360
+msgid "yes"
+msgstr "æ¯"
-msgid "GPG key at %s (0x%s) is already installed"
-msgstr "GPGå¯é¥å¨ %s (0x%s) å·²ç»å®è£
"
+#: ../output.py:357
+msgid "no"
+msgstr "å¦"
-msgid "GPG key parsing failed: "
-msgstr "åæGPGå¯é¥å¤±è´¥: "
+#: ../output.py:367
+#, python-format
+msgid ""
+"\n"
+"Group: %s"
+msgstr ""
+"\n"
+"ç»: %s"
-msgid "GPG key retrieval failed: "
-msgstr "GPGå¯é¥ä¿®å¤å¤±è´¥:"
+#: ../output.py:369
+#, python-format
+msgid " Description: %s"
+msgstr " æè¿°: %s"
-msgid "Generate the metadata cache"
-msgstr "çæåæ°æ®ç¼å"
+#: ../output.py:371
+msgid " Mandatory Packages:"
+msgstr " æ管çå
æ¯:"
-msgid "Getting group metadata"
-msgstr "è·å¾ç»å
æ°æ®"
+#: ../output.py:376
+msgid " Default Packages:"
+msgstr " é»è®¤çå
:"
-msgid "Got an empty Header, something has gone wrong"
-msgstr "å¾å°ç©ºç头æ件ï¼æé误åç"
+#: ../output.py:381
+msgid " Optional Packages:"
+msgstr " å
çå±æ§:"
-msgid "Header cannot be opened or does not match %s, %s."
-msgstr "Header ä¸è½æå¼æ对 %s, %sä¸å¹é
."
+#: ../output.py:386
+msgid " Conditional Packages:"
+msgstr " å
æ¡ä»¶:"
-msgid "Header is not complete."
-msgstr "Header ä¸æ¯å®æ´ç."
+#: ../output.py:394
+#, python-format
+msgid "package: %s"
+msgstr "å
: %s"
-msgid "Header not in local cache and caching-only mode enabled. Cannot download %s"
-msgstr "Header并ä¸å¨æ¬å°ç¼åèä¸caching-only 模å¼è¢«æ¿æ´»ãä¸è½ä¸è½½ %s"
+#: ../output.py:396
+msgid " No dependencies for this package"
+msgstr "æ¤å
æ ä»»ä½çä¾èµ"
-msgid "Import of key(s) didn't help, wrong key(s)?"
-msgstr "导å
¥å¯é¥æ¶æ²¡ææ±å©ï¼é误çå¯é¥?"
+#: ../output.py:401
+#, python-format
+msgid " dependency: %s"
+msgstr " ä¾èµ: %s"
-msgid "Importing GPG key 0x%s \"%s\" from %s"
-msgstr "导å
¥GPGå¯é¥ 0x%s \"%s\" ,æ¥èª %s"
+#: ../output.py:403
+msgid " Unsatisfied dependency"
+msgstr " ä¸è½æ»¡æçä¾èµæ§"
-msgid "Importing additional filelist information"
-msgstr "æ£å¨å¯¼å
¥é¢å¤çæ件å表信æ¯"
+#: ../output.py:461
+msgid "Matched from:"
+msgstr "å¹é
æ¥èªäº:"
-msgid "Install a local RPM"
-msgstr "å®è£
æ¬å° RPM"
+#: ../output.py:487
+msgid "There was an error calculating total download size"
+msgstr "There was an error calculating total download size"
-msgid "Install a package or packages on your system"
-msgstr "å®è£
ä¸ä¸ªæå¤ä¸ªè½¯ä»¶å
å¨ä½ çç³»ç»"
+#: ../output.py:492
+#, python-format
+msgid "Total size: %s"
+msgstr "æ»å¤§å°: %s"
-msgid "Install the packages in a group on your system"
-msgstr "ä»ç»éå®è£
软件å
å°ä½ çç³»ç»"
+#: ../output.py:495
+#, python-format
+msgid "Total download size: %s"
+msgstr "æ»å
±ä¸è½½å¤§å°: %s"
-msgid "Installed"
-msgstr "å·²å®è£
"
+#: ../output.py:507
+msgid "Package"
+msgstr "å
"
-msgid "Installed Groups:"
-msgstr "å·²å®è£
ç»:"
+#: ../output.py:507
+msgid "Arch"
+msgstr "æ¶æ"
-msgid "Installed Packages"
-msgstr "å·²ç»å®è£
çå
"
+#: ../output.py:507
+msgid "Version"
+msgstr "çæ¬"
-msgid "Installing"
-msgstr "æ£å¨å®è£
"
+#: ../output.py:507
+msgid "Repository"
+msgstr "ä»åº"
+
+#: ../output.py:507
+msgid "Size"
+msgstr "大å°"
+#: ../output.py:514
msgid "Installing for dependencies"
msgstr "为ä¾èµèå®è£
"
-msgid "Insufficient space in download directory %s to download"
-msgstr "ç®å½ %s没æ足å¤ç空é´ä¸è½½æ件"
+#: ../output.py:515
+msgid "Updating for dependencies"
+msgstr "æ´æ°ä¾èµæ§"
-msgid "Invalid tsflag in config file: %s"
-msgstr "é
ç½®æ件: %sä¸çtsflagæ¯æ æç"
+#: ../output.py:516
+msgid "Removing for dependencies"
+msgstr "为ä¾èµç§»é¤"
-msgid "Invalid version flag"
-msgstr "æ æççæ¬æ å¿"
+#: ../output.py:528
+#, python-format
+msgid ""
+" replacing %s.%s %s\n"
+"\n"
+msgstr ""
+" æ¿ä»£ä¸ %s.%s %s\n"
+"\n"
-msgid "Invalid versioned dependency string, try quoting it."
-msgstr "æ æçä¾èµå符串ï¼å°è¯éæ°å¼ç¨."
+#: ../output.py:536
+#, python-format
+msgid ""
+"\n"
+"Transaction Summary\n"
+"=============================================================================\n"
+"Install %5.5s Package(s) \n"
+"Update %5.5s Package(s) \n"
+"Remove %5.5s Package(s) \n"
+msgstr ""
+"\n"
+"å¤çä¿¡æ¯æè¦\n"
+"=============================================================================\n"
+"å®è£
%5.5s 个å
\n"
+"å级 %5.5s 个å
\n"
+"å é¤ %5.5s 个å
\n"
-msgid "Is this ok [y/N]: "
-msgstr "ç¡®å®æ¯è¿æ ·å? [y/N]: "
+#: ../output.py:554
+msgid "Removed"
+msgstr "å·²å é¤"
-msgid "Jan"
-msgstr "ä¸æ"
+#: ../output.py:555
+msgid "Dependency Removed"
+msgstr "ä¾èµå é¤"
-msgid "Jul"
-msgstr "Jul"
+#: ../output.py:557
+msgid "Dependency Installed"
+msgstr "ä¾èµå®è£
"
-msgid "Jun"
-msgstr "Jun"
+#: ../output.py:559
+msgid "Dependency Updated"
+msgstr "ä¾èµå级"
-msgid "Keeping included package %s"
-msgstr "ä¿æå·²å
å«çå
%s"
+#: ../output.py:560
+msgid "Replaced"
+msgstr "æ¿ä»£"
-msgid "Key import failed (code %d)"
-msgstr "导å
¥å¯é¥å¤±è´¥ (ä»£å· %d)"
+#: ../output.py:618
+#, python-format
+msgid ""
+"\n"
+" Current download cancelled, %sinterrupt (ctrl-c) again%s within %s%s%s "
+"seconds to exit.\n"
+msgstr ""
+"\n"
+" å½åä¸è½½åæ¶, %s ä¸æ (ctrl-c) å次 %s å°å¨%s%s%s ç§å
éåº.\n"
-msgid "Key imported successfully"
-msgstr "导å
¥å¯é¥æå"
+#: ../output.py:628
+msgid "user interrupt"
+msgstr "ç¨æ·ä¸æ"
-msgid "License : %s"
-msgstr "许å¯è¯ : %s"
+#: ../output.py:639
+msgid "installed"
+msgstr "å·²å®è£
"
-msgid "List a package or groups of packages"
-msgstr "ååºä¸ä¸ªå
ææç»çå
"
+#: ../output.py:640
+msgid "updated"
+msgstr "å级"
-msgid "List a package's dependencies"
-msgstr "ååºå
ä¾èµç¸å
³"
+#: ../output.py:641
+msgid "obsoleted"
+msgstr "å·²åºå¼"
-msgid "List available package groups"
-msgstr "ååºå½åçç»"
+#: ../output.py:642
+msgid "erased"
+msgstr "å é¤"
-msgid "Loaded plugins: "
-msgstr "è½½å
¥æ件: "
+#: ../output.py:646
+#, python-format
+msgid "---> Package %s.%s %s:%s-%s set to be %s"
+msgstr "---> å
%s.%s %s:%s-%s 设置为 %s "
-msgid "Loading \"%s\" plugin"
-msgstr "è½½å
¥ \"%s\" æ件"
+#: ../output.py:653
+msgid "--> Running transaction check"
+msgstr "-->è¿è¡å¤çæ£æ¥"
-msgid "Making cache files for all metadata files."
-msgstr "å°ææçå
æ°æ®æ件çæç¼åæ件."
+#: ../output.py:658
+msgid "--> Restarting Dependency Resolution with new changes."
+msgstr "--> 为æ°å
éæ°å¯å¨è§£å³ä¾èµé®é¢"
-msgid "Mar"
-msgstr "Mar"
+#: ../output.py:663
+msgid "--> Finished Dependency Resolution"
+msgstr "--> å®æä¾èµæ§æ£æ¥"
-msgid "Marking %s as an update to %s"
-msgstr "æ å¿ %s å°è¢«æ´æ°ä¸º %s"
+#: ../output.py:668
+#, python-format
+msgid "--> Processing Dependency: %s for package: %s"
+msgstr "--> è¿ç¨ä¾èµ: %s ä¾èµäºå
: %s"
-msgid "Marking %s to be installed"
-msgstr "æ å¿ %s å°è¢«å®è£
"
+#: ../output.py:673
+#, python-format
+msgid "--> Unresolved Dependency: %s"
+msgstr "--> 没æ解å³çä¾èµ: %s"
-msgid "Matched %s to require for %s"
-msgstr "æ å¿%s è¦æ± %s"
+#: ../output.py:679
+#, python-format
+msgid "--> Processing Conflict: %s conflicts %s"
+msgstr "--> è¿ç¨å²çª: %s å²çªäº %s"
-msgid "Matched from:"
-msgstr "å¹é
æ¥èªäº:"
+#: ../output.py:682
+msgid "--> Populating transaction set with selected packages. Please wait."
+msgstr "--> æ£å¨å¤çå·²éæ©çå
ï¼è¯·ç¨åã"
-msgid "Matching packages for package list to user args"
-msgstr "ä»ç¨æ·çå
å表ä¸å¹é
å
"
+#: ../output.py:686
+#, python-format
+msgid "---> Downloading header for %s to pack into transaction set."
+msgstr "--->为 %sä¸è½½å¤´æ件以便äºè®¾ç½®å¤ç."
-msgid "May"
-msgstr "Mai"
+#: ../yumcommands.py:36
+msgid "You need to be root to perform this command."
+msgstr "ä½ éè¦root身份æ§è¡æ¤å½ä»¤."
-msgid "Member: %s"
-msgstr "æå: %s"
+#: ../yumcommands.py:43
+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"
+"ä½ å·²ç»æ¿æ´»éè¿GPGå¯é¥éªè¯å
ï¼è¿æ¯ä¸ªå¥½ä¸è¥¿ã \n"
+"ç¶èï¼ä½ 没æå®è£
ä»»ä½çGPGå
¬é¥ï¼ä½ éè¦ä¸è½½ï¼\n"
+"å¦æä½ è¦å®è£
å
çå¯é¥\n"
+"ä½ å¯ä»¥æ§è¡ä¸é¢çå½ä»¤:\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"
-msgid "Metadata Cache Created"
-msgstr "åæ°æ®ç¼å已建ç«"
+#: ../yumcommands.py:63
+#, python-format
+msgid "Error: Need to pass a list of pkgs to %s"
+msgstr "é误: éè¦ä¼ è¾å¨å表çå
å°%s"
-msgid "Missing Dependency: %s is needed by package %s"
-msgstr "丢失çä¾èµç¸å
³: %s 被å
%s æéè¦"
+#: ../yumcommands.py:69
+msgid "Error: Need an item to match"
+msgstr "é误ï¼éè¦ç»å¾®çå¹é
"
-msgid "Mode for pkg providing %s: %s"
-msgstr "Mode for pkg providing %s: %s"
+#: ../yumcommands.py:75
+msgid "Error: Need a group or list of groups"
+msgstr "é误ï¼éè¦ç»æç»çå表"
-msgid "Mode is %s for provider of %s: %s"
-msgstr "Mode is %s for provider of %s: %s"
+#: ../yumcommands.py:84
+#, python-format
+msgid "Error: clean requires an option: %s"
+msgstr "Error: clean requires an option: %s"
-msgid "More than one identical match in sack for %s"
-msgstr "More than one identical match in sack for %s"
+#: ../yumcommands.py:89
+#, python-format
+msgid "Error: invalid clean argument: %r"
+msgstr "Error: invalid clean argument: %r"
-msgid "Name : %s"
-msgstr "å称 : %s"
+#: ../yumcommands.py:102
+msgid "No argument to shell"
+msgstr "没æåæ°æä¾ç»shell"
-msgid "Needed Require has already been looked up, cheating"
-msgstr "Needed Require has already been looked up, cheating"
+#: ../yumcommands.py:105
+#, python-format
+msgid "Filename passed to shell: %s"
+msgstr "Filename passed to shell: %s"
-msgid "Needed Require is not a package name. Looking up: %s"
-msgstr "Needed Require is not a package name. Looking up: %s"
+#: ../yumcommands.py:109
+#, python-format
+msgid "File %s given as argument to shell does not exist."
+msgstr "File %s given as argument to shell does not exist."
-msgid "No Group named %s exists"
-msgstr "没æåç°ç» %s "
+#: ../yumcommands.py:115
+msgid "Error: more than one file given as argument to shell."
+msgstr "Error: more than one file given as argument to shell."
-msgid "No Groups Available in any repository"
-msgstr "å¨ç°æçä»åºä¸æ²¡æç»å¯è¢«æä¾"
+#: ../yumcommands.py:156
+msgid "PACKAGE..."
+msgstr "å
..."
-msgid "No Groups on which to run command"
-msgstr "没æç»å¯ä»¥è¿è¡çå½ä»¤"
+#: ../yumcommands.py:159
+msgid "Install a package or packages on your system"
+msgstr "å®è£
ä¸ä¸ªæå¤ä¸ªè½¯ä»¶å
å¨ä½ çç³»ç»"
-msgid "No Match for argument: %s"
-msgstr "没æå¹é
çåæ°: %s"
+#: ../yumcommands.py:168
+msgid "Setting up Install Process"
+msgstr "设置å®è£
è¿ç¨"
-msgid "No Matches found"
-msgstr "没æå¹é
åç°"
+#: ../yumcommands.py:179
+msgid "[PACKAGE...]"
+msgstr "[å
...]"
-msgid "No Package Found for %s"
-msgstr "没æåç°å
%s"
+#: ../yumcommands.py:182
+msgid "Update a package or packages on your system"
+msgstr "æ´æ°ä¸ä¸ªæå¤ä¸ªå
å¨ä½ çç³»ç»"
-msgid "No Package found for %s"
-msgstr "没æåç°å
%s"
+#: ../yumcommands.py:190
+msgid "Setting up Update Process"
+msgstr "设置æ´æ°è¿ç¨"
-msgid "No Packages Provided"
-msgstr "没æå¯æä¾çå
"
+#: ../yumcommands.py:204
+msgid "Display details about a package or group of packages"
+msgstr "æ¾ç¤ºå
³äºå
æä¸ç»å
çç»èä¿¡æ¯"
-msgid "No Packages marked for Update"
-msgstr "没æå
æ å¿ä¸ºå级"
+#: ../yumcommands.py:212
+msgid "Installed Packages"
+msgstr "å·²ç»å®è£
çå
"
-msgid "No Packages marked for removal"
-msgstr "没æå
æ å¿ä¸ºå é¤"
+#: ../yumcommands.py:213
+msgid "Available Packages"
+msgstr "å·²ç»æä¾çå
"
-msgid "No argument to shell"
-msgstr "没æåæ°æä¾ç»shell"
+#: ../yumcommands.py:214
+msgid "Extra Packages"
+msgstr "æ©å±çå
"
-msgid "No group named %s exists"
-msgstr "没æç»å为 %s "
+#: ../yumcommands.py:215
+msgid "Updated Packages"
+msgstr "æ´æ°è¿çå
"
-msgid "No header - huh?"
-msgstr "没æ头æ件--ï¼ï¼?"
+#: ../yumcommands.py:221 ../yumcommands.py:225
+msgid "Obsoleting Packages"
+msgstr "åºå¼ä¸çå
"
-msgid "No help available for %s"
-msgstr "没æå
³äº %s ç帮å©"
+#: ../yumcommands.py:226
+msgid "Recently Added Packages"
+msgstr "è¿ææ·»å çå
"
+#: ../yumcommands.py:232
msgid "No matching Packages to list"
msgstr "å表ä¸æ²¡æå¹é
çå
"
-msgid "No other %s installed, adding to list for potential install"
-msgstr "No other %s installed, adding to list for æ½å¨çinstall"
-
-msgid "No package %s available."
-msgstr "å
%s ä¸å¯æä¾."
+#: ../yumcommands.py:246
+msgid "List a package or groups of packages"
+msgstr "ååºä¸ä¸ªå
ææç»çå
"
-msgid "No package matched to remove"
-msgstr "没æå¹é
çå
å é¤"
+#: ../yumcommands.py:258
+msgid "Remove a package or packages from your system"
+msgstr "移é¤ä¸ä¸ªæå¤ä¸ªå
ä»ä½ çç³»ç»"
-msgid "No package named %s available to be installed"
-msgstr "没æå称为 %s å
å¯ä¾å®è£
"
+#: ../yumcommands.py:266
+msgid "Setting up Remove Process"
+msgstr "设置å é¤è¿ç¨"
-msgid "No package(s) available to install"
-msgstr "没æå
å¯ä¾å®è£
."
+#: ../yumcommands.py:278
+msgid "Setting up Group Process"
+msgstr "设置ç»è¿ç¨"
-msgid "No packages in any requested group available to install or update"
-msgstr "没æå
å¨æè¦æ±çç»ä¸å¯æä¾å®è£
æå级"
+#: ../yumcommands.py:284
+msgid "No Groups on which to run command"
+msgstr "没æç»å¯ä»¥è¿è¡çå½ä»¤"
-msgid "No packages to remove from groups"
-msgstr "No packages to remove from groups"
+#: ../yumcommands.py:297
+msgid "List available package groups"
+msgstr "ååºå½åçç»"
-msgid "No plugin match for: %s"
-msgstr "没ææ件å¯å¹é
: %s"
+#: ../yumcommands.py:314
+msgid "Install the packages in a group on your system"
+msgstr "ä»ç»éå®è£
软件å
å°ä½ çç³»ç»"
-msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
-msgstr "ä¸å¯æ´æ°æ©å·²è¢«åºå¼çå
: %s.%s %s:%s-%s"
+#: ../yumcommands.py:336
+msgid "Remove the packages in a group from your system"
+msgstr "å¨ä¸ä¸ªç»ä¸ç§»é¤å
ä»æ¨çç³»ç»"
-msgid "Not installing key"
-msgstr "没æå®è£
å¯é¥"
+#: ../yumcommands.py:360
+msgid "Display details about a package group"
+msgstr "æ¾ç¤ºå
³äºå
ç»çç»è"
-msgid "Nothing matches %s.%s %s:%s-%s from update"
-msgstr "æ æ³å¹é
%s.%s %s:%s-%s ä»æ´æ°ä¸"
+#: ../yumcommands.py:384
+msgid "Generate the metadata cache"
+msgstr "çæåæ°æ®ç¼å"
-msgid "Nothing specified to install"
-msgstr "没ææå®å®è£
"
+#: ../yumcommands.py:390
+msgid "Making cache files for all metadata files."
+msgstr "å°ææçå
æ°æ®æ件çæç¼åæ件."
-msgid "Nothing to do"
-msgstr "æ äºå¯å"
+#: ../yumcommands.py:391
+msgid "This may take a while depending on the speed of this computer"
+msgstr "è¿ä¼å ç¨ä¸æ®µæ¶é´ï¼å
·ä½å°åå³äºè¿å°è®¡ç®æºçé度"
-msgid "Nov"
-msgstr "Nov"
+#: ../yumcommands.py:412
+msgid "Metadata Cache Created"
+msgstr "åæ°æ®ç¼å已建ç«"
-msgid "Obsoleted"
-msgstr "å·²åºå¼"
+#: ../yumcommands.py:426
+msgid "Remove cached data"
+msgstr "å é¤ç¼åæ°æ®"
-msgid "Obsoleting Packages"
-msgstr "åºå¼ä¸çå
"
+#: ../yumcommands.py:447
+msgid "Find what package provides the given value"
+msgstr "Find what package provides the given value"
-msgid "Oct"
-msgstr "åæ"
+#: ../yumcommands.py:467
+msgid "Check for available package updates"
+msgstr "æ£æ¥å¯æä¾çå
å级"
-msgid "Options Error: %s"
-msgstr "å±æ§é误: %s"
+#: ../yumcommands.py:490
+msgid "Search package details for the given string"
+msgstr "æ¥æ¾å
ç»èå±
ç»å®çå符串"
-msgid "PACKAGE..."
-msgstr "å
..."
+#: ../yumcommands.py:496
+msgid "Searching Packages: "
+msgstr "æ¥è¯¢å
:"
-msgid "Package"
-msgstr "å
"
+#: ../yumcommands.py:513
+msgid "Update packages taking obsoletes into account"
+msgstr "Update packages taking obsoletes into account"
-msgid "Package %s already installed and latest version"
-msgstr "å
%s å·²å®è£
并ä¸æ¯ææ°çæ¬"
+#: ../yumcommands.py:522
+msgid "Setting up Upgrade Process"
+msgstr "设置å级è¿ç¨"
-msgid "Package %s is allowed multiple installs, skipping"
-msgstr "å
%s 被å
许å¤æ¹å¼å®è£
ï¼å¿½ç¥"
+#: ../yumcommands.py:536
+msgid "Install a local RPM"
+msgstr "å®è£
æ¬å° RPM"
-msgid "Package %s is already installed, skipping"
-msgstr "å
%s æ©å·²å®è£
ï¼å¿½ç¥"
+#: ../yumcommands.py:545
+msgid "Setting up Local Package Process"
+msgstr "设置æ¬å°å
è¿ç¨"
-msgid "Package %s is not signed"
-msgstr "å
%s æ ç¾å认è¯"
+#: ../yumcommands.py:564
+msgid "Determine which package provides the given dependency"
+msgstr "å³å®åªä¸ªå
æä¾äºç»å®çä¾èµ"
-msgid "Package %s not installed, cannot update it. Run yum install to install it instead."
-msgstr "å
%s 没æå®è£
, ä¸è½å®è£
ã请éç¨yum install å®è£
å®ã"
+#: ../yumcommands.py:567
+msgid "Searching Packages for Dependency:"
+msgstr "为ä¾èµç¸å
³æ¥æ¾å
:"
-msgid "Package Object was not a package object instance"
-msgstr "Package Object was not a package object instance"
+#: ../yumcommands.py:581
+msgid "Run an interactive yum shell"
+msgstr "è¿è¡äº¤äºå¼çyum shell"
-msgid "Package does not match checksum"
-msgstr "å
ä¸å¹é
æ ¡éªç»æ"
+#: ../yumcommands.py:587
+msgid "Setting up Yum Shell"
+msgstr "设置Yum-Shell yum交äºå¼ç¯å¢"
-msgid "Package does not match intended download"
-msgstr "Package does not match intended download."
+#: ../yumcommands.py:605
+msgid "List a package's dependencies"
+msgstr "ååºå
ä¾èµç¸å
³"
-msgid "Package is already obsoleted: %s.%s %s:%s-%s"
-msgstr "å
å·²ç»åºå¼: %s.%s %s:%s-%s"
+#: ../yumcommands.py:611
+msgid "Finding dependencies: "
+msgstr "æ¾å°ä¾èµ:"
-msgid "Package matching %s already installed. Checking for update."
-msgstr "å¹é
å
%s å·²ç»å®è£
. æ£æ¥æ´æ°."
+#: ../yumcommands.py:627
+msgid "Display the configured software repositories"
+msgstr "æ¾ç¤ºè½¯ä»¶ä»åºçé
ç½®"
-msgid "Package tuple %s could not be found in packagesack"
-msgstr "å
å
ç» %s ä¸è½å¨packagesackä¸åç°"
+#: ../yumcommands.py:645
+msgid "repo id"
+msgstr "Repo-å·"
-msgid "Package(s) to install"
-msgstr "å
å°å®è£
"
+#: ../yumcommands.py:645
+msgid "repo name"
+msgstr "Repo-å称:"
-msgid "Package: %s - already in transaction set"
-msgstr "å®è£
å
: %s - äºå¡å¤ç已设置"
+#: ../yumcommands.py:645
+msgid "status"
+msgstr "ç¶æ"
-msgid "Parsing package install arguments"
-msgstr "åæå®è£
åæ°çè¯æ³"
+#: ../yumcommands.py:651
+msgid "enabled"
+msgstr "æ¿æ´»"
-msgid "Please report this error in bugzilla"
-msgstr "请æ¥åè¿ä¸ªéè¯¯ç» Bugzilla"
+#: ../yumcommands.py:654
+msgid "disabled"
+msgstr "ç¦æ"
-msgid "Plugin \"%s\" doesn't specify required API version"
-msgstr "Plugin \"%s\" 没ææå®å¿
è¦çAPIçæ¬"
+#: ../yumcommands.py:671
+msgid "Display a helpful usage message"
+msgstr "æ¾ç¤ºå¸®å©ç¨æ³ä¿¡æ¯"
-msgid "Plugin \"%s\" requires API %s. Supported API is %s."
-msgstr "Plugin \"%s\" éè¦ API %s. æ¯æç API 为 %s."
+#: ../yumcommands.py:705
+#, python-format
+msgid "No help available for %s"
+msgstr "没æå
³äº %s ç帮å©"
-msgid "Potential Provider: %s"
-msgstr " æ½å¨çæä¾è
: %s"
+#: ../yumcommands.py:710
+msgid ""
+"\n"
+"\n"
+"aliases: "
+msgstr ""
+"\n"
+"\n"
+"å¤éå«å: "
-msgid "Potential match for %s from %s"
-msgstr "Potential match for %s from %s"
+#: ../yumcommands.py:712
+msgid ""
+"\n"
+"\n"
+"alias: "
+msgstr ""
+"\n"
+"\n"
+"å«å: "
-msgid "Potential resolving package %s has newer instance in ts."
-msgstr "Potential resolving package %s has newer instance in ts."
+#: ../yumcommands.py:741
+msgid "Setting up Reinstall Process"
+msgstr "设置éæ°å®è£
è¿ç¨"
-msgid "Potential resolving package %s has newer instance installed."
-msgstr "Potential resolving package %s has newer instance installed."
+#: ../yumcommands.py:755
+msgid "reinstall a package"
+msgstr "éæ°å®è£
ä¸ä¸ªå
"
-msgid "Problem in reinstall: no package matched to install"
-msgstr "Problem in reinstall: no package matched to install"
+#: ../yummain.py:41
+msgid ""
+"\n"
+"\n"
+"Exiting on user cancel"
+msgstr ""
+"\n"
+"\n"
+"ç¨æ·åæ¶èéåº"
-msgid "Problem in reinstall: no package matched to remove"
-msgstr "Problem in reinstall: no package matched to remove"
+#: ../yummain.py:47
+msgid ""
+"\n"
+"\n"
+"Exiting on Broken Pipe"
+msgstr ""
+"\n"
+"\n"
+"管éæåèéåº"
-msgid "Problem opening package %s"
-msgstr "æå¼å
%s åºç°é®é¢"
+#: ../yummain.py:105
+msgid ""
+"Another app is currently holding the yum lock; waiting for it to exit..."
+msgstr "å¦å¤ä¸ä¸ªåºç¨ç¨åºæ£å¨éç¨yuméï¼çå¾
å
¶éåº ... ..."
-msgid "Provides-match: %s"
-msgstr "Provides-match: %s"
+#: ../yummain.py:132 ../yummain.py:171
+#, python-format
+msgid "Error: %s"
+msgstr "é误: %s"
-msgid "Public key for %s is not installed"
-msgstr "ç» %s çå
¬é¥æ²¡æå®è£
"
+#: ../yummain.py:142 ../yummain.py:178
+#, python-format
+msgid "Unknown Error(s): Exit Code: %d:"
+msgstr "è«åçé误: éåºä»£ç ä¸ºï¼ %d:"
-msgid "Public key for %s is not trusted"
-msgstr "ç» %s çå
¬é¥ä¸å¯ä¿¡ä»»"
+#. Depsolve stage
+#: ../yummain.py:149
+msgid "Resolving Dependencies"
+msgstr "解å³ä¾èµç¸å
³"
-msgid "RPM %s fails md5 check"
-msgstr "RPM %s md5ç æ ¡éªå¤±è´¥"
+#: ../yummain.py:184
+msgid ""
+"\n"
+"Dependencies Resolved"
+msgstr ""
+"\n"
+"ä¾èµæ§è§£å³"
-msgid "Reading Local RPMDB"
-msgstr "读å
¥æ¬å°RPMDB"
+#: ../yummain.py:198
+msgid "Complete!"
+msgstr "æåä½ !æåå®æï¼"
-msgid "Reading repository metadata in from local files"
-msgstr "ä»æ¬å°æ件读å
¥ä»åºå
æ°æ®"
+#: ../yummain.py:245
+msgid ""
+"\n"
+"\n"
+"Exiting on user cancel."
+msgstr ""
+"\n"
+"\n"
+"ç¨æ·åæ¶èéåº"
-msgid "Recently Added Packages"
-msgstr "è¿ææ·»å çå
"
+#: ../yum/depsolve.py:82
+msgid "doTsSetup() will go away in a future version of Yum.\n"
+msgstr "doTsSetup() å°å¨æªæ¥çYUMçæ¬ä¸æ¶å¤±.\n"
-msgid "Reducing %s to included packages only"
-msgstr "åå° %s æä»
å
å«çå
"
+#: ../yum/depsolve.py:95
+msgid "Setting up TransactionSets before config class is up"
+msgstr "å¨configç±»å¯ç¨ä¹å设置äºå¡å¤ç"
-msgid ""
-"Refusing to automatically import keys when running unattended.\n"
-"Use \"-y\" to override."
-msgstr ""
-"å½è¿è¡unattendedæ¶æç»èªå¨å¯¼å
¥å¯é¥.\n"
-"ç¨ \"-y\" æ¥è¦ç"
+#: ../yum/depsolve.py:136
+#, python-format
+msgid "Invalid tsflag in config file: %s"
+msgstr "é
ç½®æ件: %sä¸çtsflagæ¯æ æç"
-msgid "Release : %s"
-msgstr "åè¡ : %s"
+#: ../yum/depsolve.py:147
+#, python-format
+msgid "Searching pkgSack for dep: %s"
+msgstr "æ¥æ¾pkgSack 为ä¾èµ: %s"
-msgid "Remove a package or packages from your system"
-msgstr "移é¤ä¸ä¸ªæå¤ä¸ªå
ä»ä½ çç³»ç»"
+#: ../yum/depsolve.py:170
+#, python-format
+msgid "Potential match for %s from %s"
+msgstr "Potential match for %s from %s"
-msgid "Remove cached data"
-msgstr "å é¤ç¼åæ°æ®"
+#: ../yum/depsolve.py:178
+#, python-format
+msgid "Matched %s to require for %s"
+msgstr "æ å¿%s è¦æ± %s"
-msgid "Remove the packages in a group from your system"
-msgstr "å¨ä¸ä¸ªç»ä¸ç§»é¤å
ä»æ¨çç³»ç»"
+#: ../yum/depsolve.py:219
+#, python-format
+msgid "Member: %s"
+msgstr "æå: %s"
-msgid "Removed"
-msgstr "å·²å é¤"
+#: ../yum/depsolve.py:233 ../yum/depsolve.py:696
+#, python-format
+msgid "%s converted to install"
+msgstr "%s 已转æ¢çå°å®è£
"
-msgid "Removing"
-msgstr "æ£å¨å é¤"
+#: ../yum/depsolve.py:240
+#, python-format
+msgid "Adding Package %s in mode %s"
+msgstr "æ·»å å
%s å¨ %s ç模å¼ä¸"
+#: ../yum/depsolve.py:250
+#, python-format
msgid "Removing Package %s"
msgstr "æ£å¨å é¤å
%s"
-msgid "Removing for dependencies"
-msgstr "为ä¾èµç§»é¤"
+#: ../yum/depsolve.py:261
+#, python-format
+msgid "%s requires: %s"
+msgstr "%s éè¦: %s"
-msgid "Removing unmatched package %s"
-msgstr "移é¤ä¸å¹é
çå
ï¼ %s"
+#: ../yum/depsolve.py:312
+msgid "Needed Require has already been looked up, cheating"
+msgstr "Needed Require has already been looked up, cheating"
-msgid "Repackage"
-msgstr "éæ°æå
"
+#: ../yum/depsolve.py:322
+#, python-format
+msgid "Needed Require is not a package name. Looking up: %s"
+msgstr "Needed Require is not a package name. Looking up: %s"
-msgid "Replaced"
-msgstr "æ¿ä»£"
+#: ../yum/depsolve.py:329
+#, python-format
+msgid "Potential Provider: %s"
+msgstr " æ½å¨çæä¾è
: %s"
-msgid "Repo : %s"
-msgstr "Repo : %s"
+#: ../yum/depsolve.py:352
+#, python-format
+msgid "Mode is %s for provider of %s: %s"
+msgstr "Mode is %s for provider of %s: %s"
-msgid "Repository"
-msgstr "ä»åº"
+#: ../yum/depsolve.py:356
+#, python-format
+msgid "Mode for pkg providing %s: %s"
+msgstr "Mode for pkg providing %s: %s"
-msgid "Repository %r is missing name in configuration, using id"
-msgstr "ä»åº %r 丢失äºååå¨é
ç½®æ件ä¸ï¼ç¨id代æ¿"
+#: ../yum/depsolve.py:360
+#, python-format
+msgid "TSINFO: %s package requiring %s marked as erase"
+msgstr "TSINFO: %s package requiring %s marked as erase"
-msgid "Resolving Dependencies"
-msgstr "解å³ä¾èµç¸å
³"
+#: ../yum/depsolve.py:372
+#, python-format
+msgid "TSINFO: Obsoleting %s with %s to resolve dep."
+msgstr "TSINFO: Obsoleting %s with %s to resolve dep."
+
+#: ../yum/depsolve.py:375
+#, python-format
+msgid "TSINFO: Updating %s to resolve dep."
+msgstr "TSINFO: Updating %s to resolve dep."
+#: ../yum/depsolve.py:378
+#, python-format
+msgid "Cannot find an update path for dep for: %s"
+msgstr "Cannot find an update path for dep for: %s"
+
+#: ../yum/depsolve.py:388
+#, python-format
+msgid "Unresolvable requirement %s for %s"
+msgstr "没æ解å³çéæ± %s 为 %s"
+
+#. is it already installed?
+#: ../yum/depsolve.py:434
+#, python-format
+msgid "%s is in providing packages but it is already installed, removing."
+msgstr "%s å¨å设çå
ä¸ï¼ä½æ¯å·²ç»å®è£
ï¼å é¤ä¸...."
+
+#: ../yum/depsolve.py:449
+#, python-format
+msgid "Potential resolving package %s has newer instance in ts."
+msgstr "Potential resolving package %s has newer instance in ts."
+
+#: ../yum/depsolve.py:460
+#, python-format
+msgid "Potential resolving package %s has newer instance installed."
+msgstr "Potential resolving package %s has newer instance installed."
+
+#: ../yum/depsolve.py:468 ../yum/depsolve.py:527
+#, python-format
+msgid "Missing Dependency: %s is needed by package %s"
+msgstr "丢失çä¾èµç¸å
³: %s 被å
%s æéè¦"
+
+#: ../yum/depsolve.py:481
+#, python-format
+msgid "%s already in ts, skipping this one"
+msgstr "%s å·²å¨å¤çä¸, 忽ç¥æ¤é¡¹"
+
+#: ../yum/depsolve.py:510
+#, python-format
+msgid ""
+"Failure finding best provider of %s for %s, exceeded maximum loop length"
+msgstr ""
+"Failure finding best provider of %s for %s, exceeded maximum loop length"
+
+#: ../yum/depsolve.py:537
+#, python-format
+msgid "TSINFO: Marking %s as update for %s"
+msgstr "TSINFO: Marking %s as update for %s"
+
+#: ../yum/depsolve.py:544
+#, python-format
+msgid "TSINFO: Marking %s as install for %s"
+msgstr "TSINFO: Marking %s as install for %s"
+
+#: ../yum/depsolve.py:635 ../yum/depsolve.py:714
+msgid "Success - empty transaction"
+msgstr "æå --空çäºå¡å¤ç"
+
+#: ../yum/depsolve.py:673 ../yum/depsolve.py:686
msgid "Restarting Loop"
msgstr "éæ°å¯å¨ç¯å"
-msgid "Retrieving GPG key from %s"
-msgstr "ä» %s ä¸æ¢å¤GPGå¯é¥"
+#: ../yum/depsolve.py:702
+msgid "Dependency Process ending"
+msgstr "ä¾èµè¿ç¨å®æä¸"
-msgid "Run an interactive yum shell"
-msgstr "è¿è¡äº¤äºå¼çyum shell"
+#: ../yum/depsolve.py:708
+#, python-format
+msgid "%s from %s has depsolving problems"
+msgstr "%s å·²ä»%s 解å³äºé®é¢"
-msgid "Running Transaction"
-msgstr "è¿è¡äºå¡å¤ç"
+#: ../yum/depsolve.py:715
+msgid "Success - deps resolved"
+msgstr "æå --ä¾èµæ§è§£å³"
-msgid "Running Transaction Test"
-msgstr "è¿è¡æµè¯äºå¡å¤ç"
+#: ../yum/depsolve.py:729
+#, python-format
+msgid "Checking deps for %s"
+msgstr "为 %s æ£æ¥ä¾èµæ§"
-msgid "Running rpm_check_debug"
-msgstr "è¿è¡ rpm_check_debug "
+#: ../yum/depsolve.py:782
+#, python-format
+msgid "looking for %s as a requirement of %s"
+msgstr "æ¥æ¾ %s å¨è¦æ±ç %s ä¸"
+
+#: ../yum/depsolve.py:933
+#, python-format
+msgid "Comparing best: %s to po: %s"
+msgstr "Vergleiche besseres: %s zu po: %s"
+#: ../yum/depsolve.py:937
+#, python-format
msgid "Same: best %s == po: %s"
msgstr "Same: best %s == po: %s"
-msgid "Search package details for the given string"
-msgstr "æ¥æ¾å
ç»èå±
ç»å®çå符串"
-
-msgid "Searching %d packages"
-msgstr "æ¥è¯¢ %d 个å
"
-
-msgid "Searching Packages for Dependency:"
-msgstr "为ä¾èµç¸å
³æ¥æ¾å
:"
+#: ../yum/depsolve.py:952 ../yum/depsolve.py:963
+#, python-format
+msgid "best %s obsoletes po: %s"
+msgstr "best %s obsoletes po: %s"
-msgid "Searching Packages: "
-msgstr "æ¥è¯¢å
:"
+#: ../yum/depsolve.py:955
+#, python-format
+msgid "po %s obsoletes best: %s"
+msgstr "po %s obsoletes best: %s"
-msgid "Searching pkgSack for dep: %s"
-msgstr "æ¥æ¾pkgSack 为ä¾èµ: %s"
+#: ../yum/depsolve.py:972 ../yum/depsolve.py:979 ../yum/depsolve.py:1036
+#, python-format
+msgid "better arch in po %s"
+msgstr "better arch in po %s"
-msgid "Sep"
-msgstr "Sep"
+#: ../yum/depsolve.py:988 ../yum/depsolve.py:1010
+#, python-format
+msgid "po %s shares a sourcerpm with %s"
+msgstr "po %s shares a sourcerpm with %s"
-msgid "Setting up Group Process"
-msgstr "设置ç»è¿ç¨"
+#: ../yum/depsolve.py:992 ../yum/depsolve.py:1015
+#, python-format
+msgid "best %s shares a sourcerpm with %s"
+msgstr "best %s shares a sourcerpm with %s"
-msgid "Setting up Install Process"
-msgstr "设置å®è£
è¿ç¨"
+#: ../yum/depsolve.py:999 ../yum/depsolve.py:1020
+#, python-format
+msgid "po %s shares more of the name prefix with %s"
+msgstr "po %s shares more of the name prefix with %s"
-msgid "Setting up Local Package Process"
-msgstr "设置æ¬å°å
è¿ç¨"
+#: ../yum/depsolve.py:1003 ../yum/depsolve.py:1029
+#, python-format
+msgid "po %s has a shorter name than best %s"
+msgstr "po %s has a shorter name than best %s"
-msgid "Setting up Package Sacks"
-msgstr "设置å
麻è¢"
+#: ../yum/depsolve.py:1025
+#, python-format
+msgid "bestpkg %s shares more of the name prefix with %s"
+msgstr "bestpkg %s shares more of the name prefix with %s"
-msgid "Setting up Reinstall Process"
-msgstr "设置éæ°å®è£
è¿ç¨"
+#: ../yum/__init__.py:119
+msgid "doConfigSetup() will go away in a future version of Yum.\n"
+msgstr "doConfigSetup() å°å¨æªæ¥çYUMçæ¬ä¸æ¶å¤±.\n"
-msgid "Setting up Remove Process"
-msgstr "设置å é¤è¿ç¨"
+#: ../yum/__init__.py:296
+#, python-format
+msgid "Repository %r is missing name in configuration, using id"
+msgstr "ä»åº %r 丢失äºååå¨é
ç½®æ件ä¸ï¼ç¨id代æ¿"
-msgid "Setting up TransactionSets before config class is up"
-msgstr "å¨configç±»å¯ç¨ä¹å设置äºå¡å¤ç"
+#: ../yum/__init__.py:332
+msgid "plugins already initialised"
+msgstr "æ件已ç»initialised"
-msgid "Setting up Update Process"
-msgstr "设置æ´æ°è¿ç¨"
+#: ../yum/__init__.py:339
+msgid "doRpmDBSetup() will go away in a future version of Yum.\n"
+msgstr "doRpmDBSetup() å°å¨æªæ¥çYUMçæ¬ä¸æ¶å¤±.\n"
-msgid "Setting up Upgrade Process"
-msgstr "设置å级è¿ç¨"
+#: ../yum/__init__.py:349
+msgid "Reading Local RPMDB"
+msgstr "读å
¥æ¬å°RPMDB"
-msgid "Setting up Yum Shell"
-msgstr "设置Yum-Shell yum交äºå¼ç¯å¢"
+#: ../yum/__init__.py:367
+msgid "doRepoSetup() will go away in a future version of Yum.\n"
+msgstr "doRepoSetup() å°å¨æªæ¥çYUMçæ¬ä¸æ¶å¤±.\n"
-msgid "Setting up repositories"
-msgstr "设置ä»åº"
+#: ../yum/__init__.py:387
+msgid "doSackSetup() will go away in a future version of Yum.\n"
+msgstr "doSackSetup() å°å¨æªæ¥çYUMçæ¬ä¸æ¶å¤±.\n"
-msgid "Size"
-msgstr "大å°"
+#: ../yum/__init__.py:404
+msgid "Setting up Package Sacks"
+msgstr "设置å
麻è¢"
-msgid "Size : %s"
-msgstr "å¤§å° : %s"
+#: ../yum/__init__.py:447
+#, python-format
+msgid "repo object for repo %s lacks a _resetSack method\n"
+msgstr "repo对象for repo %s ç¼ºå° a _resetSack æ¹æ³\n"
-msgid "Skip-broken round %i"
-msgstr "Skip-broken round %i"
+#: ../yum/__init__.py:448
+msgid "therefore this repo cannot be reset.\n"
+msgstr "å æ¤æ¤repoä¸è½å¤ä½.\n"
-msgid "Skip-broken took %i rounds "
-msgstr "Skip-broken took %i rounds"
+#: ../yum/__init__.py:453
+msgid "doUpdateSetup() will go away in a future version of Yum.\n"
+msgstr "doUpdateSetup() wird verschwinden in zukünfigen Version von Yum.\n"
-msgid "Success - deps resolved"
-msgstr "æå --ä¾èµæ§è§£å³"
+#: ../yum/__init__.py:465
+msgid "Building updates object"
+msgstr "建ç«å级对象"
-msgid "Success - empty transaction"
-msgstr "æå --空çäºå¡å¤ç"
+#: ../yum/__init__.py:496
+msgid "doGroupSetup() will go away in a future version of Yum.\n"
+msgstr "doGroupSetup()å°å¨æªæ¥çYUMçæ¬ä¸æ¶å¤±.\n"
-msgid "Summary : "
-msgstr "è¯æ³ : "
+#: ../yum/__init__.py:520
+msgid "Getting group metadata"
+msgstr "è·å¾ç»å
æ°æ®"
-msgid "TSINFO: %s package requiring %s marked as erase"
-msgstr "TSINFO: %s package requiring %s marked as erase"
+#: ../yum/__init__.py:546
+#, python-format
+msgid "Adding group file from repository: %s"
+msgstr "ä»ä»åº: %s ä¸æ·»å ç»æ件"
-msgid "TSINFO: Marking %s as install for %s"
-msgstr "TSINFO: Marking %s as install for %s"
+#: ../yum/__init__.py:555
+#, python-format
+msgid "Failed to add groups file for repository: %s - %s"
+msgstr "为ä»åºæ·»å ç»å¤±è´¥: %s - %s"
-msgid "TSINFO: Marking %s as update for %s"
-msgstr "TSINFO: Marking %s as update for %s"
+#: ../yum/__init__.py:561
+msgid "No Groups Available in any repository"
+msgstr "å¨ç°æçä»åºä¸æ²¡æç»å¯è¢«æä¾"
-msgid "TSINFO: Obsoleting %s with %s to resolve dep."
-msgstr "TSINFO: Obsoleting %s with %s to resolve dep."
+#: ../yum/__init__.py:611
+msgid "Importing additional filelist information"
+msgstr "æ£å¨å¯¼å
¥é¢å¤çæ件å表信æ¯"
-msgid "TSINFO: Updating %s to resolve dep."
-msgstr "TSINFO: Updating %s to resolve dep."
+#: ../yum/__init__.py:657
+#, python-format
+msgid "Skip-broken round %i"
+msgstr "Skip-broken round %i"
-msgid "Test Transaction Errors: "
-msgstr "æµè¯äºå¡å¤çé误"
+#: ../yum/__init__.py:680
+#, python-format
+msgid "Skip-broken took %i rounds "
+msgstr "Skip-broken took %i rounds"
+#: ../yum/__init__.py:681
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."
+"\n"
+"Packages skipped because of dependency problems:"
msgstr ""
-"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."
-
-msgid "There was an error calculating total download size"
-msgstr "There was an error calculating total download size"
+"\n"
+"å 为ä¾èµæ§é®é¢è忽ç¥çå
:"
-msgid "This may take a while depending on the speed of this computer"
-msgstr "è¿ä¼å ç¨ä¸æ®µæ¶é´ï¼å
·ä½å°åå³äºè¿å°è®¡ç®æºçé度"
+#: ../yum/__init__.py:685
+#, python-format
+msgid " %s from %s"
+msgstr " %s ä» %s"
-msgid "Total download size: %s"
-msgstr "æ»å
±ä¸è½½å¤§å°: %s"
+#: ../yum/__init__.py:774
+#, python-format
+msgid "Failed to remove transaction file %s"
+msgstr "移é¤å¤çæ件%s 失败"
-msgid "Total size: %s"
-msgstr "æ»å¤§å°: %s"
+#: ../yum/__init__.py:814
+#, python-format
+msgid "excluding for cost: %s from %s"
+msgstr "excluding for cost: %s from %s"
-msgid "Transaction Check Error:\n"
-msgstr "å¤çæ£æ¥é误:\n"
+#: ../yum/__init__.py:845
+msgid "Excluding Packages in global exclude list"
+msgstr "ä¸å
éå
å¨å
¨å±çæé¤çå表ä¸"
-msgid "Transaction Test Succeeded"
-msgstr "äºå¡å¤çæµè¯æå"
+#: ../yum/__init__.py:847
+#, python-format
+msgid "Excluding Packages from %s"
+msgstr "å¨ %s ä¸æé¤çå
"
-msgid "Trying other mirror."
-msgstr "å°è¯å
¶ä»éå."
+#: ../yum/__init__.py:875
+#, python-format
+msgid "Reducing %s to included packages only"
+msgstr "åå° %s æä»
å
å«çå
"
-msgid "Trying to run the transaction but nothing to do. Exiting."
-msgstr "å°è¯è¿è¡äºå¡å¤çä½æ¯ä»ä¹ä¹åä¸æï¼éåº."
+#: ../yum/__init__.py:880
+#, python-format
+msgid "Keeping included package %s"
+msgstr "ä¿æå·²å
å«çå
%s"
-msgid "Two or more plugins with the name \"%s\" exist in the plugin search path"
-msgstr "Two or more plugins with the name \"%s\" exist in the plugin search path"
+#: ../yum/__init__.py:886
+#, python-format
+msgid "Removing unmatched package %s"
+msgstr "移é¤ä¸å¹é
çå
ï¼ %s"
-msgid "URL : %s"
-msgstr "ç»ä¸èµæºå®ä½ç¬¦ : %s"
+#: ../yum/__init__.py:889
+msgid "Finished"
+msgstr "å®æ"
+#. Whoa. What the heck happened?
+#: ../yum/__init__.py:919
+#, python-format
msgid "Unable to check if PID %s is active"
msgstr "ä¸è½æ£æ¥å°PID %sæ¯å¦æ¿æ´»"
-msgid "Unable to find a suitable mirror."
-msgstr "ä¸è½åç°åéçéå."
+#. Another copy seems to be running.
+#: ../yum/__init__.py:923
+#, python-format
+msgid "Existing lock %s: another copy is running as pid %s."
+msgstr "éå·²è¢«ç¨ %s: å¦å¤çä¸ä¸ªå¤å¶æ£å¨è¿è¡å¨ PID为 %s."
-msgid "Unable to find configuration file for plugin %s"
-msgstr "ä¸è½æ¾å°æ件 %s çé
ç½®æ件 "
+#: ../yum/__init__.py:970 ../yum/__init__.py:977
+msgid "Package does not match intended download"
+msgstr "Package does not match intended download."
-msgid "Unknown Error(s): Exit Code: %d:"
-msgstr "è«åçé误: éåºä»£ç ä¸ºï¼ %d:"
+#: ../yum/__init__.py:991
+msgid "Could not perform checksum"
+msgstr "æ æ³æ§è¡æ ¡éªå"
-msgid "Unresolvable requirement %s for %s"
-msgstr "没æ解å³çéæ± %s 为 %s"
+#: ../yum/__init__.py:994
+msgid "Package does not match checksum"
+msgstr "å
ä¸å¹é
æ ¡éªç»æ"
-msgid "Update a package or packages on your system"
-msgstr "æ´æ°ä¸ä¸ªæå¤ä¸ªå
å¨ä½ çç³»ç»"
+#: ../yum/__init__.py:1036
+#, python-format
+msgid "package fails checksum but caching is enabled for %s"
+msgstr "å
æ ¡éªå¤±è´¥ä½æ¯ç¼å已为 %sæ¿æ´»"
-msgid "Update packages taking obsoletes into account"
-msgstr "Update packages taking obsoletes into account"
+#: ../yum/__init__.py:1042
+#, python-format
+msgid "using local copy of %s"
+msgstr "å¨æ¬å°å¤å¶ %s"
-msgid "Updated"
-msgstr "æ´æ°å®æ¯"
+#: ../yum/__init__.py:1061
+#, python-format
+msgid "Insufficient space in download directory %s to download"
+msgstr "ç®å½ %s没æ足å¤ç空é´ä¸è½½æ件"
-msgid "Updated Packages"
-msgstr "æ´æ°è¿çå
"
+#: ../yum/__init__.py:1094
+msgid "Header is not complete."
+msgstr "Header ä¸æ¯å®æ´ç."
-msgid "Updating"
-msgstr "æ£å¨å级"
+#: ../yum/__init__.py:1134
+#, python-format
+msgid ""
+"Header not in local cache and caching-only mode enabled. Cannot download %s"
+msgstr "Header并ä¸å¨æ¬å°ç¼åèä¸caching-only 模å¼è¢«æ¿æ´»ãä¸è½ä¸è½½ %s"
-msgid "Updating Everything"
-msgstr "å
¨é¨å级"
+#: ../yum/__init__.py:1189
+#, python-format
+msgid "Public key for %s is not installed"
+msgstr "ç» %s çå
¬é¥æ²¡æå®è£
"
-msgid "Updating for dependencies"
-msgstr "æ´æ°ä¾èµæ§"
+#: ../yum/__init__.py:1193
+#, python-format
+msgid "Problem opening package %s"
+msgstr "æå¼å
%s åºç°é®é¢"
-msgid "Version"
-msgstr "çæ¬"
+#: ../yum/__init__.py:1201
+#, python-format
+msgid "Public key for %s is not trusted"
+msgstr "ç» %s çå
¬é¥ä¸å¯ä¿¡ä»»"
-msgid "Version : %s"
-msgstr "çæ¬ : %s"
+#: ../yum/__init__.py:1205
+#, python-format
+msgid "Package %s is not signed"
+msgstr "å
%s æ ç¾å认è¯"
-msgid "Warning: Group %s does not exist."
-msgstr "æ示: ç» %s ä¸åå¨."
+#: ../yum/__init__.py:1243
+#, python-format
+msgid "Cannot remove %s"
+msgstr "æ æ³å é¤ %s "
-msgid "Warning: No matches found for: %s"
-msgstr "æ示 : 没æåç°å: %s å¹é
"
+#: ../yum/__init__.py:1247
+#, python-format
+msgid "%s removed"
+msgstr "%s å·²å é¤"
-msgid "You need to be root to perform this command."
-msgstr "ä½ éè¦root身份æ§è¡æ¤å½ä»¤."
+#: ../yum/__init__.py:1283
+#, python-format
+msgid "Cannot remove %s file %s"
+msgstr "æ æ³å é¤ %s æ件 %s"
-msgid "You need to give some command"
-msgstr "ä½ éè¦ç»åºå½ä»¤"
+#: ../yum/__init__.py:1287
+#, python-format
+msgid "%s file %s removed"
+msgstr "%s æ件 %s 已移é¤"
-msgid "[PACKAGE...]"
-msgstr "[å
...]"
+#: ../yum/__init__.py:1289
+#, python-format
+msgid "%d %s files removed"
+msgstr "%d %s æ件已移é¤"
-msgid "answer yes for all questions"
-msgstr "åçææçé®é¢ä¸ºæ¯"
+#: ../yum/__init__.py:1329
+#, python-format
+msgid "More than one identical match in sack for %s"
+msgstr "More than one identical match in sack for %s"
-msgid "be tolerant of errors"
-msgstr "be tolerant of errors"
+#: ../yum/__init__.py:1335
+#, python-format
+msgid "Nothing matches %s.%s %s:%s-%s from update"
+msgstr "æ æ³å¹é
%s.%s %s:%s-%s ä»æ´æ°ä¸"
-msgid "best %s obsoletes po: %s"
-msgstr "best %s obsoletes po: %s"
+#: ../yum/__init__.py:1543
+msgid ""
+"searchPackages() will go away in a future version of "
+"Yum. Use searchGenerator() instead. \n"
+msgstr ""
+"searchPackages() å°å¨YUMæªæ¥ççæ¬ä¸æ¶å¤±. ç¨ "
+"searchGenerator()æ¿ä»£. \n"
-msgid "best %s shares a sourcerpm with %s"
-msgstr "best %s shares a sourcerpm with %s"
+#: ../yum/__init__.py:1580
+#, python-format
+msgid "Searching %d packages"
+msgstr "æ¥è¯¢ %d 个å
"
-msgid "bestpkg %s shares more of the name prefix with %s"
-msgstr "bestpkg %s shares more of the name prefix with %s"
+#: ../yum/__init__.py:1584
+#, python-format
+msgid "searching package %s"
+msgstr "æ¥è¯¢å
ï¼ %s"
-msgid "better arch in po %s"
-msgstr "better arch in po %s"
+#: ../yum/__init__.py:1596
+msgid "searching in file entries"
+msgstr "searching in file entries"
-msgid "config file location"
-msgstr "config file location"
+#: ../yum/__init__.py:1603
+msgid "searching in provides entries"
+msgstr "å¨å¯æä¾çå
¥å£æ¥è¯¢"
-msgid "debugging output level"
-msgstr "è°è¯è¾åºçº§å«"
+#: ../yum/__init__.py:1633
+#, python-format
+msgid "Provides-match: %s"
+msgstr "Provides-match: %s"
-msgid "disable Yum plugins"
-msgstr "ç¦æyumæ件"
+#: ../yum/__init__.py:1702 ../yum/__init__.py:1720 ../yum/__init__.py:1748
+#: ../yum/__init__.py:1753 ../yum/__init__.py:1808 ../yum/__init__.py:1812
+#, python-format
+msgid "No Group named %s exists"
+msgstr "没æåç°ç» %s "
-msgid "disable exclude from main, for a repo or for everything"
-msgstr "disable exclude from main, for a repo or for everything"
+#: ../yum/__init__.py:1731 ../yum/__init__.py:1824
+#, python-format
+msgid "package %s was not marked in group %s"
+msgstr "å
%s å¨ç» %sä¸æ²¡æ被æ å¿"
-msgid "disable gpg signature checking"
-msgstr "ç¦æGPGéªè¯æ£æ¥"
+#: ../yum/__init__.py:1770
+#, python-format
+msgid "Adding package %s from group %s"
+msgstr "æ·»å å
%s ä»ç» %s ä¸"
-msgid "disable one or more repositories (wildcards allowed)"
-msgstr "ç¦æä¸ä¸ªæå¤ä¸ªä»åºï¼æ¯æéé
符ï¼"
+#: ../yum/__init__.py:1774
+#, python-format
+msgid "No package named %s available to be installed"
+msgstr "没æå称为 %s å
å¯ä¾å®è£
"
-msgid "disable plugins by name"
-msgstr "ç¨å称ç¦ææ件"
+#: ../yum/__init__.py:1849
+#, python-format
+msgid "Package tuple %s could not be found in packagesack"
+msgstr "å
å
ç» %s ä¸è½å¨packagesackä¸åç°"
-msgid "disabled"
-msgstr "ç¦æ"
+#: ../yum/__init__.py:1917 ../yum/__init__.py:1960
+msgid "Invalid versioned dependency string, try quoting it."
+msgstr "æ æçä¾èµå符串ï¼å°è¯éæ°å¼ç¨."
-msgid "doConfigSetup() will go away in a future version of Yum.\n"
-msgstr "doConfigSetup() å°å¨æªæ¥çYUMçæ¬ä¸æ¶å¤±.\n"
+#: ../yum/__init__.py:1919 ../yum/__init__.py:1962
+msgid "Invalid version flag"
+msgstr "æ æççæ¬æ å¿"
-msgid "doGroupSetup() will go away in a future version of Yum.\n"
-msgstr "doGroupSetup()å°å¨æªæ¥çYUMçæ¬ä¸æ¶å¤±.\n"
+#: ../yum/__init__.py:1934 ../yum/__init__.py:1938
+#, python-format
+msgid "No Package found for %s"
+msgstr "没æåç°å
%s"
-msgid "doRepoSetup() will go away in a future version of Yum.\n"
-msgstr "doRepoSetup() å°å¨æªæ¥çYUMçæ¬ä¸æ¶å¤±.\n"
+#: ../yum/__init__.py:2066
+msgid "Package Object was not a package object instance"
+msgstr "Package Object was not a package object instance"
-msgid "doRpmDBSetup() will go away in a future version of Yum.\n"
-msgstr "doRpmDBSetup() å°å¨æªæ¥çYUMçæ¬ä¸æ¶å¤±.\n"
+#: ../yum/__init__.py:2070
+msgid "Nothing specified to install"
+msgstr "没ææå®å®è£
"
-msgid "doSackSetup() will go away in a future version of Yum.\n"
-msgstr "doSackSetup() å°å¨æªæ¥çYUMçæ¬ä¸æ¶å¤±.\n"
+#. only one in there
+#: ../yum/__init__.py:2085
+#, python-format
+msgid "Checking for virtual provide or file-provide for %s"
+msgstr "Checking for virtual provide or file-provide for %s"
-msgid "doTsSetup() will go away in a future version of Yum.\n"
-msgstr "doTsSetup() å°å¨æªæ¥çYUMçæ¬ä¸æ¶å¤±.\n"
+#: ../yum/__init__.py:2091 ../yum/__init__.py:2380
+#, python-format
+msgid "No Match for argument: %s"
+msgstr "没æå¹é
çåæ°: %s"
-msgid "doUpdateSetup() will go away in a future version of Yum.\n"
-msgstr "doUpdateSetup() wird verschwinden in zukünfigen Version von Yum.\n"
+#. FIXME - this is where we could check to see if it already installed
+#. for returning better errors
+#: ../yum/__init__.py:2146
+msgid "No package(s) available to install"
+msgstr "没æå
å¯ä¾å®è£
."
-msgid "enable obsoletes processing during updates"
-msgstr "enable obsoletes processing during updates"
+#: ../yum/__init__.py:2158
+#, python-format
+msgid "Package: %s - already in transaction set"
+msgstr "å®è£
å
: %s - äºå¡å¤ç已设置"
-msgid "enable one or more repositories (wildcards allowed)"
-msgstr "æ¿æ´»ä¸ä¸ªæå¤ä¸ªä»åºï¼æ¯æéé
符ï¼"
+#: ../yum/__init__.py:2171
+#, python-format
+msgid "Package %s already installed and latest version"
+msgstr "å
%s å·²å®è£
并ä¸æ¯ææ°çæ¬"
-msgid "enabled"
-msgstr "æ¿æ´»"
+#: ../yum/__init__.py:2178
+#, python-format
+msgid "Package matching %s already installed. Checking for update."
+msgstr "å¹é
å
%s å·²ç»å®è£
. æ£æ¥æ´æ°."
-msgid "erased"
-msgstr "å é¤"
+#. update everything (the easy case)
+#: ../yum/__init__.py:2220
+msgid "Updating Everything"
+msgstr "å
¨é¨å级"
-msgid "error output level"
-msgstr "é误è¾åºçº§å«"
+#: ../yum/__init__.py:2304
+#, python-format
+msgid "Package is already obsoleted: %s.%s %s:%s-%s"
+msgstr "å
å·²ç»åºå¼: %s.%s %s:%s-%s"
-msgid "exclude package(s) by name or glob"
-msgstr "å¨å称æglobä¸å
å«å
ã"
+#: ../yum/__init__.py:2377
+#, python-format
+msgid "%s"
+msgstr "%s"
-msgid "excluding for cost: %s from %s"
-msgstr "excluding for cost: %s from %s"
+#: ../yum/__init__.py:2392
+msgid "No package matched to remove"
+msgstr "没æå¹é
çå
å é¤"
-msgid "installed"
-msgstr "å·²å®è£
"
+#: ../yum/__init__.py:2426
+#, python-format
+msgid "Cannot open file: %s. Skipping."
+msgstr "ä¸è½æå¼æ件: %s. è·³è¿."
-msgid "looking for %s as a requirement of %s"
-msgstr "æ¥æ¾ %s å¨è¦æ±ç %s ä¸"
+#: ../yum/__init__.py:2429
+#, python-format
+msgid "Examining %s: %s"
+msgstr " è¯æ %s: %s"
-msgid "maximum command wait time"
-msgstr "æ大åçå½ä»¤çå¾
æ¶é´"
+#: ../yum/__init__.py:2436
+#, python-format
+msgid ""
+"Package %s not installed, cannot update it. Run yum install to install it "
+"instead."
+msgstr "å
%s 没æå®è£
, ä¸è½å®è£
ã请éç¨yum install å®è£
å®ã"
-msgid "n"
-msgstr "n"
+#: ../yum/__init__.py:2468
+#, python-format
+msgid "Excluding %s"
+msgstr "ä¸å
æ¬ %s"
-msgid "no"
-msgstr "å¦"
+#: ../yum/__init__.py:2473
+#, python-format
+msgid "Marking %s to be installed"
+msgstr "æ å¿ %s å°è¢«å®è£
"
-msgid "obsoleted"
-msgstr "å·²åºå¼"
+#: ../yum/__init__.py:2479
+#, python-format
+msgid "Marking %s as an update to %s"
+msgstr "æ å¿ %s å°è¢«æ´æ°ä¸º %s"
-msgid "package %s was not marked in group %s"
-msgstr "å
%s å¨ç» %sä¸æ²¡æ被æ å¿"
+#: ../yum/__init__.py:2486
+#, python-format
+msgid "%s: does not update installed package."
+msgstr "%s: 没æå¯ä¾å级çå
."
-msgid "package fails checksum but caching is enabled for %s"
-msgstr "å
æ ¡éªå¤±è´¥ä½æ¯ç¼å已为 %sæ¿æ´»"
+#: ../yum/__init__.py:2504
+msgid "Problem in reinstall: no package matched to remove"
+msgstr "Problem in reinstall: no package matched to remove"
-msgid "package: %s"
-msgstr "å
: %s"
+#: ../yum/__init__.py:2515
+#, python-format
+msgid "Package %s is allowed multiple installs, skipping"
+msgstr "å
%s 被å
许å¤æ¹å¼å®è£
ï¼å¿½ç¥"
-msgid "plugins already initialised"
-msgstr "æ件已ç»initialised"
+#: ../yum/__init__.py:2522
+msgid "Problem in reinstall: no package matched to install"
+msgstr "Problem in reinstall: no package matched to install"
-msgid "po %s has a shorter name than best %s"
-msgstr "po %s has a shorter name than best %s"
+#: ../yum/__init__.py:2570
+#, python-format
+msgid "Retrieving GPG key from %s"
+msgstr "ä» %s ä¸æ¢å¤GPGå¯é¥"
-msgid "po %s obsoletes best: %s"
-msgstr "po %s obsoletes best: %s"
+#: ../yum/__init__.py:2576
+msgid "GPG key retrieval failed: "
+msgstr "GPGå¯é¥ä¿®å¤å¤±è´¥:"
-msgid "po %s shares a sourcerpm with %s"
-msgstr "po %s shares a sourcerpm with %s"
+#: ../yum/__init__.py:2589
+msgid "GPG key parsing failed: "
+msgstr "åæGPGå¯é¥å¤±è´¥: "
-msgid "po %s shares more of the name prefix with %s"
-msgstr "po %s shares more of the name prefix with %s"
+#: ../yum/__init__.py:2593
+#, python-format
+msgid "GPG key at %s (0x%s) is already installed"
+msgstr "GPGå¯é¥å¨ %s (0x%s) å·²ç»å®è£
"
-msgid "quiet operation"
-msgstr "å®éçæä½"
+#. Try installing/updating GPG key
+#: ../yum/__init__.py:2598
+#, python-format
+msgid "Importing GPG key 0x%s \"%s\" from %s"
+msgstr "导å
¥GPGå¯é¥ 0x%s \"%s\" ,æ¥èª %s"
-msgid "registration of commands not supported"
-msgstr "注åå½ä»¤ä¸æ¯æ"
+#: ../yum/__init__.py:2610
+msgid "Not installing key"
+msgstr "没æå®è£
å¯é¥"
-msgid "reinstall a package"
-msgstr "éæ°å®è£
ä¸ä¸ªå
"
+#: ../yum/__init__.py:2616
+#, python-format
+msgid "Key import failed (code %d)"
+msgstr "导å
¥å¯é¥å¤±è´¥ (ä»£å· %d)"
-msgid "repo id"
-msgstr "Repo-å·"
+#: ../yum/__init__.py:2619
+msgid "Key imported successfully"
+msgstr "导å
¥å¯é¥æå"
-msgid "repo name"
-msgstr "Repo-å称:"
+#: ../yum/__init__.py:2624
+#, 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 ""
+"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."
-msgid "repo object for repo %s lacks a _resetSack method\n"
-msgstr "repo对象for repo %s ç¼ºå° a _resetSack æ¹æ³\n"
+#: ../yum/__init__.py:2633
+msgid "Import of key(s) didn't help, wrong key(s)?"
+msgstr "导å
¥å¯é¥æ¶æ²¡ææ±å©ï¼é误çå¯é¥?"
-msgid "run entirely from cache, don't update cache"
-msgstr "ä»ç¼å²ä¸è¿è¡ï¼èä¸æ¯å级ç¼å"
+#: ../yum/__init__.py:2707
+msgid "Unable to find a suitable mirror."
+msgstr "ä¸è½åç°åéçéå."
-msgid "searchPackages() will go away in a future version of Yum. Use searchGenerator() instead. \n"
-msgstr "searchPackages() å°å¨YUMæªæ¥ççæ¬ä¸æ¶å¤±. ç¨ searchGenerator()æ¿ä»£. \n"
+#: ../yum/__init__.py:2709
+msgid "Errors were encountered while downloading packages."
+msgstr "Errors were encountered while downloading packages."
-msgid "searching in file entries"
-msgstr "searching in file entries"
+#: ../yum/__init__.py:2774
+msgid "Test Transaction Errors: "
+msgstr "æµè¯äºå¡å¤çé误"
-msgid "searching in provides entries"
-msgstr "å¨å¯æä¾çå
¥å£æ¥è¯¢"
+#. Mostly copied from YumOutput._outKeyValFill()
+#: ../yum/plugins.py:195
+msgid "Loaded plugins: "
+msgstr "è½½å
¥æ件: "
-msgid "searching package %s"
-msgstr "æ¥è¯¢å
ï¼ %s"
+#: ../yum/plugins.py:206
+#, python-format
+msgid "No plugin match for: %s"
+msgstr "没ææ件å¯å¹é
: %s"
-msgid "set install root"
-msgstr "设置为rootå®è£
"
+#: ../yum/plugins.py:219
+#, python-format
+msgid "\"%s\" plugin is disabled"
+msgstr "\"%s\" æ¤æ件已被ç¦æ"
-msgid "show Yum version and exit"
-msgstr "æ¾ç¤º YUMçæ¬ä¿¡æ¯å¹¶éåº"
+#: ../yum/plugins.py:231
+#, python-format
+msgid "Plugin \"%s\" doesn't specify required API version"
+msgstr "Plugin \"%s\" 没ææå®å¿
è¦çAPIçæ¬"
-msgid "show duplicates, in repos, in list/search commands"
-msgstr "æ¾ç¤ºå¤å¶, å¨repo,list/searchå½ä»¤ä¸"
+#: ../yum/plugins.py:235
+#, python-format
+msgid "Plugin \"%s\" requires API %s. Supported API is %s."
+msgstr "Plugin \"%s\" éè¦ API %s. æ¯æç API 为 %s."
-msgid "skip packages with depsolving problems"
-msgstr "忽ç¥å
çä¾èµé®é¢"
+#: ../yum/plugins.py:264
+#, python-format
+msgid "Loading \"%s\" plugin"
+msgstr "è½½å
¥ \"%s\" æ件"
-msgid "status"
-msgstr "ç¶æ"
+#: ../yum/plugins.py:271
+#, python-format
+msgid ""
+"Two or more plugins with the name \"%s\" exist in the plugin search path"
+msgstr ""
+"Two or more plugins with the name \"%s\" exist in the plugin search path"
-msgid "therefore this repo cannot be reset.\n"
-msgstr "å æ¤æ¤repoä¸è½å¤ä½.\n"
+#: ../yum/plugins.py:291
+#, python-format
+msgid "Configuration file %s not found"
+msgstr "é
ç½®æ件 %s ä¸è½è¢«æ¾å°"
-msgid "updated"
-msgstr "å级"
+#. for
+#. Configuration files for the plugin not found
+#: ../yum/plugins.py:294
+#, python-format
+msgid "Unable to find configuration file for plugin %s"
+msgstr "ä¸è½æ¾å°æ件 %s çé
ç½®æ件 "
-msgid "user interrupt"
-msgstr "ç¨æ·ä¸æ"
+#: ../yum/plugins.py:448
+msgid "registration of commands not supported"
+msgstr "注åå½ä»¤ä¸æ¯æ"
-msgid "using local copy of %s"
-msgstr "å¨æ¬å°å¤å¶ %s"
+#: ../rpmUtils/oldUtils.py:26
+#, python-format
+msgid "Header cannot be opened or does not match %s, %s."
+msgstr "Header ä¸è½æå¼æ对 %s, %sä¸å¹é
."
-msgid "y"
-msgstr "Y"
+#: ../rpmUtils/oldUtils.py:46
+#, python-format
+msgid "RPM %s fails md5 check"
+msgstr "RPM %s md5ç æ ¡éªå¤±è´¥"
-msgid "yes"
-msgstr "æ¯"
+#: ../rpmUtils/oldUtils.py:144
+msgid "Could not open RPM database for reading. Perhaps it is already in use?"
+msgstr "ä¸è½ä»¥è¯»çæ¹å¼æå¼RPMæ°æ®åºï¼æ许æ¯å®å·²ç»å¨è¢«ç¨?"
+#: ../rpmUtils/oldUtils.py:174
+msgid "Got an empty Header, something has gone wrong"
+msgstr "å¾å°ç©ºç头æ件ï¼æé误åç"
+
+#: ../rpmUtils/oldUtils.py:244 ../rpmUtils/oldUtils.py:251
+#: ../rpmUtils/oldUtils.py:254 ../rpmUtils/oldUtils.py:257
+#, python-format
+msgid "Damaged Header %s"
+msgstr "æåç头æ件 %s"
+
+#: ../rpmUtils/oldUtils.py:272
+#, python-format
+msgid "Error opening rpm %s - error %s"
+msgstr "æå¼ RPM %s é误 - é误 %s"
commit fc81c8e39c271615092e0c5d3acad7ecc1d196e5
Author: James Antill <james at and.org>
Date: Fri Oct 17 20:34:57 2008 -0400
Allow yum-complete-transaction to turn off the unfinished transactions check
diff --git a/yum/__init__.py b/yum/__init__.py
index 50351f2..7aafb84 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -632,10 +632,11 @@ class YumBase(depsolve.Depsolve):
self.verbose_logger.log(logginglevels.INFO_2, msg)
self.repos.populateSack(mdtype='filelists')
- def buildTransaction(self):
+ def buildTransaction(self, unfinished_transactions_check=True):
"""go through the packages in the transaction set, find them in the
packageSack or rpmdb, and pack up the ts accordingly"""
- if misc.find_unfinished_transactions(yumlibpath=self.conf.persistdir):
+ if (unfinished_transactions_check and
+ misc.find_unfinished_transactions(yumlibpath=self.conf.persistdir)):
msg = _('There are unfinished transactions remaining. You might ' \
'consider running yum-complete-transaction first to finish them.' )
self.logger.critical(msg)
commit 7e405356a30ab280ef78601831aad8829299579e
Author: James Antill <james at and.org>
Date: Fri Oct 17 20:30:35 2008 -0400
Fix typo in unfinished transactions msg
diff --git a/yum/__init__.py b/yum/__init__.py
index 73567a9..50351f2 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -636,7 +636,7 @@ class YumBase(depsolve.Depsolve):
"""go through the packages in the transaction set, find them in the
packageSack or rpmdb, and pack up the ts accordingly"""
if misc.find_unfinished_transactions(yumlibpath=self.conf.persistdir):
- msg = _('There are unfinished transactions remaining. You might' \
+ msg = _('There are unfinished transactions remaining. You might ' \
'consider running yum-complete-transaction first to finish them.' )
self.logger.critical(msg)
time.sleep(3)
commit f87cd6743b1d4ac45cf30b96843fc65f7380d3f5
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Fri Oct 17 15:32:22 2008 -0400
add xml() method for UpdateMetadata and UpdateNotice objects to push back out
xml from these objects
diff --git a/yum/update_md.py b/yum/update_md.py
index e96b167..b1d7388 100644
--- a/yum/update_md.py
+++ b/yum/update_md.py
@@ -26,6 +26,7 @@ import gzip
from textwrap import wrap
from yum.yumRepo import YumRepository
+from yum.misc import to_xml
import rpmUtils.miscutils
@@ -233,6 +234,55 @@ class UpdateNotice(object):
self._md['reboot_suggested'] = True
return package
+ def xml(self):
+ """Generate the xml for this update notice object"""
+ msg="""
+<update from="%s" status="%s" type="%s" version="%s">
+ <id>%s</id>
+ <title>%s</title>
+ <release>%s</release>
+ <issued date="%s"/>
+ <description>%s</description>\n""" % (to_xml(self._md['from']),
+ to_xml(self._md['status']), to_xml(self._md['type']),
+ to_xml(self._md['version']),to_xml(self._md['update_id']),
+ to_xml(self._md['title']), to_xml(self._md['release']),
+ to_xml(self._md['issued'], attrib=True),
+ to_xml(self._md['description']))
+
+ if self._md['references']:
+ msg += """ <references>\n"""
+ for ref in self._md['references']:
+ if ref['title']:
+ msg += """ <reference href="%s" id="%s" title="%s" type="%s"/>\n""" % (
+ to_xml(ref['href'], attrib=True), to_xml(ref['id'], attrib=True),
+ to_xml(ref['title'], attrib=True), to_xml(ref['type'], attrib=True))
+ else:
+ msg += """ <reference href="%s" id="%s" type="%s"/>\n""" % (
+ to_xml(ref['href'], attrib=True), to_xml(ref['id'], attrib=True),
+ to_xml(ref['type'], attrib=True))
+
+ msg += """ </references>\n"""
+
+ if self._md['pkglist']:
+ msg += """ <pkglist>\n"""
+ for coll in self._md['pkglist']:
+ msg += """ <collection short="%s">\n <name>%s</name>\n""" % (
+ to_xml(coll['short'], attrib=True),
+ to_xml(coll['name']))
+
+ for pkg in coll['packages']:
+ msg += """ <package arch="%s" name="%s" release="%s" src="%s" version="%s">
+ <filename>%s</filename>
+ </package>\n""" % (to_xml(pkg['arch'], attrib=True),
+ to_xml(pkg['name'], attrib=True),
+ to_xml(pkg['release'], attrib=True),
+ to_xml(pkg['src'], attrib=True),
+ to_xml(pkg['version'], attrib=True),
+ to_xml(pkg['filename']))
+ msg += """ </collection>\n"""
+ msg += """ </pkglist>\n"""
+ msg += """</update>\n"""
+ return msg
def _rpm_tup_vercmp(tup1, tup2):
""" Compare two "std." tuples, (n, a, e, v, r). """
@@ -333,6 +383,28 @@ class UpdateMetadata(object):
ret += str(notice)
return ret
+ def xml(self, fileobj=None):
+ msg = """<?xml version="1.0"?>\n<updates>"""
+ if fileobj:
+ fileobj.write(msg)
+
+ for notice in self._notices.values():
+ if fileobj:
+ fileobj.write(notice.xml())
+ else:
+ msg += notice.xml()
+
+ end = """</updates>\n"""
+ if fileobj:
+ fileobj.write(end)
+ else:
+ msg+= end
+
+ if fileobj:
+ return
+
+ return msg
+
def main():
""" update_md test function. """
commit 30287d11e450cfab55d8e3db127ec1fe02de392e
Author: David Cantrell <dcantrell at redhat.com>
Date: Fri Oct 17 15:23:06 2008 -0400
Allow sys.argv to be overridden by "clever" callers, fixes bug 465653
diff --git a/cli.py b/cli.py
index ec93f83..ff4c7d6 100644
--- a/cli.py
+++ b/cli.py
@@ -195,7 +195,7 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
# Now parse the command line for real and
# apply some of the options to self.conf
- (opts, self.cmds) = self.optparser.setupYumConfig()
+ (opts, self.cmds) = self.optparser.setupYumConfig(args=args)
if opts.version:
self.conf.cache = 1
@@ -1045,9 +1045,12 @@ class YumOptionParser(OptionParser):
ret.extend(arg.replace(",", " ").split())
return ret
- def setupYumConfig(self):
+ def setupYumConfig(self, args=None):
# Now parse the command line for real
- (opts, cmds) = self.parse_args()
+ if args is not None:
+ (opts, cmds) = self.parse_args()
+ else:
+ (opts, cmds) = self.parse_args(args=args)
# Let the plugins know what happened on the command line
self.base.plugins.setCmdLine(opts, cmds)
commit 8131658aa335360192037035d9fd4c098e3c5a92
Author: James Antill <james at and.org>
Date: Fri Oct 17 13:15:48 2008 -0400
Don't show the 3.0.x provides warning for full path names
diff --git a/cli.py b/cli.py
index c317971..ec93f83 100644
--- a/cli.py
+++ b/cli.py
@@ -768,7 +768,7 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
if len(matching) == 0:
for arg in args:
- if '*' in arg:
+ if '*' in arg or (arg and arg[0] == '/'):
continue
self.logger.warning(_('Warning: 3.0.x versions of yum would erronously match against filenames.\n You can use "%s*/%s%s" and/or "%s*bin/%s%s" to get that behaviour'),
self.term.MODE['bold'], arg,
commit fbf463e0584c26b62a9b79f37b57d05bfa9af9cb
Author: James Antill <james at and.org>
Date: Fri Oct 17 00:33:49 2008 -0400
Catch repo/mirror errors as w3ell as urlgrabber errors, if we can revert
diff --git a/yum/yumRepo.py b/yum/yumRepo.py
index e851d16..5cf3444 100644
--- a/yum/yumRepo.py
+++ b/yum/yumRepo.py
@@ -868,6 +868,8 @@ class YumRepository(Repository, config.RepoConf):
def _getFileRepoXML(self, local, text=None, grab_can_fail=None):
""" Call _getFile() for the repomd.xml file. """
checkfunc = (self._checkRepoXML, (), {})
+ if grab_can_fail is None:
+ grab_can_fail = 'old_repo_XML' in self._oldRepoMDData
try:
result = self._getFile(relative=self.repoMDFile,
local=local,
@@ -878,11 +880,13 @@ class YumRepository(Repository, config.RepoConf):
cache=self.http_caching == 'all')
except URLGrabError, e:
- if grab_can_fail is None:
- grab_can_fail = 'old_repo_XML' in self._oldRepoMDData
if grab_can_fail:
return None
raise Errors.RepoError, 'Error downloading file %s: %s' % (local, e)
+ except (Errors.NoMoreMirrorsRepoError, Errors.RepoError):
+ if grab_can_fail:
+ return None
+ raise
return result
commit 68e7d6e86e475a33bcc6c2d1b587abb5bee1fdc1
Author: James Antill <james at and.org>
Date: Wed Oct 15 14:47:43 2008 -0400
Use terminal_width_cached() in YumTerm, if available, for dynamic widths.
Make progressbar and YumCliRPMCallBack._makefmt dynamicaly wide.
Use the pkgname in YumCliRPMCallBack._makefmt, to get better output.
diff --git a/output.py b/output.py
index 340318e..79d8bb0 100644
--- a/output.py
+++ b/output.py
@@ -62,7 +62,11 @@ class YumTerm:
__enabled = True
- columns = 80
+ if hasattr(urlgrabber.progress, 'terminal_width_cached'):
+ columns = property(lambda self:
+ urlgrabber.progress.terminal_width_cached())
+ else:
+ columns = 80
lines = 24
# Output modes:
MODE = {
@@ -148,7 +152,8 @@ class YumTerm:
return
self._ctigetstr = curses.tigetstr
- self.columns = curses.tigetnum('cols')
+ if not hasattr(urlgrabber.progress, 'terminal_width_cached'):
+ self.columns = curses.tigetnum('cols')
self.lines = curses.tigetnum('lines')
# Look up string capabilities.
@@ -1077,6 +1082,9 @@ class YumCliRPMCallBack(RPMBaseCallback):
Yum specific callback class for RPM operations.
"""
+ if hasattr(urlgrabber.progress, 'terminal_width_cached'):
+ _width = property(lambda x: urlgrabber.progress.terminal_width_cached())
+
def __init__(self):
RPMBaseCallback.__init__(self)
self.lastmsg = None
@@ -1087,6 +1095,10 @@ class YumCliRPMCallBack(RPMBaseCallback):
self.mark = "#"
self.marks = 22
+ if hasattr(urlgrabber.progress, 'terminal_width_cached'):
+ self.width = self._width
+ else:
+ self.width = 80
def event(self, package, action, te_current, te_total, ts_current, ts_total):
# this is where a progress bar would be called
@@ -1104,7 +1116,7 @@ class YumCliRPMCallBack(RPMBaseCallback):
percent = (te_current*100L)/te_total
if self.output and (sys.stdout.isatty() or te_current == te_total):
- fmt = self._makefmt(percent, ts_current, ts_total)
+ fmt = self._makefmt(percent, ts_current, ts_total, pkgname=pkgname)
msg = fmt % (process, pkgname)
if msg != self.lastmsg:
sys.stdout.write(to_unicode(msg))
@@ -1118,26 +1130,49 @@ class YumCliRPMCallBack(RPMBaseCallback):
sys.stdout.write(to_unicode(msgs))
sys.stdout.flush()
- def _makefmt(self, percent, ts_current, ts_total, progress = True):
+ def _makefmt(self, percent, ts_current, ts_total, progress = True,
+ pkgname=None):
l = len(str(ts_total))
size = "%s.%s" % (l, l)
- fmt_done = "[%" + size + "s/%" + size + "s]"
+ fmt_done = "%" + size + "s/%" + size + "s"
done = fmt_done % (ts_current, ts_total)
- marks = self.marks - (2 * l)
+
+ # This should probably use TerminLine, but we don't want to dep. on
+ # that. So we kind do an ok job by hand ... at least it's dynamic now.
+ if pkgname is None:
+ pnl = 22
+ else:
+ pnl = len(pkgname)
+
+ overhead = (2 * l) + 2 # Length of done, above
+ overhead += 19 # Length of begining
+ overhead += 1 # Space between pn and done
+ overhead += 2 # Ends for progress
+ overhead += 1 # Space for end
+ width = self.width
+ if width < overhead:
+ width = overhead # Give up
+ width -= overhead
+ if pnl > width / 2:
+ pnl = width / 2
+
+ marks = self.width - (overhead + pnl)
width = "%s.%s" % (marks, marks)
- fmt_bar = "%-" + width + "s"
- pnl = str(28 + marks + 1)
+ fmt_bar = "[%-" + width + "s]"
+ # pnl = str(28 + marks + 1)
+ full_pnl = "%%-%d.%ds" % (pnl + marks + 1, pnl + marks + 1)
+ half_pnl = "%%-%d.%ds" % (pnl, pnl)
if progress and percent == 100: # Don't chop pkg name on 100%
- fmt = "\r %-15.15s: %-" + pnl + '.' + pnl + "s " + done
+ fmt = "\r %-15.15s: " + full_pnl + " " + done
elif progress:
bar = fmt_bar % (self.mark * int(marks * (percent / 100.0)), )
- fmt = "\r %-15.15s: %-28.28s " + bar + " " + done
+ fmt = "\r %-15.15s: " + half_pnl + " " + bar + " " + done
elif percent == 100:
- fmt = " %-15.15s: %-" + pnl + '.' + pnl + "s " + done
+ fmt = " %-15.15s: " + full_pnl + " " + done
else:
bar = fmt_bar % (self.mark * marks, )
- fmt = " %-15.15s: %-28.28s " + bar + " " + done
+ fmt = " %-15.15s: " + half_pnl + " " + bar + " " + done
return fmt
@@ -1152,18 +1187,40 @@ def progressbar(current, total, name=None):
percent = 0
else:
if total != 0:
- percent = current*100/total
+ percent = float(current) / total
else:
percent = 0
- numblocks = int(percent/2)
- hashbar = mark * numblocks
+ if hasattr(urlgrabber.progress, 'terminal_width_cached'):
+ width = urlgrabber.progress.terminal_width_cached()
+ else:
+ width = 80
+
+ if name is None and current == total:
+ name = '-'
+
+ end = ' %d/%d' % (current, total)
+ width -= len(end) + 1
+ if width < 0:
+ width = 0
if name is None:
- output = '\r%-50s %d/%d' % (hashbar, current, total)
+ width -= 2
+ if width < 0:
+ width = 0
+ hashbar = mark * int(width * percent)
+ output = '\r[%-*s]%s' % (width, hashbar, end)
elif current == total: # Don't chop name on 100%
- output = '\r%-62.62s %d/%d' % (name, current, total)
+ output = '\r%-*.*s%s' % (width, width, name, end)
else:
- output = '\r%-10.10s: %-50s %d/%d' % (name, hashbar, current, total)
+ width -= 4
+ if width < 0:
+ width = 0
+ nwid = width / 2
+ if nwid > len(name):
+ nwid = len(name)
+ width -= nwid
+ hashbar = mark * int(width * percent)
+ output = '\r%-*.*s: [%-*s]%s' % (nwid, nwid, name, width, hashbar, end)
if current <= total:
sys.stdout.write(output)
@@ -1195,7 +1252,9 @@ if __name__ == "__main__":
progressbar(i, 100)
time.sleep(0.1)
+ if len(sys.argv) > 1 and sys.argv[1] in ("progress", "rpm-progress"):
cb = YumCliRPMCallBack()
+ cb.output = True
cb.action["foo"] = "abcd"
cb.action["bar"] = "_12345678_.end"
print ""
commit e15d9e5fafcd6c1eeaa4d5949c5c0bb4bbd20bfd
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Wed Oct 15 11:27:47 2008 -0400
magic combination of to_unicode and to_utf8:
to_unicode makes the string combination happy coming out of the sqlite
to_utf8 makes the string happy going into the gzip'd xml.
LOVE LOVE LOVE
diff --git a/yum/packages.py b/yum/packages.py
index c0373e4..4e3bbd5 100644
--- a/yum/packages.py
+++ b/yum/packages.py
@@ -939,30 +939,25 @@ class YumAvailablePackage(PackageObject, RpmBase):
def xml_dump_primary_metadata(self):
msg = """\n<package type="rpm">"""
- msg += self._dump_base_items()
- msg += self._dump_format_items()
+ msg += misc.to_unicode(self._dump_base_items())
+ msg += misc.to_unicode(self._dump_format_items())
msg += """\n</package>"""
- return msg
+ return misc.to_utf8(msg)
def xml_dump_filelists_metadata(self):
msg = """\n<package pkgid="%s" name="%s" arch="%s">
<version epoch="%s" ver="%s" rel="%s"/>\n""" % (self.checksum, self.name,
self.arch, self.epoch, self.ver, self.rel)
- msg += self._dump_files()
+ msg += misc.to_unicode(self._dump_files())
msg += "</package>\n"
- return msg
+ return misc.to_utf8(msg)
def xml_dump_other_metadata(self, clog_limit=0):
msg = """\n<package pkgid="%s" name="%s" arch="%s">
<version epoch="%s" ver="%s" rel="%s"/>\n""" % (self.checksum, self.name,
self.arch, self.epoch, self.ver, self.rel)
- clogs = str(self._dump_changelog(clog_limit))
- #print type(clogs)
- mystr = "%s\n</package>\n"
- #print type(mystr)
- foo = "%s\n</package>\n" % clogs
- msg += "%s\n</package>\n" % self._dump_changelog(clog_limit)
- return msg
+ msg += "%s\n</package>\n" % misc.to_unicode(self._dump_changelog(clog_limit))
+ return misc.to_utf8(msg)
commit cb3cb81658d85e7217a049bb023c32b100763745
Author: James Antill <james at and.org>
Date: Tue Oct 14 12:39:41 2008 -0400
Cleanup the post transaction text
diff --git a/output.py b/output.py
index cb9d1b9..340318e 100644
--- a/output.py
+++ b/output.py
@@ -849,6 +849,35 @@ Remove %5.5s Package(s)
self.tsInfo.makelists()
+ # Works a bit like calcColumns, but we never overflow a column we just
+ # have a dynamic number of columns.
+ def _fits_in_cols(msgs, num):
+ """ Work out how many columns we can use to display stuff, in
+ the post trans output. """
+ if len(msgs) < num:
+ return []
+
+ left = self.term.columns - ((num - 1) + 2)
+ if left <= 0:
+ return []
+
+ col_lens = [0] * num
+ col = 0
+ for msg in msgs:
+ if len(msg) > col_lens[col]:
+ diff = (len(msg) - col_lens[col])
+ if left <= diff:
+ return []
+ left -= diff
+ col_lens[col] = len(msg)
+ col += 1
+ col %= len(col_lens)
+
+ for col in range(len(col_lens)):
+ col_lens[col] += left / num
+ col_lens[col] *= -1
+ return col_lens
+
for (action, pkglist) in [(_('Removed'), self.tsInfo.removed),
(_('Dependency Removed'), self.tsInfo.depremoved),
(_('Installed'), self.tsInfo.installed),
@@ -856,14 +885,25 @@ Remove %5.5s Package(s)
(_('Updated'), self.tsInfo.updated),
(_('Dependency Updated'), self.tsInfo.depupdated),
(_('Replaced'), self.tsInfo.obsoleted)]:
-
+ msgs = []
if len(pkglist) > 0:
- out += '\n%s:' % action
+ out += '\n%s:\n' % action
for txmbr in pkglist:
(n,a,e,v,r) = txmbr.pkgtup
- msg = " %s.%s %s:%s-%s" % (n,a,e,v,r)
- out += msg
-
+ msg = "%s.%s %s:%s-%s" % (n,a,e,v,r)
+ msgs.append(msg)
+ for num in (8, 7, 6, 5, 4, 3, 2):
+ cols = _fits_in_cols(msgs, num)
+ if cols:
+ break
+ if not cols:
+ cols = [-(self.term.columns - 2)]
+ while msgs:
+ current_msgs = msgs[:len(cols)]
+ out += ' '
+ out += self.fmtColumns(zip(current_msgs, cols), end=u'\n')
+ msgs = msgs[len(cols):]
+
return out
def setupProgressCallbacks(self):
commit a51beb137fb47c60d78c4a4e3d6abf619e492e4b
Author: James Antill <james at and.org>
Date: Tue Oct 14 12:34:07 2008 -0400
Don't explicitly list metalink.xml for cleanup, as it's got by *.xml filter
diff --git a/yum/__init__.py b/yum/__init__.py
index 6580daa..73567a9 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -1342,8 +1342,8 @@ class YumBase(depsolve.Depsolve):
return self._cleanFiles(exts, 'cachedir', 'sqlite')
def cleanMetadata(self):
- exts = ['xml.gz', 'xml', 'cachecookie', 'mirrorlist.txt',
- 'metalink.xml']
+ exts = ['xml.gz', 'xml', 'cachecookie', 'mirrorlist.txt']
+ # Metalink is also here, but is a *.xml file
return self._cleanFiles(exts, 'cachedir', 'metadata')
def cleanExpireCache(self):
commit 74c30914c0b159e2b3007bd8ed7c50d8accccbe3
Merge: e78cae6... 8451f08...
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Tue Oct 14 12:12:59 2008 -0400
Merge branch 'yum-3_2_X' of ssh://yum.baseurl.org/srv/projects/yum/git/yum into yum-3_2_X
* 'yum-3_2_X' of ssh://yum.baseurl.org/srv/projects/yum/git/yum:
Don't output progress for rpm callbacks when in -e 0 -d 0
Fix unicode exceptions in reinstall, bug 466838
Fix another unicode problem, locale.format("%d", ...) in cs_CZ
Add documentation for metalink
Undeprecate metadataCurrent(), and use it for metalink.xml and repomd.xml
Add metalink config. option to each repo.
Fix metalink exceptions, and make it easier to use for yumRepo
Cleanup metalink data
Add length/checksums to the RepoMD object
Expand on checksum() to allow multiple checksums over a single file
Give a nicer message when filelists contains pkgKeys primary doesn't
commit e78cae6543094aa6e254e5d903e07150645e591f
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Tue Oct 14 12:12:49 2008 -0400
some minor changes to how we output the xml - to, theoretically,
solve the unicode/random-encoding problems.
diff --git a/yum/packages.py b/yum/packages.py
index 9cb5c19..c0373e4 100644
--- a/yum/packages.py
+++ b/yum/packages.py
@@ -932,8 +932,8 @@ class YumAvailablePackage(PackageObject, RpmBase):
if clog_limit and clog_count >= clog_limit:
break
clog_count += 1
- msg += '''<changelog author="%s" date="%s">%s</changelog>\n''' % (
- misc.to_xml(author, attrib=True), str(ts),
+ msg += """<changelog author="%s" date="%s">%s</changelog>\n""" % (
+ misc.to_xml(author, attrib=True), misc.to_xml(str(ts)),
misc.to_xml(content))
return msg
@@ -956,8 +956,12 @@ class YumAvailablePackage(PackageObject, RpmBase):
msg = """\n<package pkgid="%s" name="%s" arch="%s">
<version epoch="%s" ver="%s" rel="%s"/>\n""" % (self.checksum, self.name,
self.arch, self.epoch, self.ver, self.rel)
- msg += self._dump_changelog(clog_limit)
- msg += "\n</package>\n"
+ clogs = str(self._dump_changelog(clog_limit))
+ #print type(clogs)
+ mystr = "%s\n</package>\n"
+ #print type(mystr)
+ foo = "%s\n</package>\n" % clogs
+ msg += "%s\n</package>\n" % self._dump_changelog(clog_limit)
return msg
@@ -1104,9 +1108,9 @@ class YumHeaderPackage(YumAvailablePackage):
# then create a _loadChangelog() method to put them into the
# self._changelog attr
if len(self.hdr['changelogname']) > 0:
- return zip(self.hdr['changelogtime'],
- self.hdr['changelogname'],
- self.hdr['changelogtext'])
+ return zip(misc.to_unicode(self.hdr['changelogtime'], errors='replace'),
+ misc.to_unicode(self.hdr['changelogname'], errors='replace'),
+ misc.to_unicode(self.hdr['changelogtext'], errors='replace'))
return []
def returnChecksums(self):
diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index 578d0b9..e085aa8 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -204,8 +204,10 @@ class YumAvailablePackageSqlite(YumAvailablePackage, PackageObject, RpmBase):
# Check count(pkgId) here, the same way we do in searchFiles()?
# Failure mode is much less of a problem.
for ob in cur:
- result.append( (ob['date'], _share_data(ob['author']),
- ob['changelog']) )
+ c_date = ob['date']
+ c_author = ob['author'].encode('utf-8', 'replace')
+ c_log = ob['changelog'].encode('utf-8', 'replace')
+ result.append((c_date, _share_data(c_author), c_log))
self._changelog = result
return
commit 8451f08f6fc5ac9bca69ee3ab76622e3044adc42
Author: James Antill <james at and.org>
Date: Tue Oct 14 09:49:48 2008 -0400
Don't output progress for rpm callbacks when in -e 0 -d 0
diff --git a/output.py b/output.py
index 047576e..cb9d1b9 100644
--- a/output.py
+++ b/output.py
@@ -1041,7 +1041,7 @@ class YumCliRPMCallBack(RPMBaseCallback):
RPMBaseCallback.__init__(self)
self.lastmsg = None
self.lastpackage = None # name of last package we looked at
- self.output = True
+ self.output = logging.getLogger("yum.verbose.cli").isEnabledFor(logginglevels.INFO_2)
# for a progress bar
self.mark = "#"
commit 29247ba155041585ae37042fb64a687522f094e7
Author: James Antill <james at and.org>
Date: Mon Oct 13 23:28:55 2008 -0400
Fix unicode exceptions in reinstall, bug 466838
diff --git a/yumcommands.py b/yumcommands.py
index b87d7f0..8f25623 100644
--- a/yumcommands.py
+++ b/yumcommands.py
@@ -890,7 +890,7 @@ class ReInstallCommand(YumCommand):
return 0, [_('Nothing to do')]
except yum.Errors.YumBaseError, e:
- return 1, [str(e)]
+ return 1, [to_unicode(e)]
def getSummary(self):
return _("reinstall a package")
commit 41e82de38ac39291193abc15725212145b898aa6
Author: James Antill <james at and.org>
Date: Wed Oct 8 08:43:47 2008 -0400
Fix another unicode problem, locale.format("%d", ...) in cs_CZ
diff --git a/yumcommands.py b/yumcommands.py
index 3a8ad88..b87d7f0 100644
--- a/yumcommands.py
+++ b/yumcommands.py
@@ -28,6 +28,7 @@ import operator
import locale
import fnmatch
import time
+from yum.misc import to_unicode
def checkRootUID(base):
"""
@@ -741,7 +742,7 @@ class RepoListCommand(YumCommand):
ui_enabled = ehibeg + _('enabled') + hiend
num = len(repo.sack)
tot_num += num
- ui_num = locale.format("%d", num, True)
+ ui_num = to_unicode(locale.format("%d", num, True))
ui_fmt_num = ": %7s"
if verbose:
ui_size = _repo_size(repo)
@@ -793,7 +794,7 @@ class RepoListCommand(YumCommand):
repo, repo.name, ui_enabled,
ui_fmt_num % ui_num)
- return 0, ['repolist: ' + locale.format("%d", tot_num, True)]
+ return 0, ['repolist: ' +to_unicode(locale.format("%d", tot_num, True))]
def needTs(self, base, basecmd, extcmds):
return False
commit b1047995c923b4e7c9c0ea3dec7e87c0304af97a
Author: James Antill <james at and.org>
Date: Mon Oct 6 00:44:02 2008 -0400
Add documentation for metalink
diff --git a/docs/yum.conf.5 b/docs/yum.conf.5
index 183944b..40148a6 100644
--- a/docs/yum.conf.5
+++ b/docs/yum.conf.5
@@ -258,7 +258,9 @@ lower the value of this option. You can also change from the default of using
seconds to using days, hours or minutes by appending a d, h or m respectively.
The default is 1.5 hours, to compliment yum-updatesd running once an hour.
It's also possible to use the word "never", meaning that the metadata will
-never expire.
+never expire. Note that when using a metalink file the metalink must always
+be newer than the metadata for the repository, due to the validation, so this
+timeout also applies to the metalink file.
.IP \fBmirrorlist_expire \fR
Time (in seconds) after which the mirrorlist locally cached will expire.
@@ -343,6 +345,16 @@ you've been warned.
You can use HTTP basic auth by prepending "user:password@" to the server
name in the baseurl line. For example: "baseurl=http://user:passwd@example.com/".
+.IP \fBmetalink\fR
+Specifies a URL to a metalink file for the repomd.xml, a list of mirrors for
+the entire repository are generated by converting the mirrors for the
+repomd.xml file to a baseurl. The metalink file also contains the latest
+timestamp from the data in the repomd.xml, the length of the repomd.xml and
+checksum data. This data is checked against any downloaded repomd.xml file
+and all of the information from the metalink file must match. This can be used
+instead of or with the \fBbaseurl\fR option. Substitution variables, described
+below, can be used with this option. This option disables the mirrorlist option.
+
.IP \fBmirrorlist\fR
Specifies a URL to a file containing a list of baseurls. This can be used
instead of or with the \fBbaseurl\fR option. Substitution variables, described
commit bfc81bda00f4322d0fe81b35a07ed23b536a9d64
Author: James Antill <james at and.org>
Date: Sat Oct 4 19:18:43 2008 -0400
Undeprecate metadataCurrent(), and use it for metalink.xml and repomd.xml
We can't have a newer repomd.xml than we have a metalink file, or it fails.
Download/use metalink data if it's configured.
It overrides mirrorlist, so you can use both for older versions of yum
Check repomd.xml against metalink data, if we have it.
Failover to next mirror, if it fails (like repomd.xml gpg signing).
diff --git a/yum/yumRepo.py b/yum/yumRepo.py
index e3e2a1f..e851d16 100644
--- a/yum/yumRepo.py
+++ b/yum/yumRepo.py
@@ -34,6 +34,7 @@ import sqlitesack
from yum import config
from yum import misc
from constants import *
+import metalink
import logging
import logginglevels
@@ -240,6 +241,8 @@ class YumRepository(Repository, config.RepoConf):
self.yumvar = {} # empty dict of yumvariables for $string replacement
self._proxy_dict = {}
self.metadata_cookie_fn = 'cachecookie'
+ self._metadataCurrent = None
+ self._metalink = None
self.groups_added = False
self.http_headers = {}
self.repo_config_age = 0 # if we're a repo not from a file then the
@@ -354,7 +357,7 @@ class YumRepository(Repository, config.RepoConf):
'gpgcheck', 'repo_gpgcheck', # FIXME: gpgcheck => pkgs_gpgcheck
'includepkgs', 'keepalive', 'proxy',
'proxy_password', 'proxy_username', 'exclude',
- 'retries', 'throttle', 'timeout', 'mirrorlist',
+ 'retries', 'throttle', 'timeout', 'mirrorlist', 'metalink',
'cachedir', 'gpgkey', 'pkgdir', 'hdrdir']
vars.sort()
for attr in vars:
@@ -516,6 +519,7 @@ class YumRepository(Repository, config.RepoConf):
self._preload_md_from_system_cache('repomd.xml')
self._preload_md_from_system_cache('cachecookie')
self._preload_md_from_system_cache('mirrorlist.txt')
+ self._preload_md_from_system_cache('metalink.xml')
def baseurlSetup(self):
@@ -527,12 +531,17 @@ class YumRepository(Repository, config.RepoConf):
"""go through the baseurls and mirrorlists and populate self.urls
with valid ones, run self.check() at the end to make sure it worked"""
+ self.baseurl = self._replace_and_check_url(self.baseurl)
+
mirrorurls = []
+ if self.metalink and not self.mirrorlistparsed:
+ # FIXME: This is kind of lying to API callers
+ mirrorurls.extend(list(self.metalink_data.urls()))
+ self.mirrorlistparsed = True
if self.mirrorlist and not self.mirrorlistparsed:
mirrorurls.extend(self._getMirrorList())
self.mirrorlistparsed = True
- self.baseurl = self._replace_and_check_url(self.baseurl)
self.mirrorurls = self._replace_and_check_url(mirrorurls)
self._urls = self.baseurl + self.mirrorurls
# if our mirrorlist is just screwed then make sure we unlink a mirrorlist cache
@@ -580,6 +589,53 @@ class YumRepository(Repository, config.RepoConf):
fset=lambda self, value: setattr(self, "_urls", value),
fdel=lambda self: setattr(self, "_urls", None))
+ def _getMetalink(self):
+ if not self._metalink:
+ self.metalink_filename = self.cachedir + '/' + 'metalink.xml'
+ local = self.metalink_filename + '.tmp'
+ if not self._metalinkCurrent():
+ url = misc.to_utf8(self.metalink)
+ try:
+ ug = URLGrabber(bandwidth = self.bandwidth,
+ retry = self.retries,
+ throttle = self.throttle,
+ progress_obj = self.callback,
+ proxies=self.proxy_dict)
+ ug.opts.user_agent = default_grabber.opts.user_agent
+ result = ug.urlgrab(url, local, text=self.id + "/metalink")
+
+ except urlgrabber.grabber.URLGrabError, e:
+ if not os.path.exists(self.metalink_filename):
+ msg = ("Cannot retrieve metalink for repository: %s. "
+ "Please verify its path and try again" % self )
+ raise Errors.RepoError, msg
+ # Now, we have an old usable metalink, so we can't move to
+ # a newer repomd.xml ... or checksums won't match.
+ print "Could not get metalink %s error was \n%s" %(url, e)
+ self._metadataCurrent = True
+
+ if not self._metadataCurrent:
+ try:
+ self._metalink = metalink.MetaLinkRepoMD(result)
+ shutil.move(result, self.metalink_filename)
+ except metalink.MetaLinkRepoErrorParseFail, e:
+ # Downloaded file failed to parse, revert (dito. above):
+ print "Could not parse metalink %s error was \n%s"%(url, e)
+ self._metadataCurrent = True
+ try:
+ os.unlink(result)
+ except:
+ pass
+
+ if self._metadataCurrent:
+ self._metalink = metalink.MetaLinkRepoMD(self.metalink_filename)
+
+ return self._metalink
+
+ metalink_data = property(fget=lambda self: self._getMetalink(),
+ fset=lambda self, value: setattr(self, "_metalink",
+ value),
+ 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):
@@ -716,17 +772,35 @@ class YumRepository(Repository, config.RepoConf):
cache=cache,
)
-
-
def metadataCurrent(self):
"""Check if there is a metadata_cookie and check its age. If the
age of the cookie is less than metadata_expire time then return true
- else return False"""
- warnings.warn('metadataCurrent() will go away in a future version of Yum.\n \
- please use withinCacheAge() instead.',
- Errors.YumFutureDeprecationWarning, stacklevel=2)
-
- return self.withinCacheAge(self.metadata_cookie, self.metadata_expire)
+ else return False. This result is cached, so that metalink/repomd.xml
+ are synchronized."""
+ if self._metadataCurrent is None:
+ self._metadataCurrent = self.withinCacheAge(self.metadata_cookie,
+ self.metadata_expire)
+ return self._metadataCurrent
+
+ # The problem is that the metalink _cannot_ be newer than the repomd.xml
+ # or the checksums can be off.
+ # Also see _getMetalink()
+ def _metalinkCurrent(self):
+ if self._metadataCurrent is not None:
+ return self._metadataCurrent
+
+ if self.cache and not os.path.exists(self.metalink_filename):
+ raise Errors.RepoError, 'Cannot find metalink.xml file for %s' %self
+
+ if self.cache:
+ self._metadataCurrent = True
+ elif not os.path.exists(self.metalink_filename):
+ self._metadataCurrent = False
+ elif self.withinCacheAge(self.metadata_cookie, self.metadata_expire):
+ self._metadataCurrent = True
+ else:
+ self._metadataCurrent = False
+ return self._metadataCurrent
def withinCacheAge(self, myfile, expiration_time):
"""check if any file is older than a certain amount of time. Used for
@@ -787,8 +861,7 @@ class YumRepository(Repository, config.RepoConf):
""" Should we cache the current repomd.xml """
if self.cache and not os.path.exists(local):
raise Errors.RepoError, 'Cannot find repomd.xml file for %s' % self
- if self.cache or self.withinCacheAge(self.metadata_cookie,
- self.metadata_expire):
+ if self.cache or self.metadataCurrent():
return True
return False
@@ -916,6 +989,58 @@ class YumRepository(Repository, config.RepoConf):
return False
return True
+ def _checkRepoMetalink(self, repoXML=None, metalink_data=None):
+ """ Check the repomd.xml against the metalink data, if we have it. """
+
+ def _chk_repomd(repomd):
+ verbose_logger.log(logginglevels.DEBUG_4, "checking repomd %d> %d",
+ repoXML.timestamp, repomd.timestamp)
+ if repoXML.timestamp != repomd.timestamp:
+ return False
+ if repoXML.length != repomd.size:
+ return False
+
+ # MirrorManager isn't generating sha256 yet, and we should probably
+ # not require all of the checksums we produce.
+ done = set()
+ for checksum in repoXML.checksums:
+ if checksum not in repomd.chksums:
+ continue
+
+ if repoXML.checksums[checksum] != repomd.chksums[checksum]:
+ return False
+ done.add(checksum)
+
+ # Only allow approved checksums, might want to not "approve" of
+ # sha1/md5
+ for checksum in ('sha512', 'sha256', 'sha1', 'md5'):
+ if checksum in done:
+ return True
+
+ return False
+
+ if repoXML is None:
+ repoXML = self._repoXML
+ if metalink_data is None:
+ metalink_data = self.metalink_data
+
+ if _chk_repomd(metalink_data.repomd):
+ return True
+
+ # FIXME: We probably want to skip to the first mirror which has the
+ # latest repomd.xml, but say "if we can't find one, use the newest old
+ # repomd.xml" ... alas. that's not so easy to do in urlgrabber atm.
+ for repomd in self.metalink_data.old_repomds:
+ if _chk_repomd(repomd):
+ verbose_logger.log(logginglevels.DEBUG_2,
+ "Using older repomd.xml\n"
+ " Latest: %s\n"
+ " Using: %s" %
+ (time.ctime(metalink_data.repomd.timestamp),
+ time.ctime(repomd.timestamp)))
+ return True
+ return False
+
def _commonLoadRepoXML(self, text, mdtypes=None):
""" Common LoadRepoXML for instant and group, returns False if you
should just return. """
@@ -1157,10 +1282,14 @@ class YumRepository(Repository, config.RepoConf):
raise URLGrabError(-1, 'repomd.xml signature could not be verified for %s' % (self))
try:
- repoMDObject.RepoMD(self.id, filepath)
+ repoXML = repoMDObject.RepoMD(self.id, filepath)
except Errors.RepoMDError, e:
raise URLGrabError(-1, 'Error importing repomd.xml for %s: %s' % (self, e))
+ if self.metalink and not self._checkRepoMetalink(repoXML):
+ raise URLGrabError(-1, 'repomd.xml does not match metalink for %s' %
+ self)
+
def checkMD(self, fn, mdtype, openchecksum=False):
"""check the metadata type against its checksum"""
commit 52ce04b20d73be5e829a0f7c5efad0fc7ca93a07
Author: James Antill <james at and.org>
Date: Sat Oct 4 19:15:40 2008 -0400
Add metalink config. option to each repo.
diff --git a/yum/config.py b/yum/config.py
index b269308..471303a 100644
--- a/yum/config.py
+++ b/yum/config.py
@@ -677,6 +677,7 @@ class RepoConf(BaseConfig):
enabled = Inherit(YumConf.enabled)
baseurl = UrlListOption()
mirrorlist = UrlOption()
+ metalink = UrlOption()
mediaid = Option()
gpgkey = UrlListOption()
exclude = ListOption()
@@ -700,6 +701,8 @@ class RepoConf(BaseConfig):
http_caching = Inherit(YumConf.http_caching)
metadata_expire = Inherit(YumConf.metadata_expire)
mirrorlist_expire = Inherit(YumConf.mirrorlist_expire)
+ # NOTE: metalink expire _must_ be the same as metadata_expire, due to the
+ # checksumming of the repomd.xml.
mdpolicy = Inherit(YumConf.mdpolicy)
cost = IntOption(1000)
commit d547d43efac40d950a3470dce172decf09f0dbdf
Author: James Antill <james at and.org>
Date: Sat Oct 4 19:15:15 2008 -0400
Fix metalink exceptions, and make it easier to use for yumRepo
diff --git a/yum/metalink.py b/yum/metalink.py
index 9aa210a..5a57511 100755
--- a/yum/metalink.py
+++ b/yum/metalink.py
@@ -20,19 +20,19 @@
# Parse the new MirrorManager metalink output:
import sys
-print >>sys.stderr, "Warning: Relying on the API to be stable is not recommended, yet."
-
import os
import time
from urlgrabber.progress import format_number
+import Errors
+
try:
from xml.etree import cElementTree
except ImportError:
import cElementTree
xmlparse = cElementTree.parse
-class MetaLinkRepoErrorParseFail:
+class MetaLinkRepoErrorParseFail(Errors.YumBaseError):
""" An exception thrown for an unparsable MetaLinkRepoMD file. """
pass
@@ -177,6 +177,8 @@ class MetaLinkRepoMD:
self.repomd = None
self.old_repomds = []
self.mirrors = []
+ if not os.path.exists(filename):
+ raise MetaLinkRepoErrorParseFail, "File %s does not exist" %filename
root = xmlparse(filename)
for elem in root.findall(__ML_FILE_ELEMENT__):
@@ -211,6 +213,23 @@ class MetaLinkRepoMD:
if len(self.mirrors) < 1:
raise MetaLinkRepoErrorParseFail, "No mirror"
+ def urls(self):
+ """ Iterate plain urls for the mirrors, like the old mirrorlist. """
+ for mirror in self.mirrors:
+ url = mirror.url
+
+ # This is what yum supports atm. ... no rsync etc.
+ if not (url.startswith("http:") or url.startswith("ftp:") or
+ url.startswith("file:") or url.startswith("https:")):
+ continue
+
+ # The mirror urls in the metalink file are for repomd.xml so it
+ # gives a list of mirrors for that one file, but we want the list
+ # of mirror baseurls. Joy of reusing other people's stds. :)
+ if not url.endswith("/repodata/repomd.xml"):
+ continue
+ yield url[:-len("/repodata/repomd.xml")]
+
def __str__(self):
ret = str(self.repomd)
done = False
commit 3c217c2c10c8218fddb740f9854eeba93bc838b4
Author: James Antill <james at and.org>
Date: Sat Oct 4 19:14:18 2008 -0400
Cleanup metalink data
diff --git a/yum/__init__.py b/yum/__init__.py
index cb86717..6580daa 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -1342,7 +1342,8 @@ class YumBase(depsolve.Depsolve):
return self._cleanFiles(exts, 'cachedir', 'sqlite')
def cleanMetadata(self):
- exts = ['xml.gz', 'xml', 'cachecookie', 'mirrorlist.txt']
+ exts = ['xml.gz', 'xml', 'cachecookie', 'mirrorlist.txt',
+ 'metalink.xml']
return self._cleanFiles(exts, 'cachedir', 'metadata')
def cleanExpireCache(self):
commit d2a77c2f5c2716904bb91aac317c0d0c9590ec02
Author: James Antill <james at and.org>
Date: Sat Oct 4 15:13:48 2008 -0400
Add length/checksums to the RepoMD object
diff --git a/yum/repoMDObject.py b/yum/repoMDObject.py
index d1d8cfb..0ec8a04 100755
--- a/yum/repoMDObject.py
+++ b/yum/repoMDObject.py
@@ -22,6 +22,7 @@ iterparse = cElementTree.iterparse
from Errors import RepoMDError
import sys
+from misc import AutoFileChecksums
def ns_cleanup(qn):
if qn.find('}') == -1: return qn
@@ -72,6 +73,8 @@ class RepoMD:
self.timestamp = 0
self.repoid = repoid
self.repoData = {}
+ self.checksums = {}
+ self.length = 0
if type(srcfile) == type('str'):
# srcfile is a filename string
@@ -80,6 +83,8 @@ class RepoMD:
# srcfile is a file object
infile = srcfile
+ infile = AutoFileChecksums(infile, ['md5', 'sha1', 'sha256'],
+ ignore_missing=True)
parser = iterparse(infile)
try:
@@ -95,6 +100,9 @@ class RepoMD:
self.timestamp = nts
except:
pass
+
+ self.checksums = infile.checksums.hexdigests()
+ self.length = len(infile.checksums)
except SyntaxError, e:
raise RepoMDError, "Damaged repomd.xml file"
@@ -112,6 +120,9 @@ class RepoMD:
"""dump fun output"""
print "file timestamp: %s" % self.timestamp
+ print "file length : %s" % self.length
+ for csum in sorted(self.checksums):
+ print "file checksum : %s/%s" % (csum, self.checksums[csum])
for ft in sorted(self.fileTypes()):
thisdata = self.repoData[ft]
print ' datatype: %s' % thisdata.type
commit eff63495586ebef6d578e371fbf3a0a469220a86
Author: James Antill <james at and.org>
Date: Sat Oct 4 15:12:55 2008 -0400
Expand on checksum() to allow multiple checksums over a single file
diff --git a/yum/misc.py b/yum/misc.py
index c9ae758..801fc0f 100644
--- a/yum/misc.py
+++ b/yum/misc.py
@@ -172,6 +172,71 @@ def unique(s):
u.append(x)
return u
+class Checksums:
+ """ Generate checksum(s), on given pieces of data. Producing the
+ Length and the result(s) when complete. """
+
+ def __init__(self, checksums=None, ignore_missing=False):
+ self._checksums = checksums
+ if self._checksums is None:
+ self._checksums = ['sha256']
+ self._sumalgos = []
+ self._sumtypes = []
+ self._len = 0
+
+ done = set()
+ for sumtype in self._checksums:
+ if sumtype in done:
+ continue
+
+ if sumtype in _available_checksums:
+ sumalgo = hashlib.new(sumtype)
+ elif ignore_missing:
+ continue
+ else:
+ raise MiscError, 'Error Checksumming, bad checksum type %s' % sumtype
+ done.add(sumtype)
+ self._sumtypes.append(sumtype)
+ self._sumalgos.append(sumalgo)
+
+ def __len__(self):
+ return self._len
+
+ def update(self, data):
+ self._len += len(data)
+ for sumalgo in self._sumalgos:
+ sumalgo.update(data)
+
+ def read(self, fo, size=2**16):
+ data = fo.read(size)
+ self.update(data)
+ return data
+
+ def hexdigests(self):
+ ret = {}
+ for sumtype, sumdata in zip(self._sumtypes, self._sumalgos):
+ ret[sumtype] = sumdata.hexdigest()
+ return ret
+
+ def hexdigest(self, checksum):
+ return self.hexdigests()[checksum]
+
+
+class AutoFileChecksums:
+ """ Generate checksum(s), on given file/fileobject. Pretending to be a file
+ object (overrrides read). """
+
+ def __init__(self, fo, checksums, ignore_missing=False):
+ self._fo = fo
+ self.checksums = Checksums(checksums, ignore_missing)
+
+ def __getattr__(self, attr):
+ return getattr(self._fo, attr)
+
+ def read(self, size=-1):
+ return self.checksums.read(self._fo, size)
+
+
def checksum(sumtype, file, CHUNK=2**16):
"""takes filename, hand back Checksum of it
sumtype = md5 or sha/sha1/sha256/sha512 (note sha == sha1)
@@ -187,20 +252,16 @@ def checksum(sumtype, file, CHUNK=2**16):
if sumtype == 'sha':
sumtype = 'sha1'
- if sumtype in _available_checksums:
- sumalgo = hashlib.new(sumtype)
- else:
- raise MiscError, 'Error Checksumming file, bad checksum type %s' % sumtype
- chunk = fo.read
- while chunk:
- chunk = fo.read(CHUNK)
- sumalgo.update(chunk)
+
+ data = Checksums([sumtype])
+ while data.read(fo, CHUNK):
+ pass
if type(file) is types.StringType:
fo.close()
del fo
- return sumalgo.hexdigest()
+ return data.hexdigest(sumtype)
except (IOError, OSError), e:
raise MiscError, 'Error opening file for checksum: %s' % file
commit 3120676a73219b018d317d8adaac0d858d751a3b
Author: James Antill <james at and.org>
Date: Sat Oct 4 13:32:45 2008 -0400
Give a nicer message when filelists contains pkgKeys primary doesn't
diff --git a/yum/repoMDObject.py b/yum/repoMDObject.py
old mode 100644
new mode 100755
diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index 578d0b9..f0f34dd 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -407,9 +407,12 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
if not self._key2pkg[repo].has_key(pkgKey):
sql = "SELECT pkgKey, pkgId, name, epoch, version, release " \
"FROM packages WHERE pkgKey = ?"
- cur = self._sql_MD('primary', repo, sql, (pkgKey,))
- po = self.pc(repo, cur.fetchone())
- self._key2pkg[repo][pkgKey] = po
+ data = self._sql_MD('primary', repo, sql, (pkgKey,)).fetchone()
+ if data is None:
+ msg = "pkgKey %s doesn't exist in repo %s" % (pkgKey, repo)
+ raise Errors.RepoError, msg
+
+ self._key2pkg[repo][pkgKey] = self.pc(repo, data)
if self._pkgArchExcluded(self._key2pkg[repo][pkgKey].arch):
return None
return self._key2pkg[repo][pkgKey]
commit 54bd2c6eebf6be6b2596e25538bff6b35e34c443
Author: James Antill <james at and.org>
Date: Thu Oct 2 13:16:53 2008 -0400
Expand the "Maybe you meant" messages for update/remove
diff --git a/cli.py b/cli.py
index c6b1420..c317971 100644
--- a/cli.py
+++ b/cli.py
@@ -503,7 +503,49 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
return 0
-
+ def _maybeYouMeant(self, arg):
+ """ If install argument doesn't match with case, tell the user. """
+ matches = self.doPackageLists(patterns=[arg], ignore_case=True)
+ matches = matches.installed + matches.available
+ matches = set(map(lambda x: x.name, matches))
+ if matches:
+ msg = self.fmtKeyValFill(_(' * Maybe you meant: '),
+ ", ".join(matches))
+ self.verbose_logger.log(yum.logginglevels.INFO_2, msg)
+
+ def _checkMaybeYouMeant(self, arg, always_output=True):
+ """ If the update/remove argument doesn't match with case, or due
+ to not being installed, tell the user. """
+ # always_output is a wart due to update/remove not producing the
+ # same output.
+ matches = self.doPackageLists(patterns=[arg], ignore_case=False)
+ if matches.installed: # Found a match so ignore
+ return
+ hibeg = self.term.MODE['bold']
+ hiend = self.term.MODE['normal']
+ if matches.available:
+ self.verbose_logger.log(yum.logginglevels.INFO_2,
+ _('Package(s) %s%s%s available, but not installed.'),
+ hibeg, arg, hiend)
+ return
+
+ # No package name, so do the maybeYouMeant thing here too
+ matches = self.doPackageLists(patterns=[arg], ignore_case=True)
+ if not matches.installed and matches.available:
+ self.verbose_logger.log(yum.logginglevels.INFO_2,
+ _('Package(s) %s%s%s available, but not installed.'),
+ hibeg, arg, hiend)
+ return
+ matches = set(map(lambda x: x.name, matches.installed))
+ if always_output or matches:
+ self.verbose_logger.log(yum.logginglevels.INFO_2,
+ _('No package %s%s%s available.'),
+ hibeg, arg, hiend)
+ if matches:
+ msg = self.fmtKeyValFill(_(' * Maybe you meant: '),
+ ", ".join(matches))
+ self.verbose_logger.log(yum.logginglevels.INFO_2, msg)
+
def installPkgs(self, userlist):
"""Attempts to take the user specified list of packages/wildcards
and install them, or if they are installed, update them to a newer
@@ -532,22 +574,10 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
self.install(pattern=arg)
except yum.Errors.InstallError:
self.verbose_logger.log(yum.logginglevels.INFO_2,
- _('No package %s available.'), arg)
- matches = self.doPackageLists(patterns=[arg], ignore_case=True)
- # The problem here is that if this is the second time around
- # then we've already pre-cached the results from doPackageLists
- # to be all the available pkgs. So we need to match.
- # FIXME: Really we should probably put this in
- # doPackageLists() / returnPackages() when we have a pattern.
- matches = matches.installed + matches.available
- exactmatch, matched, unmatched = parsePackages(matches, [arg])
- matches = yum.misc.unique(exactmatch + matched)
- matches = set(map(lambda x: x.name, matches))
- if matches:
- msg = self.fmtKeyValFill(_(' * Maybe you meant: '),
- ", ".join(matches))
- self.verbose_logger.log(yum.logginglevels.INFO_2, msg)
-
+ _('No package %s%s%s available.'),
+ self.term.MODE['bold'], arg,
+ self.term.MODE['normal'])
+ self._maybeYouMeant(arg)
if len(self.tsInfo) > oldcount:
return 2, [_('Package(s) to install')]
return 0, [_('Nothing to do')]
@@ -577,8 +607,9 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
for item in localupdates:
userlist.remove(item)
- for pattern in userlist:
- self.update(pattern=pattern)
+ for arg in userlist:
+ if not self.update(pattern=arg):
+ self._checkMaybeYouMeant(arg)
if len(self.tsInfo) > oldcount:
change = len(self.tsInfo) - oldcount
@@ -587,9 +618,6 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
else:
return 0, [_('No Packages marked for Update')]
-
-
-
def erasePkgs(self, userlist):
"""take user commands and populate a transaction wrapper with packages
to be erased/removed"""
@@ -597,7 +625,8 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
oldcount = len(self.tsInfo)
for arg in userlist:
- self.remove(pattern=arg)
+ if not self.remove(pattern=arg):
+ self._checkMaybeYouMeant(arg, always_output=False)
if len(self.tsInfo) > oldcount:
change = len(self.tsInfo) - oldcount
commit e413e5e0110d0c604915de3b74a6bfd75747acc4
Author: James Antill <james at and.org>
Date: Wed Oct 1 11:36:14 2008 -0400
Do a simple try/except on the plugin load_module, dtops 464920 going critical
diff --git a/yum/plugins.py b/yum/plugins.py
index a623e16..82efdee 100644
--- a/yum/plugins.py
+++ b/yum/plugins.py
@@ -249,24 +249,33 @@ class YumPlugins:
self.verbose_logger.debug(_('"%s" plugin is disabled'), modname)
return
- fp, pathname, description = imp.find_module(modname, [dir])
try:
- module = imp.load_module(modname, fp, pathname, description)
- finally:
- fp.close()
+ fp, pathname, description = imp.find_module(modname, [dir])
+ try:
+ module = imp.load_module(modname, fp, pathname, description)
+ finally:
+ fp.close()
+ except:
+ if self.verbose_logger.isEnabledFor(logginglevels.DEBUG_4):
+ raise # Give full backtrace:
+ self.verbose_logger.error(_('Plugin "%s" can\'t be imported') %
+ modname)
+ return
# Check API version required by the plugin
if not hasattr(module, 'requires_api_version'):
- raise Errors.ConfigError(
- _('Plugin "%s" doesn\'t specify required API version') % modname
- )
+ self.verbose_logger.error(
+ _('Plugin "%s" doesn\'t specify required API version') %
+ modname)
+ return
if not apiverok(API_VERSION, module.requires_api_version):
- raise Errors.ConfigError(
+ self.verbose_logger.error(
_('Plugin "%s" requires API %s. Supported API is %s.') % (
modname,
module.requires_api_version,
API_VERSION,
))
+ return
# Check plugin type against filter
plugintypes = getattr(module, 'plugin_type', ALL_TYPES)
commit af0fff95a573837fdc8abd87aebb7dd8a8693532
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Mon Sep 29 09:31:37 2008 -0400
change spec file url to yum.baseurl.org
diff --git a/yum.spec b/yum.spec
index b8cb2e2..0eb35e3 100644
--- a/yum.spec
+++ b/yum.spec
@@ -5,7 +5,7 @@ Release: 0
License: GPLv2+
Group: System Environment/Base
Source: %{name}-%{version}.tar.gz
-URL: http://linux.duke.edu/yum/
+URL: http://yum.baseurl.org/
BuildRoot: %{_tmppath}/%{name}-%{version}root
BuildArchitectures: noarch
BuildRequires: python
commit 2c470c9070ee1dbf1d6089a803d2d5991973c64f
Author: Jeff Seltren <jeff at osuosl.org>
Date: Sat Sep 27 20:51:58 2008 -0400
Fix typos in man pages, bug 447588
diff --git a/docs/yum.conf.5 b/docs/yum.conf.5
index 415f84b..183944b 100644
--- a/docs/yum.conf.5
+++ b/docs/yum.conf.5
@@ -32,7 +32,7 @@ runs. The default is `/var/lib/yum'.
.IP \fBkeepcache\fR
Either `1' or `0'. Determines whether or not yum keeps the cache
-of headers and packages after succesful installation. Default is '1'
+of headers and packages after successful installation. Default is '1'
(keep files)
.br
@@ -73,7 +73,7 @@ are causing problems from the transaction.
Either `1' or `0'. Determines whether or not yum prompts for confirmation of
critical actions. Default is `0' (do prompt).
.br
-Commmand-line option: \fB\-y\fP
+Command-line option: \fB\-y\fP
.IP \fBalwaysprompt\fR
Either `1' or `0'. Without this option, yum will not prompt for confirmation
@@ -89,7 +89,7 @@ command line with regard to packages. For example: if you request to install
foo, bar and baz and baz is installed; yum won't error out complaining that baz
is already installed. Default to `0' (not tolerant).
.br
-Commmand-line option: \fB\-t\fP
+Command-line option: \fB\-t\fP
.IP \fBexclude\fR
List of packages to exclude from updates or installs. This should be a space
@@ -125,7 +125,7 @@ This option only has affect during an \fBupdate\fR. It enables yum's
obsoletes processing logic. Useful when doing distribution level upgrades. See
also the yum \fBupgrade\fR command documentation for more details (yum(8)).
.br
-Commmand-line option: \fB\-\-obsoletes\fP
+Command-line option: \fB\-\-obsoletes\fP
.IP \fBoverwrite_groups \fR
Either `0' or `1'. Used to determine yum's behaviour if two or more
@@ -147,7 +147,7 @@ Default is: default, mandatory
Specifies an alternative installroot, relative to which all packages will be
installed.
.br
-Commmand-line option: \fB\-\-installroot\fP
+Command-line option: \fB\-\-installroot\fP
.IP \fBdistroverpkg\fR
The package used by yum to determine the "version" of the distribution. This
@@ -255,7 +255,7 @@ current metadata downloaded is less than this many seconds old then yum will
not update the metadata against the repository. If you find that
yum is not downloading information on updates as often as you would like
lower the value of this option. You can also change from the default of using
-seconds to using days, hours or minutes by appending a d, h or m respectivley.
+seconds to using days, hours or minutes by appending a d, h or m respectively.
The default is 1.5 hours, to compliment yum-updatesd running once an hour.
It's also possible to use the word "never", meaning that the metadata will
never expire.
commit 022032809e36141e00caa43f01668e3983067db1
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date: Wed Sep 24 09:13:03 2008 +0200
Updated French translation by Michael Ughetto
diff --git a/po/fr.po b/po/fr.po
index d3c867a..a828bc0 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -1,23 +1,23 @@
# translation of yum.master.po to fr_FR
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# Copyright (C) 2008 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Johan Cwiklinski <johan at x-tnd.be>, 2008.
# Thomas Canniot <mrtom at fedoraproject.org>, 2008.
+# Michaël Ughetto <telimektar1er at gmail.com>, 2008
msgid ""
msgstr ""
"Project-Id-Version: yum.master\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-04-19 04:26+0000\n"
-"PO-Revision-Date: 2008-04-21 06:20+0200\n"
+"POT-Creation-Date: 2008-09-20 09:28+0000\n"
+"PO-Revision-Date: 2008-09-20 19:32+0200\n"
"Last-Translator: Johan Cwiklinski <johan at x-tnd.be>\n"
"Language-Team: fr_FR <fedora-trans-fr at redhat.com>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.11.4\n"
+"Content-Transfer-Encoding: 8bit"
-#: ../callback.py:48 ../output.py:517 ../yum/rpmtrans.py:71
+#: ../callback.py:48 ../output.py:516 ../yum/rpmtrans.py:71
msgid "Updating"
msgstr "Mise à jour"
@@ -25,7 +25,7 @@ msgstr "Mise à jour"
msgid "Erasing"
msgstr "Suppression"
-#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:516
+#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:515
#: ../yum/rpmtrans.py:73 ../yum/rpmtrans.py:74 ../yum/rpmtrans.py:76
msgid "Installing"
msgstr "Installation"
@@ -34,7 +34,7 @@ msgstr "Installation"
msgid "Obsoleted"
msgstr "Obsolète"
-#: ../callback.py:54 ../output.py:563
+#: ../callback.py:54 ../output.py:562
msgid "Updated"
msgstr "Mis à jour"
@@ -42,7 +42,7 @@ msgstr "Mis à jour"
msgid "Erased"
msgstr "Supprimé"
-#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:561
+#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:560
msgid "Installed"
msgstr "Installé"
@@ -64,7 +64,7 @@ msgstr "Erreur : statut de sortie invalide : %s pour %s"
msgid "Erased: %s"
msgstr "Supprimé : %s"
-#: ../callback.py:217 ../output.py:518
+#: ../callback.py:217 ../output.py:517
msgid "Removing"
msgstr "Suppression"
@@ -85,32 +85,32 @@ msgstr "Configuration des dépôts"
msgid "Reading repository metadata in from local files"
msgstr "Lecture des méta données du dépôt depuis les fichiers locaux"
-#: ../cli.py:185 ../utils.py:72
+#: ../cli.py:186 ../utils.py:71
#, python-format
msgid "Config Error: %s"
msgstr "Erreur de configuration : %s"
-#: ../cli.py:188 ../cli.py:1080 ../utils.py:75
+#: ../cli.py:189 ../cli.py:1081 ../utils.py:74
#, python-format
msgid "Options Error: %s"
msgstr "Erreur d'options : %s"
-#: ../cli.py:231
+#: ../cli.py:232
msgid "You need to give some command"
msgstr "Vous devez spécifier des commandes"
-#: ../cli.py:273
+#: ../cli.py:274
msgid "Disk Requirements:\n"
msgstr "Besoins en espace disque :\n"
-#: ../cli.py:275
+#: ../cli.py:276
#, python-format
msgid " At least %dMB needed on the %s filesystem.\n"
msgstr "Au moins %dMB requis sur le système de fichiers %s.\n"
#. TODO: simplify the dependency errors?
#. Fixup the summary
-#: ../cli.py:280
+#: ../cli.py:281
msgid ""
"Error Summary\n"
"-------------\n"
@@ -118,57 +118,57 @@ msgstr ""
"Résumé des erreurs\n"
"-------------\n"
-#: ../cli.py:319
+#: ../cli.py:320
msgid "Trying to run the transaction but nothing to do. Exiting."
msgstr ""
"Tentative d'exécution de la transaction mais aucune tâche à effectuer. "
"Sortie."
-#: ../cli.py:349
+#: ../cli.py:350
msgid "Exiting on user Command"
msgstr "Arrêt à la demande de l'utilisateur"
-#: ../cli.py:353
+#: ../cli.py:354
msgid "Downloading Packages:"
msgstr "Téléchargement des paquetages :"
-#: ../cli.py:358
+#: ../cli.py:359
msgid "Error Downloading Packages:\n"
msgstr "Erreur durant le téléchargement des paquetages :\n"
-#: ../cli.py:372 ../yum/__init__.py:2809
+#: ../cli.py:373 ../yum/__init__.py:2826
msgid "Running rpm_check_debug"
msgstr "Lancement de rpm_check_debug"
-#: ../cli.py:375 ../yum/__init__.py:2812
+#: ../cli.py:376 ../yum/__init__.py:2829
msgid "ERROR with rpm_check_debug vs depsolve:"
msgstr "ERREUR de résolution de dépendance par rpm_check_debug :"
-#: ../cli.py:379 ../yum/__init__.py:2814
+#: ../cli.py:380 ../yum/__init__.py:2831
msgid "Please report this error in bugzilla"
msgstr "Veuillez reporter cette erreur dans le bugzilla"
-#: ../cli.py:385
+#: ../cli.py:386
msgid "Running Transaction Test"
msgstr "Lancement de la transaction de test"
-#: ../cli.py:401
+#: ../cli.py:402
msgid "Finished Transaction Test"
msgstr "Transaction de test terminée"
-#: ../cli.py:403
+#: ../cli.py:404
msgid "Transaction Check Error:\n"
msgstr "Erreur du contrôle de transaction :\n"
-#: ../cli.py:410
+#: ../cli.py:411
msgid "Transaction Test Succeeded"
msgstr "Transaction de test réussie"
-#: ../cli.py:431
+#: ../cli.py:432
msgid "Running Transaction"
msgstr "Lancement de la transaction"
-#: ../cli.py:461
+#: ../cli.py:462
msgid ""
"Refusing to automatically import keys when running unattended.\n"
"Use \"-y\" to override."
@@ -177,168 +177,169 @@ msgstr ""
"inattendue.\n"
"Utilisez l'option « -y » pour passer outre."
-#: ../cli.py:493
+#: ../cli.py:494
msgid "Parsing package install arguments"
msgstr "Traitement des options d'installation des paquetages"
-#: ../cli.py:503
+#: ../cli.py:504
#, python-format
msgid "No package %s available."
msgstr "Aucun paquetage %s disponible."
-#: ../cli.py:507 ../cli.py:625 ../yumcommands.py:777
+#: ../cli.py:508 ../cli.py:626 ../yumcommands.py:790
msgid "Package(s) to install"
msgstr "Paquetage(s) Ã installer"
-#: ../cli.py:508 ../cli.py:626 ../yumcommands.py:147 ../yumcommands.py:778
+#: ../cli.py:509 ../cli.py:627 ../yumcommands.py:147 ../yumcommands.py:791
msgid "Nothing to do"
msgstr "Rien à faire"
-#: ../cli.py:538 ../yum/__init__.py:2267 ../yum/__init__.py:2367
-#: ../yum/__init__.py:2379
+#: ../cli.py:539 ../yum/__init__.py:2275 ../yum/__init__.py:2375
+#: ../yum/__init__.py:2387
#, python-format
msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
msgstr ""
"Pas de mise à jour des paquetages qui ont déjà été rendus obsolètes : %s.%s %"
"s:%s-%s"
-#: ../cli.py:570
+#: ../cli.py:571
#, python-format
msgid "Could not find update match for %s"
msgstr "Impossible de trouver une correspondance pour la mise à jour de %s"
-#: ../cli.py:582
+#: ../cli.py:583
#, python-format
msgid "%d packages marked for Update"
msgstr "%d paquetages marqués pour mise à jour"
-#: ../cli.py:585
+#: ../cli.py:586
msgid "No Packages marked for Update"
msgstr "Aucun paquetage marqué pour mise à jour"
-#: ../cli.py:601
+#: ../cli.py:602
#, python-format
msgid "%d packages marked for removal"
msgstr "%d paquetages marqués pour suppression"
-#: ../cli.py:604
+#: ../cli.py:605
msgid "No Packages marked for removal"
msgstr "Aucun paquetage marqué pour suppression"
-#: ../cli.py:616
+#: ../cli.py:617
msgid "No Packages Provided"
msgstr "Pas de paquetage fourni"
-#: ../cli.py:656
+#: ../cli.py:657
msgid "Matching packages for package list to user args"
msgstr "Liste des paquetages correspondant à la demande de l'utilisateur"
-#: ../cli.py:704
+#: ../cli.py:705
#, python-format
msgid "Warning: No matches found for: %s"
msgstr "Attention : Aucune correspondance trouvée pour : %s"
-#: ../cli.py:707
+#: ../cli.py:708
msgid "No Matches found"
msgstr "Aucune correspondance trouvée"
-#: ../cli.py:748
+#: ../cli.py:749
#, python-format
msgid "No Package Found for %s"
msgstr "Aucun paquetage trouvé pour %s"
-#: ../cli.py:760
+#: ../cli.py:761
msgid "Cleaning up Everything"
msgstr "Nettoyage complet"
-#: ../cli.py:774
+#: ../cli.py:775
msgid "Cleaning up Headers"
msgstr "Nettoyage des en-têtes"
-#: ../cli.py:777
+#: ../cli.py:778
msgid "Cleaning up Packages"
msgstr "Nettoyage des paquetages"
-#: ../cli.py:780
+#: ../cli.py:781
msgid "Cleaning up xml metadata"
msgstr "Nettoyage des méta données xml"
-#: ../cli.py:783
+#: ../cli.py:784
msgid "Cleaning up database cache"
msgstr "Nettoyage du cache de la base de données"
-#: ../cli.py:786
+#: ../cli.py:787
msgid "Cleaning up expire-cache metadata"
msgstr "Nettoyage des méta données expirées dans le cache"
-#: ../cli.py:789
+#: ../cli.py:790
msgid "Cleaning up plugins"
msgstr "Nettoyage des modules complémentaires"
-#: ../cli.py:811
+#: ../cli.py:812
msgid "Installed Groups:"
msgstr "Groupes installés :"
-#: ../cli.py:818
+#: ../cli.py:819
msgid "Available Groups:"
msgstr "Groupes disponibles :"
-#: ../cli.py:824
+#: ../cli.py:825
msgid "Done"
msgstr "Effectué"
-#: ../cli.py:835 ../cli.py:853 ../cli.py:859
+#: ../cli.py:836 ../cli.py:854 ../cli.py:860
#, python-format
msgid "Warning: Group %s does not exist."
msgstr "Attention : le groupe %s n'existe pas."
-#: ../cli.py:863
+#: ../cli.py:864
msgid "No packages in any requested group available to install or update"
msgstr ""
"Aucun paquetage disponible pour installation ou mise à jour dans les groupes "
"demandés"
-#: ../cli.py:865
+#: ../cli.py:866
#, python-format
msgid "%d Package(s) to Install"
msgstr "%d paquetage(s) Ã installer"
-#: ../cli.py:875
+#: ../cli.py:876
#, python-format
msgid "No group named %s exists"
msgstr "Aucun groupe nommé %s n'existe"
-#: ../cli.py:881
+#: ../cli.py:882
msgid "No packages to remove from groups"
msgstr "Aucun paquetage du groupe à supprimer"
-#: ../cli.py:883
+#: ../cli.py:884
#, python-format
msgid "%d Package(s) to remove"
msgstr "%d paquetage(s) Ã supprimer"
-#: ../cli.py:925
+#: ../cli.py:926
#, python-format
msgid "Package %s is already installed, skipping"
msgstr "Le paquetage %s est déjà installé, omission"
-#: ../cli.py:936
+#: ../cli.py:937
#, python-format
msgid "Discarding non-comparable pkg %s.%s"
msgstr "Rejet du paquetage non comparable %s.%s"
#. we've not got any installed that match n or n+a
-#: ../cli.py:962
+#: ../cli.py:963
#, python-format
msgid "No other %s installed, adding to list for potential install"
-msgstr "Pas d'autre %s installé, ajout à la liste pour installation potentielle"
+msgstr ""
+"Pas d'autre %s installé, ajout à la liste pour installation potentielle"
-#: ../cli.py:981
+#: ../cli.py:982
#, python-format
msgid "Command line error: %s"
msgstr "Erreur sur la ligne de commande : %s"
-#: ../cli.py:993
+#: ../cli.py:994
#, python-format
msgid ""
"\n"
@@ -349,227 +350,227 @@ msgstr ""
"\n"
"%s : l'option %s requiert un argument"
-#: ../cli.py:1122
+#: ../cli.py:1123
msgid "show this help message and exit"
msgstr "affiche ce message d'aide et quitte"
-#: ../cli.py:1126
+#: ../cli.py:1127
msgid "be tolerant of errors"
msgstr "tolérer les erreurs"
-#: ../cli.py:1128
+#: ../cli.py:1129
msgid "run entirely from cache, don't update cache"
msgstr "exécuter entièrement depuis le cache, ne pas le mettre à jour"
-#: ../cli.py:1130
+#: ../cli.py:1131
msgid "config file location"
msgstr "emplacement du fichier de configuration"
-#: ../cli.py:1132
+#: ../cli.py:1133
msgid "maximum command wait time"
msgstr "temps d'attente maximum de la commande"
-#: ../cli.py:1134
+#: ../cli.py:1135
msgid "debugging output level"
msgstr "niveau de déboguage pour la sortie"
-#: ../cli.py:1138
+#: ../cli.py:1139
msgid "show duplicates, in repos, in list/search commands"
msgstr "afficher les doublons, dans les dépôts, pour les commandes list/search"
-#: ../cli.py:1140
+#: ../cli.py:1141
msgid "error output level"
msgstr "niveau d'erreur pour la sortie"
-#: ../cli.py:1143
+#: ../cli.py:1144
msgid "quiet operation"
msgstr "opération silencieuse"
-#: ../cli.py:1145
+#: ../cli.py:1146
msgid "verbose operation"
msgstr "opération verbeuse"
-#: ../cli.py:1147
+#: ../cli.py:1148
msgid "answer yes for all questions"
msgstr "répondre oui à toutes les questions"
-#: ../cli.py:1149
+#: ../cli.py:1150
msgid "show Yum version and exit"
msgstr "affiche la version de Yum et quitte"
-#: ../cli.py:1150
+#: ../cli.py:1151
msgid "set install root"
msgstr "définit la racine d'installation"
-#: ../cli.py:1154
+#: ../cli.py:1155
msgid "enable one or more repositories (wildcards allowed)"
msgstr "active un ou plusieurs dépôts (jokers autorisés)"
-#: ../cli.py:1158
+#: ../cli.py:1159
msgid "disable one or more repositories (wildcards allowed)"
msgstr "désactive un ou plusieurs dépôts (jokers autorisés)"
-#: ../cli.py:1161
+#: ../cli.py:1162
msgid "exclude package(s) by name or glob"
msgstr "exclut des paquetages par nom ou caractère générique"
-#: ../cli.py:1163
+#: ../cli.py:1164
msgid "disable exclude from main, for a repo or for everything"
msgstr ""
"désactive l'exclusion pour le dépôt principal, pour un dépôt particulier ou "
"pour tout"
-#: ../cli.py:1166
+#: ../cli.py:1167
msgid "enable obsoletes processing during updates"
msgstr "active le traitement des paquetages obsolètes pendant les mises à jour"
-#: ../cli.py:1168
+#: ../cli.py:1169
msgid "disable Yum plugins"
msgstr "désactive les modules complémentaires Yum"
-#: ../cli.py:1170
+#: ../cli.py:1171
msgid "disable gpg signature checking"
msgstr "désactive la vérification de clé gpg"
-#: ../cli.py:1172
+#: ../cli.py:1173
msgid "disable plugins by name"
msgstr "désactive les modules complémentaires par nom"
-#: ../cli.py:1175
+#: ../cli.py:1176
msgid "skip packages with depsolving problems"
msgstr "omettre les paquetages qui ont des problèmes de dépendances"
-#: ../output.py:229
+#: ../output.py:228
msgid "Jan"
msgstr "Jan"
-#: ../output.py:229
+#: ../output.py:228
msgid "Feb"
msgstr "Fév"
-#: ../output.py:229
+#: ../output.py:228
msgid "Mar"
msgstr "Mars"
-#: ../output.py:229
+#: ../output.py:228
msgid "Apr"
msgstr "Avr"
-#: ../output.py:229
+#: ../output.py:228
msgid "May"
msgstr "Mai"
-#: ../output.py:229
+#: ../output.py:228
msgid "Jun"
msgstr "Juin"
-#: ../output.py:230
+#: ../output.py:229
msgid "Jul"
msgstr "Jui"
-#: ../output.py:230
+#: ../output.py:229
msgid "Aug"
msgstr "Août"
-#: ../output.py:230
+#: ../output.py:229
msgid "Sep"
msgstr "Sep"
-#: ../output.py:230
+#: ../output.py:229
msgid "Oct"
msgstr "Oct"
-#: ../output.py:230
+#: ../output.py:229
msgid "Nov"
msgstr "Nov"
-#: ../output.py:230
+#: ../output.py:229
msgid "Dec"
msgstr "Déc"
-#: ../output.py:240
+#: ../output.py:239
msgid "Trying other mirror."
msgstr "Essai d'un autre miroir."
-#: ../output.py:294
+#: ../output.py:293
#, python-format
msgid "Name : %s"
msgstr "Nom  : %s"
-#: ../output.py:295
+#: ../output.py:294
#, python-format
msgid "Arch : %s"
msgstr "Architecture  : %s"
-#: ../output.py:297
+#: ../output.py:296
#, python-format
msgid "Epoch : %s"
msgstr "Date  : %s"
-#: ../output.py:298
+#: ../output.py:297
#, python-format
msgid "Version : %s"
msgstr "Version  : %s"
-#: ../output.py:299
+#: ../output.py:298
#, python-format
msgid "Release : %s"
msgstr "Révision  : %s"
-#: ../output.py:300
+#: ../output.py:299
#, python-format
msgid "Size : %s"
msgstr "Taille  : %s"
-#: ../output.py:301
+#: ../output.py:300
#, python-format
msgid "Repo : %s"
msgstr "Dépôt  : %s"
-#: ../output.py:303
+#: ../output.py:302
#, python-format
msgid "Committer : %s"
msgstr "Auteur  : %s"
-#: ../output.py:304
+#: ../output.py:303
msgid "Summary : "
msgstr "Résumé  : "
-#: ../output.py:306
+#: ../output.py:305
#, python-format
msgid "URL : %s"
msgstr "URL Â : %s"
-#: ../output.py:307
+#: ../output.py:306
#, python-format
msgid "License : %s"
msgstr "Licence  : %s"
-#: ../output.py:308
+#: ../output.py:307
msgid "Description: "
msgstr "Description :"
-#: ../output.py:352
+#: ../output.py:351
msgid "Is this ok [y/N]: "
msgstr "Est-ce correct [o/N]Â : "
-#: ../output.py:360 ../output.py:363
+#: ../output.py:359 ../output.py:362
msgid "y"
msgstr "o"
-#: ../output.py:360
+#: ../output.py:359
msgid "n"
msgstr "n"
-#: ../output.py:360 ../output.py:363
+#: ../output.py:359 ../output.py:362
msgid "yes"
msgstr "oui"
-#: ../output.py:360
+#: ../output.py:359
msgid "no"
msgstr "non"
-#: ../output.py:371
+#: ../output.py:370
#, python-format
msgid ""
"\n"
@@ -578,98 +579,98 @@ msgstr ""
"\n"
"Groupe : %s"
-#: ../output.py:373
+#: ../output.py:372
#, python-format
msgid " Description: %s"
msgstr " Description : %s"
-#: ../output.py:375
+#: ../output.py:374
msgid " Mandatory Packages:"
msgstr " Paquetages mandataires :"
-#: ../output.py:380
+#: ../output.py:379
msgid " Default Packages:"
msgstr "Paquetages par défaut :"
-#: ../output.py:385
+#: ../output.py:384
msgid " Optional Packages:"
msgstr "Paquetages optionnels :"
-#: ../output.py:390
+#: ../output.py:389
msgid " Conditional Packages:"
msgstr " Paquetages conditionnels :"
-#: ../output.py:399
+#: ../output.py:398
#, python-format
msgid "package: %s"
msgstr "paquetage : %s"
-#: ../output.py:401
+#: ../output.py:400
msgid " No dependencies for this package"
msgstr "Pas de dépendances pour ce paquetage"
-#: ../output.py:406
+#: ../output.py:405
#, python-format
msgid " dependency: %s"
msgstr " dépendance : %s"
-#: ../output.py:408
+#: ../output.py:407
msgid " Unsatisfied dependency"
msgstr " Dépendance non satisfaite"
-#: ../output.py:466
+#: ../output.py:465
msgid "Matched from:"
msgstr "Correspondance depuis :"
-#: ../output.py:492
+#: ../output.py:491
msgid "There was an error calculating total download size"
msgstr ""
"Une erreur est survenue pendant le calcul de la taille totale des "
"téléchargements"
-#: ../output.py:497
+#: ../output.py:496
#, python-format
msgid "Total size: %s"
msgstr "Taille totale : %s"
-#: ../output.py:500
+#: ../output.py:499
#, python-format
msgid "Total download size: %s"
msgstr "Taille totale des téléchargement : %s"
-#: ../output.py:512
+#: ../output.py:511
msgid "Package"
msgstr "Paquetage"
-#: ../output.py:512
+#: ../output.py:511
msgid "Arch"
msgstr "Architecture"
-#: ../output.py:512
+#: ../output.py:511
msgid "Version"
msgstr "Version"
-#: ../output.py:512
+#: ../output.py:511
msgid "Repository"
msgstr "Dépôt"
-#: ../output.py:512
+#: ../output.py:511
msgid "Size"
msgstr "Taille"
-#: ../output.py:519
+#: ../output.py:518
msgid "Installing for dependencies"
msgstr "Installation pour dépendance"
-#: ../output.py:520
+#: ../output.py:519
msgid "Updating for dependencies"
msgstr "Mise à jour pour dépendance"
-#: ../output.py:521
+#: ../output.py:520
msgid "Removing for dependencies"
msgstr "Suppression pour dépendance"
-#: ../output.py:533
+#: ../output.py:532
#, python-format
msgid ""
" replacing %s.%s %s\n"
@@ -678,7 +679,7 @@ msgstr ""
" remplace %s.%s %s\n"
"\n"
-#: ../output.py:541
+#: ../output.py:540
#, python-format
msgid ""
"\n"
@@ -695,27 +696,27 @@ msgstr ""
"Mise à jour %5.5s Package(s) \n"
"Suppression %5.5s Package(s) \n"
-#: ../output.py:559
+#: ../output.py:558
msgid "Removed"
msgstr "Supprimé"
-#: ../output.py:560
+#: ../output.py:559
msgid "Dependency Removed"
msgstr "Dépendance supprimée"
-#: ../output.py:562
+#: ../output.py:561
msgid "Dependency Installed"
msgstr "Dépendance installée"
-#: ../output.py:564
+#: ../output.py:563
msgid "Dependency Updated"
msgstr "Dépendance mise à jour"
-#: ../output.py:565
+#: ../output.py:564
msgid "Replaced"
msgstr "Remplacé"
-#: ../output.py:623
+#: ../output.py:622
#, python-format
msgid ""
"\n"
@@ -726,67 +727,67 @@ msgstr ""
"Téléchargement courant annulé, interruption %s (crtl-c), %s de nouveau dans %"
"s%s%s secondes pour quitter.\n"
-#: ../output.py:633
+#: ../output.py:632
msgid "user interrupt"
msgstr "interruption par l'utilisateur"
-#: ../output.py:644
+#: ../output.py:643
msgid "installed"
msgstr "installé"
-#: ../output.py:645
+#: ../output.py:644
msgid "updated"
msgstr "mis à jour"
-#: ../output.py:646
+#: ../output.py:645
msgid "obsoleted"
msgstr "obsolète"
-#: ../output.py:647
+#: ../output.py:646
msgid "erased"
msgstr "effacé"
-#: ../output.py:651
+#: ../output.py:650
#, python-format
msgid "---> Package %s.%s %s:%s-%s set to be %s"
msgstr "---> Paquetage %s.%s %s:%s-%s marqué pour être %s "
-#: ../output.py:658
+#: ../output.py:657
msgid "--> Running transaction check"
msgstr "--> Lancement de la transaction de test"
-#: ../output.py:663
+#: ../output.py:662
msgid "--> Restarting Dependency Resolution with new changes."
msgstr ""
"--> Redémarrage de la résolution des dépendances avec les nouveaux "
"changements."
-#: ../output.py:668
+#: ../output.py:667
msgid "--> Finished Dependency Resolution"
msgstr "--> Résolution des dépendances terminée"
-#: ../output.py:673
+#: ../output.py:672
#, python-format
msgid "--> Processing Dependency: %s for package: %s"
msgstr "--> Traitement de la dépendance : %s pour le paquetage : %s"
-#: ../output.py:678
+#: ../output.py:677
#, python-format
msgid "--> Unresolved Dependency: %s"
msgstr "--> Dépendance non résolue : %s"
-#: ../output.py:684
+#: ../output.py:683
#, python-format
msgid "--> Processing Conflict: %s conflicts %s"
msgstr "--> Traitement du conflit : %s entre en conflit avec %s"
-#: ../output.py:687
+#: ../output.py:686
msgid "--> Populating transaction set with selected packages. Please wait."
msgstr ""
"--> Peuplement du jeu de transaction avec les paquetages sélectionnés. Merci "
"de patienter."
-#: ../output.py:691
+#: ../output.py:690
#, python-format
msgid "---> Downloading header for %s to pack into transaction set."
msgstr "--> Téléchargement de l'en-tête de %s pour l'ajouter à la transaction."
@@ -1043,48 +1044,52 @@ msgstr "Recherche de dépendances :"
msgid "Display the configured software repositories"
msgstr "Affiche les dépôts logiciels configurés"
-#: ../yumcommands.py:662
+#: ../yumcommands.py:666
msgid "enabled"
msgstr "activé"
-#: ../yumcommands.py:665
+#: ../yumcommands.py:673
msgid "disabled"
msgstr "désactivé"
-#: ../yumcommands.py:672
+#: ../yumcommands.py:682
msgid "repo id"
msgstr "id du dépôt"
-#: ../yumcommands.py:673
+#: ../yumcommands.py:683
msgid "repo name"
msgstr "nom du dépôt"
-#: ../yumcommands.py:673
+#: ../yumcommands.py:683
msgid "status"
msgstr "statut"
-#: ../yumcommands.py:676
+#: ../yumcommands.py:686
msgid "Repo-id : "
msgstr "Id du dépôt : "
-#: ../yumcommands.py:677
+#: ../yumcommands.py:687
msgid "Repo-name : "
msgstr "Nom du dépôt  : "
-#: ../yumcommands.py:678
+#: ../yumcommands.py:688
msgid "Repo-enabled: "
msgstr "Dépôt activé :"
-#: ../yumcommands.py:700
+#: ../yumcommands.py:689
+msgid "Repo-size : "
+msgstr "Nom du dépôt  : "
+
+#: ../yumcommands.py:713
msgid "Display a helpful usage message"
msgstr "Affiche un message d'aide à l'utilisation"
-#: ../yumcommands.py:734
+#: ../yumcommands.py:747
#, python-format
msgid "No help available for %s"
msgstr "Aucune aide disponible pour %s"
-#: ../yumcommands.py:739
+#: ../yumcommands.py:752
msgid ""
"\n"
"\n"
@@ -1094,7 +1099,7 @@ msgstr ""
"\n"
"alias : "
-#: ../yumcommands.py:741
+#: ../yumcommands.py:754
msgid ""
"\n"
"\n"
@@ -1104,15 +1109,15 @@ msgstr ""
"\n"
"alias : "
-#: ../yumcommands.py:770
+#: ../yumcommands.py:783
msgid "Setting up Reinstall Process"
msgstr "Configuration du processus de réinstallation"
-#: ../yumcommands.py:784
+#: ../yumcommands.py:797
msgid "reinstall a package"
msgstr "réinstaller un paquetage"
-#: ../yummain.py:53
+#: ../yummain.py:55
msgid ""
"\n"
"\n"
@@ -1122,7 +1127,7 @@ msgstr ""
"\n"
"Sortie sur annulation par l'utilisateur"
-#: ../yummain.py:59
+#: ../yummain.py:61
msgid ""
"\n"
"\n"
@@ -1132,28 +1137,29 @@ msgstr ""
"\n"
"Sortie suite à une redirection cassée"
-#: ../yummain.py:110
-msgid "Another app is currently holding the yum lock; waiting for it to exit..."
+#: ../yummain.py:112
+msgid ""
+"Another app is currently holding the yum lock; waiting for it to exit..."
msgstr ""
"Une autre application verrouille actuellement l'utilisation de yum ; attente "
"de déverrouillage..."
-#: ../yummain.py:137 ../yummain.py:176
+#: ../yummain.py:139 ../yummain.py:178
#, python-format
msgid "Error: %s"
msgstr "Erreur : %s"
-#: ../yummain.py:147 ../yummain.py:183
+#: ../yummain.py:149 ../yummain.py:185
#, python-format
msgid "Unknown Error(s): Exit Code: %d:"
msgstr "Erreur(s) inconnue(s) : Code de sortie : %d :"
#. Depsolve stage
-#: ../yummain.py:154
+#: ../yummain.py:156
msgid "Resolving Dependencies"
msgstr "Résolution des dépendances"
-#: ../yummain.py:189
+#: ../yummain.py:191
msgid ""
"\n"
"Dependencies Resolved"
@@ -1161,11 +1167,11 @@ msgstr ""
"\n"
"Dépendances résolues"
-#: ../yummain.py:203
+#: ../yummain.py:205
msgid "Complete!"
msgstr "Terminé !"
-#: ../yummain.py:250
+#: ../yummain.py:252
msgid ""
"\n"
"\n"
@@ -1175,195 +1181,153 @@ msgstr ""
"\n"
"Sortie sur annulation par l'utilisateur."
-#: ../yum/depsolve.py:83
+#: ../yum/depsolve.py:78
msgid "doTsSetup() will go away in a future version of Yum.\n"
msgstr "doTsSetup() sera supprimé dans une future version de Yum.\n"
-#: ../yum/depsolve.py:96
+#: ../yum/depsolve.py:91
msgid "Setting up TransactionSets before config class is up"
msgstr "Mise en place de l'ensemble des transactions avant configuration"
-#: ../yum/depsolve.py:137
+#: ../yum/depsolve.py:132
#, python-format
msgid "Invalid tsflag in config file: %s"
msgstr "tsflag invalide dans le fichier de configuration : %s"
-#: ../yum/depsolve.py:148
-#, python-format
-msgid "Searching pkgSack for dep: %s"
-msgstr "Recherche dans le regroupement pour la dépendance : %s"
-
-#: ../yum/depsolve.py:171
-#, python-format
-msgid "Potential match for %s from %s"
-msgstr "Correspondance potentielle pour %s depuis %s"
-
-#: ../yum/depsolve.py:179
-#, python-format
-msgid "Matched %s to require for %s"
-msgstr "Correspondance %s trouvé pour %s "
-
-#: ../yum/depsolve.py:220
+#: ../yum/depsolve.py:176
#, python-format
msgid "Member: %s"
msgstr "Membre : %s"
-#: ../yum/depsolve.py:234 ../yum/depsolve.py:687
+#: ../yum/depsolve.py:190 ../yum/depsolve.py:592
#, python-format
msgid "%s converted to install"
msgstr "%s converti pour installation"
-#: ../yum/depsolve.py:241
+#: ../yum/depsolve.py:197
#, python-format
msgid "Adding Package %s in mode %s"
msgstr "Ajout du paquetage %s en mode %s"
-#: ../yum/depsolve.py:251
+#: ../yum/depsolve.py:207
#, python-format
msgid "Removing Package %s"
msgstr "Suppression du paquetage %s"
-#: ../yum/depsolve.py:262
+#: ../yum/depsolve.py:218
#, python-format
msgid "%s requires: %s"
msgstr "%s requiert : %s"
-#: ../yum/depsolve.py:313
-msgid "Needed Require has already been looked up, cheating"
-msgstr "Le prérequis a déjà été trouvé, on triche"
-
-#: ../yum/depsolve.py:323
-#, python-format
-msgid "Needed Require is not a package name. Looking up: %s"
-msgstr "Le prérequis n'est pas un nom de paquetage. Recherche de : %s "
-
-#: ../yum/depsolve.py:330
-#, python-format
-msgid "Potential Provider: %s"
-msgstr "Fournisseur potentiel : %s"
-
-#: ../yum/depsolve.py:353
-#, python-format
-msgid "Mode is %s for provider of %s: %s"
-msgstr "Le mode est %s pour le fournisseur de %s : %s"
-
-#: ../yum/depsolve.py:357
-#, python-format
-msgid "Mode for pkg providing %s: %s"
-msgstr "Mode pour le paquetage qui fournit %s : %s"
-
-#: ../yum/depsolve.py:361
-#, python-format
-msgid "TSINFO: %s package requiring %s marked as erase"
-msgstr "TSINFO : le paquetage %s requiert %s marqué pour suppression"
-
-#: ../yum/depsolve.py:373
+#: ../yum/depsolve.py:273
#, python-format
msgid "TSINFO: Obsoleting %s with %s to resolve dep."
msgstr "TSINFO : Obsolescence de %s avec %s pour résoudre les dépendances."
-#: ../yum/depsolve.py:376
+#: ../yum/depsolve.py:276
#, python-format
msgid "TSINFO: Updating %s to resolve dep."
msgstr "TSINFO : Mise à jour de %s pour la résolution des dépendances."
-#: ../yum/depsolve.py:379
+#: ../yum/depsolve.py:279
#, python-format
msgid "Cannot find an update path for dep for: %s"
-msgstr "Impossible de trouver un chemin de mise à jour pour la dépendance de : %s"
+msgstr ""
+"Impossible de trouver un chemin de mise à jour pour la dépendance de : %s"
-#: ../yum/depsolve.py:389
+#: ../yum/depsolve.py:283
#, python-format
-msgid "Unresolvable requirement %s for %s"
-msgstr "Impossible de résoudre le prérequis %s pour %s"
+msgid "TSINFO: %s package requiring %s marked as erase"
+msgstr "TSINFO : le paquetage %s requiert %s marqué pour suppression"
#. is it already installed?
-#: ../yum/depsolve.py:435
+#: ../yum/depsolve.py:329
#, python-format
msgid "%s is in providing packages but it is already installed, removing."
-msgstr "%s est dans les paquetages fournis mais est déjà installé, suppression."
+msgstr ""
+"%s est dans les paquetages fournis mais est déjà installé, suppression."
-#: ../yum/depsolve.py:450
+#: ../yum/depsolve.py:344
#, python-format
msgid "Potential resolving package %s has newer instance in ts."
msgstr ""
"ts contient une version plus récente du paquetage %s susceptible de résoudre "
"la dépendance."
-#: ../yum/depsolve.py:461
+#: ../yum/depsolve.py:355
#, python-format
msgid "Potential resolving package %s has newer instance installed."
msgstr ""
"Le paquetage susceptible de résoudre la dépedence %s est déjà installé dans "
"une version plus récente."
-#: ../yum/depsolve.py:469 ../yum/depsolve.py:518
+#: ../yum/depsolve.py:363 ../yum/depsolve.py:410
#, python-format
msgid "Missing Dependency: %s is needed by package %s"
msgstr "Dépendance manquante : %s est requis par le paquetage %s"
-#: ../yum/depsolve.py:482
+#: ../yum/depsolve.py:376
#, python-format
msgid "%s already in ts, skipping this one"
msgstr "%s déjà dans ts, omission de celui-ci"
-#: ../yum/depsolve.py:528
+#: ../yum/depsolve.py:420
#, python-format
msgid "TSINFO: Marking %s as update for %s"
msgstr "TSINFO : Sélection de %s pour mise à jour de %s"
-#: ../yum/depsolve.py:535
+#: ../yum/depsolve.py:427
#, python-format
msgid "TSINFO: Marking %s as install for %s"
msgstr "TSINFO : Sélection de %s pour installation de %s"
-#: ../yum/depsolve.py:626 ../yum/depsolve.py:705
+#: ../yum/depsolve.py:518 ../yum/depsolve.py:610
msgid "Success - empty transaction"
msgstr "Succès - transaction vide"
-#: ../yum/depsolve.py:664 ../yum/depsolve.py:677
+#: ../yum/depsolve.py:562 ../yum/depsolve.py:582
msgid "Restarting Loop"
msgstr "Re-démarrage de la boucle"
-#: ../yum/depsolve.py:693
+#: ../yum/depsolve.py:598
msgid "Dependency Process ending"
msgstr "Finalisation du processus de dépendance"
-#: ../yum/depsolve.py:699
+#: ../yum/depsolve.py:604
#, python-format
msgid "%s from %s has depsolving problems"
msgstr "%s de %s a des problèmes de dépendances"
-#: ../yum/depsolve.py:706
+#: ../yum/depsolve.py:611
msgid "Success - deps resolved"
msgstr "Succès - dépendances résolues"
-#: ../yum/depsolve.py:720
+#: ../yum/depsolve.py:625
#, python-format
msgid "Checking deps for %s"
msgstr "Recherche des dépendances pour %s"
-#: ../yum/depsolve.py:773
+#: ../yum/depsolve.py:687
#, python-format
msgid "looking for %s as a requirement of %s"
msgstr "recherche de %s comme prérequis de %s"
-#: ../yum/depsolve.py:911
+#: ../yum/depsolve.py:814
#, python-format
msgid "Running compare_providers() for %s"
msgstr "Lancement de compare_providers() pour %s"
-#: ../yum/depsolve.py:939 ../yum/depsolve.py:945
+#: ../yum/depsolve.py:842 ../yum/depsolve.py:848
#, python-format
msgid "better arch in po %s"
msgstr "meilleure architecture dans l'objet paquetage %s"
-#: ../yum/depsolve.py:984
+#: ../yum/depsolve.py:887
#, python-format
msgid "%s obsoletes %s"
msgstr "%s rend obsolète %s"
-#: ../yum/depsolve.py:995
+#: ../yum/depsolve.py:898
#, python-format
msgid ""
"archdist compared %s to %s on %s\n"
@@ -1372,110 +1336,111 @@ msgstr ""
"architecture %s comparée à %s sur %s\n"
" Gagnant : %s"
-#: ../yum/depsolve.py:1002
+#: ../yum/depsolve.py:905
#, python-format
msgid "common sourcerpm %s and %s"
msgstr "rpm source commun pour %s et %s"
-#: ../yum/depsolve.py:1008
+#: ../yum/depsolve.py:911
#, python-format
msgid "common prefix of %s between %s and %s"
msgstr "préfix commun %s entre %s et %s"
-#: ../yum/depsolve.py:1016
+#: ../yum/depsolve.py:919
#, python-format
msgid "Best Order: %s"
msgstr "Meilleur ordre : %s"
-#: ../yum/__init__.py:127
+#: ../yum/__init__.py:148
msgid "doConfigSetup() will go away in a future version of Yum.\n"
msgstr "doConfigSetup() sera supprimé dans une future version de Yum.\n"
-#: ../yum/__init__.py:301
+#. FIXME: Use critical? or exception?
+#: ../yum/__init__.py:323
#, python-format
msgid "Repository %r is missing name in configuration, using id"
msgstr ""
"Il manque le nom du dépôt %r dans la configuration, utilisation de "
"l'identifiant"
-#: ../yum/__init__.py:337
+#: ../yum/__init__.py:359
msgid "plugins already initialised"
msgstr "modules complémentaires déjà initialisés"
-#: ../yum/__init__.py:344
+#: ../yum/__init__.py:366
msgid "doRpmDBSetup() will go away in a future version of Yum.\n"
msgstr "doRpmDBSetup() sera supprimé dans une future version de Yum.\n"
-#: ../yum/__init__.py:354
+#: ../yum/__init__.py:376
msgid "Reading Local RPMDB"
msgstr "Lecture de la base de données RPM locale"
-#: ../yum/__init__.py:372
+#: ../yum/__init__.py:394
msgid "doRepoSetup() will go away in a future version of Yum.\n"
msgstr "doRepoSetup() sera supprimé dans une future version de Yum.\n"
-#: ../yum/__init__.py:392
+#: ../yum/__init__.py:414
msgid "doSackSetup() will go away in a future version of Yum.\n"
msgstr "doSackSetup() sera supprimé dans une future version de Yum.\n"
-#: ../yum/__init__.py:409
+#: ../yum/__init__.py:431
msgid "Setting up Package Sacks"
msgstr "Configuration du groupe de paquetages"
-#: ../yum/__init__.py:452
+#: ../yum/__init__.py:474
#, python-format
msgid "repo object for repo %s lacks a _resetSack method\n"
msgstr "une méthode _resetSack est manquante pour l'objet dépôt du dépôt %s\n"
-#: ../yum/__init__.py:453
+#: ../yum/__init__.py:475
msgid "therefore this repo cannot be reset.\n"
msgstr "en conséquence ce dépôt ne peut être réinitialisé.\n"
-#: ../yum/__init__.py:458
+#: ../yum/__init__.py:480
msgid "doUpdateSetup() will go away in a future version of Yum.\n"
msgstr "doUpdateSetup() sera supprimé dans une future version de Yum.\n"
-#: ../yum/__init__.py:470
+#: ../yum/__init__.py:492
msgid "Building updates object"
msgstr "Construction de l'objet de mises à jour"
-#: ../yum/__init__.py:501
+#: ../yum/__init__.py:523
msgid "doGroupSetup() will go away in a future version of Yum.\n"
msgstr "doGroupSetup() sera supprimé dans une future version de Yum.\n"
-#: ../yum/__init__.py:525
+#: ../yum/__init__.py:547
msgid "Getting group metadata"
msgstr "Obtention des méta données du groupe"
-#: ../yum/__init__.py:551
+#: ../yum/__init__.py:572
#, python-format
msgid "Adding group file from repository: %s"
msgstr "Ajout du ficher de groupes depuis le dépôt : %s"
-#: ../yum/__init__.py:560
+#: ../yum/__init__.py:577
#, python-format
msgid "Failed to add groups file for repository: %s - %s"
msgstr "Ãchec d'ajout du fichier de groupes pour le dépôt : %s - %s"
-#: ../yum/__init__.py:566
+#: ../yum/__init__.py:583
msgid "No Groups Available in any repository"
msgstr "Aucun groupe disponible dans les dépôts"
-#: ../yum/__init__.py:616
+#: ../yum/__init__.py:633
msgid "Importing additional filelist information"
msgstr "Import d'informations additionnelles sur la liste de fichiers"
-#: ../yum/__init__.py:664
+#: ../yum/__init__.py:684
#, python-format
msgid "Skip-broken round %i"
msgstr "Cycle %i d'évitement des dépendances cassées"
-#: ../yum/__init__.py:687
+#: ../yum/__init__.py:707
#, python-format
msgid "Skip-broken took %i rounds "
msgstr "L'évitement des dépendances cassées a pris %i cycles"
-#: ../yum/__init__.py:688
+#: ../yum/__init__.py:708
msgid ""
"\n"
"Packages skipped because of dependency problems:"
@@ -1483,163 +1448,166 @@ msgstr ""
"\n"
"Paquetages ignorés en raison de problèmes de dépendances :"
-#: ../yum/__init__.py:692
+#: ../yum/__init__.py:712
#, python-format
msgid " %s from %s"
msgstr " %s depuis %s"
-#: ../yum/__init__.py:773
-msgid "Warning: scriptlet or other non-fatal errors occurred during transaction."
-msgstr "Attention : scriptlet ou autre erreur non fatale pendant la transaction."
+#: ../yum/__init__.py:792
+msgid ""
+"Warning: scriptlet or other non-fatal errors occurred during transaction."
+msgstr ""
+"Attention : scriptlet ou autre erreur non fatale pendant la transaction."
-#: ../yum/__init__.py:788
+#: ../yum/__init__.py:807
#, python-format
msgid "Failed to remove transaction file %s"
msgstr "Ãchec de la suppression du fichier de transaction %s"
-#: ../yum/__init__.py:828
+#: ../yum/__init__.py:847
#, python-format
msgid "excluding for cost: %s from %s"
msgstr "exclusion pour coût : %s depuis %s"
-#: ../yum/__init__.py:859
+#: ../yum/__init__.py:878
msgid "Excluding Packages in global exclude list"
msgstr "Exclusion des paquetages dans la liste globale d'exclusion"
-#: ../yum/__init__.py:861
+#: ../yum/__init__.py:880
#, python-format
msgid "Excluding Packages from %s"
msgstr "Exclusion des paquetages depuis %s"
-#: ../yum/__init__.py:889
+#: ../yum/__init__.py:906
#, python-format
msgid "Reducing %s to included packages only"
msgstr "Réduction de %s aux paquetages inclus uniquement"
-#: ../yum/__init__.py:894
+#: ../yum/__init__.py:911
#, python-format
msgid "Keeping included package %s"
msgstr "Conservation du paquetage inclus %s"
-#: ../yum/__init__.py:900
+#: ../yum/__init__.py:917
#, python-format
msgid "Removing unmatched package %s"
msgstr "Suppression du paquetage non concordant %s"
-#: ../yum/__init__.py:903
+#: ../yum/__init__.py:920
msgid "Finished"
msgstr "Terminé"
#. Whoa. What the heck happened?
-#: ../yum/__init__.py:933
+#: ../yum/__init__.py:950
#, python-format
msgid "Unable to check if PID %s is active"
msgstr "Impossible de vérifier si le PID %s est actif"
#. Another copy seems to be running.
-#: ../yum/__init__.py:937
+#: ../yum/__init__.py:954
#, python-format
msgid "Existing lock %s: another copy is running as pid %s."
msgstr "Verrou %s existant : une autre copie est lancée avec le pid %s."
-#: ../yum/__init__.py:1000
+#: ../yum/__init__.py:1017
msgid "Package does not match intended download"
msgstr "Le paquetage ne correspond pas au téléchargement attendu"
-#: ../yum/__init__.py:1015
+#: ../yum/__init__.py:1032
msgid "Could not perform checksum"
msgstr "Ne peut procéder à la vérification des sommes de contrôle"
-#: ../yum/__init__.py:1018
+#: ../yum/__init__.py:1035
msgid "Package does not match checksum"
msgstr "Le paquetage ne correspond pas à sa somme de contrôle"
-#: ../yum/__init__.py:1059
+#: ../yum/__init__.py:1079
#, python-format
msgid "package fails checksum but caching is enabled for %s"
msgstr ""
"Le paquetage ne correspond pas à la somme de contrôle mais le cache est "
"activé pour %s"
-#: ../yum/__init__.py:1062
+#: ../yum/__init__.py:1082
#, python-format
msgid "using local copy of %s"
msgstr "utilisation de la copie locale de %s"
-#: ../yum/__init__.py:1087
+#: ../yum/__init__.py:1107
#, python-format
msgid "Insufficient space in download directory %s to download"
msgstr ""
"Espace disque insuffisant dans le dossier de téléchargement %s pour "
"télécharger"
-#: ../yum/__init__.py:1120
+#: ../yum/__init__.py:1140
msgid "Header is not complete."
msgstr "L'en-tête est incomplet."
-#: ../yum/__init__.py:1160
+#: ../yum/__init__.py:1180
#, python-format
-msgid "Header not in local cache and caching-only mode enabled. Cannot download %s"
+msgid ""
+"Header not in local cache and caching-only mode enabled. Cannot download %s"
msgstr ""
"L'en-tête n'est pas dans le cache et le mode cache uniquement est activé. "
"Impossible de télécharger %s"
-#: ../yum/__init__.py:1215
+#: ../yum/__init__.py:1235
#, python-format
msgid "Public key for %s is not installed"
msgstr "La clé publique pour %s n'est pas installée"
-#: ../yum/__init__.py:1219
+#: ../yum/__init__.py:1239
#, python-format
msgid "Problem opening package %s"
msgstr "Problème à l'ouverture du paquetage %s"
-#: ../yum/__init__.py:1227
+#: ../yum/__init__.py:1247
#, python-format
msgid "Public key for %s is not trusted"
msgstr "La clé publique pour %s n'est pas de confiance"
-#: ../yum/__init__.py:1231
+#: ../yum/__init__.py:1251
#, python-format
msgid "Package %s is not signed"
msgstr "Le paquetage %s n'est pas signé"
-#: ../yum/__init__.py:1269
+#: ../yum/__init__.py:1289
#, python-format
msgid "Cannot remove %s"
msgstr "Impossible de supprimer %s"
-#: ../yum/__init__.py:1273
+#: ../yum/__init__.py:1292
#, python-format
msgid "%s removed"
msgstr "%s supprimé"
-#: ../yum/__init__.py:1309
+#: ../yum/__init__.py:1328
#, python-format
msgid "Cannot remove %s file %s"
msgstr "Impossible de supprimer depuis %s le fichier %s"
-#: ../yum/__init__.py:1313
+#: ../yum/__init__.py:1331
#, python-format
msgid "%s file %s removed"
msgstr "fichier de %s : %s supprimé"
-#: ../yum/__init__.py:1315
+#: ../yum/__init__.py:1333
#, python-format
msgid "%d %s files removed"
msgstr "%d fichiers de %s supprimés"
-#: ../yum/__init__.py:1369
+#: ../yum/__init__.py:1386
#, python-format
msgid "More than one identical match in sack for %s"
msgstr "Plus d'une correspondance identique dans le regroupement pour %s"
-#: ../yum/__init__.py:1375
+#: ../yum/__init__.py:1391
#, python-format
msgid "Nothing matches %s.%s %s:%s-%s from update"
msgstr "Rien ne correspond à %s.%s %s:%s-%s dans la mise à jour"
-#: ../yum/__init__.py:1573
+#: ../yum/__init__.py:1585
msgid ""
"searchPackages() will go away in a future version of "
"Yum. Use searchGenerator() instead. \n"
@@ -1647,134 +1615,141 @@ msgstr ""
"searchPackages() sera supprimé dans une future version de "
"Yum. Utilisez searchGenerator() Ã la place. \n"
-#: ../yum/__init__.py:1610
+#: ../yum/__init__.py:1621
#, python-format
msgid "Searching %d packages"
msgstr "Recherche de %d paquetages"
-#: ../yum/__init__.py:1614
+#: ../yum/__init__.py:1624
#, python-format
msgid "searching package %s"
msgstr "recherche du paquetage %s"
-#: ../yum/__init__.py:1626
+#: ../yum/__init__.py:1635
msgid "searching in file entries"
msgstr "recherche dans les entrées de fichiers"
-#: ../yum/__init__.py:1633
+#: ../yum/__init__.py:1641
msgid "searching in provides entries"
msgstr "recherche dans les entrées de correspondance"
-#: ../yum/__init__.py:1663
+#: ../yum/__init__.py:1671
#, python-format
msgid "Provides-match: %s"
msgstr "Correspondance fournie : %s"
-#: ../yum/__init__.py:1732 ../yum/__init__.py:1751 ../yum/__init__.py:1778
-#: ../yum/__init__.py:1784 ../yum/__init__.py:1840 ../yum/__init__.py:1844
+#: ../yum/__init__.py:1717
+msgid "No group data available for configured repositories"
+msgstr "Aucune donnée sur les groupes disponible pour les dépôts configurés"
+
+#: ../yum/__init__.py:1743 ../yum/__init__.py:1762 ../yum/__init__.py:1788
+#: ../yum/__init__.py:1794 ../yum/__init__.py:1850 ../yum/__init__.py:1854
#, python-format
msgid "No Group named %s exists"
msgstr "Aucun groupe nommé %s n'existe"
-#: ../yum/__init__.py:1763 ../yum/__init__.py:1857
+#: ../yum/__init__.py:1773 ../yum/__init__.py:1866
#, python-format
msgid "package %s was not marked in group %s"
msgstr "le paquetage %s n'a pas été marqué dans le groupe %s"
-#: ../yum/__init__.py:1802
+#: ../yum/__init__.py:1811
#, python-format
msgid "Adding package %s from group %s"
msgstr "Ajout du paquetage %s pour le groupe %s"
-#: ../yum/__init__.py:1806
+#: ../yum/__init__.py:1816
#, python-format
msgid "No package named %s available to be installed"
msgstr "Aucun paquetage nommé %s n'est disponible pour installation"
-#: ../yum/__init__.py:1882
+#: ../yum/__init__.py:1891
#, python-format
msgid "Package tuple %s could not be found in packagesack"
msgstr "Impossible de trouver le tuple de paquetage %s dans le regroupement"
-#: ../yum/__init__.py:1950 ../yum/__init__.py:1993
+#: ../yum/__init__.py:1959 ../yum/__init__.py:1999
msgid "Invalid versioned dependency string, try quoting it."
msgstr "Chaîne de version de dépendance invalide, essai entre guillemets."
-#: ../yum/__init__.py:1952 ../yum/__init__.py:1995
+#: ../yum/__init__.py:1961 ../yum/__init__.py:2001
msgid "Invalid version flag"
msgstr "Drapeau de version invalide"
-#: ../yum/__init__.py:1967 ../yum/__init__.py:1971
+#: ../yum/__init__.py:1973 ../yum/__init__.py:1977
#, python-format
msgid "No Package found for %s"
msgstr "Aucun paquetage trouvé pour %s"
-#: ../yum/__init__.py:2099
+#: ../yum/__init__.py:2105
msgid "Package Object was not a package object instance"
msgstr "L'objet paquetage n'était pas une instance correcte d'objet paquetage"
-#: ../yum/__init__.py:2103
+#: ../yum/__init__.py:2109
msgid "Nothing specified to install"
msgstr "Rien de spécifié pour installation"
# Aucune idée
#. only one in there
-#: ../yum/__init__.py:2118
+#: ../yum/__init__.py:2124
#, python-format
msgid "Checking for virtual provide or file-provide for %s"
-msgstr "Recherche de correspondance virtuelle ou de correspondance fichier pour %s"
+msgstr ""
+"Recherche de correspondance virtuelle ou de correspondance fichier pour %s"
-#: ../yum/__init__.py:2124 ../yum/__init__.py:2439
+#: ../yum/__init__.py:2130 ../yum/__init__.py:2446
#, python-format
msgid "No Match for argument: %s"
msgstr "Aucune correspondance pour l'argument : %s"
#. FIXME - this is where we could check to see if it already installed
#. for returning better errors
-#: ../yum/__init__.py:2179
+#: ../yum/__init__.py:2185
msgid "No package(s) available to install"
msgstr "Aucun paquetage disponible pour installation"
-#: ../yum/__init__.py:2191
+#: ../yum/__init__.py:2198
#, python-format
msgid "Package: %s - already in transaction set"
msgstr "Paquetage : %s - déjà dans le jeu de transaction"
-#: ../yum/__init__.py:2204
+#: ../yum/__init__.py:2212
#, python-format
msgid "Package %s already installed and latest version"
msgstr "Le paquetage %s est déjà installé dans sa dernière version"
-#: ../yum/__init__.py:2211
+#: ../yum/__init__.py:2219
#, python-format
msgid "Package matching %s already installed. Checking for update."
msgstr ""
"Le paquetage qui correspond à %s est déjà installé. Recherche d'une mise à "
"jour."
-#: ../yum/__init__.py:2222
+#: ../yum/__init__.py:2230
#, python-format
msgid "Package %s is obsoleted by %s, trying to install %s instead"
-msgstr "Le paquetage %s est rendu obsolète par %s, tentative d'installation de %s à la place"
+msgstr ""
+"Le paquetage %s est rendu obsolète par %s, tentative d'installation de %s à "
+"la place"
#. update everything (the easy case)
-#: ../yum/__init__.py:2255
+#: ../yum/__init__.py:2263
msgid "Updating Everything"
msgstr "Mise à jour complète"
-#: ../yum/__init__.py:2358
+#: ../yum/__init__.py:2366
#, python-format
msgid "Package is already obsoleted: %s.%s %s:%s-%s"
msgstr "Paquetage déjà rendu obsolète : %s.%s %s:%s-%s"
-#: ../yum/__init__.py:2382
+#: ../yum/__init__.py:2390
#, python-format
msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s"
msgstr ""
"Pas de mise à jour des paquetages qui ont déjà été mis à jour : %s.%s %s:%s-%"
"s"
-#: ../yum/__init__.py:2436
+#: ../yum/__init__.py:2443
#, python-format
msgid "%s"
msgstr "%s"
@@ -1783,21 +1758,26 @@ msgstr "%s"
#. probably just a kwarg of 'silence_warnings' or something
#. b/c when this is called from groupRemove() it makes a lot of
#. garbage noise
-#: ../yum/__init__.py:2455
+#: ../yum/__init__.py:2462
msgid "No package matched to remove"
msgstr "Aucun paquetage sélectionné pour suppression"
-#: ../yum/__init__.py:2489
+#: ../yum/__init__.py:2496
#, python-format
msgid "Cannot open file: %s. Skipping."
msgstr "Impossible d'ouvrir le fichier : %s. Omission."
-#: ../yum/__init__.py:2492
+#: ../yum/__init__.py:2498
#, python-format
msgid "Examining %s: %s"
msgstr "Examen de %s : %s"
-#: ../yum/__init__.py:2499
+#: ../yum/__init__.py:2504
+#, python-format
+msgid "Cannot add package %s to transaction. Not a compatible architecture: %s"
+msgstr "Impossible d'ajouter le paquet %s à la transaction. Architecture incompatible : %s"
+
+#: ../yum/__init__.py:2512
#, python-format
msgid ""
"Package %s not installed, cannot update it. Run yum install to install it "
@@ -1806,78 +1786,80 @@ msgstr ""
"Le paquetage %s n'est pas installé, il est impossible de le mettre à jour. "
"Lancez plutôt yum install pour l'installer."
-#: ../yum/__init__.py:2532
+#: ../yum/__init__.py:2545
#, python-format
msgid "Excluding %s"
msgstr "Exclusion de %s"
-#: ../yum/__init__.py:2537
+#: ../yum/__init__.py:2549
#, python-format
msgid "Marking %s to be installed"
msgstr "Sélection de %s pour installation "
-#: ../yum/__init__.py:2543
+#: ../yum/__init__.py:2554
#, python-format
msgid "Marking %s as an update to %s"
msgstr "Sélection de %s pour mise à jour de %s"
-#: ../yum/__init__.py:2550
+#: ../yum/__init__.py:2559
#, python-format
msgid "%s: does not update installed package."
msgstr "%s : ne met pas à jour le paquetage installé."
-#: ../yum/__init__.py:2568
+#: ../yum/__init__.py:2576
msgid "Problem in reinstall: no package matched to remove"
-msgstr "Problème dans la réinstallation : aucun paquetage correspondant à supprimer"
+msgstr ""
+"Problème dans la réinstallation : aucun paquetage correspondant à supprimer"
# Je suis pas sûr d'avoir bien compris la chaîne originale
-#: ../yum/__init__.py:2579
+#: ../yum/__init__.py:2587
#, python-format
msgid "Package %s is allowed multiple installs, skipping"
msgstr "Le paquetage %s autorise des installations multiples, omission"
-#: ../yum/__init__.py:2586
+#: ../yum/__init__.py:2594
msgid "Problem in reinstall: no package matched to install"
-msgstr "Problème dans la réinstallation : aucun paquetage correspondant à installer"
+msgstr ""
+"Problème dans la réinstallation : aucun paquetage correspondant à installer"
-#: ../yum/__init__.py:2634
+#: ../yum/__init__.py:2641
#, python-format
msgid "Retrieving GPG key from %s"
msgstr "Récupération de la clé GPG depuis %s"
-#: ../yum/__init__.py:2640
+#: ../yum/__init__.py:2647
msgid "GPG key retrieval failed: "
msgstr "Ãchec de la récupération de la clé GPG : "
-#: ../yum/__init__.py:2653
+#: ../yum/__init__.py:2663
msgid "GPG key parsing failed: "
msgstr "Ãchec d'analyse de la clé GPG : "
-#: ../yum/__init__.py:2657
+#: ../yum/__init__.py:2667
#, python-format
msgid "GPG key at %s (0x%s) is already installed"
msgstr "La clé GPG %s (0x%s) est déjà installée"
#. Try installing/updating GPG key
-#: ../yum/__init__.py:2662
+#: ../yum/__init__.py:2672
#, python-format
msgid "Importing GPG key 0x%s \"%s\" from %s"
msgstr "Import de la clé GPG 0x%s « %s » depuis %s"
-#: ../yum/__init__.py:2674
+#: ../yum/__init__.py:2685
msgid "Not installing key"
msgstr "N'installe pas la clé"
-#: ../yum/__init__.py:2680
+#: ../yum/__init__.py:2691
#, python-format
msgid "Key import failed (code %d)"
msgstr "L'import de la clé à échoué (code %d)"
-#: ../yum/__init__.py:2683
+#: ../yum/__init__.py:2694
msgid "Key imported successfully"
msgstr "La clé a été importée avec succès"
-#: ../yum/__init__.py:2688
+#: ../yum/__init__.py:2699
#, python-format
msgid ""
"The GPG keys listed for the \"%s\" repository are already installed but they "
@@ -1888,19 +1870,21 @@ msgstr ""
"incorrectes pour ce paquetage.\n"
"Vérifiez que les URL des clés pour ce dépôt soient correctes."
-#: ../yum/__init__.py:2697
+#: ../yum/__init__.py:2708
msgid "Import of key(s) didn't help, wrong key(s)?"
-msgstr "L'import de la (des) clé(s) n'a pas résolu le problème, mauvaise(s) clé(s) ?"
+msgstr ""
+"L'import de la (des) clé(s) n'a pas résolu le problème, mauvaise(s) clé(s) ?"
-#: ../yum/__init__.py:2771
+#: ../yum/__init__.py:2789
msgid "Unable to find a suitable mirror."
msgstr "Impossible de trouver un miroir adapté."
-#: ../yum/__init__.py:2773
+#: ../yum/__init__.py:2791
msgid "Errors were encountered while downloading packages."
-msgstr "Des erreurs ont été rencontrée durant le téléchargement des paquetages."
+msgstr ""
+"Des erreurs ont été rencontrée durant le téléchargement des paquetages."
-#: ../yum/__init__.py:2837
+#: ../yum/__init__.py:2854
msgid "Test Transaction Errors: "
msgstr "Erreurs de la transaction de test : "
@@ -1922,12 +1906,14 @@ msgstr "le module complémentaire « %s » est désactivé"
#: ../yum/plugins.py:233
#, python-format
msgid "Plugin \"%s\" doesn't specify required API version"
-msgstr "Le module complémentaire « %s » ne spécifie pas la version de l'API requise"
+msgstr ""
+"Le module complémentaire « %s » ne spécifie pas la version de l'API requise"
#: ../yum/plugins.py:237
#, python-format
msgid "Plugin \"%s\" requires API %s. Supported API is %s."
-msgstr "Le module complémentaire « %s » requiert l'API %s. L'API supportée est %s."
+msgstr ""
+"Le module complémentaire « %s » requiert l'API %s. L'API supportée est %s."
#: ../yum/plugins.py:266
#, python-format
@@ -1936,7 +1922,8 @@ msgstr "Chargement du module complémentaire « %s »"
#: ../yum/plugins.py:273
#, python-format
-msgid "Two or more plugins with the name \"%s\" exist in the plugin search path"
+msgid ""
+"Two or more plugins with the name \"%s\" exist in the plugin search path"
msgstr ""
"Au moins deux modules complémentaires avec le même nom « %s » existent dans "
"le chemin de recherche des modules complémentaires"
@@ -1975,7 +1962,8 @@ msgstr "Ãchec du contrôle MD5 pour le RPM %s"
#: ../rpmUtils/oldUtils.py:144
msgid "Could not open RPM database for reading. Perhaps it is already in use?"
-msgstr "Impossible de lire la base de données RPM. Peut être est-elle déjà utilisée ?"
+msgstr ""
+"Impossible de lire la base de données RPM. Peut être est-elle déjà utilisée ?"
#: ../rpmUtils/oldUtils.py:174
msgid "Got an empty Header, something has gone wrong"
@@ -1992,3 +1980,29 @@ msgstr "En-tête endommagé %s"
msgid "Error opening rpm %s - error %s"
msgstr "Erreur d'ouverture du rpm %s - erreur %s"
+#~ msgid "Searching pkgSack for dep: %s"
+#~ msgstr "Recherche dans le regroupement pour la dépendance : %s"
+
+#~ msgid "Potential match for %s from %s"
+#~ msgstr "Correspondance potentielle pour %s depuis %s"
+
+#~ msgid "Matched %s to require for %s"
+#~ msgstr "Correspondance %s trouvé pour %s "
+
+#~ msgid "Needed Require has already been looked up, cheating"
+#~ msgstr "Le prérequis a déjà été trouvé, on triche"
+
+#~ msgid "Needed Require is not a package name. Looking up: %s"
+#~ msgstr "Le prérequis n'est pas un nom de paquetage. Recherche de : %s "
+
+#~ msgid "Potential Provider: %s"
+#~ msgstr "Fournisseur potentiel : %s"
+
+#~ msgid "Mode is %s for provider of %s: %s"
+#~ msgstr "Le mode est %s pour le fournisseur de %s : %s"
+
+#~ msgid "Mode for pkg providing %s: %s"
+#~ msgstr "Mode pour le paquetage qui fournit %s : %s"
+
+#~ msgid "Unresolvable requirement %s for %s"
+#~ msgstr "Impossible de résoudre le prérequis %s pour %s"
commit 0aed92573666a4e09650e5a5c0f25357ac957d2a
Author: James Antill <james at and.org>
Date: Tue Sep 23 10:34:44 2008 -0400
Protect I/O calls within RPMTransaction itself, due to rpm insane mode.
Try and cleanup if they trigger, so we don't have half a transaction saved
in the log files.
diff --git a/yum/rpmtrans.py b/yum/rpmtrans.py
index 98faa9a..0961b34 100644
--- a/yum/rpmtrans.py
+++ b/yum/rpmtrans.py
@@ -138,6 +138,11 @@ class SimpleCliCallBack(RPMBaseCallback):
if msgs:
print msgs,
+# This is ugly, but atm. rpm can go insane and run the "cleanup" phase
+# without the "install" phase if it gets an exception in it's callback. The
+# following means that we don't really need to know/care about that in the
+# display callback functions.
+# Note try/except's in RPMTransaction are for the same reason.
class _WrapNoExceptions:
def __init__(self, parent):
self.__parent = parent
@@ -292,8 +297,17 @@ class RPMTransaction:
# hope springs eternal that this isn't wrong
msg = '%s %s:%s-%s-%s.%s\n' % (t,e,n,v,r,a)
- self._ts_done.write(msg)
- self._ts_done.flush()
+ try:
+ self._ts_done.write(msg)
+ self._ts_done.flush()
+ except (IOError, OSError), e:
+ try:
+ # Having incomplete transactions is probably worse than having
+ # nothing.
+ del self._ts_done
+ os.unlink(self.ts_done_fn)
+ except:
+ pass
self._te_tuples.pop(0)
def ts_all(self):
@@ -333,12 +347,20 @@ class RPMTransaction:
self.display.errorlog('could not open ts_all file: %s' % e)
return
- for (t,e,n,v,r,a) in self._te_tuples:
- msg = "%s %s:%s-%s-%s.%s\n" % (t,e,n,v,r,a)
- fo.write(msg)
- fo.flush()
- fo.close()
-
+ try:
+ for (t,e,n,v,r,a) in self._te_tuples:
+ msg = "%s %s:%s-%s-%s.%s\n" % (t,e,n,v,r,a)
+ fo.write(msg)
+ fo.flush()
+ fo.close()
+ except (IOError, OSError), e:
+ try:
+ # Having incomplete transactions is probably worse than having
+ # nothing.
+ os.unlink(self.ts_all_fn)
+ except:
+ pass
+
def callback( self, what, bytes, total, h, user ):
if what == rpm.RPMCALLBACK_TRANS_START:
self._transStart( bytes, total, h )
commit cf896fc7ccc135aeb94d69739bb625fc44934377
Author: James Antill <james at and.org>
Date: Tue Sep 23 10:25:05 2008 -0400
Wrap all calls to the display callbacks within the rpm transaction.
The problem here is that rpm gets _very_ unhappy if exceptions happen in
any of the code it calls during the transaction, and can basically destroy
the system (stopping the install phase but doing the cleanup phase).
This doesn't 100% protect us, as we can still have errors in our code
but it'll protect against anything in the callbacks.
diff --git a/yum/rpmtrans.py b/yum/rpmtrans.py
index 34fa178..98faa9a 100644
--- a/yum/rpmtrans.py
+++ b/yum/rpmtrans.py
@@ -138,12 +138,33 @@ class SimpleCliCallBack(RPMBaseCallback):
if msgs:
print msgs,
+class _WrapNoExceptions:
+ def __init__(self, parent):
+ self.__parent = parent
+
+ def __getattr__(self, name):
+ """ Wraps all access to the parent functions. This is so it'll eat all
+ exceptions because rpm doesn't like exceptions in the callback. """
+ func = getattr(self.__parent, name)
+
+ def newFunc(*args, **kwargs):
+ try:
+ func(*args, **kwargs)
+ except:
+ pass
+
+ newFunc.__name__ = func.__name__
+ newFunc.__doc__ = func.__doc__
+ newFunc.__dict__.update(func.__dict__)
+ return newFunc
+
class RPMTransaction:
def __init__(self, base, test=False, display=NoOutputCallBack):
if not callable(display):
self.display = display
else:
self.display = display() # display callback
+ self.display = _WrapNoExceptions(self.display)
self.base = base # base yum object b/c we need so much
self.test = test # are we a test?
self.trans_running = False
commit 0b1cd194966a0e1a8d4595f55284bd411d1746f9
Author: James Antill <james at and.org>
Date: Mon Sep 22 21:46:04 2008 -0400
Use ui_name and ui_description in displayPkgsInGroups
diff --git a/output.py b/output.py
index 0e910d9..047576e 100644
--- a/output.py
+++ b/output.py
@@ -579,15 +579,14 @@ class YumOutput:
columns=columns)
def displayPkgsInGroups(self, group):
- mylang = get_my_lang_code()
- print _('\nGroup: %s') % group.nameByLang(mylang)
+ print _('\nGroup: %s') % group.ui_name
verb = self.verbose_logger.isEnabledFor(logginglevels.DEBUG_3)
pkg_names2pkgs = None
if verb:
pkg_names2pkgs = self._group_names2aipkgs(group.packages)
- if group.descriptionByLang(mylang) != "":
- print _(' Description: %s') % to_unicode(group.descriptionByLang(mylang))
+ if group.ui_description:
+ print _(' Description: %s') % to_unicode(group.ui_description)
sections = ((_(' Mandatory Packages:'), group.mandatory_packages),
(_(' Default Packages:'), group.default_packages),
commit 4fdae031cce756a95bf2beaae5a13d50280a8fe7
Author: James Antill <james at and.org>
Date: Mon Sep 22 21:45:43 2008 -0400
Add ui_description for ease of use
diff --git a/yum/comps.py b/yum/comps.py
index 619a4fb..ee9f187 100755
--- a/yum/comps.py
+++ b/yum/comps.py
@@ -51,6 +51,11 @@ class CompsObj(object):
""" Return the "name" of the object for the current locale. """
return self.nameByLang(get_my_lang_code())
+ @property
+ def ui_description(self):
+ """ Return the "description" of the object for the current locale. """
+ return self.descriptionByLang(get_my_lang_code())
+
def __cmp__(self, other):
if other is None:
return 1
commit e9530f3be658bbf7b5db134e6fcec180c6ae92d1
Author: James Antill <james at and.org>
Date: Mon Sep 22 21:34:14 2008 -0400
Have doGroupLists returned "user sorted data"
diff --git a/yum/__init__.py b/yum/__init__.py
index 29c57c2..cb86717 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -1804,7 +1804,7 @@ class YumBase(depsolve.Depsolve):
else:
available.append(grp)
- return installed, available
+ return sorted(installed), sorted(available)
def groupRemove(self, grpid):
commit 1ccc549348e8d276f62b8b326d90054a18b59efa
Author: James Antill <james at and.org>
Date: Mon Sep 22 21:12:15 2008 -0400
Do the Remove only TS thing for GroupRemove
diff --git a/yumcommands.py b/yumcommands.py
index 0e07cd3..3a8ad88 100644
--- a/yumcommands.py
+++ b/yumcommands.py
@@ -409,6 +409,9 @@ class GroupRemoveCommand(GroupCommand):
def needTs(self, base, basecmd, extcmds):
return False
+ def needTsRemove(self, base, basecmd, extcmds):
+ return True
+
class GroupInfoCommand(GroupCommand):
def getNames(self):
return ['groupinfo']
commit 6be024406dc4d862c1e43975fa7754f098cc04ff
Author: James Antill <james at and.org>
Date: Mon Sep 22 20:57:26 2008 -0400
Fix the sorting of grouplist to obey display_order, just use the group cmp
diff --git a/cli.py b/cli.py
index cf0b186..c6b1420 100644
--- a/cli.py
+++ b/cli.py
@@ -816,21 +816,20 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
uservisible=0
installed, available = self.doGroupLists(uservisible=uservisible)
- mylang = yum.misc.get_my_lang_code()
if len(installed) > 0:
self.verbose_logger.log(yum.logginglevels.INFO_2,
_('Installed Groups:'))
- for group in sorted(installed, key=lambda x: x.nameByLang(mylang)):
+ for group in installed:
self.verbose_logger.log(yum.logginglevels.INFO_2, ' %s',
- group.nameByLang(mylang))
+ group.ui_name)
if len(available) > 0:
self.verbose_logger.log(yum.logginglevels.INFO_2,
_('Available Groups:'))
- for group in sorted(available, key=lambda x: x.nameByLang(mylang)):
+ for group in available:
self.verbose_logger.log(yum.logginglevels.INFO_2, ' %s',
- group.nameByLang(mylang))
+ group.ui_name)
return 0, [_('Done')]
commit 04fcb38d8f7b94b6cd2fbf966ae635dab69e2dc6
Author: James Antill <james at and.org>
Date: Mon Sep 22 20:56:28 2008 -0400
Add return_categories() to comps object.
Add nameByLang/descriptionByLang to category objects.
Add ui_name to groups/categories, using the current locale's name.
Add __cmp__ function to group/categories.
diff --git a/yum/comps.py b/yum/comps.py
index f36b678..619a4fb 100755
--- a/yum/comps.py
+++ b/yum/comps.py
@@ -25,7 +25,7 @@ from Errors import CompsException
# switch all compsexceptions to grouperrors after api break
import fnmatch
import re
-from yum.misc import to_unicode
+from yum.misc import to_unicode, get_my_lang_code
lang_attr = '{http://www.w3.org/XML/1998/namespace}lang'
@@ -38,42 +38,29 @@ def parse_boolean(strng):
def parse_number(strng):
return int(strng)
-class Group(object):
- def __init__(self, elem=None):
- self.user_visible = True
- self.default = False
- self.selected = False
- self.name = ""
- self.description = ""
- self.translated_name = {}
- self.translated_description = {}
- self.mandatory_packages = {}
- self.optional_packages = {}
- self.default_packages = {}
- self.conditional_packages = {}
- self.langonly = None ## what the hell is this?
- self.groupid = None
- self.display_order = 1024
- self.installed = False
- self.toremove = False
-
+class CompsObj(object):
+ """ Group/Category helper object. """
- if elem:
- self.parse(elem)
-
+ # Could be the same as ui_name?
def __str__(self):
+ """ Return the "name" of the object for the C locale. """
return self.name
+
+ @property
+ def ui_name(self):
+ """ Return the "name" of the object for the current locale. """
+ return self.nameByLang(get_my_lang_code())
- def _packageiter(self):
- # Gah, FIXME: real iterator/class
- lst = self.mandatory_packages.keys() + \
- self.optional_packages.keys() + \
- self.default_packages.keys() + \
- self.conditional_packages.keys()
-
- return lst
-
- packages = property(_packageiter)
+ def __cmp__(self, other):
+ if other is None:
+ return 1
+
+ if self.display_order > other.display_order:
+ return 1
+ if self.display_order < other.display_order:
+ return -1
+
+ return cmp(self.ui_name, other.ui_name)
def _expand_languages(self, lang):
import gettext
@@ -98,13 +85,48 @@ class Group(object):
return to_unicode(self.name)
-
def descriptionByLang(self, lang):
for langcode in self._expand_languages(lang):
if self.translated_description.has_key(langcode):
return to_unicode(self.translated_description[langcode])
return to_unicode(self.description)
+
+class Group(CompsObj):
+ """ Group object parsed from group data in each repo. and merged. """
+
+ def __init__(self, elem=None):
+ self.user_visible = True
+ self.default = False
+ self.selected = False
+ self.name = ""
+ self.description = ""
+ self.translated_name = {}
+ self.translated_description = {}
+ self.mandatory_packages = {}
+ self.optional_packages = {}
+ self.default_packages = {}
+ self.conditional_packages = {}
+ self.langonly = None ## what the hell is this?
+ self.groupid = None
+ self.display_order = 1024
+ self.installed = False
+ self.toremove = False
+
+ if elem:
+ self.parse(elem)
+
+ def _packageiter(self):
+ # Gah, FIXME: real iterator/class
+ lst = self.mandatory_packages.keys() + \
+ self.optional_packages.keys() + \
+ self.default_packages.keys() + \
+ self.conditional_packages.keys()
+
+ return lst
+
+ packages = property(_packageiter)
+
def parse(self, elem):
for child in elem:
@@ -247,11 +269,11 @@ class Group(object):
msg += """ </group>"""
return msg
-
-
-class Category(object):
+class Category(CompsObj):
+ """ Category object parsed from group data in each repo. and merged. """
+
def __init__(self, elem=None):
self.name = ""
self.categoryid = None
@@ -264,9 +286,6 @@ class Category(object):
if elem:
self.parse(elem)
- def __str__(self):
- return self.name
-
def _groupiter(self):
return self._groups.keys()
@@ -352,6 +371,7 @@ class Category(object):
return msg
+
class Comps(object):
def __init__(self, overwrite_groups=False):
self._groups = {}
@@ -363,10 +383,11 @@ class Comps(object):
def __sort_order(self, item1, item2):
+ """ This sorts for machines, so is the same in all locales. """
if item1.display_order > item2.display_order:
return 1
elif item1.display_order == item2.display_order:
- return 0
+ return cmp(item1.name, item2.name)
else:
return -1
@@ -379,13 +400,10 @@ class Comps(object):
cats = self._categories.values()
cats.sort(self.__sort_order)
return cats
-
groups = property(get_groups)
categories = property(get_categories)
-
-
def has_group(self, grpid):
exists = self.return_groups(grpid)
@@ -427,6 +445,33 @@ class Comps(object):
return returns.values()
+ # This is close to returnPackages() etc. API ... need to std. these names
+ # the above return_groups uses different, but equal, API.
+ def return_categories(self, pattern, ignore_case=True):
+ """return all categories which match either by glob or exact match"""
+ returns = {}
+
+ for item in pattern.split(','):
+ item = item.strip()
+ if self._categories.has_key(item):
+ cat = self._categories[item]
+ returns[cat.categoryid] = cat
+ continue
+
+ if not ignore_case:
+ match = re.compile(fnmatch.translate(item)).match
+ else:
+ match = re.compile(fnmatch.translate(item), flags=re.I).match
+
+ for cat in self.categories:
+ names = [ cat.name, cat.categoryid ]
+ names.extend(cat.translated_name.values())
+ for name in names:
+ if match(name):
+ returns[cat.categoryid] = cat
+
+ return returns.values()
+
def add_group(self, group):
if self._groups.has_key(group.groupid):
thatgroup = self._groups[group.groupid]
commit 3d2f8244b4e281a621f81a10492ddda960ae2568
Author: James Antill <james at and.org>
Date: Mon Sep 22 17:41:59 2008 -0400
Minor fix to get_my_lang_code, no need to import locale as it already is
diff --git a/yum/misc.py b/yum/misc.py
index 2a64bea..c9ae758 100644
--- a/yum/misc.py
+++ b/yum/misc.py
@@ -732,7 +732,6 @@ def to_str(obj):
return obj
def get_my_lang_code():
- import locale
mylang = locale.getlocale()
if mylang == (None, None): # odd :)
mylang = 'C'
commit 284a9eabca4a9a5368044b7d5b447c66b38754e2
Author: James Antill <james at and.org>
Date: Sat Sep 20 16:38:01 2008 -0400
Dynamically size check-update using the "list updates" code
diff --git a/yumcommands.py b/yumcommands.py
index ba1f139..0e07cd3 100644
--- a/yumcommands.py
+++ b/yumcommands.py
@@ -196,6 +196,34 @@ class UpdateCommand(YumCommand):
except yum.Errors.YumBaseError, e:
return 1, [str(e)]
+def _add_pkg_simple_list_lens(data, pkg, indent=''):
+ """ Get the length of each pkg's column. Add that to data.
+ This "knows" about simpleList and printVer. """
+ na = len(pkg.name) + 1 + len(pkg.arch) + len(indent)
+ ver = len(pkg.version) + 1 + len(pkg.release)
+ rid = len(pkg.repoid)
+ if pkg.epoch != '0':
+ ver += len(pkg.epoch) + 1
+ for (d, v) in (('na', na), ('ver', ver), ('rid', rid)):
+ data[d].setdefault(v, 0)
+ data[d][v] += 1
+
+def _list_cmd_calc_columns(base, ypl):
+ """ Work out the dynamic size of the columns to pass to fmtColumns. """
+ data = {'na' : {}, 'ver' : {}, 'rid' : {}}
+ for lst in (ypl.installed, ypl.available, ypl.extras,
+ ypl.updates, ypl.recent):
+ for pkg in lst:
+ _add_pkg_simple_list_lens(data, pkg)
+ if len(ypl.obsoletes) > 0:
+ for (npkg, opkg) in ypl.obsoletesTuples:
+ _add_pkg_simple_list_lens(data, npkg)
+ _add_pkg_simple_list_lens(data, opkg, indent=" " * 4)
+
+ data = [data['na'], data['ver'], data['rid']]
+ columns = base.calcColumns(data, remainder_column=1)
+ return (-columns[0], -columns[1], -columns[2])
+
class InfoCommand(YumCommand):
def getNames(self):
return ['info']
@@ -217,31 +245,7 @@ class InfoCommand(YumCommand):
columns = None
if basecmd == 'list':
# Dynamically size the columns
- def _add_pkg_simple_list_lens(data, pkg, indent=''):
- """ Get the length of each pkg's column. Add that to data.
- This "knows" about simpleList and printVer. """
- na = len(pkg.name) + 1 + len(pkg.arch) + len(indent)
- ver = len(pkg.version) + 1 + len(pkg.release)
- rid = len(pkg.repoid)
- if pkg.epoch != '0':
- ver += len(pkg.epoch) + 1
- for (d, v) in (('na', na), ('ver', ver), ('rid', rid)):
- data[d].setdefault(v, 0)
- data[d][v] += 1
-
- data = {'na' : {}, 'ver' : {}, 'rid' : {}}
- for lst in (ypl.installed, ypl.available, ypl.extras,
- ypl.updates, ypl.recent):
- for pkg in lst:
- _add_pkg_simple_list_lens(data, pkg)
- if len(ypl.obsoletes) > 0:
- for (npkg, opkg) in ypl.obsoletesTuples:
- _add_pkg_simple_list_lens(data, npkg)
- _add_pkg_simple_list_lens(data, opkg, indent=" " * 4)
-
- data = [data['na'], data['ver'], data['rid']]
- columns = base.calcColumns(data, remainder_column=1)
- columns = (-columns[0], -columns[1], -columns[2])
+ columns = _list_cmd_calc_columns(base, ypl)
if ypl.installed:
# If we have installed and available lists, then do the
@@ -527,8 +531,10 @@ class CheckUpdateCommand(YumCommand):
result = 0
try:
ypl = base.returnPkgLists(extcmds)
+ columns = _list_cmd_calc_columns(base, ypl)
if len(ypl.updates) > 0:
- base.listPkgs(ypl.updates, '', outputType='list')
+ base.listPkgs(ypl.updates, '', outputType='list',
+ columns=columns)
result = 100
except yum.Errors.YumBaseError, e:
return 1, [str(e)]
commit cd4de80131e4556d639e4da6b821c4ed86ad4af1
Merge: 3eee967... 935c802...
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Sat Sep 20 20:37:28 2008 -0400
Merge branch 'yum-3_2_X' of ssh://login.linux.duke.edu/home/groups/yum/git/yum into yum-3_2_X
* 'yum-3_2_X' of ssh://login.linux.duke.edu/home/groups/yum/git/yum:
groups are already sorted, so sort the contents. Makes comps stable.
Use sys.exit instead of exit as it's not a keyword in python.
commit 3eee9671be585acbbce6c306af08d4279d29eb23
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Sat Sep 20 20:37:19 2008 -0400
make sure noarch is added to all the freaky-deaky arches
diff --git a/rpmUtils/arch.py b/rpmUtils/arch.py
index d90659d..5402455 100644
--- a/rpmUtils/arch.py
+++ b/rpmUtils/arch.py
@@ -177,6 +177,9 @@ def getArchList(thisarch=None):
if archlist[0] == "sparc64v":
archlist.insert(1,"sparc64")
+ # if we're a weirdo arch - add noarch on there.
+ if len(archlist) == 1 and archlist[0] == thisarch:
+ archlist.append('noarch')
return archlist
commit 935c8023762db0e94f2d7cfd96dfa1002f35f7e1
Author: James Antill <james at and.org>
Date: Fri Sep 19 11:33:54 2008 -0400
groups are already sorted, so sort the contents. Makes comps stable.
diff --git a/yum/comps.py b/yum/comps.py
index 0697ebc..f36b678 100755
--- a/yum/comps.py
+++ b/yum/comps.py
@@ -227,21 +227,21 @@ class Group(object):
msg += """ <langonly>%s</langonly>""" % self.langonly
msg +=""" <name>%s</name>\n""" % self.name
- for (lang, val) in self.translated_name.items():
+ for (lang, val) in sorted(self.translated_name.items()):
msg += """ <name xml:lang="%s">%s</name>\n""" % (lang, val)
msg += """ <description>%s</description>\n""" % self.description
- for (lang, val) in self.translated_description.items():
+ for (lang, val) in sorted(self.translated_description.items()):
msg += """ <description xml:lang="%s">%s</description>\n""" % (lang, val)
msg += """ <packagelist>\n"""
- for pkg in self.mandatory_packages.keys():
+ for pkg in sorted(self.mandatory_packages):
msg += """ <packagereq type="mandatory">%s</packagereq>\n""" % pkg
- for pkg in self.default_packages.keys():
+ for pkg in sorted(self.default_packages):
msg += """ <packagereq type="default">%s</packagereq>\n""" % pkg
- for pkg in self.optional_packages.keys():
+ for pkg in sorted(self.optional_packages):
msg += """ <packagereq type="optional">%s</packagereq>\n""" % pkg
- for (pkg, req) in self.conditional_packages.items():
+ for (pkg, req) in sorted(self.conditional_packages.items()):
msg += """ <packagereq type="conditional" requires="%s">%s</packagereq>\n""" % (req, pkg)
msg += """ </packagelist>\n"""
msg += """ </group>"""
commit 762298ea98dccd2cca364a7965cd5494e4e689ad
Author: James Antill <james at and.org>
Date: Thu Sep 18 16:55:46 2008 -0400
Use sys.exit instead of exit as it's not a keyword in python.
causes a traceback if interupt_handler isn't setup (spacewalk/etc.)
diff --git a/rpmUtils/miscutils.py b/rpmUtils/miscutils.py
index 64e232e..e9fb3e5 100644
--- a/rpmUtils/miscutils.py
+++ b/rpmUtils/miscutils.py
@@ -413,5 +413,5 @@ def checkSignals():
signal.SIGPIPE,
signal.SIGQUIT,
signal.SIGHUP]):
- exit(1)
+ sys.exit(1)
commit 1bd9d9de8f115c06a289fbdc8c8cc70770b59633
Merge: d1be101... e55c892...
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Thu Sep 18 14:42:46 2008 -0400
Merge branch 'yum-3_2_X' of ssh://login.linux.duke.edu/home/groups/yum/git/yum into yum-3_2_X
* 'yum-3_2_X' of ssh://login.linux.duke.edu/home/groups/yum/git/yum:
remove extra spaces in indent
Include the indent in the column calculation for groupinfo -v
Use calcColumns for groupinfo -v, per. group. Tidy up group section printing
Create a calcColumns() from the work in listTransaction.
Dynamically size the width for the Loaded plugins message, if possible
commit d1be101694b6e79c609ad20a19adb57451925b1b
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Thu Sep 18 14:40:35 2008 -0400
limit the changelog to 3.2.0 and up
diff --git a/Makefile b/Makefile
index 47b364a..c600c1d 100644
--- a/Makefile
+++ b/Makefile
@@ -54,7 +54,7 @@ test-skipbroken:
check: test
changelog:
- git log --pretty --numstat --summary | git2cl > ChangeLog
+ git log --since=2007-05-16 --pretty --numstat --summary | git2cl > ChangeLog
testnewbehavior:
@NEW_BEHAVIOR=1 nosetests -i ".*test" test
commit e55c892ceb63210e113b03561913563a87bbd812
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date: Wed Sep 17 15:34:31 2008 +0200
remove extra spaces in indent
diff --git a/yum/yumRepo.py b/yum/yumRepo.py
index ba32f69..e3e2a1f 100644
--- a/yum/yumRepo.py
+++ b/yum/yumRepo.py
@@ -11,7 +11,7 @@
# 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 2005 Duke University
+# Copyright 2005 Duke University
# Copyright 2007 Red Hat
import os
import re
@@ -132,9 +132,9 @@ class YumPackageSack(packageSack.PackageSack):
if self.added.has_key(repo):
if item in self.added[repo]:
continue
-
+
db_fn = None
-
+
if item == 'metadata':
mydbtype = 'primary_db'
mymdtype = 'primary'
@@ -146,22 +146,22 @@ class YumPackageSack(packageSack.PackageSack):
mymdtype = 'filelists'
repo_get_function = repo.getFileListsXML
repo_cache_function = repo.cacheHandler.getFilelists
-
+
elif item == 'otherdata':
mydbtype = 'other_db'
mymdtype = 'other'
repo_get_function = repo.getOtherXML
repo_cache_function = repo.cacheHandler.getOtherdata
-
+
else:
continue
-
+
if self._check_db_version(repo, mydbtype):
# see if we have the uncompressed db and check it's checksum vs the openchecksum
# if not download the bz2 file
# decompress it
# unlink it
-
+
db_un_fn = self._check_uncompressed_db(repo, mydbtype)
if not db_un_fn:
db_fn = repo._retrieveMD(mydbtype)
@@ -195,9 +195,9 @@ class YumPackageSack(packageSack.PackageSack):
fname = os.path.basename(remote)
bz2_fn = repo.cachedir + '/' + fname
db_un_fn = bz2_fn.replace('.bz2', '')
-
+
result = None
-
+
if os.path.exists(db_un_fn):
if skip_old_DBMD_check and repo._using_old_MD:
return db_un_fn
@@ -211,24 +211,24 @@ class YumPackageSack(packageSack.PackageSack):
result = db_un_fn
return result
-
+
def _check_db_version(self, repo, mdtype):
return repo._check_db_version(mdtype)
-
+
class YumRepository(Repository, config.RepoConf):
"""
This is an actual repository object
-
+
Configuration attributes are pulled in from config.RepoConf.
"""
-
+
def __init__(self, repoid):
config.RepoConf.__init__(self)
Repository.__init__(self, repoid)
self.repofile = None
self._urls = []
- self.enablegroups = 0
+ self.enablegroups = 0
self.groupsfilename = 'yumgroups.xml' # something some freaks might
# eventually want
self.repoMDFile = 'repodata/repomd.xml'
@@ -242,7 +242,7 @@ class YumRepository(Repository, config.RepoConf):
self.metadata_cookie_fn = 'cachecookie'
self.groups_added = False
self.http_headers = {}
- self.repo_config_age = 0 # if we're a repo not from a file then the
+ self.repo_config_age = 0 # if we're a repo not from a file then the
# config is very, very old
# throw in some stubs for things that will be set by the config class
self.basecachedir = ""
@@ -250,7 +250,7 @@ class YumRepository(Repository, config.RepoConf):
self.pkgdir = ""
self.hdrdir = ""
self.cost = 1000
- self.copy_local = 0
+ self.copy_local = 0
# holder for stuff we've grabbed
self.retrieved = { 'primary':0, 'filelists':0, 'other':0, 'group':0,
'updateinfo':0}
@@ -264,7 +264,7 @@ class YumRepository(Repository, config.RepoConf):
# callback function for handling media
self.mediafunc = None
-
+
# callbacks for gpg key importing and confirmation
self.gpg_import_func = None
self.confirm_func = None
@@ -290,7 +290,7 @@ class YumRepository(Repository, config.RepoConf):
if self._sack is not None:
self.sack.close()
Repository.close(self)
-
+
def _resetSack(self):
self._sack = None
@@ -353,9 +353,9 @@ class YumRepository(Repository, config.RepoConf):
vars = ['name', 'bandwidth', 'enabled', 'enablegroups',
'gpgcheck', 'repo_gpgcheck', # FIXME: gpgcheck => pkgs_gpgcheck
'includepkgs', 'keepalive', 'proxy',
- 'proxy_password', 'proxy_username', 'exclude',
- 'retries', 'throttle', 'timeout', 'mirrorlist',
- 'cachedir', 'gpgkey', 'pkgdir', 'hdrdir']
+ 'proxy_password', 'proxy_username', 'exclude',
+ 'retries', 'throttle', 'timeout', 'mirrorlist',
+ 'cachedir', 'gpgkey', 'pkgdir', 'hdrdir']
vars.sort()
for attr in vars:
output = output + '%s = %s\n' % (attr, getattr(self, attr))
@@ -511,13 +511,13 @@ class YumRepository(Repository, config.RepoConf):
if not os.path.exists(dir):
raise Errors.RepoError, \
"Cannot access repository dir %s" % dir
- # if we're using a cachedir that's not the system one, copy over these
+ # if we're using a cachedir that's not the system one, copy over these
# basic items from the system one
self._preload_md_from_system_cache('repomd.xml')
self._preload_md_from_system_cache('cachecookie')
- self._preload_md_from_system_cache('mirrorlist.txt')
-
-
+ self._preload_md_from_system_cache('mirrorlist.txt')
+
+
def baseurlSetup(self):
warnings.warn('baseurlSetup() will go away in a future version of Yum.\n',
Errors.YumFutureDeprecationWarning, stacklevel=2)
@@ -548,7 +548,7 @@ class YumRepository(Repository, config.RepoConf):
# store them all back in baseurl for compat purposes
self.baseurl = self._urls
self.check()
-
+
def _replace_and_check_url(self, url_list):
goodurls = []
skipped = None
@@ -579,7 +579,7 @@ class YumRepository(Repository, config.RepoConf):
urls = property(fget=lambda self: self._geturls(),
fset=lambda self, value: setattr(self, "_urls", value),
fdel=lambda self: setattr(self, "_urls", 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):
@@ -595,17 +595,17 @@ class YumRepository(Repository, config.RepoConf):
# Turn our dict into a list of 2-tuples
headers = self.__headersListFromDict()
-
+
# We will always prefer to send no-cache.
if not (cache or self.http_headers.has_key('Pragma')):
headers.append(('Pragma', 'no-cache'))
headers = tuple(headers)
-
+
# if copylocal isn't specified pickup the repo-defined attr
if copy_local is None:
copy_local = self.copy_local
-
+
if local is None or relative is None:
raise Errors.RepoError, \
"get request for Repo %s, gave no source or dest" % self.id
@@ -635,7 +635,7 @@ class YumRepository(Repository, config.RepoConf):
return result
except Errors.MediaError, e:
verbose_logger.log(logginglevels.DEBUG_2, "Error getting package from media; falling back to url %s" %(e,))
-
+
if url is not None and scheme != "media":
ug = URLGrabber(keepalive = self.keepalive,
bandwidth = self.bandwidth,
@@ -667,7 +667,7 @@ class YumRepository(Repository, config.RepoConf):
raise Errors.NoMoreMirrorsRepoError, errstr
else:
raise Errors.RepoError, errstr
-
+
else:
try:
@@ -693,7 +693,7 @@ class YumRepository(Repository, config.RepoConf):
remote = package.relativepath
local = package.localPkg()
basepath = package.basepath
-
+
return self._getFile(url=basepath,
relative=remote,
local=local,
@@ -701,7 +701,7 @@ class YumRepository(Repository, config.RepoConf):
text=text,
cache=cache
)
-
+
def getHeader(self, package, checkfunc = None, reget = 'simple',
cache = True):
@@ -715,7 +715,7 @@ class YumRepository(Repository, config.RepoConf):
reget=None, end=end, checkfunc=checkfunc, copy_local=1,
cache=cache,
)
-
+
def metadataCurrent(self):
@@ -729,12 +729,12 @@ class YumRepository(Repository, config.RepoConf):
return self.withinCacheAge(self.metadata_cookie, self.metadata_expire)
def withinCacheAge(self, myfile, expiration_time):
- """check if any file is older than a certain amount of time. Used for
+ """check if any file is older than a certain amount of time. Used for
the cachecookie and the mirrorlist
return True if w/i the expiration time limit
false if the time limit has expired
-
- Additionally compare the file to age of the newest .repo or yum.conf
+
+ Additionally compare the file to age of the newest .repo or yum.conf
file. If any of them are newer then invalidate the cache
"""
@@ -749,14 +749,14 @@ class YumRepository(Repository, config.RepoConf):
# WE ARE FROM THE FUTURE!!!!
elif cookie_info[8] > time.time():
val = False
-
+
# make sure none of our config files for this repo are newer than
# us
if cookie_info[8] < int(self.repo_config_age):
val = False
return val
-
+
def setMetadataCookie(self):
"""if possible, set touch the metadata_cookie file"""
@@ -791,7 +791,7 @@ class YumRepository(Repository, config.RepoConf):
self.metadata_expire):
return True
return False
-
+
def _getFileRepoXML(self, local, text=None, grab_can_fail=None):
""" Call _getFile() for the repomd.xml file. """
checkfunc = (self._checkRepoXML, (), {})
@@ -810,10 +810,10 @@ class YumRepository(Repository, config.RepoConf):
if grab_can_fail:
return None
raise Errors.RepoError, 'Error downloading file %s: %s' % (local, e)
-
-
+
+
return result
-
+
def _parseRepoXML(self, local, parse_can_fail=None):
""" Parse the repomd.xml file. """
try:
@@ -824,7 +824,7 @@ class YumRepository(Repository, config.RepoConf):
if parse_can_fail:
return None
raise Errors.RepoError, 'Error importing repomd.xml from %s: %s' % (self, e)
-
+
def _saveOldRepoXML(self, local):
""" If we have an older repomd.xml file available, save it out. """
# Cleanup old trash...
@@ -839,7 +839,7 @@ class YumRepository(Repository, config.RepoConf):
'old_local' : old_local, 'new_MD_files' : []}
return True
return False
-
+
def _revertOldRepoXML(self):
""" If we have older data available, revert to it. """
@@ -853,7 +853,7 @@ class YumRepository(Repository, config.RepoConf):
old_data = self._oldRepoMDData
self._oldRepoMDData = {}
-
+
if 'old_local' in old_data:
os.rename(old_data['old_local'], old_data['local'])
@@ -876,7 +876,7 @@ class YumRepository(Repository, config.RepoConf):
return
for revert in old_data['old_MD_files']:
os.unlink(revert + '.old.tmp')
-
+
def _get_mdtype_data(self, mdtype, repoXML=None):
if repoXML is None:
repoXML = self.repoXML
@@ -902,7 +902,7 @@ class YumRepository(Repository, config.RepoConf):
def _groupCheckDataMDNewer(self):
""" We check the timestamps, if any of the timestamps for the
"new" data is older than what we have ... we revert. """
-
+
if 'old_repo_XML' not in self._oldRepoMDData:
return True
old_repo_XML = self._oldRepoMDData['old_repo_XML']
@@ -922,20 +922,20 @@ class YumRepository(Repository, config.RepoConf):
local = self.cachedir + '/repomd.xml'
if self._repoXML is not None:
return False
-
+
if self._cachingRepoXML(local):
caching = True
result = local
else:
caching = False
self._saveOldRepoXML(local)
-
+
result = self._getFileRepoXML(local, text)
if result is None:
# Ignore this as we have a copy
self._revertOldRepoXML()
return False
-
+
# if we have a 'fresh' repomd.xml then update the cookie
self.setMetadataCookie()
@@ -952,7 +952,7 @@ class YumRepository(Repository, config.RepoConf):
self._revertOldRepoXML()
return False
return True
-
+
def _check_db_version(self, mdtype, repoXML=None):
if repoXML is None:
repoXML = self.repoXML
@@ -1019,7 +1019,7 @@ class YumRepository(Repository, config.RepoConf):
else:
old_repo_XML = self._oldRepoMDData['old_repo_XML']
self._oldRepoMDData['old_MD_files'] = reverts
-
+
# Inited twice atm. ... sue me
self._oldRepoMDData['new_MD_files'] = []
for mdtype in all_mdtypes:
@@ -1032,7 +1032,7 @@ class YumRepository(Repository, config.RepoConf):
if local:
if _mdtype_eq(omdtype, odata, nmdtype, ndata):
continue # If they are the same do nothing
-
+
# Move this version, we _may_ get a new one.
# We delete it on success, revert it back on failure.
# We don't copy as we know it's bad due to above test.
@@ -1048,7 +1048,7 @@ class YumRepository(Repository, config.RepoConf):
# No old repomd data, but we might still have uncompressed MD
if self._groupCheckDataMDValid(ndata, nmdtype, mdtype):
continue
-
+
if not self._retrieveMD(nmdtype, retrieve_can_fail=True):
self._revertOldRepoXML()
return False
@@ -1100,18 +1100,18 @@ class YumRepository(Repository, config.RepoConf):
self._revertOldRepoXML() # Undo metadata cookie?
raise
raise Errors.RepoError, 'Bad loadRepoXML policy: %s' % (self.mdpolicy)
-
+
def _getRepoXML(self):
if self._repoXML:
return self._repoXML
try:
self._loadRepoXML(text=self)
except Errors.RepoError, e:
- msg = ("Cannot retrieve repository metadata (repomd.xml) for repository: %s. "
+ msg = ("Cannot retrieve repository metadata (repomd.xml) for repository: %s. "
"Please verify its path and try again" % self )
raise Errors.RepoError, msg
return self._repoXML
-
+
repoXML = property(fget=lambda self: self._getRepoXML(),
fset=lambda self, val: setattr(self, "_repoXML", val),
@@ -1122,7 +1122,7 @@ class YumRepository(Repository, config.RepoConf):
filepath = fo.filename
else:
filepath = fo
-
+
if self.repo_gpgcheck:
if misc.gpgme is None:
@@ -1139,10 +1139,10 @@ class YumRepository(Repository, config.RepoConf):
cache=self.http_caching == 'all')
except URLGrabError, e:
raise URLGrabError(-1, 'Error finding signature for repomd.xml for %s: %s' % (self, e))
-
+
if not os.path.exists(self.gpgdir):
- if self.gpg_import_func:
- #FIXME probably should have an else off of this to
+ if self.gpg_import_func:
+ #FIXME probably should have an else off of this to
# complain if there is no import function
try:
self.gpg_import_func(self, self.confirm_func)
@@ -1152,10 +1152,10 @@ class YumRepository(Repository, config.RepoConf):
# FIXME if we get the okay here to import the key then
# we should set an option so that future key imports for this
# repo will be allowed w/o question
-
+
if not misc.valid_detached_sig(result, filepath, self.gpgdir):
raise URLGrabError(-1, 'repomd.xml signature could not be verified for %s' % (self))
-
+
try:
repoMDObject.RepoMD(self.id, filepath)
except Errors.RepoMDError, e:
@@ -1165,7 +1165,7 @@ class YumRepository(Repository, config.RepoConf):
def checkMD(self, fn, mdtype, openchecksum=False):
"""check the metadata type against its checksum"""
return self._checkMD(fn, mdtype, openchecksum)
-
+
def _checkMD(self, fn, mdtype, openchecksum=False,
data=None, check_can_fail=False):
""" Internal function, use .checkMD() from outside yum. """
@@ -1207,10 +1207,10 @@ class YumRepository(Repository, config.RepoConf):
mdtype can be 'primary', 'filelists', 'other' or 'group'."""
return self._retrieveMD(mdtype)
- def _retrieveMD(self, mdtype, retrieve_can_fail=False):
+ def _retrieveMD(self, mdtype, retrieve_can_fail=False):
""" Internal function, use .retrieveMD() from outside yum. """
thisdata = self.repoXML.getData(mdtype)
-
+
(r_base, remote) = thisdata.location
fname = os.path.basename(remote)
local = self.cachedir + '/' + fname
@@ -1266,7 +1266,7 @@ class YumRepository(Repository, config.RepoConf):
def getFileListsXML(self):
- """this gets you the path to the filelists.xml file, retrieving it if we
+ """this gets you the path to the filelists.xml file, retrieving it if we
need a new one"""
return self.retrieveMD('filelists')
@@ -1327,7 +1327,7 @@ class YumRepository(Repository, config.RepoConf):
"""
self.mirrorlist_file = self.cachedir + '/' + 'mirrorlist.txt'
fo = None
-
+
cacheok = False
if self.withinCacheAge(self.mirrorlist_file, self.mirrorlist_expire):
cacheok = True
@@ -1364,18 +1364,18 @@ class YumRepository(Repository, config.RepoConf):
return
if self.old_base_cache_dir == "":
return
-
+
glob_repo_cache_dir=os.path.join(self.old_base_cache_dir, self.id)
if not os.path.exists(glob_repo_cache_dir):
return
if os.path.normpath(glob_repo_cache_dir) == os.path.normpath(self.cachedir):
return
-
+
# copy repomd.xml, cachecookie and mirrorlist.txt
fn = glob_repo_cache_dir + '/' + filename
destfn = self.cachedir + '/' + os.path.basename(filename)
# don't copy it if the copy in our users dir is newer or equal
- if not os.path.exists(fn):
+ if not os.path.exists(fn):
return
if os.path.exists(destfn):
if os.stat(fn)[stat.ST_CTIME] <= os.stat(destfn)[stat.ST_CTIME]:
@@ -1386,7 +1386,7 @@ class YumRepository(Repository, config.RepoConf):
def getMirrorList(mirrorlist, pdict = None):
warnings.warn('getMirrorList() will go away in a future version of Yum.\n',
- Errors.YumFutureDeprecationWarning, stacklevel=2)
+ Errors.YumFutureDeprecationWarning, stacklevel=2)
"""retrieve an up2date-style mirrorlist file from a url,
we also s/$ARCH/$BASEARCH/ and move along
returns a list of the urls from that file"""
commit 8aa8425eb4434e189a9fbd585a3b61571b58efe9
Author: James Antill <james at and.org>
Date: Tue Sep 16 11:48:48 2008 -0400
Include the indent in the column calculation for groupinfo -v
diff --git a/output.py b/output.py
index 95efac4..0e910d9 100644
--- a/output.py
+++ b/output.py
@@ -549,13 +549,14 @@ class YumOutput:
ret.setdefault(pkg.name, []).append((apkg, ipkg))
return ret
- def _calcDataPkgColumns(self, data, pkg_names, pkg_names2pkgs):
+ def _calcDataPkgColumns(self, data, pkg_names, pkg_names2pkgs,
+ indent=' '):
for item in pkg_names:
if item not in pkg_names2pkgs:
continue
for (apkg, ipkg) in pkg_names2pkgs[item]:
pkg = ipkg or apkg
- envra = len(str(pkg))
+ envra = len(str(pkg)) + len(indent)
rid = len(pkg.repoid)
for (d, v) in (('envra', envra), ('rid', rid)):
data[d].setdefault(v, 0)
commit ee89bd19b932aa8192229d720c77bd5454df6e97
Author: James Antill <james at and.org>
Date: Tue Sep 16 01:36:42 2008 -0400
Use calcColumns for groupinfo -v, per. group. Tidy up group section printing
diff --git a/output.py b/output.py
index 1d1f570..95efac4 100644
--- a/output.py
+++ b/output.py
@@ -549,8 +549,20 @@ class YumOutput:
ret.setdefault(pkg.name, []).append((apkg, ipkg))
return ret
+ def _calcDataPkgColumns(self, data, pkg_names, pkg_names2pkgs):
+ for item in pkg_names:
+ if item not in pkg_names2pkgs:
+ continue
+ for (apkg, ipkg) in pkg_names2pkgs[item]:
+ pkg = ipkg or apkg
+ envra = len(str(pkg))
+ rid = len(pkg.repoid)
+ for (d, v) in (('envra', envra), ('rid', rid)):
+ data[d].setdefault(v, 0)
+ data[d][v] += 1
+
def _displayPkgsFromNames(self, pkg_names, verbose, pkg_names2pkgs,
- indent=' '):
+ indent=' ', columns=None):
if not verbose:
for item in sorted(pkg_names):
print '%s%s' % (indent, item)
@@ -562,7 +574,8 @@ class YumOutput:
for (apkg, ipkg) in sorted(pkg_names2pkgs[item],
key=lambda x: x[1] or x[0]):
self.simpleEnvraList(ipkg or apkg, ui_overflow=True,
- indent=indent, highlight=ipkg and apkg)
+ indent=indent, highlight=ipkg and apkg,
+ columns=columns)
def displayPkgsInGroups(self, group):
mylang = get_my_lang_code()
@@ -574,25 +587,25 @@ class YumOutput:
pkg_names2pkgs = self._group_names2aipkgs(group.packages)
if group.descriptionByLang(mylang) != "":
print _(' Description: %s') % to_unicode(group.descriptionByLang(mylang))
- if len(group.mandatory_packages) > 0:
- print _(' Mandatory Packages:')
- self._displayPkgsFromNames(group.mandatory_packages, verb,
- pkg_names2pkgs)
-
- if len(group.default_packages) > 0:
- print _(' Default Packages:')
- self._displayPkgsFromNames(group.default_packages, verb,
- pkg_names2pkgs)
-
- if len(group.optional_packages) > 0:
- print _(' Optional Packages:')
- self._displayPkgsFromNames(group.optional_packages, verb,
- pkg_names2pkgs)
-
- if len(group.conditional_packages) > 0:
- print _(' Conditional Packages:')
- self._displayPkgsFromNames(group.conditional_packages, verb,
- pkg_names2pkgs)
+
+ sections = ((_(' Mandatory Packages:'), group.mandatory_packages),
+ (_(' Default Packages:'), group.default_packages),
+ (_(' Optional Packages:'), group.optional_packages),
+ (_(' Conditional Packages:'), group.conditional_packages))
+ columns = None
+ if verb:
+ data = {'envra' : {}, 'rid' : {}}
+ for (section_name, pkg_names) in sections:
+ self._calcDataPkgColumns(data, pkg_names, pkg_names2pkgs)
+ data = [data['envra'], data['rid']]
+ columns = self.calcColumns(data)
+ columns = (-columns[0], -columns[1])
+
+ for (section_name, pkg_names) in sections:
+ if len(pkg_names) > 0:
+ print section_name
+ self._displayPkgsFromNames(pkg_names, verb, pkg_names2pkgs,
+ columns=columns)
def depListOutput(self, results):
"""take a list of findDeps results and 'pretty print' the output"""
commit f6c815dc07830aa21e0691b59c7dfa2273e29a0c
Author: James Antill <james at and.org>
Date: Mon Sep 15 19:17:22 2008 -0400
Create a calcColumns() from the work in listTransaction.
Call calcColumns() from the list command.
Tweak the APIs used to pass the column data down to simpleList().
Make simpleList etc. work based on fmtColumns().
Tweak the output format for list obsoletes.
diff --git a/output.py b/output.py
index 799fcf4..1d1f570 100644
--- a/output.py
+++ b/output.py
@@ -255,17 +255,86 @@ class YumOutput:
hiend = ''
return (hibeg, hiend)
+ @staticmethod
+ def _calc_columns_spaces_helps(current, data_tups, left):
+ """ Spaces left on the current field will help how many pkgs? """
+ ret = 0
+ for tup in data_tups:
+ if left < (tup[0] - current):
+ break
+ ret += tup[1]
+ return ret
+
+ def calcColumns(self, data, columns=None, remainder_column=0,
+ total_width=None, indent=''):
+ """ Dynamically calculate the width of the fields in the data, data is
+ of the format [column-number][field_length] = rows. """
+
+ if total_width is None:
+ total_width = self.term.columns
+
+ cols = len(data)
+ # Convert the data to ascending list of tuples, (field_length, pkgs)
+ pdata = data
+ data = [None] * cols # Don't modify the passed in data
+ for d in range(0, cols):
+ data[d] = sorted(pdata[d].items())
+
+ if columns is None:
+ columns = [1] * cols
+
+ total_width -= (sum(columns) + (cols - 1) + len(indent))
+ while total_width > 0:
+ # Find which field all the spaces left will help best
+ helps = 0
+ val = 0
+ for d in xrange(0, cols):
+ thelps = self._calc_columns_spaces_helps(columns[d], data[d],
+ total_width)
+ if not thelps:
+ continue
+ if thelps < helps:
+ continue
+ helps = thelps
+ val = d
+
+ # If we found a column to expand, move up to the next level with
+ # that column and start again with any remaining space.
+ if helps:
+ diff = data[val].pop(0)[0] - columns[val]
+ columns[val] += diff
+ total_width -= diff
+ continue
+
+ # Split the remaining spaces among each column equally, except the
+ # last one. And put the rest into the remainder column
+ cols -= 1
+ norm = total_width / cols
+ for d in xrange(0, cols):
+ columns[d] += norm
+ columns[remainder_column] += total_width - (cols * norm)
+ total_width = 0
+
+ return columns
+
+ @staticmethod
+ def _fmt_column_align_width(width):
+ if width < 0:
+ return (u"-", -width)
+ return (u"", width)
+
def fmtColumns(self, columns, msg=u'', end=u''):
- """ Return a fmt for columns of data, which can overflow."""
- def _align_width(width):
- if width < 0:
- return (u"-", -width)
- return (u"", width)
+ """ Return a string for columns of data, which can overflow."""
total_width = len(msg)
data = []
for (val, width) in columns[:-1]:
- (align, width) = _align_width(width)
+ if not width: # Don't count this column, invisible text
+ msg += u"%s"
+ data.append(val)
+ continue
+
+ (align, width) = self._fmt_column_align_width(width)
if len(val) <= width:
msg += u"%%%s%ds " % (align, width)
else:
@@ -274,29 +343,38 @@ class YumOutput:
total_width += 1
data.append(val)
(val, width) = columns[-1]
- (align, width) = _align_width(width)
+ (align, width) = self._fmt_column_align_width(width)
msg += u"%%%s%ds%s" % (align, width, end)
data.append(val)
return msg % tuple(data)
- def simpleList(self, pkg, ui_overflow=False, indent='', highlight=False):
+ def simpleList(self, pkg, ui_overflow=False, indent='', highlight=False,
+ columns=None):
+ """ Simple to use function to print a pkg as a line. """
+
+ if columns is None:
+ columns = (-40, -22, -16) # Old default
(hibeg, hiend) = self._highlight(highlight)
ver = pkg.printVer()
na = '%s%s.%s' % (indent, pkg.name, pkg.arch)
- if ui_overflow and (len(na) - (len(hibeg) + len(hiend))) > 40:
- print "%s%s%s %s" % (hibeg, na, hiend, "...")
- na = ""
- print "%s%-40.40s%s %-22.22s %-16.16s" % (hibeg, na, hiend,
- ver, pkg.repoid)
+ columns = zip((na, ver, pkg.repoid), columns)
+ columns.insert(1, (hiend, 0))
+ columns.insert(0, (hibeg, 0))
+ print self.fmtColumns(columns)
def simpleEnvraList(self, pkg, ui_overflow=False,
- indent='', highlight=False):
+ indent='', highlight=False, columns=None):
+ """ Simple to use function to print a pkg as a line, with the pkg
+ itself in envra format so it can be pased to list/install/etc. """
+
+ if columns is None:
+ columns = (-63, -16) # Old default
(hibeg, hiend) = self._highlight(highlight)
envra = '%s%s' % (indent, str(pkg))
- if ui_overflow and (len(envra) - (len(hibeg) + len(hiend))) > 63:
- print "%s%s%s %s" % (hibeg, envra, hiend, "...")
- envra = ""
- print "%s%-63.63s%s %-16.16s" % (hibeg, envra, hiend, pkg.repoid)
+ columns = zip((envra, pkg.repoid), columns)
+ columns.insert(1, (hiend, 0))
+ columns.insert(0, (hibeg, 0))
+ print self.fmtColumns(columns)
def fmtKeyValFill(self, key, val):
""" Return a key value pair in the common two column output format. """
@@ -360,18 +438,26 @@ class YumOutput:
print self.fmtKeyValFill(_("Description: "), self._enc(pkg.description))
print ""
- def updatesObsoletesList(self, uotup, changetype):
+ def updatesObsoletesList(self, uotup, changetype, columns=None):
"""takes an updates or obsoletes tuple of pkgobjects and
returns a simple printed string of the output and a string
explaining the relationship between the tuple members"""
(changePkg, instPkg) = uotup
+
+ if columns is not None:
+ # New style, output all info. for both old/new with old indented
+ self.simpleList(changePkg, columns=columns)
+ self.simpleList(instPkg, columns=columns, indent=' ' * 4)
+ return
+
+ # Old style
c_compact = changePkg.compactPrint()
i_compact = '%s.%s' % (instPkg.name, instPkg.arch)
c_repo = changePkg.repoid
- # FIXME - other ideas for how to print this out?
print '%-35.35s [%.12s] %.10s %-20.20s' % (c_compact, c_repo, changetype, i_compact)
- def listPkgs(self, lst, description, outputType, highlight_na={}):
+ def listPkgs(self, lst, description, outputType, highlight_na={},
+ columns=None):
"""outputs based on whatever outputType is. Current options:
'list' - simple pkg list
'info' - similar to rpm -qi output
@@ -391,7 +477,7 @@ class YumOutput:
if outputType == 'list':
self.simpleList(pkg, ui_overflow=True,
- highlight=highlight)
+ highlight=highlight, columns=columns)
elif outputType == 'info':
self.infoOutput(pkg, highlight=highlight)
else:
@@ -667,53 +753,6 @@ class YumOutput:
# http://fedorapeople.org/~james/yum/commands/length_distributions.py
# but it sucked for corner cases, so this is dynamic...
- def _spaces_helps(current, data_tups, left):
- """ Spaces left on the current field will help how many pkgs? """
- ret = 0
- for tup in data_tups:
- if left < (tup[0] - current):
- break
- ret += tup[1]
- return ret
- # FIXME: This should be a top level function called calcColumns(), or
- # something. We output a lot of column data.
- def _calc_widths(data, a_wid):
- """ Dynamically calc. the width of the four fields. """
- # Convert the dict to ascending list of tuples, (field_length, pkgs)
- for d in ("n", "v", "r"):
- data[d] = sorted(data[d].items())
-
- wid = {'n' : 1, 'v' : 1, 'r' : 1}
- left = 69 - (a_wid + wid['n'] + wid['v'] + wid['r'])
- while left > 0:
- # Find which field all the spaces left will help best
- helps = 0
- val = 'n'
- for d in ("n", "v", "r"):
- thelps = _spaces_helps(wid[d], data[d], left)
- if not thelps:
- continue
- if thelps < helps:
- continue
- helps = thelps
- val = d
-
- # If we found one, move up to the next level with that field
- if helps:
- diff = data[val].pop(0)[0] - wid[val]
- wid[val] += diff
- left -= diff
- continue
-
- # Split the remaining spaces among each field
- wid['n'] += left / 4
- a_wid += left / 4
- wid['v'] += left / 4
- wid['r'] += left - (3 * (left / 4))
- left = 0
-
- return (wid['n'], a_wid, wid['v'], wid['r'])
-
data = {'n' : {}, 'v' : {}, 'r' : {}}
a_wid = 0 # Arch can't get "that big" ... so always use the max.
for (action, pkglist) in [(_('Installing'), self.tsInfo.installed),
@@ -745,20 +784,29 @@ class YumOutput:
pkglist_lines.append((action, lines))
if data['n']:
- (n_wid, a_wid, v_wid, r_wid) = _calc_widths(data, a_wid)
+ data = [data['n'], {}, data['v'], data['r'], {}]
+ columns = [1, a_wid, 1, 1, 5]
+ columns = self.calcColumns(data, indent=" ", columns=columns,
+ remainder_column=2)
+ (n_wid, a_wid, v_wid, r_wid, s_wid) = columns
+ assert s_wid == 5
+
out = u"""
-================================================================================
- %-*s %-*s %-*s %-*s %-5s
-================================================================================
-""" % (n_wid, _('Package'), a_wid, _('Arch'),
- v_wid, _('Version'), r_wid, _('Repository'), _('Size'))
+%s
+%s
+%s
+""" % ('=' * self.term.columns,
+ self.fmtColumns(((_('Package'), -n_wid), (_('Arch'), -a_wid),
+ (_('Version'), -v_wid), (_('Repository'), -r_wid),
+ (_('Size'), s_wid)), u" "),
+ '=' * self.term.columns)
for (action, lines) in pkglist_lines:
if lines:
totalmsg = u"%s:\n" % action
for (n, a, evr, repoid, size, obsoletes) in lines:
columns = ((n, -n_wid), (a, -a_wid),
- (evr, -v_wid), (repoid, -r_wid), (size, 5))
+ (evr, -v_wid), (repoid, -r_wid), (size, s_wid))
msg = self.fmtColumns(columns, u" ", u"\n")
for obspo in obsoletes:
appended = _(' replacing %s.%s %s\n\n') % (obspo.name,
@@ -771,13 +819,14 @@ class YumOutput:
summary = _("""
Transaction Summary
-================================================================================
+%s
Install %5.5s Package(s)
Update %5.5s Package(s)
Remove %5.5s Package(s)
-""") % (len(self.tsInfo.installed + self.tsInfo.depinstalled),
- len(self.tsInfo.updated + self.tsInfo.depupdated),
- len(self.tsInfo.removed + self.tsInfo.depremoved))
+""") % ('=' * self.term.columns,
+ len(self.tsInfo.installed + self.tsInfo.depinstalled),
+ len(self.tsInfo.updated + self.tsInfo.depupdated),
+ len(self.tsInfo.removed + self.tsInfo.depremoved))
out = out + summary
return out
diff --git a/yumcommands.py b/yumcommands.py
index 903456e..ba1f139 100644
--- a/yumcommands.py
+++ b/yumcommands.py
@@ -213,16 +213,54 @@ class InfoCommand(YumCommand):
return 1, [str(e)]
else:
update_pkgs = {}
+
+ columns = None
+ if basecmd == 'list':
+ # Dynamically size the columns
+ def _add_pkg_simple_list_lens(data, pkg, indent=''):
+ """ Get the length of each pkg's column. Add that to data.
+ This "knows" about simpleList and printVer. """
+ na = len(pkg.name) + 1 + len(pkg.arch) + len(indent)
+ ver = len(pkg.version) + 1 + len(pkg.release)
+ rid = len(pkg.repoid)
+ if pkg.epoch != '0':
+ ver += len(pkg.epoch) + 1
+ for (d, v) in (('na', na), ('ver', ver), ('rid', rid)):
+ data[d].setdefault(v, 0)
+ data[d][v] += 1
+
+ data = {'na' : {}, 'ver' : {}, 'rid' : {}}
+ for lst in (ypl.installed, ypl.available, ypl.extras,
+ ypl.updates, ypl.recent):
+ for pkg in lst:
+ _add_pkg_simple_list_lens(data, pkg)
+ if len(ypl.obsoletes) > 0:
+ for (npkg, opkg) in ypl.obsoletesTuples:
+ _add_pkg_simple_list_lens(data, npkg)
+ _add_pkg_simple_list_lens(data, opkg, indent=" " * 4)
+
+ data = [data['na'], data['ver'], data['rid']]
+ columns = base.calcColumns(data, remainder_column=1)
+ columns = (-columns[0], -columns[1], -columns[2])
+
if ypl.installed:
+ # If we have installed and available lists, then do the
+ # highlighting for the installed packages so you can see what's
+ # available to install vs. available to update.
for pkg in ypl.available:
key = (pkg.name, pkg.arch)
if key not in update_pkgs or pkg.verGT(update_pkgs[key]):
update_pkgs[key] = pkg
+
+ # Output the packages:
rip = base.listPkgs(ypl.installed, _('Installed Packages'), basecmd,
- highlight_na=update_pkgs)
- rap = base.listPkgs(ypl.available, _('Available Packages'), basecmd)
- rep = base.listPkgs(ypl.extras, _('Extra Packages'), basecmd)
- rup = base.listPkgs(ypl.updates, _('Updated Packages'), basecmd)
+ highlight_na=update_pkgs, columns=columns)
+ rap = base.listPkgs(ypl.available, _('Available Packages'), basecmd,
+ columns=columns)
+ rep = base.listPkgs(ypl.extras, _('Extra Packages'), basecmd,
+ columns=columns)
+ rup = base.listPkgs(ypl.updates, _('Updated Packages'), basecmd,
+ columns=columns)
# XXX put this into the ListCommand at some point
if len(ypl.obsoletes) > 0 and basecmd == 'list':
@@ -232,10 +270,13 @@ class InfoCommand(YumCommand):
# The tuple is (newPkg, oldPkg) ... so sort by new
for obtup in sorted(ypl.obsoletesTuples,
key=operator.itemgetter(0)):
- base.updatesObsoletesList(obtup, 'obsoletes')
+ base.updatesObsoletesList(obtup, 'obsoletes',
+ columns=columns)
else:
- rop = base.listPkgs(ypl.obsoletes, _('Obsoleting Packages'), basecmd)
- rrap = base.listPkgs(ypl.recent, _('Recently Added Packages'), basecmd)
+ rop = base.listPkgs(ypl.obsoletes, _('Obsoleting Packages'),
+ basecmd, columns=columns)
+ rrap = base.listPkgs(ypl.recent, _('Recently Added Packages'),
+ basecmd, columns=columns)
# extcmds is pop(0)'d if they pass a "special" param like "updates"
# in returnPkgLists(). This allows us to always return "ok" for
# things like "yum list updates".
commit ba3ff4c780a0c1ce7b42833419fa39e5f2d2286c
Merge: 6ab778f... 14a0123...
Author: James Antill <james at and.org>
Date: Mon Sep 15 19:14:54 2008 -0400
Merge branch 'yum-3_2_X' of ssh://login.linux.duke.edu/home/groups/yum/git/yum into yum-3_2_X
* 'yum-3_2_X' of ssh://login.linux.duke.edu/home/groups/yum/git/yum:
- add crazy utf8 conversion routine for outputting xml for metadata
commit 14a0123336784314311f6ce019c40cdbf7b51088
Merge: 876bdf5... 3bde1ea...
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Mon Sep 15 16:47:00 2008 -0400
Merge branch 'yum-3_2_X' of ssh://login.linux.duke.edu/home/groups/yum/git/yum into yum-3_2_X
* 'yum-3_2_X' of ssh://login.linux.duke.edu/home/groups/yum/git/yum:
Make sure we get two packages with the same nevra, but different pkgKey's
Fix the testcases to not die due to missing persistdir
Speedup for includepkgs, use a set for main in test
Don't use parsePacakges where just returnPackages() dtrt. now
Make rpmdb.returnPackages dtrt. like sqlitesack, always doing the minimization
Patterns max constant change, adding PATTERNS_INDEXED_MAX and comments.
commit 876bdf5559ed483ce75446eb6112742b0523cab8
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Mon Sep 15 16:45:13 2008 -0400
- add crazy utf8 conversion routine for outputting xml for metadata
- if/when non-utf8 filenames/metadata content becomes good and illegal then
we should be able to clean this all out
diff --git a/yum/misc.py b/yum/misc.py
index 2f2b27b..2a64bea 100644
--- a/yum/misc.py
+++ b/yum/misc.py
@@ -621,10 +621,58 @@ def seq_max_split(seq, max_entries):
num -= max_entries
ret.append(seq[beg:])
return ret
+
+def _ugly_utf8_string_hack(item):
+ """hands back a unicoded string"""
+ # this is backward compat for handling non-utf8 filenames
+ # and content inside packages. :(
+ # content that xml can cope with but isn't really kosher
+
+ # if we're anything obvious - do them first
+ if item is None:
+ return ''
+ elif isinstance(item, unicode):
+ return item
+
+ # this handles any bogon formats we see
+ du = False
+ try:
+ x = unicode(item, 'ascii')
+ du = True
+ except UnicodeError:
+ encodings = ['utf-8', 'iso-8859-1', 'iso-8859-15', 'iso-8859-2']
+ for enc in encodings:
+ try:
+ x = unicode(item, enc)
+ except UnicodeError:
+ pass
+
+ else:
+ if x.encode(enc) == item:
+ if enc != 'utf-8':
+ print '\n%s encoding on %s\n' % (enc, item)
+ return x.encode('utf-8')
+
+ # Kill bytes (or libxml will die) not in the small byte portion of:
+ # http://www.w3.org/TR/REC-xml/#NT-Char
+ # we allow high bytes, if it passed the utf8 check above. Eg.
+ # good chars = #x9 | #xA | #xD | [#x20-...]
+ newitem = ''
+ bad_small_bytes = range(0, 8) + [11, 12] + range(14, 32)
+ for char in item:
+ if ord(char) in bad_small_bytes:
+ pass # Just ignore these bytes...
+ elif not du and ord(char) > 127:
+ newitem = newitem + '?' # byte by byte equiv of escape
+ else:
+ newitem = newitem + char
+ return newitem
+
def to_xml(item, attrib=False):
import xml.sax.saxutils
- item = to_utf8(item) # verify this does enough conversion
+ item = _ugly_utf8_string_hack(item)
+ item = to_utf8(item)
item = item.rstrip()
if attrib:
item = xml.sax.saxutils.escape(item, entities={'"':"""})
commit 6ab778faf6f5564a70e87d23b28feb44d3448302
Author: James Antill <james at and.org>
Date: Mon Sep 15 14:28:23 2008 -0400
Dynamically size the width for the Loaded plugins message, if possible
diff --git a/yum/plugins.py b/yum/plugins.py
index 7b8070a..a623e16 100644
--- a/yum/plugins.py
+++ b/yum/plugins.py
@@ -199,8 +199,11 @@ class YumPlugins:
key = _("Loaded plugins: ")
val = ", ".join(sorted(self._plugins))
nxt = ' ' * (len(key) - 2) + ': '
+ width = 80
+ if hasattr(self.base, 'term'):
+ width = self.base.term.columns
self.verbose_logger.log(logginglevels.INFO_2,
- fill(val, width=80, initial_indent=key,
+ fill(val, width=width, initial_indent=key,
subsequent_indent=nxt))
if self.disabledPlugins:
commit 3bde1ea38919ef5a045437e34ef8e070861d4f4f
Author: James Antill <james at and.org>
Date: Fri Sep 12 10:52:55 2008 -0400
Make sure we get two packages with the same nevra, but different pkgKey's
diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index 520ca2e..578d0b9 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -1169,7 +1169,8 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
pkgobjlist = self._buildPkgObjList(repoid, patterns, ignore_case)
if hasattr(self, 'pkgobjlist') and patterns:
- pkgobjlist = parsePackages(pkgobjlist, patterns, not ignore_case)
+ pkgobjlist = parsePackages(pkgobjlist, patterns, not ignore_case,
+ unique='repo-pkgkey')
pkgobjlist = pkgobjlist[0] + pkgobjlist[1]
returnList = []
commit 43bc32f3761a3fec6e47fadc5748a32043809d37
Author: James Antill <james at and.org>
Date: Fri Sep 12 02:35:29 2008 -0400
Fix the testcases to not die due to missing persistdir
diff --git a/test/testbase.py b/test/testbase.py
index 372fec3..ccab847 100644
--- a/test/testbase.py
+++ b/test/testbase.py
@@ -34,6 +34,7 @@ class FakeConf(object):
self.skip_broken = False
self.disable_excludes = []
self.multilib_policy = 'best'
+ self.persistdir = '/should-not-exist-bad-test!'
class FakeRepo(object):
commit 3ac146836b184b8ca825790d6bb69d27e398c583
Author: James Antill <james at and.org>
Date: Fri Sep 12 02:30:28 2008 -0400
Speedup for includepkgs, use a set for main in test
diff --git a/yum/__init__.py b/yum/__init__.py
index 54ea989..29c57c2 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -918,9 +918,10 @@ class YumBase(depsolve.Depsolve):
self.verbose_logger.log(logginglevels.INFO_2,
_('Reducing %s to included packages only'), repo.name)
rmlist = []
+ keeplist = set(exactmatch + matched)
for po in pkglist:
- if po in exactmatch + matched:
+ if po in keeplist:
self.verbose_logger.debug(_('Keeping included package %s'), po)
continue
else:
commit b4674bddab0d6b273061184a55ddc8c4030893ff
Author: James Antill <james at and.org>
Date: Fri Sep 12 02:28:13 2008 -0400
Don't use parsePacakges where just returnPackages() dtrt. now
diff --git a/yum/__init__.py b/yum/__init__.py
index f30f4bd..54ea989 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -892,11 +892,10 @@ class YumBase(depsolve.Depsolve):
self.verbose_logger.log(logginglevels.INFO_2, _('Excluding Packages from %s'),
repo.name)
- pkgs = self._pkgSack.returnPackages(repoid, patterns=excludelist)
- exactmatch, matched, unmatched = \
- parsePackages(pkgs, excludelist, casematch=1, unique='repo-pkgkey')
+ pkgs = self._pkgSack.returnPackages(repoid, patterns=excludelist,
+ ignore_case=False)
- for po in exactmatch + matched:
+ for po in pkgs:
self.verbose_logger.debug('Excluding %s', po)
po.repo.sack.delPackage(po)
@@ -2362,11 +2361,7 @@ class YumBase(depsolve.Depsolve):
# Do we still want to return errors here?
# We don't in the cases below, so I didn't here...
if 'pattern' in kwargs:
- pats = [kwargs['pattern']]
- pkgs = self.rpmdb.returnPackages(patterns=pats)
- exactmatch, matched, unmatched = parsePackages(pkgs, pats,
- casematch=1)
- pkgs = exactmatch + matched
+ pkgs = self.rpmdb.returnPackages(patterns=[kwargs['pattern']])
if 'name' in kwargs:
pkgs = self.rpmdb.searchNevra(name=kwargs['name'])
for pkg in pkgs:
commit cb6d608ab72a93583ef9e188d39144181a25fa3c
Author: James Antill <james at and.org>
Date: Fri Sep 12 02:22:00 2008 -0400
Make rpmdb.returnPackages dtrt. like sqlitesack, always doing the minimization
diff --git a/yum/rpmsack.py b/yum/rpmsack.py
index 0fd5b8c..31ae142 100644
--- a/yum/rpmsack.py
+++ b/yum/rpmsack.py
@@ -21,7 +21,7 @@ from rpmUtils import miscutils
from rpmUtils.transaction import initReadOnlyTransaction
import misc
import Errors
-from packages import YumInstalledPackage
+from packages import YumInstalledPackage, parsePackages
from packageSack import PackageSackBase
# For returnPackages(patterns=)
@@ -296,7 +296,12 @@ class RPMDBPackageSack(PackageSackBase):
if self._match_repattern(rpats, hdr):
self._makePackageObject(hdr, idx)
self._completely_loaded = patterns is None
- return self._idx2pkg.values()
+
+ pkgobjlist = self._idx2pkg.values()
+ if patterns:
+ pkgobjlist = parsePackages(pkgobjlist, patterns, not ignore_case)
+ pkgobjlist = pkgobjlist[0] + pkgobjlist[1]
+ return pkgobjlist
@staticmethod
def _find_search_fields(fields, searchstrings, hdr):
commit d0108a32e297b1377cabb3fd1c3cb36b510e00c5
Author: James Antill <james at and.org>
Date: Thu Sep 11 22:13:18 2008 -0400
Patterns max constant change, adding PATTERNS_INDEXED_MAX and comments.
Also dtrt. wrt. large returnPackages() pattern lists (using parsePackages
instead of returning everything).
Testing done with:
time yum ls $(perl -e 'print "python-urlgrabber " x 8')
time yum ls $(perl -e 'print "ustr " x 128')
...the last two are stupidly fast still, due to the index on name so they
get a different limit.
Also tested:
time yum search $(perl -e 'print "ustr " x 14')
...but that doesn't seem affected, as it grows linearly but takes even longer
in python. And:
time yum groupinfo -v \*
...but that seems to be just as fast when PATTERNS_*MAX is low and thus.
requires multiple SQL queries.
diff --git a/yum/constants.py b/yum/constants.py
index 00a2bba..c6de596 100644
--- a/yum/constants.py
+++ b/yum/constants.py
@@ -98,5 +98,12 @@ RPM_TO_SQLITE = { 'packagesize' : 'size_package',
'license' : 'rpm_license'
}
-# Cut over for when we should just give up and load everything
-PATTERNS_MAX = 512
+# Cut over for when we should just give up and load everything.
+# The main problem here is not so much SQLite dying (although that happens
+# at large values: http://sqlite.org/limits.html#max_variable_number) but that
+# but SQLite going really slow when it gets medium sized values (much slower
+# than just loading everything and filtering it in python).
+PATTERNS_MAX = 8
+# We have another value here because name is indexed and sqlite is _much_
+# faster even at large numbers of patterns.
+PATTERNS_INDEXED_MAX = 128
diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index 7b8d11f..520ca2e 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -24,7 +24,7 @@ import os.path
import fnmatch
import yumRepo
-from packages import PackageObject, RpmBase, YumAvailablePackage
+from packages import PackageObject, RpmBase, YumAvailablePackage, parsePackages
import Errors
import misc
@@ -870,7 +870,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
return []
returnList = []
- max_entries = constants.PATTERNS_MAX
+ max_entries = constants.PATTERNS_INDEXED_MAX
if len(names) > max_entries:
for names in seq_max_split(names, max_entries):
returnList.extend(self.searchNames(names))
@@ -1104,12 +1104,6 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
patterns = []
returnList = []
- max_entries = constants.PATTERNS_MAX / 7
- if len(patterns) > max_entries:
- for patterns in seq_max_split(patterns, max_entries):
- returnList.extend(self._buildPkgObjList(repoid, patterns,
- ignore_case))
- return returnList
fields = ['name', 'sql_nameArch', 'sql_nameVerRelArch',
'sql_nameVer', 'sql_nameVerRel',
@@ -1120,8 +1114,12 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
need_full = True
break
+ pat_max = constants.PATTERNS_MAX
if not need_full:
fields = ['name']
+ pat_max = constants.PATTERNS_INDEXED_MAX
+ if len(patterns) > pat_max:
+ patterns = []
for (repo,cache) in self.primarydb.items():
if (repoid == None or repoid == repo.id):
@@ -1170,6 +1168,10 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
else:
pkgobjlist = self._buildPkgObjList(repoid, patterns, ignore_case)
+ if hasattr(self, 'pkgobjlist') and patterns:
+ pkgobjlist = parsePackages(pkgobjlist, patterns, not ignore_case)
+ pkgobjlist = pkgobjlist[0] + pkgobjlist[1]
+
returnList = []
for po in pkgobjlist:
if self._pkgExcluded(po):
commit 8cec6b24f912308630b49ba58741fa32c8ccbecd
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Thu Sep 11 23:56:55 2008 -0400
emit a warning and pause for 3s when there are unfinished transactions hanging about
diff --git a/yum/__init__.py b/yum/__init__.py
index 5233712..f30f4bd 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -635,6 +635,12 @@ class YumBase(depsolve.Depsolve):
def buildTransaction(self):
"""go through the packages in the transaction set, find them in the
packageSack or rpmdb, and pack up the ts accordingly"""
+ if misc.find_unfinished_transactions(yumlibpath=self.conf.persistdir):
+ msg = _('There are unfinished transactions remaining. You might' \
+ 'consider running yum-complete-transaction first to finish them.' )
+ self.logger.critical(msg)
+ time.sleep(3)
+
self.plugins.run('preresolve')
ds_st = time.time()
commit d50d5886cf7f474e791c0d91c91069263ddc57a4
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Thu Sep 11 11:48:22 2008 -0400
- check in new german translation
- correct a docstring
diff --git a/po/de.po b/po/de.po
index 1206f8c..adc5e06 100644
--- a/po/de.po
+++ b/po/de.po
@@ -1,19 +1,19 @@
# Fabian Affolter <fab at fedoraproject.org>, 2007,2008.
# Dominik Sandjaja <dominiksandjaja at fedoraproject.org>, 2008.
+# Thomas Spura <tomspur at fedoraproject.org>, 2008
#
msgid ""
msgstr ""
"Project-Id-Version: yum\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-07-22 03:14+0000\n"
-"PO-Revision-Date: 2008-07-22 09:47+0100\n"
+"POT-Creation-Date: 2008-08-27 21:26+0000\n"
+"PO-Revision-Date: 2008-09-11 15:51+0100\n"
"Last-Translator: Fabian Affolter <fab at fedoraproject.org>\n"
"Language-Team: German <fedora-trans-de at redhat.com>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Poedit-Language: German\n"
#: ../callback.py:48
#: ../output.py:516
@@ -192,7 +192,7 @@ msgid ""
"Refusing to automatically import keys when running unattended.\n"
"Use \"-y\" to override."
msgstr ""
-"Verweigere automatischen Import der Schlüssel, wenn unbeaufsichtigt augeführt.\n"
+"Verweigere automatischen Import der Schlüssel, wenn unbeaufsichtigt ausgeführt.\n"
"Benutze \"-y\" zum Ãberschreiben."
#: ../cli.py:494
@@ -639,7 +639,7 @@ msgstr " Abhängigkeit: %s"
#: ../output.py:407
msgid " Unsatisfied dependency"
-msgstr " Unbefriedigte Abhängigkeit"
+msgstr " Nicht erfüllte Abhängigkeit"
#: ../output.py:465
msgid "Matched from:"
@@ -766,10 +766,11 @@ msgstr "veraltet"
msgid "erased"
msgstr "gelöscht"
+# Dies ist das Sorgenkind. So weit ich weiss, werden die Verben von oben bezogen. Eventuell könnte auch eine radikale Ãnderung eine Lösung sein. Fabian
#: ../output.py:650
#, python-format
msgid "---> Package %s.%s %s:%s-%s set to be %s"
-msgstr "---> Paket %s.%s %s:%s-%s markiert, um %s zu werden"
+msgstr "---> Paket %s.%s %s:%s-%s gesetzt, um %s zu werden"
#: ../output.py:657
msgid "--> Running transaction check"
@@ -1402,7 +1403,7 @@ msgstr "Repository-Objekt für Repository %s fehlt a _resetSack method\n"
#: ../yum/__init__.py:475
msgid "therefore this repo cannot be reset.\n"
-msgstr "deshlab dieses Repository kann nicht zurückgesetzt werden.\n"
+msgstr "deshalb dieses Repository kann nicht zurückgesetzt werden.\n"
#: ../yum/__init__.py:480
msgid "doUpdateSetup() will go away in a future version of Yum.\n"
@@ -1463,7 +1464,7 @@ msgstr " %s von %s"
#: ../yum/__init__.py:792
msgid "Warning: scriptlet or other non-fatal errors occurred during transaction."
-msgstr "Warnung: Scriptlet- oder anderen nichtkritische Fehler sind bei der Verarbeitung aufgetreten."
+msgstr "Warnung: Es sind Scriptlet- oder andere nicht-fatale Fehler bei der Verarbeitung aufgetreten."
#: ../yum/__init__.py:807
#, python-format
@@ -1635,7 +1636,7 @@ msgstr "Stelle Ãbereinstimmung bereit: %s"
#: ../yum/__init__.py:1717
msgid "No group data available for configured repositories"
-msgstr "Keine Gruppen-Daten in den konfigurierten Repositories verfügbar"
+msgstr "Keine Gruppe für konfigurierte Repositories verfügbar"
#: ../yum/__init__.py:1743
#: ../yum/__init__.py:1762
@@ -1771,7 +1772,7 @@ msgstr "Untersuche %s: %s"
#: ../yum/__init__.py:2504
#, python-format
msgid "Cannot add package %s to transaction. Not a compatible architecture: %s"
-msgstr "Kann Paket %s nicht zur Verarbeitung hinzufügen. Keine kompatible Architektur: %s"
+msgstr "Kann Paket %s nicht zur Transaktion hinzufügen. Keine kompatible Architektur: %s"
#: ../yum/__init__.py:2512
#, python-format
diff --git a/yum/rpmsack.py b/yum/rpmsack.py
index b04d2ae..0fd5b8c 100644
--- a/yum/rpmsack.py
+++ b/yum/rpmsack.py
@@ -536,7 +536,7 @@ class RPMDBPackageSack(PackageSackBase):
def getProvides(self, name, flags=None, version=(None, None, None)):
"""searches the rpmdb for what provides the arguments
- returns a list of pkgtuples of providing packages, possibly empty"""
+ returns a list of pkg objects of providing packages, possibly empty"""
name = misc.share_data(name)
deptup = self._genDeptup(name, flags, version)
commit 81ee93edb5ac226c4a08767b41843265d367c616
Author: James Antill <james at and.org>
Date: Sun Sep 7 12:10:45 2008 -0400
Use self.verbose_logger.log instead of print for download_callback_total_cb
diff --git a/output.py b/output.py
index cdfc46d..799fcf4 100644
--- a/output.py
+++ b/output.py
@@ -875,14 +875,15 @@ Remove %5.5s Package(s)
return
tl = urlgrabber.progress.TerminalLine(8)
- print "-" * tl.rest()
+ self.verbose_logger.log(logginglevels.INFO_2, "-" * tl.rest())
dl_time = time.time() - download_start_timestamp
ui_size = tl.add(' | %5sB' % self.format_number(remote_size))
ui_time = tl.add(' %9s' % self.format_time(dl_time))
ui_end = tl.add(' ' * 5)
ui_bs = tl.add(' %5sB/s' % self.format_number(remote_size / dl_time))
- print "%-*.*s%s%s%s%s" % (tl.rest(), tl.rest(), _("Total"),
+ msg = "%-*.*s%s%s%s%s" % (tl.rest(), tl.rest(), _("Total"),
ui_bs, ui_size, ui_time, ui_end)
+ self.verbose_logger.log(logginglevels.INFO_2, msg)
class DepSolveProgressCallBack:
commit 2a08589d63a21af98c533fe0c6e37e298617e5bd
Author: James Antill <james at and.org>
Date: Thu Sep 4 15:40:56 2008 -0400
Fix stupid python syntax error in previous commit
diff --git a/yum/__init__.py b/yum/__init__.py
index cd86054..5233712 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -2295,11 +2295,13 @@ class YumBase(depsolve.Depsolve):
mypkgs = self.returnPackagesByDep(arg)
except yum.Errors.YumBaseError, e:
self.logger.critical(_('No Match for argument: %s') % arg)
- elif mypkgs: # Dep. installs don't do wildcards, so we
- # just want a single named package.
- mypkgs = self.bestPackagesFromList(mypkgs,
- single_name=True)
- pkgs.extend(mypkgs)
+ else:
+ if mypkgs:
+ # Dep. installs don't do wildcards, so we
+ # just want a single named package.
+ mypkgs = self.bestPackagesFromList(mypkgs,
+ single_name=True)
+ pkgs.extend(mypkgs)
else:
nevra_dict = self._nevra_kwarg_parse(kwargs)
commit 8732871e2946b1cf5237cf1b2ed7517d4fa5261c
Author: James Antill <james at and.org>
Date: Thu Sep 4 15:23:08 2008 -0400
Only return a single package name on provide based installs, bug 460783
diff --git a/yum/__init__.py b/yum/__init__.py
index 6fdb59d..cd86054 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -2141,7 +2141,7 @@ class YumBase(depsolve.Depsolve):
return best
- def bestPackagesFromList(self, pkglist, arch=None):
+ def bestPackagesFromList(self, pkglist, arch=None, single_name=False):
"""Takes a list of packages, returns the best packages.
This function is multilib aware so that it will not compare
multilib to singlelib packages"""
@@ -2166,6 +2166,10 @@ class YumBase(depsolve.Depsolve):
single = self._bestPackageFromList(singleLib)
no = self._bestPackageFromList(noarch)
+ if single_name and multi and single and multi.name != single.name:
+ # Sinlge _must_ match multi, if we want a single package name
+ single = None
+
# now, to figure out which arches we actually want
# if there aren't noarch packages, it's easy. multi + single
if no is None:
@@ -2291,9 +2295,11 @@ class YumBase(depsolve.Depsolve):
mypkgs = self.returnPackagesByDep(arg)
except yum.Errors.YumBaseError, e:
self.logger.critical(_('No Match for argument: %s') % arg)
- else:
- if mypkgs:
- pkgs.extend(self.bestPackagesFromList(mypkgs))
+ elif mypkgs: # Dep. installs don't do wildcards, so we
+ # just want a single named package.
+ mypkgs = self.bestPackagesFromList(mypkgs,
+ single_name=True)
+ pkgs.extend(mypkgs)
else:
nevra_dict = self._nevra_kwarg_parse(kwargs)
commit 5577c1b55738fdbb9bb6a655ab5c40525e533436
Author: James Antill <james at and.org>
Date: Tue Sep 2 02:02:28 2008 -0400
Add some test cases, including weird behaviuor for inst_require_obsoletes
diff --git a/test/depsolvetests.py b/test/depsolvetests.py
index 4a3dad5..87522eb 100644
--- a/test/depsolvetests.py
+++ b/test/depsolvetests.py
@@ -1114,3 +1114,41 @@ class DepsolveTests(DepsolveTests):
self.assertEquals('ok', *self.resolveCode())
self.assertResult((ipo1, po1))
+
+ def test_inst_require_conflict1(self):
+ ipo1 = FakePackage('foo')
+ ipo1.addRequires('bar', None, (None, None, None))
+ ipo1.addConflicts('bar', None, (None, None, None))
+ self.tsInfo.addInstall(ipo1)
+
+ po1 = FakePackage('bar')
+ self.xsack.addPackage(po1)
+
+ self.assertEquals('err', *self.resolveCode())
+
+ def test_inst_require_conflict_me1(self):
+ ipo1 = FakePackage('foo')
+ ipo1.addRequires('bar', None, (None, None, None))
+ self.tsInfo.addInstall(ipo1)
+
+ po1 = FakePackage('bar')
+ po1.addConflicts('foo', None, (None, None, None))
+ self.xsack.addPackage(po1)
+
+ self.assertEquals('err', *self.resolveCode())
+
+ def test_inst_require_obsoletes1(self):
+ ipo1 = FakePackage('foo')
+ ipo1.addRequires('bar', None, (None, None, None))
+ ipo1.addObsoletes('bar', None, (None, None, None))
+ self.tsInfo.addInstall(ipo1)
+
+ po1 = FakePackage('bar')
+ self.xsack.addPackage(po1)
+
+ # FIXME: Does it make sense to ignore the obsoletes here? esp. as we
+ # don't ignore the conflicts above? ... I'm guessing ignoring it is
+ # by accident too? bah.
+ # self.assertEquals('err', *self.resolveCode())
+ self.assertEquals('ok', *self.resolveCode())
+ self.assertResult((ipo1, po1))
commit dce0e17d173a57ea20190250c13f09fa072c917f
Author: James Antill <james at and.org>
Date: Tue Sep 2 01:07:25 2008 -0400
Allow yum to create "remove only" transactions, use it for rm cmd: bug 240821
diff --git a/cli.py b/cli.py
index e244d2f..cf0b186 100644
--- a/cli.py
+++ b/cli.py
@@ -327,12 +327,16 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
# setup our transaction set if the command we're using needs it
# compat with odd modules not subclassing YumCommand
needTs = True
- if hasattr(self.yum_cli_commands[self.basecmd], 'needTs'):
- needTs = self.yum_cli_commands[self.basecmd].needTs(self, self.basecmd, self.extcmds)
+ needTsRemove = False
+ cmd = self.yum_cli_commands[self.basecmd]
+ if hasattr(cmd, 'needTs'):
+ needTs = cmd.needTs(self, self.basecmd, self.extcmds)
+ if not needTs and hasattr(cmd, 'needTsRemove'):
+ needTsRemove = cmd.needTsRemove(self, self.basecmd, self.extcmds)
- if needTs:
+ if needTs or needTsRemove:
try:
- self._getTs()
+ self._getTs(needTsRemove)
except yum.Errors.YumBaseError, e:
return 1, [str(e)]
diff --git a/yum/__init__.py b/yum/__init__.py
index 4fa47eb..6fdb59d 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -644,8 +644,8 @@ class YumBase(depsolve.Depsolve):
if self.tsInfo.changed:
(rescode, restring) = self.resolveDeps()
- self.tsInfo.pkgSack.dropCachedData()
- self.pkgSack.dropCachedData()
+ if self.tsInfo.pkgSack is not None: # rm Transactions don't have pkgSack
+ self.tsInfo.pkgSack.dropCachedData()
self.rpmdb.dropCachedData()
# We _must_ get rid of all the used tses before we go on, so that C-c
diff --git a/yum/depsolve.py b/yum/depsolve.py
index 0cad1ab..25eb0e6 100644
--- a/yum/depsolve.py
+++ b/yum/depsolve.py
@@ -85,7 +85,7 @@ class Depsolve(object):
Errors.YumFutureDeprecationWarning, stacklevel=2)
return self._getTs()
- def _getTs(self):
+ def _getTs(self, remove_only=False):
"""setup all the transaction set storage items we'll need
This can't happen in __init__ b/c we don't know our installroot
yet"""
@@ -96,15 +96,21 @@ class Depsolve(object):
if not self.conf.installroot:
raise Errors.YumBaseError, _('Setting up TransactionSets before config class is up')
- self._getTsInfo()
+ self._getTsInfo(remove_only)
self.initActionTs()
- def _getTsInfo(self):
+ def _getTsInfo(self, remove_only=False):
+ """ remove_only param. says if we are going to do _only_ remove(s) in
+ the transaction. If so we don't need to setup the remote repos. """
if self._tsInfo is None:
self._tsInfo = self._transactionDataFactory()
- self._tsInfo.setDatabases(self.rpmdb, self.pkgSack)
+ if remove_only:
+ pkgSack = None
+ else:
+ pkgSack = self.pkgSack
+ self._tsInfo.setDatabases(self.rpmdb, pkgSack)
self._tsInfo.installonlypkgs = self.conf.installonlypkgs # this kinda sucks
- # this REALLY sucks, sadly
+ # this REALLY sucks, sadly (needed for group conditionals)
self._tsInfo.install_method = self.install
self._tsInfo.update_method = self.update
self._tsInfo.remove_method = self.remove
diff --git a/yum/rpmsack.py b/yum/rpmsack.py
index af34204..b04d2ae 100644
--- a/yum/rpmsack.py
+++ b/yum/rpmsack.py
@@ -60,9 +60,9 @@ class RPMInstalledPackage(YumInstalledPackage):
def __getattr__(self, varname):
self.hdr = val = self._get_hdr()
self._has_hdr = True
- if varname != 'hdr': # This is very unusual, for anything it does
- val = val[varname] # happen for it might be worth adding at __init_
-
+ if varname != 'hdr': # This is unusual, for anything that happens
+ val = val[varname] # a lot we should preload at __init__.
+ # Also note that pkg.no_value raises KeyError.
return val
diff --git a/yumcommands.py b/yumcommands.py
index 3eaf0de..903456e 100644
--- a/yumcommands.py
+++ b/yumcommands.py
@@ -284,6 +284,9 @@ class EraseCommand(YumCommand):
def needTs(self, base, basecmd, extcmds):
return False
+ def needTsRemove(self, base, basecmd, extcmds):
+ return True
+
class GroupCommand(YumCommand):
def doCommand(self, base, basecmd, extcmds):
base.verbose_logger.log(logginglevels.INFO_2,
commit 456e5d1b6ff49652fce7c26b2dd26bb7ae7e8717
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Fri Aug 29 00:56:51 2008 -0400
make sure we do a fulle search for name.arch separations, too - so if a . is present, search the whole
shooting match, not just the name.
diff --git a/yum/misc.py b/yum/misc.py
index b9cc387..2f2b27b 100644
--- a/yum/misc.py
+++ b/yum/misc.py
@@ -92,7 +92,7 @@ def re_full_search_needed(s):
""" Tests if a string needs a full nevra match, instead of just name. """
global _re_compiled_full_match
if _re_compiled_full_match is None:
- one = re.compile('.*[-\*\?\[\]].*.$') # Any wildcard or - seperator
+ one = re.compile('.*[-\.\*\?\[\]].*.$') # Any wildcard or - seperator
two = re.compile('^[0-9]') # Any epoch, for envra
_re_compiled_full_match = (one, two)
for rec in _re_compiled_full_match:
commit bd3d31be21f5638867d9d03308e4cf84e1544d84
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date: Thu Aug 28 10:37:36 2008 +0200
Restore Standard ConfigParser compatibility to config.py
diff --git a/yum/config.py b/yum/config.py
index fb34c06..b269308 100644
--- a/yum/config.py
+++ b/yum/config.py
@@ -482,7 +482,7 @@ class BaseConfig(object):
option = self.optionobj(name)
value = None
if name in opts:
- value = parser.data[section][name]
+ value = parser.get(section, name)
else:
# No matching option in this section, try inheriting
if parent and option.inherit:
commit 780fe2a6960b55d3316fb9f10907b12af9af0072
Author: Tim Lauridsen <tilau at tlaws.ibm.com>
Date: Thu Aug 28 09:20:57 2008 +0200
Added test-skipbroken make target and some extra testcases
diff --git a/Makefile b/Makefile
index f9e8d76..47b364a 100644
--- a/Makefile
+++ b/Makefile
@@ -48,6 +48,9 @@ test:
@nosetests -i ".*test" test
@test/check-po-yes-no.py
+test-skipbroken:
+ @nosetests -i ".*test" test/skipbroken-tests.py
+
check: test
changelog:
diff --git a/test/skipbroken-tests.py b/test/skipbroken-tests.py
index f308fdd..47480fe 100644
--- a/test/skipbroken-tests.py
+++ b/test/skipbroken-tests.py
@@ -358,7 +358,54 @@ class SkipBrokenTests(DepsolveTests):
self.tsInfo.addUpdate(po2, oldpo=ipo2)
self.assertEquals('empty', *self.resolveCode(skip=True))
self.assertResult([ipo1,ipo2])
-
+
+ def testInstReqOldVer1(self):
+ """
+ zap-2.0 updates zap-1.0, but zap-2.0 needs barlib-2.0 provided by
+ bar-2.0, but the installed foo, needs barlib-1.0, so it need to be updated to
+ foo-2.0, that requires barlib-2.0
+ But it only work if foo-1.0 -> foo-2.0 is added as an update, it is not
+ pulled in by it self.
+ """
+ ipo1 = self.instPackage('foo', '1')
+ ipo1.addRequires('barlib', 'EQ', ('0', '1', '0'))
+ ipo2 = self.instPackage('bar', '1')
+ ipo2.addProvides('barlib', 'EQ', ('0', '1', '0'))
+ ipo3 = self.instPackage('zap', '1')
+ po1 = self.repoPackage('foo', '2')
+ po1.addRequires('barlib', 'EQ', ('0', '2', '0'))
+ po2 = self.repoPackage('bar', '2')
+ po2.addProvides('barlib', 'EQ', ('0', '2', '0'))
+ po3 = self.repoPackage('zap', '2')
+ po3.addRequires('barlib', 'EQ', ('0', '2', '0'))
+ self.tsInfo.addUpdate(po1, oldpo=ipo1) # why is this needed, it should work without ?
+ self.tsInfo.addUpdate(po3, oldpo=ipo3)
+ self.assertEquals('ok', *self.resolveCode(skip=True))
+ self.assertResult([po1,po2,po3])
+
+ def testInstReqOldVer2(self):
+ """
+ zap-2.0 updates zap-1.0, but zap-2.0 needs barlib-2.0 provided by
+ bar-2.0, but the installed foo, needs barlib-1.0, so it need to be updated to
+ foo-2.0, that requires barlib-2.0
+ But it only work if foo-1.0 -> foo-2.0 is added as an update, it is not
+ pulled in by it self.
+ """
+ ipo1 = self.instPackage('foo', '1')
+ ipo1.addRequires('barlib', 'EQ', ('0', '1', '0'))
+ ipo2 = self.instPackage('bar', '1')
+ ipo2.addProvides('barlib', 'EQ', ('0', '1', '0'))
+ ipo3 = self.instPackage('zap', '1')
+ po1 = self.repoPackage('foo', '2')
+ po1.addRequires('barlib', 'EQ', ('0', '2', '0'))
+ po2 = self.repoPackage('bar', '2')
+ po2.addProvides('barlib', 'EQ', ('0', '2', '0'))
+ po3 = self.repoPackage('zap', '2')
+ po3.addRequires('barlib', 'EQ', ('0', '2', '0'))
+ #self.tsInfo.addUpdate(po1, oldpo=ipo1) # why is this needed, it should work without ?
+ self.tsInfo.addUpdate(po3, oldpo=ipo3)
+ self.assertEquals('ok', *self.resolveCode(skip=True))
+ self.assertResult([po1,po2,po3])
def resolveCode(self,skip = False):
solver = YumBase()
commit b116113bede1a498da17d92e44a6a1ab14833b2c
Author: James Antill <james at and.org>
Date: Wed Aug 27 16:24:53 2008 -0400
Fix typo for arch excludes for obsolete tuples fix
diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index 3ac0602..7b8d11f 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -687,7 +687,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
# continue without processing the obsoletes
if self._pkgKeyExcluded(rep, ob['pkgKey']):
continue
- if self._pkgArchExcluded(rep, ob['arch']):
+ if self._pkgArchExcluded(ob['arch']):
continue
key = ( _share_data(ob['name']), _share_data(ob['arch']),
commit b01511ebb31624c52570245c40e21c88faf3967b
Author: James Antill <james at and.org>
Date: Wed Aug 27 10:13:29 2008 -0400
Do arch excludes for obsolete tuples
diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index aad9b19..3ac0602 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -687,6 +687,8 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
# continue without processing the obsoletes
if self._pkgKeyExcluded(rep, ob['pkgKey']):
continue
+ if self._pkgArchExcluded(rep, ob['arch']):
+ continue
key = ( _share_data(ob['name']), _share_data(ob['arch']),
_share_data(ob['epoch']), _share_data(ob['version']),
commit 9fcd36533acdd12bc6b9ffb6e1b16d65a58dbb24
Author: James Antill <james at and.org>
Date: Tue Aug 26 16:52:17 2008 -0400
Fixup the License to be the same as Fedora
diff --git a/yum.spec b/yum.spec
index 9435e0d..b8cb2e2 100644
--- a/yum.spec
+++ b/yum.spec
@@ -2,7 +2,7 @@ Summary: RPM installer/updater
Name: yum
Version: 3.2.19
Release: 0
-License: GPL
+License: GPLv2+
Group: System Environment/Base
Source: %{name}-%{version}.tar.gz
URL: http://linux.duke.edu/yum/
commit 03ae1a3995c0932fe98f739cd8f4a1b6db8c5ba7
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Tue Aug 26 15:41:47 2008 -0400
merge changelog
diff --git a/ChangeLog b/ChangeLog
index b9f64fa..9ef67ab 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,327 @@
+2008-08-26 Seth Vidal <skvidal at fedoraproject.org>
+
+ Merge branch 'yum-3_2_X' of
+ ssh://login.linux.duke.edu/home/groups/yum/git/yum into yum-3_2_X *
+ 'yum-3_2_X' of ssh://login.linux.duke.edu/home/groups/yum/git/yum:
+ Set the close on exec flag. for the transaction-done file, bug
+ 460098
+
+2008-08-26 Seth Vidal <skvidal at fedoraproject.org>
+
+ * yum.spec, yum/__init__.py, yum/comps.py: - make group* commands default to case insensitive like they used to
+ - mark as 3.2.19
+
+2008-08-26 James Antill <james at and.org>
+
+ * yum/rpmtrans.py: Set the close on exec flag. for the
+ transaction-done file, bug 460098
+
+2008-08-25 James Antill <james at and.org>
+
+ * yum/__init__.py: Auto unlock when YumBase is destroyed, hopefully
+ better dtrt. behaviour
+
+2008-08-25 Seth Vidal <skvidal at fedoraproject.org>
+
+ * yumcommands.py: add parens to make the or'd case for checkGPGKey
+ be tied together.
+
+2008-08-24 James Antill <james at and.org>
+
+ * yum/__init__.py: Make list extras a lot faster, ~5x speedup here
+
+2008-08-24 James Antill <james at and.org>
+
+ * output.py, yumcommands.py: Fix listPkgs() so we don't highlight
+ with old packages using showduplicates
+
+2008-08-22 James Antill <james at and.org>
+
+ * output.py: Give gpgkeys a noarch arch. in listTransaction()
+
+2008-08-22 James Antill <james at and.org>
+
+ * output.py: Add fmtColumns(), just move of code from
+ listTransaction so we can reuse
+
+2008-08-22 James Antill <james at and.org>
+
+ * test/check-po-yes-no.py: do to_utf8 for check-po-yes-no error
+ reporting
+
+2008-08-22 James Antill <james at and.org>
+
+ * yum/__init__.py: Don't allow an installed repo.
+
+2008-08-21 James Antill <james at and.org>
+
+ * shell.py: Make "echo repo list | yum shell" show just enabled,
+ like "yum repolist"
+
+2008-08-21 James Antill <james at and.org>
+
+ * shell.py: Setup the normal repos. if we are enabling a new one. Fixes bug
+ 459654
+
+2008-08-19 James Antill <james at and.org>
+
+ * yum/sqlitesack.py: Use a list comprehension instead of map, mildly
+ more readable
+
+2008-08-19 James Antill <james at and.org>
+
+ * yum/sqlitesack.py: Fix LIKE SQL queries with [] in the input. Eg. yum list
+ yum[!a]3.2.17[!a]2.fc9 Needs to match yum-3.2.17-2.fc9 Yes,
+ it's a crazy corner case ... yes, it's a simplish fix to dtwt.
+
+2008-08-19 James Antill <james at and.org>
+
+ * yum/misc.py: Add [] to set of wildcards
+
+2008-08-18 James Antill <james at and.org>
+
+ * yum/sqlitesack.py: Really do the API compat. fix for
+ excludeArchs() now, not just make it work
+
+2008-08-18 James Antill <james at and.org>
+
+ * yum/sqlitesack.py: Minor API fixup for arch_allowed. now compatible with old
+ behaviour if you don't call excludeArch() or you call it twice
+ with different args. (crack)
+
+2008-08-18 James Antill <james at and.org>
+
+ * yum/misc.py: Fix re_full_search_needed()
+
+2008-08-18 James Antill <james at and.org>
+
+ * cli.py: Suggest installed pkgs too, in "maybe you meant" output
+
+2008-08-18 James Antill <james at and.org>
+
+ * yum/yumRepo.py: Skip checksumming old downloaded .sqlite files, we still check when
+ we download them. Note that this _used_ to be needed before atomic
+ MD because we might have an old DBMD file lying around ... that
+ cannot be true anymore, unless the user does it via. cp. And it's
+ costing is ~25% for simple operations. Note because of the
+ historical behaviour I added skip_old_DBMD_check to turn this
+ on/off, if we are super paranoid we _might_ want to have it off by
+ default but on in yumcli?
+
+2008-08-18 James Antill <james at and.org>
+
+ * yum/misc.py, yum/sqlitesack.py: If we can get away with searching just the name field, do that as
+ it's indexed so is basically as fast as searchNames(). This
+ "fails" on terms like "python-*" ... but so what. Saves about 0.1
+ seconds on my machine (which is ~10% now).
+
+2008-08-18 James Antill <james at and.org>
+
+ * yum/sqlitesack.py: We don't want to do a single "search for all packages with a bad
+ arch" SQL search because "normally" there are no bad arches. So we
+ move to looking at the arch. at pkg load time, a la exclude by
+ pkgKey. This saves about .2 seconds on my machine.
+
+2008-08-18 James Antill <james at and.org>
+
+ * yum/config.py: Don't walk each config. option in populate(), .1 -
+ .2 opt.
+
+2008-08-16 Tim Lauridsen <tim at hoth.local>
+
+ * po/zh_CN.po: Added chinese translation by lijiansheng
+
+2008-08-14 James Antill <james at and.org>
+
+ * output.py: Fix stupid missing line from _group_names2aipkgs
+ conversion
+
+2008-08-14 James Antill <james at and.org>
+
+ * cli.py: Add comments about the previous bug, and better long term.
+ fix
+
+2008-08-14 James Antill <james at and.org>
+
+ * cli.py: Fix "full" available list by using parsePackages, bug
+ 459076
+
+2008-08-13 James Antill <james at and.org>
+
+ * yum/metalink.py: First attempt at a parser for the new MirrorManager MetaLink
+ output. Anyone relying on this API atm. is liable for a free
+ stabbing. This just parses the data into a usable form, hooking
+ it into yumRepos is not done, neither is the metalink= [urls] repo.
+ config. variable.
+
+2008-08-13 Seth Vidal <skvidal at fedoraproject.org>
+
+ Merge branch 'yum-3_2_X' of
+ ssh://login.linux.duke.edu/home/groups/yum/git/yum into yum-3_2_X *
+ 'yum-3_2_X' of ssh://login.linux.duke.edu/home/groups/yum/git/yum:
+ Delete some old, misleading, comments in returnPkgLists Add
+ highlighting to packages which have updates in list commands,
+ Minor extra fixes for non-existant args. in doPackageLists, these
+ are only
+
+2008-08-13 Seth Vidal <skvidal at fedoraproject.org>
+
+ * yum/packages.py: merge over the bits from createrepo to let us
+ dump xml data from YumLocalPackage objects
+
+2008-08-13 James Antill <james at and.org>
+
+ * cli.py: Delete some old, misleading, comments in returnPkgLists
+
+2008-08-13 James Antill <james at and.org>
+
+ * output.py, yumcommands.py: Add highlighting to packages which have updates in list commands,
+ like list/info/groupinfo. Add some helper functions. This makes it
+ more obvious what is "available to install" and what is "available
+ to update". We also only do the processiing when we have the
+ installed+available this is a feature.
+
+2008-08-12 James Antill <james at and.org>
+
+ * yum/__init__.py: Minor extra fixes for non-existant args. in doPackageLists, these
+ are only really noticable from the API.
+
+2008-08-12 Seth Vidal <skvidal at fedoraproject.org>
+
+ Merge branch 'yum-3_2_X' of
+ ssh://login.linux.duke.edu/home/groups/yum/git/yum into yum-3_2_X *
+ 'yum-3_2_X' of ssh://login.linux.duke.edu/home/groups/yum/git/yum:
+ Dynamically balance the field widths in listTransaction(). Tweak
+ output of the transaction, helps RHEL a lot due to long repoids
+
+2008-08-12 Seth Vidal <skvidal at fedoraproject.org>
+
+ * yum/__init__.py, yum/transactioninfo.py: fix for the conditional
+ pkgs installing too much but this time in an API-compliant way :)
+
+2008-08-11 James Antill <james at and.org>
+
+ * output.py: Dynamically balance the field widths in listTransaction(). We try
+ and make as many lines as possible not "overflow" Also when they
+ do overflow, it's slightly better to do so on the left. This
+ helps the weird cases like long package names or long evr's a lot.
+ Also RHEL with it's 30+ character repoid's. This is a lot of code
+ to print the transaction now, _but_ it's always the same code path
+ so if it works once it should always do so. Of course, in theory,
+ it's possible for it to look worse than before.
+
+2008-08-11 James Antill <james at and.org>
+
+ * output.py: Tweak output of the transaction, helps RHEL a lot due
+ to long repoids
+
+2008-08-11 Seth Vidal <skvidal at fedoraproject.org>
+
+ * yum/__init__.py, yum/repos.py, yum/yumRepo.py: - when we delete a repo from our repos object, also close it - when
+ we add_enable_repo make sure we call setup on it, too, just to make
+ sure we get the dirs and caches setup - when _resetSack is called
+ just set _sack to None not sack
+
+2008-08-11 James Antill <james at and.org>
+
+ * test/depsolvetests.py, yum/__init__.py: Turn on fix for
+ test_min_up_and_dep[12] and add fix for test_min_up_and_dep3
+
+2008-08-11 James Antill <james at and.org>
+
+ * output.py: Tweak listTransaction() output so columns are always
+ aligned
+
+2008-08-11 James Antill <james at and.org>
+
+ * yum/__init__.py: Remove two FIXME's: . Print better messages (and don't error) for
+ install'ing things already installed but unavailable. . Put a
+ deprecation warning in getInstalledPackageObject()
+
+2008-08-10 James Antill <james at and.org>
+
+ * yum/__init__.py: Fix yum install foo.src.rpm (bug 458589)
+
+2008-08-10 James Antill <james at and.org>
+
+ * yum/misc.py, yummain.py: Create helper function setup_locale() to
+ work around broken python unicode
+
+2008-08-09 James Antill <james at and.org>
+
+ * test/depsolvetests.py, yum/depsolve.py: Add
+ test_multi_inst_dep[45] and tweak the comments for _sort_reqs
+
+2008-08-09 James Antill <james at and.org>
+
+ * test/depsolvetests.py, yum/depsolve.py: Shared lib. deps sorted
+ after pkg. deps., solves test_multi_inst_dep3, 443459
+
+2008-08-09 James Antill <james at and.org>
+
+ * yum/depsolve.py: Sort the requires, so we handle things like BZ
+ 443459 and test_multi_inst_dep*
+
+2008-08-08 James Antill <james at and.org>
+
+ * test/depsolvetests.py: Add a testcase where pkgA has deps. on an
+ older available version of pkgB
+
+2008-08-08 Seth Vidal <skvidal at fedoraproject.org>
+
+ Merge branch 'yum-3_2_X' of
+ ssh://login.linux.duke.edu/home/groups/yum/git/yum into yum-3_2_X *
+ 'yum-3_2_X' of ssh://login.linux.duke.edu/home/groups/yum/git/yum:
+ Add test for no pygpgme, and give useful error message Fail
+ valid_detached_sig if gpgme isn't installed Fix ts used for
+ rpm-4.5.90-0.git8461.1 gpg key importing Fix copy&paste typo with
+ syslogFacilityMap, and fix YumBase.doLoggingSetup Move syslog
+ configs. to StatupConfig, act on them in logging. use LOG_DAEMON
+ Another unicode => to_unicode, hopefully fixes 447504
+
+2008-08-08 Seth Vidal <skvidal at fedoraproject.org>
+
+ * yum/packages.py: minor clean up to make sure when re-assemble the
+ remote path we also make sure basepath isn't stupid for urljoin()
+
+2008-08-08 James Antill <james at and.org>
+
+ * yum/yumRepo.py: Add test for no pygpgme, and give useful error
+ message
+
+2008-08-08 James Antill <james at and.org>
+
+ * yum/misc.py: Fail valid_detached_sig if gpgme isn't installed
+
+2008-08-08 James Antill <james at and.org>
+
+ * yum/__init__.py: Fix ts used for rpm-4.5.90-0.git8461.1 gpg key
+ importing
+
+2008-08-07 James Antill <james at and.org>
+
+ * yum/__init__.py, yum/logginglevels.py: Fix copy&paste typo with
+ syslogFacilityMap, and fix YumBase.doLoggingSetup
+
+2008-08-07 James Antill <james at and.org>
+
+ * yum/__init__.py, yum/config.py, yum/logginglevels.py: Move syslog configs. to StatupConfig, act on them in logging. use
+ LOG_DAEMON Fixes: bug 450949
+
+2008-08-07 James Antill <james at and.org>
+
+ * yummain.py: Another unicode => to_unicode, hopefully fixes 447504
+
+
+2008-08-07 James Antill <james at and.org>
+
+ * yum/__init__.py: Don't fail list cmd for packages which are
+ installed but not in any repos.
+
+2008-08-07 Seth Vidal <skvidal at fedoraproject.org>
+
+ * ChangeLog: merge changelog
+
2008-08-07 Seth Vidal <skvidal at fedoraproject.org>
* yum.spec, yum/__init__.py: mark as 3.2.18
commit 711891c4085301d218f7710dd3ed7003fef6b88f
Merge: 01992cc... cdff3b1...
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Tue Aug 26 15:40:17 2008 -0400
Merge branch 'yum-3_2_X' of ssh://login.linux.duke.edu/home/groups/yum/git/yum into yum-3_2_X
* 'yum-3_2_X' of ssh://login.linux.duke.edu/home/groups/yum/git/yum:
Set the close on exec flag. for the transaction-done file, bug 460098
commit 01992cc7ea3e04e4c7eb192a97a373bc2322a9e1
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Tue Aug 26 15:40:07 2008 -0400
- make group* commands default to case insensitive like they used to
- mark as 3.2.19
diff --git a/yum.spec b/yum.spec
index 0e2e7bc..9435e0d 100644
--- a/yum.spec
+++ b/yum.spec
@@ -1,6 +1,6 @@
Summary: RPM installer/updater
Name: yum
-Version: 3.2.18
+Version: 3.2.19
Release: 0
License: GPL
Group: System Environment/Base
@@ -99,6 +99,9 @@ exit 0
%{_mandir}/man*/yum-updatesd*
%changelog
+* Mon Aug 25 2008 Seth Vidal <skvidal at fedoraproject.org>
+- 3.2.19
+
* Thu Aug 7 2008 Seth Vidal <skvidal at fedoraproject.org>
- 3.2.18
diff --git a/yum/__init__.py b/yum/__init__.py
index 7ea3aa6..4fa47eb 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -73,7 +73,7 @@ import string
from urlgrabber.grabber import default_grabber
-__version__ = '3.2.18'
+__version__ = '3.2.19'
__version_info__ = tuple([ int(num) for num in __version__.split('.')])
# Setup a default_grabber UA here that says we are yum, done using the global
@@ -2960,7 +2960,6 @@ class YumBase(depsolve.Depsolve):
"""
keyurls = repo.gpgkey
key_installed = False
-
for keyurl in keyurls:
keys = self._retrievePublicKey(keyurl)
for info in keys:
diff --git a/yum/comps.py b/yum/comps.py
index 5d257cf..0697ebc 100755
--- a/yum/comps.py
+++ b/yum/comps.py
@@ -402,7 +402,7 @@ class Comps(object):
return None
- def return_groups(self, group_pattern):
+ def return_groups(self, group_pattern, case_sensitive=False):
"""return all groups which match either by glob or exact match"""
returns = {}
@@ -412,8 +412,12 @@ class Comps(object):
thisgroup = self._groups[item]
returns[thisgroup.groupid] = thisgroup
continue
-
- match = re.compile(fnmatch.translate(item)).match
+
+ if case_sensitive:
+ match = re.compile(fnmatch.translate(item)).match
+ else:
+ match = re.compile(fnmatch.translate(item), flags=re.I).match
+
for group in self.groups:
names = [ group.name, group.groupid ]
names.extend(group.translated_name.values())
commit cdff3b1431a3d7eab244b6c74568fa603c2352a3
Author: James Antill <james at and.org>
Date: Tue Aug 26 10:03:38 2008 -0400
Set the close on exec flag. for the transaction-done file, bug 460098
diff --git a/yum/rpmtrans.py b/yum/rpmtrans.py
index 456d7f5..34fa178 100644
--- a/yum/rpmtrans.py
+++ b/yum/rpmtrans.py
@@ -160,14 +160,29 @@ class RPMTransaction:
if not os.path.exists(self.base.conf.persistdir):
os.makedirs(self.base.conf.persistdir) # make the dir, just in case
+ # Error checking? -- these should probably be where else
+ def _fdSetNonblock(self, fd):
+ """ Set the Non-blocking flag for a filedescriptor. """
+ flag = os.O_NONBLOCK
+ current_flags = fcntl.fcntl(fd, fcntl.F_GETFL)
+ if current_flags & flag:
+ return
+ fcntl.fcntl(fd, fcntl.F_SETFL, current_flags | flag)
+
+ def _fdSetCloseOnExec(self, fd):
+ """ Set the close on exec. flag for a filedescriptor. """
+ flag = fcntl.FD_CLOEXEC
+ current_flags = fcntl.fcntl(fd, fcntl.F_GETFD)
+ if current_flags & flag:
+ return
+ fcntl.fcntl(fd, fcntl.F_SETFD, current_flags | flag)
+
def _setupOutputLogging(self):
# UGLY... set up the transaction to record output from scriptlets
(r, w) = os.pipe()
# need fd objects, and read should be non-blocking
self._readpipe = os.fdopen(r, 'r')
- fcntl.fcntl(self._readpipe.fileno(), fcntl.F_SETFL,
- fcntl.fcntl(self._readpipe.fileno(),
- fcntl.F_GETFL) | os.O_NONBLOCK)
+ self._fdSetNonblock(self._readpipe.fileno())
self._writepipe = os.fdopen(w, 'w')
self.base.ts.scriptFd = self._writepipe.fileno()
rpm.setVerbosity(rpm.RPMLOG_INFO)
@@ -219,6 +234,7 @@ class RPMTransaction:
except (IOError, OSError), e:
self.display.errorlog('could not open ts_done file: %s' % e)
return
+ self._fdSetCloseOnExec(self._ts_done.fileno())
# walk back through self._te_tuples
# make sure the package and the action make some kind of sense
commit 1cca203005de3758a9918ecd182c98286be4392a
Author: James Antill <james at and.org>
Date: Mon Aug 25 17:12:13 2008 -0400
Auto unlock when YumBase is destroyed, hopefully better dtrt. behaviour
diff --git a/yum/__init__.py b/yum/__init__.py
index e0b2572..7ea3aa6 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -96,6 +96,7 @@ class YumBase(depsolve.Depsolve):
self._up = None
self._comps = None
self._pkgSack = None
+ self._lockfile = None
self.logger = logging.getLogger("yum.YumBase")
self.verbose_logger = logging.getLogger("yum.verbose.YumBase")
self._repos = RepoStorage(self)
@@ -109,6 +110,8 @@ class YumBase(depsolve.Depsolve):
def __del__(self):
self.close()
+ self.closeRpmDB()
+ self.doUnlock()
def close(self):
if self._repos:
@@ -944,7 +947,7 @@ class YumBase(depsolve.Depsolve):
self._unlock(lockfile)
else:
if oldpid == os.getpid(): # if we own the lock, we're fine
- return
+ break
try: os.kill(oldpid, 0)
except OSError, e:
if e[0] == errno.ESRCH:
@@ -958,18 +961,26 @@ class YumBase(depsolve.Depsolve):
# Another copy seems to be running.
msg = _('Existing lock %s: another copy is running as pid %s.') % (lockfile, oldpid)
raise Errors.LockError(0, msg)
+ # We've got the lock, store it so we can auto-unlock on __del__...
+ self._lockfile = lockfile
- def doUnlock(self, lockfile = YUM_PID_FILE):
+ def doUnlock(self, lockfile=None):
"""do the unlock for yum"""
# if we're not root then we don't lock - just return nicely
if self.conf.uid != 0:
return
- root = self.conf.installroot
- lockfile = root + '/' + lockfile # lock in the chroot
+ if lockfile is not None:
+ root = self.conf.installroot
+ lockfile = root + '/' + lockfile # lock in the chroot
+ elif self._lockfile is None:
+ return # Don't delete other people's lock files on __del__
+ else:
+ lockfile = self._lockfile # Get the value we locked with
self._unlock(lockfile)
+ self._lockfile = None
def _lock(self, filename, contents='', mode=0777):
lockdir = os.path.dirname(filename)
commit 6803eed438dd617de8c0951527983f5516a0a34b
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Mon Aug 25 15:53:30 2008 -0400
add parens to make the or'd case for checkGPGKey be tied together.
diff --git a/yumcommands.py b/yumcommands.py
index ba88e61..3eaf0de 100644
--- a/yumcommands.py
+++ b/yumcommands.py
@@ -42,7 +42,7 @@ def checkRootUID(base):
def checkGPGKey(base):
if not base.gpgKeyCheck():
for repo in base.repos.listEnabled():
- if repo.gpgcheck or repo.repo_gpgcheck and repo.gpgkey == '':
+ if (repo.gpgcheck or repo.repo_gpgcheck) and repo.gpgkey == '':
msg = _("""
You have enabled checking of packages via GPG keys. This is a good thing.
However, you do not have any GPG public keys installed. You need to download
commit caedc3c589b556e314b49bc604d38ba1635c8656
Author: James Antill <james at and.org>
Date: Sun Aug 24 19:16:48 2008 -0400
Make list extras a lot faster, ~5x speedup here
diff --git a/yum/__init__.py b/yum/__init__.py
index 62b85a3..e0b2572 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -1455,6 +1455,7 @@ class YumBase(depsolve.Depsolve):
# anything installed but not in a repo is an extra
avail = self.pkgSack.simplePkgList(patterns=patterns,
ignore_case=ic)
+ avail = set(avail)
for po in self.rpmdb.returnPackages(patterns=patterns,
ignore_case=ic):
if po.pkgtup not in avail:
commit 4838e70d52c03eb71a5173d677ddf231cfe8d8d7
Author: James Antill <james at and.org>
Date: Sun Aug 24 17:44:01 2008 -0400
Fix listPkgs() so we don't highlight with old packages using showduplicates
diff --git a/output.py b/output.py
index 609150c..cdfc46d 100644
--- a/output.py
+++ b/output.py
@@ -384,7 +384,11 @@ class YumOutput:
thingslisted = 1
print '%s' % description
for pkg in sorted(lst):
- highlight = (pkg.name, pkg.arch) in highlight_na
+ key = (pkg.name, pkg.arch)
+ highlight = False
+ if key in highlight_na and pkg.verLT(highlight_na[key]):
+ highlight = True
+
if outputType == 'list':
self.simpleList(pkg, ui_overflow=True,
highlight=highlight)
diff --git a/yumcommands.py b/yumcommands.py
index f705e24..ba88e61 100644
--- a/yumcommands.py
+++ b/yumcommands.py
@@ -212,10 +212,12 @@ class InfoCommand(YumCommand):
except yum.Errors.YumBaseError, e:
return 1, [str(e)]
else:
+ update_pkgs = {}
if ypl.installed:
- update_pkgs = set([(po.name, po.arch) for po in ypl.available])
- else:
- update_pkgs = set()
+ for pkg in ypl.available:
+ key = (pkg.name, pkg.arch)
+ if key not in update_pkgs or pkg.verGT(update_pkgs[key]):
+ update_pkgs[key] = pkg
rip = base.listPkgs(ypl.installed, _('Installed Packages'), basecmd,
highlight_na=update_pkgs)
rap = base.listPkgs(ypl.available, _('Available Packages'), basecmd)
commit 15715eaea2290a6aa557009551b0a40eec69858f
Author: James Antill <james at and.org>
Date: Fri Aug 22 16:04:29 2008 -0400
Give gpgkeys a noarch arch. in listTransaction()
diff --git a/output.py b/output.py
index 35ed361..609150c 100644
--- a/output.py
+++ b/output.py
@@ -726,6 +726,9 @@ class YumOutput:
pkgsize = float(txmbr.po.size)
size = self.format_number(pkgsize)
+ if a is None: # gpgkeys are weird
+ a = 'noarch'
+
lines.append((n, a, evr, repoid, size, txmbr.obsoletes))
# Create a dict of field_length => number of packages, for
# each field.
commit 6ef73192a36267a933b36a07f076d4a1433e1e58
Author: James Antill <james at and.org>
Date: Fri Aug 22 15:44:19 2008 -0400
Add fmtColumns(), just move of code from listTransaction so we can reuse
diff --git a/output.py b/output.py
index 99e09e9..35ed361 100644
--- a/output.py
+++ b/output.py
@@ -255,6 +255,30 @@ class YumOutput:
hiend = ''
return (hibeg, hiend)
+ def fmtColumns(self, columns, msg=u'', end=u''):
+ """ Return a fmt for columns of data, which can overflow."""
+ def _align_width(width):
+ if width < 0:
+ return (u"-", -width)
+ return (u"", width)
+
+ total_width = len(msg)
+ data = []
+ for (val, width) in columns[:-1]:
+ (align, width) = _align_width(width)
+ if len(val) <= width:
+ msg += u"%%%s%ds " % (align, width)
+ else:
+ msg += u"%s\n" + " " * (total_width + width + 1)
+ total_width += width
+ total_width += 1
+ data.append(val)
+ (val, width) = columns[-1]
+ (align, width) = _align_width(width)
+ msg += u"%%%s%ds%s" % (align, width, end)
+ data.append(val)
+ return msg % tuple(data)
+
def simpleList(self, pkg, ui_overflow=False, indent='', highlight=False):
(hibeg, hiend) = self._highlight(highlight)
ver = pkg.printVer()
@@ -647,6 +671,8 @@ class YumOutput:
break
ret += tup[1]
return ret
+ # FIXME: This should be a top level function called calcColumns(), or
+ # something. We output a lot of column data.
def _calc_widths(data, a_wid):
""" Dynamically calc. the width of the four fields. """
# Convert the dict to ascending list of tuples, (field_length, pkgs)
@@ -724,18 +750,9 @@ class YumOutput:
if lines:
totalmsg = u"%s:\n" % action
for (n, a, evr, repoid, size, obsoletes) in lines:
- total_width = 1
- msg = u' '
- for (val, width) in ((n, n_wid), (a, a_wid),
- (evr, v_wid), (repoid, r_wid)):
- if len(val) <= width:
- msg += u"%%-%ds " % width
- else:
- msg += u"%s\n" + " " * (total_width + width + 1)
- total_width += width
- total_width += 1
- msg += u"%5s\n"
- msg %= (n, a, evr, repoid, size)
+ columns = ((n, -n_wid), (a, -a_wid),
+ (evr, -v_wid), (repoid, -r_wid), (size, 5))
+ msg = self.fmtColumns(columns, u" ", u"\n")
for obspo in obsoletes:
appended = _(' replacing %s.%s %s\n\n') % (obspo.name,
obspo.arch, obspo.printVer())
commit af735cd50894ce90ff6b2988e1d94367cffc2e02
Author: James Antill <james at and.org>
Date: Fri Aug 22 13:59:58 2008 -0400
do to_utf8 for check-po-yes-no error reporting
diff --git a/test/check-po-yes-no.py b/test/check-po-yes-no.py
index 1ed42e2..e22318e 100755
--- a/test/check-po-yes-no.py
+++ b/test/check-po-yes-no.py
@@ -6,6 +6,8 @@
import sys
import glob
+from yum.misc import to_utf8
+
def trans(msg, default):
if msg == 'msgstr ""\n':
return unicode(default, encoding='utf-8')
@@ -91,7 +93,9 @@ y %5s: %s
no %5s: %s
n %5s: %s
""" % (fname,
- is_this_ok, sis_this_ok, yes, syes, y, sy, no, sno, n, sn)
+ to_utf8(is_this_ok), to_utf8(sis_this_ok),
+ to_utf8(yes), to_utf8(syes), to_utf8(y), to_utf8(sy),
+ to_utf8(no), to_utf8(sno), to_utf8(n), to_utf8(sn))
if syes[0] != sy:
print >>sys.stderr, """\
ERROR: yes/y translations don't match in: %s
commit 97daa7c37b849feb0cd8388c5149b83688b5af1d
Author: James Antill <james at and.org>
Date: Fri Aug 22 13:59:34 2008 -0400
Don't allow an installed repo.
diff --git a/yum/__init__.py b/yum/__init__.py
index 85b9fe9..62b85a3 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -234,7 +234,7 @@ class YumBase(depsolve.Depsolve):
# Check sections in the .repo file that was just slurped up
for section in parser.sections():
- if section == 'main':
+ if section in ['main', 'installed']:
continue
# Check the repo.id against the valid chars
commit 773aea065211864cf3c53f24766f4656246ec56e
Author: James Antill <james at and.org>
Date: Thu Aug 21 19:01:54 2008 -0400
Make "echo repo list | yum shell" show just enabled, like "yum repolist"
diff --git a/shell.py b/shell.py
index 4f5bf8f..4c490e8 100644
--- a/shell.py
+++ b/shell.py
@@ -257,7 +257,7 @@ class YumShell(cmd.Cmd):
cmds = self._shlex_split(args)
if not cmds:
- cmds = ['all']
+ cmds = ['enabled']
cmds.insert(0, 'repolist')
self.base.cmds = cmds
commit b566b30169f1db62527133b5d57d010322218084
Author: James Antill <james at and.org>
Date: Thu Aug 21 10:21:52 2008 -0400
Setup the normal repos. if we are enabling a new one. Fixes bug 459654
diff --git a/shell.py b/shell.py
index cb134d2..4f5bf8f 100644
--- a/shell.py
+++ b/shell.py
@@ -272,6 +272,9 @@ class YumShell(cmd.Cmd):
repos = self._shlex_split(args)
for repo in repos:
try:
+ # Setup the sacks/repos, we need this because we are about
+ # to setup the enabled one. And having some setup is bad.
+ self.base.pkgSack
changed = self.base.repos.enableRepo(repo)
except Errors.ConfigError, e:
self.logger.critical(e)
commit 8966a183680ab29f1a1e48b52072ca5c0b3921a4
Author: James Antill <james at and.org>
Date: Tue Aug 19 13:33:16 2008 -0400
Use a list comprehension instead of map, mildly more readable
diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index ba64481..aad9b19 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -1133,7 +1133,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
if ignore_case:
patterns = self._sql_esc_glob(patterns)
else:
- patterns = map(lambda x: (x, ''), patterns)
+ patterns = [(pat, '') for pat in patterns]
for (pattern, esc) in patterns:
for field in fields:
if ignore_case:
commit cceaebd9957495300693a5824c224136da536493
Author: James Antill <james at and.org>
Date: Tue Aug 19 13:24:12 2008 -0400
Fix LIKE SQL queries with [] in the input.
Eg. yum list yum[!a]3.2.17[!a]2.fc9
Needs to match yum-3.2.17-2.fc9
Yes, it's a crazy corner case ... yes, it's a simplish fix to dtwt.
diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index 8813005..ba64481 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -482,6 +482,21 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
pattern = pattern.replace("_", "!_")
return (pattern, esc)
+ def _sql_esc_glob(self, 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) = self._sql_esc(pattern)
+ pattern = pattern.replace("*", "%")
+ pattern = pattern.replace("?", "_")
+ ret.append((pattern, esc))
+ return ret
+
def _skip_all(self):
""" Are we going to skip every package in all our repos? """
skip_all = True
@@ -1115,15 +1130,13 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
pat_sqls = []
pat_data = []
- for pattern in patterns:
- done = False
+ if ignore_case:
+ patterns = self._sql_esc_glob(patterns)
+ else:
+ patterns = map(lambda x: (x, ''), patterns)
+ for (pattern, esc) in patterns:
for field in fields:
if ignore_case:
- if not done:
- done = True
- (pattern, esc) = self._sql_esc(pattern)
- pattern = pattern.replace("*", "%")
- pattern = pattern.replace("?", "_")
pat_sqls.append("%s LIKE ?%s" % (field, esc))
else:
pat_sqls.append("%s GLOB ?" % field)
commit 76a270bbc1f920bb3a47212803b4f2e123ca0995
Author: James Antill <james at and.org>
Date: Tue Aug 19 13:15:10 2008 -0400
Add [] to set of wildcards
diff --git a/yum/misc.py b/yum/misc.py
index 5e58ebd..b9cc387 100644
--- a/yum/misc.py
+++ b/yum/misc.py
@@ -92,7 +92,7 @@ def re_full_search_needed(s):
""" Tests if a string needs a full nevra match, instead of just name. """
global _re_compiled_full_match
if _re_compiled_full_match is None:
- one = re.compile('.*[-\*\?].*.$') # Any wildcard or - seperator
+ one = re.compile('.*[-\*\?\[\]].*.$') # Any wildcard or - seperator
two = re.compile('^[0-9]') # Any epoch, for envra
_re_compiled_full_match = (one, two)
for rec in _re_compiled_full_match:
commit 98d334d04c6fd4366aab22b4f63f016602e0b296
Author: James Antill <james at and.org>
Date: Mon Aug 18 17:17:35 2008 -0400
Really do the API compat. fix for excludeArchs() now, not just make it work
diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index 1dd5ac3..8813005 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -281,7 +281,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
'requires' : { },
}
self._key2pkg = {}
- self._arch_allowed = set()
+ self._arch_allowed = None
@catchSqliteException
def _sql_MD(self, MD, repo, sql, *args):
@@ -392,7 +392,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
def _pkgArchExcluded(self, pkgarch):
""" Test the arch for a package against the archlist we were passed. """
- if pkgarch not in self._arch_allowed:
+ if self._arch_allowed is not None and pkgarch not in self._arch_allowed:
return True
return False
@@ -1199,8 +1199,11 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
@catchSqliteException
def excludeArchs(self, archlist):
"""excludes incompatible arches - archlist is a list of compat arches"""
-
- self._arch_allowed.update(archlist)
+
+ if self._arch_allowed is None:
+ self._arch_allowed = set(archlist)
+ else:
+ self._arch_allowed = self._arch_allowed.intersection(archlist)
sarchlist = map(lambda x: "'%s'" % x , archlist)
arch_query = ",".join(sarchlist)
commit cb3a7655e627dd0a40249a2597c26241d580a081
Author: James Antill <james at and.org>
Date: Mon Aug 18 17:09:42 2008 -0400
Minor API fixup for arch_allowed.
now compatible with old behaviour if you don't call excludeArch()
or you call it twice with different args. (crack)
diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index 1590fe1..1dd5ac3 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -281,6 +281,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
'requires' : { },
}
self._key2pkg = {}
+ self._arch_allowed = set()
@catchSqliteException
def _sql_MD(self, MD, repo, sql, *args):
@@ -1199,7 +1200,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
def excludeArchs(self, archlist):
"""excludes incompatible arches - archlist is a list of compat arches"""
- self._arch_allowed = set(archlist)
+ self._arch_allowed.update(archlist)
sarchlist = map(lambda x: "'%s'" % x , archlist)
arch_query = ",".join(sarchlist)
commit 36a5ddc748ee305a6f1fca6c3707aaba8ee27216
Author: James Antill <james at and.org>
Date: Mon Aug 18 02:17:17 2008 -0400
Fix re_full_search_needed()
diff --git a/yum/misc.py b/yum/misc.py
index 2b96a68..5e58ebd 100644
--- a/yum/misc.py
+++ b/yum/misc.py
@@ -90,11 +90,15 @@ def re_primary_filename(filename):
_re_compiled_full_match = None
def re_full_search_needed(s):
""" Tests if a string needs a full nevra match, instead of just name. """
- # re.match('[\*\?].$', name)
global _re_compiled_full_match
if _re_compiled_full_match is None:
- _re_compiled_full_match = re.compile('[-*?].*.$')
- return _re_compiled_full_match.match(s)
+ one = re.compile('.*[-\*\?].*.$') # Any wildcard or - seperator
+ two = re.compile('^[0-9]') # Any epoch, for envra
+ _re_compiled_full_match = (one, two)
+ for rec in _re_compiled_full_match:
+ if rec.match(s):
+ return True
+ return False
###########
# Title: Remove duplicates from a sequence
commit 5ce6607fe1454cb0ff1de85a4a810558e1faaaea
Author: James Antill <james at and.org>
Date: Mon Aug 18 01:29:12 2008 -0400
Suggest installed pkgs too, in "maybe you meant" output
diff --git a/cli.py b/cli.py
index 525df1a..e244d2f 100644
--- a/cli.py
+++ b/cli.py
@@ -529,14 +529,13 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
except yum.Errors.InstallError:
self.verbose_logger.log(yum.logginglevels.INFO_2,
_('No package %s available.'), arg)
- matches = self.doPackageLists('available', patterns=[arg],
- ignore_case=True)
+ matches = self.doPackageLists(patterns=[arg], ignore_case=True)
# The problem here is that if this is the second time around
# then we've already pre-cached the results from doPackageLists
# to be all the available pkgs. So we need to match.
# FIXME: Really we should probably put this in
# doPackageLists() / returnPackages() when we have a pattern.
- matches = matches.available
+ matches = matches.installed + matches.available
exactmatch, matched, unmatched = parsePackages(matches, [arg])
matches = yum.misc.unique(exactmatch + matched)
matches = set(map(lambda x: x.name, matches))
commit 84c5d9394ea5ca93bf1e24bf44e0eb82e6c8df72
Author: James Antill <james at and.org>
Date: Mon Aug 18 01:00:00 2008 -0400
Skip checksumming old downloaded .sqlite files, we still check when we
download them. Note that this _used_ to be needed before atomic MD
because we might have an old DBMD file lying around ... that cannot be true
anymore, unless the user does it via. cp. And it's costing is ~25% for
simple operations.
Note because of the historical behaviour I added skip_old_DBMD_check to
turn this on/off, if we are super paranoid we _might_ want to have it off
by default but on in yumcli?
diff --git a/yum/yumRepo.py b/yum/yumRepo.py
index 376f7db..ba32f69 100644
--- a/yum/yumRepo.py
+++ b/yum/yumRepo.py
@@ -44,6 +44,16 @@ import glob
import shutil
import stat
+# If you want yum to _always_ check the MD .sqlite files then set this to
+# False (this doesn't affect .xml files or .sqilte files derived from them).
+# With this as True yum will only check when a new repomd.xml or
+# new MD is downloaded.
+# Note that with atomic MD, we can't have old MD lying around anymore so
+# the only way we need this check is if someone does something like:
+# cp primary.sqlite /var/cache/yum/blah
+# ...at which point you lose.
+skip_old_DBMD_check = True
+
warnings.simplefilter("ignore", Errors.YumFutureDeprecationWarning)
logger = logging.getLogger("yum.Repos")
@@ -189,6 +199,9 @@ class YumPackageSack(packageSack.PackageSack):
result = None
if os.path.exists(db_un_fn):
+ if skip_old_DBMD_check and repo._using_old_MD:
+ return db_un_fn
+
try:
repo.checkMD(db_un_fn, mdtype, openchecksum=True)
except URLGrabError:
@@ -220,6 +233,7 @@ class YumRepository(Repository, config.RepoConf):
# eventually want
self.repoMDFile = 'repodata/repomd.xml'
self._repoXML = None
+ self._using_old_MD = None
self._oldRepoMDData = {}
self.cache = 0
self.mirrorlistparsed = 0
@@ -930,6 +944,7 @@ class YumRepository(Repository, config.RepoConf):
self._revertOldRepoXML()
return False
+ self._using_old_MD = caching
if caching:
return False # Skip any work.
commit 14abe04c21e2f6d3050c8545b37d4447d45f631a
Author: James Antill <james at and.org>
Date: Mon Aug 18 00:33:26 2008 -0400
If we can get away with searching just the name field, do that as it's
indexed so is basically as fast as searchNames().
This "fails" on terms like "python-*" ... but so what.
Saves about 0.1 seconds on my machine (which is ~10% now).
diff --git a/yum/misc.py b/yum/misc.py
index a60c17b..2b96a68 100644
--- a/yum/misc.py
+++ b/yum/misc.py
@@ -87,6 +87,15 @@ def re_primary_filename(filename):
return True
return False
+_re_compiled_full_match = None
+def re_full_search_needed(s):
+ """ Tests if a string needs a full nevra match, instead of just name. """
+ # re.match('[\*\?].$', name)
+ global _re_compiled_full_match
+ if _re_compiled_full_match is None:
+ _re_compiled_full_match = re.compile('[-*?].*.$')
+ return _re_compiled_full_match.match(s)
+
###########
# Title: Remove duplicates from a sequence
# Submitter: Tim Peters
diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index 53e2b9d..1590fe1 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -1093,6 +1093,18 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
ignore_case))
return returnList
+ fields = ['name', 'sql_nameArch', 'sql_nameVerRelArch',
+ 'sql_nameVer', 'sql_nameVerRel',
+ 'sql_envra', 'sql_nevra']
+ need_full = False
+ for pat in patterns:
+ if misc.re_full_search_needed(pat):
+ need_full = True
+ break
+
+ if not need_full:
+ fields = ['name']
+
for (repo,cache) in self.primarydb.items():
if (repoid == None or repoid == repo.id):
cur = cache.cursor()
@@ -1104,9 +1116,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
pat_data = []
for pattern in patterns:
done = False
- for field in ['name', 'sql_nameArch', 'sql_nameVerRelArch',
- 'sql_nameVer', 'sql_nameVerRel',
- 'sql_envra', 'sql_nevra']:
+ for field in fields:
if ignore_case:
if not done:
done = True
commit 8674e45949452bf88353f28cae93f090d9d4baf8
Author: James Antill <james at and.org>
Date: Mon Aug 18 00:29:02 2008 -0400
We don't want to do a single "search for all packages with a bad arch" SQL
search because "normally" there are no bad arches.
So we move to looking at the arch. at pkg load time, a la exclude by pkgKey.
This saves about .2 seconds on my machine.
diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index 2c8dd20..53e2b9d 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -389,8 +389,15 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
return (repo, pkgKey) in self._excludes
+ def _pkgArchExcluded(self, pkgarch):
+ """ Test the arch for a package against the archlist we were passed. """
+ if pkgarch not in self._arch_allowed:
+ return True
+ return False
+
def _pkgExcluded(self, po):
- return self._pkgKeyExcluded(po.repo, po.pkgKey)
+ return (self._pkgKeyExcluded(po.repo, po.pkgKey) or
+ self._pkgArchExcluded(po.arch))
def _packageByKey(self, repo, pkgKey):
""" Lookup a pkg by it's pkgKey, if we don't have it load it """
@@ -402,10 +409,14 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
cur = self._sql_MD('primary', repo, sql, (pkgKey,))
po = self.pc(repo, cur.fetchone())
self._key2pkg[repo][pkgKey] = po
+ if self._pkgArchExcluded(self._key2pkg[repo][pkgKey].arch):
+ return None
return self._key2pkg[repo][pkgKey]
def _packageByKeyData(self, repo, pkgKey, data):
""" Like _packageByKey() but we already have the data for .pc() """
+ if self._pkgArchExcluded(data['arch']):
+ return None
if data['pkgKey'] not in self._key2pkg.get(repo, {}):
po = self.pc(repo, data)
self._key2pkg.setdefault(repo, {})[pkgKey] = po
@@ -451,9 +462,12 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
if self._pkgKeyExcluded(repo, ob['pkgKey']):
continue
if have_data:
- pkgs.append(self._packageByKeyData(repo, ob['pkgKey'], ob))
+ pkg = self._packageByKeyData(repo, ob['pkgKey'], ob)
else:
- pkgs.append(self._packageByKey(repo, ob['pkgKey']))
+ pkg = self._packageByKey(repo, ob['pkgKey'])
+ if pkg is None:
+ continue
+ pkgs.append(pkg)
return pkgs
@staticmethod
@@ -627,7 +641,10 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
for ob in cur:
if self._pkgKeyExcluded(rep, ob['pkgKey']):
continue
- result.append((self._packageByKey(rep, ob['pkgKey']), ob['total']))
+ pkg = self._packageByKey(rep, ob['pkgKey'])
+ if pkg is None:
+ continue
+ result.append((pkg, ob['total']))
return result
@catchSqliteException
@@ -761,7 +778,10 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
for pkgKey, hits in tmp.iteritems():
if self._pkgKeyExcluded(rep, pkgKey):
continue
- result[self._packageByKey(rep, pkgKey)] = hits
+ pkg = self._packageByKey(rep, pkgKey)
+ if pkg is None:
+ continue
+ result[pkg] = hits
for (rep,cache) in primarydb_items:
if rep in self._all_excludes:
@@ -781,7 +801,10 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
for pkgKey, hits in tmp.iteritems():
if self._pkgKeyExcluded(rep, pkgKey):
continue
- result[self._packageByKey(rep, pkgKey)] = hits
+ pkg = self._packageByKey(rep, pkgKey)
+ if pkg is None:
+ continue
+ result[pkg] = hits
if prcotype != 'provides' or name[0] != '/':
if not preload:
@@ -807,7 +830,10 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
for ob in cur:
if self._pkgKeyExcluded(rep, ob['pkgKey']):
continue
- result[self._packageByKey(rep, ob['pkgKey'])] = [(name, None, None)]
+ pkg = self._packageByKey(rep, ob['pkgKey'])
+ if pkg is None:
+ continue
+ result[pkg] = [(name, None, None)]
self._search_cache[prcotype][req] = result
return result
@@ -1094,8 +1120,12 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
if pat_sqls:
qsql = _FULL_PARSE_QUERY_BEG + " OR ".join(pat_sqls)
executeSQL(cur, qsql, pat_data)
+ # Note: Not using _sql_pkgKey2po() so that we can "un-exclude"
+ # things later on ... if that matters.
for x in cur:
po = self._packageByKeyData(repo, x['pkgKey'], x)
+ if po is None: # Arch exclude is done here.
+ continue
returnList.append(po)
if not patterns:
self.pkgobjlist = returnList
@@ -1159,14 +1189,18 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
def excludeArchs(self, archlist):
"""excludes incompatible arches - archlist is a list of compat arches"""
+ self._arch_allowed = set(archlist)
sarchlist = map(lambda x: "'%s'" % x , archlist)
arch_query = ",".join(sarchlist)
for (rep, cache) in self.primarydb.items():
cur = cache.cursor()
- # First of all, make sure this isn't a *-source repo or something
- # where we'll be excluding everything.
+ # This is a minor hack opt. for source repos. ... if they are
+ # enabled normally, we don't want to exclude each package so we
+ # check it and exclude the entire thing.
+ if not rep.id.endswith("-source") or 'src' in self._arch_allowed:
+ continue
has_arch = False
executeSQL(cur, "SELECT DISTINCT arch FROM packages")
for row in cur:
@@ -1176,12 +1210,6 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
if not has_arch:
self._delAllPackages(rep)
return
-
- myq = "select pkgId, pkgKey from packages where arch not in (%s)" % arch_query
- executeSQL(cur, myq)
- for row in cur:
- obj = self.pc(rep, row)
- self.delPackage(obj)
# Simple helper functions
commit 63fe9c6b75dd8c5c1f99242bc76fd51bcaddbb0a
Author: James Antill <james at and.org>
Date: Mon Aug 18 00:07:46 2008 -0400
Don't walk each config. option in populate(), .1 - .2 opt.
diff --git a/yum/config.py b/yum/config.py
index a924935..fb34c06 100644
--- a/yum/config.py
+++ b/yum/config.py
@@ -474,12 +474,16 @@ class BaseConfig(object):
self.cfg = parser
self._section = section
+ if parser.has_section(section):
+ opts = set(parser.options(section))
+ else:
+ opts = set()
for name in self.iterkeys():
option = self.optionobj(name)
value = None
- try:
- value = parser.get(section, name)
- except (NoSectionError, NoOptionError):
+ if name in opts:
+ value = parser.data[section][name]
+ else:
# No matching option in this section, try inheriting
if parent and option.inherit:
value = getattr(parent, name)
commit 2c5f3975b7aa1a085bb28b7b83d916af0fd70a80
Author: Tim Lauridsen <tim at hoth.local>
Date: Sat Aug 16 08:34:43 2008 +0200
Added chinese translation by lijiansheng
diff --git a/po/zh_CN.po b/po/zh_CN.po
new file mode 100644
index 0000000..3b30c2f
--- /dev/null
+++ b/po/zh_CN.po
@@ -0,0 +1,1311 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: yum\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-03-20 10:00+0000\n"
+"PO-Revision-Date: 2008-07-24 19:43+0800\n"
+"Last-Translator: lijiansheng <lijiangsheng1 at gmail.com>\n"
+"Language-Team: zh_CN <lijiangsheng1 at gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Chinese\n"
+"X-Poedit-Country: CHINA\n"
+
+msgid ""
+"\n"
+"\n"
+"Exiting on Broken Pipe"
+msgstr ""
+"\n"
+"\n"
+"管éæåèéåº"
+
+msgid ""
+"\n"
+"\n"
+"Exiting on user cancel"
+msgstr ""
+"\n"
+"\n"
+"ç¨æ·åæ¶èéåº"
+
+msgid ""
+"\n"
+"\n"
+"Exiting on user cancel."
+msgstr ""
+"\n"
+"\n"
+"ç¨æ·åæ¶èéåº"
+
+msgid ""
+"\n"
+"\n"
+"alias: "
+msgstr ""
+"\n"
+"\n"
+"å«å: "
+
+msgid ""
+"\n"
+"\n"
+"aliases: "
+msgstr ""
+"\n"
+"\n"
+"å¤éå«å: "
+
+msgid ""
+"\n"
+" Current download cancelled, %sinterrupt (ctrl-c) again%s within %s%s%s seconds to exit.\n"
+msgstr ""
+"\n"
+" å½åä¸è½½åæ¶, %s ä¸æ (ctrl-c) å次 %s å°å¨%s%s%s ç§å
éåº.\n"
+
+msgid ""
+"\n"
+"Dependencies Resolved"
+msgstr ""
+"\n"
+"ä¾èµæ§è§£å³"
+
+msgid ""
+"\n"
+"Group: %s"
+msgstr ""
+"\n"
+"ç»: %s"
+
+msgid ""
+"\n"
+"Packages skipped because of dependency problems:"
+msgstr ""
+"\n"
+"å 为ä¾èµæ§é®é¢è忽ç¥çå
:"
+
+msgid ""
+"\n"
+"Transaction Summary\n"
+"=============================================================================\n"
+"Install %5.5s Package(s) \n"
+"Update %5.5s Package(s) \n"
+"Remove %5.5s Package(s) \n"
+msgstr ""
+"\n"
+"å¤çä¿¡æ¯æè¦\n"
+"=============================================================================\n"
+"å®è£
%5.5s 个å
\n"
+"å级 %5.5s 个å
\n"
+"å é¤ %5.5s 个å
\n"
+
+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"
+"ä½ å·²ç»æ¿æ´»éè¿GPGå¯é¥éªè¯å
ï¼è¿æ¯ä¸ªå¥½ä¸è¥¿ã \n"
+"ç¶èï¼ä½ 没æå®è£
ä»»ä½çGPGå
¬é¥ï¼ä½ éè¦ä¸è½½ï¼\n"
+"å¦æä½ è¦å®è£
å
çå¯é¥\n"
+"ä½ å¯ä»¥æ§è¡ä¸é¢çå½ä»¤:\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"
+
+msgid ""
+" replacing %s.%s %s\n"
+"\n"
+msgstr ""
+" æ¿ä»£ä¸ %s.%s %s\n"
+"\n"
+
+msgid " %s from %s"
+msgstr " %s ä» %s"
+
+msgid " Unsatisfied dependency"
+msgstr " ä¸è½æ»¡æçä¾èµæ§"
+
+msgid " At least %dMB needed on the %s filesystem.\n"
+msgstr " è³å° éè¦%d MB ï¼ä½åç %s æ件系ç».\n"
+
+msgid " No dependencies for this package"
+msgstr "æ¤å
æ ä»»ä½çä¾èµ"
+
+msgid " dependency: %s"
+msgstr " ä¾èµ: %s"
+
+msgid " Conditional Packages:"
+msgstr " å
æ¡ä»¶:"
+
+msgid " Default Packages:"
+msgstr " é»è®¤çå
:"
+
+msgid " Description: %s"
+msgstr " æè¿°: %s"
+
+msgid " Mandatory Packages:"
+msgstr " æ管çå
æ¯:"
+
+msgid " Optional Packages:"
+msgstr " å
çå±æ§:"
+
+msgid "\"%s\" plugin is disabled"
+msgstr "\"%s\" æ¤æ件已被ç¦æ"
+
+msgid "%d %s files removed"
+msgstr "%d %s æ件已移é¤"
+
+msgid "%d Package(s) to Install"
+msgstr "%d 个å
å°å®è£
"
+
+msgid "%d Package(s) to remove"
+msgstr "%d 个å
å°å é¤"
+
+msgid "%d packages marked for Update"
+msgstr "%d 个å
å·²æ å¿ä¸ºå级"
+
+msgid "%d packages marked for removal"
+msgstr "%d 个å
å·²æ å¿ä¸ºå é¤"
+
+msgid "%s"
+msgstr "%s"
+
+msgid "%s already in ts, skipping this one"
+msgstr "%s å·²å¨å¤çä¸, 忽ç¥æ¤é¡¹"
+
+msgid "%s converted to install"
+msgstr "%s 已转æ¢çå°å®è£
"
+
+msgid "%s file %s removed"
+msgstr "%s æ件 %s 已移é¤"
+
+msgid "%s from %s has depsolving problems"
+msgstr "%s å·²ä»%s 解å³äºé®é¢"
+
+msgid "%s is in providing packages but it is already installed, removing."
+msgstr "%s å¨å设çå
ä¸ï¼ä½æ¯å·²ç»å®è£
ï¼å é¤ä¸...."
+
+msgid "%s removed"
+msgstr "%s å·²å é¤"
+
+msgid "%s requires: %s"
+msgstr "%s éè¦: %s"
+
+msgid "%s: does not update installed package."
+msgstr "%s: 没æå¯ä¾å级çå
."
+
+msgid "---> Downloading header for %s to pack into transaction set."
+msgstr "--->为 %sä¸è½½å¤´æ件以便äºè®¾ç½®å¤ç."
+
+msgid "---> Package %s.%s %s:%s-%s set to be %s"
+msgstr "---> å
%s.%s %s:%s-%s 设置为 %s "
+
+msgid "--> Finished Dependency Resolution"
+msgstr "--> å®æä¾èµæ§æ£æ¥"
+
+msgid "--> Populating transaction set with selected packages. Please wait."
+msgstr "--> æ£å¨å¤çå·²éæ©çå
ï¼è¯·ç¨åã"
+
+msgid "--> Processing Conflict: %s conflicts %s"
+msgstr "--> è¿ç¨å²çª: %s å²çªäº %s"
+
+msgid "--> Processing Dependency: %s for package: %s"
+msgstr "--> è¿ç¨ä¾èµ: %s ä¾èµäºå
: %s"
+
+msgid "--> Restarting Dependency Resolution with new changes."
+msgstr "--> 为æ°å
éæ°å¯å¨è§£å³ä¾èµé®é¢"
+
+msgid "--> Running transaction check"
+msgstr "-->è¿è¡å¤çæ£æ¥"
+
+msgid "--> Unresolved Dependency: %s"
+msgstr "--> 没æ解å³çä¾èµ: %s"
+
+msgid "Adding Package %s in mode %s"
+msgstr "æ·»å å
%s å¨ %s ç模å¼ä¸"
+
+msgid "Adding group file from repository: %s"
+msgstr "ä»ä»åº: %s ä¸æ·»å ç»æ件"
+
+msgid "Adding package %s from group %s"
+msgstr "æ·»å å
%s ä»ç» %s ä¸"
+
+msgid "Another app is currently holding the yum lock; waiting for it to exit..."
+msgstr "å¦å¤ä¸ä¸ªåºç¨ç¨åºæ£å¨éç¨yuméï¼çå¾
å
¶éåº ... ..."
+
+msgid "Apr"
+msgstr "Apr"
+
+msgid "Arch"
+msgstr "æ¶æ"
+
+msgid "Arch : %s"
+msgstr "æ¶æ : %s"
+
+msgid "Aug"
+msgstr "Aug"
+
+msgid "Available Groups:"
+msgstr "ææçç»:"
+
+msgid "Available Packages"
+msgstr "å·²ç»æä¾çå
"
+
+msgid "Building updates object"
+msgstr "建ç«å级对象"
+
+msgid "Cannot find an update path for dep for: %s"
+msgstr "Cannot find an update path for dep for: %s"
+
+msgid "Cannot open file: %s. Skipping."
+msgstr "ä¸è½æå¼æ件: %s. è·³è¿."
+
+msgid "Cannot remove %s"
+msgstr "æ æ³å é¤ %s "
+
+msgid "Cannot remove %s file %s"
+msgstr "æ æ³å é¤ %s æ件 %s"
+
+msgid "Check for available package updates"
+msgstr "æ£æ¥å¯æä¾çå
å级"
+
+msgid "Checking deps for %s"
+msgstr "为 %s æ£æ¥ä¾èµæ§"
+
+msgid "Checking for virtual provide or file-provide for %s"
+msgstr "Checking for virtual provide or file-provide for %s"
+
+msgid "Cleaning up Everything"
+msgstr "æ¸
çä¸å"
+
+msgid "Cleaning up Headers"
+msgstr "Räume Header auf"
+
+msgid "Cleaning up Packages"
+msgstr "æ¸
çå
"
+
+msgid "Cleaning up database cache"
+msgstr "æ¸
çæ°æ®åºç¼å"
+
+msgid "Cleaning up plugins"
+msgstr "æ¸
çæ件"
+
+msgid "Cleaning up xml metadata"
+msgstr "æ¸
çXMLå
æ°æ®"
+
+msgid "Cleanup"
+msgstr "æ¸
ç"
+
+msgid "Command \"%s\" already defined"
+msgstr "å½ä»¤ \"%s\" æ©å·²ç»è¢«å®ä¹"
+
+msgid "Command line error: %s"
+msgstr "å½ä»¤è¡é误: %s"
+
+msgid "Committer : %s"
+msgstr "Ãbermittler : %s"
+
+msgid "Comparing best: %s to po: %s"
+msgstr "Vergleiche besseres: %s zu po: %s"
+
+msgid "Complete!"
+msgstr "æåä½ !æåå®æï¼"
+
+msgid "Config Error: %s"
+msgstr "é
ç½®é误: %s"
+
+msgid "Configuration file %s not found"
+msgstr "é
ç½®æ件 %s ä¸è½è¢«æ¾å°"
+
+msgid "Could not find update match for %s"
+msgstr "ä¸è½æ¾å°å %s å¹é
çå级"
+
+msgid "Could not open RPM database for reading. Perhaps it is already in use?"
+msgstr "ä¸è½ä»¥è¯»çæ¹å¼æå¼RPMæ°æ®åºï¼æ许æ¯å®å·²ç»å¨è¢«ç¨?"
+
+msgid "Could not perform checksum"
+msgstr "æ æ³æ§è¡æ ¡éªå"
+
+msgid "Damaged Header %s"
+msgstr "æåç头æ件 %s"
+
+msgid "Dec"
+msgstr "Dec"
+
+msgid "Dependency Installed"
+msgstr "ä¾èµå®è£
"
+
+msgid "Dependency Process ending"
+msgstr "ä¾èµè¿ç¨å®æä¸"
+
+msgid "Dependency Removed"
+msgstr "ä¾èµå é¤"
+
+msgid "Dependency Updated"
+msgstr "ä¾èµå级"
+
+msgid "Description: "
+msgstr "å级:"
+
+msgid "Determine which package provides the given dependency"
+msgstr "å³å®åªä¸ªå
æä¾äºç»å®çä¾èµ"
+
+msgid "Discarding non-comparable pkg %s.%s"
+msgstr " 丢å¼æ 对ç
§çå
%s.%s"
+
+msgid "Disk Requirements:\n"
+msgstr "ç£çè¦æ±:\n"
+
+msgid "Display a helpful usage message"
+msgstr "æ¾ç¤ºå¸®å©ç¨æ³ä¿¡æ¯"
+
+msgid "Display details about a package group"
+msgstr "æ¾ç¤ºå
³äºå
ç»çç»è"
+
+msgid "Display details about a package or group of packages"
+msgstr "æ¾ç¤ºå
³äºå
æä¸ç»å
çç»èä¿¡æ¯"
+
+msgid "Display the configured software repositories"
+msgstr "æ¾ç¤ºè½¯ä»¶ä»åºçé
ç½®"
+
+msgid "Done"
+msgstr "å®æ"
+
+msgid "Downloading Packages:"
+msgstr "ä¸è½½è½¯ä»¶å
:"
+
+msgid "ERROR with rpm_check_debug vs depsolve:"
+msgstr "é误 rpm_check_debug å depsolve:"
+
+msgid "Epoch : %s"
+msgstr "Epoch : %s"
+
+msgid "Erased"
+msgstr "å·²å é¤"
+
+msgid "Erased: %s"
+msgstr "å·²å é¤: %s"
+
+msgid "Erasing"
+msgstr "æ£å¨å é¤"
+
+msgid "Error Downloading Packages:\n"
+msgstr "ä¸è½½å
é误:\n"
+
+msgid ""
+"Error Summary\n"
+"-------------\n"
+msgstr ""
+"é误çè¯æ³\n"
+"-------------\n"
+
+msgid "Error opening rpm %s - error %s"
+msgstr "æå¼ RPM %s é误 - é误 %s"
+
+msgid "Error: %s"
+msgstr "é误: %s"
+
+msgid "Error: Need a group or list of groups"
+msgstr "é误ï¼éè¦ç»æç»çå表"
+
+msgid "Error: Need an item to match"
+msgstr "é误ï¼éè¦ç»å¾®çå¹é
"
+
+msgid "Error: Need to pass a list of pkgs to %s"
+msgstr "é误: éè¦ä¼ è¾å¨å表çå
å°%s"
+
+msgid "Error: clean requires an option: %s"
+msgstr "Error: clean requires an option: %s"
+
+msgid "Error: invalid clean argument: %r"
+msgstr "Error: invalid clean argument: %r"
+
+msgid "Error: invalid output state: %s for %s"
+msgstr "Error: invalid output state: %s for %s"
+
+msgid "Error: more than one file given as argument to shell."
+msgstr "Error: more than one file given as argument to shell."
+
+msgid "Errors were encountered while downloading packages."
+msgstr "Errors were encountered while downloading packages."
+
+msgid "Examining %s: %s"
+msgstr " è¯æ %s: %s"
+
+msgid "Excluding %s"
+msgstr "ä¸å
æ¬ %s"
+
+msgid "Excluding Packages from %s"
+msgstr "å¨ %s ä¸æé¤çå
"
+
+msgid "Excluding Packages in global exclude list"
+msgstr "ä¸å
éå
å¨å
¨å±çæé¤çå表ä¸"
+
+msgid "Existing lock %s: another copy is running as pid %s."
+msgstr "éå·²è¢«ç¨ %s: å¦å¤çä¸ä¸ªå¤å¶æ£å¨è¿è¡å¨ PID为 %s."
+
+msgid "Exiting on user Command"
+msgstr "å¨ç¨æ·çå½ä»¤ä¸éåº"
+
+msgid "Extra Packages"
+msgstr "æ©å±çå
"
+
+msgid "Failed to add groups file for repository: %s - %s"
+msgstr "为ä»åºæ·»å ç»å¤±è´¥: %s - %s"
+
+msgid "Failed to remove transaction file %s"
+msgstr "移é¤å¤çæ件%s 失败"
+
+msgid "Failure finding best provider of %s for %s, exceeded maximum loop length"
+msgstr "Failure finding best provider of %s for %s, exceeded maximum loop length"
+
+msgid "Feb"
+msgstr "äºæ"
+
+msgid "File %s given as argument to shell does not exist."
+msgstr "File %s given as argument to shell does not exist."
+
+msgid "Filename passed to shell: %s"
+msgstr "Filename passed to shell: %s"
+
+msgid "Find what package provides the given value"
+msgstr "Find what package provides the given value"
+
+msgid "Finding dependencies: "
+msgstr "æ¾å°ä¾èµ:"
+
+msgid "Finished"
+msgstr "å®æ"
+
+msgid "Finished Transaction Test"
+msgstr "ä¼ è¾æµè¯å®æ"
+
+msgid "GPG key at %s (0x%s) is already installed"
+msgstr "GPGå¯é¥å¨ %s (0x%s) å·²ç»å®è£
"
+
+msgid "GPG key parsing failed: "
+msgstr "åæGPGå¯é¥å¤±è´¥: "
+
+msgid "GPG key retrieval failed: "
+msgstr "GPGå¯é¥ä¿®å¤å¤±è´¥:"
+
+msgid "Generate the metadata cache"
+msgstr "çæåæ°æ®ç¼å"
+
+msgid "Getting group metadata"
+msgstr "è·å¾ç»å
æ°æ®"
+
+msgid "Got an empty Header, something has gone wrong"
+msgstr "å¾å°ç©ºç头æ件ï¼æé误åç"
+
+msgid "Header cannot be opened or does not match %s, %s."
+msgstr "Header ä¸è½æå¼æ对 %s, %sä¸å¹é
."
+
+msgid "Header is not complete."
+msgstr "Header ä¸æ¯å®æ´ç."
+
+msgid "Header not in local cache and caching-only mode enabled. Cannot download %s"
+msgstr "Header并ä¸å¨æ¬å°ç¼åèä¸caching-only 模å¼è¢«æ¿æ´»ãä¸è½ä¸è½½ %s"
+
+msgid "Import of key(s) didn't help, wrong key(s)?"
+msgstr "导å
¥å¯é¥æ¶æ²¡ææ±å©ï¼é误çå¯é¥?"
+
+msgid "Importing GPG key 0x%s \"%s\" from %s"
+msgstr "导å
¥GPGå¯é¥ 0x%s \"%s\" ,æ¥èª %s"
+
+msgid "Importing additional filelist information"
+msgstr "æ£å¨å¯¼å
¥é¢å¤çæ件å表信æ¯"
+
+msgid "Install a local RPM"
+msgstr "å®è£
æ¬å° RPM"
+
+msgid "Install a package or packages on your system"
+msgstr "å®è£
ä¸ä¸ªæå¤ä¸ªè½¯ä»¶å
å¨ä½ çç³»ç»"
+
+msgid "Install the packages in a group on your system"
+msgstr "ä»ç»éå®è£
软件å
å°ä½ çç³»ç»"
+
+msgid "Installed"
+msgstr "å·²å®è£
"
+
+msgid "Installed Groups:"
+msgstr "å·²å®è£
ç»:"
+
+msgid "Installed Packages"
+msgstr "å·²ç»å®è£
çå
"
+
+msgid "Installing"
+msgstr "æ£å¨å®è£
"
+
+msgid "Installing for dependencies"
+msgstr "为ä¾èµèå®è£
"
+
+msgid "Insufficient space in download directory %s to download"
+msgstr "ç®å½ %s没æ足å¤ç空é´ä¸è½½æ件"
+
+msgid "Invalid tsflag in config file: %s"
+msgstr "é
ç½®æ件: %sä¸çtsflagæ¯æ æç"
+
+msgid "Invalid version flag"
+msgstr "æ æççæ¬æ å¿"
+
+msgid "Invalid versioned dependency string, try quoting it."
+msgstr "æ æçä¾èµå符串ï¼å°è¯éæ°å¼ç¨."
+
+msgid "Is this ok [y/N]: "
+msgstr "ç¡®å®æ¯è¿æ ·å? [y/N]: "
+
+msgid "Jan"
+msgstr "ä¸æ"
+
+msgid "Jul"
+msgstr "Jul"
+
+msgid "Jun"
+msgstr "Jun"
+
+msgid "Keeping included package %s"
+msgstr "ä¿æå·²å
å«çå
%s"
+
+msgid "Key import failed (code %d)"
+msgstr "导å
¥å¯é¥å¤±è´¥ (ä»£å· %d)"
+
+msgid "Key imported successfully"
+msgstr "导å
¥å¯é¥æå"
+
+msgid "License : %s"
+msgstr "许å¯è¯ : %s"
+
+msgid "List a package or groups of packages"
+msgstr "ååºä¸ä¸ªå
ææç»çå
"
+
+msgid "List a package's dependencies"
+msgstr "ååºå
ä¾èµç¸å
³"
+
+msgid "List available package groups"
+msgstr "ååºå½åçç»"
+
+msgid "Loaded plugins: "
+msgstr "è½½å
¥æ件: "
+
+msgid "Loading \"%s\" plugin"
+msgstr "è½½å
¥ \"%s\" æ件"
+
+msgid "Making cache files for all metadata files."
+msgstr "å°ææçå
æ°æ®æ件çæç¼åæ件."
+
+msgid "Mar"
+msgstr "Mar"
+
+msgid "Marking %s as an update to %s"
+msgstr "æ å¿ %s å°è¢«æ´æ°ä¸º %s"
+
+msgid "Marking %s to be installed"
+msgstr "æ å¿ %s å°è¢«å®è£
"
+
+msgid "Matched %s to require for %s"
+msgstr "æ å¿%s è¦æ± %s"
+
+msgid "Matched from:"
+msgstr "å¹é
æ¥èªäº:"
+
+msgid "Matching packages for package list to user args"
+msgstr "ä»ç¨æ·çå
å表ä¸å¹é
å
"
+
+msgid "May"
+msgstr "Mai"
+
+msgid "Member: %s"
+msgstr "æå: %s"
+
+msgid "Metadata Cache Created"
+msgstr "åæ°æ®ç¼å已建ç«"
+
+msgid "Missing Dependency: %s is needed by package %s"
+msgstr "丢失çä¾èµç¸å
³: %s 被å
%s æéè¦"
+
+msgid "Mode for pkg providing %s: %s"
+msgstr "Mode for pkg providing %s: %s"
+
+msgid "Mode is %s for provider of %s: %s"
+msgstr "Mode is %s for provider of %s: %s"
+
+msgid "More than one identical match in sack for %s"
+msgstr "More than one identical match in sack for %s"
+
+msgid "Name : %s"
+msgstr "å称 : %s"
+
+msgid "Needed Require has already been looked up, cheating"
+msgstr "Needed Require has already been looked up, cheating"
+
+msgid "Needed Require is not a package name. Looking up: %s"
+msgstr "Needed Require is not a package name. Looking up: %s"
+
+msgid "No Group named %s exists"
+msgstr "没æåç°ç» %s "
+
+msgid "No Groups Available in any repository"
+msgstr "å¨ç°æçä»åºä¸æ²¡æç»å¯è¢«æä¾"
+
+msgid "No Groups on which to run command"
+msgstr "没æç»å¯ä»¥è¿è¡çå½ä»¤"
+
+msgid "No Match for argument: %s"
+msgstr "没æå¹é
çåæ°: %s"
+
+msgid "No Matches found"
+msgstr "没æå¹é
åç°"
+
+msgid "No Package Found for %s"
+msgstr "没æåç°å
%s"
+
+msgid "No Package found for %s"
+msgstr "没æåç°å
%s"
+
+msgid "No Packages Provided"
+msgstr "没æå¯æä¾çå
"
+
+msgid "No Packages marked for Update"
+msgstr "没æå
æ å¿ä¸ºå级"
+
+msgid "No Packages marked for removal"
+msgstr "没æå
æ å¿ä¸ºå é¤"
+
+msgid "No argument to shell"
+msgstr "没æåæ°æä¾ç»shell"
+
+msgid "No group named %s exists"
+msgstr "没æç»å为 %s "
+
+msgid "No header - huh?"
+msgstr "没æ头æ件--ï¼ï¼?"
+
+msgid "No help available for %s"
+msgstr "没æå
³äº %s ç帮å©"
+
+msgid "No matching Packages to list"
+msgstr "å表ä¸æ²¡æå¹é
çå
"
+
+msgid "No other %s installed, adding to list for potential install"
+msgstr "No other %s installed, adding to list for æ½å¨çinstall"
+
+msgid "No package %s available."
+msgstr "å
%s ä¸å¯æä¾."
+
+msgid "No package matched to remove"
+msgstr "没æå¹é
çå
å é¤"
+
+msgid "No package named %s available to be installed"
+msgstr "没æå称为 %s å
å¯ä¾å®è£
"
+
+msgid "No package(s) available to install"
+msgstr "没æå
å¯ä¾å®è£
."
+
+msgid "No packages in any requested group available to install or update"
+msgstr "没æå
å¨æè¦æ±çç»ä¸å¯æä¾å®è£
æå级"
+
+msgid "No packages to remove from groups"
+msgstr "No packages to remove from groups"
+
+msgid "No plugin match for: %s"
+msgstr "没ææ件å¯å¹é
: %s"
+
+msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
+msgstr "ä¸å¯æ´æ°æ©å·²è¢«åºå¼çå
: %s.%s %s:%s-%s"
+
+msgid "Not installing key"
+msgstr "没æå®è£
å¯é¥"
+
+msgid "Nothing matches %s.%s %s:%s-%s from update"
+msgstr "æ æ³å¹é
%s.%s %s:%s-%s ä»æ´æ°ä¸"
+
+msgid "Nothing specified to install"
+msgstr "没ææå®å®è£
"
+
+msgid "Nothing to do"
+msgstr "æ äºå¯å"
+
+msgid "Nov"
+msgstr "Nov"
+
+msgid "Obsoleted"
+msgstr "å·²åºå¼"
+
+msgid "Obsoleting Packages"
+msgstr "åºå¼ä¸çå
"
+
+msgid "Oct"
+msgstr "åæ"
+
+msgid "Options Error: %s"
+msgstr "å±æ§é误: %s"
+
+msgid "PACKAGE..."
+msgstr "å
..."
+
+msgid "Package"
+msgstr "å
"
+
+msgid "Package %s already installed and latest version"
+msgstr "å
%s å·²å®è£
并ä¸æ¯ææ°çæ¬"
+
+msgid "Package %s is allowed multiple installs, skipping"
+msgstr "å
%s 被å
许å¤æ¹å¼å®è£
ï¼å¿½ç¥"
+
+msgid "Package %s is already installed, skipping"
+msgstr "å
%s æ©å·²å®è£
ï¼å¿½ç¥"
+
+msgid "Package %s is not signed"
+msgstr "å
%s æ ç¾å认è¯"
+
+msgid "Package %s not installed, cannot update it. Run yum install to install it instead."
+msgstr "å
%s 没æå®è£
, ä¸è½å®è£
ã请éç¨yum install å®è£
å®ã"
+
+msgid "Package Object was not a package object instance"
+msgstr "Package Object was not a package object instance"
+
+msgid "Package does not match checksum"
+msgstr "å
ä¸å¹é
æ ¡éªç»æ"
+
+msgid "Package does not match intended download"
+msgstr "Package does not match intended download."
+
+msgid "Package is already obsoleted: %s.%s %s:%s-%s"
+msgstr "å
å·²ç»åºå¼: %s.%s %s:%s-%s"
+
+msgid "Package matching %s already installed. Checking for update."
+msgstr "å¹é
å
%s å·²ç»å®è£
. æ£æ¥æ´æ°."
+
+msgid "Package tuple %s could not be found in packagesack"
+msgstr "å
å
ç» %s ä¸è½å¨packagesackä¸åç°"
+
+msgid "Package(s) to install"
+msgstr "å
å°å®è£
"
+
+msgid "Package: %s - already in transaction set"
+msgstr "å®è£
å
: %s - äºå¡å¤ç已设置"
+
+msgid "Parsing package install arguments"
+msgstr "åæå®è£
åæ°çè¯æ³"
+
+msgid "Please report this error in bugzilla"
+msgstr "请æ¥åè¿ä¸ªéè¯¯ç» Bugzilla"
+
+msgid "Plugin \"%s\" doesn't specify required API version"
+msgstr "Plugin \"%s\" 没ææå®å¿
è¦çAPIçæ¬"
+
+msgid "Plugin \"%s\" requires API %s. Supported API is %s."
+msgstr "Plugin \"%s\" éè¦ API %s. æ¯æç API 为 %s."
+
+msgid "Potential Provider: %s"
+msgstr " æ½å¨çæä¾è
: %s"
+
+msgid "Potential match for %s from %s"
+msgstr "Potential match for %s from %s"
+
+msgid "Potential resolving package %s has newer instance in ts."
+msgstr "Potential resolving package %s has newer instance in ts."
+
+msgid "Potential resolving package %s has newer instance installed."
+msgstr "Potential resolving package %s has newer instance installed."
+
+msgid "Problem in reinstall: no package matched to install"
+msgstr "Problem in reinstall: no package matched to install"
+
+msgid "Problem in reinstall: no package matched to remove"
+msgstr "Problem in reinstall: no package matched to remove"
+
+msgid "Problem opening package %s"
+msgstr "æå¼å
%s åºç°é®é¢"
+
+msgid "Provides-match: %s"
+msgstr "Provides-match: %s"
+
+msgid "Public key for %s is not installed"
+msgstr "ç» %s çå
¬é¥æ²¡æå®è£
"
+
+msgid "Public key for %s is not trusted"
+msgstr "ç» %s çå
¬é¥ä¸å¯ä¿¡ä»»"
+
+msgid "RPM %s fails md5 check"
+msgstr "RPM %s md5ç æ ¡éªå¤±è´¥"
+
+msgid "Reading Local RPMDB"
+msgstr "读å
¥æ¬å°RPMDB"
+
+msgid "Reading repository metadata in from local files"
+msgstr "ä»æ¬å°æ件读å
¥ä»åºå
æ°æ®"
+
+msgid "Recently Added Packages"
+msgstr "è¿ææ·»å çå
"
+
+msgid "Reducing %s to included packages only"
+msgstr "åå° %s æä»
å
å«çå
"
+
+msgid ""
+"Refusing to automatically import keys when running unattended.\n"
+"Use \"-y\" to override."
+msgstr ""
+"å½è¿è¡unattendedæ¶æç»èªå¨å¯¼å
¥å¯é¥.\n"
+"ç¨ \"-y\" æ¥è¦ç"
+
+msgid "Release : %s"
+msgstr "åè¡ : %s"
+
+msgid "Remove a package or packages from your system"
+msgstr "移é¤ä¸ä¸ªæå¤ä¸ªå
ä»ä½ çç³»ç»"
+
+msgid "Remove cached data"
+msgstr "å é¤ç¼åæ°æ®"
+
+msgid "Remove the packages in a group from your system"
+msgstr "å¨ä¸ä¸ªç»ä¸ç§»é¤å
ä»æ¨çç³»ç»"
+
+msgid "Removed"
+msgstr "å·²å é¤"
+
+msgid "Removing"
+msgstr "æ£å¨å é¤"
+
+msgid "Removing Package %s"
+msgstr "æ£å¨å é¤å
%s"
+
+msgid "Removing for dependencies"
+msgstr "为ä¾èµç§»é¤"
+
+msgid "Removing unmatched package %s"
+msgstr "移é¤ä¸å¹é
çå
ï¼ %s"
+
+msgid "Repackage"
+msgstr "éæ°æå
"
+
+msgid "Replaced"
+msgstr "æ¿ä»£"
+
+msgid "Repo : %s"
+msgstr "Repo : %s"
+
+msgid "Repository"
+msgstr "ä»åº"
+
+msgid "Repository %r is missing name in configuration, using id"
+msgstr "ä»åº %r 丢失äºååå¨é
ç½®æ件ä¸ï¼ç¨id代æ¿"
+
+msgid "Resolving Dependencies"
+msgstr "解å³ä¾èµç¸å
³"
+
+msgid "Restarting Loop"
+msgstr "éæ°å¯å¨ç¯å"
+
+msgid "Retrieving GPG key from %s"
+msgstr "ä» %s ä¸æ¢å¤GPGå¯é¥"
+
+msgid "Run an interactive yum shell"
+msgstr "è¿è¡äº¤äºå¼çyum shell"
+
+msgid "Running Transaction"
+msgstr "è¿è¡äºå¡å¤ç"
+
+msgid "Running Transaction Test"
+msgstr "è¿è¡æµè¯äºå¡å¤ç"
+
+msgid "Running rpm_check_debug"
+msgstr "è¿è¡ rpm_check_debug "
+
+msgid "Same: best %s == po: %s"
+msgstr "Same: best %s == po: %s"
+
+msgid "Search package details for the given string"
+msgstr "æ¥æ¾å
ç»èå±
ç»å®çå符串"
+
+msgid "Searching %d packages"
+msgstr "æ¥è¯¢ %d 个å
"
+
+msgid "Searching Packages for Dependency:"
+msgstr "为ä¾èµç¸å
³æ¥æ¾å
:"
+
+msgid "Searching Packages: "
+msgstr "æ¥è¯¢å
:"
+
+msgid "Searching pkgSack for dep: %s"
+msgstr "æ¥æ¾pkgSack 为ä¾èµ: %s"
+
+msgid "Sep"
+msgstr "Sep"
+
+msgid "Setting up Group Process"
+msgstr "设置ç»è¿ç¨"
+
+msgid "Setting up Install Process"
+msgstr "设置å®è£
è¿ç¨"
+
+msgid "Setting up Local Package Process"
+msgstr "设置æ¬å°å
è¿ç¨"
+
+msgid "Setting up Package Sacks"
+msgstr "设置å
麻è¢"
+
+msgid "Setting up Reinstall Process"
+msgstr "设置éæ°å®è£
è¿ç¨"
+
+msgid "Setting up Remove Process"
+msgstr "设置å é¤è¿ç¨"
+
+msgid "Setting up TransactionSets before config class is up"
+msgstr "å¨configç±»å¯ç¨ä¹å设置äºå¡å¤ç"
+
+msgid "Setting up Update Process"
+msgstr "设置æ´æ°è¿ç¨"
+
+msgid "Setting up Upgrade Process"
+msgstr "设置å级è¿ç¨"
+
+msgid "Setting up Yum Shell"
+msgstr "设置Yum-Shell yum交äºå¼ç¯å¢"
+
+msgid "Setting up repositories"
+msgstr "设置ä»åº"
+
+msgid "Size"
+msgstr "大å°"
+
+msgid "Size : %s"
+msgstr "å¤§å° : %s"
+
+msgid "Skip-broken round %i"
+msgstr "Skip-broken round %i"
+
+msgid "Skip-broken took %i rounds "
+msgstr "Skip-broken took %i rounds"
+
+msgid "Success - deps resolved"
+msgstr "æå --ä¾èµæ§è§£å³"
+
+msgid "Success - empty transaction"
+msgstr "æå --空çäºå¡å¤ç"
+
+msgid "Summary : "
+msgstr "è¯æ³ : "
+
+msgid "TSINFO: %s package requiring %s marked as erase"
+msgstr "TSINFO: %s package requiring %s marked as erase"
+
+msgid "TSINFO: Marking %s as install for %s"
+msgstr "TSINFO: Marking %s as install for %s"
+
+msgid "TSINFO: Marking %s as update for %s"
+msgstr "TSINFO: Marking %s as update for %s"
+
+msgid "TSINFO: Obsoleting %s with %s to resolve dep."
+msgstr "TSINFO: Obsoleting %s with %s to resolve dep."
+
+msgid "TSINFO: Updating %s to resolve dep."
+msgstr "TSINFO: Updating %s to resolve dep."
+
+msgid "Test Transaction Errors: "
+msgstr "æµè¯äºå¡å¤çé误"
+
+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 ""
+"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."
+
+msgid "There was an error calculating total download size"
+msgstr "There was an error calculating total download size"
+
+msgid "This may take a while depending on the speed of this computer"
+msgstr "è¿ä¼å ç¨ä¸æ®µæ¶é´ï¼å
·ä½å°åå³äºè¿å°è®¡ç®æºçé度"
+
+msgid "Total download size: %s"
+msgstr "æ»å
±ä¸è½½å¤§å°: %s"
+
+msgid "Total size: %s"
+msgstr "æ»å¤§å°: %s"
+
+msgid "Transaction Check Error:\n"
+msgstr "å¤çæ£æ¥é误:\n"
+
+msgid "Transaction Test Succeeded"
+msgstr "äºå¡å¤çæµè¯æå"
+
+msgid "Trying other mirror."
+msgstr "å°è¯å
¶ä»éå."
+
+msgid "Trying to run the transaction but nothing to do. Exiting."
+msgstr "å°è¯è¿è¡äºå¡å¤çä½æ¯ä»ä¹ä¹åä¸æï¼éåº."
+
+msgid "Two or more plugins with the name \"%s\" exist in the plugin search path"
+msgstr "Two or more plugins with the name \"%s\" exist in the plugin search path"
+
+msgid "URL : %s"
+msgstr "ç»ä¸èµæºå®ä½ç¬¦ : %s"
+
+msgid "Unable to check if PID %s is active"
+msgstr "ä¸è½æ£æ¥å°PID %sæ¯å¦æ¿æ´»"
+
+msgid "Unable to find a suitable mirror."
+msgstr "ä¸è½åç°åéçéå."
+
+msgid "Unable to find configuration file for plugin %s"
+msgstr "ä¸è½æ¾å°æ件 %s çé
ç½®æ件 "
+
+msgid "Unknown Error(s): Exit Code: %d:"
+msgstr "è«åçé误: éåºä»£ç ä¸ºï¼ %d:"
+
+msgid "Unresolvable requirement %s for %s"
+msgstr "没æ解å³çéæ± %s 为 %s"
+
+msgid "Update a package or packages on your system"
+msgstr "æ´æ°ä¸ä¸ªæå¤ä¸ªå
å¨ä½ çç³»ç»"
+
+msgid "Update packages taking obsoletes into account"
+msgstr "Update packages taking obsoletes into account"
+
+msgid "Updated"
+msgstr "æ´æ°å®æ¯"
+
+msgid "Updated Packages"
+msgstr "æ´æ°è¿çå
"
+
+msgid "Updating"
+msgstr "æ£å¨å级"
+
+msgid "Updating Everything"
+msgstr "å
¨é¨å级"
+
+msgid "Updating for dependencies"
+msgstr "æ´æ°ä¾èµæ§"
+
+msgid "Version"
+msgstr "çæ¬"
+
+msgid "Version : %s"
+msgstr "çæ¬ : %s"
+
+msgid "Warning: Group %s does not exist."
+msgstr "æ示: ç» %s ä¸åå¨."
+
+msgid "Warning: No matches found for: %s"
+msgstr "æ示 : 没æåç°å: %s å¹é
"
+
+msgid "You need to be root to perform this command."
+msgstr "ä½ éè¦root身份æ§è¡æ¤å½ä»¤."
+
+msgid "You need to give some command"
+msgstr "ä½ éè¦ç»åºå½ä»¤"
+
+msgid "[PACKAGE...]"
+msgstr "[å
...]"
+
+msgid "answer yes for all questions"
+msgstr "åçææçé®é¢ä¸ºæ¯"
+
+msgid "be tolerant of errors"
+msgstr "be tolerant of errors"
+
+msgid "best %s obsoletes po: %s"
+msgstr "best %s obsoletes po: %s"
+
+msgid "best %s shares a sourcerpm with %s"
+msgstr "best %s shares a sourcerpm with %s"
+
+msgid "bestpkg %s shares more of the name prefix with %s"
+msgstr "bestpkg %s shares more of the name prefix with %s"
+
+msgid "better arch in po %s"
+msgstr "better arch in po %s"
+
+msgid "config file location"
+msgstr "config file location"
+
+msgid "debugging output level"
+msgstr "è°è¯è¾åºçº§å«"
+
+msgid "disable Yum plugins"
+msgstr "ç¦æyumæ件"
+
+msgid "disable exclude from main, for a repo or for everything"
+msgstr "disable exclude from main, for a repo or for everything"
+
+msgid "disable gpg signature checking"
+msgstr "ç¦æGPGéªè¯æ£æ¥"
+
+msgid "disable one or more repositories (wildcards allowed)"
+msgstr "ç¦æä¸ä¸ªæå¤ä¸ªä»åºï¼æ¯æéé
符ï¼"
+
+msgid "disable plugins by name"
+msgstr "ç¨å称ç¦ææ件"
+
+msgid "disabled"
+msgstr "ç¦æ"
+
+msgid "doConfigSetup() will go away in a future version of Yum.\n"
+msgstr "doConfigSetup() å°å¨æªæ¥çYUMçæ¬ä¸æ¶å¤±.\n"
+
+msgid "doGroupSetup() will go away in a future version of Yum.\n"
+msgstr "doGroupSetup()å°å¨æªæ¥çYUMçæ¬ä¸æ¶å¤±.\n"
+
+msgid "doRepoSetup() will go away in a future version of Yum.\n"
+msgstr "doRepoSetup() å°å¨æªæ¥çYUMçæ¬ä¸æ¶å¤±.\n"
+
+msgid "doRpmDBSetup() will go away in a future version of Yum.\n"
+msgstr "doRpmDBSetup() å°å¨æªæ¥çYUMçæ¬ä¸æ¶å¤±.\n"
+
+msgid "doSackSetup() will go away in a future version of Yum.\n"
+msgstr "doSackSetup() å°å¨æªæ¥çYUMçæ¬ä¸æ¶å¤±.\n"
+
+msgid "doTsSetup() will go away in a future version of Yum.\n"
+msgstr "doTsSetup() å°å¨æªæ¥çYUMçæ¬ä¸æ¶å¤±.\n"
+
+msgid "doUpdateSetup() will go away in a future version of Yum.\n"
+msgstr "doUpdateSetup() wird verschwinden in zukünfigen Version von Yum.\n"
+
+msgid "enable obsoletes processing during updates"
+msgstr "enable obsoletes processing during updates"
+
+msgid "enable one or more repositories (wildcards allowed)"
+msgstr "æ¿æ´»ä¸ä¸ªæå¤ä¸ªä»åºï¼æ¯æéé
符ï¼"
+
+msgid "enabled"
+msgstr "æ¿æ´»"
+
+msgid "erased"
+msgstr "å é¤"
+
+msgid "error output level"
+msgstr "é误è¾åºçº§å«"
+
+msgid "exclude package(s) by name or glob"
+msgstr "å¨å称æglobä¸å
å«å
ã"
+
+msgid "excluding for cost: %s from %s"
+msgstr "excluding for cost: %s from %s"
+
+msgid "installed"
+msgstr "å·²å®è£
"
+
+msgid "looking for %s as a requirement of %s"
+msgstr "æ¥æ¾ %s å¨è¦æ±ç %s ä¸"
+
+msgid "maximum command wait time"
+msgstr "æ大åçå½ä»¤çå¾
æ¶é´"
+
+msgid "n"
+msgstr "n"
+
+msgid "no"
+msgstr "å¦"
+
+msgid "obsoleted"
+msgstr "å·²åºå¼"
+
+msgid "package %s was not marked in group %s"
+msgstr "å
%s å¨ç» %sä¸æ²¡æ被æ å¿"
+
+msgid "package fails checksum but caching is enabled for %s"
+msgstr "å
æ ¡éªå¤±è´¥ä½æ¯ç¼å已为 %sæ¿æ´»"
+
+msgid "package: %s"
+msgstr "å
: %s"
+
+msgid "plugins already initialised"
+msgstr "æ件已ç»initialised"
+
+msgid "po %s has a shorter name than best %s"
+msgstr "po %s has a shorter name than best %s"
+
+msgid "po %s obsoletes best: %s"
+msgstr "po %s obsoletes best: %s"
+
+msgid "po %s shares a sourcerpm with %s"
+msgstr "po %s shares a sourcerpm with %s"
+
+msgid "po %s shares more of the name prefix with %s"
+msgstr "po %s shares more of the name prefix with %s"
+
+msgid "quiet operation"
+msgstr "å®éçæä½"
+
+msgid "registration of commands not supported"
+msgstr "注åå½ä»¤ä¸æ¯æ"
+
+msgid "reinstall a package"
+msgstr "éæ°å®è£
ä¸ä¸ªå
"
+
+msgid "repo id"
+msgstr "Repo-å·"
+
+msgid "repo name"
+msgstr "Repo-å称:"
+
+msgid "repo object for repo %s lacks a _resetSack method\n"
+msgstr "repo对象for repo %s ç¼ºå° a _resetSack æ¹æ³\n"
+
+msgid "run entirely from cache, don't update cache"
+msgstr "ä»ç¼å²ä¸è¿è¡ï¼èä¸æ¯å级ç¼å"
+
+msgid "searchPackages() will go away in a future version of Yum. Use searchGenerator() instead. \n"
+msgstr "searchPackages() å°å¨YUMæªæ¥ççæ¬ä¸æ¶å¤±. ç¨ searchGenerator()æ¿ä»£. \n"
+
+msgid "searching in file entries"
+msgstr "searching in file entries"
+
+msgid "searching in provides entries"
+msgstr "å¨å¯æä¾çå
¥å£æ¥è¯¢"
+
+msgid "searching package %s"
+msgstr "æ¥è¯¢å
ï¼ %s"
+
+msgid "set install root"
+msgstr "设置为rootå®è£
"
+
+msgid "show Yum version and exit"
+msgstr "æ¾ç¤º YUMçæ¬ä¿¡æ¯å¹¶éåº"
+
+msgid "show duplicates, in repos, in list/search commands"
+msgstr "æ¾ç¤ºå¤å¶, å¨repo,list/searchå½ä»¤ä¸"
+
+msgid "skip packages with depsolving problems"
+msgstr "忽ç¥å
çä¾èµé®é¢"
+
+msgid "status"
+msgstr "ç¶æ"
+
+msgid "therefore this repo cannot be reset.\n"
+msgstr "å æ¤æ¤repoä¸è½å¤ä½.\n"
+
+msgid "updated"
+msgstr "å级"
+
+msgid "user interrupt"
+msgstr "ç¨æ·ä¸æ"
+
+msgid "using local copy of %s"
+msgstr "å¨æ¬å°å¤å¶ %s"
+
+msgid "y"
+msgstr "Y"
+
+msgid "yes"
+msgstr "æ¯"
+
commit cea78872b3caa01666db88bec1c75a876e6cd207
Author: James Antill <james at and.org>
Date: Thu Aug 14 15:16:40 2008 -0400
Fix stupid missing line from _group_names2aipkgs conversion
diff --git a/output.py b/output.py
index 23334a5..99e09e9 100644
--- a/output.py
+++ b/output.py
@@ -431,6 +431,7 @@ class YumOutput:
# Convert (pkg.name, pkg.arch) to pkg.name dict
ret = {}
for (apkg, ipkg) in pkgs.itervalues():
+ pkg = apkg or ipkg
ret.setdefault(pkg.name, []).append((apkg, ipkg))
return ret
commit 890e0d56989d13de15c36ca21c9ade2e3a9b7573
Author: James Antill <james at and.org>
Date: Thu Aug 14 10:02:18 2008 -0400
Add comments about the previous bug, and better long term. fix
diff --git a/cli.py b/cli.py
index 7bc2042..525df1a 100644
--- a/cli.py
+++ b/cli.py
@@ -531,6 +531,11 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
_('No package %s available.'), arg)
matches = self.doPackageLists('available', patterns=[arg],
ignore_case=True)
+ # The problem here is that if this is the second time around
+ # then we've already pre-cached the results from doPackageLists
+ # to be all the available pkgs. So we need to match.
+ # FIXME: Really we should probably put this in
+ # doPackageLists() / returnPackages() when we have a pattern.
matches = matches.available
exactmatch, matched, unmatched = parsePackages(matches, [arg])
matches = yum.misc.unique(exactmatch + matched)
@@ -643,6 +648,9 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
ignore_case=True)
# This is mostly leftover from when patterns didn't exist
+ # FIXME: However when returnPackages() has already been run, we
+ # don't process teh patterns args. ... we should fix that in
+ # returnPackages() etc.
def _shrinklist(lst, args):
if len(lst) > 0 and len(args) > 0:
self.verbose_logger.log(yum.logginglevels.DEBUG_1,
commit 0206788b81b8bb539c49c6957fa8049228538c3d
Author: James Antill <james at and.org>
Date: Thu Aug 14 09:35:38 2008 -0400
Fix "full" available list by using parsePackages, bug 459076
diff --git a/cli.py b/cli.py
index c3cbc36..7bc2042 100644
--- a/cli.py
+++ b/cli.py
@@ -531,7 +531,10 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
_('No package %s available.'), arg)
matches = self.doPackageLists('available', patterns=[arg],
ignore_case=True)
- matches = set(map(lambda x: x.name, matches.available))
+ matches = matches.available
+ exactmatch, matched, unmatched = parsePackages(matches, [arg])
+ matches = yum.misc.unique(exactmatch + matched)
+ matches = set(map(lambda x: x.name, matches))
if matches:
msg = self.fmtKeyValFill(_(' * Maybe you meant: '),
", ".join(matches))
@@ -644,7 +647,7 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
if len(lst) > 0 and len(args) > 0:
self.verbose_logger.log(yum.logginglevels.DEBUG_1,
_('Matching packages for package list to user args'))
- exactmatch, matched, unmatched = yum.packages.parsePackages(lst, args)
+ exactmatch, matched, unmatched = parsePackages(lst, args)
return yum.misc.unique(matched + exactmatch)
else:
return lst
commit 478c407d1779613133ea76ef2d1ff1118b68b753
Author: James Antill <james at and.org>
Date: Wed Aug 13 15:24:22 2008 -0400
First attempt at a parser for the new MirrorManager MetaLink output.
Anyone relying on this API atm. is liable for a free stabbing.
This just parses the data into a usable form, hooking it into
yumRepos is not done, neither is the metalink= [urls] repo. config.
variable.
diff --git a/yum/metalink.py b/yum/metalink.py
new file mode 100755
index 0000000..9aa210a
--- /dev/null
+++ b/yum/metalink.py
@@ -0,0 +1,251 @@
+#!/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 2008 Red Hat
+#
+# James Antill <james at fedoraproject.org>
+
+# Parse the new MirrorManager metalink output:
+
+import sys
+print >>sys.stderr, "Warning: Relying on the API to be stable is not recommended, yet."
+
+import os
+import time
+from urlgrabber.progress import format_number
+
+try:
+ from xml.etree import cElementTree
+except ImportError:
+ import cElementTree
+xmlparse = cElementTree.parse
+
+class MetaLinkRepoErrorParseFail:
+ """ An exception thrown for an unparsable MetaLinkRepoMD file. """
+ pass
+
+__XML_NS_ML__ = 'http://www.metalinker.org/'
+__XML_NS_MM__ = 'http://fedorahosted.org/mirrormanager'
+__XML_FMT__ = {'ml' : __XML_NS_ML__,
+ 'mm' : __XML_NS_MM__}
+
+__ML_FILE_ELEMENT__ = """\
+{%(ml)s}files/{%(ml)s}file\
+""" % __XML_FMT__
+__ML_OLD_FILE_ELEMENTS__ = """\
+{%(mm)s}alternates/{%(mm)s}alternate\
+""" % __XML_FMT__
+__ML_RESOURCES__ = """\
+{%(ml)s}resources\
+""" % __XML_FMT__
+
+class MetaLinkFile:
+ """ Parse the file metadata out of a metalink file. """
+
+ def __init__(self, elem):
+ chksums = set(["md5", 'sha1', 'sha256', 'sha512'])
+
+ for celem in elem:
+ if False: pass
+ elif celem.tag == "{%s}timestamp" % __XML_NS_MM__:
+ self.timestamp = int(celem.text)
+ elif celem.tag == "{%s}size" % __XML_NS_ML__:
+ self.size = int(celem.text)
+ elif celem.tag == "{%s}verification" % __XML_NS_ML__:
+ self.chksums = {}
+ for helem in celem:
+ if (helem.tag == "{%s}hash" % __XML_NS_ML__ and
+ helem.get("type") in chksums):
+ self.chksums[helem.get("type").lower()] = helem.text
+
+ if not hasattr(self, 'timestamp'):
+ raise MetaLinkRepoErrorParseFail, "No timestamp for file"
+ if not hasattr(self, 'size'):
+ raise MetaLinkRepoErrorParseFail, "No size for file"
+ if not hasattr(self, 'chksums'):
+ raise MetaLinkRepoErrorParseFail, "No verifications for file"
+
+ def __str__(self):
+ return """\
+Timestamp: %s
+Size: %5s (%d)
+MD5: %s
+SHA1: %s
+SHA256: %s
+SHA512: %s
+""" % (time.ctime(self.timestamp), format_number(self.size), self.size,
+ self.md5, self.sha1, self.sha256, self.sha512)
+
+ def _get_md5(self):
+ return self.chksums.get('md5', '')
+ md5 = property(_get_md5)
+ def _get_sha1(self):
+ return self.chksums.get('sha1', '')
+ sha1 = property(_get_sha1)
+ def _get_sha256(self):
+ return self.chksums.get('sha256', '')
+ sha256 = property(_get_sha256)
+ def _get_sha512(self):
+ return self.chksums.get('sha512', '')
+ sha512 = property(_get_sha512)
+
+ def __cmp__(self, other):
+ if other is None:
+ return 1
+ ret = cmp(self.timestamp, other.timestamp)
+ if ret:
+ return -ret
+ ret = cmp(self.size, other.size)
+ if ret:
+ return ret
+ ret = cmp(self.md5, other.md5)
+ if ret:
+ return ret
+ ret = cmp(self.sha1, other.sha1)
+ if ret:
+ return ret
+ ret = cmp(self.sha256, other.sha256)
+ if ret:
+ return ret
+ ret = cmp(self.sha512, other.sha512)
+ if ret:
+ return ret
+ return 0
+
+
+class MetaLinkURL:
+ """ Parse the URL metadata out of a metalink file. """
+
+ def __init__(self, elem, max_connections):
+ assert elem.tag == '{%s}url' % __XML_NS_ML__
+
+ self.max_connections = max_connections
+
+ self.url = elem.text
+ self.preference = int(elem.get("preference", -1))
+ self.protocol = elem.get("protocol")
+ self.location = elem.get("location")
+
+ def __str__(self):
+ return """\
+URL: %s
+Preference: %d
+Max-Connections: %d
+Protocol: %s
+Location: %s
+""" % (self.url, self.preference, self.max_connections,
+ self.protocol, self.location)
+
+ def __cmp__(self, other):
+ if other is None:
+ return 1
+ ret = cmp(self.preference, other.preference)
+ if ret:
+ return -ret
+ ret = cmp(self.protocol == "https", other.protocol == "https")
+ if ret:
+ return -ret
+ ret = cmp(self.protocol == "http", other.protocol == "http")
+ if ret:
+ return -ret
+ return cmp(self.url, other.url)
+
+ def usable(self):
+ if self.protocol is None:
+ return False
+ if not self.url:
+ return False
+ return True
+
+class MetaLinkRepoMD:
+ """ Parse a metalink file for repomd.xml. """
+
+ def __init__(self, filename):
+ self.name = None
+ self.repomd = None
+ self.old_repomds = []
+ self.mirrors = []
+ root = xmlparse(filename)
+
+ for elem in root.findall(__ML_FILE_ELEMENT__):
+ name = elem.get('name')
+ if os.path.basename(name) != 'repomd.xml':
+ continue
+
+ if self.name is not None and self.name != name:
+ raise MetaLinkRepoErrorParseFail, "Different paths for repomd file"
+ self.name = name
+
+ repomd = MetaLinkFile(elem)
+
+ if self.repomd is not None and self.repomd != repomd:
+ raise MetaLinkRepoErrorParseFail, "Different data for repomd file"
+ self.repomd = repomd
+
+ for celem in elem.findall(__ML_OLD_FILE_ELEMENTS__):
+ self.old_repomds.append(MetaLinkFile(celem))
+
+ for celem in elem.findall(__ML_RESOURCES__):
+ max_connections = int(celem.get("maxconnections"))
+ for uelem in celem:
+ if uelem.tag == "{%s}url" % __XML_NS_ML__:
+ self.mirrors.append(MetaLinkURL(uelem, max_connections))
+
+ self.old_repomds.sort()
+ self.mirrors.sort()
+
+ if self.repomd is None:
+ raise MetaLinkRepoErrorParseFail, "No repomd file"
+ if len(self.mirrors) < 1:
+ raise MetaLinkRepoErrorParseFail, "No mirror"
+
+ def __str__(self):
+ ret = str(self.repomd)
+ done = False
+ for orepomd in self.old_repomds:
+ if not done: ret += "%s\n" % ("-" * 79)
+ if done: ret += "\n"
+ done = True
+ ret += str(orepomd)
+ done = False
+ for url in self.mirrors:
+ if not done: ret += "%s\n" % ("-" * 79)
+ if done: ret += "\n"
+ done = True
+ ret += str(url)
+ return ret
+
+
+def main():
+ """ MetaLinkRepoMD test function. """
+
+ def usage():
+ print >> sys.stderr, "Usage: %s <metalink> ..." % sys.argv[0]
+ sys.exit(1)
+
+ if len(sys.argv) < 2:
+ usage()
+
+ for filename in sys.argv[1:]:
+ if not os.path.exists(filename):
+ print "No such file:", filename
+ continue
+
+ print "File:", filename
+ print MetaLinkRepoMD(filename)
+ print ''
+
+if __name__ == '__main__':
+ main()
commit b98343cb003280bbc2b4a81783c2b39d804020c6
Merge: 2d835c7... 381aba7...
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Wed Aug 13 12:05:44 2008 -0400
Merge branch 'yum-3_2_X' of ssh://login.linux.duke.edu/home/groups/yum/git/yum into yum-3_2_X
* 'yum-3_2_X' of ssh://login.linux.duke.edu/home/groups/yum/git/yum:
Delete some old, misleading, comments in returnPkgLists
Add highlighting to packages which have updates in list commands,
Minor extra fixes for non-existant args. in doPackageLists, these are only
commit 2d835c751e3e476c07f1649f08cf3cd34f22ac16
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Wed Aug 13 12:05:24 2008 -0400
merge over the bits from createrepo to let us dump xml data from YumLocalPackage objects
diff --git a/yum/packages.py b/yum/packages.py
index 9c05596..9cb5c19 100644
--- a/yum/packages.py
+++ b/yum/packages.py
@@ -30,8 +30,10 @@ import warnings
from rpmUtils import RpmUtilsError
import rpmUtils.arch
import rpmUtils.miscutils
+from rpmUtils.miscutils import flagToString, stringToVersion
import Errors
import errno
+import struct
import urlparse
urlparse.uses_fragment.append("media")
@@ -818,7 +820,7 @@ class YumAvailablePackage(PackageObject, RpmBase):
mylist = getattr(self, pcotype)
if mylist: msg = "\n <rpm:%s>\n" % pcotype
for (name, flags, (e,v,r)) in mylist:
- pcostring = ''' <rpm:entry name="%s"''' % name
+ pcostring = ''' <rpm:entry name="%s"''' % misc.to_xml(name, attrib=True)
if flags:
pcostring += ''' flags="%s"''' % flags
if e:
@@ -903,7 +905,7 @@ class YumAvailablePackage(PackageObject, RpmBase):
for (name, flags, (e,v,r),pre) in mylist:
if name.startswith('rpmlib('):
continue
- prcostring = ''' <rpm:entry name="%s"''' % name
+ prcostring = ''' <rpm:entry name="%s"''' % misc.to_xml(name, attrib=True)
if flags:
prcostring += ''' flags="%s"''' % flags
if e:
@@ -931,7 +933,8 @@ class YumAvailablePackage(PackageObject, RpmBase):
break
clog_count += 1
msg += '''<changelog author="%s" date="%s">%s</changelog>\n''' % (
- misc.to_xml(author, attrib=True), str(ts), misc.to_xml(content))
+ misc.to_xml(author, attrib=True), str(ts),
+ misc.to_xml(content))
return msg
def xml_dump_primary_metadata(self):
@@ -1462,10 +1465,20 @@ class YumLocalPackage(YumHeaderPackage):
YumHeaderPackage.__init__(self, fakerepo, hdr)
self.id = self.pkgid
self._stat = os.stat(self.localpath)
- self.filetime = str(self._stat[-1])
+ self.filetime = str(self._stat[-2])
self.packagesize = str(self._stat[6])
self.arch = self.isSrpm()
self.pkgtup = (self.name, self.arch, self.epoch, self.ver, self.rel)
+ self._hdrstart = None
+ self._hdrend = None
+ self.arch = self.isSrpm()
+ self.checksum_type = 'sha'
+
+ # these can be set by callers that need these features (ex: createrepo)
+ self._reldir = None
+ self._baseurl = ""
+ # self._packagenumber will be needed when we do sqlite creation here
+
def isSrpm(self):
if self.tagByName('sourcepackage') == 1 or not self.tagByName('sourcerpm'):
@@ -1482,6 +1495,75 @@ class YumLocalPackage(YumHeaderPackage):
return self._checksum
- checksum = property(fget=lambda self: self._do_checksum())
+ checksum = property(fget=lambda self: self._do_checksum())
+ def _get_header_byte_range(self):
+ """takes an rpm file or fileobject and returns byteranges for location of the header"""
+ if self._hdrstart and self._hdrend:
+ return (self._hdrstart, self._hdrend)
+
+
+ fo = open(self.localpath, 'r')
+ #read in past lead and first 8 bytes of sig header
+ fo.seek(104)
+ # 104 bytes in
+ binindex = fo.read(4)
+ # 108 bytes in
+ (sigindex, ) = struct.unpack('>I', binindex)
+ bindata = fo.read(4)
+ # 112 bytes in
+ (sigdata, ) = struct.unpack('>I', bindata)
+ # each index is 4 32bit segments - so each is 16 bytes
+ sigindexsize = sigindex * 16
+ sigsize = sigdata + sigindexsize
+ # we have to round off to the next 8 byte boundary
+ disttoboundary = (sigsize % 8)
+ if disttoboundary != 0:
+ disttoboundary = 8 - disttoboundary
+ # 112 bytes - 96 == lead, 8 = magic and reserved, 8 == sig header data
+ hdrstart = 112 + sigsize + disttoboundary
+
+ fo.seek(hdrstart) # go to the start of the header
+ fo.seek(8,1) # read past the magic number and reserved bytes
+
+ binindex = fo.read(4)
+ (hdrindex, ) = struct.unpack('>I', binindex)
+ bindata = fo.read(4)
+ (hdrdata, ) = struct.unpack('>I', bindata)
+
+ # each index is 4 32bit segments - so each is 16 bytes
+ hdrindexsize = hdrindex * 16
+ # add 16 to the hdrsize to account for the 16 bytes of misc data b/t the
+ # end of the sig and the header.
+ hdrsize = hdrdata + hdrindexsize + 16
+
+ # header end is hdrstart + hdrsize
+ hdrend = hdrstart + hdrsize
+ fo.close()
+ self._hdrstart = hdrstart
+ self._hdrend = hdrend
+
+ return (hdrstart, hdrend)
+
+ hdrend = property(fget=lambda self: self._get_header_byte_range()[1])
+ hdrstart = property(fget=lambda self: self._get_header_byte_range()[0])
+
+ def _return_remote_location(self):
+
+ # if we start seeing fullpaths in the location tag - this is the culprit
+ if self._reldir and self.localpath.startswith(self._reldir):
+ relpath = self.localpath.replace(self._reldir, '')
+ if relpath[0] == '/': relpath = relpath[1:]
+ else:
+ relpath = self.localpath
+
+ if self._baseurl:
+ msg = """<location xml:base="%s" href="%s"/>\n""" % (
+ misc.to_xml(self._baseurl, attrib=True),
+ misc.to_xml(relpath, attrib=True))
+ else:
+ msg = """<location href="%s"/>\n""" % misc.to_xml(relpath, attrib=True)
+
+ return msg
+
commit 381aba7da0c4aad2bb1a7ef8d360f205b7cfb8be
Author: James Antill <james at and.org>
Date: Wed Aug 13 10:55:18 2008 -0400
Delete some old, misleading, comments in returnPkgLists
diff --git a/cli.py b/cli.py
index 90e5e44..c3cbc36 100644
--- a/cli.py
+++ b/cli.py
@@ -638,10 +638,8 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
ypl = self.doPackageLists(pkgnarrow=pkgnarrow, patterns=extcmds,
ignore_case=True)
- # rework the list output code to know about:
- # obsoletes output
- # the updates format
+ # This is mostly leftover from when patterns didn't exist
def _shrinklist(lst, args):
if len(lst) > 0 and len(args) > 0:
self.verbose_logger.log(yum.logginglevels.DEBUG_1,
@@ -658,12 +656,6 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
ypl.extras = _shrinklist(ypl.extras, extcmds)
ypl.obsoletes = _shrinklist(ypl.obsoletes, extcmds)
-# for lst in [ypl.obsoletes, ypl.updates]:
-# if len(lst) > 0 and len(extcmds) > 0:
-# self.logger.log(4, 'Matching packages for tupled package list to user args')
-# for (pkg, instpkg) in lst:
-# exactmatch, matched, unmatched = yum.packages.parsePackages(lst, extcmds)
-
return ypl
def search(self, args):
commit f84343903b4325d94ee480b77646cd5ff0d568a1
Author: James Antill <james at and.org>
Date: Wed Aug 13 10:51:36 2008 -0400
Add highlighting to packages which have updates in list commands,
like list/info/groupinfo. Add some helper functions.
This makes it more obvious what is "available to install" and what is
"available to update".
We also only do the processiing when we have the installed+available
this is a feature.
diff --git a/output.py b/output.py
index 212937a..23334a5 100644
--- a/output.py
+++ b/output.py
@@ -245,21 +245,34 @@ class YumOutput:
def simpleProgressBar(self, current, total, name=None):
progressbar(current, total, name)
-
- def simpleList(self, pkg, ui_overflow=False):
+
+ def _highlight(self, highlight):
+ if highlight:
+ hibeg = self.term.MODE['bold']
+ hiend = self.term.MODE['normal']
+ else:
+ hibeg = ''
+ hiend = ''
+ return (hibeg, hiend)
+
+ def simpleList(self, pkg, ui_overflow=False, indent='', highlight=False):
+ (hibeg, hiend) = self._highlight(highlight)
ver = pkg.printVer()
- na = '%s.%s' % (pkg.name, pkg.arch)
- if ui_overflow and len(na) > 40:
- print "%s %s" % (na, "...")
+ na = '%s%s.%s' % (indent, pkg.name, pkg.arch)
+ if ui_overflow and (len(na) - (len(hibeg) + len(hiend))) > 40:
+ print "%s%s%s %s" % (hibeg, na, hiend, "...")
na = ""
- print "%-40.40s %-22.22s %-16.16s" % (na, ver, pkg.repoid)
-
- def simpleEnvraList(self, pkg, ui_overflow=False, indent=''):
- envra = "%s%s" % (indent, str(pkg))
- if ui_overflow and len(envra) > 63:
- print "%s %s" % (envra, "...")
+ print "%s%-40.40s%s %-22.22s %-16.16s" % (hibeg, na, hiend,
+ ver, pkg.repoid)
+
+ def simpleEnvraList(self, pkg, ui_overflow=False,
+ indent='', highlight=False):
+ (hibeg, hiend) = self._highlight(highlight)
+ envra = '%s%s' % (indent, str(pkg))
+ if ui_overflow and (len(envra) - (len(hibeg) + len(hiend))) > 63:
+ print "%s%s%s %s" % (hibeg, envra, hiend, "...")
envra = ""
- print "%-63.63s %-16.16s" % (envra, pkg.repoid)
+ print "%s%-63.63s%s %-16.16s" % (hibeg, envra, hiend, pkg.repoid)
def fmtKeyValFill(self, key, val):
""" Return a key value pair in the common two column output format. """
@@ -300,8 +313,9 @@ class YumOutput:
break
return to_unicode(s)
- def infoOutput(self, pkg):
- print _("Name : %s") % pkg.name
+ def infoOutput(self, pkg, highlight=False):
+ (hibeg, hiend) = self._highlight(highlight)
+ print _("Name : %s%s%s") % (hibeg, pkg.name, hiend)
print _("Arch : %s") % pkg.arch
if pkg.epoch != "0":
print _("Epoch : %s") % pkg.epoch
@@ -333,21 +347,25 @@ class YumOutput:
# FIXME - other ideas for how to print this out?
print '%-35.35s [%.12s] %.10s %-20.20s' % (c_compact, c_repo, changetype, i_compact)
- def listPkgs(self, lst, description, outputType):
+ def listPkgs(self, lst, description, outputType, highlight_na={}):
"""outputs based on whatever outputType is. Current options:
'list' - simple pkg list
- 'info' - similar to rpm -qi output"""
-
+ 'info' - similar to rpm -qi output
+ ...also highlight_na can be passed, and we'll highlight
+ pkgs with (names, arch) in that set."""
+
if outputType in ['list', 'info']:
thingslisted = 0
if len(lst) > 0:
thingslisted = 1
print '%s' % description
for pkg in sorted(lst):
+ highlight = (pkg.name, pkg.arch) in highlight_na
if outputType == 'list':
- self.simpleList(pkg, ui_overflow=True)
+ self.simpleList(pkg, ui_overflow=True,
+ highlight=highlight)
elif outputType == 'info':
- self.infoOutput(pkg)
+ self.infoOutput(pkg, highlight=highlight)
else:
pass
@@ -392,25 +410,28 @@ class YumOutput:
# FIXME what should we be printing here?
return self.userconfirm()
- def _group_names2pkgs(self, pkg_names):
- # Convert pkg_names to installed pkgs and available pkgs
+ def _group_names2aipkgs(self, pkg_names):
+ """ Convert pkg_names to installed pkgs or available pkgs, return
+ value is a dict on pkg.name returning (apkg, ipkg). """
ipkgs = self.rpmdb.searchNames(pkg_names)
apkgs = self.pkgSack.searchNames(pkg_names)
apkgs = packagesNewestByNameArch(apkgs)
- # FIXME: Basically doPackageLists('all') behaviour
+ # This is somewhat similar to doPackageLists()
pkgs = {}
for pkg in ipkgs:
- pkgs[(pkg.name, pkg.arch)] = pkg
+ pkgs[(pkg.name, pkg.arch)] = (None, pkg)
for pkg in apkgs:
key = (pkg.name, pkg.arch)
- if key not in pkgs or pkg.verGT(pkgs[key]):
- pkgs[(pkg.name, pkg.arch)] = pkg
+ if key not in pkgs:
+ pkgs[(pkg.name, pkg.arch)] = (pkg, None)
+ elif pkg.verGT(pkgs[key][1]):
+ pkgs[(pkg.name, pkg.arch)] = (pkg, pkgs[key][1])
# Convert (pkg.name, pkg.arch) to pkg.name dict
ret = {}
- for pkg in pkgs.itervalues():
- ret.setdefault(pkg.name, []).append(pkg)
+ for (apkg, ipkg) in pkgs.itervalues():
+ ret.setdefault(pkg.name, []).append((apkg, ipkg))
return ret
def _displayPkgsFromNames(self, pkg_names, verbose, pkg_names2pkgs,
@@ -423,8 +444,10 @@ class YumOutput:
if item not in pkg_names2pkgs:
print '%s%s' % (indent, item)
continue
- for pkg in sorted(pkg_names2pkgs[item]):
- self.simpleEnvraList(pkg, ui_overflow=True, indent=indent)
+ for (apkg, ipkg) in sorted(pkg_names2pkgs[item],
+ key=lambda x: x[1] or x[0]):
+ self.simpleEnvraList(ipkg or apkg, ui_overflow=True,
+ indent=indent, highlight=ipkg and apkg)
def displayPkgsInGroups(self, group):
mylang = get_my_lang_code()
@@ -433,7 +456,7 @@ class YumOutput:
verb = self.verbose_logger.isEnabledFor(logginglevels.DEBUG_3)
pkg_names2pkgs = None
if verb:
- pkg_names2pkgs = self._group_names2pkgs(group.packages)
+ pkg_names2pkgs = self._group_names2aipkgs(group.packages)
if group.descriptionByLang(mylang) != "":
print _(' Description: %s') % to_unicode(group.descriptionByLang(mylang))
if len(group.mandatory_packages) > 0:
diff --git a/yumcommands.py b/yumcommands.py
index 2244ddb..f705e24 100644
--- a/yumcommands.py
+++ b/yumcommands.py
@@ -212,7 +212,12 @@ class InfoCommand(YumCommand):
except yum.Errors.YumBaseError, e:
return 1, [str(e)]
else:
- rip = base.listPkgs(ypl.installed, _('Installed Packages'), basecmd)
+ if ypl.installed:
+ update_pkgs = set([(po.name, po.arch) for po in ypl.available])
+ else:
+ update_pkgs = set()
+ rip = base.listPkgs(ypl.installed, _('Installed Packages'), basecmd,
+ highlight_na=update_pkgs)
rap = base.listPkgs(ypl.available, _('Available Packages'), basecmd)
rep = base.listPkgs(ypl.extras, _('Extra Packages'), basecmd)
rup = base.listPkgs(ypl.updates, _('Updated Packages'), basecmd)
commit c15e86d0361988a21bf5dd0136c4a14a84c0df65
Author: James Antill <james at and.org>
Date: Tue Aug 12 13:46:49 2008 -0400
Minor extra fixes for non-existant args. in doPackageLists, these are only
really noticable from the API.
diff --git a/yum/__init__.py b/yum/__init__.py
index e1a044a..85b9fe9 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -1434,8 +1434,11 @@ class YumBase(depsolve.Depsolve):
avail = self.pkgSack.returnPackages(patterns=patterns,
ignore_case=ic)
else:
- avail = self.pkgSack.returnNewestByNameArch(patterns=patterns,
- ignore_case=ic)
+ try:
+ avail = self.pkgSack.returnNewestByNameArch(patterns=patterns,
+ ignore_case=ic)
+ except Errors.PackageSackError:
+ avail = []
for pkg in avail:
if showdups:
@@ -1446,7 +1449,6 @@ class YumBase(depsolve.Depsolve):
if not ipkgs or pkg.verGT(sorted(ipkgs, reverse=True)[0]):
available.append(pkg)
-
# not in a repo but installed
elif pkgnarrow == 'extras':
# we must compare the installed set versus the repo set
@@ -1479,8 +1481,11 @@ class YumBase(depsolve.Depsolve):
avail = self.pkgSack.returnPackages(patterns=patterns,
ignore_case=ic)
else:
- avail = self.pkgSack.returnNewestByNameArch(patterns=patterns,
- ignore_case=ic)
+ try:
+ avail = self.pkgSack.returnNewestByNameArch(patterns=patterns,
+ ignore_case=ic)
+ except Errors.PackageSackError:
+ avail = []
for po in avail:
ftime = int(po.filetime)
commit 426ef949a01412a84c35f81516f2caaa033718b3
Merge: b9306c5... 6da1115...
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Tue Aug 12 10:14:59 2008 -0400
Merge branch 'yum-3_2_X' of ssh://login.linux.duke.edu/home/groups/yum/git/yum into yum-3_2_X
* 'yum-3_2_X' of ssh://login.linux.duke.edu/home/groups/yum/git/yum:
Dynamically balance the field widths in listTransaction().
Tweak output of the transaction, helps RHEL a lot due to long repoids
commit b9306c5d867ee26ac0f0c63c9a510b637289ff94
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Tue Aug 12 10:14:43 2008 -0400
fix for the conditional pkgs installing too much but this time in an API-compliant way :)
diff --git a/yum/__init__.py b/yum/__init__.py
index 3457dfb..e1a044a 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -1898,14 +1898,22 @@ class YumBase(depsolve.Depsolve):
continue
# Otherwise we hook into tsInfo.add
pkgs = self.pkgSack.searchNevra(name=condreq)
- if pkgs:# if there's anything as a result then we push
- # the name into tsInfo so that when we call install
- # on it it passes through the normal install() call
- if self.tsInfo.conditionals.has_key(cond):
- self.tsInfo.conditionals[cond].append(condreq)
- else:
- self.tsInfo.conditionals[cond] = [condreq]
-
+ if pkgs:
+ if rpmUtils.arch.isMultiLibArch():
+ if self.conf.multilib_policy == 'best':
+ use = []
+ best = rpmUtils.arch.legitMultiArchesInSameLib()
+ best.append('noarch')
+ for pkg in pkgs:
+ if pkg.arch in best:
+ use.append(pkg)
+ pkgs = use
+
+ pkgs = packagesNewestByNameArch(pkgs)
+
+ if not self.tsInfo.conditionals.has_key(cond):
+ self.tsInfo.conditionals[cond] = []
+ self.tsInfo.conditionals[cond].extend(pkgs)
return txmbrs_used
def deselectGroup(self, grpid):
diff --git a/yum/transactioninfo.py b/yum/transactioninfo.py
index 6dd92b8..5a843fd 100644
--- a/yum/transactioninfo.py
+++ b/yum/transactioninfo.py
@@ -193,10 +193,10 @@ class TransactionData:
self.pkgSackPackages += 1
if self.conditionals.has_key(txmember.name):
- for pkg_name in self.conditionals[txmember.name]:
- if self.rpmdb.contains(name=pkg_name):
+ for pkg in self.conditionals[txmember.name]:
+ if self.rpmdb.contains(po=pkg):
continue
- for condtxmbr in self.install_method(name=pkg_name):
+ for condtxmbr in self.install_method(po=pkg):
condtxmbr.setAsDep(po=txmember.po)
self._unresolvedMembers.add(txmember)
commit 6da1115fa919e59e8eb82a65b602fec35c385559
Author: James Antill <james at and.org>
Date: Mon Aug 11 23:46:43 2008 -0400
Dynamically balance the field widths in listTransaction().
We try and make as many lines as possible not "overflow"
Also when they do overflow, it's slightly better to do so on the left.
This helps the weird cases like long package names or long evr's a lot.
Also RHEL with it's 30+ character repoid's.
This is a lot of code to print the transaction now, _but_ it's always
the same code path so if it works once it should always do so. Of
course, in theory, it's possible for it to look worse than before.
diff --git a/output.py b/output.py
index 4176925..212937a 100644
--- a/output.py
+++ b/output.py
@@ -609,25 +609,66 @@ class YumOutput:
"""returns a string rep of the transaction in an easy-to-read way."""
self.tsInfo.makelists()
- # Tweak the lengths below using:
- # http://fedorapeople.org/~james/yum/commands/length_distributions.py
- if len(self.tsInfo) > 0:
- out = u"""
-================================================================================
- %-22s %-6s %-20s %-21s %-5s
-================================================================================
-""" % (_('Package'), _('Arch'), _('Version'), _('Repository'), _('Size'))
- else:
- out = u""
+ out = u""
+ pkglist_lines = []
+ # Tried to do this statically using:
+ # http://fedorapeople.org/~james/yum/commands/length_distributions.py
+ # but it sucked for corner cases, so this is dynamic...
+
+ def _spaces_helps(current, data_tups, left):
+ """ Spaces left on the current field will help how many pkgs? """
+ ret = 0
+ for tup in data_tups:
+ if left < (tup[0] - current):
+ break
+ ret += tup[1]
+ return ret
+ def _calc_widths(data, a_wid):
+ """ Dynamically calc. the width of the four fields. """
+ # Convert the dict to ascending list of tuples, (field_length, pkgs)
+ for d in ("n", "v", "r"):
+ data[d] = sorted(data[d].items())
+
+ wid = {'n' : 1, 'v' : 1, 'r' : 1}
+ left = 69 - (a_wid + wid['n'] + wid['v'] + wid['r'])
+ while left > 0:
+ # Find which field all the spaces left will help best
+ helps = 0
+ val = 'n'
+ for d in ("n", "v", "r"):
+ thelps = _spaces_helps(wid[d], data[d], left)
+ if not thelps:
+ continue
+ if thelps < helps:
+ continue
+ helps = thelps
+ val = d
+
+ # If we found one, move up to the next level with that field
+ if helps:
+ diff = data[val].pop(0)[0] - wid[val]
+ wid[val] += diff
+ left -= diff
+ continue
+
+ # Split the remaining spaces among each field
+ wid['n'] += left / 4
+ a_wid += left / 4
+ wid['v'] += left / 4
+ wid['r'] += left - (3 * (left / 4))
+ left = 0
+
+ return (wid['n'], a_wid, wid['v'], wid['r'])
+ data = {'n' : {}, 'v' : {}, 'r' : {}}
+ a_wid = 0 # Arch can't get "that big" ... so always use the max.
for (action, pkglist) in [(_('Installing'), self.tsInfo.installed),
(_('Updating'), self.tsInfo.updated),
(_('Removing'), self.tsInfo.removed),
(_('Installing for dependencies'), self.tsInfo.depinstalled),
(_('Updating for dependencies'), self.tsInfo.depupdated),
(_('Removing for dependencies'), self.tsInfo.depremoved)]:
- if pkglist:
- totalmsg = u"%s:\n" % action
+ lines = []
for txmbr in pkglist:
(n,a,e,v,r) = txmbr.pkgtup
evr = txmbr.po.printVer()
@@ -635,9 +676,34 @@ class YumOutput:
pkgsize = float(txmbr.po.size)
size = self.format_number(pkgsize)
+ lines.append((n, a, evr, repoid, size, txmbr.obsoletes))
+ # Create a dict of field_length => number of packages, for
+ # each field.
+ for (d, v) in (("n",len(n)), ("v",len(evr)), ("r",len(repoid))):
+ data[d].setdefault(v, 0)
+ data[d][v] += 1
+ if a_wid < len(a): # max() is only in 2.5.z
+ a_wid = len(a)
+
+ pkglist_lines.append((action, lines))
+
+ if data['n']:
+ (n_wid, a_wid, v_wid, r_wid) = _calc_widths(data, a_wid)
+ out = u"""
+================================================================================
+ %-*s %-*s %-*s %-*s %-5s
+================================================================================
+""" % (n_wid, _('Package'), a_wid, _('Arch'),
+ v_wid, _('Version'), r_wid, _('Repository'), _('Size'))
+
+ for (action, lines) in pkglist_lines:
+ if lines:
+ totalmsg = u"%s:\n" % action
+ for (n, a, evr, repoid, size, obsoletes) in lines:
total_width = 1
msg = u' '
- for (val, width) in ((n, 22), (a, 6), (evr, 20), (repoid, 21)):
+ for (val, width) in ((n, n_wid), (a, a_wid),
+ (evr, v_wid), (repoid, r_wid)):
if len(val) <= width:
msg += u"%%-%ds " % width
else:
@@ -646,13 +712,13 @@ class YumOutput:
total_width += 1
msg += u"%5s\n"
msg %= (n, a, evr, repoid, size)
- for obspo in txmbr.obsoletes:
+ for obspo in obsoletes:
appended = _(' replacing %s.%s %s\n\n') % (obspo.name,
obspo.arch, obspo.printVer())
msg = msg+appended
totalmsg = totalmsg + msg
- if pkglist:
+ if lines:
out = out + totalmsg
summary = _("""
commit aeaf03cabedeb65043fd1cf15d990902412e25e1
Author: James Antill <james at and.org>
Date: Mon Aug 11 14:54:08 2008 -0400
Tweak output of the transaction, helps RHEL a lot due to long repoids
diff --git a/output.py b/output.py
index ed4645f..4176925 100644
--- a/output.py
+++ b/output.py
@@ -609,11 +609,13 @@ class YumOutput:
"""returns a string rep of the transaction in an easy-to-read way."""
self.tsInfo.makelists()
+ # Tweak the lengths below using:
+ # http://fedorapeople.org/~james/yum/commands/length_distributions.py
if len(self.tsInfo) > 0:
out = u"""
-=============================================================================
- %-22s %-9s %-15s %-16s %-5s
-=============================================================================
+================================================================================
+ %-22s %-6s %-20s %-21s %-5s
+================================================================================
""" % (_('Package'), _('Arch'), _('Version'), _('Repository'), _('Size'))
else:
out = u""
@@ -635,7 +637,7 @@ class YumOutput:
total_width = 1
msg = u' '
- for (val, width) in ((n, 23), (a, 10), (evr, 16), (repoid, 17)):
+ for (val, width) in ((n, 22), (a, 6), (evr, 20), (repoid, 21)):
if len(val) <= width:
msg += u"%%-%ds " % width
else:
@@ -655,7 +657,7 @@ class YumOutput:
summary = _("""
Transaction Summary
-=============================================================================
+================================================================================
Install %5.5s Package(s)
Update %5.5s Package(s)
Remove %5.5s Package(s)
commit 81b680001f26309aff423bf9d21614cb35072974
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Mon Aug 11 14:03:15 2008 -0400
- when we delete a repo from our repos object, also close it
- when we add_enable_repo make sure we call setup on it, too, just to make sure we get the dirs and caches setup
- when _resetSack is called just set _sack to None not sack
diff --git a/yum/__init__.py b/yum/__init__.py
index 7facdd6..3457dfb 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -3191,6 +3191,9 @@ class YumBase(depsolve.Depsolve):
mirrorlist = varReplace(mirrorlist, self.conf.yumvar)
newrepo.mirrorlist = mirrorlist
+ # setup the repo
+ newrepo.setup(cache=self.conf.cache)
+
# some reasonable defaults, (imo)
newrepo.enablegroups = True
newrepo.metadata_expire = 0
diff --git a/yum/repos.py b/yum/repos.py
index d290520..c4c2449 100644
--- a/yum/repos.py
+++ b/yum/repos.py
@@ -88,6 +88,8 @@ class RepoStorage:
def delete(self, repoid):
if self.repos.has_key(repoid):
+ thisrepo = self.repos[repoid]
+ thisrepo.close()
del self.repos[repoid]
def sort(self):
diff --git a/yum/yumRepo.py b/yum/yumRepo.py
index b2f342e..376f7db 100644
--- a/yum/yumRepo.py
+++ b/yum/yumRepo.py
@@ -278,8 +278,7 @@ class YumRepository(Repository, config.RepoConf):
Repository.close(self)
def _resetSack(self):
- self.sack = sqlitesack.YumSqlitePackageSack(
- sqlitesack.YumAvailablePackageSqlite)
+ self._sack = None
def __getProxyDict(self):
self.doProxyDict()
commit 456d18d98e10c9414f3a664b57c3d5d7a64b51f4
Author: James Antill <james at and.org>
Date: Mon Aug 11 01:13:25 2008 -0400
Turn on fix for test_min_up_and_dep[12] and add fix for test_min_up_and_dep3
diff --git a/test/depsolvetests.py b/test/depsolvetests.py
index a0fc9bc..4a3dad5 100644
--- a/test/depsolvetests.py
+++ b/test/depsolvetests.py
@@ -989,6 +989,45 @@ class DepsolveTests(DepsolveTests):
self.assertEquals('ok', *self.resolveCode())
self.assertResult((ipo2, po4))
+ def test_min_up_and_dep3(self):
+ rpo1 = FakePackage('bar', version='1')
+ self.rpmdb.addPackage(rpo1)
+ rpo2 = FakePackage('bar-blah', version='1')
+ rpo2.addRequires('bar', 'EQ', ('0', '1', '1'))
+ self.rpmdb.addPackage(rpo2)
+
+ ipo1 = FakePackage('bar', version='2')
+ self.tsInfo.addUpdate(ipo1, oldpo=rpo1)
+ ipo2 = FakePackage('bar-blah', version='2')
+ ipo2.addRequires('bar', 'EQ', ('0', '2', '1'))
+ self.tsInfo.addUpdate(ipo2, oldpo=rpo2)
+
+ ipo3 = FakePackage('foo')
+ ipo3.addRequires('bar', 'GE', (None, '3', '0'))
+ self.tsInfo.addInstall(ipo3)
+
+ po1 = FakePackage('foo')
+ po1.addRequires('bar', 'GE', (None, '3', '0'))
+ self.xsack.addPackage(po1)
+ po2 = FakePackage('bar', version='2')
+ self.xsack.addPackage(po2)
+ po3 = FakePackage('bar', version='3')
+ self.xsack.addPackage(po3)
+ po4 = FakePackage('bar', version='4')
+ self.xsack.addPackage(po4)
+ po5 = FakePackage('bar-blah', version='2')
+ po5.addRequires('bar', 'EQ', ('0', '2', '1'))
+ self.xsack.addPackage(po5)
+ po6 = FakePackage('bar-blah', version='3')
+ po6.addRequires('bar', 'EQ', ('0', '3', '1'))
+ self.xsack.addPackage(po6)
+ po7 = FakePackage('bar-blah', version='4')
+ po7.addRequires('bar', 'EQ', ('0', '4', '1'))
+ self.xsack.addPackage(po7)
+
+ self.assertEquals('ok', *self.resolveCode())
+ self.assertResult((ipo3, po4, po7))
+
def test_multi_inst_dep1(self):
ipo1 = FakePackage('foo')
ipo1.addRequires('bar-prov1', None, (None, None, None))
diff --git a/yum/__init__.py b/yum/__init__.py
index 8508b44..7facdd6 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -2386,16 +2386,29 @@ class YumBase(depsolve.Depsolve):
return tx_return
+ def _check_new_update_provides(self, opkg, npkg):
+ """ Check for any difference in the provides of the old and new update
+ that is needed by the transaction. If so we "update" those pkgs
+ too, to the latest version. """
+ oprovs = set(opkg.returnPrco('provides'))
+ nprovs = set(npkg.returnPrco('provides'))
+ for prov in oprovs.difference(nprovs):
+ reqs = self.tsInfo.getRequires(*prov)
+ for pkg in reqs:
+ for req in reqs[pkg]:
+ if not npkg.inPrcoRange('provides', req):
+ naTup = (pkg.name, pkg.arch)
+ for pkg in self.pkgSack.returnNewestByNameArch(naTup):
+ self.update(po=pkg)
+ break
+
def _newer_update_in_trans(self, pkgtup, available_pkg):
""" We return True if there is a newer package already in the
- transaction. If there is an older one, we remove it and return
- False so we'll goto this available one. """
+ transaction. If there is an older one, we remove it (and update any
+ deps. that aren't satisfied by the newer pkg) and return False so
+ we'll update to this newer pkg. """
found = False
for txmbr in self.tsInfo.getMembersWithState(pkgtup, [TS_UPDATED]):
- if True: # FIXME: This "works" but fails related deps.
- # Ie. update-minimal glibc pam == works
- # Ie. update-minimal glibc glibc-common pam == hard fail
- return True
count = 0
for po in txmbr.updated_by:
if available_pkg.verLE(po):
@@ -2403,6 +2416,8 @@ class YumBase(depsolve.Depsolve):
else:
for ntxmbr in self.tsInfo.getMembers(po.pkgtup):
self.tsInfo.remove(ntxmbr.po.pkgtup)
+ self._check_new_update_provides(ntxmbr.po,
+ available_pkg)
if count:
found = True
else:
commit 4d50fe27ef770d1c349c33aecc1ea21ad1105a76
Author: James Antill <james at and.org>
Date: Mon Aug 11 00:25:17 2008 -0400
Tweak listTransaction() output so columns are always aligned
diff --git a/output.py b/output.py
index b483389..ed4645f 100644
--- a/output.py
+++ b/output.py
@@ -632,8 +632,18 @@ class YumOutput:
repoid = txmbr.repoid
pkgsize = float(txmbr.po.size)
size = self.format_number(pkgsize)
- msg = u" %-22s %-9s %-15s %-16s %5s\n" % (n, a,
- evr, repoid, size)
+
+ total_width = 1
+ msg = u' '
+ for (val, width) in ((n, 23), (a, 10), (evr, 16), (repoid, 17)):
+ if len(val) <= width:
+ msg += u"%%-%ds " % width
+ else:
+ msg += u"%s\n" + " " * (total_width + width + 1)
+ total_width += width
+ total_width += 1
+ msg += u"%5s\n"
+ msg %= (n, a, evr, repoid, size)
for obspo in txmbr.obsoletes:
appended = _(' replacing %s.%s %s\n\n') % (obspo.name,
obspo.arch, obspo.printVer())
commit 7624c5b76d6c3fdee688c83caecb4b6c728f1580
Author: James Antill <james at and.org>
Date: Mon Aug 11 00:00:05 2008 -0400
Remove two FIXME's:
. Print better messages (and don't error) for install'ing things already
installed but unavailable.
. Put a deprecation warning in getInstalledPackageObject()
diff --git a/yum/__init__.py b/yum/__init__.py
index 3e547f5..8508b44 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -1969,9 +1969,8 @@ class YumBase(depsolve.Depsolve):
def getInstalledPackageObject(self, pkgtup):
"""returns a YumInstallPackage object for the pkgtup specified"""
-
- #FIXME - this should probably emit a deprecation warning telling
- # people to just use the command below
+ 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
return po
@@ -2320,9 +2319,21 @@ class YumBase(depsolve.Depsolve):
lst.extend(self.bestPackagesFromList(pkgs))
pkgs = lst
- if len(pkgs) == 0:
- #FIXME - this is where we could check to see if it already installed
- # for returning better errors
+ if not pkgs:
+ # Do we still want to return errors here?
+ # We don't in the cases below, so I didn't here...
+ if 'pattern' in kwargs:
+ pats = [kwargs['pattern']]
+ pkgs = self.rpmdb.returnPackages(patterns=pats)
+ exactmatch, matched, unmatched = parsePackages(pkgs, pats,
+ casematch=1)
+ pkgs = exactmatch + matched
+ if 'name' in kwargs:
+ pkgs = self.rpmdb.searchNevra(name=kwargs['name'])
+ for pkg in pkgs:
+ self.verbose_logger.warning(_('Package %s installed and not available'), pkg)
+ if pkgs:
+ return []
raise Errors.InstallError, _('No package(s) available to install')
# FIXME - lots more checking here
@@ -2670,6 +2681,8 @@ class YumBase(depsolve.Depsolve):
# if by any chance we're a noncompat arch rpm - bail and throw out an error
# FIXME -our archlist should be stored somewhere so we don't have to
# do this: but it's not a config file sort of thing
+ # FIXME: Should add noarch, yum localinstall works ...
+ # just rm this method?
if po.arch not in rpmUtils.arch.getArchList():
self.logger.critical(_('Cannot add package %s to transaction. Not a compatible architecture: %s'), pkg, po.arch)
return tx_return
commit d8ec3b28d11ebc861122af65edb87d96f0ff85b1
Author: James Antill <james at and.org>
Date: Sun Aug 10 18:35:04 2008 -0400
Fix yum install foo.src.rpm (bug 458589)
diff --git a/yum/__init__.py b/yum/__init__.py
index 16a56b2..3e547f5 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -2672,7 +2672,7 @@ class YumBase(depsolve.Depsolve):
# do this: but it's not a config file sort of thing
if po.arch not in rpmUtils.arch.getArchList():
self.logger.critical(_('Cannot add package %s to transaction. Not a compatible architecture: %s'), pkg, po.arch)
- return result
+ return tx_return
# everything installed that matches the name
installedByKey = self.rpmdb.searchNevra(name=po.name)
commit 0f717c3d0ac690a31cfeb674211baa7e8c11c51a
Author: James Antill <james at and.org>
Date: Sun Aug 10 18:01:33 2008 -0400
Create helper function setup_locale() to work around broken python unicode
diff --git a/yum/misc.py b/yum/misc.py
index daa948a..a60c17b 100644
--- a/yum/misc.py
+++ b/yum/misc.py
@@ -620,6 +620,27 @@ def to_xml(item, attrib=False):
return item
# ---------- i18n ----------
+import locale
+import sys
+def setup_locale(override_codecs=True, override_time=False):
+ # This test needs to be before locale.getpreferredencoding() as that
+ # does setlocale(LC_CTYPE, "")
+ try:
+ locale.setlocale(locale.LC_ALL, '')
+ # set time to C so that we output sane things in the logs (#433091)
+ if override_time:
+ locale.setlocale(locale.LC_TIME, 'C')
+ except locale.Error, e:
+ # default to C locale if we get a failure.
+ print >> sys.stderr, 'Failed to set locale, defaulting to C'
+ os.environ['LC_ALL'] = 'C'
+ locale.setlocale(locale.LC_ALL, 'C')
+
+ if override_codecs:
+ import codecs
+ sys.stdout = codecs.getwriter(locale.getpreferredencoding())(sys.stdout)
+ sys.stdout.errors = 'replace'
+
def to_unicode(obj, encoding='utf-8', errors='replace'):
''' convert a 'str' to 'unicode' '''
if isinstance(obj, basestring):
diff --git a/yummain.py b/yummain.py
index 27c6b2c..fde590c 100755
--- a/yummain.py
+++ b/yummain.py
@@ -20,7 +20,6 @@ Entrance point for the yum command line interface.
import os
import sys
-import locale
import logging
import time # test purposes only
@@ -29,28 +28,14 @@ from yum import plugins
from yum import logginglevels
from yum import _
from yum.misc import to_unicode
+import yum.misc
import cli
def main(args):
"""This does all the real work"""
- # This test needs to be before locale.getpreferredencoding() as that
- # does setlocale(LC_CTYPE, "")
- try:
- locale.setlocale(locale.LC_ALL, '')
- # set time to C so that we output sane things in the logs (#433091)
- locale.setlocale(locale.LC_TIME, 'C')
- except locale.Error, e:
- # default to C locale if we get a failure.
- print >> sys.stderr, 'Failed to set locale, defaulting to C'
- os.environ['LC_ALL'] = 'C'
- locale.setlocale(locale.LC_ALL, 'C')
-
- if True: # not sys.stdout.isatty():
- import codecs
- sys.stdout = codecs.getwriter(locale.getpreferredencoding())(sys.stdout)
- sys.stdout.errors = 'replace'
+ yum.misc.setup_locale(override_time=True)
def exUserCancel():
logger.critical(_('\n\nExiting on user cancel'))
commit 8143fce2224125d94c4f91771dc8a37291b3dcfe
Author: James Antill <james at and.org>
Date: Sat Aug 9 15:37:49 2008 -0400
Add test_multi_inst_dep[45] and tweak the comments for _sort_reqs
diff --git a/test/depsolvetests.py b/test/depsolvetests.py
index a0e607b..a0fc9bc 100644
--- a/test/depsolvetests.py
+++ b/test/depsolvetests.py
@@ -1041,3 +1041,37 @@ class DepsolveTests(DepsolveTests):
self.assertEquals('ok', *self.resolveCode())
self.assertResult((ipo1, po1))
+
+ def test_multi_inst_dep4(self):
+ ipo1 = FakePackage('foo')
+ ipo1.addRequires('libbar-prov1.so.0()', None, (None, None, None))
+ ipo1.addRequires('bar-prov2', None, (None, None, None))
+ self.tsInfo.addInstall(ipo1)
+
+ po1 = FakePackage('bar')
+ po1.addProvides('libbar-prov1.so.0()', None, (None, None, None))
+ po1.addProvides('bar-prov2', None, (None, None, None))
+ self.xsack.addPackage(po1)
+ po2 = FakePackage('baz')
+ po2.addProvides('libbar-prov1.so.0()', None, (None, None, None))
+ self.xsack.addPackage(po2)
+
+ self.assertEquals('ok', *self.resolveCode())
+ self.assertResult((ipo1, po1))
+
+ def test_multi_inst_dep5(self):
+ ipo1 = FakePackage('foo')
+ ipo1.addRequires('libbar-prov1.so.0()', None, (None, None, None))
+ ipo1.addRequires('bar-prov2', None, (None, None, None))
+ self.tsInfo.addInstall(ipo1)
+
+ po1 = FakePackage('bar')
+ po1.addProvides('libbar-prov1.so.0()', None, (None, None, None))
+ po1.addProvides('bar-prov2', None, (None, None, None))
+ po2 = FakePackage('baz')
+ po2.addProvides('libbar-prov1.so.0()', None, (None, None, None))
+ self.xsack.addPackage(po2)
+ self.xsack.addPackage(po1)
+
+ self.assertEquals('ok', *self.resolveCode())
+ self.assertResult((ipo1, po1))
diff --git a/yum/depsolve.py b/yum/depsolve.py
index 431190c..0cad1ab 100644
--- a/yum/depsolve.py
+++ b/yum/depsolve.py
@@ -802,7 +802,7 @@ class Depsolve(object):
if ret:
return ret
- # This is pretty magic, basically we want and explicit:
+ # This is pretty magic, basically we want an explicit:
#
# Requires: foo
#
@@ -810,7 +810,8 @@ class Depsolve(object):
#
# Requires: libfoo.so.0()
#
- # ...need more magic for other implicit deps. here?
+ # ...because sometimes the libfoo.so.0() is provided by multiple
+ # packages. Do we need more magic for other implicit deps. here?
def _req_name2val(name):
if (name.startswith("lib") and
(name.endswith("()") or name.endswith("()(64bit)"))):
commit 92f360344742fa3fca38d97846cb7a31f3dd88bf
Author: James Antill <james at and.org>
Date: Sat Aug 9 15:24:26 2008 -0400
Shared lib. deps sorted after pkg. deps., solves test_multi_inst_dep3, 443459
diff --git a/test/depsolvetests.py b/test/depsolvetests.py
index 44731d0..a0e607b 100644
--- a/test/depsolvetests.py
+++ b/test/depsolvetests.py
@@ -1024,3 +1024,20 @@ class DepsolveTests(DepsolveTests):
self.assertEquals('ok', *self.resolveCode())
self.assertResult((ipo1, po1))
+
+ def test_multi_inst_dep3(self):
+ ipo1 = FakePackage('foo')
+ ipo1.addRequires('libbar-prov1.so.0()', None, (None, None, None))
+ ipo1.addRequires('bar-prov2', None, (None, None, None))
+ self.tsInfo.addInstall(ipo1)
+
+ po1 = FakePackage('bar')
+ po1.addProvides('libbar-prov1.so.0()', None, (None, None, None))
+ po1.addProvides('bar-prov2', None, (None, None, None))
+ self.xsack.addPackage(po1)
+ po2 = FakePackage('bar', version='2')
+ po2.addProvides('libbar-prov1.so.0()', None, (None, None, None))
+ self.xsack.addPackage(po2)
+
+ self.assertEquals('ok', *self.resolveCode())
+ self.assertResult((ipo1, po1))
diff --git a/yum/depsolve.py b/yum/depsolve.py
index ef84143..431190c 100644
--- a/yum/depsolve.py
+++ b/yum/depsolve.py
@@ -798,7 +798,25 @@ class Depsolve(object):
mapper = {'EQ' : 1, 'LT' : 2, 'LE' : 3, 'GT' : 4, 'GE' : 5,
None : 99}
- return mapper.get(pkgtup1[1], 10) - mapper.get(pkgtup2[1], 10)
+ ret = mapper.get(pkgtup1[1], 10) - mapper.get(pkgtup2[1], 10)
+ if ret:
+ return ret
+
+ # This is pretty magic, basically we want and explicit:
+ #
+ # Requires: foo
+ #
+ # ...to happen before the implicit:
+ #
+ # Requires: libfoo.so.0()
+ #
+ # ...need more magic for other implicit deps. here?
+ def _req_name2val(name):
+ if (name.startswith("lib") and
+ (name.endswith("()") or name.endswith("()(64bit)"))):
+ return 99 # Processes these last
+ return 0
+ return _req_name2val(pkgtup1[0]) - _req_name2val(pkgtup2[0])
def _checkInstall(self, txmbr):
txmbr_reqs = txmbr.po.returnPrco('requires')
commit 65521318e01076b246b2fbdc4521fbd111a336f1
Author: James Antill <james at and.org>
Date: Sat Aug 9 15:11:11 2008 -0400
Sort the requires, so we handle things like BZ 443459 and test_multi_inst_dep*
diff --git a/yum/depsolve.py b/yum/depsolve.py
index 6bb0ef6..ef84143 100644
--- a/yum/depsolve.py
+++ b/yum/depsolve.py
@@ -788,6 +788,17 @@ class Depsolve(object):
return CheckDeps, CheckInstalls, CheckRemoves, any_missing
+ @staticmethod
+ def _sort_reqs(pkgtup1, pkgtup2):
+ """ Sort the requires for a package from most "narrow" to least,
+ this tries to ensure that if we have two reqs like
+ "libfoo = 1.2.3-4" and "foo-api" (which is also provided by
+ libxyz-foo) that we'll get just libfoo.
+ There are other similar cases this "handles"."""
+
+ mapper = {'EQ' : 1, 'LT' : 2, 'LE' : 3, 'GT' : 4, 'GE' : 5,
+ None : 99}
+ return mapper.get(pkgtup1[1], 10) - mapper.get(pkgtup2[1], 10)
def _checkInstall(self, txmbr):
txmbr_reqs = txmbr.po.returnPrco('requires')
@@ -801,7 +812,7 @@ class Depsolve(object):
oldreqs = set(oldreqs)
ret = []
- for req in txmbr_reqs:
+ for req in sorted(txmbr_reqs, cmp=self._sort_reqs):
if req[0].startswith('rpmlib('):
continue
if req in txmbr_provs:
commit 9c54f3f148f7398f14673975e871a23173df61e4
Author: James Antill <james at and.org>
Date: Fri Aug 8 17:01:49 2008 -0400
Add a testcase where pkgA has deps. on an older available version of pkgB
diff --git a/test/depsolvetests.py b/test/depsolvetests.py
index 4e2e263..44731d0 100644
--- a/test/depsolvetests.py
+++ b/test/depsolvetests.py
@@ -988,3 +988,39 @@ class DepsolveTests(DepsolveTests):
self.assertEquals('ok', *self.resolveCode())
self.assertResult((ipo2, po4))
+
+ def test_multi_inst_dep1(self):
+ ipo1 = FakePackage('foo')
+ ipo1.addRequires('bar-prov1', None, (None, None, None))
+ ipo1.addRequires('bar-prov2', 'EQ', ('0', '1', '0'))
+ self.tsInfo.addInstall(ipo1)
+
+ po1 = FakePackage('bar')
+ po1.addProvides('bar-prov1', None, (None, None, None))
+ po1.addProvides('bar-prov2', 'EQ', ('0', '1', '0'))
+ self.xsack.addPackage(po1)
+ po2 = FakePackage('bar', version='2')
+ po2.addProvides('bar-prov1', None, (None, None, None))
+ po2.addProvides('bar-prov2', 'EQ', ('0', '2', '0'))
+ self.xsack.addPackage(po2)
+
+ self.assertEquals('ok', *self.resolveCode())
+ self.assertResult((ipo1, po1))
+
+ def test_multi_inst_dep2(self):
+ ipo1 = FakePackage('foo')
+ ipo1.addRequires('bar-prov1', None, (None, None, None))
+ ipo1.addRequires('bar-prov2', 'EQ', ('0', '1', '0'))
+ self.tsInfo.addInstall(ipo1)
+
+ po1 = FakePackage('bar')
+ po1.addProvides('bar-prov1', None, (None, None, None))
+ po1.addProvides('bar-prov2', 'EQ', ('0', '1', '0'))
+ po2 = FakePackage('bar', version='2')
+ po2.addProvides('bar-prov1', None, (None, None, None))
+ po2.addProvides('bar-prov2', 'EQ', ('0', '2', '0'))
+ self.xsack.addPackage(po2)
+ self.xsack.addPackage(po1)
+
+ self.assertEquals('ok', *self.resolveCode())
+ self.assertResult((ipo1, po1))
commit e49734fe9974e589f6ebdd6ae6e153e0e7aa425e
Merge: 3b7676a... 6885eb3...
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Fri Aug 8 15:34:40 2008 -0400
Merge branch 'yum-3_2_X' of ssh://login.linux.duke.edu/home/groups/yum/git/yum into yum-3_2_X
* 'yum-3_2_X' of ssh://login.linux.duke.edu/home/groups/yum/git/yum:
Add test for no pygpgme, and give useful error message
Fail valid_detached_sig if gpgme isn't installed
Fix ts used for rpm-4.5.90-0.git8461.1 gpg key importing
Fix copy&paste typo with syslogFacilityMap, and fix YumBase.doLoggingSetup
Move syslog configs. to StatupConfig, act on them in logging. use LOG_DAEMON
Another unicode => to_unicode, hopefully fixes 447504
commit 3b7676a25e07a865fc2afaff23d926d993c735fc
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Fri Aug 8 15:34:30 2008 -0400
minor clean up to make sure when re-assemble the remote path we also make sure basepath isn't stupid for urljoin()
diff --git a/yum/packages.py b/yum/packages.py
index 014064d..9c05596 100644
--- a/yum/packages.py
+++ b/yum/packages.py
@@ -516,6 +516,9 @@ class YumAvailablePackage(PackageObject, RpmBase):
you should use self.repo.getPackage."""
base = self.basepath
if base:
+ # urljoin sucks in the reverse way that os.path.join sucks :)
+ if base[-1] != '/':
+ base = base + '/'
return urlparse.urljoin(base, self.remote_path)
return urlparse.urljoin(self.repo.urls[0], self.remote_path)
commit 6885eb3491ad658c71b48219a81cdcf3a78ac9f1
Author: James Antill <james at and.org>
Date: Fri Aug 8 11:53:11 2008 -0400
Add test for no pygpgme, and give useful error message
diff --git a/yum/yumRepo.py b/yum/yumRepo.py
index dc98f81..b2f342e 100644
--- a/yum/yumRepo.py
+++ b/yum/yumRepo.py
@@ -1111,6 +1111,9 @@ class YumRepository(Repository, config.RepoConf):
if self.repo_gpgcheck:
+ if misc.gpgme is None:
+ raise URLGrabError(-1, 'pygpgme is not working so repomd.xml can not be verified for %s' % (self))
+
sigfile = self.cachedir + '/repomd.xml.asc'
try:
result = self._getFile(relative='repodata/repomd.xml.asc',
commit 32a56ff73170983e812a364a95258c6019c63cc9
Author: James Antill <james at and.org>
Date: Fri Aug 8 11:41:55 2008 -0400
Fail valid_detached_sig if gpgme isn't installed
diff --git a/yum/misc.py b/yum/misc.py
index 9314390..daa948a 100644
--- a/yum/misc.py
+++ b/yum/misc.py
@@ -382,6 +382,9 @@ def return_keyids_from_pubring(gpgdir):
def valid_detached_sig(sig_file, signed_file, gpghome=None):
"""takes signature , file that was signed and an optional gpghomedir"""
+ if gpgme is None:
+ return False
+
if gpghome and os.path.exists(gpghome):
os.environ['GNUPGHOME'] = gpghome
@@ -395,14 +398,14 @@ def valid_detached_sig(sig_file, signed_file, gpghome=None):
except gpgme.GpgmeError, e:
return False
else:
- thissig = sigs[0] # is there ever a case where we care about a sig beyond the first one?
- if thissig:
- if thissig.validity in (gpgme.VALIDITY_FULL,
- gpgme.VALIDITY_MARGINAL,
+ # is there ever a case where we care about a sig beyond the first one?
+ thissig = sigs[0]
+ if not thissig:
+ return False
+
+ if thissig.validity in (gpgme.VALIDITY_FULL, gpgme.VALIDITY_MARGINAL,
gpgme.VALIDITY_ULTIMATE):
- return True
- else:
- return False
+ return True
return False
commit ad35fb246e9da9ba6cabb094d31eb37751c6a290
Author: James Antill <james at and.org>
Date: Fri Aug 8 09:47:47 2008 -0400
Fix ts used for rpm-4.5.90-0.git8461.1 gpg key importing
diff --git a/yum/__init__.py b/yum/__init__.py
index 88ee98d..16a56b2 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -2842,7 +2842,7 @@ class YumBase(depsolve.Depsolve):
keyurls = repo.gpgkey
key_installed = False
- ts = rpmUtils.transaction.TransactionWrapper(self.conf.installroot)
+ ts = self.rpmdb.readOnlyTS()
for keyurl in keyurls:
keys = self._retrievePublicKey(keyurl)
commit cb102ec0ba22e00c77229ce39c414d3435956277
Author: James Antill <james at and.org>
Date: Thu Aug 7 19:07:35 2008 -0400
Fix copy&paste typo with syslogFacilityMap, and fix YumBase.doLoggingSetup
diff --git a/yum/__init__.py b/yum/__init__.py
index 5e58a0b..88ee98d 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -203,14 +203,16 @@ class YumBase(depsolve.Depsolve):
return self._conf
- def doLoggingSetup(self, debuglevel, errorlevel):
+ def doLoggingSetup(self, debuglevel, errorlevel,
+ syslog_ident=None, syslog_facility=None):
'''
Perform logging related setup.
@param debuglevel: Debug logging level to use.
@param errorlevel: Error logging level to use.
'''
- logginglevels.doLoggingSetup(debuglevel, errorlevel)
+ logginglevels.doLoggingSetup(debuglevel, errorlevel,
+ syslog_ident, syslog_facility)
def doFileLogSetup(self, uid, logfile):
logginglevels.setFileLog(uid, logfile)
diff --git a/yum/logginglevels.py b/yum/logginglevels.py
index ba7f718..756e47a 100644
--- a/yum/logginglevels.py
+++ b/yum/logginglevels.py
@@ -67,7 +67,7 @@ _syslog_facility_map = { "KERN" : syslog_module.LOG_KERN,
"LOCAL5" : syslog_module.LOG_LOCAL5,
"LOCAL6" : syslog_module.LOG_LOCAL6,
"LOCAL7" : syslog_module.LOG_LOCAL7,}
-def syslogFacilityMap(self, facility):
+def syslogFacilityMap(facility):
if type(facility) == int:
return facility
elif facility.upper() in _syslog_facility_map:
commit 50b058ad327d60dec7b72842d4bd321a1ebec793
Author: James Antill <james at and.org>
Date: Thu Aug 7 18:55:08 2008 -0400
Move syslog configs. to StatupConfig, act on them in logging. use LOG_DAEMON
Fixes: bug 450949
diff --git a/yum/__init__.py b/yum/__init__.py
index 07a21a7..5e58a0b 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -157,6 +157,8 @@ class YumBase(depsolve.Depsolve):
@param enabled_plugins: Plugins to be enabled
'''
+ # ' xemacs syntax hack
+
if self._conf:
return self._conf
conf_st = time.time()
@@ -176,7 +178,8 @@ class YumBase(depsolve.Depsolve):
if errorlevel != None:
startupconf.errorlevel = errorlevel
- self.doLoggingSetup(startupconf.debuglevel, startupconf.errorlevel)
+ self.doLoggingSetup(startupconf.debuglevel, startupconf.errorlevel,
+ startupconf.syslog_ident, startupconf.syslog_facility)
if init_plugins and startupconf.plugins:
self.doPluginSetup(optparser, plugin_types, startupconf.pluginpath,
diff --git a/yum/config.py b/yum/config.py
index 7f761e3..a924935 100644
--- a/yum/config.py
+++ b/yum/config.py
@@ -581,6 +581,8 @@ class StartupConf(BaseConfig):
pluginpath = ListOption(['/usr/share/yum-plugins', '/usr/lib/yum-plugins'])
pluginconfpath = ListOption(['/etc/yum/pluginconf.d'])
gaftonmode = BoolOption(False)
+ syslog_ident = Option()
+ syslog_facility = Option('LOG_DAEMON')
class YumConf(StartupConf):
'''
@@ -596,8 +598,6 @@ class YumConf(StartupConf):
keepcache = BoolOption(True)
logfile = Option('/var/log/yum.log')
reposdir = ListOption(['/etc/yum/repos.d', '/etc/yum.repos.d'])
- syslog_ident = Option()
- syslog_facility = Option('LOG_DAEMON')
commands = ListOption()
exclude = ListOption()
diff --git a/yum/logginglevels.py b/yum/logginglevels.py
index ce7a92c..ba7f718 100644
--- a/yum/logginglevels.py
+++ b/yum/logginglevels.py
@@ -45,8 +45,38 @@ logging.addLevelName(DEBUG_4, "DEBUG_4")
__NO_LOGGING = 100
logging.raiseExceptions = False
+import syslog as syslog_module
+
syslog = None
+# Mostly borrowed from original yum-updated.py
+_syslog_facility_map = { "KERN" : syslog_module.LOG_KERN,
+ "USER" : syslog_module.LOG_USER,
+ "MAIL" : syslog_module.LOG_MAIL,
+ "DAEMON" : syslog_module.LOG_DAEMON,
+ "AUTH" : syslog_module.LOG_AUTH,
+ "LPR" : syslog_module.LOG_LPR,
+ "NEWS" : syslog_module.LOG_NEWS,
+ "UUCP" : syslog_module.LOG_UUCP,
+ "CRON" : syslog_module.LOG_CRON,
+ "LOCAL0" : syslog_module.LOG_LOCAL0,
+ "LOCAL1" : syslog_module.LOG_LOCAL1,
+ "LOCAL2" : syslog_module.LOG_LOCAL2,
+ "LOCAL3" : syslog_module.LOG_LOCAL3,
+ "LOCAL4" : syslog_module.LOG_LOCAL4,
+ "LOCAL5" : syslog_module.LOG_LOCAL5,
+ "LOCAL6" : syslog_module.LOG_LOCAL6,
+ "LOCAL7" : syslog_module.LOG_LOCAL7,}
+def syslogFacilityMap(self, facility):
+ if type(facility) == int:
+ return facility
+ elif facility.upper() in _syslog_facility_map:
+ return _syslog_facility_map[facility.upper()]
+ elif (facility.upper().startswith("LOG_") and
+ facility[4:].upper() in _syslog_facility_map):
+ return _syslog_facility_map[facility[4:].upper()]
+ return syslog.LOG_USER
+
def logLevelFromErrorLevel(error_level):
""" Convert an old-style error logging level to the new style. """
error_table = { -1 : __NO_LOGGING, 0 : logging.CRITICAL, 1 : logging.ERROR,
@@ -87,7 +117,8 @@ def setErrorLevel(level):
logging.getLogger("yum").setLevel(converted_level)
_added_handlers = False
-def doLoggingSetup(debuglevel, errorlevel):
+def doLoggingSetup(debuglevel, errorlevel,
+ syslog_ident=None, syslog_facility=None):
"""
Configure the python logger.
@@ -133,6 +164,10 @@ def doLoggingSetup(debuglevel, errorlevel):
syslog = logging.handlers.SysLogHandler(log_dev)
syslog.setFormatter(syslogformatter)
filelogger.addHandler(syslog)
+ if syslog_ident is not None or syslog_facility is not None:
+ ident = syslog_ident or ''
+ facil = syslog_facility or 'LOG_USER'
+ syslog_module.openlog(ident, 0, syslogFacilityMap(facil))
except socket.error:
if syslog is not None:
syslog.close()
commit adfa2f4dff6b3669121bba3257a77a9895734219
Author: James Antill <james at and.org>
Date: Thu Aug 7 15:06:00 2008 -0400
Another unicode => to_unicode, hopefully fixes 447504
diff --git a/yummain.py b/yummain.py
index 1787d4f..27c6b2c 100755
--- a/yummain.py
+++ b/yummain.py
@@ -28,6 +28,7 @@ from yum import Errors
from yum import plugins
from yum import logginglevels
from yum import _
+from yum.misc import to_unicode
import cli
@@ -74,7 +75,7 @@ def main(args):
return 1
def exFatal(e):
- logger.critical('\n\n%s', unicode(e))
+ logger.critical('\n\n%s', to_unicode(e))
if unlock(): return 200
return 1
commit 17477eea2a83a396dcd9c95fc8c0d60281f6ee67
Author: James Antill <james at and.org>
Date: Thu Aug 7 12:28:29 2008 -0400
Don't fail list cmd for packages which are installed but not in any repos.
diff --git a/yum/__init__.py b/yum/__init__.py
index a5123f5..07a21a7 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -1386,8 +1386,11 @@ class YumBase(depsolve.Depsolve):
ignore_case=ic)
else:
del dinst # Using ndinst instead
- avail = self.pkgSack.returnNewestByNameArch(patterns=patterns,
- ignore_case=ic)
+ try:
+ avail = self.pkgSack.returnNewestByNameArch(patterns=patterns,
+ ignore_case=ic)
+ except Errors.PackageSackError:
+ avail = []
for pkg in avail:
if showdups:
commit b77b3191bc2a0305ec8ecfd24286b0d38c5b0597
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Thu Aug 7 09:30:28 2008 -0400
merge changelog
diff --git a/ChangeLog b/ChangeLog
index c109d91..b9f64fa 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,402 @@
+2008-08-07 Seth Vidal <skvidal at fedoraproject.org>
+
+ * yum.spec, yum/__init__.py: mark as 3.2.18
+
+2008-08-06 Seth Vidal <skvidal at fedoraproject.org>
+
+ * yum/__init__.py, yum/depsolve.py, yum/transactioninfo.py: make
+ sure conditional pkg installs pass through install() just like
+ anything else should
+
+2008-08-06 James Antill <james at and.org>
+
+ * yum/__init__.py: Add @group cmd line support to
+ install/update/remove
+
+2008-08-06 Seth Vidal <skvidal at fedoraproject.org>
+
+ * docs/yum.conf.5: check in docs for repo_gpgcheck
+
+2008-08-06 James Antill <james at and.org>
+
+ * yum/__init__.py: Work well with unicode in repo names, repolist
+ etc.
+
+2008-08-06 James Antill <james at and.org>
+
+ * cli.py, shell.py, yum/__init__.py, yum/config.py, yum/yumRepo.py,
+ yumcommands.py: Change gpgcheck again, back to two Bool options --
+ repo_gpgcheck is the new one
+
+2008-08-06 James Antill <james at and.org>
+
+ * cli.py, output.py, yum/__init__.py: Remove the prints out of
+ __init__ and into. output.py
+
+2008-08-06 James Antill <james at and.org>
+
+ * test/depsolvetests.py, yum/__init__.py: Add almost working
+ test_min_up_and_dep fix, but turn it off
+
+2008-08-06 James Antill <james at and.org>
+
+ * yum/yumRepo.py: Make repo. gpgcheck test work again until we
+ change it back to two bools
+
+2008-08-06 James Antill <james at and.org>
+
+ * test/depsolvetests.py, yum/__init__.py: Fix
+ testMultiPkgVersions[45] and don't break anything else
+
+2008-08-06 Seth Vidal <skvidal at fedoraproject.org>
+
+ * yum/__init__.py, yum/yumRepo.py: clean up output garbage and
+ behavior when user will not allow gpg key import to repo-local
+ pubrin
+
+2008-08-06 Seth Vidal <skvidal at fedoraproject.org>
+
+ Merge branch 'yum-3_2_X' of
+ ssh://login.linux.duke.edu/home/groups/yum/git/yum into yum-3_2_X *
+ 'yum-3_2_X' of ssh://login.linux.duke.edu/home/groups/yum/git/yum:
+ Add failing test case for non-latest update/install with dep. --
+ update fails Don't display download count if 1 pkg to download
+ Don't display download total if <= 1 pkgs downloaded Return []
+ instead of None in named get_notices, to match non-named path
+ Return the get_applicable_notices() result in the right order
+ (descending) Don't show ppc packages on .i386 in
+ UpdateNotice.__str__ Fix bad format string in UpdateNotice.__str__
+ Add get_applicable_notices() call to UpdateMetadata class Fix
+ UpdateNotice.__str__ when it's None, add name only lookups for
+ notices Add total download stats. line Don't give up if
+ PATTERNS_MAX reached, just do the operation multiple times Make
+ gpgcheck true/false work again Remove the assoc. of
+ gpgcheck=1/true meaning gpgcheck=all Give more info. when we fail
+ the disk space checks
+
+2008-08-06 Seth Vidal <skvidal at fedoraproject.org>
+
+ * cli.py, output.py, yum/__init__.py, yum/misc.py, yum/repos.py,
+ yum/yumRepo.py: merge changes for repomd.xml signature checking and
+ key import
+
+2008-08-05 James Antill <james at and.org>
+
+ * test/depsolvetests.py: Add failing test case for non-latest
+ update/install with dep. -- update fails
+
+2008-08-05 James Antill <james at and.org>
+
+ * yum/__init__.py: Don't display download count if 1 pkg to download
+
+
+2008-08-05 James Antill <james at and.org>
+
+ * yum/__init__.py: Don't display download total if <= 1 pkgs
+ downloaded
+
+2008-08-05 James Antill <james at and.org>
+
+ * yum/update_md.py: Return [] instead of None in named get_notices,
+ to match non-named path
+
+2008-08-04 James Antill <james at and.org>
+
+ * yum/update_md.py: Return the get_applicable_notices() result in
+ the right order (descending)
+
+2008-08-04 James Antill <james at and.org>
+
+ * yum/update_md.py: Don't show ppc packages on .i386 in UpdateNotice.__str__
+
+2008-08-01 James Antill <james at and.org>
+
+ * yum/update_md.py: Fix bad format string in UpdateNotice.__str__
+
+2008-08-01 James Antill <james at and.org>
+
+ * yum/update_md.py: Add get_applicable_notices() call to
+ UpdateMetadata class
+
+2008-07-31 James Antill <james at and.org>
+
+ * yum/update_md.py: Fix UpdateNotice.__str__ when it's None, add
+ name only lookups for notices
+
+2008-07-31 James Antill <james at and.org>
+
+ * yum/__init__.py: Add total download stats. line
+
+2008-07-29 James Antill <james at and.org>
+
+ * yum/misc.py, yum/sqlitesack.py: Don't give up if PATTERNS_MAX
+ reached, just do the operation multiple times
+
+2008-07-29 James Antill <james at and.org>
+
+ * yum/config.py: Make gpgcheck true/false work again
+
+2008-07-28 James Antill <james at and.org>
+
+ * cli.py, yum/__init__.py, yum/config.py: Remove the assoc. of
+ gpgcheck=1/true meaning gpgcheck=all
+
+2008-07-28 James Antill <james at and.org>
+
+ * yum/__init__.py: Give more info. when we fail the disk space
+ checks
+
+2008-07-27 James Antill <james at and.org>
+
+ * cli.py, yum/__init__.py, yum/plugins.py: Add --enableplugin option
+
+
+2008-07-27 James Antill <james at and.org>
+
+ * yum/packageSack.py: Minor cleanup for obsoletes processing
+
+2008-07-25 James Antill <james at and.org>
+
+ * cli.py: Remove debugging code, I accidentally committed *sighs*
+
+2008-07-25 James Antill <james at and.org>
+
+ * cli.py, yum/config.py: Fix typo in CaselessSelectionOption.parse()
+
+
+2008-07-25 James Antill <james at and.org>
+
+ * shell.py, yum/__init__.py, yum/config.py, yumcommands.py: Use the mapper for gpgcheck false/true, and tidy up the using code.
+
+
+2008-07-25 James Antill <james at and.org>
+
+ * yum/config.py: Use repo instead of repository as the canonical
+ option name for gpgcheck
+
+2008-07-25 James Antill <james at and.org>
+
+ * cli.py, shell.py, yum/__init__.py, yum/config.py, yumcommands.py:
+ Convert the gpgcheck option to have all the options for repomd.xml
+ signing
+
+2008-07-24 James Antill <james at and.org>
+
+ * cli.py: Give nicer messages when we can't find things due to case
+ sensitivity
+
+2008-07-24 James Antill <james at and.org>
+
+ * yum/sqlitesack.py: Return the correct thing for skipped
+ matchPackageNames, eg. 'yum update blah'
+
+2008-07-24 James Antill <james at and.org>
+
+ * yumcommands.py: Output header again in repolist (logger's output nothing on errors,
+ is weird). Allow extra patterns to match sub-sets of repos. Add
+ more stats. to repolist -v, updated/size/etc.
+
+2008-07-23 James Antill <james at and.org>
+
+ * yum/depsolve.py: And fix _prco_req2req after the cleanup, testing
+ is good
+
+2008-07-23 James Antill <james at and.org>
+
+ * yum/depsolve.py: Minor reuse of code for prco requirement to
+ internal requirements conversion
+
+2008-07-23 James Antill <james at and.org>
+
+ * yum/depsolve.py: If we still have the requirement we are upgrading
+ out of, try again
+
+2008-07-22 James Antill <james at and.org>
+
+ * yum/misc.py: Fix for python-2.4.z, as it has no hashlib
+
+2008-07-22 James Antill <james at and.org>
+
+ * output.py: Change function name from simpleNevraList to Envra, as
+ that's what it outputs
+
+2008-07-22 James Antill <james at and.org>
+
+ * yum/misc.py: Move to using hashlib directly in checksum, also add
+ sha256/sha512 options
+
+2008-07-22 James Antill <james at and.org>
+
+ Merge branch 'yum-3_2_X' of
+ ssh://login.linux.duke.edu/home/groups/yum/git/yum into yum-3_2_X *
+ 'yum-3_2_X' of ssh://login.linux.duke.edu/home/groups/yum/git/yum:
+ add a __version_info__ tuple of ints derived from __version__ Add
+ parameters to selectGroup() new german translation updates from
+ Fabian Affolter silence the "No package matched to remove" lines
+ during groupremove operations.
+
+2008-07-22 James Antill <james at and.org>
+
+ Merge branch 'repo-sacks' into yum-3_2_X * repo-sacks: Don't
+ create sacks for repos that we don't care about
+
+2008-06-11 James Antill <james at and.org>
+
+ * yum/depsolve.py: Try and solve the 666 requires on a single package problem, the
+ kernel people want to try this for ABI stuff (each symbol is a
+ provides).
+
+2008-07-22 James Antill <james at and.org>
+
+ Merge conflict
+
+2008-07-22 Seth Vidal <skvidal at fedoraproject.org>
+
+ * yum/__init__.py: add a __version_info__ tuple of ints derived from
+ __version__
+
+2008-07-22 Seth Vidal <skvidal at fedoraproject.org>
+
+ * yum/__init__.py: Add parameters to selectGroup()
+ group_package_types=List - overrides self.conf.group_package_types
+ enable_group_conditionals=Bool - overrides
+ self.conf.enable_group_conditionals
+
+2008-07-22 Seth Vidal <skvidal at fedoraproject.org>
+
+ * po/de.po: new german translation updates from Fabian Affolter
+
+2008-07-21 Seth Vidal <skvidal at fedoraproject.org>
+
+ * yum/__init__.py: silence the "No package matched to remove" lines
+ during groupremove operations.
+
+2008-07-20 James Antill <james at and.org>
+
+ * yum/misc.py: Make 'import gpgme' less fatal ... it isn't required,
+ yet
+
+2008-07-20 James Antill <james at and.org>
+
+ * yum/sqlitesack.py: Add _skip_all paths to a bunch more functions, some of them do
+ _all_excludes processing anyway ... but make sure.
+
+2008-07-20 James Antill <james at and.org>
+
+ * yum/sqlitesack.py: Merge skip_all code paths into a helper
+ function
+
+2008-07-20 James Antill <james at and.org>
+
+ * yum/sqlitesack.py: Add skip_all path to searchNames(), minor speed
+ up
+
+2008-07-20 James Antill <james at and.org>
+
+ * yum/constants.py, yum/sqlitesack.py: Add PATTERNS_MAX path to searchNames(), so large groups work. Bump
+ PATTERNS_MAX to be larger. Divide usage of PATTERNS_AMX by the
+ number of fields per. pattern.
+
+2008-07-20 James Antill <james at and.org>
+
+ * output.py: Add simpleNevraList() which is like simpleList() but uses nevra
+ instead of na and evr Add _group_names2pkgs as a template for
+ usage of .searchNames() (for PK, etc.) Add verbose mode to
+ groupinfo, to output pkgs in simpleNevraList() format which uses
+ the above.
+
+2008-07-19 Seth Vidal <skvidal at fedoraproject.org>
+
+ Merge branch 'yum-3_2_X' of
+ ssh://login.linux.duke.edu/home/groups/yum/git/yum into yum-3_2_X *
+ 'yum-3_2_X' of ssh://login.linux.duke.edu/home/groups/yum/git/yum:
+ Don't do SQL escaping combined on each SQL field Make error
+ reporting work with python-2.4.z, dito. SQL escaping. Tweak
+ provides warning message to be quiet on anything with a * in it
+ Conflicts: yum/sqlitesack.py
+
+2008-07-19 Seth Vidal <skvidal at fedoraproject.org>
+
+ * yum/sqlitesack.py: make yum list \*.noarch work again for repos.
+ Pattern was being escaped multipled times due to for loop for the
+ 'field' option. moved the escaping around to avoid that problem.
+
+2008-07-18 James Antill <james at and.org>
+
+ * yum/sqlitesack.py: Don't do SQL escaping combined on each SQL
+ field
+
+2008-07-18 James Antill <james at and.org>
+
+ * yum/sqlitesack.py: Make error reporting work with python-2.4.z,
+ dito. SQL escaping.
+
+2008-07-17 James Antill <james at and.org>
+
+ * cli.py: Tweak provides warning message to be quiet on anything
+ with a * in it
+
+2008-07-18 Seth Vidal <skvidal at fedoraproject.org>
+
+ * yum/comps.py: - add add_group and add_category methods to comps object - add a \n
+ to make xml() output look better
+
+2008-07-18 Seth Vidal <skvidal at fedoraproject.org>
+
+ * output.py: fix unicode traceback due to str() call on exception
+ which was already unicode :(
+
+2008-07-16 Seth Vidal <skvidal at fedoraproject.org>
+
+ * cli.py, yum/__init__.py, yummain.py: return non-zero exit code if
+ the rpm transaction has semi-fatal scriptlet failures. adds a fake
+ resultobject returned from runTransaction() so that any future
+ extensions we add can be bolted onto the object.
+ resultobject.return_code is the important attribute
+
+2008-07-16 Seth Vidal <skvidal at fedoraproject.org>
+
+ * cli.py, yum/__init__.py: - make cli.updatePkgs() call YumBase.update() for most everything
+ <-- watch this for interaction regressions - closes rh bug #455301 -
+ add add_enable_repo method to YumBase to facilitate adding repos by
+ baseurl/mirrorlist easily
+
+2008-07-16 tla at dk.ibm.com <tla at naboo.local>
+
+ * po/ca.po: Added Catalan translation by Xavier Conde
+
+2008-07-15 James Antill <james at and.org>
+
+ * yum/repoMDObject.py, yum/yumRepo.py: Add RepoMD.timestamp attribute, for mirrormanager etc. Defined as
+ the biggest/newest timestamp within a data section. Use this as
+ the canonical timestamp in the repomd checking, and tweak the error
+ message.
+
+2008-07-14 Seth Vidal <skvidal at fedoraproject.org>
+
+ Merge branch 'yum-3_2_X' of
+ ssh://login.linux.duke.edu/home/groups/yum/git/yum into yum-3_2_X *
+ 'yum-3_2_X' of ssh://login.linux.duke.edu/home/groups/yum/git/yum:
+ Fix available comparison in "all" mode, use new .ver*() methods
+
+2008-07-14 Seth Vidal <skvidal at fedoraproject.org>
+
+ * yum/misc.py, yum/packages.py, yum/sqlitesack.py: move the
+ xml-generating-bits into yum proper - out of createrepo
+
+2008-07-10 James Antill <james at and.org>
+
+ * yum/__init__.py: Fix available comparison in "all" mode, use new
+ .ver*() methods
+
+2008-07-10 Seth Vidal <skvidal at fedoraproject.org>
+
+ * yum/depsolve.py: make sure the reqpo exists before we compare it
+
+2008-07-08 Seth Vidal <skvidal at fedoraproject.org>
+
+ * ChangeLog: changelog merge
+
2008-07-08 Seth Vidal <skvidal at fedoraproject.org>
* yum.spec, yum/__init__.py: mark as 3.2.17
@@ -1093,6 +1492,10 @@
2008-03-26 James Antill <james at and.org>
+ * yum/yumRepo.py: Don't create sacks for repos that we don't care about
+
+2008-03-26 James Antill <james at and.org>
+
* yum/__init__.py: Fix user_agent when creating multiple YumBase
instances
commit f2bcbdc63a23141e1ca57a3678635d9e00b5ffc1
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Thu Aug 7 09:29:47 2008 -0400
mark as 3.2.18
diff --git a/yum.spec b/yum.spec
index 6b67412..0e2e7bc 100644
--- a/yum.spec
+++ b/yum.spec
@@ -1,6 +1,6 @@
Summary: RPM installer/updater
Name: yum
-Version: 3.2.17
+Version: 3.2.18
Release: 0
License: GPL
Group: System Environment/Base
@@ -99,6 +99,9 @@ exit 0
%{_mandir}/man*/yum-updatesd*
%changelog
+* Thu Aug 7 2008 Seth Vidal <skvidal at fedoraproject.org>
+- 3.2.18
+
* Wed Jul 8 2008 Seth Vidal <skvidal at fedoraproject.org>
- 3.2.17
diff --git a/yum/__init__.py b/yum/__init__.py
index ab74889..a5123f5 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -73,7 +73,7 @@ import string
from urlgrabber.grabber import default_grabber
-__version__ = '3.2.17'
+__version__ = '3.2.18'
__version_info__ = tuple([ int(num) for num in __version__.split('.')])
# Setup a default_grabber UA here that says we are yum, done using the global
commit 430c0b3267ebf39f0b9b2b24d31b4e2a6874f764
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Wed Aug 6 17:25:30 2008 -0400
make sure conditional pkg installs pass through install() just like anything else should
diff --git a/yum/__init__.py b/yum/__init__.py
index 96dcec6..ab74889 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -1890,12 +1890,13 @@ class YumBase(depsolve.Depsolve):
continue
# Otherwise we hook into tsInfo.add
pkgs = self.pkgSack.searchNevra(name=condreq)
- if pkgs:
- pkgs = self.bestPackagesFromList(pkgs)
- if self.tsInfo.conditionals.has_key(cond):
- self.tsInfo.conditionals[cond].extend(pkgs)
- else:
- self.tsInfo.conditionals[cond] = pkgs
+ if pkgs:# if there's anything as a result then we push
+ # the name into tsInfo so that when we call install
+ # on it it passes through the normal install() call
+ if self.tsInfo.conditionals.has_key(cond):
+ self.tsInfo.conditionals[cond].append(condreq)
+ else:
+ self.tsInfo.conditionals[cond] = [condreq]
return txmbrs_used
diff --git a/yum/depsolve.py b/yum/depsolve.py
index 27e5794..6bb0ef6 100644
--- a/yum/depsolve.py
+++ b/yum/depsolve.py
@@ -104,6 +104,10 @@ class Depsolve(object):
self._tsInfo = self._transactionDataFactory()
self._tsInfo.setDatabases(self.rpmdb, self.pkgSack)
self._tsInfo.installonlypkgs = self.conf.installonlypkgs # this kinda sucks
+ # this REALLY sucks, sadly
+ self._tsInfo.install_method = self.install
+ self._tsInfo.update_method = self.update
+ self._tsInfo.remove_method = self.remove
return self._tsInfo
def _setTsInfo(self, value):
diff --git a/yum/transactioninfo.py b/yum/transactioninfo.py
index b7fdd1e..6dd92b8 100644
--- a/yum/transactioninfo.py
+++ b/yum/transactioninfo.py
@@ -193,11 +193,12 @@ class TransactionData:
self.pkgSackPackages += 1
if self.conditionals.has_key(txmember.name):
- for po in self.conditionals[txmember.name]:
- if self.rpmdb.contains(po=po):
+ for pkg_name in self.conditionals[txmember.name]:
+ if self.rpmdb.contains(name=pkg_name):
continue
- condtxmbr = self.addInstall(po)
- condtxmbr.setAsDep(po=txmember.po)
+ for condtxmbr in self.install_method(name=pkg_name):
+ condtxmbr.setAsDep(po=txmember.po)
+
self._unresolvedMembers.add(txmember)
def remove(self, pkgtup):
commit ce8c22250eb1a1eaca6faa56538c90ca08d55701
Author: James Antill <james at and.org>
Date: Wed Aug 6 14:12:06 2008 -0400
Add @group cmd line support to install/update/remove
diff --git a/yum/__init__.py b/yum/__init__.py
index e9869f0..96dcec6 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -2187,7 +2187,34 @@ class YumBase(depsolve.Depsolve):
slow = next_func(slow)
if next == slow:
return None
+
+ def _at_groupinstall(self, pattern):
+ " Do groupinstall via. leading @ on the cmd line, for install/update."
+ assert pattern[0] == '@'
+ group_string = pattern[1:]
+ tx_return = []
+ for group in self.comps.return_groups(group_string):
+ try:
+ txmbrs = self.selectGroup(group.groupid)
+ tx_return.extend(txmbrs)
+ except yum.Errors.GroupsError:
+ self.logger.critical(_('Warning: Group %s does not exist.'), group_string)
+ continue
+ return tx_return
+ def _at_groupremove(self, pattern):
+ " Do groupremove via. leading @ on the cmd line, for remove."
+ assert pattern[0] == '@'
+ group_string = pattern[1:]
+ tx_return = []
+ try:
+ txmbrs = self.groupRemove(group_string)
+ except yum.Errors.GroupsError:
+ self.logger.critical(_('No group named %s exists'), group_string)
+ else:
+ tx_return.extend(txmbrs)
+ return tx_return
+
def install(self, po=None, **kwargs):
"""try to mark for install the item specified. Uses provided package
object, if available. If not it uses the kwargs and gets the best
@@ -2209,6 +2236,9 @@ class YumBase(depsolve.Depsolve):
raise Errors.InstallError, _('Nothing specified to install')
if kwargs.has_key('pattern'):
+ if kwargs['pattern'][0] == '@':
+ return self._at_groupinstall(kwargs['pattern'])
+
was_pattern = True
pats = [kwargs['pattern']]
exactmatch, matched, unmatched = \
@@ -2420,6 +2450,9 @@ class YumBase(depsolve.Depsolve):
elif kwargs.has_key('pattern'):
+ if kwargs['pattern'][0] == '@':
+ return self._at_groupinstall(kwargs['pattern'])
+
(e, m, u) = self.rpmdb.matchPackageNames([kwargs['pattern']])
instpkgs.extend(e)
instpkgs.extend(m)
@@ -2558,6 +2591,9 @@ class YumBase(depsolve.Depsolve):
pkgs = [po]
else:
if kwargs.has_key('pattern'):
+ if kwargs['pattern'][0] == '@':
+ return self._at_groupremove(kwargs['pattern'])
+
(e,m,u) = self.rpmdb.matchPackageNames([kwargs['pattern']])
pkgs.extend(e)
pkgs.extend(m)
commit f757b0530a08eac70f606710d6adda4d98470069
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Wed Aug 6 13:40:11 2008 -0400
check in docs for repo_gpgcheck
diff --git a/docs/yum.conf.5 b/docs/yum.conf.5
index d8b541a..415f84b 100644
--- a/docs/yum.conf.5
+++ b/docs/yum.conf.5
@@ -60,6 +60,11 @@ default for all repositories. This option also determines whether or not an
install of a package from a local RPM file will be GPG signature checked. The
default is `0'.
+.IP \fBrepo_gpgcheck\fR
+Either `1' or `0'. This tells yum whether or not it should perform a GPG
+signature check on the repodata. When this is set in the [main] section it sets the
+default for all repositories. The default is `0'.
+
.IP \fBskip_broken\fR
Either `1' or `0'. Resolve depsolve problems by removing packages that
are causing problems from the transaction.
@@ -350,6 +355,10 @@ Either `1' or `0'. This tells yum whether or not use this repository.
Either `1' or `0'. This tells yum whether or not it should perform a GPG
signature check on the packages gotten from this repository.
+.IP \fBrepo_gpgcheck\fR
+Either `1' or `0'. This tells yum whether or not it should perform a GPG
+signature check on the repodata from this repository.
+
.IP \fBgpgkey\fR
A URL pointing to the ASCII-armoured GPG key file for the repository. This
option is used if yum needs a public key to verify a package and the required
commit b94b2049164a45d8a6f68b5fc155d789a757eb20
Author: James Antill <james at and.org>
Date: Wed Aug 6 13:17:44 2008 -0400
Work well with unicode in repo names, repolist etc.
diff --git a/yum/__init__.py b/yum/__init__.py
index 9203c0a..e9869f0 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -305,6 +305,7 @@ class YumBase(depsolve.Depsolve):
repo.name = section
self.logger.error(_('Repository %r is missing name in configuration, '
'using id') % section)
+ repo.name = to_unicode(repo.name)
# Set attributes not from the config file
repo.basecachedir = self.conf.cachedir
commit 0b512bf03fa36b9c55c091a0371d34df407d68f8
Author: James Antill <james at and.org>
Date: Wed Aug 6 12:54:21 2008 -0400
Change gpgcheck again, back to two Bool options -- repo_gpgcheck is the new one
diff --git a/cli.py b/cli.py
index 2291fbd..90e5e44 100644
--- a/cli.py
+++ b/cli.py
@@ -1081,9 +1081,11 @@ class YumOptionParser(OptionParser):
# Disable all gpg key checking, if requested.
if opts.nogpgcheck:
- self.base.conf.gpgcheck = 'none'
+ self.base.conf.gpgcheck = False
+ self.base.conf.repo_gpgcheck = False
for repo in self.base.repos.listEnabled():
- repo.gpgcheck = 'none'
+ repo.gpgcheck = False
+ repo.repo_gpgcheck = False
except ValueError, e:
self.logger.critical(_('Options Error: %s'), e)
diff --git a/shell.py b/shell.py
index ff9960b..cb134d2 100644
--- a/shell.py
+++ b/shell.py
@@ -214,7 +214,7 @@ class YumShell(cmd.Cmd):
elif cmd == 'errorlevel':
logginglevels.setErrorLevel(val)
# bools
- elif cmd in ['obsoletes', 'assumeyes']:
+ elif cmd in ['gpgcheck', 'repo_gpgcheck', 'obsoletes', 'assumeyes']:
opts = self._shlex_split(args)
if not opts:
self.verbose_logger.log(logginglevels.INFO_2, '%s: %s', cmd,
@@ -229,26 +229,6 @@ class YumShell(cmd.Cmd):
if cmd == 'obsoletes':
self.base.up = None
- elif cmd in ['gpgcheck']:
- opts = self._shlex_split(args)
- if not opts:
- self.verbose_logger.log(logginglevels.INFO_2, '%s: %s', cmd,
- getattr(self.base.conf, cmd))
- else:
- value = opts[0]
- if value.lower() in ('0', 'no'):
- value = 'false'
- if value.lower() in ('1', 'yes'):
- value = 'true'
- if value.lower() == 'repository':
- value = 'repo'
- if value.lower() == 'pkgs':
- value = 'packages'
- if value.lower() not in ('false', 'true', 'packages', 'repo'):
- self.logger.critical('Value %s for %s is not a GPGcheck value', value, cmd)
- return False
- setattr(self.base.conf, cmd, value.lower())
-
elif cmd in ['exclude']:
args = args.replace(',', ' ')
opts = self._shlex_split(args)
diff --git a/yum/__init__.py b/yum/__init__.py
index cd26ccc..9203c0a 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -1232,7 +1232,7 @@ class YumBase(depsolve.Depsolve):
check = repo.gpgcheck
hasgpgkey = not not repo.gpgkey
- if check in ('all', 'packages'):
+ if check:
ts = self.rpmdb.readOnlyTS()
sigresult = rpmUtils.miscutils.checkSig(ts, po.localPkg())
localfn = os.path.basename(po.localPkg())
@@ -3121,6 +3121,7 @@ class YumBase(depsolve.Depsolve):
newrepo.enablegroups = True
newrepo.metadata_expire = 0
newrepo.gpgcheck = self.conf.gpgcheck
+ newrepo.repo_gpgcheck = self.conf.repo_gpgcheck
newrepo.basecachedir = self.conf.cachedir
for key in kwargs.keys():
diff --git a/yum/config.py b/yum/config.py
index 3df157b..7f761e3 100644
--- a/yum/config.py
+++ b/yum/config.py
@@ -32,6 +32,10 @@ import rpmUtils.transaction
import rpmUtils.arch
import Errors
+# Alter/patch these to change the default checking...
+__pkgs_gpgcheck_default__ = False
+__repo_gpgcheck_default__ = False
+
class Option(object):
'''
This class handles a single Yum configuration file option. Create
@@ -624,16 +628,9 @@ class YumConf(StartupConf):
diskspacecheck = BoolOption(True)
overwrite_groups = BoolOption(False)
keepalive = BoolOption(True)
- gpgcheck = CaselessSelectionOption('none',
- ('none', 'all', 'packages', 'repo'),
- {'0' : 'none',
- 'no' : 'none',
- 'false' : 'none',
- '1' : 'all',
- 'yes' : 'all',
- 'true' : 'all',
- 'pkgs' : 'packages',
- 'repository' : 'repo'})
+ # FIXME: rename gpgcheck to pkgs_gpgcheck
+ gpgcheck = BoolOption(__pkgs_gpgcheck_default__)
+ repo_gpgcheck = BoolOption(__repo_gpgcheck_default__)
obsoletes = BoolOption(False)
showdupesfromrepos = BoolOption(False)
enabled = BoolOption(True)
@@ -687,7 +684,9 @@ class RepoConf(BaseConfig):
retries = Inherit(YumConf.retries)
failovermethod = Inherit(YumConf.failovermethod)
+ # FIXME: rename gpgcheck to pkgs_gpgcheck
gpgcheck = Inherit(YumConf.gpgcheck)
+ repo_gpgcheck = Inherit(YumConf.repo_gpgcheck)
keepalive = Inherit(YumConf.keepalive)
enablegroups = Inherit(YumConf.enablegroups)
diff --git a/yum/yumRepo.py b/yum/yumRepo.py
index c0a47b2..dc98f81 100644
--- a/yum/yumRepo.py
+++ b/yum/yumRepo.py
@@ -338,7 +338,8 @@ class YumRepository(Repository, config.RepoConf):
def dump(self):
output = '[%s]\n' % self.id
vars = ['name', 'bandwidth', 'enabled', 'enablegroups',
- 'gpgcheck', 'includepkgs', 'keepalive', 'proxy',
+ 'gpgcheck', 'repo_gpgcheck', # FIXME: gpgcheck => pkgs_gpgcheck
+ 'includepkgs', 'keepalive', 'proxy',
'proxy_password', 'proxy_username', 'exclude',
'retries', 'throttle', 'timeout', 'mirrorlist',
'cachedir', 'gpgkey', 'pkgdir', 'hdrdir']
@@ -1108,7 +1109,7 @@ class YumRepository(Repository, config.RepoConf):
else:
filepath = fo
- if self.gpgcheck in ('all', 'repo'): # or whatever FIXME
+ if self.repo_gpgcheck:
sigfile = self.cachedir + '/repomd.xml.asc'
try:
diff --git a/yumcommands.py b/yumcommands.py
index 50a210a..2244ddb 100644
--- a/yumcommands.py
+++ b/yumcommands.py
@@ -42,7 +42,7 @@ def checkRootUID(base):
def checkGPGKey(base):
if not base.gpgKeyCheck():
for repo in base.repos.listEnabled():
- if repo.gpgcheck != 'false' and repo.gpgkey == '':
+ if repo.gpgcheck or repo.repo_gpgcheck and repo.gpgkey == '':
msg = _("""
You have enabled checking of packages via GPG keys. This is a good thing.
However, you do not have any GPG public keys installed. You need to download
commit 41bb94630c2a993350ec704346626918c504ec3e
Author: James Antill <james at and.org>
Date: Wed Aug 6 12:41:04 2008 -0400
Remove the prints out of __init__ and into. output.py
diff --git a/cli.py b/cli.py
index 09073f8..2291fbd 100644
--- a/cli.py
+++ b/cli.py
@@ -379,7 +379,7 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
self.verbose_logger.log(yum.logginglevels.INFO_2,
_('Downloading Packages:'))
- problems = self.downloadPkgs(downloadpkgs)
+ problems = self.downloadPkgs(downloadpkgs, callback_total=self.download_callback_total_cb)
if len(problems) > 0:
errstring = ''
diff --git a/output.py b/output.py
index a2c70aa..b483389 100644
--- a/output.py
+++ b/output.py
@@ -27,6 +27,7 @@ import rpm
import re # For YumTerm
from urlgrabber.progress import TextMeter
+import urlgrabber.progress
from urlgrabber.grabber import URLGrabError
from yum.misc import sortPkgObj, prco_tuple_to_string, to_str, to_unicode, get_my_lang_code
import yum.misc
@@ -474,8 +475,6 @@ class YumOutput:
for po in reqlist:
print " provider: %s" % po.compactPrint()
-
-
def format_number(self, number, SI=0, space=' '):
"""Turn numbers into human-readable metric-like numbers"""
symbols = ['', # (none)
@@ -516,6 +515,10 @@ class YumOutput:
return(format % (number, space, symbols[depth]))
+ @staticmethod
+ def format_time(seconds, use_hours=0):
+ return urlgrabber.progress.format_time(seconds, use_hours)
+
def matchcallback(self, po, values, matchfor=None, verbose=None):
""" Output search/provides type callback matches. po is the pkg object,
values are the things in the po that we've matched.
@@ -738,6 +741,24 @@ Remove %5.5s Package(s)
self._last_interrupt = now
raise URLGrabError(15, _('user interrupt'))
+ def download_callback_total_cb(self, remote_pkgs, remote_size,
+ download_start_timestamp):
+ if len(remote_pkgs) <= 1:
+ return
+ if not hasattr(urlgrabber.progress, 'TerminalLine'):
+ return
+
+ tl = urlgrabber.progress.TerminalLine(8)
+ print "-" * tl.rest()
+ dl_time = time.time() - download_start_timestamp
+ ui_size = tl.add(' | %5sB' % self.format_number(remote_size))
+ ui_time = tl.add(' %9s' % self.format_time(dl_time))
+ ui_end = tl.add(' ' * 5)
+ ui_bs = tl.add(' %5sB/s' % self.format_number(remote_size / dl_time))
+ print "%-*.*s%s%s%s%s" % (tl.rest(), tl.rest(), _("Total"),
+ ui_bs, ui_size, ui_time, ui_end)
+
+
class DepSolveProgressCallBack:
"""provides text output callback functions for Dependency Solver callback"""
diff --git a/yum/__init__.py b/yum/__init__.py
index 264e913..cd26ccc 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -53,7 +53,7 @@ from parser import ConfigPreProcessor, varReplace
import transactioninfo
import urlgrabber
from urlgrabber.grabber import URLGrabError
-from urlgrabber.progress import format_number, format_time
+from urlgrabber.progress import format_number
from packageSack import packagesNewestByNameArch, packagesNewestByName
import depsolve
import plugins
@@ -1034,9 +1034,8 @@ class YumBase(depsolve.Depsolve):
raise URLGrabError(-1, _('Package does not match checksum'))
return 0
-
-
- def downloadPkgs(self, pkglist, callback=None):
+
+ def downloadPkgs(self, pkglist, callback=None, callback_total=None):
def mediasort(apo, bpo):
# FIXME: we should probably also use the mediaid; else we
# could conceivably ping-pong between different disc1's
@@ -1135,16 +1134,8 @@ class YumBase(depsolve.Depsolve):
if errors.has_key(po):
del errors[po]
- if len(remote_pkgs) > 1 and hasattr(urlgrabber.progress,'TerminalLine'):
- tl = urlgrabber.progress.TerminalLine(8)
- print "-" * tl.rest()
- dl_time = time.time() - beg_download
- ui_size = tl.add(' | %5sB' % format_number(remote_size))
- ui_time = tl.add(' %9s' % format_time(dl_time))
- ui_end = tl.add(' ' * 5)
- ui_bs = tl.add(' %5sB/s' % format_number(remote_size / dl_time))
- print "%-*.*s%s%s%s%s" % (tl.rest(), tl.rest(), _("Total"),
- ui_bs, ui_size, ui_time, ui_end)
+ if callback_total is not None:
+ callback_total(remote_pkgs, remote_size, beg_download)
self.plugins.run('postdownload', pkglist=pkglist, errors=errors)
commit 72ba6ac2c8609e409217a1e08d471f450fd38537
Author: James Antill <james at and.org>
Date: Wed Aug 6 12:19:19 2008 -0400
Add almost working test_min_up_and_dep fix, but turn it off
diff --git a/test/depsolvetests.py b/test/depsolvetests.py
index af873d4..4e2e263 100644
--- a/test/depsolvetests.py
+++ b/test/depsolvetests.py
@@ -943,7 +943,7 @@ class DepsolveTests(DepsolveTests):
self.assertEquals('ok', *self.resolveCode())
self.assertResult((ipo2, po4))
- def test_min_up_and_dep(self):
+ def test_min_up_and_dep1(self):
rpo1 = FakePackage('bar', version='1')
self.rpmdb.addPackage(rpo1)
@@ -965,3 +965,26 @@ class DepsolveTests(DepsolveTests):
self.assertEquals('ok', *self.resolveCode())
self.assertResult((ipo2, po4))
+
+ def test_min_up_and_dep2(self):
+ rpo1 = FakePackage('bar', version='1')
+ self.rpmdb.addPackage(rpo1)
+
+ ipo1 = FakePackage('bar', version='2')
+
+ ipo2 = FakePackage('foo')
+ ipo2.addRequires('bar', 'GE', (None, '3', '0'))
+ self.tsInfo.addInstall(ipo2)
+ self.tsInfo.addUpdate(ipo1, oldpo=rpo1)
+
+ po1 = FakePackage('foo')
+ po2 = FakePackage('bar', version='2')
+ po3 = FakePackage('bar', version='3')
+ po4 = FakePackage('bar', version='4')
+ self.xsack.addPackage(po4)
+ self.xsack.addPackage(po3)
+ self.xsack.addPackage(po2)
+ self.xsack.addPackage(po1)
+
+ self.assertEquals('ok', *self.resolveCode())
+ self.assertResult((ipo2, po4))
diff --git a/yum/__init__.py b/yum/__init__.py
index c6dcc99..264e913 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -2344,7 +2344,29 @@ class YumBase(depsolve.Depsolve):
return tx_return
-
+ def _newer_update_in_trans(self, pkgtup, available_pkg):
+ """ We return True if there is a newer package already in the
+ transaction. If there is an older one, we remove it and return
+ False so we'll goto this available one. """
+ found = False
+ for txmbr in self.tsInfo.getMembersWithState(pkgtup, [TS_UPDATED]):
+ if True: # FIXME: This "works" but fails related deps.
+ # Ie. update-minimal glibc pam == works
+ # Ie. update-minimal glibc glibc-common pam == hard fail
+ return True
+ count = 0
+ for po in txmbr.updated_by:
+ if available_pkg.verLE(po):
+ count += 1
+ else:
+ for ntxmbr in self.tsInfo.getMembers(po.pkgtup):
+ self.tsInfo.remove(ntxmbr.po.pkgtup)
+ if count:
+ found = True
+ else:
+ self.tsInfo.remove(txmbr.po.pkgtup)
+ return found
+
def update(self, po=None, requiringPo=None, **kwargs):
"""try to mark for update the item(s) specified.
po is a package object - if that is there, mark it for update,
@@ -2489,13 +2511,12 @@ class YumBase(depsolve.Depsolve):
txmbr.setAsDep(requiringPo)
tx_return.append(txmbr)
-
for available_pkg in availpkgs:
for updated in self.up.updating_dict.get(available_pkg.pkgtup, []):
if self.tsInfo.isObsoleted(updated):
self.verbose_logger.log(logginglevels.DEBUG_2, _('Not Updating Package that is already obsoleted: %s.%s %s:%s-%s'),
updated)
- elif self.tsInfo.getMembersWithState(updated, [TS_UPDATED]):
+ elif self._newer_update_in_trans(updated, available_pkg):
self.verbose_logger.log(logginglevels.DEBUG_2, _('Not Updating Package that is already updated: %s.%s %s:%s-%s'),
updated)
@@ -2517,7 +2538,7 @@ class YumBase(depsolve.Depsolve):
if self.tsInfo.isObsoleted(ipkg.pkgtup):
self.verbose_logger.log(logginglevels.DEBUG_2, _('Not Updating Package that is already obsoleted: %s.%s %s:%s-%s'),
ipkg.pkgtup)
- elif self.tsInfo.getMembersWithState(ipkg.pkgtup, [TS_UPDATED]):
+ elif self._newer_update_in_trans(ipkg.pkgtup, available_pkg):
self.verbose_logger.log(logginglevels.DEBUG_2, _('Not Updating Package that is already updated: %s.%s %s:%s-%s'),
ipkg.pkgtup)
elif ipkg.verLT(available_pkg):
@@ -2525,11 +2546,9 @@ class YumBase(depsolve.Depsolve):
if requiringPo:
txmbr.setAsDep(requiringPo)
tx_return.append(txmbr)
-
return tx_return
-
def remove(self, po=None, **kwargs):
"""try to find and mark for remove the specified package(s) -
if po is specified then that package object (if it is installed)
commit 9931c630ff4417e154f152ee073cabea6ac8683c
Author: James Antill <james at and.org>
Date: Wed Aug 6 02:34:23 2008 -0400
Make repo. gpgcheck test work again until we change it back to two bools
diff --git a/yum/yumRepo.py b/yum/yumRepo.py
index 970b30b..c0a47b2 100644
--- a/yum/yumRepo.py
+++ b/yum/yumRepo.py
@@ -1108,7 +1108,7 @@ class YumRepository(Repository, config.RepoConf):
else:
filepath = fo
- if self.gpgcheck in ('repo'): # or whatever FIXME
+ if self.gpgcheck in ('all', 'repo'): # or whatever FIXME
sigfile = self.cachedir + '/repomd.xml.asc'
try:
commit 05937e57b96f6f53218132964f347ac46c28e384
Author: James Antill <james at and.org>
Date: Wed Aug 6 01:55:36 2008 -0400
Fix testMultiPkgVersions[45] and don't break anything else
diff --git a/test/depsolvetests.py b/test/depsolvetests.py
index e57148d..af873d4 100644
--- a/test/depsolvetests.py
+++ b/test/depsolvetests.py
@@ -865,10 +865,28 @@ class DepsolveTests(DepsolveTests):
self.xsack.addPackage(po3)
self.assertEquals('ok', *self.resolveCode())
- # FIXME: This is wrong, it should be one of:
- # self.assertResult((xpo, po3))
- # self.assertResult((xpo, po2))
- self.assertResult((xpo, po2, po3))
+ self.assertResult((xpo, po2))
+
+ def testMultiPkgVersions5(self):
+ ipo1 = FakePackage('abcd', arch='i386')
+ ipo1.addRequires('Foo', 'EQ', ('0', '1', '1'))
+ self.rpmdb.addPackage(ipo1)
+ ipo2 = FakePackage('Foo', arch='i386')
+ self.rpmdb.addPackage(ipo2)
+
+ xpo = FakePackage('abcd', version='2', arch='i386')
+ xpo.addRequires('Foo', 'GE', ('0', '2', '1'))
+ self.tsInfo.addUpdate(xpo, oldpo=ipo1)
+
+ po1 = FakePackage('Foo', arch='i386')
+ self.xsack.addPackage(po1)
+ po2 = FakePackage('Foo', version='2', arch='i686')
+ po3 = FakePackage('Foo', version='2', arch='i386')
+ self.xsack.addPackage(po3)
+ self.xsack.addPackage(po2)
+
+ self.assertEquals('ok', *self.resolveCode())
+ self.assertResult((xpo, po2))
# Test from "Real Life" because we just can't think like they do
def testRL_unison1(self):
diff --git a/yum/__init__.py b/yum/__init__.py
index 5c21db5..c6dcc99 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -2514,7 +2514,13 @@ class YumBase(depsolve.Depsolve):
# most likely correct
pot_updated = self.rpmdb.searchNevra(name=available_pkg.name, arch=available_pkg.arch)
for ipkg in pot_updated:
- if ipkg.verLT(available_pkg):
+ if self.tsInfo.isObsoleted(ipkg.pkgtup):
+ self.verbose_logger.log(logginglevels.DEBUG_2, _('Not Updating Package that is already obsoleted: %s.%s %s:%s-%s'),
+ ipkg.pkgtup)
+ elif self.tsInfo.getMembersWithState(ipkg.pkgtup, [TS_UPDATED]):
+ self.verbose_logger.log(logginglevels.DEBUG_2, _('Not Updating Package that is already updated: %s.%s %s:%s-%s'),
+ ipkg.pkgtup)
+ elif ipkg.verLT(available_pkg):
txmbr = self.tsInfo.addUpdate(available_pkg, ipkg)
if requiringPo:
txmbr.setAsDep(requiringPo)
commit 835e52c879c1155d2ec3ab2811c1b93b7cfd7706
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Wed Aug 6 00:36:31 2008 -0400
clean up output garbage and behavior when user will not allow gpg key import to repo-local pubrin
diff --git a/yum/__init__.py b/yum/__init__.py
index 58f2011..5c21db5 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -2845,8 +2845,6 @@ class YumBase(depsolve.Depsolve):
"""
keyurls = repo.gpgkey
key_installed = False
- if not callback:
- callback = self._confirmGpgKeyImport
for keyurl in keyurls:
keys = self._retrievePublicKey(keyurl)
diff --git a/yum/yumRepo.py b/yum/yumRepo.py
index 9bab1b4..970b30b 100644
--- a/yum/yumRepo.py
+++ b/yum/yumRepo.py
@@ -1126,11 +1126,15 @@ class YumRepository(Repository, config.RepoConf):
if self.gpg_import_func:
#FIXME probably should have an else off of this to
# complain if there is no import function
- self.gpg_import_func(self, self.confirm_func)
+ try:
+ self.gpg_import_func(self, self.confirm_func)
+ except Errors.YumBaseError, e:
+ raise URLGrabError(-1, 'Gpg Keys not imported, cannot verify repomd.xml for repo %s' % (self))
+
# FIXME if we get the okay here to import the key then
# we should set an option so that future key imports for this
# repo will be allowed w/o question
-
+
if not misc.valid_detached_sig(result, filepath, self.gpgdir):
raise URLGrabError(-1, 'repomd.xml signature could not be verified for %s' % (self))
commit ba177bbf285067d1eec24c10f2e0246d3a5d5d23
Merge: 122a950... 33abf35...
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Wed Aug 6 00:22:21 2008 -0400
Merge branch 'yum-3_2_X' of ssh://login.linux.duke.edu/home/groups/yum/git/yum into yum-3_2_X
* 'yum-3_2_X' of ssh://login.linux.duke.edu/home/groups/yum/git/yum:
Add failing test case for non-latest update/install with dep. -- update fails
Don't display download count if 1 pkg to download
Don't display download total if <= 1 pkgs downloaded
Return [] instead of None in named get_notices, to match non-named path
Return the get_applicable_notices() result in the right order (descending)
Don't show ppc packages on .i386 in UpdateNotice.__str__
Fix bad format string in UpdateNotice.__str__
Add get_applicable_notices() call to UpdateMetadata class
Fix UpdateNotice.__str__ when it's None, add name only lookups for notices
Add total download stats. line
Don't give up if PATTERNS_MAX reached, just do the operation multiple times
Make gpgcheck true/false work again
Remove the assoc. of gpgcheck=1/true meaning gpgcheck=all
Give more info. when we fail the disk space checks
commit 122a9503506f88f3a45b3f51a67429c723ab687a
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Wed Aug 6 00:22:08 2008 -0400
merge changes for repomd.xml signature checking and key import
diff --git a/cli.py b/cli.py
index 4dda42c..e8458b4 100644
--- a/cli.py
+++ b/cli.py
@@ -1060,6 +1060,8 @@ class YumOptionParser(OptionParser):
# setup the progress bars/callbacks
self.base.setupProgressCallbacks()
+ # setup the callbacks to import gpg pubkeys and confirm them
+ self.base.setupKeyImportCallbacks()
# Process repo enables and disables in order
for opt, repoexp in opts.repos:
diff --git a/output.py b/output.py
index c55e5d7..a2c70aa 100644
--- a/output.py
+++ b/output.py
@@ -386,7 +386,11 @@ class YumOutput:
return False
else:
return True
-
+
+ def _cli_confirm_gpg_key_import(self, keydict):
+ # FIXME what should we be printing here?
+ return self.userconfirm()
+
def _group_names2pkgs(self, pkg_names):
# Convert pkg_names to installed pkgs and available pkgs
ipkgs = self.rpmdb.searchNames(pkg_names)
@@ -699,7 +703,11 @@ Remove %5.5s Package(s)
def setupProgessCallbacks(self):
# api purposes only to protect the typo
self.setupProgressCallbacks()
-
+
+ def setupKeyImportCallbacks(self):
+ self.repos.confirm_func = self._cli_confirm_gpg_key_import
+ self.repos.gpg_import_func = self.getKeyForRepo
+
def interrupt_callback(self, cbobj):
'''Handle CTRL-C's during downloads
diff --git a/yum/__init__.py b/yum/__init__.py
index b2dc186..066e3dd 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -2711,6 +2711,38 @@ class YumBase(depsolve.Depsolve):
return returndict
+ def _retrievePublicKey(self, keyurl):
+ """
+ Retrieve a key file
+ @param keyurl: url to the key to retrieve
+ Returns a list of dicts with all the keyinfo
+ """
+ key_installed = False
+
+ self.logger.info(_('Retrieving GPG key from %s') % keyurl)
+
+ # Go get the GPG key from the given URL
+ try:
+ rawkey = urlgrabber.urlread(keyurl, limit=9999)
+ except urlgrabber.grabber.URLGrabError, e:
+ raise Errors.YumBaseError(_('GPG key retrieval failed: ') +
+ to_unicode(str(e)))
+ # Parse the key
+ keys_info = misc.getgpgkeyinfo(rawkey, multiple=True)
+ keys = []
+ for keyinfo in keys_info:
+ thiskey = {}
+ for info in ('keyid', 'timestamp', 'userid',
+ 'fingerprint', 'raw_key'):
+ if not keyinfo.has_key(info):
+ raise Errors.YumBaseError, \
+ _('GPG key parsing failed: key does not have value %s') + info
+ thiskey[info] = keyinfo[info]
+ thiskey['hexkeyid'] = misc.keyIdToRPMVer(keyinfo['keyid']).upper()
+ keys.append(thiskey)
+
+ return keys
+
def getKeyForPackage(self, po, askcb = None, fullaskcb = None):
"""
Retrieve a key for a package. If needed, prompt for if the key should
@@ -2731,60 +2763,40 @@ class YumBase(depsolve.Depsolve):
ts = rpmUtils.transaction.TransactionWrapper(self.conf.installroot)
for keyurl in keyurls:
- self.logger.info(_('Retrieving GPG key from %s') % keyurl)
-
- # Go get the GPG key from the given URL
- try:
- rawkey = urlgrabber.urlread(keyurl, limit=9999)
- except urlgrabber.grabber.URLGrabError, e:
- raise Errors.YumBaseError(_('GPG key retrieval failed: ') +
- to_unicode(str(e)))
-
- # Parse the key
- keys_info = misc.getgpgkeyinfo(rawkey, multiple=True)
-
- for keyinfo in keys_info:
- try:
- keyid = keyinfo['keyid']
- hexkeyid = misc.keyIdToRPMVer(keyid).upper()
- timestamp = keyinfo['timestamp']
- userid = keyinfo['userid']
- fingerprint = keyinfo['fingerprint']
- raw_key = keyinfo['raw_key']
- except ValueError, e:
- raise Errors.YumBaseError, \
- _('GPG key parsing failed: ') + str(e)
+ keys = self._retrievePublicKey(keyurl)
+ for info in keys:
# Check if key is already installed
- if misc.keyInstalled(ts, keyid, timestamp) >= 0:
+ if misc.keyInstalled(ts, info['keyid'], info['timestamp']) >= 0:
self.logger.info(_('GPG key at %s (0x%s) is already installed') % (
- keyurl, hexkeyid))
+ keyurl, info['hexkeyid']))
continue
# Try installing/updating GPG key
self.logger.critical(_('Importing GPG key 0x%s "%s" from %s') %
- (hexkeyid, to_unicode(userid),
+ (info['hexkeyid'],
+ to_unicode(info['userid']),
keyurl.replace("file://","")))
rc = False
if self.conf.assumeyes:
rc = True
elif fullaskcb:
- rc = fullaskcb({"po": po, "userid": userid,
- "hexkeyid": hexkeyid, "keyurl": keyurl,
- "fingerprint": fingerprint, "timestamp": timestamp})
+ rc = fullaskcb({"po": po, "userid": info['userid'],
+ "hexkeyid": info['hexkeyid'],
+ "keyurl": keyurl,
+ "fingerprint": info['fingerprint'],
+ "timestamp": info['timestamp']})
elif askcb:
- rc = askcb(po, userid, hexkeyid)
+ rc = askcb(po, info['userid'], info['hexkeyid'])
if not rc:
raise Errors.YumBaseError, _("Not installing key")
# Import the key
- result = ts.pgpImportPubkey(misc.procgpgkey(raw_key))
+ result = ts.pgpImportPubkey(misc.procgpgkey(info['raw_key']))
if result != 0:
raise Errors.YumBaseError, \
_('Key import failed (code %d)') % result
- misc.import_key_to_pubring(rawkey, po.repo.cachedir)
-
self.logger.info(_('Key imported successfully'))
key_installed = True
@@ -2801,6 +2813,63 @@ class YumBase(depsolve.Depsolve):
if result != 0:
self.logger.info(_("Import of key(s) didn't help, wrong key(s)?"))
raise Errors.YumBaseError, errmsg
+
+ def getKeyForRepo(self, repo, callback=None):
+ """
+ Retrieve a key for a repository If needed, prompt for if the key should
+ be imported using callback
+
+ @param repo: Repository object to retrieve the key of.
+ @param callback: Callback function to use for asking for verification
+ of a key. Takes a dictionary of key info.
+ """
+ keyurls = repo.gpgkey
+ key_installed = False
+ if not callback:
+ callback = self._confirmGpgKeyImport
+
+ for keyurl in keyurls:
+ keys = self._retrievePublicKey(keyurl)
+ for info in keys:
+ # Check if key is already installed
+ if info['keyid'] in misc.return_keyids_from_pubring(repo.gpgdir):
+ self.logger.info(_('GPG key at %s (0x%s) is already imported') % (
+ keyurl, info['hexkeyid']))
+ continue
+
+ # Try installing/updating GPG key
+ self.logger.critical(_('Importing GPG key 0x%s "%s" from %s') %
+ (info['hexkeyid'],
+ to_unicode(info['userid']),
+ keyurl.replace("file://","")))
+ rc = False
+ if self.conf.assumeyes:
+ rc = True
+ elif callback:
+ rc = callback({"repo": repo, "userid": info['userid'],
+ "hexkeyid": info['hexkeyid'], "keyurl": keyurl,
+ "fingerprint": info['fingerprint'],
+ "timestamp": info['timestamp']})
+
+
+ if not rc:
+ raise Errors.YumBaseError, _("Not installing key for repo %s") % repo
+
+ # Import the key
+ result = misc.import_key_to_pubring(info['raw_key'], info['hexkeyid'], gpgdir=repo.gpgdir)
+ if not result:
+ raise Errors.YumBaseError, _('Key import failed')
+ self.logger.info(_('Key imported successfully'))
+ key_installed = True
+
+ if not key_installed:
+ raise Errors.YumBaseError, \
+ _('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.') % (repo.name)
+
def _limit_installonly_pkgs(self):
if self.conf.installonly_limit < 1 :
@@ -2912,7 +2981,7 @@ class YumBase(depsolve.Depsolve):
This need to be overloaded in a subclass to make GPG Key import work
'''
return False
-
+
def _doTestTransaction(self,callback,display=None):
''' Do the RPM test transaction '''
# This can be overloaded by a subclass.
diff --git a/yum/misc.py b/yum/misc.py
index 3224a8e..1a3f33d 100644
--- a/yum/misc.py
+++ b/yum/misc.py
@@ -18,6 +18,7 @@ import bz2
from stat import *
try:
import gpgme
+ import gpgme.editutil
except ImportError:
gpgme = None
try:
@@ -339,30 +340,37 @@ def keyInstalled(ts, keyid, timestamp):
return -1
-def import_key_to_pubring(rawkey, repo_cachedir):
+def import_key_to_pubring(rawkey, keyid, cachedir=None, gpgdir=None):
+ # FIXME - cachedir can be removed from this method when we break api
if gpgme is None:
return False
-
- gpgdir = '%s/gpgdir' % repo_cachedir
+
+ if not gpgdir:
+ gpgdir = '%s/gpgdir' % cachedir
+
if not os.path.exists(gpgdir):
os.makedirs(gpgdir)
key_fo = StringIO(rawkey)
- ctx = gpgme.Context()
os.environ['GNUPGHOME'] = gpgdir
+ # import the key
+ ctx = gpgme.Context()
fp = open(os.path.join(gpgdir, 'gpg.conf'), 'wb')
fp.write('')
fp.close()
ctx.import_(key_fo)
key_fo.close()
+ # ultimately trust the key or pygpgme is definitionally stupid
+ k = ctx.get_key(keyid)
+ gpgme.editutil.edit_trust(ctx, k, gpgme.VALIDITY_ULTIMATE)
return True
def return_keyids_from_pubring(gpgdir):
if gpgme is None or not os.path.exists(gpgdir):
return []
-
- ctx = gpgme.Context()
+
os.environ['GNUPGHOME'] = gpgdir
+ ctx = gpgme.Context()
keyids = []
for k in ctx.keylist():
for subkey in k.subkeys:
@@ -370,7 +378,34 @@ def return_keyids_from_pubring(gpgdir):
keyids.append(subkey.keyid)
return keyids
-
+
+def valid_detached_sig(sig_file, signed_file, gpghome=None):
+ """takes signature , file that was signed and an optional gpghomedir"""
+
+ if gpghome and os.path.exists(gpghome):
+ os.environ['GNUPGHOME'] = gpghome
+
+ sig = open(sig_file, 'r')
+ signed_text = open(signed_file, 'r')
+ plaintext = None
+ ctx = gpgme.Context()
+
+ try:
+ sigs = ctx.verify(sig, signed_text, plaintext)
+ except gpgme.GpgmeError, e:
+ return False
+ else:
+ thissig = sigs[0] # is there ever a case where we care about a sig beyond the first one?
+ if thissig:
+ if thissig.validity in (gpgme.VALIDITY_FULL,
+ gpgme.VALIDITY_MARGINAL,
+ gpgme.VALIDITY_ULTIMATE):
+ return True
+ else:
+ return False
+
+ return False
+
def getCacheDir(tmpdir='/var/tmp'):
"""return a path to a valid and safe cachedir - only used when not running
as root or when --tempcache is set"""
diff --git a/yum/repos.py b/yum/repos.py
index 9c0960b..d290520 100644
--- a/yum/repos.py
+++ b/yum/repos.py
@@ -40,10 +40,14 @@ class RepoStorage:
self._setup = False
self.ayum = weakref(ayum)
+ # callbacks for handling gpg key imports for repomd.xml sig checks
+ # need to be set from outside of the repos object to do anything
+ # even quasi-useful
+ self.gpg_import_func = self.ayum.getKeyForRepo # defaults to what is probably sane-ish
+ self.confirm_func = None
def doSetup(self, thisrepo = None):
-
self.ayum.plugins.run('prereposetup')
if thisrepo is None:
@@ -56,10 +60,10 @@ class RepoStorage:
num = 1
for repo in repos:
- repo.setup(self.ayum.conf.cache, self.ayum.mediagrabber)
+ repo.setup(self.ayum.conf.cache, self.ayum.mediagrabber,
+ gpg_import_func = self.gpg_import_func, confirm_func=self.confirm_func)
num += 1
-
if self.callback and len(repos) > 0:
self.callback.progressbar(num, len(repos), repo.id)
diff --git a/yum/yumRepo.py b/yum/yumRepo.py
index 7723534..9bab1b4 100644
--- a/yum/yumRepo.py
+++ b/yum/yumRepo.py
@@ -251,6 +251,10 @@ class YumRepository(Repository, config.RepoConf):
# callback function for handling media
self.mediafunc = None
+ # callbacks for gpg key importing and confirmation
+ self.gpg_import_func = None
+ self.confirm_func = None
+
self._sack = None
self._grabfunc = None
@@ -474,6 +478,7 @@ class YumRepository(Repository, config.RepoConf):
self.setAttribute('cachedir', cachedir)
self.setAttribute('pkgdir', pkgdir)
self.setAttribute('hdrdir', hdrdir)
+ self.setAttribute('gpgdir', self.cachedir + '/gpgdir')
cookie = self.cachedir + '/' + self.metadata_cookie_fn
self.setAttribute('metadata_cookie', cookie)
@@ -751,10 +756,12 @@ class YumRepository(Repository, config.RepoConf):
del fo
- def setup(self, cache, mediafunc = None):
+ def setup(self, cache, mediafunc = None, gpg_import_func=None, confirm_func=None):
try:
self.cache = cache
self.mediafunc = mediafunc
+ self.gpg_import_func = gpg_import_func
+ self.confirm_func = confirm_func
self.dirSetup()
except Errors.RepoError, e:
raise
@@ -789,6 +796,8 @@ class YumRepository(Repository, config.RepoConf):
if grab_can_fail:
return None
raise Errors.RepoError, 'Error downloading file %s: %s' % (local, e)
+
+
return result
def _parseRepoXML(self, local, parse_can_fail=None):
@@ -1098,7 +1107,33 @@ class YumRepository(Repository, config.RepoConf):
filepath = fo.filename
else:
filepath = fo
+
+ if self.gpgcheck in ('repo'): # or whatever FIXME
+ sigfile = self.cachedir + '/repomd.xml.asc'
+ try:
+ result = self._getFile(relative='repodata/repomd.xml.asc',
+ copy_local=1,
+ local = sigfile,
+ text='%s repo signature' % self.id,
+ reget=None,
+ checkfunc=None,
+ cache=self.http_caching == 'all')
+ except URLGrabError, e:
+ raise URLGrabError(-1, 'Error finding signature for repomd.xml for %s: %s' % (self, e))
+
+ if not os.path.exists(self.gpgdir):
+ if self.gpg_import_func:
+ #FIXME probably should have an else off of this to
+ # complain if there is no import function
+ self.gpg_import_func(self, self.confirm_func)
+ # FIXME if we get the okay here to import the key then
+ # we should set an option so that future key imports for this
+ # repo will be allowed w/o question
+
+ if not misc.valid_detached_sig(result, filepath, self.gpgdir):
+ raise URLGrabError(-1, 'repomd.xml signature could not be verified for %s' % (self))
+
try:
repoMDObject.RepoMD(self.id, filepath)
except Errors.RepoMDError, e:
commit 33abf35cee3d383bcf764d69402d940f70650005
Author: James Antill <james at and.org>
Date: Tue Aug 5 22:25:20 2008 -0400
Add failing test case for non-latest update/install with dep. -- update fails
diff --git a/test/depsolvetests.py b/test/depsolvetests.py
index ca80d97..e57148d 100644
--- a/test/depsolvetests.py
+++ b/test/depsolvetests.py
@@ -904,3 +904,46 @@ class DepsolveTests(DepsolveTests):
self.assertEquals('ok', *self.resolveCode())
self.assertResult((xpo, po2))
+
+ def test_min_inst_and_dep(self):
+ ipo1 = FakePackage('bar', version='2')
+ self.tsInfo.addInstall(ipo1)
+
+ ipo2 = FakePackage('foo')
+ ipo2.addRequires('bar', 'GE', (None, '3', '0'))
+ self.tsInfo.addInstall(ipo2)
+
+ po1 = FakePackage('foo')
+ self.xsack.addPackage(po1)
+ po2 = FakePackage('bar', version='2')
+ self.xsack.addPackage(po2)
+ po3 = FakePackage('bar', version='3')
+ self.xsack.addPackage(po3)
+ po4 = FakePackage('bar', version='4')
+ self.xsack.addPackage(po4)
+
+ self.assertEquals('ok', *self.resolveCode())
+ self.assertResult((ipo2, po4))
+
+ def test_min_up_and_dep(self):
+ rpo1 = FakePackage('bar', version='1')
+ self.rpmdb.addPackage(rpo1)
+
+ ipo1 = FakePackage('bar', version='2')
+ self.tsInfo.addUpdate(ipo1, oldpo=rpo1)
+
+ ipo2 = FakePackage('foo')
+ ipo2.addRequires('bar', 'GE', (None, '3', '0'))
+ self.tsInfo.addInstall(ipo2)
+
+ po1 = FakePackage('foo')
+ self.xsack.addPackage(po1)
+ po2 = FakePackage('bar', version='2')
+ self.xsack.addPackage(po2)
+ po3 = FakePackage('bar', version='3')
+ self.xsack.addPackage(po3)
+ po4 = FakePackage('bar', version='4')
+ self.xsack.addPackage(po4)
+
+ self.assertEquals('ok', *self.resolveCode())
+ self.assertResult((ipo2, po4))
commit 32a6a4f7fa1ff247c66cb8f48426af379c1f81c0
Author: James Antill <james at and.org>
Date: Tue Aug 5 22:06:36 2008 -0400
Don't display download count if 1 pkg to download
diff --git a/yum/__init__.py b/yum/__init__.py
index b514414..dc06d21 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -1114,8 +1114,11 @@ class YumBase(depsolve.Depsolve):
continue
try:
- text = '(%s/%s): %s' % (i, len(remote_pkgs),
- os.path.basename(po.relativepath))
+ if len(remote_pkgs) == 1:
+ text = os.path.basename(po.relativepath)
+ else:
+ text = '(%s/%s): %s' % (i, len(remote_pkgs),
+ os.path.basename(po.relativepath))
mylocal = po.repo.getPackage(po,
checkfunc=checkfunc,
text=text,
commit a1977225604932a92b673f4636133385a126a042
Author: James Antill <james at and.org>
Date: Tue Aug 5 22:05:02 2008 -0400
Don't display download total if <= 1 pkgs downloaded
diff --git a/yum/__init__.py b/yum/__init__.py
index b742566..b514414 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -1132,7 +1132,7 @@ class YumBase(depsolve.Depsolve):
if errors.has_key(po):
del errors[po]
- if hasattr(urlgrabber.progress, 'TerminalLine'):
+ if len(remote_pkgs) > 1 and hasattr(urlgrabber.progress,'TerminalLine'):
tl = urlgrabber.progress.TerminalLine(8)
print "-" * tl.rest()
dl_time = time.time() - beg_download
commit 70bbcf7d5d62108f609f5ab41a38760848218368
Author: James Antill <james at and.org>
Date: Tue Aug 5 19:38:43 2008 -0400
Return [] instead of None in named get_notices, to match non-named path
diff --git a/yum/update_md.py b/yum/update_md.py
index e0851c7..e96b167 100644
--- a/yum/update_md.py
+++ b/yum/update_md.py
@@ -255,7 +255,7 @@ class UpdateMetadata(object):
""" Return all notices. """
if name is None:
return self._notices.values()
- return name in self._no_cache and self._no_cache[name] or None
+ return name in self._no_cache and self._no_cache[name] or []
notices = property(get_notices)
commit aab9ae73a51ca51f9e37b0f01e3be70c0521ee43
Author: James Antill <james at and.org>
Date: Mon Aug 4 02:41:56 2008 -0400
Return the get_applicable_notices() result in the right order (descending)
diff --git a/yum/update_md.py b/yum/update_md.py
index 8b2c2eb..e0851c7 100644
--- a/yum/update_md.py
+++ b/yum/update_md.py
@@ -295,7 +295,7 @@ class UpdateMetadata(object):
if _rpm_tup_vercmp(pkgtup, oldpkgtup) <= 0:
continue
ret.append((pkgtup, notice))
- ret.sort(cmp=_rpm_tup_vercmp, key=lambda x: x[0])
+ ret.sort(cmp=_rpm_tup_vercmp, key=lambda x: x[0], reverse=True)
return ret
def add(self, obj, mdtype='updateinfo'):
commit ae716ee38141866f4e3f48848120968f696eac0f
Author: James Antill <james at and.org>
Date: Mon Aug 4 02:16:48 2008 -0400
Don't show ppc packages on .i386 in UpdateNotice.__str__
diff --git a/yum/update_md.py b/yum/update_md.py
index 06c8c96..8b2c2eb 100644
--- a/yum/update_md.py
+++ b/yum/update_md.py
@@ -109,9 +109,14 @@ class UpdateNotice(object):
subsequent_indent=' ' * 12 + ': ')
head += "Description : %s\n" % '\n'.join(desc)
+ # Get a list of arches we care about:
+ arches = set(rpmUtils.arch.getArchList())
+
filelist = " Files :"
for pkg in self._md['pkglist']:
for file in pkg['packages']:
+ if file['arch'] not in arches:
+ continue
filelist += " %s\n\t :" % file['filename']
head += filelist[:-1].rstrip()
commit f8244e1c3b169d08cf982c575465eb019fac3e3e
Author: James Antill <james at and.org>
Date: Fri Aug 1 17:19:07 2008 -0400
Fix bad format string in UpdateNotice.__str__
diff --git a/yum/update_md.py b/yum/update_md.py
index 0df2de1..06c8c96 100644
--- a/yum/update_md.py
+++ b/yum/update_md.py
@@ -85,7 +85,7 @@ class UpdateNotice(object):
""" % self._md
if self._md['updated'] and self._md['updated'] != self._md['issued']:
- head += " Updated : %(updated)s" % self._md['updated']
+ head += " Updated : %s" % self._md['updated']
# Add our bugzilla references
bzs = filter(lambda r: r['type'] == 'bugzilla', self._md['references'])
commit 953228dcd3152afd711a347b96ac96dfdc5e28b6
Author: James Antill <james at and.org>
Date: Fri Aug 1 17:18:35 2008 -0400
Add get_applicable_notices() call to UpdateMetadata class
diff --git a/yum/update_md.py b/yum/update_md.py
index 98fe01a..0df2de1 100644
--- a/yum/update_md.py
+++ b/yum/update_md.py
@@ -27,6 +27,8 @@ import gzip
from textwrap import wrap
from yum.yumRepo import YumRepository
+import rpmUtils.miscutils
+
try:
from xml.etree import cElementTree
except ImportError:
@@ -227,6 +229,11 @@ class UpdateNotice(object):
return package
+def _rpm_tup_vercmp(tup1, tup2):
+ """ Compare two "std." tuples, (n, a, e, v, r). """
+ return rpmUtils.miscutils.compareEVR((tup1[2], tup1[3], tup1[4]),
+ (tup2[2], tup2[3], tup2[4]))
+
class UpdateMetadata(object):
"""
@@ -256,6 +263,36 @@ class UpdateMetadata(object):
nvr = '-'.join(nvr)
return self._cache.has_key(nvr) and self._cache[nvr] or None
+ # The problem with the above "get_notice" is that not everyone updates
+ # daily. So if you are at pkg-1, pkg-2 has a security notice, and pkg-3
+ # has a BZ fix notice. All you can see is the BZ notice for the new "pkg-3"
+ # with the above.
+ # So now instead you lookup based on the _installed_ pkg.pkgtup, and get
+ # two notices, in order: [(pkg-3, notice), (pkg-2, notice)]
+ # the reason for the sorting order is that the first match will give you
+ # the minimum pkg you need to move to.
+ def get_applicable_notices(self, pkgtup):
+ """
+ Retrieve any update notices which are newer than a
+ given std. pkgtup (name, arch, epoch, version, release) tuple.
+ """
+ oldpkgtup = pkgtup
+ name = oldpkgtup[0]
+ arch = oldpkgtup[1]
+ ret = []
+ for notice in self.get_notices(name):
+ for upkg in notice['pkglist']:
+ for pkg in upkg['packages']:
+ if pkg['name'] != name or pkg['arch'] != arch:
+ continue
+ pkgtup = (pkg['name'], pkg['arch'], pkg['epoch'] or '0',
+ pkg['version'], pkg['release'])
+ if _rpm_tup_vercmp(pkgtup, oldpkgtup) <= 0:
+ continue
+ ret.append((pkgtup, notice))
+ ret.sort(cmp=_rpm_tup_vercmp, key=lambda x: x[0])
+ return ret
+
def add(self, obj, mdtype='updateinfo'):
""" Parse a metadata from a given YumRepository, file, or filename. """
if not obj:
commit 1fd834b2619ffeccbffa9327dcad7705ab1f65aa
Author: James Antill <james at and.org>
Date: Thu Jul 31 13:40:07 2008 -0400
Fix UpdateNotice.__str__ when it's None, add name only lookups for notices
diff --git a/yum/update_md.py b/yum/update_md.py
index b5fdeda..98fe01a 100644
--- a/yum/update_md.py
+++ b/yum/update_md.py
@@ -102,9 +102,10 @@ class UpdateNotice(object):
cvelist += " %s\n\t :" % cve['id']
head += cvelist[:-1].rstrip() + '\n'
- desc = wrap(self._md['description'], width=64,
- subsequent_indent=' ' * 12 + ': ')
- head += "Description : %s\n" % '\n'.join(desc)
+ if self._md['description'] is not None:
+ desc = wrap(self._md['description'], width=64,
+ subsequent_indent=' ' * 12 + ': ')
+ head += "Description : %s\n" % '\n'.join(desc)
filelist = " Files :"
for pkg in self._md['pkglist']:
@@ -234,12 +235,15 @@ class UpdateMetadata(object):
def __init__(self):
self._notices = {}
- self._cache = {} # a pkg name => notice cache for quick lookups
+ self._cache = {} # a pkg nvr => notice cache for quick lookups
+ self._no_cache = {} # a pkg name only => notice list
self._repos = [] # list of repo ids that we've parsed
- def get_notices(self):
+ def get_notices(self, name=None):
""" Return all notices. """
- return self._notices.values()
+ if name is None:
+ return self._notices.values()
+ return name in self._no_cache and self._no_cache[name] or None
notices = property(get_notices)
@@ -278,6 +282,8 @@ class UpdateMetadata(object):
self._cache['%s-%s-%s' % (file['name'],
file['version'],
file['release'])] = un
+ no = self._no_cache.setdefault(file['name'], set())
+ no.add(un)
def __str__(self):
ret = ''
commit a711cbd9341571bff2588f7f5e20c1f5009e147f
Author: James Antill <james at and.org>
Date: Thu Jul 31 10:47:10 2008 -0400
Add total download stats. line
diff --git a/yum/__init__.py b/yum/__init__.py
index 874a54e..b742566 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -53,7 +53,7 @@ from parser import ConfigPreProcessor, varReplace
import transactioninfo
import urlgrabber
from urlgrabber.grabber import URLGrabError
-from urlgrabber.progress import format_number
+from urlgrabber.progress import format_number, format_time
from packageSack import packagesNewestByNameArch, packagesNewestByName
import depsolve
import plugins
@@ -1097,6 +1097,7 @@ class YumBase(depsolve.Depsolve):
if (hasattr(urlgrabber.progress, 'text_meter_total_size') and
len(remote_pkgs) > 1):
urlgrabber.progress.text_meter_total_size(remote_size)
+ beg_download = time.time()
i = 0
local_size = 0
for po in remote_pkgs:
@@ -1131,6 +1132,17 @@ class YumBase(depsolve.Depsolve):
if errors.has_key(po):
del errors[po]
+ if hasattr(urlgrabber.progress, 'TerminalLine'):
+ tl = urlgrabber.progress.TerminalLine(8)
+ print "-" * tl.rest()
+ dl_time = time.time() - beg_download
+ ui_size = tl.add(' | %5sB' % format_number(remote_size))
+ ui_time = tl.add(' %9s' % format_time(dl_time))
+ ui_end = tl.add(' ' * 5)
+ ui_bs = tl.add(' %5sB/s' % format_number(remote_size / dl_time))
+ print "%-*.*s%s%s%s%s" % (tl.rest(), tl.rest(), _("Total"),
+ ui_bs, ui_size, ui_time, ui_end)
+
self.plugins.run('postdownload', pkglist=pkglist, errors=errors)
return errors
commit 800f8bfd0d0294f837a91e664fc539898a7250c3
Author: James Antill <james at and.org>
Date: Tue Jul 29 10:55:27 2008 -0400
Don't give up if PATTERNS_MAX reached, just do the operation multiple times
diff --git a/yum/misc.py b/yum/misc.py
index 3224a8e..0e8c195 100644
--- a/yum/misc.py
+++ b/yum/misc.py
@@ -557,7 +557,31 @@ def find_ts_remaining(timestamp, yumlibpath='/var/lib/yum'):
to_complete_items.append((action, pkgspec))
return to_complete_items
+
+def seq_max_split(seq, max_entries):
+ """ Given a seq, split into a list of lists of length max_entries each. """
+ ret = []
+ num = len(seq)
+ beg = 0
+ while num > max_entries:
+ end = beg + max_entries
+ ret.append(seq[beg:end])
+ beg += max_entries
+ num -= max_entries
+ ret.append(seq[beg:])
+ return ret
+def to_xml(item, attrib=False):
+ import xml.sax.saxutils
+ item = to_utf8(item) # verify this does enough conversion
+ item = item.rstrip()
+ if attrib:
+ item = xml.sax.saxutils.escape(item, entities={'"':"""})
+ else:
+ item = xml.sax.saxutils.escape(item)
+ return item
+
+# ---------- i18n ----------
def to_unicode(obj, encoding='utf-8', errors='replace'):
''' convert a 'str' to 'unicode' '''
if isinstance(obj, basestring):
@@ -587,16 +611,6 @@ def to_str(obj):
obj = str(obj)
return obj
-def to_xml(item, attrib=False):
- import xml.sax.saxutils
- item = to_utf8(item) # verify this does enough conversion
- item = item.rstrip()
- if attrib:
- item = xml.sax.saxutils.escape(item, entities={'"':"""})
- else:
- item = xml.sax.saxutils.escape(item)
- return item
-
def get_my_lang_code():
import locale
mylang = locale.getlocale()
diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index 8bb5248..2c8dd20 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -34,6 +34,7 @@ import sqlutils
import constants
import operator
import time
+from yum.misc import seq_max_split
def catchSqliteException(func):
"""This decorator converts sqlite exceptions into RepoError"""
@@ -825,12 +826,10 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
return []
returnList = []
- if len(names) > constants.PATTERNS_MAX:
- names = set(names)
- for pkg in self.returnPackages():
- if pkg.name not in names:
- continue
- returnList.append(pkg)
+ max_entries = constants.PATTERNS_MAX
+ if len(names) > max_entries:
+ for names in seq_max_split(names, max_entries):
+ returnList.extend(self.searchNames(names))
return returnList
pat_sqls = []
@@ -1057,10 +1056,17 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
"""Builds a list of packages, only containing nevra information. No
excludes are done at this stage. """
- if patterns is None or len(patterns) > (constants.PATTERNS_MAX / 7):
+ if patterns is None:
patterns = []
+
+ returnList = []
+ max_entries = constants.PATTERNS_MAX / 7
+ if len(patterns) > max_entries:
+ for patterns in seq_max_split(patterns, max_entries):
+ returnList.extend(self._buildPkgObjList(repoid, patterns,
+ ignore_case))
+ return returnList
- returnList = []
for (repo,cache) in self.primarydb.items():
if (repoid == None or repoid == repo.id):
cur = cache.cursor()
commit 57e7ad9b27069f9e9408529a7f50c3827eaff947
Author: James Antill <james at and.org>
Date: Tue Jul 29 10:54:56 2008 -0400
Make gpgcheck true/false work again
diff --git a/yum/config.py b/yum/config.py
index 5904638..3df157b 100644
--- a/yum/config.py
+++ b/yum/config.py
@@ -628,8 +628,10 @@ class YumConf(StartupConf):
('none', 'all', 'packages', 'repo'),
{'0' : 'none',
'no' : 'none',
+ 'false' : 'none',
'1' : 'all',
'yes' : 'all',
+ 'true' : 'all',
'pkgs' : 'packages',
'repository' : 'repo'})
obsoletes = BoolOption(False)
commit b139e3112f5bcfdd72b74ebe0619cd028e327f0c
Author: James Antill <james at and.org>
Date: Mon Jul 28 18:03:34 2008 -0400
Remove the assoc. of gpgcheck=1/true meaning gpgcheck=all
diff --git a/cli.py b/cli.py
index 4dda42c..179970d 100644
--- a/cli.py
+++ b/cli.py
@@ -1079,9 +1079,9 @@ class YumOptionParser(OptionParser):
# Disable all gpg key checking, if requested.
if opts.nogpgcheck:
- self.base.conf.gpgcheck = 'false'
+ self.base.conf.gpgcheck = 'none'
for repo in self.base.repos.listEnabled():
- repo.gpgcheck = 'false'
+ repo.gpgcheck = 'none'
except ValueError, e:
self.logger.critical(_('Options Error: %s'), e)
diff --git a/yum/__init__.py b/yum/__init__.py
index 2801fb1..874a54e 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -1226,7 +1226,7 @@ class YumBase(depsolve.Depsolve):
check = repo.gpgcheck
hasgpgkey = not not repo.gpgkey
- if check in ('true', 'packages'):
+ if check in ('all', 'packages'):
ts = self.rpmdb.readOnlyTS()
sigresult = rpmUtils.miscutils.checkSig(ts, po.localPkg())
localfn = os.path.basename(po.localPkg())
diff --git a/yum/config.py b/yum/config.py
index 6354ee3..5904638 100644
--- a/yum/config.py
+++ b/yum/config.py
@@ -624,12 +624,12 @@ class YumConf(StartupConf):
diskspacecheck = BoolOption(True)
overwrite_groups = BoolOption(False)
keepalive = BoolOption(True)
- gpgcheck = CaselessSelectionOption('false',
- ('false', 'true', 'packages', 'repo'),
- {'0' : 'false',
- 'no' : 'false',
- '1' : 'true',
- 'yes' : 'true',
+ gpgcheck = CaselessSelectionOption('none',
+ ('none', 'all', 'packages', 'repo'),
+ {'0' : 'none',
+ 'no' : 'none',
+ '1' : 'all',
+ 'yes' : 'all',
'pkgs' : 'packages',
'repository' : 'repo'})
obsoletes = BoolOption(False)
commit 15166ebb2a71772d1eca2284818b88d10c0091d9
Author: James Antill <james at and.org>
Date: Mon Jul 28 12:46:27 2008 -0400
Give more info. when we fail the disk space checks
diff --git a/yum/__init__.py b/yum/__init__.py
index b2dc186..2801fb1 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -53,6 +53,7 @@ from parser import ConfigPreProcessor, varReplace
import transactioninfo
import urlgrabber
from urlgrabber.grabber import URLGrabError
+from urlgrabber.progress import format_number
from packageSack import packagesNewestByNameArch, packagesNewestByName
import depsolve
import plugins
@@ -1103,8 +1104,12 @@ class YumBase(depsolve.Depsolve):
checkfunc = (self.verifyPkg, (po, 1), {})
dirstat = os.statvfs(po.repo.pkgdir)
if (dirstat.f_bavail * dirstat.f_bsize) <= long(po.size):
- adderror(po, _('Insufficient space in download directory %s '
- 'to download') % po.repo.pkgdir)
+ adderror(po, _('Insufficient space in download directory %s\n'
+ " * free %s\n"
+ " * needed %s") %
+ (po.repo.pkgdir,
+ format_number(dirstat.f_bavail * dirstat.f_bsize),
+ format_number(po.size)))
continue
try:
commit 4bc761f70c4b8a504dd27cffead0d21207dfc200
Author: James Antill <james at and.org>
Date: Sun Jul 27 23:17:13 2008 -0400
Add --enableplugin option
diff --git a/cli.py b/cli.py
index d40e4b6..4dda42c 100644
--- a/cli.py
+++ b/cli.py
@@ -180,7 +180,8 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
optparser=self.optparser,
debuglevel=opts.debuglevel,
errorlevel=opts.errorlevel,
- disabled_plugins=self.optparser._splitArg(opts.disableplugins))
+ disabled_plugins=self.optparser._splitArg(opts.disableplugins),
+ enabled_plugins=self.optparser._splitArg(opts.enableplugins))
except yum.Errors.ConfigError, e:
self.logger.critical(_('Config Error: %s'), e)
@@ -991,7 +992,8 @@ class YumOptionParser(OptionParser):
try:
args = _filtercmdline(
('--noplugins','--version','-q', '-v', "--quiet", "--verbose"),
- ('-c', '-d', '-e', '--installroot','--disableplugin'),
+ ('-c', '-d', '-e', '--installroot',
+ '--disableplugin', '--enableplugin'),
args)
except ValueError, arg:
self.base.usage()
@@ -1176,6 +1178,9 @@ class YumOptionParser(OptionParser):
self.add_option("", "--disableplugin", dest="disableplugins", default=[],
action="append", help=_("disable plugins by name"),
metavar='[plugin]')
+ self.add_option("", "--enableplugin", dest="enableplugins", default=[],
+ action="append", help=_("enable plugins by name"),
+ metavar='[plugin]')
self.add_option("--skip-broken", action="store_true", dest="skipbroken",
help=_("skip packages with depsolving problems"))
diff --git a/yum/__init__.py b/yum/__init__.py
index 760fc85..b2dc186 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -136,7 +136,7 @@ class YumBase(depsolve.Depsolve):
def _getConfig(self, fn='/etc/yum/yum.conf', root='/', init_plugins=True,
plugin_types=(plugins.TYPE_CORE,), optparser=None, debuglevel=None,
- errorlevel=None,disabled_plugins=None):
+ errorlevel=None,disabled_plugins=None,enabled_plugins=None):
'''
Parse and load Yum's configuration files and call hooks initialise
plugins and logging.
@@ -153,6 +153,7 @@ class YumBase(depsolve.Depsolve):
@param errorlevel: Error level to use for logging. If None, the debug
level will be read from the configuration file.
@param disabled_plugins: Plugins to be disabled
+ @param enabled_plugins: Plugins to be enabled
'''
if self._conf:
@@ -178,7 +179,7 @@ class YumBase(depsolve.Depsolve):
if init_plugins and startupconf.plugins:
self.doPluginSetup(optparser, plugin_types, startupconf.pluginpath,
- startupconf.pluginconfpath,disabled_plugins)
+ startupconf.pluginconfpath,disabled_plugins,enabled_plugins)
self._conf = config.readMainConfig(startupconf)
@@ -317,7 +318,7 @@ class YumBase(depsolve.Depsolve):
self.plugins = plugins.DummyYumPlugins()
def doPluginSetup(self, optparser=None, plugin_types=None, searchpath=None,
- confpath=None,disabled_plugins=None):
+ confpath=None,disabled_plugins=None,enabled_plugins=None):
'''Initialise and enable yum plugins.
Note: _getConfig() will initialise plugins if instructed to. Only
@@ -335,12 +336,13 @@ class YumBase(depsolve.Depsolve):
configuration files. A default will be used if no value is
specified.
@param disabled_plugins: Plugins to be disabled
+ @param enabled_plugins: Plugins to be enabled
'''
if isinstance(self.plugins, plugins.YumPlugins):
raise RuntimeError(_("plugins already initialised"))
self.plugins = plugins.YumPlugins(self, searchpath, optparser,
- plugin_types, confpath, disabled_plugins)
+ plugin_types, confpath, disabled_plugins, enabled_plugins)
def doRpmDBSetup(self):
diff --git a/yum/plugins.py b/yum/plugins.py
index 9e094ed..7b8070a 100644
--- a/yum/plugins.py
+++ b/yum/plugins.py
@@ -115,7 +115,7 @@ class YumPlugins:
'''
def __init__(self, base, searchpath, optparser=None, types=None,
- pluginconfpath=None,disabled=None):
+ pluginconfpath=None,disabled=None,enabled=None):
'''Initialise the instance.
@param base: The
@@ -138,6 +138,7 @@ class YumPlugins:
self.cmdline = (None, None)
self.verbose_logger = logging.getLogger("yum.verbose.YumPlugins")
self.disabledPlugins = disabled
+ self.enabledPlugins = enabled
if types is None:
types = ALL_TYPES
if not isinstance(types, (list, tuple)):
@@ -186,6 +187,7 @@ class YumPlugins:
# Import plugins
self._used_disable_plugin = set()
+ self._used_enable_plugin = set()
for dir in self.searchpath:
if not os.path.isdir(dir):
continue
@@ -207,6 +209,26 @@ class YumPlugins:
self.verbose_logger.log(logginglevels.INFO_2,
_("No plugin match for: %s") % wc)
del self._used_disable_plugin
+ if self.enabledPlugins:
+ for wc in self.enabledPlugins:
+ if wc not in self._used_enable_plugin:
+ self.verbose_logger.log(logginglevels.INFO_2,
+ _("No plugin match for: %s") % wc)
+ del self._used_enable_plugin
+
+ @staticmethod
+ def _plugin_cmdline_match(modname, plugins, used):
+ """ Check if this plugin has been temporary enabled/disabled. """
+ if plugins is None:
+ return False
+
+ for wc in plugins:
+ if fnmatch.fnmatch(modname, wc):
+ used.add(wc)
+ return True
+
+ return False
+
def _loadplugin(self, modulefile, types):
'''Attempt to import a plugin module and register the hook methods it
@@ -216,8 +238,11 @@ class YumPlugins:
modname = modname.split('.py')[0]
conf = self._getpluginconf(modname)
- if not conf or not config.getOption(conf, 'main', 'enabled',
- config.BoolOption(False)):
+ if (not conf or
+ (not config.getOption(conf, 'main', 'enabled',
+ config.BoolOption(False)) and
+ not self._plugin_cmdline_match(modname, self.enabledPlugins,
+ self._used_enable_plugin))):
self.verbose_logger.debug(_('"%s" plugin is disabled'), modname)
return
@@ -256,12 +281,15 @@ class YumPlugins:
if plugintype not in types:
return
- # Check if this plugin has been temporary disabled
- if self.disabledPlugins:
- for wc in self.disabledPlugins:
- if fnmatch.fnmatch(modname, wc):
- self._used_disable_plugin.add(wc)
- return
+
+ # This should really work like enable/disable repo. and be based on the
+ # cmd line order ... but the API doesn't really allow that easily.
+ # FIXME: Fix for 4.*
+ if (self._plugin_cmdline_match(modname, self.disabledPlugins,
+ self._used_disable_plugin) and
+ not self._plugin_cmdline_match(modname, self.enabledPlugins,
+ self._used_enable_plugin)):
+ return
self.verbose_logger.log(logginglevels.DEBUG_3, _('Loading "%s" plugin'),
modname)
commit 60ff79687a4010ef6b81b9f25bacb7a83ce573a1
Author: James Antill <james at and.org>
Date: Sun Jul 27 23:12:49 2008 -0400
Minor cleanup for obsoletes processing
diff --git a/yum/packageSack.py b/yum/packageSack.py
index 4bb57bf..f3d2a4d 100644
--- a/yum/packageSack.py
+++ b/yum/packageSack.py
@@ -332,9 +332,12 @@ class MetaSack(PackageSackBase):
# go through each of the keys of the obs dict and see if it is in the
# sack of newest pkgs - if it is not - remove the entry
- for obstup in obsdict.keys():
+ togo = []
+ for obstup in obsdict:
if obstup not in newest_tups:
- del obsdict[obstup]
+ togo.append(obstup)
+ for obstup in togo:
+ del obsdict[obstup]
return obsdict
@@ -606,11 +609,7 @@ class PackageSack(PackageSackBase):
for po in self.returnPackages():
if len(po.obsoletes) == 0:
continue
-
- if not obs.has_key(po.pkgtup):
- obs[po.pkgtup] = po.obsoletes
- else:
- obs[po.pkgtup].extend(po.obsoletes)
+ obs.setdefault(po.pkgtup, []).extend(po.obsoletes)
if not newest:
return obs
@@ -621,9 +620,12 @@ class PackageSack(PackageSackBase):
# go through each of the keys of the obs dict and see if it is in the
# sack of newest pkgs - if it is not - remove the entry
- for obstup in obs.keys():
- if obstup not in newest_tups:
- del obs[obstup]
+ togo = []
+ for obstup in obs:
+ if obstup not in newest_tups:
+ togo.append(obstup)
+ for obstup in togo:
+ del obs[obstup]
return obs
commit af9b24b968a114ba9498af6cb40fe83c866606d5
Author: James Antill <james at and.org>
Date: Fri Jul 25 10:44:54 2008 -0400
Remove debugging code, I accidentally committed *sighs*
diff --git a/cli.py b/cli.py
index f11f7c2..d40e4b6 100644
--- a/cli.py
+++ b/cli.py
@@ -1080,9 +1080,6 @@ class YumOptionParser(OptionParser):
self.base.conf.gpgcheck = 'false'
for repo in self.base.repos.listEnabled():
repo.gpgcheck = 'false'
- print "JDBG:", self.base.conf.gpgcheck
- for repo in self.base.repos.listEnabled():
- print "JDBG: repo", repo, repo.gpgcheck
except ValueError, e:
self.logger.critical(_('Options Error: %s'), e)
commit 470ed482364425dc456d3911c36816ae6ac23174
Author: James Antill <james at and.org>
Date: Fri Jul 25 10:42:54 2008 -0400
Fix typo in CaselessSelectionOption.parse()
diff --git a/cli.py b/cli.py
index d40e4b6..f11f7c2 100644
--- a/cli.py
+++ b/cli.py
@@ -1080,6 +1080,9 @@ class YumOptionParser(OptionParser):
self.base.conf.gpgcheck = 'false'
for repo in self.base.repos.listEnabled():
repo.gpgcheck = 'false'
+ print "JDBG:", self.base.conf.gpgcheck
+ for repo in self.base.repos.listEnabled():
+ print "JDBG: repo", repo, repo.gpgcheck
except ValueError, e:
self.logger.critical(_('Options Error: %s'), e)
diff --git a/yum/config.py b/yum/config.py
index cab9972..6354ee3 100644
--- a/yum/config.py
+++ b/yum/config.py
@@ -348,7 +348,7 @@ class CaselessSelectionOption(SelectionOption):
lowers input case. '''
def parse(self, s):
- return super(SelectionOption, self).parse(default, s.lower())
+ return super(CaselessSelectionOption, self).parse(s.lower())
class BytesOption(Option):
commit f6904f0bd329e536680b2bb9cdfa6dfc3292c74d
Author: James Antill <james at and.org>
Date: Fri Jul 25 10:35:24 2008 -0400
Use the mapper for gpgcheck false/true, and tidy up the using code.
diff --git a/shell.py b/shell.py
index 9c0cb4b..ff9960b 100644
--- a/shell.py
+++ b/shell.py
@@ -236,9 +236,15 @@ class YumShell(cmd.Cmd):
getattr(self.base.conf, cmd))
else:
value = opts[0]
- if value.lower() not in ('0', 'no', 'false',
- '1', 'yes', 'true',
- 'packages', 'repository'):
+ if value.lower() in ('0', 'no'):
+ value = 'false'
+ if value.lower() in ('1', 'yes'):
+ value = 'true'
+ if value.lower() == 'repository':
+ value = 'repo'
+ if value.lower() == 'pkgs':
+ value = 'packages'
+ if value.lower() not in ('false', 'true', 'packages', 'repo'):
self.logger.critical('Value %s for %s is not a GPGcheck value', value, cmd)
return False
setattr(self.base.conf, cmd, value.lower())
diff --git a/yum/__init__.py b/yum/__init__.py
index 3eaf136..760fc85 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -1219,7 +1219,7 @@ class YumBase(depsolve.Depsolve):
check = repo.gpgcheck
hasgpgkey = not not repo.gpgkey
- if check in ('1', 'yes', 'true', 'packages'):
+ if check in ('true', 'packages'):
ts = self.rpmdb.readOnlyTS()
sigresult = rpmUtils.miscutils.checkSig(ts, po.localPkg())
localfn = os.path.basename(po.localPkg())
diff --git a/yum/config.py b/yum/config.py
index e5fe0c3..cab9972 100644
--- a/yum/config.py
+++ b/yum/config.py
@@ -624,10 +624,13 @@ class YumConf(StartupConf):
diskspacecheck = BoolOption(True)
overwrite_groups = BoolOption(False)
keepalive = BoolOption(True)
- gpgcheck = CaselessSelectionOption('false', ('0', 'no', 'false',
- '1', 'yes', 'true',
- 'packages', 'repo'),
- {'pkgs' : 'packages',
+ gpgcheck = CaselessSelectionOption('false',
+ ('false', 'true', 'packages', 'repo'),
+ {'0' : 'false',
+ 'no' : 'false',
+ '1' : 'true',
+ 'yes' : 'true',
+ 'pkgs' : 'packages',
'repository' : 'repo'})
obsoletes = BoolOption(False)
showdupesfromrepos = BoolOption(False)
diff --git a/yumcommands.py b/yumcommands.py
index 84c42e3..50a210a 100644
--- a/yumcommands.py
+++ b/yumcommands.py
@@ -42,7 +42,7 @@ def checkRootUID(base):
def checkGPGKey(base):
if not base.gpgKeyCheck():
for repo in base.repos.listEnabled():
- if repo.gpgcheck not in ('0', 'no', 'false') and repo.gpgkey == '':
+ if repo.gpgcheck != 'false' and repo.gpgkey == '':
msg = _("""
You have enabled checking of packages via GPG keys. This is a good thing.
However, you do not have any GPG public keys installed. You need to download
commit 40400da05c504e4411625eeebbd1bdc87b6114c1
Author: James Antill <james at and.org>
Date: Fri Jul 25 10:25:00 2008 -0400
Use repo instead of repository as the canonical option name for gpgcheck
diff --git a/yum/config.py b/yum/config.py
index 1708d50..e5fe0c3 100644
--- a/yum/config.py
+++ b/yum/config.py
@@ -331,11 +331,14 @@ class FloatOption(Option):
class SelectionOption(Option):
'''Handles string values where only specific values are allowed
'''
- def __init__(self, default=None, allowed=()):
+ def __init__(self, default=None, allowed=(), mapper={}):
super(SelectionOption, self).__init__(default)
self._allowed = allowed
+ self._mapper = mapper
def parse(self, s):
+ if s in self._mapper:
+ s = self._mapper[s]
if s not in self._allowed:
raise ValueError('"%s" is not an allowed value' % s)
return s
@@ -623,7 +626,9 @@ class YumConf(StartupConf):
keepalive = BoolOption(True)
gpgcheck = CaselessSelectionOption('false', ('0', 'no', 'false',
'1', 'yes', 'true',
- 'packages', 'repository'))
+ 'packages', 'repo'),
+ {'pkgs' : 'packages',
+ 'repository' : 'repo'})
obsoletes = BoolOption(False)
showdupesfromrepos = BoolOption(False)
enabled = BoolOption(True)
commit f43a333a21a9e3fe2d1e5e9dce10520aac677ba2
Author: James Antill <james at and.org>
Date: Fri Jul 25 09:54:34 2008 -0400
Convert the gpgcheck option to have all the options for repomd.xml signing
diff --git a/cli.py b/cli.py
index e536ec6..d40e4b6 100644
--- a/cli.py
+++ b/cli.py
@@ -1077,9 +1077,9 @@ class YumOptionParser(OptionParser):
# Disable all gpg key checking, if requested.
if opts.nogpgcheck:
- self.base.conf.gpgcheck = False
+ self.base.conf.gpgcheck = 'false'
for repo in self.base.repos.listEnabled():
- repo.gpgcheck = False
+ repo.gpgcheck = 'false'
except ValueError, e:
self.logger.critical(_('Options Error: %s'), e)
diff --git a/shell.py b/shell.py
index b21c402..9c0cb4b 100644
--- a/shell.py
+++ b/shell.py
@@ -214,7 +214,7 @@ class YumShell(cmd.Cmd):
elif cmd == 'errorlevel':
logginglevels.setErrorLevel(val)
# bools
- elif cmd in ['gpgcheck', 'obsoletes', 'assumeyes']:
+ elif cmd in ['obsoletes', 'assumeyes']:
opts = self._shlex_split(args)
if not opts:
self.verbose_logger.log(logginglevels.INFO_2, '%s: %s', cmd,
@@ -229,6 +229,20 @@ class YumShell(cmd.Cmd):
if cmd == 'obsoletes':
self.base.up = None
+ elif cmd in ['gpgcheck']:
+ opts = self._shlex_split(args)
+ if not opts:
+ self.verbose_logger.log(logginglevels.INFO_2, '%s: %s', cmd,
+ getattr(self.base.conf, cmd))
+ else:
+ value = opts[0]
+ if value.lower() not in ('0', 'no', 'false',
+ '1', 'yes', 'true',
+ 'packages', 'repository'):
+ self.logger.critical('Value %s for %s is not a GPGcheck value', value, cmd)
+ return False
+ setattr(self.base.conf, cmd, value.lower())
+
elif cmd in ['exclude']:
args = args.replace(',', ' ')
opts = self._shlex_split(args)
diff --git a/yum/__init__.py b/yum/__init__.py
index a4cf4f8..3eaf136 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -1219,7 +1219,7 @@ class YumBase(depsolve.Depsolve):
check = repo.gpgcheck
hasgpgkey = not not repo.gpgkey
- if check:
+ if check in ('1', 'yes', 'true', 'packages'):
ts = self.rpmdb.readOnlyTS()
sigresult = rpmUtils.miscutils.checkSig(ts, po.localPkg())
localfn = os.path.basename(po.localPkg())
diff --git a/yum/config.py b/yum/config.py
index eca8200..1708d50 100644
--- a/yum/config.py
+++ b/yum/config.py
@@ -340,6 +340,13 @@ class SelectionOption(Option):
raise ValueError('"%s" is not an allowed value' % s)
return s
+class CaselessSelectionOption(SelectionOption):
+ ''' Mainly for compat. with BoolOption, works like SelectionOption but
+ lowers input case. '''
+
+ def parse(self, s):
+ return super(SelectionOption, self).parse(default, s.lower())
+
class BytesOption(Option):
"""
@@ -429,7 +436,6 @@ class ThrottleOption(BytesOption):
else:
return BytesOption.parse(self, s)
-
class BaseConfig(object):
'''
Base class for storing configuration definitions. Subclass when creating
@@ -615,7 +621,9 @@ class YumConf(StartupConf):
diskspacecheck = BoolOption(True)
overwrite_groups = BoolOption(False)
keepalive = BoolOption(True)
- gpgcheck = BoolOption(False)
+ gpgcheck = CaselessSelectionOption('false', ('0', 'no', 'false',
+ '1', 'yes', 'true',
+ 'packages', 'repository'))
obsoletes = BoolOption(False)
showdupesfromrepos = BoolOption(False)
enabled = BoolOption(True)
diff --git a/yumcommands.py b/yumcommands.py
index 7241809..84c42e3 100644
--- a/yumcommands.py
+++ b/yumcommands.py
@@ -42,7 +42,7 @@ def checkRootUID(base):
def checkGPGKey(base):
if not base.gpgKeyCheck():
for repo in base.repos.listEnabled():
- if repo.gpgcheck and repo.gpgkey == '':
+ if repo.gpgcheck not in ('0', 'no', 'false') and repo.gpgkey == '':
msg = _("""
You have enabled checking of packages via GPG keys. This is a good thing.
However, you do not have any GPG public keys installed. You need to download
commit 3edf4c6105750086885c32b9eec8b9980e05af4e
Author: James Antill <james at and.org>
Date: Thu Jul 24 23:33:06 2008 -0400
Give nicer messages when we can't find things due to case sensitivity
diff --git a/cli.py b/cli.py
index 4d84b74..e536ec6 100644
--- a/cli.py
+++ b/cli.py
@@ -528,13 +528,18 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
except yum.Errors.InstallError:
self.verbose_logger.log(yum.logginglevels.INFO_2,
_('No package %s available.'), arg)
-
+ matches = self.doPackageLists('available', patterns=[arg],
+ ignore_case=True)
+ matches = set(map(lambda x: x.name, matches.available))
+ if matches:
+ msg = self.fmtKeyValFill(_(' * Maybe you meant: '),
+ ", ".join(matches))
+ self.verbose_logger.log(yum.logginglevels.INFO_2, msg)
if len(self.tsInfo) > oldcount:
return 2, [_('Package(s) to install')]
return 0, [_('Nothing to do')]
-
def updatePkgs(self, userlist, quiet=0):
"""take user commands and populate transaction wrapper with
packages to be updated"""
commit c6da933031830f528f3319f18536070634e272e1
Author: James Antill <james at and.org>
Date: Thu Jul 24 23:31:15 2008 -0400
Return the correct thing for skipped matchPackageNames, eg. 'yum update blah'
diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index 2a1de81..8bb5248 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -1025,7 +1025,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
@catchSqliteException
def matchPackageNames(self, pkgspecs):
if self._skip_all():
- return []
+ return [], [], []
matched = []
exactmatch = []
commit a8bf9c7b78445d6b7021af8a2b20b2c07839c7a3
Author: James Antill <james at and.org>
Date: Thu Jul 24 13:08:08 2008 -0400
Output header again in repolist (logger's output nothing on errors, is weird).
Allow extra patterns to match sub-sets of repos.
Add more stats. to repolist -v, updated/size/etc.
diff --git a/yumcommands.py b/yumcommands.py
index c9f7280..7241809 100644
--- a/yumcommands.py
+++ b/yumcommands.py
@@ -26,6 +26,8 @@ from yum import _
import yum.Errors
import operator
import locale
+import fnmatch
+import time
def checkRootUID(base):
"""
@@ -629,18 +631,29 @@ class RepoListCommand(YumCommand):
def getSummary(self):
return _('Display the configured software repositories')
- def doCheck(self, base, basecmd, extcmds):
- if len(extcmds) == 0:
- return
- elif len(extcmds) > 1 or extcmds[0] not in ('all', 'disabled',
- 'enabled'):
- raise cli.CliError
-
def doCommand(self, base, basecmd, extcmds):
- if len(extcmds) == 1:
+ def _repo_size(repo):
+ ret = 0
+ for pkg in repo.sack.returnPackages():
+ ret += pkg.packagesize
+ return base.format_number(ret)
+
+ def _repo_match(repo, patterns):
+ rid = repo.id.lower()
+ rnm = repo.name.lower()
+ for pat in patterns:
+ if fnmatch.fnmatch(rid, pat):
+ return True
+ if fnmatch.fnmatch(rnm, pat):
+ return True
+ return False
+
+ if len(extcmds) >= 1 and extcmds[0] in ('all', 'disabled', 'enabled'):
arg = extcmds[0]
+ extcmds = extcmds[1:]
else:
arg = 'enabled'
+ extcmds = map(lambda x: x.lower(), extcmds)
# Setup so len(repo.sack) is correct
base.repos.populateSack()
@@ -661,6 +674,8 @@ class RepoListCommand(YumCommand):
hiend = ''
tot_num = 0
for repo in repos:
+ if len(extcmds) and not _repo_match(repo, extcmds):
+ continue
if repo in enabled_repos:
enabled = True
ui_enabled = ehibeg + _('enabled') + hiend
@@ -668,6 +683,8 @@ class RepoListCommand(YumCommand):
tot_num += num
ui_num = locale.format("%d", num, True)
ui_fmt_num = ": %7s"
+ if verbose:
+ ui_size = _repo_size(repo)
else:
enabled = False
ui_enabled = dhibeg + _('disabled') + hiend
@@ -680,16 +697,37 @@ class RepoListCommand(YumCommand):
if not done and not verbose:
base.verbose_logger.log(logginglevels.INFO_2,
format_string, _('repo id'),
- _('repo name'), _('status'))
+ _('repo name'), _('status'), "")
done = True
if verbose:
- line1 = base.fmtKeyValFill(_("Repo-id : "), repo)
- line2 = base.fmtKeyValFill(_("Repo-name : "), repo.name)
- line3 = base.fmtKeyValFill(_("Repo-enabled: "), ui_enabled)
- line4 = base.fmtKeyValFill(_("Repo-size : "), ui_num)
+ out = [base.fmtKeyValFill(_("Repo-id : "), repo),
+ base.fmtKeyValFill(_("Repo-name : "), repo.name),
+ base.fmtKeyValFill(_("Repo-status : "), ui_enabled)]
+ if enabled:
+ out += [base.fmtKeyValFill(_("Repo-updated: "),
+ time.ctime(repo.repoXML.timestamp)),
+ base.fmtKeyValFill(_("Repo-pkgs : "), ui_num),
+ base.fmtKeyValFill(_("Repo-size : "),ui_size)]
+
+ if repo.baseurl:
+ out += [base.fmtKeyValFill(_("Repo-baseurl: "),
+ ", ".join(repo.baseurl))]
+
+ if repo.mirrorlist:
+ out += [base.fmtKeyValFill(_("Repo-mirrors: "),
+ repo.mirrorlist)]
+
+ if repo.exclude:
+ out += [base.fmtKeyValFill(_("Repo-exclude: "),
+ ", ".join(repo.exclude))]
+
+ if repo.includepkgs:
+ out += [base.fmtKeyValFill(_("Repo-include: "),
+ ", ".join(repo.includepkgs))]
+
base.verbose_logger.log(logginglevels.DEBUG_3,
- "%s\n%s\n%s\n%s\n",
- line1, line2, line3, line4)
+ "%s\n",
+ "\n".join(out))
else:
base.verbose_logger.log(logginglevels.INFO_2, format_string,
repo, repo.name, ui_enabled,
commit eb040f4c7604751382c7840a03947c8742550a3c
Author: James Antill <james at and.org>
Date: Wed Jul 23 10:23:15 2008 -0400
And fix _prco_req2req after the cleanup, testing is good
diff --git a/yum/depsolve.py b/yum/depsolve.py
index b97d297..27e5794 100644
--- a/yum/depsolve.py
+++ b/yum/depsolve.py
@@ -290,9 +290,8 @@ class Depsolve(object):
def _prco_req_nfv2req(rn, rf, rv):
return (rn, flags[rf], version_tuple_to_string(rv))
- @staticmethod
- def _prco_req2req(req):
- self._prco_req_nfv2req(req[0], req[1], req[2])
+ def _prco_req2req(self, req):
+ return self._prco_req_nfv2req(req[0], req[1], req[2])
def _requiringFromInstalled(self, requiringPo, requirement, errorlist):
"""processes the dependency resolution for a dep where the requiring
commit d2b54fd06506464431dcc274af99623f7dbd4e30
Author: James Antill <james at and.org>
Date: Wed Jul 23 10:18:22 2008 -0400
Minor reuse of code for prco requirement to internal requirements conversion
diff --git a/yum/depsolve.py b/yum/depsolve.py
index 65ab8d3..b97d297 100644
--- a/yum/depsolve.py
+++ b/yum/depsolve.py
@@ -287,8 +287,12 @@ class Depsolve(object):
return (CheckDeps, missingdep, errormsgs)
@staticmethod
- def _prco_req2requirment(req):
- return (req[0], flags[req[1]], version_tuple_to_string(req[2]))
+ def _prco_req_nfv2req(rn, rf, rv):
+ return (rn, flags[rf], version_tuple_to_string(rv))
+
+ @staticmethod
+ def _prco_req2req(req):
+ self._prco_req_nfv2req(req[0], req[1], req[2])
def _requiringFromInstalled(self, requiringPo, requirement, errorlist):
"""processes the dependency resolution for a dep where the requiring
@@ -382,7 +386,7 @@ class Depsolve(object):
# If the requirement is still there, try and solve it again
# so we don't lose it
for pkg in txmbrs[0].updated_by:
- if requirement in map(self._prco_req2requirment, pkg.returnPrco('requires')):
+ if requirement in map(self._prco_req2req, pkg.returnPrco('requires')):
return True, missingdep + self._requiringFromTransaction(pkg, requirement, errorlist)[1]
checkdeps = True
return checkdeps, missingdep
@@ -805,7 +809,7 @@ class Depsolve(object):
self.verbose_logger.log(logginglevels.DEBUG_2, _("looking for %s as a requirement of %s"), req, txmbr)
provs = self.tsInfo.getProvides(*req)
if not provs:
- ret.append( (txmbr.po, self._prco_req2requirment(req)) )
+ ret.append( (txmbr.po, self._prco_req2req(req)) )
continue
#Add relationship
@@ -840,7 +844,7 @@ class Depsolve(object):
for pkg, hits in self.tsInfo.getRequires(*prov).iteritems():
for rn, rf, rv in hits:
if not self.tsInfo.getProvides(rn, rf, rv):
- ret.append( (pkg, (rn, flags[rf], version_tuple_to_string(rv))) )
+ ret.append( (pkg, self._prco_req_nfv2req(rn, rf, rv)) )
return ret
def _checkFileRequires(self):
@@ -908,7 +912,8 @@ class Depsolve(object):
for conflicting_po in self.tsInfo.getNewProvides(r, f, v):
if conflicting_po.pkgtup[0] == po.pkgtup[0] and conflicting_po.pkgtup[2:] == po.pkgtup[2:]:
continue
- ret.append( (po, (r, flags[f], version_tuple_to_string(v)), conflicting_po) )
+ ret.append( (po, self._prco_req_nfv2req(r, f, v),
+ conflicting_po) )
for txmbr in self.tsInfo.getMembersWithState(output_states=TS_INSTALL_STATES):
po = txmbr.po
for conflict in txmbr.po.returnPrco('conflicts'):
@@ -916,7 +921,8 @@ class Depsolve(object):
for conflicting_po in self.tsInfo.getProvides(r, f, v):
if conflicting_po.pkgtup[0] == po.pkgtup[0] and conflicting_po.pkgtup[2:] == po.pkgtup[2:]:
continue
- ret.append( (po, (r, flags[f], version_tuple_to_string(v)), conflicting_po) )
+ ret.append( (po, self._prco_req_nfv2req(r, f, v),
+ conflicting_po) )
return ret
commit c93c8880118b34a7e6e4668ababdd404c71ad690
Author: James Antill <james at and.org>
Date: Wed Jul 23 04:08:48 2008 -0400
If we still have the requirement we are upgrading out of, try again
diff --git a/yum/depsolve.py b/yum/depsolve.py
index ee57915..65ab8d3 100644
--- a/yum/depsolve.py
+++ b/yum/depsolve.py
@@ -285,6 +285,10 @@ class Depsolve(object):
missingdep = 0
return (CheckDeps, missingdep, errormsgs)
+
+ @staticmethod
+ def _prco_req2requirment(req):
+ return (req[0], flags[req[1]], version_tuple_to_string(req[2]))
def _requiringFromInstalled(self, requiringPo, requirement, errorlist):
"""processes the dependency resolution for a dep where the requiring
@@ -375,6 +379,11 @@ class Depsolve(object):
requiringPo, txmbrs[0].obsoleted_by[0])
else:
self.verbose_logger.log(logginglevels.DEBUG_2, _('TSINFO: Updating %s to resolve dep.'), requiringPo)
+ # If the requirement is still there, try and solve it again
+ # so we don't lose it
+ for pkg in txmbrs[0].updated_by:
+ if requirement in map(self._prco_req2requirment, pkg.returnPrco('requires')):
+ return True, missingdep + self._requiringFromTransaction(pkg, requirement, errorlist)[1]
checkdeps = True
return checkdeps, missingdep
self.verbose_logger.log(logginglevels.DEBUG_2, _('Cannot find an update path for dep for: %s'), niceformatneed)
@@ -796,7 +805,7 @@ class Depsolve(object):
self.verbose_logger.log(logginglevels.DEBUG_2, _("looking for %s as a requirement of %s"), req, txmbr)
provs = self.tsInfo.getProvides(*req)
if not provs:
- ret.append( (txmbr.po, (req[0], flags[req[1]], version_tuple_to_string(req[2]))) )
+ ret.append( (txmbr.po, self._prco_req2requirment(req)) )
continue
#Add relationship
commit da062f14e9299f15c113e8ff5c9eb80169388af7
Author: James Antill <james at and.org>
Date: Tue Jul 22 15:00:29 2008 -0400
Fix for python-2.4.z, as it has no hashlib
diff --git a/yum/misc.py b/yum/misc.py
index 74bab1e..3224a8e 100644
--- a/yum/misc.py
+++ b/yum/misc.py
@@ -20,7 +20,23 @@ try:
import gpgme
except ImportError:
gpgme = None
-import hashlib
+try:
+ import hashlib
+ _available_checksums = ['md5', 'sha1', 'sha256', 'sha512']
+except ImportError:
+ # Python-2.4.z ... gah!
+ import sha
+ import md5
+ _available_checksums = ['md5', 'sha1']
+ class hashlib:
+
+ @staticmethod
+ def new(algo):
+ if algo == 'md5':
+ return md5.new()
+ if algo == 'sha1':
+ return sha.new()
+ raise ValueError, "Bad checksum type"
from Errors import MiscError
@@ -157,7 +173,7 @@ def checksum(sumtype, file, CHUNK=2**16):
if sumtype == 'sha':
sumtype = 'sha1'
- if sumtype in ['md5', 'sha1', 'sha256', 'sha512']:
+ if sumtype in _available_checksums:
sumalgo = hashlib.new(sumtype)
else:
raise MiscError, 'Error Checksumming file, bad checksum type %s' % sumtype
commit 3c6b9b72b5fcb038cd12a4ec207bc39e8bfe7357
Author: James Antill <james at and.org>
Date: Tue Jul 22 15:00:11 2008 -0400
Change function name from simpleNevraList to Envra, as that's what it outputs
diff --git a/output.py b/output.py
index 04b0491..c55e5d7 100644
--- a/output.py
+++ b/output.py
@@ -253,12 +253,12 @@ class YumOutput:
na = ""
print "%-40.40s %-22.22s %-16.16s" % (na, ver, pkg.repoid)
- def simpleNevraList(self, pkg, ui_overflow=False, indent=''):
- nevra = "%s%s" % (indent, str(pkg))
- if ui_overflow and len(nevra) > 63:
- print "%s %s" % (nevra, "...")
- nevra = ""
- print "%-63.63s %-16.16s" % (nevra, pkg.repoid)
+ def simpleEnvraList(self, pkg, ui_overflow=False, indent=''):
+ envra = "%s%s" % (indent, str(pkg))
+ if ui_overflow and len(envra) > 63:
+ print "%s %s" % (envra, "...")
+ envra = ""
+ print "%-63.63s %-16.16s" % (envra, pkg.repoid)
def fmtKeyValFill(self, key, val):
""" Return a key value pair in the common two column output format. """
@@ -419,7 +419,7 @@ class YumOutput:
print '%s%s' % (indent, item)
continue
for pkg in sorted(pkg_names2pkgs[item]):
- self.simpleNevraList(pkg, ui_overflow=True, indent=indent)
+ self.simpleEnvraList(pkg, ui_overflow=True, indent=indent)
def displayPkgsInGroups(self, group):
mylang = get_my_lang_code()
commit e487f1e276838563cc81e8fa8fa02c76c6c9991b
Author: James Antill <james at and.org>
Date: Tue Jul 22 13:39:10 2008 -0400
Move to using hashlib directly in checksum, also add sha256/sha512 options
diff --git a/yum/misc.py b/yum/misc.py
index caae307..74bab1e 100644
--- a/yum/misc.py
+++ b/yum/misc.py
@@ -20,6 +20,7 @@ try:
import gpgme
except ImportError:
gpgme = None
+import hashlib
from Errors import MiscError
@@ -143,7 +144,7 @@ def unique(s):
def checksum(sumtype, file, CHUNK=2**16):
"""takes filename, hand back Checksum of it
- sumtype = md5 or sha
+ sumtype = md5 or sha/sha1/sha256/sha512 (note sha == sha1)
filename = /path/to/file
CHUNK=65536 by default"""
@@ -153,13 +154,11 @@ def checksum(sumtype, file, CHUNK=2**16):
fo = file # assume it's a file-like-object
else:
fo = open(file, 'r', CHUNK)
-
- if sumtype == 'md5':
- import md5
- sumalgo = md5.new()
- elif sumtype == 'sha':
- import sha
- sumalgo = sha.new()
+
+ if sumtype == 'sha':
+ sumtype = 'sha1'
+ if sumtype in ['md5', 'sha1', 'sha256', 'sha512']:
+ sumalgo = hashlib.new(sumtype)
else:
raise MiscError, 'Error Checksumming file, bad checksum type %s' % sumtype
chunk = fo.read
commit 8042b26a6261dbd3937d6d00161d189f58023890
Merge: c186791... 3646e64...
Author: James Antill <james at and.org>
Date: Tue Jul 22 13:15:30 2008 -0400
Merge branch 'yum-3_2_X' of ssh://login.linux.duke.edu/home/groups/yum/git/yum into yum-3_2_X
* 'yum-3_2_X' of ssh://login.linux.duke.edu/home/groups/yum/git/yum:
add a __version_info__ tuple of ints derived from __version__
Add parameters to selectGroup()
new german translation updates from Fabian Affolter
silence the "No package matched to remove" lines during groupremove operations.
commit c1867919a7ced82c6b48dd1f2b71d209d76a7c0c
Merge: 80bb298... 6a344d1...
Author: James Antill <james at and.org>
Date: Tue Jul 22 13:15:03 2008 -0400
Merge branch 'repo-sacks' into yum-3_2_X
* repo-sacks:
Don't create sacks for repos that we don't care about
commit 80bb298618570c85a2ac72b37c9009ebf1af235e
Author: James Antill <james at and.org>
Date: Wed Jun 11 12:36:18 2008 -0400
Try and solve the 666 requires on a single package problem, the
kernel people want to try this for ABI stuff (each symbol is a provides).
diff --git a/yum/depsolve.py b/yum/depsolve.py
index 2577cef..ee57915 100644
--- a/yum/depsolve.py
+++ b/yum/depsolve.py
@@ -396,7 +396,24 @@ class Depsolve(object):
return checkdeps, missingdep
+ def _quickWhatProvides(self, name, flags, version):
+ if self._last_req is None:
+ return False
+ if flags == 0:
+ flags = None
+ if type(version) in (types.StringType, types.NoneType, types.UnicodeType):
+ (r_e, r_v, r_r) = rpmUtils.miscutils.stringToVersion(version)
+ elif type(version) in (types.TupleType, types.ListType): # would this ever be a ListType?
+ (r_e, r_v, r_r) = version
+
+ # Quick lookup, lots of reqs for one pkg:
+ po = self._last_req
+ if po.checkPrco('provides', (name, flags, (r_e, r_v, r_r))):
+ self.verbose_logger.debug(_('Quick matched %s to require for %s'), po, name)
+ return True
+ return False
+
def _requiringFromTransaction(self, requiringPo, requirement, errorlist):
"""processes the dependency resolution for a dep where requiring
package is in the transaction set"""
@@ -427,8 +444,10 @@ class Depsolve(object):
# - if they are the same
# - be confused but continue
- provSack = self.whatProvides(needname, needflags, needversion)
+ if self._quickWhatProvides(needname, needflags, needversion):
+ return checkdeps, missingdep
+ provSack = self.whatProvides(needname, needflags, needversion)
# get rid of things that are already in the rpmdb - b/c it's pointless to use them here
for pkg in provSack.returnPackages():
@@ -483,8 +502,8 @@ class Depsolve(object):
_('%s already in ts, skipping this one'), pkg)
# FIXME: Remove this line, if it is not needed ?
# checkdeps = 1
+ self._last_req = pkg
return checkdeps, missingdep
-
# find the best one
@@ -496,6 +515,7 @@ class Depsolve(object):
for txmbr in results:
if pkg == txmbr.po:
checkdeps = True
+ self._last_req = pkg
return checkdeps, missingdep
# find out which arch of the ones we can choose from is closest
@@ -531,11 +551,13 @@ class Depsolve(object):
txmbr = self.tsInfo.addUpdate(best, inst[0])
txmbr.setAsDep(po=requiringPo)
txmbr.reason = "dep"
+ self._last_req = best
else:
self.verbose_logger.debug(_('TSINFO: Marking %s as install for %s'), best,
requiringPo)
txmbr = self.tsInfo.addInstall(best)
txmbr.setAsDep(po=requiringPo)
+ self._last_req = best
# if we had other packages with this name.arch that we found
# before, they're not going to be installed anymore, so we
@@ -627,6 +649,7 @@ class Depsolve(object):
self.po_with_problems = set()
self._working_po = None
+ self._last_req = None
self.tsInfo.resetResolved(hard=False)
CheckDeps = True
commit 6a344d1b1f99e0eb8789c087759feaa3f3f1c696
Merge: 7550b27... c50a61a...
Author: James Antill <james at and.org>
Date: Tue Jul 22 12:16:26 2008 -0400
Merge conflict
diff --cc yum/yumRepo.py
index 47ef8f1,b032b57..7723534
--- a/yum/yumRepo.py
+++ b/yum/yumRepo.py
@@@ -251,21 -251,19 +251,26 @@@ class YumRepository(Repository, config.
# callback function for handling media
self.mediafunc = None
+ self._sack = None
+
+ self._grabfunc = None
+ self._grab = None
+
+ def _getSack(self):
+ # FIXME: Note that having the repo hold the sack, which holds "repos"
+ # is not only confusing but creates a circular dep.
+ # Atm. we don't leak memory because RepoStorage.close() is called,
+ # which calls repo.close() which calls sack.close() which removes the
+ # repos from the sack ... thus. breaking the cycle.
- self.sack = sqlitesack.YumSqlitePackageSack(
+ if self._sack is None:
+ self._sack = sqlitesack.YumSqlitePackageSack(
sqlitesack.YumAvailablePackageSqlite)
-
- self._grabfunc = None
- self._grab = None
+ return self._sack
+ sack = property(_getSack)
def close(self):
- self.sack.close()
+ if self._sack is not None:
+ self.sack.close()
Repository.close(self)
def _resetSack(self):
commit 3646e648a23b627897441350c2650fc4503ce361
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Tue Jul 22 12:10:36 2008 -0400
add a __version_info__ tuple of ints derived from __version__
diff --git a/yum/__init__.py b/yum/__init__.py
index d6c2d76..a4cf4f8 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -73,6 +73,7 @@ import string
from urlgrabber.grabber import default_grabber
__version__ = '3.2.17'
+__version_info__ = tuple([ int(num) for num in __version__.split('.')])
# Setup a default_grabber UA here that says we are yum, done using the global
# so that other API users can easily add to it if they want.
commit d151197fa2243115f1ca029d2670d6abf36e6863
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Tue Jul 22 10:55:05 2008 -0400
Add parameters to selectGroup()
group_package_types=List - overrides self.conf.group_package_types
enable_group_conditionals=Bool - overrides self.conf.enable_group_conditionals
diff --git a/yum/__init__.py b/yum/__init__.py
index 02a0279..d6c2d76 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -1808,10 +1808,14 @@ class YumBase(depsolve.Depsolve):
self.tsInfo.remove(txmbr.po.pkgtup)
- def selectGroup(self, grpid):
+ def selectGroup(self, grpid, group_package_types=[], enable_group_conditionals=None):
"""mark all the packages in the group to be installed
returns a list of transaction members it added to the transaction
- set"""
+ set
+ Optionally take:
+ group_package_types=List - overrides self.conf.group_package_types
+ enable_group_conditionals=Bool - overrides self.conf.enable_group_conditionals
+ """
if not self.comps.has_group(grpid):
raise Errors.GroupsError, _("No Group named %s exists") % grpid
@@ -1822,6 +1826,10 @@ class YumBase(depsolve.Depsolve):
if not thesegroups:
raise Errors.GroupsError, _("No Group named %s exists") % grpid
+ package_types = self.conf.group_package_types
+ if group_package_types:
+ package_types = group_package_types
+
for thisgroup in thesegroups:
if thisgroup.selected:
continue
@@ -1829,11 +1837,11 @@ class YumBase(depsolve.Depsolve):
thisgroup.selected = True
pkgs = []
- if 'mandatory' in self.conf.group_package_types:
+ if 'mandatory' in package_types:
pkgs.extend(thisgroup.mandatory_packages)
- if 'default' in self.conf.group_package_types:
+ if 'default' in package_types:
pkgs.extend(thisgroup.default_packages)
- if 'optional' in self.conf.group_package_types:
+ if 'optional' in package_types:
pkgs.extend(thisgroup.optional_packages)
for pkg in pkgs:
@@ -1849,7 +1857,11 @@ class YumBase(depsolve.Depsolve):
for txmbr in txmbrs:
txmbr.groups.append(thisgroup.groupid)
- if self.conf.enable_group_conditionals:
+ group_conditionals = self.conf.enable_group_conditionals
+ if enable_group_conditionals is not None: # has to be this way so we can set it to False
+ group_conditionals = enable_group_conditionals
+
+ if group_conditionals:
for condreq, cond in thisgroup.conditional_packages.iteritems():
if self.isPackageInstalled(cond):
try:
commit 2b25eaaa0426881d8cc8d253ec6e8a9900b0f642
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Tue Jul 22 09:57:58 2008 -0400
new german translation updates from Fabian Affolter
diff --git a/po/de.po b/po/de.po
index ae1fa57..1206f8c 100644
--- a/po/de.po
+++ b/po/de.po
@@ -5,8 +5,8 @@ msgid ""
msgstr ""
"Project-Id-Version: yum\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-04-15 04:37+0000\n"
-"PO-Revision-Date: 2008-04-20 12:13+0100\n"
+"POT-Creation-Date: 2008-07-22 03:14+0000\n"
+"PO-Revision-Date: 2008-07-22 09:47+0100\n"
"Last-Translator: Fabian Affolter <fab at fedoraproject.org>\n"
"Language-Team: German <fedora-trans-de at redhat.com>\n"
"MIME-Version: 1.0\n"
@@ -100,35 +100,35 @@ msgstr "Repositories werden eingerichtet"
msgid "Reading repository metadata in from local files"
msgstr "Lese Repository-Metadaten aus lokalen Dateien ein"
-#: ../cli.py:185
-#: ../utils.py:72
+#: ../cli.py:186
+#: ../utils.py:71
#, python-format
msgid "Config Error: %s"
msgstr "Konfigurationsfehler: %s"
-#: ../cli.py:188
-#: ../cli.py:1073
-#: ../utils.py:75
+#: ../cli.py:189
+#: ../cli.py:1081
+#: ../utils.py:74
#, python-format
msgid "Options Error: %s"
msgstr "Optionenfehler: %s"
-#: ../cli.py:231
+#: ../cli.py:232
msgid "You need to give some command"
msgstr "Sie müssen ein paar Befehle eingeben"
-#: ../cli.py:273
+#: ../cli.py:274
msgid "Disk Requirements:\n"
msgstr "Festplattenplatz-Anforderungen:\n"
-#: ../cli.py:275
+#: ../cli.py:276
#, python-format
msgid " At least %dMB needed on the %s filesystem.\n"
msgstr " Mindestens %d MB werden auf dem Dateisystem %s benötigt.\n"
#. TODO: simplify the dependency errors?
#. Fixup the summary
-#: ../cli.py:280
+#: ../cli.py:281
msgid ""
"Error Summary\n"
"-------------\n"
@@ -136,58 +136,58 @@ msgstr ""
"Fehlerzusammenfassung\n"
"-------------\n"
-#: ../cli.py:319
+#: ../cli.py:320
msgid "Trying to run the transaction but nothing to do. Exiting."
msgstr "Versuche Transaktion auzuführen, aber es ist nichts zu tun. Beende."
-#: ../cli.py:349
+#: ../cli.py:350
msgid "Exiting on user Command"
msgstr "Beende auf Benutzer-Befehl hin"
-#: ../cli.py:353
+#: ../cli.py:354
msgid "Downloading Packages:"
msgstr "Lade Pakete herunter:"
-#: ../cli.py:358
+#: ../cli.py:359
msgid "Error Downloading Packages:\n"
msgstr "Fehler beim Herunterladen der Pakete:\n"
-#: ../cli.py:372
-#: ../yum/__init__.py:2814
+#: ../cli.py:373
+#: ../yum/__init__.py:2826
msgid "Running rpm_check_debug"
msgstr "Führe rpm_check_debug durch"
-#: ../cli.py:375
-#: ../yum/__init__.py:2817
+#: ../cli.py:376
+#: ../yum/__init__.py:2829
msgid "ERROR with rpm_check_debug vs depsolve:"
msgstr "FEHLER mit rpm_check_debug gegen depsolve:"
-#: ../cli.py:379
-#: ../yum/__init__.py:2819
+#: ../cli.py:380
+#: ../yum/__init__.py:2831
msgid "Please report this error in bugzilla"
msgstr "Bitte melden Sie diesen Fehler in Bugzilla"
-#: ../cli.py:385
+#: ../cli.py:386
msgid "Running Transaction Test"
msgstr "Führe Verarbeitungsstest durch"
-#: ../cli.py:401
+#: ../cli.py:402
msgid "Finished Transaction Test"
msgstr "Verarbeitungstest beendet"
-#: ../cli.py:403
+#: ../cli.py:404
msgid "Transaction Check Error:\n"
msgstr "Prüffehler bei Verarbeitung:\n"
-#: ../cli.py:410
+#: ../cli.py:411
msgid "Transaction Test Succeeded"
msgstr "Verarbeitungstest erfolgreich"
-#: ../cli.py:431
+#: ../cli.py:432
msgid "Running Transaction"
msgstr "Führe Verarbeitung durch"
-#: ../cli.py:461
+#: ../cli.py:462
msgid ""
"Refusing to automatically import keys when running unattended.\n"
"Use \"-y\" to override."
@@ -195,29 +195,29 @@ msgstr ""
"Verweigere automatischen Import der Schlüssel, wenn unbeaufsichtigt augeführt.\n"
"Benutze \"-y\" zum Ãberschreiben."
-#: ../cli.py:493
+#: ../cli.py:494
msgid "Parsing package install arguments"
msgstr "Analysiere Installationsargumente des Pakets"
-#: ../cli.py:503
+#: ../cli.py:504
#, python-format
msgid "No package %s available."
msgstr "Kein Paket %s verfügbar."
-#: ../cli.py:507
-#: ../cli.py:625
-#: ../yumcommands.py:777
+#: ../cli.py:508
+#: ../cli.py:626
+#: ../yumcommands.py:790
msgid "Package(s) to install"
msgstr "Paket(e) zum Installieren"
-#: ../cli.py:508
-#: ../cli.py:626
+#: ../cli.py:509
+#: ../cli.py:627
#: ../yumcommands.py:147
-#: ../yumcommands.py:778
+#: ../yumcommands.py:791
msgid "Nothing to do"
msgstr "Nichts zu tun"
-#: ../cli.py:538
+#: ../cli.py:539
#: ../yum/__init__.py:2275
#: ../yum/__init__.py:2375
#: ../yum/__init__.py:2387
@@ -225,144 +225,144 @@ msgstr "Nichts zu tun"
msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
msgstr "Aktualisiere Paket nicht, da es bereits veraltet ist: %s.%s %s:%s-%s"
-#: ../cli.py:570
+#: ../cli.py:571
#, python-format
msgid "Could not find update match for %s"
msgstr "Kann keine Aktualisierungsübereinstimmung finden für %s"
-#: ../cli.py:582
+#: ../cli.py:583
#, python-format
msgid "%d packages marked for Update"
msgstr "%d Pakete zur Aktualisierung markiert"
-#: ../cli.py:585
+#: ../cli.py:586
msgid "No Packages marked for Update"
msgstr "Keine Pakete für die Aktualisierung angegeben"
-#: ../cli.py:601
+#: ../cli.py:602
#, python-format
msgid "%d packages marked for removal"
msgstr "%d Pakete für die Entfernung angegeben"
-#: ../cli.py:604
+#: ../cli.py:605
msgid "No Packages marked for removal"
msgstr "Keine Pakete für die Entfernung angegeben"
-#: ../cli.py:616
+#: ../cli.py:617
msgid "No Packages Provided"
msgstr "Keine Pakete bereitgestellt"
-#: ../cli.py:656
+#: ../cli.py:657
msgid "Matching packages for package list to user args"
msgstr "Ãbereinstimmende Pakete für Paket-Liste nach Benutzer-Argument"
-#: ../cli.py:704
+#: ../cli.py:705
#, python-format
msgid "Warning: No matches found for: %s"
msgstr "Warnung: Keine Ãbereinstimmung gefunden für: %s"
-#: ../cli.py:707
+#: ../cli.py:708
msgid "No Matches found"
msgstr "Keine Ãbereinstimmungen gefunden"
-#: ../cli.py:748
+#: ../cli.py:749
#, python-format
msgid "No Package Found for %s"
msgstr "Kein Paket gefunden für %s"
# Räume auf, säubere...weiss jemand eine Ãbersetzung, welche nicht an den Staubsauger erinnert. Fabian
-#: ../cli.py:760
+#: ../cli.py:761
msgid "Cleaning up Everything"
msgstr "Räume alles auf"
-#: ../cli.py:774
+#: ../cli.py:775
msgid "Cleaning up Headers"
msgstr "Räume Header auf"
-#: ../cli.py:777
+#: ../cli.py:778
msgid "Cleaning up Packages"
msgstr "Räume Pakete auf"
-#: ../cli.py:780
+#: ../cli.py:781
msgid "Cleaning up xml metadata"
msgstr "Räume XML-Metadaten auf"
-#: ../cli.py:783
+#: ../cli.py:784
msgid "Cleaning up database cache"
msgstr "Räume Datenbank-Speicher auf"
-#: ../cli.py:786
+#: ../cli.py:787
msgid "Cleaning up expire-cache metadata"
msgstr "Räume Metadaten für abgelaufene Caches auf"
-#: ../cli.py:789
+#: ../cli.py:790
msgid "Cleaning up plugins"
msgstr "Räume Plugins auf"
-#: ../cli.py:810
+#: ../cli.py:812
msgid "Installed Groups:"
msgstr "Installierte Gruppen:"
-#: ../cli.py:817
+#: ../cli.py:819
msgid "Available Groups:"
msgstr "Verfügbare Gruppen:"
-#: ../cli.py:823
+#: ../cli.py:825
msgid "Done"
msgstr "Fertig"
-#: ../cli.py:832
-#: ../cli.py:844
-#: ../cli.py:850
+#: ../cli.py:836
+#: ../cli.py:854
+#: ../cli.py:860
#, python-format
msgid "Warning: Group %s does not exist."
msgstr "Warnung: Gruppe %s existiert nicht."
-#: ../cli.py:856
+#: ../cli.py:864
msgid "No packages in any requested group available to install or update"
msgstr "Keine Pakete in irgendeiner Gruppe verfügbar zum Installieren oder Aktualisieren"
-#: ../cli.py:858
+#: ../cli.py:866
#, python-format
msgid "%d Package(s) to Install"
msgstr "%d Paket(e) zum Installieren"
-#: ../cli.py:868
+#: ../cli.py:876
#, python-format
msgid "No group named %s exists"
msgstr "Keine Gruppe existiert mit dem Namen %s"
-#: ../cli.py:874
+#: ../cli.py:882
msgid "No packages to remove from groups"
msgstr "Keine Pakete zum Entfernen aus dem Gruppen gefunden"
-#: ../cli.py:876
+#: ../cli.py:884
#, python-format
msgid "%d Package(s) to remove"
msgstr "%d Paket(e) zum Entfernen"
-#: ../cli.py:918
+#: ../cli.py:926
#, python-format
msgid "Package %s is already installed, skipping"
msgstr "Paket %s ist bereits installiert, überspringe"
-#: ../cli.py:929
+#: ../cli.py:937
#, python-format
msgid "Discarding non-comparable pkg %s.%s"
msgstr "Verwerfe nicht vergleichbare Pakete %s.%s"
#. we've not got any installed that match n or n+a
-#: ../cli.py:955
+#: ../cli.py:963
#, python-format
msgid "No other %s installed, adding to list for potential install"
msgstr "Kein anderes %s installiert, füge es zur Liste für eine potentielle Installation hinzu"
-#: ../cli.py:974
+#: ../cli.py:982
#, python-format
msgid "Command line error: %s"
msgstr "Kommandozeilen-Fehler: %s"
-#: ../cli.py:986
+#: ../cli.py:994
#, python-format
msgid ""
"\n"
@@ -373,223 +373,223 @@ msgstr ""
"\n"
"%s: %s Option benötigt ein Argument"
-#: ../cli.py:1115
+#: ../cli.py:1123
msgid "show this help message and exit"
msgstr "Hilfeinformation anzeigen und beenden"
-#: ../cli.py:1119
+#: ../cli.py:1127
msgid "be tolerant of errors"
msgstr "fehlertolerant sein"
-#: ../cli.py:1121
+#: ../cli.py:1129
msgid "run entirely from cache, don't update cache"
msgstr "laufe komplett aus dem Zwischenspeicher, aktualisiere Zwischenspeicher nicht"
-#: ../cli.py:1123
+#: ../cli.py:1131
msgid "config file location"
msgstr "Ort der Konfigurationsdatei"
-#: ../cli.py:1125
+#: ../cli.py:1133
msgid "maximum command wait time"
msgstr "maximale Befehlswartezeit"
-#: ../cli.py:1127
+#: ../cli.py:1135
msgid "debugging output level"
msgstr "Debugging-Ausgabe-Stufe"
-#: ../cli.py:1131
+#: ../cli.py:1139
msgid "show duplicates, in repos, in list/search commands"
msgstr "Zeige Duplikate, in Repos, in Listen/Suchen-Befehlen"
-#: ../cli.py:1133
+#: ../cli.py:1141
msgid "error output level"
msgstr "Fehler-Ausgabe-Stufe"
-#: ../cli.py:1136
+#: ../cli.py:1144
msgid "quiet operation"
msgstr "Stiller Betrieb"
-#: ../cli.py:1138
+#: ../cli.py:1146
msgid "verbose operation"
msgstr "Wortreicher Betrieb"
-#: ../cli.py:1140
+#: ../cli.py:1148
msgid "answer yes for all questions"
msgstr "Beantworte alle Fragen mit 'ja'"
-#: ../cli.py:1142
+#: ../cli.py:1150
msgid "show Yum version and exit"
msgstr "Versionsinformationen anzeigen und Programm beenden"
-#: ../cli.py:1143
+#: ../cli.py:1151
msgid "set install root"
msgstr "Wurzel-Installationsverzeichnis setzen"
-#: ../cli.py:1147
+#: ../cli.py:1155
msgid "enable one or more repositories (wildcards allowed)"
msgstr "aktiviere eines oder mehrere Repositories (Wildcards erlaubt)"
-#: ../cli.py:1151
+#: ../cli.py:1159
msgid "disable one or more repositories (wildcards allowed)"
msgstr "deaktiviere eines oder mehrere Repositories (Wildcards erlaubt)"
-#: ../cli.py:1154
+#: ../cli.py:1162
msgid "exclude package(s) by name or glob"
msgstr "schliesse Paket(e) nach Namen oder global aus"
-#: ../cli.py:1156
+#: ../cli.py:1164
msgid "disable exclude from main, for a repo or for everything"
msgstr "deaktiviere Ausschluss von 'main', einem Repository oder allem"
-#: ../cli.py:1159
+#: ../cli.py:1167
msgid "enable obsoletes processing during updates"
msgstr "aktiviere veraltetes Verarbeiten während Aktualisierung"
-#: ../cli.py:1161
+#: ../cli.py:1169
msgid "disable Yum plugins"
msgstr "deaktiviere Yum-Plugins"
-#: ../cli.py:1163
+#: ../cli.py:1171
msgid "disable gpg signature checking"
msgstr "deaktiviere GPG-Signatur-Prüfung"
-#: ../cli.py:1165
+#: ../cli.py:1173
msgid "disable plugins by name"
msgstr "deaktiviere Plugins nach Namen"
-#: ../cli.py:1168
+#: ../cli.py:1176
msgid "skip packages with depsolving problems"
msgstr "überspringe Pakete mit Abhängigkeitsauflösungsproblemen"
-#: ../output.py:229
+#: ../output.py:228
msgid "Jan"
msgstr "Jan"
-#: ../output.py:229
+#: ../output.py:228
msgid "Feb"
msgstr "Feb"
-#: ../output.py:229
+#: ../output.py:228
msgid "Mar"
msgstr "Mär"
-#: ../output.py:229
+#: ../output.py:228
msgid "Apr"
msgstr "Apr"
-#: ../output.py:229
+#: ../output.py:228
msgid "May"
msgstr "Mai"
-#: ../output.py:229
+#: ../output.py:228
msgid "Jun"
msgstr "Jun"
-#: ../output.py:230
+#: ../output.py:229
msgid "Jul"
msgstr "Jul"
-#: ../output.py:230
+#: ../output.py:229
msgid "Aug"
msgstr "Aug"
-#: ../output.py:230
+#: ../output.py:229
msgid "Sep"
msgstr "Sep"
-#: ../output.py:230
+#: ../output.py:229
msgid "Oct"
msgstr "Okt"
-#: ../output.py:230
+#: ../output.py:229
msgid "Nov"
msgstr "Nov"
-#: ../output.py:230
+#: ../output.py:229
msgid "Dec"
msgstr "Dez"
-#: ../output.py:240
+#: ../output.py:239
msgid "Trying other mirror."
msgstr "Versuche anderen Spiegel-Server."
-#: ../output.py:294
+#: ../output.py:293
#, python-format
msgid "Name : %s"
msgstr "Name : %s"
-#: ../output.py:295
+#: ../output.py:294
#, python-format
msgid "Arch : %s"
msgstr "Architektur : %s"
-#: ../output.py:297
+#: ../output.py:296
#, python-format
msgid "Epoch : %s"
msgstr "Epoch : %s"
-#: ../output.py:298
+#: ../output.py:297
#, python-format
msgid "Version : %s"
msgstr "Version : %s"
-#: ../output.py:299
+#: ../output.py:298
#, python-format
msgid "Release : %s"
msgstr "Ausgabe : %s"
-#: ../output.py:300
+#: ../output.py:299
#, python-format
msgid "Size : %s"
msgstr "Grösse : %s"
-#: ../output.py:301
+#: ../output.py:300
#, python-format
msgid "Repo : %s"
msgstr "Repo : %s"
-#: ../output.py:303
+#: ../output.py:302
#, python-format
msgid "Committer : %s"
msgstr "Ãbermittler : %s"
-#: ../output.py:304
+#: ../output.py:303
msgid "Summary : "
msgstr "Zusammenfassung : "
-#: ../output.py:306
+#: ../output.py:305
#, python-format
msgid "URL : %s"
msgstr "URL : %s"
-#: ../output.py:307
+#: ../output.py:306
#, python-format
msgid "License : %s"
msgstr "Lizenz : %s"
-#: ../output.py:308
+#: ../output.py:307
msgid "Description: "
msgstr "Beschreibung:"
-#: ../output.py:352
+#: ../output.py:351
msgid "Is this ok [y/N]: "
msgstr "Ist dies in Ordnung? [j/N] :"
-#: ../output.py:360
-#: ../output.py:363
+#: ../output.py:359
+#: ../output.py:362
msgid "y"
msgstr "j"
-#: ../output.py:360
+#: ../output.py:359
msgid "n"
msgstr "n"
-#: ../output.py:360
-#: ../output.py:363
+#: ../output.py:359
+#: ../output.py:362
msgid "yes"
msgstr "ja"
-#: ../output.py:360
+#: ../output.py:359
msgid "no"
msgstr "nein"
@@ -769,7 +769,7 @@ msgstr "gelöscht"
#: ../output.py:650
#, python-format
msgid "---> Package %s.%s %s:%s-%s set to be %s"
-msgstr "---> Paket %s.%s %s:%s-%s gesetzt um %s zu werden"
+msgstr "---> Paket %s.%s %s:%s-%s markiert, um %s zu werden"
#: ../output.py:657
msgid "--> Running transaction check"
@@ -1055,48 +1055,52 @@ msgstr "Suche Abhängigkeiten:"
msgid "Display the configured software repositories"
msgstr "Zeige die konfigurierten Software-Repositories an"
-#: ../yumcommands.py:662
+#: ../yumcommands.py:666
msgid "enabled"
msgstr "aktiviert"
-#: ../yumcommands.py:665
+#: ../yumcommands.py:673
msgid "disabled"
msgstr "deaktiviert"
-#: ../yumcommands.py:672
+#: ../yumcommands.py:682
msgid "repo id"
msgstr "Repo-ID"
-#: ../yumcommands.py:673
+#: ../yumcommands.py:683
msgid "repo name"
msgstr "Repo-Name:"
-#: ../yumcommands.py:673
+#: ../yumcommands.py:683
msgid "status"
msgstr "Status"
-#: ../yumcommands.py:676
+#: ../yumcommands.py:686
msgid "Repo-id : "
msgstr "Repo-ID : "
-#: ../yumcommands.py:677
+#: ../yumcommands.py:687
msgid "Repo-name : "
msgstr "Repo-Name : "
-#: ../yumcommands.py:678
+#: ../yumcommands.py:688
msgid "Repo-enabled: "
msgstr "Repo aktiviert:"
-#: ../yumcommands.py:700
+#: ../yumcommands.py:689
+msgid "Repo-size : "
+msgstr "Repo-Grösse : "
+
+#: ../yumcommands.py:713
msgid "Display a helpful usage message"
msgstr "Zeigt eine kurze Verwendungsinformation"
-#: ../yumcommands.py:734
+#: ../yumcommands.py:747
#, python-format
msgid "No help available for %s"
msgstr "Keine Hilfe für %s vorhanden"
-#: ../yumcommands.py:739
+#: ../yumcommands.py:752
msgid ""
"\n"
"\n"
@@ -1106,7 +1110,7 @@ msgstr ""
"\n"
"Aliase: "
-#: ../yumcommands.py:741
+#: ../yumcommands.py:754
msgid ""
"\n"
"\n"
@@ -1116,15 +1120,15 @@ msgstr ""
"\n"
"Alias: "
-#: ../yumcommands.py:770
+#: ../yumcommands.py:783
msgid "Setting up Reinstall Process"
msgstr "Einrichten des Neuinstallationsprozess"
-#: ../yumcommands.py:784
+#: ../yumcommands.py:797
msgid "reinstall a package"
msgstr "Installiere Paket neu"
-#: ../yummain.py:53
+#: ../yummain.py:55
msgid ""
"\n"
"\n"
@@ -1134,7 +1138,7 @@ msgstr ""
"\n"
"Verlasse nach Benutzer-Befehl"
-#: ../yummain.py:59
+#: ../yummain.py:61
msgid ""
"\n"
"\n"
@@ -1144,28 +1148,28 @@ msgstr ""
"\n"
"Verlasse wegen defekter Pipe"
-#: ../yummain.py:110
+#: ../yummain.py:112
msgid "Another app is currently holding the yum lock; waiting for it to exit..."
msgstr "Eine andere Anwendung hält momentan den Yum-Lock. Warte, dass sie endet wird..."
-#: ../yummain.py:137
-#: ../yummain.py:176
+#: ../yummain.py:139
+#: ../yummain.py:178
#, python-format
msgid "Error: %s"
msgstr "Fehler: %s"
-#: ../yummain.py:147
-#: ../yummain.py:183
+#: ../yummain.py:149
+#: ../yummain.py:185
#, python-format
msgid "Unknown Error(s): Exit Code: %d:"
msgstr "Unbekannte(r) Fehlercode: Exit Code: %d:"
#. Depsolve stage
-#: ../yummain.py:154
+#: ../yummain.py:156
msgid "Resolving Dependencies"
msgstr "Löse Abhängigkeiten auf"
-#: ../yummain.py:189
+#: ../yummain.py:191
msgid ""
"\n"
"Dependencies Resolved"
@@ -1173,11 +1177,11 @@ msgstr ""
"\n"
"Abhängigkeiten aufgelöst"
-#: ../yummain.py:203
+#: ../yummain.py:205
msgid "Complete!"
msgstr "Komplett!"
-#: ../yummain.py:250
+#: ../yummain.py:252
msgid ""
"\n"
"\n"
@@ -1187,196 +1191,152 @@ msgstr ""
"\n"
"Verlasse nach Benutzer-Anforderung."
-#: ../yum/depsolve.py:83
+#: ../yum/depsolve.py:78
msgid "doTsSetup() will go away in a future version of Yum.\n"
msgstr "doTsSetup() wird in zukünftigen Version von Yum verschwinden.\n"
-#: ../yum/depsolve.py:96
+#: ../yum/depsolve.py:91
msgid "Setting up TransactionSets before config class is up"
msgstr "Konfiguriere TransactionSets bevor die Konfigurationsklasse gestartet ist"
-#: ../yum/depsolve.py:137
+#: ../yum/depsolve.py:132
#, python-format
msgid "Invalid tsflag in config file: %s"
msgstr "Ungültiges tsflag in Konfigurationsdatei: %s"
-#: ../yum/depsolve.py:148
-#, python-format
-msgid "Searching pkgSack for dep: %s"
-msgstr "Suche pkgSack für Abhängigkeiten: %s"
-
-#: ../yum/depsolve.py:171
-#, python-format
-msgid "Potential match for %s from %s"
-msgstr "Potentielle Ãbereinstimmung für %s von %s"
-
-#: ../yum/depsolve.py:179
-#, python-format
-msgid "Matched %s to require for %s"
-msgstr "Ãbereinstimmung von %s, welche gebraucht wird für %s"
-
-#: ../yum/depsolve.py:220
+#: ../yum/depsolve.py:176
#, python-format
msgid "Member: %s"
msgstr "Mitglied: %s"
-#: ../yum/depsolve.py:234
-#: ../yum/depsolve.py:687
+#: ../yum/depsolve.py:190
+#: ../yum/depsolve.py:592
#, python-format
msgid "%s converted to install"
msgstr "%s konvertiert zum Installieren"
-#: ../yum/depsolve.py:241
+#: ../yum/depsolve.py:197
#, python-format
msgid "Adding Package %s in mode %s"
msgstr "Füge Paket %s hinzu in Modus %s"
-#: ../yum/depsolve.py:251
+#: ../yum/depsolve.py:207
#, python-format
msgid "Removing Package %s"
msgstr "Entferne Paket %s"
-#: ../yum/depsolve.py:262
+#: ../yum/depsolve.py:218
#, python-format
msgid "%s requires: %s"
msgstr "%s benötigt: %s"
-#: ../yum/depsolve.py:313
-msgid "Needed Require has already been looked up, cheating"
-msgstr "Benötigte Anforderung wurde bereits nachgeschlagen, betrüge"
-
-#: ../yum/depsolve.py:323
-#, python-format
-msgid "Needed Require is not a package name. Looking up: %s"
-msgstr "Benötigte Anforderung ist kein Paket-Name. Schlagen nach: %s"
-
-#: ../yum/depsolve.py:330
-#, python-format
-msgid "Potential Provider: %s"
-msgstr "Potentieller Bereitsteller: %s"
-
-#: ../yum/depsolve.py:353
-#, python-format
-msgid "Mode is %s for provider of %s: %s"
-msgstr "Modus ist %s für Bereitsteller von %s: %s"
-
-#: ../yum/depsolve.py:357
-#, python-format
-msgid "Mode for pkg providing %s: %s"
-msgstr "Modus für pkg-Bereitstellung %s: %s"
-
-#: ../yum/depsolve.py:361
-#, python-format
-msgid "TSINFO: %s package requiring %s marked as erase"
-msgstr "TSINFO: %s Paket benötigt %s markiert als gelöscht"
-
-#: ../yum/depsolve.py:373
+#: ../yum/depsolve.py:273
#, python-format
msgid "TSINFO: Obsoleting %s with %s to resolve dep."
msgstr "TSINFO: Veraltetes %s mit %s zum Auflösen der Abhängigkeit."
-#: ../yum/depsolve.py:376
+#: ../yum/depsolve.py:276
#, python-format
msgid "TSINFO: Updating %s to resolve dep."
msgstr "TSINFO: Aktualisiere %s zum Auflösen der Abhängigkeit."
-#: ../yum/depsolve.py:379
+#: ../yum/depsolve.py:279
#, python-format
msgid "Cannot find an update path for dep for: %s"
msgstr "Kann keine Aktualisierungspfad für Abhängigkeit finden für: %s"
-#: ../yum/depsolve.py:389
+#: ../yum/depsolve.py:283
#, python-format
-msgid "Unresolvable requirement %s for %s"
-msgstr "Unlösbare Anforderung %s für %s"
+msgid "TSINFO: %s package requiring %s marked as erase"
+msgstr "TSINFO: %s Paket benötigt %s markiert als gelöscht"
#. is it already installed?
-#: ../yum/depsolve.py:435
+#: ../yum/depsolve.py:329
#, python-format
msgid "%s is in providing packages but it is already installed, removing."
msgstr "%s ist in einem bereitgestellten Paket, aber bereits installiert, entferne."
-#: ../yum/depsolve.py:450
+#: ../yum/depsolve.py:344
#, python-format
msgid "Potential resolving package %s has newer instance in ts."
msgstr "Potentielles aufgelöste Paket %s hat eine neuere Instanz in ts."
-#: ../yum/depsolve.py:461
+#: ../yum/depsolve.py:355
#, python-format
msgid "Potential resolving package %s has newer instance installed."
msgstr "Potentielles aufgelöste Paket %s hat eine neuere Instanz installiert."
-#: ../yum/depsolve.py:469
-#: ../yum/depsolve.py:518
+#: ../yum/depsolve.py:363
+#: ../yum/depsolve.py:410
#, python-format
msgid "Missing Dependency: %s is needed by package %s"
msgstr "Fehlende Abhängigkeit: %s wird benötigt von Paket %s"
-#: ../yum/depsolve.py:482
+#: ../yum/depsolve.py:376
#, python-format
msgid "%s already in ts, skipping this one"
msgstr "%s bereits in ts, überspringe dies"
-#: ../yum/depsolve.py:528
+#: ../yum/depsolve.py:420
#, python-format
msgid "TSINFO: Marking %s as update for %s"
msgstr "TSINFO: Markiere %s als Aktualisierung für %s"
-#: ../yum/depsolve.py:535
+#: ../yum/depsolve.py:427
#, python-format
msgid "TSINFO: Marking %s as install for %s"
msgstr "TSINFO: Markiert %s als Installation für %s"
-#: ../yum/depsolve.py:626
-#: ../yum/depsolve.py:705
+#: ../yum/depsolve.py:518
+#: ../yum/depsolve.py:610
msgid "Success - empty transaction"
msgstr "Erfolg - Leere Transaktion"
-#: ../yum/depsolve.py:664
-#: ../yum/depsolve.py:677
+#: ../yum/depsolve.py:562
+#: ../yum/depsolve.py:582
msgid "Restarting Loop"
msgstr "Starte Schleife neu"
-#: ../yum/depsolve.py:693
+#: ../yum/depsolve.py:598
msgid "Dependency Process ending"
msgstr "Abhängigkeitsverarbeitung beendet"
-#: ../yum/depsolve.py:699
+#: ../yum/depsolve.py:604
#, python-format
msgid "%s from %s has depsolving problems"
msgstr "%s von %s hat Abhängigkeitsauflöse-Probleme"
-#: ../yum/depsolve.py:706
+#: ../yum/depsolve.py:611
msgid "Success - deps resolved"
msgstr "Erfolg - Abhängigkeiten aufgelöst"
-#: ../yum/depsolve.py:720
+#: ../yum/depsolve.py:625
#, python-format
msgid "Checking deps for %s"
msgstr "Prüfe Abhängigkeiten für %s"
-#: ../yum/depsolve.py:773
+#: ../yum/depsolve.py:687
#, python-format
msgid "looking for %s as a requirement of %s"
msgstr "schauen nach %s als eine Anforderung von %s"
-#: ../yum/depsolve.py:911
+#: ../yum/depsolve.py:814
#, python-format
msgid "Running compare_providers() for %s"
msgstr "Führe compare_providers() aus für %s"
-#: ../yum/depsolve.py:939
-#: ../yum/depsolve.py:945
+#: ../yum/depsolve.py:842
+#: ../yum/depsolve.py:848
#, python-format
msgid "better arch in po %s"
msgstr "bessere Architektur in po %s"
-#: ../yum/depsolve.py:984
+#: ../yum/depsolve.py:887
#, python-format
msgid "%s obsoletes %s"
msgstr " %s veraltete %s"
-#: ../yum/depsolve.py:995
+#: ../yum/depsolve.py:898
#, python-format
msgid ""
"archdist compared %s to %s on %s\n"
@@ -1385,109 +1345,110 @@ msgstr ""
"Archdist verglichen %s zu %s auf %s\n"
" Gewinner: %s"
-#: ../yum/depsolve.py:1002
+#: ../yum/depsolve.py:905
#, python-format
msgid "common sourcerpm %s and %s"
msgstr "Gemeinsames Quellen-RPM %s und %s"
-#: ../yum/depsolve.py:1008
+#: ../yum/depsolve.py:911
#, python-format
msgid "common prefix of %s between %s and %s"
msgstr "Gemeinsamer Prefix von %s zwischen %s und %s"
# Hat jemand eine Idee für eine bessere Ãbersetzung? Fabian
-#: ../yum/depsolve.py:1016
+#: ../yum/depsolve.py:919
#, fuzzy, python-format
msgid "Best Order: %s"
msgstr "Beste Bestellung: %s"
-#: ../yum/__init__.py:127
+#: ../yum/__init__.py:148
msgid "doConfigSetup() will go away in a future version of Yum.\n"
msgstr "doConfigSetup() wird verschwinden in zukünftigen Version von Yum.\n"
-#: ../yum/__init__.py:301
+#. FIXME: Use critical? or exception?
+#: ../yum/__init__.py:323
#, python-format
msgid "Repository %r is missing name in configuration, using id"
msgstr "Bei Repository %r fehlt der Name in der Konfiguration, benutze id"
-#: ../yum/__init__.py:337
+#: ../yum/__init__.py:359
msgid "plugins already initialised"
msgstr "Plugins bereits initialisiert"
-#: ../yum/__init__.py:344
+#: ../yum/__init__.py:366
msgid "doRpmDBSetup() will go away in a future version of Yum.\n"
msgstr "doRpmDBSetup() wird verschwinden in zukünftigen Version von Yum.\n"
-#: ../yum/__init__.py:354
+#: ../yum/__init__.py:376
msgid "Reading Local RPMDB"
msgstr "Lese lokale RPMDB"
-#: ../yum/__init__.py:372
+#: ../yum/__init__.py:394
msgid "doRepoSetup() will go away in a future version of Yum.\n"
msgstr "doRepoSetup() wird verschwinden in zukünftigen Version von Yum.\n"
-#: ../yum/__init__.py:392
+#: ../yum/__init__.py:414
msgid "doSackSetup() will go away in a future version of Yum.\n"
msgstr "doSackSetup() wird verschwinden in zukünftigen Version von Yum.\n"
-#: ../yum/__init__.py:409
+#: ../yum/__init__.py:431
msgid "Setting up Package Sacks"
msgstr "Einrichten des Paket-Behälters"
-#: ../yum/__init__.py:452
+#: ../yum/__init__.py:474
#, python-format
msgid "repo object for repo %s lacks a _resetSack method\n"
msgstr "Repository-Objekt für Repository %s fehlt a _resetSack method\n"
-#: ../yum/__init__.py:453
+#: ../yum/__init__.py:475
msgid "therefore this repo cannot be reset.\n"
msgstr "deshlab dieses Repository kann nicht zurückgesetzt werden.\n"
-#: ../yum/__init__.py:458
+#: ../yum/__init__.py:480
msgid "doUpdateSetup() will go away in a future version of Yum.\n"
msgstr "doUpdateSetup() wird verschwinden in zukünftigen Version von Yum.\n"
-#: ../yum/__init__.py:470
+#: ../yum/__init__.py:492
msgid "Building updates object"
msgstr "Baue Aktualisierungsobjekt"
-#: ../yum/__init__.py:501
+#: ../yum/__init__.py:523
msgid "doGroupSetup() will go away in a future version of Yum.\n"
msgstr "doGroupSetup() wird verschwinden in zukünftigen Version von Yum.\n"
-#: ../yum/__init__.py:525
+#: ../yum/__init__.py:547
msgid "Getting group metadata"
msgstr "Beziehe Gruppen-Metadaten"
-#: ../yum/__init__.py:551
+#: ../yum/__init__.py:572
#, python-format
msgid "Adding group file from repository: %s"
msgstr "Füge Gruppen-Datei von Repository hinzu: %s"
-#: ../yum/__init__.py:560
+#: ../yum/__init__.py:577
#, python-format
msgid "Failed to add groups file for repository: %s - %s"
msgstr "Hinzufügen von Gruppen-Datei für Repository fehlgeschlagen: %s - %s"
-#: ../yum/__init__.py:566
+#: ../yum/__init__.py:583
msgid "No Groups Available in any repository"
msgstr "Keine Gruppen in irgendeinem Repository verfügbar"
-#: ../yum/__init__.py:616
+#: ../yum/__init__.py:633
msgid "Importing additional filelist information"
msgstr "Importiere zusätzlichen Dateilisten-Informationen"
-#: ../yum/__init__.py:664
+#: ../yum/__init__.py:684
#, python-format
msgid "Skip-broken round %i"
msgstr "Ãberspringe defekte Runde %i"
-#: ../yum/__init__.py:687
+#: ../yum/__init__.py:707
#, python-format
msgid "Skip-broken took %i rounds "
msgstr "Ãberspringe defekte brachte %i Runden"
-#: ../yum/__init__.py:688
+#: ../yum/__init__.py:708
msgid ""
"\n"
"Packages skipped because of dependency problems:"
@@ -1495,157 +1456,157 @@ msgstr ""
"\n"
"Pakete übersprungen wegen Abhängigkeitsproblemen:"
-#: ../yum/__init__.py:692
+#: ../yum/__init__.py:712
#, python-format
msgid " %s from %s"
msgstr " %s von %s"
-#: ../yum/__init__.py:781
-msgid "Warning: errors occurred during transaction."
-msgstr "Warnung: Es sind Fehler bei der Vererbeitung aufgetreten."
+#: ../yum/__init__.py:792
+msgid "Warning: scriptlet or other non-fatal errors occurred during transaction."
+msgstr "Warnung: Scriptlet- oder anderen nichtkritische Fehler sind bei der Verarbeitung aufgetreten."
-#: ../yum/__init__.py:800
+#: ../yum/__init__.py:807
#, python-format
msgid "Failed to remove transaction file %s"
msgstr "Entfernen der Verarbeitungsdatei %s fehlgeschlagen"
-#: ../yum/__init__.py:840
+#: ../yum/__init__.py:847
#, python-format
msgid "excluding for cost: %s from %s"
msgstr "Ausschluss für Kosten: %s from %s"
-#: ../yum/__init__.py:871
+#: ../yum/__init__.py:878
msgid "Excluding Packages in global exclude list"
msgstr "Schliessen Pakete aus globaler Ausschlussliste aus"
-#: ../yum/__init__.py:873
+#: ../yum/__init__.py:880
#, python-format
msgid "Excluding Packages from %s"
msgstr "Schliesse Pakete aus von %s"
-#: ../yum/__init__.py:901
+#: ../yum/__init__.py:906
#, python-format
msgid "Reducing %s to included packages only"
msgstr "Reduziere %s nur zum Einbeziehen der Pakete"
-#: ../yum/__init__.py:906
+#: ../yum/__init__.py:911
#, python-format
msgid "Keeping included package %s"
msgstr "Behalte integriertes Paket %s"
-#: ../yum/__init__.py:912
+#: ../yum/__init__.py:917
#, python-format
msgid "Removing unmatched package %s"
msgstr "Entferne nicht übereinstimmendes Paket %s"
-#: ../yum/__init__.py:915
+#: ../yum/__init__.py:920
msgid "Finished"
msgstr "Abgeschlossen"
#. Whoa. What the heck happened?
-#: ../yum/__init__.py:945
+#: ../yum/__init__.py:950
#, python-format
msgid "Unable to check if PID %s is active"
msgstr "Unfähig zum Prüfen, ob PID %s ist aktiv"
#. Another copy seems to be running.
-#: ../yum/__init__.py:949
+#: ../yum/__init__.py:954
#, python-format
msgid "Existing lock %s: another copy is running as pid %s."
msgstr "Existierende Blockierung %s: eine andere Kopie läuft mit PID %s."
-#: ../yum/__init__.py:1012
+#: ../yum/__init__.py:1017
msgid "Package does not match intended download"
msgstr "Paket stimmt nicht mit dem vorgesehenen Herunterladen überein."
-#: ../yum/__init__.py:1027
+#: ../yum/__init__.py:1032
msgid "Could not perform checksum"
msgstr "Konnte Prüfsumme nicht ausführen"
-#: ../yum/__init__.py:1030
+#: ../yum/__init__.py:1035
msgid "Package does not match checksum"
msgstr "Paket stimmt nicht mit der Prüfsumme überein"
-#: ../yum/__init__.py:1071
+#: ../yum/__init__.py:1079
#, python-format
msgid "package fails checksum but caching is enabled for %s"
msgstr "Paket bei Checksumme-Prüfung durchgefallen, aber Zwischenspeicherung ist aktiviert für %s"
-#: ../yum/__init__.py:1074
+#: ../yum/__init__.py:1082
#, python-format
msgid "using local copy of %s"
msgstr "benutze lokale Kopie von %s"
-#: ../yum/__init__.py:1098
+#: ../yum/__init__.py:1107
#, python-format
msgid "Insufficient space in download directory %s to download"
msgstr "Nicht genügend Platz im Download-Verzeichnis %s vorhanden"
-#: ../yum/__init__.py:1131
+#: ../yum/__init__.py:1140
msgid "Header is not complete."
msgstr "Header ist nicht vollständig."
-#: ../yum/__init__.py:1171
+#: ../yum/__init__.py:1180
#, python-format
msgid "Header not in local cache and caching-only mode enabled. Cannot download %s"
msgstr "Header ist nicht im lokalen Zwischen-Speicher und Nur-Zwischenspeicher-Modus aktiviert. Kann nicht herunterladen %s"
-#: ../yum/__init__.py:1226
+#: ../yum/__init__.py:1235
#, python-format
msgid "Public key for %s is not installed"
msgstr "Ãffentlicher Schlüssel für %s ist nicht installiert"
-#: ../yum/__init__.py:1230
+#: ../yum/__init__.py:1239
#, python-format
msgid "Problem opening package %s"
msgstr "Problem beim Ãffnen des Paketes %s"
-#: ../yum/__init__.py:1238
+#: ../yum/__init__.py:1247
#, python-format
msgid "Public key for %s is not trusted"
msgstr "Ãffentlicher Schlüssel für %s ist nicht vertrauenswürdig"
-#: ../yum/__init__.py:1242
+#: ../yum/__init__.py:1251
#, python-format
msgid "Package %s is not signed"
msgstr "Paket %s ist nicht unterschrieben"
-#: ../yum/__init__.py:1280
+#: ../yum/__init__.py:1289
#, python-format
msgid "Cannot remove %s"
msgstr "Kann %s nicht entfernen"
-#: ../yum/__init__.py:1284
+#: ../yum/__init__.py:1292
#, python-format
msgid "%s removed"
msgstr "%s entfernt"
-#: ../yum/__init__.py:1320
+#: ../yum/__init__.py:1328
#, python-format
msgid "Cannot remove %s file %s"
msgstr "Kann %s Datei nicht entfernt %s"
-#: ../yum/__init__.py:1324
+#: ../yum/__init__.py:1331
#, python-format
msgid "%s file %s removed"
msgstr "%s Datei %s entfernt"
-#: ../yum/__init__.py:1326
+#: ../yum/__init__.py:1333
#, python-format
msgid "%d %s files removed"
msgstr "%d %s Dateien entfernt"
-#: ../yum/__init__.py:1380
+#: ../yum/__init__.py:1386
#, python-format
msgid "More than one identical match in sack for %s"
msgstr "Mehr als eine identische Ãbereinstimmung im Behälter für %s"
-#: ../yum/__init__.py:1386
+#: ../yum/__init__.py:1391
#, python-format
msgid "Nothing matches %s.%s %s:%s-%s from update"
msgstr "Keine Ãbereinstimmungen %s.%s %s:%s-%s mit der Aktualisierung"
-#: ../yum/__init__.py:1584
+#: ../yum/__init__.py:1585
msgid "searchPackages() will go away in a future version of Yum. Use searchGenerator() instead. \n"
msgstr "searchPackages() wird verschwinden in zukünftigen Version von Yum. Benutze stattdessen searchGenerator(). \n"
@@ -1654,36 +1615,40 @@ msgstr "searchPackages() wird verschwinden in zukünftigen Version von Yum.
msgid "Searching %d packages"
msgstr "Suche %d Pakete"
-#: ../yum/__init__.py:1625
+#: ../yum/__init__.py:1624
#, python-format
msgid "searching package %s"
msgstr "Suche Paket %s"
-#: ../yum/__init__.py:1637
+#: ../yum/__init__.py:1635
msgid "searching in file entries"
msgstr "Suche in Datei-Einträgen"
-#: ../yum/__init__.py:1644
+#: ../yum/__init__.py:1641
msgid "searching in provides entries"
msgstr "suche in bereitgestellten Einträgen"
-#: ../yum/__init__.py:1674
+#: ../yum/__init__.py:1671
#, python-format
msgid "Provides-match: %s"
msgstr "Stelle Ãbereinstimmung bereit: %s"
+#: ../yum/__init__.py:1717
+msgid "No group data available for configured repositories"
+msgstr "Keine Gruppen-Daten in den konfigurierten Repositories verfügbar"
+
#: ../yum/__init__.py:1743
-#: ../yum/__init__.py:1761
-#: ../yum/__init__.py:1789
+#: ../yum/__init__.py:1762
+#: ../yum/__init__.py:1788
#: ../yum/__init__.py:1794
-#: ../yum/__init__.py:1849
-#: ../yum/__init__.py:1853
+#: ../yum/__init__.py:1850
+#: ../yum/__init__.py:1854
#, python-format
msgid "No Group named %s exists"
msgstr "Kein Gruppe mit dem Namen %s vorhanden"
-#: ../yum/__init__.py:1772
-#: ../yum/__init__.py:1865
+#: ../yum/__init__.py:1773
+#: ../yum/__init__.py:1866
#, python-format
msgid "package %s was not marked in group %s"
msgstr "Paket %s war nicht markiert in Gruppe %s"
@@ -1693,59 +1658,59 @@ msgstr "Paket %s war nicht markiert in Gruppe %s"
msgid "Adding package %s from group %s"
msgstr "Füge Paket %s aus Gruppe %s hinzu"
-#: ../yum/__init__.py:1815
+#: ../yum/__init__.py:1816
#, python-format
msgid "No package named %s available to be installed"
msgstr "Kein Paket mit Namen %s verfügbar zum Installieren"
-#: ../yum/__init__.py:1890
+#: ../yum/__init__.py:1891
#, python-format
msgid "Package tuple %s could not be found in packagesack"
msgstr "Paket-Tupel %s kann nicht gefunden werden im Paket-Behälter"
-#: ../yum/__init__.py:1958
-#: ../yum/__init__.py:2001
+#: ../yum/__init__.py:1959
+#: ../yum/__init__.py:1999
msgid "Invalid versioned dependency string, try quoting it."
msgstr "Ungültig versionierte Abhängigkeitszeichenkette, versuche es zu notieren."
-#: ../yum/__init__.py:1960
-#: ../yum/__init__.py:2003
+#: ../yum/__init__.py:1961
+#: ../yum/__init__.py:2001
msgid "Invalid version flag"
msgstr "Ungültiges Versionsflag"
-#: ../yum/__init__.py:1975
-#: ../yum/__init__.py:1979
+#: ../yum/__init__.py:1973
+#: ../yum/__init__.py:1977
#, python-format
msgid "No Package found for %s"
msgstr "Kein Paket gefunden für %s"
-#: ../yum/__init__.py:2107
+#: ../yum/__init__.py:2105
msgid "Package Object was not a package object instance"
msgstr "Paketobjekt war keine Paketobjektinstanz"
-#: ../yum/__init__.py:2111
+#: ../yum/__init__.py:2109
msgid "Nothing specified to install"
msgstr "Nichts angegeben zum Installieren"
#. only one in there
-#: ../yum/__init__.py:2126
+#: ../yum/__init__.py:2124
#, python-format
msgid "Checking for virtual provide or file-provide for %s"
msgstr "Ãberprüfe nach virtueller Bereitstellung oder Datei-Bereitstellung für %s"
-#: ../yum/__init__.py:2132
-#: ../yum/__init__.py:2447
+#: ../yum/__init__.py:2130
+#: ../yum/__init__.py:2446
#, python-format
msgid "No Match for argument: %s"
msgstr "Kein Ãbereinstimmung für Argument: %s"
#. FIXME - this is where we could check to see if it already installed
#. for returning better errors
-#: ../yum/__init__.py:2187
+#: ../yum/__init__.py:2185
msgid "No package(s) available to install"
msgstr "Kein Paket(e) zum Installieren verfügbar."
-#: ../yum/__init__.py:2199
+#: ../yum/__init__.py:2198
#, python-format
msgid "Package: %s - already in transaction set"
msgstr "Paket: %s - bereits im Transaktionsset"
@@ -1780,101 +1745,110 @@ msgstr "Paket ist bereits veraltet: %s.%s %s:%s-%s"
msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s"
msgstr "Aktualisiere Paket nicht, da es bereits veraltet ist: %s.%s %s:%s-%s"
-#: ../yum/__init__.py:2444
+#: ../yum/__init__.py:2443
#, python-format
msgid "%s"
msgstr "%s"
-#: ../yum/__init__.py:2459
+#. FIXME we should give the caller some nice way to hush this warning
+#. probably just a kwarg of 'silence_warnings' or something
+#. b/c when this is called from groupRemove() it makes a lot of
+#. garbage noise
+#: ../yum/__init__.py:2462
msgid "No package matched to remove"
msgstr "Kein Paket stimmt zum Entfernen überein"
-#: ../yum/__init__.py:2493
+#: ../yum/__init__.py:2496
#, python-format
msgid "Cannot open file: %s. Skipping."
msgstr "Kann Datei nicht öffnen: %s. Ãberspringen."
-#: ../yum/__init__.py:2496
+#: ../yum/__init__.py:2498
#, python-format
msgid "Examining %s: %s"
msgstr "Untersuche %s: %s"
-#: ../yum/__init__.py:2503
+#: ../yum/__init__.py:2504
+#, python-format
+msgid "Cannot add package %s to transaction. Not a compatible architecture: %s"
+msgstr "Kann Paket %s nicht zur Verarbeitung hinzufügen. Keine kompatible Architektur: %s"
+
+#: ../yum/__init__.py:2512
#, python-format
msgid "Package %s not installed, cannot update it. Run yum install to install it instead."
msgstr "Paket %s nicht installiert, kann es nicht aktualisieren. Führen Sie stattdessen yum install aus, um es zu installieren."
-#: ../yum/__init__.py:2536
+#: ../yum/__init__.py:2545
#, python-format
msgid "Excluding %s"
msgstr "Exklusive %s"
-#: ../yum/__init__.py:2541
+#: ../yum/__init__.py:2549
#, python-format
msgid "Marking %s to be installed"
msgstr "Markiere %s zum Installieren"
-#: ../yum/__init__.py:2547
+#: ../yum/__init__.py:2554
#, python-format
msgid "Marking %s as an update to %s"
msgstr "Markiere %s als eine Aktualisierung für %s"
-#: ../yum/__init__.py:2554
+#: ../yum/__init__.py:2559
#, python-format
msgid "%s: does not update installed package."
msgstr "%s: aktualisiert installierte Pakete nicht."
-#: ../yum/__init__.py:2572
+#: ../yum/__init__.py:2576
msgid "Problem in reinstall: no package matched to remove"
msgstr "Probleme beim Neuinstallieren: kein Paket stimmt zum Entfernen überein"
-#: ../yum/__init__.py:2583
+#: ../yum/__init__.py:2587
#, python-format
msgid "Package %s is allowed multiple installs, skipping"
msgstr "Paket %s darf mehrfach installiert sein, überspringe"
-#: ../yum/__init__.py:2590
+#: ../yum/__init__.py:2594
msgid "Problem in reinstall: no package matched to install"
msgstr "Probleme beim Neuinstallieren: kein Paket stimmt zum Installieren überein"
-#: ../yum/__init__.py:2638
+#: ../yum/__init__.py:2641
#, python-format
msgid "Retrieving GPG key from %s"
msgstr "GPG-Schlüssel abrufen von %s"
-#: ../yum/__init__.py:2644
+#: ../yum/__init__.py:2647
msgid "GPG key retrieval failed: "
msgstr "GPG-Schlüssel-Abruf fehlgeschlagen:"
-#: ../yum/__init__.py:2657
+#: ../yum/__init__.py:2663
msgid "GPG key parsing failed: "
msgstr "GPG-Schlüssel-Analyse fehlgeschlagen: "
-#: ../yum/__init__.py:2661
+#: ../yum/__init__.py:2667
#, python-format
msgid "GPG key at %s (0x%s) is already installed"
msgstr "GPG-Schlüssel unter %s (0x%s) ist bereits installiert"
#. Try installing/updating GPG key
-#: ../yum/__init__.py:2666
+#: ../yum/__init__.py:2672
#, python-format
msgid "Importing GPG key 0x%s \"%s\" from %s"
msgstr "Importiere GPG-Schlüssel 0x%s \"%s\" von %s"
-#: ../yum/__init__.py:2678
+#: ../yum/__init__.py:2685
msgid "Not installing key"
msgstr "Nicht installierter Schlüssel"
-#: ../yum/__init__.py:2684
+#: ../yum/__init__.py:2691
#, python-format
msgid "Key import failed (code %d)"
msgstr "Schlüssel-Import fehlgeschlagen (Code %d)"
-#: ../yum/__init__.py:2687
+#: ../yum/__init__.py:2694
msgid "Key imported successfully"
msgstr "Schlüssel erfolgreich importiert"
-#: ../yum/__init__.py:2692
+#: ../yum/__init__.py:2699
#, python-format
msgid ""
"The GPG keys listed for the \"%s\" repository are already installed but they are not correct for this package.\n"
@@ -1883,19 +1857,19 @@ msgstr ""
"Die aufgelisteten GPG-Schlüssel für das \"%s\" Repository sind bereits installiert, aber sie sind nicht korrekt für dieses Paket.\n"
"Stellen Sie sicher, dass die korrekten Schlüssel-URLs für dieses Repository konfiguriert sind."
-#: ../yum/__init__.py:2701
+#: ../yum/__init__.py:2708
msgid "Import of key(s) didn't help, wrong key(s)?"
msgstr "Importieren der Schlüssel hat nicht geholfen, falsche Schlüssel?"
-#: ../yum/__init__.py:2775
+#: ../yum/__init__.py:2789
msgid "Unable to find a suitable mirror."
msgstr "Es kann kein geeigneter Mirror gefunden werden."
-#: ../yum/__init__.py:2777
+#: ../yum/__init__.py:2791
msgid "Errors were encountered while downloading packages."
msgstr "Beim Herunterladen der Pakete sind Fehler aufgetreten."
-#: ../yum/__init__.py:2842
+#: ../yum/__init__.py:2854
msgid "Test Transaction Errors: "
msgstr "Test-Transaktionsfehler"
@@ -1986,6 +1960,24 @@ msgstr "Defekter Header %s"
msgid "Error opening rpm %s - error %s"
msgstr "Fehler bei Ãffnen des RPM %s - Fehler %s"
+#~ msgid "Searching pkgSack for dep: %s"
+#~ msgstr "Suche pkgSack für Abhängigkeiten: %s"
+#~ msgid "Potential match for %s from %s"
+#~ msgstr "Potentielle Ãbereinstimmung für %s von %s"
+#~ msgid "Matched %s to require for %s"
+#~ msgstr "Ãbereinstimmung von %s, welche gebraucht wird für %s"
+#~ msgid "Needed Require has already been looked up, cheating"
+#~ msgstr "Benötigte Anforderung wurde bereits nachgeschlagen, betrüge"
+#~ msgid "Needed Require is not a package name. Looking up: %s"
+#~ msgstr "Benötigte Anforderung ist kein Paket-Name. Schlagen nach: %s"
+#~ msgid "Potential Provider: %s"
+#~ msgstr "Potentieller Bereitsteller: %s"
+#~ msgid "Mode is %s for provider of %s: %s"
+#~ msgstr "Modus ist %s für Bereitsteller von %s: %s"
+#~ msgid "Mode for pkg providing %s: %s"
+#~ msgstr "Modus für pkg-Bereitstellung %s: %s"
+#~ msgid "Unresolvable requirement %s for %s"
+#~ msgstr "Unlösbare Anforderung %s für %s"
#~ msgid ""
#~ "Failure finding best provider of %s for %s, exceeded maximum loop length"
#~ msgstr ""
commit 288ace08f79f993746a473e46171f8d6416e5c95
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Mon Jul 21 14:20:21 2008 -0400
silence the "No package matched to remove" lines during groupremove operations.
diff --git a/yum/__init__.py b/yum/__init__.py
index 3f9c8a6..02a0279 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -1774,7 +1774,7 @@ class YumBase(depsolve.Depsolve):
thisgroup.toremove = True
pkgs = thisgroup.packages
for pkg in thisgroup.packages:
- txmbrs = self.remove(name=pkg)
+ txmbrs = self.remove(name=pkg, silence_warnings=True)
txmbrs_used.extend(txmbrs)
for txmbr in txmbrs:
txmbr.groups.append(thisgroup.groupid)
@@ -2530,11 +2530,8 @@ class YumBase(depsolve.Depsolve):
ver=nevra_dict['version'], rel=nevra_dict['release'])
if len(pkgs) == 0:
- # FIXME we should give the caller some nice way to hush this warning
- # probably just a kwarg of 'silence_warnings' or something
- # b/c when this is called from groupRemove() it makes a lot of
- # garbage noise
- self.logger.warning(_("No package matched to remove"))
+ if not kwargs.get('silence_warnings', False):
+ self.logger.warning(_("No package matched to remove"))
for po in pkgs:
txmbr = self.tsInfo.addErase(po)
commit c50a61a50042eff0bc6cb9a323b2dbf0292a1ad8
Author: James Antill <james at and.org>
Date: Sun Jul 20 17:26:36 2008 -0400
Make 'import gpgme' less fatal ... it isn't required, yet
diff --git a/yum/misc.py b/yum/misc.py
index a587eb6..caae307 100644
--- a/yum/misc.py
+++ b/yum/misc.py
@@ -16,7 +16,10 @@ import pwd
import fnmatch
import bz2
from stat import *
-import gpgme
+try:
+ import gpgme
+except ImportError:
+ gpgme = None
from Errors import MiscError
@@ -322,6 +325,9 @@ def keyInstalled(ts, keyid, timestamp):
return -1
def import_key_to_pubring(rawkey, repo_cachedir):
+ if gpgme is None:
+ return False
+
gpgdir = '%s/gpgdir' % repo_cachedir
if not os.path.exists(gpgdir):
os.makedirs(gpgdir)
@@ -334,12 +340,13 @@ def import_key_to_pubring(rawkey, repo_cachedir):
fp.close()
ctx.import_(key_fo)
key_fo.close()
+ return True
def return_keyids_from_pubring(gpgdir):
- ctx = gpgme.Context()
- if not os.path.exists(gpgdir):
+ if gpgme is None or not os.path.exists(gpgdir):
return []
+ ctx = gpgme.Context()
os.environ['GNUPGHOME'] = gpgdir
keyids = []
for k in ctx.keylist():
commit 1b68d4685d15abc98aa854188af05d51bf0e0b56
Author: James Antill <james at and.org>
Date: Sun Jul 20 11:28:16 2008 -0400
Add _skip_all paths to a bunch more functions, some of them do
_all_excludes processing anyway ... but make sure.
diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index a5f8fed..2a1de81 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -466,10 +466,22 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
pattern = pattern.replace("_", "!_")
return (pattern, esc)
+ def _skip_all(self):
+ """ Are we going to skip every package in all our repos? """
+ skip_all = True
+ for repo in self.added:
+ if repo not in self._all_excludes:
+ skip_all = False
+ break
+ return skip_all
+
@catchSqliteException
def searchFiles(self, name, strict=False):
"""search primary if file will be in there, if not, search filelists, use globs, if possible"""
+ if self._skip_all():
+ return []
+
# optimizations:
# if it is not glob, then see if it is in the primary.xml filelists,
# if so, just use those for the lookup
@@ -546,6 +558,9 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
@catchSqliteException
def searchPrimaryFields(self, fields, searchstring):
"""search arbitrary fields from the primarydb for a string"""
+ if self._skip_all():
+ return []
+
result = []
if len(fields) < 1:
return result
@@ -568,6 +583,9 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
"""search arbitrary fields from the primarydb for a multiple strings
return packages, number of items it matched as a list of tuples"""
+ if self._skip_all():
+ return []
+
result = [] # (pkg, num matches)
if len(fields) < 1:
return result
@@ -613,6 +631,9 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
@catchSqliteException
def returnObsoletes(self, newest=False):
+ if self._skip_all():
+ return {}
+
if newest:
raise NotImplementedError()
@@ -697,6 +718,9 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
@catchSqliteException
def _search(self, prcotype, name, flags, version):
+ if self._skip_all():
+ return {}
+
if flags == 0:
flags = None
if type(version) in (str, type(None), unicode):
@@ -792,19 +816,14 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
def getRequires(self, name, flags=None, version=(None, None, None)):
return self._search("requires", name, flags, version)
- def _skip_all(self):
- """ Are we going to skip every package in all our repos? """
- skip_all = True
- for repo in self.added:
- if repo not in self._all_excludes:
- skip_all = False
- return skip_all
-
@catchSqliteException
def searchNames(self, names):
"""return a list of packages matching any of the given names. This is
only a match on package name, nothing else"""
+ if self._skip_all():
+ return []
+
returnList = []
if len(names) > constants.PATTERNS_MAX:
names = set(names)
@@ -814,9 +833,6 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
returnList.append(pkg)
return returnList
- if self._skip_all():
- return []
-
pat_sqls = []
qsql = """select pkgId,pkgKey,name,epoch,version,release,arch
from packages where """
@@ -835,6 +851,9 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
@catchSqliteException
def searchPrco(self, name, prcotype):
"""return list of packages having prcotype name (any evr and flag)"""
+ if self._skip_all():
+ return []
+
glob = True
querytype = 'glob'
if not misc.re_glob(name):
@@ -982,6 +1001,9 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
def returnNewestByName(self, name=None, patterns=None, ignore_case=False):
# If name is set do it from the database otherwise use our parent's
# returnNewestByName
+ if self._skip_all():
+ return []
+
if (not name):
return yumRepo.YumPackageSack.returnNewestByName(self, name,
patterns,
@@ -1002,6 +1024,9 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
# Do what packages.matchPackageNames does, but query the DB directly
@catchSqliteException
def matchPackageNames(self, pkgspecs):
+ if self._skip_all():
+ return []
+
matched = []
exactmatch = []
unmatched = list(pkgspecs)
@@ -1094,6 +1119,9 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
@catchSqliteException
def searchNevra(self, name=None, epoch=None, ver=None, rel=None, arch=None):
"""return list of pkgobjects matching the nevra requested"""
+ if self._skip_all():
+ return []
+
returnList = []
# make sure some dumbass didn't pass us NOTHING to search on
commit 34b964478316d0edd2edff71e283ed1311c55deb
Author: James Antill <james at and.org>
Date: Sun Jul 20 11:16:17 2008 -0400
Merge skip_all code paths into a helper function
diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index 425ee65..a5f8fed 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -792,6 +792,14 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
def getRequires(self, name, flags=None, version=(None, None, None)):
return self._search("requires", name, flags, version)
+ def _skip_all(self):
+ """ Are we going to skip every package in all our repos? """
+ skip_all = True
+ for repo in self.added:
+ if repo not in self._all_excludes:
+ skip_all = False
+ return skip_all
+
@catchSqliteException
def searchNames(self, names):
"""return a list of packages matching any of the given names. This is
@@ -806,12 +814,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
returnList.append(pkg)
return returnList
- skip_all = True
- for repo in self.added:
- if repo not in self._all_excludes:
- skip_all = False
-
- if skip_all:
+ if self._skip_all():
return []
pat_sqls = []
@@ -1072,13 +1075,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
packages are processed for excludes. Note that patterns is just
a hint, we are free it ignore it. """
- # Skip unused repos completely, Eg. *-source
- skip_all = True
- for repo in self.added:
- if repo not in self._all_excludes:
- skip_all = False
-
- if skip_all:
+ if self._skip_all():
return []
if hasattr(self, 'pkgobjlist'):
commit 701e3d0e16c51a2e52cdf65351b7954621bf223f
Author: James Antill <james at and.org>
Date: Sun Jul 20 11:13:29 2008 -0400
Add skip_all path to searchNames(), minor speed up
diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index 2254b3f..425ee65 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -806,6 +806,14 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
returnList.append(pkg)
return returnList
+ skip_all = True
+ for repo in self.added:
+ if repo not in self._all_excludes:
+ skip_all = False
+
+ if skip_all:
+ return []
+
pat_sqls = []
qsql = """select pkgId,pkgKey,name,epoch,version,release,arch
from packages where """
commit 233b2b3ebe55203e049834e2ca47df32fb7193a4
Author: James Antill <james at and.org>
Date: Sun Jul 20 11:12:06 2008 -0400
Add PATTERNS_MAX path to searchNames(), so large groups work.
Bump PATTERNS_MAX to be larger.
Divide usage of PATTERNS_AMX by the number of fields per. pattern.
diff --git a/yum/constants.py b/yum/constants.py
index 21c0988..00a2bba 100644
--- a/yum/constants.py
+++ b/yum/constants.py
@@ -99,4 +99,4 @@ RPM_TO_SQLITE = { 'packagesize' : 'size_package',
}
# Cut over for when we should just give up and load everything
-PATTERNS_MAX = 128
+PATTERNS_MAX = 512
diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index c1fdc23..2254b3f 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -574,7 +574,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
# NOTE: I can't see any reason not to use this all the time, speed
# comparison shows them as baiscally equal.
- if len(searchstrings) > constants.PATTERNS_MAX:
+ if len(searchstrings) > (constants.PATTERNS_MAX / len(fields)):
tot = {}
for searchstring in searchstrings:
matches = self.searchPrimaryFields(fields, searchstring)
@@ -797,6 +797,15 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
"""return a list of packages matching any of the given names. This is
only a match on package name, nothing else"""
+ returnList = []
+ if len(names) > constants.PATTERNS_MAX:
+ names = set(names)
+ for pkg in self.returnPackages():
+ if pkg.name not in names:
+ continue
+ returnList.append(pkg)
+ return returnList
+
pat_sqls = []
qsql = """select pkgId,pkgKey,name,epoch,version,release,arch
from packages where """
@@ -804,7 +813,6 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
pat_sqls.append("name = ?")
qsql = qsql + " OR ".join(pat_sqls)
- returnList = []
for (repo, cache) in self.primarydb.items():
cur = cache.cursor()
executeSQL(cur, qsql, list(names))
@@ -1013,7 +1021,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
"""Builds a list of packages, only containing nevra information. No
excludes are done at this stage. """
- if patterns is None or len(patterns) > constants.PATTERNS_MAX:
+ if patterns is None or len(patterns) > (constants.PATTERNS_MAX / 7):
patterns = []
returnList = []
commit de106df1540520f0d189214588ce0a350dd3f620
Author: James Antill <james at and.org>
Date: Sun Jul 20 01:30:59 2008 -0400
Add simpleNevraList() which is like simpleList() but uses nevra instead of
na and evr
Add _group_names2pkgs as a template for usage of .searchNames() (for PK, etc.)
Add verbose mode to groupinfo, to output pkgs in simpleNevraList() format
which uses the above.
diff --git a/output.py b/output.py
index 283bf85..04b0491 100644
--- a/output.py
+++ b/output.py
@@ -35,6 +35,7 @@ from yum.constants import *
from yum import logginglevels, _
from yum.rpmtrans import RPMBaseCallback
+from yum.packageSack import packagesNewestByNameArch
from textwrap import fill
@@ -252,6 +253,13 @@ class YumOutput:
na = ""
print "%-40.40s %-22.22s %-16.16s" % (na, ver, pkg.repoid)
+ def simpleNevraList(self, pkg, ui_overflow=False, indent=''):
+ nevra = "%s%s" % (indent, str(pkg))
+ if ui_overflow and len(nevra) > 63:
+ print "%s %s" % (nevra, "...")
+ nevra = ""
+ print "%-63.63s %-16.16s" % (nevra, pkg.repoid)
+
def fmtKeyValFill(self, key, val):
""" Return a key value pair in the common two column output format. """
val = to_str(val)
@@ -379,32 +387,69 @@ class YumOutput:
else:
return True
+ def _group_names2pkgs(self, pkg_names):
+ # Convert pkg_names to installed pkgs and available pkgs
+ ipkgs = self.rpmdb.searchNames(pkg_names)
+ apkgs = self.pkgSack.searchNames(pkg_names)
+ apkgs = packagesNewestByNameArch(apkgs)
+
+ # FIXME: Basically doPackageLists('all') behaviour
+ pkgs = {}
+ for pkg in ipkgs:
+ pkgs[(pkg.name, pkg.arch)] = pkg
+ for pkg in apkgs:
+ key = (pkg.name, pkg.arch)
+ if key not in pkgs or pkg.verGT(pkgs[key]):
+ pkgs[(pkg.name, pkg.arch)] = pkg
+
+ # Convert (pkg.name, pkg.arch) to pkg.name dict
+ ret = {}
+ for pkg in pkgs.itervalues():
+ ret.setdefault(pkg.name, []).append(pkg)
+ return ret
+
+ def _displayPkgsFromNames(self, pkg_names, verbose, pkg_names2pkgs,
+ indent=' '):
+ if not verbose:
+ for item in sorted(pkg_names):
+ print '%s%s' % (indent, item)
+ else:
+ for item in sorted(pkg_names):
+ if item not in pkg_names2pkgs:
+ print '%s%s' % (indent, item)
+ continue
+ for pkg in sorted(pkg_names2pkgs[item]):
+ self.simpleNevraList(pkg, ui_overflow=True, indent=indent)
def displayPkgsInGroups(self, group):
mylang = get_my_lang_code()
print _('\nGroup: %s') % group.nameByLang(mylang)
+
+ verb = self.verbose_logger.isEnabledFor(logginglevels.DEBUG_3)
+ pkg_names2pkgs = None
+ if verb:
+ pkg_names2pkgs = self._group_names2pkgs(group.packages)
if group.descriptionByLang(mylang) != "":
print _(' Description: %s') % to_unicode(group.descriptionByLang(mylang))
if len(group.mandatory_packages) > 0:
print _(' Mandatory Packages:')
- for item in sorted(group.mandatory_packages):
- print ' %s' % item
+ self._displayPkgsFromNames(group.mandatory_packages, verb,
+ pkg_names2pkgs)
if len(group.default_packages) > 0:
print _(' Default Packages:')
- for item in sorted(group.default_packages):
- print ' %s' % item
+ self._displayPkgsFromNames(group.default_packages, verb,
+ pkg_names2pkgs)
if len(group.optional_packages) > 0:
print _(' Optional Packages:')
- for item in sorted(group.optional_packages):
- print ' %s' % item
+ self._displayPkgsFromNames(group.optional_packages, verb,
+ pkg_names2pkgs)
if len(group.conditional_packages) > 0:
print _(' Conditional Packages:')
- # FIXME: Why is this different?
- for item, cond in group.conditional_packages.iteritems():
- print ' %s' % (item,)
+ self._displayPkgsFromNames(group.conditional_packages, verb,
+ pkg_names2pkgs)
def depListOutput(self, results):
"""take a list of findDeps results and 'pretty print' the output"""
commit 1803ad96d5da4ee93f35ab7d7134c2c2ef875589
Merge: 4c679a0... be409e6...
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Sat Jul 19 17:37:30 2008 -0400
Merge branch 'yum-3_2_X' of ssh://login.linux.duke.edu/home/groups/yum/git/yum into yum-3_2_X
* 'yum-3_2_X' of ssh://login.linux.duke.edu/home/groups/yum/git/yum:
Don't do SQL escaping combined on each SQL field
Make error reporting work with python-2.4.z, dito. SQL escaping.
Tweak provides warning message to be quiet on anything with a * in it
Conflicts:
yum/sqlitesack.py
commit 4c679a0ec398392bf871fa94e7e0206c05a8ba90
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Sat Jul 19 17:33:27 2008 -0400
make yum list \*.noarch work again for repos.
Pattern was being escaped multipled times due to for loop for the 'field' option.
moved the escaping around to avoid that problem.
diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index 15e916b..11c6a36 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -1025,13 +1025,15 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
pat_sqls = []
pat_data = []
for pattern in patterns:
+ if ignore_case:
+ (pattern, esc) = self._sql_esc(pattern)
+ pattern = pattern.replace("*", "%")
+ pattern = pattern.replace("?", "_")
+
for field in ['name', 'sql_nameArch', 'sql_nameVerRelArch',
'sql_nameVer', 'sql_nameVerRel',
'sql_envra', 'sql_nevra']:
if ignore_case:
- (pattern, esc) = self._sql_esc(pattern)
- pattern = pattern.replace("*", "%")
- pattern = pattern.replace("?", "_")
pat_sqls.append("%s LIKE ?%s" % (field, esc))
else:
pat_sqls.append("%s GLOB ?" % field)
commit be409e6004176075c5a6d8738fb7da994b619f82
Author: James Antill <james at and.org>
Date: Fri Jul 18 22:10:49 2008 -0400
Don't do SQL escaping combined on each SQL field
diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index 8ebc11f..c1fdc23 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -1027,13 +1027,16 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
pat_sqls = []
pat_data = []
for pattern in patterns:
+ done = False
for field in ['name', 'sql_nameArch', 'sql_nameVerRelArch',
'sql_nameVer', 'sql_nameVerRel',
'sql_envra', 'sql_nevra']:
if ignore_case:
- (pattern, esc) = self._sql_esc(pattern)
- pattern = pattern.replace("*", "%")
- pattern = pattern.replace("?", "_")
+ if not done:
+ done = True
+ (pattern, esc) = self._sql_esc(pattern)
+ pattern = pattern.replace("*", "%")
+ pattern = pattern.replace("?", "_")
pat_sqls.append("%s LIKE ?%s" % (field, esc))
else:
pat_sqls.append("%s GLOB ?" % field)
commit 7c379426cf2724c34a402c8a4f7845a9ac69b48b
Author: James Antill <james at and.org>
Date: Fri Jul 18 22:09:41 2008 -0400
Make error reporting work with python-2.4.z, dito. SQL escaping.
diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index 15e916b..8ebc11f 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -41,7 +41,9 @@ def catchSqliteException(func):
try:
return func(*args, **kwargs)
except sqlutils.sqlite.Error, e:
- raise Errors.RepoError, str(e.message)
+ if hasattr(e, "message"):
+ raise Errors.RepoError, str(e.message)
+ raise Errors.RepoError, str(e)
newFunc.__name__ = func.__name__
newFunc.__doc__ = func.__doc__
@@ -458,7 +460,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
""" Apply SQLite escaping, if needed. Returns pattern and esc. """
esc = ''
if "_" in pattern or "%" in pattern:
- esc = " ESCAPE '!'"
+ esc = ' ESCAPE "!"'
pattern = pattern.replace("!", "!!")
pattern = pattern.replace("%", "!%")
pattern = pattern.replace("_", "!_")
commit 5dea0d2e29c21ee357a924eef5c9bcb32f282b28
Author: James Antill <james at and.org>
Date: Thu Jul 17 10:34:12 2008 -0400
Tweak provides warning message to be quiet on anything with a * in it
diff --git a/cli.py b/cli.py
index b5e95cf..4d84b74 100644
--- a/cli.py
+++ b/cli.py
@@ -727,7 +727,7 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
if len(matching) == 0:
for arg in args:
- if len(arg) and arg[0] == '*':
+ if '*' in arg:
continue
self.logger.warning(_('Warning: 3.0.x versions of yum would erronously match against filenames.\n You can use "%s*/%s%s" and/or "%s*bin/%s%s" to get that behaviour'),
self.term.MODE['bold'], arg,
commit 12f52e04ea8ce09af3e0b0b4a9551c5b97ebbd06
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Fri Jul 18 14:27:00 2008 -0400
- add add_group and add_category methods to comps object
- add a \n to make xml() output look better
diff --git a/yum/comps.py b/yum/comps.py
index 1dc303e..5d257cf 100755
--- a/yum/comps.py
+++ b/yum/comps.py
@@ -423,7 +423,19 @@ class Comps(object):
return returns.values()
+ def add_group(self, group):
+ if self._groups.has_key(group.groupid):
+ thatgroup = self._groups[group.groupid]
+ thatgroup.add(group)
+ else:
+ self._groups[group.groupid] = group
+ def add_category(self, category):
+ if self._categories.has_key(category.categoryid):
+ thatcat = self._categories[category.categoryid]
+ thatcat.add(category)
+ else:
+ self._categories[category.categoryid] = category
def add(self, srcfile = None):
if not srcfile:
@@ -444,19 +456,10 @@ class Comps(object):
for event, elem in parser:
if elem.tag == "group":
group = Group(elem)
- if self._groups.has_key(group.groupid):
- thatgroup = self._groups[group.groupid]
- thatgroup.add(group)
- else:
- self._groups[group.groupid] = group
-
+ self.add_group(group)
if elem.tag == "category":
category = Category(elem)
- if self._categories.has_key(category.categoryid):
- thatcat = self._categories[category.categoryid]
- thatcat.add(category)
- else:
- self._categories[category.categoryid] = category
+ self.add_category(category)
except SyntaxError, e:
raise CompsException, "comps file is empty/damaged"
del parser
@@ -511,7 +514,7 @@ class Comps(object):
for c in self.get_categories():
msg += c.xml()
- msg += """</comps>\n"""
+ msg += """\n</comps>\n"""
return msg
commit b966c618b09392ee0143dfacac067020b596483e
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Fri Jul 18 14:26:32 2008 -0400
fix unicode traceback due to str() call on exception which was already unicode :(
diff --git a/output.py b/output.py
index 6d9006d..283bf85 100644
--- a/output.py
+++ b/output.py
@@ -236,7 +236,7 @@ class YumOutput:
def failureReport(self, errobj):
"""failure output for failovers from urlgrabber"""
- self.logger.error('%s: %s', errobj.url, str(errobj.exception))
+ self.logger.error('%s: %s', errobj.url, errobj.exception)
self.logger.error(_('Trying other mirror.'))
raise errobj.exception
commit cbd52324de549f77902fdc11c15d332e89fda5b0
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Wed Jul 16 14:05:21 2008 -0400
return non-zero exit code if the rpm transaction has semi-fatal scriptlet failures.
adds a fake resultobject returned from runTransaction() so that any future extensions we add
can be bolted onto the object. resultobject.return_code is the important attribute
diff --git a/cli.py b/cli.py
index 1554911..b5e95cf 100644
--- a/cli.py
+++ b/cli.py
@@ -456,7 +456,7 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
cb.display.output = False
self.verbose_logger.log(yum.logginglevels.INFO_2, _('Running Transaction'))
- self.runTransaction(cb=cb)
+ resultobject = self.runTransaction(cb=cb)
self.verbose_logger.debug('Transaction time: %0.3f' % (time.time() - ts_st))
# close things
@@ -466,7 +466,7 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
# put back the sigquit handler
signal.signal(signal.SIGQUIT, sigquit)
- return 0
+ return resultobject.return_code
def gpgsigcheck(self, pkgs):
'''Perform GPG signature verification on the given packages, installing
diff --git a/yum/__init__.py b/yum/__init__.py
index c13055c..3f9c8a6 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -773,11 +773,16 @@ class YumBase(depsolve.Depsolve):
# ts.run() exit codes are, hmm, "creative": None means all ok, empty
# list means some errors happened in the transaction and non-empty
# list that there were errors preventing the ts from starting...
+
+ # make resultobject - just a plain yumgenericholder object
+ resultobject = misc.GenericHolder
+ resultobject.return_code = 0
if errors is None:
pass
elif len(errors) == 0:
errstring = _('Warning: scriptlet or other non-fatal errors occurred during transaction.')
self.verbose_logger.debug(errstring)
+ resultobject.return_code = 1
else:
raise Errors.YumBaseError, errors
@@ -794,7 +799,8 @@ class YumBase(depsolve.Depsolve):
self.logger.critical(_('Failed to remove transaction file %s') % fn)
self.plugins.run('posttrans')
-
+ return resultobject
+
def costExcludePackages(self):
"""exclude packages if they have an identical package in another repo
and their repo.cost value is the greater one"""
diff --git a/yummain.py b/yummain.py
index 2935fb6..1787d4f 100755
--- a/yummain.py
+++ b/yummain.py
@@ -192,7 +192,7 @@ def main(args):
# Run the transaction
try:
- base.doTransaction()
+ return_code = base.doTransaction()
except plugins.PluginYumExit, e:
return exPluginExit(e)
except Errors.YumBaseError, e:
@@ -204,7 +204,7 @@ def main(args):
verbose_logger.log(logginglevels.INFO_2, _('Complete!'))
if unlock(): return 200
- return 0
+ return return_code
def hotshot(func, *args, **kwargs):
import hotshot.stats, os.path
commit b7f23f73ecd35441c403e57267544f92e69a0e49
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Wed Jul 16 11:46:28 2008 -0400
- make cli.updatePkgs() call YumBase.update() for most everything <-- watch this for interaction regressions
- closes rh bug #455301
- add add_enable_repo method to YumBase to facilitate adding repos by baseurl/mirrorlist easily
diff --git a/cli.py b/cli.py
index 4dc1772..1554911 100644
--- a/cli.py
+++ b/cli.py
@@ -544,30 +544,8 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
# if there is a userlist then it's for updating pkgs, not obsoleting
oldcount = len(self.tsInfo)
- installed = self.rpmdb.simplePkgList()
- updates = self.up.getUpdatesTuples()
- if self.conf.obsoletes:
- obsoletes = self.up.getObsoletesTuples(newest=1)
- else:
- obsoletes = []
-
if len(userlist) == 0: # simple case - do them all
- for (obsoleting, installed) in obsoletes:
- obsoleting_pkg = self.getPackageObject(obsoleting)
- installed_pkg = self.rpmdb.searchPkgTuple(installed)[0]
- self.tsInfo.addObsoleting(obsoleting_pkg, installed_pkg)
- self.tsInfo.addObsoleted(installed_pkg, obsoleting_pkg)
-
- for (new, old) in updates:
- txmbrs = self.tsInfo.getMembers(pkgtup=old)
-
- if txmbrs and txmbrs[0].output_state == TS_OBSOLETED:
- self.verbose_logger.log(yum.logginglevels.DEBUG_2, _('Not Updating Package that is already obsoleted: %s.%s %s:%s-%s'), old)
- else:
- updating_pkg = self.getPackageObject(new)
- updated_pkg = self.rpmdb.searchPkgTuple(old)[0]
- self.tsInfo.addUpdate(updating_pkg, updated_pkg)
-
+ self.update()
else:
# go through the userlist - look for items that are local rpms. If we find them
@@ -582,27 +560,8 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
for item in localupdates:
userlist.remove(item)
- # we've got a userlist, match it against updates tuples and populate
- # the tsInfo with the matches
- updatesPo = []
- for (new, old) in updates:
- (n,a,e,v,r) = new
- updatesPo.extend(self.pkgSack.searchNevra(name=n, arch=a, epoch=e,
- ver=v, rel=r))
-
- exactmatch, matched, unmatched = yum.packages.parsePackages(
- updatesPo, userlist, casematch=1)
- for userarg in unmatched:
- if not quiet:
- self.logger.error(_('Could not find update match for %s') % userarg)
-
- updateMatches = yum.misc.unique(matched + exactmatch)
- for po in updateMatches:
- for (new, old) in updates:
- if po.pkgtup == new:
- updated_pkg = self.rpmdb.searchPkgTuple(old)[0]
- self.tsInfo.addUpdate(po, updated_pkg)
-
+ for pattern in userlist:
+ self.update(pattern=pattern)
if len(self.tsInfo) > oldcount:
change = len(self.tsInfo) - oldcount
diff --git a/yum/__init__.py b/yum/__init__.py
index 521a8a0..c13055c 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -49,7 +49,7 @@ import comps
import config
from repos import RepoStorage
import misc
-from parser import ConfigPreProcessor
+from parser import ConfigPreProcessor, varReplace
import transactioninfo
import urlgrabber
from urlgrabber.grabber import URLGrabError
@@ -2963,3 +2963,52 @@ class YumBase(depsolve.Depsolve):
self.dsCallback = dscb
return results
+
+ def add_enable_repo(self, repoid, baseurls=[], mirrorlist=None, **kwargs):
+ """add and enable a repo with just a baseurl/mirrorlist and repoid
+ requires repoid and at least one of baseurl and mirrorlist
+ additional optional kwargs are:
+ variable_convert=bool (defaults to true)
+ and any other attribute settable to the normal repo setup
+ ex: metadata_expire, enable_groups, gpgcheck, cachedir, etc
+ returns the repo object it added"""
+ # out of place fixme - maybe we should make this the default repo addition
+ # routine and use it from getReposFromConfigFile(), etc.
+ newrepo = yumRepo.YumRepository(repoid)
+ newrepo.name = repoid
+ newrepo.basecachedir = self.conf.cachedir
+ var_convert = True
+ if kwargs.has_key('variable_convert') and not kwargs['variable_convert']:
+ var_convert = False
+
+ if baseurls:
+ replaced = []
+ if var_convert:
+ for baseurl in baseurls:
+ if baseurl:
+ replaced.append(varReplace(baseurl, self.conf.yumvar))
+ else:
+ replaced = baseurls
+ newrepo.baseurl = replaced
+
+ if mirrorlist:
+ if var_convert:
+ mirrorlist = varReplace(mirrorlist, self.conf.yumvar)
+ newrepo.mirrorlist = mirrorlist
+
+ # some reasonable defaults, (imo)
+ newrepo.enablegroups = True
+ newrepo.metadata_expire = 0
+ newrepo.gpgcheck = self.conf.gpgcheck
+ newrepo.basecachedir = self.conf.cachedir
+
+ for key in kwargs.keys():
+ if not hasattr(newrepo, key): continue # skip the ones which aren't vars
+ setattr(newrepo, key, kwargs[key])
+
+ # add the new repo
+ self.repos.add(newrepo)
+ # enable the main repo
+ self.repos.enableRepo(newrepo.id)
+ return newrepo
+
commit d721b7cd107ef9ecaa62af44c4e2552512ece2ef
Author: tla at dk.ibm.com <tla at naboo.local>
Date: Wed Jul 16 16:00:23 2008 +0200
Added Catalan translation by Xavier Conde
diff --git a/po/ca.po b/po/ca.po
new file mode 100644
index 0000000..0e21ad5
--- /dev/null
+++ b/po/ca.po
@@ -0,0 +1,1933 @@
+# Catalan translations for yum package.
+# Copyright (C) 2008 Red Hat, Inc.
+# This file is distributed under the same license as the
+# yum package.
+#
+# Josep Maria Brunetti Fernández <josepb at gmail.com>, 2008
+#
+# 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
+# of the Catalan translation team for the Fedora project at:
+# http://www.softcatala.org/projectes/fedora/
+# and contact the previous translator
+#
+# Aquest fitxer s'ha de traduir d'acord amb el recull de termes i la guia
+# d'estil de Softcatalà . Si voleu modificar aquest fitxer, llegiu si
+# us plau la pà gina de catalanització del projecte Fedora a:
+# http://www.softcatala.org/projectes/fedora/
+# i contacteu l'anterior traductor/a.
+msgid ""
+msgstr ""
+"Project-Id-Version: yum\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-03-25 11:29+0100\n"
+"PO-Revision-Date: 2008-06-26 19:39+0200\n"
+"Last-Translator: Josep Maria Brunetti Fernández <josepb at gmail.com>\n"
+"Language-Team: Language-Team: Catalan <fedora at softcatala.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;"
+
+#: ../callback.py:48 ../output.py:512
+msgid "Updating"
+msgstr "S'està actualitzant"
+
+#: ../callback.py:49
+msgid "Erasing"
+msgstr "S'està esborrant"
+
+#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:511
+msgid "Installing"
+msgstr "S'està instal·lant"
+
+#: ../callback.py:52 ../callback.py:58
+msgid "Obsoleted"
+msgstr "Obsolet"
+
+#: ../callback.py:54 ../output.py:558
+msgid "Updated"
+msgstr "Actualitzat"
+
+#: ../callback.py:55
+msgid "Erased"
+msgstr "Esborrat"
+
+#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:556
+msgid "Installed"
+msgstr "Instal·lat"
+
+#: ../callback.py:130
+msgid "No header - huh?"
+msgstr "No hi ha capçalera"
+
+#: ../callback.py:168
+msgid "Repackage"
+msgstr "Reempaqueta"
+
+#: ../callback.py:189
+#, python-format
+msgid "Error: invalid output state: %s for %s"
+msgstr "Error: estat de sortida invà lid: %s per a %s"
+
+#: ../callback.py:212
+#, python-format
+msgid "Erased: %s"
+msgstr "Esborrat: %s"
+
+#: ../callback.py:217 ../output.py:513
+msgid "Removing"
+msgstr "S'està esborrant"
+
+#: ../callback.py:219
+msgid "Cleanup"
+msgstr "Neteja"
+
+#: ../cli.py:103
+#, python-format
+msgid "Command \"%s\" already defined"
+msgstr "L'ordre «%s» ja està definida"
+
+#: ../cli.py:115
+msgid "Setting up repositories"
+msgstr "Configurant repositoris"
+
+#: ../cli.py:126
+msgid "Reading repository metadata in from local files"
+msgstr "S'estan llegint les metadades de repositoris des de fitxers locals"
+
+#: ../cli.py:183 ../utils.py:72
+#, python-format
+msgid "Config Error: %s"
+msgstr "Error de configuració: %s"
+
+#: ../cli.py:186 ../cli.py:1068 ../utils.py:75
+#, python-format
+msgid "Options Error: %s"
+msgstr "Error d'opcions: %s"
+
+#: ../cli.py:229
+msgid "You need to give some command"
+msgstr "Cal que doneu alguna ordre"
+
+#: ../cli.py:271
+msgid "Disk Requirements:\n"
+msgstr "Requeriments de disc:\n"
+
+#: ../cli.py:273
+#, 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:278
+msgid ""
+"Error Summary\n"
+"-------------\n"
+msgstr "Resum d'errors\n"
+"-------------\n"
+
+#: ../cli.py:317
+msgid "Trying to run the transaction but nothing to do. Exiting."
+msgstr "S'ha intentat executar la transacció però no hi ha res a fer. S'està sortint."
+
+#: ../cli.py:347
+msgid "Exiting on user Command"
+msgstr "S'està sortint de l'ordre de l'usuari"
+
+#: ../cli.py:351
+msgid "Downloading Packages:"
+msgstr "S'estan descarregant els següents paquets:"
+
+#: ../cli.py:356
+msgid "Error Downloading Packages:\n"
+msgstr "S'ha produït un error descarregant els següents paquets:\n"
+
+#: ../cli.py:370 ../yum/__init__.py:2746
+msgid "Running rpm_check_debug"
+msgstr "S'està executant rpm_check_debug"
+
+#: ../cli.py:373 ../yum/__init__.py:2749
+msgid "ERROR with rpm_check_debug vs depsolve:"
+msgstr "ERROR amb rpm_check_debug vs depsolve:"
+
+#: ../cli.py:377 ../yum/__init__.py:2751
+msgid "Please report this error in bugzilla"
+msgstr "Siusplau, informeu d'aquest error al bugzilla"
+
+#: ../cli.py:383
+msgid "Running Transaction Test"
+msgstr "S'està executant la transacció de prova"
+
+#: ../cli.py:399
+msgid "Finished Transaction Test"
+msgstr "Ha acabat la transacció de prova"
+
+#: ../cli.py:401
+msgid "Transaction Check Error:\n"
+msgstr "S'ha produït un error en la transacció de prova:\n"
+
+#: ../cli.py:408
+msgid "Transaction Test Succeeded"
+msgstr "La transacció de prova ha acabat amb èxit"
+
+#: ../cli.py:429
+msgid "Running Transaction"
+msgstr "S'està executant la transacció"
+
+#: ../cli.py:459
+msgid ""
+"Refusing to automatically import keys when running unattended.\n"
+"Use \"-y\" to override."
+msgstr "No s'importaran automà ticament les claus en una execució desatesa.\n"
+"Feu servir \"-y\" per a importar les claus."
+
+#: ../cli.py:491
+msgid "Parsing package install arguments"
+msgstr "S'estan analitzant els arguments del paquet a instal·lar"
+
+#: ../cli.py:501
+#, python-format
+msgid "No package %s available."
+msgstr "El paquet %s no està disponible"
+
+#: ../cli.py:505 ../cli.py:623 ../yumcommands.py:748
+msgid "Package(s) to install"
+msgstr "Paquets a instal·lar"
+
+#: ../cli.py:506 ../cli.py:624 ../yumcommands.py:146 ../yumcommands.py:749
+msgid "Nothing to do"
+msgstr "Res a fer"
+
+#: ../cli.py:536 ../yum/__init__.py:2232 ../yum/__init__.py:2311
+#: ../yum/__init__.py:2340
+#, 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"
+
+#: ../cli.py:568
+#, python-format
+msgid "Could not find update match for %s"
+msgstr "No s'ha pogut trobar cap actualització per a %s"
+
+#: ../cli.py:580
+#, python-format
+msgid "%d packages marked for Update"
+msgstr "%d paquets marcats per a actualitzar"
+
+#: ../cli.py:583
+msgid "No Packages marked for Update"
+msgstr "No hi ha cap paquet marcat per a actualitzar"
+
+#: ../cli.py:599
+#, python-format
+msgid "%d packages marked for removal"
+msgstr "%d paquets marcats per a esborrar"
+
+#: ../cli.py:602
+msgid "No Packages marked for removal"
+msgstr "No hi ha cap paquet marcat per a esborrar"
+
+#: ../cli.py:614
+msgid "No Packages Provided"
+msgstr "No s'ha proporcionat cap paquet"
+
+#: ../cli.py:654
+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:701
+#, python-format
+msgid "Warning: No matches found for: %s"
+msgstr "AvÃs: no s'ha trobat cap coincidència per a: %s"
+
+#: ../cli.py:704
+msgid "No Matches found"
+msgstr "No s'ha trobat cap coincidència"
+
+#: ../cli.py:745
+#, python-format
+msgid "No Package Found for %s"
+msgstr "No s'ha trobat cap paquet per a %s"
+
+#: ../cli.py:757
+msgid "Cleaning up Everything"
+msgstr "S'està netejant tot"
+
+#: ../cli.py:771
+msgid "Cleaning up Headers"
+msgstr "S'estan netejant les capçaleres"
+
+#: ../cli.py:774
+msgid "Cleaning up Packages"
+msgstr "S'estan netejant els paquets"
+
+#: ../cli.py:777
+msgid "Cleaning up xml metadata"
+msgstr "S'estan netejant les metadades xml"
+
+#: ../cli.py:780
+msgid "Cleaning up database cache"
+msgstr "S'està netejant la memòria cau de la base de dades"
+
+#: ../cli.py:783
+msgid "Cleaning up expire-cache metadata"
+msgstr "S'està netejant la memòria cau de metadades que han vençut"
+
+#: ../cli.py:786
+msgid "Cleaning up plugins"
+msgstr "S'estan netejant les extensions"
+
+#: ../cli.py:807
+msgid "Installed Groups:"
+msgstr "Grups instal·lats:"
+
+#: ../cli.py:814
+msgid "Available Groups:"
+msgstr "Grups disponibles:"
+
+#: ../cli.py:820
+msgid "Done"
+msgstr "Fet"
+
+#: ../cli.py:829 ../cli.py:841 ../cli.py:847
+#, python-format
+msgid "Warning: Group %s does not exist."
+msgstr "AvÃs: El grup %s no existeix"
+
+#: ../cli.py:853
+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"
+
+#: ../cli.py:855
+#, python-format
+msgid "%d Package(s) to Install"
+msgstr "%d paquets a instal·lar"
+
+#: ../cli.py:865
+#, python-format
+msgid "No group named %s exists"
+msgstr "No existeix cap grup anomenat %s"
+
+#: ../cli.py:871
+msgid "No packages to remove from groups"
+msgstr "No hi ha cap paquet a esborrar dels grups"
+
+#: ../cli.py:873
+#, python-format
+msgid "%d Package(s) to remove"
+msgstr "%d paquets a esborrar"
+
+#: ../cli.py:915
+#, python-format
+msgid "Package %s is already installed, skipping"
+msgstr "El paquet %s ja està instal·lat, s'ometrà "
+
+#: ../cli.py:926
+#, 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:952
+#, 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ó"
+
+#: ../cli.py:971
+#, python-format
+msgid "Command line error: %s"
+msgstr "Error en la lÃnia d'ordres: %s"
+
+#: ../cli.py:1101
+msgid "be tolerant of errors"
+msgstr "sigues tolerant a errors"
+
+#: ../cli.py:1103
+msgid "run entirely from cache, don't update cache"
+msgstr "executa totalment des de la memòria cau, no actualitzis la memòria cau"
+
+#: ../cli.py:1105
+msgid "config file location"
+msgstr "ubicació del fitxer de configuració"
+
+#: ../cli.py:1107
+msgid "maximum command wait time"
+msgstr "temps mà xim d'espera d'ordres"
+
+#: ../cli.py:1109
+msgid "debugging output level"
+msgstr "nivell de sortida de depuració"
+
+#: ../cli.py:1113
+msgid "show duplicates, in repos, in list/search commands"
+msgstr "mostra duplicats, en repositoris, en les ordres llista i cerca"
+
+#: ../cli.py:1115
+msgid "error output level"
+msgstr "error en el nivell de sortida"
+
+#: ../cli.py:1118
+msgid "quiet operation"
+msgstr "operació silenciosa"
+
+#: ../cli.py:1122
+msgid "answer yes for all questions"
+msgstr "respon sà a totes les preguntes"
+
+#: ../cli.py:1124
+msgid "show Yum version and exit"
+msgstr "mostra la versió de Yum i surt"
+
+#: ../cli.py:1125
+msgid "set install root"
+msgstr "estableix l'arrel de la instal·lació"
+
+#: ../cli.py:1129
+msgid "enable one or more repositories (wildcards allowed)"
+msgstr "habilita un o més repositoris (es permeten carà cters de reemplaçament)"
+
+#: ../cli.py:1133
+msgid "disable one or more repositories (wildcards allowed)"
+msgstr "deshabilita un o més repositoris (es permeten carà cters de reemplaçament)"
+
+#: ../cli.py:1136
+msgid "exclude package(s) by name or glob"
+msgstr "exclou els paquets per nom o expressió regular del glob"
+
+#: ../cli.py:1138
+msgid "disable exclude from main, for a repo or for everything"
+msgstr "deshabilita l'exclusió des de l'inici, per a un repositori o per a tot"
+
+#: ../cli.py:1141
+msgid "enable obsoletes processing during updates"
+msgstr "habilita el processament d'obsolets durant les actualitzacions"
+
+#: ../cli.py:1143
+msgid "disable Yum plugins"
+msgstr "deshabilita les extensions de Yum"
+
+#: ../cli.py:1145
+msgid "disable gpg signature checking"
+msgstr "deshabilita la comprobació de signatures gpg"
+
+#: ../cli.py:1147
+msgid "disable plugins by name"
+msgstr "deshabilita extensions per nom"
+
+#: ../cli.py:1150
+msgid "skip packages with depsolving problems"
+msgstr "omet paquets amb problemes de resolució de dependències"
+
+#: ../output.py:229
+msgid "Jan"
+msgstr "Gen"
+
+#: ../output.py:229
+msgid "Feb"
+msgstr "Feb"
+
+#: ../output.py:229
+msgid "Mar"
+msgstr "Mar"
+
+#: ../output.py:229
+msgid "Apr"
+msgstr "Abr"
+
+#: ../output.py:229
+msgid "May"
+msgstr "Mai"
+
+#: ../output.py:229
+msgid "Jun"
+msgstr "Jun"
+
+#: ../output.py:230
+msgid "Jul"
+msgstr "Jul"
+
+#: ../output.py:230
+msgid "Aug"
+msgstr "Ago"
+
+#: ../output.py:230
+msgid "Sep"
+msgstr "Set"
+
+#: ../output.py:230
+msgid "Oct"
+msgstr "Oct"
+
+#: ../output.py:230
+msgid "Nov"
+msgstr "Nov"
+
+#: ../output.py:230
+msgid "Dec"
+msgstr "Des"
+
+#: ../output.py:240
+msgid "Trying other mirror."
+msgstr "S'està intentant un altre servidor rèplica"
+
+#: ../output.py:293
+#, python-format
+msgid "Name : %s"
+msgstr "Nom : %s"
+
+#: ../output.py:294
+#, python-format
+msgid "Arch : %s"
+msgstr "Arq : %s"
+
+#: ../output.py:296
+#, python-format
+msgid "Epoch : %s"
+msgstr "Ãpoca : %s"
+
+#: ../output.py:297
+#, python-format
+msgid "Version : %s"
+msgstr "Versió : %s"
+
+#: ../output.py:298
+#, python-format
+msgid "Release : %s"
+msgstr "Release : %s"
+
+#: ../output.py:299
+#, python-format
+msgid "Size : %s"
+msgstr "Mida : %s"
+
+#: ../output.py:300
+#, python-format
+msgid "Repo : %s"
+msgstr "Repo : %s"
+
+#: ../output.py:302
+#, python-format
+msgid "Committer : %s"
+msgstr "Desenvolupador : %s"
+
+#: ../output.py:303
+msgid "Summary : "
+msgstr "Resum : "
+
+#: ../output.py:305
+#, python-format
+msgid "URL : %s"
+msgstr "URL : %s"
+
+#: ../output.py:306
+#, python-format
+msgid "License : %s"
+msgstr "Llicència : %s"
+
+#: ../output.py:307
+msgid "Description: "
+msgstr "Descripció: "
+
+#: ../output.py:351
+# REMEMBER to Translate [Y/N] to the current locale
+msgid "Is this ok [y/N]: "
+msgstr "Ãs correcte [s/N]: "
+
+#: ../output.py:357 ../output.py:360
+msgid "y"
+msgstr "s"
+
+#: ../output.py:357
+msgid "n"
+msgstr "n"
+
+#: ../output.py:357 ../output.py:360
+msgid "yes"
+msgstr "sÃ"
+
+#: ../output.py:357
+msgid "no"
+msgstr "no"
+
+#: ../output.py:367
+#, python-format
+msgid ""
+"\n"
+"Group: %s"
+msgstr ""
+"\n"
+"Grup: %s"
+
+#: ../output.py:369
+#, python-format
+msgid " Description: %s"
+msgstr " Descripció: %s"
+
+#: ../output.py:371
+msgid " Mandatory Packages:"
+msgstr " Paquets obligatoris:"
+
+#: ../output.py:376
+msgid " Default Packages:"
+msgstr " Paquets per defecte:"
+
+#: ../output.py:381
+msgid " Optional Packages:"
+msgstr " Paquets opcionals:"
+
+#: ../output.py:386
+msgid " Conditional Packages:"
+msgstr " Paquets condicionals:"
+
+#: ../output.py:394
+#, python-format
+msgid "package: %s"
+msgstr "paquet: %s"
+
+#: ../output.py:396
+msgid " No dependencies for this package"
+msgstr " No hi ha dependències per a aquest paquet"
+
+#: ../output.py:401
+#, python-format
+msgid " dependency: %s"
+msgstr " dependència: %s"
+
+#: ../output.py:403
+msgid " Unsatisfied dependency"
+msgstr " Dependència insatisfeta"
+
+#: ../output.py:461
+msgid "Matched from:"
+msgstr "Coincidències amb:"
+
+#: ../output.py:487
+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:492
+#, python-format
+msgid "Total size: %s"
+msgstr "Mida total: %s"
+
+#: ../output.py:495
+#, python-format
+msgid "Total download size: %s"
+msgstr "Mida total de la descà rrega: %s"
+
+#: ../output.py:507
+msgid "Package"
+msgstr "Paquet"
+
+#: ../output.py:507
+msgid "Arch"
+msgstr "Arq"
+
+#: ../output.py:507
+msgid "Version"
+msgstr "Versió"
+
+#: ../output.py:507
+msgid "Repository"
+msgstr "Repositori"
+
+#: ../output.py:507
+msgid "Size"
+msgstr "Mida"
+
+#: ../output.py:514
+msgid "Installing for dependencies"
+msgstr "S'està instal·lant per dependències"
+
+#: ../output.py:515
+msgid "Updating for dependencies"
+msgstr "S'està actualitzant per dependències"
+
+#: ../output.py:516
+msgid "Removing for dependencies"
+msgstr "S'està esborrant per dependències"
+
+#: ../output.py:528
+#, python-format
+msgid ""
+" replacing %s.%s %s\n"
+"\n"
+msgstr ""
+" s'està reemplaçant %s.%s %s\n"
+"\n"
+
+#: ../output.py:536
+#, python-format
+msgid ""
+"\n"
+"Transaction Summary\n"
+"=============================================================================\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"
+"=============================================================================\n"
+"Instal·la %5.5s paquets\n"
+"Actualitza %5.5s paquets\n"
+"Esborra %5.5s paquets\n"
+""
+
+#: ../output.py:554
+msgid "Removed"
+msgstr "Esborrat"
+
+#: ../output.py:555
+msgid "Dependency Removed"
+msgstr "Dependència esborrada"
+
+#: ../output.py:557
+msgid "Dependency Installed"
+msgstr "Dependència instal·lada"
+
+#: ../output.py:559
+msgid "Dependency Updated"
+msgstr "Dependència actualitzada"
+
+#: ../output.py:560
+msgid "Replaced"
+msgstr "Reemplaçat"
+
+#: ../output.py:618
+#, python-format
+msgid ""
+"\n"
+" Current download cancelled, %sinterrupt (ctrl-c) again%s within %s%s%s "
+"seconds 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"
+
+#: ../output.py:628
+msgid "user interrupt"
+msgstr "interrupció de l'usuari"
+
+#: ../output.py:639
+msgid "installed"
+msgstr "instal·lat"
+
+#: ../output.py:640
+msgid "updated"
+msgstr "actualitzat"
+
+#: ../output.py:641
+msgid "obsoleted"
+msgstr "obsolet"
+
+#: ../output.py:642
+msgid "erased"
+msgstr "esborrat"
+
+#: ../output.py:646
+#, 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:653
+msgid "--> Running transaction check"
+msgstr "--> S'està executant la transacció de prova"
+
+#: ../output.py:658
+msgid "--> Restarting Dependency Resolution with new changes."
+msgstr "--> Tornant a calcular la resolució de dependències amb els nous canvis."
+
+#: ../output.py:663
+msgid "--> Finished Dependency Resolution"
+msgstr "--> Ha finalitzat la resolució de dependències"
+
+#: ../output.py:668
+#, python-format
+msgid "--> Processing Dependency: %s for package: %s"
+msgstr "--> S'està processant la dependència %s per al paquet: %s"
+
+#: ../output.py:673
+#, python-format
+msgid "--> Unresolved Dependency: %s"
+msgstr "--> Dependència no resolta: %s"
+
+#: ../output.py:679
+#, python-format
+msgid "--> Processing Conflict: %s conflicts %s"
+msgstr "--> S'està processant el conflicte: %s té un conflicte amb %s"
+
+#: ../output.py:682
+msgid "--> Populating transaction set with selected packages. Please wait."
+msgstr "--> S'està poblant la transacció amb els paquets sel·leccionats. Si us plau, espereu."
+
+#: ../output.py:686
+#, 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."
+
+#: ../yumcommands.py:36
+msgid "You need to be root to perform this command."
+msgstr "Heu de ser root per a executar aquesta ordre."
+
+#: ../yumcommands.py:43
+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"
+"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"
+"les claus per als paquets paquets que desitdeu instal·lar i instal·lar-les.\n"
+"Podeu fer-ho executant l'ordre:\n"
+" rpm --import clau.pública.gpg\n"
+"\n"
+"\n"
+"També podeu especificar la url de la clau que voleu utilitzar\n"
+"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 distribuidor o proveïdor de paquets.\n"
+
+#: ../yumcommands.py:63
+#, 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:69
+msgid "Error: Need an item to match"
+msgstr "Error: es necessita algun element per comparar"
+
+#: ../yumcommands.py:75
+msgid "Error: Need a group or list of groups"
+msgstr "Error: es necessita un grup o una llista de grups"
+
+#: ../yumcommands.py:84
+#, python-format
+msgid "Error: clean requires an option: %s"
+msgstr "Error: la neteja requereix una opció: %s"
+
+#: ../yumcommands.py:89
+#, python-format
+msgid "Error: invalid clean argument: %r"
+msgstr "Error: argument invà lid per a la neteja: %r"
+
+#: ../yumcommands.py:102
+msgid "No argument to shell"
+msgstr "No hi ha arguments per a l'intèrpret d'ordres"
+
+#: ../yumcommands.py:105
+#, python-format
+msgid "Filename passed to shell: %s"
+msgstr "Nom del fitxer passat a l'intèrpret d'ordres: %s"
+
+#: ../yumcommands.py:109
+#, 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:115
+msgid "Error: more than one file given as argument to shell."
+msgstr "Error: s'ha donat més d'un fitxer com a arguments per a l'intèrpret d'ordres."
+
+#: ../yumcommands.py:156
+msgid "PACKAGE..."
+msgstr "PAQUET..."
+
+#: ../yumcommands.py:159
+msgid "Install a package or packages on your system"
+msgstr "Instal·la un o més paquets al vostre sistema"
+
+#: ../yumcommands.py:168
+msgid "Setting up Install Process"
+msgstr "S'està preparant el procés d'instal·lació"
+
+#: ../yumcommands.py:179
+msgid "[PACKAGE...]"
+msgstr "[PAQUET...]"
+
+#: ../yumcommands.py:182
+msgid "Update a package or packages on your system"
+msgstr "S'ha actualitzat un o més paquets al vostre sistema"
+
+#: ../yumcommands.py:190
+msgid "Setting up Update Process"
+msgstr "S'està preparant el procés d'actualització"
+
+#: ../yumcommands.py:204
+msgid "Display details about a package or group of packages"
+msgstr "Mostra detalls sobre un paquet o un grup de paquets"
+
+#: ../yumcommands.py:212
+msgid "Installed Packages"
+msgstr "Paquets instal·lats"
+
+#: ../yumcommands.py:213
+msgid "Available Packages"
+msgstr "Paquets disponibles"
+
+#: ../yumcommands.py:214
+msgid "Extra Packages"
+msgstr "Paquets extra"
+
+#: ../yumcommands.py:215
+msgid "Updated Packages"
+msgstr "Paquets actualitzats"
+
+#: ../yumcommands.py:221 ../yumcommands.py:225
+msgid "Obsoleting Packages"
+msgstr "Paquets fets obsolets"
+
+#: ../yumcommands.py:226
+msgid "Recently Added Packages"
+msgstr "Paquets recentment afegits"
+
+#: ../yumcommands.py:232
+msgid "No matching Packages to list"
+msgstr "No hi ha paquets coincidents per llistar"
+
+#: ../yumcommands.py:246
+msgid "List a package or groups of packages"
+msgstr "Llista un paquet o un grup de paquets"
+
+#: ../yumcommands.py:258
+msgid "Remove a package or packages from your system"
+msgstr "Esborra un o més paquets del vostre sistema"
+
+#: ../yumcommands.py:266
+msgid "Setting up Remove Process"
+msgstr "S'està preparant el procés d'esborrat"
+
+#: ../yumcommands.py:278
+msgid "Setting up Group Process"
+msgstr "S'està preparant el procés de grup"
+
+#: ../yumcommands.py:284
+msgid "No Groups on which to run command"
+msgstr "No hi ha cap grup on executar l'ordre"
+
+#: ../yumcommands.py:297
+msgid "List available package groups"
+msgstr "Llista els grups de paquets disponibles"
+
+#: ../yumcommands.py:314
+msgid "Install the packages in a group on your system"
+msgstr "Instal·la els paquets en un grup en el vostre sistema"
+
+#: ../yumcommands.py:336
+msgid "Remove the packages in a group from your system"
+msgstr "Esborra els paquets en un grup en el vostre sistema"
+
+#: ../yumcommands.py:360
+msgid "Display details about a package group"
+msgstr "Mostra detalls sobre un grup de paquets"
+
+#: ../yumcommands.py:384
+msgid "Generate the metadata cache"
+msgstr "Genera les metadades de la memòria cau"
+
+#: ../yumcommands.py:390
+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."
+
+#: ../yumcommands.py:391
+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:412
+msgid "Metadata Cache Created"
+msgstr "S'han creat les metadades per a la memòria cau"
+
+#: ../yumcommands.py:426
+msgid "Remove cached data"
+msgstr "S'han esborrat les dades de la memòria cau"
+
+#: ../yumcommands.py:447
+msgid "Find what package provides the given value"
+msgstr "Troba quin paquet proporciona el valor donat"
+
+#: ../yumcommands.py:467
+msgid "Check for available package updates"
+msgstr "Comprova si hi ha actualitzacions de paquets disponibles"
+
+#: ../yumcommands.py:490
+msgid "Search package details for the given string"
+msgstr "Busca detalls del paquet per la cadena donada"
+
+#: ../yumcommands.py:496
+msgid "Searching Packages: "
+msgstr "S'estan buscant paquets: "
+
+#: ../yumcommands.py:513
+msgid "Update packages taking obsoletes into account"
+msgstr "Actualitza paquets tenint en compte els obsolets"
+
+#: ../yumcommands.py:522
+msgid "Setting up Upgrade Process"
+msgstr "S'està preparant el procés d'actualització"
+
+#: ../yumcommands.py:536
+msgid "Install a local RPM"
+msgstr "Instal·la un RPM local"
+
+#: ../yumcommands.py:545
+msgid "Setting up Local Package Process"
+msgstr "S'està configurant el procés local de paquets"
+
+#: ../yumcommands.py:564
+msgid "Determine which package provides the given dependency"
+msgstr "Determina quin paquet satisfà la dependència donada"
+
+#: ../yumcommands.py:567
+msgid "Searching Packages for Dependency:"
+msgstr "S'estan buscant paquets per a la dependència:"
+
+#: ../yumcommands.py:581
+msgid "Run an interactive yum shell"
+msgstr "Executa un intèrpret d'ordres interactiu de yum"
+
+#: ../yumcommands.py:587
+msgid "Setting up Yum Shell"
+msgstr "S'està preparant l'intèrpret d'ordres de yum"
+
+#: ../yumcommands.py:605
+msgid "List a package's dependencies"
+msgstr "Llista les dependències d'un paquet"
+
+#: ../yumcommands.py:611
+msgid "Finding dependencies: "
+msgstr "S'estan trobant dependències: "
+
+#: ../yumcommands.py:627
+msgid "Display the configured software repositories"
+msgstr "Mostra els repositoris de programari configurats"
+
+#: ../yumcommands.py:645
+msgid "repo id"
+msgstr "id repo"
+
+#: ../yumcommands.py:645
+msgid "repo name"
+msgstr "nom repo"
+
+#: ../yumcommands.py:645
+msgid "status"
+msgstr "estat"
+
+#: ../yumcommands.py:651
+msgid "enabled"
+msgstr "habilitat"
+
+#: ../yumcommands.py:654
+msgid "disabled"
+msgstr "deshabilitat"
+
+#: ../yumcommands.py:671
+msgid "Display a helpful usage message"
+msgstr "Mostra un missatge d'ajuda d'ús"
+
+#: ../yumcommands.py:705
+#, python-format
+msgid "No help available for %s"
+msgstr "No hi ha ajuda disponible per a %s"
+
+#: ../yumcommands.py:710
+msgid ""
+"\n"
+"\n"
+"aliases: "
+msgstr ""
+"\n"
+"\n"
+"Ã lies: "
+
+#: ../yumcommands.py:712
+msgid ""
+"\n"
+"\n"
+"alias: "
+msgstr ""
+"\n"
+"\n"
+"Ã lies: "
+
+#: ../yumcommands.py:741
+msgid "Setting up Reinstall Process"
+msgstr "S'està preparant el procés de reinstal·lació"
+
+#: ../yumcommands.py:755
+msgid "reinstall a package"
+msgstr "reinstal·la un paquet"
+
+#: ../yummain.py:41
+msgid ""
+"\n"
+"\n"
+"Exiting on user cancel"
+msgstr ""
+"\n"
+"\n"
+"S'està sortint per la cancel·lació de l'usuari"
+
+#: ../yummain.py:47
+msgid ""
+"\n"
+"\n"
+"Exiting on Broken Pipe"
+msgstr ""
+"\n"
+"\n"
+"S'està sortint en trobar la canonada trencada"
+
+#: ../yummain.py:105
+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:132 ../yummain.py:171
+#, python-format
+msgid "Error: %s"
+msgstr "Error: %s"
+
+#: ../yummain.py:142 ../yummain.py:178
+#, python-format
+msgid "Unknown Error(s): Exit Code: %d:"
+msgstr "Errors desconeguts: Codi de sortida: %d:"
+
+#. Depsolve stage
+#: ../yummain.py:149
+msgid "Resolving Dependencies"
+msgstr "S'estan resolent dependències"
+
+#: ../yummain.py:184
+msgid ""
+"\n"
+"Dependencies Resolved"
+msgstr ""
+"\n"
+"Dependències resoltes"
+
+#: ../yummain.py:198
+msgid "Complete!"
+msgstr "Completat!"
+
+#: ../yummain.py:245
+msgid ""
+"\n"
+"\n"
+"Exiting on user cancel."
+msgstr ""
+"\n"
+"\n"
+"S'està sortint de l'ordre de l'usuari."
+
+#: ../yum/depsolve.py:82
+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:95
+msgid "Setting up TransactionSets before config class is up"
+msgstr "S'està configurant TransactionSets abans que la classe de configuració "
+"estigui iniciada"
+
+#: ../yum/depsolve.py:136
+#, python-format
+msgid "Invalid tsflag in config file: %s"
+msgstr "Tsflag invà lid en el fitxer de configuració: %s"
+
+#: ../yum/depsolve.py:147
+#, python-format
+msgid "Searching pkgSack for dep: %s"
+msgstr "S'està buscant pkgSack per a la dependència: %s"
+
+#: ../yum/depsolve.py:170
+#, python-format
+msgid "Potential match for %s from %s"
+msgstr "Coincidència potencial per a %s de %s"
+
+#: ../yum/depsolve.py:178
+#, python-format
+msgid "Matched %s to require for %s"
+msgstr "La coincidència %s es requereix per a %s"
+
+#: ../yum/depsolve.py:219
+#, python-format
+msgid "Member: %s"
+msgstr "Membre: %s"
+
+#: ../yum/depsolve.py:233 ../yum/depsolve.py:696
+#, python-format
+msgid "%s converted to install"
+msgstr "%s convertits per a instal·lar"
+
+#: ../yum/depsolve.py:240
+#, python-format
+msgid "Adding Package %s in mode %s"
+msgstr "S'està afegint el paquet %s en mode %s"
+
+#: ../yum/depsolve.py:250
+#, python-format
+msgid "Removing Package %s"
+msgstr "S'està esborrant el paquet %s"
+
+#: ../yum/depsolve.py:261
+#, python-format
+msgid "%s requires: %s"
+msgstr "%s requereix: %s"
+
+#: ../yum/depsolve.py:312
+msgid "Needed Require has already been looked up, cheating"
+msgstr "El requeriment necessari ja s'ha buscat anteriorment, s'estan fent trampes"
+
+#: ../yum/depsolve.py:322
+#, 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:329
+#, python-format
+msgid "Potential Provider: %s"
+msgstr "Proveïdor potencial: %s"
+
+#: ../yum/depsolve.py:352
+#, 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:356
+#, python-format
+msgid "Mode for pkg providing %s: %s"
+msgstr "Mode per al paquet que proporciona %s: %s"
+
+#: ../yum/depsolve.py:360
+#, python-format
+msgid "TSINFO: %s package requiring %s marked as erase"
+msgstr "TSINFO: el paquet %s requereix %s marcat per a esborrar"
+
+#: ../yum/depsolve.py:372
+#, 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."
+
+#: ../yum/depsolve.py:375
+#, python-format
+msgid "TSINFO: Updating %s to resolve dep."
+msgstr "TSINFO: S'està actualitzant %s per a resoldre dependències."
+
+#: ../yum/depsolve.py:378
+#, 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:388
+#, python-format
+msgid "Unresolvable requirement %s for %s"
+msgstr "No es pot resoldre el requeriment %s per a %s"
+
+#. is it already installed?
+#: ../yum/depsolve.py:434
+#, 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."
+
+#: ../yum/depsolve.py:449
+#, 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"
+
+#: ../yum/depsolve.py:460
+#, 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."
+
+#: ../yum/depsolve.py:468 ../yum/depsolve.py:527
+#, python-format
+msgid "Missing Dependency: %s is needed by package %s"
+msgstr "La dependència que falta: %s es necessita per al paquet %s"
+
+#: ../yum/depsolve.py:481
+#, python-format
+msgid "%s already in ts, skipping this one"
+msgstr "%s ja es troba en ts, s'està ometent"
+
+#: ../yum/depsolve.py:510
+#, python-format
+msgid ""
+"Failure finding best provider of %s for %s, exceeded maximum loop length"
+msgstr ""
+"S'ha produït un error trobant el millor proveïdor de %s per a %s, el bucle ha excedit la longitud mà xima"
+
+#: ../yum/depsolve.py:537
+#, 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:544
+#, 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:635 ../yum/depsolve.py:714
+msgid "Success - empty transaction"
+msgstr "Ãxit - transacció buida"
+
+#: ../yum/depsolve.py:673 ../yum/depsolve.py:686
+msgid "Restarting Loop"
+msgstr "S'està recomençant el bucle"
+
+#: ../yum/depsolve.py:702
+msgid "Dependency Process ending"
+msgstr "Està acabant el procés de dependències"
+
+#: ../yum/depsolve.py:708
+#, python-format
+msgid "%s from %s has depsolving problems"
+msgstr "%s de %s té problemes resolent dependències"
+
+#: ../yum/depsolve.py:715
+msgid "Success - deps resolved"
+msgstr "Ãxit - dependències resoltes"
+
+#: ../yum/depsolve.py:729
+#, python-format
+msgid "Checking deps for %s"
+msgstr "S'estan comprobant les dependències per a %s"
+
+#: ../yum/depsolve.py:782
+#, python-format
+msgid "looking for %s as a requirement of %s"
+msgstr "s'està buscant %s com a requeriment de %s"
+
+#: ../yum/depsolve.py:933
+#, python-format
+msgid "Comparing best: %s to po: %s"
+msgstr "S'està comparant el millor: %s amb po: %s"
+
+#: ../yum/depsolve.py:937
+#, python-format
+msgid "Same: best %s == po: %s"
+msgstr "Igual: el millor %s == po: %s"
+
+#: ../yum/depsolve.py:952 ../yum/depsolve.py:963
+#, python-format
+msgid "best %s obsoletes po: %s"
+msgstr "el millor %s deixa com a obsolet el po: %s"
+
+#: ../yum/depsolve.py:955
+#, python-format
+msgid "po %s obsoletes best: %s"
+msgstr "el po %s deixa com a obsolet el millor: %s"
+
+#: ../yum/depsolve.py:972 ../yum/depsolve.py:979 ../yum/depsolve.py:1036
+#, python-format
+msgid "better arch in po %s"
+msgstr "millor arq en el po %s"
+
+#: ../yum/depsolve.py:988 ../yum/depsolve.py:1010
+#, python-format
+msgid "po %s shares a sourcerpm with %s"
+msgstr "el po %s comparteix un rpm origen amb %s"
+
+#: ../yum/depsolve.py:992 ../yum/depsolve.py:1015
+#, python-format
+msgid "best %s shares a sourcerpm with %s"
+msgstr "el millor %s comparteix un rpm origen amb %s"
+
+#: ../yum/depsolve.py:999 ../yum/depsolve.py:1020
+#, python-format
+msgid "po %s shares more of the name prefix with %s"
+msgstr "el po %s comparteix més que el prefix del nom amb %s"
+
+#: ../yum/depsolve.py:1003 ../yum/depsolve.py:1029
+#, python-format
+msgid "po %s has a shorter name than best %s"
+msgstr "el po %s té un nom més curt que el millor %s"
+
+#: ../yum/depsolve.py:1025
+#, python-format
+msgid "bestpkg %s shares more of the name prefix with %s"
+msgstr "el millor paquet %s comparteix més el prefix del nom amb %s"
+
+#: ../yum/__init__.py:119
+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:296
+#, 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:332
+msgid "plugins already initialised"
+msgstr "els connectors ja estan inicialitzats"
+
+#: ../yum/__init__.py:339
+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:349
+msgid "Reading Local RPMDB"
+msgstr "S'està llegint un RPMDB local"
+
+#: ../yum/__init__.py:367
+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:387
+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:404
+msgid "Setting up Package Sacks"
+msgstr "S'estan configurant els sacs de paquets"
+
+#: ../yum/__init__.py:447
+#, 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:448
+msgid "therefore this repo cannot be reset.\n"
+msgstr "Aquest repositori no es pot reiniciar.\n"
+
+#: ../yum/__init__.py:453
+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:465
+msgid "Building updates object"
+msgstr "S'està construint l'objecte d'actualitzacions"
+
+#: ../yum/__init__.py:496
+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:520
+msgid "Getting group metadata"
+msgstr "S'estan obtenint les metadades del grup"
+
+#: ../yum/__init__.py:546
+#, python-format
+msgid "Adding group file from repository: %s"
+msgstr "S'està afegint el fitxer del grup des del repositori: %s"
+
+#: ../yum/__init__.py:555
+#, 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:561
+msgid "No Groups Available in any repository"
+msgstr "No hi ha cap grup disponible en cap repositori"
+
+#: ../yum/__init__.py:611
+msgid "Importing additional filelist information"
+msgstr "S'està important informació adicional de la llista de fitxers"
+
+#: ../yum/__init__.py:657
+#, python-format
+msgid "Skip-broken round %i"
+msgstr "Intent %i d'omissió dels trencats"
+
+#: ../yum/__init__.py:680
+#, python-format
+msgid "Skip-broken took %i rounds "
+msgstr "L'omisió dels trencats ha necessitat %i intents"
+
+#: ../yum/__init__.py:681
+msgid ""
+"\n"
+"Packages skipped because of dependency problems:"
+msgstr ""
+"\n"
+"Paquets omesos degut a problemes de dependències:"
+
+#: ../yum/__init__.py:685
+#, python-format
+msgid " %s from %s"
+msgstr " %s des de %s"
+
+#: ../yum/__init__.py:774
+#, python-format
+msgid "Failed to remove transaction file %s"
+msgstr "No s'ha pogut esborrar el fitxer de transaccions %s"
+
+#: ../yum/__init__.py:814
+#, python-format
+msgid "excluding for cost: %s from %s"
+msgstr "s'està excloent per cost: %s de %s"
+
+#: ../yum/__init__.py:845
+msgid "Excluding Packages in global exclude list"
+msgstr "S'estan excloent paquets en la llista global d'exclusió"
+
+#: ../yum/__init__.py:847
+#, python-format
+msgid "Excluding Packages from %s"
+msgstr "S'estan excloent paquets de %s"
+
+#: ../yum/__init__.py:875
+#, python-format
+msgid "Reducing %s to included packages only"
+msgstr "S'està reduint %s únicament a paquets inclosos."
+
+#: ../yum/__init__.py:880
+#, python-format
+msgid "Keeping included package %s"
+msgstr "S'està mantenint el paquet inclòs %s"
+
+#: ../yum/__init__.py:886
+#, python-format
+msgid "Removing unmatched package %s"
+msgstr "S'està esborrant el paquet sense coincidències %s"
+
+#: ../yum/__init__.py:889
+msgid "Finished"
+msgstr "Finalitzat"
+
+#. Whoa. What the heck happened?
+#: ../yum/__init__.py:919
+#, 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:923
+#, 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:970 ../yum/__init__.py:977
+msgid "Package does not match intended download"
+msgstr "El paquet no coincideix amb la descà rrega intentada"
+
+#: ../yum/__init__.py:991
+msgid "Could not perform checksum"
+msgstr "No s'ha pogut realitzar la suma de verificació"
+
+#: ../yum/__init__.py:994
+msgid "Package does not match checksum"
+msgstr "No coincideix la suma de verificació del paquet"
+
+#: ../yum/__init__.py:1036
+#, 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"
+
+#: ../yum/__init__.py:1042
+#, python-format
+msgid "using local copy of %s"
+msgstr "s'està utilitzant la còpia local de %s"
+
+#: ../yum/__init__.py:1061
+#, python-format
+msgid "Insufficient space in download directory %s to download"
+msgstr "No hi ha espai suficient al directori de descà rregues %s per a descarregar"
+
+#: ../yum/__init__.py:1094
+msgid "Header is not complete."
+msgstr "La capçalera no està completa."
+
+#: ../yum/__init__.py:1134
+#, 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"
+
+#: ../yum/__init__.py:1189
+#, 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:1193
+#, python-format
+msgid "Problem opening package %s"
+msgstr "Hi ha hagut un problema obrint el paquet %s"
+
+#: ../yum/__init__.py:1201
+#, 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:1205
+#, python-format
+msgid "Package %s is not signed"
+msgstr "El paquet %s no està signat"
+
+#: ../yum/__init__.py:1243
+#, python-format
+msgid "Cannot remove %s"
+msgstr "No es pot esborrar %s"
+
+#: ../yum/__init__.py:1247
+#, python-format
+msgid "%s removed"
+msgstr "S'ha esborrat %s"
+
+#: ../yum/__init__.py:1283
+#, python-format
+msgid "Cannot remove %s file %s"
+msgstr "No es pot esborrar %s fitxer %s"
+
+#: ../yum/__init__.py:1287
+#, python-format
+msgid "%s file %s removed"
+msgstr "%s fitxer %s esborrat"
+
+#: ../yum/__init__.py:1289
+#, python-format
+msgid "%d %s files removed"
+msgstr "%d %s fitxers esborrats"
+
+#: ../yum/__init__.py:1329
+#, 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:1335
+#, 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:1543
+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:1580
+#, python-format
+msgid "Searching %d packages"
+msgstr "S'estan buscant %d paquets"
+
+#: ../yum/__init__.py:1584
+#, python-format
+msgid "searching package %s"
+msgstr "s'està buscant el paquet %s"
+
+#: ../yum/__init__.py:1596
+msgid "searching in file entries"
+msgstr "s'està buscant en les entrades de fitxers"
+
+#: ../yum/__init__.py:1603
+msgid "searching in provides entries"
+msgstr "s'està buscant en les entrades proporcionades"
+
+#: ../yum/__init__.py:1633
+#, python-format
+msgid "Provides-match: %s"
+msgstr "Proporciona-coincideix: %s"
+
+#: ../yum/__init__.py:1702 ../yum/__init__.py:1720 ../yum/__init__.py:1748
+#: ../yum/__init__.py:1753 ../yum/__init__.py:1808 ../yum/__init__.py:1812
+#, python-format
+msgid "No Group named %s exists"
+msgstr "No existeix cap grup anomenat %s"
+
+#: ../yum/__init__.py:1731 ../yum/__init__.py:1824
+#, 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:1770
+#, python-format
+msgid "Adding package %s from group %s"
+msgstr "S'està afegint el paquet %s del grup %s"
+
+#: ../yum/__init__.py:1774
+#, 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:1849
+#, 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:1917 ../yum/__init__.py:1960
+msgid "Invalid versioned dependency string, try quoting it."
+msgstr "La cadena de versió de dependència és invà lida, proveu-ho entre cometes."
+
+#: ../yum/__init__.py:1919 ../yum/__init__.py:1962
+msgid "Invalid version flag"
+msgstr "Versió de flag invà lida"
+
+#: ../yum/__init__.py:1934 ../yum/__init__.py:1938
+#, python-format
+msgid "No Package found for %s"
+msgstr "No s'ha trobat cap paquet per a %s"
+
+#: ../yum/__init__.py:2066
+msgid "Package Object was not a package object instance"
+msgstr "L'objecte paquet no era una instà ncia d'objecte paquet"
+
+#: ../yum/__init__.py:2070
+msgid "Nothing specified to install"
+msgstr "No hi ha res especificat per a instal·lar"
+
+#. only one in there
+#: ../yum/__init__.py:2085
+#, 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"
+
+#: ../yum/__init__.py:2091 ../yum/__init__.py:2380
+#, python-format
+msgid "No Match for argument: %s"
+msgstr "No hi ha cap coincidència per a l'argument: %s"
+
+#. FIXME - this is where we could check to see if it already installed
+#. for returning better errors
+#: ../yum/__init__.py:2146
+msgid "No package(s) available to install"
+msgstr "No hi ha cap paquet disponible per a instal·lar"
+
+#: ../yum/__init__.py:2158
+#, python-format
+msgid "Package: %s - already in transaction set"
+msgstr "El paquet: %s - ja està en la transacció"
+
+#: ../yum/__init__.py:2171
+#, 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:2178
+#, 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ó."
+
+#. update everything (the easy case)
+#: ../yum/__init__.py:2220
+msgid "Updating Everything"
+msgstr "S'està actualitzant tot"
+
+#: ../yum/__init__.py:2304
+#, 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:2377
+#, python-format
+msgid "%s"
+msgstr "%s"
+
+#: ../yum/__init__.py:2392
+msgid "No package matched to remove"
+msgstr "No hi ha cap paquet coincident per a esborrar"
+
+#: ../yum/__init__.py:2426
+#, python-format
+msgid "Cannot open file: %s. Skipping."
+msgstr "No es pot obrir el fitxer %s. S'ometrà ."
+
+#: ../yum/__init__.py:2429
+#, python-format
+msgid "Examining %s: %s"
+msgstr "S'està examinant %s: %s"
+
+#: ../yum/__init__.py:2436
+#, 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. Executa yum install per a instal·lar-lo."
+
+#: ../yum/__init__.py:2468
+#, python-format
+msgid "Excluding %s"
+msgstr "S'està excloent %s"
+
+#: ../yum/__init__.py:2473
+#, python-format
+msgid "Marking %s to be installed"
+msgstr "S'està marcant %s per a ser instal·lat"
+
+#: ../yum/__init__.py:2479
+#, python-format
+msgid "Marking %s as an update to %s"
+msgstr "S'està marcant %s com a actualització de %s"
+
+#: ../yum/__init__.py:2486
+#, python-format
+msgid "%s: does not update installed package."
+msgstr "%s no actualitza el paquet instal·lat."
+
+#: ../yum/__init__.py:2504
+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"
+
+#: ../yum/__init__.py:2515
+#, 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:2522
+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:2570
+#, python-format
+msgid "Retrieving GPG key from %s"
+msgstr "S'està recuperant la clau GPG des de %s"
+
+#: ../yum/__init__.py:2576
+msgid "GPG key retrieval failed: "
+msgstr "La recuperació de la clau GPG ha fallat: "
+
+#: ../yum/__init__.py:2589
+msgid "GPG key parsing failed: "
+msgstr "L'Ã nalisi de la clau GPG ha fallat: "
+
+#: ../yum/__init__.py:2593
+#, 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:2598
+#, 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:2610
+msgid "Not installing key"
+msgstr "No s'està instal·lant la clau"
+
+#: ../yum/__init__.py:2616
+#, python-format
+msgid "Key import failed (code %d)"
+msgstr "L'importació de la clau ha fallat (codi %d)"
+
+#: ../yum/__init__.py:2619
+msgid "Key imported successfully"
+msgstr "La clau s'ha importat amb èxit"
+
+#: ../yum/__init__.py:2624
+#, 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 ""
+"Les claus GPG llistades pel repositori \"%s\" ja estan instal·lades però "
+"no són correctes per a aquest paquet.\n"
+"Comproveu que les URL de clau correctes estan configurades per a aquest repositori."
+
+#: ../yum/__init__.py:2633
+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:2707
+msgid "Unable to find a suitable mirror."
+msgstr "No s'ha pogut trobar un servidor rèplica và lid."
+
+#: ../yum/__init__.py:2709
+msgid "Errors were encountered while downloading packages."
+msgstr "S'han trobat errors descarregant paquets."
+
+#: ../yum/__init__.py:2774
+msgid "Test Transaction Errors: "
+msgstr "Errors en la transacció de prova: "
+
+#. Mostly copied from YumOutput._outKeyValFill()
+#: ../yum/plugins.py:195
+msgid "Loaded plugins: "
+msgstr "Connectors carregats: "
+
+#: ../yum/plugins.py:206
+#, python-format
+msgid "No plugin match for: %s"
+msgstr "No hi ha cap connector que coincideixi amb: %s"
+
+#: ../yum/plugins.py:219
+#, python-format
+msgid "\"%s\" plugin is disabled"
+msgstr "El connector \"%s\" està deshabilitat"
+
+#: ../yum/plugins.py:231
+#, 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:235
+#, 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:264
+#, python-format
+msgid "Loading \"%s\" plugin"
+msgstr "S'està carregant el connector \"%s\""
+
+#: ../yum/plugins.py:271
+#, 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"
+
+#: ../yum/plugins.py:291
+#, 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:294
+#, 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:448
+msgid "registration of commands not supported"
+msgstr "l'enregistrament d'ordres no està suportat"
+
+#: ../rpmUtils/oldUtils.py:26
+#, 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:46
+#, python-format
+msgid "RPM %s fails md5 check"
+msgstr "falla la comprobació md5 per al RPM %s"
+
+#: ../rpmUtils/oldUtils.py:144
+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?"
+
+#: ../rpmUtils/oldUtils.py:174
+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:244 ../rpmUtils/oldUtils.py:251
+#: ../rpmUtils/oldUtils.py:254 ../rpmUtils/oldUtils.py:257
+#, python-format
+msgid "Damaged Header %s"
+msgstr "Capçalera danyada %s"
+
+#: ../rpmUtils/oldUtils.py:272
+#, python-format
+msgid "Error opening rpm %s - error %s"
+msgstr "Error en obrir rpm %s - error %s"
+
commit 59d3d67fdcbab29edec9742e13e18b6abe837815
Author: James Antill <james at and.org>
Date: Tue Jul 15 17:15:39 2008 -0400
Add RepoMD.timestamp attribute, for mirrormanager etc.
Defined as the biggest/newest timestamp within a data section.
Use this as the canonical timestamp in the repomd checking, and
tweak the error message.
diff --git a/yum/repoMDObject.py b/yum/repoMDObject.py
index e0ddb88..d1d8cfb 100644
--- a/yum/repoMDObject.py
+++ b/yum/repoMDObject.py
@@ -69,6 +69,7 @@ class RepoMD:
def __init__(self, repoid, srcfile):
"""takes a repoid and a filename for the repomd.xml"""
+ self.timestamp = 0
self.repoid = repoid
self.repoData = {}
@@ -88,6 +89,12 @@ class RepoMD:
if elem_name == "data":
thisdata = RepoData(elem=elem)
self.repoData[thisdata.type] = thisdata
+ try:
+ nts = int(thisdata.timestamp)
+ if nts > self.timestamp: # max() not in old python
+ self.timestamp = nts
+ except:
+ pass
except SyntaxError, e:
raise RepoMDError, "Damaged repomd.xml file"
@@ -103,20 +110,22 @@ class RepoMD:
def dump(self):
"""dump fun output"""
-
- for ft in self.fileTypes():
+
+ print "file timestamp: %s" % self.timestamp
+ for ft in sorted(self.fileTypes()):
thisdata = self.repoData[ft]
- print 'datatype: %s' % thisdata.type
- print 'location: %s %s' % thisdata.location
- print 'timestamp: %s' % thisdata.timestamp
- print 'checksum: %s -%s' % thisdata.checksum
- print 'open checksum: %s - %s' % thisdata.openchecksum
- print 'dbversion: %s' % thisdata.dbversion
+ print ' datatype: %s' % thisdata.type
+ print ' location : %s %s' % thisdata.location
+ print ' timestamp : %s' % thisdata.timestamp
+ print ' checksum : %s - %s' % thisdata.checksum
+ print ' open checksum: %s - %s' % thisdata.openchecksum
+ print ' dbversion : %s' % thisdata.dbversion
+ print ''
def main():
try:
- print sys.argv[1]
+ print "file : %s" % sys.argv[1]
p = RepoMD('repoid', sys.argv[1])
p.dump()
diff --git a/yum/yumRepo.py b/yum/yumRepo.py
index 4e281d5..b032b57 100644
--- a/yum/yumRepo.py
+++ b/yum/yumRepo.py
@@ -876,20 +876,14 @@ class YumRepository(Repository, config.RepoConf):
if 'old_repo_XML' not in self._oldRepoMDData:
return True
old_repo_XML = self._oldRepoMDData['old_repo_XML']
-
- mdtypes = self.retrieved.keys()
- for mdtype in mdtypes:
- (nmdtype, newdata) = self._get_mdtype_data(mdtype)
- (omdtype, olddata) = self._get_mdtype_data(mdtype,
- repoXML=old_repo_XML)
- if olddata is None or newdata is None:
- continue
- if omdtype == nmdtype and olddata.checksum == newdata.checksum:
- continue
- if olddata.timestamp > newdata.timestamp:
- logger.warning("Not using downloaded repomd.xml because it is older than what we have")
- return False
+ if old_repo_XML.timestamp > self.repoXML.timestamp:
+ logger.warning("Not using downloaded repomd.xml because it is "
+ "older than what we have:\n"
+ " Current : %s\n Downloaded: %s" %
+ (time.ctime(old_repo_XML.timestamp),
+ time.ctime(self.repoXML.timestamp)))
+ return False
return True
def _commonLoadRepoXML(self, text, mdtypes=None):
commit 7a862409f84de04924535b5ca28f935ef70747ca
Merge: 8ce231d... c2fff31...
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Mon Jul 14 11:27:42 2008 -0400
Merge branch 'yum-3_2_X' of ssh://login.linux.duke.edu/home/groups/yum/git/yum into yum-3_2_X
* 'yum-3_2_X' of ssh://login.linux.duke.edu/home/groups/yum/git/yum:
Fix available comparison in "all" mode, use new .ver*() methods
commit 8ce231d8dbc22f2148b1dd3c8956740298cebfef
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Mon Jul 14 11:27:24 2008 -0400
move the xml-generating-bits into yum proper - out of createrepo
diff --git a/yum/misc.py b/yum/misc.py
index 5a59ee4..a587eb6 100644
--- a/yum/misc.py
+++ b/yum/misc.py
@@ -565,6 +565,16 @@ def to_str(obj):
obj = str(obj)
return obj
+def to_xml(item, attrib=False):
+ import xml.sax.saxutils
+ item = to_utf8(item) # verify this does enough conversion
+ item = item.rstrip()
+ if attrib:
+ item = xml.sax.saxutils.escape(item, entities={'"':"""})
+ else:
+ item = xml.sax.saxutils.escape(item)
+ return item
+
def get_my_lang_code():
import locale
mylang = locale.getlocale()
diff --git a/yum/packages.py b/yum/packages.py
index 527b4a5..014064d 100644
--- a/yum/packages.py
+++ b/yum/packages.py
@@ -565,6 +565,12 @@ class YumAvailablePackage(PackageObject, RpmBase):
return self._committime_ret
committime = property(_committime)
+
+ # FIXME test this to see if it causes hell elsewhere
+ def _checksum(self):
+ "Returns the 'default' checksum"
+ return self.checksums[0][1]
+ checksum = property(_checksum)
def getDiscNum(self):
if self.basepath is None:
@@ -730,6 +736,226 @@ class YumAvailablePackage(PackageObject, RpmBase):
csumid = 0
self._checksums.append((ctype, csum, csumid))
+# from here down this is for dumping a package object back out to metadata
+
+
+ def _return_remote_location(self):
+ # break self.remote_url up into smaller pieces
+ base = os.path.dirname(self.remote_url)
+ href = os.path.basename(self.remote_url)
+ msg = """<location xml:base="%s" href="%s"/>\n""" % (
+ misc.to_xml(base,attrib=True), misc.to_xml(href, attrib=True))
+ return msg
+
+ def _dump_base_items(self):
+
+ packager = url = ''
+ if self.packager:
+ packager = misc.to_xml(self.packager)
+
+ if self.url:
+ url = misc.to_xml(self.url)
+
+ msg = """
+ <name>%s</name>
+ <arch>%s</arch>
+ <version epoch="%s" ver="%s" rel="%s"/>
+ <checksum type="sha" pkgid="YES">%s</checksum>
+ <summary>%s</summary>
+ <description>%s</description>
+ <packager>%s</packager>
+ <url>%s</url>
+ <time file="%s" build="%s"/>
+ <size package="%s" installed="%s" archive="%s"/>\n""" % (self.name,
+ self.arch, self.epoch, self.ver, self.rel, self.checksum,
+ misc.to_xml(self.summary), misc.to_xml(self.description), packager,
+ url, self.filetime, self.buildtime, self.packagesize, self.size,
+ self.archivesize)
+
+ msg += self._return_remote_location()
+ return msg
+
+ def _dump_format_items(self):
+ msg = " <format>\n"
+ if self.license:
+ msg += """ <rpm:license>%s</rpm:license>\n""" % misc.to_xml(self.license)
+ else:
+ msg += """ <rpm:license/>\n"""
+
+ if self.vendor:
+ msg += """ <rpm:vendor>%s</rpm:vendor>\n""" % misc.to_xml(self.vendor)
+ else:
+ msg += """ <rpm:vendor/>\n"""
+
+ if self.group:
+ msg += """ <rpm:group>%s</rpm:group>\n""" % misc.to_xml(self.group)
+ else:
+ msg += """ <rpm:group/>\n"""
+
+ if self.buildhost:
+ msg += """ <rpm:buildhost>%s</rpm:buildhost>\n""" % misc.to_xml(self.buildhost)
+ else:
+ msg += """ <rpm:buildhost/>\n"""
+
+ if self.sourcerpm:
+ msg += """ <rpm:sourcerpm>%s</rpm:sourcerpm>\n""" % misc.to_xml(self.sourcerpm)
+ msg +=""" <rpm:header-range start="%s" end="%s"/>""" % (self.hdrstart,
+ self.hdrend)
+ msg += self._dump_pco('provides')
+ msg += self._dump_requires()
+ msg += self._dump_pco('conflicts')
+ msg += self._dump_pco('obsoletes')
+ msg += self._dump_files(True)
+ msg += """\n </format>"""
+ return msg
+
+ def _dump_pco(self, pcotype):
+
+ msg = ""
+ mylist = getattr(self, pcotype)
+ if mylist: msg = "\n <rpm:%s>\n" % pcotype
+ for (name, flags, (e,v,r)) in mylist:
+ pcostring = ''' <rpm:entry name="%s"''' % name
+ if flags:
+ pcostring += ''' flags="%s"''' % flags
+ if e:
+ pcostring += ''' epoch="%s"''' % e
+ if v:
+ pcostring += ''' ver="%s"''' % v
+ if r:
+ pcostring += ''' rel="%s"''' % r
+
+ pcostring += "/>\n"
+ msg += pcostring
+
+ if mylist: msg += " </rpm:%s>" % pcotype
+ return msg
+
+ def _return_primary_files(self, list_of_files=None):
+ fileglobs = ['.*bin\/.*', '^\/etc\/.*', '^\/usr\/lib\/sendmail$']
+ file_re = []
+ for glob in fileglobs:
+ file_re.append(re.compile(glob))
+
+
+ returns = {}
+ if list_of_files is None:
+ list_of_files = self.returnFileEntries('file')
+ for item in list_of_files:
+ if item is None:
+ continue
+ for glob in file_re:
+ if glob.match(item):
+ returns[item] = 1
+ return returns.keys()
+
+ def _return_primary_dirs(self):
+ dirglobs = ['.*bin\/.*', '^\/etc\/.*']
+ dir_re = []
+
+ for glob in dirglobs:
+ dir_re.append(re.compile(glob))
+
+ returns = {}
+ for item in self.returnFileEntries('dir'):
+ if item is None:
+ continue
+ for glob in dir_re:
+ if glob.match(item):
+ returns[item] = 1
+ return returns.keys()
+
+
+ def _dump_files(self, primary=False):
+ msg =""
+ if not primary:
+ files = self.returnFileEntries('file')
+ dirs = self.returnFileEntries('dir')
+ ghosts = self.returnFileEntries('ghost')
+ else:
+ files = self._return_primary_files()
+ ghosts = self._return_primary_files(list_of_files = self.returnFileEntries('ghost'))
+ dirs = self._return_primary_dirs()
+
+ for fn in files:
+ msg += """ <file>%s</file>\n""" % misc.to_xml(fn)
+ for fn in dirs:
+ msg += """ <file type="dir">%s</file>\n""" % misc.to_xml(fn)
+ for fn in ghosts:
+ msg += """ <file type="ghost">%s</file>\n""" % misc.to_xml(fn)
+
+ return msg
+
+
+ def _requires_with_pre(self):
+ raise NotImplementedError()
+
+ def _dump_requires(self):
+ """returns deps in format"""
+ mylist = self._requires_with_pre()
+
+ msg = ""
+
+ if mylist: msg = "\n <rpm:requires>\n"
+ for (name, flags, (e,v,r),pre) in mylist:
+ if name.startswith('rpmlib('):
+ continue
+ prcostring = ''' <rpm:entry name="%s"''' % name
+ if flags:
+ prcostring += ''' flags="%s"''' % flags
+ if e:
+ prcostring += ''' epoch="%s"''' % e
+ if v:
+ prcostring += ''' ver="%s"''' % v
+ if r:
+ prcostring += ''' rel="%s"''' % r
+ if pre:
+ prcostring += ''' pre="%s"''' % pre
+
+ prcostring += "/>\n"
+ msg += prcostring
+
+ if mylist: msg += " </rpm:requires>"
+ return msg
+
+ def _dump_changelog(self, clog_limit):
+ if not self.changelog:
+ return ""
+ msg = "\n"
+ clog_count = 0
+ for (ts, author, content) in reversed(sorted(self.changelog)):
+ if clog_limit and clog_count >= clog_limit:
+ break
+ clog_count += 1
+ msg += '''<changelog author="%s" date="%s">%s</changelog>\n''' % (
+ misc.to_xml(author, attrib=True), str(ts), misc.to_xml(content))
+ return msg
+
+ def xml_dump_primary_metadata(self):
+ msg = """\n<package type="rpm">"""
+ msg += self._dump_base_items()
+ msg += self._dump_format_items()
+ msg += """\n</package>"""
+ return msg
+
+ def xml_dump_filelists_metadata(self):
+ msg = """\n<package pkgid="%s" name="%s" arch="%s">
+ <version epoch="%s" ver="%s" rel="%s"/>\n""" % (self.checksum, self.name,
+ self.arch, self.epoch, self.ver, self.rel)
+ msg += self._dump_files()
+ msg += "</package>\n"
+ return msg
+
+ def xml_dump_other_metadata(self, clog_limit=0):
+ msg = """\n<package pkgid="%s" name="%s" arch="%s">
+ <version epoch="%s" ver="%s" rel="%s"/>\n""" % (self.checksum, self.name,
+ self.arch, self.epoch, self.ver, self.rel)
+ msg += self._dump_changelog(clog_limit)
+ msg += "\n</package>\n"
+ return msg
+
+
+
class YumHeaderPackage(YumAvailablePackage):
"""Package object built from an rpm header"""
@@ -879,7 +1105,34 @@ class YumHeaderPackage(YumAvailablePackage):
def returnChecksums(self):
raise NotImplementedError()
-
+
+ def _is_pre_req(self, flag):
+ """check the flags for a requirement, return 1 or 0 whether or not requires
+ is a pre-requires or a not"""
+ # FIXME this should probably be put in rpmUtils.miscutils since
+ # - that's what it is
+ newflag = flag
+ if flag is not None:
+ newflag = flag & rpm.RPMSENSE_PREREQ
+ if newflag == rpm.RPMSENSE_PREREQ:
+ return 1
+ else:
+ return 0
+ return 0
+
+ def _requires_with_pre(self):
+ """returns requires with pre-require bit"""
+ name = self.hdr[rpm.RPMTAG_REQUIRENAME]
+ lst = self.hdr[rpm.RPMTAG_REQUIREFLAGS]
+ flag = map(flagToString, lst)
+ pre = map(self._is_pre_req, lst)
+ lst = self.hdr[rpm.RPMTAG_REQUIREVERSION]
+ vers = map(stringToVersion, lst)
+ if name is not None:
+ lst = zip(name, flag, vers, pre)
+ mylist = misc.unique(lst)
+ return mylist
+
class _CountedReadFile:
""" Has just a read() method, and keeps a count so we can find out how much
has been read. Implemented so we can get the real size of the file from
diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index 2949df4..15e916b 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -242,6 +242,23 @@ class YumAvailablePackageSqlite(YumAvailablePackage, PackageObject, RpmBase):
self.prco[prcotype].append(_share_data(prco_set))
return RpmBase.returnPrco(self, prcotype, printable)
+
+ def _requires_with_pre(self):
+ """returns requires with pre-require bit"""
+ sql = "SELECT name, version, release, epoch, flags,pre " \
+ "FROM requires WHERE pkgKey = ?"
+ cur = self._sql_MD('primary', sql, (self.pkgKey,))
+ requires = []
+ for ob in cur:
+ pre = "0"
+ if ob['pre'].lower() in ['TRUE', 1]:
+ pre = "1"
+ prco_set = (_share_data(ob['name']), _share_data(ob['flags']),
+ (_share_data(ob['epoch']),
+ _share_data(ob['version']),
+ _share_data(ob['release'])), pre)
+ requires.append(prco_set)
+ return requires
class YumSqlitePackageSack(yumRepo.YumPackageSack):
""" Implementation of a PackageSack that uses sqlite cache instead of fully
commit c2fff316f82ec96781c40f2a98a6575669b62bf1
Author: James Antill <james at and.org>
Date: Thu Jul 10 12:56:24 2008 -0400
Fix available comparison in "all" mode, use new .ver*() methods
diff --git a/yum/__init__.py b/yum/__init__.py
index f351906..521a8a0 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -1356,7 +1356,7 @@ class YumBase(depsolve.Depsolve):
if showdups:
continue
key = (po.name, po.arch)
- if key not in ndinst or po > ndinst[key]:
+ if key not in ndinst or po.verGT(ndinst[key]):
ndinst[key] = po
installed = dinst.values()
@@ -1374,7 +1374,7 @@ class YumBase(depsolve.Depsolve):
available.append(pkg)
else:
key = (pkg.name, pkg.arch)
- if key not in ndinst or pkg > ndinst[key]:
+ if key not in ndinst or pkg.verGT(ndinst[key]):
available.append(pkg)
# produce the updates list of tuples
commit 63540521709205dd601994e2b05b7ddd3712b3a1
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Thu Jul 10 12:21:29 2008 -0400
make sure the reqpo exists before we compare it
diff --git a/yum/depsolve.py b/yum/depsolve.py
index 8bb2cf1..2577cef 100644
--- a/yum/depsolve.py
+++ b/yum/depsolve.py
@@ -986,8 +986,13 @@ class Depsolve(object):
if obsoleted:
pkgresults[po] -= 1024
break
-
- for thisarch in (reqpo.arch, getBestArch()):
+
+ if reqpo:
+ arches = (reqpo.arch, getBestArch())
+ else:
+ arches = (getBestArch())
+
+ for thisarch in arches:
res = _compare_arch_distance(po, nextpo, thisarch)
if not res:
continue
@@ -1001,13 +1006,13 @@ class Depsolve(object):
self.verbose_logger.log(logginglevels.DEBUG_4,
_('common sourcerpm %s and %s' % (po, reqpo)))
pkgresults[po] += 20
-
- cpl = _common_prefix_len(po.name, reqpo.name)
- if cpl > 2:
- self.verbose_logger.log(logginglevels.DEBUG_4,
- _('common prefix of %s between %s and %s' % (cpl, po, reqpo)))
-
- pkgresults[po] += cpl*2
+ if reqpo:
+ cpl = _common_prefix_len(po.name, reqpo.name)
+ if cpl > 2:
+ self.verbose_logger.log(logginglevels.DEBUG_4,
+ _('common prefix of %s between %s and %s' % (cpl, po, reqpo)))
+
+ pkgresults[po] += cpl*2
pkgresults[po] += (len(po.name)*-1)
commit 26171fda7abccb8134dd32f7f05b99e41ddf23f3
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Tue Jul 8 17:31:20 2008 -0400
changelog merge
diff --git a/ChangeLog b/ChangeLog
index c479064..c109d91 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,487 @@
+2008-07-08 Seth Vidal <skvidal at fedoraproject.org>
+
+ * yum.spec, yum/__init__.py: mark as 3.2.17
+
+2008-07-08 James Antill <james at and.org>
+
+ * yum/yumRepo.py: And fix the second call to readMirrorList, for the
+ new return
+
+2008-07-08 James Antill <james at and.org>
+
+ * yum/yumRepo.py: Another fix for the simple mirrorlist change, pass
+ full file contents to write
+
+2008-07-08 James Antill <james at and.org>
+
+ * yum/depsolve.py: Use getBestArch instead of getCanonArch, when
+ comnparing providers, helps ppc64
+
+2008-07-07 James Antill <james at and.org>
+
+ * yum/depsolve.py: Fix rpmdb.contains(pkg.pkgtup) typo, *pkg.pkgtup
+ works but po=pkg is nicer
+
+2008-07-07 James Antill <james at and.org>
+
+ * yum/yumRepo.py: Don't die if the mirrorlist download fails, and we
+ have an old one around.
+
+2008-07-06 James Antill <james at and.org>
+
+ * test/depsolvetests.py, test/simpleupdatetests.py, yum/__init__.py: When we are updating from foo.noarch to foo.i386/foo.x86_64 ...
+ then sort the available pkgs by ._compare_providers(). This does
+ the consistently corrct thing. Also tweak the unittests to use
+ os.uname()[-1] instead of rpmutils.getBestArch(). make check now
+ passes on .i386 and .x86_64 ... wooo!
+
+2008-07-06 James Antill <james at and.org>
+
+ * yum/depsolve.py: Do much faster pkgtup lookup, when checking if
+ "req" providers are installed
+
+2008-07-06 James Antill <james at and.org>
+
+ * yum/packageSack.py: Fix the "make check" failures where empty
+ sacks call returnNewestByName()
+
+2008-07-06 James Antill <james at and.org>
+
+ * cli.py, yum/__init__.py, yum/depsolve.py, yum/misc.py,
+ yum/packageSack.py: Convert .EVR usage to .ver* ... stop
+ making/destroying objects all the time.
+
+2008-07-06 James Antill <james at and.org>
+
+ * yum/__init__.py, yum/packageSack.py: Move from comparing version
+ data in pkgs with __cmp__ to using verCMP/etc.
+
+2008-07-06 James Antill <james at and.org>
+
+ * yum/__init__.py: Unicode fix for GPG key imports, bug#454163
+
+2008-07-04 James Antill <james at and.org>
+
+ * yum/packages.py: Add versioned only comparison functions to the
+ base package object
+
+2008-07-03 James Antill <james at and.org>
+
+ * yum/__init__.py, yum/sqlitesack.py: Do real SQLite escaping, if
+ required. Fixes search and list % _ usage
+
+2008-07-03 James Antill <james at and.org>
+
+ * yum/sqlitesack.py: Brown paper bag bug, typo in _packageByKeyData
+ *sighs*
+
+2008-07-03 James Antill <james at and.org>
+
+ * yum/sqlitesack.py: Add an arg. so _sql_pkgKey2po can use Data,
+ convert some callers to use it.
+
+2008-07-03 James Antill <james at and.org>
+
+ * yum/sqlitesack.py: Add helper function to do self._packageByKey
+ without the SQL lookup
+
+2008-07-03 James Antill <james at and.org>
+
+ * yum/__init__.py, yum/packageSack.py, yum/sqlitesack.py: Add
+ ignore_case with patterns argument, to fix commands (eg. list)
+
+2008-07-03 Seth Vidal <skvidal at fedoraproject.org>
+
+ Merge branch 'yum-3_2_X' of
+ ssh://login.linux.duke.edu/home/groups/yum/git/yum into yum-3_2_X *
+ 'yum-3_2_X' of ssh://login.linux.duke.edu/home/groups/yum/git/yum:
+ Fix doPackageLists() and rpmdb.returnPackages() to have ignore_case
+ option. Tidy up extra --version output, add rpm/etc. packages we
+ dep. on
+
+2008-07-03 Seth Vidal <skvidal at fedoraproject.org>
+
+ * yum/packageSack.py, yum/rpmsack.py, yum/sqlitesack.py: implement
+ searchNames() to let you quickly do exact name matches of multiple
+ names.
+
+2008-07-01 James Antill <james at and.org>
+
+ * cli.py, yum/__init__.py, yum/rpmsack.py: Fix doPackageLists() and
+ rpmdb.returnPackages() to have ignore_case option.
+
+2008-07-01 James Antill <james at and.org>
+
+ * cli.py: Tidy up extra --version output, add rpm/etc. packages we
+ dep. on
+
+2008-06-30 James Antill <james at and.org>
+
+ * cli.py: Add installed yum info. to --version
+
+2008-06-30 James Antill <james at and.org>
+
+ * output.py: Use normal packaging sorting in simpleList()
+
+2008-06-25 Tim Lauridsen <tla at rasmil.dk>
+
+ * test/misc-tests.py, test/skipbroken-tests.py: Add a testcase for
+ the libBCD case studie, just for the fun of it
+
+2008-06-24 James Antill <james at and.org>
+
+ * yum/__init__.py: Make sure we only consider the newest names,
+ among all the arch varients
+
+2008-06-24 James Antill <james at and.org>
+
+ * yum/packageSack.py: Fix packagesNewestByName() to use comparePoEVR as pkg.__cmp__ uses
+ .arch info. thus we'd only get one pkg from the alph sorted
+ arch. kind of a weird interface, not quite the "same" as
+ packageNewestByNameArch()
+
+2008-06-24 James Antill <james at and.org>
+
+ * yum/__init__.py: Allow noarch packages when in
+ multilib_policy=best
+
+2008-06-23 Florian Festi <ffesti at redhat.com>
+
+ * cli.py: Fix unicode traceback If error message contains non UTF-8
+ characters yum bails out in this line May be this should (also) be
+ fixed in the rpmlib Python bindings.
+
+2008-06-20 Seth Vidal <skvidal at fedoraproject.org>
+
+ * yum/yumRepo.py: make sure url's end in '/' otherwise our
+ urlparse.urljoin() won't be correct
+
+2008-06-16 James Antill <james at and.org>
+
+ * yum/__init__.py: Re-align the total progress after each download,
+ in case of errors+no-size
+
+2008-06-13 Seth Vidal <skvidal at fedoraproject.org>
+
+ * yum/__init__.py: make the logging call correct for 3.2.X
+
+2008-06-13 Seth Vidal <skvidal at fedoraproject.org>
+
+ * yum/__init__.py: make sure we don't accidentally install any
+ incompatible architectures (especially things like local-install src
+ rpms)
+
+2008-06-12 Jeremy Katz <katzj at redhat.com>
+
+ * yum/__init__.py: Give a nicer error message if there are no groups
+ configured (#446613)
+
+2008-06-12 Jeremy Katz <katzj at redhat.com>
+
+ * yummain.py: Log formatters use localized bits, but logs should use
+ C locale (#433091)
+
+2008-06-12 James Antill <james at and.org>
+
+ * output.py: rm extra space
+
+2008-06-11 James Antill <james at and.org>
+
+ * yum/packageSack.py: Fix seth's fix, of my fix, ... :)
+
+2008-06-11 James Antill <james at and.org>
+
+ * output.py: More merges from the logging branch. Fix the "yum list
+ php-pear-Str*" problem. Do the specspo. lookup/encoding for
+ verbose matchcallback. Minor UI tweak for verbose matchcallback.
+
+
+2008-06-11 James Antill <james at and.org>
+
+ * output.py: Add times to verbose info. -- hand merge from logging
+ branch
+
+2008-06-11 Seth Vidal <skvidal at fedoraproject.org>
+
+ * yum/config.py: commit comment correction for config.py from Kulbir
+ Saini
+
+2008-06-11 James Antill <james at and.org>
+
+ * cli.py: Try and fix bug#450826
+
+2008-06-11 James Antill <james at and.org>
+
+ * yum/packages.py: Use sets for lookup on large prco tuples
+
+2008-06-10 Seth Vidal <skvidal at fedoraproject.org>
+
+ * yum/packageSack.py: make sure the exceptions for 'no packages
+ found' continue to be true
+
+2008-06-09 Seth Vidal <skvidal at fedoraproject.org>
+
+ Merge branch 'yum-3_2_X' of
+ ssh://login1.linux.duke.edu/home/groups/yum/git/yum into yum-3_2_X
+ * 'yum-3_2_X' of
+ ssh://login1.linux.duke.edu/home/groups/yum/git/yum: Fix provides
+ output, to have highlights and make it always "verbose". updated
+ de translation by Jochen Schmitt The postresolve hook should run
+ after the installonlyn magic.
+
+2008-06-09 Seth Vidal <skvidal at fedoraproject.org>
+
+ * yum/__init__.py, yum/misc.py, yum/pgpmsg.py: make gpg key
+ importing support muleiple keys per file
+
+2008-06-06 James Antill <james at and.org>
+
+ * cli.py, output.py, yum/__init__.py: Fix provides output, to have highlights and make it always
+ "verbose". Give warning about old behaviour when nothing matches.
+
+
+2008-06-06 Tim Lauridsen <tla at rasmil.dk>
+
+ * po/de.po: updated de translation by Jochen Schmitt
+
+2008-06-03 Jack Neely <jjneely at ncsu.edu>
+
+ * yum/__init__.py: The postresolve hook should run after the
+ installonlyn magic.
+
+2008-06-03 Tim Lauridsen <tla at rasmil.dk>
+
+ * yum/config.py, yum/yumRepo.py: make
+ repo.enable/disablePersistant() dont messup the repo files by
+ replacing etc. (rhbz# 446098)
+
+2008-06-02 James Antill <james at and.org>
+
+ * cli.py: Give the --showduplicates output for provides, as that's
+ how it's calc'd.
+
+2008-06-02 James Antill <james at and.org>
+
+ * README: Add text for git diff, to make sure we don't have HEAD
+ merges
+
+2008-06-02 James Antill <james at and.org>
+
+ * README.API_CHANGES, rpmUtils/miscutils.py, test/depsolvetests.py,
+ test/operationstests.py, test/packagetests.py,
+ test/simpleobsoletestests.py, test/simpleupdatetests.py,
+ test/skipbroken-tests.py, test/testbase.py, yum/__init__.py,
+ yum/depsolve.py, yum/packageSack.py, yum/packages.py,
+ yum/rpmsack.py, yum/sqlitesack.py: Revert "Merge branch 'master' of
+ ssh://login.linux.duke.edu/home/groups/yum/git/yum" This reverts
+ commit 7bf7ce04f34b0fa1540b02de70d696675864efc3. Another stupid
+ HEAD => 3.2.x branch merge. *hates SCMs for a while*
+
+2008-06-02 James Antill <james at and.org>
+
+ * yum/sqlitesack.py: Revert "Remove old excluded mechanism from
+ SqliteSack" This reverts commit
+ 4a7acc768e4b466fe23c09435a2beff963461ecb. This shouldn't be on the
+ stable branch.
+
+2008-05-31 James Antill <james at and.org>
+
+ * yum/sqlitesack.py: Allow searches with ' in them (need to escape
+ other chars?). bug#240606
+
+2008-05-31 James Antill <james at and.org>
+
+ * yum/__init__.py: We want to keep other arches in the
+ multilib_policy=all case. bug#449056
+
+2008-05-30 Seth Vidal <skvidal at fedoraproject.org>
+
+ Merge branch 'yum-3_2_X' of
+ ssh://login1.linux.duke.edu/home/groups/yum/git/yum into yum-3_2_X
+ * 'yum-3_2_X' of
+ ssh://login1.linux.duke.edu/home/groups/yum/git/yum: Allow
+ non-obs. looping installs too :) Work around mutual obs. looping
+ insanity update sr & sr at latin translation by Igor Miletic Fix
+ i18n for y/N prompt and sr_RS.utf8 locale, also allow y/N if no
+ overlap Fix -y config. option in man page: bug#447305 Allow -c
+ URL to work again commit and/or match from HEAD back to 3.2.X
+ mention the branch name specifically label as 3.2.X branch
+
+2008-05-30 Seth Vidal <skvidal at fedoraproject.org>
+
+ * docs/yum.8, docs/yum.conf.5: man page patch to close #446587
+
+2008-05-27 James Antill <james at and.org>
+
+ * output.py: Fix i18n for y/N prompt and sr_RS.utf8 locale, also
+ allow y/N if no overlap
+
+2008-05-16 Seth Vidal <skvidal at fedoraproject.org>
+
+ * README: mention the branch name specifically
+
+2008-05-16 Seth Vidal <skvidal at fedoraproject.org>
+
+ * README: label as 3.2.X branch
+
+2008-05-29 James Antill <james at and.org>
+
+ * yum/__init__.py: Allow non-obs. looping installs too :)
+
+2008-05-28 James Antill <james at and.org>
+
+ * yum/__init__.py: Work around mutual obs. looping insanity
+
+2008-05-27 Tim Lauridsen <timlau at fedoraproject.org>
+
+ * po/sr.po, po/sr at latin.po: update sr & sr at latin translation by Igor
+ Miletic
+
+2008-05-27 James Antill <james at and.org>
+
+ * output.py: Fix i18n for y/N prompt and sr_RS.utf8 locale, also
+ allow y/N if no overlap
+
+2008-05-27 James Antill <james at and.org>
+
+ Merge branch 'master' of
+ ssh://login.linux.duke.edu/home/groups/yum/git/yum * 'master' of
+ ssh://login.linux.duke.edu/home/groups/yum/git/yum: update sr &
+ sr at latin translation by Igor Miletic Remove old excluded mechanism
+ from SqliteSack
+
+2008-05-27 Tim Lauridsen <timlau at fedoraproject.org>
+
+ * po/sr.po, po/sr at latin.po: update sr & sr at latin translation by Igor
+ Miletic
+
+2007-12-13 Florian Festi <ffesti at redhat.com>
+
+ * yum/sqlitesack.py: Remove old excluded mechanism from SqliteSack
+
+2008-05-26 James Antill <james at and.org>
+
+ Merge branch 'master' of
+ ssh://login.linux.duke.edu/home/groups/yum/git/yum * 'master' of
+ ssh://login.linux.duke.edu/home/groups/yum/git/yum: Fix flag
+ conversion in YumHeaderPackage._populatePrco() Use already known
+ txmbr when resolving installed pkgs problems Restart .check* every
+ time the tsInfo got modified to only resolve problems that still
+ exist Make Depsolve.check* generators instead of returning lists
+ Make sure rpm.RPMSENSE_* int constants are used as flags in PRCOs.
+ Fix code merge error in RpmSack._getPRCO PackageSack API cleanup
+ Remove Depsolve.whatProvides
+
+2008-05-26 Florian Festi <ffesti at redhat.com>
+
+ * yum/packages.py: Fix flag conversion in
+ YumHeaderPackage._populatePrco() broken in
+ febe35eee130212380e5688bd119f19a032d74fc
+
+2008-02-13 Florian Festi <ffesti at redhat.com>
+
+ * yum/depsolve.py: Use already known txmbr when resolving installed
+ pkgs problems
+
+2008-02-18 Florian Festi <ffesti at redhat.com>
+
+ * yum/depsolve.py: Restart .check* every time the tsInfo got
+ modified to only resolve problems that still exist
+
+2008-02-18 Florian Festi <ffesti at redhat.com>
+
+ * yum/depsolve.py: Make Depsolve.check* generators instead of
+ returning lists
+
+2008-05-23 Florian Festi <ffesti at redhat.com>
+
+ * rpmUtils/miscutils.py, test/depsolvetests.py,
+ test/operationstests.py, test/packagetests.py,
+ test/simpleobsoletestests.py, test/simpleupdatetests.py,
+ test/skipbroken-tests.py, test/testbase.py, yum/depsolve.py,
+ yum/packages.py, yum/sqlitesack.py: Make sure rpm.RPMSENSE_* int
+ constants are used as flags in PRCOs. Added short hand constants to
+ testbase Adjusted the test cases
+
+2008-05-26 Florian Festi <ffesti at redhat.com>
+
+ * yum/rpmsack.py: Fix code merge error in RpmSack._getPRCO Thanks
+ to Terje Røsten for testing and reporting.
+
+2008-05-23 James Antill <james at and.org>
+
+ * yum/depsolve.py: Minor bit rot, pointed out by Jay Soffian
+
+2008-05-23 Florian Festi <ffesti at redhat.com>
+
+ * README.API_CHANGES, yum/packageSack.py, yum/rpmsack.py,
+ yum/sqlitesack.py: PackageSack API cleanup Removed
+ PackagesSack.search(Provides|Requires|Conflicts|Obsoletes)
+ RpmSack.what(Provides|Requires) SqliteSack.searchPrco Added
+ PackagesSack.get(Conflicts|Obsoletes)
+
+2007-11-30 Florian Festi <ffesti at redhat.com>
+
+ * yum/__init__.py, yum/depsolve.py: Remove Depsolve.whatProvides
+
+2008-05-19 James Antill <james at and.org>
+
+ * docs/yum.8: Fix -y config. option in man page: bug#447305
+
+2008-05-19 James Antill <james at and.org>
+
+ * yum/config.py: Allow -c URL to work again
+
+2008-05-20 Seth Vidal <skvidal at fedoraproject.org>
+
+ * yum/sqlitesack.py: commit and/or match from HEAD back to 3.2.X
+
+2008-05-19 James Antill <james at and.org>
+
+ * docs/yum.8: Fix -y config. option in man page: bug#447305
+
+2008-05-19 James Antill <james at and.org>
+
+ Merge branch 'master' of
+ ssh://login.linux.duke.edu/home/groups/yum/git/yum * 'master' of
+ ssh://login.linux.duke.edu/home/groups/yum/git/yum: gotta check
+ both, not either - otherwise filedeps don't work :(
+
+2008-05-19 James Antill <james at and.org>
+
+ * yum/config.py: Allow -c URL to work again
+
+2008-05-17 Seth Vidal <skvidal at fedoraproject.org>
+
+ * yum/sqlitesack.py: gotta check both, not either - otherwise
+ filedeps don't work :(
+
+2008-05-16 Seth Vidal <skvidal at fedoraproject.org>
+
+ * README: mention the branch name specifically
+
+2008-05-16 Seth Vidal <skvidal at fedoraproject.org>
+
+ * README: label as 3.2.X branch
+
+2008-05-16 James Antill <james at and.org>
+
+ * yum/sqlitesack.py: Work around SQL limits for searching, still unbearably slow at
+ 1,000s of terms
+
+2008-05-16 James Antill <james at and.org>
+
+ * yum/constants.py, yum/rpmsack.py, yum/sqlitesack.py: Limit
+ excessive pattern usage
+
+2008-05-16 James Antill <james at and.org>
+
+ * yumcommands.py: Add repo size to repolist info.
+
+2008-05-16 Seth Vidal <skvidal at fedoraproject.org>
+
+ * ChangeLog: merge changelog, again
+
2008-05-15 Seth Vidal <skvidal at fedoraproject.org>
* yum/comps.py: we screwed up generating some earlier comps which
commit 22e6d5c7161c34d4b68a1aacb5fedde2dc29d7a2
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Tue Jul 8 17:01:38 2008 -0400
mark as 3.2.17
diff --git a/yum.spec b/yum.spec
index 8ad25e6..6b67412 100644
--- a/yum.spec
+++ b/yum.spec
@@ -1,6 +1,6 @@
Summary: RPM installer/updater
Name: yum
-Version: 3.2.16
+Version: 3.2.17
Release: 0
License: GPL
Group: System Environment/Base
@@ -99,6 +99,9 @@ exit 0
%{_mandir}/man*/yum-updatesd*
%changelog
+* Wed Jul 8 2008 Seth Vidal <skvidal at fedoraproject.org>
+- 3.2.17
+
* Wed May 14 2008 Seth Vidal <skvidal at fedoraproject.org>
- 3.2.16
diff --git a/yum/__init__.py b/yum/__init__.py
index ce40791..f351906 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -72,7 +72,7 @@ import string
from urlgrabber.grabber import default_grabber
-__version__ = '3.2.16'
+__version__ = '3.2.17'
# Setup a default_grabber UA here that says we are yum, done using the global
# so that other API users can easily add to it if they want.
commit 2f1f485c3310bf9c62153c5d96bb3e315e3dd51c
Author: James Antill <james at and.org>
Date: Tue Jul 8 16:19:01 2008 -0400
And fix the second call to readMirrorList, for the new return
diff --git a/yum/yumRepo.py b/yum/yumRepo.py
index 0b3e9fa..4e281d5 100644
--- a/yum/yumRepo.py
+++ b/yum/yumRepo.py
@@ -1296,7 +1296,7 @@ class YumRepository(Repository, config.RepoConf):
elif not cacheok and os.path.exists(self.mirrorlist_file):
# New mirror file failed, so use the old one (better than nothing)
os.utime(self.mirrorlist_file, None)
- return self._readMirrorList(open(self.mirrorlist_file, 'r'))
+ return self._readMirrorList(open(self.mirrorlist_file, 'r'))[0]
return returnlist
commit 6fe6847ddba441277903814dde8ece9a563e8d66
Author: James Antill <james at and.org>
Date: Tue Jul 8 16:09:14 2008 -0400
Another fix for the simple mirrorlist change, pass full file contents to write
diff --git a/yum/yumRepo.py b/yum/yumRepo.py
index 76c13fd..0b3e9fa 100644
--- a/yum/yumRepo.py
+++ b/yum/yumRepo.py
@@ -1243,12 +1243,13 @@ class YumRepository(Repository, config.RepoConf):
""" read the mirror list from the specified file object """
returnlist = []
+ content = []
if fo is not None:
try:
content = fo.readlines()
except Exception, e:
print "Could not read mirrorlist %s error was \n%s" %(url, e)
- content = ""
+ content = []
for line in content:
if re.match('^\s*\#.*', line) or re.match('^\s*$', line):
continue
@@ -1256,7 +1257,7 @@ class YumRepository(Repository, config.RepoConf):
(mirror, count) = re.subn('\$ARCH', '$BASEARCH', mirror)
returnlist.append(mirror)
- return returnlist
+ return (returnlist, content)
def _getMirrorList(self):
"""retrieve an up2date-style mirrorlist file from our mirrorlist url,
@@ -1284,7 +1285,7 @@ class YumRepository(Repository, config.RepoConf):
print "Could not retrieve mirrorlist %s error was\n%s" % (url, e)
fo = None
- returnlist = self._readMirrorList(fo)
+ (returnlist, content) = self._readMirrorList(fo)
if returnlist:
if not self.cache and not cacheok:
commit 668fbcc4668cf857e0cecca30b84f8a7d0aaf670
Author: James Antill <james at and.org>
Date: Tue Jul 8 14:55:02 2008 -0400
Use getBestArch instead of getCanonArch, when comnparing providers, helps ppc64
diff --git a/yum/depsolve.py b/yum/depsolve.py
index 9d85284..8bb2cf1 100644
--- a/yum/depsolve.py
+++ b/yum/depsolve.py
@@ -25,7 +25,7 @@ import logging
import rpmUtils.transaction
import rpmUtils.miscutils
import rpmUtils.arch
-from rpmUtils.arch import archDifference, isMultiLibArch, getCanonArch
+from rpmUtils.arch import archDifference, isMultiLibArch, getBestArch
import misc
from misc import unique, version_tuple_to_string
import rpm
@@ -987,7 +987,7 @@ class Depsolve(object):
pkgresults[po] -= 1024
break
- for thisarch in (reqpo.arch, getCanonArch()):
+ for thisarch in (reqpo.arch, getBestArch()):
res = _compare_arch_distance(po, nextpo, thisarch)
if not res:
continue
commit ae25e197ceaa9e5f15049349fdeb0ffd2801d84e
Author: James Antill <james at and.org>
Date: Mon Jul 7 18:27:58 2008 -0400
Fix rpmdb.contains(pkg.pkgtup) typo, *pkg.pkgtup works but po=pkg is nicer
diff --git a/yum/depsolve.py b/yum/depsolve.py
index cb2546b..9d85284 100644
--- a/yum/depsolve.py
+++ b/yum/depsolve.py
@@ -432,7 +432,7 @@ class Depsolve(object):
# get rid of things that are already in the rpmdb - b/c it's pointless to use them here
for pkg in provSack.returnPackages():
- if self.rpmdb.contains(pkg.pkgtup): # is it already installed?
+ if self.rpmdb.contains(po=pkg): # is it already installed?
self.verbose_logger.log(logginglevels.DEBUG_2, _('%s is in providing packages but it is already installed, removing.'), pkg)
provSack.delPackage(pkg)
continue
commit e7988a047dca281a3180ea6f2bc0d5e2091f45ad
Author: James Antill <james at and.org>
Date: Mon Jul 7 14:37:55 2008 -0400
Don't die if the mirrorlist download fails, and we have an old one around.
diff --git a/yum/yumRepo.py b/yum/yumRepo.py
index 818c669..76c13fd 100644
--- a/yum/yumRepo.py
+++ b/yum/yumRepo.py
@@ -1238,6 +1238,26 @@ class YumRepository(Repository, config.RepoConf):
def setInterruptCallback(self, callback):
self.interrupt_callback = callback
self._callbacks_changed = True
+
+ def _readMirrorList(self, fo):
+ """ read the mirror list from the specified file object """
+ returnlist = []
+
+ if fo is not None:
+ try:
+ content = fo.readlines()
+ except Exception, e:
+ print "Could not read mirrorlist %s error was \n%s" %(url, e)
+ content = ""
+ 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)
+ returnlist.append(mirror)
+
+ return returnlist
+
def _getMirrorList(self):
"""retrieve an up2date-style mirrorlist file from our mirrorlist url,
also save the file to the local repo dir and use that if cache expiry
@@ -1246,8 +1266,6 @@ class YumRepository(Repository, config.RepoConf):
we also s/$ARCH/$BASEARCH/ and move along
return the baseurls from the mirrorlist file
"""
- returnlist = []
-
self.mirrorlist_file = self.cachedir + '/' + 'mirrorlist.txt'
fo = None
@@ -1265,25 +1283,19 @@ class YumRepository(Repository, config.RepoConf):
except urlgrabber.grabber.URLGrabError, e:
print "Could not retrieve mirrorlist %s error was\n%s" % (url, e)
fo = None
-
- if fo is not None:
- try:
- content = fo.readlines()
- except Exception, e:
- print "Could not read mirrorlist %s error was \n%s" %(url, e)
- content = ""
- 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)
- returnlist.append(mirror)
+ returnlist = self._readMirrorList(fo)
+
+ if returnlist:
if not self.cache and not cacheok:
output = open(self.mirrorlist_file, 'w')
for line in content:
output.write(line)
output.close()
+ elif not cacheok and os.path.exists(self.mirrorlist_file):
+ # New mirror file failed, so use the old one (better than nothing)
+ os.utime(self.mirrorlist_file, None)
+ return self._readMirrorList(open(self.mirrorlist_file, 'r'))
return returnlist
commit 11f565a96c27ae3211492ebd3c53110701153152
Author: James Antill <james at and.org>
Date: Sun Jul 6 19:04:19 2008 -0400
When we are updating from foo.noarch to foo.i386/foo.x86_64 ... then
sort the available pkgs by ._compare_providers(). This does the consistently
corrct thing.
Also tweak the unittests to use os.uname()[-1] instead of
rpmutils.getBestArch().
make check now passes on .i386 and .x86_64 ... wooo!
diff --git a/test/depsolvetests.py b/test/depsolvetests.py
index 3f8c748..ca80d97 100644
--- a/test/depsolvetests.py
+++ b/test/depsolvetests.py
@@ -329,7 +329,7 @@ class DepsolveTests(DepsolveTests):
self.xsack.addPackage(xpo64)
self.assertEquals('ok', *self.resolveCode())
- if rpmUtils.arch.getBestArch() == 'x86_64':
+ if os.uname()[-1] == 'x86_64':
self.assertResult((po, xpo64))
else:
self.assertResult((po, xpo))
@@ -844,10 +844,7 @@ class DepsolveTests(DepsolveTests):
self.xsack.addPackage(po3)
self.assertEquals('ok', *self.resolveCode())
- # FIXME: This is wrong, it should be one of:
- # self.assertResult((xpo, po3))
- # self.assertResult((xpo, po2))
- self.assertResult((xpo, po2, po3))
+ self.assertResult((xpo, po3))
def testMultiPkgVersions4(self):
ipo1 = FakePackage('abcd', arch='i386')
diff --git a/test/simpleupdatetests.py b/test/simpleupdatetests.py
index fe4f414..9ee7ce0 100644
--- a/test/simpleupdatetests.py
+++ b/test/simpleupdatetests.py
@@ -100,7 +100,7 @@ class SimpleUpdateTests(OperationsTests):
p = self.pkgs
res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_noarch], [p.update_x86_64, p.update_i386, p.requires_update])
self.assert_(res=='ok', msg)
- if rpmUtils.arch.getBestArch() == 'x86_64':
+ if os.uname()[-1] == 'x86_64':
self.assertResult((p.update_x86_64, p.requires_update))
else:
self.assertResult((p.update_i386, p.requires_update))
@@ -108,7 +108,7 @@ class SimpleUpdateTests(OperationsTests):
p = self.pkgs
res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_noarch], [p.update_i386, p.update_x86_64, p.requires_update])
self.assert_(res=='ok', msg)
- if rpmUtils.arch.getBestArch() == 'x86_64':
+ if os.uname()[-1] == 'x86_64':
self.assertResult((p.update_x86_64, p.requires_update))
else:
self.assertResult((p.update_i386, p.requires_update))
diff --git a/yum/__init__.py b/yum/__init__.py
index de7782e..ce40791 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -2386,7 +2386,9 @@ class YumBase(depsolve.Depsolve):
availpkgs = self.pkgSack.searchNevra(name=nevra_dict['name'],
epoch=nevra_dict['epoch'], arch=nevra_dict['arch'],
ver=nevra_dict['version'], rel=nevra_dict['release'])
-
+ if len(availpkgs) > 1:
+ availpkgs = self._compare_providers(availpkgs, requiringPo)
+ availpkgs = map(lambda x: x[0], availpkgs)
# for any thing specified
commit 406e48c9701c37627749017768d9b26cf335d228
Author: James Antill <james at and.org>
Date: Sun Jul 6 19:00:36 2008 -0400
Do much faster pkgtup lookup, when checking if "req" providers are installed
diff --git a/yum/depsolve.py b/yum/depsolve.py
index fbc6d05..cb2546b 100644
--- a/yum/depsolve.py
+++ b/yum/depsolve.py
@@ -432,7 +432,7 @@ class Depsolve(object):
# get rid of things that are already in the rpmdb - b/c it's pointless to use them here
for pkg in provSack.returnPackages():
- if pkg.pkgtup in self.rpmdb.simplePkgList(): # is it already installed?
+ if self.rpmdb.contains(pkg.pkgtup): # is it already installed?
self.verbose_logger.log(logginglevels.DEBUG_2, _('%s is in providing packages but it is already installed, removing.'), pkg)
provSack.delPackage(pkg)
continue
commit 7362a3a800a724a9f24360c4844064b4b9cea21c
Author: James Antill <james at and.org>
Date: Sun Jul 6 17:59:28 2008 -0400
Fix the "make check" failures where empty sacks call returnNewestByName()
diff --git a/yum/packageSack.py b/yum/packageSack.py
index d3124e2..4bb57bf 100644
--- a/yum/packageSack.py
+++ b/yum/packageSack.py
@@ -376,7 +376,7 @@ class MetaSack(PackageSackBase):
calr = self._computeAggregateListResult
pkgs = calr("returnNewestByNameArch", naTup, patterns, ignore_case)
pkgs = packagesNewestByNameArch(pkgs)
- if not pkgs:
+ if not pkgs and (naTup or patterns):
ui_pats = ", ".join(patterns or [])
raise PackageSackError, 'No Package Matching %s' % ui_pats
return pkgs
@@ -388,7 +388,7 @@ class MetaSack(PackageSackBase):
pkgs = self._computeAggregateListResult("returnNewestByName", name,
patterns, ignore_case)
pkgs = packagesNewestByName(pkgs)
- if not pkgs:
+ if not pkgs and (name or patterns):
if name:
ui_pats = name
else:
commit 1c22c8421dbb7383f88a668a9bba91d6cb3b5940
Author: James Antill <james at and.org>
Date: Sun Jul 6 17:52:08 2008 -0400
Convert .EVR usage to .ver* ... stop making/destroying objects all the time.
diff --git a/cli.py b/cli.py
index b8575b9..4dc1772 100644
--- a/cli.py
+++ b/cli.py
@@ -980,17 +980,17 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
# go through each package
if len(comparable) > 0:
for instpo in comparable:
- if pkg.EVR > instpo.EVR: # we're newer - this is an update, pass to them
+ if pkg.verGT(instpo): # we're newer - this is an update, pass to them
if instpo.name in exactarchlist:
if pkg.arch == instpo.arch:
return True
else:
return True
- elif pkg.EVR == instpo.EVR: # same, ignore
+ elif pkg.verEQ(instpo): # same, ignore
return False
- elif pkg.EVR < instpo.EVR: # lesser, check if the pkgtup is an exactmatch
+ elif pkg.verLT(instpo): # lesser, check if the pkgtup is an exactmatch
# if so then add it to be installed
# if it can be multiply installed
# this is where we could handle setting
diff --git a/yum/__init__.py b/yum/__init__.py
index 0f24467..de7782e 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -2471,7 +2471,7 @@ class YumBase(depsolve.Depsolve):
# most likely correct
pot_updated = self.rpmdb.searchNevra(name=available_pkg.name, arch=available_pkg.arch)
for ipkg in pot_updated:
- if ipkg.EVR < available_pkg.EVR:
+ if ipkg.verLT(available_pkg):
txmbr = self.tsInfo.addUpdate(available_pkg, ipkg)
if requiringPo:
txmbr.setAsDep(requiringPo)
@@ -2583,7 +2583,7 @@ class YumBase(depsolve.Depsolve):
installpkgs.append(po)
for installed_pkg in installedByKey:
- if po.EVR > installed_pkg.EVR: # we're newer - this is an update, pass to them
+ if po.verGT(installed_pkg): # we're newer - this is an update, pass to them
if installed_pkg.name in self.conf.exactarchlist:
if po.arch == installed_pkg.arch:
updatepkgs.append((po, installed_pkg))
@@ -2591,7 +2591,7 @@ class YumBase(depsolve.Depsolve):
donothingpkgs.append(po)
else:
updatepkgs.append((po, installed_pkg))
- elif po.EVR == installed_pkg.EVR:
+ elif po.verEQ(installed_pkg):
if (po.arch != installed_pkg.arch and
(rpmUtils.arch.isMultiLibArch(po.arch) or
rpmUtils.arch.isMultiLibArch(installed_pkg.arch))):
diff --git a/yum/depsolve.py b/yum/depsolve.py
index dad4912..fbc6d05 100644
--- a/yum/depsolve.py
+++ b/yum/depsolve.py
@@ -447,18 +447,18 @@ class Depsolve(object):
# from ts
tspkgs = self.tsInfo.matchNaevr(name=pkg.name, arch=pkg.arch)
for tspkg in tspkgs:
- if tspkg.po.EVR > pkg.EVR:
+ if tspkg.po.verGT(pkg):
msg = _('Potential resolving package %s has newer instance in ts.') % pkg
self.verbose_logger.log(logginglevels.DEBUG_2, msg)
provSack.delPackage(pkg)
continue
- elif tspkg.po.EVR < pkg.EVR:
+ elif tspkg.po.verLT(pkg):
upgraded.setdefault(pkg.pkgtup, []).append(tspkg.pkgtup)
# from rpmdb
dbpkgs = self.rpmdb.searchNevra(name=pkg.name, arch=pkg.arch)
for dbpkg in dbpkgs:
- if dbpkg.EVR > pkg.EVR:
+ if dbpkg.verGT(pkg):
msg = _('Potential resolving package %s has newer instance installed.') % pkg
self.verbose_logger.log(logginglevels.DEBUG_2, msg)
provSack.delPackage(pkg)
diff --git a/yum/misc.py b/yum/misc.py
index cc7221b..5a59ee4 100644
--- a/yum/misc.py
+++ b/yum/misc.py
@@ -388,10 +388,10 @@ def newestInList(pkgs):
ret = [ pkgs.pop() ]
newest = ret[0]
for pkg in pkgs:
- if pkg.EVR > newest.EVR:
+ if pkg.verGT(newest):
ret = [ pkg ]
newest = pkg
- elif pkg.EVR == newest.EVR:
+ elif pkg.verEQ(newest):
ret.append(pkg)
return ret
diff --git a/yum/packageSack.py b/yum/packageSack.py
index b0e2a10..d3124e2 100644
--- a/yum/packageSack.py
+++ b/yum/packageSack.py
@@ -775,7 +775,7 @@ class PackageSack(PackageSackBase):
highdict[(pkg.name, pkg.arch)] = pkg
else:
pkg2 = highdict[(pkg.name, pkg.arch)]
- if pkg.EVR > pkg2.EVR:
+ if pkg.verGT(pkg2):
highdict[(pkg.name, pkg.arch)] = pkg
if naTup:
@@ -798,9 +798,9 @@ class PackageSack(PackageSackBase):
highdict[pkg.name].append(pkg)
else:
pkg2 = highdict[pkg.name][0]
- if pkg.EVR > pkg2.EVR:
+ if pkg.verGT(pkg2):
highdict[pkg.name] = [pkg]
- if pkg.EVR == pkg2.EVR:
+ if pkg.verEQ(pkg2):
highdict[pkg.name].append(pkg)
if name:
commit fafcdca0b103134b66efc0758872c631726b3653
Author: James Antill <james at and.org>
Date: Sun Jul 6 17:45:23 2008 -0400
Move from comparing version data in pkgs with __cmp__ to using verCMP/etc.
diff --git a/yum/__init__.py b/yum/__init__.py
index e10a80c..0f24467 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -1414,7 +1414,7 @@ class YumBase(depsolve.Depsolve):
available.append(pkg)
else:
ipkgs = self.rpmdb.searchNevra(pkg.name, arch=pkg.arch)
- if not ipkgs or pkg > sorted(ipkgs, reverse=True)[0]:
+ if not ipkgs or pkg.verGT(sorted(ipkgs, reverse=True)[0]):
available.append(pkg)
diff --git a/yum/packageSack.py b/yum/packageSack.py
index 75b883d..b0e2a10 100644
--- a/yum/packageSack.py
+++ b/yum/packageSack.py
@@ -23,7 +23,6 @@ import warnings
import re
import fnmatch
import misc
-import packages
class PackageSackBase(object):
"""Base class that provides the interface for PackageSacks."""
@@ -861,7 +860,7 @@ def packagesNewestByName(pkgs):
# Can't use pkg.__cmp__ because it takes .arch into account
cval = 1
if key in newest:
- cval = packages.comparePoEVR(pkg, newest[key][0])
+ cval = pkg.verCMP(newest[key][0])
if cval > 0:
newest[key] = [pkg]
elif cval == 0:
@@ -875,7 +874,7 @@ def packagesNewestByNameArch(pkgs):
newest = {}
for pkg in pkgs:
key = (pkg.name, pkg.arch)
- if key in newest and pkg <= newest[key]:
+ if key in newest and pkg.verLE(newest[key]):
continue
newest[key] = pkg
return newest.values()
commit 90d6fcab18952b36790be737526164c165b6ac53
Author: James Antill <james at and.org>
Date: Sun Jul 6 17:40:28 2008 -0400
Unicode fix for GPG key imports, bug#454163
diff --git a/yum/__init__.py b/yum/__init__.py
index d2d48db..e10a80c 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -2718,7 +2718,7 @@ class YumBase(depsolve.Depsolve):
rawkey = urlgrabber.urlread(keyurl, limit=9999)
except urlgrabber.grabber.URLGrabError, e:
raise Errors.YumBaseError(_('GPG key retrieval failed: ') +
- unicode(str(e), 'UTF-8', 'replace'))
+ to_unicode(str(e)))
# Parse the key
keys_info = misc.getgpgkeyinfo(rawkey, multiple=True)
@@ -2742,7 +2742,9 @@ class YumBase(depsolve.Depsolve):
continue
# Try installing/updating GPG key
- self.logger.critical(_('Importing GPG key 0x%s "%s" from %s') % (hexkeyid, userid, keyurl.replace("file://","")))
+ self.logger.critical(_('Importing GPG key 0x%s "%s" from %s') %
+ (hexkeyid, to_unicode(userid),
+ keyurl.replace("file://","")))
rc = False
if self.conf.assumeyes:
rc = True
commit c7c70148876d770a43ca1b22cbc93da1428912d2
Author: James Antill <james at and.org>
Date: Fri Jul 4 00:50:24 2008 -0400
Add versioned only comparison functions to the base package object
diff --git a/yum/packages.py b/yum/packages.py
index 169f30f..527b4a5 100644
--- a/yum/packages.py
+++ b/yum/packages.py
@@ -188,17 +188,40 @@ class PackageObject(object):
self.arch)
return out
- def __cmp__(self, other):
- """ Compare packages. """
+ def verCMP(self, other):
+ """ Compare package to another one, only rpm-version ordering. """
if not other:
return 1
ret = cmp(self.name, other.name)
if ret == 0:
ret = comparePoEVR(self, other)
+ return ret
+
+ def __cmp__(self, other):
+ """ Compare packages, this is just for UI/consistency. """
+ ret = self.verCMP(other)
if ret == 0:
ret = cmp(self.arch, other.arch)
+ if ret == 0 and hasattr(self, 'repoid') and hasattr(other, 'repoid'):
+ ret = cmp(self.repoid, other.repoid)
return ret
+ def verEQ(self, other):
+ """ Uses verCMP, tests if the _rpm-versions_ are the same. """
+ return self.verCMP(other) == 0
+ def verLT(self, other):
+ """ Uses verCMP, tests if the other _rpm-version_ is < ours. """
+ return self.verCMP(other) < 0
+ def verLE(self, other):
+ """ Uses verCMP, tests if the other _rpm-version_ is <= ours. """
+ return self.verCMP(other) <= 0
+ def verGT(self, other):
+ """ Uses verCMP, tests if the other _rpm-version_ is > ours. """
+ return self.verCMP(other) > 0
+ def verGE(self, other):
+ """ Uses verCMP, tests if the other _rpm-version_ is >= ours. """
+ return self.verCMP(other) >= 0
+
def __repr__(self):
return "<%s : %s (%s)>" % (self.__class__.__name__, str(self),hex(id(self)))
commit 78511a1949dc807a71b12c813204b3a2ba0578e4
Author: James Antill <james at and.org>
Date: Thu Jul 3 12:44:04 2008 -0400
Do real SQLite escaping, if required. Fixes search and list % _ usage
diff --git a/yum/__init__.py b/yum/__init__.py
index c8877fa..d2d48db 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -1530,14 +1530,12 @@ class YumBase(depsolve.Depsolve):
tmpres = []
real_crit = []
for s in criteria:
- if s.find('%') == -1:
- real_crit.append(s)
+ real_crit.append(s)
real_crit_lower = [] # Take the s.lower()'s out of the loop
rcl2c = {}
for s in criteria:
- if s.find('%') == -1:
- real_crit_lower.append(s.lower())
- rcl2c[s.lower()] = s
+ real_crit_lower.append(s.lower())
+ rcl2c[s.lower()] = s
for sack in self.pkgSack.sacks.values():
tmpres.extend(sack.searchPrimaryFieldsMultipleStrings(sql_fields, real_crit))
diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index a50b1a2..2949df4 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -436,6 +436,17 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
pkgs.append(self._packageByKey(repo, ob['pkgKey']))
return pkgs
+ @staticmethod
+ 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)
+
@catchSqliteException
def searchFiles(self, name, strict=False):
"""search primary if file will be in there, if not, search filelists, use globs, if possible"""
@@ -521,14 +532,15 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
return result
searchstring = searchstring.replace("'", "''")
- basestring="select DISTINCT pkgKey from packages where %s like '%%%s%%' " % (fields[0], searchstring)
+ (searchstring, esc) = self._sql_esc(searchstring)
+ sql = "select DISTINCT pkgKey from packages where %s like '%%%s%%'%s " % (fields[0], searchstring, esc)
for f in fields[1:]:
- basestring = "%s or %s like '%%%s%%' " % (basestring, f, searchstring)
+ sql = "%s or %s like '%%%s%%'%s " % (sql, f, searchstring, esc)
for (rep,cache) in self.primarydb.items():
cur = cache.cursor()
- executeSQL(cur, basestring)
+ executeSQL(cur, sql)
self._sql_pkgKey2po(rep, cur, result)
return result
@@ -546,7 +558,6 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
if len(searchstrings) > constants.PATTERNS_MAX:
tot = {}
for searchstring in searchstrings:
- searchstring = searchstring.replace("'", "''")
matches = self.searchPrimaryFields(fields, searchstring)
for po in matches:
tot[po] = tot.get(po, 0) + 1
@@ -564,13 +575,14 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
for s in searchstrings:
s = s.replace("'", "''")
- basestring="select pkgKey,1 AS cumul from packages where %s like '%%%s%%' " % (fields[0], s)
+ (s, esc) = self._sql_esc(s)
+ sql="select pkgKey,1 AS cumul from packages where %s like '%%%s%%'%s " % (fields[0], s, esc)
for f in fields[1:]:
- basestring = "%s or %s like '%%%s%%' " % (basestring, f, s)
- selects.append(basestring)
+ sql = "%s or %s like '%%%s%%'%s " % (sql, f, s, esc)
+ selects.append(sql)
totalstring = unionstring + " UNION ALL ".join(selects) + endunionstring
-
+
for (rep,cache) in self.primarydb.items():
cur = cache.cursor()
executeSQL(cur, totalstring)
@@ -1000,9 +1012,10 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
'sql_nameVer', 'sql_nameVerRel',
'sql_envra', 'sql_nevra']:
if ignore_case:
+ (pattern, esc) = self._sql_esc(pattern)
pattern = pattern.replace("*", "%")
pattern = pattern.replace("?", "_")
- pat_sqls.append("%s LIKE ?" % field)
+ pat_sqls.append("%s LIKE ?%s" % (field, esc))
else:
pat_sqls.append("%s GLOB ?" % field)
pat_data.append(pattern)
commit 2c6acb821f0fd53c0ed9add5d28fef79d44adc1f
Author: James Antill <james at and.org>
Date: Thu Jul 3 12:09:03 2008 -0400
Brown paper bag bug, typo in _packageByKeyData *sighs*
diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index c81963f..a50b1a2 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -386,10 +386,10 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
def _packageByKeyData(self, repo, pkgKey, data):
""" Like _packageByKey() but we already have the data for .pc() """
- if x['pkgKey'] not in self._key2pkg.get(repo, {}):
+ if data['pkgKey'] not in self._key2pkg.get(repo, {}):
po = self.pc(repo, data)
self._key2pkg.setdefault(repo, {})[pkgKey] = po
- return self._key2pkg[repo][x['pkgKey']]
+ return self._key2pkg[repo][data['pkgKey']]
def addDict(self, repo, datatype, dataobj, callback=None):
if self.added.has_key(repo):
commit 381348cc5c852b7b2f2367b20dd854fc16b3068f
Author: James Antill <james at and.org>
Date: Thu Jul 3 12:07:28 2008 -0400
Add an arg. so _sql_pkgKey2po can use Data, convert some callers to use it.
diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index d3ddca9..c81963f 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -424,13 +424,16 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
# this function is just silly and it reduces down to just this
return self.searchPrco(name, 'provides')
- def _sql_pkgKey2po(self, repo, cur, pkgs=None):
+ def _sql_pkgKey2po(self, repo, cur, pkgs=None, have_data=False):
""" Takes a cursor and maps the pkgKey rows into a list of packages. """
if pkgs is None: pkgs = []
for ob in cur:
if self._pkgKeyExcluded(repo, ob['pkgKey']):
continue
- pkgs.append(self._packageByKey(repo, ob['pkgKey']))
+ if have_data:
+ pkgs.append(self._packageByKeyData(repo, ob['pkgKey'], ob))
+ else:
+ pkgs.append(self._packageByKey(repo, ob['pkgKey']))
return pkgs
@catchSqliteException
@@ -763,23 +766,19 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
"""return a list of packages matching any of the given names. This is
only a match on package name, nothing else"""
+ pat_sqls = []
+ qsql = """select pkgId,pkgKey,name,epoch,version,release,arch
+ from packages where """
+ for name in names:
+ pat_sqls.append("name = ?")
+ qsql = qsql + " OR ".join(pat_sqls)
+
returnList = []
- for (repo,cache) in self.primarydb.items():
+ for (repo, cache) in self.primarydb.items():
cur = cache.cursor()
- pat_sqls = []
- qsql = """select pkgId,pkgKey,name,epoch,version,release,arch
- from packages where """
- for name in names:
- pat_sqls.append("name = ?")
- qsql = qsql + " OR ".join(pat_sqls)
- #print qsql
executeSQL(cur, qsql, list(names))
-
- for x in cur:
- po = self._packageByKeyData(repo, x['pkgKey'], x)
- if self._pkgExcluded(po):
- continue
- returnList.append(po)
+
+ self._sql_pkgKey2po(repo, cur, returnList, have_data=True)
return returnList
@@ -921,8 +920,8 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
allpkg = []
for (rep,cache) in self.primarydb.items():
cur = cache.cursor()
- executeSQL(cur, "select pkgKey from packages where name=? and arch=?",naTup)
- self._sql_pkgKey2po(rep, cur, allpkg)
+ executeSQL(cur, "select pkgId,pkgKey,name,epoch,version,release,arch from packages where name=? and arch=?", naTup)
+ self._sql_pkgKey2po(rep, cur, allpkg, have_data=True)
# if we've got zilch then raise
if not allpkg:
@@ -942,8 +941,8 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
allpkg = []
for (rep,cache) in self.primarydb.items():
cur = cache.cursor()
- executeSQL(cur, "select pkgKey from packages where name=?", (name,))
- self._sql_pkgKey2po(rep, cur, allpkg)
+ executeSQL(cur, "select pkgId,pkgKey,name,epoch,version,release,arch from packages where name=?", (name,))
+ self._sql_pkgKey2po(rep, cur, allpkg, have_data=True)
# if we've got zilch then raise
if not allpkg:
@@ -1058,7 +1057,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
return returnList
# make up our execute string
- q = "select pkgKey from packages WHERE"
+ q = "select pkgId,pkgKey,name,epoch,version,release,arch from packages WHERE"
for (col, var) in [('name', name), ('epoch', epoch), ('version', ver),
('arch', arch), ('release', rel)]:
if var:
@@ -1071,7 +1070,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
for (rep,cache) in self.primarydb.items():
cur = cache.cursor()
executeSQL(cur, q)
- self._sql_pkgKey2po(rep, cur, returnList)
+ self._sql_pkgKey2po(rep, cur, returnList, have_data=True)
return returnList
@catchSqliteException
commit 08f323275811a4590f11a561d1162b0eb9d11786
Author: James Antill <james at and.org>
Date: Thu Jul 3 12:00:45 2008 -0400
Add helper function to do self._packageByKey without the SQL lookup
diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index c0f8839..d3ddca9 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -373,6 +373,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
return self._pkgKeyExcluded(po.repo, po.pkgKey)
def _packageByKey(self, repo, pkgKey):
+ """ Lookup a pkg by it's pkgKey, if we don't have it load it """
if not self._key2pkg.has_key(repo):
self._key2pkg[repo] = {}
if not self._key2pkg[repo].has_key(pkgKey):
@@ -383,6 +384,13 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
self._key2pkg[repo][pkgKey] = po
return self._key2pkg[repo][pkgKey]
+ def _packageByKeyData(self, repo, pkgKey, data):
+ """ Like _packageByKey() but we already have the data for .pc() """
+ if x['pkgKey'] not in self._key2pkg.get(repo, {}):
+ po = self.pc(repo, data)
+ self._key2pkg.setdefault(repo, {})[pkgKey] = po
+ return self._key2pkg[repo][x['pkgKey']]
+
def addDict(self, repo, datatype, dataobj, callback=None):
if self.added.has_key(repo):
if datatype in self.added[repo]:
@@ -767,14 +775,8 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
#print qsql
executeSQL(cur, qsql, list(names))
-
for x in cur:
- if self._key2pkg.get(repo, {}).has_key(x['pkgKey']):
- po = self._key2pkg[repo][x['pkgKey']]
- else:
- po = self.pc(repo,x)
- self._key2pkg.setdefault(repo, {})[po.pkgKey] = po
-
+ po = self._packageByKeyData(repo, x['pkgKey'], x)
if self._pkgExcluded(po):
continue
returnList.append(po)
@@ -1009,11 +1011,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
qsql = _FULL_PARSE_QUERY_BEG + " OR ".join(pat_sqls)
executeSQL(cur, qsql, pat_data)
for x in cur:
- if self._key2pkg.get(repo, {}).has_key(x['pkgKey']):
- po = self._key2pkg[repo][x['pkgKey']]
- else:
- po = self.pc(repo,x)
- self._key2pkg.setdefault(repo, {})[po.pkgKey] = po
+ po = self._packageByKeyData(repo, x['pkgKey'], x)
returnList.append(po)
if not patterns:
self.pkgobjlist = returnList
commit acccc16583d452524566db198ded75b508f8363d
Author: James Antill <james at and.org>
Date: Thu Jul 3 11:47:43 2008 -0400
Add ignore_case with patterns argument, to fix commands (eg. list)
diff --git a/yum/__init__.py b/yum/__init__.py
index 016a0e9..c8877fa 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -1345,12 +1345,13 @@ class YumBase(depsolve.Depsolve):
recent = []
extras = []
+ ic = ignore_case
# list all packages - those installed and available, don't 'think about it'
if pkgnarrow == 'all':
dinst = {}
ndinst = {} # Newest versions by name.arch
for po in self.rpmdb.returnPackages(patterns=patterns,
- ignore_case=ignore_case):
+ ignore_case=ic):
dinst[po.pkgtup] = po;
if showdups:
continue
@@ -1360,10 +1361,12 @@ class YumBase(depsolve.Depsolve):
installed = dinst.values()
if showdups:
- avail = self.pkgSack.returnPackages(patterns=patterns)
+ avail = self.pkgSack.returnPackages(patterns=patterns,
+ ignore_case=ic)
else:
del dinst # Using ndinst instead
- avail = self.pkgSack.returnNewestByNameArch(patterns=patterns)
+ avail = self.pkgSack.returnNewestByNameArch(patterns=patterns,
+ ignore_case=ic)
for pkg in avail:
if showdups:
@@ -1393,15 +1396,17 @@ class YumBase(depsolve.Depsolve):
# installed only
elif pkgnarrow == 'installed':
installed = self.rpmdb.returnPackages(patterns=patterns,
- ignore_case=ignore_case)
+ ignore_case=ic)
# available in a repository
elif pkgnarrow == 'available':
if showdups:
- avail = self.pkgSack.returnPackages(patterns=patterns)
+ avail = self.pkgSack.returnPackages(patterns=patterns,
+ ignore_case=ic)
else:
- avail = self.pkgSack.returnNewestByNameArch(patterns=patterns)
+ avail = self.pkgSack.returnNewestByNameArch(patterns=patterns,
+ ignore_case=ic)
for pkg in avail:
if showdups:
@@ -1417,9 +1422,10 @@ class YumBase(depsolve.Depsolve):
elif pkgnarrow == 'extras':
# we must compare the installed set versus the repo set
# anything installed but not in a repo is an extra
- avail = self.pkgSack.simplePkgList(patterns=patterns)
+ avail = self.pkgSack.simplePkgList(patterns=patterns,
+ ignore_case=ic)
for po in self.rpmdb.returnPackages(patterns=patterns,
- ignore_case=ignore_case):
+ ignore_case=ic):
if po.pkgtup not in avail:
extras.append(po)
@@ -1441,9 +1447,11 @@ class YumBase(depsolve.Depsolve):
recentlimit = now-(self.conf.recent*86400)
ftimehash = {}
if showdups:
- avail = self.pkgSack.returnPackages(patterns=patterns)
+ avail = self.pkgSack.returnPackages(patterns=patterns,
+ ignore_case=ic)
else:
- avail = self.pkgSack.returnNewestByNameArch(patterns=patterns)
+ avail = self.pkgSack.returnNewestByNameArch(patterns=patterns,
+ ignore_case=ic)
for po in avail:
ftime = int(po.filetime)
diff --git a/yum/packageSack.py b/yum/packageSack.py
index 7368655..75b883d 100644
--- a/yum/packageSack.py
+++ b/yum/packageSack.py
@@ -130,24 +130,25 @@ class PackageSackBase(object):
"""delete a pkgobject"""
raise NotImplementedError()
- def returnPackages(self, repoid=None, patterns=None):
+ def returnPackages(self, repoid=None, patterns=None, ignore_case=False):
"""return list of all packages"""
raise NotImplementedError()
- def returnNewestByNameArch(self, naTup=None, patterns=None):
+ def returnNewestByNameArch(self, naTup=None,
+ patterns=None, ignore_case=False):
"""return list of newest packages based on name, arch matching
this means(in name.arch form): foo.i386 and foo.noarch are not
compared to each other for highest version only foo.i386 and
foo.i386 will be compared"""
raise NotImplementedError()
- def returnNewestByName(self, name=None):
+ def returnNewestByName(self, name=None, patterns=None, ignore_case=False):
"""return list of newest packages based on name matching
this means(in name.arch form): foo.i386 and foo.noarch will
be compared to each other for highest version"""
raise NotImplementedError()
- def simplePkgList(self, patterns=None):
+ def simplePkgList(self, patterns=None, ignore_case=False):
"""returns a list of pkg tuples (n, a, e, v, r)"""
raise NotImplementedError()
@@ -233,8 +234,6 @@ class PackageSackBase(object):
req[r] = set()
req[r].add(po)
-
-
for po in self.returnPackages(repoid=repoid):
preq = 0
for p in po.provides_names + po.filelist + po.dirlist + po.ghostlist:
@@ -361,38 +360,47 @@ class MetaSack(PackageSackBase):
obj.repo.sack.delPackage(obj)
- def returnPackages(self, repoid=None, patterns=None):
+ def returnPackages(self, repoid=None, patterns=None, ignore_case=False):
"""return list of all packages, takes optional repoid"""
if not repoid:
return self._computeAggregateListResult("returnPackages",
- None, patterns)
- return self.sacks[repoid].returnPackages(patterns=patterns)
+ None, patterns, ignore_case)
+ return self.sacks[repoid].returnPackages(patterns=patterns,
+ ignore_case=ignore_case)
- def returnNewestByNameArch(self, naTup=None, patterns=None):
+ def returnNewestByNameArch(self, naTup=None,
+ patterns=None, ignore_case=False):
"""return list of newest packages based on name, arch matching
this means(in name.arch form): foo.i386 and foo.noarch are not
compared to each other for highest version only foo.i386 and
foo.i386 will be compared"""
calr = self._computeAggregateListResult
- pkgs = calr("returnNewestByNameArch", naTup, patterns)
+ pkgs = calr("returnNewestByNameArch", naTup, patterns, ignore_case)
pkgs = packagesNewestByNameArch(pkgs)
if not pkgs:
- raise PackageSackError, 'No Package Matching %s' % ", ".join(patterns or [])
+ ui_pats = ", ".join(patterns or [])
+ raise PackageSackError, 'No Package Matching %s' % ui_pats
return pkgs
- def returnNewestByName(self, name=None):
+ def returnNewestByName(self, name=None, patterns=None, ignore_case=False):
"""return list of newest packages based on name matching
this means(in name.arch form): foo.i386 and foo.noarch will
be compared to each other for highest version"""
- pkgs = self._computeAggregateListResult("returnNewestByName", name)
+ pkgs = self._computeAggregateListResult("returnNewestByName", name,
+ patterns, ignore_case)
pkgs = packagesNewestByName(pkgs)
if not pkgs:
- raise PackageSackError, 'No Package Matching %s' % name
+ if name:
+ ui_pats = name
+ else:
+ ui_pats = ", ".join(patterns or [])
+ raise PackageSackError, 'No Package Matching %s' % ui_pats
return pkgs
- def simplePkgList(self, patterns=None):
+ def simplePkgList(self, patterns=None, ignore_case=False):
"""returns a list of pkg tuples (n, a, e, v, r)"""
- return self._computeAggregateListResult("simplePkgList", patterns)
+ return self._computeAggregateListResult("simplePkgList",
+ patterns, ignore_case)
def printPackages(self):
for sack in self.sacks.values():
@@ -730,7 +738,7 @@ class PackageSack(PackageSackBase):
if self.indexesBuilt:
self._delPackageFromIndex(obj)
- def returnPackages(self, repoid=None, patterns=None):
+ def returnPackages(self, repoid=None, patterns=None, ignore_case=False):
"""return list of all packages, takes optional repoid"""
returnList = []
if repoid is None:
@@ -745,7 +753,8 @@ class PackageSack(PackageSackBase):
return returnList
- def returnNewestByNameArch(self, naTup=None, patterns=None):
+ def returnNewestByNameArch(self, naTup=None,
+ patterns=None, ignore_case=False):
"""return list of newest packages based on name, arch matching
this means(in name.arch form): foo.i386 and foo.noarch are not
compared to each other for highest version only foo.i386 and
@@ -759,7 +768,8 @@ class PackageSack(PackageSackBase):
if (not where):
raise PackageSackError, 'No Package Matching %s.%s' % naTup
else:
- where = self.returnPackages(patterns=patterns)
+ where = self.returnPackages(patterns=patterns,
+ ignore_case=ignore_case)
for pkg in where:
if not highdict.has_key((pkg.name, pkg.arch)):
@@ -777,12 +787,13 @@ class PackageSack(PackageSackBase):
return highdict.values()
- def returnNewestByName(self, name=None, patterns=None):
+ def returnNewestByName(self, name=None, patterns=None, ignore_case=False):
"""return list of newest packages based on name matching
this means(in name.arch form): foo.i386 and foo.noarch will
be compared to each other for highest version"""
highdict = {}
- for pkg in self.returnPackages(patterns=patterns):
+ for pkg in self.returnPackages(patterns=patterns,
+ ignore_case=ignore_case):
if not highdict.has_key(pkg.name):
highdict[pkg.name] = []
highdict[pkg.name].append(pkg)
@@ -807,11 +818,12 @@ class PackageSack(PackageSackBase):
return returnlist
- def simplePkgList(self, patterns=None):
+ def simplePkgList(self, patterns=None, ignore_case=False):
"""returns a list of pkg tuples (n, a, e, v, r) optionally from a single repoid"""
# Don't cache due to excludes
- return [pkg.pkgtup for pkg in self.returnPackages(patterns=patterns)]
+ return [pkg.pkgtup for pkg in self.returnPackages(patterns=patterns,
+ ignore_case=False)]
def printPackages(self):
for pkg in self.returnPackages():
diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index 7f00c83..c0f8839 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -906,13 +906,14 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
return y
@catchSqliteException
- def returnNewestByNameArch(self, naTup=None, patterns=None):
+ def returnNewestByNameArch(self, naTup=None, patterns=None, ignore_case=False):
# If naTup is set do it from the database otherwise use our parent's
# returnNewestByNameArch
if (not naTup):
return yumRepo.YumPackageSack.returnNewestByNameArch(self, naTup,
- patterns)
+ patterns,
+ ignore_case)
# First find all packages that fulfill naTup
allpkg = []
@@ -927,11 +928,13 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
return misc.newestInList(allpkg)
@catchSqliteException
- def returnNewestByName(self, name=None):
+ def returnNewestByName(self, name=None, patterns=None, ignore_case=False):
# If name is set do it from the database otherwise use our parent's
# returnNewestByName
if (not name):
- return yumRepo.YumPackageSack.returnNewestByName(self, name)
+ return yumRepo.YumPackageSack.returnNewestByName(self, name,
+ patterns,
+ ignore_case)
# First find all packages that fulfill name
allpkg = []
@@ -974,7 +977,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
return exactmatch, matched, unmatched
@catchSqliteException
- def _buildPkgObjList(self, repoid=None, patterns=None):
+ def _buildPkgObjList(self, repoid=None, patterns=None, ignore_case=False):
"""Builds a list of packages, only containing nevra information. No
excludes are done at this stage. """
@@ -995,7 +998,12 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
for field in ['name', 'sql_nameArch', 'sql_nameVerRelArch',
'sql_nameVer', 'sql_nameVerRel',
'sql_envra', 'sql_nevra']:
- pat_sqls.append("%s GLOB ?" % field)
+ if ignore_case:
+ pattern = pattern.replace("*", "%")
+ pattern = pattern.replace("?", "_")
+ pat_sqls.append("%s LIKE ?" % field)
+ else:
+ pat_sqls.append("%s GLOB ?" % field)
pat_data.append(pattern)
if pat_sqls:
qsql = _FULL_PARSE_QUERY_BEG + " OR ".join(pat_sqls)
@@ -1011,7 +1019,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
self.pkgobjlist = returnList
return returnList
- def returnPackages(self, repoid=None, patterns=None):
+ def returnPackages(self, repoid=None, patterns=None, ignore_case=False):
"""Returns a list of packages, only containing nevra information. The
packages are processed for excludes. Note that patterns is just
a hint, we are free it ignore it. """
@@ -1028,7 +1036,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
if hasattr(self, 'pkgobjlist'):
pkgobjlist = self.pkgobjlist
else:
- pkgobjlist = self._buildPkgObjList(repoid, patterns)
+ pkgobjlist = self._buildPkgObjList(repoid, patterns, ignore_case)
returnList = []
for po in pkgobjlist:
commit ff779dff27cc680d5b1a155c41125a87ad7e4c10
Merge: 8d6dd2a... 1c62ccb...
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Thu Jul 3 11:40:05 2008 -0400
Merge branch 'yum-3_2_X' of ssh://login.linux.duke.edu/home/groups/yum/git/yum into yum-3_2_X
* 'yum-3_2_X' of ssh://login.linux.duke.edu/home/groups/yum/git/yum:
Fix doPackageLists() and rpmdb.returnPackages() to have ignore_case option.
Tidy up extra --version output, add rpm/etc. packages we dep. on
commit 8d6dd2add2a27479b4b4d2f93630283d4c28f296
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Thu Jul 3 11:39:46 2008 -0400
implement searchNames() to let you quickly do exact name matches of multiple names.
diff --git a/yum/packageSack.py b/yum/packageSack.py
index 8bc36f8..7368655 100644
--- a/yum/packageSack.py
+++ b/yum/packageSack.py
@@ -58,6 +58,9 @@ class PackageSackBase(object):
"""return list of pkgobjects matching the nevra requested"""
raise NotImplementedError()
+ def searchNames(self, names=[]):
+ raise NotImplementedError()
+
def searchPO(self, po):
"""return list of package objects matching the name, epoch, ver, rel,
arch of the package object passed in"""
@@ -291,6 +294,9 @@ class MetaSack(PackageSackBase):
"""return list of pkgobjects matching the nevra requested"""
return self._computeAggregateListResult("searchNevra", name, epoch, ver, rel, arch)
+ def searchNames(self, names=[]):
+ return self._computeAggregateListResult("searchNames", names)
+
def getProvides(self, name, flags=None, version=(None, None, None)):
"""return dict { packages -> list of matching provides }"""
return self._computeAggregateDictResult("getProvides", name, flags, version)
diff --git a/yum/rpmsack.py b/yum/rpmsack.py
index 7b08ab0..24cd96c 100644
--- a/yum/rpmsack.py
+++ b/yum/rpmsack.py
@@ -315,6 +315,11 @@ class RPMDBPackageSack(PackageSackBase):
if n > 0:
ret.append((self._makePackageObject(hdr, idx), n))
return ret
+ def searchNames(self, names=[]):
+ returnList = []
+ for name in names:
+ returnList.extend(self._search(name=name))
+ return returnList
def searchNevra(self, name=None, epoch=None, ver=None, rel=None, arch=None):
return self._search(name, epoch, ver, rel, arch)
diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index 90cdfb3..7f00c83 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -750,7 +750,37 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
def getRequires(self, name, flags=None, version=(None, None, None)):
return self._search("requires", name, flags, version)
-
+ @catchSqliteException
+ def searchNames(self, names):
+ """return a list of packages matching any of the given names. This is
+ only a match on package name, nothing else"""
+
+ returnList = []
+ for (repo,cache) in self.primarydb.items():
+ cur = cache.cursor()
+ pat_sqls = []
+ qsql = """select pkgId,pkgKey,name,epoch,version,release,arch
+ from packages where """
+ for name in names:
+ pat_sqls.append("name = ?")
+ qsql = qsql + " OR ".join(pat_sqls)
+ #print qsql
+ executeSQL(cur, qsql, list(names))
+
+
+ for x in cur:
+ if self._key2pkg.get(repo, {}).has_key(x['pkgKey']):
+ po = self._key2pkg[repo][x['pkgKey']]
+ else:
+ po = self.pc(repo,x)
+ self._key2pkg.setdefault(repo, {})[po.pkgKey] = po
+
+ if self._pkgExcluded(po):
+ continue
+ returnList.append(po)
+
+ return returnList
+
@catchSqliteException
def searchPrco(self, name, prcotype):
"""return list of packages having prcotype name (any evr and flag)"""
commit 1c62ccb91f83091b10b6a89287a5a05c01ee3d29
Author: James Antill <james at and.org>
Date: Tue Jul 1 13:55:06 2008 -0400
Fix doPackageLists() and rpmdb.returnPackages() to have ignore_case option.
diff --git a/cli.py b/cli.py
index d0f0342..b8575b9 100644
--- a/cli.py
+++ b/cli.py
@@ -671,8 +671,8 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
if extcmds[0] in special:
pkgnarrow = extcmds.pop(0)
- ypl = self.doPackageLists(pkgnarrow=pkgnarrow, patterns=extcmds)
-
+ ypl = self.doPackageLists(pkgnarrow=pkgnarrow, patterns=extcmds,
+ ignore_case=True)
# rework the list output code to know about:
# obsoletes output
# the updates format
diff --git a/yum/__init__.py b/yum/__init__.py
index bcdab95..016a0e9 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -1329,7 +1329,8 @@ class YumBase(depsolve.Depsolve):
msg = _('%d %s files removed') % (removed, filetype)
return 0, [msg]
- def doPackageLists(self, pkgnarrow='all', patterns=None, showdups=None):
+ def doPackageLists(self, pkgnarrow='all', patterns=None, showdups=None,
+ ignore_case=False):
"""generates lists of packages, un-reduced, based on pkgnarrow option"""
if showdups is None:
@@ -1348,7 +1349,8 @@ class YumBase(depsolve.Depsolve):
if pkgnarrow == 'all':
dinst = {}
ndinst = {} # Newest versions by name.arch
- for po in self.rpmdb.returnPackages(patterns=patterns):
+ for po in self.rpmdb.returnPackages(patterns=patterns,
+ ignore_case=ignore_case):
dinst[po.pkgtup] = po;
if showdups:
continue
@@ -1390,7 +1392,8 @@ class YumBase(depsolve.Depsolve):
# installed only
elif pkgnarrow == 'installed':
- installed = self.rpmdb.returnPackages(patterns=patterns)
+ installed = self.rpmdb.returnPackages(patterns=patterns,
+ ignore_case=ignore_case)
# available in a repository
elif pkgnarrow == 'available':
@@ -1415,7 +1418,8 @@ class YumBase(depsolve.Depsolve):
# we must compare the installed set versus the repo set
# anything installed but not in a repo is an extra
avail = self.pkgSack.simplePkgList(patterns=patterns)
- for po in self.rpmdb.returnPackages(patterns=patterns):
+ for po in self.rpmdb.returnPackages(patterns=patterns,
+ ignore_case=ignore_case):
if po.pkgtup not in avail:
extras.append(po)
@@ -1462,7 +1466,6 @@ class YumBase(depsolve.Depsolve):
ygh.recent = recent
ygh.extras = extras
-
return ygh
diff --git a/yum/rpmsack.py b/yum/rpmsack.py
index 7b08ab0..ead2a9f 100644
--- a/yum/rpmsack.py
+++ b/yum/rpmsack.py
@@ -255,17 +255,21 @@ class RPMDBPackageSack(PackageSackBase):
return misc.newestInList(allpkgs)
@staticmethod
- def _compile_patterns(patterns):
+ def _compile_patterns(patterns, ignore_case=False):
if not patterns or len(patterns) > constants.PATTERNS_MAX:
return None
ret = []
for pat in patterns:
- ret.append(re.compile(fnmatch.translate(pat)))
+ if ignore_case:
+ ret.append(re.compile(fnmatch.translate(pat), re.I))
+ else:
+ ret.append(re.compile(fnmatch.translate(pat)))
return ret
@staticmethod
def _match_repattern(repatterns, hdr):
if repatterns is None:
return True
+
for repat in repatterns:
if repat.match(hdr['name']):
return True
@@ -285,9 +289,9 @@ class RPMDBPackageSack(PackageSackBase):
return True
return False
- def returnPackages(self, repoid=None, patterns=None):
+ def returnPackages(self, repoid=None, patterns=None, ignore_case=False):
if not self._completely_loaded:
- rpats = self._compile_patterns(patterns)
+ rpats = self._compile_patterns(patterns, ignore_case)
for hdr, idx in self._all_packages():
if self._match_repattern(rpats, hdr):
self._makePackageObject(hdr, idx)
commit eeba3000f1dac4fefde334860e450eaf95907aa3
Author: James Antill <james at and.org>
Date: Tue Jul 1 13:35:42 2008 -0400
Tidy up extra --version output, add rpm/etc. packages we dep. on
diff --git a/cli.py b/cli.py
index 34c2513..d0f0342 100644
--- a/cli.py
+++ b/cli.py
@@ -198,14 +198,28 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
if opts.version:
self.conf.cache = 1
- for pkg in self.rpmdb.returnPackages(patterns=['yum']):
- # We should only have 1 return...
- print _(" Installed version: %s") % pkg
- print _(" Committer : %s") % pkg.committer
- print _(" Committime : %s") % time.ctime(pkg.committime)
- print _(" Buildtime : %s") % time.ctime(pkg.buildtime)
- if hasattr(pkg, 'installtime'):
- print _(" Installtime : %s") % time.ctime(pkg.installtime)
+ yum_progs = ['yum', 'yum-metadata-parser', 'rpm',
+ 'yum-rhn-plugin']
+ done = False
+ def sm_ui_time(x):
+ return time.strftime("%Y-%m-%d %H:%M", time.gmtime(x))
+ for pkg in self.rpmdb.returnPackages(patterns=yum_progs):
+ # We should only have 1 version of each...
+ if done: print ""
+ done = True
+ if pkg.epoch == '0':
+ ver = '%s-%s.%s' % (pkg.version, pkg.release, pkg.arch)
+ else:
+ ver = '%s:%s-%s.%s' % (pkg.epoch,
+ pkg.version, pkg.release, pkg.arch)
+ name = "%s%s%s" % (self.term.MODE['bold'], pkg.name,
+ self.term.MODE['normal'])
+ print _(" Installed: %s-%s at %s") %(name, ver,
+ sm_ui_time(pkg.installtime))
+ print _(" Built : %s at %s") % (pkg.packager,
+ sm_ui_time(pkg.buildtime))
+ print _(" Committed: %s at %s") % (pkg.committer,
+ sm_ui_time(pkg.committime))
sys.exit(0)
if opts.sleeptime is not None:
commit 62ea2739285ab14df7ce813f0f3c7bb75de24be0
Author: James Antill <james at and.org>
Date: Mon Jun 30 18:43:59 2008 -0400
Add installed yum info. to --version
diff --git a/cli.py b/cli.py
index 1672123..34c2513 100644
--- a/cli.py
+++ b/cli.py
@@ -161,7 +161,8 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
# Just print out the version if that's what the user wanted
if opts.version:
print yum.__version__
- sys.exit(0)
+ opts.quiet = True
+ opts.verbose = False
# get the install root to use
root = self.optparser.getRoot(opts)
@@ -195,6 +196,18 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
# apply some of the options to self.conf
(opts, self.cmds) = self.optparser.setupYumConfig()
+ if opts.version:
+ self.conf.cache = 1
+ for pkg in self.rpmdb.returnPackages(patterns=['yum']):
+ # We should only have 1 return...
+ print _(" Installed version: %s") % pkg
+ print _(" Committer : %s") % pkg.committer
+ print _(" Committime : %s") % time.ctime(pkg.committime)
+ print _(" Buildtime : %s") % time.ctime(pkg.buildtime)
+ if hasattr(pkg, 'installtime'):
+ print _(" Installtime : %s") % time.ctime(pkg.installtime)
+ sys.exit(0)
+
if opts.sleeptime is not None:
sleeptime = random.randrange(opts.sleeptime*60)
else:
commit 5e4d89125274b226d54f21aad25fc4ca583624f4
Author: James Antill <james at and.org>
Date: Mon Jun 30 18:41:01 2008 -0400
Use normal packaging sorting in simpleList()
diff --git a/output.py b/output.py
index 44600ce..6d9006d 100644
--- a/output.py
+++ b/output.py
@@ -334,8 +334,7 @@ class YumOutput:
if len(lst) > 0:
thingslisted = 1
print '%s' % description
- lst.sort(sortPkgObj)
- for pkg in lst:
+ for pkg in sorted(lst):
if outputType == 'list':
self.simpleList(pkg, ui_overflow=True)
elif outputType == 'info':
commit 34b67decde4403258c00063a799fe0454bee2afa
Author: Tim Lauridsen <tla at rasmil.dk>
Date: Wed Jun 25 20:43:09 2008 +0200
Add a testcase for the libBCD case studie, just for the fun of it
diff --git a/test/misc-tests.py b/test/misc-tests.py
new file mode 100644
index 0000000..4709ce1
--- /dev/null
+++ b/test/misc-tests.py
@@ -0,0 +1,124 @@
+import unittest
+import logging
+import sys
+from testbase import *
+
+class MiscTests(DepsolveTests):
+ ''' Test cases to test skip-broken'''
+
+ def setUp(self):
+ DepsolveTests.setUp(self)
+ self.xrepo = FakeRepo("TestRepository", self.xsack)
+ setup_logging()
+
+ def repoPackage(self, name, version='1', release='0', epoch='0', arch='noarch'):
+ po = FakePackage(name, version, release, epoch, arch, repo=self.xrepo)
+ self.xsack.addPackage(po)
+ return po
+
+ def instPackage(self, name, version='1', release='0', epoch='0', arch='noarch'):
+ po = FakePackage(name, version, release, epoch, arch, repo=self.repo)
+ self.rpmdb.addPackage(po)
+ return po
+
+
+ def testLibBCD(self):
+ '''
+ The libABC test
+ http://svn.labix.org/smart/trunk/README
+ (Case Studies - Case 2)
+
+ The issue is, a package named `A` requires package `BCD` explicitly, and
+ RPM detects implicit dependencies between `A` and `libB`, `libC`, and `libD`.
+ Package `BCD` provides `libB`, `libC`, and `libD`, but additionally there
+ is a package `B` providing `libB`, a package `C` providing `libC`, and
+ a package `D` providing `libD`.
+
+ In other words, there's a package `A` which requires four different symbols,
+ and one of these symbols is provided by a single package `BCD`, which happens
+ to provide all symbols needed by `A`. There are also packages `B`, `C`, and `D`,
+ that provide some of the symbols required by `A`, but can't satisfy all
+ dependencies without `BCD`.
+
+ The expected behavior for an operation asking to install `A` is obviously
+ selecting `BCD` to satisfy `A`'s dependencies
+
+ This fails in yum because, yum selects the packages with the shortest name
+ if multiple packages provides the same requirements
+
+ '''
+ A = self.repoPackage('A', '1',arch='i386')
+ A.addRequires('LibB')
+ A.addRequires('LibC')
+ A.addRequires('LibD')
+ A.addRequires('BCD')
+ BCD = self.repoPackage('BCD', '1',arch='i386')
+ BCD.addProvides('LibB')
+ BCD.addProvides('LibC')
+ BCD.addProvides('LibD')
+ B = self.repoPackage('B', '1',arch='i386')
+ B.addProvides('LibB')
+ C = self.repoPackage('C', '1',arch='i386')
+ C.addProvides('LibC')
+ D = self.repoPackage('D', '1',arch='i386')
+ D.addProvides('LibD')
+ self.tsInfo.addInstall(A)
+ self.assertEquals('ok', *self.resolveCode(skip=False))
+ # This one is disabled because, we no it fails, but we dont want it to bail out in the each testcase run
+ # Just enable it to do the test
+ # self.assertResult([A,BCD])
+
+ def testLibBCD2(self):
+ '''
+ Same as above, but in this cases it is ok, because the BCD names is shorter than LibB,LibC and LibD
+ '''
+ A = self.repoPackage('A', '1',arch='i386')
+ A.addRequires('LibB')
+ A.addRequires('LibC')
+ A.addRequires('LibD')
+ A.addRequires('BCD')
+ BCD = self.repoPackage('BCD', '1',arch='i386')
+ BCD.addProvides('LibB')
+ BCD.addProvides('LibC')
+ BCD.addProvides('LibD')
+ B = self.repoPackage('LibB', '1',arch='i386')
+ B.addProvides('LibB')
+ C = self.repoPackage('LibC', '1',arch='i386')
+ C.addProvides('LibC')
+ D = self.repoPackage('LibD', '1',arch='i386')
+ D.addProvides('LibD')
+ self.tsInfo.addInstall(A)
+ self.assertEquals('ok', *self.resolveCode(skip=False))
+ self.assertResult([A,BCD])
+
+ def resolveCode(self,skip = False):
+ solver = YumBase()
+ solver.conf = FakeConf()
+ solver.conf.skip_broken = skip
+ solver.tsInfo = solver._tsInfo = self.tsInfo
+ solver.rpmdb = self.rpmdb
+ solver.pkgSack = self.xsack
+
+ for po in self.rpmdb:
+ po.repoid = po.repo.id = "installed"
+ for po in self.xsack:
+ po.repoid = po.repo.id = "TestRepository"
+ for txmbr in solver.tsInfo:
+ if txmbr.ts_state in ('u', 'i'):
+ txmbr.po.repoid = txmbr.po.repo.id = "TestRepository"
+ else:
+ txmbr.po.repoid = txmbr.po.repo.id = "installed"
+
+ res, msg = solver.buildTransaction()
+ return self.res[res], msg
+
+def setup_logging():
+ logging.basicConfig()
+ plainformatter = logging.Formatter("%(message)s")
+ console_stdout = logging.StreamHandler(sys.stdout)
+ console_stdout.setFormatter(plainformatter)
+ verbose = logging.getLogger("yum.verbose")
+ verbose.propagate = False
+ verbose.addHandler(console_stdout)
+ verbose.setLevel(2)
+
diff --git a/test/skipbroken-tests.py b/test/skipbroken-tests.py
index e15ae56..f308fdd 100644
--- a/test/skipbroken-tests.py
+++ b/test/skipbroken-tests.py
@@ -359,8 +359,7 @@ class SkipBrokenTests(DepsolveTests):
self.assertEquals('empty', *self.resolveCode(skip=True))
self.assertResult([ipo1,ipo2])
-
-
+
def resolveCode(self,skip = False):
solver = YumBase()
solver.conf = FakeConf()
commit 14d1fa3db112f7f93ee9b41b74085110e10b9f73
Author: James Antill <james at and.org>
Date: Tue Jun 24 17:23:54 2008 -0400
Make sure we only consider the newest names, among all the arch varients
diff --git a/yum/__init__.py b/yum/__init__.py
index bbf3df8..bcdab95 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -53,7 +53,7 @@ from parser import ConfigPreProcessor
import transactioninfo
import urlgrabber
from urlgrabber.grabber import URLGrabError
-from packageSack import packagesNewestByNameArch
+from packageSack import packagesNewestByNameArch, packagesNewestByName
import depsolve
import plugins
import logginglevels
@@ -2034,11 +2034,24 @@ class YumBase(depsolve.Depsolve):
if len(pkglist) == 1:
return pkglist[0]
-
- bestlist = packagesNewestByNameArch(pkglist)
-
- best = bestlist[0]
- for pkg in bestlist[1:]:
+
+ bestlist = packagesNewestByNameArch(pkglist)
+ # Here we need the list of the latest version of each package
+ # the problem we are trying to fix is: ABC-1.2.i386 and ABC-1.3.noarch
+ # so in the above we need to "exclude" ABC < 1.3, which is done by
+ # making another list from newest by name and then make sure any pkg is
+ # in nbestlist.
+ nbestlist = packagesNewestByName(bestlist)
+
+ best = nbestlist[0]
+ nbestlist = set(nbestlist)
+ for pkg in bestlist:
+ if pkg == best:
+ continue
+ if pkg not in nbestlist:
+ continue
+
+ # This is basically _compare_providers() ... but without a reqpo
if len(pkg.name) < len(best.name): # shortest name silliness
best = pkg
continue
commit 40471d1d681f62415487def517ac90f253fafa9b
Author: James Antill <james at and.org>
Date: Tue Jun 24 17:21:26 2008 -0400
Fix packagesNewestByName() to use comparePoEVR as pkg.__cmp__ uses .arch info.
thus we'd only get one pkg from the alph sorted arch.
kind of a weird interface, not quite the "same" as packageNewestByNameArch()
diff --git a/yum/packageSack.py b/yum/packageSack.py
index 53cfced..8bc36f8 100644
--- a/yum/packageSack.py
+++ b/yum/packageSack.py
@@ -23,6 +23,7 @@ import warnings
import re
import fnmatch
import misc
+import packages
class PackageSackBase(object):
"""Base class that provides the interface for PackageSacks."""
@@ -838,11 +839,14 @@ def packagesNewestByName(pkgs):
newest = {}
for pkg in pkgs:
key = pkg.name
- if key not in newest or pkg > newest[key][0]:
+
+ # Can't use pkg.__cmp__ because it takes .arch into account
+ cval = 1
+ if key in newest:
+ cval = packages.comparePoEVR(pkg, newest[key][0])
+ if cval > 0:
newest[key] = [pkg]
- elif pkg < newest[key][0]:
- continue
- else:
+ elif cval == 0:
newest[key].append(pkg)
ret = []
for vals in newest.itervalues():
commit b4697ec87b62c00958059cc5119e762b050a3f2e
Author: James Antill <james at and.org>
Date: Tue Jun 24 12:58:11 2008 -0400
Allow noarch packages when in multilib_policy=best
diff --git a/yum/__init__.py b/yum/__init__.py
index 17f0664..bbf3df8 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -2198,8 +2198,10 @@ class YumBase(depsolve.Depsolve):
pkgs_by_name = {}
use = []
not_added = []
+ best = rpmUtils.arch.legitMultiArchesInSameLib()
+ best.append('noarch')
for pkg in pkgs:
- if pkg.arch in rpmUtils.arch.legitMultiArchesInSameLib():
+ if pkg.arch in best:
pkgs_by_name[pkg.name] = 1
use.append(pkg)
else:
commit c48c0b749ece669bf7b548240ab4cb59d294fa28
Author: Florian Festi <ffesti at redhat.com>
Date: Mon Jun 23 17:23:24 2008 +0200
Fix unicode traceback
If error message contains non UTF-8 characters yum bails out in this line
May be this should (also) be fixed in the rpmlib Python bindings.
diff --git a/cli.py b/cli.py
index cb16e76..1672123 100644
--- a/cli.py
+++ b/cli.py
@@ -402,7 +402,7 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
if len(tserrors) > 0:
errstring = _('Transaction Check Error:\n')
for descr in tserrors:
- errstring += ' %s\n' % descr
+ errstring += ' %s\n' % to_unicode(descr)
raise yum.Errors.YumBaseError, errstring + '\n' + \
self.errorSummary(errstring)
commit 71bc919fc9bb14487e5b26c8e349944814b02e99
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Fri Jun 20 15:11:44 2008 -0400
make sure url's end in '/' otherwise our urlparse.urljoin() won't be correct
diff --git a/yum/yumRepo.py b/yum/yumRepo.py
index b3c07ba..818c669 100644
--- a/yum/yumRepo.py
+++ b/yum/yumRepo.py
@@ -528,6 +528,8 @@ class YumRepository(Repository, config.RepoConf):
skipped = None
for url in url_list:
url = parser.varReplace(url, self.yumvar)
+ if url[-1] != '/':
+ url= url + '/'
(s,b,p,q,f,o) = urlparse.urlparse(url)
if s not in ['http', 'ftp', 'file', 'https']:
skipped = url
commit 9e6cddea05c6ec25b2174428f55b751f556c4f9a
Author: James Antill <james at and.org>
Date: Mon Jun 16 00:59:48 2008 -0400
Re-align the total progress after each download, in case of errors+no-size
diff --git a/yum/__init__.py b/yum/__init__.py
index 3fcfebd..17f0664 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -1088,6 +1088,7 @@ class YumBase(depsolve.Depsolve):
len(remote_pkgs) > 1):
urlgrabber.progress.text_meter_total_size(remote_size)
i = 0
+ local_size = 0
for po in remote_pkgs:
i += 1
checkfunc = (self.verifyPkg, (po, 1), {})
@@ -1105,6 +1106,10 @@ class YumBase(depsolve.Depsolve):
text=text,
cache=po.repo.http_caching != 'none',
)
+ local_size += po.size
+ if hasattr(urlgrabber.progress, 'text_meter_total_size'):
+ urlgrabber.progress.text_meter_total_size(remote_size,
+ local_size)
except Errors.RepoError, e:
adderror(po, str(e))
else:
commit 8cdd213b5761be1cb41b28e3409e7055f04f0a7a
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Fri Jun 13 17:08:44 2008 -0400
make the logging call correct for 3.2.X
diff --git a/yum/__init__.py b/yum/__init__.py
index 1fe5378..3fcfebd 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -2540,7 +2540,7 @@ class YumBase(depsolve.Depsolve):
# FIXME -our archlist should be stored somewhere so we don't have to
# do this: but it's not a config file sort of thing
if po.arch not in rpmUtils.arch.getArchList():
- critical(_('Cannot add package %s to transaction. Not a compatible architecture: %s'), pkg, po.arch)
+ self.logger.critical(_('Cannot add package %s to transaction. Not a compatible architecture: %s'), pkg, po.arch)
return result
# everything installed that matches the name
commit a7ca0463e4c5148862536fe2cc151fff9c91683a
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Fri Jun 13 16:56:45 2008 -0400
make sure we don't accidentally install any incompatible architectures (especially things
like local-install src rpms)
diff --git a/yum/__init__.py b/yum/__init__.py
index b9bdabc..1fe5378 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -2536,6 +2536,13 @@ class YumBase(depsolve.Depsolve):
self.verbose_logger.log(logginglevels.INFO_2,
_('Examining %s: %s'), po.localpath, po)
+ # if by any chance we're a noncompat arch rpm - bail and throw out an error
+ # FIXME -our archlist should be stored somewhere so we don't have to
+ # do this: but it's not a config file sort of thing
+ if po.arch not in rpmUtils.arch.getArchList():
+ critical(_('Cannot add package %s to transaction. Not a compatible architecture: %s'), pkg, po.arch)
+ return result
+
# everything installed that matches the name
installedByKey = self.rpmdb.searchNevra(name=po.name)
# go through each package
commit 08d9a589e01eb6f730e6f72f283c476082f9a792
Author: Jeremy Katz <katzj at redhat.com>
Date: Thu Jun 12 15:04:55 2008 -0400
Give a nicer error message if there are no groups configured (#446613)
diff --git a/yum/__init__.py b/yum/__init__.py
index eabba4a..b9bdabc 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -1720,6 +1720,9 @@ class YumBase(depsolve.Depsolve):
installed = []
available = []
+
+ if self.comps.compscount == 0:
+ raise Errors.GroupsError, _('No group data available for configured repositories')
for grp in self.comps.groups:
if grp.installed:
commit c8eb7730c9e68d92b194a2d82565df11824a7910
Author: Jeremy Katz <katzj at redhat.com>
Date: Thu Jun 12 14:43:29 2008 -0400
Log formatters use localized bits, but logs should use C locale (#433091)
diff --git a/yummain.py b/yummain.py
index 15b505d..2935fb6 100755
--- a/yummain.py
+++ b/yummain.py
@@ -38,6 +38,8 @@ def main(args):
# does setlocale(LC_CTYPE, "")
try:
locale.setlocale(locale.LC_ALL, '')
+ # set time to C so that we output sane things in the logs (#433091)
+ locale.setlocale(locale.LC_TIME, 'C')
except locale.Error, e:
# default to C locale if we get a failure.
print >> sys.stderr, 'Failed to set locale, defaulting to C'
commit 356e9ef513f59614251156ed95bc609e4510df72
Author: James Antill <james at and.org>
Date: Thu Jun 12 00:54:35 2008 -0400
rm extra space
diff --git a/output.py b/output.py
index 00b9020..44600ce 100644
--- a/output.py
+++ b/output.py
@@ -501,13 +501,13 @@ class YumOutput:
key = _("Description : ")
item = self._enc(item)
elif po.url == item:
- key = _("URL : %s")
+ key = _("URL : %s")
can_overflow = False
elif po.license == item:
- key = _("License : %s")
+ key = _("License : %s")
can_overflow = False
elif item.startswith("/"):
- key = _("Filename : %s")
+ key = _("Filename : %s")
item = self._enc(item)
can_overflow = False
else:
commit ea02674600a2281ba4cde55fc4f210312366bb6a
Author: James Antill <james at and.org>
Date: Wed Jun 11 13:31:12 2008 -0400
Fix seth's fix, of my fix, ... :)
diff --git a/yum/packageSack.py b/yum/packageSack.py
index a2b32f5..53cfced 100644
--- a/yum/packageSack.py
+++ b/yum/packageSack.py
@@ -370,7 +370,7 @@ class MetaSack(PackageSackBase):
pkgs = calr("returnNewestByNameArch", naTup, patterns)
pkgs = packagesNewestByNameArch(pkgs)
if not pkgs:
- raise Errors.PackageSackError, 'No Package Matching %s' % name
+ raise PackageSackError, 'No Package Matching %s' % ", ".join(patterns or [])
return pkgs
def returnNewestByName(self, name=None):
@@ -380,7 +380,7 @@ class MetaSack(PackageSackBase):
pkgs = self._computeAggregateListResult("returnNewestByName", name)
pkgs = packagesNewestByName(pkgs)
if not pkgs:
- raise Errors.PackageSackError, 'No Package Matching %s' % name
+ raise PackageSackError, 'No Package Matching %s' % name
return pkgs
def simplePkgList(self, patterns=None):
commit 99adc06c5df56022812ba7537ba476067c8f7a7c
Author: James Antill <james at and.org>
Date: Wed Jun 11 13:28:13 2008 -0400
More merges from the logging branch.
Fix the "yum list php-pear-Str*" problem.
Do the specspo. lookup/encoding for verbose matchcallback.
Minor UI tweak for verbose matchcallback.
diff --git a/output.py b/output.py
index 6587da8..00b9020 100644
--- a/output.py
+++ b/output.py
@@ -29,6 +29,7 @@ import re # For YumTerm
from urlgrabber.progress import TextMeter
from urlgrabber.grabber import URLGrabError
from yum.misc import sortPkgObj, prco_tuple_to_string, to_str, to_unicode, get_my_lang_code
+import yum.misc
from rpmUtils.miscutils import checkSignals
from yum.constants import *
@@ -243,13 +244,14 @@ class YumOutput:
def simpleProgressBar(self, current, total, name=None):
progressbar(current, total, name)
- def simpleList(self, pkg):
+ def simpleList(self, pkg, ui_overflow=False):
ver = pkg.printVer()
na = '%s.%s' % (pkg.name, pkg.arch)
-
+ if ui_overflow and len(na) > 40:
+ print "%s %s" % (na, "...")
+ na = ""
print "%-40.40s %-22.22s %-16.16s" % (na, ver, pkg.repoid)
-
def fmtKeyValFill(self, key, val):
""" Return a key value pair in the common two column output format. """
val = to_str(val)
@@ -276,20 +278,20 @@ class YumOutput:
return "%s %s %s" % (beg, name, end)
+ def _enc(self, s):
+ """Get the translated version from specspo and ensure that
+ it's actually encoded in UTF-8."""
+ if type(s) == unicode:
+ s = s.encode("UTF-8")
+ if len(s) > 0:
+ for d in self.i18ndomains:
+ t = gettext.dgettext(d, s)
+ if t != s:
+ s = t
+ break
+ return to_unicode(s)
+
def infoOutput(self, pkg):
- def enc(s):
- """Get the translated version from specspo and ensure that
- it's actually encoded in UTF-8."""
- if type(s) == unicode:
- s = s.encode("UTF-8")
- if len(s) > 0:
- for d in self.i18ndomains:
- t = gettext.dgettext(d, s)
- if t != s:
- s = t
- break
- s = unicode(s, "UTF-8")
- return s
print _("Name : %s") % pkg.name
print _("Arch : %s") % pkg.arch
if pkg.epoch != "0":
@@ -304,11 +306,11 @@ class YumOutput:
print _("Buildtime : %s") % time.ctime(pkg.buildtime)
if hasattr(pkg, 'installtime'):
print _("Installtime: %s") % time.ctime(pkg.installtime)
- print self.fmtKeyValFill(_("Summary : "), enc(pkg.summary))
+ print self.fmtKeyValFill(_("Summary : "), self._enc(pkg.summary))
if pkg.url:
print _("URL : %s") % pkg.url
print _("License : %s") % pkg.license
- print self.fmtKeyValFill(_("Description: "), enc(pkg.description))
+ print self.fmtKeyValFill(_("Description: "), self._enc(pkg.description))
print ""
def updatesObsoletesList(self, uotup, changetype):
@@ -335,7 +337,7 @@ class YumOutput:
lst.sort(sortPkgObj)
for pkg in lst:
if outputType == 'list':
- self.simpleList(pkg)
+ self.simpleList(pkg, ui_overflow=True)
elif outputType == 'info':
self.infoOutput(pkg)
else:
@@ -477,7 +479,7 @@ class YumOutput:
msg = '%s : ' % po
else:
msg = '%s.%s : ' % (po.name, po.arch)
- msg = self.fmtKeyValFill(msg, po.summary)
+ msg = self.fmtKeyValFill(msg, self._enc(po.summary))
if matchfor:
msg = self.term.sub_bold(msg, matchfor)
@@ -489,10 +491,34 @@ class YumOutput:
return
print _('Matched from:')
- for item in values:
+ for item in yum.misc.unique(values):
+ if po.name == item or po.summary == item:
+ continue # Skip double name/summary printing
+
+ can_overflow = True
+ if False: pass
+ elif po.description == item:
+ key = _("Description : ")
+ item = self._enc(item)
+ elif po.url == item:
+ key = _("URL : %s")
+ can_overflow = False
+ elif po.license == item:
+ key = _("License : %s")
+ can_overflow = False
+ elif item.startswith("/"):
+ key = _("Filename : %s")
+ item = self._enc(item)
+ can_overflow = False
+ else:
+ key = _("Other : ")
+
if matchfor:
item = self.term.sub_bold(item, matchfor)
- print item
+ if can_overflow:
+ print self.fmtKeyValFill(key, item)
+ else:
+ print key % item
print '\n\n'
def matchcallback_verbose(self, po, values, matchfor=None):
commit 9170769f020d9e01cb1547a589a3fa727cb9d05a
Author: James Antill <james at and.org>
Date: Wed Jun 11 13:01:12 2008 -0400
Add times to verbose info. -- hand merge from logging branch
diff --git a/output.py b/output.py
index 01887b3..6587da8 100644
--- a/output.py
+++ b/output.py
@@ -300,6 +300,10 @@ class YumOutput:
print _("Repo : %s") % pkg.repoid
if self.verbose_logger.isEnabledFor(logginglevels.DEBUG_3):
print _("Committer : %s") % pkg.committer
+ print _("Committime : %s") % time.ctime(pkg.committime)
+ print _("Buildtime : %s") % time.ctime(pkg.buildtime)
+ if hasattr(pkg, 'installtime'):
+ print _("Installtime: %s") % time.ctime(pkg.installtime)
print self.fmtKeyValFill(_("Summary : "), enc(pkg.summary))
if pkg.url:
print _("URL : %s") % pkg.url
commit c2b964aa647ae7cd1193f3e80cc73f4e0c01cc9c
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Wed Jun 11 12:53:10 2008 -0400
commit comment correction for config.py from Kulbir Saini
diff --git a/yum/config.py b/yum/config.py
index 2881709..eca8200 100644
--- a/yum/config.py
+++ b/yum/config.py
@@ -832,10 +832,8 @@ def writeRawRepoFile(repo,only=None):
fp.close()
#def main():
-# mainconf = readMainConfig('/etc/yum/yum.conf', '/')
-# repoconf = readRepoConfig(mainconf.cfg, 'core', mainconf)
-#
-# print `repoconf.name`
+# mainconf = readMainConfig(readStartupConfig('/etc/yum/yum.conf', '/'))
+# print mainconf.cachedir
#
#if __name__ == '__main__':
# main()
commit 790e42b6d5109b3dcb33c5b6861b7f04d95d22bb
Author: James Antill <james at and.org>
Date: Wed Jun 11 12:34:46 2008 -0400
Try and fix bug#450826
diff --git a/cli.py b/cli.py
index ff24ac6..cb16e76 100644
--- a/cli.py
+++ b/cli.py
@@ -45,7 +45,7 @@ from yum.rpmtrans import RPMTransaction
import signal
import yumcommands
-from yum.misc import to_unicode
+from yum.misc import to_unicode, to_utf8
def sigquit(signum, frame):
""" SIGQUIT handler for the yum cli. """
@@ -374,7 +374,7 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
if msgs:
print _('ERROR with rpm_check_debug vs depsolve:')
for msg in msgs:
- print msg
+ print to_utf8(msg)
return 1, [_('Please report this error in bugzilla')]
commit 235b9d77c2506fff0d00a99889f8fb2a898f277e
Author: James Antill <james at and.org>
Date: Wed Jun 11 10:38:05 2008 -0400
Use sets for lookup on large prco tuples
diff --git a/yum/packages.py b/yum/packages.py
index 49630f6..169f30f 100644
--- a/yum/packages.py
+++ b/yum/packages.py
@@ -280,10 +280,24 @@ class RpmBase(object):
# get rid of simple cases - nothing
if not self.prco.has_key(prcotype):
return 0
- # exact match
- if prcotuple in self.prco[prcotype]:
- return 1
+
+ # First try and exact match, then search
+ # Make it faster, if it's "big".
+ if len(self.prco[prcotype]) <= 8:
+ if prcotuple in self.prco[prcotype]:
+ return 1
else:
+ if not hasattr(self, '_prco_lookup'):
+ self._prco_lookup = {'obsoletes' : None, 'conflicts' : None,
+ 'requires' : None, 'provides' : None}
+
+ if self._prco_lookup[prcotype] is None:
+ self._prco_lookup[prcotype] = set(self.prco[prcotype])
+
+ if prcotuple in self._prco_lookup[prcotype]:
+ return 1
+
+ if True: # Keep indentation for patch smallness...
# make us look it up and compare
(reqn, reqf, (reqe, reqv ,reqr)) = prcotuple
if reqf is not None:
commit a7cda63766bfaa09e0abf84eedd5d92c25be50be
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Tue Jun 10 16:44:36 2008 -0400
make sure the exceptions for 'no packages found' continue to be true
diff --git a/yum/packageSack.py b/yum/packageSack.py
index 975a39b..a2b32f5 100644
--- a/yum/packageSack.py
+++ b/yum/packageSack.py
@@ -368,14 +368,20 @@ class MetaSack(PackageSackBase):
foo.i386 will be compared"""
calr = self._computeAggregateListResult
pkgs = calr("returnNewestByNameArch", naTup, patterns)
- return packagesNewestByNameArch(pkgs)
-
+ pkgs = packagesNewestByNameArch(pkgs)
+ if not pkgs:
+ raise Errors.PackageSackError, 'No Package Matching %s' % name
+ return pkgs
+
def returnNewestByName(self, name=None):
"""return list of newest packages based on name matching
this means(in name.arch form): foo.i386 and foo.noarch will
be compared to each other for highest version"""
pkgs = self._computeAggregateListResult("returnNewestByName", name)
- return packagesNewestByName(pkgs)
+ pkgs = packagesNewestByName(pkgs)
+ if not pkgs:
+ raise Errors.PackageSackError, 'No Package Matching %s' % name
+ return pkgs
def simplePkgList(self, patterns=None):
"""returns a list of pkg tuples (n, a, e, v, r)"""
commit 4038faebc5a62c6e18833a4fedad793e6aa85b2e
Merge: 7628d5d... b23f24b...
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Mon Jun 9 13:09:43 2008 -0400
Merge branch 'yum-3_2_X' of ssh://login1.linux.duke.edu/home/groups/yum/git/yum into yum-3_2_X
* 'yum-3_2_X' of ssh://login1.linux.duke.edu/home/groups/yum/git/yum:
Fix provides output, to have highlights and make it always "verbose".
updated de translation by Jochen Schmitt
The postresolve hook should run after the installonlyn magic.
commit 7628d5d02636857bfa5b28c137c402857f677cc1
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Mon Jun 9 13:08:14 2008 -0400
make gpg key importing support muleiple keys per file
diff --git a/yum/__init__.py b/yum/__init__.py
index ee096c6..23c755b 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -2658,7 +2658,6 @@ class YumBase(depsolve.Depsolve):
of a key. Differs from askcb in that it gets passed
a dictionary so that we can expand the values passed.
"""
-
repo = self.repos.getRepo(po.repoid)
keyurls = repo.gpgkey
key_installed = False
@@ -2676,61 +2675,65 @@ class YumBase(depsolve.Depsolve):
unicode(str(e), 'UTF-8', 'replace'))
# Parse the key
- try:
- keyinfo = misc.getgpgkeyinfo(rawkey)
- keyid = keyinfo['keyid']
- hexkeyid = misc.keyIdToRPMVer(keyid).upper()
- timestamp = keyinfo['timestamp']
- userid = keyinfo['userid']
- fingerprint = keyinfo['fingerprint']
- except ValueError, e:
- raise Errors.YumBaseError, \
- _('GPG key parsing failed: ') + str(e)
-
- # Check if key is already installed
- if misc.keyInstalled(ts, keyid, timestamp) >= 0:
- self.logger.info(_('GPG key at %s (0x%s) is already installed') % (
- keyurl, hexkeyid))
- continue
-
- # Try installing/updating GPG key
- self.logger.critical(_('Importing GPG key 0x%s "%s" from %s') % (hexkeyid, userid, keyurl.replace("file://","")))
- rc = False
- if self.conf.assumeyes:
- rc = True
- elif fullaskcb:
- rc = fullaskcb({"po": po, "userid": userid,
- "hexkeyid": hexkeyid, "keyurl": keyurl,
- "fingerprint": fingerprint, "timestamp": timestamp})
- elif askcb:
- rc = askcb(po, userid, hexkeyid)
-
- if not rc:
- raise Errors.YumBaseError, _("Not installing key")
-
- # Import the key
- result = ts.pgpImportPubkey(misc.procgpgkey(rawkey))
- if result != 0:
- raise Errors.YumBaseError, \
- _('Key import failed (code %d)') % result
- misc.import_key_to_pubring(rawkey, po.repo.cachedir)
+ keys_info = misc.getgpgkeyinfo(rawkey, multiple=True)
- self.logger.info(_('Key imported successfully'))
- key_installed = True
+ for keyinfo in keys_info:
+ try:
+ keyid = keyinfo['keyid']
+ hexkeyid = misc.keyIdToRPMVer(keyid).upper()
+ timestamp = keyinfo['timestamp']
+ userid = keyinfo['userid']
+ fingerprint = keyinfo['fingerprint']
+ raw_key = keyinfo['raw_key']
+ except ValueError, e:
+ raise Errors.YumBaseError, \
+ _('GPG key parsing failed: ') + str(e)
- if not key_installed:
- raise Errors.YumBaseError, \
- _('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.') % (repo.name)
+ # Check if key is already installed
+ if misc.keyInstalled(ts, keyid, timestamp) >= 0:
+ self.logger.info(_('GPG key at %s (0x%s) is already installed') % (
+ keyurl, hexkeyid))
+ continue
+
+ # Try installing/updating GPG key
+ self.logger.critical(_('Importing GPG key 0x%s "%s" from %s') % (hexkeyid, userid, keyurl.replace("file://","")))
+ rc = False
+ if self.conf.assumeyes:
+ rc = True
+ elif fullaskcb:
+ rc = fullaskcb({"po": po, "userid": userid,
+ "hexkeyid": hexkeyid, "keyurl": keyurl,
+ "fingerprint": fingerprint, "timestamp": timestamp})
+ elif askcb:
+ rc = askcb(po, userid, hexkeyid)
+
+ if not rc:
+ raise Errors.YumBaseError, _("Not installing key")
+
+ # Import the key
+ result = ts.pgpImportPubkey(misc.procgpgkey(raw_key))
+ if result != 0:
+ raise Errors.YumBaseError, \
+ _('Key import failed (code %d)') % result
+ misc.import_key_to_pubring(rawkey, po.repo.cachedir)
+
+ self.logger.info(_('Key imported successfully'))
+ key_installed = True
+
+ if not key_installed:
+ raise Errors.YumBaseError, \
+ _('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.') % (repo.name)
# Check if the newly installed keys helped
result, errmsg = self.sigCheckPkg(po)
if result != 0:
self.logger.info(_("Import of key(s) didn't help, wrong key(s)?"))
raise Errors.YumBaseError, errmsg
+
def _limit_installonly_pkgs(self):
if self.conf.installonly_limit < 1 :
return
diff --git a/yum/misc.py b/yum/misc.py
index 67b9171..cc7221b 100644
--- a/yum/misc.py
+++ b/yum/misc.py
@@ -233,7 +233,7 @@ def procgpgkey(rawkey):
# Decode and return
return base64.decodestring(block.getvalue())
-def getgpgkeyinfo(rawkey):
+def getgpgkeyinfo(rawkey, multiple=False):
'''Return a dict of info for the given ASCII armoured key text
Returned dict will have the following keys: 'userid', 'keyid', 'timestamp'
@@ -241,38 +241,45 @@ def getgpgkeyinfo(rawkey):
Will raise ValueError if there was a problem decoding the key.
'''
# Catch all exceptions as there can be quite a variety raised by this call
+ key_info_objs = []
try:
- key = pgpmsg.decode_msg(rawkey)
+ keys = pgpmsg.decode_multiple_keys(rawkey)
except Exception, e:
raise ValueError(str(e))
- if key is None:
+ if len(keys) == 0:
raise ValueError('No key found in given key data')
-
- keyid_blob = key.public_key.key_id()
-
- info = {
- 'userid': key.user_id,
- 'keyid': struct.unpack('>Q', keyid_blob)[0],
- 'timestamp': key.public_key.timestamp,
- 'fingerprint' : key.public_key.fingerprint,
- }
-
- # Retrieve the timestamp from the matching signature packet
- # (this is what RPM appears to do)
- for userid in key.user_ids[0]:
- if not isinstance(userid, pgpmsg.signature):
- continue
-
- if userid.key_id() == keyid_blob:
- # Get the creation time sub-packet if available
- if hasattr(userid, 'hashed_subpaks'):
- tspkt = \
- userid.get_hashed_subpak(pgpmsg.SIG_SUB_TYPE_CREATE_TIME)
- if tspkt != None:
- info['timestamp'] = int(tspkt[1])
- break
+
+ for key in keys:
+ keyid_blob = key.public_key.key_id()
+
+ info = {
+ 'userid': key.user_id,
+ 'keyid': struct.unpack('>Q', keyid_blob)[0],
+ 'timestamp': key.public_key.timestamp,
+ 'fingerprint' : key.public_key.fingerprint,
+ 'raw_key' : key.raw_key,
+ }
+
+ # Retrieve the timestamp from the matching signature packet
+ # (this is what RPM appears to do)
+ for userid in key.user_ids[0]:
+ if not isinstance(userid, pgpmsg.signature):
+ continue
+
+ if userid.key_id() == keyid_blob:
+ # Get the creation time sub-packet if available
+ if hasattr(userid, 'hashed_subpaks'):
+ tspkt = \
+ userid.get_hashed_subpak(pgpmsg.SIG_SUB_TYPE_CREATE_TIME)
+ if tspkt != None:
+ info['timestamp'] = int(tspkt[1])
+ break
+ key_info_objs.append(info)
+ if multiple:
+ return key_info_objs
+ else:
+ return key_info_objs[0]
- return info
def keyIdToRPMVer(keyid):
'''Convert an integer representing a GPG key ID to the hex version string
diff --git a/yum/pgpmsg.py b/yum/pgpmsg.py
index 72d3480..35a7801 100644
--- a/yum/pgpmsg.py
+++ b/yum/pgpmsg.py
@@ -1110,9 +1110,36 @@ def decode_msg(msg) :
# turn it into a real cert
cert = pgp_certificate()
cert.load(pkt_list)
+ cert.raw_key = msg
return cert
# add the data to our buffer then
block_buf.write(l)
return None
+
+
+def decode_multiple_keys(msg):
+ #ditto of above - but handling multiple certs/keys per file
+ certs = []
+
+ pgpkey_lines = map(lambda x : x.rstrip(), msg.split('\n'))
+ in_block = 0
+ block = ''
+ for l in pgpkey_lines :
+ if not in_block :
+ if l == '-----BEGIN PGP PUBLIC KEY BLOCK-----' :
+ in_block = 1
+ block += '%s\n' % l
+ continue
+
+ block += '%s\n' % l
+ if l == '-----END PGP PUBLIC KEY BLOCK-----':
+ in_block = 0
+ cert = decode_msg(block)
+ if cert:
+ certs.append(cert)
+ block = ''
+ continue
+
+ return certs
commit b23f24ba5e64020d228f2fda7ac858f2ad7c5985
Author: James Antill <james at and.org>
Date: Fri Jun 6 11:46:17 2008 -0400
Fix provides output, to have highlights and make it always "verbose".
Give warning about old behaviour when nothing matches.
diff --git a/cli.py b/cli.py
index 8ff9d80..ff24ac6 100644
--- a/cli.py
+++ b/cli.py
@@ -734,10 +734,20 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
old_sdup = self.conf.showdupesfromrepos
# For output, as searchPackageProvides() is always in showdups mode
self.conf.showdupesfromrepos = True
- matching = self.searchPackageProvides(args, callback=self.matchcallback)
+ cb = self.matchcallback_verbose
+ matching = self.searchPackageProvides(args, callback=cb,
+ callback_has_matchfor=True)
self.conf.showdupesfromrepos = old_sdup
if len(matching) == 0:
+ for arg in args:
+ if len(arg) and arg[0] == '*':
+ continue
+ self.logger.warning(_('Warning: 3.0.x versions of yum would erronously match against filenames.\n You can use "%s*/%s%s" and/or "%s*bin/%s%s" to get that behaviour'),
+ self.term.MODE['bold'], arg,
+ self.term.MODE['normal'],
+ self.term.MODE['bold'], arg,
+ self.term.MODE['normal'])
return 0, ['No Matches found']
return 0, []
diff --git a/output.py b/output.py
index f7fbfbb..01887b3 100644
--- a/output.py
+++ b/output.py
@@ -462,7 +462,13 @@ class YumOutput:
return(format % (number, space, symbols[depth]))
- def matchcallback(self, po, values, matchfor=None):
+ def matchcallback(self, po, values, matchfor=None, verbose=None):
+ """ Output search/provides type callback matches. po is the pkg object,
+ values are the things in the po that we've matched.
+ If matchfor is passed, all the strings in that list will be
+ highlighted within the output.
+ verbose overrides logginglevel, if passed. """
+
if self.conf.showdupesfromrepos:
msg = '%s : ' % po
else:
@@ -472,12 +478,21 @@ class YumOutput:
msg = self.term.sub_bold(msg, matchfor)
print msg
- self.verbose_logger.debug(_('Matched from:'))
+
+ if verbose is None:
+ verbose = self.verbose_logger.isEnabledFor(logginglevels.DEBUG_3)
+ if not verbose:
+ return
+
+ print _('Matched from:')
for item in values:
if matchfor:
item = self.term.sub_bold(item, matchfor)
- self.verbose_logger.debug('%s', item)
- self.verbose_logger.debug('\n\n')
+ print item
+ print '\n\n'
+
+ def matchcallback_verbose(self, po, values, matchfor=None):
+ return self.matchcallback(po, values, matchfor, verbose=True)
def reportDownloadSize(self, packages):
"""Report the total download size for a set of packages"""
diff --git a/yum/__init__.py b/yum/__init__.py
index bc0e4e4..a85f746 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -1595,7 +1595,8 @@ class YumBase(depsolve.Depsolve):
return matches
- def searchPackageProvides(self, args, callback=None):
+ def searchPackageProvides(self, args, callback=None,
+ callback_has_matchfor=False):
matches = {}
for arg in args:
@@ -1647,8 +1648,11 @@ class YumBase(depsolve.Depsolve):
tmpvalues.append(prov)
if len(tmpvalues) > 0:
- if callback:
- callback(po, tmpvalues)
+ if callback: # No matchfor, on globs
+ if not isglob and callback_has_matchfor:
+ callback(po, tmpvalues, args)
+ else:
+ callback(po, tmpvalues)
matches[po] = tmpvalues
# installed rpms, too
@@ -1674,7 +1678,10 @@ class YumBase(depsolve.Depsolve):
if len(tmpvalues) > 0:
if callback:
- callback(po, tmpvalues)
+ if callback_has_matchfor:
+ callback(po, tmpvalues, args)
+ else:
+ callback(po, tmpvalues)
matches[po] = tmpvalues
else:
@@ -1698,7 +1705,7 @@ class YumBase(depsolve.Depsolve):
tmpvalues.append(item)
if len(tmpvalues) > 0:
- if callback:
+ if callback: # No matchfor, on globs
callback(po, tmpvalues)
matches[po] = tmpvalues
commit 835c237c532ff837555390ffc9f7c9782ac3210d
Author: Tim Lauridsen <tla at rasmil.dk>
Date: Fri Jun 6 14:46:17 2008 +0200
updated de translation by Jochen Schmitt
diff --git a/po/de.po b/po/de.po
index e766d20..ae1fa57 100644
--- a/po/de.po
+++ b/po/de.po
@@ -713,9 +713,9 @@ msgstr ""
"\n"
"Transaktionszusammenfassung\n"
"=============================================================================\n"
-"Installieren %5.5s Pakete(e) \n"
-"Aktualisieren %5.5s Pakete(e) \n"
-"Enfernen %5.5s Paket(e) \n"
+"Installieren %5.5s Paket(e) \n"
+"Aktualisieren %5.5s Paket(e) \n"
+"Enfernen %5.5s Paket(e) \n"
#: ../output.py:558
msgid "Removed"
commit dcc7b7c98dcb78dec60dc1a83aad55ad79b04840
Author: Jack Neely <jjneely at ncsu.edu>
Date: Tue Jun 3 16:17:53 2008 -0400
The postresolve hook should run after the installonlyn magic.
diff --git a/yum/__init__.py b/yum/__init__.py
index ee096c6..bc0e4e4 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -626,8 +626,8 @@ class YumBase(depsolve.Depsolve):
ds_st = time.time()
(rescode, restring) = self.resolveDeps()
- self.plugins.run('postresolve', rescode=rescode, restring=restring)
self._limit_installonly_pkgs()
+ self.plugins.run('postresolve', rescode=rescode, restring=restring)
if self.tsInfo.changed:
(rescode, restring) = self.resolveDeps()
commit 5119fa0e90324c2618348cb1aa31a7793e3caeba
Author: Tim Lauridsen <tla at rasmil.dk>
Date: Tue Jun 3 10:40:07 2008 +0200
make repo.enable/disablePersistant() dont messup the repo files by replacing etc. (rhbz# 446098)
diff --git a/yum/config.py b/yum/config.py
index 218008b..2881709 100644
--- a/yum/config.py
+++ b/yum/config.py
@@ -25,12 +25,9 @@ import rpm
import copy
import urlparse
from parser import ConfigPreProcessor
-try:
- from iniparse.compat import NoSectionError, NoOptionError, ConfigParser
- from iniparse.compat import ParsingError
-except ImportError:
- from ConfigParser import NoSectionError, NoOptionError, ConfigParser
- from ConfigParser import ParsingError
+from iniparse import INIConfig
+from iniparse.compat import NoSectionError, NoOptionError, ConfigParser
+from iniparse.compat import ParsingError
import rpmUtils.transaction
import rpmUtils.arch
import Errors
@@ -815,6 +812,25 @@ def _getsysver(installroot, distroverpkg):
del ts
return releasever
+def writeRawRepoFile(repo,only=None):
+ """
+ Writes changes in a repo object back to a .repo file.
+ @param repo: Repo Object
+ @param only: List of attributes to work on (None = All)
+ It work by reading the repo file, changes the values there shall be changed and write it back to disk.
+ """
+ ini = INIConfig(open(repo.repofile))
+ # Updated the ConfigParser with the changed values
+ cfgOptions = repo.cfg.options(repo.id)
+ for name,value in repo.iteritems():
+ option = repo.optionobj(name)
+ if option.default != value or name in cfgOptions :
+ if only == None or name in only:
+ ini[repo.id][name] = option.tostring(value)
+ fp =file(repo.repofile,"w")
+ fp.write(str(ini))
+ fp.close()
+
#def main():
# mainconf = readMainConfig('/etc/yum/yum.conf', '/')
# repoconf = readRepoConfig(mainconf.cfg, 'core', mainconf)
diff --git a/yum/yumRepo.py b/yum/yumRepo.py
index 1527181..b3c07ba 100644
--- a/yum/yumRepo.py
+++ b/yum/yumRepo.py
@@ -343,10 +343,8 @@ class YumRepository(Repository, config.RepoConf):
def enablePersistent(self):
"""Persistently enables this repository."""
self.enable()
- self.cfg.set(self.id, 'enabled', '1')
-
try:
- self.cfg.write(file(self.repofile, 'w'))
+ config.writeRawRepoFile(self,only=['enabled'])
except IOError, e:
if e.errno == 13:
self.logger.warning(e)
@@ -356,10 +354,8 @@ class YumRepository(Repository, config.RepoConf):
def disablePersistent(self):
"""Persistently disables this repository."""
self.disable()
- self.cfg.set(self.id, 'enabled', '0')
-
try:
- self.cfg.write(file(self.repofile, 'w'))
+ config.writeRawRepoFile(self,only=['enabled'])
except IOError, e:
if e.errno == 13:
self.logger.warning(e)
commit 0f495a7a61638bd8efe4a9b2ae29ce740ef24ac0
Author: James Antill <james at and.org>
Date: Mon Jun 2 18:25:09 2008 -0400
Give the --showduplicates output for provides, as that's how it's calc'd.
diff --git a/cli.py b/cli.py
index dcb8e96..8ff9d80 100644
--- a/cli.py
+++ b/cli.py
@@ -731,7 +731,11 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
of items matching the provides strings. This is a cli wrapper to the
module"""
+ old_sdup = self.conf.showdupesfromrepos
+ # For output, as searchPackageProvides() is always in showdups mode
+ self.conf.showdupesfromrepos = True
matching = self.searchPackageProvides(args, callback=self.matchcallback)
+ self.conf.showdupesfromrepos = old_sdup
if len(matching) == 0:
return 0, ['No Matches found']
commit 57362df5676c4102eba9897f6e8bbd1143aea632
Author: James Antill <james at and.org>
Date: Mon Jun 2 18:14:05 2008 -0400
Add text for git diff, to make sure we don't have HEAD merges
diff --git a/README b/README
index b2c3bff..ca0c1b4 100644
--- a/README
+++ b/README
@@ -30,4 +30,6 @@ web page: http://linux.duke.edu/yum/
wiki: http://wiki.linux.duke.edu/Yum
3.2.X Branch - yum-3_2_X
+ Starting commit is roughly: a3c91d7f6a15f31a42d020127b2da2877dfc137d
+ E.g. git diff a3c91d7f6a15f31a42d020127b2da2877dfc137d
commit 91e4cee0d52660421906442265d4d41232c0b203
Author: James Antill <james at and.org>
Date: Mon Jun 2 18:10:41 2008 -0400
Revert "Merge branch 'master' of ssh://login.linux.duke.edu/home/groups/yum/git/yum"
This reverts commit 7bf7ce04f34b0fa1540b02de70d696675864efc3.
Another stupid HEAD => 3.2.x branch merge. *hates SCMs for a while*
diff --git a/README.API_CHANGES b/README.API_CHANGES
deleted file mode 100644
index ae451a8..0000000
--- a/README.API_CHANGES
+++ /dev/null
@@ -1,11 +0,0 @@
-
-4.0.0
-=====
-
-Removed:
-
- * PackageSack.search(Provides|Requires|Conflicts|Obsoletes)
- * use PackageSack.get* instead
- * RpmSack(whatProvides|Requires)
- * use PackageSack.get* instead
- * SqliteSack.searchPrco
diff --git a/rpmUtils/miscutils.py b/rpmUtils/miscutils.py
index 606aea0..64e232e 100644
--- a/rpmUtils/miscutils.py
+++ b/rpmUtils/miscutils.py
@@ -129,7 +129,7 @@ def rangeCheck(reqtuple, pkgtuple):
# nameonly shouldn't ever raise it
#(reqn, reqf, (reqe, reqv, reqr)) = reqtuple
(n, a, e, v, r) = pkgtuple
- return rangeCompare(reqtuple, (n, rpm.RPMSENSE_EQUAL, (e, v, r)))
+ return rangeCompare(reqtuple, (n, 'EQ', (e, v, r)))
def rangeCompare(reqtuple, provtuple):
"""returns true if provtuple satisfies reqtuple"""
@@ -141,9 +141,6 @@ def rangeCompare(reqtuple, provtuple):
if f is None or reqf is None:
return 1
- if isinstance(f, str) or isinstance(reqf, str):
- raise ValueError, "%r %r" % (f, reqf)
-
# and you thought we were done having fun
# if the requested release is left out then we have
# to remove release from the package prco to make sure the match
@@ -164,33 +161,42 @@ def rangeCompare(reqtuple, provtuple):
# does not match unless
if rc >= 1:
- if reqf & rpm.RPMSENSE_GREATER:
+ if reqf in ['GT', 'GE', 4, 12]:
return 1
- if reqf == rpm.RPMSENSE_EQUAL:
- if f == (rpm.RPMSENSE_LESS|rpm.RPMSENSE_EQUAL):
+ if reqf in ['EQ', 8]:
+ if f in ['LE', 10]:
return 1
if rc == 0:
- if reqf == rpm.RPMSENSE_GREATER:
- if f & rpm.RPMSENSE_GREATER:
+ if reqf in ['GT', 4]:
+ if f in ['GT', 'GE', 4, 12]:
return 1
- if reqf == (rpm.RPMSENSE_GREATER|rpm.RPMSENSE_EQUAL):
- if f != rpm.RPMSENSE_LESS:
+ if reqf in ['GE', 12]:
+ if f in ['GT', 'GE', 'EQ', 'LE', 4, 12, 8, 10]:
return 1
- if reqf == rpm.RPMSENSE_EQUAL:
- if f & rpm.RPMSENSE_EQUAL:
+ if reqf in ['EQ', 8]:
+ if f in ['EQ', 'GE', 'LE', 8, 12, 10]:
return 1
- if reqf == (rpm.RPMSENSE_LESS|rpm.RPMSENSE_EQUAL):
- if f != rpm.RPMSENSE_GREATER:
+ if reqf in ['LE', 10]:
+ if f in ['EQ', 'LE', 'LT', 'GE', 8, 10, 2, 12]:
return 1
- if reqf == rpm.RPMSENSE_LESS:
- if f & rpm.RPMSENSE_LESS:
+ if reqf in ['LT', 2]:
+ if f in ['LE', 'LT', 10, 2]:
return 1
if rc <= -1:
- if not (reqf & rpm.RPMSENSE_LESS):
- if f & rpm.RPMSENSE_GREATER:
+ if reqf in ['GT', 'GE', 'EQ', 4, 12, 8]:
+ if f in ['GT', 'GE', 4, 12]:
return 1
- if reqf & rpm.RPMSENSE_LESS:
+ if reqf in ['LE', 'LT', 10, 2]:
return 1
+# if rc >= 1:
+# if reqf in ['GT', 'GE', 4, 12]:
+# return 1
+# if rc == 0:
+# if reqf in ['GE', 'LE', 'EQ', 8, 10, 12]:
+# return 1
+# if rc <= -1:
+# if reqf in ['LT', 'LE', 2, 10]:
+# return 1
return 0
diff --git a/test/depsolvetests.py b/test/depsolvetests.py
index 3e445ba..3f8c748 100644
--- a/test/depsolvetests.py
+++ b/test/depsolvetests.py
@@ -64,7 +64,7 @@ class DepsolveTests(DepsolveTests):
def testInstallSinglePackageRequireVer1NotProvided(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
- po.addRequires('zip', EQ, (None, '1.3', '2'))
+ po.addRequires('zip', 'EQ', (None, '1.3', '2'))
self.tsInfo.addInstall(po)
ipo = FakePackage('zip', '1.0', '2', None, 'i386')
@@ -74,7 +74,7 @@ class DepsolveTests(DepsolveTests):
def testInstallSinglePackageRequireVer1Installed(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
- po.addRequires('zip', EQ, (None, '1.3', '2'))
+ po.addRequires('zip', 'EQ', (None, '1.3', '2'))
self.tsInfo.addInstall(po)
ipo = FakePackage('zip', '1.3', '2', None, 'i386')
@@ -85,7 +85,7 @@ class DepsolveTests(DepsolveTests):
def testInstallSinglePackageRequireVer2NotProvided(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
- po.addRequires('zip', EQ, (None, '1.3', '4'))
+ po.addRequires('zip', 'EQ', (None, '1.3', '4'))
self.tsInfo.addInstall(po)
ipo = FakePackage('zip', '1.3', '2', None, 'i386')
@@ -95,7 +95,7 @@ class DepsolveTests(DepsolveTests):
def testInstallSinglePackageRequireVer2Installed(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
- po.addRequires('zip', EQ, (None, '1.3', '4'))
+ po.addRequires('zip', 'EQ', (None, '1.3', '4'))
self.tsInfo.addInstall(po)
ipo = FakePackage('zip', '1.3', '4', None, 'i386')
@@ -106,7 +106,7 @@ class DepsolveTests(DepsolveTests):
def testInstallSinglePackageRequireVer3NotProvided(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
- po.addRequires('zip', GE, ('1', '1.3', '4'))
+ po.addRequires('zip', 'GE', ('1', '1.3', '4'))
self.tsInfo.addInstall(po)
ipo = FakePackage('zip', '1.3', '4', '0', 'i386')
@@ -116,7 +116,7 @@ class DepsolveTests(DepsolveTests):
def testInstallSinglePackageRequireVer3Installed(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
- po.addRequires('zip', GE, ('2', '1.3', '4'))
+ po.addRequires('zip', 'GE', ('2', '1.3', '4'))
self.tsInfo.addInstall(po)
ipo = FakePackage('zip', '1.3', '4', '2', 'i386')
@@ -127,7 +127,7 @@ class DepsolveTests(DepsolveTests):
def testInstallSinglePackageRequireVer4NotProvided(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
- po.addRequires('zip', LT, ('2', '1.3', '4'))
+ po.addRequires('zip', 'LT', ('2', '1.3', '4'))
self.tsInfo.addInstall(po)
ipo = FakePackage('zip', '1.3', '4', '2', 'i386')
@@ -137,7 +137,7 @@ class DepsolveTests(DepsolveTests):
def testInstallSinglePackageRequireVer4_1Installed(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
- po.addRequires('zip', LT, ('2', '1.3', '4'))
+ po.addRequires('zip', 'LT', ('2', '1.3', '4'))
self.tsInfo.addInstall(po)
ipo = FakePackage('zip', '1.0', '4', '2', 'i386')
@@ -147,7 +147,7 @@ class DepsolveTests(DepsolveTests):
self.assertResult((po, ipo))
def testInstallSinglePackageRequireVer4_2Installed(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
- po.addRequires('zip', LT, ('2', '1.3', '4'))
+ po.addRequires('zip', 'LT', ('2', '1.3', '4'))
self.tsInfo.addInstall(po)
ipo = FakePackage('zip', '1.3', '3', '2', 'i386')
@@ -157,7 +157,7 @@ class DepsolveTests(DepsolveTests):
self.assertResult((po, ipo))
def testInstallSinglePackageRequireVer4_3Installed(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
- po.addRequires('zip', LT, ('2', '1.3', '4'))
+ po.addRequires('zip', 'LT', ('2', '1.3', '4'))
self.tsInfo.addInstall(po)
ipo = FakePackage('zip', '1.3', '4', None, 'i386')
@@ -167,7 +167,7 @@ class DepsolveTests(DepsolveTests):
self.assertResult((po, ipo))
def testInstallSinglePackageRequireVer4_4Installed(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
- po.addRequires('zip', LT, ('2', '1.3', '4'))
+ po.addRequires('zip', 'LT', ('2', '1.3', '4'))
self.tsInfo.addInstall(po)
ipo = FakePackage('zip', '1.3', '4', '1', 'i386')
@@ -177,7 +177,7 @@ class DepsolveTests(DepsolveTests):
self.assertResult((po, ipo))
def testInstallSinglePackageRequireVer4_5Installed(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
- po.addRequires('zip', LT, ('2', '1.3', '4'))
+ po.addRequires('zip', 'LT', ('2', '1.3', '4'))
self.tsInfo.addInstall(po)
ipo = FakePackage('zip', '0.3', '4', '2', 'i386')
@@ -188,8 +188,8 @@ class DepsolveTests(DepsolveTests):
def testInstallSinglePackageRequireXtraBadVer(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
- po.addRequires('zip', EQ, ('2', '1.3', '4'))
- po.addRequires('zap', EQ, ('2', '1.3', '4'))
+ po.addRequires('zip', 'EQ', ('2', '1.3', '4'))
+ po.addRequires('zap', 'EQ', ('2', '1.3', '4'))
self.tsInfo.addInstall(po)
ipo = FakePackage('zip', '1.3', '4', '2', 'i386')
@@ -202,8 +202,8 @@ class DepsolveTests(DepsolveTests):
def testInstallSinglePackageRequireXtra(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
- po.addRequires('zip', EQ, ('2', '1.3', '4'))
- po.addRequires('zap', EQ, ('4', '2.6', '8'))
+ po.addRequires('zip', 'EQ', ('2', '1.3', '4'))
+ po.addRequires('zap', 'EQ', ('4', '2.6', '8'))
self.tsInfo.addInstall(po)
ipo = FakePackage('zip', '1.3', '4', '2', 'i386')
@@ -217,11 +217,11 @@ class DepsolveTests(DepsolveTests):
def testInstallSinglePackageRequireInstalledRequireXtra(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
- po.addRequires('zip', EQ, ('2', '1.3', '4'))
+ po.addRequires('zip', 'EQ', ('2', '1.3', '4'))
self.tsInfo.addInstall(po)
ipo = FakePackage('zip', '1.3', '4', '2', 'i386')
- ipo.addRequires('zap', EQ, ('4', '2.6', '8'))
+ ipo.addRequires('zap', 'EQ', ('4', '2.6', '8'))
self.rpmdb.addPackage(ipo)
xpo = FakePackage('zap', '2.6', '8', '4', 'i386')
@@ -232,33 +232,33 @@ class DepsolveTests(DepsolveTests):
def testInstallSinglePackageRequireUpgradeRequireXtraErr(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
- po.addRequires('zip', EQ, ('4', '2.6', '8'))
+ po.addRequires('zip', 'EQ', ('4', '2.6', '8'))
self.tsInfo.addInstall(po)
ipo = FakePackage('zip', '1.3', '4', '2', 'i386')
- ipo.addRequires('zap', EQ, ('2', '1.3', '3'))
+ ipo.addRequires('zap', 'EQ', ('2', '1.3', '3'))
self.rpmdb.addPackage(ipo)
xpo = FakePackage('zip', '2.6', '8', '4', 'i386')
- xpo.addRequires('zap', EQ, ('2', '1.3', '4'))
+ xpo.addRequires('zap', 'EQ', ('2', '1.3', '4'))
self.xsack.addPackage(xpo)
xpo = FakePackage('zap', '1.3', '4', '2', 'i386')
- xpo.addRequires('zsh', EQ, ('2', '4', '8'))
+ xpo.addRequires('zsh', 'EQ', ('2', '4', '8'))
self.xsack.addPackage(xpo)
self.assertEquals('err', *self.resolveCode())
def testInstallSinglePackageRequireUpgradeRequireXtraOk(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
- po.addRequires('zip', EQ, ('4', '2.6', '8'))
+ po.addRequires('zip', 'EQ', ('4', '2.6', '8'))
self.tsInfo.addInstall(po)
ipo = FakePackage('zip', '1.3', '4', '2', 'i386')
- ipo.addRequires('zap', EQ, ('2', '1.3', '3'))
+ ipo.addRequires('zap', 'EQ', ('2', '1.3', '3'))
self.rpmdb.addPackage(ipo)
xpo = FakePackage('zip', '2.6', '8', '4', 'i386')
- xpo.addRequires('zap', EQ, ('2', '1.3', '4'))
+ xpo.addRequires('zap', 'EQ', ('2', '1.3', '4'))
self.xsack.addPackage(xpo)
xpo2 = FakePackage('zap', '1.3', '4', '2', 'i386')
self.xsack.addPackage(xpo2)
@@ -268,11 +268,11 @@ class DepsolveTests(DepsolveTests):
def testInstallSinglePackageRequireMultiXtra(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
- po.addRequires('zip', EQ, ('4', '2.6', '8'))
+ po.addRequires('zip', 'EQ', ('4', '2.6', '8'))
self.tsInfo.addInstall(po)
xpo = FakePackage('zip', '2.6', '8', '4', 'i386')
- xpo.addRequires('zap', EQ, ('2', '1.3', '4'))
+ xpo.addRequires('zap', 'EQ', ('2', '1.3', '4'))
self.xsack.addPackage(xpo)
xpo2 = FakePackage('zap', '1.3', '4', '2', 'i386')
@@ -346,7 +346,7 @@ class DepsolveTests(DepsolveTests):
def testUpdateForDependency(self):
po = FakePackage('zsh', '1', '1', '0', 'i386')
- po.addRequires('zip', EQ, ('0', '2', '1'))
+ po.addRequires('zip', 'EQ', ('0', '2', '1'))
self.tsInfo.addInstall(po)
installedpo = FakePackage('zip', '1', '1', '0', 'i386')
@@ -360,18 +360,18 @@ class DepsolveTests(DepsolveTests):
def testUpdateSplitPackage(self):
po = FakePackage('zsh', '1', '1', '0', 'i386')
- po.addRequires('libzip', EQ, ('0', '2', '1'))
+ po.addRequires('libzip', 'EQ', ('0', '2', '1'))
self.tsInfo.addInstall(po)
installedpo = FakePackage('zip', '1', '1', '0', 'i386')
- installedpo.addProvides('libzip', EQ, ('0', '1', '1'))
+ installedpo.addProvides('libzip', 'EQ', ('0', '1', '1'))
self.rpmdb.addPackage(installedpo)
updatepo = FakePackage('zip', '2', '1', '0', 'i386')
- updatepo.addRequires('zip-libs', EQ, ('0', '2', '1'))
+ updatepo.addRequires('zip-libs', 'EQ', ('0', '2', '1'))
self.xsack.addPackage(updatepo)
updatepo2 = FakePackage('zip-libs', '2', '1', '0', 'i386')
- updatepo2.addProvides('libzip', EQ, ('0', '2', '1'))
+ updatepo2.addProvides('libzip', 'EQ', ('0', '2', '1'))
self.xsack.addPackage(updatepo2)
self.assertEquals('ok', *self.resolveCode())
@@ -442,7 +442,7 @@ class DepsolveTests(DepsolveTests):
def testUpdateForConflict(self):
po = FakePackage('zsh', '1', '1', '0', 'i386')
- po.addConflicts('zip', LE, ('0', '1', '1'))
+ po.addConflicts('zip', 'LE', ('0', '1', '1'))
self.tsInfo.addInstall(po)
installedpo = FakePackage('zip', '1', '1', '0', 'i386')
@@ -459,7 +459,7 @@ class DepsolveTests(DepsolveTests):
self.tsInfo.addInstall(po)
installedpo = FakePackage('zip', '1', '1', '0', 'i386')
- installedpo.addConflicts('zsh', LE, ('0', '1', '1'))
+ installedpo.addConflicts('zsh', 'LE', ('0', '1', '1'))
self.rpmdb.addPackage(installedpo)
updatepo = FakePackage('zip', '2', '1', '0', 'i386')
@@ -470,11 +470,11 @@ class DepsolveTests(DepsolveTests):
def testUpdateForConflictProvide(self):
po = FakePackage('zsh', '1', '1', '0', 'i386')
- po.addConflicts('zippy', LE, ('0', '1', '1'))
+ po.addConflicts('zippy', 'LE', ('0', '1', '1'))
self.tsInfo.addInstall(po)
installedpo = FakePackage('zip', '1', '1', '0', 'i386')
- installedpo.addProvides('zippy', EQ, ('0', '1', '1'))
+ installedpo.addProvides('zippy', 'EQ', ('0', '1', '1'))
self.rpmdb.addPackage(installedpo)
updatepo = FakePackage('zip', '2', '1', '0', 'i386')
@@ -485,17 +485,17 @@ class DepsolveTests(DepsolveTests):
def testUpdateForConflictProvide2(self):
po = FakePackage('zsh', '1', '1', '0', 'i386')
- po.addProvides('zippy', EQ, ('0', '2', '1'))
+ po.addProvides('zippy', 'EQ', ('0', '2', '1'))
self.tsInfo.addInstall(po)
installedpo = FakePackage('zip', '1', '1', '0', 'i386')
- installedpo.addConflicts('zippy', GT, ('0', '1', '1'))
- installedpo.addConflicts('zippy', LT, ('0', '1', '1'))
+ installedpo.addConflicts('zippy', 'GT', ('0', '1', '1'))
+ installedpo.addConflicts('zippy', 'LT', ('0', '1', '1'))
self.rpmdb.addPackage(installedpo)
updatepo = FakePackage('zip', '2', '1', '0', 'i386')
- updatepo.addConflicts('zippy', GT, ('0', '2', '1'))
- updatepo.addConflicts('zippy', LT, ('0', '2', '1'))
+ updatepo.addConflicts('zippy', 'GT', ('0', '2', '1'))
+ updatepo.addConflicts('zippy', 'LT', ('0', '2', '1'))
self.xsack.addPackage(updatepo)
self.assertEquals('ok', *self.resolveCode())
@@ -785,13 +785,13 @@ class DepsolveTests(DepsolveTests):
def testMultiPkgVersions1(self):
ipo1 = FakePackage('abcd', arch='noarch')
- ipo1.addRequires('Foo', EQ, ('0', '1', '1'))
+ ipo1.addRequires('Foo', 'EQ', ('0', '1', '1'))
self.rpmdb.addPackage(ipo1)
ipo2 = FakePackage('Foo', arch='noarch')
self.rpmdb.addPackage(ipo2)
xpo = FakePackage('abcd', version='2', arch='noarch')
- xpo.addRequires('Foo', GE, ('0', '2', '1'))
+ xpo.addRequires('Foo', 'GE', ('0', '2', '1'))
self.tsInfo.addUpdate(xpo, oldpo=ipo1)
po1 = FakePackage('Foo', arch='noarch')
@@ -806,13 +806,13 @@ class DepsolveTests(DepsolveTests):
def testMultiPkgVersions2(self):
ipo1 = FakePackage('abcd', arch='i586')
- ipo1.addRequires('Foo', EQ, ('0', '1', '1'))
+ ipo1.addRequires('Foo', 'EQ', ('0', '1', '1'))
self.rpmdb.addPackage(ipo1)
ipo2 = FakePackage('Foo', arch='i586')
self.rpmdb.addPackage(ipo2)
xpo = FakePackage('abcd', version='2', arch='i586')
- xpo.addRequires('Foo', GE, ('0', '2', '1'))
+ xpo.addRequires('Foo', 'GE', ('0', '2', '1'))
self.tsInfo.addUpdate(xpo, oldpo=ipo1)
po1 = FakePackage('Foo', arch='i586')
@@ -827,13 +827,13 @@ class DepsolveTests(DepsolveTests):
def testMultiPkgVersions3(self):
ipo1 = FakePackage('abcd', arch='i586')
- ipo1.addRequires('Foo', EQ, ('0', '1', '1'))
+ ipo1.addRequires('Foo', 'EQ', ('0', '1', '1'))
self.rpmdb.addPackage(ipo1)
ipo2 = FakePackage('Foo', arch='i586')
self.rpmdb.addPackage(ipo2)
xpo = FakePackage('abcd', version='2', arch='i586')
- xpo.addRequires('Foo', GE, ('0', '2', '1'))
+ xpo.addRequires('Foo', 'GE', ('0', '2', '1'))
self.tsInfo.addUpdate(xpo, oldpo=ipo1)
po1 = FakePackage('Foo', arch='i586')
@@ -851,13 +851,13 @@ class DepsolveTests(DepsolveTests):
def testMultiPkgVersions4(self):
ipo1 = FakePackage('abcd', arch='i386')
- ipo1.addRequires('Foo', EQ, ('0', '1', '1'))
+ ipo1.addRequires('Foo', 'EQ', ('0', '1', '1'))
self.rpmdb.addPackage(ipo1)
ipo2 = FakePackage('Foo', arch='i386')
self.rpmdb.addPackage(ipo2)
xpo = FakePackage('abcd', version='2', arch='i386')
- xpo.addRequires('Foo', GE, ('0', '2', '1'))
+ xpo.addRequires('Foo', 'GE', ('0', '2', '1'))
self.tsInfo.addUpdate(xpo, oldpo=ipo1)
po1 = FakePackage('Foo', arch='i386')
@@ -880,12 +880,12 @@ class DepsolveTests(DepsolveTests):
self.tsInfo.addInstall(xpo)
po1 = FakePackage('unison213', version='2.13.16', release='9')
- po1.addProvides('unison', EQ, ('0', '2.13.16', '9'))
- po1.addObsoletes('unison', LT, ('0', '2.27.57', '3'))
+ po1.addProvides('unison', 'EQ', ('0', '2.13.16', '9'))
+ po1.addObsoletes('unison', 'LT', ('0', '2.27.57', '3'))
self.xsack.addPackage(po1)
po2 = FakePackage('unison227', version='2.27.57', release='7')
- po2.addProvides('unison', EQ, ('0', '2.27.57', '7'))
- po2.addObsoletes('unison', LT, ('0', '2.27.57', '3'))
+ po2.addProvides('unison', 'EQ', ('0', '2.27.57', '7'))
+ po2.addObsoletes('unison', 'LT', ('0', '2.27.57', '3'))
self.xsack.addPackage(po2)
self.assertEquals('ok', *self.resolveCode())
@@ -897,11 +897,11 @@ class DepsolveTests(DepsolveTests):
self.tsInfo.addInstall(xpo)
po1 = FakePackage('unison213', version='2.13.16', release='9')
- po1.addProvides('unison', EQ, ('0', '2.13.16', '9'))
- po1.addObsoletes('unison', LT, ('0', '2.27.57', '3'))
+ po1.addProvides('unison', 'EQ', ('0', '2.13.16', '9'))
+ po1.addObsoletes('unison', 'LT', ('0', '2.27.57', '3'))
po2 = FakePackage('unison227', version='2.27.57', release='7')
- po2.addProvides('unison', EQ, ('0', '2.27.57', '7'))
- po2.addObsoletes('unison', LT, ('0', '2.27.57', '3'))
+ po2.addProvides('unison', 'EQ', ('0', '2.27.57', '7'))
+ po2.addObsoletes('unison', 'LT', ('0', '2.27.57', '3'))
self.xsack.addPackage(po2)
self.xsack.addPackage(po1)
diff --git a/test/operationstests.py b/test/operationstests.py
index 71d311f..12a1627 100644
--- a/test/operationstests.py
+++ b/test/operationstests.py
@@ -9,7 +9,7 @@ class ComplicatedTests(OperationsTests):
simpleobsoletestests.SimpleObsoletesTests.buildPkgs(pkgs)
# conflicts
pkgs.conflicts = FakePackage('super-zippy', '0.3', '1', '0', 'i386')
- pkgs.conflicts.addConflicts('zsh', EQ, ('0', '1', '1'))
+ pkgs.conflicts.addConflicts('zsh', 'EQ', ('0', '1', '1'))
def testObsoleteForConflict(self):
p = self.pkgs
@@ -31,11 +31,11 @@ class CombinedUpdateObsoletesTest(OperationsTests):
pkgs.kdevel_2 = FakePackage('k-devel', '3.5', '2')
pkgs.kdevel_2.addRequires('k')
pkgs.klibs_2_i386 = FakePackage('klibs', '3.5', '2', arch='i386')
- pkgs.klibs_2_i386.addObsoletes('klibs', LT, (None, '3.5', '2'))
- pkgs.klibs_2_i386.addObsoletes('k', LT, (None, '3.5', '2'))
+ pkgs.klibs_2_i386.addObsoletes('klibs', 'LT', (None, '3.5', '2'))
+ pkgs.klibs_2_i386.addObsoletes('k', 'LT', (None, '3.5', '2'))
pkgs.klibs_2_x86_64 = FakePackage('klibs', '3.5', '2', arch='x86_64')
- pkgs.klibs_2_x86_64.addObsoletes('klibs', LT, (None, '3.5', '2'))
- pkgs.klibs_2_x86_64.addObsoletes('k', LT, (None, '3.5', '2'))
+ pkgs.klibs_2_x86_64.addObsoletes('klibs', 'LT', (None, '3.5', '2'))
+ pkgs.klibs_2_x86_64.addObsoletes('k', 'LT', (None, '3.5', '2'))
def testSelfObsolete(self):
p = self.pkgs
diff --git a/test/packagetests.py b/test/packagetests.py
index 44946de..628247d 100644
--- a/test/packagetests.py
+++ b/test/packagetests.py
@@ -3,90 +3,89 @@ import settestpath
from yum import packages
from rpmUtils import miscutils
-from testbase import *
class InPrcoRangePackageTests(unittest.TestCase):
def setUp(self):
self.po = packages.RpmBase()
self.po.rel = 10
- self.po.prco['provides'].append(("seth", EQ, (1, 2, 3)))
- self.po.prco['requires'].append(("foo", GE, (4, 5, None)))
+ self.po.prco['provides'].append(("seth", "EQ", (1, 2, 3)))
+ self.po.prco['requires'].append(("foo", "GE", (4, 5, None)))
def testRequiresEqPass(self):
- dep = ("foo", EQ, (4, 5, 0))
+ dep = ("foo", "EQ", (4, 5, 0))
self.assertTrue(self.po.inPrcoRange('requires', dep))
def testRequiresEqFailGt(self):
- dep = ("foo", EQ, (4, 4, 0))
+ dep = ("foo", "EQ", (4, 4, 0))
self.assertFalse(self.po.inPrcoRange('requires', dep))
def testProvidesGePass(self):
- dep = ("seth", GE, (1, 0, 0))
+ dep = ("seth", "GE", (1, 0, 0))
self.assertTrue(self.po.inPrcoRange('provides', dep))
def testProvidesGePassWithEqual(self):
- dep = ("seth", GE, (1, 2, 3))
+ dep = ("seth", "GE", (1, 2, 3))
self.assertTrue(self.po.inPrcoRange('provides', dep))
def testProvidesGeFailOnEpoch(self):
- dep = ("seth", GE, (2, 0, 0))
+ dep = ("seth", "GE", (2, 0, 0))
self.assertFalse(self.po.inPrcoRange('provides', dep))
def testProvidesGeFailOnVersion(self):
- dep = ("seth", GE, (1, 3, 0))
+ dep = ("seth", "GE", (1, 3, 0))
self.assertFalse(self.po.inPrcoRange('provides', dep))
def testProvidesGeFailOnRelease(self):
- dep = ("seth", GE, (1, 2, 4))
+ dep = ("seth", "GE", (1, 2, 4))
self.assertFalse(self.po.inPrcoRange('provides', dep))
def testProvidesGtPass(self):
- dep = ("seth", GT, (1, 0, 0))
+ dep = ("seth", "GT", (1, 0, 0))
self.assertTrue(self.po.inPrcoRange('provides', dep))
def testProvidesGtFail(self):
- dep = ("seth", GT, (1, 2, 4))
+ dep = ("seth", "GT", (1, 2, 4))
self.assertFalse(self.po.inPrcoRange('provides', dep))
def testProvidesGtFailOnEqual(self):
- dep = ("seth", GT, (1, 2, 3))
+ dep = ("seth", "GT", (1, 2, 3))
self.assertFalse(self.po.inPrcoRange('provides', dep))
def testProvidesEqPass(self):
- dep = ("seth", EQ, (1, 2, 3))
+ dep = ("seth", "EQ", (1, 2, 3))
self.assertTrue(self.po.inPrcoRange('provides', dep))
def testProvidesEqFailGt(self):
- dep = ("seth", EQ, (1, 2, 0))
+ dep = ("seth", "EQ", (1, 2, 0))
self.assertFalse(self.po.inPrcoRange('provides', dep))
def testProvidesEqFailLt(self):
- dep = ("seth", EQ, (1, 2, 4))
+ dep = ("seth", "EQ", (1, 2, 4))
self.assertFalse(self.po.inPrcoRange('provides', dep))
def testProvidesLePassEq(self):
- dep = ("seth", LE, (1, 2, 3))
+ dep = ("seth", "LE", (1, 2, 3))
self.assertTrue(self.po.inPrcoRange('provides', dep))
def testProvidesLePassGt(self):
- dep = ("seth", LE, (1, 5, 2))
+ dep = ("seth", "LE", (1, 5, 2))
self.assertTrue(self.po.inPrcoRange('provides', dep))
def testProvidesLeFail(self):
- dep = ("seth", LE, (0, 2, 2))
+ dep = ("seth", "LE", (0, 2, 2))
self.assertFalse(self.po.inPrcoRange('provides', dep))
def testProvidesLtPass(self):
- dep = ("seth", LT, (1, 2, 6))
+ dep = ("seth", "LT", (1, 2, 6))
self.assertTrue(self.po.inPrcoRange('provides', dep))
def testProvidesLtFailEq(self):
- dep = ("seth", LT, (1, 2, 3))
+ dep = ("seth", "LT", (1, 2, 3))
self.assertFalse(self.po.inPrcoRange('provides', dep))
def testProvidesLtFailGt(self):
- dep = ("seth", LT, (1, 0, 2))
+ dep = ("seth", "LT", (1, 0, 2))
self.assertFalse(self.po.inPrcoRange('provides', dep))
@@ -189,13 +188,12 @@ class RangeCompareTests(unittest.TestCase):
def testRangeCompare(self):
for requires, provides, result in (
- (('foo', EQ, ('0', '1.4.4', '0')), ('foo', EQ, ('0', '1.4.4', '0')), 1),
- (('foo', EQ, ('0', '1.4.4', '0')), ('foo', EQ, ('0', '1.4.4', None)), 1),
- (('foo', EQ, ('0', '1.4.4', None)), ('foo', EQ, ('0', '1.4.4', '8')), 1),
- (('foo', LT, ('0', '1.5.4', None)), ('foo', EQ, ('0', '1.4.4', '7')), 1),
- (('foo', GE, ('0', '1.4.4', '7.1')), ('foo', EQ, ('0', '1.4.4', '7')), 0),
- (('foo', EQ, ('0', '1.4', None)), ('foo', EQ, ('0', '1.4.4', '7')), 0),
- (('foo', GT, ('1', '1.4.4', None)), ('foo', EQ, ('3', '1.2.4', '7')), 1),
+ (('foo', 'EQ', ('0', '1.4.4', '0')), ('foo', 'EQ', ('0', '1.4.4', '0')), 1),
+ (('foo', 'EQ', ('0', '1.4.4', '0')), ('foo', 'EQ', ('0', '1.4.4', None)), 1),
+ (('foo', 'EQ', ('0', '1.4.4', None)), ('foo', 'EQ', ('0', '1.4.4', '8')), 1),
+ (('foo', 'LT', ('0', '1.5.4', None)), ('foo', 'EQ', ('0', '1.4.4', '7')), 1),
+ (('foo', 'GE', ('0', '1.4.4', '7.1')), ('foo', 'EQ', ('0', '1.4.4', '7')), 0),
+ (('foo', 'EQ', ('0', '1.4', None)), ('foo', 'EQ', ('0', '1.4.4', '7')), 0),
+ (('foo', 'GT', ('1', '1.4.4', None)), ('foo', 'EQ', ('3', '1.2.4', '7')), 1),
):
- self.assertEquals(miscutils.rangeCompare(requires, provides), result,
- "%r %r: %r" % (requires, provides, result))
+ self.assertEquals(miscutils.rangeCompare(requires, provides), result)
diff --git a/test/simpleobsoletestests.py b/test/simpleobsoletestests.py
index f10f6e4..05ebf05 100644
--- a/test/simpleobsoletestests.py
+++ b/test/simpleobsoletestests.py
@@ -226,11 +226,11 @@ class GitMetapackageObsoletesTests(OperationsTests):
pkgs.metapackage = FakePackage('git', '1.5.4.2', '1', '0', 'x86_64')
# obsoletes
pkgs.new_git = FakePackage('git', '1.5.4.4', '1', '0', 'x86_64')
- pkgs.new_git.addObsoletes('git-core', LE, ('0', '1.5.4.3', '1'))
- pkgs.new_git.addProvides('git-core', EQ, ('0', '1.5.4', '1'))
+ pkgs.new_git.addObsoletes('git-core', 'LE', ('0', '1.5.4.3', '1'))
+ pkgs.new_git.addProvides('git-core', 'EQ', ('0', '1.5.4', '1'))
pkgs.git_all = FakePackage('git-all', '1.5.4', '1', '0', 'x86_64')
- pkgs.git_all.addObsoletes('git', LE, ('0', '1.5.4.3', '1'))
+ pkgs.git_all.addObsoletes('git', 'LE', ('0', '1.5.4.3', '1'))
def testGitMetapackageOnlyCoreInstalled(self):
diff --git a/test/simpleupdatetests.py b/test/simpleupdatetests.py
index 180c880..fe4f414 100644
--- a/test/simpleupdatetests.py
+++ b/test/simpleupdatetests.py
@@ -18,18 +18,18 @@ class SimpleUpdateTests(OperationsTests):
def buildPkgs(pkgs, *args):
# installed
pkgs.installed_i386 = FakePackage('zsh', '1', '1', '0', 'i386')
- pkgs.installed_i386.addRequires('bar', EQ, ('0', '1', '1'))
+ pkgs.installed_i386.addRequires('bar', 'EQ', ('0', '1', '1'))
pkgs.installed_x86_64 = FakePackage('zsh', '1', '1', '0', 'x86_64')
- pkgs.installed_x86_64.addRequires('bar', EQ, ('0', '1', '1'))
+ pkgs.installed_x86_64.addRequires('bar', 'EQ', ('0', '1', '1'))
pkgs.installed_noarch = FakePackage('zsh', '1', '1', '0', 'noarch')
- pkgs.installed_noarch.addRequires('bar', EQ, ('0', '1', '1'))
+ pkgs.installed_noarch.addRequires('bar', 'EQ', ('0', '1', '1'))
# updates
pkgs.update_i386 = FakePackage('zsh', '2', '1', '0', 'i386')
pkgs.update_x86_64 = FakePackage('zsh', '2', '1', '0', 'x86_64')
pkgs.update_noarch = FakePackage('zsh', '2', '1', '0', 'noarch')
# requires update (UpdateForDependency tests)
pkgs.requires_update = FakePackage('zsh-utils', '2', '1', '0', 'noarch')
- pkgs.requires_update.addRequires('zsh', EQ, ('0', '2', '1'))
+ pkgs.requires_update.addRequires('zsh', 'EQ', ('0', '2', '1'))
# removed requirement due to update (UpdateForDependency2 tests)
pkgs.required = FakePackage('bar', '1', '1', '0')
pkgs.required_updated = FakePackage('bar', version='2')
diff --git a/test/skipbroken-tests.py b/test/skipbroken-tests.py
index 2b9aabd..e15ae56 100644
--- a/test/skipbroken-tests.py
+++ b/test/skipbroken-tests.py
@@ -76,7 +76,7 @@ class SkipBrokenTests(DepsolveTests):
po2 = self.repoPackage('foo', '2')
ipo = self.instPackage('foo-tools', '2.5')
- ipo.addRequires('foo', EQ, ('0', '1', '0'))
+ ipo.addRequires('foo', 'EQ', ('0', '1', '0'))
self.tsInfo.addUpdate(po2, oldpo=po1)
@@ -89,9 +89,9 @@ class SkipBrokenTests(DepsolveTests):
is not provided, the update should be skipped and result in a empty transaction
'''
po1 = self.instPackage('foo', '1')
- po1.addRequires('foo-tools', EQ, ('0', '1', '0'))
+ po1.addRequires('foo-tools', 'EQ', ('0', '1', '0'))
po2 = self.repoPackage('foo', '2')
- po2.addRequires('foo-tools', EQ, ('0', '2', '0'))
+ po2.addRequires('foo-tools', 'EQ', ('0', '2', '0'))
ipo = self.instPackage('foo-tools', '1')
@@ -108,13 +108,13 @@ class SkipBrokenTests(DepsolveTests):
there is not longer provided.
'''
po1 = self.instPackage('foo', '1')
- po1.addRequires('foo-tools', EQ, ('0', '1', '0'))
+ po1.addRequires('foo-tools', 'EQ', ('0', '1', '0'))
po2 = self.repoPackage('foo', '2')
- po2.addRequires('foo-tools', EQ, ('0', '2', '0'))
+ po2.addRequires('foo-tools', 'EQ', ('0', '2', '0'))
ipo = self.instPackage('foo-tools', '1')
por = self.repoPackage('foo-gui', '1')
- por.addRequires('foo', EQ, ('0', '2', '0'))
+ por.addRequires('foo', 'EQ', ('0', '2', '0'))
self.tsInfo.addUpdate(po2, oldpo=po1)
self.tsInfo.addInstall(por)
@@ -129,7 +129,7 @@ class SkipBrokenTests(DepsolveTests):
'''
ipo = self.instPackage('foo', '1')
ipo2 = self.instPackage('foo-tools', '1')
- ipo2.addRequires('foo', EQ, ('0', '1', '0'))
+ ipo2.addRequires('foo', 'EQ', ('0', '1', '0'))
self.tsInfo.addErase(ipo)
self.assertEquals('ok', *self.resolveCode(skip=True))
@@ -141,10 +141,10 @@ class SkipBrokenTests(DepsolveTests):
'''
ipo = self.instPackage('foo', '1')
ipo2 = self.instPackage('foo-tools', '1')
- ipo2.addRequires('foo', EQ, ('0', '1', '0'))
+ ipo2.addRequires('foo', 'EQ', ('0', '1', '0'))
upo2 = self.repoPackage('foo-tools', '2')
- upo2.addRequires('foo', EQ, ('0', '1', '0'))
+ upo2.addRequires('foo', 'EQ', ('0', '1', '0'))
self.tsInfo.addErase(ipo)
self.tsInfo.addUpdate(upo2, oldpo=ipo2)
@@ -158,10 +158,10 @@ class SkipBrokenTests(DepsolveTests):
'''
ipo = self.instPackage('foo', '1')
ipo2 = self.instPackage('foo-tools', '1')
- ipo2.addRequires('foo', EQ, ('0', '1', '0'))
+ ipo2.addRequires('foo', 'EQ', ('0', '1', '0'))
upo2 = self.repoPackage('foo-tools', '2')
- upo2.addRequires('foo', EQ, ('0', '1', '0'))
+ upo2.addRequires('foo', 'EQ', ('0', '1', '0'))
self.tsInfo.addUpdate(upo2, oldpo=ipo2)
self.tsInfo.addErase(ipo)
@@ -176,7 +176,7 @@ class SkipBrokenTests(DepsolveTests):
'''
po1 = self.instPackage('foo', '1')
po2 = self.repoPackage('foo', '2')
- po2.addConflicts('bar', EQ, ('0', '1', '0'))
+ po2.addConflicts('bar', 'EQ', ('0', '1', '0'))
ipo = self.instPackage('bar', '1')
@@ -193,13 +193,13 @@ class SkipBrokenTests(DepsolveTests):
'''
po1 = self.instPackage('foo', '1')
po2 = self.repoPackage('foo', '2')
- po2.addConflicts('bar', EQ, ('0', '1', '0'))
+ po2.addConflicts('bar', 'EQ', ('0', '1', '0'))
ipo = self.instPackage('bar', '1')
xpo = self.repoPackage('bar', '2')
- xpo.addRequires('foo', EQ, ('0', '1', '0'))
+ xpo.addRequires('foo', 'EQ', ('0', '1', '0'))
self.tsInfo.addUpdate(po2, oldpo=po1)
@@ -215,13 +215,13 @@ class SkipBrokenTests(DepsolveTests):
'''
po1 = self.instPackage('foo', '1')
po2 = self.repoPackage('foo', '2')
- po2.addConflicts('bar', EQ, ('0', '1', '0'))
+ po2.addConflicts('bar', 'EQ', ('0', '1', '0'))
ipo = self.instPackage('bar', '1')
xpo = self.repoPackage('bar', '2')
- xpo.addRequires('poo', EQ, ('0', '1', '0'))
+ xpo.addRequires('poo', 'EQ', ('0', '1', '0'))
self.tsInfo.addUpdate(po2, oldpo=po1)
@@ -286,7 +286,7 @@ class SkipBrokenTests(DepsolveTests):
self.tsInfo.addInstall(po1)
po2 = self.repoPackage('bar')
- po2.addRequires('baz', EQ, (None, '2', '1'))
+ po2.addRequires('baz', 'EQ', (None, '2', '1'))
ipo = self.instPackage('baz')
upo = self.repoPackage('baz', '2', '1')
@@ -353,7 +353,7 @@ class SkipBrokenTests(DepsolveTests):
ipo2 = self.instPackage('foo', '1',arch='x86_64')
po1 = self.repoPackage('foo', '2',arch='i386')
po2 = self.repoPackage('foo', '2',arch='x86_64')
- po2.addRequires('notfound', EQ, ('0', '1', '0'))
+ po2.addRequires('notfound', 'EQ', ('0', '1', '0'))
self.tsInfo.addUpdate(po1, oldpo=ipo1)
self.tsInfo.addUpdate(po2, oldpo=ipo2)
self.assertEquals('empty', *self.resolveCode(skip=True))
diff --git a/test/testbase.py b/test/testbase.py
index b939c12..372fec3 100644
--- a/test/testbase.py
+++ b/test/testbase.py
@@ -16,18 +16,6 @@ import inspect
from rpmUtils import arch
#############################################################
-### RPM Flag constants ######################################
-#############################################################
-import rpm
-
-GT = rpm.RPMSENSE_GREATER
-GE = rpm.RPMSENSE_EQUAL | rpm.RPMSENSE_GREATER
-LT = rpm.RPMSENSE_LESS
-LE = rpm.RPMSENSE_LESS | rpm.RPMSENSE_EQUAL
-EQ = rpm.RPMSENSE_EQUAL
-
-
-#############################################################
### Helper classes ##########################################
#############################################################
@@ -72,7 +60,7 @@ class FakePackage(packages.YumAvailablePackage):
self.arch = arch
self.pkgtup = (self.name, self.arch, self.epoch, self.version, self.release)
- self.prco['provides'].append((name, EQ, (epoch, version, release)))
+ self.prco['provides'].append((name, 'EQ', (epoch, version, release)))
# Just a unique integer
self.id = self.__hash__()
@@ -169,7 +157,7 @@ class DepsolveTests(_DepsolveTestsBase):
def testInstallPackageRequireInstalled(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
- po.addRequires('zip', EQ, (None, '1.3', '2'))
+ po.addRequires('zip', 'EQ', (None, '1.3', '2'))
self.tsInfo.addInstall(po)
ipo = FakePackage('zip', '1.3', '2', None, 'i386')
diff --git a/yum/__init__.py b/yum/__init__.py
index c621a73..ee096c6 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -1485,7 +1485,12 @@ class YumBase(depsolve.Depsolve):
if r.startswith('rpmlib('):
continue
- pkgresults[req] = self.pkgs.getProvides(r, f, v).keys()
+ satisfiers = []
+
+ for po in self.whatProvides(r, f, v):
+ satisfiers.append(po)
+
+ pkgresults[req] = satisfiers
return results
@@ -1956,7 +1961,10 @@ class YumBase(depsolve.Depsolve):
raise Errors.YumBaseError, _('Invalid version flag')
depflags = SYMBOLFLAGS[flagsymbol]
- return self.pkgSack.getProvides(depname, depflags, depver).keys()
+ sack = self.whatProvides(depname, depflags, depver)
+ results = sack.returnPackages()
+ return results
+
def returnPackageByDep(self, depstring):
"""Pass in a generic [build]require string and this function will
diff --git a/yum/depsolve.py b/yum/depsolve.py
index ead17b7..dad4912 100644
--- a/yum/depsolve.py
+++ b/yum/depsolve.py
@@ -53,6 +53,12 @@ except:
for y in args:
if x < y: x = y
return x
+flags = {"GT": rpm.RPMSENSE_GREATER,
+ "GE": rpm.RPMSENSE_EQUAL | rpm.RPMSENSE_GREATER,
+ "LT": rpm.RPMSENSE_LESS,
+ "LE": rpm.RPMSENSE_LESS | rpm.RPMSENSE_EQUAL,
+ "EQ": rpm.RPMSENSE_EQUAL,
+ None: 0 }
class Depsolve(object):
@@ -135,6 +141,45 @@ class Depsolve(object):
for flag in self.tsInfo.probFilterFlags:
probfilter |= flag
self._ts.setProbFilter(probfilter)
+
+ def whatProvides(self, name, flags, version):
+ """searches the packageSacks for what provides the arguments
+ returns a ListPackageSack of providing packages, possibly empty"""
+
+ 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)
+
+
+ if flags == 0:
+ flags = None
+ if type(version) in (types.StringType, types.NoneType, types.UnicodeType):
+ (r_e, r_v, r_r) = rpmUtils.miscutils.stringToVersion(version)
+ elif type(version) in (types.TupleType, types.ListType): # would this ever be a ListType?
+ (r_e, r_v, r_r) = version
+
+ defSack = ListPackageSack() # holder for items definitely providing this dep
+
+ 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:
+ # file dep add all matches to the defSack
+ defSack.addPackage(po)
+ continue
+
+ if po.checkPrco('provides', (name, flags, (r_e, r_v, r_r))):
+ defSack.addPackage(po)
+ self.verbose_logger.debug(_('Matched %s to require for %s'), po, name)
+
+ return defSack
def allowedMultipleInstalls(self, po):
"""takes a packageObject, returns 1 or 0 depending on if the package
@@ -206,7 +251,7 @@ class Depsolve(object):
self.verbose_logger.log(logginglevels.DEBUG_1,
_('Removing Package %s'), txmbr.po)
- def _processReq(self, po, requirement, remove_txmbr=None):
+ def _processReq(self, po, requirement):
"""processes a Requires dep from the resolveDeps functions, returns a tuple
of (CheckDeps, missingdep, conflicts, errors) the last item is an array
of error messages"""
@@ -222,7 +267,7 @@ class Depsolve(object):
if po.repo.id != "installed":
CheckDeps, missingdep = self._requiringFromTransaction(po, requirement, errormsgs)
else:
- CheckDeps, missingdep = self._requiringFromInstalled(po, requirement, remove_txmbr, errormsgs)
+ CheckDeps, missingdep = self._requiringFromInstalled(po, requirement, errormsgs)
# Check packages with problems
if missingdep:
@@ -241,7 +286,7 @@ class Depsolve(object):
return (CheckDeps, missingdep, errormsgs)
- def _requiringFromInstalled(self, requiringPo, requirement, remove_txmbr, errorlist):
+ def _requiringFromInstalled(self, requiringPo, requirement, errorlist):
"""processes the dependency resolution for a dep where the requiring
package is installed"""
@@ -256,15 +301,71 @@ class Depsolve(object):
needname, needflags, needversion = requirement
niceformatneed = rpmUtils.miscutils.formatRequire(needname, needversion, needflags)
- if not remove_txmbr:
- for po in self.rpmdb.getProvides(*requirement):
- for txmbr in self.tsInfo.getMembersWithState(po.pkgtup, TS_REMOVE_STATES):
- if (remove_txmbr is None or
- (not txmbr.obsoleted_by and not txmbr.updated_by)):
- # prefer true deletes
- remove_txmbr = txmbr
+
+ # we must first find out why the requirement is no longer there
+ # we must find out what provides/provided it from the rpmdb (if anything)
+ # then check to see if that thing is being acted upon by the transaction set
+ # if it is then we need to find out what is being done to it and act accordingly
+ needmode = None # mode in the transaction of the needed pkg (if any)
+ needpo = None
+ providers = []
+
+ if self.cheaterlookup.has_key((needname, needflags, needversion)):
+ self.verbose_logger.log(logginglevels.DEBUG_2, _('Needed Require has already been looked up, cheating'))
+ cheater_po = self.cheaterlookup[(needname, needflags, needversion)]
+ providers = [cheater_po]
+
+ elif self.rpmdb.contains(name=needname):
+ txmbrs = self.tsInfo.matchNaevr(name=needname)
+ for txmbr in txmbrs:
+ providers.append(txmbr.po)
+
+ else:
+ self.verbose_logger.log(logginglevels.DEBUG_2, _('Needed Require is not a package name. Looking up: %s'), niceformatneed)
+ providers = self.rpmdb.getProvides(needname, needflags, needversion)
+
+ for inst_po in providers:
+ inst_str = '%s.%s %s:%s-%s' % inst_po.pkgtup
+ (i_n, i_a, i_e, i_v, i_r) = inst_po.pkgtup
+ self.verbose_logger.log(logginglevels.DEBUG_2,
+ _('Potential Provider: %s'), inst_str)
+ thismode = self.tsInfo.getMode(name=i_n, arch=i_a,
+ epoch=i_e, ver=i_v, rel=i_r)
+
+ if thismode is None and i_n in self.conf.exactarchlist:
+ # check for mode by the same name+arch
+ thismode = self.tsInfo.getMode(name=i_n, arch=i_a)
+
+ if thismode is None and i_n not in self.conf.exactarchlist:
+ # check for mode by just the name
+ thismode = self.tsInfo.getMode(name=i_n)
+
+ # if this package is being obsoleted, it's just like if it's
+ # being upgraded as far as checking for other providers
+ if thismode is None:
+ if filter(lambda x: x.obsoleted_by,
+ self.tsInfo.matchNaevr(i_n, i_a, i_e, i_v, i_r)):
+ thismode = 'u'
+
+ if thismode is not None:
+ needmode = thismode
+
+ self.cheaterlookup[(needname, needflags, needversion)] = inst_po
+ self.verbose_logger.log(logginglevels.DEBUG_2, _('Mode is %s for provider of %s: %s'),
+ needmode, niceformatneed, inst_str)
+ break
+
+ self.verbose_logger.log(logginglevels.DEBUG_2, _('Mode for pkg providing %s: %s'),
+ niceformatneed, needmode)
+
+ if needmode in ['e']:
+ self.verbose_logger.log(logginglevels.DEBUG_2, _('TSINFO: %s package requiring %s marked as erase'),
+ requiringPo, needname)
+ txmbr = self.tsInfo.addErase(requiringPo)
+ txmbr.setAsDep(po=inst_po)
+ checkdeps = 1
- if remove_txmbr and (remove_txmbr.obsoleted_by or remove_txmbr.updated_by):
+ if needmode in ['i', 'u']:
length = len(self.tsInfo)
self.update(name=name, epoch=epoch, version=ver, release=rel)
txmbrs = self.tsInfo.getMembersWithState(requiringPo.pkgtup, TS_REMOVE_STATES)
@@ -278,16 +379,23 @@ class Depsolve(object):
return checkdeps, missingdep
self.verbose_logger.log(logginglevels.DEBUG_2, _('Cannot find an update path for dep for: %s'), niceformatneed)
return self._requiringFromTransaction(requiringPo, requirement, errorlist)
+
- if remove_txmbr and remove_txmbr.ts_state=='e' and not (remove_txmbr.obsoleted_by or remove_txmbr.updated_by):
- self.verbose_logger.log(logginglevels.DEBUG_2, _('TSINFO: %s package requiring %s marked as erase'),
- requiringPo, needname)
- txmbr = self.tsInfo.addErase(requiringPo)
- txmbr.setAsDep(po=remove_txmbr.po)
- checkdeps = 1
- return checkdeps, missingdep
+ if needmode is None:
+ reqpkg = (name, ver, rel, None)
+ if self.pkgSack is None:
+ return self._requiringFromTransaction(requiringPo, requirement, errorlist)
+ else:
+ prob_pkg = "%s (%s)" % (requiringPo,requiringPo.repoid)
+ msg = _('Unresolvable requirement %s for %s') % (niceformatneed,
+ prob_pkg)
+ self.verbose_logger.log(logginglevels.DEBUG_2, msg)
+ checkdeps = 0
+ missingdep = 1
+ errorlist.append(msg)
- return self._requiringFromTransaction(requiringPo, requirement, errorlist)
+ return checkdeps, missingdep
+
def _requiringFromTransaction(self, requiringPo, requirement, errorlist):
"""processes the dependency resolution for a dep where requiring
@@ -319,8 +427,7 @@ class Depsolve(object):
# - if they are the same
# - be confused but continue
- provSack = ListPackageSack(self.pkgSack.getProvides(
- needname, needflags or None, rpmUtils.miscutils.stringToVersion(needversion)))
+ provSack = self.whatProvides(needname, needflags, needversion)
# get rid of things that are already in the rpmdb - b/c it's pointless to use them here
@@ -547,17 +654,10 @@ class Depsolve(object):
# check global FileRequires
if CheckRemoves:
CheckRemoves = False
- filerequires = self._checkFileRequires()
- while True:
- for po, dep in filerequires:
- (checkdep, missing, errormsgs) = self._processReq(po, dep)
- CheckDeps |= checkdep
- errors += errormsgs
- if CheckDeps:
- filerequires = self._checkFileRequires()
- break
- else:
- break # end while loop if for loop ran through
+ for po, dep in self._checkFileRequires():
+ (checkdep, missing, errormsgs) = self._processReq(po, dep)
+ CheckDeps |= checkdep
+ errors += errormsgs
if CheckDeps:
if self.dsCallback: self.dsCallback.restartLoop()
@@ -567,17 +667,10 @@ class Depsolve(object):
# check Conflicts
if CheckInstalls:
CheckInstalls = False
- conflicts = self._checkConflicts()
- while True:
- for conflict in conflicts:
- (checkdep, errormsgs) = self._processConflict(*conflict)
- CheckDeps |= checkdep
- errors += errormsgs
- if checkdep:
- conflicts = self._checkConflicts()
- break
- else:
- break # end while loop if for loop ran through
+ for conflict in self._checkConflicts():
+ (checkdep, errormsgs) = self._processConflict(*conflict)
+ CheckDeps |= checkdep
+ errors += errormsgs
if CheckDeps:
if self.dsCallback: self.dsCallback.restartLoop()
@@ -643,21 +736,11 @@ class Depsolve(object):
CheckRemoves = True
missing_in_pkg = False
-
- while True:
- for po, dep, removed_txmbr in thisneeds:
- (checkdep, missing, errormsgs) = self._processReq(po, dep, removed_txmbr)
- CheckDeps |= checkdep
- errors += errormsgs
- missing_in_pkg |= missing
- if checkdep:
- if (txmbr.output_state in TS_INSTALL_STATES) == (txmbr.po.state != None):
- thisneeds = self._checkInstall(txmbr)
- else:
- thisneeds = self._checkRemove(txmbr)
- break
- else:
- break
+ for po, dep in thisneeds:
+ (checkdep, missing, errormsgs) = self._processReq(po, dep)
+ CheckDeps |= checkdep
+ errors += errormsgs
+ missing_in_pkg |= missing
if not missing_in_pkg:
self.tsInfo.markAsResolved(txmbr)
@@ -678,6 +761,7 @@ class Depsolve(object):
oldreqs.extend(oldpo.returnPrco('requires'))
oldreqs = set(oldreqs)
+ ret = []
for req in txmbr_reqs:
if req[0].startswith('rpmlib('):
continue
@@ -689,7 +773,8 @@ class Depsolve(object):
self.verbose_logger.log(logginglevels.DEBUG_2, _("looking for %s as a requirement of %s"), req, txmbr)
provs = self.tsInfo.getProvides(*req)
if not provs:
- yield (txmbr.po, (req[0], req[1], version_tuple_to_string(req[2])), None)
+ ret.append( (txmbr.po, (req[0], flags[req[1]], version_tuple_to_string(req[2]))) )
+ continue
#Add relationship
for po in provs:
@@ -699,6 +784,8 @@ class Depsolve(object):
pkgtup=po.pkgtup, output_states=TS_INSTALL_STATES):
member.relatedto.append((txmbr.po, 'dependson'))
+ return ret
+
def _checkRemove(self, txmbr):
po = txmbr.po
provs = po.returnPrco('provides')
@@ -709,6 +796,7 @@ class Depsolve(object):
for newpo in txmbr.updated_by:
for p in newpo.provides:
newpoprovs[p] = 1
+ ret = []
# iterate over the provides of the package being removed
# and see what's actually going away
@@ -720,11 +808,13 @@ class Depsolve(object):
for pkg, hits in self.tsInfo.getRequires(*prov).iteritems():
for rn, rf, rv in hits:
if not self.tsInfo.getProvides(rn, rf, rv):
- yield (pkg, (rn, rf, version_tuple_to_string(rv)), txmbr)
+ ret.append( (pkg, (rn, flags[rf], version_tuple_to_string(rv))) )
+ return ret
def _checkFileRequires(self):
fileRequires = set()
reverselookup = {}
+ ret = []
# generate list of file requirement in rpmdb
if self.installedFileRequires is None:
@@ -771,9 +861,13 @@ class Depsolve(object):
for filename in fileRequires:
if not self.tsInfo.getOldProvides(filename) and not self.tsInfo.getNewProvides(filename):
for po in reverselookup[filename]:
- yield (po, (filename, 0, ''))
+ ret.append( (po, (filename, 0, '')) )
+
+ return ret
+
def _checkConflicts(self):
+ ret = [ ]
for po in self.rpmdb.returnPackages():
if self.tsInfo.getMembersWithState(po.pkgtup, output_states=TS_REMOVE_STATES):
continue
@@ -782,7 +876,7 @@ class Depsolve(object):
for conflicting_po in self.tsInfo.getNewProvides(r, f, v):
if conflicting_po.pkgtup[0] == po.pkgtup[0] and conflicting_po.pkgtup[2:] == po.pkgtup[2:]:
continue
- yield (po, (r, f, version_tuple_to_string(v)), conflicting_po)
+ ret.append( (po, (r, flags[f], version_tuple_to_string(v)), conflicting_po) )
for txmbr in self.tsInfo.getMembersWithState(output_states=TS_INSTALL_STATES):
po = txmbr.po
for conflict in txmbr.po.returnPrco('conflicts'):
@@ -790,7 +884,8 @@ class Depsolve(object):
for conflicting_po in self.tsInfo.getProvides(r, f, v):
if conflicting_po.pkgtup[0] == po.pkgtup[0] and conflicting_po.pkgtup[2:] == po.pkgtup[2:]:
continue
- yield (po, (r, f, version_tuple_to_string(v)), conflicting_po)
+ ret.append( (po, (r, flags[f], version_tuple_to_string(v)), conflicting_po) )
+ return ret
def isPackageInstalled(self, pkgname):
diff --git a/yum/packageSack.py b/yum/packageSack.py
index 4aeccbb..975a39b 100644
--- a/yum/packageSack.py
+++ b/yum/packageSack.py
@@ -88,12 +88,20 @@ class PackageSackBase(object):
"""return dict { packages -> list of matching requires }"""
raise NotImplementedError()
- def getConflicts(self, name, flags=None, version=(None, None, None)):
- """return dict { packages -> list of matching conflicts }"""
+ def searchRequires(self, name):
+ """return list of package requiring the name (any evr and flag)"""
raise NotImplementedError()
- def getObsoletes(self, name, flags=None, version=(None, None, None)):
- """return dict { packages -> list of matching obsoletes }"""
+ def searchProvides(self, name):
+ """return list of package providing the name (any evr and flag)"""
+ raise NotImplementedError()
+
+ def searchConflicts(self, name):
+ """return list of package conflicting with the name (any evr and flag)"""
+ raise NotImplementedError()
+
+ def searchObsoletes(self, name):
+ """return list of package obsoleting the name (any evr and flag)"""
raise NotImplementedError()
def returnObsoletes(self, newest=False):
@@ -290,13 +298,21 @@ class MetaSack(PackageSackBase):
"""return dict { packages -> list of matching requires }"""
return self._computeAggregateDictResult("getRequires", name, flags, version)
- def getConflicts(self, name, flags=None, version=(None, None, None)):
- """return dict { packages -> list of matching provides }"""
- return self._computeAggregateDictResult("getConflicts", name, flags, version)
+ def searchRequires(self, name):
+ """return list of package requiring the name (any evr and flag)"""
+ return self._computeAggregateListResult("searchRequires", name)
- def getObsoletes(self, name, flags=None, version=(None, None, None)):
- """return dict { packages -> list of matching requires }"""
- return self._computeAggregateDictResult("getObsoletes", name, flags, version)
+ def searchProvides(self, name):
+ """return list of package providing the name (any evr and flag)"""
+ return self._computeAggregateListResult("searchProvides", name)
+
+ def searchConflicts(self, name):
+ """return list of package conflicting with the name (any evr and flag)"""
+ return self._computeAggregateListResult("searchConflicts", name)
+
+ def searchObsoletes(self, name):
+ """return list of package obsoleting the name (any evr and flag)"""
+ return self._computeAggregateListResult("searchObsoletes", name)
def returnObsoletes(self, newest=False):
"""returns a dict of obsoletes dict[obsoleting pkgtuple] = [list of obs]"""
@@ -504,20 +520,14 @@ class PackageSack(PackageSackBase):
result.append(po)
return result
- def _getPRCO(self, PRCO, name, flags=None, version=(None, None, None)):
- """return dict { packages -> list of matching RCO }"""
+ def getProvides(self, name, flags=None, version=(None, None, None)):
+ """return dict { packages -> list of matching provides }"""
self._checkIndexes(failure='build')
result = { }
- for po in getattr(self, PRCO).get(name, []):
- hits = po.matchingPrcos(PRCO, (name, flags, version))
+ for po in self.provides.get(name, []):
+ hits = po.matchingPrcos('provides', (name, flags, version))
if hits:
result[po] = hits
- return result
-
- def getProvides(self, name, flags=None, version=(None, None, None)):
- """return dict { packages -> list of matching provides }"""
- self._checkIndexes(failure='build')
- result = self._getPRCO('provides', name, flags, version)
if name[0] == '/':
hit = (name, None, (None, None, None))
for po in self.searchFiles(name):
@@ -525,11 +535,50 @@ class PackageSack(PackageSackBase):
return result
def getRequires(self, name, flags=None, version=(None, None, None)):
- return self._getPRCO('requires', name, flags, version)
- def getConflicts(self, name, flags=None, version=(None, None, None)):
- return self._getPRCO('conflicts', name, flags, version)
- def getObsoletes(self, name, flags=None, version=(None, None, None)):
- return self._getPRCO('obsoletes', name, flags, version)
+ """return dict { packages -> list of matching requires }"""
+ self._checkIndexes(failure='build')
+ result = { }
+ for po in self.requires.get(name, []):
+ hits = po.matchingPrcos('requires', (name, flags, version))
+ if hits:
+ result[po] = hits
+ return result
+
+ def searchRequires(self, name):
+ """return list of package requiring the name (any evr and flag)"""
+ self._checkIndexes(failure='build')
+ if self.requires.has_key(name):
+ return self.requires[name]
+ else:
+ return []
+
+ def searchProvides(self, name):
+ """return list of package providing the name (any evr and flag)"""
+ # FIXME - should this do a pkgobj.checkPrco((name, flag, (e,v,r,))??
+ # has to do a searchFiles and a searchProvides for things starting with /
+ self._checkIndexes(failure='build')
+ returnList = []
+ if name[0] == '/':
+ returnList.extend(self.searchFiles(name))
+ if self.provides.has_key(name):
+ returnList.extend(self.provides[name])
+ return returnList
+
+ def searchConflicts(self, name):
+ """return list of package conflicting with the name (any evr and flag)"""
+ self._checkIndexes(failure='build')
+ if self.conflicts.has_key(name):
+ return self.conflicts[name]
+ else:
+ return []
+
+ def searchObsoletes(self, name):
+ """return list of package obsoleting the name (any evr and flag)"""
+ self._checkIndexes(failure='build')
+ if self.obsoletes.has_key(name):
+ return self.obsoletes[name]
+ else:
+ return []
def returnObsoletes(self, newest=False):
"""returns a dict of obsoletes dict[obsoleting pkgtuple] = [list of obs]"""
diff --git a/yum/packages.py b/yum/packages.py
index 4e5d61e..49630f6 100644
--- a/yum/packages.py
+++ b/yum/packages.py
@@ -310,8 +310,8 @@ class RpmBase(object):
continue
if f == '=':
- f = rpm.RPMSENSE_EQUAL
- if f != rpm.RPMSENSE_EQUAL and prcotype == 'provides':
+ f = 'EQ'
+ if f != 'EQ' and prcotype == 'provides':
# isn't this odd, it's not 'EQ' and it is a provides
# - it really should be EQ
# use the pkgobj's evr for the comparison
@@ -751,7 +751,9 @@ class YumHeaderPackage(YumAvailablePackage):
if name is None:
continue
- flag = map(misc.share_data, hdr[getattr(rpm, 'RPMTAG_%sFLAGS' % tag)])
+ lst = hdr[getattr(rpm, 'RPMTAG_%sFLAGS' % tag)]
+ flag = map(rpmUtils.miscutils.flagToString, lst)
+ flag = map(misc.share_data, flag)
lst = hdr[getattr(rpm, 'RPMTAG_%sVERSION' % tag)]
vers = map(rpmUtils.miscutils.stringToVersion, lst)
diff --git a/yum/rpmsack.py b/yum/rpmsack.py
index f64409e..7b08ab0 100644
--- a/yum/rpmsack.py
+++ b/yum/rpmsack.py
@@ -93,11 +93,16 @@ class RPMDBPackageSack(PackageSackBase):
self._tup2pkg = {}
self._completely_loaded = False
self._simple_pkgtup_list = []
- self._get_prco_cache = {'provides' : {},
- 'requires' : {},
- 'conflicts' : {},
- 'obsoletes' : {}}
+ self._get_pro_cache = {}
+ self._get_req_cache = {}
self.ts = None
+
+ self._cache = {
+ 'provides' : { },
+ 'requires' : { },
+ 'conflicts' : { },
+ 'obsoletes' : { },
+ }
def _get_pkglist(self):
'''Getter for the pkglist property.
@@ -117,9 +122,15 @@ class RPMDBPackageSack(PackageSackBase):
self._tup2pkg = {}
self._completely_loaded = False
self._simple_pkgtup_list = []
- for cache in self._get_prco_cache.values():
- cache.clear()
+ self._get_pro_cache = {}
+ self._get_req_cache = {}
misc.unshare_data()
+ self._cache = {
+ 'provides' : { },
+ 'requires' : { },
+ 'conflicts' : { },
+ 'obsoletes' : { },
+ }
def readOnlyTS(self):
if not self.ts:
@@ -175,6 +186,43 @@ class RPMDBPackageSack(PackageSackBase):
result = result.values()
return result
+ def searchPrco(self, name, prcotype):
+
+ result = self._cache[prcotype].get(name)
+ if result is not None:
+ return result
+
+ ts = self.readOnlyTS()
+ result = {}
+ tag = self.DEP_TABLE[prcotype][0]
+ mi = ts.dbMatch(tag, name)
+ for hdr in mi:
+ po = self._makePackageObject(hdr, mi.instance())
+ result[po.pkgid] = po
+ del mi
+
+ # If it's not a provides or filename, we are done
+ if prcotype == 'provides' and name[0] == '/':
+ fileresults = self.searchFiles(name)
+ for pkg in fileresults:
+ result[pkg.pkgid] = pkg
+
+ result = result.values()
+ self._cache[prcotype][name] = result
+ return result
+
+ def searchProvides(self, name):
+ return self.searchPrco(name, 'provides')
+
+ def searchRequires(self, name):
+ return self.searchPrco(name, 'requires')
+
+ def searchObsoletes(self, name):
+ return self.searchPrco(name, 'obsoletes')
+
+ def searchConflicts(self, name):
+ return self.searchPrco(name, 'conflicts')
+
def simplePkgList(self):
return self.pkglist
@@ -477,55 +525,63 @@ class RPMDBPackageSack(PackageSackBase):
misc.share_data(r_r)))
return misc.share_data(deptup)
- def _getPRCO(self, PRCO, name, flags=None, version=(None, None, None)):
+ def getProvides(self, name, flags=None, version=(None, None, None)):
"""searches the rpmdb for what provides the arguments
returns a list of pkgtuples of providing packages, possibly empty"""
name = misc.share_data(name)
deptup = self._genDeptup(name, flags, version)
- if deptup in self._get_prco_cache[PRCO]:
- return self._get_prco_cache[PRCO][deptup]
+ if deptup in self._get_pro_cache:
+ return self._get_pro_cache[deptup]
r_v = deptup[2][1]
-
- ts = self.readOnlyTS()
- pkgs = {}
- tag = self.DEP_TABLE[PRCO][0]
- mi = ts.dbMatch(tag, name)
- for hdr in mi:
- po = self._makePackageObject(hdr, mi.instance())
- pkgs[po.pkgid] = po
- del mi
-
- # If it's not a provides or filename, we are done
- if PRCO == 'provides' and name[0] == '/':
- fileresults = self.searchFiles(name)
- for pkg in fileresults:
- pkgs[pkg.pkgid] = pkg
- result = {}
- for po in pkgs.values():
+ pkgs = self.searchProvides(name)
+
+ result = { }
+
+ for po in pkgs:
if name[0] == '/' and r_v is None:
- # file dep add all matches to the defSack
result[po] = [(name, None, (None, None, None))]
continue
- hits = po.matchingPrcos(PRCO, deptup)
+ hits = po.matchingPrcos('provides', deptup)
if hits:
result[po] = hits
- self._get_prco_cache[PRCO][deptup] = result
+ self._get_pro_cache[deptup] = result
return result
- def getProvides(self, name, flags=None, version=(None, None, None)):
- return self._getPRCO('provides', name, flags, version)
+ def whatProvides(self, name, flags, version):
+ # XXX deprecate?
+ return [po.pkgtup for po in self.getProvides(name, flags, version)]
def getRequires(self, name, flags=None, version=(None, None, None)):
- return self._getPRCO('requires', name, flags, version)
+ """searches the rpmdb for what provides the arguments
+ returns a list of pkgtuples of providing packages, possibly empty"""
- def getConflicts(self, name, flags=None, version=(None, None, None)):
- return self._getPRCO('conflicts', name, flags, version)
+ name = misc.share_data(name)
+ deptup = self._genDeptup(name, flags, version)
+ if deptup in self._get_req_cache:
+ return self._get_req_cache[deptup]
+ r_v = deptup[2][1]
+
+ pkgs = self.searchRequires(name)
- def getObsoletes(self, name, flags=None, version=(None, None, None)):
- return self._getPRCO('obsoletes', name, flags, version)
+ result = { }
+ for po in pkgs:
+ if name[0] == '/' and r_v is None:
+ # file dep add all matches to the defSack
+ result[po] = [(name, None, (None, None, None))]
+ continue
+ hits = po.matchingPrcos('requires', deptup)
+ if hits:
+ result[po] = hits
+ self._get_req_cache[deptup] = result
+ return result
+
+ def whatRequires(self, name, flags, version):
+ # XXX deprecate?
+ return [po.pkgtup for po in self.getRequires(name, flags, version)]
+
def main():
sack = RPMDBPackageSack('/')
for p in sack.simplePkgList():
diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index 6b66e31..90cdfb3 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -27,7 +27,6 @@ import yumRepo
from packages import PackageObject, RpmBase, YumAvailablePackage
import Errors
import misc
-import rpm
from sqlutils import executeSQL
import rpmUtils.miscutils
@@ -52,13 +51,6 @@ def catchSqliteException(func):
def _share_data(value):
return misc.share_data(value)
-_flags2rpm = {"GT": rpm.RPMSENSE_GREATER,
- "GE": rpm.RPMSENSE_EQUAL | rpm.RPMSENSE_GREATER,
- "LT": rpm.RPMSENSE_LESS,
- "LE": rpm.RPMSENSE_LESS | rpm.RPMSENSE_EQUAL,
- "EQ": rpm.RPMSENSE_EQUAL,
- None: 0 }
-
class YumAvailablePackageSqlite(YumAvailablePackage, PackageObject, RpmBase):
def __init__(self, repo, db_obj):
self.prco = { 'obsoletes': (),
@@ -243,7 +235,7 @@ class YumAvailablePackageSqlite(YumAvailablePackage, PackageObject, RpmBase):
cur = self._sql_MD('primary', sql, (self.pkgKey,))
self.prco[prcotype] = [ ]
for ob in cur:
- prco_set = (_share_data(ob['name']), _share_data(_flags2rpm[ob['flags']]),
+ prco_set = (_share_data(ob['name']), _share_data(ob['flags']),
(_share_data(ob['epoch']),
_share_data(ob['version']),
_share_data(ob['release'])))
@@ -422,7 +414,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
# or provide a file containing name
def searchAll(self,name, query_type='like'):
# this function is just silly and it reduces down to just this
- return self._searchPrco(name, 'provides')
+ return self.searchPrco(name, 'provides')
def _sql_pkgKey2po(self, repo, cur, pkgs=None):
""" Takes a cursor and maps the pkgKey rows into a list of packages. """
@@ -603,7 +595,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
_share_data(ob['epoch']), _share_data(ob['version']),
_share_data(ob['release']))
(n,f,e,v,r) = ( _share_data(ob['oname']),
- _share_data(_flags2rpm[ob['oflags']]),
+ _share_data(ob['oflags']),
_share_data(ob['oepoch']),
_share_data(ob['oversion']),
_share_data(ob['orelease']))
@@ -650,7 +642,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
cur = cache.cursor()
executeSQL(cur, "select * from %s" % prcotype)
for x in cur:
- val = (_share_data(x['name']), _share_data(_flags2rpm[x['flags']]),
+ val = (_share_data(x['name']), _share_data(x['flags']),
(_share_data(x['epoch']), _share_data(x['version']),
_share_data(x['release'])))
val = _share_data(val)
@@ -713,7 +705,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
(name,))
tmp = { }
for x in cur:
- val = (_share_data(x['name']), _share_data(_flags2rpm[x['flags']]),
+ val = (_share_data(x['name']), _share_data(x['flags']),
(_share_data(x['epoch']), _share_data(x['version']),
_share_data(x['release'])))
val = _share_data(val)
@@ -758,15 +750,9 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
def getRequires(self, name, flags=None, version=(None, None, None)):
return self._search("requires", name, flags, version)
- def getConflicts(self, name, flags=None, version=(None, None, None)):
- return self._search("conflicts", name, flags, version)
-
- def getObsoletes(self, name, flags=None, version=(None, None, None)):
- return self._search("obsoletes", name, flags, version)
-
@catchSqliteException
- def _searchPrco(self, name, prcotype):
+ def searchPrco(self, name, prcotype):
"""return list of packages having prcotype name (any evr and flag)"""
glob = True
querytype = 'glob'
@@ -847,6 +833,23 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
#~ return results
+ def searchProvides(self, name):
+ """return list of packages providing name (any evr and flag)"""
+ return self.searchPrco(name, "provides")
+
+ def searchRequires(self, name):
+ """return list of packages requiring name (any evr and flag)"""
+ return self.searchPrco(name, "requires")
+
+ def searchObsoletes(self, name):
+ """return list of packages obsoleting name (any evr and flag)"""
+ return self.searchPrco(name, "obsoletes")
+
+ def searchConflicts(self, name):
+ """return list of packages conflicting with name (any evr and flag)"""
+ return self.searchPrco(name, "conflicts")
+
+
def db2class(self, db, nevra_only=False):
print 'die die die die die db2class'
pass
commit 9c1f14cea5ca9e920bab2b30af0c6e2ebf403a82
Author: James Antill <james at and.org>
Date: Mon Jun 2 09:43:43 2008 -0400
Revert "Remove old excluded mechanism from SqliteSack"
This reverts commit 4a7acc768e4b466fe23c09435a2beff963461ecb.
This shouldn't be on the stable branch.
diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index 7ab7eb0..6b66e31 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -261,7 +261,8 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
self.primarydb = {}
self.filelistsdb = {}
self.otherdb = {}
- self._excludes = { } # repo ->set(pkgKeys)
+ self.excludes = {}
+ self._excludes = set() # of (repo, pkgKey)
self._all_excludes = {}
self._search_cache = {
'provides' : { },
@@ -294,16 +295,14 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
return 0
exclude_num = 0
- for excludes in self._excludes.values():
- exclude_num += len(excludes)
-
- if hasattr(self, 'pkgobjlist') and not self._all_excludes:
+ for repo in self.excludes:
+ exclude_num += len(self.excludes[repo])
+ if hasattr(self, 'pkgobjlist'):
return len(self.pkgobjlist) - exclude_num
pkg_num = 0
+ sql = "SELECT count(pkgId) FROM packages"
for repo in self.primarydb:
- if repo in self._all_excludes:
- continue
pkg_num += self._sql_MD_pkg_num('primary', repo)
return pkg_num - exclude_num
@@ -332,14 +331,9 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
self.primarydb = {}
self.filelistsdb = {}
self.otherdb = {}
+ self.excludes = {}
+ self._excludes = set()
self._all_excludes = {}
- self._excludes.clear()
- self._search_cache = {
- 'provides' : { },
- 'requires' : { },
- }
- if hasattr(self, 'pkgobjlist'):
- del self.pkgobjlist
yumRepo.YumPackageSack.close(self)
@@ -355,25 +349,33 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
# Because we don't want to remove a package from the database we just
# add it to the exclude list
def delPackage(self, obj):
- if obj.repo in self._all_excludes:
- return
- if not self._excludes.has_key(obj.repo):
- self._excludes[obj.repo] = set()
- self._excludes[obj.repo].add(obj.pkgKey)
+ if not self.excludes.has_key(obj.repo):
+ self.excludes[obj.repo] = {}
+ self.excludes[obj.repo][obj.pkgId] = 1
+ self._excludes.add( (obj.repo, obj.pkgKey) )
def _delAllPackages(self, repo):
""" Exclude all packages from the repo. """
self._all_excludes[repo] = True
- if repo in self._excludes:
- self._excludes[repo].clear()
+ if repo in self.excludes:
+ del self.excludes[repo]
if repo in self._key2pkg:
del self._key2pkg[repo]
+ def _excluded(self, repo, pkgId):
+ if repo in self._all_excludes:
+ return True
+
+ if repo in self.excludes and pkgId in self.excludes[repo]:
+ return True
+
+ return False
+
def _pkgKeyExcluded(self, repo, pkgKey):
if repo in self._all_excludes:
return True
- return self._excludes.has_key(repo) and pkgKey in self._excludes[repo]
+ return (repo, pkgKey) in self._excludes
def _pkgExcluded(self, po):
return self._pkgKeyExcluded(po.repo, po.pkgKey)
@@ -396,6 +398,9 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
else:
self.added[repo] = []
+ if not self.excludes.has_key(repo):
+ self.excludes[repo] = {}
+
if dataobj is None:
raise Errors.RepoError, "Tried to add None %s to %s" % (datatype, repo)
commit af9243770367e8337969738e30ec20bb5a2b7ea0
Author: James Antill <james at and.org>
Date: Sat May 31 17:20:06 2008 -0400
Allow searches with ' in them (need to escape other chars?). bug#240606
diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index f0617bb..7ab7eb0 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -512,6 +512,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
if len(fields) < 1:
return result
+ searchstring = searchstring.replace("'", "''")
basestring="select DISTINCT pkgKey from packages where %s like '%%%s%%' " % (fields[0], searchstring)
for f in fields[1:]:
@@ -537,6 +538,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
if len(searchstrings) > constants.PATTERNS_MAX:
tot = {}
for searchstring in searchstrings:
+ searchstring = searchstring.replace("'", "''")
matches = self.searchPrimaryFields(fields, searchstring)
for po in matches:
tot[po] = tot.get(po, 0) + 1
@@ -553,6 +555,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
selects = []
for s in searchstrings:
+ s = s.replace("'", "''")
basestring="select pkgKey,1 AS cumul from packages where %s like '%%%s%%' " % (fields[0], s)
for f in fields[1:]:
basestring = "%s or %s like '%%%s%%' " % (basestring, f, s)
commit f6317aabb2734357311b6103286a76054c3cd0e9
Author: James Antill <james at and.org>
Date: Sat May 31 17:08:44 2008 -0400
We want to keep other arches in the multilib_policy=all case. bug#449056
diff --git a/yum/__init__.py b/yum/__init__.py
index 72f9091..c621a73 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -53,7 +53,7 @@ from parser import ConfigPreProcessor
import transactioninfo
import urlgrabber
from urlgrabber.grabber import URLGrabError
-from packageSack import packagesNewestByName, packagesNewestByNameArch
+from packageSack import packagesNewestByNameArch
import depsolve
import plugins
import logginglevels
@@ -2187,7 +2187,7 @@ class YumBase(depsolve.Depsolve):
pkgs = use
- pkgs = packagesNewestByName(pkgs)
+ pkgs = packagesNewestByNameArch(pkgs)
pkgbyname = {}
for pkg in pkgs:
commit d6eea66e257a7563489953e7aa971f4ee7ddecd7
Merge: 4c25e7a... 32d40d2...
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Fri May 30 10:49:16 2008 -0400
Merge branch 'yum-3_2_X' of ssh://login1.linux.duke.edu/home/groups/yum/git/yum into yum-3_2_X
* 'yum-3_2_X' of ssh://login1.linux.duke.edu/home/groups/yum/git/yum:
Allow non-obs. looping installs too :)
Work around mutual obs. looping insanity
update sr & sr at latin translation by Igor Miletic
Fix i18n for y/N prompt and sr_RS.utf8 locale, also allow y/N if no overlap
Fix -y config. option in man page: bug#447305
Allow -c URL to work again
commit and/or match from HEAD back to 3.2.X
mention the branch name specifically
label as 3.2.X branch
commit 4c25e7ad472722a2e2b0a02aa4c2d02bfb5446bb
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Fri May 30 10:28:25 2008 -0400
man page patch to close #446587
diff --git a/docs/yum.8 b/docs/yum.8
index 8845989..4b82533 100644
--- a/docs/yum.8
+++ b/docs/yum.8
@@ -282,8 +282,8 @@ Run with gpg signature checking disabled.
.br
Configuration Option: \fBgpgcheck\fP
.IP "\fB\-\-skip\-broken\fP"
-Resolve depsolve problems by removing packages there is causing problems
- from the transaction.
+Resolve depsolve problems by removing packages that are causing problems
+from the transaction.
.br
Configuration Option: \fBskip_broken\fP
.PP
diff --git a/docs/yum.conf.5 b/docs/yum.conf.5
index 54eb8b8..d8b541a 100644
--- a/docs/yum.conf.5
+++ b/docs/yum.conf.5
@@ -60,6 +60,10 @@ default for all repositories. This option also determines whether or not an
install of a package from a local RPM file will be GPG signature checked. The
default is `0'.
+.IP \fBskip_broken\fR
+Either `1' or `0'. Resolve depsolve problems by removing packages that
+are causing problems from the transaction.
+
.IP \fBassumeyes\fR
Either `1' or `0'. Determines whether or not yum prompts for confirmation of
critical actions. Default is `0' (do prompt).
commit 01c63334866e2adda4141cfed007322c39bbed03
Author: James Antill <james at and.org>
Date: Tue May 27 11:26:07 2008 -0400
Fix i18n for y/N prompt and sr_RS.utf8 locale, also allow y/N if no overlap
diff --git a/output.py b/output.py
index 752e18b..f7fbfbb 100644
--- a/output.py
+++ b/output.py
@@ -28,7 +28,7 @@ import re # For YumTerm
from urlgrabber.progress import TextMeter
from urlgrabber.grabber import URLGrabError
-from yum.misc import sortPkgObj, prco_tuple_to_string, to_str, to_unicode_maybe, get_my_lang_code
+from yum.misc import sortPkgObj, prco_tuple_to_string, to_str, to_unicode, get_my_lang_code
from rpmUtils.miscutils import checkSignals
from yum.constants import *
@@ -346,6 +346,9 @@ class YumOutput:
def userconfirm(self):
"""gets a yes or no from the user, defaults to No"""
+ yui = (to_unicode(_('y')), to_unicode(_('yes')))
+ nui = (to_unicode(_('n')), to_unicode(_('no')))
+ aui = (yui[0], yui[1], nui[0], nui[1])
while True:
try:
choice = raw_input(_('Is this ok [y/N]: '))
@@ -355,11 +358,18 @@ class YumOutput:
raise
except:
choice = ''
+ choice = to_unicode(choice)
choice = choice.lower()
- if len(choice) == 0 or choice in [_('y'), _('n'), _('yes'), _('no')]:
+ if len(choice) == 0 or choice in aui:
+ break
+ # If the enlish one letter names don't mix, allow them too
+ if u'y' not in aui and u'y' == choice:
+ choice = yui[0]
+ break
+ if u'n' not in aui and u'n' == choice:
break
- if len(choice) == 0 or choice not in [_('y'), _('yes')]:
+ if len(choice) == 0 or choice not in yui:
return False
else:
return True
@@ -369,7 +379,7 @@ class YumOutput:
mylang = get_my_lang_code()
print _('\nGroup: %s') % group.nameByLang(mylang)
if group.descriptionByLang(mylang) != "":
- print _(' Description: %s') % to_unicode_maybe(group.descriptionByLang(mylang))
+ print _(' Description: %s') % to_unicode(group.descriptionByLang(mylang))
if len(group.mandatory_packages) > 0:
print _(' Mandatory Packages:')
for item in sorted(group.mandatory_packages):
@@ -750,7 +760,7 @@ class YumCliRPMCallBack(RPMBaseCallback):
fmt = self._makefmt(percent, ts_current, ts_total)
msg = fmt % (process, pkgname)
if msg != self.lastmsg:
- sys.stdout.write(to_unicode_maybe(msg))
+ sys.stdout.write(to_unicode(msg))
sys.stdout.flush()
self.lastmsg = msg
if te_current == te_total:
@@ -758,7 +768,7 @@ class YumCliRPMCallBack(RPMBaseCallback):
def scriptout(self, package, msgs):
if msgs:
- sys.stdout.write(to_unicode_maybe(msgs))
+ sys.stdout.write(to_unicode(msgs))
sys.stdout.flush()
def _makefmt(self, percent, ts_current, ts_total, progress = True):
commit 896e244275495d2c31d343509109728617dcfcf4
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Fri May 16 17:22:39 2008 -0400
mention the branch name specifically
diff --git a/README b/README
index edb75d1..b2c3bff 100644
--- a/README
+++ b/README
@@ -29,4 +29,5 @@ Also see the webpage and wiki for more information:
web page: http://linux.duke.edu/yum/
wiki: http://wiki.linux.duke.edu/Yum
-3.2.X Branch
+3.2.X Branch - yum-3_2_X
+
commit 4c5834f09de5b46c6ab2683400e2ec2b36c760bd
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Fri May 16 16:20:10 2008 -0400
label as 3.2.X branch
diff --git a/README b/README
index 6bb0c7c..edb75d1 100644
--- a/README
+++ b/README
@@ -28,3 +28,5 @@ See the man page for more information (man yum)
Also see the webpage and wiki for more information:
web page: http://linux.duke.edu/yum/
wiki: http://wiki.linux.duke.edu/Yum
+
+3.2.X Branch
commit 32d40d2b34eafec8b474bf8d92ed42f5b4a4de04
Author: James Antill <james at and.org>
Date: Thu May 29 11:59:04 2008 -0400
Allow non-obs. looping installs too :)
diff --git a/yum/__init__.py b/yum/__init__.py
index 44f485e..9642d7c 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -2105,11 +2105,14 @@ class YumBase(depsolve.Depsolve):
moving one twice as fast as the other. If they are ever == you have
a loop. If loop we return None, if no loop the last element. """
slow = node
+ done = False
while True:
next = next_func(node)
+ if next is None and not done: return None
if next is None: return node
node = next_func(next)
if node is None: return next
+ done = True
slow = next_func(slow)
if next == slow:
commit 6f9117c0583f9fa84936a78b3dc41b943a6eea41
Author: James Antill <james at and.org>
Date: Wed May 28 15:33:09 2008 -0400
Work around mutual obs. looping insanity
diff --git a/yum/__init__.py b/yum/__init__.py
index cd75ced..44f485e 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -2090,7 +2090,31 @@ class YumBase(depsolve.Depsolve):
return returnlist
-
+ def _pkg2obspkg(self, po):
+ """ Given a package return the package it's obsoleted by and so
+ we should install instead. Or None if there isn't one. """
+ thispkgobsdict = self.up.checkForObsolete([po.pkgtup])
+ if thispkgobsdict.has_key(po.pkgtup):
+ obsoleting = thispkgobsdict[po.pkgtup][0]
+ obsoleting_pkg = self.getPackageObject(obsoleting)
+ return obsoleting_pkg
+ return None
+
+ def _test_loop(self, node, next_func):
+ """ Generic comp. sci. test for looping, walk the list with two pointers
+ moving one twice as fast as the other. If they are ever == you have
+ a loop. If loop we return None, if no loop the last element. """
+ slow = node
+ while True:
+ next = next_func(node)
+ if next is None: return node
+ node = next_func(next)
+ if node is None: return next
+
+ slow = next_func(slow)
+ if next == slow:
+ return None
+
def install(self, po=None, **kwargs):
"""try to mark for install the item specified. Uses provided package
object, if available. If not it uses the kwargs and gets the best
@@ -2222,12 +2246,11 @@ class YumBase(depsolve.Depsolve):
tx_return.extend(txmbrs)
continue
- # make sure we're not installing a package which is obsoleted by something
- # else in the repo
- thispkgobsdict = self.up.checkForObsolete([po.pkgtup])
- if thispkgobsdict.has_key(po.pkgtup):
- obsoleting = thispkgobsdict[po.pkgtup][0]
- obsoleting_pkg = self.getPackageObject(obsoleting)
+ # Make sure we're not installing a package which is obsoleted by
+ # something else in the repo. Unless there is a obsoletion loop,
+ # at which point ignore everything.
+ obsoleting_pkg = self._test_loop(po, self._pkg2obspkg)
+ if obsoleting_pkg is not None:
self.verbose_logger.warning(_('Package %s is obsoleted by %s, trying to install %s instead'),
po.name, obsoleting_pkg.name, obsoleting_pkg)
self.install(po=obsoleting_pkg)
commit 607d0e16b0cc6e6758467c1d8445befdec400947
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date: Tue May 27 15:16:45 2008 +0200
update sr & sr at latin translation by Igor Miletic
diff --git a/po/sr.po b/po/sr.po
index 2d3094f..0f51d47 100644
--- a/po/sr.po
+++ b/po/sr.po
@@ -1,56 +1,57 @@
-# translation of yum.master.sr.po to Serbian
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# translation of sr.po to Serbian
+# Serbian translations for yum
+# Copyright (C) 2008 Linux at Duke
+# This file is distributed under the same license as the yum package.
#
# Jovan Krunic <jovan.krunic at gmail.com>, 2008.
# Igor Miletic <grejigl-gnomeprevod at yahoo.ca>, 2008.
+# MiloÅ¡ KomarÄeviÄ <kmilos at gmail.com>, 2008.
msgid ""
msgstr ""
-"Project-Id-Version: yum.master.sr\n"
+"Project-Id-Version: yum\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-04-07 21:19+0000\n"
-"PO-Revision-Date: 2008-04-07 23:57-0400\n"
-"Last-Translator: Igor Miletic <grejigl-gnomeprevod at yahoo.ca>\n"
-"Language-Team: Serbian <fedora-trans-sr at redhat.com>\n"
+"POT-Creation-Date: 2008-05-26 13:28+0000\n"
+"PO-Revision-Date: 2008-05-26 20:30-0000\n"
+"Last-Translator: MiloÅ¡ KomarÄeviÄ <kmilos at gmail.com>\n"
+"Language-Team: Serbian (sr) <fedora-trans-sr at redhat.com>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.11.4\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-#: ../callback.py:48 ../output.py:513 ../yum/rpmtrans.py:71
+#: ../callback.py:48 ../output.py:516 ../yum/rpmtrans.py:71
msgid "Updating"
-msgstr "AжÑÑиÑаÑе"
+msgstr "AжÑÑиÑам"
#: ../callback.py:49 ../yum/rpmtrans.py:72
msgid "Erasing"
-msgstr "ÐÑиÑаÑе"
+msgstr "ÐÑиÑем"
-#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:512
+#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:515
#: ../yum/rpmtrans.py:73 ../yum/rpmtrans.py:74 ../yum/rpmtrans.py:76
msgid "Installing"
-msgstr "ÐнÑÑалиÑаÑе"
+msgstr "ÐнÑÑалиÑам"
#: ../callback.py:52 ../callback.py:58 ../yum/rpmtrans.py:75
msgid "Obsoleted"
msgstr "ÐÑевазиÑени"
-#: ../callback.py:54 ../output.py:559
+#: ../callback.py:54 ../output.py:562
msgid "Updated"
-msgstr "ÐжÑÑиÑано"
+msgstr "ÐжÑÑиÑани"
#: ../callback.py:55
msgid "Erased"
-msgstr "ÐбÑиÑано"
+msgstr "ÐбÑиÑани"
-#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:557
+#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:560
msgid "Installed"
-msgstr "ÐнÑÑалиÑано"
+msgstr "ÐнÑÑалиÑани"
#: ../callback.py:130
msgid "No header - huh?"
-msgstr "Ðема заглавÑа - Ñе ли?"
+msgstr "Ðема заглавÑа - Ñ
м?"
#: ../callback.py:168
msgid "Repackage"
@@ -66,7 +67,7 @@ msgstr "ÐÑеÑка: погÑеÑно излазно ÑÑаÑе: %s за %s"
msgid "Erased: %s"
msgstr "ÐбÑиÑано: %s"
-#: ../callback.py:217 ../output.py:514
+#: ../callback.py:217 ../output.py:517
msgid "Removing"
msgstr "УклаÑам"
@@ -74,45 +75,45 @@ msgstr "УклаÑам"
msgid "Cleanup"
msgstr "ЧиÑÑеÑе"
-#: ../cli.py:103
+#: ../cli.py:105
#, python-format
msgid "Command \"%s\" already defined"
msgstr "ÐаÑедба â%sâ Ñе Ð²ÐµÑ Ð´ÐµÑиниÑана"
-#: ../cli.py:115
+#: ../cli.py:117
msgid "Setting up repositories"
msgstr "ÐоÑÑавÑам ÑизниÑе"
-#: ../cli.py:126
+#: ../cli.py:128
msgid "Reading repository metadata in from local files"
msgstr "ЧиÑам меÑаподаÑке ÑизниÑа из локалниÑ
даÑоÑека"
-#: ../cli.py:183 ../utils.py:72
+#: ../cli.py:185 ../utils.py:71
#, python-format
msgid "Config Error: %s"
msgstr "ÐÑеÑка пÑи подеÑаваÑÑ: %s"
-#: ../cli.py:186 ../cli.py:1070 ../utils.py:75
+#: ../cli.py:188 ../cli.py:1080 ../utils.py:74
#, python-format
msgid "Options Error: %s"
msgstr "ÐÑеÑка Ñ Ð¾Ð¿ÑиÑама: %s"
-#: ../cli.py:229
+#: ../cli.py:231
msgid "You need to give some command"
msgstr "ÐоÑаÑе да ÑнеÑеÑе Ð½ÐµÐºÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ"
-#: ../cli.py:271
+#: ../cli.py:273
msgid "Disk Requirements:\n"
msgstr "ÐаÑ
Ñеви диÑка:\n"
-#: ../cli.py:273
+#: ../cli.py:275
#, python-format
msgid " At least %dMB needed on the %s filesystem.\n"
-msgstr " ÐаÑмаÑе %dMB Ñе поÑÑебно на ваÑем %s ÑиÑÑÐµÐ¼Ñ Ð´Ð°ÑоÑека.\n"
+msgstr " ÐоÑÑебно Ñе наÑмаÑе %dÐРна %s ÑиÑÑÐµÐ¼Ñ Ð´Ð°ÑоÑека.\n"
#. TODO: simplify the dependency errors?
#. Fixup the summary
-#: ../cli.py:278
+#: ../cli.py:280
msgid ""
"Error Summary\n"
"-------------\n"
@@ -120,225 +121,223 @@ msgstr ""
"СажеÑак гÑеÑака\n"
"-------------\n"
-#: ../cli.py:317
+#: ../cli.py:319
msgid "Trying to run the transaction but nothing to do. Exiting."
-msgstr ""
-"ÐокÑÑавам да извÑÑавам пÑÐµÐ½Ð¾Ñ Ð°Ð»Ð¸ нема ниÑÑа ÑÑо Ð¼Ð¾Ð³Ñ Ð´Ð° ÑÑадим. Ðзлазим."
+msgstr "ÐокÑÑавам да извÑÑим ÑÑанÑакÑиÑÑ Ð°Ð»Ð¸ нема ÑÑа да Ñе Ñади. Ðзлазим."
-#: ../cli.py:347
+#: ../cli.py:349
msgid "Exiting on user Command"
msgstr "Ðзлазим на ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ ÐºÐ¾ÑиÑника"
-#: ../cli.py:351
+#: ../cli.py:353
msgid "Downloading Packages:"
msgstr "ÐÑеÑзимам пакеÑе:"
-#: ../cli.py:356
+#: ../cli.py:358
msgid "Error Downloading Packages:\n"
msgstr "ÐÑеÑка пÑи пÑеÑзимаÑÑ Ð¿Ð°ÐºÐµÑа:\n"
-#: ../cli.py:370 ../yum/__init__.py:2791
+#: ../cli.py:372 ../yum/__init__.py:2816
msgid "Running rpm_check_debug"
msgstr "ÐзвÑÑавам rpm_check_debug"
-#: ../cli.py:373 ../yum/__init__.py:2794
+#: ../cli.py:375 ../yum/__init__.py:2819
msgid "ERROR with rpm_check_debug vs depsolve:"
msgstr "ÐÐ ÐШÐÐ Ñа rpm_check_debug Ñ Ð¾Ð´Ð½Ð¾ÑÑ Ð½Ð° depsolve:"
-#: ../cli.py:377 ../yum/__init__.py:2796
+#: ../cli.py:379 ../yum/__init__.py:2821
msgid "Please report this error in bugzilla"
msgstr "Ðолим ваÑ, пÑиÑавиÑе Ð¾Ð²Ñ Ð³ÑеÑÐºÑ Ñ bugzilla-и"
-#: ../cli.py:383
+#: ../cli.py:385
msgid "Running Transaction Test"
-msgstr "ÐзвÑÑавам пÑовеÑÑ Ð¿ÑеноÑа"
+msgstr "ÐзвÑÑавам пÑовеÑÑ ÑÑанÑакÑиÑе"
-#: ../cli.py:399
+#: ../cli.py:401
msgid "Finished Transaction Test"
-msgstr "ÐавÑÑио Ñам пÑовеÑÑ Ð¿ÑеноÑа"
+msgstr "ÐавÑÑио Ñам пÑовеÑÑ ÑÑанÑакÑиÑе"
-#: ../cli.py:401
+#: ../cli.py:403
msgid "Transaction Check Error:\n"
-msgstr "ÐÑеÑка пÑи пÑовеÑи пÑеноÑа:\n"
+msgstr "ÐÑеÑка пÑи пÑовеÑи ÑÑанÑакÑиÑе:\n"
-#: ../cli.py:408
+#: ../cli.py:410
msgid "Transaction Test Succeeded"
-msgstr "ÐÑовеÑа пÑеноÑа ÑÑпела"
+msgstr "ÐÑовеÑа ÑÑанÑакÑиÑе Ñе ÑÑпела"
-#: ../cli.py:429
+#: ../cli.py:431
msgid "Running Transaction"
-msgstr "ÐзвÑÑавам пÑеноÑ"
+msgstr "ÐзвÑÑавам ÑÑанÑакÑиÑÑ"
-#: ../cli.py:459
+#: ../cli.py:461
msgid ""
"Refusing to automatically import keys when running unattended.\n"
"Use \"-y\" to override."
msgstr ""
-"ÐдбиÑаÑе да Ñе аÑÑомаÑÑки ÑÐ²ÐµÐ·Ñ ÐºÑÑÑеви када Ñе извÑÑаваÑе не надгледа.\n"
+"ÐдбиÑам да аÑÑомаÑÑки Ñвезем кÑÑÑеве када Ñе извÑÑаваÑе не надгледа.\n"
"Ðа пÑевазилажеÑе овога коÑиÑÑиÑе â-yâ."
-#: ../cli.py:491
+#: ../cli.py:493
msgid "Parsing package install arguments"
msgstr "РаÑÑлаÑÑÑем аÑгÑменÑе инÑÑалаÑиÑе пакеÑа"
-#: ../cli.py:501
+#: ../cli.py:503
#, python-format
msgid "No package %s available."
msgstr "Ðе поÑÑоÑи доÑÑÑпан %s пакеÑ."
-#: ../cli.py:505 ../cli.py:623 ../yumcommands.py:777
+#: ../cli.py:507 ../cli.py:625 ../yumcommands.py:790
msgid "Package(s) to install"
msgstr "ÐакеÑ(и) коÑи Ñе Ñе инÑÑалиÑаÑи"
-#: ../cli.py:506 ../cli.py:624 ../yumcommands.py:147 ../yumcommands.py:778
+#: ../cli.py:508 ../cli.py:626 ../yumcommands.py:147 ../yumcommands.py:791
msgid "Nothing to do"
-msgstr "Ðема ниÑÑа да Ñе ÑÑади"
+msgstr "Ðема ÑÑа да Ñе Ñади"
-#: ../cli.py:536 ../yum/__init__.py:2252 ../yum/__init__.py:2352
-#: ../yum/__init__.py:2364
+#: ../cli.py:538 ../yum/__init__.py:2268 ../yum/__init__.py:2368
+#: ../yum/__init__.py:2380
#, python-format
msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
msgstr "Ðе ажÑÑиÑам пакеÑе коÑи ÑÑ Ð²ÐµÑ Ð¿ÑевазиÑени: %s.%s %s:%s-%s"
-#: ../cli.py:568
+#: ../cli.py:570
#, python-format
msgid "Could not find update match for %s"
msgstr "Ðе Ð¼Ð¾Ð³Ñ Ð´Ð° пÑонаÑем одговаÑаÑÑÑе ажÑÑиÑаÑе за %s"
-#: ../cli.py:580
+#: ../cli.py:582
#, python-format
msgid "%d packages marked for Update"
msgstr "%d пакеÑи ознаÑени за ажÑÑиÑаÑе"
-#: ../cli.py:583
+#: ../cli.py:585
msgid "No Packages marked for Update"
msgstr "Ðема пакеÑа ознаÑениÑ
за ажÑÑиÑаÑе"
-#: ../cli.py:599
+#: ../cli.py:601
#, python-format
msgid "%d packages marked for removal"
msgstr "%d пакеÑи ознаÑени за ÑклаÑаÑе"
-#: ../cli.py:602
+#: ../cli.py:604
msgid "No Packages marked for removal"
msgstr "Ðема пакеÑа ознаÑениÑ
за ÑклаÑаÑе"
-#: ../cli.py:614
+#: ../cli.py:616
msgid "No Packages Provided"
msgstr "ÐиÑедан Ð¿Ð°ÐºÐµÑ Ð½Ð¸Ñе добавÑен"
-#: ../cli.py:654
+#: ../cli.py:656
msgid "Matching packages for package list to user args"
msgstr "ÐовезиваÑе пакеÑа за ÑпиÑак пакеÑа по аÑгÑменÑима коÑиÑника"
-#: ../cli.py:701
+#: ../cli.py:704
#, python-format
msgid "Warning: No matches found for: %s"
-msgstr "УпозоÑеÑе: ÐиÑе наÑено подÑдаÑаÑе за %s"
+msgstr "УпозоÑеÑе: ниÑе наÑено подÑдаÑаÑе за %s"
-#: ../cli.py:704
+#: ../cli.py:707
msgid "No Matches found"
msgstr "ÐиÑÑ Ð¿ÑонаÑена подÑдаÑаÑа"
-#: ../cli.py:745
+#: ../cli.py:748
#, python-format
msgid "No Package Found for %s"
msgstr "ÐиÑÑ Ð¿ÑонаÑени пакеÑи за %s"
-#: ../cli.py:757
+#: ../cli.py:760
msgid "Cleaning up Everything"
msgstr "ЧиÑÑим Ñве"
-#: ../cli.py:771
+#: ../cli.py:774
msgid "Cleaning up Headers"
msgstr "ЧиÑÑим заглавÑа"
-#: ../cli.py:774
+#: ../cli.py:777
msgid "Cleaning up Packages"
msgstr "ЧиÑÑим пакеÑе"
-#: ../cli.py:777
+#: ../cli.py:780
msgid "Cleaning up xml metadata"
msgstr "ЧиÑÑим xml меÑаподаÑке"
-#: ../cli.py:780
+#: ../cli.py:783
msgid "Cleaning up database cache"
msgstr "ЧиÑÑим ÐºÐµÑ Ð±Ð°Ð·Ð° подаÑака"
-#: ../cli.py:783
+#: ../cli.py:786
msgid "Cleaning up expire-cache metadata"
msgstr "ЧиÑÑим expire-cache меÑаподаÑке"
-#: ../cli.py:786
+#: ../cli.py:789
msgid "Cleaning up plugins"
msgstr "ЧиÑÑим додаÑке"
-#: ../cli.py:807
+#: ../cli.py:811
msgid "Installed Groups:"
msgstr "ÐнÑÑалиÑане гÑÑпе:"
-#: ../cli.py:814
+#: ../cli.py:818
msgid "Available Groups:"
msgstr "ÐоÑÑÑпне гÑÑпе:"
-#: ../cli.py:820
+#: ../cli.py:824
msgid "Done"
msgstr "УÑаÑено"
-#: ../cli.py:829 ../cli.py:841 ../cli.py:847
+#: ../cli.py:835 ../cli.py:853 ../cli.py:859
#, python-format
msgid "Warning: Group %s does not exist."
msgstr "УпозоÑеÑе: гÑÑпа %s не поÑÑоÑи."
-#: ../cli.py:853
+#: ../cli.py:863
msgid "No packages in any requested group available to install or update"
msgstr ""
-"Ðема пакеÑа Ñ Ñвим заÑ
Ñеваним гÑÑпама, коÑи ÑÑ Ð´Ð¾ÑÑÑпни за инÑÑалаÑиÑÑ Ð¸Ð»Ð¸ "
-"ажÑÑиÑаÑе"
+"Ðема доÑÑÑпниÑ
пакеÑа за инÑÑалаÑиÑÑ Ð¸Ð»Ð¸ ажÑÑиÑаÑе Ñ Ñвим заÑ
Ñеваним гÑÑпама"
-#: ../cli.py:855
+#: ../cli.py:865
#, python-format
msgid "%d Package(s) to Install"
msgstr "%d пакеÑ(и) за инÑÑалаÑиÑÑ"
-#: ../cli.py:865
+#: ../cli.py:875
#, python-format
msgid "No group named %s exists"
msgstr "Ðе поÑÑоÑи гÑÑпа под именом %s"
-#: ../cli.py:871
+#: ../cli.py:881
msgid "No packages to remove from groups"
msgstr "Ðема пакеÑа за ÑклаÑаÑе из гÑÑпа"
-#: ../cli.py:873
+#: ../cli.py:883
#, python-format
msgid "%d Package(s) to remove"
msgstr "%d пакеÑ(и) за ÑклаÑаÑе"
-#: ../cli.py:915
+#: ../cli.py:925
#, python-format
msgid "Package %s is already installed, skipping"
msgstr "ÐÐ°ÐºÐµÑ %s Ñе Ð²ÐµÑ Ð¸Ð½ÑÑалиÑан, пÑеÑкаÑем га"
-#: ../cli.py:926
+#: ../cli.py:936
#, python-format
msgid "Discarding non-comparable pkg %s.%s"
msgstr "УклаÑам неÑпоÑедив Ð¿Ð°ÐºÐµÑ %s.%s"
#. we've not got any installed that match n or n+a
-#: ../cli.py:952
+#: ../cli.py:962
#, python-format
msgid "No other %s installed, adding to list for potential install"
msgstr ""
"Ðе поÑÑоÑи инÑÑалиÑан дÑÑги %s, додаÑем га Ñ ÑпиÑак за поÑенÑиÑÐ°Ð»Ð½Ñ "
"инÑÑалаÑиÑÑ"
-#: ../cli.py:971
+#: ../cli.py:981
#, python-format
msgid "Command line error: %s"
msgstr "ÐÑеÑка командне линиÑе: %s"
-#: ../cli.py:983
+#: ../cli.py:993
#, python-format
msgid ""
"\n"
@@ -349,218 +348,226 @@ msgstr ""
"\n"
"%s: %s опÑиÑа заÑ
Ñева аÑгÑменÑ"
-#: ../cli.py:1103
+#: ../cli.py:1122
+msgid "show this help message and exit"
+msgstr "пÑикажи Ð¾Ð²Ñ Ð¿Ð¾Ð¼Ð¾ÑÐ½Ñ Ð¿Ð¾ÑÑÐºÑ Ð¸ изаÑи"
+
+#: ../cli.py:1126
msgid "be tolerant of errors"
msgstr "бÑди ÑолеÑанÑан на гÑеÑке"
-#: ../cli.py:1105
+#: ../cli.py:1128
msgid "run entirely from cache, don't update cache"
msgstr "извÑÑÐ°Ð²Ð°Ñ Ñе Ñ Ð¿Ð¾ÑпÑноÑÑи из кеÑа, не ажÑÑиÑÐ°Ñ ÐºÐµÑ"
-#: ../cli.py:1107
+#: ../cli.py:1130
msgid "config file location"
msgstr "меÑÑо даÑоÑеке подеÑаваÑа"
-#: ../cli.py:1109
+#: ../cli.py:1132
msgid "maximum command wait time"
-msgstr "наÑвеÑе ÑекаÑе на командÑ"
+msgstr "наÑдÑже вÑеме ÑекаÑа на командÑ"
-#: ../cli.py:1111
+#: ../cli.py:1134
msgid "debugging output level"
-msgstr "ниво пÑоналажеÑа гÑеÑака излаза"
+msgstr "ниво излазног пÑиказа за пÑоналажеÑе гÑеÑака"
-#: ../cli.py:1115
+#: ../cli.py:1138
msgid "show duplicates, in repos, in list/search commands"
msgstr ""
"пÑиказÑÑ Ð´ÑпликаÑе, Ñ ÑизниÑама, Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ð¼Ð° за излиÑÑаваÑе/пÑеÑÑаживаÑе"
-#: ../cli.py:1117
+#: ../cli.py:1140
msgid "error output level"
-msgstr "ниво гÑеÑака излаза"
+msgstr "ниво излазног пÑиказа гÑеÑака"
-#: ../cli.py:1120
+#: ../cli.py:1143
msgid "quiet operation"
msgstr "ÑиÑ
а ÑадÑа"
-#: ../cli.py:1124
+#: ../cli.py:1145
+msgid "verbose operation"
+msgstr "опÑиÑна ÑадÑа"
+
+#: ../cli.py:1147
msgid "answer yes for all questions"
-msgstr "одговоÑи да на Ñва пиÑаÑа"
+msgstr "одговоÑи Ñа да на Ñва пиÑаÑа"
-#: ../cli.py:1126
+#: ../cli.py:1149
msgid "show Yum version and exit"
msgstr "пÑикажи веÑзиÑÑ Yum-а и изаÑи"
-#: ../cli.py:1127
+#: ../cli.py:1150
msgid "set install root"
msgstr "поÑÑави коÑени диÑекÑоÑиÑÑм инÑÑалаÑиÑе"
-#: ../cli.py:1131
+#: ../cli.py:1154
msgid "enable one or more repositories (wildcards allowed)"
msgstr "ÑкÑÑÑи ÑÐµÐ´Ð½Ñ Ð¸Ð»Ð¸ виÑе ÑизниÑа (ÑкÑаÑениÑе ÑÑ Ð´Ð¾Ð·Ð²Ð¾Ñене)"
-#: ../cli.py:1135
+#: ../cli.py:1158
msgid "disable one or more repositories (wildcards allowed)"
msgstr "иÑкÑÑÑи ÑÐµÐ´Ð½Ñ Ð¸Ð»Ð¸ виÑе ÑизниÑа (ÑкÑаÑениÑе ÑÑ Ð´Ð¾Ð·Ð²Ð¾Ñене)"
-#: ../cli.py:1138
+#: ../cli.py:1161
msgid "exclude package(s) by name or glob"
-msgstr "одÑÑÑаниÑе пакеÑ(е) по Ð¸Ð¼ÐµÐ½Ñ Ð¸Ð»Ð¸ glob-Ñ"
+msgstr "изÑзмиÑе пакеÑ(е) по Ð¸Ð¼ÐµÐ½Ñ Ð¸Ð»Ð¸ glob-Ñ"
-#: ../cli.py:1140
+#: ../cli.py:1163
msgid "disable exclude from main, for a repo or for everything"
-msgstr "иÑкÑÑÑи одÑÑÑаÑиваÑе, за ÑепозиÑоÑиÑÑм или за Ñве"
+msgstr "иÑкÑÑÑи изÑзимаÑе из главног ÑкÑпа, за ÑизниÑÑ Ð¸Ð»Ð¸ за Ñве"
-#: ../cli.py:1143
+#: ../cli.py:1166
msgid "enable obsoletes processing during updates"
msgstr "ÑкÑÑÑи обÑÐ°Ð´Ñ Ð·Ð°ÑÑаÑелиÑ
пакеÑа Ñ ÑÐ¾ÐºÑ Ð°Ð¶ÑÑиÑаÑа"
-#: ../cli.py:1145
+#: ../cli.py:1168
msgid "disable Yum plugins"
msgstr "иÑкÑÑÑи додаÑке за Yum"
-#: ../cli.py:1147
+#: ../cli.py:1170
msgid "disable gpg signature checking"
msgstr "иÑкÑÑÑи пÑовеÑÑ gpg поÑпиÑа"
-#: ../cli.py:1149
+#: ../cli.py:1172
msgid "disable plugins by name"
msgstr "иÑкÑÑÑи додаÑке по именÑ"
-#: ../cli.py:1152
+#: ../cli.py:1175
msgid "skip packages with depsolving problems"
msgstr "пÑеÑкоÑи пакеÑе коÑи имаÑÑ Ð¿Ñоблема Ñа ÑеÑаваÑем завиÑноÑÑи"
-#: ../output.py:229
+#: ../output.py:228
msgid "Jan"
-msgstr "Ðан"
+msgstr "Ñан"
-#: ../output.py:229
+#: ../output.py:228
msgid "Feb"
-msgstr "Феб"
+msgstr "Ñеб"
-#: ../output.py:229
+#: ../output.py:228
msgid "Mar"
-msgstr "ÐаÑ"
+msgstr "маÑ"
-#: ../output.py:229
+#: ../output.py:228
msgid "Apr"
-msgstr "ÐпÑ"
+msgstr "апÑ"
-#: ../output.py:229
+#: ../output.py:228
msgid "May"
-msgstr "ÐаÑ"
+msgstr "маÑ"
-#: ../output.py:229
+#: ../output.py:228
msgid "Jun"
-msgstr "ÐÑн"
+msgstr "ÑÑн"
-#: ../output.py:230
+#: ../output.py:229
msgid "Jul"
-msgstr "ÐÑл"
+msgstr "ÑÑл"
-#: ../output.py:230
+#: ../output.py:229
msgid "Aug"
-msgstr "Ðвг"
+msgstr "авг"
-#: ../output.py:230
+#: ../output.py:229
msgid "Sep"
-msgstr "Сеп"
+msgstr "Ñеп"
-#: ../output.py:230
+#: ../output.py:229
msgid "Oct"
-msgstr "ÐкÑ"
+msgstr "окÑ"
-#: ../output.py:230
+#: ../output.py:229
msgid "Nov"
-msgstr "Ðов"
+msgstr "нов"
-#: ../output.py:230
+#: ../output.py:229
msgid "Dec"
-msgstr "ÐеÑ"
+msgstr "деÑ"
-#: ../output.py:240
+#: ../output.py:239
msgid "Trying other mirror."
-msgstr "ÐокÑÑÐ°Ñ Ð´ÑÑги одÑаз."
+msgstr "ÐокÑÑавам дÑÑги одÑаз."
-#: ../output.py:294
+#: ../output.py:293
#, python-format
msgid "Name : %s"
-msgstr "Ðме : %s"
+msgstr "Ðме : %s"
-#: ../output.py:295
+#: ../output.py:294
#, python-format
msgid "Arch : %s"
msgstr "ÐÑÑ
иÑекÑÑÑа: %s"
-#: ../output.py:297
+#: ../output.py:296
#, python-format
msgid "Epoch : %s"
-msgstr "ÐеÑиод : %s"
+msgstr "ÐеÑиод : %s"
-#: ../output.py:298
+#: ../output.py:297
#, python-format
msgid "Version : %s"
msgstr "ÐеÑзиÑа : %s"
-#: ../output.py:299
+#: ../output.py:298
#, python-format
msgid "Release : %s"
-msgstr "ÐздаÑе : %s"
+msgstr "ÐздаÑе : %s"
-#: ../output.py:300
+#: ../output.py:299
#, python-format
msgid "Size : %s"
-msgstr "ÐелиÑина : %s"
+msgstr "ÐелиÑина : %s"
-#: ../output.py:301
+#: ../output.py:300
#, python-format
msgid "Repo : %s"
-msgstr "РизниÑа : %s"
+msgstr "РизниÑа : %s"
-#: ../output.py:303
+#: ../output.py:302
#, python-format
msgid "Committer : %s"
-msgstr "ÐбÑавÑÐ¸Ð²Ð°Ñ : %s"
+msgstr "ÐбÑавÑÐ¸Ð²Ð°Ñ : %s"
-#: ../output.py:304
+#: ../output.py:303
msgid "Summary : "
msgstr "СажеÑак :"
-#: ../output.py:306
+#: ../output.py:305
#, python-format
msgid "URL : %s"
-msgstr "URL : %s"
+msgstr "УРР: %s"
-#: ../output.py:307
+#: ../output.py:306
#, python-format
msgid "License : %s"
msgstr "ÐиÑенÑа : %s"
-#: ../output.py:308
+#: ../output.py:307
msgid "Description: "
-msgstr "ÐпиÑ:"
+msgstr "ÐÐ¿Ð¸Ñ : "
-#: ../output.py:352
+#: ../output.py:351
msgid "Is this ok [y/N]: "
-msgstr "Ðа ли Ñе ово Ñ ÑÐµÐ´Ñ [д/Ð]: "
+msgstr "Ðа ли Ñе ово Ñ ÑÐµÐ´Ñ [d/N]: "
-#: ../output.py:358 ../output.py:361
+#: ../output.py:359 ../output.py:362
msgid "y"
-msgstr "д"
+msgstr "d"
-#: ../output.py:358
+#: ../output.py:359
msgid "n"
-msgstr "н"
+msgstr "n"
-#: ../output.py:358 ../output.py:361
+#: ../output.py:359 ../output.py:362
msgid "yes"
-msgstr "да"
+msgstr "da"
-#: ../output.py:358
+#: ../output.py:359
msgid "no"
-msgstr "не"
+msgstr "ne"
-#: ../output.py:368
+#: ../output.py:370
#, python-format
msgid ""
"\n"
@@ -569,96 +576,96 @@ msgstr ""
"\n"
"ÐÑÑпа: %s"
-#: ../output.py:370
+#: ../output.py:372
#, python-format
msgid " Description: %s"
msgstr " ÐпиÑ: %s"
-#: ../output.py:372
+#: ../output.py:374
msgid " Mandatory Packages:"
-msgstr " Ðлавни пакеÑи:"
+msgstr " Ðбавезни пакеÑи:"
-#: ../output.py:377
+#: ../output.py:379
msgid " Default Packages:"
msgstr " ÐодÑазÑмевани пакеÑи:"
-#: ../output.py:382
+#: ../output.py:384
msgid " Optional Packages:"
-msgstr " ÐпÑионални пакеÑи:"
+msgstr " ÐзбоÑни пакеÑи:"
-#: ../output.py:387
+#: ../output.py:389
msgid " Conditional Packages:"
-msgstr " УÑкловÑени пакеÑи:"
+msgstr " УÑловÑени пакеÑи:"
-#: ../output.py:395
+#: ../output.py:398
#, python-format
msgid "package: %s"
msgstr "пакеÑ: %s"
-#: ../output.py:397
+#: ../output.py:400
msgid " No dependencies for this package"
msgstr " Ðе поÑÑоÑе завиÑноÑÑи овог пакеÑа"
-#: ../output.py:402
+#: ../output.py:405
#, python-format
msgid " dependency: %s"
msgstr " завиÑноÑÑ: %s"
-#: ../output.py:404
+#: ../output.py:407
msgid " Unsatisfied dependency"
msgstr " ÐезадовоÑена завиÑноÑÑ"
-#: ../output.py:462
+#: ../output.py:465
msgid "Matched from:"
msgstr "Ðовезан из:"
-#: ../output.py:488
+#: ../output.py:491
msgid "There was an error calculating total download size"
-msgstr "Ðогодила Ñе гÑеÑка пÑи ÑаÑÑнаÑÑ ÑкÑпне велиÑине пÑеÑзимаÑа"
+msgstr "Ðогодила Ñе гÑеÑка пÑи ÑаÑÑнаÑÑ ÑкÑпне велиÑине за пÑеÑзимаÑе"
-#: ../output.py:493
+#: ../output.py:496
#, python-format
msgid "Total size: %s"
msgstr "УкÑпна велиÑина: %s"
-#: ../output.py:496
+#: ../output.py:499
#, python-format
msgid "Total download size: %s"
-msgstr "УкÑпна велиÑина пÑеÑзимаÑа: %s"
+msgstr "УкÑпна велиÑина за пÑеÑзимаÑе: %s"
-#: ../output.py:508
+#: ../output.py:511
msgid "Package"
msgstr "ÐакеÑ"
-#: ../output.py:508
+#: ../output.py:511
msgid "Arch"
msgstr "ÐÑÑ
иÑекÑÑÑа"
-#: ../output.py:508
+#: ../output.py:511
msgid "Version"
msgstr "ÐеÑзиÑа"
-#: ../output.py:508
+#: ../output.py:511
msgid "Repository"
msgstr "РизниÑа"
-#: ../output.py:508
+#: ../output.py:511
msgid "Size"
msgstr "ÐелиÑина"
-#: ../output.py:515
+#: ../output.py:518
msgid "Installing for dependencies"
-msgstr "ÐнÑÑалиÑаÑе везана за завиÑноÑÑи"
+msgstr "ÐнÑÑалиÑам због завиÑноÑÑи"
-#: ../output.py:516
+#: ../output.py:519
msgid "Updating for dependencies"
-msgstr "ÐжÑÑиÑаÑа везана за завиÑноÑÑи"
+msgstr "ÐжÑÑиÑам због завиÑноÑÑи"
-#: ../output.py:517
+#: ../output.py:520
msgid "Removing for dependencies"
-msgstr "УклаÑаÑа везана за завиÑноÑÑи"
+msgstr "УклаÑам због завиÑноÑÑи"
-#: ../output.py:529
+#: ../output.py:532
#, python-format
msgid ""
" replacing %s.%s %s\n"
@@ -667,7 +674,7 @@ msgstr ""
" ÑклаÑам %s.%s %s\n"
"\n"
-#: ../output.py:537
+#: ../output.py:540
#, python-format
msgid ""
"\n"
@@ -678,33 +685,33 @@ msgid ""
"Remove %5.5s Package(s) \n"
msgstr ""
"\n"
-"СажеÑак пÑеноÑа\n"
+"СажеÑак ÑÑанÑакÑиÑе\n"
"=============================================================================\n"
-"инÑÑалиÑÐ°Ñ %5.5s пакеÑ(а) \n"
-"ажÑÑиÑÐ°Ñ %5.5s пакеÑ(а) \n"
-"Ñклони %5.5s пакеÑ(а) \n"
+"инÑÑалиÑаÑе %5.5s пакеÑ(а) \n"
+"ажÑÑиÑаÑе %5.5s пакеÑ(а) \n"
+"ÑклаÑаÑе %5.5s пакеÑ(а) \n"
-#: ../output.py:555
+#: ../output.py:558
msgid "Removed"
msgstr "УклоÑено"
-#: ../output.py:556
+#: ../output.py:559
msgid "Dependency Removed"
msgstr "ÐавиÑноÑÑ ÑклоÑена"
-#: ../output.py:558
+#: ../output.py:561
msgid "Dependency Installed"
msgstr "ÐавиÑноÑÑ Ð¸Ð½ÑÑалиÑана"
-#: ../output.py:560
+#: ../output.py:563
msgid "Dependency Updated"
msgstr "ÐавиÑноÑÑ Ð°Ð¶ÑÑиÑана"
-#: ../output.py:561
+#: ../output.py:564
msgid "Replaced"
msgstr "ÐамеÑено"
-#: ../output.py:619
+#: ../output.py:622
#, python-format
msgid ""
"\n"
@@ -715,67 +722,67 @@ msgstr ""
" ТÑенÑÑно пÑеÑзимаÑе Ñе обÑÑÑавÑено, %sinterrupt (ctrl-c) ÑÐ¾Ñ Ñедном%s Ñ "
"ÑÐ¾ÐºÑ %s%s%s ÑекÑнди да биÑÑе изаÑли.\n"
-#: ../output.py:629
+#: ../output.py:632
msgid "user interrupt"
msgstr "пÑекид од ÑÑÑане коÑиÑника"
-#: ../output.py:640
+#: ../output.py:643
msgid "installed"
-msgstr "инÑÑалиÑано"
+msgstr "инÑÑалиÑан"
-#: ../output.py:641
+#: ../output.py:644
msgid "updated"
-msgstr "ажÑÑиÑано"
+msgstr "ажÑÑиÑан"
-#: ../output.py:642
+#: ../output.py:645
msgid "obsoleted"
-msgstr "пÑевазиÑено"
+msgstr "пÑевазиÑен"
-#: ../output.py:643
+#: ../output.py:646
msgid "erased"
-msgstr "обÑиÑано"
+msgstr "обÑиÑан"
-#: ../output.py:647
+#: ../output.py:650
#, python-format
msgid "---> Package %s.%s %s:%s-%s set to be %s"
msgstr "---> ÐÐ°ÐºÐµÑ %s.%s %s:%s-%s поÑÑавÑен да бÑде %s"
-#: ../output.py:654
+#: ../output.py:657
msgid "--> Running transaction check"
-msgstr "--> ÐзвÑÑава Ñе пÑовеÑа пÑеноÑа"
+msgstr "--> ÐзвÑÑава Ñе пÑовеÑа ÑÑанÑакÑиÑе"
-#: ../output.py:659
+#: ../output.py:662
msgid "--> Restarting Dependency Resolution with new changes."
-msgstr "--> Ðоновно покÑеÑаÑе ÑезолÑÑиÑе завиÑноÑÑи Ñа новим пÑоменама."
+msgstr "--> Ðоновно покÑеÑаÑе ÑазÑеÑаваÑа завиÑноÑÑи Ñа новим пÑоменама."
-#: ../output.py:664
+#: ../output.py:667
msgid "--> Finished Dependency Resolution"
-msgstr "--> ÐавÑÑена ÑезолÑÑиÑа завиÑноÑÑи"
+msgstr "--> ÐавÑÑено Ñе ÑазÑеÑаваÑе завиÑноÑÑи"
-#: ../output.py:669
+#: ../output.py:672
#, python-format
msgid "--> Processing Dependency: %s for package: %s"
msgstr "--> ÐбÑаÑÑÑем завиÑноÑÑ: %s за пакеÑ: %s"
-#: ../output.py:674
+#: ../output.py:677
#, python-format
msgid "--> Unresolved Dependency: %s"
msgstr "--> ÐеÑазÑеÑена завиÑноÑÑ: %s"
-#: ../output.py:680
+#: ../output.py:683
#, python-format
msgid "--> Processing Conflict: %s conflicts %s"
msgstr "--> СÑкоб пÑи обÑади: %s Ñе ÑÑкоби Ñа %s"
-#: ../output.py:683
+#: ../output.py:686
msgid "--> Populating transaction set with selected packages. Please wait."
msgstr ""
-"--> ÐопÑÑавам ÑкÑп ÑÑанÑакÑиÑа Ñа изабÑаним пакеÑима. Ðолим ваÑ, ÑаÑекаÑÑе."
+"--> ÐопÑÑавам ÑкÑп ÑÑанÑакÑиÑе Ñа изабÑаним пакеÑима. Ðолим ваÑ, ÑаÑекаÑÑе."
-#: ../output.py:687
+#: ../output.py:690
#, python-format
msgid "---> Downloading header for %s to pack into transaction set."
-msgstr "---> ÐÑеÑзимам заглавÑе за %s да би Ñе Ñпаковало Ñ ÑкÑп пÑеноÑа."
+msgstr "---> ÐÑеÑзимам заглавÑе за %s Ñади паковаÑа Ñ ÑкÑп ÑÑанÑакÑиÑе."
#: ../yumcommands.py:37
msgid "You need to be root to perform this command."
@@ -800,14 +807,14 @@ msgid ""
msgstr ""
"\n"
"УкÑÑÑили ÑÑе пÑовеÑÑ Ð¿Ð°ÐºÐµÑа помоÑÑ GPG кÑÑÑева. Ðво Ñе добÑа ÑÑваÑ. \n"
-"ÐеÑÑÑим, немаÑе инÑÑалиÑан ни Ñедан GPG Ñавни кÑÑÑ. ÐоÑаÑе да пÑеÑзмеÑе\n"
+"ÐеÑÑÑим, немаÑе инÑÑалиÑан ниÑедан GPG Ñавни кÑÑÑ. ÐоÑаÑе да пÑеÑзмеÑе\n"
"кÑÑÑеве за пакеÑе коÑе желиÑе да инÑÑалиÑаÑе и инÑÑалиÑаÑе иÑ
.\n"
"То можеÑе ÑÑадиÑи извÑÑаваÑем команде:\n"
" rpm --import public.gpg.key\n"
"\n"
"\n"
-"ТакоÑе, можеÑе одÑедиÑи url за кÑÑÑ ÐºÐ¾Ñи желиÑе да коÑиÑÑиÑе\n"
-"за пизниÑÑ Ñ 'gpgkey' опÑиÑи Ñ Ð¾Ð´ÐµÑÐºÑ Ð²ÐµÐ·Ð°Ð½Ð¸Ð¼ за ÑизниÑе и yum \n"
+"ТакоÑе, можеÑе одÑедиÑи ÑÑл за кÑÑÑ ÐºÐ¾Ñи желиÑе да коÑиÑÑиÑе\n"
+"за ÑизниÑÑ Ñ âgpgkeyâ опÑиÑи Ñ Ð¾Ð´ÐµÑÐºÑ Ð²ÐµÐ·Ð°Ð½Ð¸Ð¼ за ÑизниÑе и yum \n"
"Ñе га инÑÑалиÑаÑи за ваÑ.\n"
"\n"
"Ðа виÑе инÑоÑмаÑиÑа конÑакÑиÑаÑÑе добавÑаÑа ваÑе диÑÑÑибÑÑиÑе или пакеÑа.\n"
@@ -929,7 +936,7 @@ msgstr "ÐоÑÑавÑам пÑоÑÐµÑ Ð·Ð° гÑÑпе"
#: ../yumcommands.py:287
msgid "No Groups on which to run command"
-msgstr "Ðе поÑÑоÑи гÑÑпа пÑи коÑÐ¾Ñ Ñе може извÑÑаваÑи команда"
+msgstr "Ðе поÑÑоÑи гÑÑпа над коÑом Ñе може извÑÑиÑи команда"
#: ../yumcommands.py:300
msgid "List available package groups"
@@ -977,7 +984,7 @@ msgstr "ÐÑовеÑиÑе да ли ÑÑ Ð´Ð¾ÑÑÑпна ажÑÑиÑаÑа п
#: ../yumcommands.py:493
msgid "Search package details for the given string"
-msgstr "ÐÑеÑÑажи деÑаÑе о пакеÑÑ Ð·Ð° задаÑÑ Ð½Ð¸ÑкÑ"
+msgstr "ÐÑеÑÑажиÑе деÑаÑе о пакеÑÑ Ð·Ð° задаÑÑ Ð½Ð¸ÑкÑ"
#: ../yumcommands.py:499
msgid "Searching Packages: "
@@ -985,7 +992,7 @@ msgstr "ÐÑеÑÑажÑÑем пакеÑе: "
#: ../yumcommands.py:516
msgid "Update packages taking obsoletes into account"
-msgstr "ÐжÑÑиÑаÑÑе пакеÑе ноÑеÑи пÑевазиÑене Ñ Ð½Ð°Ð»Ð¾Ð³"
+msgstr "ÐжÑÑиÑаÑÑе пакеÑе ÑзимаÑÑÑи пÑевазиÑене Ñ Ð¾Ð±Ð·Ð¸Ñ"
#: ../yumcommands.py:525
msgid "Setting up Upgrade Process"
@@ -1027,48 +1034,52 @@ msgstr "ТÑажим завиÑноÑÑи: "
msgid "Display the configured software repositories"
msgstr "ÐÑикажи подеÑене ÑоÑÑвеÑÑке ÑизниÑе"
-#: ../yumcommands.py:662
+#: ../yumcommands.py:666
msgid "enabled"
-msgstr "ÑкÑÑÑен"
+msgstr "ÑкÑÑÑена"
-#: ../yumcommands.py:665
+#: ../yumcommands.py:673
msgid "disabled"
-msgstr "иÑкÑÑÑен"
+msgstr "иÑкÑÑÑена"
-#: ../yumcommands.py:672
+#: ../yumcommands.py:682
msgid "repo id"
msgstr "Ñепо id"
-#: ../yumcommands.py:673
+#: ../yumcommands.py:683
msgid "repo name"
msgstr "Ñепо име"
-#: ../yumcommands.py:673
+#: ../yumcommands.py:683
msgid "status"
msgstr "ÑÑаÑÑÑ"
-#: ../yumcommands.py:676
+#: ../yumcommands.py:686
msgid "Repo-id : "
-msgstr "ÐÐ ÑизниÑе : "
+msgstr "ÐÐ ÑизниÑе : "
-#: ../yumcommands.py:677
+#: ../yumcommands.py:687
msgid "Repo-name : "
-msgstr "Ðме ÑизниÑе : "
+msgstr "Ðме ÑизниÑе : "
-#: ../yumcommands.py:678
+#: ../yumcommands.py:688
msgid "Repo-enabled: "
msgstr "РизниÑа ÑкÑÑÑена: "
-#: ../yumcommands.py:700
+#: ../yumcommands.py:689
+msgid "Repo-size : "
+msgstr "ÐелиÑина ÑизниÑе: "
+
+#: ../yumcommands.py:713
msgid "Display a helpful usage message"
-msgstr "ÐÑикажи коÑиÑн поÑÑÐºÑ Ð¾ коÑиÑÑеÑÑ"
+msgstr "ÐÑикажи коÑиÑÐ½Ñ Ð¿Ð¾ÑÑÐºÑ Ð¾ ÑпоÑÑеби"
-#: ../yumcommands.py:734
+#: ../yumcommands.py:747
#, python-format
msgid "No help available for %s"
msgstr "ÐиÑе доÑÑÑпна Ð¿Ð¾Ð¼Ð¾Ñ Ð·Ð° %s"
-#: ../yumcommands.py:739
+#: ../yumcommands.py:752
msgid ""
"\n"
"\n"
@@ -1078,7 +1089,7 @@ msgstr ""
"\n"
"алиÑаÑи: "
-#: ../yumcommands.py:741
+#: ../yumcommands.py:754
msgid ""
"\n"
"\n"
@@ -1088,15 +1099,15 @@ msgstr ""
"\n"
"алиÑаÑ: "
-#: ../yumcommands.py:770
+#: ../yumcommands.py:783
msgid "Setting up Reinstall Process"
msgstr "ÐоÑÑавÑам пÑоÑÐµÑ Ð¿Ð¾Ð½Ð¾Ð²Ð½Ðµ инÑÑалаÑиÑе"
-#: ../yumcommands.py:784
+#: ../yumcommands.py:797
msgid "reinstall a package"
msgstr "поновно инÑÑалиÑам пакеÑ"
-#: ../yummain.py:41
+#: ../yummain.py:53
msgid ""
"\n"
"\n"
@@ -1106,7 +1117,7 @@ msgstr ""
"\n"
"Ðзлазим када коÑиÑник оÑкаже"
-#: ../yummain.py:47
+#: ../yummain.py:59
msgid ""
"\n"
"\n"
@@ -1116,41 +1127,41 @@ msgstr ""
"\n"
"Ðзлазим када Ñе Ñломи Ñев"
-#: ../yummain.py:105
+#: ../yummain.py:110
msgid ""
"Another app is currently holding the yum lock; waiting for it to exit..."
msgstr ""
"Ðеки дÑÑги пÑогÑам ÑÑенÑÑно дÑжи yum закÑÑÑаваÑе, Ñекам да Ñе ÑÐ°Ñ Ð¿ÑогÑам "
"иÑкÑÑÑи..."
-#: ../yummain.py:132 ../yummain.py:171
+#: ../yummain.py:137 ../yummain.py:176
#, python-format
msgid "Error: %s"
msgstr "ÐÑеÑка: %s"
-#: ../yummain.py:142 ../yummain.py:178
+#: ../yummain.py:147 ../yummain.py:183
#, python-format
msgid "Unknown Error(s): Exit Code: %d:"
-msgstr "ÐепознаÑа гÑеÑка(е): Ðзлазни ÑвоÑ: %d:"
+msgstr "ÐепознаÑа гÑеÑка(е): излазни код: %d:"
#. Depsolve stage
-#: ../yummain.py:149
+#: ../yummain.py:154
msgid "Resolving Dependencies"
msgstr "РазÑеÑавам завиÑноÑÑи"
-#: ../yummain.py:184
+#: ../yummain.py:189
msgid ""
"\n"
"Dependencies Resolved"
msgstr ""
"\n"
-"ÐавиÑноÑÑи ÑазÑеÑене"
+"ÐавиÑноÑÑи ÑÑ ÑазÑеÑене"
-#: ../yummain.py:198
+#: ../yummain.py:203
msgid "Complete!"
msgstr "ÐавÑÑено!"
-#: ../yummain.py:245
+#: ../yummain.py:250
msgid ""
"\n"
"\n"
@@ -1160,192 +1171,147 @@ msgstr ""
"\n"
"Ðзлазим када коÑиÑник оÑкаже."
-#: ../yum/depsolve.py:83
+#: ../yum/depsolve.py:78
msgid "doTsSetup() will go away in a future version of Yum.\n"
-msgstr "doTsSetup() неÑе биÑи пÑиÑÑÑан Ñ Ð±ÑдÑÑим веÑзиÑама Yum-а.\n"
+msgstr "doTsSetup() неÑе биÑи пÑиÑÑÑна Ñ Ð±ÑдÑÑим веÑзиÑама Yum-а.\n"
-#: ../yum/depsolve.py:96
+#: ../yum/depsolve.py:91
msgid "Setting up TransactionSets before config class is up"
-msgstr ""
-"ÐоÑÑавÑам поÑÑавке ÑÑанÑакÑиÑе пÑе него ÑÑо Ñе подигне клаÑа подеÑаваÑа"
+msgstr "ÐоÑÑавÑам TransactionSets пÑе него ÑÑо Ñе подигне клаÑа подеÑаваÑа"
-#: ../yum/depsolve.py:137
+#: ../yum/depsolve.py:132
#, python-format
msgid "Invalid tsflag in config file: %s"
msgstr "ÐогÑеÑан tsflag Ñ Ð´Ð°ÑоÑеÑи подеÑаваÑа: %s"
-#: ../yum/depsolve.py:148
-#, python-format
-msgid "Searching pkgSack for dep: %s"
-msgstr "ÐÑеÑÑажÑÑем pkgSack Ñ Ð¿Ð¾ÑÑази за завиÑноÑÑи: %s"
-
-#: ../yum/depsolve.py:171
-#, python-format
-msgid "Potential match for %s from %s"
-msgstr "ÐоÑенÑиÑални ÑÐ¿Ð¾Ñ Ð·Ð° %s од %s"
-
-#: ../yum/depsolve.py:179
-#, python-format
-msgid "Matched %s to require for %s"
-msgstr "ÐÑонаÑено да Ñе %s заÑ
Ñеван за %s"
-
-#: ../yum/depsolve.py:220
+#: ../yum/depsolve.py:176
#, python-format
msgid "Member: %s"
msgstr "Члан: %s"
-#: ../yum/depsolve.py:234 ../yum/depsolve.py:687
+#: ../yum/depsolve.py:190 ../yum/depsolve.py:595
#, python-format
msgid "%s converted to install"
msgstr "%s пÑебаÑен за инÑÑалаÑиÑÑ"
-#: ../yum/depsolve.py:241
+#: ../yum/depsolve.py:197
#, python-format
msgid "Adding Package %s in mode %s"
msgstr "ÐодаÑем Ð¿Ð°ÐºÐµÑ %s Ñ Ð½Ð°ÑÐ¸Ð½Ñ Ñада %s"
-#: ../yum/depsolve.py:251
+#: ../yum/depsolve.py:207
#, python-format
msgid "Removing Package %s"
-msgstr "УкаÑам Ð¿Ð°ÐºÐµÑ %s"
+msgstr "УклаÑам Ð¿Ð°ÐºÐµÑ %s"
-#: ../yum/depsolve.py:262
+#: ../yum/depsolve.py:218
#, python-format
msgid "%s requires: %s"
msgstr "%s заÑ
Ñева: %s"
-#: ../yum/depsolve.py:313
-msgid "Needed Require has already been looked up, cheating"
-msgstr "ÐоÑÑебан ÑÑлов Ñе Ð²ÐµÑ ÑÑажен, ваÑам"
-
-#: ../yum/depsolve.py:323
-#, python-format
-msgid "Needed Require is not a package name. Looking up: %s"
-msgstr "ÐоÑÑебан ÑÑлов ниÑе име пакеÑа. ТÑажим: %s"
-
-#: ../yum/depsolve.py:330
-#, python-format
-msgid "Potential Provider: %s"
-msgstr "ÐоÑенÑиÑални добавÑаÑ: %s"
-
-#: ../yum/depsolve.py:353
-#, python-format
-msgid "Mode is %s for provider of %s: %s"
-msgstr "ÐаÑин Ñада Ñе %s за доÑÑавÑаÑа %s-а: %s"
-
-#: ../yum/depsolve.py:357
-#, python-format
-msgid "Mode for pkg providing %s: %s"
-msgstr "ÐаÑин Ñада за pkg коÑи пÑÑжа %s: %s"
-
-#: ../yum/depsolve.py:361
-#, python-format
-msgid "TSINFO: %s package requiring %s marked as erase"
-msgstr "TSINFO: %s Ð¿Ð°ÐºÐµÑ Ð·Ð°Ñ
Ñева %s ознаÑен као бÑиÑаÑе"
-
-#: ../yum/depsolve.py:373
+#: ../yum/depsolve.py:273
#, python-format
msgid "TSINFO: Obsoleting %s with %s to resolve dep."
-msgstr "TSINFO: ÐеÑам %s Ñа %s да биÑ
ÑазÑеÑио завиÑноÑÑ."
+msgstr "TSINFO: меÑам %s Ñа %s да биÑ
ÑазÑеÑио завиÑноÑÑ."
-#: ../yum/depsolve.py:376
+#: ../yum/depsolve.py:276
#, python-format
msgid "TSINFO: Updating %s to resolve dep."
-msgstr "TSINFO: ÐжÑÑиÑам %s да биÑ
ÑазÑеÑио завиÑноÑÑ."
+msgstr "TSINFO: ажÑÑиÑам %s да биÑ
ÑазÑеÑио завиÑноÑÑ."
-#: ../yum/depsolve.py:379
+#: ../yum/depsolve.py:279
#, python-format
msgid "Cannot find an update path for dep for: %s"
msgstr "Ðе Ð¼Ð¾Ð³Ñ Ð´Ð° пÑонаÑем пÑÑаÑÑ Ð°Ð¶ÑÑиÑаÑа за завиÑноÑÑ Ð·Ð°: %s"
-#: ../yum/depsolve.py:389
+#: ../yum/depsolve.py:283
#, python-format
-msgid "Unresolvable requirement %s for %s"
-msgstr "ÐеÑазÑеÑиви заÑ
Ñев %s за %s"
+msgid "TSINFO: %s package requiring %s marked as erase"
+msgstr "TSINFO: %s Ð¿Ð°ÐºÐµÑ Ð·Ð°Ñ
Ñева да %s бÑде ознаÑен за бÑиÑаÑе"
#. is it already installed?
-#: ../yum/depsolve.py:435
+#: ../yum/depsolve.py:329
#, python-format
msgid "%s is in providing packages but it is already installed, removing."
-msgstr "%s Ñе Ñ Ð¿ÑÑжаÑÑ Ð¿Ð°ÐºÐµÑа али Ñе ÑÐ¾Ñ Ñвек инÑÑалиÑан, ÑклаÑам га."
+msgstr "%s Ñе Ñ Ð¿ÑÑженим пакеÑа али Ñе Ð²ÐµÑ Ð¸Ð½ÑÑалиÑан, ÑклаÑам га."
-#: ../yum/depsolve.py:450
+#: ../yum/depsolve.py:344
#, python-format
msgid "Potential resolving package %s has newer instance in ts."
msgstr "ÐоÑенÑиÑално ÑазÑеÑаваÑе пакеÑа %s има новиÑи пÑимеÑак Ñ ts-Ñ."
-#: ../yum/depsolve.py:461
+#: ../yum/depsolve.py:355
#, python-format
msgid "Potential resolving package %s has newer instance installed."
msgstr "ÐоÑенÑиÑално ÑазÑеÑаваÑе пакеÑа %s има инÑÑалиÑан нови пÑимеÑак."
-#: ../yum/depsolve.py:469 ../yum/depsolve.py:518
+#: ../yum/depsolve.py:363 ../yum/depsolve.py:412
#, python-format
msgid "Missing Dependency: %s is needed by package %s"
msgstr "ÐедоÑÑаÑе завиÑноÑÑ: %s Ñе поÑÑебан од ÑÑÑане пакеÑа %s"
-#: ../yum/depsolve.py:482
+#: ../yum/depsolve.py:376
#, python-format
msgid "%s already in ts, skipping this one"
msgstr "%s Ñе Ð²ÐµÑ Ñ ts-Ñ, пÑеÑкаÑем га"
-#: ../yum/depsolve.py:528
+#: ../yum/depsolve.py:422
#, python-format
msgid "TSINFO: Marking %s as update for %s"
-msgstr "TSINFO: ÐзнаÑавам %s као ажÑÑиÑаÑе за %s"
+msgstr "TSINFO: ознаÑавам %s као ажÑÑиÑаÑе за %s"
-#: ../yum/depsolve.py:535
+#: ../yum/depsolve.py:429
#, python-format
msgid "TSINFO: Marking %s as install for %s"
-msgstr "TSINFO: ÐзнаÑавам %s као инÑÑалаÑиÑÑ Ð·Ð° %s"
+msgstr "TSINFO: ознаÑавам %s као инÑÑалаÑиÑÑ Ð·Ð° %s"
-#: ../yum/depsolve.py:626 ../yum/depsolve.py:705
+#: ../yum/depsolve.py:520 ../yum/depsolve.py:613
msgid "Success - empty transaction"
msgstr "УÑпеÑ
- пÑазна ÑÑанÑакÑиÑа"
-#: ../yum/depsolve.py:664 ../yum/depsolve.py:677
+#: ../yum/depsolve.py:565 ../yum/depsolve.py:585
msgid "Restarting Loop"
-msgstr "Ðоново ÑÑаÑÑÑÑем понавÑаÑе"
+msgstr "Ðоново покÑеÑем пеÑÑÑ"
-#: ../yum/depsolve.py:693
+#: ../yum/depsolve.py:601
msgid "Dependency Process ending"
msgstr "ÐавÑÑеÑак пÑоÑеÑа завиÑноÑÑи"
-#: ../yum/depsolve.py:699
+#: ../yum/depsolve.py:607
#, python-format
msgid "%s from %s has depsolving problems"
msgstr "%s из %s има пÑоблема Ñа ÑазÑеÑаваÑем завиÑноÑÑи"
-#: ../yum/depsolve.py:706
+#: ../yum/depsolve.py:614
msgid "Success - deps resolved"
msgstr "УÑпеÑ
- завиÑноÑÑи ÑÑ ÑазÑеÑене"
-#: ../yum/depsolve.py:720
+#: ../yum/depsolve.py:628
#, python-format
msgid "Checking deps for %s"
msgstr "ÐÑовеÑавам завиÑноÑÑи за %s"
-#: ../yum/depsolve.py:773
+#: ../yum/depsolve.py:690
#, python-format
msgid "looking for %s as a requirement of %s"
msgstr "ÑÑажим %s као заÑ
Ñев за %s"
-#: ../yum/depsolve.py:911
+#: ../yum/depsolve.py:817
#, python-format
msgid "Running compare_providers() for %s"
msgstr "ÐокÑеÑем compare_providers() за %s"
-#: ../yum/depsolve.py:939 ../yum/depsolve.py:945
+#: ../yum/depsolve.py:845 ../yum/depsolve.py:851
#, python-format
msgid "better arch in po %s"
msgstr "боÑа аÑÑ
иÑекÑÑÑа Ñ po %s"
-#: ../yum/depsolve.py:984
+#: ../yum/depsolve.py:890
#, python-format
msgid "%s obsoletes %s"
-msgstr "%s izbacuje %s"
+msgstr "%s пÑевазилази %s"
-#: ../yum/depsolve.py:995
+#: ../yum/depsolve.py:901
#, python-format
msgid ""
"archdist compared %s to %s on %s\n"
@@ -1354,203 +1320,211 @@ msgstr ""
"archdist ÑпоÑедио %s Ñа %s на %s\n"
" Ðобедник: %s"
-#: ../yum/depsolve.py:1002
+#: ../yum/depsolve.py:908
#, python-format
msgid "common sourcerpm %s and %s"
-msgstr "заÑедниÑки извоÑни RPM %s и %s"
+msgstr "заÑедниÑки извоÑни rpm %s и %s"
-#: ../yum/depsolve.py:1008
+#: ../yum/depsolve.py:914
#, python-format
msgid "common prefix of %s between %s and %s"
msgstr "заÑедниÑки пÑеÑÐ¸ÐºÑ %s измеÑÑ %s и %s"
-#: ../yum/depsolve.py:1016
+#: ../yum/depsolve.py:922
#, python-format
msgid "Best Order: %s"
msgstr "ÐаÑбоÑи ÑедоÑлед: %s"
-#: ../yum/__init__.py:127
+#: ../yum/__init__.py:129
msgid "doConfigSetup() will go away in a future version of Yum.\n"
-msgstr "doConfigSetup() неÑе биÑи пÑиÑÑÑан Ñ Ð±ÑдÑÑим веÑзиÑама Yum-а.\n"
+msgstr "doConfigSetup() неÑе биÑи пÑиÑÑÑна Ñ Ð±ÑдÑÑим веÑзиÑама Yum-а.\n"
-#: ../yum/__init__.py:299
+#: ../yum/__init__.py:303
#, python-format
msgid "Repository %r is missing name in configuration, using id"
msgstr "РизниÑи %r недоÑÑаÑе име Ñ Ð¿Ð¾Ð´ÐµÑаваÑима, коÑиÑÑим id"
-#: ../yum/__init__.py:335
+#: ../yum/__init__.py:339
msgid "plugins already initialised"
msgstr "Ð²ÐµÑ Ð¸Ð½Ð¸ÑиÑализовани додаÑи"
-#: ../yum/__init__.py:342
+#: ../yum/__init__.py:346
msgid "doRpmDBSetup() will go away in a future version of Yum.\n"
-msgstr "doRpmDBSetup() неÑе биÑи пÑиÑÑÑан Ñ Ð±ÑдÑÑим веÑзиÑама Yum-а.\n"
+msgstr "doRpmDBSetup() неÑе биÑи пÑиÑÑÑна Ñ Ð±ÑдÑÑим веÑзиÑама Yum-а.\n"
-#: ../yum/__init__.py:352
+#: ../yum/__init__.py:356
msgid "Reading Local RPMDB"
msgstr "ЧиÑам локални RPMDB"
-#: ../yum/__init__.py:370
+#: ../yum/__init__.py:374
msgid "doRepoSetup() will go away in a future version of Yum.\n"
-msgstr "doRepoSetup() неÑе биÑи пÑиÑÑÑан Ñ Ð±ÑдÑÑим веÑзиÑама Yum-а.\n"
+msgstr "doRepoSetup() неÑе биÑи пÑиÑÑÑна Ñ Ð±ÑдÑÑим веÑзиÑама Yum-а.\n"
-#: ../yum/__init__.py:390
+#: ../yum/__init__.py:394
msgid "doSackSetup() will go away in a future version of Yum.\n"
-msgstr "doSackSetup() неÑе биÑи пÑиÑÑÑан Ñ Ð±ÑдÑÑим веÑзиÑама Yum-а.\n"
+msgstr "doSackSetup() неÑе биÑи пÑиÑÑÑна Ñ Ð±ÑдÑÑим веÑзиÑама Yum-а.\n"
-#: ../yum/__init__.py:407
+#: ../yum/__init__.py:411
msgid "Setting up Package Sacks"
msgstr "ÐоÑÑавÑам гÑÑпе пакеÑа"
-#: ../yum/__init__.py:450
+#: ../yum/__init__.py:454
#, python-format
msgid "repo object for repo %s lacks a _resetSack method\n"
msgstr "Ñепо обÑекÑÑ Ð·Ð° Ñепо %s недоÑÑаÑе a _resetSack меÑода\n"
-#: ../yum/__init__.py:451
+#: ../yum/__init__.py:455
msgid "therefore this repo cannot be reset.\n"
-msgstr "због Ñога Ñе Ð¾Ð²Ð°Ñ Ñепо не може поново ÑÑаÑÑоваÑи.\n"
+msgstr "због Ñога Ñе Ð¾Ð²Ð°Ñ Ñепо не може вÑаÑиÑи на поÑеÑÐ½Ñ Ð¿Ð¾ÑÑавкÑ.\n"
-#: ../yum/__init__.py:456
+#: ../yum/__init__.py:460
msgid "doUpdateSetup() will go away in a future version of Yum.\n"
-msgstr "doUpdateSetup() неÑе биÑи пÑиÑÑÑан Ñ Ð±ÑдÑÑим веÑзиÑама Yum-а.\n"
+msgstr "doUpdateSetup() неÑе биÑи пÑиÑÑÑна Ñ Ð±ÑдÑÑим веÑзиÑама Yum-а.\n"
-#: ../yum/__init__.py:468
+#: ../yum/__init__.py:472
msgid "Building updates object"
-msgstr "ÐзгÑаÑиваÑе ажÑÑиÑа обÑекаÑ"
+msgstr "ÐзгÑаÑÑÑем обÑÐµÐºÐ°Ñ Ð°Ð¶ÑÑиÑÑа"
-#: ../yum/__init__.py:499
+#: ../yum/__init__.py:503
msgid "doGroupSetup() will go away in a future version of Yum.\n"
-msgstr "doGroupSetup() неÑе биÑи пÑиÑÑÑан Ñ Ð±ÑдÑÑим веÑзиÑама Yum-а.\n"
+msgstr "doGroupSetup() неÑе биÑи пÑиÑÑÑна Ñ Ð±ÑдÑÑим веÑзиÑама Yum-а.\n"
-#: ../yum/__init__.py:523
+#: ../yum/__init__.py:527
msgid "Getting group metadata"
-msgstr "ÐобавÑам гÑÑÐ¿Ñ Ð¼ÐµÑаподаÑака"
+msgstr "ÐобавÑам меÑаподаÑке гÑÑпе"
-#: ../yum/__init__.py:549
+#: ../yum/__init__.py:553
#, python-format
msgid "Adding group file from repository: %s"
-msgstr "ÐодаÑем гÑÑÐ¿Ñ Ð´Ð°ÑоÑека из ÑизниÑе: %s"
+msgstr "ÐодаÑем даÑоÑÐµÐºÑ Ð³ÑÑпе из ÑизниÑе: %s"
-#: ../yum/__init__.py:558
+#: ../yum/__init__.py:562
#, python-format
msgid "Failed to add groups file for repository: %s - %s"
-msgstr "ÐиÑам ÑÑпео да додам гÑÑÐ¿Ñ Ð´Ð°ÑоÑека за ÑизниÑÑ: %s - %s"
+msgstr "ÐиÑам ÑÑпео да додам даÑоÑÐµÐºÑ Ð³ÑÑпе за ÑизниÑÑ: %s - %s"
-#: ../yum/__init__.py:564
+#: ../yum/__init__.py:568
msgid "No Groups Available in any repository"
msgstr "Ðе поÑÑоÑи гÑÑпа коÑа Ñе доÑÑÑпна Ñ Ð±Ð¸Ð»Ð¾ коÑÐ¾Ñ ÑизниÑи"
-#: ../yum/__init__.py:614
+#: ../yum/__init__.py:618
msgid "Importing additional filelist information"
msgstr "Увозим додаÑне инÑоÑмаÑиÑе о ÑпиÑковима даÑоÑека"
-#: ../yum/__init__.py:662
+#: ../yum/__init__.py:670
#, python-format
msgid "Skip-broken round %i"
msgstr "Skip-broken еÑапа %i"
-#: ../yum/__init__.py:685
+#: ../yum/__init__.py:693
#, python-format
msgid "Skip-broken took %i rounds "
-msgstr "Skip-broken Ñе Ñзео %i еÑапа "
+msgstr "Skip-broken Ñе завÑÑен Ñ %i еÑапа "
-#: ../yum/__init__.py:686
+#: ../yum/__init__.py:694
msgid ""
"\n"
"Packages skipped because of dependency problems:"
msgstr ""
"\n"
-"ÐакеÑи ÑÑ Ð¿ÑеÑкоÑени због пÑоблема за завиÑноÑÑима:"
+"ÐакеÑи ÑÑ Ð¿ÑеÑкоÑени због пÑоблема Ñа завиÑноÑÑима:"
-#: ../yum/__init__.py:690
+#: ../yum/__init__.py:698
#, python-format
msgid " %s from %s"
msgstr " %s из %s"
#: ../yum/__init__.py:779
+msgid ""
+"Warning: scriptlet or other non-fatal errors occurred during transaction."
+msgstr ""
+"УпозоÑеÑе: доÑло Ñе до гÑеÑке Ñ ÑкÑипÑиÑи или неке дÑÑге некÑиÑиÑне гÑеÑке "
+"Ñоком ÑÑанÑкаÑиÑе."
+
+#: ../yum/__init__.py:794
#, python-format
msgid "Failed to remove transaction file %s"
-msgstr "ÐиÑам ÑÑпео да Ñклоним даÑоÑÐµÐºÑ Ð¿ÑеноÑа %s"
+msgstr "ÐиÑам ÑÑпео да Ñклоним даÑоÑÐµÐºÑ ÑÑанÑакÑиÑе %s"
-#: ../yum/__init__.py:819
+#: ../yum/__init__.py:834
#, python-format
msgid "excluding for cost: %s from %s"
-msgstr "одÑÑÑаÑÑÑем из ÑÑоÑка %s из %s"
+msgstr "изÑзимам из ÑÑоÑка: %s из %s"
-#: ../yum/__init__.py:850
+#: ../yum/__init__.py:865
msgid "Excluding Packages in global exclude list"
-msgstr "ÐдÑÑÑаÑÑÑем пакеÑе Ñ Ð³Ð»Ð¾Ð±Ð°Ð»Ð½Ð¾Ð¼ ÑпиÑÐºÑ Ð·Ð° одÑÑÑаÑиваÑа"
+msgstr "ÐзÑзимам пакеÑе Ñ Ð³Ð»Ð¾Ð±Ð°Ð»Ð½Ð¾Ð¼ ÑпиÑÐºÑ Ð·Ð° изÑзимаÑе"
-#: ../yum/__init__.py:852
+#: ../yum/__init__.py:867
#, python-format
msgid "Excluding Packages from %s"
-msgstr "ÐдÑÑÑаÑÑÑем пакеÑе из %s"
+msgstr "ÐзÑзимам пакеÑе из %s"
-#: ../yum/__init__.py:880
+#: ../yum/__init__.py:895
#, python-format
msgid "Reducing %s to included packages only"
-msgstr "РедÑкÑÑем %s Ñ Ñамо ÑадÑжане пакеÑе"
+msgstr "Сажимам %s Ñамо Ñ ÑадÑжане пакеÑе"
-#: ../yum/__init__.py:885
+#: ../yum/__init__.py:900
#, python-format
msgid "Keeping included package %s"
msgstr "ÐадÑжавам ÑадÑжани Ð¿Ð°ÐºÐµÑ %s"
-#: ../yum/__init__.py:891
+#: ../yum/__init__.py:906
#, python-format
msgid "Removing unmatched package %s"
msgstr "УклаÑам неповезани Ð¿Ð°ÐºÐµÑ %s"
-#: ../yum/__init__.py:894
+#: ../yum/__init__.py:909
msgid "Finished"
msgstr "ÐавÑÑио"
#. Whoa. What the heck happened?
-#: ../yum/__init__.py:924
+#: ../yum/__init__.py:939
#, python-format
msgid "Unable to check if PID %s is active"
msgstr "ÐиÑам Ñ Ð¼Ð¾Ð³ÑÑниÑÑи да пÑовеÑим да ли Ñе PID %s акÑиван"
#. Another copy seems to be running.
-#: ../yum/__init__.py:928
+#: ../yum/__init__.py:943
#, python-format
msgid "Existing lock %s: another copy is running as pid %s."
msgstr "ÐоÑÑоÑи закÑÑÑаваÑе %s: дÑÑга копиÑа Ñе извÑÑава као pid %s."
-#: ../yum/__init__.py:991
+#: ../yum/__init__.py:1006
msgid "Package does not match intended download"
msgstr "ÐÐ°ÐºÐµÑ Ð½Ð¸Ñе одговаÑаÑÑÑи за намеÑавано пÑеÑзимаÑе"
-#: ../yum/__init__.py:1006
+#: ../yum/__init__.py:1021
msgid "Could not perform checksum"
-msgstr "Ðе Ð¼Ð¾Ð³Ñ Ð´Ð° извÑÑим checksum"
+msgstr "Ðе Ð¼Ð¾Ð³Ñ Ð´Ð° извÑÑим конÑÑÐ¾Ð»Ñ ÑÑме"
-#: ../yum/__init__.py:1009
+#: ../yum/__init__.py:1024
msgid "Package does not match checksum"
-msgstr "ÐÐ°ÐºÐµÑ Ð½ÐµÐ¼Ð° одговаÑаÑÑÑи checksum"
+msgstr "ÐÐ°ÐºÐµÑ Ð½ÐµÐ¼Ð° одговаÑаÑÑÑи конÑÑÐ¾Ð»Ð½Ñ ÑÑмÑ"
-#: ../yum/__init__.py:1050
+#: ../yum/__init__.py:1068
#, python-format
msgid "package fails checksum but caching is enabled for %s"
msgstr ""
-"пакеÑÑ Ð½ÐµÐ¼Ð° одговаÑаÑÑÑÑ Ð²ÑедноÑÑ checksum-а или Ñе за %s ÑкÑÑÑено кеÑиÑаÑе"
+"Ð¿Ð°ÐºÐµÑ Ð½ÐµÐ¼Ð° одговаÑаÑÑÑÑ Ð²ÑедноÑÑ ÐºÐ¾Ð½ÑÑолне ÑÑме или Ñе за %s ÑкÑÑÑено "
+"кеÑиÑаÑе"
-#: ../yum/__init__.py:1053
+#: ../yum/__init__.py:1071
#, python-format
msgid "using local copy of %s"
msgstr "коÑиÑÑим локални Ñмножак %s-а"
-#: ../yum/__init__.py:1077
+#: ../yum/__init__.py:1096
#, python-format
msgid "Insufficient space in download directory %s to download"
msgstr "ÐедовоÑна колиÑина пÑоÑÑоÑа Ñ Ð´Ð¸ÑекÑоÑиÑÑÐ¼Ñ %s намеÑеног за пÑеÑзимаÑе"
-#: ../yum/__init__.py:1110
+#: ../yum/__init__.py:1129
msgid "Header is not complete."
msgstr "ÐаглавÑе ниÑе поÑпÑно."
-#: ../yum/__init__.py:1150
+#: ../yum/__init__.py:1169
#, python-format
msgid ""
"Header not in local cache and caching-only mode enabled. Cannot download %s"
@@ -1558,207 +1532,218 @@ msgstr ""
"ÐаглавÑе ниÑе Ñ Ð»Ð¾ÐºÐ°Ð»Ð½Ð¾Ð¼ кеÑÑ Ð¸ Ñамо наÑин Ñада Ñа кеÑиÑаÑем Ñе ÑкÑÑÑен. Ðе "
"Ð¼Ð¾Ð³Ñ Ð´Ð° пÑеÑзмем %s"
-#: ../yum/__init__.py:1205
+#: ../yum/__init__.py:1224
#, python-format
msgid "Public key for %s is not installed"
msgstr "Ðавни кÑÑÑ Ð·Ð° %s ниÑе инÑÑалиÑан"
-#: ../yum/__init__.py:1209
+#: ../yum/__init__.py:1228
#, python-format
msgid "Problem opening package %s"
msgstr "ÐÑоблем Ñа оÑваÑаÑем пакеÑа %s"
-#: ../yum/__init__.py:1217
+#: ../yum/__init__.py:1236
#, python-format
msgid "Public key for %s is not trusted"
msgstr "Ðавни кÑÑÑ Ð·Ð° %s ниÑе повеÑÑив"
-#: ../yum/__init__.py:1221
+#: ../yum/__init__.py:1240
#, python-format
msgid "Package %s is not signed"
msgstr "ÐÐ°ÐºÐµÑ %s ниÑе поÑпиÑан"
-#: ../yum/__init__.py:1259
+#: ../yum/__init__.py:1278
#, python-format
msgid "Cannot remove %s"
msgstr "Ðе Ð¼Ð¾Ð³Ñ Ð´Ð° Ñклоним %s"
-#: ../yum/__init__.py:1263
+#: ../yum/__init__.py:1282
#, python-format
msgid "%s removed"
-msgstr "%s ÑклоÑен"
+msgstr "%s Ñе ÑклоÑен"
-#: ../yum/__init__.py:1299
+#: ../yum/__init__.py:1318
#, python-format
msgid "Cannot remove %s file %s"
msgstr "Ðе Ð¼Ð¾Ð³Ñ Ð´Ð° Ñклоним %s даÑоÑÐµÐºÑ %s"
-#: ../yum/__init__.py:1303
+#: ../yum/__init__.py:1322
#, python-format
msgid "%s file %s removed"
msgstr "%s даÑоÑека %s Ñе ÑклоÑена"
-#: ../yum/__init__.py:1305
+#: ../yum/__init__.py:1324
#, python-format
msgid "%d %s files removed"
msgstr "%d %s даÑоÑеке ÑÑ ÑклоÑене"
-#: ../yum/__init__.py:1359
+#: ../yum/__init__.py:1378
#, python-format
msgid "More than one identical match in sack for %s"
msgstr "ÐоÑÑоÑи виÑе од Ñедног иденÑиÑног ÑлагаÑа Ñ Ð³ÑÑпи за %s"
-#: ../yum/__init__.py:1365
+#: ../yum/__init__.py:1384
#, python-format
msgid "Nothing matches %s.%s %s:%s-%s from update"
msgstr "ÐиÑÑа Ñе не Ñлаже Ñа %s.%s %s:%s-%s из ажÑÑиÑаÑа"
-#: ../yum/__init__.py:1563
+#: ../yum/__init__.py:1577
msgid ""
"searchPackages() will go away in a future version of "
"Yum. Use searchGenerator() instead. \n"
msgstr ""
-"searchPackages() неÑе биÑи пÑиÑÑÑан Ñ Ð±ÑдÑÑим веÑзиÑама Yum-"
-"а. УмеÑÑо Ñега коÑиÑÑиÑе searchGenerator(). \n"
+"searchPackages() неÑе биÑи пÑиÑÑÑна Ñ Ð±ÑдÑÑим веÑзиÑама Yum-"
+"а. УмеÑÑо Ñе коÑиÑÑиÑе searchGenerator(). \n"
-#: ../yum/__init__.py:1600
+#: ../yum/__init__.py:1614
#, python-format
msgid "Searching %d packages"
msgstr "ÐÑеÑÑажÑÑем %d пакеÑе"
-#: ../yum/__init__.py:1604
+#: ../yum/__init__.py:1618
#, python-format
msgid "searching package %s"
msgstr "ÑÑажим Ð¿Ð°ÐºÐµÑ %s"
-#: ../yum/__init__.py:1616
+#: ../yum/__init__.py:1630
msgid "searching in file entries"
-msgstr "searching Ñ ÑноÑима даÑоÑека"
+msgstr "ÑÑажим Ñ ÑноÑима даÑоÑека"
-#: ../yum/__init__.py:1623
+#: ../yum/__init__.py:1637
msgid "searching in provides entries"
msgstr "ÑÑажим Ñ ÑноÑима доÑÑавÑаÑа"
-#: ../yum/__init__.py:1653
+#: ../yum/__init__.py:1667
#, python-format
msgid "Provides-match: %s"
msgstr "ÐоÑÑавÑа-ÑлагаÑе: %s"
-#: ../yum/__init__.py:1722 ../yum/__init__.py:1740 ../yum/__init__.py:1768
-#: ../yum/__init__.py:1773 ../yum/__init__.py:1828 ../yum/__init__.py:1832
+#: ../yum/__init__.py:1736 ../yum/__init__.py:1755 ../yum/__init__.py:1782
+#: ../yum/__init__.py:1788 ../yum/__init__.py:1844 ../yum/__init__.py:1848
#, python-format
msgid "No Group named %s exists"
msgstr "Ðе поÑÑоÑи гÑÑпа под именом %s"
-#: ../yum/__init__.py:1751 ../yum/__init__.py:1844
+#: ../yum/__init__.py:1767 ../yum/__init__.py:1861
#, python-format
msgid "package %s was not marked in group %s"
msgstr "Ð¿Ð°ÐºÐµÑ %s ниÑе ознаÑен Ñ Ð³ÑÑпи %s"
-#: ../yum/__init__.py:1790
+#: ../yum/__init__.py:1806
#, python-format
msgid "Adding package %s from group %s"
msgstr "ÐодаÑем Ð¿Ð°ÐºÐµÑ %s из гÑÑпе %s"
-#: ../yum/__init__.py:1794
+#: ../yum/__init__.py:1810
#, python-format
msgid "No package named %s available to be installed"
-msgstr "ÐиÑедан Ð¿Ð°ÐºÐµÑ Ð¼Ð¾Ð´ именом %s ниÑе доÑÑÑпан за инÑÑалаÑиÑÑ"
+msgstr "ÐиÑедан Ð¿Ð°ÐºÐµÑ Ð¿Ð¾Ð´ именом %s ниÑе доÑÑÑпан за инÑÑалаÑиÑÑ"
-#: ../yum/__init__.py:1869
+#: ../yum/__init__.py:1886
#, python-format
msgid "Package tuple %s could not be found in packagesack"
msgstr "ÐÑÑпа пакеÑа %s ниÑе наÑена Ñ packagesack-Ñ"
-#: ../yum/__init__.py:1937 ../yum/__init__.py:1980
+#: ../yum/__init__.py:1954 ../yum/__init__.py:1994
msgid "Invalid versioned dependency string, try quoting it."
-msgstr "ÐиÑка завиÑноÑÑи има погÑеÑÐ½Ñ Ð²ÐµÑзиÑÑ, покÑÑаÑÑе да га обележиÑе."
+msgstr ""
+"ÐеиÑпÑавна ниÑка завиÑноÑÑи Ñа веÑзиÑом, покÑÑаÑÑе да Ñе обележиÑе "
+"наводниÑима."
-#: ../yum/__init__.py:1939 ../yum/__init__.py:1982
+#: ../yum/__init__.py:1956 ../yum/__init__.py:1996
msgid "Invalid version flag"
-msgstr "ÐогÑеÑна заÑÑава веÑзиÑе"
+msgstr "ÐогÑеÑна ознака веÑзиÑе"
-#: ../yum/__init__.py:1954 ../yum/__init__.py:1958
+#: ../yum/__init__.py:1968 ../yum/__init__.py:1972
#, python-format
msgid "No Package found for %s"
-msgstr "Ðема пÑонаÑеноÑ
пакеÑа за %s"
+msgstr "Ðема пÑонаÑениÑ
пакеÑа за %s"
-#: ../yum/__init__.py:2086
+#: ../yum/__init__.py:2100
msgid "Package Object was not a package object instance"
msgstr "ÐбÑÐµÐºÐ°Ñ Ð¿Ð°ÐºÐµÑа ниÑе био пÑимеÑак обÑекÑа пакеÑа"
-#: ../yum/__init__.py:2090
+#: ../yum/__init__.py:2104
msgid "Nothing specified to install"
-msgstr "ÐиÑÑа ниÑе одÑеÑено за инÑÑалаÑиÑÑ"
+msgstr "ÐиÑе одÑеÑено ниÑÑа за инÑÑалаÑиÑÑ"
#. only one in there
-#: ../yum/__init__.py:2105
+#: ../yum/__init__.py:2119
#, python-format
msgid "Checking for virtual provide or file-provide for %s"
msgstr "ÐÑовеÑавам виÑÑÑÐµÐ»Ð½Ñ Ð´Ð¾ÑÑÐ°Ð²Ñ Ð¸Ð»Ð¸ доÑÑÐ°Ð²Ñ Ð´Ð°ÑоÑеке за %s"
-#: ../yum/__init__.py:2111 ../yum/__init__.py:2424
+#: ../yum/__init__.py:2125 ../yum/__init__.py:2440
#, python-format
msgid "No Match for argument: %s"
msgstr "Ðе поÑÑоÑи ÑлагаÑе за аÑгÑменÑ: %s"
#. FIXME - this is where we could check to see if it already installed
#. for returning better errors
-#: ../yum/__init__.py:2166
+#: ../yum/__init__.py:2180
msgid "No package(s) available to install"
msgstr "Ðема пакеÑа доÑÑÑпниÑ
за инÑÑалаÑиÑÑ"
-#: ../yum/__init__.py:2178
+#: ../yum/__init__.py:2192
#, python-format
msgid "Package: %s - already in transaction set"
-msgstr "ÐакеÑ: %s - Ñе Ð²ÐµÑ Ñ ÑкÑÐ¿Ñ Ð·Ð° пÑеноÑ"
+msgstr "ÐакеÑ: %s - Ð²ÐµÑ Ñе Ñ ÑкÑÐ¿Ñ ÑÑанÑакÑиÑе"
-#: ../yum/__init__.py:2191
+#: ../yum/__init__.py:2205
#, python-format
msgid "Package %s already installed and latest version"
msgstr "ÐÐµÑ Ñе инÑÑалиÑана наÑновиÑа веÑзиÑа пакеÑа %s"
-#: ../yum/__init__.py:2198
+#: ../yum/__init__.py:2212
#, python-format
msgid "Package matching %s already installed. Checking for update."
msgstr ""
"ÐÐ°ÐºÐµÑ ÐºÐ¾Ñи Ñе поклапа Ñа %s Ñе Ð²ÐµÑ Ð¸Ð½ÑÑалиÑан. ÐÑовеÑавам за новиÑÑ Ð²ÐµÑзиÑÑ."
+#: ../yum/__init__.py:2223
+#, python-format
+msgid "Package %s is obsoleted by %s, trying to install %s instead"
+msgstr "ÐÐ°ÐºÐµÑ %s Ñе замеÑен пакеÑом %s, покÑÑавам да намеÑÑо инÑÑалиÑам %s"
+
#. update everything (the easy case)
-#: ../yum/__init__.py:2240
+#: ../yum/__init__.py:2256
msgid "Updating Everything"
msgstr "ÐжÑÑиÑам Ñве"
-#: ../yum/__init__.py:2343
+#: ../yum/__init__.py:2359
#, python-format
msgid "Package is already obsoleted: %s.%s %s:%s-%s"
msgstr "ÐÐ°ÐºÐµÑ Ñе Ð²ÐµÑ Ð¿ÑевазиÑен: %s.%s %s:%s-%s"
-#: ../yum/__init__.py:2367
+#: ../yum/__init__.py:2383
#, python-format
msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s"
msgstr "Ðе ажÑÑиÑам пакеÑе коÑи ÑÑ Ð²ÐµÑ Ð°Ð¶ÑÑиÑани: %s.%s %s:%s-%s"
-#: ../yum/__init__.py:2421
+#: ../yum/__init__.py:2437
#, python-format
msgid "%s"
msgstr "%s"
-#: ../yum/__init__.py:2436
+#. FIXME we should give the caller some nice way to hush this warning
+#. probably just a kwarg of 'silence_warnings' or something
+#. b/c when this is called from groupRemove() it makes a lot of
+#. garbage noise
+#: ../yum/__init__.py:2456
msgid "No package matched to remove"
msgstr "ÐиÑедан Ð¿Ð°ÐºÐµÑ Ð½Ð¸Ñе одÑеÑен за ÑклаÑаÑе"
-#: ../yum/__init__.py:2470
+#: ../yum/__init__.py:2490
#, python-format
msgid "Cannot open file: %s. Skipping."
msgstr "Ðе Ð¼Ð¾Ð³Ñ Ð´Ð° оÑвоÑим даÑоÑекÑ: %s. ÐÑеÑкаÑем Ñе."
-#: ../yum/__init__.py:2473
+#: ../yum/__init__.py:2493
#, python-format
msgid "Examining %s: %s"
msgstr "ÐÑпиÑÑÑем %s: %s"
-#: ../yum/__init__.py:2480
+#: ../yum/__init__.py:2500
#, python-format
msgid ""
"Package %s not installed, cannot update it. Run yum install to install it "
@@ -1767,104 +1752,104 @@ msgstr ""
"ÐÐ°ÐºÐµÑ %s ниÑе инÑÑалиÑан, не Ð¼Ð¾Ð³Ñ Ð´Ð° га ажÑÑиÑам. ÐзвÑÑиÑе yum инÑÑалаÑиÑÑ "
"да биÑÑе га инÑÑалиÑали."
-#: ../yum/__init__.py:2513
+#: ../yum/__init__.py:2533
#, python-format
msgid "Excluding %s"
-msgstr "ÐзвÑÑавам %s"
+msgstr "ÐзÑзимам %s"
-#: ../yum/__init__.py:2518
+#: ../yum/__init__.py:2538
#, python-format
msgid "Marking %s to be installed"
msgstr "ÐзнаÑавам %s за инÑÑалаÑиÑÑ"
-#: ../yum/__init__.py:2524
+#: ../yum/__init__.py:2544
#, python-format
msgid "Marking %s as an update to %s"
msgstr "ÐзнаÑавам %s као ажÑÑиÑаÑе за %s"
-#: ../yum/__init__.py:2531
+#: ../yum/__init__.py:2551
#, python-format
msgid "%s: does not update installed package."
msgstr "%s: не ажÑÑиÑа инÑÑалиÑани пакеÑ."
-#: ../yum/__init__.py:2549
+#: ../yum/__init__.py:2569
msgid "Problem in reinstall: no package matched to remove"
msgstr ""
"ÐÑоблем пÑи Ð¿Ð¾Ð½Ð¾Ð²Ð½Ð¾Ñ Ð¸Ð½ÑÑалаÑиÑи: ниÑедан Ð¿Ð°ÐºÐµÑ Ð½Ð¸Ñе одÑеÑен за ÑклаÑаÑе"
-#: ../yum/__init__.py:2560
+#: ../yum/__init__.py:2580
#, python-format
msgid "Package %s is allowed multiple installs, skipping"
msgstr "ÐакеÑÑ %s ÑÑ Ð´Ð¾Ð·Ð²Ð¾Ñене многоÑÑÑÑке инÑÑалаÑиÑе, пÑеÑкаÑем га"
-#: ../yum/__init__.py:2567
+#: ../yum/__init__.py:2587
msgid "Problem in reinstall: no package matched to install"
msgstr ""
"ÐÑоблем пÑи Ð¿Ð¾Ð½Ð¾Ð²Ð½Ð¾Ñ Ð¸Ð½ÑÑалаÑиÑи: ниÑедан Ð¿Ð°ÐºÐµÑ Ð½Ð¸Ñе одÑеÑен за инÑÑалаÑиÑÑ"
-#: ../yum/__init__.py:2615
+#: ../yum/__init__.py:2635
#, python-format
msgid "Retrieving GPG key from %s"
-msgstr "ÐобиÑам GPG кÑÑÑ Ð¾Ð´ %s"
+msgstr "ÐобавÑам GPG кÑÑÑ Ñа %s"
-#: ../yum/__init__.py:2621
+#: ../yum/__init__.py:2641
msgid "GPG key retrieval failed: "
-msgstr "ÐоÑÑавÑаÑе GPG кÑÑÑа ниÑе ÑÑпело: "
+msgstr "ÐобавÑаÑе GPG кÑÑÑа ниÑе ÑÑпело: "
-#: ../yum/__init__.py:2634
+#: ../yum/__init__.py:2654
msgid "GPG key parsing failed: "
msgstr "РаÑÑлаÑиваÑе GPG кÑÑÑа ниÑе ÑÑпело: "
-#: ../yum/__init__.py:2638
+#: ../yum/__init__.py:2658
#, python-format
msgid "GPG key at %s (0x%s) is already installed"
msgstr "GPG кÑÑÑ Ð½Ð° %s (0x%s) Ñе Ð²ÐµÑ Ð¸Ð½ÑÑалиÑан"
#. Try installing/updating GPG key
-#: ../yum/__init__.py:2643
+#: ../yum/__init__.py:2663
#, python-format
msgid "Importing GPG key 0x%s \"%s\" from %s"
msgstr "Увозим GPG кÑÑÑ 0x%s â%sâ из %s"
-#: ../yum/__init__.py:2655
+#: ../yum/__init__.py:2675
msgid "Not installing key"
msgstr "Ðе инÑÑалиÑам кÑÑÑ"
-#: ../yum/__init__.py:2661
+#: ../yum/__init__.py:2681
#, python-format
msgid "Key import failed (code %d)"
msgstr "ÐиÑе ÑÑпео Ñвоз кÑÑÑа (код %d)"
-#: ../yum/__init__.py:2664
+#: ../yum/__init__.py:2684
msgid "Key imported successfully"
msgstr "ÐÑÑÑ Ñе ÑÑпеÑно Ñвезен"
-#: ../yum/__init__.py:2669
+#: ../yum/__init__.py:2689
#, 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 кÑÑÑеви излиÑÑани за â%sâ ÑепозиÑоÑиÑÑм ÑÑ Ð²ÐµÑ Ð¸ÑÑалиÑани али ниÑÑ "
-"одговаÑаÑÑÑи Ð·Ð°Ð¾Ð²Ð°Ñ Ð¿Ð°ÐºÐµÑ.\n"
-"ÐÑовеÑиÑе да ли ÑÑ Ð¿Ð¾Ð´ÐµÑени одговаÑаÑÑÑи URL-ови кÑÑÑева за Ð¾Ð²Ñ ÑизниÑÑ."
+"GPG кÑÑÑеви излиÑÑани за â%sâ ÑизниÑÑ ÑÑ Ð²ÐµÑ Ð¸ÑÑалиÑани али ниÑÑ "
+"одговаÑаÑÑÑи за Ð¾Ð²Ð°Ñ Ð¿Ð°ÐºÐµÑ.\n"
+"ÐÑовеÑиÑе да ли ÑÑ Ð¿Ð¾Ð´ÐµÑени одговаÑаÑÑÑи УРÐ-ови кÑÑÑева за Ð¾Ð²Ñ ÑизниÑÑ."
-#: ../yum/__init__.py:2678
+#: ../yum/__init__.py:2698
msgid "Import of key(s) didn't help, wrong key(s)?"
msgstr "Увоз кÑÑÑа(кÑÑÑева) ниÑе помогао, погÑеÑан кÑÑÑ(кÑÑÑеви)?"
-#: ../yum/__init__.py:2752
+#: ../yum/__init__.py:2778
msgid "Unable to find a suitable mirror."
msgstr "Ðе Ð¼Ð¾Ð³Ñ Ð´Ð° пÑонаÑем одговаÑаÑÑÑи одÑаз."
-#: ../yum/__init__.py:2754
+#: ../yum/__init__.py:2780
msgid "Errors were encountered while downloading packages."
msgstr "ÐоÑавиле ÑÑ Ñе гÑеÑке за вÑеме пÑеÑзимаÑа пакеÑа."
-#: ../yum/__init__.py:2819
+#: ../yum/__init__.py:2844
msgid "Test Transaction Errors: "
-msgstr "ÐÑеÑке пÑи пÑовеÑи пÑеноÑа: "
+msgstr "ÐÑеÑке пÑи пÑовеÑи ÑÑанÑакÑиÑе: "
#. Mostly copied from YumOutput._outKeyValFill()
#: ../yum/plugins.py:197
@@ -1884,7 +1869,7 @@ msgstr "â%sâ додаÑак Ñе иÑкÑÑÑен"
#: ../yum/plugins.py:233
#, python-format
msgid "Plugin \"%s\" doesn't specify required API version"
-msgstr "ÐодаÑак â%sâ не одÑеÑÑÑе веÑзиÑÑ Ð·Ð°Ñ
Ñеваног API-а"
+msgstr "ÐодаÑак â%sâ не одÑеÑÑÑе веÑзиÑÑ Ð·Ð°Ñ
Ñеваног API-а"
#: ../yum/plugins.py:237
#, python-format
@@ -1937,7 +1922,7 @@ msgstr "ÐиÑе ÑÑпела md5 пÑовеÑа за %s RPM"
#: ../rpmUtils/oldUtils.py:144
msgid "Could not open RPM database for reading. Perhaps it is already in use?"
msgstr ""
-"Ðе Ð¼Ð¾Ð³Ñ Ð´Ð° за поÑÑебе ÑиÑаÑа оÑвоÑим RPM Ð±Ð°Ð·Ñ Ð¿Ð¾Ð´Ð°Ñака. Ðожда Ñе Ð²ÐµÑ Ñ "
+"Ðе Ð¼Ð¾Ð³Ñ Ð´Ð° оÑвоÑим RPM Ð±Ð°Ð·Ñ Ð¿Ð¾Ð´Ð°Ñака за поÑÑебе ÑиÑаÑа. Ðожда Ñе Ð²ÐµÑ Ñ "
"ÑпоÑÑеби?"
#: ../rpmUtils/oldUtils.py:174
diff --git a/po/sr at latin.po b/po/sr at latin.po
index 9fd45b6..e053e91 100644
--- a/po/sr at latin.po
+++ b/po/sr at latin.po
@@ -1,56 +1,57 @@
-# translation of yum.master.sr.po to Serbian
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# translation of sr.po to Serbian
+# Serbian(Latin) translations for yum
+# Copyright (C) 2008 Linux at Duke
+# This file is distributed under the same license as the yum package.
#
# Jovan Krunic <jovan.krunic at gmail.com>, 2008.
# Igor Miletic <grejigl-gnomeprevod at yahoo.ca>, 2008.
+# MiloÅ¡ KomarÄeviÄ <kmilos at gmail.com>, 2008.
msgid ""
msgstr ""
-"Project-Id-Version: yum.master.sr\n"
+"Project-Id-Version: yum\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-04-07 21:19+0000\n"
-"PO-Revision-Date: 2008-04-07 23:57-0400\n"
-"Last-Translator: Igor Miletic <grejigl-gnomeprevod at yahoo.ca>\n"
-"Language-Team: Serbian <fedora-trans-sr at redhat.com>\n"
+"POT-Creation-Date: 2008-05-26 13:28+0000\n"
+"PO-Revision-Date: 2008-05-26 20:30-0000\n"
+"Last-Translator: MiloÅ¡ KomarÄeviÄ <kmilos at gmail.com>\n"
+"Language-Team: Serbian (sr) <fedora-trans-sr at redhat.com>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.11.4\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-#: ../callback.py:48 ../output.py:513 ../yum/rpmtrans.py:71
+#: ../callback.py:48 ../output.py:516 ../yum/rpmtrans.py:71
msgid "Updating"
-msgstr "Ažuriranje"
+msgstr "Ažuriram"
#: ../callback.py:49 ../yum/rpmtrans.py:72
msgid "Erasing"
-msgstr "Brisanje"
+msgstr "Brišem"
-#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:512
+#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:515
#: ../yum/rpmtrans.py:73 ../yum/rpmtrans.py:74 ../yum/rpmtrans.py:76
msgid "Installing"
-msgstr "Instaliranje"
+msgstr "Instaliram"
#: ../callback.py:52 ../callback.py:58 ../yum/rpmtrans.py:75
msgid "Obsoleted"
msgstr "PrevaziÄeni"
-#: ../callback.py:54 ../output.py:559
+#: ../callback.py:54 ../output.py:562
msgid "Updated"
-msgstr "Ažurirano"
+msgstr "Ažurirani"
#: ../callback.py:55
msgid "Erased"
-msgstr "Obrisano"
+msgstr "Obrisani"
-#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:557
+#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:560
msgid "Installed"
-msgstr "Instalirano"
+msgstr "Instalirani"
#: ../callback.py:130
msgid "No header - huh?"
-msgstr "Nema zaglavlja - je li?"
+msgstr "Nema zaglavlja - hm?"
#: ../callback.py:168
msgid "Repackage"
@@ -66,7 +67,7 @@ msgstr "Greška: pogrešno izlazno stanje: %s za %s"
msgid "Erased: %s"
msgstr "Obrisano: %s"
-#: ../callback.py:217 ../output.py:514
+#: ../callback.py:217 ../output.py:517
msgid "Removing"
msgstr "Uklanjam"
@@ -74,45 +75,45 @@ msgstr "Uklanjam"
msgid "Cleanup"
msgstr "ÄiÅ¡Äenje"
-#: ../cli.py:103
+#: ../cli.py:105
#, python-format
msgid "Command \"%s\" already defined"
msgstr "Naredba â%sâ je veÄ definisana"
-#: ../cli.py:115
+#: ../cli.py:117
msgid "Setting up repositories"
msgstr "Postavljam riznice"
-#: ../cli.py:126
+#: ../cli.py:128
msgid "Reading repository metadata in from local files"
msgstr "Äitam metapodatke riznica iz lokalnih datoteka"
-#: ../cli.py:183 ../utils.py:72
+#: ../cli.py:185 ../utils.py:71
#, python-format
msgid "Config Error: %s"
msgstr "Greška pri podešavanju: %s"
-#: ../cli.py:186 ../cli.py:1070 ../utils.py:75
+#: ../cli.py:188 ../cli.py:1080 ../utils.py:74
#, python-format
msgid "Options Error: %s"
msgstr "Greška u opcijama: %s"
-#: ../cli.py:229
+#: ../cli.py:231
msgid "You need to give some command"
msgstr "Morate da unesete neku komandu"
-#: ../cli.py:271
+#: ../cli.py:273
msgid "Disk Requirements:\n"
msgstr "Zahtevi diska:\n"
-#: ../cli.py:273
+#: ../cli.py:275
#, python-format
msgid " At least %dMB needed on the %s filesystem.\n"
-msgstr " Najmanje %dMB je potrebno na vašem %s sistemu datoteka.\n"
+msgstr " Potrebno je najmanje %dMB na %s sistemu datoteka.\n"
#. TODO: simplify the dependency errors?
#. Fixup the summary
-#: ../cli.py:278
+#: ../cli.py:280
msgid ""
"Error Summary\n"
"-------------\n"
@@ -120,225 +121,223 @@ msgstr ""
"Sažetak grešaka\n"
"-------------\n"
-#: ../cli.py:317
+#: ../cli.py:319
msgid "Trying to run the transaction but nothing to do. Exiting."
-msgstr ""
-"Pokušavam da izvršavam prenos ali nema ništa što mogu da uradim. Izlazim."
+msgstr "Pokušavam da izvršim transakciju ali nema šta da se radi. Izlazim."
-#: ../cli.py:347
+#: ../cli.py:349
msgid "Exiting on user Command"
msgstr "Izlazim na komandu korisnika"
-#: ../cli.py:351
+#: ../cli.py:353
msgid "Downloading Packages:"
msgstr "Preuzimam pakete:"
-#: ../cli.py:356
+#: ../cli.py:358
msgid "Error Downloading Packages:\n"
msgstr "Greška pri preuzimanju paketa:\n"
-#: ../cli.py:370 ../yum/__init__.py:2791
+#: ../cli.py:372 ../yum/__init__.py:2816
msgid "Running rpm_check_debug"
msgstr "Izvršavam rpm_check_debug"
-#: ../cli.py:373 ../yum/__init__.py:2794
+#: ../cli.py:375 ../yum/__init__.py:2819
msgid "ERROR with rpm_check_debug vs depsolve:"
msgstr "GREÅ KA sa rpm_check_debug u odnosu na depsolve:"
-#: ../cli.py:377 ../yum/__init__.py:2796
+#: ../cli.py:379 ../yum/__init__.py:2821
msgid "Please report this error in bugzilla"
-msgstr "Molim vas, prijavite ovu grešku u bugzilla-i"
+msgstr "Molim vas, prijavite ovu grešku u bugzilli"
-#: ../cli.py:383
+#: ../cli.py:385
msgid "Running Transaction Test"
-msgstr "Izvršavam proveru prenosa"
+msgstr "Izvršavam proveru transakcije"
-#: ../cli.py:399
+#: ../cli.py:401
msgid "Finished Transaction Test"
-msgstr "Završio sam proveru prenosa"
+msgstr "Završio sam proveru transakcije"
-#: ../cli.py:401
+#: ../cli.py:403
msgid "Transaction Check Error:\n"
-msgstr "Greška pri proveri prenosa:\n"
+msgstr "Greška pri proveri transakcije:\n"
-#: ../cli.py:408
+#: ../cli.py:410
msgid "Transaction Test Succeeded"
-msgstr "Provera prenosa uspela"
+msgstr "Provera transakcije je uspela"
-#: ../cli.py:429
+#: ../cli.py:431
msgid "Running Transaction"
-msgstr "Izvršavam prenos"
+msgstr "Izvršavam transakciju"
-#: ../cli.py:459
+#: ../cli.py:461
msgid ""
"Refusing to automatically import keys when running unattended.\n"
"Use \"-y\" to override."
msgstr ""
-"Odbijanje da se automatski uvezu kljuÄevi kada se izvrÅ¡avanje ne nadgleda.\n"
+"Odbijam da automatski uvezem kljuÄeve kada se izvrÅ¡avanje ne nadgleda.\n"
"Za prevazilaženje ovoga koristite â-yâ."
-#: ../cli.py:491
+#: ../cli.py:493
msgid "Parsing package install arguments"
msgstr "RaÅ¡Älanjujem argumente instalacije paketa"
-#: ../cli.py:501
+#: ../cli.py:503
#, python-format
msgid "No package %s available."
msgstr "Ne postoji dostupan %s paket."
-#: ../cli.py:505 ../cli.py:623 ../yumcommands.py:777
+#: ../cli.py:507 ../cli.py:625 ../yumcommands.py:790
msgid "Package(s) to install"
msgstr "Paket(i) koji Äe se instalirati"
-#: ../cli.py:506 ../cli.py:624 ../yumcommands.py:147 ../yumcommands.py:778
+#: ../cli.py:508 ../cli.py:626 ../yumcommands.py:147 ../yumcommands.py:791
msgid "Nothing to do"
-msgstr "Nema ništa da se uradi"
+msgstr "Nema Å¡ta da se radi"
-#: ../cli.py:536 ../yum/__init__.py:2252 ../yum/__init__.py:2352
-#: ../yum/__init__.py:2364
+#: ../cli.py:538 ../yum/__init__.py:2268 ../yum/__init__.py:2368
+#: ../yum/__init__.py:2380
#, python-format
msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
msgstr "Ne ažuriram pakete koji su veÄ prevaziÄeni: %s.%s %s:%s-%s"
-#: ../cli.py:568
+#: ../cli.py:570
#, python-format
msgid "Could not find update match for %s"
msgstr "Ne mogu da pronaÄem odgovarajuÄe ažuriranje za %s"
-#: ../cli.py:580
+#: ../cli.py:582
#, python-format
msgid "%d packages marked for Update"
msgstr "%d paketi oznaÄeni za ažuriranje"
-#: ../cli.py:583
+#: ../cli.py:585
msgid "No Packages marked for Update"
msgstr "Nema paketa oznaÄenih za ažuriranje"
-#: ../cli.py:599
+#: ../cli.py:601
#, python-format
msgid "%d packages marked for removal"
msgstr "%d paketi oznaÄeni za uklanjanje"
-#: ../cli.py:602
+#: ../cli.py:604
msgid "No Packages marked for removal"
msgstr "Nema paketa oznaÄenih za uklanjanje"
-#: ../cli.py:614
+#: ../cli.py:616
msgid "No Packages Provided"
msgstr "Nijedan paket nije dobavljen"
-#: ../cli.py:654
+#: ../cli.py:656
msgid "Matching packages for package list to user args"
msgstr "Povezivanje paketa za spisak paketa po argumentima korisnika"
-#: ../cli.py:701
+#: ../cli.py:704
#, python-format
msgid "Warning: No matches found for: %s"
-msgstr "Upozorenje: Nije naÄeno podudaranje za %s"
+msgstr "Upozorenje: nije naÄeno podudaranje za %s"
-#: ../cli.py:704
+#: ../cli.py:707
msgid "No Matches found"
msgstr "Nisu pronaÄena podudaranja"
-#: ../cli.py:745
+#: ../cli.py:748
#, python-format
msgid "No Package Found for %s"
msgstr "Nisu pronaÄeni paketi za %s"
-#: ../cli.py:757
+#: ../cli.py:760
msgid "Cleaning up Everything"
msgstr "Äistim sve"
-#: ../cli.py:771
+#: ../cli.py:774
msgid "Cleaning up Headers"
msgstr "Äistim zaglavlja"
-#: ../cli.py:774
+#: ../cli.py:777
msgid "Cleaning up Packages"
msgstr "Äistim pakete"
-#: ../cli.py:777
+#: ../cli.py:780
msgid "Cleaning up xml metadata"
msgstr "Äistim xml metapodatke"
-#: ../cli.py:780
+#: ../cli.py:783
msgid "Cleaning up database cache"
msgstr "Äistim keÅ¡ baza podataka"
-#: ../cli.py:783
+#: ../cli.py:786
msgid "Cleaning up expire-cache metadata"
msgstr "Äistim expire-cache metapodatke"
-#: ../cli.py:786
+#: ../cli.py:789
msgid "Cleaning up plugins"
msgstr "Äistim dodatke"
-#: ../cli.py:807
+#: ../cli.py:811
msgid "Installed Groups:"
msgstr "Instalirane grupe:"
-#: ../cli.py:814
+#: ../cli.py:818
msgid "Available Groups:"
msgstr "Dostupne grupe:"
-#: ../cli.py:820
+#: ../cli.py:824
msgid "Done"
msgstr "UraÄeno"
-#: ../cli.py:829 ../cli.py:841 ../cli.py:847
+#: ../cli.py:835 ../cli.py:853 ../cli.py:859
#, python-format
msgid "Warning: Group %s does not exist."
msgstr "Upozorenje: grupa %s ne postoji."
-#: ../cli.py:853
+#: ../cli.py:863
msgid "No packages in any requested group available to install or update"
msgstr ""
-"Nema paketa u svim zahtevanim grupama, koji su dostupni za instalaciju ili "
-"ažuriranje"
+"Nema dostupnih paketa za instalaciju ili ažuriranje u svim zahtevanim grupama"
-#: ../cli.py:855
+#: ../cli.py:865
#, python-format
msgid "%d Package(s) to Install"
msgstr "%d paket(i) za instalaciju"
-#: ../cli.py:865
+#: ../cli.py:875
#, python-format
msgid "No group named %s exists"
msgstr "Ne postoji grupa pod imenom %s"
-#: ../cli.py:871
+#: ../cli.py:881
msgid "No packages to remove from groups"
msgstr "Nema paketa za uklanjanje iz grupa"
-#: ../cli.py:873
+#: ../cli.py:883
#, python-format
msgid "%d Package(s) to remove"
msgstr "%d paket(i) za uklanjanje"
-#: ../cli.py:915
+#: ../cli.py:925
#, python-format
msgid "Package %s is already installed, skipping"
msgstr "Paket %s je veÄ instaliran, preskaÄem ga"
-#: ../cli.py:926
+#: ../cli.py:936
#, python-format
msgid "Discarding non-comparable pkg %s.%s"
msgstr "Uklanjam neuporediv paket %s.%s"
#. we've not got any installed that match n or n+a
-#: ../cli.py:952
+#: ../cli.py:962
#, python-format
msgid "No other %s installed, adding to list for potential install"
msgstr ""
"Ne postoji instaliran drugi %s, dodajem ga u spisak za potencijalnu "
"instalaciju"
-#: ../cli.py:971
+#: ../cli.py:981
#, python-format
msgid "Command line error: %s"
msgstr "Greška komandne linije: %s"
-#: ../cli.py:983
+#: ../cli.py:993
#, python-format
msgid ""
"\n"
@@ -349,218 +348,226 @@ msgstr ""
"\n"
"%s: %s opcija zahteva argument"
-#: ../cli.py:1103
+#: ../cli.py:1122
+msgid "show this help message and exit"
+msgstr "prikaži ovu pomoÄnu poruku i izaÄi"
+
+#: ../cli.py:1126
msgid "be tolerant of errors"
msgstr "budi tolerantan na greške"
-#: ../cli.py:1105
+#: ../cli.py:1128
msgid "run entirely from cache, don't update cache"
msgstr "izvršavaj se u potpunosti iz keša, ne ažuriraj keš"
-#: ../cli.py:1107
+#: ../cli.py:1130
msgid "config file location"
msgstr "mesto datoteke podešavanja"
-#: ../cli.py:1109
+#: ../cli.py:1132
msgid "maximum command wait time"
-msgstr "najveÄe Äekanje na komandu"
+msgstr "najduže vreme Äekanja na komandu"
-#: ../cli.py:1111
+#: ../cli.py:1134
msgid "debugging output level"
-msgstr "nivo pronalaženja grešaka izlaza"
+msgstr "nivo izlaznog prikaza za pronalaženje grešaka"
-#: ../cli.py:1115
+#: ../cli.py:1138
msgid "show duplicates, in repos, in list/search commands"
msgstr ""
"prikazuj duplikate, u riznicama, u komandama za izlistavanje/pretraživanje"
-#: ../cli.py:1117
+#: ../cli.py:1140
msgid "error output level"
-msgstr "nivo grešaka izlaza"
+msgstr "nivo izlaznog prikaza grešaka"
-#: ../cli.py:1120
+#: ../cli.py:1143
msgid "quiet operation"
msgstr "tiha radnja"
-#: ../cli.py:1124
+#: ../cli.py:1145
+msgid "verbose operation"
+msgstr "opširna radnja"
+
+#: ../cli.py:1147
msgid "answer yes for all questions"
-msgstr "odgovori da na sva pitanja"
+msgstr "odgovori sa da na sva pitanja"
-#: ../cli.py:1126
+#: ../cli.py:1149
msgid "show Yum version and exit"
msgstr "prikaži verziju Yum-a i izaÄi"
-#: ../cli.py:1127
+#: ../cli.py:1150
msgid "set install root"
msgstr "postavi koreni direktorijum instalacije"
-#: ../cli.py:1131
+#: ../cli.py:1154
msgid "enable one or more repositories (wildcards allowed)"
msgstr "ukljuÄi jednu ili viÅ¡e riznica (skraÄenice su dozvoljene)"
-#: ../cli.py:1135
+#: ../cli.py:1158
msgid "disable one or more repositories (wildcards allowed)"
msgstr "iskljuÄi jednu ili viÅ¡e riznica (skraÄenice su dozvoljene)"
-#: ../cli.py:1138
+#: ../cli.py:1161
msgid "exclude package(s) by name or glob"
-msgstr "odstranite paket(e) po imenu ili glob-u"
+msgstr "izuzmite paket(e) po imenu ili glob-u"
-#: ../cli.py:1140
+#: ../cli.py:1163
msgid "disable exclude from main, for a repo or for everything"
-msgstr "iskljuÄi odstranjivanje, za repozitorijum ili za sve"
+msgstr "iskljuÄi izuzimanje iz glavnog skupa, za riznicu ili za sve"
-#: ../cli.py:1143
+#: ../cli.py:1166
msgid "enable obsoletes processing during updates"
msgstr "ukljuÄi obradu zastarelih paketa u toku ažuriranja"
-#: ../cli.py:1145
+#: ../cli.py:1168
msgid "disable Yum plugins"
msgstr "iskljuÄi dodatke za Yum"
-#: ../cli.py:1147
+#: ../cli.py:1170
msgid "disable gpg signature checking"
msgstr "iskljuÄi proveru gpg potpisa"
-#: ../cli.py:1149
+#: ../cli.py:1172
msgid "disable plugins by name"
msgstr "iskljuÄi dodatke po imenu"
-#: ../cli.py:1152
+#: ../cli.py:1175
msgid "skip packages with depsolving problems"
msgstr "preskoÄi pakete koji imaju problema sa reÅ¡avanjem zavisnosti"
-#: ../output.py:229
+#: ../output.py:228
msgid "Jan"
-msgstr "Jan"
+msgstr "jan"
-#: ../output.py:229
+#: ../output.py:228
msgid "Feb"
-msgstr "Feb"
+msgstr "feb"
-#: ../output.py:229
+#: ../output.py:228
msgid "Mar"
-msgstr "Mar"
+msgstr "mar"
-#: ../output.py:229
+#: ../output.py:228
msgid "Apr"
-msgstr "Apr"
+msgstr "apr"
-#: ../output.py:229
+#: ../output.py:228
msgid "May"
-msgstr "Maj"
+msgstr "maj"
-#: ../output.py:229
+#: ../output.py:228
msgid "Jun"
-msgstr "Jun"
+msgstr "jun"
-#: ../output.py:230
+#: ../output.py:229
msgid "Jul"
-msgstr "Jul"
+msgstr "jul"
-#: ../output.py:230
+#: ../output.py:229
msgid "Aug"
-msgstr "Avg"
+msgstr "avg"
-#: ../output.py:230
+#: ../output.py:229
msgid "Sep"
-msgstr "Sep"
+msgstr "sep"
-#: ../output.py:230
+#: ../output.py:229
msgid "Oct"
-msgstr "Okt"
+msgstr "okt"
-#: ../output.py:230
+#: ../output.py:229
msgid "Nov"
-msgstr "Nov"
+msgstr "nov"
-#: ../output.py:230
+#: ../output.py:229
msgid "Dec"
-msgstr "Dec"
+msgstr "dec"
-#: ../output.py:240
+#: ../output.py:239
msgid "Trying other mirror."
-msgstr "Pokušaj drugi odraz."
+msgstr "Pokušavam drugi odraz."
-#: ../output.py:294
+#: ../output.py:293
#, python-format
msgid "Name : %s"
-msgstr "Ime : %s"
+msgstr "Ime : %s"
-#: ../output.py:295
+#: ../output.py:294
#, python-format
msgid "Arch : %s"
msgstr "Arhitektura: %s"
-#: ../output.py:297
+#: ../output.py:296
#, python-format
msgid "Epoch : %s"
-msgstr "Period : %s"
+msgstr "Period : %s"
-#: ../output.py:298
+#: ../output.py:297
#, python-format
msgid "Version : %s"
msgstr "Verzija : %s"
-#: ../output.py:299
+#: ../output.py:298
#, python-format
msgid "Release : %s"
-msgstr "Izdanje : %s"
+msgstr "Izdanje : %s"
-#: ../output.py:300
+#: ../output.py:299
#, python-format
msgid "Size : %s"
-msgstr "VeliÄina : %s"
+msgstr "VeliÄina : %s"
-#: ../output.py:301
+#: ../output.py:300
#, python-format
msgid "Repo : %s"
-msgstr "Riznica : %s"
+msgstr "Riznica : %s"
-#: ../output.py:303
+#: ../output.py:302
#, python-format
msgid "Committer : %s"
-msgstr "ObjavljivaÄ : %s"
+msgstr "ObjavljivaÄ : %s"
-#: ../output.py:304
+#: ../output.py:303
msgid "Summary : "
msgstr "Sažetak :"
-#: ../output.py:306
+#: ../output.py:305
#, python-format
msgid "URL : %s"
msgstr "URL : %s"
-#: ../output.py:307
+#: ../output.py:306
#, python-format
msgid "License : %s"
msgstr "Licenca : %s"
-#: ../output.py:308
+#: ../output.py:307
msgid "Description: "
-msgstr "Opis:"
+msgstr "Opis : "
-#: ../output.py:352
+#: ../output.py:351
msgid "Is this ok [y/N]: "
msgstr "Da li je ovo u redu [d/N]: "
-#: ../output.py:358 ../output.py:361
+#: ../output.py:359 ../output.py:362
msgid "y"
msgstr "d"
-#: ../output.py:358
+#: ../output.py:359
msgid "n"
msgstr "n"
-#: ../output.py:358 ../output.py:361
+#: ../output.py:359 ../output.py:362
msgid "yes"
msgstr "da"
-#: ../output.py:358
+#: ../output.py:359
msgid "no"
msgstr "ne"
-#: ../output.py:368
+#: ../output.py:370
#, python-format
msgid ""
"\n"
@@ -569,96 +576,96 @@ msgstr ""
"\n"
"Grupa: %s"
-#: ../output.py:370
+#: ../output.py:372
#, python-format
msgid " Description: %s"
msgstr " Opis: %s"
-#: ../output.py:372
+#: ../output.py:374
msgid " Mandatory Packages:"
-msgstr " Glavni paketi:"
+msgstr " Obavezni paketi:"
-#: ../output.py:377
+#: ../output.py:379
msgid " Default Packages:"
msgstr " Podrazumevani paketi:"
-#: ../output.py:382
+#: ../output.py:384
msgid " Optional Packages:"
-msgstr " Opcionalni paketi:"
+msgstr " Izborni paketi:"
-#: ../output.py:387
+#: ../output.py:389
msgid " Conditional Packages:"
-msgstr " Usklovljeni paketi:"
+msgstr " Uslovljeni paketi:"
-#: ../output.py:395
+#: ../output.py:398
#, python-format
msgid "package: %s"
msgstr "paket: %s"
-#: ../output.py:397
+#: ../output.py:400
msgid " No dependencies for this package"
msgstr " Ne postoje zavisnosti ovog paketa"
-#: ../output.py:402
+#: ../output.py:405
#, python-format
msgid " dependency: %s"
msgstr " zavisnost: %s"
-#: ../output.py:404
+#: ../output.py:407
msgid " Unsatisfied dependency"
msgstr " Nezadovoljena zavisnost"
-#: ../output.py:462
+#: ../output.py:465
msgid "Matched from:"
msgstr "Povezan iz:"
-#: ../output.py:488
+#: ../output.py:491
msgid "There was an error calculating total download size"
-msgstr "Dogodila se greÅ¡ka pri raÄunanju ukupne veliÄine preuzimanja"
+msgstr "Dogodila se greÅ¡ka pri raÄunanju ukupne veliÄine za preuzimanje"
-#: ../output.py:493
+#: ../output.py:496
#, python-format
msgid "Total size: %s"
msgstr "Ukupna veliÄina: %s"
-#: ../output.py:496
+#: ../output.py:499
#, python-format
msgid "Total download size: %s"
-msgstr "Ukupna veliÄina preuzimanja: %s"
+msgstr "Ukupna veliÄina za preuzimanje: %s"
-#: ../output.py:508
+#: ../output.py:511
msgid "Package"
msgstr "Paket"
-#: ../output.py:508
+#: ../output.py:511
msgid "Arch"
msgstr "Arhitektura"
-#: ../output.py:508
+#: ../output.py:511
msgid "Version"
msgstr "Verzija"
-#: ../output.py:508
+#: ../output.py:511
msgid "Repository"
msgstr "Riznica"
-#: ../output.py:508
+#: ../output.py:511
msgid "Size"
msgstr "VeliÄina"
-#: ../output.py:515
+#: ../output.py:518
msgid "Installing for dependencies"
-msgstr "Instaliranje vezana za zavisnosti"
+msgstr "Instaliram zbog zavisnosti"
-#: ../output.py:516
+#: ../output.py:519
msgid "Updating for dependencies"
-msgstr "Ažuriranja vezana za zavisnosti"
+msgstr "Ažuriram zbog zavisnosti"
-#: ../output.py:517
+#: ../output.py:520
msgid "Removing for dependencies"
-msgstr "Uklanjanja vezana za zavisnosti"
+msgstr "Uklanjam zbog zavisnosti"
-#: ../output.py:529
+#: ../output.py:532
#, python-format
msgid ""
" replacing %s.%s %s\n"
@@ -667,7 +674,7 @@ msgstr ""
" uklanjam %s.%s %s\n"
"\n"
-#: ../output.py:537
+#: ../output.py:540
#, python-format
msgid ""
"\n"
@@ -678,33 +685,33 @@ msgid ""
"Remove %5.5s Package(s) \n"
msgstr ""
"\n"
-"Sažetak prenosa\n"
+"Sažetak transakcije\n"
"=============================================================================\n"
-"instaliraj %5.5s paket(a) \n"
-"ažuriraj %5.5s paket(a) \n"
-"ukloni %5.5s paket(a) \n"
+"instaliranje %5.5s paket(a) \n"
+"ažuriranje %5.5s paket(a) \n"
+"uklanjanje %5.5s paket(a) \n"
-#: ../output.py:555
+#: ../output.py:558
msgid "Removed"
msgstr "Uklonjeno"
-#: ../output.py:556
+#: ../output.py:559
msgid "Dependency Removed"
msgstr "Zavisnost uklonjena"
-#: ../output.py:558
+#: ../output.py:561
msgid "Dependency Installed"
msgstr "Zavisnost instalirana"
-#: ../output.py:560
+#: ../output.py:563
msgid "Dependency Updated"
msgstr "Zavisnost ažurirana"
-#: ../output.py:561
+#: ../output.py:564
msgid "Replaced"
msgstr "Zamenjeno"
-#: ../output.py:619
+#: ../output.py:622
#, python-format
msgid ""
"\n"
@@ -715,67 +722,67 @@ msgstr ""
" Trenutno preuzimanje je obustavljeno, %sinterrupt (ctrl-c) još jednom%s u "
"toku %s%s%s sekundi da biste izašli.\n"
-#: ../output.py:629
+#: ../output.py:632
msgid "user interrupt"
msgstr "prekid od strane korisnika"
-#: ../output.py:640
+#: ../output.py:643
msgid "installed"
-msgstr "instalirano"
+msgstr "instaliran"
-#: ../output.py:641
+#: ../output.py:644
msgid "updated"
-msgstr "ažurirano"
+msgstr "ažuriran"
-#: ../output.py:642
+#: ../output.py:645
msgid "obsoleted"
-msgstr "prevaziÄeno"
+msgstr "prevaziÄen"
-#: ../output.py:643
+#: ../output.py:646
msgid "erased"
-msgstr "obrisano"
+msgstr "obrisan"
-#: ../output.py:647
+#: ../output.py:650
#, python-format
msgid "---> Package %s.%s %s:%s-%s set to be %s"
msgstr "---> Paket %s.%s %s:%s-%s postavljen da bude %s"
-#: ../output.py:654
+#: ../output.py:657
msgid "--> Running transaction check"
-msgstr "--> Izvršava se provera prenosa"
+msgstr "--> Izvršava se provera transakcije"
-#: ../output.py:659
+#: ../output.py:662
msgid "--> Restarting Dependency Resolution with new changes."
-msgstr "--> Ponovno pokretanje rezolucije zavisnosti sa novim promenama."
+msgstr "--> Ponovno pokretanje razrešavanja zavisnosti sa novim promenama."
-#: ../output.py:664
+#: ../output.py:667
msgid "--> Finished Dependency Resolution"
-msgstr "--> Završena rezolucija zavisnosti"
+msgstr "--> Završeno je razrešavanje zavisnosti"
-#: ../output.py:669
+#: ../output.py:672
#, python-format
msgid "--> Processing Dependency: %s for package: %s"
msgstr "--> ObraÄujem zavisnost: %s za paket: %s"
-#: ../output.py:674
+#: ../output.py:677
#, python-format
msgid "--> Unresolved Dependency: %s"
msgstr "--> Nerazrešena zavisnost: %s"
-#: ../output.py:680
+#: ../output.py:683
#, python-format
msgid "--> Processing Conflict: %s conflicts %s"
msgstr "--> Sukob pri obradi: %s se sukobi sa %s"
-#: ../output.py:683
+#: ../output.py:686
msgid "--> Populating transaction set with selected packages. Please wait."
msgstr ""
-"--> Popunjavam skup transakcija sa izabranim paketima. Molim vas, saÄekajte."
+"--> Popunjavam skup transakcije sa izabranim paketima. Molim vas, saÄekajte."
-#: ../output.py:687
+#: ../output.py:690
#, python-format
msgid "---> Downloading header for %s to pack into transaction set."
-msgstr "---> Preuzimam zaglavlje za %s da bi se spakovalo u skup prenosa."
+msgstr "---> Preuzimam zaglavlje za %s radi pakovanja u skup transakcije."
#: ../yumcommands.py:37
msgid "You need to be root to perform this command."
@@ -800,14 +807,14 @@ msgid ""
msgstr ""
"\n"
"UkljuÄili ste proveru paketa pomoÄu GPG kljuÄeva. Ovo je dobra stvar. \n"
-"MeÄutim, nemate instaliran ni jedan GPG javni kljuÄ. Morate da preuzmete\n"
+"MeÄutim, nemate instaliran nijedan GPG javni kljuÄ. Morate da preuzmete\n"
"kljuÄeve za pakete koje želite da instalirate i instalirate ih.\n"
"To možete uraditi izvršavanjem komande:\n"
" rpm --import public.gpg.key\n"
"\n"
"\n"
"TakoÄe, možete odrediti url za kljuÄ koji želite da koristite\n"
-"za piznicu u 'gpgkey' opciji u odeljku vezanim za riznice i yum \n"
+"za riznicu u âgpgkeyâ opciji u odeljku vezanim za riznice i yum \n"
"Äe ga instalirati za vas.\n"
"\n"
"Za viÅ¡e informacija kontaktirajte dobavljaÄa vaÅ¡e distribucije ili paketa.\n"
@@ -853,8 +860,7 @@ msgstr ""
#: ../yumcommands.py:116
msgid "Error: more than one file given as argument to shell."
msgstr ""
-"GreÅ¡ka: viÅ¡e od jedne datoteke je prosleÄeno kao argument komandnom "
-"okruženju."
+"GreÅ¡ka: viÅ¡e od jedne datoteke je prosleÄeno kao argument komandnom okruženju."
#: ../yumcommands.py:157
msgid "PACKAGE..."
@@ -930,7 +936,7 @@ msgstr "Postavljam proces za grupe"
#: ../yumcommands.py:287
msgid "No Groups on which to run command"
-msgstr "Ne postoji grupa pri kojoj se može izvršavati komanda"
+msgstr "Ne postoji grupa nad kojom se može izvršiti komanda"
#: ../yumcommands.py:300
msgid "List available package groups"
@@ -978,7 +984,7 @@ msgstr "Proverite da li su dostupna ažuriranja paketa"
#: ../yumcommands.py:493
msgid "Search package details for the given string"
-msgstr "Pretraži detalje o paketu za zadatu nisku"
+msgstr "Pretražite detalje o paketu za zadatu nisku"
#: ../yumcommands.py:499
msgid "Searching Packages: "
@@ -986,7 +992,7 @@ msgstr "Pretražujem pakete: "
#: ../yumcommands.py:516
msgid "Update packages taking obsoletes into account"
-msgstr "Ažurirajte pakete noseÄi prevaziÄene u nalog"
+msgstr "Ažurirajte pakete uzimajuÄi prevaziÄene u obzir"
#: ../yumcommands.py:525
msgid "Setting up Upgrade Process"
@@ -1028,48 +1034,52 @@ msgstr "Tražim zavisnosti: "
msgid "Display the configured software repositories"
msgstr "Prikaži podešene softverske riznice"
-#: ../yumcommands.py:662
+#: ../yumcommands.py:666
msgid "enabled"
-msgstr "ukljuÄen"
+msgstr "ukljuÄena"
-#: ../yumcommands.py:665
+#: ../yumcommands.py:673
msgid "disabled"
-msgstr "iskljuÄen"
+msgstr "iskljuÄena"
-#: ../yumcommands.py:672
+#: ../yumcommands.py:682
msgid "repo id"
msgstr "repo id"
-#: ../yumcommands.py:673
+#: ../yumcommands.py:683
msgid "repo name"
msgstr "repo ime"
-#: ../yumcommands.py:673
+#: ../yumcommands.py:683
msgid "status"
msgstr "status"
-#: ../yumcommands.py:676
+#: ../yumcommands.py:686
msgid "Repo-id : "
-msgstr "IB riznice : "
+msgstr "IB riznice : "
-#: ../yumcommands.py:677
+#: ../yumcommands.py:687
msgid "Repo-name : "
-msgstr "Ime riznice : "
+msgstr "Ime riznice : "
-#: ../yumcommands.py:678
+#: ../yumcommands.py:688
msgid "Repo-enabled: "
msgstr "Riznica ukljuÄena: "
-#: ../yumcommands.py:700
+#: ../yumcommands.py:689
+msgid "Repo-size : "
+msgstr "VeliÄina riznice: "
+
+#: ../yumcommands.py:713
msgid "Display a helpful usage message"
-msgstr "Prikaži korisn poruku o koriÅ¡Äenju"
+msgstr "Prikaži korisnu poruku o upotrebi"
-#: ../yumcommands.py:734
+#: ../yumcommands.py:747
#, python-format
msgid "No help available for %s"
msgstr "Nije dostupna pomoÄ za %s"
-#: ../yumcommands.py:739
+#: ../yumcommands.py:752
msgid ""
"\n"
"\n"
@@ -1079,7 +1089,7 @@ msgstr ""
"\n"
"alijasi: "
-#: ../yumcommands.py:741
+#: ../yumcommands.py:754
msgid ""
"\n"
"\n"
@@ -1089,15 +1099,15 @@ msgstr ""
"\n"
"alijas: "
-#: ../yumcommands.py:770
+#: ../yumcommands.py:783
msgid "Setting up Reinstall Process"
msgstr "Postavljam proces ponovne instalacije"
-#: ../yumcommands.py:784
+#: ../yumcommands.py:797
msgid "reinstall a package"
msgstr "ponovno instaliram paket"
-#: ../yummain.py:41
+#: ../yummain.py:53
msgid ""
"\n"
"\n"
@@ -1107,7 +1117,7 @@ msgstr ""
"\n"
"Izlazim kada korisnik otkaže"
-#: ../yummain.py:47
+#: ../yummain.py:59
msgid ""
"\n"
"\n"
@@ -1117,41 +1127,41 @@ msgstr ""
"\n"
"Izlazim kada se slomi cev"
-#: ../yummain.py:105
+#: ../yummain.py:110
msgid ""
"Another app is currently holding the yum lock; waiting for it to exit..."
msgstr ""
"Neki drugi program trenutno drži yum zakljuÄavanje, Äekam da se taj program "
"iskljuÄi..."
-#: ../yummain.py:132 ../yummain.py:171
+#: ../yummain.py:137 ../yummain.py:176
#, python-format
msgid "Error: %s"
msgstr "Greška: %s"
-#: ../yummain.py:142 ../yummain.py:178
+#: ../yummain.py:147 ../yummain.py:183
#, python-format
msgid "Unknown Error(s): Exit Code: %d:"
-msgstr "Nepoznata greÅ¡ka(e): Izlazni Ävor: %d:"
+msgstr "Nepoznata greška(e): izlazni kod: %d:"
#. Depsolve stage
-#: ../yummain.py:149
+#: ../yummain.py:154
msgid "Resolving Dependencies"
msgstr "Razrešavam zavisnosti"
-#: ../yummain.py:184
+#: ../yummain.py:189
msgid ""
"\n"
"Dependencies Resolved"
msgstr ""
"\n"
-"Zavisnosti razrešene"
+"Zavisnosti su razrešene"
-#: ../yummain.py:198
+#: ../yummain.py:203
msgid "Complete!"
msgstr "Završeno!"
-#: ../yummain.py:245
+#: ../yummain.py:250
msgid ""
"\n"
"\n"
@@ -1161,192 +1171,147 @@ msgstr ""
"\n"
"Izlazim kada korisnik otkaže."
-#: ../yum/depsolve.py:83
+#: ../yum/depsolve.py:78
msgid "doTsSetup() will go away in a future version of Yum.\n"
-msgstr "doTsSetup() neÄe biti prisutan u buduÄim verzijama Yum-a.\n"
+msgstr "doTsSetup() neÄe biti prisutna u buduÄim verzijama Yum-a.\n"
-#: ../yum/depsolve.py:96
+#: ../yum/depsolve.py:91
msgid "Setting up TransactionSets before config class is up"
-msgstr ""
-"Postavljam postavke transakcije pre nego što se podigne klasa podešavanja"
+msgstr "Postavljam TransactionSets pre nego što se podigne klasa podešavanja"
-#: ../yum/depsolve.py:137
+#: ../yum/depsolve.py:132
#, python-format
msgid "Invalid tsflag in config file: %s"
msgstr "Pogrešan tsflag u datoteci podešavanja: %s"
-#: ../yum/depsolve.py:148
-#, python-format
-msgid "Searching pkgSack for dep: %s"
-msgstr "Pretražujem pkgSack u potrazi za zavisnosti: %s"
-
-#: ../yum/depsolve.py:171
-#, python-format
-msgid "Potential match for %s from %s"
-msgstr "Potencijalni spoj za %s od %s"
-
-#: ../yum/depsolve.py:179
-#, python-format
-msgid "Matched %s to require for %s"
-msgstr "PronaÄeno da je %s zahtevan za %s"
-
-#: ../yum/depsolve.py:220
+#: ../yum/depsolve.py:176
#, python-format
msgid "Member: %s"
msgstr "Älan: %s"
-#: ../yum/depsolve.py:234 ../yum/depsolve.py:687
+#: ../yum/depsolve.py:190 ../yum/depsolve.py:595
#, python-format
msgid "%s converted to install"
msgstr "%s prebaÄen za instalaciju"
-#: ../yum/depsolve.py:241
+#: ../yum/depsolve.py:197
#, python-format
msgid "Adding Package %s in mode %s"
msgstr "Dodajem paket %s u naÄinu rada %s"
-#: ../yum/depsolve.py:251
+#: ../yum/depsolve.py:207
#, python-format
msgid "Removing Package %s"
-msgstr "Ukanjam paket %s"
+msgstr "Uklanjam paket %s"
-#: ../yum/depsolve.py:262
+#: ../yum/depsolve.py:218
#, python-format
msgid "%s requires: %s"
msgstr "%s zahteva: %s"
-#: ../yum/depsolve.py:313
-msgid "Needed Require has already been looked up, cheating"
-msgstr "Potreban uslov je veÄ tražen, varam"
-
-#: ../yum/depsolve.py:323
-#, python-format
-msgid "Needed Require is not a package name. Looking up: %s"
-msgstr "Potreban uslov nije ime paketa. Tražim: %s"
-
-#: ../yum/depsolve.py:330
-#, python-format
-msgid "Potential Provider: %s"
-msgstr "Potencijalni dobavljaÄ: %s"
-
-#: ../yum/depsolve.py:353
-#, python-format
-msgid "Mode is %s for provider of %s: %s"
-msgstr "NaÄin rada je %s za dostavljaÄa %s-a: %s"
-
-#: ../yum/depsolve.py:357
-#, python-format
-msgid "Mode for pkg providing %s: %s"
-msgstr "NaÄin rada za pkg koji pruža %s: %s"
-
-#: ../yum/depsolve.py:361
-#, python-format
-msgid "TSINFO: %s package requiring %s marked as erase"
-msgstr "TSINFO: %s paket zahteva %s oznaÄen kao brisanje"
-
-#: ../yum/depsolve.py:373
+#: ../yum/depsolve.py:273
#, python-format
msgid "TSINFO: Obsoleting %s with %s to resolve dep."
-msgstr "TSINFO: Menjam %s sa %s da bih razrešio zavisnost."
+msgstr "TSINFO: menjam %s sa %s da bih razrešio zavisnost."
-#: ../yum/depsolve.py:376
+#: ../yum/depsolve.py:276
#, python-format
msgid "TSINFO: Updating %s to resolve dep."
-msgstr "TSINFO: Ažuriram %s da bih razrešio zavisnost."
+msgstr "TSINFO: ažuriram %s da bih razrešio zavisnost."
-#: ../yum/depsolve.py:379
+#: ../yum/depsolve.py:279
#, python-format
msgid "Cannot find an update path for dep for: %s"
msgstr "Ne mogu da pronaÄem putanju ažuriranja za zavisnost za: %s"
-#: ../yum/depsolve.py:389
+#: ../yum/depsolve.py:283
#, python-format
-msgid "Unresolvable requirement %s for %s"
-msgstr "Nerazrešivi zahtev %s za %s"
+msgid "TSINFO: %s package requiring %s marked as erase"
+msgstr "TSINFO: %s paket zahteva da %s bude oznaÄen za brisanje"
#. is it already installed?
-#: ../yum/depsolve.py:435
+#: ../yum/depsolve.py:329
#, python-format
msgid "%s is in providing packages but it is already installed, removing."
-msgstr "%s je u pružanju paketa ali je još uvek instaliran, uklanjam ga."
+msgstr "%s je u pruženim paketa ali je veÄ instaliran, uklanjam ga."
-#: ../yum/depsolve.py:450
+#: ../yum/depsolve.py:344
#, python-format
msgid "Potential resolving package %s has newer instance in ts."
msgstr "Potencijalno razrešavanje paketa %s ima noviji primerak u ts-u."
-#: ../yum/depsolve.py:461
+#: ../yum/depsolve.py:355
#, python-format
msgid "Potential resolving package %s has newer instance installed."
msgstr "Potencijalno razrešavanje paketa %s ima instaliran novi primerak."
-#: ../yum/depsolve.py:469 ../yum/depsolve.py:518
+#: ../yum/depsolve.py:363 ../yum/depsolve.py:412
#, python-format
msgid "Missing Dependency: %s is needed by package %s"
msgstr "Nedostaje zavisnost: %s je potreban od strane paketa %s"
-#: ../yum/depsolve.py:482
+#: ../yum/depsolve.py:376
#, python-format
msgid "%s already in ts, skipping this one"
msgstr "%s je veÄ u ts-u, preskaÄem ga"
-#: ../yum/depsolve.py:528
+#: ../yum/depsolve.py:422
#, python-format
msgid "TSINFO: Marking %s as update for %s"
-msgstr "TSINFO: OznaÄavam %s kao ažuriranje za %s"
+msgstr "TSINFO: oznaÄavam %s kao ažuriranje za %s"
-#: ../yum/depsolve.py:535
+#: ../yum/depsolve.py:429
#, python-format
msgid "TSINFO: Marking %s as install for %s"
-msgstr "TSINFO: OznaÄavam %s kao instalaciju za %s"
+msgstr "TSINFO: oznaÄavam %s kao instalaciju za %s"
-#: ../yum/depsolve.py:626 ../yum/depsolve.py:705
+#: ../yum/depsolve.py:520 ../yum/depsolve.py:613
msgid "Success - empty transaction"
msgstr "Uspeh - prazna transakcija"
-#: ../yum/depsolve.py:664 ../yum/depsolve.py:677
+#: ../yum/depsolve.py:565 ../yum/depsolve.py:585
msgid "Restarting Loop"
-msgstr "Ponovo startujem ponavljanje"
+msgstr "Ponovo pokreÄem petlju"
-#: ../yum/depsolve.py:693
+#: ../yum/depsolve.py:601
msgid "Dependency Process ending"
msgstr "Završetak procesa zavisnosti"
-#: ../yum/depsolve.py:699
+#: ../yum/depsolve.py:607
#, python-format
msgid "%s from %s has depsolving problems"
msgstr "%s iz %s ima problema sa razrešavanjem zavisnosti"
-#: ../yum/depsolve.py:706
+#: ../yum/depsolve.py:614
msgid "Success - deps resolved"
msgstr "Uspeh - zavisnosti su razrešene"
-#: ../yum/depsolve.py:720
+#: ../yum/depsolve.py:628
#, python-format
msgid "Checking deps for %s"
msgstr "Proveravam zavisnosti za %s"
-#: ../yum/depsolve.py:773
+#: ../yum/depsolve.py:690
#, python-format
msgid "looking for %s as a requirement of %s"
msgstr "tražim %s kao zahtev za %s"
-#: ../yum/depsolve.py:911
+#: ../yum/depsolve.py:817
#, python-format
msgid "Running compare_providers() for %s"
msgstr "PokreÄem compare_providers() za %s"
-#: ../yum/depsolve.py:939 ../yum/depsolve.py:945
+#: ../yum/depsolve.py:845 ../yum/depsolve.py:851
#, python-format
msgid "better arch in po %s"
msgstr "bolja arhitektura u po %s"
-#: ../yum/depsolve.py:984
+#: ../yum/depsolve.py:890
#, python-format
msgid "%s obsoletes %s"
-msgstr "%s izbacuje %s"
+msgstr "%s prevazilazi %s"
-#: ../yum/depsolve.py:995
+#: ../yum/depsolve.py:901
#, python-format
msgid ""
"archdist compared %s to %s on %s\n"
@@ -1355,412 +1320,430 @@ msgstr ""
"archdist uporedio %s sa %s na %s\n"
" Pobednik: %s"
-#: ../yum/depsolve.py:1002
+#: ../yum/depsolve.py:908
#, python-format
msgid "common sourcerpm %s and %s"
-msgstr "zajedniÄki izvorni RPM %s i %s"
+msgstr "zajedniÄki izvorni rpm %s i %s"
-#: ../yum/depsolve.py:1008
+#: ../yum/depsolve.py:914
#, python-format
msgid "common prefix of %s between %s and %s"
msgstr "zajedniÄki prefiks %s izmeÄu %s i %s"
-#: ../yum/depsolve.py:1016
+#: ../yum/depsolve.py:922
#, python-format
msgid "Best Order: %s"
msgstr "Najbolji redosled: %s"
-#: ../yum/__init__.py:127
+#: ../yum/__init__.py:129
msgid "doConfigSetup() will go away in a future version of Yum.\n"
-msgstr "doConfigSetup() neÄe biti prisutan u buduÄim verzijama Yum-a.\n"
+msgstr "doConfigSetup() neÄe biti prisutna u buduÄim verzijama Yum-a.\n"
-#: ../yum/__init__.py:299
+#: ../yum/__init__.py:303
#, python-format
msgid "Repository %r is missing name in configuration, using id"
msgstr "Riznici %r nedostaje ime u podešavanjima, koristim id"
-#: ../yum/__init__.py:335
+#: ../yum/__init__.py:339
msgid "plugins already initialised"
msgstr "veÄ inicijalizovani dodaci"
-#: ../yum/__init__.py:342
+#: ../yum/__init__.py:346
msgid "doRpmDBSetup() will go away in a future version of Yum.\n"
-msgstr "doRpmDBSetup() neÄe biti prisutan u buduÄim verzijama Yum-a.\n"
+msgstr "doRpmDBSetup() neÄe biti prisutna u buduÄim verzijama Yum-a.\n"
-#: ../yum/__init__.py:352
+#: ../yum/__init__.py:356
msgid "Reading Local RPMDB"
msgstr "Äitam lokalni RPMDB"
-#: ../yum/__init__.py:370
+#: ../yum/__init__.py:374
msgid "doRepoSetup() will go away in a future version of Yum.\n"
-msgstr "doRepoSetup() neÄe biti prisutan u buduÄim verzijama Yum-a.\n"
+msgstr "doRepoSetup() neÄe biti prisutna u buduÄim verzijama Yum-a.\n"
-#: ../yum/__init__.py:390
+#: ../yum/__init__.py:394
msgid "doSackSetup() will go away in a future version of Yum.\n"
-msgstr "doSackSetup() neÄe biti prisutan u buduÄim verzijama Yum-a.\n"
+msgstr "doSackSetup() neÄe biti prisutna u buduÄim verzijama Yum-a.\n"
-#: ../yum/__init__.py:407
+#: ../yum/__init__.py:411
msgid "Setting up Package Sacks"
msgstr "Postavljam grupe paketa"
-#: ../yum/__init__.py:450
+#: ../yum/__init__.py:454
#, python-format
msgid "repo object for repo %s lacks a _resetSack method\n"
msgstr "repo objektu za repo %s nedostaje a _resetSack metoda\n"
-#: ../yum/__init__.py:451
+#: ../yum/__init__.py:455
msgid "therefore this repo cannot be reset.\n"
-msgstr "zbog toga se ovaj repo ne može ponovo startovati.\n"
+msgstr "zbog toga se ovaj repo ne može vratiti na poÄetnu postavku.\n"
-#: ../yum/__init__.py:456
+#: ../yum/__init__.py:460
msgid "doUpdateSetup() will go away in a future version of Yum.\n"
-msgstr "doUpdateSetup() neÄe biti prisutan u buduÄim verzijama Yum-a.\n"
+msgstr "doUpdateSetup() neÄe biti prisutna u buduÄim verzijama Yum-a.\n"
-#: ../yum/__init__.py:468
+#: ../yum/__init__.py:472
msgid "Building updates object"
-msgstr "IzgraÄivanje ažurira objekat"
+msgstr "IzgraÄujem objekat ažurirnja"
-#: ../yum/__init__.py:499
+#: ../yum/__init__.py:503
msgid "doGroupSetup() will go away in a future version of Yum.\n"
-msgstr "doGroupSetup() neÄe biti prisutan u buduÄim verzijama Yum-a.\n"
+msgstr "doGroupSetup() neÄe biti prisutna u buduÄim verzijama Yum-a.\n"
-#: ../yum/__init__.py:523
+#: ../yum/__init__.py:527
msgid "Getting group metadata"
-msgstr "Dobavljam grupu metapodataka"
+msgstr "Dobavljam metapodatke grupe"
-#: ../yum/__init__.py:549
+#: ../yum/__init__.py:553
#, python-format
msgid "Adding group file from repository: %s"
-msgstr "Dodajem grupu datoteka iz riznice: %s"
+msgstr "Dodajem datoteku grupe iz riznice: %s"
-#: ../yum/__init__.py:558
+#: ../yum/__init__.py:562
#, python-format
msgid "Failed to add groups file for repository: %s - %s"
-msgstr "Nisam uspeo da dodam grupu datoteka za riznicu: %s - %s"
+msgstr "Nisam uspeo da dodam datoteku grupe za riznicu: %s - %s"
-#: ../yum/__init__.py:564
+#: ../yum/__init__.py:568
msgid "No Groups Available in any repository"
msgstr "Ne postoji grupa koja je dostupna u bilo kojoj riznici"
-#: ../yum/__init__.py:614
+#: ../yum/__init__.py:618
msgid "Importing additional filelist information"
msgstr "Uvozim dodatne informacije o spiskovima datoteka"
-#: ../yum/__init__.py:662
+#: ../yum/__init__.py:670
#, python-format
msgid "Skip-broken round %i"
msgstr "Skip-broken etapa %i"
-#: ../yum/__init__.py:685
+#: ../yum/__init__.py:693
#, python-format
msgid "Skip-broken took %i rounds "
-msgstr "Skip-broken je uzeo %i etapa "
+msgstr "Skip-broken je završen u %i etapa "
-#: ../yum/__init__.py:686
+#: ../yum/__init__.py:694
msgid ""
"\n"
"Packages skipped because of dependency problems:"
msgstr ""
"\n"
-"Paketi su preskoÄeni zbog problema za zavisnostima:"
+"Paketi su preskoÄeni zbog problema sa zavisnostima:"
-#: ../yum/__init__.py:690
+#: ../yum/__init__.py:698
#, python-format
msgid " %s from %s"
msgstr " %s iz %s"
#: ../yum/__init__.py:779
+msgid ""
+"Warning: scriptlet or other non-fatal errors occurred during transaction."
+msgstr ""
+"Upozorenje: doÅ¡lo je do greÅ¡ke u skriptici ili neke druge nekritiÄne greÅ¡ke "
+"tokom transkacije."
+
+#: ../yum/__init__.py:794
#, python-format
msgid "Failed to remove transaction file %s"
-msgstr "Nisam uspeo da uklonim datoteku prenosa %s"
+msgstr "Nisam uspeo da uklonim datoteku transakcije %s"
-#: ../yum/__init__.py:819
+#: ../yum/__init__.py:834
#, python-format
msgid "excluding for cost: %s from %s"
-msgstr "odstranjujem iz troška %s iz %s"
+msgstr "izuzimam iz troška: %s iz %s"
-#: ../yum/__init__.py:850
+#: ../yum/__init__.py:865
msgid "Excluding Packages in global exclude list"
-msgstr "Odstranjujem pakete u globalnom spisku za odstranjivanja"
+msgstr "Izuzimam pakete u globalnom spisku za izuzimanje"
-#: ../yum/__init__.py:852
+#: ../yum/__init__.py:867
#, python-format
msgid "Excluding Packages from %s"
-msgstr "Odstranjujem pakete iz %s"
+msgstr "Izuzimam pakete iz %s"
-#: ../yum/__init__.py:880
+#: ../yum/__init__.py:895
#, python-format
msgid "Reducing %s to included packages only"
-msgstr "Redukujem %s u samo sadržane pakete"
+msgstr "Sažimam %s samo u sadržane pakete"
-#: ../yum/__init__.py:885
+#: ../yum/__init__.py:900
#, python-format
msgid "Keeping included package %s"
msgstr "Zadržavam sadržani paket %s"
-#: ../yum/__init__.py:891
+#: ../yum/__init__.py:906
#, python-format
msgid "Removing unmatched package %s"
msgstr "Uklanjam nepovezani paket %s"
-#: ../yum/__init__.py:894
+#: ../yum/__init__.py:909
msgid "Finished"
msgstr "Završio"
#. Whoa. What the heck happened?
-#: ../yum/__init__.py:924
+#: ../yum/__init__.py:939
#, python-format
msgid "Unable to check if PID %s is active"
msgstr "Nisam u moguÄnisti da proverim da li je PID %s aktivan"
#. Another copy seems to be running.
-#: ../yum/__init__.py:928
+#: ../yum/__init__.py:943
#, python-format
msgid "Existing lock %s: another copy is running as pid %s."
msgstr "Postoji zakljuÄavanje %s: druga kopija se izvrÅ¡ava kao pid %s."
-#: ../yum/__init__.py:991
+#: ../yum/__init__.py:1006
msgid "Package does not match intended download"
msgstr "Paket nije odgovarajuÄi za nameravano preuzimanje"
-#: ../yum/__init__.py:1006
+#: ../yum/__init__.py:1021
msgid "Could not perform checksum"
-msgstr "Ne mogu da izvršim checksum"
+msgstr "Ne mogu da izvršim kontrolu sume"
-#: ../yum/__init__.py:1009
+#: ../yum/__init__.py:1024
msgid "Package does not match checksum"
-msgstr "Paket nema odgovarajuÄi checksum"
+msgstr "Paket nema odgovarajuÄi kontrolnu sumu"
-#: ../yum/__init__.py:1050
+#: ../yum/__init__.py:1068
#, python-format
msgid "package fails checksum but caching is enabled for %s"
msgstr ""
-"paketu nema odgovarajuÄu vrednost checksum-a ili je za %s ukljuÄeno keÅ¡iranje"
+"paket nema odgovarajuÄu vrednost kontrolne sume ili je za %s ukljuÄeno "
+"keširanje"
-#: ../yum/__init__.py:1053
+#: ../yum/__init__.py:1071
#, python-format
msgid "using local copy of %s"
msgstr "koristim lokalni umnožak %s-a"
-#: ../yum/__init__.py:1077
+#: ../yum/__init__.py:1096
#, python-format
msgid "Insufficient space in download directory %s to download"
-msgstr ""
-"Nedovoljna koliÄina prostora u direktorijumu %s namenjenog za preuzimanje"
+msgstr "Nedovoljna koliÄina prostora u direktorijumu %s namenjenog za preuzimanje"
-#: ../yum/__init__.py:1110
+#: ../yum/__init__.py:1129
msgid "Header is not complete."
msgstr "Zaglavlje nije potpuno."
-#: ../yum/__init__.py:1150
+#: ../yum/__init__.py:1169
#, python-format
msgid ""
"Header not in local cache and caching-only mode enabled. Cannot download %s"
msgstr ""
-"Zaglavlje nije u lokalnom keÅ¡u i samo naÄin rada sa keÅ¡iranjem je ukljuÄen. "
-"Ne mogu da preuzmem %s"
+"Zaglavlje nije u lokalnom keÅ¡u i samo naÄin rada sa keÅ¡iranjem je ukljuÄen. Ne "
+"mogu da preuzmem %s"
-#: ../yum/__init__.py:1205
+#: ../yum/__init__.py:1224
#, python-format
msgid "Public key for %s is not installed"
msgstr "Javni kljuÄ za %s nije instaliran"
-#: ../yum/__init__.py:1209
+#: ../yum/__init__.py:1228
#, python-format
msgid "Problem opening package %s"
msgstr "Problem sa otvaranjem paketa %s"
-#: ../yum/__init__.py:1217
+#: ../yum/__init__.py:1236
#, python-format
msgid "Public key for %s is not trusted"
msgstr "Javni kljuÄ za %s nije poverljiv"
-#: ../yum/__init__.py:1221
+#: ../yum/__init__.py:1240
#, python-format
msgid "Package %s is not signed"
msgstr "Paket %s nije potpisan"
-#: ../yum/__init__.py:1259
+#: ../yum/__init__.py:1278
#, python-format
msgid "Cannot remove %s"
msgstr "Ne mogu da uklonim %s"
-#: ../yum/__init__.py:1263
+#: ../yum/__init__.py:1282
#, python-format
msgid "%s removed"
-msgstr "%s uklonjen"
+msgstr "%s je uklonjen"
-#: ../yum/__init__.py:1299
+#: ../yum/__init__.py:1318
#, python-format
msgid "Cannot remove %s file %s"
msgstr "Ne mogu da uklonim %s datoteku %s"
-#: ../yum/__init__.py:1303
+#: ../yum/__init__.py:1322
#, python-format
msgid "%s file %s removed"
msgstr "%s datoteka %s je uklonjena"
-#: ../yum/__init__.py:1305
+#: ../yum/__init__.py:1324
#, python-format
msgid "%d %s files removed"
msgstr "%d %s datoteke su uklonjene"
-#: ../yum/__init__.py:1359
+#: ../yum/__init__.py:1378
#, python-format
msgid "More than one identical match in sack for %s"
msgstr "Postoji viÅ¡e od jednog identiÄnog slaganja u grupi za %s"
-#: ../yum/__init__.py:1365
+#: ../yum/__init__.py:1384
#, python-format
msgid "Nothing matches %s.%s %s:%s-%s from update"
msgstr "Ništa se ne slaže sa %s.%s %s:%s-%s iz ažuriranja"
-#: ../yum/__init__.py:1563
+#: ../yum/__init__.py:1577
msgid ""
"searchPackages() will go away in a future version of "
"Yum. Use searchGenerator() instead. \n"
msgstr ""
-"searchPackages() neÄe biti prisutan u buduÄim verzijama Yum-"
-"a. Umesto njega koristite searchGenerator(). \n"
+"searchPackages() neÄe biti prisutna u buduÄim verzijama Yum-"
+"a. Umesto nje koristite searchGenerator(). \n"
-#: ../yum/__init__.py:1600
+#: ../yum/__init__.py:1614
#, python-format
msgid "Searching %d packages"
msgstr "Pretražujem %d pakete"
-#: ../yum/__init__.py:1604
+#: ../yum/__init__.py:1618
#, python-format
msgid "searching package %s"
msgstr "tražim paket %s"
-#: ../yum/__init__.py:1616
+#: ../yum/__init__.py:1630
msgid "searching in file entries"
-msgstr "searching u unosima datoteka"
+msgstr "tražim u unosima datoteka"
-#: ../yum/__init__.py:1623
+#: ../yum/__init__.py:1637
msgid "searching in provides entries"
msgstr "tražim u unosima dostavljaÄa"
-#: ../yum/__init__.py:1653
+#: ../yum/__init__.py:1667
#, python-format
msgid "Provides-match: %s"
msgstr "Dostavlja-slaganje: %s"
-#: ../yum/__init__.py:1722 ../yum/__init__.py:1740 ../yum/__init__.py:1768
-#: ../yum/__init__.py:1773 ../yum/__init__.py:1828 ../yum/__init__.py:1832
+#: ../yum/__init__.py:1736 ../yum/__init__.py:1755 ../yum/__init__.py:1782
+#: ../yum/__init__.py:1788 ../yum/__init__.py:1844 ../yum/__init__.py:1848
#, python-format
msgid "No Group named %s exists"
msgstr "Ne postoji grupa pod imenom %s"
-#: ../yum/__init__.py:1751 ../yum/__init__.py:1844
+#: ../yum/__init__.py:1767 ../yum/__init__.py:1861
#, python-format
msgid "package %s was not marked in group %s"
msgstr "paket %s nije oznaÄen u grupi %s"
-#: ../yum/__init__.py:1790
+#: ../yum/__init__.py:1806
#, python-format
msgid "Adding package %s from group %s"
msgstr "Dodajem paket %s iz grupe %s"
-#: ../yum/__init__.py:1794
+#: ../yum/__init__.py:1810
#, python-format
msgid "No package named %s available to be installed"
-msgstr "Nijedan paket mod imenom %s nije dostupan za instalaciju"
+msgstr "Nijedan paket pod imenom %s nije dostupan za instalaciju"
-#: ../yum/__init__.py:1869
+#: ../yum/__init__.py:1886
#, python-format
msgid "Package tuple %s could not be found in packagesack"
msgstr "Grupa paketa %s nije naÄena u packagesack-u"
-#: ../yum/__init__.py:1937 ../yum/__init__.py:1980
+#: ../yum/__init__.py:1954 ../yum/__init__.py:1994
msgid "Invalid versioned dependency string, try quoting it."
-msgstr "Niska zavisnosti ima pogrešnu verziju, pokušajte da ga obeležite."
+msgstr ""
+"Neispravna niska zavisnosti sa verzijom, pokušajte da je obeležite "
+"navodnicima."
-#: ../yum/__init__.py:1939 ../yum/__init__.py:1982
+#: ../yum/__init__.py:1956 ../yum/__init__.py:1996
msgid "Invalid version flag"
-msgstr "Pogrešna zastava verzije"
+msgstr "Pogrešna oznaka verzije"
-#: ../yum/__init__.py:1954 ../yum/__init__.py:1958
+#: ../yum/__init__.py:1968 ../yum/__init__.py:1972
#, python-format
msgid "No Package found for %s"
-msgstr "Nema pronaÄenoh paketa za %s"
+msgstr "Nema pronaÄenih paketa za %s"
-#: ../yum/__init__.py:2086
+#: ../yum/__init__.py:2100
msgid "Package Object was not a package object instance"
msgstr "Objekat paketa nije bio primerak objekta paketa"
-#: ../yum/__init__.py:2090
+#: ../yum/__init__.py:2104
msgid "Nothing specified to install"
-msgstr "NiÅ¡ta nije odreÄeno za instalaciju"
+msgstr "Nije odreÄeno niÅ¡ta za instalaciju"
#. only one in there
-#: ../yum/__init__.py:2105
+#: ../yum/__init__.py:2119
#, python-format
msgid "Checking for virtual provide or file-provide for %s"
msgstr "Proveravam virtuelnu dostavu ili dostavu datoteke za %s"
-#: ../yum/__init__.py:2111 ../yum/__init__.py:2424
+#: ../yum/__init__.py:2125 ../yum/__init__.py:2440
#, python-format
msgid "No Match for argument: %s"
msgstr "Ne postoji slaganje za argument: %s"
#. FIXME - this is where we could check to see if it already installed
#. for returning better errors
-#: ../yum/__init__.py:2166
+#: ../yum/__init__.py:2180
msgid "No package(s) available to install"
msgstr "Nema paketa dostupnih za instalaciju"
-#: ../yum/__init__.py:2178
+#: ../yum/__init__.py:2192
#, python-format
msgid "Package: %s - already in transaction set"
-msgstr "Paket: %s - je veÄ u skupu za prenos"
+msgstr "Paket: %s - veÄ je u skupu transakcije"
-#: ../yum/__init__.py:2191
+#: ../yum/__init__.py:2205
#, python-format
msgid "Package %s already installed and latest version"
msgstr "VeÄ je instalirana najnovija verzija paketa %s"
-#: ../yum/__init__.py:2198
+#: ../yum/__init__.py:2212
#, python-format
msgid "Package matching %s already installed. Checking for update."
msgstr ""
"Paket koji se poklapa sa %s je veÄ instaliran. Proveravam za noviju verziju."
+#: ../yum/__init__.py:2223
+#, python-format
+msgid "Package %s is obsoleted by %s, trying to install %s instead"
+msgstr "Paket %s je zamenjen paketom %s, pokušavam da namesto instaliram %s"
+
#. update everything (the easy case)
-#: ../yum/__init__.py:2240
+#: ../yum/__init__.py:2256
msgid "Updating Everything"
msgstr "Ažuriram sve"
-#: ../yum/__init__.py:2343
+#: ../yum/__init__.py:2359
#, python-format
msgid "Package is already obsoleted: %s.%s %s:%s-%s"
msgstr "Paket je veÄ prevaziÄen: %s.%s %s:%s-%s"
-#: ../yum/__init__.py:2367
+#: ../yum/__init__.py:2383
#, python-format
msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s"
msgstr "Ne ažuriram pakete koji su veÄ ažurirani: %s.%s %s:%s-%s"
-#: ../yum/__init__.py:2421
+#: ../yum/__init__.py:2437
#, python-format
msgid "%s"
msgstr "%s"
-#: ../yum/__init__.py:2436
+#. FIXME we should give the caller some nice way to hush this warning
+#. probably just a kwarg of 'silence_warnings' or something
+#. b/c when this is called from groupRemove() it makes a lot of
+#. garbage noise
+#: ../yum/__init__.py:2456
msgid "No package matched to remove"
msgstr "Nijedan paket nije odreÄen za uklanjanje"
-#: ../yum/__init__.py:2470
+#: ../yum/__init__.py:2490
#, python-format
msgid "Cannot open file: %s. Skipping."
msgstr "Ne mogu da otvorim datoteku: %s. PreskaÄem je."
-#: ../yum/__init__.py:2473
+#: ../yum/__init__.py:2493
#, python-format
msgid "Examining %s: %s"
msgstr "Ispitujem %s: %s"
-#: ../yum/__init__.py:2480
+#: ../yum/__init__.py:2500
#, python-format
msgid ""
"Package %s not installed, cannot update it. Run yum install to install it "
@@ -1769,104 +1752,104 @@ msgstr ""
"Paket %s nije instaliran, ne mogu da ga ažuriram. Izvršite yum instalaciju "
"da biste ga instalirali."
-#: ../yum/__init__.py:2513
+#: ../yum/__init__.py:2533
#, python-format
msgid "Excluding %s"
-msgstr "Izvršavam %s"
+msgstr "Izuzimam %s"
-#: ../yum/__init__.py:2518
+#: ../yum/__init__.py:2538
#, python-format
msgid "Marking %s to be installed"
msgstr "OznaÄavam %s za instalaciju"
-#: ../yum/__init__.py:2524
+#: ../yum/__init__.py:2544
#, python-format
msgid "Marking %s as an update to %s"
msgstr "OznaÄavam %s kao ažuriranje za %s"
-#: ../yum/__init__.py:2531
+#: ../yum/__init__.py:2551
#, python-format
msgid "%s: does not update installed package."
msgstr "%s: ne ažurira instalirani paket."
-#: ../yum/__init__.py:2549
+#: ../yum/__init__.py:2569
msgid "Problem in reinstall: no package matched to remove"
msgstr ""
"Problem pri ponovnoj instalaciji: nijedan paket nije odreÄen za uklanjanje"
-#: ../yum/__init__.py:2560
+#: ../yum/__init__.py:2580
#, python-format
msgid "Package %s is allowed multiple installs, skipping"
msgstr "Paketu %s su dozvoljene mnogostruke instalacije, preskaÄem ga"
-#: ../yum/__init__.py:2567
+#: ../yum/__init__.py:2587
msgid "Problem in reinstall: no package matched to install"
msgstr ""
"Problem pri ponovnoj instalaciji: nijedan paket nije odreÄen za instalaciju"
-#: ../yum/__init__.py:2615
+#: ../yum/__init__.py:2635
#, python-format
msgid "Retrieving GPG key from %s"
-msgstr "Dobijam GPG kljuÄ od %s"
+msgstr "Dobavljam GPG kljuÄ sa %s"
-#: ../yum/__init__.py:2621
+#: ../yum/__init__.py:2641
msgid "GPG key retrieval failed: "
-msgstr "Dostavljanje GPG kljuÄa nije uspelo: "
+msgstr "Dobavljanje GPG kljuÄa nije uspelo: "
-#: ../yum/__init__.py:2634
+#: ../yum/__init__.py:2654
msgid "GPG key parsing failed: "
msgstr "RaÅ¡Älanjivanje GPG kljuÄa nije uspelo: "
-#: ../yum/__init__.py:2638
+#: ../yum/__init__.py:2658
#, python-format
msgid "GPG key at %s (0x%s) is already installed"
msgstr "GPG kljuÄ na %s (0x%s) je veÄ instaliran"
#. Try installing/updating GPG key
-#: ../yum/__init__.py:2643
+#: ../yum/__init__.py:2663
#, python-format
msgid "Importing GPG key 0x%s \"%s\" from %s"
msgstr "Uvozim GPG kljuÄ 0x%s â%sâ iz %s"
-#: ../yum/__init__.py:2655
+#: ../yum/__init__.py:2675
msgid "Not installing key"
msgstr "Ne instaliram kljuÄ"
-#: ../yum/__init__.py:2661
+#: ../yum/__init__.py:2681
#, python-format
msgid "Key import failed (code %d)"
msgstr "Nije uspeo uvoz kljuÄa (kod %d)"
-#: ../yum/__init__.py:2664
+#: ../yum/__init__.py:2684
msgid "Key imported successfully"
msgstr "KljuÄ je uspeÅ¡no uvezen"
-#: ../yum/__init__.py:2669
+#: ../yum/__init__.py:2689
#, 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 kljuÄevi izlistani za â%sâ repozitorijum su veÄ istalirani ali nisu "
-"odgovarajuÄi zaovaj paket.\n"
+"GPG kljuÄevi izlistani za â%sâ riznicu su veÄ istalirani ali nisu "
+"odgovarajuÄi za ovaj paket.\n"
"Proverite da li su podeÅ¡eni odgovarajuÄi URL-ovi kljuÄeva za ovu riznicu."
-#: ../yum/__init__.py:2678
+#: ../yum/__init__.py:2698
msgid "Import of key(s) didn't help, wrong key(s)?"
msgstr "Uvoz kljuÄa(kljuÄeva) nije pomogao, pogreÅ¡an kljuÄ(kljuÄevi)?"
-#: ../yum/__init__.py:2752
+#: ../yum/__init__.py:2778
msgid "Unable to find a suitable mirror."
msgstr "Ne mogu da pronaÄem odgovarajuÄi odraz."
-#: ../yum/__init__.py:2754
+#: ../yum/__init__.py:2780
msgid "Errors were encountered while downloading packages."
msgstr "Pojavile su se greške za vreme preuzimanja paketa."
-#: ../yum/__init__.py:2819
+#: ../yum/__init__.py:2844
msgid "Test Transaction Errors: "
-msgstr "Greške pri proveri prenosa: "
+msgstr "Greške pri proveri transakcije: "
#. Mostly copied from YumOutput._outKeyValFill()
#: ../yum/plugins.py:197
@@ -1886,7 +1869,7 @@ msgstr "â%sâ dodatak je iskljuÄen"
#: ../yum/plugins.py:233
#, python-format
msgid "Plugin \"%s\" doesn't specify required API version"
-msgstr "Dodatak â%sâ ne odreÄuje verziju zahtevanog API-a"
+msgstr "Dodatak â%sâ ne odreÄuje verziju zahtevanog API-a"
#: ../yum/plugins.py:237
#, python-format
@@ -1903,8 +1886,8 @@ msgstr "UÄitavam â%sâ dodatak"
msgid ""
"Two or more plugins with the name \"%s\" exist in the plugin search path"
msgstr ""
-"U putanji za pretraživanje dodataka postoje dva ili više dodataka pod imenom "
-"â%sâ"
+"U putanji za pretraživanje dodataka postoje dva ili viÅ¡e dodataka pod imenom â%"
+"sâ"
#: ../yum/plugins.py:293
#, python-format
@@ -1939,7 +1922,7 @@ msgstr "Nije uspela md5 provera za %s RPM"
#: ../rpmUtils/oldUtils.py:144
msgid "Could not open RPM database for reading. Perhaps it is already in use?"
msgstr ""
-"Ne mogu da za potrebe Äitanja otvorim RPM bazu podataka. Možda je veÄ u "
+"Ne mogu da otvorim RPM bazu podataka za potrebe Äitanja. Možda je veÄ u "
"upotrebi?"
#: ../rpmUtils/oldUtils.py:174
commit d9a2fac4f73a867a70ff460f2416d38a577cc4e4
Author: James Antill <james at and.org>
Date: Tue May 27 11:26:07 2008 -0400
Fix i18n for y/N prompt and sr_RS.utf8 locale, also allow y/N if no overlap
diff --git a/output.py b/output.py
index 752e18b..f7fbfbb 100644
--- a/output.py
+++ b/output.py
@@ -28,7 +28,7 @@ import re # For YumTerm
from urlgrabber.progress import TextMeter
from urlgrabber.grabber import URLGrabError
-from yum.misc import sortPkgObj, prco_tuple_to_string, to_str, to_unicode_maybe, get_my_lang_code
+from yum.misc import sortPkgObj, prco_tuple_to_string, to_str, to_unicode, get_my_lang_code
from rpmUtils.miscutils import checkSignals
from yum.constants import *
@@ -346,6 +346,9 @@ class YumOutput:
def userconfirm(self):
"""gets a yes or no from the user, defaults to No"""
+ yui = (to_unicode(_('y')), to_unicode(_('yes')))
+ nui = (to_unicode(_('n')), to_unicode(_('no')))
+ aui = (yui[0], yui[1], nui[0], nui[1])
while True:
try:
choice = raw_input(_('Is this ok [y/N]: '))
@@ -355,11 +358,18 @@ class YumOutput:
raise
except:
choice = ''
+ choice = to_unicode(choice)
choice = choice.lower()
- if len(choice) == 0 or choice in [_('y'), _('n'), _('yes'), _('no')]:
+ if len(choice) == 0 or choice in aui:
+ break
+ # If the enlish one letter names don't mix, allow them too
+ if u'y' not in aui and u'y' == choice:
+ choice = yui[0]
+ break
+ if u'n' not in aui and u'n' == choice:
break
- if len(choice) == 0 or choice not in [_('y'), _('yes')]:
+ if len(choice) == 0 or choice not in yui:
return False
else:
return True
@@ -369,7 +379,7 @@ class YumOutput:
mylang = get_my_lang_code()
print _('\nGroup: %s') % group.nameByLang(mylang)
if group.descriptionByLang(mylang) != "":
- print _(' Description: %s') % to_unicode_maybe(group.descriptionByLang(mylang))
+ print _(' Description: %s') % to_unicode(group.descriptionByLang(mylang))
if len(group.mandatory_packages) > 0:
print _(' Mandatory Packages:')
for item in sorted(group.mandatory_packages):
@@ -750,7 +760,7 @@ class YumCliRPMCallBack(RPMBaseCallback):
fmt = self._makefmt(percent, ts_current, ts_total)
msg = fmt % (process, pkgname)
if msg != self.lastmsg:
- sys.stdout.write(to_unicode_maybe(msg))
+ sys.stdout.write(to_unicode(msg))
sys.stdout.flush()
self.lastmsg = msg
if te_current == te_total:
@@ -758,7 +768,7 @@ class YumCliRPMCallBack(RPMBaseCallback):
def scriptout(self, package, msgs):
if msgs:
- sys.stdout.write(to_unicode_maybe(msgs))
+ sys.stdout.write(to_unicode(msgs))
sys.stdout.flush()
def _makefmt(self, percent, ts_current, ts_total, progress = True):
commit e8d9f3b44eba5897852a1ade5572cbcb832f1c0e
Author: James Antill <james at and.org>
Date: Mon May 19 09:34:07 2008 -0400
Fix -y config. option in man page: bug#447305
diff --git a/docs/yum.8 b/docs/yum.8
index 7b6bdeb..8845989 100644
--- a/docs/yum.8
+++ b/docs/yum.8
@@ -208,7 +208,7 @@ Help; display a help message and then quit\&.
Assume yes; assume that the answer to any question which would be asked
is yes\&.
.br
-Configuration Option: \fBassume\-yes\fP
+Configuration Option: \fBassumeyes\fP
.IP "\fB\-c [config file]\fP"
Specifies the config file location - can take http, ftp urls and local file
paths\&.
commit 2d93feb91f623bfca07e4508a49c995aa6a3c501
Author: James Antill <james at and.org>
Date: Mon May 19 09:30:19 2008 -0400
Allow -c URL to work again
diff --git a/yum/config.py b/yum/config.py
index fecdfe3..218008b 100644
--- a/yum/config.py
+++ b/yum/config.py
@@ -751,7 +751,10 @@ def readMainConfig(startupconf):
# items related to the originating config file
yumconf.config_file_path = startupconf.config_file_path
- yumconf.config_file_age = os.stat(startupconf.config_file_path)[8]
+ if os.path.exists(startupconf.config_file_path):
+ yumconf.config_file_age = os.stat(startupconf.config_file_path)[8]
+ else:
+ yumconf.config_file_age = 0
# propagate the debuglevel and errorlevel values:
yumconf.debuglevel = startupconf.debuglevel
commit 1296416cc955dd05f586d0ecf78d083e322d21f5
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Tue May 20 09:59:59 2008 -0400
commit and/or match from HEAD back to 3.2.X
diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index c9fc26c..0b5d3e1 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -766,7 +766,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
# If it's not a provides or a filename, we are done
if prcotype != "provides":
return results
- if not glob or name[0] != '/':
+ if not glob and name[0] != '/':
return results
# If it is a filename, search the primary.xml file info
commit 61ef5eb9925347f8fc37eec34441e9b377b3bbd1
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Fri May 16 17:22:39 2008 -0400
mention the branch name specifically
diff --git a/README b/README
index edb75d1..b2c3bff 100644
--- a/README
+++ b/README
@@ -29,4 +29,5 @@ Also see the webpage and wiki for more information:
web page: http://linux.duke.edu/yum/
wiki: http://wiki.linux.duke.edu/Yum
-3.2.X Branch
+3.2.X Branch - yum-3_2_X
+
commit a3c91d7f6a15f31a42d020127b2da2877dfc137d
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Fri May 16 16:20:10 2008 -0400
label as 3.2.X branch
diff --git a/README b/README
index 6bb0c7c..edb75d1 100644
--- a/README
+++ b/README
@@ -28,3 +28,5 @@ See the man page for more information (man yum)
Also see the webpage and wiki for more information:
web page: http://linux.duke.edu/yum/
wiki: http://wiki.linux.duke.edu/Yum
+
+3.2.X Branch
commit 7550b27dcd446f058ea5d8108a0b0b329f1340a5
Author: James Antill <james at and.org>
Date: Wed Mar 26 14:21:09 2008 -0400
Don't create sacks for repos that we don't care about
diff --git a/yum/yumRepo.py b/yum/yumRepo.py
index 0585f99..47ef8f1 100644
--- a/yum/yumRepo.py
+++ b/yum/yumRepo.py
@@ -251,14 +251,21 @@ class YumRepository(Repository, config.RepoConf):
# callback function for handling media
self.mediafunc = None
- self.sack = sqlitesack.YumSqlitePackageSack(
- sqlitesack.YumAvailablePackageSqlite)
+ self._sack = None
self._grabfunc = None
self._grab = None
+ def _getSack(self):
+ if self._sack is None:
+ self._sack = sqlitesack.YumSqlitePackageSack(
+ sqlitesack.YumAvailablePackageSqlite)
+ return self._sack
+ sack = property(_getSack)
+
def close(self):
- self.sack.close()
+ if self._sack is not None:
+ self.sack.close()
Repository.close(self)
def _resetSack(self):
More information about the Yum-commits
mailing list