87f52cf7df
This API sadly not present on older systems and we have to use the thread unsafe one if we want to be compatible with them
900 lines
31 KiB
Docker
900 lines
31 KiB
Docker
{%- set GIT = "https://github.com" -%}
|
|
{%- set GIT_FREEDESKTOP = GIT ~ "/gitlab-freedesktop-mirrors" -%}
|
|
{%- set QT = "6.5.2" -%}
|
|
{%- set QT_TAG = "v" ~ QT -%}
|
|
{%- set QT_PREFIX = "/usr/local/desktop-app/Qt-" ~ QT -%}
|
|
{%- set OPENSSL_VER = "1_1_1" -%}
|
|
{%- set OPENSSL_PREFIX = "/usr/local/desktop-app/openssl-1.1.1" -%}
|
|
{%- set CMAKE_VER = "3.26.3" -%}
|
|
{%- set CMAKE_FILE = "cmake-" ~ CMAKE_VER ~ "-Linux-x86_64.sh" -%}
|
|
{%- set CFLAGS_DEBUG = "-g -pipe -fPIC -fstack-protector-all -fstack-clash-protection -fcf-protection -D_GLIBCXX_ASSERTIONS" -%}
|
|
{%- set CFLAGS_LTO = "-flto=auto -ffat-lto-objects" -%}
|
|
{%- set LibrariesPath = "/usr/src/Libraries" -%}
|
|
|
|
# syntax=docker/dockerfile:1
|
|
|
|
FROM centos:7 AS builder-base
|
|
ENV LANG en_US.UTF-8
|
|
ENV LIBRARY_PATH /usr/local/lib64:/usr/local/lib:/lib64:/lib:/usr/lib64:/usr/lib
|
|
ENV LD_LIBRARY_PATH $LIBRARY_PATH
|
|
ENV PKG_CONFIG_PATH /usr/local/lib64/pkgconfig:/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig
|
|
|
|
RUN yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm \
|
|
&& yum -y install https://packages.endpointdev.com/rhel/7/os/x86_64/endpoint-repo.x86_64.rpm \
|
|
&& yum -y install centos-release-scl \
|
|
&& yum -y install git rh-python38-python-pip rh-python38-python-devel \
|
|
autoconf automake libtool patch gperf flex \
|
|
fontconfig-devel freetype-devel libX11-devel at-spi2-core-devel alsa-lib-devel \
|
|
pulseaudio-libs-devel mesa-libGL-devel mesa-libEGL-devel mesa-libgbm-devel \
|
|
libdrm-devel vulkan-devel libva-devel libvdpau-devel boost169-devel fmt-devel \
|
|
gtk3-devel perl-XML-Parser pkgconfig bison yasm file which xorg-x11-util-macros \
|
|
devtoolset-10-make devtoolset-10-gcc devtoolset-10-gcc-c++ \
|
|
devtoolset-10-binutils llvm-toolset-7.0 llvm-toolset-7.0-clang-devel \
|
|
llvm-toolset-7.0-llvm-devel \
|
|
&& yum clean all
|
|
|
|
# Fix a bug with argument naming in CentOS 7 glibc
|
|
RUN sed -i 's/char \*__block/char */' /usr/include/unistd.h
|
|
|
|
SHELL [ "bash", "-c", ". /opt/rh/rh-python38/enable; . /opt/rh/devtoolset-10/enable; exec bash -c \"$@\"", "-s"]
|
|
|
|
WORKDIR {{ LibrariesPath }}
|
|
|
|
RUN python3 -m pip install meson ninja
|
|
|
|
RUN mkdir /opt/cmake \
|
|
&& curl -sSLo {{ CMAKE_FILE }} {{ GIT }}/Kitware/CMake/releases/download/v{{ CMAKE_VER }}/{{ CMAKE_FILE }} \
|
|
&& sh {{ CMAKE_FILE }} --prefix=/opt/cmake --skip-license \
|
|
&& ln -s /opt/cmake/bin/cmake /usr/local/bin/cmake \
|
|
&& rm {{ CMAKE_FILE }}
|
|
|
|
FROM builder-base AS builder
|
|
ENV AR gcc-ar
|
|
ENV RANLIB gcc-ranlib
|
|
ENV NM gcc-nm
|
|
ENV CFLAGS {% if DEBUG %}-g{% endif %} -O3 {% if LTO %}{{ CFLAGS_LTO }}{% endif %} -pipe -fPIC -fstack-protector-all -fstack-clash-protection -fcf-protection -DNDEBUG -D_FORTIFY_SOURCE=2 -D_GLIBCXX_ASSERTIONS
|
|
ENV CXXFLAGS $CFLAGS
|
|
|
|
FROM builder AS patches
|
|
RUN git init patches \
|
|
&& cd patches \
|
|
&& git remote add origin {{ GIT }}/desktop-app/patches.git \
|
|
&& git fetch --depth=1 origin edafe1a2484cd6ac9be357aa1e4cda61bf6a8b9a \
|
|
&& git reset --hard FETCH_HEAD \
|
|
&& rm -rf .git
|
|
|
|
FROM builder AS nasm
|
|
RUN git clone -b nasm-2.15.05 --depth=1 {{ GIT }}/netwide-assembler/nasm.git \
|
|
&& cd nasm \
|
|
&& ./autogen.sh \
|
|
&& ./configure \
|
|
&& make -j$(nproc) \
|
|
&& mkdir -p "{{ LibrariesPath }}/nasm-cache/usr/local/bin" \
|
|
&& install -c nasm "{{ LibrariesPath }}/nasm-cache/usr/local/bin/nasm" \
|
|
&& cd .. \
|
|
&& rm -rf nasm
|
|
|
|
FROM builder AS libffi
|
|
RUN git clone -b v3.4.2 --depth=1 {{ GIT }}/libffi/libffi.git \
|
|
&& cd libffi \
|
|
&& ./autogen.sh \
|
|
&& ./configure --enable-static --disable-docs \
|
|
&& make -j$(nproc) \
|
|
&& make DESTDIR="{{ LibrariesPath }}/libffi-cache" install \
|
|
&& cd .. \
|
|
&& rm -rf libffi
|
|
|
|
FROM builder AS zlib
|
|
RUN git clone -b v1.2.11 --depth=1 {{ GIT }}/madler/zlib.git \
|
|
&& cd zlib \
|
|
&& ./configure \
|
|
&& make -j$(nproc) \
|
|
&& make DESTDIR="{{ LibrariesPath }}/zlib-cache" install \
|
|
&& cd .. \
|
|
&& rm -rf zlib
|
|
|
|
FROM builder AS xz
|
|
RUN git clone -b v5.2.5 --depth=1 {{ GIT }}/tukaani-project/xz.git \
|
|
&& cd xz \
|
|
&& cmake -GNinja -B build . -DCMAKE_BUILD_TYPE=None \
|
|
&& cmake --build build --parallel \
|
|
&& DESTDIR="{{ LibrariesPath }}/xz-cache" cmake --install build \
|
|
&& cd .. \
|
|
&& rm -rf xz
|
|
|
|
FROM builder AS protobuf
|
|
RUN git clone -b v21.9 --depth=1 --recursive {{ GIT }}/protocolbuffers/protobuf.git \
|
|
&& cd protobuf \
|
|
&& git init third_party/abseil-cpp \
|
|
&& cd third_party/abseil-cpp \
|
|
&& git remote add origin {{ GIT }}/abseil/abseil-cpp.git \
|
|
&& git fetch --depth=1 origin 273292d1cfc0a94a65082ee350509af1d113344d \
|
|
&& git reset --hard FETCH_HEAD \
|
|
&& cd ../.. \
|
|
&& cmake -GNinja -B build . \
|
|
-DCMAKE_BUILD_TYPE=None \
|
|
-Dprotobuf_BUILD_TESTS=OFF \
|
|
-Dprotobuf_BUILD_PROTOBUF_BINARIES=ON \
|
|
-Dprotobuf_BUILD_LIBPROTOC=ON \
|
|
-Dprotobuf_WITH_ZLIB_DEFAULT=OFF \
|
|
-Dprotobuf_DEBUG_POSTFIX="" \
|
|
&& cmake --build build --parallel \
|
|
&& rm -rf .git
|
|
|
|
FROM patches AS libproxy
|
|
RUN git clone -b 0.4.17 --depth=1 {{ GIT }}/libproxy/libproxy.git \
|
|
&& cd libproxy \
|
|
&& git apply ../patches/libproxy.patch \
|
|
&& cmake -GNinja -B build . \
|
|
-DCMAKE_BUILD_TYPE=None \
|
|
-DWITH_DBUS=OFF \
|
|
-DWITH_NM=OFF \
|
|
-DWITH_NMold=OFF \
|
|
&& cmake --build build --parallel \
|
|
&& DESTDIR="{{ LibrariesPath }}/libproxy-cache" cmake --install build \
|
|
&& cd .. \
|
|
&& rm -rf libproxy
|
|
|
|
FROM builder AS lcms2
|
|
RUN git clone -b lcms2.13.1 --depth=1 {{ GIT }}/mm2/Little-CMS.git \
|
|
&& cd Little-CMS \
|
|
&& meson build \
|
|
--buildtype=plain \
|
|
--default-library=both \
|
|
&& meson compile -C build \
|
|
&& DESTDIR="{{ LibrariesPath }}/lcms2-cache" meson install -C build \
|
|
&& cd .. \
|
|
&& rm -rf Little-CMS
|
|
|
|
FROM builder AS brotli
|
|
RUN git clone -b v1.0.9 --depth=1 {{ GIT }}/google/brotli.git \
|
|
&& cd brotli \
|
|
&& cmake -GNinja -B build . \
|
|
-DCMAKE_BUILD_TYPE=None \
|
|
-DBROTLI_DISABLE_TESTS=ON \
|
|
&& cmake --build build --parallel \
|
|
&& DESTDIR="{{ LibrariesPath }}/brotli-cache" cmake --install build \
|
|
&& cd .. \
|
|
&& rm -rf brotli
|
|
|
|
FROM builder AS highway
|
|
RUN git clone -b 1.0.3 --depth=1 {{ GIT }}/google/highway.git \
|
|
&& cd highway \
|
|
&& cmake -GNinja -B build . \
|
|
-DCMAKE_BUILD_TYPE=None \
|
|
-DBUILD_TESTING=OFF \
|
|
-DHWY_ENABLE_CONTRIB=OFF \
|
|
-DHWY_ENABLE_EXAMPLES=OFF \
|
|
&& cmake --build build --parallel \
|
|
&& DESTDIR="{{ LibrariesPath }}/highway-cache" cmake --install build \
|
|
&& cd .. \
|
|
&& rm -rf highway
|
|
|
|
FROM builder AS mozjpeg
|
|
RUN git clone -b v4.0.3 --depth=1 {{ GIT }}/mozilla/mozjpeg.git \
|
|
&& cd mozjpeg \
|
|
&& cmake -GNinja -B build . \
|
|
-DCMAKE_BUILD_TYPE=None \
|
|
-DCMAKE_INSTALL_PREFIX=/usr/local \
|
|
-DWITH_JPEG8=ON \
|
|
-DPNG_SUPPORTED=OFF \
|
|
&& cmake --build build --parallel \
|
|
&& DESTDIR="{{ LibrariesPath }}/mozjpeg-cache" cmake --install build \
|
|
&& cd .. \
|
|
&& rm -rf mozjpeg
|
|
|
|
FROM builder AS opus
|
|
RUN git clone -b v1.3.1 --depth=1 {{ GIT }}/xiph/opus.git \
|
|
&& cd opus \
|
|
&& ./autogen.sh \
|
|
&& ./configure \
|
|
&& make -j$(nproc) \
|
|
&& make DESTDIR="{{ LibrariesPath }}/opus-cache" install \
|
|
&& cd .. \
|
|
&& rm -rf opus
|
|
|
|
FROM builder AS dav1d
|
|
COPY --link --from=nasm {{ LibrariesPath }}/nasm-cache /
|
|
|
|
RUN git clone -b 1.2.1 --depth=1 {{ GIT }}/videolan/dav1d.git \
|
|
&& cd dav1d \
|
|
&& meson build \
|
|
--buildtype=plain \
|
|
--default-library=both \
|
|
-Denable_tools=false \
|
|
-Denable_tests=false \
|
|
&& meson compile -C build \
|
|
&& DESTDIR="{{ LibrariesPath }}/dav1d-cache" meson install -C build \
|
|
&& cd .. \
|
|
&& rm -rf dav1d
|
|
|
|
FROM builder AS libde265
|
|
RUN git clone -b v1.0.12 --depth=1 {{ GIT }}/strukturag/libde265.git \
|
|
&& cd libde265 \
|
|
&& cmake -GNinja . \
|
|
-DCMAKE_BUILD_TYPE=None \
|
|
-DBUILD_SHARED_LIBS=OFF \
|
|
-DENABLE_DECODER=OFF \
|
|
-DENABLE_SDL=OFF \
|
|
&& cmake --build . --parallel \
|
|
&& DESTDIR="{{ LibrariesPath }}/libde265-cache" cmake --install . \
|
|
&& cd .. \
|
|
&& rm -rf libde265
|
|
|
|
FROM builder AS libvpx
|
|
RUN git clone -b v1.11.0 --depth=1 {{ GIT }}/webmproject/libvpx.git \
|
|
&& cd libvpx \
|
|
&& CFLAGS="$CFLAGS -fno-lto" CXXFLAGS="$CXXFLAGS -fno-lto" ./configure \
|
|
--disable-examples \
|
|
--disable-unit-tests \
|
|
--disable-tools \
|
|
--disable-docs \
|
|
--enable-vp8 \
|
|
--enable-vp9 \
|
|
--enable-webm-io \
|
|
&& make -j$(nproc) \
|
|
&& make DESTDIR="{{ LibrariesPath }}/libvpx-cache" install \
|
|
&& cd .. \
|
|
&& rm -rf libvpx
|
|
|
|
FROM builder AS libavif
|
|
COPY --link --from=dav1d {{ LibrariesPath }}/dav1d-cache /
|
|
|
|
RUN git clone -b v0.11.1 --depth=1 {{ GIT }}/AOMediaCodec/libavif.git \
|
|
&& cd libavif \
|
|
&& cmake -GNinja -B build . \
|
|
-DCMAKE_BUILD_TYPE=None \
|
|
-DBUILD_SHARED_LIBS=OFF \
|
|
-DAVIF_CODEC_DAV1D=ON \
|
|
&& cmake --build build --parallel \
|
|
&& DESTDIR="{{ LibrariesPath }}/libavif-cache" cmake --install build \
|
|
&& cd .. \
|
|
&& rm -rf libavif
|
|
|
|
FROM builder AS libheif
|
|
COPY --link --from=libde265 {{ LibrariesPath }}/libde265-cache /
|
|
|
|
RUN git clone -b v1.16.2 --depth=1 {{ GIT }}/strukturag/libheif.git \
|
|
&& cd libheif \
|
|
&& cmake -GNinja -B build . \
|
|
-DCMAKE_BUILD_TYPE=None \
|
|
-DBUILD_SHARED_LIBS=OFF \
|
|
-DENABLE_PLUGIN_LOADING=OFF \
|
|
-DWITH_X265=OFF \
|
|
-DWITH_AOM_DECODER=OFF \
|
|
-DWITH_AOM_ENCODER=OFF \
|
|
-DWITH_RAV1E=OFF \
|
|
-DWITH_RAV1E_PLUGIN=OFF \
|
|
-DWITH_SvtEnc=OFF \
|
|
-DWITH_SvtEnc_PLUGIN=OFF \
|
|
-DWITH_DAV1D=OFF \
|
|
-DWITH_EXAMPLES=OFF \
|
|
&& cmake --build build --parallel \
|
|
&& DESTDIR="{{ LibrariesPath }}/libheif-cache" cmake --install build \
|
|
&& cd .. \
|
|
&& rm -rf libheif
|
|
|
|
FROM builder AS libjxl
|
|
COPY --link --from=lcms2 {{ LibrariesPath }}/lcms2-cache /
|
|
COPY --link --from=brotli {{ LibrariesPath }}/brotli-cache /
|
|
COPY --link --from=highway {{ LibrariesPath }}/highway-cache /
|
|
|
|
RUN git clone -b v0.8.2 --depth=1 {{ GIT }}/libjxl/libjxl.git \
|
|
&& cd libjxl \
|
|
&& cmake -GNinja -B build . \
|
|
-DCMAKE_BUILD_TYPE=None \
|
|
-DBUILD_SHARED_LIBS=OFF \
|
|
-DBUILD_TESTING=OFF \
|
|
-DJPEGXL_ENABLE_DEVTOOLS=OFF \
|
|
-DJPEGXL_ENABLE_TOOLS=OFF \
|
|
-DJPEGXL_ENABLE_JPEGLI_LIBJPEG=OFF \
|
|
-DJPEGXL_ENABLE_DOXYGEN=OFF \
|
|
-DJPEGXL_ENABLE_MANPAGES=OFF \
|
|
-DJPEGXL_ENABLE_BENCHMARK=OFF \
|
|
-DJPEGXL_ENABLE_EXAMPLES=OFF \
|
|
-DJPEGXL_ENABLE_JNI=OFF \
|
|
-DJPEGXL_ENABLE_SJPEG=OFF \
|
|
-DJPEGXL_ENABLE_OPENEXR=OFF \
|
|
-DJPEGXL_ENABLE_SKCMS=OFF \
|
|
&& cmake --build build --parallel \
|
|
&& DESTDIR="{{ LibrariesPath }}/libjxl-cache" cmake --install build \
|
|
&& cd .. \
|
|
&& rm -rf libjxl
|
|
|
|
FROM builder AS rnnoise
|
|
RUN git clone -b master --depth=1 {{ GIT }}/desktop-app/rnnoise.git \
|
|
&& cd rnnoise \
|
|
&& cmake -GNinja -B build . -DCMAKE_BUILD_TYPE=None \
|
|
&& cmake --build build --parallel \
|
|
&& mkdir -p "{{ LibrariesPath }}/rnnoise-cache/usr/local/include" \
|
|
&& cp "include/rnnoise.h" "{{ LibrariesPath }}/rnnoise-cache/usr/local/include/" \
|
|
&& mkdir -p "{{ LibrariesPath }}/rnnoise-cache/usr/local/lib" \
|
|
&& cp "build/librnnoise.a" "{{ LibrariesPath }}/rnnoise-cache/usr/local/lib/" \
|
|
&& cd .. \
|
|
&& rm -rf rnnoise
|
|
|
|
FROM builder AS xcb-proto
|
|
RUN git clone -b xcb-proto-1.14.1 --depth=1 {{ GIT_FREEDESKTOP }}/xcbproto.git \
|
|
&& cd xcbproto \
|
|
&& ./autogen.sh \
|
|
&& make -j$(nproc) \
|
|
&& make DESTDIR="{{ LibrariesPath }}/xcb-proto-cache" install \
|
|
&& cd .. \
|
|
&& rm -rf xcbproto
|
|
|
|
FROM builder AS xcb
|
|
COPY --link --from=xcb-proto {{ LibrariesPath }}/xcb-proto-cache /
|
|
|
|
RUN git clone -b libxcb-1.14 --depth=1 {{ GIT_FREEDESKTOP }}/libxcb.git \
|
|
&& cd libxcb \
|
|
&& ./autogen.sh --enable-static \
|
|
&& make -j$(nproc) \
|
|
&& make DESTDIR="{{ LibrariesPath }}/xcb-cache" install \
|
|
&& cd .. \
|
|
&& rm -rf libxcb
|
|
|
|
FROM builder AS xcb-wm
|
|
RUN git clone -b 0.4.1 --depth=1 --recursive {{ GIT_FREEDESKTOP }}/libxcb-wm.git \
|
|
&& cd libxcb-wm \
|
|
&& ./autogen.sh --enable-static \
|
|
&& make -j$(nproc) \
|
|
&& make DESTDIR="{{ LibrariesPath }}/xcb-wm-cache" install \
|
|
&& cd .. \
|
|
&& rm -rf libxcb-wm
|
|
|
|
FROM builder AS xcb-util
|
|
RUN git clone -b 0.4.0 --depth=1 --recursive {{ GIT_FREEDESKTOP }}/libxcb-util.git \
|
|
&& cd libxcb-util \
|
|
&& ./autogen.sh --enable-static \
|
|
&& make -j$(nproc) \
|
|
&& make DESTDIR="{{ LibrariesPath }}/xcb-util-cache" install \
|
|
&& cd .. \
|
|
&& rm -rf libxcb-util
|
|
|
|
FROM builder AS xcb-image
|
|
COPY --link --from=xcb-util {{ LibrariesPath }}/xcb-util-cache /
|
|
|
|
RUN git clone -b 0.4.0 --depth=1 --recursive {{ GIT_FREEDESKTOP }}/libxcb-image.git \
|
|
&& cd libxcb-image \
|
|
&& ./autogen.sh --enable-static \
|
|
&& make -j$(nproc) \
|
|
&& make DESTDIR="{{ LibrariesPath }}/xcb-image-cache" install \
|
|
&& cd .. \
|
|
&& rm -rf libxcb-image
|
|
|
|
FROM builder AS xcb-keysyms
|
|
RUN git clone -b 0.4.0 --depth=1 --recursive {{ GIT_FREEDESKTOP }}/libxcb-keysyms.git \
|
|
&& cd libxcb-keysyms \
|
|
&& ./autogen.sh --enable-static \
|
|
&& make -j$(nproc) \
|
|
&& make DESTDIR="{{ LibrariesPath }}/xcb-keysyms-cache" install \
|
|
&& cd .. \
|
|
&& rm -rf libxcb-keysyms
|
|
|
|
FROM builder AS xcb-render-util
|
|
RUN git clone -b 0.3.9 --depth=1 --recursive {{ GIT_FREEDESKTOP }}/libxcb-render-util.git \
|
|
&& cd libxcb-render-util \
|
|
&& ./autogen.sh --enable-static \
|
|
&& make -j$(nproc) \
|
|
&& make DESTDIR="{{ LibrariesPath }}/xcb-render-util-cache" install \
|
|
&& cd .. \
|
|
&& rm -rf libxcb-render-util
|
|
|
|
FROM builder AS xcb-cursor
|
|
COPY --link --from=xcb-util {{ LibrariesPath }}/xcb-util-cache /
|
|
COPY --link --from=xcb-image {{ LibrariesPath }}/xcb-image-cache /
|
|
COPY --link --from=xcb-render-util {{ LibrariesPath }}/xcb-render-util-cache /
|
|
|
|
RUN git clone -b xcb-util-cursor-0.1.4 --depth=1 --recursive {{ GIT_FREEDESKTOP }}/libxcb-cursor.git \
|
|
&& cd libxcb-cursor \
|
|
&& ./autogen.sh --enable-static \
|
|
&& make -j$(nproc) \
|
|
&& make DESTDIR="{{ LibrariesPath }}/xcb-cursor-cache" install \
|
|
&& cd .. \
|
|
&& rm -rf libxcb-cursor
|
|
|
|
FROM builder AS libXext
|
|
RUN git clone -b libXext-1.3.4 --depth=1 {{ GIT_FREEDESKTOP }}/libxext.git \
|
|
&& cd libxext \
|
|
&& ./autogen.sh --enable-static \
|
|
&& make -j$(nproc) \
|
|
&& make DESTDIR="{{ LibrariesPath }}/libXext-cache" install \
|
|
&& cd .. \
|
|
&& rm -rf libxext
|
|
|
|
FROM builder AS libXtst
|
|
RUN git clone -b libXtst-1.2.3 --depth=1 {{ GIT_FREEDESKTOP }}/libxtst.git \
|
|
&& cd libxtst \
|
|
&& ./autogen.sh --enable-static \
|
|
&& make -j$(nproc) \
|
|
&& make DESTDIR="{{ LibrariesPath }}/libXtst-cache" install \
|
|
&& cd .. \
|
|
&& rm -rf libxtst
|
|
|
|
FROM builder AS libXfixes
|
|
RUN git clone -b libXfixes-5.0.3 --depth=1 {{ GIT_FREEDESKTOP }}/libxfixes.git \
|
|
&& cd libxfixes \
|
|
&& ./autogen.sh --enable-static \
|
|
&& make -j$(nproc) \
|
|
&& make DESTDIR="{{ LibrariesPath }}/libXfixes-cache" install \
|
|
&& cd .. \
|
|
&& rm -rf libxfixes
|
|
|
|
FROM builder AS libXv
|
|
COPY --link --from=libXext {{ LibrariesPath }}/libXext-cache /
|
|
|
|
RUN git clone -b libXv-1.0.12 --depth=1 {{ GIT_FREEDESKTOP }}/libxv.git \
|
|
&& cd libxv \
|
|
&& ./autogen.sh --enable-static \
|
|
&& make -j$(nproc) \
|
|
&& make DESTDIR="{{ LibrariesPath }}/libXv-cache" install \
|
|
&& cd .. \
|
|
&& rm -rf libxv
|
|
|
|
FROM builder AS libXrandr
|
|
RUN git clone -b libXrandr-1.5.2 --depth=1 {{ GIT_FREEDESKTOP }}/libxrandr.git \
|
|
&& cd libxrandr \
|
|
&& ./autogen.sh --enable-static \
|
|
&& make -j$(nproc) \
|
|
&& make DESTDIR="{{ LibrariesPath }}/libXrandr-cache" install \
|
|
&& cd .. \
|
|
&& rm -rf libxrandr
|
|
|
|
FROM builder AS libXrender
|
|
RUN git clone -b libXrender-0.9.10 --depth=1 {{ GIT_FREEDESKTOP }}/libxrender.git \
|
|
&& cd libxrender \
|
|
&& ./autogen.sh --enable-static \
|
|
&& make -j$(nproc) \
|
|
&& make DESTDIR="{{ LibrariesPath }}/libXrender-cache" install \
|
|
&& cd .. \
|
|
&& rm -rf libxrender
|
|
|
|
FROM builder AS libXdamage
|
|
RUN git clone -b libXdamage-1.1.5 --depth=1 {{ GIT_FREEDESKTOP }}/libxdamage.git \
|
|
&& cd libxdamage \
|
|
&& ./autogen.sh --enable-static \
|
|
&& make -j$(nproc) \
|
|
&& make DESTDIR="{{ LibrariesPath }}/libXdamage-cache" install \
|
|
&& cd .. \
|
|
&& rm -rf libxdamage
|
|
|
|
FROM builder AS libXcomposite
|
|
RUN git clone -b libXcomposite-0.4.5 --depth=1 {{ GIT_FREEDESKTOP }}/libxcomposite.git \
|
|
&& cd libxcomposite \
|
|
&& ./autogen.sh --enable-static \
|
|
&& make -j$(nproc) \
|
|
&& make DESTDIR="{{ LibrariesPath }}/libXcomposite-cache" install \
|
|
&& cd .. \
|
|
&& rm -rf libxcomposite
|
|
|
|
FROM builder AS wayland
|
|
COPY --link --from=libffi {{ LibrariesPath }}/libffi-cache /
|
|
|
|
RUN git clone -b 1.19.0 --depth=1 {{ GIT_FREEDESKTOP }}/wayland.git \
|
|
&& cd wayland \
|
|
&& sed -i "/subdir('tests')/d" meson.build \
|
|
&& meson build \
|
|
--buildtype=plain \
|
|
--default-library=both \
|
|
-Ddocumentation=false \
|
|
-Ddtd_validation=false \
|
|
-Dicon_directory=/usr/share/icons \
|
|
&& meson compile -C build \
|
|
&& DESTDIR="{{ LibrariesPath }}/wayland-cache" meson install -C build \
|
|
&& cd .. \
|
|
&& rm -rf wayland
|
|
|
|
FROM builder AS nv-codec-headers
|
|
RUN git clone -b n11.1.5.1 --depth=1 {{ GIT }}/FFmpeg/nv-codec-headers.git \
|
|
&& DESTDIR="{{ LibrariesPath }}/nv-codec-headers-cache" make -C nv-codec-headers install \
|
|
&& rm -rf nv-codec-headers
|
|
|
|
FROM builder AS ffmpeg
|
|
COPY --link --from=opus {{ LibrariesPath }}/opus-cache /
|
|
COPY --link --from=dav1d {{ LibrariesPath }}/dav1d-cache /
|
|
COPY --link --from=libvpx {{ LibrariesPath }}/libvpx-cache /
|
|
COPY --link --from=libXext {{ LibrariesPath }}/libXext-cache /
|
|
COPY --link --from=libXv {{ LibrariesPath }}/libXv-cache /
|
|
COPY --link --from=nv-codec-headers {{ LibrariesPath }}/nv-codec-headers-cache /
|
|
|
|
RUN git init ffmpeg \
|
|
&& cd ffmpeg \
|
|
&& git remote add origin {{ GIT }}/FFmpeg/FFmpeg.git \
|
|
&& git fetch --depth=1 origin 7268323193d55365f914de39fadd5dbdb1f68976 \
|
|
&& git reset --hard FETCH_HEAD \
|
|
&& ./configure \
|
|
--extra-cflags="-DCONFIG_SAFE_BITSTREAM_READER=1" \
|
|
--extra-cxxflags="-DCONFIG_SAFE_BITSTREAM_READER=1" \
|
|
--disable-debug \
|
|
--disable-optimizations \
|
|
--disable-inline-asm \
|
|
--disable-programs \
|
|
--disable-doc \
|
|
--disable-network \
|
|
--disable-autodetect \
|
|
--disable-everything \
|
|
--enable-libdav1d \
|
|
--enable-libopus \
|
|
--enable-libvpx \
|
|
--enable-vaapi \
|
|
--enable-vdpau \
|
|
--enable-xlib \
|
|
--enable-libdrm \
|
|
--enable-ffnvcodec \
|
|
--enable-nvdec \
|
|
--enable-cuvid \
|
|
--enable-protocol=file \
|
|
--enable-hwaccel=av1_vaapi \
|
|
--enable-hwaccel=av1_nvdec \
|
|
--enable-hwaccel=h264_vaapi \
|
|
--enable-hwaccel=h264_vdpau \
|
|
--enable-hwaccel=h264_nvdec \
|
|
--enable-hwaccel=hevc_vaapi \
|
|
--enable-hwaccel=hevc_vdpau \
|
|
--enable-hwaccel=hevc_nvdec \
|
|
--enable-hwaccel=mpeg2_vaapi \
|
|
--enable-hwaccel=mpeg2_vdpau \
|
|
--enable-hwaccel=mpeg2_nvdec \
|
|
--enable-hwaccel=mpeg4_vaapi \
|
|
--enable-hwaccel=mpeg4_vdpau \
|
|
--enable-hwaccel=mpeg4_nvdec \
|
|
--enable-hwaccel=vp8_vaapi \
|
|
--enable-hwaccel=vp8_nvdec \
|
|
--enable-decoder=aac \
|
|
--enable-decoder=aac_fixed \
|
|
--enable-decoder=aac_latm \
|
|
--enable-decoder=aasc \
|
|
--enable-decoder=ac3 \
|
|
--enable-decoder=alac \
|
|
--enable-decoder=av1 \
|
|
--enable-decoder=av1_cuvid \
|
|
--enable-decoder=eac3 \
|
|
--enable-decoder=flac \
|
|
--enable-decoder=gif \
|
|
--enable-decoder=h264 \
|
|
--enable-decoder=hevc \
|
|
--enable-decoder=libdav1d \
|
|
--enable-decoder=libvpx_vp8 \
|
|
--enable-decoder=libvpx_vp9 \
|
|
--enable-decoder=mp1 \
|
|
--enable-decoder=mp1float \
|
|
--enable-decoder=mp2 \
|
|
--enable-decoder=mp2float \
|
|
--enable-decoder=mp3 \
|
|
--enable-decoder=mp3adu \
|
|
--enable-decoder=mp3adufloat \
|
|
--enable-decoder=mp3float \
|
|
--enable-decoder=mp3on4 \
|
|
--enable-decoder=mp3on4float \
|
|
--enable-decoder=mpeg4 \
|
|
--enable-decoder=msmpeg4v2 \
|
|
--enable-decoder=msmpeg4v3 \
|
|
--enable-decoder=opus \
|
|
--enable-decoder=pcm_alaw \
|
|
--enable-decoder=pcm_f32be \
|
|
--enable-decoder=pcm_f32le \
|
|
--enable-decoder=pcm_f64be \
|
|
--enable-decoder=pcm_f64le \
|
|
--enable-decoder=pcm_lxf \
|
|
--enable-decoder=pcm_mulaw \
|
|
--enable-decoder=pcm_s16be \
|
|
--enable-decoder=pcm_s16be_planar \
|
|
--enable-decoder=pcm_s16le \
|
|
--enable-decoder=pcm_s16le_planar \
|
|
--enable-decoder=pcm_s24be \
|
|
--enable-decoder=pcm_s24daud \
|
|
--enable-decoder=pcm_s24le \
|
|
--enable-decoder=pcm_s24le_planar \
|
|
--enable-decoder=pcm_s32be \
|
|
--enable-decoder=pcm_s32le \
|
|
--enable-decoder=pcm_s32le_planar \
|
|
--enable-decoder=pcm_s64be \
|
|
--enable-decoder=pcm_s64le \
|
|
--enable-decoder=pcm_s8 \
|
|
--enable-decoder=pcm_s8_planar \
|
|
--enable-decoder=pcm_u16be \
|
|
--enable-decoder=pcm_u16le \
|
|
--enable-decoder=pcm_u24be \
|
|
--enable-decoder=pcm_u24le \
|
|
--enable-decoder=pcm_u32be \
|
|
--enable-decoder=pcm_u32le \
|
|
--enable-decoder=pcm_u8 \
|
|
--enable-decoder=pcm_zork \
|
|
--enable-decoder=vorbis \
|
|
--enable-decoder=vp8 \
|
|
--enable-decoder=wavpack \
|
|
--enable-decoder=wmalossless \
|
|
--enable-decoder=wmapro \
|
|
--enable-decoder=wmav1 \
|
|
--enable-decoder=wmav2 \
|
|
--enable-decoder=wmavoice \
|
|
--enable-encoder=libopus \
|
|
--enable-filter=atempo \
|
|
--enable-parser=aac \
|
|
--enable-parser=aac_latm \
|
|
--enable-parser=flac \
|
|
--enable-parser=h264 \
|
|
--enable-parser=hevc \
|
|
--enable-parser=mpeg4video \
|
|
--enable-parser=mpegaudio \
|
|
--enable-parser=opus \
|
|
--enable-parser=vorbis \
|
|
--enable-demuxer=aac \
|
|
--enable-demuxer=flac \
|
|
--enable-demuxer=gif \
|
|
--enable-demuxer=h264 \
|
|
--enable-demuxer=hevc \
|
|
--enable-demuxer=matroska \
|
|
--enable-demuxer=m4v \
|
|
--enable-demuxer=mov \
|
|
--enable-demuxer=mp3 \
|
|
--enable-demuxer=ogg \
|
|
--enable-demuxer=wav \
|
|
--enable-muxer=ogg \
|
|
--enable-muxer=opus \
|
|
&& make -j$(nproc) \
|
|
&& make DESTDIR="{{ LibrariesPath }}/ffmpeg-cache" install \
|
|
&& cd .. \
|
|
&& rm -rf ffmpeg
|
|
|
|
FROM builder AS pipewire
|
|
RUN git clone -b 0.3.25 --depth=1 {{ GIT }}/PipeWire/pipewire.git \
|
|
&& cd pipewire \
|
|
&& meson build \
|
|
--buildtype=plain \
|
|
-Dtests=disabled \
|
|
-Dexamples=disabled \
|
|
-Dspa-plugins=disabled \
|
|
&& meson compile -C build \
|
|
&& DESTDIR="{{ LibrariesPath }}/pipewire-cache" meson install -C build \
|
|
&& cd .. \
|
|
&& rm -rf pipewire
|
|
|
|
FROM builder AS openal
|
|
COPY --link --from=pipewire {{ LibrariesPath }}/pipewire-cache /
|
|
|
|
RUN git clone -b 1.23.0 --depth=1 {{ GIT }}/kcat/openal-soft.git \
|
|
&& cd openal-soft \
|
|
&& cmake -GNinja -B build . \
|
|
-DCMAKE_BUILD_TYPE=None \
|
|
-DLIBTYPE:STRING=STATIC \
|
|
-DALSOFT_EXAMPLES=OFF \
|
|
-DALSOFT_UTILS=OFF \
|
|
-DALSOFT_INSTALL_CONFIG=OFF \
|
|
&& cmake --build build --parallel \
|
|
&& DESTDIR="{{ LibrariesPath }}/openal-cache" cmake --install build \
|
|
&& cd .. \
|
|
&& rm -rf openal-soft
|
|
|
|
FROM builder AS openssl
|
|
ENV opensslDir openssl_{{ OPENSSL_VER }}
|
|
RUN git clone -b OpenSSL_{{ OPENSSL_VER }}-stable --depth=1 {{ GIT }}/openssl/openssl.git $opensslDir \
|
|
&& cd $opensslDir \
|
|
&& ./config \
|
|
--prefix="{{ OPENSSL_PREFIX }}" \
|
|
--openssldir=/etc/ssl \
|
|
no-tests \
|
|
no-dso \
|
|
&& make -j$(nproc) \
|
|
&& make DESTDIR="{{ LibrariesPath }}/openssl-cache" install_sw \
|
|
&& cd .. \
|
|
&& rm -rf $opensslDir
|
|
|
|
FROM builder AS xkbcommon
|
|
COPY --link --from=xcb {{ LibrariesPath }}/xcb-cache /
|
|
|
|
RUN git clone -b xkbcommon-1.3.1 --depth=1 {{ GIT }}/xkbcommon/libxkbcommon.git \
|
|
&& cd libxkbcommon \
|
|
&& meson build \
|
|
--buildtype=plain \
|
|
--default-library=both \
|
|
-Denable-docs=false \
|
|
-Denable-wayland=false \
|
|
-Denable-xkbregistry=false \
|
|
-Dxkb-config-root=/usr/share/X11/xkb \
|
|
-Dxkb-config-extra-path=/etc/xkb \
|
|
-Dx-locale-root=/usr/share/X11/locale \
|
|
&& meson compile -C build \
|
|
&& DESTDIR="{{ LibrariesPath }}/xkbcommon-cache" meson install -C build \
|
|
&& cd .. \
|
|
&& rm -rf libxkbcommon
|
|
|
|
FROM patches AS glibmm
|
|
COPY --link --from=libffi {{ LibrariesPath }}/libffi-cache /
|
|
|
|
RUN git clone -b 2.77.0 --depth=1 {{ GIT }}/GNOME/glibmm.git \
|
|
&& cd glibmm \
|
|
&& git apply ../patches/glibmm.patch \
|
|
&& CFLAGS="$CFLAGS {{ CFLAGS_LTO }}" CXXFLAGS="$CXXFLAGS {{ CFLAGS_LTO }}" meson build \
|
|
--buildtype=plain \
|
|
--default-library=both \
|
|
-Dbuild-documentation=false \
|
|
-Dbuild-examples=false \
|
|
-Dsigc++-3.0:build-documentation=false \
|
|
-Dsigc++-3.0:build-examples=false \
|
|
-Dsigc++-3.0:validation=false \
|
|
-Dglib:tests=false \
|
|
-Dmm-common:use-network=true \
|
|
&& meson compile -C build \
|
|
&& DESTDIR="{{ LibrariesPath }}/glibmm-cache" meson install -C build \
|
|
&& cd .. \
|
|
&& rm -rf glibmm
|
|
|
|
FROM builder AS gobject-introspection
|
|
COPY --link --from=libffi {{ LibrariesPath }}/libffi-cache /
|
|
COPY --link --from=glibmm {{ LibrariesPath }}/glibmm-cache /
|
|
|
|
RUN git clone -b 1.76.1 --depth=1 {{ GIT }}/GNOME/gobject-introspection.git \
|
|
&& cd gobject-introspection \
|
|
&& meson build --buildtype=plain \
|
|
&& meson compile -C build \
|
|
&& DESTDIR="{{ LibrariesPath }}/gobject-introspection-cache" meson install -C build \
|
|
&& cd .. \
|
|
&& rm -rf gobject-introspection
|
|
|
|
FROM patches AS qt
|
|
COPY --link --from=libffi {{ LibrariesPath }}/libffi-cache /
|
|
COPY --link --from=zlib {{ LibrariesPath }}/zlib-cache /
|
|
COPY --link --from=libproxy {{ LibrariesPath }}/libproxy-cache /
|
|
COPY --link --from=lcms2 {{ LibrariesPath }}/lcms2-cache /
|
|
COPY --link --from=mozjpeg {{ LibrariesPath }}/mozjpeg-cache /
|
|
COPY --link --from=xcb {{ LibrariesPath }}/xcb-cache /
|
|
COPY --link --from=xcb-wm {{ LibrariesPath }}/xcb-wm-cache /
|
|
COPY --link --from=xcb-util {{ LibrariesPath }}/xcb-util-cache /
|
|
COPY --link --from=xcb-image {{ LibrariesPath }}/xcb-image-cache /
|
|
COPY --link --from=xcb-keysyms {{ LibrariesPath }}/xcb-keysyms-cache /
|
|
COPY --link --from=xcb-render-util {{ LibrariesPath }}/xcb-render-util-cache /
|
|
COPY --link --from=xcb-cursor {{ LibrariesPath }}/xcb-cursor-cache /
|
|
COPY --link --from=wayland {{ LibrariesPath }}/wayland-cache /
|
|
COPY --link --from=openssl {{ LibrariesPath }}/openssl-cache /
|
|
COPY --link --from=xkbcommon {{ LibrariesPath }}/xkbcommon-cache /
|
|
|
|
ENV OPENSSL_ROOT_DIR {{ OPENSSL_PREFIX }}
|
|
|
|
RUN git clone -b {{ QT_TAG }} --depth=1 https://code.qt.io/qt/qt5.git qt_{{ QT }} \
|
|
&& cd qt_{{ QT }} \
|
|
&& git submodule update --init --recursive --depth=1 qtbase qtdeclarative qtwayland qtimageformats qtsvg qtshadertools \
|
|
&& cd qtbase \
|
|
&& find ../../patches/qtbase_{{ QT }} -type f -print0 | sort -z | xargs -r0 git apply \
|
|
&& cd .. \
|
|
&& ./configure -prefix "{{ QT_PREFIX }}" \
|
|
CMAKE_BUILD_TYPE=None \
|
|
-opensource \
|
|
-confirm-license \
|
|
-libproxy \
|
|
-qt-libpng \
|
|
-qt-harfbuzz \
|
|
-qt-pcre \
|
|
-no-icu \
|
|
-no-feature-xcb-sm \
|
|
-no-feature-egl-extension-platform-wayland \
|
|
-static \
|
|
-dbus-runtime \
|
|
-openssl-linked \
|
|
-nomake examples \
|
|
-nomake tests \
|
|
&& cmake --build . --parallel \
|
|
&& DESTDIR="{{ LibrariesPath }}/qt-cache" cmake --install . \
|
|
&& cd .. \
|
|
&& rm -rf qt_{{ QT }}
|
|
|
|
FROM patches AS breakpad
|
|
RUN git init breakpad \
|
|
&& cd breakpad \
|
|
&& git remote add origin https://chromium.googlesource.com/breakpad/breakpad.git \
|
|
&& git fetch --depth=1 origin dfcb7b6799b7c1e2c8d65e857d8afede185471d8 \
|
|
&& git reset --hard FETCH_HEAD \
|
|
&& git apply ../patches/breakpad.diff \
|
|
&& git init src/third_party/lss \
|
|
&& cd src/third_party/lss \
|
|
&& git remote add origin https://chromium.googlesource.com/linux-syscall-support.git \
|
|
&& git fetch --depth=1 origin e1e7b0ad8ee99a875b272c8e33e308472e897660 \
|
|
&& git reset --hard FETCH_HEAD \
|
|
&& cd ../../.. \
|
|
&& env -u CFLAGS -u CXXFLAGS ./configure \
|
|
&& make -j$(nproc) \
|
|
&& make DESTDIR="{{ LibrariesPath }}/breakpad-cache" install \
|
|
&& cd .. \
|
|
&& rm -rf breakpad
|
|
|
|
FROM builder AS webrtc
|
|
COPY --link --from=mozjpeg {{ LibrariesPath }}/mozjpeg-cache /
|
|
COPY --link --from=opus {{ LibrariesPath }}/opus-cache /
|
|
COPY --link --from=libvpx {{ LibrariesPath }}/libvpx-cache /
|
|
COPY --link --from=ffmpeg {{ LibrariesPath }}/ffmpeg-cache /
|
|
COPY --link --from=openssl {{ LibrariesPath }}/openssl-cache /
|
|
COPY --link --from=libXtst {{ LibrariesPath }}/libXtst-cache /
|
|
COPY --link --from=pipewire {{ LibrariesPath }}/pipewire-cache /
|
|
|
|
# Shallow clone on a specific commit.
|
|
RUN git init tg_owt \
|
|
&& cd tg_owt \
|
|
&& git remote add origin {{ GIT }}/desktop-app/tg_owt.git \
|
|
&& git fetch --depth=1 origin dcb5069ff76bd293e86928804208737e6cee2ccc \
|
|
&& git reset --hard FETCH_HEAD \
|
|
&& git submodule update --init --recursive --depth=1 \
|
|
&& rm -rf .git \
|
|
&& env -u CFLAGS -u CXXFLAGS cmake -G"Ninja Multi-Config" -B out . \
|
|
-DCMAKE_C_FLAGS_RELEASE="$CFLAGS" \
|
|
-DCMAKE_C_FLAGS_DEBUG="{{ CFLAGS_DEBUG }}" \
|
|
-DCMAKE_CXX_FLAGS_RELEASE="$CXXFLAGS" \
|
|
-DCMAKE_CXX_FLAGS_DEBUG="{{ CFLAGS_DEBUG }}" \
|
|
-DTG_OWT_SPECIAL_TARGET=linux \
|
|
-DTG_OWT_LIBJPEG_INCLUDE_PATH=/usr/local/include \
|
|
-DTG_OWT_OPENSSL_INCLUDE_PATH={{ OPENSSL_PREFIX }}/include \
|
|
-DTG_OWT_OPUS_INCLUDE_PATH=/usr/local/include/opus \
|
|
-DTG_OWT_LIBVPX_INCLUDE_PATH=/usr/local/include \
|
|
-DTG_OWT_FFMPEG_INCLUDE_PATH=/usr/local/include
|
|
|
|
WORKDIR tg_owt
|
|
|
|
FROM webrtc AS webrtc_release
|
|
RUN cmake --build out --config Release --parallel \
|
|
&& find out -mindepth 1 -maxdepth 1 ! -name Release -exec rm -rf {} \;
|
|
|
|
{%- if DEBUG %}
|
|
|
|
FROM webrtc AS webrtc_debug
|
|
RUN cmake --build out --config Debug --parallel \
|
|
&& find out -mindepth 1 -maxdepth 1 ! -name Debug -exec rm -rf {} \;
|
|
{%- endif %}
|
|
|
|
FROM builder-base
|
|
COPY --link --from=libffi {{ LibrariesPath }}/libffi-cache /
|
|
COPY --link --from=zlib {{ LibrariesPath }}/zlib-cache /
|
|
COPY --link --from=xz {{ LibrariesPath }}/xz-cache /
|
|
COPY --link --from=protobuf {{ LibrariesPath }}/protobuf protobuf
|
|
COPY --link --from=libproxy {{ LibrariesPath }}/libproxy-cache /
|
|
COPY --link --from=lcms2 {{ LibrariesPath }}/lcms2-cache /
|
|
COPY --link --from=brotli {{ LibrariesPath }}/brotli-cache /
|
|
COPY --link --from=highway {{ LibrariesPath }}/highway-cache /
|
|
COPY --link --from=mozjpeg {{ LibrariesPath }}/mozjpeg-cache /
|
|
COPY --link --from=opus {{ LibrariesPath }}/opus-cache /
|
|
COPY --link --from=dav1d {{ LibrariesPath }}/dav1d-cache /
|
|
COPY --link --from=libde265 {{ LibrariesPath }}/libde265-cache /
|
|
COPY --link --from=libvpx {{ LibrariesPath }}/libvpx-cache /
|
|
COPY --link --from=libavif {{ LibrariesPath }}/libavif-cache /
|
|
COPY --link --from=libheif {{ LibrariesPath }}/libheif-cache /
|
|
COPY --link --from=libjxl {{ LibrariesPath }}/libjxl-cache /
|
|
COPY --link --from=rnnoise {{ LibrariesPath }}/rnnoise-cache /
|
|
COPY --link --from=xcb {{ LibrariesPath }}/xcb-cache /
|
|
COPY --link --from=xcb-wm {{ LibrariesPath }}/xcb-wm-cache /
|
|
COPY --link --from=xcb-util {{ LibrariesPath }}/xcb-util-cache /
|
|
COPY --link --from=xcb-image {{ LibrariesPath }}/xcb-image-cache /
|
|
COPY --link --from=xcb-keysyms {{ LibrariesPath }}/xcb-keysyms-cache /
|
|
COPY --link --from=xcb-render-util {{ LibrariesPath }}/xcb-render-util-cache /
|
|
COPY --link --from=xcb-cursor {{ LibrariesPath }}/xcb-cursor-cache /
|
|
COPY --link --from=libXext {{ LibrariesPath }}/libXext-cache /
|
|
COPY --link --from=libXfixes {{ LibrariesPath }}/libXfixes-cache /
|
|
COPY --link --from=libXv {{ LibrariesPath }}/libXv-cache /
|
|
COPY --link --from=libXtst {{ LibrariesPath }}/libXtst-cache /
|
|
COPY --link --from=libXrandr {{ LibrariesPath }}/libXrandr-cache /
|
|
COPY --link --from=libXrender {{ LibrariesPath }}/libXrender-cache /
|
|
COPY --link --from=libXdamage {{ LibrariesPath }}/libXdamage-cache /
|
|
COPY --link --from=libXcomposite {{ LibrariesPath }}/libXcomposite-cache /
|
|
COPY --link --from=wayland {{ LibrariesPath }}/wayland-cache /
|
|
COPY --link --from=ffmpeg {{ LibrariesPath }}/ffmpeg-cache /
|
|
COPY --link --from=openal {{ LibrariesPath }}/openal-cache /
|
|
COPY --link --from=openssl {{ LibrariesPath }}/openssl-cache /
|
|
COPY --link --from=xkbcommon {{ LibrariesPath }}/xkbcommon-cache /
|
|
COPY --link --from=glibmm {{ LibrariesPath }}/glibmm-cache /
|
|
COPY --link --from=gobject-introspection {{ LibrariesPath }}/gobject-introspection-cache /
|
|
COPY --link --from=qt {{ LibrariesPath }}/qt-cache /
|
|
COPY --link --from=breakpad {{ LibrariesPath }}/breakpad-cache /
|
|
COPY --link --from=webrtc {{ LibrariesPath }}/tg_owt tg_owt
|
|
COPY --link --from=webrtc_release {{ LibrariesPath }}/tg_owt/out/Release tg_owt/out/Release
|
|
|
|
{%- if DEBUG %}
|
|
COPY --link --from=webrtc_debug {{ LibrariesPath }}/tg_owt/out/Debug tg_owt/out/Debug
|
|
{%- endif %}
|
|
|
|
WORKDIR ../tdesktop
|
|
ENV QT {{ QT }}
|
|
ENV OPENSSL_ROOT_DIR {{ OPENSSL_PREFIX }}
|
|
ENV BOOST_INCLUDEDIR /usr/include/boost169
|
|
ENV BOOST_LIBRARYDIR /usr/lib64/boost169
|
|
|
|
VOLUME [ "/usr/src/tdesktop" ]
|
|
ENTRYPOINT [ "scl", "enable", "rh-python38", "--", "scl", "enable", "llvm-toolset-7.0", "--", "scl", "enable", "devtoolset-10", "--" ]
|
|
CMD [ "/usr/src/tdesktop/Telegram/build/docker/centos_env/build.sh" ]
|