On Wed, Sep 07, 2022 at 10:28:17AM -0500, Carlos Bilbao wrote: > On 9/6/22 12:50, Carlos Bilbao wrote: > > So, what I did this time was: > > > > $ ninja -C build clean I would recommend nuking the build/ directory completely if you're going to reconfigure, just to be on the safe side. > > $ meson build --reconfigure --prefix=$HOME/usr -Dsystem=true Passing --prefix along with -Dsystem=true doesn't really make sense. -Dsystem=true tells the build system to set various paths to sane defaults for a system-wide installation, and the value passed to --prefix is used to construct some of those paths. So don't use both at the same time - stick to -Dsystem=true only. As an aside, setting --prefix to a directory under $HOME is unlikely to result in a working configuration anyway. > > $ ninja -C build > > $ sudo ninja -C build install > > $ systemctl stop libvirtd > > $ systemctl start libvirtd Before restarting libvirtd, since you've just installed new unit files as part of the steps above, you should run $ sudo systemctl daemon-reload > > $ systemctl status libvirtd > > ○ libvirtd.service - Virtualization daemon > > Loaded: loaded (/usr/local/lib/systemd/system/libvirtd.service; > > enabled; vendor preset: enabled) Note how the unit file... > > Active: inactive (dead) since Tue 2022-09-06 17:43:53 UTC; 1min 57s > > ago > > TriggeredBy: ● libvirtd-admin.socket > > ● libvirtd-ro.socket > > ● libvirtd.socket > > Docs: man:libvirtd(8) > > https://libvirt.org > > Process: 2272757 ExecStart=/usr/local/sbin/libvirtd $LIBVIRTD_ARGS ... the libvirtd binary... > > (code=exited, status=0/SUCCESS) > > Main PID: 2272757 (code=exited, status=0/SUCCESS) > > Tasks: 2 (limit: 32768) > > Memory: 60.5M > > CPU: 49ms > > CGroup: /system.slice/libvirtd.service > > ├─2760 /usr/sbin/dnsmasq > > --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro > > --dhcp-script=/usr/lib/libvirt/libvirt_leaseshelper > > └─2761 /usr/sbin/dnsmasq > > --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro > > --dhcp-script=/usr/lib/libvirt/libvirt_leaseshelper > > > > Sep 06 17:41:04 host systemd[1]: Starting Virtualization daemon... > > Sep 06 17:41:04 host systemd[1]: Started Virtualization daemon. > > Sep 06 17:41:53 host libvirtd[2272757]: libvirt version: 8.7.0 > > Sep 06 17:41:53 host libvirtd[2272757]: hostname: host > > Sep 06 17:41:53 host libvirtd[2272757]: Failed to connect socket to > > '/var/local/run/libvirt/virtqemud-sock': No such file or directory ... and the socket are all under /{usr,var}/local. This is not what you want, and using -Dsystem=true should have not resulted in such a setup. Make sure you run 'systemd daemon-reload' after installing unit files, as I've mentioned above, and also look around for leftovers from a previous installation of libvirt that might be interfering with the current one. Regardless of all that, the client is trying to connect to virtqemud but you seem to have the monolithic libvirtd daemon running. I can't remember whether that's expected, but it's looks like a red flag to me. I think the client might have gotten confused about whether split daemons are in use. Please check out https://libvirt.org/daemons.html and ensure you're in one of the two supported deployment scenarios and not a weird mix of the two. > > > Generally the most straightforward way is to build distribution packages > > > from the tree and install them directly in your system because then you > > > avoid issues such as possibly having two libvirtd instances running and > > > such. > > > > Does libvirt have any script or tool to ease such process? > > Answering to myself here, because I have made some progress but still have > to fix some blockings. Decided to use debhelper to build Debian packages > and test libvirt. Did: > > $ sudo apt-get install debhelper dh-make > $ sudo dh_make --createorig -p libvirt-snp_1 > $ dh_auto_configure --buildsystem=meson > $ dpkg-buildpackage -rfakeroot -us -uc -b > > Notice that the option -b for dpkg-buildpackage is to avoid the Debian > package bureaucracy. But still, some checks fail for the package (see below > ). I don't think this errors have anything to do with the code I modified, > but I will be happy to share a patch for reproduction. If you want to build a Debian package, I recommend using the one that's already in the archive as a starting point instead of using dh_make to create one from scratch. It's currently a couple of versions behind upstream, but should be pretty solid otherwise. dh_make is intended to create a very basic skeleton for a package, and you're expected to make significant changes to the files it produces before being able to build a working package. -- Andrea Bolognani / Red Hat / Virtualization