Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.
RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.

Bug 1666733

Summary: [Rebase] Rebase meson to, at least, 0.47.1
Product: Red Hat Enterprise Linux 8 Reporter: Timothy Redaelli <tredaelli>
Component: mesonAssignee: Stephen Gallagher <sgallagh>
Status: CLOSED CURRENTRELEASE QA Contact: Desktop QE <desktop-qa-list>
Severity: medium Docs Contact:
Priority: medium    
Version: 8.0CC: ajax, bnocera, igor.raits, jkoten, jwboyer, marcandre.lureau, sgallagh, tdawson, tpelka, wtaymans
Target Milestone: rcKeywords: Rebase
Target Release: 8.0Flags: rule-engine: mirror+
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: meson-0.49.2-1.el8 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-06-14 01:24:12 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Timothy Redaelli 2019-01-16 13:37:35 UTC
DPDK from 19.05 onwards (http://patchwork.dpdk.org/patch/49877/) will need meson 0.47.1, mainly due to https://github.com/mesonbuild/meson/issues/2150.

I suggest to update to the last version we have on Fedora (0.49.0)

Comment 1 Adam Jackson 2019-01-17 18:19:56 UTC
Seconded. Would very much like a version of meson that has working PIE support:

http://post-office.corp.redhat.com/archives/rhel8-devel/2018-October/msg00582.html

Comment 2 Troy Dawson 2019-01-17 19:38:55 UTC
I have downloaded and verified that the 0.49.0 version of meson from Fedora builds on rhel-8.0.0-candidate.
I am taking that scratch build and checking to see if all the RHEL8 packages that need meson will build ok with it.
For my first pass, I will just be using mock on an x86_64 machine.  Just to see if there are any obvious problems.
This is the current list that I have for packages that depend on meson in RHEL8.  If people see a package that is missing, please let me know.

    at-spi2-core
    baobab
    bolt
    clevis
    colord
    dconf
    dconf-editor
    egl-wayland
    eog
    file-roller
    fuse
    fwupd
    gcab
    geocode-glib
    glib-networking
    gnome-backgrounds
    gnome-bluetooth
    gnome-boxes
    gnome-calculator
    gnome-characters
    gnome-color-manager
    gnome-control-center
    gnome-disk-utility
    gnome-font-viewer
    gnome-remote-desktop
    gnome-screenshot
    gnome-session
    gnome-settings-daemon
    gnome-shell
    gnome-shell-extensions
    gnome-software
    gnome-tweaks
    gom
    grilo
    grilo-plugins
    hexchat
    http-parser
    json-glib
    libappstream-glib
    libdazzle
    libdrm
    libepoxy
    libfprint
    libgit2-glib
    libgusb
    libgweather
    libgxps
    libinput
    libmodulemd
    librhsm
    libvarlink
    microdnf
    nautilus
    nautilus-sendto
    network-manager-applet
    pango
    pipewire
    sscg
    systemd
    totem
    totem-pl-parser
    xmlrpc-c

Comment 3 Troy Dawson 2019-01-17 22:11:35 UTC
Out of the list of 62, 16 failed to build on my local mock.
I did a rebuild of them with the old meson, just to make sure it wasn't my environment, and all 16 built correctly with the old mock.
bolt
dconf-editor
egl-wayland
file-roller
glib-networking
gnome-boxes
gnome-calculator
gnome-characters
gnome-control-center
gnome-screenshot
gnome-settings-daemon
hexchat
libfprint
libgweather
nautilus
network-manager-applet

I wasn't expecting so many to fail, so I didn't keep the build logs.
I'm going to rebuild them and get those logs to see if there is a theme of what if failing.
I've also noticed that we did two things to meson since it was imported to Fedora.
We added python3-devel as a dependency.  I've noticed that Fedora has a python3-setuptool dependency, but python3-devel is not installed.
We also added a mkenums.patch patch ... but since that is an upstream patch, I'm suspecting that it's already in.

I'm going to make those two changes to the Fedora meson, and see if it fixes the breakages.

Comment 4 Troy Dawson 2019-01-17 23:18:52 UTC
The mkenums.patch was already in 0.49.0, so there was no need to add it.
I added
 Requires:       python3-devel
to the Fedora meson-0.49.0 spec file, rebuilt, and tried again with that.
All but two packages built successfully.

Here are the packages that failed, and their logs.

egl-wayland
...
Configuring config.h using configuration
DEPRECATION: Setting a configuration data value to [2] is invalid, and will fail at configure_file(). If you are using it just to store some values, please use a dict instead.
Configuring wayland-eglstream.pc using configuration
meson.build:60:0: ERROR:  Tried to replace variable 'EGL_EXTERNAL_PLATFORM_MAX_VERSION' value with something other than a string or int: [2]


libfprint
...
Building documentation for libfprint
ERROR: Error in gtkdoc helper script:
ERROR: ['gtkdoc-scangobj', '--types=/builddir/build/BUILD/libfprint-0.8.2/x86_64-redhat-linux-gnu/doc/libfprint.types', '--module=libfprint', '--run=', '--cflags=-I/builddir/build/BUILD/libfprint-0.8.2/x86_64-redhat-linux-gnu/. -I/builddir/build/BUILD/libfprint-0.8.2/. -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/libusb-1.0 -I/usr/include/nss3 -I/usr/include/nspr4 -I/usr/include/pixman-1 -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE \'-DG_LOG_DOMAIN="libfprint"\'', '--ldflags=-L/builddir/build/BUILD/libfprint-0.8.2/x86_64-redhat-linux-gnu/libfprint -Wl,-rpath,/builddir/build/BUILD/libfprint-0.8.2/x86_64-redhat-linux-gnu/libfprint -lfprint -lm -lglib-2.0 -lusb-1.0 -lssl3 -lsmime3 -lnss3 -lnssutil3 -lplds4 -lplc4 -lnspr4 -lpthread -ldl -lpixman-1 -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wl,-z,relro -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld', '--cc=cc', '--ld=cc', '--output-dir=/builddir/build/BUILD/libfprint-0.8.2/x86_64-redhat-linux-gnu/doc'] failed with status 1
Traceback (most recent call last):
  File "/usr/bin/gtkdoc-scangobj", line 71, in <module>
    sys.exit(scangobj.run(options))
  File "/usr/share/gtk-doc/python/gtkdoc/scangobj.py", line 1230, in run
    for line in common.open_text(options.types):
  File "/usr/share/gtk-doc/python/gtkdoc/common.py", line 51, in open_text
    return open(filename, mode, encoding=encoding)
FileNotFoundError: [Errno 2] No such file or directory: '/builddir/build/BUILD/libfprint-0.8.2/x86_64-redhat-linux-gnu/doc/libfprint.types'

Comment 5 Stephen Gallagher 2019-02-04 14:56:57 UTC
Adding bnocera to the CC.

Both of those failures look simple to resolve, so we should probably move forwards with this (possibly even picking up the 0.50 release coming from upstream today).

Comment 6 Bastien Nocera 2019-02-04 16:23:51 UTC
(In reply to Troy Dawson from comment #4)
> libfprint
> ...
> Building documentation for libfprint
> ERROR: Error in gtkdoc helper script:
> ERROR: ['gtkdoc-scangobj',
> '--types=/builddir/build/BUILD/libfprint-0.8.2/x86_64-redhat-linux-gnu/doc/
> libfprint.types', '--module=libfprint', '--run=',
> '--cflags=-I/builddir/build/BUILD/libfprint-0.8.2/x86_64-redhat-linux-gnu/.
> -I/builddir/build/BUILD/libfprint-0.8.2/. -I/usr/include/glib-2.0
> -I/usr/lib64/glib-2.0/include -I/usr/include/libusb-1.0 -I/usr/include/nss3
> -I/usr/include/nspr4 -I/usr/include/pixman-1 -O2 -g -pipe -Wall
> -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS
> -fexceptions -fstack-protector-strong -grecord-gcc-switches
> -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1
> -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic
> -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection
> -D_GNU_SOURCE \'-DG_LOG_DOMAIN="libfprint"\'',
> '--ldflags=-L/builddir/build/BUILD/libfprint-0.8.2/x86_64-redhat-linux-gnu/
> libfprint
> -Wl,-rpath,/builddir/build/BUILD/libfprint-0.8.2/x86_64-redhat-linux-gnu/
> libfprint -lfprint -lm -lglib-2.0 -lusb-1.0 -lssl3 -lsmime3 -lnss3
> -lnssutil3 -lplds4 -lplc4 -lnspr4 -lpthread -ldl -lpixman-1 -O2 -g -pipe
> -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2
> -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong
> -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1
> -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic
> -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection
> -Wl,-z,relro -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld',
> '--cc=cc', '--ld=cc',
> '--output-dir=/builddir/build/BUILD/libfprint-0.8.2/x86_64-redhat-linux-gnu/
> doc'] failed with status 1
> Traceback (most recent call last):
>   File "/usr/bin/gtkdoc-scangobj", line 71, in <module>
>     sys.exit(scangobj.run(options))
>   File "/usr/share/gtk-doc/python/gtkdoc/scangobj.py", line 1230, in run
>     for line in common.open_text(options.types):
>   File "/usr/share/gtk-doc/python/gtkdoc/common.py", line 51, in open_text
>     return open(filename, mode, encoding=encoding)
> FileNotFoundError: [Errno 2] No such file or directory:
> '/builddir/build/BUILD/libfprint-0.8.2/x86_64-redhat-linux-gnu/doc/libfprint.
> types'

That's already fixed in git master, and in the development version of libfprint. I'll fix the FTBS when it happens.

Comment 7 Stephen Gallagher 2019-02-04 17:08:51 UTC
For the record, I'd like to bump the priority of this ticket as some recent changes in libmodulemd upstream would make 0.46 the minimum meson version to build (without significant hacking around on my part), so if we can get this landed, it would be a big help.

Comment 10 Stephen Gallagher 2019-02-04 19:26:36 UTC
*** Bug 1672316 has been marked as a duplicate of this bug. ***

Comment 16 Adam Jackson 2019-02-06 17:33:20 UTC
(In reply to Troy Dawson from comment #4)

> egl-wayland
> ...
> Configuring config.h using configuration
> DEPRECATION: Setting a configuration data value to [2] is invalid, and will
> fail at configure_file(). If you are using it just to store some values,
> please use a dict instead.
> Configuring wayland-eglstream.pc using configuration
> meson.build:60:0: ERROR:  Tried to replace variable
> 'EGL_EXTERNAL_PLATFORM_MAX_VERSION' value with something other than a string
> or int: [2]

Fixed in newer upstream egl-wayland, which I've imported and built for RHEL8 now.

Comment 17 Tomas Pelka 2019-02-06 19:45:36 UTC
Troy can you please have a look whether new meson fixed all issues you had found?

Thanks
-Tom

Comment 18 Troy Dawson 2019-02-06 20:46:19 UTC
I am mock rebuilding all the latest rhel8 packages that depend on meson.
This will take a couple hours.

Comment 19 Troy Dawson 2019-02-06 21:52:05 UTC
I have verified that all the latest rhel8 packages that depend on meson build, except for libfprint.
libfprint failed with the same error as was earlier reported in Comment 4.
As reported in Comment 6 "That's already fixed in git master, and in the development version of libfprint. I'll fix the FTBS when it happens."

So, in my opinion, this new meson works.  I'm not sure of the right wording, but ship it.

Comment 20 Tomas Pelka 2019-02-07 07:11:14 UTC
(In reply to Troy Dawson from comment #19)
> I have verified that all the latest rhel8 packages that depend on meson
> build, except for libfprint.
> libfprint failed with the same error as was earlier reported in Comment 4.
> As reported in Comment 6 "That's already fixed in git master, and in the
> development version of libfprint. I'll fix the FTBS when it happens."
> 
> So, in my opinion, this new meson works.  I'm not sure of the right wording,
> but ship it.

Thanks!