From aed5424e8250334f44204c74b514518faac05788 Mon Sep 17 00:00:00 2001 From: John McLear Date: Fri, 17 Apr 2026 12:03:21 +0100 Subject: [PATCH] fix: use hardlink package-import-method so the Docker build works on ZFS (#7342) (#7533) pnpm's default \`auto\` package-import-method eventually falls through to \`copyfile\`, which uses \`copy_file_range\`. That syscall fails on ZFS with \`EAGAIN: resource temporarily unavailable\` (see https://github.com/pnpm/pnpm/issues/7024), so \`docker compose build\` aborts inside the \`RUN pnpm install\` step on any host with a ZFS root. Operators had to hand-patch every pnpm invocation in the Dockerfile and install scripts. Force \`package-import-method=hardlink\` in \`.npmrc\` so all pnpm invocations (Docker build, \`bin/installDeps.sh\`, \`bin/installLocalPlugins.sh\`, \`bin/updatePlugins.sh\`) pick up the setting automatically. Hardlinks are fast, save disk, and work on every filesystem Etherpad supports. Co-authored-by: Claude Opus 4.7 (1M context) --- .npmrc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.npmrc b/.npmrc index 1a99418bf..f4be609b8 100644 --- a/.npmrc +++ b/.npmrc @@ -1 +1,7 @@ strict-dep-builds=false +# Use hardlinks when populating node_modules instead of clone/copyfile. +# pnpm's default "auto" mode ends up using copy_file_range which fails on +# ZFS (https://github.com/pnpm/pnpm/issues/7024) and breaks `docker +# compose build` on hosts with a ZFS root (#7342). Hardlinks are fast, +# save disk, and work on every filesystem Etherpad supports. +package-import-method=hardlink