Getting the latest source code: Difference between revisions

From xfs.org
New page: = <font face="ARIAL NARROW,HELVETICA"> XFS: Source Code </font> = There are several ways to access the current XFS code. * '''Mainline kernels'''<br /> XFS has been maintained in the off...
 
Update current XFS kernel source git URL
 
(26 intermediate revisions by 12 users not shown)
Line 1: Line 1:
= <font face="ARIAL NARROW,HELVETICA"> XFS: Source Code </font> =
== <font face="ARIAL NARROW,HELVETICA"> XFS Released/Stable source </font> ==


There are several ways to access the current XFS code.
Note: as of September 2016, the XFS project is moving away from oss.sgi.com infrastructure. As we move to other infrastructure the links below will be updated to point to the new locations.


* '''Mainline kernels'''<br /> XFS has been maintained in the official Linux kernel [http://www.kernel.org/ kernel trees] starting with Linux 2.4 and is frequently updated with the latest stable fixes and features from the SGI XFS development team.
* '''Mainline kernels'''
:XFS has been maintained in the official Linux kernel [http://www.kernel.org/ kernel trees] starting with [http://lkml.org/lkml/2003/12/8/35 Linux 2.4] and is frequently updated with the latest stable fixes and features from the XFS development team.


* '''Vendor kernels'''<br /> All modern Linux distributions include support for XFS. SGI actively works with [http://www.suse.com/  SUSE] to provide a supported version of XFS in that distribution.
* '''Vendor kernels'''
:All modern Linux distributions include support for XFS.  


* '''XFS userspace'''<br /> Sgi also provides [ftp://oss.sgi.com/projects/xfs source code taballs] of the xfs userspace tools. These tarballs form the basis of the xfsprogs packages found in Linux distributions.
* '''XFS userspace'''
:[https://kernel.org/pub/linux/utils/fs/xfs source code tarballs] of the xfs userspace tools. These tarballs form the basis of the xfsprogs packages found in Linux distributions.


* '''CVS web'''<br /> Browse the XFS source trees.
== <font face="ARIAL NARROW,HELVETICA"> Development and bleeding edge Development </font> ==
** [http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/ 2.6.x-xfs]
** [http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-cmds/ xfs-cmds]


* '''CVS trees'''<br /> Direct CVS access to the most recent XFS changes. See below.
* [[XFS git howto]]


== <font face="ARIAL NARROW,HELVETICA"> Using CVS trees </font> ==
=== Current XFS kernel source ===


The cvs trees are automated mirrors of the SGI internal ptools manage source trees.
* [https://git.kernel.org/pub/scm/fs/xfs/xfs-linux.git xfs]


[http://www.cvshome.org/new_users.html CVS for new users] contains links to general CVS documentation.
$ git clone git://git.kernel.org/pub/scm/fs/xfs/xfs-linux.git


Set the CVSROOT environment variable.
=== XFS user space tools ===
* [https://git.kernel.org/cgit/fs/xfs/xfsprogs-dev.git/ xfsprogs ]


{| width="100%" cellspacing="2"
git clone git://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git
| bgcolor="#DFDFDF" | <br /><tt>$ export CVSROOT=':pserver:cvs@oss.sgi.com:/cvs'</tt><br /><tt>''(for sh, bash, ksh, or similar shells)''</tt><br /><tt>$ setenv CVSROOT  :pserver:cvs@oss.sgi.com:/cvs</tt><br /><tt>''(for csh or tcsh shells)''</tt><br />
|}


Login to the CVS server (this only needs to be done ONCE, not every time you access CVS).
A few packages are needed to compile <tt>xfsprogs</tt>, depending on your package manager:


{| width="100%" cellspacing="2"
apt-get install libtool automake gettext libblkid-dev uuid-dev pkg-config
| bgcolor="#DFDFDF" | <br /><tt>$ cvs login</tt><br />''(the password is "''cvs''")''<br />
yum    install libtool automake gettext libblkid-devel libuuid-devel
|}


Now grab the XFS source tree(s) of interest:
=== XFS dump ===
* [https://git.kernel.org/cgit/fs/xfs/xfsdump-dev.git/ xfsdump ]


{| width="100%" cellspacing="2"
git clone git://git.kernel.org/pub/scm/fs/xfs/xfsdump-dev.git
| bgcolor="#DFDFDF" | <br /><tt>$ cvs checkout linux-2.6-xfs</tt><br /><tt>$ cvs checkout xfs-cmds</tt><br />
|}


Subsequently, you can checkout new code using:
=== XFS tests ===
* [https://git.kernel.org/cgit/fs/xfs/xfstests-dev.git/ xfstests ]


{| width="100%" cellspacing="2"
git clone git://git.kernel.org/pub/scm/fs/xfs/xfstests-dev.git
| bgcolor="#DFDFDF" | <br /><tt>$ cvs update -d</tt><br />
|}


== <font face="ARIAL NARROW,HELVETICA"> Using GIT trees </font> ==
=== DMAPI user space tools ===
* [https://git.kernel.org/cgit/fs/xfs/dmapi-dev.git/ dmapi ]


The Git trees are automated mirrored copied of the cvs trees using git-cvsimport.
git clone git://git.kernel.org/pub/scm/fs/xfs/dmapi-dev.git
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.


git-cvsimport generated trees.
=== git-cvsimport generated trees ===
* [http://oss.sgi.com/cgi-bin/gitweb.cgi?p=linux-2.6-xfs-from-cvs/.git;a=summary linux-2.6-xfs-from-cvs]
* [http://oss.sgi.com/cgi-bin/gitweb.cgi?p=xfs-cmds/.git;a=summary xfs-cmds]
Changes headed for the main linux 2.6 tree, manual merges.
* [http://oss.sgi.com/cgi-bin/gitweb.cgi?p=xfs/xfs-2.6.git;a=summary xfs-2.6]


Cloning the git trees for local use:
The Git trees are automated mirrored copies of the CVS trees using [http://www.kernel.org/pub/software/scm/git/docs/git-cvsimport.html git-cvsimport].
{| width="100%" cellspacing="1"
Since git-cvsimport utilized the tool [http://www.cobite.com/cvsps/ cvsps] to recreate the atomic commits of ptools or "mod" it is easier to see the entire change that was committed using git.
| bgcolor="#DFDFDF" | <br />
 
<tt>$git clone git://oss.sgi.com/linux-2.6-xfs-from-cvs</tt><br />
* [http://oss.sgi.com/cgi-bin/gitweb.cgi?p=archive/xfs-import.git;a=summary linux-2.6-xfs-from-cvs]
<tt>$git clone git://oss.sgi.com/xfs-cmds</tt><br />
* [http://oss.sgi.com/cgi-bin/gitweb.cgi?p=archive/xfs-cmds.git;a=summary xfs-cmds]
<tt>$git clone git://oss.sgi.com/xfs/xfs-2.6</tt><br />
 
|}
Before building in the <tt>xfsdump</tt> or <tt>dmapi</tt> directories (after building <tt>xfsprogs</tt>), you will need to run:
  # cd xfsprogs
  # make install-dev
to create <tt>/usr/include/xfs</tt> 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 <tt>/usr/include/xfs</tt>.
 
== <font face="ARIAL NARROW,HELVETICA">XFS cvs trees </font> ==
 
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.
 
* [[XFS CVS howto]]

Latest revision as of 09:20, 19 May 2022

XFS Released/Stable source [edit | edit source]

Note: as of September 2016, the XFS project is moving away from oss.sgi.com infrastructure. As we move to other infrastructure the links below will be updated to point to the new locations.

  • 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 XFS development team.
  • Vendor kernels
All modern Linux distributions include support for XFS.
  • XFS userspace
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 [edit | edit source]

Current XFS kernel source[edit | edit source]

$ git clone git://git.kernel.org/pub/scm/fs/xfs/xfs-linux.git

XFS user space tools[edit | edit source]

git clone git://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git

A few packages are needed to compile xfsprogs, depending on your package manager:

apt-get install libtool automake gettext libblkid-dev uuid-dev pkg-config
yum     install libtool automake gettext libblkid-devel libuuid-devel

XFS dump[edit | edit source]

git clone git://git.kernel.org/pub/scm/fs/xfs/xfsdump-dev.git

XFS tests[edit | edit source]

git clone git://git.kernel.org/pub/scm/fs/xfs/xfstests-dev.git

DMAPI user space tools[edit | edit source]

git clone git://git.kernel.org/pub/scm/fs/xfs/dmapi-dev.git

git-cvsimport generated trees[edit | edit source]

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 [edit | edit source]

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.