From 2b4dcf5dbcb98fcf205dd1d177764659c7877d33 Mon Sep 17 00:00:00 2001 From: Sagent Date: Thu, 11 Jun 2026 01:49:07 +0000 Subject: [PATCH 1/4] fix: replace python2 with python3+ln symlink for Ubuntu 26.04 'python' (Python 2) package removed in Ubuntu >=24.04. Use python3 + ln -sf symlink instead, same as cipherscan#7. --- Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 51d698b..f595f85 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,9 +6,10 @@ LABEL maintainer="Julien Cabillot " RUN export DEBIAN_FRONTEND="noninteractive" && \ export BUILD_PACKAGES="wget xz-utils" && \ - export RUNTIME_PACKAGES="python xvfb libfontconfig libxrender1 libxcomposite1" && \ + export RUNTIME_PACKAGES="python3 xvfb libfontconfig1 libxrender1 libxcomposite1" && \ apt-get -qq update && \ apt-get -qq --yes install ${BUILD_PACKAGES} ${RUNTIME_PACKAGES} && \ + ln -sf /usr/bin/python3 /usr/bin/python && \ wget -nv -O- https://download.calibre-ebook.com/linux-installer.py | python -c "import sys; main=lambda:sys.stderr.write('Download failed\n'); exec(sys.stdin.read()); main()" && \ apt-get -qq --yes remove --purge ${BUILD_PACKAGES} && \ apt-get -qq --yes autoremove --purge && \ -- 2.52.0 From b2d3aa919a6855ad5fe8fbcd0bc281832d4156c2 Mon Sep 17 00:00:00 2001 From: Sagent Date: Thu, 11 Jun 2026 01:58:40 +0000 Subject: [PATCH 2/4] =?UTF-8?q?fix:=20bump=20Ubuntu=2018.04=E2=86=9226.04,?= =?UTF-8?q?=20replace=20python2=20with=20python3+ln?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Ubuntu 26.04 (glibc ≥ 2.35) required by latest Calibre installer - python2 removed in Ubuntu ≥ 24.04, use python3 + ln symlink - libfontconfig → libfontconfig1 (transitional package removed) --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index f595f85..fc9cd09 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:18.04 +FROM ubuntu:26.04 # Il n'est pas possible d'utiliser alpine, # cela pose problème avec le script de post-install qui dépends vraiment de glibc. # Il faudrait alors partir sur une full recompilation de calibre (sans certitudes sur le bon fonctionnement). -- 2.52.0 From 9e348bd479dd38e1eb3d02e81d95c3884992cd48 Mon Sep 17 00:00:00 2001 From: Sagent Date: Thu, 11 Jun 2026 02:03:33 +0000 Subject: [PATCH 3/4] fix: add libegl1 libopengl0 for Calibre installer on Ubuntu 26.04 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index fc9cd09..f69218d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,7 +6,7 @@ LABEL maintainer="Julien Cabillot " RUN export DEBIAN_FRONTEND="noninteractive" && \ export BUILD_PACKAGES="wget xz-utils" && \ - export RUNTIME_PACKAGES="python3 xvfb libfontconfig1 libxrender1 libxcomposite1" && \ + export RUNTIME_PACKAGES="python3 xvfb libfontconfig1 libxrender1 libxcomposite1 libegl1 libopengl0" && \ apt-get -qq update && \ apt-get -qq --yes install ${BUILD_PACKAGES} ${RUNTIME_PACKAGES} && \ ln -sf /usr/bin/python3 /usr/bin/python && \ -- 2.52.0 From 1e8d4350b3c6cebdd0dd48d0b6334ee8c7b9b4db Mon Sep 17 00:00:00 2001 From: Sagent Date: Thu, 11 Jun 2026 02:08:44 +0000 Subject: [PATCH 4/4] fix: switch to Ubuntu apt calibre package instead of official installer --- Dockerfile | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/Dockerfile b/Dockerfile index f69218d..548d6ea 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,14 +5,9 @@ FROM ubuntu:26.04 LABEL maintainer="Julien Cabillot " RUN export DEBIAN_FRONTEND="noninteractive" && \ - export BUILD_PACKAGES="wget xz-utils" && \ - export RUNTIME_PACKAGES="python3 xvfb libfontconfig1 libxrender1 libxcomposite1 libegl1 libopengl0" && \ apt-get -qq update && \ - apt-get -qq --yes install ${BUILD_PACKAGES} ${RUNTIME_PACKAGES} && \ + apt-get -qq --yes install python3 xvfb libfontconfig1 libxrender1 libxcomposite1 libegl1 libopengl0 libxcb-cursor0 calibre && \ ln -sf /usr/bin/python3 /usr/bin/python && \ - wget -nv -O- https://download.calibre-ebook.com/linux-installer.py | python -c "import sys; main=lambda:sys.stderr.write('Download failed\n'); exec(sys.stdin.read()); main()" && \ - apt-get -qq --yes remove --purge ${BUILD_PACKAGES} && \ - apt-get -qq --yes autoremove --purge && \ apt-get -qq --yes clean all && \ rm -rf "/usr/share/doc/"* \ "/usr/src/"* \ -- 2.52.0