summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Bar-Lev <alonbl@gentoo.org>2016-09-24 02:26:37 +0300
committerAlon Bar-Lev <alonbl@gentoo.org>2016-09-24 02:26:53 +0300
commit8642c015c4c6d689766cce9f0e626d08b1478a53 (patch)
treeabc0e44964d9e30e3c7efc18d4039443f5d35fae /app-crypt/gpgme/files
parentapp-vim/perlomni: add perlomni to the tree. (diff)
downloadgentoo-8642c015c4c6d689766cce9f0e626d08b1478a53.tar.gz
gentoo-8642c015c4c6d689766cce9f0e626d08b1478a53.tar.bz2
gentoo-8642c015c4c6d689766cce9f0e626d08b1478a53.zip
app-crypt/gpgme: add python bindings
Diffstat (limited to 'app-crypt/gpgme/files')
-rw-r--r--app-crypt/gpgme/files/gpgme-1.7.0-build-python.patch136
1 files changed, 136 insertions, 0 deletions
diff --git a/app-crypt/gpgme/files/gpgme-1.7.0-build-python.patch b/app-crypt/gpgme/files/gpgme-1.7.0-build-python.patch
new file mode 100644
index 00000000000..950813fe232
--- /dev/null
+++ b/app-crypt/gpgme/files/gpgme-1.7.0-build-python.patch
@@ -0,0 +1,136 @@
+From a46cd3926d629da23b365b70b7bf24201c25d430 Mon Sep 17 00:00:00 2001
+From: Alon Bar-Lev <alon.barlev@gmail.com>
+Date: Sat, 24 Sep 2016 01:26:19 +0300
+Subject: [PATCH] build: lang: python: cleanups
+
+1. Make setup.py executable when generated.
+
+2. Add prepare target to enable prepare the source tree without building
+ anything. This is handy to enable standard distutils build outside of
+ gpgme build system.
+
+3. Treat data.h in similar manner as other VPATH issues, just copy it to
+ the srcdir to simplify build, remove the CFLAGS requirement of
+ distutils.
+
+4. Add environment variable (binary_builddir) for setup to use alternate
+ build directory so that for multiple targets same binaries may be
+ used without rebuilding the C part.
+
+The above does not alter the behavior of current build but supports the
+following sequence:
+
+$ mkdir common
+$ cd common
+$ ../configure --enable-languages=
+$ make
+$ cd ..
+$ mkdir python
+$ cd python
+$ ../configure --enable-languages=
+$ cd lang/python
+$ make prepare
+$ binary_builddir="../../../common" ./setup.py build
+$ binary_builddir="../../../common" ./setup.py install
+
+Notice the standard use of distutils which is required for package
+manager to control the python selection and build process.
+
+Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
+---
+ configure.ac | 2 +-
+ lang/python/Makefile.am | 11 ++++++-----
+ lang/python/gpgme.i | 2 +-
+ lang/python/setup.py.in | 9 +++++----
+ 4 files changed, 13 insertions(+), 11 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 4a29f2f..efa1f19 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -886,9 +886,9 @@ 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/setup.py
+ lang/python/pyme/version.py
+ lang/python/tests/Makefile])
++AC_CONFIG_FILES([lang/python/setup.py], [chmod a+x lang/python/setup.py])
+ AC_OUTPUT
+
+ echo "
+diff --git a/lang/python/Makefile.am b/lang/python/Makefile.am
+index 2271ce0..fb1eebf 100644
+--- a/lang/python/Makefile.am
++++ b/lang/python/Makefile.am
+@@ -51,17 +51,18 @@ copystamp: $(COPY_FILES) $(COPY_FILES_PYME)
+ cp -R $(COPY_FILES) . ; \
+ cp -R $(COPY_FILES_PYME) pyme ; \
+ fi
++ cp "$(top_srcdir)/src/data.h" .
+ touch $@
+
++prepare: copystamp
++
+ all-local: copystamp
+ for PYTHON in $(PYTHONS); do \
+- CFLAGS="$(CFLAGS) -I$(top_srcdir)" \
+- $$PYTHON setup.py build --verbose ; \
++ $$PYTHON setup.py build --verbose ; \
+ done
+
+ dist/pyme3-$(VERSION).tar.gz dist/pyme3-$(VERSION).tar.gz.asc: copystamp
+- CFLAGS="$(CFLAGS) -I$(top_srcdir)" \
+- $(PYTHON) setup.py sdist --verbose
++ $(PYTHON) setup.py sdist --verbose
+ gpg2 --detach-sign --armor dist/pyme3-$(VERSION).tar.gz
+
+ .PHONY: sdist
+@@ -72,7 +73,7 @@ upload: dist/pyme3-$(VERSION).tar.gz dist/pyme3-$(VERSION).tar.gz.asc
+ twine upload $^
+
+ CLEANFILES = gpgme.h errors.i gpgme_wrap.c pyme/gpgme.py \
+- copystamp
++ data.h copystamp
+
+ # Remove the rest.
+ #
+diff --git a/lang/python/gpgme.i b/lang/python/gpgme.i
+index 84addae..ac666f4 100644
+--- a/lang/python/gpgme.i
++++ b/lang/python/gpgme.i
+@@ -183,7 +183,7 @@
+ representation of struct gpgme_data for an very efficient check if
+ the buffer has been modified. */
+ %{
+-#include "src/data.h" /* For struct gpgme_data. */
++#include "data.h" /* For struct gpgme_data. */
+ %}
+ #endif
+
+diff --git a/lang/python/setup.py.in b/lang/python/setup.py.in
+index 31892c1..ce06758 100755
+--- a/lang/python/setup.py.in
++++ b/lang/python/setup.py.in
+@@ -32,13 +32,14 @@ library_dirs = []
+ in_tree = False
+ extra_swig_opts = []
+ extra_macros = dict()
++binary_builddir=os.environ.get('binary_builddir', '../..')
+
+-if os.path.exists("../../src/gpgme-config"):
++if os.path.exists(os.path.join(binary_builddir, "src/gpgme-config")):
+ # In-tree build.
+ in_tree = True
+- gpgme_config = ["../../src/gpgme-config"] + gpgme_config_flags
+- gpgme_h = "../../src/gpgme.h"
+- library_dirs = ["../../src/.libs"] # XXX uses libtool internals
++ gpgme_config = [os.path.join(binary_builddir, "src/gpgme-config")] + gpgme_config_flags
++ gpgme_h = os.path.join(binary_builddir, "src/gpgme.h")
++ library_dirs = [os.path.join(binary_builddir, "src/.libs")] # XXX uses libtool internals
+ extra_macros.update(
+ HAVE_DATA_H=1,
+ IN_TREE_BUILD=1,
+--
+2.7.3
+