-
Notifications
You must be signed in to change notification settings - Fork 38.7k
Run CI against ubuntu 14.04 #14998
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
Run CI against ubuntu 14.04 #14998
Conversation
|
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers. ConflictsReviewers, 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. |
|
I was under the impression that the minimum would bump? |
|
Yep I'm down for either, just putting this forward as an option. |
c5ef98e to
86b7190
Compare
076da53 to
7ec0352
Compare
.travis.yml
Outdated
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 use --with-gui=no for now and only fix the code (in a separate pull) when we decide to support 5.2 (as opposed to 5.4/5.5)?
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.
5.2 is listed as the minimum required version here: https://github.com/bitcoin/bitcoin/blob/master/doc/dependencies.md
ce5beab to
1c410a6
Compare
fc85aa2 to
a07ecbb
Compare
|
Needs rebase |
427d460 to
0c21828
Compare
This was added to clang after clang 3.4. Current minimum supported version of clang is 3.3. microsoft/clang@4bfb063 Example failure: validation.cpp:3820:85: error: expected body of lambda expression if (!blocktree.LoadBlockIndexGuts(consensus_params, [this](const uint256& hash) __attribute__((exclusive_locks_required(cs_main))) { return this->InsertBlockIndex(hash); })) ^ 1 error generated. https://travis-ci.org/Empact/bitcoin/jobs/468855360
In CMainSignals::RegisterWithMempoolSignals running under Ubuntu 14.04
(QT 5.2), absent piecewise construction this fails to create the pair
because the argument is a connection, which is converted into a
non-copyable scoped_connection.
validationinterface.cpp:80:186: required from here
/usr/include/boost/signals2/connection.hpp:234:7: error: ‘boost::signals2::scoped_connection::scoped_connection(const boost::signals2::scoped_connection&)’ is private
scoped_connection(const scoped_connection &other);
^
In file included from /usr/include/c++/4.8/utility:70:0,
from /usr/include/c++/4.8/algorithm:60,
from ./prevector.h:13,
from ./script/script.h:10,
from ./primitives/transaction.h:11,
from ./validationinterface.h:9,
from validationinterface.cpp:6:
/usr/include/c++/4.8/bits/stl_pair.h:134:45: error: within this context
: first(std::forward<_U1>(__x)), second(__y) { }
https://travis-ci.org/bitcoin/bitcoin/jobs/473689141#L2172
Until Qt 5.4, singleShot did not support the new funtion-pointer-based call signature. http://doc.qt.io/archives/qt-5.5/qtimer.html#singleShot-2 qt/bitcoin.cpp:508:9: error: no matching function for call to 'singleShot' QTimer::singleShot(100, paymentServer, &PaymentServer::uiReady); ^~~~~~~~~~~~~~~~~~ /usr/include/qt5/QtCore/qtimer.h:81:17: note: candidate function not viable: no known conversion from 'void (PaymentServer::*)()' to 'const char *' for 3rd argument static void singleShot(int msec, const QObject *receiver, const char *member); ^ /usr/include/qt5/QtCore/qtimer.h:82:17: note: candidate function not viable: requires 4 arguments, but 3 were provided static void singleShot(int msec, Qt::TimerType timerType, const QObject *receiver, const char *member); ^ 1 error generated. https://travis-ci.org/Empact/bitcoin/jobs/469269171
…ctor on clang libcxx, which carries the implementation is apparently unversioned, so this is an alternative to tracking down the specific version of clang which switched from has_trivial_default_constructor to is_trivially_default_constructible. llvm-mirror/libcxx@2fd6d25 https://libcxx.llvm.org/ bench/prevector.cpp:27:21: error: no template named 'is_trivially_default_constructible' in namespace 'std'; did you mean 'has_trivial_default_constructor'? static_assert(!std::is_trivially_default_constructible<nontrivial_t>::value, ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ has_trivial_default_constructor /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/type_traits:1211:12: note: 'has_trivial_default_constructor' declared here struct has_trivial_default_constructor ^ bench/prevector.cpp:31:20: error: no template named 'is_trivially_default_constructible' in namespace 'std'; did you mean 'has_trivial_default_constructor'? static_assert(std::is_trivially_default_constructible<trivial_t>::value, ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ has_trivial_default_constructor /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/type_traits:1211:12: note: 'has_trivial_default_constructor' declared here struct has_trivial_default_constructor ^ 2 errors generated. https://travis-ci.org/Empact/bitcoin/jobs/468866070
Avoid e.g. sort failures by reliably returning a value for every result: https://travis-ci.org/bitcoin/bitcoin/jobs/473943177#L2728
The latter is not defined in the earliest supported version of boost, 1.47. https://www.boost.org/doc/libs/1_47_0/libs/optional/doc/html/boost_optional/detailed_semantics.html https://travis-ci.org/bitcoin/bitcoin/jobs/486674823
Thus building against system rather than depends libs This reverts commit fa5ce3f.
|
Closing because we're finally green and a clean PR would be nice. |
119d360 travis: Document whether functional tests are run in the job name (Ben Woosley) 64f2854 Revert "travis: Compile trusty with depends for now" (Ben Woosley) 267eac0 Prefer boost::optional#get_value_or over #value_or (Ben Woosley) 1971f5b Piecewise construct to avoid invalid construction (Ben Woosley) Pull request description: In light of #14979, I realized that only qt 5.5+ was being tested under CI, while compatibility lists 5.2+. In #15276, Marco added Trusty to CI, building with depends. This changes that build to system libraries, in order to ensure ongoing compatibility with our claimed minimum required versions. Fixes #14983, previously open as #14998 Tree-SHA512: 6cff5e28c756ecb8bf797c8f6eb77c1944ba61a8dd6d7d4984e63eef384f6429dc79c505da3241c05b9c4db31c72b2a9846c7365aba9280f2e0620e5f3998d07
In light of #14979, I realized that only qt 5.5+ was being tested under CI, while compatibility lists 5.2+.
Ubuntu 14.04 carries QT 5.2.1, so running it on CI is a good candidate for maintaining compatibility in an ongoing basis. Adding the change revealed some incompatibilities that have crept in.
Alternatively, we can increase the dependencies to match those carried by Ubuntu 16.04. I don't think we should claim support for dependencies we aren't testing on an ongoing basis.
Putting this forward for comment. Currently the CI run times out after build and some tests running.
Fixes #14983