-
Notifications
You must be signed in to change notification settings - Fork 1.2k
fix: fix depends builds on FreeBSD hosts #6109
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
Conversation
…th c++11 we can revert this after upgrading to boost 1.81
UdjinM6
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Compiled with no issues on macos 14.5, Apple clang version 15.0.0 (clang-1500.3.9.4)
light ACK bbc9957
| endif | ||
| $(package)_config_libraries=filesystem,test | ||
| $(package)_cxxflags=-std=c++17 | ||
| $(package)_cxxflags=-std=c++11 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
could you add TODO here so far as it is not permanent change?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Mentioned it in https://github.com/dashpay/dash-issues/issues/53
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I meant TODO right here, so, next release we can re-evaluate it if it is still necessary or can be removed, but I guess you should not forget it yourself :D
PastaPastaPasta
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
utACK bbc9957
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ACK bbc9957
got a build succeed with gcc-13.2.0-4ubuntu3 on ubuntu (not freebds though)
Additional Information
Despite builders for BSD-based platforms being backported as early as dash#5362, they didn't work on account of using a
curlflag,--retry, that was lopped off other builders in dash#3003 as a way to mitigate aberrant Travis CI-specific behaviour.As the variable
$(DOWNLOAD_RETRIES)was removed as part of that mitigation, the introduction of builders that rely on this variable caused failures as the flag was accompanied by nothing. As our CI host isn't based on FreeBSD, this went unnoticed. When deciding between extending the existing patch and reverting it, reverting it proved to be more attractive on account of us no longer using Travis CI and the revert bringing us closer to upstream.Additionally, the
std::unary_functionpatch that was introduced in dash#5610 proves to be necessary on BSD-based platforms as well (had to be extended for and tested on GhostBSD, based on FreeBSD 13.2-STABLE, Clang 16). Instead of conditionally patching based on platform and compiler, a more reliable patch would be to downgrade the C++ version used to build Boost at the last version to havestd::unary_function, which would be C++11, albeit deprecated (source).Though it's likely this route wasn't taken originally due to compiler errors that happened despite downgrading to C++11. These errors were due to the compiler objecting to
std::unary_functionusage in Boost headers, despite the backport of bitcoin#25436, which should've solved this problem. The reason the errors were still persisting is because the necessary flag,-DBOOST_NO_CXX98_FUNCTION_BASE, was only applied if--enable-suppress-external-warningswas set. CI didn't catch this, as the flag is always set, to keep log lengths manageable. This has been rectified.All changes combined, one should be able to build non-Qt Dash binaries using
dependsthough building the Qt client fromdependsunfortunately remains a problem, even upstream (source, source).Demo
Based on bbc9957
Built using:
dependsflags:NO_QT=1 ALLOW_HOST_PACKAGES=1 HOST=x86_64-unknown-freebsd13.2configureflags :--prefix=$(pwd)/depends/x86_64-unknown-freebsd13.2 --enable-debug --enable-suppress-external-warnings --with-guipkg(qt5)Checklist: