rpm2html - make an html database from rpm repository

SYNOPSIS

rpm2html [-q][-v][-force][-lang langfile] config-file(s)...

DESCRIPTION

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:

The second point will only be efficient if the actual number of indexed RPMs is important.

Each configuration file is handled independantly 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 ressources provided and needed by the RPM file are stored in a list of ressources. A list of parsed RPMs is also constructed.
  3. Once all the RPM for this config file have been scanned all ressources are dumped in ressources 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.

CONFIGURATION

A configuration file a text file, lines beginning with semicolumns are comments.

global section

The first part is a global section defining some important parameters of rpm2html. Parameters are defined with the syntax:

variable=value [value ...]

Values shouln't be quoted and end up with the end of line.

The folowing variables are supported:

maint

Name of the maintainer of the local mirror, NEEDED !

mail

The E-mail of the maintainer, NEEDED !

html

Dump HTML files, values: true or false, true by default

dir

The directory for for the HTML output

url

The directory part of theURL for the HTML files on the WWW server

rdf

Dump RDF files, values: true or false, false by default

rdf_dir

The directory for for the RDF output

tree

Dump extra tree pages, values: true or false, false by default

directory section(s)

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 !]

NOTE: The special directory name [localbase] extract informations from the RPM base of installed software instead of listing a directory. It allows to dump HTML pages for the installed RPM base on a machine.

name

Name the packages of the subdirectory, NEEDED !

ftp

The base URL to fetch the packages on the origin server.

ftpsrc

The base URL to fetch the packages sources.

color

a color encoding for this directory (#RRGGBB).

url

The directory part of theURL for the HTML files on the WWW server.

subdir

The subdirectory where the HTML files for thsi directory will be saved.

mirror

The nearest mirror for the package. Note: more than one mirror can be listed rpm2html doesn't use the next ones yet, but this will be added soon.

EXAMPLE

Here is a simple configuration file for a distribution exporting packages for various platforms:

;
; Sample configuration file for rpm2html
;

maint=Joe
mail=joe@mydistrib.org

dir=/home/http/html/MyDistrib
url=/Mydistrib

tree=true

rdf=true
rdf_dir=/home/ftp/pub/mydistrib/RDF

[/MyDistrib/RPM/noarch]
name=Arch independant 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

OPERANDS

The following operands are supported: files List of configuration files

EXIT STATUS

The following exit values are returned: 0

Successful completion. >0 An error occurred.

CAVEATS AND BUGS

rpm2html doesn't remove the old html and rdf files if the corresponding RPM file has been removed.

SEE ALSO

rpmfind rpm

AUTHORS

Daniel Veillard, with help from Emanuel Rouat

$Id: manuel.html,v 1.6 2001/07/17 22:50:09 veillard Exp $