Skip to content

Conversation

hebasto
Copy link
Member

@hebasto hebasto commented Aug 23, 2020

On macOS 10.15.6 (19G2021):

% make -C depends qt
...
Project ERROR: Unknown module(s) in QT: xml
...

The same issue was reported in #14648 for macOS 10.13.6.
#18536 reports about the similar issue on ARM 32bit.

Fix #14648
Fix #18536

@DrahtBot
Copy link
Contributor

DrahtBot commented Aug 24, 2020

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

Conflicts

No conflicts as of last run.

@hebasto
Copy link
Member Author

hebasto commented Aug 27, 2020

Rebased 1f168e6 -> eb185da (pr19785.01 -> pr19785.02) due to the conflict with #19761.

@hebasto
Copy link
Member Author

hebasto commented Aug 27, 2020

@fanquake Mind reviewing this PR?

@fanquake
Copy link
Member

~0

% make -C depends qt
Project ERROR: Unknown module(s) in QT: xml

I think the issue here is more nuanced, otherwise macOS depends builds would be completely broken. I can recreate the failure (and have seen it before), but only when using a newer version of GNU make than I normally would for building. i.e I can build depends (2562d5d) using the stock macOS GNU Make 3.81 no problem. If I switch to using a brew installed GNU Make 4.3, that's when I see the same failure in qt as you:

Info: creating stash file /Users/michael/github/fanquake-bitcoin/depends/work/build/x86_64-apple-darwin19.6.0/qt/5.9.8-cecb3adcd3c/qttranslations/.qmake.stash
Info: creating stash file /Users/michael/github/fanquake-bitcoin/depends/work/build/x86_64-apple-darwin19.6.0/qt/5.9.8-cecb3adcd3c/qttools/.qmake.stash
Project ERROR: Unknown module(s) in QT: xml
gmake: *** [funcs.mk:263: /Users/michael/github/fanquake-bitcoin/depends/work/build/x86_64-apple-darwin19.6.0/qt/5.9.8-cecb3adcd3c/qtbase/.stamp_configured] Error 3
gmake: Leaving directory '/Users/michael/github/fanquake-bitcoin/depends'

So, it seems that when you're using make 3.8, lrelease doesn't need xml, and I'd like to think it's unlikely that the tool dependencies would differ dependent on the version of make being used.

Maybe there's a make related quirk somewhere in Qt that is causing it to break when using newer versions? In any case, without investigating further I'm not convinced this is required to fix the problem. Ideally it might just be something make related, and hopefully a bit less involved. Will try and have a look soon. Might also be worth testing if this also just goes away with the 5.15 bump.

@hebasto
Copy link
Member Author

hebasto commented Aug 27, 2020

FWIW, the Qt 5.9.8 code explicitly points to xml dependency:

  1. linguist/lrelease/lrelease.pro:
include(../shared/formats.pri)
include(../shared/proparser.pri
  1. linguist/shared/formats.pri:
QT *= xml

@laanwj
Copy link
Member

laanwj commented Sep 8, 2020

For the sake of keeping the Qt build as small as possible. I would really prefer a solution that doesn't require enabling xml.

This looks like an upstream issue?

@hebasto
Copy link
Member Author

hebasto commented Sep 8, 2020

This looks like an upstream issue?

I don't think so. Actually, *.ts files that are parsed by lrelease are XML files.

@fanquake
Copy link
Member

For another data point here. I've tested #19716 (updated to qt 5.15.1 but not yet pushed) with make 3.81 and make 4.3 and both build fine on macOS without any additional xml related changes. So this might be something that is just going to "fix itself".

@fanquake
Copy link
Member

fanquake commented Oct 1, 2020

I don't think we are going to go ahead with this change. This has been "broken" for some time now, and hasn't really been much of an inconvenience. As mentioned above, this will also be fixed with seemingly no additional changes when we move to qt 5.15, so I'm going to close this PR for now. I any case if we were to merge a change like this, I'd really like to know why master currently works with one version of make, and not another.

@hebasto
Copy link
Member Author

hebasto commented Apr 4, 2021

@fanquake

... I'd really like to know why master currently works with one version of make, and not another.

Hope, #21589 is an answer :)

fanquake added a commit that referenced this pull request Jul 18, 2021
1155978 build, qt: Do not install *.prl files (Hennadii Stepanov)
763793b build, qt: Fix wrong cross-compiling detection on macOS (Hennadii Stepanov)
3098272 build, qt: Force bootstrap while building linguist tools (Hennadii Stepanov)
689320e build, qt: Drop translations.pro hack (Hennadii Stepanov)
6a1f98f build, qt: Drop lrelease dependency patch (Hennadii Stepanov)
39e561e build, qt: Add linguist_tools list (Hennadii Stepanov)
27d3def build: Use Qt top-level build facilities (Hennadii Stepanov)

Pull request description:

  This PR:
  - uses Qt top-level build facilities without the need to download all-in-one archive
  - is based on **BlockMechanic**'s [idea](#20600), and is an alternative to #20600
  - makes it easy to integrate [new modules](#16883) into static builds
  - has the minimal diff
  - makes the qt package build process streamlined by dropping some patches and hacks (an alternative to  #21420 and #20642)

  Fixes #18536 (a non-intrusive alternative to #21589 and #19785).

  Fixes #14648.

  Fixes #21588 (a non-intrusive alternative to #21591).

  Required for adding [Wayland support](#19950) on Linux.

  ---

  **Note for reviewers**: With 9046de8 from #21995 it is easy to verify that there are no changes in the resulted `qt` package archive on the per commit basis. For example, for `HOST=i686-pc-linux-gnu` no commit in this PR introduces any changes.

ACKs for top commit:
  fanquake:
    ACK 1155978

Tree-SHA512: 667b06b72cb7ff26d68b9b88e8dddb51084783ca9e3d80b3392710794c1dc7fd77bbcc3ccf4ccece9919d33b9bf8fce13c5059502bd228021dc7c93fdb87ca7a
sidhujag pushed a commit to syscoin/syscoin that referenced this pull request Jul 23, 2021
1155978 build, qt: Do not install *.prl files (Hennadii Stepanov)
763793b build, qt: Fix wrong cross-compiling detection on macOS (Hennadii Stepanov)
3098272 build, qt: Force bootstrap while building linguist tools (Hennadii Stepanov)
689320e build, qt: Drop translations.pro hack (Hennadii Stepanov)
6a1f98f build, qt: Drop lrelease dependency patch (Hennadii Stepanov)
39e561e build, qt: Add linguist_tools list (Hennadii Stepanov)
27d3def build: Use Qt top-level build facilities (Hennadii Stepanov)

Pull request description:

  This PR:
  - uses Qt top-level build facilities without the need to download all-in-one archive
  - is based on **BlockMechanic**'s [idea](bitcoin#20600), and is an alternative to bitcoin#20600
  - makes it easy to integrate [new modules](bitcoin#16883) into static builds
  - has the minimal diff
  - makes the qt package build process streamlined by dropping some patches and hacks (an alternative to  bitcoin#21420 and bitcoin#20642)

  Fixes bitcoin#18536 (a non-intrusive alternative to bitcoin#21589 and bitcoin#19785).

  Fixes bitcoin#14648.

  Fixes bitcoin#21588 (a non-intrusive alternative to bitcoin#21591).

  Required for adding [Wayland support](bitcoin#19950) on Linux.

  ---

  **Note for reviewers**: With 9046de8 from bitcoin#21995 it is easy to verify that there are no changes in the resulted `qt` package archive on the per commit basis. For example, for `HOST=i686-pc-linux-gnu` no commit in this PR introduces any changes.

ACKs for top commit:
  fanquake:
    ACK 1155978

Tree-SHA512: 667b06b72cb7ff26d68b9b88e8dddb51084783ca9e3d80b3392710794c1dc7fd77bbcc3ccf4ccece9919d33b9bf8fce13c5059502bd228021dc7c93fdb87ca7a
@bitcoin bitcoin locked as resolved and limited conversation to collaborators Aug 18, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

build: Fail to build Qt in depends on ARM 32bit Problems building on MacOS via depends, without NO_QT=1
4 participants