Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

release: require macOS 10.10+ #13617

Merged
merged 6 commits into from
Jul 25, 2018
Merged

release: require macOS 10.10+ #13617

merged 6 commits into from
Jul 25, 2018

Conversation

fanquake
Copy link
Member

@fanquake fanquake commented Jul 9, 2018

Closes #13362

d99abfddb0c8f2111340a6127e77cc686e0043d8
This workaround should no longer be required, as it should have only been in use when compiled with the 10.7 SDK, which we haven't been building with for a while now.

5bc5ae30982a0f0f6a9804b05d99434af770c724
The bugreport linked with this code is for an unrelated? issue, however from what I can tell the correct QTBUG is this one https://bugreports.qt.io/browse/QTBUG-20880. Reading though the discussion there, it seems that the way progress bars are animated changed in macOS 10.10.
Qt was patched here (5.5+):

Disable progress bar animations on 10.10 Yosemite and higher - the native style does not animate them any more. Keep the indeterminate progress bar animation.

Given all of that, I don't think this is worth keeping around, as it would seem to only be useful in the case that a macOS user is compiling with a Qt < 5.5. That should be pretty unlikely, as we don't support downloaded Qt binaries, and brew currently provides 5.11.1.

@fanquake fanquake added this to the 0.17.0 milestone Jul 9, 2018
@fanquake fanquake requested review from jonasschnelli and theuni July 9, 2018 02:54
@fanquake fanquake mentioned this pull request Jul 9, 2018
@Empact
Copy link
Contributor

Empact commented Jul 9, 2018

0f57c60 could be a scripted-diff

@practicalswift
Copy link
Contributor

Concept ACK

src/util.cpp Outdated
@@ -719,8 +719,8 @@ fs::path GetDefaultDataDir()
pathRet = fs::path("/");
else
pathRet = fs::path(pszHome);
#ifdef MAC_OSX
// Mac
#ifdef __APPLE__
Copy link
Member

Choose a reason for hiding this comment

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

Do we for sure mean "Apple" in all of these changes and not just "macOS"? This would affect iOS as well, which seems likely incorrect here. I suspect that we want to keep using MAC_OSX (which we define ourselves) so that we can differentiate later if needed.

Copy link
Contributor

Choose a reason for hiding this comment

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

Agree with @theuni

Copy link
Member Author

Choose a reason for hiding this comment

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

I've dropped this change and replaced it with a scripted-diff that converts APPLE usage to MAC_OSX.

@@ -22,7 +22,7 @@ Common `host-platform-triplets` for cross compilation are:

- `i686-w64-mingw32` for Win32
- `x86_64-w64-mingw32` for Win64
- `x86_64-apple-darwin11` for macOS
- `x86_64-apple-darwin14` for macOS
Copy link
Member

Choose a reason for hiding this comment

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

Does this change anything?

Copy link
Member Author

Choose a reason for hiding this comment

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

@theuni In the readme it's cosmetic, darwin11 refers to OS X 10.7, darwin14 should be 10.10.
However good catch, as we should also be changing this in travis.yml and gitian-osx.yml ?

Copy link
Member

Choose a reason for hiding this comment

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

Huh, how does this even compile on travis/gitian, given that support for 10.7 has been removed?

Copy link
Member

Choose a reason for hiding this comment

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

I've never seen a case where this changes anything in practice. As a test, I just had a look at gcc's configure.ac though, and it at least checks for >=10 in a few places. So I guess we should keep these in sync to be on the safe side.

Copy link
Member Author

Choose a reason for hiding this comment

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

Updated in travis.yml and gitian-osx.yml

@DrahtBot
Copy link
Contributor

DrahtBot commented Jul 9, 2018

Note to reviewers: This pull request conflicts with the following ones:

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.

Copy link
Contributor

@jonasschnelli jonasschnelli left a comment

Choose a reason for hiding this comment

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

Concept ACK.
Changes look good.
Does someone has a 10.10 build environment? I guess would be great to test on 10.9 (failcase-test) and on 10.10.

@@ -233,19 +230,7 @@ namespace GUIUtil
void mouseReleaseEvent(QMouseEvent *event);
};

#if defined(Q_OS_MAC)
Copy link
Contributor

Choose a reason for hiding this comment

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

Has someone verified that this BUG no longer appears on OSX 10.10+?

Copy link
Member Author

Choose a reason for hiding this comment

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

@jonasschnelli I haven't been able to recreate it yet, will test further though.

Copy link
Contributor

Choose a reason for hiding this comment

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

The new URL for the bug appears to be https://bugreports.qt.io/browse/QTBUG-15631 but that bug seems unrelated to the comment.

Copy link
Member Author

Choose a reason for hiding this comment

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

@kallewoof I mentioned in the PR description, from what I can tell the correct link is https://bugreports.qt.io/browse/QTBUG-20880

src/util.cpp Outdated
@@ -719,8 +719,8 @@ fs::path GetDefaultDataDir()
pathRet = fs::path("/");
else
pathRet = fs::path(pszHome);
#ifdef MAC_OSX
// Mac
#ifdef __APPLE__
Copy link
Contributor

Choose a reason for hiding this comment

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

Agree with @theuni

@fanquake fanquake force-pushed the macos-10-10 branch 2 times, most recently from eb3a568 to 8fc3d60 Compare July 11, 2018 08:13
@maflcko
Copy link
Member

maflcko commented Jul 11, 2018

Appears to time out, but builds on my travis when merged with #13634

@laanwj laanwj modified the milestone: 0.17.0 Jul 19, 2018
@fanquake fanquake changed the title [WIP] release: require macOS 10.10+ release: require macOS 10.10+ Jul 22, 2018
@fanquake
Copy link
Member Author

Rebased on master. Removed the [wip] tag. There were a couple todos left, but they aren't critical for 0.17.0, and can be done for 0.18.0 alongside PRs like #13561.

@maflcko
Copy link
Member

maflcko commented Jul 22, 2018

Should the darwin11 also be updated when make download-osx in depends?

@Sjors
Copy link
Member

Sjors commented Jul 24, 2018

tACK 5eb615c, modulo #13752 and the depends/Makefile darwin11 reference @MarcoFalke pointed out.

I also built depends, ran functional test with that, then ran regular tests without depends (see #13750). I switched GUI to Mandarin, looks nice. I didn't check if the progress bar uses CPU when disconnected.

@theuni
Copy link
Member

theuni commented Jul 24, 2018

utACK after the Makefile change.

-BEGIN VERIFY SCRIPT-
sed -i 's/__APPLE__/MAC_OSX/g' src/compat/byteswap.h src/util.cpp
-END VERIFY SCRIPT-
@fanquake
Copy link
Member Author

Added the makefile change to 26b15df

@DrahtBot
Copy link
Contributor

Gitian builds for commit 1211b15 (master):

Gitian builds for commit 217e2a1720aed4b07d19c88027a15a104c3b0de9 (master and this pull):

@kallewoof
Copy link
Contributor

utACK 3828a79

I assume the __APPLE__ define is still available, as it is still used in

#ifdef __APPLE__

@maflcko maflcko merged commit 3828a79 into bitcoin:master Jul 25, 2018
maflcko pushed a commit that referenced this pull request Jul 25, 2018
3828a79 scripted-diff: prefer MAC_OSX over __APPLE__ (fanquake)
fa6e841 gui: remove macOS ProgressBar workaround (fanquake)
68c2725 gui: remove SubstituteFonts (fanquake)
6c6dbd8 doc: mention that macOS 10.10 is now required (fanquake)
84b0cfa release: bump minimum required macOS to 10.10 (fanquake)
26b15df depends: set OSX_MIN_VERSION to 10.10 (fanquake)

Pull request description:

  Closes #13362

  d99abfddb0c8f2111340a6127e77cc686e0043d8
  This workaround should no longer be required, as it should have only been in use when compiled with the 10.7 SDK, which we haven't been building with for a while now.

  5bc5ae30982a0f0f6a9804b05d99434af770c724
  The bugreport linked with this code is for an unrelated? issue, however from what I can tell the correct QTBUG is this one https://bugreports.qt.io/browse/QTBUG-20880. Reading though the discussion there, it seems that the way progress bars are animated changed in macOS 10.10.
  Qt was patched [here (5.5+)](https://codereview.qt-project.org/#/c/112379/):
  > Disable progress bar animations on 10.10 Yosemite and higher - the native style does not animate them any more. Keep the indeterminate progress bar animation.

  Given all of that, I don't think this is worth keeping around, as it would seem to only be useful in the case that a macOS user is compiling with a Qt < 5.5. That should be pretty unlikely, as we don't support downloaded Qt binaries, and brew currently provides [5.11.1](https://github.com/Homebrew/homebrew-core/blob/571b46213c70ca1573da6d0425b0bd6df34961ee/Formula/qt.rb).

Tree-SHA512: 4278cb30cc9bcb313e166129ecf032c808995f8b51a3123637c47860a0010ac88f86f82ec44792153b6b1e5cca595f25013b2eaeae80194647b9ce4f7eaf32c1
@fanquake fanquake deleted the macos-10-10 branch August 7, 2018 04:30
@Sjors
Copy link
Member

Sjors commented Aug 28, 2018

@fanquake what was the rationale for using MAC_OSX? I can't find any documentation about it.

This (fairly old) blog post recommends a different strategy: http://nadeausoftware.com/articles/2012/01/c_c_tip_how_use_compiler_predefined_macros_detect_operating_system#OSXiOSandDarwin

zkbot added a commit to zcash/zcash that referenced this pull request Jul 30, 2020
Modernise macOS cross-compilation toolchain

Cherry-picked from the following upstream PRs:

- bitcoin/bitcoin#13617
  - Excluding the QT GUI changes.
- bitcoin/bitcoin#17550
- bitcoin/bitcoin#16392
  - Excluding the QT GUI changes.
- bitcoin/bitcoin#18589
- bitcoin/bitcoin#19240
- bitcoin/bitcoin#19407
- bitcoin/bitcoin#17919
  - Only the ancillary changes, not the `FORCE_USE_SYSTEM_CLANG` change.
- bitcoin/bitcoin#19530

After these changes, macOS versions earlier than 10.12 are no longer supported.

To cross-compile for macOS:
- Follow the instructions in `contrib/macdeploy/README.md` to generate
  `Xcode-11.3.1-11C505-extracted-SDK-with-libcxx-headers.tar.gz`
  (requires an Apple Developer Account)
- Extract it into `depends/SDKs` (creating that folder first if it does not exist)
- `HOST=x86_64-apple-darwin16 ./zcutil/build.sh`
zkbot added a commit to zcash/zcash that referenced this pull request Aug 7, 2020
Modernise macOS cross-compilation toolchain

Cherry-picked from the following upstream PRs:

- bitcoin/bitcoin#13617
  - Excluding the QT GUI changes.
- bitcoin/bitcoin#17550
- bitcoin/bitcoin#16392
  - Excluding the QT GUI changes.
- bitcoin/bitcoin#18589
- bitcoin/bitcoin#19240
- bitcoin/bitcoin#19407
- bitcoin/bitcoin#17919
  - Only the ancillary changes, not the `FORCE_USE_SYSTEM_CLANG` change.
- bitcoin/bitcoin#19530

After these changes, macOS versions earlier than 10.12 are no longer supported.

To cross-compile for macOS:
- Follow the instructions in `contrib/macdeploy/README.md` to generate
  `Xcode-11.3.1-11C505-extracted-SDK-with-libcxx-headers.tar.gz`
  (requires an Apple Developer Account)
- Extract it into `depends/SDKs` (creating that folder first if it does not exist)
- `HOST=x86_64-apple-darwin16 ./zcutil/build.sh`
UdjinM6 pushed a commit to UdjinM6/dash that referenced this pull request Dec 17, 2020
3828a79 scripted-diff: prefer MAC_OSX over __APPLE__ (fanquake)
fa6e841 gui: remove macOS ProgressBar workaround (fanquake)
68c2725 gui: remove SubstituteFonts (fanquake)
6c6dbd8 doc: mention that macOS 10.10 is now required (fanquake)
84b0cfa release: bump minimum required macOS to 10.10 (fanquake)
26b15df depends: set OSX_MIN_VERSION to 10.10 (fanquake)

Pull request description:

  Closes bitcoin#13362

  d99abfddb0c8f2111340a6127e77cc686e0043d8
  This workaround should no longer be required, as it should have only been in use when compiled with the 10.7 SDK, which we haven't been building with for a while now.

  5bc5ae30982a0f0f6a9804b05d99434af770c724
  The bugreport linked with this code is for an unrelated? issue, however from what I can tell the correct QTBUG is this one https://bugreports.qt.io/browse/QTBUG-20880. Reading though the discussion there, it seems that the way progress bars are animated changed in macOS 10.10.
  Qt was patched [here (5.5+)](https://codereview.qt-project.org/#/c/112379/):
  > Disable progress bar animations on 10.10 Yosemite and higher - the native style does not animate them any more. Keep the indeterminate progress bar animation.

  Given all of that, I don't think this is worth keeping around, as it would seem to only be useful in the case that a macOS user is compiling with a Qt < 5.5. That should be pretty unlikely, as we don't support downloaded Qt binaries, and brew currently provides [5.11.1](https://github.com/Homebrew/homebrew-core/blob/571b46213c70ca1573da6d0425b0bd6df34961ee/Formula/qt.rb).

Tree-SHA512: 4278cb30cc9bcb313e166129ecf032c808995f8b51a3123637c47860a0010ac88f86f82ec44792153b6b1e5cca595f25013b2eaeae80194647b9ce4f7eaf32c1
CryptoCentric pushed a commit to absolute-community/absolute that referenced this pull request Jul 2, 2021
3828a79 scripted-diff: prefer MAC_OSX over __APPLE__ (fanquake)
fa6e841 gui: remove macOS ProgressBar workaround (fanquake)
68c2725 gui: remove SubstituteFonts (fanquake)
6c6dbd8 doc: mention that macOS 10.10 is now required (fanquake)
84b0cfa release: bump minimum required macOS to 10.10 (fanquake)
26b15df depends: set OSX_MIN_VERSION to 10.10 (fanquake)

Pull request description:

  Closes bitcoin#13362

  d99abfddb0c8f2111340a6127e77cc686e0043d8
  This workaround should no longer be required, as it should have only 
been in use when compiled with the 10.7 SDK, which we haven't been 
building with for a while now.

  5bc5ae30982a0f0f6a9804b05d99434af770c724
  The bugreport linked with this code is for an unrelated? issue, 
however from what I can tell the correct QTBUG is this one 
https://bugreports.qt.io/browse/QTBUG-20880. Reading though the 
discussion there, it seems that the way progress bars are animated 
changed in macOS 10.10.
  Qt was patched [here 
(5.5+)](https://codereview.qt-project.org/#/c/112379/):
  > Disable progress bar animations on 10.10 Yosemite and higher - the 
native style does not animate them any more. Keep the indeterminate 
progress bar animation.

  Given all of that, I don't think this is worth keeping around, as it 
would seem to only be useful in the case that a macOS user is compiling 
with a Qt < 5.5. That should be pretty unlikely, as we don't support 
downloaded Qt binaries, and brew currently provides 
[5.11.1](https://github.com/Homebrew/homebrew-core/blob/571b46213c70ca1573da6d0425b0bd6df34961ee/Formula/qt.rb).

Tree-SHA512: 
4278cb30cc9bcb313e166129ecf032c808995f8b51a3123637c47860a0010ac88f86f82ec44792153b6b1e5cca595f25013b2eaeae80194647b9ce4f7eaf32c1
@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.

RFC: Set minimum required macOS version to 10.10
10 participants