rpmerizor

NAME

rpmerizor - build an rpm package from installed files

VERSION

2.10

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
   --debug/--nodebug : for rpmerizor debugging/ no debug
   --verbose/--noverbose : better rpm build diagnostics/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
   --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 compatibility with old rpm release (md5)
   --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 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

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 gerbier@users.sourceforge.net

  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