pkgsrc-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: pkgsrc/sysutils/lima
Module Name: pkgsrc
Committed By: khorben
Date: Tue May 26 00:31:53 UTC 2026
Modified Files:
pkgsrc/sysutils/lima: Makefile
Added Files:
pkgsrc/sysutils/lima/files: lima.sh
Log Message:
sysutils/lima: import an RC script
This adds an RC script for lima, modeled on that of sysutils/xentools:
it allows the management of multiple instances of lima. lima expects to
run unprivileged with a dedicated user, therefore this change also
creates the corresponding user and group.
Tested on NetBSD/amd64.
Bumps PKGREVISION.
To generate a diff of this commit:
cvs rdiff -u -r1.12 -r1.13 pkgsrc/sysutils/lima/Makefile
cvs rdiff -u -r0 -r1.1 pkgsrc/sysutils/lima/files/lima.sh
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: pkgsrc/sysutils/lima/Makefile
diff -u pkgsrc/sysutils/lima/Makefile:1.12 pkgsrc/sysutils/lima/Makefile:1.13
--- pkgsrc/sysutils/lima/Makefile:1.12 Tue May 12 21:36:29 2026
+++ pkgsrc/sysutils/lima/Makefile Tue May 26 00:31:52 2026
@@ -1,6 +1,7 @@
-# $NetBSD: Makefile,v 1.12 2026/05/12 21:36:29 khorben Exp $
+# $NetBSD: Makefile,v 1.13 2026/05/26 00:31:52 khorben Exp $
DISTNAME= lima-2.1.1
+PKGREVISION= 1
CATEGORIES= sysutils
MASTER_SITES= ${MASTER_SITE_GITHUB:=lima-vm/}
GITHUB_TAG= v${PKGVERSION_NOREV}
@@ -12,6 +13,28 @@ LICENSE= apache-2.0
USE_TOOLS+= gmake
+BUILD_DEFS+= VARBASE
+
+OWN_DIRS_PERMS+= ${VARBASE}/db/lima ${LIMA_USER} ${LIMA_GROUP} 0750
+
+LIMA_USER?= lima
+LIMA_GROUP?= lima
+
+PKG_GROUPS_VARS+= LIMA_GROUP
+PKG_USERS_VARS+= LIMA_USER
+
+PKG_GROUPS= ${LIMA_GROUP}
+PKG_USERS= ${LIMA_USER}:${LIMA_GROUP}
+
+PKG_SHELL.${LIMA_USER}= ${SH}
+PKG_HOME.${LIMA_USER}= ${VARBASE}/db/lima
+
+FILES_SUBST+= LIMA_USER=${LIMA_USER}
+FILES_SUBST+= LIMA_GROUP=${LIMA_GROUP}
+FILES_SUBST+= LIMA_USER_HOME=${VARBASE}/db/lima
+
+RCD_SCRIPTS+= lima
+
DEPENDS+= qemu-[0-9]*:../../emulators/qemu
# Avoid to invoke/use git
Added files:
Index: pkgsrc/sysutils/lima/files/lima.sh
diff -u /dev/null pkgsrc/sysutils/lima/files/lima.sh:1.1
--- /dev/null Tue May 26 00:31:53 2026
+++ pkgsrc/sysutils/lima/files/lima.sh Tue May 26 00:31:52 2026
@@ -0,0 +1,106 @@
+#!@RCD_SCRIPTS_SHELL@
+#
+# $NetBSD: lima.sh,v 1.1 2026/05/26 00:31:52 khorben Exp $
+#
+# PROVIDE: lima
+# REQUIRE: DAEMON
+# KEYWORD: shutdown
+#
+# You will need to set some variables in @SYSCONFBASE@/rc.conf to start lima:
+#
+# lima=YES
+#
+# lima_instances This required variable is a whitespace-separated list
+# of instances, e.g., lima_instances="default docker".
+
+$_rc_subr_loaded . @SYSCONFBASE@/rc.subr
+
+name="lima"
+command="@PREFIX@/bin/limactl"
+list_cmd="lima_list"
+start_cmd="lima_start"
+stop_cmd="lima_stop"
+status_cmd="lima_status"
+extra_commands="list"
+
+lima_list()
+{
+ instances=
+ for pidfile in ${lima_homedir}/.lima/*/ha.pid; do
+ pid=$(check_pidfile "$pidfile" "$command")
+ [ -n "$pid" ] || continue
+ instance=${pidfile#$lima_homedir/.lima/}
+ instance=${instance%/ha.pid}
+ instances="$instances $instance"
+ done
+ [ -z "$instances" ] || echo $instances
+}
+
+lima_start()
+{
+ echo "Starting ${name}."
+
+ failed=
+ for instance in $lima_instances; do
+ case "$instance" in
+ "") continue ;;
+ esac
+
+ # Run limactl to start the instance.
+ name="$name instance: $instance" flags="start" \
+ command_args="$instance $lima_flags" \
+ start_cmd= run_rc_command "faststart"
+ [ $? -eq 0 ] || failed="$failed $instance"
+ done
+ if [ -n "$failed" ]; then
+ echo "$name: could not start instance:$failed." 1>&2
+ fi
+}
+
+lima_status() {
+ command_args="list"
+ start_cmd= run_rc_command "faststart"
+}
+
+lima_stop()
+{
+ echo "Stopping ${name}."
+
+ failed=
+ stopped=
+ for instance in $(lima_list); do
+ case "$instance" in
+ "") continue ;;
+ esac
+
+ command_args="$instance"
+ name="$name instance: $instance" flags="stop" \
+ start_cmd= run_rc_command "faststart" \
+ | sed "s/^Starting $name/Stopping $name/"
+ if [ $? -eq 0 ]; then
+ stopped="$stopped $instance"
+ else
+ failed="$failed $instance"
+ fi
+ done
+ if [ -n "$failed" ]; then
+ echo "$name: could not stop instance:$failed." 1>&2
+ fi
+}
+
+: ${lima_homedir="@LIMA_USER_HOME@"}
+: ${lima_instances="default"}
+
+lima_flags="-y"
+lima_user="@LIMA_USER@"
+lima_group="@LIMA_GROUP@"
+
+cd /
+
+load_rc_config $name
+
+lima_env="HOME=${lima_homedir}"
+lima_env="${lima_env} USER=$lima_user"
+lima_env="${lima_env} PATH=$PATH:@PREFIX@/bin"
+
+run_rc_command "$1"
Home |
Main Index |
Thread Index |
Old Index