9550772cec
add lua binding to fetch-freebsd
2024-08-08 15:05:03 +01:00
64cd1626c6
new package fetch-freebsd: small http(s) client library
...
[*] smaller than curl, maybe not maximally small
2024-08-08 11:38:38 +01:00
eb79928b37
anoia.svc allow writing outputs
2024-08-08 11:37:50 +01:00
0a629df48d
anoia.fs: improve error messages
2024-08-08 11:36:47 +01:00
64afd18e2a
why does this fail on hydra?
2024-08-06 23:18:39 +01:00
8fa3443923
Revert "anoia.svc use timeout for inotify"
...
This reverts commit eca8e37e7a
.
2024-07-30 17:37:38 +01:00
eca8e37e7a
anoia.svc use timeout for inotify
...
in case we miss a message, check the directory every 5s
anyway
2024-07-26 23:40:40 +01:00
d300373b96
anoia fs.dir use case not match
...
match was accidentally pinning the return from readdir against the
function parameter. Which didn't work.
2024-07-26 23:37:40 +01:00
135a445672
restore param removed by deadnix
...
dochain is called with `family` even if it never uses it
2024-07-16 20:41:21 +01:00
3899daee56
create a module for round-robin
2024-07-15 22:37:37 +01:00
534a49e827
s6-rc-round-robin
...
runs services in order, starting the next one when the previous one
dies or fails to start
2024-07-08 21:53:51 +01:00
159bfa3057
make xl2tpd quit when the connections close
2024-07-08 21:44:15 +01:00
7f9971512d
a6-rc-up-tree: handle blocked deps, exit 1 if nothing started
2024-07-08 21:28:31 +01:00
f0f6cc80d7
remove dead code
2024-07-08 21:28:11 +01:00
afcc6a6436
s6-rc-up-tree pass -b to s6-rc command
2024-07-08 21:27:54 +01:00
2e8e05f31a
wip: rewrite s6-rc-up-tree in an actual procgramming language
...
and write some tests for it, too
2024-07-08 21:27:42 +01:00
5ac7e1e9b2
write-fennel: set $PATH if lualinux is available
2024-07-08 21:18:02 +01:00
3df1ec76ff
cleanup whitespace and commas
...
* [] is now [ ]
* {} is now { }
* commas in arglists go at end of line not beginning
In short, I ran the whole thing through nixfmt-rfc-style but only
accepted about 30% of its changes. I might grow accustomed to more
of it over time
2024-06-30 17:16:28 +01:00
0d3218127f
remove unused makeWrapper input
2024-06-30 10:46:37 +01:00
e94bf62ec1
remove dead code (run deadnix)
2024-06-29 22:59:27 +01:00
16a2499d74
avoid makeWrapper on host, it requires bash
2024-06-29 22:36:05 +01:00
d4d8093f97
working l2tp-over-wwan stick example
2024-06-20 10:15:54 +01:00
7c9c801afc
rename isTrigger to restart-on-upgrade
...
we're moving away from "trigger" services to "controller" services,
and "restart-on-upgrade" is the name used by s6-rc
2024-06-16 12:58:06 +01:00
c4185617c0
a6-rc-up-tree wait for lock if needed
2024-06-15 15:36:07 +01:00
9540fc2641
add writeAshScriptBin (forgot to add file)
2024-06-15 15:04:56 +01:00
49d1703428
add s6-rc-up-tree: start reverse deps of controlled service
...
When s6-rc stops a service, it also stops everything that
depends on it. but when it starts a service it starts only
that service, so we have to go through the other services
depending on it and figure out if they should be started too.
2024-06-15 14:59:34 +01:00
e6ca5ea064
store derivations not just names for service deps
...
.. also controllers, contents. This is to make it possible (easier)
to work out transitive dependencies at build time
2024-06-11 14:01:06 +01:00
e6e4665a18
flip dependencies for triggered/controlled services
...
Instead of treating the trigger as the "main" service and the
triggered service as subsidary, now we treat the triggered
service as the service and the trigger as "subsidary". This
needs some special handling when we work out which services
go in the default bundle, but it works better for declaring
dependencies on triggered services because it means the
dependency runs after the triggered service comes up, not
just when the watcher-for-events starts
2024-06-09 22:37:45 +01:00
571adf84c0
inherit builtins.map
2024-06-07 16:55:45 +01:00
f091bbd706
devout: recognise attr,attrs when parsing search term string
2024-06-01 23:48:05 +01:00
04b068f7a3
delete unused code
2024-06-01 22:43:48 +01:00
53f57c1a8c
devout: support sysfs attributes for (grand*)parent device
2024-06-01 22:43:27 +01:00
19aba0d873
devout: support search for sysfs attributes
2024-06-01 21:20:41 +01:00
7d00b39249
rename attributes->properties when referring to uevent fields
...
properties: key-value pairs in the uevent message
attributes: file contents in sysfs
2024-06-01 12:17:49 +01:00
a3fca5bf05
devout: add functions to read sysfs attributes
2024-05-26 18:03:32 +01:00
af9200a136
skip symlink handing unless linkname was provided
2024-05-26 18:00:31 +01:00
58cd007ccc
barebones usb_modeswitch package
2024-05-22 18:54:49 +01:00
c0ef6ce282
list pkgs we need in bordervm build
...
it's a bit silly trying to build it with the whole liminix overlay
when it's a nixos system not a liminix system
2024-05-22 18:45:35 +01:00
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
8b69dcc209
pass entire config fragment to levitate, not just services
...
to make it useful we need to be able to set packages, passwords, ssh
keys etc
2024-04-29 20:07:01 +01:00
3d4e782929
devout: run tests in postBuild
...
because checkPhase is not executed when cross-compiling, and this
package is always only cross-compiled
2024-04-27 21:07:25 +01:00
1b6a05aec5
make uevent-watch use devout instead of direct netlink
2024-04-27 21:07:25 +01:00
80628a3d90
move event matching tests to devout
...
in preparation for future uevent-watch not needing to do
event matching
2024-04-27 21:07:25 +01:00
bf0cafffed
start devout alongside mdevd
...
ensure it starts before mdevd-coldplug so it can populate
its database
2024-04-26 20:52:12 +01:00
e49aba127c
devout: improve socket error handling
2024-04-26 20:49:23 +01:00
324465bc18
devout: write uevent KEY=value format to clients
2024-04-26 17:37:28 +01:00
b33249a050
devout: add readiness notification
2024-04-26 17:23:29 +01:00
b9c084415e
devout: handle readiness on netlink socket but no event
2024-04-26 17:20:33 +01:00
cf9cadd212
devout: replay relevant events to new subscriber
2024-04-26 17:20:33 +01:00
a116fe084a
devout: use socket constants from anoia.net.constants
2024-04-26 16:48:51 +01:00
74cf3e0711
add anoia.net.constants for SOCK_{STREAM,DGRAM} etc
...
we use an ugly bit of C preprocessor to get the values from
header files, because certain constants are different on MIPS
than on other architectures
2024-04-26 16:43:09 +01:00
cdb23b147c
convert anoia.fs to use lualinux
2024-04-25 21:14:37 +01:00
dbd1264352
convert anoia.fs to use lualinux instead of lfs
2024-04-24 20:44:32 +01:00
18335b95e3
devout: strip newlines from client terms
...
this is just to make testing with socat easier
2024-04-24 18:33:02 +01:00
6bee2f67ac
devout: add incoming netlink messages to database
2024-04-24 18:32:27 +01:00
b4ba3eea21
fix revents in unpack-pollfds
2024-04-24 18:31:26 +01:00
16af3984c9
add lualinux to fennelrepl
2024-04-24 18:30:34 +01:00
ce7e395295
devout test: replace minisock with lualinux
2024-04-24 18:29:24 +01:00
7e13e017eb
add readline suport to fennelrepl
2024-04-24 18:28:39 +01:00
bbf2f53c0e
cross-compile lualinux
2024-04-24 18:28:14 +01:00
032d0f8aca
add netlink socket
...
it's not hooked up to anything yet, but it proves we can
do this with lualinux
2024-04-23 23:34:25 +01:00
b8ac9e5279
convert devout from minisock to lualinux
2024-04-23 23:33:11 +01:00
72789984ce
add lualinux package
2024-04-23 22:41:38 +01:00
90d9d0e811
update minisock to not scribble on lua strings
2024-04-23 20:19:33 +01:00
97a8ae1c84
devout: add event loop and main run
function
2024-04-23 20:15:02 +01:00
52eb283a26
implement unsubscribe
...
and add ids to subscribe so that there's a unique identifier
to pass to unsubscribe
2024-04-23 20:12:46 +01:00
cbb1de804e
switch to minisock fork witj poll() call
...
this is likely to be temporary as minisock is getting
replaced with lualinux
2024-04-23 20:09:41 +01:00
f9c03998b8
implement subscriptions with callback
2024-04-21 13:19:17 +01:00
50de1b090f
add the rest of the test list (all we've thought of)
2024-04-21 11:22:26 +01:00
648382f64a
report bodyless tests as PENDING
2024-04-21 11:19:42 +01:00
e9370358ae
implement "remove" events
2024-04-21 11:19:06 +01:00
762ce7b6b8
cut/paste devout implementation into a real module
2024-04-20 22:48:00 +01:00
b1c0560f4f
implement fetch by path
2024-04-20 22:20:43 +01:00
e34135c41a
improve failed test reporting
2024-04-20 21:46:37 +01:00
712c9b266f
implement find
2024-04-20 18:42:42 +01:00
4df963996c
devout: add device
2024-04-20 18:24:10 +01:00
349bfecbb8
new package "devout", does nothing yet
2024-04-20 17:45:40 +01:00
450d3820b2
clean up uevent-watch test using writeFennel and mainFunction
...
requires less cavorting with globals and stuff
2024-04-20 16:53:43 +01:00
771585546d
import expect= where previously it was copy-pasted
2024-04-20 15:09:50 +01:00
73abf952d5
package minisock, a minimal Lua socket library
2024-04-20 15:09:17 +01:00
8af4e9fd5b
package anoia assert macros and point fennelrepl at them
2024-04-20 14:59:14 +01:00
7e19d80130
anoia: add assert macro module
...
contains expect and expect=
2024-04-20 14:04:32 +01:00
ea2b25168e
add uevent-watch, which toggles services based on uevent msgs
2024-04-15 21:15:07 +01:00
5564cf0554
add nellie.close
2024-04-14 22:45:29 +01:00
f3a13630d3
add multicast groups param to nellie.open
2024-04-14 22:45:29 +01:00
f233acf9ff
netlink uevent hello world
2024-04-14 22:45:29 +01:00
b231664a06
anoia: add basename, dirname
2024-04-11 23:11:20 +01:00
f4bf3029fa
anoia: alphabetize exports
2024-04-11 23:11:13 +01:00
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
a873dc6608
Merge commit 'efcfdcc'
2024-03-28 23:47:04 +00:00
2fb4756a7f
add soft restart option to liminix-rebuild
...
instead of doing a full reboot, it runs activate / and uses
s6-rc-update to install the new service database
2024-03-28 23:45:10 +00:00
76f11bcc93
liminix-rebuild: remove -f flag from reboot call
...
now we have timeouts in service definitions, shouldn't need this
any more
2024-03-28 21:37:47 +00:00
77f1a78331
ifwait block if s6-rc lock is held
...
otherwise it doesn't trigger the service if something else is
slow to start
2024-03-28 20:59:39 +00:00
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
8ac2c6cec1
support timeouts (default 30s) for starting s6-rc services
2024-03-28 20:58:47 +00:00
8879b2d1ba
fix rt2x00 wifi
2024-03-28 20:58:39 +00:00
e4ac7f19dc
fix ifwait deps
2024-03-16 20:16:49 +00:00
f164f19d95
service starts and stops
2024-03-06 23:19:47 +00:00
dd4ab41f6a
rename run-event
2024-03-06 23:19:47 +00:00
5d5dff6729
WIP add failing test that service starts
2024-03-06 23:19:47 +00:00