forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
app-crypt/gpgme: add python bindings
- Loading branch information
Showing
2 changed files
with
170 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,136 @@ | ||
From a46cd3926d629da23b365b70b7bf24201c25d430 Mon Sep 17 00:00:00 2001 | ||
From: Alon Bar-Lev <[email protected]> | ||
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 <[email protected]> | ||
--- | ||
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 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters