[yum-git] Branch 'yum-3_2_X' - 22 commits - docs/yum.8 docs/yum.conf.5 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/depsolve.py yum/__init__.py yum/packageSack.py yum/packages.py yum/rpmsack.py yum/sqlitesack.py
Seth Vidal
skvidal at linux.duke.edu
Fri May 30 14:50:12 UTC 2008
README.API_CHANGES | 11 ++
docs/yum.8 | 4
docs/yum.conf.5 | 4
rpmUtils/miscutils.py | 46 +++-----
test/depsolvetests.py | 114 +++++++++++-----------
test/operationstests.py | 10 -
test/packagetests.py | 60 ++++++-----
test/simpleobsoletestests.py | 6 -
test/simpleupdatetests.py | 8 -
test/skipbroken-tests.py | 36 +++---
test/testbase.py | 16 ++-
yum/__init__.py | 12 --
yum/depsolve.py | 222 ++++++++++++-------------------------------
yum/packageSack.py | 99 ++++---------------
yum/packages.py | 8 -
yum/rpmsack.py | 128 ++++++------------------
yum/sqlitesack.py | 92 ++++++++---------
17 files changed, 340 insertions(+), 536 deletions(-)
New commits:
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 64e13a38c203303e91e0ff0c3b831ddc2de62f19
Merge: 7bf7ce0... 496fd8e...
Author: James Antill <james at and.org>
Date: Tue May 27 09:42:00 2008 -0400
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
commit 496fd8ef6269b8f5e9300b77817f806b59332d94
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 4a7acc768e4b466fe23c09435a2beff963461ecb
Author: Florian Festi <ffesti at redhat.com>
Date: Thu Dec 13 17:53:01 2007 +0100
Remove old excluded mechanism from SqliteSack
diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index 31c4eb0..f0617bb 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -261,8 +261,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
self.primarydb = {}
self.filelistsdb = {}
self.otherdb = {}
- self.excludes = {}
- self._excludes = set() # of (repo, pkgKey)
+ self._excludes = { } # repo ->set(pkgKeys)
self._all_excludes = {}
self._search_cache = {
'provides' : { },
@@ -295,14 +294,16 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
return 0
exclude_num = 0
- for repo in self.excludes:
- exclude_num += len(self.excludes[repo])
- if hasattr(self, 'pkgobjlist'):
+ for excludes in self._excludes.values():
+ exclude_num += len(excludes)
+
+ if hasattr(self, 'pkgobjlist') and not self._all_excludes:
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
@@ -331,9 +332,14 @@ 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)
@@ -349,33 +355,25 @@ 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 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) )
+ 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)
def _delAllPackages(self, repo):
""" Exclude all packages from the repo. """
self._all_excludes[repo] = True
- if repo in self.excludes:
- del self.excludes[repo]
+ if repo in self._excludes:
+ self._excludes[repo].clear()
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 (repo, pkgKey) in self._excludes
+ return self._excludes.has_key(repo) and pkgKey in self._excludes[repo]
def _pkgExcluded(self, po):
return self._pkgKeyExcluded(po.repo, po.pkgKey)
@@ -398,9 +396,6 @@ 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 7bf7ce04f34b0fa1540b02de70d696675864efc3
Merge: 976043b... 3194633...
Author: James Antill <james at and.org>
Date: Mon May 26 17:37:23 2008 -0400
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
commit 3194633958f626f94784ae06b17ed23f37d03451
Author: Florian Festi <ffesti at redhat.com>
Date: Mon May 26 13:12:18 2008 +0200
Fix flag conversion in YumHeaderPackage._populatePrco()
broken in febe35eee130212380e5688bd119f19a032d74fc
diff --git a/yum/packages.py b/yum/packages.py
index 7dbc3a0..4e5d61e 100644
--- a/yum/packages.py
+++ b/yum/packages.py
@@ -751,9 +751,7 @@ class YumHeaderPackage(YumAvailablePackage):
if name is None:
continue
- lst = hdr[getattr(rpm, 'RPMTAG_%sFLAGS' % tag)]
- # flag = map(rpmUtils.miscutils.flagToString, lst)
- flag = map(misc.share_data, flag)
+ flag = map(misc.share_data, hdr[getattr(rpm, 'RPMTAG_%sFLAGS' % tag)])
lst = hdr[getattr(rpm, 'RPMTAG_%sVERSION' % tag)]
vers = map(rpmUtils.miscutils.stringToVersion, lst)
commit 41f8ae4532ba7810534a7eefb9e0d05c78a98178
Author: Florian Festi <ffesti at redhat.com>
Date: Wed Feb 13 12:33:38 2008 +0100
Use already known txmbr when resolving installed pkgs problems
diff --git a/yum/depsolve.py b/yum/depsolve.py
index cc5ba2c..8a9811a 100644
--- a/yum/depsolve.py
+++ b/yum/depsolve.py
@@ -206,7 +206,7 @@ class Depsolve(object):
self.verbose_logger.log(logginglevels.DEBUG_1,
_('Removing Package %s'), txmbr.po)
- def _processReq(self, po, requirement):
+ def _processReq(self, po, requirement, remove_txmbr=None):
"""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 +222,7 @@ class Depsolve(object):
if po.repo.id != "installed":
CheckDeps, missingdep = self._requiringFromTransaction(po, requirement, errormsgs)
else:
- CheckDeps, missingdep = self._requiringFromInstalled(po, requirement, errormsgs)
+ CheckDeps, missingdep = self._requiringFromInstalled(po, requirement, remove_txmbr, errormsgs)
# Check packages with problems
if missingdep:
@@ -241,7 +241,7 @@ class Depsolve(object):
return (CheckDeps, missingdep, errormsgs)
- def _requiringFromInstalled(self, requiringPo, requirement, errorlist):
+ def _requiringFromInstalled(self, requiringPo, requirement, remove_txmbr, errorlist):
"""processes the dependency resolution for a dep where the requiring
package is installed"""
@@ -256,71 +256,15 @@ class Depsolve(object):
needname, needflags, needversion = requirement
niceformatneed = rpmUtils.miscutils.formatRequire(needname, needversion, needflags)
-
- # 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 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
- if needmode in ['i', 'u']:
+ if remove_txmbr and (remove_txmbr.obsoleted_by or remove_txmbr.updated_by):
length = len(self.tsInfo)
self.update(name=name, epoch=epoch, version=ver, release=rel)
txmbrs = self.tsInfo.getMembersWithState(requiringPo.pkgtup, TS_REMOVE_STATES)
@@ -334,23 +278,16 @@ 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 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)
+ 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
- return checkdeps, missingdep
-
+ return self._requiringFromTransaction(requiringPo, requirement, errorlist)
def _requiringFromTransaction(self, requiringPo, requirement, errorlist):
"""processes the dependency resolution for a dep where requiring
@@ -709,8 +646,8 @@ class Depsolve(object):
missing_in_pkg = False
while True:
- for po, dep in thisneeds:
- (checkdep, missing, errormsgs) = self._processReq(po, dep)
+ for po, dep, removed_txmbr in thisneeds:
+ (checkdep, missing, errormsgs) = self._processReq(po, dep, removed_txmbr)
CheckDeps |= checkdep
errors += errormsgs
missing_in_pkg |= missing
@@ -753,7 +690,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:
- yield (txmbr.po, (req[0], req[1], version_tuple_to_string(req[2])))
+ yield (txmbr.po, (req[0], req[1], version_tuple_to_string(req[2])), None)
#Add relationship
for po in provs:
@@ -784,7 +721,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):
- yield (pkg, (rn, rf, version_tuple_to_string(rv)))
+ yield (pkg, (rn, rf, version_tuple_to_string(rv)), txmbr)
def _checkFileRequires(self):
fileRequires = set()
commit bec9421eb464da4af918b0325f75bed0eb65f35c
Author: Florian Festi <ffesti at redhat.com>
Date: Mon Feb 18 14:21:07 2008 +0100
Restart .check* every time the tsInfo got modified to only resolve problems that still exist
diff --git a/yum/depsolve.py b/yum/depsolve.py
index 1fe8657..cc5ba2c 100644
--- a/yum/depsolve.py
+++ b/yum/depsolve.py
@@ -611,10 +611,17 @@ class Depsolve(object):
# check global FileRequires
if CheckRemoves:
CheckRemoves = False
- for po, dep in self._checkFileRequires():
- (checkdep, missing, errormsgs) = self._processReq(po, dep)
- CheckDeps |= checkdep
- errors += errormsgs
+ 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
if CheckDeps:
if self.dsCallback: self.dsCallback.restartLoop()
@@ -624,10 +631,17 @@ class Depsolve(object):
# check Conflicts
if CheckInstalls:
CheckInstalls = False
- for conflict in self._checkConflicts():
- (checkdep, errormsgs) = self._processConflict(*conflict)
- CheckDeps |= checkdep
- errors += errormsgs
+ 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
if CheckDeps:
if self.dsCallback: self.dsCallback.restartLoop()
@@ -693,11 +707,21 @@ class Depsolve(object):
CheckRemoves = True
missing_in_pkg = False
- for po, dep in thisneeds:
- (checkdep, missing, errormsgs) = self._processReq(po, dep)
- CheckDeps |= checkdep
- errors += errormsgs
- missing_in_pkg |= missing
+
+ while True:
+ for po, dep in thisneeds:
+ (checkdep, missing, errormsgs) = self._processReq(po, dep)
+ 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
if not missing_in_pkg:
self.tsInfo.markAsResolved(txmbr)
commit 58e9cbd609d9225ea9a7e3a0262362eb976973e1
Author: Florian Festi <ffesti at redhat.com>
Date: Mon Feb 18 13:56:19 2008 +0100
Make Depsolve.check* generators instead of returning lists
diff --git a/yum/depsolve.py b/yum/depsolve.py
index 190f33b..1fe8657 100644
--- a/yum/depsolve.py
+++ b/yum/depsolve.py
@@ -718,7 +718,6 @@ class Depsolve(object):
oldreqs.extend(oldpo.returnPrco('requires'))
oldreqs = set(oldreqs)
- ret = []
for req in txmbr_reqs:
if req[0].startswith('rpmlib('):
continue
@@ -730,8 +729,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], req[1], version_tuple_to_string(req[2]))) )
- continue
+ yield (txmbr.po, (req[0], req[1], version_tuple_to_string(req[2])))
#Add relationship
for po in provs:
@@ -741,8 +739,6 @@ 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')
@@ -753,7 +749,6 @@ 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
@@ -765,13 +760,11 @@ 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, rf, version_tuple_to_string(rv))) )
- return ret
+ yield (pkg, (rn, rf, version_tuple_to_string(rv)))
def _checkFileRequires(self):
fileRequires = set()
reverselookup = {}
- ret = []
# generate list of file requirement in rpmdb
if self.installedFileRequires is None:
@@ -818,13 +811,9 @@ class Depsolve(object):
for filename in fileRequires:
if not self.tsInfo.getOldProvides(filename) and not self.tsInfo.getNewProvides(filename):
for po in reverselookup[filename]:
- ret.append( (po, (filename, 0, '')) )
-
- return ret
-
+ yield (po, (filename, 0, ''))
def _checkConflicts(self):
- ret = [ ]
for po in self.rpmdb.returnPackages():
if self.tsInfo.getMembersWithState(po.pkgtup, output_states=TS_REMOVE_STATES):
continue
@@ -833,7 +822,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
- ret.append( (po, (r, f, version_tuple_to_string(v)), conflicting_po) )
+ yield (po, (r, 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'):
@@ -841,8 +830,7 @@ 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, f, version_tuple_to_string(v)), conflicting_po) )
- return ret
+ yield (po, (r, f, version_tuple_to_string(v)), conflicting_po)
def isPackageInstalled(self, pkgname):
commit febe35eee130212380e5688bd119f19a032d74fc
Author: Florian Festi <ffesti at redhat.com>
Date: Fri May 23 16:05:00 2008 +0200
Make sure rpm.RPMSENSE_* int constants are used as flags in PRCOs.
Added short hand constants to testbase
Adjusted the test cases
diff --git a/rpmUtils/miscutils.py b/rpmUtils/miscutils.py
index 64e232e..606aea0 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, 'EQ', (e, v, r)))
+ return rangeCompare(reqtuple, (n, rpm.RPMSENSE_EQUAL, (e, v, r)))
def rangeCompare(reqtuple, provtuple):
"""returns true if provtuple satisfies reqtuple"""
@@ -141,6 +141,9 @@ 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
@@ -161,42 +164,33 @@ def rangeCompare(reqtuple, provtuple):
# does not match unless
if rc >= 1:
- if reqf in ['GT', 'GE', 4, 12]:
+ if reqf & rpm.RPMSENSE_GREATER:
return 1
- if reqf in ['EQ', 8]:
- if f in ['LE', 10]:
+ if reqf == rpm.RPMSENSE_EQUAL:
+ if f == (rpm.RPMSENSE_LESS|rpm.RPMSENSE_EQUAL):
return 1
if rc == 0:
- if reqf in ['GT', 4]:
- if f in ['GT', 'GE', 4, 12]:
+ if reqf == rpm.RPMSENSE_GREATER:
+ if f & rpm.RPMSENSE_GREATER:
return 1
- if reqf in ['GE', 12]:
- if f in ['GT', 'GE', 'EQ', 'LE', 4, 12, 8, 10]:
+ if reqf == (rpm.RPMSENSE_GREATER|rpm.RPMSENSE_EQUAL):
+ if f != rpm.RPMSENSE_LESS:
return 1
- if reqf in ['EQ', 8]:
- if f in ['EQ', 'GE', 'LE', 8, 12, 10]:
+ if reqf == rpm.RPMSENSE_EQUAL:
+ if f & rpm.RPMSENSE_EQUAL:
return 1
- if reqf in ['LE', 10]:
- if f in ['EQ', 'LE', 'LT', 'GE', 8, 10, 2, 12]:
+ if reqf == (rpm.RPMSENSE_LESS|rpm.RPMSENSE_EQUAL):
+ if f != rpm.RPMSENSE_GREATER:
return 1
- if reqf in ['LT', 2]:
- if f in ['LE', 'LT', 10, 2]:
+ if reqf == rpm.RPMSENSE_LESS:
+ if f & rpm.RPMSENSE_LESS:
return 1
if rc <= -1:
- if reqf in ['GT', 'GE', 'EQ', 4, 12, 8]:
- if f in ['GT', 'GE', 4, 12]:
+ if not (reqf & rpm.RPMSENSE_LESS):
+ if f & rpm.RPMSENSE_GREATER:
return 1
- if reqf in ['LE', 'LT', 10, 2]:
+ if reqf & rpm.RPMSENSE_LESS:
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 3f8c748..3e445ba 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 12a1627..71d311f 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 628247d..44946de 100644
--- a/test/packagetests.py
+++ b/test/packagetests.py
@@ -3,89 +3,90 @@ 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))
@@ -188,12 +189,13 @@ 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)
+ self.assertEquals(miscutils.rangeCompare(requires, provides), result,
+ "%r %r: %r" % (requires, provides, result))
diff --git a/test/simpleobsoletestests.py b/test/simpleobsoletestests.py
index 05ebf05..f10f6e4 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 fe4f414..180c880 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 e15ae56..2b9aabd 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 372fec3..b939c12 100644
--- a/test/testbase.py
+++ b/test/testbase.py
@@ -16,6 +16,18 @@ 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 ##########################################
#############################################################
@@ -60,7 +72,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__()
@@ -157,7 +169,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/depsolve.py b/yum/depsolve.py
index 5bc3c7f..190f33b 100644
--- a/yum/depsolve.py
+++ b/yum/depsolve.py
@@ -53,12 +53,6 @@ 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):
@@ -736,7 +730,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, (req[0], req[1], version_tuple_to_string(req[2]))) )
continue
#Add relationship
@@ -771,7 +765,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, (rn, rf, version_tuple_to_string(rv))) )
return ret
def _checkFileRequires(self):
@@ -839,7 +833,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
- ret.append( (po, (r, flags[f], version_tuple_to_string(v)), conflicting_po) )
+ ret.append( (po, (r, 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'):
@@ -847,7 +841,7 @@ 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, (r, f, version_tuple_to_string(v)), conflicting_po) )
return ret
diff --git a/yum/packages.py b/yum/packages.py
index 49630f6..7dbc3a0 100644
--- a/yum/packages.py
+++ b/yum/packages.py
@@ -310,8 +310,8 @@ class RpmBase(object):
continue
if f == '=':
- f = 'EQ'
- if f != 'EQ' and prcotype == 'provides':
+ f = rpm.RPMSENSE_EQUAL
+ if f != rpm.RPMSENSE_EQUAL 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
@@ -752,7 +752,7 @@ class YumHeaderPackage(YumAvailablePackage):
continue
lst = hdr[getattr(rpm, 'RPMTAG_%sFLAGS' % tag)]
- flag = map(rpmUtils.miscutils.flagToString, lst)
+ # flag = map(rpmUtils.miscutils.flagToString, lst)
flag = map(misc.share_data, flag)
lst = hdr[getattr(rpm, 'RPMTAG_%sVERSION' % tag)]
diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index 786f06a..31c4eb0 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -27,6 +27,7 @@ import yumRepo
from packages import PackageObject, RpmBase, YumAvailablePackage
import Errors
import misc
+import rpm
from sqlutils import executeSQL
import rpmUtils.miscutils
@@ -51,6 +52,13 @@ 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': (),
@@ -235,7 +243,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(ob['flags']),
+ prco_set = (_share_data(ob['name']), _share_data(_flags2rpm[ob['flags']]),
(_share_data(ob['epoch']),
_share_data(ob['version']),
_share_data(ob['release'])))
@@ -592,7 +600,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(ob['oflags']),
+ _share_data(_flags2rpm[ob['oflags']]),
_share_data(ob['oepoch']),
_share_data(ob['oversion']),
_share_data(ob['orelease']))
@@ -639,7 +647,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(x['flags']),
+ val = (_share_data(x['name']), _share_data(_flags2rpm[x['flags']]),
(_share_data(x['epoch']), _share_data(x['version']),
_share_data(x['release'])))
val = _share_data(val)
@@ -702,7 +710,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
(name,))
tmp = { }
for x in cur:
- val = (_share_data(x['name']), _share_data(x['flags']),
+ val = (_share_data(x['name']), _share_data(_flags2rpm[x['flags']]),
(_share_data(x['epoch']), _share_data(x['version']),
_share_data(x['release'])))
val = _share_data(val)
commit 412350a6016f3f6420439948b6a2ad7a248097aa
Author: Florian Festi <ffesti at redhat.com>
Date: Mon May 26 10:07:01 2008 +0200
Fix code merge error in RpmSack._getPRCO
Thanks to Terje Røsten for testing and reporting.
diff --git a/yum/rpmsack.py b/yum/rpmsack.py
index 5a82e27..f64409e 100644
--- a/yum/rpmsack.py
+++ b/yum/rpmsack.py
@@ -488,24 +488,22 @@ class RPMDBPackageSack(PackageSackBase):
r_v = deptup[2][1]
ts = self.readOnlyTS()
- result = {}
- tag = self.DEP_TABLE[prcotype][0]
+ pkgs = {}
+ tag = self.DEP_TABLE[PRCO][0]
mi = ts.dbMatch(tag, name)
for hdr in mi:
po = self._makePackageObject(hdr, mi.instance())
- result[po.pkgid] = po
+ 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:
- result[pkg.pkgid] = pkg
+ pkgs[pkg.pkgid] = pkg
- pkgs = result.values()
result = {}
-
- for po in pkgs:
+ for po in pkgs.values():
if name[0] == '/' and r_v is None:
# file dep add all matches to the defSack
result[po] = [(name, None, (None, None, None))]
commit 976043b4bf4dbb71632e4fa7a297e80ff58c6c97
Author: James Antill <james at and.org>
Date: Fri May 23 09:50:58 2008 -0400
Minor bit rot, pointed out by Jay Soffian
diff --git a/yum/depsolve.py b/yum/depsolve.py
index a08f481..dad4912 100644
--- a/yum/depsolve.py
+++ b/yum/depsolve.py
@@ -489,7 +489,6 @@ class Depsolve(object):
# find the best one
# try updating the already install pkgs
- length = len(self.tsInfo)
for pkg in provSack.returnNewestByName():
results = self.update(requiringPo=requiringPo, name=pkg.name,
epoch=pkg.epoch, version=pkg.version,
commit e617465ff9769ef7e205c0fc6943b4c2b9d59793
Author: Florian Festi <ffesti at redhat.com>
Date: Fri May 23 15:40:17 2008 +0200
PackageSack API cleanup
Removed
PackagesSack.search(Provides|Requires|Conflicts|Obsoletes)
RpmSack.what(Provides|Requires)
SqliteSack.searchPrco
Added
PackagesSack.get(Conflicts|Obsoletes)
diff --git a/README.API_CHANGES b/README.API_CHANGES
new file mode 100644
index 0000000..ae451a8
--- /dev/null
+++ b/README.API_CHANGES
@@ -0,0 +1,11 @@
+
+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/yum/packageSack.py b/yum/packageSack.py
index 975a39b..4aeccbb 100644
--- a/yum/packageSack.py
+++ b/yum/packageSack.py
@@ -88,20 +88,12 @@ class PackageSackBase(object):
"""return dict { packages -> list of matching requires }"""
raise NotImplementedError()
- def searchRequires(self, name):
- """return list of package requiring the name (any evr and flag)"""
+ def getConflicts(self, name, flags=None, version=(None, None, None)):
+ """return dict { packages -> list of matching conflicts }"""
raise NotImplementedError()
- 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)"""
+ def getObsoletes(self, name, flags=None, version=(None, None, None)):
+ """return dict { packages -> list of matching obsoletes }"""
raise NotImplementedError()
def returnObsoletes(self, newest=False):
@@ -298,21 +290,13 @@ class MetaSack(PackageSackBase):
"""return dict { packages -> list of matching requires }"""
return self._computeAggregateDictResult("getRequires", name, flags, version)
- def searchRequires(self, name):
- """return list of package requiring the name (any evr and flag)"""
- return self._computeAggregateListResult("searchRequires", name)
-
- 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 getConflicts(self, name, flags=None, version=(None, None, None)):
+ """return dict { packages -> list of matching provides }"""
+ return self._computeAggregateDictResult("getConflicts", name, flags, version)
- def searchObsoletes(self, name):
- """return list of package obsoleting the name (any evr and flag)"""
- return self._computeAggregateListResult("searchObsoletes", 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 returnObsoletes(self, newest=False):
"""returns a dict of obsoletes dict[obsoleting pkgtuple] = [list of obs]"""
@@ -520,14 +504,20 @@ class PackageSack(PackageSackBase):
result.append(po)
return result
- def getProvides(self, name, flags=None, version=(None, None, None)):
- """return dict { packages -> list of matching provides }"""
+ def _getPRCO(self, PRCO, name, flags=None, version=(None, None, None)):
+ """return dict { packages -> list of matching RCO }"""
self._checkIndexes(failure='build')
result = { }
- for po in self.provides.get(name, []):
- hits = po.matchingPrcos('provides', (name, flags, version))
+ for po in getattr(self, PRCO).get(name, []):
+ hits = po.matchingPrcos(PRCO, (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):
@@ -535,50 +525,11 @@ class PackageSack(PackageSackBase):
return result
def getRequires(self, name, flags=None, version=(None, None, None)):
- """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 []
+ 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)
def returnObsoletes(self, newest=False):
"""returns a dict of obsoletes dict[obsoleting pkgtuple] = [list of obs]"""
diff --git a/yum/rpmsack.py b/yum/rpmsack.py
index 7b08ab0..5a82e27 100644
--- a/yum/rpmsack.py
+++ b/yum/rpmsack.py
@@ -93,16 +93,11 @@ class RPMDBPackageSack(PackageSackBase):
self._tup2pkg = {}
self._completely_loaded = False
self._simple_pkgtup_list = []
- self._get_pro_cache = {}
- self._get_req_cache = {}
+ self._get_prco_cache = {'provides' : {},
+ 'requires' : {},
+ 'conflicts' : {},
+ 'obsoletes' : {}}
self.ts = None
-
- self._cache = {
- 'provides' : { },
- 'requires' : { },
- 'conflicts' : { },
- 'obsoletes' : { },
- }
def _get_pkglist(self):
'''Getter for the pkglist property.
@@ -122,15 +117,9 @@ class RPMDBPackageSack(PackageSackBase):
self._tup2pkg = {}
self._completely_loaded = False
self._simple_pkgtup_list = []
- self._get_pro_cache = {}
- self._get_req_cache = {}
+ for cache in self._get_prco_cache.values():
+ cache.clear()
misc.unshare_data()
- self._cache = {
- 'provides' : { },
- 'requires' : { },
- 'conflicts' : { },
- 'obsoletes' : { },
- }
def readOnlyTS(self):
if not self.ts:
@@ -186,43 +175,6 @@ 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
@@ -525,63 +477,57 @@ class RPMDBPackageSack(PackageSackBase):
misc.share_data(r_r)))
return misc.share_data(deptup)
- def getProvides(self, name, flags=None, version=(None, None, None)):
+ def _getPRCO(self, PRCO, 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_pro_cache:
- return self._get_pro_cache[deptup]
+ if deptup in self._get_prco_cache[PRCO]:
+ return self._get_prco_cache[PRCO][deptup]
r_v = deptup[2][1]
+
+ 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 PRCO == 'provides' and name[0] == '/':
+ fileresults = self.searchFiles(name)
+ for pkg in fileresults:
+ result[pkg.pkgid] = pkg
- pkgs = self.searchProvides(name)
-
- result = { }
-
+ pkgs = result.values()
+ 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('provides', deptup)
+ hits = po.matchingPrcos(PRCO, deptup)
if hits:
result[po] = hits
- self._get_pro_cache[deptup] = result
+ self._get_prco_cache[PRCO][deptup] = result
return result
- def whatProvides(self, name, flags, version):
- # XXX deprecate?
- return [po.pkgtup for po in self.getProvides(name, flags, version)]
+ def getProvides(self, name, flags=None, version=(None, None, None)):
+ return self._getPRCO('provides', name, flags, version)
def getRequires(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_req_cache:
- return self._get_req_cache[deptup]
- r_v = deptup[2][1]
+ return self._getPRCO('requires', name, flags, version)
- pkgs = self.searchRequires(name)
+ def getConflicts(self, name, flags=None, version=(None, None, None)):
+ return self._getPRCO('conflicts', name, flags, version)
- result = { }
+ def getObsoletes(self, name, flags=None, version=(None, None, None)):
+ return self._getPRCO('obsoletes', name, flags, version)
- 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 0b5d3e1..786f06a 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -414,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. """
@@ -747,9 +747,15 @@ 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'
@@ -830,23 +836,6 @@ 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 8ac246a33310a9f516b04a9b7c81631d54fe003f
Author: Florian Festi <ffesti at redhat.com>
Date: Fri Nov 30 15:02:39 2007 +0100
Remove Depsolve.whatProvides
diff --git a/yum/__init__.py b/yum/__init__.py
index cd75ced..1be6237 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -1485,12 +1485,7 @@ class YumBase(depsolve.Depsolve):
if r.startswith('rpmlib('):
continue
- satisfiers = []
-
- for po in self.whatProvides(r, f, v):
- satisfiers.append(po)
-
- pkgresults[req] = satisfiers
+ pkgresults[req] = self.pkgs.getProvides(r, f, v).keys()
return results
@@ -1961,10 +1956,7 @@ class YumBase(depsolve.Depsolve):
raise Errors.YumBaseError, _('Invalid version flag')
depflags = SYMBOLFLAGS[flagsymbol]
- sack = self.whatProvides(depname, depflags, depver)
- results = sack.returnPackages()
- return results
-
+ return self.pkgSack.getProvides(depname, depflags, depver).keys()
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 a08f481..5bc3c7f 100644
--- a/yum/depsolve.py
+++ b/yum/depsolve.py
@@ -141,45 +141,6 @@ 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
@@ -427,7 +388,8 @@ class Depsolve(object):
# - if they are the same
# - be confused but continue
- provSack = self.whatProvides(needname, needflags, needversion)
+ provSack = ListPackageSack(self.pkgSack.getProvides(
+ needname, needflags or None, rpmUtils.miscutils.stringToVersion(needversion)))
# get rid of things that are already in the rpmdb - b/c it's pointless to use them here
commit 2991621f5424da61a4284bb75dc13dd55f988750
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 5ae57388f5156c51c31929f4bc09c821ba141abc
Merge: 89b0d52... 7a99a04...
Author: James Antill <james at and.org>
Date: Mon May 19 09:30:44 2008 -0400
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 :(
commit 89b0d52e0cd595010f538df65537df0f4d0c4500
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 7a99a04d7f121a547d9af82738cd64b2fa8b04ca
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Sat May 17 07:43:42 2008 -0400
gotta check both, not either - otherwise filedeps don't work :(
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
More information about the Yum-cvs-commits
mailing list