Make an html database from rpm repository
rpm2html [-q][-v][-force][-lang langfile] config-file
Rpm2html tries to solve 2 big problems one face when grabbing a RPM package from a mirror on the net and trying to install it:
-
it gives more information than just the filename before installing the package.
-
it tries to solve the dependency problem by analyzing all the Provides and Requires of the set of RPMs. It shows the cross references by the way of hypertext links.
The second point will only be efficient if the actual number of indexed RPMs is important.
Each configuration file is handled independently as if it was a new invocation of rpm2html.
A configuration file represents a list of directories and a ditribution as a whole. All the references between packages listed in the directories of a single config file are marked by hyperlinks in the resulting HTML files. Here is the process leading to the creation of the HTML pages:
1/
The configuration file is parsed, it sets all the default values for rpm2html. Then all the directory entries are parsed and a list of directories to scan is built.
2/
For each directory, the RPM are scanned, the HTML page describing the package is generated immediately.All resources provided and needed by the RPM file are stored in a list of resources. A list of parsed RPMs is also constructed.
3/
Once all the RPM for this config file have been scanned all resources are dumped in resources files with links to the RPM providing them (one could also add the RPM needing them but everything needs libc for example).
4/
The sorted lists of packages are generated by sorting the RPM list for various criteria and general front-end pages are generated unsing the new list order.
5/
The main page is generated with links to the various front-end pages, statistics and description of the packages analyzed.
6/
All the lists are freed and global variables are reset.
rpm2html is now ready to handle the next configuration file.
A configuration file a text file, lines beginning with semicolumns are comments. The first part is a global section defining some important parameters of rpm2html. Parameters are defined with the syntax:
variable=value
Values shouln't be quoted and end up with the end of line
The folowing variables are supported:
maint
The maintainer of the local mirror, NEEDED !
The E-mail of the maintainer, NEEDED !
dir
The directory for for the HTML output, NEEDED !
url
The URL for the HTML files on the WWW server
host
The hostname for the server.
After these variables, one section should be filled for each directory on your system containing RPM files. It starts with the directory filename between brackets:
[The name between brackets is the directory, NEEDED !]
The special directory name [localbase] extract information from the RPM base of installed software instead of listing a directory. It allows one to dump HTML pages for the installed RPM base on a machine.
All the variables defined below until the next directory or the end of file pertain to this directory. Here are the possible variables:
name
A significant name for this mirror, NEEDED !
ftp
The original FTP/HTTP url, NEEDED !
ftpsrc
Where the associated sources are stored
color
Background color for pages
trust
Unused yet
url
The local FTP/HTTP url.
It is possible to indicate other mirrors by adding some mirror=value lines withing the section. The first one will be considered the local one.
Example of configuration files:
; ; Sample configuration file for rpm2html ; maint=Joe [email protected] dir=/home/http/html/MyDistrib url=/Mydistrib tree=true rdf=true rdf_dir=/home/ftp/pub/mydistrib/RDF [/MyDistrib/RPM/noarch] name=Arch independent packages for MyDistrib ftp=ftp://ftp.mydistrib.org/pub/mydistrib/noarch subdir=noarch [/MyDistrib/RPM/i386] name=i386 packages for MyDistrib ftp=ftp://ftp.mydistrib.org/pub/mydistrib/i386 ftpsrc=ftp://ftp.mydistrib.org/pub/mydistrib/srcs color=#e0ffff subdir=i386 mirror=ftp://ftp.mydistrib.org/pub/mydistrib/i386 mirror=ftp://ftp.elsewhere.org/pub/mydistrib/i386 [/MyDistrib/RPM/alpha] name=Alpha packages for MyDistrib ftp=ftp://ftp.mydistrib.org/pub/mydistrib/alpha ftpsrc=ftp://ftp.mydistrib.org/pub/mydistrib/srcs color=#ffe0ff subdir=alpha mirror=ftp://ftp.mydistrib.org/pub/mydistrib/alpha mirror=ftp://ftp.elsewhere.org/pub/mydistrib/alpha [/MyDistrib/RPM/sparc] name=Sparc packages for MyDistrib ftp=ftp://ftp.mydistrib.org/pub/mydistrib/sparc ftpsrc=ftp://ftp.mydistrib.org/pub/mydistrib/srcs color=#ffffe0 subdir=sparc [/MyDistrib/RPM/ppc] name=PPC packages for MyDistrib ftp=ftp://ftp.mydistrib.org/pub/mydistrib/ppc ftpsrc=ftp://ftp.mydistrib.org/pub/mydistrib/srcs color=#e0ffe0 subdir=ppc mirror=ftp://ftp.mydistrib.org/pub/mydistrib/ppc mirror=ftp://ftp.pear.com/pub/mydistrib/ppc
The following operands are supported:
files
List of configuration files
The following exit values are returned:
0
Successful completion.
>0
An error occurred.
rpm(1),