diff --git a/srcpkgs/incus-client b/srcpkgs/incus-client new file mode 120000 index 00000000000000..569b6284ef01d2 --- /dev/null +++ b/srcpkgs/incus-client @@ -0,0 +1 @@ +incus \ No newline at end of file diff --git a/srcpkgs/incus-tools b/srcpkgs/incus-tools new file mode 120000 index 00000000000000..569b6284ef01d2 --- /dev/null +++ b/srcpkgs/incus-tools @@ -0,0 +1 @@ +incus \ No newline at end of file diff --git a/srcpkgs/incus/files/incus-user/check b/srcpkgs/incus/files/incus-user/check new file mode 100644 index 00000000000000..bfa18333ccbc9d --- /dev/null +++ b/srcpkgs/incus/files/incus-user/check @@ -0,0 +1,2 @@ +#!/bin/sh +incus config show >/dev/null 2>&1 diff --git a/srcpkgs/incus/files/incus-user/run b/srcpkgs/incus/files/incus-user/run new file mode 100644 index 00000000000000..820a08e38cb5bf --- /dev/null +++ b/srcpkgs/incus/files/incus-user/run @@ -0,0 +1,3 @@ +#!/bin/sh +exec 2>&1 +exec /usr/bin/incus-user --group incus diff --git a/srcpkgs/incus/files/incus/run b/srcpkgs/incus/files/incus/run new file mode 100644 index 00000000000000..b8fd50a684f11c --- /dev/null +++ b/srcpkgs/incus/files/incus/run @@ -0,0 +1,12 @@ +#!/bin/sh +exec 2>&1 +_systemd_cgrp="/sys/fs/cgroup/systemd" +if [ ! -d ${_systemd_cgrp} ]; then + mkdir ${_systemd_cgrp} +fi +if ! mountpoint -q "${_systemd_cgrp}"; then + mount -t cgroup -o none,name=systemd cgroup ${_systemd_cgrp} +fi + +[ -r conf ] && . ./conf +exec /usr/bin/incusd --group incus-admin --syslog ${OPTS:- --verbose} diff --git a/srcpkgs/incus/template b/srcpkgs/incus/template new file mode 100644 index 00000000000000..e853582e406794 --- /dev/null +++ b/srcpkgs/incus/template @@ -0,0 +1,59 @@ +# Template file for 'incus' +pkgname=incus +version=0.4.0 +revision=1 +build_style=go +go_import_path=github.com/lxc/incus +go_build_tags=libsqlite3 +go_package="${go_import_path}/cmd/incus + ${go_import_path}/cmd/fuidshift + ${go_import_path}/cmd/lxc-to-incus + ${go_import_path}/cmd/incus-benchmark + ${go_import_path}/cmd/incusd + ${go_import_path}/cmd/incus-user" +hostmakedepends="pkg-config" +makedepends="lxc-devel acl-devel cowsql-devel raft-devel eudev-libudev-devel" +depends="lxc acl acl-progs rsync squashfs-tools xz dnsmasq iptables attr-progs" +short_desc="Powerful system container and virtual machine manager" +maintainer="dkwo " +license="Apache-2.0" +homepage="https://linuxcontainers.org/incus" +distfiles="https://github.com/lxc/incus/archive/refs/tags/v${version}.tar.gz" +checksum=1195d8aecaf838806b88580dfc8b48302dcbb4612addcb6d6bfa480f14d97a0d +system_groups="incus-admin incus" + +export CGO_LDFLAGS_ALLOW="(-Wl,-wrap,pthread_create)|(-Wl,-z,now)" +export GOFLAGS="-buildmode=pie" # can drop once done globally + +post_build() { + go install -p "${XBPS_MAKEJOBS}" -v -tags netgo -ldflags "${go_ldflags}" "${go_import_path}/cmd/incus-migrate" + CGO_LDFLAGS="-static" go install -p "${XBPS_MAKEJOBS}" -v -tags agent,netgo -ldflags "${go_ldflags}" "${go_import_path}/cmd/incus-agent" + cd cmd/lxd-to-incus && go install -v ./ +} + +do_check() { + go test -v -skip TestConvertNetworkConfig ./... +} + +post_install() { + vsv incus +} + +incus-client_package() { + short_desc+=" - client" + depends="${sourcepkg}>=${version}_${revision}" + pkg_install() { + vmove usr/bin/incus + vsv incus-user + vcompletion scripts/bash/incus bash + } +} + +incus-tools_package() { + short_desc+=" - tools" + pkg_install() { + for _tool in fuidshift lxc-to-incus lxd-to-incus incus-benchmark incus-migrate; do + vmove usr/bin/${_tool} + done + } +}