Qt 0.17.0rc4 (and master) not running on Ubuntu 14.04.5 LTS #14339

issue jonasschnelli openend this issue on September 27, 2018
  1. jonasschnelli commented at 8:36 am on September 27, 2018: contributor

    Not sure if this is a problem.

    Qt 0.16.3 runs successful on Ubuntu Trusty (14.04.5). However, Qt 0.17.0rc4 (and master) gives me undefined symbol: FT_Get_Font_Format:

    0.17.0rc4:

    0user@ubuntu:~/Desktop$ lsb_release -a
    1No LSB modules are available.
    2Distributor ID:	Ubuntu
    3Description:	Ubuntu 14.04.5 LTS
    4Release:	14.04
    5Codename:	trusty
    6user@ubuntu:~/Desktop$ ./bitcoin-qt --regtest
    7./bitcoin-qt: symbol lookup error: ./bitcoin-qt: undefined symbol: FT_Get_Font_Format
    
  2. jonasschnelli added this to the milestone 0.17.0 on Sep 27, 2018
  3. fanquake added the label Linux/Unix on Sep 27, 2018
  4. MarcoFalke added the label GUI on Sep 27, 2018
  5. theuni commented at 7:09 pm on September 27, 2018: member

    Could you please dump the output of ldd bitcoin-qt as well as readelf -d bitcoin-qt ?

    Looks like the Fontconfig abi might’ve changed :\

  6. jonasschnelli commented at 7:57 pm on September 27, 2018: contributor
     0user@ubuntu:~/Desktop$ ldd ./bitcoin-qt 
     1	linux-vdso.so.1 =>  (0x00007ffef759f000)
     2	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f8e3a444000)
     3	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f8e3a240000)
     4	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f8e39f3a000)
     5	libfontconfig.so.1 => /usr/lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007f8e39cfd000)
     6	libfreetype.so.6 => /usr/lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007f8e39a5a000)
     7	libX11-xcb.so.1 => /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1 (0x00007f8e39858000)
     8	libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007f8e39522000)
     9	libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f8e39303000)
    10	librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f8e390fb000)
    11	libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f8e38ee4000)
    12	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f8e38b1b000)
    13	/lib64/ld-linux-x86-64.so.2 (0x000055f422e5b000)
    14	libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007f8e388f1000)
    15	libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f8e386d7000)
    16	libpng12.so.0 => /lib/x86_64-linux-gnu/libpng12.so.0 (0x00007f8e384b1000)
    17	libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007f8e382ad000)
    18	libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f8e380a6000)
    
     0user@ubuntu:~/Desktop$ readelf -d ./bitcoin-qt 
     1
     2Dynamic section at offset 0x21e7308 contains 38 entries:
     3  Tag        Type                         Name/Value
     4 0x0000000000000001 (NEEDED)             Shared library: [libpthread.so.0]
     5 0x0000000000000001 (NEEDED)             Shared library: [libdl.so.2]
     6 0x0000000000000001 (NEEDED)             Shared library: [libm.so.6]
     7 0x0000000000000001 (NEEDED)             Shared library: [libfontconfig.so.1]
     8 0x0000000000000001 (NEEDED)             Shared library: [libfreetype.so.6]
     9 0x0000000000000001 (NEEDED)             Shared library: [libX11-xcb.so.1]
    10 0x0000000000000001 (NEEDED)             Shared library: [libX11.so.6]
    11 0x0000000000000001 (NEEDED)             Shared library: [libxcb.so.1]
    12 0x0000000000000001 (NEEDED)             Shared library: [librt.so.1]
    13 0x0000000000000001 (NEEDED)             Shared library: [libgcc_s.so.1]
    14 0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]
    15 0x0000000000000001 (NEEDED)             Shared library: [ld-linux-x86-64.so.2]
    16 0x000000000000000c (INIT)               0x144118
    17 0x000000000000000d (FINI)               0x15d8260
    18 0x0000000000000019 (INIT_ARRAY)         0x2363358
    19 0x000000000000001b (INIT_ARRAYSZ)       1464 (bytes)
    20 0x000000000000001a (FINI_ARRAY)         0x2363910
    21 0x000000000000001c (FINI_ARRAYSZ)       16 (bytes)
    22 0x000000006ffffef5 (GNU_HASH)           0x2d0
    23 0x0000000000000005 (STRTAB)             0x3e80
    24 0x0000000000000006 (SYMTAB)             0x310
    25 0x000000000000000a (STRSZ)              8630 (bytes)
    26 0x000000000000000b (SYMENT)             24 (bytes)
    27 0x0000000000000015 (DEBUG)              0x0
    28 0x0000000000000003 (PLTGOT)             0x23e75a8
    29 0x0000000000000002 (PLTRELSZ)           14544 (bytes)
    30 0x0000000000000014 (PLTREL)             RELA
    31 0x0000000000000017 (JMPREL)             0x140848
    32 0x0000000000000007 (RELA)               0x6700
    33 0x0000000000000008 (RELASZ)             1286472 (bytes)
    34 0x0000000000000009 (RELAENT)            24 (bytes)
    35 0x000000000000001e (FLAGS)              BIND_NOW
    36 0x000000006ffffffb (FLAGS_1)            Flags: NOW 8000000
    37 0x000000006ffffffe (VERNEED)            0x6530
    38 0x000000006fffffff (VERNEEDNUM)         7
    39 0x000000006ffffff0 (VERSYM)             0x6036
    40 0x000000006ffffff9 (RELACOUNT)          53576
    41 0x0000000000000000 (NULL)               0x0
    
  7. theuni commented at 9:21 pm on September 27, 2018: member

    This is an issue with qt’s usage of freetype.

    A few years ago, libfreetype introduced FT_Get_Font_Format as an alias for FT_Get_X11_Font_Format, but FT_Get_X11_Font_Format was kept for back-compat.

    Our last qt bump introduced a call to FT_Get_Font_Format. I think that if it used the old name, it would be back-compat to older runtime freetype libs. @jonasschnelli Can you give this quick (untested) hack a try?

     0diff --git a/depends/packages/qt.mk b/depends/packages/qt.mk
     1index 5286f89..d15f147 100644
     2--- a/depends/packages/qt.mk
     3+++ b/depends/packages/qt.mk
     4@@ -120,6 +120,7 @@ define $(package)_extract_cmds
     5 endef
     6
     7 define $(package)_preprocess_cmds
     8+  sed -i.old "s|FT_Get_Font_Format|FT_Get_X11_Font_Format|" qtbase/src/platformsupport/fontdatabases/freetype/qfontengine_ft.cpp && \
     9   sed -i.old "s|updateqm.commands = \$$$$\$$$$LRELEASE|updateqm.commands = $($(package)_extract_dir)/qttools/bin/lrelease|" qttranslations/translations/translations.pro && \
    10   sed -i.old "/updateqm.depends =/d" qttranslations/translations/translations.pro && \
    11   sed -i.old "s/src_plugins.depends = src_sql src_network/src_plugins.depends = src_network/" qtbase/src/src.pro && \
    
  8. fanquake commented at 12:45 pm on September 28, 2018: member

    @theuni I spun up a new 14.04.5 Ubuntu VM and cloned af4b8a3.

    Doing a depends build, and running bitcoin-qt results in the same error as @jonasschnelli (make check fails):

    14 04 5-master-depends-build

    After applying your patch and re-building, make check passes and bitcoin-qt runs:

    That’s all I tested.

  9. theuni commented at 12:51 pm on September 28, 2018: member
    @fanquake Thanks for testing! I’ll prepare a PR.
  10. laanwj closed this on Sep 29, 2018

  11. laanwj referenced this in commit c9327306b5 on Sep 29, 2018
  12. UdjinM6 referenced this in commit 276e712bf0 on Dec 17, 2020
  13. gades referenced this in commit a0de712bd6 on Jun 24, 2021
  14. CryptoCentric referenced this in commit 31c49ef0ab on Jul 2, 2021
  15. DrahtBot locked this on Sep 8, 2021
  16. gades referenced this in commit 8c486b820c on Mar 16, 2022

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2024-06-02 01:13 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me