glupy: portability fixes
authorEmmanuel Dreyfus <manu@netbsd.org>
Wed, 29 Oct 2014 19:35:10 +0000 (20:35 +0100)
committerVijay Bellur <vbellur@redhat.com>
Thu, 6 Nov 2014 06:28:09 +0000 (22:28 -0800)
commit1a735e300a0ecd35d41f68f3c776350bb18f763a
tree11c07e53bf07e89f3bc557a9831ea003c25480c9
parent1c6ab3420b3b04eaf095098b614720b4e12ff498
glupy: portability fixes

Fixes portability problems so that NetBSD passes tests/features/glupy.t

- Use python-config to detect python build environment on all systems,
  not just Linux and Darwin.
- Get the site-package directory from python and make sure we install
  glupy.py there, Previously we installed within glusterfs prefix,
  which caused a problem if it was different that python's prefix.
- Set PYTHONPATH for tests so that the detected site-packages is used
  in python's search path. This should be useless, but let us have it
  just in case.
- Pass glupy.so path from glusterfsd to glupy.py through an
  environment variable and use it in CDLL instead of "", as the
  later seems not portable (at least it fails on NetBSD).
- Use gil_init_key pthread_getspecific to avoid deadlocks (that
  code was #ifdef out, perhaps because it was not needed on Linux,
  but it seems to be required for NetBSD.
- Recover the error message from Python and send it to the logs
  to help debugging problems.

BUG: 1129939
Change-Id: Icc71e77d6940f0759cc14c5c5cf7ca6fa431e0d2
Signed-off-by: Emmanuel Dreyfus <manu@netbsd.org>
Reviewed-on: http://review.gluster.org/8978
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Jeff Darcy <jdarcy@redhat.com>
configure.ac
tests/env.rc.in
tests/features/glupy.t
xlators/features/glupy/src/Makefile.am
xlators/features/glupy/src/glupy.c
xlators/features/glupy/src/glupy.py