Compare commits

...
Author SHA1 Message Date
Caleb Connolly fed9baea02 temp/libvirt: fork from alpine
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-06-24 17:42:12 +02:00
Caleb Connolly d0fab5680a device-postmarketos-trailblazer: add eusb phy for sm8250
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
2024-06-24 17:41:24 +02:00
10 changed files with 643 additions and 2 deletions

No files matched your search

@@ -2,7 +2,7 @@
# Reference: <https://postmarketos.org/devicepkg>
pkgname=device-postmarketos-trailblazer
pkgdesc="postmarketOS Trailblazer generic ARM64"
pkgver=2
pkgver=3
pkgrel=0
url="https://postmarketos.org"
license="MIT"
@@ -38,5 +38,5 @@ package() {
sha512sums="
1f353c9ccca43a43bf04b115f87d07ff472b19ca41ac2289d69f2453c708b12f4d5421599c752ed4ed75455ea341dd3f3c6766117282786933e878a109777fef deviceinfo
0ed03dd1a7f1c263d7facb3c28f31993ae1d77df9100bcefd540b087ddf16c8846289d1b901d01eeb633510a4d8db202cca3a93e932b7890490408acfd121812 modules-initfs
058940af169d695966a605fdbfdca57303feecfb809f654091172e78c4dbe6eb082de99c325703e146a64f514ec35f3580da15a3077e2bca016d22abcdd2951b modules-initfs
"
@@ -24,6 +24,7 @@ panel-samsung-s6d7aa0
panel-samsung-sofef00
panel-visionox-rm69299
phy-qcom-qmp-combo
phy-qcom-snps-eusb2
phy-qcom-qmp-ufs
phy-qcom-qmp-usb
phy-qcom-qmp-usb
+222
View File
@@ -0,0 +1,222 @@
# Forked from Alpine INSERT-REASON-HERE (CHANGEME!)
pkgname=libvirt
pkgver=10.4.0
_ver="${pkgver/_rc/-rc}"
pkgrel=0
pkgdesc="Virtualization API for several hypervisor and container systems"
url="https://libvirt.org/"
arch="all"
options="!check"
license="LGPL-2.1-or-later"
_daemon_deps="bridge-utils dmidecode dnsmasq iptables"
_client_deps="pm-utils gnutls-utils netcat-openbsd"
depends="lvm2"
depends_dev="$pkgname=$pkgver-r$pkgrel"
makedepends="
$_client_deps
$_daemon_deps
$depends_dev
acl-dev
augeas-dev
bash-completion-dev
curl-dev
cyrus-sasl-dev
device-mapper
e2fsprogs-dev
eudev-dev
fuse3-dev
gnutls-dev
jansson-dev
libcap-ng-dev
libgcrypt-dev
libgpg-error-dev
libnl3-dev
libpcap-dev
libpciaccess-dev
libssh2-dev
libtasn1-dev
libtirpc-dev
libxml2-dev
libxslt-dev
linux-headers
lvm2-dev
lxc-dev
meson
netcf-dev
parted-dev
perl
perl-xml-xpath
polkit-dev
py3-docutils
qemu
qemu-pr-helper
readline-dev
rpcsvc-proto
util-linux
yajl-dev
zlib-dev
"
install="$pkgname.post-install"
subpackages="
$pkgname-dbg
$pkgname-libs
$pkgname-dev
$pkgname-doc
$pkgname-client
$pkgname-daemon
$pkgname-daemon-openrc
$pkgname-lang
$pkgname-lxc
$pkgname-qemu
$pkgname-uml::noarch
$pkgname-vbox
$pkgname-bash-completion
"
source="https://libvirt.org/sources/libvirt-$pkgver.tar.xz
libvirt.confd
libvirt.initd
libvirt-guests.confd
libvirt-guests.initd
virtlogd.initd
virtlockd.initd
"
if [ "$CARCH" = "x86_64" ]; then
subpackages="$subpackages $pkgname-xen"
makedepends="$makedepends xen-dev zfs"
fi
subpackages="$subpackages $pkgname-common-drivers:_common_drivers"
# secfixes:
# 7.5.0-r0:
# - CVE-2021-3631
# 6.8.0-r0:
# - CVE-2020-25637
# 6.6.0-r0:
# - CVE-2020-14339
# 5.5.0-r0:
# - CVE-2019-10168
# - CVE-2019-10167
# - CVE-2019-10166
# - CVE-2019-10161
case "$CARCH" in
arm*|x86)
;;
*)
makedepends="$makedepends ceph-dev"
;;
esac
build() {
# silence repetitive warnings
CFLAGS="$CFLAGS -Wno-inline" \
abuild-meson \
-Db_lto=true \
--libexec=/usr/lib/$pkgname \
-Dinit_script=openrc \
. output
meson configure --no-pager output
meson compile -C output
}
check() {
meson test --no-rebuild --print-errorlogs -C output
}
package() {
DESTDIR="$pkgdir" meson install --no-rebuild -C output
install -Dm755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/libvirtd
install -Dm644 "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/libvirtd
install -Dm755 "$srcdir"/$pkgname-guests.initd "$pkgdir"/etc/init.d/libvirt-guests
install -Dm644 "$srcdir"/$pkgname-guests.confd "$pkgdir"/etc/conf.d/libvirt-guests
install -Dm755 "$srcdir"/virtlogd.initd "$pkgdir"/etc/init.d/virtlogd
install -Dm755 "$srcdir"/virtlockd.initd "$pkgdir"/etc/init.d/virtlockd
install -d "$pkgdir"/lib/modules-load.d
echo "tun" > "$pkgdir"/lib/modules-load.d/libvirt.conf
rm -rf "$pkgdir"/etc/sysconfig
rm -rf "$pkgdir"/usr/lib/charset.alias
rm -f "$pkgdir"/usr/lib/sysctl.d/60-qemu-postcopy-migration.conf
rmdir -p "$pkgdir"/usr/lib 2>/dev/null || true
}
dev() {
default_dev
amove usr/share/libvirt/api
}
daemon() {
cd "$builddir"
pkgdesc="libvirt daemon package"
depends="libvirt-client=$pkgver-r$pkgrel $_daemon_deps"
replaces="libvirt"
amove lib/modules-load.d
amove etc/libvirt/libvirtd.conf
amove usr/sbin/libvirtd
amove etc/logrotate.d/libvirtd
}
client() {
cd "$builddir"
pkgdesc="libvirt client package"
depends="libvirt=$pkgver-r$pkgrel $_client_deps"
replaces="libvirt"
amove etc/libvirt/libvirt.conf
amove usr/bin
}
_mv_driver() {
local _name="$1" _drivers="$2" _pkg="$3"
pkgdesc="$_name driver for libvirt"
depends="$pkgname-daemon=$pkgver-r$pkgrel
$pkgname-common-drivers=$pkgver-r$pkgrel"
replaces="libvirt"
if [ -n "$_pkg" ]; then
install_if="$pkgname-daemon=$pkgver-r$pkgrel $_pkg"
else
install_if=
fi
local _dir=/usr/lib/libvirt/connection-driver
mkdir -p "$subpkgdir"/$_dir \
"$subpkgdir"/etc/libvirt \
"$subpkgdir"/etc/logrotate.d
local _d
cd "$pkgdir"
for _d in $_drivers; do
# shellcheck disable=1087
find . -name "*$_d[.-]*" -o -name "*$_d" | while read -r _f; do
amove $_f
done
done
}
qemu() { _mv_driver "QEMU" qemu qemu; }
xen() { _mv_driver "XEN" "libxl xen" xen; }
lxc() { _mv_driver "LXC" lxc lxc; }
uml() { _mv_driver "UML" uml; }
vbox() { _mv_driver "VirtualBox" vbox; }
_common_drivers() {
pkgdesc="Common libvirt daemon drivers"
replaces="libvirt"
amove etc/libvirt/nwfilter
amove usr/lib/libvirt/connection-driver
}
sha512sums="
711be39f3fb831a5073b25a5b02410676147114f3dcf85b24c8505b611a81bf64cf3b95f66908e0dc3a2f3e66e5fc31b2d95db610ea3f1b747a9fd1f52b1ffa7 libvirt-10.4.0.tar.xz
c3647366e589f2134599baefcbd7ec480cbc0830c71f95cd903cacb28e463d4cd8d972fbd1db81aa17eef81c1f701bd3937c9b8eb71d56ee630e1ed8b89887e9 libvirt.confd
4e28dc733a5db0e102ed529f3215d44c52ce0495dc109e2ef53465a0e205e2ba6f5f0ff56cc6e27318572ca560d778dd24a3faf092e7ab7819674c42876aa764 libvirt.initd
78f419a89de7aabaad860903c24f1c070786fc1296d987e61dd537705b0e7f71a46c315888028f3826c3417e42861ca8471788be4ec5695e98427c5f18ae63fc libvirt-guests.confd
ec2bc46d72afa61513983b777e2d49da618a35a4687bc75674b3a49ababd4e2e387661010d342fee86c7a73d259644985a263a6c2976e29a436d88921bb040b0 libvirt-guests.initd
f93313c387c21bafb760f599942f1cdecfe952af80af42a28e8525118e5a7fd512d9f909039d8b15f1a544957f1d70a0728c55de2bae41a87e5be6dbbb4f6208 virtlogd.initd
d8ef64d76e8be521a6551893cc7c6aa7e5d8c627a9aed87beefefc126798dc0f98bf420609b6afc027ad96cca347a1c5db8f703d09853efde4d1a6a35572fbf1 virtlockd.initd
"
+68
View File
@@ -0,0 +1,68 @@
# /etc/conf.d/libvirtd
# LIBVIRT_URIS
# space separated list of libvirt URIs to communicate with to start/stop guests
# Valid values are anything that can be passed to 'virsh connect'
#LIBVIRT_URIS="qemu:///system"
# LIBVIRT_SHUTDOWN
# Valid options:
# * managedsave - Performs a state save external to the VM (for hypervisors
# supporting this operation). qemu-kvm will stop the CPU
# and save off all state to a separate file. When the
# machine is started again, it will resume like nothing
# ever happened. This is guarenteed to always successfully
# stop your machine and restart it.
#
# * shutdown - Sends an ACPI shutdown (think of this as a request to
# your guest to shutdown). There is no way to distinguish
# between guests that are ignoring the shutdown request or
# are stuck or are taking a long time to shutdown. We will
# wait LIBVIRT_MAXWAIT seconds before yanking the power
# out.
#
# * destroy - Immediately stop all running guests. Use with caution as
# this can leave the guest in a corrupted state and might
# lead to data loss.
#
#LIBVIRT_SHUTDOWN="managedsave"
# LIBVIRT_MAXWAIT
# Timeout in seconds until stopping a guest and "pulling the plug" on the
# guest
# Valid values are any integer over 0
#LIBVIRT_MAXWAIT="500"
# LIBVIRT_START
# If this value is set to 'no', then guests and networks that were shutdown
# by this script when it was stopped will not be started when it is started
# back up.
# Valid values are yes or no
#LIBVIRT_START="yes"
# LIBVIRT_IGNORE_AUTOSTART
# If the VM is marked for autostart in its XML configuration then we won't
# save its start when the init script is stopped. The result is that when
# the init script starts back up, no attempt will be made to start the VM or
# confirm it is started.
# Valid values are yes or no
#LIBVIRT_IGNORE_AUTOSTART="no"
# LIBVIRT_NET_SHUTDOWN
# If libvirtd created networks for you (e.g. NATed networks) then this init
# script will shut them down for you if this is set to 'yes'. Otherwise,
# the networks will be left running. For this option to be useful you must
# have enabled the 'virt-network' USE flag and have had libvirt create a
# NATed network for you. Valid values: 'yes' or 'no'
#LIBVIRT_NET_SHUTDOWN="yes"
+237
View File
@@ -0,0 +1,237 @@
#!/sbin/openrc-run
description="Virtual Machine Management (libvirt) Guests"
depend() {
use libvirtd
}
# set the default to QEMU
[ -z "${LIBVIRT_URIS}" ] && LIBVIRT_URIS="qemu:///system"
# default to suspending the VM via managedsave
case "${LIBVIRT_SHUTDOWN}" in
managedsave|shutdown|destroy) ;;
*) LIBVIRT_SHUTDOWN="managedsave" ;;
esac
# default to 500 seconds
[ -z ${LIBVIRT_MAXWAIT} ] && LIBVIRT_MAXWAIT=500
gueststatefile="/var/lib/libvirt/libvirt-guests.state"
netstatefile="/var/lib/libvirt/libvirt-net.state"
do_virsh() {
local hvuri=$1
shift
# if unset, default to qemu
[ -z ${hvuri} ] && hvuri="qemu:///system"
# if only qemu was supplied then correct the value
[ "xqemu" = x${hvuri} ] && hvuri="qemu:///system"
# Silence errors because virsh always throws an error about
# not finding the hypervisor version when connecting to libvirtd
# lastly strip the blank line at the end
LC_ALL=C virsh -c ${hvuri} "$@" 2>/dev/null | head -n -1
}
libvirtd_dom_list() {
# Only work with domains by their UUIDs
local hvuri=$1
shift
# The grep is to remove dom0 for xen domains. Otherwise we never hit 0
do_virsh "${hvuri}" list --uuid $@ | grep -v 00000000-0000-0000-0000-000000000000
}
libvirtd_dom_count() {
local hvuri=$1
shift
libvirtd_dom_list "${hvuri}" $@ | wc -l
}
libvirtd_net_list() {
# Only work with networks by their UUIDs
local hvuri=$1
shift
do_virsh "${hvuri}" net-list --uuid $@
}
libvirtd_net_count() {
local hvuri=$1
shift
libvirtd_net_list "${hvuri}" $@ | wc -l
}
libvirtd_dom_stop() {
# stops all persistent or transient domains for a given URI
# $1 - uri
# $2 - persisent/transient
local uri=$1
local persist=$2
local shutdown_type=${LIBVIRT_SHUTDOWN}
local counter=${LIBVIRT_MAXWAIT}
local dom_name=
local dom_as=
local dom_ids=
local uuid=
local dom_count=
[ "${persist}" = "--transient" ] && shutdown_type="shutdown"
[ -n "${counter}" ] || counter=500
einfo " Shutting down domain(s) ..."
# grab all persistent or transient domains running
dom_ids=$(libvirtd_dom_list ${uri} ${persist})
for uuid in ${dom_ids}; do
# Get the name
dom_name=$(do_virsh ${uri} domname ${uuid})
einfo " ${dom_name}"
# Get autostart state
dom_as=$(do_virsh ${uri} dominfo ${uuid} | \
awk '$1 == "Autostart:" { print $2 }')
if [ "${persist}" = "--persistent" ]; then
# Save our running state only if LIBVIRT_IGNORE_AUTOSTART != yes
if [ "x${LIBVIRT_IGNORE_AUTOSTART}" = "xyes" ] && \
[ ${dom_as} = "enabled" ]; then
:
else
echo "${uri} ${uuid}" >> ${gueststatefile}
fi
fi
# Now let's stop it
do_virsh "${uri}" ${shutdown_type} ${uuid} > /dev/null
done
dom_count="$(libvirtd_dom_count ${uri} ${persist})"
while [ ${dom_count} -gt 0 ] && [ ${counter} -gt 0 ] ; do
dom_count="$(libvirtd_dom_count ${uri} ${persist})"
sleep 1
if [ "${shutdown_type}" = "shutdown" ]; then
counter=$((${counter} - 1))
fi
printf "."
done
if [ "${shutdown_type}" = "shutdown" ]; then
# grab all domains still running
dom_ids=$(libvirtd_dom_list ${uri} ${persist})
for uuid in ${dom_ids}; do
dom_name=$(do_virsh ${uri} domname ${uuid})
eerror " ${dom_name} forcibly stopped"
do_virsh "${uri}" destroy ${uuid} > /dev/null
done
fi
}
libvirtd_net_stop() {
# stops all persistent or transient domains for a given URI
# $1 - uri
# $2 - persisent/transient
local uri=$1
local persist=$2
local uuid=
local net_name=
if [ "${LIBVIRT_NET_SHUTDOWN}" != "no" ]; then
einfo " Shutting down network(s):"
for uuid in $(libvirtd_net_list ${uri} ${persist}); do
net_name=$(do_virsh ${uri} net-name ${uuid})
einfo " ${net_name}"
if [ "${persist}" = "--persistent" ]; then
# Save our running state
echo "${uri} ${uuid}" >> ${netstatefile}
fi
# Actually stop the network
do_virsh qemu net-destroy ${uuid} > /dev/null
done
fi
}
start() {
local uri=
local uuid=
local name=
for uri in ${LIBVIRT_URIS}; do
do_virsh "${uri}" connect
if [ $? -ne 0 ]; then
eerror "Failed to connect to '${uri}'. Domains may not start."
fi
done
[ ! -e "${netstatefile}" ] && touch "${netstatefile}"
[ ! -e "${gueststatefile}" ] && touch "${gueststatefile}"
# if the user didn't want to start any guests up then respect their wish
[ "x${LIBVIRT_START}" = "xno" ] && return 0
# start networks
ebegin "Starting libvirt networks"
while read -r uri uuid
do
# ignore trash
[ -z "${uri}" ] || [ -z "${uuid}" ] && continue
name=$(do_virsh "${uri}" net-name ${uuid})
einfo " ${name}"
do_virsh "${uri}" net-start ${uuid} > /dev/null
done <"${netstatefile}"
eend 0
# start domains
ebegin "Starting libvirt domains"
while read -r uri uuid
do
# ignore trash
[ -z "${uri}" ] || [ -z "${uuid}" ] && continue
name=$(do_virsh "${uri}" domname ${uuid})
einfo " ${name}"
do_virsh "${uri}" start ${uuid} > /dev/null
do_virsh "${uri}" domtime --sync ${uuid} > /dev/null
done <"${gueststatefile}"
eend 0
}
stop() {
local counter=
local dom_name=
local net_name=
local dom_ids=
local uuid=
local dom_count=
rm -f "${gueststatefile}"
[ $? -ne 0 ] && eerror "Unable to save domain state"
rm -f "${netstatefile}"
[ $? -ne 0 ] && eerror "Unable to save net state"
for uri in ${LIBVIRT_URIS}; do
einfo "Stopping libvirt domains and networks for ${uri}"
libvirtd_dom_stop "${uri}" "--persistent"
libvirtd_dom_stop "${uri}" "--transient"
libvirtd_net_stop "${uri}" "--persistent"
libvirtd_net_stop "${uri}" "--transient"
einfo "Done stopping domains and networks for ${uri}"
done
}
+20
View File
@@ -0,0 +1,20 @@
# /etc/conf.d/libvirtd
# /etc/conf.d/libvirtd
# Startup dependency
# libvirtd typically requires all networks to be up and settled which
# is what rc_need="net" provides. However if you only use specific networks
# for libvirtd, you may override this. Or if you only use libvirtd locally.
rc_need="net"
# The termination timeout (start-stop-daemon parameter "retry") ensures
# that the service will be terminated within a given time (25 + 5 seconds
# per default) when you are stopping the service.
#LIBVIRTD_TERMTIMEOUT="TERM/25/KILL/5"
# LIBVIRTD_OPTS
# You may want to add '--listen' to have libvirtd listen for tcp/ip connections
# if you want to use libvirt for remote control
# Please consult 'libvirtd --help' for more options
#LIBVIRTD_OPTS="--listen"
+40
View File
@@ -0,0 +1,40 @@
#!/sbin/openrc-run
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
description="Virtual Machine Management daemon (libvirt)"
LIBVIRTD_OPTS=${LIBVIRTD_OPTS:-"${LIBVIRTD_OPTS}"}
LIBVIRTD_TIMEOUT=${LIBVIRTD_TERMTIMEOUT:-"TERM/25/KILL/5"}
command="/usr/sbin/libvirtd"
command_args="${LIBVIRTD_OPTS}"
start_stop_daemon_args="-b --env KRB5_KTNAME=/etc/libvirt/krb5.tab"
pidfile="/run/libvirtd.pid"
retry="${LIBVIRTD_TERMTIMEOUT}"
extra_started_commands="reload"
depend() {
need virtlogd
use ceph dbus iscsid virtlockd
after cgconfig corosync ebtables iptables ip6tables nfs nfsmount ntp-client ntpdportmap rpc.statd sanlock xenconsoled
}
start_pre() {
# Test configuration directories in /etc/libvirt/ to be either not
# present or a directory, i.e. not a regular file, bug #532892
checkpath --directory /etc/libvirt/lxc || return 1
checkpath --directory /etc/libvirt/nwfilter || return 1
[ -L /etc/libvirt/qemu ] ||
checkpath --directory /etc/libvirt/qemu || return 1
[ -L /etc/libvirt/storage ] ||
checkpath --directory /etc/libvirt/storage || return 1
}
reload() {
ebegin "Reloading $RC_SVCNAME"
start-stop-daemon --signal HUP --exec "$command" --pidfile "$pidfile"
eend $?
}
+5
View File
@@ -0,0 +1,5 @@
#!/bin/sh
addgroup -S libvirt 2>/dev/null
exit 0
+24
View File
@@ -0,0 +1,24 @@
#!/sbin/openrc-run
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
description="libvirt virtual machine lock manager"
command="/usr/sbin/virtlockd"
start_stop_daemon_args="-b"
pidfile="/run/virtlockd.pid"
extra_started_commands="reload"
description_reload="re-exec the daemon, while maintaining locks and clients"
depend() {
after ntp-client ntpd nfs nfsmount corosync
}
reload() {
ebegin "re-exec() virtlockd"
start-stop-daemon --signal SIGUSR1 \
--exec "${command}" --pidfile "${pidfile}"
}
+24
View File
@@ -0,0 +1,24 @@
#!/sbin/openrc-run
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
description="libvirt virtual machine logging manager"
command="/usr/sbin/virtlogd"
start_stop_daemon_args="-b"
pidfile="/run/virtlogd.pid"
extra_started_commands="reload"
description_reload="re-exec the daemon, while maintaining open connections"
depend() {
after ntp-client ntpd nfs nfsmount corosync
}
reload() {
ebegin "re-exec() virtlogd"
start-stop-daemon --signal SIGUSR1 \
--exec "${command}" --pidfile "${pidfile}"
}