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/gnu.nix
|
||||
./config/i18n.nix
|
||||
./config/iproute2.nix
|
||||
./config/krb5/default.nix
|
||||
./config/ldap.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 {
|
||||
name = "iproute2-${version}";
|
||||
@ -26,8 +26,9 @@ stdenv.mkDerivation rec {
|
||||
"HDRDIR=$(TMPDIR)/include/iproute2" # Don't install headers
|
||||
];
|
||||
|
||||
# enable iproute2 module if you want this folder to be created
|
||||
buildFlags = [
|
||||
"CONFDIR=/etc/iproute2"
|
||||
"CONFDIR=${config.iproute2.confDir or "/run/iproute2"}"
|
||||
];
|
||||
|
||||
installFlags = [
|
||||
|
Loading…
Reference in New Issue
Block a user