[Bug 297372] [NEW PORT] sysutils/sysmanage: Centralized system management server with web-based interface

[email protected] Sat, 08 Aug 2026 20:00:09 +0000
Newsgroups gmane.os.freebsd.devel.ports.bugs
Message-ID <[email protected]/bugzilla/>
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=297372

            Bug ID: 297372
           Summary: [NEW PORT] sysutils/sysmanage: Centralized system
                    management server with web-based interface
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: Individual Port(s)
          Assignee: [email protected]
          Reporter: [email protected]
 Attachment #273554 text/plain
         mime type:

Created attachment 273554
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=273554&action=edit
sysutils/sysmanage-agent shar

New port: sysutils/sysmanage

SysManage is an open-source infrastructure management platform. The server
component provides a web interface and REST API for managing fleets of hosts
running the SysManage agent (submitted separately as sysutils/sysmanage-agent),
covering inventory, package management, patching, and reporting.

WWW: https://github.com/bceverly/sysmanage
License: AGPLv3+

Build and test status, FreeBSD 14.4-RELEASE amd64, ports tree snapshot
2026-08-08:

  portlint -AC ............ 0 fatal errors, 0 warnings
  make stage .............. OK
  make check-plist ........ no issues
  make stage-qa ........... no issues (run with DEVELOPER=yes)
  make package ............ OK

In addition to the standard targets, the staged tree was byte-compiled under
the port's Python (3.12) and the ASGI entry point the rc.d script launches
(backend.main) was imported against the ports-installed dependency set, to
confirm RUN_DEPENDS is complete rather than merely sufficient to build. That
check is what caught two dependencies no static inspection would find:
py-email-validator (pydantic imports it when an EmailStr model is built) and
py-multipart (FastAPI requires it when a route declares Form).

Notes for the reviewer:

* PostgreSQL is pulled via USES=pgsql:15+ with WANT_PGSQL=server rather than a
  hardcoded postgresqlNN-server dependency, so it follows the tree's selected
  version and stays consistent with what py-psycopg links against.

* No dependency version bounds are declared. The application's own
  requirements.txt carries upstream pins, but a port cannot guarantee bounds
  the tree does not ship, so every dependency is declared as >0 and the port
  uses whatever version the tree provides.

* OpenTelemetry instrumentation is unavailable on FreeBSD and is deliberately
  not declared. The application imports the whole telemetry stack in a single
  try/except that disables telemetry and continues if any part is missing, and
  three of the required distributions have no port: opentelemetry-exporter-
  prometheus, opentelemetry-instrumentation-logging, and opentelemetry-
  instrumentation-sqlalchemy. Declaring only the six that do exist would add
  dependencies without enabling the feature.

* The port stages a large generated file set (backend/, alembic/), so
  pkg-plist carries the fixed entries and post-install appends the staged tree
  to ${TMPPLIST}. Enumerating ~290 files by hand would go stale every release.
  The upstream test suite is excluded from the package.

* poudriere testport PASSED in a clean 14.4-RELEASE amd64 jail (exit 0).
  check-plist, stage-qa, the staging-violation check and the leftover-file
  check after deinstall were all clean, with STRICT_DEPENDS=yes.

I am the upstream author and would like to be listed as MAINTAINER
([email protected]).

-- 
You are receiving this mail because:
You are the assignee for the bug.