Skip to content
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

build: Restore compatibility with older boost #15308

Merged
merged 4 commits into from Feb 1, 2019

Conversation

Projects
None yet
6 participants
@Empact
Copy link
Member

commented Jan 31, 2019

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

@Empact Empact changed the title ci: Build and test Trusty against system libraries, fix incompatibilities travis: Build and test Trusty against system libraries, fix incompatibilities Jan 31, 2019

@fanquake fanquake added the Tests label Jan 31, 2019

@DrahtBot

This comment has been minimized.

Copy link
Contributor

commented Feb 1, 2019

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

Conflicts

No conflicts as of last run.

Empact added some commits Dec 30, 2018

Piecewise construct to avoid invalid construction
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
Revert "travis: Compile trusty with depends for now"
Thus building against system rather than depends libs

This reverts commit fa5ce3f.

@Empact Empact force-pushed the Empact:trusty-no-depends branch from b097afa to 119d360 Feb 1, 2019

@Empact

This comment has been minimized.

Copy link
Member Author

commented Feb 1, 2019

Set out to prove that each commit was necessary and realized instead that I could drop several of them thanks to functional tests being disabled (unlike in #14998). As you can see, the commits that remain correct incompatibilities with the earlier Boost version, 1.47.

@MarcoFalke MarcoFalke added this to the 0.18.0 milestone Feb 1, 2019

@MarcoFalke MarcoFalke changed the title travis: Build and test Trusty against system libraries, fix incompatibilities build: Restore compatibility with older boost Feb 1, 2019

@MarcoFalke MarcoFalke added Refactoring and removed Tests labels Feb 1, 2019

@MarcoFalke

This comment has been minimized.

Copy link
Member

commented Feb 1, 2019

ACK. Could do the value_or replacement as scripted diff?

@Sjors

This comment has been minimized.

Copy link
Member

commented Feb 1, 2019

Concept ACK and 119d360 still builds fine for me on macOS.

Maybe @ryanofsky can sanity check the CMainSignals::RegisterWithMempoolSignals( change.

@ryanofsky
Copy link
Contributor

left a comment

utACK 119d360

@MarcoFalke MarcoFalke merged commit 119d360 into bitcoin:master Feb 1, 2019

2 checks passed

continuous-integration/appveyor/pr AppVeyor build succeeded
Details
continuous-integration/travis-ci/pr The Travis CI build passed
Details

MarcoFalke added a commit that referenced this pull request Feb 1, 2019

Merge #15308: build: Restore compatibility with older boost
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

@Empact Empact deleted the Empact:trusty-no-depends branch Feb 1, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.