From nobody Mon Mar 30 22:07:34 2026 X-Original-To: dev-commits-ports-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fl5300p0Wz6XbZR for ; Mon, 30 Mar 2026 22:07:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fl52z6zJFz3CrR for ; Mon, 30 Mar 2026 22:07:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1774908460; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=FzBmeBoJB/s5jGwvVfbegX4K5v2Q0FXzmvZqQW4USjA=; b=hQOpzYwSkNfvQSOBM+Z5TEx0jpAP0LkXIgg+2h1kFMnqa8gnyVHTrGOuOpZ8qUyhKVNb5B /qCRG/13odF/ZRyWsRIboqVSmH1QvMdt/oHTVW5QXUr2/Q/xtVeVCptJvImtuSQu/hKafQ 2gUdWlkx3GR6tUQAerT69KsmnOqcNNF3s/CiEsWXlRMYvJIE21C2H2JS/Qd4qAQ2qrUyAT GasvehOeH9cicykLMqvJd/PVwbElWp08WsnBs2P+1xuDZVptjAgz2dFXWgWb19Ab8ZANrs A/OrOGVRID7yQb5iMRoSEx/MVAFDhCKPHMfO+/XUhDOwrLraYWMufcInMWXXXA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1774908460; a=rsa-sha256; cv=none; b=pgT1wV+A55luimJPs3Kk3RChDBtbOc5iCpjYod656rsQUG4AiG5pQ4M5s0uRk9kMLn2+BD pI55MkUGP2rRQ0mMsdZdYqL5pkzHPq3gOv/KwZPEkjt1BjlCOKggzaT1OwoxpplP9TfwiS aKJ7Zc5mWDy0qiefJliMHmqfhe7qgOHtF+WLquHkMLmbO1F0lhdI5JDZ6rkY502Y9JZDxw VK3IXSrwj/RZ1IS1Cpt2s6kjF7RJQARBXl44ev/xulPbg3ZVu9huSGYq4JaKIBhZrr39h4 qulxfOz1GA8z8AFOd4A3RFlwGB4EGUw8AZiBMFcP5F4YIFMnLKMm6h/bMNQ4BA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1774908460; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=FzBmeBoJB/s5jGwvVfbegX4K5v2Q0FXzmvZqQW4USjA=; b=RnOK9knOWbusMxTMcsC6EJbi32o+9ESsWPxG5X2e+khLM4JemALaJeNPsjJV0UAveVvvbQ fjOtFk+las9FkPqPrZN++3VFIBsIWBUZvtbOppaZLFGsu60MuNKZyw3Flj8WB0m1MiJ89J kyWg2uyCec6p51EAgNBTO+lGxx7//+HU878W4lNCsl4m43O04N3G3PPwFFTnmfDd4PeFhL fzXd42FU/CYZkEqEoeQ5pjRuTagntTcygWTsnlg8EG8aBUwzC0YSOJoFtVh1xHpyZGP0At tlrzn0auAwEa/Ej5yRNzAqsmGNxJjGsuWpC/R79Gi1OrNRViNlD4q42WC8cRlg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fl52z6YzFz11vc for ; Mon, 30 Mar 2026 22:07:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 39b82 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 30 Mar 2026 22:07:34 +0000 To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Dave Cottlehuber Subject: git: a5575ead15e2 - main - sysutils/sylve: new port: lightweight GUI for managing jails & bhyve List-Id: Commit messages for all branches of the ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-ports-all@freebsd.org Sender: owner-dev-commits-ports-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dch X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: a5575ead15e221d83fb130d0ec6ff20bf3873f44 Auto-Submitted: auto-generated Date: Mon, 30 Mar 2026 22:07:34 +0000 Message-Id: <69caf426.39b82.797c1972@gitrepo.freebsd.org> The branch main has been updated by dch: URL: https://cgit.FreeBSD.org/ports/commit/?id=a5575ead15e221d83fb130d0ec6ff20bf3873f44 commit a5575ead15e221d83fb130d0ec6ff20bf3873f44 Author: Dave Cottlehuber AuthorDate: 2026-03-30 22:03:00 +0000 Commit: Dave Cottlehuber CommitDate: 2026-03-30 22:07:05 +0000 sysutils/sylve: new port: lightweight GUI for managing jails & bhyve Sponsored by: SkunkWerks, GmbH Sponsored by: Alchemilla Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D52137 --- sysutils/Makefile | 1 + sysutils/sylve/Makefile | 46 ++++++++++++++++++++++++++++ sysutils/sylve/distinfo | 7 +++++ sysutils/sylve/files/pkg-message.in | 24 +++++++++++++++ sysutils/sylve/files/sylve.in | 61 +++++++++++++++++++++++++++++++++++++ sysutils/sylve/pkg-descr | 5 +++ sysutils/sylve/pkg-plist | 3 ++ 7 files changed, 147 insertions(+) diff --git a/sysutils/Makefile b/sysutils/Makefile index ec10837486e1..80eaa94cf62e 100644 --- a/sysutils/Makefile +++ b/sysutils/Makefile @@ -1390,6 +1390,7 @@ SUBDIR += swapusage SUBDIR += sweeper SUBDIR += swtpm + SUBDIR += sylve SUBDIR += symlinks SUBDIR += symon SUBDIR += synergy diff --git a/sysutils/sylve/Makefile b/sysutils/sylve/Makefile new file mode 100644 index 000000000000..66cf333011aa --- /dev/null +++ b/sysutils/sylve/Makefile @@ -0,0 +1,46 @@ +PORTNAME= sylve +DISTVERSIONPREFIX= v +DISTVERSION= 0.2.2 +CATEGORIES= sysutils +MASTER_SITES+= https://github.com/AlchemillaHQ/Sylve/releases/download/${DISTVERSIONPREFIX}${DISTVERSION}/:web_assets +DISTFILES+= sylve-web-assets.tar.gz:web_assets + +MAINTAINER= hayzam@alchemilla.io +COMMENT= Lightweight GUI for managing Bhyve, Jails, ZFS, networking +WWW= https://github.com/alchemillahq/sylve + +LICENSE= BSD2CLAUSE + +ONLY_FOR_ARCHS= aarch64 amd64 + +RUN_DEPENDS= dnsmasq>0:dns/dnsmasq \ + qemu-img:emulators/qemu@tools \ + samba423>0:net/samba423 \ + swtpm>0:sysutils/swtpm \ + virsh:devel/libvirt +.if ${ARCH} == amd64 +RUN_DEPENDS+= bhyve-firmware>0:sysutils/bhyve-firmware +.elif ${ARCH} == aarch64 +RUN_DEPENDS+= u-boot-bhyve-arm64>0:sysutils/u-boot-bhyve-arm64 +.endif + +USES= go:modules +USE_RC_SUBR= ${PORTNAME} + +GO_MODULE= github.com/alchemillahq/sylve + +GO_TARGET= ./cmd/sylve + +post-extract: + @${MKDIR} ${WRKSRC}/internal/assets/web-files + @${TAR} xf ${DISTDIR}/${DIST_SUBDIR}/sylve-web-assets.tar.gz \ + -C ${WRKSRC}/internal/assets/ + +do-install: + ${MKDIR} ${STAGEDIR}${ETCDIR} + ${MKDIR} ${STAGEDIR}/var/db/sylve + ${INSTALL_PROGRAM} ${WRKDIR}/bin/${PORTNAME} \ + ${STAGEDIR}${PREFIX}/sbin/${PORTNAME} + ${INSTALL_DATA} ${WRKSRC}/config.example.json ${STAGEDIR}${ETCDIR}/config.json.sample + +.include diff --git a/sysutils/sylve/distinfo b/sysutils/sylve/distinfo new file mode 100644 index 000000000000..5abaf1a4dee2 --- /dev/null +++ b/sysutils/sylve/distinfo @@ -0,0 +1,7 @@ +TIMESTAMP = 1774805985 +SHA256 (go/sysutils_sylve/sylve-v0.2.2/sylve-web-assets.tar.gz) = d8d4dc99723d9352f1af6330ac8a8eb1a8cfddbd91d8e8c0d4b11663a3be5278 +SIZE (go/sysutils_sylve/sylve-v0.2.2/sylve-web-assets.tar.gz) = 2929354 +SHA256 (go/sysutils_sylve/sylve-v0.2.2/v0.2.2.mod) = 5dfaadfaf24023652042afbc41d496ea4d4fcf4972c32b3f760c9f1f291f7587 +SIZE (go/sysutils_sylve/sylve-v0.2.2/v0.2.2.mod) = 5823 +SHA256 (go/sysutils_sylve/sylve-v0.2.2/v0.2.2.zip) = c64813343c99b41b60d68576d9559a934303d1709a49296647a5d746a1f96b40 +SIZE (go/sysutils_sylve/sylve-v0.2.2/v0.2.2.zip) = 34832987 diff --git a/sysutils/sylve/files/pkg-message.in b/sysutils/sylve/files/pkg-message.in new file mode 100644 index 000000000000..5df054a1058b --- /dev/null +++ b/sysutils/sylve/files/pkg-message.in @@ -0,0 +1,24 @@ +[ +{ type: install + message: <&1 ) + _err=$? + [ ${_err} -eq 0 ] && kill -9 ${pids} + fi +} + +run_rc_command "$1" diff --git a/sysutils/sylve/pkg-descr b/sysutils/sylve/pkg-descr new file mode 100644 index 000000000000..e97d487cef06 --- /dev/null +++ b/sysutils/sylve/pkg-descr @@ -0,0 +1,5 @@ +Sylve is a lightweight, open-source virtualization platform for FreeBSD, +leveraging Bhyve for VMs and Jails for containerization, with deep ZFS +integration. It provides a streamlined, Proxmox-like experience tailored for +FreeBSD environments. Its backend is written in Go, and the frontend is written +in Svelte (with Kit), integrated into a single binary for easy deployment. diff --git a/sysutils/sylve/pkg-plist b/sysutils/sylve/pkg-plist new file mode 100644 index 000000000000..a591cf664880 --- /dev/null +++ b/sysutils/sylve/pkg-plist @@ -0,0 +1,3 @@ +@sample %%ETCDIR%%/config.json.sample +sbin/sylve +@dir(root,wheel,0700) /var/db/sylve