[Bug 297378] net-mgmt/semaphore: update to 2.19.7, restore web UI
[email protected] Sat, 08 Aug 2026 21:18:33 +0000
| Newsgroups | gmane.os.freebsd.devel.ports.bugs |
|---|---|
| Message-ID | <[email protected]/bugzilla/> |
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=297378
Bug ID: 297378
Summary: net-mgmt/semaphore: update to 2.19.7, restore web UI
Product: Ports & Packages
Version: Latest
Hardware: Any
OS: Any
Status: New
Severity: Affects Many People
Priority: ---
Component: Individual Port(s)
Assignee: [email protected]
Reporter: [email protected]
Assignee: [email protected]
Flags: maintainer-feedback?([email protected])
Created attachment 273558
--> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=273558&action=edit
patch
Summary
-------
The port has been frozen at 2.9.2 and installed only the REST API server;
the bundled web UI was never built, so every UI route returned 404. This
updates net-mgmt/semaphore to 2.19.7 and restores the embedded Vue UI.
All changes in this patch
-------------------------
- Makefile: 2.9.2 -> 2.19.7; GH_ACCOUNT semaphoreui (repo moved from
ansible-semaphore/semaphore to semaphoreui/semaphore); USES=go:1.26;
regenerated GH_TUPLE + added GL_TUPLE; version via -ldflags -X util.Ver;
post-extract places the web UI and the vendored "pro" module.
- distinfo: regenerated for 2.19.7 (source, all module distfiles, and the
two supplemental distfiles below).
- files/semaphore.in: fixed the rc invocation, "semaphore server --config"
(2.x). The old script used the 1.x form "semaphore -config" and never
started.
- files/config.json.sample: new; sqlite-based sample (BoltDB was removed
upstream, dialects are now mysql/postgres/sqlite).
- pkg-plist: reduced to bin/semaphore + the config sample (SQL migrations
are now embedded via go:embed).
- Removed obsolete patches: patch-util_config.go (version_gen),
patch-db_sql_SqlDb.go (packr/DATADIR), patch-config.json.
Why two distfiles are hosted on github.com/joneum/FreeBSD-Semaphore
------------------------------------------------------------------
They are generated artifacts that no upstream location provides, and they
cannot be produced inside the network-isolated build jail:
1. semaphore-webui-<ver>.tar.gz -- the built Vue frontend (api/public).
Since 2.10 the UI is embedded with //go:embed public/*. Upstream does
not publish the built assets as a release artifact, and building them
requires npm, which is not available in the jail.
2. semaphore-provendor-<ver>.tar.gz -- the vendored subset of the in-tree
"pro" module plus a consistent vendor/modules.txt. semaphore's go.mod
contains "replace github.com/semaphoreui/semaphore/pro => ./pro". As a
nested module it cannot be expressed as a GH_TUPLE entry. GO_MODULE is
not usable either: the module declares a v2 path without the required
/v2 suffix, so proxy.golang.org does not serve it.
The clean long-term fix is upstream (use a /v2 module path, un-nest the
pro module, and publish the web assets as a release artifact); I intend to
file those issues. Until then these two distfiles are hosted on my GitHub
because the port cannot be built without them.
Dependencies are split across forges by necessity: GH_TUPLE (GitHub) plus
GL_TUPLE (GitLab) for the modernc.org SQLite driver, which is GitLab-only.
Maintainership
--------------
The MAINTAINER address has been intentionally left unchanged (egypcio@).
The maintainer appears inactive and the port has been stuck at 2.9.2 with a
non-functional UI. I am willing to take over net-mgmt/semaphore -- please
reassign MAINTAINER to me if that is acceptable.
Testing
-------
- poudriere testport on 15.1-amd64: full build/stage/package/install/
deinstall cycle passed; check-plist reported no issues.
- portlint -AC: no fatal errors; portfmt/portclippy clean.
- Verified running in production with the sqlite backend (UI and
authentication OK).
--
You are receiving this mail because:
You are the assignee for the bug.