Files
printserver/openspec/changes/add-cups-printserver-container/tasks.md
T
juergen 30c685e085 Print via Brother BR-Script3 PostScript instead of the vendor driver
The HL-4150CDN emulates PostScript 3, so CUPS converts client documents to PostScript and forwards them to socket://<ip>:9100. The official BR-Script3 PPD turns device options (tray, duplex, colour, media type, toner save, ...) into setpagedevice instructions. This drops the i386 multiarch runtime and the broken Brother vendor filter chain, and removes the unused Brother Linux packages from the repo.
2026-10-18 16:54:33 +02:00

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