Unexpected results from "make index" on a ports tree in a non-standard location,

Conrad J. Sabatier conrads at cox.net
Sun Mar 4 23:28:39 UTC 2012


On Sun, 4 Mar 2012 17:20:36 -0600
"Conrad J. Sabatier" <conrads at cox.net> wrote:

> To test mkreadmes handling of ports trees in non-standard locations, I
> just did the following:
> 
> #cd /usr
> #mv ports /usr/local
> #cd /usr/local/ports
> #export PORTSDIR=/usr/local/ports
> #make index
> 
> All seemed to proceed normally during the index build, but when I
> checked the resulting INDEX-10 file, all of the ports' paths were
> still using /usr/ports, not /usr/local/ports.
> 
> Did I overlook something, or is there a defect in "make index"?
> 

Ah, I just took a look at Tools/scripts/make_index, and found the
following:

# Save where we are so that we can map all directories formed
# from ${PORTSDIR} to their canonical location '/usr/ports/...'.
chomp($pwd = `pwd`);

# Read each line of output generated by the 'index' target.
while (<>) {
    chomp;
    s/\015$//;

    my @f = split(/\|/);

  # Force to canonical form.
    $f[1] =~ s!^$pwd!/usr/ports!o;
    $f[4] =~ s!^$pwd!/usr/ports!o;

So, I take it, the index file is *supposed* to always map port paths to
"/usr/ports", regardless of where the ports tree is actually located?

Seems a little odd to me, but if that's the case, I guess I'll have to
make some adjustments to mkreadmes.

-- 
Conrad J. Sabatier
conrads at cox.net


More information about the freebsd-ports mailing list