aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorantoine <antoine@FreeBSD.org>2014-02-27 05:54:59 +0800
committerantoine <antoine@FreeBSD.org>2014-02-27 05:54:59 +0800
commit23584a21f5ef075a906bd862aee6790592dddf75 (patch)
tree962ae154fb3cfc79c860e04a7f680db1f8814018
parent6eb17214c685b699837f226ff378aae36b6b123d (diff)
downloadfreebsd-ports-gnome-23584a21f5ef075a906bd862aee6790592dddf75.tar.gz
freebsd-ports-gnome-23584a21f5ef075a906bd862aee6790592dddf75.tar.zst
freebsd-ports-gnome-23584a21f5ef075a906bd862aee6790592dddf75.zip
- Update to 1.8.5
- Unbreak and unexpire - Stage support PR: ports/186982 Submitted by: Johannes 5 Joemann
-rw-r--r--net/xorp/Makefile120
-rw-r--r--net/xorp/distinfo4
-rw-r--r--net/xorp/files/patch-SConstruct27
-rw-r--r--net/xorp/files/patch-bgp__bgp_trie.cc11
-rw-r--r--net/xorp/files/patch-bgp__harness__coord.hh12
-rw-r--r--net/xorp/files/patch-bgp__path_attribute.cc16
-rw-r--r--net/xorp/files/patch-cli__cli_client.cc29
-rw-r--r--net/xorp/files/patch-cli__xrl_cli_node.hh21
-rw-r--r--net/xorp/files/patch-contrib__olsr__face.hh14
-rw-r--r--net/xorp/files/patch-contrib__olsr__face_manager.cc16
-rw-r--r--net/xorp/files/patch-contrib__olsr__message.hh13
-rw-r--r--net/xorp/files/patch-contrib__olsr__policy_varrw.cc11
-rw-r--r--net/xorp/files/patch-contrib__olsr__policy_varrw.hh11
-rw-r--r--net/xorp/files/patch-contrib__olsr__tools__print_databases.cc170
-rw-r--r--net/xorp/files/patch-contrib__olsr__twohop.hh14
-rw-r--r--net/xorp/files/patch-fea__data_plane__control_socket__routing_socket.cc14
-rw-r--r--net/xorp/files/patch-fea__data_plane__control_socket__routing_socket.hh11
-rw-r--r--net/xorp/files/patch-fea__data_plane__control_socket__windows_rtm_pipe.cc14
-rw-r--r--net/xorp/files/patch-fea__data_plane__control_socket__windows_rtm_pipe.hh11
-rw-r--r--net/xorp/files/patch-fea__data_plane__fibconfig__fibconfig_table_observer_rtmv2.hh21
-rw-r--r--net/xorp/files/patch-fea__data_plane__managers__fea_data_plane_manager_linux.cc15
-rw-r--r--net/xorp/files/patch-fea__data_plane__managers__fea_data_plane_manager_linux.hh14
-rw-r--r--net/xorp/files/patch-fea__fibconfig.hh18
-rw-r--r--net/xorp/files/patch-fea__firewall_manager.hh20
-rw-r--r--net/xorp/files/patch-fea__ifconfig.hh20
-rw-r--r--net/xorp/files/patch-fea__mfea_mrouter.hh11
-rw-r--r--net/xorp/files/patch-fea__tools__show_interfaces.hh20
-rw-r--r--net/xorp/files/patch-fea__xrl_mfea_node.hh20
-rw-r--r--net/xorp/files/patch-libproto__packet.cc11
-rw-r--r--net/xorp/files/patch-libxipc__xrl_pf_stcp.cc29
-rw-r--r--net/xorp/files/patch-libxorp-utility.h20
-rw-r--r--net/xorp/files/patch-mibs-bgp4_mib_1657_bgp4pathattrtable.cc35
-rw-r--r--net/xorp/files/patch-mibs-bgp4_mib_1657_bgppeertable.cc11
-rw-r--r--net/xorp/files/patch-mibs-xorpevents.cc11
-rw-r--r--net/xorp/files/patch-pim__pim_mrt_task.cc42
-rw-r--r--net/xorp/files/patch-policy__backend__iv_exec.cc15
-rw-r--r--net/xorp/files/patch-policy__backend__lex.yy_policy_backend_parser.cc11
-rw-r--r--net/xorp/files/patch-policy__backend__single_varrw.cc15
-rw-r--r--net/xorp/files/patch-policy__configuration.cc13
-rw-r--r--net/xorp/files/patch-policy__configuration.hh22
-rw-r--r--net/xorp/files/patch-policy__lex.yy_policy_parser.cc10
-rw-r--r--net/xorp/files/patch-rib__vifmanager.hh23
-rw-r--r--net/xorp/files/patch-rip__packets.hh10
-rw-r--r--net/xorp/files/patch-rtrmgr__cli.cc20
-rw-r--r--net/xorp/files/patch-rtrmgr__lex.boot.cc27
-rw-r--r--net/xorp/files/patch-rtrmgr__lex.opcmd.cc27
-rw-r--r--net/xorp/files/patch-rtrmgr__lex.tplt.cc27
-rw-r--r--net/xorp/files/patch-rtrmgr__module_command.hh10
-rw-r--r--net/xorp/files/patch-rtrmgr__module_manager.hh12
-rw-r--r--net/xorp/files/patch-rtrmgr__op_commands.hh11
-rw-r--r--net/xorp/files/patch-rtrmgr__template_commands.hh20
-rw-r--r--net/xorp/files/patch-rtrmgr__template_tree_node.cc17
-rw-r--r--net/xorp/files/patch-rtrmgr__template_tree_node.hh19
-rw-r--r--net/xorp/files/patch-rtrmgr__userdb.hh10
-rw-r--r--net/xorp/files/patch-rtrmgr__xorpsh_main.cc20
-rw-r--r--net/xorp/files/patch-rtrmgr__xorpsh_main.hh11
-rw-r--r--net/xorp/files/patch-site_scons__config__allconfig.py26
-rw-r--r--net/xorp/files/patch-vrrp__vrrp.cc29
-rw-r--r--net/xorp/files/patch-xrl__scripts__Xif__parse.py14
-rw-r--r--net/xorp/files/pkg-message.in14
-rw-r--r--net/xorp/files/xorp.in100
-rw-r--r--net/xorp/pkg-deinstall22
-rw-r--r--net/xorp/pkg-install35
-rw-r--r--net/xorp/pkg-plist356
64 files changed, 1378 insertions, 425 deletions
diff --git a/net/xorp/Makefile b/net/xorp/Makefile
index 847741ec8815..d9b7ae48c97e 100644
--- a/net/xorp/Makefile
+++ b/net/xorp/Makefile
@@ -2,101 +2,83 @@
# $FreeBSD$
PORTNAME= xorp
-PORTVERSION= 1.6
-PORTREVISION= 1
+PORTVERSION= 1.8.5
+DISTVERSIONSUFFIX= -src
CATEGORIES= net
-MASTER_SITES= http://www.xorp.org/releases/${PORTVERSION}/ \
- http://www2.xorp.org/releases/${PORTVERSION}/ \
- http://www5.xorp.org/releases/${PORTVERSION}/ \
- http://www3.xorp.org/releases/${PORTVERSION}/
+MASTER_SITES= http://www.xorp.org/releases/${PORTVERSION}/
MAINTAINER= ports@FreeBSD.org
COMMENT= The eXtensible Open Router Platform
LICENSE= GPLv2
-OPTIONS_DEFINE= ADVMCAST IPV6 SNMP OPTIMIZED_CFLAGS TEST DEBUG PROFILE
-OPTIONS_DEFAULT= ADVMCAST IPV6 SNMP OPTIMIZED_CFLAGS TEST PROFILE
+LIB_DEPENDS= libboost_regex.so:${PORTSDIR}/devel/boost-libs \
+ libpcap.so:${PORTSDIR}/net/libpcap
-ADVMCAST_DESC= Build with Advanced Multicast API
+CONFLICTS_INSTALL= xorp-devel-*
-BROKEN= Does not build
-DEPRECATED= Broken for more than 6 month
-EXPIRATION_DATE= 2014-02-27
-
-USE_GMAKE= yes
+EXTRACT_AFTER_ARGS= --no-same-owner --no-same-permissions -s /^xorp/${DISTNAME}/
+GROUPS= xorp
+USES= ncurses scons shebangfix
+USE_BZIP2= yes
USE_OPENSSL= yes
+USE_PYTHON_BUILD= 2
+USE_RC_SUBR= xorp
+SHEBANG_FILES= xrl/scripts/clnt-gen xrl/scripts/tgt-gen
+python_OLD_CMD= .*python
+python_CMD= ${PYTHON_CMD}
+SUB_FILES= pkg-message
+XORP_SAMPLECONF= rtrmgr/config/multicast4.boot
-GNU_CONFIGURE= yes
-CONFIGURE_ARGS= --prefix=${PREFIX}/${PORTNAME} \
- --with-comment='FreeBSD port: ${PKGNAME}' \
- --with-openssl=${OPENSSLBASE}
+BROKEN_sparc64= Does not compile on sparc64
-CXXFLAGS+= -Wno-uninitialized
-NOMAN= defined
+OPTIONS_DEFINE= OPTIMIZE ORIGIN SHARED STRIP TCP_RPC
+OPTIONS_DEFAULT= OPTIMIZE ORIGIN SHARED STRIP
+OPTIMIZE_DESC= Build with optimization
+ORIGIN_DESC= Use ORIGIN with shared libraries
+SHARED_DESC= Build with shared libraries
+TCP_RPC_DESC= Use TCP as RPC transport (defaults to AF_LOCAL)
-XORP_GROUP= xorp
-USE_RC_SUBR= xorp
+MAKE_ARGS= prefix=${PREFIX} enable_boost=1
-NO_STAGE= yes
.include <bsd.port.options.mk>
-.if ${PORT_OPTIONS:MADVMCAST}
-CONFIGURE_ARGS+= --enable-advanced-mcast-api
-.endif
-
-.if ${PORT_OPTIONS:MIPV6}
-CONFIGURE_ARGS+= --enable-ipv6
+.if ${PORT_OPTIONS:MOPTIMIZE}
+MAKE_ARGS+= optimize=highest
.else
-CONFIGURE_ARGS+= --disable-ipv6
+MAKE_ARGS+= optimize=no
.endif
-.if ${PORT_OPTIONS:MSNMP}
-BUILD_DEPENDS+= ${LOCALBASE}/sbin/snmpd:${PORTSDIR}/net-mgmt/net-snmp
-CONFIGURE_ARGS+= --with-snmp \
- --with-path-to-snmpd=${LOCALBASE}/sbin \
- --with-path-to-net-snmpd-config=${LOCALBASE}/bin/net-snmp-config \
- --enable-shared
-PLIST_SUB+= XORP_SNMP=""
-USE_LDCONFIG= ${PREFIX}/mibs
+.if ${PORT_OPTIONS:MSHARED}
+MAKE_ARGS+= shared=true
+PLIST_SUB+= XORP_SHLIB=""
+USE_LDCONFIG= ${PREFIX}/lib/xorp/lib
+. if ${PORT_OPTIONS:MORIGIN}
+MAKE_ARGS+= origin=true
+. else
+MAKE_ARGS+= origin=false
+. endif
.else
-PLIST_SUB+= XORP_SNMP="@comment "
-.endif
-
-.if ${PORT_OPTIONS:MOPTIMIZED_CFLAGS}
-CONFIGURE_ARGS+= --enable-optimize --disable-debug
+MAKE_ARGS+= shared=false
+PLIST_SUB+= XORP_SHLIB="@comment "
.endif
-.if ${PORT_OPTIONS:MTEST}
-BUILD_DEPENDS+= ${LOCALBASE}/bin/python:${PORTSDIR}/lang/python \
- ${LOCALBASE}/bin/bash:${PORTSDIR}/shells/bash
-.endif
-
-.if ${PORT_OPTIONS:MDEBUG}
-CONFIGURE_ARGS+= --enable-debug-msgs --enable-debug-fnames
+.if ${PORT_OPTIONS:MSTRIP}
+MAKE_ARGS+= strip=true
+.else
+MAKE_ARGS+= strip=false
.endif
-.if ${PORT_OPTIONS:MPROFILE}
-CONFIGURE_ARGS+= --enable-profile
+.if ${PORT_OPTIONS:MTCP_RPC}
+MAKE_ARGS+= transport=tcp
+.else
+MAKE_ARGS+= transport=local
.endif
-NOT_FOR_ARCH= sparc64
-
-.include <bsd.port.pre.mk>
-
-pre-everything::
-.if !defined(PREFIX) || ${PREFIX} == "/usr/local"
- @${ECHO_MSG} "XORP does not currently follow the hier(7) filesystem layout."
- @${ECHO_MSG} "It will therefore install all its directories relative to ${PREFIX}."
- @${ECHO_MSG} "If you do not want this, hit ^C now and set PREFIX in the"
- @${ECHO_MSG} "build environment to something other than ${PREFIX}."
- @${ECHO_MSG}
- @${ECHO_MSG} "If you plan to build with SNMP support, please ensure that"
- @${ECHO_MSG} "the net-mgmt/net-snmp port is already installed under ${LOCALBASE}"
- @${ECHO_MSG} "before doing this."
-.endif
+post-patch:
+ ${REINPLACE_CMD} 's,%%LOCALBASE%%,${LOCALBASE},' ${WRKSRC}/SConstruct
post-install:
- ${SETENV} ${SCRIPTS_ENV} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL
+ ${CP} -p ${WRKSRC}/${XORP_SAMPLECONF} ${STAGEDIR}${PREFIX}/etc/xorp.conf.sample
-.include <bsd.port.post.mk>
+.include <bsd.port.mk>
diff --git a/net/xorp/distinfo b/net/xorp/distinfo
index 86d384c0ed2f..a67a2ca9d86e 100644
--- a/net/xorp/distinfo
+++ b/net/xorp/distinfo
@@ -1,2 +1,2 @@
-SHA256 (xorp-1.6.tar.gz) = d3faff56f5e58cf43fa300e14d6b5702ea9e75147f3d2d2aae44da8bda3f8f82
-SIZE (xorp-1.6.tar.gz) = 7895108
+SHA256 (xorp-1.8.5-src.tar.bz2) = 4aa414e248f0ef3903a4ae8fd1862d8dd713a69f6bbc926d81dd693a88ef8e72
+SIZE (xorp-1.8.5-src.tar.bz2) = 3104442
diff --git a/net/xorp/files/patch-SConstruct b/net/xorp/files/patch-SConstruct
new file mode 100644
index 000000000000..826dc700564d
--- /dev/null
+++ b/net/xorp/files/patch-SConstruct
@@ -0,0 +1,27 @@
+--- ./SConstruct.orig 2012-01-11 17:46:45.000000000 +0000
++++ ./SConstruct 2014-02-26 21:17:13.000000000 +0000
+@@ -162,22 +162,13 @@
+
+ # XXX TODO: Make initial CPPPATH/LIBPATH derive from
+ # autodetected host system *or* command line.
+-#env = Environment(
+-# TOOLS = ['default', 'autotest', 'clntgen', 'tgtgen',
+-# 'TOOL_SUBST'],
+-# ENV = os.environ,
+-# BUILDDIR = builddir,
+-# CPPPATH=['/usr/local/include', '$BUILDDIR'],
+-# LIBPATH=['usr/lib', '/usr/local/lib'],
+-# variables = vars)
+-
+ env = Environment(
+ TOOLS = ['default', 'autotest', 'clntgen', 'tgtgen',
+ 'TOOL_SUBST'],
+ ENV = os.environ,
+ BUILDDIR = builddir,
+- CPPPATH=['$BUILDDIR'],
+- LIBPATH=['usr/lib'],
++ CPPPATH=['%%LOCALBASE%%/include', '$BUILDDIR'],
++ LIBPATH=['usr/lib', '%%LOCALBASE%%/lib'],
+ variables = vars)
+
+ prefix = env['prefix']
diff --git a/net/xorp/files/patch-bgp__bgp_trie.cc b/net/xorp/files/patch-bgp__bgp_trie.cc
new file mode 100644
index 000000000000..497a35b74d56
--- /dev/null
+++ b/net/xorp/files/patch-bgp__bgp_trie.cc
@@ -0,0 +1,11 @@
+--- ./bgp/bgp_trie.cc.orig 2010-07-19 21:10:33.000000000 +0000
++++ ./bgp/bgp_trie.cc 2014-02-26 21:17:13.000000000 +0000
+@@ -115,7 +115,7 @@
+ net.str().c_str(),
+ found->attributes()->str().c_str());
+ XLOG_INFO("Pathmap dump follows: \n");
+- for (pmi == _pathmap.begin(); pmi != _pathmap.end(); pmi++) {
++ for (pmi = _pathmap.begin(); pmi != _pathmap.end(); pmi++) {
+ XLOG_INFO("%s\n\n", pmi->second->str().c_str());
+ }
+ XLOG_FATAL("Exiting\n");
diff --git a/net/xorp/files/patch-bgp__harness__coord.hh b/net/xorp/files/patch-bgp__harness__coord.hh
new file mode 100644
index 000000000000..4ab42daa0707
--- /dev/null
+++ b/net/xorp/files/patch-bgp__harness__coord.hh
@@ -0,0 +1,12 @@
+--- ./bgp/harness/coord.hh.orig 2010-07-19 21:10:33.000000000 +0000
++++ ./bgp/harness/coord.hh 2014-02-26 21:17:13.000000000 +0000
+@@ -42,7 +42,9 @@
+
+ private:
+ bool _done;
++public:
+ EventLoop& _eventloop;
++private:
+ Command& _command;
+ };
+
diff --git a/net/xorp/files/patch-bgp__path_attribute.cc b/net/xorp/files/patch-bgp__path_attribute.cc
new file mode 100644
index 000000000000..29befee38051
--- /dev/null
+++ b/net/xorp/files/patch-bgp__path_attribute.cc
@@ -0,0 +1,16 @@
+--- ./bgp/path_attribute.cc.orig 2011-03-16 21:15:59.000000000 +0000
++++ ./bgp/path_attribute.cc 2014-02-26 21:17:13.000000000 +0000
+@@ -830,8 +830,11 @@
+ ClusterListAttribute::clone() const
+ {
+ ClusterListAttribute *ca = new ClusterListAttribute();
+- list<IPv4>::const_reverse_iterator i = cluster_list().rbegin();
+- for(; i != cluster_list().rend(); i++)
++ // list<IPv4>::const_reverse_iterator i = cluster_list().rbegin();
++ list<IPv4>::const_iterator i = cluster_list().end();
++ if (! cluster_list().empty())
++ // for(; i != cluster_list().rend(); i++)
++ for(; i-- != cluster_list().begin(); )
+ ca->prepend_cluster_id(*i);
+ return ca;
+ }
diff --git a/net/xorp/files/patch-cli__cli_client.cc b/net/xorp/files/patch-cli__cli_client.cc
new file mode 100644
index 000000000000..fe353a1e5c07
--- /dev/null
+++ b/net/xorp/files/patch-cli__cli_client.cc
@@ -0,0 +1,29 @@
+--- ./cli/cli_client.cc.orig 2011-07-25 17:45:38.000000000 +0000
++++ ./cli/cli_client.cc 2014-02-26 21:17:13.000000000 +0000
+@@ -832,7 +832,7 @@
+ //
+ // Print help
+ //
+- if ((val == 'h')) {
++ if (val == 'h') {
+ if (! is_help_mode()) {
+ set_help_mode(true);
+ _is_page_buffer_mode = &_is_help_buffer_mode;
+@@ -958,7 +958,7 @@
+ // Display the output all at once instead of oen screen at a time.
+ // (Same as specifying the "| no-more" command.)
+ //
+- if ((val == 'N')) {
++ if (val == 'N') {
+ while (page_buffer_last_line_n() < page_buffer_lines_n()) {
+ set_page_buffer_mode(false);
+ cli_print(page_buffer_line(page_buffer_last_line_n()));
+@@ -1021,7 +1021,7 @@
+ //
+ // Redraw the output of the screen
+ //
+- if ((val == CHAR_TO_CTRL('l'))) {
++ if (val == CHAR_TO_CTRL('l')) {
+ redisplay_screen_label:
+ size_t i, start_window_line = 0;
+ set_page_buffer_mode(false);
diff --git a/net/xorp/files/patch-cli__xrl_cli_node.hh b/net/xorp/files/patch-cli__xrl_cli_node.hh
new file mode 100644
index 000000000000..037fc743dba3
--- /dev/null
+++ b/net/xorp/files/patch-cli__xrl_cli_node.hh
@@ -0,0 +1,21 @@
+--- ./cli/xrl_cli_node.hh.orig 2011-03-16 21:27:45.000000000 +0000
++++ ./cli/xrl_cli_node.hh 2014-02-26 21:17:13.000000000 +0000
+@@ -224,6 +224,9 @@
+ const string *cli_term_name,
+ const uint32_t *cli_session_id,
+ const string *command_output);
++
++ EventLoop& _eventloop;
++
+ private:
+ /**
+ * Called when Finder connection is established.
+@@ -241,7 +244,7 @@
+
+ CliNode& cli_node() const { return (_cli_node); }
+
+- EventLoop& _eventloop;
++ // EventLoop& _eventloop;
+ CliNode& _cli_node;
+
+ XrlCliProcessorV0p1Client _xrl_cli_processor_client;
diff --git a/net/xorp/files/patch-contrib__olsr__face.hh b/net/xorp/files/patch-contrib__olsr__face.hh
new file mode 100644
index 000000000000..39f7c0ca4433
--- /dev/null
+++ b/net/xorp/files/patch-contrib__olsr__face.hh
@@ -0,0 +1,14 @@
+--- ./contrib/olsr/face.hh.orig 2010-07-19 21:10:33.000000000 +0000
++++ ./contrib/olsr/face.hh 2014-02-26 21:17:13.000000000 +0000
+@@ -291,8 +291,10 @@
+ */
+ void originate_hello();
+
+- private:
+ Olsr& _olsr;
++
++ private:
++ // Olsr& _olsr;
+ FaceManager& _fm;
+ Neighborhood* _nh;
+ MessageDecoder& _md;
diff --git a/net/xorp/files/patch-contrib__olsr__face_manager.cc b/net/xorp/files/patch-contrib__olsr__face_manager.cc
new file mode 100644
index 000000000000..aca6762e7dcb
--- /dev/null
+++ b/net/xorp/files/patch-contrib__olsr__face_manager.cc
@@ -0,0 +1,16 @@
+--- ./contrib/olsr/face_manager.cc.orig 2011-07-25 17:55:36.000000000 +0000
++++ ./contrib/olsr/face_manager.cc 2014-02-26 21:17:13.000000000 +0000
+@@ -239,8 +239,11 @@
+
+ // Walk the list of message handler functions in reverse,
+ // looking for one which is willing to consume this message.
+- vector<MessageReceiveCB>::reverse_iterator jj;
+- for (jj = _handlers.rbegin(); jj != _handlers.rend(); jj++) {
++ // vector<MessageReceiveCB>::reverse_iterator jj;
++ vector<MessageReceiveCB>::iterator jj;
++ if (! _handlers.empty())
++ // for (jj = _handlers.rbegin(); jj != _handlers.rend(); jj++) {
++ for (jj = _handlers.end(); jj-- != _handlers.begin(); ) {
+ try {
+ is_consumed = (*jj)->dispatch(msg, src, face->local_addr());
+ if (is_consumed)
diff --git a/net/xorp/files/patch-contrib__olsr__message.hh b/net/xorp/files/patch-contrib__olsr__message.hh
new file mode 100644
index 000000000000..0c4c4be3bccb
--- /dev/null
+++ b/net/xorp/files/patch-contrib__olsr__message.hh
@@ -0,0 +1,13 @@
+--- ./contrib/olsr/message.hh.orig 2012-01-11 17:46:45.000000000 +0000
++++ ./contrib/olsr/message.hh 2014-02-26 21:17:13.000000000 +0000
+@@ -668,8 +668,8 @@
+ return (str += '\n');
+ }
+
+-private:
+- size_t _opaque_data_offset;
++// private:
++// size_t _opaque_data_offset;
+ };
+
+ /**
diff --git a/net/xorp/files/patch-contrib__olsr__policy_varrw.cc b/net/xorp/files/patch-contrib__olsr__policy_varrw.cc
new file mode 100644
index 000000000000..e50ee991f7c4
--- /dev/null
+++ b/net/xorp/files/patch-contrib__olsr__policy_varrw.cc
@@ -0,0 +1,11 @@
+--- ./contrib/olsr/policy_varrw.cc.orig 2010-07-19 21:10:33.000000000 +0000
++++ ./contrib/olsr/policy_varrw.cc 2014-02-26 21:17:13.000000000 +0000
+@@ -39,7 +39,7 @@
+ #include "policy_varrw.hh"
+
+ OlsrVarRW::OlsrVarRW(IPv4Net& network, IPv4& nexthop, uint32_t& metric,
+- IPv4& originator, IPv4& main_addr, uint32_t vtype,
++ IPv4& originator, IPv4& main_addr, uint32_t& vtype,
+ PolicyTags& policytags)
+ : _network(network), _nexthop(nexthop), _metric(metric),
+ _originator(originator), _main_addr(main_addr), _vtype(vtype),
diff --git a/net/xorp/files/patch-contrib__olsr__policy_varrw.hh b/net/xorp/files/patch-contrib__olsr__policy_varrw.hh
new file mode 100644
index 000000000000..bb2d97086d34
--- /dev/null
+++ b/net/xorp/files/patch-contrib__olsr__policy_varrw.hh
@@ -0,0 +1,11 @@
+--- ./contrib/olsr/policy_varrw.hh.orig 2010-07-19 21:10:33.000000000 +0000
++++ ./contrib/olsr/policy_varrw.hh 2014-02-26 21:17:13.000000000 +0000
+@@ -45,7 +45,7 @@
+ };
+
+ OlsrVarRW(IPv4Net& network, IPv4& nexthop, uint32_t& metric,
+- IPv4& originator, IPv4& main_addr, uint32_t vtype,
++ IPv4& originator, IPv4& main_addr, uint32_t& vtype,
+ PolicyTags& policytags);
+
+ // SingleVarRW inteface:
diff --git a/net/xorp/files/patch-contrib__olsr__tools__print_databases.cc b/net/xorp/files/patch-contrib__olsr__tools__print_databases.cc
new file mode 100644
index 000000000000..6b6c3108e72f
--- /dev/null
+++ b/net/xorp/files/patch-contrib__olsr__tools__print_databases.cc
@@ -0,0 +1,170 @@
+--- ./contrib/olsr/tools/print_databases.cc.orig 2011-03-16 21:16:01.000000000 +0000
++++ ./contrib/olsr/tools/print_databases.cc 2014-02-26 21:17:13.000000000 +0000
+@@ -161,7 +161,8 @@
+ };
+
+ void
+-GetExternals::get(int argc, char *argv[])
++// GetExternals::get(int argc, char *argv[])
++GetExternals::get(int, char *[])
+ {
+ XrlOlsr4V0p1Client cl(&this->_xr);
+
+@@ -172,8 +173,8 @@
+ if (! success)
+ XLOG_WARNING("Failed to get external route list.");
+
+- UNUSED(argc);
+- UNUSED(argv);
++ // UNUSED(argc);
++ // UNUSED(argv);
+ }
+
+ void
+@@ -309,7 +310,8 @@
+ };
+
+ void
+-GetInterfaces::get(int argc, char *argv[])
++// GetInterfaces::get(int argc, char *argv[])
++GetInterfaces::get(int, char *[])
+ {
+ XrlOlsr4V0p1Client cl(&this->_xr);
+
+@@ -320,8 +322,8 @@
+ if (! success)
+ XLOG_WARNING("Failed to get interface list.");
+
+- UNUSED(argc);
+- UNUSED(argv);
++ // UNUSED(argc);
++ // UNUSED(argv);
+ }
+
+ void
+@@ -476,7 +478,8 @@
+ };
+
+ void
+-GetLinks::get(int argc, char *argv[])
++// GetLinks::get(int argc, char *argv[])
++GetLinks::get(int, char *[])
+ {
+ XrlOlsr4V0p1Client cl(&this->_xr);
+
+@@ -487,8 +490,8 @@
+ if (! success)
+ XLOG_WARNING("Failed to get link list.");
+
+- UNUSED(argc);
+- UNUSED(argv);
++ // UNUSED(argc);
++ // UNUSED(argv);
+ }
+
+ void
+@@ -649,7 +652,8 @@
+ };
+
+ void
+-GetMids::get(int argc, char *argv[])
++// GetMids::get(int argc, char *argv[])
++GetMids::get(int, char *[])
+ {
+ XrlOlsr4V0p1Client cl(&this->_xr);
+
+@@ -660,8 +664,8 @@
+ if (! success)
+ XLOG_WARNING("Failed to get MID list.");
+
+- UNUSED(argc);
+- UNUSED(argv);
++ // UNUSED(argc);
++ // UNUSED(argv);
+ }
+
+ void
+@@ -803,7 +807,8 @@
+ };
+
+ void
+-GetNeighbors::get(int argc, char *argv[])
++// GetNeighbors::get(int argc, char *argv[])
++GetNeighbors::get(int, char *[])
+ {
+ XrlOlsr4V0p1Client cl(&this->_xr);
+
+@@ -814,8 +819,8 @@
+ if (! success)
+ XLOG_WARNING("Failed to get neighbor list.");
+
+- UNUSED(argc);
+- UNUSED(argv);
++ // UNUSED(argc);
++ // UNUSED(argv);
+ }
+
+ void
+@@ -979,7 +984,8 @@
+ };
+
+ void
+-GetTopology::get(int argc, char *argv[])
++// GetTopology::get(int argc, char *argv[])
++GetTopology::get(int, char *[])
+ {
+ XrlOlsr4V0p1Client cl(&this->_xr);
+
+@@ -990,8 +996,8 @@
+ if (! success)
+ XLOG_WARNING("Failed to get topology list.");
+
+- UNUSED(argc);
+- UNUSED(argv);
++ // UNUSED(argc);
++ // UNUSED(argv);
+ }
+
+ void
+@@ -1126,7 +1132,8 @@
+ };
+
+ void
+-GetTwohopLinks::get(int argc, char *argv[])
++// GetTwohopLinks::get(int argc, char *argv[])
++GetTwohopLinks::get(int, char *[])
+ {
+ XrlOlsr4V0p1Client cl(&this->_xr);
+
+@@ -1137,8 +1144,8 @@
+ if (! success)
+ XLOG_WARNING("Failed to get neighbor list.");
+
+- UNUSED(argc);
+- UNUSED(argv);
++ // UNUSED(argc);
++ // UNUSED(argv);
+ }
+
+ void
+@@ -1271,7 +1278,8 @@
+ };
+
+ void
+-GetTwohopNeighbors::get(int argc, char *argv[])
++// GetTwohopNeighbors::get(int argc, char *argv[])
++GetTwohopNeighbors::get(int, char *[])
+ {
+ XrlOlsr4V0p1Client cl(&this->_xr);
+
+@@ -1283,8 +1291,8 @@
+ if (! success)
+ XLOG_WARNING("Failed to get two-hop neighbor list.");
+
+- UNUSED(argc);
+- UNUSED(argv);
++ // UNUSED(argc);
++ // UNUSED(argv);
+ }
+
+ void
diff --git a/net/xorp/files/patch-contrib__olsr__twohop.hh b/net/xorp/files/patch-contrib__olsr__twohop.hh
new file mode 100644
index 000000000000..3cd7f7d3e54b
--- /dev/null
+++ b/net/xorp/files/patch-contrib__olsr__twohop.hh
@@ -0,0 +1,14 @@
+--- ./contrib/olsr/twohop.hh.orig 2011-03-16 21:27:46.000000000 +0000
++++ ./contrib/olsr/twohop.hh 2014-02-26 21:17:13.000000000 +0000
+@@ -140,8 +140,10 @@
+ return _twohop_links;
+ }
+
+- private:
+ EventLoop& _ev;
++
++ private:
++ // EventLoop& _ev;
+ Neighborhood* _parent;
+
+ /**
diff --git a/net/xorp/files/patch-fea__data_plane__control_socket__routing_socket.cc b/net/xorp/files/patch-fea__data_plane__control_socket__routing_socket.cc
new file mode 100644
index 000000000000..0b1ba899b615
--- /dev/null
+++ b/net/xorp/files/patch-fea__data_plane__control_socket__routing_socket.cc
@@ -0,0 +1,14 @@
+--- ./fea/data_plane/control_socket/routing_socket.cc.orig 2011-03-16 21:27:46.000000000 +0000
++++ ./fea/data_plane/control_socket/routing_socket.cc 2014-02-26 21:17:13.000000000 +0000
+@@ -240,9 +240,10 @@
+ // Observe routing sockets activity
+ //
+
+-struct RoutingSocketPlumber {
++class RoutingSocketPlumber {
+ typedef RoutingSocket::ObserverList ObserverList;
+
++public:
+ static void
+ plumb(RoutingSocket& r, RoutingSocketObserver* o)
+ {
diff --git a/net/xorp/files/patch-fea__data_plane__control_socket__routing_socket.hh b/net/xorp/files/patch-fea__data_plane__control_socket__routing_socket.hh
new file mode 100644
index 000000000000..bca087856f93
--- /dev/null
+++ b/net/xorp/files/patch-fea__data_plane__control_socket__routing_socket.hh
@@ -0,0 +1,11 @@
+--- ./fea/data_plane/control_socket/routing_socket.hh.orig 2011-03-16 21:27:46.000000000 +0000
++++ ./fea/data_plane/control_socket/routing_socket.hh 2014-02-26 21:17:13.000000000 +0000
+@@ -31,7 +31,7 @@
+
+
+ class RoutingSocketObserver;
+-struct RoutingSocketPlumber;
++// struct RoutingSocketPlumber;
+
+ /**
+ * RoutingSocket class opens a routing socket and forwards data arriving
diff --git a/net/xorp/files/patch-fea__data_plane__control_socket__windows_rtm_pipe.cc b/net/xorp/files/patch-fea__data_plane__control_socket__windows_rtm_pipe.cc
new file mode 100644
index 000000000000..e8f24eda5e5e
--- /dev/null
+++ b/net/xorp/files/patch-fea__data_plane__control_socket__windows_rtm_pipe.cc
@@ -0,0 +1,14 @@
+--- ./fea/data_plane/control_socket/windows_rtm_pipe.cc.orig 2011-03-16 21:16:01.000000000 +0000
++++ ./fea/data_plane/control_socket/windows_rtm_pipe.cc 2014-02-26 21:17:13.000000000 +0000
+@@ -288,9 +288,10 @@
+ // Observe routing sockets activity
+ //
+
+-struct WinRtmPipePlumber {
++class WinRtmPipePlumber {
+ typedef WinRtmPipe::ObserverList ObserverList;
+
++public:
+ static void
+ plumb(WinRtmPipe& r, WinRtmPipeObserver* o)
+ {
diff --git a/net/xorp/files/patch-fea__data_plane__control_socket__windows_rtm_pipe.hh b/net/xorp/files/patch-fea__data_plane__control_socket__windows_rtm_pipe.hh
new file mode 100644
index 000000000000..ef55480c5939
--- /dev/null
+++ b/net/xorp/files/patch-fea__data_plane__control_socket__windows_rtm_pipe.hh
@@ -0,0 +1,11 @@
+--- ./fea/data_plane/control_socket/windows_rtm_pipe.hh.orig 2011-03-16 21:16:01.000000000 +0000
++++ ./fea/data_plane/control_socket/windows_rtm_pipe.hh 2014-02-26 21:17:13.000000000 +0000
+@@ -29,7 +29,7 @@
+ #include "libxorp/exceptions.hh"
+
+ class WinRtmPipeObserver;
+-struct WinRtmPipePlumber;
++// struct WinRtmPipePlumber;
+
+ /**
+ * WinRtmPipe class opens a routing socket and forwards data arriving
diff --git a/net/xorp/files/patch-fea__data_plane__fibconfig__fibconfig_table_observer_rtmv2.hh b/net/xorp/files/patch-fea__data_plane__fibconfig__fibconfig_table_observer_rtmv2.hh
new file mode 100644
index 000000000000..e05a1fb957d5
--- /dev/null
+++ b/net/xorp/files/patch-fea__data_plane__fibconfig__fibconfig_table_observer_rtmv2.hh
@@ -0,0 +1,21 @@
+--- ./fea/data_plane/fibconfig/fibconfig_table_observer_rtmv2.hh.orig 2011-03-16 21:16:02.000000000 +0000
++++ ./fea/data_plane/fibconfig/fibconfig_table_observer_rtmv2.hh 2014-02-26 21:17:13.000000000 +0000
+@@ -73,15 +73,15 @@
+ private:
+ class RtmV2Observer : public WinRtmPipeObserver {
+ public:
+- RtmV2Observer(WinRtmPipe& rs, int af,
++ RtmV2Observer(WinRtmPipe& rs, /* int af, */
+ FibConfigTableObserverRtmV2& rtmo)
+- : WinRtmPipeObserver(rs), _af(af), _rtmo(rtmo) {}
++ : WinRtmPipeObserver(rs), /* _af(af), */ _rtmo(rtmo) {}
+ virtual ~RtmV2Observer() {}
+ void routing_socket_data(const vector<uint8_t>& buffer) {
+ _rtmo.receive_data(buffer);
+ }
+ private:
+- int _af;
++ // int _af;
+ FibConfigTableObserverRtmV2& _rtmo;
+ };
+
diff --git a/net/xorp/files/patch-fea__data_plane__managers__fea_data_plane_manager_linux.cc b/net/xorp/files/patch-fea__data_plane__managers__fea_data_plane_manager_linux.cc
new file mode 100644
index 000000000000..d4632d6cd8c1
--- /dev/null
+++ b/net/xorp/files/patch-fea__data_plane__managers__fea_data_plane_manager_linux.cc
@@ -0,0 +1,15 @@
+--- ./fea/data_plane/managers/fea_data_plane_manager_linux.cc.orig 2011-03-16 21:27:48.000000000 +0000
++++ ./fea/data_plane/managers/fea_data_plane_manager_linux.cc 2014-02-26 21:17:13.000000000 +0000
+@@ -71,8 +71,10 @@
+
+
+ FeaDataPlaneManagerLinux::FeaDataPlaneManagerLinux(FeaNode& fea_node)
+- : FeaDataPlaneManager(fea_node, "Linux"),
+- _ifconfig_get_ioctl(NULL)
++ : FeaDataPlaneManager(fea_node, "Linux")
++#if defined(HAVE_PROC_LINUX) && defined(HAVE_IOCTL_SIOCGIFCONF) and !defined(HAVE_NETLINK_SOCKETS)
++ , _ifconfig_get_ioctl(NULL)
++#endif
+ {
+ }
+
diff --git a/net/xorp/files/patch-fea__data_plane__managers__fea_data_plane_manager_linux.hh b/net/xorp/files/patch-fea__data_plane__managers__fea_data_plane_manager_linux.hh
new file mode 100644
index 000000000000..3856acf3d8a3
--- /dev/null
+++ b/net/xorp/files/patch-fea__data_plane__managers__fea_data_plane_manager_linux.hh
@@ -0,0 +1,14 @@
+--- ./fea/data_plane/managers/fea_data_plane_manager_linux.hh.orig 2011-03-16 21:27:48.000000000 +0000
++++ ./fea/data_plane/managers/fea_data_plane_manager_linux.hh 2014-02-26 21:17:13.000000000 +0000
+@@ -118,10 +118,10 @@
+ * @return the @ref IfConfigGetIoctl plugin.
+ */
+ IfConfigGetIoctl* ifconfig_get_ioctl() { return (_ifconfig_get_ioctl); }
+-#endif
+
+ private:
+ IfConfigGetIoctl* _ifconfig_get_ioctl;
++#endif
+ };
+
+ #endif // __FEA_DATA_PLANE_MANAGERS_FEA_DATA_PLANE_MANAGER_LINUX_HH__
diff --git a/net/xorp/files/patch-fea__fibconfig.hh b/net/xorp/files/patch-fea__fibconfig.hh
new file mode 100644
index 000000000000..6fde63661e67
--- /dev/null
+++ b/net/xorp/files/patch-fea__fibconfig.hh
@@ -0,0 +1,18 @@
+--- ./fea/fibconfig.hh.orig 2012-01-11 17:46:45.000000000 +0000
++++ ./fea/fibconfig.hh 2014-02-26 21:17:13.000000000 +0000
+@@ -736,12 +736,14 @@
+ */
+ Trie6& trie6() { return _trie6; }
+
++ FeaNode& _fea_node;
++
+ protected:
+ Trie4 _trie4; // IPv4 trie (used for testing purpose)
+ Trie6 _trie6; // IPv6 trie (used for testing purpose)
+
+ private:
+- FeaNode& _fea_node;
++ // FeaNode& _fea_node;
+ EventLoop& _eventloop;
+ #ifndef XORP_DISABLE_PROFILE
+ Profile& _profile;
diff --git a/net/xorp/files/patch-fea__firewall_manager.hh b/net/xorp/files/patch-fea__firewall_manager.hh
new file mode 100644
index 000000000000..1981825ff66e
--- /dev/null
+++ b/net/xorp/files/patch-fea__firewall_manager.hh
@@ -0,0 +1,20 @@
+--- ./fea/firewall_manager.hh.orig 2011-03-16 21:27:49.000000000 +0000
++++ ./fea/firewall_manager.hh 2014-02-26 21:17:13.000000000 +0000
+@@ -313,6 +313,8 @@
+ */
+ void delete_browse_state(uint32_t token);
+
++ FeaNode& _fea_node;
++
+ private:
+ /**
+ * Update the firewall entries by pushing them into the underlying system.
+@@ -364,7 +366,7 @@
+ */
+ void generate_token();
+
+- FeaNode& _fea_node;
++ // FeaNode& _fea_node;
+ EventLoop& _eventloop;
+ const IfTree& _iftree;
+
diff --git a/net/xorp/files/patch-fea__ifconfig.hh b/net/xorp/files/patch-fea__ifconfig.hh
new file mode 100644
index 000000000000..ca95da0b0af7
--- /dev/null
+++ b/net/xorp/files/patch-fea__ifconfig.hh
@@ -0,0 +1,20 @@
+--- ./fea/ifconfig.hh.orig 2011-03-16 21:27:49.000000000 +0000
++++ ./fea/ifconfig.hh 2014-02-26 21:17:13.000000000 +0000
+@@ -442,6 +442,8 @@
+ */
+ void report_updates(IfTree& iftree);
+
++ FeaNode& _fea_node;
++
+ private:
+ /**
+ * Restore the interface configuration.
+@@ -455,7 +457,7 @@
+ const IfTree& old_system_config,
+ string& error_msg);
+
+- FeaNode& _fea_node;
++ // FeaNode& _fea_node;
+ EventLoop& _eventloop;
+ NexthopPortMapper& _nexthop_port_mapper;
+ IfConfigTransactionManager* _itm; // The interface transaction manager
diff --git a/net/xorp/files/patch-fea__mfea_mrouter.hh b/net/xorp/files/patch-fea__mfea_mrouter.hh
new file mode 100644
index 000000000000..c2f9c4a7979c
--- /dev/null
+++ b/net/xorp/files/patch-fea__mfea_mrouter.hh
@@ -0,0 +1,11 @@
+--- ./fea/mfea_mrouter.hh.orig 2011-03-16 21:27:49.000000000 +0000
++++ ./fea/mfea_mrouter.hh 2014-02-26 21:17:13.000000000 +0000
+@@ -437,6 +437,8 @@
+ // Original state from the underlying system before the MFEA was started
+ //
+ bool _multicast_forwarding_enabled;
++
++public:
+ const FibConfig& _fibconfig;
+ };
+
diff --git a/net/xorp/files/patch-fea__tools__show_interfaces.hh b/net/xorp/files/patch-fea__tools__show_interfaces.hh
new file mode 100644
index 000000000000..1372d540321e
--- /dev/null
+++ b/net/xorp/files/patch-fea__tools__show_interfaces.hh
@@ -0,0 +1,20 @@
+--- ./fea/tools/show_interfaces.hh.orig 2010-07-19 21:10:33.000000000 +0000
++++ ./fea/tools/show_interfaces.hh 2014-02-26 21:17:13.000000000 +0000
+@@ -79,6 +79,8 @@
+ */
+ void print_interfaces(const string& print_iface_name) const;
+
++ EventLoop& _eventloop;
++
+ protected:
+ //
+ // IfMgrHintObserver methods
+@@ -132,7 +134,7 @@
+ */
+ int ifmgr_shutdown();
+
+- EventLoop& _eventloop;
++ // EventLoop& _eventloop;
+
+ IfMgrXrlMirror _ifmgr;
+
diff --git a/net/xorp/files/patch-fea__xrl_mfea_node.hh b/net/xorp/files/patch-fea__xrl_mfea_node.hh
new file mode 100644
index 000000000000..a964b5e11e57
--- /dev/null
+++ b/net/xorp/files/patch-fea__xrl_mfea_node.hh
@@ -0,0 +1,20 @@
+--- ./fea/xrl_mfea_node.hh.orig 2011-03-16 21:27:49.000000000 +0000
++++ ./fea/xrl_mfea_node.hh 2014-02-26 21:17:13.000000000 +0000
+@@ -504,6 +504,8 @@
+ // Input values,
+ const bool& enable);
+
++ EventLoop& _eventloop;
++
+ private:
+ /**
+ * Called when Finder connection is established.
+@@ -570,7 +572,7 @@
+
+ int family() const { return (MfeaNode::family()); }
+
+- EventLoop& _eventloop;
++ // EventLoop& _eventloop;
+ const string _finder_target;
+
+ XrlMfeaClientV0p1Client _xrl_mfea_client_client;
diff --git a/net/xorp/files/patch-libproto__packet.cc b/net/xorp/files/patch-libproto__packet.cc
new file mode 100644
index 000000000000..06279f227035
--- /dev/null
+++ b/net/xorp/files/patch-libproto__packet.cc
@@ -0,0 +1,11 @@
+--- ./libproto/packet.cc.orig 2011-03-16 21:27:50.000000000 +0000
++++ ./libproto/packet.cc 2014-02-26 21:17:13.000000000 +0000
+@@ -233,7 +233,7 @@
+ }
+
+ ArpHeader::ArpHeader() {
+- memset(this, 0, sizeof(this));
++ memset(this, 0, sizeof(*this));
+ ah_hw_len = 6;
+ ah_proto_len = 4;
+ }
diff --git a/net/xorp/files/patch-libxipc__xrl_pf_stcp.cc b/net/xorp/files/patch-libxipc__xrl_pf_stcp.cc
new file mode 100644
index 000000000000..a22f6fdced95
--- /dev/null
+++ b/net/xorp/files/patch-libxipc__xrl_pf_stcp.cc
@@ -0,0 +1,29 @@
+--- ./libxipc/xrl_pf_stcp.cc.orig 2011-09-08 17:46:00.000000000 +0000
++++ ./libxipc/xrl_pf_stcp.cc 2014-02-26 21:17:13.000000000 +0000
+@@ -584,7 +584,7 @@
+ uint32_t sn,
+ const Xrl& x,
+ const Callback& cb)
+- : _p(p), _sn(sn), _b(_buffer), _cb(cb), _keepalive(false)
++ : _p(p), _sn(sn), _b(_buffer), _cb(cb) //, _keepalive(false)
+ {
+ size_t header_bytes = STCPPacketHeader::header_size();
+ size_t xrl_bytes = x.packed_bytes();
+@@ -607,7 +607,7 @@
+ }
+
+ RequestState(XrlPFSTCPSender* p, uint32_t sn)
+- : _p(p), _sn(sn), _b(_buffer), _keepalive(true)
++ : _p(p), _sn(sn), _b(_buffer) //, _keepalive(true)
+ {
+ size_t header_bytes = STCPPacketHeader::header_size();
+
+@@ -650,7 +650,7 @@
+ uint8_t _buffer[256]; // XXX important performance parameter
+ uint32_t _size;
+ Callback _cb;
+- bool _keepalive;
++ // bool _keepalive;
+ };
+
+
diff --git a/net/xorp/files/patch-libxorp-utility.h b/net/xorp/files/patch-libxorp-utility.h
deleted file mode 100644
index 76d633750b64..000000000000
--- a/net/xorp/files/patch-libxorp-utility.h
+++ /dev/null
@@ -1,20 +0,0 @@
---- libxorp/utility.h.orig 2012-10-01 17:45:19.000000000 +0800
-+++ libxorp/utility.h 2012-10-01 17:47:34.000000000 +0800
-@@ -31,7 +31,7 @@
- * Compile time assertion.
- */
- #ifndef static_assert
--#define static_assert(a) switch (a) case 0: case (a):
-+#define static_assert(a) ((void)sizeof(int[(a) ? 1 : -1]))
- #endif /* static_assert */
-
- /*
-@@ -42,7 +42,7 @@
- #ifdef UNUSED
- # undef UNUSED
- #endif /* UNUSED */
--#define UNUSED(var) static_assert(sizeof(var) != 0)
-+#define UNUSED(var) ((void)var)
-
- #ifdef __cplusplus
- #define cstring(s) (s).str().c_str()
diff --git a/net/xorp/files/patch-mibs-bgp4_mib_1657_bgp4pathattrtable.cc b/net/xorp/files/patch-mibs-bgp4_mib_1657_bgp4pathattrtable.cc
deleted file mode 100644
index dab5442fd7b3..000000000000
--- a/net/xorp/files/patch-mibs-bgp4_mib_1657_bgp4pathattrtable.cc
+++ /dev/null
@@ -1,35 +0,0 @@
---- mibs/bgp4_mib_1657_bgp4pathattrtable.cc.orig 2009-01-05 18:31:00.000000000 +0000
-+++ mibs/bgp4_mib_1657_bgp4pathattrtable.cc 2011-12-27 03:17:03.000000000 +0000
-@@ -139,7 +139,7 @@
- DEBUGMSGTL((BgpMib::the_instance().name(),
- "updating local bgp4PathAttrTable...\n"));
- DEBUGMSGTL((BgpMib::the_instance().name(),
-- "local table size: %d\n", CONTAINER_SIZE(cb.container)));
-+ "local table size: %zd\n", CONTAINER_SIZE(cb.container)));
- bgp_mib.send_get_v4_route_list_start("bgp", net, true, false,
- callback(get_v4_route_list_start_done));
- break;
-@@ -156,12 +156,12 @@
- DEBUGMSGTL((BgpMib::the_instance().name(),
- "removing old routes from bgp4PathAttrTable...\n"));
- DEBUGMSGTL((BgpMib::the_instance().name(),
-- "local table size: %d old_routes stack: %d\n",
-+ "local table size: %zd old_routes stack: %zd\n",
- CONTAINER_SIZE(cb.container), update.old_routes.size()));
- CONTAINER_FOR_EACH(cb.container, find_old_routes, NULL);
- while (update.old_routes.size()) {
- DEBUGMSGTL((BgpMib::the_instance().name(),
-- "update.old_routes.size() = %d\n",
-+ "update.old_routes.size() = %zd\n",
- update.old_routes.size()));
- row = (bgp4PathAttrTable_context*)
- CONTAINER_FIND(cb.container, &update.old_routes.top());
-@@ -745,7 +745,7 @@
-
- if (row->update_signature != (update.list_token)) {
- DEBUGMSGTL((BgpMib::the_instance().name(),
-- "removing %#010x from table\n", row->bgp4PathAttrIpAddrPrefix));
-+ "removing %#010lx from table\n", row->bgp4PathAttrIpAddrPrefix));
- update.old_routes.push(row->index);
- }
- }
diff --git a/net/xorp/files/patch-mibs-bgp4_mib_1657_bgppeertable.cc b/net/xorp/files/patch-mibs-bgp4_mib_1657_bgppeertable.cc
deleted file mode 100644
index 1a1f1bd17b20..000000000000
--- a/net/xorp/files/patch-mibs-bgp4_mib_1657_bgppeertable.cc
+++ /dev/null
@@ -1,11 +0,0 @@
---- mibs/bgp4_mib_1657_bgppeertable.cc-orig 2011-12-27 00:37:40.000000000 +0000
-+++ mibs/bgp4_mib_1657_bgppeertable.cc 2011-12-27 00:38:11.000000000 +0000
-@@ -476,7 +476,7 @@
-
- void free_context(void * context, struct netsnmp_iterator_info_s * /* iinfo */)
- {
-- DEBUGMSGTL((BgpMib::the_instance().name(),"freeing context %x\n", context));
-+ DEBUGMSGTL((BgpMib::the_instance().name(),"freeing context %p\n", context));
- if (NULL != context) free(context);
- context = NULL;
- }
diff --git a/net/xorp/files/patch-mibs-xorpevents.cc b/net/xorp/files/patch-mibs-xorpevents.cc
deleted file mode 100644
index 28298d110291..000000000000
--- a/net/xorp/files/patch-mibs-xorpevents.cc
+++ /dev/null
@@ -1,11 +0,0 @@
---- mibs/xorpevents.cc-orig 2011-12-27 00:35:22.000000000 +0000
-+++ mibs/xorpevents.cc 2011-12-27 00:36:01.000000000 +0000
-@@ -55,7 +55,7 @@
- {
- SnmpEventLoop& e = SnmpEventLoop::the_instance();
- DEBUGMSGTL((e._log_name, "run all xorp timers\n"));
-- DEBUGMSGTL((e._log_name, "# of timers: %d\n", e.timer_list().size()));
-+ DEBUGMSGTL((e._log_name, "# of timers: %zd\n", e.timer_list().size()));
- e.timer_list().run();
- SnmpEventLoop::AlarmMap::iterator p;
- for (p = e._pending_alarms.begin(); p != e._pending_alarms.end(); ++p) {
diff --git a/net/xorp/files/patch-pim__pim_mrt_task.cc b/net/xorp/files/patch-pim__pim_mrt_task.cc
new file mode 100644
index 000000000000..6ebd56b8600b
--- /dev/null
+++ b/net/xorp/files/patch-pim__pim_mrt_task.cc
@@ -0,0 +1,42 @@
+--- ./pim/pim_mrt_task.cc.orig 2011-09-20 00:33:28.000000000 +0000
++++ ./pim/pim_mrt_task.cc 2014-02-26 21:17:13.000000000 +0000
+@@ -166,7 +166,8 @@
+ //
+ list<PimMreTask *>::reverse_iterator iter;
+ iter = pim_mre_task_list().rbegin();
+- if (iter != pim_mre_task_list().rend()) {
++// if (iter != pim_mre_task_list().rend()) {
++ if (pim_mre_task_list().end() != pim_mre_task_list().begin()) {
+ pim_mre_task = *iter;
+ if (pim_mre_task->input_state()
+ == PimMreTrackState::INPUT_STATE_IN_REMOVE_MISC) {
+@@ -1159,7 +1160,8 @@
+ //
+ list<PimMreTask *>::reverse_iterator iter;
+ iter = pim_mre_task_list().rbegin();
+- if (iter != pim_mre_task_list().rend()) {
++// if (iter != pim_mre_task_list().rend()) {
++ if (pim_mre_task_list().end() != pim_mre_task_list().begin()) {
+ pim_mre_task = *iter;
+ if (pim_mre_task->input_state() == input_state) {
+ pim_mre_task->add_pim_mre(pim_mre);
+@@ -1224,7 +1226,8 @@
+ //
+ list<PimMreTask *>::reverse_iterator iter;
+ iter = pim_mre_task_list().rbegin();
+- if (iter != pim_mre_task_list().rend()) {
++// if (iter != pim_mre_task_list().rend()) {
++ if (pim_mre_task_list().end() != pim_mre_task_list().begin()) {
+ pim_mre_task = *iter;
+ if (pim_mre_task->input_state() == input_state) {
+ pim_mre_task->add_pim_mre(pim_mre); // XXX
+@@ -1266,7 +1269,8 @@
+ //
+ list<PimMreTask *>::reverse_iterator iter;
+ iter = pim_mre_task_list().rbegin();
+- if (iter != pim_mre_task_list().rend()) {
++// if (iter != pim_mre_task_list().rend()) {
++ if (pim_mre_task_list().end() != pim_mre_task_list().begin()) {
+ pim_mre_task = *iter;
+ if (pim_mre_task->input_state()
+ == PimMreTrackState::INPUT_STATE_IN_REMOVE_PIM_MFC) {
diff --git a/net/xorp/files/patch-policy__backend__iv_exec.cc b/net/xorp/files/patch-policy__backend__iv_exec.cc
new file mode 100644
index 000000000000..0e77fa9347be
--- /dev/null
+++ b/net/xorp/files/patch-policy__backend__iv_exec.cc
@@ -0,0 +1,15 @@
+--- ./policy/backend/iv_exec.cc.orig 2011-03-16 21:27:54.000000000 +0000
++++ ./policy/backend/iv_exec.cc 2014-02-26 21:17:13.000000000 +0000
+@@ -275,7 +275,11 @@
+ IvExec::visit(Store& s)
+ {
+ if (_stackptr < _stack)
+- xorp_throw(RuntimeError, "Stack empty on assign of " + s.var());
++ // xorp_throw(RuntimeError, "Stack empty on assign of " + s.var());
++ { char *tmpstr;
++ asprintf(&tmpstr, "Stack empty on assign of %d", s.var());
++ xorp_throw(RuntimeError, tmpstr);
++ }
+
+ const Element* arg = *_stackptr;
+ _stackptr--;
diff --git a/net/xorp/files/patch-policy__backend__lex.yy_policy_backend_parser.cc b/net/xorp/files/patch-policy__backend__lex.yy_policy_backend_parser.cc
new file mode 100644
index 000000000000..16f5d8b1df03
--- /dev/null
+++ b/net/xorp/files/patch-policy__backend__lex.yy_policy_backend_parser.cc
@@ -0,0 +1,11 @@
+--- ./policy/backend/lex.yy_policy_backend_parser.cc.orig 2010-07-19 21:10:33.000000000 +0000
++++ ./policy/backend/lex.yy_policy_backend_parser.cc 2014-02-26 21:17:13.000000000 +0000
+@@ -617,6 +617,8 @@
+ static int yy_flex_strlen (yyconst char * );
+ #endif
+
++#define YY_NO_INPUT
++
+ #ifndef YY_NO_INPUT
+
+ #ifdef __cplusplus
diff --git a/net/xorp/files/patch-policy__backend__single_varrw.cc b/net/xorp/files/patch-policy__backend__single_varrw.cc
new file mode 100644
index 000000000000..f33e9ac81593
--- /dev/null
+++ b/net/xorp/files/patch-policy__backend__single_varrw.cc
@@ -0,0 +1,15 @@
+--- ./policy/backend/single_varrw.cc.orig 2010-07-19 21:10:33.000000000 +0000
++++ ./policy/backend/single_varrw.cc 2014-02-26 21:17:13.000000000 +0000
+@@ -70,7 +70,11 @@
+
+ // out of luck...
+ if(!e)
+- xorp_throw(SingleVarRWErr, "Unable to read variable " + id);
++ // xorp_throw(SingleVarRWErr, "Unable to read variable " + id);
++ { char *tmpstr;
++ asprintf(&tmpstr, "Unable to read variable %d", id);
++ xorp_throw(SingleVarRWErr, tmpstr);
++ }
+ }
+
+ return *e;
diff --git a/net/xorp/files/patch-policy__configuration.cc b/net/xorp/files/patch-policy__configuration.cc
new file mode 100644
index 000000000000..8df7b8c8c778
--- /dev/null
+++ b/net/xorp/files/patch-policy__configuration.cc
@@ -0,0 +1,13 @@
+--- ./policy/configuration.cc.orig 2011-03-16 21:27:54.000000000 +0000
++++ ./policy/configuration.cc 2014-02-26 21:17:13.000000000 +0000
+@@ -766,7 +766,9 @@
+ POLICY* p = find_policy(proto);
+ XLOG_ASSERT(p);
+
+- for (POLICY::reverse_iterator i = p->rbegin(); i != p->rend(); ++i) {
++// for (POLICY::reverse_iterator i = p->rbegin(); i != p->rend(); ++i) {
++ if (! p->empty())
++ for (POLICY::iterator i = p->end(); --i != p->begin(); ) {
+ PolicyList* pl = i->second;
+
+ pl->link_code(code);
diff --git a/net/xorp/files/patch-policy__configuration.hh b/net/xorp/files/patch-policy__configuration.hh
new file mode 100644
index 000000000000..6fba04e7a3d9
--- /dev/null
+++ b/net/xorp/files/patch-policy__configuration.hh
@@ -0,0 +1,22 @@
+--- ./policy/configuration.hh.orig 2011-03-16 21:27:54.000000000 +0000
++++ ./policy/configuration.hh 2014-02-26 21:17:13.000000000 +0000
+@@ -43,11 +43,19 @@
+
+ // XXX we go reverse in order to make peer specific policies override global
+ // ones. Global is "" so it's always smallest (first).
++/*
+ #define FOR_ALL_POLICIES(n) \
+ for (PROTOCOL::reverse_iterator i = _protocols.rbegin(); \
+ i != _protocols.rend(); ++i) \
+ for (POLICY::reverse_iterator n = i->second->rbegin(); \
+ n != i->second->rend(); ++n)
++*/
++#define FOR_ALL_POLICIES(n) \
++ if (! _protocols.empty()) \
++ for (PROTOCOL::iterator i = _protocols.end(); \
++ i-- != _protocols.begin(); ) \
++ for (POLICY::iterator n = i->second->end(); \
++ (! i->second->empty()) & (n-- != i->second->begin()); )
+
+ class IEMap {
+ public:
diff --git a/net/xorp/files/patch-policy__lex.yy_policy_parser.cc b/net/xorp/files/patch-policy__lex.yy_policy_parser.cc
new file mode 100644
index 000000000000..985313fb2223
--- /dev/null
+++ b/net/xorp/files/patch-policy__lex.yy_policy_parser.cc
@@ -0,0 +1,10 @@
+--- ./policy/lex.yy_policy_parser.cc.orig 2010-07-19 21:10:33.000000000 +0000
++++ ./policy/lex.yy_policy_parser.cc 2014-02-26 21:17:13.000000000 +0000
+@@ -2982,6 +2982,7 @@
+ static int yy_flex_strlen (yyconst char * );
+ #endif
+
++#define YY_NO_INPUT
+ #ifndef YY_NO_INPUT
+
+ #ifdef __cplusplus
diff --git a/net/xorp/files/patch-rib__vifmanager.hh b/net/xorp/files/patch-rib__vifmanager.hh
new file mode 100644
index 000000000000..ff7befbe0ab7
--- /dev/null
+++ b/net/xorp/files/patch-rib__vifmanager.hh
@@ -0,0 +1,23 @@
+--- ./rib/vifmanager.hh.orig 2010-07-19 21:10:33.000000000 +0000
++++ ./rib/vifmanager.hh 2014-02-26 21:17:13.000000000 +0000
+@@ -110,6 +110,9 @@
+ */
+ int final_stop();
+
++ XrlRouter& _xrl_router;
++ EventLoop& _eventloop;
++
+ protected:
+ //
+ // IfMgrHintObserver methods
+@@ -163,8 +166,8 @@
+ */
+ int ifmgr_shutdown();
+
+- XrlRouter& _xrl_router;
+- EventLoop& _eventloop;
++ // XrlRouter& _xrl_router;
++ // EventLoop& _eventloop;
+ RibManager* _rib_manager;
+
+ IfMgrXrlMirror _ifmgr;
diff --git a/net/xorp/files/patch-rip__packets.hh b/net/xorp/files/patch-rip__packets.hh
new file mode 100644
index 000000000000..603d149ea269
--- /dev/null
+++ b/net/xorp/files/patch-rip__packets.hh
@@ -0,0 +1,10 @@
+--- ./rip/packets.hh.orig 2011-03-16 21:16:12.000000000 +0000
++++ ./rip/packets.hh 2014-02-26 21:17:13.000000000 +0000
+@@ -586,6 +586,7 @@
+ const uint8_t* _key_id; // Key number used
+ const uint8_t* _auth_bytes; // Auth data length at end of packet
+ const uint8_t* _seqno; // Monotonically increasing seqno
++public:
+ const uint8_t* _mbz; // Must-be-zero
+ };
+
diff --git a/net/xorp/files/patch-rtrmgr__cli.cc b/net/xorp/files/patch-rtrmgr__cli.cc
new file mode 100644
index 000000000000..60f30869888c
--- /dev/null
+++ b/net/xorp/files/patch-rtrmgr__cli.cc
@@ -0,0 +1,20 @@
+--- ./rtrmgr/cli.cc.orig 2011-03-16 21:16:13.000000000 +0000
++++ ./rtrmgr/cli.cc 2014-02-26 21:17:13.000000000 +0000
+@@ -741,7 +741,7 @@
+ path = token_vector2line(command_global_name);
+ XLOG_ASSERT(path.substr(0, 4) == "help");
+ if (path.size() == 4) {
+- trimmed_path == "";
++ trimmed_path = "";
+ } else {
+ XLOG_ASSERT(path.substr(0, 5) == "help ");
+ trimmed_path = path.substr(5, path.size() - 5);
+@@ -1062,7 +1062,7 @@
+ path = token_vector2line(command_global_name);
+ XLOG_ASSERT(path.substr(0, 4) == "help");
+ if (path.size() == 4) {
+- trimmed_path == "";
++ trimmed_path = "";
+ } else {
+ XLOG_ASSERT(path.substr(0, 5) == "help ");
+ trimmed_path = path.substr(5, path.size() - 5);
diff --git a/net/xorp/files/patch-rtrmgr__lex.boot.cc b/net/xorp/files/patch-rtrmgr__lex.boot.cc
new file mode 100644
index 000000000000..caf43c9dc51a
--- /dev/null
+++ b/net/xorp/files/patch-rtrmgr__lex.boot.cc
@@ -0,0 +1,27 @@
+--- ./rtrmgr/lex.boot.cc.orig 2010-07-19 21:10:33.000000000 +0000
++++ ./rtrmgr/lex.boot.cc 2014-02-26 21:17:13.000000000 +0000
+@@ -9552,6 +9552,7 @@
+ static int yy_flex_strlen YY_PROTO(( yyconst char * ));
+ #endif
+
++#define YY_NO_INPUT
+ #ifndef YY_NO_INPUT
+ #ifdef __cplusplus
+ static int yyinput YY_PROTO(( void ));
+@@ -10483,6 +10484,7 @@
+ #endif /* ifndef YY_NO_UNPUT */
+
+
++#ifndef YY_NO_INPUT
+ #ifdef __cplusplus
+ static int yyinput()
+ #else
+@@ -10554,7 +10556,7 @@
+
+ return c;
+ }
+-
++#endif
+
+ #ifdef YY_USE_PROTOS
+ void yyrestart( FILE *input_file )
diff --git a/net/xorp/files/patch-rtrmgr__lex.opcmd.cc b/net/xorp/files/patch-rtrmgr__lex.opcmd.cc
new file mode 100644
index 000000000000..1926b77c5283
--- /dev/null
+++ b/net/xorp/files/patch-rtrmgr__lex.opcmd.cc
@@ -0,0 +1,27 @@
+--- ./rtrmgr/lex.opcmd.cc.orig 2010-07-19 21:10:33.000000000 +0000
++++ ./rtrmgr/lex.opcmd.cc 2014-02-26 21:17:13.000000000 +0000
+@@ -518,6 +518,7 @@
+ static int yy_flex_strlen YY_PROTO(( yyconst char * ));
+ #endif
+
++#define YY_NO_INPUT
+ #ifndef YY_NO_INPUT
+ #ifdef __cplusplus
+ static int yyinput YY_PROTO(( void ));
+@@ -1322,6 +1323,7 @@
+ #endif /* ifndef YY_NO_UNPUT */
+
+
++#ifndef YY_NO_INPUT
+ #ifdef __cplusplus
+ static int yyinput()
+ #else
+@@ -1393,7 +1395,7 @@
+
+ return c;
+ }
+-
++#endif
+
+ #ifdef YY_USE_PROTOS
+ void yyrestart( FILE *input_file )
diff --git a/net/xorp/files/patch-rtrmgr__lex.tplt.cc b/net/xorp/files/patch-rtrmgr__lex.tplt.cc
new file mode 100644
index 000000000000..9ebfb9dfe37f
--- /dev/null
+++ b/net/xorp/files/patch-rtrmgr__lex.tplt.cc
@@ -0,0 +1,27 @@
+--- ./rtrmgr/lex.tplt.cc.orig 2010-07-19 21:10:33.000000000 +0000
++++ ./rtrmgr/lex.tplt.cc 2014-02-26 21:17:13.000000000 +0000
+@@ -8667,6 +8667,7 @@
+ static int yy_flex_strlen YY_PROTO(( yyconst char * ));
+ #endif
+
++#define YY_NO_INPUT
+ #ifndef YY_NO_INPUT
+ #ifdef __cplusplus
+ static int yyinput YY_PROTO(( void ));
+@@ -9708,6 +9709,7 @@
+ #endif /* ifndef YY_NO_UNPUT */
+
+
++#ifndef YY_NO_INPUT
+ #ifdef __cplusplus
+ static int yyinput()
+ #else
+@@ -9779,7 +9781,7 @@
+
+ return c;
+ }
+-
++#endif
+
+ #ifdef YY_USE_PROTOS
+ void yyrestart( FILE *input_file )
diff --git a/net/xorp/files/patch-rtrmgr__module_command.hh b/net/xorp/files/patch-rtrmgr__module_command.hh
new file mode 100644
index 000000000000..2fc5caaa5cee
--- /dev/null
+++ b/net/xorp/files/patch-rtrmgr__module_command.hh
@@ -0,0 +1,10 @@
+--- ./rtrmgr/module_command.hh.orig 2010-07-19 21:10:33.000000000 +0000
++++ ./rtrmgr/module_command.hh 2014-02-26 21:17:13.000000000 +0000
+@@ -87,6 +87,7 @@
+ Action* _status_method;
+ Action* _startup_method;
+ Action* _shutdown_method;
++public:
+ bool _execute_done;
+ bool _verbose; // Set to true if output is verbose
+ };
diff --git a/net/xorp/files/patch-rtrmgr__module_manager.hh b/net/xorp/files/patch-rtrmgr__module_manager.hh
new file mode 100644
index 000000000000..105233a9b7fc
--- /dev/null
+++ b/net/xorp/files/patch-rtrmgr__module_manager.hh
@@ -0,0 +1,12 @@
+--- ./rtrmgr/module_manager.hh.orig 2011-09-20 00:33:28.000000000 +0000
++++ ./rtrmgr/module_manager.hh 2014-02-26 21:17:13.000000000 +0000
+@@ -144,7 +144,9 @@
+ string _expath; // The expanded absolute path to the program
+ bool _do_exec; // false indicates we're running in test mode,
+ // when we may not actually start any processes
++public:
+ bool _verbose; // Set to true if output is verbose
++private:
+ XorpTimer _shutdown_timer; // A timer used during shutdown
+ XorpCallback0<void>::RefPtr _terminate_cb; // The cb when module terminated
+ };
diff --git a/net/xorp/files/patch-rtrmgr__op_commands.hh b/net/xorp/files/patch-rtrmgr__op_commands.hh
new file mode 100644
index 000000000000..717c1606525c
--- /dev/null
+++ b/net/xorp/files/patch-rtrmgr__op_commands.hh
@@ -0,0 +1,11 @@
+--- ./rtrmgr/op_commands.hh.orig 2011-03-16 21:27:56.000000000 +0000
++++ ./rtrmgr/op_commands.hh 2014-02-26 21:17:13.000000000 +0000
+@@ -215,7 +215,7 @@
+
+ // Below here is temporary storage for use in parsing
+ list<string> _path_segments;
+- OpCommand* _current_command;
++ // OpCommand* _current_command;
+ const TemplateTree* _template_tree;
+ SlaveConfigTree* _slave_config_tree;
+ SlaveModuleManager& _mmgr;
diff --git a/net/xorp/files/patch-rtrmgr__template_commands.hh b/net/xorp/files/patch-rtrmgr__template_commands.hh
new file mode 100644
index 000000000000..f35fe1214c51
--- /dev/null
+++ b/net/xorp/files/patch-rtrmgr__template_commands.hh
@@ -0,0 +1,20 @@
+--- ./rtrmgr/template_commands.hh.orig 2011-03-16 21:16:14.000000000 +0000
++++ ./rtrmgr/template_commands.hh 2014-02-26 21:17:13.000000000 +0000
+@@ -78,6 +78,8 @@
+ string related_module() const;
+ string affected_module() const;
+
++ const XRLdb* _xrldb;
++
+ private:
+ #ifdef DEBUG_XRLDB
+ bool check_xrl_is_valid(const list<string>& action,
+@@ -92,7 +94,7 @@
+ string _request;
+ list<string> _split_response;
+ string _response;
+- const XRLdb* _xrldb;
++ // const XRLdb* _xrldb;
+ };
+
+ class ProgramAction : public Action {
diff --git a/net/xorp/files/patch-rtrmgr__template_tree_node.cc b/net/xorp/files/patch-rtrmgr__template_tree_node.cc
new file mode 100644
index 000000000000..5cc498bfffd6
--- /dev/null
+++ b/net/xorp/files/patch-rtrmgr__template_tree_node.cc
@@ -0,0 +1,17 @@
+--- ./rtrmgr/template_tree_node.cc.orig 2011-03-16 21:16:14.000000000 +0000
++++ ./rtrmgr/template_tree_node.cc 2014-02-26 21:17:13.000000000 +0000
+@@ -543,9 +543,12 @@
+ {
+ map<string,string> varmap;
+ const TemplateTreeNode* ttn = this;
+- list<string>::const_reverse_iterator iter;
++ // list<string>::const_reverse_iterator iter;
++ list<string>::const_iterator iter;
+
+- for (iter = segments.rbegin(); iter != segments.rend(); ++iter) {
++// for (iter = segments.rbegin(); iter != segments.rend(); ++iter) {
++ if (! segments.empty())
++ for (iter = segments.end(); iter-- != segments.begin(); ) {
+ if (ttn->name_is_variable())
+ varmap[ttn->segname()] = *iter;
+ ttn = ttn->parent();
diff --git a/net/xorp/files/patch-rtrmgr__template_tree_node.hh b/net/xorp/files/patch-rtrmgr__template_tree_node.hh
new file mode 100644
index 000000000000..733a30d2f4a6
--- /dev/null
+++ b/net/xorp/files/patch-rtrmgr__template_tree_node.hh
@@ -0,0 +1,19 @@
+--- ./rtrmgr/template_tree_node.hh.orig 2011-03-16 21:16:14.000000000 +0000
++++ ./rtrmgr/template_tree_node.hh 2014-02-26 21:17:13.000000000 +0000
+@@ -189,13 +189,15 @@
+ TemplateTreeNode* _parent;
+ list<TemplateTreeNode*> _children;
+
++ TemplateTree& _template_tree;
++
+ private:
+ bool split_up_varname(const string& varname,
+ list<string>& var_parts) const;
+ TemplateTreeNode* find_parent_varname_node(const list<string>& var_parts);
+ TemplateTreeNode* find_child_varname_node(const list<string>& var_parts);
+
+- TemplateTree& _template_tree;
++ // TemplateTree& _template_tree;
+
+ string _module_name;
+ string _default_target_name;
diff --git a/net/xorp/files/patch-rtrmgr__userdb.hh b/net/xorp/files/patch-rtrmgr__userdb.hh
new file mode 100644
index 000000000000..a4c695222b36
--- /dev/null
+++ b/net/xorp/files/patch-rtrmgr__userdb.hh
@@ -0,0 +1,10 @@
+--- ./rtrmgr/userdb.hh.orig 2011-03-16 21:16:14.000000000 +0000
++++ ./rtrmgr/userdb.hh 2014-02-26 21:17:13.000000000 +0000
+@@ -98,6 +98,7 @@
+
+ private:
+ map<uid_t, User*> _users;
++public:
+ bool _verbose; // Set to true if output is verbose
+ };
+
diff --git a/net/xorp/files/patch-rtrmgr__xorpsh_main.cc b/net/xorp/files/patch-rtrmgr__xorpsh_main.cc
new file mode 100644
index 000000000000..506967d4c733
--- /dev/null
+++ b/net/xorp/files/patch-rtrmgr__xorpsh_main.cc
@@ -0,0 +1,20 @@
+--- ./rtrmgr/xorpsh_main.cc.orig 2012-01-11 17:46:45.000000000 +0000
++++ ./rtrmgr/xorpsh_main.cc 2014-02-26 21:17:13.000000000 +0000
+@@ -146,7 +146,7 @@
+ _verbose(verbose),
+ _ipc_name(IPCname),
+ _got_config(false),
+- _got_modules(false),
++ // _got_modules(false),
+ _mode(MODE_INITIALIZING),
+ _xorpsh_interface(&_xrl_router, *this)
+ {
+@@ -667,7 +667,7 @@
+ _router_cli->notify_user(response, /* urgent */ true);
+ // XXX it's not clear we can continue if this happens
+ }
+- response == "";
++ // response == "";
+ if (!_ct->apply_deletions(user_id, deletions,
+ /* this is not a provisional change */ false,
+ response)) {
diff --git a/net/xorp/files/patch-rtrmgr__xorpsh_main.hh b/net/xorp/files/patch-rtrmgr__xorpsh_main.hh
new file mode 100644
index 000000000000..c0edeb9c4aa9
--- /dev/null
+++ b/net/xorp/files/patch-rtrmgr__xorpsh_main.hh
@@ -0,0 +1,11 @@
+--- ./rtrmgr/xorpsh_main.hh.orig 2011-03-16 21:16:14.000000000 +0000
++++ ./rtrmgr/xorpsh_main.hh 2014-02-26 21:17:13.000000000 +0000
+@@ -151,7 +151,7 @@
+ string _authfile;
+ string _authtoken;
+ bool _got_config;
+- bool _got_modules;
++ // bool _got_modules;
+ string _configuration;
+
+ bool _xrl_generic_done; // XRL startup/shutdown flag
diff --git a/net/xorp/files/patch-site_scons__config__allconfig.py b/net/xorp/files/patch-site_scons__config__allconfig.py
new file mode 100644
index 000000000000..302e61a0c098
--- /dev/null
+++ b/net/xorp/files/patch-site_scons__config__allconfig.py
@@ -0,0 +1,26 @@
+--- ./site_scons/config/allconfig.py.orig 2012-01-11 17:46:46.000000000 +0000
++++ ./site_scons/config/allconfig.py 2014-02-26 21:17:13.000000000 +0000
+@@ -21,6 +21,7 @@
+ import os
+ import string
+ from SCons.Script.SConscript import SConsEnvironment
++import fnmatch;
+
+ # TODO SCons support for headerfilename needs to be fixed at source--
+ # that would let us use confdefs.h for the include file header
+@@ -226,10 +227,12 @@
+ if has_af_inet and has_sock_raw:
+ conf.Define('HAVE_IP_RAW_SOCKETS')
+ # TODO: This needs to be properly detected.
+- # TODO: This used to check for bsd and linux in an error prone
+- # way. Now, do negative checks, but this could break Solaris
++ # <http://www.xorp.org/bugzilla/show_bug.cgi?id=106#c1>:
++ # TODO: This used to check for openbsd and linux in an error prone
++ # way. Now, do negative checks, but this could break Solaris and other OS
+ # (or not..no idea if it supports raw or not).
+- if not (env.has_key('mingw') and env['mingw']):
++ if not ((env.has_key('mingw') and env['mingw']) or
++ fnmatch.fnmatch(host_os, 'freebsd*')):
+ conf.Define('IPV4_RAW_OUTPUT_IS_RAW')
+ conf.Define('IPV4_RAW_INPUT_IS_RAW')
+
diff --git a/net/xorp/files/patch-vrrp__vrrp.cc b/net/xorp/files/patch-vrrp__vrrp.cc
new file mode 100644
index 000000000000..7cbf0b1c0212
--- /dev/null
+++ b/net/xorp/files/patch-vrrp__vrrp.cc
@@ -0,0 +1,29 @@
+--- ./vrrp/vrrp.cc.orig 2011-03-16 21:27:57.000000000 +0000
++++ ./vrrp/vrrp.cc 2014-02-26 21:17:13.000000000 +0000
+@@ -36,7 +36,7 @@
+
+ template <class T>
+ void
+-out_of_range(const string& msg, const T& x)
++out_of_range_(const string& msg, const T& x)
+ {
+ ostringstream oss;
+
+@@ -64,7 +64,7 @@
+ //, _arpd(_vif)
+ {
+ if (_vrid < 1 || _vrid > 255)
+- out_of_range("VRID out of range", _vrid);
++ out_of_range_("VRID out of range", _vrid);
+
+ char tmp[sizeof "ff:ff:ff:ff:ff:ff"];
+
+@@ -94,7 +94,7 @@
+ Vrrp::set_priority(uint32_t priority)
+ {
+ if (priority == PRIORITY_LEAVE || priority >= PRIORITY_OWN)
+- out_of_range("priority out of range", priority);
++ out_of_range_("priority out of range", priority);
+
+ _priority = priority;
+
diff --git a/net/xorp/files/patch-xrl__scripts__Xif__parse.py b/net/xorp/files/patch-xrl__scripts__Xif__parse.py
new file mode 100644
index 000000000000..ae0c845b470a
--- /dev/null
+++ b/net/xorp/files/patch-xrl__scripts__Xif__parse.py
@@ -0,0 +1,14 @@
+--- ./xrl/scripts/Xif/parse.py.orig 2010-07-19 21:10:33.000000000 +0000
++++ ./xrl/scripts/Xif/parse.py 2014-02-26 21:17:13.000000000 +0000
+@@ -71,8 +71,10 @@
+ pop_file()
+ pop_file()
+ push_file(file, line)
++ elif (flag == "3") or (flag == "4"):
++ print "Pre-processor #line flag (%s)" % flag
+ else:
+- print "Invalid pre-processor #line flag (%d)\n", flag
++ print "Invalid pre-processor #line flag (%s)" % flag
+ sys.exit(1)
+ return 1
+
diff --git a/net/xorp/files/pkg-message.in b/net/xorp/files/pkg-message.in
new file mode 100644
index 000000000000..45d4fb425ca2
--- /dev/null
+++ b/net/xorp/files/pkg-message.in
@@ -0,0 +1,14 @@
+Add the following lines to /etc/rc.conf to enable xorp:
+
+defaultrouter="NO"
+xorp_enable="YES"
+
+A configuration file must be created at
+
+%%PREFIX%%/etc/xorp.conf
+
+before use.
+
+Users who will be changing the xorp configuration via
+%%PREFIX%%/sbin/xorpsh
+must be members of the group xorp.
diff --git a/net/xorp/files/xorp.in b/net/xorp/files/xorp.in
index 8f037d3df567..38418281f9d6 100644
--- a/net/xorp/files/xorp.in
+++ b/net/xorp/files/xorp.in
@@ -6,96 +6,68 @@
#
# PROVIDE: xorp
-# REQUIRE: netif routing mountcritlocal
+# REQUIRE: netif routing mountcritlocal ldconfig
# BEFORE: NETWORKING
+# KEYWORD: shutdown
-# Add the following lines to /etc/rc.conf to enable xorp:
+# Add the following line to /etc/rc.conf to enable xorp:
#
# xorp_enable="YES"
-# xorp_flags="<set as needed>"
-# xorp_config_boot="%%PREFIX%%/etc/xorp.conf.sample"
+#
+# Note: You have to create a config file before you can start xorp!
+# Set ${xorp_conf} to its location, the default is defined below.
+#
+# Besides the xorp_* variables which you'll find below with their
+# default values, you can also define the following in rc.conf:
+#
+# xorp_rtprio=n
+#
+# This will run the xorp processes with realtime priority n, see rtprio(1).
. /etc/rc.subr
-name="xorp"
+name=xorp
rcvar=xorp_enable
load_rc_config $name
-: ${xorp_enable="NO"}
-: ${xorp_config_boot="%%PREFIX%%/etc/xorp.conf"}
-: ${xorp_rtrmgr_pidfile="/var/run/xorp_rtrmgr.pid"}
-: ${xorp_rtrmgr_logfile="/var/log/xorp_rtrmgr.log"}
-: ${xorp_rtrmgr_poll_enable=true}
-: ${xorp_rtrmgr_poll_timeout=90}
-: ${xorp_hardkill_enable=false}
-
-required_files=${xorp_config_boot}
-command=%%PREFIX%%/bin/xorp_rtrmgr
-command_args="-b ${xorp_config_boot}"
+: ${xorp_enable:=NO}
+: ${xorp_conf=%%PREFIX%%/etc/xorp.conf}
+: ${xorp_rtrmgr_pidfile=/var/run/xorp_rtrmgr.pid}
+: ${xorp_rtrmgr_logfile=/var/log/xorp_rtrmgr.log}
+: ${xorp_flags=-l ${xorp_rtrmgr_logfile}}
+: ${xorp_hardkill_enable:=NO}
+
+required_files=${xorp_conf}
+
+command=%%PREFIX%%/sbin/xorp_rtrmgr
pidfile=${xorp_rtrmgr_pidfile}
+logfile=${xorp_rtrmgr_logfile}
+command_args="-d -c ${xorp_conf} -P ${pidfile}"
sig_stop=INT
-start_precmd="xorp_prestart"
-start_cmd="xorp_start"
-stop_postcmd="xorp_poststop"
+start_precmd=xorp_prestart
+stop_postcmd=xorp_poststop
xorp_prestart()
{
- touch ${xorp_rtrmgr_logfile}
- return 0
-}
-
-xorp_start()
-{
- pidfile=${xorp_rtrmgr_pidfile}
-
- echo -n 'Starting XORP router processes:'
-
- echo -n ' xorp_rtrmgr'
- if ! daemon </dev/null >>${xorp_rtrmgr_logfile} 2>&1 -c -p ${pidfile} \
- ${command} ${command_args} ; then
- warn 'could not bring up xorp_rtrmgr.'
- return 1
- fi
+ [ -z ${logfile} ] || [ -f ${logfile} ] || touch ${logfile}
- ${xorp_rtrmgr_poll_enable} || return 0
-
- # If startup polling is enabled, then poll xorp_rtrmgr every
- # second to see if it died, or if it logged successful bringup.
- # XXX This may be racy on very fast machines, but without
- # daemonizing support from xorp_rtrmgr it's difficult not to race.
-
- pid=$(cat ${xorp_rtrmgr_pidfile})
- timeout=${xorp_rtrmgr_poll_timeout}
- tick=0
- fail=true
-
- until [ $tick = $timeout ];
- do
- sleep 1 ; kill -0 ${pid} || break
- if ( tail -5 ${xorp_rtrmgr_logfile} | \
- grep 'No more tasks to run' > /dev/null 2>&1 ) ; then
- fail=false
- break
- fi
- tick=$((tick + 1))
- done
-
- if $fail ; then
- warn 'xorp_rtrmgr failed to start'
- return 1
+ # required for rtprio(1) until handled like nice(1) by rc.subr(8)
+ if [ -n "$xorp_rtprio" ] && [ "$xorp_rtprio" -ge 0 ]
+ then
+ rc_flags="$xorp_rtprio $command $xorp_flags"
+ command=/usr/sbin/rtprio
fi
- echo '.'
return 0
}
xorp_poststop()
{
- rm -f ${xorp_rtrmgr_pidfile} >/dev/null 2>&1 || true
+ rm -f ${pidfile} >/dev/null 2>&1 || true
- ${xorp_hardkill_enable} || return 0
+ checkyesno xorp_hardkill_enable || return 0
killall -9 -m xorp_\* || true
return 0
diff --git a/net/xorp/pkg-deinstall b/net/xorp/pkg-deinstall
deleted file mode 100644
index c1419278e7fe..000000000000
--- a/net/xorp/pkg-deinstall
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/sh
-#
-# $FreeBSD$
-#
-
-PATH=/bin:/usr/sbin
-
-if [ -z "${XORP_GROUP}" ]; then
- XORP_GROUP=xorp
-fi
-
-case $2 in
- POST-DEINSTALL)
- if pw group show ${XORP_GROUP} 2>/dev/null
- then
- echo "Deleting group ${XORP_GROUP}..."
- pw groupdel -n ${XORP_GROUP} 2>/dev/null
- else
- echo "Group ${XORP_GROUP} not found!"
- fi
- ;;
-esac
diff --git a/net/xorp/pkg-install b/net/xorp/pkg-install
deleted file mode 100644
index e03935469846..000000000000
--- a/net/xorp/pkg-install
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/bin/sh
-#
-# $FreeBSD$
-#
-
-PATH=/bin:/usr/bin:/usr/sbin
-
-if [ -z "${XORP_GROUP}" ]; then
- XORP_GROUP=xorp
-fi
-
-case $2 in
- POST-INSTALL)
- if [ ! -f ${PREFIX}/etc/xorp.conf.sample ]; then \
- cp ${WRKSRC}/rtrmgr/config.boot.sample ${PREFIX}/etc/xorp.conf.sample; \
- fi
- if pw group show "${XORP_GROUP}" 2>/dev/null; then \
- echo "You already have a group \"${XORP_GROUP}\", so I will use it."; \
- else \
- echo "Adding group \"${XORP_GROUP}\"."; \
- pw groupadd -n ${XORP_GROUP} 2>/dev/null; \
- fi
- echo ""
- echo "Add the following lines to /etc/rc.conf to enable xorp:"
- echo ""
- echo "defaultrouter=\"NO\""
- echo "xorp_enable=\"YES\""
- echo ""
- echo "A configuration file must be created at ${PREFIX}/etc/xorp.conf before use."
- echo ""
- echo "Users who will be changing the xorp configuration via xorpsh"
- echo "must be members of the group xorp."
- echo ""
- ;;
-esac
diff --git a/net/xorp/pkg-plist b/net/xorp/pkg-plist
index 8ce4aef5e057..0a786d8f49db 100644
--- a/net/xorp/pkg-plist
+++ b/net/xorp/pkg-plist
@@ -1,156 +1,200 @@
-bin/call_xrl
-bin/xorp_profiler
-bin/xorp_rtrmgr
-bin/xorpsh
-bgp/xorp_bgp
-bgp/tools/xorpsh_print_peers
-bgp/tools/xorpsh_print_routes
-cli/tools/send_cli_processor_xrl
-cli/tools/cli_generic
-contrib/olsr/tools/clear_database
-contrib/olsr/tools/print_databases
-contrib/olsr/xorp_olsr4
-etc/templates/bgp.cmds
-etc/templates/bgp.tp
-etc/templates/fea.cmds
-etc/templates/fea.tp
-etc/templates/fib2mrib.tp
-etc/templates/firewall.tp
-etc/templates/host.cmds
-etc/templates/igmp.cmds
-etc/templates/igmp.tp
-etc/templates/interfaces.tp
-etc/templates/mfea.cmds
-etc/templates/mfea4.tp
-etc/templates/mfea6.cmds
-etc/templates/mfea6.tp
-etc/templates/misc.cmds
-etc/templates/mld.cmds
-etc/templates/mld.tp
-etc/templates/olsr4.cmds
-etc/templates/olsr4.tp
-etc/templates/ospfv2.cmds
-etc/templates/ospfv2.tp
-etc/templates/ospfv3.cmds
-etc/templates/ospfv3.tp
-etc/templates/pim.cmds
-etc/templates/pim6.cmds
-etc/templates/rib.tp
-etc/templates/pimsm4.tp
-etc/templates/pimsm6.tp
-etc/templates/plumbing.tp
-etc/templates/policy.tp
-etc/templates/protocols.tp
-etc/templates/rib.cmds
-etc/templates/rip.cmds
-etc/templates/rip.tp
-etc/templates/ripng.cmds
-etc/templates/ripng.tp
-etc/templates/rtrmgr.tp
-etc/templates/snmp.tp
-etc/templates/static_routes.tp
-etc/templates/xorpsh.cmds
-fea/xorp_fea
-fea/xorp_fea_click_config_generator
-fea/xorp_fea_dummy
-fea/tools/show_interfaces
-fib2mrib/xorp_fib2mrib
-libxipc/xorp_finder
-mld6igmp/xorp_igmp
-mld6igmp/xorp_mld
-ospf/xorp_ospfv2
-ospf/xorp_ospfv3
-ospf/tools/clear_database
-ospf/tools/print_lsas
-ospf/tools/print_neighbours
-pim/xorp_pimsm4
-pim/xorp_pimsm6
-policy/xorp_policy
-rib/xorp_rib
-rib/tools/show_distances
-rib/tools/show_routes
-rip/xorp_rip
-rip/xorp_ripng
-rip/tools/show_peer_stats
-rip/tools/show_stats
-static_routes/xorp_static_routes
-vrrp/xorp_vrrp
-xrl/targets/bgp.xrls
-xrl/targets/bgp4_mib.xrls
-xrl/targets/cli.xrls
-xrl/targets/coord.xrls
-xrl/targets/fea.xrls
-xrl/targets/fea_ifmgr_mirror.xrls
-xrl/targets/fib2mrib.xrls
-xrl/targets/finder.xrls
-xrl/targets/finder_client.xrls
-xrl/targets/mfea.xrls
-xrl/targets/mld6igmp.xrls
-xrl/targets/olsr4.xrls
-xrl/targets/ospfv2.xrls
-xrl/targets/ospfv3.xrls
-xrl/targets/pim.xrls
-xrl/targets/policy.xrls
-xrl/targets/profiler.xrls
-xrl/targets/rib.xrls
-xrl/targets/ribclient.xrls
-xrl/targets/rip.xrls
-xrl/targets/ripng.xrls
-xrl/targets/rtrmgr.xrls
-xrl/targets/show_distances.xrls
-xrl/targets/show_routes.xrls
-xrl/targets/static_routes.xrls
-xrl/targets/test.xrls
-xrl/targets/test_fea_ifmgr_mirror.xrls
-xrl/targets/test_fea_rawlink.xrls
-xrl/targets/test_finder_events.xrls
-xrl/targets/test_peer.xrls
-xrl/targets/test_socket4.xrls
-xrl/targets/test_socket6.xrls
-xrl/targets/test_xrls.xrls
-xrl/targets/vrrp.xrls
-xrl/targets/xorp_if_mib.xrls
-xrl/targets/xorpsh.xrls
-%%XORP_SNMP%%mibs/bgp4_mib_1657.la
-%%XORP_SNMP%%mibs/bgp4_mib_1657.so
-%%XORP_SNMP%%mibs/libnetsnmpxorp.la
-%%XORP_SNMP%%mibs/libnetsnmpxorp.so
-%%XORP_SNMP%%mibs/ospf_mib_1850.la
-%%XORP_SNMP%%mibs/ospf_mib_1850.so
-%%XORP_SNMP%%mibs/xorp_if_mib_module.la
-%%XORP_SNMP%%mibs/xorp_if_mib_module.so
-%%XORP_SNMP%%mibs/snmpdscripts/getbgppeertable
-%%XORP_SNMP%%mibs/snmpdscripts/getbgpversion
-%%XORP_SNMP%%mibs/snmpdscripts/startsnmp
-%%XORP_SNMP%%mibs/snmpdscripts/stopsnmp
-@dirrm xrl/targets
-@dirrm xrl
-@dirrm static_routes
-@dirrm rip/tools
-@dirrm rip
-@dirrm rib/tools
-@dirrm rib
-@dirrm policy
-@dirrm pim
-@dirrm ospf/tools
-@dirrm ospf
-@dirrm mld6igmp
-@dirrm vrrp
-%%XORP_SNMP%%@dirrm mibs/snmpdscripts
-%%XORP_SNMP%%@dirrm mibs
-@dirrm libxipc
-%%XORP_SNMP%%@dirrmtry libdata/ldconfig/xorp
-%%XORP_SNMP%%@dirrmtry libdata/ldconfig
-%%XORP_SNMP%%@dirrmtry libdata
-@dirrm fib2mrib
-@dirrmtry fea/tools
-@dirrm fea
-@dirrmtry etc/templates
-@dirrm contrib/olsr/tools
-@dirrm contrib/olsr
-@dirrm contrib
-@dirrm cli/tools
-@dirrm cli
-@dirrmtry bin
-@dirrm bgp/tools
-@dirrm bgp
+etc/xorp.conf.sample
+lib/xorp/bin/bgp_print_peers
+lib/xorp/bin/bgp_print_routes
+lib/xorp/bin/cli_generic
+lib/xorp/bin/cli_send_processor_xrl
+lib/xorp/bin/fea_show_interfaces
+lib/xorp/bin/olsr_print_databases
+lib/xorp/bin/olsr_clear_database
+lib/xorp/bin/ospf_clear_database
+lib/xorp/bin/ospf_print_lsas
+lib/xorp/bin/ospf_print_neighbours
+lib/xorp/bin/rib_show_distances
+lib/xorp/bin/rib_show_routes
+lib/xorp/bin/rip_show_peer_stats
+lib/xorp/bin/rip_show_stats
+%%XORP_SHLIB%%lib/xorp/lib/libxif_bgp.so
+%%XORP_SHLIB%%lib/xorp/lib/libxif_cli_manager.so
+%%XORP_SHLIB%%lib/xorp/lib/libxif_cli_processor.so
+%%XORP_SHLIB%%lib/xorp/lib/libxif_common.so
+%%XORP_SHLIB%%lib/xorp/lib/libxif_coord.so
+%%XORP_SHLIB%%lib/xorp/lib/libxif_datain.so
+%%XORP_SHLIB%%lib/xorp/lib/libxif_fea_fib.so
+%%XORP_SHLIB%%lib/xorp/lib/libxif_fea_fib_client.so
+%%XORP_SHLIB%%lib/xorp/lib/libxif_fea_firewall.so
+%%XORP_SHLIB%%lib/xorp/lib/libxif_fea_ifmgr.so
+%%XORP_SHLIB%%lib/xorp/lib/libxif_fea_ifmgr_mirror.so
+%%XORP_SHLIB%%lib/xorp/lib/libxif_fea_ifmgr_replicator.so
+%%XORP_SHLIB%%lib/xorp/lib/libxif_fea_rawlink.so
+%%XORP_SHLIB%%lib/xorp/lib/libxif_fea_rawlink_client.so
+%%XORP_SHLIB%%lib/xorp/lib/libxif_fea_rawpkt4.so
+%%XORP_SHLIB%%lib/xorp/lib/libxif_fea_rawpkt4_client.so
+%%XORP_SHLIB%%lib/xorp/lib/libxif_fea_rawpkt6.so
+%%XORP_SHLIB%%lib/xorp/lib/libxif_fea_rawpkt6_client.so
+%%XORP_SHLIB%%lib/xorp/lib/libxif_fib2mrib.so
+%%XORP_SHLIB%%lib/xorp/lib/libxif_finder.so
+%%XORP_SHLIB%%lib/xorp/lib/libxif_finder_client.so
+%%XORP_SHLIB%%lib/xorp/lib/libxif_finder_event_notifier.so
+%%XORP_SHLIB%%lib/xorp/lib/libxif_finder_event_observer.so
+%%XORP_SHLIB%%lib/xorp/lib/libxif_fti.so
+%%XORP_SHLIB%%lib/xorp/lib/libxif_mfea.so
+%%XORP_SHLIB%%lib/xorp/lib/libxif_mfea_client.so
+%%XORP_SHLIB%%lib/xorp/lib/libxif_mld6igmp.so
+%%XORP_SHLIB%%lib/xorp/lib/libxif_mld6igmp_client.so
+%%XORP_SHLIB%%lib/xorp/lib/libxif_ospfv2.so
+%%XORP_SHLIB%%lib/xorp/lib/libxif_ospfv3.so
+%%XORP_SHLIB%%lib/xorp/lib/libxif_pim.so
+%%XORP_SHLIB%%lib/xorp/lib/libxif_policy.so
+%%XORP_SHLIB%%lib/xorp/lib/libxif_policy_backend.so
+%%XORP_SHLIB%%lib/xorp/lib/libxif_policy_redist4.so
+%%XORP_SHLIB%%lib/xorp/lib/libxif_policy_redist6.so
+%%XORP_SHLIB%%lib/xorp/lib/libxif_profile.so
+%%XORP_SHLIB%%lib/xorp/lib/libxif_profile_client.so
+%%XORP_SHLIB%%lib/xorp/lib/libxif_redist4.so
+%%XORP_SHLIB%%lib/xorp/lib/libxif_redist6.so
+%%XORP_SHLIB%%lib/xorp/lib/libxif_redist_transaction4.so
+%%XORP_SHLIB%%lib/xorp/lib/libxif_redist_transaction6.so
+%%XORP_SHLIB%%lib/xorp/lib/libxif_rib.so
+%%XORP_SHLIB%%lib/xorp/lib/libxif_rib_client.so
+%%XORP_SHLIB%%lib/xorp/lib/libxif_rip.so
+%%XORP_SHLIB%%lib/xorp/lib/libxif_ripng.so
+%%XORP_SHLIB%%lib/xorp/lib/libxif_rtrmgr.so
+%%XORP_SHLIB%%lib/xorp/lib/libxif_rtrmgr_client.so
+%%XORP_SHLIB%%lib/xorp/lib/libxif_socket4.so
+%%XORP_SHLIB%%lib/xorp/lib/libxif_socket4_user.so
+%%XORP_SHLIB%%lib/xorp/lib/libxif_socket6.so
+%%XORP_SHLIB%%lib/xorp/lib/libxif_socket6_user.so
+%%XORP_SHLIB%%lib/xorp/lib/libxif_static_routes.so
+%%XORP_SHLIB%%lib/xorp/lib/libxif_vrrp.so
+%%XORP_SHLIB%%lib/xorp/lib/libxorp_cli.so
+%%XORP_SHLIB%%lib/xorp/lib/libxorp_comm.so
+%%XORP_SHLIB%%lib/xorp/lib/libxorp_core.so
+%%XORP_SHLIB%%lib/xorp/lib/libxorp_fea.so
+%%XORP_SHLIB%%lib/xorp/lib/libxorp_fea_client.so
+%%XORP_SHLIB%%lib/xorp/lib/libxorp_fea_control_socket.so
+%%XORP_SHLIB%%lib/xorp/lib/libxorp_fea_data_plane_managers.so
+%%XORP_SHLIB%%lib/xorp/lib/libxorp_fea_fibconfig.so
+%%XORP_SHLIB%%lib/xorp/lib/libxorp_fea_firewall.so
+%%XORP_SHLIB%%lib/xorp/lib/libxorp_fea_ifconfig.so
+%%XORP_SHLIB%%lib/xorp/lib/libxorp_fea_io.so
+%%XORP_SHLIB%%lib/xorp/lib/libxorp_fib2mrib.so
+%%XORP_SHLIB%%lib/xorp/lib/libxorp_finder.so
+%%XORP_SHLIB%%lib/xorp/lib/libxorp_ipc.so
+%%XORP_SHLIB%%lib/xorp/lib/libxorp_mld6igmp.so
+%%XORP_SHLIB%%lib/xorp/lib/libxorp_mrt.so
+%%XORP_SHLIB%%lib/xorp/lib/libxorp_ospf.so
+%%XORP_SHLIB%%lib/xorp/lib/libxorp_pim.so
+%%XORP_SHLIB%%lib/xorp/lib/libxorp_policy.so
+%%XORP_SHLIB%%lib/xorp/lib/libxorp_policy_backend.so
+%%XORP_SHLIB%%lib/xorp/lib/libxorp_policy_common.so
+%%XORP_SHLIB%%lib/xorp/lib/libxorp_proto.so
+%%XORP_SHLIB%%lib/xorp/lib/libxorp_rib.so
+%%XORP_SHLIB%%lib/xorp/lib/libxorp_rip.so
+%%XORP_SHLIB%%lib/xorp/lib/libxorp_rip_xrl.so
+%%XORP_SHLIB%%lib/xorp/lib/libxorp_ripng.so
+%%XORP_SHLIB%%lib/xorp/lib/libxorp_ripng_xrl.so
+%%XORP_SHLIB%%lib/xorp/lib/libxorp_static_routes.so
+%%XORP_SHLIB%%lib/xorp/lib/libxorp_tecla.so
+%%XORP_SHLIB%%lib/xorp/lib/libxorp_vrrp.so
+%%XORP_SHLIB%%lib/xorp/lib/libxst_bgp.so
+%%XORP_SHLIB%%lib/xorp/lib/libxst_cli.so
+%%XORP_SHLIB%%lib/xorp/lib/libxst_coord.so
+%%XORP_SHLIB%%lib/xorp/lib/libxst_fea.so
+%%XORP_SHLIB%%lib/xorp/lib/libxst_fea_ifmgr_mirror.so
+%%XORP_SHLIB%%lib/xorp/lib/libxst_fib2mrib.so
+%%XORP_SHLIB%%lib/xorp/lib/libxst_finder.so
+%%XORP_SHLIB%%lib/xorp/lib/libxst_finder_client.so
+%%XORP_SHLIB%%lib/xorp/lib/libxst_mfea.so
+%%XORP_SHLIB%%lib/xorp/lib/libxst_mld6igmp.so
+%%XORP_SHLIB%%lib/xorp/lib/libxst_ospfv2.so
+%%XORP_SHLIB%%lib/xorp/lib/libxst_ospfv3.so
+%%XORP_SHLIB%%lib/xorp/lib/libxst_pim.so
+%%XORP_SHLIB%%lib/xorp/lib/libxst_policy.so
+%%XORP_SHLIB%%lib/xorp/lib/libxst_profiler.so
+%%XORP_SHLIB%%lib/xorp/lib/libxst_rib.so
+%%XORP_SHLIB%%lib/xorp/lib/libxst_ribclient.so
+%%XORP_SHLIB%%lib/xorp/lib/libxst_rip.so
+%%XORP_SHLIB%%lib/xorp/lib/libxst_ripng.so
+%%XORP_SHLIB%%lib/xorp/lib/libxst_rtrmgr.so
+%%XORP_SHLIB%%lib/xorp/lib/libxst_show_distances.so
+%%XORP_SHLIB%%lib/xorp/lib/libxst_show_routes.so
+%%XORP_SHLIB%%lib/xorp/lib/libxst_static_routes.so
+%%XORP_SHLIB%%lib/xorp/lib/libxst_vrrp.so
+%%XORP_SHLIB%%lib/xorp/lib/libxst_xorpsh.so
+%%XORP_SHLIB%%lib/xorp/lib/libxst_olsr4.so
+%%XORP_SHLIB%%lib/xorp/lib/libolsrxrl.so
+%%XORP_SHLIB%%lib/xorp/lib/libxif_olsr4.so
+%%XORP_SHLIB%%lib/xorp/lib/libxorp_bgp.so
+%%XORP_SHLIB%%lib/xorp/lib/libolsr.so
+lib/xorp/sbin/xorp_bgp
+lib/xorp/sbin/xorp_fea
+lib/xorp/sbin/xorp_fea_dummy
+lib/xorp/sbin/xorp_fib2mrib
+lib/xorp/sbin/xorp_igmp
+lib/xorp/sbin/xorp_mld
+lib/xorp/sbin/xorp_olsr4
+lib/xorp/sbin/xorp_ospfv2
+lib/xorp/sbin/xorp_ospfv3
+lib/xorp/sbin/xorp_pimsm4
+lib/xorp/sbin/xorp_pimsm6
+lib/xorp/sbin/xorp_policy
+lib/xorp/sbin/xorp_rib
+lib/xorp/sbin/xorp_rip
+lib/xorp/sbin/xorp_ripng
+lib/xorp/sbin/xorp_static_routes
+lib/xorp/sbin/xorp_vrrp
+sbin/call_xrl
+sbin/fea_xrl_shell_funcs.sh
+sbin/bgp_xrl_shell_funcs.sh
+sbin/rib_xrl_shell_funcs.sh
+sbin/xorp_profiler
+sbin/xorp_rtrmgr
+sbin/xorpsh
+share/xorp/templates/bgp.cmds
+share/xorp/templates/bgp.tp
+share/xorp/templates/fea.cmds
+share/xorp/templates/fea.tp
+share/xorp/templates/fib2mrib.tp
+share/xorp/templates/firewall.tp
+share/xorp/templates/host.cmds
+share/xorp/templates/igmp.cmds
+share/xorp/templates/igmp.tp
+share/xorp/templates/interfaces.tp
+share/xorp/templates/mfea.cmds
+share/xorp/templates/mfea4.tp
+share/xorp/templates/mfea6.cmds
+share/xorp/templates/mfea6.tp
+share/xorp/templates/misc.cmds
+share/xorp/templates/mld.cmds
+share/xorp/templates/mld.tp
+share/xorp/templates/olsr4.cmds
+share/xorp/templates/olsr4.tp
+share/xorp/templates/ospfv2.cmds
+share/xorp/templates/ospfv2.tp
+share/xorp/templates/ospfv3.cmds
+share/xorp/templates/ospfv3.tp
+share/xorp/templates/pim.cmds
+share/xorp/templates/pim6.cmds
+share/xorp/templates/pimsm4.tp
+share/xorp/templates/pimsm6.tp
+share/xorp/templates/plumbing.tp
+share/xorp/templates/policy.cmds
+share/xorp/templates/policy.tp
+share/xorp/templates/protocols.tp
+share/xorp/templates/rib.cmds
+share/xorp/templates/rib.tp
+share/xorp/templates/rip.cmds
+share/xorp/templates/rip.tp
+share/xorp/templates/ripng.cmds
+share/xorp/templates/ripng.tp
+share/xorp/templates/rtrmgr.tp
+share/xorp/templates/static_routes.tp
+share/xorp/templates/vrrp.cmds
+share/xorp/templates/vrrp.tp
+share/xorp/templates/xorpsh.cmds
+@dirrm share/xorp/templates
+@dirrm share/xorp
+%%XORP_SHLIB%%@dirrm lib/xorp/lib
+@dirrm lib/xorp/bin
+@dirrm lib/xorp/sbin
+@dirrm lib/xorp