From f177058e6a0eecf07e6e568d6d182cc719541483 Mon Sep 17 00:00:00 2001 From: Michael Wilner Date: Wed, 19 Sep 2018 14:05:35 -0500 Subject: [PATCH 1/3] Able to build manylinux python wheels --- .gitignore | 1 + package-python-wheels.sh | 3 ++ quickfix-python-wheels/manylinux.sh | 54 +++++++++++++++++++++++++++++ 3 files changed, 58 insertions(+) create mode 100755 package-python-wheels.sh create mode 100755 quickfix-python-wheels/manylinux.sh diff --git a/.gitignore b/.gitignore index 884a0a6..832eb65 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ *~ *.gz *.zip +*.whl /quickfix \ No newline at end of file diff --git a/package-python-wheels.sh b/package-python-wheels.sh new file mode 100755 index 0000000..aab7a50 --- /dev/null +++ b/package-python-wheels.sh @@ -0,0 +1,3 @@ +#!/bin/bash +docker run --rm -v `pwd`:/io quay.io/pypa/manylinux1_x86_64 /io/quickfix-python-wheels/manylinux.sh +docker run --rm -v `pwd`:/io quay.io/pypa/manylinux1_i686 /io/quickfix-python-wheels/manylinux.sh diff --git a/quickfix-python-wheels/manylinux.sh b/quickfix-python-wheels/manylinux.sh new file mode 100755 index 0000000..c009c42 --- /dev/null +++ b/quickfix-python-wheels/manylinux.sh @@ -0,0 +1,54 @@ +#!/bin/bash + +rm -rf quickfix + +git clone --depth 1 https://github.com/quickfix/quickfix.git +rm -rf quickfix/.git + +#Install for the python at hand +rm -rf quickfix-python +cp -r /io/quickfix-python ./quickfix-python +rm -rf quickfix-python/C++ +rm -rf quickfix-python/spec +rm -rf quickfix-python/quickfix*.py +rm -rf quickfix-python/doc +rm -rf quickfix-python/LICENSE + +mkdir quickfix-python/C++ +mkdir quickfix-python/spec + +cp quickfix/LICENSE quickfix-python + +cp quickfix/src/python3/*.py quickfix-python +cp quickfix/src/C++/*.h quickfix-python/C++ +cp quickfix/src/C++/*.hpp quickfix-python/C++ +cp quickfix/src/C++/*.cpp quickfix-python/C++ +cp -R quickfix/src/C++/double-conversion quickfix-python/C++ +cp quickfix/src/python3/QuickfixPython.cpp quickfix-python/C++ +cp quickfix/src/python3/QuickfixPython.h quickfix-python/C++ + +cp quickfix/spec/FIX*.xml quickfix-python/spec + +touch quickfix-python/C++/config.h +touch quickfix-python/C++/config_windows.h +touch quickfix-python/C++/Allocator.h +rm -f quickfix-python/C++/stdafx.* + +pushd quickfix-python +for PYBIN in /opt/python/*/bin/; do + echo "$PYBIN" + "${PYBIN}/pip" wheel . -w quickfix-python-wheels +done +for whl in quickfix-python-wheels/*.whl; do + auditwheel repair "$whl" -w /io/quickfix-python-wheels/ +done +popd + +#pushd quickfix +# ./bootstrap +# ./configure --with-python2 +# make +# pushd src/python2 +# make check +# popd +#popd \ No newline at end of file From 6089d29136bc10f9206787d455f03474374f0612 Mon Sep 17 00:00:00 2001 From: Michael Wilner Date: Wed, 19 Sep 2018 18:47:41 -0500 Subject: [PATCH 2/3] Ensure linux32 environment in build --- package-python-wheels.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package-python-wheels.sh b/package-python-wheels.sh index aab7a50..70592f5 100755 --- a/package-python-wheels.sh +++ b/package-python-wheels.sh @@ -1,3 +1,3 @@ #!/bin/bash docker run --rm -v `pwd`:/io quay.io/pypa/manylinux1_x86_64 /io/quickfix-python-wheels/manylinux.sh -docker run --rm -v `pwd`:/io quay.io/pypa/manylinux1_i686 /io/quickfix-python-wheels/manylinux.sh +docker run --rm -v `pwd`:/io quay.io/pypa/manylinux1_i686 linux32 /io/quickfix-python-wheels/manylinux.sh From 88ecbeb47a752d8b321f78adb59a7695dfa1da2c Mon Sep 17 00:00:00 2001 From: Michael Wilner Date: Thu, 20 Sep 2018 10:19:42 -0500 Subject: [PATCH 3/3] Fix build for latest release --- install-python.sh | 47 +++++++++++++++++++++++++++++++++++++++++++++++ package-python.sh | 5 +++++ 2 files changed, 52 insertions(+) create mode 100755 install-python.sh diff --git a/install-python.sh b/install-python.sh new file mode 100755 index 0000000..5de3c74 --- /dev/null +++ b/install-python.sh @@ -0,0 +1,47 @@ +#!/bin/bash +set -e +if [ -z "$1" ] + then + echo "No argument supplied for python executable path" + exit 1 +fi +echo "Installing QuickFix for Python: $1" + +rm -rf quickfix + +git clone --depth 1 https://github.com/quickfix/quickfix.git +rm -rf quickfix/.git + +#Clean up the build environment +rm -rf quickfix-python/C++ +rm -rf quickfix-python/spec +rm -rf quickfix-python/quickfix*.py +rm -rf quickfix-python/doc +rm -rf quickfix-python/LICENSE + +mkdir quickfix-python/C++ +mkdir quickfix-python/spec + +#Move the source into the folder at hand +cp quickfix/LICENSE quickfix-python + +cp quickfix/src/python3/*.py quickfix-python +cp quickfix/src/C++/*.h quickfix-python/C++ +cp quickfix/src/C++/*.hpp quickfix-python/C++ +cp quickfix/src/C++/*.cpp quickfix-python/C++ +cp -R quickfix/src/C++/double-conversion quickfix-python/C++ +cp quickfix/src/python3/QuickfixPython.cpp quickfix-python/C++ +cp quickfix/src/python3/QuickfixPython.h quickfix-python/C++ + +cp quickfix/spec/FIX*.xml quickfix-python/spec + +#Satisfy empty headers +touch quickfix-python/C++/config.h +touch quickfix-python/C++/config_windows.h +touch quickfix-python/C++/Allocator.h +rm -f quickfix-python/C++/stdafx.* + +#Do the build for the active python +pushd quickfix-python + CFLAGS="-I \"$(pwd)/C++\"" $1 setup.py install +popd diff --git a/package-python.sh b/package-python.sh index e1f573f..6c68175 100755 --- a/package-python.sh +++ b/package-python.sh @@ -1,3 +1,7 @@ +rm -rf quickfix +git clone --depth 1 https://github.com/quickfix/quickfix.git +rm -rf quickfix/.git + rm -rf quickfix-python/C++ rm -rf quickfix-python/spec rm -rf quickfix-python/quickfix*.py @@ -21,6 +25,7 @@ cp quickfix/spec/FIX*.xml quickfix-python/spec touch quickfix-python/C++/config.h touch quickfix-python/C++/config_windows.h +touch quickfix-python/C++/Allocator.h rm -f quickfix-python/C++/stdafx.* pushd quickfix-python