http://bugzilla.opensuse.org/show_bug.cgi?id=1065543 Bug ID: 1065543 Summary: [CUPS] Include some unbuilt-by-default utilities in package (most important: `testipp`) Classification: openSUSE Product: openSUSE Distribution Version: Leap 42.3 Hardware: All OS: Other Status: NEW Severity: Enhancement Priority: P5 - None Component: Printing Assignee: jsmeix@suse.com Reporter: kurt.pfeifle@gmail.com QA Contact: jsmeix@suse.com Found By: --- Blocker: --- If you look into the CUPS source code, subdirectory "cups", and into the Makefile as well, you'll see that there are several utilities included, all starting with "cups..." in their names. These are not built by default. They spring to life if you have configured "--with-unit-tests" or if you build them one by one in the "cups" subdir with "make test*" or "make unittests". However, some of these tools have a benefit even beyond unit testing. See below. Here is the complete list: * testipp, testadmin, testarray, testcache, testconflicts, testcreds, testcups, testdest, testfile, testgetdests, testhttp, testi18n, testipp, testlang, testoptions, testppd, testpwg, testsnmp. While these utilities are primarily of use for CUPS developers -- system administrators and advanced power users may be able to take advantage from some of the features they provide. I'll just give one example (this is not the place to start documenting them all): * `testipp`, when run on its own, may not show any useful output to you. But feed it one of the "c00xxx" files from the cups/spool directory, which hold the job attributes for job number 00xxx (and about which you always may have wondered how to decode them, other than with using good-ol' "strings" on them), then you'll see what it is good for: -----> snip <-------------------------------------------- $> sudo ./testipp /var/spool/cups/c00222 /var/spool/cups/c00241: operation-attributes-tag: attributes-charset (charset): utf-8 attributes-natural-language (naturalLanguage): en-us job-attributes-tag: printer-uri (uri): ipp://localhost:631/printers/OJ6500 job-originating-user-name (nameWithoutLanguage): kp job-name (nameWithoutLanguage): fingerfood-gekürzt_odt.pdf AP_ColorMatchingMode (nameWithoutLanguage): AP_ApplicationColorMatching AP_D_InputSlot (nameWithoutLanguage): BookletBinding..b. (boolean): false BookletType..n. (nameWithoutLanguage): 0 collate (boolean): true com.apple.print.DocumentTicket.PMSpoolFormat (nameWithoutLanguage): application/pdf com.apple.print.JobInfo.PMApplicationName (nameWithoutLanguage): Preview com.apple.print.JobInfo.PMJobName (nameWithoutLanguage): fingerfood-gekürzt_odt.pdf [....] [....] [....] date-time-at-completed (dateTime): 2017-10-13T10:44:39Z date-time-at-creation (dateTime): 2017-10-13T10:01:25Z date-time-at-processing (dateTime): 2017-10-13T10:05:50Z time-at-completed (integer): 1507891479 time-at-creation (integer): 1507888885 time-at-processing (integer): 1507889150 job-id (integer): 241 job-state (enum): completed job-state-reasons (keyword): processing-to-stop-point job-impressions-completed (integer): 20 job-media-sheets-completed (integer): 20 job-printer-uri (uri): ipp://mbp2-5.local:631/printers/OJ6500 job-k-octets (integer): 1672 document-format-supplied (mimeMediaType): application/pdf document-format (mimeMediaType): application/pdf document-name-supplied (nameWithoutLanguage): fingerfood-gekürzt_odt.pdf job-hold-until (keyword): no-hold job-impressions (integer): 20 com.apple.print.PrintSettings.PMTotalSidesImaged..n. (integer): 20 com.apple.print.PrintSettings.PMTotalBeginPages..n. (integer): 20 job-printer-state-message (textWithoutLanguage): job-printer-state-reasons (1setOf keyword): com.hp.m.1.19.3-warning,com.hp.m.1.19.0-warning,com.hp.m.1.19.1-warning,com.hp.m.1.19.2-warning,other-warning -----> snip <-------------------------------------------- As you noticed, these "c00xxx" files hold the complete job ticketing (job attributes) information about any given job (before printing happens as well as after it is complete), and "testipp" can decode these files, making the full-names of each respective job's IPP attributes to the user or admin. So "testipp" is a completely useful tool for anybody who may have to debug and troubleshoot CUPS printing problems. Please build all these test* tools (even the seemingly useless ones) and provide them as an additional CUPS utilities package, for example as "cups-testtools". (I'll volunteer then to contribute a little README file documenting the most important use cases for these tools.) -- You are receiving this mail because: You are on the CC list for the bug.