Page MenuHomePhabricator

build: mac deployment unification
ClosedPublic

Authored by PiRK on May 30 2023, 13:21.

Details

Reviewers
Fabien
Group Reviewers
Restricted Project
Commits
rABC13056d3c0ea7: build: mac deployment unification
Summary

core#20333

depends: native_ds_store 1.3.0

native_ds_store now takes advantage of Pythons ability to decode binary
plists (since 3.4), so we can drop its biplist dependency.

The call to biplist.Data() in custom_dsstore doesn't seem to do anything,
and from what I can tell can just be removed.


core#20422

build: automatically determine macOS translations

Rather than using OSX_QT_TRANSLATIONS which must be manually updated,
and we forget to update anyway, i.e: #19059, automatically find and copy
available translations from the translations directory.

macdeploy: remove codesigning argument

macdeploy: remove add-resources argument

macdeploy: have a single level of logging output

4 different levels of verbosity is overkill for a fairly simple script, which
was always being run at 2 in any case.

macdeploy: assume plistlib is available

We already require Python 3.5 or later

macdeploy: consolidate .DS_Store generation

Rather than two lots of logic doing roughly the same thing, dependent on if
you're compiling on Linux or macOS, combine the .DS store generation into
macdeployqtplus.

This also removes the -fancy and -volname options.

macdeploy: move qt_conf to where it's used

macdeploy: remove existing Bitcoin-ABC.dmg if present

macdeploy: remove runHDIUtil in favor of directly calling subprocess.run

macdeploy: use Python 3.6 f-strings

build: mac_alias 2.1.1

This is a backport of core#20422 and core#20333

Test Plan

gitian-osx build-osx

Diff Detail

Repository
rABC Bitcoin ABC
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

PiRK requested review of this revision.May 30 2023, 13:21

Tail of the build log:

/work/depends/x86_64-apple-darwin19/native/bin/x86_64-apple-darwin19-ranlib: file: src/qt/libbitcoin-qt-base.a(mocs_compilation.cpp.o) has no symbols
[812/838] Automatic MOC for target bitcoin-qt
[813/838] Building CXX object src/qt/CMakeFiles/bitcoin-qt.dir/bitcoin-qt_autogen/mocs_compilation.cpp.o
[814/838] Building CXX object src/qt/CMakeFiles/bitcoin-qt.dir/main.cpp.o
[815/838] Building CXX object src/qt/CMakeFiles/bitcoin-qt.dir/__/__/depends/x86_64-apple-darwin19/lib/cmake/Qt5Gui/Qt5Gui_QMinimalIntegrationPlugin_Import.cpp.o
[816/838] Building CXX object src/qt/CMakeFiles/bitcoin-qt.dir/__/__/depends/x86_64-apple-darwin19/lib/cmake/Qt5Gui/Qt5Gui_QCocoaIntegrationPlugin_Import.cpp.o
[817/838] Building CXX object src/qt/CMakeFiles/bitcoin-qt.dir/__/__/depends/x86_64-apple-darwin19/lib/cmake/Qt5Widgets/Qt5Widgets_QMacStylePlugin_Import.cpp.o
[818/838] Automatic MOC for target test_bitcoin-qt
[819/838] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/util.cpp.o
[820/838] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/bitcoinaddressvalidatortests.cpp.o
[821/838] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/compattests.cpp.o
[822/838] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/__/__/__/depends/x86_64-apple-darwin19/lib/cmake/Qt5Gui/Qt5Gui_QMinimalIntegrationPlugin_Import.cpp.o
[823/838] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/guiutiltests.cpp.o
[824/838] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/uritests.cpp.o
[825/838] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/__/__/__/depends/x86_64-apple-darwin19/lib/cmake/Qt5Gui/Qt5Gui_QCocoaIntegrationPlugin_Import.cpp.o
[826/838] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/apptests.cpp.o
[827/838] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/rpcnestedtests.cpp.o
[828/838] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/__/__/__/depends/x86_64-apple-darwin19/lib/cmake/Qt5Widgets/Qt5Widgets_QMacStylePlugin_Import.cpp.o
[829/838] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/test_main.cpp.o
[830/838] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/__/__/wallet/test/wallet_test_fixture.cpp.o
[831/838] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/addressbooktests.cpp.o
[832/838] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/wallettests.cpp.o
[833/838] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/paymentservertests.cpp.o
[834/838] Linking CXX executable src/qt/BitcoinABC-Qt.app/Contents/MacOS/BitcoinABC-Qt
ld: warning: direct access in function 'payments::X509Certificates::_InternalParse(char const*, google::protobuf::internal::ParseContext*)' from file 'src/qt/libbitcoin-qt-base.a(paymentrequest.pb.cc.o)' to global weak symbol 'void google::protobuf::internal::arena_destruct_object<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(void*)' from file '../../depends/x86_64-apple-darwin19/lib/libprotobuf.a(arenastring.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'payments::Payment::_InternalParse(char const*, google::protobuf::internal::ParseContext*)' from file 'src/qt/libbitcoin-qt-base.a(paymentrequest.pb.cc.o)' to global weak symbol 'void google::protobuf::internal::arena_destruct_object<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(void*)' from file '../../depends/x86_64-apple-darwin19/lib/libprotobuf.a(arenastring.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'PaymentServer::fetchPaymentACK(interfaces::Wallet&, SendCoinsRecipient const&, QByteArray)' from file 'src/qt/libbitcoin-qt-base.a(paymentserver.cpp.o)' to global weak symbol 'void google::protobuf::internal::arena_destruct_object<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(void*)' from file '../../depends/x86_64-apple-darwin19/lib/libprotobuf.a(arenastring.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
[834/838] Install the project...
-- Install configuration: "RelWithDebInfo"
-- Installing: /results/artifacts/lib/libbitcoinconsensus.0.27.6.dylib
-- Installing: /results/artifacts/lib/libbitcoinconsensus.0.dylib
-- Installing: /results/artifacts/lib/libbitcoinconsensus.dylib
-- Installing: /results/artifacts/include/bitcoinconsensus.h
-- Installing: /results/artifacts/bin/bitcoin-wallet
-- Installing: /results/artifacts/bin/bitcoin-seeder
-- Installing: /results/artifacts/bin/bitcoin-cli
-- Installing: /results/artifacts/bin/bitcoin-tx
-- Installing: /results/artifacts/bin/bitcoind
-- Installing: /results/artifacts/bin/BitcoinABC-Qt.app
-- Installing: /results/artifacts/bin/BitcoinABC-Qt.app/Contents
-- Installing: /results/artifacts/bin/BitcoinABC-Qt.app/Contents/Resources
-- Installing: /results/artifacts/bin/BitcoinABC-Qt.app/Contents/Resources/bitcoin.icns
-- Installing: /results/artifacts/bin/BitcoinABC-Qt.app/Contents/Resources/empty.lproj
-- Installing: /results/artifacts/bin/BitcoinABC-Qt.app/Contents/Resources/Base.lproj
-- Installing: /results/artifacts/bin/BitcoinABC-Qt.app/Contents/Resources/Base.lproj/InfoPlist.strings
-- Installing: /results/artifacts/bin/BitcoinABC-Qt.app/Contents/Resources/Base.lproj/InfoPlist.strings/InfoPlist.strings
-- Installing: /results/artifacts/bin/BitcoinABC-Qt.app/Contents/Info.plist
-- Installing: /results/artifacts/bin/BitcoinABC-Qt.app/Contents/MacOS
-- Installing: /results/artifacts/bin/BitcoinABC-Qt.app/Contents/MacOS/BitcoinABC-Qt
[836/838] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/test_bitcoin-qt_autogen/mocs_compilation.cpp.o
[837/838] Linking CXX executable src/qt/test/test_bitcoin-qt
ld: warning: direct access in function 'payments::X509Certificates::_InternalParse(char const*, google::protobuf::internal::ParseContext*)' from file 'src/qt/libbitcoin-qt-base.a(paymentrequest.pb.cc.o)' to global weak symbol 'void google::protobuf::internal::arena_destruct_object<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(void*)' from file '../../depends/x86_64-apple-darwin19/lib/libprotobuf.a(repeated_field.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'payments::Payment::_InternalParse(char const*, google::protobuf::internal::ParseContext*)' from file 'src/qt/libbitcoin-qt-base.a(paymentrequest.pb.cc.o)' to global weak symbol 'void google::protobuf::internal::arena_destruct_object<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(void*)' from file '../../depends/x86_64-apple-darwin19/lib/libprotobuf.a(repeated_field.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'PaymentServer::fetchPaymentACK(interfaces::Wallet&, SendCoinsRecipient const&, QByteArray)' from file 'src/qt/libbitcoin-qt-base.a(paymentserver.cpp.o)' to global weak symbol 'void google::protobuf::internal::arena_destruct_object<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(void*)' from file '../../depends/x86_64-apple-darwin19/lib/libprotobuf.a(repeated_field.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
[838/838] Installing component bitcoin-qt-test_bitcoin-qt
-- Install configuration: "RelWithDebInfo"
-- Install component: "bitcoin-qt-test_bitcoin-qt"
-- Installing: /results/artifacts/bin/test_bitcoin-qt
ninja: error: 'dist/.DS_Store', needed by 'src/qt/CMakeFiles/osx-deploydir', missing and no known rule to make it
Build build-osx failed with exit code 1

Tail of the build log:

 * [new tag]             phabricator/diff/40375 -> phabricator/diff/40375
 * [new tag]             phabricator/diff/40377 -> phabricator/diff/40377
 * [new tag]             phabricator/diff/40379 -> phabricator/diff/40379
 * [new tag]             phabricator/diff/40380 -> phabricator/diff/40380
 * [new tag]             phabricator/diff/40382 -> phabricator/diff/40382
 * [new tag]             phabricator/diff/40388 -> phabricator/diff/40388
 * [new tag]             phabricator/diff/40400 -> phabricator/diff/40400
 * [new tag]             phabricator/diff/40401 -> phabricator/diff/40401
 * [new tag]             phabricator/diff/40402 -> phabricator/diff/40402
 * [new tag]             phabricator/diff/40404 -> phabricator/diff/40404
 * [new tag]             phabricator/diff/40405 -> phabricator/diff/40405
 * [new tag]             phabricator/diff/40406 -> phabricator/diff/40406
 * [new tag]             phabricator/diff/40408 -> phabricator/diff/40408
 * [new tag]             phabricator/diff/40409 -> phabricator/diff/40409
 * [new tag]             phabricator/diff/40419 -> phabricator/diff/40419
 * [new tag]             phabricator/diff/40422 -> phabricator/diff/40422
 * [new tag]             phabricator/diff/40423 -> phabricator/diff/40423
 * [new tag]             phabricator/diff/40428 -> phabricator/diff/40428
 * [new tag]             phabricator/diff/40433 -> phabricator/diff/40433
 * [new tag]             phabricator/diff/40447 -> phabricator/diff/40447
 * [new tag]             phabricator/diff/40450 -> phabricator/diff/40450
 * [new tag]             phabricator/diff/40451 -> phabricator/diff/40451
 * [new tag]             phabricator/diff/40461 -> phabricator/diff/40461
 * [new tag]             phabricator/diff/40463 -> phabricator/diff/40463
 * [new tag]             phabricator/diff/40467 -> phabricator/diff/40467
 * [new tag]             phabricator/diff/40469 -> phabricator/diff/40469
 * [new tag]             phabricator/diff/40474 -> phabricator/diff/40474
 * [new tag]             phabricator/diff/40476 -> phabricator/diff/40476
 * [new tag]             phabricator/diff/40477 -> phabricator/diff/40477
 * [new tag]             phabricator/diff/40478 -> phabricator/diff/40478
 * [new tag]             phabricator/diff/40479 -> phabricator/diff/40479
 * [new tag]             phabricator/diff/40480 -> phabricator/diff/40480
 * [new tag]             phabricator/diff/40482 -> phabricator/diff/40482
 * [new tag]             phabricator/diff/40486 -> phabricator/diff/40486
 * [new tag]             phabricator/diff/40489 -> phabricator/diff/40489
 * [new tag]             phabricator/diff/8992  -> phabricator/diff/8992
 * [new tag]             phabricator/diff/8993  -> phabricator/diff/8993
 * [new branch]          master                 -> master
--- Building for bullseye amd64 ---
Stopping target if it is up
Error response from daemon: No such container: gitian-target
Error: No such container: gitian-target
Making a new image copy
Starting target
Checking if target is up.
Preparing build environment
Updating apt-get repository (log in var/install.log)
Installing additional packages (log in var/install.log)
Upgrading system, may take a while (log in var/install.log)
Creating package manifest
Creating build script (var/build-script)
Running build script (log in var/build.log)
./bin/gbuild:23:in `system!': failed to run on-target setarch x86_64 bash -x < var/build-script > var/build.log 2>&1 (RuntimeError)
	from ./bin/gbuild:185:in `build_one_configuration'
	from ./bin/gbuild:339:in `block (2 levels) in <main>'
	from ./bin/gbuild:334:in `each'
	from ./bin/gbuild:334:in `block in <main>'
	from ./bin/gbuild:332:in `each'
	from ./bin/gbuild:332:in `<main>'
Build gitian-osx failed with exit code 1
Fabien requested changes to this revision.May 30 2023, 17:45
Fabien added a subscriber: Fabien.

back to your queue

This revision now requires changes to proceed.May 30 2023, 17:45

OSX_VOLNAME needs to be defined earlier now

Tail of the build log:

/work/depends/x86_64-apple-darwin/native/bin/x86_64-apple-darwin-ranlib: file: src/qt/libbitcoin-qt-base.a(mocs_compilation.cpp.o) has no symbols
[812/838] Automatic MOC for target bitcoin-qt
[813/838] Building CXX object src/qt/CMakeFiles/bitcoin-qt.dir/bitcoin-qt_autogen/mocs_compilation.cpp.o
[814/838] Building CXX object src/qt/CMakeFiles/bitcoin-qt.dir/__/__/depends/x86_64-apple-darwin/lib/cmake/Qt5Gui/Qt5Gui_QCocoaIntegrationPlugin_Import.cpp.o
[815/838] Building CXX object src/qt/CMakeFiles/bitcoin-qt.dir/__/__/depends/x86_64-apple-darwin/lib/cmake/Qt5Gui/Qt5Gui_QMinimalIntegrationPlugin_Import.cpp.o
[816/838] Building CXX object src/qt/CMakeFiles/bitcoin-qt.dir/__/__/depends/x86_64-apple-darwin/lib/cmake/Qt5Widgets/Qt5Widgets_QMacStylePlugin_Import.cpp.o
[817/838] Automatic MOC for target test_bitcoin-qt
[818/838] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/util.cpp.o
[819/838] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/bitcoinaddressvalidatortests.cpp.o
[820/838] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/compattests.cpp.o
[821/838] Building CXX object src/qt/CMakeFiles/bitcoin-qt.dir/main.cpp.o
[822/838] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/__/__/__/depends/x86_64-apple-darwin/lib/cmake/Qt5Gui/Qt5Gui_QMinimalIntegrationPlugin_Import.cpp.o
[823/838] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/guiutiltests.cpp.o
[824/838] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/__/__/__/depends/x86_64-apple-darwin/lib/cmake/Qt5Gui/Qt5Gui_QCocoaIntegrationPlugin_Import.cpp.o
[825/838] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/__/__/__/depends/x86_64-apple-darwin/lib/cmake/Qt5Widgets/Qt5Widgets_QMacStylePlugin_Import.cpp.o
[826/838] Linking CXX executable src/qt/BitcoinABC-Qt.app/Contents/MacOS/BitcoinABC-Qt
ld: warning: direct access in function 'payments::X509Certificates::_InternalParse(char const*, google::protobuf::internal::ParseContext*)' from file 'src/qt/libbitcoin-qt-base.a(paymentrequest.pb.cc.o)' to global weak symbol 'void google::protobuf::internal::arena_destruct_object<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(void*)' from file '../../depends/x86_64-apple-darwin/lib/libprotobuf.a(arenastring.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'payments::Payment::_InternalParse(char const*, google::protobuf::internal::ParseContext*)' from file 'src/qt/libbitcoin-qt-base.a(paymentrequest.pb.cc.o)' to global weak symbol 'void google::protobuf::internal::arena_destruct_object<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(void*)' from file '../../depends/x86_64-apple-darwin/lib/libprotobuf.a(arenastring.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'PaymentServer::fetchPaymentACK(interfaces::Wallet&, SendCoinsRecipient const&, QByteArray)' from file 'src/qt/libbitcoin-qt-base.a(paymentserver.cpp.o)' to global weak symbol 'void google::protobuf::internal::arena_destruct_object<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(void*)' from file '../../depends/x86_64-apple-darwin/lib/libprotobuf.a(arenastring.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
[826/838] Install the project...
-- Install configuration: "RelWithDebInfo"
-- Installing: /results/artifacts/lib/libbitcoinconsensus.0.27.6.dylib
-- Installing: /results/artifacts/lib/libbitcoinconsensus.0.dylib
-- Installing: /results/artifacts/lib/libbitcoinconsensus.dylib
-- Installing: /results/artifacts/include/bitcoinconsensus.h
-- Installing: /results/artifacts/bin/bitcoin-wallet
-- Installing: /results/artifacts/bin/bitcoin-seeder
-- Installing: /results/artifacts/bin/bitcoin-cli
-- Installing: /results/artifacts/bin/bitcoin-tx
-- Installing: /results/artifacts/bin/bitcoind
-- Installing: /results/artifacts/bin/BitcoinABC-Qt.app
-- Installing: /results/artifacts/bin/BitcoinABC-Qt.app/Contents
-- Installing: /results/artifacts/bin/BitcoinABC-Qt.app/Contents/Resources
-- Installing: /results/artifacts/bin/BitcoinABC-Qt.app/Contents/Resources/empty.lproj
-- Installing: /results/artifacts/bin/BitcoinABC-Qt.app/Contents/Resources/bitcoin.icns
-- Installing: /results/artifacts/bin/BitcoinABC-Qt.app/Contents/Resources/Base.lproj
-- Installing: /results/artifacts/bin/BitcoinABC-Qt.app/Contents/Resources/Base.lproj/InfoPlist.strings
-- Installing: /results/artifacts/bin/BitcoinABC-Qt.app/Contents/Resources/Base.lproj/InfoPlist.strings/InfoPlist.strings
-- Installing: /results/artifacts/bin/BitcoinABC-Qt.app/Contents/MacOS
-- Installing: /results/artifacts/bin/BitcoinABC-Qt.app/Contents/MacOS/BitcoinABC-Qt
-- Installing: /results/artifacts/bin/BitcoinABC-Qt.app/Contents/Info.plist
[827/838] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/test_bitcoin-qt_autogen/mocs_compilation.cpp.o
[829/838] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/uritests.cpp.o
[830/838] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/paymentservertests.cpp.o
[831/838] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/apptests.cpp.o
[832/838] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/test_main.cpp.o
[833/838] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/__/__/wallet/test/wallet_test_fixture.cpp.o
[834/838] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/rpcnestedtests.cpp.o
[835/838] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/addressbooktests.cpp.o
[836/838] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/wallettests.cpp.o
[837/838] Linking CXX executable src/qt/test/test_bitcoin-qt
ld: warning: direct access in function 'payments::X509Certificates::_InternalParse(char const*, google::protobuf::internal::ParseContext*)' from file 'src/qt/libbitcoin-qt-base.a(paymentrequest.pb.cc.o)' to global weak symbol 'void google::protobuf::internal::arena_destruct_object<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(void*)' from file '../../depends/x86_64-apple-darwin/lib/libprotobuf.a(repeated_field.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'payments::Payment::_InternalParse(char const*, google::protobuf::internal::ParseContext*)' from file 'src/qt/libbitcoin-qt-base.a(paymentrequest.pb.cc.o)' to global weak symbol 'void google::protobuf::internal::arena_destruct_object<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(void*)' from file '../../depends/x86_64-apple-darwin/lib/libprotobuf.a(repeated_field.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'PaymentServer::fetchPaymentACK(interfaces::Wallet&, SendCoinsRecipient const&, QByteArray)' from file 'src/qt/libbitcoin-qt-base.a(paymentserver.cpp.o)' to global weak symbol 'void google::protobuf::internal::arena_destruct_object<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(void*)' from file '../../depends/x86_64-apple-darwin/lib/libprotobuf.a(repeated_field.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
[838/838] Installing component bitcoin-qt-test_bitcoin-qt
-- Install configuration: "RelWithDebInfo"
-- Install component: "bitcoin-qt-test_bitcoin-qt"
-- Installing: /results/artifacts/bin/test_bitcoin-qt
ninja: error: 'dist/.DS_Store', needed by 'src/qt/CMakeFiles/osx-deploydir', missing and no known rule to make it
Build build-osx failed with exit code 1
PiRK planned changes to this revision.May 31 2023, 08:44

still not working

try simply removing the dependency

specify DMG_STORE as output for the ${MACDEPLOYQTPLUS} command, in the hope that osx-deploydir will now find it

Tail of the build log:

[802/838] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/paymentrequestplus.cpp.o
[803/838] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/__/__/depends/x86_64-apple-darwin/lib/cmake/Qt5Gui/Qt5Gui_QCocoaIntegrationPlugin_Import.cpp.o
[804/838] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/__/__/depends/x86_64-apple-darwin/lib/cmake/Qt5Widgets/Qt5Widgets_QMacStylePlugin_Import.cpp.o
[805/838] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/walletmodeltransaction.cpp.o
[806/838] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/walletcontroller.cpp.o
[807/838] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/walletmodel.cpp.o
[808/838] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/walletview.cpp.o
[809/838] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/intro.cpp.o
[810/838] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/bitcoin-qt-base_autogen/mocs_compilation.cpp.o
[811/838] Linking CXX static library src/qt/libbitcoin-qt-base.a
/work/depends/x86_64-apple-darwin/native/bin/x86_64-apple-darwin-ranlib: file: src/qt/libbitcoin-qt-base.a(mocs_compilation.cpp.o) has no symbols
/work/depends/x86_64-apple-darwin/native/bin/x86_64-apple-darwin-ranlib: file: src/qt/libbitcoin-qt-base.a(mocs_compilation.cpp.o) has no symbols
[812/838] Automatic MOC for target bitcoin-qt
[813/838] Building CXX object src/qt/CMakeFiles/bitcoin-qt.dir/bitcoin-qt_autogen/mocs_compilation.cpp.o
[814/838] Building CXX object src/qt/CMakeFiles/bitcoin-qt.dir/__/__/depends/x86_64-apple-darwin/lib/cmake/Qt5Gui/Qt5Gui_QMinimalIntegrationPlugin_Import.cpp.o
[815/838] Building CXX object src/qt/CMakeFiles/bitcoin-qt.dir/__/__/depends/x86_64-apple-darwin/lib/cmake/Qt5Widgets/Qt5Widgets_QMacStylePlugin_Import.cpp.o
[816/838] Building CXX object src/qt/CMakeFiles/bitcoin-qt.dir/__/__/depends/x86_64-apple-darwin/lib/cmake/Qt5Gui/Qt5Gui_QCocoaIntegrationPlugin_Import.cpp.o
[817/838] Building CXX object src/qt/CMakeFiles/bitcoin-qt.dir/main.cpp.o
[818/838] Automatic MOC for target test_bitcoin-qt
[819/838] Linking CXX executable src/qt/BitcoinABC-Qt.app/Contents/MacOS/BitcoinABC-Qt
ld: warning: direct access in function 'payments::X509Certificates::_InternalParse(char const*, google::protobuf::internal::ParseContext*)' from file 'src/qt/libbitcoin-qt-base.a(paymentrequest.pb.cc.o)' to global weak symbol 'void google::protobuf::internal::arena_destruct_object<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(void*)' from file '../../depends/x86_64-apple-darwin/lib/libprotobuf.a(arenastring.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'payments::Payment::_InternalParse(char const*, google::protobuf::internal::ParseContext*)' from file 'src/qt/libbitcoin-qt-base.a(paymentrequest.pb.cc.o)' to global weak symbol 'void google::protobuf::internal::arena_destruct_object<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(void*)' from file '../../depends/x86_64-apple-darwin/lib/libprotobuf.a(arenastring.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'PaymentServer::fetchPaymentACK(interfaces::Wallet&, SendCoinsRecipient const&, QByteArray)' from file 'src/qt/libbitcoin-qt-base.a(paymentserver.cpp.o)' to global weak symbol 'void google::protobuf::internal::arena_destruct_object<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(void*)' from file '../../depends/x86_64-apple-darwin/lib/libprotobuf.a(arenastring.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
[820/838] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/bitcoinaddressvalidatortests.cpp.o
[821/838] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/compattests.cpp.o
[822/838] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/util.cpp.o
[822/838] Install the project...
-- Install configuration: "RelWithDebInfo"
-- Installing: /results/artifacts/lib/libbitcoinconsensus.0.27.6.dylib
-- Installing: /results/artifacts/lib/libbitcoinconsensus.0.dylib
-- Installing: /results/artifacts/lib/libbitcoinconsensus.dylib
-- Installing: /results/artifacts/include/bitcoinconsensus.h
-- Installing: /results/artifacts/bin/bitcoin-wallet
-- Installing: /results/artifacts/bin/bitcoin-seeder
-- Installing: /results/artifacts/bin/bitcoin-cli
-- Installing: /results/artifacts/bin/bitcoin-tx
-- Installing: /results/artifacts/bin/bitcoind
-- Installing: /results/artifacts/bin/BitcoinABC-Qt.app
-- Installing: /results/artifacts/bin/BitcoinABC-Qt.app/Contents
-- Installing: /results/artifacts/bin/BitcoinABC-Qt.app/Contents/Resources
-- Installing: /results/artifacts/bin/BitcoinABC-Qt.app/Contents/Resources/empty.lproj
-- Installing: /results/artifacts/bin/BitcoinABC-Qt.app/Contents/Resources/bitcoin.icns
-- Installing: /results/artifacts/bin/BitcoinABC-Qt.app/Contents/Resources/Base.lproj
-- Installing: /results/artifacts/bin/BitcoinABC-Qt.app/Contents/Resources/Base.lproj/InfoPlist.strings
-- Installing: /results/artifacts/bin/BitcoinABC-Qt.app/Contents/Resources/Base.lproj/InfoPlist.strings/InfoPlist.strings
-- Installing: /results/artifacts/bin/BitcoinABC-Qt.app/Contents/MacOS
-- Installing: /results/artifacts/bin/BitcoinABC-Qt.app/Contents/MacOS/BitcoinABC-Qt
-- Installing: /results/artifacts/bin/BitcoinABC-Qt.app/Contents/Info.plist
[834/838] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/paymentservertests.cpp.o
[836/838] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/test_bitcoin-qt_autogen/mocs_compilation.cpp.o
[837/838] Linking CXX executable src/qt/test/test_bitcoin-qt
ld: warning: direct access in function 'payments::X509Certificates::_InternalParse(char const*, google::protobuf::internal::ParseContext*)' from file 'src/qt/libbitcoin-qt-base.a(paymentrequest.pb.cc.o)' to global weak symbol 'void google::protobuf::internal::arena_destruct_object<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(void*)' from file '../../depends/x86_64-apple-darwin/lib/libprotobuf.a(repeated_field.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'payments::Payment::_InternalParse(char const*, google::protobuf::internal::ParseContext*)' from file 'src/qt/libbitcoin-qt-base.a(paymentrequest.pb.cc.o)' to global weak symbol 'void google::protobuf::internal::arena_destruct_object<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(void*)' from file '../../depends/x86_64-apple-darwin/lib/libprotobuf.a(repeated_field.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'PaymentServer::fetchPaymentACK(interfaces::Wallet&, SendCoinsRecipient const&, QByteArray)' from file 'src/qt/libbitcoin-qt-base.a(paymentserver.cpp.o)' to global weak symbol 'void google::protobuf::internal::arena_destruct_object<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(void*)' from file '../../depends/x86_64-apple-darwin/lib/libprotobuf.a(repeated_field.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
[838/838] Installing component bitcoin-qt-test_bitcoin-qt
-- Install configuration: "RelWithDebInfo"
-- Install component: "bitcoin-qt-test_bitcoin-qt"
-- Installing: /results/artifacts/bin/test_bitcoin-qt
ninja: error: 'dist/.DS_Store', needed by 'src/qt/CMakeFiles/osx-deploydir', missing and no known rule to make it
Build build-osx failed with exit code 1
PiRK planned changes to this revision.May 31 2023, 10:58

fix typo
add some temporary logging to see the output of MACDEPLOYQTPLUS

PiRK planned changes to this revision.May 31 2023, 14:14

the logging will have to be removed, in case of success

it seems to work now
Remove the logging.

This revision is now accepted and ready to land.May 31 2023, 15:23
PiRK planned changes to this revision.May 31 2023, 15:23

Not yet. This needs to be squashed with or rebased onto https://github.com/bitcoin/bitcoin/pull/20333

PiRK edited the summary of this revision. (Show Details)

squash with PR20333. There is not much overlap between the 2 changesets; o it will not make the review even harder.

This revision is now accepted and ready to land.May 31 2023, 15:34

fix wrong name for BitcoinABC-Qt.app

This revision was automatically updated to reflect the committed changes.