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