This repository was archived by the owner on Jun 13, 2025. It is now read-only.
jmrenouard/myrpm
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
Usage
MyRPM [OPTION]
MyRPM 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
-i, --nostip : Avoid binary stripping
-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
-o, --optimize : Try to perform a file list optimisation
--sign : GPG Signing RPM package after building
--password : GPG Signing password
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 -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 -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 -v -r /home/jmrenouard/myrpmBuildDir -N toto -V 1.0 -R 1 -b
find /home/jmrenouard/myrpmBuildDir | MyRPM -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 packages all the files /home/jmrenouard/myrpmBuildDir in a package
with toto as name.
MyRPM 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.
GPG signing all rpm file
MyRPM --sign --password=truc *.rpm
Repackage existing configuration
rpm -ql yum | MyRPM -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 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.
Others features as is
This tools handles user and group creation. When building RPM, myrpm
embeds groups and users information and build a package which check
groups and users before installing files.
MyRPM supports also symbolic links so that you can easy substitute
"current" link after install.
MyRPM is proven in production environment can build big RPM easily.
MyRPM supports fuzzy file names such as innner class files generated by
javac.
MyRPM supports pre and post install uninstall scripts.
Configuration file samples
Myrpm tool is an ecology-friendly configurated.
Standard $HOME/.rpmmacros sample
%_topdir /home/jmrenouard/redhat %packager Jean-Marie
Renouard<jmrenouard@gmail.com> %vendor LightPath %vendor_url
http://www.jmrenouard.fr %distribution Red Hat Enterprise 4/5/6
%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>