summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO35
-rw-r--r--PKGBUILD65
-rw-r--r--fix-openflow-strlcpy.patch26
-rw-r--r--mininet.install16
4 files changed, 99 insertions, 43 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 23afdfd667c9..b8fd8533f180 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -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
-
diff --git a/PKGBUILD b/PKGBUILD
index 690cbc71b986..9e3816466d61 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -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
}