diff options
author | Franz Pletz <fpletz@fnordicwalking.de> | 2018-02-11 23:28:00 +0100 |
---|---|---|
committer | Franz Pletz <fpletz@fnordicwalking.de> | 2018-02-11 23:35:05 +0100 |
commit | 74736f26c2578786eefce80f906b0858780e1d55 (patch) | |
tree | dca705fdaccc08f50f34871ccb1dfe0d3c832405 | |
parent | 7fad46051e640cde165e552d5dae62684a40abab (diff) | |
download | nixlib-74736f26c2578786eefce80f906b0858780e1d55.tar nixlib-74736f26c2578786eefce80f906b0858780e1d55.tar.gz nixlib-74736f26c2578786eefce80f906b0858780e1d55.tar.bz2 nixlib-74736f26c2578786eefce80f906b0858780e1d55.tar.lz nixlib-74736f26c2578786eefce80f906b0858780e1d55.tar.xz nixlib-74736f26c2578786eefce80f906b0858780e1d55.tar.zst nixlib-74736f26c2578786eefce80f906b0858780e1d55.zip |
bird2: init at 2.0.1
-rw-r--r-- | nixos/modules/services/networking/bird.nix | 23 | ||||
-rw-r--r-- | pkgs/servers/bird/default.nix | 67 | ||||
-rw-r--r-- | pkgs/servers/bird/dont-create-sysconfdir-1.patch (renamed from pkgs/servers/bird/dont-create-sysconfdir.patch) | 0 | ||||
-rw-r--r-- | pkgs/servers/bird/dont-create-sysconfdir-2.patch | 13 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 4 |
5 files changed, 76 insertions, 31 deletions
diff --git a/nixos/modules/services/networking/bird.nix b/nixos/modules/services/networking/bird.nix index 1a7a1e24b702..c25bd0fdc541 100644 --- a/nixos/modules/services/networking/bird.nix +++ b/nixos/modules/services/networking/bird.nix @@ -7,21 +7,27 @@ let let cfg = config.services.${variant}; pkg = pkgs.${variant}; + birdBin = if variant == "bird6" then "bird6" else "bird"; birdc = if variant == "bird6" then "birdc6" else "birdc"; + descr = + { bird = "1.9.x with IPv4 suport"; + bird6 = "1.9.x with IPv6 suport"; + bird2 = "2.x"; + }.${variant}; configFile = pkgs.stdenv.mkDerivation { name = "${variant}.conf"; text = cfg.config; preferLocalBuild = true; buildCommand = '' echo -n "$text" > $out - ${pkg}/bin/${variant} -d -p -c $out + ${pkg}/bin/${birdBin} -d -p -c $out ''; }; in { ###### interface options = { services.${variant} = { - enable = mkEnableOption "BIRD Internet Routing Daemon"; + enable = mkEnableOption "BIRD Internet Routing Daemon (${descr})"; config = mkOption { type = types.lines; description = '' @@ -36,12 +42,12 @@ let config = mkIf cfg.enable { environment.systemPackages = [ pkg ]; systemd.services.${variant} = { - description = "BIRD Internet Routing Daemon"; + description = "BIRD Internet Routing Daemon (${descr})"; wantedBy = [ "multi-user.target" ]; serviceConfig = { Type = "forking"; Restart = "on-failure"; - ExecStart = "${pkg}/bin/${variant} -c ${configFile} -u ${variant} -g ${variant}"; + ExecStart = "${pkg}/bin/${birdBin} -c ${configFile} -u ${variant} -g ${variant}"; ExecReload = "${pkg}/bin/${birdc} configure"; ExecStop = "${pkg}/bin/${birdc} down"; CapabilityBoundingSet = [ "CAP_CHOWN" "CAP_FOWNER" "CAP_DAC_OVERRIDE" "CAP_SETUID" "CAP_SETGID" @@ -56,14 +62,15 @@ let users = { extraUsers.${variant} = { description = "BIRD Internet Routing Daemon user"; - group = "${variant}"; + group = variant; }; extraGroups.${variant} = {}; }; }; }; - inherit (config.services) bird bird6; -in { - imports = [(generic "bird") (generic "bird6")]; +in + +{ + imports = map generic [ "bird" "bird6" "bird2" ]; } diff --git a/pkgs/servers/bird/default.nix b/pkgs/servers/bird/default.nix index 0e77aa1d8ee7..ba29bfa433a9 100644 --- a/pkgs/servers/bird/default.nix +++ b/pkgs/servers/bird/default.nix @@ -1,29 +1,54 @@ -{ stdenv, fetchurl, flex, bison, readline -, enableIPv6 ? false }: +{ lib, stdenv, fetchurl, flex, bison, readline }: -stdenv.mkDerivation rec { - name = "bird-1.6.3"; +with lib; - src = fetchurl { - url = "ftp://bird.network.cz/pub/bird/${name}.tar.gz"; - sha256 = "0z3yrxqb0p7f8b7r2gk4mvrwfzk45zx7yr9aifbvba1vgksiri9r"; - }; +let + + generic = { version, sha256, enableIPv6 ? false }: + stdenv.mkDerivation rec { + name = "bird-${version}"; + + src = fetchurl { + inherit sha256; + url = "ftp://bird.network.cz/pub/bird/${name}.tar.gz"; + }; + + nativeBuildInputs = [ flex bison ]; + buildInputs = [ readline ]; + + patches = [ + (./. + (builtins.toPath "/dont-create-sysconfdir-${builtins.substring 0 1 version}.patch")) + ]; - buildInputs = [ flex bison readline ]; + configureFlags = [ + "--localstatedir=/var" + ] ++ optional enableIPv6 "--enable-ipv6"; - patches = [ - ./dont-create-sysconfdir.patch - ]; + meta = { + description = "BIRD Internet Routing Daemon"; + homepage = http://bird.network.cz; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ viric fpletz ]; + platforms = platforms.linux; + }; + }; - configureFlags = [ - "--localstatedir /var" - ] ++ stdenv.lib.optional enableIPv6 "--enable-ipv6"; +in + +{ + bird = generic { + version = "1.6.3"; + sha256 = "0z3yrxqb0p7f8b7r2gk4mvrwfzk45zx7yr9aifbvba1vgksiri9r"; + }; + + bird6 = generic { + version = "1.6.3"; + sha256 = "0z3yrxqb0p7f8b7r2gk4mvrwfzk45zx7yr9aifbvba1vgksiri9r"; + enableIPv6 = true; + }; - meta = { - description = "BIRD Internet Routing Daemon"; - homepage = http://bird.network.cz; - license = stdenv.lib.licenses.gpl2Plus; - maintainers = with stdenv.lib.maintainers; [ viric fpletz ]; - platforms = stdenv.lib.platforms.linux; + bird2 = generic { + version = "2.0.1"; + sha256 = "0qyh2cxj7hfz90x3fnczjdm3i9g7vr0nc4l4wjkj9qm0646vc52n"; }; } diff --git a/pkgs/servers/bird/dont-create-sysconfdir.patch b/pkgs/servers/bird/dont-create-sysconfdir-1.patch index 0a11c8a2a8d8..0a11c8a2a8d8 100644 --- a/pkgs/servers/bird/dont-create-sysconfdir.patch +++ b/pkgs/servers/bird/dont-create-sysconfdir-1.patch diff --git a/pkgs/servers/bird/dont-create-sysconfdir-2.patch b/pkgs/servers/bird/dont-create-sysconfdir-2.patch new file mode 100644 index 000000000000..fd86da8a1298 --- /dev/null +++ b/pkgs/servers/bird/dont-create-sysconfdir-2.patch @@ -0,0 +1,13 @@ +diff --git a/Makefile.in b/Makefile.in +index fdd5e6c..45f81a1 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -165,7 +165,7 @@ tags: + # Install + + install: all +- $(INSTALL) -d $(DESTDIR)/$(sbindir) $(DESTDIR)/$(sysconfdir) $(DESTDIR)/@runtimedir@ ++ $(INSTALL) -d $(DESTDIR)/$(sbindir) $(DESTDIR)/$(sysconfdir) + $(INSTALL_PROGRAM) $(exedir)/bird $(DESTDIR)/$(sbindir)/bird + $(INSTALL_PROGRAM) $(exedir)/birdcl $(DESTDIR)/$(sbindir)/birdcl + if test -n "@CLIENT@" ; then \ diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 8e502393f9f5..716ca74e015c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -11915,8 +11915,8 @@ with pkgs; bind = callPackage ../servers/dns/bind { }; dnsutils = bind.dnsutils; - bird = callPackage ../servers/bird { }; - bird6 = bird.override { enableIPv6 = true; }; + inherit (callPackages ../servers/bird { }) + bird bird6 bird2; bosun = callPackage ../servers/monitoring/bosun { }; scollector = bosun; |