[Bug 53953] New: Recent Wine 7.21 commit makes the build environment unable to detect 32-bit FreeType 2 libraries on Fedora
https://bugs.winehq.org/show_bug.cgi?id=53953 Bug ID: 53953 Summary: Recent Wine 7.21 commit makes the build environment unable to detect 32-bit FreeType 2 libraries on Fedora Product: Wine Version: 7.21 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: build-env Assignee: wine-bugs(a)winehq.org Reporter: nanotwerp(a)gmail.com Distribution: --- The commit in question is the one linked here: https://gitlab.winehq.org/wine/wine/-/commit/c7a97b5d5d56ef00a0061b75412c6e0... -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=53953 Austin English <austinenglish(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |regression Regression SHA1| |c7a97b5d5d56ef00a0061b75412 | |c6e0e489fdc99 -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=53953 Fabian Maurer <dark.shadow4(a)web.de> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |dark.shadow4(a)web.de, | |z.figura12(a)gmail.com --- Comment #1 from Fabian Maurer <dark.shadow4(a)web.de> --- CCing commit author. Can you please provide a config log? -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=53953 nanotwerp(a)gmail.com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |nanotwerp(a)gmail.com --- Comment #2 from nanotwerp(a)gmail.com --- Created attachment 73542 --> https://bugs.winehq.org/attachment.cgi?id=73542 Commit c7a97b5 makes the 32-bit Wine build environment unable to detect ft2build.h Everything works perfectly fine for compiling 64-bit Wine. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=53953 --- Comment #3 from nanotwerp(a)gmail.com --- (In reply to Fabian Maurer from comment #1)
CCing commit author.
Can you please provide a config log?
Done! -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=53953 --- Comment #4 from Rafał Mużyło <galtgendo(a)o2.pl> --- ...the result for freetype cflags looks odd, the content of pkgconfig file should be setting it to '-I${includedir}/freetype2', where the value of ${includedir} is filled by configure during that lib's build process. My guess it means pkgconfig indeed fails to find the relevant file. What path does Fedora store those pkgconfig files under ? -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=53953 --- Comment #5 from nanotwerp(a)gmail.com --- (In reply to Rafał Mużyło from comment #4)
...the result for freetype cflags looks odd, the content of pkgconfig file should be setting it to '-I${includedir}/freetype2', where the value of ${includedir} is filled by configure during that lib's build process.
My guess it means pkgconfig indeed fails to find the relevant file.
What path does Fedora store those pkgconfig files under ?
Location of normal 32-bit FreeType2 .pc file: /usr/lib/pkgconfig/freetype2.pc Location of i686-w64-mingw32 FreeType2 .pc file: /usr/i686-w64-mingw32/sys-root/mingw/lib/pkgconfig/freetype2.pc -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=53953 Eric Pouech <eric.pouech(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |eric.pouech(a)gmail.com --- Comment #6 from Eric Pouech <eric.pouech(a)gmail.com> --- (been there <g>) you need to install freetype-devel for 32bit (and likely a bunch of others missing devel packages) you can do
PKG_CONFIG_PATH=/usr/lib/pkgconfig/ i686-w64-mingw32-pkg-config --cflags freetype2
and it'll tell you which 32bit -devel packages you're missing (note: as a consequence of commit from #1, I had to disable gstreamer from 32bit compilations as it seems the 32/64 bit settings are wrong) -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=53953 --- Comment #7 from Eric Pouech <eric.pouech(a)gmail.com> --- (In reply to Eric Pouech from comment #6)
(been there <g>)
you need to install freetype-devel for 32bit (and likely a bunch of others missing devel packages)
you can do
PKG_CONFIG_PATH=/usr/lib/pkgconfig/ i686-w64-mingw32-pkg-config --cflags freetype2
and it'll tell you which 32bit -devel packages you're missing
(note: as a consequence of commit from #1, I had to disable gstreamer from 32bit compilations as it seems the 32/64 bit settings are wrong)
commenting on my self: actually this is sufficient
PKG_CONFIG_PATH=/usr/lib/pkgconfig/ pkg-config --cflags freetype2
for gstreamer, you need to check for
PKG_CONFIG_PATH=/usr/lib/pkgconfig/ pkg-config --cflags gstreamer-1.0 gstreamer-video-1.0 gstreamer-audio-1.0 (I was only checking for gstreamer-1.0 and didn't see all missings deps. This is now working correctly).
another option is to apply this change: diff --git a/aclocal.m4 b/aclocal.m4 index 080f782b698..629d2a245d6 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -116,7 +116,7 @@ AS_VAR_PUSHDEF([ac_libs],[[$1]_LIBS])dnl AC_ARG_VAR(ac_cflags, [C compiler flags for $2, overriding pkg-config])dnl AS_VAR_IF([ac_cflags],[], [AS_VAR_SET_IF([PKG_CONFIG], - [ac_cflags=`$PKG_CONFIG --cflags [$2] 2>/dev/null`])]) + [ac_cflags=`$PKG_CONFIG --cflags [$2] `])]) m4_ifval([$4],[test "$cross_compiling" = yes || ac_cflags=[$]{ac_cflags:-[$4]}]) AC_ARG_VAR(ac_libs, [Linker flags for $2, overriding pkg-config])dnl AS_VAR_IF([ac_libs],[], run
autoconf to regenerate the configure.ac
and then the missing deps will appear when running configure (but also the ones that are not present) -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=53953 --- Comment #8 from nanotwerp(a)gmail.com --- (In reply to Eric Pouech from comment #7)
(In reply to Eric Pouech from comment #6)
(been there <g>)
you need to install freetype-devel for 32bit (and likely a bunch of others missing devel packages)
you can do
PKG_CONFIG_PATH=/usr/lib/pkgconfig/ i686-w64-mingw32-pkg-config --cflags freetype2
and it'll tell you which 32bit -devel packages you're missing
(note: as a consequence of commit from #1, I had to disable gstreamer from 32bit compilations as it seems the 32/64 bit settings are wrong)
commenting on my self: actually this is sufficient
PKG_CONFIG_PATH=/usr/lib/pkgconfig/ pkg-config --cflags freetype2
for gstreamer, you need to check for
PKG_CONFIG_PATH=/usr/lib/pkgconfig/ pkg-config --cflags gstreamer-1.0 gstreamer-video-1.0 gstreamer-audio-1.0 (I was only checking for gstreamer-1.0 and didn't see all missings deps. This is now working correctly).
another option is to apply this change: diff --git a/aclocal.m4 b/aclocal.m4 index 080f782b698..629d2a245d6 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -116,7 +116,7 @@ AS_VAR_PUSHDEF([ac_libs],[[$1]_LIBS])dnl AC_ARG_VAR(ac_cflags, [C compiler flags for $2, overriding pkg-config])dnl AS_VAR_IF([ac_cflags],[], [AS_VAR_SET_IF([PKG_CONFIG], - [ac_cflags=`$PKG_CONFIG --cflags [$2] 2>/dev/null`])]) + [ac_cflags=`$PKG_CONFIG --cflags [$2] `])]) m4_ifval([$4],[test "$cross_compiling" = yes || ac_cflags=[$]{ac_cflags:-[$4]}]) AC_ARG_VAR(ac_libs, [Linker flags for $2, overriding pkg-config])dnl AS_VAR_IF([ac_libs],[],
run
autoconf to regenerate the configure.ac
and then the missing deps will appear when running configure (but also the ones that are not present)
I get: -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/sysprof-4 -pthread when I run the command. I already every 64 and 32-bit FreeType package except for the demos and the ones for Rust. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=53953 --- Comment #9 from Eric Pouech <eric.pouech(a)gmail.com> ---
I get:
-I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/sysprof-4 -pthread
when I run the command. I already every 64 and 32-bit FreeType package except for the demos and the ones for Rust.
nothing too bad here... you could try: 1) from your 32bit compilation dir, 'rm config.cache' if it exists and rerun configure. Maybe you still have incorrect information in config's cache. 2) you could compare with what I've here. IIRC brotli, bzip2, glib2, graphite2, harfbuzz, pcre2, zlib are needed for freetype2; orc and gstream* are needed for gstreamer
dnf list installed '*-devel.i686' Installed Package SDL2-devel.i686 2.24.0-1.fc37 @fedora alsa-lib-devel.i686 1.2.8-1.fc37 @updates bison-devel.i686 3.8.2-3.fc37 @fedora brotli-devel.i686 1.0.9-9.fc37 @fedora bzip2-devel.i686 1.0.8-12.fc37 @fedora cups-devel.i686 1:2.4.2-5.fc37 @updates-testing cyrus-sasl-devel.i686 2.1.28-8.fc37 @fedora dbus-devel.i686 1:1.14.4-1.fc37 @updates-testing dbus-glib-devel.i686 0.112-4.fc37 @fedora elfutils-debuginfod-client-devel.i686 0.187-8.fc37 @fedora elfutils-devel.i686 0.187-8.fc37 @fedora elfutils-libelf-devel.i686 0.187-8.fc37 @fedora fontconfig-devel.i686 2.14.1-1.fc37 @updates freetype-devel.i686 2.12.1-3.fc37 @fedora glib2-devel.i686 2.74.1-2.fc37 @fedora glibc-devel.i686 2.36-7.fc37 @fedora gnutls-devel.i686 3.7.8-3.fc37 @updates graphite2-devel.i686 1.3.14-10.fc37 @fedora gstreamer1-devel.i686 1.20.4-1.fc37 @updates-testing gstreamer1-plugins-base-devel.i686 1.20.4-1.fc37 @updates-testing harfbuzz-devel.i686 5.2.0-1.fc37 @fedora krb5-devel.i686 1.19.2-11.fc37.1 @fedora libX11-devel.i686 1.8.1-2.fc37 @fedora libXcomposite-devel.i686 0.4.5-8.fc37 @fedora libXcursor-devel.i686 1.2.1-2.fc37 @fedora libXext-devel.i686 1.3.4-9.fc37 @fedora libXfixes-devel.i686 6.0.0-4.fc37 @fedora libXi-devel.i686 1.8-3.fc37 @fedora libXinerama-devel.i686 1.1.4-11.fc37 @fedora libXrandr-devel.i686 1.5.2-9.fc37 @fedora libXrender-devel.i686 0.9.10-17.fc37 @fedora libXxf86dga-devel.i686 1.1.5-9.fc37 @fedora libXxf86vm-devel.i686 1.1.4-19.fc37 @fedora libcom_err-devel.i686 1.46.5-3.fc37 @fedora libdwarf-devel.i686 1:0.4.2-1.fc37 @fedora libffi-devel.i686 3.4.2-9.fc37 @fedora libglvnd-core-devel.i686 1:1.5.0-1.fc37 @fedora libglvnd-devel.i686 1:1.5.0-1.fc37 @fedora libgphoto2-devel.i686 2.5.30-3.fc37 @fedora libinsane-devel.i686 1.0.9-5.fc37 @fedora libjpeg-turbo-devel.i686 2.1.3-2.fc37 @fedora libomp-devel.i686 15.0.4-1.fc37 @updates libpcap-devel.i686 14:1.10.1-4.fc37 @fedora libpng-devel.i686 2:1.6.37-13.fc37 @fedora libunwind-devel.i686 1.6.2-5.fc37 @updates libusb1-devel.i686 1.0.25-9.fc37 @fedora libv4l-devel.i686 1.22.1-4.fc37 @updates libvkd3d-devel.i686 1.5-1.fc37 @updates libxcb-devel.i686 1.13.1-10.fc37 @fedora libxcrypt-devel.i686 4.4.31-1.fc37 @updates libxkbcommon-x11-devel.i686 1.4.1-2.fc37 @fedora libxml2-devel.i686 2.10.3-2.fc37 @updates libxshmfence-devel.i686 1.3-11.fc37 @fedora libzstd-devel.i686 1.5.2-3.fc37 @fedora mesa-libEGL-devel.i686 22.2.3-1.fc37 @updates mesa-libOSMesa-devel.i686 22.2.3-1.fc37 @updates mesa-libOpenCL-devel.i686 22.2.3-1.fc37 @updates mono-basic-devel.i686 4.7-10.fc37 @fedora mono-devel.i686 6.12.0-9.fc37 @fedora ocl-icd-devel.i686 2.3.1-2.fc37 @fedora openal-soft-devel.i686 1.22.2-2.fc37 @fedora openjpeg2-devel.i686 2.5.0-2.fc37 @fedora openldap-devel.i686 2.6.3-1.fc37 @fedora orc-devel.i686 0.4.31-8.fc37 @fedora pcre2-devel.i686 10.40-1.fc37.1 @fedora pulseaudio-libs-devel.i686 16.1-1.fc37 @fedora readline-devel.i686 8.2-2.fc37 @updates-testing samba-devel.i686 2:4.17.3-0.fc37 @updates sane-backends-devel.i686 1.1.1-8.fc37 @updates-testing sysprof-capture-devel.i686 3.46.0-1.fc37 @fedora valgrind-devel.i686 1:3.20.0-1.fc37 @updates vulkan-loader-devel.i686 1.3.216.0-3.fc37 @fedora xz-devel.i686 5.2.5-10.fc37 @fedora zlib-devel.i686 1.2.12-5.fc37 @fedora
-- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=53953 Michael Stefaniuc <mstefani(a)winehq.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 CC| |mstefani(a)winehq.org Status|UNCONFIRMED |NEW --- Comment #10 from Michael Stefaniuc <mstefani(a)winehq.org> --- Removing the config.cache doesn't helps; I've removed the whole build dir and still the same issue. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=53953 --- Comment #11 from Michael Stefaniuc <mstefani(a)winehq.org> ---
From config.log it doesn't even seems to use the includes returned by pkgconfig:
configure:16811: checking for ft2build.h configure:16811: gcc -m32 -c -g -O2 conftest.c >&5 conftest.c:171:10: fatal error: ft2build.h: No such file or directory 171 | #include <ft2build.h> | ^~~~~~~~~~~~ compilation terminated. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=53953 --- Comment #12 from Michael Stefaniuc <mstefani(a)winehq.org> --- And this is config.log after reverting the culprit commit: configure:16811: checking for ft2build.h configure:16811: gcc -m32 -c -g -O2 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/sysprof-4 -pthread conftest.c >&5 configure:16811: $? = 0 configure:16811: result: yes -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=53953 Zeb Figura <z.figura12(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Severity|normal |critical -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=53953 --- Comment #13 from Eric Pouech <eric.pouech(a)gmail.com> --- Created attachment 73551 --> https://bugs.winehq.org/attachment.cgi?id=73551 shovel patch (to help digging) we need to understand why configure doesn't get the right info out of pkg-config could you: - apply the attached patch - from wine source tree: run 'autoconf' - from wine 32bit compilation dir: run 'rm -f config.cache; ./configure <with your usual opts>' - post back the config.log and pkgcfg2-freetype2 files from 32bit compilation dir TIA -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=53953 --- Comment #14 from Zeb Figura <z.figura12(a)gmail.com> --- I looked into this briefly with a Fedora VM. I don't know why, but for some reason installing freetype-devel.i686 alone doesn't actually allow 'i686-redhat-linux-gnu-pkg-config --cflags freetype2' to work. You need to manually install i686 development packages for all of the dependencies too (at least bzip2, brotli, harfbuzz, sysprof-capture, libpng, pcre2). Not sure why the 64-bit version works fine since as far as I can tell that doesn't depend on its own dependencies either. Also not sure what c7a97b5d5 would have changed... -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=53953 --- Comment #15 from Zeb Figura <z.figura12(a)gmail.com> --- Hmm, if I remove harfbuzz-devel.x86_64 then the 64-bit pkg-config for freetype2 also fails. Odd. I'm pretty sure I didn't install that one manually, so where did it come from? -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=53953 --- Comment #16 from Eric Pouech <eric.pouech(a)gmail.com> --- in reply to #14: that's more or less what I did locally to be back on tracks in reply to #15 my wild guess: looking at https://fedora.pkgs.org/37/fedora-x86_64/freetype-devel-2.12.1-3.fc37.i686.r... it shows that this package has a dep to say pkgconfig(harfbuzz) but pkgconfig(hardbuff) is provided by *both* the harfbuzz.i686 and harfbuzz.x86_64 if my interpretation is right (didn't look further into the pkgs defs), that means that having one the -devel.i686 or -devel.x86_64 won't force the loading of the other -devel when required by an another package didn't check how the other distros do it... so c7a97b5d5 by forcing looking (correctly) into the i686 (resp x86_64) packages show all the -devel packages for which the deps haven't been triggered that would also explain why removing harfbuzz-devel.x86_64 broke the config (right), and it has been installed at first as dep of freetype-devel (as no pkgconfig(harfbuzz) was present at this time) my understanging: - c7a97b5d5 is correct - fedora has a strange dep here... (I would rather see provides pkgconfig(harfbuzz.i686) rather than pkgconfig(harfbuzz)) - we need to help fedora (and probably other distros) get their config right hth -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=53953 --- Comment #17 from Michael Stefaniuc <mstefani(a)winehq.org> --- OK, "i686-redhat-linux-gnu-pkg-config --cflags freetype2" was the magic command to figure out what is missing. For me it was bzip2-devel.i686 and pcre-devel.i686 (I had only pcre2-devel.i686). Unclear why this worked with c7a97b5d5d56ef00a0061b75412c6e0e489fdc99 reverted... Now if works so I'm assuming this is a NOTOURBUG but we need to document the dependencies. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=53953 --- Comment #18 from Zeb Figura <z.figura12(a)gmail.com> --- (In reply to Eric Pouech from comment #16)
it shows that this package has a dep to say pkgconfig(harfbuzz) but pkgconfig(hardbuff) is provided by *both* the harfbuzz.i686 and harfbuzz.x86_64
if my interpretation is right (didn't look further into the pkgs defs), that means that having one the -devel.i686 or -devel.x86_64 won't force the loading of the other -devel when required by an another package
didn't check how the other distros do it... so c7a97b5d5 by forcing looking (correctly) into the i686 (resp x86_64) packages show all the -devel packages for which the deps haven't been triggered
that would also explain why removing harfbuzz-devel.x86_64 broke the config (right), and it has been installed at first as dep of freetype-devel (as no pkgconfig(harfbuzz) was present at this time)
Yeah, that makes a lot of sense. I looked at the spec file which doesn't have any dependencies coded into it... I guess maybe Fedora is generating package dependencies from the package contents or something? (which would explain why that one wine-staging wpcap patch exists...) I think most other distributions (well, Debian and Arch at least) just write dependencies manually. Which I think is also the right way to do it; trying to generate them automatically just causes way too many problems.
my understanging: - c7a97b5d5 is correct - fedora has a strange dep here... (I would rather see provides pkgconfig(harfbuzz.i686) rather than pkgconfig(harfbuzz)) - we need to help fedora (and probably other distros) get their config right
Yeah, it's a bit unfortunate that this breaks the build so badly though. I guess what we could do is something like - PKG_CONFIG_LIBDIR=${PKG_CONFIG_LIBDIR:-/usr/lib/i386-linux-gnu/pkgconfig:/usr/lib32/pkgconfig:/usr/lib/pkgconfig} + PKG_CONFIG_LIBDIR=${PKG_CONFIG_LIBDIR:-/usr/lib/i386-linux-gnu/pkgconfig:/usr/lib32/pkgconfig:/usr/lib/pkgconfig:/usr/lib64/pkgconfig} which is obviously not great, I mean I was kind of hoping that we could finally move away from "fall back to the wrong arch", but it's no worse than what we have been doing, or what we do for other distributions. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=53953 --- Comment #19 from Eric Pouech <eric.pouech(a)gmail.com> ---
PKG_CONFIG_LIBDIR=${PKG_CONFIG_LIBDIR:-/usr/lib/i386-linux-gnu/pkgconfig:/ usr/lib32/pkgconfig:/usr/lib/pkgconfig} + PKG_CONFIG_LIBDIR=${PKG_CONFIG_LIBDIR:-/usr/lib/i386-linux-gnu/pkgconfig:/ usr/lib32/pkgconfig:/usr/lib/pkgconfig:/usr/lib64/pkgconfig}
which is obviously not great, I mean I was kind of hoping that we could finally move away from "fall back to the wrong arch", but it's no worse than what we have been doing, or what we do for other distributions.
yes that would avoid breakage, but wouldn't warn user about 32/64.pc mismatch I also pushed https://gitlab.winehq.org/wine/wine/-/merge_requests/1523 to log the output of pkgconfig so that one can figure out which package(s) to add and if helpful, the following bash thingie lists the packages -devel which are installed for 64bit but not for 32bit in the system it helped me pinpoint some missing ones for i in `dnf list --installed '*-devel.x86_64' | tail -n +2 | sed 's/-devel.x86_64.*/-devel.i686/'`; do dnf list --installed "$i" >& /dev/null || echo "Missing $i"; done -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=53953 --- Comment #20 from Eric Pouech <eric.pouech(a)gmail.com> --- linking to opened ticket on fedora's bugzilla https://bugzilla.redhat.com/show_bug.cgi?id=2147531 -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=53953 --- Comment #21 from Zeb Figura <z.figura12(a)gmail.com> --- (In reply to Eric Pouech from comment #19)
PKG_CONFIG_LIBDIR=${PKG_CONFIG_LIBDIR:-/usr/lib/i386-linux-gnu/pkgconfig:/ usr/lib32/pkgconfig:/usr/lib/pkgconfig} + PKG_CONFIG_LIBDIR=${PKG_CONFIG_LIBDIR:-/usr/lib/i386-linux-gnu/pkgconfig:/ usr/lib32/pkgconfig:/usr/lib/pkgconfig:/usr/lib64/pkgconfig}
which is obviously not great, I mean I was kind of hoping that we could finally move away from "fall back to the wrong arch", but it's no worse than what we have been doing, or what we do for other distributions.
yes that would avoid breakage, but wouldn't warn user about 32/64.pc mismatch
It wouldn't, no. On the other hand that's basically been the situation for some time, and the only case we know matters (GStreamer) we explicitly check for anyway... -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=53953 reserv0(a)yahoo.com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |reserv0(a)yahoo.com --- Comment #22 from reserv0(a)yahoo.com --- I am now seeing a 32 bits build breakage in v7.22, because PKG_CONFIG_PATH was replaced with PKG_CONFIG_LIBDIR (which is not taken into account by my pkg-config flavour) in 'configure'... Restoring the old env variable name in the latter with a: sed -i -e 's/PKG_CONFIG_LIBDIR/PKG_CONFIG_PATH/g' configure restores the ability to build a 32 bits Wine... Please, make it so that your configure script tests *both* for PKG_CONFIG_LIBDIR and PKG_CONFIG_PATH in the environment, and use the one that is provided... -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=53953 --- Comment #23 from Eric Pouech <eric.pouech(a)gmail.com> --- (In reply to Zeb Figura from comment #18)
(In reply to Eric Pouech from comment #16)
it shows that this package has a dep to say pkgconfig(harfbuzz) but pkgconfig(hardbuff) is provided by *both* the harfbuzz.i686 and harfbuzz.x86_64
if my interpretation is right (didn't look further into the pkgs defs), that means that having one the -devel.i686 or -devel.x86_64 won't force the loading of the other -devel when required by an another package
didn't check how the other distros do it... so c7a97b5d5 by forcing looking (correctly) into the i686 (resp x86_64) packages show all the -devel packages for which the deps haven't been triggered
that would also explain why removing harfbuzz-devel.x86_64 broke the config (right), and it has been installed at first as dep of freetype-devel (as no pkgconfig(harfbuzz) was present at this time)
Yeah, that makes a lot of sense. I looked at the spec file which doesn't have any dependencies coded into it... I guess maybe Fedora is generating package dependencies from the package contents or something? (which would explain why that one wine-staging wpcap patch exists...)
I think most other distributions (well, Debian and Arch at least) just write dependencies manually. Which I think is also the right way to do it; trying to generate them automatically just causes way too many problems.
my understanging: - c7a97b5d5 is correct - fedora has a strange dep here... (I would rather see provides pkgconfig(harfbuzz.i686) rather than pkgconfig(harfbuzz)) - we need to help fedora (and probably other distros) get their config right
Yeah, it's a bit unfortunate that this breaks the build so badly though. I guess what we could do is something like
- PKG_CONFIG_LIBDIR=${PKG_CONFIG_LIBDIR:-/usr/lib/i386-linux-gnu/pkgconfig:/ usr/lib32/pkgconfig:/usr/lib/pkgconfig} + PKG_CONFIG_LIBDIR=${PKG_CONFIG_LIBDIR:-/usr/lib/i386-linux-gnu/pkgconfig:/ usr/lib32/pkgconfig:/usr/lib/pkgconfig:/usr/lib64/pkgconfig}
which is obviously not great, I mean I was kind of hoping that we could finally move away from "fall back to the wrong arch", but it's no worse than what we have been doing, or what we do for other distributions.
Zebediah, extending your idea, what about doing something like this instead? PKG_CONFIG_PATH=${PKG_CONFIG_PATH}:/usr/lib/i386-linux-gnu/pkgconfig:/usr/lib32/pkgconfig:/usr/lib/pkgconfig:/usr/lib64/pkgconfig it'll: - keep user default, if any, - search first for .pc in 32libs - fallback to 64bit dirs if .pc not found in 32bit dirs, hence working around Fedora's settings (I don't see a generic for this one, so we need to be prepared for more errors from compilations on Fedora), - and potentially work around comment #22 (even if I didn't look from where this could come from) -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=53953 --- Comment #24 from Eric Pouech <eric.pouech(a)gmail.com> ---
it'll: - keep user default, if any, - search first for .pc in 32libs - fallback to 64bit dirs if .pc not found in 32bit dirs, hence working around Fedora's settings (I don't see a generic for this one, so we need to be prepared for more errors from compilations on Fedora), - and potentially work around comment #22 (even if I didn't look from where this could come from)
of course, if won't work if user set 64bit dirs in PKG_CONFIG_PATH -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=53953 --- Comment #25 from Eric Pouech <eric.pouech(a)gmail.com> --- for the record, Alexandre added logging pkg-config error messages to config.log so one can start looking into for more details -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=53953 Bob Dingman <bobd(a)geowareinc.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |bobd(a)geowareinc.com --- Comment #26 from Bob Dingman <bobd(a)geowareinc.com> --- I also hit this issue on Oracle Linux 8 (not surprisingly, I suppose) doing the 32-bit build for 7.22. I spent a lot of time looking for the error message to no avail, so wanted to post it: $ ./configure . . . checking for res_getservers... no checking for ft2build.h... no configure: error: FreeType 32-bit development files not found. Fonts will not be built. Use the --without-freetype option if you really want this. In config.log I see: configure:16812: checking for ft2build.h configure:16812: gcc -m32 -c -g -O2 conftest.c >&5 conftest.c:167:10: fatal error: ft2build.h: No such file or directory #include <ft2build.h> ^~~~~~~~~~~~ compilation terminated. When performing the check suggested by Michael Stefaniuc in https://bugs.winehq.org/show_bug.cgi?id=53953#c17, I get: [root(a)el8]# i686-redhat-linux-gnu-pkg-config --cflags freetype2 Package zlib was not found in the pkg-config search path. Perhaps you should add the directory containing `zlib.pc' to the PKG_CONFIG_PATH environment variable Package 'zlib', required by 'freetype2', not found Package 'bzip2', required by 'freetype2', not found Package 'libpng', required by 'freetype2', not found -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=53953 --- Comment #27 from Eric Pouech <eric.pouech(a)gmail.com> --- (In reply to Bob Dingman from comment #26)
I also hit this issue on Oracle Linux 8 (not surprisingly, I suppose) doing the 32-bit build for 7.22.
I spent a lot of time looking for the error message to no avail, so wanted to post it:
$ ./configure for the record: log of pkgconf failures in config.log (#25) are present on wine-8.0rc1 and onwards
-- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=53953 Eric Pouech <eric.pouech(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #73551|0 |1 is obsolete| | --- Comment #28 from Eric Pouech <eric.pouech(a)gmail.com> --- Comment on attachment 73551 --> https://bugs.winehq.org/attachment.cgi?id=73551 shovel patch (to help digging) marking patch as obsolete (present in 8.0rc1 in a similar form) -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=53953 --- Comment #29 from Bob Dingman <bobd(a)geowareinc.com> ---
for the record: log of pkgconf failures in config.log (#25) are present on wine-8.0rc1 and onwards Thanks, Eric. I was wondering where it was introduced.
-- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=53953 Zeb Figura <z.figura12(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |WONTFIX --- Comment #30 from Zeb Figura <z.figura12(a)gmail.com> --- This is essentially a case of user error that used to work—that is, explicitly picking up the wrong headers when the right ones weren't installed. The correct solution is to simply install the right headers, and we now print enough information in config.log to make it clear that the headers for the right architecture are missing. Resolving as WONTFIX. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=53953 Austin English <austinenglish(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED --- Comment #31 from Austin English <austinenglish(a)gmail.com> --- Closing. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
participants (1)
-
WineHQ Bugzilla