call script from Portfile?
Bradley Giesbrecht
brad at pixilla.com
Tue Sep 7 12:43:51 PDT 2010
On Sep 7, 2010, at 12:34 PM, Titus von Boxberg wrote:
> Am 07.09.2010 um 21:19 schrieb Bradley Giesbrecht:
>
>>
>> On Sep 7, 2010, at 8:56 AM, Titus von Boxberg wrote:
>>
>>> Am 01.09.2010 um 08:29 schrieb Ryan Schmidt:
>>>
>>>>
>>>> On Sep 1, 2010, at 01:09, Titus von Boxberg wrote:
>>>>
>>>>> Is there a phase when both the port is activated and the build
>>>>> directory
>>>>> is still in place? Is there a thing like post-activation ?
>>>>
>>>> Yes, you can write a post-activate phase. But that's not the
>>>> correct place to do the type of fix you're proposing. The correct
>>>> place is probably the post-build phase. You can look at the
>>>> oracle-instantclient for a (convoluted) example of calling
>>>> install_name_tool in a portfile (it does it in the build phase,
>>>> but you probably have an existing build phase you don't want to
>>>> overwrite, so you probably want post-build instead).
>>>>
>>> Just to refresh the thread:
>>> The original question was if and when to call an external script
>>> that calls install_name_tool
>>> which is necessary for wxWidgets-devel.
>>>
>>> I figured that it would be easiest to define a post-install phase.
>>> Then the already existing script from wxWidgets can be called
>>> without modifications.
>>> That cannot be done in the post-build phase. In this phase I would
>>> have to patch
>>> the script or handcraft the call of install_name_tool like in
>>> oracle-instantclient
>>> which imo would only clutter the Portfile if there is a oneliner
>>> at hand.
>>>
>>> Is there a variable that defines the installation directory for
>>> the port?
>>> I.e. the path ${prefix}/var/macports/software/.../${prefix}?
>>> Or maybe only the ... component? Or at least a variable holding
>>> all variants?
>>>
>>> And why would the post-activate phase not be the correct place to
>>> call change_install_name?
>>> Is a port ever used before activation?
>>
>> I'm not sure when but at some point port registers the files
>> installed. If you change the names of files after this point the
>> commands like "port uninstall", "port contents" and "port provides"
>> be adversely effected.
> I'm not changing the names of the files.
> port uninstall works well with this type of post-install script.
> I only do not know how to get the path to the installation directory
> because one component in it depends on variants selected.
In which ever phase you want to work you can add some "if
[variant_isset myvariant]" logic.
man portfile
/variant
// Brad
More information about the macports-dev
mailing list