mysql5 vs mysql devel

Ryan Schmidt ryandesign at macports.org
Wed Dec 23 13:52:03 PST 2009


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.




More information about the macports-users mailing list