/opt/local/share/info/dir
Pieter van Oostrum
pieter-l at vanoostrum.org
Sun Jan 12 22:57:54 UTC 2020
Pieter van Oostrum <pieter-l at vanoostrum.org> writes:
> I noticed that on my computer /opt/local/share/info/dir hasn't been
> updated for a couple of months although I installed several ports with
> info files. My /opt/local/share/info/dir has dat Nove. 7, and several
> *.info files in /opt/local/share/info/ are not in the dir file. Even
> some files older than that aren't included.
>
> For example the gdb port was installed on Oct 22, but ggdb.info* files
> are present in /opt/local/share/info/, but it is not in the dir file.
> There is, however, an older entry
> * Gdb: (gdb). The GNU debugger.
> which is no longer functional.
>
> Should the install procedure not automatically update the dir file? Or
> must I do something special to get it updated?
I investigated this a bit more, and found the cause:
The Portfile for gdb renames the info files from gdb.info to ggdb.info in post-destroot:
foreach info [glob -tails -directory ${destroot}${prefix}/share/info g*] {
move ${destroot}${prefix}/share/info/${info} ${destroot}${prefix}/share/info/g${info}
}
but the entry for gdb in dir is
* Gdb: (gdb)
So this then becomes a dangling pointer.
I see 3 possible solutions:
1) Just leave the files as they are, i.e. gdb.info. That seems to what grep does: it keeps grep.info, not ggrep.info.
2) Update dir to accurately reflect the new file name,
e.g. something like
'install-info --info-dir=${destroot}${prefix}/share/info/ --entry="* Gdb: (ggdb). The GNU debugger." ${destroot}${prefix}/share/info/ggdb.info'
Then probably the useless entry (gdb) should be deleted with 'install-info --delete'.
3) Patch the direntry in gdb.texi, that determines what comes in dir:
@direntry
* Gdb: (gdb). The GNU debugger.
* gdbserver: (gdb) Server. The GNU debugging server.
@end direntry
Change gdb to ggdb.
--
Pieter van Oostrum
www: http://pieter.vanoostrum.org/
PGP key: [8DAE142BE17999C4]
More information about the macports-users
mailing list