Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

(Note: for puppet managed build hosts: include m_mock)

Info

For info on building iRODS RPMs, click here.

Basic instructions:

Excerpt

1. Setup tree ~/rpmbuild

Code Block
rpmdev-setuptree

or

svn co systems/apps/mock/rpmbuild

2. Populate rpm directory

Code Block
via rpm
rpm -ivh something.src.rpm

or manually copy files into ~/rpmbuild/SOURCES (tar.gz)
Warning

Create a ".rpmmacros" file in your home directory. It should contain the following:

Code Block
%_topdir      %(echo $HOME)/rpmbuild
%_smp_mflags  -j3
%__arch_install_post   /usr/lib/rpm/check-rpaths   /usr/lib/rpm/check-buildroot

This will build in ~/rpmbuild, not in /usr/local/redhat, which is the default and requires root.

3. Edit or create .spec file in ~/rpmbuild/SPECS.

Info

A simple .spec file template can be viewed here, or downloaded here.
A more advanced example, the iRODS .spec file, can be viewed here, or downloaded here.

4. rebuild src.rpm

Code Block
rpmbuild -bs --nodeps ~/rpmbuild/SPECS/something.spec
Warning

Make sure your user is in the 'mock' group so you don't get prompted to build as root. Usually, if you have to build an RPM as root, something is wrong.

5. rebuild rpm using mock

Code Block
mock --rebuild ~/rpmbuild/SRPMS/something-X.Y.Z.src.rpm

Links (for further info/more details):

http://fedoraproject.org/wiki/Docs/Drafts/BuildingPackagesGuide

https://fedoraproject.org/wiki/Rpmdevtools

https://fedoraproject.org/wiki/Packaging/Guidelines

https://fedoraproject.org/wiki/PackageMaintainers/MockTricks

https://fedoraproject.org/wiki/Packaging/ScriptletSnippets