From c2e62374bb09887bb2eaa1818411774042ceda24 Mon Sep 17 00:00:00 2001 From: librelad Date: Sun, 24 May 2026 20:49:18 +0100 Subject: [PATCH] fix(install): install root helpers after the repo copy, not before MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit initRootHelpers ran inside initUsers, before initGIT copies the repo into /docker/install — so it read helper sources from a not-yet-populated $script_dir/scripts/system and skipped all 7 ("Root helper source missing"). This was masked on every prior install because the old deploy's `rm -rf /docker` left /usr/local/lib/libreportal/ intact, so the helpers were simply never reinstalled. A genuine clean install (now that the deploy uses the full uninstall) exposed it: the runtime ended up with only the CLI wrapper, the scoped sudoers pointed at missing helper paths, and the WebUI never came up. The helpers are only needed at runtime (the install phase uses the broad install-phase sudo), and nothing between initUsers and initGIT uses them, so move the call to right after initGIT (before initLibrePortalCommand, which already installs the wrapper to the same dir post-copy). Co-Authored-By: Claude Opus 4.7 Signed-off-by: librelad --- init.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/init.sh b/init.sh index d6c1aff..a406509 100755 --- a/init.sh +++ b/init.sh @@ -715,8 +715,6 @@ initUsers() isError "Refusing to install an invalid sudoers drop-in for $sudo_user_name." fi rm -f "$sudoers_tmp" - - initRootHelpers } # Tighten the manager's sudo from the install-phase NOPASSWD: ALL down to the @@ -1423,6 +1421,7 @@ else initUsers initFolders initGIT + initRootHelpers initLibrePortalCommand initUpdateConfigs completeInitMessage