On Feb 2, 2008, at 18:49, Rainer Müller wrote:

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:[EMAIL PROTECTED]    (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.

In this thread, I am not looking to solve any problems that may exist with -devel ports. Rather, I'm trying to find the right words to describe the way that -devel ports currently work and should be used, so that I can make a ticket that requests that this be added to the guide. If any of what I wrote does not accurately describe the way - devel ports work or should be used, please let me know.

_______________________________________________
macports-dev mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo/macports-dev

Reply via email to