Raito Bezarius
0fb671023c
feat(services): introduce structured bundles
...
Structured bundles keep their original contents as a `passthru` field
named `components`.
This enable users to depend on a specific piece of the bundle instead of
the whole bundle.
Signed-off-by: Raito Bezarius <masterancpp@gmail.com>
2024-09-05 14:54:12 +02:00
Raito Bezarius
21ff11503e
fix(bridge): pick up MAC from another interface
...
This avoids the OPERSTATE unknown when the bridge is brought up but the
members are not ready yet.
This will make OPERSTATE to down, enabling us to wait until we have
brought up completely all the members.
Signed-off-by: Raito Bezarius <masterancpp@gmail.com>
2024-09-01 17:48:54 +02:00
Raito Bezarius
c1e61d6af5
fix(zyxel/nwa50ax): ubi cannot run on phram
...
Discovered the hard way.
Signed-off-by: Raito Bezarius <masterancpp@gmail.com>
2024-09-01 17:48:54 +02:00
Daniel Barlow
471c63b399
s6-rc do cleanup in "finish", don't append to "run" script
...
s6-supervise sends signals (e.g. SIGTERM) to the pid of the process
running "run", so how do we know if the ceanup commands are even
getting executed if the shell interpreter that is supposed to do that
got killed already?
2024-05-13 17:53:02 +01:00
Daniel Barlow
4795dd05b7
unconditionally restart trigger services on liminix-rebuild
...
We call s6-rc -u -p default to restart/start the base services
on a rebuild, otherwise services that are only in the new
configuration won't come up. However, this stops any service
started by a trigger. So, workaround is to restart the trigger
service and expect it to restart the services it manages if they're
needed
2024-04-03 23:07:56 +01:00
Daniel Barlow
b8a46fc05e
allow buildInputs param to s6 service
...
this is in preparation for trigger services that need to
close over the triggered service without adding it to
s6-rc dependencies
2024-03-28 20:58:53 +00:00
Daniel Barlow
8ac2c6cec1
support timeouts (default 30s) for starting s6-rc services
2024-03-28 20:58:47 +00:00
Daniel Barlow
3c950704e1
rename /run/service-state to /run/services/outputs
2024-02-13 21:41:43 +00:00
Daniel Barlow
c8b2d58dd3
exit 0 on service down even if no outputs to delete
2023-11-21 17:25:50 +00:00
Daniel Barlow
f7b30939b5
remove service-state when service exits
2023-09-13 22:49:00 +01:00
Daniel Barlow
535eb70bb9
convert all route defns to module-based-service
2023-08-31 23:52:59 +01:00
Daniel Barlow
44c1fb7632
delete now-unused (pkgs.liminix.network) interface address
2023-08-31 18:30:22 +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
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
2ad203ce1f
delete unused functoins in liminix-tools
2023-08-21 19:29:00 +01:00
Daniel Barlow
648ea5613b
use module-based-service for hostapd
2023-07-16 17:51:50 +01:00
Daniel Barlow
669af24247
make a module for dnsmasq
2023-07-14 23:18:21 +01:00
Daniel Barlow
df6cfe1cd5
move pppoe service derivation into ppp module dir
2023-07-14 21:35:59 +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
b6e72504d6
ipv6 default route
...
needs to specify the ppp0 *peer* address not the local address
2023-06-30 10:17:33 +01:00
Daniel Barlow
447f068569
partly support getting IPv6 addresses
...
- gets interface id from ppp
- runs odhcpc to get RA and prefix delegation
- doesn't do anything useful with the data yet
2023-05-24 23:01:50 +01:00
Daniel Barlow
a4e1dcedd3
redirect stderr
2023-03-10 23:39:53 +00:00
Daniel Barlow
225fc6fe51
configurable busybox
...
allows modules to add to the busybox applets and change config
2023-03-10 18:40:45 +00:00
Daniel Barlow
91c0147919
set hostname before dhcp client runs
2023-03-08 22:11:59 +00:00
Daniel Barlow
70f8f5ecfd
remove hostapd debugging flag
2023-03-07 19:11:25 +00:00
Daniel Barlow
e86e9430fc
vlans and mt300a wired network interfaces
2023-03-07 19:10:12 +00:00
Daniel Barlow
06687a819a
udhcpc notify when ready
2023-03-07 19:06:40 +00:00
Daniel Barlow
f9f9720ba7
${!foo} doesn't work in ash, switch to printenv
2023-03-07 19:05:58 +00:00
Daniel Barlow
1565a8414d
remove inadvertant references to bash
2023-03-06 17:48:31 +00:00
Daniel Barlow
a8cb872859
add service name to log lines
2023-03-04 23:08:25 +00:00
Daniel Barlow
5427456c21
rename notificationFd to notification-fd
...
it's perfectly valid syntax and consistent with the s6 spelling
2023-03-04 21:19:30 +00:00
Daniel Barlow
38756af1c1
add in_outputs shell function which ensures umask is set
2023-03-03 23:07:03 +00:00
Daniel Barlow
adc198b3af
WIP push to see what passes
2023-03-01 22:24:58 +00:00
Daniel Barlow
fc4f726dd6
make hostapd service depend on its interface
2023-03-01 18:16:01 +00:00
Daniel Barlow
626a365f79
replace waitup with more generally useful ifwait
...
* wait for $interface present before ip link set up dev
* wait for wlan0 running before adding to bridge
2023-03-01 18:16:01 +00:00
Daniel Barlow
ea2c5e158d
add missing argument
2023-02-26 17:54:58 +00:00
Daniel Barlow
c37332910a
add option to provide dnsmasq resolv-file from a service
2023-02-25 22:53:50 +00:00
Daniel Barlow
59ce03630a
consistent ownership/permissions for /run/service-state/**
2023-02-25 22:53:06 +00:00
Daniel Barlow
228b270385
pppoe: capture nameserver addresses as outputs
2023-02-25 20:31:41 +00:00
Daniel Barlow
3b75cadb20
improve bridge support
...
instead of a bridge specifiying its members (not ideal if they're
not all always up), the member interfaces specify their primary
2023-02-24 23:49:05 +00:00
Daniel Barlow
3e1082ad18
allow interface service to specify dependencies
2023-02-22 19:18:59 +00:00
Daniel Barlow
e9f04931fa
improve syntax for accessing service outputs
2022-10-02 16:35:55 +01:00
Daniel Barlow
f030efbd49
extract "service" function to reduce duplicated code
2022-10-02 14:44:29 +01:00
Daniel Barlow
da8866a01a
first pass at a hostapd service, rough around the edges
2022-10-02 10:04:35 +01:00
Daniel Barlow
c320d0afc7
add dnsmasq and example config for it
...
would be good to move more of this into a module, but that
doesn't sit well with the (potential) ability to run more than one
dnsmasq service, as modules are singletons
2022-09-28 21:33:18 +01:00
Daniel Barlow
dfdaa27f39
make ppp log to stderr not syslog
2022-09-27 22:57:06 +01:00
Daniel Barlow
0632b5102e
remove .service/.target/.bundle etc suffixes on service names
...
they don't seem to be providing value
2022-09-27 22:56:53 +01:00
Daniel Barlow
5e573cef09
squashfs builder just needs filesystem not entire config
2022-09-27 22:06:36 +01:00