Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ addons:
- gtk-doc-tools
- autoconf-archive
- libgirepository1.0-dev
services:
- docker

cache:
ccache: true
Expand Down Expand Up @@ -54,6 +56,15 @@ matrix:
script:
- $TRAVIS_BUILD_DIR/ci/travis_script_cpp.sh
- $TRAVIS_BUILD_DIR/ci/travis_script_python.sh
- language: cpp
before_script:
- docker pull quay.io/xhochy/arrow_manylinux1_x86_64_base:ARROW-927
script: |
pushd python/manylinux1
git clone ../../ arrow
docker build -t arrow-base-x86_64 -f Dockerfile-x86_64 .
docker run --rm -v $PWD:/io arrow-base-x86_64 /io/build_arrow.sh
ls -l dist/
- language: java
os: linux
jdk: oraclejdk7
Expand Down
41 changes: 1 addition & 40 deletions python/manylinux1/Dockerfile-x86_64
Original file line number Diff line number Diff line change
Expand Up @@ -9,46 +9,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License. See accompanying LICENSE file.

FROM quay.io/pypa/manylinux1_x86_64:latest

# Install dependencies
RUN yum install -y flex zlib-devel

# Build a newer OpenSSL version to support Thrift 0.10.0, note that we don't trigger the SSL code in Arrow.
WORKDIR /
RUN wget --no-check-certificate https://www.openssl.org/source/openssl-1.0.2k.tar.gz -O openssl-1.0.2k.tar.gz
RUN tar xf openssl-1.0.2k.tar.gz
WORKDIR openssl-1.0.2k
RUN ./config -fpic shared --prefix=/usr
RUN make -j5
RUN make install

WORKDIR /
RUN wget --no-check-certificate http://downloads.sourceforge.net/project/boost/boost/1.60.0/boost_1_60_0.tar.gz -O /boost_1_60_0.tar.gz
RUN tar xf boost_1_60_0.tar.gz
WORKDIR /boost_1_60_0
RUN ./bootstrap.sh
RUN ./bjam cxxflags=-fPIC cflags=-fPIC --prefix=/usr --with-filesystem --with-date_time --with-system --with-regex install

WORKDIR /
RUN wget https://github.com/jemalloc/jemalloc/releases/download/4.4.0/jemalloc-4.4.0.tar.bz2 -O jemalloc-4.4.0.tar.bz2
RUN tar xf jemalloc-4.4.0.tar.bz2
WORKDIR /jemalloc-4.4.0
RUN ./configure
RUN make -j5
RUN make install

WORKDIR /
# Install cmake manylinux1 package
RUN /opt/python/cp35-cp35m/bin/pip install cmake
RUN ln -s /opt/python/cp35-cp35m/bin/cmake /usr/bin/cmake

WORKDIR /
RUN git clone https://github.com/matthew-brett/multibuild.git
WORKDIR /multibuild
RUN git checkout ffe59955ad8690c2f8bb74766cb7e9b0d0ee3963

FROM quay.io/xhochy/arrow_manylinux1_x86_64_base:ARROW-927

ADD arrow /arrow
WORKDIR /arrow/cpp
Expand Down
52 changes: 52 additions & 0 deletions python/manylinux1/Dockerfile-x86_64_base
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License. See accompanying LICENSE file.
FROM quay.io/pypa/manylinux1_x86_64:latest

# Install dependencies
RUN yum install -y flex zlib-devel

ADD scripts/build_openssl.sh /
RUN /build_openssl.sh

ADD scripts/build_boost.sh /
RUN /build_boost.sh

ADD scripts/build_jemalloc.sh /
RUN /build_jemalloc.sh

WORKDIR /
# Install cmake manylinux1 package
RUN /opt/python/cp35-cp35m/bin/pip install cmake
RUN ln -s /opt/python/cp35-cp35m/bin/cmake /usr/bin/cmake

WORKDIR /
RUN git clone https://github.com/matthew-brett/multibuild.git
WORKDIR /multibuild
RUN git checkout ffe59955ad8690c2f8bb74766cb7e9b0d0ee3963

WORKDIR /
RUN wget https://github.com/google/googletest/archive/release-1.7.0.tar.gz -O googletest-release-1.7.0.tar.gz
RUN tar xf googletest-release-1.7.0.tar.gz
WORKDIR /googletest-release-1.7.0
RUN cmake -DCMAKE_CXX_FLAGS='-fPIC' -Dgtest_force_shared_crt=ON .
RUN make -j5
ENV GTEST_HOME /googletest-release-1.7.0

WORKDIR /
RUN wget https://github.com/google/flatbuffers/archive/v1.6.0.tar.gz -O flatbuffers-1.6.0.tar.gz
RUN tar xf flatbuffers-1.6.0.tar.gz
WORKDIR /flatbuffers-1.6.0
RUN cmake "-DCMAKE_CXX_FLAGS=-fPIC" "-DCMAKE_INSTALL_PREFIX:PATH=/usr" "-DFLATBUFFERS_BUILD_TESTS=OFF"
RUN make -j5
RUN make install
ENV FLATBUFFERS_HOME /usr

3 changes: 1 addition & 2 deletions python/manylinux1/build_arrow.sh
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ cd /arrow/python

# PyArrow build configuration
export PYARROW_BUILD_TYPE='release'
export PYARROW_CMAKE_OPTIONS='-DPYARROW_BUILD_TESTS=ON'
export PYARROW_WITH_PARQUET=1
export PYARROW_WITH_JEMALLOC=1
export PYARROW_BUNDLE_ARROW_CPP=1
Expand All @@ -51,7 +50,7 @@ for PYTHON in ${PYTHON_VERSIONS}; do

echo "=== (${PYTHON}) Installing build dependencies ==="
$PIPI_IO "numpy==1.9.0"
$PIPI_IO "cython==0.24"
$PIPI_IO "cython==0.25.2"
$PIPI_IO "pandas==0.19.2"

echo "=== (${PYTHON}) Building Arrow C++ libraries ==="
Expand Down
21 changes: 21 additions & 0 deletions python/manylinux1/scripts/build_boost.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#!/bin/bash -ex
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License. See accompanying LICENSE file.


wget --no-check-certificate http://downloads.sourceforge.net/project/boost/boost/1.60.0/boost_1_60_0.tar.gz -O /boost_1_60_0.tar.gz
tar xf boost_1_60_0.tar.gz
pushd /boost_1_60_0
./bootstrap.sh
./bjam cxxflags=-fPIC cflags=-fPIC --prefix=/usr --with-filesystem --with-date_time --with-system --with-regex install
popd
rm -rf boost_1_60_0.tar.gz boost_1_60_0
21 changes: 21 additions & 0 deletions python/manylinux1/scripts/build_jemalloc.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#!/bin/bash -ex
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License. See accompanying LICENSE file.

wget https://github.com/jemalloc/jemalloc/releases/download/4.4.0/jemalloc-4.4.0.tar.bz2 -O jemalloc-4.4.0.tar.bz2
tar xf jemalloc-4.4.0.tar.bz2
pushd /jemalloc-4.4.0
./configure
make -j5
make install
popd
rm -rf jemalloc-4.4.0.tar.bz2 jemalloc-4.4.0
21 changes: 21 additions & 0 deletions python/manylinux1/scripts/build_openssl.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#!/bin/bash -ex
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License. See accompanying LICENSE file.

wget --no-check-certificate https://www.openssl.org/source/openssl-1.0.2k.tar.gz -O openssl-1.0.2k.tar.gz
tar xf openssl-1.0.2k.tar.gz
pushd openssl-1.0.2k
./config -fpic shared --prefix=/usr
make -j5
make install
popd
rm -rf openssl-1.0.2k.tar.gz openssl-1.0.2k