You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@thrift.apache.org by ro...@apache.org on 2016/01/10 13:33:40 UTC

thrift git commit: THRIFT-3469 Docker: Debian support

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 <ro...@apache.org>
Authored: Fri Dec 11 00:04:41 2015 +0100
Committer: Roger Meier <ro...@apache.org>
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 <de...@thrift.apache.org>
+
+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 ..