Opened 7 years ago
Last modified 16 months ago
#56135 assigned enhancement
protobuf-cpp in conflict with protobuf3-cpp
Reported by: | btywoniuk (Bart) | Owned by: | mascguy (Christopher Nielsen) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | |
Keywords: | Cc: | fswasey, ryandesign (Ryan Carsten Schmidt) | |
Port: | protobuf-cpp protobuf3-cpp protobuf-java protobuf3-java py-protobuf py-protobuf3 |
Description (last modified by ryandesign (Ryan Carsten Schmidt))
Can't install protobuf-cpp because conflicting ports are active: protobuf3-cpp
Error: Can't install protobuf-cpp because conflicting ports are active: protobuf3-cpp Error: Problem while installing protobuf-cpp Error: rev-upgrade failed: Error rebuilding mosh
Change History (23)
comment:1 Changed 7 years ago by raimue (Rainer Müller)
Keywords: | mosh protobuf-cpp protobuf3-cpp removed |
---|---|
Milestone: | MacPorts 2.6.0 |
Owner: | set to blair |
Port: | protobuf-cpp protobuf3-cpp added; mosh removed |
Status: | new → assigned |
Type: | defect → enhancement |
comment:2 Changed 7 years ago by raimue (Rainer Müller)
Here is a look at what other distributions are going, because they must have figured this out already. Most seem to provide protobuf with version 2.6.x or 3.5.x (the C++ library) and also protobuf-c at 1.2.x or 1.3.x (a wrapper around the C++ code for pure C).
protobuf-cpp and protobuf3-cpp do not exist anywhere else but in MacPorts. I assume this is where all our problems come from, it is not supposed to be packaged like this in parallel.
Blair, any comments on why you chose to package it this way? Is there any reason to keep protobuf 2.x around?
I propose to get rid of protobuf 2.x and simplify this:
- move protobuf3-cpp to protobuf
- mark protobuf3-cpp and protobuf-cpp as
replaced_by protobuf
- move protobuf3-java to protobuf-java
- move py-protobuf3 to py-protobuf
- mark py-protobuf3 as
replaced_by py-protobuf
This would match what everybody else seems to be doing.
comment:3 Changed 7 years ago by raimue (Rainer Müller)
Port: | protobuf protobuf-java protobuf3-java py-protobuf py-protobuf3 added |
---|
comment:4 Changed 7 years ago by pmetzger (Perry E. Metzger)
Rainer, this seems good to me. It will reduce the mess a lot. It will probably require upgrading a couple of the ports but there aren't that many involved.
comment:5 Changed 7 years ago by pmetzger (Perry E. Metzger)
I have a pull request in now to update protobuf-c to a version that is compatible with the latest protobuf implementation. That should be committed soon. I believe the other ports that might not work with the latest protobuf can also be easily updated.
comment:6 Changed 7 years ago by pmetzger (Perry E. Metzger)
Okay, after speaking with Rainer, I'm more or less executing his suggestion.
comment:7 follow-up: 8 Changed 7 years ago by blair (Blair Zajac)
The original naming was after zeroc's ice. The plan looks good to me, although it doesn't leave space for protobuf 4 if it ever comes out. But we can worry about that problem in the future.
comment:8 Changed 7 years ago by ryandesign (Ryan Carsten Schmidt)
Description: | modified (diff) |
---|
Replying to blair:
The plan looks good to me, although it doesn't leave space for protobuf 4 if it ever comes out. But we can worry about that problem in the future.
Wouldn't all the ports simply be updated to version 4 at that time? Why keep version 3 around then?
comment:9 follow-up: 13 Changed 7 years ago by blair (Blair Zajac)
Some ports may not easily be upgradable. We commonly support multiple versions of ABI incompatible libraries, e.g. serf0 and serf1, so why would protobuf be different?
comment:10 Changed 7 years ago by pmetzger (Perry E. Metzger)
As of now:
- ola cannot be updated to protobuf3 without adding some patches found in https://github.com/OpenLightingProject/ola/pull/1336/files
- rethinkdb doesn't seem to build at the moment so I can't test it. Our version is ancient and nomaintainer.
- The version of shogun-devel we have is 4.0.0, while shogun itself is at version 6.1.3. maintainer is stromnov.
I still need to look at MyPaint and sumo. I have pull requests in for the rest or have already committed them.
comment:11 follow-up: 12 Changed 6 years ago by fswasey
Any suggestions about getting mosh upgraded while this problem is being resolved?
$ sudo port list outdated Warning: The 'list' action only shows the currently available version of each port. To see installed versions, use the 'installed' action. mosh @1.3.2 net/mosh
$ sudo port upgrade mosh ---> Computing dependencies for protobuf3-cpp Error: Can't install protobuf3-cpp because conflicting ports are active: protobuf-cpp Error: Problem while installing protobuf3-cpp Error: Follow https://guide.macports.org/#project.tickets to report a bug.
Oh -- never mind... it was the currently installed version of mosh that was requiring protobuf-cpp ... worked around it by uninstalling mosh and then installing it again.
comment:12 Changed 6 years ago by ryandesign (Ryan Carsten Schmidt)
Cc: | fswasey added |
---|
Replying to fswasey:
$ sudo port list outdated
Note that:
port list outdated
does not show you what you think it shows you. Please see wiki:FAQ#portlist. You wantport outdated
instead.- There is no need to use
sudo
for read-only actions likeport list
orport outdated
orport installed
.
comment:13 Changed 6 years ago by ryandesign (Ryan Carsten Schmidt)
Replying to blair:
Some ports may not easily be upgradable. We commonly support multiple versions of ABI incompatible libraries, e.g. serf0 and serf1, so why would protobuf be different?
Well please decide what you want. If you want to offer multiple versions such that different ports can use different versions of protobuf, they need to not conflict; see #56102. That's what I originally suggested, and that's what serf0 and serf1 do, but I don't think you responded to that idea for protobuf, and others took charge and decided to upgrade everything to the latest version instead. See https://github.com/macports/macports-ports/pull/1628.
comment:14 Changed 6 years ago by blair (Blair Zajac)
Since I'm not doing any work on it, I'm just throwing in suggestions. The better way is to support multiple versions to deal with ports that have dependencies that haven't updated.
That said, since I'm not doing the work, this works, since it appears most ports have been updated to protobuf3.
To the original question, at the time, I didn't do the work to have the two ports be installable at the same time, maybe due to lack of time, to do the job right.
comment:15 Changed 6 years ago by pmetzger (Perry E. Metzger)
I think we are going to complete the conversion of the rest of the ports to protobuf3 in the next couple of weeks.
comment:16 Changed 5 years ago by mf2k (Frank Schima)
Owner: | blair deleted |
---|---|
Port: | protobuf removed |
Type: | enhancement → defect |
Version: | 2.4.2 |
comment:17 Changed 5 years ago by mf2k (Frank Schima)
Type: | defect → enhancement |
---|
comment:20 Changed 4 years ago by mf2k (Frank Schima)
Yes
$ port info --conflicts protobuf-cpp conflicts: protobuf3-cpp
comment:21 Changed 18 months ago by mascguy (Christopher Nielsen)
Owner: | set to mascguy |
---|
Ultimately we need to segregate these ports, in order to support multiple upstream versions. So I'll add this to my list.
comment:22 follow-up: 23 Changed 16 months ago by mascguy (Christopher Nielsen)
While this is only an intermediate step, a new segregated port - protobuf3-cpp-upstream
- has been created, covering the latest release:
https://github.com/macports/macports-ports/commit/7e50f3aada608a3f03515f9eae5eba01d4abb04b
Still need to tackle segregating protobuf-cpp
, but it's on my longer-term to-do list.
comment:23 Changed 16 months ago by mascguy (Christopher Nielsen)
Replying to mascguy:
While this is only an intermediate step, a new segregated port -
protobuf3-cpp-upstream
- has been created, covering the latest release:https://github.com/macports/macports-ports/commit/7e50f3aada608a3f03515f9eae5eba01d4abb04b
On a related note: Given that the Python port doesn't appear to be versioned - preventing side-by-side installation in that space - it's not clear whether it will be feasible to update py-protobuf3
. Though if the latest release is backward compatible - at least for the Python bindings - perhaps updating is possible.
Still need to take a closer look at all of this, when I can find time. Stay tuned...
See discussion in https://github.com/macports/macports-ports/pull/690