gpgme/lang/gpygme/docs/README.org

64 lines
3.3 KiB
Org Mode
Raw Normal View History

* GPyGME
** Project Goal
Intended as both a replacement of the older PyME bindings for Python 2
and Python 3, though it will only be implemented in Python 3. Some
effort may be made to allow it to work as a module or series of
modules in Python 2, but there are no guarantees.
GPyGME is intended to be the official API for third party (i.e.
non-C) languages and bindings. While it should be able to be imported
into any Python 3 code as a normal Python module or library, this is
not the principal goal. The real value is in providing an API for
everyone by providing a pseudo-REST style API. It is not actually a
REST API because it is not purely web-based, though could be
implemented that way (and almost certainly will be by many).
GPyGME will accept and respond with JSON data types to provide a
method of interaction with GPGME with which most, if not all, modern
application developers are familiar. Consequently the bindings ought
to be usable by anyone for any purpose for which GPGME could meet the
need.
** Project Name
GPyGME, with the first "G" being silent is pronounced the same way as
[[https://en.wikipedia.org/wiki/Pygmy_peoples][pygme]]. It could be thought of as a diminutive form of GPGME with the
ability to unlock just as much power.
** Licensing
GPyGME utilises the LGPL 2.1+ license, the same as GPGME itself. It
may also include some tools or sample code licensed under the GPL 2.0
or 3.0. Any such code will be marked clearly as such. Documentation
will be covered by both the GPLv3+ as with the GPGME documentation and
the [[http://creativecommons.org][Creative Commons]] [[http://creativecommons.org/licenses/by-sa/3.0/legalcode][Attribution-ShareAlike 3.0 Unported Public
License]] (CC BY-SA 3.0) and the [[http://creativecommons.org/licenses/by-sa/4.0/legalcode][Attribution-ShareAlike 4.0
International Public License]] (CC BY-SA 4.0).
Contributions to GPyGME require the same licensing and assurances be
granted the project as are presently required by GPGME. Specifically
that authors agree to license their contributions under both the LGPL
version 2.1 and the GPL version 2.0; using the "or any later" clause
in both cases. Documentation authors are required to include the
matching both the Creative Commons BY-SA 3.0 and 4.0 licenses in
addition to the GPL and LGPL.
While we do not request the copyright of these contributions be signed
over to the Free Software Foundation, we do request developers and
authors include a signed copy of the [[http://git.gnupg.org/cgi-bin/gitweb.cgi?p%3Dgpgme.git%3Ba%3Dblob_plain%3Bf%3Ddoc/DCO%3Bhb%3DHEAD][GPGME Developers' Certificate of
Origin]] (DCO) as per the instructions provided with the GPGME
documentation. See the [[http://git.gnupg.org/cgi-bin/gitweb.cgi?p%3Dgpgme.git%3Ba%3Dblob_plain%3Bf%3Ddoc/HACKING%3Bhb%3DHEAD][hacking]] document for more details.
Note that interacting with the GPyGME API as a stand alone interface
(i.e. sending and receiving JSON data to it via a socket, command or
other connection type) does not require conforming with either the GPL
or LGPL licenses. Only when importing or integrating this code into
your own application does that become a requirement.
** Feedback
GPyGME is written and maintained by [[mailto:ben@adversary.org][Ben McGinnes]], but discussion ought
to be conducted on the [[https://lists.gnupg.org/mailman/listinfo/gnupg-devel][gnupg-devel]] mailing list.