summary refs log tree commit diff
path: root/pkgs/servers
diff options
context:
space:
mode:
authorFrank Doepper <woffs@woffs.de>2021-06-08 21:33:35 +0200
committerMartin Weinelt <hexa@darmstadt.ccc.de>2022-01-09 04:12:55 +0100
commit89956e7d6e5f15a4e005e61895c9c5ad1b0a4b31 (patch)
tree4762336d2376a466d0945ca1f9a5ee0ff6808ead /pkgs/servers
parent5b646ed20a471d84c61a6df14f7a99ffde2ea307 (diff)
downloadnixpkgs-89956e7d6e5f15a4e005e61895c9c5ad1b0a4b31.tar
nixpkgs-89956e7d6e5f15a4e005e61895c9c5ad1b0a4b31.tar.gz
nixpkgs-89956e7d6e5f15a4e005e61895c9c5ad1b0a4b31.tar.bz2
nixpkgs-89956e7d6e5f15a4e005e61895c9c5ad1b0a4b31.tar.lz
nixpkgs-89956e7d6e5f15a4e005e61895c9c5ad1b0a4b31.tar.xz
nixpkgs-89956e7d6e5f15a4e005e61895c9c5ad1b0a4b31.tar.zst
nixpkgs-89956e7d6e5f15a4e005e61895c9c5ad1b0a4b31.zip
frr: init at 7.5.1
- FRRouting is a successor of no-longer maintained quagga.
- new dependency: libyang
Diffstat (limited to 'pkgs/servers')
-rw-r--r--pkgs/servers/frr/default.nix90
1 files changed, 90 insertions, 0 deletions
diff --git a/pkgs/servers/frr/default.nix b/pkgs/servers/frr/default.nix
new file mode 100644
index 00000000000..48c8af1b18e
--- /dev/null
+++ b/pkgs/servers/frr/default.nix
@@ -0,0 +1,90 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoreconfHook
+, libcap
+, json_c
+, readline
+, net-snmp
+, perl
+, texinfo
+, pkg-config
+, c-ares
+, python3
+, python3Packages
+, libyang
+, flex
+, bison
+, openssl
+, czmq
+, nixosTests
+}:
+
+stdenv.mkDerivation rec {
+  pname = "frr";
+  version = "7.5.1";
+
+  src = fetchFromGitHub {
+    owner = "FRRouting";
+    repo = pname;
+    rev = "${pname}-${version}";
+    sha256 = "0lzsvi3kl9zcd4k04vc3363z9v2yrp7wc8bziv6w9h5fznh2vkxp";
+  };
+
+  buildInputs = [ readline net-snmp c-ares json_c python3 libyang openssl czmq ]
+    ++ lib.optionals stdenv.isLinux [ libcap ];
+
+  nativeBuildInputs = [ pkg-config perl texinfo autoreconfHook python3Packages.sphinx python3Packages.pytest flex bison ];
+
+  configureFlags = [
+    "--sysconfdir=/etc/frr"
+    "--localstatedir=/run/frr"
+    "--sbindir=$(out)/libexec/frr"
+    "--disable-exampledir"
+    "--enable-user=frr"
+    "--enable-group=frr"
+    "--enable-configfile-mask=0640"
+    "--enable-logfile-mask=0640"
+    "--enable-vty-group=frrvty"
+    "--enable-snmp"
+    "--enable-multipath=64"
+  ];
+
+  postPatch = ''
+    substituteInPlace tools/frr-reload --replace /usr/lib/frr/ $out/libexec/frr/
+  '';
+
+  enableParallelBuilding = true;
+
+  passthru.tests = { inherit (nixosTests) frr; };
+
+  meta = with lib; {
+    description = "FRR BGP/OSPF/ISIS/RIP/RIPNG routing daemon suite";
+    longDescription = ''
+      FRRouting (FRR) is a free and open source Internet routing protocol suite
+      for Linux and Unix platforms. It implements BGP, OSPF, RIP, IS-IS, PIM,
+      LDP, BFD, Babel, PBR, OpenFabric and VRRP, with alpha support for EIGRP
+      and NHRP.
+
+      FRR’s seamless integration with native Linux/Unix IP networking stacks
+      makes it a general purpose routing stack applicable to a wide variety of
+      use cases including connecting hosts/VMs/containers to the network,
+      advertising network services, LAN switching and routing, Internet access
+      routers, and Internet peering.
+
+      FRR has its roots in the Quagga project. In fact, it was started by many
+      long-time Quagga developers who combined their efforts to improve on
+      Quagga’s well-established foundation in order to create the best routing
+      protocol stack available. We invite you to participate in the FRRouting
+      community and help shape the future of networking.
+
+      Join the ranks of network architects using FRR for ISPs, SaaS
+      infrastructure, web 2.0 businesses, hyperscale services, and Fortune 500
+      private clouds.
+    '';
+    homepage = "https://frrouting.org/";
+    license = with licenses; [ gpl2Plus lgpl21Plus ];
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ woffs ];
+  };
+}