FRRouting / frr

The FRRouting Protocol Suite
https://frrouting.org/
Other
3.33k stars 1.25k forks source link

FTBFS: dh_install: warning: frr-doc missing files: doc/user/_build/texinfo/*.png #5709

Closed jean-christophe-manciot closed 4 years ago

jean-christophe-manciot commented 4 years ago

Ubuntu 20.04 all build dependencies are satisfied, including libgrpc++-dev and libyang-dev git tag: frr-7.2.1

Building with (I'm aware that I should also have modified debian/rules below dh_auto_configure -- \ with the configure options outlined below):

autoreconf -f -i
./configure  --build=x86_64-pc-linux-gnu \
        --prefix=/usr \
        --includedir=\${prefix}/include \
        --enable-exampledir=\${prefix}/share/doc/frr/examples \
        --bindir=\${prefix}/bin \
        --sbindir=\${prefix}/lib/frr \
        --libdir=\${prefix}/lib/frr \
        --libexecdir=\${prefix}/lib/frr \
        --localstatedir=/var/run/frr \
        --sysconfdir=/etc/frr \
        --with-moduledir=\${prefix}/lib/frr/modules \
        --enable-address-sanitizer \
        --enable-configfile-mask=0640 \
        --enable-datacenter \
        --enable-fpm \
        --enable-group=frr \
        --enable-grpc \
        --enable-logfile-mask=0640 \
        --enable-memory-sanitizer \
        --enable-multipath=64 \
        --enable-pcreposix \
        --enable-rpki \
        --enable-shell-access \
        --enable-snmp=agentx \
        --enable-systemd \
        --enable-thread-sanitizer \
        --enable-user=frr \
        --enable-vty-group=frrvty \
        --enable-werror=no
debuild -i -I --no-sign --build=binary -j1

leads to:

make[1]: Leaving directory 'src/FRR/frr-build/git-frr'
   dh_install
    cp --reflink=auto -a debian/tmp/etc/ debian/frr//
    install -d debian/frr//usr/bin
    cp --reflink=auto -a debian/tmp/usr/bin/mtracebis debian/tmp/usr/bin/vtysh debian/frr//usr/bin/
    install -d debian/frr//usr/lib/frr
    cp --reflink=auto -a debian/tmp/usr/lib/frr/babeld debian/tmp/usr/lib/frr/bfdd debian/tmp/usr/lib/frr/bgpd debian/tmp/usr/lib/frr/eigrpd debian/tmp/usr/lib/frr/fabricd debian/tmp/usr/lib/frr/frr-reload debian/tmp/usr/lib/frr/frrcommon.sh debian/tmp/usr/lib/frr/frrinit.sh debian/tmp/usr/lib/frr/isisd debian/tmp/usr/lib/frr/ldpd debian/tmp/usr/lib/frr/nhrpd debian/tmp/usr/lib/frr/ospf6d debian/tmp/usr/lib/frr/ospfd debian/tmp/usr/lib/frr/pbrd debian/tmp/usr/lib/frr/pimd debian/tmp/usr/lib/frr/ripd debian/tmp/usr/lib/frr/ripngd debian/tmp/usr/lib/frr/staticd debian/tmp/usr/lib/frr/vrrpd debian/tmp/usr/lib/frr/watchfrr debian/tmp/usr/lib/frr/watchfrr.sh debian/tmp/usr/lib/frr/zebra debian/frr//usr/lib/frr/
    install -d debian/frr//usr/lib/x86_64-linux-gnu/frr
    cp --reflink=auto -a debian/tmp/usr/lib/x86_64-linux-gnu/frr/libfrr.so.0 debian/tmp/usr/lib/x86_64-linux-gnu/frr/libfrr.so.0.0.0 debian/tmp/usr/lib/x86_64-linux-gnu/frr/libfrrcares.so.0 debian/tmp/usr/lib/x86_64-linux-gnu/frr/libfrrcares.so.0.0.0 debian/tmp/usr/lib/x86_64-linux-gnu/frr/libfrrospfapiclient.so.0 debian/tmp/usr/lib/x86_64-linux-gnu/frr/libfrrospfapiclient.so.0.0.0 debian/frr//usr/lib/x86_64-linux-gnu/frr/
    install -d debian/frr//usr/lib/x86_64-linux-gnu/frr/modules
    cp --reflink=auto -a debian/tmp/usr/lib/x86_64-linux-gnu/frr/modules/bgpd_bmp.so debian/tmp/usr/lib/x86_64-linux-gnu/frr/modules/zebra_fpm.so debian/tmp/usr/lib/x86_64-linux-gnu/frr/modules/zebra_irdp.so debian/frr//usr/lib/x86_64-linux-gnu/frr/modules/
    cp --reflink=auto -a debian/tmp/usr/share/man/ debian/tmp/usr/share/yang/ debian/frr//usr/share/
    cp --reflink=auto -a debian/tmp/usr/share/doc/frr/examples debian/frr//usr/share/doc/frr/
    cp --reflink=auto -a ./tools/frr-reload debian/frr/usr/lib/frr//
    install -d debian/frr/usr/lib/tmpfiles.d
    cp --reflink=auto -a ./debian/frr.conf debian/frr/usr/lib/tmpfiles.d/
    install -d debian/.debhelper/generated/frr
    install -d debian/frr-snmp//usr/lib/x86_64-linux-gnu/frr
    cp --reflink=auto -a debian/tmp/usr/lib/x86_64-linux-gnu/frr/libfrrsnmp.so.0 debian/tmp/usr/lib/x86_64-linux-gnu/frr/libfrrsnmp.so.0.0.0 debian/frr-snmp//usr/lib/x86_64-linux-gnu/frr/
    install -d debian/frr-snmp//usr/lib/x86_64-linux-gnu/frr/modules
    cp --reflink=auto -a debian/tmp/usr/lib/x86_64-linux-gnu/frr/modules/bgpd_snmp.so debian/tmp/usr/lib/x86_64-linux-gnu/frr/modules/ospf6d_snmp.so debian/tmp/usr/lib/x86_64-linux-gnu/frr/modules/ospfd_snmp.so debian/tmp/usr/lib/x86_64-linux-gnu/frr/modules/ripd_snmp.so debian/tmp/usr/lib/x86_64-linux-gnu/frr/modules/zebra_snmp.so debian/frr-snmp//usr/lib/x86_64-linux-gnu/frr/modules/
    install -d debian/.debhelper/generated/frr-snmp
    install -d debian/frr-rpki-rtrlib//usr/lib/x86_64-linux-gnu/frr/modules
    cp --reflink=auto -a debian/tmp/usr/lib/x86_64-linux-gnu/frr/modules/bgpd_rpki.so debian/frr-rpki-rtrlib//usr/lib/x86_64-linux-gnu/frr/modules/
dh_install: warning: Cannot find (any matches for) "doc/user/_build/texinfo/*.png" (tried in ., debian/tmp)

dh_install: warning: frr-doc missing files: doc/user/_build/texinfo/*.png
    install -d debian/.debhelper/generated/frr-rpki-rtrlib
    install -d debian/frr-doc//usr/share
    cp --reflink=auto -a debian/tmp/usr/share/info/ debian/frr-doc//usr/share/
    install -d debian/frr-doc//usr/share/doc/frr
    cp --reflink=auto -a debian/tmp/usr/share/doc/frr/html debian/frr-doc//usr/share/doc/frr/
dh_install: error: missing files, aborting
    install -d debian/.debhelper/generated/frr-doc
    install -d debian/.debhelper/generated/frr-pythontools
make: *** [debian/rules:35: binary] Error 25
dpkg-buildpackage: error: fakeroot debian/rules binary subprocess returned exit status 2
debuild: fatal error at line 1182:
dpkg-buildpackage -us -uc -ui -i -I --build=binary --build=binary -j1 failed

Indeed:

# find -name "*.png"|sort
./doc/figures/cligraph.png
./doc/figures/fig-normal-processing.png
./doc/figures/fig-rs-processing.png
./doc/figures/fig_topologies_full.png
./doc/figures/fig_topologies_rs.png
./doc/figures/fig-vnc-commercial-route-reflector.png
./doc/figures/fig-vnc-frr-route-reflector.png
./doc/figures/fig-vnc-gw.png
./doc/figures/fig-vnc-gw-rr.png
./doc/figures/fig-vnc-mesh.png
./doc/figures/fig-vnc-redundant-route-reflectors.png
./doc/figures/frr-logo-icon.png
./doc/figures/frr-logo-medium.png
./doc/figures/frr-logo.png
./doc/figures/frr-logo-small.png
./doc/figures/git_branches.png
./doc/figures/ospf_api_architecture.png
./doc/figures/ospf_api_msghdr.png
./doc/figures/ospf_api_msgs1.png
./doc/figures/ospf_api_msgs2.png
./doc/figures/threadmaster-multiple.png
./doc/figures/threadmaster-single.png
./snapcraft/snap/gui/icon.png
eqvinox commented 4 years ago

This "smells" like ./configure/dh_auto_configure didn't pick up your sphinx installation... can you post the output from configure to check that?

jean-christophe-manciot commented 4 years ago

I get the same result from my manual configure and the one executed from debian/rules:

checking whether /usr/bin/python3 module sphinx is available... yes
checking whether /usr/bin/python3 module sphinx is executable... yes

Full configure logs:

eqvinox commented 4 years ago

I guess the "smell" was wrong - can you please post the entire log?

jean-christophe-manciot commented 4 years ago

I have modified the build process to have the same configure options with debian/rules:

autoreconf -f -i
./configure \
        --build=x86_64-pc-linux-gnu \
        --prefix=/usr \
        --includedir=/usr/include \
        --enable-exampledir=/usr/share/doc/frr/examples \
        --bindir=/usr/bin \
        --sbindir=/usr/lib/frr \
        --libdir=/usr/lib/frr \
        --libexecdir=/usr/lib/frr \
        --localstatedir=/var/run/frr \
        --sysconfdir=/etc/frr \
        --with-moduledir=/usr/lib/frr/modules \
        --enable-configfile-mask=0640 \
        --enable-bgp-vnc \
        --enable-datacenter \
        --enable-doc \
        --enable-doc-html \
        --enable-fpm \
        --enable-group=frr \
        --enable-grpc \
        --enable-logfile-mask=0640 \
        --enable-multipath=256 \
        --enable-ospfapi \
        --enable-pcreposix \
        --enable-rpki \
        --enable-shell-access \
        --enable-snmp=agentx \
        --enable-systemd \
        --enable-thread-sanitizer \
        --enable-user=frr \
        --enable-vty-group=frrvty \
        --enable-werror=no \
        --disable-protobuf \
        --disable-zeromq \
        --with-libpam \
        --with-vtysh-pager=/usr/bin/pager \
        LIBTOOLFLAGS="-rpath /usr/lib/frr"

# Removing old dh_auto_configure block
sed --follow-symlinks -Ei '/^[[:blank:]]+dh_auto_configure -- \\/,/^[[:blank:]]+# end/d' debian/rules
# Inserting new dh_auto_configure block
sed -i '/override_dh_auto_install/i \\tdh_auto_configure -- --build=x86_64-pc-linux-gnu --prefix=/usr --includedir=/usr/include --enable-exampledir=/usr/share/doc/frr/examples --bindir=/usr/bin --sbindir=/usr/lib/frr --libdir=/usr/lib/frr --libexecdir=/usr/lib/frr --localstatedir=/var/run/frr --sysconfdir=/etc/frr --with-moduledir=/usr/lib/frr/modules --enable-configfile-mask=0640 --enable-bgp-vnc --enable-datacenter --enable-doc --enable-doc-html --enable-fpm --enable-group=frr --enable-grpc --enable-logfile-mask=0640 --enable-multipath=256 --enable-ospfapi --enable-pcreposix --enable-rpki --enable-shell-access --enable-snmp=agentx --enable-systemd --enable-user=frr --enable-vty-group=frrvty --enable-werror=no --disable-protobuf --disable-zeromq --with-libpam --with-vtysh-pager=/usr/bin/pager LIBTOOLFLAGS="-rpath /usr/lib/frr"' debian/rules
sed -i '/override_dh_auto_install/i #' debian/rules
sed -n -i '/dh_auto_configure -- /{x;d;};1h;1!{x;p;};${x;p;}' debian/rules

debuild -i -I --no-sign --build=binary -j1

leads to the same issue as posted here which is a build with make instead of debuild.

jean-christophe-manciot commented 4 years ago

Full build log is: frr_7.2.1+20.04_amd64.build.log

eqvinox commented 4 years ago

fixed in 7.3.1, sorry for the delay

qlyoung commented 2 years ago

@eqvinox how was this fixed?

qlyoung commented 2 years ago
commit 7d7f70a935d146cb981d767bb546ea5fb41f055b
Author: Ondřej Surý <ondrej@sury.org>
Date:   Thu Aug 6 10:00:28 2020 +0200

    Work around the sphinx-build error that doesn't copy images to texinfo

    The sphinx-build (since version 2.0.0) doesn't install the images into the
    texinfo build directory.  Workaround the issue, by copying the required
    images from the source directory.