build: packages that may be prunable from depends #16150

issue fanquake openend this issue on June 5, 2019
  1. fanquake commented at 2:56 pm on June 5, 2019: member

    Opening so that the we don’t loose this discussion from #16041, as this needs following up.

    cc @dongcarl @theuni

    In this PR we identify 4 secondary deps that should be built statically:

    • dbus
    • expat
    • libXext
    • xtrans

    However, only expat required being built --with-pic for depends builds to succeed, which is rather odd. Therefore, the rest of the deps must not be linked in, or are headers-only.

    Results of my investigation (please verify these as I might be completely wrong):

    libXext

    The only package that we declare as depending on libXext is qt, and it doesn’t actually… Tested by removing the package definition and references to it, everything seems to compile fine.

    xtrans

    It seems that xtrans is just code+headers and not a library that needs to be linked in. We can verify this by looking at the build outputs.

    Its configure is very confused as to why we supply it with --disable-{static,shared}. It is, however, required as a build-time dependency for libX11.

    dbus

    The only reference to dbus is in the configure options for qt: -dbus-runtime. Which indicates to qt to dynamically open libdbus-1 at runtime (with dlopen?). I believe this means that we don’t actually use the dbus we build. (This one I’m the least sure about)

  2. fanquake added the label Build system on Jun 5, 2019
  3. dongcarl commented at 6:53 pm on June 10, 2019: member
  4. fanquake commented at 7:01 am on July 7, 2019: member
    Opened #16352 in regards to pruning D-Bus from depends.
  5. laanwj referenced this in commit 983c84844c on Jul 8, 2019
  6. sidhujag referenced this in commit ed68cfbf17 on Jul 9, 2019
  7. dongcarl assigned dongcarl on Jul 16, 2019
  8. dongcarl commented at 2:00 pm on July 17, 2019: member

    Here’s something I found… There’s now an xorgproto package, which, along with some qt XLib disabling I’ve been working on, can allow us to eliminate xproto, xextproto, xtrans, and libX11.

    See the “provides” and “package contents” sections here: https://www.archlinux.org/packages/extra/any/xorgproto/

  9. dongcarl commented at 5:23 pm on July 17, 2019: member

    Some more digging:

    We are unable to eliminate libX11 because the qt requires libX11 headers (e.g. cursorfont.h and Xlib.h) which are not provided by xorgproto. However, because we only need libX11’s headers, we can overwrite libX11’s configure file to a minimal one that only transforms libX11’s include/Makefile.in to include/Makefile. This allows us to eliminate all of libX11’s dependencies, as we have no use for them other than for the configure to pass.

  10. fanquake referenced this in commit e6e99d4f75 on Jul 23, 2019
  11. fanquake commented at 7:10 am on July 23, 2019: member
    Going to close this now that #16408 has been merged. d-bus, libXext and xtrans have all been pruned.
  12. fanquake closed this on Jul 23, 2019

  13. xdustinface referenced this in commit ce6ddadd15 on Feb 18, 2021
  14. xdustinface referenced this in commit 086bb0bae8 on Feb 18, 2021
  15. gades referenced this in commit 4f931f3bea on Jun 25, 2021
  16. PastaPastaPasta referenced this in commit 6d6b585aff on Oct 22, 2021
  17. DrahtBot locked this on Dec 16, 2021

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-10-05 01:12 UTC

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