PortGroup directory hierarchy/priority

Mojca Miklavec mojca at macports.org
Tue May 31 10:34:42 PDT 2016


On 27 March 2016 at 17:33, Rainer Müller wrote:
> On 2016-03-27 16:57, René J.V. Bertin wrote:
>> Can someone please summarise the exact priority rules used in
>> resolving the file to be included when using a PortGroup statement in
>> a port?
>
> 1. _resources/port1.0/group/*.tcl in ports tree of this port
> 2. _resources/port1.0/group/*.tcl in default ports tree
>
> This is here in the base source:
>
> proc PortGroup:
> https://trac.macports.org/browser/trunk/base/src/port1.0/portutil.tcl?rev=147064#L2561
>
> porc getportresourcepath/getdefaultportresourcepath:
> https://trac.macports.org/browser/trunk/base/src/macports1.0/macports.tcl?rev=147103#L1637
>
> The _resource directory is meant to contain files that are specific to
> this ports tree. This allows local modifications to port groups in a
> ports tree without influencing other ports trees.

Can you please explain if the following behaviour is intended by
design or if it is a bug?

"port something portname" works like you describe
"port something ./[path/to/]portname" uses the default portgroup


A concrete example. I modified livecheck in the perl5 PortGroup in the
local svn checkout. Then I tested the following:

$ cd /path/to/local/checkout
$ portindex
$ port -d livecheck perl/p5-b-c # uses *global* resources
$ port -d livecheck perl/p5-* # uses *global* resources
$ cd perl
$ port -d livecheck p5-b-c # uses local resources
$ port -d livecheck p5-* # uses local resources
$ port -d livecheck ./p5-b-c # uses *global* resources
$ cd p5-b-c
$ port -d livecheck ./ # uses local resources
$ port -d livecheck # uses local resources

These examples seem somewhat strange to me.

Mojca


More information about the macports-dev mailing list