carlosmscabral | f40ecd1 | 2013-02-01 18:15:58 -0200 | [diff] [blame] | 1 | From 166693d7cb640d4a41251b87e92c52d9c688196b Mon Sep 17 00:00:00 2001 |
| 2 | From: Bob Lantz <rlantz@cs.stanford.edu> |
| 3 | Date: Mon, 14 May 2012 15:30:44 -0700 |
| 4 | Subject: [PATCH] Hacks to get NOX classic/destiny to compile under Ubuntu |
| 5 | 12.04 |
| 6 | |
| 7 | Thanks to Srinivasu R. Kanduru for the initial patch. |
| 8 | |
| 9 | Apologies for the hacks - it is my hope that this will be fixed |
| 10 | upstream eventually. |
| 11 | |
| 12 | --- |
| 13 | config/ac_pkg_swig.m4 | 7 ++++--- |
| 14 | src/Make.vars | 2 +- |
| 15 | src/nox/coreapps/pyrt/deferredcallback.cc | 2 +- |
| 16 | src/nox/coreapps/pyrt/pyglue.cc | 2 +- |
| 17 | src/nox/coreapps/pyrt/pyrt.cc | 2 +- |
| 18 | src/nox/netapps/authenticator/auth.i | 2 ++ |
| 19 | src/nox/netapps/authenticator/flow_util.i | 1 + |
| 20 | src/nox/netapps/routing/routing.i | 2 ++ |
| 21 | .../switch_management/pyswitch_management.i | 2 ++ |
| 22 | src/nox/netapps/tests/tests.cc | 2 +- |
| 23 | src/nox/netapps/topology/pytopology.i | 2 ++ |
| 24 | 11 files changed, 18 insertions(+), 8 deletions(-) |
| 25 | |
| 26 | diff --git a/config/ac_pkg_swig.m4 b/config/ac_pkg_swig.m4 |
| 27 | index d12556e..9b608f2 100644 |
| 28 | --- a/config/ac_pkg_swig.m4 |
| 29 | +++ b/config/ac_pkg_swig.m4 |
| 30 | @@ -78,9 +78,10 @@ AC_DEFUN([AC_PROG_SWIG],[ |
| 31 | if test -z "$available_patch" ; then |
| 32 | [available_patch=0] |
| 33 | fi |
| 34 | - if test $available_major -ne $required_major \ |
| 35 | - -o $available_minor -ne $required_minor \ |
| 36 | - -o $available_patch -lt $required_patch ; then |
| 37 | + major_done=`test $available_major -gt $required_major` |
| 38 | + minor_done=`test $available_minor -gt $required_minor` |
| 39 | + if test !$major_done -a !$minor_done \ |
| 40 | + -a $available_patch -lt $required_patch ; then |
| 41 | AC_MSG_WARN([SWIG version >= $1 is required. You have $swig_version. You should look at http://www.swig.org]) |
| 42 | SWIG='' |
| 43 | else |
| 44 | diff --git a/src/Make.vars b/src/Make.vars |
| 45 | index d70d6aa..93b2879 100644 |
| 46 | --- a/src/Make.vars |
| 47 | +++ b/src/Make.vars |
| 48 | @@ -53,7 +53,7 @@ AM_LDFLAGS += -export-dynamic |
| 49 | endif |
| 50 | |
| 51 | # set python runtimefiles to be installed in the same directory as pkg |
| 52 | -pkglib_SCRIPTS = $(NOX_RUNTIMEFILES) $(NOX_PYBUILDFILES) |
| 53 | +pkgdata_SCRIPTS = $(NOX_RUNTIMEFILES) $(NOX_PYBUILDFILES) |
| 54 | BUILT_SOURCES = $(NOX_PYBUILDFILES) |
| 55 | |
| 56 | # Runtime-files build and clean rules |
| 57 | diff --git a/src/nox/coreapps/pyrt/deferredcallback.cc b/src/nox/coreapps/pyrt/deferredcallback.cc |
| 58 | index 3a40fa7..111a586 100644 |
| 59 | --- a/src/nox/coreapps/pyrt/deferredcallback.cc |
| 60 | +++ b/src/nox/coreapps/pyrt/deferredcallback.cc |
| 61 | @@ -69,7 +69,7 @@ DeferredCallback::get_instance(const Callback& c) |
| 62 | DeferredCallback* cb = new DeferredCallback(c); |
| 63 | |
| 64 | // flag as used in *_wrap.cc....correct? |
| 65 | - return SWIG_Python_NewPointerObj(cb, s, SWIG_POINTER_OWN | 0); |
| 66 | + return SWIG_Python_NewPointerObj(m, cb, s, SWIG_POINTER_OWN | 0); |
| 67 | } |
| 68 | |
| 69 | bool |
| 70 | diff --git a/src/nox/coreapps/pyrt/pyglue.cc b/src/nox/coreapps/pyrt/pyglue.cc |
| 71 | index 48b9716..317fd04 100644 |
| 72 | --- a/src/nox/coreapps/pyrt/pyglue.cc |
| 73 | +++ b/src/nox/coreapps/pyrt/pyglue.cc |
| 74 | @@ -874,7 +874,7 @@ to_python(const Flow& flow) |
| 75 | if (!s) { |
| 76 | throw std::runtime_error("Could not find Flow SWIG type_info"); |
| 77 | } |
| 78 | - return SWIG_Python_NewPointerObj(f, s, SWIG_POINTER_OWN | 0); |
| 79 | + return SWIG_Python_NewPointerObj(m, f, s, SWIG_POINTER_OWN | 0); |
| 80 | |
| 81 | // PyObject* dict = PyDict_New(); |
| 82 | // if (!dict) { |
| 83 | diff --git a/src/nox/coreapps/pyrt/pyrt.cc b/src/nox/coreapps/pyrt/pyrt.cc |
| 84 | index fbda461..8ec05d6 100644 |
| 85 | --- a/src/nox/coreapps/pyrt/pyrt.cc |
| 86 | +++ b/src/nox/coreapps/pyrt/pyrt.cc |
| 87 | @@ -776,7 +776,7 @@ Python_event_manager::create_python_context(const Context* ctxt, |
| 88 | pretty_print_python_exception()); |
| 89 | } |
| 90 | |
| 91 | - PyObject* pyctxt = SWIG_Python_NewPointerObj(p, s, 0); |
| 92 | + PyObject* pyctxt = SWIG_Python_NewPointerObj(m, p, s, 0); |
| 93 | Py_INCREF(pyctxt); // XXX needed? |
| 94 | |
| 95 | //Py_DECREF(m); |
| 96 | diff --git a/src/nox/netapps/authenticator/auth.i b/src/nox/netapps/authenticator/auth.i |
| 97 | index 1de1a17..bfa04e2 100644 |
| 98 | --- a/src/nox/netapps/authenticator/auth.i |
| 99 | +++ b/src/nox/netapps/authenticator/auth.i |
| 100 | @@ -18,6 +18,8 @@ |
| 101 | |
| 102 | %module "nox.netapps.authenticator.pyauth" |
| 103 | |
| 104 | +// Hack to get it to compile -BL |
| 105 | +%include "std_list.i" |
| 106 | %{ |
| 107 | #include "core_events.hh" |
| 108 | #include "pyrt/pycontext.hh" |
| 109 | diff --git a/src/nox/netapps/authenticator/flow_util.i b/src/nox/netapps/authenticator/flow_util.i |
| 110 | index f67c3ef..2a314e2 100644 |
| 111 | --- a/src/nox/netapps/authenticator/flow_util.i |
| 112 | +++ b/src/nox/netapps/authenticator/flow_util.i |
| 113 | @@ -32,6 +32,7 @@ using namespace vigil::applications; |
| 114 | %} |
| 115 | |
| 116 | %include "common-defs.i" |
| 117 | +%include "std_list.i" |
| 118 | |
| 119 | %import "netinet/netinet.i" |
| 120 | %import "pyrt/event.i" |
| 121 | diff --git a/src/nox/netapps/routing/routing.i b/src/nox/netapps/routing/routing.i |
| 122 | index 44ccb3d..f9221a2 100644 |
| 123 | --- a/src/nox/netapps/routing/routing.i |
| 124 | +++ b/src/nox/netapps/routing/routing.i |
| 125 | @@ -17,6 +17,8 @@ |
| 126 | */ |
| 127 | %module "nox.netapps.routing.pyrouting" |
| 128 | |
| 129 | +// Hack to get it to compile -BL |
| 130 | +%include "std_list.i" |
| 131 | %{ |
| 132 | #include "pyrouting.hh" |
| 133 | #include "routing.hh" |
| 134 | diff --git a/src/nox/netapps/switch_management/pyswitch_management.i b/src/nox/netapps/switch_management/pyswitch_management.i |
| 135 | index 72bfed4..ad2c90d 100644 |
| 136 | --- a/src/nox/netapps/switch_management/pyswitch_management.i |
| 137 | +++ b/src/nox/netapps/switch_management/pyswitch_management.i |
| 138 | @@ -18,6 +18,8 @@ |
| 139 | |
| 140 | %module "nox.netapps.pyswitch_management" |
| 141 | |
| 142 | +// Hack to get it to compile -BL |
| 143 | +%include "std_list.i" |
| 144 | %{ |
| 145 | #include "switch_management_proxy.hh" |
| 146 | #include "pyrt/pycontext.hh" |
| 147 | diff --git a/src/nox/netapps/tests/tests.cc b/src/nox/netapps/tests/tests.cc |
| 148 | index 20e900d..f027028 100644 |
| 149 | --- a/src/nox/netapps/tests/tests.cc |
| 150 | +++ b/src/nox/netapps/tests/tests.cc |
| 151 | @@ -306,7 +306,7 @@ private: |
| 152 | throw runtime_error("Could not find PyContext SWIG type_info."); |
| 153 | } |
| 154 | |
| 155 | - PyObject* pyctxt = SWIG_Python_NewPointerObj(p, s, 0); |
| 156 | + PyObject* pyctxt = SWIG_Python_NewPointerObj(m, p, s, 0); |
| 157 | assert(pyctxt); |
| 158 | |
| 159 | Py_DECREF(m); |
| 160 | diff --git a/src/nox/netapps/topology/pytopology.i b/src/nox/netapps/topology/pytopology.i |
| 161 | index 94a9f4b..7a8cd94 100644 |
| 162 | --- a/src/nox/netapps/topology/pytopology.i |
| 163 | +++ b/src/nox/netapps/topology/pytopology.i |
| 164 | @@ -18,6 +18,8 @@ |
| 165 | |
| 166 | %module "nox.netapps.topology" |
| 167 | |
| 168 | +// Hack to get it to compile -BL |
| 169 | +%include "std_list.i" |
| 170 | %{ |
| 171 | #include "pytopology.hh" |
| 172 | #include "pyrt/pycontext.hh" |
| 173 | -- |
| 174 | 1.7.5.4 |
| 175 | |