fix(docker): hfsprogs/xar Build-Fehler beheben

hfsprogs liegt in Debians non-free-Repo (bookworm-slim aktiviert nur main),
xar existiert in bookworm ueberhaupt nicht als Paket. non-free per eigener
sources.list.d aktiviert, xar aus dem mackyle-Upstream (gleicher Maintainer
wie das bereits genutzte pbzx) selbst gebaut.
This commit is contained in:
ARIA
2026-07-18 08:30:41 +00:00
parent e93ab96faa
commit c6dc2cd9cb
2 changed files with 27 additions and 1 deletions
+19 -1
View File
@@ -1,14 +1,22 @@
FROM debian:bookworm-slim FROM debian:bookworm-slim
# hfsprogs (mkfs.hfsplus) liegt in Debians "non-free"-Bereich, das offizielle
# bookworm-slim-Image aktiviert davon aber nur "main". Eigene sources.list.d
# Datei ergaenzt non-free, unabhaengig davon ob die Basis-Sources im alten
# Ein-Zeilen- oder im neuen deb822-Format vorliegen (apt liest beide parallel).
RUN echo "deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware" \
> /etc/apt/sources.list.d/non-free.list
RUN apt-get update && apt-get install -y --no-install-recommends \ RUN apt-get update && apt-get install -y --no-install-recommends \
python3 python3-pip \ python3 python3-pip \
util-linux \ util-linux \
gdisk \ gdisk \
hfsprogs \ hfsprogs \
dmg2img \ dmg2img \
xar \
cpio \ cpio \
xz-utils liblzma-dev \ xz-utils liblzma-dev \
libxml2-dev libssl-dev zlib1g-dev \
autoconf automake libtool pkg-config \
git build-essential \ git build-essential \
ca-certificates curl \ ca-certificates curl \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
@@ -21,6 +29,16 @@ RUN git clone --depth 1 https://github.com/mackyle/pbzx.git /tmp/pbzx \
&& cd /tmp/pbzx && make && install -m 755 pbzx /usr/local/bin/pbzx \ && cd /tmp/pbzx && make && install -m 755 pbzx /usr/local/bin/pbzx \
&& rm -rf /tmp/pbzx && rm -rf /tmp/pbzx
# xar: existiert als Debian-Paket erst ab trixie (bookworm hat es gar nicht
# im Archiv, auch nicht in non-free). Statt die ganze Basis-Distro zu wechseln
# (Risiko fuer alle anderen Pakete) bauen wir es aus dem selben, von Apple-
# Tooling-Communities genutzten Upstream-Fork wie pbzx (gleicher Maintainer).
RUN git clone --depth 1 https://github.com/mackyle/xar.git /tmp/xar-src \
&& cd /tmp/xar-src/xar \
&& ./autogen.sh && ./configure && make && make install \
&& ldconfig \
&& rm -rf /tmp/xar-src
WORKDIR /app WORKDIR /app
COPY backend/requirements.txt /app/backend/requirements.txt COPY backend/requirements.txt /app/backend/requirements.txt
RUN pip3 install --no-cache-dir --break-system-packages -r /app/backend/requirements.txt RUN pip3 install --no-cache-dir --break-system-packages -r /app/backend/requirements.txt
+8
View File
@@ -69,6 +69,14 @@ Block-Device. Wenn du das falsche Geraet auswaehlst, sind die Daten weg.
Vor dem Start immer pruefen, welcher Stick tatsaechlich gemeint ist (Groesse Vor dem Start immer pruefen, welcher Stick tatsaechlich gemeint ist (Groesse
und Modell in der GUI vergleichen). und Modell in der GUI vergleichen).
## Build-Hinweis (hfsprogs / xar)
`hfsprogs` liegt in Debians non-free-Bereich (Dockerfile aktiviert das
gezielt ueber eine eigene sources.list.d-Datei), `xar` gibt es in
`bookworm` ueberhaupt nicht als Paket — das wird deshalb aus dem
Upstream-Repo (`mackyle/xar`, selber Maintainer wie das schon genutzte
`pbzx`) selbst gebaut. Macht den ersten Build minimal langsamer, aber
zuverlaessiger als ein Distro-Wechsel.
## Voraussetzungen auf dem Host ## Voraussetzungen auf dem Host
- Docker + Docker Compose - Docker + Docker Compose
- Linux (getestet gegen die Grundannahmen von `lsblk`/`/dev`/`udev`; auf - Linux (getestet gegen die Grundannahmen von `lsblk`/`/dev`/`udev`; auf