Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-68439

Qt WebEngine does not build with documented minimal working version of freetype

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P1: Critical
    • 5.11.1
    • 5.11.0
    • WebEngine
    • None
    • centos:6.9 x86_64
    • ea28cff7524bf0409b43c8ba3ede8fe2f7022ae4

    Description

      http://doc.qt.io/qt-5/linux-requirements.html says freetype minimum working version is 2.2.0, but qtwebengine/src/3rdparty/chromium/third_party/harfbuzz-ng/src/hb-ft.cc uses FT_Reference_Face which was introduced in freetype 2.4.2.

      Building Qt (WebEngine) with -system-freetype on CentOS 6.9, which has freetype 2.3.11 results in the following build errors for me:

      FAILED: obj/third_party/harfbuzz-ng/harfbuzz_source/hb-ft.o 
      /usr/lib64/ccache/g++ -MMD -MF obj/third_party/harfbuzz-ng/harfbuzz_source/hb-ft.o.d -DHAVE_OT -DHAVE_ICU -DHAVE_ICU_BUILTIN -DHAVE_INTEL_ATOMIC
      _PRIMITIVES -DV8_DEPRECATION_WARNINGS -DUSE_UDEV -DUSE_AURA=1 -DUSE_NSS_CERTS=1 -DUSE_X11=1 -DNO_TCMALLOC -DFULL_SAFE_BROWSING -DSAFE_BROWSING_C
      SD -DSAFE_BROWSING_DB_LOCAL -DCHROMIUM_BUILD -DFIELDTRIAL_TESTING_ENABLED -DTOOLKIT_QT -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64
      _SOURCE -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 -DU_STATIC_IMPLEMENTATION -DICU_UTIL_
      DATA_IMPL=ICU_UTIL_DATA_FILE -DUCHAR_TYPE=uint16_t -Igen -I../../3rdparty/chromium -I/usr/include/freetype2 -I../../3rdparty/chromium/third_part
      y/harfbuzz-ng/src -I../../3rdparty/chromium/third_party/icu/source/common -I../../3rdparty/chromium/third_party/icu/source/i18n -fno-strict-alia
      sing --param=ssp-buffer-size=4 -fstack-protector -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -funwind-tables -fPIC -pi
      pe -pthread -m64 -O2 -fno-ident -fdata-sections -ffunction-sections -fno-omit-frame-pointer -g0 -fvisibility=hidden -Wno-unused-local-typedefs -
      Wno-maybe-uninitialized -Wno-deprecated-declarations -fno-delete-null-pointer-checks -Wno-missing-field-initializers -Wno-unused-parameter -std=
      gnu++14 -fno-delete-null-pointer-checks -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -Wno-narrowing -c ../../3rdparty/chromium/third_pa
      rty/harfbuzz-ng/src/hb-ft.cc -o obj/third_party/harfbuzz-ng/harfbuzz_source/hb-ft.o
      ../../3rdparty/chromium/third_party/harfbuzz-ng/src/hb-ft.cc: In function 'hb_face_t* hb_ft_face_create_referenced(FT_Face)':
      ../../3rdparty/chromium/third_party/harfbuzz-ng/src/hb-ft.cc:550:29: error: 'FT_Reference_Face' was not declared in this scope
         FT_Reference_Face (ft_face);
                                   ^
      ../../3rdparty/chromium/third_party/harfbuzz-ng/src/hb-ft.cc: In function 'hb_font_t* hb_ft_font_create_referenced(FT_Face)':
      ../../3rdparty/chromium/third_party/harfbuzz-ng/src/hb-ft.cc:663:29: error: 'FT_Reference_Face' was not declared in this scope
         FT_Reference_Face (ft_face);
      

      So as far as I can see the minimal working freetype version on Linux/X11 is at least 2.4.2, perhaps higher.

      Attachments

        For Gerrit Dashboard: QTBUG-68439
        # Subject Branch Project Status CR V

        Activity

          People

            kkohne Kai Köhne
            ts Thomas Sondergaard
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes