			      ==================
			      SUBMITTING PATCHES
			      ==================

Patches can be sent to the keyrings@linux-nfs.org mailing list or directly to
David Howells <dhowells@redhat.com>, the author, in a private email.

When sending patches to be included in keyutils, please certify that your patch
meets the criteria below by including include a sign-off line in your email
which looks like this:

	Signed-off-by: Random J Developer <random@developer.example.org>

This confirms that you are permitted to submit the patch for inclusion in
keyutils under the GPLv2 licence (utilities and documentation) or the LGPLv2.1
licence (library).  The full text of the certificate is as follows:

	Developer's Certificate of Origin v1.1
	======================================

	By making a contribution to this project, I certify that:

	 (a) The contribution was created in whole or in part by me and I
	     have the right to submit it under the open source licences
	     indicated in the file; or

	 (b) The contribution is based upon previous work that, to the best
	     of my knowledge, is covered under an appropriate open source
	     licence and I have the right under that licence to submit that
	     work with modifications, whether created in whole or in part
	     by me, under the same open source licence (unless I am
	     permitted to submit under a different licence), as indicated
	     in the file; or

	 (c) The contribution was provided directly to me by some other
	     person who certified (a), (b) or (c) and I have not modified
	     it.

	and also that:

	 (d) I understand and agree that this project and the contribution are
	     public and that a record of the contribution (including all
	     personal information I submit with it, including my sign-off) is
	     maintained indefinitely and may be redistributed consistent with
	     this project or the open source licence(s) involved.
