Recipe 2.12. Customizing Build Options in a Source RPM

 < Day Day Up > 

2.12.1 Problem

Your site has some unique requirements requiring special non-default features to be built into some applications. Therefore, you want to control the compile-time options in a source RPM and make sure the features you need are built into the application.

2.12.2 Solution

First, download and install the source RPM:

# rpm -ivh samba-3.0.0-15.src.rpm

Then change to the SPECS directory, and open the spec file:

# cd /usr/src/redhat/SPECS # vim samba.spec

Look for the section containing the %configure options:

%configure \          --with-acl-support \          --with-automount \          --with-fhs \ ...

Add or remove your desired configuration options, save and close the spec file, then build your RPM just like in Recipe Recipe 2.11:

# cd /usr/src/redhat/SPECS # rpmbuild -bb tuxpaint.spec

2.12.3 Discussion

Where do you find a list of options? Change to the SOURCES directory, and unpack the source tarball:

# cd /usr/src/redhat/SOURCES # tar xzvf samba-3.0.0.tar.bz2

As mentioned in Recipe 2.11, the source directory on your distribution may be different.

Poke around the unpacked tarball to find the configure script, and run its built-in help command:

# cd /usr/src/redhat/SOURCES/samba-3.0.0/source # ./configure  help 'configure' configure this package to adapt to many kinds of systems ... Optional Packages:   with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]   without-PACKAGE       do not use PACKAGE   with-fhs              Use FHS-compliant paths   with-privated=DIR     Where to put smbpasswd ...

You'll also find the usual jumble of READMEs and howtos. When the %configure directive is customized to your satisfaction, save and close it.

Package maintainers cannot possibly meet the needs of every user. Customizing your source RPMs is a simple way to make sure you get what you want.

The most common reason to customize the build of a source RPM, in these modern times, is to add to or customize your authentication support. There are many different kinds of authentication backends (LDAP, MySQL, BerkeleyDB, PostgreSQL) and many different authentication protocols. It's a good security practice to enable only the options you need.

2.12.4 See Also

  • rpmbuild(8), rpm(8)

  • RPM.org (http://www.rpm.org)

  • Maximum RPM (http://www.rpm.org/max-rpm/index.html)

     < Day Day Up > 


    Linux Cookbook
    Linux Cookbook
    ISBN: 0596006403
    EAN: 2147483647
    Year: 2004
    Pages: 434

    flylib.com © 2008-2017.
    If you may any questions please contact us: flylib@qtcs.net