Files
printserver/openspec/changes/archive/2026-10-18-add-cups-printserver-container/tasks.md
T
juergen adaa11e416 Archive the add-cups-printserver-container change
Moves the completed change to openspec/changes/archive/2026-10-18-add-cups-printserver-container/ and syncs the printserver/cups capability into openspec/specs/.
2026-10-18 16:54:54 +02:00

2.3 KiB

Tasks

1. Repository initialization

  • 1.1 Initialize jujutsu repository with jj git init in repo root and verify .jj directory 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 under assets/Brother HL-4150CDN/ppd/BR4150_2.PPD
  • 2.2 Document the provenance and the option→setpagedevice mapping in assets/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 .deb installation, 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_NAME derive the expected queue URI and advertised name

6. Cleanup

  • 6.1 Add .gitignore for macOS metadata and stop tracking existing .DS_Store files
  • 6.2 Remove the unused Brother Linux vendor packages (lpr-driver/, cupswrapper/, installer/) from the repository
  • 6.3 Prune the obsolete printserver:amd64 image, the test containers and scratch files