(define-module (raingloom packages mininet) #:use-module (gnu packages networking) #:use-module (gnu packages admin) #:use-module (gnu packages python) #:use-module (gnu packages python-xyz) #:use-module (gnu packages linux) #:use-module (gnu packages man) #:use-module (gnu packages bash) #:use-module (gnu packages gcc) #:use-module (gnu packages) #:use-module (guix packages) #:use-module (guix git-download) #:use-module (guix build-system gnu) #:use-module (guix build-system python) #:use-module (guix licenses)) (define-public mininet (package (name "mininet") (version "2.2.2") (source (origin (method git-fetch) (uri (git-reference (url "git://github.com/mininet/mininet.git") (commit version))) (sha256 (base32 "18w9vfszhnx4j3b8dd1rvrg8xnfk6rgh066hfpzspzqngd5qzakg")) (file-name (git-file-name name version)) (modules '((guix build utils))) (snippet '(begin (substitute* "Makefile" (("cc") "gcc") (("BINDIR =") "BINDIR ?=") (("MANDIR =") "MANDIR ?=") (("python setup.py install") "#Guix: skip setup.py in Makefile, leave it to the python-build-system's phases")) #t)))) (build-system gnu-build-system) (arguments `( #:imported-modules ((guix build python-build-system) ,@%gnu-build-system-modules) #:modules (((guix build python-build-system) #:prefix python:) ,@%gnu-build-system-modules) ;; (;(guix build utils) ;; (guix build python-build-system) #:prefix python: ;; (guix build gnu-build-system)) #:tests? #f #:phases (append (modify-phases %standard-phases (delete 'configure) (delete 'check) (delete 'build) ;(add-after 'unpack 'ensure-no-mtimes-pre-1980 (@@ (guix build python-build-system) ensure-no-mtimes-pre-1980)) ;(add-after 'ensure-no-mtimes-pre-1980 'enable-bytecode-determinism (@@ (guix build python-build-system) enable-bytecode-determinism)) (add-before 'install 'create-dirs (lambda _ (mkdir-p (string-append %output "/bin")) ;; why does build run test??? (mkdir-p (string-append %output "/share/man/man1"))))) (modify-phases python:%standard-phases (delete 'unpack))) #:make-flags (list (string-append "MANDIR=" %output "/bin") (string-append "BINDIR=" %output "/share/man/man1")))) (inputs `(("openvswitch" ,openvswitch) ("python2" ,python-2.7) ("python2-pyflakes" ,python2-pyflakes) ("ethtool" ,ethtool) ("inetutils" ,inetutils) ("net-tools" ,net-tools) ("psmisc" ,psmisc) ("libcgroup" ,libcgroup) ("iproute2" ,iproute) ("iperf" ,iperf) ("bash" ,bash))) (native-inputs `(("gcc" ,gcc) ("help2man" ,help2man))) (synopsis "Rapid Prototyping for Software Defined Networks") (description "Mininet emulates a complete network of hosts, links, and switches on a single machine.") (home-page "http://mininet.org/") (license bsd-style)))