[git] GPGME - branch, master, updated. gpgme-1.12.0-84-g2e3a681

by Ben McGinnes cvs at cvs.gnupg.org
Fri Nov 30 22:16:59 CET 2018


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GnuPG Made Easy".

The branch, master has been updated
       via  2e3a681d0c35bbf6db584fedc9d7f0a010430b51 (commit)
       via  3b056a01a252bb72df5744409ba494e1a6e54d31 (commit)
      from  a9cfb6dad8ac60543bcb06f4d0515f4a64ad897a (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 2e3a681d0c35bbf6db584fedc9d7f0a010430b51
Author: Ben McGinnes <ben at adversary.org>
Date:   Sat Dec 1 08:15:43 2018 +1100

    python: documentation fixes
    
    * Typographic and whitespace error correction pertaining to the
      previous update.
    
    Signed-off-by: Ben McGinnes <ben at adversary.org>

diff --git a/lang/python/doc/rst/maintenance-mode.rst b/lang/python/doc/rst/maintenance-mode.rst
index 75cd947..bbd2521 100644
--- a/lang/python/doc/rst/maintenance-mode.rst
+++ b/lang/python/doc/rst/maintenance-mode.rst
@@ -78,6 +78,9 @@ decryption, verification, validation, trust levels and so on.
 Any wanted features lacking in the Python bindings are usually lacking
 because they are missing from GPGME itself (e.g. revoking keys via the
 API) and in such cases they are usually deliberately excluded. More
+discussion of these issues can be found in the archives of the
+`gnupg-devel mailing
+list <https://lists.gnupg.org/mailman/listinfo/gnupg-devel>`__.
 
 Any features existing in the dynamically generated layer for which
 people want a specific, higher level function included to make it more
diff --git a/lang/python/doc/src/gpgme-python-howto b/lang/python/doc/src/gpgme-python-howto
index fe1fc2b..43d0c2b 100644
--- a/lang/python/doc/src/gpgme-python-howto
+++ b/lang/python/doc/src/gpgme-python-howto
@@ -21,7 +21,6 @@
 | Author GPG Key: | [[https://hkps.pool.sks-keyservers.net/pks/lookup?search=0xDB4724E6FA4286C92B4E55C4321E4E2373590E5D&exact=on&op=get][DB4724E6FA4286C92B4E55C4321E4E2373590E5D]] |
 | Language:       | Australian English, British English      |
 | Language codes: | en-AU, en-GB, en                         |
-#+TBLFM: 
 
 This document provides basic instruction in how to use the GPGME
 Python bindings to programmatically leverage the GPGME library.
diff --git a/lang/python/doc/src/maintenance-mode b/lang/python/doc/src/maintenance-mode
index ef56e4e..e7a8f28 100644
--- a/lang/python/doc/src/maintenance-mode
+++ b/lang/python/doc/src/maintenance-mode
@@ -76,7 +76,9 @@ decryption, verification, validation, trust levels and so on.
 
 Any wanted features lacking in the Python bindings are usually lacking
 because they are missing from GPGME itself (e.g. revoking keys via the
-API) and in such cases they are usually deliberately excluded.  More 
+API) and in such cases they are usually deliberately excluded.  More
+discussion of these issues can be found in the archives of the
+[[https://lists.gnupg.org/mailman/listinfo/gnupg-devel][gnupg-devel mailing list]].
 
 Any features existing in the dynamically generated layer for which
 people want a specific, higher level function included to make it more
diff --git a/lang/python/doc/texinfo/maintenance-mode.texi b/lang/python/doc/texinfo/maintenance-mode.texi
index ad52606..a60236f 100644
--- a/lang/python/doc/texinfo/maintenance-mode.texi
+++ b/lang/python/doc/texinfo/maintenance-mode.texi
@@ -104,7 +104,9 @@ decryption, verification, validation, trust levels and so on.
 
 Any wanted features lacking in the Python bindings are usually lacking
 because they are missing from GPGME itself (e.g. revoking keys via the
-API) and in such cases they are usually deliberately excluded.  More 
+API) and in such cases they are usually deliberately excluded.  More
+discussion of these issues can be found in the archives of the
+ at uref{https://lists.gnupg.org/mailman/listinfo/gnupg-devel, gnupg-devel mailing list}.
 
 Any features existing in the dynamically generated layer for which
 people want a specific, higher level function included to make it more

commit 3b056a01a252bb72df5744409ba494e1a6e54d31
Author: Ben McGinnes <ben at adversary.org>
Date:   Sat Dec 1 07:45:50 2018 +1100

    python: documentation
    
    * Added long description to setup.py.in.
    * Added maintenance mode details with clarification for what type of
      things would be a bug as far as MM is concerned and what wouldn't
      be.
    ** Includes a not too subtle hint directed towards the donations page.
    * Miscellaneous tightening of documentation.
    
    Signed-off-by: Ben McGinnes <ben at adversary.org>

diff --git a/lang/python/doc/rst/gpgme-python-howto.rst b/lang/python/doc/rst/gpgme-python-howto.rst
index dae4c64..d1cb3fd 100644
--- a/lang/python/doc/rst/gpgme-python-howto.rst
+++ b/lang/python/doc/rst/gpgme-python-howto.rst
@@ -13,8 +13,11 @@ Introduction
 |                                   | e/index.html#sec-1-5>`__          |
 |                                   | <ben at gnupg.org>                   |
 +-----------------------------------+-----------------------------------+
-| Author GPG Key:                   | DB4724E6FA4286C92B4E55C4321E4E237 |
-|                                   | 3590E5D                           |
+| Author GPG Key:                   | `DB4724E6FA4286C92B4E55C4321E4E23 |
+|                                   | 73590E5D <https://hkps.pool.sks-k |
+|                                   | eyservers.net/pks/lookup?search=0 |
+|                                   | xDB4724E6FA4286C92B4E55C4321E4E23 |
+|                                   | 73590E5D&exact=on&op=get>`__      |
 +-----------------------------------+-----------------------------------+
 | Language:                         | Australian English, British       |
 |                                   | English                           |
@@ -3009,34 +3012,37 @@ Draft Editions of this HOWTO
 Draft editions of this HOWTO may be periodically available directly from
 the author at any of the following URLs:
 
--  `GPGME Python Bindings HOWTO draft (XHTML AWS S3
+-  `GPGME Python Bindings HOWTO draft (XHTML single file, AWS S3
    SSL) <https://files.au.adversary.org/crypto/gpgme-python-howto.html>`__
--  `GPGME Python Bindings HOWTO draft (XHTML AWS S3 no
-   SSL) <http://files.au.adversary.org/crypto/gpgme-python-howto.html>`__
--  `GPGME Python Bindings HOWTO draft (Texinfo file AWS S3
-   SSL) <https://files.au.adversary.org/crypto/gpgme-python-howto.texi>`__
--  `GPGME Python Bindings HOWTO draft (Texinfo file AWS S3 no
-   SSL) <http://files.au.adversary.org/crypto/gpgme-python-howto.texi>`__
--  `GPGME Python Bindings HOWTO draft (Info file AWS S3
-   SSL) <https://files.au.adversary.org/crypto/gpgme-python-howto.info>`__
--  `GPGME Python Bindings HOWTO draft (Info file AWS S3 no
-   SSL) <http://files.au.adversary.org/crypto/gpgme-python-howto.info>`__
--  `GPGME Python Bindings HOWTO draft (reST file AWS S3
-   SSL) <https://files.au.adversary.org/crypto/gpgme-python-howto.rst>`__
--  `GPGME Python Bindings HOWTO draft (reST file AWS S3 no
-   SSL) <http://files.au.adversary.org/crypto/gpgme-python-howto.rst>`__
+-  `GPGME Python Bindings HOWTO draft (XHTML single file, AWS S3 no
+   SS) <http://files.au.adversary.org/crypto/gpgme-python-howto.html>`__
+-  `GPGME Python Bindings HOWTO draft (XHTML multiple files, AWS S3
+   SSL) <https://files.au.adversary.org/crypto/gpgme-python-howto-split/index.html>`__
+-  `GPGME Python Bindings HOWTO draft (XHTML multiple files, AWS S3 no
+   SSL) <http://files.au.adversary.org/crypto/gpgme-python-howto-split/index.html>`__
 
 All of these draft versions except for one have been generated from this
-document via Emacs `Org mode <https://orgmode.org/>`__ and `GNU
+document via GNU Emacs `Org mode <https://orgmode.org/>`__ and `GNU
 Texinfo <https://www.gnu.org/software/texinfo/>`__. Though it is likely
 that the specific
 `file <https://files.au.adversary.org/crypto/gpgme-python-howto>`__
 `version <http://files.au.adversary.org/crypto/gpgme-python-howto.org>`__
 used will be on the same server with the generated output formats.
 
-The one exception is the reStructuredText version, which was converted
-using the latest version of Pandoc from the Org mode source file using
-either of the following two commands:
+The GNU Texinfo and reStructured Text versions ship with the software,
+while the GNU Emacs Info verseion is generated from the Texinfo version
+using GNU Texinfo or GNU Makeinfo. The Texinfo format is generated from
+the original Org mode source file in Org mode itself either within GNU
+Emacs or via the command line by invoking Emacs in batch mode:
+
+.. code:: shell
+
+   emacs gpgme-python-howto.org --batch -f org-texinfo-export-to-texinfo --kill
+   emacs gpgme-python-howto --batch -f org-texinfo-export-to-texinfo --kill
+
+The reStructuredText format is also generated from the Org-mode source
+file, except it is generated using `Pandoc <https://pandoc.org>`__ with
+either of the following commands:
 
 .. code:: shell
 
diff --git a/lang/python/doc/rst/index.rst b/lang/python/doc/rst/index.rst
index 5f736c7..746391c 100644
--- a/lang/python/doc/rst/index.rst
+++ b/lang/python/doc/rst/index.rst
@@ -8,5 +8,8 @@ Contents
 
 -  `A short history of the project <short-history>`__
 -  `What\'s New <what-is-new>`__
+
+   -  `Maintenance Mode <maintenance-mode>`__ (from January, 2019)
+
 -  `What Was New <what-was-new>`__
 -  `GPGME Python Bindings HOWTO <gpgme-python-howto>`__
diff --git a/lang/python/doc/rst/maintenance-mode.rst b/lang/python/doc/rst/maintenance-mode.rst
new file mode 100644
index 0000000..75cd947
--- /dev/null
+++ b/lang/python/doc/rst/maintenance-mode.rst
@@ -0,0 +1,95 @@
+.. _maintenance-mode:
+
+Maintenance Mode from 2019
+==========================
+
++-----------------------------------+-----------------------------------+
+| Version:                          | 0.0.1-draft                       |
++-----------------------------------+-----------------------------------+
+| GPGME Version:                    | 1.13.0                            |
++-----------------------------------+-----------------------------------+
+| Author:                           | `Ben                              |
+|                                   | McGinnes <https://gnupg.org/peopl |
+|                                   | e/index.html#sec-1-5>`__          |
+|                                   | <ben at gnupg.org>                   |
++-----------------------------------+-----------------------------------+
+| Author GPG Key:                   | `DB4724E6FA4286C92B4E55C4321E4E23 |
+|                                   | 73590E5D <https://hkps.pool.sks-k |
+|                                   | eyservers.net/pks/lookup?search=0 |
+|                                   | xDB4724E6FA4286C92B4E55C4321E4E23 |
+|                                   | 73590E5D&exact=on&op=get>`__      |
++-----------------------------------+-----------------------------------+
+| Language:                         | Australian English, British       |
+|                                   | English                           |
++-----------------------------------+-----------------------------------+
+| xml:lang:                         | en-AU, en-GB, en                  |
++-----------------------------------+-----------------------------------+
+
+From the beginning of 2019 the Python bindings to GPGME will enter
+maintenance mode, meaning that new features will not be added and only
+bug fixes and security fixes will be made. This also means that
+documentation beyond that existing at the end of 2018 will not be
+developed further except to correct errors.
+
+Though use of these bindings appears to have been quite well received,
+there has been no indication of what demand there is, if any for either
+financial backing of the current Python bindings development or support
+contracts with g10code GmbH citing the necessity of including the
+bindings.
+
+.. _maintenance-mode-bm:
+
+Maintainer from 2019 onward
+---------------------------
+
+How does this affect the position of GnuPG Python Bindings Maintainer?
+
+Well, I will remain as maintainer of the bindings; but without funding
+for that position, the amount of time I will be able to dedicate solely
+to this task will be limited and reduced to volunteered time. As with
+all volunteered time and effort in free software projects, this will be
+subject to numerous external imperatives.
+
+.. _maintenance-mode-blade-runner:
+
+Using the Python Bindings from 2019 and beyond
+----------------------------------------------
+
+For most, if not all, Python developers using these bindings; they will
+continue to "just work" the same as they always have. Expansions of
+GPGME itself are usually handled by SWIG with the existing code and thus
+bindings are generated properly when the bindings are installed
+alongside GPGME and when the latter is built from source.
+
+In the rare circumstances where that is not enough to address some new
+addition to GPGME, then that is a bug and thus subject to the
+maintenance mode provisions (i.e. it will be fixed following a bug
+report being raised and your humble author will need to remember where
+the timesheet template was filed, depending on how many years off such
+an event is).
+
+All the GPGME functionality will continue to be accessible via the lower
+level, dynamically generated methods which match the GPGME C
+documentation. While the more intuitively Pythonic higher level layer
+already covers the vast majority of functionality people require with
+key generation, signatures, certifications (key signing), encryption,
+decryption, verification, validation, trust levels and so on.
+
+Any wanted features lacking in the Python bindings are usually lacking
+because they are missing from GPGME itself (e.g. revoking keys via the
+API) and in such cases they are usually deliberately excluded. More
+
+Any features existing in the dynamically generated layer for which
+people want a specific, higher level function included to make it more
+Pythonic (e.g. to avoid needing to learn or memorise cryptographic mode
+values or GnuPG status code numbers), would be a feature request and
+*not* a bug.
+
+It is still worthwhile requesting it, but the addition of such a feature
+would not be guaranteed and provided on a purely volunteer basis.
+Expediting such a request would require funding that request.
+
+Those with a commercial interest in expediting such a feature request
+already know how to `expedite
+it <https://gnupg.org/cgi-bin/procdonate.cgi?mode=preset>`__ (use the
+message field to state what feature is being requested).
diff --git a/lang/python/doc/rst/short-history.rst b/lang/python/doc/rst/short-history.rst
index d6f0a5d..70f9b25 100644
--- a/lang/python/doc/rst/short-history.rst
+++ b/lang/python/doc/rst/short-history.rst
@@ -1,6 +1,28 @@
 Overview
 ========
 
++-----------------------------------+-----------------------------------+
+| Version:                          | 0.0.1-draft                       |
++-----------------------------------+-----------------------------------+
+| GPGME Version:                    | 1.13.0                            |
++-----------------------------------+-----------------------------------+
+| Author:                           | `Ben                              |
+|                                   | McGinnes <https://gnupg.org/peopl |
+|                                   | e/index.html#sec-1-5>`__          |
+|                                   | <ben at gnupg.org>                   |
++-----------------------------------+-----------------------------------+
+| Author GPG Key:                   | `DB4724E6FA4286C92B4E55C4321E4E23 |
+|                                   | 73590E5D <https://hkps.pool.sks-k |
+|                                   | eyservers.net/pks/lookup?search=0 |
+|                                   | xDB4724E6FA4286C92B4E55C4321E4E23 |
+|                                   | 73590E5D&exact=on&op=get>`__      |
++-----------------------------------+-----------------------------------+
+| Language:                         | Australian English, British       |
+|                                   | English                           |
++-----------------------------------+-----------------------------------+
+| xml:lang:                         | en-AU, en-GB, en                  |
++-----------------------------------+-----------------------------------+
+
 The GPGME Python bindings passed through many hands and numerous phases
 before, after a fifteen year journey, coming full circle to return to
 the source. This is a short explanation of that journey.
diff --git a/lang/python/doc/rst/what-is-new.rst b/lang/python/doc/rst/what-is-new.rst
index 0fca98f..b3ec06a 100644
--- a/lang/python/doc/rst/what-is-new.rst
+++ b/lang/python/doc/rst/what-is-new.rst
@@ -13,8 +13,11 @@ What\'s New
 |                                   | e/index.html#sec-1-5>`__          |
 |                                   | <ben at gnupg.org>                   |
 +-----------------------------------+-----------------------------------+
-| Author GPG Key:                   | DB4724E6FA4286C92B4E55C4321E4E237 |
-|                                   | 3590E5D                           |
+| Author GPG Key:                   | `DB4724E6FA4286C92B4E55C4321E4E23 |
+|                                   | 73590E5D <https://hkps.pool.sks-k |
+|                                   | eyservers.net/pks/lookup?search=0 |
+|                                   | xDB4724E6FA4286C92B4E55C4321E4E23 |
+|                                   | 73590E5D&exact=on&op=get>`__      |
 +-----------------------------------+-----------------------------------+
 | Language:                         | Australian English, British       |
 |                                   | English                           |
@@ -23,8 +26,7 @@ What\'s New
 +-----------------------------------+-----------------------------------+
 
 Last time the most obviously new thing was adding the *What\'s New*
-section to the HOWTO. Now it\'s moving it out of the HOWTO. Not to
-mention expanding on the documentation both generally and considerably.
+section to the HOWTO. Now it\'s moving it out of the HOWTO.
 
 .. _new-stuff-1-13-0:
 
@@ -41,3 +43,5 @@ Additions since GPGME 1.12.0 include:
 -  Added ``gpg.version.versionintlist`` to make it easier for Python
    developers to check for a specific version number, even with beta
    versions (it will drop the \"-betaN\" part).
+-  Bindings enter `maintenance mode <maintenance-mode>`__ from January,
+   2019.
diff --git a/lang/python/doc/rst/what-was-new.rst b/lang/python/doc/rst/what-was-new.rst
index 23f3082..cc11bbf 100644
--- a/lang/python/doc/rst/what-was-new.rst
+++ b/lang/python/doc/rst/what-was-new.rst
@@ -13,8 +13,11 @@ What Was New
 |                                   | e/index.html#sec-1-5>`__          |
 |                                   | <ben at gnupg.org>                   |
 +-----------------------------------+-----------------------------------+
-| Author GPG Key:                   | DB4724E6FA4286C92B4E55C4321E4E237 |
-|                                   | 3590E5D                           |
+| Author GPG Key:                   | `DB4724E6FA4286C92B4E55C4321E4E23 |
+|                                   | 73590E5D <https://hkps.pool.sks-k |
+|                                   | eyservers.net/pks/lookup?search=0 |
+|                                   | xDB4724E6FA4286C92B4E55C4321E4E23 |
+|                                   | 73590E5D&exact=on&op=get>`__      |
 +-----------------------------------+-----------------------------------+
 | Language:                         | Australian English, British       |
 |                                   | English                           |
diff --git a/lang/python/doc/src/gpgme-python-howto b/lang/python/doc/src/gpgme-python-howto
index 4b02a93..fe1fc2b 100644
--- a/lang/python/doc/src/gpgme-python-howto
+++ b/lang/python/doc/src/gpgme-python-howto
@@ -17,10 +17,11 @@
 
 | Version:        | 0.1.4                                    |
 | GPGME Version:  | 1.12.1                                   |
-| Author:         | [[https://gnupg.org/people/index.html#sec-1-5][Ben McGinnes]] <ben at gnupg.org>             |
-| Author GPG Key: | DB4724E6FA4286C92B4E55C4321E4E2373590E5D |
+| Author:         | [[https://gnupg.org/people/index.html#sec-1-5][Ben McGinnes]] <[[mailto:ben at gnupg.org][ben at gnupg.org]]>             |
+| Author GPG Key: | [[https://hkps.pool.sks-keyservers.net/pks/lookup?search=0xDB4724E6FA4286C92B4E55C4321E4E2373590E5D&exact=on&op=get][DB4724E6FA4286C92B4E55C4321E4E2373590E5D]] |
 | Language:       | Australian English, British English      |
 | Language codes: | en-AU, en-GB, en                         |
+#+TBLFM: 
 
 This document provides basic instruction in how to use the GPGME
 Python bindings to programmatically leverage the GPGME library.
@@ -2716,6 +2717,7 @@ Though neither requests nor pendulum are required modules for using
 the GPGME Python bindings, they are both highly recommended more
 generally.
 
+
 * Advanced or Experimental Use Cases
   :PROPERTIES:
   :CUSTOM_ID: advanced-use
@@ -3083,23 +3085,31 @@ Copyright (C) The GnuPG Project, 2018.
 Draft editions of this HOWTO may be periodically available directly
 from the author at any of the following URLs:
 
-- [[https://files.au.adversary.org/crypto/gpgme-python-howto.html][GPGME Python Bindings HOWTO draft (XHTML AWS S3 SSL)]]
-- [[http://files.au.adversary.org/crypto/gpgme-python-howto.html][GPGME Python Bindings HOWTO draft (XHTML AWS S3 no SSL)]]
-- [[https://files.au.adversary.org/crypto/gpgme-python-howto.texi][GPGME Python Bindings HOWTO draft (Texinfo file AWS S3 SSL)]]
-- [[http://files.au.adversary.org/crypto/gpgme-python-howto.texi][GPGME Python Bindings HOWTO draft (Texinfo file AWS S3 no SSL)]]
-- [[https://files.au.adversary.org/crypto/gpgme-python-howto.info][GPGME Python Bindings HOWTO draft (Info file AWS S3 SSL)]]
-- [[http://files.au.adversary.org/crypto/gpgme-python-howto.info][GPGME Python Bindings HOWTO draft (Info file AWS S3 no SSL)]]
-- [[https://files.au.adversary.org/crypto/gpgme-python-howto.rst][GPGME Python Bindings HOWTO draft (reST file AWS S3 SSL)]]
-- [[http://files.au.adversary.org/crypto/gpgme-python-howto.rst][GPGME Python Bindings HOWTO draft (reST file AWS S3 no SSL)]]
+- [[https://files.au.adversary.org/crypto/gpgme-python-howto.html][GPGME Python Bindings HOWTO draft (XHTML single file, AWS S3 SSL)]]
+- [[http://files.au.adversary.org/crypto/gpgme-python-howto.html][GPGME Python Bindings HOWTO draft (XHTML single file, AWS S3 no SS)]]
+- [[https://files.au.adversary.org/crypto/gpgme-python-howto-split/index.html][GPGME Python Bindings HOWTO draft (XHTML multiple files, AWS S3 SSL)]]
+- [[http://files.au.adversary.org/crypto/gpgme-python-howto-split/index.html][GPGME Python Bindings HOWTO draft (XHTML multiple files, AWS S3 no SSL)]]
 
 All of these draft versions except for one have been generated from
-this document via Emacs [[https://orgmode.org/][Org mode]] and [[https://www.gnu.org/software/texinfo/][GNU Texinfo]].  Though it is likely
-that the specific [[https://files.au.adversary.org/crypto/gpgme-python-howto][file]] [[http://files.au.adversary.org/crypto/gpgme-python-howto.org][version]] used will be on the same server with
-the generated output formats.
+this document via GNU Emacs [[https://orgmode.org/][Org mode]] and [[https://www.gnu.org/software/texinfo/][GNU Texinfo]].  Though it is
+likely that the specific [[https://files.au.adversary.org/crypto/gpgme-python-howto][file]] [[http://files.au.adversary.org/crypto/gpgme-python-howto.org][version]] used will be on the same server
+with the generated output formats.
+
+The GNU Texinfo and reStructured Text versions ship with the software,
+while the GNU Emacs Info verseion is generated from the Texinfo
+version using GNU Texinfo or GNU Makeinfo.  The Texinfo format is
+generated from the original Org mode source file in Org mode itself
+either within GNU Emacs or via the command line by invoking Emacs in
+batch mode:
+
+#+BEGIN_SRC shell
+  emacs gpgme-python-howto.org --batch -f org-texinfo-export-to-texinfo --kill
+  emacs gpgme-python-howto --batch -f org-texinfo-export-to-texinfo --kill
+#+END_SRC
 
-The one exception is the reStructuredText version, which was converted
-using the latest version of Pandoc from the Org mode source file using
-either of the following two commands:
+The reStructuredText format is also generated from the Org-mode source
+file, except it is generated using [[https://pandoc.org][Pandoc]] with either of the following
+commands:
 
 #+BEGIN_SRC shell
   pandoc -f org -t rst+smart -o gpgme-python-howto.rst gpgme-python-howto.org
diff --git a/lang/python/doc/src/index b/lang/python/doc/src/index
index ce347ea..ec13c9a 100644
--- a/lang/python/doc/src/index
+++ b/lang/python/doc/src/index
@@ -24,5 +24,6 @@
 
 - [[file:short-history][A short history of the project]]
 - [[file:what-is-new][What's New]]
+  - [[file:maintenance-mode][Maintenance Mode]] (from January, 2019)
 - [[file:what-was-new][What Was New]]
 - [[file:gpgme-python-howto][GPGME Python Bindings HOWTO]]
diff --git a/lang/python/doc/src/maintenance-mode b/lang/python/doc/src/maintenance-mode
new file mode 100644
index 0000000..ef56e4e
--- /dev/null
+++ b/lang/python/doc/src/maintenance-mode
@@ -0,0 +1,93 @@
+# -*- mode: org -*-
+#+TITLE: Maintenance Mode
+#+AUTHOR: Ben McGinnes
+#+LATEX_COMPILER: xelatex
+#+LATEX_CLASS: article
+#+LATEX_CLASS_OPTIONS: [12pt]
+#+LATEX_HEADER: \usepackage{xltxtra}
+#+LATEX_HEADER: \usepackage[margin=1in]{geometry}
+#+LATEX_HEADER: \setmainfont[Ligatures={Common}]{Times New Roman}
+#+LATEX_HEADER: \author{Ben McGinnes <ben at gnupg.org>}
+
+
+* Maintenance Mode from 2019
+  :PROPERTIES:
+  :CUSTOM_ID: maintenance-mode
+  :END:
+
+| Version:        | 0.0.1-draft                              |
+| GPGME Version:  | 1.13.0                                   |
+| Author:         | [[https://gnupg.org/people/index.html#sec-1-5][Ben McGinnes]] <[[mailto:ben at gnupg.org][ben at gnupg.org]]>             |
+| Author GPG Key: | [[https://hkps.pool.sks-keyservers.net/pks/lookup?search=0xDB4724E6FA4286C92B4E55C4321E4E2373590E5D&exact=on&op=get][DB4724E6FA4286C92B4E55C4321E4E2373590E5D]] |
+| Language:       | Australian English, British English      |
+| xml:lang:       | en-AU, en-GB, en                         |
+
+From the beginning of 2019 the Python bindings to GPGME will enter
+maintenance mode, meaning that new features will not be added and only
+bug fixes and security fixes will be made.  This also means that
+documentation beyond that existing at the end of 2018 will not be
+developed further except to correct errors.
+
+Though use of these bindings appears to have been quite well received,
+there has been no indication of what demand there is, if any for
+either financial backing of the current Python bindings development or
+support contracts with g10code GmbH citing the necessity of including
+the bindings.
+
+
+** Maintainer from 2019 onward
+   :PROPERTIES:
+   :CUSTOM_ID: maintenance-mode-bm
+   :END:
+
+How does this affect the position of GnuPG Python Bindings Maintainer?
+
+Well, I will remain as maintainer of the bindings; but without funding
+for that position, the amount of time I will be able to dedicate
+solely to this task will be limited and reduced to volunteered time.
+As with all volunteered time and effort in free software projects,
+this will be subject to numerous external imperatives.
+
+
+** Using the Python Bindings from 2019 and beyond
+   :PROPERTIES:
+   :CUSTOM_ID: maintenance-mode-blade-runner
+   :END:
+
+For most, if not all, Python developers using these bindings; they
+will continue to “just work” the same as they always have.  Expansions
+of GPGME itself are usually handled by SWIG with the existing code and
+thus bindings are generated properly when the bindings are installed
+alongside GPGME and when the latter is built from source.
+
+In the rare circumstances where that is not enough to address some new
+addition to GPGME, then that is a bug and thus subject to the
+maintenance mode provisions (i.e. it will be fixed following a bug
+report being raised and your humble author will need to remember where
+the timesheet template was filed, depending on how many years off such
+an event is).
+
+All the GPGME functionality will continue to be accessible via the
+lower level, dynamically generated methods which match the GPGME C
+documentation.  While the more intuitively Pythonic higher level layer
+already covers the vast majority of functionality people require with
+key generation, signatures, certifications (key signing), encryption,
+decryption, verification, validation, trust levels and so on.
+
+Any wanted features lacking in the Python bindings are usually lacking
+because they are missing from GPGME itself (e.g. revoking keys via the
+API) and in such cases they are usually deliberately excluded.  More 
+
+Any features existing in the dynamically generated layer for which
+people want a specific, higher level function included to make it more
+Pythonic (e.g. to avoid needing to learn or memorise cryptographic
+mode values or GnuPG status code numbers), would be a feature request
+and /not/ a bug.
+
+It is still worthwhile requesting it, but the addition of such a
+feature would not be guaranteed and provided on a purely volunteer
+basis.  Expediting such a request would require funding that request.
+
+Those with a commercial interest in expediting such a feature request
+already know how to [[https://gnupg.org/cgi-bin/procdonate.cgi?mode=preset][expedite it]] (use the message field to state what
+feature is being requested).
diff --git a/lang/python/doc/src/short-history b/lang/python/doc/src/short-history
index 6c5c96e..c91f029 100644
--- a/lang/python/doc/src/short-history
+++ b/lang/python/doc/src/short-history
@@ -5,13 +5,20 @@
 #+LATEX_CLASS_OPTIONS: [12pt]
 #+LATEX_HEADER: \usepackage{xltxtra}
 #+LATEX_HEADER: \usepackage[margin=1in]{geometry}
-#+LATEX_HEADER: \setmainfont[Ligatures={Common}]{Latin Modern Roman}
+#+LATEX_HEADER: \setmainfont[Ligatures={Common}]{Times New Roman}
 
 * Overview
   :PROPERTIES:
   :CUSTOM_ID: overview
   :END:
 
+| Version:        | 0.0.1-draft                              |
+| GPGME Version:  | 1.13.0                                   |
+| Author:         | [[https://gnupg.org/people/index.html#sec-1-5][Ben McGinnes]] <[[mailto:ben at gnupg.org][ben at gnupg.org]]>             |
+| Author GPG Key: | [[https://hkps.pool.sks-keyservers.net/pks/lookup?search=0xDB4724E6FA4286C92B4E55C4321E4E2373590E5D&exact=on&op=get][DB4724E6FA4286C92B4E55C4321E4E2373590E5D]] |
+| Language:       | Australian English, British English      |
+| xml:lang:       | en-AU, en-GB, en                         |
+
 The GPGME Python bindings passed through many hands and numerous
 phases before, after a fifteen year journey, coming full circle to
 return to the source.  This is a short explanation of that journey.
@@ -27,6 +34,7 @@ return to the source.  This is a short explanation of that journey.
    supporting it, though he left his work available on his Gopher
    site.
 
+
 ** Keeping the flame alive
    :PROPERTIES:
    :CUSTOM_ID: keeping-the-flame-alive
@@ -38,6 +46,7 @@ return to the source.  This is a short explanation of that journey.
    but the current authors do hope he is well.  We're assuming (or
    hoping) that life did what life does and made continuing untenable.
 
+
 ** Passing the torch
    :PROPERTIES:
    :CUSTOM_ID: passing-the-torch
@@ -50,6 +59,7 @@ return to the source.  This is a short explanation of that journey.
    the original PyME release in Python 2.6 and 2.7 (available via
    PyPI).
 
+
 ** Coming full circle
    :PROPERTIES:
    :CUSTOM_ID: ouroboros
@@ -74,6 +84,7 @@ return to the source.  This is a short explanation of that journey.
    Ben returned to maintain of gpgme Python bindings and continue
    building them from that point.
 
+
 * Relics of the past
   :PROPERTIES:
   :CUSTOM_ID: relics-past
@@ -103,6 +114,7 @@ SWIG itself, which are worth noting here.
    files.  A regular repository version has been maintained should it
    be possible to implement this better in the future.
 
+
 ** The Perils of PyPI
    :PROPERTIES:
    :CUSTOM_ID: the-perils-of-pypi
@@ -145,6 +157,7 @@ SWIG itself, which are worth noting here.
     module and instead installing the current version of GPGME along
     with the Python bindings included with that package.
 
+
 *** PyME 0·9·0 - Python support for GPGME GnuPG cryptography library
     :PROPERTIES:
     :CUSTOM_ID: pypi-gpgme-90
@@ -164,6 +177,7 @@ SWIG itself, which are worth noting here.
     this module, but it may lack a number of more recent features
     added to GPGME.
 
+
 * Footnotes
 
 [fn:1] In all likelihood this would have been Python 2.2 or possibly
diff --git a/lang/python/doc/src/what-is-new b/lang/python/doc/src/what-is-new
index 5bcb5ae..ab94e3e 100644
--- a/lang/python/doc/src/what-is-new
+++ b/lang/python/doc/src/what-is-new
@@ -17,15 +17,13 @@
 
 | Version:        | 0.0.1-draft                              |
 | GPGME Version:  | 1.13.0                                   |
-| Author:         | [[https://gnupg.org/people/index.html#sec-1-5][Ben McGinnes]] <ben at gnupg.org>             |
-| Author GPG Key: | DB4724E6FA4286C92B4E55C4321E4E2373590E5D |
+| Author:         | [[https://gnupg.org/people/index.html#sec-1-5][Ben McGinnes]] <[[mailto:ben at gnupg.org][ben at gnupg.org]]>             |
+| Author GPG Key: | [[https://hkps.pool.sks-keyservers.net/pks/lookup?search=0xDB4724E6FA4286C92B4E55C4321E4E2373590E5D&exact=on&op=get][DB4724E6FA4286C92B4E55C4321E4E2373590E5D]] |
 | Language:       | Australian English, British English      |
 | xml:lang:       | en-AU, en-GB, en                         |
 
 Last time the most obviously new thing was adding the /What's New/
-section to the HOWTO.  Now it's moving it out of the HOWTO.  Not to
-mention expanding on the documentation both generally and
-considerably.
+section to the HOWTO.  Now it's moving it out of the HOWTO.
 
 
 ** New in GPGME 1·13·0
@@ -42,3 +40,4 @@ Additions since GPGME 1.12.0 include:
 - Added =gpg.version.versionintlist= to make it easier for Python
   developers to check for a specific version number, even with beta
   versions (it will drop the "-betaN" part).
+- Bindings enter [[file:maintenance-mode][maintenance mode]] from January, 2019.
diff --git a/lang/python/doc/src/what-was-new b/lang/python/doc/src/what-was-new
index 7c851b1..1d3494c 100644
--- a/lang/python/doc/src/what-was-new
+++ b/lang/python/doc/src/what-was-new
@@ -17,8 +17,8 @@
 
 | Version:        | 0.0.1-draft                              |
 | GPGME Version:  | 1.13.0                                   |
-| Author:         | [[https://gnupg.org/people/index.html#sec-1-5][Ben McGinnes]] <ben at gnupg.org>             |
-| Author GPG Key: | DB4724E6FA4286C92B4E55C4321E4E2373590E5D |
+| Author:         | [[https://gnupg.org/people/index.html#sec-1-5][Ben McGinnes]] <[[mailto:ben at gnupg.org][ben at gnupg.org]]>             |
+| Author GPG Key: | [[https://hkps.pool.sks-keyservers.net/pks/lookup?search=0xDB4724E6FA4286C92B4E55C4321E4E2373590E5D&exact=on&op=get][DB4724E6FA4286C92B4E55C4321E4E2373590E5D]] |
 | Language:       | Australian English, British English      |
 | xml:lang:       | en-AU, en-GB, en                         |
 
diff --git a/lang/python/doc/texinfo/gpgme-python-howto.texi b/lang/python/doc/texinfo/gpgme-python-howto.texi
index 558bc87..ad3fbed 100644
--- a/lang/python/doc/texinfo/gpgme-python-howto.texi
+++ b/lang/python/doc/texinfo/gpgme-python-howto.texi
@@ -171,15 +171,15 @@ Copyright and Licensing
 @node Introduction
 @chapter Introduction
 
- at multitable {aaaaaaaaaaaaaaa} {aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa}
+ at multitable {aaaaaaaaaaaaaaa} {aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa}
 @item Version:
 @tab 0.1.4
 @item GPGME Version:
 @tab 1.12.1
 @item Author:
- at tab @uref{https://gnupg.org/people/index.html#sec-1-5, Ben McGinnes} <ben@@gnupg.org>
+ at tab @uref{https://gnupg.org/people/index.html#sec-1-5, Ben McGinnes} <@email{ben@@gnupg.org, ben@@gnupg.org}>
 @item Author GPG Key:
- at tab DB4724E6FA4286C92B4E55C4321E4E2373590E5D
+ at tab @uref{https://hkps.pool.sks-keyservers.net/pks/lookup?search=0xDB4724E6FA4286C92B4E55C4321E4E2373590E5D&exact=on&op=get, DB4724E6FA4286C92B4E55C4321E4E2373590E5D}
 @item Language:
 @tab Australian English, British English
 @item Language codes:
@@ -3200,31 +3200,35 @@ from the author at any of the following URLs:
 
 @itemize
 @item
- at uref{https://files.au.adversary.org/crypto/gpgme-python-howto.html, GPGME Python Bindings HOWTO draft (XHTML AWS S3 SSL)}
+ at uref{https://files.au.adversary.org/crypto/gpgme-python-howto.html, GPGME Python Bindings HOWTO draft (XHTML single file, AWS S3 SSL)}
 @item
- at uref{http://files.au.adversary.org/crypto/gpgme-python-howto.html, GPGME Python Bindings HOWTO draft (XHTML AWS S3 no SSL)}
+ at uref{http://files.au.adversary.org/crypto/gpgme-python-howto.html, GPGME Python Bindings HOWTO draft (XHTML single file, AWS S3 no SS)}
 @item
- at uref{https://files.au.adversary.org/crypto/gpgme-python-howto.texi, GPGME Python Bindings HOWTO draft (Texinfo file AWS S3 SSL)}
+ at uref{https://files.au.adversary.org/crypto/gpgme-python-howto-split/index.html, GPGME Python Bindings HOWTO draft (XHTML multiple files, AWS S3 SSL)}
 @item
- at uref{http://files.au.adversary.org/crypto/gpgme-python-howto.texi, GPGME Python Bindings HOWTO draft (Texinfo file AWS S3 no SSL)}
- at item
- at uref{https://files.au.adversary.org/crypto/gpgme-python-howto.info, GPGME Python Bindings HOWTO draft (Info file AWS S3 SSL)}
- at item
- at uref{http://files.au.adversary.org/crypto/gpgme-python-howto.info, GPGME Python Bindings HOWTO draft (Info file AWS S3 no SSL)}
- at item
- at uref{https://files.au.adversary.org/crypto/gpgme-python-howto.rst, GPGME Python Bindings HOWTO draft (reST file AWS S3 SSL)}
- at item
- at uref{http://files.au.adversary.org/crypto/gpgme-python-howto.rst, GPGME Python Bindings HOWTO draft (reST file AWS S3 no SSL)}
+ at uref{http://files.au.adversary.org/crypto/gpgme-python-howto-split/index.html, GPGME Python Bindings HOWTO draft (XHTML multiple files, AWS S3 no SSL)}
 @end itemize
 
 All of these draft versions except for one have been generated from
-this document via Emacs @uref{https://orgmode.org/, Org mode} and @uref{https://www.gnu.org/software/texinfo/, GNU Texinfo}.  Though it is likely
-that the specific @uref{https://files.au.adversary.org/crypto/gpgme-python-howto, file} @uref{http://files.au.adversary.org/crypto/gpgme-python-howto.org, version} used will be on the same server with
-the generated output formats.
+this document via GNU Emacs @uref{https://orgmode.org/, Org mode} and @uref{https://www.gnu.org/software/texinfo/, GNU Texinfo}.  Though it is
+likely that the specific @uref{https://files.au.adversary.org/crypto/gpgme-python-howto, file} @uref{http://files.au.adversary.org/crypto/gpgme-python-howto.org, version} used will be on the same server
+with the generated output formats.
+
+The GNU Texinfo and reStructured Text versions ship with the software,
+while the GNU Emacs Info verseion is generated from the Texinfo
+version using GNU Texinfo or GNU Makeinfo.  The Texinfo format is
+generated from the original Org mode source file in Org mode itself
+either within GNU Emacs or via the command line by invoking Emacs in
+batch mode:
+
+ at example
+emacs gpgme-python-howto.org --batch -f org-texinfo-export-to-texinfo --kill
+emacs gpgme-python-howto --batch -f org-texinfo-export-to-texinfo --kill
+ at end example
 
-The one exception is the reStructuredText version, which was converted
-using the latest version of Pandoc from the Org mode source file using
-either of the following two commands:
+The reStructuredText format is also generated from the Org-mode source
+file, except it is generated using @uref{https://pandoc.org, Pandoc} with either of the following
+commands:
 
 @example
 pandoc -f org -t rst+smart -o gpgme-python-howto.rst gpgme-python-howto.org
diff --git a/lang/python/doc/texinfo/index.texi b/lang/python/doc/texinfo/index.texi
index 2ec5e24..2250d1e 100644
--- a/lang/python/doc/texinfo/index.texi
+++ b/lang/python/doc/texinfo/index.texi
@@ -47,6 +47,10 @@ GPGME Python Bindings
 @uref{short-history, A short history of the project}
 @item
 @uref{what-is-new, What's New}
+ at itemize
+ at item
+ at uref{maintenance-mode, Maintenance Mode} (from January, 2019)
+ at end itemize
 @item
 @uref{what-was-new, What Was New}
 @item
diff --git a/lang/python/doc/texinfo/maintenance-mode.texi b/lang/python/doc/texinfo/maintenance-mode.texi
new file mode 100644
index 0000000..ad52606
--- /dev/null
+++ b/lang/python/doc/texinfo/maintenance-mode.texi
@@ -0,0 +1,123 @@
+\input texinfo    @c -*- texinfo -*-
+ at c %**start of header
+ at setfilename maintenance-mode.info
+ at settitle Maintenance Mode
+ at documentencoding UTF-8
+ at documentlanguage en
+ at c %**end of header
+
+ at finalout
+ at titlepage
+ at title Maintenance Mode
+ at author Ben McGinnes
+ at end titlepage
+
+ at contents
+
+ at ifnottex
+ at node Top
+ at top Maintenance Mode
+ at end ifnottex
+
+ at menu
+* Maintenance Mode from 2019::
+
+ at detailmenu
+--- The Detailed Node Listing ---
+
+Maintenance Mode from 2019
+
+* Maintainer from 2019 onward::
+* Using the Python Bindings from 2019 and beyond::
+
+ at end detailmenu
+ at end menu
+
+ at node Maintenance Mode from 2019
+ at chapter Maintenance Mode from 2019
+
+ at multitable {aaaaaaaaaaaaaaa} {aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa}
+ at item Version:
+ at tab 0.0.1-draft
+ at item GPGME Version:
+ at tab 1.13.0
+ at item Author:
+ at tab @uref{https://gnupg.org/people/index.html#sec-1-5, Ben McGinnes} <@email{ben@@gnupg.org, ben@@gnupg.org}>
+ at item Author GPG Key:
+ at tab @uref{https://hkps.pool.sks-keyservers.net/pks/lookup?search=0xDB4724E6FA4286C92B4E55C4321E4E2373590E5D&exact=on&op=get, DB4724E6FA4286C92B4E55C4321E4E2373590E5D}
+ at item Language:
+ at tab Australian English, British English
+ at item xml:lang:
+ at tab en-AU, en-GB, en
+ at end multitable
+
+From the beginning of 2019 the Python bindings to GPGME will enter
+maintenance mode, meaning that new features will not be added and only
+bug fixes and security fixes will be made.  This also means that
+documentation beyond that existing at the end of 2018 will not be
+developed further except to correct errors.
+
+Though use of these bindings appears to have been quite well received,
+there has been no indication of what demand there is, if any for
+either financial backing of the current Python bindings development or
+support contracts with g10code GmbH citing the necessity of including
+the bindings.
+
+ at menu
+* Maintainer from 2019 onward::
+* Using the Python Bindings from 2019 and beyond::
+ at end menu
+
+ at node Maintainer from 2019 onward
+ at section Maintainer from 2019 onward
+
+How does this affect the position of GnuPG Python Bindings Maintainer?
+
+Well, I will remain as maintainer of the bindings; but without funding
+for that position, the amount of time I will be able to dedicate
+solely to this task will be limited and reduced to volunteered time.
+As with all volunteered time and effort in free software projects,
+this will be subject to numerous external imperatives.
+
+ at node Using the Python Bindings from 2019 and beyond
+ at section Using the Python Bindings from 2019 and beyond
+
+For most, if not all, Python developers using these bindings; they
+will continue to “just work” the same as they always have.  Expansions
+of GPGME itself are usually handled by SWIG with the existing code and
+thus bindings are generated properly when the bindings are installed
+alongside GPGME and when the latter is built from source.
+
+In the rare circumstances where that is not enough to address some new
+addition to GPGME, then that is a bug and thus subject to the
+maintenance mode provisions (i.e. it will be fixed following a bug
+report being raised and your humble author will need to remember where
+the timesheet template was filed, depending on how many years off such
+an event is).
+
+All the GPGME functionality will continue to be accessible via the
+lower level, dynamically generated methods which match the GPGME C
+documentation.  While the more intuitively Pythonic higher level layer
+already covers the vast majority of functionality people require with
+key generation, signatures, certifications (key signing), encryption,
+decryption, verification, validation, trust levels and so on.
+
+Any wanted features lacking in the Python bindings are usually lacking
+because they are missing from GPGME itself (e.g. revoking keys via the
+API) and in such cases they are usually deliberately excluded.  More 
+
+Any features existing in the dynamically generated layer for which
+people want a specific, higher level function included to make it more
+Pythonic (e.g. to avoid needing to learn or memorise cryptographic
+mode values or GnuPG status code numbers), would be a feature request
+and @emph{not} a bug.
+
+It is still worthwhile requesting it, but the addition of such a
+feature would not be guaranteed and provided on a purely volunteer
+basis.  Expediting such a request would require funding that request.
+
+Those with a commercial interest in expediting such a feature request
+already know how to @uref{https://gnupg.org/cgi-bin/procdonate.cgi?mode=preset, expedite it} (use the message field to state what
+feature is being requested).
+
+ at bye
\ No newline at end of file
diff --git a/lang/python/doc/texinfo/short-history.texi b/lang/python/doc/texinfo/short-history.texi
index 395901f..480aebf 100644
--- a/lang/python/doc/texinfo/short-history.texi
+++ b/lang/python/doc/texinfo/short-history.texi
@@ -49,6 +49,21 @@ The Perils of PyPI
 @node Overview
 @chapter Overview
 
+ at multitable {aaaaaaaaaaaaaaa} {aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa}
+ at item Version:
+ at tab 0.0.1-draft
+ at item GPGME Version:
+ at tab 1.13.0
+ at item Author:
+ at tab @uref{https://gnupg.org/people/index.html#sec-1-5, Ben McGinnes} <@email{ben@@gnupg.org, ben@@gnupg.org}>
+ at item Author GPG Key:
+ at tab @uref{https://hkps.pool.sks-keyservers.net/pks/lookup?search=0xDB4724E6FA4286C92B4E55C4321E4E2373590E5D&exact=on&op=get, DB4724E6FA4286C92B4E55C4321E4E2373590E5D}
+ at item Language:
+ at tab Australian English, British English
+ at item xml:lang:
+ at tab en-AU, en-GB, en
+ at end multitable
+
 The GPGME Python bindings passed through many hands and numerous
 phases before, after a fifteen year journey, coming full circle to
 return to the source.  This is a short explanation of that journey.
diff --git a/lang/python/doc/texinfo/what-is-new.texi b/lang/python/doc/texinfo/what-is-new.texi
index 0b70d21..25d12c2 100644
--- a/lang/python/doc/texinfo/what-is-new.texi
+++ b/lang/python/doc/texinfo/what-is-new.texi
@@ -35,15 +35,15 @@ What's New
 @node What's New
 @chapter What's New
 
- at multitable {aaaaaaaaaaaaaaa} {aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa}
+ at multitable {aaaaaaaaaaaaaaa} {aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa}
 @item Version:
 @tab 0.0.1-draft
 @item GPGME Version:
 @tab 1.13.0
 @item Author:
- at tab @uref{https://gnupg.org/people/index.html#sec-1-5, Ben McGinnes} <ben@@gnupg.org>
+ at tab @uref{https://gnupg.org/people/index.html#sec-1-5, Ben McGinnes} <@email{ben@@gnupg.org, ben@@gnupg.org}>
 @item Author GPG Key:
- at tab DB4724E6FA4286C92B4E55C4321E4E2373590E5D
+ at tab @uref{https://hkps.pool.sks-keyservers.net/pks/lookup?search=0xDB4724E6FA4286C92B4E55C4321E4E2373590E5D&exact=on&op=get, DB4724E6FA4286C92B4E55C4321E4E2373590E5D}
 @item Language:
 @tab Australian English, British English
 @item xml:lang:
@@ -51,9 +51,7 @@ What's New
 @end multitable
 
 Last time the most obviously new thing was adding the @emph{What's New}
-section to the HOWTO.  Now it's moving it out of the HOWTO.  Not to
-mention expanding on the documentation both generally and
-considerably.
+section to the HOWTO.  Now it's moving it out of the HOWTO.
 
 @menu
 * New in GPGME 1·13·0::
@@ -75,6 +73,8 @@ Moving the preceding, archival, segments into @uref{what-was-new.org, another fi
 Added @samp{gpg.version.versionintlist} to make it easier for Python
 developers to check for a specific version number, even with beta
 versions (it will drop the "-betaN" part).
+ at item
+Bindings enter @uref{maintenance-mode, maintenance mode} from January, 2019.
 @end itemize
 
 @bye
\ No newline at end of file
diff --git a/lang/python/doc/texinfo/what-was-new.texi b/lang/python/doc/texinfo/what-was-new.texi
index f81e0c3..63317d8 100644
--- a/lang/python/doc/texinfo/what-was-new.texi
+++ b/lang/python/doc/texinfo/what-was-new.texi
@@ -39,15 +39,15 @@ What Was New in GPGME 1·12·0
 @node What Was New
 @chapter What Was New
 
- at multitable {aaaaaaaaaaaaaaa} {aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa}
+ at multitable {aaaaaaaaaaaaaaa} {aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa}
 @item Version:
 @tab 0.0.1-draft
 @item GPGME Version:
 @tab 1.13.0
 @item Author:
- at tab @uref{https://gnupg.org/people/index.html#sec-1-5, Ben McGinnes} <ben@@gnupg.org>
+ at tab @uref{https://gnupg.org/people/index.html#sec-1-5, Ben McGinnes} <@email{ben@@gnupg.org, ben@@gnupg.org}>
 @item Author GPG Key:
- at tab DB4724E6FA4286C92B4E55C4321E4E2373590E5D
+ at tab @uref{https://hkps.pool.sks-keyservers.net/pks/lookup?search=0xDB4724E6FA4286C92B4E55C4321E4E2373590E5D&exact=on&op=get, DB4724E6FA4286C92B4E55C4321E4E2373590E5D}
 @item Language:
 @tab Australian English, British English
 @item xml:lang:
diff --git a/lang/python/setup.py.in b/lang/python/setup.py.in
index f23015a..9785a28 100755
--- a/lang/python/setup.py.in
+++ b/lang/python/setup.py.in
@@ -30,50 +30,50 @@ import subprocess
 import sys
 
 # Out-of-tree build of the gpg bindings.
-gpg_error_config = ["gpg-error-config"]
-gpgme_config_flags = ["--thread=pthread"]
-gpgme_config = ["gpgme-config"] + gpgme_config_flags
-gpgme_h = ""
+gpg_error_config = ['gpg-error-config']
+gpgme_config_flags = ['--thread=pthread']
+gpgme_config = ['gpgme-config'] + gpgme_config_flags
+gpgme_h = ''
 include_dirs = [os.getcwd()]
 library_dirs = []
 in_tree = False
 extra_swig_opts = []
 extra_macros = dict()
 
-top_builddir = os.environ.get("top_builddir")
+top_builddir = os.environ.get('top_builddir')
 if top_builddir:
     # In-tree build.
     in_tree = True
-    gpgme_config = [os.path.join(top_builddir, "src/gpgme-config")
+    gpgme_config = [os.path.join(top_builddir, 'src/gpgme-config')
                     ] + gpgme_config_flags
-    gpgme_h = os.path.join(top_builddir, "src/gpgme.h")
+    gpgme_h = os.path.join(top_builddir, 'src/gpgme.h')
     library_dirs = [os.path.join(top_builddir,
-                                 "src/.libs")]  # XXX uses libtool internals
+                                 'src/.libs')]  # XXX uses libtool internals
     extra_macros.update(
         HAVE_CONFIG_H=1,
         HAVE_DATA_H=1,
         IN_TREE_BUILD=1,
     )
 
-if hasattr(subprocess, "DEVNULL"):
+if hasattr(subprocess, 'DEVNULL'):
     devnull = subprocess.DEVNULL
 else:
-    devnull = open(os.devnull, "w")
+    devnull = open(os.devnull, 'w')
 
 try:
     subprocess.check_call(gpgme_config + ['--version'], stdout=devnull)
 except:
-    sys.exit("Could not find gpgme-config.  " +
-             "Please install the libgpgme development package.")
+    sys.exit('Could not find gpgme-config.  ' +
+             'Please install the libgpgme development package.')
 
 
 def getconfig(what, config=gpgme_config):
     confdata = subprocess.Popen(
-        config + ["--%s" % what], stdout=subprocess.PIPE).communicate()[0]
+        config + ['--%s' % what], stdout=subprocess.PIPE).communicate()[0]
     return [x for x in confdata.decode('utf-8').split() if x != '']
 
 
-version = version_raw = getconfig("version")[0]
+version = version_raw = getconfig('version')[0]
 if '-' in version:
     version = version.split('-')[0]
 major, minor, patch = map(int, version.split('.'))
@@ -82,31 +82,31 @@ if not (major > 1 or (major == 1 and minor >= 7)):
     sys.exit('Need at least GPGME version 1.7, found {}.'.format(version_raw))
 
 if not gpgme_h:
-    gpgme_h = os.path.join(getconfig("prefix")[0], "include", "gpgme.h")
+    gpgme_h = os.path.join(getconfig('prefix')[0], 'include', 'gpgme.h')
 
 define_macros = []
 libs = getconfig('libs')
 
 # Define extra_macros for both the SWIG and C code
 for k, v in extra_macros.items():
-    extra_swig_opts.append("-D{0}={1}".format(k, v))
+    extra_swig_opts.append('-D{0}={1}'.format(k, v))
     define_macros.append((k, str(v)))
 
 for item in getconfig('cflags'):
-    if item.startswith("-I"):
+    if item.startswith('-I'):
         include_dirs.append(item[2:])
-    elif item.startswith("-D"):
-        defitem = item[2:].split("=", 1)
+    elif item.startswith('-D'):
+        defitem = item[2:].split('=', 1)
         if len(defitem) == 2:
             define_macros.append((defitem[0], defitem[1]))
         else:
             define_macros.append((defitem[0], None))
 
 # Adjust include and library locations in case of win32
-uname_s = os.popen("uname -s").read()
-if uname_s.startswith("MINGW32"):
+uname_s = os.popen('uname -s').read()
+if uname_s.startswith('MINGW32'):
     mnts = [
-        x.split()[0:3:2] for x in os.popen("mount").read().split("\n") if x
+        x.split()[0:3:2] for x in os.popen('mount').read().split('\n') if x
     ]
     tmplist = sorted([(len(x[1]), x[1], x[0]) for x in mnts])
     tmplist.reverse()
@@ -120,7 +120,7 @@ if uname_s.startswith("MINGW32"):
                 extra_dirs.append(os.path.join(tgt, item))
                 break
     include_dirs += extra_dirs
-    for item in [x[2:] for x in libs if x.startswith("-L")]:
+    for item in [x[2:] for x in libs if x.startswith('-L')]:
         for ln, mnt, tgt in tmplist:
             if item.startswith(mnt):
                 item = os.path.normpath(item[ln:])
@@ -131,7 +131,7 @@ if uname_s.startswith("MINGW32"):
 
 
 def in_srcdir(name):
-    return os.path.join(os.environ.get("srcdir", ""), name)
+    return os.path.join(os.environ.get('srcdir', ''), name)
 
 
 def up_to_date(source, target):
@@ -160,9 +160,9 @@ def up_to_date(source, target):
 
 class BuildExtFirstHack(build):
     def _read_header(self, header, cflags):
-        tmp_include = self._in_build_base("include1.h")
+        tmp_include = self._in_build_base('include1.h')
         with open(tmp_include, 'w') as f:
-            f.write("#include <%s>" % header)
+            f.write('#include <%s>' % header)
         return subprocess.check_output(
             os.environ.get('CPP', 'cc -E').split() + cflags +
             [tmp_include]).decode('utf-8')
@@ -173,11 +173,11 @@ class BuildExtFirstHack(build):
                 if f.read() == content:
                     return
 
-        with open(target, "w") as sink:
+        with open(target, 'w') as sink:
             sink.write(content)
 
     def _generate_gpgme_h(self, source_name, sink_name):
-        print("Using gpgme.h from {}".format(source_name))
+        print('Using gpgme.h from {}'.format(source_name))
         shutil.copy2(source_name, sink_name)
 
     def _generate_errors_i(self):
@@ -186,11 +186,11 @@ class BuildExtFirstHack(build):
             subprocess.check_call(
                 gpg_error_config + ['--version'], stdout=devnull)
         except:
-            sys.exit("Could not find gpg-error-config.  " +
-                     "Please install the libgpg-error development package.")
+            sys.exit('Could not find gpg-error-config.  ' +
+                     'Please install the libgpg-error development package.')
 
         gpg_error_content = self._read_header(
-            "gpg-error.h", getconfig("cflags", config=gpg_error_config))
+            'gpg-error.h', getconfig('cflags', config=gpg_error_config))
 
         filter_re = re.compile(r'GPG_ERR_[^ ]* =')
         rewrite_re = re.compile(r' *(.*) = .*')
@@ -203,7 +203,7 @@ class BuildExtFirstHack(build):
                 r'%constant long \1 = \1;' + '\n', line.strip())
 
         self._write_if_unchanged(
-            self._in_build_base("errors.i"), errors_i_content)
+            self._in_build_base('errors.i'), errors_i_content)
 
     def _in_build_base(self, name):
         return os.path.join(self.build_base, name)
@@ -213,7 +213,7 @@ class BuildExtFirstHack(build):
         if not os.path.exists(self.build_base):
             os.makedirs(self.build_base)
 
-        self._generate_gpgme_h(gpgme_h, self._in_build_base("gpgme.h"))
+        self._generate_gpgme_h(gpgme_h, self._in_build_base('gpgme.h'))
         self._generate_errors_i()
 
         # Copy due to https://bugs.python.org/issue2624
@@ -225,9 +225,9 @@ class BuildExtFirstHack(build):
                 shutil.copy2(source, target)
 
         # Append generated files via build_base
-        if not os.path.exists(os.path.join(self.build_lib, "gpg")):
-            os.makedirs(os.path.join(self.build_lib, "gpg"))
-        shutil.copy2("version.py", os.path.join(self.build_lib, "gpg"))
+        if not os.path.exists(os.path.join(self.build_lib, 'gpg')):
+            os.makedirs(os.path.join(self.build_lib, 'gpg'))
+        shutil.copy2('version.py', os.path.join(self.build_lib, 'gpg'))
 
     def run(self):
         self._generate()
@@ -248,7 +248,7 @@ py3 = [] if sys.version_info.major < 3 else ['-py3']
 swig_sources = []
 swig_opts = ['-threads'] + py3 + extra_swig_opts
 swige = Extension(
-    "gpg._gpgme",
+    'gpg._gpgme',
     sources=swig_sources,
     swig_opts=swig_opts,
     include_dirs=include_dirs,
@@ -257,12 +257,34 @@ swige = Extension(
     extra_link_args=libs)
 
 setup(
-    name="gpg",
+    name='gpg',
     cmdclass={'build': BuildExtFirstHack},
-    version="@VERSION@",
-    description='Python bindings for GPGME GnuPG cryptography library',
-    # TODO: add a long description
-    # long_description=long_description,
+    version='@VERSION@',
+    # Note: description appears as Summary in egg-info file.
+    description='Python bindings to the GPGME API of the GnuPG cryptography library.',
+    # Note: long-description appears as Description in egg-info file.
+    long_description='''Dynamically generated bindings to the C API of the GNU Privacy Guard.
+
+The GPG Made Easy (GPGME) library provides a high-level API in C to all the
+component software and libraries in the GnuPG Project, including GPG itself
+(the GnuPG OpenPGP implementation), libgcrypt, libgpg-error, libassuan and
+more.
+
+The official CPython bindings to GPGME are generated during the compiling
+process of GPGME itself and built for the specific C header and include files
+produced when GPGME is compiled using SWIG.  This provides access to over two
+thousand functions, methods and values via both the lower level dynamically
+generated bindings and a more intuitively pythonic higher level layer.
+
+While the lower level, dynamically generated bindings provide access to
+everything which GPGME itself provides; the higher level layer is easier to use
+by Python developers, provides access to the vast majority of functionality
+developers would want from GnuPG and is extensively documented.
+
+GPGME and these bindings is available here:
+
+    https://gnupg.org/software/gpgme/index.html
+''',
     author='The GnuPG hackers',
     author_email='gnupg-devel at gnupg.org',
     url='https://www.gnupg.org',
@@ -271,7 +293,7 @@ setup(
         'gpg', 'gpg.constants', 'gpg.constants.data', 'gpg.constants.keylist',
         'gpg.constants.sig', 'gpg.constants.tofu'
     ],
-    license="LGPL2.1+ (the library), GPL2+ (tests and examples)",
+    license='LGPL2.1+ (the library), GPL2+ (tests and examples)',
     classifiers=[
         'Development Status :: 4 - Beta',
         'Intended Audience :: Developers',

-----------------------------------------------------------------------

Summary of changes:
 lang/python/doc/rst/gpgme-python-howto.rst      |  48 +++++----
 lang/python/doc/rst/index.rst                   |   3 +
 lang/python/doc/rst/maintenance-mode.rst        |  98 +++++++++++++++++++
 lang/python/doc/rst/short-history.rst           |  22 +++++
 lang/python/doc/rst/what-is-new.rst             |  12 ++-
 lang/python/doc/rst/what-was-new.rst            |   7 +-
 lang/python/doc/src/gpgme-python-howto          |  41 +++++---
 lang/python/doc/src/index                       |   1 +
 lang/python/doc/src/maintenance-mode            |  95 ++++++++++++++++++
 lang/python/doc/src/short-history               |  16 ++-
 lang/python/doc/src/what-is-new                 |   9 +-
 lang/python/doc/src/what-was-new                |   4 +-
 lang/python/doc/texinfo/gpgme-python-howto.texi |  46 +++++----
 lang/python/doc/texinfo/index.texi              |   4 +
 lang/python/doc/texinfo/maintenance-mode.texi   | 125 ++++++++++++++++++++++++
 lang/python/doc/texinfo/short-history.texi      |  15 +++
 lang/python/doc/texinfo/what-is-new.texi        |  12 +--
 lang/python/doc/texinfo/what-was-new.texi       |   6 +-
 lang/python/setup.py.in                         | 108 ++++++++++++--------
 19 files changed, 548 insertions(+), 124 deletions(-)
 create mode 100644 lang/python/doc/rst/maintenance-mode.rst
 create mode 100644 lang/python/doc/src/maintenance-mode
 create mode 100644 lang/python/doc/texinfo/maintenance-mode.texi


hooks/post-receive
-- 
GnuPG Made Easy
http://git.gnupg.org




More information about the Gnupg-commits mailing list