|< Day Day Up >|
Recipe 2.12. Customizing Build Options in a Source RPM
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.
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
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
|< Day Day Up >|