conda-forge / or-tools-feedstock

A conda-smithy repository for or-tools.
BSD 3-Clause "New" or "Revised" License
2 stars 8 forks source link

Rebuild for protobuf423 #44

Open regro-cf-autotick-bot opened 1 year ago

regro-cf-autotick-bot commented 1 year ago

This PR has been triggered in an effort to update protobuf423.

Notes and instructions for merging this PR:

  1. Please merge the PR only after the tests have passed.
  2. Feel free to push to the bot's branch to update this PR if needed.

Please note that if you close this PR we presume that the feedstock has been rebuilt, so if you are going to perform the rebuild yourself don't close this PR until the your rebuild has been merged.

If this PR was opened in error or needs to be updated please add the bot-rerun label to this PR. The bot will close this PR and schedule another one. If you do not have permissions to add this label, you can use the phrase code>@<space/conda-forge-admin, please rerun bot in a PR comment to have the conda-forge-admin add it for you.

This PR was created by the regro-cf-autotick-bot. The regro-cf-autotick-bot is a service to automatically track the dependency graph, migrate packages, and propose package version updates for conda-forge. Feel free to drop us a line if there are any issues! This PR was generated by https://github.com/regro/cf-scripts/actions/runs/5130810661, please use this URL for debugging.

conda-forge-webservices[bot] commented 1 year ago

Hi! This is the friendly automated conda-forge-linting service.

I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

h-vetinari commented 1 year ago

So, we're back to the AbslStringify redefinition error, this time for real (as protobuf 4.x now brings abseil along I guess).

$SRC_DIR/ortools/base/logging.h:60:6: error: redefinition of 'template<class Sink> void google::protobuf::AbslStringify(Sink&, const Message&)'
   60 | void AbslStringify(Sink& sink, const Message& msg) {
      |      ^~~~~~~~~~~~~
In file included from $SRC_DIR/ortools/base/logging.h:29:
$PREFIX/include/google/protobuf/message.h:342:15: note: 'template<class Sink> void google::protobuf::AbslStringify(Sink&, const Message&)' previously declared here
  342 |   friend void AbslStringify(Sink& sink, const google::protobuf::Message& message) {
      |               ^~~~~~~~~~~~~

@Mizux, you mentioned you had already fixed this in the past at least once? Is there a commit I can cherry-pick or use as a blueprint?

Mizux commented 1 year ago

So, we're back to the AbslStringify redefinition error, this time for real (as protobuf 4.x now brings abseil along I guess).

$SRC_DIR/ortools/base/logging.h:60:6: error: redefinition of 'template<class Sink> void google::protobuf::AbslStringify(Sink&, const Message&)'
   60 | void AbslStringify(Sink& sink, const Message& msg) {
      |      ^~~~~~~~~~~~~
In file included from $SRC_DIR/ortools/base/logging.h:29:
$PREFIX/include/google/protobuf/message.h:342:15: note: 'template<class Sink> void google::protobuf::AbslStringify(Sink&, const Message&)' previously declared here
  342 |   friend void AbslStringify(Sink& sink, const google::protobuf::Message& message) {
      |               ^~~~~~~~~~~~~

@Mizux, you mentioned you had already fixed this in the past at least once? Is there a commit I can cherry-pick or use as a blueprint?

few question:

Relevant History:

h-vetinari commented 1 year ago
  • Which Protobuf version did you use ? v23.2 depends on last version of abseil-cpp (20230125.3)
  • Which version of or-tools did you use ? last version v9.6 still depends on protobuf v21.12 (predate abseil-cpp usage by protobuf)

This is trying to build or-tools 9.6 against v21.12 and v23.2. Both cases use abseil 20230125.3

  • OR-Tools main is using Protobuf v23.2,

If the relevant changes are not extreme, we could backport the respective commits here (even just for the build against v23.2, not v21.12). Or is there a timeline for a new release of or-tools already? Is there any release planned that'll be compatible with both protobuf v21 & v23?

h-vetinari commented 1 year ago

Or is there a timeline for a new release of or-tools already? Is there any release planned that'll be compatible with both protobuf v21 & v23?

Gentle ping @Mizux

Mizux commented 1 year ago

Or is there a timeline for a new release of or-tools already? Is there any release planned that'll be compatible with both protobuf v21 & v23?

Gentle ping @Mizux

  1. I would like to generate a v9.7 around mid July if main is stable.

  2. We don't plan to have a source code compatible with various protobuf version (especially before and after abseil-cpp requirement) just lack of [human] resource to support both. note: not too intrusive patch/PR in or-tools to support "old" protobuf can be discussed (mostly the maintainance/technical debt to evaluate)

  3. So the point is to regularly create a new release with the last up to date release of our dependencies. (ideally I hope to release or-tools each time protobuf/abseil-cpp publish a new release)

h-vetinari commented 1 year ago

Thanks for the info!

Mizux commented 1 year ago

@h-vetinari You may be interested by this: https://github.com/carlocab/homebrew-core/commit/cd8a32fb6d754fe24fc5a28342a60bbea5a70939 warning: not tested yet but could be a clean workaround to manage pre/post protobuf 22

ref: https://github.com/protocolbuffers/protobuf/releases/tag/v22.0