build: Bump Fontconfig version up to 2.12.6 #23495

pull hebasto wants to merge 1 commits into bitcoin:master from hebasto:211112-fc changing 4 files +8 −71
  1. hebasto commented at 2:54 PM on November 12, 2021: member

    This PR gets rid of remove_char_width_usage.patch.

    Some additional observations:

    1. Newer Fontconfig versions (2.13.0 and 2.13.1) introduce a new dependency, uuid, in the 7b48fd3dd406b926f0e5240b211f72197ed538a9 commit
    2. In Fonconfig 2.13.1 (the current stable) excludes the fcobjshash.h from the distributive archive (see 31269e3589e0e6432d12f55db316f4c720a090b5), that makes our gperf_header_regen.patch unusable, and requires gperf as a dependency.
  2. hebasto added the label Build system on Nov 12, 2021
  3. hebasto commented at 9:20 PM on November 12, 2021: member

    cc @theuni

  4. fanquake renamed this:
    build: Bump Fonconfig version up to 2.12.6
    build: Bump Fontconfig version up to 2.12.6
    on Nov 13, 2021
  5. DrahtBot commented at 1:42 AM on November 13, 2021: member

    <!--e57a25ab6845829454e8d69fc972939a-->

    The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

    <!--174a7506f384e20aa4161008e828411d-->

    Conflicts

    Reviewers, this pull request conflicts with the following ones:

    • #22555 (build: Fix make apk for Android w/ non-default SOURCES_PATH in depends by hebasto)
    • #22552 (build: Improve depends build system robustness by hebasto)

    If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.

  6. laanwj commented at 9:58 AM on November 21, 2021: member

    Concept ACK

    Mind that we link fontconfig dynamically to bitcoin-qt, so changing the version here might determine the minimum version that needs to be present on the user's system. From this point of view it may be preferable to keep a patch instead of bump to a newer version, and going to a newer version in the 2.12.x series is preferable to going to 2.13.

    Although I'm kind of confused here. I don't actually know how fontconfig does versioning and compatibility.

    $ readelf -d bin/bitcoin-qt | grep libfontconfig
     0x0000000000000001 (NEEDED)             Shared library: [libfontconfig.so.1]
    $ ls -al /usr/lib/x86_64-linux-gnu/libfontconfig.so.1
    lrwxrwxrwx 1 root root 23 Apr  6  2020 /usr/lib/x86_64-linux-gnu/libfontconfig.so.1 -> libfontconfig.so.1.12.0
    $ dpkg -S /usr/lib/x86_64-linux-gnu/libfontconfig.so.1
    libfontconfig1:amd64: /usr/lib/x86_64-linux-gnu/libfontconfig.so.1
    $ apt-cache show libfontconfig1
    Package: libfontconfig1
    Architecture: amd64
    Version: 2.13.1-2ubuntu3
    …
    

    It links to major version 1, which is a link 1.12 on my system, which is in package 2.13.…. Okay.

  7. hebasto commented at 10:48 AM on November 21, 2021: member

    Mind that we link fontconfig dynamically to bitcoin-qt, so changing the version here might determine the minimum version that needs to be present on the user's system. From this point of view it may be preferable to keep a patch instead of bump to a newer version, and going to a newer version in the 2.12.x series is preferable to going to 2.13.

    On master, Fontconfig 2.12.1:

    $ readelf -d src/qt/bitcoin-qt | grep libfontconfig
     0x0000000000000001 (NEEDED)             Shared library: [libfontconfig.so.1]
    

    With this PR, Fontconfig 2.12.6:

    $ readelf -d src/qt/bitcoin-qt | grep libfontconfig
     0x0000000000000001 (NEEDED)             Shared library: [libfontconfig.so.1]
    

    There are no changes.

  8. laanwj commented at 12:39 PM on November 21, 2021: member

    Yes. It seems so. Hence my concept ACK. (just mind that, the fact that it links the same library name is a requirement, but is not 100% guarantee there are no binary incompatibilities)

  9. DrahtBot added the label Needs rebase on Dec 3, 2021
  10. build: Bump Fonconfig version up to 2.12.6 6575d354c8
  11. hebasto force-pushed on Dec 3, 2021
  12. hebasto commented at 3:42 PM on December 3, 2021: member

    Rebased 9199acc10e2901a540d0482b337a1d32984c6421 -> 6575d354c8176c67c847b0e0a6cdd42800731a00 (pr23495.01 -> pr23495.02) due to the conflict with #23489.

  13. DrahtBot removed the label Needs rebase on Dec 3, 2021
  14. hebasto commented at 10:29 PM on December 3, 2021: member

    Guix builds:

    $ find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
    474c6225d9e6e65070b476cc0ad91a38529175f10abea6c9741a1ef390f67e65  guix-build-6575d354c817/output/aarch64-linux-gnu/SHA256SUMS.part
    e482bb2491d83142d83a3faa4c6d48ed7c6e74a4aec2cf63d9b43ef45e900ff6  guix-build-6575d354c817/output/aarch64-linux-gnu/bitcoin-6575d354c817-aarch64-linux-gnu-debug.tar.gz
    bc6bcff5db37c2bdc5987e442631967d1f9e42ccbf4feed6fb448b4d994ee823  guix-build-6575d354c817/output/aarch64-linux-gnu/bitcoin-6575d354c817-aarch64-linux-gnu.tar.gz
    684d3238a6caeeaeffd2de299c485921f00630ba815022a1df3312c2ea4a4655  guix-build-6575d354c817/output/arm-linux-gnueabihf/SHA256SUMS.part
    2e0a2ee3fa45dd1797dad47013b77c04ddeb584ae4bca2d6b5cadac3e30eaa9c  guix-build-6575d354c817/output/arm-linux-gnueabihf/bitcoin-6575d354c817-arm-linux-gnueabihf-debug.tar.gz
    28000e2f07b3386eb196acb7dac67ee38289befb3f4eb595a5a444dfa7febe43  guix-build-6575d354c817/output/arm-linux-gnueabihf/bitcoin-6575d354c817-arm-linux-gnueabihf.tar.gz
    024fb99ce017932b6eae675325f38046f1d98a5798fa5fd88f09bc98a5b2eb66  guix-build-6575d354c817/output/dist-archive/bitcoin-6575d354c817.tar.gz
    5b2f058d59c09aa1cdadc7b5f2ee96bc105f90e1996ca758a071a0505b975169  guix-build-6575d354c817/output/powerpc64-linux-gnu/SHA256SUMS.part
    9cfcd2f711a203d8c789e7e46d8179ccb2000a646c1e5ec42d4e86294e765a99  guix-build-6575d354c817/output/powerpc64-linux-gnu/bitcoin-6575d354c817-powerpc64-linux-gnu-debug.tar.gz
    4b9662c3d2e974551f72c711464bed9da5a6373b1644bc53f907041a76e85a8f  guix-build-6575d354c817/output/powerpc64-linux-gnu/bitcoin-6575d354c817-powerpc64-linux-gnu.tar.gz
    d8007f2455054a4a64ac59cf0820da4e0a81a5aa84fe4eb67ac7fabc279666e5  guix-build-6575d354c817/output/powerpc64le-linux-gnu/SHA256SUMS.part
    511059d4dd2c07d29ffc28ea783d658c11f90433498f3df5dac30e2851d98bef  guix-build-6575d354c817/output/powerpc64le-linux-gnu/bitcoin-6575d354c817-powerpc64le-linux-gnu-debug.tar.gz
    f5ff89b72bb4a2b9f5700afacb8251d925bc2670c5ebe5daf039e4682cfe7bc7  guix-build-6575d354c817/output/powerpc64le-linux-gnu/bitcoin-6575d354c817-powerpc64le-linux-gnu.tar.gz
    91294cefd5a482509e2cb423a52d7e36ca95511d8ecf847bb2e9ad4d4a1b31c2  guix-build-6575d354c817/output/riscv64-linux-gnu/SHA256SUMS.part
    5e05025245d148f78b742417b96ab401cc395c6ed7ae5057cc99edbb24accc74  guix-build-6575d354c817/output/riscv64-linux-gnu/bitcoin-6575d354c817-riscv64-linux-gnu-debug.tar.gz
    d57faa017014c47a87c3c3a162b8211bd242d4bb08db6c5b1e764f814f331d0b  guix-build-6575d354c817/output/riscv64-linux-gnu/bitcoin-6575d354c817-riscv64-linux-gnu.tar.gz
    966b488564b1fe2fac229fda60d3a08d18db02f83e22cc91bb1bc29c1e6f28cc  guix-build-6575d354c817/output/x86_64-apple-darwin19/SHA256SUMS.part
    d990ad4f6dc72010c2629ff17a81738797d1f13ec1b260fdf5ea96de50a54afe  guix-build-6575d354c817/output/x86_64-apple-darwin19/bitcoin-6575d354c817-osx-unsigned.dmg
    3113559412db44c7e616a819f8876963d2ff102ceeec3dea424e13ed46cd9e3f  guix-build-6575d354c817/output/x86_64-apple-darwin19/bitcoin-6575d354c817-osx-unsigned.tar.gz
    37870810e3dbf945a4edee4ade1974cc779e27e1626d1bbca730d381780e6154  guix-build-6575d354c817/output/x86_64-apple-darwin19/bitcoin-6575d354c817-osx64.tar.gz
    3635235203fd1852b04546bfabd9c29e439e90e4071f900c36aa5e0581c2c2a7  guix-build-6575d354c817/output/x86_64-linux-gnu/SHA256SUMS.part
    765022859970d9f5c8b5130229006707f9a05c7f0e6858f50db8f32a27f99798  guix-build-6575d354c817/output/x86_64-linux-gnu/bitcoin-6575d354c817-x86_64-linux-gnu-debug.tar.gz
    4d75aeca4ea15e26a4a12276ea89ac7b719dc6e72916a0aaa04b5d6e46b2a95d  guix-build-6575d354c817/output/x86_64-linux-gnu/bitcoin-6575d354c817-x86_64-linux-gnu.tar.gz
    e8fda7896052036ec1dd743e34e7dde3263ad2d0bc1dbad57ef3070460454777  guix-build-6575d354c817/output/x86_64-w64-mingw32/SHA256SUMS.part
    7c8b26e715e05a0a54b092f1eda33feb54c59dac010bc3ec6815d9a00588d9c4  guix-build-6575d354c817/output/x86_64-w64-mingw32/bitcoin-6575d354c817-win-unsigned.tar.gz
    a4419ca84e4b0b367642ed75a0c60f3f1fcc6908033cd5bc0498e30beed44a5e  guix-build-6575d354c817/output/x86_64-w64-mingw32/bitcoin-6575d354c817-win64-debug.zip
    c1d3b68945e3d60e116c45a6524d33570473bffbbb5b17e8d1963e6798b826ff  guix-build-6575d354c817/output/x86_64-w64-mingw32/bitcoin-6575d354c817-win64-setup-unsigned.exe
    9da550c946c775ace330eda3bc34f3978507c31964fbf9a88ea1730378779057  guix-build-6575d354c817/output/x86_64-w64-mingw32/bitcoin-6575d354c817-win64.zip
    
  15. fanquake approved
  16. fanquake commented at 12:51 PM on December 9, 2021: member

    ACK 6575d354c8176c67c847b0e0a6cdd42800731a00 - from the best I can determine this doesn't have any versioning / ABI implications. The ABI difference between 2.12.1 and 2.12.6 is two symbol additions, neither of which are used by Qt. Fontconfig seems to be better at maintaining backwards compatibility compared to a library like Freetype.

    Bumping this just to remove a patching step is ~0.

    Guix Build:

    bash-5.1# find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
    474c6225d9e6e65070b476cc0ad91a38529175f10abea6c9741a1ef390f67e65  guix-build-6575d354c817/output/aarch64-linux-gnu/SHA256SUMS.part
    e482bb2491d83142d83a3faa4c6d48ed7c6e74a4aec2cf63d9b43ef45e900ff6  guix-build-6575d354c817/output/aarch64-linux-gnu/bitcoin-6575d354c817-aarch64-linux-gnu-debug.tar.gz
    bc6bcff5db37c2bdc5987e442631967d1f9e42ccbf4feed6fb448b4d994ee823  guix-build-6575d354c817/output/aarch64-linux-gnu/bitcoin-6575d354c817-aarch64-linux-gnu.tar.gz
    684d3238a6caeeaeffd2de299c485921f00630ba815022a1df3312c2ea4a4655  guix-build-6575d354c817/output/arm-linux-gnueabihf/SHA256SUMS.part
    2e0a2ee3fa45dd1797dad47013b77c04ddeb584ae4bca2d6b5cadac3e30eaa9c  guix-build-6575d354c817/output/arm-linux-gnueabihf/bitcoin-6575d354c817-arm-linux-gnueabihf-debug.tar.gz
    28000e2f07b3386eb196acb7dac67ee38289befb3f4eb595a5a444dfa7febe43  guix-build-6575d354c817/output/arm-linux-gnueabihf/bitcoin-6575d354c817-arm-linux-gnueabihf.tar.gz
    024fb99ce017932b6eae675325f38046f1d98a5798fa5fd88f09bc98a5b2eb66  guix-build-6575d354c817/output/dist-archive/bitcoin-6575d354c817.tar.gz
    5b2f058d59c09aa1cdadc7b5f2ee96bc105f90e1996ca758a071a0505b975169  guix-build-6575d354c817/output/powerpc64-linux-gnu/SHA256SUMS.part
    9cfcd2f711a203d8c789e7e46d8179ccb2000a646c1e5ec42d4e86294e765a99  guix-build-6575d354c817/output/powerpc64-linux-gnu/bitcoin-6575d354c817-powerpc64-linux-gnu-debug.tar.gz
    4b9662c3d2e974551f72c711464bed9da5a6373b1644bc53f907041a76e85a8f  guix-build-6575d354c817/output/powerpc64-linux-gnu/bitcoin-6575d354c817-powerpc64-linux-gnu.tar.gz
    d8007f2455054a4a64ac59cf0820da4e0a81a5aa84fe4eb67ac7fabc279666e5  guix-build-6575d354c817/output/powerpc64le-linux-gnu/SHA256SUMS.part
    511059d4dd2c07d29ffc28ea783d658c11f90433498f3df5dac30e2851d98bef  guix-build-6575d354c817/output/powerpc64le-linux-gnu/bitcoin-6575d354c817-powerpc64le-linux-gnu-debug.tar.gz
    f5ff89b72bb4a2b9f5700afacb8251d925bc2670c5ebe5daf039e4682cfe7bc7  guix-build-6575d354c817/output/powerpc64le-linux-gnu/bitcoin-6575d354c817-powerpc64le-linux-gnu.tar.gz
    91294cefd5a482509e2cb423a52d7e36ca95511d8ecf847bb2e9ad4d4a1b31c2  guix-build-6575d354c817/output/riscv64-linux-gnu/SHA256SUMS.part
    5e05025245d148f78b742417b96ab401cc395c6ed7ae5057cc99edbb24accc74  guix-build-6575d354c817/output/riscv64-linux-gnu/bitcoin-6575d354c817-riscv64-linux-gnu-debug.tar.gz
    d57faa017014c47a87c3c3a162b8211bd242d4bb08db6c5b1e764f814f331d0b  guix-build-6575d354c817/output/riscv64-linux-gnu/bitcoin-6575d354c817-riscv64-linux-gnu.tar.gz
    966b488564b1fe2fac229fda60d3a08d18db02f83e22cc91bb1bc29c1e6f28cc  guix-build-6575d354c817/output/x86_64-apple-darwin19/SHA256SUMS.part
    d990ad4f6dc72010c2629ff17a81738797d1f13ec1b260fdf5ea96de50a54afe  guix-build-6575d354c817/output/x86_64-apple-darwin19/bitcoin-6575d354c817-osx-unsigned.dmg
    3113559412db44c7e616a819f8876963d2ff102ceeec3dea424e13ed46cd9e3f  guix-build-6575d354c817/output/x86_64-apple-darwin19/bitcoin-6575d354c817-osx-unsigned.tar.gz
    37870810e3dbf945a4edee4ade1974cc779e27e1626d1bbca730d381780e6154  guix-build-6575d354c817/output/x86_64-apple-darwin19/bitcoin-6575d354c817-osx64.tar.gz
    3635235203fd1852b04546bfabd9c29e439e90e4071f900c36aa5e0581c2c2a7  guix-build-6575d354c817/output/x86_64-linux-gnu/SHA256SUMS.part
    765022859970d9f5c8b5130229006707f9a05c7f0e6858f50db8f32a27f99798  guix-build-6575d354c817/output/x86_64-linux-gnu/bitcoin-6575d354c817-x86_64-linux-gnu-debug.tar.gz
    4d75aeca4ea15e26a4a12276ea89ac7b719dc6e72916a0aaa04b5d6e46b2a95d  guix-build-6575d354c817/output/x86_64-linux-gnu/bitcoin-6575d354c817-x86_64-linux-gnu.tar.gz
    e8fda7896052036ec1dd743e34e7dde3263ad2d0bc1dbad57ef3070460454777  guix-build-6575d354c817/output/x86_64-w64-mingw32/SHA256SUMS.part
    7c8b26e715e05a0a54b092f1eda33feb54c59dac010bc3ec6815d9a00588d9c4  guix-build-6575d354c817/output/x86_64-w64-mingw32/bitcoin-6575d354c817-win-unsigned.tar.gz
    a4419ca84e4b0b367642ed75a0c60f3f1fcc6908033cd5bc0498e30beed44a5e  guix-build-6575d354c817/output/x86_64-w64-mingw32/bitcoin-6575d354c817-win64-debug.zip
    c1d3b68945e3d60e116c45a6524d33570473bffbbb5b17e8d1963e6798b826ff  guix-build-6575d354c817/output/x86_64-w64-mingw32/bitcoin-6575d354c817-win64-setup-unsigned.exe
    9da550c946c775ace330eda3bc34f3978507c31964fbf9a88ea1730378779057  guix-build-6575d354c817/output/x86_64-w64-mingw32/bitcoin-6575d354c817-win64.zip
    
  17. fanquake merged this on Dec 9, 2021
  18. fanquake closed this on Dec 9, 2021

  19. hebasto deleted the branch on Dec 9, 2021
  20. sidhujag referenced this in commit 3069807229 on Dec 10, 2021
  21. RandyMcMillan referenced this in commit c57f974f87 on Dec 23, 2021
  22. DrahtBot locked this on Dec 9, 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: 2026-04-22 15:14 UTC

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