From 36d3b476678e93236e8556b469f99582ab37b2a7 Mon Sep 17 00:00:00 2001 From: Dave Jansen Date: Fri, 28 Nov 2025 15:02:58 +0900 Subject: [PATCH] Further separate individual build steps, other minor clean-up --- Dockerfile | 55 +++++++++++++++++++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 19 deletions(-) diff --git a/Dockerfile b/Dockerfile index a027413..db8a838 100755 --- a/Dockerfile +++ b/Dockerfile @@ -16,11 +16,9 @@ RUN apt-get update && apt-get upgrade -y && apt-get install -y --no-install-reco build-essential \ cmake g++ gettext gcc git \ gperf \ - imagemagick \ curl \ make \ cmake \ - libtool \ pkg-config \ libglib2.0-dev \ libhttp-parser-dev \ @@ -38,34 +36,36 @@ RUN apt-get update && apt-get upgrade -y && apt-get install -y --no-install-reco libmarkdown2-dev \ librsvg2-bin \ libsqlite3-dev \ + imagemagick \ libwebp-dev \ libpng-dev \ libgdk-pixbuf-xlib-2.0-dev \ libopusfile-dev \ - libtool-bin \ netcat-traditional \ && rm -fr /var/lib/apt/lists/* + +# Deprecated? +#libtool \ +#libtool-bin \ #sudo -# Install Rust (for purple-presage) -RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y - -# Add .cargo/bin to PATH -ENV PATH="/root/.cargo/bin:${PATH}" - RUN mkdir -p /build WORKDIR "/build" -# Fetch sources of packages to be built +# Fetch Bitlbee source RUN git clone https://github.com/bitlbee/bitlbee.git && \ - git -C bitlbee checkout ${BITLBEE_VERSION} && \ - git clone --recurse-submodules https://github.com/hoehermann/purple-presage.git -#git clone https://github.com/matrix-org/purple-matrix && \ + git -C bitlbee checkout ${BITLBEE_VERSION} # Build Bitlbee WORKDIR /build/bitlbee -RUN ./configure --verbose=1 --jabber=1 --otr=1 --purple=1 --strip=1 --prefix=/usr/local/ && \ +RUN ./configure \ + --verbose=1 \ + --jabber=1 \ + --otr=1 \ + --purple=1 \ + --strip=1 \ + --prefix=/usr/local/ && \ make -j"$(nproc)" && \ make install && \ make install-bin && \ @@ -75,23 +75,40 @@ RUN ./configure --verbose=1 --jabber=1 --otr=1 --purple=1 --strip=1 --prefix=/us make install-plugin-otr # Build purple-presage (Signal) -FROM builder as presage-builder +FROM builder AS presage-builder + +# Install Rust (for purple-presage) +RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y + +# Add .cargo/bin to PATH +ENV PATH="/root/.cargo/bin:${PATH}" + +WORKDIR /build + +# Fetch source +RUN git clone --recurse-submodules https://github.com/hoehermann/purple-presage.git WORKDIR /build/purple-presage RUN cmake -B build && \ cmake --build build --config Release && \ cmake --install build -RUN libtool --mode=finish /usr/lib/x86_64-linux-gnu/purple-2 - # Build purple-matrix # FROM builder as matrix-builder + +# WORKDIR /build + +# RUN git clone https://github.com/matrix-org/purple-matrix + # WORKDIR /build/purple-matrix + # RUN make -j"$(nproc)" && make install FROM docker.io/debian:stable-slim -RUN apt-get update && apt-get upgrade -y && apt-get install -y --no-install-recommends \ +RUN apt-get update && \ + apt-get upgrade -y && \ + apt-get install -y --no-install-recommends \ libpurple0 \ libotr5 \ adduser @@ -106,7 +123,7 @@ COPY --from=builder /usr/local/share/bitlbee/ /usr/local/share/bitlbee/ #COPY --from=builder /usr/local/share/metainfo/ /usr/local/share/metainfo/ COPY --from=presage-builder /usr/lib/x86_64-linux-gnu/purple-2/libpresage.so /usr/lib/x86_64-linux-gnu/purple-2/libpresage.so -# COPY --from=builder /usr/lib/x86_64-linux-gnu/purple-2/libmatrix.so /usr/lib/x86_64-linux-gnu/purple-2/libmatrix.so +# COPY --from=matrix-builder /usr/lib/x86_64-linux-gnu/purple-2/libmatrix.so /usr/lib/x86_64-linux-gnu/purple-2/libmatrix.so RUN adduser --system --home /var/lib/bitlbee --disabled-password \ --disabled-login --shell /usr/sbin/nologin bitlbee