*-devel ports
Rainer Müller
raimue at macports.org
Sat Feb 2 16:49:44 PST 2008
Ryan Schmidt wrote:
> No port should depend on a -devel version of a port, unless it will only
> work with the -devel version. Usually this will not be the case.
> Usually, a port will work with the current version of a port and the
> latest development version. A port wanting to accommodate this situation
> should use a different syntax for declaring the dependency. For example,
> php5 can use the MySQL libraries, but works fine with either mysql5 or
> mysql5-devel. Instead of declaring the dependency as "port:mysql5", php5
> should depend on a specific file installed by both mysql5 and
> mysql5-devel, like this: "path:${prefix}/bin/mysql_config5:mysql5". This
> says that php5 requires the file mysql_config5 to exist in the MacPorts
> install prefix bin directory, and if it does not exist, then install the
> mysql5 port. If the user wishes to use mysql5-devel instead, he simply
> installs mysql5-devel beforehand, then installs php5, and php5 will
> recognize that mysql5-devel satisfies the dependency. (I know php5 does
> not do this yet; this is ticket #13469.)
This is just not good behaviour. Instead of defining dependencies on
single files we should find a way to eventually support multiple
versions per port. With this, php5 could depend on port:mysql5 and the
mysql5 port provides stable or unstable. But it should not be limitde to
just a few hardcoded versions. It should be possible to provide as many
versions as needed for a single port.
Multiple port version could share some basics like name, homepage,
description, variants and so on in a single file.
In my opinion if a port provides the same files and installs the same
software (but in another version) it should be the same port.
Even more, we could extend the dependency syntax and allow depending on
versions.
Examples:
port:foo@>=1.0 (depend on any greater version)
port:foo@=1.1 (depend exactly on a specific version)
port:foo@<2.0 (depend on an earlier version)
Basically, any of <, <=, =, >=, > should be possible. It could also
become possible to require specific variants with some syntax.
I know, there would be a lot of base work needed for something like this
to be fully usable, but I think it would be the best solution for the
future to solve all the problems with -devel ports.
Rainer
More information about the macports-dev
mailing list