Guidelines for Contributing

OpenLDAP encourges contribution of Open Source software and documentation from the community. We have adopted various guidelines to facilate integration of contributed software and documentation. This document details guidelines for contributing.

To submit material for consideration, use the Issue Tracking System.

Programmers should also read our Programming Guidelines.

Contents:

General Guidelines

We accept contributions of both complete LDAP related software packages (known as contribware) as well changes (e.g, patches) to existing OpenLDAP Software package and its associated documentation.

patches

Each software change should be consise, self-contained, and made against up-to-date source code. That is:
Reason: This is facilates selective merging of functionality between versions. Otherwise the merge choices are all, nothing, or manually re-code.

Publications and such

The OpenLDAP Project welcomes contributions of independently-authored LDAP-related articles, papers, and other publications.

contribware

The OpenLDAP Project welcomes contributions of independently-developed stand-alone LDAP-related software packages (for example, JLDAP). If you are the author (and owner) of such a package and would like to contribute it to the OpenLDAP Project, please send email to project@OpenLDAP.org.

In general, contributed software packages should work with current releases of OpenLDAP software.

Hosted Software Packages

The OpenLDAP Project offers hosting of software packages that are: The customizable hosting solution can include: Interested package maintainers should enquiry by sending e-mail to project@OpenLDAP.org.

Submission Formats

Submissions should be submitted as a patch suitable for input into patch(1). The patch file can be created using diff(1) or cvs diff. The preferred diff format is unified (ie: '-u'). Please review patches before submission to ensure only required changes to intended files are included in the patch.

Submission of contrib-ware can also be submitted as a tarball.

Generating Patches

UseCommands
Using diff for single file patch diff -u xxx/yyy/zzz.c.orig xxx/yyy/zzz.c> xxx-yyy-zzz.patch
Using cvs diff for directory patch make veryclean
cvs diff -l -u -N xxx/yyy> xxx.yyy.patch
Using tar for contrib-ware make veryclean
tar cf contrib-pkg.tar contrib/pkg
gzip -9 -c contrib-pkg.tar> contrib-pkg.tgz

IPR Notice Guidelines

All contributions must be Open Source and include appropriate notices. Note that if you assigned your rights in the materials you wish to contribute to another party, such as your employer, this party (or their authorized agent) must make the contribution. These guidelines are primarily written for individual contributors. Corporate contributors will need to make some adjustments to the notices.

Notices for OpenLDAP patches

Disclaimer: This is not legal advice.

Files containing patches representing significant blocks of new code (10 lines or greater) must include a notice of origin:

This patch file is derived from OpenLDAP Software. All of the modifications to OpenLDAP Software represented in the following patch(es) were developed by <YOUR NAME> <YOUR-EMAIL-ADDRESS>. I have not assigned rights and/or interest in this work to any party.
If the patch is derived from other works, you must include a detailed description of these others works. The description should include specific references to the location where these works can be found on the Internet. If you have assigned rights and/or interest in this work to another party, such as your employer (possibly through your employment agreement), you must state which rights you have assigned and to whom. For instance, "By virtual of my employment agreement with EMPLOYER-NAME, I have assigned my rights and interest in this work to EMPLOYER-NAME."

Below is an example notice for someone making a contribution on behalf of your employer:

This patch file is derived from OpenLDAP Software. All of the modifications to OpenLDAP Software represented in the following patch(es) were developed by <YOUR-EMPLOYER>. <YOUR-EMPLOYER> has not assigned rights and/or interest in this work to any party. I, <YOUR-NAME> am authorized by <YOUR-EMPLOYER>, my employer, to release this work under the following terms.

This notice must be followed by an appropriate rights statement.

For small modifications (bug fixes, minor enhancements, etc.), we suggest the modifications be placed into the public domain so that they can be freely incorporated into OpenLDAP Software (as well as other works).

I, <YOUR NAME>, hereby place the following modifications to OpenLDAP Software (and only these modifications) into the public domain. Hence, these modifications may be freely used and/or redistributed for any purpose with or without attribution and/or other notice.
A corporate example:
<YOUR-EMPLOYER> hereby place the following modifications to OpenLDAP Software (and only these modifications) into the public domain. Hence, these modifications may be freely used and/or redistributed for any purpose with or without attribution and/or other notice.

While you may use the above for large modifications as well, you may desire to maintain rights in your modifications. However, to ensure license compatibility, we require all contributions (your modifications) to be provided under compatible terms. Hence, we suggest the following statement be used:

The attached modifications to OpenLDAP Software are subject to the following notice:

Copyright <YEAR> <YOUR NAME>
Redistribution and use in source and binary forms, with or without modification, are permitted only as authorized by the OpenLDAP Public License.

By making this statement, you are allowing redistribution and use of your modifications under the same terms as OpenLDAP Software itself.

Alternative rights statements will not generally be accepted. The OpenLDAP Foundation should be contacted prior to submitting patches with alternative right notices.

One alternative not discussed here is copyright assignment. If you wish to assign copyright you hold in contributions to OpenLDAP Software to the OpenLDAP Foundation, please contact foundation@OpenLDAP.org for instructions.

Notices for contribware

Disclaimer: This is not legal advice.

Each contribware contribution must include a statement(s) of origin. For original works, this statement should be of the form:

This contribution is the original work of <YOUR NAME> <YOUR-EMAIL-ADDRESS>.
If, however, the contribution is derived from other works, including OpenLDAP Software, the statement must list the works it is derived from. For example:
This contribution is derived from OpenLDAP Software. All of the modifications to OpenLDAP Software represented in this contribution were developed by <YOUR NAME> <YOUR-EMAIL-ADDRESS>. These modifications are not subject to any license of <YOUR-EMPLOYER-OR-INSTITUTION>.

Each contribware must have clear copyright statements. The terms of the copyright(s) must be compatible with redistribution and use with OpenLDAP Software. Use of the OpenLDAP Public License in encouraged.

The following notice has been preapproved for use on contrib-packages. We do allow alternatives. These will be reviewed on a case-by-case basis.

Notice: We're not laywers. These notices are provided without guarantee to the legal effectiveness. These notices should only be used original authors on software they own all rights to.

OpenLDAP Public License Example

Copyright YEAR Your Name.
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted only as authorized by the OpenLDAP
Public License.

A copy of this license is available in file LICENSE in the
top-level directory of the distribution or, alternatively, at
http://www.OpenLDAP.org/license.html.

Alternatively, you may assign rights you hold in the work to the OpenLDAP Foundation. Please contact the foundation@OpenLDAP.org for instructions.

Submitting Contributions

To submit your contribution, use our Issue Tracking System. This requires you to fill out a simple web form. Be sure to use an appropriate subject line as well as provide details concerning your patch in the body of the message. Provide a Uniform Resource Locator (URL) of your patch or tarball. Do not include, attach nor append the patch or tarball itself. Our ITS system doesn't handle such things well.

Uploading Files

If you do not have publically accessible internet server to locate your patch or tarball on, you may upload it to ours using ftp(1) to our server's (write-only) incoming directory.

UseCommands
Initiate FTP session % ftp
ftp> open ftp.openldap.org
User: ftp
331 Guest login ok, send your email address as password.
Password: your-email-address
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd incoming
250 CWD command successful.
ftp>
Upload patch file
Requires ascii (text) transfer
ftp> ascii
200 Type set to A.
ftp> put
(local-file) patch
(remote-file) your-name-YYMMDD.patch
local: patch remote: your-name-YYMMDD.patch
200 PORT command successful.
(...)
226 Transfer complete.
(...)
ftp>
Upload tarball
Requires image (binary) transfer
ftp> binary
200 Type set to I.
ftp> put
(local-file) tarball.tgz
(remote-file) your-name-pkg-YYMMDD.tgz
local: patch remote: your-name-pkg-YYMMDD.tgz
200 PORT command successful.
(...)
226 Transfer complete.
(...)
ftp>
Close FTP session ftp> quit

________________
© Copyright 2008, OpenLDAP Foundation, info@OpenLDAP.org
$OpenLDAP: www/pages/devel/contributing.wml,v 1.30 2008/04/03 21:59:54 kurt Exp $