Uploaded image for project: 'RHEL'
  1. RHEL
  2. RHEL-6518

Samba printing to a CUPS driverless queue fails (everywhere driver works)

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Undefined Undefined
    • None
    • rhel-9.2.0
    • cups-filters
    • None
    • None
    • rhel-sst-cs-stacks
    • ssg_core_services
    • 5
    • False
    • Hide

      None

      Show
      None
    • None
    • None
    • None
    • None
    • If docs needed, set a value
    • None

      Description of problem:

      We have a CUPS print server that has a printer queue using a PPD for a specific queue.

      Our clients are in a different subnet and use cups-browsed to poll this print server.

      On EL8, this resulted in cups-browsed generating a PPD file similar to the PPD on the print server. On EL9, the generated PPD file on the client uses the 'driverless' driver.

      The EL9 client is also a samba server that shares those (remote) printers with windows clients. This no longer works correctly after upgrading to EL9.

      When a Windows user prints a job to the printer shared by samba, it fails to print.

      When we look at the job file in the queue on the upstream CUPS server, it seems the EL9 client has indicated that the document type is application/pdf. This results in the print server trying to parse the PDF file but this fails as the submitted document is not a PDF, but PJL from the windows client.

      As a test, I've created a local queue on the EL9 client that uses the "everywhere" for the IPP printer on the upstream print server. This generates a PPD file using the ippeve (IPP everywhere) driver. When a windows client prints a job to this queue, it works. Looking at the job file on the upstream print server, the document-format is set to application/vnd.cups-raw.

      So it seems that when the driverless driver is used, all documents that are sent to the upstream CUPS server have application/pdf as their document type even if the file is not a PDF. The everywhere driver seems to have this set to vnd.cups-raw

      Attached you can find the PPD files used on the upstream print server (ulsysgrp-upstream.ppd), the one generated by cups-browsed (ulsysgrp-drvless.ppd), and the one generated by creating a manual queue using the everywhere driver (ulsysgrp-everywhere.ppd).

      I've also attached the cups error log from the upstream CUPS server when a job is submitted to the driverless queue.

      Version-Release number of selected component (if applicable):
      cups-filters-1.28.7-11.el9_2.1.x86_64

      Steps to Reproduce:
      1. Set up a CUPS print server and share a printer
      2. Set up a CUPS client (in a different subnet) that browsepolls the print server using cups-browsed. Verify that the generated PPD uses the drvless driver.
      3. On the CUPS client from step 2, set up samba to share the printer to windows clients
      4. On a windows client, install a driver for the printer and print a document to the queue on the samba server

      Actual results:
      The job is transmitted from the CUPS client to the CUPS server with the document type set to application/pdf. The document fails to print as it can not be parsed by the upstream CUPS server as PDF.

      Expected results:
      The job is transmitted as "vnd.cups-raw" similar to how the everywhere driver does it. The upstream CUPS server will send the job to the printer unchanged and the document prints.

      Additional info:

              zdohnal@redhat.com Zdenek Dohnal
              riktheys_esat rik.theys@esat.kuleuven.be (Inactive)
              Zdenek Dohnal Zdenek Dohnal
              Petr Dancak Petr Dancak
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated: