Skip to content

[BUG] Calibre doesn't work on older synology, but latest 8.x works fine when stripping ABI tags from Qt libraries. #176

Description

@FennyFatal

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

Calibre will not work on synology with older kernels, but it is possible that it can work by stripping abi tags.

See working docker compose:
https://gist.github.com/FennyFatal/bd05a017862a055b8a5144e9f7b341ad

Expected Behavior

No response

Steps To Reproduce

Use docker compose from gist:
https://gist.github.com/FennyFatal/bd05a017862a055b8a5144e9f7b341ad

Environment

- OS: Synology DSM
- How docker service was installed: Synology Package

CPU architecture

x86-64

Docker creation

https://gist.github.com/FennyFatal/bd05a017862a055b8a5144e9f7b341ad

Container logs

calibre    | ╔═════════════════════════════════════════════════════════════════════════╗
calibre    | ║                                                                         ║
calibre    | ║        Some of the contents of the folder /custom-cont-init.d           ║
calibre    | ║            are not owned by root, which is a security risk.             ║
calibre    | ║                                                                         ║
calibre    | ║  Please review the permissions of this folder and its contents to make  ║
calibre    | ║     sure they are owned by root, and can only be modified by root.      ║
calibre    | ║                                                                         ║
calibre    | ╚═════════════════════════════════════════════════════════════════════════╝
calibre    | [custom-init] No custom services found, skipping...
calibre    | [mod-init] Running Docker Modification Logic
calibre    | [mod-init] Adding linuxserver/mods:universal-calibre to container
calibre    | [mod-init] Downloading linuxserver/mods:universal-calibre from lscr.io
calibre    | [mod-init] Installing linuxserver/mods:universal-calibre
calibre    | [mod-init] linuxserver/mods:universal-calibre applied to container
calibre    | [migrations] started
calibre    | [migrations] no migrations found
calibre    | ───────────────────────────────────────
calibre    |
calibre    |       ██╗     ███████╗██╗ ██████╗
calibre    |       ██║     ██╔════╝██║██╔═══██╗
calibre    |       ██║     ███████╗██║██║   ██║
calibre    |       ██║     ╚════██║██║██║   ██║
calibre    |       ███████╗███████║██║╚██████╔╝
calibre    |       ╚══════╝╚══════╝╚═╝ ╚═════╝
calibre    |
calibre    |    Brought to you by linuxserver.io
calibre    | ───────────────────────────────────────
calibre    |
calibre    | To support LSIO projects visit:
calibre    | https://www.linuxserver.io/donate/
calibre    |
calibre    | ───────────────────────────────────────
calibre    | GID/UID
calibre    | ───────────────────────────────────────
calibre    |
calibre    | User UID:    1027
calibre    | User GID:    1027
calibre    | ───────────────────────────────────────
calibre    |
calibre    | chown: cannot dereference '/config/.config/pulse/9ffbbef93dc22426d647827362ca4e66-runtime': No such file or directory
calibre    | **** Permissions could not be set. This is probably because your volume mounts are remote or read-only. ****
calibre    | **** The app may not work properly and we will not provide support for it. ****
calibre    | **** Adding calibre dependencies to package install list ****
calibre    | [mod-init] **** Installing all mod packages ****
calibre    | Get:1 https://download.docker.com/linux/ubuntu jammy InRelease [48.8 kB]
calibre    | Get:2 https://deb.nodesource.com/node_18.x jammy InRelease [4,563 B]
calibre    | Get:3 http://archive.ubuntu.com/ubuntu jammy InRelease [270 kB]
calibre    | Get:4 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages [58.9 kB]
calibre    | Get:5 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [128 kB]
calibre    | Get:6 https://deb.nodesource.com/node_18.x jammy/main amd64 Packages [776 B]
calibre    | Get:7 http://archive.ubuntu.com/ubuntu jammy-security InRelease [129 kB]
calibre    | Get:8 http://archive.ubuntu.com/ubuntu jammy/main Sources [1,668 kB]
calibre    | Get:9 http://archive.ubuntu.com/ubuntu jammy/multiverse Sources [361 kB]
calibre    | Get:10 http://archive.ubuntu.com/ubuntu jammy/universe Sources [22.0 MB]
calibre    | Get:11 http://archive.ubuntu.com/ubuntu jammy/restricted Sources [28.2 kB]
calibre    | Get:12 http://archive.ubuntu.com/ubuntu jammy/main amd64 Packages [1,792 kB]
calibre    | Get:13 http://archive.ubuntu.com/ubuntu jammy/restricted amd64 Packages [164 kB]
calibre    | Get:14 http://archive.ubuntu.com/ubuntu jammy/universe amd64 Packages [17.5 MB]
calibre    | Get:15 http://archive.ubuntu.com/ubuntu jammy/multiverse amd64 Packages [266 kB]
calibre    | Get:16 http://archive.ubuntu.com/ubuntu jammy-updates/restricted Sources [98.6 kB]
calibre    | Get:17 http://archive.ubuntu.com/ubuntu jammy-updates/main Sources [686 kB]
calibre    | Get:18 http://archive.ubuntu.com/ubuntu jammy-updates/multiverse Sources [30.6 kB]
calibre    | Get:19 http://archive.ubuntu.com/ubuntu jammy-updates/universe Sources [567 kB]
calibre    | Get:20 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages [3,211 kB]
calibre    | Get:21 http://archive.ubuntu.com/ubuntu jammy-updates/multiverse amd64 Packages [55.7 kB]
calibre    | Get:22 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 Packages [1,546 kB]
calibre    | Get:23 http://archive.ubuntu.com/ubuntu jammy-updates/restricted amd64 Packages [4,436 kB]
calibre    | Get:24 http://archive.ubuntu.com/ubuntu jammy-security/universe Sources [372 kB]
calibre    | Get:25 http://archive.ubuntu.com/ubuntu jammy-security/main Sources [393 kB]
calibre    | Get:26 http://archive.ubuntu.com/ubuntu jammy-security/restricted Sources [92.3 kB]
calibre    | Get:27 http://archive.ubuntu.com/ubuntu jammy-security/multiverse Sources [17.5 kB]
calibre    | Get:28 http://archive.ubuntu.com/ubuntu jammy-security/universe amd64 Packages [1,245 kB]
calibre    | Get:29 http://archive.ubuntu.com/ubuntu jammy-security/restricted amd64 Packages [4,282 kB]
calibre    | Get:30 http://archive.ubuntu.com/ubuntu jammy-security/multiverse amd64 Packages [47.7 kB]
calibre    | Get:31 http://archive.ubuntu.com/ubuntu jammy-security/main amd64 Packages [2,901 kB]
calibre    | Fetched 64.3 MB in 13s (5,080 kB/s)
calibre    | Reading package lists...
calibre    | W: https://download.docker.com/linux/ubuntu/dists/jammy/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.
calibre    | W: https://deb.nodesource.com/node_18.x/dists/jammy/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.
calibre    | Reading package lists...
calibre    | Building dependency tree...
calibre    | Reading state information...
calibre    | libxdamage1 is already the newest version (1:1.1.5-2build2).
calibre    | libxdamage1 set to manually installed.
calibre    | The following packages will be upgraded:
calibre    |   libnspr4 libnss3
calibre    | 2 upgraded, 0 newly installed, 0 to remove and 165 not upgraded.
calibre    | Need to get 1,466 kB of archives.
calibre    | After this operation, 208 kB of additional disk space will be used.
calibre    | Get:1 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libnspr4 amd64 2:4.35-0ubuntu0.22.04.1 [119 kB]
calibre    | Get:2 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libnss3 amd64 2:3.98-0ubuntu0.22.04.2 [1,347 kB]
calibre    | Fetched 1,466 kB in 2s (802 kB/s)
(Reading database ... 40854 files and directories currently installed.)
calibre    | Preparing to unpack .../libnspr4_2%3a4.35-0ubuntu0.22.04.1_amd64.deb ...
calibre    | Unpacking libnspr4:amd64 (2:4.35-0ubuntu0.22.04.1) over (2:4.32-3build1) ...
calibre    | Preparing to unpack .../libnss3_2%3a3.98-0ubuntu0.22.04.2_amd64.deb ...
calibre    | Unpacking libnss3:amd64 (2:3.98-0ubuntu0.22.04.2) over (2:3.68.2-0ubuntu1.2) ...
calibre    | Setting up libnspr4:amd64 (2:4.35-0ubuntu0.22.04.1) ...
calibre    | Setting up libnss3:amd64 (2:3.98-0ubuntu0.22.04.2) ...
calibre    | Processing triggers for libc-bin (2.35-0ubuntu3.1) ...
calibre    | Installing Calibre version v8.4.0
calibre    | Failed to import PyQt module: PyQt6.QtCore with error: libQt6Core.so.6: cannot open shared object file: No such file or directory
calibre    | Creating symlinks...
calibre    |    Symlinking /app/calibre/ebook-device to /usr/bin/ebook-device
calibre    |    Symlinking /app/calibre/ebook-meta to /usr/bin/ebook-meta
calibre    |    Symlinking /app/calibre/ebook-convert to /usr/bin/ebook-convert
calibre    |    Symlinking /app/calibre/ebook-polish to /usr/bin/ebook-polish
calibre    |    Symlinking /app/calibre/markdown-calibre to /usr/bin/markdown-calibre
calibre    |    Symlinking /app/calibre/web2disk to /usr/bin/web2disk
calibre    |    Symlinking /app/calibre/calibre-server to /usr/bin/calibre-server
calibre    |    Symlinking /app/calibre/lrf2lrs to /usr/bin/lrf2lrs
calibre    |    Symlinking /app/calibre/lrs2lrf to /usr/bin/lrs2lrf
calibre    |    Symlinking /app/calibre/calibre-debug to /usr/bin/calibre-debug
calibre    |    Symlinking /app/calibre/calibredb to /usr/bin/calibredb
calibre    |    Symlinking /app/calibre/calibre-parallel to /usr/bin/calibre-parallel
calibre    |    Symlinking /app/calibre/calibre-customize to /usr/bin/calibre-customize
calibre    |    Symlinking /app/calibre/fetch-ebook-metadata to /usr/bin/fetch-ebook-metadata
calibre    |    Symlinking /app/calibre/calibre-smtp to /usr/bin/calibre-smtp
calibre    |    Symlinking /app/calibre/calibre to /usr/bin/calibre
calibre    |    Symlinking /app/calibre/lrfviewer to /usr/bin/lrfviewer
calibre    |    Symlinking /app/calibre/ebook-viewer to /usr/bin/ebook-viewer
calibre    |    Symlinking /app/calibre/ebook-edit to /usr/bin/ebook-edit
calibre    | Setting up command-line completion...
calibre    | Installing zsh completion to: /usr/share/zsh/vendor-completions/_calibre
calibre    | Failed to find directory to install bash completions, using default.
calibre    | Installing bash completion to: /usr/share/bash-completion/completions/
calibre    |
calibre    | ____________________ WARNING ____________________
calibre    | Setting up completion failed with error:
calibre    | __________________________________________________
calibre    |
calibre    |
calibre    | Failed to import PyQt module: PyQt6.QtGui with error: libQt6Core.so.6: cannot open shared object file: No such file or directory
calibre    |    Traceback (most recent call last):
calibre    |      File "calibre/linux.py", line 838, in setup_completion
calibre    |      File "calibre/linux.py", line 582, in write_completion
calibre    |      File "bypy-importer.py", line 279, in exec_module
calibre    |      File "calibre/ebooks/metadata/sources/cli.py", line 17, in <module>
calibre    |      File "bypy-importer.py", line 279, in exec_module
calibre    |      File "calibre/ebooks/metadata/sources/covers.py", line 16, in <module>
calibre    |      File "bypy-importer.py", line 279, in exec_module
calibre    |      File "calibre/utils/img.py", line 15, in <module>
calibre    |    ImportError: cannot import name 'QBuffer' from 'qt.core' (/app/calibre/lib/calibre-extensions/python-lib.bypy.frozen/qt/core.pyc)
calibre    |
calibre    | Setting up desktop integration...
calibre    |
calibre    | ____________________ WARNING ____________________
calibre    | Setting up desktop integration failed with error:
calibre    | __________________________________________________
calibre    |
calibre    |
calibre    |    Traceback (most recent call last):
calibre    |      File "calibre/linux.py", line 859, in setup_desktop_integration
calibre    |      File "calibre/linux.py", line 881, in do_setup_desktop_integration
calibre    |      File "calibre/linux.py", line 912, in install_xdg_junk
calibre    |      File "calibre/linux.py", line 897, in install_icons
calibre    |      File "calibre/linux.py", line 887, in install_single_icon
calibre    |      File "calibre/linux.py", line 1316, in render_img
calibre    |    ImportError: cannot import name 'QImage' from 'qt.core' (/app/calibre/lib/calibre-extensions/python-lib.bypy.frozen/qt/core.pyc)
calibre    |
calibre    | Creating un-installer: /usr/bin/calibre-uninstall
calibre    |
calibre    |
calibre    | There were 2 warnings
calibre    |
calibre    | * Setting up completion failed with error:
calibre    |
calibre    | * Setting up desktop integration failed with error:
calibre    |
calibre    | **** The 2 warnings above about setting up completion and desktop integration are expected and harmless. You can safely ignore them. ****
calibre    | [custom-init] Files found, executing
calibre    | [custom-init] @eaDir: is not a file
calibre    | [custom-init] fix_calibre_qt6.sh: executing...
calibre    | Hit:1 https://deb.nodesource.com/node_18.x jammy InRelease
calibre    | Hit:2 https://download.docker.com/linux/ubuntu jammy InRelease
calibre    | Hit:3 http://archive.ubuntu.com/ubuntu jammy InRelease
calibre    | Hit:4 http://archive.ubuntu.com/ubuntu jammy-updates InRelease
calibre    | Hit:5 http://archive.ubuntu.com/ubuntu jammy-security InRelease
calibre    | Reading package lists...
calibre    | W: https://deb.nodesource.com/node_18.x/dists/jammy/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.
calibre    | W: https://download.docker.com/linux/ubuntu/dists/jammy/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.
calibre    | Reading package lists...
calibre    | Building dependency tree...
calibre    | Reading state information...
calibre    | The following additional packages will be installed:
calibre    |   binutils-common binutils-x86-64-linux-gnu libbinutils libctf-nobfd0 libctf0
calibre    | Suggested packages:
calibre    |   binutils-doc
calibre    | The following NEW packages will be installed:
calibre    |   binutils binutils-common binutils-x86-64-linux-gnu libbinutils libctf-nobfd0
calibre    |   libctf0
calibre    | 0 upgraded, 6 newly installed, 0 to remove and 165 not upgraded.
calibre    | Need to get 3,422 kB of archives.
calibre    | After this operation, 14.7 MB of additional disk space will be used.
calibre    | Get:1 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 binutils-common amd64 2.38-4ubuntu2.8 [223 kB]
calibre    | Get:2 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libbinutils amd64 2.38-4ubuntu2.8 [661 kB]
calibre    | Get:3 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libctf-nobfd0 amd64 2.38-4ubuntu2.8 [108 kB]
calibre    | Get:4 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libctf0 amd64 2.38-4ubuntu2.8 [103 kB]
calibre    | Get:5 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 binutils-x86-64-linux-gnu amd64 2.38-4ubuntu2.8 [2,324 kB]
calibre    | Get:6 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 binutils amd64 2.38-4ubuntu2.8 [3,196 B]
calibre    | debconf: unable to initialize frontend: Dialog
calibre    | debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 78, <> line 6.)
calibre    | debconf: falling back to frontend: Readline
calibre    | debconf: unable to initialize frontend: Readline
calibre    | debconf: (This frontend requires a controlling tty.)
calibre    | debconf: falling back to frontend: Teletype
calibre    | dpkg-preconfigure: unable to re-open stdin:
calibre    | Fetched 3,422 kB in 2s (1,580 kB/s)
calibre    | Selecting previously unselected package binutils-common:amd64.
(Reading database ... 40854 files and directories currently installed.)
calibre    | Preparing to unpack .../0-binutils-common_2.38-4ubuntu2.8_amd64.deb ...
calibre    | Unpacking binutils-common:amd64 (2.38-4ubuntu2.8) ...
calibre    | Selecting previously unselected package libbinutils:amd64.
calibre    | Preparing to unpack .../1-libbinutils_2.38-4ubuntu2.8_amd64.deb ...
calibre    | Unpacking libbinutils:amd64 (2.38-4ubuntu2.8) ...
calibre    | Selecting previously unselected package libctf-nobfd0:amd64.
calibre    | Preparing to unpack .../2-libctf-nobfd0_2.38-4ubuntu2.8_amd64.deb ...
calibre    | Unpacking libctf-nobfd0:amd64 (2.38-4ubuntu2.8) ...
calibre    | Selecting previously unselected package libctf0:amd64.
calibre    | Preparing to unpack .../3-libctf0_2.38-4ubuntu2.8_amd64.deb ...
calibre    | Unpacking libctf0:amd64 (2.38-4ubuntu2.8) ...
calibre    | Selecting previously unselected package binutils-x86-64-linux-gnu.
calibre    | Preparing to unpack .../4-binutils-x86-64-linux-gnu_2.38-4ubuntu2.8_amd64.deb ...
calibre    | Unpacking binutils-x86-64-linux-gnu (2.38-4ubuntu2.8) ...
calibre    | Selecting previously unselected package binutils.
calibre    | Preparing to unpack .../5-binutils_2.38-4ubuntu2.8_amd64.deb ...
calibre    | Unpacking binutils (2.38-4ubuntu2.8) ...
calibre    | Setting up binutils-common:amd64 (2.38-4ubuntu2.8) ...
calibre    | Setting up libctf-nobfd0:amd64 (2.38-4ubuntu2.8) ...
calibre    | Setting up libbinutils:amd64 (2.38-4ubuntu2.8) ...
calibre    | Setting up libctf0:amd64 (2.38-4ubuntu2.8) ...
calibre    | Setting up binutils-x86-64-linux-gnu (2.38-4ubuntu2.8) ...
calibre    | Setting up binutils (2.38-4ubuntu2.8) ...
calibre    | Processing triggers for libc-bin (2.35-0ubuntu3.1) ...
calibre    | Processing triggers for man-db (2.10.2-1) ...
calibre    | [custom-init] fix_calibre_qt6.sh: exited 0
calibre    | [ls.io-init] done.
calibre    | _XSERVTransmkdir: ERROR: euid != 0,directory /tmp/.X11-unix will not be created.
calibre    |
calibre    | Xvnc KasmVNC 1.2.0 - built Mar 11 2024 23:30:52
calibre    | Copyright (C) 1999-2018 KasmVNC Team and many others (see README.me)
calibre    | See http://kasmweb.com for information on KasmVNC.
calibre    | Underlying X server release 12014000, The X.Org Foundation
calibre    |
calibre    | Obt-Message: Xinerama extension is not present on the server
calibre    | shared memfd open() failed: Function not implemented
calibre    | Not using O_TMPFILE
calibre    | Not using O_TMPFILE
calibre    |  2025-05-11 21:37:15,851 [INFO] websocket 0: got client connection from 127.0.0.1
calibre    |  2025-05-11 21:37:15,935 [PRIO] Connections: accepted: @172.31.0.1_1747021035.866069::websocket
calibre    | Not using O_TMPFILE
calibre    | Not using O_TMPFILE
calibre    | Not using O_TMPFILE
calibre    | Not using O_TMPFILE
calibre    | Not using O_TMPFILE
calibre    | Not using O_TMPFILE
calibre    | Not using O_TMPFILE
calibre    |  2025-05-11 21:38:10,503 [PRIO] Connections: closed: @172.31.0.1_1747021035.866069::websocket (Clean disconnection)
calibre    |  2025-05-11 21:38:13,075 [INFO] websocket 1: got client connection from 127.0.0.1
calibre    |  2025-05-11 21:38:13,114 [PRIO] Connections: accepted: @172.31.0.1_1747021093.75629::websocket
calibre    | Not using O_TMPFILE
calibre    |  2025-05-11 21:38:27,556 [PRIO] Connections: closed: @172.31.0.1_1747021093.75629::websocket (Clean disconnection)
calibre    |  2025-05-11 21:38:37,820 [INFO] websocket 2: got client connection from 127.0.0.1
calibre    |  2025-05-11 21:38:37,843 [PRIO] Connections: accepted: @172.31.0.1_1747021117.820930::websocket
calibre    | Not using O_TMPFILE
calibre    | Not using O_TMPFILE
calibre    | Not using O_TMPFILE
calibre    | Not using O_TMPFILE
calibre    |  2025-05-11 21:39:37,975 [PRIO] Connections: closed: @172.31.0.1_1747021117.820930::websocket (Clean disconnection)
calibre    |  2025-05-11 21:39:56,218 [INFO] websocket 3: got client connection from 127.0.0.1
calibre    |  2025-05-11 21:39:56,242 [PRIO] Connections: accepted: @172.31.0.1_1747021196.219848::websocket
calibre    | Not using O_TMPFILE
calibre    | Not using O_TMPFILE
calibre    | Not using O_TMPFILE

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    Status
    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions