Hi all,
I have one more follow-up to add back a missing switchd(8) config file, and to
remove a bash invocation that I'd missed earlier.
Thanks,
Ayaka
Index: Makefile
===================================================================
RCS file: /cvs/ports/net/mininet/Makefile,v
retrieving revision 1.5
diff -u -p -u -r1.5 Makefile
--- Makefile 16 Sep 2017 06:03:05 -0000 1.5
+++ Makefile 28 Nov 2017 20:02:13 -0000
@@ -3,7 +3,7 @@
COMMENT = emulator for rapid prototyping of software defined networks
DISTNAME = mininet-0.0.20170813
-REVISION = 2
+REVISION = 3
GH_ACCOUNT = mininet
GH_PROJECT = mininet
GH_COMMIT = 87e26ef931ee6063332ceba77db472140f832d3a
@@ -24,10 +24,6 @@ BUILD_DEPENDS = devel/help2man
RUN_DEPENDS = net/socat \
net/iperf
-MAKE_ENV = BINDIR=${PREFIX}/bin \
- MANDIR=${PREFIX}/man/man1 \
- PKGDIR=${MODPY_SITEPKG} \
- PYTHON=${MODPY_BIN}
do-build:
$(CC) ${WRKSRC}/mnexec.c -o ${WRKBUILD}/mnexec
help2man -N -n "create a Mininet network." --no-discard-stderr \
@@ -45,6 +41,8 @@ pre-install:
post-install:
${INSTALL_DATA_DIR} ${PREFIX}/share/examples/mininet
+ ${INSTALL_DATA} ${WRKSRC}/util/switchd.conf \
+ ${PREFIX}/share/examples/mininet/switchd.mininet.conf-sample
.for f in examples/README.md examples/*.py
${INSTALL_DATA} ${WRKSRC}/$f ${PREFIX}/share/examples/mininet
.endfor
Index: patches/patch-Makefile
===================================================================
RCS file: patches/patch-Makefile
diff -N patches/patch-Makefile
--- patches/patch-Makefile 21 Aug 2017 18:47:12 -0000 1.1.1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,69 +0,0 @@
-$OpenBSD: patch-Makefile,v 1.1.1.1 2017/08/21 18:47:12 akoshibe Exp $
-Refactoring to make things buildable with both GNU and BSD make
-and account for directory organization differences.
-Index: Makefile
---- Makefile.orig
-+++ Makefile
-@@ -2,23 +2,23 @@ MININET = mininet/*.py
- TEST = mininet/test/*.py
- EXAMPLES = mininet/examples/*.py
- MN = bin/mn
--PYMN = python -B bin/mn
-+PYMN = $(PYTHON) -B bin/mn
- BIN = $(MN)
- PYSRC = $(MININET) $(TEST) $(EXAMPLES) $(BIN)
- MNEXEC = mnexec
- MANPAGES = mn.1 mnexec.1
- P8IGN = E251,E201,E302,E202,E126,E127,E203,E226
--BINDIR = /usr/bin
--MANDIR = /usr/share/man/man1
- DOCDIRS = doc/html doc/latex
- PDF = doc/latex/refman.pdf
-
- CFLAGS += -Wall -Wextra
-
-+include config.mk
-+
- all: codecheck test
-
- clean:
-- rm -rf build dist *.egg-info *.pyc $(MNEXEC) $(MANPAGES) $(DOCDIRS)
-+ rm -rf config.mk util/install.sh build dist *.egg-info *.pyc $(MNEXEC)
$(MANPAGES) $(DOCDIRS)
-
- codecheck: $(PYSRC)
- -echo "Running code check"
-@@ -49,23 +49,27 @@ mnexec: mnexec.c $(MN) mininet/net.py
- install: $(MNEXEC) $(MANPAGES)
- install $(MNEXEC) $(BINDIR)
- install $(MANPAGES) $(MANDIR)
-- python setup.py install
-+ $(PYTHON) setup.py install
-
-+uninstall:
-+ rm -rf $(BINDIR)/$(MNEXEC) $(BINDIR)/mn $(PKGDIR)/mininet-*.egg
-+ printf $(MANDIR)'/%s\n' $(MANPAGES) | xargs rm
-+
- develop: $(MNEXEC) $(MANPAGES)
- # Perhaps we should link these as well
- install $(MNEXEC) $(BINDIR)
- install $(MANPAGES) $(MANDIR)
-- python setup.py develop
-+ $(PYTHON) setup.py develop
-
- man: $(MANPAGES)
-
--mn.1: $(MN)
-- PYTHONPATH=. help2man -N -n "create a Mininet network." \
-- --no-discard-stderr "$(PYMN)" -o $@
-+mn.1:
-+ help2man -N -n "create a Mininet network." \
-+ --no-discard-stderr "$(PYTHON) $(MN)" -o $@
-
--mnexec.1: mnexec
-+mnexec.1:
- help2man -N -n "execution utility for Mininet." \
-- -h "-h" -v "-v" --no-discard-stderr ./$< -o $@
-+ -h "-h" -v "-v" --no-discard-stderr ./$(MNEXEC) -o $@
-
- .PHONY: doc
-
Index: patches/patch-configure
===================================================================
RCS file: patches/patch-configure
diff -N patches/patch-configure
--- patches/patch-configure 21 Aug 2017 18:47:12 -0000 1.1.1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,43 +0,0 @@
-$OpenBSD: patch-configure,v 1.1.1.1 2017/08/21 18:47:12 akoshibe Exp $
-builds a config.mk (OS-dependent vars) used by Makefile
-Index: configure
---- configure.orig
-+++ configure
-@@ -0,0 +1,37 @@
-+#!/bin/sh
-+
-+# everything should be in /usr/local, but to keep things unchanged for
Linux...
-+
-+OS=`uname`
-+case $OS in
-+ *Linux*)
-+ prefix='/usr'
-+ mandir='/usr/share'
-+ inst=$(pwd)/util/install-linux.sh
-+ python=python
-+ ;;
-+ *FreeBSD*)
-+ prefix='/usr/local'
-+ mandir=$prefix
-+ inst=$(pwd)/util/install-freebsd.sh
-+ python=python
-+ ;;
-+ *OpenBSD*)
-+ prefix='/usr/local'
-+ mandir='/usr/share'
-+ inst=$(pwd)/util/install-openbsd.sh
-+ # could just link 'python2.7' to 'python'
-+ python=python2.7
-+ ;;
-+ *)
-+ echo "Unknown platform: $OS"
-+ exit 1
-+ ;;
-+esac
-+
-+ln -s $inst $(pwd)/util/install.sh
-+
-+echo "BINDIR=$prefix/bin" > config.mk
-+echo "MANDIR=$mandir/man/man1" >> config.mk
-+echo "PKGDIR=$prefix/lib/python2.7/site-packages" >> config.mk
-+echo "PYTHON=$python" >> config.mk
Index: patches/patch-mininet_basenode_py
===================================================================
RCS file: /cvs/ports/net/mininet/patches/patch-mininet_basenode_py,v
retrieving revision 1.2
diff -u -p -u -r1.2 patch-mininet_basenode_py
--- patches/patch-mininet_basenode_py 9 Sep 2017 21:18:30 -0000 1.2
+++ patches/patch-mininet_basenode_py 28 Nov 2017 20:02:13 -0000
@@ -5,7 +5,7 @@ processes.
Index: mininet/basenode.py
--- mininet/basenode.py.orig
+++ mininet/basenode.py
-@@ -0,0 +1,534 @@
+@@ -0,0 +1,538 @@
+"""
+The base node object that other network nodes are based upon. A node
implements
+the lightweight virtualization needed to implement hosts and switches.
@@ -25,7 +25,7 @@ Index: mininet/basenode.py
+ from mininet.openbsd.util import LO, moveIntf
+
+from mininet.log import info, error, warn, debug
-+from mininet.util import ( quietRun, isShellBuiltin )
++from mininet.util import quietRun
+from mininet.moduledeps import pathCheck
+from mininet.link import Link
+from re import findall
@@ -87,6 +87,10 @@ Index: mininet/basenode.py
+ # OS-specific virtualization method - overriden in system nodes
+ pass
+
++ def isShellBuiltin( self, cmd ):
++ # Shell-specific check - overridden in system nodes
++ pass
++
+ # Command support via shell process in namespace
+ def startShell( self, mnopts=None ):
+ "Start a shell process for running commands"
@@ -219,7 +223,7 @@ Index: mininet/basenode.py
+ if len( cmd ) > 0 and cmd[ -1 ] == '&':
+ # print ^A{pid}\n so monitor() can set lastPid
+ cmd += ' printf "\\001%d\\012" $! '
-+ elif printPid and not isShellBuiltin( cmd ):
++ elif printPid and not self.isShellBuiltin( cmd ):
+ cmd = 'mnexec -p ' + cmd
+ self.write( cmd + '\n' )
+ self.lastPid = None
Index: patches/patch-mininet_node_py
===================================================================
RCS file: /cvs/ports/net/mininet/patches/patch-mininet_node_py,v
retrieving revision 1.3
diff -u -p -u -r1.3 patch-mininet_node_py
--- patches/patch-mininet_node_py 16 Sep 2017 06:03:05 -0000 1.3
+++ patches/patch-mininet_node_py 28 Nov 2017 20:02:13 -0000
@@ -4,7 +4,7 @@ specific Node objects.
Index: mininet/node.py
--- mininet/node.py.orig
+++ mininet/node.py
-@@ -53,602 +53,45 @@ Future enhancements:
+@@ -53,602 +53,44 @@ Future enhancements:
"""
import os
@@ -38,8 +38,7 @@ Index: mininet/node.py
from mininet.log import info, error, warn, debug
-from mininet.util import ( quietRun, errRun, errFail, moveIntf,
isShellBuiltin,
- numCores, retry, mountCgroups )
-+from mininet.util import ( quietRun, errRun, errFail, isShellBuiltin,
-+ retry )
++from mininet.util import ( quietRun, errRun, errFail, retry )
from mininet.moduledeps import moduleDeps, pathCheck, TUN
-from mininet.link import Link, Intf, TCIntf, OVSIntf
+from mininet.link import Link, TCIntf, OVSIntf
@@ -632,7 +631,7 @@ Index: mininet/node.py
"CPU limited host"
def __init__( self, name, sched='cfs', **kwargs ):
-@@ -702,8 +145,8 @@ class CPULimitedHost( Host ):
+@@ -702,8 +144,8 @@ class CPULimitedHost( Host ):
args: Popen() args, single list, or string
kwargs: Popen() keyword args"""
# Tell mnexec to execute command in our cgroup
@@ -643,7 +642,7 @@ Index: mininet/node.py
# if our cgroup is not given any cpu time,
# we cannot assign the RR Scheduler.
if self.sched == 'rt':
-@@ -739,7 +182,7 @@ class CPULimitedHost( Host ):
+@@ -739,7 +181,7 @@ class CPULimitedHost( Host ):
quietRun( 'chrt -p %s %s' % ( self.rtprio, self.pid ) )
result = quietRun( 'chrt -p %s' % self.pid )
firstline = result.split( '\n' )[ 0 ]
@@ -652,7 +651,7 @@ Index: mininet/node.py
if lastword != 'SCHED_RR':
error( '*** error: could not assign SCHED_RR to %s\n' % self.name
)
return lastword
-@@ -837,6 +280,105 @@ class CPULimitedHost( Host ):
+@@ -837,6 +279,105 @@ class CPULimitedHost( Host ):
cls.inited = True
@@ -758,7 +757,7 @@ Index: mininet/node.py
# Some important things to note:
#
# The "IP" address which setIP() assigns to the switch is not
-@@ -873,7 +415,7 @@ class Switch( Node ):
+@@ -873,7 +414,7 @@ class Switch( Node ):
self.opts = opts
self.listenPort = listenPort
if not self.inNamespace:
@@ -767,7 +766,7 @@ Index: mininet/node.py
def defaultDpid( self, dpid=None ):
"Return correctly formatted dpid from dpid or switch name (s1 -> 1)"
-@@ -1033,7 +575,7 @@ class UserSwitch( Switch ):
+@@ -1033,7 +574,7 @@ class UserSwitch( Switch ):
class OVSSwitch( Switch ):
"Open vSwitch switch. Depends on ovs-vsctl."
@@ -776,7 +775,7 @@ Index: mininet/node.py
inband=False, protocols=None,
reconnectms=1000, stp=False, batch=False, **params ):
"""name: name for switch
-@@ -1072,8 +614,8 @@ class OVSSwitch( Switch ):
+@@ -1072,8 +613,8 @@ class OVSSwitch( Switch ):
'Make sure that Open vSwitch is installed, '
'that ovsdb-server is running, and that\n'
'"ovs-vsctl show" works correctly.\n'
@@ -787,7 +786,7 @@ Index: mininet/node.py
exit( 1 )
version = quietRun( 'ovs-vsctl --version' )
cls.OVSVersion = findall( r'\d+\.\d+', version )[ 0 ]
-@@ -1153,7 +695,7 @@ class OVSSwitch( Switch ):
+@@ -1153,7 +694,7 @@ class OVSSwitch( Switch ):
opts = ( ' other_config:datapath-id=%s' % self.dpid +
' fail_mode=%s' % self.failMode )
if not self.inband:
@@ -796,7 +795,7 @@ Index: mininet/node.py
if self.datapath == 'user':
opts += ' datapath_type=netdev'
if self.protocols and not self.isOldOVS():
-@@ -1239,7 +781,7 @@ class OVSSwitch( Switch ):
+@@ -1239,7 +780,7 @@ class OVSSwitch( Switch ):
deleteIntfs: delete interfaces? (True)"""
self.cmd( 'ovs-vsctl del-br', self )
if self.datapath == 'user':
@@ -805,7 +804,7 @@ Index: mininet/node.py
super( OVSSwitch, self ).stop( deleteIntfs )
@classmethod
-@@ -1259,9 +801,88 @@ class OVSSwitch( Switch ):
+@@ -1259,9 +800,88 @@ class OVSSwitch( Switch ):
return switches
@@ -895,7 +894,7 @@ Index: mininet/node.py
class OVSBridge( OVSSwitch ):
"OVSBridge is an OVSSwitch in standalone/bridge mode"
-@@ -1386,7 +1007,7 @@ class Controller( Node ):
+@@ -1386,7 +1006,7 @@ class Controller( Node ):
listening = self.cmd( "echo A | telnet -e A %s %d" %
( self.ip, self.port ) )
if 'Connected' in listening:
@@ -904,24 +903,19 @@ Index: mininet/node.py
pstr = ':%d ' % self.port
clist = servers[ 0:1 ] + [ s for s in servers if pstr in s ]
raise Exception( "Please shut down the controller which is"
-@@ -1405,9 +1026,13 @@ class Controller( Node ):
+@@ -1405,7 +1025,10 @@ class Controller( Node ):
self.execed = False
def stop( self, *args, **kwargs ):
- "Stop controller."
-- self.cmd( 'kill %' + self.command )
-- self.cmd( 'wait %' + self.command )
+ """
+ Stop controller. Find processes associated with the command, and kill
-+ them.
++ them.
+ """
-+ pids = " ".join( self.cmd( 'pgrep ' + self.command ).split( '\n' ) )
-+ self.cmd( 'pkill ' + pids + ' 2>/dev/null' )
-+ self.cmd( 'wait ' + pids )
+ self.cmd( 'kill %' + self.command )
+ self.cmd( 'wait %' + self.command )
super( Controller, self ).stop( *args, **kwargs )
-
- def IP( self, intf=None ):
-@@ -1470,12 +1095,19 @@ class NOX( Controller ):
+@@ -1470,12 +1093,19 @@ class NOX( Controller ):
class Ryu( Controller ):
"Controller to run Ryu application"
@@ -943,7 +937,7 @@ Index: mininet/node.py
if not ryuArgs:
warn( 'warning: no Ryu modules specified; '
'running simple_switch only\n' )
-@@ -1538,7 +1170,50 @@ class RemoteController( Controller ):
+@@ -1538,7 +1168,50 @@ class RemoteController( Controller ):
else:
return True
Index: patches/patch-mininet_openbsd_node_py
===================================================================
RCS file: /cvs/ports/net/mininet/patches/patch-mininet_openbsd_node_py,v
retrieving revision 1.2
diff -u -p -u -r1.2 patch-mininet_openbsd_node_py
--- patches/patch-mininet_openbsd_node_py 9 Sep 2017 21:18:30 -0000
1.2
+++ patches/patch-mininet_openbsd_node_py 28 Nov 2017 20:02:13 -0000
@@ -3,7 +3,7 @@ $OpenBSD: patch-mininet_openbsd_node_py,
Index: mininet/openbsd/node.py
--- mininet/openbsd/node.py.orig
+++ mininet/openbsd/node.py
-@@ -0,0 +1,150 @@
+@@ -0,0 +1,161 @@
+"""
+Node: rdomain(4) based node. This is somewhat more similar to Linux's network
+namespace moreso than a jail since it creates a separate network address space
@@ -33,6 +33,10 @@ Index: mininet/openbsd/node.py
+ one pair interface if inNamespace=True."""
+
+ index=1 # rdomain ID, can only go to 255
++ builtins='. : [ alias bg break builtin cd command continue echo eval
exec' \
++ ' exit export false fc fg getopts jobs kill let print pwd read' \
++ ' readonly return set shift suspend test times trap true
typeset' \
++ ' ulimit umask unalias unset wait whence'
+
+ def __init__( self, name, inNamespace=True, **params ):
+ BaseNode.__init__( self, name, inNamespace, **params )
@@ -69,6 +73,13 @@ Index: mininet/openbsd/node.py
+ '-is', 'mininet:' + self.name ]
+ return Popen( cmd, stdin=slave, stdout=slave, stderr=slave,
+ close_fds=False )
++
++ def isShellBuiltin( self, cmd ):
++ "Return True if cmd is a builtin."
++ space = cmd.find( ' ' )
++ if space > 0:
++ cmd = cmd[ :space]
++ return cmd in Node.builtins
+
+ def mountPrivateDirs( self ):
+ "mount private directories"
Index: patches/patch-mininet_util_py
===================================================================
RCS file: /cvs/ports/net/mininet/patches/patch-mininet_util_py,v
retrieving revision 1.1.1.1
diff -u -p -u -r1.1.1.1 patch-mininet_util_py
--- patches/patch-mininet_util_py 21 Aug 2017 18:47:12 -0000 1.1.1.1
+++ patches/patch-mininet_util_py 28 Nov 2017 20:02:13 -0000
@@ -48,10 +48,21 @@ Index: mininet/util.py
cmd = [ str( arg ) for arg in cmd ]
elif isinstance( cmd, list ) and shell:
cmd = " ".join( arg for arg in cmd )
-@@ -145,55 +144,6 @@ def isShellBuiltin( cmd ):
+@@ -134,66 +133,6 @@ def quietRun( cmd, **kwargs ):
- isShellBuiltin.builtIns = None
+ # pylint: enable=maybe-no-member
+-def isShellBuiltin( cmd ):
+- "Return True if cmd is a bash builtin."
+- if isShellBuiltin.builtIns is None:
+- isShellBuiltin.builtIns = quietRun( 'bash -c enable' )
+- space = cmd.find( ' ' )
+- if space > 0:
+- cmd = cmd[ :space]
+- return cmd in isShellBuiltin.builtIns
+-
+-isShellBuiltin.builtIns = None
+-
-# Interface management
-#
-# Interfaces are managed as strings which are simply the
@@ -104,7 +115,7 @@ Index: mininet/util.py
def retry( retries, delaySecs, fn, *args, **keywords ):
"""Try something several times before giving up.
n: number of times to retry
-@@ -208,33 +158,6 @@ def retry( retries, delaySecs, fn, *args, **keywords )
+@@ -208,33 +147,6 @@ def retry( retries, delaySecs, fn, *args, **keywords )
error( "*** gave up after %i retries\n" % tries )
exit( 1 )
@@ -138,7 +149,7 @@ Index: mininet/util.py
# Support for dumping network
def dumpNodeConnections( nodes ):
-@@ -403,73 +326,6 @@ def pmonitor(popens, timeoutms=500, readline=True,
+@@ -403,73 +315,6 @@ def pmonitor(popens, timeoutms=500, readline=True,
else:
yield None, ''
@@ -212,7 +223,7 @@ Index: mininet/util.py
def natural( text ):
"To sort sanely/alphabetically: sorted( l, key=natural )"
def num( s ):
-@@ -480,16 +336,6 @@ def natural( text ):
+@@ -480,16 +325,6 @@ def natural( text ):
def naturalSeq( t ):
"Natural sort key function for sequences"
return [ natural( x ) for x in t ]
Index: patches/patch-util_install-openbsd_sh
===================================================================
RCS file: patches/patch-util_install-openbsd_sh
diff -N patches/patch-util_install-openbsd_sh
--- patches/patch-util_install-openbsd_sh 21 Aug 2017 18:47:12 -0000
1.1.1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,110 +0,0 @@
-$OpenBSD: patch-util_install-openbsd_sh,v 1.1.1.1 2017/08/21 18:47:12 akoshibe
Exp $
-
-Index: util/install-openbsd.sh
---- util/install-openbsd.sh.orig
-+++ util/install-openbsd.sh
-@@ -0,0 +1,104 @@
-+#!/bin/sh
-+
-+# Mininet install script with just the bits that are currently supported.
-+# It follows the logic/contents of `install.sh`.
-+
-+dist=$(uname -s)
-+release=$(uname -r)
-+
-+if [ "${dist}" = "OpenBSD" ]; then
-+ install='doas pkg_add -vI'
-+ remove='doas pkg_delete'
-+ pkginst=${install}
-+else
-+ printf '%s\n' "This version of the install script is for OpenBSD," \
-+ "but you are using ${dist} - try running './configure'"
-+ exit 1
-+fi
-+
-+# Get directory containing mininet folder
-+MININET_DIR=$( CDPATH= cd -- "$( dirname -- "$0" )/../.." && pwd -P )
-+
-+# install everything
-+all () {
-+ mn_deps
-+}
-+
-+# base (non-OpenFlow) bits - Mininet Python bits, dependencies
-+mn_deps () {
-+ # check for OpenFlow support - 6.1 and later. Technically it works but
-+ # will only be able to do non-OFP networks.
-+ if [ $( expr ${release} '<=' 6.1 ) -eq 0 ]; then
-+ printf '%s\n' \
-+ "Detected release:${release}"\
-+ "Warning - OpenFlow is only supported by releases 6.1 and newer"\
-+ "Retry after updating to a newer release"
-+ exit 1
-+ fi
-+
-+ $install python-2.7.13p2 socat iperf help2man py-setuptools pyflakes \
-+ pylint pep8 py-pexpect
-+
-+ printf '%s\n' "Installing Mininet core"
-+ cur=$(pwd -P)
-+ cd ${MININET_DIR}/mininet
-+ doas make install
-+ doas cp util/switchd.conf /etc/switchd.mininet.conf
-+ cd ${cur}
-+}
-+
-+mn_undo () {
-+ printf '%s\n' "Uninstalling Mininet core"
-+ cur=$(pwd -P)
-+ cd ${MININET_DIR}/mininet
-+ doas make uninstall
-+ doas rm /etc/switchd.mininet.conf
-+ cd ${cur}
-+}
-+
-+# Install RYU. `pip install ryu` should actually be sufficient.
-+#ryu () {
-+# printf '%s\n' "Installing RYU..."
-+#
-+# $install python py27-setuptools py27-eventlet py27-routes \
-+# py27-webob py27-paramiko py27-pip py27-msgpack-python
-+# pip install oslo.config tinyrpc ovs
-+#
-+# # fetch RYU
-+# cd $MININET_DIR
-+# git clone git://github.com/osrg/ryu.git ryu
-+# cd ryu
-+#
-+# # install ryu
-+# doas python ./setup.py install
-+#}
-+
-+usage () {
-+ printf '%s\n' \
-+ "" \
-+ "Usage: $(basename $0) [-anh]" \
-+ "" \
-+ "options:" \
-+ " -a: (default) install (A)ll packages" \
-+ " -h: print this (H)elp message" \
-+ " -n: install Mini(N)et dependencies + core files" \
-+ " -u: (u)ninstall Mininet core files" \
-+ " -y: install R(y)u Controller"
-+ exit 2
-+}
-+
-+if [ $# -eq 0 ]; then
-+ all
-+else
-+ while getopts 'ahnu' OPTION; do
-+ case $OPTION in
-+ a) all ;;
-+ h) usage ;;
-+ n) mn_deps ;;
-+ u) mn_undo ;;
-+ # y) ryu ;; #eventually, maybe
-+ ?) usage ;;
-+ esac
-+ done
-+ shift $(($OPTIND - 1))
-+fi
Index: pkg/DESCR
===================================================================
RCS file: /cvs/ports/net/mininet/pkg/DESCR,v
retrieving revision 1.1.1.1
diff -u -p -u -r1.1.1.1 DESCR
--- pkg/DESCR 21 Aug 2017 18:47:12 -0000 1.1.1.1
+++ pkg/DESCR 28 Nov 2017 20:02:13 -0000
@@ -1,6 +1,6 @@
Mininet creates a realistic virtual network, running real kernel, switch
and application code, on a single machine (VM, cloud or native), in
-seconds, with a single command
+seconds, with a single command.
Because you can easily interact with your network using the Mininet CLI
(and API), customize it, share it with others, or deploy it on real
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/net/mininet/pkg/PLIST,v
retrieving revision 1.3
diff -u -p -u -r1.3 PLIST
--- pkg/PLIST 16 Sep 2017 06:03:05 -0000 1.3
+++ pkg/PLIST 28 Nov 2017 20:02:13 -0000
@@ -94,6 +94,8 @@ share/examples/mininet/scratchnet.py
share/examples/mininet/scratchnetuser.py
share/examples/mininet/simpleperf.py
share/examples/mininet/sshd.py
+share/examples/mininet/switchd.mininet.conf-sample
+@sample ${SYSCONFDIR}/switchd.mininet.conf
share/examples/mininet/tree1024.py
share/examples/mininet/treeping64.py
share/examples/mininet/vlanhost.py