On Wed, 2004-03-24 at 18:12 -0500, Brad Smith wrote: > All, > > About six months ago, as the result of a conversation on IRC, I began > playing with the idea of a "tracker" for Fedora: Something to tie > together the many apt and yum repositories out there into a single, > simple to use framework. That's cool, Hi Brad, I took a look through your code, you should hop over to the rpm-python-list: https://lists.dulug.duke.edu/mailman/listinfo/rpm-python-list There are some problems in the code you put together wrt dealing with the package information but nothing that's not fixable. However, I think looking at the code in the createrepo scripts for the new xml metadata would help out a bit. B/c I did a lot of the same stuff in there. > None of the answers to this question that I'd come across were really > satisfactory. They either required me to already have a comprehensive > list of third-party repositories (synaptic) or were too general (google, > rpmfind, etc). So, partly to scratch this itch and partly to teach > myself Python, I started work on a tool for easily indexing and > searching Fedora repositories. > The url is: > > http://academy.phpwebhosting.com/cgi-bin/tracker/tracker.py > The app basically consists of two components: The web-based frontend > allows users to search indexed repositories and submit repos for > indexing. Another tool called tracker-process.py runs as a cron job and > pulls down the headers for each queued repo, storing that info in the > database. > > - Support for repo-side configuration. I would implement this by having > tracker-process.py look for a "tracker.conf" file in the headers or base > directory of a repo. By modifying this file, the administrator of a repo > could specify a list of mirrors for the repository, alter the repository > description, indicate when the repo should be re-indexed, etc. > - Support for updating a repository that has been indexed (see above) > > - Support for storing a list of mirrors for a repository (see above) > > - Support for the proposed common XML-based metadata format > (http://linux.duke.edu/projects/metadata/readme.metadata) This might be a good place to start to make > - Ability to display dependencies (for the life of me I cannot figure > out how to interpret the dependency data in the rpm headers). Any > reference to documentation would be appreciated. rpm-python-list is a good place to go - but also the xml-metadata has that information stored in the primary.xml.gz file - you could just steal the code that extracts that information and shove it into a db instead of into the xml. Or read it from the xml and dump it into a db - probably much easier and faster! > - Improvements to the user interface. For example, currently if a search > yields multiple versions of the same package they are all listed. When I > have some time I'm going to change this so that packages with multiple > versions/architectures are displayed under one package name and only > expanded when the package is selected. You should use the package ID (and md5sum or sha1sum) to unique the packages that are dupes. Again - you can look at the primary.xml.gz to do this too. > - Comment things more thoroughly and convert existing comments to pydoc > or similar just use docstrings in your function defs: def function(): """this is my docstring, there are many others like it but this one is mine""" then you can do pydoc ./myfile and it will print out the docstring :) Maybe jumping on over to a quieter list like rpm-python-list would be an easier discussion forum but I think this could do some very neat things for generating mirror lists for people or autogenerating yum.conf or up2date sources files. -sv