#13469 closed enhancement (fixed)
php5: Add mysql5-devel variant
Reported by: | ebgssth@… | Owned by: | ryandesign (Ryan Carsten Schmidt) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 1.5.2 |
Keywords: | php mysql | Cc: | ryandesign (Ryan Carsten Schmidt), jyrkiwahlstedt |
Port: |
Description
Please add mysql5-devel support to PHP5
Change History (13)
comment:1 Changed 17 years ago by ryandesign (Ryan Carsten Schmidt)
Owner: | changed from macports-dev@… to ryandesign@… |
---|---|
Summary: | Add mysql5-devel variant to php5 → php5: Add mysql5-devel variant |
comment:2 Changed 17 years ago by ebgssth@…
I think your idea is cool but I doubt that is apparent to users. explicit +mysql-devel (or +mysql51) is more consistent to the other ports I think. (this is due to the lack of solid MacPorts Guideline) What do you think?
comment:3 Changed 17 years ago by ryandesign (Ryan Carsten Schmidt)
*-devel software really shouldn't be apparent to users, as far as I'm concerned. Users who explicitly want pre-release software should have to look for it a bit.
If we had more *-devel ports, I would not want each other port that depends on that software to have to provide two variants. It would be a mess.
+mysql51 is no good. Who's to say that the mysql5 port won't become MySQL 5.1 once 5.1 is stable?
I still like my way best. I tried to implement it but ran into problems because mysql5 installs into ${prefix}/lib/mysql5 and ${prefix}/include/mysql5 while mysql5-devel installs into into ${prefix}/lib/mysql5-devel and ${prefix}/include/mysql5-devel. Jyrki, is this intentional? I assume it was just copied from the mysql5 portfile (which used to use ${name} in those places). The mysql5 port now uses ${mysql} in those places (which expands to "mysql5"). There are several other differences between the mysql5 and mysql5-devel portfiles, including massive whitespace differences. Jyrki, I'd like the mysql5 and mysql5-devel portfiles to be identical except for the changes needed for the new version. Would you mind if I work on making those changes? (The same applies to php5 and php5-devel, actually.)
comment:4 Changed 17 years ago by ebgssth@…
First, I'm not a big fun of *-devel port name convention. I doubt that name prevents users from installing devel ports. If MacPorts community really want to do that, the community should prepare *-devel ports directory in its SVN. If I remember correctly, package system on Debian GNU/Linux implements its branches of packaging system in this style. People who want to use devel package add devel package's repository to /opt/local/etc/macports/sources.conf.
I think mysql51 port name is quite intuitive. port install mysql5 for installing 5.1 is not so intuitive. Take python packages for example. python21, python22, python23, python24, python25 and python30 Very clear.
Ryan, Do you have any comments on this? If here's not a good place to talk on this, let's move this discussion to macports-users or devel
comment:5 follow-up: 7 Changed 17 years ago by ryandesign (Ryan Carsten Schmidt)
This ticket is for your request of making the php5 port able to support the software currently installed by the mysql5-devel port. Let's keep the notes here relevant to accomplishing just that goal.
We currently use the "-devel" suffix on ports if a pre-release version is needed. When that pre-release series becomes final, the changes get merged into the normal port again. If you would like that policy to change (for example, using "mysql51" in this case instead of "mysql5-devel") please take it up on the macports-dev mailing list so that any changes can be debated, agreed upon and properly documented.
Having mysql5 install MySQL 5.1 in the future would not be so odd. We already have php5 installing PHP 5.2.5 for example. There was simply no reason to maintain ports for PHP 5.0.x and 5.1.x because PHP 5.2.x supersedes them. If there is a good reason to keep both MySQL 5.0.x and MySQL 5.1.x ports at the same time, a mysql51 port can certainly be created. If you feel there's a good reason for keeping 5.0.x around after 5.1.x is released, you can start a discussion on macports-dev or file a new ticket.
comment:6 follow-up: 11 Changed 17 years ago by jyrkiwahlstedt
Ryan, I think it's ok for you to do the modifications you think are necessary. The whitespace differences must come from my using emacs and its tcl mode, that I'm very fond of. You could put yourself as a maintainer there also!
I don't think it would be a good idea to make any port depend on any -devel port. In this case, MySQL is approaching a 5.1 release proper, but there may be some changes still. I expect 5.0 and 5.1 releases to be binary compatible, which is why I think 5.0.* ports won't be maintained after 5.1 release. This is not the case with PostgreSQL the incompatibility being the reason for ports 8.0, 8.1, &c.
BTW, Linux -devel packages are for entirely different purpose, they are meant to include files for development with the packages, e.g. header files.
comment:7 Changed 17 years ago by ebgssth@…
Replying to ryandesign@macports.org:
We currently use the "-devel" suffix on ports if a pre-release version is needed. When that pre-release series becomes final, the changes get merged into the normal port again. If you would like that policy to change (for example, using "mysql51" in this case instead of "mysql5-devel") please take it up on the macports-dev mailing list so that any changes can be debated, agreed upon and properly documented.
Good explanation! Thank you. Could you please add this info to MacPorts Guide? I think not all MacPorts developers keep this rule. There're lots of pre-releasee ports without -devel suffix. Inconsistency is a one problem that I often see in MacPorts system.
Having mysql5 install MySQL 5.1 in the future would not be so odd. We already have php5 installing PHP 5.2.5 for example. There was simply no reason to maintain ports for PHP 5.0.x and 5.1.x because PHP 5.2.x supersedes them. If there is a good reason to keep both MySQL 5.0.x and MySQL 5.1.x ports at the same time, a mysql51 port can certainly be created. If you feel there's a good reason for keeping 5.0.x around after 5.1.x is released, you can start a discussion on macports-dev or file a new ticket.
Another consistency... As I just pointed out, there're many python ports, python2[1-5] and python3k, which is still in alpha stage, doesn't have "-devel" suffix. Anyway, you convinced me :) I started to think having mysql51 is not so good idea. Only one case that keeping 5.0.x after 5.1 released is that help users set up their environment that they are using for their job. Still using mysql 4.0 on production server is not so rare case...
comment:9 Changed 17 years ago by ebgssth@…
Forgot to mention that I already asked py25-mysql maintainer to add mysql5-devel variant in #13410. The change is already commited in.
$ port variants py25-mysql py25-mysql has the variants: universal mysql3 mysql4 mysql5-devel
Ryan, could it be possible to share the same portfile policy saying how to handle devel port dependency?
comment:11 Changed 17 years ago by ryandesign (Ryan Carsten Schmidt)
Replying to jwa@macports.org:
I think it's ok for you to do the modifications you think are necessary. The whitespace differences must come from my using emacs and its tcl mode, that I'm very fond of. You could put yourself as a maintainer there also!
I added myself as co-maintainer of mysql5-devel in r33652. I filed #14142 to handle fixing the inadvertent differences between mysql5 and mysql5-devel.
comment:12 Changed 17 years ago by ryandesign (Ryan Carsten Schmidt)
Resolution: | → fixed |
---|---|
Status: | new → closed |
In r33897 I changed the +mysql5 variant of the php4, php5 and php5-devel ports so that it will work with the mysql5-devel port if it's already installed, otherwise it'll install the mysql5 port.
comment:13 Changed 16 years ago by (none)
Milestone: | Port Enhancements |
---|
Milestone Port Enhancements deleted
No, I would rather make it so that the existing
+mysql5
variant can use either the mysql5 port or the mysql5-devel port, if it is already installed. I assume we can do this by changing theport:mysql5
dependency to apath:${prefix}/bin/mysql_config5:mysql5
dependency. If anyone wants to test that, that'd be great. I'll try to test it soon.