# 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://: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