diff --git a/containers/apps/sogo/Dockerfile b/containers/apps/sogo/Dockerfile index 70d657acba3..187e94f12fa 100644 --- a/containers/apps/sogo/Dockerfile +++ b/containers/apps/sogo/Dockerfile @@ -1,7 +1,32 @@ +# hadolint ignore=DL3007 +FROM ghcr.io/truecharts/ubuntu:latest AS build + +# Change your name and email address +DEBFULLNAME="TrueCharts" +DEBEMAIL="info@truecharts.org" + +ARG TARGETPLATFORM +ARG VERSION + + +# hadolint ignore=DL3002 +USER root + +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +WORKDIR /buildtmp +COPY ./containers/apps/build.sh /buildtmp/build.sh + +# hadolint ignore=DL3008,DL3015,SC2086,SC2155,DL3047 +RUN \ + mkdir /build && \ + cd /buildtmp && \ + ./build.sh + + # hadolint ignore=DL3007 FROM ghcr.io/truecharts/ubuntu:latest - ARG TARGETPLATFORM ARG VERSION @@ -14,6 +39,7 @@ ENV GOSU_VERSION 1.12 USER root SHELL ["/bin/bash", "-o", "pipefail", "-c"] +COPY --from=builder /buildtmp/vendor/ /build # hadolint ignore=DL3008,DL3015,SC2086,SC2155,DL3047 RUN \ diff --git a/containers/apps/sogo/VERSION b/containers/apps/sogo/VERSION index 152d80331bf..d9cdae59f89 100644 --- a/containers/apps/sogo/VERSION +++ b/containers/apps/sogo/VERSION @@ -1 +1 @@ -4.0.1474 +5.20 diff --git a/containers/apps/sogo/build.sh b/containers/apps/sogo/build.sh new file mode 100644 index 00000000000..c0f88ac1fcf --- /dev/null +++ b/containers/apps/sogo/build.sh @@ -0,0 +1,75 @@ +#!/usr/bin/env bash + +set -e + +# https://stackoverflow.com/a/246128 +BASE_DIR="/buildtmp" + + +REPOSITORY_SOGO="https://github.com/inverse-inc/sogo.git" +REPOSITORY_SOPE="https://github.com/inverse-inc/sope.git" +SOGO_GIT_TAG="SOGo-${VERSION}" +SOPE_GIT_TAG="SOPE-${VERSION}" + +PACKAGES_DIR="${BASE_DIR}/vendor" +PACKAGES_TO_INSTALL="git zip wget make debhelper gnustep-make libssl-dev libgnustep-base-dev libldap2-dev libytnef0-dev zlib1g-dev libpq-dev libmariadbclient-dev-compat libmemcached-dev liblasso3-dev libcurl4-gnutls-dev devscripts libexpat1-dev libpopt-dev libsbjson-dev libsbjson2.3 libcurl4 liboath-dev libsodium-dev libzip-dev" + +export DEBIAN_FRONTEND=noninteractive + +cd "$PACKAGES_DIR" + +# Do not install recommended or suggested packages +echo 'APT::Get::Install-Recommends "false";' >> /etc/apt/apt.conf +echo 'APT::Get::Install-Suggests "false";' >> /etc/apt/apt.conf + +# Install required packages +# shellcheck disable=SC2086 +apt-get update && apt-get install -y $PACKAGES_TO_INSTALL + +# Download and install libwbxml2 and libwbxml2-dev +wget -c https://packages.inverse.ca/SOGo/nightly/5/debian/pool/buster/w/wbxml2/libwbxml2-dev_0.11.6-1_amd64.deb +wget -c https://packages.inverse.ca/SOGo/nightly/5/debian/pool/buster/w/wbxml2/libwbxml2-0_0.11.6-1_amd64.deb + +dpkg -i libwbxml2-0_0.11.6-1_amd64.deb libwbxml2-dev_0.11.6-1_amd64.deb + +# Install any missing packages +apt-get -f install -y + +# Install Python +apt-get install -y python + +# Checkout the SOPE repository with the given tag +git clone --depth 1 --branch "${SOPE_GIT_TAG}" $REPOSITORY_SOPE +cd sope + +cp -a packaging/debian debian + +./debian/rules + +dpkg-checkbuilddeps && dpkg-buildpackage + +cd "$PACKAGES_DIR" + +# Install the built packages +dpkg -i libsope*.deb + +# Checkout the SOGo repository with the given tag +git clone --depth 1 --branch "${SOGO_GIT_TAG}" $REPOSITORY_SOGO +cd sogo + +cp -a packaging/debian debian + +dch --newversion "$VERSION" "Automated build for version $VERSION" + +# cp packaging/debian-multiarch/control-no-openchange debian + +./debian/rules + +dpkg-checkbuilddeps && dpkg-buildpackage -b + +cd "$PACKAGES_DIR" + +# Install the built packages +dpkg -i sope4.9-gdl1-mysql_4.9.r1664_amd64.deb +dpkg -i sope4.9-libxmlsaxdriver_4.9.r1664_amd64.deb +dpkg -i "sogo_${VERSION}_amd64.deb"