*-devel ports

Ryan Schmidt ryandesign at macports.org
Sat Feb 2 17:08:30 PST 2008


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: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.

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.



More information about the macports-dev mailing list