#16336: Allow multiple ports to satisfy a single dependency ----------------------------------+----------------------------------------- Reporter: rhwood@macports.org | Owner: macports-tickets@lists.macosforge.org Type: enhancement | Status: new Priority: Normal | Milestone: MacPorts base enhancements Component: base | Version: 1.6.0 Resolution: | Keywords: ----------------------------------+----------------------------------------- Comment (by raimue@macports.org): Replying to [comment:8 macsforever2000@macports.org]:
Sometimes the dependency requires the entire port, not just a single file. For example, in the bacula port it requires a database be installed (when not using the client-only variant) but it really doesn't matter which precise version it is. To work around this, I had to create variants for each database version which is cumbersome. So instead of creating a variant for postgresql83, postgresql82, postgresql81 AND postgresl80, I decided to only use the latest version. However, it would be better to just have had a "postgresql8" variant which required any of them. The provides keyword would not work in this case.
So all ports could specify `provides postgresql8` as well, but can they be installed at the same time? We would need some way to express if multiple ports providing the same thing can be installed. For example, python24 and python25 can be installed at the same time, mysql5 and mysql5-devel can not. These are different use cases, maybe we can solve this with only one solution or we need both methods.
However, it brings up an issue. If none of the ports are available, which one gets installed? The first one in the list?
Sounds reasonable.
I fully agree that the provides keyword is also a great idea. But it seems limited in usefulness to devel type ports only.
Just as a note, the OR method requires changing each dependent when adding new ports which would satisfy the dependency. -- Ticket URL: <http://trac.macports.org/ticket/16336#comment:9> MacPorts <http://www.macports.org/> Ports system for Mac OS