[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