How to enable trace mode automatically (to hide other ports while building)?

Mojca Miklavec mojca at macports.org
Sun Sep 20 11:46:58 PDT 2015


On Fri, Sep 18, 2015 at 12:08 PM, Ryan Schmidt wrote:
> On Sep 17, 2015, at 10:51 AM, Mojca Miklavec wrote:
>> On Thu, Sep 17, 2015 at 4:47 PM, Rainer Müller wrote:
>>> On 2015-09-17 14:49, Mojca Miklavec wrote:
>>>> I would like to hide a couple of ports while building one specific
>>>> port. I know that I can do this with "port -t build foo", but I would
>>>> like to do this automatically within the Portfile, otherwise the port
>>>> would have to conflict with a whole bunch of other ports without any
>>>> good reason (other than the build system picking headers from the
>>>> wrong package).
>>>
>>> So far, you can't. The only possibiliy is to use the conflicts_build
>>> portgroup.
>>>
>>> Are you sure we really cannot get the build system to use the desired
>>> headers? For example with explicit --with-foo=${prefix} etc.?
>>
>> This should work as long as I could make sure that
>> -I${prefix}/include/lua-5.1 would come before any -I${prefix}/include
>> in all the build commands.
>
> For this particular problem, the correct solution is to fix the lua port by renaming it to lua53 and making it install its headers to a directory that is not ${prefix}/include (and its libraries to a location that is not ${prefix}/lib), just like the other lua ports already do.

As someone pointed out, we might then just as well end up with
    lua5x-modulename
"mess" for the lua modules and we will lose the ability to use lua
"out-of-the-box" for programs outside of macports. I'm not sure if and
how many lua modules we currently ship though. I'm not strictly
against that change, but it needs some thought. (I'm also seriously
considering downgrading the lua port back to version 5.2.)

I kind of keep hoping that the number of programs that are
incompatible with lua 5.3 (and/or 5.2) will keep decreasing and
hopefully drop to zero at some point. I know luajit won't though.

I remember talking about switching the trace mode on by default and
some people having doubts about the change. But given that all the
tricky work has been done already, I could imagine that making some
option inside a port should be doable without too much work.

A particular port that I was trying to upgrade (SciTE) has a build
conflict with a completely unrelated port which just happens to have a
header file with the same name (and different casing). Hiding
non-dependent ports would solve many such problems.

Mojca


More information about the macports-dev mailing list