python: Get version information from the build system.
authorJustus Winter <justus@g10code.com>
Thu, 9 Jun 2016 10:38:50 +0000 (12:38 +0200)
committerJustus Winter <justus@g10code.com>
Thu, 16 Jun 2016 12:07:41 +0000 (14:07 +0200)
* configure.ac: Generate 'setup.py' and 'version.py'.
* lang/python/Makefile.am: Use generated setup script.
* lang/python/pyme/version.py: Turn it into a template, and get
version information from the build system.  Also drop some variables.
* lang/python/setup.py: Likewise.  This way we can avoid importing the
version module, which is frowned upon and actually caused a problem.

Signed-off-by: Justus Winter <justus@g10code.com>
configure.ac
lang/python/Makefile.am
lang/python/pyme/version.py [deleted file]
lang/python/pyme/version.py.in [new file with mode: 0644]
lang/python/setup.py.in [moved from lang/python/setup.py with 87% similarity]

index b84b04b..4269540 100644 (file)
@@ -775,7 +775,10 @@ AC_CONFIG_FILES(lang/qt/tests/Makefile)
 AC_CONFIG_FILES([lang/Makefile lang/cl/Makefile lang/cl/gpgme.asd])
 AM_COND_IF([HAVE_DOXYGEN], [AC_CONFIG_FILES([lang/qt/doc/Doxyfile])])
 AC_CONFIG_FILES(lang/qt/doc/Makefile)
-AC_CONFIG_FILES([lang/python/Makefile lang/python/tests/Makefile])
+AC_CONFIG_FILES([lang/python/Makefile
+                lang/python/setup.py
+                lang/python/pyme/version.py
+                lang/python/tests/Makefile])
 AC_OUTPUT
 
 echo "
index 46f45d0..2c84f2b 100644 (file)
@@ -40,7 +40,8 @@ gpgme_wrap.c pyme/pygpgme.py: gpgme.i errors.i gpgme.h copystamp
          $<
 
 all-local: gpgme_wrap.c pyme/pygpgme.py copystamp
-       CFLAGS="$(CFLAGS)" $(PYTHON) $(srcdir)/setup.py build --verbose
+       CFLAGS="$(CFLAGS)" \
+         $(PYTHON) setup.py build --verbose
 
 clean-local:
        rm -rf -- build gpgme.h errors.i gpgme_wrap.c pyme/pygpgme.py \
@@ -50,7 +51,7 @@ clean-local:
        fi
 
 install-exec-local:
-       $(PYTHON) $(srcdir)/setup.py install \
+       $(PYTHON) setup.py install \
          --prefix $(DESTDIR)$(prefix) \
          --record $(DESTDIR)$(pythondir)/pyme/install_files.txt \
          --verbose
diff --git a/lang/python/pyme/version.py b/lang/python/pyme/version.py
deleted file mode 100644 (file)
index b60f50c..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-
-productname = 'pyme'
-versionstr = "0.9.1"
-revno = int('$Rev: 281 $'[6:-2])
-revstr = "Rev %d" % revno
-datestr = '$Date$'
-
-versionlist = versionstr.split(".")
-major = versionlist[0]
-minor = versionlist[1]
-patch = versionlist[2]
-copyright = "Copyright (C) 2015 Ben McGinnes, 2014-2015 Martin Albrecht, 2004-2008 Igor Belyi, 2002 John Goerzen"
-author = "Ben McGinnes"
-author_email = "ben@adversary.org"
-description = "Python 3 support for GPGME GnuPG cryptography library"
-bigcopyright = """%(productname)s %(versionstr)s (%(revstr)s)
-%(copyright)s <%(author_email)s>""" % locals()
-
-banner = bigcopyright + """
-This software comes with ABSOLUTELY NO WARRANTY; see the file
-COPYING for details.  This is free software, and you are welcome
-to distribute it under the conditions laid out in COPYING."""
-
-homepage = "https://gnupg.org"
-license = """Copyright (C) 2015 Ben McGinnes <ben@adversary.org>
-Copyright (C) 2014, 2015 Martin Albrecht <martinralbrecht@googlemail.com>
-Copyright (C) 2004, 2008 Igor Belyi <belyi@users.sourceforge.net>
-Copyright (C) 2002 John Goerzen <jgoerzen@complete.org>
-
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Lesser General Public
-License as published by the Free Software Foundation; either
-version 2.1 of the License, or (at your option) any later version.
-
-This library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Lesser General Public License for more details.
-
-You should have received a copy of the GNU Lesser General Public
-License along with this library; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA"""
diff --git a/lang/python/pyme/version.py.in b/lang/python/pyme/version.py.in
new file mode 100644 (file)
index 0000000..764bf69
--- /dev/null
@@ -0,0 +1,62 @@
+# Copyright (C) 2016 g10 Code GmbH
+# Copyright (C) 2015 Ben McGinnes <ben@adversary.org>
+# Copyright (C) 2004 Igor Belyi <belyi@users.sourceforge.net>
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
+
+productname = 'pyme'
+versionstr = "@VERSION@"
+
+# XXX: Do we want to embed such information?
+#revno = int('$Rev: 281 $'[6:-2])
+#revstr = "Rev %d" % revno
+
+versionlist = versionstr.split(".")
+major = versionlist[0]
+minor = versionlist[1]
+patch = versionlist[2]
+
+copyright = """\
+Copyright (C) 2016 g10 Code GmbH
+Copyright (C) 2015 Ben McGinnes
+Copyright (C) 2014-2015 Martin Albrecht
+Copyright (C) 2004-2008 Igor Belyi
+Copyright (C) 2002 John Goerzen"""
+
+author = "The GnuPG hackers"
+author_email = "gnupg-devel@gnupg.org"
+
+description = "Python 3 support for GPGME GnuPG cryptography library"
+homepage = "https://gnupg.org"
+
+license = """Copyright (C) 2016 g10 Code GmbH
+Copyright (C) 2015 Ben McGinnes <ben@adversary.org>
+Copyright (C) 2014, 2015 Martin Albrecht <martinralbrecht@googlemail.com>
+Copyright (C) 2004, 2008 Igor Belyi <belyi@users.sourceforge.net>
+Copyright (C) 2002 John Goerzen <jgoerzen@complete.org>
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or (at your option) any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA"""
similarity index 87%
rename from lang/python/setup.py
rename to lang/python/setup.py.in
index 0d90403..9e6e008 100755 (executable)
@@ -1,8 +1,6 @@
 #!/usr/bin/env python3
 
-
-# Module: installer
-# COPYRIGHT #
+# Copyright (C) 2016 g10 Code GmbH
 # Copyright (C) 2004 Igor Belyi <belyi@users.sourceforge.net>
 # Copyright (C) 2002 John Goerzen <jgoerzen@complete.org>
 #
 #    You should have received a copy of the GNU Lesser General Public
 #    License along with this library; if not, write to the Free Software
 #    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
-# END OF COPYRIGHT #
 
 from distutils.core import setup, Extension
 import os, os.path, sys
 import subprocess
 
-sys.path.insert(0, os.path.dirname(__file__))
-import pyme.version
-
 def getconfig(what):
     confdata = subprocess.Popen(["../../src/gpgme-config", "--%s" % what],
                                 stdout=subprocess.PIPE).communicate()[0]
@@ -80,14 +74,13 @@ swige = Extension("pyme._pygpgme", ["gpgme_wrap.c", "helpers.c"],
                   extra_link_args = libs)
 
 setup(name = "pyme",
-      version=pyme.version.versionstr,
-      description=pyme.version.description,
-      author=pyme.version.author,
-      author_email=pyme.version.author_email,
-      url=pyme.version.homepage,
+      version="@VERSION@",
+      description='Python bindings for GPGME GnuPG cryptography library',
+      author='The GnuPG hackers',
+      author_email='gnupg-devel@gnupg.org',
+      url='https://www.gnupg.org',
       ext_modules=[swige],
       packages = ['pyme', 'pyme.constants', 'pyme.constants.data',
                   'pyme.constants.keylist', 'pyme.constants.sig'],
-      license=pyme.version.copyright + \
-                ", Licensed under the GPL version 2 and the LGPL version 2.1"
+      license="LGPL2.1+ (the library), GPL2+ (tests and examples)"
 )