[libvirt PATCH v2] port libvirt to Meson build system

Neal Gompa ngompa13 at gmail.com
Thu Jul 30 22:00:12 UTC 2020


On Wed, Jul 29, 2020 at 10:38 AM Pavel Hrdina <phrdina at redhat.com> wrote:
>
> 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

Series LGTM.

Reviewed-by: Neal Gompa <ngompa13 at gmail.com>



-- 
真実はいつも一つ!/ Always, there's only one truth!





More information about the libvir-list mailing list