python: Get version information from the build system.

* 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>
This commit is contained in:
Justus Winter 2016-06-09 12:38:50 +02:00
parent a852f99a0a
commit 7eef399d89
5 changed files with 76 additions and 59 deletions

View File

@ -775,7 +775,10 @@ AC_CONFIG_FILES(lang/qt/tests/Makefile)
AC_CONFIG_FILES([lang/Makefile lang/cl/Makefile lang/cl/gpgme.asd]) AC_CONFIG_FILES([lang/Makefile lang/cl/Makefile lang/cl/gpgme.asd])
AM_COND_IF([HAVE_DOXYGEN], [AC_CONFIG_FILES([lang/qt/doc/Doxyfile])]) AM_COND_IF([HAVE_DOXYGEN], [AC_CONFIG_FILES([lang/qt/doc/Doxyfile])])
AC_CONFIG_FILES(lang/qt/doc/Makefile) 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 AC_OUTPUT
echo " echo "

View 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 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: clean-local:
rm -rf -- build gpgme.h errors.i gpgme_wrap.c pyme/pygpgme.py \ rm -rf -- build gpgme.h errors.i gpgme_wrap.c pyme/pygpgme.py \
@ -50,7 +51,7 @@ clean-local:
fi fi
install-exec-local: install-exec-local:
$(PYTHON) $(srcdir)/setup.py install \ $(PYTHON) setup.py install \
--prefix $(DESTDIR)$(prefix) \ --prefix $(DESTDIR)$(prefix) \
--record $(DESTDIR)$(pythondir)/pyme/install_files.txt \ --record $(DESTDIR)$(pythondir)/pyme/install_files.txt \
--verbose --verbose

View File

@ -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"""

View File

@ -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"""

View File

@ -1,8 +1,6 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
# Copyright (C) 2016 g10 Code GmbH
# Module: installer
# COPYRIGHT #
# Copyright (C) 2004 Igor Belyi <belyi@users.sourceforge.net> # Copyright (C) 2004 Igor Belyi <belyi@users.sourceforge.net>
# Copyright (C) 2002 John Goerzen <jgoerzen@complete.org> # Copyright (C) 2002 John Goerzen <jgoerzen@complete.org>
# #
@ -19,15 +17,11 @@
# You should have received a copy of the GNU Lesser General Public # You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software # License along with this library; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# END OF COPYRIGHT #
from distutils.core import setup, Extension from distutils.core import setup, Extension
import os, os.path, sys import os, os.path, sys
import subprocess import subprocess
sys.path.insert(0, os.path.dirname(__file__))
import pyme.version
def getconfig(what): def getconfig(what):
confdata = subprocess.Popen(["../../src/gpgme-config", "--%s" % what], confdata = subprocess.Popen(["../../src/gpgme-config", "--%s" % what],
stdout=subprocess.PIPE).communicate()[0] stdout=subprocess.PIPE).communicate()[0]
@ -80,14 +74,13 @@ swige = Extension("pyme._pygpgme", ["gpgme_wrap.c", "helpers.c"],
extra_link_args = libs) extra_link_args = libs)
setup(name = "pyme", setup(name = "pyme",
version=pyme.version.versionstr, version="@VERSION@",
description=pyme.version.description, description='Python bindings for GPGME GnuPG cryptography library',
author=pyme.version.author, author='The GnuPG hackers',
author_email=pyme.version.author_email, author_email='gnupg-devel@gnupg.org',
url=pyme.version.homepage, url='https://www.gnupg.org',
ext_modules=[swige], ext_modules=[swige],
packages = ['pyme', 'pyme.constants', 'pyme.constants.data', packages = ['pyme', 'pyme.constants', 'pyme.constants.data',
'pyme.constants.keylist', 'pyme.constants.sig'], 'pyme.constants.keylist', 'pyme.constants.sig'],
license=pyme.version.copyright + \ license="LGPL2.1+ (the library), GPL2+ (tests and examples)"
", Licensed under the GPL version 2 and the LGPL version 2.1"
) )