gtkdoc-fixref problem on gentoo linux
Recently, when updating the gentoo linux on my amd64 box I got errors when building packages with the doc USE flag. All failing packages were using the gtkdoc tool for generating the documentation. Nowhere in the web was a topic concerning this problem. All these packages failed similar to example for libbonobo below. But many other ebuilds, i.e. glib, gedit etc. were also affected.
Writing libbonobo-bonobo-persist-file.html for refentry(libbonobo-bonobo-persist-file)
Writing libbonobo-bonobo-persist-stream.html for refentry(libbonobo-bonobo-persist-stream)
Writing libbonobo-bonobo-persist-client.html for refentry(libbonobo-bonobo-persist-client)
Writing persist.html for chapter(persist)
Writing debugging.html for refentry(debugging)
Writing libbonobo-faq.html for refentry(libbonobo-faq)
Writing libbonobo-bonobo-config-database.html for refentry(libbonobo-bonobo-config-database)
Writing misc.html for chapter(misc)
Writing ix01.html for index
Writing index.html for book(index)
Writing index.sgml for book(index)
Writing libbonobo.devhelp for book(index)
Writing libbonobo.devhelp2 for book(index)
gtk-doc: Fixing cross-references
try vitry vish: /usr/bin/vim: Datei oder Verzeichnis nicht gefunden
readline() on closed filehandle NEWFILE at /usr/bin/gtkdoc-fixxref line 467.
Use of uninitialized value in substitution (s///) at /usr/bin/gtkdoc-fixxref line 470.
Use of uninitialized value in substitution (s///) at /usr/bin/gtkdoc-fixxref line 471.
Use of uninitialized value in substitution (s///) at /usr/bin/gtkdoc-fixxref line 475.
Use of uninitialized value in substitution (s///) at /usr/bin/gtkdoc-fixxref line 476.
Use of uninitialized value in substitution (s///) at /usr/bin/gtkdoc-fixxref line 477.
Use of uninitialized value in substitution (s///) at /usr/bin/gtkdoc-fixxref line 478.
Use of uninitialized value in substitution (s///) at /usr/bin/gtkdoc-fixxref line 479.
Use of uninitialized value in substitution (s///) at /usr/bin/gtkdoc-fixxref line 480.
Use of uninitialized value in substitution (s///) at /usr/bin/gtkdoc-fixxref line 481.
Can’t delete html/_temp_src.15046.h.html: Datei oder Verzeichnis nicht gefunden at /usr/bin/gtkdoc-fixxref line 486.
make[1]: *** [html-build.stamp] Fehler 2
make[1]: Leaving directory `/var/tmp/portage/gnome-base/libbonobo-2.24.3/work/libbonobo-2.24.3/doc/api’
make: *** [all-recursive] Fehler 1
After some days of searching I was able to track the issue down to the part of gtk-docfixref that uses vim for highlighting. Perhaps my gtk-doc version (gtk-doc-1.13-r2) is not compatible to my vi version (vim-7.2.303). Even uninstalling vi for testing purposes was not successful since at least this version of gtk-docfixref tries to use vi even if it is not installed.
Line 290 of gtkdoc fixref:
if (“/usr/bin/vim” ne “”) {
Changing this line to
if (“/usr/bin/vim” ne “/usr/bin/vim”) {
for forcing gtk-docfixref to always ignore vi was the (temporary) solution for me. Afterwards I was again able to build all the packages using gtk-doc for documentation.
Since I did not find any information about the problem in the web I am quite unsure if I should open a bug report for it or if it is only a local problem. So, if you experience the same problem please leave a comment.
Jürgen