Moves the completed change to openspec/changes/archive/2026-10-18-add-cups-printserver-container/ and syncs the printserver/cups capability into openspec/specs/.
34 lines
2.3 KiB
Markdown
34 lines
2.3 KiB
Markdown
# Tasks
|
|
|
|
## 1. Repository initialization
|
|
- [x] 1.1 Initialize jujutsu repository with `jj git init` in repo root and verify `.jj` directory exists
|
|
|
|
## 2. BR-Script3 PostScript PPD asset
|
|
- [x] 2.1 Extract Brother's official HL-4150CDN BR-Script3 PPD (`eng/BR4150_2.PPD`) from the vendor Windows driver archive and commit it under `assets/Brother HL-4150CDN/ppd/BR4150_2.PPD`
|
|
- [x] 2.2 Document the provenance and the option→`setpagedevice` mapping in `assets/Brother HL-4150CDN/ppd/README.md`
|
|
|
|
## 3. Container build
|
|
- [x] 3.1 Create Containerfile based on Debian stable with CUPS, cups-filters, Avahi, D-Bus, Ghostscript and Poppler (no i386 multiarch)
|
|
- [x] 3.2 Install the BR-Script3 PPD into the CUPS model directory in the Containerfile
|
|
- [x] 3.3 Remove the Brother vendor `.deb` installation, i386 multiarch and the 32-bit loader setup from the Containerfile
|
|
- [x] 3.4 Keep cupsd.conf (listen on all interfaces, share printers, DNS-SD) and the required runtime directories
|
|
- [x] 3.5 Set up the startup script to run dbus, avahi-daemon and cupsd, and create the queue
|
|
- [x] 3.6 Expose ports 631/tcp and 5353/udp in the Containerfile
|
|
|
|
## 4. Printer configuration
|
|
- [x] 4.1 Create the queue with the BR-Script3 PPD and a raw AppSocket URI by default (`socket://<ip>:9100`)
|
|
- [x] 4.2 Keep environment-based configuration (`PRINTER_IP`, `PRINTER_PROTOCOL`, `PRINTER_URI`, `PRINTER_NAME`, `PRINTER_DESCRIPTION`, `PPD_FILE`)
|
|
- [x] 4.3 Share the queue and set it as default; verify AirPrint capabilities (URF, sides, colour)
|
|
|
|
## 5. Documentation and testing
|
|
- [x] 5.1 Update README for the PostScript/BR-Script3 approach and the client matrix (macOS, iOS/iPadOS, Linux, Windows)
|
|
- [x] 5.2 Build the image with podman and verify it builds
|
|
- [x] 5.3 Run the container and verify CUPS is reachable and the queue is shared/discoverable
|
|
- [x] 5.4 Submit a job (colour + duplex) and verify it prints correctly
|
|
- [x] 5.5 Verify `PRINTER_IP`/`PRINTER_PROTOCOL`/`PRINTER_NAME` derive the expected queue URI and advertised name
|
|
|
|
## 6. Cleanup
|
|
- [x] 6.1 Add `.gitignore` for macOS metadata and stop tracking existing `.DS_Store` files
|
|
- [x] 6.2 Remove the unused Brother Linux vendor packages (`lpr-driver/`, `cupswrapper/`, `installer/`) from the repository
|
|
- [x] 6.3 Prune the obsolete `printserver:amd64` image, the test containers and scratch files
|