# HG changeset patch # User Sebastien Jodogne # Date 1560492781 -7200 # Node ID 340f02ddaabf53c9315f153fc9ef7fd5ea7a1c2c # Parent c46ed3cd5ddccbbefc1dab182902f03f84f2f0bb build script for Debian stable diff -r c46ed3cd5ddc -r 340f02ddaabf Resources/debian-stable-compile.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Resources/debian-stable-compile.sh Fri Jun 14 08:13:01 2019 +0200 @@ -0,0 +1,35 @@ +#!/bin/bash + +## +## This script compiles the plugin for Debian stable, in static +## mode. The resulting binaries can be used in the Docker images of +## Orthanc, as those are also based on Debian stable: +## https://github.com/jodogne/OrthancDocker/blob/master/orthanc/Dockerfile +## + +set -ex + +if [ "$1" != "Debug" -a "$1" != "Release" ]; then + echo "Please provide build type: Debug or Release" + exit -1 +fi + +if [ -t 1 ]; then + # TTY is available => use interactive mode + DOCKER_FLAGS='-i' +fi + +ROOT_DIR=`dirname $(readlink -f $0)`/.. + +# Always make sure we use the latest version of Debian stable +docker pull debian:stable + +mkdir -p ${ROOT_DIR}/debian-stable + +docker run -t ${DOCKER_FLAGS} --rm \ + -v ${ROOT_DIR}:/source:ro \ + -v ${ROOT_DIR}/debian-stable:/target:rw \ + debian:stable \ + bash /source/Resources/debian-stable-internal.sh $1 $(id -u) $(id -g) + +ls -l ${ROOT_DIR}/debian-stable/ diff -r c46ed3cd5ddc -r 340f02ddaabf Resources/debian-stable-internal.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Resources/debian-stable-internal.sh Fri Jun 14 08:13:01 2019 +0200 @@ -0,0 +1,34 @@ +#!/bin/bash + +set -ex + +BUILD_TYPE=$1 +USER_ID=$2 +GROUP_ID=$3 + +# Create the same user and group than the one who is running the +# "./debian-stable-compile.sh" script on the hosting system (*) +groupadd -g ${GROUP_ID} -r orthanc +useradd -u ${USER_ID} -r -g orthanc orthanc + +# Static build using the root user +apt-get update +apt-get install -y cmake build-essential unzip + +mkdir /tmp/build +cd /tmp/build + +cp -r /source /tmp/source-writeable +cmake /tmp/source-writeable \ + -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ + -DSTATIC_BUILD=ON \ + -DORTHANC_FRAMEWORK_SOURCE=web \ + -DCMAKE_INSTALL_PREFIX=/target + +make -j`nproc` + +# Copy the installation to the host filesystem, using the +# newly-created user "orthanc" (*) that corresponds to the user who is +# running "./debian-stable-compile.sh" script. This allows to avoid +# files owned by the "root" user on the host filesystem. +su -c "cp /tmp/build/libOrthancGoogleCloudPlatform.so /target" orthanc