path normalisation in "base"

Daniel J. Luke dluke at
Tue Oct 11 07:09:37 PDT 2016

On Oct 11, 2016, at 10:04 AM, René J.V. Bertin <rjvbertin at> wrote:
> On Tuesday October 11 2016 09:21:09 Daniel J. Luke wrote:
>> one way to handle it could be:
>> +        # don't normalize absolute paths
> See my previous message about why normalisation might be used here; completing a relative path is clearly another reason.
> I wonder a bit why `port provides` supports relative paths; is it used in scripts (or even Portfiles)?

I think it's just for user convenience.

> I could imagine this:
> {{{
> proc macports::normalize { filename } {
>    set nprefix [file dirname [file normalize "${macports::prefix}/foo"]]
>    return [string map {${nprefix} ${macports::prefix}} [file normalize $filename]]
> }
> }}}
> and then action_provides can use macports::normalize instead of [file normalize].
> I'll presume that [string map] will check if ${nprefix} and ${macports::prefix} are equal before doing a replacement mapping.

If you have a solution that doesn't cause regression, I don't see why it wouldn't be accepted into base/

Daniel J. Luke

More information about the macports-dev mailing list