Ticket #23921 (closed defect: fixed)
upgrade tries to install new version of inactive port mentioned in depspec when dependency is satisfied by a different active port
| Reported by: | software@… | Owned by: | jmr@… |
|---|---|---|---|
| Priority: | Normal | Milestone: | MacPorts 1.9.0 |
| Component: | base | Version: | 1.8.2 |
| Keywords: | Cc: | ||
| Port: | py26-py2app-devel |
Description
I can not install py26-py2app-devel due to a dependency problem:
# py26-py2app-devel has library dependencies on (among others) py26-macholib and py26-modulegraph-devel # py26-macholib has library dependencies on (among others) py26-modulegraph
So indirectly, py26-py2app-devel depends on both py26-modulegraph-devel and on py26-modulegraph.
When I try to upgrade py26-py2app-devel to the latest version, I get the following error:
hError: Couldn't activate py26-modulegraph 0.7.3_0: Can't install py26-modulegraph because conflicting ports are installed: py26-modulegraph-devel
Attachments
Change History
comment:1 Changed 3 years ago by jmr@…
- Owner changed from macports-tickets@… to jmr@…
- Status changed from new to assigned
Changed 3 years ago by software@…
- Attachment depends-error.log added
ouput of port -d upgrade py26-py2app-devel
comment:2 Changed 3 years ago by software@…
It seem indeed that py26-macholib wants to install py26-modulegraph, despite the presence of the file ${python.pkgd}/modulegraph/init.py.
Some additional info:
- The py26-macholib Portfile on my system is 1.2.1_3.
- This Portfile contains the line "depends_lib-append path:${python.pkgd}/modulegraph/init__.py:py26-modulegraph"
- If I add "puts ${python.pkgd}/modulegraph/init.py" before this line, the path printed is "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/modulegraph/init.py".
- This file is present on my system.
- The ports on my system is 1.8.2, which is the latest version according to selfupdate.
- This is an Intel mac running Mac OS 10.5.8
comment:3 Changed 3 years ago by jmr@…
- Status changed from assigned to closed
- Resolution set to fixed
- Milestone set to MacPorts 1.9.0
- Component changed from ports to base
- Summary changed from dependency problem py26-py2app-devel to upgrade tries to install new version of inactive port mentioned in depspec when dependency is satisfied by a different active port
The log shows that py26-modulegraph is already installed (though inactive), so the upgrade procedure tries to upgrade it because it doesn't know that the dependency is actually being satisfied by another port.
This should already be fixed in trunk. Workarounds for now would be to uninstall py26-modulegraph entirely, or upgrade it to the latest available version so the upgrade procedure will skip it (needs to be done with py26-modulegraph-devel inactive of course).


Full debug output please. I don't see how this could happen since both py26-py2app-devel and py26-macholib actually depend on a file (site-packages/modulegraph/__init__.py) and not on a specific port.