OpenPrinting / OpenPrinting/foo2zjs
Foomatic-generated PPD for foo2ddst printers lacks proper *1284DeviceID, causing Windows IPP Class Driver to misclassify printer as "Unspecified" device
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 8
- Forks
- 5
- PR merge metrics
- No merged PRs in 30d
Description
This is a related but distinct issue from #<số_issue_trước_nếu_có>, found while
debugging why Windows 11 could not properly add the shared CUPS printer for
Ricoh SP112 (foo2ddst) over the network, while an alternative PPD
(https://github.com/vaginessa/ricoh-sp112-ppd) worked fine for the same task.
Observation
Comparing printer-device-id via ipptool between the two setups on the
same printer/CUPS server:
Working PPD (vaginessa's RICOH_Aficio_SP_112.ppd, explicit *1284DeviceID):
printer-device-id = MFG:MFPrinter ;MDL:Laser Pro LL;CMD:AUTOMATIC,PJL,GDI_RL;
DES:MFPrinter Laser Pro LL;CLS:PRINTER;VER:v1.03e ;
NS:L507124L8090042;
Foomatic-generated PPD for foo2ddst (Debian package
printer-driver-foo2zjs 20200505dfsg0-3+b1, file
foomatic:.../foo2zjs/Ricoh-SP_112.ppd):
*1284DeviceID: "DRV:Dfoo2ddst,R1,M0,TF;"
The foomatic-generated value is NOT a standards-compliant IEEE 1284 Device
ID (missing MFG:, MDL:, and critically CLS:PRINTER;). It appears to be a
CUPS/foomatic-rip internal fallback format, not a real device
identification string.
Impact
On Windows 11, when adding this printer over the network via the native
IPP/Bonjour discovery flow, Windows' "Microsoft IPP Class Driver" creates
the device but categorizes it as "Unspecified"/"Categories: Unknown"
instead of "Printers"/"Categories: Printer", and the connection hangs at
"Connecting..." indefinitely — the printer never becomes usable from
Windows. No "Print queue" device function is created either.
Fix that resolved it locally
Manually editing the installed PPD to replace the *1284DeviceID line with
a standards-compliant one:
*1284DeviceID: "MFG:Ricoh;MDL:SP 112;CMD:PJL,DDST;CLS:PRINTER;DES:Ricoh Aficio SP 112;"
...then restarting cupsd, removing the stale "Unspecified" device on the
Windows side, and re-adding the printer, resulted in Windows correctly
showing Manufacturer: Ricoh, Model number: SP 112, Categories: Printer,
with a working Print queue device function.
Suggested fix upstream
The foomatic PPD template/generation for foo2ddst-based printers (and
possibly other foo2* drivers) should emit a standards-compliant
*1284DeviceID with at least MFG:, MDL:, and CLS:PRINTER: fields, rather
than falling back to the internal "DRV:D,..." format, since that
fallback format breaks Windows' printer categorization during IPP/Bonjour
network discovery.
Happy to test further or provide more captured IPP attribute dumps if
useful.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing how the foomatic template generates the foo2ddst PPD, using the generated foo2zjs/Ricoh-SP_112.ppd and its *1284DeviceID line as the reference. Compare the output with the standards-compliant example, then use ipptool to verify the resulting printer-device-id includes MFG:, MDL:, and CLS:PRINTER: fields.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- operating-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100