This document describes how to configure and build the open source XFS commands and utilites ("xfsprogs") from source, and how to install and run them. See the README file in the top level directory for details about how to contribute to the XFS project. Linux Instructions ================== 0. If you have the binary rpm, simply install it and skip to step 2 (below). The rpm command to do this is: # rpm -Uvh xfsprogs-*.rpm [and optionally, for the development libraries and headers] # rpm -Uvh xfsprogs-devel-*.rpm The Debian command to do this is: # apt-get install xfsprogs [and optionally, for the development libraries and headers] # apt-get install xfslibs-dev 1. Configure, build and install the package The xfsprogs package uses autoconf/configure and expects a GNU build environment (your platform must at least have both autoconf and gmake). You will also need to have installed either the e2fsprogs-devel package (on an RPM based system) or the uuid-dev package (on a Debian system) as some of the commands make use of the UUID library provided by these. If you just want to spin an RPM and/or tar file, use the Makepkgs script in the top level directory. This will configure and build the package and leave binary and src RPMs in the build/rpm directory. It will also leave a tar file in the build/tar directory. # ./Makepkgs verbose If you want to build the package and install it manually, use the following steps: # make # su root # make install [and optionally, for the development libraries and headers] # make install-dev Note that there are so many "install" variants out there that we wrote our own script (see "install-sh" in the top level directory). If you wish to turn off debugging asserts in the command build and turn on the optimizer then set the shell environment variables: OPTIMIZER=-O1 DEBUG=-DNDEBUG before running make or Makepkgs. Mac OS X Instructions ===================== 0. Note: since there is no XFS implementation on Mac OS X, you are severely limited in what you can do. mkfs.xfs(8), xfs_db(8) and xfs_repair(8) are the only functional tools on this platform, as they do not interact with the XFS kernel code at all. Still, it can be useful to have access to these utilities from Mac OS X in a dual boot configuration, for example. 1. Configure, build and install the package The xfsprogs package uses autoconf/configure and expects a GNU build environment (your platform must at least have both autoconf, make, and glibtool). You will also need to have built and installed the UUID library which is provided by the e2fsprogs source package. Building libuuid: [download; unzip/untar e2fsprogs; cd e2fsprogs] $ ./configure --prefix=/usr --mandir=/usr/share/man $ make lib/ext2fs/ext2_types.h $ cd lib/uuid $ make $ su root # make install [verify that you now have a /usr/lib/libuuid.a] Building xfsprogs: [firstly set these environment variables to these values] TAR=/usr/bin/gnutar LIBTOOL=/usr/bin/glibtool INSTALL_GROUP=wheel LOCAL_CONFIGURE_OPTIONS="--enable-gettext=no" $ make $ su root # make install [and optionally, for the development libraries and headers] # make install-dev IRIX Instructions ================= 0. Note: building this package on IRIX is mainly useful for the XFS developers who want to run purify on some of the tools. Most tools are not functional due to incomplete support for the syssgi and fcntl interfaces that XFS provides and which these tools make extensive use of. 1. Configure, build and install the package The xfsprogs package uses autoconf/configure and expects a GNU build environment which can be obtained by installing a number of freeware packages (gcc, autoconf, libtool, gmake). Even though IRIX provides a set of UUID functions via libc, you still need to have built and installed the UUID library which is provided by the e2fsprogs source package. This is because some difficult to resolve differences exist between the UUID functions and data types, which makes co-existence of these more trouble than its worth at the moment. Follow the instructions above for building and installing libuuid. Building xfsprogs: [firstly set these environment variables to these values] INSTALL_GROUP=sys CC=/usr/freeware/bin/gcc TAR=/usr/freeware/bin/tar MAKE=/usr/freeware/bin/gmake LIBTOOL=/usr/freeware/bin/libtool MSGFMT=/usr/freeware/bin/msgfmt MSGMERGE=/usr/freeware/bin/msgmerge XGETTEXT=/usr/freeware/bin/xgettext $ make $ su root # make install [and optionally, for the development libraries and headers] # make install-dev