rpmerizor |
rpmerizor - build an rpm package from installed files
2.11
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.
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
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
--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
rpm, perl
initial author : Paul Miller
current maintener : Eric Gerbier
url : http://rpmerizor.sourceforge.net/
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.
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
rpmerizor uses the prefix WARNING and ERROR for diagnostics
0 if all is OK
>= 1 if the script detect a problem
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/
it is designed to work with rpm version 4 and greater
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.
to edit the specfile, the code use EDITOR if exists. Else, it use the vi editor
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 |