rpmerizor

NAME

rpmerizor - build an rpm package from installed files

VERSION

2.11

DESCRIPTION

Rpmerizor is a script that allows you to create an RPM package from installed files. You simply have to specify files on the command line and answering a few interactive questions to fill rpm meta-data (package name, version ...). You can also use it in batch mode with command line options for meta-data.

USAGE

to build an rpm from installed files :

rpmerizor {options} file|dir [file|dir [file|dir]]

to build an rpm from a chrooted directory which contain only the software you want to package

rpmerizor --rootdir directory

REQUIRED ARGUMENTS

Files and directories to include in rpm package
Files are included as they are on their current filesystem.
Only include dirs that should be _owned_ by the package.

Since 2.2 version, giving a directory means giving all
files under it : this is recursive

OPTIONS

--help : show short help text
--man : show full help text
--Version : display rpmerizor version and exit
--show_config : display config from rc and command line options
--debug/--nodebug : for rpmerizor debugging/ no debug
--verbose/--noverbose : verbose rpmbuild diagnostics (for rpm experts)/no diag
--buildall/--nobuildall : build also src.rpm package/build only binary
--edit_spec/--noedit_spec : build spec file and edit it using EDITOR variable
--spec_only/--nospec_only : build spec file and exit
--run [prog]: run program on spec file
--batch/--nobatch : abort program if missing parameter/ ask interactive
--sign/--nosign : sign rpm package with your gpg key / do not sign
--list_group : display the list of available rpm groups
--exclude 'foo[|bar]: give a pattern to exclude some files
--rootdir dir : include all files as chrooted to dir directory. In this
     case, name and version meta-data are guessed from directory name
--compat/--nocompat : build rpm package with digest compatibility for rpm < 4.6.0
--default : fill release and group with default values
--guess/--noguess : guess about all meta data : package name, version ...
--stdin : read file list from stdin. in this case, you have to give all
     meta-data from command line.
--autoreq/--noautoreq : enable/disable auto require and auto provides rpmbuild feature

meta-informations for batch use

--name pack_name: package name
--version number : package version
--release number : package release
--group rpm_group : package group (use --list_group to list all values)
--summary "package summary": short one line description
--description "package description": multi-line description
--buildarch arch : (optionnal) should be one of noarch/i386/i586/x86_64/...
--url http://website : (optionnal) url of project
--packager "your name" : (optionnal) name of rpm packager

DEPENDENCIES

rpm, perl

AUTHOR

initial author : Paul Miller
current maintener :  Eric Gerbier
url : http://rpmerizor.sourceforge.net/

LICENSE AND COPYRIGHT

Copyright (C) 2001 by Paul Miller

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

EXAMPLES

rpmerizor /opt/software /etc/software.conf
will ask for meta informations and build rpm

rpmerizor -buildall /opt/software /etc/software.conf
will ask for meta informations and build rpm and src.rpm

rpmerizor -e /opt/software /etc/software.conf
will ask for meta informations, edit specfile and build rpm

rpmerizor -name software -version 1.0 -release 1 -group rpmerizor \
 -summary "software is ..." -description "software is ... " /opt/software /etc/software.conf
will build rpm without any question (batch mode)

rpmerizor -name software -version 1.0 -default \
 -summary "software is ..." -description "software is ... " /opt/software /etc/software.conf
will build rpm without any question (batch mode), release and group use default value

rpmerizor --spec_only /opt/software /etc/software.conf 
rpmbuild -bb --buildroot=/tmp/rpmerizor_buildroot software.spec
will first build the specfile, then build rpm package from specfile

rpmerizor --exclude 'foo|bar' /opt/software
will package files under /opt/software and exclude all files/directories
which contain 'foo' or 'bar'

rpmerizor --rootdir /tmp/foo-2.0/
will build a package with all files under /tmp/foo-2.0/, but remove 
'/tmp/foo-2.0/' from path
if /tmp/foo-2.0 looks like :
/tmp/foo-2.0
|-- etc
|   `-- foo.conf
`-- usr
    `-- local
        |-- bin
        |   `-- foo.bin
        `-- lib
             `-- foo.so
the rpm package will be named foo, will be version 2.0, release 1
and will contain the files:
 /etc/foo.conf
 /usr/local/bin/foo.bin
 /usr/local/lib/foo.so

rpmerizor --rootdir /tmp/foo-2.0/ --compat
build on fedora 14 (for example) for redhat/centos 4 compatibility

cat list | rpmerizor --stdin --default -name foo --version 1.2b --summary foo --description "toto"
get list of directories/file from a pipe

rpmerizor --guess /opt/software-2.0

rpmerizor --rootdir /tmp/foo-2.0/ --run mybatch.sh
run mybatch.sh on specfile before rpmbuild

DIAGNOSTICS

rpmerizor uses the prefix WARNING and ERROR for diagnostics

EXIT STATUS

0 if all is OK

>= 1 if the script detect a problem

CONFIGURATION

you can use 3 levels of configuration file - global (host) : /etc/rpmerizorc - user : ~/.rpmerizorc - local (by project) : .rpmerizorc

they are loaded in this order : the last config wins ! (but can also be overloaded by program options)

a default rc file is available on /usr/share/doc/rpmerizor/

INCOMPATIBILITIES

it is designed to work with rpm version 4 and greater

BUGS AND LIMITATIONS

you can send your bug reports to eric.gerbier@tutanota.com

if you are using the guess option, rpmerizor guess the package name and version from
the first given directory. summary and description are filled with default comments.

ENVIRONMENT VARIABLES

to edit the specfile, the code use EDITOR if exists. Else, it use the vi editor

SEE ALSO

if you want to build an rpm package from a tar file, which contain a makefile, you should use checkinstall (http://asic-linux.com.mx/~izto/checkinstall/)

if you want to build an rpm package from an already installes rpm package, you should use rpmrebuild (http://rpmrebuild.sourceforge.net/ )

 rpmerizor