Release 0.1.37 deployment prep

This commit is contained in:
ekklesia
2026-09-06 17:30:30 -05:00
parent 4862e29f57
commit 7f66228b9e
19 changed files with 866 additions and 79 deletions
+2 -3
View File
@@ -13,9 +13,8 @@ DVD_ENABLED=true
Then restart the session (reboot, or restart `classroom-dock`).
With `DVD_ENABLED=false`, or the key absent, the DVD button is not built
at all and no drive polling happens. Older endpoints get a commented
`DVD_ENABLED=false` appended on upgrade so the option is discoverable,
which leaves their behaviour unchanged.
at all and no drive polling happens. The LIVE placeholder is controlled
independently by `LIVE_ENABLED`; see [live.md](live.md).
## Behaviour
+19
View File
@@ -0,0 +1,19 @@
# Sanctuary LIVE dock capability
Sanctuary live viewing is not implemented. The existing placeholder can be
shown on development devices or hidden on ordinary classrooms with
`/etc/ekklesia-classroom/device.conf`:
```
LIVE_ENABLED=false
```
With `LIVE_ENABLED=false`, or when the key is absent, the LIVE button is not
built at all, so it leaves no empty space and starts no live-specific work.
With `LIVE_ENABLED=true`, the current LIVE icon and placeholder notification
appear unchanged. This flag does not enable playback or start a streaming
service.
Older endpoints receive one commented `LIVE_ENABLED=false` setting on
upgrade. Existing device configuration values and comments are preserved.
+42
View File
@@ -0,0 +1,42 @@
# Classroom networking
Ethernet remains the normal classroom connection. The package also installs
and enables NetworkManager so an administrator can add Wi-Fi when a room needs
it; there is no classroom Wi-Fi screen and no network name or password in the
package.
## Add Wi-Fi
From a terminal or SSH session, run:
```
sudo nmtui
```
Choose **Activate a connection**, select the church Wi-Fi network, enter its
password, and activate it. NetworkManager saves the connection as a system
connection and reconnects it automatically after reboot.
Useful checks:
```
nmcli device status
nmcli connection show
systemctl status NetworkManager
```
There is nothing to configure on a computer without Wi-Fi hardware.
NetworkManager starts normally, sees no Wi-Fi device, and Ethernet continues
to work.
## Existing Ethernet configuration
Do not remove or rewrite `/etc/network/interfaces` as part of this procedure.
Debian Trixie's NetworkManager configuration uses the `ifupdown` plugin with
`managed=false`, so any Ethernet interface declared there remains under
ifupdown's control. NetworkManager manages other interfaces, including Wi-Fi.
This preserves an existing static or ifupdown Ethernet setup.
The package disables `NetworkManager-wait-online.service`; no classroom
feature is allowed to hold boot waiting for Wi-Fi or Internet access. Saved
connections still reconnect automatically.
+77
View File
@@ -0,0 +1,77 @@
# Classroom printing
The package installs and enables CUPS, its client/filter stack, and Debian's
compressed Foomatic PPD database. Chrome is configured to open the system
print dialog, which shows the queues configured in CUPS.
The target Ricoh Aficio MP C3502 supports PCL 5c and PCL 6 as standard;
PostScript 3 is optional. Debian Trixie does not provide a model-specific
C3502 PPD in the installed driver set, so the classroom helper uses Trixie's
recommended generic color PCL 6/PCL XL driver. This works with the printer's
standard language and does not require a vendor binary.
## Configure the church color printer
Give the helper the printer's IP address or DNS name:
```
sudo classroom-printer-setup 10.20.30.40
```
This creates or updates one queue named `Classroom_Color`, points it directly
to `socket://10.20.30.40:9100`, enables it, accepts jobs, and makes it the
system default. The printer's address is never stored in the package.
An explicit URI is also accepted when deployment requires another supported
transport:
```
sudo classroom-printer-setup ipp://10.20.30.40/ipp/print
sudo classroom-printer-setup --no-default socket://10.20.30.40:9100
```
The command is idempotent: running it again updates the same queue. It does not
contact the printer while configuring CUPS, and an unreachable printer only
leaves jobs queued; it never affects boot.
Automatic remote queue browsing is disabled. `cups-browsed` is stopped and
disabled if another package installed it, so unrelated advertised label and
check-in printers are not turned into local classroom queues.
## Administration
List the available Debian drivers, including the selected PCL path:
```
lpinfo -m
lpinfo -m | grep -i -E 'Ricoh|PCL|PostScript|IPP Everywhere'
```
Show the classroom queue, its URI, and the system default:
```
lpstat -p Classroom_Color -v
lpstat -d
```
Set the default manually:
```
sudo lpadmin -d Classroom_Color
```
Print CUPS's test page:
```
lp -d Classroom_Color /usr/share/cups/data/testprint
```
Inspect or cancel queued jobs:
```
lpstat -o Classroom_Color
cancel -a Classroom_Color
```
The printer language choice is based on Ricoh's published
[MP C3002/C3502 specifications](https://assets.ricoh-usa.com/j2jqn9lauv41/1CzJla6qwny2d9oBVHHlID/5bfa366a01cf82162ea24287f99c8af9/aficiompc3002.pdf).
+10 -1
View File
@@ -51,8 +51,17 @@ classroom package and apply as soon as Chrome exists.
Only for rooms with `DVD_ENABLED=true`. See [dvd.md](dvd.md).
## Networking and printing
NetworkManager and CUPS are Debian package dependencies, not deferred network
provisioning steps. Their services are enabled by the package and neither
requires Internet access or hardware to be present.
- Wi-Fi administration: [networking.md](networking.md)
- Church color printer setup: [printing.md](printing.md)
## What provisioning does not do
It never upgrades or reconfigures anything already installed, and it
The boot provisioning command never upgrades or reconfigures anything already installed, and it
never touches a repository it did not add. Classroom software updates
are the OTA channel's job, not this.
+43
View File
@@ -19,6 +19,31 @@ before promoting to stable with `./update_stable.sh`.
- [ ] A machine with no network still boots to a working shell, and
provisioning succeeds at a later boot once it is online
## Networking
- [ ] `nmtui` is installed and `NetworkManager.service` is enabled
- [ ] An Ethernet interface declared in `/etc/network/interfaces` remains
managed by ifupdown and keeps its existing address
- [ ] `sudo nmtui` can save and activate a Wi-Fi connection
- [ ] The saved Wi-Fi connection reconnects after reboot
- [ ] A machine with no Wi-Fi adapter reaches the classroom normally without
an online-wait delay or NetworkManager failure
- [ ] Ethernet-only operation is unchanged
## Printing
- [ ] `cups.service` is enabled and `lpstat -r` reports that the scheduler runs
- [ ] `lpinfo -m` contains the generic color PCL 6/PCL XL driver documented in
[printing.md](printing.md)
- [ ] `sudo classroom-printer-setup <printer-ip>` creates only
`Classroom_Color`, enables it, and makes it the system default
- [ ] Repeating the helper updates the same queue without creating a duplicate
- [ ] Chrome opens the system print dialog and shows the configured queue
- [ ] Unrelated label/check-in printers are not automatically added
- [ ] The CUPS test page prints in color on the Ricoh MP C3502
- [ ] With the Ricoh powered off, the classroom still boots normally and a job
simply remains queued
## UI scale
UI_SCALE sets sway's output scale, so it scales the whole session.
@@ -169,6 +194,19 @@ With `DVD_ENABLED=true`:
- [ ] Commercial CSS disc plays without anyone having run codec setup
by hand
## Sanctuary LIVE capability
With `LIVE_ENABLED=false`:
- [ ] No LIVE button or spacing hole appears in the dock
- [ ] No live-specific service or process starts
With `LIVE_ENABLED=true`:
- [ ] LIVE appears after DVD when DVD is enabled, and after Browser otherwise
- [ ] Clicking it shows the existing placeholder notification
- [ ] No live playback is attempted
### DVD mode
- [ ] Pressing DVD covers the **whole** display immediately, dock and
@@ -206,3 +244,8 @@ With `DVD_ENABLED=true`:
- [ ] SHA-256 verification passes
- [ ] Install succeeds and the endpoint reboots
- [ ] Everything above still works after the update
- [ ] Upgrade from 0.1.36 preserves every existing `device.conf` value
- [ ] `LIVE_ENABLED=false` is appended exactly once on upgrade and remains
single after reinstall
- [ ] `tools/validate-trixie-release.sh` passes against the 0.1.37 package and
the 0.1.36 package