Patch/hacks to enable NOX destiny/classic to compile on Ubuntu 12.04
This commit is contained in:
+4
-1
@@ -343,7 +343,10 @@ function nox {
|
|||||||
|
|
||||||
# Apply patches
|
# Apply patches
|
||||||
git checkout -b tutorial-destiny
|
git checkout -b tutorial-destiny
|
||||||
git am ~/mininet/util/nox-patches/*.patch
|
git am ~/mininet/util/nox-patches/*tutorial-port-nox-destiny*.patch
|
||||||
|
if [ "$DIST" = "Ubuntu" ] && [ `expr $RELEASE '>=' 12.04` -eq 1 ]; then
|
||||||
|
git am ~/mininet/util/nox-patches/*nox-ubuntu12-hacks.patch
|
||||||
|
fi
|
||||||
|
|
||||||
# Build
|
# Build
|
||||||
./boot.sh
|
./boot.sh
|
||||||
|
|||||||
@@ -0,0 +1,175 @@
|
|||||||
|
From 166693d7cb640d4a41251b87e92c52d9c688196b Mon Sep 17 00:00:00 2001
|
||||||
|
From: Bob Lantz <rlantz@cs.stanford.edu>
|
||||||
|
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
|
||||||
|
|
||||||
@@ -1 +1,2 @@
|
|||||||
This patch adds the OpenFlow tutorial module source code to nox-destiny.
|
0001: This patch adds the OpenFlow tutorial module source code to nox-destiny.
|
||||||
|
0002: This patch hacks nox-destiny to compile on Ubuntu 12.04.
|
||||||
|
|||||||
Reference in New Issue
Block a user