Opened 4 years ago

Last modified 3 years ago

#60788 assigned defect

oniguruma5 and oniguruma6 conflict — at Version 3

Reported by: delphym (DelphyM) Owned by: Schamschula (Marius Schamschula)
Priority: Normal Milestone:
Component: ports Version: 2.6.2
Keywords: Cc:
Port: oniguruma5 oniguruma6

Description (last modified by delphym (DelphyM))

This is just a FYI report, as Macport asked me to report it. macOS v: 10.14.6 Macport v: 2.6.2 affected ports: oniguruma5 -> oniguruma6, jq @1.6_1


After a while I wanted to install a new macport, but have been warned my macport is old so I should run sudo port selfupdate, so I did, but it ended up with following error and suggestion to report a bug:

Error: Can't install oniguruma6 because conflicting ports are active: oniguruma5
Error: Problem while installing oniguruma6
Error: Follow https://guide.macports.org/#project.tickets to report a bug.

I think I've managed to resolve it by following this Stackoverflow post Resolving a macports installation 'conflict'.

I simply tried to uninstall, then reading the port, rather only deactivate the conflicting active port followed with installation of the new version which wanted to rebuild the dependant port.

On the command line it looked like this:

ζ sudo port deactivate oniguruma5                                                                                                             
Note: It is not recommended to uninstall/deactivate a port that has dependents as it breaks the dependents.
The following ports will break: jq @1.6_1
Continue? [y/N]: y
Warning: Deactivate forced.  Proceeding despite dependencies.
--->  Deactivating oniguruma5 @5.9.6_p1_0
--->  Cleaning oniguruma5

Then

ζ sudo port install oniguruma6                                                                                                                
--->  Fetching archive for oniguruma6
--->  Attempting to fetch oniguruma6-6.9.5_0.darwin_18.x86_64.tbz2 from https://packages.macports.org/oniguruma6
--->  Attempting to fetch oniguruma6-6.9.5_0.darwin_18.x86_64.tbz2.rmd160 from https://packages.macports.org/oniguruma6
--->  Installing oniguruma6 @6.9.5_0
--->  Activating oniguruma6 @6.9.5_0
--->  Cleaning oniguruma6
--->  Updating database of binaries
--->  Scanning binaries for linking errors
--->  Found 2 broken files, matching files to ports      
--->  Found 1 broken port, determining rebuild order
You can always run 'port rev-upgrade' again to fix errors.
The following ports will be rebuilt: jq @1.6
Continue? [Y/n]: y
--->  Computing dependencies for jq
--->  Fetching archive for jq
--->  Attempting to fetch jq-1.6_2.darwin_18.x86_64.tbz2 from https://packages.macports.org/jq
--->  Attempting to fetch jq-1.6_2.darwin_18.x86_64.tbz2.rmd160 from https://packages.macports.org/jq
--->  Installing jq @1.6_2
--->  Cleaning jq
--->  Computing dependencies for jq
--->  Deactivating jq @1.6_1
--->  Cleaning jq
--->  Activating jq @1.6_2
--->  Cleaning jq
--->  Scanning binaries for linking errors
--->  No broken files found.                             
--->  No broken ports found.

After that I could carry on with the selfupdate process.

As I said above, I don't expect any immediate fix or solution for my particular scenario would be provided. I'm only reporting it as a FYI because developers seem to be interested in such bugreports to see.

Ideally the fix would do the same step I did in the background or interactively, but it would require kind of AI to analyse each step and possible choice.

Perhaps if the failure on upgrade would rather point out to a specific place in the documentation what to do in such situations rather than a link to report a bug, could be more helpful.

Change History (3)

comment:1 in reply to:  description Changed 4 years ago by ryandesign (Ryan Carsten Schmidt)

Owner: set to Schamschula
Port: oniguruma6 added
Status: newassigned
Summary: sudo port upgrade outdated failed because conflicting ports are activeoniguruma5 and oniguruma6 conflict

Replying to delphym:

This is just a FYI report, as Macport asked me to report it.

To clarify: MacPorts is not asking you to report a bug; rather, it's letting you know how you can report the problem if you believe it is a bug. We could improve the wording of that message to make that clearer.

Here's what happened. You had jq installed. It depended on oniguruma5. The maintainer of jq then updated jq so that it used oniguruma6 instead.

Normally this would not be a problem. Unfortunately in this case it is because the oniguruma5 and oniguruma6 ports are not designed properly: they conflict with one another. If it is still necessary for us to have multiple oniguruma ports, then they should be fixed so that they do not conflict.

The fact that this change in jq would cause the problem you experienced was anticipated and documented by the maintainer of jq but there's nothing to do about it other than for someone to fix the oniguruma ports.

Perhaps if the failure on upgrade would rather point out to a specific place in the documentation what to do in such situations rather than a link to report a bug, could be more helpful.

I agree that it would be good if more of our error messages provided links to documentation pages with a more detailed explanation of the problem and the user's options for fixing it. But so far we don't have such documentation written.

MacPorts always prints the bug reporting instructions when any error occurs. I'm not familiar with the part of MacPorts base that does that so I wouldn't know how to modify it to skip that for certain known conditions that are not considered bugs.

comment:2 Changed 4 years ago by Schamschula (Marius Schamschula)

Both the oniguruma5 and oniguruma6 Portfiles include a line indicating the conflict. This is as it should be.

comment:3 Changed 4 years ago by delphym (DelphyM)

Description: modified (diff)
Note: See TracTickets for help on using tickets.