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

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

    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.

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

    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:

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

    With this PR, Fontconfig 2.12.6:

    0$ readelf -d src/qt/bitcoin-qt | grep libfontconfig
    1 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:

     0$ find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
     1474c6225d9e6e65070b476cc0ad91a38529175f10abea6c9741a1ef390f67e65  guix-build-6575d354c817/output/aarch64-linux-gnu/SHA256SUMS.part
     2e482bb2491d83142d83a3faa4c6d48ed7c6e74a4aec2cf63d9b43ef45e900ff6  guix-build-6575d354c817/output/aarch64-linux-gnu/bitcoin-6575d354c817-aarch64-linux-gnu-debug.tar.gz
     3bc6bcff5db37c2bdc5987e442631967d1f9e42ccbf4feed6fb448b4d994ee823  guix-build-6575d354c817/output/aarch64-linux-gnu/bitcoin-6575d354c817-aarch64-linux-gnu.tar.gz
     4684d3238a6caeeaeffd2de299c485921f00630ba815022a1df3312c2ea4a4655  guix-build-6575d354c817/output/arm-linux-gnueabihf/SHA256SUMS.part
     52e0a2ee3fa45dd1797dad47013b77c04ddeb584ae4bca2d6b5cadac3e30eaa9c  guix-build-6575d354c817/output/arm-linux-gnueabihf/bitcoin-6575d354c817-arm-linux-gnueabihf-debug.tar.gz
     628000e2f07b3386eb196acb7dac67ee38289befb3f4eb595a5a444dfa7febe43  guix-build-6575d354c817/output/arm-linux-gnueabihf/bitcoin-6575d354c817-arm-linux-gnueabihf.tar.gz
     7024fb99ce017932b6eae675325f38046f1d98a5798fa5fd88f09bc98a5b2eb66  guix-build-6575d354c817/output/dist-archive/bitcoin-6575d354c817.tar.gz
     85b2f058d59c09aa1cdadc7b5f2ee96bc105f90e1996ca758a071a0505b975169  guix-build-6575d354c817/output/powerpc64-linux-gnu/SHA256SUMS.part
     99cfcd2f711a203d8c789e7e46d8179ccb2000a646c1e5ec42d4e86294e765a99  guix-build-6575d354c817/output/powerpc64-linux-gnu/bitcoin-6575d354c817-powerpc64-linux-gnu-debug.tar.gz
    104b9662c3d2e974551f72c711464bed9da5a6373b1644bc53f907041a76e85a8f  guix-build-6575d354c817/output/powerpc64-linux-gnu/bitcoin-6575d354c817-powerpc64-linux-gnu.tar.gz
    11d8007f2455054a4a64ac59cf0820da4e0a81a5aa84fe4eb67ac7fabc279666e5  guix-build-6575d354c817/output/powerpc64le-linux-gnu/SHA256SUMS.part
    12511059d4dd2c07d29ffc28ea783d658c11f90433498f3df5dac30e2851d98bef  guix-build-6575d354c817/output/powerpc64le-linux-gnu/bitcoin-6575d354c817-powerpc64le-linux-gnu-debug.tar.gz
    13f5ff89b72bb4a2b9f5700afacb8251d925bc2670c5ebe5daf039e4682cfe7bc7  guix-build-6575d354c817/output/powerpc64le-linux-gnu/bitcoin-6575d354c817-powerpc64le-linux-gnu.tar.gz
    1491294cefd5a482509e2cb423a52d7e36ca95511d8ecf847bb2e9ad4d4a1b31c2  guix-build-6575d354c817/output/riscv64-linux-gnu/SHA256SUMS.part
    155e05025245d148f78b742417b96ab401cc395c6ed7ae5057cc99edbb24accc74  guix-build-6575d354c817/output/riscv64-linux-gnu/bitcoin-6575d354c817-riscv64-linux-gnu-debug.tar.gz
    16d57faa017014c47a87c3c3a162b8211bd242d4bb08db6c5b1e764f814f331d0b  guix-build-6575d354c817/output/riscv64-linux-gnu/bitcoin-6575d354c817-riscv64-linux-gnu.tar.gz
    17966b488564b1fe2fac229fda60d3a08d18db02f83e22cc91bb1bc29c1e6f28cc  guix-build-6575d354c817/output/x86_64-apple-darwin19/SHA256SUMS.part
    18d990ad4f6dc72010c2629ff17a81738797d1f13ec1b260fdf5ea96de50a54afe  guix-build-6575d354c817/output/x86_64-apple-darwin19/bitcoin-6575d354c817-osx-unsigned.dmg
    193113559412db44c7e616a819f8876963d2ff102ceeec3dea424e13ed46cd9e3f  guix-build-6575d354c817/output/x86_64-apple-darwin19/bitcoin-6575d354c817-osx-unsigned.tar.gz
    2037870810e3dbf945a4edee4ade1974cc779e27e1626d1bbca730d381780e6154  guix-build-6575d354c817/output/x86_64-apple-darwin19/bitcoin-6575d354c817-osx64.tar.gz
    213635235203fd1852b04546bfabd9c29e439e90e4071f900c36aa5e0581c2c2a7  guix-build-6575d354c817/output/x86_64-linux-gnu/SHA256SUMS.part
    22765022859970d9f5c8b5130229006707f9a05c7f0e6858f50db8f32a27f99798  guix-build-6575d354c817/output/x86_64-linux-gnu/bitcoin-6575d354c817-x86_64-linux-gnu-debug.tar.gz
    234d75aeca4ea15e26a4a12276ea89ac7b719dc6e72916a0aaa04b5d6e46b2a95d  guix-build-6575d354c817/output/x86_64-linux-gnu/bitcoin-6575d354c817-x86_64-linux-gnu.tar.gz
    24e8fda7896052036ec1dd743e34e7dde3263ad2d0bc1dbad57ef3070460454777  guix-build-6575d354c817/output/x86_64-w64-mingw32/SHA256SUMS.part
    257c8b26e715e05a0a54b092f1eda33feb54c59dac010bc3ec6815d9a00588d9c4  guix-build-6575d354c817/output/x86_64-w64-mingw32/bitcoin-6575d354c817-win-unsigned.tar.gz
    26a4419ca84e4b0b367642ed75a0c60f3f1fcc6908033cd5bc0498e30beed44a5e  guix-build-6575d354c817/output/x86_64-w64-mingw32/bitcoin-6575d354c817-win64-debug.zip
    27c1d3b68945e3d60e116c45a6524d33570473bffbbb5b17e8d1963e6798b826ff  guix-build-6575d354c817/output/x86_64-w64-mingw32/bitcoin-6575d354c817-win64-setup-unsigned.exe
    289da550c946c775ace330eda3bc34f3978507c31964fbf9a88ea1730378779057  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:

     0bash-5.1# find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
     1474c6225d9e6e65070b476cc0ad91a38529175f10abea6c9741a1ef390f67e65  guix-build-6575d354c817/output/aarch64-linux-gnu/SHA256SUMS.part
     2e482bb2491d83142d83a3faa4c6d48ed7c6e74a4aec2cf63d9b43ef45e900ff6  guix-build-6575d354c817/output/aarch64-linux-gnu/bitcoin-6575d354c817-aarch64-linux-gnu-debug.tar.gz
     3bc6bcff5db37c2bdc5987e442631967d1f9e42ccbf4feed6fb448b4d994ee823  guix-build-6575d354c817/output/aarch64-linux-gnu/bitcoin-6575d354c817-aarch64-linux-gnu.tar.gz
     4684d3238a6caeeaeffd2de299c485921f00630ba815022a1df3312c2ea4a4655  guix-build-6575d354c817/output/arm-linux-gnueabihf/SHA256SUMS.part
     52e0a2ee3fa45dd1797dad47013b77c04ddeb584ae4bca2d6b5cadac3e30eaa9c  guix-build-6575d354c817/output/arm-linux-gnueabihf/bitcoin-6575d354c817-arm-linux-gnueabihf-debug.tar.gz
     628000e2f07b3386eb196acb7dac67ee38289befb3f4eb595a5a444dfa7febe43  guix-build-6575d354c817/output/arm-linux-gnueabihf/bitcoin-6575d354c817-arm-linux-gnueabihf.tar.gz
     7024fb99ce017932b6eae675325f38046f1d98a5798fa5fd88f09bc98a5b2eb66  guix-build-6575d354c817/output/dist-archive/bitcoin-6575d354c817.tar.gz
     85b2f058d59c09aa1cdadc7b5f2ee96bc105f90e1996ca758a071a0505b975169  guix-build-6575d354c817/output/powerpc64-linux-gnu/SHA256SUMS.part
     99cfcd2f711a203d8c789e7e46d8179ccb2000a646c1e5ec42d4e86294e765a99  guix-build-6575d354c817/output/powerpc64-linux-gnu/bitcoin-6575d354c817-powerpc64-linux-gnu-debug.tar.gz
    104b9662c3d2e974551f72c711464bed9da5a6373b1644bc53f907041a76e85a8f  guix-build-6575d354c817/output/powerpc64-linux-gnu/bitcoin-6575d354c817-powerpc64-linux-gnu.tar.gz
    11d8007f2455054a4a64ac59cf0820da4e0a81a5aa84fe4eb67ac7fabc279666e5  guix-build-6575d354c817/output/powerpc64le-linux-gnu/SHA256SUMS.part
    12511059d4dd2c07d29ffc28ea783d658c11f90433498f3df5dac30e2851d98bef  guix-build-6575d354c817/output/powerpc64le-linux-gnu/bitcoin-6575d354c817-powerpc64le-linux-gnu-debug.tar.gz
    13f5ff89b72bb4a2b9f5700afacb8251d925bc2670c5ebe5daf039e4682cfe7bc7  guix-build-6575d354c817/output/powerpc64le-linux-gnu/bitcoin-6575d354c817-powerpc64le-linux-gnu.tar.gz
    1491294cefd5a482509e2cb423a52d7e36ca95511d8ecf847bb2e9ad4d4a1b31c2  guix-build-6575d354c817/output/riscv64-linux-gnu/SHA256SUMS.part
    155e05025245d148f78b742417b96ab401cc395c6ed7ae5057cc99edbb24accc74  guix-build-6575d354c817/output/riscv64-linux-gnu/bitcoin-6575d354c817-riscv64-linux-gnu-debug.tar.gz
    16d57faa017014c47a87c3c3a162b8211bd242d4bb08db6c5b1e764f814f331d0b  guix-build-6575d354c817/output/riscv64-linux-gnu/bitcoin-6575d354c817-riscv64-linux-gnu.tar.gz
    17966b488564b1fe2fac229fda60d3a08d18db02f83e22cc91bb1bc29c1e6f28cc  guix-build-6575d354c817/output/x86_64-apple-darwin19/SHA256SUMS.part
    18d990ad4f6dc72010c2629ff17a81738797d1f13ec1b260fdf5ea96de50a54afe  guix-build-6575d354c817/output/x86_64-apple-darwin19/bitcoin-6575d354c817-osx-unsigned.dmg
    193113559412db44c7e616a819f8876963d2ff102ceeec3dea424e13ed46cd9e3f  guix-build-6575d354c817/output/x86_64-apple-darwin19/bitcoin-6575d354c817-osx-unsigned.tar.gz
    2037870810e3dbf945a4edee4ade1974cc779e27e1626d1bbca730d381780e6154  guix-build-6575d354c817/output/x86_64-apple-darwin19/bitcoin-6575d354c817-osx64.tar.gz
    213635235203fd1852b04546bfabd9c29e439e90e4071f900c36aa5e0581c2c2a7  guix-build-6575d354c817/output/x86_64-linux-gnu/SHA256SUMS.part
    22765022859970d9f5c8b5130229006707f9a05c7f0e6858f50db8f32a27f99798  guix-build-6575d354c817/output/x86_64-linux-gnu/bitcoin-6575d354c817-x86_64-linux-gnu-debug.tar.gz
    234d75aeca4ea15e26a4a12276ea89ac7b719dc6e72916a0aaa04b5d6e46b2a95d  guix-build-6575d354c817/output/x86_64-linux-gnu/bitcoin-6575d354c817-x86_64-linux-gnu.tar.gz
    24e8fda7896052036ec1dd743e34e7dde3263ad2d0bc1dbad57ef3070460454777  guix-build-6575d354c817/output/x86_64-w64-mingw32/SHA256SUMS.part
    257c8b26e715e05a0a54b092f1eda33feb54c59dac010bc3ec6815d9a00588d9c4  guix-build-6575d354c817/output/x86_64-w64-mingw32/bitcoin-6575d354c817-win-unsigned.tar.gz
    26a4419ca84e4b0b367642ed75a0c60f3f1fcc6908033cd5bc0498e30beed44a5e  guix-build-6575d354c817/output/x86_64-w64-mingw32/bitcoin-6575d354c817-win64-debug.zip
    27c1d3b68945e3d60e116c45a6524d33570473bffbbb5b17e8d1963e6798b826ff  guix-build-6575d354c817/output/x86_64-w64-mingw32/bitcoin-6575d354c817-win64-setup-unsigned.exe
    289da550c946c775ace330eda3bc34f3978507c31964fbf9a88ea1730378779057  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: 2024-11-23 09:12 UTC

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