# Proposal ## Why Run a Podman container that shares the Brother HL-4150CDN network printer over IPP/AirPrint, so clients on macOS, iOS/iPadOS, Linux and Windows can print. The HL-4150CDN already emulates BR-Script3 (PostScript 3) and accepts PostScript on its AppSocket/LPD ports, so the container can forward PostScript directly to the printer instead of shipping Brother's 32-bit Linux CUPS wrapper plus Ghostscript rasterisation. This removes the i386 dependency, the multiarch runtime and the fragile vendor filter chain. The previous approach (Brother Linux `.deb` packages) turned out not to work in `debian:bookworm-slim`: the vendor filter `filterhl4150cdn` needs `file` (with `a2ps` as a fallback), which are not installed, so it exits with an error and produces no output. The official BR-Script3 PPD avoids that entire code path. ## What Changes - Create a Containerfile for Podman based on Debian stable running CUPS, Avahi and D-Bus (no i386 multiarch). - Install Brother's official **BR-Script3 PPD** (committed under `assets/Brother HL-4150CDN/ppd/`) so CUPS emits device options — paper source (tray), duplex and colour/mono, plus media type, print quality, toner save and secure print — as PostScript `setpagedevice`. - Point the queue at the printer with a raw AppSocket URI (`socket://:9100`) by default. - Convert incoming client formats (URF/Apple Raster, PWG Raster, PDF, PostScript) to PostScript inside CUPS and pass them through to the printer's PostScript interpreter. - Share the queue over IPP and advertise it via mDNS/DNS-SD (Avahi/AirPrint). - Keep runtime configuration (printer address, protocol, queue name) in environment variables. - Document the supported client matrix. ## Capabilities ### New Capabilities - `printserver/cups`: Containerised CUPS print server which shares the Brother HL-4150CDN over IPP/AirPrint and prints by sending PostScript (BR-Script3) directly to the printer. ### Modified Capabilities None ## Impact - Containerfile plus supporting `cupsd.conf` and `entrypoint.sh` in the repository root. - Uses `assets/Brother HL-4150CDN/ppd/BR4150_2.PPD`. - Runtime ports: CUPS/IPP (631/tcp), mDNS/DNS-SD (5353/udp). - No 32-bit runtime libraries; the image no longer depends on the host CPU architecture. - Windows clients install Brother's own BR-Script3 Windows driver client-side. - The unused Brother Linux `.deb` packages previously under `assets/Brother HL-4150CDN/` have been removed.