iproute2: module to create rt_table file & co
When doing source routing/multihoming, it's practical to give names to routing tables. The absence of the rt_table file in /etc make this impossible. This patch recreates these files on rebuild so that they can be modified by the user see NixOS#38638. iproute2 is modified to look into config.networking.iproute2.confDir instead of /etc/iproute2.
This commit is contained in:
parent
6db7f92cc2
commit
1e0975f4c0
23
nixos/modules/config/iproute2.nix
Normal file
23
nixos/modules/config/iproute2.nix
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.networking.iproute2;
|
||||||
|
confDir = "/run/iproute2";
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.networking.iproute2.enable = mkEnableOption "copy IP route configuration files";
|
||||||
|
|
||||||
|
config = mkMerge [
|
||||||
|
({ nixpkgs.config.iproute2.confDir = confDir; })
|
||||||
|
|
||||||
|
(mkIf cfg.enable {
|
||||||
|
system.activationScripts.iproute2 = ''
|
||||||
|
cp -R ${pkgs.iproute}/etc/iproute2 ${confDir}
|
||||||
|
chmod -R 664 ${confDir}
|
||||||
|
chmod +x ${confDir}
|
||||||
|
'';
|
||||||
|
})
|
||||||
|
];
|
||||||
|
}
|
|
@ -9,6 +9,7 @@
|
||||||
./config/fonts/ghostscript.nix
|
./config/fonts/ghostscript.nix
|
||||||
./config/gnu.nix
|
./config/gnu.nix
|
||||||
./config/i18n.nix
|
./config/i18n.nix
|
||||||
|
./config/iproute2.nix
|
||||||
./config/krb5/default.nix
|
./config/krb5/default.nix
|
||||||
./config/ldap.nix
|
./config/ldap.nix
|
||||||
./config/networking.nix
|
./config/networking.nix
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ fetchurl, stdenv, lib, flex, bash, bison, db, iptables, pkgconfig }:
|
{ fetchurl, stdenv, config, lib, flex, bash, bison, db, iptables, pkgconfig }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "iproute2-${version}";
|
name = "iproute2-${version}";
|
||||||
|
@ -26,8 +26,9 @@ stdenv.mkDerivation rec {
|
||||||
"HDRDIR=$(TMPDIR)/include/iproute2" # Don't install headers
|
"HDRDIR=$(TMPDIR)/include/iproute2" # Don't install headers
|
||||||
];
|
];
|
||||||
|
|
||||||
|
# enable iproute2 module if you want this folder to be created
|
||||||
buildFlags = [
|
buildFlags = [
|
||||||
"CONFDIR=/etc/iproute2"
|
"CONFDIR=${config.iproute2.confDir or "/run/iproute2"}"
|
||||||
];
|
];
|
||||||
|
|
||||||
installFlags = [
|
installFlags = [
|
||||||
|
|
Loading…
Reference in a new issue