[42620] trunk/dports/databases/mysql5-devel/Portfile

Big O illogical1 at gmail.com
Thu Nov 27 20:42:01 PST 2008


On Thu, Nov 27, 2008 at 4:49 AM, Ryan Schmidt <ryandesign at macports.org> wrote:
> On Nov 26, 2008, at 15:48, illogic-al at macports.org wrote:
>
>> Revision: 42620
>>          http://trac.macports.org/changeset/42620
>> Author:   illogic-al at macports.org
>> Date:     2008-11-26 13:48:36 -0800 (Wed, 26 Nov 2008)
>> Log Message:
>> -----------
>> Add embedded_server variant. Add revision. Fixes ticket #17410.
>
> I'll have to look at this feature, but I may want to just build this all the
> time and forget the variant. (Variants should be created sparingly and only
> when really necessary.) I'm just not sure what's up with the -fPIC and
> --with-pic business. Can you explain?
libmysqld.a needs to be built with -fPIC because it will be linked in
a shared library. the configure flag --with-pic is supposed to do this
but, do to a bug in mysql-5.1 it does not. That's why the c(xx)flag
-fPIC is explicitly added.
http://bugs.mysql.com/bug.php?id=39288
I don't know how building all of mysql with -fPIC would change/affect
anything so I thought making the change in a variant would keep any
issues localized to +embedded_server users (i.e. amarok users).

> Some discussion on this change beforehand would have been good. You did
> nothing wrong since the port is openmaintainer, and mysql5-devel is a
> low-profile port because nobody should be using -devel ports for anything
> important, however mysql5 is a high-profile port and I strive to keep mysql5
> and mysql5-devel in sync in terms of features. So I'm going to remove
> openmaintainer from mysql5-devel now. I'm happy to entertain any changes you
> want to make, I just need to know about them and understand them so that I
> can properly support users who come to me asking about them.
mysql5 can build libmysqld.a as well but from what I understand, this
isn't a supported feature. From all reports though, it works fine.

>
>
>> Modified Paths:
>> --------------
>>    trunk/dports/databases/mysql5-devel/Portfile
>>
>> Modified: trunk/dports/databases/mysql5-devel/Portfile
>> ===================================================================
>> --- trunk/dports/databases/mysql5-devel/Portfile        2008-11-26
>> 21:45:29 UTC (rev 42619)
>> +++ trunk/dports/databases/mysql5-devel/Portfile        2008-11-26
>> 21:48:36 UTC (rev 42620)
>> @@ -5,6 +5,7 @@
>>  name                    mysql5-devel
>>  set vers                5.1.29
>>  version                 ${vers}-rc
>> +revision                2
>
> Note that
>
> a) there was no reason to increase the revision when only adding a variant,
> because nothing will change for anyone who already had the port installed;
> anyone who wants this variant still has to rebuild the port with the new
> variant (though if we change it to build the embedded server always, and
> delete the variant, as I suggested above, then we will have to increase the
> revision, because that will change the files that get installed)
I misunderstood the revision's purpose then. I thought that if new
files were being installed that I had to add a revision. Sorry.

>
> b) the default revision is 0, not 1, so if you add a revision line to a port
> that didn't have one, in order to increase the revision, the line should set
> the revision to 1, not 2
Should I fix that?

>
>
>>  set branch              [join [lrange [split ${version} .] 0 1] .]
>>  homepage                http://www.mysql.com/
>>  categories              databases
>> @@ -95,6 +96,13 @@
>>     configure.cppflags-append   -I${worksrcpath}/include
>>  }
>>
>> +variant embedded_server description "Build libmysqld embedded server" {
>> +    configure.cflags-append -fPIC
>> +    configure.cxxflags-append -fPIC
>> +    configure.args-append --with-embedded-server \
>> +    --with-pic
>> +}
>> +
>>  variant server description {add a startup item} {
>>     configure.args-delete --without-server
>>     # Create a startupitem to start/stop the server
>> @@ -131,21 +139,21 @@
>>     # Some directories we must have in all cases
>>     xinstall -m 755 -d ${destroot}${sysconfdir}
>>     destroot.keepdirs-append ${destroot}${sysconfdir}
>> -
>> +
>>     # It has trouble installing in parallel if this doesn't already exist
>>     # See http://bugs.mysql.com/36560
>>     xinstall -d ${destroot}${prefix}/mysql-test
>>     xinstall -d ${destroot}${prefix}/mysql-test/ndb
>> -
>> +
>>     # Setup only for server
>>     if { [variant_isset server] } {
>>         addgroup ${mysqluser}
>>         set gid [existsgroup ${mysqluser}]
>>         adduser ${mysqluser} gid=${gid} realname=MySQL\ Server
>> -
>> +
>>         # Some directories we must have only if we're running as a server
>>         xinstall -m 755 -o root -d ${destroot}${prefix}/var/run
>> -
>> +
>>         xinstall -m 755 -o ${mysqluser} -g ${mysqluser} -d \
>>             ${destroot}${dbdir} \
>>             ${destroot}${prefix}/var/run/${mysql}
>> @@ -157,7 +165,7 @@
>>
>>  post-destroot {
>>     delete ${destroot}${prefix}/mysql-test
>> -
>> +
>>     # Fix paths in manpages and sample configuration files
>>     foreach manpage [glob -type f
>> ${destroot}${prefix}/share/man/man\[1-9\]/*] {
>>         reinplace "s|/etc/my.cnf|${sysconfdir}/my.cnf|g" ${manpage}
>> @@ -165,7 +173,7 @@
>>     foreach samp_conffile [glob -type f
>> ${destroot}${prefix}/share/${mysql}/mysql/my-*.cnf] {
>>         reinplace "s|/etc/my.cnf|${sysconfdir}/my.cnf|g" ${samp_conffile}
>>     }
>> -
>> +
>>     # Symlink mysql binaries into bin directory, with ${major_version}
>> appended to the name
>>     foreach f [glob -tails -directory ${destroot}${bindir} my*] {
>>         ln -sf ${bindir}/${f}
>> ${destroot}${prefix}/bin/${f}${major_version}
>
> Please don't make stylistic whitespace changes in ports that others
> maintain. :) In this case there's again consistency with mysql5 (and to a
> lesser extent mysql4) to consider, and it's also just the style I use in
> most of my ports so I like to keep it that way.
heheh. Sorry about that.

>
>
>



-- 
All your gmail are belong to us.


More information about the macports-dev mailing list