mysql5 vs mysql devel

Bradley Giesbrecht brad at pixilla.com
Thu Dec 24 08:40:56 PST 2009


On Dec 23, 2009, at 1:52 PM, Ryan Schmidt wrote:

> On Dec 23, 2009, at 11:52, Bradley Giesbrecht wrote:
>
>> The ports I work on that have mysql deps I use this:
>>
>>   depends_lib-append path:${prefix}/bin/mysql_config5:mysql5
>>
>> Both mysql5 and mysql5-devel seem to park this here but I haven't  
>> checked in a long time.
>
> Yes, they do. FYI, you can omit "${prefix}/" from that path  
> specification; it's implied.
>
>
>> If mysql_config5 does move around based on the mysql port installed  
>> maybe this would work for you.
>
> mysql_config5 does not move around, neither does libmysqld.a; the  
> dependency specification was simply entered incorrectly into the  
> portfile and has now been corrected.
>
>
>> Mysql 6 will undoubtedly break this which is why I wish we would  
>> just do away with this package versioning "feature" and just  
>> install things with the names most of the rest of the world expect.  
>> Changing prefix is mostly support by packages but changing  
>> executable names just makes for a lot more more work in my opinion.
>>
>> Now where else have I typed mysql4 or mysql5, it's always mysql.  
>> mysqldump5, nope, mysqldump.
>>
>> Sure, add some simlinks but what are we gaining from this feature?
>
> As Daniel mentioned, one purpose of this is to allow simultaneous  
> installation of the different versions. Unfortunately in this case  
> that goal is not met:
>
> http://trac.macports.org/ticket/4115
>
>
>> What if we had the current mysql use mysql and older version get  
>> the mysql4 tag?
>>
>> When mysql gets updated to v6 it get's mysql and mysql v5 gets  
>> mysql5.
>
> What you describe is how most ports work in MySQL, but we handle  
> database ports (like MySQL (mysql4, mysql5), PostgreSQL  
> (postgresql82, postgresql83, postgresql84, etc.) BerkeleyDB (db44,  
> db45, db46, db47, etc.) differently because they come with  
> associated user data (the user's databases) which typically need to  
> be upgraded in some way as well, and usually once you've upgraded,  
> you can't downgrade. A new version of the database program may also  
> come with new features (and new bugs) and the user may have good  
> reason for wanting to remain with an older version for awhile. This  
> is why we give the user separate ports, to give them the choice to  
> upgrade when they're ready for it.
>
> Actually, it's not just databases we handle that way; languages (I'm  
> thinking of PHP -- php4, php52, php5 -- and GCC -- gcc40, gcc41,  
> gcc42, gcc43, etc.) can have the same issue.


What if we suffixed $major (current practice) to all these packages  
that need multiple versions available and when we do we add a port  
called, for example, mysql-default that has variants +3, +4, +5 etc  
and it installs simlinks for all the files and dirs to locations  
$prefix/lib ./bin ./share ./etc .....

Wouldn't these simlinks make a lot of ports that depend on these  
packages build with little or no modification?

I'm sending this email in the hopes I'm not being stupid. It's to  
early and I haven't had enough coffee.


// Brad



More information about the macports-users mailing list