User Tools

Site Tools


fedora_packaging

Back to Developers Page

How to build RPM packages of Tupi

First at all, I want to share with you the resources I was reading before starting my adventure.

A very short version: http://www.ibm.com/developerworks/library/l-rpm1/

A long version: http://fedoraproject.org/wiki/PackageMaintainers/CreatingPackageHowTo

Advices and good hints: http://fedoraproject.org/wiki/Packaging:Guidelines

This experience was done on Fedora 14, following these steps:

- Install the set of tools required to build RPM packages, as root type:

  • yum groupinstall “Development Tools”
  • yum install rpmdevtools

- For security reasons, RPM installers shouldn't be built by root, so try another user. In my case, the user “tupi”:

  • /usr/sbin/useradd tupi

- Log in as user “tupi”:

  • su - tupi

- Set a local environment to build the RPM package:

  • rpmdev-setuptree

A new directory called “rpmbuild” will be created following this structure:

/home/tupi/rpmbuild
/home/tupi/rpmbuild/BUILDROOT
/home/tupi/rpmbuild/SRPMS
/home/tupi/rpmbuild/SPECS
/home/tupi/rpmbuild/RPMS
/home/tupi/rpmbuild/SOURCES
/home/tupi/rpmbuild/BUILD

- Get the Tupi's source code and compress the directory:

- Move the compressed file into the folder “SOURCES”:

  • mv tupi-0.1-5.tar.gz rpmbuild/SOURCES

- To create the RPM installer, it's necessary to write a configuration file with extension “.spec”, in this case tupi.spec. After some failed tries, I finally got a functional version. Make sure you copy this file into the directory “SPECS”:

  • cp tupi.spec rpmbuild/SPECS

- Get in the directory “rpmbuild” and start the packaging process:

  • cd rpmbuild
  • rpmbuild -v -bb –clean SPECS/tupi.spec

If everything goes well, congratulations! you will find the RPM installer into the folder “RPMS”:

  • ls /home/tupi/rpmbuild/RPMS/i686
    • tupi-0.1-5.i686.rpm

If you want to test it, as root type:

  • cd /home/tupi/rpmbuild/RPMS/i686
  • rpm -i tupi-0.1-5.i686.rpm

A short-cut of Tupi will appear in the Graphics section of your Applications menu.

In the case of Fedora 14, I had to run this command additionally, due to SELinux restrictions:

  • chcon -t execmem_exec_t '/usr/bin/tupi.bin'

Note: If you update the Tupi package from Fedora 14, it's very possible that you get the next message when you try to run Tupi: /usr/bin/tupi.bin: error while loading shared libraries: libxvidcore.so.4.2: cannot enable executable stack as shared object requires: Permission denied

To resolve this problem, run these commands as root:

  • execstack -c /usr/lib/libxvidcore.so.4.2
  • execstack -c /usr/lib/libmp3lame.so.0

Back to Developers Page

fedora_packaging.txt · Last modified: 2017/03/11 18:22 (external edit)