Errata against ns-3.28 release
Please be advised that the following Fedora 28 issues were fixed in the ns-3.28.1 incremental release. The lack of pygoocanvas for Ubuntu 18.04 is being fixed in the ns-3.29 release.
g++-8 compilation problem (mesh module): Shortly after the ns-3.28 release, Fedora 28 was released, featuring gcc-8 as the default compiler. The following patch is needed to successfully compile ns-3 with g++-8 compiler:
g++-8 machines and GTK+: Shortly after the ns-3.28 release, Fedora 28 was released, featuring gcc-8 as the default compiler. This compiler, when used with the default configuration of ns-3's build scripts, will fail to compile ns-3 when the system discovers and tries to use GTK+ libraries.
An example error output is:
/usr/include/gtk-2.0/gtk/gtkfilechooserbutton.h:59:8: error: unnecessary parentheses in declaration of ‘__gtk_reserved1’ [-Werror=parentheses] void (*__gtk_reserved1);
One workaround is to disable the use of GTK using the configure option '--disable-gtk'
./waf configure --enable-examples --enable-tests --disable-gtk
Another workaround is to pass modified CXXFLAGS to the waf configure step; i.e. instead of configuring as:
./waf configure --enable-examples --enable-tests
instead type (all in one line):
CXXFLAGS="-Wall -Werror -Wno-parentheses" ./waf configure --enable-examples --enable-tests
Future ns-3 releases will have a Waf option to disable -Werror.
Ubuntu 18.04 pygoocanvas and pyviz: Ubuntu has stopped distributing pygoocanvas (Python bindings for goocanvas) as of release 18.04, and the existing version of Pyviz visualizer depends on this. There is no posted workaround for this problem on Ubuntu 18.04, although users may be able to build and install pygoocanvas from source. A fix for Pyviz (port to newer packages) is part of ns-3.29.