summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorManuel Bentele2021-09-30 13:59:29 +0200
committerManuel Bentele2021-10-12 13:12:55 +0200
commit88308bbee7027c5b840a30f9d91b188ad803de1f (patch)
tree488d96387d4833f5f1d9e2770678a8627e39b574
parent[kernel-vanilla] Add dwarves, required for CONFIG_DEBUG_INFO_BTF (diff)
downloadmltk-88308bbee7027c5b840a30f9d91b188ad803de1f.tar.gz
mltk-88308bbee7027c5b840a30f9d91b188ad803de1f.tar.xz
mltk-88308bbee7027c5b840a30f9d91b188ad803de1f.zip
[libvirt-src] Add module for libvirt source build
-rw-r--r--core/modules/libvirt-src/module.build64
-rw-r--r--core/modules/libvirt-src/module.conf8
-rw-r--r--core/modules/libvirt-src/module.conf.ubuntu63
-rw-r--r--core/modules/libvirt/module.build14
-rw-r--r--core/modules/libvirt/module.conf4
-rw-r--r--core/modules/libvirt/module.conf.debian6
l---------core/targets/qemu/libvirt-src1
7 files changed, 141 insertions, 19 deletions
diff --git a/core/modules/libvirt-src/module.build b/core/modules/libvirt-src/module.build
new file mode 100644
index 00000000..05537489
--- /dev/null
+++ b/core/modules/libvirt-src/module.build
@@ -0,0 +1,64 @@
+#!/bin/bash
+
+LIBVIRT_QEMU_USR="libvirt-qemu"
+LIBVIRT_QEMU_GRP="kvm"
+LIBVIRT_PTHR_GRP="libvirt-passthrough"
+
+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}" --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
+ pip3 install "meson>=0.54.0"
+
+ meson build \
+ --prefix="/usr" \
+ --sysconfdir="/etc" \
+ --libexecdir="/usr/libexec" \
+ --localstatedir="/var" \
+ -Dsystem=true \
+ -Dtests=disabled \
+ -Ddocs=disabled \
+ -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/include/libvirt"
+ rm -rf "${DSTDIR}/usr/share/augeas"
+ rm -rf "${DSTDIR}/usr/share/doc/libvirt"
+
+ # delete empty run folder to prevent mltk from stopping
+ rm -rf "${DSTDIR}/var/run"
+}
+
+post_copy() {
+ :
+}
diff --git a/core/modules/libvirt-src/module.conf b/core/modules/libvirt-src/module.conf
new file mode 100644
index 00000000..32c95e48
--- /dev/null
+++ b/core/modules/libvirt-src/module.conf
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+REQUIRED_GIT="
+ https://gitlab.com/libvirt/libvirt.git||v7.7.0
+"
+
+# copy everything since there is a clean installation done by 'ninja install'
+REQUIRED_DIRECTORIES="/"
diff --git a/core/modules/libvirt-src/module.conf.ubuntu b/core/modules/libvirt-src/module.conf.ubuntu
new file mode 100644
index 00000000..11c11507
--- /dev/null
+++ b/core/modules/libvirt-src/module.conf.ubuntu
@@ -0,0 +1,63 @@
+#!/bin/bash
+REQUIRED_INSTALLED_PACKAGES="
+ gcc
+ python3
+ python3-pip
+ ninja-build
+ bash-completion
+ debhelper
+ dh-apparmor
+ libxml2-dev
+ libncurses5-dev
+ libreadline-dev
+ zlib1g-dev
+ libgcrypt20-dev
+ libgnutls28-dev
+ libsasl2-dev
+ libxen-dev
+ lvm2
+ open-iscsi
+ libparted-dev
+ parted
+ libdevmapper-dev
+ uuid-dev
+ libudev-dev
+ libattr1-dev
+ libpciaccess-dev
+ kmod
+ policykit-1
+ libcurl4-gnutls-dev
+ libpolkit-gobject-1-dev
+ libcap-ng-dev
+ libnl-3-dev
+ libnl-route-3-dev
+ libyajl-dev
+ libpcap0.8-dev
+ libnuma-dev
+ numad
+ radvd
+ libsanlock-dev
+ libaudit-dev
+ libselinux1-dev
+ libapparmor-dev
+ libdbus-1-dev
+ nfs-common
+ systemtap-sdt-dev
+ xsltproc
+ zfsutils-linux
+ libzfslinux-dev
+ po-debconf
+ librbd-dev
+ librados-dev
+ libglusterfs-dev
+ libfuse-dev
+ augeas-tools
+ libxml2-utils
+ dnsmasq-base
+ openssh-client
+ netcat-openbsd
+ iptables
+ libtirpc-dev
+ genxdr
+ python3-docutils
+"
diff --git a/core/modules/libvirt/module.build b/core/modules/libvirt/module.build
index 2b661f30..61fd9a57 100644
--- a/core/modules/libvirt/module.build
+++ b/core/modules/libvirt/module.build
@@ -1,13 +1,5 @@
#!/bin/bash
-module_init() {
- groupadd --system "kvm"
- groupadd --system "libvirt-qemu"
- groupadd --system "libvirt-passthrough"
- useradd --gid "kvm" --groups "libvirt-qemu,libvirt-passthrough" --system \
- --no-create-home --home-dir "/var/lib/libvirt" "libvirt-qemu"
-}
-
fetch_source() {
:
}
@@ -17,9 +9,5 @@ build() {
}
post_copy() {
- # remove default network configuration
- # TODO: Some REQUIRED_DELETIONS var that handles this? This would not
- # do the right thing in MiniLinux mode.
- rm "/etc/libvirt/qemu/networks/default.xml"
- rm "/etc/libvirt/qemu/networks/autostart/default.xml"
+ :
}
diff --git a/core/modules/libvirt/module.conf b/core/modules/libvirt/module.conf
index 668ddf88..11090887 100644
--- a/core/modules/libvirt/module.conf
+++ b/core/modules/libvirt/module.conf
@@ -1,5 +1,9 @@
#!/bin/bash
+REQUIRED_MODULES="
+ libvirt-src
+"
+
REQUIRED_BINARIES=""
REQUIRED_LIBRARIES=""
REQUIRED_DIRECTORIES=""
diff --git a/core/modules/libvirt/module.conf.debian b/core/modules/libvirt/module.conf.debian
index bd1671ea..38968ac6 100644
--- a/core/modules/libvirt/module.conf.debian
+++ b/core/modules/libvirt/module.conf.debian
@@ -1,8 +1,5 @@
#!/bin/bash
REQUIRED_INSTALLED_PACKAGES="
- libvirt-daemon-system
- libvirt-daemon
- libvirt-clients
ebtables
dnsmasq
mdevctl
@@ -10,9 +7,6 @@ REQUIRED_INSTALLED_PACKAGES="
"
REQUIRED_CONTENT_PACKAGES="
- libvirt-daemon-system
- libvirt-daemon
- libvirt-clients
ebtables
dnsmasq
mdevctl
diff --git a/core/targets/qemu/libvirt-src b/core/targets/qemu/libvirt-src
new file mode 120000
index 00000000..28c828ab
--- /dev/null
+++ b/core/targets/qemu/libvirt-src
@@ -0,0 +1 @@
+../../modules/libvirt-src \ No newline at end of file