WARNING: This is the _old_ Lustre wiki, and it is in the process of being retired. The information found here is all likely to be out of date. Please search the new wiki for more up to date information.

Accessing Lustre Code: Difference between revisions

From Obsolete Lustre Wiki
Jump to navigationJump to search
No edit summary
(Remove description of non-existent external CVS repository)
Line 2: Line 2:
* ''Anonymous access''. You can obtain Lustre source code by [[#Accessing the Open CVS repository|Accessing the Open CVS repository]]. When using this option, you will have read-only access to the code. See [[Contribution Landing Page]] for how to submit code.
* ''Anonymous access''. You can obtain Lustre source code by [[#Accessing the Open CVS repository|Accessing the Open CVS repository]]. When using this option, you will have read-only access to the code. See [[Contribution Landing Page]] for how to submit code.


* ''Read/write access''. With a password-protected account, you can check out Lustre source code by [[#Accessing the Lustre CVS repository|Accessing the Lustre CVS repository]]. After signing a Contributor Agreement (see our Contribution Policy),  you will be able to submit changes directly to the Lustre code.
* ''Authorized access''. Obtaining Lustre source code by [[#Accessing the Internal Lustre CVS repository|Accessing the Internal Lustre CVS repository]] requires a password-protected account and authorization from Sun Microsystems.
 
* ''Authorized access''. Obtaining Lustre source code by [[#Accessing the External Lustre CVS repository|Accessing the External Lustre CVS repository]] requires a password-protected account and authorization from Sun Microsystems.


For all these options, the Concurrent Versions System (CVS) must be installed on your local system. For more information about CVS, see [http://www.nongnu.org/cvs CVS - Concurrent Versions System].
For all these options, the Concurrent Versions System (CVS) must be installed on your local system. For more information about CVS, see [http://www.nongnu.org/cvs CVS - Concurrent Versions System].
Line 21: Line 19:


These Lustre modules are needed to build Lustre. They are automatically checked out when the ''lustrecvs'' script is run for specified a Lustre branch or tag, such as HEAD, b1_8, or v1_8_1:
These Lustre modules are needed to build Lustre. They are automatically checked out when the ''lustrecvs'' script is run for specified a Lustre branch or tag, such as HEAD, b1_8, or v1_8_1:
*lustre
*lustre (top-level directory)
*ldiskfs
*ldiskfs (at lustre/ldiskfs)
*libsysio
*libsysio (at lustre/libsysio)
*lnet
*lnet (at lustre/lnet)
*lustre-build (as .../build)
*libcfs (at lustre/libcfs)
*lustre-core (as .../lustre)
*lustre-build (at lustre/build)
*lustre-snmp (as .../snmp)
*lustre-core (at lustre/lustre)
*lustre-snmp (at lustre/snmp)


See the following sections for details.
See the following sections for details.


== Accessing the Open CVS repository ==
== Accessing the Open CVS repository ==
The Open CVS repository allows anonymous, read-only access to the Lustre code. See [[Contribution Landing Page]] for more information about submitting a patch to the Lustre code when you do not have read/write access to CVS.
The Open CVS repository allows anonymous, read-only access to the Lustre code. See [[Contribution Landing Page]] for more information about submitting a patch to the Lustre code.


=== Checking out code from Open CVS ===
=== Checking out code from Open CVS ===
To check out Lustre source code from the Open CVS repository, complete these steps.
To check out Lustre source code from the Open CVS repository, complete these steps.  The Open CVS repository is used for public access to Lustre, and is synced from the internal CVS repository several times a day.


1.  Set CVSROOT in your environment by entering one of these commands:
#.  Set CVSROOT in your environment by entering one of these commands:
  :pserver:anonymous@cvs.lustre.org:/lustre
  export CVSROOT=":pserver:anonymous@cvs.lustre.org:/lustre"
:or
:or
  cvs -d :pserver:anonymous@cvs.lustre.org:/lustre login
  cvs -d :pserver:anonymous@cvs.lustre.org:/lustre login


2.  Log in to CVS. If a password is requested, hit <enter> to continue.
No password is needed.
cvs login


3.  Check out the lustre source.  
#.  Check out the lustre source.  
  cvs co lustre
  cvs co lustre


4.  Check out lustre modules.
#.  Check out lustre modules.
  cd lustre
  cd lustre
  ./lustrecvs b1_8
  ./lustrecvs b1_8
Line 54: Line 52:


=== Example ===
=== Example ===
In this example, all sources are checked out into ''~/tmp''.
In this example, Lustre sources are checked out into ''~/src/lustre-1_8''.  This directory can be called anything, and will default to "lustre" if nothing is specified.


<code>
<code>
  user@host:~$ '''cd tmp'''
  user@host:~$ '''cd src'''
  user@host:~/tmp$ '''cvs -d :pserver:anonymous@cvs.lustre.org:/lustre login'''
  user@host:~src$ '''cvs -d :pserver:anonymous@cvs.lustre.org:/lustre login'''
  Logging in to :pserver:anonymous@cvs.lustre.org:2401/lustre
  Logging in to :pserver:anonymous@cvs.lustre.org:2401/lustre
  CVS password:      <font color="red">''(Leave blank, hit <Enter>)''</font>
  CVS password:      <font color="red">''(Leave blank, hit <Enter>)''</font>
</code>
</code>
<code>
<code>
  user@host:~/tmp$ '''cvs -d :pserver:anonymous@cvs.lustre.org:/lustre co lustre'''
  user@host:~/src$ '''cvs -d :pserver:anonymous@cvs.lustre.org:/lustre co -d lustre-1_8 lustre'''
  cvs checkout: Updating lustre
  cvs checkout: Updating lustre
  U lustre/.cvsignore
  U lustre/.cvsignore
Line 78: Line 76:
</code>
</code>
<code>
<code>
  user@host:~/tmp$ '''cd lustre'''
  user@host:~/src$ '''cd lustre-1_8'''
  user@host:~/tmp/lustre$ '''./lustrecvs b1_8'''
  user@host:~/src/lustre-1_8$ '''./lustrecvs b1_8'''


  lustrecvs: updating lustrecvs
  lustrecvs: updating lustrecvs
Line 91: Line 89:
  U build/autoMakefile.am
  U build/autoMakefile.am
  U build/autoMakefile.am.toplevel
  U build/autoMakefile.am.toplevel
  .........
  :
:
</code>
</code>
To check out the most recent code for the release currently in development, replace b1_8 with HEAD.
To check out the most recent code for the release currently in development, replace b1_8 with HEAD.


== Accessing the Lustre CVS repository ==
=== Checking out code from Internal Lustre CVS ===
 
The Lustre CVS repository allows read/write access to Lustre code.
 
[[This page contains instructions for obtaining CVS versions of Lustre,]] '''[[as well as migrating checkouts from sourceforge to the new CVS server.]]''' [[Ask rmg team]].
 
 
 
=== Checking out code from Lustre CVS ===


To check out Lustre source code from the Lustre CVS repository, complete these steps.
To check out Lustre source code from the Lustre CVS repository, complete these steps.
Line 128: Line 119:




== Accessing the Lustre External CVS repository ==
== Accessing the Internal Lustre CVS repository ==


The Lustre External CVS repository read-only access by authorized users to proprietary Lustre code. This read-only repository is synchronized with the internal CVS repository every three hours.
The Internal Lustre CVS repository gives access by authorized users to the internal Lustre repository.


==== Legal Notice ====
==== Legal Notice ====
Line 138: Line 129:
: Unless otherwise authorized, you have a limited license to read, modify, compile, and use software obtained from this CVS repository in a non-production test environment.
: Unless otherwise authorized, you have a limited license to read, modify, compile, and use software obtained from this CVS repository in a non-production test environment.


: If you do not agree with these restrictions, ''do not use the CVS repository''. Please email us to have your account disabled.
: If you do not agree with these restrictions, ''do not use this CVS repository''. Please email us to have your account disabled.


=== Checking out code from Lustre External CVS ===
=== Checking out code from Internal Lustre CVS ===
To check out Lustre source code from the Lustre External CVS repository, complete these steps.
To check out Lustre source code from the Lustre External CVS repository, complete these steps.


Line 146: Line 137:


: <pre>
: <pre>
: $ cvs -d {username}@cvs.clusterfs.com:/cvsroot/lustre-external co lustre
: $ cvs -e ssh -d {username}@cvs.lustre.org:/cvsroot/lcfs co lustre
</pre>
</pre>


Line 155: Line 146:


: <pre>
: <pre>
: $ cd /your/cvs/checkout/lustre
: $ cd lustre
: $ ./lustrecvs ''&lt;tag or branch&gt;''
: $ ./lustrecvs ''&lt;tag or branch&gt;''
</pre>
</pre>




'''''Note''''': To update the tree or to change branches, run the "lustrecvs &lt;tag&gt;" command again. Do NOT use "cvs update".
'''''Note''''': To update the tree or to change branches, run the "lustrecvs &lt;tag&gt;" command again. Using "cvs update" is not always reliable if there have been layout changes in the repository.

Revision as of 20:02, 2 September 2009

We welcome and encourage contributions to the development and testing of a more robust, feature-rich Lustre. Three options are available for accessing Lustre code:

For all these options, the Concurrent Versions System (CVS) must be installed on your local system. For more information about CVS, see CVS - Concurrent Versions System.

Note: If you have questions or experience problems with using any of these options, send email to the CVS Administrator.

Naming conventions

Stable development branches are named b{major}_{minor} (for example, b1_6 and b1_8). Even-numbered minor releases are considered stable releases. Odd-numbered minor releases correspond to alpha and beta releases and will sometimes be given v{major}_{minor}_{patch} tags to provide a point of reference for internal and external testing.

A release branch is created an official release to isolate it from further development and named b_release_{major}_{minor}_{patch} (for example, b_release_1_8_0). A final release gets a tag in the form v{major}_{minor}_{patch} (for example, v1_8_0 or v1_6_7_1).

Long-range development is done on the HEAD branch.

Lustre Modules

These Lustre modules are needed to build Lustre. They are automatically checked out when the lustrecvs script is run for specified a Lustre branch or tag, such as HEAD, b1_8, or v1_8_1:

  • lustre (top-level directory)
  • ldiskfs (at lustre/ldiskfs)
  • libsysio (at lustre/libsysio)
  • lnet (at lustre/lnet)
  • libcfs (at lustre/libcfs)
  • lustre-build (at lustre/build)
  • lustre-core (at lustre/lustre)
  • lustre-snmp (at lustre/snmp)

See the following sections for details.

Accessing the Open CVS repository

The Open CVS repository allows anonymous, read-only access to the Lustre code. See Contribution Landing Page for more information about submitting a patch to the Lustre code.

Checking out code from Open CVS

To check out Lustre source code from the Open CVS repository, complete these steps. The Open CVS repository is used for public access to Lustre, and is synced from the internal CVS repository several times a day.

  1. . Set CVSROOT in your environment by entering one of these commands:
export CVSROOT=":pserver:anonymous@cvs.lustre.org:/lustre"
or
cvs -d :pserver:anonymous@cvs.lustre.org:/lustre login

No password is needed.

  1. . Check out the lustre source.
cvs co lustre
  1. . Check out lustre modules.
cd lustre
./lustrecvs b1_8
In this example, modules for Release 1.8 are checked out.

Example

In this example, Lustre sources are checked out into ~/src/lustre-1_8. This directory can be called anything, and will default to "lustre" if nothing is specified.

user@host:~$ cd src
user@host:~src$ cvs -d :pserver:anonymous@cvs.lustre.org:/lustre login
Logging in to :pserver:anonymous@cvs.lustre.org:2401/lustre
CVS password:      (Leave blank, hit <Enter>)

user@host:~/src$ cvs -d :pserver:anonymous@cvs.lustre.org:/lustre co -d lustre-1_8 lustre
cvs checkout: Updating lustre
U lustre/.cvsignore
U lustre/COPYING
U lustre/ChangeLog
U lustre/Makefile.in
U lustre/README
U lustre/README.lustrecvs
U lustre/autoMakefile.am
U lustre/autogen.sh
U lustre/configure.ac
U lustre/lustre.spec.in
U lustre/lustrecvs

user@host:~/src$ cd lustre-1_8
user@host:~/src/lustre-1_8$ ./lustrecvs b1_8
lustrecvs: updating lustrecvs
cvs update: Updating .
lustrecvs: Checking out build from b1_8
cvs checkout: Updating build
U build/.cvsignore
U build/Makefile
U build/README.kernel-source
U build/Rules.in
U build/autoMakefile.am
U build/autoMakefile.am.toplevel
:
:

To check out the most recent code for the release currently in development, replace b1_8 with HEAD.

Checking out code from Internal Lustre CVS

To check out Lustre source code from the Lustre CVS repository, complete these steps.

1. Test that your account is working by logging into bugzilla. CVS and bugzilla share the same account information.

2. To upload a public ssh key to use in place of typing in a password, go to bugzilla's user preferences. If there is no "Change Public SSH key" field,send email to cvs-admin@cvs.lustre.org. (Note: Currently, only SSH2 keys are supported.)

3. Set the CVS_RSH environment variable.

For bash users, enter:
export CVS_RSH=ssh
For csh users, enter:
setenv CVS_RSH ssh
Consider setting CVS_RSH in your .bashrc or .cshrc.

4. Check out lustre by running the following (change youraccountname to your cvs account name specified on the user preferences page):

$ cvs -d :ext:youraccountname@cvs.lustre.org:/cvsroot/cfs co lustre
$ cd lustre
$ ./lustrecvs b1_8


Accessing the Internal Lustre CVS repository

The Internal Lustre CVS repository gives access by authorized users to the internal Lustre repository.

Legal Notice

All software obtained from this CVS repository is considered pre-release proprietary software and is therefore confidential information. You may not redistribute any software obtained from this CVS repository and must destroy all copies upon request.
Unless otherwise authorized, you have a limited license to read, modify, compile, and use software obtained from this CVS repository in a non-production test environment.
If you do not agree with these restrictions, do not use this CVS repository. Please email us to have your account disabled.

Checking out code from Internal Lustre CVS

To check out Lustre source code from the Lustre External CVS repository, complete these steps.

1. Check out the top-level lustre directory, where {username} is your Bugzilla account id. When prompted for a password, enter your Bugzilla password.

$ cvs -e ssh -d {username}@cvs.lustre.org:/cvsroot/lcfs co lustre


2. Get the desired CVS tag.

Download the Lustre source tree associated with the desired CVS tag using the lustrecvs script, where <tag or branch> is a valid Lustre branch or tag name (e.g. b1_8, HEAD, v1_9_250)
$ cd lustre
$ ./lustrecvs ''<tag or branch>''


Note: To update the tree or to change branches, run the "lustrecvs <tag>" command again. Using "cvs update" is not always reliable if there have been layout changes in the repository.