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/.
This commit is contained in:
1 parent
30c685e085
commit
adaa11e416
6 files changed
+123
No files matched your search
@@ -0,0 +1,57 @@
|
||||
# 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://<ip>: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.
|
||||
Reference in new issue
Block a user