Getting the latest source code
XFS Released/Stable source
- Mainline kernels
- XFS has been maintained in the official Linux kernel kernel trees starting with Linux 2.4 and is frequently updated with the latest stable fixes and features from the SGI XFS development team.
- Vendor kernels
- All modern Linux distributions include support for XFS. SGI actively works with SUSE to provide a supported version of XFS in that distribution.
- XFS userspace
- Sgi also provides source code tarballs of the xfs userspace tools. These tarballs form the basis of the xfsprogs packages found in Linux distributions.
Development and bleeding edge Development
Note: there are also XFS git repositories on kernel.org for external (i.e. non-Sgi) contributers. Sgi periodically pulls those in to oss.sgi.com. This also means that one or the other may be a bit more current.
Current XFS kernel source
$ git clone git://oss.sgi.com/xfs/xfs
XFS user space tools
git clone git://oss.sgi.com/xfs/cmds/xfsprogs
A few packages are needed to compile xfsprogs, depending on your package manager:
apt-get install libtool automake gettext libblkid-dev uuid-dev yum install libtool automake gettext libblkid-devel libuuid-devel
$ git clone git://oss.sgi.com/xfs/cmds/xfsdump
$ git clone git://oss.sgi.com/xfs/cmds/xfstests
DMAPI user space tools
$ git clone git://oss.sgi.com/xfs/cmds/dmapi
git-cvsimport generated trees
The Git trees are automated mirrored copies of the CVS trees using git-cvsimport. Since git-cvsimport utilized the tool cvsps to recreate the atomic commits of ptools or "mod" it is easier to see the entire change that was committed using git.
Before building in the xfsdump or dmapi directories (after building xfsprogs), you will need to run:
# cd xfsprogs # make install-dev
to create /usr/include/xfs and install appropriate files there.
Before building in the xfstests directory, you will need to run:
# cd xfsprogs # make install-qa
to install a somewhat larger set of files in /usr/include/xfs.
XFS cvs trees
The cvs trees were created using a script that converted sgi's internal ptools repository to a cvs repository, so the cvs trees were considered read only.
At this point all new development is being managed by the git trees thus the cvs trees are no longer active in terms of current development and should only be used for reference.