Bug 1410528

Summary: Undefined reference to FT_Get_Var_Blend_Coordinates
Product: [Fedora] Fedora Reporter: Vitaly <vitaly>
Component: harfbuzzAssignee: Parag Nemade <pnemade>
Status: CLOSED NOTABUG QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: behdad, gryt2, i18n-bugs, kevin, pantinor, phea.duch, pnemade, pradhanphy, psatpute, renault, vedran
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-01-19 12:29:33 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 Vitaly 2017-01-05 16:26:30 UTC
Description of problem: trying to build qt5-qtbase 5.6.2 for Fedora Rawhide (this version of Qt5 required by another project) and got error during ./configure stage.


Version-Release number of selected component (if applicable): Qt 5.6.2, harfbuzz: 1.4.0-1.fc26.


How reproducible: try to build Qt 5.6.2 Static with this ./configure options:

./configure \
    -prefix "%_builddir/qt" \
    -release \
    -opensource \
    -confirm-license \
    -system-zlib \
    -system-libpng \
    -system-libjpeg \
    -system-freetype \
    -system-harfbuzz \
    -system-pcre \
    -system-xcb \
    -system-xkbcommon-x11 \
    -no-opengl \
    -no-gtkstyle \
    -static \
    -nomake examples \
    -nomake tests


Steps to Reproduce:
1. Just try to build under rawhide. It will fail on harfbuzz test stage.
2.
3.

Actual results:
checking for HarfBuzz... 
g++ -c -pipe -O2 -Wall -W -fPIC  -I. -I../../../mkspecs/linux-g++ -o harfbuzz.o harfbuzz.cpp
g++ -Wl,-O1 -o harfbuzz harfbuzz.o   -lharfbuzz 
/usr/lib/gcc/x86_64-redhat-linux/6.3.1/../../../../lib64/libharfbuzz.so: undefined reference to `FT_Get_Var_Blend_Coordinates'
collect2: error: ld returned 1 exit status
gmake: *** [Makefile:85: harfbuzz] Error 1
HarfBuzz disabled.
 HarfBuzz system library support cannot be enabled due to functionality tests!
 Turn on verbose messaging (-v) to ./configure to see the final report.
 If you believe this message is in error you may use the continue
 switch (-continue) to ./configure to continue.


Expected results:
Successful build.


Additional info:
Under Fedora 25 and harfbuzz version 1.3.2 it works fine.

File used by Qt 5.6.2 to test harfbuzz: https://github.com/qt/qtbase/blob/v5.6.2/config.tests/unix/harfbuzz/harfbuzz.cpp

Comment 1 Parag Nemade 2017-01-06 05:56:50 UTC
Will check more on this but a quick rebuild of existing koji qt5-qtbase-5.6.2 srpm give https://koji.fedoraproject.org/koji/taskinfo?taskID=17172706 failure in different lines in build.log file. Most probably some missing BuildRequires: in spec file?

Comment 2 Phea Duch 2017-01-07 17:44:28 UTC
I experienced the same issue with trying to start X using harfbuzz 1.4.0 and 1.4.1. Downgrading to 1.3.4 resolved the issue as X no longer does a check for FT_Get_Var_Blend_Coordinates. 

[1.3.4]
nm -D /lib64/libharfbuzz.so.0 | grep FT_Get
                 U FT_Get_Advance
                 U FT_Get_Char_Index
                 U FT_Get_Glyph_Name
                 U FT_Get_Kerning
                 U FT_Get_Name_Index

[1.4.0]
nm -D /lib64/libharfbuzz.so.0 | grep FT_Get
                 U FT_Get_Advance
                 U FT_Get_Char_Index
                 U FT_Get_Glyph_Name
                 U FT_Get_Kerning
                 U FT_Get_MM_Var
                 U FT_Get_Name_Index
                 U FT_Get_Var_Blend_Coordinates

nm -D /lib64/libfreetype.so | grep FT_Get_Var
000000000001b4d0 T FT_Get_Var_Blend_Coordinates
000000000001b350 T FT_Get_Var_Design_Coordinates

Comment 3 Phea Duch 2017-01-07 21:48:19 UTC
$> startx

X.Org X Server 1.19.0
Release Date: 2016-11-15
X Protocol Version 11, Revision 0
Build Operating System:  4.8.10-300.fc25.x86_64 
Current Operating System: Linux XPS.local 4.10.0-0.rc2.git4.1.fc26.x86_64 #1 SMP Fri Jan 6 19:24:42 UTC 2017 x86_64
Kernel command line: BOOT_IMAGE=/vmlinuz-4.10.0-0.rc2.git4.1.fc26.x86_64 root=/dev/mapper/fedora-root ro rd.lvm.lv=fedora/root rd.md=0 rd.dm=0 rd.luks.uuid=luks-0ae4f23d-42c1-41d8-b6cc-ce1a7fbbff0c systemd.unit=multi-user.target rd.lvm.lv=fedora/swap LANG=en_US.UTF-8
Build Date: 20 December 2016  12:24:45PM
Build ID: xorg-x11-server 1.19.0-3.fc26 
Current version of pixman: 0.34.0
	Before reporting problems, check http://wiki.x.org
	to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
	(++) from command line, (!!) notice, (II) informational,
	(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/home/pd/.local/share/xorg/Xorg.0.log", Time: Sat Jan  7 16:44:16 2017
(==) Using config directory: "/etc/X11/xorg.conf.d"
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
xf86EnableIOPorts: failed to set IOPL for I/O (Operation not permitted)
/usr/libexec/gnome-session-binary: symbol lookup error: /lib64/libharfbuzz.so.0: undefined symbol: FT_Get_Var_Blend_Coordinates
xinit: connection to X server lost

waiting for X server to shut down .(II) Server terminated successfully (0). Closing log file.

Comment 4 Couret Charles-Antoine 2017-01-07 23:14:22 UTC
I have this issue with GDM and Wayland.
Impossible to display Rawhide's GDM.

So, I had a issue with Firefox about a library but I forgot the name and these issues happened after my last update (this Friday).

Comment 5 Saurabh Pradhan 2017-01-09 15:16:43 UTC
Can't login in Gnome/Kde/xfce session. Every session complains about harfbuzz.

Gnome:

/usr/libexec/gnome-session-binary: symbol lookup error: /lib64/libharfbuzz.so.0: undefined symbol: FT_Get_Var_Blend_Coordinates

KDE:

ksplashqml: symbol lookup error: /lib64/libharfbuzz.so.0: undefined symbol: FT_Get_Var_Blend_Coordinates
startkde: Starting up...
/usr/bin/kdeinit5: symbol lookup error: /lib64/libharfbuzz.so.0: undefined symbol: FT_Get_Var_Blend_Coordinates
startkde: Could not start kdeinit5. Check your installation.

Downgrading to harfbuzz-1.3.4 works.

Comment 6 Behdad Esfahbod 2017-01-10 03:45:48 UTC
This is a build issue.  When you build new HarfBuzz with new-enough FreeType, it uses the new FreeType symbol FT_Get_Var_Blend_Coordinates(); You cannot then link that against an older FreeType.  That's what the error means.  Why is it happening is beyond HarfBuzz.  That's a build configuration issue.

Comment 7 Parag Nemade 2017-01-10 03:56:15 UTC
Thank you Behdad for your quick reply.

Comment 8 Phea Duch 2017-01-11 20:02:20 UTC
Is there a fix or will programs like gnome or KDE need to be recompiled using the newest FreeType version?

Comment 9 Behdad Esfahbod 2017-01-11 20:05:24 UTC
No program needs any fix or recompiled. Just run against the same FreeType you compiled with.  Something's broken in build-runtime config.

Comment 10 stan 2017-01-15 20:10:25 UTC
I am also seeing this in rawhide.  If no program needs any fix or recompile, why is this happening?  

I think it is that the FreeType version in rawhide is too old.  When I startx to get the gui, I don't specify the FreeType version.  I presume the desktop just uses whichever version is installed in rawhide.  So, if the version of FreeType in rawhide is older than the version of FreeType harfbuzz was compiled with, this error results.

I think I should open an error against FreeType asking that it be updated to the latest version in rawhide.  What are your thoughts on that?

Comment 11 Phea Duch 2017-01-18 16:49:46 UTC
I fixed this issue by removing the 'freetype-freeworld' package that I originally installed via rpm-fusion.

Comment 12 Parag Nemade 2017-01-19 00:12:30 UTC
(In reply to stan from comment #10)
> I am also seeing this in rawhide.  If no program needs any fix or recompile,
> why is this happening?  
> 
> I think it is that the FreeType version in rawhide is too old.  When I
> startx to get the gui, I don't specify the FreeType version.  I presume the
> desktop just uses whichever version is installed in rawhide.  So, if the
> version of FreeType in rawhide is older than the version of FreeType
> harfbuzz was compiled with, this error results.
> 
> I think I should open an error against FreeType asking that it be updated to
> the latest version in rawhide.  What are your thoughts on that?

Provide the output of 
rpm -qa | grep harfbuzz
and
rpm -qa | grep freetype

Comment 13 Behdad Esfahbod 2017-01-19 00:15:09 UTC
It's clear that the problem is caused by freetype-freeworld not being new-enough.  HarfBuzz required FreeType version can be bumped to catch that perhaps.

Comment 14 stan 2017-01-19 01:08:09 UTC
@12  It's too late.  I took the advice of @11, and removed freetype-freeworld, and I then could start X without any problem.

harfbuzz-1.4.1-1.fc26.x86_64
harfbuzz-devel-1.4.1-1.fc26.x86_64
harfbuzz-icu-1.4.1-1.fc26.x86_64

freetype-2.7.1-1.fc26.x86_64
freetype-demos-2.7.1-1.fc26.x86_64
freetype-devel-2.7.1-1.fc26.x86_64
python3-freetype-1.0.2-1.fc26.noarch

This is the version of freetype-freeworld at rpmfusion. 
freetype-freeworld.x86_64                2.7-2.fc26                      rpmfusion-free-rawhide

Comment 15 Parag Nemade 2017-01-19 07:50:45 UTC
Okay. I never needed freetype-freeworld package thus I cannot reproduce this issue on my Fedora 26 machine.

Comment 16 Kevin Kofler 2017-01-19 12:29:33 UTC
This is an RPM Fusion issue:
https://bugzilla.rpmfusion.org/show_bug.cgi?id=4424

I just need to update freetype-freeworld in Rawhide to the same version as the Fedora freetype.

Comment 17 Kevin Kofler 2017-01-19 17:54:06 UTC
For the record, I did the necessary updated build in RPM Fusion now. If there are any further issues, please comment on https://bugzilla.rpmfusion.org/show_bug.cgi?id=4424 or file a new bug at bugzilla.rpmfusion.org.

Comment 18 stan 2017-01-19 18:12:14 UTC
Thank you.

Comment 19 Paolo Antinori 2017-07-17 08:45:16 UTC
I've just had the same issue, but when upgrading from Fedora 25 to Fedora 26.

The fix was to completely remove Infinality repository, to list all the "Infinality" packages I had installed and replace them with the equivalent Fedora ones.

All of them was related to fonts.

Note:

I couldn't perform the operation in 2 steps, removing first and installing after, since most of the distro packages depends on the features provided by the packages to be removed.

Comment 20 Kevin Kofler 2017-07-17 09:21:58 UTC
So the Infinality repository also needs to update its packages, please report it to them.