mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-08-22 12:32:42 +02:00
docuseal: use DocuSeal's patched PDFium build to fix service start
DocuSeal switched to its own PDFium fork (upstream commit "adjust pdfium", 2026-08-15) and now attaches functions that only exist in that build, e.g. FPDFPage_GetAnnotCountRaw from the added fpdf_annots_raw.h. The generic bblanchon/pdfium-binaries library the script installed does not export them, so lib/pdfium.rb raises FFI::NotFoundError while Rails eager-loads and both docuseal.service and docuseal-sidekiq.service fail to start: Unable to load application: FFI::NotFoundError: Function 'FPDFPage_GetAnnotCountRaw' not found in [libpdfium.so] Install the library from docusealco/pdfium-binaries instead, matching the upstream Dockerfile. It is only published as a musl build (DocuSeal's image is Alpine based), so the musl runtime is installed and its library directory is added to the loader search path - the shared object needs "libc.so" (musl) at dlopen time. Verified on glibc: the library loads, resolves the raw annotation functions and renders pages correctly. The update path now refreshes PDFium too, so existing containers are repaired by running "update" even when DocuSeal itself is already up to date.
This commit is contained in:
@@ -30,6 +30,18 @@ function update_script() {
|
||||
exit
|
||||
fi
|
||||
|
||||
ensure_dependencies musl
|
||||
[[ -f /opt/pdfium/lib/libpdfium.so ]] || rm -f "$HOME/.pdfium"
|
||||
fetch_and_deploy_gh_release "pdfium" "docusealco/pdfium-binaries" "prebuild" "latest" "/opt/pdfium" "pdfium-musl-$(arch_resolve "x86_64" "aarch64").zip"
|
||||
if ! cmp -s /opt/pdfium/lib/libpdfium.so /usr/lib/libpdfium.so; then
|
||||
msg_info "Updating PDFium"
|
||||
install -m 644 /opt/pdfium/lib/libpdfium.so /usr/lib/libpdfium.so
|
||||
echo "/usr/lib/$(arch_resolve "x86_64" "aarch64")-linux-musl" >/etc/ld.so.conf.d/musl.conf
|
||||
ldconfig
|
||||
systemctl restart docuseal docuseal-sidekiq
|
||||
msg_ok "Updated PDFium"
|
||||
fi
|
||||
|
||||
if check_for_gh_release "docuseal" "docusealco/docuseal"; then
|
||||
msg_info "Stopping Services"
|
||||
systemctl stop docuseal docuseal-sidekiq
|
||||
|
||||
@@ -29,16 +29,16 @@ $STD apt install -y \
|
||||
libvips-dev \
|
||||
libheif1 \
|
||||
redis-server \
|
||||
fontconfig
|
||||
fontconfig \
|
||||
musl
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
NODE_VERSION="22" NODE_MODULE="yarn" setup_nodejs
|
||||
PG_VERSION="17" setup_postgresql
|
||||
PG_DB_NAME="docuseal" PG_DB_USER="docuseal" setup_postgresql_db
|
||||
|
||||
msg_info "Downloading Fonts and PDFium"
|
||||
msg_info "Downloading Fonts"
|
||||
mkdir -p /opt/fonts /usr/share/fonts/noto
|
||||
ARCH=$(uname -m | sed 's/x86_64/x64/;s/aarch64/arm64/')
|
||||
curl -fsSL -o /opt/fonts/GoNotoKurrent-Regular.ttf \
|
||||
https://github.com/satbyy/go-noto-universal/releases/download/v7.0/GoNotoKurrent-Regular.ttf
|
||||
curl -fsSL -o /opt/fonts/GoNotoKurrent-Bold.ttf \
|
||||
@@ -48,12 +48,15 @@ curl -fsSL -o /opt/fonts/DancingScript-Regular.otf \
|
||||
ln -sf /opt/fonts/GoNotoKurrent-Regular.ttf /usr/share/fonts/noto/
|
||||
ln -sf /opt/fonts/GoNotoKurrent-Bold.ttf /usr/share/fonts/noto/
|
||||
$STD fc-cache -f
|
||||
curl -fsSL -o /tmp/pdfium.tgz \
|
||||
"https://github.com/bblanchon/pdfium-binaries/releases/latest/download/pdfium-linux-${ARCH}.tgz"
|
||||
mkdir -p /tmp/pdfium && tar -xzf /tmp/pdfium.tgz -C /tmp/pdfium
|
||||
cp /tmp/pdfium/lib/libpdfium.so /usr/lib/libpdfium.so
|
||||
rm -rf /tmp/pdfium /tmp/pdfium.tgz
|
||||
msg_ok "Downloaded Fonts and PDFium"
|
||||
msg_ok "Downloaded Fonts"
|
||||
|
||||
fetch_and_deploy_gh_release "pdfium" "docusealco/pdfium-binaries" "prebuild" "latest" "/opt/pdfium" "pdfium-musl-$(arch_resolve "x86_64" "aarch64").zip"
|
||||
|
||||
msg_info "Installing PDFium"
|
||||
install -m 644 /opt/pdfium/lib/libpdfium.so /usr/lib/libpdfium.so
|
||||
echo "/usr/lib/$(arch_resolve "x86_64" "aarch64")-linux-musl" >/etc/ld.so.conf.d/musl.conf
|
||||
ldconfig
|
||||
msg_ok "Installed PDFium"
|
||||
|
||||
fetch_and_deploy_gh_release "docuseal" "docusealco/docuseal" "tarball"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user