
On Thu, Jul 16, 2020 at 11:53:56AM +0200, Pavel Hrdina wrote:
So I was finally able to produce the patches to port libvirt to Meson. Obviously, it is a lot of changes. It might look that some of the patches could be squashed together but I would rather have it as separated as possible to make the review not that difficult.
Once we are done with review I suggest to squash all patches to single patch as it doesn't make sense to keep them separated as it will not be possible to build complete libvirt code by any of the build systems. Trying to achieve that would be even more challenging and the review would me more difficult.
The reasoning behind taking this approach is to have 1:1 conversion from autotools to Meson where each patch removes that part from autotools. It serves as a check that nothing is skipped and to make sure that the conversion is complete.
As probably most of us know Meson is completely different build system and one of the most challenging things was to deal with the fact that meson doesn't allow user functions and that everything has to be defined before it is used.
Patches are available in my Gitlab repo as well:
git clone -b meson https://gitlab.com/phrdina/libvirt.git
and link to Giltab pipeline:
FWIW, some unit tests fail for me - Fedora 31, with pip installed meson 0.55 11/154 check-virnetprotocol FAIL 0.09s (exit status 1) --- command --- 14:26:24 LC_CTYPE='en_US.UTF-8' LC_ALL='' LANG='C' /usr/bin/python3 /home/berrange/src/virt/libvirt/scripts/check-remote-protocol.py virnetprotocol virt_net_rpc /home/berrange/src/virt/libvirt/build/src/rpc /usr/bin/pdwtags /home/berrange/src/virt/libvirt/build/../src/virnetprotocol-structs --- stderr --- Traceback (most recent call last): File "/home/berrange/src/virt/libvirt/scripts/check-remote-protocol.py", line 55, in <module> objectdir = get_subdir(builddir, r'.*@{0}@.*'.format(libname)) File "/home/berrange/src/virt/libvirt/scripts/check-remote-protocol.py", line 50, in get_subdir raise Exception("Failed to find '{0}' in '{1}'".format(subdir, dirname)) Exception: Failed to find '.*@virt_net_rpc@.*' in '/home/berrange/src/virt/libvirt/build/src/rpc' ------- 12/154 check-virkeepaliveprotocol FAIL 0.11s (exit status 1) --- command --- 14:26:24 LC_CTYPE='en_US.UTF-8' LC_ALL='' LANG='C' /usr/bin/python3 /home/berrange/src/virt/libvirt/scripts/check-remote-protocol.py virkeepaliveprotocol virt_net_rpc /home/berrange/src/virt/libvirt/build/src/rpc /usr/bin/pdwtags /home/berrange/src/virt/libvirt/build/../src/virkeepaliveprotocol-structs --- stderr --- Traceback (most recent call last): File "/home/berrange/src/virt/libvirt/scripts/check-remote-protocol.py", line 55, in <module> objectdir = get_subdir(builddir, r'.*@{0}@.*'.format(libname)) File "/home/berrange/src/virt/libvirt/scripts/check-remote-protocol.py", line 50, in get_subdir raise Exception("Failed to find '{0}' in '{1}'".format(subdir, dirname)) Exception: Failed to find '.*@virt_net_rpc@.*' in '/home/berrange/src/virt/libvirt/build/src/rpc' ------- 13/154 check-remote_protocol FAIL 0.09s (exit status 1) --- command --- 14:26:24 LC_CTYPE='en_US.UTF-8' LC_ALL='' LANG='C' /usr/bin/python3 /home/berrange/src/virt/libvirt/scripts/check-remote-protocol.py remote_protocol virt_remote_driver /home/berrange/src/virt/libvirt/build/src/remote /usr/bin/pdwtags /home/berrange/src/virt/libvirt/build/../src/remote_protocol-structs --- stderr --- Traceback (most recent call last): File "/home/berrange/src/virt/libvirt/scripts/check-remote-protocol.py", line 55, in <module> objectdir = get_subdir(builddir, r'.*@{0}@.*'.format(libname)) File "/home/berrange/src/virt/libvirt/scripts/check-remote-protocol.py", line 50, in get_subdir raise Exception("Failed to find '{0}' in '{1}'".format(subdir, dirname)) Exception: Failed to find '.*@virt_remote_driver@.*' in '/home/berrange/src/virt/libvirt/build/src/remote' ------- 14/154 check-qemu_protocol FAIL 0.11s (exit status 1) --- command --- 14:26:24 LC_CTYPE='en_US.UTF-8' LC_ALL='' LANG='C' /usr/bin/python3 /home/berrange/src/virt/libvirt/scripts/check-remote-protocol.py qemu_protocol virt_remote_driver /home/berrange/src/virt/libvirt/build/src/remote /usr/bin/pdwtags /home/berrange/src/virt/libvirt/build/../src/qemu_protocol-structs --- stderr --- Traceback (most recent call last): File "/home/berrange/src/virt/libvirt/scripts/check-remote-protocol.py", line 55, in <module> objectdir = get_subdir(builddir, r'.*@{0}@.*'.format(libname)) File "/home/berrange/src/virt/libvirt/scripts/check-remote-protocol.py", line 50, in get_subdir raise Exception("Failed to find '{0}' in '{1}'".format(subdir, dirname)) Exception: Failed to find '.*@virt_remote_driver@.*' in '/home/berrange/src/virt/libvirt/build/src/remote' ------- 15/154 check-lxc_protocol FAIL 0.10s (exit status 1) --- command --- 14:26:24 LC_CTYPE='en_US.UTF-8' LC_ALL='' LANG='C' /usr/bin/python3 /home/berrange/src/virt/libvirt/scripts/check-remote-protocol.py lxc_protocol virt_remote_driver /home/berrange/src/virt/libvirt/build/src/remote /usr/bin/pdwtags /home/berrange/src/virt/libvirt/build/../src/lxc_protocol-structs --- stderr --- Traceback (most recent call last): File "/home/berrange/src/virt/libvirt/scripts/check-remote-protocol.py", line 55, in <module> objectdir = get_subdir(builddir, r'.*@{0}@.*'.format(libname)) File "/home/berrange/src/virt/libvirt/scripts/check-remote-protocol.py", line 50, in get_subdir raise Exception("Failed to find '{0}' in '{1}'".format(subdir, dirname)) Exception: Failed to find '.*@virt_remote_driver@.*' in '/home/berrange/src/virt/libvirt/build/src/remote' ------- 16/154 check-admin_protocol FAIL 0.08s (exit status 1) --- command --- 14:26:24 LC_CTYPE='en_US.UTF-8' LC_ALL='' LANG='C' /usr/bin/python3 /home/berrange/src/virt/libvirt/scripts/check-remote-protocol.py admin_protocol virt_admin_driver /home/berrange/src/virt/libvirt/build/src/admin /usr/bin/pdwtags /home/berrange/src/virt/libvirt/build/../src/admin_protocol-structs --- stderr --- Traceback (most recent call last): File "/home/berrange/src/virt/libvirt/scripts/check-remote-protocol.py", line 55, in <module> objectdir = get_subdir(builddir, r'.*@{0}@.*'.format(libname)) File "/home/berrange/src/virt/libvirt/scripts/check-remote-protocol.py", line 50, in get_subdir raise Exception("Failed to find '{0}' in '{1}'".format(subdir, dirname)) Exception: Failed to find '.*@virt_admin_driver@.*' in '/home/berrange/src/virt/libvirt/build/src/admin' ------- 17/154 check-lock_protocol FAIL 0.08s (exit status 1) --- command --- 14:26:24 LC_CTYPE='en_US.UTF-8' LC_ALL='' LANG='C' /usr/bin/python3 /home/berrange/src/virt/libvirt/scripts/check-remote-protocol.py lock_protocol lockd_impl /home/berrange/src/virt/libvirt/build/src/locking /usr/bin/pdwtags /home/berrange/src/virt/libvirt/build/../src/lock_protocol-structs --- stderr --- Traceback (most recent call last): File "/home/berrange/src/virt/libvirt/scripts/check-remote-protocol.py", line 55, in <module> objectdir = get_subdir(builddir, r'.*@{0}@.*'.format(libname)) File "/home/berrange/src/virt/libvirt/scripts/check-remote-protocol.py", line 50, in get_subdir raise Exception("Failed to find '{0}' in '{1}'".format(subdir, dirname)) Exception: Failed to find '.*@lockd_impl@.*' in '/home/berrange/src/virt/libvirt/build/src/locking' ------- 18/154 check-lxc_monitor_protocol FAIL 0.08s (exit status 1) --- command --- 14:26:24 LC_CTYPE='en_US.UTF-8' LC_ALL='' LANG='C' /usr/bin/python3 /home/berrange/src/virt/libvirt/scripts/check-remote-protocol.py lxc_monitor_protocol virt_driver_lxc_impl /home/berrange/src/virt/libvirt/build/src/lxc /usr/bin/pdwtags /home/berrange/src/virt/libvirt/build/../src/lxc_monitor_protocol-structs --- stderr --- Traceback (most recent call last): File "/home/berrange/src/virt/libvirt/scripts/check-remote-protocol.py", line 55, in <module> objectdir = get_subdir(builddir, r'.*@{0}@.*'.format(libname)) File "/home/berrange/src/virt/libvirt/scripts/check-remote-protocol.py", line 50, in get_subdir raise Exception("Failed to find '{0}' in '{1}'".format(subdir, dirname)) Exception: Failed to find '.*@virt_driver_lxc_impl@.*' in '/home/berrange/src/virt/libvirt/build/src/lxc' ------- Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|