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

@Empact
Copy link
Member

@Empact Empact 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
Copy link
Contributor

@DrahtBot DrahtBot 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.

Loading

Empact added 4 commits Feb 1, 2019
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
Thus building against system rather than depends libs

This reverts commit fa5ce3f.
@Empact Empact force-pushed the trusty-no-depends branch from b097afa to 119d360 Feb 1, 2019
@Empact
Copy link
Member Author

@Empact Empact 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.

Loading

@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
Copy link
Member

@MarcoFalke MarcoFalke commented Feb 1, 2019

ACK. Could do the value_or replacement as scripted diff?

Loading

@Sjors
Copy link
Member

@Sjors Sjors commented Feb 1, 2019

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

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

Loading

Copy link
Contributor

@ryanofsky ryanofsky left a comment

utACK 119d360

Loading

@MarcoFalke MarcoFalke merged commit 119d360 into bitcoin:master Feb 1, 2019
2 checks passed
Loading
MarcoFalke added a commit that referenced this issue Feb 1, 2019
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 trusty-no-depends branch Feb 1, 2019
deadalnix pushed a commit to Bitcoin-ABC/bitcoin-abc that referenced this issue May 20, 2020
Summary:
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

---

This is a partial backport of Core [[bitcoin/bitcoin#15308 | PR15308]]

Test Plan:
  ninja check

Reviewers: #bitcoin_abc, Fabien

Reviewed By: #bitcoin_abc, Fabien

Subscribers: Fabien

Differential Revision: https://reviews.bitcoinabc.org/D6148
ftrader added a commit to bitcoin-cash-node/bitcoin-cash-node that referenced this issue Aug 17, 2020
Summary:
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

---

This is a partial backport of Core [[bitcoin/bitcoin#15308 | PR15308]]

Test Plan:
  ninja check

Reviewers: #bitcoin_abc, Fabien

Reviewed By: #bitcoin_abc, Fabien

Subscribers: Fabien

Differential Revision: https://reviews.bitcoinabc.org/D6148
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

6 participants