diff --git a/Dockerfile b/Dockerfile index 8b370b21..39b6a9e0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,11 +1,14 @@ -FROM debian:trixie as base +FROM debian:bullseye-backports as base ARG DEBIAN_FRONTEND=noninteractive ARG APT_LISTCHANGES_FRONTEND=none RUN apt-get update -qq RUN apt-get install --no-install-recommends -y dpkg-dev devscripts curl git -RUN echo "deb-src http://deb.debian.org/debian/ trixie main" | tee -a /etc/apt/sources.list +RUN echo "deb [signed-by=/etc/apt/trusted.gpg.d/spectrumim.gpg] https://packages.spectrum.im/spectrum2/ bullseye main" | tee -a /etc/apt/sources.list +RUN echo "deb-src [signed-by=/etc/apt/trusted.gpg.d/spectrumim.gpg] https://packages.spectrum.im/spectrum2/ bullseye main" | tee -a /etc/apt/sources.list +RUN curl https://packages.spectrum.im/packages.key | gpg --dearmor -o /etc/apt/trusted.gpg.d/spectrumim.gpg + RUN apt-get update -qq RUN apt-get build-dep --no-install-recommends -y spectrum2 RUN apt-get install --no-install-recommends -y libminiupnpc-dev libnatpmp-dev @@ -25,23 +28,27 @@ ARG APT_LISTCHANGES_FRONTEND=none WORKDIR /spectrum2 -RUN apt-get install --no-install-recommends -y prosody ngircd libcppunit-dev purple-xmpp-carbons libglib2.0-dev psmisc +RUN apt-get install --no-install-recommends -y prosody ngircd python3-sleekxmpp python3-dateutil python3-dnspython libcppunit-dev purple-xmpp-carbons libglib2.0-dev psmisc + RUN cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DENABLE_TESTS=ON -DENABLE_QT4=OFF -DCMAKE_UNITY_BUILD=ON . && make -j4 -ENTRYPOINT ["make", "test"] +ENTRYPOINT ["make", "extended_test"] FROM base as test-clang ARG DEBIAN_FRONTEND=noninteractive ARG APT_LISTCHANGES_FRONTEND=none +RUN curl -fsSL https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - + +RUN echo 'deb http://apt.llvm.org/bullseye/ llvm-toolchain-bullseye-13 main' > /etc/apt/sources.list.d/llvm.list RUN apt-get update -qq -RUN apt-get install --no-install-recommends -y libcppunit-dev clang-16 lld-16 +RUN apt-get install --no-install-recommends -y libcppunit-dev clang-13 lld-13 WORKDIR /spectrum2 -RUN cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DENABLE_TESTS=ON -DENABLE_QT4=OFF -DCMAKE_UNITY_BUILD=ON -DCMAKE_C_COMPILER=/usr/bin/clang-16 -DCMAKE_CXX_COMPILER=/usr/bin/clang++-16 -DCMAKE_EXE_LINKER_FLAGS=-fuse-ld=lld -DCMAKE_SHARED_LINKER_FLAGS=-fuse-ld=lld . && make -j4 +RUN cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DENABLE_TESTS=ON -DENABLE_QT4=OFF -DCMAKE_UNITY_BUILD=ON -DCMAKE_C_COMPILER=/usr/bin/clang-13 -DCMAKE_CXX_COMPILER=/usr/bin/clang++-13 -DCMAKE_EXE_LINKER_FLAGS=-fuse-ld=lld -DCMAKE_SHARED_LINKER_FLAGS=-fuse-ld=lld . && make -j4 ENTRYPOINT ["make", "test"] @@ -90,23 +97,7 @@ RUN echo "---> Install Steam" && \ RUN echo "---> Install Teams" && \ git clone https://github.com/EionRobb/purple-teams.git && \ cd purple-teams && \ - git checkout 1177f13c88822d75396196391058deab2d5b461a && \ - make && \ - make DESTDIR=/tmp/out install - -RUN echo "---> Install Skypeweb" && \ - git clone https://github.com/EionRobb/skype4pidgin.git && \ - cd skype4pidgin/skypeweb && \ - make && \ - make DESTDIR=/tmp/out install - -RUN echo "---> purple-gowhatsapp" && \ - apt-get -y install golang && \ - git clone https://github.com/hoehermann/purple-gowhatsapp.git && \ - cd purple-gowhatsapp && \ - git checkout v1.16.0 && \ - git submodule update --init && \ - cmake . && \ + git checkout c0b5d9947e359c6cc8d54ee76af8dba116e0ec72 && \ make && \ make DESTDIR=/tmp/out install @@ -128,27 +119,30 @@ git clone --recursive https://github.com/EionRobb/purple-mattermost && \ make && \ make DESTDIR=/tmp/out install -RUN echo "---> tdlib-purple" && \ - apt install -y gperf && \ - cd /tmp && ( git clone https://github.com/tdlib/td.git ; cd td && git checkout 8d08b34 && mkdir -p build && cd build && cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$(pwd) .. && make && make install/strip ) && ( git clone -b tdlib-1.8.34 https://github.com/667bdrm/tdlib-purple.git ; mkdir -p tdlib-purple/build && cd tdlib-purple/build && cmake -DCMAKE_BUILD_TYPE=Release -DTd_DIR=/tmp/td/build/lib/cmake/Td/ -DNoVoip=1 .. && make install/strip DESTDIR=/tmp/out install) - -FROM debian:trixie-slim as production +FROM debian:bullseye-slim as production EXPOSE 8080 VOLUME ["/etc/spectrum2/transports", "/var/lib/spectrum2"] RUN apt-get update -qq -RUN apt-get install --no-install-recommends -y curl +RUN apt-get install --no-install-recommends -y curl ca-certificates gnupg1 gpg gpg-agent + +RUN echo "deb [signed-by=/etc/apt/trusted.gpg.d/spectrumim.gpg] https://packages.spectrum.im/spectrum2/ bullseye main" | tee -a /etc/apt/sources.list +RUN curl -fsSL https://packages.spectrum.im/packages.key | gpg --dearmor -o /etc/apt/trusted.gpg.d/spectrumim.gpg RUN apt-get update -qq COPY --from=staging spectrum2/packaging/debian/*.deb /tmp/ RUN echo "---> Installing libpurple plugins" && \ DEBIAN_FRONTEND=noninteractive apt install --no-install-recommends -y \ + pidgin-sipe \ + libpurple-telegram-tdlib \ + libtdjson1.7.9 \ purple-discord \ purple-facebook \ libmarkdown2 \ + skypeweb \ libogg0 libopusfile0 \ /tmp/*.deb \ nodejs \