On Jan 14, 2008, at 03:18, Emmanuel Hainry wrote:
If more than one port installs a binary foo, and either one is good enough, this could be specified in a portfile by saying
depends_lib path:${prefix}/bin/foo:bar
where "bar" is the preferred port for providing foo if it is not already installed.
The dependencies would have to be changed in all ports that currently depend directly on teTeX.
- Seems like it would be more valuable to say "either this port or that port" rather than "depends on file", because there might be many many files that need to be supported.
Perhaps. But MacPorts does not currently have any syntax for specifying that, and we've gotten along without it so far. The alternative that we currently have available is to specify that a port depends on a certain file existing, and if it does not, then install one particular port that provides that file. There might be another port (or ports) that could also provide that file, but the user would have to know about this and install that other port first. The dependent port that's specified should be the one that "most" users would want.
At the moment, what dependent ports will check for is a texmf tree (provided by texlive_texmf-minimal and some binaries (latex, pdflatex, mktexlsr...). So the best dependency scheme would probably be bin:latex:texlive. So that people with tetex who do not care to have the latest distribution can live with teTeX (which works well).
Using something like "bin:latex:texlive" is discouraged because a latex binary outside of the MacPorts prefix would satisfy the dependency, but we don't want it to; we only want latex binaries installed by MacPorts to be detected[1]. Therefore, "path:${prefix}/ bin/latex:texlive" should be used instead. [1] http://trac.macosforge.org/projects/macports/wiki/ FAQ#WhyisMacPortsusingitsownlibraries