From 166693d7cb640d4a41251b87e92c52d9c688196b Mon Sep 17 00:00:00 2001 From: Bob Lantz Date: Mon, 14 May 2012 15:30:44 -0700 Subject: [PATCH] Hacks to get NOX classic/destiny to compile under Ubuntu 12.04 Thanks to Srinivasu R. Kanduru for the initial patch. Apologies for the hacks - it is my hope that this will be fixed upstream eventually. --- config/ac_pkg_swig.m4 | 7 ++++--- src/Make.vars | 2 +- src/nox/coreapps/pyrt/deferredcallback.cc | 2 +- src/nox/coreapps/pyrt/pyglue.cc | 2 +- src/nox/coreapps/pyrt/pyrt.cc | 2 +- src/nox/netapps/authenticator/auth.i | 2 ++ src/nox/netapps/authenticator/flow_util.i | 1 + src/nox/netapps/routing/routing.i | 2 ++ .../switch_management/pyswitch_management.i | 2 ++ src/nox/netapps/tests/tests.cc | 2 +- src/nox/netapps/topology/pytopology.i | 2 ++ 11 files changed, 18 insertions(+), 8 deletions(-) diff --git a/config/ac_pkg_swig.m4 b/config/ac_pkg_swig.m4 index d12556e..9b608f2 100644 --- a/config/ac_pkg_swig.m4 +++ b/config/ac_pkg_swig.m4 @@ -78,9 +78,10 @@ AC_DEFUN([AC_PROG_SWIG],[ if test -z "$available_patch" ; then [available_patch=0] fi - if test $available_major -ne $required_major \ - -o $available_minor -ne $required_minor \ - -o $available_patch -lt $required_patch ; then + major_done=`test $available_major -gt $required_major` + minor_done=`test $available_minor -gt $required_minor` + if test !$major_done -a !$minor_done \ + -a $available_patch -lt $required_patch ; then AC_MSG_WARN([SWIG version >= $1 is required. You have $swig_version. You should look at http://www.swig.org]) SWIG='' else diff --git a/src/Make.vars b/src/Make.vars index d70d6aa..93b2879 100644 --- a/src/Make.vars +++ b/src/Make.vars @@ -53,7 +53,7 @@ AM_LDFLAGS += -export-dynamic endif # set python runtimefiles to be installed in the same directory as pkg -pkglib_SCRIPTS = $(NOX_RUNTIMEFILES) $(NOX_PYBUILDFILES) +pkgdata_SCRIPTS = $(NOX_RUNTIMEFILES) $(NOX_PYBUILDFILES) BUILT_SOURCES = $(NOX_PYBUILDFILES) # Runtime-files build and clean rules diff --git a/src/nox/coreapps/pyrt/deferredcallback.cc b/src/nox/coreapps/pyrt/deferredcallback.cc index 3a40fa7..111a586 100644 --- a/src/nox/coreapps/pyrt/deferredcallback.cc +++ b/src/nox/coreapps/pyrt/deferredcallback.cc @@ -69,7 +69,7 @@ DeferredCallback::get_instance(const Callback& c) DeferredCallback* cb = new DeferredCallback(c); // flag as used in *_wrap.cc....correct? - return SWIG_Python_NewPointerObj(cb, s, SWIG_POINTER_OWN | 0); + return SWIG_Python_NewPointerObj(m, cb, s, SWIG_POINTER_OWN | 0); } bool diff --git a/src/nox/coreapps/pyrt/pyglue.cc b/src/nox/coreapps/pyrt/pyglue.cc index 48b9716..317fd04 100644 --- a/src/nox/coreapps/pyrt/pyglue.cc +++ b/src/nox/coreapps/pyrt/pyglue.cc @@ -874,7 +874,7 @@ to_python(const Flow& flow) if (!s) { throw std::runtime_error("Could not find Flow SWIG type_info"); } - return SWIG_Python_NewPointerObj(f, s, SWIG_POINTER_OWN | 0); + return SWIG_Python_NewPointerObj(m, f, s, SWIG_POINTER_OWN | 0); // PyObject* dict = PyDict_New(); // if (!dict) { diff --git a/src/nox/coreapps/pyrt/pyrt.cc b/src/nox/coreapps/pyrt/pyrt.cc index fbda461..8ec05d6 100644 --- a/src/nox/coreapps/pyrt/pyrt.cc +++ b/src/nox/coreapps/pyrt/pyrt.cc @@ -776,7 +776,7 @@ Python_event_manager::create_python_context(const Context* ctxt, pretty_print_python_exception()); } - PyObject* pyctxt = SWIG_Python_NewPointerObj(p, s, 0); + PyObject* pyctxt = SWIG_Python_NewPointerObj(m, p, s, 0); Py_INCREF(pyctxt); // XXX needed? //Py_DECREF(m); diff --git a/src/nox/netapps/authenticator/auth.i b/src/nox/netapps/authenticator/auth.i index 1de1a17..bfa04e2 100644 --- a/src/nox/netapps/authenticator/auth.i +++ b/src/nox/netapps/authenticator/auth.i @@ -18,6 +18,8 @@ %module "nox.netapps.authenticator.pyauth" +// Hack to get it to compile -BL +%include "std_list.i" %{ #include "core_events.hh" #include "pyrt/pycontext.hh" diff --git a/src/nox/netapps/authenticator/flow_util.i b/src/nox/netapps/authenticator/flow_util.i index f67c3ef..2a314e2 100644 --- a/src/nox/netapps/authenticator/flow_util.i +++ b/src/nox/netapps/authenticator/flow_util.i @@ -32,6 +32,7 @@ using namespace vigil::applications; %} %include "common-defs.i" +%include "std_list.i" %import "netinet/netinet.i" %import "pyrt/event.i" diff --git a/src/nox/netapps/routing/routing.i b/src/nox/netapps/routing/routing.i index 44ccb3d..f9221a2 100644 --- a/src/nox/netapps/routing/routing.i +++ b/src/nox/netapps/routing/routing.i @@ -17,6 +17,8 @@ */ %module "nox.netapps.routing.pyrouting" +// Hack to get it to compile -BL +%include "std_list.i" %{ #include "pyrouting.hh" #include "routing.hh" diff --git a/src/nox/netapps/switch_management/pyswitch_management.i b/src/nox/netapps/switch_management/pyswitch_management.i index 72bfed4..ad2c90d 100644 --- a/src/nox/netapps/switch_management/pyswitch_management.i +++ b/src/nox/netapps/switch_management/pyswitch_management.i @@ -18,6 +18,8 @@ %module "nox.netapps.pyswitch_management" +// Hack to get it to compile -BL +%include "std_list.i" %{ #include "switch_management_proxy.hh" #include "pyrt/pycontext.hh" diff --git a/src/nox/netapps/tests/tests.cc b/src/nox/netapps/tests/tests.cc index 20e900d..f027028 100644 --- a/src/nox/netapps/tests/tests.cc +++ b/src/nox/netapps/tests/tests.cc @@ -306,7 +306,7 @@ private: throw runtime_error("Could not find PyContext SWIG type_info."); } - PyObject* pyctxt = SWIG_Python_NewPointerObj(p, s, 0); + PyObject* pyctxt = SWIG_Python_NewPointerObj(m, p, s, 0); assert(pyctxt); Py_DECREF(m); diff --git a/src/nox/netapps/topology/pytopology.i b/src/nox/netapps/topology/pytopology.i index 94a9f4b..7a8cd94 100644 --- a/src/nox/netapps/topology/pytopology.i +++ b/src/nox/netapps/topology/pytopology.i @@ -18,6 +18,8 @@ %module "nox.netapps.topology" +// Hack to get it to compile -BL +%include "std_list.i" %{ #include "pytopology.hh" #include "pyrt/pycontext.hh" -- 1.7.5.4