Page MenuHomePhabricator

build: Replace genisoimage with xorriso
ClosedPublic

Authored by PiRK on Apr 21 2023, 10:59.

Details

Reviewers
Fabien
Group Reviewers
Restricted Project
Commits
rABC913bb95fa8e9: build: Replace genisoimage with xorriso
Summary

xorriso and its mkisofs/genisoimage emulation alter-ego xorrisofs are
more maintained, and has the right toggles for us to achieve output
determinism without using blunt tools like faketime.

In this commit, we use xorrisofs from the build environment rather than
building it ourselves using depends. This is not necessary and can be
changed in the future.

From https://wiki.debian.org/genisoimage?action=recall&rev=11 :

The classical command line interface for production of ISO 9660
filesystem images is the option set established by program mkisofs.
For reasons of licensing and other problems with its author, Debian
ships a fork of mkisofs, called genisoimage, which was split off in
2006 and then developed independently.

Meanwhile, genisoimage gets no new features and not even bug fixes. It
is first choice only if its options -udf or -hfs are needed.

Replacement in most uses cases, especially for bootable ISO 9660
filesystems, archiving, and backup, is xorrisofs which starts the -as
mkisofs emulation mode of program xorriso.

This is also necessary for Guix to achieve determinism without using faketime.

This is a backport of core#20470 and core#20985

Depends on D13789

Test Plan

crossbuilds on CI

Diff Detail

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

Event Timeline

PiRK requested review of this revision.Apr 21 2023, 10:59
PiRK planned changes to this revision.Apr 21 2023, 11:48

@bot build-osx gitian-osx

Tail of the build log:

-- 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
[813/828] Automatic MOC for target test_bitcoin-qt
[814/828] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/util.cpp.o
[815/828] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/bitcoinaddressvalidatortests.cpp.o
[816/828] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/guiutiltests.cpp.o
[817/828] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/compattests.cpp.o
[818/828] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/uritests.cpp.o
[819/828] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/apptests.cpp.o
[820/828] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/rpcnestedtests.cpp.o
[821/828] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/test_main.cpp.o
[822/828] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/__/__/wallet/test/wallet_test_fixture.cpp.o
[823/828] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/addressbooktests.cpp.o
[824/828] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/wallettests.cpp.o
[825/828] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/paymentservertests.cpp.o
[826/828] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/test_bitcoin-qt_autogen/mocs_compilation.cpp.o
[827/828] 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-darwin16/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-darwin16/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-darwin16/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.
[828/828] Installing component bitcoin-qt-test_bitcoin-qt
-- Install configuration: "RelWithDebInfo"
-- Install component: "bitcoin-qt-test_bitcoin-qt"
-- Installing: /results/artifacts/bin/test_bitcoin-qt
[1/19] Automatic MOC for target bitcoin-qt-protobuf
[2/18] Automatic MOC for target bitcoin-qt-base
[3/16] Automatic MOC for target bitcoin-qt
[4/14] Generating stripped/BitcoinABC-Qt.app
[5/14] Generating ../../dist
Warning: Could not detect Qt's path, skipping plugin deployment!
Warning: Could not find any external frameworks to deploy in dist/BitcoinABC-Qt.app.
[6/14] Generating ../../dist/Applications
[7/14] Generating ../../dist/.DS_Store
[8/14] Generating background_temp@2x.png
[9/14] Generating background_temp@2x.tiff
[10/14] Generating background_temp.png
[11/14] Generating background_temp.tiff
[12/14] Generating ../../background.tiff
[13/14] Generating ../../dist/.background/background.tiff
[14/14] cd /work/abc-ci-builds/build-osx && /work/depends/x86_64-apple-darwin16/native/bin/genisoimage -no-cache-inodes -D -l -probe -V Bitcoin-ABC -no-pad -r -dir-mode 0755 -apple -o Bitcoin-ABC.dmg /work/abc-ci-builds/build-osx/dist && /work/depends/x86_64-apple-darwin16/native/bin/dmg dmg Bitcoin-ABC.dmg Bitcoin-ABC.dmg
FAILED: src/qt/CMakeFiles/osx-dmg 
cd /work/abc-ci-builds/build-osx && /work/depends/x86_64-apple-darwin16/native/bin/genisoimage -no-cache-inodes -D -l -probe -V Bitcoin-ABC -no-pad -r -dir-mode 0755 -apple -o Bitcoin-ABC.dmg /work/abc-ci-builds/build-osx/dist && /work/depends/x86_64-apple-darwin16/native/bin/dmg dmg Bitcoin-ABC.dmg Bitcoin-ABC.dmg
/work/depends/x86_64-apple-darwin16/native/bin/genisoimage: Warning: assuming PC Exchange cluster size of 512 bytes
 28.48% done, estimate finish Fri Apr 21 11:50:24 2023
 56.83% done, estimate finish Fri Apr 21 11:50:24 2023
 85.28% done, estimate finish Fri Apr 21 11:50:24 2023
Total translation table size: 0
Total rockridge attributes bytes: 5213
Total directory bytes: 19234
Path table size(bytes): 148
Max brk space used 0
17606 extents written (34 MB)
Processing DDM...
error: fread
error: Success
ninja: build stopped: subcommand failed.
Build build-osx failed with exit code 1

Tail of the build log:

 * [new tag]             phabricator/diff/39666 -> phabricator/diff/39666
 * [new tag]             phabricator/diff/39667 -> phabricator/diff/39667
 * [new tag]             phabricator/diff/39682 -> phabricator/diff/39682
 * [new tag]             phabricator/diff/39687 -> phabricator/diff/39687
 * [new tag]             phabricator/diff/39690 -> phabricator/diff/39690
 * [new tag]             phabricator/diff/39701 -> phabricator/diff/39701
 * [new tag]             phabricator/diff/39702 -> phabricator/diff/39702
 * [new tag]             phabricator/diff/39730 -> phabricator/diff/39730
 * [new tag]             phabricator/diff/39732 -> phabricator/diff/39732
 * [new tag]             phabricator/diff/39740 -> phabricator/diff/39740
 * [new tag]             phabricator/diff/39747 -> phabricator/diff/39747
 * [new tag]             phabricator/diff/39753 -> phabricator/diff/39753
 * [new tag]             phabricator/diff/39763 -> phabricator/diff/39763
 * [new tag]             phabricator/diff/39775 -> phabricator/diff/39775
 * [new tag]             phabricator/diff/39776 -> phabricator/diff/39776
 * [new tag]             phabricator/diff/39778 -> phabricator/diff/39778
 * [new tag]             phabricator/diff/39780 -> phabricator/diff/39780
 * [new tag]             phabricator/diff/39784 -> phabricator/diff/39784
 * [new tag]             phabricator/diff/39786 -> phabricator/diff/39786
 * [new tag]             phabricator/diff/39787 -> phabricator/diff/39787
 * [new tag]             phabricator/diff/39790 -> phabricator/diff/39790
 * [new tag]             phabricator/diff/39791 -> phabricator/diff/39791
 * [new tag]             phabricator/diff/39792 -> phabricator/diff/39792
 * [new tag]             phabricator/diff/39793 -> phabricator/diff/39793
 * [new tag]             phabricator/diff/39802 -> phabricator/diff/39802
 * [new tag]             phabricator/diff/39803 -> phabricator/diff/39803
 * [new tag]             phabricator/diff/39804 -> phabricator/diff/39804
 * [new tag]             phabricator/diff/39805 -> phabricator/diff/39805
 * [new tag]             phabricator/diff/39806 -> phabricator/diff/39806
 * [new tag]             phabricator/diff/39813 -> phabricator/diff/39813
 * [new tag]             phabricator/diff/39815 -> phabricator/diff/39815
 * [new tag]             phabricator/diff/39817 -> phabricator/diff/39817
 * [new tag]             phabricator/diff/39822 -> phabricator/diff/39822
 * [new tag]             phabricator/diff/39832 -> phabricator/diff/39832
 * [new tag]             phabricator/diff/39843 -> phabricator/diff/39843
 * [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

squash the next two commit. They are all related

PiRK retitled this revision from build: Run libdmg-hfsplus's DMG tool in ninja osx-dmg to build: Replace genisoimage with xorriso.
PiRK edited the summary of this revision. (Show Details)

remove configure.ac and squash also core#20985

Tail of the build log:

--   libboost_filesystem-mt-x64.a
-- Adding boost_filesystem dependencies: headers
-- Found Boost: /work/depends/x86_64-apple-darwin16/lib/cmake/Boost-1.70.0/BoostConfig.cmake (found suitable version "1.70.0", minimum required is "1.59") found components: filesystem 
-- Found Boost 1.70.0 at /work/depends/x86_64-apple-darwin16/lib/cmake/Boost-1.70.0
--   Requested configuration: QUIET REQUIRED COMPONENTS thread
-- Found boost_thread 1.70.0 at /work/depends/x86_64-apple-darwin16/lib/cmake/boost_thread-1.70.0
--   libboost_thread-mt-x64.a
-- Adding boost_thread dependencies: headers
-- Found Boost: /work/depends/x86_64-apple-darwin16/lib/cmake/Boost-1.70.0/BoostConfig.cmake (found suitable version "1.70.0", minimum required is "1.59") found components: thread 
-- Found Event component pthreads: /work/depends/x86_64-apple-darwin16/lib/libevent_pthreads.a
-- Found Event: /work/depends/x86_64-apple-darwin16/include (found suitable version "99.99.99", minimum required is "2.0.22") found components: pthreads 
-- Found MiniUPnPc component miniupnpc: /work/depends/x86_64-apple-darwin16/lib/libminiupnpc.a
-- Found MiniUPnPc: /work/depends/x86_64-apple-darwin16/include/miniupnpc (found suitable version "2.0.20180203", minimum required is "1.9")  
-- Found NATPMP component natpmp: /work/depends/x86_64-apple-darwin16/lib/libnatpmp.a
-- Found NATPMP: /work/depends/x86_64-apple-darwin16/include   
-- Found Boost 1.70.0 at /work/depends/x86_64-apple-darwin16/lib/cmake/Boost-1.70.0
--   Requested configuration: QUIET REQUIRED COMPONENTS unit_test_framework
-- Found boost_unit_test_framework 1.70.0 at /work/depends/x86_64-apple-darwin16/lib/cmake/boost_unit_test_framework-1.70.0
--   libboost_unit_test_framework-mt-x64.a
-- Adding boost_unit_test_framework dependencies: headers
-- Found Boost: /work/depends/x86_64-apple-darwin16/lib/cmake/Boost-1.70.0/BoostConfig.cmake (found suitable version "1.70.0", minimum required is "1.59") found components: unit_test_framework 
-- Performing Test BOOST_REQUIRES_TEST_DYN_LINK
-- Performing Test BOOST_REQUIRES_TEST_DYN_LINK - Failed
-- Found Boost 1.70.0 at /work/depends/x86_64-apple-darwin16/lib/cmake/Boost-1.70.0
--   Requested configuration: QUIET REQUIRED COMPONENTS unit_test_framework
-- Found boost_unit_test_framework 1.70.0 at /work/depends/x86_64-apple-darwin16/lib/cmake/boost_unit_test_framework-1.70.0
--   libboost_unit_test_framework-mt-x64.a
-- Adding boost_unit_test_framework dependencies: headers
-- Found Boost 1.70.0 at /work/depends/x86_64-apple-darwin16/lib/cmake/Boost-1.70.0
--   Requested configuration: QUIET REQUIRED COMPONENTS unit_test_framework
-- Found boost_unit_test_framework 1.70.0 at /work/depends/x86_64-apple-darwin16/lib/cmake/boost_unit_test_framework-1.70.0
--   libboost_unit_test_framework-mt-x64.a
-- Adding boost_unit_test_framework dependencies: headers
-- Found BerkeleyDB component CXX: /work/depends/x86_64-apple-darwin16/lib/libdb_cxx-5.3.a
-- Found BerkeleyDB: /work/depends/x86_64-apple-darwin16/include (found suitable version "5.3.28", minimum required is "5.3") found components: CXX 
-- Found SQLite3: /work/depends/x86_64-apple-darwin16/include (found suitable version "3.32.1", minimum required is "3.7.17") 
-- Found ZeroMQ component zmq: /work/depends/x86_64-apple-darwin16/lib/libzmq.a
-- Found ZeroMQ: /work/depends/x86_64-apple-darwin16/include (found suitable version "4.3.1", minimum required is "4.1.5")  
-- Found Boost 1.70.0 at /work/depends/x86_64-apple-darwin16/lib/cmake/Boost-1.70.0
--   Requested configuration: QUIET REQUIRED COMPONENTS unit_test_framework
-- Found boost_unit_test_framework 1.70.0 at /work/depends/x86_64-apple-darwin16/lib/cmake/boost_unit_test_framework-1.70.0
--   libboost_unit_test_framework-mt-x64.a
-- Adding boost_unit_test_framework dependencies: headers
-- Found Protobuf: /work/depends/x86_64-apple-darwin16/lib/libprotobuf.a (found version "3.21.12") 
-- Found OpenSSL: /work/depends/x86_64-apple-darwin16/lib/libcrypto.a (found version "1.0.1k")  
-- Looking for EVP_MD_CTX_new
-- Looking for EVP_MD_CTX_new - not found
-- Found QREncode component qrencode: /work/depends/x86_64-apple-darwin16/lib/libqrencode.a
-- Found QREncode: /work/depends/x86_64-apple-darwin16/include   
CMake Error at cmake/modules/DoOrFail.cmake:4 (message):
  Failed to find program [xorrisofs], please make sure that it is installed
  and reachable through the system PATH.
Call Stack (most recent call first):
  src/qt/CMakeLists.txt:573 (find_program_or_fail)


-- Configuring incomplete, errors occurred!
See also "/work/abc-ci-builds/build-osx/CMakeFiles/CMakeOutput.log".
See also "/work/abc-ci-builds/build-osx/CMakeFiles/CMakeError.log".
Build build-osx failed with exit code 1

Tail of the build log:

 * [new tag]             phabricator/diff/39730 -> phabricator/diff/39730
 * [new tag]             phabricator/diff/39732 -> phabricator/diff/39732
 * [new tag]             phabricator/diff/39740 -> phabricator/diff/39740
 * [new tag]             phabricator/diff/39742 -> phabricator/diff/39742
 * [new tag]             phabricator/diff/39743 -> phabricator/diff/39743
 * [new tag]             phabricator/diff/39748 -> phabricator/diff/39748
 * [new tag]             phabricator/diff/39749 -> phabricator/diff/39749
 * [new tag]             phabricator/diff/39750 -> phabricator/diff/39750
 * [new tag]             phabricator/diff/39752 -> phabricator/diff/39752
 * [new tag]             phabricator/diff/39753 -> phabricator/diff/39753
 * [new tag]             phabricator/diff/39775 -> phabricator/diff/39775
 * [new tag]             phabricator/diff/39776 -> phabricator/diff/39776
 * [new tag]             phabricator/diff/39778 -> phabricator/diff/39778
 * [new tag]             phabricator/diff/39783 -> phabricator/diff/39783
 * [new tag]             phabricator/diff/39786 -> phabricator/diff/39786
 * [new tag]             phabricator/diff/39787 -> phabricator/diff/39787
 * [new tag]             phabricator/diff/39790 -> phabricator/diff/39790
 * [new tag]             phabricator/diff/39791 -> phabricator/diff/39791
 * [new tag]             phabricator/diff/39792 -> phabricator/diff/39792
 * [new tag]             phabricator/diff/39793 -> phabricator/diff/39793
 * [new tag]             phabricator/diff/39802 -> phabricator/diff/39802
 * [new tag]             phabricator/diff/39803 -> phabricator/diff/39803
 * [new tag]             phabricator/diff/39804 -> phabricator/diff/39804
 * [new tag]             phabricator/diff/39805 -> phabricator/diff/39805
 * [new tag]             phabricator/diff/39812 -> phabricator/diff/39812
 * [new tag]             phabricator/diff/39814 -> phabricator/diff/39814
 * [new tag]             phabricator/diff/39815 -> phabricator/diff/39815
 * [new tag]             phabricator/diff/39816 -> phabricator/diff/39816
 * [new tag]             phabricator/diff/39819 -> phabricator/diff/39819
 * [new tag]             phabricator/diff/39822 -> phabricator/diff/39822
 * [new tag]             phabricator/diff/39832 -> phabricator/diff/39832
 * [new tag]             phabricator/diff/39840 -> phabricator/diff/39840
 * [new tag]             phabricator/diff/39843 -> phabricator/diff/39843
 * [new tag]             phabricator/diff/39844 -> phabricator/diff/39844
 * [new tag]             phabricator/diff/39845 -> phabricator/diff/39845
 * [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

install xorriso on Debian Bullseye

Tail of the build log:

-- Installing: /results/artifacts/bin/BitcoinABC-Qt.app/Contents/Resources
-- 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/Resources/empty.lproj
-- Installing: /results/artifacts/bin/BitcoinABC-Qt.app/Contents/Resources/bitcoin.icns
-- Installing: /results/artifacts/bin/BitcoinABC-Qt.app/Contents/Info.plist
[819/828] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/uritests.cpp.o
[820/828] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/test_main.cpp.o
[821/828] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/paymentservertests.cpp.o
[822/828] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/apptests.cpp.o
[823/828] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/rpcnestedtests.cpp.o
[824/828] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/__/__/wallet/test/wallet_test_fixture.cpp.o
[825/828] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/addressbooktests.cpp.o
[826/828] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/wallettests.cpp.o
[827/828] 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-darwin16/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-darwin16/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-darwin16/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.
[828/828] Installing component bitcoin-qt-test_bitcoin-qt
-- Install configuration: "RelWithDebInfo"
-- Install component: "bitcoin-qt-test_bitcoin-qt"
-- Installing: /results/artifacts/bin/test_bitcoin-qt
[1/19] Automatic MOC for target bitcoin-qt-protobuf
[2/18] Automatic MOC for target bitcoin-qt-base
[3/16] Automatic MOC for target bitcoin-qt
[4/14] Generating background_temp.png
[5/14] Generating background_temp.tiff
[6/14] Generating background_temp@2x.png
[7/14] Generating background_temp@2x.tiff
[8/14] Generating ../../background.tiff
[9/14] Generating stripped/BitcoinABC-Qt.app
[10/14] Generating ../../dist
Warning: Could not detect Qt's path, skipping plugin deployment!
Warning: Could not find any external frameworks to deploy in dist/BitcoinABC-Qt.app.
[11/14] Generating ../../dist/Applications
[12/14] Generating ../../dist/.background/background.tiff
[13/14] Generating ../../dist/.DS_Store
[14/14] cd /work/abc-ci-builds/build-osx && /usr/bin/xorrisofs -D -l -V Bitcoin-ABC -no-pad -r -dir-mode 0755 -o Bitcoin-ABC.dmg /work/abc-ci-builds/build-osx/dist && /work/depends/x86_64-apple-darwin16/native/bin/dmg dmg Bitcoin-ABC.dmg Bitcoin-ABC.dmg
FAILED: src/qt/CMakeFiles/osx-dmg 
cd /work/abc-ci-builds/build-osx && /usr/bin/xorrisofs -D -l -V Bitcoin-ABC -no-pad -r -dir-mode 0755 -o Bitcoin-ABC.dmg /work/abc-ci-builds/build-osx/dist && /work/depends/x86_64-apple-darwin16/native/bin/dmg dmg Bitcoin-ABC.dmg Bitcoin-ABC.dmg
xorriso 1.5.2 : RockRidge filesystem manipulator, libburnia project.

Drive current: -outdev 'stdio:Bitcoin-ABC.dmg'
Media current: stdio file, overwriteable
Media status : is blank
Media summary: 0 sessions, 0 data blocks, 0 data,  386g free
xorriso : WARNING : -volid text does not comply to ISO 9660 / ECMA 119 rules
Added to ISO image: directory '/'='/work/abc-ci-builds/build-osx/dist'
xorriso : UPDATE :      44 files added in 1 seconds
xorriso : UPDATE :      44 files added in 1 seconds
ISO image produced: 17605 sectors
Written to medium : 17605 sectors at LBA 0
Writing to 'stdio:Bitcoin-ABC.dmg' completed successfully.

Processing DDM...
error: fread
error: Success
ninja: build stopped: subcommand failed.
Build build-osx failed with exit code 1
PiRK planned changes to this revision.Apr 21 2023, 15:03

make two target with a dependency

Tail of the build log:

-- Installing: /results/artifacts/bin/BitcoinABC-Qt.app/Contents/Resources
-- 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/Resources/bitcoin.icns
-- Installing: /results/artifacts/bin/BitcoinABC-Qt.app/Contents/Resources/empty.lproj
-- Installing: /results/artifacts/bin/BitcoinABC-Qt.app/Contents/MacOS
-- Installing: /results/artifacts/bin/BitcoinABC-Qt.app/Contents/MacOS/BitcoinABC-Qt
[820/828] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/rpcnestedtests.cpp.o
[822/828] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/wallettests.cpp.o
[823/828] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/paymentservertests.cpp.o
[824/828] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/addressbooktests.cpp.o
[825/828] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/__/__/wallet/test/wallet_test_fixture.cpp.o
[826/828] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/test_bitcoin-qt_autogen/mocs_compilation.cpp.o
[827/828] 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-darwin16/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-darwin16/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-darwin16/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.
[828/828] Installing component bitcoin-qt-test_bitcoin-qt
-- Install configuration: "RelWithDebInfo"
-- Install component: "bitcoin-qt-test_bitcoin-qt"
-- Installing: /results/artifacts/bin/test_bitcoin-qt
[1/20] Automatic MOC for target bitcoin-qt-protobuf
[2/19] Automatic MOC for target bitcoin-qt-base
[3/17] Automatic MOC for target bitcoin-qt
[4/15] Generating background_temp.png
[5/15] Generating background_temp.tiff
[6/15] Generating background_temp@2x.png
[7/15] Generating background_temp@2x.tiff
[8/15] Generating ../../background.tiff
[9/15] Generating stripped/BitcoinABC-Qt.app
[10/15] Generating ../../dist
Warning: Could not detect Qt's path, skipping plugin deployment!
Warning: Could not find any external frameworks to deploy in dist/BitcoinABC-Qt.app.
[11/15] Generating ../../dist/Applications
[12/15] Generating ../../dist/.background/background.tiff
[13/15] Generating ../../dist/.DS_Store
[14/15] cd /work/abc-ci-builds/build-osx && /usr/bin/xorrisofs -D -l -V Bitcoin-ABC -no-pad -r -dir-mode 0755 -o Bitcoin-ABC.dmg /work/abc-ci-builds/build-osx/dist
xorriso 1.5.2 : RockRidge filesystem manipulator, libburnia project.

Drive current: -outdev 'stdio:Bitcoin-ABC.dmg'
Media current: stdio file, overwriteable
Media status : is blank
Media summary: 0 sessions, 0 data blocks, 0 data,  401g free
xorriso : WARNING : -volid text does not comply to ISO 9660 / ECMA 119 rules
Added to ISO image: directory '/'='/work/abc-ci-builds/build-osx/dist'
xorriso : UPDATE :      44 files added in 1 seconds
xorriso : UPDATE :      44 files added in 1 seconds
ISO image produced: 17580 sectors
Written to medium : 17580 sectors at LBA 0
Writing to 'stdio:Bitcoin-ABC.dmg' completed successfully.

[15/15] cd /work/abc-ci-builds/build-osx && /work/depends/x86_64-apple-darwin16/native/bin/dmg dmg Bitcoin-ABC.dmg Bitcoin-ABC.dmg
FAILED: src/qt/CMakeFiles/osx-dmg 
cd /work/abc-ci-builds/build-osx && /work/depends/x86_64-apple-darwin16/native/bin/dmg dmg Bitcoin-ABC.dmg Bitcoin-ABC.dmg
Processing DDM...
error: fread
error: Success
ninja: build stopped: subcommand failed.
Build build-osx failed with exit code 1
PiRK planned changes to this revision.Apr 24 2023, 08:33

use an intermediate filename, because dmg cannot overwrite its input file.

Failed tests logs:

====== Bitcoin ABC functional tests: chronik_spent_by.py ======

------- Stderr: -------
Traceback (most recent call last):
  File "/work/test/functional/chronik_spent_by.py", line 19, in <module>
    from test_framework.chronik.client import ChronikClient
  File "/work/test/functional/test_framework/chronik/client.py", line 9, in <module>
    import chronik_pb2 as pb
ModuleNotFoundError: No module named 'chronik_pb2'

Each failure log is accessible here:
Bitcoin ABC functional tests: chronik_spent_by.py

Failed tests logs:

====== Bitcoin ABC functional tests: chronik_spent_by.py ======

------- Stderr: -------
Traceback (most recent call last):
  File "/work/test/functional/chronik_spent_by.py", line 19, in <module>
    from test_framework.chronik.client import ChronikClient
  File "/work/test/functional/test_framework/chronik/client.py", line 9, in <module>
    import chronik_pb2 as pb
ModuleNotFoundError: No module named 'chronik_pb2'

Each failure log is accessible here:
Bitcoin ABC functional tests: chronik_spent_by.py

Failed tests logs:

====== Bitcoin ABC functional tests: chronik_spent_by.py ======

------- Stderr: -------
Traceback (most recent call last):
  File "/work/test/functional/chronik_spent_by.py", line 19, in <module>
    from test_framework.chronik.client import ChronikClient
  File "/work/test/functional/test_framework/chronik/client.py", line 9, in <module>
    import chronik_pb2 as pb
ModuleNotFoundError: No module named 'chronik_pb2'
====== Bitcoin ABC functional tests with the next upgrade activated: chronik_spent_by.py ======

------- Stderr: -------
Traceback (most recent call last):
  File "/work/test/functional/chronik_spent_by.py", line 19, in <module>
    from test_framework.chronik.client import ChronikClient
  File "/work/test/functional/test_framework/chronik/client.py", line 9, in <module>
    import chronik_pb2 as pb
ModuleNotFoundError: No module named 'chronik_pb2'

Each failure log is accessible here:
Bitcoin ABC functional tests: chronik_spent_by.py
Bitcoin ABC functional tests with the next upgrade activated: chronik_spent_by.py

Fabien requested changes to this revision.Apr 26 2023, 08:17

This is breaking the deterministic property of the build, now 2 consecutive runs (even on the same agent) produces a different hash

This revision now requires changes to proceed.Apr 26 2023, 08:17
PiRK edited the summary of this revision. (Show Details)

rebase onto D13789

This revision is now accepted and ready to land.Apr 26 2023, 20:44
This revision was automatically updated to reflect the committed changes.