The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Usage

myrpm.pl [OPTION]

myrpm.pl is a automatic spec file generator and builder.

Myrpm allow you to install freely software on a rpm compliant system and realize a binary package from a list of file.

This program manages rigths and users. It s a simple tool that simplify packaging in chroot mode.

General Options

 -h, --help                             : Print this help.
 -v, --verbose                          : Print debug information, verbose mode.
 -m, --multiple                         : Split into 3 packages : main, doc and config
 -b, --build                            : Build the package automatically at the end.
 -a, --archive=filename                 : RPM Creation based on a archive file
 -u, --uid=user id or name              : User id for archive file
 -g, --gid=user id or name              : Group id for archive file
 -n, --nodoc                            : Avoid documentation file detection
 -c, --noconfig                         : Avoid config file detection
 -s, --noreserved                       : Avoid reserved directory
 -t, --template=filename                : Generate the spec skeleton from this template.
 -x, --exclude="pattern1,pattern2"      : Exclude some file patterns.
 -r, --root-directory=<directory>       : Root directory ( / by default ).
 -d, --directory=<directory>            : Directory where is the tree to package
                                  by default, list of files is build from the stdin data

Package Options

 -N, --name=<name>                      : Package name - This option is mandatory
 -V, --version=<version>                : Package version - This option is mandatory
 -R, --release=<release>                : Package release - This option is mandatory
 -C, --changelog=<changelog>            : Package changeLog
 -D, --description=<description>        : Package Description.
 -S, --summary=<summary>                : Package Summary.
 -P, --packager=<packager>              : Packager identity.
 -U, --vendor-url=<vendor url>          : Vendor URL.
 -O, --vendor=<vendor>                  : Vendor name.
 -A, --architecture=<archi>             : Target architecture.
 -T, --distribution=<distro>            : Target distribution.
 --requires=<dependency>,...            : Dependency list.
 --build-script=<filename>              : Script filename to include in the %build session.
 --pre-script=<filename>                : Script filename to include in the %pre session.
 --post-script=<filename>               : Script filename to include in the %post session.
 --preun-script=<filename>              : Script filename to include in the %preun session.
 --postun-script=<filename>             : Script filename to include in the %postun session.

Examples

Realize a kick rpm snapshot of /home/jmrenouard/myrpmBuildDir

myrpm.pl -v -d /home/jmrenouard/myrpmBuildDir -r /home/jmrenouard/myrpmBuildDir -N toto -V 1.0 -R 1 -b

An other version

cd /home/jmrenouard/myrpmBuildDir && myrpm.pl -v -d . -r . -N toto -V 1.0 -R 1 -b

The same with UNIX tools interaction

cd /home/jmrenouard/myrpmBuildDir && find `pwd` -iname '*' -print | myrpm.pl -v -r /home/jmrenouard/myrpmBuildDir -N toto -V 1.0 -R 1 -b

find /home/jmrenouard/myrpmBuildDir | myrpm.pl -r /home/jmrenouard/myrpmBuildDir -N toto -V 1.0 -R 1

Explanations

This script performs the following operations :

Find build the list of all the files in /home/jmrenouard/myrpmBuildDir.

myrpm.pl packages all the files /home/jmrenouard/myrpmBuildDir in a package with toto as name.

myrpm.pl consider /home/jmrenouard/myrpmBuildDir as the root of all the files so all this files will be installed from the root file system by the rpm program.

Repackage existing configuration

rpm -ql yum | myrpm.pl -v -N yum -V 2.7 -R 1_jmr -b

Explanations

Rpm gives the list of the files in the yum package installed on the system.

myrpm.pl packages all the files in a package with yum as name and 1_jmr as release.

This is a new way to package modification on a installed system.

Configuration file samples

Myrpm tool is an ecology-friendly configurated.

Standard $HOME/.rpmmacros sample

 %_topdir       /home/jmrenouard/redhat
 %packager      Jean-Marie Renouard<jmrenouard.externe at pagesjaunes.fr>
 %vendor        Pages Jaunes
 %vendor_url    http://www.pagesjaunes.fr
 %distribution  Red Hat Enterprise 4
 %dist_tag      .1
 %_tmppath      /var/tmp

Help to improve this tool

Submit bugs or remarks at http://code.google.com/p/myrpm/issues/list

You can also contact me at Jean-Marie Renouard <jmrenouard at gmail.com>

Documentation française

Usage

myrpm.pl [OPTION]

myrpm.pl est un générateur automatique de fichier spec prêt à l'emploi.

Myrpm vous prmet d'installer des logiciel librement sur un système Linux compatible RPM et de réaliser des paquets RPMs binaires depuis une liste de fichiers.

Ce programme gère les droits et les utilisaterus. C'est un outil simple qui simplifie le packaging en mode non privilégié.

Options générales

 -h, --help                             : Affichage de l'aide en ligne.
 -v, --verbose                          : Mode verbeux, affichage d'information de deboggage.
 -b, --build                            : Compilation automatique du package.
 -a, --archive=filename                 : Création d'un RPM à partir d'une archive
 -u, --uid=user id or name              : Identifiant utilisateur pour l'archive
 -g, --gid=user id or name              : Identifiant de groupe pour l'archive
 -n, --nodoc                            : Annulation de la detection des fichiers de documentation 
 -c, --noconfig                         : Annulation de la detection des fichiers de configuration
 -s, --noreserved                       : Annulation de la detection des repertoires réservés
 -m, --multiple                         : Séparation en 3 packets : principal, doc et config
 -t, --template=filename                : Spécification d'un fichier template aternatif.
 -x, --exclude="pattern1,pattern2"      : Exclusion de certaines formes de fichier.
 -r, --root-directory=<directory>       : Répertoire racine  ( / par défaut ).
 -d, --directory=<directory>            : Répertoire à packager.
                  Par défaut, la liste de fichiers est construite depuis le flux d'entrée standard.

Options du package RPM

 -N, --name=<name>                      : Nom du package - Option obligatoire.
 -V, --version=<version>                : Version du package - Option obligatoire.
 -R, --release=<release>                : Release du package - Option obligatoire.
 -C, --changelog=<changelog>            : ChangeLog du package
 -D, --description=<description>        : Description du package.
 -S, --summary=<summary>                : Résumé du package.
 -P, --packager=<packager>              : Identité du packageur.
 -U, --vendor-url=<vendor url>          : URL du fournisseur.
 -O, --vendor=<vendor>                  : Nom du fournisseur.
 -A, --architecture=<archi>             : Architecture cible.
 -T, --distribution=<distro>            : Distribution cible.
 --requires=<dependency>,...            : Liste des dépendances.
 --build-script=<filename>              : Nom du script à inclure dans la session %build.
 --pre-script=<filename>                : Nom du script à inclure dans la session %pre.
 --post-script=<filename>               : Nom du script à inclure dans la session %post.
 --preun-script=<filename>              : Nom du script à inclure dans la session %preun.
 --postun-script=<filename>             : Nom du script à inclure dans la session %postun.

Exemples

Réalisation rapide d'une image du répertoire /home/jmrenouard/myrpmBuildDir

myrpm.pl -v -d /home/jmrenouard/myrpmBuildDir -r /home/jmrenouard/myrpmBuildDir -N toto -V 1.0 -R 1 -b

Une autre version

cd /home/jmrenouard/myrpmBuildDir && myrpm.pl -v -d . -r . -N toto -V 1.0 -R 1 -b

La même avec des interactions avec les outils UNIX

cd /home/jmrenouard/myrpmBuildDir && find `pwd` -iname '*' -print | myrpm.pl -v -r /home/jmrenouard/myrpmBuildDir -N toto -V 1.0 -R 1 -b

find /home/jmrenouard/myrpmBuildDir | myrpm.pl -r /home/jmrenouard/myrpmBuildDir -N toto -V 1.0 -R 1

Explications

Le script réalise les opérations suivantes :

Find construit la liste de tous les fichiers contenus dans le répertoie /home/jmrenouard/myrpmBuildDir.

myrpm.pl packages tous les fichiers du répertoie /home/jmrenouard/myrpmBuildDir dans le package ayant toto comme nom, 1.0 comme version et 1 comme release.

myrpm.pl considère /home/jmrenouard/myrpmBuildDir comme répertoire root ( / ) si bien que tous les fichiers seront installé à la racine par le programme rpm.

Repackager une configuration existante

rpm -ql yum | myrpm.pl -v -N yum -V 2.7 -R 1_jmr -b

Explications

Rpm donne la liste des fichiers du package Yum installé sur le système.

myrpm.pl packages tous les fichiers de ce package dans un nouveau package avec yum comme nom.

Il s'agit d'un nouveau moyen de packager des modifications depuis un système installé.

Exemple de fichier de configuration

Myrpm utilise le fichier utilisateur pour configurer les valeurs par défaut.

Exemples de $HOME/.rpmmacros standard

 %_topdir       /home/jmrenouard/redhat
 %packager      Jean-Marie Renouard<jmrenouard.externe at pagesjaunes.fr>
 %vendor        Pages Jaunes
 %vendor_url    http://www.pagesjaunes.fr
 %distribution  Red Hat Enterprise 4
 %dist_tag      .1
 %_tmppath      /var/tmp

Aide à l'amélioration du produit

Merci de soumettre les erreurs et les remarques sur http://code.google.com/p/myrpm/issues/list

Vous pouvez contactez Jean-Marie Renouard <jmrenouard at gmail.com> pour plus de détails.

1 POD Error

The following errors were encountered while parsing the POD:

Around line 642:

Non-ASCII character seen before =encoding in 'française'. Assuming CP1252