Skip to content

Conversation

@jonasschnelli
Copy link
Contributor

Based on (#8053) credits to @fanquake.
Includes osx toolchain bump from @theuni (#8184).

@jonasschnelli
Copy link
Contributor Author

If you compile OSX binaries over depends, you now need the MacOSX10.11.tar.gz SDK.

@sipa
Copy link
Member

sipa commented Jun 16, 2016

What advantages does 5.6.1 have over 5.5.0?

@jonasschnelli
Copy link
Contributor Author

The release notes for Qt5.6 are here: https://blog.qt.io/blog/2016/03/16/qt-5-6-released/

The reason why I'd like to see this go in before 0.13 is the missing HiDPI support for linux and windows in 5.5
(#6472).

I know, most devs don't care about HiDPI, but almost every laptops and screens sold today support HiDPI.

@jonasschnelli jonasschnelli force-pushed the 2016/06/qt_561 branch 3 times, most recently from 953349e to 6b5e9d8 Compare June 17, 2016 06:41
@jonasschnelli jonasschnelli force-pushed the 2016/06/qt_561 branch 2 times, most recently from 0f4d4cd to 737d78b Compare June 17, 2016 07:35
@laanwj
Copy link
Member

laanwj commented Jun 17, 2016

As I remember there are quite a few upstream issues solved in 5.6.1, from HiDPI to crashes and window manager integration.
We definitely need to upgrade Qt before 0.13.

@laanwj laanwj added this to the 0.13.0 milestone Jun 17, 2016
@laanwj
Copy link
Member

laanwj commented Jun 17, 2016

Why does this need the OSX toolchain bump?

@jonasschnelli
Copy link
Contributor Author

I ran into Qt compile issues (c++11 atomic issues) with MaxOSX10.9 clang compiler. Haven't tracked it down and I think a toolchain bump to 10.11 is necessary for #7770 anyways and does not affect the minimum required platform,

@laanwj
Copy link
Member

laanwj commented Jun 17, 2016

Ah sorry yes I missed the atomic thing. Makes sense.

@jonasschnelli
Copy link
Contributor Author

There are some issues which I could not already solve

Linux

Somehow it links against libdbus-1.so now and will be rejected by symbol-check.py:

qt/bitcoin-qt: NEEDED library libdbus-1.so.3 is not allowed

https://bitcoin.jonasschnelli.ch/pulls/8210/build-linux.log

MinGW

It doesn't find -lqwindows anymore:

checking for static Qt plugins: -lqwindows... no
configure: WARNING: Could not resolve: -lqwindows; bitcoin-qt frontend will not be built

https://bitcoin.jonasschnelli.ch/pulls/8210/build-win.log

OSX

Works!

b'libxcb.so.1', # part of X11
b'libfontconfig.so.1', # font support
b'libfreetype.so.6', # font parsing
b'libdbus-1.so.3', # inter process communication (notification system)
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@theuni: Is this a problem? I guess Qt links to libdbus dynamic anyways? And we disable the static library (https://github.com/bitcoin/bitcoin/blob/master/depends/packages/dbus.mk#L9).

@fanquake
Copy link
Member

One TODO you could add here is dropping dbus from the qt build.
Thanks for picking this up and putting it on top of the toolchain bump. Ill test this, and if it's merged for 0.13, I can rebase #8053 and turn it into testing a QT5.7 update, and the potential enhancements surrounding that.

@jonasschnelli
Copy link
Contributor Author

@jonasschnelli
Copy link
Contributor Author

Travis fails because of a missing file (MacOSX10.11.sdk.tar.gz) on bitcoincore.org. Must be placed there by @theuni.

@laanwj
Copy link
Member

laanwj commented Jun 18, 2016

Travis fails because of a missing file (MacOSX10.11.sdk.tar.gz) on bitcoincore.org. Must be placed there by @theuni.

Can we temporarily use a different host?

I wouldn't mind using mine, until we find a permenant solution: https://download.visucore.com/bitcoin/MacOSX10.11.sdk.tar.gz

@theuni
Copy link
Member

theuni commented Jun 18, 2016 via email

@theuni
Copy link
Member

theuni commented Jun 18, 2016 via email

@theuni
Copy link
Member

theuni commented Jun 18, 2016 via email

@laanwj
Copy link
Member

laanwj commented Jun 23, 2016

I think this probably introduced a few bugs

If anything the windows gitian executables seem to be working fine.

@maflcko
Copy link
Member

maflcko commented Jul 8, 2016

I think this probably introduced a few bugs

@theuni Did you find any bugs?

@theuni
Copy link
Member

theuni commented Jul 8, 2016

@MarcoFalke The pkg-config issue was fixed with 0c928cb. I just tested to see if the xcb issue was reintroduced, and it wasn't. So it looks like we're all good here.

@maflcko
Copy link
Member

maflcko commented Jul 10, 2016

Good to hear. Thanks for having a look.

zkbot added a commit to zcash/zcash that referenced this pull request Nov 30, 2017
Darwin build fixes

Includes fixes cherry-picked from the following upstream PRs:

- bitcoin/bitcoin#7136
  - Only the third commit (to avoid a merge conflict)
- bitcoin/bitcoin#7302
  - Excluding the first commit, which is unnecessary (we use Boost 1.62)
- bitcoin/bitcoin#7487
- bitcoin/bitcoin#7606
- bitcoin/bitcoin#7711
- bitcoin/bitcoin#7165
- bitcoin/bitcoin#8002
- bitcoin/bitcoin#8210
  - Only the second commit
- bitcoin/bitcoin#9114
zkbot added a commit to zcash/zcash that referenced this pull request Nov 30, 2017
Darwin build fixes

Includes fixes cherry-picked from the following upstream PRs:

- bitcoin/bitcoin#7136
  - Only the third commit (to avoid a merge conflict)
- bitcoin/bitcoin#7302
  - Excluding the first commit, which is unnecessary (we use Boost 1.62)
- bitcoin/bitcoin#7487
- bitcoin/bitcoin#7606
- bitcoin/bitcoin#7711
- bitcoin/bitcoin#7165
- bitcoin/bitcoin#8002
- bitcoin/bitcoin#8210
  - Only the second commit
- bitcoin/bitcoin#9114
zkbot added a commit to zcash/zcash that referenced this pull request Nov 30, 2017
Darwin build fixes

Includes fixes cherry-picked from the following upstream PRs:

- bitcoin/bitcoin#7136
  - Only the third commit (to avoid a merge conflict)
- bitcoin/bitcoin#7302
  - Excluding the first commit, which is unnecessary (we use Boost 1.62)
- bitcoin/bitcoin#7487
- bitcoin/bitcoin#7606
- bitcoin/bitcoin#7711
- bitcoin/bitcoin#7165
- bitcoin/bitcoin#8002
- bitcoin/bitcoin#8210
  - Only the second commit
- bitcoin/bitcoin#9114
codablock pushed a commit to codablock/dash that referenced this pull request Dec 28, 2017
2759597 Only pass -lQt5PlatformSupport if >=Qt5.6 (Jonas Schnelli)
59d063d Use runtime linking of QT libdbus, use custom/temp. SDK URL (Jonas Schnelli)
6194d9a Fix bitcoin_qt.m4 and fix-xcb-include-order.patch (Jonas Schnelli)
f6eb4e2 [depends] OpenSSL 1.0.1k - update config_opts (fanquake)
f25209a depends: bump OSX toolchain (Cory Fields)
andvgal pushed a commit to energicryptocurrency/gen2-energi that referenced this pull request Jan 6, 2019
2759597 Only pass -lQt5PlatformSupport if >=Qt5.6 (Jonas Schnelli)
59d063d Use runtime linking of QT libdbus, use custom/temp. SDK URL (Jonas Schnelli)
6194d9a Fix bitcoin_qt.m4 and fix-xcb-include-order.patch (Jonas Schnelli)
f6eb4e2 [depends] OpenSSL 1.0.1k - update config_opts (fanquake)
f25209a depends: bump OSX toolchain (Cory Fields)
laanwj added a commit that referenced this pull request Jul 8, 2019
e8fabd9 build: prune dbus from depends (fanquake)

Pull request description:

  Since #8210 (59d063d), we've been passing `-dbus-runtime` when configuring Qt.

  ```
  qtbase-opensource-src-5.9.7 $ ./configure -h | grep -i dbus
    -no-dbus ............. Do not build the Qt D-Bus module
    -dbus-linked ......... Build Qt D-Bus and link to libdbus-1 [auto]
    -dbus-runtime ........ Build Qt D-Bus and dynamically load libdbus-1 [no]
  ```

  This means we don't actually seem to be using the `D-Bus` we build in depends. This was pointed out by theuni at the time, [here](#7993 (comment)) and [here](#8210 (comment)), but was never followed up. dongcarl also bought it up as part of #16150.

  I've tested building and running `bitcoin-qt` using depends on Debian. Needs further testing.

ACKs for top commit:
  laanwj:
    code review ACK e8fabd9

Tree-SHA512: 164e6e52b6f97c04aef42bd185e2a157bc1a42103840f9404c5a795749f45a8c2c35f35873395a3a56398b3cd5955496b90d9c885d929b434c9bc871695abe20
sidhujag pushed a commit to syscoin/syscoin that referenced this pull request Jul 9, 2019
e8fabd9 build: prune dbus from depends (fanquake)

Pull request description:

  Since bitcoin#8210 (59d063d), we've been passing `-dbus-runtime` when configuring Qt.

  ```
  qtbase-opensource-src-5.9.7 $ ./configure -h | grep -i dbus
    -no-dbus ............. Do not build the Qt D-Bus module
    -dbus-linked ......... Build Qt D-Bus and link to libdbus-1 [auto]
    -dbus-runtime ........ Build Qt D-Bus and dynamically load libdbus-1 [no]
  ```

  This means we don't actually seem to be using the `D-Bus` we build in depends. This was pointed out by theuni at the time, [here](bitcoin#7993 (comment)) and [here](bitcoin#8210 (comment)), but was never followed up. dongcarl also bought it up as part of bitcoin#16150.

  I've tested building and running `bitcoin-qt` using depends on Debian. Needs further testing.

ACKs for top commit:
  laanwj:
    code review ACK e8fabd9

Tree-SHA512: 164e6e52b6f97c04aef42bd185e2a157bc1a42103840f9404c5a795749f45a8c2c35f35873395a3a56398b3cd5955496b90d9c885d929b434c9bc871695abe20
fanquake added a commit that referenced this pull request Dec 1, 2019
6fdf5da depends: only use dbus with qt on linux (fanquake)

Pull request description:

  Since #8210 we've been passing `-dbus-runtime` when configuring Qt, however D-Bus isn't used on macOS or Windows. So rather than blanket passing `-dbus-runtime`, only use D-Bus when building for linux, and disable it for Windows and macOS. This also saves some time building qt in depends (for windows or macOS).

  This gist contains a diff of the symbols in a macOS bitcoin-qt after applying this change: https://gist.github.com/fanquake/317e5c9c7d1b5e37a0c1ce8001af18c4.

ACKs for top commit:
  laanwj:
    ACK 6fdf5da

Tree-SHA512: 7c7df6036f27dae6adb807edf94cd26b4dafa3728976d219a68f7388b6477777b35acebd507320e4469c9f2fcf016b311c82e0b12d50546cb5ab66a1e955e464
sidhujag pushed a commit to syscoin/syscoin that referenced this pull request Dec 1, 2019
6fdf5da depends: only use dbus with qt on linux (fanquake)

Pull request description:

  Since bitcoin#8210 we've been passing `-dbus-runtime` when configuring Qt, however D-Bus isn't used on macOS or Windows. So rather than blanket passing `-dbus-runtime`, only use D-Bus when building for linux, and disable it for Windows and macOS. This also saves some time building qt in depends (for windows or macOS).

  This gist contains a diff of the symbols in a macOS bitcoin-qt after applying this change: https://gist.github.com/fanquake/317e5c9c7d1b5e37a0c1ce8001af18c4.

ACKs for top commit:
  laanwj:
    ACK 6fdf5da

Tree-SHA512: 7c7df6036f27dae6adb807edf94cd26b4dafa3728976d219a68f7388b6477777b35acebd507320e4469c9f2fcf016b311c82e0b12d50546cb5ab66a1e955e464
zkbot added a commit to zcash/zcash that referenced this pull request Dec 11, 2019
Enable macOS cross-compilation

Includes code cherry-picked from the following upstream PRs:

- bitcoin/bitcoin#7809
  - The `native_cctools` fix.
- bitcoin/bitcoin#8210
  - The macOS toolchain bump.
- bitcoin/bitcoin#9891
- bitcoin/bitcoin#15581
  - The `tar` change.
- bitcoin/bitcoin#16049
  - The `native_cctools` change.

Build instructions:
- Fetch `MacOSX10.11.sdk` from e.g. https://github.com/phracker/MacOSX-SDKs/releases
- Extract it into `depends/SDKs` (creating that folder first)
- `HOST=x86_64-apple-darwin11 ./zcutil/build.sh`
monstrobishi pushed a commit to DeFiCh/ain that referenced this pull request Sep 6, 2020
e8fabd9 build: prune dbus from depends (fanquake)

Pull request description:

  Since #8210 (59d063d), we've been passing `-dbus-runtime` when configuring Qt.

  ```
  qtbase-opensource-src-5.9.7 $ ./configure -h | grep -i dbus
    -no-dbus ............. Do not build the Qt D-Bus module
    -dbus-linked ......... Build Qt D-Bus and link to libdbus-1 [auto]
    -dbus-runtime ........ Build Qt D-Bus and dynamically load libdbus-1 [no]
  ```

  This means we don't actually seem to be using the `D-Bus` we build in depends. This was pointed out by theuni at the time, [here](bitcoin/bitcoin#7993 (comment)) and [here](bitcoin/bitcoin#8210 (comment)), but was never followed up. dongcarl also bought it up as part of #16150.

  I've tested building and running `bitcoin-qt` using depends on Debian. Needs further testing.

ACKs for top commit:
  laanwj:
    code review ACK e8fabd9

Tree-SHA512: 164e6e52b6f97c04aef42bd185e2a157bc1a42103840f9404c5a795749f45a8c2c35f35873395a3a56398b3cd5955496b90d9c885d929b434c9bc871695abe20
sidhujag pushed a commit to syscoin-core/syscoin that referenced this pull request Nov 10, 2020
6fdf5da depends: only use dbus with qt on linux (fanquake)

Pull request description:

  Since bitcoin#8210 we've been passing `-dbus-runtime` when configuring Qt, however D-Bus isn't used on macOS or Windows. So rather than blanket passing `-dbus-runtime`, only use D-Bus when building for linux, and disable it for Windows and macOS. This also saves some time building qt in depends (for windows or macOS).

  This gist contains a diff of the symbols in a macOS bitcoin-qt after applying this change: https://gist.github.com/fanquake/317e5c9c7d1b5e37a0c1ce8001af18c4.

ACKs for top commit:
  laanwj:
    ACK 6fdf5da

Tree-SHA512: 7c7df6036f27dae6adb807edf94cd26b4dafa3728976d219a68f7388b6477777b35acebd507320e4469c9f2fcf016b311c82e0b12d50546cb5ab66a1e955e464
@bitcoin bitcoin locked as resolved and limited conversation to collaborators Sep 8, 2021
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.

6 participants