summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHenry Tang <henryykt@gmail.com>2020-03-26 21:52:16 +0800
committerAsif Saif Uddin <auvipy@gmail.com>2020-03-27 13:59:23 +0600
commitea29f3d52fe2260756c340302e2e73081cfc9400 (patch)
tree2f9b4c6e2fa62bd4b1c51ed49ded5d0e3de4f977
parenteba309a9354347f0824f3f9a82e462ef243e11ff (diff)
downloadlibrabbitmq-ea29f3d52fe2260756c340302e2e73081cfc9400.tar.gz
Fix manylinux1 (#146)
Remove use of six in setup.py Use cmake to build rabbitmq-c
-rw-r--r--Makefile4
-rwxr-xr-xbuild-manylinux1-wheels.sh13
-rw-r--r--setup.py37
3 files changed, 43 insertions, 11 deletions
diff --git a/Makefile b/Makefile
index bb073c0..e7538a1 100644
--- a/Makefile
+++ b/Makefile
@@ -20,10 +20,10 @@ rabbitmq-c: submodules
rabbitmq-clean:
- -(cd $(RABBIT_DIR) && make clean)
+ -(cd $(RABBIT_DIR) && make clean || echo "warning... rabbitmq-clean failed")
rabbitmq-distclean:
- -(cd $(RABBIT_DIR) && make distclean)
+ -(cd $(RABBIT_DIR) && make distclean || echo "warning... rabbitmq-distclean failed")
clean-build:
-rm -rf build
diff --git a/build-manylinux1-wheels.sh b/build-manylinux1-wheels.sh
index c0a3901..664075c 100755
--- a/build-manylinux1-wheels.sh
+++ b/build-manylinux1-wheels.sh
@@ -2,13 +2,12 @@
# Script modified from https://github.com/pypa/python-manylinux-demo
set -e -x
-# Install a system package required by our library
-yum install -y librabbitmq-devel make librabbitmq python-devel gcc automake
-
+# Install system packages required by our library
+yum install -y cmake openssl-devel gcc automake
# Compile wheels
for PYBIN in /opt/python/*/bin; do
- #${PYBIN}/pip install -r /workspace/dev-requirements.txt
+ (cd /workspace && ${PYBIN}/python setup.py install)
${PYBIN}/pip wheel /workspace/ -w wheelhouse/
done
@@ -20,6 +19,12 @@ done
# Install packages and test
for PYBIN in /opt/python/*/bin/; do
+ # vine 5.0.0a1 breaks python2
+ # https://github.com/celery/vine/issues/34
+ if [[ "$PYBIN" == *"python/cp2"* ]]; then
+ ${PYBIN}/pip install -f "vine==1.3.0"
+ fi
+
${PYBIN}/pip install librabbitmq -f /workspace/wheelhouse
${PYBIN}/python -c "import librabbitmq"
#(cd $HOME; ${PYBIN}/nosetests pymanylinuxdemo)
diff --git a/setup.py b/setup.py
index d91ffce..6985565 100644
--- a/setup.py
+++ b/setup.py
@@ -51,6 +51,10 @@ def create_builder():
sys.argv[1:] = unprocessed
incdirs.append(LRMQSRC())
+ if find_cmake() != "":
+ incdirs.append(LRMQDIST('build', 'librabbitmq'))
+
+
PyC_files = map(PYCP, [
'connection.c',
])
@@ -107,6 +111,7 @@ def create_builder():
here = os.path.abspath(os.getcwd())
config = sysconfig.get_config_vars()
make = find_make()
+ cmake = find_cmake()
try:
vars = {'ld': config['LDFLAGS'],
@@ -128,21 +133,34 @@ def create_builder():
if os.path.isfile('Makefile'):
os.system(' '.join([make, 'submodules']))
else:
- os.system(' '.join(['git', 'clone', '-b', 'v0.8.0',
+ os.system(' '.join(['git', 'clone', '-b', 'v0.8.0',
'https://github.com/alanxz/rabbitmq-c.git',
'rabbitmq-c']))
os.chdir(LRMQDIST())
- if not os.path.isfile('configure'):
+ if cmake == "" and not os.path.isfile('configure'):
print('- autoreconf')
os.system('autoreconf -i')
- if not os.path.isfile('config.h'):
+ if cmake == "" and not os.path.isfile('config.h'):
print('- configure rabbitmq-c...')
if os.system('/bin/sh configure --disable-tools \
--disable-docs --disable-dependency-tracking'):
return
+
+ if cmake:
+ print('- cmake rabbitmq-c...')
+ if os.system('mkdir -p build'):
+ return
+
+ os.chdir('build')
+ if os.system(cmake + ' ..'):
+ return
+
+ if os.system(make + ' rabbitmq rabbitmq-static'):
+ return
+
finally:
os.environ.update(restore)
finally:
@@ -164,7 +182,16 @@ def find_make(alt=('gmake', 'gnumake', 'make', 'nmake')):
return make
-if six.PY2:
+def find_cmake():
+ for path in os.environ['PATH'].split(':'):
+ make = os.path.join(path, 'cmake')
+ if os.path.isfile(make):
+ return make
+
+ return ""
+
+
+if sys.version_info[0] < 3:
with open(os.path.join(BASE_PATH, 'README.rst'), 'U') as f:
long_description = f.read()
else:
@@ -243,7 +270,7 @@ setup(
license='MPL',
description='AMQP Client using the rabbitmq-c library.',
long_description=long_description,
- test_suite="tests",
+ test_suite="tests",
zip_safe=False,
packages=packages,
cmdclass=cmdclass,