
Contents:
   About
   Support
   Getting A Package Into Contrib
   Getting A Package From Contrib Into The Main Tree

------------------------------------------------------------------------------
------------------------------------------------------------------------------
About:
------------------------------------------------------------------------------
RPMS in the contrib repo are typically provided by colaboraters.
These packages are either unable to be integrated into the main release,
candidates for inclusion in the next release, or packages with an
unknown future.

Packages placed here may not be ready for production use.
Exercise necessary caution for your systems.

------------------------------------------------------------------------------
Support:
------------------------------------------------------------------------------
Scientific Linux cannot provide support for the packages in the contrib repo.

These packages may be updated infrequently and security issues are not tracked
by Scientific Linux.  If you believe a package is out of date, feel free
to contact the contributor.

Packages within the contrib repo may be discontinued or withdrawn even if
newer versions are available.

Notifications may not necessarily be provided when a package is updated or
withdrawn.

------------------------------------------------------------------------------
Getting A Package Into Contrib:
------------------------------------------------------------------------------
Not all requested packages will be added to the contrib repo.

Please assemble all the below information before sending an email to
 SCIENTIFIC-LINUX-DEVEL@LISTSERV.FNAL.GOV

We are asking for these steps to be completed for a few reasons.
 - ensure included packages are maintained
 - ensure included packages are trustworthy
 - ensure anyone can build them simply

In particular the YAML template will provide us with a lot of information
that we can use to automate aspects of the packaging process.  It will allow
us to quickly filter the information provided for our internal processes.

For a package to be considered for inclusion in the contrib repo you must
provide the following or your request will automatically be rejected:

 - Demonstration of an established code base
   - The code must have a multi-year public history with evidence of
     attention to problems.

   - If the project was well established but is now unmaintained if you
     demonstrate that you can maintain the code it may still be considered.
     However, you will need a public site for publishing updates, sharing
     the code, and a public method of taking bug/feature requests.  This may
     be as simple as a single webpage, github, and an email address.

 - A trusted source rpm
   - It must be publicly available from the upstream maintainer or signed
     by a trusted gpg key.  We prefer both.
     - an alternate secure method of transfer may be agreed upon if there
       is sufficient need.

 - A verification that the source rpm builds within mock.
   - A mock rpm can be found in EPEL
   - A mock config file for use with SL can be found in the contrib repo.
       - mock-sl6-config for SL6
   - Your srpm must build successfully against the 'x' tree without use of any
     external repo, such as EPEL.
       - Example commands:

         mock -r sl6x-i686 somepackage-1.2-3.el6.src.rpm
         mock -r sl6x-x86_64 somepackage-1.2-3.el6.src.rpm

       - This should build rpms for both i686 and x86_64 without any errors.
   - For more information about mock please read
             http://fedoraproject.org/wiki/Projects/Mock

 - An accurately completed contrib_package_information YAML form.
   - The SL_contrib_template rpm is provided as a part of the
     contrib repo to assist with filling out this template.
       - It requires PyYAML from EPEL for the validation tools included.

   - This template can be found in a package within the contrib repo.
     - SL_contrib_template
       - /usr/share/doc/SL_contrib_template/contrib_package.yaml

       - You can verify your YAML syntax is correct with
         -  /usr/share/doc/SL_contrib_template/validate_sl_contrib_form.py

   - YAML is a format for structured text documents.  You can read more about
     it at:
     - http://www.yaml.org
     - http://en.wikipedia.org/wiki/YAML


Once this information is provided to SCIENTIFIC-LINUX-DEVEL@LISTSERV.FNAL.GOV
the package will be reviewed.

Submitting this information does not guarantee inclusion in the contrib repo.

------------------------------------------------------------------------------
Getting A Package From Contrib Into The Main Tree:
------------------------------------------------------------------------------
This will only be done under rare conditions.

The hope is that all contrib packages can be migrated to a more
appropriate repo.

For Scientific Linux 5, some packages were integrated for the ease of systems
admins.  At this time, we do not expect to add any more contrib packages into
the Scientific Linux 5 main tree.

For Scientific Linux 6, there are a number of yum repositories that can be
easily loaded by a systems admin.  You can find a list of external repositories
with 'yum search yum-conf'.  Those repos are actively maintained and many are
willing to accept additional packages if you are willing to maintain them.

Before a package can be considered for integration into the main Scientific
Linux tree, you should see if one of these external repos is a better fit.
These repos often have a number of methods for regularly publishing updates.

If a package cannot be hosted in one of these external repos, then it may
be considered for the main Scientific Linux tree.  The exact process for
this is not yet defined.

