Building RPMs for FC5
Introduction
To build an RPM you need two things:
- a tarball of your source
- a .spec file describing:
- how to build the tarbal
- what dependencies the build has
- which files (once built) should go into the RPM
- what the RPM contains
- who built it
- ...
- all .spec files are located here
Inspecting an RPM
If you are missing .spec files required to create an RPM, it is possible to extract these from an existing RPM if required:
- to list items within an existing RPM:
- rpm2cpio <package> | cpio -t
General Items to Build
- olibs-glew
- get the latest version of glew
- the downloaded tarball can be used directly
- olibs-ffmpeg
- get the latest version of ffmpegfrom svn
- tar up: tar -cvzf olib-ffmpeg.tar.gz ffmpeg/
- openlibraries
- to create the openlibraries tar file, use make dist
In general:
- place the .spec files in /usr/src/redhat/SPECS
- place the tar files in /usr/src/redhat/SOURCES
- to build, rpmbuild -ba <path to spec file>
Cineplay
- get cineplay .spec file from here
- create tarball containing cineplay and jahwidget sources:
- create a directory e.g. cineplay-1.1
- in cineplay-1.1, create two symbolic links:
- ln -s <path to cinplay source> src
- ln -s <path to jahwidgets> jahwidgets
- tar using -h option to force symbolic links to be followed:
- tar -cvzhf cineplay-1.1.tar.gz cineplay-1.1
- copy tarball to /usr/src/redhat/SOURCES
- in /usr/src/redhat (as root), do:
- rpmbuild -ba SPECS/cineplay.spec
Upload
- upload to repo.jahshaka.org
- once there, run createrepo on all sub-directories
- if only!
- repo.jashaka.org appears to be locked down, and has no applications on it
- need to keep a mirror copy on your local machine
- then, locally, run createreop on i386, i386/SRPMS and SRPMS
- finally, copy the repodata sub-directories into the appropriate places.
