Skip to content

Conversation

fanquake
Copy link
Member

@fanquake fanquake commented Nov 18, 2020

This is a requirement for C++17 support. See my comments here:

You cannot use std::get with std::variant on macOS < 10.14, because Apples libc++ doesn't support the std::bad_variant_access exception. Relevant comment in #19183.

While we could work around this in our own code, using std::get_if, this would still be a problem for 3rd-party dependencies.

I've been testing Qt 5.15LTS (we'll have to enable C++17 in qt, and may upgrade to a newer version at the same time), and you can't enable -std c++17, while targeting a macOS deployment version < 10.14, configuring will fail. They are making use of std::get with std::variant throughout their cocoa code.

We would have to had to have bumped to at least 10.13 in any case, as Qt 5.15 (#19716) requires 10.13+.

@jonasschnelli
Copy link
Contributor

macOS 10.14 was released Sept 2018. Do we really want to drop older macOSes? Also some (older) Mac Hardware can't be upgraded to 10.14.

@maflcko
Copy link
Member

maflcko commented Nov 18, 2020

No opinion on this, but it should be possible to use C++17, but postpone std::variant and qt5.15 to a later release?

@luke-jr
Copy link
Member

luke-jr commented Nov 18, 2020

macOS 10.13 is still supported and 10.13.6 was released only 6 days ago...

But, we only support the most recent LTS of major Linux distros. I see no reason the macOS equivalent wouldn't be macOS 11 (Big Sur)...

otoh, maybe the policy needs to be different for macOS due to the hardware incompatibility @jonasschnelli mentions...

@DrahtBot
Copy link
Contributor

DrahtBot commented Nov 18, 2020

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

Conflicts

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.

@maflcko
Copy link
Member

maflcko commented Nov 18, 2020

But, we only support the most recent LTS of major Linux distros. I see no reason the macOS equivalent wouldn't be macOS 11 (Big Sur)...

You keep repeating that, but I can't find where this is documented or was discussed.

@hebasto
Copy link
Member

hebasto commented Nov 18, 2020

macOS 10.13 is still supported and 10.13.6 was released only 6 days ago...

Not a release, but a security update, right?

If C++17 and macOS 10.13 cannot coexist peacefully, I Concept ACK on moving to macOS 10.14+

Owners of macOS 10.13 have two choices:

  • upgrade macOS (if hw supports it)
  • do not upgrade Bitcoin Core

@luke-jr
Copy link
Member

luke-jr commented Nov 18, 2020

@MarcoFalke That's been the case for many years. I don't recall when it was first discussed, but it likely came up around C++11 migration.

@hebasto I think there's also an option to install Linux? Also, I don't think anyone has plans to support 0.21 longer than normal...

@maflcko
Copy link
Member

maflcko commented Nov 18, 2020

@luke-jr The previous LTS of Ubuntu (18.04) is fully supported and stays that way. Dropping support for that would also drop support for the most prominent OS that all nodes run on.

@maflcko
Copy link
Member

maflcko commented Nov 18, 2020

macOS 10.13 High Sierra - End of Life Support Ending November 30, 2020

source: (unverified) https://computing.cs.cmu.edu/news/2019/eol-macos-highsierra

@sipa
Copy link
Member

sipa commented Nov 19, 2020

If macOS 10.13 will become unsupported this year, I don't think there is much of a problem with requiring 10.14 for 0.22.

@DrahtBot
Copy link
Contributor

Guix builds

File commit 50e019a
(master)
commit 32b11f9
(master and this pull)
*-aarch64-linux-gnu-debug.tar.gz b20652781029021c... 6a0fefedbe0d9e42...
*-aarch64-linux-gnu.tar.gz 1426df832200d664... eb623fc03ba82653...
*-arm-linux-gnueabihf-debug.tar.gz 1c0cb94f9fe2a52f... b973d76138f90c32...
*-arm-linux-gnueabihf.tar.gz 60fa149abc9736dc... 14f362c691200bb6...
*-riscv64-linux-gnu-debug.tar.gz fa2355cab1a62e5c... de9ccac17a4d3980...
*-riscv64-linux-gnu.tar.gz 4b8fa3b0a54529c4... 5f87608c3a36ea69...
*-win-unsigned.tar.gz d3a758455df41421... b80e68ecc1bb346a...
*-win64-debug.zip 3ec8c45128a3ddc9... 2f1d56264d507f51...
*-win64-setup-unsigned.exe f30361367efb4d02... d5a1ad9aaec5f00a...
*-win64.zip 2ad0a046505225db... 22fdb9022f365345...
*-x86_64-linux-gnu-debug.tar.gz 56a39c681e2021bc... b882641222b0a0f1...
*-x86_64-linux-gnu.tar.gz 751c7f3dc42b390f... 79b751f9443dbf0b...
*.tar.gz 67286724f3822012... 80de38150a528f5b...
guix_build.log e57e9b4b28105223... 8a77282c305fc7f7...
guix_build.log.diff ef81ec7f35e377cf...

@laanwj
Copy link
Member

laanwj commented Nov 19, 2020

Concept ACK. I don't think bumping the minimum MacOS version was ever an issue before. In contrast to Windows and Linux users, Mac users tend to be, in general, really eager for OS updates, and the life of an older version is very short.

@practicalswift
Copy link
Contributor

Concept ACK for the reasons given by @laanwj

@DrahtBot
Copy link
Contributor

Gitian builds

File commit ea79265
(master)
commit 5e2138c
(master and this pull)
bitcoin-core-linux-0.22-res.yml 0423caa8fa8b5299... 59b997373a06a261...
bitcoin-core-osx-0.22-res.yml fc128b43a2a12ef6... f7359b4db3833580...
bitcoin-core-win-0.22-res.yml a027dd331b560840... cd6a93c8a8f545ba...
*-aarch64-linux-gnu-debug.tar.gz ce172e5a3523042c... 67d6a17d9e53be43...
*-aarch64-linux-gnu.tar.gz 27e4854ccca1d8b7... bc5c67fb586b7601...
*-arm-linux-gnueabihf-debug.tar.gz 200aaa2cd078100b... a5390a1a398b252e...
*-arm-linux-gnueabihf.tar.gz 1da08fc895154529... 37a42ad0c3c6b618...
*-osx-unsigned.dmg e08113d01a1090c9... faac408248c76109...
*-osx64.tar.gz 5741bc1a101a058f... 7259073361d7a000...
*-riscv64-linux-gnu-debug.tar.gz 988f195ed500e55f... 921507ee9454fd28...
*-riscv64-linux-gnu.tar.gz 372addb74f452fe2... ec8a4bec120d2ffc...
*-win64-debug.zip f8bdc856a4903d1f... c62ea10bd14ab11b...
*-win64-setup-unsigned.exe dff18400bfa4bd2d... a3f449f1f32ca4cc...
*-win64.zip c39e31f71d6a2521... 3721628c5eada621...
*-x86_64-linux-gnu-debug.tar.gz 253dc74b0e9736cd... 2cf8cab793a67b16...
*-x86_64-linux-gnu.tar.gz a6a2b0781e6a1a4c... 22f846c41d5736f0...
*.tar.gz 2d3e596ad37878b3... 65b4a86b0a4dcf67...
linux-build.log 041e34e693ee09c9... acd9e0f5801ab46e...
osx-build.log 30ca6a28c5bb9c76... 9b69535837a952b3...
win-build.log 5bcdb3f5cf680ea0... 36bb42bbc9df0f60...
bitcoin-core-linux-0.22-res.yml.diff 01bcd440058eb755...
bitcoin-core-osx-0.22-res.yml.diff c0fc3feeb647e392...
bitcoin-core-win-0.22-res.yml.diff bb4c52362516e1f3...
linux-build.log.diff 182f3de412826332...
osx-build.log.diff 22022b9c02ddfbfa...
win-build.log.diff 2016ff3237f788a2...

Copy link
Member

@hebasto hebasto left a comment

Choose a reason for hiding this comment

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

ACK a52ecc9, I have reviewed the code and it looks OK, I agree it can be merged.

@laanwj laanwj merged commit 555b5d1 into bitcoin:master Nov 23, 2020
sidhujag pushed a commit to syscoin/syscoin that referenced this pull request Nov 23, 2020
fanquake added a commit to fanquake/core-review that referenced this pull request Nov 26, 2020
kwvg added a commit to kwvg/dash that referenced this pull request Jul 15, 2021
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Jul 15, 2021
f22a3ec build: make macOS HOST in download-osx generic (fanquake)

Pull request description:

  This was missed in bitcoin#20419, and the update before that, so just make this non-versioned so that we don't have to worry about it. This is fine, because it's just for downloading sources.

ACKs for top commit:
  RandyMcMillan:
    ACK f22a3ec
  dongcarl:
    utACK f22a3ec

Tree-SHA512: 3a6993a69594a793a5185e4ba48858443a1002a37b96ff881d39ca7719c79432b35d709bd9a9379f8046bdbeb716c5e1598f273a7e7e3f3bf528b6a807abe5ec
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Jul 16, 2021
f22a3ec build: make macOS HOST in download-osx generic (fanquake)

Pull request description:

  This was missed in bitcoin#20419, and the update before that, so just make this non-versioned so that we don't have to worry about it. This is fine, because it's just for downloading sources.

ACKs for top commit:
  RandyMcMillan:
    ACK f22a3ec
  dongcarl:
    utACK f22a3ec

Tree-SHA512: 3a6993a69594a793a5185e4ba48858443a1002a37b96ff881d39ca7719c79432b35d709bd9a9379f8046bdbeb716c5e1598f273a7e7e3f3bf528b6a807abe5ec
kwvg added a commit to kwvg/dash that referenced this pull request Jul 20, 2021
kwvg added a commit to kwvg/dash that referenced this pull request Jul 20, 2021
kwvg added a commit to kwvg/dash that referenced this pull request Jul 20, 2021
kwvg added a commit to kwvg/dash that referenced this pull request Jul 20, 2021
kwvg added a commit to kwvg/dash that referenced this pull request Aug 1, 2021
kwvg added a commit to kwvg/dash that referenced this pull request Aug 24, 2021
kwvg added a commit to kwvg/dash that referenced this pull request Aug 24, 2021
kwvg added a commit to kwvg/dash that referenced this pull request Aug 25, 2021
kwvg added a commit to kwvg/dash that referenced this pull request Aug 25, 2021
kwvg added a commit to kwvg/dash that referenced this pull request Aug 26, 2021
kwvg added a commit to kwvg/dash that referenced this pull request Aug 26, 2021
kwvg added a commit to kwvg/dash that referenced this pull request Aug 26, 2021
kwvg added a commit to kwvg/dash that referenced this pull request Aug 27, 2021
kwvg added a commit to kwvg/dash that referenced this pull request Aug 30, 2021
kwvg added a commit to kwvg/dash that referenced this pull request Sep 1, 2021
kwvg added a commit to kwvg/dash that referenced this pull request Sep 1, 2021
kwvg added a commit to kwvg/dash that referenced this pull request Sep 1, 2021
kwvg added a commit to kwvg/dash that referenced this pull request Sep 1, 2021
kwvg added a commit to kwvg/dash that referenced this pull request Sep 2, 2021
kwvg added a commit to kwvg/dash that referenced this pull request Sep 3, 2021
kwvg added a commit to kwvg/dash that referenced this pull request Sep 3, 2021
kwvg added a commit to kwvg/dash that referenced this pull request Sep 3, 2021
gades pushed a commit to cosanta/cosanta-core that referenced this pull request May 4, 2022
@bitcoin bitcoin locked as resolved and limited conversation to collaborators Aug 18, 2022
@fanquake fanquake deleted the macos_minimum_10_14 branch November 9, 2022 16:30
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.

9 participants