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

[rxcpp/4.1.1] Add patches required for building on gcc 14 #25886

Merged
merged 5 commits into from
Nov 21, 2024

Conversation

keef-cognitiv
Copy link
Contributor

Summary

Changes to recipe: rxcpp/4.1.1

Motivation

rxcpp cannot compile on gcc 14 due to a definition of an assignment operator. It appears that the project may have been abandoned. There hasn't been any releases in 3 years and there hasn't been any pushes or PR commentary for 2 years.

Details

PR ReactiveX/RxCpp#606 was opened upstream several months ago to address the issue. These patches just apply the exact same change to the 4.1.1 release.


@jcar87 jcar87 self-assigned this Nov 13, 2024
@jcar87
Copy link
Contributor

jcar87 commented Nov 13, 2024

Hi @keef-cognitiv - thanks for opening this PR.

Will check with the team on this one. Our policy is that in line with our terms of use - libraries are provided "as-is". If this library is no longer maintained and does not work with gcc14 - then that's the case, and the best course of action would be to reflect that in the recipe, rather than attempt to fix it. We make some exceptions for trivial fixes (a common case is missing includes from the standard library that were previously transitive).

-        on_error_notification& operator=(on_error_notification o) { ep = std::move(o.ep); return *this; }
+        on_error_notification& operator=(on_error_notification o) RXCPP_DELETE;

This may get the library to build with gcc 14, but it also looks like a functionality change - is it marking an operator with delete where it previously had an implementation? Would it change the behaviour for users in other compilers or previous versions of gcc? This is not something we would want to do.

On top of that, the ongoing risk is that it may be one small fix today - but if the library really is abandoned - in the future more fixes will be needed, and we don't want to end up maintaining a proxy fork via patches in Conan Center.

As I said, will check with the team - as these are dealt in a case-by-case basis, thanks!

Copy link
Member

@AbrilRBS AbrilRBS left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @keef-cognitiv thanks a lot for taking the time to create this PR.

For cases like this, we have been moving away for a while now from accepting these kinds of patches, as this more often than not tends to end up with us being the unoficial maintainers of forks of the recipe.

Thus, I'm proposing a different solution here and will commit them shortly

  • Add a validate_build for versions of gcc >= 14

With this you'd be able to specify -s="rxcpp/*:compiler.version= and have it use an older one that is capable of building the package

Some other things worth noting:

jcar87
jcar87 previously approved these changes Nov 21, 2024
@AbrilRBS AbrilRBS merged commit c593d7a into conan-io:master Nov 21, 2024
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants