chore(v1.100.1b.C2): GOTH cross-cutting prune#502
Merged
Conversation
Removes the now-orphan UI/auth surface from internal/nftbanconf/: services.go: - ServiceNames: drop UIService, UIAuthService fields + defaults - AllNFTBanServices(): drop the 2 entries - SocketPaths: drop UIAuth (was /run/nftban-ui/auth.sock) - GetSockets(): drop the UIAuth literal - PIDFiles: drop UI, UIAuth fields - GetPIDFiles(): drop the 2 literals loader.go: - Config: drop UIBin, AuthBin fields - loadFromFile: drop NFTBAN_UI_BIN, NFTBAN_AUTH_BIN switch cases - loadOverrides: drop the same 2 cases - defaultConfig: drop UIBin, AuthBin defaults commands.go: - Drop UIBin(), AuthBin() accessor methods - DebugString: drop UIBin/AuthBin format placeholders + args Verified: zero non-self importers of these fields/methods/functions; go build ./... and go test ./internal/nftbanconf/... pass on lab2. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Removes the now-orphan UI/auth surface from internal/installer/:
services/daemon.go:
- Drop the nftban-ui-auth.socket enable+start block (G6 marker).
Sockets stop being managed; transitional postinst/prerm in
1.100.1b.A already cleans up orphaned units on existing systems.
fhs/paths.go:
- Drop RunUIDir constant (was /run/nftban-ui)
- Drop the matching FHSDirectory entry (mode 0750, nftban:nftban)
payload/payload.go:
- Drop the 2 UI staging entries (nftban-ui binary +
nftban-ui-auth libexec) marked uiRemoveInV2
- Drop the uiRemoveInV2 struct field (now unreferenced)
- Drop the uiRemoveInV2 log handler in StageAll
- Update G-14-B scope comment to reflect non-UI binaries only
- Drop the "UI staging: ... REMOVE-IN-V2.0.0" doc paragraph
payload/payload_test.go:
- Drop TestBuildEntries_UIRemoveInV2MarkersPresent (asserted the
2 deleted entries existed)
Verified: go build ./... and go test ./internal/installer/... pass
on lab2.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Retires the 'gui' subcommand and the 'health gui' subcommand entirely
since they exclusively managed/validated the deleted nftban-ui surface.
Deletions (files exist solely for retired GOTH/UI):
- cli/cmd_ui.sh — dead (never wired into dispatcher)
- cli/lib/nftban/cli/cmd_gui.sh — managed nftban-ui (build/install/
enable/disable/restart/status/port). With the binary gone, the
command is meaningless.
- cli/lib/nftban/health/check_gui.sh — validated GOTH ui-registry.json
(deleted in 1.100.1b.B).
Dispatcher carveouts (cli/sbin/nftban):
- Drop "gui" from completion command list
- Drop the gui subcommand-completion case (enable/disable/status)
- Drop "systemctl is-active nftban-ui" from status section
- Drop the "Web GUI" status block + printf line
Surgical cmd_*.sh carveouts:
- cmd_config.sh: drop "ui"->"nftban-ui" module map + nftban-ui from
SIGHUP services list
- cmd_status.sh: drop nftban-ui units from systemctl reset list,
SERVICES check, and JSON service-info output
- cmd_support.sh: drop nftban-ui + nftban-ui-auth from binary
inventory (locations + version dump)
- cmd_stats.sh: drop "nftban-ui API" wording from helper comments
(function structure preserved as generic API short-circuit)
- cmd_health_core.sh: drop the "gui-not-installed" warning detector
- cmd_health.sh: drop the "gui|ui)" dispatch case + matching export
- cmd_health_analysis.sh: drop nftban_health_cmd_gui() definition
+ matching export
Installer surface:
- install/verify_installation.sh: drop check_file for cmd_gui.sh
No bash subcommand surface remains for "nftban gui" or "nftban health gui".
"nftban menu" (curses TUI) is unaffected.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Deletions (files exist solely for retired GOTH/UI):
- packaging/rpm/nftban-ui.spec — entire RPM spec for the nftban-ui
package (deleted binary)
- packaging/deb/rules — the debhelper rules file built specifically
the nftban-ui Debian package (templ generate + go build nftban-ui
+ nftban-ui-auth + install systemd units + PAM config). No
consumer in the current CI build path (handled by
packaging/build_nftban.sh + fpm).
Surgical packaging/build_nftban.sh carveouts:
- RPM Requires: drop "pam" (only needed for nftban-ui-auth)
- DEB Depends: drop "libpam0g" (same reason)
Build comments documenting v1.100.1b.A's nftban-ui removal are
intentionally preserved for the upgrade-cycle window; broader doc
narrative cleanup remains deferred to 1.100.1b.D.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Contributor
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.Scanned FilesNone |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
C2 of the locked C1+C2 split. Cross-cutting cleanup of the remaining GOTH surface that survived 1.100.1b.B (source delete) and 1.100.1b.C1 (orphan-package delete).
Principle applied (locked 2026-04-26):
Commit sequence (4 + CHANGELOG)
183c91e0internal/nftbanconf/55afaad4internal/installer/6d981adfc4ea96b7packaging/(2 deletes + 2 PAM deps)465d79e0Operator-impacting changes
nftban guisubcommand: retired entirely (managed the deleted nftban-ui binary)nftban health guisubcommand: retired entirely (validated the deleted ui-registry.json)nftbanstatus overview: removednftban-ui.servicereferences innftban statusSERVICES + JSON output: removednftban menu(curses TUI) is unaffectedFiles deleted (existed solely for retired GOTH/UI)
cli/lib/nftban/cli/cmd_gui.shcli/lib/nftban/health/check_gui.shcli/cmd_ui.sh(dead since GOTH — never wired into dispatcher)packaging/rpm/nftban-ui.specpackaging/deb/rulesFiles surgically carved (mixed responsibility)
internal/nftbanconf/{services,loader,commands}.go— UIService/UIAuthService/UIBin/AuthBin/UIAuth fields + accessors + defaultsinternal/installer/services/daemon.go— nftban-ui-auth.socket enable+start blockinternal/installer/fhs/paths.go—RunUIDirconst + FHSDirectory entryinternal/installer/payload/payload.go+payload_test.go— 2 UI staging entries +uiRemoveInV2machinerycli/sbin/nftban— gui completion + dispatcher status blockcli/lib/nftban/cli/cmd_{config,status,support,stats,health_core,health,health_analysis}.sh— UI service-name carveoutsinstall/verify_installation.sh— drop check_file for cmd_gui.shpackaging/build_nftban.sh— drop RPMpamRequire + DEBlibpam0gDependPre-push verification (lab2)
go build ./...cleango test ./internal/installer/... ./internal/nftbanconf/...all passgo mod tidyno-op (md5 match)bash -nclean on all edited shell filesOut of scope (deferred to 1.100.1b.D)
.github/workflows/*.yml— comments only)Lifecycle completion lane (PR-25–PR-30): remains explicitly OPEN.
Test plan
🤖 Generated with Claude Code