Hi Maxim, Maxim Cournoyer <maxim.courno...@gmail.com> skribis:
> Unfortunately I cannot reproduce the problem on my side, although you seem to > be > right that this is caused by the `string-contains` not matching > "/share/man/" in the manpage-path and returning #f... > > The only reason I'd suspect this could happen was if the `find-files` > method (used io list all the files contained under > "$manifest-inputs/share/man/") somehow returned bogus paths (I saw that > this function has a "fail-on-error?" argument which is disabled by default). > > To help further troubleshoot this, could you please use the provided > patch instead, where I inserted: > > > (define (get-manpage-tail-path manpage-path) > (let ((index (string-contains manpage-path "/share/man/"))) > + (unless index > + (error "Manual path doesn't contain \"/share/man/\":" > + manpage-path)) > (substring manpage-path (+ index (string-length > "/share/man/"))))) > > (define (populate-manpages-collection-dir entries) > > to print the unexpectedly formed manpage-path. The problem happens with "/gnu/store/rn3vri602z3jpwqnha0r5nwxi6v0qpnx-texlive-2016/share/man" (no trailing slash): --8<---------------cut here---------------start------------->8--- $ ls -l "/gnu/store/rn3vri602z3jpwqnha0r5nwxi6v0qpnx-texlive-2016/share/man" lrwxrwxrwx 2 root root 70 Jan 1 1970 /gnu/store/rn3vri602z3jpwqnha0r5nwxi6v0qpnx-texlive-2016/share/man -> /gnu/store/8mhqravbd3pv7x1y2qfjlv0bdjchszn0-texlive-bin-2016/share/man --8<---------------cut here---------------end--------------->8--- ‘find-files’ uses ‘lstat’ by default, which means it does not follow symlinks, and I guess that’s what’s happening here. Perhaps ‘find-files’ needs to be called with #:stat stat to use ‘stat’ instead of ‘lstat’? Thanks, Ludo’.