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@winehq.org Reporter: nanotwerp@gmail.com Distribution: ---
The commit in question is the one linked here: https://gitlab.winehq.org/wine/wine/-/commit/c7a97b5d5d56ef00a0061b75412c6e0...
https://bugs.winehq.org/show_bug.cgi?id=53953
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |regression Regression SHA1| |c7a97b5d5d56ef00a0061b75412 | |c6e0e489fdc99
https://bugs.winehq.org/show_bug.cgi?id=53953
Fabian Maurer dark.shadow4@web.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |dark.shadow4@web.de, | |z.figura12@gmail.com
--- Comment #1 from Fabian Maurer dark.shadow4@web.de --- CCing commit author.
Can you please provide a config log?
https://bugs.winehq.org/show_bug.cgi?id=53953
nanotwerp@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |nanotwerp@gmail.com
--- Comment #2 from nanotwerp@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.
https://bugs.winehq.org/show_bug.cgi?id=53953
--- Comment #3 from nanotwerp@gmail.com --- (In reply to Fabian Maurer from comment #1)
CCing commit author.
Can you please provide a config log?
Done!
https://bugs.winehq.org/show_bug.cgi?id=53953
--- Comment #4 from RafaĊ MuĊĵyĊo galtgendo@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 ?
https://bugs.winehq.org/show_bug.cgi?id=53953
--- Comment #5 from nanotwerp@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
https://bugs.winehq.org/show_bug.cgi?id=53953
Eric Pouech eric.pouech@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |eric.pouech@gmail.com
--- Comment #6 from Eric Pouech eric.pouech@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)
https://bugs.winehq.org/show_bug.cgi?id=53953
--- Comment #7 from Eric Pouech eric.pouech@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)
https://bugs.winehq.org/show_bug.cgi?id=53953
--- Comment #8 from nanotwerp@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.
https://bugs.winehq.org/show_bug.cgi?id=53953
--- Comment #9 from Eric Pouech eric.pouech@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
https://bugs.winehq.org/show_bug.cgi?id=53953
Michael Stefaniuc mstefani@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 CC| |mstefani@winehq.org Status|UNCONFIRMED |NEW
--- Comment #10 from Michael Stefaniuc mstefani@winehq.org --- Removing the config.cache doesn't helps; I've removed the whole build dir and still the same issue.
https://bugs.winehq.org/show_bug.cgi?id=53953
--- Comment #11 from Michael Stefaniuc mstefani@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.
https://bugs.winehq.org/show_bug.cgi?id=53953
--- Comment #12 from Michael Stefaniuc mstefani@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
https://bugs.winehq.org/show_bug.cgi?id=53953
Zeb Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Severity|normal |critical
https://bugs.winehq.org/show_bug.cgi?id=53953
--- Comment #13 from Eric Pouech eric.pouech@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
https://bugs.winehq.org/show_bug.cgi?id=53953
--- Comment #14 from Zeb Figura z.figura12@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...
https://bugs.winehq.org/show_bug.cgi?id=53953
--- Comment #15 from Zeb Figura z.figura12@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?
https://bugs.winehq.org/show_bug.cgi?id=53953
--- Comment #16 from Eric Pouech eric.pouech@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
https://bugs.winehq.org/show_bug.cgi?id=53953
--- Comment #17 from Michael Stefaniuc mstefani@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.
https://bugs.winehq.org/show_bug.cgi?id=53953
--- Comment #18 from Zeb Figura z.figura12@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.
https://bugs.winehq.org/show_bug.cgi?id=53953
--- Comment #19 from Eric Pouech eric.pouech@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
https://bugs.winehq.org/show_bug.cgi?id=53953
--- Comment #20 from Eric Pouech eric.pouech@gmail.com --- linking to opened ticket on fedora's bugzilla https://bugzilla.redhat.com/show_bug.cgi?id=2147531
https://bugs.winehq.org/show_bug.cgi?id=53953
--- Comment #21 from Zeb Figura z.figura12@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...
https://bugs.winehq.org/show_bug.cgi?id=53953
reserv0@yahoo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |reserv0@yahoo.com
--- Comment #22 from reserv0@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...
https://bugs.winehq.org/show_bug.cgi?id=53953
--- Comment #23 from Eric Pouech eric.pouech@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)
https://bugs.winehq.org/show_bug.cgi?id=53953
--- Comment #24 from Eric Pouech eric.pouech@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
https://bugs.winehq.org/show_bug.cgi?id=53953
--- Comment #25 from Eric Pouech eric.pouech@gmail.com --- for the record, Alexandre added logging pkg-config error messages to config.log so one can start looking into for more details
https://bugs.winehq.org/show_bug.cgi?id=53953
Bob Dingman bobd@geowareinc.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |bobd@geowareinc.com
--- Comment #26 from Bob Dingman bobd@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@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
https://bugs.winehq.org/show_bug.cgi?id=53953
--- Comment #27 from Eric Pouech eric.pouech@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
https://bugs.winehq.org/show_bug.cgi?id=53953
Eric Pouech eric.pouech@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #73551|0 |1 is obsolete| |
--- Comment #28 from Eric Pouech eric.pouech@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)
https://bugs.winehq.org/show_bug.cgi?id=53953
--- Comment #29 from Bob Dingman bobd@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.
https://bugs.winehq.org/show_bug.cgi?id=53953
Zeb Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |WONTFIX
--- Comment #30 from Zeb Figura z.figura12@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.