97 Commits

Author SHA1 Message Date
AuxXxilium
834bc663de lighttpd: stop discarding the startup error
The generated S90lighttpd ran lighttpd with 2>/dev/null, so a config
parse error, a failed bind, a missing module or an unwritable log path
all produced exactly "FAIL" and nothing else. That is the one message
that says why the web UI is not there.

Append stderr to /var/log/lighttpd-start.log instead.
2026-09-04 20:56:01 +02:00
AuxXxilium
755fc77e33 Switch the web UI from thttpd to lighttpd
Buildroot removed thttpd (Config.in.legacy, "no longer maintained
actively by upstream"), so arc-buildroot-essential moves to lighttpd
1.4.82 as part of the 6.18 kernel bump. This is the loader side of that
change; the two have to land together.

darkhttpd was ruled out because the web UI is CGI-driven - eight scripts
under /var/www/data, with auth.cgi reading /etc/shadow - and darkhttpd
has no CGI support at all. The CGI scripts themselves use plain CGI/1.1
(REQUEST_METHOD, QUERY_STRING, CONTENT_LENGTH) with no thttpd-specific
behavior, so they are unchanged.

functions.sh still overrides the init script when repacking the initrd,
so it now writes S90lighttpd. Two differences from the thttpd version:

- thttpd took its document root, port and CGI pattern on the command
  line. lighttpd reads them from a config file, so the script writes a
  small wrapper to /var/run that includes /etc/lighttpd/lighttpd.conf
  and overrides the port from /etc/arc.conf.

- the port override uses ":=" (force-assign). A plain "=" on a key the
  included config already set is a fatal "Duplicate config variable"
  error in lighttpd, not a last-one-wins override.

Running as root is preserved via server.username/groupname in the
shipped config, since auth.cgi and change-password.cgi touch /etc/shadow.

init.sh watches /var/run/lighttpd.pid instead of thttpd.pid, and the
port-change handler in arc-functions.sh restarts S90lighttpd.
2026-09-04 15:41:07 +02:00
AuxXxilium
1fc70a00f2 grub: size image to 3700M to fit a 4GB device
bs=1M is MiB while stick capacity is advertised in decimal GB, so 3850
produced a 4.04 GB image that does not fit a 4GB device at all. 3700 MiB
is 3.88 GB, leaving a 3.0% margin under 4,000,000,000 B.

That is the same margin as the earlier seek=1850 (1.94 GB against a 2GB
device, 00409cfa), and it also clears real sticks that report less than
a full 4 GB. p3 ends up at 3600M.
2026-08-23 12:51:53 +02:00
AuxXxilium
b5cac17652 grub: reduce image size to 3750M
Trims 100M off the total, leaving p3 at 3649M since p1 and p2 stay at
50M each.
2026-08-23 12:49:50 +02:00
AuxXxilium
824faa4703 grub: strip locales and stock starfield theme from image
The locale prune was commented out in 617af555 and had the wrong path
anyway: grub-install copies from the staged share/grub tree, so removing
share/locale alone left the 42 .mo files (~6 MB, joke locales included)
that actually land in boot/grub/locale.

Also drop GRUB's bundled starfield example theme (~2.8 MB). It is never
referenced: grub.cfg points at ${prefix}/theme/theme.txt, which getTheme
fills from the arc-theme release at build time.
2026-08-23 11:57:44 +02:00
AuxXxilium
28a5410c9a grub: increase image size to 3850M
Grows partition 3, which holds the kernels, modules and the DSM cache,
since p1 and p2 stay fixed at 50M each.
2026-08-23 11:44:59 +02:00
AuxXxilium
0005cf4804 webui: recover from a stale thttpd pidfile
thttpd does not remove its pidfile when it dies, so a crash left the
file behind pointing at a dead pid. The boot guard only tested that the
file existed, concluded the server was up and skipped the restart, so
nothing was listening while the loader carried on and reported an ip.
That is the connection refused on a running system. Test the pid with
kill -0 instead and clear the file before restarting.

The shipped init script had no monitor loop to catch this later, and its
stop() bailed out with FAIL when the pidfile was missing, so restart
could not recover a thttpd that was running without one. Fall back to
killall in that case, and never signal a recorded pid that is no longer
alive since the number may have been recycled.

loaderPorts compared the new port against HTTPPORT, which arc.conf had
already been rewritten to hold, so the restart was skipped on a real
change. Capture the running port before the rewrite.
2026-08-11 20:59:22 +02:00
AuxXxilium
d7f9a5e7d2 tree: update more
Signed-off-by: AuxXxilium <info@auxxxilium.tech>
2026-06-28 01:05:18 +02:00
AuxXxilium
6aec3dda79 build: fix
Signed-off-by: AuxXxilium <info@auxxxilium.tech>
2026-06-27 02:38:32 +02:00
AuxXxilium
15d50990c6 build: simplify
Signed-off-by: AuxXxilium <info@auxxxilium.tech>
2026-06-13 15:19:40 +02:00
AuxXxilium
1063f8697c workflow: rework
Signed-off-by: AuxXxilium <info@auxxxilium.tech>
2026-05-25 11:46:25 +02:00
AuxXxilium
58c4e42830 functions: rewrite
Signed-off-by: AuxXxilium <info@auxxxilium.tech>
2026-05-24 12:21:53 +02:00
AuxXxilium
8896c7d9f1 webui: fix
Signed-off-by: AuxXxilium <info@auxxxilium.tech>
2026-05-02 14:20:08 +02:00
AuxXxilium
96bb750c90 webui: update more
Signed-off-by: AuxXxilium <info@auxxxilium.tech>
2026-05-02 13:27:07 +02:00
AuxXxilium
617af55537 grub: build update
Signed-off-by: AuxXxilium <info@auxxxilium.tech>
2026-03-01 00:35:00 +01:00
AuxXxilium
c7ff5b8a2d functions: fix typo
Signed-off-by: AuxXxilium <info@auxxxilium.tech>
2026-02-18 20:58:31 +01:00
AuxXxilium
1e045067d5 functions: fix more
Signed-off-by: AuxXxilium <info@auxxxilium.tech>
2026-02-18 20:54:22 +01:00
AuxXxilium
a8996c9a6b tree: fix more
Signed-off-by: AuxXxilium <info@auxxxilium.tech>
2026-02-18 20:48:22 +01:00
AuxXxilium
6773c8ac23 tree: change to all-in-one
Signed-off-by: AuxXxilium <info@auxxxilium.tech>
2026-02-18 20:45:53 +01:00
AuxXxilium
baba5d2ba0 tree: update logic
Signed-off-by: AuxXxilium <info@auxxxilium.tech>
2026-01-23 19:38:42 +01:00
AuxXxilium
eed409bf63 build: update more
Signed-off-by: AuxXxilium <info@auxxxilium.tech>
2025-12-28 18:51:41 +01:00
AuxXxilium
6fcb96cc88 build: update
Signed-off-by: AuxXxilium <info@auxxxilium.tech>
2025-12-28 15:54:15 +01:00
AuxXxilium
7b4443e20f tree: cleanup
Signed-off-by: AuxXxilium <info@auxxxilium.tech>
2025-10-15 13:05:20 +02:00
AuxXxilium
f2154f3ed3 build: update
Signed-off-by: AuxXxilium <info@auxxxilium.tech>
2025-10-04 12:46:59 +02:00
AuxXxilium
df6a317f0f tree: more fixes
Signed-off-by: AuxXxilium <info@auxxxilium.tech>
2025-09-28 16:19:33 +02:00
AuxXxilium
cb764baf7a grub: rework more
Signed-off-by: AuxXxilium <info@auxxxilium.tech>
2025-09-24 17:06:05 +02:00
AuxXxilium
13ac69bc9c grub: update build
Signed-off-by: AuxXxilium <info@auxxxilium.tech>
2025-09-22 21:42:41 +02:00
AuxXxilium
cfee8252fe grub: rework build
Signed-off-by: AuxXxilium <info@auxxxilium.tech>
2025-09-21 20:25:23 +02:00
AuxXxilium
668bf05f37 tree: rework more
Signed-off-by: AuxXxilium <info@auxxxilium.tech>
2025-09-21 20:09:52 +02:00
AuxXxilium
e67454617c functions: update
Signed-off-by: AuxXxilium <info@auxxxilium.tech>
2025-09-13 13:31:40 +02:00
AuxXxilium
4b28907835 build: update
Signed-off-by: AuxXxilium <info@auxxxilium.tech>
2025-08-03 16:35:29 +02:00
AuxXxilium
00409cfa9f grub: change image size to 1850MB (to match 2GB space device)
Signed-off-by: AuxXxilium <info@auxxxilium.tech>
2025-07-06 21:28:19 +02:00
AuxXxilium
8f9d8c9251 build/grub: update
Signed-off-by: AuxXxilium <info@auxxxilium.tech>
2025-06-20 15:54:57 +02:00
AuxXxilium
ed19549eb8 functions: update
Signed-off-by: AuxXxilium <info@auxxxilium.tech>
2025-05-15 21:22:04 +02:00
AuxXxilium
ebd8a91775 tree: optimization
Signed-off-by: AuxXxilium <info@auxxxilium.tech>
2025-05-14 17:48:49 +02:00
AuxXxilium
7e7b99e602 tree: optimize more
Signed-off-by: AuxXxilium <info@auxxxilium.tech>
2025-05-03 20:47:57 +02:00
AuxXxilium
f8c37423fc grub: expand space
Signed-off-by: AuxXxilium <info@auxxxilium.tech>
2025-04-22 20:38:55 +02:00
AuxXxilium
7a61c1927a tree: cleanup
Signed-off-by: AuxXxilium <info@auxxxilium.tech>
2025-02-16 19:14:42 +01:00
AuxXxilium
62735b0e3e build: update
Signed-off-by: AuxXxilium <info@auxxxilium.tech>
2025-02-05 20:16:33 +01:00
AuxXxilium
6f8bd7034c tree: add missing
Signed-off-by: AuxXxilium <info@auxxxilium.tech>
2025-02-05 17:33:07 +01:00
AuxXxilium
e7688433ef tree: cleanup
Signed-off-by: AuxXxilium <info@auxxxilium.tech>
2025-02-03 19:10:33 +01:00
AuxXxilium
1ea4215393 grub: shrink it down
Signed-off-by: AuxXxilium <info@auxxxilium.tech>
2025-01-31 20:47:52 +01:00
AuxXxilium
9b2f7b6f89 tree: merge all to one
Signed-off-by: AuxXxilium <info@auxxxilium.tech>
2025-01-21 20:06:29 +01:00
AuxXxilium
cdfb0cc6bd func: fix to match latest changes
Signed-off-by: AuxXxilium <info@auxxxilium.tech>
2025-01-19 02:05:11 +01:00
AuxXxilium
d8db7bbbab tree: optimize code
Signed-off-by: AuxXxilium <info@auxxxilium.tech>
2025-01-15 19:54:15 +01:00
AuxXxilium
eec2393740 tree: update
Signed-off-by: AuxXxilium <info@auxxxilium.tech>
2025-01-15 01:46:34 +01:00
AuxXxilium
9cef565971 tree: more rewrite
Signed-off-by: AuxXxilium <info@auxxxilium.tech>
2025-01-14 18:10:50 +01:00
AuxXxilium
e552595b99 tree: cleanup
Signed-off-by: AuxXxilium <info@auxxxilium.tech>
2025-01-03 18:04:27 +01:00
AuxXxilium
9e688e76ce build: modify arc
Signed-off-by: AuxXxilium <info@auxxxilium.tech>
2025-01-03 16:54:21 +01:00
AuxXxilium
dba6e0c373 grub: update
Signed-off-by: AuxXxilium <info@auxxxilium.tech>
2025-01-01 17:39:27 +01:00