blob: ff79280adf54f9eab2512f63b5ec50d58581b10e (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
#!/bin/bash
LIBVIRT_QEMU_USR="libvirt-qemu"
LIBVIRT_QEMU_GRP="kvm"
LIBVIRT_PTHR_GRP="libvirt-passthrough"
# group to access software TPM module
# group is already created by swtpm module
LIBVIRT_STPM_GRP="libvirt-tpm"
module_init() {
groupadd --system "${LIBVIRT_QEMU_GRP}"
groupadd --system "${LIBVIRT_QEMU_USR}"
groupadd --system "${LIBVIRT_PTHR_GRP}"
useradd --gid "${LIBVIRT_QEMU_GRP}" --groups "${LIBVIRT_QEMU_USR},${LIBVIRT_PTHR_GRP},${LIBVIRT_STPM_GRP}" --system \
--no-create-home --home-dir "/var/lib/libvirt" "${LIBVIRT_QEMU_USR}"
}
fetch_source() {
autoclone
git -C "${MODULE_WORK_DIR}/src/libvirt" submodule update --init || perror "Failed to init and update submodules!"
}
build() {
local SRCDIR="${MODULE_WORK_DIR}/src/libvirt"
local DSTDIR="${MODULE_BUILD_DIR}"
cde "${SRCDIR}"
# install meson (>= 0.54.0) since packaged version is too old
# not 0.60 as of now, https://github.com/mesonbuild/meson/issues/9472
pip3 install "meson==0.55.0"
meson build \
--prefix="/usr" \
--sysconfdir="/etc" \
--libexecdir="/usr/libexec" \
--localstatedir="/var" \
-Dsystem=true \
-Dtests=disabled \
-Ddocs=enabled \
-Dwireshark_dissector=disabled \
-Dstorage_dir=enabled \
-Dstorage_disk=enabled \
-Dstorage_lvm=enabled \
-Ddriver_qemu=enabled \
-Dqemu_user="${LIBVIRT_QEMU_USR}" \
-Dqemu_group="${LIBVIRT_QEMU_GRP}" \
-Ddriver_vbox=enabled \
-Ddriver_vmware=enabled \
-Ddriver_remote=enabled || perror "'meson' failed."
ninja -v -C build || perror "'ninja' failed."
DESTDIR="${DSTDIR}" ninja -v -C build install || perror "'ninja install' failed."
# delete default libvirt network
rm "${DSTDIR}/etc/libvirt/qemu/networks/autostart/default.xml"
rm "${DSTDIR}/etc/libvirt/qemu/networks/default.xml"
# delete installed test and documentation files
rm -rf "${DSTDIR}/usr/share/augeas"
rm -rf "${DSTDIR}/usr/share/doc/libvirt"
# patch library directory in pkg-config files
sed -i 's/^libdir=.*$/libdir=\/usr\/lib\/x86_64-linux-gnu/g' "${DSTDIR}/usr/lib64/pkgconfig/libvirt.pc"
sed -i 's/^libdir=.*$/libdir=\/usr\/lib\/x86_64-linux-gnu/g' "${DSTDIR}/usr/lib64/pkgconfig/libvirt-admin.pc"
sed -i 's/^libdir=.*$/libdir=\/usr\/lib\/x86_64-linux-gnu/g' "${DSTDIR}/usr/lib64/pkgconfig/libvirt-lxc.pc"
sed -i 's/^libdir=.*$/libdir=\/usr\/lib\/x86_64-linux-gnu/g' "${DSTDIR}/usr/lib64/pkgconfig/libvirt-qemu.pc"
# delete non-empty run folder to prevent mltk from stopping
if [ -d "${DSTDIR}/var/run" ] && ! [ -L "${DSTDIR}/var/run" ]; then
rm -rf -- "${DSTDIR}/var/run" || perror "${DSTDIR}/var/run exists could not be killed"
fi
}
post_copy() {
:
}
|