RidgeRun / gst-interpipe

GStreamer plug-in for interpipeline communication
Other
140 stars 63 forks source link

gtk-doc error while building interpipe #142

Open blokfyuh opened 1 year ago

blokfyuh commented 1 year ago

Hello guys,

When I try to build gst-interpipe using meson I get a gtk-doc error:

ERROR: Error in gtkdoc helper script:

ERROR: ['/usr/bin/gtkdoc-mkhtml', '--path=/gst-interpipe/docs/plugins:/gst-interpipe/build/docs/plugins', 'gst-interpipes', '..//gst-interpipe/build/docs/plugins/gst-interpipe-docs.xml'] failed with status 6
warning: failed to load external entity "/gst-interpipe/build/docs/plugins/xml/tree_index.sgml"
/gst-interpipe/build/docs/plugins/gst-interpipe-docs.xml:34: element include: XInclude error : could not load /gst-interpipe/build/docs/plugins/xml/tree_index.sgml, and no fallback was found

--- stderr ---

FAILED: install script '/usr/bin/meson --internal gtkdoc --sourcedir=/gst-interpipe --builddir=/gst-interpipe/build --subdir=docs/plugins --headerdirs=/gst-interpipe/gst/interpipe/@@/gst-interpipe/build/docs/plugins --mainfile=/gst-interpipe/build/docs/plugins/gst-interpipe-docs.xml --modulename=gst-interpipes --moduleversion= --mode=auto --gtkdoc-scan=/usr/bin/gtkdoc-scan --gtkdoc-scangobj=/usr/bin/gtkdoc-scangobj --gtkdoc-mkdb=/usr/bin/gtkdoc-mkdb --gtkdoc-mkhtml=/usr/bin/gtkdoc-mkhtml --gtkdoc-fixxref=/usr/bin/gtkdoc-fixxref --htmlargs= --scanargs= --scanobjsargs= --gobjects-types-file=/gst-interpipe/build/docs/plugins/gst-interpipe.types --fixxrefargs= --mkdbargs= --html-assets= --content-files=/gst-interpipe/build/docs/version.entities --expand-content-files= --ignore-headers= --installdir= --cc=cc --ld=cc --cflags=-I/usr/include/gstreamer-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -pthread -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls -Wundef -Wwrite-strings -Wformat -Wformat-nonliteral -Wformat-security -Wold-style-definition -Winit-self -Wmissing-include-dirs -Waddress -Waggregate-return -Wno-multichar -Wdeclaration-after-statement -Wvla -Wpointer-arith --ldflags=-lgstapp-1.0 -lgstreamer-1.0 -lglib-2.0 -lintl -lgobject-2.0 -lgstbase-1.0' exit code 1, stopped
ninja: job failed: /usr/bin/meson install --no-rebuild
ninja: subcommand failed

It seems caused by a new gtk-doc release (https://gitlab.gnome.org/GNOME/gtk-doc/-/issues/103) but I tried to fork this repo and to replace _treeindex.sgml by _objectindex.sgml and I got the same error.

gtk-doc version: 1.33.2-r3

I'm building under Alpine Linux v3.17 (if it has any importance).

Do you have an idea how to fix it ?

Thanks.

ylchan87 commented 1 year ago

+1 same issue here with Ubuntu 20.04 and gtk-doc-tools 1.32-4

keivanh commented 1 year ago

This bug has been around for sometime, I spent days to fix it but no luck. But as matter of fact, building the docs happens after compiling the interpipe library. So, you can ignore the error and install the library sudo meson install -C build, you will get another error there, ignore that as well. The library installs normally.

keivanh commented 8 months ago

For anyone reading this, it is been more than a year and the bug is still there. As my previous comment, the library itself builds without any problem. But if building of docs terminates your CI/CD pipeline, you can use this workaround:

sed -i '173d' meson.build
rm -rf docs
meson --prefix=/usr -Dbuildtype=release build

for example my Docker file section for Interpipe looks like this:

RUN cd /opt && \
    git clone https://github.com/RidgeRun/gst-interpipe.git && \
    cd gst-interpipe && \
    sed -i '173d' meson.build && \
    rm -rf docs && \
    meson --prefix=/usr -Dbuildtype=release build && \
    ninja -C build && \
    meson install -C build && \
    rm -rf /opt/gst-interpipe