The second time around I will not post the complete series as it doesn't
make that much sense. Instead I'll post a diff between the two series to
provide the changes between these series together with links to both
versions pushed to gitlab repository.
Patches for v2 are available from my gitlab repository:
git clone -b meson
https://gitlab.com/phrdina/libvirt.git
and link to gitlab pipeline:
https://gitlab.com/phrdina/libvirt/-/pipelines/172042918
Patches for v1 are available from different branch 'meson-v1' in the
same repository. You can get the attached diff by running:
git diff meson-v1 meson
During review we discovered some areas that should be improved once the
meson rewrite is merged into libvirt master:
- As of June 2020 we can drop library check for yal2 and use pkg-confg
only check because openSUSE Leap 42.3 is no longer supported by
libvirt and latest SLES 15 was released on 2018-07-16.
- It was suggested to drop README file which is just a link to
README.rst and with meson no longer required as it was with autotools.
- There is a warning while building libvirt:
../tests/qemuxml2xmltest.c: In function ‘mymain’:
../tests/qemuxml2xmltest.c:132:1: note: variable tracking size limit exceeded with
‘-fvar-tracking-assignments’, retrying without
132 | mymain(void)
| ^~~~~~
- Review discovered that with meson we no longer link with
libnl-route-3. Meson links only with libraries that are actually
required and we never used any symbol from this library so it can
be dropped.
- During review it was pointed out that we can refactor how meson
generates html files by removing meson-html-gen.py and moving the
logic directly to meson.
- There was a question why we install augeas test files so we should
figure out if we need to install them or it can be dropped.
Here is the list of main changes done in v2, I will not list all of them
as it can be easily checked in the diff:
- I've reordered and changed the patches to not break git bisect. Now
patch 'meson: remove automake specific directives' doesn't remove
BUILD_SOURCES because that would break running 'autogen.sh'.
Patch 'meson: m4: drop not relevant m4 files' was renamed to
'meson: drop remaining m4 helper files' and moved at the end of the
series as it would again break running 'autogen.sh'.
Patch 'meson: tests: remove '.libs' from all relevant paths' was moved
in the middle of the series before adding 'src' directory into meson
because it would break running 'make check'.
To not break git bisect we agreed that meson will fail with error
until the whole rewrite is done and we will have a temporary option
'force_incomplete_build' that will skip the error and force to run
meson setup.
I've added a new patch 'meson: add driver_remote option only into
meson_options.txt'
to break circular dependency between driver_remote and libssh,
libssh2, sasl and xdr options to make
meson build -Dforce_incomplete_build work properly.
- We started running tests on FreeBSD which discovered an issue with
meson build. Meson defines _FILE_OFFSET_BITS=64 all the time so I had
to introduce a patch that handles this issue:
'meson: tests: virmockstathelpers: replace check for _FILE_OFFSET_BITS'
- All scripts except for meson-python.sh wrapper which sets environment
variables were converted from shell to python.
- Removed autoconf options debug_logs, default_editor and test_suite as
we will not convert them to meson.
- Introduced git_werror meson option to copy the behavior of --werror
option from autotools. It's not the same as with autotools but it is
a close compromise.
- Fixed virt-aa-helper-test which had hard-coded path to compiled
virt-aa-helper binary and that failed with meson.
- Correctly replace all SYSCONFDIR and RUNSTATEDIR in man pages files.
- Changed the way how we run syntax-check. Instead of having single
target it is now part of meson test with suite label 'syntax-checl'.
We will not define sytax-check tests if building from tarball, only
if we are building from git. We use git to get list of files.
- Fixed all issues discovered during review with linking binaries,
missing docs and cpu_map files, typos, etc.
- Meson cross compile configuration files were moved to libvirt-ci.
Pavel