Hello, The patch attached performs simultaneous downloads of packages by creating two different urlgrab objects and passing them different package names to download. The download is fine but there is a problem in display in case of simultaneous downloads of more than one packages. The display percentages and download speed is shown incorrect. The progress object used is of class TextMeter() from the module urlgrabber.progress. In case of a single package download, the code works perfectly fine. --Regards --Pranjal Pandit Computer Science Engineering Department NIT HAMIRPUR
diff --git a/cli.py b/cli.py index 0374667..cb8507c 100644 --- a/cli.py +++ b/cli.py @@ -25,9 +25,9 @@ import sys import time import random import logging +import threading from optparse import OptionParser import rpm - import output import shell import yum @@ -62,7 +62,7 @@ class CliError(yum.Errors.YumBaseError): yum.Errors.YumBaseError.__init__(self) self.args = args -class YumBaseCli(yum.YumBase, output.YumOutput): +class YumBaseCli(yum.YumBase, output.YumOutput,threading.Thread): """This is the base class for yum cli. Inherits from yum.YumBase and output.YumOutput """ @@ -98,7 +98,11 @@ class YumBaseCli(yum.YumBase, output.YumOutput): self.registerCommand(yumcommands.RepoListCommand()) self.registerCommand(yumcommands.HelpCommand()) self.registerCommand(yumcommands.ReInstallCommand()) - + self.helpDownloadPkgs=yum.HDP() + self.yB=yum.YumBase() + threading.Thread.__init__(self) + def run(self): + self.yB.downloadPkgs2(self.helpDownloadPkgs) def registerCommand(self, command): for name in command.getNames(): if self.yum_cli_commands.has_key(name): @@ -396,8 +400,22 @@ class YumBaseCli(yum.YumBase, output.YumOutput): self.verbose_logger.log(yum.logginglevels.INFO_2, _('Downloading Packages:')) - problems = self.downloadPkgs(downloadpkgs, callback_total=self.download_callback_total_cb) - + + self.yB.downloadPkgs1(downloadpkgs,self.helpDownloadPkgs) + + if self.yB.numberOfPackages() is 1: + self.yB.downloadPkgs2(self.helpDownloadPkgs) + else: + call1=YumBaseCli() + call2=YumBaseCli() + cl=[] + cl.append(call1) + cl.append(call2) + call1.start() + call2.start() + for c in cl: + c.join() + problems = self.yB.downloadPkgs3() if len(problems) > 0: errstring = '' errstring += _('Error Downloading Packages:\n') diff --git a/po/yum.pot b/po/yum.pot index 9e01e13..c868dc9 100644 --- a/po/yum.pot +++ b/po/yum.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-03-25 11:29+0100\n" +"POT-Creation-Date: 2009-03-08 01:53+0530\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@xxxxxx>\n" @@ -16,23 +16,24 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: ../callback.py:48 ../output.py:512 +#: ../callback.py:48 ../output.py:911 ../yum/rpmtrans.py:71 msgid "Updating" msgstr "" -#: ../callback.py:49 +#: ../callback.py:49 ../yum/rpmtrans.py:72 msgid "Erasing" msgstr "" -#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:511 +#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:910 +#: ../yum/rpmtrans.py:73 ../yum/rpmtrans.py:74 ../yum/rpmtrans.py:76 msgid "Installing" msgstr "" -#: ../callback.py:52 ../callback.py:58 +#: ../callback.py:52 ../callback.py:58 ../yum/rpmtrans.py:75 msgid "Obsoleted" msgstr "" -#: ../callback.py:54 ../output.py:558 +#: ../callback.py:54 ../output.py:1016 msgid "Updated" msgstr "" @@ -40,7 +41,7 @@ msgstr "" msgid "Erased" msgstr "" -#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:556 +#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:1014 msgid "Installed" msgstr "" @@ -62,615 +63,710 @@ msgstr "" msgid "Erased: %s" msgstr "" -#: ../callback.py:217 ../output.py:513 +#: ../callback.py:217 ../output.py:912 msgid "Removing" msgstr "" -#: ../callback.py:219 +#: ../callback.py:219 ../yum/rpmtrans.py:77 msgid "Cleanup" msgstr "" -#: ../cli.py:103 +#: ../cli.py:105 #, python-format msgid "Command \"%s\" already defined" msgstr "" -#: ../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:188 ../utils.py:79 #, python-format msgid "Config Error: %s" msgstr "" -#: ../cli.py:186 ../cli.py:1068 ../utils.py:75 +#: ../cli.py:191 ../cli.py:1171 ../utils.py:82 #, python-format msgid "Options Error: %s" msgstr "" -#: ../cli.py:229 +#: ../cli.py:219 +#, python-format +msgid " Installed: %s-%s at %s" +msgstr "" + +#: ../cli.py:221 +#, python-format +msgid " Built : %s at %s" +msgstr "" + +#: ../cli.py:223 +#, python-format +msgid " Committed: %s at %s" +msgstr "" + +#: ../cli.py:260 msgid "You need to give some command" msgstr "" -#: ../cli.py:271 +#: ../cli.py:302 msgid "Disk Requirements:\n" msgstr "" -#: ../cli.py:273 +#: ../cli.py:304 #, python-format msgid " At least %dMB needed on the %s filesystem.\n" msgstr "" #. TODO: simplify the dependency errors? #. Fixup the summary -#: ../cli.py:278 +#: ../cli.py:309 msgid "" "Error Summary\n" "-------------\n" msgstr "" -#: ../cli.py:317 +#: ../cli.py:352 msgid "Trying to run the transaction but nothing to do. Exiting." msgstr "" -#: ../cli.py:347 +#: ../cli.py:382 msgid "Exiting on user Command" msgstr "" -#: ../cli.py:351 +#: ../cli.py:386 msgid "Downloading Packages:" msgstr "" -#: ../cli.py:356 +#: ../cli.py:391 msgid "Error Downloading Packages:\n" msgstr "" -#: ../cli.py:370 ../yum/__init__.py:2746 +#: ../cli.py:405 ../yum/__init__.py:3331 msgid "Running rpm_check_debug" msgstr "" -#: ../cli.py:373 ../yum/__init__.py:2749 +#: ../cli.py:408 ../yum/__init__.py:3334 msgid "ERROR with rpm_check_debug vs depsolve:" msgstr "" -#: ../cli.py:377 ../yum/__init__.py:2751 -msgid "Please report this error in bugzilla" +#: ../cli.py:412 +#, python-format +msgid "Please report this error in %s" msgstr "" -#: ../cli.py:383 +#: ../cli.py:418 msgid "Running Transaction Test" msgstr "" -#: ../cli.py:399 +#: ../cli.py:434 msgid "Finished Transaction Test" msgstr "" -#: ../cli.py:401 +#: ../cli.py:436 msgid "Transaction Check Error:\n" msgstr "" -#: ../cli.py:408 +#: ../cli.py:443 msgid "Transaction Test Succeeded" msgstr "" -#: ../cli.py:429 +#: ../cli.py:464 msgid "Running Transaction" msgstr "" -#: ../cli.py:459 +#: ../cli.py:494 msgid "" "Refusing to automatically import keys when running unattended.\n" "Use \"-y\" to override." msgstr "" -#: ../cli.py:491 -msgid "Parsing package install arguments" +#: ../cli.py:513 ../cli.py:547 +msgid " * Maybe you meant: " msgstr "" -#: ../cli.py:501 +#: ../cli.py:530 ../cli.py:538 #, python-format -msgid "No package %s available." +msgid "Package(s) %s%s%s available, but not installed." msgstr "" -#: ../cli.py:505 ../cli.py:623 ../yumcommands.py:748 -msgid "Package(s) to install" +#: ../cli.py:544 ../cli.py:579 +#, python-format +msgid "No package %s%s%s available." msgstr "" -#: ../cli.py:506 ../cli.py:624 ../yumcommands.py:146 ../yumcommands.py:749 -msgid "Nothing to do" +#: ../cli.py:569 +msgid "Parsing package install arguments" msgstr "" -#: ../cli.py:536 ../yum/__init__.py:2232 ../yum/__init__.py:2311 -#: ../yum/__init__.py:2340 -#, python-format -msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s" +#: ../cli.py:584 ../cli.py:659 ../yumcommands.py:984 +msgid "Package(s) to install" msgstr "" -#: ../cli.py:568 -#, python-format -msgid "Could not find update match for %s" +#: ../cli.py:585 ../cli.py:660 ../yumcommands.py:151 ../yumcommands.py:985 +msgid "Nothing to do" msgstr "" -#: ../cli.py:580 +#: ../cli.py:618 #, python-format msgid "%d packages marked for Update" msgstr "" -#: ../cli.py:583 +#: ../cli.py:621 msgid "No Packages marked for Update" msgstr "" -#: ../cli.py:599 +#: ../cli.py:635 #, python-format msgid "%d packages marked for removal" msgstr "" -#: ../cli.py:602 +#: ../cli.py:638 msgid "No Packages marked for removal" msgstr "" -#: ../cli.py:614 +#: ../cli.py:650 msgid "No Packages Provided" msgstr "" -#: ../cli.py:654 +#: ../cli.py:705 msgid "Matching packages for package list to user args" msgstr "" -#: ../cli.py:701 +#: ../cli.py:754 #, python-format msgid "Warning: No matches found for: %s" msgstr "" -#: ../cli.py:704 +#: ../cli.py:757 msgid "No Matches found" msgstr "" -#: ../cli.py:745 +#: ../cli.py:796 +#, python-format +msgid "" +"Warning: 3.0.x versions of yum would erronously match against filenames.\n" +" You can use \"%s*/%s%s\" and/or \"%s*bin/%s%s\" to get that behaviour" +msgstr "" + +#: ../cli.py:812 #, python-format msgid "No Package Found for %s" msgstr "" -#: ../cli.py:757 +#: ../cli.py:824 msgid "Cleaning up Everything" msgstr "" -#: ../cli.py:771 +#: ../cli.py:838 msgid "Cleaning up Headers" msgstr "" -#: ../cli.py:774 +#: ../cli.py:841 msgid "Cleaning up Packages" msgstr "" -#: ../cli.py:777 +#: ../cli.py:844 msgid "Cleaning up xml metadata" msgstr "" -#: ../cli.py:780 +#: ../cli.py:847 msgid "Cleaning up database cache" msgstr "" -#: ../cli.py:783 +#: ../cli.py:850 msgid "Cleaning up expire-cache metadata" msgstr "" -#: ../cli.py:786 +#: ../cli.py:853 msgid "Cleaning up plugins" msgstr "" -#: ../cli.py:807 +#: ../cli.py:878 msgid "Installed Groups:" msgstr "" -#: ../cli.py:814 +#: ../cli.py:885 msgid "Available Groups:" msgstr "" -#: ../cli.py:820 +#: ../cli.py:891 msgid "Done" msgstr "" -#: ../cli.py:829 ../cli.py:841 ../cli.py:847 +#: ../cli.py:902 ../cli.py:920 ../cli.py:926 ../yum/__init__.py:2390 #, python-format msgid "Warning: Group %s does not exist." msgstr "" -#: ../cli.py:853 +#: ../cli.py:930 msgid "No packages in any requested group available to install or update" msgstr "" -#: ../cli.py:855 +#: ../cli.py:932 #, python-format msgid "%d Package(s) to Install" msgstr "" -#: ../cli.py:865 +#: ../cli.py:942 ../yum/__init__.py:2402 #, python-format msgid "No group named %s exists" msgstr "" -#: ../cli.py:871 +#: ../cli.py:948 msgid "No packages to remove from groups" msgstr "" -#: ../cli.py:873 +#: ../cli.py:950 #, python-format msgid "%d Package(s) to remove" msgstr "" -#: ../cli.py:915 +#: ../cli.py:992 #, python-format msgid "Package %s is already installed, skipping" msgstr "" -#: ../cli.py:926 +#: ../cli.py:1003 #, python-format msgid "Discarding non-comparable pkg %s.%s" msgstr "" #. we've not got any installed that match n or n+a -#: ../cli.py:952 +#: ../cli.py:1029 #, python-format msgid "No other %s installed, adding to list for potential install" msgstr "" -#: ../cli.py:971 +#: ../cli.py:1048 #, python-format msgid "Command line error: %s" msgstr "" -#: ../cli.py:1101 +#: ../cli.py:1061 +#, python-format +msgid "" +"\n" +"\n" +"%s: %s option requires an argument" +msgstr "" + +#: ../cli.py:1111 +msgid "--color takes one of: auto, always, never" +msgstr "" + +#: ../cli.py:1213 +msgid "show this help message and exit" +msgstr "" + +#: ../cli.py:1217 msgid "be tolerant of errors" msgstr "" -#: ../cli.py:1103 +#: ../cli.py:1219 msgid "run entirely from cache, don't update cache" msgstr "" -#: ../cli.py:1105 +#: ../cli.py:1221 msgid "config file location" msgstr "" -#: ../cli.py:1107 +#: ../cli.py:1223 msgid "maximum command wait time" msgstr "" -#: ../cli.py:1109 +#: ../cli.py:1225 msgid "debugging output level" msgstr "" -#: ../cli.py:1113 +#: ../cli.py:1229 msgid "show duplicates, in repos, in list/search commands" msgstr "" -#: ../cli.py:1115 +#: ../cli.py:1231 msgid "error output level" msgstr "" -#: ../cli.py:1118 +#: ../cli.py:1234 msgid "quiet operation" msgstr "" -#: ../cli.py:1122 +#: ../cli.py:1236 +msgid "verbose operation" +msgstr "" + +#: ../cli.py:1238 msgid "answer yes for all questions" msgstr "" -#: ../cli.py:1124 +#: ../cli.py:1240 msgid "show Yum version and exit" msgstr "" -#: ../cli.py:1125 +#: ../cli.py:1241 msgid "set install root" msgstr "" -#: ../cli.py:1129 +#: ../cli.py:1245 msgid "enable one or more repositories (wildcards allowed)" msgstr "" -#: ../cli.py:1133 +#: ../cli.py:1249 msgid "disable one or more repositories (wildcards allowed)" msgstr "" -#: ../cli.py:1136 +#: ../cli.py:1252 msgid "exclude package(s) by name or glob" msgstr "" -#: ../cli.py:1138 +#: ../cli.py:1254 msgid "disable exclude from main, for a repo or for everything" msgstr "" -#: ../cli.py:1141 +#: ../cli.py:1257 msgid "enable obsoletes processing during updates" msgstr "" -#: ../cli.py:1143 +#: ../cli.py:1259 msgid "disable Yum plugins" msgstr "" -#: ../cli.py:1145 +#: ../cli.py:1261 msgid "disable gpg signature checking" msgstr "" -#: ../cli.py:1147 +#: ../cli.py:1263 msgid "disable plugins by name" msgstr "" -#: ../cli.py:1150 +#: ../cli.py:1266 +msgid "enable plugins by name" +msgstr "" + +#: ../cli.py:1269 msgid "skip packages with depsolving problems" msgstr "" -#: ../output.py:229 +#: ../cli.py:1271 +msgid "control whether color is used" +msgstr "" + +#: ../output.py:300 msgid "Jan" msgstr "" -#: ../output.py:229 +#: ../output.py:300 msgid "Feb" msgstr "" -#: ../output.py:229 +#: ../output.py:300 msgid "Mar" msgstr "" -#: ../output.py:229 +#: ../output.py:300 msgid "Apr" msgstr "" -#: ../output.py:229 +#: ../output.py:300 msgid "May" msgstr "" -#: ../output.py:229 +#: ../output.py:300 msgid "Jun" msgstr "" -#: ../output.py:230 +#: ../output.py:301 msgid "Jul" msgstr "" -#: ../output.py:230 +#: ../output.py:301 msgid "Aug" msgstr "" -#: ../output.py:230 +#: ../output.py:301 msgid "Sep" msgstr "" -#: ../output.py:230 +#: ../output.py:301 msgid "Oct" msgstr "" -#: ../output.py:230 +#: ../output.py:301 msgid "Nov" msgstr "" -#: ../output.py:230 +#: ../output.py:301 msgid "Dec" msgstr "" -#: ../output.py:240 +#: ../output.py:311 msgid "Trying other mirror." msgstr "" -#: ../output.py:293 +#: ../output.py:527 #, python-format -msgid "Name : %s" +msgid "Name : %s%s%s" msgstr "" -#: ../output.py:294 +#: ../output.py:528 #, python-format msgid "Arch : %s" msgstr "" -#: ../output.py:296 +#: ../output.py:530 #, python-format msgid "Epoch : %s" msgstr "" -#: ../output.py:297 +#: ../output.py:531 #, python-format msgid "Version : %s" msgstr "" -#: ../output.py:298 +#: ../output.py:532 #, python-format msgid "Release : %s" msgstr "" -#: ../output.py:299 +#: ../output.py:533 #, python-format msgid "Size : %s" msgstr "" -#: ../output.py:300 +#: ../output.py:534 #, python-format msgid "Repo : %s" msgstr "" -#: ../output.py:302 +#: ../output.py:536 #, python-format msgid "Committer : %s" msgstr "" -#: ../output.py:303 +#: ../output.py:537 +#, python-format +msgid "Committime : %s" +msgstr "" + +#: ../output.py:538 +#, python-format +msgid "Buildtime : %s" +msgstr "" + +#: ../output.py:540 +#, python-format +msgid "Installtime: %s" +msgstr "" + +#: ../output.py:541 msgid "Summary : " msgstr "" -#: ../output.py:305 +#: ../output.py:543 #, python-format msgid "URL : %s" msgstr "" -#: ../output.py:306 +#: ../output.py:544 #, python-format msgid "License : %s" msgstr "" -#: ../output.py:307 +#: ../output.py:545 msgid "Description: " msgstr "" -#: ../output.py:351 -# REMEMBER to Translate [Y/N] to the current locale -msgid "Is this ok [y/N]: " +#: ../output.py:609 +msgid "y" msgstr "" -#: ../output.py:357 ../output.py:360 -msgid "y" +#: ../output.py:609 +msgid "yes" msgstr "" -#: ../output.py:357 +#: ../output.py:610 msgid "n" msgstr "" -#: ../output.py:357 ../output.py:360 -msgid "yes" +#: ../output.py:610 +msgid "no" msgstr "" -#: ../output.py:357 -msgid "no" +#: ../output.py:614 +msgid "Is this ok [y/N]: " msgstr "" -#: ../output.py:367 +#: ../output.py:702 #, python-format msgid "" "\n" "Group: %s" msgstr "" -#: ../output.py:369 +#: ../output.py:709 #, python-format msgid " Description: %s" msgstr "" -#: ../output.py:371 +#: ../output.py:711 msgid " Mandatory Packages:" msgstr "" -#: ../output.py:376 +#: ../output.py:712 msgid " Default Packages:" msgstr "" -#: ../output.py:381 +#: ../output.py:713 msgid " Optional Packages:" msgstr "" -#: ../output.py:386 +#: ../output.py:714 msgid " Conditional Packages:" msgstr "" -#: ../output.py:394 +#: ../output.py:734 #, python-format msgid "package: %s" msgstr "" -#: ../output.py:396 +#: ../output.py:736 msgid " No dependencies for this package" msgstr "" -#: ../output.py:401 +#: ../output.py:741 #, python-format msgid " dependency: %s" msgstr "" -#: ../output.py:403 +#: ../output.py:743 msgid " Unsatisfied dependency" msgstr "" -#: ../output.py:461 +#: ../output.py:815 +#, python-format +msgid "Repo : %s" +msgstr "" + +#: ../output.py:816 msgid "Matched from:" msgstr "" -#: ../output.py:487 -msgid "There was an error calculating total download size" +#: ../output.py:824 +msgid "Description : " msgstr "" -#: ../output.py:492 +#: ../output.py:827 #, python-format -msgid "Total size: %s" +msgid "URL : %s" msgstr "" -#: ../output.py:495 +#: ../output.py:830 #, python-format -msgid "Total download size: %s" +msgid "License : %s" msgstr "" -#: ../output.py:507 -msgid "Package" +#: ../output.py:833 +#, python-format +msgid "Filename : %s" msgstr "" -#: ../output.py:507 -msgid "Arch" +#: ../output.py:837 +msgid "Other : " msgstr "" -#: ../output.py:507 -msgid "Version" +#: ../output.py:870 +msgid "There was an error calculating total download size" msgstr "" -#: ../output.py:507 -msgid "Repository" +#: ../output.py:875 +#, python-format +msgid "Total size: %s" msgstr "" -#: ../output.py:507 -msgid "Size" +#: ../output.py:878 +#, python-format +msgid "Total download size: %s" msgstr "" -#: ../output.py:514 +#: ../output.py:913 msgid "Installing for dependencies" msgstr "" -#: ../output.py:515 +#: ../output.py:914 msgid "Updating for dependencies" msgstr "" -#: ../output.py:516 +#: ../output.py:915 msgid "Removing for dependencies" msgstr "" -#: ../output.py:528 +#: ../output.py:922 ../output.py:1018 +msgid "Skipped (dependency problems)" +msgstr "" + +#: ../output.py:943 +msgid "Package" +msgstr "" + +#: ../output.py:943 +msgid "Arch" +msgstr "" + +#: ../output.py:944 +msgid "Version" +msgstr "" + +#: ../output.py:944 +msgid "Repository" +msgstr "" + +#: ../output.py:945 +msgid "Size" +msgstr "" + +#: ../output.py:956 #, python-format msgid "" " replacing %s.%s %s\n" "\n" msgstr "" -#: ../output.py:536 +#: ../output.py:964 #, python-format msgid "" "\n" "Transaction Summary\n" -"=============================================================================\n" +"%s\n" "Install %5.5s Package(s) \n" "Update %5.5s Package(s) \n" "Remove %5.5s Package(s) \n" msgstr "" -#: ../output.py:554 +#: ../output.py:1012 msgid "Removed" msgstr "" -#: ../output.py:555 +#: ../output.py:1013 msgid "Dependency Removed" msgstr "" -#: ../output.py:557 +#: ../output.py:1015 msgid "Dependency Installed" msgstr "" -#: ../output.py:559 +#: ../output.py:1017 msgid "Dependency Updated" msgstr "" -#: ../output.py:560 +#: ../output.py:1019 msgid "Replaced" msgstr "" -#: ../output.py:618 +#: ../output.py:1092 #, python-format msgid "" "\n" @@ -678,72 +774,76 @@ msgid "" "seconds to exit.\n" msgstr "" -#: ../output.py:628 +#: ../output.py:1102 msgid "user interrupt" msgstr "" -#: ../output.py:639 +#: ../output.py:1118 +msgid "Total" +msgstr "" + +#: ../output.py:1132 msgid "installed" msgstr "" -#: ../output.py:640 +#: ../output.py:1133 msgid "updated" msgstr "" -#: ../output.py:641 +#: ../output.py:1134 msgid "obsoleted" msgstr "" -#: ../output.py:642 +#: ../output.py:1135 msgid "erased" msgstr "" -#: ../output.py:646 +#: ../output.py:1139 #, python-format msgid "---> Package %s.%s %s:%s-%s set to be %s" msgstr "" -#: ../output.py:653 +#: ../output.py:1146 msgid "--> Running transaction check" msgstr "" -#: ../output.py:658 +#: ../output.py:1151 msgid "--> Restarting Dependency Resolution with new changes." msgstr "" -#: ../output.py:663 +#: ../output.py:1156 msgid "--> Finished Dependency Resolution" msgstr "" -#: ../output.py:668 +#: ../output.py:1161 #, python-format msgid "--> Processing Dependency: %s for package: %s" msgstr "" -#: ../output.py:673 +#: ../output.py:1166 #, python-format msgid "--> Unresolved Dependency: %s" msgstr "" -#: ../output.py:679 +#: ../output.py:1172 #, python-format msgid "--> Processing Conflict: %s conflicts %s" msgstr "" -#: ../output.py:682 +#: ../output.py:1175 msgid "--> Populating transaction set with selected packages. Please wait." msgstr "" -#: ../output.py:686 +#: ../output.py:1179 #, python-format msgid "---> Downloading header for %s to pack into transaction set." msgstr "" -#: ../yumcommands.py:36 +#: ../yumcommands.py:41 msgid "You need to be root to perform this command." msgstr "" -#: ../yumcommands.py:43 +#: ../yumcommands.py:48 msgid "" "\n" "You have enabled checking of packages via GPG keys. This is a good thing. \n" @@ -761,267 +861,325 @@ msgid "" "For more information contact your distribution or package provider.\n" msgstr "" -#: ../yumcommands.py:63 +#: ../yumcommands.py:68 #, python-format msgid "Error: Need to pass a list of pkgs to %s" msgstr "" -#: ../yumcommands.py:69 +#: ../yumcommands.py:74 msgid "Error: Need an item to match" msgstr "" -#: ../yumcommands.py:75 +#: ../yumcommands.py:80 msgid "Error: Need a group or list of groups" msgstr "" -#: ../yumcommands.py:84 +#: ../yumcommands.py:89 #, python-format msgid "Error: clean requires an option: %s" msgstr "" -#: ../yumcommands.py:89 +#: ../yumcommands.py:94 #, python-format msgid "Error: invalid clean argument: %r" msgstr "" -#: ../yumcommands.py:102 +#: ../yumcommands.py:107 msgid "No argument to shell" msgstr "" -#: ../yumcommands.py:105 +#: ../yumcommands.py:110 #, python-format msgid "Filename passed to shell: %s" msgstr "" -#: ../yumcommands.py:109 +#: ../yumcommands.py:114 #, python-format msgid "File %s given as argument to shell does not exist." msgstr "" -#: ../yumcommands.py:115 +#: ../yumcommands.py:120 msgid "Error: more than one file given as argument to shell." msgstr "" -#: ../yumcommands.py:156 +#: ../yumcommands.py:161 msgid "PACKAGE..." msgstr "" -#: ../yumcommands.py:159 +#: ../yumcommands.py:164 msgid "Install a package or packages on your system" msgstr "" -#: ../yumcommands.py:168 +#: ../yumcommands.py:173 msgid "Setting up Install Process" msgstr "" -#: ../yumcommands.py:179 +#: ../yumcommands.py:184 msgid "[PACKAGE...]" msgstr "" -#: ../yumcommands.py:182 +#: ../yumcommands.py:187 msgid "Update a package or packages on your system" msgstr "" -#: ../yumcommands.py:190 +#: ../yumcommands.py:195 msgid "Setting up Update Process" msgstr "" -#: ../yumcommands.py:204 +#: ../yumcommands.py:237 msgid "Display details about a package or group of packages" msgstr "" -#: ../yumcommands.py:212 +#: ../yumcommands.py:278 msgid "Installed Packages" msgstr "" -#: ../yumcommands.py:213 +#: ../yumcommands.py:285 msgid "Available Packages" msgstr "" -#: ../yumcommands.py:214 +#: ../yumcommands.py:289 msgid "Extra Packages" msgstr "" -#: ../yumcommands.py:215 +#: ../yumcommands.py:291 msgid "Updated Packages" msgstr "" -#: ../yumcommands.py:221 ../yumcommands.py:225 +#: ../yumcommands.py:298 ../yumcommands.py:305 ../yumcommands.py:574 msgid "Obsoleting Packages" msgstr "" -#: ../yumcommands.py:226 +#: ../yumcommands.py:307 msgid "Recently Added Packages" msgstr "" -#: ../yumcommands.py:232 +#: ../yumcommands.py:314 msgid "No matching Packages to list" msgstr "" -#: ../yumcommands.py:246 +#: ../yumcommands.py:328 msgid "List a package or groups of packages" msgstr "" -#: ../yumcommands.py:258 +#: ../yumcommands.py:340 msgid "Remove a package or packages from your system" msgstr "" -#: ../yumcommands.py:266 +#: ../yumcommands.py:348 msgid "Setting up Remove Process" msgstr "" -#: ../yumcommands.py:278 +#: ../yumcommands.py:363 msgid "Setting up Group Process" msgstr "" -#: ../yumcommands.py:284 +#: ../yumcommands.py:369 msgid "No Groups on which to run command" msgstr "" -#: ../yumcommands.py:297 +#: ../yumcommands.py:382 msgid "List available package groups" msgstr "" -#: ../yumcommands.py:314 +#: ../yumcommands.py:399 msgid "Install the packages in a group on your system" msgstr "" -#: ../yumcommands.py:336 +#: ../yumcommands.py:421 msgid "Remove the packages in a group from your system" msgstr "" -#: ../yumcommands.py:360 +#: ../yumcommands.py:448 msgid "Display details about a package group" msgstr "" -#: ../yumcommands.py:384 +#: ../yumcommands.py:472 msgid "Generate the metadata cache" msgstr "" -#: ../yumcommands.py:390 +#: ../yumcommands.py:478 msgid "Making cache files for all metadata files." msgstr "" -#: ../yumcommands.py:391 +#: ../yumcommands.py:479 msgid "This may take a while depending on the speed of this computer" msgstr "" -#: ../yumcommands.py:412 +#: ../yumcommands.py:500 msgid "Metadata Cache Created" msgstr "" -#: ../yumcommands.py:426 +#: ../yumcommands.py:514 msgid "Remove cached data" msgstr "" -#: ../yumcommands.py:447 +#: ../yumcommands.py:535 msgid "Find what package provides the given value" msgstr "" -#: ../yumcommands.py:467 +#: ../yumcommands.py:555 msgid "Check for available package updates" msgstr "" -#: ../yumcommands.py:490 +#: ../yumcommands.py:594 msgid "Search package details for the given string" msgstr "" -#: ../yumcommands.py:496 +#: ../yumcommands.py:600 msgid "Searching Packages: " msgstr "" -#: ../yumcommands.py:513 +#: ../yumcommands.py:617 msgid "Update packages taking obsoletes into account" msgstr "" -#: ../yumcommands.py:522 +#: ../yumcommands.py:626 msgid "Setting up Upgrade Process" msgstr "" -#: ../yumcommands.py:536 +#: ../yumcommands.py:640 msgid "Install a local RPM" msgstr "" -#: ../yumcommands.py:545 +#: ../yumcommands.py:649 msgid "Setting up Local Package Process" msgstr "" -#: ../yumcommands.py:564 +#: ../yumcommands.py:668 msgid "Determine which package provides the given dependency" msgstr "" -#: ../yumcommands.py:567 +#: ../yumcommands.py:671 msgid "Searching Packages for Dependency:" msgstr "" -#: ../yumcommands.py:581 +#: ../yumcommands.py:685 msgid "Run an interactive yum shell" msgstr "" -#: ../yumcommands.py:587 +#: ../yumcommands.py:691 msgid "Setting up Yum Shell" msgstr "" -#: ../yumcommands.py:605 +#: ../yumcommands.py:709 msgid "List a package's dependencies" msgstr "" -#: ../yumcommands.py:611 +#: ../yumcommands.py:715 msgid "Finding dependencies: " msgstr "" -#: ../yumcommands.py:627 +#: ../yumcommands.py:731 msgid "Display the configured software repositories" msgstr "" -#: ../yumcommands.py:645 -msgid "repo id" +#: ../yumcommands.py:779 ../yumcommands.py:780 +msgid "enabled" msgstr "" -#: ../yumcommands.py:645 -msgid "repo name" +#: ../yumcommands.py:788 ../yumcommands.py:789 +msgid "disabled" msgstr "" -#: ../yumcommands.py:645 -msgid "status" +#: ../yumcommands.py:800 +msgid "Repo-id : " msgstr "" -#: ../yumcommands.py:651 -msgid "enabled" +#: ../yumcommands.py:801 +msgid "Repo-name : " msgstr "" -#: ../yumcommands.py:654 -msgid "disabled" +#: ../yumcommands.py:802 +msgid "Repo-status : " msgstr "" -#: ../yumcommands.py:671 +#: ../yumcommands.py:804 +msgid "Repo-revision: " +msgstr "" + +#: ../yumcommands.py:808 +msgid "Repo-tags : " +msgstr "" + +#: ../yumcommands.py:814 +msgid "Repo-distro-tags: " +msgstr "" + +#: ../yumcommands.py:819 +msgid "Repo-updated: " +msgstr "" + +#: ../yumcommands.py:821 +msgid "Repo-pkgs : " +msgstr "" + +#: ../yumcommands.py:822 +msgid "Repo-size : " +msgstr "" + +#: ../yumcommands.py:829 +msgid "Repo-baseurl: " +msgstr "" + +#: ../yumcommands.py:833 +msgid "Repo-metalink: " +msgstr "" + +#: ../yumcommands.py:836 +msgid "Repo-mirrors: " +msgstr "" + +#: ../yumcommands.py:840 +msgid "Repo-exclude: " +msgstr "" + +#: ../yumcommands.py:844 +msgid "Repo-include: " +msgstr "" + +#. Work out the first (id) and last (enabled/disalbed/count), +#. then chop the middle (name)... +#: ../yumcommands.py:854 ../yumcommands.py:880 +msgid "repo id" +msgstr "" + +#: ../yumcommands.py:868 ../yumcommands.py:869 ../yumcommands.py:883 +msgid "status" +msgstr "" + +#: ../yumcommands.py:881 +msgid "repo name" +msgstr "" + +#: ../yumcommands.py:907 msgid "Display a helpful usage message" msgstr "" -#: ../yumcommands.py:705 +#: ../yumcommands.py:941 #, python-format msgid "No help available for %s" msgstr "" -#: ../yumcommands.py:710 +#: ../yumcommands.py:946 msgid "" "\n" "\n" "aliases: " msgstr "" -#: ../yumcommands.py:712 +#: ../yumcommands.py:948 msgid "" "\n" "\n" "alias: " msgstr "" -#: ../yumcommands.py:741 +#: ../yumcommands.py:977 msgid "Setting up Reinstall Process" msgstr "" -#: ../yumcommands.py:755 +#: ../yumcommands.py:991 msgid "reinstall a package" msgstr "" @@ -1039,722 +1197,757 @@ msgid "" "Exiting on Broken Pipe" msgstr "" -#: ../yummain.py:105 +#: ../yummain.py:98 msgid "" "Another app is currently holding the yum lock; waiting for it to exit..." msgstr "" -#: ../yummain.py:132 ../yummain.py:171 +#: ../yummain.py:125 ../yummain.py:164 #, python-format msgid "Error: %s" msgstr "" -#: ../yummain.py:142 ../yummain.py:178 +#: ../yummain.py:135 ../yummain.py:171 #, python-format msgid "Unknown Error(s): Exit Code: %d:" msgstr "" #. Depsolve stage -#: ../yummain.py:149 +#: ../yummain.py:142 msgid "Resolving Dependencies" msgstr "" -#: ../yummain.py:184 +#: ../yummain.py:177 msgid "" "\n" "Dependencies Resolved" msgstr "" -#: ../yummain.py:198 +#: ../yummain.py:191 msgid "Complete!" msgstr "" -#: ../yummain.py:245 +#: ../yummain.py:238 msgid "" "\n" "\n" "Exiting on user cancel." msgstr "" -#: ../yum/depsolve.py:82 +#: ../yum/depsolve.py:84 msgid "doTsSetup() will go away in a future version of Yum.\n" msgstr "" -#: ../yum/depsolve.py:95 +#: ../yum/depsolve.py:99 msgid "Setting up TransactionSets before config class is up" msgstr "" -#: ../yum/depsolve.py:136 +#: ../yum/depsolve.py:150 #, python-format msgid "Invalid tsflag in config file: %s" msgstr "" -#: ../yum/depsolve.py:147 +#: ../yum/depsolve.py:161 #, python-format msgid "Searching pkgSack for dep: %s" msgstr "" -#: ../yum/depsolve.py:170 +#: ../yum/depsolve.py:184 #, python-format msgid "Potential match for %s from %s" msgstr "" -#: ../yum/depsolve.py:178 +#: ../yum/depsolve.py:192 #, python-format msgid "Matched %s to require for %s" msgstr "" -#: ../yum/depsolve.py:219 +#: ../yum/depsolve.py:233 #, python-format msgid "Member: %s" msgstr "" -#: ../yum/depsolve.py:233 ../yum/depsolve.py:696 +#: ../yum/depsolve.py:247 ../yum/depsolve.py:737 #, python-format msgid "%s converted to install" msgstr "" -#: ../yum/depsolve.py:240 +#: ../yum/depsolve.py:254 #, python-format msgid "Adding Package %s in mode %s" msgstr "" -#: ../yum/depsolve.py:250 +#: ../yum/depsolve.py:264 #, python-format msgid "Removing Package %s" msgstr "" -#: ../yum/depsolve.py:261 +#: ../yum/depsolve.py:275 #, python-format msgid "%s requires: %s" msgstr "" -#: ../yum/depsolve.py:312 +#: ../yum/depsolve.py:333 msgid "Needed Require has already been looked up, cheating" msgstr "" -#: ../yum/depsolve.py:322 +#: ../yum/depsolve.py:343 #, python-format msgid "Needed Require is not a package name. Looking up: %s" msgstr "" -#: ../yum/depsolve.py:329 +#: ../yum/depsolve.py:350 #, python-format msgid "Potential Provider: %s" msgstr "" -#: ../yum/depsolve.py:352 +#: ../yum/depsolve.py:373 #, python-format msgid "Mode is %s for provider of %s: %s" msgstr "" -#: ../yum/depsolve.py:356 +#: ../yum/depsolve.py:377 #, python-format msgid "Mode for pkg providing %s: %s" msgstr "" -#: ../yum/depsolve.py:360 +#: ../yum/depsolve.py:381 #, python-format msgid "TSINFO: %s package requiring %s marked as erase" msgstr "" -#: ../yum/depsolve.py:372 +#: ../yum/depsolve.py:394 #, python-format msgid "TSINFO: Obsoleting %s with %s to resolve dep." msgstr "" -#: ../yum/depsolve.py:375 +#: ../yum/depsolve.py:397 #, python-format msgid "TSINFO: Updating %s to resolve dep." msgstr "" -#: ../yum/depsolve.py:378 +#: ../yum/depsolve.py:405 #, python-format msgid "Cannot find an update path for dep for: %s" msgstr "" -#: ../yum/depsolve.py:388 +#: ../yum/depsolve.py:415 #, python-format msgid "Unresolvable requirement %s for %s" msgstr "" +#: ../yum/depsolve.py:438 +#, python-format +msgid "Quick matched %s to require for %s" +msgstr "" + #. is it already installed? -#: ../yum/depsolve.py:434 +#: ../yum/depsolve.py:480 #, python-format msgid "%s is in providing packages but it is already installed, removing." msgstr "" -#: ../yum/depsolve.py:449 +#: ../yum/depsolve.py:495 #, python-format msgid "Potential resolving package %s has newer instance in ts." msgstr "" -#: ../yum/depsolve.py:460 +#: ../yum/depsolve.py:506 #, python-format msgid "Potential resolving package %s has newer instance installed." msgstr "" -#: ../yum/depsolve.py:468 ../yum/depsolve.py:527 +#: ../yum/depsolve.py:514 ../yum/depsolve.py:563 #, python-format msgid "Missing Dependency: %s is needed by package %s" msgstr "" -#: ../yum/depsolve.py:481 +#: ../yum/depsolve.py:527 #, python-format msgid "%s already in ts, skipping this one" msgstr "" -#: ../yum/depsolve.py:510 -#, python-format -msgid "" -"Failure finding best provider of %s for %s, exceeded maximum loop length" -msgstr "" - -#: ../yum/depsolve.py:537 +#: ../yum/depsolve.py:573 #, python-format msgid "TSINFO: Marking %s as update for %s" msgstr "" -#: ../yum/depsolve.py:544 +#: ../yum/depsolve.py:581 #, python-format msgid "TSINFO: Marking %s as install for %s" msgstr "" -#: ../yum/depsolve.py:635 ../yum/depsolve.py:714 +#: ../yum/depsolve.py:674 ../yum/depsolve.py:755 msgid "Success - empty transaction" msgstr "" -#: ../yum/depsolve.py:673 ../yum/depsolve.py:686 +#: ../yum/depsolve.py:712 ../yum/depsolve.py:727 msgid "Restarting Loop" msgstr "" -#: ../yum/depsolve.py:702 +#: ../yum/depsolve.py:743 msgid "Dependency Process ending" msgstr "" -#: ../yum/depsolve.py:708 +#: ../yum/depsolve.py:749 #, python-format msgid "%s from %s has depsolving problems" msgstr "" -#: ../yum/depsolve.py:715 +#: ../yum/depsolve.py:756 msgid "Success - deps resolved" msgstr "" -#: ../yum/depsolve.py:729 +#: ../yum/depsolve.py:770 #, python-format msgid "Checking deps for %s" msgstr "" -#: ../yum/depsolve.py:782 +#: ../yum/depsolve.py:853 #, python-format msgid "looking for %s as a requirement of %s" msgstr "" -#: ../yum/depsolve.py:933 -#, python-format -msgid "Comparing best: %s to po: %s" -msgstr "" - -#: ../yum/depsolve.py:937 -#, python-format -msgid "Same: best %s == po: %s" -msgstr "" - -#: ../yum/depsolve.py:952 ../yum/depsolve.py:963 -#, python-format -msgid "best %s obsoletes po: %s" -msgstr "" - -#: ../yum/depsolve.py:955 +#: ../yum/depsolve.py:995 #, python-format -msgid "po %s obsoletes best: %s" +msgid "Running compare_providers() for %s" msgstr "" -#: ../yum/depsolve.py:972 ../yum/depsolve.py:979 ../yum/depsolve.py:1036 +#: ../yum/depsolve.py:1023 ../yum/depsolve.py:1029 #, python-format msgid "better arch in po %s" msgstr "" -#: ../yum/depsolve.py:988 ../yum/depsolve.py:1010 +#: ../yum/depsolve.py:1083 #, python-format -msgid "po %s shares a sourcerpm with %s" +msgid "%s obsoletes %s" msgstr "" -#: ../yum/depsolve.py:992 ../yum/depsolve.py:1015 +#: ../yum/depsolve.py:1099 #, python-format -msgid "best %s shares a sourcerpm with %s" +msgid "" +"archdist compared %s to %s on %s\n" +" Winner: %s" msgstr "" -#: ../yum/depsolve.py:999 ../yum/depsolve.py:1020 +#: ../yum/depsolve.py:1106 #, python-format -msgid "po %s shares more of the name prefix with %s" +msgid "common sourcerpm %s and %s" msgstr "" -#: ../yum/depsolve.py:1003 ../yum/depsolve.py:1029 +#: ../yum/depsolve.py:1112 #, python-format -msgid "po %s has a shorter name than best %s" +msgid "common prefix of %s between %s and %s" msgstr "" -#: ../yum/depsolve.py:1025 +#: ../yum/depsolve.py:1120 #, python-format -msgid "bestpkg %s shares more of the name prefix with %s" +msgid "Best Order: %s" msgstr "" -#: ../yum/__init__.py:119 +#: ../yum/__init__.py:154 msgid "doConfigSetup() will go away in a future version of Yum.\n" msgstr "" -#: ../yum/__init__.py:296 +#. FIXME: Use critical? or exception? +#: ../yum/__init__.py:335 #, python-format msgid "Repository %r is missing name in configuration, using id" msgstr "" -#: ../yum/__init__.py:332 +#: ../yum/__init__.py:373 msgid "plugins already initialised" msgstr "" -#: ../yum/__init__.py:339 +#: ../yum/__init__.py:380 msgid "doRpmDBSetup() will go away in a future version of Yum.\n" msgstr "" -#: ../yum/__init__.py:349 +#: ../yum/__init__.py:390 msgid "Reading Local RPMDB" msgstr "" -#: ../yum/__init__.py:367 +#: ../yum/__init__.py:408 msgid "doRepoSetup() will go away in a future version of Yum.\n" msgstr "" -#: ../yum/__init__.py:387 +#: ../yum/__init__.py:428 msgid "doSackSetup() will go away in a future version of Yum.\n" msgstr "" -#: ../yum/__init__.py:404 +#: ../yum/__init__.py:445 msgid "Setting up Package Sacks" msgstr "" -#: ../yum/__init__.py:447 +#: ../yum/__init__.py:488 #, python-format msgid "repo object for repo %s lacks a _resetSack method\n" msgstr "" -#: ../yum/__init__.py:448 +#: ../yum/__init__.py:489 msgid "therefore this repo cannot be reset.\n" msgstr "" -#: ../yum/__init__.py:453 +#: ../yum/__init__.py:494 msgid "doUpdateSetup() will go away in a future version of Yum.\n" msgstr "" -#: ../yum/__init__.py:465 +#: ../yum/__init__.py:506 msgid "Building updates object" msgstr "" -#: ../yum/__init__.py:496 +#: ../yum/__init__.py:537 msgid "doGroupSetup() will go away in a future version of Yum.\n" msgstr "" -#: ../yum/__init__.py:520 +#: ../yum/__init__.py:561 msgid "Getting group metadata" msgstr "" -#: ../yum/__init__.py:546 +#: ../yum/__init__.py:586 #, python-format msgid "Adding group file from repository: %s" msgstr "" -#: ../yum/__init__.py:555 +#: ../yum/__init__.py:591 #, python-format msgid "Failed to add groups file for repository: %s - %s" msgstr "" -#: ../yum/__init__.py:561 +#: ../yum/__init__.py:597 msgid "No Groups Available in any repository" msgstr "" -#: ../yum/__init__.py:611 +#: ../yum/__init__.py:647 msgid "Importing additional filelist information" msgstr "" -#: ../yum/__init__.py:657 +#: ../yum/__init__.py:655 +msgid "" +"There are unfinished transactions remaining. You might consider running yum-" +"complete-transaction first to finish them." +msgstr "" + +#: ../yum/__init__.py:721 #, python-format msgid "Skip-broken round %i" msgstr "" -#: ../yum/__init__.py:680 +#: ../yum/__init__.py:773 #, python-format msgid "Skip-broken took %i rounds " msgstr "" -#: ../yum/__init__.py:681 +#: ../yum/__init__.py:774 msgid "" "\n" "Packages skipped because of dependency problems:" msgstr "" -#: ../yum/__init__.py:685 +#: ../yum/__init__.py:778 #, python-format msgid " %s from %s" msgstr "" -#: ../yum/__init__.py:774 +#: ../yum/__init__.py:921 +msgid "" +"Warning: scriptlet or other non-fatal errors occurred during transaction." +msgstr "" + +#: ../yum/__init__.py:937 #, python-format msgid "Failed to remove transaction file %s" msgstr "" -#: ../yum/__init__.py:814 +#: ../yum/__init__.py:978 #, python-format msgid "excluding for cost: %s from %s" msgstr "" -#: ../yum/__init__.py:845 +#: ../yum/__init__.py:1009 msgid "Excluding Packages in global exclude list" msgstr "" -#: ../yum/__init__.py:847 +#: ../yum/__init__.py:1011 #, python-format msgid "Excluding Packages from %s" msgstr "" -#: ../yum/__init__.py:875 +#: ../yum/__init__.py:1036 #, python-format msgid "Reducing %s to included packages only" msgstr "" -#: ../yum/__init__.py:880 +#: ../yum/__init__.py:1042 #, python-format msgid "Keeping included package %s" msgstr "" -#: ../yum/__init__.py:886 +#: ../yum/__init__.py:1048 #, python-format msgid "Removing unmatched package %s" msgstr "" -#: ../yum/__init__.py:889 +#: ../yum/__init__.py:1051 msgid "Finished" msgstr "" #. Whoa. What the heck happened? -#: ../yum/__init__.py:919 +#: ../yum/__init__.py:1081 #, python-format msgid "Unable to check if PID %s is active" msgstr "" #. Another copy seems to be running. -#: ../yum/__init__.py:923 +#: ../yum/__init__.py:1085 #, python-format msgid "Existing lock %s: another copy is running as pid %s." msgstr "" -#: ../yum/__init__.py:970 ../yum/__init__.py:977 +#: ../yum/__init__.py:1156 msgid "Package does not match intended download" msgstr "" -#: ../yum/__init__.py:991 +#: ../yum/__init__.py:1171 msgid "Could not perform checksum" msgstr "" -#: ../yum/__init__.py:994 +#: ../yum/__init__.py:1174 msgid "Package does not match checksum" msgstr "" -#: ../yum/__init__.py:1036 +#: ../yum/__init__.py:1217 #, python-format msgid "package fails checksum but caching is enabled for %s" msgstr "" -#: ../yum/__init__.py:1042 +#: ../yum/__init__.py:1220 ../yum/__init__.py:1248 #, python-format msgid "using local copy of %s" msgstr "" -#: ../yum/__init__.py:1061 +#: ../yum/__init__.py:1262 #, python-format -msgid "Insufficient space in download directory %s to download" +msgid "" +"Insufficient space in download directory %s\n" +" * free %s\n" +" * needed %s" msgstr "" -#: ../yum/__init__.py:1094 +#: ../yum/__init__.py:1309 msgid "Header is not complete." msgstr "" -#: ../yum/__init__.py:1134 +#: ../yum/__init__.py:1349 #, python-format msgid "" "Header not in local cache and caching-only mode enabled. Cannot download %s" msgstr "" -#: ../yum/__init__.py:1189 +#: ../yum/__init__.py:1404 #, python-format msgid "Public key for %s is not installed" msgstr "" -#: ../yum/__init__.py:1193 +#: ../yum/__init__.py:1408 #, python-format msgid "Problem opening package %s" msgstr "" -#: ../yum/__init__.py:1201 +#: ../yum/__init__.py:1416 #, python-format msgid "Public key for %s is not trusted" msgstr "" -#: ../yum/__init__.py:1205 +#: ../yum/__init__.py:1420 #, python-format msgid "Package %s is not signed" msgstr "" -#: ../yum/__init__.py:1243 +#: ../yum/__init__.py:1458 #, python-format msgid "Cannot remove %s" msgstr "" -#: ../yum/__init__.py:1247 +#: ../yum/__init__.py:1461 #, python-format msgid "%s removed" msgstr "" -#: ../yum/__init__.py:1283 +#: ../yum/__init__.py:1498 #, python-format msgid "Cannot remove %s file %s" msgstr "" -#: ../yum/__init__.py:1287 +#: ../yum/__init__.py:1501 #, python-format msgid "%s file %s removed" msgstr "" -#: ../yum/__init__.py:1289 +#: ../yum/__init__.py:1503 #, python-format msgid "%d %s files removed" msgstr "" -#: ../yum/__init__.py:1329 +#: ../yum/__init__.py:1571 #, python-format msgid "More than one identical match in sack for %s" msgstr "" -#: ../yum/__init__.py:1335 +#: ../yum/__init__.py:1576 #, python-format msgid "Nothing matches %s.%s %s:%s-%s from update" msgstr "" -#: ../yum/__init__.py:1543 +#: ../yum/__init__.py:1795 msgid "" "searchPackages() will go away in a future version of " "Yum. Use searchGenerator() instead. \n" msgstr "" -#: ../yum/__init__.py:1580 +#: ../yum/__init__.py:1832 #, python-format msgid "Searching %d packages" msgstr "" -#: ../yum/__init__.py:1584 +#: ../yum/__init__.py:1835 #, python-format msgid "searching package %s" msgstr "" -#: ../yum/__init__.py:1596 +#: ../yum/__init__.py:1846 msgid "searching in file entries" msgstr "" -#: ../yum/__init__.py:1603 +#: ../yum/__init__.py:1852 msgid "searching in provides entries" msgstr "" -#: ../yum/__init__.py:1633 +#: ../yum/__init__.py:1885 #, python-format msgid "Provides-match: %s" msgstr "" -#: ../yum/__init__.py:1702 ../yum/__init__.py:1720 ../yum/__init__.py:1748 -#: ../yum/__init__.py:1753 ../yum/__init__.py:1808 ../yum/__init__.py:1812 +#: ../yum/__init__.py:1934 +msgid "No group data available for configured repositories" +msgstr "" + +#: ../yum/__init__.py:1965 ../yum/__init__.py:1984 ../yum/__init__.py:2014 +#: ../yum/__init__.py:2020 ../yum/__init__.py:2093 ../yum/__init__.py:2097 #, python-format msgid "No Group named %s exists" msgstr "" -#: ../yum/__init__.py:1731 ../yum/__init__.py:1824 +#: ../yum/__init__.py:1995 ../yum/__init__.py:2109 #, python-format msgid "package %s was not marked in group %s" msgstr "" -#: ../yum/__init__.py:1770 +#: ../yum/__init__.py:2041 #, python-format msgid "Adding package %s from group %s" msgstr "" -#: ../yum/__init__.py:1774 +#: ../yum/__init__.py:2046 #, python-format msgid "No package named %s available to be installed" msgstr "" -#: ../yum/__init__.py:1849 +#: ../yum/__init__.py:2134 #, python-format msgid "Package tuple %s could not be found in packagesack" msgstr "" -#: ../yum/__init__.py:1917 ../yum/__init__.py:1960 +#: ../yum/__init__.py:2149 +msgid "" +"getInstalledPackageObject() will go away, use self.rpmdb.searchPkgTuple().\n" +msgstr "" + +#: ../yum/__init__.py:2201 ../yum/__init__.py:2244 msgid "Invalid versioned dependency string, try quoting it." msgstr "" -#: ../yum/__init__.py:1919 ../yum/__init__.py:1962 +#: ../yum/__init__.py:2203 ../yum/__init__.py:2246 msgid "Invalid version flag" msgstr "" -#: ../yum/__init__.py:1934 ../yum/__init__.py:1938 +#: ../yum/__init__.py:2218 ../yum/__init__.py:2222 #, python-format msgid "No Package found for %s" msgstr "" -#: ../yum/__init__.py:2066 +#: ../yum/__init__.py:2429 msgid "Package Object was not a package object instance" msgstr "" -#: ../yum/__init__.py:2070 +#: ../yum/__init__.py:2433 msgid "Nothing specified to install" msgstr "" #. only one in there -#: ../yum/__init__.py:2085 +#: ../yum/__init__.py:2451 #, python-format msgid "Checking for virtual provide or file-provide for %s" msgstr "" -#: ../yum/__init__.py:2091 ../yum/__init__.py:2380 +#: ../yum/__init__.py:2457 ../yum/__init__.py:2706 ../yum/__init__.py:2872 #, python-format msgid "No Match for argument: %s" msgstr "" -#. FIXME - this is where we could check to see if it already installed -#. for returning better errors -#: ../yum/__init__.py:2146 +#: ../yum/__init__.py:2523 +#, python-format +msgid "Package %s installed and not available" +msgstr "" + +#: ../yum/__init__.py:2526 msgid "No package(s) available to install" msgstr "" -#: ../yum/__init__.py:2158 +#: ../yum/__init__.py:2539 #, python-format msgid "Package: %s - already in transaction set" msgstr "" -#: ../yum/__init__.py:2171 +#: ../yum/__init__.py:2555 +#, python-format +msgid "Package %s is obsoleted by %s, trying to install %s instead" +msgstr "" + +#: ../yum/__init__.py:2563 #, python-format msgid "Package %s already installed and latest version" msgstr "" -#: ../yum/__init__.py:2178 +#: ../yum/__init__.py:2570 #, python-format msgid "Package matching %s already installed. Checking for update." msgstr "" #. update everything (the easy case) -#: ../yum/__init__.py:2220 +#: ../yum/__init__.py:2650 msgid "Updating Everything" msgstr "" -#: ../yum/__init__.py:2304 +#: ../yum/__init__.py:2668 ../yum/__init__.py:2778 ../yum/__init__.py:2799 +#: ../yum/__init__.py:2821 #, python-format -msgid "Package is already obsoleted: %s.%s %s:%s-%s" +msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s" msgstr "" -#: ../yum/__init__.py:2377 +#: ../yum/__init__.py:2703 ../yum/__init__.py:2869 #, python-format msgid "%s" msgstr "" -#: ../yum/__init__.py:2392 +#: ../yum/__init__.py:2769 +#, python-format +msgid "Package is already obsoleted: %s.%s %s:%s-%s" +msgstr "" + +#: ../yum/__init__.py:2802 ../yum/__init__.py:2824 +#, python-format +msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s" +msgstr "" + +#: ../yum/__init__.py:2885 msgid "No package matched to remove" msgstr "" -#: ../yum/__init__.py:2426 +#: ../yum/__init__.py:2919 #, python-format msgid "Cannot open file: %s. Skipping." msgstr "" -#: ../yum/__init__.py:2429 +#: ../yum/__init__.py:2921 #, python-format msgid "Examining %s: %s" msgstr "" -#: ../yum/__init__.py:2436 +#: ../yum/__init__.py:2929 +#, python-format +msgid "Cannot add package %s to transaction. Not a compatible architecture: %s" +msgstr "" + +#: ../yum/__init__.py:2937 #, python-format msgid "" "Package %s not installed, cannot update it. Run yum install to install it " "instead." msgstr "" -#: ../yum/__init__.py:2468 +#: ../yum/__init__.py:2970 #, python-format msgid "Excluding %s" msgstr "" -#: ../yum/__init__.py:2473 +#: ../yum/__init__.py:2974 #, python-format msgid "Marking %s to be installed" msgstr "" -#: ../yum/__init__.py:2479 +#: ../yum/__init__.py:2979 #, python-format msgid "Marking %s as an update to %s" msgstr "" -#: ../yum/__init__.py:2486 +#: ../yum/__init__.py:2984 #, python-format msgid "%s: does not update installed package." msgstr "" -#: ../yum/__init__.py:2504 +#: ../yum/__init__.py:3001 msgid "Problem in reinstall: no package matched to remove" msgstr "" -#: ../yum/__init__.py:2515 +#: ../yum/__init__.py:3012 #, python-format msgid "Package %s is allowed multiple installs, skipping" msgstr "" -#: ../yum/__init__.py:2522 +#: ../yum/__init__.py:3019 msgid "Problem in reinstall: no package matched to install" msgstr "" -#: ../yum/__init__.py:2570 +#: ../yum/__init__.py:3054 #, python-format msgid "Retrieving GPG key from %s" msgstr "" -#: ../yum/__init__.py:2576 +#: ../yum/__init__.py:3074 msgid "GPG key retrieval failed: " msgstr "" -#: ../yum/__init__.py:2589 -msgid "GPG key parsing failed: " +#: ../yum/__init__.py:3085 +#, python-format +msgid "GPG key parsing failed: key does not have value %s" msgstr "" -#: ../yum/__init__.py:2593 +#: ../yum/__init__.py:3117 #, python-format msgid "GPG key at %s (0x%s) is already installed" msgstr "" #. Try installing/updating GPG key -#: ../yum/__init__.py:2598 +#: ../yum/__init__.py:3122 ../yum/__init__.py:3183 #, python-format msgid "Importing GPG key 0x%s \"%s\" from %s" msgstr "" -#: ../yum/__init__.py:2610 +#: ../yum/__init__.py:3138 msgid "Not installing key" msgstr "" -#: ../yum/__init__.py:2616 +#: ../yum/__init__.py:3144 #, python-format msgid "Key import failed (code %d)" msgstr "" -#: ../yum/__init__.py:2619 +#: ../yum/__init__.py:3145 ../yum/__init__.py:3205 msgid "Key imported successfully" msgstr "" -#: ../yum/__init__.py:2624 +#: ../yum/__init__.py:3150 ../yum/__init__.py:3210 #, python-format msgid "" "The GPG keys listed for the \"%s\" repository are already installed but they " @@ -1762,74 +1955,103 @@ msgid "" "Check that the correct key URLs are configured for this repository." msgstr "" -#: ../yum/__init__.py:2633 +#: ../yum/__init__.py:3159 msgid "Import of key(s) didn't help, wrong key(s)?" msgstr "" -#: ../yum/__init__.py:2707 +#: ../yum/__init__.py:3178 +#, python-format +msgid "GPG key at %s (0x%s) is already imported" +msgstr "" + +#: ../yum/__init__.py:3197 +#, python-format +msgid "Not installing key for repo %s" +msgstr "" + +#: ../yum/__init__.py:3204 +msgid "Key import failed" +msgstr "" + +#: ../yum/__init__.py:3294 msgid "Unable to find a suitable mirror." msgstr "" -#: ../yum/__init__.py:2709 +#: ../yum/__init__.py:3296 msgid "Errors were encountered while downloading packages." msgstr "" -#: ../yum/__init__.py:2774 +#: ../yum/__init__.py:3336 +#, python-format +msgid "Please report this error at %s" +msgstr "" + +#: ../yum/__init__.py:3360 msgid "Test Transaction Errors: " msgstr "" #. Mostly copied from YumOutput._outKeyValFill() -#: ../yum/plugins.py:195 +#: ../yum/plugins.py:201 msgid "Loaded plugins: " msgstr "" -#: ../yum/plugins.py:206 +#: ../yum/plugins.py:215 ../yum/plugins.py:221 #, python-format msgid "No plugin match for: %s" msgstr "" -#: ../yum/plugins.py:219 +#: ../yum/plugins.py:251 #, python-format msgid "\"%s\" plugin is disabled" msgstr "" -#: ../yum/plugins.py:231 +#. Give full backtrace: +#: ../yum/plugins.py:263 +#, python-format +msgid "Plugin \"%s\" can't be imported" +msgstr "" + +#: ../yum/plugins.py:270 #, python-format msgid "Plugin \"%s\" doesn't specify required API version" msgstr "" -#: ../yum/plugins.py:235 +#: ../yum/plugins.py:275 #, python-format msgid "Plugin \"%s\" requires API %s. Supported API is %s." msgstr "" -#: ../yum/plugins.py:264 +#: ../yum/plugins.py:308 #, python-format msgid "Loading \"%s\" plugin" msgstr "" -#: ../yum/plugins.py:271 +#: ../yum/plugins.py:315 #, python-format msgid "" "Two or more plugins with the name \"%s\" exist in the plugin search path" msgstr "" -#: ../yum/plugins.py:291 +#: ../yum/plugins.py:335 #, python-format msgid "Configuration file %s not found" msgstr "" #. for #. Configuration files for the plugin not found -#: ../yum/plugins.py:294 +#: ../yum/plugins.py:338 #, python-format msgid "Unable to find configuration file for plugin %s" msgstr "" -#: ../yum/plugins.py:448 +#: ../yum/plugins.py:492 msgid "registration of commands not supported" msgstr "" +#: ../yum/rpmtrans.py:78 +msgid "Repackaging" +msgstr "" + #: ../rpmUtils/oldUtils.py:26 #, python-format msgid "Header cannot be opened or does not match %s, %s." diff --git a/yum-updatesd.py b/yum-updatesd.py index ac05f2b..62af3f1 100644 --- a/yum-updatesd.py +++ b/yum-updatesd.py @@ -257,8 +257,7 @@ class UpdateBuildTransactionThread(threading.Thread): def __init__(self, updd, name): self.updd = updd threading.Thread.__init__(self, name=name) - - def run(self): + def preRun(self,helpDownloadPkgs): self.updd.tsInfo.makelists() try: (result, msgs) = self.updd.buildTransaction() @@ -267,11 +266,17 @@ class UpdateBuildTransactionThread(threading.Thread): self.updd.emitUpdateFailed(msgs) return - dlpkgs = map(lambda x: x.po, filter(lambda txmbr: + self.dlpkgs = map(lambda x: x.po, filter(lambda txmbr: txmbr.ts_state in ("i", "u"), self.updd.tsInfo.getMembers())) - self.updd.downloadPkgs(dlpkgs) - self.processPkgs(dlpkgs) + + self.updd.downloadPkgs1(dlpkgs,helpDownloadPkgs) + return + def run(self,helpDownloadPkgs): + self.updd.downloadPkgs2(helpDownloadPkgs) + def postRun(self): + self.updd.downloadPkgs3() + self.processPkgs(self.dlpkgs) class UpdateDownloadThread(UpdateBuildTransactionThread): @@ -332,7 +337,7 @@ class UpdatesDaemon(yum.YumBase): yum.YumBase.__init__(self) self.opts = opts self.didSetup = False - + self.helpDownloadPkgs=HDP() self.emitters = [] if 'dbus' in self.opts.emit_via: self.emitters.append(DbusUpdateEmitter()) @@ -479,12 +484,30 @@ class UpdatesDaemon(yum.YumBase): self.populateUpdates() if self.opts.do_update: + uit_arr=[] uit = UpdateInstallThread(self) - uit.start() + uit1 = UpdateInstallThread(self) + uit_arr.append(uit) + uit_arr.append(uit1) + uit.preRun(self.helpDownloadPkgs) + uit.start(self.helpDownloadPkgs) + uit1.start(self.helpdownloadPkgs) + for thr in uit_arr: + thr. join() + uit.postRun() elif self.opts.do_download: self.emitDownloading() + dl_arr=[] dl = UpdateDownloadThread(self) - dl.start() + dl1 = UpdateDownloadThread(self) + dl_arr.append(dl) + dl_arr.append(dl1) + dl.preRun(self.helpDownloadPkgs) + dl.start(self.helpDownloadPkgs) + dl1.start(self.helpDownloadPkgs) + for thr in dl_arr: + thr.join() + dl.postRun() else: # just notify about things being available self.emitAvailable() diff --git a/yum/__init__.py b/yum/__init__.py index db3bc1f..f7941fd 100644 --- a/yum/__init__.py +++ b/yum/__init__.py @@ -31,7 +31,7 @@ import logging import logging.config import operator import gzip - +import threading import yum.i18n _ = yum.i18n._ P_ = yum.i18n.P_ @@ -82,7 +82,6 @@ __version_info__ = tuple([ int(num) for num in __version__.split('.')]) # Don't do it at init time, or we'll get multiple additions if you create # multiple YumBase() objects. default_grabber.opts.user_agent += " yum/" + __version__ - class _YumPreBaseConf: """This is the configuration interface for the YumBase configuration. So if you want to change if plugins are on/off, or debuglevel/etc. @@ -101,14 +100,69 @@ class _YumPreBaseConf: self.syslog_ident = None self.syslog_facility = None self.syslog_device = '/dev/log' - - +class HDP: +#HDP HelpDownloadPkgs + threadLock = threading.Lock() + remote_pkgs = [] + remote_size = 0 + errors = {} + beg_download = time.time() + i = 0 + local_size = 0 + pkg_count=0 + pkg_status=[0] + def __init__(self): + pass + def initStatusArray(self): + HDP.pkg_status*=len(HDP.remote_pkgs) + return + def getPackage2Dwd(self,threadCount,isActive): + HDP.threadLock.acquire() + try: + for pkgpoint in range(len(HDP.remote_pkgs)): + if HDP.pkg_status[pkgpoint] is 0: + HDP.pkg_status[pkgpoint]=1 + threadCount=pkgpoint + isActive=1 + break + return (threadCount,isActive) + finally: + HDP.threadLock.release() + def incrPkgCount(self): + HDP.threadLock.acquire() + try: + HDP.pkg_count+=1 + finally: + HDP.threadLock.release() + def incI(self): + HDP.threadLock.acquire() + try: + HDP.i+=1 + return + finally: + HDP.threadLock.release() + + def getPo(self,threadCount): + return HDP.remote_pkgs[threadCount] + def decRemote_size(self,p): + HDP.threadLock.acquire() + try: + HDP.remote_size-=p + return + finally: + HDP.threadLock.release() + def incLocal_size(self,val): + HDP.threadLock.acquire() + try: + HDP.local_size += val + return + finally: + HDP.threadLock.release() class YumBase(depsolve.Depsolve): """This is a primary structure and base class. It houses the objects and methods needed to perform most things in yum. It is almost an abstract class in that you will need to add your own class above it for most real use.""" - def __init__(self): depsolve.Depsolve.__init__(self) self._conf = None @@ -1214,8 +1268,9 @@ class YumBase(depsolve.Depsolve): raise URLGrabError(-1, _('Package does not match checksum')) return 0 - - def downloadPkgs(self, pkglist, callback=None, callback_total=None): + def numberOfPackages(self): + return len(HDP.remote_pkgs) + def downloadPkgs1(self, pkglist,hDP): def mediasort(apo, bpo): # FIXME: we should probably also use the mediaid; else we # could conceivably ping-pong between different disc1's @@ -1236,19 +1291,11 @@ class YumBase(depsolve.Depsolve): """download list of package objects handed to you, output based on callback, raise yum.Errors.YumBaseError on problems""" - - errors = {} - def adderror(po, msg): - errors.setdefault(po, []).append(msg) - self.plugins.run('predownload', pkglist=pkglist) repo_cached = False - remote_pkgs = [] - remote_size = 0 for po in pkglist: if hasattr(po, 'pkgtype') and po.pkgtype == 'local': - continue - + continue local = po.localPkg() if os.path.exists(local): if not self.verifyPkg(local, po, False): @@ -1260,80 +1307,94 @@ class YumBase(depsolve.Depsolve): self.verbose_logger.debug(_("using local copy of %s") %(po,)) continue - remote_pkgs.append(po) - remote_size += po.size + HDP.remote_pkgs.append(po) + HDP.remote_size += po.size # caching is enabled and the package # just failed to check out there's no # way to save this, report the error and return - if (self.conf.cache or repo_cached) and errors: - return errors + if (self.conf.cache or repo_cached) and HDP.errors: + return HDP.errors - - remote_pkgs.sort(mediasort) + hDP.initStatusArray() + HDP.remote_pkgs.sort(mediasort) # This is kind of a hack and does nothing in non-Fedora versions, # we'll fix it one way or anther soon. if (hasattr(urlgrabber.progress, 'text_meter_total_size') and - len(remote_pkgs) > 1): - urlgrabber.progress.text_meter_total_size(remote_size) - beg_download = time.time() - i = 0 - local_size = 0 - for po in remote_pkgs: + len(HDP.remote_pkgs) > 1): + urlgrabber.progress.text_meter_total_size(HDP.remote_size) + return + def downloadPkgs2(self,hDP): + def adderror(po, msg): + HDP.errors.setdefault(po, []).append(msg) + while HDP.pkg_count < len(HDP.pkg_status): + isActive=0 + threadCount=0 + (threadCount,isActive) = hDP.getPackage2Dwd(threadCount,isActive) + if isActive is 0: # no package to download + return # Recheck if the file is there, works around a couple of weird # edge cases. - local = po.localPkg() - i += 1 + local = hDP.getPo(threadCount).localPkg() + hDP.incI() if os.path.exists(local): - if self.verifyPkg(local, po, False): - self.verbose_logger.debug(_("using local copy of %s") %(po,)) - remote_size -= po.size + if self.verifyPkg(local, hDP.getPo(threadCount), False): + self.verbose_logger.debug(_("using local copy of %s") %(hDP.getPo(threadCount),)) + hDP.decRemote_size(hDP.getPo(threadCount).size) if hasattr(urlgrabber.progress, 'text_meter_total_size'): - urlgrabber.progress.text_meter_total_size(remote_size, - local_size) + urlgrabber.progress.text_meter_total_size(HDP.remote_size, + HDP.local_size) + HDP.pkg_status[threadCount]=2 + hDP.incrPkgCount() continue - if os.path.getsize(local) >= po.size: + if os.path.getsize(local) >= hDP.getPo(threadCount).size: os.unlink(local) - checkfunc = (self.verifyPkg, (po, 1), {}) - dirstat = os.statvfs(po.repo.pkgdir) - if (dirstat.f_bavail * dirstat.f_bsize) <= long(po.size): - adderror(po, _('Insufficient space in download directory %s\n' + checkfunc = (self.verifyPkg, (hDP.getPo(threadCount), 1), {}) + dirstat = os.statvfs(hDP.getPo(threadCount).repo.pkgdir) + if (dirstat.f_bavail * dirstat.f_bsize) <= long(hDP.getPo(threadCount).size): + adderror(hDP.getPo(threadCount), _('Insufficient space in download directory %s\n' " * free %s\n" " * needed %s") % - (po.repo.pkgdir, + (hDP.getPo(threadCount).repo.pkgdir, format_number(dirstat.f_bavail * dirstat.f_bsize), - format_number(po.size))) + format_number(hDP.getPo(threadCount).size))) + "set the value at this particular index in remote_pkgs array to 2 or some erronous state" + HDP.pkg_status[threadCount]=2 + hDP.incrPkgCount() continue try: - if i == 1 and not local_size and remote_size == po.size: - text = os.path.basename(po.relativepath) + if HDP.i == 1 and not HDP.local_size and HDP.remote_size == hDP.getPo(threadCount).size: + text = os.path.basename(hDP.getPo(threadCount).relativepath) else: - text = '(%s/%s): %s' % (i, len(remote_pkgs), - os.path.basename(po.relativepath)) - mylocal = po.repo.getPackage(po, + text = '(%s/%s): %s' % (HDP.i, len(HDP.pkg_status), + os.path.basename(hDP.getPo(threadCount).relativepath)) + mylocal = hDP.getPo(threadCount).repo.getPackage(hDP.getPo(threadCount), checkfunc=checkfunc, text=text, - cache=po.repo.http_caching != 'none', + cache=hDP.getPo(threadCount).repo.http_caching != 'none', ) - local_size += po.size + HDP.pkg_status[threadCount]=2 + hDP.incrPkgCount() + hDP.incLocal_size(hDP.getPo(threadCount).size) if hasattr(urlgrabber.progress, 'text_meter_total_size'): - urlgrabber.progress.text_meter_total_size(remote_size, - local_size) + urlgrabber.progress.text_meter_total_size(HDP.remote_size, + HDP.local_size) except Errors.RepoError, e: - adderror(po, str(e)) + adderror(hDP.getPo(threadCount), str(e)) else: - po.localpath = mylocal - if errors.has_key(po): - del errors[po] - - if callback_total is not None and not errors: - callback_total(remote_pkgs, remote_size, beg_download) + hDP.getPo(threadCount).localpath = mylocal + if HDP.errors.has_key(hDP.getPo(threadCount)): + del HDP.errors[hDP.getPo(threadCount)] + return + def downloadPkgs3(self,callback=None, callback_total=None): + if callback_total is not None and not HDP.errors: + callback_total(HDP.remote_pkgs, HDP.remote_size, HDP.beg_download) - self.plugins.run('postdownload', pkglist=pkglist, errors=errors) + self.plugins.run('postdownload', pkglist=HDP.remote_pkgs, errors=HDP.errors) - return errors + return HDP.errors def verifyHeader(self, fo, po, raiseError): """check the header out via it's naevr, internally"""
_______________________________________________ Yum mailing list Yum@xxxxxxxxxxxxxxxxx http://lists.baseurl.org/mailman/listinfo/yum