On Wed, Aug 05, 2020 at 10:59:08AM +0200, Andrea Bolognani wrote: > On Thu, 2020-07-16 at 11:54 +0200, Pavel Hrdina wrote: > > +++ b/meson_options.txt > > @@ -12,3 +12,4 @@ option('test_coverage', type: 'boolean', value: false, description: 'turn on cod > > option('apparmor', type: 'feature', value: 'auto', description: 'apparmor support') > > option('attr', type: 'feature', value: 'auto', description: 'attr support') > > option('audit', type: 'feature', value: 'auto', description: 'audit support') > > +option('readline', type: 'feature', value: 'auto', description: 'readline support') > > Erik reports that there are issues with building RPMs on CentOS. He > opened https://gitlab.com/libvirt/libvirt-ci/-/merge_requests/42, but > it seems to me that the topic should be discussed here instead, so > I'm quoting his message and replying inline. > > > After libvirt switched to the meson build system, rpmbuild on > > CentOS is no longer viable as meson >= 0.54.0 is required while > > only 0.49.2 (at the time of this patch) is available from the > > package manager. Even if --nodeps is passed, the "%meson" RPM macro > > won't expand and the build will fail. > > The question is, was dropping RPM build support for CentOS an > intentional change? I'm not sure it was, because otherwise the spec > file could have been cleaned up a bit at the same time. If it was > not, then we need to make use of the `%meson` macro conditional. > > As an aside, I haven't actually checked, but I think that even though > CentOS 8 ships a version of Meson that's too old for us it should at > least have the `%meson` macro. Maybe that won't work with a Meson > installed from PyPi, though... One thing I haven't tried is to install the old meson and use --nodeps with rpmbuild, still, rather than having 2 version of meson installed on CentOS for the rpmbuild, we should fallback to something else if %meson isn't defined. > > > It doesn't end there though, even if meson 0.54.0 were available, > > the rpm build would still fail because of readline-devel not > > providing the pkg config file on CentOS-8 which we rely on. > > Looking at the lastest pipeline, all CentOS versions have "readline: > NO" in their build summary, but the build still succeeded, so I'm not > sure why the RPM build would fail? readline is an optional > dependency, and we're not passing `-Dreadline=enabled`. > > Additionally, the complex logic necessary to detect readline > correctly, even in the absence of its pkg-config file, is still > present in `meson.build`, so I'm not sure why it's not doing what > it's supposed to do... Well, I just reported what happened to me yesterday when I was doing some mdev review on CentOS 8 and wanted to do an RPM install of the latest libvirt, meson couldn't be re-built from the latest spec on CentOS 8, but taking the binary package directly from Fedora 32 worked like a charm and then I hit the readline issue for some reason, it's true I've had a bunch of packages (including readline) installed manually in order to overcome the meson issues. I'll re-try in a completely clean environment to see whether the missing readline pkg config was only related to my environment or it actually fails the build. Erik