tcl or portfile keyword for alias
Bradley Giesbrecht
brad at pixilla.com
Tue Feb 10 09:59:08 PST 2009
On Feb 9, 2009, at 9:57 PM, Ryan Schmidt wrote:
>
> On Feb 9, 2009, at 22:52, Bradley Giesbrecht wrote:
>
>> On Feb 9, 2009, at 8:41 PM, Ryan Schmidt wrote:
>>
>>> On Feb 9, 2009, at 22:34, Bradley Giesbrecht wrote:
>>>
>>>> On Feb 9, 2009, at 4:18 PM, Ryan Schmidt wrote:
>>>>
>>>>> On Feb 9, 2009, at 17:53, Ryan Schmidt wrote:
>>>>>
>>>>>> You could prepend ${prefix}/lib/mysql5/bin to the PATH. That's
>>>>>> where the program "mysql_config" lives.
>>>>>>
>>>>>> configure.env-append PATH=${prefix}/lib/mysql5/bin:$env(PATH)
>>>>>
>>>>> The reason it then still doesn't work is because libzdb is
>>>>> calling mysql_config incorrectly. As you note, it uses
>>>>> "mysql_config --libs $LDFLAGS". It is not correct to put
>>>>> "$LDFLAGS" at the end of that command invocation. The correct
>>>>> way to call it is just "mysql_config --libs". It works for you
>>>>> on the command line because LDFLAGS is empty by default, but
>>>>> MacPorts fills it with a value, so when run within MacPorts, it
>>>>> fails. If you look in the config.log, you see that mysql_config
>>>>> is printing its usage message, showing that the way it is being
>>>>> used is not correct. Attached is a Portfile and patch that work
>>>>> for me. You should send the patchfile to the author of libzdb.
>>>>>
>>>>> In the Portfile, I also added a dependency on mysql5, and added
>>>>> configure arguments to disable postgresql and sqlite. If you
>>>>> want to enable postgresql or sqlite, remove the corresponding
>>>>> configure argument and add the required dependency.
>>>>
>>>> I had a more complex Portfile which I trimmed down before posting
>>>> to make it simple to try.
>>>>
>>>> I guess I'm old school that way.
>>>>
>>>> The patch Portfile attached to your email removed the patch file.
>>>> I like it but it didn't work.
>>>> If I add the patch and remove the $LDFLAGS in the patch
>>>> "mysql_config --libs $LDFLAGS" to "mysql_config --libs" it works.
>>>
>>> But... the Portfile I attached said
>>>
>>> patchfiles patch-configure
>>>
>>> And I attached my revised patch-configure which said
>>>
>>> - LDFLAGS=`mysql_config --libs $LDFLAGS`
>>> - CPPFLAGS=`mysql_config --include $CPPFLAGS`
>>> + LDFLAGS="`mysql_config --libs` $LDFLAGS"
>>> + CPPFLAGS="`mysql_config --include` $CPPFLAGS"
>>>
>>> to fix the problem with calling mysql_config. My Portfile also
>>> fixed the PATH in the configure phase with
>>>
>>> configure.env-append PATH=${prefix}/lib/mysql5/bin:$env(PATH)
>>>
>>> so that mysql_config could be found. I tested this before
>>> attaching it to the email and it worked for me as sent.
>>
>> Reading your comment " It is not correct to put "$LDFLAGS" at the
>> end of that command invocation." and without looking in
>> "config.log" personally I assumed you meant to remove the
>> "$LDFLAGS" from "mysql_config --libs $LDFLAGS" in the patch.
>>
>> I just copied your revised Portfile and patch-configure file and
>> ran "port clean --all" and "port configure" and it failed.
>>
>> Altering the patch to remove ""$LDFLAGS"" fixed the configure
>> problems.
>>
>> Anyways, without looking at the configure.log I believe you are
>> right and that is very cool. I will pass your/our patch upstream.
>
> LDFLAGS should not be inside the backticks, but should presumably be
> outside the backticks. The way the developer had it, he was saying
> "set LDFLAGS to the value of the program invocation `mysql_config --
> libs $LDFLAGS`" and that's not a valid invocation of mysql_config if
> $LDFLAGS is nonempty. I changed it to say "set LDFLAGS to the value
> of the program invocation `mysql_config --libs` and then a space and
> then whatever was already in $LDFLAGS" which I think is what the
> developer was trying to say, but maybe he never tested with LDFLAGS
> nonempty.
>
> I just tried again with the files I sent earlier and it works fine.
> Make a directory libzdb, put Portfile in it, make a files directory
> in it, put patch-configure in the files directory, cd to the libzdb
> directory, and run port -d configure. For me it says:
I appologize. I may have not noticed the change you made to the patch
to move the $LDFLAGS outside the backticks.
Your right, your files work. Thank you for your help.
Now I need to finish the Portfile so I can continue with the dbmail-
devel port.
Since libzdb may be used by someone else some day I'm trying to think
what to do with it.
Should I make variants for sqlite, mysql and postgresql or just let
the configure script look for all three and fail with a message if it
finds nothing?
I remember you (Ryan) saying it's nice to keep the variant count to a
minimum.
//Brad
More information about the macports-dev
mailing list