http://wiki.linux-nfs.org/wiki/index.php?title=Special:Contributions&feed=atom&limit=20&target=Chucklever&year=&month=Linux NFS - User contributions [en]2024-03-28T12:48:04ZFrom Linux NFSMediaWiki 1.16.5http://wiki.linux-nfs.org/wiki/index.php/NFS_over_soft_iWARP_setupNFS over soft iWARP setup2022-06-07T17:33:14Z<p>Chucklever: Create a page for soft iWARP similar to the soft RoCE page</p>
<hr />
<div>Soft iWARP is a software implementation of [https://datatracker.ietf.org/doc/html/rfc5040 RFC 5040], [https://datatracker.ietf.org/doc/html/rfc5041 RFC 5041], and [https://datatracker.ietf.org/doc/html/rfc5042 RFC 5042] that allows RDMA to be used on any Ethernet adapter using TCP. It is available in Linux kernels after 5.4. The following instructions are suitable for most of the latest Linux distributions.<br />
<br />
= Client and Server Common Setup =<br />
* Check for the <code>siw</code> kernel module. If you don't have it, then enable the following Kconfig options and rebuild your kernel<br />
CONFIG_INFINIBAND=y<br />
CONFIG_RDMA_SIW=m<br />
* Install the <code>iproute2</code> package and use the <code>rdma link add</code> command to load the module and start an RDMA interface. If "eth0" is your local Ethernet interface:<br />
[foo@linux-bar ~]$ sudo rdma link add siw0 type siw netdev eth0<br />
[foo@linux-bar ~]$ sudo rdma link<br />
link siw0/1 state ACTIVE physical_state LINK_UP netdev eth0<br />
The siw virtual device does not survive reboots. Add it to system startup scripts so that it is instantiated automatically after every system restart.<br />
== Ping Test ==<br />
* Start an <code>rping</code> server on one machine<br />
[foo@linux-bar ~]$ sudo rping -s -v -C 3<br />
server ping data: rdma-ping-0: ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqr<br />
server ping data: rdma-ping-1: BCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrs<br />
server ping data: rdma-ping-2: CDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrst<br />
server DISCONNECT EVENT...<br />
wait for RDMA_READ_ADV state 10<br />
* Now check that the connection works from another machine<br />
[foo@linux-bor ~]$ sudo rping -c -a 192.168.122.40 -v -C 3<br />
ping data: rdma-ping-0: ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqr<br />
ping data: rdma-ping-1: BCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrs<br />
ping data: rdma-ping-2: CDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrst<br />
client DISCONNECT EVENT...<br />
<br />
= NFS Setup =<br />
== Server ==<br />
* Install the <code>nfs-utils</code> package and enable rdma from <code>/etc/nfs.conf</code> and restart service nfs-server<br />
[foo@linux-bar]$ sudo sed -i '/rdma/{s/^#//; s/rdma=n/rdma=y/}' /etc/nfs.conf<br />
[foo@linux-bar]$ grep -v ^# /etc/nfs.conf<br />
[general]<br />
[exportfs]<br />
[gssd]<br />
use-gss-proxy=1<br />
[lockd]<br />
[mountd]<br />
[nfsdcld]<br />
[nfsdcltrack]<br />
[nfsd]<br />
rdma=y<br />
rdma-port=20049<br />
[statd]<br />
[sm-notify]<br />
[foo@linux-bar]$ sudo mkdir -p /expdir<br />
[foo@linux-bar]$ sudo bash -c 'echo "/expdir *(rw,no_root_squash)" >/etc/exports'<br />
[foo@linux-bar]$ sudo systemctl restart nfs-server<br />
== Client ==<br />
* Install the <code>nfs-utils</code> package and do nfs mount<br />
* Mount the server to check that it worked<br />
[foo@linux-bor]$ sudo mount -o rdma 192.168.122.40:/expdir /mnt/nfsmp<br />
[foo@linux-bor]$ mount | grep proto=rdma<br />
192.168.122.40:/expdir on /mnt/nfsmp type nfs4 (rw,relatime,vers=4.2,rsize=262144,wsize=262144,namlen=255,hard,proto=rdma,port=20049,timeo=600,retrans=2,sec=sys,clientaddr=192.168.122.161,local_lock=none,addr=192.168.122.40)<br />
<br />
= See Also =<br />
* [https://github.com/linux-rdma/rdma-core/blob/master/Documentation/rxe.md Rdma-core's documentation]<br />
* [https://man7.org/linux/man-pages/man8/rdma.8.html The rdma man page]</div>Chuckleverhttp://wiki.linux-nfs.org/wiki/index.php/Main_PageMain Page2022-06-07T17:15:31Z<p>Chucklever: </p>
<hr />
<div>{|{|cellpadding="5" cellspacing="3" class="mainpagetable" width="100%"<br />
|- + <br />
|valign="top" style="padding: .5em 1em 1em; width: 50%"| <br />
'''Development'''<br />
* Mailing lists:<br />
** linux-nfs@vger.kernel.org ([http://marc.info/?l=linux-nfs archive])<br />
** linux-fsdevel@vger.kernel.org ([http://marc.info/?l=linux-fsdevel archive])<br />
** linux-kernel@vger.kernel.org ([http://marc.info/?l=linux-kernel archive])<br />
** defunct pnfs list [http://linux-nfs.org/pipermail/pnfs/ archive]<br />
** defunct nfsv4 list [http://linux-nfs.org/pipermail/nfsv4/ archive]<br />
* IRC: #linux-nfs at oftc.net (mainly for developer chat; questions are better sent to the mailing list)<br />
* Code repositories:<br />
** [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=summary upstream kernel]<br />
** [http://git.linux-nfs.org/?p=steved/nfs-utils.git;a=summary nfs-utils]<br />
** [http://git.linux-nfs.org/?p=steved/rpcbind.git;a=summary rpcbind]<br />
** [http://git.linux-nfs.org/?p=steved/libtirpc.git;a=summary libtirpc]<br />
** [http://git.linux-nfs.org/?p=steved/nfs4-acl-tools.git;a=summary nfs4-acl-tools] Client tools for manipulating NFSv4 ACLs directly.<br />
*** [http://linux-nfs.org/~steved/nfs4-acl-tools/ nfs4-acl-tools tarballs]<br />
* Bugzilla:<br />
** [http://bugzilla.kernel.org bugzilla.kernel.org] for upstream bugs<br />
** [http://bugzilla.linux-nfs.org bugzilla.linux-nfs.org] for out-of-tree projects and other miscellaneous NFS uses<br />
* [https://datatracker.ietf.org/wg/nfsv4 IETF NFSv4 working group]: protocol specifications<br />
* [http://nfsv4bat.org/Documents nfsv4bat.org/Documents]: Bakeathon, Connectathon, and other presentations<br />
* [[Introduction to Linux NFS hacking]]<br />
* [[To do]] (projects looking for volunteers)<br />
* [[Dual-protocol support]]<br />
* [[pNFS Development]]<br />
* [[Cluster Coherent NFS design|Cluster Coherent NFS]]<br />
* [[Nfsd4 server recovery]]<br />
* [http://linux-nfs.org/files/ NFS related files for download]<br />
* [[Peer-to-peer NFS]]<br />
* [[high availability SCSI layout]]<br />
* [[Alternate Data Streams]]<br />
* [[NFS re-export]]<br />
|valign="top"|<br />
'''Documentation'''<br />
* [http://nfs.sourceforge.net/nfs-howto/ NFS Howto]<br />
* [http://nfs.sourceforge.net/ NFS FAQ]<br />
* [[NFSv41_Introduction|NFSv4.1 End user documentation]]<br />
* [[General troubleshooting recommendations]]<br />
* [[Feature Design Documents]]<br />
* [http://nfsworld.blogspot.com/2005/06/using-active-directory-as-your-kdc-for.html Linux, AD, and NetApp filers]<br />
* [https://fedorahosted.org/gss-proxy/wiki/NFS GSS-Proxy]<br />
* [[Reporting bugs]]<br />
* [[Readdir performance results]]<br />
* [[Jenkins CI]]<br />
* [[NFS and FreeIPA]]<br />
* [[pNFS block server setup]]<br />
* [[NFS over SoftRoCE setup]]<br />
* [[NFS over soft iWARP setup]]<br />
'''Testing'''<br />
* [[Connectathon test suite]]<br />
* [[pynfs]]<br />
* [[NFSometer]]: NFS performance measurement tool<br />
* [[NFStest]]: NFS test suite<br />
* [[xfstests]]: xfstests setup & expected output<br />
|}<br />
<br />
[[Old stuff]] (design documents for stalled or completed projects, etc.)</div>Chuckleverhttp://wiki.linux-nfs.org/wiki/index.php/FedFsUtilsTransitionPlanFedFsUtilsTransitionPlan2017-06-19T15:12:22Z<p>Chucklever: Created page with "== Project: fedfs-utils == [ Project Home | News | Downloads | Docs | [[FedFsUtilsMailingList..."</p>
<hr />
<div>== Project: fedfs-utils == <br />
[<br />
[[FedFsUtilsProject|Project Home]] |<br />
[[FedFsUtilsNews|News]] |<br />
[[FedFsUtilsDownloads|Downloads]] |<br />
[[FedFsUtilsDocs|Docs]] |<br />
[[FedFsUtilsMailingLists|Mailing Lists]] |<br />
[[FedFsUtilsSourceControl|Source Control]] |<br />
[[FedFsUtilsIssues|Issues]]<br />
]<br />
----<br />
<br />
==End-Of-Life Plan for fedfs-utils==<br />
<br />
* Since 0.10 is in at least one major enterprise distribution, Chuck Lever will remain available to integrate security fixes and make new minor releases in the 0.10 branch as needed for one to two more years.<br />
* Retire fedfs-utils from upstream mirror distros such as Fedora rawhide.<br />
* Transition utilities such as nfsref and mount.fedfs into nfs-utils, with support for FedFS-style junctions removed.<br />
** nfsref - For managing NFS basic referrals, nfsref can be moved to nfs-utils<br />
** mount.fedfs - To support automatic population of /nfs4, mount.fedfs can be moved to autofs</div>Chuckleverhttp://wiki.linux-nfs.org/wiki/index.php/FedFsUtilsProjectFedFsUtilsProject2017-06-19T15:05:50Z<p>Chucklever: /* Project: fedfs-utils */</p>
<hr />
<div>== Project: fedfs-utils == <br />
[<br />
[[FedFsUtilsProject|Project Home]] |<br />
[[FedFsUtilsNews|News]] |<br />
[[FedFsUtilsDownloads|Downloads]] |<br />
[[FedFsUtilsDocs|Docs]] |<br />
[[FedFsUtilsMailingLists|Mailing Lists]] |<br />
[[FedFsUtilsSourceControl|Source Control]] |<br />
[[FedFsUtilsIssues|Issues]]<br />
]<br />
----<br />
<br />
'''Project Description:''' Linux implementation of Federated File System standard (RFC 7532 and RFC 7533)<br />
<br />
''' License:''' <span class="plainlinks">[http://oss.oracle.com/licenses/GPL-2 GPL-2]</span><br />
<br />
'''End-Of-Life Notice:''' This project is now at the end of its lifespan. New features are no longer being developed. The 0.10 branch of fedfs-utils will continue to be updated as security or compatibility issues arise. There is a [[FedFsUtilsTransitionPlan|plan]] for transitioning some components to other projects.<br />
<br />
== FedFS introduction ==<br />
RFC 5716 introduces the Federated File System (FedFS, for short). FedFS is an extensible standardized mechanism by which system administrators construct a coherent namespace across multiple file servers using ''file system referrals.''<br />
<br />
A file system referral is like a symbolic link to another file system share, but it is not visible to applications. It behaves like an automounted directory where a new file system mount is done when an application first accesses that directory. Today, file system referral mechanisms exist in several network file system protocols.<br />
<br />
Thus FedFS does not require any change to file system protocols or client implementations. FedFS provides its namespace features using referral mechanisms already built in to network file system protocols.<br />
<br />
As a result, FedFS provides network file system namespace configuration to file system clients via network file systems themselves, rather than via side-band protocols like NIS. Clients automatically share a common view of the network file system namespace with no need for individual configuration on each client.<br />
<br />
Currently, the Linux FedFS implementation supports only NFS version 4 referrals. More on NFS version 4 referrals can be found in RFC 3530. FedFS may support other network file system protocols in the future.<br />
<br />
== Package Overview ==<br />
''The code provided in this package is a technology preview. The intent is to provide a full and supported Linux FedFS client and server implementation based on this code. Programming and user interfaces may change significantly for the next few releases.''<br />
<br />
The components in this package are used for managing file system referrals in order to create a global network file system namespace. Installable components include:<br />
<br />
* Components to enable Linux NFS clients to discover and mount FedFS domain roots<br />
* Components to enable Linux NFS servers to participate in FedFS domains<br />
* Tools to manage NFSv4 referrals on Linux NFS servers<br />
* Tools to administer FedFS domains<br />
<br />
The INSTALL file in this distribution explains more about how to build these components, and which of these components to install on what systems.<br />
<br />
== Distribution Information ==<br />
<br />
* [https://fedoraproject.org/wiki/Features/FedFS Fedora Project FedFS page]</div>Chuckleverhttp://wiki.linux-nfs.org/wiki/index.php/FedFsUtilsProjectFedFsUtilsProject2017-06-19T15:05:11Z<p>Chucklever: /* Project: fedfs-utils */</p>
<hr />
<div>== Project: fedfs-utils == <br />
[<br />
[[FedFsUtilsProject|Project Home]] |<br />
[[FedFsUtilsNews|News]] |<br />
[[FedFsUtilsDownloads|Downloads]] |<br />
[[FedFsUtilsDocs|Docs]] |<br />
[[FedFsUtilsMailingLists|Mailing Lists]] |<br />
[[FedFsUtilsSourceControl|Source Control]] |<br />
[[FedFsUtilsIssues|Issues]]<br />
]<br />
----<br />
<br />
'''Project Description:''' Linux implementation of Federated File System standard<br />
<br />
''' License:''' <span class="plainlinks">[http://oss.oracle.com/licenses/GPL-2 GPL-2]</span><br />
<br />
'''End-Of-Life Notice:''' This project is now at the end of its lifespan. New features are no longer being developed. The 0.10 branch of fedfs-utils will continue to be updated as security or compatibility issues arise. There is a [[FedFsUtilsTransitionPlan|plan]] for transitioning some components to other projects.<br />
<br />
== FedFS introduction ==<br />
RFC 5716 introduces the Federated File System (FedFS, for short). FedFS is an extensible standardized mechanism by which system administrators construct a coherent namespace across multiple file servers using ''file system referrals.''<br />
<br />
A file system referral is like a symbolic link to another file system share, but it is not visible to applications. It behaves like an automounted directory where a new file system mount is done when an application first accesses that directory. Today, file system referral mechanisms exist in several network file system protocols.<br />
<br />
Thus FedFS does not require any change to file system protocols or client implementations. FedFS provides its namespace features using referral mechanisms already built in to network file system protocols.<br />
<br />
As a result, FedFS provides network file system namespace configuration to file system clients via network file systems themselves, rather than via side-band protocols like NIS. Clients automatically share a common view of the network file system namespace with no need for individual configuration on each client.<br />
<br />
Currently, the Linux FedFS implementation supports only NFS version 4 referrals. More on NFS version 4 referrals can be found in RFC 3530. FedFS may support other network file system protocols in the future.<br />
<br />
== Package Overview ==<br />
''The code provided in this package is a technology preview. The intent is to provide a full and supported Linux FedFS client and server implementation based on this code. Programming and user interfaces may change significantly for the next few releases.''<br />
<br />
The components in this package are used for managing file system referrals in order to create a global network file system namespace. Installable components include:<br />
<br />
* Components to enable Linux NFS clients to discover and mount FedFS domain roots<br />
* Components to enable Linux NFS servers to participate in FedFS domains<br />
* Tools to manage NFSv4 referrals on Linux NFS servers<br />
* Tools to administer FedFS domains<br />
<br />
The INSTALL file in this distribution explains more about how to build these components, and which of these components to install on what systems.<br />
<br />
== Distribution Information ==<br />
<br />
* [https://fedoraproject.org/wiki/Features/FedFS Fedora Project FedFS page]</div>Chuckleverhttp://wiki.linux-nfs.org/wiki/index.php/FedFsUtilsNewsFedFsUtilsNews2017-06-19T15:04:32Z<p>Chucklever: </p>
<hr />
<div>== Project: fedfs-utils == <br />
[<br />
[[FedFsUtilsProject|Project Home]] |<br />
[[FedFsUtilsNews|News]] |<br />
[[FedFsUtilsDownloads|Downloads]] |<br />
[[FedFsUtilsDocs|Docs]] |<br />
[[FedFsUtilsMailingLists|Mailing Lists]] |<br />
[[FedFsUtilsSourceControl|Source Control]] |<br />
[[FedFsUtilsIssues|Issues]]<br />
]<br />
----<br />
<br />
; [[FedFsUtilsNews/20170619|June 19, 2017]]<br />
: fedfs-utils project has been retired<br />
<br />
; [[FedFsUtilsNews/20120215|February 15, 2012]]<br />
: fedfs-utils project home page moved to wiki.linux-nfs.org<br />
<br />
; [[FedFsUtilsNews/20120206|February 6, 2012]]<br />
: fedfs-utils 0.8.0 release available on git.linux-nfs.org<br />
<br />
; [[FedFsUtilsNews/20111213|December 13, 2011]]<br />
: fedfs-utils 0.7.4 release available on oss.oracle.com<br />
<br />
; [[FedFsUtilsNews/20111111|November 11, 2011]]<br />
: fedfs-utils 0.7.3 release available on oss.oracle.com<br />
<br />
; [[FedFsUtilsNews/20111017|October 17, 2011]]<br />
: fedfs-utils 0.7.2 release available on oss.oracle.com<br />
<br />
; [[FedFsUtilsNews/20110919|September 19, 2011]]<br />
: fedfs-utils 0.7.1 release available on oss.oracle.com<br />
<br />
; [[FedFsUtilsNews/20110903|September 3, 2011]]<br />
: fedfs-utils 0.7.0 release available on oss.oracle.com<br />
<br />
; [[FedFsUtilsNews/20110808|August 8, 2011]]<br />
: fedfs-utils 0.6.5 release available on oss.oracle.com<br />
<br />
; [[FedFsUtilsNews/20110627|June 27, 2011]]<br />
: fedfs-utils 0.6.4 release available on oss.oracle.com<br />
<br />
; [[FedFsUtilsNews/20110606|June 6, 2011]]<br />
: fedfs-utils 0.6.3 release available on oss.oracle.com<br />
<br />
; [[FedFsUtilsNews/20110516|May 16, 2011]]<br />
: fedfs-utils 0.6.2 release available on oss.oracle.com<br />
<br />
; [[FedFsUtilsNews/20110401b|April 1, 2011]]<br />
: fedfs-utils-announce and fedfs-utils-devel mailing lists created<br />
<br />
; [[FedFsUtilsNews/20110401|April 1, 2011]]<br />
: fedfs-utils 0.6.1 release available on oss.oracle.com<br />
<br />
; [[FedFsUtilsNews/20110329|March 29, 2011]]<br />
: fedfs-utils 0.6.0 release available on oss.oracle.com<br />
<br />
; [[FedFsUtilsNews/20110324|March 24, 2011]]<br />
: Creation of fedfs-utils project on oss.oracle.com</div>Chuckleverhttp://wiki.linux-nfs.org/wiki/index.php/FedFsUtilsNews/20170619FedFsUtilsNews/201706192017-06-19T15:04:08Z<p>Chucklever: /* 2017.06.19: fedfs-utils has been retired */</p>
<hr />
<div>== Project: fedfs-utils == <br />
[<br />
[[FedFsUtilsProject|Project Home]] |<br />
[[FedFsUtilsNews|News]] |<br />
[[FedFsUtilsDownloads|Downloads]] |<br />
[[FedFsUtilsDocs|Docs]] |<br />
[[FedFsUtilsMailingLists|Mailing Lists]] |<br />
[[FedFsUtilsSourceControl|Source Control]] |<br />
[[FedFsUtilsIssues|Issues]]<br />
]<br />
----<br />
<br />
==== 2017.06.19: fedfs-utils has been retired ====<br />
<br />
This project is now at the end of its lifespan. New features are no longer being developed. The 0.10 branch of fedfs-utils will continue to be updated as security or compatibility issues arise.<br />
<br />
There is a [[FedFsUtilsTransitionPlan|plan]] for transitioning some components to other projects.</div>Chuckleverhttp://wiki.linux-nfs.org/wiki/index.php/FedFsUtilsNews/20170619FedFsUtilsNews/201706192017-06-19T15:03:21Z<p>Chucklever: /* Project: fedfs-utils */</p>
<hr />
<div>==== 2017.06.19: fedfs-utils has been retired ====<br />
<br />
This project is now at the end of its lifespan. New features are no longer being developed. The 0.10 branch of fedfs-utils will continue to be updated as security or compatibility issues arise.<br />
<br />
There is a [[FedFsUtilsTransitionPlan|plan]] for transitioning some components to other projects.</div>Chuckleverhttp://wiki.linux-nfs.org/wiki/index.php/FedFsUtilsNews/20170619FedFsUtilsNews/201706192017-06-19T15:02:15Z<p>Chucklever: Created page with "== Project: fedfs-utils == [ Project Home | News | Downloads | Docs | [[FedFsUtilsMailingList..."</p>
<hr />
<div>== Project: fedfs-utils == <br />
[<br />
[[FedFsUtilsProject|Project Home]] |<br />
[[FedFsUtilsNews|News]] |<br />
[[FedFsUtilsDownloads|Downloads]] |<br />
[[FedFsUtilsDocs|Docs]] |<br />
[[FedFsUtilsMailingLists|Mailing Lists]] |<br />
[[FedFsUtilsSourceControl|Source Control]] |<br />
[[FedFsUtilsIssues|Issues]]<br />
]<br />
----<br />
<br />
This project is now at the end of its lifespan. New features are no longer being developed. The 0.10 branch of fedfs-utils will continue to be updated as security or compatibility issues arise.<br />
<br />
There is a [[FedFsUtilsTransitionPlan|plan]] for transitioning some components to other projects.</div>Chuckleverhttp://wiki.linux-nfs.org/wiki/index.php/FedFsUtilsNewsFedFsUtilsNews2017-06-19T15:01:40Z<p>Chucklever: /* Project: fedfs-utils */</p>
<hr />
<div>== Project: fedfs-utils == <br />
[<br />
[[FedFsUtilsProject|Project Home]] |<br />
[[FedFsUtilsNews|News]] |<br />
[[FedFsUtilsDownloads|Downloads]] |<br />
[[FedFsUtilsDocs|Docs]] |<br />
[[FedFsUtilsMailingLists|Mailing Lists]] |<br />
[[FedFsUtilsSourceControl|Source Control]] |<br />
[[FedFsUtilsIssues|Issues]]<br />
]<br />
----<br />
<br />
== Project: fedfs-utils == <br />
[<br />
[[FedFsUtilsProject|Project Home]] |<br />
[[FedFsUtilsNews|News]] |<br />
[[FedFsUtilsDownloads|Downloads]] |<br />
[[FedFsUtilsDocs|Docs]] |<br />
[[FedFsUtilsMailingLists|Mailing Lists]] |<br />
[[FedFsUtilsSourceControl|Source Control]] |<br />
[[FedFsUtilsIssues|Issues]]<br />
]<br />
----<br />
<br />
; [[FedFsUtilsNews/20170619|June 19, 2017]]<br />
: fedfs-utils project has been retired<br />
<br />
; [[FedFsUtilsNews/20120215|February 15, 2012]]<br />
: fedfs-utils project home page moved to wiki.linux-nfs.org<br />
<br />
; [[FedFsUtilsNews/20120206|February 6, 2012]]<br />
: fedfs-utils 0.8.0 release available on git.linux-nfs.org<br />
<br />
; [[FedFsUtilsNews/20111213|December 13, 2011]]<br />
: fedfs-utils 0.7.4 release available on oss.oracle.com<br />
<br />
; [[FedFsUtilsNews/20111111|November 11, 2011]]<br />
: fedfs-utils 0.7.3 release available on oss.oracle.com<br />
<br />
; [[FedFsUtilsNews/20111017|October 17, 2011]]<br />
: fedfs-utils 0.7.2 release available on oss.oracle.com<br />
<br />
; [[FedFsUtilsNews/20110919|September 19, 2011]]<br />
: fedfs-utils 0.7.1 release available on oss.oracle.com<br />
<br />
; [[FedFsUtilsNews/20110903|September 3, 2011]]<br />
: fedfs-utils 0.7.0 release available on oss.oracle.com<br />
<br />
; [[FedFsUtilsNews/20110808|August 8, 2011]]<br />
: fedfs-utils 0.6.5 release available on oss.oracle.com<br />
<br />
; [[FedFsUtilsNews/20110627|June 27, 2011]]<br />
: fedfs-utils 0.6.4 release available on oss.oracle.com<br />
<br />
; [[FedFsUtilsNews/20110606|June 6, 2011]]<br />
: fedfs-utils 0.6.3 release available on oss.oracle.com<br />
<br />
; [[FedFsUtilsNews/20110516|May 16, 2011]]<br />
: fedfs-utils 0.6.2 release available on oss.oracle.com<br />
<br />
; [[FedFsUtilsNews/20110401b|April 1, 2011]]<br />
: fedfs-utils-announce and fedfs-utils-devel mailing lists created<br />
<br />
; [[FedFsUtilsNews/20110401|April 1, 2011]]<br />
: fedfs-utils 0.6.1 release available on oss.oracle.com<br />
<br />
; [[FedFsUtilsNews/20110329|March 29, 2011]]<br />
: fedfs-utils 0.6.0 release available on oss.oracle.com<br />
<br />
; [[FedFsUtilsNews/20110324|March 24, 2011]]<br />
: Creation of fedfs-utils project on oss.oracle.com</div>Chuckleverhttp://wiki.linux-nfs.org/wiki/index.php/FedFsUtilsProjectFedFsUtilsProject2017-06-19T14:59:39Z<p>Chucklever: /* Project: fedfs-utils */</p>
<hr />
<div>== Project: fedfs-utils == <br />
[<br />
[[FedFsUtilsProject|Project Home]] |<br />
[[FedFsUtilsNews|News]] |<br />
[[FedFsUtilsDownloads|Downloads]] |<br />
[[FedFsUtilsDocs|Docs]] |<br />
[[FedFsUtilsMailingLists|Mailing Lists]] |<br />
[[FedFsUtilsSourceControl|Source Control]] |<br />
[[FedFsUtilsIssues|Issues]]<br />
]<br />
----<br />
<br />
'''Project Description:''' Linux implementation of Federated File System draft standard<br />
<br />
''' License:''' <span class="plainlinks">[http://oss.oracle.com/licenses/GPL-2 GPL-2]</span><br />
<br />
'''End-Of-Life Notice:''' This project is now at the end of its lifespan. New features are no longer being developed. The 0.10 branch of fedfs-utils will continue to be updated as security or compatibility issues arise. There is a [[FedFsUtilsTransitionPlan|plan]] for transitioning some components to other projects.<br />
<br />
== FedFS introduction ==<br />
RFC 5716 introduces the Federated File System (FedFS, for short). FedFS is an extensible standardized mechanism by which system administrators construct a coherent namespace across multiple file servers using ''file system referrals.''<br />
<br />
A file system referral is like a symbolic link to another file system share, but it is not visible to applications. It behaves like an automounted directory where a new file system mount is done when an application first accesses that directory. Today, file system referral mechanisms exist in several network file system protocols.<br />
<br />
Thus FedFS does not require any change to file system protocols or client implementations. FedFS provides its namespace features using referral mechanisms already built in to network file system protocols.<br />
<br />
As a result, FedFS provides network file system namespace configuration to file system clients via network file systems themselves, rather than via side-band protocols like NIS. Clients automatically share a common view of the network file system namespace with no need for individual configuration on each client.<br />
<br />
Currently, the Linux FedFS implementation supports only NFS version 4 referrals. More on NFS version 4 referrals can be found in RFC 3530. FedFS may support other network file system protocols in the future.<br />
<br />
== Package Overview ==<br />
''The code provided in this package is a technology preview. The intent is to provide a full and supported Linux FedFS client and server implementation based on this code. Programming and user interfaces may change significantly for the next few releases.''<br />
<br />
The components in this package are used for managing file system referrals in order to create a global network file system namespace. Installable components include:<br />
<br />
* Components to enable Linux NFS clients to discover and mount FedFS domain roots<br />
* Components to enable Linux NFS servers to participate in FedFS domains<br />
* Tools to manage NFSv4 referrals on Linux NFS servers<br />
* Tools to administer FedFS domains<br />
<br />
The INSTALL file in this distribution explains more about how to build these components, and which of these components to install on what systems.<br />
<br />
== Distribution Information ==<br />
<br />
* [https://fedoraproject.org/wiki/Features/FedFS Fedora Project FedFS page]</div>Chuckleverhttp://wiki.linux-nfs.org/wiki/index.php/NfsRdmaClient/HomeNfsRdmaClient/Home2014-10-14T20:54:41Z<p>Chucklever: Add link for ffsb</p>
<hr />
<div>== Support for Linux NFS/RDMA Client upstream ==<br />
<br />
=== Goals ===<br />
<br />
Provide maintenance for NFS/RDMA and RPC/RDMA client-side code in the Linux kernel. Support continuous testing of NFS/RDMA feature in upstream Linux kernels. Provide enhancements (see below). Identify resources for supporting server-side code.<br />
<br />
=== Bug tracking ===<br />
<br />
Upstream bug tracking is [http://bugzilla.kernel.org/ here].<br />
<br />
=== Feature planning ===<br />
<br />
Our [https://www.pivotaltracker.com/projects/958376 Pivotal Tracking project] lists individual work items and defines several long-term arcs. At a high level, these include:<br />
* Broad support for a variety of RDMA-capable hardware<br />
* Performance and scalability enhancements<br />
* Support for NFSv4.1<br />
* Observability features that enable distributor support teams and customers to diagnose and address problems<br />
<br />
=== Developer tools ===<br />
<br />
For anyone working directly on Linux NFS/RDMA or RPC/RDMA, please consider the following tools for validating your work.<br />
* cthon04: git://git.linux-nfs.org/projects/steved/cthon04.git<br />
* xfstests: git://oss.sgi.com/xfs/cmds/xfstests<br />
* nfs-o-meter: git://git.linux-nfs.org/projects/dros/nfsometer.git<br />
* [http://codemonkey.org.uk/projects/fsx/ fsx]<br />
* [http://www.iozone.org/ IOzone]<br />
* [http://freecode.com/projects/fio fio]<br />
* Multi-process Linux kernel builds<br />
* [http://downloads.sourceforge.net/project/ffsb/ffsb/ffsb-6.0-rc2/ffsb-6.0-rc2.tar.bz2 ffsb]<br />
<br />
Typically, for testing, the NFS/RDMA server exports a tmpfs or ram disk-based local FS to drive the transport fast enough.<br />
<br />
==== Asking for help ====<br />
<br />
You can find Linux NFS developers at linux-nfs@vger.kernel.org, or in the linux-nfs chatroom at oftc.net.<br />
<br />
=== Submitting patches ===<br />
<br />
Clone the upstream Linux kernel with:<br />
<br />
$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git<br />
<br />
General advice for preparing upstream kernel or nfs-utils patches: see [https://www.kernel.org/doc/Documentation/SubmittingPatches SubmittingPatches].<br />
<br />
It is strongly recommended that patches be compile-tested, tested with sparse, and run by scripts/checkpatch.pl before submission. Patches should be tested with the tools above before submission, though that's not needed if you are posting only for review.<br />
<br />
==== Review ====<br />
<br />
Review is done via e-mail. In the kernel source tree, see Documentation/email-clients.txt for important advice on how to use e-mail to submit patches.<br />
<br />
Label your patches "[RFC ... ]" or "untested" "DO NOT APPLY" or "for review only" so maintainers know the patch is for review and may not be broadly tested yet.<br />
<br />
Submit patches to linux-nfs@vger.kernel.org and linux-rdma@vger.kernel.org for review.<br />
<br />
If you have reviewed a posted patch, reply with a "Reviewed-by:". If you've tested it, reply with a "Tested-by:"<br />
<br />
==== Merge request ====<br />
<br />
When the community feels a client-side patch is ready to be merged, submit the patches again (without "for review" disclaimers) to linux-nfs@vger.kernel.org and linux-rdma@vger.kernel.org, and cc: Anna.Schumaker@netapp.com. Anna will collect ready patches for Trond to merge upstream.<br />
<br />
We are still developing a mechanism for requesting server-side fixes be merged.<br />
<br />
=== Engineering Notes ===<br />
<br />
* [[NfsRdmaClient/MemRegModes|Simplifying memory registration modes]]</div>Chuckleverhttp://wiki.linux-nfs.org/wiki/index.php/FedFsUtilsFedoraPackageFedFsUtilsFedoraPackage2014-07-17T16:50:29Z<p>Chucklever: /* Updating an existing package */</p>
<hr />
<div>== Project: fedfs-utils == <br />
[<br />
[[FedFsUtilsProject|Project Home]] |<br />
[[FedFsUtilsNews|News]] |<br />
[[FedFsUtilsDownloads|Downloads]] |<br />
[[FedFsUtilsDocs|Docs]] |<br />
[[FedFsUtilsMailingLists|Mailing Lists]] |<br />
[[FedFsUtilsSourceControl|Source Control]] |<br />
[[FedFsUtilsIssues|Issues]]<br />
]<br />
----<br />
<br />
== Fedora packaging recipes ==<br />
<br />
==== Set up ====<br />
<br />
Start here:<br />
<br />
https://admin.fedoraproject.org/updates<br />
<br />
See also:<br />
<br />
https://fedoraproject.org/wiki/ReleaseEngineering/Overview<br />
<br />
https://fedoraproject.org/wiki/Join_the_package_collection_maintainers?rd=PackageMaintainers/Join<br />
<br />
and<br />
<br />
https://fedoraproject.org/wiki/Using_the_Koji_build_system<br />
<br />
Install redhat-rpm-config and fedora-packager:<br />
<br />
$ sudo yum install redhat-rpm-config fedora-packager fedora-review<br />
$ fedora-packager-setup<br />
<br />
It asks for an "Export password." This is to protect the certificate before it is imported into a web browser. Web browser use is not required. Note that I will have to do this step every 6 months because the certificate generated by this step will expire.<br />
<br />
Add your user ID to the local system's "mock" group.<br />
<br />
# usermod -a -G mock cel<br />
<br />
After a new branch is created, you may find you are missing a mock config file for a new Fedora release.<br />
<br />
$ fedpkg mock-config > /tmp/mock.cfg<br />
$ sudo mv /tmp/mock.cfg /etc/mock/fedora-20-x86_64.cfg<br />
<br />
Start up ssh agent. If id_rsa is password-protected, enter the appropriate password.<br />
<br />
$ ssh-agent bash<br />
$ ssh-add ~/.ssh/fedora/id_rsa<br />
<br />
The very first time you need to set up a certificate. This cert will have to be copied to all systems you do any packaging work on. The cert expires every so often, and a new one will need to be generated.<br />
<br />
$ fedora-cert -n<br />
<br />
Creates a local ~/.fedora and ~/.fedora.cert which can be copied to other systems.<br />
<br />
This certificate is valid for six months. If any part of the below process fails because your certificate is no longer valid, use:<br />
<br />
$ fedora-cert -v<br />
<br />
If the certificate has expired, fedora-cert will generate a fresh certificate. Your FAS password (used with admin.fedoraproject.org) is needed to complete this process.<br />
<br />
==== Updating an existing package ====<br />
<br />
Looks like we are following this process:<br />
<br />
https://fedoraproject.org/wiki/Package_update_HOWTO<br />
<br />
$ fedpkg clone fedfs-utils<br />
<br />
If you already have a repository, make sure you start out on the master branch.<br />
<br />
$ fedpkg switch-branch master<br />
<br />
It turns out "wget" of a gitweb tarball just doesn't work. I always get an XML blob. Clicking on the link works as expected. So I used my local copy of the fedfs-releases repository instead.<br />
<br />
$ fedpkg new-sources ~/src/fedfs/fedfs-releases/fedfs-utils-0.9.1.tar.gz<br />
<br />
Update the .spec file Version: and Release: tags. When updating a non-master branch, heed the instructions [http://fedoraproject.org/wiki/Packaging:NamingGuidelines#Minor_release_bumps_for_old_branches here] when updating the Release: tag.<br />
<br />
Try out the changes with one or all of these:<br />
<br />
$ fedpkg mockbuild<br />
$ fedpkg local<br />
$ rpmlint fedfs-utils.spec<br />
$ fedpkg lint<br />
$ fedpkg install; fedpkg verify-files<br />
$ fedora-review fedfs-utils<br />
<br />
Fix any problems, then commit and push. Copy the commit message from the change log in the .spec file.<br />
<br />
$ fedpkg commit -p<br />
<br />
Test the commit by recloning the package into /tmp and performing the mockbuild step again. If all is well, request a build:<br />
<br />
$ fedpkg build<br />
<br />
Check the package build status here:<br />
<br />
http://koji.fedoraproject.org/koji/ <br />
<br />
''When are these changes available in rawhide so they can be tested?''<br />
<br />
When you are happy with the changes and the build is working, switch to appropriate stable branches and apply your change there.<br />
<br />
$ git show > /tmp/diff<br />
$ fedpkg switch-branch f19<br />
$ patch -p1 -i /tmp/diff<br />
$ fedpkg diff<br />
$ fedpkg mockbuild<br />
$ fedpkg local<br />
$ fedpkg install; fedpkg verify-files<br />
<br />
After all is well, commit and push, and then build. Copy the commit message from the change log in the .spec file.<br />
<br />
$ fedpkg commit -p<br />
$ fedpkg build<br />
<br />
If this is rawhide, you are done. Note that branches that are still in alpha may also behave like rawhide in that no fedpkg update step is required (the branch isn't using bodhi yet). Check bodhi to see if the branch is listed.<br />
<br />
For branches controlled by bodhi, notify bodhi of the update to get the change into the stable release branches. Your FAS password (used with admin.fedoraproject.org) is needed to complete this process.<br />
<br />
$ fedpkg update<br />
<br />
After a week, if you haven't gained any negative karma, bodhi should let you log into the BUI and push the change to stable, which releases it to the download repositories after a day or two.<br />
<br />
Click on the link in the e-mail. It should take you to a page under<br />
<br />
https://admin.fedoraproject.org/updates<br />
<br />
Be sure to log in (top of the column on the left). Once logged in, you should see a link on the upper right hand side of the page labeled "Mark as stable". Click there.<br />
<br />
==== Setting up a system for Extra Packages for Enterprise Linux (EPEL) package building and testing ====<br />
<br />
External references:<br />
<br />
* http://fedoraproject.org/wiki/EPEL/FAQ<br />
* https://fedoraproject.org/wiki/EPEL<br />
* http://fedoraproject.org/wiki/Packaging:DistTag<br />
<br />
* https://fedoraproject.org/wiki/Packaging:SysVInitScript<br />
<br />
<br />
On Oracle Linux, set up the public yum repo.<br />
<br />
# cd /etc/yum.repos.d<br />
# wget https://public-yum.oracle.com/public-yum-ol6.repo<br />
<br />
# yum update<br />
<br />
Next, install "epel-release" on your EL6 system so that you can install packages from the EPEL repository.<br />
<br />
# rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm<br />
<br />
Now, with epel-release installed, you can install redhat-rpm-config and fedora-packager.<br />
<br />
# yum install redhat-rpm-config fedora-packager<br />
<br />
Start up ssh-agent with the Fedora ssh key. Use the local password.<br />
<br />
$ ssh-agent bash<br />
$ ssh-add ~/.ssh/fedora/id_rsa<br />
<br />
Go into your local Fedora package directory, and bring down a fresh copy of the fedfs-utils package source.<br />
<br />
$ fedpkg clone fedfs-utils<br />
<br />
Switch to the EPEL branch.<br />
<br />
$ fedpkg switch-branch el6<br />
<br />
Make your changes and go to the mockbuild step above.<br />
<br />
<br />
[ these instructions are incomplete ]<br />
<br />
As a final step, a packaging review must be requested. See:<br />
<br />
https://fedoraproject.org/wiki/Package_Review_Process#Contributor</div>Chuckleverhttp://wiki.linux-nfs.org/wiki/index.php/FedFsUtilsFedoraPackageFedFsUtilsFedoraPackage2014-07-17T15:18:54Z<p>Chucklever: Remove references to private passwords</p>
<hr />
<div>== Project: fedfs-utils == <br />
[<br />
[[FedFsUtilsProject|Project Home]] |<br />
[[FedFsUtilsNews|News]] |<br />
[[FedFsUtilsDownloads|Downloads]] |<br />
[[FedFsUtilsDocs|Docs]] |<br />
[[FedFsUtilsMailingLists|Mailing Lists]] |<br />
[[FedFsUtilsSourceControl|Source Control]] |<br />
[[FedFsUtilsIssues|Issues]]<br />
]<br />
----<br />
<br />
== Fedora packaging recipes ==<br />
<br />
==== Set up ====<br />
<br />
Start here:<br />
<br />
https://admin.fedoraproject.org/updates<br />
<br />
See also:<br />
<br />
https://fedoraproject.org/wiki/ReleaseEngineering/Overview<br />
<br />
https://fedoraproject.org/wiki/Join_the_package_collection_maintainers?rd=PackageMaintainers/Join<br />
<br />
and<br />
<br />
https://fedoraproject.org/wiki/Using_the_Koji_build_system<br />
<br />
Install redhat-rpm-config and fedora-packager:<br />
<br />
$ sudo yum install redhat-rpm-config fedora-packager fedora-review<br />
$ fedora-packager-setup<br />
<br />
It asks for an "Export password." This is to protect the certificate before it is imported into a web browser. Web browser use is not required. Note that I will have to do this step every 6 months because the certificate generated by this step will expire.<br />
<br />
Add your user ID to the local system's "mock" group.<br />
<br />
# usermod -a -G mock cel<br />
<br />
After a new branch is created, you may find you are missing a mock config file for a new Fedora release.<br />
<br />
$ fedpkg mock-config > /tmp/mock.cfg<br />
$ sudo mv /tmp/mock.cfg /etc/mock/fedora-20-x86_64.cfg<br />
<br />
Start up ssh agent. If id_rsa is password-protected, enter the appropriate password.<br />
<br />
$ ssh-agent bash<br />
$ ssh-add ~/.ssh/fedora/id_rsa<br />
<br />
The very first time you need to set up a certificate. This cert will have to be copied to all systems you do any packaging work on. The cert expires every so often, and a new one will need to be generated.<br />
<br />
$ fedora-cert -n<br />
<br />
Creates a local ~/.fedora and ~/.fedora.cert which can be copied to other systems.<br />
<br />
This certificate is valid for six months. If any part of the below process fails because your certificate is no longer valid, use:<br />
<br />
$ fedora-cert -v<br />
<br />
If the certificate has expired, fedora-cert will generate a fresh certificate. Your FAS password (used with admin.fedoraproject.org) is needed to complete this process.<br />
<br />
==== Updating an existing package ====<br />
<br />
Looks like we are following this process:<br />
<br />
https://fedoraproject.org/wiki/Package_update_HOWTO<br />
<br />
$ fedpkg clone fedfs-utils<br />
<br />
If you already have a repository, make sure you start out on the master branch.<br />
<br />
$ fedpkg switch-branch master<br />
<br />
It turns out "wget" of a gitweb tarball just doesn't work. I always get an XML blob. Clicking on the link works as expected. So I used my local copy of the fedfs-releases repository instead.<br />
<br />
$ fedpkg new-sources ~/src/fedfs/fedfs-releases/fedfs-utils-0.9.1.tar.gz<br />
<br />
Update the .spec file Version: and Release: tags. When updating a non-master branch, heed the instructions [http://fedoraproject.org/wiki/Packaging:NamingGuidelines#Minor_release_bumps_for_old_branches here] when updating the Release: tag.<br />
<br />
Try out the changes with one or all of these:<br />
<br />
$ fedpkg mockbuild<br />
$ fedpkg local<br />
$ rpmlint fedfs-utils.spec<br />
$ fedpkg lint<br />
$ fedpkg install; fedpkg verify-files<br />
$ fedora-review fedfs-utils<br />
<br />
Fix any problems, then commit and push. Copy the commit message from the change log in the .spec file.<br />
<br />
$ fedpkg commit -p<br />
<br />
Test the commit by recloning the package into /tmp and performing the mockbuild step again. If all is well, request a build:<br />
<br />
$ fedpkg build<br />
<br />
Check the package build status here:<br />
<br />
http://koji.fedoraproject.org/koji/ <br />
<br />
''When are these changes available in rawhide so they can be tested?''<br />
<br />
When you are happy with the changes and the build is working, switch to appropriate stable branches and apply your change there.<br />
<br />
$ git show > /tmp/diff<br />
$ fedpkg switch-branch f19<br />
$ patch -p1 -i /tmp/diff<br />
$ fedpkg diff<br />
$ fedpkg mockbuild<br />
$ fedpkg local<br />
$ fedpkg install; fedpkg verify-files<br />
<br />
After all is well, commit and push, and then build. Copy the commit message from the change log in the .spec file.<br />
<br />
$ fedpkg commit -p<br />
$ fedpkg build<br />
<br />
If this is rawhide, you are done. For non-rawhide branches, you need to notify bodhi of the update to finish the review process and get the change into the stable release branches. Your FAS password (used with admin.fedoraproject.org) is needed to complete this process.<br />
<br />
$ fedpkg update<br />
<br />
After a week, if you haven't gained any negative karma, bodhi should let you log into the BUI and push the change to stable, which releases it to the download repositories after a day or two.<br />
<br />
Click on the link in the e-mail. It should take you to a page under<br />
<br />
https://admin.fedoraproject.org/updates<br />
<br />
Be sure to log in (top of the column on the left). Once logged in, you should see a link on the upper right hand side of the page labeled "Mark as stable". Click there.<br />
<br />
==== Setting up a system for Extra Packages for Enterprise Linux (EPEL) package building and testing ====<br />
<br />
External references:<br />
<br />
* http://fedoraproject.org/wiki/EPEL/FAQ<br />
* https://fedoraproject.org/wiki/EPEL<br />
* http://fedoraproject.org/wiki/Packaging:DistTag<br />
<br />
* https://fedoraproject.org/wiki/Packaging:SysVInitScript<br />
<br />
<br />
On Oracle Linux, set up the public yum repo.<br />
<br />
# cd /etc/yum.repos.d<br />
# wget https://public-yum.oracle.com/public-yum-ol6.repo<br />
<br />
# yum update<br />
<br />
Next, install "epel-release" on your EL6 system so that you can install packages from the EPEL repository.<br />
<br />
# rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm<br />
<br />
Now, with epel-release installed, you can install redhat-rpm-config and fedora-packager.<br />
<br />
# yum install redhat-rpm-config fedora-packager<br />
<br />
Start up ssh-agent with the Fedora ssh key. Use the local password.<br />
<br />
$ ssh-agent bash<br />
$ ssh-add ~/.ssh/fedora/id_rsa<br />
<br />
Go into your local Fedora package directory, and bring down a fresh copy of the fedfs-utils package source.<br />
<br />
$ fedpkg clone fedfs-utils<br />
<br />
Switch to the EPEL branch.<br />
<br />
$ fedpkg switch-branch el6<br />
<br />
Make your changes and go to the mockbuild step above.<br />
<br />
<br />
[ these instructions are incomplete ]<br />
<br />
As a final step, a packaging review must be requested. See:<br />
<br />
https://fedoraproject.org/wiki/Package_Review_Process#Contributor</div>Chuckleverhttp://wiki.linux-nfs.org/wiki/index.php/FedFsUtilsFedoraPackageFedFsUtilsFedoraPackage2014-07-17T15:17:24Z<p>Chucklever: /* Set up */</p>
<hr />
<div>== Project: fedfs-utils == <br />
[<br />
[[FedFsUtilsProject|Project Home]] |<br />
[[FedFsUtilsNews|News]] |<br />
[[FedFsUtilsDownloads|Downloads]] |<br />
[[FedFsUtilsDocs|Docs]] |<br />
[[FedFsUtilsMailingLists|Mailing Lists]] |<br />
[[FedFsUtilsSourceControl|Source Control]] |<br />
[[FedFsUtilsIssues|Issues]]<br />
]<br />
----<br />
<br />
== Fedora packaging recipes ==<br />
<br />
==== Set up ====<br />
<br />
Start here:<br />
<br />
https://admin.fedoraproject.org/updates<br />
<br />
See also:<br />
<br />
https://fedoraproject.org/wiki/ReleaseEngineering/Overview<br />
<br />
https://fedoraproject.org/wiki/Join_the_package_collection_maintainers?rd=PackageMaintainers/Join<br />
<br />
and<br />
<br />
https://fedoraproject.org/wiki/Using_the_Koji_build_system<br />
<br />
Install redhat-rpm-config and fedora-packager:<br />
<br />
$ sudo yum install redhat-rpm-config fedora-packager fedora-review<br />
$ fedora-packager-setup<br />
<br />
It asks for an "Export password." This is to protect the certificate before it is imported into a web browser. Web browser use is not required. Note that I will have to do this step every 6 months because the certificate generated by this step will expire.<br />
<br />
Add your user ID to the local system's "mock" group.<br />
<br />
# usermod -a -G mock cel<br />
<br />
After a new branch is created, you may find you are missing a mock config file for a new Fedora release.<br />
<br />
$ fedpkg mock-config > /tmp/mock.cfg<br />
$ sudo mv /tmp/mock.cfg /etc/mock/fedora-20-x86_64.cfg<br />
<br />
Start up ssh agent. If id_rsa is password-protected, enter the appropriate password.<br />
<br />
$ ssh-agent bash<br />
$ ssh-add ~/.ssh/fedora/id_rsa<br />
<br />
The very first time you need to set up a certificate. This cert will have to be copied to all systems you do any packaging work on. The cert expires every so often, and a new one will need to be generated.<br />
<br />
$ fedora-cert -n<br />
<br />
Creates a local ~/.fedora and ~/.fedora.cert which can be copied to other systems.<br />
<br />
This certificate is valid for six months. If any part of the below process fails because your certificate is no longer valid, use:<br />
<br />
$ fedora-cert -v<br />
<br />
If the certificate has expired, fedora-cert will generate a fresh certificate. Your FAS password (used with admin.fedoraproject.org) is needed to complete this process.<br />
<br />
==== Updating an existing package ====<br />
<br />
Looks like we are following this process:<br />
<br />
https://fedoraproject.org/wiki/Package_update_HOWTO<br />
<br />
$ fedpkg clone fedfs-utils<br />
<br />
If you already have a repository, make sure you start out on the master branch.<br />
<br />
$ fedpkg switch-branch master<br />
<br />
It turns out "wget" of a gitweb tarball just doesn't work. I always get an XML blob. Clicking on the link works as expected. So I used my local copy of the fedfs-releases repository instead.<br />
<br />
$ fedpkg new-sources ~/src/fedfs/fedfs-releases/fedfs-utils-0.9.1.tar.gz<br />
<br />
Update the .spec file Version: and Release: tags. When updating a non-master branch, heed the instructions [http://fedoraproject.org/wiki/Packaging:NamingGuidelines#Minor_release_bumps_for_old_branches here] when updating the Release: tag.<br />
<br />
Try out the changes with one or all of these:<br />
<br />
$ fedpkg mockbuild<br />
$ fedpkg local<br />
$ rpmlint fedfs-utils.spec<br />
$ fedpkg lint<br />
$ fedpkg install; fedpkg verify-files<br />
$ fedora-review fedfs-utils<br />
<br />
Fix any problems, then commit and push. Copy the commit message from the change log in the .spec file.<br />
<br />
$ fedpkg commit -p<br />
<br />
Test the commit by recloning the package into /tmp and performing the mockbuild step again. If all is well, request a build:<br />
<br />
$ fedpkg build<br />
<br />
Check the package build status here:<br />
<br />
http://koji.fedoraproject.org/koji/ <br />
<br />
''When are these changes available in rawhide so they can be tested?''<br />
<br />
When you are happy with the changes and the build is working, switch to appropriate stable branches and apply your change there.<br />
<br />
$ git show > /tmp/diff<br />
$ fedpkg switch-branch f19<br />
$ patch -p1 -i /tmp/diff<br />
$ fedpkg diff<br />
$ fedpkg mockbuild<br />
$ fedpkg local<br />
$ fedpkg install; fedpkg verify-files<br />
<br />
After all is well, commit and push, and then build. Copy the commit message from the change log in the .spec file.<br />
<br />
$ fedpkg commit -p<br />
$ fedpkg build<br />
<br />
If this is rawhide, you are done. For non-rawhide branches, you need to notify bodhi of the update to finish the review process and get the change into the stable release branches. Use the Fedora "mrchuck" password.<br />
<br />
$ fedpkg update<br />
<br />
After a week, if you haven't gained any negative karma, bodhi should let you log into the BUI and push the change to stable, which releases it to the download repositories after a day or two.<br />
<br />
Click on the link in the e-mail. It should take you to a page under<br />
<br />
https://admin.fedoraproject.org/updates<br />
<br />
Be sure to log in (top of the column on the left). Once logged in, you should see a link on the upper right hand side of the page labeled "Mark as stable". Click there.<br />
<br />
==== Setting up a system for Extra Packages for Enterprise Linux (EPEL) package building and testing ====<br />
<br />
External references:<br />
<br />
* http://fedoraproject.org/wiki/EPEL/FAQ<br />
* https://fedoraproject.org/wiki/EPEL<br />
* http://fedoraproject.org/wiki/Packaging:DistTag<br />
<br />
* https://fedoraproject.org/wiki/Packaging:SysVInitScript<br />
<br />
<br />
On Oracle Linux, set up the public yum repo.<br />
<br />
# cd /etc/yum.repos.d<br />
# wget https://public-yum.oracle.com/public-yum-ol6.repo<br />
<br />
# yum update<br />
<br />
Next, install "epel-release" on your EL6 system so that you can install packages from the EPEL repository.<br />
<br />
# rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm<br />
<br />
Now, with epel-release installed, you can install redhat-rpm-config and fedora-packager.<br />
<br />
# yum install redhat-rpm-config fedora-packager<br />
<br />
Start up ssh-agent with the Fedora ssh key. Use the local password.<br />
<br />
$ ssh-agent bash<br />
$ ssh-add ~/.ssh/fedora/id_rsa<br />
<br />
Go into your local Fedora package directory, and bring down a fresh copy of the fedfs-utils package source.<br />
<br />
$ fedpkg clone fedfs-utils<br />
<br />
Switch to the EPEL branch.<br />
<br />
$ fedpkg switch-branch el6<br />
<br />
Make your changes and go to the mockbuild step above.<br />
<br />
<br />
[ these instructions are incomplete ]<br />
<br />
As a final step, a packaging review must be requested. See:<br />
<br />
https://fedoraproject.org/wiki/Package_Review_Process#Contributor</div>Chuckleverhttp://wiki.linux-nfs.org/wiki/index.php/FedFsUtilsDistributionSupportScheduleFedFsUtilsDistributionSupportSchedule2014-07-11T15:06:15Z<p>Chucklever: /* Distribution Support Schedule */</p>
<hr />
<div>== Project: fedfs-utils == <br />
[<br />
[[FedFsUtilsProject|Project Home]] |<br />
[[FedFsUtilsNews|News]] |<br />
[[FedFsUtilsDownloads|Downloads]] |<br />
[[FedFsUtilsDocs|Docs]] |<br />
[[FedFsUtilsMailingLists|Mailing Lists]] |<br />
[[FedFsUtilsSourceControl|Source Control]] |<br />
[[FedFsUtilsIssues|Issues]]<br />
]<br />
----<br />
<br />
== Distribution Support Schedule ==<br />
<br />
=== Enterprise Linux ===<br />
<br />
==== EPEL 6 ====<br />
<br />
Enterprise Linux 6 compatible distributions, including Oracle Linux 6, CentOS 6, and RHEL 6 derive their fedfs-utils support from [https://fedoraproject.org/wiki/EPEL EPEL 6].<br />
<br />
fedfs-utils 0.9.x will be supported in EPEL 6 until EPEL 6's EOL.<br />
<br />
==== EL 7 ====<br />
<br />
Red Hat Enterprise Linux 7 and distributions based on it (Oracle Linux, CentOS) have fedfs-utils 0.10.x as a technology preview.<br />
<br />
=== Fedora ===<br />
<br />
The Fedora release schedule can be found [https://fedoraproject.org/wiki/Schedule here].<br />
<br />
==== Fedora 18 ====<br />
<br />
Fedora 18 reached EOL January 14, 2014. The final release of the fedfs-utils package for Fedora 18 is fedfs-utils-0.9.4.<br />
<br />
==== Fedora 19 ====<br />
<br />
fedfs-utils-0.9.x will be supported in Fedora 19 until Fedora 19's EOL.<br />
<br />
==== Fedora 20 ====<br />
<br />
fedfs-utils-0.10.x will be supported in Fedora 20 until Fedora 20's EOL.<br />
<br />
==== Fedora 21 ====<br />
<br />
fedfs-utils-0.10.x will be supported in Fedora 21 until Fedora 21's EOL.<br />
<br />
==== Rawhide ====<br />
<br />
fedfs-utils-0.10.x is packaged in the current rawhide distribution.<br />
<br />
=== SLES ===<br />
<br />
fedfs-utils in not included in any SUSE Linux Enterprise release yet, though there is a good chance of inclusion in SLE-12 or the first service pack: SLE-12-SP1.<br />
<br />
=== openSUSE ===<br />
<br />
fedfs-utils 0.10.0 is in openSUSE:Factory and so is on track to be in openSUSE:13.2.</div>Chuckleverhttp://wiki.linux-nfs.org/wiki/index.php/FedFsUtilsDistributionSupportScheduleFedFsUtilsDistributionSupportSchedule2014-07-11T15:05:14Z<p>Chucklever: Update information about Enterprise Linux</p>
<hr />
<div>== Project: fedfs-utils == <br />
[<br />
[[FedFsUtilsProject|Project Home]] |<br />
[[FedFsUtilsNews|News]] |<br />
[[FedFsUtilsDownloads|Downloads]] |<br />
[[FedFsUtilsDocs|Docs]] |<br />
[[FedFsUtilsMailingLists|Mailing Lists]] |<br />
[[FedFsUtilsSourceControl|Source Control]] |<br />
[[FedFsUtilsIssues|Issues]]<br />
]<br />
----<br />
<br />
== Distribution Support Schedule ==<br />
<br />
=== Enterprise Linux ===<br />
<br />
==== EPEL 6 ====<br />
<br />
Enterprise Linux 6 compatible distributions, including Oracle Linux 6, CentOS 6, and RHEL 6 derive their fedfs-utils support from [https://fedoraproject.org/wiki/EPEL EPEL 6].<br />
<br />
fedfs-utils 0.9.x will be supported in EPEL 6 until EPEL 6's EOL.<br />
<br />
==== EL 7 ====<br />
<br />
Red Hat Enterprise Linux 7 and distributions based on it (Oracle Linux, CentOS) have fedfs-utils 0.10.x.<br />
<br />
=== Fedora ===<br />
<br />
The Fedora release schedule can be found [https://fedoraproject.org/wiki/Schedule here].<br />
<br />
==== Fedora 18 ====<br />
<br />
Fedora 18 reached EOL January 14, 2014. The final release of the fedfs-utils package for Fedora 18 is fedfs-utils-0.9.4.<br />
<br />
==== Fedora 19 ====<br />
<br />
fedfs-utils-0.9.x will be supported in Fedora 19 until Fedora 19's EOL.<br />
<br />
==== Fedora 20 ====<br />
<br />
fedfs-utils-0.10.x will be supported in Fedora 20 until Fedora 20's EOL.<br />
<br />
==== Fedora 21 ====<br />
<br />
fedfs-utils-0.10.x will be supported in Fedora 21 until Fedora 21's EOL.<br />
<br />
==== Rawhide ====<br />
<br />
fedfs-utils-0.10.x is packaged in the current rawhide distribution.<br />
<br />
=== SLES ===<br />
<br />
fedfs-utils in not included in any SUSE Linux Enterprise release yet, though there is a good chance of inclusion in SLE-12 or the first service pack: SLE-12-SP1.<br />
<br />
=== openSUSE ===<br />
<br />
fedfs-utils 0.10.0 is in openSUSE:Factory and so is on track to be in openSUSE:13.2.</div>Chuckleverhttp://wiki.linux-nfs.org/wiki/index.php/FedFsUtilsDistributionSupportScheduleFedFsUtilsDistributionSupportSchedule2014-07-11T15:03:29Z<p>Chucklever: /* Fedora */</p>
<hr />
<div>== Project: fedfs-utils == <br />
[<br />
[[FedFsUtilsProject|Project Home]] |<br />
[[FedFsUtilsNews|News]] |<br />
[[FedFsUtilsDownloads|Downloads]] |<br />
[[FedFsUtilsDocs|Docs]] |<br />
[[FedFsUtilsMailingLists|Mailing Lists]] |<br />
[[FedFsUtilsSourceControl|Source Control]] |<br />
[[FedFsUtilsIssues|Issues]]<br />
]<br />
----<br />
<br />
== Distribution Support Schedule ==<br />
<br />
=== Enterprise Linux ===<br />
<br />
==== EPEL 6 ====<br />
<br />
Enterprise Linux 6 compatible distributions, including Oracle Linux 6, CentOS 6, and RHEL 6 derive their fedfs-utils support from [https://fedoraproject.org/wiki/EPEL EPEL 6].<br />
<br />
fedfs-utils 0.9.x will be supported in EPEL 6 until EPEL 6's EOL.<br />
<br />
==== EL 7 ====<br />
<br />
Stay tuned for information about fedfs-utils in Red Hat Enterprise Linux 7.<br />
<br />
=== Fedora ===<br />
<br />
The Fedora release schedule can be found [https://fedoraproject.org/wiki/Schedule here].<br />
<br />
==== Fedora 18 ====<br />
<br />
Fedora 18 reached EOL January 14, 2014. The final release of the fedfs-utils package for Fedora 18 is fedfs-utils-0.9.4.<br />
<br />
==== Fedora 19 ====<br />
<br />
fedfs-utils-0.9.x will be supported in Fedora 19 until Fedora 19's EOL.<br />
<br />
==== Fedora 20 ====<br />
<br />
fedfs-utils-0.10.x will be supported in Fedora 20 until Fedora 20's EOL.<br />
<br />
==== Fedora 21 ====<br />
<br />
fedfs-utils-0.10.x will be supported in Fedora 21 until Fedora 21's EOL.<br />
<br />
==== Rawhide ====<br />
<br />
fedfs-utils-0.10.x is packaged in the current rawhide distribution.<br />
<br />
=== SLES ===<br />
<br />
fedfs-utils in not included in any SUSE Linux Enterprise release yet, though there is a good chance of inclusion in SLE-12 or the first service pack: SLE-12-SP1.<br />
<br />
=== openSUSE ===<br />
<br />
fedfs-utils 0.10.0 is in openSUSE:Factory and so is on track to be in openSUSE:13.2.</div>Chuckleverhttp://wiki.linux-nfs.org/wiki/index.php/FedFsUtilsDistributionSupportScheduleFedFsUtilsDistributionSupportSchedule2014-07-11T15:02:29Z<p>Chucklever: Fedora 21 has branched; add "rawhide" as separate section</p>
<hr />
<div>== Project: fedfs-utils == <br />
[<br />
[[FedFsUtilsProject|Project Home]] |<br />
[[FedFsUtilsNews|News]] |<br />
[[FedFsUtilsDownloads|Downloads]] |<br />
[[FedFsUtilsDocs|Docs]] |<br />
[[FedFsUtilsMailingLists|Mailing Lists]] |<br />
[[FedFsUtilsSourceControl|Source Control]] |<br />
[[FedFsUtilsIssues|Issues]]<br />
]<br />
----<br />
<br />
== Distribution Support Schedule ==<br />
<br />
=== Enterprise Linux ===<br />
<br />
==== EPEL 6 ====<br />
<br />
Enterprise Linux 6 compatible distributions, including Oracle Linux 6, CentOS 6, and RHEL 6 derive their fedfs-utils support from [https://fedoraproject.org/wiki/EPEL EPEL 6].<br />
<br />
fedfs-utils 0.9.x will be supported in EPEL 6 until EPEL 6's EOL.<br />
<br />
==== EL 7 ====<br />
<br />
Stay tuned for information about fedfs-utils in Red Hat Enterprise Linux 7.<br />
<br />
=== Fedora ===<br />
<br />
The Fedora release schedule can be found [https://fedoraproject.org/wiki/Schedule here].<br />
<br />
==== Fedora 18 ====<br />
<br />
Fedora 18 reached EOL January 14, 2014. The final release of the fedfs-utils package for Fedora 18 is fedfs-utils-0.9.4.<br />
<br />
==== Fedora 19 ====<br />
<br />
fedfs-utils-0.9.x will be supported in Fedora 19 until Fedora 19's EOL.<br />
<br />
==== Fedora 20 ====<br />
<br />
fedfs-utils-0.10.x will be supported in Fedora 20 until Fedora 20's EOL.<br />
<br />
==== Fedora 21 ====<br />
<br />
fedfs-utils-0.10.x is packaged in the current rawhide distribution.<br />
<br />
==== Rawhide ====<br />
<br />
fedfs-utils-0.10.x is packaged in the current rawhide distribution.<br />
<br />
=== SLES ===<br />
<br />
fedfs-utils in not included in any SUSE Linux Enterprise release yet, though there is a good chance of inclusion in SLE-12 or the first service pack: SLE-12-SP1.<br />
<br />
=== openSUSE ===<br />
<br />
fedfs-utils 0.10.0 is in openSUSE:Factory and so is on track to be in openSUSE:13.2.</div>Chuckleverhttp://wiki.linux-nfs.org/wiki/index.php/FedFsUtilsFedoraPackageFedFsUtilsFedoraPackage2014-06-09T18:32:30Z<p>Chucklever: /* Updating an existing package */</p>
<hr />
<div>== Project: fedfs-utils == <br />
[<br />
[[FedFsUtilsProject|Project Home]] |<br />
[[FedFsUtilsNews|News]] |<br />
[[FedFsUtilsDownloads|Downloads]] |<br />
[[FedFsUtilsDocs|Docs]] |<br />
[[FedFsUtilsMailingLists|Mailing Lists]] |<br />
[[FedFsUtilsSourceControl|Source Control]] |<br />
[[FedFsUtilsIssues|Issues]]<br />
]<br />
----<br />
<br />
== Fedora packaging recipes ==<br />
<br />
==== Set up ====<br />
<br />
Start here:<br />
<br />
https://admin.fedoraproject.org/updates<br />
<br />
See also:<br />
<br />
https://fedoraproject.org/wiki/ReleaseEngineering/Overview<br />
<br />
https://fedoraproject.org/wiki/Join_the_package_collection_maintainers?rd=PackageMaintainers/Join<br />
<br />
and<br />
<br />
https://fedoraproject.org/wiki/Using_the_Koji_build_system<br />
<br />
Install redhat-rpm-config and fedora-packager:<br />
<br />
$ sudo yum install redhat-rpm-config fedora-packager fedora-review<br />
$ fedora-packager-setup<br />
<br />
It asks for an "Export password." This is to protect the certificate before it is imported into a web browser. Web browser use is not required. Note that I will have to do this step every 6 months because the certificate generated by this step will expire.<br />
<br />
Add your user ID to the local system's "mock" group.<br />
<br />
# usermod -a -G mock cel<br />
<br />
After a new branch is created, you may find you are missing a mock config file for a new Fedora release.<br />
<br />
$ fedpkg mock-config > /tmp/mock.cfg<br />
$ sudo mv /tmp/mock.cfg /etc/mock/fedora-20-x86_64.cfg<br />
<br />
Start up ssh agent. Use the local password.<br />
<br />
$ ssh-agent bash<br />
$ ssh-add ~/.ssh/fedora/id_rsa<br />
<br />
The very first time you need to set up a certificate. This cert will have to be copied to all systems you do any packaging work on. The cert expires every so often, and a new one will need to be generated.<br />
<br />
$ fedora-cert -n<br />
<br />
Creates a local ~/.fedora and ~/.fedora.cert which can be copied to other systems.<br />
<br />
This certificate is valid for six months. If any part of the below process fails because your certificate is no longer valid, use:<br />
<br />
$ fedora-cert -v<br />
<br />
If the certificate has expired, fedora-cert will generate a fresh certificate. Your FAS password (used with admin.fedoraproject.org) is needed to complete this process.<br />
<br />
==== Updating an existing package ====<br />
<br />
Looks like we are following this process:<br />
<br />
https://fedoraproject.org/wiki/Package_update_HOWTO<br />
<br />
$ fedpkg clone fedfs-utils<br />
<br />
If you already have a repository, make sure you start out on the master branch.<br />
<br />
$ fedpkg switch-branch master<br />
<br />
It turns out "wget" of a gitweb tarball just doesn't work. I always get an XML blob. Clicking on the link works as expected. So I used my local copy of the fedfs-releases repository instead.<br />
<br />
$ fedpkg new-sources ~/src/fedfs/fedfs-releases/fedfs-utils-0.9.1.tar.gz<br />
<br />
Update the .spec file Version: and Release: tags. When updating a non-master branch, heed the instructions [http://fedoraproject.org/wiki/Packaging:NamingGuidelines#Minor_release_bumps_for_old_branches here] when updating the Release: tag.<br />
<br />
Try out the changes with one or all of these:<br />
<br />
$ fedpkg mockbuild<br />
$ fedpkg local<br />
$ rpmlint fedfs-utils.spec<br />
$ fedpkg lint<br />
$ fedpkg install; fedpkg verify-files<br />
$ fedora-review fedfs-utils<br />
<br />
Fix any problems, then commit and push. Copy the commit message from the change log in the .spec file.<br />
<br />
$ fedpkg commit -p<br />
<br />
Test the commit by recloning the package into /tmp and performing the mockbuild step again. If all is well, request a build:<br />
<br />
$ fedpkg build<br />
<br />
Check the package build status here:<br />
<br />
http://koji.fedoraproject.org/koji/ <br />
<br />
''When are these changes available in rawhide so they can be tested?''<br />
<br />
When you are happy with the changes and the build is working, switch to appropriate stable branches and apply your change there.<br />
<br />
$ git show > /tmp/diff<br />
$ fedpkg switch-branch f19<br />
$ patch -p1 -i /tmp/diff<br />
$ fedpkg diff<br />
$ fedpkg mockbuild<br />
$ fedpkg local<br />
$ fedpkg install; fedpkg verify-files<br />
<br />
After all is well, commit and push, and then build. Copy the commit message from the change log in the .spec file.<br />
<br />
$ fedpkg commit -p<br />
$ fedpkg build<br />
<br />
If this is rawhide, you are done. For non-rawhide branches, you need to notify bodhi of the update to finish the review process and get the change into the stable release branches. Use the Fedora "mrchuck" password.<br />
<br />
$ fedpkg update<br />
<br />
After a week, if you haven't gained any negative karma, bodhi should let you log into the BUI and push the change to stable, which releases it to the download repositories after a day or two.<br />
<br />
Click on the link in the e-mail. It should take you to a page under<br />
<br />
https://admin.fedoraproject.org/updates<br />
<br />
Be sure to log in (top of the column on the left). Once logged in, you should see a link on the upper right hand side of the page labeled "Mark as stable". Click there.<br />
<br />
==== Setting up a system for Extra Packages for Enterprise Linux (EPEL) package building and testing ====<br />
<br />
External references:<br />
<br />
* http://fedoraproject.org/wiki/EPEL/FAQ<br />
* https://fedoraproject.org/wiki/EPEL<br />
* http://fedoraproject.org/wiki/Packaging:DistTag<br />
<br />
* https://fedoraproject.org/wiki/Packaging:SysVInitScript<br />
<br />
<br />
On Oracle Linux, set up the public yum repo.<br />
<br />
# cd /etc/yum.repos.d<br />
# wget https://public-yum.oracle.com/public-yum-ol6.repo<br />
<br />
# yum update<br />
<br />
Next, install "epel-release" on your EL6 system so that you can install packages from the EPEL repository.<br />
<br />
# rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm<br />
<br />
Now, with epel-release installed, you can install redhat-rpm-config and fedora-packager.<br />
<br />
# yum install redhat-rpm-config fedora-packager<br />
<br />
Start up ssh-agent with the Fedora ssh key. Use the local password.<br />
<br />
$ ssh-agent bash<br />
$ ssh-add ~/.ssh/fedora/id_rsa<br />
<br />
Go into your local Fedora package directory, and bring down a fresh copy of the fedfs-utils package source.<br />
<br />
$ fedpkg clone fedfs-utils<br />
<br />
Switch to the EPEL branch.<br />
<br />
$ fedpkg switch-branch el6<br />
<br />
Make your changes and go to the mockbuild step above.<br />
<br />
<br />
[ these instructions are incomplete ]<br />
<br />
As a final step, a packaging review must be requested. See:<br />
<br />
https://fedoraproject.org/wiki/Package_Review_Process#Contributor</div>Chuckleverhttp://wiki.linux-nfs.org/wiki/index.php/NfsRdmaClient/HomeNfsRdmaClient/Home2014-06-03T17:40:16Z<p>Chucklever: /* Developer tools */</p>
<hr />
<div>== Support for Linux NFS/RDMA Client upstream ==<br />
<br />
=== Goals ===<br />
<br />
Provide maintenance for NFS/RDMA and RPC/RDMA client-side code in the Linux kernel. Support continuous testing of NFS/RDMA feature in upstream Linux kernels. Provide enhancements (see below). Identify resources for supporting server-side code.<br />
<br />
=== Bug tracking ===<br />
<br />
Upstream bug tracking is [http://bugzilla.kernel.org/ here].<br />
<br />
=== Feature planning ===<br />
<br />
Our [https://www.pivotaltracker.com/projects/958376 Pivotal Tracking project] lists individual work items and defines several long-term arcs. At a high level, these include:<br />
* Broad support for a variety of RDMA-capable hardware<br />
* Performance and scalability enhancements<br />
* Support for NFSv4.1<br />
* Observability features that enable distributor support teams and customers to diagnose and address problems<br />
<br />
=== Developer tools ===<br />
<br />
For anyone working directly on Linux NFS/RDMA or RPC/RDMA, please consider the following tools for validating your work.<br />
* cthon04: git://git.linux-nfs.org/projects/steved/cthon04.git<br />
* xfstests: git://oss.sgi.com/xfs/cmds/xfstests<br />
* nfs-o-meter: git://git.linux-nfs.org/projects/dros/nfsometer.git<br />
* [http://codemonkey.org.uk/projects/fsx/ fsx]<br />
* [http://www.iozone.org/ IOzone]<br />
* [http://freecode.com/projects/fio fio]<br />
* Multi-process Linux kernel builds<br />
<br />
Typically, for testing, the NFS/RDMA server exports a tmpfs or ram disk-based local FS to drive the transport fast enough.<br />
<br />
==== Asking for help ====<br />
<br />
You can find Linux NFS developers at linux-nfs@vger.kernel.org, or in the linux-nfs chatroom at oftc.net.<br />
<br />
=== Submitting patches ===<br />
<br />
Clone the upstream Linux kernel with:<br />
<br />
$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git<br />
<br />
General advice for preparing upstream kernel or nfs-utils patches: see [https://www.kernel.org/doc/Documentation/SubmittingPatches SubmittingPatches].<br />
<br />
It is strongly recommended that patches be compile-tested, tested with sparse, and run by scripts/checkpatch.pl before submission. Patches should be tested with the tools above before submission, though that's not needed if you are posting only for review.<br />
<br />
==== Review ====<br />
<br />
Review is done via e-mail. In the kernel source tree, see Documentation/email-clients.txt for important advice on how to use e-mail to submit patches.<br />
<br />
Label your patches "[RFC ... ]" or "untested" "DO NOT APPLY" or "for review only" so maintainers know the patch is for review and may not be broadly tested yet.<br />
<br />
Submit patches to linux-nfs@vger.kernel.org and linux-rdma@vger.kernel.org for review.<br />
<br />
If you have reviewed a posted patch, reply with a "Reviewed-by:". If you've tested it, reply with a "Tested-by:"<br />
<br />
==== Merge request ====<br />
<br />
When the community feels a client-side patch is ready to be merged, submit the patches again (without "for review" disclaimers) to linux-nfs@vger.kernel.org and linux-rdma@vger.kernel.org, and cc: Anna.Schumaker@netapp.com. Anna will collect ready patches for Trond to merge upstream.<br />
<br />
We are still developing a mechanism for requesting server-side fixes be merged.<br />
<br />
=== Engineering Notes ===<br />
<br />
* [[NfsRdmaClient/MemRegModes|Simplifying memory registration modes]]</div>Chucklever