Daniel Barlow
66ccea1487
update todo
2023-08-31 23:59:33 +01:00
Daniel Barlow
535eb70bb9
convert all route defns to module-based-service
2023-08-31 23:52:59 +01:00
Daniel Barlow
51ad051443
delete unneeded services.default
2023-08-31 23:52:03 +01:00
Daniel Barlow
92970e8ed0
qemu: use service-based-module for network interfaces
2023-08-31 23:50:42 +01:00
Daniel Barlow
e04ec2e959
move SWCONFIG defn into per-device files
...
it doesn't work on qemu
2023-08-31 23:50:07 +01:00
Daniel Barlow
d60aab728d
reinstate loopback network (oops)
2023-08-31 23:29:30 +01:00
Daniel Barlow
3609d8d5ee
implement route as module-based-service
2023-08-31 23:24:23 +01:00
Daniel Barlow
44c1fb7632
delete now-unused (pkgs.liminix.network) interface address
2023-08-31 18:30:22 +01:00
Daniel Barlow
e577caa15f
extneder: use bridge module
2023-08-31 18:29:45 +01:00
Daniel Barlow
7faf620c0b
move loopback config from base to netowrk module
2023-08-31 18:28:35 +01:00
Daniel Barlow
b094220466
mt300a: use module-based network services for lan/wan
2023-08-31 18:27:07 +01:00
Daniel Barlow
f1dfb1f976
BRIDGE_VLAN_FILTERING depends on bridge _and_ vlan
...
I'm half-pleased with this. It demonstrates how we can have complex
conditional kernel config, but the way we detect if vlan exists is
tacky.
2023-08-31 18:24:09 +01:00
Daniel Barlow
333327be75
make a module for vlan
...
Acked-by: Daniel Barlow <<dan@telent.net >>
2023-08-30 23:26:44 +01:00
Daniel Barlow
efa1919e04
move squashfs kernel options into module
2023-08-30 22:59:28 +01:00
Daniel Barlow
de77635490
move bridge-related kernel config to the module
2023-08-30 17:29:42 +01:00
Daniel Barlow
aecbe08f08
add o+x permission on service-state directories
...
this is needed for resolvconf, which writes resolv.conf as
an output and wants to make it world-readable
2023-08-28 22:02:28 +01:00
Daniel Barlow
ff2d3e1a63
TODO comments
2023-08-28 22:02:28 +01:00
Daniel Barlow
8688d47c65
rotuer: create resolv.conf
2023-08-28 22:02:28 +01:00
Daniel Barlow
e86daf9bbc
default value for services.default
...
as a default default target, start all the services
2023-08-28 22:02:28 +01:00
Daniel Barlow
23ccfec5fb
update examples so they build again
2023-08-28 22:02:28 +01:00
Daniel Barlow
00c8ea66ea
add service fir dhcp v4 client
2023-08-28 22:02:28 +01:00
Daniel Barlow
31f0213b6f
convert network link/address to module-based-service
...
... and make bridge use it.
We also had to convert bridge back into a pair of services.
Downstreams want to depend on the bridge it self being configured
even if not necessarily all the members are up. e.g. don't want
to break ssh on lan if there's a misconfigured wlan device
2023-08-28 22:02:28 +01:00
Daniel Barlow
1580857fde
extract common "interface up" code to a string
...
so that bridge service can use it
2023-08-28 22:02:28 +01:00
Daniel Barlow
04b59536d8
more thoughts
2023-08-28 22:02:28 +01:00
Daniel Barlow
540a1dfd76
remove interface.device
...
build-time uses can mostly be replaced with interface.name
for runtime uses, switch to $(output ${interface} name)
2023-08-28 22:02:28 +01:00
Daniel Barlow
6da0e67621
create outputs for network interface
2023-08-27 22:41:26 +01:00
Daniel Barlow
485ecc03b0
serviceDefn build function handles dependencies
...
in a bit of a hacky way, we culd clean this up
2023-08-27 22:40:54 +01:00
Daniel Barlow
6b28f5dd79
chrony: drop privileges
2023-08-27 22:40:49 +01:00
Daniel Barlow
81b56fb6a3
new type for interface (presently just alias to service)
2023-08-27 22:39:37 +01:00
Daniel Barlow
2ad203ce1f
delete unused functoins in liminix-tools
2023-08-21 19:29:00 +01:00
Daniel Barlow
f4ad4d3ce1
update bridge service doc
2023-08-18 23:58:06 +01:00
Daniel Barlow
5c8ee0578f
check off some TODO items
2023-08-16 23:35:27 +01:00
Daniel Barlow
767b154eb2
fix pppoe test
2023-08-16 23:35:12 +01:00
Daniel Barlow
6f92f8fa8b
merge bridge services into one
2023-08-16 23:29:53 +01:00
Daniel Barlow
a019e59a80
improve doc
2023-08-16 22:52:16 +01:00
Daniel Barlow
625146d821
escape backslash in service type
2023-08-16 22:26:40 +01:00
Daniel Barlow
1b8536ff81
describe hostname option
2023-08-16 22:26:40 +01:00
Daniel Barlow
bd908307c4
print module pathname if it contains services
...
so that the user knows what to add to their imports
2023-08-16 22:26:40 +01:00
Daniel Barlow
d7785d9d75
if no preamble, print module pathname as headline
...
this was supposed to work already but was broken
2023-08-16 22:26:40 +01:00
Daniel Barlow
f93c03c98a
improve descriptions for base and busybox
2023-08-16 22:26:31 +01:00
Daniel Barlow
519de0b55c
module docs: service modules are listed after plain modules
2023-08-12 20:10:40 +01:00
Daniel Barlow
f20d1cfc01
print description only if present
2023-08-12 18:16:20 +01:00
Daniel Barlow
e039783e67
exclude outputs from doc
2023-08-12 18:16:06 +01:00
Daniel Barlow
dc4b7ebffd
module docs: print examples
2023-08-11 21:12:57 +01:00
Daniel Barlow
bd8d00fe13
TODO for modules phase
2023-08-11 18:28:30 +01:00
Daniel Barlow
b81604870b
extract kernel config options from base module
...
we then "import" them straight back into base.nix - it's not
as though you can opt out of having a kernel. But this means
they'll appear separately in the documentation
2023-08-11 18:15:17 +01:00
Daniel Barlow
3ea40f95dc
convert pppoe to serviceDefn
2023-08-10 22:53:45 +01:00
Daniel Barlow
2942c465b9
add ssh module
2023-08-10 22:53:21 +01:00
Daniel Barlow
2a29a00dfe
much text, such doc, very wow
2023-08-09 22:27:37 +01:00
Daniel Barlow
3669a4000f
explain (badly) the module/service dynamic
2023-08-09 22:27:18 +01:00
Daniel Barlow
f7b507587d
print modules in consistent (alphabetical) order
2023-08-09 22:26:50 +01:00
Daniel Barlow
be044cb59e
doc: print headline for modules with no preamble
2023-08-07 23:08:41 +01:00
Daniel Barlow
5cff862ae9
add preamble text to each service-providing-module
2023-08-07 23:03:49 +01:00
Daniel Barlow
615c2de537
extract module top-level comment to docs
2023-08-07 22:14:58 +01:00
Daniel Barlow
6d619ee8b5
add some missing descriptions
2023-08-07 21:43:12 +01:00
Daniel Barlow
59a41a712b
fix underline
2023-08-06 22:26:00 +01:00
Daniel Barlow
f3e32115ee
extremely hacky first pass at autogenerated module docs
2023-08-06 22:25:37 +01:00
Daniel Barlow
2414dd4b55
convert ntp to serviceDefn
2023-08-05 14:16:54 +01:00
Daniel Barlow
93e04bb834
convert bridge service to serviceDefn
2023-08-05 14:10:14 +01:00
Daniel Barlow
f82501d278
update hostapd to "build" syntax
2023-08-05 12:21:18 +01:00
Daniel Barlow
90c1d59aca
convert firewall service to new serviceDefn
...
this is a bit kludgey with dependencies, need to
come back and look at that
2023-08-05 12:07:35 +01:00
Daniel Barlow
fbb2c04132
move module-based-service parameter types into service
...
This is in preparation for writing something that extracts them
into documentation.
user configurations now call config.system.service.foo.build { ...params }
instead of config.system.service.foo
the parameter type definitions themselves now move into the
config stanza of the module referencing the service
new helper function liminix.callService
The only service moved so far is dnsmasq
2023-08-04 20:39:29 +01:00
Daniel Barlow
c3631f4c9d
improve grammar of mkEnableOption descriptions
2023-08-04 20:19:27 +01:00
Daniel Barlow
4689cebf8d
fix illegal module options
2023-08-04 20:07:06 +01:00
Daniel Barlow
7fad66ff27
fix makestep type
2023-07-22 23:50:01 +01:00
Daniel Barlow
9994c161d4
DRY up wireless config
2023-07-22 23:37:01 +01:00
Daniel Barlow
bf1d9beec1
add first version of ntp module
2023-07-22 23:25:25 +01:00
Daniel Barlow
e952f55f40
markup
2023-07-20 12:07:09 +01:00
Daniel Barlow
4396afa97b
inline excessive lets
2023-07-20 12:05:36 +01:00
Daniel Barlow
9b70fd62f6
extract bridge to module-based services
2023-07-20 12:02:09 +01:00
Daniel Barlow
86e73317ee
alias config.system.service
2023-07-20 11:28:45 +01:00
Daniel Barlow
5bf8e8522a
update wlan test to use module
2023-07-16 17:56:07 +01:00
Daniel Barlow
648ea5613b
use module-based-service for hostapd
2023-07-16 17:51:50 +01:00
Daniel Barlow
17abd42cf3
mote that modules are in a state of flux
2023-07-16 17:51:50 +01:00
Daniel Barlow
f73a9d82dc
add comments
2023-07-16 17:51:50 +01:00
Daniel Barlow
1117f98afc
remove redundant let
2023-07-16 17:51:50 +01:00
Daniel Barlow
d7f3e05063
turn nftables firewall into a service-providing module
2023-07-16 17:51:50 +01:00
Daniel Barlow
73e5916cc5
thunk
2023-07-15 23:40:16 +01:00
Daniel Barlow
669af24247
make a module for dnsmasq
2023-07-14 23:18:21 +01:00
Daniel Barlow
5fee3e54d2
use ppp module in pppoe test
2023-07-14 22:23:11 +01:00
Daniel Barlow
df6cfe1cd5
move pppoe service derivation into ppp module dir
2023-07-14 21:35:59 +01:00
Daniel Barlow
c13defc891
rename modules/ppp.nix -> modules/ppp/default.nix
2023-07-14 21:08:33 +01:00
Daniel Barlow
682183a88d
move typeChecked into pkgs.liminix.lib
2023-07-14 20:22:29 +01:00
Daniel Barlow
69e6eb5a89
accept attr args to pppoe service, and typecheck them
...
We use (abuse, arguably) the nixos module system for typechecking. Un
the plus side, it gives us documentation of the options and their
expected types. On the downside, the error message doesn't tell us
the file in which the error was encountered.
(This is subject to change, if I can find a better way)
2023-07-14 16:53:36 +01:00
Daniel Barlow
9441f48819
new ppp module, used by rotuer
...
The objective here is that services which depend on global config
(e.g. kernel config or busybox options or static paths in the
filesystem) now live under config.system.service, and are added
to that collection by the module that defines the necessary state.
This is a first step: the services will be configured by a typechecked
attr set instead of the arbitrary arguments that
pkgs.liminix.networking.pppoe accepts
2023-07-13 19:44:14 +01:00
Daniel Barlow
2e50368bd2
rename config.outputs to config.system.outputs
...
New rules: everything under "config" that isn't actually configuration
(e.g. build products) will in future live in config.system. This is
the first step.
2023-07-13 19:24:59 +01:00
Daniel Barlow
492317623d
more thoughts about modules
2023-07-13 11:54:50 +01:00
Daniel Barlow
0f57ae2a32
fix section order
2023-07-09 15:18:19 +01:00
Daniel Barlow
2d05695d99
add cautionary note about flashing from openwrt
...
h/t matthewcroughan, thank you for your service
2023-07-09 15:12:18 +01:00
Daniel Barlow
a1dff5b92d
document flash.scr
2023-07-08 23:43:15 +01:00
Daniel Barlow
7c06f30675
set ipv6 wan address to that provided by dhcpv6
2023-07-08 23:08:25 +01:00
Daniel Barlow
c7ead8559b
shell.nix: set FENNEL_PATH for interactive convenience
2023-07-08 23:08:25 +01:00
Daniel Barlow
a19d12d6d7
fennelrepl add PREFIX/?/init.lua to lua load path
2023-07-08 23:08:25 +01:00
Daniel Barlow
b5cd0cc2d5
fennelrepl: fix bug which introduced whitespace in package.path
2023-07-08 23:08:24 +01:00
Daniel Barlow
0c41e9305c
extract service output watcher to fennel module
2023-07-08 23:08:24 +01:00
Daniel Barlow
708350711b
allow running scripts using fennelrepl
...
e.g.
FENNEL_PATH=pkgs/?/init.fnl\;pkgs/?.fnl nix-shell --run "fennelrepl ./examples/acquire-delegated-prefix.fnl /tmp/boo eth1"
2023-07-08 23:08:24 +01:00
Daniel Barlow
e7de889403
explain why all the examples are misspelled
2023-07-07 17:45:23 +01:00
Daniel Barlow
a12e5888e9
rotuer: remove hardcoded wan address
2023-07-05 20:34:30 +01:00
Daniel Barlow
2de4d7a8f9
fennel: extract some common functions into a shareable module
2023-07-05 20:23:27 +01:00
Daniel Barlow
c3bb33c9ce
add fennelrepl package
...
Runs fennel using a Lua compiled with the same options as the
host system, and with packages set up so it can find all the local
Lua packages
To shorten the dev feedback loop further, allows FENNEL_PATH to be set
on the command line so you can point directly it at the Fennel sources
for some library you're working against instead of having to run
nix-build and compile them to Lua
2023-07-04 22:58:51 +01:00