Opened 9 years ago
Last modified 6 years ago
#51298 assigned defect
Base does not prevent conflicting port activation when portfile from registry cannot be executed
Reported by: | dstrubbe (David Strubbe) | Owned by: | macports-tickets@… |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | base | Version: | 2.3.4 |
Keywords: | Cc: | SickTeddyBear, ryandesign (Ryan Carsten Schmidt), W-E-Brown, akimd (Akim Demaille) | |
Port: |
Description (last modified by dstrubbe (David Strubbe))
There is some kind of problem with libgcc and libgcc-devel, such that they cannot activate and deactivate cleanly in the presence of the other. Possibly this is related to the warnings that the Portfile from the registry could not be executed.
$ sudo port activate libgcc ---> Computing dependencies for libgcc Warning: Failed to execute portfile from registry for libgcc @5.2.0_0 ---> Activating libgcc @5.2.0_0 Error: port activate failed: Image error: /opt/local/lib/libgcc/libatomic.1.dylib is being used by the active libgcc-devel port. Please deactivate this port first, or use 'port -f activate libgcc' to force the activation. $ port installed libgcc The following ports are currently installed: libgcc @5.2.0_0 $ sudo port -f deactivate libgcc-devel $ sudo port install libgc $ sudo port activate libgcc-devel @6-20160410_0 ---> Computing dependencies for libgcc-devel Warning: Failed to execute portfile from registry for libgcc-devel @6-20160410_0 ---> Activating libgcc-devel @6-20160410_0 Error: port activate failed: Image error: /opt/local/lib/libgcc/libatomic.1.dylib is being used by the active libgcc port. Please deactivate this port first, or use 'port -f activate libgcc-devel' to force the activation. $ port installed libgcc libgcc @5.3.0_1 (active)
Change History (10)
comment:1 Changed 9 years ago by dstrubbe (David Strubbe)
Description: | modified (diff) |
---|
comment:3 Changed 9 years ago by ryandesign (Ryan Carsten Schmidt)
Cc: | ryandesign@… added |
---|
The libgcc and libgcc-devel ports are intentionally marked as conflicting with one another. They are drop-in replacements for one another, but intentionally only one or the other can be active at once.
I don't understand why MacPorts did not notify you of the conflict earlier in the process.
Your ports are outdated. The current version of libgcc is 6.1.0; the current version of libgcc-devel is 7-20160501. Run sudo port selfupdate
to get these updates.
comment:5 follow-up: 6 Changed 9 years ago by dstrubbe (David Strubbe)
Yes, I know they are conflicting; the fact that an appropriate message about that did not come up is the problem. My upgrade is blocked by #51245.
comment:6 Changed 9 years ago by ryandesign (Ryan Carsten Schmidt)
Replying to dstrubbe@…:
Yes, I know they are conflicting; the fact that an appropriate message about that did not come up is the problem.
Well the ports declare the conflict. If MacPorts didn't notify you of it, that would be a bug in MacPorts base, though I don't think I've encountered it before.
comment:7 Changed 9 years ago by dstrubbe (David Strubbe)
Component: | ports → base |
---|---|
Port: | libgcc libgcc-devel removed |
I ran with -d and I get:
DEBUG: Found Dependency: receipt exists for libgcc DEBUG: Can't install libgcc-devel because conflicting ports are active: libgcc while executing "_mporterrorifconflictsinstalled $mport" (procedure "mportdepends" line 17) invoked from within "mportdepends $mport $target" (procedure "mportexec" line 48) invoked from within "mportexec $mport $target" Warning: Failed to execute portfile from registry for libgcc-devel @6-20160410_0 ---> Activating libgcc-devel @6-20160410_0
So, the "failure to execute the Portfie" is in fact the meaningful error, but which is not being shown to the user, and is not stopping the activation process. That is the base bug, evidently.
comment:8 Changed 8 years ago by akimd (Akim Demaille)
Cc: | akimd added |
---|
comment:9 Changed 8 years ago by kurthindenburg (Kurt Hindenburg)
Owner: | changed from mww@… to macports-tickets@… |
---|---|
Status: | new → assigned |
comment:10 Changed 6 years ago by ryandesign (Ryan Carsten Schmidt)
Summary: | libgcc and libgcc-devel interfere → Base does not prevent conflicting port activation when portfile from registry cannot be executed |
---|
For the record, this is with OSX 10.10.5.