On Nov 27, 2013, at 09:39, Peter Danecek wrote:

> recently when I was upgrading `qgis`, I realised that its dependency on 
> `py2?-pyqt4-devel` potentially causes conflicts which are not easily resolved 
> by users.
> 
> qgis depends on `port:py2?-pyqt4-devel`, while most other ports depend 
> explicitly on `port:py2?-pyqt4`. There are few ports (python/py-matplotlib & 
> science/gnuradio) which use `path:*` so their dependency is resolved by both.
> 
> Now, I imagine that qgis' dependency is due to some specific feature which 
> the port requires. Maybe Vincent could confirm this is the case. But I 
> imagine that py2?-pyqt4-devel would satisfy the requirements of all other 
> dependents of py2?-pyqt4 as well. 
> 
> So are there any objections to implement such changes?

At present, if there is more than one port that can satisfy a dependency, other 
ports should declare a dependency on those ports using a path:-style depspec.


> Side question / discussion:
> 
> I have limited understanding of the Macports base, but I wonder if it would 
> be to difficult to implement a mechanism which would allow to specify several 
> alternative ports instead of the `path:` syntax. What I have in mind is 
> something like this:
> 
> depends_lib-append      {port:py27-pyqt4 port:py27-pyqt4-devel}
> 
> in analogy to the license specification. If any of the dependencies in the 
> braces exist, this dependency would be satisfied, if not the first is 
> installed. 
> 
> An alternative solution to this generic problem could be to specify in the 
> `py2?-pyqt4` port itself that it could be substituted (not "replaced") with a 
> (set of) other ports (here: py2?-pyqt4-devel). At the condition that any of 
> these ports is already installed, dependents would use that port instead. 
> This would avoid to have to change a potentially large set of dependent ports 
> in case an alternative port becomes available and I have the impression that 
> part of the logic can be shared with `replaced_by`. But again, unfortunately 
> I do know to little about base and registry.

You’re talking about https://trac.macports.org/ticket/16336 . Yeah, that would 
be nice. Until we have it, though, path:-style dependencies are what we have to 
use.

_______________________________________________
macports-dev mailing list
macports-dev@lists.macosforge.org
https://lists.macosforge.org/mailman/listinfo/macports-dev

Reply via email to