From c2700e785b3048f5ebe0ade82a475c47d00d3642 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A1bor=20Boskovits?= Date: Mon, 26 Jun 2017 17:51:33 +0200 Subject: [PATCH] gnu: Add quagga. * gnu/packages/networking.scm (quagga): New variable. * gnu/packages/patches/quagga-reproducible-build.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. Signed-off-by: Marius Bakke --- gnu/local.mk | 2 ++ gnu/packages/networking.scm | 34 +++++++++++++++++++ .../patches/quagga-reproducible-build.patch | 22 ++++++++++++ 3 files changed, 58 insertions(+) create mode 100644 gnu/packages/patches/quagga-reproducible-build.patch diff --git a/gnu/local.mk b/gnu/local.mk index 5d024de07e..b3dd1953a8 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -14,6 +14,7 @@ # Copyright © 2017 Tobias Geerinckx-Rice # Copyright © 2017 Clément Lassieur # Copyright © 2017 Mathieu Othacehe +# Copyright © 2017 Gábor Boskovits # # This file is part of GNU Guix. # @@ -961,6 +962,7 @@ dist_patch_DATA = \ %D%/packages/patches/qemu-CVE-2017-9524.patch \ %D%/packages/patches/qt4-ldflags.patch \ %D%/packages/patches/qtscript-disable-tests.patch \ + %D%/packages/patches/quagga-reproducible-build.patch \ %D%/packages/patches/quickswitch-fix-dmenu-check.patch \ %D%/packages/patches/rapicorn-isnan.patch \ %D%/packages/patches/raptor2-heap-overflow.patch \ diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 06a2c8be6e..396c41a362 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -16,6 +16,7 @@ ;;; Copyright © 2017 Leo Famulari ;;; Copyright © 2017 Efraim Flashner ;;; Copyright © 2017 Rutger Helling +;;; Copyright © 2017 Gábor Boskovits ;;; ;;; This file is part of GNU Guix. ;;; @@ -51,6 +52,7 @@ #:use-module (gnu packages compression) #:use-module (gnu packages curl) #:use-module (gnu packages databases) + #:use-module (gnu packages dejagnu) #:use-module (gnu packages flex) #:use-module (gnu packages gettext) #:use-module (gnu packages gnupg) @@ -64,6 +66,7 @@ #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages readline) #:use-module (gnu packages textutils) #:use-module (gnu packages tls) #:use-module (gnu packages valgrind) @@ -1308,3 +1311,34 @@ transparently have a connection established to another address (e.g., a UNIX socket on a different system). This is similar to 'ssh -L' functionality, but does not use SSH and requires a pre-shared symmetric key.") (license license:bsd-2))) + +(define-public quagga + (package + (name "quagga") + (version "1.2.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://savannah/quagga/quagga-" + version ".tar.gz")) + (sha256 + (base32 + "1kgvcr9cfgys5asvb5lh5h95silkr624apqm5x68xva19xfvmpda")) + (patches + (search-patches "quagga-reproducible-build.patch")))) + (build-system gnu-build-system) + (native-inputs `(("pkg-config",pkg-config) + ("perl",perl) + ("dejagnu",dejagnu))) + (inputs `(("readline",readline) + ("c-ares",c-ares))) + (synopsis "Routing Software Suite") + (description "Quagga is a routing software suite, providing implementations +of OSPFv2, OSPFv3, RIP v1 and v2, RIPng and BGP-4 for Unix platforms. + +The Quagga architecture consists of a core daemon, @command{zebra}, which +acts as an abstraction layer to the underlying Unix kernel and presents the +Zserv API over a Unix or TCP stream to Quagga clients. It is these Zserv +clients which typically implement a routing protocol and communicate routing +updates to the zebra daemon.") + (home-page "http://www.nongnu.org/quagga/") + (license license:gpl2+))) diff --git a/gnu/packages/patches/quagga-reproducible-build.patch b/gnu/packages/patches/quagga-reproducible-build.patch new file mode 100644 index 0000000000..80efe4bf62 --- /dev/null +++ b/gnu/packages/patches/quagga-reproducible-build.patch @@ -0,0 +1,22 @@ +Make sure, that vtysh_cmd.c is deterministically generated. + +--- a/vtysh/extract.pl.in 2017-03-10 13:55:06.000000000 +0100 ++++ b/vtysh/extract.pl.in 2017-06-24 00:51:56.460000000 +0200 +@@ -214,7 +214,7 @@ + } + + # Output DEFSH +-foreach (keys %live) { ++foreach (sort keys %live) { + my ($proto); + my ($key); + $key = $live{$_}; +@@ -229,7 +229,7 @@ + { + EOF + +-foreach (keys %odefun) { ++foreach (sort keys %odefun) { + my ($node, $str) = (split (/,/)); + $cmd = $ocmd{$_}; + $cmd =~ s/_cmd/_cmd_vtysh/;