Re: git: a5575ead15e2 - main - sysutils/sylve: new port: lightweight GUI for managing jails & bhyve
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 31 Mar 2026 21:16:59 UTC
31.03.2026 21:07, Dan Langille пишет:
> There's a problem with this port:
>
> [18:06 mydev dvl /usr/ports/sysutils/sylve] % make -V PORTVERSION
> make: /usr/ports/sysutils/sylve/Makefile:21: Variable "ARCH" is undefined
> make: Fatal errors encountered -- cannot continue
> make: stopped making "all" in /usr/ports/sysutils/sylve
Try this:
RUN_DEPENDS= dnsmasq>0:dns/dnsmasq \
qemu-img:emulators/qemu@tools \
samba423>0:net/samba423 \
swtpm>0:sysutils/swtpm \
virsh:devel/libvirt \
${RUN_DEPENDS_${ARCH}}
RUN_DEPENDS_aarch64= u-boot-bhyve-arm64>0:sysutils/u-boot-bhyve-arm64
RUN_DEPENDS_amd64= bhyve-firmware>0:sysutils/bhyve-firmware
> On Mon, Mar 30, 2026, at 6:07 PM, Dave Cottlehuber wrote:
>> The branch main has been updated by dch:
>>
>> URL:
>> https://cgit.FreeBSD.org/ports/commit/?id=a5575ead15e221d83fb130d0ec6ff20bf3873f44
>>
>> commit a5575ead15e221d83fb130d0ec6ff20bf3873f44
>> Author: Dave Cottlehuber<dch@FreeBSD.org>
>> AuthorDate: 2026-03-30 22:03:00 +0000
>> Commit: Dave Cottlehuber<dch@FreeBSD.org>
>> 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 <bsd.port.mk>
>> 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: <<EOM
>> +Sylve was installed!
>> +
>> +1) The default config file is located at %%ETCDIR%%/config.json. PLEASE
>> + change your password in this file before starting the service for
>> the
>> + first time. The default username is "admin" and the default
>> password is
>> +"admin".
>> +
>> +2) By default, Sylve datadir is located at %%DATADIR%% directory, this
>> can
>> + be modified in %%ETCDIR%%/config.json. This directory can become
>> quite
>> + large, with downloaded image files.
>> +
>> +3) Enable Sylve by using the command `sysrc sylve_enable=YES` and start
>> + the service with `service sylve start`.
>> +
>> +4) You should now be able to visithttps://IP:8181 to access the web
>> + interface!
>> +
>> +5) Enjoy!
>> +EOM
>> +}
>> +]
>> diff --git a/sysutils/sylve/files/sylve.in
>> b/sysutils/sylve/files/sylve.in
>> new file mode 100644
>> index 000000000000..f854f3684105
>> --- /dev/null
>> +++ b/sysutils/sylve/files/sylve.in
>> @@ -0,0 +1,61 @@
>> +#!/bin/sh
>> +#
>> +# PROVIDE: sylve
>> +# REQUIRE: DAEMON NETWORKING
>> +# KEYWORD: shutdown
>> +#
>> +# Add the following lines to /etc/rc.conf.local or /etc/rc.conf to
>> enable sylve:
>> +#
>> +# sylve_enable (bool): Set to "NO" by default.
>> +# Set it to "YES" to enable sylve.
>> +# sylve_user (user): Set to "root" by default.
>> +# User to run sylve as.
>> +# sylve_group (group): Set to "wheel" by default.
>> +# Group to run sylve as.
>> +# sylve_args (str): Set to "-config %%ETCDIR%%/config.json" by
>> default.
>> +# Extra flags passed to sylve.
>> +
>> +. /etc/rc.subr
>> +
>> +name=sylve
>> +rcvar=sylve_enable
>> +
>> +load_rc_config $name
>> +
>> +: ${sylve_enable:="NO"}
>> +: ${sylve_user:="root"}
>> +: ${sylve_group:="wheel"}
>> +: ${sylve_args:="-config %%ETCDIR%%/config.json"}
>> +
>> +export PATH="${PATH}:/usr/local/bin:/usr/local/sbin"
>> +
>> +pidfile="/var/run/${name}.pid"
>> +daemon_pidfile="/var/run/${name}-daemon.pid"
>> +procname="%%PREFIX%%/sbin/sylve"
>> +command="/usr/sbin/daemon"
>> +command_args="-f -c -T ${name} -p ${pidfile} -P ${daemon_pidfile}
>> ${procname} ${sylve_args}"
>> +
>> +start_precmd=sylve_startprecmd
>> +stop_postcmd=sylve_stoppostcmd
>> +
>> +sylve_startprecmd()
>> +{
>> + if [ ! -e ${daemon_pidfile} ]; then
>> + install -o ${sylve_user} -g ${sylve_group} /dev/null
>> ${daemon_pidfile};
>> + fi
>> + if [ ! -e ${pidfile} ]; then
>> + install -o ${sylve_user} -g ${sylve_group} /dev/null ${pidfile};
>> + fi
>> +}
>> +
>> +
>> +sylve_stoppostcmd()
>> +{
>> + if [ -f "${daemon_pidfile}" ]; then
>> + pids=$( pgrep -F ${daemon_pidfile} 2>&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
--
Best regards,
Vladimir Druzenko