Both sides previous revisionPrevious revisionNext revision | Previous revision |
howtos:emulators:libvirt_qemu_manage_install [2023/12/18 18:17 (UTC)] – [Preliminaries] zeebra | howtos:emulators:libvirt_qemu_manage_install [2023/12/19 08:57 (UTC)] (current) – [Packages, dependencies, order] zeebra |
---|
* vde support: NO\\ | * vde support: NO\\ |
* usb net redir: NO\\ | * usb net redir: NO\\ |
| * slirp support: NO (since QEMU 7.2)\\ |
| |
| |
libvirt says: | libvirt says: |
===== Methodology (read this carefully) ===== | ===== Methodology (read this carefully) ===== |
| |
- You CAN use "make install" or equivalent if you want (maybe "DESTDIR=/opt install" if you want to install directly in /opt), but for ease and stages, use the above method instead. ([[howtos:slackware_admin:building_a_package]]) | - The norm for Slackware is to build packages as root on a disposable machine installation (for example a virtual machine, or a build computer) |
- This guide is using /opt/root/build for user (with user read/write access) - you could/should use /home/user/build (simply replace all "/opt/root" in the steps of this guide with "/home/user" <-- where "user" is your username) | - This guide uses /opt/root/build directory and /opt/fakeroot as build destination (make DESTDIR=) |
- This guide is using /opt/fakeroot for root and DESTDIR for packaging - you could use that or another root only writable directory (root root 755). If you're unsure, use /opt/fakeroot so you can follow step-by-step. | - Double check this article to know what you are doing: [[howtos:slackware_admin:building_a_package | Building a Slackware package]] |
| - This guide assumes you use the same methods |
| - This guide uses user for make and root for make install |
- Whenever it says "(as ROOT)" you must continue in the same folder you were in (su) | - Whenever it says "(as ROOT)" you must continue in the same folder you were in (su) |
- Whenever it says "(as USER)" or "(as ROOT)", it is a note, there are also some other notes in (paranthesis) inside code brackets | - Whenever it says "(as USER)" or "(as ROOT)", it is a note, there are also some other notes in (paranthesis) inside code brackets |
- As this guide moves on, it will repeat less and less assumed details (see stage1 for most details) | |
<note tip>It is possible to do the whole process (except installpkg, ps. not tested..) as user and install into a user "fakeroot", but you MUST ensure correct owner, group, permissions after. Do so at your own risk if you know what you're doing. If you can you probably should. But for ease and safety this guide does not.</note> | |
<note>It is not appropriate to package in stages, but much easier for this guide and for installing the packages later, including in another Slackware 15 installation. It's fine for personal use.</note> | |
| |
===A few things to consider before proceeding:=== | <note tip>It is possible to do the whole process (except installpkg, ps. not tested..) as user and install into a user "fakeroot", but you MUST ensure correct owner, group, permissions after with chown/chgrp -R /dir/fakeroot after. Do so at your own risk if you know what you're doing. If you are on a non-disposable environment you probably should. But for ease and safety this guide does not.</note> |
* Audit support (general) - if you habitually use this and/or might need it, better to do it now before kvm/qemu/libvirt | |
* Gstreamer codecs (spice) - libav and gst-plugins-ugly support, better to deal with general codec stuff before qemu/spice etc, in particular those 2 | <note>Since there are quite alot of packages here, I can't be bothered to package them 1 and 1, so I rather package them together in "stages", based on dependencies. It's much easier to do and deploy, but you can package them individually. </note> |
* https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-1.18.5.tar.xz | |
* https://gstreamer.freedesktop.org/src/gst-libav/gst-libav-1.18.5.tar.xz | |
* Compiling Qemu with only the machines you need (unless you need alot of exotic CPU emulation and/or cross-compilation) | |
\\ | \\ |
| |
| ===== Packages, dependencies, order ===== |
| |
| <note important>The below are just links to the project download pages and an overview of the build order. These versions have not been tested, but are all the dependencies of QEMU with libvirt and virt-manager. You just have to build them roughly in this order and you're good to go. </note> |
| |
| ^ Stage 1 ^ Stage 2 ^ Stage 3 ^ Stage 4 ^ Stage 5 ^ Stage 6 ^ |
| | [[https://gitlab.com/libosinfo/libosinfo/-/tags | libosinfo]] | [[https://github.com/dgibson/dtc/tags | dtc ]] | [[https://download.libvirt.org/ | libvirt ]] | [[https://gitlab.com/libvirt/libvirt-glib/-/tags | libvirt-glib]] | [[https://www.qemu.org/download/ | QEMU ]] | [[https://virt-manager.org/download.html | virt-manager]] | |
| | [[https://gitlab.com/libosinfo/osinfo-db-tools/-/tags |osinfo-db-tools]] | [[https://github.com/sahlberg/libnfs/tags | libnfs]] | | [[https://github.com/libvirt/libvirt-python/tags | libvirt-python ]] | |
| | [[https://gitlab.com/spice/spice-protocol/-/tags | spice-protocol]] | [[https://gitlab.com/libosinfo/osinfo-db/-/tags | osinfo-db ]] | | [[https://download.gnome.org/sources/gtk-vnc/ | gtk-vnc ]] | |
| | | [[https://github.com/numactl/numactl/releases | numactl ]] | | [[https://www.spice-space.org/download/gtk/ | spice-gtk ]] | |
| | | [[https://www.spice-space.org/download/releases/spice-server/ | spice-server]] | | [[https://gitlab.freedesktop.org/slirp/libslirp | libslirp]] | |
| | | [[https://gitlab.com/spice/usbredir/-/tags | usbredir]] | | |
| | | [[https://github.com/virtualsquare/vde-2/releases | vde-2 ]] | | |
| | | [[https://gitlab.freedesktop.org/virgl/virglrenderer/-/releases | virglrenderer ]] | | |
| | | [[https://github.com/lloyd/yajl/tags | yajl ]] | | |
| |
===== Building, packaging, installing ===== | ===== Building, packaging, installing ===== |
| |
== Process 1 == | == Process 1 == |
Note. "meson configure" is optional\\ | **libosinfo-v1.11.0** |
**libosinfo-v1.9.0** | |
<code> | <code> |
(as USER) | (as USER) |
cd libosinfo-v1.9.0 | cd libosinfo-v1.11.0 |
meson configure | meson configure --prefix=/usr/local |
meson build | meson build |
ninja -C build | ninja -C build |