[yum-cvs] yum-utils yumdownloader.py,1.3,1.4
Gijs Hollestelle
gijs at login.linux.duke.edu
Tue Apr 19 14:27:09 UTC 2005
Update of /home/groups/yum/cvs/yum-utils
In directory login:/tmp/cvs-serv4880
Modified Files:
yumdownloader.py
Log Message:
Added a first version of dep resolving support to yumdownloader
Index: yumdownloader.py
===================================================================
RCS file: /home/groups/yum/cvs/yum-utils/yumdownloader.py,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- yumdownloader.py 10 Apr 2005 06:13:20 -0000 1.3
+++ yumdownloader.py 19 Apr 2005 14:27:07 -0000 1.4
@@ -47,6 +47,8 @@
help='destination directory (defaults to current directory)')
parser.add_option("--urls", default=False, dest="urls", action="store_true",
help='just list the urls it would download instead of downloading')
+ parser.add_option("--resolve", default=False, dest="resolve", action="store_true",
+ help='resolve dependencies and download required packages')
(opts, args) = parser.parse_args()
if len(args) < 1:
parser.print_help()
@@ -55,7 +57,6 @@
def main():
(opts, args) = parseArgs()
- #self.doRpmDBSetup()
my = initYum()
avail = my.pkgSack.returnPackages()
toDownload = {}
@@ -71,6 +72,26 @@
toDownload.setdefault(newpkg.name,[]).append(newpkg.pkgtup)
toDownload = returnBestPackages(toDownload)
+ # If the user supplies to --resolve flag, resolve dependencies for
+ # all packages
+ # note this might require root access because the headers need to be
+ # downloaded into the cachedir (is there a way around this)
+ if opts.resolve:
+ my.doTsSetup()
+ my.localPackages = []
+ # Act as if we were to install the packages in toDownload
+ for x in toDownload:
+ po = my.getPackageObject(x)
+ my.tsInfo.addInstall(po)
+ my.localPackages.append(po)
+ # Resolve dependencies
+ my.resolveDeps()
+ # Add newly added packages to the toDownload list
+ for x in my.tsInfo.getMembers():
+ pkgtup = x.pkgtup
+ if not pkgtup in toDownload:
+ toDownload.append(pkgtup)
+
for pkg in toDownload:
n,a,e,v,r = pkg
packages = my.pkgSack.searchNevra(n,e,v,r,a)
More information about the Yum-cvs-commits
mailing list