GlusterFS 1.3 Building RPMs

From GlusterDocumentation

Jump to: navigation, search

Contents

Building RPMs from a source tarball

Starting with 1.3.pre6 you can build RPM's directly from the source tarball. Simply download the tarball and....

rpmbuild -tb glusterfs-1.3.pre6.tar.gz

This will build your binary RPM files, which will located in your build directory (by default on most rpm distributions in /usr/src/redhat/BUILD/%{arch}/)

Some systems do not have the infiniband libraries required for a standard build of GlusterFS. To build the rpm's without infiniband support (available since 1.3.0), try this command...

rpmbuild -tb glusterfs-1.3.0.tar.gz --without ibverbs

Building RPMs from a spec file

Starting with 1.3.1 you can build RPM's directly from the spec file. Simply download the tarball and...

rpmbuild -ba glusterfs.spec 
 

Before this copy your glusterfs tar ball into /usr/src/redhat/SOURCE/ by default. On all the Redhat distributions.

Some systems if they don't have infiniband libraries required for standard build for GlusterFS. So to build rpm's without infiniband support

rpmbuild -ba glusterfs.spec --without ibverbs

Building RPMs from TLA

  • First get the current TLA (instructions listed on the hackers page).
  • Next I like to make a copy of the TLA folder so I dont muck anything up in the TLA namespace
  • Modify the version number
    • This can be changed by modifying the config.ac file, change the first line from....
AC_INIT([glusterfs],[1.3.pre6],[glusterfs-support@zresearch.com])

... to

AC_INIT([glusterfs],[1.3.tla320],[glusterfs-support@zresearch.com])

An example of the commands I use to achieve this are:

tla update
cd ..
cp -a glusterfs glusterfs-1.3.tla320
cd glusterfs-1.3.tla320
vim configure.ac
# modify the version number to '1.3.tla320'
./autogen.sh
mkdir build
cd build
../configure
make dist
rpmbuild -tb glusterfs-1.3.tla320.tar.gz
cd /usr/src/redhat/BUILD/i386
ls

On my system the last ls command gives this output...

[build@build i386]$ ls
glusterfs-client-1.3.tla320-1.i386.rpm
glusterfs-common-1.3.tla320-1.i386.rpm
glusterfs-debuginfo-1.3.tla320-1.i386.rpm
glusterfs-devel-1.3.tla320-1.i386.rpm
glusterfs-server-1.3.tla320-1.i386.rpm

Package descriptions

glusterfs-common

This package contains all the common objects/files required for the operation of either the client or the server packages. This includes libglusterfs, xlators, schedulers and all the various transport mechanisms.

glusterfs-server

Provides glusterfs server binary.

glusterfs-client

Provides glusterfs client and mount.glusterfs

  • This package requires fuse kernel module and libraries to be installed.

glusterfs-devel

Collection of header files which provide an API description of the internals of GlusterFS. These can be used to create your own translators/schedulers (in the sense to bring more broader functionality into glusterfs).

glusterfs-debuginfo

Automatically generated from rpmbuild

  • Debuginfo binaries are those binaries which are not stripped of with their debugging symbols during their build with -g debugging option.
  • Debuginfo files can be used for mainly for debugging purposes not recommended for the production use.
  • Debuginfo files are usually large in their size as they are not stripped with their debugging symbols.

Experiences

Please add your own experiences below :)

RPMs Build and run fine on CentOS 5 machines
18/july/2006 - tla 2.5 patch 320

Credits

  • Author: Matt Paine
  • Copyright: (C) 2007 Mattsoftware.com
Personal tools