Repository: thrift Updated Branches: refs/heads/master de0b4b554 -> 447294f17
THRIFT-3469 Docker: Debian support This closes #746 Project: http://git-wip-us.apache.org/repos/asf/thrift/repo Commit: http://git-wip-us.apache.org/repos/asf/thrift/commit/447294f1 Tree: http://git-wip-us.apache.org/repos/asf/thrift/tree/447294f1 Diff: http://git-wip-us.apache.org/repos/asf/thrift/diff/447294f1 Branch: refs/heads/master Commit: 447294f17642a34ab10dba68521f4f7554e55350 Parents: de0b4b5 Author: Roger Meier <[email protected]> Authored: Fri Dec 11 00:04:41 2015 +0100 Committer: Roger Meier <[email protected]> Committed: Sun Jan 10 13:32:47 2016 +0100 ---------------------------------------------------------------------- .travis.yml | 20 ++++ build/docker/debian/Dockerfile | 189 +++++++++++++++++++++++++++++++ build/docker/debian/scripts/dpkg.sh | 5 + 3 files changed, 214 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/thrift/blob/447294f1/.travis.yml ---------------------------------------------------------------------- diff --git a/.travis.yml b/.travis.yml index 88e9745..f341bdf 100644 --- a/.travis.yml +++ b/.travis.yml @@ -47,6 +47,12 @@ env: BUILD_ARG="--enable-tutorial=no" BUILD_ENV="-e CC=clang -e CXX=clang++ -e THRIFT_CROSSTEST_CONCURRENCY=4" + - TEST_NAME="Cross Language Tests (Debian)" + BUILD_CMD="../cross-test.sh" + BUILD_ARG="--enable-tutorial=no" + BUILD_ENV="-e CC=clang -e CXX=clang++ -e THRIFT_CROSSTEST_CONCURRENCY=4" + DISTRO=debian + # TODO: Remove them once migrated to CMake # Autotools builds - TEST_NAME="C C++ C# D Erlang Go Haxe (automake)" @@ -75,6 +81,10 @@ env: - TEST_NAME="All" BUILD_CMD="../cmake.sh" + - TEST_NAME="All (Debian)" + BUILD_CMD="../cmake.sh" + DISTRO=debian + - TEST_NAME="C C++ - GCC" BUILD_CMD="../cmake.sh" BUILD_ARG="-DWITH_PYTHON=OFF -DWITH_JAVA=OFF -DWITH_HASKELL=OFF" @@ -128,6 +138,16 @@ env: BUILD_CMD="../dpkg.sh" BUILD_ENV="-e CC=gcc -e CXX=g++" + - TEST_NAME="make dist (Debian)" + BUILD_CMD="../make-dist.sh" + BUILD_ENV="-e CC=gcc -e CXX=g++" + DISTRO=debian + + - TEST_NAME="Debian Packages (Debian)" + BUILD_CMD="../dpkg.sh" + BUILD_ENV="-e CC=gcc -e CXX=g++" + DISTRO=debian + matrix: include: # QA jobs for code analytics and metrics http://git-wip-us.apache.org/repos/asf/thrift/blob/447294f1/build/docker/debian/Dockerfile ---------------------------------------------------------------------- diff --git a/build/docker/debian/Dockerfile b/build/docker/debian/Dockerfile new file mode 100644 index 0000000..ed5d348 --- /dev/null +++ b/build/docker/debian/Dockerfile @@ -0,0 +1,189 @@ +# 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. + +# Apache Thrift Docker build environment for Centos +# +# Known missing client libraries: +# - Haskell + +FROM debian:jessie +MAINTAINER Apache Thrift <[email protected]> + +ENV DEBIAN_FRONTEND noninteractive + +# General dependencies +RUN apt-get update && apt-get install -y \ + apt-transport-https \ + automake \ + bison \ + clang \ + cmake \ + debhelper \ + flex \ + g++ \ + git \ + libtool \ + make \ + pkg-config + +# C++ dependencies +RUN apt-get update && apt-get install -y \ + libboost-dev \ + libboost-filesystem-dev \ + libboost-program-options-dev \ + libboost-system-dev \ + libboost-test-dev \ + libboost-thread-dev \ + libevent-dev \ + libqt4-dev \ + libssl-dev + +# Java dependencies +RUN apt-get update && apt-get install -y \ + ant \ + openjdk-7-jdk \ + maven \ + && update-java-alternatives -s java-1.7.0-openjdk-amd64 + +# Python dependencies +RUN apt-get update && apt-get install -y \ + python-all \ + python-all-dev \ + python-all-dbg \ + python-setuptools \ + python-support \ + python-twisted \ + python-zope.interface \ + python-six \ + python3-six + +# Ruby dependencies +RUN apt-get update && apt-get install -y \ + ruby \ + ruby-dev \ + && gem install bundler rake + +# Perl dependencies +RUN apt-get update && apt-get install -y \ + libbit-vector-perl \ + libclass-accessor-class-perl \ + libcrypt-ssleay-perl \ + libio-socket-ssl-perl \ + libnet-ssleay-perl + +# Php dependencies +RUN apt-get update && apt-get install -y \ + php5 \ + php5-dev \ + php5-cli \ + php-pear \ + re2c \ + phpunit + +# GlibC dependencies +RUN apt-get update && apt-get install -y libglib2.0-dev + +# Erlang dependencies +RUN apt-get update && apt-get install -y \ + erlang-base \ + erlang-eunit \ + erlang-dev \ + erlang-tools \ + rebar + +# Go dependencies +RUN curl -sSL https://storage.googleapis.com/golang/go1.4.3.linux-amd64.tar.gz | tar -C /usr/local/ -xz +ENV PATH /usr/local/go/bin:$PATH + + +# Haskell dependencies +#RUN apt-get update && apt-get install -y \ +# ghc \ +# cabal-install \ +# libghc-binary-dev \ +# libghc-network-dev \ +# libghc-http-dev \ +# libghc-hashable-dev \ +# libghc-unordered-containers-dev \ +# libghc-vector-dev + +# Haxe +RUN apt-get update && apt-get install -y \ + neko \ + neko-dev \ + libneko0 \ + && mkdir -p /tmp/haxe /usr/lib/haxe && \ + curl http://haxe.org/website-content/downloads/3.2.0/downloads/haxe-3.2.0-linux64.tar.gz -o /tmp/haxe/haxe-3.2.0-linux64.tar.gz && \ + tar -xvzf /tmp/haxe/haxe-3.2.0-linux64.tar.gz -C /usr/lib/haxe --strip-components=1 && \ + ln -s /usr/lib/haxe/haxe /usr/bin/haxe && \ + ln -s /usr/lib/haxe/haxelib /usr/bin/haxelib && \ + mkdir -p /usr/lib/haxe/lib && \ + chmod -R 777 /usr/lib/haxe/lib && \ + haxelib setup /usr/lib/haxe/lib && \ + haxelib install hxcpp && \ + rm -rf /tmp/haxe + + +# Node.js dependencies +RUN apt-get update && apt-get install -y \ + nodejs \ + nodejs-dev \ + nodejs-legacy \ + npm + +# CSharp dependencies +RUN apt-get update && apt-get install -y \ + libmono-system-web2.0-cil \ + mono-complete \ + mono-devel \ + mono-gmcs \ + mono-xbuild + +# D dependencies +# THRIFT-2916: DMD pinned to 2.065.0-0 due to regression in 2.066 +# THRIFT-3253: DMD pinned to 2.065.0-0 due to deprecations 2.067.1 +RUN apt-get update && apt-get install -y \ + gcc-multilib \ + xdg-utils \ + && curl -sSL http://downloads.dlang.org/releases/2.x/2.065.0/dmd_2.065.0-0_amd64.deb -o /tmp/dmd_2.065.0-0_amd64.deb && \ + dpkg -i /tmp/dmd_2.065.0-0_amd64.deb && \ + rm /tmp/dmd_2.065.0-0_amd64.deb + +# Dart dependencies +RUN curl https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - && \ + curl https://storage.googleapis.com/download.dartlang.org/linux/debian/dart_stable.list > /etc/apt/sources.list.d/dart_stable.list && \ + apt-get update && apt-get install -y dart +ENV PATH /usr/lib/dart/bin:$PATH + +# Lua dependencies +RUN apt-get update && apt-get install -y \ + lua5.2 \ + lua5.2-dev + +# MinGW dependencies +RUN apt-get update && apt-get install -y \ + mingw32 \ + mingw32-binutils \ +# mingw32-runtime \ + nsis + +# Clean up +RUN apt-get clean && \ + rm -rf /var/cache/apt/* && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /tmp/* && \ + rm -rf /var/tmp/* + +ENV THRIFT_ROOT /thrift +RUN mkdir -p $THRIFT_ROOT/src +COPY scripts $THRIFT_ROOT +WORKDIR $THRIFT_ROOT/src http://git-wip-us.apache.org/repos/asf/thrift/blob/447294f1/build/docker/debian/scripts/dpkg.sh ---------------------------------------------------------------------- diff --git a/build/docker/debian/scripts/dpkg.sh b/build/docker/debian/scripts/dpkg.sh new file mode 100755 index 0000000..3ba0cd4 --- /dev/null +++ b/build/docker/debian/scripts/dpkg.sh @@ -0,0 +1,5 @@ +#!/bin/sh +set -ev + +dpkg-buildpackage -tc -us -uc +ls -al ..
