commit df6cfe1cd5eeea6f0f6d626fc2696ef32a168e25
parent c13defc8918f5517c002410763e91e4f09df1ba7
Author: Daniel Barlow <dan@telent.net>
Date: Fri, 14 Jul 2023 21:33:56 +0100
move pppoe service derivation into ppp module dir
Diffstat:
4 files changed, 66 insertions(+), 67 deletions(-)
diff --git a/modules/ppp/default.nix b/modules/ppp/default.nix
@@ -8,7 +8,7 @@ in {
};
};
config = {
- system.service.pppoe = pkgs.liminix.networking.pppoe;
+ system.service.pppoe = pkgs.callPackage ./pppoe.nix {};
kernel = {
config = {
PPP = "y";
diff --git a/modules/ppp/pppoe.nix b/modules/ppp/pppoe.nix
@@ -0,0 +1,65 @@
+{
+ liminix
+, lib
+, ppp
+, pppoe
+, writeAshScript
+, serviceFns
+} :
+let
+ inherit (liminix.services) longrun;
+ inherit (liminix.lib) typeChecked;
+ inherit (lib) mkOption types;
+
+ t = {
+ interface = mkOption {
+ type = liminix.lib.types.service;
+ description = "ethernet interface to run PPPoE over";
+ };
+ ppp-options = mkOption {
+ type = types.listOf types.str;
+ description = "options supplied on ppp command line";
+ };
+ };
+in
+params:
+let
+ inherit (typeChecked "pppoe.nix" t params) interface ppp-options;
+ name = "${interface.device}.pppoe";
+ ip-up = writeAshScript "ip-up" {} ''
+ . ${serviceFns}
+ (in_outputs ${name}
+ echo $1 > ifname
+ echo $2 > tty
+ echo $3 > speed
+ echo $4 > address
+ echo $5 > peer-address
+ echo $DNS1 > ns1
+ echo $DNS2 > ns2
+ )
+ echo >/proc/self/fd/10
+ '';
+ ip6-up = writeAshScript "ip6-up" {} ''
+ . ${serviceFns}
+ (in_outputs ${name}
+ echo $4 > ipv6-address
+ echo $5 > ipv6-peer-address
+ )
+ echo >/proc/self/fd/10
+ '';
+ ppp-options' = ppp-options ++ [
+ "ip-up-script" ip-up
+ "ipv6-up-script" ip6-up
+ "ipparam" name
+ "nodetach"
+ "usepeerdns"
+ "logfd" "2"
+ ];
+
+in
+longrun {
+ inherit name;
+ run = "${ppp}/bin/pppd pty '${pppoe}/bin/pppoe -I ${interface.device}' ${lib.concatStringsSep " " ppp-options'}" ;
+ notification-fd = 10;
+ dependencies = [ interface ];
+}
diff --git a/pkgs/liminix-tools/networking/default.nix b/pkgs/liminix-tools/networking/default.nix
@@ -42,7 +42,6 @@ in {
name = "${interface.device}.odhcp";
run = "odhcpcd ${interface.device}";
};
- pppoe = callPackage ./pppoe.nix {};
dnsmasq = callPackage ./dnsmasq.nix {};
hostapd = callPackage ./hostapd.nix {};
route = { name, target, via, dependencies, dev ? null }:
diff --git a/pkgs/liminix-tools/networking/pppoe.nix b/pkgs/liminix-tools/networking/pppoe.nix
@@ -1,65 +0,0 @@
-{
- liminix
-, lib
-, ppp
-, pppoe
-, writeAshScript
-, serviceFns
-} :
-let
- inherit (liminix.services) longrun;
- inherit (liminix.lib) typeChecked;
- inherit (lib)
- mergeDefinitions
- mkEnableOption mkOption isType types isDerivation hasAttr;
- t = {
- interface = mkOption {
- type = liminix.lib.types.service;
- description = "ethernet interface to run PPPoE over";
- };
- ppp-options = mkOption {
- type = types.listOf types.str;
- };
- };
-in
-params:
-let
- inherit (typeChecked "pppoe.nix" t params) ppp-options interface;
- name = "${interface.device}.pppoe";
- ip-up = writeAshScript "ip-up" {} ''
- . ${serviceFns}
- (in_outputs ${name}
- echo $1 > ifname
- echo $2 > tty
- echo $3 > speed
- echo $4 > address
- echo $5 > peer-address
- echo $DNS1 > ns1
- echo $DNS2 > ns2
- )
- echo >/proc/self/fd/10
- '';
- ip6-up = writeAshScript "ip6-up" {} ''
- . ${serviceFns}
- (in_outputs ${name}
- echo $4 > ipv6-address
- echo $5 > ipv6-peer-address
- )
- echo >/proc/self/fd/10
- '';
- ppp-options' = ppp-options ++ [
- "ip-up-script" ip-up
- "ipv6-up-script" ip6-up
- "ipparam" name
- "nodetach"
- "usepeerdns"
- "logfd" "2"
- ];
-
-in
-longrun {
- inherit name;
- run = "${ppp}/bin/pppd pty '${pppoe}/bin/pppoe -I ${interface.device}' ${lib.concatStringsSep " " ppp-options'}" ;
- notification-fd = 10;
- dependencies = [ interface ];
-}