FRRouting / frr

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

Failed to create a docker container of topotest-frr #6647

Closed Zast996 closed 4 years ago

Zast996 commented 4 years ago

I tried to make a docker container of frr with topotest running frr-topotests.sh, but i get the following error (it is at the end of the quote):

latest: Pulling from frrouting/topotests Digest: sha256:0d5ce5b3247f446416d13abfa2351dc0164424ea0ffe13fada02d6c8ce441dda Status: Image is up to date for frrouting/topotests:latest docker.io/frrouting/topotests:latest => Syncing FRR source with host... 347,689,191 99% 14.82MB/s 0:00:22 (xfr#4384, to-chk=0/5020)
105,815,683 99% 58.36MB/s 0:00:01 (xfr#3088, to-chk=0/3608)
=> Building FRR... libtoolize: putting auxiliary files in '.'. libtoolize: copying file './ltmain.sh' libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'. libtoolize: copying file 'm4/libtool.m4' libtoolize: copying file 'm4/ltoptions.m4' libtoolize: copying file 'm4/ltsugar.m4' libtoolize: copying file 'm4/ltversion.m4' libtoolize: copying file 'm4/lt~obsolete.m4' configure.ac:164: installing './compile' configure.ac:25: installing './config.guess' configure.ac:25: installing './config.sub' configure.ac:100: installing './install-sh' configure.ac:100: installing './missing' Makefile.am: installing './depcomp' configure.ac: installing './ylwrap' checking build system type... x86_64-pc-linux-gnu checking host system type... x86_64-pc-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking whether make supports nested variables... (cached) yes checking for perl... /usr/bin/perl checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.9.0... yes checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking whether gcc understands -c and -o together... yes checking for style of include used by make... GNU checking dependency style of gcc... gcc3 checking how to run the C preprocessor... gcc -E checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking for gcc option to accept ISO C99... none needed checking for pkg-config... (cached) /usr/bin/pkg-config checking pkg-config is at least version 0.9.0... yes checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking minix/config.h usability... no checking minix/config.h presence... no checking for minix/config.h... no checking whether it is safe to define EXTENSIONS... yes checking whether gcc supports -diag-error 10006... no checking whether gcc supports -std=gnu11... yes checking whether gcc -std=gnu11 supports -fno-omit-frame-pointer... yes checking whether gcc -std=gnu11 supports -funwind-tables... yes checking whether gcc -std=gnu11 supports -Wall... yes checking whether gcc -std=gnu11 supports -Wextra... yes checking whether gcc -std=gnu11 supports -Wmissing-prototypes... yes checking whether gcc -std=gnu11 supports -Wmissing-declarations... yes checking whether gcc -std=gnu11 supports -Wpointer-arith... yes checking whether gcc -std=gnu11 supports -Wbad-function-cast... yes checking whether gcc -std=gnu11 supports -Wwrite-strings... yes checking whether gcc -std=gnu11 supports -Wundef... yes checking whether gcc -std=gnu11 supports -Wno-unused-result... yes checking whether gcc -std=gnu11 supports -Wno-unused-parameter... yes checking whether gcc -std=gnu11 supports -Wno-missing-field-initializers... yes checking whether gcc -std=gnu11 supports -Wc++-compat... yes checking whether gcc -std=gnu11 supports -diag-disable 3179... no checking whether gcc -std=gnu11 supports -fplugin=tools/gcc-plugins/frr-format.so... no checking whether gcc -std=gnu11 supports -fplugin=frr-format... no checking if compiler needs -Werror to reject unknown flags... no checking for the pthreads library -lpthreads... no checking whether pthreads work without any flags... no checking whether pthreads work with -Kthread... no checking whether pthreads work with -kthread... no checking for the pthreads library -llthread... no checking whether pthreads work with -pthread... yes checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE checking if more special flags are required for pthreads... no checking for PTHREAD_PRIO_INHERIT... yes checking for library containing pthread_condattr_setclock... none required checking whether ln -s works... yes checking for ar... ar checking how to print strings... printf checking for a sed that does not truncate output... sed checking for fgrep... /bin/grep -F checking for ld used by gcc -std=gnu11... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B checking the name lister (/usr/bin/nm -B) interface... BSD nm checking the maximum length of command line arguments... 1572864 checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for archiver @FILE support... @ checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm -B output from gcc -std=gnu11 object... ok checking for sysroot... no checking for a working dd... /bin/dd checking how to truncate binary pipes... /bin/dd bs=4096 count=1 checking for mt... no checking if : is a manifest tool... no checking for dlfcn.h... yes checking for objdir... .libs checking if gcc -std=gnu11 supports -fno-rtti -fno-exceptions... no checking for gcc -std=gnu11 option to produce PIC... -fPIC -DPIC checking if gcc -std=gnu11 PIC flag -fPIC -DPIC works... yes checking if gcc -std=gnu11 static flag -static works... no checking if gcc -std=gnu11 supports -c -o file.o... yes checking if gcc -std=gnu11 supports -c -o file.o... (cached) yes checking whether the gcc -std=gnu11 linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking how to run the C++ preprocessor... g++ -E checking for ld used by g++... /usr/bin/ld -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC -DPIC checking if g++ PIC flag -fPIC -DPIC works... yes checking if g++ static flag -static works... no checking if g++ supports -c -o file.o... yes checking if g++ supports -c -o file.o... (cached) yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... (cached) GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether ar supports D option... yes checking whether ranlib supports D option... yes checking json-c/json.h usability... yes checking json-c/json.h presence... yes checking for json-c/json.h... yes checking for json_object_get in -ljson-c... yes checking python interpreter python3... not working checking python interpreter python3.10... not working checking python interpreter python3.9... not working checking python interpreter python3.8... not working checking python interpreter python3.7... not working checking python interpreter python3.6... not working checking python interpreter python3.5... not working checking python interpreter python3.4... not working checking python interpreter python3.3... not working checking python interpreter python3.2... not working checking python interpreter python... /usr/bin/python (python2) checking whether /usr/bin/python-config is available... yes checking whether /usr/bin/python-config provides a working build environment... yes checking whether /usr/bin/python module pytest is available... yes checking whether /usr/bin/python module sphinx is executable... yes checking if zebra should be configurable to send Route Advertisements... yes checking for objcopy... objcopy checking for .interp value to use... /lib64/ld-linux-x86-64.so.2 checking stropts.h usability... yes checking stropts.h presence... yes checking for stropts.h... yes checking sys/ksym.h usability... no checking sys/ksym.h presence... no checking for sys/ksym.h... no checking linux/version.h usability... yes checking linux/version.h presence... yes checking for linux/version.h... yes checking asm/types.h usability... yes checking asm/types.h presence... yes checking for asm/types.h... yes checking stdatomic.h usability... yes checking stdatomic.h presence... yes checking for stdatomic.h... yes checking whether _Atomic qualifier works... yes checking for pthread_np.h... no checking for pthread_setname_np... yes checking for pthread_set_name_np... no checking for pthread_getthreadid_np... no checking for Linux futex() support... yes checking for net/if_var.h... no checking for netinet/in_var.h... no checking for net/if_dl.h... no checking for net/netopt.h... no checking for inet/nd.h... no checking for netinet/ip_icmp.h... yes checking for sys/sysctl.h... yes checking for sys/sockio.h... no checking for sys/conf.h... no checking for ucontext.h... yes checking for ucontext_t.uc_mcontext.uc_regs... no checking for ucontext_t.uc_mcontext.regs... no checking for ucontext_t.uc_mcontext.gregs... yes checking which operating system interface to use... Linux checking for special C compiler options needed for large files... no checking for _FILE_OFFSET_BITS value needed for large files... no checking whether byte ordering is bigendian... no checking for strlcat... no checking for strlcpy... no checking for getgrouplist... yes checking for openat... yes checking for unlinkat... yes checking for posix_fallocate... yes checking for main in -lreadline... yes checking readline/history.h usability... yes checking readline/history.h presence... yes checking for readline/history.h... yes checking for rl_completion_matches in -lreadline... yes checking for append_history in -lreadline... yes checking for library containing pow... -lm checking for ppoll... yes checking for pollts... no checking asm-generic/unistd.h usability... yes checking asm-generic/unistd.h presence... yes checking for asm-generic/unistd.h... yes checking whether NR_setns is declared... yes checking for setns... yes checking net/bpf.h usability... no checking net/bpf.h presence... no checking for net/bpf.h... no checking sys/dlpi.h usability... no checking sys/dlpi.h presence... no checking for sys/dlpi.h... no checking zebra IS-IS I/O method... pfpacket checking for struct ip_mreqn.imr_ifindex... yes checking for linux/mroute.h... yes checking for netinet/ip_mroute.h... no checking for BSD struct ip_mreq hack... no checking for RFC3678 protocol-independed API... yes checking for net/if_media.h... no checking for struct if_data.ifi_link_state... no checking for netinet/tcp.h... yes checking whether TCP_MD5SIG is declared... yes checking for crypt in -lcrypt... yes checking for res_init in -lresolv... no checking for CARES (libcares)... yes checking for struct utsname.domainname... yes checking for netinet6/in6.h... no checking for netinet/in6_var.h... no checking for netinet6/in6_var.h... no checking for netinet6/nd6.h... no checking for LIBYANG (libyang >= 0.16.105)... yes checking for struct lyd_node.priv... yes checking for ZEROMQ (libzmq >= 4.0.0)... no checking for pimd OS support... yes checking for VRRP OS support... yes checking whether the RTR Library is compiled with SSH... no checking for library containing dlopen... none required checking link.h usability... yes checking link.h presence... yes checking for link.h... yes checking for dlinfo(RTLD_DI_ORIGIN)... no checking for dlinfo(RTLD_DI_LINKMAP)... no checking for struct sockaddr_dl... no checking for struct vifctl... yes checking for struct mfcctl... yes checking for struct sioc_sg_req... yes checking for vifi_t... yes checking for struct sioc_vif_req... yes checking for struct igmpmsg... yes checking for struct ifaliasreq... no checking for struct if6_aliasreq... no checking for struct in6_aliasreq... no checking for struct nd_opt_adv_interval... yes checking for struct nd_opt_homeagent_info... no checking for struct nd_opt_adv_interval... (cached) yes checking for struct nd_opt_rdnss... no checking for struct nd_opt_dnssl... no checking for struct sockaddr.sa_len... no checking for struct sockaddr_in.sin_len... no checking for struct sockaddr_un.sun_len... no checking for struct sockaddr_dl.sdl_len... no checking for struct if6_aliasreq.ifra_lifetime... no checking for struct nd_opt_adv_interval.nd_opt_ai_type... no checking for struct in_pktinfo... yes checking for struct icmphdr... yes checking for IP_PKTINFO... yes checking for IP_RECVDSTADDR... no checking for IP_RECVIF... no checking for SO_BINDANY... no checking for IP_FREEBIND... yes checking whether be32enc is declared... no checking whether be32dec is declared... no checking whether CLOCK_MONOTONIC is declared... yes checking for clock_gettime in -lrt... yes checking for library containing clock_nanosleep... none required checking for flex... flex checking lex output file root... lex.yy checking lex library... -lfl checking whether yytext is a pointer... yes checking version of flex... 2.6.4 checking for bison... bison -y checking version of bison... 3.0.4 - 3.3 or newer checking whether prctl PR_SET_KEEPCAPS is available... yes checking sys/capability.h usability... yes checking sys/capability.h presence... yes checking for sys/capability.h... yes checking for cap_init in -lcap... yes checking for UNWIND (libunwind)... no checking unwind.h usability... yes checking unwind.h presence... yes checking for unwind.h... yes checking for library containing unw_getcontext... no checking execinfo.h usability... yes checking execinfo.h presence... yes checking for execinfo.h... yes checking for library containing backtrace... none required checking for malloc.h... yes checking for malloc_np.h... no checking for malloc/malloc.h... no checking whether mallinfo is available... yes checking whether malloc_usable_size is available... yes checking directory to use for state file... /var/run/frr checking that generated files are newer than configure... done configure: creating ./config.status **config.status: creating Makefile Traceback (most recent call last): File "/root/persist/frr-build/python/makefile.py", line 24, in mv = MakeReVars(before) File "/root/persist/frr-build/python/makevars.py", line 73, in init super().init__() TypeError: super() takes at least 1 argument (0 given) F: failed to configure the sources**

I tried to execute sudo make topotests or to build the Dockerfile directly, but the error is the same. I installed frr from source http://docs.frrouting.org/projects/dev-guide/en/latest/building-frr-for-ubuntu1804.html. Frr is running on a Ubuntu 18.04 64 bit VM on Virtual Box (but i tried to install it on ubuntu 16.04 too).

sworleys commented 4 years ago

@qlyoung I think you told a me a few weeks ago how to fix this but I forgot...

you fixed it in our alpine container I think?

Zast996 commented 4 years ago

I managed to fix it. In the /frr/python/makevars.py file, at the n°73 statement, it is necessary to replace super().init() with super(MakeReVars,self).init()

eqvinox commented 4 years ago

python3 <> python2 problem, was already fixed somewhere else but could be broken in docker

qlyoung commented 4 years ago

It's broken in the topotest container only, I believe the rest of them were fixed