diff options
-rw-r--r-- | .SRCINFO | 35 | ||||
-rw-r--r-- | PKGBUILD | 65 | ||||
-rw-r--r-- | fix-openflow-strlcpy.patch | 26 | ||||
-rw-r--r-- | mininet.install | 16 |
4 files changed, 99 insertions, 43 deletions
@@ -1,24 +1,33 @@ pkgbase = mininet - pkgdesc = Process-based network emulator (stable branch) - pkgver = 2.2.1 - pkgrel = 4 - url = https://github.com/mininet/mininet/ + pkgdesc = Emulator for rapid prototyping of Software Defined Networks + pkgver = 2.3.0 + pkgrel = 2 + url = https://github.com/mininet/mininet install = mininet.install - arch = i686 arch = x86_64 license = custom + makedepends = git makedepends = help2man - makedepends = python2-setuptools - depends = bash - depends = python2 - depends = python2-networkx + makedepends = python-setuptools + depends = python + depends = iproute2 depends = net-tools depends = iputils + depends = inetutils depends = iperf + depends = ethtool + depends = libcgroup depends = openvswitch - optdepends = xorg-xhost - source = https://github.com/mininet/mininet/archive/2.2.1.tar.gz - sha256sums = e4c20a6ab4ddfe4d5cad06ba25742507967df67a845dbe2e90d627af7cd21705 + depends = psmisc + optdepends = xorg-xhost: for X11 forwarding + optdepends = socat: for X11 forwarding + optdepends = xterm: required for MiniEdit + optdepends = tk: required for MiniEdit + source = https://github.com/mininet/mininet/archive/refs/tags/2.3.0.tar.gz + source = git+https://github.com/mininet/openflow + source = fix-openflow-strlcpy.patch + sha256sums = 1b16ee53ddb9a34a3751a77517643bda2286fc31be123209e84884d0697107b0 + sha256sums = SKIP + sha256sums = 0a85f8a5ce2dd900d4f874849b28301aa47d7b9d7b03ed405c973d917d98383a pkgname = mininet - @@ -1,37 +1,60 @@ -# Maintainer: Pedro Martinez-Julia <pedromj@gmail.com> # Contributor: Walter Dworak <preparationh67@gmail.com> +# Contributor: Pedro Martinez-Julia <pedromj@gmail.com> +# Maintainer: Kuan-Yen Chou <kuanyenchou@gmail.com> pkgname=mininet -pkgver=2.2.1 -pkgrel=4 -pkgdesc="Process-based network emulator (stable branch)" -url="https://github.com/mininet/mininet/" +pkgver=2.3.0 +pkgrel=2 +pkgdesc='Emulator for rapid prototyping of Software Defined Networks' +depends=('python' 'iproute2' 'net-tools' 'iputils' 'inetutils' 'iperf' 'ethtool' + 'libcgroup' 'openvswitch' 'psmisc') +optdepends=('xorg-xhost: for X11 forwarding' + 'socat: for X11 forwarding' + 'xterm: required for MiniEdit' + 'tk: required for MiniEdit') +makedepends=('git' 'help2man' 'python-setuptools') +arch=('x86_64') +url='https://github.com/mininet/mininet' license=('custom') -depends=('bash' 'python2' 'python2-networkx' 'net-tools' 'iputils' 'iperf' 'openvswitch') -optdepends=('xorg-xhost') -makedepends=('help2man' 'python2-setuptools') -install="${pkgname}.install" -arch=('i686' 'x86_64') -source=("https://github.com/mininet/mininet/archive/$pkgver.tar.gz") -sha256sums=('e4c20a6ab4ddfe4d5cad06ba25742507967df67a845dbe2e90d627af7cd21705') +install=mininet.install +source=("https://github.com/mininet/mininet/archive/refs/tags/$pkgver.tar.gz" + 'git+https://github.com/mininet/openflow' # for UserSwitch + 'fix-openflow-strlcpy.patch') +sha256sums=('1b16ee53ddb9a34a3751a77517643bda2286fc31be123209e84884d0697107b0' + 'SKIP' + '0a85f8a5ce2dd900d4f874849b28301aa47d7b9d7b03ed405c973d917d98383a') prepare () { + cd "$srcdir/openflow" + sed '/^include debian\/automake.mk/d' -i Makefile.am + # Patch controller to handle more than 16 switches + patch -Np1 -i "$srcdir/$pkgname-$pkgver/util/openflow-patches/controller.patch" + patch -Np1 -i "$srcdir/fix-openflow-strlcpy.patch" + cd "$srcdir/$pkgname-$pkgver" - grep python2 Makefile && return - grep -rIil '#!.*python' . | xargs -n1 sed -i 's:#!/usr/bin/env python:#!/usr/bin/env python2:g' - grep -rIil '#!.*python' . | xargs -n1 sed -i 's:#!/usr/bin/python:#!/usr/bin/python2:g' - sed 's:BINDIR = /usr/bin:BINDIR = $(DESTDIR)/usr/bin:g' -i Makefile - sed 's:MANDIR = /usr/share/man/man1:MANDIR = $(DESTDIR)/usr/share/man/man1:g' -i Makefile - sed 's:install $(MNEXEC) $(BINDIR):mkdir -p $(BINDIR); install $(MNEXEC) $(BINDIR):g' -i Makefile - sed 's:install $(MANPAGES) $(MANDIR):mkdir -p $(MANDIR);install $(MANPAGES) $(MANDIR):g' -i Makefile - sed 's:python setup.py:python2 setup.py install --prefix=/usr --root="$(DESTDIR)" --optimize=1:g' -i Makefile + # shellcheck disable=SC2016 + sed -i Makefile \ + -e 's:PREFIX ?= /usr:PREFIX ?= "$(DESTDIR)"/usr:' \ + -e '/^[[:space:]]*$(PYTHON) /d' } build () { + cd "$srcdir/openflow" + autoreconf --install --force + ./configure --prefix=/usr --sbindir=/usr/bin + make + cd "$srcdir/$pkgname-$pkgver" + make mnexec man + python setup.py build } package () { + cd "$srcdir/openflow" + make DESTDIR="${pkgdir}" install + cd "$srcdir/$pkgname-$pkgver" - make DESTDIR="${pkgdir}" install + make DESTDIR="${pkgdir}" install + python setup.py install --prefix=/usr --root="${pkgdir}" --optimize=1 --skip-build + install -Dm 644 LICENSE "${pkgdir}/usr/share/licenses/mininet/LICENSE" } diff --git a/fix-openflow-strlcpy.patch b/fix-openflow-strlcpy.patch new file mode 100644 index 000000000000..3a007cff28b5 --- /dev/null +++ b/fix-openflow-strlcpy.patch @@ -0,0 +1,26 @@ +diff --git a/lib/util.c b/lib/util.c +index 21cc28d..67ba765 100644 +--- a/lib/util.c ++++ b/lib/util.c +@@ -138,7 +138,7 @@ xasprintf(const char *format, ...) + return s; + } + +-void ++size_t + strlcpy(char *dst, const char *src, size_t size) + { + if (size > 0) { +diff --git a/lib/util.h b/lib/util.h +index fde681f..efb0df9 100644 +--- a/lib/util.h ++++ b/lib/util.h +@@ -106,7 +106,7 @@ char *xvasprintf(const char *format, va_list) PRINTF_FORMAT(1, 0) MALLOC_LIKE; + void *x2nrealloc(void *p, size_t *n, size_t s); + + #ifndef HAVE_STRLCPY +-void strlcpy(char *dst, const char *src, size_t size); ++size_t strlcpy(char *dst, const char *src, size_t size); + #endif + + void ofp_fatal(int err_no, const char *format, ...) diff --git a/mininet.install b/mininet.install index 1d6eb649ca15..5320fdafaaeb 100644 --- a/mininet.install +++ b/mininet.install @@ -1,14 +1,12 @@ post_install() { cat << EOF - - Mininet requires Open vSwitch to be running in order to - instantiate switches. To run it, just execute the following - commands (as root or using sudo): - - # systemctl enable ovsdb-server.service - # systemctl start ovs-vswitchd.service - # systemctl enable ovsdb-server.service - # systemctl start ovs-vswitchd.service + + Mininet requires Open vSwitch to be running in order to + instantiate switches. To run it, please execute the + following commands: + + # systemctl enable ovs-vswitchd.service + # systemctl start ovs-vswitchd.service EOF } |