Build beta 2026.08.14.1: repair uninstall so reinstall works - #56
Conversation
The remove block ran `removepkg folder.view3-<version>`, but since 2026.07.07.1 the package is named folder.view3-<version>-x86_64-1. removepkg aborted with "No such package ... Can't remove" while the following rm -rf lines still deleted the plugin dir and the flash config, leaving an orphaned /var/log/packages entry behind. upgradepkg --install-new then reported "Skipping package ... (already installed)" on the next install of that same version, so the files were never extracted and the plugin came back dead while plugin-manager reported success. Remove now globs /var/log/packages/folder.view3-* and removepkg's each basename, so it is version-agnostic and self-corrects after any future drift; folder.view and folder.view2 do not match the glob. Install gained --reinstall so a stale entry can never suppress extraction again. Both patterns match Community Applications' own .plg.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (2)
📒 Files selected for processing (1)
📝 WalkthroughWalkthroughThe plugin release updates metadata and release notes. Package operations now use the computed package name. Uninstallation removes all installed package entries that match the plugin name. ChangesPlugin package lifecycle
Estimated code review effort: 2 (Simple) | ~10 minutes Mergeability Score: ⚪ Minimal · up to This localized package-installation and uninstall fix is merge-ready after normal checks and review; no actionable merge-blocking risk remains. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
The name folder.view3-<version>-x86_64-1 was reconstructed by hand at four sites, and this outage was one of those four drifting when 2026.07.07.1 swept the other three. Fixing the remove block fixes the instance; this removes the class. &pkgname; is now the single definition, referenced by the pre-install prune, the install FILE/URL and the post-install keep-check. The remove block needs no version at all and stays glob-based. Resolved output (xmllint --noent) is byte-identical for FILE Name and URL. The two deltas are tightenings: the pre-install grep and the post-install case now match the full package name instead of a version substring, both over sets already prefixed folder.view3-. No rebuild: the .plg ships separately and is not inside the .txz, so the existing package and its MD5 are unchanged.
|
@coderabbitai review |
|
|
@coderabbitai review |
✅ Action performedReview finished.
|
Uninstall left the package entry behind, breaking every reinstall
Reported on the forums: uninstalling FolderView3 prints
and the following reinstall then prints
leaving the plugin installed-but-dead — plugin-manager reports success, but no files are on disk.
Root cause
2026.07.07.1(f61dac6) standardised the package name tofolder.view3-<version>-x86_64-1.txzand updated the pre-install, install and post-install blocks to match. The remove block was missed and still ran:removepkgmatches/var/log/packages/<name>exactly, so it aborted — but the block has noset -e, so the next two lines still ran:Net result: the files were deleted, the package DB entry survived. On reinstall,
upgradepkg --install-newsaw an identically-named installed package and skipped extraction entirely.Fix
Remove block — glob the DB entry instead of reconstructing its name, so it is version-agnostic and self-corrects after any future drift:
Install —
upgradepkg --install-new→upgradepkg --install-new --reinstall, so a stale entry can never suppress extraction again, and reinstalling the same version actually reinstalls.Both patterns match Community Applications' own
.plg, which usesupgradepkg --install-new --reinstallandremovepkg &name;-&version;-x86_64-1.Removing the bug class, not just the bug — the package name was reconstructed by hand at four sites, and this outage was one of those four drifting when 2026.07.07.1 swept the other three. It now has a single definition:
referenced by the pre-install prune, the install
FILE/URL, and the post-install keep-check. The remove block needs no version at all and stays glob-based. Grepping the shortest distinguishing token (x86_64) now returns only the declaration and one comment;&name;-&version;appears only inside the declaration itself. No site reconstructs the name any more, so this specific drift is no longer expressible.No rebuild was needed — the
.plgships separately from the.txzand is not inside it (verified: 0.plgfiles in the package), so the built package and its MD5 are untouched.Verification
Loop logic exercised under
bash(the.plginterpreter) across five cases:.plgnewer than installed)folder.view/folder.view2also installedThe
&pkgname;refactor was verified by resolving the entities (xmllint --noent) on the before and after.plgand diffing what Unraid actually executes.FILE NameandURLcome out byte-identical; the only two deltas are tightenings, both over sets already prefixedfolder.view3-:grep -v '2026.08.14.1-x86_64-1'grep -v 'folder.view3-2026.08.14.1-x86_64-1'case … in *2026.08.14.1-x86_64-1)case … in folder.view3-2026.08.14.1-x86_64-1)Because
pkg_build.shrewrites this file, every dependent was executed rather than assumed: the version and MD5 seds touch only their own lines (pkgnameis untouched), the version/MD5 read-backs and CI's twogrep -oPextractions each still return exactly one value, and the branch-rewrite seds still produce a correct, well-formed.plg— resolving to the right archive URL for both amainand abetabuild, idempotently.Also:
xmllintclean,.plgMD5 matches the built package, package contains all 75 plugin files and both bundled beta fixes.Recovery for users already stuck
Installing this beta is enough — the package name differs from the orphaned
folder.view3-2026.08.01-x86_64-1entry, soupgradepkgtreats it as an upgrade and extracts normally, and post-install prunes the stale entry. No terminal step needed.Users who want to stay on stable can clear it manually first:
then reinstall from Community Applications. Note that Unraid's UI has no force-reinstall that gets past this — the skip happens inside
upgradepkg, below the plugin manager.Also bundled in this build
The two fixes already sitting on
betabut not yet in a package, now with changelog entries:Merging — safe as titled
This PR already contains the built package (
folder.view3-2026.08.14.1-x86_64-1.txz) and the matching.plgversion/MD5 bump, so a second CI build would be wasteful and would desync the.plgversion from the###2026.08.14.1CHANGES heading.release-dispatch.ymlfiresrelease-beta.ymlon any push tobetawhose head commit matches^(feat|fix)(\(...\))?!?:. The PR title is deliberately not in that form, so every merge strategy is safe:Build beta 2026.08.14.1: … (#56)Merge pull request #56 from …refactor: centralise the package name …Don't retitle it back to
fix:— that reintroduces the double build.Note (not changed here)
The remove block also does
rm -rf /boot/config/plugins/folder.view3, which wipes all folder definitions, custom CSS, themes and settings on uninstall. Combined with this bug, anyone who tried uninstall→reinstall as a repair lost their entire configuration. Worth deciding separately whether uninstall should preserve the flash config.Summary by CodeRabbit