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