build: require gcc >= 5.3 and boost >= 1.58

This effectively drops support for all versions of Ubuntu older than 16.04

Change-Id: If1c96cc697d38a94588f126a89d13ec8e582702d
Refs: #4462
diff --git a/wscript b/wscript
index d9836ab..d4da8c4 100644
--- a/wscript
+++ b/wscript
@@ -34,8 +34,8 @@
 
 def options(opt):
     opt.load(['compiler_cxx', 'gnu_dirs'])
-    opt.load(['default-compiler-flags', 'compiler-features', 'type_traits',
-              'coverage', 'pch', 'sanitizers', 'boost', 'boost-kqueue',
+    opt.load(['default-compiler-flags', 'compiler-features',
+              'coverage', 'pch', 'sanitizers', 'boost',
               'dependency-checker', 'unix-socket', 'websocket',
               'doxygen', 'sphinx_build'],
              tooldir=['.waf-tools'])
@@ -83,8 +83,8 @@
 
 def configure(conf):
     conf.load(['compiler_cxx', 'gnu_dirs',
-               'default-compiler-flags', 'compiler-features', 'type_traits',
-               'pch', 'boost', 'boost-kqueue', 'dependency-checker', 'websocket',
+               'default-compiler-flags', 'compiler-features',
+               'pch', 'boost', 'dependency-checker', 'websocket',
                'doxygen', 'sphinx_build'])
 
     conf.find_program('bash', var='BASH')
@@ -116,32 +116,18 @@
         boost_libs += ' unit_test_framework'
 
     conf.check_boost(lib=boost_libs, mt=True)
-    if conf.env.BOOST_VERSION_NUMBER < 105400:
-        conf.fatal('Minimum required Boost version is 1.54.0\n'
+    if conf.env.BOOST_VERSION_NUMBER < 105800:
+        conf.fatal('Minimum required Boost version is 1.58.0\n'
                    'Please upgrade your distribution or manually install a newer version of Boost'
                    ' (https://redmine.named-data.net/projects/nfd/wiki/Boost_FAQ)')
 
-    if conf.env.CXX_NAME == 'clang' and conf.env.BOOST_VERSION_NUMBER < 105800:
-        conf.define('BOOST_ASIO_HAS_STD_ARRAY', 1) # Workaround for https://redmine.named-data.net/issues/3360#note-14
-        conf.define('BOOST_ASIO_HAS_STD_CHRONO', 1) # Solution documented at https://redmine.named-data.net/issues/3588#note-10
-
     conf.load('unix-socket')
     conf.checkWebsocket(mandatory=True)
 
     if not conf.options.without_libpcap:
-        conf.check_asio_pcap_support()
-        if conf.env.HAVE_ASIO_PCAP_SUPPORT:
-            conf.checkDependency(name='libpcap', lib='pcap', mandatory=True,
-                                 errmsg='not found, but required for Ethernet face support. '
-                                        'Specify --without-libpcap to disable Ethernet face support.')
-        else:
-            Logs.warn('Warning: Ethernet face is not supported on this platform with Boost libraries version 1.56. '
-                      'See https://redmine.named-data.net/issues/1877 for more details')
-    if conf.env.HAVE_LIBPCAP:
-        conf.check_cxx(msg='Checking if libpcap supports pcap_set_immediate_mode', mandatory=False,
-                       define_name='HAVE_PCAP_SET_IMMEDIATE_MODE', use='LIBPCAP',
-                       fragment='''#include <pcap/pcap.h>
-                                   int main() { pcap_t* p; pcap_set_immediate_mode(p, 1); }''')
+        conf.checkDependency(name='libpcap', lib='pcap', mandatory=True,
+                             errmsg='not found, but required for Ethernet face support. '
+                                    'Specify --without-libpcap to disable Ethernet face support.')
 
     conf.check_compiler_flags()
 
@@ -303,7 +289,7 @@
             else:
                 # no tags matched
                 Context.g_module.VERSION = '%s-commit-%s' % (VERSION_BASE, out)
-    except subprocess.CalledProcessError:
+    except (OSError, subprocess.CalledProcessError):
         pass
 
     versionFile = ctx.path.find_node('VERSION')