Commit Graph

3 Commits (kiosk)

Author SHA1 Message Date
Dustin b08263688b Begin implementing kiosk browser
This commit introduces the _kiosk.service_ unit, which launches `sway`
to start a Wayland session, which in turn launches Firefox.  The
`policies.json` file configures Firefox in a sort of kiosk mode,
disabling most features and blocking all but the desginated sites.
Unfortunately, running `firefox --kiosk` doesn't actually work: Firefox
apparently runs, but doesn't draw anything on the screen.

Note that we have to launch Firefox by its "real" path, since
`/usr/bin/firefox` is a Bash script, and Bash is not installed.
Fortunately, the wrapper script doesn't do anything we really care
about, so bypassing it is fine.
2025-01-04 07:30:23 -06:00
Dustin 6dfea85036 Install Firefox from Gentoo binpkg
Unfortunately, even building Firefox with GCC fails:

> 3:30.02 [gecko-profiler 0.1.0] /../lib/gcc/aarch64-unknown-linux-gnu/14/include/g++-v14/cstdlib:79:15: fatal error: 'stdlib.h' file not found
> 3:30.02 [gecko-profiler 0.1.0] thread 'main' panicked at tools/profiler/rust-api/build.rs:104:10:
> 3:30.02 [gecko-profiler 0.1.0] Unable to generate bindings: ClangDiagnostic("/../lib/gcc/aarch64-unknown-linux-gnu/14/include/g++-v14/cstdlib:79:15: fatal error: 'stdlib.h' file not found\n")

Clearly, something is misconfigured, because `stdlib.h` does indeed
exist.  I am not sure what, though, and I am getting tired of messing
with this.

Fortunately, the official Gentoo binary package project has a build of
_www-client/firefox_ for ARM64.  It has a rather different USE flag
configuration than what we did, though, so we have to pull in quite a
few more dependencies.

We can't just add _www-client/firefox_ to `install.packages` because
Aimee OS runs `emerge` with `--getbinpkgonly`, which implies
`--binpkg-changed-deps=y`.  This since we want to build everything
_except_ Firefox locally, the dependency graph is quite a bit different,
so Portage ignores the binary package and will try to build
_www-client/firefox_ from source.

To work around this limitation, we need to install Firefox manually in
the `customize.sh` script in two phases.  First, we install all of its
dependencies in the build root (`/usr/aarch64-…`), but not Firefox
itself, to get binpkgs for them.  Then, we install _www-client/firefox_
in the target root (`/mnt/gentoo`) with the `--getbinpkg` and
`--usepkgonly` flags.

Hopefully, one day I can figure out how to cross-compile Firefox (and it
doesn't take days to build once I do), and we can remove this hackery.
2025-01-02 12:23:26 -06:00
Dustin 04232e6a06 customize: Add script
Deleting the initial password for `root` so we can log in to the serial
console for debugging.

Enabling _wpa_supplicant_ to connect to WiFi automatically.
2024-12-30 17:57:04 -06:00