@@ -12,6 +12,20 @@ ENV LANG=C.UTF-8
1212# Bullseye environment. It may be that not all are necessary.
1313# aria2 build requires autoconf, autopoint, gettext
1414# git is used for cleaning unwanted files
15+ ENV XCB_MINIMUM_PACKAGES=' \
16+ libxcb-cursor-dev \
17+ libxcb-icccm4-dev \
18+ libxcb-image0-dev \
19+ libxcb-keysyms1-dev \
20+ libxcb-randr0-dev \
21+ libxcb-render0-dev \
22+ libxcb-render-util0-dev \
23+ libxcb-shape0-dev \
24+ libxcb-shm0-dev \
25+ libxcb-sync-dev \
26+ libxcb-xfixes0-dev \
27+ libxcb-xkb-dev \
28+ '
1529RUN apt-get update && apt-get install -y \
1630 autoconf \
1731 autopoint \
@@ -23,15 +37,18 @@ RUN apt-get update && apt-get install -y \
2337 libtool \
2438 libx11-xcb-dev \
2539 libxcb-glx0-dev \
26- libxext-dev \
27- libxkbcommon-dev \
40+ libxkbcommon-x11-dev \
2841 make \
42+ ninja-build \
2943 perl \
3044 p7zip-full \
3145 pkg-config \
3246 python \
3347 xz-utils \
34- zlib1g-dev
48+ zlib1g-dev \
49+ $XCB_MINIMUM_PACKAGES && \
50+ echo 'deb https://archive.debian.org/debian-archive/debian bullseye-backports main' > /etc/apt/sources.list.d/backports.list && \
51+ apt-get update && apt-get install -y cmake/bullseye-backports
3552
3653# ################
3754# Build OpenSSL #
@@ -49,15 +66,8 @@ RUN make -j`nproc` && make install_sw && rm -rf /build-ssl
4966# Build Qt #
5067# ###########
5168WORKDIR /build-qt
52- COPY md5sums-qt.txt /build-qt/
53- ENV UPDATER_MODULES=qtbase,qtquickcontrols,qtquickcontrols2,qtsvg,qtgraphicaleffects
54- RUN curl -LO https://download.qt.io/archive/qt/5.14/5.14.2/single/qt-everywhere-src-5.14.2.tar.xz && \
55- md5sum --check --ignore-missing md5sums-qt.txt && \
56- tar -xJf qt-everywhere-src-5.14.2.tar.xz && \
57- cd qt-everywhere-src-5.14.2 && \
58- OPENSSL_LIBS='-L/openssl/lib64 -lssl -lcrypto -lpthread -ldl' ./configure -opensource -confirm-license -release -optimize-size -no-shared -static --c++std=14 -nomake tests -nomake tools -nomake examples -no-gif -no-icu -no-glib -no-qml-debug -opengl desktop -no-eglfs -no-opengles3 -no-angle -no-egl -qt-xcb -xkbcommon -dbus-runtime -qt-freetype -qt-pcre -qt-harfbuzz -qt-libpng -qt-libjpeg -system-zlib -I /openssl/include -openssl-linked -prefix /qt && \
59- bash -c "make -j`nproc` module-{$UPDATER_MODULES} && make module-{$UPDATER_MODULES}-install_subtargets" && \
60- rm -rf /build-qt
69+ COPY md5sums-qt.txt build-qt.sh /build-qt/
70+ RUN PKG_CONFIG_PATH=/openssl/lib64/pkgconfig ./build-qt.sh && mv qt /qt && rm -rf /build-qt
6171
6272# ##############
6373# Build aria2 #
@@ -75,7 +85,8 @@ RUN OPENSSL_LIBS='-L/openssl/lib64 -lssl -lcrypto -lpthread -ldl' OPENSSL_CFLAGS
7585COPY . /updater
7686RUN set -e; for D in . quazip fluid; do cd /updater/$D && git clean -dXff; done
7787WORKDIR /build
78- RUN /qt/bin/qmake -config release QMAKE_LFLAGS+="-no-pie" /updater && make -j`nproc`
88+ # TODO no-pie?
89+ RUN PKG_CONFIG_PATH=/openssl/lib64/pkgconfig cmake -DCMAKE_FIND_ROOT_PATH=/qt -DCMAKE_BUILD_TYPE=MinSizeRel /updater && make -j`nproc`
7990RUN mv updater updater-nonstripped && strip updater-nonstripped -o updater
8091# Version check: do not depend on glibc > 2.31
8192RUN echo GLIBC_2.31 > target_version && \
0 commit comments