Comparar commits

..

2105 Commits

Autor SHA1 Mensagem Data
Michael R Sweet b1e7afd596 Bump version. 2018-12-14 10:20:18 -05:00
Michael R Sweet 3642bcbddf Changelog. 2018-12-14 10:04:35 -05:00
Michael R Sweet 59e57148ee Merge pull request #5463 from OdyX/fix-unitialized-service-idle-exit
Fix service_idle_exit build issue with -Werror=maybe-unitialized
2018-12-14 10:03:57 -05:00
Didier Raboud a30818495d Fix service_idle_exit build issue with -Werror=maybe-unitialized 2018-12-14 15:53:32 +01:00
Michael R Sweet 9dd1bc98cd Move getifaddrs to a separate header. 2018-12-10 14:53:29 -05:00
Michael R Sweet 70bdce1628 Fix ppdmerge backup filename (Issue #5455) 2018-12-10 09:18:43 -05:00
Michael R Sweet 8a763079f5 Bump version, changelog. 2018-12-08 08:14:16 -05:00
Michael R Sweet 065632e209 Fix compile errors - not sure why these didn't show up before... 2018-12-08 08:12:52 -05:00
Michael R Sweet c13e2f44eb Bump version 2018-12-07 14:40:21 -05:00
Michael R Sweet b9ff93ce91 CVE-2018-4700: Linux session cookies used a predictable random number seed. 2018-12-07 12:08:27 -05:00
Michael R Sweet 46637f30d7 Update localization files. 2018-12-06 14:58:20 -05:00
Michael R Sweet f1def5b85f Remove cupsaddsmb and associated documentation and infrastructure (Issue #5449) 2018-12-06 14:58:01 -05:00
Michael R Sweet dc5c941a67 Drop cupstestdsc program and related documentation (Issue #5450) 2018-12-06 14:53:22 -05:00
Michael R Sweet 51c22b864a Update HTML man pages. 2018-12-06 14:41:43 -05:00
Michael R Sweet 33abc3d644 Changelog 2018-12-06 14:41:26 -05:00
Michael R Sweet 4eeef849d6 Update message catalogs for new usage help (Issue #5326) 2018-12-06 14:40:52 -05:00
Michael R Sweet c4b22214d2 Normalize --help usage for cupsd (Issue #5326) 2018-12-06 14:39:57 -05:00
Michael R Sweet 860f3d3b13 Add --help usage for all Berkeley commands (Issue #5326) 2018-12-06 14:38:05 -05:00
Michael R Sweet abc300696c Normalize --help usage for ippfind and ipptool (Issue #5326) 2018-12-06 14:24:29 -05:00
Michael R Sweet 8e52928cfd Add --help usage for all System V commands (Issue #5326) 2018-12-06 14:17:23 -05:00
Michael R Sweet df4101bff6 lpoptions now works with discovered but un-added printers (Issue #5045) 2018-12-06 11:24:11 -05:00
Michael R Sweet 7d730d0ce7 Don't error out on deprecations. 2018-12-06 09:21:58 -05:00
Michael R Sweet c29d06f9f9 Fix -E option (Issue #5440) 2018-12-05 12:59:56 -05:00
Michael R Sweet 9fb5f30d78 More bogus indentation. 2018-12-05 12:39:33 -05:00
Michael R Sweet ef4e12b3f9 Update configure script. 2018-12-05 12:38:06 -05:00
Michael R Sweet c028bdf75e Fix bogus indentation. 2018-12-05 12:37:23 -05:00
Michael R Sweet 3dee5db7b9 Revert os_transaction changes. 2018-12-05 12:34:39 -05:00
Michael R Sweet 8c7143551a Fix handling of MaxJobTime 0 (Issue #5438) 2018-12-05 12:18:13 -05:00
Michael R Sweet f337a1b74e Pass ASAN_OPTIONS to filters. 2018-12-05 12:07:24 -05:00
Michael R Sweet ba4fe5d958 Remove malloc logging output since we no longer use GuardMalloc in the test suite. 2018-12-05 11:40:14 -05:00
Michael R Sweet e14894bd8d Fix test suite failure caused by log rotation due to sandboxing warning message. 2018-12-05 11:38:44 -05:00
Michael R Sweet e5daa5b780 Fix ASAN support on Linux, drop suppressions file and just disable leak tests.
ASAN on Linux also requires us to build with --disable-shared.  Which means the
test script should not try to preload the .so files...
2018-12-04 16:52:56 -05:00
Michael R Sweet 31b3c060f8 Don't use GuardMalloc on macOS now that we have AddressSanitizer. 2018-12-04 10:03:48 -05:00
Michael R Sweet f518bf7ea1 Support AddressSanitizer in builds.
Fix a compiler warning on macOS.
2018-12-04 09:36:02 -05:00
Michael R Sweet 3043e3a533 Add USB quirk rule for Zebra ZD420 (Issue #5395) 2018-11-30 13:05:03 -05:00
Michael R Sweet ffcecff2d7 Add USB quirk rule for Star printer (Issue #5443) 2018-11-26 22:39:00 -05:00
Michael R Sweet 2d9eecc44e Fix a crash bug when mapping PPD duplex options to IPP attributes (rdar://46183976) 2018-11-26 22:32:24 -05:00
Michael R Sweet a8a73fd881 Update default compiler options for GCC 8.x. 2018-11-16 15:58:29 -05:00
Michael R Sweet cee8cdadee Fix compile error. 2018-11-14 10:17:41 -05:00
Michael R Sweet c0c13a68b1 Add cupsManualCopies as needed (Issue #5433) 2018-11-14 10:15:04 -05:00
Michael R Sweet ef2f369c0c Fix potential truncation of Kerberos credentials (Issue #5435) 2018-11-14 09:09:33 -05:00
Michael R Sweet dbcea8da9d Switch from xpc_transaction_begin to os_transaction_create. 2018-11-08 15:52:50 -05:00
Michael R Sweet ee347e17be Add note about restarting the scheduler manually after editing config files (Issue #5402) 2018-11-08 09:51:21 -05:00
Michael R Sweet b167c7fcf8 Clarify meaning of printer errors (Issue #5404) 2018-11-08 09:43:18 -05:00
Michael R Sweet f07dbc95aa Document indirect changing of configuration files (Issue #5403) 2018-11-08 09:35:36 -05:00
Michael R Sweet 4ab680ad06 Merge pull request #5410 from AOSC-Dev/master
locale/zh_CN: 100%
2018-11-08 09:30:06 -05:00
Michael R Sweet 3bd3849715 Deprecate snmp backend. 2018-11-08 09:29:13 -05:00
Michael R Sweet 8d32a3f933 Disable SNMP supply levels when the community name is cleared (Issue #5354)
backend/snmp-supplies.c:
- Look for empty community name.

cups/snmp.c:
- Allow empty community name.

man/cups-snmp.conf.man:
- Document behavior of empty community name.
2018-11-08 09:24:48 -05:00
Michael R Sweet 9eacf61969 Don't include subdirs for internal libraries. 2018-11-07 11:42:44 -05:00
Michael R Sweet 72a2134826 Fix stuck multi-file jobs (Issue #5359, Issue #5413) 2018-11-07 11:33:00 -05:00
Michael R Sweet 08eac601d0 Localization updates (Issue #5408) 2018-11-07 10:40:29 -05:00
Michael R Sweet 08761c26aa Add USB quirks rule for Lexmark MS317dn (Issue #5420) 2018-11-07 10:37:27 -05:00
Michael R Sweet c4edc066e9 Fix more compiler warnings (Issue #5423) 2018-11-06 16:20:56 -05:00
Michael R Sweet 6276d173b6 Fix compiler warnings (Issue #5423) 2018-11-06 16:16:16 -05:00
Michael R Sweet bafe8fce84 Fix makefile errors on install. 2018-10-29 18:18:04 -04:00
Michael R Sweet 58b64dbba8 Add new libcupslite component that builds a libcups without driver/PPD support. 2018-10-29 17:56:28 -04:00
Michael R Sweet 171c38f224 Add libcups component name, localization bundle support for iOS. 2018-10-29 16:36:11 -04:00
Michael R Sweet 144351068c Don't install cupscgi, cupsmime, or cupsppdc shared libraries. 2018-10-29 12:12:41 -04:00
Michael R Sweet 899483675b Make sure _cups_debug_set always exists. 2018-10-25 14:18:36 -04:00
Michael R Sweet 82428176f5 Need to install debug-private.h as a private header. 2018-10-25 13:09:46 -04:00
Michael R Sweet 72ca662e7e Use 'Standard' process type to get higher priority for printing. 2018-10-18 22:05:11 -04:00
Michael R Sweet 171b7064c6 Drop -Wno-format-truncation since only newer versions of GCC support it and the configure check has never worked. 2018-10-18 22:00:43 -04:00
Michael R Sweet e4b72d7ee1 Update the location of strings files on newer versions of macOS.
Don't install debug symbols for static libraries.
2018-10-18 21:53:15 -04:00
Michael R Sweet 78312b3c7a Don't install/remove private headers for internal libraries.
Don't install symlinks for internal libraries.
2018-10-18 14:36:16 -04:00
Michael R Sweet fb863569eb Move debug printfs to internal usage only.
Also, old MD5 code is internal-only.
2018-10-18 14:25:09 -04:00
Michael R Sweet 941a5490cf Drop _httpTLSSetCredentials - not implemented or used. 2018-10-18 10:18:53 -04:00
Michael R Sweet f4b526e71e Don't install internal headers. 2018-10-18 09:38:49 -04:00
Michael R Sweet 0b353e63ec Cleanup. 2018-10-17 16:54:15 -04:00
Michael R Sweet 2064e071b0 Save/restore line number to fix error line reporting. 2018-10-17 16:37:04 -04:00
Michael R Sweet 9fd217fc95 Don't install headers for libcupcgi, libcupsmime, or libcupsppdc. 2018-10-17 16:12:46 -04:00
Michael R Sweet 739bae4ea3 Fix embedded whitespace issue. 2018-10-17 14:17:47 -04:00
Michael R Sweet 5f07499d2b Re-wrap comment. 2018-10-17 13:09:37 -04:00
Michael R Sweet 9a9dab7224 Fix location of program database. 2018-10-17 11:40:37 -04:00
Michael R Sweet ace3ea0a52 Drop SNMP functions. 2018-10-17 11:36:45 -04:00
Michael R Sweet 4bc478876d Update Windows DLL exports. 2018-10-17 11:35:37 -04:00
Michael R Sweet 9a38ff69a6 Don't need to include zlib header. 2018-10-17 11:35:03 -04:00
Michael R Sweet 5a855d856a Remove dependency on zlib headers outside of libcups. 2018-10-17 11:31:45 -04:00
Michael R Sweet 104c528358 More build fixes. 2018-10-16 16:31:07 -04:00
Michael R Sweet 86206ccf13 Add missing DNSSD.LIB functions. 2018-10-16 16:09:17 -04:00
Michael R Sweet d3a97696d7 Fix build issues, add missing files. 2018-10-16 15:31:09 -04:00
Michael R Sweet d00c3f2678 Add DNS-SD stub library project. Update VS projects. 2018-10-16 14:56:39 -04:00
Michael R Sweet c8c5ec3b57 Search for codesign/true, use LDFLAGS for shared libraries (Issue #5411) 2018-10-15 21:03:40 -04:00
Michael R Sweet 1a6abb3661 Update Xcode project, clean up includes for _cupsRasterInterpretPPD. 2018-10-10 21:02:20 -04:00
Michael R Sweet f81f6d3d57 Move PPD tests to PPD unit test file.
Shorten cupsColorSpace strings.
2018-10-10 20:44:21 -04:00
Michael R Sweet dcd7f90ecb Fix raster header writing. 2018-10-10 20:29:31 -04:00
Michael R Sweet c857c27e47 Remove obsolete declarations. 2018-10-10 20:23:33 -04:00
Michael R Sweet dd204f7a50 Move raster functions into libcups, with stubs that call back to libcups in libcupsimage. 2018-10-10 20:22:24 -04:00
Michael R Sweet 11ea1663d5 Mark internal functions as internal. 2018-10-10 01:06:43 -04:00
Michael R Sweet e35868753c Update visibility stuff so we can build libcups.2.dylib without an exports list. 2018-10-10 01:01:56 -04:00
Michael R Sweet 24a06ed381 Migrate Windows conditional code to _WIN32 define. 2018-10-10 00:18:00 -04:00
Michael R Sweet 19dc16f764 Migrate Windows conditional code to _WIN32 define. 2018-10-10 00:17:22 -04:00
Mingcong Bai 772416f73a locale/zh_CN: 100% 2018-10-09 00:22:16 -05:00
Michael R Sweet d65e20fe7c Add Travis CI support. 2018-10-02 18:31:43 -04:00
Michael R Sweet b37177a7a9 Fix test suite with shared libraries on macOS. 2018-10-02 18:21:25 -04:00
Michael R Sweet b3903a94c6 Move private header includes to tls-darwin.c. 2018-09-28 16:52:32 -04:00
Michael R Sweet 1582479ceb Fix lpadmin error reporting for IPP Everywhere printers (Issue #5370) 2018-09-28 11:22:21 -04:00
Michael R Sweet bf86060f9e Support face-up printers (Issue #5345) 2018-09-28 11:12:40 -04:00
Michael R Sweet 7219e504e7 Whitespace issues reported by Git. 2018-09-27 12:03:33 -04:00
Michael R Sweet 2c3b8f53ad Set QoS priority class for the main thread when running from launchd. 2018-09-27 12:01:33 -04:00
Michael R Sweet 42bb90c481 Add new dynamic mDNSResponder stub. 2018-09-26 16:51:41 -04:00
Michael R Sweet cdeee633ce Changelog. 2018-09-18 11:42:27 -04:00
Michael R Sweet e70450f17d Update list of files to ignore. 2018-09-18 11:37:52 -04:00
Michael R Sweet 137fa9a836 Code signing changes. 2018-09-18 11:27:20 -04:00
Michael R Sweet 00dbe99f3f Add code signing for macOS Mojave. 2018-09-18 11:02:51 -04:00
Michael R Sweet 67c0a18b85 Make sure clean is clean. 2018-09-18 09:18:14 -04:00
Michael R Sweet 5737d5eba4 More Digest changes. 2018-09-14 14:58:35 -04:00
Michael R Sweet 16f67389a8 More Digest authentication fixes/improvements. 2018-09-14 13:02:53 -04:00
Michael R Sweet 80f5715924 Change the threading model to keep track of a separate client thread count instead. 2018-09-13 16:19:47 -04:00
Michael R Sweet 7e3643bff1 Update testclient to support simulation of N clients. 2018-09-12 07:57:15 -04:00
Michael R Sweet 296185eb1a Add explicit 1 second wait for Digest challenge. 2018-09-11 12:22:27 -04:00
Michael R Sweet c0a48c3773 Update IPP backend to use non-deprecated APIs and constants. 2018-09-11 10:21:18 -04:00
Michael R Sweet 29bda83e12 Silence some bogus Clang warnings. 2018-09-03 09:30:08 -04:00
Michael R Sweet a7d80a247f Add digest debugging and fix a small bug in the HTTP unit test. 2018-08-29 18:20:11 -04:00
Michael R Sweet 69c0af2ec8 Further simplify the logic in ippCopyAttribute. 2018-08-29 11:50:22 -04:00
Michael R Sweet ebcccc6a56 Simplify the logic in ippCopyAttribute. 2018-08-29 11:43:50 -04:00
Michael R Sweet 387ff05cd4 Fix availability macros. 2018-08-28 23:18:04 -04:00
Michael R Sweet 3aeb120e10 Fix issue with HTTP Digest authentication, add unit tests (rdar://41709086) 2018-08-28 22:47:39 -04:00
Michael R Sweet 59a8560a52 Fix a scheduler crash bug (rdar://42198057) 2018-08-27 16:43:16 -04:00
Michael R Sweet bac967ae56 Add checks for missing/bad CloseUI/JCLCloseUI keywords (Issue #5381) 2018-08-27 15:14:04 -04:00
Michael R Sweet 604783214d Fix JCL option support in PPD compiler (Issue #5379) 2018-08-27 10:31:29 -04:00
Michael R Sweet d128cfc601 Don't try to map cupsFinishingTemplate=none, fall back to individual options to get there. 2018-08-21 10:09:49 -04:00
Michael R Sweet 3416fe952b Fix memory leaks found by Coverity (Issue #5375) 2018-08-21 10:01:44 -04:00
Michael R Sweet 5c463d3fe0 Fix regression in fix for rdar://40436080. 2018-08-19 09:14:52 -04:00
Michael R Sweet a2c43163c2 Fix typo. 2018-08-19 09:05:34 -04:00
Michael R Sweet d5d6477801 Update lpadmin man page (Issue #5369) 2018-08-19 09:03:02 -04:00
Michael R Sweet 26dbc8a6b6 Fix whitespace. 2018-08-19 08:36:39 -04:00
Michael R Sweet c96cc7c0e2 Fix localization of IPP Everywhere PPD (Issue #5362) 2018-08-19 08:32:04 -04:00
Michael R Sweet fd7190c1c2 Fix shared printing using the IPP Everywhere driver (Issue #5361) 2018-08-19 07:49:10 -04:00
Michael R Sweet 7d4510a090 Sync up with changes from 2.2.x. 2018-08-18 09:01:32 -04:00
Michael R Sweet 06e79a5e74 Changelog. 2018-07-18 14:30:18 -04:00
Michael R Sweet c604931d24 Changelog. 2018-07-18 14:27:08 -04:00
Michael R Sweet 140af001d6 Merge pull request #5348 from snifbr/master
Some fixes about pt_BR translate
2018-07-18 14:25:09 -04:00
Michael R Sweet 4848b9c789 Merge pull request #5350 from benlees/master
Correct typos in rastertolabel
2018-07-18 14:22:57 -04:00
Michael R Sweet 672c812747 Explicitly list IPP_TAG_STRING in ippReadIO. 2018-07-18 11:23:17 -04:00
Michael R Sweet bbe495b0ea The scheduler was being backgrounded on macOS, causing applications to spin
(rdar://40436080)

scheduler/main.c:
- Start/end transactions on startup/shutdown.

scheduler/sysman.c:
- Remove transactions from cupsdSetBusy.
2018-07-17 23:52:38 -04:00
Michael R Sweet 67bd1f47a5 Fix regression in lpadmin fix (Issue #5305) 2018-07-17 21:57:41 -04:00
Michael R Sweet 6f1c647d73 Fix dependencies. 2018-07-17 17:48:00 -04:00
Michael R Sweet a32af27c4c Replace the rest of the uses of __attribute__ that need to be portable (Issue #5349) 2018-07-09 13:42:25 -04:00
Michael R Sweet be3b49a3f9 Move away from using __attribute__ directly (Issue #5349) 2018-07-09 12:17:47 -04:00
benlees 2ea1bc06b7 Additions to print density corrections
Missed correcting values below 50 (-14 would produce -15 in the output etc).
2018-07-08 11:33:51 +10:00
benlees c44a2ab142 Correct print density for Intellitech
Due to an incorrect rounding assumptions in sample.drv, selecting print density choice 14 produces an output of 13 in the driver and so on.
2018-07-08 10:57:30 +10:00
benlees e8fb750728 Intellitech print density should be signed
The print density ranges from -15 to +15.  The output should be a signed integer.
2018-07-08 10:21:51 +10:00
benlees 04e7ecda24 Merge pull request #1 from benlees/patch-1
Correct page height for Zebra CPCL output
2018-07-08 10:16:52 +10:00
benlees eadeefa22d Correct page height for Zebra CPCL output
PAGE-HEIGHT is being set to cupsWidth rather than cupsHeight.
2018-07-08 10:15:26 +10:00
Danilo Figueiredo Rocha 9d714317d0 Fixed wrong translation in header.tmpl 2018-07-04 16:42:26 -03:00
Danilo Figueiredo Rocha a552da601d Fixed wrong value parsed when selected (show completed jobs) 2018-07-04 16:37:44 -03:00
Michael R Sweet 77094a212d Fix whitespace issues. 2018-06-29 14:05:14 -04:00
Michael R Sweet 29899df225 Fix whitespace issues. 2018-06-29 14:04:32 -04:00
Michael R Sweet bf265b3aa9 Authentication in the web interface did not work on macOS (rdar://41444473)
cups/auth.c:
- cups_local_auth(): Don't check for AuthRef twice, log fopen errors for the
  root cert as well.

scheduler/client.c:
- Also allow local auth with AuthRef's.
2018-06-29 13:42:38 -04:00
Michael R Sweet 945c83b90e Fix auto-debug logging of job errors with systemd (Issue #5337) 2018-06-18 21:46:21 -04:00
Michael R Sweet 9dcb503fa1 Fix crash when AccessLog is NULL (Issue #5309) 2018-06-18 21:37:27 -04:00
Michael R Sweet 1738460d8b Fix compiler warning. 2018-06-18 21:32:55 -04:00
Michael R Sweet 997b67343f Use Enable-Printer and Resume-Printer operations so we don't create a bogus printer (Issue #5305) 2018-06-18 21:28:04 -04:00
Michael R Sweet 9fc5c8d42e Support idle exit, even when printer sharing is enabled but no printers are shared (Issue #5319) 2018-06-18 17:03:23 -04:00
Michael R Sweet 443f6d0c80 Restore default cups-lpd settings for macOS. 2018-06-18 16:41:02 -04:00
Michael R Sweet 7e041a5e55 Fix A6 crash bug in Epson 24-pin driver (Issue #5323) 2018-06-18 16:37:16 -04:00
Michael R Sweet bd121abd35 Ignore bogus cups-version attribute. 2018-06-18 14:33:29 -04:00
Michael R Sweet de72bb61c1 More tweaks for IPP Everywhere support in web interface. 2018-06-18 14:31:23 -04:00
Michael R Sweet 553f29c967 Support IPP Everywhere driver in web interface (Issue #5338) 2018-06-18 13:13:40 -04:00
Michael R Sweet 91505c0a32 Report all supported Job Creation attributes and their values (Issue #5340) 2018-06-18 12:44:49 -04:00
Michael R Sweet b5443ab9f2 Add options to force a TLS version. 2018-06-15 15:17:06 -04:00
Michael R Sweet 9f4c8267f9 Don't set maximum TLS version unless it is <max. Support TLS 1.3. 2018-06-15 11:26:16 -04:00
Michael R Sweet ef97be3b01 Turn off duplex if validate-job says it can't be done. 2018-06-13 14:32:16 -04:00
Michael R Sweet c3a9caacd9 Add all prototype attributes and values. 2018-06-12 17:05:07 -04:00
Michael R Sweet 6b2fb4354a Add more functionality to localization unit test program. 2018-06-12 13:05:33 -04:00
Michael R Sweet dc0b986f3e Changelog 2018-06-12 08:38:52 -04:00
Michael R Sweet 8c0b3c7b4b Merge pull request #5339 from AOSC-Dev/master
locale/zh_CN: complete translation
2018-06-12 08:36:51 -04:00
Mingcong Bai d6abdf44cd locale/zh_CN: complete translation 2018-06-12 16:27:26 +08:00
Michael R Sweet 1d677f11f1 Fix regressions in ippValidateAttribute (Issue #5322, Issue #5330) 2018-06-11 09:37:38 -04:00
Michael R Sweet a46d5dfe1d Merge pull request #5332 from felixonmars/patch-1
Fix a typo in snmp.c
2018-06-11 09:23:11 -04:00
Felix Yan 9befde0941 Fix a typo in snmp.c 2018-06-09 17:36:03 +08:00
Michael R Sweet d596e3307e Update paths for PWG raster sample files. 2018-06-07 16:50:04 -04:00
Michael R Sweet addb17b18d Specify GPG signing user. 2018-06-06 09:01:40 -04:00
Michael R Sweet 39897200c1 Bump version to 2.3b6, changelog. 2018-06-05 13:49:08 -04:00
Michael R Sweet 22a3eea9f6 Make sure all incoming value tags are treated the same as freed values. 2018-06-05 13:47:42 -04:00
Michael R Sweet 87cebdd235 Fix link to CUPS Programming Manual. 2018-06-05 12:32:08 -04:00
Michael R Sweet 464f939ece Update versions in README and INSTALL 2018-06-05 12:06:08 -04:00
Michael R Sweet af66a2f815 Update documentation and localization files for 2.3b5 release. 2018-06-05 11:58:32 -04:00
Michael R Sweet b27f41088b Changelog. 2018-06-05 11:47:46 -04:00
Michael R Sweet 09ca2aa580 Merge pull request #5317 from nils-van-zuijlen/typo-fr
Correct typos for French_France
2018-06-05 11:45:00 -04:00
Michael R Sweet 0541a2c9f4 Fix a parsing bug in the pstops filter (Issue #5321) 2018-06-05 11:36:07 -04:00
Michael R Sweet 53f8404482 Changelog. 2018-06-05 11:29:32 -04:00
Michael R Sweet 050d265700 Add a USB quirks rule for the HP LaserJet P1102 (Issue #5310) 2018-06-05 11:27:16 -04:00
Michael R Sweet d47f6aec43 Fix local privilege escalation to root and sandbox bypasses in scheduler
(rdar://37836779, rdar://37836995, rdar://37837252, rdar://37837581)
2018-06-05 08:49:59 -04:00
Michael R Sweet be7581b6e3 Validate notify-recipient-uri values. 2018-06-05 08:49:59 -04:00
Michael R Sweet 8eed438719 Block invalid group tags when parsing IPP messages. 2018-06-04 16:17:31 -04:00
Nils Van Zuijlen 4baf1b58e0 Correct typos for French_France 2018-05-24 22:04:45 +02:00
Michael R Sweet ce480a999e Add smb test URI. 2018-05-18 15:34:50 -04:00
Michael R Sweet fdaf028e8b Add more URI validation for scheme. 2018-05-14 15:24:13 -07:00
Michael R Sweet 5c2c2ab6a3 Fix cupsJobPassword documentation. 2018-05-14 10:26:55 -07:00
Michael R Sweet 06a5a4d332 Mark cupsGetDevices as deprecated.
Update CUPS Programming Manual.

Update CUPS Admin API documentation.

Update CUPS PPD documentation.
2018-05-14 10:21:51 -07:00
Michael R Sweet 4cadd6202f Mirror validation changes from 2.2 branch. 2018-05-11 12:10:32 -07:00
Michael R Sweet 2de7c5f81c Update changelog, copyright... 2018-05-11 10:25:39 -07:00
Michael R Sweet 8127ebd190 Merge pull request #5312 from hansmi/mailtowait1
mailto: Wait for server opening message
2018-05-11 10:19:47 -07:00
Michael R Sweet e5fee178d9 Always use Negotiate or PeerCred for Kerberized printing. 2018-05-10 16:35:37 -04:00
Michael Hanselmann 077bd665bd mailto: Wait for server opening message
A subset of all mailserver configurations reject SMTP sessions where the
client sends anything before the server sent its opening message. This
is the case with Exim on Ubuntu Artful, for example:

  SMTP protocol synchronization error (input sent without waiting for
  greeting)

Not waiting for the opening message is a violation of the session
initiation described in RFC5321 (section 3.1). Update the mailto
notifier to wait for a non-error status code from the server before
proceeding to start the mail transaction.
2018-05-09 01:26:21 +02:00
Michael R Sweet dfe5f3b95c Changelog. 2018-05-01 08:38:41 -04:00
Michael R Sweet 616f3f56dd Merge pull request #5306 from speachy/master
Fix typo in example (cupsCommand -> cupsCommands)
2018-05-01 08:36:28 -04:00
Solomon Peachy f594a3db6d Fix typo in example (cupsCommand -> cupsCommands) 2018-04-30 19:09:41 -04:00
Michael R Sweet d3ab37abea Use -m everywhere for manual sharing. 2018-04-24 20:44:54 -04:00
Michael R Sweet 619d6d95eb Fix 360dpi typo (Issue #5300) 2018-04-24 20:34:10 -04:00
Michael R Sweet b95156db4c Update ErrorPolicy in cupsd.conf man page (Issue #5301) 2018-04-24 20:28:36 -04:00
Michael R Sweet ff82ce17bf Fix GNU TLS httpCertString changes. 2018-04-24 18:22:41 -04:00
Michael R Sweet af62b316e7 Extend GNU TLS certificate string. 2018-04-24 18:04:52 -04:00
Michael R Sweet 073b3929a1 Add issuer and signature algorithm to certificate string, show it in tlscheck output. 2018-04-24 17:46:58 -04:00
Michael R Sweet 17cc92f131 Add resource and system object/state values. 2018-04-24 16:17:21 -04:00
Michael R Sweet bd4b5b3ee1 Changelog. 2018-04-18 08:51:07 -04:00
Michael R Sweet c77dede2ed Merge pull request #5297 from FedericoYundt/patch-1
Allow cupsd daemon to exit on idle (restart=on-failure instead of always)
2018-04-18 08:48:46 -04:00
FedericoYundt 4e02be68c1 Allow cupsd daemon to exit on idle
When using socket activation cups daemon can safely exit on idle and be automatically started when it's needed. Using Restart=always prevent this behavior and causes cups daemon constantly restarting itself instead of exiting. Users reported[1] that Restart=on-failure was enough to fix issues[2] so Restart=always may be unnecessary and harmful.

[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=861470
[2] https://github.com/apple/cups/issues/5263
2018-04-18 08:40:59 +01:00
Michael R Sweet 0873f681e4 Fix policy limits using All (Issue #5296) 2018-04-17 16:54:24 -04:00
Michael R Sweet c1de912d13 Map , to p in phone numbers. 2018-04-17 14:22:16 -04:00
Michael R Sweet fbcc927ded Add support for pause and wait characters in fax numbers (rdar://39212256) 2018-04-17 12:47:00 -04:00
Michael R Sweet 4feb1fe2e5 - Added a workaround for certain web browsers that do not support multiple
authentication schemes in a single response header (Issue #5289)
2018-04-16 17:16:31 -04:00
Michael R Sweet c944b62ba8 Fix cups_auth_find for schemes without parameters. 2018-04-11 22:03:47 -04:00
Michael R Sweet 44cb0dd233 Fix a parsing bug in the new authentication code. 2018-04-11 13:10:24 -04:00
Michael R Sweet 3581e03de5 Update lpoptions man page (Issue #5286) 2018-04-10 15:43:24 -04:00
Michael R Sweet 56f0cbeb27 Merge pull request #5286 from Kohlrabi/master
Remove mentions of non-implemented -U option from lpoptions manpage (still need to update date)
2018-04-10 15:36:58 -04:00
Michael R Sweet 656c109a1c Fix another CUPS-Create-Local-Printer crash (Issue #5290) 2018-04-09 15:31:56 -04:00
Michael R Sweet 159e027902 Changelog. 2018-04-09 09:52:07 -04:00
Michael R Sweet 7271db11d2 Use cupsGetNamedDest for legacy printing APIs (Issue #5288) 2018-04-09 09:50:50 -04:00
Michael R Sweet d07cb8d5dc The ipptool program no longer checks for duplicate attributes when running in
list or CSV mode (Issue #5278)
2018-04-05 20:12:39 -04:00
Michael R Sweet 15fe2ddc7f Fix ippfind _regtype 2018-04-05 17:25:31 -04:00
Christoph Terasa df59b110ad Remove mentions of non-implemented -U option from lpoptions manpage 2018-04-03 16:30:16 +02:00
Michael R Sweet b056061b24 Add cups_en.po file (Issue #5276) 2018-03-23 16:39:17 -04:00
Michael R Sweet 86d93a7539 Update Windows DLL exports file. 2018-03-22 21:48:44 -04:00
Michael R Sweet 4b4895dfe7 Also support /ipp/print/queuename. 2018-03-22 21:47:56 -04:00
Michael R Sweet b25f3cf080 Changelog 2018-03-22 11:43:47 -04:00
Michael R Sweet 63f8dcbd47 Next release is 2.3b4 2018-03-22 09:32:09 -04:00
Michael R Sweet 6a76f435d8 Changelog 2018-03-22 09:02:38 -04:00
Michael R Sweet d0bfbc98b6 Try another fix for Avahi crash (Issue #5268) 2018-03-21 18:00:02 -04:00
Michael R Sweet 561e0647a8 Try another fix for Avahi crash (Issue #5268) 2018-03-21 17:58:01 -04:00
Michael R Sweet 0fb02fb9ce Remove support for _IPP_PRIVATE_STRUCTURES developer cheat. 2018-03-19 23:08:59 -04:00
Michael R Sweet 187b9322c8 Fully deprecate PPD API - no more _PPD_DEPRECATED cheat. 2018-03-19 22:58:49 -04:00
Michael R Sweet 5192eac3e6 Remove redundant check of srv value. 2018-03-19 19:52:48 -04:00
Michael R Sweet 34646e298e Update localizations. 2018-03-19 18:43:43 -04:00
Michael R Sweet 3f72eb0187 Changelog. 2018-03-19 18:43:05 -04:00
Michael R Sweet ada35e599c Deprecate printer drivers (Issue #5270)
Cleanup man page updates.
2018-03-19 18:41:59 -04:00
Michael R Sweet 003c1790e9 Deprecate raw print queues. 2018-03-19 18:35:22 -04:00
Michael R Sweet 73c6236f2c Fix typo 2018-03-19 18:11:25 -04:00
Michael R Sweet 8aecb2299e Changelog. 2018-03-19 13:19:44 -04:00
Michael R Sweet 658c64bf2e Include cupsJobPassword keyword in generated PPDs (Issue #5265) 2018-03-19 13:15:56 -04:00
Michael R Sweet 84047a015c Fix _cupsCondWait again. 2018-03-14 18:06:38 -04:00
Michael R Sweet 739ad3f3ea Typo changes after review (Issue #5264) 2018-03-14 15:13:47 -04:00
Michael R Sweet afd96090b5 Merge pull request #5264 from jschwender/master
some new translations completed
2018-03-13 13:26:43 -04:00
jschwender a0fccd8044 some new translations completed 2018-03-13 16:07:08 +01:00
Michael R Sweet 95f319b9dd Fix definition of IPP_DSTATE_ enums. 2018-03-12 21:57:49 -04:00
Michael R Sweet 13ceaad273 Fix implementation of _cupsCondWait with timeout. 2018-03-12 21:56:12 -04:00
Michael R Sweet 32987439c3 Use setuid for Kerberized IPP printing (Issue #5233) 2018-03-12 21:51:15 -04:00
Michael R Sweet e6062e8e9c Fix printing to some IPP Everywhere printers (Issue #5238) 2018-03-12 21:47:00 -04:00
Michael R Sweet 0dfe699052 Fix systemd integration with cupsd (Issue #5263) 2018-03-12 13:33:03 -04:00
Michael R Sweet 367068f32a Fix DEFINE-DEFAULT support in IPP data files.
Add privacy attributes to requested-attributes support.
2018-03-10 01:06:41 -05:00
Michael R Sweet 0c7f533afd Bump shared library version. 2018-03-09 18:49:33 -05:00
Michael R Sweet 0fea18126c Fix Kerberized IPP printing (Issue #5233) 2018-03-09 15:39:25 -05:00
Michael R Sweet ca75cc1354 The scheduler could crash while adding an IPP Everywhere printer (Issue #5258) 2018-03-08 11:48:12 -05:00
Michael R Sweet c6dbbca1f5 Disable SNMP supplies for all label printers (Issue #5256) 2018-03-08 11:09:27 -05:00
Michael R Sweet ea95f7fe1a Add USB quirk rule for Lexmark Optra E310 printers (Issue #5259) 2018-03-08 11:04:21 -05:00
Michael R Sweet b0bb6caa3a Fix formatting. 2018-03-07 09:01:25 -05:00
Michael R Sweet cff3f79fb2 Update documentation. 2018-03-07 08:57:44 -05:00
Michael R Sweet f1b7e5634d Move cupsHashString to 2.2.7 and add a 2.2.7 API versioning tag. 2018-03-07 08:56:05 -05:00
Michael R Sweet 516dacf7d3 Fix requested attributes lists - missing -col versions of counters and the
notify-subscription-uuid was "subscriptions-uuid".
2018-03-01 14:00:22 -05:00
Michael R Sweet a9e8acf53d Add missing cups-lpd service file (needs to be present for Xcode project to be
complete)
2018-02-28 11:42:27 -05:00
Michael R Sweet 18dfe3cbe7 Use a writability test for TMPDIR on macOS... 2018-02-27 17:03:19 -05:00
Michael R Sweet 30df0a0309 Fix compile error. 2018-02-27 16:01:13 -05:00
Michael R Sweet 818bbe7af2 cupsGetPPD* still used the old TMPDIR code.
Also fix the check to look for /Users/... since /var/folders is OK.
2018-02-27 15:32:20 -05:00
Michael R Sweet 9b440f8a5c Simplify tempfile fix for macOS. 2018-02-26 17:14:11 -05:00
Michael R Sweet 3cd7b5e053 Fix builds without PAM (Issue #5253) 2018-02-23 13:21:56 -05:00
Michael R Sweet 449f30b03d Fix list of printer attributes. 2018-02-22 18:06:11 -05:00
Michael R Sweet c2532688fb Fix "make clean" - wasn't cleaning cups-driverd.o. 2018-02-22 15:19:49 -05:00
Michael R Sweet 08e8f007f4 Bump version number on PostScript test file. 2018-02-22 15:15:59 -05:00
Michael R Sweet ead626d781 Update Windows DLL exports file. 2018-02-22 14:22:34 -05:00
Michael R Sweet 60bb47475a Update localization files. 2018-02-22 14:21:02 -05:00
Michael R Sweet ddf2ec7348 Update API documentation. 2018-02-22 14:19:21 -05:00
Michael R Sweet 706a0485c5 Fix annotation of cupsHashString API 2018-02-22 14:18:10 -05:00
Michael R Sweet c65e1c4ffd Add public cupsEncodeOption API 2018-02-22 14:16:46 -05:00
Michael R Sweet bb54b17e78 _cupsEncodeOption should return the attribute that has been encoded. 2018-02-22 14:07:21 -05:00
Michael R Sweet c64170e5f6 Fix encoding of out-of-band values in ippserver output files. 2018-02-22 13:32:50 -05:00
Michael R Sweet 0bb02bfa09 Temp files could not be created in some sandboxed applications (rdar://37789645)
cups/tempfile.c:
- Use confstr to get the user temp dir when TMPDIR isn't set or we are not
  being run from cupsd.
2018-02-22 13:14:31 -05:00
Michael R Sweet 66d471becb Fix speling mistak. 2018-02-21 15:54:51 -05:00
Michael R Sweet fe1a430545 The IPP backend did not properly detect failed PDF prints (rdar://34055474)
Look for document-format-error and document-unprintable job state reasons
strings and log either that state or the CUPS "retry" state.
2018-02-20 21:46:59 -05:00
Michael R Sweet 53f8d64f84 Update copyrights and license text on files that were missed. 2018-02-20 21:28:13 -05:00
Michael R Sweet eb61cb5bf0 Changelog. 2018-02-20 20:22:23 -05:00
Michael R Sweet a7aabde8fe Setting the timeout should also timeout the TLS negotiation
(rdar://34938533)
2018-02-20 20:18:05 -05:00
Michael R Sweet 699fe02075 Update documentation (Issue #5252) 2018-02-20 18:12:05 -05:00
Michael R Sweet 19186c8bae Changelog and dependencies updates. 2018-02-20 10:46:05 -05:00
Michael R Sweet 7d26bf7d6c Support IPP/1.1 printers with CUPS-Create-Local-Printer operation (Issue #5241) 2018-02-20 10:44:08 -05:00
Michael R Sweet d6ddd199f4 Bump version to 2.3rc1. 2018-02-20 10:03:40 -05:00
Michael R Sweet a468069a20 Use unidirectional mode for Star Micronics printers (Issue #5251) 2018-02-20 09:58:32 -05:00
Michael R Sweet ab89234de2 Fix installation of filters (Issue #5247) 2018-02-20 09:46:07 -05:00
Michael R Sweet afad2da22d Update ippfind to support -N/--literal-name.
Update man pages.
2018-02-14 17:10:06 -05:00
Michael R Sweet 191be31cf1 Update copyright/license info on test files, and remove old SVN keywords. 2018-02-14 16:34:51 -05:00
Michael R Sweet f28728ee32 Fix missing printer-config-change-[time,date-time] attributes.
Fix old IPP Everywhere test file to use newer test files.
2018-02-14 16:27:53 -05:00
Michael R Sweet c5b7774cb8 Fix handling of "EXPECT foo/bar IN-GROUP group". 2018-02-14 16:00:21 -05:00
Michael R Sweet e22f464e37 Sync up fixes from IPP sample code repo. 2018-02-13 14:37:22 -05:00
Michael R Sweet e28345e78d Fix clean target in "cups" subdirectory. 2018-02-11 21:59:31 -05:00
Michael R Sweet f17549fbb4 Fix timezone offset code. 2018-02-06 15:29:55 -05:00
Michael R Sweet 06e1afc39b Fix dateTime value parsing. 2018-02-06 15:23:26 -05:00
Michael R Sweet a166e9337a Move file callbacks to _ipp_vars_t and add attribute filter callback. 2018-02-06 14:25:37 -05:00
Michael R Sweet 7f4d7b8a51 Fix unused store - actually use the count we saved. 2018-02-06 13:36:02 -05:00
Michael R Sweet 564cd57de8 Fix compiler warning. 2018-02-06 13:32:09 -05:00
Michael R Sweet 7c8fb0fc01 Bump version to 2.3b3. 2018-02-01 10:01:12 -05:00
Michael R Sweet 22974c5f32 The cupsCopyDestInfo function did not work with all print queues (Issue #5235)
cups/dest.c:
- Fix debug logging in _cupsGetDestResource.

cups/dest-options.c:
- Update CUPS server check in cupsCopyDestInfo.
2018-01-31 22:36:51 -05:00
Michael R Sweet 092db1e29e Additional changes for the scheduler to substitute default values for invalid
job attributes when running in "relaxed conformance" mode (Issue #5229)
2018-01-31 22:14:10 -05:00
Michael R Sweet f6e7a0c53a Update localization headers. 2018-01-31 21:14:23 -05:00
Michael R Sweet 728fd81076 Add unit test for _cupsConnect. 2018-01-31 21:04:37 -05:00
Michael R Sweet 27551f043a One more fix for _cupsGetDestResource (Issue #5211) 2018-01-31 20:21:26 -05:00
Michael R Sweet b969d5af2b Fix additional IPP/1.1 issues with cupsCopyDestInfo (Issue #5211)
Update ippserver to support maximum version option (-V max-version)

Update cupsCopyDestInfo to recognize when we are talking to the CUPS server
and when we are talking to the device (so we get the right URI for the printer)

Add "--device" option to testdest.
2018-01-31 19:29:59 -05:00
Michael R Sweet 2da2477dac Use ippValidateAttribute to validate attributes in ipptool.
Fix localization typo.
2018-01-31 14:23:05 -05:00
Michael R Sweet dd6a3fd2ba Merge pull request #5240 from zdohnal/pagelog_syslog
Respect PageLog configuration when compiled with journald
2018-01-29 14:34:34 -05:00
Zdenek Dohnal aed3d896a7 Same as Lutz Heermann, but for PageLog - respect PageLog configuration when compiled with journald 2018-01-29 12:48:29 +01:00
Michael R Sweet a492d345e8 Update ipptool to not use private IPP structures. 2018-01-25 17:09:32 -05:00
Michael R Sweet 8e2e09c1e2 Finish re-tooling of ipptool to use new parser. 2018-01-25 15:47:57 -05:00
Michael R Sweet b87ec78957 libcupsimage is now in the "cups" directory. 2018-01-25 12:54:36 -05:00
Michael R Sweet 081027767a Save work on new ipptool using IPP data file parser. 2018-01-23 23:05:55 -05:00
Michael R Sweet fd96ad89ff Add (ASCII) IPP data file parser to libcups, to be used by ippserver and
ipptool.
2018-01-22 21:23:24 -05:00
Michael R Sweet efb40dcacf Merge pull request #5232 from christoph-morrison/master
Some typo fixes in the german translation
2018-01-19 15:36:58 -05:00
Christoph Morrison ab8a07ec22 Some typo fixes in the german translation 2018-01-19 17:59:36 +01:00
Michael R Sweet 6f7bfae71c Update Xcode project. 2018-01-18 17:25:30 -05:00
Michael R Sweet 123979a9db Move libcupsimage to the "cups" subdirectory, along with its unit tests and
benchmark.
2018-01-18 17:20:18 -05:00
Michael R Sweet 342395f9d1 Attribute names in cupsFinishingTemplate should be prefixed with PostScript
comment.
2018-01-18 16:29:25 -05:00
Michael R Sweet 314e45c21a Expand ColorModel support for IPP Everywhere printers to include device color
spaces.  Simplify code.
2018-01-18 13:08:15 -05:00
Michael Sweet c283f46deb Add support for deep grayscale (ColorModel=Gray16) and 8-bit AdobeRGB
(Issue #5227)
2018-01-18 09:30:26 -05:00
Michael R Sweet 7b98191acd Fix installation permissions of "en" locale dir. 2018-01-17 15:26:04 -05:00
Michael R Sweet f61dfc0df4 Bump versions and copyrights. 2018-01-17 15:14:03 -05:00
Michael R Sweet 1055deceda Update copyright. 2018-01-17 15:01:33 -05:00
Michael R Sweet 117bf0d144 Fixed an issue with mapping finishing options (rdar://34250727)
cups/ppd-cache:
- Change _ppdCacheGetFinishingValues to take a ppd_file_t * so we can check
  marked choices.
- Update _cupsConvertOptions to send the ppd_file_t * to
  _ppdCacheGetFinishingValues.

cups/testcache.c:
- Update unit test.
2018-01-17 14:58:25 -05:00
Michael R Sweet 4ef3ee3749 The ppdLocalizeIPPReason function incorrectly returned a localized version
of "none" (rdar://36566269)
2018-01-17 14:40:02 -05:00
Michael R Sweet 7c91db71b3 The cupsRasterWritePixels function did not correctly swap bytes for some
formats (Issue #5225)

filter/raster.c:
- Add debug logging for color spaces, modes, and offsets during writes.
- Fix byte swapping of compressed data in cupsRasterReadPixels.
- Add cups_copy_swap function that copies and swaps bytes.
- Use cups_copy_swap function when copying pixel data in cupsRasterWritePixels.

filter/testraster.c:
- Add logging of first 10 incorrect raster bytes.
- Fix PASS/FAIL logging of cupsRasterReadHeader2.
2018-01-17 14:13:39 -05:00
Michael R Sweet a8b28f1844 IPP Everywhere PPDs were not localized to English (Issue #5205)
Install cups.pot as cups_en.po
2018-01-15 09:40:56 -05:00
Michael R Sweet 43bcc47b51 Add a USB quirk rule for Canon MP280 series printers (Issue #5221) 2018-01-11 12:33:50 -05:00
Michael R Sweet 3145b7e6a8 Copy the is_default value in cupsCopyDest so that cupsGetDests reports the
correct default printer (Issue #5208)
2018-01-11 12:31:16 -05:00
Michael R Sweet 6a3d63e638 Printing to old CUPS servers has been fixed (Issue #5211)
cups/dest-options.c:
- Fix IPP version check in cupsCopyDestInfo.
2018-01-11 11:32:01 -05:00
Michael R Sweet 6bfe0be46a Update copyright. 2018-01-11 11:28:45 -05:00
Michael R Sweet 378eeedf0f Update HTTP implementation to support field values larger than HTTP_MAX_VALUE
bytes (Issue #5216)

cups/http-private.h:
- Move all char * shadow variables to new fields array, rename old fields array
  to _fields (binary compatibility).

cups/http.c:
- Add new http_add_field that can handle appending values and allocating or
  clearing strings as needed.
- Update httpSetField to use http_add_field.
- Update _httpUpdate to use http_add_field instead of httpSetField.

cups/request.c:
- Fix checks for header fields.

cups/tls-*.c:
- Fix checks for Host header field.
2018-01-10 23:52:05 -05:00
Michael R Sweet a20d0ea003 Update Xcode settings (yet again...) 2018-01-10 21:39:03 -05:00
Michael Sweet c4faa907bc Fix DNS-SD host name for shared printers on macOS. 2018-01-10 10:49:48 -05:00
Michael Sweet 625bb9ded6 The cupsGetDests and cupsEnumDests functions no longer filter out local
print services like IPP USB devices (Issue #5206)
2018-01-09 22:47:46 -05:00
Michael Sweet f89686dd3f Update copyright year. 2018-01-09 22:28:27 -05:00
Michael Sweet ead6e4884a Changelog. 2018-01-09 21:18:26 -05:00
Michael Sweet e16130570f Changelog and dates. 2018-01-09 21:18:26 -05:00
Michael R Sweet 141c8f96be Merge pull request #5210 from Atalanttore/patch-2
Update cups_de.po
2018-01-09 21:17:26 -05:00
Michael R Sweet eb1573431f Merge pull request #5217 from StefanScherer/fix-compile-wihout-have-ssl
Fix compile without HAVE_SSL
2018-01-09 21:16:50 -05:00
Michael R Sweet 2fc81be235 Merge pull request #5212 from albert-astals-cid-kdab/master
Remove unused _PPD_NORMAL_CONSTRAINTS enum
2018-01-09 21:10:02 -05:00
Michael R Sweet 7917399e29 Merge pull request #5213 from albert-astals-cid-kdab/ppdInstallableConflict
Fix ppdInstallableConflict conflict reporting
2018-01-09 21:06:51 -05:00
Stefan Scherer 60da78baeb Fix compile without HAVE_SSL 2018-01-09 16:31:37 +01:00
Albert Astals Cid 4a9942a2f0 Fix ppdInstallableConflict conflict reporting
Without this patch it was taking all constraints into account, not only the ones
regarding the passed option so if you had a conflict somewhere else, every other
single option would be said to be conflicting which doesn't match what the
documentation says this function should do.
2018-01-02 16:17:07 +01:00
Albert Astals Cid 33baffa2a9 Remove unused _PPD_NORMAL_CONSTRAINTS enum 2018-01-02 15:30:43 +01:00
Ettore Atalan 9bebe8c90d Update cups_de.po
Updated existing and untranslated strings.
2017-12-30 15:28:52 +01:00
Michael R Sweet 82341b0b45 Fix copyright statements. 2017-12-20 11:33:59 -05:00
Michael R Sweet 77401306b8 Reword firewall docs - "outgoing ports" -> "port for outgoing network traffic". 2017-12-20 10:05:04 -05:00
Michael R Sweet a0b79d3ad5 Bump dates on README and INSTALL files. 2017-12-19 16:18:09 -05:00
Michael R Sweet 60645dd1d8 Fix RPM packaging issues.
Update source tarball script.
2017-12-19 16:15:30 -05:00
Michael R Sweet 2fa1ba3cc0 Generate strings files for localizing PPD options (Issue #5194)
cups/language-private.h:
- New _cupsMessageAdd and _cupsMessageSave private APIs.

cups/language.c:
- Implement new _cupsMessageAdd and _cupsMessageSave private APIs.

cups/ppd-cache.c:
- Generate strings array when loading cache from PPD.
- Remove strings_uri (just pulling strings from PPD now).

cups/ppd-private.h:
- Remove strings_uri and add strings array to cache.

scheduler/client.c:
- Add support for /strings/NAME.strings
- Cleanup implementation of GET/HEAD/POST to files.

scheduler/ipp.c:
- Return local strings file URI.
- Clean up copy_printer_attrs implementation.

scheduler/printers.c:
- Save strings array to cache file, drop support for strings_uri.

scheduler/printers.h:
- Add strings filename to cupsd_printer_t structure.
2017-12-19 14:53:00 -05:00
Michael R Sweet 3d90ace317 More tweaks to make .title classes consistent. 2017-12-19 10:54:02 -05:00
Michael R Sweet fd21ed5d82 Tweak CSS for generated documentation. 2017-12-19 10:51:41 -05:00
Michael Sweet cfd375ad10 Online help fixes.
cgi-bin/help-index.c:
- Fix indexing of indented comments, body elements, etc.
- Add support for anchors via ID attribute.
- Fix anchor scanning bug when the anchor name is quoted.

cgi-bin/testhi.c:
- Add support for specifying section and directory to index.

doc/help/*.html:
- Fix headings and anchors.
2017-12-19 00:05:30 -05:00
Michael R Sweet c88f441f94 Fix default TLS versions. 2017-12-18 23:45:22 -05:00
Michael Sweet 3f76968f99 Expand a bit on the firewall documentation (Issue #5202) 2017-12-18 21:59:57 -05:00
Michael Sweet 5e1c3dff00 Support <body> being indented. 2017-12-18 21:29:42 -05:00
Michael R Sweet 9e44dfbe6c Add conditional code for posix_spawn when using uClibc (Issue #5188) 2017-12-18 17:26:19 -05:00
Michael R Sweet 9661b11263 Fix TLS on macOS. 2017-12-15 19:30:22 -05:00
Michael R Sweet 7ca56f9982 Fix localization of "calendared" and "uncalendared" media-tooth values. 2017-12-15 16:40:20 -05:00
Michael R Sweet 91bc88ebf7 Fix authentication issues. 2017-12-15 00:03:21 -05:00
Michael R Sweet dda99de928 Fix man page typos. 2017-12-14 17:22:14 -05:00
Michael R Sweet 89f3668e0b Fix sub-collection testing (Issue #4096) 2017-12-14 17:14:00 -05:00
Michael R Sweet 336b669e2e The cupsCopyDestConflicts function now handles collection attribute
("media-col", "finishings-col", etc.) constraints (Issue #4096)

cups/dest-options.c:
- Add cups_collection_contains and cups_collection_string functions.
- Implement collection checking in cups_test_constraints.

cups/encode.c:
- Remove unused variable and assignments in cupsEncodeOptions2.
2017-12-14 17:06:24 -05:00
Michael R Sweet 841a2216d9 Factor out the option to IPP attribute encoding code into a new private API. 2017-12-14 14:23:51 -05:00
Michael R Sweet 8d59b9f749 Update help text. 2017-12-14 09:58:52 -05:00
Michael R Sweet c5f5c5a768 The cupsEnumDests function did not include options from the lpoptions
files (Issue #5144)

cups/dest.c:
- Add destination array for lpoptions destinations and options.
- Move application of options from _cupsGetDests to cups_enum_dests.
- Update cups_get_dests to offer a "load all" mode.

cups/testdest.c:
- Show the default destination
- Add --get.
2017-12-14 09:45:08 -05:00
Michael R Sweet db0c6e1dc6 Update home page to reference current documentation. 2017-12-14 09:20:39 -05:00
Michael R Sweet 67091b1b0e Add firewall documentation (Issue #5192) 2017-12-14 09:13:09 -05:00
Michael R Sweet 0e4593c0be Fix typo (Issue #5190) 2017-12-14 08:25:47 -05:00
Michael R Sweet 6d14c1bbc6 The scheduler now substitutes default values for invalid job attributes when
running in "relaxed conformance" mode (Issue #5186)
2017-12-13 15:00:35 -05:00
Michael R Sweet f84606244b Use IPP printer-state-reasons localizations instead of the old English strings. 2017-12-13 14:05:04 -05:00
Michael R Sweet cfa8aa69a5 Add support for IPP presets (Issue #5179) 2017-12-11 18:28:08 -05:00
Michael Sweet 034b06df8f Rename HTTP_STATUS_REDIRECT_TEMPORARILY to HTTP_STATUS_FOUND, to match RFC 7231.
(still have a define for the old name...)
2017-12-08 19:16:48 -05:00
Michael Sweet aa0309120d Add missing HTTP status message for 302 (moved temporarily). 2017-12-08 18:43:24 -05:00
Michael R Sweet 060016a056 Add support for IPP Presets attributes. 2017-12-07 15:49:53 -05:00
Michael R Sweet 253dc4fceb Fix requested attributes group mappings. 2017-12-07 15:48:58 -05:00
Michael R Sweet 01dee74c61 Fix some typos that prevented the cupsFinishingTemplate option from being
fully populated.
2017-12-07 15:33:34 -05:00
Michael R Sweet c4c3624180 Fix Linux compiler warning. 2017-12-07 12:02:44 -05:00
Michael R Sweet accedcf822 Fix compile errors on Linux. 2017-12-07 12:00:42 -05:00
Michael Sweet ac05c63065 Fix PAM module detection and add support for the "common-*" includes used on
Ubuntu (Issue #5185)

conf/pam.common: PAM definition that uses system-wide default (common) modules.

config-scripts/cups-pam.m4: Add PAM module directory search paths, look for common includes.

configure: Regenerate.
2017-12-07 11:50:32 -05:00
Michael Sweet 1576d09baf Update the network printer help document (Issue #5177) 2017-12-07 09:51:22 -05:00
Michael Sweet f05177e23d Add information on printer options, sharing, and debug logging.
Add admin.html to installed help files.

Fix CSS bug.
2017-12-06 23:50:36 -05:00
Michael Sweet f306ad4d32 Finalize printer and class information in new administration guide.
Update lpadmin to copy printer-info, printer-location, and printer-geo-location
from the IPP printer when using the "everywhere" driver.

Update lpinfo to list the "everywhere" driver.
2017-12-06 22:43:57 -05:00
Michael R Sweet fce9ddcbee Save work on new command-line administration help file. 2017-12-05 20:00:35 -05:00
Michael R Sweet 42a5ae2af8 Fix writing of default options (Issue #4717) 2017-12-05 14:58:19 -05:00
Michael R Sweet ec1305170b Merge pull request #5184 from albert-astals-cid-kdab/master
Fix compilation
2017-12-05 12:31:14 -05:00
Michael R Sweet 454619c757 Fix builds. 2017-12-05 12:30:40 -05:00
Albert Astals Cid 0f32ec93ad Fix compilation 2017-12-05 10:23:36 +01:00
Michael Sweet edf09ba912 Some more localization fixes and simplifications. 2017-12-01 17:00:17 -05:00
Michael Sweet 84de5e9234 Last of the media improvements (Issue #5167)
cups/dest-localization.c:
- Use "other tray" and "other media" for unknown media sources and types.

cups/dest-options.c:
- media-key is king for size matching.
- Synthesize a media-key value using the size name unless we can't get one.

cups/language-private.h:
- Add _CUPS_MESSAGE_PO constant.

cups/pwg-media.c:
- Allow PWG names with a trailing "_foo" qualifier (so media-key still works
  if an application just adds the _cups_size_t.media value as the "media"
  option.

locale/*.{po,pot,strings}:
- Update localization strings.

locale/cups.footer:
- Add common HP and Canon media types.

locale/checkpo.c:
- Fix \ validation.
2017-11-30 11:38:54 -05:00
Michael Sweet 63b75fbef9 Update documentation. 2017-11-29 18:07:19 -05:00
Michael Sweet 71dc43af7a Finish up media improvements (Issue #5167)
cups/cups.h:
- Add cupsAddDestMediaOptions API.

cups/dest-localization.c:
- Fix cupsLocalizeDestMedia API.

cups/dest-options.c:
- Synthesize a media-key value when one is not provided by the printer (!?!?)
- Add cupsAddDestMediaOptions API.
2017-11-29 18:07:19 -05:00
Michael Sweet 982be458e6 First part of better media support (Issue #5167)
cups/dest-localization.c:
- Fix localization of borderless/non-borderless media.

cups/dest-options:
- Add support for borderless size names (still needs work)

cups/ppd-cache.c:
- Fix PageSize support in PPD generator - borderless media and custom page sizes.

cups/testppd.c:
- Need to request media-col-database for PPD generator.
2017-11-29 18:07:19 -05:00
Michael Sweet 7e38261379 Changelog. 2017-11-29 18:07:19 -05:00
Michael R Sweet 704499ddee Merge pull request #5181 from LuHee/master
Respect AccessLog configuration when compiled against journald.
2017-11-28 17:44:01 -05:00
Lutz Heermann 7118716713 Respect AccessLog configuration when compiled against journald. 2017-11-28 21:40:22 +01:00
Michael Sweet 4f63d6cdaf Add support for finishings-col (Issue #5180)
- cups/ppd-cache.c: Look for cupsFinishingTemplate option,
  finishings-col-database attribute.  Add finishings-col with
  finishing-template.
- cups/ppd-private.h: Add array of finishing-template names.
- scheduler/printers.c: Add finishings-col-database.
2017-11-28 12:59:45 -05:00
Michael Sweet 27ee2c4dd7 Add cupsFinishingTemplate to generated PPDs. 2017-11-27 17:01:29 -05:00
Michael Sweet 4b9c510fd7 Ignore PWG raster samples. 2017-11-27 15:56:27 -05:00
Michael Sweet 7f9a23b9bf Changelog. 2017-11-27 15:55:50 -05:00
Michael R Sweet 13696eb2c6 Merge pull request #5170 from reddevillg/patch-1
consider loop detected to be success
2017-11-27 15:53:05 -05:00
Michael R Sweet 4f98c13cc3 Report printer-strings-uri from PPD file (Issue #5168) 2017-11-10 15:36:48 -05:00
Michael R Sweet 89550f3f33 Add media-type localizations for printer-specific media types (Issue #5168)
cups/dest-localization.c: Move .strings file loader to language.c.
cups/language-private.h: Add load options for _cupsMessageLoad.
cups/language.c: Move .strings file loader to this file.
cups/ppd-cache.c: Save printer-strings-uri value and load the strings file for m
edia-type
cups/ppd-private.h: Bump cache version and add strings_uri.
locale/checkpo.c: Use _cupsMessageLoad for .strings files.
2017-11-10 15:33:47 -05:00
Michael R Sweet 9fafba54bf Remove old GPL stuff. 2017-11-10 15:33:39 -05:00
Michael R Sweet cd5cb66598 Remove old GPL stuff. 2017-11-10 15:31:06 -05:00
Michael R Sweet 4b042bf6e3 Remove old GPL notices. 2017-11-10 15:30:22 -05:00
Michael R Sweet da9ffe2329 Changelog. 2017-11-10 12:15:36 -05:00
Michael R Sweet e944dbd40f Fix GPL reference in README (Issue #5172) 2017-11-10 10:24:18 -05:00
Michael R Sweet 363746937a Workaround getgrouplist group data overwrite bug on OpenBSD (Issue #5166) 2017-11-10 10:20:54 -05:00
reddevillg 312370bd75 consider loop detected to be success
if return 0, load_ppds won't continue to search other files in current directory.
2017-11-10 11:12:16 +08:00
Michael R Sweet 7be499d208 Add examples for PageLogFormat for job-impressions-completed and job-media-sheets-completed. 2017-11-09 10:54:11 -05:00
Michael R Sweet 3d468ced3d The scheduler no longer logs pages as they are printed, instead just logging
a total of the pages printed at job completion (Issue #4991)

- man/cupsd-logs.man: Update page_log information.
- scheduler/job.c: Move cupsdLogPage to finalize_job, make update_job only
  accept a "PAGE: total NNN" message if the count is greater than the total
  cupsd already has. Also track sheets.
- test/run-stp-tests.sh: Fix page log verification for Test3 since we now just
  have the total lines.
2017-11-08 18:00:44 -05:00
Michael R Sweet eb2cb9b09f The scheduler did not write out dirty configuration and state files if there
were open client connections (Issue #5118)

(reverted b393bc2)
2017-11-08 17:30:45 -05:00
Michael R Sweet d56216499e Fix "ippfind _SomeName" (Issue #4833) 2017-11-08 17:22:25 -05:00
Michael R Sweet 105b26dede Fix dates and update license help file. 2017-11-07 14:05:41 -05:00
Michael R Sweet e310189747 License change: Apache License, Version 2.0. 2017-11-07 12:11:35 -05:00
Michael R Sweet 0e743fdf62 Changelog. 2017-11-06 16:51:07 -05:00
Michael R Sweet a236979ee3 Merge pull request #5161 from gpunktschmitz/master
added html tag LABEL to inputs of type CHECKBOX and RADIO
2017-11-06 16:50:03 -05:00
Michael R Sweet 7ec1163068 Support the latest HTTP Digest authentication specification (Issue #4862)
Also deprecates all httpMD5* functions.

- cgi-bin/var.c: Use cupsHashData to compute SID hash.
- cups/auth.c: Rewrite WWW-Authenticate parser to support multiple auth schemes
  and the new RFC 7616 version of HTTP Digest.
- cups/cups.h: Add cupsHashString function to get a hex version of a hash.
- cups/hash.c: Add MD5 support.
- cups/http.c: Track WWW-Authenticate in a long string, concatenate new set
  values.
- cups/http.h: Deprecate httpMD5* and recommend cupsDoAuth and cupsHash*.
- cups/http-private.h: Pull MD5 stuff, nonce_count is unsigned, track
  WWW-Authenticate header as a potentially long string.
- cups/http-support.c: Use cupsHashData to compute UUID hash.
- cups/md5.c: Comment everything out if we have an OS-supplied MD5 hash
  function.
- cups/md5passwd.c: Use cupsHash* functions.
- cups/tls-*.c: Use cupsHash* functions.
- cups/versioning.h: Add CUPS_API_2_3 definition.
- scheduler/client.c: Update WWW-Authenticate header to include AuthRef,
  Local, and PeerCred schemes with parameters as needed.
2017-11-06 16:28:31 -05:00
Michael R Sweet 054eee9cd0 Add prototype System Service operations and attribute groups. 2017-11-06 16:28:31 -05:00
Michael R Sweet 6f2b9f6274 Merge pull request #5162 from chemicalstorm/chemicalstorm-typo-fr
Fix typo in french translation
2017-11-06 12:40:03 -05:00
Audric Schiltknecht 9bfae9a772 Fix typo in french translation 2017-11-06 12:16:46 -05:00
Guenther Schmitz 7db9341466 added html tag LABEL to inputs of type CHECKBOX and RADIO 2017-11-06 13:21:14 +01:00
Michael R Sweet 8f1fbdecb4 Add support for MinTLS and MaxTLS options (Issue #5119)
- cups/http-private.h: Move TLS/SSL version options to separate version
  constants, make _httpTLSSetOptions take min/max version numbers.
- cups/tls-*.c: Update _httpTLSSetOptions and _httpTLSStart to use new min/max
  version numbers.
- cups/tlscheck.c: Update _httpTLSSetOptions call.
- cups/usersys.c: Support new SSLOptions values, update _httpTLSSetOptions call.
- scheduler/conf.c: Support new SSLOptions values, update _httpTLSSetOptions
  calls.
2017-11-03 11:27:04 -04:00
Michael R Sweet 513f1b621c Fix cut/paste error (Issue #5071) 2017-11-03 10:25:15 -04:00
Michael R Sweet d7b386888e Add support for DNSSDHostName configuration directive (Issue #5071) 2017-11-03 10:15:56 -04:00
Michael R Sweet 6646208ba5 Add support for writing ippserver attributes files from ipptool (Issue #5093) 2017-11-01 17:19:49 -04:00
Michael R Sweet c5d2b23327 Use the DNS-SD hostname when registering shared printers (Issue #5071) 2017-11-01 16:20:56 -04:00
Michael R Sweet 47386fc106 Update the Kerberos help file (Issue #4580) 2017-11-01 16:03:41 -04:00
Michael R Sweet 3aca6b555e Fix ppdi/ppdc unit tests - english localization is the default and shouldn't be overriden by system.
Update sample.drv for new CUPS version.
2017-11-01 15:55:15 -04:00
Michael R Sweet d6db9ea1dc The lp and lpr commands now provide better error messages when the default
printer cannot be found (Issue #5096)

- berkeley/lpr.c: Use cupsLastErrorMessage() for not-found errors.
- cups/dest.c: Set the last error message in cupsGetNamedDest().
- systemv/lp.c: Use cupsLastErrorMessage() for not-found errors.
2017-11-01 15:45:50 -04:00
Michael R Sweet 409f54979f Add support for "printer-id" attribute (Issue #4868) 2017-11-01 14:48:06 -04:00
Michael R Sweet 25140c63ec Silence Clang static analyzer warning. 2017-11-01 14:41:39 -04:00
Michael R Sweet 7a16b8b30a Make a symlink for ipps in the backends directory. 2017-11-01 14:41:08 -04:00
Michael R Sweet 87de8b54d7 Report when new jobs are being held (Issue #4761) 2017-11-01 12:58:17 -04:00
Michael R Sweet f1547f121c No longer support backslash, question mark, or quotes in printer names (Issue #4966) 2017-11-01 12:27:58 -04:00
Michael R Sweet d0df9cd337 Update lpadmin documentation and show a meaningful error message for interface scripts (Issue #5111) 2017-11-01 12:15:35 -04:00
Michael R Sweet b00c84094b Drop RSS subscription management from the web interface (Issue #5012) 2017-11-01 12:06:06 -04:00
Michael R Sweet 98491ecc6f Drop hard-coded CGI scripting language support (Issue #5124) 2017-11-01 12:00:13 -04:00
Michael R Sweet 4d8e89a654 Fix the ippserver sample code when threading is disabled or unavailable (Issue #5154) 2017-11-01 11:56:33 -04:00
Michael R Sweet 11143dcf5b Start CUPS 2.3.x development. 2017-11-01 11:23:38 -04:00
Michael R Sweet 18a1649286 Need to look further down in CHANGES.md, fix messages to use .md suffix. 2017-11-01 10:59:53 -04:00
Michael R Sweet 58c3683023 Update version check to reflect new changelog title format. 2017-11-01 10:57:53 -04:00
Michael R Sweet 303be29243 Bump versions... 2017-11-01 10:56:47 -04:00
Michael R Sweet 275af5ac7b Update CUPS programming manual. 2017-11-01 10:51:16 -04:00
Michael R Sweet d821d89415 Revert change in cupsDoIORequest, which caused problems. 2017-11-01 10:22:12 -04:00
Michael R Sweet 6579c998c4 Fix handling of "yue" language. 2017-10-30 12:20:12 -04:00
Michael R Sweet 1377fb858c Merge pull request #5155 from DavieV/check-printer-first
Rearranging order of null checks in lpadmin
2017-10-30 12:04:06 -04:00
DavieV f9ee3b81e1 Rearranging order of null checks in lpadmin 2017-10-25 22:29:01 -07:00
Michael Sweet 7e50a735a8 Changelog. 2017-10-25 13:36:33 -04:00
Michael R Sweet 56b62a3b54 Merge pull request #5152 from michaelweghorn/michaelweghorn/add_missing_space_in_localization
Add missing space in German localization
2017-10-25 10:04:41 -04:00
Michael Weghorn 02773ede84 Add missing space in German localization 2017-10-25 15:03:23 +02:00
Michael Sweet ec9996719f Update fanfold sizes. 2017-10-23 17:48:40 -04:00
Michael Sweet affaf0737f Update message catalogs. 2017-10-23 17:29:15 -04:00
Michael Sweet 49fa4983f2 DBUS notifications could crash the scheduler (Issue #5143)
- scheduler/ipp.c: Make sure requesting-user-name string is valid UTF-8.
2017-10-23 16:23:43 -04:00
Michael R Sweet 34be0e8038 Merge pull request #5150 from hardfalcon/master
Fix AllowRC4 and AllowSSL3 on GnuTLS platforms
2017-10-23 16:07:45 -04:00
Pascal Ernster ce0d9679a4 Fix indention 2017-10-22 23:33:07 +02:00
Pascal Ernster fad821594f Fix AllowRC4 and AllowSSL3 on GnuTLS platforms 2017-10-22 22:34:42 +02:00
Pascal Ernster f8913c6d2c Merge branch 'master' of https://github.com/apple/cups 2017-10-22 22:13:10 +02:00
Pascal Ernster a75c0e5961 Revert "Clean up implementation for SSLOptions"
This reverts commit c61b78bd84.
2017-10-22 22:12:51 +02:00
Pascal Ernster 5ee613bbc6 Revert "Changed AllowDH to no-op on gnutls platforms, explicitly disabled ANON-DH and ANON-ECDH ciphersuites on gnutls"
This reverts commit 46a7b416ee.
2017-10-22 22:12:18 +02:00
Michael Sweet 02c88e673e Fix cipher suite selection with GNU TLS (Issue #5145)
Also make sure that client.conf SSLOptions do not override cupsd.conf
SSLOptions, and document the (hopefully obvious) fact that Allow* is less
secure and Deny* is more secure.

- cups/http-private.h: Add "_HTTP_TLS_SET_DEFAULT" flag for options set from
  client.conf.
- cups/tls-*.c: Use new flag.
- cups/tls-gnutls.c: Fix CBC cipher suite exclusion logic, and always disable
  anonymous DH.
- cups/usersys.c: Pass new flag when calling _httpTLSSetOptions.
- man/*: Update documentation.
2017-10-19 22:44:12 -04:00
Pascal Ernster 46a7b416ee Changed AllowDH to no-op on gnutls platforms, explicitly disabled ANON-DH and ANON-ECDH ciphersuites on gnutls 2017-10-20 03:23:01 +02:00
Pascal Ernster c61b78bd84 Clean up implementation for SSLOptions 2017-10-20 00:37:43 +02:00
Michael R Sweet 0ae5b012b2 Merge pull request #5146 from DavieV/fix-ifs
Remove unnecessary nesting in if statements.
2017-10-19 10:52:59 -04:00
Michael Sweet 15bba96c30 Update configure script. 2017-10-19 10:52:21 -04:00
Michael Sweet bea3713442 Changelog and bump CUPS version. 2017-10-19 10:52:21 -04:00
Michael R Sweet 5639a7b41c Merge pull request #5148 from zdohnal/quirks
add usb quirks for canon mp540 and Samsung ML-2160 Series
2017-10-19 10:49:48 -04:00
Zdenek Dohnal 360e815a88 add usb quirks for canon mp540 and Samsung ML-2160 Series 2017-10-17 18:28:39 +02:00
DavieV c00282bb43 Remove unnecessary nesting in if statements. 2017-10-16 14:24:13 -07:00
Michael R Sweet 3a16bd9c9d Packaging changes for newer localizations. 2017-10-13 14:22:26 -04:00
Michael Sweet a7cdcd19b8 More updates to the README file. 2017-10-12 20:37:36 -04:00
Michael Sweet 79424d8b9a Prep for 2.2.5 release. 2017-10-12 20:16:09 -04:00
Michael R Sweet 5889fea75a Merge pull request #5139 from kant/patch-1
Clean up README markup(down).
2017-10-12 19:39:22 -04:00
Darío Hereñú 16389be3ba Minor fixes (proposals) 2017-10-12 16:53:46 -03:00
Michael Sweet f97678f279 Ignore new test programs. 2017-10-12 14:46:02 -04:00
Michael Sweet 979804902c Fix "make check" for restricted environments (Issue #5099) 2017-10-12 14:27:18 -04:00
Michael Sweet b889560c05 Fixed the script interpreter detection in the configure script (Issue #5122) 2017-10-12 10:43:35 -04:00
Michael Sweet c9e9d0e810 Changlog + remove generated web interface header template (Issue #5134) 2017-10-12 10:26:09 -04:00
Michael R Sweet a5dd746bd0 Merge pull request #5134 from LAfricain/master
Creation of template/fr and French translation of all the template files
2017-10-12 10:23:44 -04:00
Michael Sweet 6b33281c3e One further fix for cupsGetDests2 - don't show network printers when the server
is remote.
2017-10-12 08:31:03 -04:00
Michael Sweet 9554d4e748 cupsGetDests2 was not using the supplied HTTP connection (Issue #5135)
- Make a local cups_enum_dests function that accepts a http_t *.
- Have both cupsEnumDests and cupsGetDests2 call cups_enum_dests.
2017-10-11 13:27:36 -04:00
Michael Sweet c0a47c1101 Fix crash in debug printf. 2017-10-11 13:23:27 -04:00
Michael Sweet 4cf66fef48 The network backends now retry on more error conditions (Issue #5123) 2017-10-05 15:04:19 -04:00
Lafricain b17b635a37 Correction of a bad translation 2017-10-05 13:00:42 +01:00
Michael Sweet 5d8b7d2665 Add support for Japanese Kaku 1 envelope size (rdar://34774110)
- Add jpn_kaku1_270x382mm size to table.
2017-10-02 19:29:52 -04:00
Michael Sweet e4e371946b The scheduler did not run with a high enough priority, causing problems on
busy systems (rdar://33789342)

- Change ProcessType to Adaptive for both cupsd and cups-lpd
- Add "working" parameter to cupsdSetBusyState
- Call cupsdSetBusyState on startup to boost the priority on startup.
2017-10-02 19:14:25 -04:00
Lafricain 46d22fe908 Creation of Template/fr and French translation of all the template files 2017-10-02 13:56:19 +01:00
Michael R Sweet 9d4ae311cb Merge pull request #5112 from paulmenzel/remove-libgcrypt-detection
Remove Libgcrypt detection
2017-09-28 13:12:01 -04:00
Michael Sweet 2cf3a36a4e One more thing for macOS (Issue #5116) 2017-09-25 10:55:27 -04:00
Michael Sweet fd2f0a7af7 Update INSTALL.md (Issue #5116) 2017-09-25 10:54:36 -04:00
Michael Sweet aa2a77dec8 Add USB quirk for HP LaserJet 1160 (Issue #1160) 2017-09-25 10:19:17 -04:00
Michael Sweet f0f4e0366c Update configure script. 2017-09-24 11:51:48 -04:00
Michael Sweet 4279822fe4 Suppress new GCC warning about snprintf truncation (Issue #5110) 2017-09-24 11:51:07 -04:00
Michael Sweet c6990c1ed5 Re-document that file devices do not work with raw queues, and move FileDevice
to the list of deprecated configuration directives (Issue #5117)
2017-09-21 22:47:04 -04:00
Michael Sweet c31737b031 Bump Xcode CUPS version. 2017-09-21 22:39:52 -04:00
Michael Sweet 2d947886ad Fix Windows builds. 2017-09-14 14:20:07 -04:00
Michael Sweet 116c301f23 Detach worker threads to prevent memory leaks. 2017-09-14 14:19:00 -04:00
Michael Sweet b908d72cac Fix memory leaks. 2017-09-14 14:12:49 -04:00
Michael Sweet 2cb1fda9fe Allow DELAY values of 0. 2017-09-12 12:21:00 -04:00
Paul Menzel 0728c89bcf config-scripts/cups-ssl.m4: Remove Libgcrypt detection
Upstream a change from the book *Beyond Linux From Scratch* [1].

> Prevent configure script from searching libgcrypt-config, because
> libgcrypt is not used anywere else in the package.

[1] http://www.linuxfromscratch.org/blfs/view/svn/pst/cups.html
2017-09-12 13:18:21 +02:00
Michael Sweet 123cfe0202 The scheduler (incorrectly) woke up once per second to remove stale temporary
queues (Issue #5100).

- scheduler/main.c: Update local_timeout to start at 0 and only get updated as
  needed.

Fixes: #5100
2017-09-11 17:08:17 -04:00
Michael Sweet d2123aee55 Fix mapping and defaulting of print-quality/cupsPrintQuality (Issue #5090)
- cups/dest.c: Don't include empty default media or print-quality in dest
  options.
- cups/options.c: When setting cupsPrintQuality, clear print-quality and vise-
  versa.
- cups/testipp.c: Use current API to show attribute values.
- scheduler/ipp.c: Log request attributes, defaults.
- scheduler/job.c: Add/map print-quality/cupsPrintQuality, log mapped options.

Fixes: #5090
2017-09-11 16:22:45 -04:00
Michael Sweet ea4dcf9ff4 The ipptool program did not compare URI scheme or hostname components
correctly for the WITH-ALL-HOSTNAMES, WITH-ALL-SCHEMES, WITH-HOSTNAME, or
WITH-SCHEME predicates.

Also fix EXPECT reporting for the URI component WITH predicates.
2017-09-07 10:36:09 -04:00
Michael Sweet b39dd420c6 Fix builds without Bonjour/Avahi (Issue #5105) 2017-09-05 17:03:10 -04:00
Michael Sweet 5614f45d77 Changelog. 2017-09-05 16:59:06 -04:00
Michael R Sweet 5229ea1a41 Merge pull request #5103 from michaelweghorn/issue5102
Add a USB quirk rule for the Kyocera Ecosys P6130cdn (Issue #5102)
2017-09-05 16:57:36 -04:00
Michael Weghorn b72c5bf2ed Add a USB quirk rule for the Kyocera Ecosys P6130cdn (Issue #5102) 2017-09-01 13:37:36 +02:00
Michael Sweet befbadcef6 Fix ipptool -P output (some was going to stdout...) 2017-08-31 08:38:39 -04:00
Michael Sweet 7b0a28e38f httpAddrConnect leaked sockets in certain circumstances, causing some
printers to hang (rdar://31965686)
2017-08-29 20:42:05 -04:00
Michael Sweet e78c14f7ea Fix create-job.test file to use filename on command-line. 2017-08-29 20:30:46 -04:00
Michael Sweet e146105294 Always use chunking unless it is a simple request. 2017-08-29 20:30:27 -04:00
Michael Sweet e37405ea8e Add verbosity option. 2017-08-29 20:29:54 -04:00
Michael Sweet 5535551fd9 Add -d (document-format) option to override which format is used. 2017-08-29 19:56:08 -04:00
Michael Sweet 7f14a29798 Fix output to write a full page.
Add "force grayscale" option.
2017-08-29 19:44:10 -04:00
Michael Sweet 4b16c717e5 Move test client program to filter directory, finish initial implementation. 2017-08-29 17:27:49 -04:00
Michael Sweet 240a27f93b Save work on client code. 2017-08-29 14:15:00 -04:00
Michael Sweet 75e1a17cad Add client simulator for testing basic client functionality from a single
program.
2017-08-29 12:06:23 -04:00
Michael Sweet 40cc612af4 Fix the interactions between the "print-quality" and "cupsPrintQuality"
options (Issue #5090)

- Make sure print-quality-default does not override cupsPrintQuality
- Make sure print-quality overrides cupsPrintQuality
2017-08-29 09:33:48 -04:00
Michael Sweet 9449dd948a The CUPS library did not reuse domain sockets (Issue #5098) 2017-08-28 17:59:13 -04:00
Michael Sweet 2793a478d0 The web interface did not support newer language identifiers used by Microsoft
web browsers (Issue #5803)

Make sure cupsLangGet supports region codes and that the scheduler uses
cupsLangGet when mapping IPP naturalLanguage values to POSIX locales.
2017-08-28 16:18:18 -04:00
Michael R Sweet 5b6caf71b8 More changes for localization unit test (Issue #5097) 2017-07-25 19:57:31 -04:00
Michael Sweet b10aebb1d3 Update localization information.
Create English locale file from cups.pot for unit tests.
2017-08-28 12:29:22 -04:00
Michael Sweet 9964a31a77 Fix the localization unit test on Linux (Issue #5097)
Makefile needed to create locale directory for tests.

Also, localization test needs to allow string pointers to match for the POSIX
locale and differ for other languages.
2017-08-28 12:19:58 -04:00
Michael Sweet 7c7347a346 Update the cups-files.conf and cupsd.conf file documentation for missing
directives (Issue #5084)
2017-08-28 10:39:18 -04:00
Michael Sweet b337f966e8 Fix an Avahi-related crash bug in the scheduler (Issue #5085, Issue #5086)
Add NULL pointer check to avoid Avahi assertion in production code.
2017-08-28 10:04:29 -04:00
Michael Sweet e9b2d701da Fix compile issue for PID file stuff when no systemd/launchd/upstart is
available.

Also restructure code slightly so it isn't so convoluted.
2017-08-27 10:59:38 -04:00
Michael Sweet 91d748b919 Fix sorting bug. 2017-08-27 10:58:06 -04:00
Michael Sweet fa76bc3dc0 The IPP Everywhere PPD generator now sorts the supported resolutions before
choosing them for draft, normal, and best quality modes (Issue #5091)

Also prefer urf-supported values over pwg-raster-document-xxx-supported values
since the former is more reliable than the latter.
2017-08-27 10:40:30 -04:00
Michael Sweet 4f272af7bb Support internal "only TLS/1.0" option for tlscheck.
Expand CBC filter on macOS.

Add support for --tls10 and --no-cbc options with tlscheck.
2017-08-25 16:39:50 -04:00
Michael R Sweet b770b18d0f Merge pull request #5081 from sblondon/master
Update french translations
2017-08-25 00:56:08 -04:00
Michael Sweet b0a1b229b3 Update changelog. 2017-08-09 13:45:19 -04:00
Michael Sweet 997db40489 Fix the localization fallback code on macOS (rdar://33583699) 2017-08-09 13:43:08 -04:00
Stephane Blondon 07911378c0 Update french translations 2017-08-06 21:58:53 +02:00
Michael Sweet 345e10ca71 Add header validation option to ipptool.
Update HTML versions of man pages.
2017-08-04 12:52:43 -04:00
Michael Sweet 41c0a57318 Fix compiler warning. 2017-08-03 14:00:17 -04:00
Michael Sweet 10f9350b7e The ippCopyAttribute function did not copy out-of-band values correctly
(rdar://33688003)
2017-08-02 19:53:50 -04:00
Michael Sweet 03bc3ef4c2 The scheduler now creates a PID file when not running on demand with a modern
service launcher (Issue #5080)
2017-08-01 19:16:25 -04:00
Michael Sweet 7e7a13a32e Update localizations yet again based on IPP sample strings. 2017-08-01 17:09:33 -04:00
Michael Sweet 60716f946c Update copyright. 2017-08-01 00:29:21 -04:00
Michael Sweet e34d348250 Fix default language for multi-language PPDs. 2017-07-31 21:39:13 -04:00
Michael Sweet ada3421240 Fix the adminurl field in the TXT record for fully-qualified ServerName
values (Issue #5074)
2017-07-31 21:29:20 -04:00
Michael Sweet a2a13afb48 Fix the default ServerAlias value (Issue #5072) 2017-07-31 17:55:01 -04:00
Michael Sweet 259b03bc46 Update localization files with corrections for IPP strings. 2017-07-31 17:34:11 -04:00
Michael Sweet a375587b8c Fix localizations of some media sizes and remove localizations of operation
names.
2017-07-31 14:59:06 -04:00
Michael Sweet 0bc1a539f4 Clean up unit test. 2017-07-25 18:26:20 -04:00
Michael Sweet 86390cbf57 Add unit test that loops calling cupsGetDests. 2017-07-25 18:18:14 -04:00
Michael Sweet ced9dda826 Add error checking for all Bonjour browsing in cupsEnumDests.
Clean up testcups unit tests.
2017-07-25 18:11:01 -04:00
Michael Sweet e9faaeef18 Changelog. 2017-07-24 22:45:46 -04:00
Michael Sweet c9dbe83d17 Remove old API documentation files. 2017-07-24 22:45:08 -04:00
Michael R Sweet e3b9d1f520 Use a 250ms delay for cupsGetDests - not perfect, but usually gets the full
list of local network printers (Issue #5049)
2017-07-24 22:43:56 -04:00
Michael Sweet 9f573d7be9 Try a much shorter enum time for cupsGetDests (Issue #5049) 2017-07-24 18:05:39 -04:00
Michael Sweet 5cc8588e8c Fix the ServerTokens None option (Issue #5065) 2017-07-24 17:29:07 -04:00
Michael R Sweet f198f7e1e7 Merge pull request #5066 from sblondon/master
Update french translations
2017-07-24 11:21:14 -04:00
Michael R Sweet 5e59cd062f Fix "DenyCBC" priority string with GNU TLS. 2017-07-23 20:02:57 -04:00
Stéphane Blondon bee711586d Update french translations 2017-07-22 15:52:10 +02:00
Michael Sweet e7729c5a14 The scheduler's -t option did not force all errors to the standard error
file, making debugging of configuration problems hard (Issue #5041)
2017-07-19 15:37:30 -04:00
Michael Sweet 9eb416ee89 Fix logging when "-t" is used (always to stderr). 2017-07-19 15:29:01 -04:00
Michael Sweet b74b285e47 Lower maximum poll()/select() time to 100ms (possible fix for Issue #5049) 2017-07-19 14:28:11 -04:00
Michael Sweet 48dfd9a9a2 Update changelog. 2017-07-19 14:26:08 -04:00
Michael Sweet 4174429905 Changelog. 2017-07-19 14:19:40 -04:00
Michael Sweet 13be9452da Fix a build issue with --enable-mallinfo (Issue #5051) 2017-07-19 14:12:41 -04:00
Michael Sweet a9357c9da4 Implement standard localizations in cupsLocalizeDest* (Issue #5056)
Add standard media size names to the localizations, too, since the PPD names
are not the right ones.
2017-07-19 13:55:32 -04:00
Michael Sweet 44b3f16133 Add base IPP attribute/value localizations (Issue #5056) 2017-07-19 12:35:41 -04:00
Michael Sweet c536b6c583 The cupsGetNamedDest function did not use the local default printer
(rdar://33228500)
2017-07-19 08:15:08 -04:00
Michael Sweet 03d3907a33 Changelog for Issue #5054. 2017-07-19 07:40:41 -04:00
Michael Sweet 76ae98d657 CUPS now sends the Date HTTP header in IPP requests (rdar://33302034) 2017-07-18 11:55:15 -04:00
Michael Sweet 6d086e08e4 Fix the cups.strings file generation (bug in code that generates the Unicode
quotes), and add support for .strings files in checkpo so that we can validate
the results from now on (rdar://33287650)
2017-07-18 11:33:03 -04:00
Michael Sweet 49f495c32e The IPP backend incorrectly sent the "job-pages-per-set" attribute to PDF
printers (rdar://33250434)

Need to save the original number of copies and only send "job-pages-per-set"
when the copy count is reset to 1 (as happens when printing with a raster
format...)
2017-07-18 10:10:16 -04:00
Michael R Sweet f8a5ad9bde Merge pull request #5054 from sanbrother/master
Fix : dead lock when there is already an active job
2017-07-18 08:31:49 -04:00
Michael R Sweet 07cb72471a Fix builds without libtool. 2017-07-17 20:44:20 -04:00
Michael R Sweet b94f7488e8 Fix more issues with libtool support (Issue #5050) 2017-07-17 19:58:53 -04:00
Michael R Sweet d2d605ff77 Fix authorization checks on macOS (no longer /etc/authorization, but now we don't need
to look for the old names from 10.5...)
2017-07-17 19:49:27 -04:00
Michael R Sweet 6eda776e8a Update help text so everything lines up properly and is consistent and spelled correctly. 2017-07-17 18:28:27 -04:00
Michael R Sweet a621d151e7 Update libtool support to include --mode=foo stuff - surprise, libtool changed in
incompatible ways again...  (Issue #5050)
2017-07-17 18:23:00 -04:00
Michael R Sweet 3a1e6b10c5 Merge pull request #5062 from rohieb/libtool-fixes
configure: don't accidentally set @LIBTOOL@ to 'yes'

I'll also be updating the help string to make this clearer as well.
2017-07-17 18:03:35 -04:00
Roland Hieber 7a0e5acde2 configure: don't accidentally set @LIBTOOL@ to 'yes'
Substituting @LIBTOOL@ with 'yes' would result in a lot of console
output (34 GB in my case, before SIGKILL), without getting anything
compiled at all.

Signed-off-by: Roland Hieber <r.hieber@pengutronix.de>
2017-07-17 14:23:39 +02:00
sanbrother c5755caf42 Fix : dead lock when there is already an active job 2017-07-11 14:28:23 +08:00
Michael R Sweet e44bdfe7e3 The IPP backend now always sends the "finishings" attribute for printers that
support it because otherwise the client cannot override printer defaults
(rdar://33169732)
2017-07-07 16:12:11 -04:00
Michael R Sweet b2f85109da The cupsGetDests function incorrectly returned an empty list of printers if there was
no default printer (Issue #5046)
2017-07-07 14:23:21 -04:00
Michael R Sweet fb963b8dd1 Add some more debug printfs to figure out Issue #5046... 2017-07-07 14:12:09 -04:00
Michael Sweet fdc80a913f Fix Apple language ID parsing to support three-letter language codes. 2017-07-04 19:34:12 -04:00
Michael Sweet 1a9743f9d7 Update language unit test to iterate over all macOS language IDs to validate
that libcups can handle them all (which it currently does not...)
2017-07-04 18:10:34 -04:00
Michael Sweet 534dfe8e94 Implement "default" command (show_default) function for media and other options. 2017-07-04 12:17:37 -04:00
Michael Sweet f1175a5a9d Bump CUPS Programming Manual version. 2017-07-04 09:59:01 -04:00
Michael Sweet db5424ea51 Fix a typo in the CUPS Programming Manual (Issue #5042) 2017-07-04 09:57:33 -04:00
Michael Sweet cac6b6562c Update changelog, remove reference to issue number in spec file. 2017-07-04 09:46:28 -04:00
Michael R Sweet b67c2dd202 Merge pull request #5044 from kesterriley/patch-1
Update cups.spec.in
2017-07-04 09:45:01 -04:00
kesterriley b3f6f8d202 Update cups.spec.in
To fix issue 5043.

Checking for unpackaged file(s): /usr/lib/rpm/check-files /root/rpmbuild/BUILDROOT/cups-2.2.4-0.x86_64
error: Installed (but unpackaged) file(s) found:
   /usr/share/locale/zh_CN/cups_zh_CN.po


RPM build errors:
    Installed (but unpackaged) file(s) found:
   /usr/share/locale/zh_CN/cups_zh_CN.po
2017-07-04 07:34:04 +01:00
Michael Sweet 4fac83763d Add some additional debug messages for, um, debugging purposes... 2017-07-03 19:21:42 -04:00
Michael R Sweet 2650d637dc Update Apple language ID mapping to POSIX locale IDs (rdar://32419311) 2017-06-30 16:34:05 -04:00
Michael R Sweet 070e33a4c9 Prep for 2.2.4 release. 2017-06-30 11:44:38 -04:00
Michael Sweet 1da024d1a7 Update initial text concerning where to provide feedback. 2017-06-29 14:20:58 -04:00
Michael Sweet 6ad44eebc7 Update CUPS programming manual to explain what "localization" means. 2017-06-29 14:17:33 -04:00
Michael R Sweet 89c924d590 Don't support default printers that are not queues. 2017-06-28 09:29:10 -04:00
Michael Sweet e38ab40b22 Prevent underflow (unlikely, but possible) 2017-06-27 13:15:37 -04:00
Michael R Sweet f2e8714723 The SSLOptions directive in "client.conf" and "cupsd.conf" now supports DenyCBC and
`DenyTLS1.0` options (Issue #5037)
2017-06-26 13:22:57 -04:00
Michael R Sweet 8d7d268f61 Fix typo that slipped in with the changes for Issue #4897. 2017-06-26 12:28:07 -04:00
Michael Sweet ca9e55c9b5 Add cupsCheckDestSupported test to the supported action. 2017-06-22 09:07:47 -04:00
Michael Sweet b0fb2d75d3 Save work on CUPS programming manual. 2017-06-20 15:47:45 -04:00
Michael Sweet c9a0ff6208 Save resolved device URI back in the "device-uri" option (makes things simpler). 2017-06-20 14:31:03 -04:00
Michael Sweet 296cd66b68 Save resolved device URI. 2017-06-20 14:01:15 -04:00
Michael Sweet 90c67342b6 Add CUPS_DEST_FLAGS_DEVICE flag for cupsConnectDest. 2017-06-20 13:08:15 -04:00
Michael Sweet 956bb1274c Actually show the reason why PPD creation failed (Issue #5035) 2017-06-20 08:43:09 -04:00
Michael R Sweet ae7225e576 Fix test suite for Linux. 2017-06-19 12:50:28 -04:00
Michael Sweet c838ec5a3b Update and fix locale files. 2017-06-19 09:13:50 -04:00
Michael Sweet 6df8f83339 Changelog. 2017-06-19 09:11:25 -04:00
Michael Sweet 76b7b95c9e Changelog. 2017-06-19 09:11:25 -04:00
Michael R Sweet 058582b4b5 Merge pull request #5029 from AOSC-Dev/master
locale: introduce cups_zh_CN.po
2017-06-19 09:10:09 -04:00
Michael R Sweet 5c476bf970 Merge pull request #4996 from psychomario/cupstestppdbof
cupstestppd Buffer Overflow
2017-06-19 09:07:20 -04:00
Michael Sweet ef338d0c83 Add USB quirk rule for Lexmark E260dn (Issue #4994) 2017-06-19 09:05:12 -04:00
Michael Sweet 12b798a070 Report the value of the printer-is-temporary attribute (Issue #5028) 2017-06-19 08:59:55 -04:00
Michael Sweet 49b6c6af76 The cupsCheckDestSupported function did not support NULL values (Issue #5031) 2017-06-19 08:51:35 -04:00
Michael R Sweet de4966cb9b Fix crashes on Linux (Issue #5022) 2017-06-16 23:15:47 -04:00
Michael Sweet 7f500d8988 Fix some (bogus) clang warnings. 2017-06-16 22:47:31 -04:00
Michael R Sweet f34c1c99cd Fix compile warning.
Include systemd options.
2017-06-16 21:46:04 -04:00
Michael R Sweet 64447b5696 Use --enable/disable-avahi 2017-06-16 21:29:10 -04:00
Michael R Sweet 4466c8ca87 Fix manpage test. 2017-06-16 21:18:33 -04:00
Michael R Sweet 134d057955 Fix some typos. 2017-06-16 21:11:42 -04:00
Michael R Sweet 827bf9ce2d Fix some of the Linux-specific configure tests. 2017-06-16 21:08:04 -04:00
Michael R Sweet 3a6962171c One other spot (RPM's objcopy needs files to be writable...) 2017-06-16 20:55:20 -04:00
Michael R Sweet d4a895f856 Add configure option to set the installed executable permissions. 2017-06-16 20:53:24 -04:00
Michael Sweet 75105fbdfb Fix issues in RPM spec file. 2017-06-16 20:29:51 -04:00
Michael Sweet d2f1a784c4 Fix "make check" failure (Issue #5033) 2017-06-16 17:39:13 -04:00
Michael Sweet 62825d3445 Add queue type and printer-uri to long "lpstat -e" output. 2017-06-16 17:33:21 -04:00
Michael Sweet a537431a13 Add files to ignore.
Add manual feed test file.
2017-06-16 17:07:52 -04:00
Michael Sweet 35fc224370 Fix some output issues in ipptool introduced by migrating to the cupsFile API.
Have cupsFilePuts and cupsFilePrintf flush output on stdio files (keeps with
expectations when moving from stdio calls).

Update IPP tests to point to the right specs and sections, and fix IPP/1.1
tests WRT job progress attributes (which can have "no-value" out of band values
instead of integers).

Add an "lpstat -e" test.

Update test output to conform to HTML 5.

Copy all log files to HTML report and test directory.

Clean out old log and report files in test directory after a failed run.
2017-06-16 17:04:07 -04:00
Michael Sweet 2a75f21b6a Sync up with changes from IPP sample code project. 2017-06-15 20:53:04 -04:00
Michael Sweet ac032efa3e Update reference to Avahi poll bug (now moved to Github...) 2017-06-15 08:34:20 -04:00
Michael Sweet 08566de251 Remove unused MIME media types. 2017-06-15 08:33:00 -04:00
Michael Sweet f1dd3a3976 Update DELAY directive to support the repeat interval, which now defaults to a
constant of 5 seconds.
2017-06-13 09:19:03 -04:00
Michael Sweet 96a5df6235 Add CoreFoundation sandbox rules to CUPS sandbox profiles. 2017-06-12 14:36:05 -04:00
Michael Sweet 65bebeac76 Save work on documentation. 2017-06-12 09:05:40 -04:00
Mingcong Bai 5cb94b289a locale: introduce cups_zh_CN.po 2017-06-11 12:45:09 +08:00
Michael Sweet 98d88c8d47 Save work on documentation. 2017-06-08 19:59:02 -04:00
Michael Sweet 0668b48c10 Switch to newer xpc_transaction APIs. 2017-06-08 14:19:45 -04:00
Michael Sweet 718ee2fff3 Save work on CUPS Programming Manual. 2017-06-07 16:16:05 -04:00
Michael R Sweet 500fca270a Add note that the callback/block will get multiple calls for the same
destination during enumeration (Issue #5017)
2017-06-07 11:08:55 -04:00
Michael Sweet e1ba078bdc Update Xcode project with latest recommendations. 2017-06-07 09:20:28 -04:00
Michael Sweet 78ac829c63 Update header documentation. 2017-06-07 09:20:06 -04:00
Michael Sweet ceea93e3d8 Fix typo (Issue #5018) 2017-06-06 09:36:28 -04:00
Michael Sweet c907de064d Add "long" output format for -e option. 2017-06-06 09:19:31 -04:00
Michael Sweet 30afb232cd Fix bug in argument processing. 2017-06-06 09:16:14 -04:00
Michael Sweet 0ebee56929 Changelog. 2017-06-05 09:50:52 -04:00
Michael R Sweet 9a4e273486 Merge pull request #5016 from jnerin/patch-1
Fix closures and button in templates/es/jobs.tmpl
2017-06-05 09:50:08 -04:00
Michael R Sweet 163a773e5b Fix compiler warning. 2017-06-01 15:56:05 -04:00
Michael R Sweet 7c4b136b4f Don't use readdir_r, ever. 2017-06-01 15:50:41 -04:00
Michael R Sweet bb719eb39a Fix configure script issue on Linux - no host_os_version.
Add help on building CUPS on Ubuntu - commands to get base dev packages.
2017-06-01 14:07:52 -04:00
Michael Sweet 53af7f2160 Documentation updates. 2017-05-31 22:22:40 -04:00
Michael Sweet f50db552c5 Revive CUPS_PRINTER_DISCOVERED for cupsEnumDests. 2017-05-31 11:21:29 -04:00
Michael R Sweet 4cfbd5f897 Fix typo in mime.types file. 2017-05-31 08:50:47 -04:00
Jorge Nerín fe4e5d67c5 Fix closures and button in templates/es/jobs.tmpl
Add missing closures and reprint button in templates/es/jobs.tmpl. Before this completed job list output was broken for Spanish language.
2017-05-29 22:37:32 +01:00
Michael R Sweet 82c719981b Remove old commands. 2017-05-26 16:03:24 -04:00
Michael Sweet 4a36625117 Add support for lp and lpr to print to network printers that haven't been added
yet (Issue #5006)
2017-05-26 14:04:45 -04:00
Michael Sweet 9022d60bbd Rework lpstat -e to use cupsGetDests to eliminate duplicates (Issue #5005) 2017-05-26 10:59:07 -04:00
Michael Sweet f8d0ab6d14 Changelog. 2017-05-26 10:07:41 -04:00
Michael Sweet 4b17d76f2a Add support for "-e" option in lpstat (Issue #5005) 2017-05-26 10:06:54 -04:00
Michael Sweet e1bb4a6e98 Make local printer deletion independent of job history updates. 2017-05-26 09:53:34 -04:00
Michael Sweet 167e0655b7 Make sure printer-is-temporary flag is set when creating a local queue
(Issue #5009)
2017-05-26 07:50:04 -04:00
Michael Sweet 42deee7eaf Clear the shared flag on local queues (Issue #5008) 2017-05-25 21:05:19 -04:00
Michael Sweet b497414286 Delete temporary printers periodically and on shutdown (Issue #5003) 2017-05-25 14:02:12 -04:00
Michael Sweet 7536de1a4a Re-implement cupsGetDests and cupsCreateJob using cupsEnumDests (Issue #4993) 2017-05-17 12:18:22 -04:00
Michael Sweet d2817c9f02 Allow PWG Raster types to vary by case (non-conformant behavior for Issue #4998) 2017-05-16 14:40:11 -04:00
Michael Sweet 143286bced Fixed the "cancel all jobs" function in the web interface for several languages (Issue #4999) 2017-05-16 14:35:54 -04:00
Rory McNamara 95633d6282 cupstestppd.c: limit PSVersion sscanf size and stop at a newline 2017-05-10 13:31:00 +01:00
Michael R Sweet 2a20b51245 Rename README, INSTALL, CHANGES, and CREDITS files to .md (markdown). 2017-05-01 17:19:04 -04:00
Michael R Sweet 0d7cb94a77 Implement cupsAddIntegerOption and cupsGetIntegerOption functions (Issue #4992) 2017-05-01 16:52:23 -04:00
Michael Sweet 9c44e2cb72 Fix some typos in the new documentation. 2017-05-01 12:26:22 -04:00
Michael Sweet e1c797efc7 Add a cover image for the new programming manual. 2017-04-30 09:26:38 -04:00
Michael Sweet 869c206051 Fix documentation comment. 2017-04-30 01:25:49 -04:00
Michael Sweet 798d6e2934 Move most of the CUPS library documentation into a new CUPS Programming Manual. 2017-04-30 00:31:04 -04:00
Michael Sweet ac3015ba1a Changelog. 2017-04-24 15:15:28 -04:00
Michael Sweet 105922ec6d Add support for cross-compilation (Issue #4897) 2017-04-24 15:12:39 -04:00
Michael R Sweet 442e03eff1 Fix indentation, which some versions of GCC confuse for unexpected block
indentation.
2017-04-20 15:09:36 -04:00
Michael R Sweet efa72f6100 Use human-readable strings for printer-info. 2017-04-20 15:08:48 -04:00
Michael R Sweet 3fae3b337d Avahi fixes for cupsEnumDests (Issue #4989)
Also fix timeouts to track elapsed time so the timeout is more accurate.
2017-04-20 10:12:40 -04:00
Michael R Sweet 657c5b5f91 Save work on Avahi code 2017-04-20 09:11:45 -04:00
Michael R Sweet a2187a6342 Update cupsEnumDests implementation to return early if all printers have been
discovered (Issue #4989)

Also update the code to generate the same queue names as cupsd does for IPP
Everywhere printers.
2017-04-19 15:29:42 -04:00
Michael R Sweet 57543d87b6 Fix regression in job file preservation (Issue #4987) 2017-04-18 14:15:39 -04:00
Michael Sweet abacc52be4 Save work on new CUPS Programming Manual. 2017-04-14 12:36:40 -04:00
Michael Sweet 17acb46909 Use curley single quotes, too. 2017-04-05 15:30:17 -04:00
Michael R Sweet cceb9291b0 Bump version in doco files. 2017-03-28 14:26:53 -04:00
Michael R Sweet 1f3f503a2b Updated the job listing in the web interface (Issue #4978) 2017-03-28 13:32:42 -04:00
Michael Sweet 875ef65a9e The "reprint job" option was not available for some canceled jobs (Issue #4915) 2017-03-28 08:49:16 -04:00
Michael R Sweet 845913bd5d Fix mantohtml compiler warning (Issue #4982) 2017-03-14 14:26:26 -04:00
Michael R Sweet 87f340512c Clean out old code (Issue #4980) 2017-03-14 13:03:24 -04:00
Michael R Sweet dc8364753b Fix logic error. 2017-03-14 09:10:55 -04:00
Michael R Sweet 0b1399a2c1 Fix an issue with the error handling for the network backends (Issue #4979) 2017-03-14 09:01:18 -04:00
Michael R Sweet afd25c346a Unlock CUPS keychain as needed (appears that the CUPS keychain gets re-locked
after some random period of inactivity).
2017-03-13 12:46:04 -04:00
Michael R Sweet 1636510491 Update HTML man pages. 2017-03-13 12:45:55 -04:00
Michael Sweet 5423798c61 Update cups.strings file to use double prime for inches abbreviation instead of
a straight double quote.
2017-03-11 10:03:40 -05:00
Michael Sweet a740a8491b The IPP Everywhere finishings support did not work correctly with common UI or
command-line options (Issue #4976)

Split finishing options into "standard" groups so that simple "pick one" UI can
be used.
2017-03-10 13:52:48 -05:00
Michael Sweet 16b0b41131 Update localized media type names. 2017-03-10 12:23:22 -05:00
Michael Sweet 4886d6747e Fix localization of media type values, add a few common vendor-specific types. 2017-03-10 11:27:24 -05:00
Michael Sweet 42dc144c44 Allow "Negotiate" as an AuthType/DefaultAuthType, even on systems that don't
have Kerberos support compiled in.  The result will be a run-time access
failure that gets logged instead of stopping cupsd (Issue #4947)
2017-03-09 15:24:58 -05:00
Michael Sweet a946858f0c Add meaningful error messages to IPP Everywhere PPD generator (Issue #4954) 2017-03-09 15:20:24 -05:00
Michael Sweet 3ae6282d0e Update MediaType code to list all media-type-supported values, regardless of
whether they are standard names (Issue #4953)

Also add HP mis-spelling of 'photographic' ('photo').
2017-03-09 15:04:39 -05:00
Michael Sweet 3b6c3c8e9d Support all print-quality values reported by the printer, regardless of the
supported resolutions (Issue #4953)
2017-03-09 14:55:24 -05:00
Michael Sweet 40c808603a Send media-col for media-source and media-type, even if the size isn't specified
(Issue #4963)
2017-03-09 14:31:35 -05:00
Michael Sweet 84e3828d7d Bump the number of finishings-supported values that can be defined (was 5, now
is 100...)
2017-03-09 14:07:51 -05:00
Michael Sweet 30be6424f0 Report finishings based on the PPD cache (Issue #4960, Issue #4961, Issue #4962) 2017-03-09 14:06:42 -05:00
Michael Sweet 1fbd0cabfb First half of the changes for Issue #4960, Issue #4961, and Issue #4962 - add
a cupsIPPFinishings mapping for standard/common keywords when cupsIPPFinishings
is not specified in the PPD file (as it should be for CUPS drivers).
2017-03-08 16:07:09 -05:00
Michael Sweet 9c0c89124b Fix some more localization issues on macOS (<rdar://problem/27245567>) 2017-03-08 14:35:12 -05:00
Michael Sweet 4888dff95c Eliminate compiler warning. 2017-03-08 13:52:30 -05:00
Michael Sweet b393bc25e2 The scheduler could pause responding to client requests in order to save state
changes to disk (<rdar://problem/28690656>)
2017-03-08 13:43:23 -05:00
Michael R Sweet 45eb1e5efc Sync up with fixes from IPP sample project. 2017-03-07 15:54:38 -05:00
Michael R Sweet 8a984948f3 Also escape " in regex paths. 2017-03-07 15:46:51 -05:00
Michael Sweet 87e9bb5508 Mirror changes from IPP sample code. 2017-03-01 15:24:02 -05:00
Michael R Sweet 68d5f6b8a4 Merge pull request #4972 from jwilk/phony
Fix .PHONY declaration
2017-02-28 09:54:18 -05:00
Jakub Wilk 83bf1f7b59 Fix .PHONY declaration 2017-02-27 20:55:56 +01:00
Michael R Sweet 887fbb5445 The IPP backend could get into an infinite loop for certain errors, causing a
hung queue (<rdar://problem/28008717>)
2017-01-26 16:27:05 -05:00
Michael R Sweet c245abfeb8 Update copyrights. 2017-01-26 16:20:13 -05:00
Michael R Sweet e8a1fa03d0 Bump version to 2.2.3.
Update changelog.
2017-01-26 16:14:10 -05:00
Michael R Sweet 14fdcd7a14 One other spot to catch another slightly different language ID for "traditional
chinese"...
2017-01-26 15:44:09 -05:00
Michael R Sweet 454708a4b9 Add private API for mapping Apple language ID to POSIX locale ID. 2017-01-26 15:36:50 -05:00
Michael Sweet 905010801a Update Visual Studio projects 2017-01-17 14:27:22 -05:00
Michael R Sweet fc1fb7e4eb Update DLL exports. 2017-01-17 14:24:05 -05:00
Michael Sweet 2b7e87a33c Fix scripts and RPM spec file. 2017-01-17 12:38:01 -05:00
Michael Sweet feb7c00ab5 Fix filename of source tarball. 2017-01-17 12:28:29 -05:00
Michael Sweet f02c7d66b6 Fix URL in spec file. 2017-01-17 12:27:53 -05:00
Michael R Sweet 37a8aac243 Bring back RPM test script, tweak makesrcdist to work. 2017-01-17 12:24:30 -05:00
Michael R Sweet 3f7aa00618 More tweaks. 2017-01-17 12:16:53 -05:00
Michael R Sweet f9b1f57c71 Prep for v2.2.2. 2017-01-17 12:16:07 -05:00
Michael Sweet 316c332fa0 Fix rastertopwg line offset bug (Issue #4942) 2017-01-17 11:59:38 -05:00
Michael Sweet ed6f435e1c Ignore more generated files. 2017-01-17 10:50:10 -05:00
Michael R Sweet 1cd31069e2 Fix reporting of printed pages in the web interface (Issue #4924) 2017-01-16 16:38:21 -05:00
Michael R Sweet a401c2733a Optimize connection usage in the IPP backend. 2017-01-16 12:00:25 -05:00
Michael R Sweet 2e69b2483e Add example for IPP Everywhere printers.
Update mailing list link.
2017-01-16 09:52:23 -05:00
Michael R Sweet bd5a2f28fc Update copyrights on man pages. 2017-01-16 09:41:07 -05:00
Michael R Sweet 2fb75ad2a7 Update API help files, fix annotation of some cups_printer_t enums. 2017-01-16 09:34:58 -05:00
Michael R Sweet 57b7b66b58 Fix source file header text duplication text duplication.
Bump copyright to 2017 in web interface and README files.
2017-01-16 09:31:01 -05:00
Michael R Sweet da18a4b093 Changelog. 2017-01-16 09:01:31 -05:00
Michael R Sweet de19d5ceeb Fix localization bug (Issue #4946) 2017-01-16 09:00:48 -05:00
Michael R Sweet 3c39fd6db8 Changelog for Issue #4901. 2017-01-13 17:33:03 -05:00
Michael R Sweet a2f30a72f7 Force HTTP state when sending a response (possible fix for Issue #4901) 2017-01-05 11:36:14 -05:00
Michael R Sweet 3942a9c815 Fix bug reported by Stephan... 2017-01-05 09:36:57 -05:00
Michael R Sweet 884b7ed153 Add reporting of HTTP state (as well as status) in cupsdReadClient, in hopes of
identifying why two users are experiencing continuous 100-continues after a
client disconnects after an authentication challenge.
2017-01-04 17:23:29 -05:00
Michael R Sweet 149eecf6ef Bump copyright for other changes made this year. 2017-01-04 17:23:15 -05:00
Michael R Sweet b9121a022d Add support for "internal" keychain name (uses CUPS keychain instead of user/
login or system-wide keychains/stores) in cups-files.conf for testing.
2017-01-04 17:22:01 -05:00
Michael R Sweet 97374a7259 Update localization files. 2017-01-03 16:43:11 -05:00
Michael R Sweet 1999164de0 Add output-bin support for IPP Everywhere printers (Issue #4938) 2017-01-03 16:42:46 -05:00
Michael R Sweet afa80cb2b4 Don't treat "localhost.localdomain" as an allowed replacement for localhost, since it isn't. 2017-01-03 13:52:47 -05:00
Michael R Sweet 7852449fe2 Update systemd config files (Issue #4935) 2017-01-03 13:42:40 -05:00
Michael R Sweet 3980a9c100 Update packaging files (Issue #4940) 2017-01-03 13:36:43 -05:00
Michael R Sweet 10887d272a One more fix for asymmetric resolutions (Issue #4934) 2016-12-14 15:44:59 -05:00
Michael Sweet 07428f6a64 Only list supported PDLs (Issue #4923) 2016-12-14 10:02:17 -05:00
Michael Sweet 1add233756 Tweak the PDL priority (Issue #4932) 2016-12-14 09:44:55 -05:00
Michael Sweet 7fad1ee92c Suppress duplicate media sizes (Issue #4933) 2016-12-14 09:39:28 -05:00
Michael Sweet 073e58a9fb Fix asymmetric resolution bug, address unit test issues. 2016-12-14 09:01:18 -05:00
Michael R Sweet 49c5929363 Fix compiler error on some versions of macOS. 2016-12-08 11:46:45 -05:00
Michael Sweet 61b7ebde7c Bump version to 2.2.2, sync up IDE config.h files with the autoconf one. 2016-11-18 09:14:06 -05:00
Michael Sweet 5dcbe84df8 Fix compiler warning. 2016-11-18 09:05:49 -05:00
Michael Sweet 27a5af3ec8 Fix compiler warning. 2016-11-18 08:47:24 -05:00
Michael Sweet 98f204f442 Fix size of header (Issue #4920) 2016-11-18 08:45:44 -05:00
Michael Sweet 3be8e02692 Fix some more IPP Everywhere PPD generator problems (Issue #4921) 2016-11-18 07:40:34 -05:00
Michael R Sweet bd31658d04 Let's Encrypt certificates did not work when the hostname contained uppercase
letters (Issue #4919)
2016-11-17 13:32:45 -05:00
Michael R Sweet 5048d3ba8d Add "kerberos" policy for Kerberized printing support (standard on macOS for a
long time...)
2016-11-15 12:24:44 -05:00
Michael R Sweet cd3a03682f Add "printer-id" attribute to list of printer attributes. 2016-11-15 12:24:18 -05:00
Michael R Sweet f5cffc18d1 Add address logging to network backends (<rdar://problem/29268474>) 2016-11-15 12:12:05 -05:00
Michael Sweet 0fa88e19c4 Handle Apple raster. 2016-11-08 21:31:50 -05:00
Michael R Sweet d4259b45a4 More IPP Everywhere fixes/improvements (Issue #4916) 2016-11-08 11:55:54 -05:00
Michael R Sweet 22ae2896dd Fix typo. 2016-11-08 09:34:44 -05:00
Michael R Sweet a268a6c985 The ippContainsString function now uses case-insensitive comparisons for
mimeMediaType, name, and text values in conformance with RFC 2911.
2016-11-08 09:34:31 -05:00
Michael Sweet fa857b2058 Don't create log files on startup (<rdar://problem/28332470>) 2016-11-07 16:23:36 -05:00
Michael R Sweet 29500e14c7 Fix some issues with the Zebra ZPL printer driver (Issue #4898)
- Move "delete graphic" command after "end format" command since some older
  printers seem to have bugs with that.
- Add "print width" command so that label is properly centered.
- Add "inverted orientation" command so that labels are properly oriented
  (leading-edge == top)
2016-11-07 10:17:58 -05:00
Michael R Sweet 47eb8d30ac Update HTML versions of man pages. 2016-11-07 10:17:48 -05:00
Michael Sweet 23862bc625 More changes for Issue #4909:
- Don't include cupsFilter2 lines for PostScript, PCLXL, or TIFF.
- Update PWG media support code to always have a PPD size name.
2016-10-28 18:29:04 -04:00
Michael R Sweet 670172eae1 Improve IPP Everywhere support (Issue #4909) 2016-10-27 15:53:47 -04:00
Michael R Sweet 64683d9769 Update HTML versions of man pages. 2016-10-27 15:42:39 -04:00
Michael R Sweet 05fa7028da Add beta support for AppleRaster (per IANA Printer MIB) 2016-10-27 15:41:51 -04:00
Michael Sweet dffb0ea882 Add a USB quirk rule for the Kyocera Ecosys P6026cdn (Issue #4900) 2016-10-21 01:17:13 -04:00
Michael Sweet 2a8afc201c Fixed some issues with IPP Everywhere printer support (Issue #4893) 2016-10-21 01:15:15 -04:00
Michael Sweet 437b31cabe Fix Brazilian Portugeuse web interface (PR #4894) 2016-10-20 23:51:32 -04:00
Michael Sweet ba361bcd36 Merge branch 'master' of https://github.com/apple/cups 2016-10-20 23:49:10 -04:00
Michael Sweet 8b3724f85f Update API documentation (PR #4896). 2016-10-20 23:48:50 -04:00
Michael R Sweet 26fc28a21a Merge pull request #4908 from EvertonMelo/patch-4
Update cups.desktop.in for Bengali Indian
2016-10-20 23:46:34 -04:00
Michael R Sweet c7505715ca Fix builds on systems without a working poll() implementation (Issue #4905) 2016-10-20 16:52:11 -04:00
Michael R Sweet 3af27fc59e Remove ASL checks from configure script and config.h files. 2016-10-20 16:47:22 -04:00
Michael R Sweet 250bb8a9d6 Drop remainder of ASL logging code since it is deprecated in macOS Sierra. 2016-10-20 16:45:51 -04:00
Michael R Sweet c6a9dc36b7 Remove unnecessary logging.
Fix compiler warning for group ID comparisons.
2016-10-20 16:35:52 -04:00
Michael R Sweet b0a1368dc2 Fix crash bug. 2016-10-20 15:02:40 -04:00
Everton Melo ed7af823cb Update cups.desktop.in
adding interface for Bengali indian
2016-10-20 14:30:02 -02:00
Michael R Sweet 95e00ac365 Add additional debug information from IPP backend (logging all requests and
responses).
2016-10-19 16:04:10 -04:00
Michael Sweet f261df73b5 Update changelog. 2016-10-17 11:33:16 -04:00
Michael R Sweet a7b8e4cab4 Merge pull request #4904 from EvertonMelo/patch-3
Update cups.desktop.in localizations.
2016-10-17 11:32:45 -04:00
Everton Melo a6580b70a3 Update cups.desktop.in
adding interface for Afrikaans; 
adding interface for Albanian;
adding interface for Azerbaijani

support on:
https://support.mozilla.org/en-US/kb/localization-dashboard
standard ISO 639:
https://en.wikipedia.org/wiki/ISO_639
2016-10-17 13:15:12 -02:00
Michael Sweet 9e754f4bad Changelog. 2016-10-13 10:42:54 -04:00
Michael R Sweet a624133944 Merge pull request #4895 from EvertonMelo/patch-2
Update cups.desktop.in for several languages.
2016-10-13 10:42:27 -04:00
Michael Sweet 5babee86cb The cups-lpd program did not catch all legacy usage of ISO-8859-1 (Issue #4899) 2016-10-13 09:58:42 -04:00
Everton Melo 880facb6d7 Update cups.desktop.in
adding interface for Portuguese Portugal.
adding interface for Korean
adding interface for Thai
adding interface for Arabic
adding interface for Uzbek

support on:
https://support.mozilla.org/en-US/kb/localization-dashboard
standard ISO 639:
https://en.wikipedia.org/wiki/ISO_639
2016-10-06 11:43:05 -03:00
Michael R Sweet a3ed22ee48 Bump version to 2.2.1. 2016-10-03 15:55:40 -04:00
Michael Sweet 7a1e526688 Changelog. 2016-10-01 17:47:01 -04:00
Michael R Sweet 2c56466851 Merge pull request #4885 from OdyX/manpages-inconsistencies
Fix some manpage formatting inconsistencies
2016-10-01 17:46:07 -04:00
Michael R Sweet cd3cce09ff Fix xinetd reference. 2016-10-01 17:45:20 -04:00
Michael Sweet b7c2fb9237 Update changelog. 2016-10-01 15:04:55 -04:00
Michael R Sweet d5badecd7f Merge pull request #4886 from jschwender/patch-2
Update cups_de.po
2016-10-01 15:04:11 -04:00
Michael R Sweet 83afb9612c Merge pull request #4887 from jschwender/patch-3
Update CREDITS.txt
2016-10-01 15:03:28 -04:00
jschwender b2e0131860 Update CREDITS.txt
I made most of the German localization, hope it is enough to be listed here.
2016-09-29 01:02:05 +02:00
jschwender 08ddb22c64 Update cups_de.po
Some typos fixed and more translations added
2016-09-29 00:55:36 +02:00
Didier Raboud 29723fffa5 Fix outside bracket for the last program in the cups-lpd.man manpage list
Report-By: Helge Kreutzmann <debian@helgefjell.de>
2016-09-25 11:00:21 +02:00
Didier Raboud adffc54541 Fix punctuation inconsistency in cupsd.conf.man
Report-By: Helge Kreutzmann <debian@helgefjell.de>
2016-09-25 11:00:21 +02:00
Didier Raboud 79c4c4add6 Fix internal manpage references in cupsd.conf.man
Report-By: Helge Kreutzmann <debian@helgefjell.de>
2016-09-25 11:00:21 +02:00
Didier Raboud 21d8d62bdb Fix 'it not'/'is not' typo in client.conf.man manpage
Report-By: Helge Kreutzmann <debian@helgefjell.de>
2016-09-25 11:00:21 +02:00
Didier Raboud d9b21b6336 Fix design/designed typo in backend.man manpage
Report-By: Helge Kreutzmann <debian@helgefjell.de>
2016-09-25 11:00:21 +02:00
Didier Raboud 1515fed2bf Fix function typesetting inconsistency in backend.man manpage
Report-By: Helge Kreutzmann <debian@helgefjell.de>
2016-09-25 11:00:21 +02:00
Michael Sweet 012c38428b cupsHashData did not use the correct hashing algorithm (<rdar://problem/28209220>) 2016-09-22 09:09:22 -04:00
Michael Sweet fdc3c81a67 Resolve new build warnings on macOS (Issue #4881) 2016-09-21 12:55:51 -04:00
Michael R Sweet f093225bc4 Address some build warnings on Linux (Issue #4881) 2016-09-21 12:52:43 -04:00
Michael R Sweet 04964cdd4d Merge branch 'master' of https://github.com/apple/cups 2016-09-20 16:05:07 -04:00
Michael Sweet 7b98e44eef Use self-signed certificates over CA-signed ones (Issue #4870) 2016-09-20 15:59:38 -04:00
Michael Sweet 22867df4e7 Fix changelog. 2016-09-20 15:35:53 -04:00
Michael Sweet 0ca77b3e89 Handle partial failures when connecting (Issue #4866) 2016-09-20 15:23:40 -04:00
Michael R Sweet 523f6bd9ad Merge branch 'master' of https://github.com/apple/cups 2016-09-20 13:55:22 -04:00
Michael Sweet 4454992303 Update changelog. 2016-09-20 11:11:47 -04:00
Michael R Sweet 7a455fccaa Merge pull request #4877 from Atalanttore/patch-1
Update cups_de.po
2016-09-20 11:10:44 -04:00
Michael Sweet 6ccb19f35d Drop references to OpenSSL. 2016-09-20 11:02:41 -04:00
Michael Sweet bb6ea21b41 Fix typos. 2016-09-20 10:59:11 -04:00
Michael Sweet 0ebe8e7c41 Document how encryption works (Issue #4876) 2016-09-19 22:09:55 -04:00
Michael Sweet efed05629f Add CreateSelfSignedCerts directive for cups-files.conf (Issue #4876) 2016-09-19 10:42:12 -04:00
Ettore Atalan a54ac5353d Update cups_de.po
Expanded german translation.
2016-09-17 18:49:09 +02:00
Michael R Sweet 7de5b8df7c CUPS 2.2.0. 2016-09-13 19:39:47 -04:00
Michael R Sweet e8916f41d8 Allow http*Connect to return early if all addresses fail (Issue #4870) 2016-09-09 14:37:31 -04:00
Michael Sweet f8e196812c Support site CA cert ("/etc/cups/ssl/site.crt" for Linux, "site" cert on macOS) for validating printer certs. 2016-08-30 16:00:48 -04:00
Michael Sweet 4daf7e97e6 Use private keychain to store temporary certificates and keys, system keychain
for system-wide trust of printer certs.
2016-08-26 16:22:46 -04:00
Michael Sweet 59e9781df8 Update dependencies. 2016-08-26 09:44:05 -04:00
Michael Sweet fe33927d75 Add new unit test program for testing credentials and the trust store. 2016-08-26 09:42:48 -04:00
Michael Sweet 6720d4f40f The --no-remote-any option of cupsctl had no effect (Issue #4866) 2016-08-26 09:03:59 -04:00
Michael Sweet 4c3f8a9b89 http*Connect did not work on Linux when cupsd was not running (Issue #4870) 2016-08-25 15:09:12 -04:00
Michael Sweet a34680b295 Bump version. 2016-08-25 09:51:17 -04:00
Michael Sweet 7aeb36153a Sync up GNU TLS and Darwin TLS certificate validation code. 2016-08-25 09:50:26 -04:00
Michael Sweet e5aa186c43 Set cupsLastErrorString in httpCredentialsGetTrust, and show the result in the
IPP backend.
2016-08-25 09:36:52 -04:00
Michael Sweet c1bd5ac440 Fix typo. 2016-08-20 10:19:26 -04:00
Michael Sweet e06e4eb5f3 Fix name of IPP Scan operation Send-Document-Images. 2016-08-20 10:13:22 -04:00
Michael R Sweet 3ebcafd1ec Bump version number. 2016-08-08 14:06:00 -04:00
Michael R Sweet 6e1bb6ef2e Update OS-specific README files. 2016-08-08 12:58:59 -04:00
Michael Sweet 26598dbacc Fix builds on Windows and drop old installer projects. 2016-08-08 12:56:06 -04:00
Michael R Sweet aa747d186f Add placeholders for some of the newer threading functions. 2016-08-08 12:51:37 -04:00
Michael R Sweet 21aa3f379f Sync up some Windows build fixes from the ippsample fork. 2016-08-08 12:42:20 -04:00
Michael R Sweet 488449f04c Prepare for 2.2rc1 release. 2016-08-08 12:29:14 -04:00
Michael R Sweet d84348da11 Update localizations.
Drop ellipsis from "Looking for printer" message.
2016-08-08 12:27:02 -04:00
Michael R Sweet 3db0754003 Update spanish translation (Issue #4846) 2016-08-08 12:23:44 -04:00
Michael R Sweet 4a971b9142 Update cups-driverd and spec-ipp to be consistent about supporting name(255)
values for the "ppd-name" attribute (PR #4860)
2016-08-08 12:20:01 -04:00
Michael R Sweet 5c7cfc77cd Merge pull request #4858 from robert-scheck/master
Improved German translation
2016-08-08 12:08:47 -04:00
Michael R Sweet 0de71d3615 httpLoadCredentials did not handle comments in PEM files. 2016-08-05 15:26:27 -04:00
Michael R Sweet 5ff02b0da2 Add debug information for encrypted connections. 2016-07-26 14:32:16 -04:00
Robert Scheck 26b2bef2a8 Improved German translation (added missing translations, corrected wrong wordings, corrected typos, used better phrases, corrected English-German mixtures, etc.) 2016-07-23 01:05:34 +02:00
Michael R Sweet f0b589f768 The CUPS-Add-Modify-Class and CUPS-Add-Modify-Printer operations did not always
return an error for failed adds (Issue #4854)
2016-07-19 15:54:31 -04:00
Michael R Sweet 837dc15e51 Clear informational messages out of printer-state-message when a job completes
(Issue #4851)
2016-07-19 15:27:11 -04:00
Michael Sweet bfbcda7ec1 Don't mention OpenSSL, clarify macOS instructions. 2016-07-18 15:11:25 -04:00
Michael Sweet 5004c05666 Move TLS cert validation after the connection is finally established. 2016-07-07 17:48:38 -04:00
Michael Sweet c3355394bf Update the list of media-type strings. 2016-07-07 15:44:01 -04:00
Michael R Sweet 0cb0ff0535 Update Windows DLL exports file. 2016-07-06 10:43:30 -04:00
Michael R Sweet 9880f818cf Don't call exit() from signal handler (Issue #4671) 2016-07-05 08:16:43 -04:00
Michael Sweet 0f2f21af96 Re-add gpg command. 2016-06-24 11:43:35 -04:00
Michael Sweet 45b043725a Prep for 2.2b2. 2016-06-24 11:13:33 -04:00
Michael Sweet 8e03cb2b01 Update localization files. 2016-06-24 11:08:23 -04:00
Michael Sweet 08d027c3b6 Reword the IdleExitTimeout description... 2016-06-21 14:00:08 -04:00
Michael R Sweet f689a8a955 Merge pull request #4841 from computersforpeace/doc
Document cupsd.conf's IdleExitTimeout
2016-06-21 13:57:27 -04:00
Michael Sweet 34e36d9102 Update credits list. 2016-06-21 13:56:13 -04:00
Michael Sweet 0b64fc4599 Changelog update. 2016-06-21 11:59:58 -04:00
Michael Sweet 1166bf5866 Do some cleanup for the on-demand support - remove old launchd support (no
longer needed), naming/style updates, fix compiler warnings.
2016-06-21 11:57:03 -04:00
Michael R Sweet 6ee5217845 Merge pull request #4825 from computersforpeace/upstart
Add Upstart socket activation support
2016-06-21 11:09:37 -04:00
Michael Sweet d48749331d Fix some typos (MacmacOS, etc.) that slipped in due to inconsistent usage. 2016-06-21 07:11:44 -04:00
Michael R Sweet b2e6c32580 CUPS 2.2 is part of macOS 10.12. 2016-06-20 15:27:01 -04:00
Michael R Sweet 8072030b3c Update all references to OS X to macOS. 2016-06-20 15:23:25 -04:00
Michael Sweet 9e5e2ceff5 Add support for Let's Encrypt certs. 2016-06-20 12:47:57 -04:00
Brian Norris c4412c12a7 Document cupsd.conf's IdleExitTimeout 2016-06-15 10:11:20 -07:00
Michael Sweet 6dae042496 Remove source directory. 2016-06-14 13:52:14 -04:00
Michael Sweet 3cf02fdb08 Use "vN.N.N" for the tag name starting in 2.2. 2016-06-14 13:49:47 -04:00
Michael Sweet 1b87331da5 Push the created tag. 2016-06-14 13:48:33 -04:00
Michael Sweet 42e3781598 Fix typos. 2016-06-14 13:42:19 -04:00
Michael Sweet eda95e0fab New makesrcdist script. 2016-06-14 13:31:01 -04:00
Michael Sweet e9c38c480b Changelog. 2016-06-08 14:54:20 -04:00
Michael R Sweet b9370705d8 Merge pull request #4836 from bigon/dnssd
Fix malformed device-id for printers found by dnssd
2016-06-08 14:49:35 -04:00
Laurent Bigonville 14a71491b6 Fix malformed device-id for printers found by dnssd
Add missing semicolon between printer model and command

Closes: #4835
2016-06-08 08:59:33 +02:00
Michael Sweet 63c5db7d32 Fix EPM packaging file. 2016-06-02 12:08:37 -04:00
Michael Sweet 3539b9d3bb Bump version. 2016-05-31 14:05:53 -04:00
Michael Sweet 83d8789dc6 Exit with keep-alive instead of doing a in-place restart when on-demand
launching is in use (Issue #4760)
2016-05-31 13:42:28 -04:00
Michael Sweet 329cfeb013 Fix compiler warning. 2016-05-30 19:47:39 -04:00
Michael Sweet ad7daa2593 Update private threading API. 2016-05-30 19:45:17 -04:00
Michael Sweet 34facc5ce0 Fix compiler warnings. 2016-05-30 19:41:07 -04:00
Michael Sweet 29cb7da9b9 Merge branch 'master' of https://github.com/apple/cups 2016-05-30 19:11:42 -04:00
Michael Sweet 3bd2e63087 Fix typo in cupsctl man page (PR #4829) 2016-05-30 19:10:06 -04:00
Michael R Sweet eee24e7df5 Update configure script. 2016-05-27 16:49:59 -04:00
Brian Norris 441de8b2e0 support Upstart socket activation
Inspired by code here:

https://bugs.launchpad.net/upstart/+bug/1276713

With significant refactoring and bug-fixing.

Notably, Upstart only supports passing a single file descriptor via
UPSTART_FDS, so systems that want to use this support will need to
configure CUPS appropriately in order to use this.
2016-05-27 13:07:05 -07:00
Brian Norris 26c14fa6e1 Refactor common on-demand socket setup code
This really can be in its own function, to avoid duplicating the same
code for various init methods.
2016-05-27 13:07:01 -07:00
Brian Norris c187d9abe7 Factor out generic 'HAVE_ONDEMAND' macro flag
HAVE_SYSTEMD and HAVE_LAUNCHD use very similar code for on-demand
launching of cupsd, and if we want to add one more (e.g., upstart) it's
easier to just use a single common flag: HAVE_ONDEMAND.
2016-05-27 13:06:58 -07:00
Michael Sweet d58c26292f Update copyrights on all man pages. 2016-05-26 08:57:11 -04:00
Michael R Sweet b9574f5a28 Merge pull request #4818 from jschwender/master
add some missing translation
2016-05-26 07:21:50 -04:00
Michael R Sweet 681399ba79 Merge pull request #4822 from zdohnal/lpinfo-username
Update lpinfo.man - removed -U username
2016-05-26 07:20:29 -04:00
Michael Sweet bdbfacc73e Support POSIX option processing (Issue #4813) 2016-05-25 19:33:42 -04:00
Michael Sweet 9e6d7a0f87 Improve performance of web interface with large numbers of jobs (Issue #3819)
Also re-work web interface to not allow the order to be changed (since that
will negatively impact performance) but instead add first/last buttons to the
pager.
2016-05-25 17:33:36 -04:00
Michael Sweet dffa3c7438 Add new administrative APis help. 2016-05-25 11:55:27 -04:00
Michael Sweet 34016d2a5d httpAddrConnect2 could get into an infinite loop for socket errors. 2016-05-23 22:13:54 -04:00
Michael R Sweet 0eff12fa6b Fix compile errors. 2016-05-18 11:54:04 -07:00
Michael Sweet 08d56b1fb9 Implement TrustOnFirstUse option and CRLs (GNU TLS) to allow for printing only
to trusted printers/servers (<rdar://problem/25711658>)

This change also makes the default value of AllowExpiredCerts NO instead of YES.

Finally, add support for loading most client.conf options (NOT ServerName or
User) from /Library/Printers/org.cups.PrintingPrefs.plist on OS X.
2016-05-18 14:42:37 -04:00
Michael Sweet 71d227bf28 The scheduler now advertises PWG Raster attributes for IPP Everywhere clients
(Issue #4428)
2016-05-16 19:54:35 -04:00
Michael Sweet 75c86da7a7 The scheduler now logs informational messages for jobs at LogLevel "info"
(Issue #4815)
2016-05-16 09:39:10 -04:00
Michael Sweet 6eb98aee93 The scheduler now uses the getgrouplist function when available (Issue #4611) 2016-05-13 12:11:52 -04:00
Michael Sweet 92de7dd269 Drop old IPP Everywhere self-certification project from VC++ directory.
Update README for Windows.
2016-05-13 10:47:40 -04:00
Michael Sweet 11b24fee62 Fix time_at_xxx substitutions in jobs template (Issue #4041) 2016-05-11 15:24:45 -04:00
Michael Sweet a6fd57bc66 Rename "job-actual-printer-uri" to "job-printer-uri-actual". 2016-05-11 15:05:40 -04:00
Michael Sweet 8d7608ec3a Add reference to IANA registry for printer-state-reasons values. 2016-05-11 14:47:04 -04:00
Michael Sweet c6e4e71234 Fix printing of multiple files to raw queues (Issue #4782) 2016-05-11 11:25:37 -04:00
Michael Sweet e0f489cd21 Fix Hold-New-Jobs implementation (Issue #4767) 2016-05-11 10:35:53 -04:00
Michael Sweet 1e56f93b01 Add quotes around DYLD_INSERT_LIBRARIES value. 2016-05-11 10:34:08 -04:00
Michael Sweet 423e6ddbf3 Update man pages. 2016-05-11 10:33:53 -04:00
zdohnal ce6198ad7c Update lpinfo.man - removed -U username 2016-05-09 13:48:56 +02:00
Michael Sweet 40df01c1b5 Add common options to lp/lpr man pages (Issue #4794) 2016-05-02 18:58:42 -04:00
Michael Sweet 91f7a0f3d9 Changelog. 2016-05-02 18:02:31 -04:00
Michael Sweet abc9d50f97 Add Brazilian Portuguese localization (Issue #4796) 2016-05-02 18:01:42 -04:00
Michael Sweet ef8c0810a4 Update localization files. 2016-05-02 17:27:01 -04:00
Michael Sweet 30ea77599b Deal with duplicate finishing-template values due to templates for different
media sizes.
2016-05-02 17:07:54 -04:00
Michael Sweet c08865231f Add support for finishings and finishings-col.finishing-template. 2016-05-02 17:03:56 -04:00
Michael Sweet 6fb588e01a Stagger connect calls by 100ms to avoid "confusing" printers and/or the network
stack.

Add a socket-static target for testing.
2016-05-02 13:03:47 -04:00
jschwender 4fcc17293b Update choose-device.tmpl 2016-04-29 19:10:11 +02:00
jschwender c7e7d55529 Update modify-printer.tmpl 2016-04-29 19:08:55 +02:00
jschwender 091b6ecbda Update choose-device.tmpl 2016-04-29 19:04:39 +02:00
Michael R Sweet d928965bc2 Merge pull request #4814 from jschwender/master
updated, more complete german translation
2016-04-24 11:19:04 -04:00
jschwender 88d45155d6 version was hardcoded 2016-04-23 11:29:15 +02:00
root 7744ab5957 updated, more complete german translation 2016-04-22 14:15:35 +02:00
Michael R Sweet f7b064491c Merge pull request #4792 from OdyX/fix-spelling-error-in-ipp-var
Fix spelling error in 'returning'
2016-04-21 16:39:20 -04:00
Michael R Sweet 52df502b7d Merge pull request #4807 from OdyX/fix-spanish-gerunds
Fix spanish gerunds in index.html
2016-04-21 16:38:49 -04:00
Michael R Sweet 5558a2e267 PR #4808: Fix builds without Avahi or mDNSResponder. 2016-04-21 16:21:54 -04:00
Michael Sweet de8c34f8bd Check for newer Security framework header version to avoid compiler error. 2016-04-19 15:22:33 -04:00
Santiago Vila 8457264a12 Fix spanish gerunds in index.html
Bug-Debian: https://bugs.debian.org/821788
2016-04-19 19:23:09 +02:00
Michael Sweet 6b4bf984e5 Add remaining binaries that are built by the makefiles.
Fix compiler warning.
2016-04-15 11:35:57 -04:00
Michael Sweet 68c4690a3b Add more targets covering the CGIs and filters.
Fix some build warnings.
2016-04-15 10:31:13 -04:00
Michael R Sweet e00dad7cd7 Merge branch 'master' of https://github.com/apple/cups 2016-04-15 07:15:56 -04:00
Michael R Sweet c82a6251a5 Save work on adding all unit tests to Xcode project. 2016-04-15 07:14:51 -04:00
Michael Sweet b052deedae Fix some localization issues with Norwegian. 2016-04-14 12:09:35 -04:00
Michael Sweet e7a78c92a6 Move cupsGetDevices to adminutil.h since it isn't a regular application API. 2016-04-14 08:44:22 -04:00
Michael R Sweet 2274d26beb Fix some bugs in the new server-side TLS support code. 2016-04-13 16:55:07 -04:00
Michael Sweet 68a36223d0 Switch USB implementation to handle iterating with multiple interfaces. 2016-04-13 12:45:44 -04:00
Michael Sweet c6a37af863 Ignore all .git* files too. 2016-04-13 12:30:24 -04:00
Michael Sweet 2c913ee0fc Omit extra files from archives. 2016-04-13 12:28:09 -04:00
Michael Sweet 2434317389 Drop SVN stuff from version. 2016-04-13 11:43:34 -04:00
Michael Sweet d825017aa0 Drop API help for CGI, MIME, and PPD compiler libraries.
Don't uninstall public headers, these are all now private headers.
2016-04-12 07:00:21 -04:00
Michael Sweet 27453efb87 Move CGI, PPD compiler, and MIME heades to the private headers directory. 2016-04-12 06:52:27 -04:00
Michael Sweet e1f8967599 Remove unused files or files that are being developed in a separate repository. 2016-04-12 06:45:12 -04:00
Michael R Sweet 709a49805d Ignore GNU gettext backup (.bck) files. 2016-04-11 20:31:03 -04:00
Michael R Sweet 7abd22c180 Update localization files. 2016-04-11 20:30:36 -04:00
Michael R Sweet 258bf33c02 Ignore Xcode docset "tokens" files. 2016-04-11 20:29:32 -04:00
Michael R Sweet 503b54c930 Remove all of the Subversion keywords from various source files. 2016-04-11 20:28:30 -04:00
Michael R Sweet e34d1ec4b9 Work around undocumented side-effect of SecItemAdd... 2016-04-11 18:36:42 -04:00
Michael R Sweet fc4bbb58d6 Update cert code to not require a keychain. Default keychain works on all platforms... 2016-04-11 18:35:25 -04:00
Michael R Sweet 558883c6dd Add missing prototypes/definitions and do a first pass at fixing up the self-signed cert code. 2016-04-11 17:37:14 -04:00
Michael R Sweet b0c14d0a51 Merge branch 'master' of https://github.com/apple/cups 2016-04-11 17:16:32 -04:00
Michael R Sweet 1a7059a095 Created certificate should be RSA, not ECDSA. 2016-04-11 17:16:17 -04:00
Michael Sweet a395099703 Fix localization of some media sizes (Issue #4800) 2016-04-08 17:11:40 -04:00
Michael R Sweet fcea7df43c Add debug info on failed keychain open. 2016-04-07 15:11:42 -04:00
Michael R Sweet bb94e24caf Cleanup cups-lpd - remove unused arguments. 2016-04-07 15:06:58 -04:00
Michael R Sweet 879ee463ea Fix default TMPDIR path. 2016-04-07 15:05:35 -04:00
Michael Sweet f358533bb9 Merge branch 'master' of https://github.com/apple/cups 2016-04-06 14:04:44 -04:00
Michael Sweet b73a566ce7 Save changes. 2016-04-06 14:04:35 -04:00
Michael R Sweet 515c3db932 Do not compress print jobs by default except for certain raster formats. 2016-04-04 15:13:08 -04:00
Michael Sweet 9688061e94 Add iOS target, config.h tweaks, and dest.c tweaks for builds. 2016-03-31 22:55:51 -04:00
Michael R Sweet 233715a8d3 The scheduler did not handle out-of-disk situations gracefully (Issue #4742) 2016-03-29 10:05:12 -04:00
Michael R Sweet f80e6f383c Documentation changes (Issue #4781) 2016-03-29 09:59:55 -04:00
Didier Raboud 138d4f6d54 Fix spelling error in 'returning' 2016-03-25 10:48:06 +01:00
Michael R Sweet 5eb7439254 The LPD mini-daemon now detects invalid UTF-8 sequences in job, document, and
user names (Issue #4748)
2016-03-24 18:55:20 -04:00
Michael R Sweet 21f92a3cfd Silence compiler warning. 2016-03-24 18:53:53 -04:00
Michael R Sweet 508de6790c The debug strings table for mime type operations was out of sync with the
enumeration (PR #4787)
2016-03-24 17:59:09 -04:00
Michael R Sweet f73476aed9 Drop unused definitions. 2016-03-24 17:55:28 -04:00
Michael R Sweet 1a00f9bf9e The ipptool program did not correctly report uriScheme values in plist output
(Issue #4785)
2016-03-24 17:50:56 -04:00
Michael R Sweet 2c9bf31eaf The ipptool program truncated values at 8k (Issue #4786) 2016-03-24 17:45:11 -04:00
Michael R Sweet 09534eb005 Ignore patches subdirectory. 2016-03-24 17:35:38 -04:00
Michael R Sweet b89522333d Add USB quirk rule for Lexmark C540n (Issue #4778) 2016-03-24 17:29:58 -04:00
Michael R Sweet 5925ce336b Add USB quirk rule for Xerox WorkCentre 3220 (Issue #4789) 2016-03-24 17:26:54 -04:00
Michael R Sweet 961a8a3730 The cups-lpd mini-daemon incorrectly included the document-name attribute when
creating a job.  It should only be included when sending a job (Issue #4790)
2016-03-24 17:18:56 -04:00
Michael Sweet 807315e64e Changes to eliminate warnings from new Clang. 2016-03-23 18:52:56 -04:00
Michael R Sweet 6ef28fe572 Merge pull request #4788 from leoarnold/mailmap
Add a mailmap for correct work attribution
2016-03-17 19:26:30 -04:00
Leo Arnold 110be0221b Add a mailmap for correct work attribution
This MailMap will ensure correct GitHub attribution for Michael R Sweet
2016-03-17 23:26:27 +01:00
Michael Sweet 8cd7e4da2b Fix markdown for some of the examples... 2016-03-17 15:45:31 -04:00
Michael Sweet d8ace9c1a6 Update CONTRIBUTING file to use markdown syntax.
Add that Github pull requests can be used to submit changes as well.
2016-03-17 15:42:38 -04:00
Michael Sweet 9d7291518c Remove obsolete files and ignore Xcode files. 2016-03-17 15:24:36 -04:00
Michael Sweet c7a9698e0b Ignore all generated files. 2016-03-15 12:20:40 -04:00
Michael Sweet d9f356c545 Add configure script and .gitignore file. 2016-03-15 11:06:30 -04:00
msweet f13db65e41 The IPP backend now continues on to the next job when the remote server/printer
puts the job on hold (<rdar://problem/24858548>)

A 30 second delay (currently not configurable) is provided to allow for
canceling the job locally.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@13133 a1ca3aef-8c08-0410-bb20-df032aa958be
2016-03-10 17:23:01 +00:00
msweet 5a4c3fcf03 Fix cancel of jobs with multiple documents (<rdar://problem/24854834>)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@13131 a1ca3aef-8c08-0410-bb20-df032aa958be
2016-03-10 17:01:08 +00:00
msweet cd1a83eac8 The scheduler did not return non-shared printers to local clients unless
they connected to the domain socket (<rdar://problem/24566996>)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@13128 a1ca3aef-8c08-0410-bb20-df032aa958be
2016-03-09 15:45:21 +00:00
msweet 8ddb0f601e Fix builds on Linux.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@13127 a1ca3aef-8c08-0410-bb20-df032aa958be
2016-03-09 14:35:57 +00:00
msweet 788d7a15c5 Remove all remnants of the old private PWG APIs and structures.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@13124 a1ca3aef-8c08-0410-bb20-df032aa958be
2016-03-08 21:16:52 +00:00
msweet f7c7eff771 Update message catalogs.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@13123 a1ca3aef-8c08-0410-bb20-df032aa958be
2016-03-08 21:16:32 +00:00
msweet ac7c59abca The scheduler now reads the spool directory if one or more job cache entries
point to deleted jobs (<rdar://problem/24048846>)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@13120 a1ca3aef-8c08-0410-bb20-df032aa958be
2016-03-07 20:38:23 +00:00
msweet d71488ecdd Added support for disc media sizes (<rdar://problem/20219536>)
Also remove old 10.8 private APIs that are no longer needed.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@13118 a1ca3aef-8c08-0410-bb20-df032aa958be
2016-03-07 20:02:13 +00:00
msweet 8be431f216 Fix anonymous ESR markup bug.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@13116 a1ca3aef-8c08-0410-bb20-df032aa958be
2016-03-05 16:25:47 +00:00
msweet c7d89253a0 Fix hang bug when alternating text contains a quote.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@13115 a1ca3aef-8c08-0410-bb20-df032aa958be
2016-03-02 20:24:10 +00:00
msweet 4ce9510966 Make sure cupsPageSize is initialized.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@13114 a1ca3aef-8c08-0410-bb20-df032aa958be
2016-03-02 20:23:04 +00:00
msweet 3e679a2968 Add PWG Raster field definitions.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@13110 a1ca3aef-8c08-0410-bb20-df032aa958be
2016-02-26 20:39:11 +00:00
msweet c585706d00 Implement more of testdest unit test.
Fix mapping of CUPS-Create-Local-Printer operation code.

Add logging to background thread.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@13105 a1ca3aef-8c08-0410-bb20-df032aa958be
2016-02-18 20:32:13 +00:00
msweet 4db7fceecf Fix some bugs in the implementation that have been around for a while...
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@13101 a1ca3aef-8c08-0410-bb20-df032aa958be
2016-02-17 23:29:38 +00:00
msweet 46385a1a17 More work on temporary queues - implement support for them in the cupsDest APIs,
add some duplicate printer checking code, and implement the --enum unit test.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@13099 a1ca3aef-8c08-0410-bb20-df032aa958be
2016-02-17 22:46:40 +00:00
msweet 830cfed95a Update "make test" to include alternate filter.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@13096 a1ca3aef-8c08-0410-bb20-df032aa958be
2016-02-16 23:45:12 +00:00
msweet 95ece0cb8d Implement CUPS-Create-Local-Printer operation and add test file.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@13095 a1ca3aef-8c08-0410-bb20-df032aa958be
2016-02-16 22:52:10 +00:00
msweet 724f2615e5 Back off on ECDSA for now, just use RSA as before, but now with SHA256 for
signing.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@13094 a1ca3aef-8c08-0410-bb20-df032aa958be
2016-02-16 19:30:22 +00:00
msweet 1ae693e31e Switch to ECDSA and SHA256 for self-signed certs on OS X
(<rdar://problem/24535828>)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@13091 a1ca3aef-8c08-0410-bb20-df032aa958be
2016-02-16 19:11:37 +00:00
msweet 7ae00c352c First half of new "local temporary printer" queues, to support on-demand IPP
Everywhere printers.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@13088 a1ca3aef-8c08-0410-bb20-df032aa958be
2016-02-15 23:39:23 +00:00
msweet 3b43301028 Update documentation for cupsd - "-s" option was not mentioned (STR #4772)
Also update usage (-h) output.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@13086 a1ca3aef-8c08-0410-bb20-df032aa958be
2016-02-12 18:53:04 +00:00
msweet 34a63bd98a Add printer-queue-id attribute (extension).
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@13080 a1ca3aef-8c08-0410-bb20-df032aa958be
2016-02-05 15:03:20 +00:00
msweet 83f1674e70 Fix deprecation and uninitialized value issues.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@13074 a1ca3aef-8c08-0410-bb20-df032aa958be
2016-01-29 21:13:57 +00:00
msweet d649be59fe Fix compiler warning.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@13072 a1ca3aef-8c08-0410-bb20-df032aa958be
2016-01-29 20:00:14 +00:00
msweet 549fc0f192 Put the developer guide into a new CONTRIBUTING file instead.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@13066 a1ca3aef-8c08-0410-bb20-df032aa958be
2016-01-28 15:59:40 +00:00
msweet 85df117dd8 Fix logic error (need to move only the remaining characters in the string).
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@13063 a1ca3aef-8c08-0410-bb20-df032aa958be
2016-01-27 16:05:05 +00:00
msweet f07c012184 Fix access to resource files when the web interface was disabled (STR #4755)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@13060 a1ca3aef-8c08-0410-bb20-df032aa958be
2016-01-26 21:31:33 +00:00
msweet f76916f6e3 Update copyright.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@13058 a1ca3aef-8c08-0410-bb20-df032aa958be
2016-01-26 18:36:06 +00:00
msweet 14fa491e7a Fix encoding of quoted values (<rdar://problem/19736672>)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@13057 a1ca3aef-8c08-0410-bb20-df032aa958be
2016-01-26 18:35:03 +00:00
msweet 2dd940185b Add (undocumented) -T option to print the current sandbox profile to stdout.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@13055 a1ca3aef-8c08-0410-bb20-df032aa958be
2016-01-25 14:43:52 +00:00
msweet 3517cb2348 Fix German web template (STR #4756)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@13048 a1ca3aef-8c08-0410-bb20-df032aa958be
2016-01-13 19:19:22 +00:00
msweet f3d8ceb685 The "lp -H resume" command did not reset the "job-state-reasons" attribute
value (STR #4752)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@13046 a1ca3aef-8c08-0410-bb20-df032aa958be
2016-01-13 19:13:49 +00:00
msweet 3e6c46ea77 Fix some issues in ipptool for skipped tests (<rdar://problem/24137160>)
- Don't error out on bad values when skipping a test (probably something isn't
  defined)
- Fix "rewind" code so that the line numbers do not get messed up.
- Don't report cupsLastErrorString when attributes cannot be created (not set
  for those issues)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@13043 a1ca3aef-8c08-0410-bb20-df032aa958be
2016-01-13 15:56:23 +00:00
msweet 3867aed599 Fix builds on Linux.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@13042 a1ca3aef-8c08-0410-bb20-df032aa958be
2016-01-12 19:12:16 +00:00
msweet 23abf279d8 Add "-4" and "-6" options to tlscheck.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@13041 a1ca3aef-8c08-0410-bb20-df032aa958be
2016-01-12 17:21:23 +00:00
msweet 79d3cd17cc Pending subscriptions would prevent the scheduler from idle exiting (STR #4754)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@13039 a1ca3aef-8c08-0410-bb20-df032aa958be
2016-01-11 20:27:08 +00:00
msweet 6d7669cc0a Bump version.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@13038 a1ca3aef-8c08-0410-bb20-df032aa958be
2016-01-11 20:26:17 +00:00
msweet a6a4a2f5b6 Fix some compile issues, use our implementation of rresvport_af since it is
deprecated.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@13034 a1ca3aef-8c08-0410-bb20-df032aa958be
2016-01-06 15:36:36 +00:00
msweet 4a78452e73 Fix variable definitions.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@13032 a1ca3aef-8c08-0410-bb20-df032aa958be
2016-01-06 00:29:50 +00:00
msweet a8db9df8b3 The default password function did not work on some platforms (STR #4750)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@13029 a1ca3aef-8c08-0410-bb20-df032aa958be
2016-01-04 14:34:55 +00:00
msweet 6c49fde65c Revert permissions change to cupsd domain socket (<rdar://problem/23958973>)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@13027 a1ca3aef-8c08-0410-bb20-df032aa958be
2016-01-04 14:11:19 +00:00
msweet 684d1464e6 Wrap all uses of notify_post with #ifdef's.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@13025 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-12-18 22:07:41 +00:00
msweet 6e5a57e8af Add cupsRasterInitPWGHeader API to setup a raster header using IPP Everywhere
attribute values.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@13024 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-12-18 20:34:33 +00:00
msweet e7f4e0e9c0 The EPL2 and ZPL sample drivers did not properly support the CutMedia option.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@13021 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-12-16 18:35:12 +00:00
msweet d5cc05c96d The httpAddrConnect and httpConnect* APIs now try connecting to multiple
addresses in parallel (<rdar://problem/20643153>)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@13014 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-12-11 18:59:09 +00:00
msweet 8935a80bd0 Can't hide _httpWait.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@13010 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-12-11 16:47:32 +00:00
msweet 966773c540 Fix export list for shared libraries (<rdar://problem/23303388>)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@13008 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-12-11 16:00:00 +00:00
msweet f787e1e3ff Do some code reorganization so that all of the PPD code is separate from the rest.
Note: cupsGetPPD* and friends are now in cups/ppd.h now - should not be an issue
but was necessary to leave a clean break for future code.



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@13007 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-12-09 16:56:00 +00:00
msweet 7f2dc952e0 Changelog.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@13005 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-12-08 20:19:05 +00:00
msweet 634c6c927d Don't exit under memory pressure (<rdar://problem/23255001>)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@13003 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-12-08 20:17:05 +00:00
msweet c47d48694a Add missing client-error-not-fetchable status code.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12995 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-11-20 02:32:42 +00:00
msweet 3ce45fb70a Fix compile error on Linux.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12993 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-11-19 15:27:44 +00:00
msweet 5ae9fbb3dd Add support for hashed job-password values; right now just SHA-1 and SHA-2 hashes
(<rdar://problem/20221502>)

- Add new cupsHashData API
- Use cupsHashData in _cupsConvertOptions.
- Grab the job-password-encryption-supported value from the printer and pick the most
  secure hash that is supported.
- Add a new _CUPS_API_2_2 availability macro.
- Update dependencies and Xcode project settings.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12983 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-11-18 17:22:38 +00:00
msweet 71a78e2fe4 The IPP backend incorrectly included the job-password attribute in Validate-Job
requests (<rdar://problem/23531939>)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12979 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-11-17 21:23:16 +00:00
msweet 7dc6f91d5e Changing the printer-is-shared value for a remote queue did not produce an
error (STR #4738)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12977 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-11-17 19:25:54 +00:00
msweet 9924fab816 The scheduler did not deliver job notifications for jobs submitted to classes
(STR #4733)

A matching job is enough.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12976 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-11-17 19:02:23 +00:00
msweet dd1360c1fe Added USB quirk for Canon MP530 (STR #4730)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12975 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-11-17 18:04:51 +00:00
msweet 8719e9dbf5 Scheduler logging change (STR #4728)
Just log "connection now encrypted" as a debug message now.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12974 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-11-17 18:01:44 +00:00
msweet c1bc6894eb Fix regression in fix for <rdar://problem/23133833>.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12971 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-11-13 20:30:20 +00:00
msweet 044af446cd Range check port numbers in URIs (<rdar://problem/23144461>)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12969 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-11-13 20:01:52 +00:00
msweet 28af862a1c Don't create the full name twice (<rdar://problem/23144358>)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12967 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-11-13 19:49:10 +00:00
msweet be939dc257 Don't treat HTTP/1.x prefix as a response unless we are a client
(<rdar://problem/23144290>)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12964 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-11-13 19:37:47 +00:00
msweet eb93498a8c Make sure to delete temporary file on failed install of cupsd.conf
(<rdar://problem/23135207>)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12962 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-11-11 19:59:43 +00:00
msweet e0a0bd781b Don't export weak symbols.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12957 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-11-06 16:21:36 +00:00
msweet db3b30894c Fix symbolic name to enum mapping (first value wasn't mapped)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12951 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-10-28 17:21:45 +00:00
msweet 40e7858e19 Fix compile error.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12950 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-10-28 16:45:50 +00:00
msweet 1b01c393d2 Fix another spot where URI hostnames were not normalized.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12948 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-10-28 16:37:49 +00:00
msweet 5947e9d5ad Fix IPP conformance issues and a bug in the printer-state-reasons reporting
from ippserver.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12946 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-10-28 15:20:59 +00:00
msweet ffe3267303 Cleanup some DEBUG2 log messages (<rdar://problem/23135122>)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12944 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-10-26 19:44:10 +00:00
msweet 546400fd70 Make sure we escape the subject and text in the RSS feed
(<rdar://problem/23135066>)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12942 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-10-26 18:15:48 +00:00
msweet c26ceab084 Strip trailing ? and / before checking for .ppd (<rdar://problem/23134506>)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12940 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-10-26 18:07:32 +00:00
msweet fcad603269 Add /admin/log section to cupsd.conf so that remote admin also controls remote
access to the log files (<rdar://problem/23134415>)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12938 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-10-26 17:26:36 +00:00
msweet d8a60ef8de Make sure /icons/printer.png and /ppds/printer.ppd point to real queues.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12936 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-10-26 17:17:40 +00:00
msweet 992d991815 Don't log strings directly (<rdar://problem/23134299>)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12934 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-10-26 16:48:23 +00:00
msweet b9ce33c5b0 Return error if we cannot allocate the compression buffer
(<rdar://problem/23134228>)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12932 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-10-26 16:24:57 +00:00
msweet 40150539e8 Make sure that raster buffer can hold enough data for all planes
(<rdar://problem/23133998>)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12930 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-10-26 16:18:23 +00:00
msweet 1b6c727889 Use constant time comparison function for local certificates
(<rdar://problem/23133833>)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12927 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-10-23 21:31:17 +00:00
msweet 59189c00d2 Escape strings in error_log output (<rdar://problem/23133466>)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12925 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-10-23 21:17:33 +00:00
msweet 3a555a4f30 Ensure that cupsBytesPerLine < 2^31 for 32-bit only platforms
(<rdar://problem/23133393>)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12923 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-10-23 20:30:33 +00:00
msweet fd5ce3a47b Add missing length check (<rdar://problem/23133230>)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12921 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-10-23 20:08:36 +00:00
msweet a4708bb06c Really fix it.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12918 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-10-23 19:58:07 +00:00
msweet f94d4e7f01 Fix infinite loop on bad PUT (<rdar://problem/23132803>)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12917 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-10-23 19:41:38 +00:00
msweet 34c67f13d6 Limit size of chunked requests (<rdar://problem/23132353>)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12915 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-10-23 19:00:06 +00:00
msweet 96a9a53ee3 Documentation updates.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12913 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-10-23 18:58:15 +00:00
msweet 58e9f2680f Fix compile error.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12912 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-10-23 18:56:11 +00:00
msweet f433237632 Add margin checks to rastertopwg (<rdar://problem/23132108>)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12909 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-10-23 18:07:07 +00:00
msweet 3c0659cd0f Protect against integer overflow in raster data (<rdar://problem/23131948>)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12908 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-10-23 17:44:03 +00:00
msweet 1261ca01ce Get rid of compiler warning...
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12906 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-10-23 15:02:21 +00:00
msweet 2a0197fe83 Make sure image is not progressive.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12905 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-10-20 22:12:08 +00:00
msweet e67e2f9e9f Interface scripts are no longer supported for security reasons
(<rdar://problem/23135640>)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12904 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-10-19 18:49:28 +00:00
msweet 29d379ccb6 Update software for stable draft of IPP Everywhere Printer Self-Certification
Manual 1.0 (October 9, 2015 draft)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12897 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-10-09 19:18:39 +00:00
msweet f024f448c0 The IPP backend did not always handle jobs getting canceled at the printer
(<rdar://problem/22716820>)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12895 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-10-09 13:15:16 +00:00
msweet 89b7fd552d Fix access check for domain socket.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12892 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-10-08 17:24:57 +00:00
msweet a07bfaea4e The cupsd domain socket is no longer world-accessible on OS X
(<rdar://problem/7542560>)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12890 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-10-08 14:27:25 +00:00
msweet dd37b5bcf9 Fix cupsGetPPD* with IPP print queues (STR #4725)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12883 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-10-07 20:28:20 +00:00
msweet 1a8ca4fab2 Update CUPS version in sample.drv.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12882 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-09-15 21:20:50 +00:00
msweet 499aa6cd12 Fix typo.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12880 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-09-15 21:19:10 +00:00
msweet f81d652010 Some older HP LaserJet printers need a delayed close when printing using the
libusb-based USB backend (STR #4549)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12878 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-09-15 21:16:11 +00:00
msweet 1c5f75579f Drop cups-revision property.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12876 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-09-14 19:01:25 +00:00
msweet d0e96b4a79 Move trunk to v2.2.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12875 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-09-14 19:00:47 +00:00
msweet 7385c337ac The libusb-based USB backend did not unload the kernel usblp module if it was
preventing the backend from accessing the printer (STR #4707)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12869 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-09-13 23:57:07 +00:00
msweet 3f93806957 Fix message translation for Catalan (STR #4709)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12868 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-09-13 23:51:42 +00:00
msweet a906a73123 Don't map Primera name to Fargo anymore (STR #4708)
Bump version to 2.1.1.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12867 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-09-13 23:49:19 +00:00
msweet f495e905dd Fix another journald issue, and partially revert the systemd change so that
CUPS 2.1 builds with systemd support on RHEL 7.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12857 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-08-31 15:00:45 +00:00
msweet 0b2b24c558 Update jobs.cache after expiring job files (STR #4706)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12856 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-08-31 14:27:39 +00:00
msweet fbfee7a844 Update copyrights in man pages.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12854 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-08-28 14:08:00 +00:00
msweet 6a638e3289 Another typo when the default (timid) tests are chosen (STR #4699)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12853 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-08-28 13:38:46 +00:00
msweet 44ee459098 Don't look for DBUS on OS X, either (STR #4698)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12852 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-08-28 13:29:21 +00:00
msweet 55516fd3bc The scheduler did not use the ConfigFilePerm setting when copying PPD files or
interface scripts attached to a request (STR #4703)

Use cupsdCreateConfFile when copying attached files, and use ConfigFilePerm.



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12851 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-08-28 13:17:53 +00:00
msweet 5315d269f0 Make sure testcache.o is listed as an object file...
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12850 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-08-27 19:29:06 +00:00
msweet dd3fdd2c59 Documentation updates (STR #4691, STR #4693)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12848 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-08-26 18:51:57 +00:00
msweet ff455bc67f The new PDF file type rule did not work (STR #4692)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12847 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-08-26 18:32:22 +00:00
msweet e87a99684f Fix --enable-page-logging configure option (STR #4694)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12846 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-08-26 18:26:22 +00:00
msweet 7470f0c7dc Don't try to use Avahi on OS X (STR #4695)
cupsd-logs man page is in section 5...


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12845 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-08-26 18:23:53 +00:00
msweet 71d1039982 Fix another "new logging" bug for journald only this time (STR #4690)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12843 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-08-13 13:50:22 +00:00
msweet 6922317779 Fix another bug in the new logging code (STR #4687)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12842 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-08-10 17:26:07 +00:00
msweet 3647435025 Additional fixes for Hong Kong locale (<rdar://problem/22130168>)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12841 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-08-10 17:07:30 +00:00
msweet 63efa61613 Fix warning.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12840 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-08-09 02:10:23 +00:00
msweet 7fd8cbfadb Implement Identify-Printer and add tests.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12839 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-08-07 13:22:27 +00:00
msweet 9610a474e2 Add support for STATE: and ATTR: (currently a stub) messages from commands,
at least on POSIX platforms.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12838 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-08-07 13:13:12 +00:00
msweet 88da9d7351 Fix another new Chinese locale ID (<rdar://problem/22086642>)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12835 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-08-06 14:08:01 +00:00
msweet bd3e2e22b9 <rdar://problem/22130168> [PrintCenter]: HK: Gala15A250: Many strings are not localized in printer setting pane for HK.
Need to use zh_TW as a fallback for zh_HK.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12834 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-08-06 13:56:32 +00:00
msweet 15a9714c6c Add support for extra and overridden attributes (vendor request).
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12833 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-08-05 20:59:52 +00:00
msweet 591b26322a Bump versions.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12831 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-08-05 14:24:32 +00:00
msweet e6330e6da1 Changelog.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12830 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-08-05 14:23:26 +00:00
msweet ea99768e29 Fix "make check" warning counts (STR #4684)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12829 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-08-05 14:22:02 +00:00
msweet 183552bee5 Prep for 2.1rc1.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12821 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-07-31 14:53:55 +00:00
msweet 3fc450cdce With recent changes there should only be 8 warning messages in the log.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12820 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-07-31 14:12:25 +00:00
msweet fac77c5b2d <Limit All> in <Policy> sections now applies to all operations when used by
itself (STR #4659)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12819 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-07-31 13:52:00 +00:00
msweet c1de66f911 Fix the signal handlers in the dnssd and usb backends to only use async-safe
functions (STR #4671)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12818 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-07-31 13:29:25 +00:00
msweet 1ade8dd9b0 Fix domain socket support on Linux (STR #4679)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12817 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-07-30 15:45:46 +00:00
msweet 7c91f59a7f More journald/asl logging bug fixes (STR #4661)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12816 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-07-30 15:38:57 +00:00
msweet bbbdd14100 cupsd-logs man page should be in section 5 (STR #4674)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12814 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-07-30 15:03:33 +00:00
msweet 4b9daaf451 Fix processing of server overrides without port numbers (STR #4675)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12812 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-07-30 15:00:26 +00:00
msweet 149e8707cf Updated HTML man page...
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12811 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-07-30 14:59:14 +00:00
msweet f1ebe30e92 Fix a USB memory leak and update to the most recent interface
(<rdar://problem/21421966>)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12800 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-07-22 20:33:16 +00:00
msweet 7530b13a2e Fix a USB race condition (<rdar://problem/21882551>)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12798 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-07-21 17:44:57 +00:00
msweet 08b1b9ba47 Fix another spot where we should not be using curley quotes (<rdar://problem/21835161>)
Also fix trailing regular quote after curley quote caused by previous change.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12794 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-07-20 18:26:20 +00:00
msweet f91fdb4275 Fix mapping of a long double-quote to a regular double quote and not a curley quote
(<rdar://problem/21852022>)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12792 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-07-20 17:42:59 +00:00
msweet 36ac4374ed Fix Portugeuse localization fallback (<rdar://problem/21873202>)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12790 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-07-20 17:05:06 +00:00
msweet db7d774183 Fix sample.drv version number.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12789 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-07-20 14:51:28 +00:00
msweet cdd90b5ce3 Add URLs so they get reported at the bottom of the (very long) configure --help
output...


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12787 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-07-14 21:19:57 +00:00
msweet 6fe0e36094 Updated autoconf sources to use newer form of AC_INIT (STR #4664)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12785 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-07-14 18:07:49 +00:00
msweet 4bdf6dfacf Next release will be CUPS 2.1rc1...
Just look for libsystemd for all systemd support (STR #4669)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12784 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-07-14 17:39:26 +00:00
msweet 845cd48759 Fix typo, remove reference to OpenSSL.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12782 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-07-13 20:39:14 +00:00
msweet 8ef06c795f The scheduler incorrectly started jobs while canceling multiple jobs (STR #4648)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12777 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-07-07 17:24:06 +00:00
msweet 5252fc7ae2 Fix logging of printer URI (STR #4658)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12774 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-07-02 17:53:47 +00:00
msweet 67fe5048b9 Fix journald support (STR #4655)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12773 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-07-02 17:43:52 +00:00
msweet 71936a32a1 Fix curley quotes.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12771 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-07-02 16:14:47 +00:00
msweet 945bef5290 The web search incorrectly searched time-at-xxx values (STR #4652)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12768 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-06-30 16:13:38 +00:00
msweet 0d53bff197 Documentation changes (STR #4651)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12767 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-06-30 15:57:39 +00:00
msweet 286755bd68 Bump versions.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12763 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-06-24 20:12:22 +00:00
msweet 6d3a75901c Prep for 2.1b2 (couple more bug fixes coming...)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12760 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-06-24 20:09:38 +00:00
msweet 93d3b4feef The scheduler did not start all pending jobs at once (STR #4646)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12758 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-06-24 20:01:28 +00:00
msweet 911cdc0da8 The IPP backend did not respond to side-channel requests (STR #4645)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12757 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-06-24 19:55:31 +00:00
msweet 3b20f9f50c Add ellipsis to "Looking for printer" message.
Update strings file generation to convert common ASCII sequences to their
Unicode counterparts.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12752 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-06-24 19:30:47 +00:00
msweet f7c0e88013 Fix redirection in the web interface (STR #4538)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12751 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-06-24 18:22:32 +00:00
msweet a5425f93fa Fix a bug in cupsRasterWritePixels (STR #4650)
The return value should be the number of uncompressed bytes written, not the number of
compressed bytes.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12747 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-06-24 15:55:05 +00:00
msweet d9564ec707 Update libcupsimage to properly use DEBUG_ macros.
Add additional debug stuff for raster.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12746 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-06-24 13:28:36 +00:00
msweet 590e44a4d3 Save changes to raster unit test and debug messages.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12744 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-06-23 21:30:17 +00:00
msweet e87e23e76e Add a check for whether the compiler supports the -Wno-unused-result option.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12742 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-06-23 14:48:53 +00:00
msweet 7b61970288 Fix builds with GCC 4.8.x
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12737 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-06-15 18:21:23 +00:00
msweet f97ae2c64e Update changelog since 2.1b1 is already out.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12734 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-06-12 01:22:17 +00:00
msweet 5a08320a77 Bring back PWG white paper support for 3D print queues (just tagging of queues and drivers
that are 3D-specific, with 3D queues omitted from 2D print dialogs)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12733 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-06-12 01:21:05 +00:00
msweet 08f269f9b9 Back out PWG white paper support from mainline CUPS.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12722 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-06-08 22:00:19 +00:00
msweet 03e56bef25 Fix CUPS_VERSION value.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12717 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-06-08 21:53:06 +00:00
msweet d4aaf2e540 Update CUPS_VERSION and friends.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12716 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-06-08 21:52:19 +00:00
msweet 0d1174843a Update message catalogs.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12714 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-06-08 21:14:37 +00:00
msweet 1134a63299 Fix RPM packaging.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12713 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-06-08 21:10:09 +00:00
msweet 22ba99842c Add note about 3D support from PWG white paper.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12712 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-06-08 20:10:58 +00:00
msweet 59fd9df986 Start of 3D printer support (infrastructure only)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12711 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-06-08 19:29:57 +00:00
msweet 763a0aed16 Changelog.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12702 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-06-08 18:53:29 +00:00
msweet 5e6c3df7c0 Security: Fix CERT VU #810572 exploiting the dynamic linker (STR #4609)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12700 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-06-08 18:32:35 +00:00
msweet c59e07c674 Update documentation.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12699 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-06-08 18:16:30 +00:00
msweet ebaf274807 Prep for 2.1b1.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12697 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-06-08 17:42:16 +00:00
msweet 87f8ade3e3 Update "make check" to report on the exit status of cupsd (useful for seeing if cupsd
crashed; maybe we can grab a crash log?)

Add hyperlinks to each of the major sections.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12696 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-06-08 15:05:11 +00:00
msweet 370e42d343 Update HTML version of man page.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12695 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-06-08 15:04:25 +00:00
msweet a990ad13c7 Fix build errors on Linux for new journald logging.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12691 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-06-04 18:00:31 +00:00
msweet 42dccd4272 Fix IPP Everywhere tests I-16, I-22, and I-25 to allow media-col in the response
(STR #4630)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12690 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-06-04 16:34:20 +00:00
msweet a1797929b6 Add support for logging to stderr (STR #4505)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12689 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-06-03 19:49:54 +00:00
msweet 47ddc81271 Update messages from tlscheck.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12688 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-06-03 17:31:30 +00:00
msweet 0dc4a6bf8c Add support for ASL and journald when doing "syslog" logging (STR #4474)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12687 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-06-03 17:19:04 +00:00
msweet 5e7464ec5e Don't write empty ColorModel option (STR #4638)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12685 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-06-01 18:45:56 +00:00
msweet 45bfe940ea Added German translation (STR #4635)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12683 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-06-01 18:26:39 +00:00
msweet d1db56d49c Fix PageRegion dimensions (STR #4637)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12682 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-06-01 16:53:07 +00:00
msweet 89665c51ed Fix a compiler warning.
PWG Raster Format output contained invalid ImageBox values
(<rdar://problem/21144309>)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12678 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-05-28 19:09:48 +00:00
msweet 4ea83fb2e4 Prefer job-impressions-completed over job-media-sheets-completed.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12676 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-05-28 01:19:14 +00:00
msweet 4492316e9c Fix builds on some Darwin platforms.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12675 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-05-28 01:14:32 +00:00
msweet de3edeba17 USB and IPP backend fixes.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12672 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-05-28 00:10:27 +00:00
msweet 72aa7cb4b5 Just blacklist anonymous DH.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12670 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-05-27 19:48:05 +00:00
msweet 9514a192a5 Add support for job-impressions[-completed].
Fix regression in remote printing (needed to block date-time-at-xxx attrs)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12668 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-05-27 19:30:32 +00:00
msweet 9b4bd602fb Support many new attributes and fix some IPP conformance issues (STR #4630)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12666 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-05-25 19:38:09 +00:00
msweet 520fe1dee4 Fix a memory leak in cupsConnectDest (STR #4634)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12664 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-05-25 15:08:41 +00:00
msweet 315db3ecd6 Changelog.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12662 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-05-25 14:32:05 +00:00
msweet 9b5440d8a9 Fix intermittent "make check" failures due to the initial print job completing
before the test script checks the status (STR #4576)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12661 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-05-25 14:30:52 +00:00
msweet cab9f682cd Don't return an error for browsing.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12659 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-05-22 19:06:41 +00:00
msweet f0cd6a7ce2 Fix quoting.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12657 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-05-22 17:53:35 +00:00
msweet 8e333c29c6 Fix "make check" when there are no native CUPS filters on the system.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12655 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-05-22 17:26:40 +00:00
msweet bfa448ff84 Log the filename that cannot be opened.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12654 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-05-22 16:26:29 +00:00
msweet 838bcb9292 Fix compile error...
Drop optimization for default TLS options; better to ensure we get consistent
priority string values here than to save a few nanoseconds (previous optimized
value was wrong...)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12653 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-05-22 11:16:30 +00:00
msweet 58796d4932 tlscheck should only be built when SSL/TLS is available/enabled.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12652 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-05-22 11:09:38 +00:00
msweet bdc4056cff Update list of blacklisted DH/DHE cipher suites.
Expand what tlscheck can do/report.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12649 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-05-21 01:48:09 +00:00
msweet b37d45d9ed More tweaks for cipher suite restrictions.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12647 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-05-20 18:37:52 +00:00
msweet ee6226a5cb Add SSLOptions to enable Diffie-Hellman key exchange and disable TLS/1.0.
DH/DHE support is being made optional because of known security issues with short
DH parameters.  Since there is no way to conditionally use DH/DHE with a minimum
number of bits, we just have to disable it by default.

TLS/1.0 support can now be disabled due to known security issues with TLS/1.0.
However, since TLS/1.1 and TLS/1.2 support is not universally available, we
cannot simply disable TLS/1.0 like we did for SSL/3.0.



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12645 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-05-20 01:20:52 +00:00
msweet 3bb5973159 Fix compiler warnings.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12644 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-05-19 21:22:35 +00:00
msweet b81c7a3272 Ignore tlscheck.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12643 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-05-19 15:05:12 +00:00
msweet b2250eaa0b Fix compiler warning.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12641 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-05-19 15:04:39 +00:00
msweet 88da3fd755 Add more cipher suites.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12640 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-05-19 15:03:48 +00:00
msweet 3363e7596f ippfind incorrectly substituted "=port" for service_port.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12638 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-05-19 02:36:15 +00:00
msweet fb9d90d672 Add a check for "=" in the port number (to work around an ippfind bug)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12637 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-05-19 02:26:15 +00:00
msweet 72b9a3131a Add TLS version.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12636 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-05-19 02:22:55 +00:00
msweet 79a3732626 Start of check program for TLS implementations.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12635 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-05-19 02:12:22 +00:00
msweet d25e43cfbe The ppdhtml and ppdpo utilities crashed when the -D option was used before a
driver information file (STR #4627)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12633 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-05-15 19:16:58 +00:00
msweet f64b32d934 The IPP backend now correctly monitors jobs (<rdar://problem/20495955>)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12623 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-05-06 23:50:10 +00:00
msweet 560634d338 Write numbers in a locale-safe way (STR #4579)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12622 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-05-06 23:19:28 +00:00
msweet fab4b71e38 Long cookies caused the web interface to stop working (STR #4619)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12621 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-05-06 21:32:18 +00:00
msweet d4cda727d5 The scheduler now validates ErrorPolicy values in config files (STR #4591)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12620 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-05-06 21:11:47 +00:00
msweet 6d8021f4bd Check the return value of rename() (STR #4589)
Add some & in front of function names.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12619 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-05-06 21:00:19 +00:00
msweet dc991142c4 The sample Epson driver could crash (STR #4616)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12617 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-05-06 20:28:22 +00:00
msweet ea614873ca Link with common libs (to get CoreFoundation).
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12615 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-05-06 20:21:51 +00:00
msweet bb00c43fcc The scheduler could get caught in a busy loop (STR #4605)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12613 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-05-06 18:01:04 +00:00
msweet 2906719433 The cups-lpd mini-daemon did not check for request parameters (STR #4603)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12611 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-05-06 15:30:36 +00:00
msweet c130ea1d81 The rastertopwg filter did not check for truncated input (STR #4597)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12609 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-05-06 12:24:47 +00:00
msweet 33076d249b cupsRasterReadHeader did not fully validate the raster header (STR #4596)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12607 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-05-06 12:19:59 +00:00
msweet d2df9aeddb The web interface always showed support for 2-sided printing (STR #4595)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12605 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-05-06 01:58:08 +00:00
msweet 61c9d9f825 Fix lpadmin when both -m and -o are used (STR #4578)
Grab server PPD and edit it as needed.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12603 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-05-06 01:42:51 +00:00
msweet d201ec2b11 Update copyright.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12602 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-05-05 20:19:35 +00:00
msweet d2ff46225c Fixed <Limit> inside <Location> (STR #4575)
Need to copy length when copying location.  Also strip trailing / and query
string when doing path comparison.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12600 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-05-05 19:52:13 +00:00
msweet 3606a6d61f Fix weak-link check.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12599 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-05-05 19:48:38 +00:00
msweet 367377293a Change maximum raster resolution to 300 DPI.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12598 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-05-05 18:57:57 +00:00
msweet c8fdb00125 Fix some clang issues.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12583 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-04-03 00:33:05 +00:00
msweet cbf9404a5a Fix a gzip processing bug (STR #4602)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12577 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-03-30 19:07:17 +00:00
msweet 50752acba9 Fix potential buffer overflow in rastertohp (STR #4601)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12574 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-03-26 16:36:18 +00:00
msweet 8326c12921 Fix another potential buffer overflow (STR #4600)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12572 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-03-25 20:04:18 +00:00
msweet f8e5a7b498 Fix another potential buffer overflow (STR #4599)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12570 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-03-25 18:44:16 +00:00
msweet 94d5dc4814 Fix buffer overflow in rastertopwg (STR #4598)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12568 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-03-25 13:49:23 +00:00
msweet f8f7636ed6 Eliminate Clang warnings.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12559 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-03-23 17:28:46 +00:00
msweet c4496252d6 Fixed logging of configuration errors to show up as errors (STR #4582)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12542 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-02-27 18:41:55 +00:00
msweet 77b80b0d76 Add Russian translation (STR #4577)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12540 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-02-27 18:15:29 +00:00
msweet fd40cbc4d1 Restore missing generic printer icon file (STR #4587)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12538 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-02-27 18:01:33 +00:00
msweet ea72cf2b56 The cupstestppd program did not handle "maxsize(nnn)" entries in cupsFilter/
cupsFilter2 values (<rdar://problem/18974858>)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12536 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-02-27 14:06:20 +00:00
msweet 6ee8dca8b5 Install filename.default versions of cups-files.conf and snmp.conf
(<rdar://problem/19024491>)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12533 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-02-27 12:30:26 +00:00
msweet fe750b8658 Fix USB backend for compatibility with IPP USB.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12528 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-02-23 18:57:20 +00:00
msweet 5629a813c4 Eliminate usage of sprintf.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12523 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-02-18 18:24:39 +00:00
msweet 0907c437d2 Fix empty stdin open...
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12521 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-02-17 20:00:17 +00:00
msweet fb458c34bf Revert SDKROOT changes for OS X.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12519 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-02-17 13:10:19 +00:00
msweet fb2d54701f Last bits of IPP Everywhere PPD support - web interface and cups-driverd
(STR #4258)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12516 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-02-12 20:18:11 +00:00
msweet fffed08915 lpadmin changes to support "-m everywhere" (STR #4258)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12513 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-02-11 19:45:01 +00:00
msweet 8bd1a2e1ef Changelog.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12511 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-02-11 15:28:52 +00:00
msweet d9fc71e456 First part of IPP Everywhere PPD support - a private API that generates a PPD
from a Get-Printer-Attributes response (STR #4258)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12510 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-02-11 15:27:27 +00:00
msweet 14537a4db8 Fix pwg-raster-document-types-supported values.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12509 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-02-11 15:25:26 +00:00
msweet e3138ca407 Remove generated file.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12507 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-02-10 12:04:26 +00:00
msweet 4463881125 Don't ignore.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12506 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-02-10 12:04:07 +00:00
msweet 8e732f4a20 The scheduler no longer listens on the loopback interface unless the web
interface or printer sharing are enabled (<rdar://problem/9136448>)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12497 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-02-06 21:58:21 +00:00
msweet 974ad7dfd4 Set ProcessType in launchd plists (<rdar://problem/19749641>)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12495 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-02-06 21:51:27 +00:00
msweet 64dda3963f Enable transaction and pressured exit support (<rdar://problem/19749501>)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12493 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-02-06 21:43:23 +00:00
msweet 543507bea2 Add support for SDKROOT on OS X.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12492 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-02-06 21:33:50 +00:00
msweet 2cf627f029 Fix lpstat test.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12490 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-02-06 18:45:48 +00:00
msweet a21c36fa82 Add new WITH-VALUE-FROM predicate to validate -default attributes against their
-supported counterparts.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12487 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-02-05 15:42:59 +00:00
msweet 1ec50c42bd Fix memory leak of environment strings on failed execution.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12485 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-02-04 13:12:50 +00:00
msweet e83646d5c2 Add EXPECT-ALL directive to ipptool (STR #4469)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12484 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-02-03 19:25:57 +00:00
msweet eb92c2e74b Copyright updates.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12483 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-02-03 12:49:40 +00:00
msweet 3abb875b96 Fix several issues with client.conf, CUPS_SERVER, and the "-h" option of most
commands (STR #4528)

Load default client.conf values in the proper order, and then allow them to be
overridden.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12480 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-02-03 12:36:34 +00:00
msweet eb098ba20b Add a note about using BUILDROOT to redirect installs.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12478 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-02-03 05:02:20 +00:00
msweet 08c7d54404 Add note that ServerKeychain is a directory of files on most platforms.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12476 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-02-02 18:35:00 +00:00
msweet df9bc0b7f8 Update LPD backend documentation (STR #4569)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12474 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-02-02 18:18:55 +00:00
msweet cefc2beec5 Japanese translation (STR #4524)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12472 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-02-01 05:53:21 +00:00
msweet a7616fe837 Another change for OpenBSD (STR #4526)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12470 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-02-01 05:06:54 +00:00
msweet a6534de898 Copyright.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12468 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-02-01 04:50:43 +00:00
msweet ba7900a529 The ipptool timeout option did not work (STR #4515)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12466 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-02-01 04:50:11 +00:00
msweet e9f9e650da The ippfind and ipptool programs now correctly match hostnames with trailing
dots (STR #4563)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12464 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-02-01 02:46:20 +00:00
msweet c07e5e20f8 The scheduler did not always log which configuration file had the error
(STR #4559)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12462 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-01-30 16:34:13 +00:00
msweet f775e78ae9 Add a USB quirk rule for Intermec printers (STR #4553)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12460 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-01-30 16:19:56 +00:00
msweet 3644808db7 The scheduler could crash during shutdown if Avahi was shutdown first
(STR #4550)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12458 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-01-30 16:15:53 +00:00
msweet 726429cbd4 ippserver did not handle Bonjour registrations properly (STR #4548)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12456 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-01-30 16:11:41 +00:00
msweet 12f009bb47 ippserver used the wrong temporary directory on Windows (STR #4547)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12454 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-01-30 16:05:50 +00:00
msweet 62bd8d9187 Validate cupsBitsPerColor, cupsBitsPerPixel, and cupsBytesPerLine to avoid
potential buffer overflow with compressed raster data (STR #4551)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12452 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-01-30 15:42:10 +00:00
msweet 4eff94092d cupsGetPPD* sent bad requests (STR #4567)
Use IPP_TAG_KEYWORD for requested-attributes in get_printer_uri.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12448 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-01-29 20:32:07 +00:00
msweet 0940626b54 Update copyrights...
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12447 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-01-29 20:26:30 +00:00
msweet eb5c9ea320 Drop support for "Sandboxing off" when running as root on OS X.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12445 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-01-29 20:25:06 +00:00
msweet f099325eb2 Move _cupsConvertOptions to ppd-cache since it depends on PPDs.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12441 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-01-29 14:42:32 +00:00
msweet 07eca067cf Move CUPS->IPP mapping code to libcups.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12439 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-01-28 21:05:25 +00:00
msweet 4c97c06fa1 Don't forget to close RequestRoot directory.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12437 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-01-28 18:09:38 +00:00
msweet 222753d9fb cupsd takes the slow path when loading job history even if the control files
are older than the cache file (<rdar://problem/18188866>)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12435 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-01-28 18:06:28 +00:00
msweet 79d7d84abf Mapping of PPD keywords to IPP keywords did not work if the PPD keyword was
already an IPP keyword (<rdar://problem/19121005>)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12432 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-01-28 16:21:40 +00:00
msweet 20529d535e Fix copyright.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12429 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-01-27 21:22:37 +00:00
msweet 6e6611efe9 Backends needing to load OS X kernel extensions did not work
(<rdar://problem/19015679>)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12426 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-01-27 21:21:32 +00:00
msweet 69889dcff4 The IPP backend now updates the cupsMandatory values when the printer
configuration changes (<rdar://problem/18126570>)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12424 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-01-27 16:51:17 +00:00
msweet c178ac6149 The IPP backend now sends the job-pages-per-set attribute when printing
multiple copy jobs with finishings (<rdar://problem/16792757>)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12422 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-01-26 16:38:15 +00:00
msweet 3ae465e71c Update availability macros for Yoemite.
Don't need to define kSecClass constants anymore...


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12418 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-01-22 15:49:23 +00:00
msweet 352d5a7db5 Make sure clean and distclean remove all generated files.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12414 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-01-21 00:02:04 +00:00
msweet 6884f8da96 Fix compiler warnings.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12411 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-01-19 15:17:18 +00:00
msweet a112444032 "job-preferred-attributes-supported" needs to be "preferred-attributes-supported"
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12407 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-01-14 21:17:10 +00:00
msweet ef14694020 Adjust GNU TLS cipher suite priority strings per feedback from Tim
Waugh.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12404 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-01-14 20:04:25 +00:00
msweet f25ce75f36 Use PPD deprecation annotation for cupsGetPPD functions.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12401 a1ca3aef-8c08-0410-bb20-df032aa958be
2015-01-12 16:59:02 +00:00
msweet da5f55b560 Use gziptoany instead of cat or gunzip.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12397 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-12-19 16:55:52 +00:00
msweet 6f260d7d72 More spots where port was hardcoded.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12395 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-12-19 16:11:14 +00:00
msweet 8f8d5cd468 Use port number for test server.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12393 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-12-19 15:33:22 +00:00
msweet e0f0a3d5c7 Make sure to run the lpstat command from the source directory.
Dummy scripts need to consume their input...


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12391 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-12-19 14:54:33 +00:00
msweet f70e9f2c35 More cleanup.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12389 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-12-19 13:10:28 +00:00
msweet 35a242864a Clean up filters for test.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12388 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-12-19 13:08:56 +00:00
msweet e7061482c0 Trap common signals in the wrapper scripts.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12386 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-12-19 12:52:56 +00:00
msweet 6015e919ce Use SVN revision instead of date, when possible.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12373 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-12-17 19:30:39 +00:00
msweet 95dd887665 Allow "make check" to run on different ports and in different directories.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12371 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-12-17 13:36:32 +00:00
msweet a891ff4cc9 Don't try to talk to colord unless we are running as root.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12368 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-12-15 14:51:10 +00:00
msweet 00d3a9af03 SystemGroup is now documented in the cups-files.conf man page.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12365 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-12-15 14:02:57 +00:00
msweet 37d9646b92 Fix links from policies.html to cupsd.conf reference.
Add HTML anchor support to mantohtml.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12362 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-12-12 19:50:49 +00:00
msweet 237b42e933 Preserve job files for 5 minutes.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12359 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-12-11 17:45:57 +00:00
msweet a33b4a6cc1 Don't log a "file does not exist" error for a canceled job.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12357 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-12-11 17:42:01 +00:00
msweet 1d58a957e3 Add in test banner files.
Update version number in test report.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12356 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-12-11 17:34:58 +00:00
msweet 3b5b1841db Changelog.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12352 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-12-09 22:19:28 +00:00
msweet c4a1d4a533 Fix typo for --without-xinetd (STR #4542)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12350 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-12-09 22:18:21 +00:00
msweet 5e1504aa1e Fix USB printing on OpenBSD (STR #4525)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12348 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-12-09 22:10:45 +00:00
msweet 12f1eda99b ...
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12345 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-12-09 21:41:30 +00:00
msweet 2274af3819 ...
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12343 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-12-09 21:36:01 +00:00
msweet ce7d367df7 Fix a libusb issue on OpenBSD.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12341 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-12-09 21:33:23 +00:00
msweet cf1d728186 More changes.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12339 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-12-09 21:27:43 +00:00
msweet ce861325f4 Bypass another bogus compiler warning.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12337 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-12-09 21:23:49 +00:00
msweet aac48e5f50 OpenBSD's libiconv uses libiconv_open instead of iconv_open...
Standards, gotta love 'em.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12335 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-12-09 21:19:42 +00:00
msweet 341efe62ec Silence yet another bogus compiler warning.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12333 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-12-09 21:01:46 +00:00
msweet cadceea851 Changelog.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12331 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-12-09 20:58:34 +00:00
msweet 52958fdb98 Relax the conversion of characters for OpenBSD.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12330 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-12-09 20:57:28 +00:00
msweet 4f2935a856 Eliminate another bogus compiler warning...
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12327 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-12-09 20:38:39 +00:00
msweet c70c356152 Yet another header...
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12324 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-12-09 20:28:39 +00:00
msweet e10c6901cd Use TMPDIR for snapshots and releases.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12322 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-12-09 20:17:41 +00:00
msweet 758c3b305b Try to get resolv.h test to work on OpenBSD.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12320 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-12-09 19:43:35 +00:00
msweet abcf164745 Update resolv.h check to include dependent headers.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12317 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-12-09 18:35:35 +00:00
msweet 0a15691ae7 Eliminate compiler warning.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12315 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-12-09 18:19:45 +00:00
msweet 0c124a183a Additional fix for STR #4531.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12313 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-12-09 17:58:18 +00:00
msweet 22ebb7d0ba Fixed builds when no SSL/TLS library is available, or when explicitly disabled
(STR #4531)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12311 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-12-09 17:51:55 +00:00
msweet e0646a95d8 Mirror change.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12304 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-12-09 16:16:28 +00:00
msweet 770f94bc2d Address another bogus GCC warning.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12300 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-12-09 16:08:37 +00:00
msweet 8d5b58f632 Workaround stupid GCC bug.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12296 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-12-08 19:26:22 +00:00
msweet 56138cae8a The cups-files.conf file contained the old ServerCertificate/Key directives
instead of ServerKeychain.



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12289 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-12-05 17:25:43 +00:00
msweet 765bf3beb5 The scheduler incorrectly aborted jobs after a job was restarted
(<rdar://problem/19129387>)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12285 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-12-04 18:57:07 +00:00
msweet 426184cbf4 ippLength() did not return the correct length for IPP_TAG_CONST string values.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12281 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-12-03 12:14:20 +00:00
msweet 95fcd65c91 Don't install banner and self-test files (STR #4518)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12278 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-12-01 13:53:56 +00:00
msweet c5f27b8891 Ignore buildfarm .buildrev file.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12277 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-11-24 19:38:20 +00:00
msweet 20aa0765bd Fix up PPD unit test.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12275 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-11-24 19:37:21 +00:00
msweet 51e07447b2 CUPS did not compile without Avahi or mDNSResponder (STR #4523)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12270 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-11-20 17:07:58 +00:00
msweet 19ba687883 CUPS did not work with older versions of GNU TLS (STR #4527)
- Add check for gnutls_priority_set_direct, use older gnutls_priority_set API
  if not found.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12269 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-11-20 15:37:29 +00:00
msweet c989e789ea Update test PPD to include OutputBin to validate PPD to IPP mapping.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12268 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-11-19 17:06:08 +00:00
msweet a27984635c Clean up some loose ends.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12267 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-11-19 16:56:57 +00:00
msweet caff6dbab1 The scheduler incorrectly cleared the MakeModel string in the printers.conf file
after a restart (<rdar://problem/16827518>)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12264 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-11-19 16:02:27 +00:00
msweet b2656447ce Command-line programs were not localized on Mac OS X (<rdar://problem/14546232>)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12262 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-11-19 15:18:33 +00:00
msweet 6028693e0d <rdar://problem/17837631> OS X continues sending print data after the print job is canceled at a printer
Stop sending data when we see an 'aborted-by-system' or 'job-canceled-xxx' value
in job-state-reasons.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12260 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-11-19 12:52:21 +00:00
msweet 93a5da07d5 <rdar://problem/15146999> 13A598: spin in AddPrinter while adding printer from Printers & Scanners prefs
Don't need to do ppdConflicts after every default is marked.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12258 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-11-19 12:38:44 +00:00
msweet 938816b84c Ignore generated files.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12253 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-11-14 17:16:13 +00:00
msweet 73174bb3ba The web interface did not work on OpenBSD (STR #4496)
posix_spawnattr_setsigdefault and POSIX_SPAWN_SETSIGDEF are busted on OpenBSD.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12251 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-11-14 17:14:30 +00:00
msweet a0e8382185 Windows BAT files need CR+LF.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12249 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-11-14 12:54:05 +00:00
msweet 242b936ad7 Make "cancel -a" cancel jobs on all destinations.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12247 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-11-12 16:23:39 +00:00
msweet 1b3b9aa995 Fix compiles on unsupported platforms (STR #4510)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12246 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-11-12 15:31:47 +00:00
msweet 108f75052d Fix a random crash in the scheduler when not using systemd (STR #4484)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12245 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-11-12 14:35:59 +00:00
msweet bb80072ca4 Added a USB quirk rule for the Brother HL-1250 (STR #4519)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12242 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-11-12 12:04:02 +00:00
msweet d627bfa00d Whoops, RC4 and SSL3 need separate bit values.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12241 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-11-12 12:02:02 +00:00
msweet 5513588c77 Initial Get-Notifications implementation (no notify-wait support).
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12237 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-11-03 13:07:32 +00:00
msweet 49c81c17e3 Save work.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12236 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-11-03 04:08:41 +00:00
msweet 3d2fdf3863 Update README and other files in trunk to be 2.1.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12235 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-10-31 12:06:15 +00:00
msweet ed26f50fbb OpenBSD build fixes.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12233 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-10-25 00:03:02 +00:00
msweet 4978eed9c0 The IPP backend did not work with some configurations of Windows (STR #4503)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12229 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-10-21 13:52:24 +00:00
msweet bf766888c7 Stop reporting waste-receptacle-xxx from SNMP, because vendors implement it
inconsistently (STR #4499)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12227 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-10-21 13:42:04 +00:00
msweet cae3816ebe Fix a DBUS crash if colord is not running (STR #4496)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12225 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-10-21 13:35:54 +00:00
msweet af38c1b354 The scheduler did not honor the FatalErrors directive for mis-configured Group
and SystemGroup values (STR #4495)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12223 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-10-21 13:14:55 +00:00
msweet 451d5797fa Add systemd support for cups-lpd (STR #4493)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12221 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-10-21 11:54:05 +00:00
msweet 241474b0d9 The web interface now protects against frame "click-jacking" attacks (STR #4492)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12219 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-10-20 21:59:33 +00:00
msweet 9b9c3de281 cupsGetPPD* would return a symlink to the PPD in /etc/cups/ppd even if it was
not readable by the user (STR #4500)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12218 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-10-20 21:41:29 +00:00
msweet 0627e8695c Printer sharing did not work when systemd was being used (STR #4497)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12216 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-10-20 18:42:11 +00:00
msweet c9c515e478 Remove a debug printf.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12214 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-10-20 18:20:51 +00:00
msweet 5c460b65dc Fix builds with VC++ 2008
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12213 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-10-20 18:10:26 +00:00
msweet 63aefcd517 Implement SSLOptions in cupsd.conf and client.conf to allow admins to enable
SSL 3.0 and RC4 (STR #4476)

(currently RC4 cipher restrictions are not implemented on OS X or Windows)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12211 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-10-20 16:58:48 +00:00
msweet 84245a8a38 Fix compile errors.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12209 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-10-17 18:27:22 +00:00
msweet d65637395c Add Avahi support to ippserver.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12208 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-10-17 18:23:27 +00:00
msweet 3315fb2d4e Fix sample driver file to pass tests.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12201 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-10-15 19:11:12 +00:00
msweet f28a1eafa2 RPMs did not build (STR #4490)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12199 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-10-09 16:11:51 +00:00
msweet 2c69d4628c Protect against NULL collection values (<rdar://problem/17903871>)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12193 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-10-02 18:40:12 +00:00
msweet 92ee0d7c02 Save work on IPP Infra server and proxy (WIP)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12191 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-10-01 19:00:21 +00:00
msweet fab9a59a3b Trunk is now 2.1.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12187 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-10-01 13:15:30 +00:00
msweet c7aa86b042 Update files for 2.0.0 release.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12180 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-10-01 12:08:02 +00:00
msweet 91f22d1157 Fix build issues when we don't have systemd or launchd.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12178 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-09-30 18:56:48 +00:00
msweet 1960468b6b Fix system requirements (no more SGT required).
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12177 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-09-30 16:36:25 +00:00
msweet 159df568e1 Drop reference to Digest authentication.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12176 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-09-30 16:34:32 +00:00
msweet 270f2d4279 Remove "at the top of this page", since that is confusing when viewing the
documentation on the CUPS.org web site.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12175 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-09-30 16:31:12 +00:00
msweet e2f8e83152 Update glossary to remove some obsolete terms and add PWG.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12174 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-09-30 16:29:32 +00:00
msweet 388b2b4d83 Clean up network printer guide; IPP is no longer unreliable so don't advise
using socket, and drop the compression option since it is no longer needed.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12173 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-09-30 16:27:35 +00:00
msweet e49523c508 Clarify that scripts must be read-only and owned by root.
Also list CONTENT_TYPE variable.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12172 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-09-30 16:23:21 +00:00
msweet 075b444be3 Do not say third-party solutions are on cups.org (not any more).
Also mention that page logging has to be enabled.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12171 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-09-30 16:18:00 +00:00
msweet 2711d8657a Update the list of operations to match what CUPS supports.
Fix an error in listing support for Restart-Job twice.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12170 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-09-30 16:12:03 +00:00
msweet 9e8e57a558 Spanish localization (STR #4487)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12166 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-09-29 15:10:32 +00:00
msweet ebb24a07bb Fix some code comments in tls-xxx.c.
Update USB quirks for MX310 and MX320 (STR #4482)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12159 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-09-23 14:56:14 +00:00
msweet 484798d807 Don't use --read-var-info=yes with Valgrind for now since it has problems on
OS X...


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12151 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-09-04 00:57:41 +00:00
msweet 6e6adc4fa3 The scheduler did not preserve listener sockets from launchd or systemd after a
restart (<rdar://problem/18112848>)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12149 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-09-03 15:33:50 +00:00
msweet 9aed20a59e Last changes for 2.0rc1.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12145 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-09-02 15:00:50 +00:00
msweet da720f3b9a Update POSIX test script to no longer define variables - we just use the
environment from ippfind...


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12144 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-09-02 13:40:27 +00:00
msweet b32e625662 IPP Everywhere tests finally work for Windows. Fix an output bug in ipptool in quiet mode.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12143 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-09-02 13:37:30 +00:00
msweet 12f73e6f2b Tweak localization files for updates help text.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12141 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-08-30 02:25:38 +00:00
msweet 1deb86fdaf Re-introduce dark wake support, but this time while monitoring the current
power source (<rdar://problem/17325852>)

This allows printing to work while the system is visibly asleep.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12140 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-08-30 01:51:22 +00:00
msweet 1b6d468c9a Save work
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12139 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-08-29 17:50:38 +00:00
msweet 3c08d65244 Save work.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12137 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-08-29 16:08:22 +00:00
msweet 015214aada Changes to make ippserver compile on Windows.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12136 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-08-29 15:19:40 +00:00
msweet 1e564ac849 Add project for ippserver on Windows.
Sync up config.h and do some minor cleanup.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12135 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-08-29 14:29:39 +00:00
msweet 193013f909 Save work.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12134 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-08-29 12:38:53 +00:00
msweet 6ca7b7a8e7 Make sure CachDir is only readable by root and lp.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12132 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-08-29 11:27:18 +00:00
msweet f098fcf0ff Fix package filenames to match spec.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12130 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-08-28 22:40:36 +00:00
msweet c6cc3553c8 Eliminate compiler warning.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12129 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-08-28 19:26:31 +00:00
msweet 20104c4c13 Make sure RSS feeds are world-readable (STR #4461)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12128 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-08-28 19:23:23 +00:00
msweet 83ce8172d2 Add a (non-shipping) man page for ippserver.
Add some missing file to the repository.

Update the README.txt file for CUPS, which still had old links and legal
language.

httpGetHostname did not make sure a .local name ended with a ".".

ippserver now properly assigns the default port number and hostname, and adds
the job attributes to the environment of the print command (if specified).

ippserver now validates that the print command can be run before it accepts any
jobs.

Rename "document-format-tests.*" to "document-tests.*".

Implement the script to build the IPP Everywhere Printer Self-Certification
tools.

Add a readme for the self-certification tools.




git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12127 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-08-28 18:57:27 +00:00
msweet f9f18a7425 Don't need to include <gcrypt.h>...
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12126 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-08-28 16:02:00 +00:00
msweet e7312eb40a Eliminate the rest of the warnings when the other dependencies are added in.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12125 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-08-28 15:49:29 +00:00
msweet 7d5824d6a8 Fix Linux builds without normal prerequisite libraries installed.
Also correct GCC 4.8 compiler warnings.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12124 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-08-28 15:37:22 +00:00
msweet 3bc376ee94 Fix the spinner image on a restart (STR #4475)
Also fix the redirection link.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12123 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-08-28 14:24:45 +00:00
msweet 9483577ff8 Fix RPM build issues (STR #4459)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12122 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-08-28 12:55:52 +00:00
msweet b972ab5a76 FileId goes under each test.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12121 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-08-27 21:40:10 +00:00
msweet 276762cd09 Update ipptool to include a Skipped boolean key for skipped tests.
Update FileId of tests.

Include Skipped boolean key for skipped Bonjour tests.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12120 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-08-27 20:52:33 +00:00
msweet 0e4445e91b Fix some IPP conformance issues with Send-Document (wasn't copying values).
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12119 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-08-26 17:01:57 +00:00
msweet fe202ff462 ippfind fixes:
- Fix a bug with '{name}' substitution in ippfind.
- Fix a bug with --txt-name option handling in ippfind.
- Add some more debugging output to ippfind when IPPFIND_DEBUG env var is set.

ippserver fixes:

- Include TLS and UUID keys in TXT record.
- Implement HTTP Upgrade to TLS.

IPP Everywhere test file fixes:

- Separate access and value tests, confusing.
- Fix some of the tests to work properly (cut/paste errors)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12118 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-08-26 15:36:07 +00:00
msweet 8288bfd0d9 Save work on all of the IPP Everywhere tests, and a bug fix for ippfind.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12117 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-08-25 21:38:31 +00:00
msweet 04f71e64cf Tweak default printer icon, add apple-touch-icon to ippserver.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12116 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-08-25 15:07:35 +00:00
msweet 952fa13df6 Finish up document format tests.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12115 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-08-25 14:54:55 +00:00
msweet a5a8d71629 Update changelog.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12114 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-08-25 13:29:04 +00:00
msweet 112fc3c0bd Allow access to cupsd-created files with non-world-readable permissions via the
web interface (STR #4461).

Use cupsdCreateConfFile API to create PPD files, and use the ConfigFilePerm for
PPD files.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12113 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-08-25 13:28:04 +00:00
msweet 1252ae2760 Maybe final new printer icon image.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12112 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-08-22 13:14:17 +00:00
msweet 4403acbb9f Update printer icon (not final)
Add some more raster "support".


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12111 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-08-21 20:37:08 +00:00
msweet 404dde30f1 Save work.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12110 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-08-21 17:43:30 +00:00
msweet a654c79d10 Fix an ippserver Send-Document issue with PWG raster files.
Fix some ipptool issues:

- ${VARIABLE} wasn't supported
- DEFINE-VALUE included all values; now just define with the last value.
- NAME didn't expand variables.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12109 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-08-20 21:44:02 +00:00
msweet ff6403d63d Drop Epson Stylus drivers from readme.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12106 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-08-20 15:28:22 +00:00
msweet 55fb2687e9 Dropped the old Epson Stylus Color/Photo sample drivers since they don't work
with any current printers and there are free alternatives that produce much
better output (<rdar://problem/18036889>)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12105 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-08-20 15:27:43 +00:00
msweet abcaca5754 Update sandboxing documentation to indicate which directories are allowed for
domain sockets.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12103 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-08-20 15:20:48 +00:00
msweet 59aa494417 Add read access to /private/var/tmp, socket access to /private/var/tmp, and
read access to all of /Library and /System/Library (STR #4471, <rdar://problem/17483959>)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12102 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-08-20 15:19:09 +00:00
msweet 8e8d3a7117 Fix libgmalloc usage (although the report is still not too useful - need to do
more here...)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12101 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-08-20 15:10:51 +00:00
msweet dd47aa7db8 Add script to run the IPP tests.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12100 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-08-20 01:22:38 +00:00
msweet 10ff1f8852 Changelog.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12099 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-08-20 01:07:01 +00:00
msweet e3a57e0be3 Fix the last of the conformance issues.
ippserver now supports IPP Everywhere (STR #4101)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12098 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-08-20 01:06:03 +00:00
msweet 0b5ce83f88 Finish up new web interface for ippserver so we can fiddle with media and
supply levels.

Fix a DISPLAY bug in ipptool.



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12097 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-08-20 00:52:06 +00:00
msweet 27347f86a5 Update dependencies.
Drop document-name as a Job attribute (it isn't).


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12096 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-08-19 16:19:48 +00:00
msweet 4a83808817 More IPP Everywhere fixes; almost there!
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12095 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-08-19 16:16:06 +00:00
msweet e1f19878c6 Update "since CUPS 2.0" into to mention OS X 10.10.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12094 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-08-19 12:15:11 +00:00
msweet 58fce51f9f Fix documentation typo.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12093 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-08-19 12:10:17 +00:00
msweet c2c30ebc03 Save work on IPP Everywhere updates.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12092 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-08-18 20:53:41 +00:00
msweet 2cadf0f454 Save work on making ippserver conform to IPP Everywhere.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12091 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-08-18 12:11:25 +00:00
msweet 92df50e696 Include job-uri in get-jobs tests.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12088 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-08-07 01:09:21 +00:00
msweet 82d1ebb9c6 Add section on OS X sandboxing (STR #4464)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12085 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-08-06 18:59:13 +00:00
msweet dc69e13abd Add libgmalloc and malloc_history to the test suite on OS X.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12084 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-08-06 18:23:12 +00:00
msweet 117466cd93 Free the sockets array returned by launch_activate_socket.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12082 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-08-04 16:18:32 +00:00
msweet c297995574 Don't call launch_activate_socket multiple times (<rdar://problem/17523218>)
Bump version to 2.0rc1.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12080 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-08-04 13:23:50 +00:00
msweet dd32079c83 Fix version check.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12075 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-07-31 01:12:53 +00:00
msweet d95bd167bc More cleanup.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12074 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-07-31 01:10:14 +00:00
msweet 240214ef23 Remove implementation of cupsGetClasses, cupsGetPrinters, and cupsTempFile;
these functions are still exported but they all now return empty results.

Update API documentation.

Update version number to 2.0b1 without SVN identifier.

Fix some more RPM spec file issues.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12073 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-07-31 00:58:00 +00:00
msweet c034d390f2 No more "what's new" file.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12072 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-07-31 00:43:05 +00:00
msweet eb4b1b5696 Prep for 2.0b1.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12071 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-07-31 00:37:33 +00:00
msweet f16ea703e1 Performance fixes for Get-Jobs (STR #2913)
Cache a few additional job attributes so that we normally do not need to load
the job attributes from the 'c' files.

If we do need to load them, limit the returned jobs to 500 at a time.

Implement first-index operation attribute.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12067 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-07-31 00:02:30 +00:00
msweet eec1fbc36f The scheduler now returns completed jobs in the correct newest-to-oldest order
(STR #4396)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12066 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-07-30 18:30:44 +00:00
msweet 2a8db0cddf Save work on test suite to ensure we collect the exit status of all child
print processes.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12065 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-07-30 17:56:35 +00:00
msweet 23c665995a Sync up changelog.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12064 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-07-30 16:57:40 +00:00
msweet 053939b362 Update cupsd.conf man page to list the ErrorPolicy directive (STR #4457)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12059 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-07-28 14:04:32 +00:00
msweet 2e667a52c6 Also add the world-readable check.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12056 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-07-22 14:02:56 +00:00
msweet 9e92ab1978 Security: Addressed some more situations where symlinked files would be served
by the web interface (STR #4455)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12055 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-07-22 13:58:51 +00:00
msweet 13713f49a4 Fix CGI scripts (STR #4454)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12051 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-07-18 20:37:44 +00:00
msweet a2751f30e7 Fix some compile errors.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12050 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-07-18 16:51:12 +00:00
msweet 26435c51e6 Sanitize hostname as needed.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12049 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-07-18 14:39:06 +00:00
msweet 81827f7547 Final changes to track TLS credentials (STR #1616)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12048 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-07-18 14:26:14 +00:00
msweet 74ac5fe799 Fix a few build errors with VC++
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12047 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-07-18 13:53:34 +00:00
msweet 52770f63a2 Implement httpLoadCredentials and httpSaveCredentials for SSPI.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12046 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-07-18 13:43:26 +00:00
msweet 9041146f32 Save work - fix the cert helper functions, implement httpCopyCredentials.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12045 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-07-17 21:32:21 +00:00
msweet 17eecbf1d8 Save work on SSPI certificate functions for validation and info.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12044 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-07-17 21:21:21 +00:00
msweet e32497ad0c Save work - properly implement server stuff, separate out cert creation.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12043 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-07-17 20:03:10 +00:00
msweet adad9dd69b Save work - testhttp now works to get HTTPS web page.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12041 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-07-17 16:42:49 +00:00
msweet d777d26d19 Update debugging/error reporting code to use FormatMessage throughout.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12040 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-07-17 16:35:49 +00:00
msweet 195c1f2d5e Save work - more debug stuff.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12039 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-07-17 16:24:52 +00:00
msweet 6abe9327bf Fix authorization (and other error) text from CGIs.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12037 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-07-16 19:48:22 +00:00
msweet 6c2b2b1944 Fix cookie handling for web interface.
Allow access to auth certificates in the state directory.

Remove client connection from select when all data has been read from client.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12034 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-07-16 19:37:34 +00:00
msweet 9870d12b8f Save work - client TLS negotiation now works, but hangs on a GET...
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12033 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-07-15 21:12:56 +00:00
msweet 4128527fd1 Automate creation of the libcups2.def file, since it is really out-of-date...
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12032 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-07-15 20:37:32 +00:00
msweet 33c9220c0a Get builds working on Windows again.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12031 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-07-15 19:57:59 +00:00
msweet 95d03f3375 Bump shared library version.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12030 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-07-15 19:39:18 +00:00
msweet 2ece34a9f8 Initial work on SSPI support in 2.0.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12029 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-07-15 18:59:26 +00:00
msweet bdc8d1ad53 Fix load/save of certificates.
Implement peer certificates.

Validation now works for GNU TLS (STR #1616)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12028 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-07-15 14:01:27 +00:00
msweet 1b1b177663 Changelog.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12026 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-07-15 13:00:25 +00:00
msweet 2875da6cee Fix the fix for STR #4452 - incorrectly used httpAddrSize instead of
httpAddrLength.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12024 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-07-15 12:58:39 +00:00
msweet ff82e16936 Rest of the work for certificate validation/revocation for GNU TLS (STR #1616)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12016 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-07-14 18:20:31 +00:00
msweet 005f7f1f4c Save work.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12008 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-07-09 01:00:00 +00:00
msweet f79731e7b3 Allow more paths in sandbox.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12006 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-07-08 18:18:09 +00:00
msweet fba14c7f86 The LPD backend did not work with some versions of glibc (STR #4452)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12004 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-07-08 15:46:46 +00:00
msweet 77d314e60f Fix cupsd man page linking to old cups-deviced and cups-driverd man pages.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12003 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-07-08 15:29:14 +00:00
msweet d0facf4886 Get GNU TLS server-side working again.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12002 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-07-08 15:14:40 +00:00
msweet f3211b6d64 Make sure we send a 0-length chunk for CGI output, even for things like "Status".
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11999 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-07-03 19:15:31 +00:00
msweet 8db75d57ea Add USB quirk rule for Lexmark E230 (STR #4448)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11997 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-07-03 14:47:43 +00:00
msweet abdd2bb172 Changelog.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11994 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-07-03 14:38:26 +00:00
msweet 36618f454d Don't serve symlinked or non-world-readable files (STR #4450)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11993 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-07-03 14:37:16 +00:00
msweet f93b32b62c Make sure to redirect stdout/stderr to /dev/null when running certtool.
Add IPPS support to ippserver (still need to handle upgrade).


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11986 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-07-02 15:52:01 +00:00
msweet a94fe6cf47 More tweaks to sandbox profiles.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11981 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-07-02 12:14:02 +00:00
msweet d367062cea Changelog.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11980 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-07-02 10:36:34 +00:00
msweet ca979496f3 Fix compile errors.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11977 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-07-01 20:03:06 +00:00
msweet a15960a192 Copy over more stuff that needs to be implemented.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11976 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-07-01 19:57:42 +00:00
msweet f394e0f7c8 Fix compile errors.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11975 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-07-01 19:52:57 +00:00
msweet 172bdf5d74 Save work on catching GNU TLS code up to 2.0's new APIs.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11974 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-07-01 19:43:59 +00:00
msweet fb3777ccd1 Tweak the sandbox profiles for filters.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11973 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-07-01 17:17:56 +00:00
msweet 2adbc9df5c Fixed a bug in the CUPS_SC_GET_DEVICE_ID handling by the network backends
(STR #4447)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11970 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-07-01 14:35:25 +00:00
msweet bde350ea9e Fix the debug output from the DNS-SD backend when using Avahi (STR #4444)
(Avahi doesn't include the trailing dot for the regtype value)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11969 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-06-30 14:27:01 +00:00
msweet f5f2e19e88 Use "printer-uri" and not "printer URI".
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11959 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-06-26 18:30:19 +00:00
msweet b0206260c7 Fix localized error message from ipptool.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11958 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-06-26 18:26:05 +00:00
msweet 84465c7c28 <rdar://problem/17307802> SEED: BUG: Increased sandboxing means CPUS backends can't write files?
Fix automated test and duplicate deny issues.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11953 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-06-25 14:08:16 +00:00
msweet 08bb59b417 Update HTML of man page.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11952 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-06-25 14:07:14 +00:00
msweet 8a986d2738 Fixed the --disable-libusb configure option (STR #4439)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11950 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-06-24 19:03:02 +00:00
msweet 175bc7986c Fix IPP read error messages (STR #4440)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11947 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-06-24 18:43:20 +00:00
msweet 6e4925fbe6 One quick fix to prevent write access to the CUPS spool directory.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11943 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-06-24 16:02:51 +00:00
msweet 99328a65fc Add some more writable directories.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11941 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-06-24 15:56:25 +00:00
msweet 52f7b14a1a Fix man page error.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11938 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-06-22 12:44:05 +00:00
msweet 1d8db48d90 Allow domain sockets in /private/tmp.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11935 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-06-17 21:31:46 +00:00
msweet 546e096b26 Fix gzip with Lexmark printers, which apparently do not like having the gzip
header separated from the first block of compressed data
(<rdar://problem/17032025>)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11933 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-06-17 16:00:05 +00:00
msweet b8f01dbcf4 Fix MaxJobTime time value bug (STR #4434)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11931 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-06-16 16:10:58 +00:00
msweet 5f1456afb4 Cleanup online help.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11930 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-06-16 15:33:00 +00:00
msweet b960a3cf9b Add missing HTML.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11929 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-06-16 14:22:54 +00:00
msweet 96be8b6c6e Make "Cancel All Jobs" use the Cancel-Jobs operation instead of Purge-Jobs
(STR #1914)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11928 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-06-13 00:08:32 +00:00
msweet b4a8492a63 Final man page changes for STR #4372 and STR #4329.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11927 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-06-13 00:01:23 +00:00
msweet 53480915ef Save work on man pages.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11925 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-06-12 19:36:12 +00:00
msweet 27e0d6f8ec Save man page updates.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11924 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-06-12 19:10:33 +00:00
msweet 6e12033b28 More updates.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11923 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-06-12 12:55:34 +00:00
msweet cfa19b58e6 More man page updates.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11922 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-06-11 23:35:37 +00:00
msweet 0d1da748db More man page work.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11921 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-06-11 20:10:10 +00:00
msweet bf1bc4c6d3 More man page updates.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11920 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-06-11 19:03:59 +00:00
msweet 25d0c3feab Update more man pages.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11919 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-06-11 15:38:28 +00:00
msweet 8ac5fc54a8 Use NOSCRIPT for Go buttons - "links" text browser implements CSS but not
Javascript, so the NOSCRIPT element is a better fit (STR #4425)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11914 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-06-10 19:48:45 +00:00
msweet ce0ddeb244 More man page updates.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11913 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-06-10 19:00:24 +00:00
msweet 6b2419da85 Add initial IPP Everywhere test suite.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11912 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-06-10 13:55:14 +00:00
msweet cffefbacf1 Use AC_PATH_TOOL for the *-config scripts we call (STR #4423)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11911 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-06-10 13:54:53 +00:00
msweet 93e3d3f5aa The User directive in client.conf did not override the USER environment variable
(STR #4426)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11908 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-06-09 18:57:44 +00:00
msweet 5a58240905 The "snmp" option did not work with the network backends (STR #4422)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11907 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-06-09 18:35:32 +00:00
msweet e94cac038d Update some man pages (STR #4372)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11905 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-06-03 18:46:30 +00:00
msweet c4b264d40b Add another directory to the sandbox.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11903 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-05-28 17:54:04 +00:00
msweet 8757020d7a Fix IPPTOOL test file (STR #4420)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11896 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-05-27 15:00:06 +00:00
msweet 995b120a06 Red Hat renamed the libusb developer package (again).
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11895 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-05-27 14:57:09 +00:00
msweet 85cbdbc74a Fix localization of media sizes.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11894 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-05-23 03:18:00 +00:00
msweet ddf95fe678 Update lprm man page for modern markup and "canceled" spelling.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11893 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-05-23 02:45:48 +00:00
msweet 554aa7b749 Dates in non-UTF-8 locales did not display correctly (STR #4388)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11889 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-05-22 13:54:15 +00:00
msweet cf3d4dd6dc IPP queues using hardcoded credentials would ask for credentials (STR #4371)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11888 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-05-22 13:16:25 +00:00
msweet e639770bd4 Update documentation.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11887 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-05-22 13:15:20 +00:00
msweet eceee985ef Fix PWG Raster auto-typing (STR #4417)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11886 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-05-22 12:56:59 +00:00
msweet 6a87b7d7ea Support TIFF files in ipptool (STR #4418)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11885 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-05-21 15:25:30 +00:00
msweet 104fd4ae9f Save work on destination API unit test program.
Add cupsGetDestWithURI API.

Add cupsLocalizeDestMedia API.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11884 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-05-16 21:54:22 +00:00
msweet ae26bf708c More changes for STR #4414 to fix cupsGetDestMediaByIndex - wasn't copying the
size data over correctly (two different structs...)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11882 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-05-16 21:02:15 +00:00
msweet 0033909448 Fix formatting.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11881 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-05-16 20:59:22 +00:00
msweet 9fcdd2507f Add -P option and PAUSE directive to ipptool.
Save work on IPP Everywhere test suite.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11880 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-05-16 06:14:11 +00:00
msweet 5b69e934ac cupsGetDestMediaCount did not work for CUPS_MEDIA_FLAGS DEFAULT (STR #4414)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11874 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-05-13 14:57:34 +00:00
msweet 4cecbbe836 Add localized error message for failed TLS negotiation.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11872 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-05-09 21:25:04 +00:00
msweet 8441e27ce4 CUPS did not compile when Avahi or mDNSResponder was not present (STR #4402)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11871 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-05-09 20:57:11 +00:00
msweet a19c48e0d0 The configure script incorrectly added libgcrypt as a GNU TLS dependency
(STR #4399)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11870 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-05-09 20:54:15 +00:00
msweet b4f46ff54c The CUPS headers incorrectly needed libdispatch for blocks support (STR #4397)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11869 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-05-09 20:52:03 +00:00
msweet 67dde2ccb9 The scheduler did not add the "job-hold-until-specified" reason when holding a
job using the lp command (STR #4405)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11868 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-05-09 20:45:53 +00:00
msweet 88a9886677 Fix an authentication race condition in cupsSendRequest (STR #4403)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11866 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-05-09 20:20:16 +00:00
msweet 651e0a226e The IPP backend did not abort a job when the printer did not validate the
supplied options (<rdar://problem/16836752>)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11865 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-05-09 20:03:14 +00:00
msweet d3d824a355 Changelog.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11861 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-05-08 23:01:24 +00:00
msweet 82bf228397 Fix bug in cupsGetResponse.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11860 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-05-08 22:57:57 +00:00
msweet 38a68cfbee Sync up with some build changes.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11859 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-05-08 22:42:44 +00:00
msweet 291e472758 Do compression to a separate 64k buffer for larger chunks.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11853 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-05-08 17:51:12 +00:00
msweet f51f3773d1 Add code to validate trust when printing via the IPP backend.
Add new CUPS_VALIDATECERTS (ValidateCerts in the conf file) setting to control
whether we require the common name to match the host name, default is no.
(currently)

httpCredentialsGetTrust now only checks hostname/common name matches when
validation is enabled.  Otherwise we just look for changes to certs.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11851 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-05-07 23:55:35 +00:00
msweet 524c65e662 Save work on cert stuff.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11850 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-05-07 23:12:48 +00:00
msweet 355ddf4188 Make sure long-edge feed bounding box is correct.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11848 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-05-07 00:26:44 +00:00
msweet 7d58a105fb Set CERTTOOL_EXPIRATION_DAYS environment variable for certtool, to get certs
that last longer than 30 days on OS X (<rdar://problem/16763836>)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11846 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-05-02 12:10:10 +00:00
msweet e13ce0be7a <rdar://problem/11829070> ER: Could we consolidate Wi-Fi and USB connections to a printer as a single printer?
Additional changes requested by Jim...


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11844 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-05-02 11:58:54 +00:00
msweet 88f1e9c8ca Save work.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11843 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-05-01 19:46:51 +00:00
msweet 2573136055 Move the deck chairs a bit so that the TLS stuff is separated from the HTTP
stuff.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11841 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-04-29 16:39:25 +00:00
msweet c52d341f7e Return 0 from all ippGet* functions on error, to match how all other CUPS APIs
work.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11840 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-04-29 15:57:26 +00:00
msweet 3c218cf569 Fall back to wireless if USB doesn't respond (<rdar://problem/11829070>)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11838 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-04-24 18:40:31 +00:00
msweet d489df6a97 Fix mapping of OutputBin values such as "Tray1" (<rdar://problem/16685606>)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11832 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-04-24 15:04:00 +00:00
msweet 376d7c6937 Wire up most of the certificate validation code for OS X. Still need to
finish the keychain and subject alternate name changes, but we now have the
core validation framework in place.

Also need to decide whether to allow requests to untrusted connections by
default or require all applications to copy and validate manually.

- Updated httpCredentialsAreTrusted to require the common name.
- Implementation of httpCredentialsAreTrusted, httpCredentialsGetExpiration,
  httpCredentialsIsValidName, and httpCredentialsString.
- Added display of credential info to testhttp program.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11829 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-04-23 16:37:05 +00:00
msweet 6be126d133 Add yet another key to the launchd plists...
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11827 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-04-23 00:44:27 +00:00
msweet c3ebc4c673 PPD cache did not reflect full set of media sizes.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11826 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-04-23 00:38:21 +00:00
msweet 9653cfdfbb Save work.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11824 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-04-21 12:23:56 +00:00
msweet 2dabbdab04 Fix configure script.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11823 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-04-21 12:22:03 +00:00
msweet f9988e18ec Save documentation changes.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11822 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-04-21 11:49:06 +00:00
msweet da51650158 More documentation install cleanup.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11820 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-04-15 20:59:56 +00:00
msweet d2001a49cc Remove more files.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11819 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-04-15 20:56:52 +00:00
msweet c390f212cb Remove more unnecessary documentation.
Update cups-files.conf man page.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11818 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-04-15 20:56:19 +00:00
msweet 7131e2853a More man page modernization.
Combine and simplify documentation of cupsd helper programs into a single man
page.

Document the client.conf file as deprecated.

Document the classes.conf, printers.conf, and subscriptions.conf files as
subject to be changed and not to be hand-edited.

Remove separate HTML documentation for client.conf - the man page is now "good
enough"...

Fix usage comment at the top of cups-exec.c.



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11817 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-04-15 16:31:11 +00:00
msweet 6b13fa61b6 The ipptool program now supports EXPECT statements for collection member
attributes (<rdar://problem/15355218>)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11806 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-04-09 16:12:27 +00:00
msweet 9498f97a9c The ipptool program now supports collection attributes with multiple values
(<rdar://problem/15355124>)

Add a test file for FaxOut.

Update the get_token function to allow {, }, and "," to be values of their own.

Update the collection code to allow multiple top-level collection values (still
no support for embedding member attributes with multiple collection values,
however we don't need to test that right now...)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11802 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-04-08 20:42:50 +00:00
msweet be76a9737d Make sure that the sample drivers include all installed localizations
(<rdar://problem/14756625>)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11800 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-04-08 19:53:57 +00:00
msweet 698fa0aa4a <rdar://problem/16532240> Root Regression: On restart or checking share box in sys pref printer uri changes to //dev/null
Fix /DefaultPrinter handling.

Also add restart testing (just for this specific issue for now) to the "make check" suite.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11798 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-04-07 15:18:44 +00:00
msweet 2909c66c50 Save work.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11796 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-04-04 21:28:49 +00:00
msweet bfbd0197bd More man page updates.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11793 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-04-04 19:02:20 +00:00
msweet c9dcc485c5 <rdar://problem/16495000> CUPS: Disable gratuitous logging by default
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11789 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-04-02 16:52:53 +00:00
msweet f2a31e2181 Add support for hierarchical searches (STR #4395)
- Add "atend" and "curindex" members to ipp_t to track position in search.
- Update ippFindAttribute and ippFindNextAttribute to search collections.
- Add unit tests to testipp for it.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11783 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-03-31 14:10:13 +00:00
msweet 0a393e6a40 Allow backends to have group read + execute permissions and still run as root
(STR #2935)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11782 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-03-28 21:03:43 +00:00
msweet 1dd965f62b Use </DefaultPrinter> and </DefaultClass> to close the default printer/class (STR #4153)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11781 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-03-28 20:57:22 +00:00
msweet 3b94e1e1cd Use _httpDecodeURI private API to remove percent encoding of phone number and
prefix (pre-dial) strings.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11778 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-03-28 20:48:28 +00:00
msweet f387542e11 Remove lppasswd man page, and clean up dependencies.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11777 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-03-28 19:18:10 +00:00
msweet e066087949 Drop lppasswd and (server-side) Digest authentication (STR #4321)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11776 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-03-28 19:16:05 +00:00
msweet a99f5c6a05 Add a "how do I get help?" section, and make these headings subsections under the DESCRIPTION section.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11774 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-03-28 16:01:14 +00:00
msweet 969af9354e Add cups(1) man page with CUPS overview information and relevant links.
Fix link embedding for man pages.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11773 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-03-28 15:55:05 +00:00
msweet 84987361cb Add --list-filters options to cupsfilter (STR #4325)
Also update cupsfilter to look for cups-files.conf instead of cupsd.conf (this
was never updated after the security changes to use cups-files.conf)

Update the man page to use the "modern" markup and sections.

Prep for future cups(1) man page that provides an overview of CUPS and the
standard environment.

Update man page converter to not add whitespace before punctuation.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11770 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-03-28 14:49:58 +00:00
msweet ef66db4b1b Fix changelog.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11769 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-03-28 13:59:52 +00:00
msweet d7484965df Changelog.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11768 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-03-28 13:52:25 +00:00
msweet b5b025cf56 Apply changes from 1.7 branch; still need to migrate the SSPI code to the new
TLS infrastructure.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11762 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-03-28 13:05:06 +00:00
msweet ca6b43fc04 Update CUPS filter/backend programming guide (STR #4355)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11758 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-03-27 20:57:18 +00:00
msweet cfeac714b4 Fix a memory leak in the label printer driver (STR #4393)
Make sure we free CompBuffer and LastBuffer as needed in EndPage.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11755 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-03-27 17:06:12 +00:00
msweet 1e9586e168 Printer classes were not accessible on OS X (<rdar://problem/16385643>)
Map localhost access to the domain socket when the port number matches.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11749 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-03-27 14:35:02 +00:00
msweet 6347efdfb6 Fix install failure.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11747 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-03-27 01:15:48 +00:00
msweet 7cad9d0f81 Changelog.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11744 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-03-26 21:16:52 +00:00
msweet 654051c554 <rdar://problem/16351701> Dial string is escaped twice by the parcent mark in IPPFAXOUT.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11743 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-03-26 21:15:32 +00:00
msweet ad6f549048 Fix early 200 response bug.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11738 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-03-26 21:05:19 +00:00
msweet 60bc88e136 Don't add // to geo: URIs.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11736 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-03-26 19:51:59 +00:00
msweet 42404685b7 Fix documentation and naming of subscription operations (STR #4389)
(also maintaining compatibility mappings for names and enums...)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11733 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-03-25 18:01:41 +00:00
msweet 343276df2e Fix cups-exec calling bug on Linux.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11729 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-03-21 19:14:42 +00:00
msweet ab428cc05e Try again...
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11728 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-03-21 18:46:35 +00:00
msweet a10bb5f65f And no testprint file either.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11727 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-03-21 18:45:11 +00:00
msweet 1b30cc97ab Don't package the banner files on Linux.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11726 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-03-21 18:41:55 +00:00
msweet f463b80ca2 One more file...
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11725 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-03-21 18:37:13 +00:00
msweet 071b290622 Another fix.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11724 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-03-21 18:35:59 +00:00
msweet 8c29c8906c Work on fixing RPM builds.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11723 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-03-21 18:34:38 +00:00
msweet 5950e7bd5e Fix systemd build on Linux.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11722 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-03-21 18:28:30 +00:00
msweet e7f455a5b3 Fix builds on Linux.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11720 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-03-21 18:17:50 +00:00
msweet 5d62953211 Remove AppleTalk header checks (wow, that should have been removed 4 years ago!)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11719 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-03-21 18:07:23 +00:00
msweet db6ac61559 Fix makefile tab issues.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11718 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-03-21 18:04:48 +00:00
msweet 1720786e61 Add systemd support to cupsd (STR #3282)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11717 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-03-21 16:42:53 +00:00
msweet f2b8078bd6 Save work on generalizing startup of cupsd…
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11716 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-03-21 14:50:24 +00:00
msweet 9ca6ba8fcb Rename configure.in to configure.ac.
Rename cups-launchd.m4 to cups-ondemand.m4 in preparation for systemd support.

Add more files to the Xcode project.

git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11715 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-03-21 13:52:34 +00:00
msweet 4745f485c4 Fix handling of default username.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11705 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-03-19 18:33:23 +00:00
msweet c12b983aa4 More sandbox tweaking for IOKit access of USB/Bluetooth.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11702 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-03-18 17:50:41 +00:00
msweet 3f4342fa09 More sandbox tweaks for Fax.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11701 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-03-17 18:28:28 +00:00
msweet fa84ca4b57 Update the localizations for some printer-state-reasons (<rdar://problem/16340893>)
This changes the paper and output area/tray messages to be indefinite about
the number of trays, since these reasons are "roll-up" values for all trays.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11698 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-03-17 11:58:18 +00:00
msweet ebd5991b0f More Avahi changes to make cupsd resiliant to Avahi failures (STR #4373)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11687 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-03-05 21:10:04 +00:00
msweet 4db417411a cupsEnumDests did not set the "is_default" field (STR #4332)
Copy the default code from cupsGetDests2...


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11686 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-03-05 20:11:06 +00:00
msweet 6daf363669 Fix typo (STR #3252)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11685 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-03-05 20:03:29 +00:00
msweet 9ee955fecb Update Linux "relro" support (STR #4349)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11683 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-03-05 20:00:54 +00:00
msweet f627443d1b Scheduler crash due to unknown circumstances leading to NULL policy pointer (STR #4378)
This should never happen, but could be due to a patch applied for Debian/Ubuntu.

This change logs the occurrence and uses the default policy if the policy is
NULL.  If DefaultPolicyPtr is NULL (something that definitely should never
happen when cupsd is accepting client connections) then we will still crash.



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11681 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-03-05 19:07:24 +00:00
msweet fa17c11e8a cupsDoIORequest could miss the server status, causing failed lpadmin and other administrative commands (STR #4386)
Look for 100-continue or lower, and get the final status code if so.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11680 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-03-05 18:51:44 +00:00
msweet c51dcb4892 cupsEnumDests didn't always call the callback function (STR #4380)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11674 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-03-05 12:52:57 +00:00
msweet c277f98cbc Initial work on man page modernization (STR #4372)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11671 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-03-04 18:16:46 +00:00
msweet b846cf0155 Don't provide human-readable log message.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11669 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-03-04 14:53:34 +00:00
msweet 0e53e7d1bd Tweak.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11666 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-03-03 18:55:03 +00:00
msweet 96964950c6 Tweak.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11664 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-03-03 18:52:14 +00:00
msweet d9183105e4 More tweakage.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11663 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-03-03 18:40:35 +00:00
msweet 6e83de0532 More sandbox tweaks.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11661 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-03-03 16:53:05 +00:00
msweet 8a6466eba5 More sandbox tweaks.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11659 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-03-03 16:49:32 +00:00
msweet 80693400b1 Remove SVN Id keywords from config files.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11658 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-03-03 16:46:23 +00:00
msweet e54d62b280 Don't use launchd_activate_socket on 10.9.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11656 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-02-28 19:29:29 +00:00
msweet 3b3a130ad9 Only log when we aren't using the generic class driver.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11653 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-02-28 17:19:43 +00:00
msweet 9fb65b8971 Log 32-bit vs. 64-bit class driver usage.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11649 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-02-27 17:06:06 +00:00
msweet 951665081c Changelog update.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11644 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-02-27 15:58:44 +00:00
msweet 21459fa1fa "lp -i job-id -H hold" did not work (STR #nnn)
Add Set-Job-Attributes and Set-Document-Attributes to job and document
creation operation lists.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11640 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-02-24 16:09:05 +00:00
msweet e7dc514dc6 Don't show error message when we are just canceling a job to reprocess it.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11637 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-02-21 19:49:30 +00:00
msweet 8e67b75b88 Resend jobs as raster if the original format fails, e.g., PDF (<rdar://problem/15583721>)
Add retry_as_raster flag to job object.

Add new JOBSTATE: cups-retry-as-raster message.

When starting a job, check whether the flag is set, and if so use image/urf
or image/pwg-raster as the alternate format.



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11635 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-02-21 19:42:14 +00:00
msweet d309dce32a Remove the deprecated ServiceIPC key and add the recommended EnableTransactions
key.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11633 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-02-21 13:05:19 +00:00
msweet 4c6277cc72 Sandbox tweaking.
ipptool man page tweak.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11631 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-02-21 12:56:34 +00:00
msweet 3a43047f18 ipptool doco updates (STR #3259, STR #4346)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11629 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-02-20 16:42:16 +00:00
msweet 8dd318e55b Several libcups files did not have the Apple license exception notice (STR #4361)
VEOL2 isn't available on older System V versions, apparently...


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11628 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-02-20 16:29:50 +00:00
msweet 6539a0afd5 Several libcups files did not have the Apple license exception notice (STR #4361)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11627 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-02-20 16:15:09 +00:00
msweet 0cf0c416ec Fix a D-BUS threading issue that caused the scheduler to crash (STR #4347)
Apparently D-BUS is not thread-safe by default...


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11626 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-02-20 16:09:55 +00:00
msweet bb0a112b94 The scheduler now automatically reconnects to Avahi as needed (STR #4370)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11625 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-02-20 16:01:02 +00:00
msweet 209cc9b629 The scheduler did not handle GET requests for the log files properly (STR #3265)
Limit the number of bytes read to the original file size.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11624 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-02-20 15:21:05 +00:00
msweet 5353e5ee00 The dnssd backend did not always report all discovered printers using Avahi
(STR #4365)

Keep track of active browsers, don't stop until Avahi gives up.



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11622 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-02-19 20:15:53 +00:00
msweet 7b466f29e8 The Zebra printer driver did not properly handle negative "label top" values
(STR #4354)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11621 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-02-19 20:07:09 +00:00
msweet 1216300668 Protect against HTML in the URL (STR #4356)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11620 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-02-19 19:56:56 +00:00
msweet 2644cfc5f2 The scheduler did not always update the MakeModel value in printers.conf after
updating the driver (STR #4264)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11618 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-02-19 19:21:18 +00:00
msweet d6ea1b93c5 Remove old logging of IPP conformance issues.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11617 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-02-19 19:16:36 +00:00
msweet ffb3d9d39f Changelog for STR #4351 (cups-lpd doesn't support large files)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11616 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-02-19 19:07:31 +00:00
msweet d423d83d10 Fix a bug in the status reading code when sending a compressed data stream to an IPP printer/server (<rdar://problem/16019623>)
Don't use the compression buffer when reading, don't use the decompression
buffer when writing.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11613 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-02-19 16:49:29 +00:00
msweet a27a134a70 Don't use numeric hostnames for certificates (always a hostname).
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11612 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-02-19 16:36:17 +00:00
msweet 777e09f895 More sandbox profile tweaks.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11609 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-02-19 16:04:18 +00:00
msweet e26851264d Tweak SMB rules again.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11607 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-02-18 20:13:58 +00:00
msweet 5e787d6f9c Tweak SMB rule.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11605 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-02-18 19:50:46 +00:00
msweet 7364ba24ec Fix typo.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11602 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-02-18 19:21:40 +00:00
msweet bcc4b65596 Add more exceptions to the sandbox profile.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11599 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-02-18 18:58:40 +00:00
msweet df0f06aec1 Fix clang warning.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11598 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-02-18 18:58:19 +00:00
msweet 5096353d12 Add debug logging for launchd checkin.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11596 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-02-18 18:12:23 +00:00
msweet 076239869a Fix build errors on Fedora.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11594 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-02-14 20:09:01 +00:00
msweet 02f3db8a51 Support new launch_activate_socket API on OS X (<rdar://problem/16069952>)
Check for new function at configure time.

Define prototype pending public API header.

Use it to get the list of Listeners sockets in launchd_checkin.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11591 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-02-14 16:07:13 +00:00
msweet 392aa79d2d Make sure job template attributes are included in Validate-Job requests.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11587 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-02-13 19:49:51 +00:00
msweet ea77c0117d <rdar://problem/16041820> Initial edit of a new document on Syrah hangs, apparently waiting for printing info
Increase default idle exit timeout to 60 seconds, as 10 seconds can make launchd
throttle cupsd relaunches.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11585 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-02-13 19:37:53 +00:00
msweet 3e4dcdb951 Correctly log the connected client from a domain socket.
Update the comment in the launchd plist to avoid a BBEdit syntax coloring bug.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11581 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-02-12 16:15:46 +00:00
msweet 28c194b081 <rdar://problem/15939788> Improve CUPS sandboxing
Fix a bug in cups-exec where (for some reason) the call to execv was missing...

Update cups-exec to take real options (-u uid, -g gid, -n nice-value) so that
existing applications that use cups-exec won't need changes.  This will also
allow for future changes without breaking things.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11578 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-02-12 01:27:42 +00:00
msweet 5a757074a3 Fix whitespace.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11577 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-02-11 19:51:56 +00:00
msweet 8fe0183a71 <rdar://problem/15939788> Improve CUPS sandboxing
- Use separate profiles for filters and backends.
- Add Sandboxing configuration directive to control whether a strict or relaxed
  profile is used.
- The new strict profile is a whitelist profile that does not allow unlimited
  networking, among other things.



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11576 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-02-11 15:06:01 +00:00
msweet 8f787fcac9 Add missing IPP definitions.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11575 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-02-11 15:04:31 +00:00
msweet e3adfc1f0f Fix double-include that caused problems.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11574 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-02-11 15:04:16 +00:00
msweet c82f05eadb <rdar://problem/15958253> 14A125b: cupsd console output when launching AddPrinter
Use posix_spawn and move all of the setuid/setgid/setgroups/nice stuff to
cups-exec.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11564 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-02-07 21:34:06 +00:00
msweet 7e86f2f686 Full sweep of all Clang warnings, plus some bug fixes for incorrect memcpy usage.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11558 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-02-06 18:33:34 +00:00
msweet b1564baed9 Fix clang-reported issues (<rdar://problem/15936066>)
- httpAddrGetList could leak memory.
- cupsRasterInterpretPPD could access freed memory.



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11550 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-01-29 16:29:50 +00:00
msweet 95d1f98299 Ignore generated testcache unit test program.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11548 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-01-29 01:53:42 +00:00
msweet b2b9911d6d Add PPD cache unit test program.
(Current focus is on finishings)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11547 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-01-29 01:52:38 +00:00
msweet 739a2093b0 cupsRasterInterpretPPD now supports the Orientation header in order to support long-edge feed raster printers (<rdar://problem/15837926>)
Rotate page size and margins based on Orientation key in page device dictionary.  Note that this requires support in the RIP filter as well.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11542 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-01-22 01:40:13 +00:00
msweet 8aaeeaa9eb Update Xcode config.h file.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11535 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-01-15 19:07:03 +00:00
msweet 5bc8ea6613 Add more debug stuff.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11534 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-01-15 19:04:56 +00:00
msweet 27d0ed525f Also create detached PGP signature of tarballs.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11519 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-01-08 16:36:57 +00:00
msweet 46cc8b817f Fix typo in spec file.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11515 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-01-08 16:24:25 +00:00
msweet c2b391f776 Update copyrights.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11512 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-01-08 16:08:47 +00:00
msweet 4541d836ce CUPS incorrectly used the USER environment variable when the name did not match
the user ID (STR #4327)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11509 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-01-08 16:00:10 +00:00
msweet b933058eb6 Changelog update.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11507 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-01-08 13:59:19 +00:00
msweet e9dd00a00d The D-BUS notifier did not remove its lockfile (STR #4314)
Add signal handler and remove lockfile.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11499 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-01-06 22:17:44 +00:00
msweet e584c0683d lpq and lpstat did not list jobs in the correct order when priorities were specified (STR #4326)
The default list should be ActiveJobs, not Jobs.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11498 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-01-06 22:05:26 +00:00
msweet 84ec3a8445 Using "@IF(name)" in an Allow or Deny rule did not work (STR #4328)
Move the cupsdNetIFUpdate call before the name check - we need to update for all names.

Add debug logging to show interfaces that are skipped and other "errors".


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11497 a1ca3aef-8c08-0410-bb20-df032aa958be
2014-01-06 21:59:35 +00:00
msweet f2a7bf2a93 CUPS did not support "auto-monochrome" or "process-monochrome" for the "print-color-mode" option (<rdar://problem/15482520>)
Map monochrome to auto-monochrome or process-monochrome as needed.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11494 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-12-22 05:29:06 +00:00
msweet eb383c319d The IPP backend did not wait for a busy printer to become available before attempting to print (<rdar://problem/15465667>)
When busy, set the last IPP status to busy so we retry.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11490 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-12-22 05:17:53 +00:00
msweet 878389c8cd Shared printers could become inaccessible after a few days on OS X (<rdar://problem/15426838>)
Need to set TMPDIR so that the sandbox profiles are created in a safe temporary directory.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11487 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-12-22 05:04:29 +00:00
msweet 83bc2aac57 Security: the lppasswd program incorrectly used settings from ~/.cups/client.conf (STR #4319)
Don't use the HOME environment variable when running setuid, setgid, or as root.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11484 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-12-22 00:44:02 +00:00
msweet a80b2360c9 Don't do TLS upgrade unless the Upgrade header says to...
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11482 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-12-21 18:39:06 +00:00
msweet ebeb3268e4 Remove commented-out code.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11481 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-12-21 17:39:24 +00:00
msweet c913d72625 Don't try to access non-existent keychain.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11479 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-12-19 20:29:32 +00:00
msweet eb66bc71be Make sure we don't use functions that are not available.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11477 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-12-19 20:25:35 +00:00
msweet bfb0ab1327 Update CMP to reflect current CUPS.org web site.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11472 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-12-19 16:41:53 +00:00
msweet 8a4b51bb6c Fix appearance on Firefox.
Fix link to CUPS.org.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11470 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-12-18 23:56:11 +00:00
msweet ebc0869ce2 Use translucent header/footer.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11469 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-12-18 23:36:28 +00:00
msweet 2eefda5ea5 Tweak web interface content.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11467 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-12-18 20:20:32 +00:00
msweet 41e0907c48 Server-side TLS is now working (yay!)
Still need to finish up the load/save/compare function for certs, and do the
corresponding code for GNU TLS.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11466 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-12-18 20:20:04 +00:00
msweet c0459938a5 Save work...
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11458 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-12-12 17:55:04 +00:00
msweet 097488cff0 Drop support for ServerCertificate and ServerKey directives; now we just support
ServerKeychain on all platforms.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11457 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-12-11 02:23:54 +00:00
msweet 3af9ac9e69 The libusb-based USB backend incorrectly used write timeouts
(<rdar://problem/15564888>)

Closer to final server TLS APIs.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11455 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-12-09 19:26:39 +00:00
msweet cd3614ae67 Sync up with IPP Finishings 2.0 values.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11449 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-12-06 01:58:28 +00:00
msweet 5a1adc8db8 Changelog.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11447 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-12-05 20:01:42 +00:00
msweet f4047845ec Fix builds.
Fix tel: URIs (<rdar://problem/15418463>)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11444 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-12-05 19:51:58 +00:00
msweet dafebafde5 Save work on TLS stuff (does not compile)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11436 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-11-21 17:33:57 +00:00
msweet 0042c0d7c2 Changelog.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11428 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-11-12 14:11:33 +00:00
msweet 72d05bc912 Save work.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11426 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-11-08 20:42:05 +00:00
msweet 23ee1efa40 Fix typo.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11423 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-11-08 19:50:52 +00:00
msweet 380e29d55c Current iconv uses "SHIFTJIS_X0213" instead of "jis-x0213".
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11421 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-11-08 19:43:56 +00:00
msweet 2bf2b8e94a Fix crash bug with GNU TLS.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11420 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-11-08 16:01:19 +00:00
msweet 724e1819b1 Drop OpenSSL support.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11419 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-11-08 15:35:27 +00:00
msweet 59ac438c6b Fix free of argv values in cupsdContinueJob.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11416 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-11-08 15:16:53 +00:00
msweet 3aec6cf0fe Eliminate compiler warning.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11414 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-11-07 23:23:23 +00:00
msweet e3dfbe13b3 <rdar://problem/15313228> "Canceling stuck job after XXX seconds" message should use "job-cancel-after" value
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11408 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-11-07 14:33:00 +00:00
msweet 1e3e80bb39 Change new keyword to "cups-waiting-for-job-completed" (<rdar://problem/14323704>)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11406 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-11-07 12:47:57 +00:00
msweet 581dae2da0 Dropped "dark wake" support on OS X, which was preventing portables from going
to sleep when there was a stuck job. We now use a variation of the CUPS 1.4
sleep support to do a cleaner sleep (<rdar://problem/14323704>)

Aside from removing all of the power assertions, we now track a new
"cups-waiting-for-completed" state keyword that tells cupsd it can SIGKILL a
backend without side-effects - then if we are just waiting for the job to
complete we can go to sleep immediately.



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11403 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-11-07 01:20:23 +00:00
msweet a866043016 More changelog.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11401 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-11-06 21:38:03 +00:00
msweet 4f2b0ae1c9 Changelog.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11400 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-11-06 21:36:43 +00:00
msweet 79a784c4d6 Fix "make check" on Linux (<rdar://problem/14292998>)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11398 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-11-06 20:11:11 +00:00
msweet dd3326384f Get builds going again with GNU TLS.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11393 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-11-06 01:57:02 +00:00
msweet 462b6e746c Printing to a raw queue could result in corrupt output due to opportunistic
compression (<rdar://problem/15008524>)

(a similar fix needs to be applied to older CUPS distributions)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11384 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-11-05 15:12:57 +00:00
msweet 93aa5239a0 One more tweak - pull in gnutls-devel and pam-devel unconditionally.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11382 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-11-05 02:23:49 +00:00
msweet 7f5ce42e30 The RPM spec file did not list the build requirements; this was on purpose, but
now we are listing the Red Hat package names (<rdar://problem/15375760>)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11381 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-11-05 02:15:43 +00:00
msweet 7d6442889d <rdar://problem/15382819> cups.org: String pool corruption bug
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11377 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-11-05 01:05:00 +00:00
msweet 72f5017073 <rdar://problem/15332672> cups.org: Always use cupsdLogJob for job log messages
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11375 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-11-05 00:45:40 +00:00
msweet da00323434 <rdar://problem/15386424> cups.org: gunzip bug prevents use of some gzip'd PPD files (and other issues)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11373 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-11-04 23:47:03 +00:00
msweet d726db79c5 Fix another STACK-detected bug.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11371 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-11-01 18:21:42 +00:00
msweet 148d36993e Fix a few STACK-detected issues:
backend/ipp.c: Off-by-one error in quote_string
test/ipptool.c: Avoid possible optimizer error by using ippSetCollection API.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11369 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-10-30 15:08:07 +00:00
msweet e12bb97dc5 Verify that the lpadmin command lays down a PPD from a driver info file.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11368 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-10-28 16:00:50 +00:00
msweet ff2b08f99c Fix <rdar://problem/15331639> cups.org: Regression in auto-debug logging
Need to use memcpy instead of strlcpy or strcpy.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11366 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-10-28 15:35:44 +00:00
msweet d226322162 Fix potential crasher if a compressed request is interrupted.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11355 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-10-23 20:33:10 +00:00
msweet 3463c27a30 Fix IPP backend to send print-color-mode (<rdar://problem/15259768>)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11352 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-10-23 19:53:00 +00:00
msweet 13e6b94700 Some more tweaks for the mobile css...
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11350 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-10-21 22:24:07 +00:00
msweet dfc45c1b97 Fix httpWriteResponse state values after a 0-length response.
Fix text/css MIME type rules (so css files don't get mistaken for C source)

New web interface templates and stylesheet that works better on mobile
browsers like the iPhone.

Touch icon for mobile bookmarks.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11349 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-10-21 21:41:21 +00:00
msweet e52a144303 Remove web interface localizations (they will no longer be valid in 2.0...)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11348 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-10-21 16:25:09 +00:00
msweet 43dcaf3bb6 Fix some state transition breakage.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11347 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-10-21 16:22:14 +00:00
msweet b0f269389e The lpadmin command did not send the PPD name from the "-m" option
(<rdar://problem/15264697>)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11344 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-10-18 21:14:44 +00:00
msweet 0d40cb1e4d Fix some issues detected by clang.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11343 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-10-18 20:55:33 +00:00
msweet 5a1d7a1769 Remove support for AIX, HP-UX, and OSF/1.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11342 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-10-18 20:36:01 +00:00
msweet 7855ab5635 Drop old private APIs that are no longer used/supported.
Sync up exports file for Windows.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11341 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-10-18 17:18:20 +00:00
msweet d3d894744d Get builds working again (still need to fill in the server-side stuff for TLS)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11340 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-10-17 16:44:47 +00:00
msweet 2c85b75239 Save work to move all of the TLS support code into libcups (this does not compile)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11338 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-10-17 15:53:07 +00:00
msweet 87e9839293 Use httpAddrListen and new httpAddrClose in cupsd and other places that need it.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11337 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-10-17 00:23:06 +00:00
msweet a73ca01e07 Fix "make check".
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11332 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-10-16 01:27:57 +00:00
msweet e200616a7b Save work - almost have "make check" working again (some logging and cups-driverd
issues to work out...)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11329 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-10-15 17:49:31 +00:00
msweet d21dc0ed72 Save work on cupsd - almost there...
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11326 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-10-09 22:44:03 +00:00
msweet 48bd1142c9 Re-enable name resolution of client addresses.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11325 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-10-04 15:54:22 +00:00
msweet 5ec1fd3d9e Save work; public accessors for more stuff, continue transition away from private
APIs.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11324 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-10-04 03:11:42 +00:00
msweet e6b1a6a976 New APIs for servers.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11322 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-10-01 03:39:09 +00:00
msweet 996acce876 Save work.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11321 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-09-30 21:29:56 +00:00
msweet 5f8f4499da Changelog.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11317 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-09-27 16:17:50 +00:00
msweet f7e3306ab0 <rdar://problem/14302628> SNMP: Use prtMarkerSuppliesClass property to determine fillable/consumed value
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11316 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-09-27 16:16:45 +00:00
msweet 28a463e028 Log power messages.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11313 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-09-27 15:08:17 +00:00
msweet 928b43f75e <rdar://problem/15065555> CUPS sometimes leaves behind a zombie file
Delete backup PPD and interface script files.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11310 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-09-27 14:22:51 +00:00
msweet c6fc9716eb <rdar://problem/15090332> CUPS responds to HEAD requests with incorrect content-type header, responds with request
Don't pass request line as content type.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11307 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-09-27 14:08:59 +00:00
msweet 9d66195840 Drop "contents" requirement from source file header. Most IDEs now provide a list of
functions and it is getting harder and harder to actually get IDEs to run external
scripts these days to generate the list.



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11306 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-09-27 14:00:08 +00:00
msweet 61893d0b8e <rdar://problem/14323704> J90 PreEVT/Schooner: HP Photosmart Prem C310 prevents system from going to sleep.
Log when we wake.



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11295 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-09-23 12:00:42 +00:00
msweet ebaac3df80 <rdar://problem/13655599> Seed: Print queue JOBS disappear after computer Wakes up from Sleep.
Need to provide -default and -supported attributes, map job-cancel-after-xxx
to integer.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11282 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-09-11 17:55:16 +00:00
msweet 982069db84 <rdar://problem/13655599> Seed: Print queue JOBS disappear after computer Wakes up from Sleep.
Reset cancel time after wake from sleep, support job-cancel-after Job Template
attribute to allow command jobs to be canceled after a suitable amount of time.



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11280 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-09-11 17:45:56 +00:00
msweet 9c47743020 Fix build failures.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11278 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-09-10 21:59:52 +00:00
msweet 91123e2c82 <rdar://problem/14672918> Use UUID from dnssd URI to identify instance of printer
Don't log the "still looking for xxx" message, let Jim screen those bugs :)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11276 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-09-10 19:52:13 +00:00
msweet 81441dd34a Fix memory leak of regular expression.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11274 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-09-10 19:19:26 +00:00
msweet 6ee54c0729 <rdar://problem/11131245> PDF detection in cups needs to be tightened up
Add regex() rule support.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11272 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-09-10 19:15:36 +00:00
msweet 2c3f586529 <rdar://problem/14672918> Use UUID from dnssd URI to identify instance of printer
Report UUID (if any) and use it to find a matching printer.



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11270 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-09-04 20:35:42 +00:00
msweet e1578ed9a4 <rdar://problem/11044332> CUPS: Stop using certtool
Conditional code to use SecGenerateSelfSignedCertificate, however this API is
not yet available on OS X.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11267 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-09-03 18:50:01 +00:00
msweet cccd10cb5b Update Japanese localization.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11264 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-08-29 20:10:15 +00:00
msweet a552bd55af Removed some duplicate size definitions for some ISO sizes that were causing
problems (<rdar://problem/14722721>)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11239 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-08-14 20:33:42 +00:00
msweet 75c167a25a Update tests to report v2.0 now.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11235 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-08-12 19:52:43 +00:00
msweet 41e6c1f1fd Localize HTTP status codes based on Accept-Lanaguage (<rdar://problem/14201195>)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11233 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-08-12 19:49:44 +00:00
msweet 38bb3cf454 Add API version 2.0 constants.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11232 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-08-12 19:33:47 +00:00
msweet 9d94692945 Save work on <rdar://problem/11044332> CUPS: Stop using certtool.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11231 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-08-09 16:28:14 +00:00
msweet 1763b7e380 Snapshots are 2.0svn-something.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11230 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-08-06 17:31:16 +00:00
msweet 621ca63a7b Trunk is now 2.0 development.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11225 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-08-06 17:10:44 +00:00
msweet ee8618f3fd The IPP backend did not add the "last-document" attribute
(<rdar://problem/114660379>)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11220 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-08-06 16:15:50 +00:00
msweet dfc4cea4be Fix builds with debug printfs turned off.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11215 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-08-02 15:24:51 +00:00
msweet f253405029 The scheduler did not respond using the hostname specified by the client
(<rdar://problem/14583574>)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11213 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-08-01 22:23:18 +00:00
msweet f6008c81b9 Bump MSI version to 13.07.31
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11208 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-07-31 18:31:50 +00:00
msweet 9941cf57f2 Make this script executable again.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11207 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-07-31 18:18:52 +00:00
msweet fde3d2df54 Clean up cupsaddsmb man page.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11206 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-07-31 18:16:09 +00:00
msweet 4972f4feee Add PPD test.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11205 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-07-31 18:06:15 +00:00
msweet f593fc1f91 Fix typo.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11202 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-07-26 21:31:54 +00:00
msweet 8a25966925 Added a SyncOnClose directive to cups-files.conf to force cupsd to call fsync
before closing any configuration/state files it writes
(<rdar://problem/14523043>)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11201 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-07-26 21:27:27 +00:00
msweet 1d670c3987 Fix typos in examples - CUPS-Add-Modify-xxx instead of CUPS-Add-xxx.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11200 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-07-26 21:07:52 +00:00
msweet 1523f10d81 Error messages from the scheduler were not localized using the language
specified in the client's IPP request (<rdar://problem/14128011>)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11195 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-07-26 11:50:02 +00:00
msweet 0d4d48ad63 Fax queues did not work when shared via Bonjour (<rdar://problem/14498310>)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11193 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-07-26 03:12:37 +00:00
msweet f902c56223 Fix a couple memory leaks in ippfind that were reported by Clang.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11177 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-07-24 12:16:37 +00:00
msweet e826f56b16 Added USB quirk rule for Lexmark E238 (<rdar://problem/14493054>)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11175 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-07-23 12:36:57 +00:00
msweet 80360a5e4c Closed server connections were still not always detected
(<rdar://problem/14484313>)

- Also need to check for EOF from recv...



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11174 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-07-23 12:33:52 +00:00
msweet 737b017edf Add Italian localization (<rdar://problem/14481578>)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11172 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-07-23 12:24:21 +00:00
msweet 483fc76b98 Still need to use -Wl,-pie on OS X (regression in change for
<rdar://problem/14480938>)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11171 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-07-23 12:21:51 +00:00
msweet d939104ddc Fixed a compile issue on 64-bit Linux with Clang - need to use the -pie option
instead of -Wl,-pie now (<rdar://problem/14480938>)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11170 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-07-22 18:10:51 +00:00
msweet 7d1419a770 Don't reference CUPS driver for windows page anymore.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11165 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-07-22 15:00:03 +00:00
msweet e1a3eca81c The ippfind utility reported the wrong port numbers when compiled against Avahi
(<rdar://problem/14508324>)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11164 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-07-22 14:57:14 +00:00
msweet f8f52a9058 Fix compile errors.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11155 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-07-17 15:51:43 +00:00
msweet 89a653066e The libusb-based USB backend now loads its list of quirks from files in
/usr/share/cups/usb instead of using a hardcoded table
(<rdar://problem/14442769>)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11154 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-07-17 15:21:18 +00:00
msweet 0c4bedc42d Reconnect as needed prior to sending a GET, HEAD, or PUT request.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11153 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-07-17 14:10:21 +00:00
msweet e924ce801a Fix a compile error in libcups (<rdar://problem/14467141>)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11151 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-07-17 13:06:14 +00:00
msweet f9a12035df The scheduler did not properly register ICC color profiles with colord
(<rdar://problem/14455625>)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11150 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-07-17 13:03:56 +00:00
msweet f8e23ef7e7 Bump version to 1.7.0 in preparation for a release in the next couple weeks.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11149 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-07-17 02:57:09 +00:00
msweet 54f63cdfb5 The scheduler incorrectly did not pass a FINAL_CONTENT_TYPE environment variable
to the filters or backend (<rdar://problem/14355011>)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11147 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-07-17 02:54:31 +00:00
msweet ac0ec51ba0 Remove unused var.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11144 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-07-17 02:45:55 +00:00
msweet 990c79d278 The cups-exec helper program could fail randomly on OS X due to sandbox
violations when closing excess file descriptors (<rdar://problem/14421943>)

The scheduler incorrectly did not use the kqueue interface on OS X.



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11142 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-07-17 01:07:00 +00:00
msweet cca2420513 Remove debug printf.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11141 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-07-16 14:58:25 +00:00
msweet 1505041083 Update README files for ipptool packages.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11140 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-07-15 15:51:32 +00:00
msweet f0ccfab317 Update ipptool packaging script to allow for Fedora, Red Hat Enterprise Linux
(RHEL). and Ubuntu Linux variants since LSB doesn't support OpenSSL or Avahi.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11139 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-07-15 13:22:34 +00:00
msweet 6c78e3f887 Ignore generated files.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11130 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-07-11 20:50:45 +00:00
msweet bc0305b0b9 Fix build error
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11129 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-07-11 20:39:46 +00:00
msweet ad0357ca1d Also package ippfind.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11128 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-07-11 20:31:43 +00:00
msweet 75b9ea1c3a Don't package old "standard configuration" help file.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11127 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-07-11 20:27:14 +00:00
msweet 24a8828edd Tweak working in "what's new" document.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11126 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-07-11 20:21:18 +00:00
msweet 7a712c54f8 Changelog update - previous bug only affects 1.7.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11116 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-07-10 14:41:37 +00:00
msweet 3f786819c8 Printer xxx-default values were not reported by Get-Printer-Attributes or
lpoptions (<rdar://problem/14401795>)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11115 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-07-10 14:35:53 +00:00
msweet 567f49cba3 The default IPP version did not always get set before creating a new IPP
request message (<rdar://problem/14401718>)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11113 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-07-10 14:08:39 +00:00
msweet ffa2ca90d5 Update documentation to not embed unstable configuration values, now that man
pages are part of the repository...


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11109 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-07-08 21:15:13 +00:00
msweet 9520743f2d Prep for 1.7rc1.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11107 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-07-08 13:47:51 +00:00
msweet bf500a5653 Change kIOPMAssertRemoteAccess to kIOPMAssertNetworkClientActive...
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11106 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-07-08 12:29:10 +00:00
msweet a782e5574a Update localization files.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11102 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-07-08 11:21:56 +00:00
msweet c606bcae4e <rdar://problem/14290628> cups.org: cupsGetNamedDest returns the wrong default printer, lpr/lpq/lp/lpstat use different defaults!
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11101 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-07-08 11:20:33 +00:00
msweet 83385e2997 Make ippfind build and install on Windows
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11100 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-07-05 15:11:29 +00:00
msweet 8a78aa3778 Some ippserver fixes to allow it to be used as a CUPS destination:
- Don't actually advertise IPPS support yet, since libcups doesn't support
  server-side HTTPS yet.
- Allow printer-uri values that have the right resource paths - this allows
  things like back-to-my-mac to work.
- Advertise the correct URI resource path in the Bonjour TXT record.
- Fix valid_doc_attributes to use the document-format-default value instead of
  "application/octet-stream".



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11097 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-07-04 15:54:36 +00:00
msweet 94446c2699 Allow job-billing to be an alias for job-account-id, and requesting-user-name to
be an alias for job-accounting-user-id (<rdar://problem/14290027>)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11089 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-07-03 16:39:38 +00:00
msweet 7374e9e5d4 Fix HTML errors in documentation (using swish-e to validate HTML...)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11087 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-07-03 14:26:55 +00:00
msweet d48a10026a Fix compile error.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11086 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-07-03 13:55:05 +00:00
msweet 9c0e8e5d83 Update version numbers.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11085 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-07-03 13:53:05 +00:00
msweet d1f0f86b73 Update usage to match what is now supported.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11084 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-07-03 13:36:21 +00:00
msweet 7bf181980c Use new kIOPMAssertRemoteAccess power management assertion, when supported, to
keep the system awake enough to print (<rdar://problem/11918463>)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11081 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-07-02 20:39:24 +00:00
msweet 223bdaa186 Update distribution script to use new SVN repo location.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11078 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-06-27 19:03:21 +00:00
msweet 25f3e1eef0 Add ippfind project for Visual Studio.
Drop support for VC++ 2005.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11077 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-06-27 18:49:52 +00:00
msweet ad29aeab8c Fix a state transition issue that affected ippserver.
Fix a crasher for handling of sides in ippserver.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11074 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-06-27 18:36:13 +00:00
msweet 7e5023ddea Fix ippfind for Linux/Avahi.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11064 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-06-25 16:46:38 +00:00
msweet b63a0d90da httpStatus(HTTP_ERROR) did not return a useful error message
(<rdar://problem/14217326>)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11062 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-06-25 15:11:25 +00:00
msweet 5489ad4342 The lp and lpr commands incorrectly ignored the default printer set in the
lpoptions file (<rdar://problem/14216472>)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11060 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-06-25 15:02:18 +00:00
msweet 3699c6372c Added documentation about the /version=1.1 option to ServerName in client.conf
(<rdar://problem/14216262>)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11058 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-06-25 14:38:01 +00:00
msweet d680d3826c Also deprecate cupsGetPPD and cupsGetPPD2.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11057 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-06-25 14:30:18 +00:00
msweet e666fe5e38 Fixed deprecation warnings for many functions on OS X so they are tied
to the deployment version when building (<rdar://problem/14210079>)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11056 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-06-25 14:27:30 +00:00
msweet ff862e509f <rdar://problem/14243133> AirPrint: Printers with name containing certain characters are not recognized
Support backquote (`) character and fix the IPv6 address detection code.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11052 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-06-25 01:42:48 +00:00
msweet 71f294cef9 Add unit test for httpAssembleUUID.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11051 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-06-25 00:57:09 +00:00
msweet 56cd8959f0 ARM-based Linux doesn't allow pointer comparisons on va_list values; not sure
how you are supposed to validate input, but whatever...


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11032 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-06-12 13:00:54 +00:00
msweet 94b4b4a07d Save work on ippfind for Linux.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11028 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-06-07 02:18:50 +00:00
msweet e5528d423b Update ippfind documentation with examples, change '-e' to '-x' for --exec.
Add ippfind to the ipptool binary package. 


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11027 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-06-07 01:45:14 +00:00
msweet b34254bcf1 Fix up svn:keywords for all files.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11025 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-06-07 01:00:33 +00:00
msweet 4875b2f3f6 Don't clean HTML man pages.
Add some other print-job tests.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11024 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-06-06 23:11:13 +00:00
msweet 83f65dd609 Ignore more stuff.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11023 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-06-06 22:48:46 +00:00
msweet e4e5666b10 Fix keywords on man page files.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11022 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-06-06 22:14:09 +00:00
msweet 2d0a0f48e7 <rdar://problem/13876199> cups.org: Need ippfind command-line utility
Implement --exec.

The ippfind command is now feature complete for CUPS 1.7.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11021 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-06-06 22:08:14 +00:00
msweet 70752071b3 Implement --ls.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11020 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-06-06 19:19:26 +00:00
msweet a505eef406 Fix --or handling.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11019 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-06-06 15:03:40 +00:00
msweet 4174320042 Save work - all of the tests work, todo:
- Fix --or
- Implement --ls
- Implement --exec



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11018 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-06-05 20:40:53 +00:00
msweet c4aa297584 <rdar://problem/14040186> Backend failure when sharing Simulated inkjet after creating ACL with standard user. OS X 10.9 (13A476l)
Don't trampoline if we are using a password.

Don't call xpc_connection_suspend since we are releasing it (not supposed to do
that for some reason...)


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11014 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-06-05 18:23:08 +00:00
msweet 4ffc419764 <rdar://problem/14065748> pwgMediaForPWG: roll_max_36.1025x3622.0472in becomes 91700 x 180568 instead of 91700 x 9199999
Convert fractional portion separately to avoid integer overflow.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11011 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-06-05 17:25:22 +00:00
msweet 766a822957 Save work on ippfind program. Nearly there.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11010 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-06-05 16:05:45 +00:00
msweet 69518a8578 <rdar://problem/13854722> 13A459 Printing completely broken on MBP after upgrade to Cab
Fix httpFlushWrite, which was incorrectly updating data_remaining.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11003 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-05-31 13:29:59 +00:00
msweet bac0799207 Save work on new ippfind tool.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11002 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-05-30 21:45:32 +00:00
msweet 26340b35e8 <rdar://problem/14016099> ipptool: Use SO_NWRITE socket option to extend timeouts
Make the ipptool timeout callback check whether the output buffer is empty.  If
not, automatically extend the timeout until it is - useful for when the printer
is blocking due to a printer error like "out of paper"...


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@11000 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-05-30 01:33:55 +00:00
msweet 1bc82dd928 Restore debug2 logging of cupsdAdd/RemoveSelect.
Add higher-level debug logging of client select management.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@10999 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-05-30 00:48:16 +00:00
msweet 21f36711d9 Go back to non-blocking ippWrite.
Add some more debug logging.

Normalize some of the logging to consistently have a [Client NNN] prefix.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@10998 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-05-30 00:41:43 +00:00
msweet 0687ea6984 Ignore generated files.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@10997 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-05-29 21:45:03 +00:00
msweet f2d18633e2 Update svn:keyword properties.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@10996 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-05-29 11:51:34 +00:00
msweet 23ef1cac65 Add option to specify a single operation to test with.
Add CUPS-Get-Default to the list of standard ops to test.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@10995 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-05-29 11:51:03 +00:00
msweet 86c809d99c Added support for RFC 6874's IPv6 link local address format in URIs
(<rdar://problem/13979453>)



git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@10990 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-05-24 21:21:04 +00:00
msweet 4fcfa0cf96 <rdar://problem/13493241> APVT3.0 checks a custom size using a 1/100mm smaller size
Don't use floating point at all.  Go old-school and do integer math to convert
to 100ths of millimeters...


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@10988 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-05-23 19:57:17 +00:00
msweet ee8d237de0 Changelog.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@10984 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-05-16 19:39:53 +00:00
msweet 06399b6e0d Save new Bonjour discovery/test program.
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@10983 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-05-13 23:57:32 +00:00
msweet 890a10b7de <rdar://problem/13876091> cups.org: ipptool should support validation of hostname and port in URIs
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@10982 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-05-13 21:48:45 +00:00
msweet 1d47b929b0 <rdar://problem/13876038> cups.org: ipptool does not include any version information in the plist output
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@10981 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-05-13 19:40:47 +00:00
msweet 9475ec92d8 <rdar://problem/13875803> cups.org: ipptool does not proceed past INCLUDE if ignore is not used
Also: IPP finishings values for (now standardized) punch and fold stuff, new
IPP FaxOut Send-Hardcopy-Document operation.


git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@10980 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-05-13 19:15:06 +00:00
msweet 2a241c9efc <rdar://problem/13875729> cups.org: libusb-based backend can crash if USB is disabled in BIOS
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@10977 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-05-13 16:46:08 +00:00
msweet 90c6ec2104 <rdar://problem/ 13493241> APVT3.0 checks a custom size using a 1/100mm smaller size
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@10976 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-05-13 16:36:57 +00:00
msweet a8109fbe78 Move current import directory to new cups.org trunk
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@4303 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-05-10 17:14:12 +00:00
msweet 94436c5a61 Final sync-up with cups.org trunk repository
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@4297 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-05-10 16:04:59 +00:00
msweet 6961465fb2 Merge changes from CUPS 1.7b1-r10947.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@4274 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-04-09 20:10:23 +00:00
msweet cb7f98ee7f Sync up with CUPS 1.7svn-r10893
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@4216 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-03-11 13:57:36 +00:00
msweet c5b24bfa98 Merge changes from CUPS 1.7svn-r10874.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@4189 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-02-20 15:22:35 +00:00
msweet db8b865d20 Merge changes from CUPS 1.7svn-r10861.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@4167 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-02-04 19:27:13 +00:00
msweet 0cb67df369 Merge changes from CUPS 1.7svn-r10814.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@4125 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-01-14 22:10:30 +00:00
msweet 0fa6c7fa54 Merge changes from CUPS 1.7svn-r10791.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@4120 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-01-10 17:01:44 +00:00
msweet c1420c8744 Merge changes from CUPS 1.7svn-r10755.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@4074 a1ca3aef-8c08-0410-bb20-df032aa958be
2012-12-12 20:54:21 +00:00
msweet c41769ffd0 Merge changes from CUPS 1.7svn-r10710.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@4040 a1ca3aef-8c08-0410-bb20-df032aa958be
2012-11-26 19:37:04 +00:00
msweet a469f8a576 Merge changes from CUPS 1.7svn-r10704.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@4027 a1ca3aef-8c08-0410-bb20-df032aa958be
2012-11-16 01:00:05 +00:00
msweet 76aa1ac14c Fix property on test file.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@3943 a1ca3aef-8c08-0410-bb20-df032aa958be
2012-10-15 21:10:00 +00:00
msweet 3dd9c34058 Merge changes from CUPS 1.7svn-r10643
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@3940 a1ca3aef-8c08-0410-bb20-df032aa958be
2012-10-15 21:02:10 +00:00
msweet 5a9febac19 Merge changes from CUPS 1.7svn-r10629.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@3933 a1ca3aef-8c08-0410-bb20-df032aa958be
2012-10-01 03:01:10 +00:00
msweet 37e7e6e0b2 Merge changes from CUPS 1.7svn-r10578.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@3891 a1ca3aef-8c08-0410-bb20-df032aa958be
2012-08-29 00:26:48 +00:00
msweet a29fd7ddb5 Merge changes from CUPS 1.6svn-r10510.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@3833 a1ca3aef-8c08-0410-bb20-df032aa958be
2012-05-23 22:51:18 +00:00
msweet f3c17241a4 Merge changes from CUPS 1.6svn-r10437.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@3794 a1ca3aef-8c08-0410-bb20-df032aa958be
2012-04-23 22:44:16 +00:00
msweet 271780fb87 Remove ".orig" files that somehow got into the repo.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@3764 a1ca3aef-8c08-0410-bb20-df032aa958be
2012-03-31 04:54:53 +00:00
msweet 82cc1f9ac3 Merge changes from CUPS 1.6svn-r10390.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@3755 a1ca3aef-8c08-0410-bb20-df032aa958be
2012-03-30 05:59:14 +00:00
msweet 3e7fe0ca76 Merge changes from CUPS 1.6svn-r10310.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@3683 a1ca3aef-8c08-0410-bb20-df032aa958be
2012-02-16 22:03:53 +00:00
msweet bb0d23b21b Sync up with CUPS 1.6svn-r10269 (changes from Zin TOT merged into cups.org TOT)
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@3645 a1ca3aef-8c08-0410-bb20-df032aa958be
2012-02-13 17:18:19 +00:00
msweet 3ee4274c97 Remove deleted file.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@3644 a1ca3aef-8c08-0410-bb20-df032aa958be
2012-02-13 16:38:44 +00:00
msweet 12f89d241c Merge changes from CUPS 1.6svn-r10267.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@3643 a1ca3aef-8c08-0410-bb20-df032aa958be
2012-02-13 16:35:48 +00:00
msweet dcb445bcf3 Merge changes from CUPS 1.6svn-r10188, including changes for <rdar://problem/10127258> CUPS 1.6: New printer/printing APIs
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@3618 a1ca3aef-8c08-0410-bb20-df032aa958be
2012-01-19 16:53:50 +00:00
msweet 9c80ffa289 Merge changes from CUPS 1.6svn-r10127.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@3518 a1ca3aef-8c08-0410-bb20-df032aa958be
2011-11-28 17:26:29 +00:00
msweet a2326b5b72 Merge changes from CUPS 1.6svn-r10112.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@3486 a1ca3aef-8c08-0410-bb20-df032aa958be
2011-11-08 00:30:03 +00:00
msweet d7225fc298 Merge changes from CUPS 1.6svn-r10056
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@3448 a1ca3aef-8c08-0410-bb20-df032aa958be
2011-10-04 06:53:26 +00:00
msweet 9b66acc599 Merge changes from CUPS 1.6svn-r10024.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@3438 a1ca3aef-8c08-0410-bb20-df032aa958be
2011-09-28 22:40:47 +00:00
msweet 10ddcf65af Merge changes from CUPS 1.6svn-r10006.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@3427 a1ca3aef-8c08-0410-bb20-df032aa958be
2011-09-20 18:40:57 +00:00
msweet 83e0800111 Merge changes from CUPS 1.6svn-r10002
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@3421 a1ca3aef-8c08-0410-bb20-df032aa958be
2011-09-14 22:44:45 +00:00
msweet 85dda01c84 Merge changes from CUPS 1.6svn-r9968.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@3411 a1ca3aef-8c08-0410-bb20-df032aa958be
2011-09-07 22:31:27 +00:00
msweet a48458814a Merge changes from CUPS 1.6svn-r9939.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@3392 a1ca3aef-8c08-0410-bb20-df032aa958be
2011-08-31 01:58:55 +00:00
msweet 771bd8cbff Merge changes from CUPS 1.5.1-r9875.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@3363 a1ca3aef-8c08-0410-bb20-df032aa958be
2011-08-09 21:32:14 +00:00
msweet bd8b6777d6 Merge changes from CUPS 1.5rc1-r9834.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@3322 a1ca3aef-8c08-0410-bb20-df032aa958be
2011-06-15 00:48:47 +00:00
msweet f99f369831 Merge changes from CUPS 1.5rc1-r9833.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@3318 a1ca3aef-8c08-0410-bb20-df032aa958be
2011-06-15 00:37:13 +00:00
msweet d4d033982c Merge changes from CUPS 1.5rc1-r9815.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@3299 a1ca3aef-8c08-0410-bb20-df032aa958be
2011-06-05 17:00:32 +00:00
msweet f228370c3f Merge changes from CUPS 1.5b2-r9811.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@3289 a1ca3aef-8c08-0410-bb20-df032aa958be
2011-05-26 13:22:56 +00:00
msweet 88f9aafc49 Merge changes from CUPS 1.5b1-r9798.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@3275 a1ca3aef-8c08-0410-bb20-df032aa958be
2011-05-20 07:26:13 +00:00
msweet 321d8d57da Merge changes from CUPS 1.5b1-r9774.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@3247 a1ca3aef-8c08-0410-bb20-df032aa958be
2011-05-12 06:22:31 +00:00
msweet eac3a0a01b Merge changes from CUPS 1.5svn-r9763.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@3242 a1ca3aef-8c08-0410-bb20-df032aa958be
2011-05-11 05:36:13 +00:00
msweet 22c9029b44 Merge changes from CUPS 1.5svn-r9717.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@3171 a1ca3aef-8c08-0410-bb20-df032aa958be
2011-04-22 23:02:56 +00:00
msweet 07ed0e9a43 Merge changes from CUPS 1.5svn-r9675.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@3122 a1ca3aef-8c08-0410-bb20-df032aa958be
2011-04-11 18:53:27 +00:00
msweet 84315f460a Merge changes from CUPS 1.5svn-r9641
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@3071 a1ca3aef-8c08-0410-bb20-df032aa958be
2011-03-23 00:05:29 +00:00
msweet 82f972324d Merge changes from CUPS 1.5svn-r9631.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@3062 a1ca3aef-8c08-0410-bb20-df032aa958be
2011-03-20 21:48:45 +00:00
msweet 31db8dedac Sync up some other changes.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@3047 a1ca3aef-8c08-0410-bb20-df032aa958be
2011-03-14 18:48:04 +00:00
msweet f14324a792 Merge changes from CUPS 1.5svn-r9602.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@3046 a1ca3aef-8c08-0410-bb20-df032aa958be
2011-03-14 18:45:10 +00:00
msweet c8fef167ba Merge changes from CUPS 1.5svn-r9567
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@3015 a1ca3aef-8c08-0410-bb20-df032aa958be
2011-02-25 01:40:44 +00:00
msweet e60ec91f3e Merge changes from CUPS 1.5svn-r9525
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@2975 a1ca3aef-8c08-0410-bb20-df032aa958be
2011-02-11 21:20:35 +00:00
msweet 515b46cde4 Fix bad merge.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@2951 a1ca3aef-8c08-0410-bb20-df032aa958be
2011-01-18 00:26:43 +00:00
msweet 0268488e2f Merge changes from CUPS 1.5svn-r9491.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@2949 a1ca3aef-8c08-0410-bb20-df032aa958be
2011-01-17 23:54:15 +00:00
msweet c779abb06a Merge changes from CUPS 1.5svn-r9407.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@2910 a1ca3aef-8c08-0410-bb20-df032aa958be
2010-12-14 21:25:17 +00:00
msweet 229681c188 Merge changes from CUPS 1.5svn-r9400
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@2890 a1ca3aef-8c08-0410-bb20-df032aa958be
2010-12-03 06:58:01 +00:00
msweet 0837b7e828 Merge changes from CUPS 1.5svn-r9385.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@2873 a1ca3aef-8c08-0410-bb20-df032aa958be
2010-11-30 03:16:24 +00:00
msweet 1106b00e75 Merge changes from CUPS 1.5svn-r9374.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@2859 a1ca3aef-8c08-0410-bb20-df032aa958be
2010-11-17 18:58:56 +00:00
msweet 10d09e334a Merge changes from CUPS 1.5svn-r9352.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@2848 a1ca3aef-8c08-0410-bb20-df032aa958be
2010-11-06 05:13:04 +00:00
msweet 6c48a6cafc Merge changes from CUPS 1.5svn-r9323.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@2733 a1ca3aef-8c08-0410-bb20-df032aa958be
2010-10-01 22:44:58 +00:00
msweet 7cf5915ead Merge changes from CUPS 1.5svn-r9313.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@2683 a1ca3aef-8c08-0410-bb20-df032aa958be
2010-09-22 22:13:21 +00:00
msweet 030ae6a14e Merge changes from CUPS 1.5svn-r9229.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@2468 a1ca3aef-8c08-0410-bb20-df032aa958be
2010-08-09 22:14:41 +00:00
msweet 4220952d4d Merge changes from CUPS 1.5svn-r9214.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@2395 a1ca3aef-8c08-0410-bb20-df032aa958be
2010-07-27 00:17:12 +00:00
msweet c7017eccd2 Merge changes from CUPS 1.5svn-r9198.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@2309 a1ca3aef-8c08-0410-bb20-df032aa958be
2010-07-08 20:45:48 +00:00
msweet cc75483441 Merge changes from CUPS 1.5svn-r9136.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@2180 a1ca3aef-8c08-0410-bb20-df032aa958be
2010-05-10 22:58:10 +00:00
msweet 6d2f911bdd Merge changes from CUPS 1.5svn-r9105.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@2070 a1ca3aef-8c08-0410-bb20-df032aa958be
2010-04-12 04:23:14 +00:00
msweet 39ff2fe72b Merge changes from CUPS 1.5svn-r9098.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@2056 a1ca3aef-8c08-0410-bb20-df032aa958be
2010-04-09 22:45:27 +00:00
msweet aaf19ab07e Import changes from CUPS 1.5svn-r9085.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@2046 a1ca3aef-8c08-0410-bb20-df032aa958be
2010-04-07 07:11:03 +00:00
msweet e2d18a01cc Make sure EOL is right on import file.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@2017 a1ca3aef-8c08-0410-bb20-df032aa958be
2010-03-30 23:24:57 +00:00
msweet 5180a04ce8 Merge changes from CUPS 1.5svn-r9062.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@2016 a1ca3aef-8c08-0410-bb20-df032aa958be
2010-03-30 23:24:27 +00:00
msweet 61e2aeb0be Remove bad file.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@2015 a1ca3aef-8c08-0410-bb20-df032aa958be
2010-03-30 23:22:52 +00:00
msweet a480a1b6b4 Add a missing change to the test script.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1993 a1ca3aef-8c08-0410-bb20-df032aa958be
2010-03-24 14:33:57 +00:00
msweet 71e160228f Merge changes from CUPS 1.5svn-r9049 (private header support)
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1992 a1ca3aef-8c08-0410-bb20-df032aa958be
2010-03-24 14:32:08 +00:00
msweet 54afec3350 Merge changes from CUPS 1.5svn-r9041.
(all of the media changes)


git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1987 a1ca3aef-8c08-0410-bb20-df032aa958be
2010-03-23 21:42:49 +00:00
msweet ba55dc12de Merge changes from CUPS 1.5svn-r9037.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1968 a1ca3aef-8c08-0410-bb20-df032aa958be
2010-03-11 06:44:46 +00:00
msweet 5a6b583acf Merge changes from CUPS 1.5svn-r9022.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1937 a1ca3aef-8c08-0410-bb20-df032aa958be
2010-03-03 22:36:38 +00:00
msweet f8b3a85b79 Merge changes from CUPS 1.5svn-r9000.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1912 a1ca3aef-8c08-0410-bb20-df032aa958be
2010-02-25 00:52:27 +00:00
msweet 4168188389 Merge changes from CUPS 1.5svn-r8950.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1816 a1ca3aef-8c08-0410-bb20-df032aa958be
2010-01-14 22:50:23 +00:00
msweet 5a662dc060 Merge changes from CUPS 1.5svn-r8933.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1788 a1ca3aef-8c08-0410-bb20-df032aa958be
2009-12-16 00:13:28 +00:00
msweet ef55b74533 Merge changes from CUPS 1.5svn-r8916.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1766 a1ca3aef-8c08-0410-bb20-df032aa958be
2009-12-09 18:36:59 +00:00
msweet 3fb9c47ea6 Merge changes from CUPS 1.5svn-r8857.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1736 a1ca3aef-8c08-0410-bb20-df032aa958be
2009-11-07 06:21:32 +00:00
msweet 101decd054 Remove old file.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1727 a1ca3aef-8c08-0410-bb20-df032aa958be
2009-10-15 21:28:49 +00:00
msweet 4d301e694f Merge changes from CUPS 1.5svn-r8849.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1725 a1ca3aef-8c08-0410-bb20-df032aa958be
2009-10-15 18:50:47 +00:00
msweet b226ab9913 Merge changes from CUPS 1.5svn-r8842.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1709 a1ca3aef-8c08-0410-bb20-df032aa958be
2009-10-07 18:20:31 +00:00
msweet 18ecb42821 Merge changes from CUPS 1.5svn-r8829.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1695 a1ca3aef-8c08-0410-bb20-df032aa958be
2009-09-24 23:50:39 +00:00
msweet 7a0cbd5e57 Import changes from CUPS 1.4.1 (r8801)
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1649 a1ca3aef-8c08-0410-bb20-df032aa958be
2009-08-29 06:12:06 +00:00
msweet ee6ddad257 Merge final 1.4.0 (r8761) changes.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1629 a1ca3aef-8c08-0410-bb20-df032aa958be
2009-08-07 22:49:21 +00:00
msweet 4a4b4f9914 Merge changes from CUPS 1.4.0 (r8756)
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1613 a1ca3aef-8c08-0410-bb20-df032aa958be
2009-07-14 23:31:23 +00:00
msweet f701418f7b Merge changes from CUPS 1.4.0 (r8750)
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1608 a1ca3aef-8c08-0410-bb20-df032aa958be
2009-07-07 18:36:58 +00:00
msweet 60198c6dba Merge changes from 1.4.0 r8744.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1603 a1ca3aef-8c08-0410-bb20-df032aa958be
2009-07-02 19:16:48 +00:00
msweet e38f5e9c4d Merge changes from 1.4.0 (r8743)
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1595 a1ca3aef-8c08-0410-bb20-df032aa958be
2009-07-02 15:21:10 +00:00
msweet 85b5d1dfa7 Merge fixes from CUPS 1.4.0 (r8739).
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1586 a1ca3aef-8c08-0410-bb20-df032aa958be
2009-07-01 16:36:51 +00:00
msweet 4e6f60f000 Merge changes from CUPS 1.4svn-r8731 (1.4.0)
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1572 a1ca3aef-8c08-0410-bb20-df032aa958be
2009-06-26 22:23:28 +00:00
msweet acb056cb17 Merge changes from CUPS 1.4svn-r8722 (tentative 1.4.0 GM)
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1567 a1ca3aef-8c08-0410-bb20-df032aa958be
2009-06-18 22:32:02 +00:00
msweet 97c9a8d722 Import changes from CUPS 1.4svn-r8704.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1556 a1ca3aef-8c08-0410-bb20-df032aa958be
2009-06-10 19:02:58 +00:00
msweet 393ac6abae Merge changes from CUPS 1.4svn-r8681 (tentative CUPS 1.4rc1)
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1537 a1ca3aef-8c08-0410-bb20-df032aa958be
2009-05-22 23:56:34 +00:00
msweet b0f6947b4d Merge changes from CUPS 1.4svn-r8679.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1531 a1ca3aef-8c08-0410-bb20-df032aa958be
2009-05-22 21:50:50 +00:00
msweet 68b10830fa Merge changes from CUPS 1.4svn-r8659
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1516 a1ca3aef-8c08-0410-bb20-df032aa958be
2009-05-18 22:09:10 +00:00
msweet 536bc2c652 Merge changes from CUPS 1.4svn-r8639.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1505 a1ca3aef-8c08-0410-bb20-df032aa958be
2009-05-14 22:48:33 +00:00
msweet 6c663ae27a Add missing man page file.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1499 a1ca3aef-8c08-0410-bb20-df032aa958be
2009-05-14 16:10:44 +00:00
msweet 178cb7369d Merge changes from CUPS 1.4svn-r8628.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1495 a1ca3aef-8c08-0410-bb20-df032aa958be
2009-05-13 22:29:41 +00:00
msweet f11a948a02 Merge changes from CUPS 1.4svn-r8606.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1480 a1ca3aef-8c08-0410-bb20-df032aa958be
2009-05-08 18:38:44 +00:00
msweet e07d4801f9 Merge changes from CUPS 1.4svn-r8540.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1432 a1ca3aef-8c08-0410-bb20-df032aa958be
2009-04-22 17:28:12 +00:00
msweet 38e73f8781 Merge changes from CUPS 1.4svn-r8492.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1378 a1ca3aef-8c08-0410-bb20-df032aa958be
2009-04-08 03:17:45 +00:00
msweet 94da7e344c Merge changes from CUPS 1.4svn-r8469.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1338 a1ca3aef-8c08-0410-bb20-df032aa958be
2009-03-25 00:42:10 +00:00
msweet 238c383265 Merge changes from CUPS 1.4svn-r8454.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1311 a1ca3aef-8c08-0410-bb20-df032aa958be
2009-03-18 17:09:48 +00:00
msweet 8b116e6004 Merge changes from CUPS 1.4svn-r8443.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1296 a1ca3aef-8c08-0410-bb20-df032aa958be
2009-03-13 22:09:14 +00:00
msweet 9aff70cc17 Merge more Common UNIX Printing System -> CUPS changes.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1286 a1ca3aef-8c08-0410-bb20-df032aa958be
2009-03-09 22:00:45 +00:00
msweet d7871c8c7f Merge trademark/logo changes from CUPS 1.4svn-r8418.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1283 a1ca3aef-8c08-0410-bb20-df032aa958be
2009-03-09 21:13:04 +00:00
msweet 1340db2dab Merge changes from CUPS 1.4svn-r8414.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1277 a1ca3aef-8c08-0410-bb20-df032aa958be
2009-03-07 16:36:03 +00:00
msweet b9faaae17c Merge changes from CUPS 1.4svn-r8394.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1253 a1ca3aef-8c08-0410-bb20-df032aa958be
2009-02-25 23:37:25 +00:00
msweet ede613e028 Remove generated file.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1234 a1ca3aef-8c08-0410-bb20-df032aa958be
2009-02-18 17:49:06 +00:00
msweet f0ab5bff8a Merge changes from CUPS 1.4svn-r8362.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1228 a1ca3aef-8c08-0410-bb20-df032aa958be
2009-02-17 19:24:29 +00:00
msweet bf3816c7ed Merge changes from CUPS 1.4svn-r8346.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1212 a1ca3aef-8c08-0410-bb20-df032aa958be
2009-02-11 16:34:01 +00:00
msweet 745129beeb Merge changes from CUPS 1.4svn-r8329.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1182 a1ca3aef-8c08-0410-bb20-df032aa958be
2009-02-04 04:27:58 +00:00
msweet dfd5680b87 Merge changes from CUPS 1.4svn-r8305.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1166 a1ca3aef-8c08-0410-bb20-df032aa958be
2009-01-29 18:07:00 +00:00
msweet d1c13e1686 Merge changes from CUPS 1.4svn-r8290.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1144 a1ca3aef-8c08-0410-bb20-df032aa958be
2009-01-23 22:36:42 +00:00
msweet d2354e6397 Merge changes from CUPS 1.4svn-r8252.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1123 a1ca3aef-8c08-0410-bb20-df032aa958be
2009-01-14 19:55:19 +00:00
msweet c168a833ca Merge changes from CUPS 1.4svn-r8227.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1113 a1ca3aef-8c08-0410-bb20-df032aa958be
2009-01-09 23:33:14 +00:00
msweet 557dde9fbc Merge changes from CUPS 1.4svn-r8196 (CUPS 1.4b2)
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1100 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-12-15 18:13:37 +00:00
msweet 426c6a5959 Merge changes from CUPS 1.4svn-r8177 (tentative CUPS 1.4b2)
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1090 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-12-11 01:40:30 +00:00
msweet 8b450588f4 Merge changes from CUPS 1.4svn-r8177.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1084 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-12-08 23:45:00 +00:00
msweet ed6e7faf3e Merge changes from CUPS 1.4svn-r8162.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1079 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-12-06 00:24:23 +00:00
msweet 52f6f666c3 Merge changes from CUPS 1.4svn-r8148.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1068 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-11-19 23:25:47 +00:00
msweet 9380acaa78 Ignore generated testprint.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1061 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-11-14 21:04:37 +00:00
msweet 4b3f67ff4c Merge changes from CUPS 1.4svn-r8131.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1060 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-11-14 21:04:14 +00:00
msweet e6013cfab0 Merge changes from CUPS 1.4svn-r8115.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1055 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-11-12 01:01:46 +00:00
msweet e4572d571c Merge changes from CUPS 1.4svn-r8088, the real official 1.4b1!
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1035 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-10-27 21:56:38 +00:00
msweet 28b9d139c0 Merge changes from CUPS 1.4svn-r8067 (tentative CUPS 1.4b1)
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1021 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-10-17 22:12:14 +00:00
msweet 6e8b116d7f Merge CUPS 1.4svn-r8058 (tentative CUPS 1.4b1)
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1016 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-10-15 21:06:58 +00:00
msweet 758a062feb Doco updates from CUPS 1.4svn-r8054.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1013 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-10-13 17:16:02 +00:00
msweet 02797ade68 Add missing file.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1011 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-10-10 21:06:56 +00:00
msweet 61cf44e2b7 Merge CUPS 1.4svn-r8052 (tentative 1.4b1)
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1009 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-10-10 21:00:18 +00:00
msweet 076fd0e4fb Add missing files from r8033.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1004 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-10-08 22:53:46 +00:00
msweet 58dc193312 Merge changes from CUPS 1.4svn-r8033.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1003 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-10-08 22:50:16 +00:00
msweet f2245c695c Add missing image.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@995 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-10-02 00:59:36 +00:00
msweet cda47a960f Merge changes from CUPS 1.4svn-r7999.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@993 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-10-02 00:56:58 +00:00
msweet 1f6f3dbcf9 Merge changes from CUPS 1.4svn-r7994.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@989 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-09-29 17:17:42 +00:00
msweet 0af14961a8 Merge changes from 1.4svn-r7979.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@983 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-09-24 21:31:49 +00:00
msweet b19ccc9e27 Merge changes from CUPS 1.4svn-r7961.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@969 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-09-17 19:54:07 +00:00
msweet 49d8745278 Merge changes from CUPS 1.4svn-r7932.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@957 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-09-10 22:30:50 +00:00
msweet c5571a1d68 Import CUPS 1.4svn-r7908.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@943 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-09-04 17:09:47 +00:00
msweet 9a4f8274e9 Merge changes from CUPS 1.4svn-r7874.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@933 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-08-28 22:58:28 +00:00
msweet 5f64df2982 Merge changes from CUPS 1.4svn-r7874.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@924 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-08-27 22:04:19 +00:00
msweet 247efae55f Add missing file.`
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@922 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-08-26 03:55:07 +00:00
msweet 06d4e77b9b Merge changes from CUPS 1.4svn-r7864.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@921 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-08-26 03:49:44 +00:00
msweet 1ff0402e47 Merge changes from CUPS 1.4svn-r7851.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@913 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-08-20 00:21:51 +00:00
msweet 9f5eb9be66 Merge changes from CUPS 1.4svn-r7844.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@909 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-08-14 06:33:44 +00:00
msweet ee571f261a Merge easysw-1.4svn-r7834
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@905 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-08-04 21:07:04 +00:00
msweet 749b1e90a8 Merge changes from CUPS 1.4svn-r7817.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@901 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-07-30 23:42:12 +00:00
msweet 005dd1eb9e Merge changes from CUPS 1.4svn-r7791.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@886 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-07-24 01:02:46 +00:00
msweet 5d6412a9f1 Merge changes from CUPS 1.4svn-r7770.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@872 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-07-18 21:45:31 +00:00
msweet e78998dfeb Add missing files.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@870 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-07-18 18:56:19 +00:00
msweet 66ab9486ef Merge CUPS 1.4svn-r7762.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@868 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-07-18 18:47:53 +00:00
msweet 1f0275e3cc Merge changes from CUPS 1.4svn-r7715.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@859 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-07-15 01:21:40 +00:00
msweet 4509bb4933 Merge changes from CUPS 1.4svn-r7715.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@834 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-07-03 05:38:29 +00:00
msweet 75bd9771f6 Merge changes from CUPS 1.4svn-r7696.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@818 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-06-27 20:26:20 +00:00
msweet dd1abb6b5f Merge changes from CUPS 1.4svn-r7670.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@810 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-06-18 16:44:53 +00:00
msweet c934a06cde Merge changes from CUPS 1.4svn-r7626.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@798 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-06-09 15:59:44 +00:00
msweet 79e1d494ec Merge changes from CUPS 1.4svn-r7617.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@793 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-05-28 23:38:36 +00:00
msweet 8922323b9f Merge changes from CUPS 1.4svn-r7614.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@789 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-05-23 22:28:53 +00:00
msweet bdd6c45b5e Merge changes from CUPS 1.4svn-r7607.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@784 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-05-21 01:15:17 +00:00
msweet 20fbc90347 Merge changes from CUPS 1.4svn-r7594.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@779 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-05-19 23:16:59 +00:00
msweet 47879b8b63 Merge CUPS 1.4svn-r7588 (dependency updates, compiler warnings, and one web UI buglet)
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@774 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-05-17 00:06:01 +00:00
msweet 5eb9da713f Import CUPS 1.4svn-r7585.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@771 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-05-16 23:29:51 +00:00
msweet 01ce6322ca Merge changes from CUPS 1.4svn-r7582.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@768 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-05-16 03:15:15 +00:00
msweet 3c8c76971a Merge changes from 1.4svn-r7568.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@763 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-05-15 01:47:12 +00:00
msweet c9fc04c6ec Merge changes from CUPS trunk, r7566.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@761 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-05-15 01:42:36 +00:00
msweet 969307f096 Merge fixes from CUPS 1.4svn-r7555.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@755 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-05-12 18:20:10 +00:00
msweet a0f6818ebf Merge changes from CUPS 1.4svn-r7547.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@748 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-05-07 22:24:51 +00:00
msweet d8bcaa3c4c Fix imported files.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@735 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-05-01 21:24:43 +00:00
msweet 7a14d7682b Merge CUPS 1.4svn-r7524.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@733 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-05-01 21:18:10 +00:00
msweet a4f1b3dff2 Remove old files.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@727 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-04-28 17:37:04 +00:00
msweet 634763e80e Merge CUPS 1.4svn-r7493.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@723 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-04-24 00:13:12 +00:00
msweet 3dfe78b336 Merge changes from CUPS 1.4svn-r7485.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@718 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-04-21 23:14:57 +00:00
msweet ae71f5deb4 Import CUPS 1.4svn-r7464.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@713 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-04-17 00:50:22 +00:00
msweet 839a51c83c Merge changes from CUPS 1.4svn-r7394.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@702 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-04-09 22:42:49 +00:00
msweet 50fe720154 <rdar://problem/5792631> dependency cycle in cups-144 / PrintingCore-250 / ApplicationServices
Merge build system changes to use shared support libraries.

Merge build system changes to separate installation of data, program, header,
and library files.


git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@668 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-03-21 23:46:46 +00:00
msweet db0bd74adb Merge changes from CUPS 1.4svn-r7386.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@665 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-03-21 00:59:28 +00:00
msweet 64a69576c8 Merge changes from CUPS 1.4svn-r7370.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@659 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-03-05 00:28:36 +00:00
msweet a603edef72 Merge changes from CUPS 1.4svn-r7366.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@656 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-03-04 01:12:17 +00:00
msweet 568fa3faf1 Import CUPS 1.4svn-r7356.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@647 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-02-28 23:00:58 +00:00
msweet d6943d1d31 Add missing files for test.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@632 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-02-18 17:47:07 +00:00
msweet ac884b6a1c Merge CUPS 1.4svn-r7319.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@624 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-02-16 00:27:39 +00:00
msweet 5a738aeaea Merge changes from CUPS 1.4svn-r7282.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@614 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-01-31 17:01:57 +00:00
msweet d9bca400be Merge changes from CUPS 1.4svn-r7255.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@608 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-01-24 00:18:39 +00:00
msweet 5bd77a735f Merge changes from CUPS 1.4svn-r7242.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@598 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-01-22 22:37:41 +00:00
msweet 91c84a3551 Import CUPS 1.4svn-r7226.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@582 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-01-17 00:06:33 +00:00
msweet 080811b190 Merge changes from CUPS 1.4svn-r7199.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@577 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-01-08 00:39:02 +00:00
msweet 3d052e4330 Import CUPS 1.4svn-r7170.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@567 a1ca3aef-8c08-0410-bb20-df032aa958be
2008-01-04 02:32:38 +00:00
msweet a4924f6c45 Import CUPS 1.4svn-r7153.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@563 a1ca3aef-8c08-0410-bb20-df032aa958be
2007-12-21 23:54:03 +00:00
msweet 0a6827453a Import CUPS trunk (1.4svn) r7116.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@551 a1ca3aef-8c08-0410-bb20-df032aa958be
2007-12-07 19:47:43 +00:00
msweet a41f09e265 Merge changes from 1.4svn-r7067.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@533 a1ca3aef-8c08-0410-bb20-df032aa958be
2007-11-09 19:55:26 +00:00
msweet e94d2f1068 Add missing file to repo.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@527 a1ca3aef-8c08-0410-bb20-df032aa958be
2007-10-24 20:55:54 +00:00
msweet 2fb7629816 Import CUPS 1.4svn-r7041.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@520 a1ca3aef-8c08-0410-bb20-df032aa958be
2007-10-22 20:33:34 +00:00
msweet cc9a7e967e Remove old button files.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@507 a1ca3aef-8c08-0410-bb20-df032aa958be
2007-10-17 20:29:26 +00:00
msweet 65a152d3f1 Remove old file.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@506 a1ca3aef-8c08-0410-bb20-df032aa958be
2007-10-17 20:28:09 +00:00
msweet 183ee7626a Remove old data files.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@505 a1ca3aef-8c08-0410-bb20-df032aa958be
2007-10-17 20:26:59 +00:00
msweet 2e4ff8afcb Import CUPS 1.4svn r7023 into easysw/current.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@502 a1ca3aef-8c08-0410-bb20-df032aa958be
2007-10-17 20:05:25 +00:00
msweet 56ab62c60c What the heck, make it the full 1.3.3 release code - we've already got all of
the 1.3.3 changes anyways...


git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@486 a1ca3aef-8c08-0410-bb20-df032aa958be
2007-09-28 20:17:05 +00:00
msweet 7dfedb921d Import changes from CUPS 1.3svn-r7000.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@485 a1ca3aef-8c08-0410-bb20-df032aa958be
2007-09-28 20:09:54 +00:00
msweet c277e2f802 Import CUPS 1.3.2.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@477 a1ca3aef-8c08-0410-bb20-df032aa958be
2007-09-18 20:56:41 +00:00
msweet db1f069b7f Merge changes from CUPS 1.3.1.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@470 a1ca3aef-8c08-0410-bb20-df032aa958be
2007-09-14 02:27:22 +00:00
msweet 76cd9e37aa Merge changes from r6781 to r6792 (CUPS 1.3.0)
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@405 a1ca3aef-8c08-0410-bb20-df032aa958be
2007-08-13 21:04:11 +00:00
msweet 7ff4fea9bc Merge changes from r6758 to r6781.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@388 a1ca3aef-8c08-0410-bb20-df032aa958be
2007-08-09 16:35:06 +00:00
msweet c24d21342f Merge changes from CUPS trunk, r6758.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@379 a1ca3aef-8c08-0410-bb20-df032aa958be
2007-08-02 00:17:51 +00:00
msweet 355e94dc85 Merge changes from CUPS trunk, r6739.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@361 a1ca3aef-8c08-0410-bb20-df032aa958be
2007-07-26 22:45:43 +00:00
msweet cc0d019f5e Update to CUPS trunk r6695.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@352 a1ca3aef-8c08-0410-bb20-df032aa958be
2007-07-19 23:13:28 +00:00
jlovell bc44d92092 Load cups into easysw/current.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@342 a1ca3aef-8c08-0410-bb20-df032aa958be
2007-07-16 23:34:09 +00:00
jlovell 09a101d671 Load cups into easysw/current.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@334 a1ca3aef-8c08-0410-bb20-df032aa958be
2007-06-23 05:26:17 +00:00
jlovell 3d8365b8dc Load cups into easysw/current.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@326 a1ca3aef-8c08-0410-bb20-df032aa958be
2007-05-24 18:54:11 +00:00
jlovell b94498cfba Load cups into easysw/current.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@321 a1ca3aef-8c08-0410-bb20-df032aa958be
2007-05-04 21:17:48 +00:00
jlovell 323c5de1e8 Load cups into easysw/current.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@308 a1ca3aef-8c08-0410-bb20-df032aa958be
2007-04-05 18:24:21 +00:00
jlovell c0e1af835b Load cups into easysw/current.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@303 a1ca3aef-8c08-0410-bb20-df032aa958be
2007-04-02 15:56:16 +00:00
jlovell f42414bf8a Load cups into easysw/current.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@299 a1ca3aef-8c08-0410-bb20-df032aa958be
2007-03-26 16:28:00 +00:00
jlovell f899b12170 Load cups into easysw/current.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@294 a1ca3aef-8c08-0410-bb20-df032aa958be
2007-03-21 22:24:16 +00:00
jlovell 7594b2247b Load cups into easysw/current.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@289 a1ca3aef-8c08-0410-bb20-df032aa958be
2007-03-20 18:25:41 +00:00
jlovell f7deaa1a21 Load cups into easysw/current.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@279 a1ca3aef-8c08-0410-bb20-df032aa958be
2007-03-14 16:55:44 +00:00
jlovell b86bc4cf57 Load cups into easysw/current.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@266 a1ca3aef-8c08-0410-bb20-df032aa958be
2007-02-14 19:18:46 +00:00
jlovell 411affcf6a Load cups into easysw/current.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@245 a1ca3aef-8c08-0410-bb20-df032aa958be
2006-11-16 17:01:30 +00:00
jlovell 26d47ec688 Load cups into easysw/current.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@238 a1ca3aef-8c08-0410-bb20-df032aa958be
2006-11-07 19:32:27 +00:00
jlovell 2abf387cae Load cups into easysw/current.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@224 a1ca3aef-8c08-0410-bb20-df032aa958be
2006-10-20 18:36:23 +00:00
jlovell 07725fee41 Load cups into easysw/current.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@216 a1ca3aef-8c08-0410-bb20-df032aa958be
2006-09-22 05:53:50 +00:00
jlovell d09495fadd Load cups into easysw/current.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@211 a1ca3aef-8c08-0410-bb20-df032aa958be
2006-08-30 16:09:13 +00:00
jlovell 8ca02f3c05 Load cups into easysw/current.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@194 a1ca3aef-8c08-0410-bb20-df032aa958be
2006-07-20 22:59:35 +00:00
jlovell f7faf1f5c3 Load cups into easysw/current.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@185 a1ca3aef-8c08-0410-bb20-df032aa958be
2006-06-23 01:40:35 +00:00
jlovell c07d5b2daf Remove svn:keywords since they cause svn_load_dirs.pl to complain about every file.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@183 a1ca3aef-8c08-0410-bb20-df032aa958be
2006-06-23 00:14:22 +00:00
jlovell ed48691112 Load cups into easysw/current.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@181 a1ca3aef-8c08-0410-bb20-df032aa958be
2006-06-22 20:01:18 +00:00
jlovell 9e22304f01 The easysw/current branch should have the same properties as trunk...
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@179 a1ca3aef-8c08-0410-bb20-df032aa958be
2006-06-21 18:38:41 +00:00
jlovell 7a6a01ddca More svn:properties changes.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@177 a1ca3aef-8c08-0410-bb20-df032aa958be
2006-06-21 00:20:03 +00:00
jlovell 3608048605 Load cups into easysw/current.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@161 a1ca3aef-8c08-0410-bb20-df032aa958be
2006-05-22 23:39:03 +00:00
jlovell f301802fc2 Load cups into easysw/current.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@158 a1ca3aef-8c08-0410-bb20-df032aa958be
2006-05-22 21:33:05 +00:00
jlovell a9252913e7 Load cups into easysw/current.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@150 a1ca3aef-8c08-0410-bb20-df032aa958be
2006-05-08 22:42:35 +00:00
jlovell a74454a757 Load cups into easysw/current.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@145 a1ca3aef-8c08-0410-bb20-df032aa958be
2006-05-05 19:18:41 +00:00
jlovell 89d46774ee Load cups into easysw/current.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@136 a1ca3aef-8c08-0410-bb20-df032aa958be
2006-04-24 18:03:36 +00:00
jlovell e53920b922 Load cups into easysw/current.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@125 a1ca3aef-8c08-0410-bb20-df032aa958be
2006-04-07 21:00:45 +00:00
jlovell d6ae789d92 Load cups into easysw/current.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@113 a1ca3aef-8c08-0410-bb20-df032aa958be
2006-04-04 20:09:25 +00:00
jlovell 80ca45929e Load cups into easysw/current.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@103 a1ca3aef-8c08-0410-bb20-df032aa958be
2006-03-27 23:11:24 +00:00
jlovell e1d6a77454 Load cups into easysw/current.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@92 a1ca3aef-8c08-0410-bb20-df032aa958be
2006-03-20 21:11:41 +00:00
jlovell 480ef0fe29 Load cups into easysw/current.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@83 a1ca3aef-8c08-0410-bb20-df032aa958be
2006-03-08 23:30:01 +00:00
jlovell 757d2cad8f Load cups into easysw/current.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@80 a1ca3aef-8c08-0410-bb20-df032aa958be
2006-03-08 00:32:35 +00:00
jlovell 4744bd907e Load cups into easysw/current.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@75 a1ca3aef-8c08-0410-bb20-df032aa958be
2006-03-04 15:56:42 +00:00
jlovell b423cd4cb9 Load cups into easysw/current.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@69 a1ca3aef-8c08-0410-bb20-df032aa958be
2006-02-28 17:54:14 +00:00
jlovell ecdc06282a Load cups into easysw/current.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@63 a1ca3aef-8c08-0410-bb20-df032aa958be
2006-02-22 16:59:36 +00:00
jlovell bd7854cb4d Load cups into easysw/current.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@60 a1ca3aef-8c08-0410-bb20-df032aa958be
2006-02-20 18:43:55 +00:00
jlovell 4400e98de2 Load cups into easysw/current.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@54 a1ca3aef-8c08-0410-bb20-df032aa958be
2006-02-03 00:47:45 +00:00
jlovell e00b005a05 Load cups into easysw/current.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@51 a1ca3aef-8c08-0410-bb20-df032aa958be
2006-02-01 23:41:32 +00:00
jlovell ffb6300882 To prepare to load cups into easysw/current, perform 4 renames.
* easysw/current/init/org.cups.cupsd.plist: Renamed from
  easysw/current/init/cupsd-launchd.plist.
* easysw/current/init/PrintingServices: Renamed from
  easysw/current/init/cups.osx.
* easysw/current/init/StartupParameters.plist: Renamed from
  easysw/current/init/cups.plist.
* easysw/current/init/Localizable.strings: Renamed from
  easysw/current/init/cups.strings.


git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@50 a1ca3aef-8c08-0410-bb20-df032aa958be
2006-02-01 23:41:17 +00:00
jlovell a4d045870e Load cups into easysw/current.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@39 a1ca3aef-8c08-0410-bb20-df032aa958be
2006-01-29 16:52:03 +00:00
jlovell 09ec001812 Load cups into easysw/current.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@35 a1ca3aef-8c08-0410-bb20-df032aa958be
2006-01-27 21:43:41 +00:00
jlovell 923edb689d Load cups into easysw/current.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@29 a1ca3aef-8c08-0410-bb20-df032aa958be
2006-01-27 00:19:36 +00:00
jlovell fa73b22906 Load cups into easysw/current.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@13 a1ca3aef-8c08-0410-bb20-df032aa958be
2006-01-26 21:39:43 +00:00
jlovell 4a09f02d10 To prepare to load cups into easysw/current, perform 4 renames.
* easysw/current/init/cups.osx: Renamed from easysw/current/cups.osx.
* easysw/current/init/cups.plist: Renamed from
  easysw/current/cups.plist.
* easysw/current/init/cups.sh.in: Renamed from
  easysw/current/cups.sh.in.
* easysw/current/init/cups.strings: Renamed from
  easysw/current/cups.strings.


git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@12 a1ca3aef-8c08-0410-bb20-df032aa958be
2006-01-26 21:39:24 +00:00
jlovell ef416fc25c Load cups into easysw/current.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@2 a1ca3aef-8c08-0410-bb20-df032aa958be
2006-01-13 01:51:53 +00:00
jlovell 9ec11526e1 Create directories to load project into.
* easysw: New directory.
  * easysw/current: New directory.


git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1 a1ca3aef-8c08-0410-bb20-df032aa958be
2006-01-13 01:51:40 +00:00
1905 arquivos alterados com 850471 adições e 183329 exclusões
+3
Ver Arquivo
@@ -0,0 +1,3 @@
.git* export-ignore
.mailmap export-ignore
tools export-ignore
+170
Ver Arquivo
@@ -0,0 +1,170 @@
*.a
*.bck
*.cgi
*.gz
*.o
*.tokens
.buildrev
autom4te.cache
config.h
config.log
config.status
cups-config
Makedefs
backend/dnssd
backend/http
backend/https
backend/ipp
backend/ipps
backend/lpd
backend/mdns
backend/snmp
backend/socket
backend/test1284
backend/testbackend
backend/testsupplies
backend/usb
berkeley/lpc
berkeley/lpq
berkeley/lpr
berkeley/lprm
cgi-bin/makedocset
cgi-bin/testcgi
cgi-bin/testhi
cgi-bin/testhi.index
cgi-bin/testtemplate
conf/cups-files.conf
conf/cupsd.conf
conf/mime.convs
conf/pam.std
conf/snmp.conf
cups/libcups.dylib
cups/libcups.2.dylib
cups/libcups.so
cups/libcups.so.2
cups/libcupsimage.dylib
cups/libcupsimage.2.dylib
cups/libcupsimage.so
cups/libcupsimage.so.2
cups/locale/
cups/rasterbench
cups/test.pwg
cups/test.raster
cups/testadmin
cups/testarray
cups/testcache
cups/testclient
cups/testconflicts
cups/testcreds
cups/testcups
cups/testdest
cups/testfile
cups/testgetdests
cups/testhttp
cups/testi18n
cups/testipp
cups/testlang
cups/testoptions
cups/testppd
cups/testpwg
cups/testraster
cups/testsnmp
cups/tlscheck
desktop/cups.desktop
doc/index.html
doc/*/index.html
filter/commandtops
filter/gziptoany
filter/pstops
filter/rastertoepson
filter/rastertohp
filter/rastertolabel
filter/rastertopwg
locale/checkpo
locale/po2strings
locale/strings2po
man/client.conf.man
man/cups-files.conf.man
man/cups-lpd.man
man/cups-snmp.man
man/cupsaddsmb.man
man/cupsd.conf.man
man/cupsd.man
man/lpoptions.man
man/mantohtml
monitor/bcp
monitor/tbcp
notifier/dbus
notifier/mailto
notifier/rss
notifier/testnotify
packaging/cups.list
org.cups.docset*
patches
ppdc/genstrings
ppdc/ppd/
ppdc/ppd2/
ppdc/ppdc
ppdc/ppdc-static
ppdc/ppdhtml
ppdc/ppdi
ppdc/ppdi-static
ppdc/ppdmerge
ppdc/ppdpo
ppdc/sample-import.drv
ppdc/sample.c
ppdc/testcatalog
scheduler/convert
scheduler/cups-deviced
scheduler/cups-driverd
scheduler/cups-exec
scheduler/cups-lpd
scheduler/cups-lpd.xinetd
scheduler/cups.sh
scheduler/cups.xml
scheduler/cupsd
scheduler/cupsfilter
scheduler/org.cups.cups-lpd.plist
scheduler/org.cups.cups-lpdAT.service
scheduler/org.cups.cupsd.path
scheduler/org.cups.cupsd.service
scheduler/org.cups.cupsd.socket
scheduler/testlpd
scheduler/testmime
scheduler/testspeed
scheduler/testsub
systemv/accept
systemv/cancel
systemv/cupsaccept
systemv/cupsaddsmb
systemv/cupsctl
systemv/cupsdisable
systemv/cupsenable
systemv/cupsreject
systemv/cupstestdsc
systemv/cupstestppd
systemv/lp
systemv/lpadmin
systemv/lpinfo
systemv/lpmove
systemv/lpoptions
systemv/lpstat
systemv/reject
templates/header.tmpl
templates/*/header.tmpl
test/cups-str-*.html
test/*_log-*
test/ippfind
test/ippfind-static
test/ippserver
test/ippserver-shared
test/ipptool
test/ipptool-static
test/pwg-raster-samples-*
vcnet/.vs
vcnet/packages
vcnet/Win32
vcnet/x64
xcode/CUPS.xcodeproj/project.xcworkspace/
xcode/CUPS.xcodeproj/xcuserdata/
+11
Ver Arquivo
@@ -0,0 +1,11 @@
# Prevent git from showing duplicate names with commands like "git shortlog"
# See the manpage of git-shortlog for details.
# The syntax is:
# Name that should be used <email that should be used> Bad name <bad email>
#
# You can skip Bad name if it is the same as the one that should be used, and is unique.
#
# This file is up-to-date if the command git log --format="%aN <%aE>" | sort -u
# gives no duplicates.
Michael R Sweet <michaelrsweet@gmail.com> msweet <msweet@a1ca3aef-8c08-0410-bb20-df032aa958be>
Michael R Sweet <michaelrsweet@gmail.com> Michael Sweet <msweet@msweet-imac.local>
+25
Ver Arquivo
@@ -0,0 +1,25 @@
#
# Travis CI configuration file for CUPS.
#
# Copyright © 2018 by Apple Inc.
#
# Licensed under Apache License v2.0. See the file "LICENSE" for more
# information.
#
language: c
matrix:
include:
# Linux-specific build stuff
- dist: trusty
sudo: required
before_install:
- sudo apt-get update
- sudo apt-get install -y libavahi-client-dev libgnutls28-dev libkrb5-dev libnss-mdns libpam-dev libsystemd-dev libusb-1.0-0-dev zlib1g-dev
# macOS-specific build stuff
- os: osx
osx_image: xcode10
script: ./configure && make check
+234
Ver Arquivo
@@ -0,0 +1,234 @@
CHANGES - 2.3b6 - 2018-12-14
============================
Changes in CUPS v2.3b7
----------------------
- Fixed some build failures (Issue #5451, Issue #5463)
- Running ppdmerge with the same input and output filenames did not work as
advertised (Issue #5455)
Changes in CUPS v2.3b6
----------------------
- Localization update (Issue #5339, Issue #5348, Issue #5362, Issue #5408,
Issue #5410)
- Documentation updates (Issue #5369, Issue #5402, Issue #5403, Issue #5404)
- CVE-2018-4700: Linux session cookies used a predictable random number seed.
- All user commands now support the `--help` option (Issue #5326)
- The `lpoptions` command now works with IPP Everywhere printers that have not
yet been added as local queues (Issue #5045)
- The lpadmin command would create a non-working printer in some error cases
(Issue #5305)
- The scheduler would crash if an empty `AccessLog` directive was specified
(Issue #5309)
- The scheduler did not idle-exit on some Linux distributions (Issue #5319)
- Fixed a regression in the changes to ippValidateAttribute (Issue #5322,
Issue #5330)
- Fixed a crash bug in the Epson dot matrix driver (Issue #5323)
- Automatic debug logging of job errors did not work with systemd (Issue #5337)
- The web interface did not list the IPP Everywhere "driver" (Issue #5338)
- The scheduler did not report all of the supported job options and values
(Issue #5340)
- The IPP Everywhere "driver" now properly supports face-up printers
(Issue #5345)
- Fixed some typos in the label printer drivers (Issue #5350)
- Setting the `Community` name to the empty string in `snmp.conf` now disables
SNMP supply level monitoring by all the standard network backends
(Issue #5354)
- Multi-file jobs could get stuck if the backend failed (Issue #5359,
Issue #5413)
- The IPP Everywhere "driver" no longer does local filtering when printing to
a shared CUPS printer (Issue #5361)
- The lpadmin command now correctly reports IPP errors when configuring an
IPP Everywhere printer (Issue #5370)
- Fixed some memory leaks discovered by Coverity (Issue #5375)
- The PPD compiler incorrectly terminated JCL options (Issue #5379)
- The cupstestppd utility did not generate errors for missing/mismatched
CloseUI/JCLCloseUI keywords (Issue #5381)
- The scheduler now reports the actual location of the log file (Issue #5398)
- Added USB quirk rules (Issue #5395, Issue #5420, Issue #5443)
- The generated PPD files for IPP Everywhere printers did not contain the
cupsManualCopies keyword (Issue #5433)
- Kerberos credentials might be truncated (Issue #5435)
- The handling of `MaxJobTime 0` did not match the documentation (Issue #5438)
- Fixed a bug adding a queue with the `-E` option (Issue #5440)
- The `cupsaddsmb` program has been removed (Issue #5449)
- The `cupstestdsc` program has been removed (Issue #5450)
- The scheduler was being backgrounded on macOS, causing applications to spin
(rdar://40436080)
- The scheduler did not validate that required initial request attributes were
in the operation group (rdar://41098178)
- Authentication in the web interface did not work on macOS (rdar://41444473)
- Fixed an issue with HTTP Digest authentication (rdar://41709086)
- The scheduler could crash when job history was purged (rdar://42198057)
- Fixed a crash bug when mapping PPD duplex options to IPP attributes
(rdar://46183976)
- Fixed a memory leak for some IPP (extension) syntaxes.
- The `cupscgi`, `cupsmime`, and `cupsppdc` support libraries are no longer
installed as shared libraries.
- The `snmp` backend is now deprecated.
Changes in CUPS v2.3b5
----------------------
- The `ipptool` program no longer checks for duplicate attributes when running
in list or CSV mode (Issue #5278)
- The `cupsCreateJob`, `cupsPrintFile2`, and `cupsPrintFiles2` APIs did not use
the supplied HTTP connection (Issue #5288)
- Fixed another crash in the scheduler when adding an IPP Everywhere printer
(Issue #5290)
- Added a workaround for certain web browsers that do not support multiple
authentication schemes in a single response header (Issue #5289)
- Fixed policy limits containing the `All` operation (Issue #5296)
- The scheduler was always restarted after idle-exit with systemd (Issue #5297)
- Added a USB quirks rule for the HP LaserJet P1102 (Issue #5310)
- The mailto notifier did not wait for the welcome message (Issue #5312)
- Fixed a parsing bug in the pstops filter (Issue #5321)
- Documentation updates (Issue #5299, Issue #5301, Issue #5306)
- Localization updates (Issue #5317)
- The scheduler allowed environment variables to be specified in the
`cupsd.conf` file (rdar://37836779, rdar://37836995, rdar://37837252,
rdar://37837581)
- Fax queues did not support pause (p) or wait-for-dialtone (w) characters
(rdar://39212256)
- The scheduler did not validate notify-recipient-uri values properly
(rdar://40068936)
- The IPP parser allowed invalid group tags (rdar://40442124)
- Fixed a parsing bug in the new authentication code.
Changes in CUPS v2.3b4
----------------------
- NOTICE: Printer drivers are now deprecated (Issue #5270)
- Kerberized printing to another CUPS server did not work correctly
(Issue #5233)
- Fixed printing to some IPP Everywhere printers (Issue #5238)
- Fixed installation of filters (Issue #5247)
- The scheduler now supports using temporary print queues for older IPP/1.1
print queues like those shared by CUPS 1.3 and earlier (Issue #5241)
- Star Micronics printers need the "unidir" USB quirk rule (Issue #5251)
- Documentation fixes (Issue #5252)
- Fixed a compile issue when PAM is not available (Issue #5253)
- Label printers supported by the rastertolabel driver don't support SNMP, so
don't delay printing to test it (Issue #5256)
- The scheduler could crash while adding an IPP Everywhere printer (Issue #5258)
- The Lexmark Optra E310 printer needs the "no-reattach" USB quirk rule
(Issue #5259)
- Systemd did not restart cupsd when configuration changes were made that
required a restart (Issue #5263)
- The IPP Everywhere PPD generator did not include the `cupsJobPassword`
keyword, when supported (Issue #5265)
- Fixed an Avahi crash bug in the scheduler (Issue #5268)
- Raw print queues are now deprecated (Issue #5269)
- Fixed an RPM packaging problem (Issue #5276)
- The IPP backend did not properly detect failed PDF prints (rdar://34055474)
- TLS connections now properly timeout (rdar://34938533)
- Temp files could not be created in some sandboxed applications
(rdar://37789645)
- The ipptool `--ippserver` option did not encode out-of-band attributes
correctly.
- Added public `cupsEncodeOption` API for encoding a single option as an IPP
attribute.
- Removed support for the `-D_PPD_DEPRECATED=""` developer cheat - the PPD API
should no longer be used.
- Removed support for `-D_IPP_PRIVATE_STRUCTURES=1` developer cheat - the IPP
accessor functions should be used instead.
Changes in CUPS v2.3b3
----------------------
- More fixes for printing to old CUPS servers (Issue #5211)
- The IPP Everywhere PPD generator did not support deep grayscale or 8-bit per
component AdobeRGB (Issue #5227)
- Additional changes for the scheduler to substitute default values for invalid
job attributes when running in "relaxed conformance" mode (Issue #5229)
- Localization changes (Issue #5232, rdar://37068158)
- The `cupsCopyDestInfo` function did not work with all print queues
(Issue #5235)
Changes in CUPS v2.3b2
----------------------
- Localization changes (Issue #5210)
- Build fixes (Issue #5217)
- IPP Everywhere PPDs were not localized to English (Issue #5205)
- The `cupsGetDests` and `cupsEnumDests` functions no longer filter out local
print services like IPP USB devices (Issue #5206)
- The `cupsCopyDest` function now correctly copies the `is_default` value
(Issue #5208)
- Printing to old CUPS servers has been fixed (Issue #5211)
- The `ppdInstallableConflict` tested too many constraints (Issue #5213)
- All HTTP field values can now be longer than `HTTP_MAX_VALUE` bytes
(Issue #5216)
- Added a USB quirk rule for Canon MP280 series printers (Issue #5221)
- The `cupsRasterWritePixels` function did not correctly swap bytes for some
formats (Issue #5225)
- Fixed an issue with mapping finishing options (rdar://34250727)
- The `ppdLocalizeIPPReason` function incorrectly returned a localized version
of "none" (rdar://36566269)
- The scheduler did not add ".local" to the default DNS-SD host name when
needed.
Changes in CUPS v2.3b1
----------------------
- CUPS is now provided under the Apache License, Version 2.0.
- Documentation updates (Issue #4580, Issue #5177, Issue #5192)
- The `cupsCopyDestConflicts` function now handles collection attribute
("media-col", "finishings-col", etc.) constraints (Issue #4096)
- The `lpoptions` command incorrectly saved default options (Issue #4717)
- The `lpstat` command now reports when new jobs are being held (Issue #4761)
- The `ippfind` command now supports finding printers whose name starts with an
underscore (Issue #4833)
- The CUPS library now supports the latest HTTP Digest authentication
specification including support for SHA-256 (Issue #4862)
- The scheduler now supports the "printer-id" attribute (Issue #4868)
- No longer support backslash, question mark, or quotes in printer names
(Issue #4966)
- The scheduler no longer logs pages as they are printed, instead just logging
a total of the pages printed at job completion (Issue #4991)
- Dropped RSS subscription management from the web interface (Issue #5012)
- Bonjour printer sharing now uses the DNS-SD hostname (or ServerName value if
none is defined) when registering shared printers on the network (Issue #5071)
- The `ipptool` command now supports writing `ippserver` attributes files
(Issue #5093)
- The `lp` and `lpr` commands now provide better error messages when the default
printer cannot be found (Issue #5096)
- The `lpadmin` command now provides a better error message when an unsupported
System V interface script is used (Issue #5111)
- The scheduler did not write out dirty configuration and state files if there
were open client connections (Issue #5118)
- The `SSLOptions` directive now supports `MinTLS` and `MaxTLS` options to
control the minimum and maximum TLS versions that will be allowed,
respectively (Issue #5119)
- Dropped hard-coded CGI scripting language support (Issue #5124)
- The `cupsEnumDests` function did not include options from the lpoptions
files (Issue #5144)
- Fixed the `ippserver` sample code when threading is disabled or unavailable
(Issue #5154)
- Added label markup to checkbox and radio button controls in the web interface
templates (Issue #5161)
- Fixed group validation on OpenBSD (Issue #5166)
- Improved IPP Everywhere media support, including a new
`cupsAddDestMediaOptions` function (Issue #5167)
- IPP Everywhere PPDs now include localizations of printer-specific media types,
when available (Issue #5168)
- The cups-driverd program incorrectly stopped scanning PPDs as soon as a loop
was seen (Issue #5170)
- IPP Everywhere PPDs now support IPP job presets (Issue #5179)
- IPP Everywhere PPDs now support finishing templates (Issue #5180)
- Fixed a journald support bug in the scheduler (Issue #5181)
- Fixed PAM module detection and added support for the common PAM definitions
(Issue #5185)
- The scheduler now substitutes default values for invalid job attributes when
running in "relaxed conformance" mode (Issue #5186)
- The scheduler did not work with older versions of uClibc (Issue #5188)
- The scheduler now generates a strings file for localizing PPD options
(Issue #5194)
+14
Ver Arquivo
@@ -0,0 +1,14 @@
Contributing to CUPS
====================
CUPS is developed by Apple Inc. and distributed as open source software under
the Apache License, Version 2.0. Significant contributions to CUPS must be
licensed to Apple using the Apple Contributor Agreement:
https://www.cups.org/AppleContributorAgreement_2011-03-10.pdf
Contributions should be submitted as attachments to bug reports on the CUPS web
site. Changes to existing source files should be submitted as unified diffs
(both Subversion and Git produce this format by default) while new source files
should be provided as-is or in an archive. Github pull requests can also be
used to submit changes.
+54
Ver Arquivo
@@ -0,0 +1,54 @@
CREDITS - 2017-05-01
====================
Few projects are completed by one person, and CUPS is no exception. We'd like
to thank the following individuals for their contributions:
Niklas 'Nille' Åkerström - Swedish localization.
Nathaniel Barbour - Lots of testing and feedback.
N. Becker - setsid().
Philippe Combes - French localization and buttons script.
Jean-Eric Cuendet - GhostScript filters for CUPS.
Van Dang - HTTP and IPP policeman.
L. Peter Deutsch - MD5 code.
Dr. ZP Han - setgid()/setuid().
Guy Harris - *BSD shared libraries and lots of other
fixes.
Bjoern Jacke - I18N stuff.
Wang Jian - CUPS RPM corrections.
Roderick Johnstone - Beta tester of the millenium.
Till Kamppeter - Bug fixes, beta testing, evangelism.
Tomohiro Kato - Japanese localization.
Kiko - Bug fixes.
Sergey V. Kovalyov - ESP Print Pro and CUPS beta tester.
Marek Laane - Estonian translation.
Iñaki Larrañaga - Basque localization.
Mark Lawrence - Microsoft interoperability testing.
Jeff Licquia - Bug fixes, beta testing, evangelism.
Jason McMullan - Original CUPS RPM distributions.
Àngel Mompó - Catalan localization.
Wes Morgan - *BSD fixes.
Kenshi Muto - Japanese localization, patches, and
testing.
Brian Norris - Upstart support.
Daniel Nylander - Swedish localization.
Naruiko Ogasawara - Japanese localization.
Giulio Orsero - Bug fixes and testing.
Michal Osowiecki - Polish localization.
Citra Paska - Indonesian localization.
Kurt Pfeifle - Bug fixes, beta testing, evangelism.
Vincenzo Reale - Italian localization.
Petter Reinholdtsen - HP-UX compiler stuff.
Juan Pablo González Riopedre - Spanish localization.
Giovanni Scafora - Italian localization.
Joachim Schwender - German localization.
Opher Shachar - Hebrew localization.
Stuart Stevens - HP JetDirect IPP information.
Andrea Suatoni - IRIX desktop integration and testing.
Teppo Turliainen - Finnish localization.
Tim Waugh - Lots of patches, testing, and Linux
integration.
Yugami - LDAP browsing support.
If I've missed someone, please let me know by sending an email to
"msweet@apple.com".
+618
Ver Arquivo
@@ -0,0 +1,618 @@
Developing for CUPS
===================
Please see the [Contributing to CUPS](CONTRIBUTING.md) file for information on
contributing to the CUPS project.
How To Contact The Developers
-----------------------------
The CUPS mailing lists are the primary means of asking questions and informally
discussing issues and feature requests with the CUPS developers and other
experienced CUPS users and developers. The "cups" mailing list is intended for
CUPS usage questions and new software announcements while the "cups-devel"
mailing list provides a forum for CUPS developers and monitoring new bugs.
Interfaces
----------
CUPS interfaces, including the C APIs and command-line arguments, environment
variables, configuration files, and output format, are stable across patch
versions and are generally backwards-compatible with interfaces used in prior
major and minor versions. However, program interfaces such as those used by
the scheduler to run filter, port monitor, and backend processes for job
processing should only be considered stable from the point of view of a
filter, port monitor, or backend. Software that simulates the scheduler in
order to run those programs outside of CUPS must necessarily be updated when
the corresponding interface is changed in a subsequent CUPS release, otherwise
undefined behavior can occur.
CUPS C APIs starting with an underscore (`_`) are considered to be private to
CUPS and are not subject to the normal guarantees of stability between CUPS
releases and must never be used in non-CUPS source code. Similarly,
configuration and state files written by CUPS are considered private if a
corresponding man page is not provided with the CUPS release. Never rely on
undocumented files or formats when developing software for CUPS. Always use a
published C API to access data stored in a file to avoid compatibility problems
in the future.
Build System
------------
The CUPS build system uses GNU autoconf to tailor the library to the local
operating system. Project files for the current release of Microsoft Visual
Studio are also provided for Microsoft Windows®. To improve portability,
makefiles must not make use of features unique to GNU make. See the MAKEFILE
GUIDELINES section for a description of the allowed make features and makefile
guidelines.
Additional GNU build programs such as GNU automake and GNU libtool must not be
used. GNU automake produces non-portable makefiles which depend on GNU-
specific extensions, and GNU libtool is not portable or reliable enough for
CUPS.
Version Numbering
-----------------
CUPS uses a three-part version number separated by periods to represent the
major, minor, and patch release numbers. Major release numbers indicate large
design changes or backwards-incompatible changes to the CUPS API or CUPS
Imaging API. Minor release numbers indicate new features and other smaller
changes which are backwards-compatible with previous CUPS releases. Patch
numbers indicate bug fixes to the previous feature or patch release.
> Note:
>
> When we talk about compatibility, we are talking about binary compatibility
> for public APIs and output format compatibility for program interfaces.
> Changes to configuration file formats or the default behavior of programs
> are not generally considered incompatible as the upgrade process can
> normally address such changes gracefully.
Production releases use the plain version numbers:
MAJOR.MINOR.PATCH
1.0.0
...
1.1.0
...
1.1.23
...
2.0.0
...
2.1.0
2.1.1
2.1.2
2.1.3
The first production release in a MAJOR.MINOR series (MAJOR.MINOR.0) is called
a feature release. Feature releases are the only releases that may contain new
features. Subsequent production releases in a MAJOR.MINOR series may only
contain bug fixes.
Beta-test releases are identified by appending the letter B to the major and
minor version numbers followed by the beta release number:
MAJOR.MINORbNUMBER
2.2b1
Release candidates are identified by appending the letters RC to the major and
minor version numbers followed by the release candidate number:
MAJOR.MINORrcNUMBER
2.2rc1
Coding Guidelines
-----------------
Contributed source code must follow the guidelines below. While the examples
are for C and C++ source files, source code for other languages should conform
to the same guidelines as allowed by the language.
### Source Files
All source files names must be 16 characters or less in length to ensure
compatibility with older UNIX filesystems. Source files containing functions
have an extension of ".c" for C and ".cxx" for C++ source files. All other
"include" files have an extension of ".h". Tabs are set to 8 characters or
columns.
> Note:
>
> The ".cxx" extension is used because it is the only common C++ extension
> between Linux, macOS, UNIX, and Windows.
The top of each source file contains a header giving the purpose or nature of
the source file and the copyright and licensing notice:
/*
* Description of file contents.
*
* Copyright 2017 by Apple Inc.
*
* Licensed under Apache License v2.0. See the file "LICENSE" for more
* information.
*/
### Header Files
All public header files must include the "versioning.h" header file, or a header
that does so. Function declarations are then "decorated" with the correct
`_CUPS_API_major_minor` macro to define its availability based on the build
environment, for example:
extern int cupsDoThis(int foo, int bar) _CUPS_API_2_2;
Private API header files must be named with the suffix "-private", for example
the "cups.h" header file defines all of the public CUPS APIs while the
"cups-private.h" header file defines all of the private CUPS APIs as well.
Typically a private API header file will include the corresponding public API
header file.
### Comments
All source code utilizes block comments within functions to describe the
operations being performed by a group of statements; avoid putting a comment
per line unless absolutely necessary, and then consider refactoring the code
so that it is not necessary. C source files use the block comment format
("/* comment */") since many vendor C compilers still do not support C99/C++
comments ("// comment"):
/*
* Clear the state array before we begin...
*/
for (i = 0; i < (sizeof(array) / sizeof(sizeof(array[0])); i ++)
array[i] = CUPS_STATE_IDLE;
/*
* Wait for state changes on another thread...
*/
do
{
for (i = 0; i < (sizeof(array) / sizeof(sizeof(array[0])); i ++)
if (array[i] != CUPS_STATE_IDLE)
break;
if (i == (sizeof(array) / sizeof(array[0])))
sleep(1);
} while (i == (sizeof(array) / sizeof(array[0])));
### Indentation
All code blocks enclosed by brackets begin with the opening brace on a new
line. The code then follows starting on a new line after the brace and is
indented 2 spaces. The closing brace is then placed on a new line following
the code at the original indentation:
{
int i; /* Looping var */
/*
* Process foobar values from 0 to 999...
*/
for (i = 0; i < 1000; i ++)
{
do_this(i);
do_that(i);
}
}
Single-line statements following "do", "else", "for", "if", and "while" are
indented 2 spaces as well. Blocks of code in a "switch" block are indented 4
spaces after each "case" and "default" case:
switch (array[i])
{
case CUPS_STATE_IDLE :
do_this(i);
do_that(i);
break;
default :
do_nothing(i);
break;
}
### Spacing
A space follows each reserved word such as `if`, `while`, etc. Spaces are not
inserted between a function name and the arguments in parenthesis.
### Return Values
Parenthesis surround values returned from a function:
return (CUPS_STATE_IDLE);
### Functions
Functions with a global scope have a lowercase prefix followed by capitalized
words, e.g., `cupsDoThis`, `cupsDoThat`, `cupsDoSomethingElse`, etc. Private
global functions begin with a leading underscore, e.g., `_cupsDoThis`,
`_cupsDoThat`, etc.
Functions with a local scope are declared static with lowercase names and
underscores between words, e.g., `do_this`, `do_that`, `do_something_else`, etc.
Each function begins with a comment header describing what the function does,
the possible input limits (if any), the possible output values (if any), and
any special information needed:
/*
* 'do_this()' - Compute y = this(x).
*
* Notes: none.
*/
static float /* O - Inverse power value, 0.0 <= y <= 1.1 */
do_this(float x) /* I - Power value (0.0 <= x <= 1.1) */
{
...
return (y);
}
Return/output values are indicated using an "O" prefix, input values are
indicated using the "I" prefix, and values that are both input and output use
the "IO" prefix for the corresponding in-line comment.
The Mini-XML documentation generator also understands the following special
text in the function description comment:
@deprecated@ - Marks the function as deprecated (not recommended
for new development and scheduled for removal)
@since CUPS version@ - Marks the function as new in the specified version
of CUPS.
@private@ - Marks the function as private (same as starting the
function name with an underscore)
### Variables
Variables with a global scope are capitalized, e.g., `ThisVariable`,
`ThatVariable`, `ThisStateVariable`, etc. Globals in CUPS libraries are either
part of the per-thread global values managed by the `_cupsGlobals` function
or are suitably protected for concurrent access. Global variables should be
replaced by function arguments whenever possible.
Variables with a local scope are lowercase with underscores between words,
e.g., `this_variable`, `that_variable`, etc. Any "local global" variables
shared by functions within a source file are declared static. As for global
variables, local static variables are suitably protected for concurrent access.
Each variable is declared on a separate line and is immediately followed by a
comment block describing the variable:
int ThisVariable; /* The current state of this */
static int that_variable; /* The current state of that */
### Types
All type names are lowercase with underscores between words and `_t` appended
to the end of the name, e.g., `cups_this_type_t`, `cups_that_type_t`, etc.
Type names start with a prefix, typically `cups` or the name of the program,
to avoid conflicts with system types. Private type names start with an
underscore, e.g., `_cups_this_t`, `_cups_that_t`, etc.
Each type has a comment block immediately after the typedef:
typedef int cups_this_type_t; /* This type is for CUPS foobar options. */
### Structures
All structure names are lowercase with underscores between words and `_s`
appended to the end of the name, e.g., `cups_this_s`, `cups_that_s`, etc.
Structure names start with a prefix, typically `cups` or the name of the
program, to avoid conflicts with system types. Private structure names start
with an underscore, e.g., `_cups_this_s`, `_cups_that_s`, etc.
Each structure has a comment block immediately after the struct and each member
is documented similar to the variable naming policy above:
struct cups_this_struct_s /* This structure is for CUPS foobar options. */
{
int this_member; /* Current state for this */
int that_member; /* Current state for that */
};
### Constants
All constant names are uppercase with underscores between words, e.g.,
`CUPS_THIS_CONSTANT`, `CUPS_THAT_CONSTANT`, etc. Constants begin with an
uppercase prefix, typically `CUPS_` or the program or type name. Private
constants start with an underscore, e.g., `_CUPS_THIS_CONSTANT`,
`_CUPS_THAT_CONSTANT`, etc.
Typed enumerations should be used whenever possible to allow for type checking
by the compiler.
Comment blocks immediately follow each constant:
typedef enum cups_tray_e /* Tray enumerations */
{
CUPS_TRAY_THIS, /* This tray */
CUPS_TRAY_THAT /* That tray */
} cups_tray_t;
## Makefile Guidelines
The following is a guide to the makefile-based build system used by CUPS.
These standards have been developed over the years to allow CUPS to be built on
as many systems and environments as possible.
### General Organization
The CUPS source code is organized functionally into a top-level makefile,
include file, and subdirectories each with their own makefile and dependencies
files. The ".in" files are template files for the autoconf software and are
used to generate a static version of the corresponding file.
### Makefile Documentation
Each makefile starts with the standard CUPS header containing the description
of the file, and CUPS copyright and license notice:
#
# Makefile for ...
#
# Copyright 2017 by Apple Inc.
#
# Licensed under Apache License v2.0. See the file "LICENSE" for more
# information.
#
### Portable Makefile Construction
CUPS uses a common subset of make program syntax to ensure that the software
can be compiled "out of the box" on as many systems as possible. The following
is a list of assumptions we follow when constructing makefiles:
- Targets; we assume that the make program supports the notion of simple
targets of the form "name:" that perform tab-indented commands that follow
the target, e.g.:
target:
TAB target commands
- Dependencies; we assume that the make program supports recursive dependencies
on targets, e.g.:
target: foo bar
TAB target commands
foo: bla
TAB foo commands
bar:
TAB bar commands
bla:
TAB bla commands
- Variable Definition; we assume that the make program supports variable
definition on the command-line or in the makefile using the following form:
name=value
- Variable Substitution; we assume that the make program supports variable
substitution using the following forms:
- `$(name)`; substitutes the value of "name",
- `$(name:.old=.new)`; substitutes the value of "name" with the filename
extension ".old" changed to ".new",
- `$(MAKEFLAGS)`; substitutes the command-line options passed to the
program without the leading hyphen (-),
- `$$`; substitutes a single $ character,
- `$<`; substitutes the current source file or dependency, and
- `$@`; substitutes the current target name.
- Suffixes; we assume that the make program supports filename suffixes with
assumed dependencies, e.g.:
.SUFFIXES: .c .o
.c.o:
TAB $(CC) $(CFLAGS) -o $@ -c $<
- Include Files; we assume that the make program supports the include
directive, e.g.:
include ../Makedefs
include Dependencies
- Comments; we assume that comments begin with a # character and proceed to the
end of the current line.
- Line Length; we assume that there is no practical limit to the length of
lines.
- Continuation of long lines; we assume that the `\` character may be placed at
the end of a line to concatenate two or more lines in a makefile to form a
single long line.
- Shell; we assume a POSIX-compatible shell is present on the build system.
### Standard Variables
The following variables are defined in the "Makedefs" file generated by the
autoconf software:
- `ALL_CFLAGS`; the combined C compiler options,
- `ALL_CXXFLAGS`; the combined C++ compiler options,
- `AMANDIR`; the administrative man page installation directory (section 8/1m
depending on the platform),
- `AR`; the library archiver command,
- `ARFLAGS`; options for the library archiver command,
- `AWK`; the local awk command,
- `BINDIR`; the binary installation directory,
- `BUILDROOT`; optional installation prefix (defaults to DSTROOT),
- `CC`; the C compiler command,
- `CFLAGS`; options for the C compiler command,
- `CHMOD`; the chmod command,
- `CXX`; the C++ compiler command,
- `CXXFLAGS`; options for the C++ compiler command,
- `DATADIR`; the data file installation directory,
- `DSO`; the C shared library building command,
- `DSOXX`; the C++ shared library building command,
- `DSOFLAGS`; options for the shared library building command,
- `INCLUDEDIR`; the public header file installation directory,
- `INSTALL`; the install command,
- `INSTALL_BIN`; the program installation command,
- `INSTALL_COMPDATA`; the compressed data file installation command,
- `INSTALL_CONFIG`; the configuration file installation command,
- `INSTALL_DATA`; the data file installation command,
- `INSTALL_DIR`; the directory installation command,
- `INSTALL_LIB`; the library installation command,
- `INSTALL_MAN`; the documentation installation command,
- `INSTALL_SCRIPT`; the shell script installation command,
- `LD`; the linker command,
- `LDFLAGS`; options for the linker,
- `LIBDIR`; the library installation directory,
- `LIBS`; libraries for all programs,
- `LN`; the ln command,
- `MAN1EXT`; extension for man pages in section 1,
- `MAN3EXT`; extension for man pages in section 3,
- `MAN5EXT`; extension for man pages in section 5,
- `MAN7EXT`; extension for man pages in section 7,
- `MAN8DIR`; subdirectory for man pages in section 8,
- `MAN8EXT`; extension for man pages in section 8,
- `MANDIR`; the man page installation directory,
- `OPTIM`; common compiler optimization options,
- `PRIVATEINCLUDE`; the private header file installation directory,
- `RM`; the rm command,
- `SHELL`; the sh (POSIX shell) command,
- `STRIP`; the strip command,
- `srcdir`; the source directory.
### Standard Targets
The following standard targets are defined in each makefile:
- `all`; creates all target programs, libraries, and documentation files,
- `clean`; removes all target programs libraries, documentation files, and object
files,
- `depend`; generates automatic dependencies for any C or C++ source files (also
see "DEPENDENCIES"),
- `distclean`; removes autoconf-generated files in addition to those removed by
the "clean" target,
- `install`; installs all distribution files in their corresponding locations
(also see "INSTALL/UNINSTALL SUPPORT"),
- `install-data`; installs all data files in their corresponding locations (also
see "INSTALL/UNINSTALL SUPPORT"),
- `install-exec`; installs all executable files in their corresponding locations
(also see "INSTALL/UNINSTALL SUPPORT"),
- `install-headers`; installs all include files in their corresponding locations
(also see "INSTALL/UNINSTALL SUPPORT"),
- `install-libs`; installs all library files in their corresponding locations
(also see "INSTALL/UNINSTALL SUPPORT"), and
- `uninstall`; removes all distribution files from their corresponding locations
(also see "INSTALL/UNINSTALL SUPPORT").
### Object Files
Object files (the result of compiling a C or C++ source file) have the
extension ".o".
### Programs
Program files are the result of linking object files and libraries together to
form an executable file. A typical program target looks like:
program: $(OBJS)
TAB echo Linking $@...
TAB $(CC) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
### Static Libraries
Static libraries have a prefix of "lib" and the extension ".a". A typical
static library target looks like:
libname.a: $(OBJECTS)
TAB echo Creating $@...
TAB $(RM) $@
TAB $(AR) $(ARFLAGS) $@ $(OBJECTS)
TAB $(RANLIB) $@
### Shared Libraries
Shared libraries have a prefix of "lib" and the extension ".dylib" or ".so"
depending on the operating system. A typical shared library is composed of
several targets that look like:
libname.so: $(OBJECTS)
TAB echo $(DSOCOMMAND) libname.so.$(DSOVERSION) ...
TAB $(DSOCOMMAND) libname.so.$(DSOVERSION) $(OBJECTS)
TAB $(RM) libname.so libname.so.$(DSOMAJOR)
TAB $(LN) libname.so.$(DSOVERSION) libname.so.$(DSOMAJOR)
TAB $(LN) libname.so.$(DSOVERSION) libname.so
libname.dylib: $(OBJECTS)
TAB echo $(DSOCOMMAND) libname.$(DSOVERSION).dylib ...
TAB $(DSOCOMMAND) libname.$(DSOVERSION).dylib \
TAB TAB -install_name $(libdir)/libname.$(DSOMAJOR).dylib \
TAB TAB -current_version libname.$(DSOVERSION).dylib \
TAB TAB -compatibility_version $(DSOMAJOR).0 \
TAB TAB $(OBJECTS) $(LIBS)
TAB $(RM) libname.dylib
TAB $(RM) libname.$(DSOMAJOR).dylib
TAB $(LN) libname.$(DSOVERSION).dylib libname.$(DSOMAJOR).dylib
TAB $(LN) libname.$(DSOVERSION).dylib libname.dylib
### Dependencies
Static dependencies are expressed in each makefile following the target, for
example:
foo: bar
Static dependencies are only used when it is not possible to automatically
generate them. Automatic dependencies are stored in a file named
"Dependencies" and included at the end of the makefile. The following "depend"
target rule is used to create the automatic dependencies:
depend:
TAB $(CC) -MM $(ALL_CFLAGS) $(OBJS:.o=.c) >Dependencies
We regenerate the automatic dependencies on an macOS system and express any
non-macOS dependencies statically in the makefile.
### Install/Uninstall Support
All makefiles contains install and uninstall rules which install or remove the
corresponding software. These rules must use the $(BUILDROOT) variable as a
prefix to any installation directory so that CUPS can be installed in a
temporary location for packaging by programs like rpmbuild.
The `INSTALL_BIN`, `INSTALL_COMPDATA`, `INSTALL_CONFIG`, `INSTALL_DATA`,
`INSTALL_DIR`, `INSTALL_LIB`, `INSTALL_MAN`, and `INSTALL_SCRIPT` variables
must be used when installing files so that the proper ownership and permissions
are set on the installed files.
The `$(RANLIB)` command must be run on any static libraries after installation
since the symbol table is invalidated when the library is copied on some
platforms.
+227
Ver Arquivo
@@ -0,0 +1,227 @@
INSTALL - CUPS v2.3b7 - 2018-12-14
==================================
This file describes how to compile and install CUPS from source code. For more
information on CUPS see the file called "README.md". A complete change log can
be found in "CHANGES.md".
Using CUPS requires additional third-party support software and printer drivers.
These are typically included with your operating system distribution. Apple
does not endorse or support third-party support software for CUPS.
> Note: Current versions of macOS DO NOT allow installation to /usr with the
> default System Integrity Protection (SIP) settings. In addition, we do not
> recommend replacing the CUPS supplied with macOS because:
>
> a. not all versions of CUPS are compatible with every macOS release,
>
> b. code signing prevents replacement of system libraries and access to the
> system keychain (needed for encrypted printer sharing), and
>
> c. software updates will often replace parts of your local installation,
> potentially rendering your system unusable.
>
> Apple only supports using the Clang supplied with Xcode to build CUPS on
> macOS.
BEFORE YOU BEGIN
----------------
You'll need ANSI-compliant C and C++ compilers, plus a make program and POSIX-
compliant shell (/bin/sh). The GNU compiler tools and Bash work well and we
have tested the current CUPS code against several versions of GCC with excellent
results.
The makefiles used by the project should work with most versions of make. We've
tested them with GNU make as well as the make programs shipped by Compaq, HP,
SGI, and Sun. BSD users should use GNU make (gmake) since BSD make does not
support "include".
Besides these tools you'll want ZLIB library for compression support, the GNU
TLS library for encryption support on platforms other than iOS, macOS, or
Windows, and either MIT (1.6.3 or higher) or Heimdal Kerberos for Kerberos
support. CUPS will compile and run without these, however you'll miss out on
many of the features provided by CUPS.
On a stock Ubuntu install, the following command will install the required
prerequisites:
sudo apt-get install autoconf build-essential libavahi-client-dev \
libgnutls28-dev libkrb5-dev libnss-mdns libpam-dev \
libsystemd-dev libusb-1.0-0-dev zlib1g-dev
Also, please note that CUPS does not include print filters to support PDF or
raster printing. You *must* download GPL Ghostscript and/or the Open Printing
CUPS filters package separately to print on operating systems other than macOS.
CONFIGURATION
-------------
CUPS uses GNU autoconf, so you should find the usual "configure" script in the
main CUPS source directory. To configure CUPS for your system, type:
./configure
The default installation will put the CUPS software in the "/etc", "/usr", and
"/var" directories on your system, which will overwrite any existing printing
commands on your system. Use the `--prefix` option to install the CUPS software
in another location:
./configure --prefix=/some/directory
> Note: Current versions of macOS DO NOT allow installation to /usr with the
> default System Integrity Protection (SIP) settings.
To see a complete list of configuration options, use the `--help` option:
./configure --help
If any of the dependent libraries are not installed in a system default location
(typically "/usr/include" and "/usr/lib") you'll need to set the CFLAGS,
CPPFLAGS, CXXFLAGS, DSOFLAGS, and LDFLAGS environment variables prior to running
configure:
setenv CFLAGS "-I/some/directory"
setenv CPPFLAGS "-I/some/directory"
setenv CXXFLAGS "-I/some/directory"
setenv DSOFLAGS "-L/some/directory"
setenv LDFLAGS "-L/some/directory"
./configure ...
or:
CFLAGS="-I/some/directory" \
CPPFLAGS="-I/some/directory" \
CXXFLAGS="-I/some/directory" \
DSOFLAGS="-L/some/directory" \
LDFLAGS="-L/some/directory" \
./configure ...
The `--enable-debug` option compiles CUPS with debugging information enabled.
Additional debug logging support can be enabled using the
`--enable-debug-printfs` option - these debug messages are enabled using the
`CUPS_DEBUG_xxx` environment variables at run-time.
CUPS also includes an extensive set of unit tests that can be used to find and
diagnose a variety of common problems - use the "--enable-unit-tests" configure
option to run them at build time.
On macOS, use the `--with-archflags` option to build with the correct set of
architectures:
./configure --with-archflags="-arch i386 -arch x86_64" ...
Once you have configured things, just type:
make ENTER
or if you have FreeBSD, NetBSD, or OpenBSD type:
gmake ENTER
to build the software.
TESTING THE SOFTWARE
--------------------
Aside from the built-in unit tests, CUPS includes an automated test framework
for testing the entire printing system. To run the tests, just type:
make check ENTER
or if you have FreeBSD, NetBSD, or OpenBSD type:
gmake check ENTER
The test framework runs a copy of the CUPS scheduler (cupsd) on port 8631 in
/tmp/cups-$USER and produces a nice HTML report of the results.
INSTALLING THE SOFTWARE
-----------------------
Once you have built the software you need to install it. The "install" target
provides a quick way to install the software on your local system:
make install ENTER
or for FreeBSD, NetBSD, or OpenBSD:
gmake install ENTER
Use the BUILDROOT variable to install to an alternate root directory:
make BUILDROOT=/some/other/root/directory install ENTER
You can also build binary packages that can be installed on other machines using
the RPM spec file ("packaging/cups.spec") or EPM list file
("packaging/cups.list"). The latter also supports building of binary RPMs, so
it may be more convenient to use.
You can find the RPM software at:
http://www.rpm.org/
The EPM software is available at:
https://michaelrsweet.github.io/epm
CREATING BINARY DISTRIBUTIONS WITH EPM
--------------------------------------
The top level makefile supports generation of many types of binary distributions
using EPM. To build a binary distribution type:
make <format> ENTER
or
gmake <format> ENTER
for FreeBSD, NetBSD, and OpenBSD. The <format> target is one of the following:
- "epm": Builds a script + tarfile package
- "bsd": Builds a *BSD package
- "deb": Builds a Debian package
- "pkg": Builds a Solaris package
- "rpm": Builds a RPM package
- "slackware": Build a Slackware package
GETTING DEBUG LOGGING FROM CUPS
-------------------------------
When configured with the `--enable-debug-printfs` option, CUPS compiles in
additional debug logging support in the scheduler, CUPS API, and CUPS Imaging
API. The following environment variables are used to enable and control debug
logging:
- `CUPS_DEBUG_FILTER`: Specifies a POSIX regular expression to control which
messages are logged.
- `CUPS_DEBUG_LEVEL`: Specifies a number from 0 to 9 to control the verbosity of
the logging. The default level is 1.
- `CUPS_DEBUG_LOG`: Specifies a log file to use. Specify the name "-" to send
the messages to stderr. Prefix a filename with "+" to append to an existing
file. You can include a single "%d" in the filename to embed the current
process ID.
REPORTING PROBLEMS
------------------
If you have problems, *read the documentation first*! If the documentation does
not solve your problems, please post a message on the users forum at:
https://www.cups.org/
Include your operating system and version, compiler and version, and any errors
or problems you've run into. The "config.log" file and the output from the
configure script and make should also be sent, as it often helps to determine
the cause of your problem.
If you are running a version of Linux, be sure to provide the Linux distribution
you have, too.
+202
Ver Arquivo
@@ -0,0 +1,202 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-386
Ver Arquivo
@@ -1,386 +0,0 @@
<HTML>
<HEAD>
<TITLE>Software License Agreement - Common UNIX Printing System</TITLE>
</HEAD>
<BODY BGCOLOR=#ffffff>
<H2 ALIGN="CENTER">Common UNIX Printing System License Agreement</H2>
<P ALIGN="CENTER">Copyright 1997-1999 by Easy Software Products<BR>
44141 AIRPORT VIEW DR STE 204<BR>
HOLLYWOOD, MARYLAND 20636-3111 USA<BR>
<BR>
Voice: +1.301.373.9603<BR>
Email: cups-info@cups.org<BR>
WWW: http://www.cups.org
<H3>Introduction</H3>
<P>The Common UNIX Printing System<SUP>TM</SUP>, or CUPS<SUP>TM</SUP>,
is provided under the GNU General Public License, Version 2. A copy of
this license follows this introduction.
<P>For those not familiar with the GNU General Public License, the license
basically allows you to:
<UL>
<LI>Use the CUPS software at no charge.
<LI>Distribute verbatim copies of the software in source or
binary form.
<LI>Sell verbatim copies of the software for a media fee, or
sell support for the software.
<LI>Distribute or sell printer drivers and filters that use the
CUPS API so long as source code is made available under the GPL.
</UL>
<P>What this license <B>does not</B> allow you to do is make changes or
add features to CUPS and then sell a binary distribution without source
code. You have to provide source for any new drivers, changes, or
additions to the software, and all code must be provided under the GPL.
<P>Also, since we have trademarked the Common UNIX Printing System, CUPS,
and CUPS logo, you may not release a derivative product using those names
without permission from Easy Software Products.
<H3>Binary Distribution Rights</H3>
<P>Easy Software Products also sells rights to the CUPS source code
under a binary distribution license for vendors that are unable to
release source code for their drivers or additions and modifications to
CUPS under the GPL. For pricing information please contact us at the
address shown above.
<P>The Common UNIX Printing System utilizes GNU GhostScript 4.03 to
convert PostScript files into a stream of raster images. For binary
distribution licensing of this software, please contact:
<BLOCKQUOTE>Miles Jones<BR>
Director of Marketing<BR>
Artifex Software Inc.<BR>
454 Las Gallinas Ave., Suite 108<BR>
San Rafael, CA 94903 USA<BR>
Voice: +1.415.492.9861<BR>
Fax: +1.415.492.9862<BR>
EMail: info@arsoft.com
</BLOCKQUOTE>
<H3>Support</H3>
<P>Easy Software Products sells software support for distributors and
resellers of CUPS. Support for users of CUPS is available from Easy
Software Products through our ESP Print software.
<H3>Trademarks</H3>
<P>The Common UNIX Printing System, CUPS, and the CUPS logo are the
trademark property of Easy Software Products. Any derivative of this
software may not use any of these trademarks without the expressed
written consent of Easy Software Products.
<H2 ALIGN="CENTER">GNU General Public License</H2>
<P ALIGN="CENTER">Version 2, June 1991<BR>
<BR>
Copyright 1989, 1991 Free Software Foundation, Inc.<BR>
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
<P ALIGN="CENTER">Everyone is permitted to copy and distribute verbatim
copies of this license document, but changing it is not allowed.
<H3>Preamble</H3>
<P>The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
<P>When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
<P>To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
<P>For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
<P>We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
<P>Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
<P>Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
<P>The precise terms and conditions for copying, distribution and
modification follow.
<H3>GNU GENERAL PUBLIC LICENSE<BR>
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION</H3>
<OL START="0">
<LI>This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
<P>Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
<LI>You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
<P>You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
<LI>You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
<OL TYPE="a">
<LI>You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
<LI>You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
<LI>if the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
</OL>
<P>These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
<P>Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
<P>In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
<LI>You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
<OL TYPE="a">
<LI>Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
<LI>Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
<LI>Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
</OL>
<P>The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
<P>If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
<LI>You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
<LI>You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
<LI>Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
<LI>If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
<P>If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
<P>It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
<P>This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
<LI>If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
<LI>The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
<P>Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
<LI>If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
</OL>
<H3>NO WARRANTY</H3>
<OL START="11">
<LI>BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
<LI>IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
</OL>
<H3>END OF TERMS AND CONDITIONS</H3>
</BODY>
</HTML>
+222 -76
Ver Arquivo
@@ -1,84 +1,181 @@
#
# "$Id$"
# Common makefile definitions for CUPS.
#
# Common makefile definitions for the Common UNIX Printing System (CUPS).
# Copyright © 2007-2018 by Apple Inc.
# Copyright © 1997-2007 by Easy Software Products, all rights reserved.
#
# @configure_input@
# Licensed under Apache License v2.0. See the file "LICENSE" for more
# information.
#
# Copyright 1997-1999 by Easy Software Products, all rights reserved.
#
# These coded instructions, statements, and computer programs are the
# property of Easy Software Products and are protected by Federal
# copyright law. Distribution and use rights are outlined in the file
# "LICENSE.txt" which should have been included with this file. If this
# file is missing or damaged please contact Easy Software Products
# at:
#
# Attn: CUPS Licensing Information
# Easy Software Products
# 44141 Airport View Drive, Suite 204
# Hollywood, Maryland 20636-3111 USA
#
# Voice: (301) 373-9603
# EMail: cups-info@cups.org
# WWW: http://www.cups.org
# CUPS version...
#
CUPS_VERSION = @CUPS_VERSION@
#
# Programs...
#
AR = @AR@
AWK = @AWK@
CC = @CC@
CHMOD = @CHMOD@
CP = @CP@
DSO = @DSO@
HTMLDOC = @HTMLDOC@
LN = /bin/ln -sf
MKDIR = @MKDIR@ -p
NROFF = @NROFF@
PACK = @PACK@
RANLIB = @RANLIB@
RM = @RM@ -f
SED = @SED@
SHELL = /bin/sh
SMBCLIENT = @SMBCLIENT@
AR = @AR@
AWK = @AWK@
CC = @LIBTOOL_CC@ @CC@
CHMOD = @CHMOD@
CXX = @LIBTOOL_CXX@ @CXX@
DSO = @DSO@
DSOXX = @DSOXX@
GZIP = @GZIP@
INSTALL = @INSTALL@
LD = @LD@
LD_CC = @LD_CC@
LD_CXX = @LD_CXX@
LIBTOOL = @LIBTOOL@
LN = @LN@ -sf
MKDIR = @MKDIR@ -p
MV = @MV@
RANLIB = @RANLIB@
RM = @RM@ -f
RMDIR = @RMDIR@
SED = @SED@
SHELL = /bin/sh
#
# Installation programs...
#
INSTALL_BIN = @LIBTOOL_INSTALL@ $(INSTALL) -c -m @CUPS_EXE_FILE_PERM@ @INSTALL_STRIP@
INSTALL_COMPDATA = $(INSTALL) -c -m 444 @INSTALL_GZIP@
INSTALL_CONFIG = $(INSTALL) -c -m @CUPS_CONFIG_FILE_PERM@
INSTALL_DATA = $(INSTALL) -c -m 444
INSTALL_DIR = $(INSTALL) -d
INSTALL_LIB = @LIBTOOL_INSTALL@ $(INSTALL) -c -m @CUPS_EXE_FILE_PERM@ @INSTALL_STRIP@
INSTALL_MAN = $(INSTALL) -c -m 444
INSTALL_SCRIPT = $(INSTALL) -c -m @CUPS_EXE_FILE_PERM@
#
# Default user, group, and system groups for the scheduler...
#
CUPS_USER = @CUPS_USER@
CUPS_GROUP = @CUPS_GROUP@
CUPS_SYSTEM_GROUPS = @CUPS_SYSTEM_GROUPS@
CUPS_PRIMARY_SYSTEM_GROUP = @CUPS_PRIMARY_SYSTEM_GROUP@
#
# Default permissions...
#
CUPS_CONFIG_FILE_PERM = @CUPS_CONFIG_FILE_PERM@
CUPS_CUPSD_FILE_PERM = @CUPS_CUPSD_FILE_PERM@
CUPS_LOG_FILE_PERM = @CUPS_LOG_FILE_PERM@
#
# Languages to install...
#
LANGUAGES = @LANGUAGES@
INSTALL_LANGUAGES = @INSTALL_LANGUAGES@
UNINSTALL_LANGUAGES = @UNINSTALL_LANGUAGES@
#
# Cross-compilation support: "local" target is used for any tools that are
# built and run locally.
#
LOCALTARGET = @LOCALTARGET@
#
# Libraries...
#
LIBCUPS = @LIBCUPS@
LIBCUPSIMAGE = @LIBCUPSIMAGE@
LIBJPEG = @LIBJPEG@
LIBPNG = @LIBPNG@
LIBTIFF = @LIBTIFF@
LIBZ = @LIBZ@
LIBCUPS = @LIBCUPS@
LIBCUPSIMAGE = @LIBCUPSIMAGE@
LIBCUPSOBJS = @LIBCUPSOBJS@
LIBCUPSSTATIC = @LIBCUPSSTATIC@
LIBGSSAPI = @LIBGSSAPI@
LIBMALLOC = @LIBMALLOC@
LIBMXML = @LIBMXML@
LIBPAPER = @LIBPAPER@
LIBUSB = @LIBUSB@
LIBWRAP = @LIBWRAP@
LIBZ = @LIBZ@
#
# Install static libraries?
#
INSTALLSTATIC = @INSTALLSTATIC@
#
# IPP backend aliases...
#
IPPALIASES = @IPPALIASES@
#
# Install XPC backends?
#
INSTALLXPC = @INSTALLXPC@
#
# Code signing...
#
CODE_SIGN = @CODE_SIGN@
CODE_SIGN_IDENTITY = -
#
# Program options...
#
# OPTIM defines the common compiler optimization/debugging options.
# OPTIONS defines other compile-time options (currently only -dDEBUG for
# extra debug info)
# ARCHFLAGS Defines the default architecture build options.
# OPTIM Defines the common compiler optimization/debugging options
# for all architectures.
# OPTIONS Defines other compile-time options (currently only -DDEBUG
# for extra debug info)
#
ARFLAGS = crvs
CFLAGS = @CFLAGS@ $(OPTIM) -I.. $(OPTIONS)
DSOLIBS = @DSOLIBS@
IMGLIBS = @IMGLIBS@ -lm
LDFLAGS = @LDFLAGS@ $(OPTIM)
LIBS = -L../cups -lcups $(NETLIBS) @LIBS@
NETLIBS = @NETLIBS@
OPTIM = @OPTIM@
OPTIONS =
ALL_CFLAGS = -I.. -D_CUPS_SOURCE $(CFLAGS) \
$(SSLFLAGS) @LARGEFILE@ @PTHREAD_FLAGS@ \
$(ONDEMANDFLAGS) $(OPTIONS)
ALL_CXXFLAGS = -I.. -D_CUPS_SOURCE $(CXXFLAGS) \
$(SSLFLAGS) @LARGEFILE@ @PTHREAD_FLAGS@ \
$(ONDEMANDFLAGS) $(OPTIONS)
ARCHFLAGS = @ARCHFLAGS@
ARFLAGS = @ARFLAGS@
BACKLIBS = @BACKLIBS@
BUILDDIRS = @BUILDDIRS@
CFLAGS = @CPPFLAGS@ @CFLAGS@
COMMONLIBS = @LIBS@
CXXFLAGS = @CPPFLAGS@ @CXXFLAGS@
CXXLIBS = @CXXLIBS@
DBUS_NOTIFIER = @DBUS_NOTIFIER@
DBUS_NOTIFIERLIBS = @DBUS_NOTIFIERLIBS@
DNSSD_BACKEND = @DNSSD_BACKEND@
DSOFLAGS = -L../cups @ARCHFLAGS@ @LDFLAGS@ @RELROFLAGS@ \
@DSOFLAGS@ $(OPTIM)
DSOLIBS = @DSOLIBS@ $(COMMONLIBS)
DNSSDLIBS = @DNSSDLIBS@
IPPFIND_BIN = @IPPFIND_BIN@
IPPFIND_MAN = @IPPFIND_MAN@
LDFLAGS = -L../cups @LDARCHFLAGS@ @LDFLAGS@ @RELROFLAGS@ \
@PIEFLAGS@ $(OPTIM)
LINKCUPS = @LINKCUPS@ $(LIBGSSAPI) $(DNSSDLIBS) $(SSLLIBS) $(LIBZ)
LINKCUPSIMAGE = @LINKCUPSIMAGE@
LIBS = $(LINKCUPS) $(COMMONLIBS)
ONDEMANDFLAGS = @ONDEMANDFLAGS@
ONDEMANDLIBS = @ONDEMANDLIBS@
OPTIM = @OPTIM@
OPTIONS = @WARNING_OPTIONS@
PAMLIBS = @PAMLIBS@
SERVERLIBS = @SERVERLIBS@
SSLFLAGS = @SSLFLAGS@
SSLLIBS = @SSLLIBS@
UNITTESTS = @UNITTESTS@
#
# Formatted man page extension...
#
CAT = @CAT@
#
# Directories...
@@ -88,12 +185,16 @@ CAT = @CAT@
# We have to define these first because autoconf uses ${prefix}
# and ${exec_prefix} for most of the other directories...
#
# The "datarootdir" variable may not get defined if you are using
# a version of autoconf prior to 2.60.
#
# This is immediately followed by definition in ALL CAPS for the
# needed directories...
#
bindir = @bindir@
datadir = @datadir@
datarootdir = @datarootdir@
exec_prefix = @exec_prefix@
includedir = @includedir@
infodir = @infodir@
@@ -103,36 +204,81 @@ localstatedir = @localstatedir@
mandir = @mandir@
oldincludedir = @oldincludedir@
prefix = @prefix@
privateinclude = @privateinclude@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
top_srcdir = @top_srcdir@
BINDIR = @bindir@
DATADIR = @CUPS_DATADIR@
INCLUDEDIR = $(includedir)
LIBDIR = $(libdir)
LOCALEDIR = @CUPS_LOCALEDIR@
MANDIR = @mandir@
SBINDIR = @sbindir@
SERVERROOT = @CUPS_SERVERROOT@
BUILDROOT = $(DSTROOT)
AMANDIR = $(BUILDROOT)@AMANDIR@
BINDIR = $(BUILDROOT)@bindir@
BUNDLEDIR = @CUPS_BUNDLEDIR@
CACHEDIR = $(BUILDROOT)@CUPS_CACHEDIR@
DATADIR = $(BUILDROOT)@CUPS_DATADIR@
DOCDIR = $(BUILDROOT)@CUPS_DOCROOT@
ICONDIR = @ICONDIR@
INCLUDEDIR = $(BUILDROOT)$(includedir)
LIBDIR = $(BUILDROOT)$(libdir)
LOCALEDIR = $(BUILDROOT)@CUPS_LOCALEDIR@
LOGDIR = $(BUILDROOT)@CUPS_LOGDIR@
MANDIR = $(BUILDROOT)@mandir@
MENUDIR = @MENUDIR@
PMANDIR = $(BUILDROOT)@PMANDIR@
PRIVATEINCLUDE = $(BUILDROOT)@PRIVATEINCLUDE@
RCLEVELS = @RCLEVELS@
RCSTART = @RCSTART@
RCSTOP = @RCSTOP@
REQUESTS = $(BUILDROOT)@CUPS_REQUESTS@
RESOURCEDIR = @CUPS_RESOURCEDIR@
SBINDIR = $(BUILDROOT)@sbindir@
SERVERBIN = $(BUILDROOT)@CUPS_SERVERBIN@
SERVERROOT = $(BUILDROOT)@CUPS_SERVERROOT@
STATEDIR = $(BUILDROOT)@CUPS_STATEDIR@
MAN1EXT = @MAN1EXT@
MAN5EXT = @MAN5EXT@
MAN7EXT = @MAN7EXT@
MAN8EXT = @MAN8EXT@
MAN8DIR = @MAN8DIR@
PAMDIR = @PAMDIR@
PAMFILE = @PAMFILE@
DBUSDIR = @DBUSDIR@
INITDIR = @INITDIR@
INITDDIR = @INITDDIR@
LAUNCHD_DIR = @LAUNCHD_DIR@
SMFMANIFESTDIR = @SMFMANIFESTDIR@
SYSTEMD_DIR = @SYSTEMD_DIR@
XINETD = @XINETD@
USBQUIRKS = @USBQUIRKS@
#
# Rules...
#
.SILENT:
.SUFFIXES: .a .c .gz .h .o .z .1 .5 .8
.SUFFIXES: .1 .1.gz .1m .1m.gz .3 .3.gz .5 .5.gz .7 .7.gz .8 .8.gz .a .c .cxx .h .man .o .gz
.c.o:
echo Compiling $<...
$(CC) $(CFLAGS) -c $<
.1.z .5.z .8.z .1.gz .5.gz .8.gz:
echo Formatting $<...
$(NROFF) -man $< >t
$(PACK) t
-mv t.$(CAT) $@
$(CC) $(ARCHFLAGS) $(OPTIM) $(ALL_CFLAGS) -c -o $@ $<
#
# End of "$Id$"
#
.cxx.o:
echo Compiling $<...
$(CXX) $(ARCHFLAGS) $(OPTIM) $(ALL_CXXFLAGS) -c -o $@ $<
.man.1 .man.1m .man.3 .man.5 .man.7 .man.8:
echo Linking $<...
$(RM) $@
$(LN) $< $@
.man.1.gz .man.1m.gz .man.3.gz .man.5.gz .man.7.gz .man.8.gz .man.gz:
echo -n Compressing $<...
$(RM) $@
gzip -v9 <$< >$@
+294 -38
Ver Arquivo
@@ -1,46 +1,81 @@
#
# "$Id$"
# Top-level Makefile for CUPS.
#
# Top-level Makefile for the Common UNIX Printing System (CUPS).
# Copyright © 2007-2018 by Apple Inc.
# Copyright © 1997-2007 by Easy Software Products, all rights reserved.
#
# Copyright 1997-1999 by Easy Software Products, all rights reserved.
#
# These coded instructions, statements, and computer programs are the
# property of Easy Software Products and are protected by Federal
# copyright law. Distribution and use rights are outlined in the file
# "LICENSE.txt" which should have been included with this file. If this
# file is missing or damaged please contact Easy Software Products
# at:
#
# Attn: CUPS Licensing Information
# Easy Software Products
# 44141 Airport View Drive, Suite 204
# Hollywood, Maryland 20636-3111 USA
#
# Voice: (301) 373-9603
# EMail: cups-info@cups.org
# WWW: http://www.cups.org
# Licensed under Apache License v2.0. See the file "LICENSE" for more
# information.
#
include Makedefs
#
# Directories to make...
#
DIRS = cups backend berkeley cgi-bin filter man pstoraster \
scheduler systemv
DIRS = cups $(BUILDDIRS)
#
# Make all targets...
#
all:
chmod +x cups-config
echo Using ARCHFLAGS="$(ARCHFLAGS)"
echo Using ALL_CFLAGS="$(ALL_CFLAGS)"
echo Using ALL_CXXFLAGS="$(ALL_CXXFLAGS)"
echo Using CC="$(CC)"
echo Using CXX="$(CC)"
echo Using DSOFLAGS="$(DSOFLAGS)"
echo Using LDFLAGS="$(LDFLAGS)"
echo Using LIBS="$(LIBS)"
for dir in $(DIRS); do\
echo Making all in $$dir... ;\
(cd $$dir; make);\
(cd $$dir ; $(MAKE) $(MFLAGS) all $(UNITTESTS)) || exit 1;\
done
#
# Make library targets...
#
libs:
echo Using ARCHFLAGS="$(ARCHFLAGS)"
echo Using ALL_CFLAGS="$(ALL_CFLAGS)"
echo Using ALL_CXXFLAGS="$(ALL_CXXFLAGS)"
echo Using CC="$(CC)"
echo Using CXX="$(CC)"
echo Using DSOFLAGS="$(DSOFLAGS)"
echo Using LDFLAGS="$(LDFLAGS)"
echo Using LIBS="$(LIBS)"
for dir in $(DIRS); do\
echo Making libraries in $$dir... ;\
(cd $$dir ; $(MAKE) $(MFLAGS) libs) || exit 1;\
done
#
# Make unit test targets...
#
unittests:
echo Using ARCHFLAGS="$(ARCHFLAGS)"
echo Using ALL_CFLAGS="$(ALL_CFLAGS)"
echo Using ALL_CXXFLAGS="$(ALL_CXXFLAGS)"
echo Using CC="$(CC)"
echo Using CXX="$(CC)"
echo Using DSOFLAGS="$(DSOFLAGS)"
echo Using LDFLAGS="$(LDFLAGS)"
echo Using LIBS="$(LIBS)"
for dir in $(DIRS); do\
echo Making all in $$dir... ;\
(cd $$dir ; $(MAKE) $(MFLAGS) unittests) || exit 1;\
done
#
# Remove object and target files...
#
@@ -48,29 +83,250 @@ all:
clean:
for dir in $(DIRS); do\
echo Cleaning in $$dir... ;\
(cd $$dir; make clean);\
(cd $$dir; $(MAKE) $(MFLAGS) clean) || exit 1;\
done
#
# Install object and target files...
# Remove all non-distribution files...
#
install:
distclean: clean
$(RM) Makedefs config.h config.log config.status
$(RM) conf/cups-files.conf conf/cupsd.conf conf/mime.convs conf/pam.std conf/snmp.conf
$(RM) cups-config
$(RM) data/testprint
$(RM) desktop/cups.desktop
$(RM) doc/index.html
$(RM) man/client.conf.man man/cups-files.conf.man man/cups-lpd.man man/cups-snmp.man man/cupsaddsmb.man man/cupsd.conf.man man/cupsd.man man/lpoptions.man
$(RM) packaging/cups.list
$(RM) scheduler/cups-lpd.xinetd scheduler/cups.sh scheduler/cups.xml scheduler/org.cups.cups-lpd.plist scheduler/org.cups.cups-lpdAT.service scheduler/org.cups.cupsd.path scheduler/org.cups.cupsd.service scheduler/org.cups.cupsd.socket
$(RM) templates/header.tmpl
-$(RM) doc/*/index.html
-$(RM) templates/*/header.tmpl
-$(RM) -r autom4te*.cache clang cups/charmaps cups/locale
#
# Make dependencies
#
depend:
for dir in $(DIRS); do\
echo Installing in $$dir... ;\
(cd $$dir; make install);\
echo Making dependencies in $$dir... ;\
(cd $$dir; $(MAKE) $(MFLAGS) depend) || exit 1;\
done
echo Installing in conf...
(cd conf; make install)
echo Installing in data...
(cd data; make install)
echo Installing in doc...
(cd doc; make install)
echo Installing in fonts...
(cd fonts; make install)
echo Installing in ppd...
(cd ppd; make install)
#
# End of "$Id$".
# Run the Clang static code analysis tool on the sources, available here:
#
# http://clang-analyzer.llvm.org
#
# At least checker-231 is required.
#
# Alternatively, use "--analyze -Xanalyzer -analyzer-output=text" for OPTIM (text
# output instead of HTML...)
#
.PHONY: clang clang-changes
clang:
$(RM) -r clang
scan-build -V -k -o `pwd`/clang $(MAKE) $(MFLAGS) clean all
clang-changes:
scan-build -V -k -o `pwd`/clang $(MAKE) $(MFLAGS) all
#
# Run the STACK tool on the sources, available here:
#
# http://css.csail.mit.edu/stack/
#
# Do the following to pass options to configure:
#
# make CONFIGFLAGS="--foo --bar" stack
#
.PHONY: stack
stack:
stack-build ./configure $(CONFIGFLAGS)
stack-build $(MAKE) $(MFLAGS) clean all
poptck
$(MAKE) $(MFLAGS) distclean
$(RM) */*.ll
$(RM) */*.ll.out
#
# Generate a ctags file...
#
ctags:
ctags -R .
#
# Install everything...
#
install: install-data install-headers install-libs install-exec
#
# Install data files...
#
install-data:
echo Making all in cups...
(cd cups; $(MAKE) $(MFLAGS) all)
for dir in $(DIRS); do\
echo Installing data files in $$dir... ;\
(cd $$dir; $(MAKE) $(MFLAGS) install-data) || exit 1;\
done
echo Installing cups-config script...
$(INSTALL_DIR) -m 755 $(BINDIR)
$(INSTALL_SCRIPT) cups-config $(BINDIR)/cups-config
#
# Install header files...
#
install-headers:
for dir in $(DIRS); do\
echo Installing header files in $$dir... ;\
(cd $$dir; $(MAKE) $(MFLAGS) install-headers) || exit 1;\
done
if test "x$(privateinclude)" != x; then \
echo Installing config.h into $(PRIVATEINCLUDE)...; \
$(INSTALL_DIR) -m 755 $(PRIVATEINCLUDE); \
$(INSTALL_DATA) config.h $(PRIVATEINCLUDE)/config.h; \
fi
#
# Install programs...
#
install-exec: all
for dir in $(DIRS); do\
echo Installing programs in $$dir... ;\
(cd $$dir; $(MAKE) $(MFLAGS) install-exec) || exit 1;\
done
#
# Install libraries...
#
install-libs: libs
for dir in $(DIRS); do\
echo Installing libraries in $$dir... ;\
(cd $$dir; $(MAKE) $(MFLAGS) install-libs) || exit 1;\
done
#
# Uninstall object and target files...
#
uninstall:
for dir in $(DIRS); do\
echo Uninstalling in $$dir... ;\
(cd $$dir; $(MAKE) $(MFLAGS) uninstall) || exit 1;\
done
echo Uninstalling cups-config script...
$(RM) $(BINDIR)/cups-config
-$(RMDIR) $(BINDIR)
#
# Run the test suite...
#
test: all unittests
echo Running CUPS test suite...
cd test; ./run-stp-tests.sh
check: all unittests
echo Running CUPS test suite with defaults...
cd test; ./run-stp-tests.sh 1 0 n n
debugcheck: all unittests
echo Running CUPS test suite with debug printfs...
cd test; ./run-stp-tests.sh 1 0 n y
#
# Create HTML documentation using Mini-XML's mxmldoc (http://www.msweet.org/)...
#
apihelp:
for dir in cups filter; do\
echo Generating API help in $$dir... ;\
(cd $$dir; $(MAKE) $(MFLAGS) apihelp) || exit 1;\
done
#
# Create an Xcode docset using Mini-XML's mxmldoc (http://www.msweet.org/)...
#
docset: apihelp
echo Generating docset directory tree...
$(RM) -r org.cups.docset
mkdir -p org.cups.docset/Contents/Resources/Documentation/help
mkdir -p org.cups.docset/Contents/Resources/Documentation/images
cd man; $(MAKE) $(MFLAGS) html
cd doc; $(MAKE) $(MFLAGS) docset
cd cgi-bin; $(MAKE) $(MFLAGS) makedocset
cgi-bin/makedocset org.cups.docset \
`svnversion . | sed -e '1,$$s/[a-zA-Z]//g'` \
doc/help/api-*.tokens
$(RM) doc/help/api-*.tokens
echo Indexing docset...
/Applications/Xcode.app/Contents/Developer/usr/bin/docsetutil index org.cups.docset
echo Generating docset archive and feed...
$(RM) org.cups.docset.atom
/Applications/Xcode.app/Contents/Developer/usr/bin/docsetutil package --output org.cups.docset.xar \
--atom org.cups.docset.atom \
--download-url http://www.cups.org/org.cups.docset.xar \
org.cups.docset
#
# Lines of code computation...
#
sloc:
for dir in cups scheduler; do \
(cd $$dir; $(MAKE) $(MFLAGS) sloc) || exit 1;\
done
#
# Make software distributions using EPM (http://www.msweet.org/)...
#
EPMFLAGS = -v --output-dir dist $(EPMARCH)
bsd deb epm pkg rpm slackware:
epm $(EPMFLAGS) -f $@ cups packaging/cups.list
.PHONY: dist
dist: all
$(RM) -r dist
$(MAKE) $(MFLAGS) epm
case `uname` in \
*BSD*) $(MAKE) $(MFLAGS) bsd;; \
Linux*) test ! -x /usr/bin/rpm || $(MAKE) $(MFLAGS) rpm;; \
SunOS*) $(MAKE) $(MFLAGS) pkg;; \
esac
#
# Don't run top-level build targets in parallel...
#
.NOTPARALLEL:
+34
Ver Arquivo
@@ -0,0 +1,34 @@
CUPS
Copyright © 2007-2018 by Apple Inc.
Copyright © 1997-2007 by Easy Software Products.
CUPS and the CUPS logo are trademarks of Apple Inc.
The MD5 Digest code is Copyright 1999 Aladdin Enterprises.
The Kerberos support code ("KSC") is copyright 2006 by Jelmer Vernooij and is
provided 'as-is', without any express or implied warranty. In no event will the
author or Apple Inc. be held liable for any damages arising from the use of the
KSC.
Sources files containing KSC have the following text at the top of each source
file:
This file contains Kerberos support code, copyright 2006 by Jelmer Vernooij.
The KSC copyright and license apply only to Kerberos-related feature code in
CUPS. Such code is typically conditionally compiled based on the present of the
HAVE_GSSAPI preprocessor definition.
Permission is granted to anyone to use the KSC for any purpose, including
commercial applications, and to alter it and redistribute it freely, subject to
the following restrictions:
1. The origin of the KSC must not be misrepresented; you must not claim that
you wrote the original software. If you use the KSC in a product, an
acknowledgment in the product documentation would be appreciated but is not
required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
+161
Ver Arquivo
@@ -0,0 +1,161 @@
README - CUPS v2.3b7 - 2018-12-14
=================================
Looking for compile instructions? Read the file `INSTALL.md` instead...
INTRODUCTION
------------
CUPS is a standards-based, open source printing system developed by Apple Inc.
for macOS® and other UNIX®-like operating systems. CUPS uses the Internet
Printing Protocol ("IPP") and provides System V and Berkeley command-line
interfaces, a web interface, and a C API to manage printers and print jobs. It
supports printing to both local (parallel, serial, USB) and networked printers,
and printers can be shared from one computer to another, even over the Internet!
Internally, CUPS uses PostScript Printer Description ("PPD") files to describe
printer capabilities and features and a wide variety of generic and device-
specific programs to convert and print many types of files. Sample drivers are
included with CUPS to support many Dymo, EPSON, HP, Intellitech, OKIDATA, and
Zebra printers. Many more drivers are available online and (in some cases) on
the driver CD-ROM that came with your printer.
CUPS is licensed under the Apache License Version 2.0. See the file
"LICENSE" for more information.
READING THE DOCUMENTATION
-------------------------
Once you have installed the software you can access the documentation (and a
bunch of other stuff) online at <http://localhost:631/>.
If you're having trouble getting that far, the documentation is located under
the `doc/help` and `man` directories.
Please read the documentation before asking questions.
GETTING SUPPORT AND OTHER RESOURCES
-----------------------------------
If you have problems, *read the documentation first!* We also provide two
mailing lists which are available at <https://lists.cups.org/mailman/listinfo>.
See the CUPS web site at <https://www.cups.org/> for other resources.
SETTING UP PRINTER QUEUES USING YOUR WEB BROWSER
------------------------------------------------
CUPS includes a web-based administration tool that allows you to manage
printers, classes, and jobs on your server. Open <http://localhost:631/admin/>
in your browser to access the printer administration tools:
*Do not* use the hostname for your machine - it will not work with the default
CUPS configuration. To enable administration access on other addresses, check
the `Allow Remote Administration` box and click on the `Change Settings button.
You will be asked for the administration password (root or any other user in the
sys/system/root/admin/lpadmin group on your system) when performing any
administrative function.
SETTING UP PRINTER QUEUES FROM THE COMMAND-LINE
-----------------------------------------------
CUPS currently uses PPD (PostScript Printer Description) files that describe
printer capabilities and driver programs needed for each printer. The
`everywhere` PPD is used for nearly all modern networks printers sold since
about 2009. For example, the following command creates a print queue for a
printer at address 11.22.33.44:
lpadmin -p printername -E -v ipp://11.22.33.44/ipp/print -m everywhere
CUPS also includes several sample PPD files you can use for "legacy" printers:
Driver PPD Name
----------------------------- ------------------------------
Dymo Label Printers drv:///sample.drv/dymo.ppd
Intellitech Intellibar drv:///sample.drv/intelbar.ppd
EPSON 9-pin Series drv:///sample.drv/epson9.ppd
EPSON 24-pin Series drv:///sample.drv/epson24.ppd
Generic PCL Laser Printer drv:///sample.drv/generpcl.ppd
Generic PostScript Printer drv:///sample.drv/generic.ppd
HP DeskJet Series drv:///sample.drv/deskjet.ppd
HP LaserJet Series drv:///sample.drv/laserjet.ppd
OKIDATA 9-Pin Series drv:///sample.drv/okidata9.ppd
OKIDATA 24-Pin Series drv:///sample.drv/okidat24.ppd
Zebra CPCL Label Printer drv:///sample.drv/zebracpl.ppd
Zebra EPL1 Label Printer drv:///sample.drv/zebraep1.ppd
Zebra EPL2 Label Printer drv:///sample.drv/zebraep2.ppd
Zebra ZPL Label Printer drv:///sample.drv/zebra.ppd
You can run the `lpinfo -m` command to list all of the available drivers:
lpinfo -m
Run the `lpinfo -v` command to list the available printers:
lpinfo -v
Then use the correct URI to add the printer using the `lpadmin` command:
lpadmin -p printername -E -v device-uri -m ppd-name
Current network printers typically use `ipp` or `ipps` URIS:
lpadmin -p printername -E -v ipp://11.22.33.44/ipp/print -m everywhere
lpadmin -p printername -E -v ipps://11.22.33.44/ipp/print -m everywhere
Older network printers typically use `socket` or `lpd` URIs:
lpadmin -p printername -E -v socket://11.22.33.44 -m ppd-name
lpadmin -p printername -E -v lpd://11.22.33.44/ -m ppd-name
The sample drivers provide basic printing capabilities, but generally do not
exercise the full potential of the printers or CUPS. Other drivers provide
greater printing capabilities.
PRINTING FILES
--------------
CUPS provides both the System V `lp` and Berkeley `lpr` commands for printing:
lp filename
lpr filename
Both the `lp` and `lpr` commands support printing options for the driver:
lp -o media=A4 -o resolution=600dpi filename
lpr -o media=A4 -o resolution=600dpi filename
CUPS recognizes many types of images files as well as PDF, PostScript, and text
files, so you can print those files directly rather than through an application.
If you have an application that generates output specifically for your printer
then you need to use the `-oraw` or `-l` options:
lp -o raw filename
lpr -l filename
This will prevent the filters from misinterpreting your print file.
LEGAL STUFF
-----------
Copyright © 2007-2018 by Apple Inc.
Copyright © 1997-2007 by Easy Software Products.
CUPS is provided under the terms of the Apache License, Version 2.0. A copy of
this license can be found in the file `LICENSE`. Additional legal information
is provided in the file `NOTICE`.
Unless required by applicable law or agreed to in writing, software distributed
under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
CONDITIONS OF ANY KIND, either express or implied. See the License for the
specific language governing permissions and limitations under the License.
-195
Ver Arquivo
@@ -1,195 +0,0 @@
README - CUPS v1.0b6 - 07/30/1999
---------------------------------
BETA SOFTWARE BETA SOFTWARE BETA SOFTWARE BETA SOFTWARE BETA SOFTWARE
WARNING - This is a BETA release of CUPS, which means that it may
contain "bugs" that could prevent you from printing. If
you are concerned that this may cause you lost time or
money, please STOP and do not install this software!
BETA SOFTWARE BETA SOFTWARE BETA SOFTWARE BETA SOFTWARE BETA SOFTWARE
INTRODUCTION
The Common UNIX Printing System provides a portable printing layer for
UNIX® operating systems. It has been developed by Easy Software
Products to promote a standard printing solution for all UNIX vendors
and users. CUPS provides the System V and Berkeley command-line
interfaces.
CUPS uses the Internet Printing Protocol (IETF-IPP) as the basis for
managing print jobs and queues. The Line Printer Daemon (LPD,
RFC1179), Server Message Block (SMB), and AppSocket protocols are also
supported with reduced functionality.
CUPS adds network printer browsing and PostScript Printer Description
("PPD")-based printing options to support real world applications under
UNIX.
CUPS also includes a customized version of GNU GhostScript (currently
based off GNU GhostScript 4.03) and an image file RIP that can be used
to support non-PostScript printers.
CUPS is Copyright 1993-1999 by Easy Software Products, All Rights
Reserved. CUPS is currently licensed under the terms of the GNU
General Public License. Please see the license file for details.
SYSTEM REQUIREMENTS
Binary distributions require a minimum of 10MB of free disk space. We
do not recommend using CUPS on a workstation with less than 32MB of RAM
or a PC with less than 16MB of RAM.
If you are installing from source you'll need an ANSI C compiler and
optionally one or more image file support libraries. Complete source
installation instructions can be found in the CUPS System
Administrator's Manual in the files "doc/sam.html" or "doc/sam.pdf".
SOFTWARE REQUIREMENTS
The following operating system software is required to install one of
the binary distributions from Easy Software Products:
- Digital UNIX (aka OSF1 aka Compaq Tru64 UNIX) 4.0 or higher
- HP-UX 10.20 or higher
- IRIX 5.3 or higher
- Linux 2.0.36 with glibc2 or higher (tested with RedHat 5.2)
- Solaris 2.5 or higher (SPARC or Intel)
INSTALLING CUPS
We are currently distributing CUPS binary distributions in TAR format
with installation and removal scripts generated by our ESP Package
Manager (EPM) software, which is also included with the source
distribution.
WARNING: Installing CUPS will overwrite your existing printing system.
Backup files are made by the installation script and restored by the
removal script, so if you experience problems you should be able to
remove the CUPS software to restore your previous configuration.
However, Easy Software Products makes no warranty for this and will not
be liable for any lost revenues, etc.
To install the CUPS software you will need to be logged in as root
(doing an "su" is good enough). Once you are the root user, run the
installation script with:
./cups.install ENTER
After asking you a few yes/no questions the CUPS software will be
installed and the scheduler will be started automatically.
SETTING UP PRINTER QUEUES
CUPS works best with PPD (PostScript Printer Description) files. In a
pinch you can also use System V style printer interface scripts.
Two sample PPD files are provided with this distribution that utilize
the PostScript and image file RIPs and the sample HP printer driver.
To add the sample DeskJet driver to the system for a printer connected
to the parallel port, use one of the following commands:
Digital UNIX:
/usr/lib/lpadmin -p DeskJet -m deskjet.ppd -v parallel:/dev/lp0 -E
HP-UX:
/usr/lib/lpadmin -p DeskJet -m deskjet.ppd -v parallel:/dev/c2t0d0_lp -E
IRIX:
/usr/lib/lpadmin -p DeskJet -m deskjet.ppd -v parallel:/dev/plp -E
Linux:
/usr/lib/lpadmin -p DeskJet -m deskjet.ppd -v parallel:/dev/par0 -E
/usr/lib/lpadmin -p DeskJet -m deskjet.ppd -v parallel:/dev/par1 -E
/usr/lib/lpadmin -p DeskJet -m deskjet.ppd -v parallel:/dev/par2 -E
Solaris:
/usr/lib/lpadmin -p DeskJet -m deskjet.ppd -v parallel:/dev/bpp0 -E
/usr/lib/lpadmin -p DeskJet -m deskjet.ppd -v parallel:/dev/ecpp0 -E
Similarly, for the sample LaserJet driver you can use "LaserJet" and
"laserjet.ppd".
For other printers and interfaces see the CUPS System Administator's
Manual included with this software.
PRINTING FILES
CUPS provides both the System V "lp" and Berkeley "lpr" commands for
printing:
lp filename
lpr filename
Both the "lp" and "lpr" commands support printing options for the
driver:
lp -omedia=A4 -oresolution=600dpi filename
lpr -omedia=A4 -oresolution=600dpi filename
CUPS recognizes many types of images files as well as PostScript, HP-GL/2,
and text files, so you can print those files directly rather than through
an application.
If you have an application that generates output specifically for your
printer then you need to use the "-oraw" or "-l" options:
lp -oraw filename
lpr -l filename
This will prevent the filters from misinterpreting your print file.
REPORTING PROBLEMS
If you have problems, please send an email to cups-support@cups.org.
Include your operating system and version, compiler and version, and
any errors or problems you've run into.
OTHER RESOURCES
See the CUPS web site at "http://www.cups.org" for other site links.
You can subscribe to the CUPS mailing list by sending a message
containing "subscribe cups" to majordomo@cups.org. This list is
provided to discuss problems, questions, and improvements to the CUPS
software. New releases of CUPS are announced to this list as well.
LEGAL STUFF
CUPS is Copyright 1993-1999 by Easy Software Products. CUPS, the CUPS
logo, and the Common UNIX Printing System are the trademark property of
Easy Software Products.
CUPS is provided under the terms of the GNU General Public License
which is located in the files "LICENSE.html" and "LICENSE.txt" (or the
file "cups.license" for a binary distribution.) For commercial
licensing information, please contact:
Attn: CUPS Licensing Information
Easy Software Products
44141 Airport View Drive, Suite 204
Hollywood, Maryland 20636-3111 USA
Voice: +1.301.373.9603
Email: cups-info@cups.org
WWW: http://www.cups.org
If you're interested in a complete, commercial printing solution for
UNIX, check out our ESP Print Pro software at:
http://www.easysw.com/printpro
+72
Ver Arquivo
@@ -0,0 +1,72 @@
ipp.o: ipp.c backend-private.h ../cups/cups-private.h \
../cups/string-private.h ../config.h ../cups/versioning.h \
../cups/array-private.h ../cups/array.h ../cups/ipp-private.h \
../cups/cups.h ../cups/file.h ../cups/ipp.h ../cups/http.h \
../cups/language.h ../cups/pwg.h ../cups/http-private.h \
../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
../cups/thread-private.h ../cups/snmp-private.h ../cups/backend.h \
../cups/sidechannel.h ../cups/ppd-private.h ../cups/ppd.h \
../cups/raster.h
lpd.o: lpd.c ../cups/http-private.h ../config.h ../cups/language.h \
../cups/array.h ../cups/versioning.h ../cups/http.h \
../cups/ipp-private.h ../cups/cups.h ../cups/file.h ../cups/ipp.h \
../cups/pwg.h backend-private.h ../cups/cups-private.h \
../cups/string-private.h ../cups/array-private.h \
../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
../cups/thread-private.h ../cups/snmp-private.h ../cups/backend.h \
../cups/sidechannel.h
dnssd.o: dnssd.c backend-private.h ../cups/cups-private.h \
../cups/string-private.h ../config.h ../cups/versioning.h \
../cups/array-private.h ../cups/array.h ../cups/ipp-private.h \
../cups/cups.h ../cups/file.h ../cups/ipp.h ../cups/http.h \
../cups/language.h ../cups/pwg.h ../cups/http-private.h \
../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
../cups/thread-private.h ../cups/snmp-private.h ../cups/backend.h \
../cups/sidechannel.h
snmp.o: snmp.c backend-private.h ../cups/cups-private.h \
../cups/string-private.h ../config.h ../cups/versioning.h \
../cups/array-private.h ../cups/array.h ../cups/ipp-private.h \
../cups/cups.h ../cups/file.h ../cups/ipp.h ../cups/http.h \
../cups/language.h ../cups/pwg.h ../cups/http-private.h \
../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
../cups/thread-private.h ../cups/snmp-private.h ../cups/backend.h \
../cups/sidechannel.h
socket.o: socket.c ../cups/http-private.h ../config.h ../cups/language.h \
../cups/array.h ../cups/versioning.h ../cups/http.h \
../cups/ipp-private.h ../cups/cups.h ../cups/file.h ../cups/ipp.h \
../cups/pwg.h backend-private.h ../cups/cups-private.h \
../cups/string-private.h ../cups/array-private.h \
../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
../cups/thread-private.h ../cups/snmp-private.h ../cups/backend.h \
../cups/sidechannel.h
test1284.o: test1284.c ../cups/string-private.h ../config.h \
../cups/versioning.h ieee1284.c backend-private.h \
../cups/cups-private.h ../cups/array-private.h ../cups/array.h \
../cups/ipp-private.h ../cups/cups.h ../cups/file.h ../cups/ipp.h \
../cups/http.h ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
../cups/thread-private.h ../cups/snmp-private.h ../cups/backend.h \
../cups/sidechannel.h ../cups/ppd-private.h ../cups/ppd.h \
../cups/raster.h
testbackend.o: testbackend.c ../cups/string-private.h ../config.h \
../cups/versioning.h ../cups/cups.h ../cups/file.h ../cups/ipp.h \
../cups/http.h ../cups/array.h ../cups/language.h ../cups/pwg.h \
../cups/sidechannel.h
testsupplies.o: testsupplies.c backend-private.h ../cups/cups-private.h \
../cups/string-private.h ../config.h ../cups/versioning.h \
../cups/array-private.h ../cups/array.h ../cups/ipp-private.h \
../cups/cups.h ../cups/file.h ../cups/ipp.h ../cups/http.h \
../cups/language.h ../cups/pwg.h ../cups/http-private.h \
../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
../cups/thread-private.h ../cups/snmp-private.h ../cups/backend.h \
../cups/sidechannel.h
usb.o: usb.c backend-private.h ../cups/cups-private.h \
../cups/string-private.h ../config.h ../cups/versioning.h \
../cups/array-private.h ../cups/array.h ../cups/ipp-private.h \
../cups/cups.h ../cups/file.h ../cups/ipp.h ../cups/http.h \
../cups/language.h ../cups/pwg.h ../cups/http-private.h \
../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
../cups/thread-private.h ../cups/snmp-private.h ../cups/backend.h \
../cups/sidechannel.h usb-darwin.c ../cups/debug-private.h \
../cups/file-private.h ../cups/ppd-private.h ../cups/ppd.h \
../cups/raster.h
+270 -65
Ver Arquivo
@@ -1,31 +1,58 @@
#
# "$Id$"
# Backend makefile for CUPS.
#
# Backend makefile for the Common UNIX Printing System (CUPS).
# Copyright 2007-2018 by Apple Inc.
# Copyright 1997-2007 by Easy Software Products, all rights reserved.
#
# Copyright 1997-1999 by Easy Software Products, all rights reserved.
#
# These coded instructions, statements, and computer programs are the
# property of Easy Software Products and are protected by Federal
# copyright law. Distribution and use rights are outlined in the file
# "LICENSE.txt" which should have been included with this file. If this
# file is missing or damaged please contact Easy Software Products
# at:
#
# Attn: CUPS Licensing Information
# Easy Software Products
# 44141 Airport View Drive, Suite 204
# Hollywood, Maryland 20636-3111 USA
#
# Voice: (301) 373-9603
# EMail: cups-info@cups.org
# WWW: http://www.cups.org
# Licensed under Apache License v2.0. See the file "LICENSE" for more information.
#
include ../Makedefs
TARGETS = ipp lpd parallel serial smb socket
OBJS = ipp.o lpd.o parallel.o serial.o socket.o
#
# Object files...
#
# RBACKENDS are installed mode 0700 so cupsd will run them as root...
#
# UBACKENDS and ULBACKENDS are installed mode 0755 so cupsd will run them as
# an unprivileged user...
#
# See http://www.cups.org/doc/api-filter.html for more info...
RBACKENDS = \
ipp \
lpd \
$(DNSSD_BACKEND)
UBACKENDS = \
snmp \
socket
ULBACKENDS = \
usb
UNITTESTS = \
test1284 \
testbackend \
testsupplies
TARGETS = \
libbackend.a \
$(RBACKENDS) \
$(UBACKENDS) \
$(ULBACKENDS)
LIBOBJS = \
ieee1284.o \
network.o \
runloop.o \
snmp-supplies.o
OBJS = \
ipp.o \
lpd.o \
dnssd.o \
snmp.o \
socket.o \
test1284.o \
testbackend.o \
testsupplies.o \
usb.o
#
# Make all targets...
@@ -33,87 +60,265 @@ OBJS = ipp.o lpd.o parallel.o serial.o socket.o
all: $(TARGETS)
#
# Make library targets...
#
libs: $(ULBACKENDS)
#
# Make unit tests...
#
unittests: $(UNITTESTS)
#
# Clean all object files...
#
clean:
rm -f $(OBJS) $(TARGETS)
$(RM) $(OBJS) $(TARGETS) $(UNITTESTS) $(LIBOBJS) http https ipps mdns socket-static
#
# Update dependencies (without system header dependencies...)
#
depend:
$(CC) -MM $(ALL_CFLAGS) $(OBJS:.o=.c) >Dependencies
#
# Install all targets...
#
install:
-$(MKDIR) $(SERVERROOT)/backend
$(CP) $(TARGETS) $(SERVERROOT)/backend
-$(LN) ipp $(SERVERROOT)/backend/http
$(CHMOD) u+s $(SERVERROOT)/backend/lpd
install: all install-data install-headers install-libs install-exec
#
# Install data files...
#
install-data:
if test "x$(USBQUIRKS)" != x; then \
echo Installing USB quirks in $(USBQUIRKS); \
$(INSTALL_DIR) -m 755 $(USBQUIRKS); \
$(INSTALL_DATA) org.cups.usb-quirks $(USBQUIRKS); \
fi
#
# Install programs...
#
install-exec: $(INSTALLXPC)
echo Installing backends in $(SERVERBIN)/backend
$(INSTALL_DIR) -m 755 $(SERVERBIN)/backend
for file in $(RBACKENDS); do \
$(LIBTOOL) $(INSTALL_BIN) -m 700 $$file $(SERVERBIN)/backend; \
done
for file in $(UBACKENDS); do \
$(INSTALL_BIN) $$file $(SERVERBIN)/backend; \
done
for file in $(IPPALIASES); do \
$(RM) $(SERVERBIN)/backend/$$file; \
$(LN) ipp $(SERVERBIN)/backend/$$file; \
done
if test "x$(DNSSD_BACKEND)" != x -a `uname` = Darwin; then \
$(RM) $(SERVERBIN)/backend/mdns; \
$(LN) $(DNSSD_BACKEND) $(SERVERBIN)/backend/mdns; \
fi
if test "x$(SYMROOT)" != "x"; then \
$(INSTALL_DIR) $(SYMROOT); \
for file in $(RBACKENDS) $(UBACKENDS); do \
cp $$file $(SYMROOT); \
dsymutil $(SYMROOT)/$$file; \
done \
fi
install-xpc: ipp
echo Installing XPC backends in $(SERVERBIN)/apple
$(INSTALL_DIR) -m 755 $(SERVERBIN)/apple
$(LIBTOOL) $(INSTALL_BIN) ipp $(SERVERBIN)/apple
for file in $(IPPALIASES); do \
$(RM) $(SERVERBIN)/apple/$$file; \
$(LN) ipp $(SERVERBIN)/apple/$$file; \
done
#
# Install headers...
#
install-headers:
#
# Install libraries...
#
install-libs:
echo Installing backends in $(SERVERBIN)/backend
$(INSTALL_DIR) -m 755 $(SERVERBIN)/backend
for file in $(ULBACKENDS); do \
$(INSTALL_BIN) $$file $(SERVERBIN)/backend; \
done
if test "x$(SYMROOT)" != "x"; then \
$(INSTALL_DIR) $(SYMROOT); \
for file in $(ULBACKENDS); do \
cp $$file $(SYMROOT); \
dsymutil $(SYMROOT)/$$file; \
done \
fi
#
# Uninstall all targets...
#
uninstall:
$(RM) $(SERVERBIN)/apple/ipp
for file in $(IPPALIASES); do \
$(RM) $(SERVERBIN)/apple/$$file; \
done
-$(RMDIR) $(SERVERBIN)/apple
for file in $(RBACKENDS) $(UBACKENDS) $(ULBACKENDS); do \
$(RM) $(SERVERBIN)/backend/$$file; \
done
for file in $(IPPALIASES); do \
$(RM) $(SERVERBIN)/backend/$$file; \
done
-$(RMDIR) $(SERVERBIN)/backend
-$(RMDIR) $(SERVERBIN)
#
# test1284
#
test1284: test1284.o ../cups/$(LIBCUPSSTATIC)
echo Linking $@...
$(LD_CC) $(LDFLAGS) -o test1284 test1284.o ../cups/$(LIBCUPSSTATIC) \
$(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ)
$(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@
#
# testbackend
#
testbackend: testbackend.o ../cups/$(LIBCUPSSTATIC)
echo Linking $@...
$(LD_CC) $(LDFLAGS) -o testbackend testbackend.o ../cups/$(LIBCUPSSTATIC) \
$(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ)
$(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@
#
# testsupplies
#
testsupplies: testsupplies.o libbackend.a ../cups/$(LIBCUPSSTATIC)
echo Linking $@...
$(LD_CC) $(LDFLAGS) -o testsupplies testsupplies.o libbackend.a \
../cups/$(LIBCUPSSTATIC) $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) \
$(COMMONLIBS) $(LIBZ)
$(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@
#
# libbackend.a
#
libbackend.a: $(LIBOBJS)
echo Archiving $@...
$(RM) $@
$(AR) $(ARFLAGS) $@ $(LIBOBJS)
$(RANLIB) $@
#
# dnssd
#
dnssd: dnssd.o ../cups/$(LIBCUPS) libbackend.a
echo Linking $@...
$(LD_CC) $(LDFLAGS) -o dnssd dnssd.o libbackend.a $(LIBS)
$(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@
if test `uname` = Darwin; then \
$(RM) mdns; \
$(LN) dnssd mdns; \
fi
#
# ipp
#
ipp: ipp.o ../cups/$(LIBCUPS)
ipp: ipp.o ../cups/$(LIBCUPS) libbackend.a
echo Linking $@...
$(CC) $(LDFLAGS) -o ipp ipp.o $(LIBS)
-$(LN) ipp http
$(LD_CC) $(LDFLAGS) -o ipp ipp.o libbackend.a $(LIBS)
$(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@
$(RM) http https ipps
for file in $(IPPALIASES); do \
$(LN) ipp $$file; \
done
ipp.o: ../cups/cups.h ../Makedefs
#
# lpd
#
lpd: lpd.o ../cups/$(LIBCUPS)
lpd: lpd.o ../cups/$(LIBCUPS) libbackend.a
echo Linking $@...
$(CC) $(LDFLAGS) -o lpd lpd.o $(LIBS)
$(LD_CC) $(LDFLAGS) -o lpd lpd.o libbackend.a $(LIBS)
$(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@
lpd.o: ../cups/cups.h ../Makedefs
#
# parallel
# snmp
#
parallel: parallel.o ../cups/$(LIBCUPS)
snmp: snmp.o ../cups/$(LIBCUPS) libbackend.a
echo Linking $@...
$(CC) $(LDFLAGS) -o parallel parallel.o $(LIBS)
$(LD_CC) $(LDFLAGS) -o snmp snmp.o libbackend.a $(LIBS)
$(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@
parallel.o: ../cups/cups.h ../Makedefs
#
# serial
#
serial: serial.o ../cups/$(LIBCUPS)
echo Linking $@...
$(CC) $(LDFLAGS) -o serial serial.o $(LIBS)
serial.o: ../cups/cups.h ../Makedefs
#
# smb
#
# Note: reading through these commands is a good way to get a headache... :)
#
smb: smb.sh ../Makedefs
echo Generating $@...
$(RM) smb
sedcmd="1,\$$s/^SMBCLIENT=.\*/SMBCLIENT=`echo $(SMBCLIENT) | sed -e '1,$$s/\\//\\\\\\//g'`/" ;\
$(SED) -e "$$sedcmd" <smb.sh >smb
$(CHMOD) +x smb
#
# socket
#
socket: socket.o ../cups/$(LIBCUPS)
socket: socket.o ../cups/$(LIBCUPS) libbackend.a
echo Linking $@...
$(CC) $(LDFLAGS) -o socket socket.o $(LIBS)
$(LD_CC) $(LDFLAGS) -o socket socket.o libbackend.a $(LIBS)
$(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@
socket-static: socket.o ../cups/$(LIBCUPSSTATIC) libbackend.a
echo Linking $@...
$(LD_CC) $(LDFLAGS) -o socket-static socket.o libbackend.a \
../cups/$(LIBCUPSSTATIC) $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) \
$(COMMONLIBS) $(LIBZ)
$(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@
socket.o: ../cups/cups.h ../Makedefs
#
# End of "$Id$".
# usb
#
usb: usb.o ../cups/$(LIBCUPS) libbackend.a
echo Linking $@...
$(LD_CC) $(ARCHFLAGS) $(LDFLAGS) -o usb usb.o libbackend.a $(LIBUSB) \
$(BACKLIBS) $(LIBS)
$(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@
usb.o: usb.c usb-darwin.c usb-libusb.c usb-unix.c
#
# Dependencies...
#
include Dependencies
+327
Ver Arquivo
@@ -0,0 +1,327 @@
/*
* Backend support definitions for CUPS.
*
* Copyright © 2007-2014 by Apple Inc.
* Copyright © 1997-2007 by Easy Software Products, all rights reserved.
*
* Licensed under Apache License v2.0. See the file "LICENSE" for more
* information.
*/
#ifndef _CUPS_BACKEND_PRIVATE_H_
# define _CUPS_BACKEND_PRIVATE_H_
/*
* Include necessary headers.
*/
# include <cups/cups-private.h>
# include <cups/snmp-private.h>
# include <cups/backend.h>
# include <cups/sidechannel.h>
# include <signal.h>
# ifdef __linux
# include <sys/ioctl.h>
# include <linux/lp.h>
# define IOCNR_GET_DEVICE_ID 1
# define LPIOC_GET_DEVICE_ID(len) _IOC(_IOC_READ, 'P', IOCNR_GET_DEVICE_ID, len)
# include <linux/parport.h>
# include <linux/ppdev.h>
# include <unistd.h>
# include <fcntl.h>
# endif /* __linux */
# ifdef __sun
# ifdef __sparc
# include <sys/ecppio.h>
# else
# include <sys/ioccom.h>
# include <sys/ecppsys.h>
# endif /* __sparc */
# endif /* __sun */
/*
* C++ magic...
*/
# ifdef __cplusplus
extern "C" {
# endif /* __cplusplus */
/*
* OID constants...
*/
/* Host MIB */
#define CUPS_OID_mib2 1,3,6,1,2,1
#define CUPS_OID_system CUPS_OID_mib2,1
#define CUPS_OID_sysLocation CUPS_OID_system,6
#define CUPS_OID_host CUPS_OID_mib2,25
#define CUPS_OID_hrSystem CUPS_OID_host,1
#define CUPS_OID_hrStorage CUPS_OID_host,2
#define CUPS_OID_hrDevice CUPS_OID_host,3
#define CUPS_OID_hrDeviceTable CUPS_OID_hrDevice,2
#define CUPS_OID_hrDeviceEntry CUPS_OID_hrDeviceTable,1
#define CUPS_OID_hrDeviceIndex CUPS_OID_hrDeviceEntry,1
#define CUPS_OID_hrDeviceType CUPS_OID_hrDeviceEntry,2
#define CUPS_OID_hrDeviceDescr CUPS_OID_hrDeviceEntry,3
#define CUPS_OID_hrPrinterTable CUPS_OID_hrDevice,5
#define CUPS_OID_hrPrinterEntry CUPS_OID_hrPrinterTable,1
#define CUPS_OID_hrPrinterStatus CUPS_OID_hrPrinterEntry,1
#define CUPS_OID_hrPrinterDetectedErrorState CUPS_OID_hrPrinterEntry,2
/* Printer MIB */
#define CUPS_OID_printmib CUPS_OID_mib2,43
#define CUPS_OID_prtGeneral CUPS_OID_printmib,5
#define CUPS_OID_prtGeneralTable CUPS_OID_prtGeneral,1
#define CUPS_OID_prtGeneralEntry CUPS_OID_prtGeneralTable,1
#define CUPS_OID_prtGeneralCurrentLocalization CUPS_OID_prtGeneralEntry,2
#define CUPS_OID_prtGeneralPrinterName CUPS_OID_prtGeneralEntry,16
#define CUPS_OID_prtGeneralSerialNumber CUPS_OID_prtGeneralEntry,17
#define CUPS_OID_prtCover CUPS_OID_printmib,6
#define CUPS_OID_prtCoverTable CUPS_OID_prtCover,1
#define CUPS_OID_prtCoverEntry CUPS_OID_prtCoverTable,1
#define CUPS_OID_prtCoverDescription CUPS_OID_prtCoverEntry,2
#define CUPS_OID_prtCoverStatus CUPS_OID_prtCoverEntry,3
#define CUPS_OID_prtLocalization CUPS_OID_printmib,7
#define CUPS_OID_prtLocalizationTable CUPS_OID_prtLocalization,1
#define CUPS_OID_prtLocalizationEntry CUPS_OID_prtLocalizationTable,1
#define CUPS_OID_prtLocalizationCharacterSet CUPS_OID_prtLocalizationEntry,4
#define CUPS_OID_prtMarker CUPS_OID_printmib,10
#define CUPS_OID_prtMarkerTable CUPS_OID_prtMarker,2
#define CUPS_OID_prtMarkerEntry CUPS_OID_prtMarkerTable,1
#define CUPS_OID_prtMarkerLifeCount CUPS_OID_prtMarkerEntry,4
#define CUPS_OID_prtMarkerSupplies CUPS_OID_printmib,11
#define CUPS_OID_prtMarkerSuppliesTable CUPS_OID_prtMarkerSupplies,1
#define CUPS_OID_prtMarkerSuppliesEntry CUPS_OID_prtMarkerSuppliesTable,1
#define CUPS_OID_prtMarkerSuppliesIndex CUPS_OID_prtMarkerSuppliesEntry,1
#define CUPS_OID_prtMarkerSuppliesMarkerIndex CUPS_OID_prtMarkerSuppliesEntry,2
#define CUPS_OID_prtMarkerSuppliesColorantIndex CUPS_OID_prtMarkerSuppliesEntry,3
#define CUPS_OID_prtMarkerSuppliesClass CUPS_OID_prtMarkerSuppliesEntry,4
#define CUPS_OID_prtMarkerSuppliesType CUPS_OID_prtMarkerSuppliesEntry,5
#define CUPS_OID_prtMarkerSuppliesDescription CUPS_OID_prtMarkerSuppliesEntry,6
#define CUPS_OID_prtMarkerSuppliesSupplyUnit CUPS_OID_prtMarkerSuppliesEntry,7
#define CUPS_OID_prtMarkerSuppliesMaxCapacity CUPS_OID_prtMarkerSuppliesEntry,8
#define CUPS_OID_prtMarkerSuppliesLevel CUPS_OID_prtMarkerSuppliesEntry,9
#define CUPS_OID_prtMarkerColorant CUPS_OID_printmib,12
#define CUPS_OID_prtMarkerColorantTable CUPS_OID_prtMarkerColorant,1
#define CUPS_OID_prtMarkerColorantEntry CUPS_OID_prtMarkerColorantTable,1
#define CUPS_OID_prtMarkerColorantIndex CUPS_OID_prtMarkerColorantEntry,1
#define CUPS_OID_prtMarkerColorantMarkerIndex CUPS_OID_prtMarkerColorantEntry,2
#define CUPS_OID_prtMarkerColorantRole CUPS_OID_prtMarkerColorantEntry,3
#define CUPS_OID_prtMarkerColorantValue CUPS_OID_prtMarkerColorantEntry,4
#define CUPS_OID_prtMarkerColorantTonality CUPS_OID_prtMarkerColorantEntry,5
#define CUPS_OID_prtInterpreter CUPS_OID_printmib,15
#define CUPS_OID_prtInterpreterTable CUPS_OID_prtInterpreter,1
#define CUPS_OID_prtInterpreterEntry CUPS_OID_prtInterpreterTable,1
#define CUPS_OID_prtInterpreterLangFamily CUPS_OID_prtInterpreterEntry,2
#define CUPS_OID_prtInterpreterLangLevel CUPS_OID_prtInterpreterEntry,3
/* Printer Port Monitor MIB */
#define CUPS_OID_enterprises 1,3,6,1,4,1
#define CUPS_OID_pwg CUPS_OID_enterprises,2699,1
#define CUPS_OID_ppmMIB CUPS_OID_pwg,2
#define CUPS_OID_ppmMIBObjects CUPS_OID_ppmMIB,1
#define CUPS_OID_ppmGeneral CUPS_OID_ppmMIBObjects,1
#define CUPS_OID_ppmPrinter CUPS_OID_ppmMIBObjects,2
#define CUPS_OID_ppmPrinterTable CUPS_OID_ppmPrinter,1
#define CUPS_OID_ppmPrinterEntry CUPS_OID_ppmPrinterTable,1
#define CUPS_OID_ppmPrinterIndex CUPS_OID_ppmPrinterEntry,1
#define CUPS_OID_ppmPrinterName CUPS_OID_ppmPrinterEntry,2
#define CUPS_OID_ppmPrinterIEEE1284DeviceId CUPS_OID_ppmPrinterEntry,3
#define CUPS_OID_ppmPrinterNumberOfPorts CUPS_OID_ppmPrinterEntry,4
#define CUPS_OID_ppmPrinterPreferredPortIndex CUPS_OID_ppmPrinterEntry,5
#define CUPS_OID_ppmPrinterHrDeviceIndex CUPS_OID_ppmPrinterEntry,6
#define CUPS_OID_ppmPrinterSnmpCommunityName CUPS_OID_ppmPrinterEntry,7
#define CUPS_OID_ppmPrinterSnmpQueryEnabled CUPS_OID_ppmPrinterEntry,8
#define CUPS_OID_ppmPort CUPS_OID_ppmMIBObjects,3
#define CUPS_OID_ppmPortTable CUPS_OID_ppmPort,1
#define CUPS_OID_ppmPortEntry CUPS_OID_ppmPortTable,1
#define CUPS_OID_ppmPortIndex CUPS_OID_ppmPortEntry,1
#define CUPS_OID_ppmPortEnabled CUPS_OID_ppmPortEntry,2
#define CUPS_OID_ppmPortName CUPS_OID_ppmPortEntry,3
#define CUPS_OID_ppmPortServiceNameOrURI CUPS_OID_ppmPortEntry,4
#define CUPS_OID_ppmPortProtocolType CUPS_OID_ppmPortEntry,5
#define CUPS_OID_ppmPortProtocolTargetPort CUPS_OID_ppmPortEntry,6
#define CUPS_OID_ppmPortProtocolAltSourceEnabled CUPS_OID_ppmPortEntry,7
#define CUPS_OID_ppmPortPrtChannelIndex CUPS_OID_ppmPortEntry,8
#define CUPS_OID_ppmPortLprByteCountEnabled CUPS_OID_ppmPortEntry,9
/*
* State constants...
*/
#define CUPS_TC_other 1
#define CUPS_TC_unknown 2
#define CUPS_TC_idle 3
#define CUPS_TC_printing 4
#define CUPS_TC_warmup 5
/* These come from the hrPrinterDetectedErrorState OCTET-STRING */
#define CUPS_TC_lowPaper 0x8000
#define CUPS_TC_noPaper 0x4000
#define CUPS_TC_lowToner 0x2000
#define CUPS_TC_noToner 0x1000
#define CUPS_TC_doorOpen 0x0800
#define CUPS_TC_jammed 0x0400
#define CUPS_TC_offline 0x0200
#define CUPS_TC_serviceRequested 0x0100
#define CUPS_TC_inputTrayMissing 0x0080
#define CUPS_TC_outputTrayMissing 0x0040
#define CUPS_TC_markerSupplyMissing 0x0020
#define CUPS_TC_outputNearFull 0x0010
#define CUPS_TC_outputFull 0x0008
#define CUPS_TC_inputTrayEmpty 0x0004
#define CUPS_TC_overduePreventMaint 0x0002
#define CUPS_TC_prtCoverStatus_coverOpen 3
#define CUPS_TC_prtCoverStatus_coverClosed 4
#define CUPS_TC_prtCoverStatus_interlockOpen 5
#define CUPS_TC_prtCoverStatus_interlockClosed 6
#define CUPS_TC_langPCL 3
#define CUPS_TC_langHPGL 4
#define CUPS_TC_langPJL 5
#define CUPS_TC_langPS 6
#define CUPS_TC_langEscapeP 9
#define CUPS_TC_langCCITT 26
#define CUPS_TC_langLIPS 39
#define CUPS_TC_langTIFF 40
#define CUPS_TC_langPCLXL 47
#define CUPS_TC_langPDF 54
#define CUPS_TC_langJPEG 61
#define CUPS_TC_supplyThatIsConsumed 3
#define CUPS_TC_receptacleThatIsFilled 4
#define CUPS_TC_process 3
#define CUPS_TC_spot 4
#define CUPS_TC_toner 3
#define CUPS_TC_wasteToner 4
#define CUPS_TC_ink 5
#define CUPS_TC_inkCartridge 6
#define CUPS_TC_inkRibbon 7
#define CUPS_TC_wasteInk 8
#define CUPS_TC_opc 9
#define CUPS_TC_developer 10
#define CUPS_TC_fuserOil 11
#define CUPS_TC_solidWax 12
#define CUPS_TC_ribbonWax 13
#define CUPS_TC_wasteWax 14
#define CUPS_TC_fuser 15
#define CUPS_TC_coronaWire 16
#define CUPS_TC_fuserOilWick 17
#define CUPS_TC_cleanerUnit 18
#define CUPS_TC_fuserCleaningPad 19
#define CUPS_TC_transferUnit 20
#define CUPS_TC_tonerCartridge 21
#define CUPS_TC_fuserOiler 22
#define CUPS_TC_water 23
#define CUPS_TC_wasteWater 24
#define CUPS_TC_glueWaterAdditive 25
#define CUPS_TC_wastePaper 26
#define CUPS_TC_bindingSupply 27
#define CUPS_TC_bandingSupply 28
#define CUPS_TC_stitchingWire 29
#define CUPS_TC_shrinkWrap 30
#define CUPS_TC_paperWrap 31
#define CUPS_TC_staples 32
#define CUPS_TC_inserts 33
#define CUPS_TC_covers 34
#define CUPS_TC_tenThousandthsOfInches 3
#define CUPS_TC_micrometers 4
#define CUPS_TC_impressions 7
#define CUPS_TC_sheets 8
#define CUPS_TC_hours 11
#define CUPS_TC_thousandthsOfOunces 12
#define CUPS_TC_tenthsOfGrams 13
#define CUPS_TC_hundrethsOfFluidOunces 14
#define CUPS_TC_tenthsOfMilliliters 15
#define CUPS_TC_feet 16
#define CUPS_TC_meters 17
#define CUPS_TC_items 18
#define CUPS_TC_percent 19
/* These come from RFC 3808 to define character sets we support */
/* Also see http://www.iana.org/assignments/character-sets */
#define CUPS_TC_csASCII 3
#define CUPS_TC_csISOLatin1 4
#define CUPS_TC_csShiftJIS 17
#define CUPS_TC_csUTF8 106
#define CUPS_TC_csUnicode 1000 /* UCS2 BE */
#define CUPS_TC_csUCS4 1001 /* UCS4 BE */
#define CUPS_TC_csUnicodeASCII 1002
#define CUPS_TC_csUnicodeLatin1 1003
#define CUPS_TC_csUTF16BE 1013
#define CUPS_TC_csUTF16LE 1014
#define CUPS_TC_csUTF32 1017
#define CUPS_TC_csUTF32BE 1018
#define CUPS_TC_csUTF32LE 1019
#define CUPS_TC_csWindows31J 2024
/*
* Types...
*/
typedef int (*_cups_sccb_t)(int print_fd, int device_fd, int snmp_fd,
http_addr_t *addr, int use_bc);
/*
* Prototypes...
*/
extern void backendCheckSideChannel(int snmp_fd, http_addr_t *addr);
extern int backendDrainOutput(int print_fd, int device_fd);
extern int backendGetDeviceID(int fd, char *device_id,
int device_id_size,
char *make_model,
int make_model_size,
const char *scheme, char *uri,
int uri_size);
extern int backendGetMakeModel(const char *device_id,
char *make_model,
size_t make_model_size);
extern http_addrlist_t *backendLookup(const char *hostname, int port, int *cancel);
extern int backendNetworkSideCB(int print_fd, int device_fd,
int snmp_fd, http_addr_t *addr,
int use_bc);
extern ssize_t backendRunLoop(int print_fd, int device_fd, int snmp_fd,
http_addr_t *addr, int use_bc,
int update_state, _cups_sccb_t side_cb);
extern int backendSNMPSupplies(int snmp_fd, http_addr_t *addr,
int *page_count,
int *printer_state);
extern int backendWaitLoop(int snmp_fd, http_addr_t *addr,
int use_bc, _cups_sccb_t side_cb);
# ifdef __cplusplus
}
# endif /* __cplusplus */
#endif /* !_CUPS_BACKEND_PRIVATE_H_ */
+1289
Ver Arquivo
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+445
Ver Arquivo
@@ -0,0 +1,445 @@
/*
* IEEE-1284 support functions for CUPS.
*
* Copyright © 2007-2015 by Apple Inc.
* Copyright © 1997-2007 by Easy Software Products, all rights reserved.
*
* Licensed under Apache License v2.0. See the file "LICENSE" for more
* information.
*/
/*
* Include necessary headers.
*/
#include "backend-private.h"
#include <cups/ppd-private.h>
/*
* 'backendGetDeviceID()' - Get the IEEE-1284 device ID string and
* corresponding URI.
*/
int /* O - 0 on success, -1 on failure */
backendGetDeviceID(
int fd, /* I - File descriptor */
char *device_id, /* O - 1284 device ID */
int device_id_size, /* I - Size of buffer */
char *make_model, /* O - Make/model */
int make_model_size, /* I - Size of buffer */
const char *scheme, /* I - URI scheme */
char *uri, /* O - Device URI */
int uri_size) /* I - Size of buffer */
{
#ifdef __APPLE__ /* This function is a no-op */
(void)fd;
(void)device_id;
(void)device_id_size;
(void)make_model;
(void)make_model_size;
(void)scheme;
(void)uri;
(void)uri_size;
return (-1);
#else /* Get the device ID from the specified file descriptor... */
# ifdef __linux
int length; /* Length of device ID info */
int got_id = 0;
# endif /* __linux */
# if defined(__sun) && defined(ECPPIOC_GETDEVID)
struct ecpp_device_id did; /* Device ID buffer */
# endif /* __sun && ECPPIOC_GETDEVID */
char *ptr; /* Pointer into device ID */
/*
* Range check input...
*/
if (!device_id || device_id_size < 32)
{
return (-1);
}
if (make_model)
*make_model = '\0';
if (fd >= 0)
{
/*
* Get the device ID string...
*/
*device_id = '\0';
# ifdef __linux
if (ioctl(fd, LPIOC_GET_DEVICE_ID((unsigned)device_id_size), device_id))
{
/*
* Linux has to implement things differently for every device it seems.
* Since the standard parallel port driver does not provide a simple
* ioctl() to get the 1284 device ID, we have to open the "raw" parallel
* device corresponding to this port and do some negotiation trickery
* to get the current device ID.
*/
if (uri && !strncmp(uri, "parallel:/dev/", 14))
{
char devparport[16]; /* /dev/parportN */
int devparportfd, /* File descriptor for raw device */
mode; /* Port mode */
/*
* Since the Linux parallel backend only supports 4 parallel port
* devices, just grab the trailing digit and use it to construct a
* /dev/parportN filename...
*/
snprintf(devparport, sizeof(devparport), "/dev/parport%s",
uri + strlen(uri) - 1);
if ((devparportfd = open(devparport, O_RDWR | O_NOCTTY)) != -1)
{
/*
* Claim the device...
*/
if (!ioctl(devparportfd, PPCLAIM))
{
fcntl(devparportfd, F_SETFL, fcntl(devparportfd, F_GETFL) | O_NONBLOCK);
mode = IEEE1284_MODE_COMPAT;
if (!ioctl(devparportfd, PPNEGOT, &mode))
{
/*
* Put the device into Device ID mode...
*/
mode = IEEE1284_MODE_NIBBLE | IEEE1284_DEVICEID;
if (!ioctl(devparportfd, PPNEGOT, &mode))
{
/*
* Read the 1284 device ID...
*/
if ((length = read(devparportfd, device_id, (size_t)device_id_size - 1)) >= 2)
{
device_id[length] = '\0';
got_id = 1;
}
}
}
/*
* Release the device...
*/
ioctl(devparportfd, PPRELEASE);
}
close(devparportfd);
}
}
}
else
got_id = 1;
if (got_id)
{
/*
* Extract the length of the device ID string from the first two
* bytes. The 1284 spec says the length is stored MSB first...
*/
length = (int)((((unsigned)device_id[0] & 255) << 8) + ((unsigned)device_id[1] & 255));
/*
* Check to see if the length is larger than our buffer; first
* assume that the vendor incorrectly implemented the 1284 spec,
* and then limit the length to the size of our buffer...
*/
if (length > device_id_size || length < 14)
length = (int)((((unsigned)device_id[1] & 255) << 8) + ((unsigned)device_id[0] & 255));
if (length > device_id_size)
length = device_id_size;
/*
* The length field counts the number of bytes in the string
* including the length field itself (2 bytes). The minimum
* length for a valid/usable device ID is 14 bytes:
*
* <LENGTH> MFG: <MFG> ;MDL: <MDL> ;
* 2 + 4 + 1 + 5 + 1 + 1
*/
if (length < 14)
{
/*
* Can't use this device ID, so don't try to copy it...
*/
device_id[0] = '\0';
got_id = 0;
}
else
{
/*
* Copy the device ID text to the beginning of the buffer and
* nul-terminate.
*/
length -= 2;
memmove(device_id, device_id + 2, (size_t)length);
device_id[length] = '\0';
}
}
else
{
*device_id = '\0';
}
# endif /* __linux */
# if defined(__sun) && defined(ECPPIOC_GETDEVID)
did.mode = ECPP_CENTRONICS;
did.len = device_id_size - 1;
did.rlen = 0;
did.addr = device_id;
if (!ioctl(fd, ECPPIOC_GETDEVID, &did))
{
/*
* Nul-terminate the device ID text.
*/
if (did.rlen < (device_id_size - 1))
device_id[did.rlen] = '\0';
else
device_id[device_id_size - 1] = '\0';
}
# endif /* __sun && ECPPIOC_GETDEVID */
}
/*
* Check whether device ID is valid. Turn line breaks and tabs to spaces and
* reject device IDs with non-printable characters.
*/
for (ptr = device_id; *ptr; ptr ++)
if (_cups_isspace(*ptr))
*ptr = ' ';
else if ((*ptr & 255) < ' ' || *ptr == 127)
{
*device_id = '\0';
break;
}
if (scheme && uri)
*uri = '\0';
if (!*device_id)
return (-1);
/*
* Get the make and model...
*/
if (make_model)
backendGetMakeModel(device_id, make_model, (size_t)make_model_size);
/*
* Then generate a device URI...
*/
if (scheme && uri && uri_size > 32)
{
int num_values; /* Number of keys and values */
cups_option_t *values; /* Keys and values in device ID */
const char *mfg, /* Manufacturer */
*mdl, /* Model */
*sern; /* Serial number */
char temp[256], /* Temporary manufacturer string */
*tempptr; /* Pointer into temp string */
/*
* Get the make, model, and serial numbers...
*/
num_values = _cupsGet1284Values(device_id, &values);
if ((sern = cupsGetOption("SERIALNUMBER", num_values, values)) == NULL)
if ((sern = cupsGetOption("SERN", num_values, values)) == NULL)
sern = cupsGetOption("SN", num_values, values);
if ((mfg = cupsGetOption("MANUFACTURER", num_values, values)) == NULL)
mfg = cupsGetOption("MFG", num_values, values);
if ((mdl = cupsGetOption("MODEL", num_values, values)) == NULL)
mdl = cupsGetOption("MDL", num_values, values);
if (mfg)
{
if (!_cups_strcasecmp(mfg, "Hewlett-Packard"))
mfg = "HP";
else if (!_cups_strcasecmp(mfg, "Lexmark International"))
mfg = "Lexmark";
}
else
{
strlcpy(temp, make_model, sizeof(temp));
if ((tempptr = strchr(temp, ' ')) != NULL)
*tempptr = '\0';
mfg = temp;
}
if (!mdl)
mdl = "";
if (!_cups_strncasecmp(mdl, mfg, strlen(mfg)))
{
mdl += strlen(mfg);
while (isspace(*mdl & 255))
mdl ++;
}
/*
* Generate the device URI from the manufacturer, make_model, and
* serial number strings.
*/
httpAssembleURIf(HTTP_URI_CODING_ALL, uri, uri_size, scheme, NULL, mfg, 0,
"/%s%s%s", mdl, sern ? "?serial=" : "", sern ? sern : "");
cupsFreeOptions(num_values, values);
}
return (0);
#endif /* __APPLE__ */
}
/*
* 'backendGetMakeModel()' - Get the make and model string from the device ID.
*/
int /* O - 0 on success, -1 on failure */
backendGetMakeModel(
const char *device_id, /* O - 1284 device ID */
char *make_model, /* O - Make/model */
size_t make_model_size) /* I - Size of buffer */
{
int num_values; /* Number of keys and values */
cups_option_t *values; /* Keys and values */
const char *mfg, /* Manufacturer string */
*mdl, /* Model string */
*des; /* Description string */
/*
* Range check input...
*/
if (!device_id || !*device_id || !make_model || make_model_size < 32)
return (-1);
*make_model = '\0';
/*
* Look for the description field...
*/
num_values = _cupsGet1284Values(device_id, &values);
if ((mdl = cupsGetOption("MODEL", num_values, values)) == NULL)
mdl = cupsGetOption("MDL", num_values, values);
if (mdl)
{
/*
* Build a make-model string from the manufacturer and model attributes...
*/
if ((mfg = cupsGetOption("MANUFACTURER", num_values, values)) == NULL)
mfg = cupsGetOption("MFG", num_values, values);
if (!mfg || !_cups_strncasecmp(mdl, mfg, strlen(mfg)))
{
/*
* Just copy the model string, since it has the manufacturer...
*/
_ppdNormalizeMakeAndModel(mdl, make_model, make_model_size);
}
else
{
/*
* Concatenate the make and model...
*/
char temp[1024]; /* Temporary make and model */
snprintf(temp, sizeof(temp), "%s %s", mfg, mdl);
_ppdNormalizeMakeAndModel(temp, make_model, make_model_size);
}
}
else if ((des = cupsGetOption("DESCRIPTION", num_values, values)) != NULL ||
(des = cupsGetOption("DES", num_values, values)) != NULL)
{
/*
* Make sure the description contains something useful, since some
* printer manufacturers (HP) apparently don't follow the standards
* they helped to define...
*
* Here we require the description to be 8 or more characters in length,
* containing at least one space and one letter.
*/
if (strlen(des) >= 8)
{
const char *ptr; /* Pointer into description */
int letters, /* Number of letters seen */
spaces; /* Number of spaces seen */
for (ptr = des, letters = 0, spaces = 0; *ptr; ptr ++)
{
if (isspace(*ptr & 255))
spaces ++;
else if (isalpha(*ptr & 255))
letters ++;
if (spaces && letters)
break;
}
if (spaces && letters)
_ppdNormalizeMakeAndModel(des, make_model, make_model_size);
}
}
if (!make_model[0])
{
/*
* Use "Unknown" as the printer make and model...
*/
strlcpy(make_model, "Unknown", make_model_size);
}
cupsFreeOptions(num_values, values);
return (0);
}
+3483 -253
Ver Arquivo
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+1112 -211
Ver Arquivo
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+354
Ver Arquivo
@@ -0,0 +1,354 @@
/*
* Common backend network APIs for CUPS.
*
* Copyright © 2007-2016 by Apple Inc.
* Copyright © 2006-2007 by Easy Software Products, all rights reserved.
*
* Licensed under Apache License v2.0. See the file "LICENSE" for more
* information.
*/
/*
* Include necessary headers.
*/
#include "backend-private.h"
#include <limits.h>
#include <sys/select.h>
/*
* 'backendCheckSideChannel()' - Check the side-channel for pending requests.
*/
void
backendCheckSideChannel(
int snmp_fd, /* I - SNMP socket */
http_addr_t *addr) /* I - Address of device */
{
fd_set input; /* Select input set */
struct timeval timeout; /* Select timeout */
FD_ZERO(&input);
FD_SET(CUPS_SC_FD, &input);
timeout.tv_sec = timeout.tv_usec = 0;
if (select(CUPS_SC_FD + 1, &input, NULL, NULL, &timeout) > 0)
backendNetworkSideCB(-1, -1, snmp_fd, addr, 0);
}
/*
* 'backendLookup()' - Lookup the given host and log addresses.
*/
http_addrlist_t * /* O - List of addresses or NULL */
backendLookup(const char *hostname, /* I - Hostname */
int port, /* I - Port number */
int *cancel) /* I - Variable to watch for job cancel */
{
char portname[32], /* Port number as string */
addrname[256]; /* Address as string */
http_addrlist_t *addrlist, /* List of addresses */
*current; /* Current address */
/*
* Lookup the address for the named host...
*/
snprintf(portname, sizeof(portname), "%d", port);
fputs("STATE: +connecting-to-device\n", stderr);
fprintf(stderr, "DEBUG: Looking up \"%s\"...\n", hostname);
while ((addrlist = httpAddrGetList(hostname, AF_UNSPEC, portname)) == NULL)
{
_cupsLangPrintFilter(stderr, "INFO", _("Unable to locate printer \"%s\"."), hostname);
sleep(10);
if (getenv("CLASS") != NULL)
{
fputs("STATE: -connecting-to-device\n", stderr);
exit(CUPS_BACKEND_STOP);
}
if (cancel && *cancel)
{
fputs("STATE: -connecting-to-device\n", stderr);
exit(CUPS_BACKEND_OK);
}
}
fputs("STATE: -connecting-to-device\n", stderr);
/*
* Log the addresses we got...
*/
for (current = addrlist; current; current = current->next)
fprintf(stderr, "DEBUG: %s=%s\n", hostname, httpAddrString(&current->addr, addrname, sizeof(addrname)));
/*
* Return...
*/
return (addrlist);
}
/*
* 'backendNetworkSideCB()' - Handle common network side-channel commands.
*/
int /* O - -1 on error, 0 on success */
backendNetworkSideCB(
int print_fd, /* I - Print file or -1 */
int device_fd, /* I - Device file or -1 */
int snmp_fd, /* I - SNMP socket */
http_addr_t *addr, /* I - Address of device */
int use_bc) /* I - Use back-channel data? */
{
cups_sc_command_t command; /* Request command */
cups_sc_status_t status; /* Request/response status */
char data[65536]; /* Request/response data */
int datalen; /* Request/response data size */
const char *device_id; /* 1284DEVICEID env var */
datalen = sizeof(data);
if (cupsSideChannelRead(&command, &status, data, &datalen, 1.0))
return (-1);
switch (command)
{
case CUPS_SC_CMD_DRAIN_OUTPUT :
/*
* Our sockets disable the Nagle algorithm and data is sent immediately.
*/
if (device_fd < 0)
status = CUPS_SC_STATUS_NOT_IMPLEMENTED;
else if (backendDrainOutput(print_fd, device_fd))
status = CUPS_SC_STATUS_IO_ERROR;
else
status = CUPS_SC_STATUS_OK;
datalen = 0;
break;
case CUPS_SC_CMD_GET_BIDI :
status = CUPS_SC_STATUS_OK;
data[0] = (char)use_bc;
datalen = 1;
break;
case CUPS_SC_CMD_SNMP_GET :
case CUPS_SC_CMD_SNMP_GET_NEXT :
fprintf(stderr, "DEBUG: CUPS_SC_CMD_SNMP_%s: %d (%s)\n",
command == CUPS_SC_CMD_SNMP_GET ? "GET" : "GET_NEXT", datalen,
data);
if (datalen < 2)
{
status = CUPS_SC_STATUS_BAD_MESSAGE;
datalen = 0;
break;
}
if (snmp_fd >= 0)
{
char *dataptr; /* Pointer into data */
cups_snmp_t packet; /* Packet from printer */
const char *snmp_value; /* CUPS_SNMP_VALUE env var */
if ((snmp_value = getenv("CUPS_SNMP_VALUE")) != NULL)
{
const char *snmp_count; /* CUPS_SNMP_COUNT env var */
int count; /* Repetition count */
if ((snmp_count = getenv("CUPS_SNMP_COUNT")) != NULL)
{
if ((count = atoi(snmp_count)) <= 0)
count = 1;
}
else
count = 1;
for (dataptr = data + strlen(data) + 1;
count > 0 && dataptr < (data + sizeof(data) - 1);
count --, dataptr += strlen(dataptr))
strlcpy(dataptr, snmp_value, sizeof(data) - (size_t)(dataptr - data));
fprintf(stderr, "DEBUG: Returning %s %s\n", data,
data + strlen(data) + 1);
status = CUPS_SC_STATUS_OK;
datalen = (int)(dataptr - data);
break;
}
if (!_cupsSNMPStringToOID(data, packet.object_name, CUPS_SNMP_MAX_OID))
{
status = CUPS_SC_STATUS_BAD_MESSAGE;
datalen = 0;
break;
}
status = CUPS_SC_STATUS_IO_ERROR;
datalen = 0;
if (_cupsSNMPWrite(snmp_fd, addr, CUPS_SNMP_VERSION_1,
_cupsSNMPDefaultCommunity(),
command == CUPS_SC_CMD_SNMP_GET ?
CUPS_ASN1_GET_REQUEST :
CUPS_ASN1_GET_NEXT_REQUEST, 1,
packet.object_name))
{
if (_cupsSNMPRead(snmp_fd, &packet, 1.0))
{
size_t i; /* Looping var */
if (!_cupsSNMPOIDToString(packet.object_name, data, sizeof(data)))
{
fputs("DEBUG: Bad OID returned!\n", stderr);
break;
}
datalen = (int)strlen(data) + 1;
dataptr = data + datalen;
switch (packet.object_type)
{
case CUPS_ASN1_BOOLEAN :
snprintf(dataptr, sizeof(data) - (size_t)(dataptr - data), "%d", packet.object_value.boolean);
datalen += (int)strlen(dataptr);
break;
case CUPS_ASN1_INTEGER :
snprintf(dataptr, sizeof(data) - (size_t)(dataptr - data), "%d",
packet.object_value.integer);
datalen += (int)strlen(dataptr);
break;
case CUPS_ASN1_BIT_STRING :
case CUPS_ASN1_OCTET_STRING :
if (packet.object_value.string.num_bytes < (sizeof(data) - (size_t)(dataptr - data)))
i = packet.object_value.string.num_bytes;
else
i = sizeof(data) - (size_t)(dataptr - data);
memcpy(dataptr, packet.object_value.string.bytes, i);
datalen += (int)i;
break;
case CUPS_ASN1_OID :
_cupsSNMPOIDToString(packet.object_value.oid, dataptr,
sizeof(data) - (size_t)(dataptr - data));
datalen += (int)strlen(dataptr);
break;
case CUPS_ASN1_HEX_STRING :
for (i = 0;
i < packet.object_value.string.num_bytes &&
dataptr < (data + sizeof(data) - 3);
i ++, dataptr += 2)
sprintf(dataptr, "%02X", packet.object_value.string.bytes[i]);
datalen += (int)strlen(dataptr);
break;
case CUPS_ASN1_COUNTER :
snprintf(dataptr, sizeof(data) - (size_t)(dataptr - data), "%u", packet.object_value.counter);
datalen += (int)strlen(dataptr);
break;
case CUPS_ASN1_GAUGE :
snprintf(dataptr, sizeof(data) - (size_t)(dataptr - data), "%u", packet.object_value.gauge);
datalen += (int)strlen(dataptr);
break;
case CUPS_ASN1_TIMETICKS :
snprintf(dataptr, sizeof(data) - (size_t)(dataptr - data), "%u", packet.object_value.timeticks);
datalen += (int)strlen(dataptr);
break;
default :
fprintf(stderr, "DEBUG: Unknown OID value type %02X.\n", packet.object_type);
case CUPS_ASN1_NULL_VALUE :
dataptr[0] = '\0';
break;
}
fprintf(stderr, "DEBUG: Returning %s %s\n", data, data + datalen);
status = CUPS_SC_STATUS_OK;
}
else
fputs("DEBUG: SNMP read error...\n", stderr);
}
else
fputs("DEBUG: SNMP write error...\n", stderr);
break;
}
status = CUPS_SC_STATUS_NOT_IMPLEMENTED;
datalen = 0;
break;
case CUPS_SC_CMD_GET_CONNECTED :
status = CUPS_SC_STATUS_OK;
data[0] = device_fd != -1;
datalen = 1;
break;
case CUPS_SC_CMD_GET_DEVICE_ID :
if (snmp_fd >= 0)
{
cups_snmp_t packet; /* Packet from printer */
static const int ppmPrinterIEEE1284DeviceId[] =
{ CUPS_OID_ppmPrinterIEEE1284DeviceId,1,-1 };
status = CUPS_SC_STATUS_IO_ERROR;
datalen = 0;
if (_cupsSNMPWrite(snmp_fd, addr, CUPS_SNMP_VERSION_1,
_cupsSNMPDefaultCommunity(),
CUPS_ASN1_GET_REQUEST, 1,
ppmPrinterIEEE1284DeviceId))
{
if (_cupsSNMPRead(snmp_fd, &packet, 1.0) &&
packet.object_type == CUPS_ASN1_OCTET_STRING)
{
strlcpy(data, (char *)packet.object_value.string.bytes,
sizeof(data));
datalen = (int)strlen(data);
status = CUPS_SC_STATUS_OK;
}
}
break;
}
if ((device_id = getenv("1284DEVICEID")) != NULL)
{
strlcpy(data, device_id, sizeof(data));
datalen = (int)strlen(data);
status = CUPS_SC_STATUS_OK;
break;
}
default :
status = CUPS_SC_STATUS_NOT_IMPLEMENTED;
datalen = 0;
break;
}
return (cupsSideChannelWrite(command, status, data, datalen, 1.0));
}
+295
Ver Arquivo
@@ -0,0 +1,295 @@
# USB backend 'quirks' file.
#
# This file lists known issues with various vendors or printers. Each
# line contains either a comment (starting with #) or the USB vendor ID,
# product ID (omit for all vendor products), and a list of known issues:
#
# blacklist The printer is not functional with the USB backend.
# delay-close Delay close/reset of selected interface
# no-reattach Do no re-attach usblp kernel module after printing.
# soft-reset Do a soft reset after printing for cleanup.
# unidir Only supports unidirectional I/O
# usb-init Needs vendor USB initialization string.
# vendor-class Uses vendor-specific class or subclass.
# whitelist The printer is functional with the USB backend.
#
# To get the USB vendor and product IDs for a given printer, run the "lsusb"
# command, which will show something like the following:
#
# Bus 002 Device 003: ID ab21:34dc Acme Example Printer
#
# The "ab21:34dc" is the vendor and product ID, separated by a colon.
# HP DeskJet 895C
0x03f0 0x0004 unidir
# HP DeskJet 880C
0x03f0 0x0104 unidir
# HP DeskJet 815C
0x03f0 0x0204 unidir
# HP DeskJet 810C/812C
0x03f0 0x0304 unidir
# HP DeskJet 830C
0x03f0 0x0404 unidir
# HP DeskJet 885C
0x03f0 0x0504 unidir
# HP DeskJet 840C
0x03f0 0x0604 unidir
# HP DeskJet 816C
0x03f0 0x0804 unidir
# HP Deskjet 959C
0x03f0 0x1104 unidir
# NEC Picty900 (HP OEM)
0x0409 0xefbe unidir
# NEC Picty760 (HP OEM)
0x0409 0xbef4 unidir
# NEC Picty920 (HP OEM)
0x0409 0xf0be unidir
# NEC Picty800 (HP OEM)
0x0409 0xf1be unidir
# Lexmark International, Inc. (e250d) (https://bugs.launchpad.net/bugs/1084164)
0x043d 0x00f3 no-reattach
# Kyocera Mita FS 820, by zut <kernel@zut.de>
0x0482 0x0010 unidir
# Canon, Inc. PIXMA iP6000D Printer (https://bugs.launchpad.net/bugs/1160638)
0x04a9 0x1095 unidir
# Canon, Inc. PIXMA iP4200 Printer (Issue #4155)
0x04a9 0x10a2 unidir
# Canon, Inc. PIXMA iP4300 Printer (https://bugs.launchpad.net/bugs/1032385)
0x04a9 0x10b6 unidir
# Canon, Inc. MP210 (https://bugzilla.redhat.com/show_bug.cgi?id=847923#c53)
0x04a9 0x1721 unidir
# Canon, Inc. MP500 Printer (https://bugs.launchpad.net/bugs/1032456)
0x04a9 0x170c unidir
# Canon, Inc. MP510 Printer (https://bugs.launchpad.net/bugs/1050009)
0x04a9 0x1717 unidir
# Canon, Inc. MP540 Printer, https://bugzilla.redhat.com/967873
0x04a9 0x1730 unidir
# Canon, Inc. MP550 Printer (Issue #4155)
0x04a9 0x173d unidir
# Canon, Inc. MP560 Printer (Issue #4155)
0x04a9 0x173e unidir
# Canon, Inc. MF4150 Printer (https://bugs.launchpad.net/bugs/1160638)
0x04a9 0x26a3 no-reattach
# Brother Industries, Ltd HL-1250 Laser Printer (https://bugs.debian.org/712512)
0x04f9 0x0007 no-reattach
# Brother Industries, Ltd HL-1430 Laser Printer (https://bugs.launchpad.net/bugs/1038695)
0x04f9 0x001a no-reattach
# Brother Industries, Ltd HL-1440 Laser Printer (https://bugs.launchpad.net/bugs/1000253)
0x04f9 0x000d no-reattach unidir
# Brother Industries, Ltd HL-1450 Laser Printer (https://bugs.launchpad.net/bugs/1000253)
0x04f9 0x000e no-reattach unidir
# Oki Data Corp. Okipage 14ex Printer (https://bugs.launchpad.net/bugs/872483)
0x06bc 0x000b no-reattach
# Oki Data Corp. B410d (https://bugs.launchpad.net/bugs/872483)
0x06bc 0x01c7 no-reattach
# Seiko Epson Corp. Stylus Color 740 / Photo 750 (http://bugs.debian.org/697970)
0x04b8 0x0001 no-reattach unidir
# Seiko Epson Corp. Stylus Color 670 (https://bugs.launchpad.net/bugs/872483)
0x04b8 0x0005 no-reattach
# Seiko Epson Receipt Printer M129C
0x04b8 0x0202 vendor-class
# Prolific Technology, Inc. PL2305 Parallel Port (USB -> Parallel adapter) (https://bugs.launchpad.net/bugs/987485)
0x067b 0x2305 no-reattach soft-reset unidir
# Xerox Phaser 3124 https://bugzilla.redhat.com/show_bug.cgi?id=867392
0x0924 0x3ce9 no-reattach
# Xerox WorkCentre 3210 https://bugs.launchpad.net/bugs/1102470
0x0924 0x4293 no-reattach
# QinHeng Electronics CH340S (USB -> Parallel adapter) (https://bugs.launchpad.net/bugs/1000253)
0x1a86 0x7584 no-reattach
# All Samsung devices (https://bugs.launchpad.net/bugs/1032456)
0x04e8 soft-reset
# Samsung ML-2160 Series (https://bugzilla.redhat.com/show_bug.cgi?id=873123)
0x04e8 0x330f unidir
# All Zebra devices (https://bugs.launchpad.net/bugs/1001028)
0x0a5f unidir
# Canon CP-10
0x04a9 0x304a blacklist
# Canon CP-100
0x04a9 0x3063 blacklist
# Canon CP-200
0x04a9 0x307c blacklist
# Canon CP-300
0x04a9 0x307d blacklist
# Canon CP-220
0x04a9 0x30bd blacklist
# Canon CP-330
0x04a9 0x30be blacklist
# Canon SELPHY CP400
0x04a9 0x30f6 blacklist
# Canon SELPHY CP600
0x04a9 0x310b blacklist
# Canon SELPHY CP710
0x04a9 0x3127 blacklist
# Canon SELPHY CP510
0x04a9 0x3128 blacklist
# Canon SELPHY ES1
0x04a9 0x3141 blacklist
# Canon SELPHY CP730
0x04a9 0x3142 blacklist
# Canon SELPHY CP720
0x04a9 0x3143 blacklist
# Canon SELPHY CP750
0x04a9 0x3170 blacklist
# Canon SELPHY CP740
0x04a9 0x3171 blacklist
# Canon SELPHY ES2
0x04a9 0x3185 blacklist
# Canon SELPHY ES20
0x04a9 0x3186 blacklist
# Canon SELPHY CP770
0x04a9 0x31aa blacklist
# Canon SELPHY CP760
0x04a9 0x31ab blacklist
# Canon SELPHY ES30
0x04a9 0x31b0 blacklist
# Canon SELPHY CP780
0x04a9 0x31dd blacklist
# Canon SELPHY ES40
0x04a9 0x31ee blacklist
# Canon SELPHY CP800
0x04a9 0x3214 blacklist
# Canon SELPHY CP900
0x04a9 0x3255 blacklist
# Canon SELPHY CP810
0x04a9 0x3256 blacklist
# Canon SELPHY CP500
0x04a9 0x30f5 blacklist
# Canon SELPHY ES3
0x04a9 0x31af blacklist
# Canon SELPHY CP780
0x04a9 0x31dd blacklist
# Lexmark E238 (<rdar://problem/14493054>)
0x043d 0x00d7 no-reattach
# Lexmark E238 (Issue #4448)
0x043d 0x009a no-reattach
# Canon MX310 (Issue #4482)
0x04a9 0x1728 unidir
# Canon MX320 (Issue #4482)
0x04A9 0x1736 unidir
# All Intermec devices (Issue #4553)
0x067e no-reattach
# HP LaserJet 1150 (Issue #4549)
0x03f0 0x0f17 delay-close
# HP LaserJet 1300 (Issue #4549)
0x03f0 0x1017 delay-close
0x03f0 0x1117 delay-close
# HP LaserJet 1320 (Issue #4549)
0x03f0 0x1d17 delay-close
# Canon, Inc. MP530 Printer
0x04a9 0x1712 unidir
# Xerox WorkCentre 3220 (https://bugs.launchpad.net/bugs/1406203, Issue #4789)
0x0924 0x4294 no-reattach
# Lexmark C540n (Issue #4778)
0x043d 0x0139 no-reattach
# Kyocera Ecosys P6026cdn (Issue #4900)
0x0482 0x063f no-reattach
# Kyocera Ecosys P6130cdn (Issue #5102)
0x0482 0x0677 no-reattach
# Lexmark E260dn (Issue #4994)
0x043d 0x0123 no-reattach
# HP LaserJet 1160 (Issue #5121)
0x03f0 0x1e17 delay-close
# Canon, Inc. MP280 series (Issue #5221)
0x04a9 0x1746 unidir
# Star Micronics printers (Issue #5251)
0x0519 unidir
# Lexmark Optra E310 (Issue #5259)
0x043d 0x000c no-reattach
# HP LaserJet P1102 (Issue #5310)
0x03F0 0x002A no-reattach
# Lexmark MS317dn
0x043d 0x0226 no-reattach
# Star TSP743 (Issue #5443)
0x0519 0x0001 delay-close
# Zebra ZD420 (Issue #5395)
0x0a5f 0x0120 unidir no-reattach
-179
Ver Arquivo
@@ -1,179 +0,0 @@
/*
* "$Id$"
*
* Parallel port backend for the Common UNIX Printing System (CUPS).
*
* Copyright 1997-1999 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
* copyright law. Distribution and use rights are outlined in the file
* "LICENSE" which should have been included with this file. If this
* file is missing or damaged please contact Easy Software Products
* at:
*
* Attn: CUPS Licensing Information
* Easy Software Products
* 44141 Airport View Drive, Suite 204
* Hollywood, Maryland 20636-3111 USA
*
* Voice: (301) 373-9603
* EMail: cups-info@cups.org
* WWW: http://www.cups.org
*
* Contents:
*
* main() - Send a file to the specified parallel port.
*/
/*
* Include necessary headers.
*/
#include <cups/cups.h>
#include <stdio.h>
#include <stdlib.h>
#include <cups/string.h>
#if defined(WIN32) || defined(__EMX__)
# include <io.h>
#else
# include <unistd.h>
# include <fcntl.h>
# include <termios.h>
#endif /* WIN32 || __EMX__ */
/*
* 'main()' - Send a file to the specified parallel port.
*
* Usage:
*
* printer-uri job-id user title copies options [file]
*/
int /* O - Exit status */
main(int argc, /* I - Number of command-line arguments (6 or 7) */
char *argv[]) /* I - Command-line arguments */
{
char method[255], /* Method in URI */
hostname[1024], /* Hostname */
username[255], /* Username info (not used) */
resource[1024], /* Resource info (device and options) */
*options; /* Pointer to options */
int port; /* Port number (not used) */
FILE *fp; /* Print file */
int fd; /* Parallel device */
int error; /* Error code (if any) */
size_t nbytes, /* Number of bytes written */
tbytes; /* Total number of bytes written */
char buffer[8192]; /* Output buffer */
struct termios opts; /* Parallel port options */
if (argc < 6 || argc > 7)
{
fputs("Usage: parallel job-id user title copies options [file]\n", stderr);
return (1);
}
/*
* If we have 7 arguments, print the file named on the command-line.
* Otherwise, send stdin instead...
*/
if (argc == 6)
fp = stdin;
else
{
/*
* Try to open the print file...
*/
if ((fp = fopen(argv[6], "rb")) == NULL)
{
perror("ERROR: unable to open print file");
return (1);
}
}
/*
* Extract the device name and options from the URI...
*/
httpSeparate(argv[0], method, username, hostname, &port, resource);
/*
* See if there are any options...
*/
if ((options = strchr(resource, '?')) != NULL)
{
/*
* Yup, terminate the device name string and move to the first
* character of the options...
*/
*options++ = '\0';
}
/*
* Open the parallel port device...
*/
if ((fd = open(resource, O_WRONLY)) == -1)
{
perror("ERROR: Unable to open parallel port device file");
return (1);
}
/*
* Set any options provided...
*/
tcgetattr(fd, &opts);
opts.c_lflag &= ~(ICANON | ECHO | ISIG); /* Raw mode */
/**** No options supported yet ****/
tcsetattr(fd, TCSANOW, &opts);
/*
* Finally, send the print file...
*/
tbytes = 0;
while ((nbytes = fread(buffer, 1, sizeof(buffer), fp)) > 0)
{
/*
* Write the print data to the printer...
*/
if (write(fd, buffer, nbytes) < nbytes)
{
perror("ERROR: Unable to send print file to printer");
break;
}
else
tbytes += nbytes;
if (argc > 6)
fprintf(stderr, "INFO: Sending print file, %u bytes...\n", tbytes);
}
/*
* Close the socket connection and input file and return...
*/
close(fd);
if (fp != stdin)
fclose(fp);
return (0);
}
/*
* End of "$Id$".
*/
+24
Ver Arquivo
@@ -0,0 +1,24 @@
#!/bin/sh
#
# Psuedo-backend for CUPS testing purposes.
#
# Copyright 2011 by Apple Inc.
#
# These coded instructions, statements, and computer programs are the
# property of Apple Inc. and are protected by Federal copyright
# law. Distribution and use rights are outlined in the file "LICENSE.txt"
# which should have been included with this file. If this file is
# file is missing or damaged, see the license at "http://www.cups.org/".
#
# This file is subject to the Apple OS-Developed Software exception.
#
if test $# = 0; then
echo 'direct pseudo:///deskjet "HP DeskJet" "HP DeskJet (pseudo)" "MFG:HP;MDL:DeskJet;CMD:PCL;" "Nowhere"'
echo 'direct pseudo:///laserjet "HP LaserJet" "HP LaserJet (pseudo)" "MFG:HP;MDL:LaserJet;CMD:PCL;" "Nowhere"'
exit 0
fi
cat $6 >/dev/null
sleep 5
exit 0
+520
Ver Arquivo
@@ -0,0 +1,520 @@
/*
* Common run loop APIs for CUPS backends.
*
* Copyright © 2007-2014 by Apple Inc.
* Copyright © 2006-2007 by Easy Software Products, all rights reserved.
*
* Licensed under Apache License v2.0. See the file "LICENSE" for more
* information.
*/
/*
* Include necessary headers.
*/
#include "backend-private.h"
#include <limits.h>
#include <sys/select.h>
/*
* 'backendDrainOutput()' - Drain pending print data to the device.
*/
int /* O - 0 on success, -1 on error */
backendDrainOutput(int print_fd, /* I - Print file descriptor */
int device_fd) /* I - Device file descriptor */
{
int nfds; /* Maximum file descriptor value + 1 */
fd_set input; /* Input set for reading */
ssize_t print_bytes, /* Print bytes read */
bytes; /* Bytes written */
char print_buffer[8192], /* Print data buffer */
*print_ptr; /* Pointer into print data buffer */
struct timeval timeout; /* Timeout for read... */
fprintf(stderr, "DEBUG: backendDrainOutput(print_fd=%d, device_fd=%d)\n",
print_fd, device_fd);
/*
* Figure out the maximum file descriptor value to use with select()...
*/
nfds = (print_fd > device_fd ? print_fd : device_fd) + 1;
/*
* Now loop until we are out of data from print_fd...
*/
for (;;)
{
/*
* Use select() to determine whether we have data to copy around...
*/
FD_ZERO(&input);
FD_SET(print_fd, &input);
timeout.tv_sec = 0;
timeout.tv_usec = 0;
if (select(nfds, &input, NULL, NULL, &timeout) < 0)
return (-1);
if (!FD_ISSET(print_fd, &input))
return (0);
if ((print_bytes = read(print_fd, print_buffer,
sizeof(print_buffer))) < 0)
{
/*
* Read error - bail if we don't see EAGAIN or EINTR...
*/
if (errno != EAGAIN && errno != EINTR)
{
fprintf(stderr, "DEBUG: Read failed: %s\n", strerror(errno));
_cupsLangPrintFilter(stderr, "ERROR", _("Unable to read print data."));
return (-1);
}
print_bytes = 0;
}
else if (print_bytes == 0)
{
/*
* End of file, return...
*/
return (0);
}
fprintf(stderr, "DEBUG: Read %d bytes of print data...\n",
(int)print_bytes);
for (print_ptr = print_buffer; print_bytes > 0;)
{
if ((bytes = write(device_fd, print_ptr, (size_t)print_bytes)) < 0)
{
/*
* Write error - bail if we don't see an error we can retry...
*/
if (errno != ENOSPC && errno != ENXIO && errno != EAGAIN &&
errno != EINTR && errno != ENOTTY)
{
_cupsLangPrintError("ERROR", _("Unable to write print data"));
return (-1);
}
}
else
{
fprintf(stderr, "DEBUG: Wrote %d bytes of print data...\n", (int)bytes);
print_bytes -= bytes;
print_ptr += bytes;
}
}
}
}
/*
* 'backendRunLoop()' - Read and write print and back-channel data.
*/
ssize_t /* O - Total bytes on success, -1 on error */
backendRunLoop(
int print_fd, /* I - Print file descriptor */
int device_fd, /* I - Device file descriptor */
int snmp_fd, /* I - SNMP socket or -1 if none */
http_addr_t *addr, /* I - Address of device */
int use_bc, /* I - Use back-channel? */
int update_state, /* I - Update printer-state-reasons? */
_cups_sccb_t side_cb) /* I - Side-channel callback */
{
int nfds; /* Maximum file descriptor value + 1 */
fd_set input, /* Input set for reading */
output; /* Output set for writing */
ssize_t print_bytes, /* Print bytes read */
bc_bytes, /* Backchannel bytes read */
total_bytes, /* Total bytes written */
bytes; /* Bytes written */
int paperout; /* "Paper out" status */
int offline; /* "Off-line" status */
char print_buffer[8192], /* Print data buffer */
*print_ptr, /* Pointer into print data buffer */
bc_buffer[1024]; /* Back-channel data buffer */
struct timeval timeout; /* Timeout for select() */
time_t curtime, /* Current time */
snmp_update = 0;
#if defined(HAVE_SIGACTION) && !defined(HAVE_SIGSET)
struct sigaction action; /* Actions for POSIX signals */
#endif /* HAVE_SIGACTION && !HAVE_SIGSET */
fprintf(stderr,
"DEBUG: backendRunLoop(print_fd=%d, device_fd=%d, snmp_fd=%d, "
"addr=%p, use_bc=%d, side_cb=%p)\n",
print_fd, device_fd, snmp_fd, addr, use_bc, side_cb);
/*
* If we are printing data from a print driver on stdin, ignore SIGTERM
* so that the driver can finish out any page data, e.g. to eject the
* current page. We only do this for stdin printing as otherwise there
* is no way to cancel a raw print job...
*/
if (!print_fd)
{
#ifdef HAVE_SIGSET /* Use System V signals over POSIX to avoid bugs */
sigset(SIGTERM, SIG_IGN);
#elif defined(HAVE_SIGACTION)
memset(&action, 0, sizeof(action));
sigemptyset(&action.sa_mask);
action.sa_handler = SIG_IGN;
sigaction(SIGTERM, &action, NULL);
#else
signal(SIGTERM, SIG_IGN);
#endif /* HAVE_SIGSET */
}
else if (print_fd < 0)
{
/*
* Copy print data from stdin, but don't mess with the signal handlers...
*/
print_fd = 0;
}
/*
* Figure out the maximum file descriptor value to use with select()...
*/
nfds = (print_fd > device_fd ? print_fd : device_fd) + 1;
/*
* Now loop until we are out of data from print_fd...
*/
for (print_bytes = 0, print_ptr = print_buffer, offline = -1,
paperout = -1, total_bytes = 0;;)
{
/*
* Use select() to determine whether we have data to copy around...
*/
FD_ZERO(&input);
if (!print_bytes)
FD_SET(print_fd, &input);
if (use_bc)
FD_SET(device_fd, &input);
if (!print_bytes && side_cb)
FD_SET(CUPS_SC_FD, &input);
FD_ZERO(&output);
if (print_bytes || (!use_bc && !side_cb))
FD_SET(device_fd, &output);
if (use_bc || side_cb)
{
timeout.tv_sec = 5;
timeout.tv_usec = 0;
if (select(nfds, &input, &output, NULL, &timeout) < 0)
{
/*
* Pause printing to clear any pending errors...
*/
if (errno == ENXIO && offline != 1 && update_state)
{
fputs("STATE: +offline-report\n", stderr);
_cupsLangPrintFilter(stderr, "INFO",
_("The printer is not connected."));
offline = 1;
}
else if (errno == EINTR && total_bytes == 0)
{
fputs("DEBUG: Received an interrupt before any bytes were "
"written, aborting.\n", stderr);
return (0);
}
sleep(1);
continue;
}
}
/*
* Check if we have a side-channel request ready...
*/
if (side_cb && FD_ISSET(CUPS_SC_FD, &input))
{
/*
* Do the side-channel request, then start back over in the select
* loop since it may have read from print_fd...
*/
if ((*side_cb)(print_fd, device_fd, snmp_fd, addr, use_bc))
side_cb = NULL;
continue;
}
/*
* Check if we have back-channel data ready...
*/
if (FD_ISSET(device_fd, &input))
{
if ((bc_bytes = read(device_fd, bc_buffer, sizeof(bc_buffer))) > 0)
{
fprintf(stderr,
"DEBUG: Received " CUPS_LLFMT " bytes of back-channel data\n",
CUPS_LLCAST bc_bytes);
cupsBackChannelWrite(bc_buffer, (size_t)bc_bytes, 1.0);
}
else if (bc_bytes < 0 && errno != EAGAIN && errno != EINTR)
{
fprintf(stderr, "DEBUG: Error reading back-channel data: %s\n",
strerror(errno));
use_bc = 0;
}
else if (bc_bytes == 0)
use_bc = 0;
}
/*
* Check if we have print data ready...
*/
if (FD_ISSET(print_fd, &input))
{
if ((print_bytes = read(print_fd, print_buffer,
sizeof(print_buffer))) < 0)
{
/*
* Read error - bail if we don't see EAGAIN or EINTR...
*/
if (errno != EAGAIN && errno != EINTR)
{
fprintf(stderr, "DEBUG: Read failed: %s\n", strerror(errno));
_cupsLangPrintFilter(stderr, "ERROR",
_("Unable to read print data."));
return (-1);
}
print_bytes = 0;
}
else if (print_bytes == 0)
{
/*
* End of file, break out of the loop...
*/
break;
}
print_ptr = print_buffer;
fprintf(stderr, "DEBUG: Read %d bytes of print data...\n",
(int)print_bytes);
}
/*
* Check if the device is ready to receive data and we have data to
* send...
*/
if (print_bytes && FD_ISSET(device_fd, &output))
{
if ((bytes = write(device_fd, print_ptr, (size_t)print_bytes)) < 0)
{
/*
* Write error - bail if we don't see an error we can retry...
*/
if (errno == ENOSPC)
{
if (paperout != 1 && update_state)
{
fputs("STATE: +media-empty-warning\n", stderr);
fputs("DEBUG: Out of paper\n", stderr);
paperout = 1;
}
}
else if (errno == ENXIO)
{
if (offline != 1 && update_state)
{
fputs("STATE: +offline-report\n", stderr);
_cupsLangPrintFilter(stderr, "INFO",
_("The printer is not connected."));
offline = 1;
}
}
else if (errno != EAGAIN && errno != EINTR && errno != ENOTTY)
{
_cupsLangPrintError("ERROR", _("Unable to write print data"));
return (-1);
}
}
else
{
if (paperout && update_state)
{
fputs("STATE: -media-empty-warning\n", stderr);
paperout = 0;
}
if (offline && update_state)
{
fputs("STATE: -offline-report\n", stderr);
_cupsLangPrintFilter(stderr, "INFO",
_("The printer is now connected."));
offline = 0;
}
fprintf(stderr, "DEBUG: Wrote %d bytes of print data...\n", (int)bytes);
print_bytes -= bytes;
print_ptr += bytes;
total_bytes += bytes;
}
}
/*
* Do SNMP updates periodically...
*/
if (snmp_fd >= 0 && time(&curtime) >= snmp_update)
{
if (backendSNMPSupplies(snmp_fd, addr, NULL, NULL))
snmp_update = INT_MAX;
else
snmp_update = curtime + 5;
}
}
/*
* Return with success...
*/
return (total_bytes);
}
/*
* 'backendWaitLoop()' - Wait for input from stdin while handling side-channel
* queries.
*/
int /* O - 1 if data is ready, 0 if not */
backendWaitLoop(
int snmp_fd, /* I - SNMP socket or -1 if none */
http_addr_t *addr, /* I - Address of device */
int use_bc, /* I - Use back-channel? */
_cups_sccb_t side_cb) /* I - Side-channel callback */
{
int nfds; /* Number of file descriptors */
fd_set input; /* Input set for reading */
time_t curtime = 0, /* Current time */
snmp_update = 0;/* Last SNMP status update */
struct timeval timeout; /* Timeout for select() */
fprintf(stderr, "DEBUG: backendWaitLoop(snmp_fd=%d, addr=%p, side_cb=%p)\n",
snmp_fd, addr, side_cb);
/*
* Now loop until we receive data from stdin...
*/
if (snmp_fd >= 0)
snmp_update = time(NULL) + 5;
for (;;)
{
/*
* Use select() to determine whether we have data to copy around...
*/
FD_ZERO(&input);
FD_SET(0, &input);
if (side_cb)
FD_SET(CUPS_SC_FD, &input);
if (snmp_fd >= 0)
{
curtime = time(NULL);
timeout.tv_sec = curtime >= snmp_update ? 0 : snmp_update - curtime;
timeout.tv_usec = 0;
nfds = select(CUPS_SC_FD + 1, &input, NULL, NULL, &timeout);
}
else
nfds = select(CUPS_SC_FD + 1, &input, NULL, NULL, NULL);
if (nfds < 0)
{
/*
* Pause printing to clear any pending errors...
*/
if (errno == EINTR)
{
fputs("DEBUG: Received an interrupt before any bytes were "
"written, aborting.\n", stderr);
return (0);
}
sleep(1);
continue;
}
/*
* Check for input on stdin...
*/
if (FD_ISSET(0, &input))
break;
/*
* Check if we have a side-channel request ready...
*/
if (side_cb && FD_ISSET(CUPS_SC_FD, &input))
{
/*
* Do the side-channel request, then start back over in the select
* loop since it may have read from print_fd...
*/
if ((*side_cb)(0, -1, snmp_fd, addr, use_bc))
side_cb = NULL;
continue;
}
/*
* Do SNMP updates periodically...
*/
if (snmp_fd >= 0 && curtime >= snmp_update)
{
if (backendSNMPSupplies(snmp_fd, addr, NULL, NULL))
snmp_fd = -1;
else
snmp_update = curtime + 5;
}
}
/*
* Return with success...
*/
return (1);
}
-297
Ver Arquivo
@@ -1,297 +0,0 @@
/*
* "$Id$"
*
* Serial port backend for the Common UNIX Printing System (CUPS).
*
* Copyright 1997-1999 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
* copyright law. Distribution and use rights are outlined in the file
* "LICENSE" which should have been included with this file. If this
* file is missing or damaged please contact Easy Software Products
* at:
*
* Attn: CUPS Licensing Information
* Easy Software Products
* 44141 Airport View Drive, Suite 204
* Hollywood, Maryland 20636-3111 USA
*
* Voice: (301) 373-9603
* EMail: cups-info@cups.org
* WWW: http://www.cups.org
*
* Contents:
*
* main() - Send a file to the printer or server.
*/
/*
* Include necessary headers.
*/
#include <cups/cups.h>
#include <stdio.h>
#include <stdlib.h>
#include <cups/string.h>
#if defined(WIN32) || defined(__EMX__)
# include <io.h>
#else
# include <unistd.h>
# include <fcntl.h>
# include <termios.h>
#endif /* WIN32 || __EMX__ */
/*
* 'main()' - Send a file to the printer or server.
*
* Usage:
*
* printer-uri job-id user title copies options [file]
*/
int /* O - Exit status */
main(int argc, /* I - Number of command-line arguments (6 or 7) */
char *argv[]) /* I - Command-line arguments */
{
char method[255], /* Method in URI */
hostname[1024], /* Hostname */
username[255], /* Username info (not used) */
resource[1024], /* Resource info (device and options) */
*options, /* Pointer to options */
name[255], /* Name of option */
value[255], /* Value of option */
*ptr; /* Pointer into name or value */
int port; /* Port number (not used) */
FILE *fp; /* Print file */
int fd; /* Parallel device */
int error; /* Error code (if any) */
size_t nbytes, /* Number of bytes written */
tbytes; /* Total number of bytes written */
char buffer[8192]; /* Output buffer */
struct termios opts; /* Parallel port options */
if (argc < 6 || argc > 7)
{
fputs("Usage: serial job-id user title copies options [file]\n", stderr);
return (1);
}
/*
* If we have 7 arguments, print the file named on the command-line.
* Otherwise, send stdin instead...
*/
if (argc == 6)
fp = stdin;
else
{
/*
* Try to open the print file...
*/
if ((fp = fopen(argv[6], "rb")) == NULL)
{
perror("ERROR: unable to open print file");
return (1);
}
}
/*
* Extract the device name and options from the URI...
*/
httpSeparate(argv[0], method, username, hostname, &port, resource);
/*
* See if there are any options...
*/
if ((options = strchr(resource, '?')) != NULL)
{
/*
* Yup, terminate the device name string and move to the first
* character of the options...
*/
*options++ = '\0';
}
/*
* Open the parallel port device...
*/
if ((fd = open(resource, O_WRONLY)) == -1)
{
perror("ERROR: Unable to open serial port device file");
return (1);
}
/*
* Set any options provided...
*/
tcgetattr(fd, &opts);
opts.c_lflag &= ~(ICANON | ECHO | ISIG); /* Raw mode */
if (options != NULL)
while (*options)
{
/*
* Get the name...
*/
for (ptr = name; *options && *options != '=';)
*ptr++ = *options++;
*ptr = '\0';
if (*options == '=')
{
/*
* Get the value...
*/
options ++;
for (ptr = value; *options && *options != '+';)
*ptr++ = *options++;
*ptr = '\0';
if (*options == '+')
options ++;
}
else
value[0] = '\0';
/*
* Process the option...
*/
if (strcasecmp(name, "baud") == 0)
{
/*
* Set the baud rate...
*/
#if B19200 == 19200
cfsetispeed(&opts, atoi(value));
cfsetospeed(&opts, atoi(value));
#else
switch (atoi(value))
{
case 1200 :
cfsetispeed(&opts, B1200);
cfsetospeed(&opts, B1200);
break;
case 2400 :
cfsetispeed(&opts, B2400);
cfsetospeed(&opts, B2400);
break;
case 4800 :
cfsetispeed(&opts, B4800);
cfsetospeed(&opts, B4800);
break;
case 9600 :
cfsetispeed(&opts, B9600);
cfsetospeed(&opts, B9600);
break;
case 19200 :
cfsetispeed(&opts, B19200);
cfsetospeed(&opts, B19200);
break;
case 38400 :
cfsetispeed(&opts, B38400);
cfsetospeed(&opts, B38400);
break;
default :
fprintf(stderr, "WARNING: Unsupported baud rate %s!\n", value);
break;
}
#endif /* B19200 == 19200 */
}
else if (strcasecmp(name, "bits") == 0)
{
/*
* Set number of data bits...
*/
switch (atoi(value))
{
case 7 :
opts.c_cflag &= ~CSIZE;
opts.c_cflag |= CS7;
opts.c_cflag |= PARENB;
opts.c_cflag &= ~PARODD;
break;
case 8 :
opts.c_cflag &= ~CSIZE;
opts.c_cflag |= CS8;
opts.c_cflag &= ~PARENB;
break;
}
}
else if (strcasecmp(name, "parity") == 0)
{
/*
* Set parity checking...
*/
if (strcasecmp(value, "even") == 0)
{
opts.c_cflag |= PARENB;
opts.c_cflag &= ~PARODD;
}
else if (strcasecmp(value, "odd") == 0)
{
opts.c_cflag |= PARENB;
opts.c_cflag |= PARODD;
}
else if (strcasecmp(value, "none") == 0)
opts.c_cflag &= ~PARENB;
}
}
tcsetattr(fd, TCSANOW, &opts);
/*
* Finally, send the print file...
*/
tbytes = 0;
while ((nbytes = fread(buffer, 1, sizeof(buffer), fp)) > 0)
{
/*
* Write the print data to the printer...
*/
if (write(fd, buffer, nbytes) < nbytes)
{
perror("ERROR: Unable to send print file to printer");
break;
}
else
tbytes += nbytes;
if (argc > 6)
fprintf(stderr, "INFO: Sending print file, %u bytes...\n", tbytes);
}
/*
* Close the socket connection and input file and return...
*/
close(fd);
if (fp != stdin)
fclose(fp);
return (0);
}
/*
* End of "$Id$".
*/
-88
Ver Arquivo
@@ -1,88 +0,0 @@
#!/bin/sh
#
# "$Id$"
#
# SMB printing script for the Common UNIX Printing System (CUPS).
#
# Copyright 1993-1999 by Easy Software Products, all rights reserved.
#
# These coded instructions, statements, and computer programs are the
# property of Easy Software Products and are protected by Federal
# copyright law. Distribution and use rights are outlined in the file
# "LICENSE.txt" which should have been included with this file. If this
# file is missing or damaged please contact Easy Software Products
# at:
#
# Attn: CUPS Licensing Information
# Easy Software Products
# 44145 Airport View Drive, Suite 204
# Hollywood, Maryland 20636-3111 USA
#
# Voice: (301) 373-9603
# EMail: cups-info@cups.org
# WWW: http://www.cups.org
#
SMBCLIENT=/usr/local/samba/bin/smbclient
#
# Usage:
#
# printer job user title copies options [filename]
#
if [ $# -lt 5 -o $# -gt 6 ]; then
# Too few or too many arguments
echo 'Usage: smb job-id user title copies options [file]' >&2
exit 1
fi
#
# If "filename" is not on the command-line, then we read the print
# data from stdin and write it to a temporary file.
#
if [ $# = 5 ]; then
# Collect all print data and put it in a temporary file...
if [ "$TMPDIR" = "" ]; then
TMPDIR=/var/tmp
fi
filename="$TMPDIR/$$.smb"
cat >$filename
else
# Use the file on the command-line...
filename="$6"
fi
#
# Take apart the URI in $0...
#
uri="$0"
host=`echo $uri | awk -F/ '{print substr($3, index($3, "@") + 1)}'`
user=`echo $uri | awk -F/ '{print substr($3, 0, index($3, "@") - 1)}'`
if [ "$user" != "" ]; then
user="-U $user"
fi
printer=`echo $uri | awk -F/ '{print $4}'`
#
# Send the file to the remote system...
#
$SMBCLIENT //$host/$printer $user -P -N <<EOF
print $filename
EOF
#
# Lastly, remove the temporary file as needed...
#
if [ $# = 5 ]; then
rm -f $filename
fi
#
# End of "$Id$".
#
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+1356
Ver Arquivo
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+172
Ver Arquivo
@@ -0,0 +1,172 @@
snmp.txt - 2006-04-19
---------------------
This file lists the "interesting" bits from the command:
snmpwalk -v 1 -c public HOST .1
for many network print servers and internal cards. It is mainly here
for SNMP documentation and development purposes.
AXIS 5600
SNMPv2-MIB::sysDescr.0 = STRING: HP ETHERNET MULTI-ENVIRONMENT,ROM J.sp.00,JETDIRECT EX,JD28,EEPROM 6.16.5
SNMPv2-MIB::sysName.0 = STRING:
HOST-RESOURCES-MIB::hrDeviceType.1 = OID: HOST-RESOURCES-TYPES::hrDevicePrinter
HOST-RESOURCES-MIB::hrDeviceType.2 = OID: HOST-RESOURCES-TYPES::hrDevicePrinter
HOST-RESOURCES-MIB::hrDeviceType.3 = OID: HOST-RESOURCES-TYPES::hrDevicePrinter
HOST-RESOURCES-MIB::hrDeviceDescr.1 = STRING: Hewlett-Packard hp LaserJet 3380
HOST-RESOURCES-MIB::hrDeviceDescr.2 = STRING: Axis AXIS 5600
HOST-RESOURCES-MIB::hrDeviceDescr.3 = STRING: Axis AXIS 5600
HOST-RESOURCES-MIB::hrDeviceID.1 = OID: SNMPv2-SMI::zeroDotZero
HOST-RESOURCES-MIB::hrDeviceID.2 = OID: SNMPv2-SMI::zeroDotZero
HOST-RESOURCES-MIB::hrDeviceID.3 = OID: SNMPv2-SMI::zeroDotZero
SNMPv2-SMI::enterprises.11.2.4.3.10.8.0 = STRING: "AXIS433AE8"
SNMPv2-SMI::enterprises.368.2.3.2.601.0 = INTEGER: 9100
SNMPv2-SMI::enterprises.368.2.3.2.602.0 = INTEGER: 9101
SNMPv2-SMI::enterprises.368.2.3.2.603.0 = INTEGER: 9102
SNMPv2-SMI::enterprises.368.2.3.10.901.0 = STRING: "AXIS433AE8"
AXIS OfficeBasic
SNMPv2-MIB::sysDescr.0 = STRING: AXIS OfficeBasic Parallel Network Print Server V6.43 Sep 4 2003
HOST-RESOURCES-MIB::hrDeviceType.1 = OID: HOST-RESOURCES-TYPES::hrDevicePrinter
HOST-RESOURCES-MIB::hrDeviceDescr.1 = STRING: EPSON Stylus Photo 870
HOST-RESOURCES-MIB::hrDeviceID.1 = OID: SNMPv2-SMI::zeroDotZero
DLink DP-301P+
SNMPv2-MIB::sysDescr.0 = STRING: D-Link DP-301P+ Print Server
Genicom ML280
SNMPv2-MIB::sysDescr.0 = STRING: GENICOM microLaser 280
SNMPv2-MIB::sysName.0 = STRING: PRQ_004F75
HOST-RESOURCES-MIB::hrDeviceType.1 = OID: HOST-RESOURCES-TYPES::hrDevicePrinter
HOST-RESOURCES-MIB::hrDeviceDescr.1 = STRING: MANUFACTURER:GENICOM;MODEL:microLaser 280;
HOST-RESOURCES-MIB::hrDeviceID.1 = OID: SNMPv2-SMI::enterprises.3369.1.1.2.4
EPSON Type-B Network Card
SNMPv2-MIB::sysDescr.0 = STRING: EPSON Type-B 10Base-T/100Base-TX Print Server
SNMPv2-MIB::sysName.0 = STRING: StylusPro7600-BB87A8
HOST-RESOURCES-MIB::hrDeviceType.1 = OID: HOST-RESOURCES-TYPES::hrDevicePrinter
HOST-RESOURCES-MIB::hrDeviceDescr.1 = STRING: EPSON Stylus Pro 7600
HOST-RESOURCES-MIB::hrDeviceID.1 = OID: SNMPv2-SMI::enterprises.1248.1.2.1.22.69.109.117.108.97.116.101.83.116.121.108.117.115.32.80.114.111.32.55.54.48.48
SNMPv2-SMI::enterprises.11.2.3.9.1.1.7.0 = STRING: "MFG:EPSON;CMD:ESCPL2,BDC;MDL:Stylus Pro 7600;CLS:PRINTER;DES:EPSON Stylus Pro 7600;"
SNMPv2-SMI::enterprises.1248.1.2.2.1.1.1.1.1 = STRING: "MFG:EPSON;CMD:ESCPL2,BDC;MDL:Stylus Pro 7600;CLS:PRINTER;DES:EPSON Stylus Pro 7600;"
EPSON Wireless 802.11b Print Server
SNMPv2-MIB::sysDescr.0 = STRING: EPSON Wireless LAN Print Interface compatible with an HP JETDIRECT EX
SNMPv2-MIB::sysName.0 = STRING: EAI_0F550B
HOST-RESOURCES-MIB::hrDeviceType.1 = OID: HOST-RESOURCES-TYPES::hrDevicePrinter
HOST-RESOURCES-MIB::hrDeviceDescr.1 = STRING:
HOST-RESOURCES-MIB::hrDeviceID.1 = OID: SNMPv2-SMI::zeroDotZero
HP JetDirect EX3plus
SNMPv2-MIB::sysDescr.0 = STRING: HP ETHERNET MULTI-ENVIRONMENT,ROM D.04.03,JETDIRECT EX,JD26,EEPROM D.05.22
SNMPv2-MIB::sysName.0 = STRING: NPID1EC0F
HP LJ4000
SNMPv2-MIB::sysDescr.0 = STRING: HP ETHERNET MULTI-ENVIRONMENT,ROM G.05.34,JETDIRECT,JD30,EEPROM G.08.32
SNMPv2-MIB::sysName.0 = STRING:
HOST-RESOURCES-MIB::hrDeviceType.1 = OID: HOST-RESOURCES-TYPES::hrDevicePrinter
HOST-RESOURCES-MIB::hrDeviceDescr.1 = STRING: HP LaserJet 4000 Series
HOST-RESOURCES-MIB::hrDeviceID.1 = OID: SNMPv2-SMI::enterprises.11.2.3.9.1.2.5
HP CLJ4550
SNMPv2-MIB::sysDescr.0 = STRING: HP ETHERNET MULTI-ENVIRONMENT,ROM L.20.07,JETDIRECT,JD84,EEPROM L.21.22,CIDATE 07/06/2001
SNMPv2-MIB::sysName.0 = STRING: NPI02FDE7
HOST-RESOURCES-MIB::hrDeviceDescr.1 = STRING: HP Color LaserJet 4550
HOST-RESOURCES-MIB::hrDeviceDescr.2 = STRING: Hewlett-Packard Dynamic RAM Disk
HOST-RESOURCES-MIB::hrDeviceID.1 = OID: SNMPv2-SMI::enterprises.11.2.3.9.1.2.14
Lexmark C522
SNMPv2-MIB::sysDescr.0 = STRING: Lexmark C522 version NS.NP.N212 kernel 2.6.6 All-N-1
SNMPv2-MIB::sysName.0 = STRING: ET0004000D0CCA
HOST-RESOURCES-MIB::hrDeviceType.1 = OID: HOST-RESOURCES-TYPES::hrDevicePrinter
HOST-RESOURCES-MIB::hrDeviceType.2 = OID: HOST-RESOURCES-TYPES::hrDeviceNonVolatileMemory
HOST-RESOURCES-MIB::hrDeviceType.3 = OID: HOST-RESOURCES-TYPES::hrDeviceProcessor
HOST-RESOURCES-MIB::hrDeviceType.4 = OID: HOST-RESOURCES-TYPES::hrDeviceSerialPort
HOST-RESOURCES-MIB::hrDeviceType.5 = OID: HOST-RESOURCES-TYPES::hrDeviceNetwork
HOST-RESOURCES-MIB::hrDeviceDescr.1 = STRING: Lexmark C522 9421TTV LS.FA.P129
HOST-RESOURCES-MIB::hrDeviceDescr.2 = STRING: Nonvolatile RAM
HOST-RESOURCES-MIB::hrDeviceDescr.3 = STRING: IBM 750 Rev CXr
HOST-RESOURCES-MIB::hrDeviceDescr.4 = STRING: USB Interface
HOST-RESOURCES-MIB::hrDeviceDescr.5 = STRING: Network Interface
HOST-RESOURCES-MIB::hrDeviceID.1 = OID: SNMPv2-SMI::zeroDotZero
HOST-RESOURCES-MIB::hrDeviceID.2 = OID: SNMPv2-SMI::zeroDotZero
HOST-RESOURCES-MIB::hrDeviceID.3 = OID: SNMPv2-SMI::zeroDotZero
HOST-RESOURCES-MIB::hrDeviceID.4 = OID: SNMPv2-SMI::zeroDotZero
HOST-RESOURCES-MIB::hrDeviceID.5 = OID: SNMPv2-SMI::enterprises.641.1
SNMPv2-SMI::enterprises.641.2.1.2.1.2.1 = STRING: "Lexmark C522"
SNMPv2-SMI::enterprises.641.2.1.2.1.3.1 = STRING: "MANUFACTURER:Lexmark International;COMMAND SET:;MODEL:Lexmark C522"
Linksys EPSX3
SNMPv2-MIB::sysDescr.0 = STRING: ETHERNET MULTI-ENVIRONMENT.ROM, JETDIRECT EX, EEPROM 6016
NetGear PS113
SNMPv2-MIB::sysDescr.0 = STRING: A SNMP proxy agent.
Okidata C7200
SNMPv2-MIB::sysDescr.0 = STRING: OkiLAN 6200e
SNMPv2-MIB::sysName.0 = STRING: OKI7009715
HOST-RESOURCES-MIB::hrDeviceType.1 = OID: HOST-RESOURCES-TYPES::hrDevicePrinter
HOST-RESOURCES-MIB::hrDeviceType.2 = OID: HOST-RESOURCES-TYPES::hrDeviceNonVolat
ileMemory
HOST-RESOURCES-MIB::hrDeviceDescr.1 = STRING: C7200
HOST-RESOURCES-MIB::hrDeviceDescr.2 = STRING: FLASH0
HOST-RESOURCES-MIB::hrDeviceID.1 = OID: SNMPv2-SMI::enterprises.2001.1.1.1.1
HOST-RESOURCES-MIB::hrDeviceID.2 = OID: SNMPv2-SMI::zeroDotZero
SNMPv2-SMI::mib-2.43.14.1.1.3.1.1 = STRING: "IEEE 1284"
SNMPv2-SMI::mib-2.43.14.1.1.3.1.2 = STRING: "EtherTalk Phase 2"
SNMPv2-SMI::mib-2.43.14.1.1.3.1.3 = STRING: "LPD"
SNMPv2-SMI::mib-2.43.14.1.1.3.1.4 = STRING: "Netware Rprinter"
SNMPv2-SMI::mib-2.43.14.1.1.3.1.5 = STRING: "Netware Bindery or NDS Pserver"
SNMPv2-SMI::mib-2.43.14.1.1.3.1.6 = STRING: "Raw TCP Port 9100"
SNMPv2-SMI::mib-2.43.14.1.1.3.1.7 = STRING: "FTP"
SNMPv2-SMI::mib-2.43.14.1.1.3.1.8 = STRING: "DLC/LLC"
SNMPv2-SMI::enterprises.2001.1.1.1.1.1.3530.0 = STRING: "C7200"
Xerox N2025
SNMPv2-MIB::sysDescr.0 = STRING: Xerox DocuPrint N2025 Network Laser Printer - 2.12-02
SNMPv2-MIB::sysName.0 = STRING:
HOST-RESOURCES-MIB::hrDeviceType.1 = OID: HOST-RESOURCES-TYPES::hrDevicePrinter
HOST-RESOURCES-MIB::hrDeviceType.2 = OID: HOST-RESOURCES-TYPES::hrDeviceParallelPort
HOST-RESOURCES-MIB::hrDeviceType.3 = OID: HOST-RESOURCES-TYPES::hrDeviceNetwork
HOST-RESOURCES-MIB::hrDeviceType.6 = OID: HOST-RESOURCES-TYPES::hrDeviceProcessor
HOST-RESOURCES-MIB::hrDeviceType.7 = OID: HOST-RESOURCES-TYPES::hrDeviceOther
HOST-RESOURCES-MIB::hrDeviceType.9 = OID: HOST-RESOURCES-TYPES::hrDeviceVolatileMemory
HOST-RESOURCES-MIB::hrDeviceType.10 = OID: HOST-RESOURCES-TYPES::hrDeviceNonVolatileMemory
HOST-RESOURCES-MIB::hrDeviceDescr.1 = STRING: Xerox DocuPrint N2025 Network Laser Printer - 2.12-02
HOST-RESOURCES-MIB::hrDeviceDescr.2 = STRING: IEEE 1284 port
HOST-RESOURCES-MIB::hrDeviceDescr.3 = STRING: Ethernet port
HOST-RESOURCES-MIB::hrDeviceDescr.6 = STRING: Motorola Power PC
HOST-RESOURCES-MIB::hrDeviceDescr.7 = STRING: USB Port
HOST-RESOURCES-MIB::hrDeviceDescr.9 = STRING: RAM Memory
HOST-RESOURCES-MIB::hrDeviceDescr.10 = STRING: ROM Memory
HOST-RESOURCES-MIB::hrDeviceID.1 = OID: SNMPv2-SMI::enterprises.253.8.62.1.3.2.17.1
+392 -131
Ver Arquivo
@@ -1,52 +1,40 @@
/*
* "$Id$"
* AppSocket backend for CUPS.
*
* AppSocket backend for the Common UNIX Printing System (CUPS).
* Copyright © 2007-2018 by Apple Inc.
* Copyright © 1997-2007 by Easy Software Products, all rights reserved.
*
* Copyright 1997-1999 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
* copyright law. Distribution and use rights are outlined in the file
* "LICENSE" which should have been included with this file. If this
* file is missing or damaged please contact Easy Software Products
* at:
*
* Attn: CUPS Licensing Information
* Easy Software Products
* 44141 Airport View Drive, Suite 204
* Hollywood, Maryland 20636-3111 USA
*
* Voice: (301) 373-9603
* EMail: cups-info@cups.org
* WWW: http://www.cups.org
*
* Contents:
*
* main() - Send a file to the printer or server.
* Licensed under Apache License v2.0. See the file "LICENSE" for more
* information.
*/
/*
* Include necessary headers.
*/
#include <cups/cups.h>
#include <stdio.h>
#include <stdlib.h>
#include <cups/http-private.h>
#include "backend-private.h"
#include <stdarg.h>
#include <cups/string.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/stat.h>
#if defined(WIN32) || defined(__EMX__)
#ifdef _WIN32
# include <winsock.h>
#else
# include <unistd.h>
# include <fcntl.h>
# include <sys/socket.h>
# include <netinet/in.h>
# include <arpa/inet.h>
# include <netdb.h>
#endif /* WIN32 || __EMX__ */
#endif /* _WIN32 */
/*
* Local functions...
*/
static ssize_t wait_bc(int device_fd, int secs);
/*
@@ -57,34 +45,80 @@
* printer-uri job-id user title copies options [file]
*/
int /* O - Exit status */
main(int argc, /* I - Number of command-line arguments (6 or 7) */
char *argv[]) /* I - Command-line arguments */
int /* O - Exit status */
main(int argc, /* I - Number of command-line arguments (6 or 7) */
char *argv[]) /* I - Command-line arguments */
{
char method[255], /* Method in URI */
hostname[1024], /* Hostname */
username[255], /* Username info (not used) */
resource[1024]; /* Resource info (not used) */
FILE *fp; /* Print file */
int port; /* Port number */
int fd; /* AppSocket */
int error; /* Error code (if any) */
struct sockaddr_in addr; /* Socket address */
struct hostent *hostaddr; /* Host address */
int wbytes; /* Number of bytes written */
size_t nbytes, /* Number of bytes read */
tbytes; /* Total number of bytes written */
char buffer[8192], /* Output buffer */
*bufptr; /* Pointer into buffer */
struct timeval timeout; /* Timeout for select() */
fd_set input; /* Input set for select() */
const char *device_uri; /* Device URI */
char scheme[255], /* Scheme in URI */
hostname[1024], /* Hostname */
username[255], /* Username info (not used) */
resource[1024], /* Resource info (not used) */
*options, /* Pointer to options */
*name, /* Name of option */
*value, /* Value of option */
sep; /* Option separator */
int print_fd; /* Print file */
int copies; /* Number of copies to print */
time_t start_time; /* Time of first connect */
int contimeout; /* Connection timeout */
int waiteof; /* Wait for end-of-file? */
int port; /* Port number */
int delay; /* Delay for retries... */
int device_fd; /* AppSocket */
int error; /* Error code (if any) */
http_addrlist_t *addrlist, /* Address list */
*addr; /* Connected address */
char addrname[256]; /* Address name */
int snmp_enabled = 1; /* Is SNMP enabled? */
int snmp_fd, /* SNMP socket */
start_count, /* Page count via SNMP at start */
page_count, /* Page count via SNMP */
have_supplies; /* Printer supports supply levels? */
ssize_t bytes = 0, /* Initial bytes read */
tbytes; /* Total number of bytes written */
char buffer[1024]; /* Initial print buffer */
#if defined(HAVE_SIGACTION) && !defined(HAVE_SIGSET)
struct sigaction action; /* Actions for POSIX signals */
#endif /* HAVE_SIGACTION && !HAVE_SIGSET */
if (argc < 6 || argc > 7)
/*
* Make sure status messages are not buffered...
*/
setbuf(stderr, NULL);
/*
* Ignore SIGPIPE signals...
*/
#ifdef HAVE_SIGSET
sigset(SIGPIPE, SIG_IGN);
#elif defined(HAVE_SIGACTION)
memset(&action, 0, sizeof(action));
action.sa_handler = SIG_IGN;
sigaction(SIGPIPE, &action, NULL);
#else
signal(SIGPIPE, SIG_IGN);
#endif /* HAVE_SIGSET */
/*
* Check command-line...
*/
if (argc == 1)
{
fprintf(stderr, "Usage: %s job-id user title copies options [file]\n",
argv[0]);
return (1);
printf("network socket \"Unknown\" \"%s\"\n",
_cupsLangString(cupsLangDefault(), _("AppSocket/HP JetDirect")));
return (CUPS_BACKEND_OK);
}
else if (argc < 6 || argc > 7)
{
_cupsLangPrintf(stderr,
_("Usage: %s job-id user title copies options [file]"),
argv[0]);
return (CUPS_BACKEND_FAILED);
}
/*
@@ -93,140 +127,367 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
*/
if (argc == 6)
fp = stdin;
{
print_fd = 0;
copies = 1;
}
else
{
/*
* Try to open the print file...
*/
if ((fp = fopen(argv[6], "rb")) == NULL)
if ((print_fd = open(argv[6], O_RDONLY)) < 0)
{
perror("ERROR: unable to open print file");
return (1);
_cupsLangPrintError("ERROR", _("Unable to open print file"));
return (CUPS_BACKEND_FAILED);
}
copies = atoi(argv[4]);
}
/*
* Extract the hostname and port number from the URI...
*/
httpSeparate(argv[0], method, username, hostname, &port, resource);
while ((device_uri = cupsBackendDeviceURI(argv)) == NULL)
{
_cupsLangPrintFilter(stderr, "INFO", _("Unable to locate printer."));
sleep(10);
if (getenv("CLASS") != NULL)
return (CUPS_BACKEND_FAILED);
}
httpSeparateURI(HTTP_URI_CODING_ALL, device_uri, scheme, sizeof(scheme),
username, sizeof(username), hostname, sizeof(hostname), &port,
resource, sizeof(resource));
if (port == 0)
port = 9100; /* Default to HP JetDirect/Tektronix PhaserShare */
/*
* Then try to connect to the remote host...
* Get options, if any...
*/
if ((hostaddr = gethostbyname(hostname)) == NULL)
waiteof = 1;
contimeout = 7 * 24 * 60 * 60;
if ((options = strchr(resource, '?')) != NULL)
{
fprintf(stderr, "ERROR: Unable to locate printer \'%s\' - %s",
hostname, strerror(errno));
return (1);
/*
* Yup, terminate the device name string and move to the first
* character of the options...
*/
*options++ = '\0';
/*
* Parse options...
*/
while (*options)
{
/*
* Get the name...
*/
name = options;
while (*options && *options != '=' && *options != '+' && *options != '&')
options ++;
if ((sep = *options) != '\0')
*options++ = '\0';
if (sep == '=')
{
/*
* Get the value...
*/
value = options;
while (*options && *options != '+' && *options != '&')
options ++;
if (*options)
*options++ = '\0';
}
else
value = (char *)"";
/*
* Process the option...
*/
if (!_cups_strcasecmp(name, "waiteof"))
{
/*
* Set the wait-for-eof value...
*/
waiteof = !value[0] || !_cups_strcasecmp(value, "on") ||
!_cups_strcasecmp(value, "yes") || !_cups_strcasecmp(value, "true");
}
else if (!_cups_strcasecmp(name, "snmp"))
{
/*
* Enable/disable SNMP stuff...
*/
snmp_enabled = !value[0] || !_cups_strcasecmp(value, "on") ||
!_cups_strcasecmp(value, "yes") ||
!_cups_strcasecmp(value, "true");
}
else if (!_cups_strcasecmp(name, "contimeout"))
{
/*
* Set the connection timeout...
*/
if (atoi(value) > 0)
contimeout = atoi(value);
}
}
}
fprintf(stderr, "INFO: Attempting to connect to host %s on port %d\n",
hostname, port);
/*
* Then try finding the remote host...
*/
memset(&addr, 0, sizeof(addr));
memcpy(&(addr.sin_addr), hostaddr->h_addr, hostaddr->h_length);
addr.sin_family = hostaddr->h_addrtype;
addr.sin_port = htons(port);
start_time = time(NULL);
for (;;)
addrlist = backendLookup(hostname, port, NULL);
/*
* See if the printer supports SNMP...
*/
if (snmp_enabled)
snmp_fd = _cupsSNMPOpen(addrlist->addr.addr.sa_family);
else
snmp_fd = -1;
if (snmp_fd >= 0)
have_supplies = !backendSNMPSupplies(snmp_fd, &(addrlist->addr),
&start_count, NULL);
else
have_supplies = start_count = 0;
/*
* Wait for data from the filter...
*/
if (print_fd == 0)
{
if ((fd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
{
perror("ERROR: Unable to connect to printer");
return (1);
}
if (!backendWaitLoop(snmp_fd, &(addrlist->addr), 1, backendNetworkSideCB))
return (CUPS_BACKEND_OK);
else if ((bytes = read(0, buffer, sizeof(buffer))) <= 0)
return (CUPS_BACKEND_OK);
}
if (connect(fd, (struct sockaddr *)&addr, sizeof(addr)) < 0)
{
error = errno;
close(fd);
fd = -1;
/*
* Connect to the printer...
*/
if (error == ECONNREFUSED)
fprintf(stderr, "DEBUG: Connecting to %s:%d\n", hostname, port);
_cupsLangPrintFilter(stderr, "INFO", _("Connecting to printer."));
for (delay = 5;;)
{
if ((addr = httpAddrConnect(addrlist, &device_fd)) == NULL)
{
error = errno;
device_fd = -1;
if (getenv("CLASS") != NULL)
{
fprintf(stderr, "INFO: Network host \'%s\' is busy; will retry in 30 seconds...\n",
hostname);
sleep(30);
/*
* If the CLASS environment variable is set, the job was submitted
* to a class and not to a specific queue. In this case, we want
* to abort immediately so that the job can be requeued on the next
* available printer in the class.
*/
_cupsLangPrintFilter(stderr, "INFO",
_("Unable to contact printer, queuing on next "
"printer in class."));
/*
* Sleep 5 seconds to keep the job from requeuing too rapidly...
*/
sleep(5);
return (CUPS_BACKEND_FAILED);
}
fprintf(stderr, "DEBUG: Connection error: %s\n", strerror(error));
if (errno == ECONNREFUSED || errno == EHOSTDOWN || errno == EHOSTUNREACH || errno == ETIMEDOUT || errno == ENOTCONN)
{
if (contimeout && (time(NULL) - start_time) > contimeout)
{
_cupsLangPrintFilter(stderr, "ERROR",
_("The printer is not responding."));
return (CUPS_BACKEND_FAILED);
}
switch (error)
{
case EHOSTDOWN :
_cupsLangPrintFilter(stderr, "WARNING",
_("The printer may not exist or "
"is unavailable at this time."));
break;
case EHOSTUNREACH :
default :
_cupsLangPrintFilter(stderr, "WARNING",
_("The printer is unreachable at this "
"time."));
break;
case ECONNREFUSED :
_cupsLangPrintFilter(stderr, "WARNING",
_("The printer is in use."));
break;
}
sleep((unsigned)delay);
if (delay < 30)
delay += 5;
}
else
{
perror("ERROR: Unable to connect to printer");
return (1);
_cupsLangPrintFilter(stderr, "ERROR",
_("The printer is not responding."));
sleep(30);
}
}
else
break;
}
fputs("STATE: -connecting-to-device\n", stderr);
_cupsLangPrintFilter(stderr, "INFO", _("Connected to printer."));
fprintf(stderr, "DEBUG: Connected to %s:%d...\n",
httpAddrString(&(addr->addr), addrname, sizeof(addrname)),
httpAddrPort(&(addr->addr)));
/*
* Finally, send the print file...
* Print everything...
*/
fputs("INFO: Connected to host, sending print job...\n", stderr);
tbytes = 0;
while ((nbytes = fread(buffer, 1, sizeof(buffer), fp)) > 0)
if (bytes > 0)
tbytes += write(device_fd, buffer, (size_t)bytes);
while (copies > 0 && tbytes >= 0)
{
copies --;
if (print_fd != 0)
{
fputs("PAGE: 1 1\n", stderr);
lseek(print_fd, 0, SEEK_SET);
}
if ((bytes = backendRunLoop(print_fd, device_fd, snmp_fd, &(addrlist->addr), 1, 0, backendNetworkSideCB)) < 0)
tbytes = -1;
else
tbytes = bytes;
if (print_fd != 0 && tbytes >= 0)
_cupsLangPrintFilter(stderr, "INFO", _("Print file sent."));
}
fputs("STATE: +cups-waiting-for-job-completed\n", stderr);
if (waiteof && tbytes >= 0)
{
/*
* Write the print data to the printer...
* Shutdown the socket and wait for the other end to finish...
*/
tbytes += nbytes;
bufptr = buffer;
_cupsLangPrintFilter(stderr, "INFO", _("Waiting for printer to finish."));
while (nbytes > 0)
{
if ((wbytes = send(fd, bufptr, nbytes, 0)) < 0)
{
perror("ERROR: Unable to send print file to printer");
break;
}
shutdown(device_fd, 1);
nbytes -= wbytes;
bufptr += wbytes;
}
/*
* Check for possible data coming back from the printer...
*/
timeout.tv_sec = 0;
timeout.tv_usec = 0;
FD_ZERO(&input);
FD_SET(fd, &input);
if (select(fd + 1, &input, NULL, NULL, &timeout) > 0)
{
/*
* Grab the data coming back and spit it out to stderr...
*/
if ((nbytes = recv(fd, buffer, sizeof(buffer), 0)) > 0)
fprintf(stderr, "INFO: Received %u bytes of back-channel data!\n",
nbytes);
}
else if (argc > 6)
fprintf(stderr, "INFO: Sending print file, %u bytes...\n", tbytes);
while (wait_bc(device_fd, 90) > 0);
}
/*
* Close the socket connection and input file and return...
* Collect the final page count as needed...
*/
close(fd);
if (fp != stdin)
fclose(fp);
if (have_supplies &&
!backendSNMPSupplies(snmp_fd, &(addrlist->addr), &page_count, NULL) &&
page_count > start_count)
fprintf(stderr, "PAGE: total %d\n", page_count - start_count);
return (0);
/*
* Close the socket connection...
*/
close(device_fd);
httpAddrFreeList(addrlist);
/*
* Close the input file and return...
*/
if (print_fd != 0)
close(print_fd);
return (tbytes >= 0 ? CUPS_BACKEND_OK : CUPS_BACKEND_FAILED);
}
/*
* End of "$Id$".
* 'wait_bc()' - Wait for back-channel data...
*/
static ssize_t /* O - # bytes read or -1 on error */
wait_bc(int device_fd, /* I - Socket */
int secs) /* I - Seconds to wait */
{
struct timeval timeout; /* Timeout for select() */
fd_set input; /* Input set for select() */
ssize_t bytes; /* Number of back-channel bytes read */
char buffer[1024]; /* Back-channel buffer */
/*
* Wait up to "secs" seconds for backchannel data...
*/
timeout.tv_sec = secs;
timeout.tv_usec = 0;
FD_ZERO(&input);
FD_SET(device_fd, &input);
if (select(device_fd + 1, &input, NULL, NULL, &timeout) > 0)
{
/*
* Grab the data coming back and spit it out to stderr...
*/
if ((bytes = read(device_fd, buffer, sizeof(buffer))) > 0)
{
fprintf(stderr, "DEBUG: Received %d bytes of back-channel data\n",
(int)bytes);
cupsBackChannelWrite(buffer, (size_t)bytes, 1.0);
}
return (bytes);
}
else
return (-1);
}
+68
Ver Arquivo
@@ -0,0 +1,68 @@
/*
* IEEE-1284 support functions test program for CUPS.
*
* Copyright © 2007-2010 by Apple Inc.
* Copyright © 1997-2006 by Easy Software Products, all rights reserved.
*
* Licensed under Apache License v2.0. See the file "LICENSE" for more
* information.
*/
/*
* Include necessary headers.
*/
#include <cups/string-private.h>
#ifdef _WIN32
# include <io.h>
#else
# include <unistd.h>
# include <fcntl.h>
#endif /* _WIN32 */
#include "ieee1284.c"
/*
* 'main()' - Test the device-ID functions.
*/
int /* O - Exit status */
main(int argc, /* I - Number of command-line args */
char *argv[]) /* I - Command-line arguments */
{
int i, /* Looping var */
fd; /* File descriptor */
char device_id[1024], /* 1284 device ID string */
make_model[1024], /* make-and-model string */
uri[1024]; /* URI string */
if (argc < 2)
{
puts("Usage: test1284 device-file [... device-file-N]");
exit(1);
}
for (i = 1; i < argc; i ++)
{
if ((fd = open(argv[i], O_RDWR)) < 0)
{
perror(argv[i]);
return (errno);
}
printf("%s:\n", argv[i]);
backendGetDeviceID(fd, device_id, sizeof(device_id), make_model,
sizeof(make_model), "test", uri, sizeof(uri));
printf(" device_id=\"%s\"\n", device_id);
printf(" make_model=\"%s\"\n", make_model);
printf(" uri=\"%s\"\n", uri);
close(fd);
}
return (0);
}
+672
Ver Arquivo
@@ -0,0 +1,672 @@
/*
* Backend test program for CUPS.
*
* Copyright © 2007-2014 by Apple Inc.
* Copyright © 1997-2005 by Easy Software Products, all rights reserved.
*
* Licensed under Apache License v2.0. See the file "LICENSE" for more
* information.
*/
/*
* Include necessary headers.
*/
#include <cups/string-private.h>
#include <cups/cups.h>
#include <cups/sidechannel.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/wait.h>
#include <signal.h>
/*
* Local globals...
*/
static int job_canceled = 0;
/*
* Local functions...
*/
static void sigterm_handler(int sig);
static void usage(void) _CUPS_NORETURN;
static void walk_cb(const char *oid, const char *data, int datalen,
void *context);
/*
* 'main()' - Run the named backend.
*
* Usage:
*
* testbackend [-s] [-t] device-uri job-id user title copies options [file]
*/
int /* O - Exit status */
main(int argc, /* I - Number of command-line args */
char *argv[]) /* I - Command-line arguments */
{
int first_arg, /* First argument for backend */
do_cancel = 0, /* Simulate a cancel-job via SIGTERM */
do_ps = 0, /* Do PostScript query+test? */
do_pcl = 0, /* Do PCL query+test? */
do_side_tests = 0, /* Test side-channel ops? */
do_trickle = 0, /* Trickle data to backend */
do_walk = 0, /* Do OID lookup (0) or walking (1) */
show_log = 0; /* Show log messages from backends? */
const char *oid = ".1.3.6.1.2.1.43.10.2.1.4.1.1";
/* OID to lookup or walk */
char scheme[255], /* Scheme in URI == backend */
backend[1024], /* Backend path */
libpath[1024], /* Path for libcups */
*ptr; /* Pointer into path */
const char *serverbin; /* CUPS_SERVERBIN environment variable */
int fd, /* Temporary file descriptor */
back_fds[2], /* Back-channel pipe */
side_fds[2], /* Side-channel socket */
data_fds[2], /* Data pipe */
back_pid = -1, /* Backend process ID */
data_pid = -1, /* Trickle process ID */
pid, /* Process ID */
status; /* Exit status */
/*
* Get the current directory and point the run-time linker at the "cups"
* subdirectory...
*/
if (getcwd(libpath, sizeof(libpath)) &&
(ptr = strrchr(libpath, '/')) != NULL && !strcmp(ptr, "/backend"))
{
strlcpy(ptr, "/cups", sizeof(libpath) - (size_t)(ptr - libpath));
if (!access(libpath, 0))
{
#ifdef __APPLE__
fprintf(stderr, "Setting DYLD_LIBRARY_PATH to \"%s\".\n", libpath);
setenv("DYLD_LIBRARY_PATH", libpath, 1);
#else
fprintf(stderr, "Setting LD_LIBRARY_PATH to \"%s\".\n", libpath);
setenv("LD_LIBRARY_PATH", libpath, 1);
#endif /* __APPLE__ */
}
else
perror(libpath);
}
/*
* See if we have side-channel tests to do...
*/
for (first_arg = 1;
argv[first_arg] && argv[first_arg][0] == '-';
first_arg ++)
if (!strcmp(argv[first_arg], "-d"))
show_log = 1;
else if (!strcmp(argv[first_arg], "-cancel"))
do_cancel = 1;
else if (!strcmp(argv[first_arg], "-pcl"))
do_pcl = 1;
else if (!strcmp(argv[first_arg], "-ps"))
do_ps = 1;
else if (!strcmp(argv[first_arg], "-s"))
do_side_tests = 1;
else if (!strcmp(argv[first_arg], "-t"))
do_trickle = 1;
else if (!strcmp(argv[first_arg], "-get") && (first_arg + 1) < argc)
{
first_arg ++;
do_side_tests = 1;
oid = argv[first_arg];
}
else if (!strcmp(argv[first_arg], "-walk") && (first_arg + 1) < argc)
{
first_arg ++;
do_side_tests = 1;
do_walk = 1;
oid = argv[first_arg];
}
else
usage();
argc -= first_arg;
if (argc < 6 || argc > 7 || (argc == 7 && do_trickle))
usage();
/*
* Extract the scheme from the device-uri - that's the program we want to
* execute.
*/
if (sscanf(argv[first_arg], "%254[^:]", scheme) != 1)
{
fputs("testbackend: Bad device-uri - no colon!\n", stderr);
return (1);
}
if (!access(scheme, X_OK))
strlcpy(backend, scheme, sizeof(backend));
else
{
if ((serverbin = getenv("CUPS_SERVERBIN")) == NULL)
serverbin = CUPS_SERVERBIN;
snprintf(backend, sizeof(backend), "%s/backend/%s", serverbin, scheme);
if (access(backend, X_OK))
{
fprintf(stderr, "testbackend: Unknown device scheme \"%s\"!\n", scheme);
return (1);
}
}
/*
* Create the back-channel pipe and side-channel socket...
*/
open("/dev/null", O_WRONLY); /* Make sure fd 3 and 4 are used */
open("/dev/null", O_WRONLY);
pipe(back_fds);
fcntl(back_fds[0], F_SETFL, fcntl(back_fds[0], F_GETFL) | O_NONBLOCK);
fcntl(back_fds[1], F_SETFL, fcntl(back_fds[1], F_GETFL) | O_NONBLOCK);
socketpair(AF_LOCAL, SOCK_STREAM, 0, side_fds);
fcntl(side_fds[0], F_SETFL, fcntl(side_fds[0], F_GETFL) | O_NONBLOCK);
fcntl(side_fds[1], F_SETFL, fcntl(side_fds[1], F_GETFL) | O_NONBLOCK);
/*
* Execute the trickle process as needed...
*/
if (do_trickle || do_pcl || do_ps || do_cancel)
{
pipe(data_fds);
signal(SIGTERM, sigterm_handler);
if ((data_pid = fork()) == 0)
{
/*
* Trickle/query child comes here. Rearrange file descriptors so that
* FD 1, 3, and 4 point to the backend...
*/
if ((fd = open("/dev/null", O_RDONLY)) != 0)
{
dup2(fd, 0);
close(fd);
}
if (data_fds[1] != 1)
{
dup2(data_fds[1], 1);
close(data_fds[1]);
}
close(data_fds[0]);
if (back_fds[0] != 3)
{
dup2(back_fds[0], 3);
close(back_fds[0]);
}
close(back_fds[1]);
if (side_fds[0] != 4)
{
dup2(side_fds[0], 4);
close(side_fds[0]);
}
close(side_fds[1]);
if (do_trickle)
{
/*
* Write 10 spaces, 1 per second...
*/
int i; /* Looping var */
for (i = 0; i < 10; i ++)
{
write(1, " ", 1);
sleep(1);
}
}
else if (do_cancel)
{
/*
* Write PS or PCL lines until we see SIGTERM...
*/
int line = 0, page = 0; /* Current line and page */
ssize_t bytes; /* Number of bytes of response data */
char buffer[1024]; /* Output buffer */
if (do_pcl)
write(1, "\033E", 2);
else
write(1, "%!\n/Courier findfont 12 scalefont setfont 0 setgray\n", 52);
while (!job_canceled)
{
if (line == 0)
{
page ++;
if (do_pcl)
snprintf(buffer, sizeof(buffer), "PCL Page %d\r\n\r\n", page);
else
snprintf(buffer, sizeof(buffer),
"18 732 moveto (PS Page %d) show\n", page);
write(1, buffer, strlen(buffer));
}
line ++;
if (do_pcl)
snprintf(buffer, sizeof(buffer), "Line %d\r\n", line);
else
snprintf(buffer, sizeof(buffer), "18 %d moveto (Line %d) show\n",
720 - line * 12, line);
write(1, buffer, strlen(buffer));
if (line >= 55)
{
/*
* Eject after 55 lines...
*/
line = 0;
if (do_pcl)
write(1, "\014", 1);
else
write(1, "showpage\n", 9);
}
/*
* Check for back-channel data...
*/
if ((bytes = cupsBackChannelRead(buffer, sizeof(buffer), 0)) > 0)
write(2, buffer, (size_t)bytes);
/*
* Throttle output to ~100hz...
*/
usleep(10000);
}
/*
* Eject current page with info...
*/
if (do_pcl)
snprintf(buffer, sizeof(buffer),
"Canceled on line %d of page %d\r\n\014\033E", line, page);
else
snprintf(buffer, sizeof(buffer),
"\n18 %d moveto (Canceled on line %d of page %d)\nshowpage\n",
720 - line * 12, line, page);
write(1, buffer, strlen(buffer));
/*
* See if we get any back-channel data...
*/
while ((bytes = cupsBackChannelRead(buffer, sizeof(buffer), 5.0)) > 0)
write(2, buffer, (size_t)bytes);
exit(0);
}
else
{
/*
* Do PS or PCL query + test pages.
*/
char buffer[1024]; /* Buffer for response data */
ssize_t bytes; /* Number of bytes of response data */
double timeout; /* Timeout */
const char *data; /* Data to send */
static const char *pcl_data = /* PCL data */
"\033%-12345X@PJL\r\n"
"@PJL JOB NAME = \"Hello, World!\"\r\n"
"@PJL INFO USTATUS\r\n"
"@PJL ENTER LANGUAGE = PCL\r\n"
"\033E"
"Hello, World!\n"
"\014"
"\033%-12345X@PJL\r\n"
"@PJL EOJ NAME=\"Hello, World!\"\r\n"
"\033%-12345X";
static const char *ps_data = /* PostScript data */
"%!\n"
"save\n"
"product = flush\n"
"currentpagedevice /PageSize get aload pop\n"
"2 copy gt {exch} if\n"
"(Unknown)\n"
"19 dict\n"
"dup [612 792] (Letter) put\n"
"dup [612 1008] (Legal) put\n"
"dup [612 935] (w612h935) put\n"
"dup [522 756] (Executive) put\n"
"dup [595 842] (A4) put\n"
"dup [420 595] (A5) put\n"
"dup [499 709] (ISOB5) put\n"
"dup [516 728] (B5) put\n"
"dup [612 936] (w612h936) put\n"
"dup [284 419] (Postcard) put\n"
"dup [419.5 567] (DoublePostcard) put\n"
"dup [558 774] (w558h774) put\n"
"dup [553 765] (w553h765) put\n"
"dup [522 737] (w522h737) put\n"
"dup [499 709] (EnvISOB5) put\n"
"dup [297 684] (Env10) put\n"
"dup [459 649] (EnvC5) put\n"
"dup [312 624] (EnvDL) put\n"
"dup [279 540] (EnvMonarch) put\n"
"{ exch aload pop 4 index sub abs 5 le exch\n"
" 5 index sub abs 5 le and\n"
" {exch pop exit} {pop} ifelse\n"
"} bind forall\n"
"= flush pop pop\n"
"/Courier findfont 12 scalefont setfont\n"
"0 setgray 36 720 moveto (Hello, ) show product show (!) show\n"
"showpage\n"
"restore\n"
"\004";
if (do_pcl)
data = pcl_data;
else
data = ps_data;
write(1, data, strlen(data));
write(2, "DEBUG: START\n", 13);
timeout = 60.0;
while ((bytes = cupsBackChannelRead(buffer, sizeof(buffer),
timeout)) > 0)
{
write(2, buffer, (size_t)bytes);
timeout = 5.0;
}
write(2, "\nDEBUG: END\n", 12);
}
exit(0);
}
else if (data_pid < 0)
{
perror("testbackend: Unable to fork");
return (1);
}
}
else
data_fds[0] = data_fds[1] = -1;
/*
* Execute the backend...
*/
if ((back_pid = fork()) == 0)
{
/*
* Child comes here...
*/
if (do_trickle || do_ps || do_pcl || do_cancel)
{
if (data_fds[0] != 0)
{
dup2(data_fds[0], 0);
close(data_fds[0]);
}
close(data_fds[1]);
}
if (!show_log)
{
if ((fd = open("/dev/null", O_WRONLY)) != 2)
{
dup2(fd, 2);
close(fd);
}
}
if (back_fds[1] != 3)
{
dup2(back_fds[1], 3);
close(back_fds[0]);
}
close(back_fds[1]);
if (side_fds[1] != 4)
{
dup2(side_fds[1], 4);
close(side_fds[0]);
}
close(side_fds[1]);
execv(backend, argv + first_arg);
fprintf(stderr, "testbackend: Unable to execute \"%s\": %s\n", backend,
strerror(errno));
return (errno);
}
else if (back_pid < 0)
{
perror("testbackend: Unable to fork");
return (1);
}
/*
* Parent comes here, setup back and side channel file descriptors...
*/
if (do_trickle || do_ps || do_pcl || do_cancel)
{
close(data_fds[0]);
close(data_fds[1]);
}
if (back_fds[0] != 3)
{
dup2(back_fds[0], 3);
close(back_fds[0]);
}
close(back_fds[1]);
if (side_fds[0] != 4)
{
dup2(side_fds[0], 4);
close(side_fds[0]);
}
close(side_fds[1]);
/*
* Do side-channel tests as needed, then wait for the backend...
*/
if (do_side_tests)
{
int length; /* Length of buffer */
char buffer[2049]; /* Buffer for reponse */
cups_sc_status_t scstatus; /* Status of side-channel command */
static const char * const statuses[] =
{
"CUPS_SC_STATUS_NONE", /* No status */
"CUPS_SC_STATUS_OK", /* Operation succeeded */
"CUPS_SC_STATUS_IO_ERROR", /* An I/O error occurred */
"CUPS_SC_STATUS_TIMEOUT", /* The backend did not respond */
"CUPS_SC_STATUS_NO_RESPONSE", /* The device did not respond */
"CUPS_SC_STATUS_BAD_MESSAGE", /* The command/response message was invalid */
"CUPS_SC_STATUS_TOO_BIG", /* Response too big */
"CUPS_SC_STATUS_NOT_IMPLEMENTED" /* Command not implemented */
};
sleep(2);
length = 0;
scstatus = cupsSideChannelDoRequest(CUPS_SC_CMD_DRAIN_OUTPUT, buffer,
&length, 60.0);
printf("CUPS_SC_CMD_DRAIN_OUTPUT returned %s\n", statuses[scstatus]);
length = 1;
scstatus = cupsSideChannelDoRequest(CUPS_SC_CMD_GET_BIDI, buffer,
&length, 5.0);
printf("CUPS_SC_CMD_GET_BIDI returned %s, %d\n", statuses[scstatus], buffer[0]);
length = sizeof(buffer) - 1;
scstatus = cupsSideChannelDoRequest(CUPS_SC_CMD_GET_DEVICE_ID, buffer,
&length, 5.0);
buffer[length] = '\0';
printf("CUPS_SC_CMD_GET_DEVICE_ID returned %s, \"%s\"\n",
statuses[scstatus], buffer);
length = 1;
scstatus = cupsSideChannelDoRequest(CUPS_SC_CMD_GET_STATE, buffer,
&length, 5.0);
printf("CUPS_SC_CMD_GET_STATE returned %s, %02X\n", statuses[scstatus],
buffer[0] & 255);
if (do_walk)
{
/*
* Walk the OID tree...
*/
scstatus = cupsSideChannelSNMPWalk(oid, 5.0, walk_cb, NULL);
printf("CUPS_SC_CMD_SNMP_WALK returned %s\n", statuses[scstatus]);
}
else
{
/*
* Lookup the same OID twice...
*/
length = sizeof(buffer);
scstatus = cupsSideChannelSNMPGet(oid, buffer, &length, 5.0);
printf("CUPS_SC_CMD_SNMP_GET %s returned %s, %d bytes (%s)\n", oid,
statuses[scstatus], (int)length, buffer);
length = sizeof(buffer);
scstatus = cupsSideChannelSNMPGet(oid, buffer, &length, 5.0);
printf("CUPS_SC_CMD_SNMP_GET %s returned %s, %d bytes (%s)\n", oid,
statuses[scstatus], (int)length, buffer);
}
length = 0;
scstatus = cupsSideChannelDoRequest(CUPS_SC_CMD_SOFT_RESET, buffer,
&length, 5.0);
printf("CUPS_SC_CMD_SOFT_RESET returned %s\n", statuses[scstatus]);
}
if (do_cancel)
{
sleep(1);
kill(data_pid, SIGTERM);
kill(back_pid, SIGTERM);
}
while ((pid = wait(&status)) > 0)
{
if (status)
{
if (WIFEXITED(status))
printf("%s exited with status %d!\n",
pid == back_pid ? backend : "test",
WEXITSTATUS(status));
else
printf("%s crashed with signal %d!\n",
pid == back_pid ? backend : "test",
WTERMSIG(status));
}
}
/*
* Exit accordingly...
*/
return (status != 0);
}
/*
* 'sigterm_handler()' - Flag when we get SIGTERM.
*/
static void
sigterm_handler(int sig) /* I - Signal */
{
(void)sig;
job_canceled = 1;
}
/*
* 'usage()' - Show usage information.
*/
static void
usage(void)
{
puts("Usage: testbackend [-cancel] [-d] [-ps | -pcl] [-s [-get OID] "
"[-walk OID]] [-t] device-uri job-id user title copies options [file]");
puts("");
puts("Options:");
puts(" -cancel Simulate a canceled print job after 2 seconds.");
puts(" -d Show log messages from backend.");
puts(" -get OID Lookup the specified SNMP OID.");
puts(" (.1.3.6.1.2.1.43.10.2.1.4.1.1 is a good one for printers)");
puts(" -pcl Send PCL+PJL query and test page to backend.");
puts(" -ps Send PostScript query and test page to backend.");
puts(" -s Do side-channel + SNMP tests.");
puts(" -t Send spaces slowly to backend ('trickle').");
puts(" -walk OID Walk the specified SNMP OID.");
puts(" (.1.3.6.1.2.1.43 is a good one for printers)");
exit(1);
}
/*
* 'walk_cb()' - Show results of cupsSideChannelSNMPWalk...
*/
static void
walk_cb(const char *oid, /* I - OID */
const char *data, /* I - Data */
int datalen, /* I - Length of data */
void *context) /* I - Context (unused) */
{
char temp[80];
(void)context;
if ((size_t)datalen > (sizeof(temp) - 1))
{
memcpy(temp, data, sizeof(temp) - 1);
temp[sizeof(temp) - 1] = '\0';
}
else
{
memcpy(temp, data, (size_t)datalen);
temp[datalen] = '\0';
}
printf("CUPS_SC_CMD_SNMP_WALK %s, %d bytes (%s)\n", oid, datalen, temp);
}
+67
Ver Arquivo
@@ -0,0 +1,67 @@
/*
* SNMP supplies test program for CUPS.
*
* Copyright © 2008-2011 by Apple Inc.
*
* Licensed under Apache License v2.0. See the file "LICENSE" for more
* information.
*/
/*
* Include necessary headers.
*/
#include "backend-private.h"
/*
* 'main()' - Show the supplies state of a printer.
*/
int /* O - Exit status */
main(int argc, /* I - Number of command-line args */
char *argv[]) /* I - Command-line arguments */
{
http_addrlist_t *host; /* Host addresses */
int snmp_fd; /* SNMP socket */
int page_count, /* Current page count */
printer_state; /* Current printer state */
if (argc != 2)
{
puts("Usage: testsupplies ip-or-hostname");
return (1);
}
if ((host = httpAddrGetList(argv[1], AF_UNSPEC, "9100")) == NULL)
{
perror(argv[1]);
return (1);
}
if ((snmp_fd = _cupsSNMPOpen(host->addr.addr.sa_family)) < 0)
{
perror(argv[1]);
return (1);
}
for (;;)
{
fputs("backendSNMPSupplies: ", stdout);
if (backendSNMPSupplies(snmp_fd, &(host->addr), &page_count,
&printer_state))
{
puts("FAIL");
return (1);
}
printf("backendSNMPSupplies: %s (page_count=%d, printer_state=%d)\n",
page_count < 0 || printer_state < CUPS_TC_other ||
printer_state > CUPS_TC_warmup ? "FAIL" : "PASS",
page_count, printer_state);
sleep(5);
}
}
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+595
Ver Arquivo
@@ -0,0 +1,595 @@
/*
* USB port backend for CUPS.
*
* This file is included from "usb.c" when compiled on UNIX/Linux.
*
* Copyright © 2007-2013 by Apple Inc.
* Copyright © 1997-2007 by Easy Software Products, all rights reserved.
*
* Licensed under Apache License v2.0. See the file "LICENSE" for more
* information.
*/
/*
* Include necessary headers.
*/
#include <sys/select.h>
/*
* Local functions...
*/
static int open_device(const char *uri, int *use_bc);
static int side_cb(int print_fd, int device_fd, int snmp_fd,
http_addr_t *addr, int use_bc);
/*
* 'print_device()' - Print a file to a USB device.
*/
int /* O - Exit status */
print_device(const char *uri, /* I - Device URI */
const char *hostname, /* I - Hostname/manufacturer */
const char *resource, /* I - Resource/modelname */
char *options, /* I - Device options/serial number */
int print_fd, /* I - File descriptor to print */
int copies, /* I - Copies to print */
int argc, /* I - Number of command-line arguments (6 or 7) */
char *argv[]) /* I - Command-line arguments */
{
int use_bc; /* Use backchannel path? */
int device_fd; /* USB device */
ssize_t tbytes; /* Total number of bytes written */
struct termios opts; /* Parallel port options */
(void)argc;
(void)argv;
/*
* Open the USB port device...
*/
fputs("STATE: +connecting-to-device\n", stderr);
do
{
#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
/*
* *BSD's ulpt driver currently does not support the
* back-channel, incorrectly returns data ready on a select(),
* and locks up on read()...
*/
use_bc = 0;
#elif defined(__sun)
/*
* CUPS STR #3028: Solaris' usbprn driver apparently does not support
* select() or poll(), so we can't support backchannel...
*/
use_bc = 0;
#else
/*
* Disable backchannel data when printing to Brother, Canon, or
* Minolta USB printers - apparently these printers will return
* the IEEE-1284 device ID over and over and over when they get
* a read request...
*/
use_bc = _cups_strcasecmp(hostname, "Brother") &&
_cups_strcasecmp(hostname, "Canon") &&
_cups_strncasecmp(hostname, "Konica", 6) &&
_cups_strncasecmp(hostname, "Minolta", 7);
#endif /* __FreeBSD__ || __NetBSD__ || __OpenBSD__ || __DragonFly__ */
if ((device_fd = open_device(uri, &use_bc)) == -1)
{
if (getenv("CLASS") != NULL)
{
/*
* If the CLASS environment variable is set, the job was submitted
* to a class and not to a specific queue. In this case, we want
* to abort immediately so that the job can be requeued on the next
* available printer in the class.
*/
_cupsLangPrintFilter(stderr, "INFO",
_("Unable to contact printer, queuing on next "
"printer in class."));
/*
* Sleep 5 seconds to keep the job from requeuing too rapidly...
*/
sleep(5);
return (CUPS_BACKEND_FAILED);
}
if (errno == EBUSY)
{
_cupsLangPrintFilter(stderr, "INFO", _("The printer is in use."));
sleep(10);
}
else if (errno == ENXIO || errno == EIO || errno == ENOENT ||
errno == ENODEV)
{
sleep(30);
}
else
{
_cupsLangPrintError("ERROR", _("Unable to open device file"));
return (CUPS_BACKEND_FAILED);
}
}
}
while (device_fd < 0);
fputs("STATE: -connecting-to-device\n", stderr);
/*
* Set any options provided...
*/
tcgetattr(device_fd, &opts);
opts.c_lflag &= ~(unsigned)(ICANON | ECHO | ISIG); /* Raw mode */
/**** No options supported yet ****/
tcsetattr(device_fd, TCSANOW, &opts);
/*
* Finally, send the print file...
*/
tbytes = 0;
while (copies > 0 && tbytes >= 0)
{
copies --;
if (print_fd != 0)
{
fputs("PAGE: 1 1\n", stderr);
lseek(print_fd, 0, SEEK_SET);
}
#ifdef __sun
/*
* CUPS STR #3028: Solaris' usbprn driver apparently does not support
* select() or poll(), so we can't support the sidechannel either...
*/
tbytes = backendRunLoop(print_fd, device_fd, -1, NULL, use_bc, 1, NULL);
#else
tbytes = backendRunLoop(print_fd, device_fd, -1, NULL, use_bc, 1, side_cb);
#endif /* __sun */
if (print_fd != 0 && tbytes >= 0)
_cupsLangPrintFilter(stderr, "INFO", _("Print file sent."));
}
/*
* Close the USB port and return...
*/
close(device_fd);
return (CUPS_BACKEND_OK);
}
/*
* 'list_devices()' - List all USB devices.
*/
void
list_devices(void)
{
#ifdef __linux
int i; /* Looping var */
int fd; /* File descriptor */
char device[255], /* Device filename */
device_id[1024], /* Device ID string */
device_uri[1024], /* Device URI string */
make_model[1024]; /* Make and model */
/*
* Try to open each USB device...
*/
for (i = 0; i < 16; i ++)
{
/*
* Linux has a long history of changing the standard filenames used
* for USB printer devices. We get the honor of trying them all...
*/
sprintf(device, "/dev/usblp%d", i);
if ((fd = open(device, O_RDWR | O_EXCL)) < 0)
{
if (errno != ENOENT)
continue;
sprintf(device, "/dev/usb/lp%d", i);
if ((fd = open(device, O_RDWR | O_EXCL)) < 0)
{
if (errno != ENOENT)
continue;
sprintf(device, "/dev/usb/usblp%d", i);
if ((fd = open(device, O_RDWR | O_EXCL)) < 0)
continue;
}
}
if (!backendGetDeviceID(fd, device_id, sizeof(device_id),
make_model, sizeof(make_model),
"usb", device_uri, sizeof(device_uri)))
cupsBackendReport("direct", device_uri, make_model, make_model,
device_id, NULL);
close(fd);
}
#elif defined(__sun) && defined(ECPPIOC_GETDEVID)
int i; /* Looping var */
int fd; /* File descriptor */
char device[255], /* Device filename */
device_id[1024], /* Device ID string */
device_uri[1024], /* Device URI string */
make_model[1024]; /* Make and model */
/*
* Open each USB device...
*/
for (i = 0; i < 8; i ++)
{
sprintf(device, "/dev/usb/printer%d", i);
if ((fd = open(device, O_WRONLY | O_EXCL)) >= 0)
{
if (!backendGetDeviceID(fd, device_id, sizeof(device_id),
make_model, sizeof(make_model),
"usb", device_uri, sizeof(device_uri)))
cupsBackendReport("direct", device_uri, make_model, make_model,
device_id, NULL);
close(fd);
}
}
#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) || defined(__FreeBSD_kernel__)
int i; /* Looping var */
char device[255]; /* Device filename */
for (i = 0; i < 8; i ++)
{
sprintf(device, "/dev/ulpt%d", i);
if (!access(device, 0))
printf("direct usb:%s \"Unknown\" \"USB Printer #%d\"\n", device, i + 1);
sprintf(device, "/dev/unlpt%d", i);
if (!access(device, 0))
printf("direct usb:%s \"Unknown\" \"USB Printer #%d (no reset)\"\n", device, i + 1);
}
#endif
}
/*
* 'open_device()' - Open a USB device...
*/
static int /* O - File descriptor or -1 on error */
open_device(const char *uri, /* I - Device URI */
int *use_bc) /* O - Set to 0 for unidirectional */
{
int fd; /* File descriptor */
/*
* The generic implementation just treats the URI as a device filename...
* Specific operating systems may also support using the device serial
* number and/or make/model.
*/
if (!strncmp(uri, "usb:/dev/", 9))
#ifdef __linux
{
/*
* Do not allow direct devices anymore...
*/
errno = ENODEV;
return (-1);
}
else if (!strncmp(uri, "usb://", 6))
{
/*
* For Linux, try looking up the device serial number or model...
*/
int i; /* Looping var */
int busy; /* Are any ports busy? */
char device[255], /* Device filename */
device_id[1024], /* Device ID string */
make_model[1024], /* Make and model */
device_uri[1024]; /* Device URI string */
/*
* Find the correct USB device...
*/
for (;;)
{
for (busy = 0, i = 0; i < 16; i ++)
{
/*
* Linux has a long history of changing the standard filenames used
* for USB printer devices. We get the honor of trying them all...
*/
sprintf(device, "/dev/usblp%d", i);
if ((fd = open(device, O_RDWR | O_EXCL)) < 0 && errno == ENOENT)
{
sprintf(device, "/dev/usb/lp%d", i);
if ((fd = open(device, O_RDWR | O_EXCL)) < 0 && errno == ENOENT)
{
sprintf(device, "/dev/usb/usblp%d", i);
if ((fd = open(device, O_RDWR | O_EXCL)) < 0 && errno == ENOENT)
continue;
}
}
if (fd >= 0)
{
backendGetDeviceID(fd, device_id, sizeof(device_id),
make_model, sizeof(make_model),
"usb", device_uri, sizeof(device_uri));
}
else
{
/*
* If the open failed because it was busy, flag it so we retry
* as needed...
*/
if (errno == EBUSY)
busy = 1;
device_uri[0] = '\0';
}
if (!strcmp(uri, device_uri))
{
/*
* Yes, return this file descriptor...
*/
fprintf(stderr, "DEBUG: Printer using device file \"%s\"...\n",
device);
return (fd);
}
/*
* This wasn't the one...
*/
if (fd >= 0)
close(fd);
}
/*
* If we get here and at least one of the printer ports showed up
* as "busy", then sleep for a bit and retry...
*/
if (busy)
_cupsLangPrintFilter(stderr, "INFO", _("The printer is in use."));
sleep(5);
}
}
#elif defined(__sun) && defined(ECPPIOC_GETDEVID)
{
/*
* Do not allow direct devices anymore...
*/
errno = ENODEV;
return (-1);
}
else if (!strncmp(uri, "usb://", 6))
{
/*
* For Solaris, try looking up the device serial number or model...
*/
int i; /* Looping var */
int busy; /* Are any ports busy? */
char device[255], /* Device filename */
device_id[1024], /* Device ID string */
make_model[1024], /* Make and model */
device_uri[1024]; /* Device URI string */
/*
* Find the correct USB device...
*/
do
{
for (i = 0, busy = 0; i < 8; i ++)
{
sprintf(device, "/dev/usb/printer%d", i);
if ((fd = open(device, O_WRONLY | O_EXCL)) >= 0)
backendGetDeviceID(fd, device_id, sizeof(device_id),
make_model, sizeof(make_model),
"usb", device_uri, sizeof(device_uri));
else
{
/*
* If the open failed because it was busy, flag it so we retry
* as needed...
*/
if (errno == EBUSY)
busy = 1;
device_uri[0] = '\0';
}
if (!strcmp(uri, device_uri))
{
/*
* Yes, return this file descriptor...
*/
fputs("DEBUG: Setting use_bc to 0!\n", stderr);
*use_bc = 0;
return (fd);
}
/*
* This wasn't the one...
*/
if (fd >= 0)
close(fd);
}
/*
* If we get here and at least one of the printer ports showed up
* as "busy", then sleep for a bit and retry...
*/
if (busy)
{
_cupsLangPrintFilter(stderr, "INFO", _("The printer is in use."));
sleep(5);
}
}
while (busy);
/*
* Couldn't find the printer, return "no such device or address"...
*/
errno = ENODEV;
return (-1);
}
#else
{
if (*use_bc)
fd = open(uri + 4, O_RDWR | O_EXCL);
else
fd = -1;
if (fd < 0)
{
fd = open(uri + 4, O_WRONLY | O_EXCL);
*use_bc = 0;
}
return (fd);
}
#endif /* __linux */
else
{
errno = ENODEV;
return (-1);
}
}
/*
* 'side_cb()' - Handle side-channel requests...
*/
static int /* O - 0 on success, -1 on error */
side_cb(int print_fd, /* I - Print file */
int device_fd, /* I - Device file */
int snmp_fd, /* I - SNMP socket (unused) */
http_addr_t *addr, /* I - Device address (unused) */
int use_bc) /* I - Using back-channel? */
{
cups_sc_command_t command; /* Request command */
cups_sc_status_t status; /* Request/response status */
char data[2048]; /* Request/response data */
int datalen; /* Request/response data size */
(void)snmp_fd;
(void)addr;
datalen = sizeof(data);
if (cupsSideChannelRead(&command, &status, data, &datalen, 1.0))
return (-1);
switch (command)
{
case CUPS_SC_CMD_DRAIN_OUTPUT :
if (backendDrainOutput(print_fd, device_fd))
status = CUPS_SC_STATUS_IO_ERROR;
else if (tcdrain(device_fd))
status = CUPS_SC_STATUS_IO_ERROR;
else
status = CUPS_SC_STATUS_OK;
datalen = 0;
break;
case CUPS_SC_CMD_GET_BIDI :
status = CUPS_SC_STATUS_OK;
data[0] = use_bc;
datalen = 1;
break;
case CUPS_SC_CMD_GET_DEVICE_ID :
memset(data, 0, sizeof(data));
if (backendGetDeviceID(device_fd, data, sizeof(data) - 1,
NULL, 0, NULL, NULL, 0))
{
status = CUPS_SC_STATUS_NOT_IMPLEMENTED;
datalen = 0;
}
else
{
status = CUPS_SC_STATUS_OK;
datalen = strlen(data);
}
break;
default :
status = CUPS_SC_STATUS_NOT_IMPLEMENTED;
datalen = 0;
break;
}
return (cupsSideChannelWrite(command, status, data, datalen, 1.0));
}
+246
Ver Arquivo
@@ -0,0 +1,246 @@
/*
* USB printer backend for CUPS.
*
* Copyright © 2007-2012 by Apple Inc.
* Copyright © 1997-2007 by Easy Software Products, all rights reserved.
*
* Licensed under Apache License v2.0. See the file "LICENSE" for more
* information.
*/
/*
* Include necessary headers.
*/
#ifdef __APPLE__
/* A header order dependency requires this be first */
# include <ApplicationServices/ApplicationServices.h>
#endif /* __APPLE__ */
#include "backend-private.h"
#ifdef _WIN32
# include <io.h>
#else
# include <unistd.h>
# include <fcntl.h>
# include <termios.h>
#endif /* _WIN32 */
/*
* Local functions...
*/
void list_devices(void);
int print_device(const char *uri, const char *hostname,
const char *resource, char *options,
int print_fd, int copies, int argc, char *argv[]);
/*
* Include the vendor-specific USB implementation...
*/
#ifdef HAVE_LIBUSB
# include "usb-libusb.c"
#elif defined(__APPLE__)
# include "usb-darwin.c"
#elif defined(__linux) || defined(__sun) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) || defined(__FreeBSD_kernel__)
# include "usb-unix.c"
#else
/*
* Use dummy functions that do nothing on unsupported platforms...
* These can be used as templates for implementing USB printing on new
* platforms...
*/
/*
* 'list_devices()' - List all available USB devices to stdout.
*/
void
list_devices(void)
{
/*
* Don't have any devices to list... Use output of the form:
*
* direct usb:/make/model?serial=foo "Make Model" "USB Printer"
*
* Note that "Hewlett Packard" or any other variation MUST be mapped to
* "HP" for compatibility with the PPD and ICC specs.
*/
}
/*
* 'print_device()' - Print a file to a USB device.
*/
int /* O - Exit status */
print_device(const char *uri, /* I - Device URI */
const char *hostname, /* I - Hostname/manufacturer */
const char *resource, /* I - Resource/modelname */
char *options, /* I - Device options/serial number */
int print_fd, /* I - File descriptor to print */
int copies, /* I - Copies to print */
int argc, /* I - Number of command-line arguments (6 or 7) */
char *argv[]) /* I - Command-line arguments */
{
/*
* Can't print, so just reference the arguments to eliminate compiler
* warnings and return and exit status of 1. Normally you would use the
* arguments to send a file to the printer and return 0 if everything
* worked OK and non-zero if there was an error.
*/
(void)uri;
(void)hostname;
(void)resource;
(void)options;
(void)print_fd;
(void)copies;
(void)argc;
(void)argv;
return (CUPS_BACKEND_FAILED);
}
#endif /* HAVE_LIBUSB */
/*
* 'main()' - Send a file to the specified USB port.
*
* Usage:
*
* printer-uri job-id user title copies options [file]
*/
int /* O - Exit status */
main(int argc, /* I - Number of command-line arguments (6 or 7) */
char *argv[]) /* I - Command-line arguments */
{
int print_fd; /* Print file */
int copies; /* Number of copies to print */
int status; /* Exit status */
int port; /* Port number (not used) */
const char *uri; /* Device URI */
char method[255], /* Method in URI */
hostname[1024], /* Hostname */
username[255], /* Username info (not used) */
resource[1024], /* Resource info (device and options) */
*options; /* Pointer to options */
#if defined(HAVE_SIGACTION) && !defined(HAVE_SIGSET)
struct sigaction action; /* Actions for POSIX signals */
#endif /* HAVE_SIGACTION && !HAVE_SIGSET */
/*
* Make sure status messages are not buffered...
*/
setbuf(stderr, NULL);
/*
* Ignore SIGPIPE signals...
*/
#ifdef HAVE_SIGSET
sigset(SIGPIPE, SIG_IGN);
#elif defined(HAVE_SIGACTION)
memset(&action, 0, sizeof(action));
action.sa_handler = SIG_IGN;
sigaction(SIGPIPE, &action, NULL);
#else
signal(SIGPIPE, SIG_IGN);
#endif /* HAVE_SIGSET */
/*
* Check command-line...
*/
if (argc == 1)
{
list_devices();
return (CUPS_BACKEND_OK);
}
else if (argc < 6 || argc > 7)
{
_cupsLangPrintf(stderr,
_("Usage: %s job-id user title copies options [file]"),
argv[0]);
return (CUPS_BACKEND_FAILED);
}
/*
* Extract the device name and options from the URI...
*/
uri = cupsBackendDeviceURI(argv);
if (httpSeparateURI(HTTP_URI_CODING_ALL, uri,
method, sizeof(method), username, sizeof(username),
hostname, sizeof(hostname), &port,
resource, sizeof(resource)) < HTTP_URI_OK)
{
_cupsLangPrintFilter(stderr, "ERROR",
_("No device URI found in argv[0] or in DEVICE_URI "
"environment variable."));
return (1);
}
/*
* See if there are any options...
*/
if ((options = strchr(resource, '?')) != NULL)
{
/*
* Yup, terminate the device name string and move to the first
* character of the options...
*/
*options++ = '\0';
}
/*
* If we have 7 arguments, print the file named on the command-line.
* Otherwise, send stdin instead...
*/
if (argc == 6)
{
print_fd = 0;
copies = 1;
}
else
{
/*
* Try to open the print file...
*/
if ((print_fd = open(argv[6], O_RDONLY)) < 0)
{
_cupsLangPrintError("ERROR", _("Unable to open print file"));
return (CUPS_BACKEND_FAILED);
}
copies = atoi(argv[4]);
}
/*
* Finally, send the print file...
*/
status = print_device(uri, hostname, resource, options, print_fd, copies,
argc, argv);
/*
* Close the input file and return...
*/
if (print_fd != 0)
close(print_fd);
return (status);
}
+24
Ver Arquivo
@@ -0,0 +1,24 @@
lpc.o: lpc.c ../cups/cups-private.h ../cups/string-private.h ../config.h \
../cups/versioning.h ../cups/array-private.h ../cups/array.h \
../cups/ipp-private.h ../cups/cups.h ../cups/file.h ../cups/ipp.h \
../cups/http.h ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
../cups/thread-private.h
lpq.o: lpq.c ../cups/cups-private.h ../cups/string-private.h ../config.h \
../cups/versioning.h ../cups/array-private.h ../cups/array.h \
../cups/ipp-private.h ../cups/cups.h ../cups/file.h ../cups/ipp.h \
../cups/http.h ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
../cups/thread-private.h
lpr.o: lpr.c ../cups/cups-private.h ../cups/string-private.h ../config.h \
../cups/versioning.h ../cups/array-private.h ../cups/array.h \
../cups/ipp-private.h ../cups/cups.h ../cups/file.h ../cups/ipp.h \
../cups/http.h ../cups/language.h ../cups/pwg.h ../cups/http-private.h \
../cups/language-private.h ../cups/transcode.h ../cups/pwg-private.h \
../cups/thread-private.h
lprm.o: lprm.c ../cups/cups-private.h ../cups/string-private.h \
../config.h ../cups/versioning.h ../cups/array-private.h \
../cups/array.h ../cups/ipp-private.h ../cups/cups.h ../cups/file.h \
../cups/ipp.h ../cups/http.h ../cups/language.h ../cups/pwg.h \
../cups/http-private.h ../cups/language-private.h ../cups/transcode.h \
../cups/pwg-private.h ../cups/thread-private.h
+100 -34
Ver Arquivo
@@ -1,54 +1,118 @@
#
# "$Id$"
# Berkeley commands makefile for CUPS.
#
# Berkeley commands makefile for the Common UNIX Printing System (CUPS).
# Copyright 2007-2018 by Apple Inc.
# Copyright 1997-2006 by Easy Software Products, all rights reserved.
#
# Copyright 1997-1999 by Easy Software Products, all rights reserved.
#
# These coded instructions, statements, and computer programs are the
# property of Easy Software Products and are protected by Federal
# copyright law. Distribution and use rights are outlined in the file
# "LICENSE.txt" which should have been included with this file. If this
# file is missing or damaged please contact Easy Software Products
# at:
#
# Attn: CUPS Licensing Information
# Easy Software Products
# 44141 Airport View Drive, Suite 204
# Hollywood, Maryland 20636-3111 USA
#
# Voice: (301) 373-9603
# EMail: cups-info@cups.org
# WWW: http://www.cups.org
# Licensed under Apache License v2.0. See the file "LICENSE" for more information.
#
include ../Makedefs
TARGETS = lpc lpq lpr lprm
OBJS = lpc.o lpq.o lpr.o lprm.o
#
# Make all targets...
#
all: $(TARGETS)
#
# Make library targets...
#
libs:
#
# Make unit tests...
#
unittests:
#
# Clean all object files...
#
clean:
rm -f $(OBJS) $(TARGETS)
$(RM) $(OBJS) $(TARGETS)
#
# Update dependencies (without system header dependencies...)
#
depend:
$(CC) -MM $(ALL_CFLAGS) $(OBJS:.o=.c) >Dependencies
#
# Install all targets...
#
install:
-$(MKDIR) $(BINDIR)
-$(MKDIR) $(SBINDIR)
$(CP) lpq lpr lprm $(BINDIR)
$(CP) lpc $(SBINDIR)
install: all install-data install-headers install-libs install-exec
#
# Install data files...
#
install-data:
#
# Install programs...
#
install-exec:
echo Installing Berkeley user printing commands in $(BINDIR)...
$(INSTALL_DIR) -m 755 $(BINDIR)
$(INSTALL_BIN) lpq $(BINDIR)
$(INSTALL_BIN) lpr $(BINDIR)
$(INSTALL_BIN) lprm $(BINDIR)
echo Installing Berkeley admin printing commands in $(BINDIR)...
$(INSTALL_DIR) -m 755 $(SBINDIR)
$(INSTALL_BIN) lpc $(SBINDIR)
if test "x$(SYMROOT)" != "x"; then \
$(INSTALL_DIR) $(SYMROOT); \
for file in $(TARGETS); do \
cp $$file $(SYMROOT); \
dsymutil $(SYMROOT)/$$file; \
done \
fi
#
# Install headers...
#
install-headers:
#
# Install libraries...
#
install-libs:
#
# Uninstall all targets...
#
uninstall:
$(RM) $(BINDIR)/lpq
$(RM) $(BINDIR)/lpr
$(RM) $(BINDIR)/lprm
$(RM) $(SBINDIR)/lpc
-$(RMDIR) $(SBINDIR)
-$(RMDIR) $(BINDIR)
#
# lpc
@@ -56,9 +120,9 @@ install:
lpc: lpc.o ../cups/$(LIBCUPS)
echo Linking $@...
$(CC) $(LDFLAGS) -o lpc lpc.o $(LIBS)
$(LD_CC) $(LDFLAGS) -o lpc lpc.o $(LIBS)
$(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@
lpc.o: ../cups/cups.h ../Makedefs
#
# lpq
@@ -66,9 +130,9 @@ lpc.o: ../cups/cups.h ../Makedefs
lpq: lpq.o ../cups/$(LIBCUPS)
echo Linking $@...
$(CC) $(LDFLAGS) -o lpq lpq.o $(LIBS)
$(LD_CC) $(LDFLAGS) -o lpq lpq.o $(LIBS)
$(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@
lpq.o: ../cups/cups.h ../Makedefs
#
# lpr
@@ -76,9 +140,9 @@ lpq.o: ../cups/cups.h ../Makedefs
lpr: lpr.o ../cups/$(LIBCUPS)
echo Linking $@...
$(CC) $(LDFLAGS) -o lpr lpr.o $(LIBS)
$(LD_CC) $(LDFLAGS) -o lpr lpr.o $(LIBS)
$(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@
lpr.o: ../cups/cups.h ../Makedefs
#
# lprm
@@ -86,10 +150,12 @@ lpr.o: ../cups/cups.h ../Makedefs
lprm: lprm.o ../cups/$(LIBCUPS)
echo Linking $@...
$(CC) $(LDFLAGS) -o lprm lprm.o $(LIBS)
$(LD_CC) $(LDFLAGS) -o lprm lprm.o $(LIBS)
$(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@
lprm.o: ../cups/cups.h ../Makedefs
#
# End of "$Id$".
# Dependencies...
#
include Dependencies
+157 -188
Ver Arquivo
@@ -1,55 +1,27 @@
/*
* "$Id$"
* "lpc" command for CUPS.
*
* "lpc" command for the Common UNIX Printing System (CUPS).
* Copyright 2007-2014 by Apple Inc.
* Copyright 1997-2006 by Easy Software Products.
*
* Copyright 1997-1999 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
* copyright law. Distribution and use rights are outlined in the file
* "LICENSE.txt" which should have been included with this file. If this
* file is missing or damaged please contact Easy Software Products
* at:
*
* Attn: CUPS Licensing Information
* Easy Software Products
* 44141 Airport View Drive, Suite 204
* Hollywood, Maryland 20636-3111 USA
*
* Voice: (301) 373-9603
* EMail: cups-info@cups.org
* WWW: http://www.cups.org
*
* Contents:
*
* main() - Parse options and commands.
* compare_strings() - Compare two command-line strings.
* do_command() - Do an lpc command...
* show_help() - Show help messages.
* show_status() - Show printers.
* Licensed under Apache License v2.0. See the file "LICENSE" for more information.
*/
/*
* Include necessary headers...
*/
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <cups/cups.h>
#include <cups/language.h>
#include <cups/debug.h>
#include <cups/cups-private.h>
/*
* Local functions...
*/
static int compare_strings(char *, char *, int);
static void do_command(http_t *, char *, char *);
static void show_help(char *);
static void show_status(http_t *, char *);
static int compare_strings(const char *, const char *, size_t);
static void do_command(http_t *, const char *, const char *);
static void show_help(const char *);
static void show_status(http_t *, const char *);
/*
@@ -57,20 +29,21 @@ static void show_status(http_t *, char *);
*/
int
main(int argc, /* I - Number of command-line arguments */
char *argv[]) /* I - Command-line arguments */
main(int argc, /* I - Number of command-line arguments */
char *argv[]) /* I - Command-line arguments */
{
int i; /* Looping var */
http_t *http; /* Connection to server */
char line[1024], /* Input line from user */
*params; /* Pointer to parameters */
http_t *http; /* Connection to server */
char line[1024], /* Input line from user */
*params; /* Pointer to parameters */
_cupsSetLocale(argv);
/*
* Connect to the scheduler...
*/
http = httpConnect(cupsServer(), ippPort());
http = httpConnectEncrypt(cupsServer(), ippPort(), cupsEncryption());
if (argc > 1)
{
@@ -86,39 +59,59 @@ main(int argc, /* I - Number of command-line arguments */
* Do the command prompt thing...
*/
printf("lpc> ");
_cupsLangPuts(stdout, _("lpc> ")); /* TODO: Need no-newline version */
while (fgets(line, sizeof(line), stdin) != NULL)
{
/*
* Strip the trailing newline...
* Strip trailing whitespace...
*/
line[strlen(line) - 1] = '\0';
for (params = line + strlen(line) - 1; params >= line;)
if (!isspace(*params & 255))
break;
else
*params-- = '\0';
/*
* Strip leading whitespace...
*/
for (params = line; isspace(*params & 255); params ++);
if (params > line)
_cups_strcpy(line, params);
if (!line[0])
{
/*
* Nothing left, just show a prompt...
*/
_cupsLangPuts(stdout, _("lpc> ")); /* TODO: Need no newline version */
continue;
}
/*
* Find any options in the string...
*/
while (isspace(line[0]))
strcpy(line, line + 1);
for (params = line; *params != '\0'; params ++)
if (isspace(*params))
if (isspace(*params & 255))
break;
/*
* Remove whitespace between the command and parameters...
*/
while (isspace(*params))
while (isspace(*params & 255))
*params++ = '\0';
/*
* The "quit" and "exit" commands exit; otherwise, process as needed...
*/
if (compare_strings(line, "quit", 1) == 0 ||
compare_strings(line, "exit", 2) == 0)
if (!compare_strings(line, "quit", 1) ||
!compare_strings(line, "exit", 2))
break;
if (*params == '\0')
@@ -130,7 +123,7 @@ main(int argc, /* I - Number of command-line arguments */
* Put another prompt out to the user...
*/
printf("lpc> ");
_cupsLangPuts(stdout, _("lpc> ")); /* TODO: Need no newline version */
}
}
@@ -148,12 +141,12 @@ main(int argc, /* I - Number of command-line arguments */
* 'compare_strings()' - Compare two command-line strings.
*/
static int /* O - -1 or 1 = no match, 0 = match */
compare_strings(char *s, /* I - Command-line string */
char *t, /* I - Option string */
int tmin) /* I - Minimum number of unique chars in option */
static int /* O - -1 or 1 = no match, 0 = match */
compare_strings(const char *s, /* I - Command-line string */
const char *t, /* I - Option string */
size_t tmin) /* I - Minimum number of unique chars in option */
{
int slen; /* Length of command-line string */
size_t slen; /* Length of command-line string */
slen = strlen(s);
@@ -169,17 +162,18 @@ compare_strings(char *s, /* I - Command-line string */
*/
static void
do_command(http_t *http, /* I - HTTP connection to server */
char *command, /* I - Command string */
char *params) /* I - Parameters for command */
do_command(http_t *http, /* I - HTTP connection to server */
const char *command, /* I - Command string */
const char *params) /* I - Parameters for command */
{
if (compare_strings(command, "status", 4) == 0)
if (!compare_strings(command, "status", 4))
show_status(http, params);
else if (compare_strings(command, "help", 1) == 0 ||
strcmp(command, "?") == 0)
else if (!compare_strings(command, "help", 1) || !strcmp(command, "?"))
show_help(params);
else
puts("?Invalid command");
_cupsLangPrintf(stdout,
_("%s is not implemented by the CUPS version of lpc."),
command);
}
@@ -188,21 +182,21 @@ do_command(http_t *http, /* I - HTTP connection to server */
*/
static void
show_help(char *command) /* I - Command to describe or NULL */
show_help(const char *command) /* I - Command to describe or NULL */
{
if (command == NULL)
if (!command)
{
puts("Commands may be abbreviated. Commands are:");
puts("");
puts("exit help quit status ?");
_cupsLangPrintf(stdout,
_("Commands may be abbreviated. Commands are:\n"
"\n"
"exit help quit status ?"));
}
else if (compare_strings(command, "help", 1) == 0 ||
strcmp(command, "?") == 0)
puts("help\t\tget help on commands");
else if (compare_strings(command, "status", 4) == 0)
puts("status\t\tshow status of daemon and queue");
else if (!compare_strings(command, "help", 1) || !strcmp(command, "?"))
_cupsLangPrintf(stdout, _("help\t\tGet help on commands."));
else if (!compare_strings(command, "status", 4))
_cupsLangPrintf(stdout, _("status\t\tShow status of daemon and queue."));
else
puts("?Invalid help command unknown");
_cupsLangPrintf(stdout, _("?Invalid help command unknown."));
}
@@ -211,28 +205,31 @@ show_help(char *command) /* I - Command to describe or NULL */
*/
static void
show_status(http_t *http, /* I - HTTP connection to server */
char *dests) /* I - Destinations */
show_status(http_t *http, /* I - HTTP connection to server */
const char *dests) /* I - Destinations */
{
ipp_t *request, /* IPP Request */
*response, /* IPP Response */
*jobs; /* IPP Get Jobs response */
ipp_attribute_t *attr; /* Current attribute */
cups_lang_t *language; /* Default language */
char *printer, /* Printer name */
*device; /* Device URI */
ipp_pstate_t pstate; /* Printer state */
int accepting; /* Is printer accepting jobs? */
int jobcount; /* Count of current jobs */
char *dptr, /* Pointer into destination list */
*ptr; /* Pointer into printer name */
int match; /* Non-zero if this job matches */
char printer_uri[HTTP_MAX_URI];
/* Printer URI */
ipp_t *request, /* IPP Request */
*response; /* IPP Response */
ipp_attribute_t *attr; /* Current attribute */
char *printer, /* Printer name */
*device, /* Device URI */
*delimiter; /* Char search result */
ipp_pstate_t pstate; /* Printer state */
int accepting; /* Is printer accepting jobs? */
int jobcount; /* Count of current jobs */
const char *dptr, /* Pointer into destination list */
*ptr; /* Pointer into printer name */
int match; /* Non-zero if this job matches */
static const char *requested[] = /* Requested attributes */
{
"device-uri",
"printer-is-accepting-jobs",
"printer-name",
"printer-state",
"queued-job-count"
};
DEBUG_printf(("show_status(%08x, %08x)\n", http, dests));
if (http == NULL)
return;
@@ -244,27 +241,18 @@ show_status(http_t *http, /* I - HTTP connection to server */
* attributes-natural-language
*/
request = ippNew();
request = ippNewRequest(CUPS_GET_PRINTERS);
request->request.op.operation_id = CUPS_GET_PRINTERS;
request->request.op.request_id = 1;
language = cupsLangDefault();
attr = ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_CHARSET,
"attributes-charset", NULL, cupsLangEncoding(language));
attr = ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE,
"attributes-natural-language", NULL, language->language);
ippAddStrings(request, IPP_TAG_OPERATION, IPP_TAG_KEYWORD,
"requested-attributes", sizeof(requested) / sizeof(requested[0]),
NULL, requested);
/*
* Do the request and get back a response...
*/
if ((response = cupsDoRequest(http, request, "/printers/")) != NULL)
if ((response = cupsDoRequest(http, request, "/")) != NULL)
{
DEBUG_puts("show_status: request succeeded...");
/*
* Loop through the printers returned in the list and display
* their status...
@@ -294,21 +282,21 @@ show_status(http_t *http, /* I - HTTP connection to server */
while (attr != NULL && attr->group_tag == IPP_TAG_PRINTER)
{
if (strcmp(attr->name, "printer-name") == 0 &&
attr->value_tag == IPP_TAG_NAME)
printer = attr->values[0].string.text;
if (strcmp(attr->name, "device-uri") == 0 &&
if (!strcmp(attr->name, "device-uri") &&
attr->value_tag == IPP_TAG_URI)
device = attr->values[0].string.text;
if (strcmp(attr->name, "printer-state") == 0 &&
attr->value_tag == IPP_TAG_ENUM)
pstate = (ipp_pstate_t)attr->values[0].integer;
if (strcmp(attr->name, "printer-is-accepting-jobs") == 0 &&
attr->value_tag == IPP_TAG_BOOLEAN)
else if (!strcmp(attr->name, "printer-is-accepting-jobs") &&
attr->value_tag == IPP_TAG_BOOLEAN)
accepting = attr->values[0].boolean;
else if (!strcmp(attr->name, "printer-name") &&
attr->value_tag == IPP_TAG_NAME)
printer = attr->values[0].string.text;
else if (!strcmp(attr->name, "printer-state") &&
attr->value_tag == IPP_TAG_ENUM)
pstate = (ipp_pstate_t)attr->values[0].integer;
else if (!strcmp(attr->name, "queued-job-count") &&
attr->value_tag == IPP_TAG_INTEGER)
jobcount = attr->values[0].integer;
attr = attr->next;
}
@@ -325,6 +313,13 @@ show_status(http_t *http, /* I - HTTP connection to server */
continue;
}
/*
* A single 'all' printer name is special, meaning all printers.
*/
if (dests != NULL && !strcmp(dests, "all"))
dests = NULL;
/*
* See if this is a printer we're interested in...
*/
@@ -339,7 +334,7 @@ show_status(http_t *http, /* I - HTTP connection to server */
* Skip leading whitespace and commas...
*/
while (isspace(*dptr) || *dptr == ',')
while (isspace(*dptr & 255) || *dptr == ',')
dptr ++;
if (*dptr == '\0')
@@ -351,9 +346,11 @@ show_status(http_t *http, /* I - HTTP connection to server */
for (ptr = printer;
*ptr != '\0' && *dptr != '\0' && *ptr == *dptr;
ptr ++, dptr ++);
ptr ++, dptr ++)
/* do nothing */;
if (*ptr == '\0' && (*dptr == '\0' || *dptr == ',' || isspace(*dptr)))
if (*ptr == '\0' && (*dptr == '\0' || *dptr == ',' ||
isspace(*dptr & 255)))
{
match = 1;
break;
@@ -363,9 +360,9 @@ show_status(http_t *http, /* I - HTTP connection to server */
* Skip trailing junk...
*/
while (!isspace(*dptr) && *dptr != '\0')
while (!isspace(*dptr & 255) && *dptr != '\0')
dptr ++;
while (isspace(*dptr) || *dptr == ',')
while (isspace(*dptr & 255) || *dptr == ',')
dptr ++;
if (*dptr == '\0')
@@ -379,69 +376,46 @@ show_status(http_t *http, /* I - HTTP connection to server */
if (match)
{
/*
* If the printer state is "IPP_PRINTER_PROCESSING", then grab the
* current job for the printer.
*/
if (pstate == IPP_PRINTER_PROCESSING)
{
/*
* Build an IPP_GET_JOBS request, which requires the following
* attributes:
*
* attributes-charset
* attributes-natural-language
* printer-uri
* limit
*/
request = ippNew();
request->request.op.operation_id = IPP_GET_JOBS;
request->request.op.request_id = 1;
language = cupsLangDefault();
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_CHARSET,
"attributes-charset", NULL,
cupsLangEncoding(language));
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE,
"attributes-natural-language", NULL,
language->language);
sprintf(printer_uri, "ipp://localhost/printers/%s", printer);
attr = ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI,
"printer-uri", NULL, printer_uri);
if ((jobs = cupsDoRequest(http, request, "/jobs/")) != NULL)
{
for (attr = jobs->attrs; attr != NULL; attr = attr->next)
if (strcmp(attr->name, "job-id") == 0)
jobcount ++;
ippDelete(jobs);
}
}
/*
* Display it...
*/
printf("%s:\n", printer);
if (strncmp(device, "file:", 5) == 0)
printf("\tprinter is on device \'%s\' speed -1\n", device + 5);
if (!strncmp(device, "file:", 5))
_cupsLangPrintf(stdout,
_("\tprinter is on device \'%s\' speed -1"),
device + 5);
else
printf("\tprinter is on device \'%s\' speed -1\n", device);
printf("\tqueuing is %sabled\n", accepting ? "en" : "dis");
printf("\tprinting is %sabled\n",
pstate == IPP_PRINTER_STOPPED ? "dis" : "en");
{
/*
* Just show the scheme...
*/
if ((delimiter = strchr(device, ':')) != NULL )
{
*delimiter = '\0';
_cupsLangPrintf(stdout,
_("\tprinter is on device \'%s\' speed -1"),
device);
}
}
if (accepting)
_cupsLangPuts(stdout, _("\tqueuing is enabled"));
else
_cupsLangPuts(stdout, _("\tqueuing is disabled"));
if (pstate != IPP_PRINTER_STOPPED)
_cupsLangPuts(stdout, _("\tprinting is enabled"));
else
_cupsLangPuts(stdout, _("\tprinting is disabled"));
if (jobcount == 0)
puts("\tno entries");
_cupsLangPuts(stdout, _("\tno entries"));
else
printf("\t%d entries\n", jobcount);
puts("\tdaemon present");
_cupsLangPrintf(stdout, _("\t%d entries"), jobcount);
_cupsLangPuts(stdout, _("\tdaemon present"));
}
if (attr == NULL)
@@ -451,8 +425,3 @@ show_status(http_t *http, /* I - HTTP connection to server */
ippDelete(response);
}
}
/*
* End of "$Id$".
*/
+443 -161
Ver Arquivo
@@ -1,54 +1,29 @@
/*
* "$Id$"
* "lpq" command for CUPS.
*
* "lpq" command for the Common UNIX Printing System (CUPS).
* Copyright © 2007-2018 by Apple Inc.
* Copyright © 1997-2006 by Easy Software Products.
*
* Copyright 1997-1999 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
* copyright law. Distribution and use rights are outlined in the file
* "LICENSE.txt" which should have been included with this file. If this
* file is missing or damaged please contact Easy Software Products
* at:
*
* Attn: CUPS Licensing Information
* Easy Software Products
* 44141 Airport View Drive, Suite 204
* Hollywood, Maryland 20636-3111 USA
*
* Voice: (301) 373-9603
* EMail: cups-info@cups.org
* WWW: http://www.cups.org
*
* Contents:
*
* main() - Parse options and commands.
* show_jobs() - Show jobs.
* Licensed under Apache License v2.0. See the file "LICENSE" for more
* information.
*/
/*
* Include necessary headers...
*/
/*
* Include necessary headers...
*/
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <cups/cups.h>
#include <cups/language.h>
#include <cups/debug.h>
#include <cups/cups-private.h>
/*
* Local functions...
*/
static int show_jobs(http_t *, const char *, const char *, const int,
const int);
static http_t *connect_server(const char *, http_t *);
static int show_jobs(const char *, http_t *, const char *,
const char *, const int, const int);
static void show_printer(const char *, http_t *, const char *);
static void usage(void) _CUPS_NORETURN;
/*
@@ -56,63 +31,218 @@ static int show_jobs(http_t *, const char *, const char *, const int,
*/
int
main(int argc, /* I - Number of command-line arguments */
char *argv[]) /* I - Command-line arguments */
main(int argc, /* I - Number of command-line arguments */
char *argv[]) /* I - Command-line arguments */
{
int i; /* Looping var */
http_t *http; /* Connection to server */
const char *dest, /* Desired printer */
*user; /* Desired user */
int id, /* Desired job ID */
interval, /* Reporting interval */
longstatus; /* Show file details */
int i; /* Looping var */
http_t *http; /* Connection to server */
const char *opt, /* Option pointer */
*dest, /* Desired printer */
*user, /* Desired user */
*val; /* Environment variable name */
char *instance; /* Printer instance */
int id, /* Desired job ID */
all, /* All printers */
interval, /* Reporting interval */
longstatus; /* Show file details */
cups_dest_t *named_dest; /* Named destination */
/*
* Connect to the scheduler...
*/
http = httpConnect(cupsServer(), ippPort());
_cupsSetLocale(argv);
/*
* Check for command-line options...
*/
dest = cupsGetDefault();
http = NULL;
dest = NULL;
user = NULL;
id = 0;
interval = 0;
longstatus = 0;
all = 0;
for (i = 1; i < argc; i ++)
{
if (argv[i][0] == '+')
{
interval = atoi(argv[i] + 1);
}
else if (!strcmp(argv[i], "--help"))
usage();
else if (argv[i][0] == '-')
{
switch (argv[i][1])
for (opt = argv[i] + 1; *opt; opt ++)
{
case 'P' : /* Printer */
if (argv[i][2])
dest = argv[i] + 2;
else
{
i ++;
dest = argv[i];
}
break;
switch (*opt)
{
case 'E' : /* Encrypt */
#ifdef HAVE_SSL
cupsSetEncryption(HTTP_ENCRYPT_REQUIRED);
case 'l' : /* Long status */
longstatus = 1;
break;
if (http)
httpEncryption(http, HTTP_ENCRYPT_REQUIRED);
#else
_cupsLangPrintf(stderr, _("%s: Sorry, no encryption support."), argv[0]);
#endif /* HAVE_SSL */
break;
default :
fputs("Usage: lpq [-P dest] [-l] [+interval]\n", stderr);
return (1);
case 'U' : /* Username */
if (opt[1] != '\0')
{
cupsSetUser(opt + 1);
opt += strlen(opt) - 1;
}
else
{
i ++;
if (i >= argc)
{
_cupsLangPrintf(stderr, _("%s: Error - expected username after \"-U\" option."), argv[0]);
return (1);
}
cupsSetUser(argv[i]);
}
break;
case 'P' : /* Printer */
if (opt[1] != '\0')
{
dest = opt + 1;
opt += strlen(opt) - 1;
}
else
{
i ++;
if (i >= argc)
{
httpClose(http);
usage();
}
dest = argv[i];
}
if ((instance = strchr(dest, '/')) != NULL)
*instance++ = '\0';
http = connect_server(argv[0], http);
if ((named_dest = cupsGetNamedDest(http, dest, instance)) == NULL)
{
if (cupsLastError() == IPP_STATUS_ERROR_BAD_REQUEST ||
cupsLastError() == IPP_STATUS_ERROR_VERSION_NOT_SUPPORTED)
_cupsLangPrintf(stderr, _("%s: Error - add '/version=1.1' to server name."), argv[0]);
else if (instance)
_cupsLangPrintf(stderr, _("%s: Error - unknown destination \"%s/%s\"."), argv[0], dest, instance);
else
_cupsLangPrintf(stderr, _("%s: Unknown destination \"%s\"."), argv[0], dest);
return (1);
}
cupsFreeDests(1, named_dest);
break;
case 'a' : /* All printers */
all = 1;
break;
case 'h' : /* Connect to host */
if (http)
{
httpClose(http);
http = NULL;
}
if (opt[1] != '\0')
{
cupsSetServer(opt + 1);
opt += strlen(opt) - 1;
}
else
{
i ++;
if (i >= argc)
{
_cupsLangPrintf(stderr, _("%s: Error - expected hostname after \"-h\" option."), argv[0]);
return (1);
}
else
cupsSetServer(argv[i]);
}
break;
case 'l' : /* Long status */
longstatus = 1;
break;
default :
httpClose(http);
usage();
}
}
}
else if (isdigit(argv[i][0]))
else if (isdigit(argv[i][0] & 255))
{
id = atoi(argv[i]);
}
else
{
user = argv[i];
}
}
http = connect_server(argv[0], http);
if (dest == NULL && !all)
{
if ((named_dest = cupsGetNamedDest(http, NULL, NULL)) == NULL)
{
if (cupsLastError() == IPP_STATUS_ERROR_BAD_REQUEST ||
cupsLastError() == IPP_STATUS_ERROR_VERSION_NOT_SUPPORTED)
{
_cupsLangPrintf(stderr,
_("%s: Error - add '/version=1.1' to server name."),
argv[0]);
return (1);
}
val = NULL;
if ((dest = getenv("LPDEST")) == NULL)
{
if ((dest = getenv("PRINTER")) != NULL)
{
if (!strcmp(dest, "lp"))
dest = NULL;
else
val = "PRINTER";
}
}
else
val = "LPDEST";
if (dest && val)
_cupsLangPrintf(stderr,
_("%s: Error - %s environment variable names "
"non-existent destination \"%s\"."), argv[0], val,
dest);
else
_cupsLangPrintf(stderr,
_("%s: Error - no default destination available."),
argv[0]);
httpClose(http);
return (1);
}
dest = named_dest->name;
}
/*
* Show the status in a loop...
@@ -120,10 +250,16 @@ main(int argc, /* I - Number of command-line arguments */
for (;;)
{
i = show_jobs(http, dest, user, id, longstatus);
if (dest)
show_printer(argv[0], http, dest);
i = show_jobs(argv[0], http, dest, user, id, longstatus);
if (i && interval)
sleep(interval);
{
fflush(stdout);
sleep((unsigned)interval);
}
else
break;
}
@@ -138,32 +274,69 @@ main(int argc, /* I - Number of command-line arguments */
}
/*
* 'connect_server()' - Connect to the server as necessary...
*/
static http_t * /* O - New HTTP connection */
connect_server(const char *command, /* I - Command name */
http_t *http) /* I - Current HTTP connection */
{
if (!http)
{
http = httpConnectEncrypt(cupsServer(), ippPort(),
cupsEncryption());
if (http == NULL)
{
_cupsLangPrintf(stderr, _("%s: Unable to connect to server."), command);
exit(1);
}
}
return (http);
}
/*
* 'show_jobs()' - Show jobs.
*/
static int /* O - Number of jobs in queue */
show_jobs(http_t *http, /* I - HTTP connection to server */
const char *dest, /* I - Destination */
const char *user, /* I - User */
const int id, /* I - Job ID */
const int longstatus)/* I - 1 if long report desired */
static int /* O - Number of jobs in queue */
show_jobs(const char *command, /* I - Command name */
http_t *http, /* I - HTTP connection to server */
const char *dest, /* I - Destination */
const char *user, /* I - User */
const int id, /* I - Job ID */
const int longstatus) /* I - 1 if long report desired */
{
ipp_t *request, /* IPP Request */
*response; /* IPP Response */
ipp_attribute_t *attr; /* Current attribute */
cups_lang_t *language; /* Default language */
const char *jobdest, /* Pointer into job-printer-uri */
*jobuser, /* Pointer to job-originating-user-name */
*jobname; /* Pointer to job-name */
ipp_jstate_t jobstate; /* job-state */
int jobid, /* job-id */
jobsize, /* job-k-octets */
jobpriority, /* job-priority */
jobcount, /* Number of jobs */
rank; /* Rank of job */
char resource[1024]; /* Resource string */
static const char *ranks[10] =/* Ranking strings */
ipp_t *request, /* IPP Request */
*response; /* IPP Response */
ipp_attribute_t *attr; /* Current attribute */
const char *jobdest, /* Pointer into job-printer-uri */
*jobuser, /* Pointer to job-originating-user-name */
*jobname; /* Pointer to job-name */
ipp_jstate_t jobstate; /* job-state */
int jobid, /* job-id */
jobsize, /* job-k-octets */
jobcount, /* Number of jobs */
jobcopies, /* Number of copies */
rank; /* Rank of job */
char resource[1024]; /* Resource string */
char rankstr[255]; /* Rank string */
char namestr[1024]; /* Job name string */
static const char * const jobattrs[] =/* Job attributes we want to see */
{
"copies",
"job-id",
"job-k-octets",
"job-name",
"job-originating-user-name",
"job-printer-uri",
"job-priority",
"job-state"
};
static const char * const ranks[10] = /* Ranking strings */
{
"th",
"st",
@@ -178,9 +351,6 @@ show_jobs(http_t *http, /* I - HTTP connection to server */
};
DEBUG_printf(("show_jobs(%08x, %08x, %08x, %d, %d)\n", http, dest, user, id,
longstatus));
if (http == NULL)
return (0);
@@ -191,39 +361,29 @@ show_jobs(http_t *http, /* I - HTTP connection to server */
* attributes-charset
* attributes-natural-language
* job-uri or printer-uri
* [
* requested-attributes
* requesting-user-name
*/
request = ippNew();
request = ippNewRequest(id ? IPP_GET_JOB_ATTRIBUTES : IPP_GET_JOBS);
request->request.op.operation_id = id ? IPP_GET_JOB_ATTRIBUTES : IPP_GET_JOBS;
request->request.op.request_id = 1;
language = cupsLangDefault();
attr = ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_CHARSET,
"attributes-charset", NULL, cupsLangEncoding(language));
attr = ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE,
"attributes-natural-language", NULL, language->language);
if (dest == NULL)
if (id)
{
if (id)
sprintf(resource, "ipp://localhost/jobs/%d", id);
else
strcpy(resource, "ipp://localhost/jobs");
snprintf(resource, sizeof(resource), "ipp://localhost/jobs/%d", id);
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "job-uri",
NULL, resource);
}
else if (dest)
{
httpAssembleURIf(HTTP_URI_CODING_ALL, resource, sizeof(resource), "ipp",
NULL, "localhost", 0, "/printers/%s", dest);
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri",
NULL, resource);
}
else
{
sprintf(resource, "ipp://localhost/printers/%s", dest);
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "job-uri",
NULL, resource);
}
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri",
NULL, "ipp://localhost/");
if (user)
{
@@ -231,18 +391,29 @@ show_jobs(http_t *http, /* I - HTTP connection to server */
"requesting-user-name", NULL, user);
ippAddBoolean(request, IPP_TAG_OPERATION, "my-jobs", 1);
}
else
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME,
"requesting-user-name", NULL, cupsUser());
ippAddStrings(request, IPP_TAG_OPERATION, IPP_TAG_KEYWORD,
"requested-attributes",
(int)(sizeof(jobattrs) / sizeof(jobattrs[0])), NULL, jobattrs);
/*
* Do the request and get back a response...
*/
if (!longstatus)
puts("Rank\tPri Owner Job Files Total Size");
jobcount = 0;
if ((response = cupsDoRequest(http, request, "/jobs/")) != NULL)
if ((response = cupsDoRequest(http, request, "/")) != NULL)
{
if (response->request.status.status_code > IPP_OK_CONFLICT)
{
_cupsLangPrintf(stderr, "%s: %s", command, cupsLastErrorString());
ippDelete(response);
return (0);
}
rank = 1;
/*
@@ -267,43 +438,43 @@ show_jobs(http_t *http, /* I - HTTP connection to server */
jobid = 0;
jobsize = 0;
jobpriority = 50;
jobstate = IPP_JOB_PENDING;
jobname = "untitled";
jobuser = NULL;
jobname = "unknown";
jobuser = "unknown";
jobdest = NULL;
jobcopies = 1;
while (attr != NULL && attr->group_tag == IPP_TAG_JOB)
{
if (strcmp(attr->name, "job-id") == 0 &&
if (!strcmp(attr->name, "job-id") &&
attr->value_tag == IPP_TAG_INTEGER)
jobid = attr->values[0].integer;
if (strcmp(attr->name, "job-k-octets") == 0 &&
if (!strcmp(attr->name, "job-k-octets") &&
attr->value_tag == IPP_TAG_INTEGER)
jobsize = attr->values[0].integer * 1024;
jobsize = attr->values[0].integer;
if (strcmp(attr->name, "job-priority") == 0 &&
attr->value_tag == IPP_TAG_INTEGER)
jobpriority = attr->values[0].integer;
if (strcmp(attr->name, "job-state") == 0 &&
if (!strcmp(attr->name, "job-state") &&
attr->value_tag == IPP_TAG_ENUM)
jobstate = (ipp_jstate_t)attr->values[0].integer;
if (strcmp(attr->name, "job-printer-uri") == 0 &&
if (!strcmp(attr->name, "job-printer-uri") &&
attr->value_tag == IPP_TAG_URI)
if ((jobdest = strrchr(attr->values[0].string.text, '/')) != NULL)
jobdest ++;
if (strcmp(attr->name, "job-originating-user-name") == 0 &&
if (!strcmp(attr->name, "job-originating-user-name") &&
attr->value_tag == IPP_TAG_NAME)
jobuser = attr->values[0].string.text;
if (strcmp(attr->name, "job-name") == 0 &&
if (!strcmp(attr->name, "job-name") &&
attr->value_tag == IPP_TAG_NAME)
jobname = attr->values[0].string.text;
if (!strcmp(attr->name, "copies") &&
attr->value_tag == IPP_TAG_INTEGER)
jobcopies = attr->values[0].integer;
attr = attr->next;
}
@@ -319,51 +490,162 @@ show_jobs(http_t *http, /* I - HTTP connection to server */
continue;
}
if (!longstatus && jobcount == 0)
_cupsLangPuts(stdout,
_("Rank Owner Job File(s)"
" Total Size"));
jobcount ++;
/*
* Display the job...
*/
if (longstatus)
{
puts("");
if (jobstate == IPP_JOB_PROCESSING)
printf("%s: active\t\t\t\t ", jobuser);
else
{
printf("%s: %d%s\t\t\t\t ", jobuser, rank, ranks[rank % 10]);
rank ++;
}
printf("[job %03dlocalhost]\n", jobid);
printf("\t%-33s%d bytes\n", jobname, jobsize);
}
if (jobstate == IPP_JOB_PROCESSING)
strlcpy(rankstr, "active", sizeof(rankstr));
else
{
if (jobstate == IPP_JOB_PROCESSING)
printf("active\t");
else
{
printf("%d%s\t", rank, ranks[rank % 10]);
rank ++;
}
/*
* Make the rank show the "correct" suffix for each number
* (11-13 are the only special cases, for English anyways...)
*/
printf(" %-5d%-7.7s%-7d%-19s%d bytes\n", jobpriority, jobuser, jobid,
jobname, jobsize);
if ((rank % 100) >= 11 && (rank % 100) <= 13)
snprintf(rankstr, sizeof(rankstr), "%dth", rank);
else
snprintf(rankstr, sizeof(rankstr), "%d%s", rank, ranks[rank % 10]);
rank ++;
}
if (longstatus)
{
_cupsLangPuts(stdout, "\n");
if (jobcopies > 1)
snprintf(namestr, sizeof(namestr), "%d copies of %s", jobcopies,
jobname);
else
strlcpy(namestr, jobname, sizeof(namestr));
_cupsLangPrintf(stdout, _("%s: %-33.33s [job %d localhost]"),
jobuser, rankstr, jobid);
_cupsLangPrintf(stdout, _(" %-39.39s %.0f bytes"),
namestr, 1024.0 * jobsize);
}
else
_cupsLangPrintf(stdout,
_("%-7s %-7.7s %-7d %-31.31s %.0f bytes"),
rankstr, jobuser, jobid, jobname, 1024.0 * jobsize);
if (attr == NULL)
break;
}
ippDelete(response);
}
else
{
_cupsLangPrintf(stderr, "%s: %s", command, cupsLastErrorString());
return (0);
}
if (jobcount == 0)
_cupsLangPuts(stdout, _("no entries"));
return (jobcount);
}
/*
* End of "$Id$".
* 'show_printer()' - Show printer status.
*/
static void
show_printer(const char *command, /* I - Command name */
http_t *http, /* I - HTTP connection to server */
const char *dest) /* I - Destination */
{
ipp_t *request, /* IPP Request */
*response; /* IPP Response */
ipp_attribute_t *attr; /* Current attribute */
ipp_pstate_t state; /* Printer state */
char uri[HTTP_MAX_URI]; /* Printer URI */
if (http == NULL)
return;
/*
* Build an IPP_GET_PRINTER_ATTRIBUTES request, which requires the following
* attributes:
*
* attributes-charset
* attributes-natural-language
* printer-uri
*/
request = ippNewRequest(IPP_GET_PRINTER_ATTRIBUTES);
httpAssembleURIf(HTTP_URI_CODING_ALL, uri, sizeof(uri), "ipp", NULL,
"localhost", 0, "/printers/%s", dest);
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI,
"printer-uri", NULL, uri);
/*
* Do the request and get back a response...
*/
if ((response = cupsDoRequest(http, request, "/")) != NULL)
{
if (response->request.status.status_code > IPP_OK_CONFLICT)
{
_cupsLangPrintf(stderr, "%s: %s", command, cupsLastErrorString());
ippDelete(response);
return;
}
if ((attr = ippFindAttribute(response, "printer-state", IPP_TAG_ENUM)) != NULL)
state = (ipp_pstate_t)attr->values[0].integer;
else
state = IPP_PRINTER_STOPPED;
switch (state)
{
case IPP_PRINTER_IDLE :
_cupsLangPrintf(stdout, _("%s is ready"), dest);
break;
case IPP_PRINTER_PROCESSING :
_cupsLangPrintf(stdout, _("%s is ready and printing"),
dest);
break;
case IPP_PRINTER_STOPPED :
_cupsLangPrintf(stdout, _("%s is not ready"), dest);
break;
}
ippDelete(response);
}
else
_cupsLangPrintf(stderr, "%s: %s", command, cupsLastErrorString());
}
/*
* 'usage()' - Show program usage.
*/
static void
usage(void)
{
_cupsLangPuts(stderr, _("Usage: lpq [options] [+interval]"));
_cupsLangPuts(stdout, _("Options:"));
_cupsLangPuts(stdout, _("-a Show jobs on all destinations"));
_cupsLangPuts(stdout, _("-E Encrypt the connection to the server"));
_cupsLangPuts(stdout, _("-h server[:port] Connect to the named server and port"));
_cupsLangPuts(stdout, _("-l Show verbose (long) output"));
_cupsLangPuts(stdout, _("-P destination Show status for the specified destination"));
_cupsLangPuts(stdout, _("-U username Specify the username to use for authentication"));
exit(1);
}
+381 -178
Ver Arquivo
@@ -1,38 +1,25 @@
/*
* "$Id$"
* "lpr" command for CUPS.
*
* "lpr" command for the Common UNIX Printing System (CUPS).
* Copyright © 2007-2018 by Apple Inc.
* Copyright © 1997-2007 by Easy Software Products.
*
* Copyright 1997-1999 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
* copyright law. Distribution and use rights are outlined in the file
* "LICENSE.txt" which should have been included with this file. If this
* file is missing or damaged please contact Easy Software Products
* at:
*
* Attn: CUPS Licensing Information
* Easy Software Products
* 44141 Airport View Drive, Suite 204
* Hollywood, Maryland 20636-3111 USA
*
* Voice: (301) 373-9603
* EMail: cups-info@cups.org
* WWW: http://www.cups.org
*
* Contents:
*
* main() - Parse options and send files for printing.
* Licensed under Apache License v2.0. See the file "LICENSE" for more
* information.
*/
/*
* Include necessary headers...
*/
#include <stdio.h>
#include <stdlib.h>
#include <cups/cups.h>
#include <cups/cups-private.h>
/*
* Local functions...
*/
static void usage(void) _CUPS_NORETURN;
/*
@@ -40,207 +27,393 @@
*/
int
main(int argc, /* I - Number of command-line arguments */
char *argv[]) /* I - Command-line arguments */
main(int argc, /* I - Number of command-line arguments */
char *argv[]) /* I - Command-line arguments */
{
int i; /* Looping var */
int job_id; /* Job ID */
const char *dest; /* Destination printer */
const char *title; /* Job title */
int priority; /* Job priority (1-100) */
int num_copies; /* Number of copies per file */
int num_files; /* Number of files printed */
int num_options; /* Number of options */
cups_option_t *options; /* Options */
int silent, /* Silent or verbose output? */
deletefile; /* Delete file after print? */
char tempfile[1024]; /* Temporary file for printing from stdin */
char buffer[8192]; /* Copy buffer */
FILE *temp; /* Temporary file pointer */
int i, j; /* Looping var */
int job_id; /* Job ID */
char ch; /* Option character */
char *printer, /* Destination printer or class */
*instance, /* Instance */
*opt; /* Option pointer */
const char *title; /* Job title */
int num_copies; /* Number of copies per file */
int num_files; /* Number of files to print */
const char *files[1000]; /* Files to print */
cups_dest_t *dest; /* Selected destination */
int num_options; /* Number of options */
cups_option_t *options; /* Options */
int deletefile; /* Delete file after print? */
char buffer[8192]; /* Copy buffer */
silent = 0;
_cupsSetLocale(argv);
deletefile = 0;
dest = cupsGetDefault();
printer = NULL;
dest = NULL;
num_options = 0;
options = NULL;
num_files = 0;
title = NULL;
for (i = 1; i < argc; i ++)
if (argv[i][0] == '-')
switch (argv[i][1])
{
if (!strcmp(argv[i], "--help"))
usage();
else if (argv[i][0] == '-')
{
for (opt = argv[i] + 1; *opt; opt ++)
{
case 'i' : /* indent */
case 'w' : /* width */
if (argv[i][2] == '\0')
i ++;
case 'c' : /* CIFPLOT */
case 'd' : /* DVI */
case 'f' : /* FORTRAN */
case 'g' : /* plot */
case 'n' : /* Ditroff */
case 't' : /* Troff */
case 'v' : /* Raster image */
fprintf(stderr, "Warning: \'%c\' format modifier not supported - output may not be correct!\n",
argv[i][1]);
break;
switch (ch = *opt)
{
case 'E' : /* Encrypt */
#ifdef HAVE_SSL
cupsSetEncryption(HTTP_ENCRYPT_REQUIRED);
#else
_cupsLangPrintf(stderr, _("%s: Sorry, no encryption support."), argv[0]);
#endif /* HAVE_SSL */
break;
case 'o' : /* Option */
if (argv[i][2] != '\0')
num_options = cupsParseOptions(argv[i] + 2, num_options, &options);
else
{
i ++;
num_options = cupsParseOptions(argv[i], num_options, &options);
}
break;
case 'U' : /* Username */
if (opt[1] != '\0')
{
cupsSetUser(opt + 1);
opt += strlen(opt) - 1;
}
else
{
i ++;
if (i >= argc)
{
_cupsLangPrintf(stderr, _("%s: Error - expected username after \"-U\" option."), argv[0]);
usage();
}
case 'l' : /* Literal/raw */
num_options = cupsParseOptions("raw", num_options, &options);
break;
cupsSetUser(argv[i]);
}
break;
case 'p' : /* Prettyprint */
num_options = cupsParseOptions("prettyprint", num_options, &options);
break;
case 'H' : /* Connect to host */
if (opt[1] != '\0')
{
cupsSetServer(opt + 1);
opt += strlen(opt) - 1;
}
else
{
i ++;
case 'h' : /* Suppress burst page */
case 's' : /* Don't use symlinks */
break;
if (i >= argc)
{
_cupsLangPrintf(stderr, _("%s: Error - expected hostname after \"-H\" option."), argv[0]);
usage();
}
else
cupsSetServer(argv[i]);
}
break;
case 'm' : /* Mail on completion */
fputs("Warning: email notification is not supported!\n", stderr);
break;
case '1' : /* TROFF font set 1 */
case '2' : /* TROFF font set 2 */
case '3' : /* TROFF font set 3 */
case '4' : /* TROFF font set 4 */
case 'i' : /* indent */
case 'w' : /* width */
if (opt[1] != '\0')
{
opt += strlen(opt) - 1;
}
else
{
i ++;
case 'r' : /* Remove file after printing */
deletefile = 1;
break;
if (i >= argc)
{
_cupsLangPrintf(stderr,
_("%s: Error - expected value after \"-%c\" "
"option."), argv[0], ch);
usage();
}
}
case 'P' : /* Destination printer or class */
if (argv[i][2] != '\0')
dest = argv[i] + 2;
else
{
i ++;
dest = argv[i];
}
break;
case 'c' : /* CIFPLOT */
case 'd' : /* DVI */
case 'f' : /* FORTRAN */
case 'g' : /* plot */
case 'n' : /* Ditroff */
case 't' : /* Troff */
case 'v' : /* Raster image */
_cupsLangPrintf(stderr, _("%s: Warning - \"%c\" format modifier not supported - output may not be correct."), argv[0], ch);
break;
case '#' : /* Number of copies */
if (argv[i][2] != '\0')
num_copies = atoi(argv[i] + 2);
else
{
i ++;
num_copies = atoi(argv[i]);
}
case 'o' : /* Option */
if (opt[1] != '\0')
{
num_options = cupsParseOptions(opt + 1, num_options, &options);
opt += strlen(opt) - 1;
}
else
{
i ++;
if (i >= argc)
{
_cupsLangPrintf(stderr, _("%s: Error - expected option=value after \"-o\" option."), argv[0]);
usage();
}
if (num_copies < 1 || num_copies > 100)
{
fputs("lpr: Number copies must be between 1 and 100.\n", stderr);
num_options = cupsParseOptions(argv[i], num_options, &options);
}
break;
case 'l' : /* Literal/raw */
num_options = cupsAddOption("raw", "true", num_options, &options);
break;
case 'p' : /* Prettyprint */
num_options = cupsAddOption("prettyprint", "true", num_options, &options);
break;
case 'h' : /* Suppress burst page */
num_options = cupsAddOption("job-sheets", "none", num_options, &options);
break;
case 's' : /* Don't use symlinks */
break;
case 'm' : /* Mail on completion */
{
char email[1024]; /* EMail address */
snprintf(email, sizeof(email), "mailto:%s@%s", cupsUser(), httpGetHostname(NULL, buffer, sizeof(buffer)));
num_options = cupsAddOption("notify-recipient-uri", email, num_options, &options);
}
break;
case 'q' : /* Queue file but don't print */
num_options = cupsAddOption("job-hold-until", "indefinite", num_options, &options);
break;
case 'r' : /* Remove file after printing */
deletefile = 1;
break;
case 'P' : /* Destination printer or class */
if (opt[1] != '\0')
{
printer = opt + 1;
opt += strlen(opt) - 1;
}
else
{
i ++;
if (i >= argc)
{
_cupsLangPrintf(stderr, _("%s: Error - expected destination after \"-P\" option."), argv[0]);
usage();
}
printer = argv[i];
}
if ((instance = strrchr(printer, '/')) != NULL)
*instance++ = '\0';
if ((dest = cupsGetNamedDest(NULL, printer, instance)) != NULL)
{
for (j = 0; j < dest->num_options; j ++)
if (cupsGetOption(dest->options[j].name, num_options,
options) == NULL)
num_options = cupsAddOption(dest->options[j].name,
dest->options[j].value,
num_options, &options);
}
else if (cupsLastError() == IPP_STATUS_ERROR_BAD_REQUEST ||
cupsLastError() == IPP_STATUS_ERROR_VERSION_NOT_SUPPORTED)
{
_cupsLangPrintf(stderr, _("%s: Error - add '/version=1.1' to server name."), argv[0]);
return (1);
}
break;
case '#' : /* Number of copies */
if (opt[1] != '\0')
{
num_copies = atoi(opt + 1);
opt += strlen(opt) - 1;
}
else
{
i ++;
if (i >= argc)
{
_cupsLangPrintf(stderr, _("%s: Error - expected copies after \"-#\" option."), argv[0]);
usage();
}
num_copies = atoi(argv[i]);
}
if (num_copies < 1)
{
_cupsLangPrintf(stderr, _("%s: Error - copies must be 1 or more."), argv[0]);
return (1);
}
sprintf(buffer, "%d", num_copies);
num_options = cupsAddOption("copies", buffer, num_options, &options);
break;
case 'C' : /* Class */
case 'J' : /* Job name */
case 'T' : /* Title */
if (opt[1] != '\0')
{
title = opt + 1;
opt += strlen(opt) - 1;
}
else
{
i ++;
if (i >= argc)
{
_cupsLangPrintf(stderr, _("%s: Error - expected name after \"-%c\" option."), argv[0], ch);
usage();
}
title = argv[i];
}
break;
default :
_cupsLangPrintf(stderr, _("%s: Error - unknown option \"%c\"."), argv[0], *opt);
return (1);
}
sprintf(buffer, "%d", num_copies);
num_options = cupsAddOption("copies", buffer, num_options, &options);
break;
case 'C' : /* Class */
case 'J' : /* Job name */
case 'T' : /* Title */
if (argv[i][2] != '\0')
title = argv[i] + 2;
else
{
i ++;
title = argv[i];
}
break;
default :
fprintf(stderr, "lpr: Unknown option \'%c\'!\n", argv[i][1]);
return (1);
}
}
else
}
else if (num_files < 1000)
{
/*
* Print a file...
*/
if (dest == NULL)
if (access(argv[i], R_OK) != 0)
{
fputs("lpr: error - no default destination available.\n", stderr);
return (1);
_cupsLangPrintf(stderr,
_("%s: Error - unable to access \"%s\" - %s"),
argv[0], argv[i], strerror(errno));
return (1);
}
files[num_files] = argv[i];
num_files ++;
if (title)
job_id = cupsPrintFile(dest, argv[i], title, num_options, options);
else
{
char *filename;
if ((filename = strrchr(argv[i], '/')) != NULL)
filename ++;
if (title == NULL)
{
if ((title = strrchr(argv[i], '/')) != NULL)
title ++;
else
filename = argv[i];
job_id = cupsPrintFile(dest, argv[i], filename, num_options, options);
title = argv[i];
}
if (job_id < 1)
{
fprintf(stderr, "lpr: unable to print file \'%s\'.\n", argv[i]);
return (1);
}
else if (deletefile)
unlink(argv[i]);
}
else
{
_cupsLangPrintf(stderr, _("%s: Error - too many files - \"%s\"."), argv[0], argv[i]);
}
}
/*
* See if we printed anything; if not, print from stdin...
* See if we have any files to print; if not, print from stdin...
*/
if (num_files == 0)
if (printer == NULL)
{
if (dest == NULL)
if ((dest = cupsGetNamedDest(NULL, NULL, NULL)) != NULL)
{
fputs("lpr: error - no default destination available.\n", stderr);
printer = dest->name;
for (j = 0; j < dest->num_options; j ++)
if (cupsGetOption(dest->options[j].name, num_options, options) == NULL)
num_options = cupsAddOption(dest->options[j].name,
dest->options[j].value,
num_options, &options);
}
else if (cupsLastError() == IPP_STATUS_ERROR_BAD_REQUEST ||
cupsLastError() == IPP_STATUS_ERROR_VERSION_NOT_SUPPORTED)
{
_cupsLangPrintf(stderr,
_("%s: Error - add '/version=1.1' to server "
"name."), argv[0]);
return (1);
}
}
temp = fopen(cupsTempFile(tempfile, sizeof(tempfile)), "w");
if (temp == NULL)
{
fputs("lpr: unable to create temporary file.\n", stderr);
return (1);
}
while ((i = fread(buffer, 1, sizeof(buffer), stdin)) > 0)
fwrite(buffer, 1, i, temp);
i = ftell(temp);
fclose(temp);
if (i == 0)
{
fputs("lpr: standard input is empty, so no job has been sent.\n", stderr);
return (1);
}
if (title)
job_id = cupsPrintFile(dest, tempfile, title, num_options, options);
if (printer == NULL)
{
if (!cupsGetNamedDest(NULL, NULL, NULL) && cupsLastError() == IPP_STATUS_ERROR_NOT_FOUND)
_cupsLangPrintf(stderr, _("%s: Error - %s"), argv[0], cupsLastErrorString());
else
job_id = cupsPrintFile(dest, tempfile, "(stdin)", num_options, options);
_cupsLangPrintf(stderr, _("%s: Error - scheduler not responding."), argv[0]);
unlink(tempfile);
return (1);
}
if (job_id < 1)
if (num_files > 0)
{
job_id = cupsPrintFiles(printer, num_files, files, title, num_options, options);
if (deletefile && job_id > 0)
{
fputs("lpr: unable to print standard input.\n", stderr);
/*
* Delete print files after printing...
*/
for (i = 0; i < num_files; i ++)
unlink(files[i]);
}
}
else if ((job_id = cupsCreateJob(CUPS_HTTP_DEFAULT, printer,
title ? title : "(stdin)",
num_options, options)) > 0)
{
http_status_t status; /* Write status */
const char *format; /* Document format */
ssize_t bytes; /* Bytes read */
if (cupsGetOption("raw", num_options, options))
format = CUPS_FORMAT_RAW;
else if ((format = cupsGetOption("document-format", num_options,
options)) == NULL)
format = CUPS_FORMAT_AUTO;
status = cupsStartDocument(CUPS_HTTP_DEFAULT, printer, job_id, NULL,
format, 1);
while (status == HTTP_CONTINUE &&
(bytes = read(0, buffer, sizeof(buffer))) > 0)
status = cupsWriteRequestData(CUPS_HTTP_DEFAULT, buffer, (size_t)bytes);
if (status != HTTP_CONTINUE)
{
_cupsLangPrintf(stderr, _("%s: Error - unable to queue from stdin - %s."),
argv[0], httpStatus(status));
cupsFinishDocument(CUPS_HTTP_DEFAULT, printer);
cupsCancelJob2(CUPS_HTTP_DEFAULT, printer, job_id, 0);
return (1);
}
if (cupsFinishDocument(CUPS_HTTP_DEFAULT, printer) != IPP_OK)
{
_cupsLangPrintf(stderr, "%s: %s", argv[0], cupsLastErrorString());
cupsCancelJob2(CUPS_HTTP_DEFAULT, printer, job_id, 0);
return (1);
}
}
if (job_id < 1)
{
_cupsLangPrintf(stderr, "%s: %s", argv[0], cupsLastErrorString());
return (1);
}
return (0);
@@ -248,5 +421,35 @@ main(int argc, /* I - Number of command-line arguments */
/*
* End of "$Id$".
* 'usage()' - Show program usage and exit.
*/
static void
usage(void)
{
_cupsLangPuts(stdout, _("Usage: lpr [options] [file(s)]"));
_cupsLangPuts(stdout, _("Options:"));
_cupsLangPuts(stdout, _("-# num-copies Specify the number of copies to print"));
_cupsLangPuts(stdout, _("-E Encrypt the connection to the server"));
_cupsLangPuts(stdout, _("-H server[:port] Connect to the named server and port"));
_cupsLangPuts(stdout, _("-m Send an email notification when the job completes"));
_cupsLangPuts(stdout, _("-o option[=value] Specify a printer-specific option"));
_cupsLangPuts(stdout, _("-o job-sheets=standard Print a banner page with the job"));
_cupsLangPuts(stdout, _("-o media=size Specify the media size to use"));
_cupsLangPuts(stdout, _("-o number-up=N Specify that input pages should be printed N-up (1, 2, 4, 6, 9, and 16 are supported)"));
_cupsLangPuts(stdout, _("-o orientation-requested=N\n"
" Specify portrait (3) or landscape (4) orientation"));
_cupsLangPuts(stdout, _("-o print-quality=N Specify the print quality - draft (3), normal (4), or best (5)"));
_cupsLangPuts(stdout, _("-o sides=one-sided Specify 1-sided printing"));
_cupsLangPuts(stdout, _("-o sides=two-sided-long-edge\n"
" Specify 2-sided portrait printing"));
_cupsLangPuts(stdout, _("-o sides=two-sided-short-edge\n"
" Specify 2-sided landscape printing"));
_cupsLangPuts(stdout, _("-q Specify the job should be held for printing"));
_cupsLangPuts(stdout, _("-r Remove the file(s) after submission"));
_cupsLangPuts(stdout, _("-P destination Specify the destination"));
_cupsLangPuts(stdout, _("-T title Specify the job title"));
_cupsLangPuts(stdout, _("-U username Specify the username to use for authentication"));
exit(1);
}
+167 -132
Ver Arquivo
@@ -1,41 +1,25 @@
/*
* "$Id$"
* "lprm" command for CUPS.
*
* "lprm" command for the Common UNIX Printing System (CUPS).
* Copyright © 2007-2018 by Apple Inc.
* Copyright © 1997-2006 by Easy Software Products.
*
* Copyright 1997-1999 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
* copyright law. Distribution and use rights are outlined in the file
* "LICENSE.txt" which should have been included with this file. If this
* file is missing or damaged please contact Easy Software Products
* at:
*
* Attn: CUPS Licensing Information
* Easy Software Products
* 44141 Airport View Drive, Suite 204
* Hollywood, Maryland 20636-3111 USA
*
* Voice: (301) 373-9603
* EMail: cups-info@cups.org
* WWW: http://www.cups.org
*
* Contents:
*
* main() - Parse options and cancel jobs.
* Licensed under Apache License v2.0. See the file "LICENSE" for more
* information.
*/
/*
* Include necessary headers...
*/
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <cups/cups-private.h>
#include <cups/cups.h>
#include <cups/language.h>
/*
* Local functions...
*/
static void usage(void) _CUPS_NORETURN;
/*
@@ -46,160 +30,211 @@ int /* O - Exit status */
main(int argc, /* I - Number of command-line arguments */
char *argv[]) /* I - Command-line arguments */
{
http_t *http; /* HTTP connection to server */
int i; /* Looping var */
int job_id; /* Job ID */
const char *dest; /* Destination printer */
char uri[1024]; /* Printer or job URI */
ipp_t *request; /* IPP request */
ipp_t *response; /* IPP response */
ipp_op_t op; /* Operation */
cups_lang_t *language; /* Language */
const char *name; /* Destination printer */
char *instance, /* Pointer to instance name */
*opt; /* Option pointer */
cups_dest_t *dest, /* Destination */
*defdest; /* Default destination */
int did_cancel; /* Did we cancel something? */
_cupsSetLocale(argv);
/*
* Setup to cancel individual print jobs...
*/
op = IPP_CANCEL_JOB;
job_id = 0;
dest = cupsGetDefault();
response = NULL;
/*
* Open a connection to the server...
*/
if ((http = httpConnect(cupsServer(), ippPort())) == NULL)
{
fputs("lprm: Unable to contact server!\n", stderr);
return (1);
}
did_cancel = 0;
defdest = cupsGetNamedDest(CUPS_HTTP_DEFAULT, NULL, NULL);
name = defdest ? defdest->name : NULL;
/*
* Process command-line arguments...
*/
for (i = 1; i < argc; i ++)
if (argv[i][0] == '-' && argv[i][1] != '\0')
switch (argv[i][1])
{
if (!strcmp(argv[i], "--help"))
usage();
else if (argv[i][0] == '-' && argv[i][1] != '\0')
{
for (opt = argv[i] + 1; *opt; opt ++)
{
case 'P' : /* Cancel jobs on a printer */
if (argv[i][2])
dest = argv[i] + 2;
else
{
i ++;
dest = argv[i];
}
break;
switch (*opt)
{
case 'E' : /* Encrypt */
#ifdef HAVE_SSL
cupsSetEncryption(HTTP_ENCRYPT_REQUIRED);
#else
_cupsLangPrintf(stderr, _("%s: Sorry, no encryption support."), argv[0]);
#endif /* HAVE_SSL */
break;
default :
fprintf(stderr, "lprm: Unknown option \'%c\'!\n", argv[i][1]);
return (1);
case 'P' : /* Cancel jobs on a printer */
if (opt[1] != '\0')
{
name = opt + 1;
opt += strlen(opt) - 1;
}
else
{
i ++;
name = argv[i];
}
if ((instance = strchr(name, '/')) != NULL)
*instance = '\0';
if ((dest = cupsGetNamedDest(CUPS_HTTP_DEFAULT, name, NULL)) == NULL)
{
_cupsLangPrintf(stderr, _("%s: Error - unknown destination \"%s\"."), argv[0], name);
goto error;
}
cupsFreeDests(1, dest);
break;
case 'U' : /* Username */
if (opt[1] != '\0')
{
cupsSetUser(opt + 1);
opt += strlen(opt) - 1;
}
else
{
i ++;
if (i >= argc)
{
_cupsLangPrintf(stderr, _("%s: Error - expected username after \"-U\" option."), argv[0]);
usage();
}
cupsSetUser(argv[i]);
}
break;
case 'h' : /* Connect to host */
if (opt[1] != '\0')
{
cupsSetServer(opt + 1);
opt += strlen(opt) - 1;
}
else
{
i ++;
if (i >= argc)
{
_cupsLangPrintf(stderr, _("%s: Error - expected hostname after \"-h\" option."), argv[0]);
usage();
}
else
cupsSetServer(argv[i]);
}
if (defdest)
cupsFreeDests(1, defdest);
defdest = cupsGetNamedDest(CUPS_HTTP_DEFAULT, NULL, NULL);
name = defdest ? defdest->name : NULL;
break;
default :
_cupsLangPrintf(stderr, _("%s: Error - unknown option \"%c\"."), argv[0], *opt);
usage();
}
}
}
else
{
/*
* Cancel a job or printer...
*/
if (isdigit(argv[i][0]))
if ((dest = cupsGetNamedDest(CUPS_HTTP_DEFAULT, argv[i], NULL)) != NULL)
cupsFreeDests(1, dest);
if (dest)
{
dest = NULL;
op = IPP_CANCEL_JOB;
name = argv[i];
job_id = 0;
}
else if (isdigit(argv[i][0] & 255))
{
name = NULL;
job_id = atoi(argv[i]);
}
else if (strcmp(argv[i], "-") == 0)
else if (!strcmp(argv[i], "-"))
{
/*
* Cancel all jobs
*/
op = IPP_PURGE_JOBS;
}
else
job_id = 0;
/*
* Build an IPP request, which requires the following
* attributes:
*
* attributes-charset
* attributes-natural-language
* printer-uri + job-id *or* job-uri
* [requesting-user-name]
*/
request = ippNew();
request->request.op.operation_id = op;
request->request.op.request_id = 1;
language = cupsLangDefault();
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_CHARSET,
"attributes-charset", NULL, cupsLangEncoding(language));
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE,
"attributes-natural-language", NULL, language->language);
if (dest)
{
sprintf(uri, "ipp://localhost/printers/%s", dest);
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI,
"printer-uri", NULL, uri);
ippAddInteger(request, IPP_TAG_OPERATION, IPP_TAG_INTEGER, "job-id",
job_id);
job_id = -1;
}
else
{
sprintf(uri, "ipp://localhost/jobs/%d", job_id);
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "job-uri", NULL,
uri);
_cupsLangPrintf(stderr, _("%s: Error - unknown destination \"%s\"."),
argv[0], argv[i]);
goto error;
}
/*
* Do the request and get back a response...
*/
if (op == IPP_PURGE_JOBS)
response = cupsDoRequest(http, request, "/admin/");
else
response = cupsDoRequest(http, request, "/jobs/");
if (response != NULL)
if (cupsCancelJob2(CUPS_HTTP_DEFAULT, name, job_id, 0) != IPP_OK)
{
if (response->request.status.status_code == IPP_NOT_FOUND)
fputs("lprm: Job or printer not found!\n", stderr);
else if (response->request.status.status_code > IPP_OK_CONFLICT)
fputs("lprm: Unable to cancel job(s)!\n", stderr);
_cupsLangPrintf(stderr, "%s: %s", argv[0], cupsLastErrorString());
goto error;
}
ippDelete(response);
}
else
{
fputs("lprm: Unable to cancel job(s)!\n", stderr);
return (1);
}
did_cancel = 1;
}
}
/*
* If nothing has been cancelled yet, cancel the current job on the specified
* If nothing has been canceled yet, cancel the current job on the specified
* (or default) printer...
*/
if (response == NULL)
if (!cupsCancelJob(dest, 0))
if (!did_cancel && cupsCancelJob2(CUPS_HTTP_DEFAULT, name, 0, 0) != IPP_OK)
{
fputs("lprm: Unable to cancel job(s)!\n", stderr);
return (1);
_cupsLangPrintf(stderr, "%s: %s", argv[0], cupsLastErrorString());
goto error;
}
if (defdest)
cupsFreeDests(1, defdest);
return (0);
/*
* If we get here there was an error, so clean up...
*/
error:
if (defdest)
cupsFreeDests(1, defdest);
return (1);
}
/*
* End of "$Id$".
* 'usage()' - Show program usage and exit.
*/
static void
usage(void)
{
_cupsLangPuts(stdout, _("Usage: lprm [options] [id]\n"
" lprm [options] -"));
_cupsLangPuts(stdout, _("Options:"));
_cupsLangPuts(stdout, _("- Cancel all jobs"));
_cupsLangPuts(stdout, _("-E Encrypt the connection to the server"));
_cupsLangPuts(stdout, _("-h server[:port] Connect to the named server and port"));
_cupsLangPuts(stdout, _("-P destination Specify the destination"));
_cupsLangPuts(stdout, _("-U username Specify the username to use for authentication"));
exit(1);
}
+72
Ver Arquivo
@@ -0,0 +1,72 @@
help-index.o: help-index.c cgi-private.h cgi.h ../cups/cups.h \
../cups/file.h ../cups/versioning.h ../cups/ipp.h ../cups/http.h \
../cups/array.h ../cups/language.h ../cups/pwg.h help-index.h \
../cups/debug-private.h ../cups/language-private.h ../config.h \
../cups/transcode.h ../cups/string-private.h ../cups/ipp-private.h \
../cups/dir.h
html.o: html.c cgi-private.h cgi.h ../cups/cups.h ../cups/file.h \
../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
../cups/language.h ../cups/pwg.h help-index.h ../cups/debug-private.h \
../cups/language-private.h ../config.h ../cups/transcode.h \
../cups/string-private.h ../cups/ipp-private.h
ipp-var.o: ipp-var.c cgi-private.h cgi.h ../cups/cups.h ../cups/file.h \
../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
../cups/language.h ../cups/pwg.h help-index.h ../cups/debug-private.h \
../cups/language-private.h ../config.h ../cups/transcode.h \
../cups/string-private.h ../cups/ipp-private.h
search.o: search.c cgi-private.h cgi.h ../cups/cups.h ../cups/file.h \
../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
../cups/language.h ../cups/pwg.h help-index.h ../cups/debug-private.h \
../cups/language-private.h ../config.h ../cups/transcode.h \
../cups/string-private.h ../cups/ipp-private.h
template.o: template.c cgi-private.h cgi.h ../cups/cups.h ../cups/file.h \
../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
../cups/language.h ../cups/pwg.h help-index.h ../cups/debug-private.h \
../cups/language-private.h ../config.h ../cups/transcode.h \
../cups/string-private.h ../cups/ipp-private.h
var.o: var.c cgi-private.h cgi.h ../cups/cups.h ../cups/file.h \
../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
../cups/language.h ../cups/pwg.h help-index.h ../cups/debug-private.h \
../cups/language-private.h ../config.h ../cups/transcode.h \
../cups/string-private.h ../cups/ipp-private.h
admin.o: admin.c cgi-private.h cgi.h ../cups/cups.h ../cups/file.h \
../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
../cups/language.h ../cups/pwg.h help-index.h ../cups/debug-private.h \
../cups/language-private.h ../config.h ../cups/transcode.h \
../cups/string-private.h ../cups/ipp-private.h ../cups/http-private.h \
../cups/ppd-private.h ../cups/ppd.h ../cups/raster.h \
../cups/pwg-private.h ../cups/adminutil.h
classes.o: classes.c cgi-private.h cgi.h ../cups/cups.h ../cups/file.h \
../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
../cups/language.h ../cups/pwg.h help-index.h ../cups/debug-private.h \
../cups/language-private.h ../config.h ../cups/transcode.h \
../cups/string-private.h ../cups/ipp-private.h
help.o: help.c cgi-private.h cgi.h ../cups/cups.h ../cups/file.h \
../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
../cups/language.h ../cups/pwg.h help-index.h ../cups/debug-private.h \
../cups/language-private.h ../config.h ../cups/transcode.h \
../cups/string-private.h ../cups/ipp-private.h
jobs.o: jobs.c cgi-private.h cgi.h ../cups/cups.h ../cups/file.h \
../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
../cups/language.h ../cups/pwg.h help-index.h ../cups/debug-private.h \
../cups/language-private.h ../config.h ../cups/transcode.h \
../cups/string-private.h ../cups/ipp-private.h
makedocset.o: makedocset.c cgi-private.h cgi.h ../cups/cups.h \
../cups/file.h ../cups/versioning.h ../cups/ipp.h ../cups/http.h \
../cups/array.h ../cups/language.h ../cups/pwg.h help-index.h \
../cups/debug-private.h ../cups/language-private.h ../config.h \
../cups/transcode.h ../cups/string-private.h ../cups/ipp-private.h
printers.o: printers.c cgi-private.h cgi.h ../cups/cups.h ../cups/file.h \
../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
../cups/language.h ../cups/pwg.h help-index.h ../cups/debug-private.h \
../cups/language-private.h ../config.h ../cups/transcode.h \
../cups/string-private.h ../cups/ipp-private.h
testcgi.o: testcgi.c cgi.h ../cups/cups.h ../cups/file.h \
../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
../cups/language.h ../cups/pwg.h help-index.h
testhi.o: testhi.c cgi.h ../cups/cups.h ../cups/file.h \
../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
../cups/language.h ../cups/pwg.h help-index.h
testtemplate.o: testtemplate.c cgi.h ../cups/cups.h ../cups/file.h \
../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
../cups/language.h ../cups/pwg.h help-index.h
+200 -35
Ver Arquivo
@@ -1,31 +1,51 @@
#
# "$Id$"
# CGI makefile for CUPS.
#
# CGI makefile for the Common UNIX Printing System (CUPS).
# Copyright © 2007-2018 by Apple Inc.
# Copyright © 1997-2006 by Easy Software Products.
#
# Copyright 1997-1999 by Easy Software Products.
#
# These coded instructions, statements, and computer programs are the
# property of Easy Software Products and are protected by Federal
# copyright law. Distribution and use rights are outlined in the file
# "LICENSE.txt" which should have been included with this file. If this
# file is missing or damaged please contact Easy Software Products
# at:
#
# Attn: CUPS Licensing Information
# Easy Software Products
# 44141 Airport View Drive, Suite 204
# Hollywood, Maryland 20636-3111 USA
#
# Voice: (301) 373-9603
# EMail: cups-info@cups.org
# WWW: http://www.cups.org
# Licensed under Apache License v2.0. See the file "LICENSE" for more
# information.
#
include ../Makedefs
TARGETS = classes.cgi jobs.cgi printers.cgi
OBJS = classes.o jobs.o printers.o
LIBOBJS = \
help-index.o \
html.o \
ipp-var.o \
search.o \
template.o \
var.o
OBJS = \
$(LIBOBJS) \
admin.o \
classes.o \
help.o \
jobs.o \
makedocset.o \
printers.o \
testcgi.o \
testhi.o \
testtemplate.o
CGIS = \
admin.cgi \
classes.cgi \
help.cgi \
jobs.cgi \
printers.cgi
LIBTARGETS = \
libcupscgi.a
UNITTARGETS = \
testcgi \
testhi \
testtemplate
TARGETS = \
$(LIBTARGETS) \
$(CGIS)
#
# Make all targets...
@@ -33,51 +53,196 @@ OBJS = classes.o jobs.o printers.o
all: $(TARGETS)
#
# Make library targets...
#
libs:
#
# Make unit tests...
#
unittests: $(UNITTARGETS)
#
# Clean all object files...
#
clean:
rm -f $(OBJS) $(TARGETS)
$(RM) $(OBJS) $(TARGETS) $(UNITTARGETS) makedocset
#
# Update dependencies (without system header dependencies...)
#
depend:
$(CC) -MM $(ALL_CFLAGS) $(OBJS:.o=.c) >Dependencies
#
# Install all targets...
#
install:
-$(MKDIR) $(SERVERROOT)/cgi-bin
$(CP) $(TARGETS) $(SERVERROOT)/cgi-bin
install: all install-data install-headers install-libs install-exec
#
# Install data files...
#
install-data:
#
# Install programs...
#
install-exec:
$(INSTALL_DIR) -m 755 $(SERVERBIN)/cgi-bin
for file in $(CGIS); do \
$(INSTALL_BIN) $$file $(SERVERBIN)/cgi-bin; \
done
if test "x$(SYMROOT)" != "x"; then \
$(INSTALL_DIR) $(SYMROOT); \
for file in $(CGIS); do \
cp $$file $(SYMROOT); \
dsymutil $(SYMROOT)/$$file; \
done \
fi
#
# Install headers...
#
install-headers:
#
# Install libraries...
#
install-libs:
#
# Uninstall all targets...
#
uninstall:
for file in $(CGIS); do \
$(RM) $(SERVERBIN)/cgi-bin/$$file; \
done
-$(RMDIR) $(SERVERBIN)/cgi-bin
#
# libcupscgi.a
#
libcupscgi.a: $(LIBOBJS)
echo Archiving $@...
$(RM) $@
$(AR) $(ARFLAGS) $@ $(LIBOBJS)
$(RANLIB) $@
#
# admin.cgi
#
admin.cgi: admin.o ../Makedefs ../cups/$(LIBCUPS) libcupscgi.a
echo Linking $@...
$(LD_CC) $(LDFLAGS) -o $@ admin.o libcupscgi.a $(LIBS)
$(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@
#
# classes.cgi
#
classes.cgi: classes.o ../Makedefs ../cups/$(LIBCUPS)
classes.cgi: classes.o ../Makedefs ../cups/$(LIBCUPS) libcupscgi.a
echo Linking $@...
$(CC) $(LDFLAGS) -o $@ classes.o $(LIBS)
$(LD_CC) $(LDFLAGS) -o $@ classes.o libcupscgi.a $(LIBS)
$(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@
#
# help.cgi
#
help.cgi: help.o ../Makedefs ../cups/$(LIBCUPS) libcupscgi.a
echo Linking $@...
$(LD_CC) $(LDFLAGS) -o $@ help.o libcupscgi.a $(LIBS)
$(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@
$(OBJS): ../Makedefs ../cups/cups.h ../cups/ipp.h ../cups/language.h
#
# jobs.cgi
#
jobs.cgi: jobs.o ../Makedefs ../cups/$(LIBCUPS)
jobs.cgi: jobs.o ../Makedefs ../cups/$(LIBCUPS) libcupscgi.a
echo Linking $@...
$(CC) $(LDFLAGS) -o $@ jobs.o $(LIBS)
$(LD_CC) $(LDFLAGS) -o $@ jobs.o libcupscgi.a $(LIBS)
$(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@
$(OBJS): ../Makedefs ../cups/cups.h ../cups/ipp.h ../cups/language.h
#
# printers.cgi
#
printers.cgi: printers.o ../Makedefs ../cups/$(LIBCUPS)
printers.cgi: printers.o ../Makedefs ../cups/$(LIBCUPS) libcupscgi.a
echo Linking $@...
$(CC) $(LDFLAGS) -o $@ printers.o $(LIBS)
$(LD_CC) $(LDFLAGS) -o $@ printers.o libcupscgi.a $(LIBS)
$(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@
$(OBJS): ../Makedefs ../cups/cups.h ../cups/ipp.h ../cups/language.h
#
# End of "$Id$".
# testcgi
#
testcgi: testcgi.o ../Makedefs libcupscgi.a ../cups/$(LIBCUPSSTATIC)
echo Linking $@...
$(LD_CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testcgi.o libcupscgi.a \
../cups/$(LIBCUPSSTATIC) $(COMMONLIBS) $(SSLLIBS) $(DNSSDLIBS) \
$(LIBZ) $(LIBGSSAPI)
$(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@
echo Testing CGI API...
./testcgi
#
# testhi
#
testhi: testhi.o ../Makedefs libcupscgi.a ../cups/$(LIBCUPSSTATIC)
echo Linking $@...
$(LD_CC) $(ARCHFLAGS) $(LDFLAGS) -o $@ testhi.o libcupscgi.a \
../cups/$(LIBCUPSSTATIC) $(COMMONLIBS) $(SSLLIBS) $(DNSSDLIBS) \
$(LIBZ) $(LIBGSSAPI)
$(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@
echo Testing help index API...
./testhi
#
# testtemplate
#
testtemplate: testtemplate.o ../Makedefs libcupscgi.a ../cups/$(LIBCUPSSTATIC)
echo Linking $@...
$(LD_CC) $(LDFLAGS) -o $@ testtemplate.o libcupscgi.a ../cups/$(LIBCUPSSTATIC) \
$(COMMONLIBS) $(SSLLIBS) $(DNSSDLIBS) $(LIBZ) $(LIBGSSAPI)
$(CODE_SIGN) -s "$(CODE_SIGN_IDENTITY)" $@
#
# Dependencies...
#
include Dependencies
+3985
Ver Arquivo
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+25
Ver Arquivo
@@ -0,0 +1,25 @@
/*
* Private CGI definitions for CUPS.
*
* Copyright 2007-2011 by Apple Inc.
* Copyright 1997-2006 by Easy Software Products.
*
* Licensed under Apache License v2.0. See the file "LICENSE" for more information.
*/
/*
* Include necessary headers...
*/
#include "cgi.h"
#include <cups/debug-private.h>
#include <cups/language-private.h>
#include <cups/string-private.h>
#include <cups/ipp-private.h> /* TODO: Update so we don't need this */
/*
* Limits...
*/
#define CUPS_PAGE_MAX 100 /* Maximum items per page */
+109
Ver Arquivo
@@ -0,0 +1,109 @@
/*
* CGI support library definitions for CUPS.
*
* Copyright 2007-2010 by Apple Inc.
* Copyright 1997-2006 by Easy Software Products.
*
* Licensed under Apache License v2.0. See the file "LICENSE" for more information.
*/
#ifndef _CUPS_CGI_H_
# define _CUPS_CGI_H_
# include <stdio.h>
# include <stdlib.h>
# include <time.h>
# include <sys/stat.h>
# ifdef _WIN32
# include <direct.h>
# include <io.h>
# else
# include <unistd.h>
# endif /* _WIN32 */
# include <cups/cups.h>
# include <cups/array.h>
# include "help-index.h"
/*
* C++ magic...
*/
# ifdef __cplusplus
extern "C" {
# endif /* __cplusplus */
/*
* Types...
*/
typedef struct cgi_file_s /**** Uploaded file data ****/
{
char tempfile[1024], /* Temporary file containing data */
*name, /* Variable name */
*filename, /* Original filename */
*mimetype; /* MIME media type */
size_t filesize; /* Size of uploaded file */
} cgi_file_t;
/*
* Prototypes...
*/
extern void cgiAbort(const char *title, const char *stylesheet,
const char *format, ...);
extern int cgiCheckVariables(const char *names);
extern void cgiClearVariables(void);
extern void *cgiCompileSearch(const char *query);
extern void cgiCopyTemplateFile(FILE *out, const char *tmpl);
extern void cgiCopyTemplateLang(const char *tmpl);
extern int cgiDoSearch(void *search, const char *text);
extern void cgiEndHTML(void);
extern void cgiEndMultipart(void);
extern char *cgiFormEncode(char *dst, const char *src,
size_t dstsize);
extern void cgiFreeSearch(void *search);
extern const char *cgiGetArray(const char *name, int element);
extern void cgiGetAttributes(ipp_t *request, const char *tmpl);
extern const char *cgiGetCookie(const char *name);
extern const cgi_file_t *cgiGetFile(void);
extern cups_array_t *cgiGetIPPObjects(ipp_t *response, void *search);
extern int cgiGetSize(const char *name);
extern char *cgiGetTemplateDir(void);
extern const char *cgiGetVariable(const char *name);
extern int cgiInitialize(void);
extern int cgiIsPOST(void);
extern void cgiMoveJobs(http_t *http, const char *dest, int job_id);
extern void cgiPrintCommand(http_t *http, const char *dest,
const char *command, const char *title);
extern void cgiPrintTestPage(http_t *http, const char *dest);
extern char *cgiRewriteURL(const char *uri, char *url, int urlsize,
const char *newresource);
extern void cgiSetArray(const char *name, int element,
const char *value);
extern void cgiSetCookie(const char *name, const char *value,
const char *path, const char *domain,
time_t expires, int secure);
extern ipp_attribute_t *cgiSetIPPObjectVars(ipp_attribute_t *obj,
const char *prefix, int element);
extern int cgiSetIPPVars(ipp_t *response, const char *filter_name,
const char *filter_value,
const char *prefix, int parent_el);
extern void cgiSetServerVersion(void);
extern void cgiSetSize(const char *name, int size);
extern void cgiSetVariable(const char *name, const char *value);
extern void cgiShowIPPError(const char *message);
extern void cgiShowJobs(http_t *http, const char *dest);
extern void cgiStartHTML(const char *title);
extern void cgiStartMultipart(void);
extern int cgiSupportsMultipart(void);
extern const char *cgiText(const char *message);
# ifdef __cplusplus
}
# endif /* __cplusplus */
#endif /* !_CUPS_CGI_H_ */
+430 -385
Ver Arquivo
@@ -1,174 +1,193 @@
/*
* "$Id$"
* Class status CGI for CUPS.
*
* Class status CGI for the Common UNIX Printing System (CUPS).
* Copyright 2007-2016 by Apple Inc.
* Copyright 1997-2006 by Easy Software Products.
*
* Copyright 1997-1999 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
* copyright law. Distribution and use rights are outlined in the file
* "LICENSE.txt" which should have been included with this file. If this
* file is missing or damaged please contact Easy Software Products
* at:
*
* Attn: CUPS Licensing Information
* Easy Software Products
* 44141 Airport View Drive, Suite 204
* Hollywood, Maryland 20636-3111 USA
*
* Voice: (301) 373-9603
* EMail: cups-info@cups.org
* WWW: http://www.cups.org
*
* Contents:
*
* main() - Main entry for CGI.
* show_class_list() - Show a list of classes...
* show_class_info() - Show class information.
* Licensed under Apache License v2.0. See the file "LICENSE" for more information.
*/
/*
* Include necessary headers...
*/
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <cups/cups.h>
#include <cups/language.h>
#include <cups/debug.h>
#include "cgi-private.h"
/*
* Local functions...
*/
static void show_class_list(http_t *http, cups_lang_t *language);
static void show_class_info(http_t *http, cups_lang_t *language,
char *name);
static void do_class_op(http_t *http, const char *printer, ipp_op_t op,
const char *title);
static void show_all_classes(http_t *http, const char *username);
static void show_class(http_t *http, const char *printer);
/*
* 'main()' - Main entry for CGI.
*/
int /* O - Exit status */
main(int argc, /* I - Number of command-line arguments */
char *argv[]) /* I - Command-line arguments */
int /* O - Exit status */
main(void)
{
cups_lang_t *language; /* Language information */
char *name; /* Class name */
http_t *http; /* Connection to the server */
const char *pclass; /* Class name */
const char *user; /* Username */
http_t *http; /* Connection to the server */
ipp_t *request, /* IPP request */
*response; /* IPP response */
ipp_attribute_t *attr; /* IPP attribute */
const char *op; /* Operation to perform, if any */
static const char *def_attrs[] = /* Attributes for default printer */
{
"printer-name",
"printer-uri-supported"
};
/*
* Get the request language...
* Get any form variables...
*/
language = cupsLangDefault();
cgiInitialize();
op = cgiGetVariable("OP");
/*
* Set the web interface section...
*/
cgiSetVariable("SECTION", "classes");
cgiSetVariable("REFRESH_PAGE", "");
/*
* See if we are displaying a printer or all classes...
*/
if ((pclass = getenv("PATH_INFO")) != NULL)
{
pclass ++;
if (!*pclass)
pclass = NULL;
if (pclass)
cgiSetVariable("PRINTER_NAME", pclass);
}
/*
* See who is logged in...
*/
user = getenv("REMOTE_USER");
/*
* Connect to the HTTP server...
*/
http = httpConnect("localhost", ippPort());
http = httpConnectEncrypt(cupsServer(), ippPort(), cupsEncryption());
/*
* Tell the client to expect HTML...
* Get the default printer...
*/
printf("Content-Type: text/html;charset=%s\n\n", cupsLangEncoding(language));
if (!op || !cgiIsPOST())
{
/*
* Get the default destination...
*/
/*
* See if we need to show a list of classes or the status of a
* single class...
*/
request = ippNewRequest(CUPS_GET_DEFAULT);
name = argv[0];
if (strcmp(name, "/") == 0 || strcmp(name, "classes.cgi") == 0)
name = NULL;
ippAddStrings(request, IPP_TAG_OPERATION, IPP_TAG_KEYWORD,
"requested-attributes",
sizeof(def_attrs) / sizeof(def_attrs[0]), NULL, def_attrs);
/*
* Print the standard header...
*/
if ((response = cupsDoRequest(http, request, "/")) != NULL)
{
if ((attr = ippFindAttribute(response, "printer-name", IPP_TAG_NAME)) != NULL)
cgiSetVariable("DEFAULT_NAME", attr->values[0].string.text);
puts("<HTML>");
puts("<HEAD>");
if (name)
puts("<META HTTP-EQUIV=\"Refresh\" CONTENT=\"10\">");
if ((attr = ippFindAttribute(response, "printer-uri-supported", IPP_TAG_URI)) != NULL)
{
char url[HTTP_MAX_URI]; /* New URL */
cgiSetVariable("DEFAULT_URI",
cgiRewriteURL(attr->values[0].string.text,
url, sizeof(url), NULL));
}
ippDelete(response);
}
/*
* See if we need to show a list of classes or the status of a
* single printer...
*/
if (!pclass)
show_all_classes(http, user);
else
show_class(http, pclass);
}
else if (pclass)
{
if (!*op)
{
const char *server_port = getenv("SERVER_PORT");
/* Port number string */
int port = atoi(server_port ? server_port : "0");
/* Port number */
char uri[1024]; /* URL */
httpAssembleURIf(HTTP_URI_CODING_ALL, uri, sizeof(uri),
getenv("HTTPS") ? "https" : "http", NULL,
getenv("SERVER_NAME"), port, "/classes/%s", pclass);
printf("Location: %s\n\n", uri);
}
else if (!strcmp(op, "start-class"))
do_class_op(http, pclass, IPP_RESUME_PRINTER, cgiText(_("Resume Class")));
else if (!strcmp(op, "stop-class"))
do_class_op(http, pclass, IPP_PAUSE_PRINTER, cgiText(_("Pause Class")));
else if (!strcmp(op, "accept-jobs"))
do_class_op(http, pclass, CUPS_ACCEPT_JOBS, cgiText(_("Accept Jobs")));
else if (!strcmp(op, "reject-jobs"))
do_class_op(http, pclass, CUPS_REJECT_JOBS, cgiText(_("Reject Jobs")));
else if (!strcmp(op, "cancel-jobs"))
do_class_op(http, pclass, IPP_OP_CANCEL_JOBS, cgiText(_("Cancel Jobs")));
else if (!_cups_strcasecmp(op, "print-test-page"))
cgiPrintTestPage(http, pclass);
else if (!_cups_strcasecmp(op, "move-jobs"))
cgiMoveJobs(http, pclass, 0);
else
{
/*
* Unknown/bad operation...
*/
cgiStartHTML(pclass);
cgiCopyTemplateLang("error-op.tmpl");
cgiEndHTML();
}
}
else
puts("<META HTTP-EQUIV=\"Refresh\" CONTENT=\"30\">");
printf("<TITLE>%s on %s - Common UNIX Printing System</TITLE>\n",
name == NULL ? "Classes" : name, getenv("SERVER_NAME"));
puts("<LINK REL=STYLESHEET TYPE=\"text/css\" HREF=\"/cups.css\">");
puts("<MAP NAME=\"navbar\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"10,10,85,30\" HREF=\"/printers\" ALT=\"Current Printer Status\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"95,10,175,30\" HREF=\"/classes\" ALT=\"Current Printer Classes Status\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"185,10,235,30\" HREF=\"/jobs\" ALT=\"Current Jobs Status\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"245,10,395,30\" HREF=\"/documentation.html\" ALT=\"Read CUPS Documentation On-Line\">");
#ifdef ESPPRINTPRO
puts("<AREA SHAPE=\"RECT\" COORDS=\"405,10,490,30\" HREF=\"http://www.easysw.com/printpro/software.html\" ALT=\"Download the Current ESP Print Pro Software\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"505,10,585,30\" HREF=\"http://www.easysw.com/printpro/support.html\" ALT=\"Get Tech Support for Current ESP Print Pro\">");
#else
puts("<AREA SHAPE=\"RECT\" COORDS=\"405,10,490,30\" HREF=\"http://www.cups.org\" ALT=\"Download the Current CUPS Software\">");
#endif /* ESPPRINTPRO */
puts("</MAP>");
puts("</HEAD>");
puts("<BODY>");
puts("<P ALIGN=CENTER>");
puts("<A HREF=\"http://www.easysw.com\" ALT=\"Easy Software Products Home Page\">");
puts("<IMG SRC=\"/images/logo.gif\" WIDTH=\"71\" HEIGHT=\"40\" BORDER=0 ALT=\"Easy Software Products Home Page\"></A>");
#ifdef ESPPRINTPRO
puts("<IMG SRC=\"/images/navbar.gif\" WIDTH=\"600\" HEIGHT=\"40\" USEMAP=\"#navbar\" BORDER=0>");
#else
puts("<IMG SRC=\"/images/navbar.gif\" WIDTH=\"540\" HEIGHT=\"40\" USEMAP=\"#navbar\" BORDER=0>");
#endif /* ESPPRINTPRO */
{
/*
* Unknown/bad operation...
*/
printf("<H1>%s on %s</H1>\n", name == NULL ? "Classes" : name,
getenv("SERVER_NAME"));
fflush(stdout);
puts("<CENTER>");
puts("<TABLE WIDTH=\"90%\" BORDER=\"1\">");
puts("<TR>");
puts("<TH>Name</TH>");
puts("<TH WIDTH=\"50%\">Status</TH>");
puts("<TH WIDTH=\"25%\">Jobs</TH>");
puts("</TR>");
/*
* Show the information...
*/
if (name == NULL)
show_class_list(http, language);
else
show_class_info(http, language, name);
/*
* Write a standard trailer...
*/
puts("</TABLE>");
puts("</CENTER>");
puts("<HR>");
puts("<P>The Common UNIX Printing System, CUPS, and the CUPS logo are the");
puts("trademark property of <A HREF=\"http://www.easysw.com\">Easy Software");
puts("Products</A>. CUPS is copyright 1997-1999 by Easy Software Products,");
puts("All Rights Reserved.");
puts("</BODY>");
puts("</HTML>");
cgiStartHTML(cgiText(_("Classes")));
cgiCopyTemplateLang("error-op.tmpl");
cgiEndHTML();
}
/*
* Close the HTTP server connection...
*/
httpClose(http);
cupsLangFree(language);
/*
* Return with no errors...
@@ -179,105 +198,22 @@ main(int argc, /* I - Number of command-line arguments */
/*
* 'show_class_list()' - Show a list of classes...
* 'do_class_op()' - Do a class operation.
*/
static void
show_class_list(http_t *http, /* I - HTTP connection */
cups_lang_t *language)/* I - Client's language */
do_class_op(http_t *http, /* I - HTTP connection */
const char *printer, /* I - Printer name */
ipp_op_t op, /* I - Operation to perform */
const char *title) /* I - Title of page */
{
ipp_t *request, /* IPP request */
*response; /* IPP response */
ipp_attribute_t *attr; /* IPP attribute */
ipp_t *request; /* IPP request */
char uri[HTTP_MAX_URI], /* Printer URI */
resource[HTTP_MAX_URI]; /* Path for request */
/*
* Build a CUPS_GET_CLASSES request, which requires the following
* attributes:
*
* attributes-charset
* attributes-natural-language
*/
request = ippNew();
request->request.op.operation_id = CUPS_GET_CLASSES;
request->request.op.request_id = 1;
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_CHARSET,
"attributes-charset", NULL, cupsLangEncoding(language));
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE,
"attributes-natural-language", NULL, language->language);
/*
* Do the request and get back a response...
*/
if ((response = cupsDoRequest(http, request, "/classes/")) != NULL)
{
/*
* Loop through the classes returned in the list and display
* their devices...
*/
for (attr = response->attrs; attr != NULL; attr = attr->next)
{
/*
* Skip leading attributes until we hit a job...
*/
while (attr != NULL && attr->group_tag != IPP_TAG_PRINTER)
attr = attr->next;
if (attr == NULL)
break;
/*
* Show the class status for each class...
*/
while (attr != NULL && attr->group_tag == IPP_TAG_PRINTER)
{
if (strcmp(attr->name, "printer-name") == 0 &&
attr->value_tag == IPP_TAG_NAME)
show_class_info(http, language, attr->values[0].string.text);
attr = attr->next;
}
if (attr == NULL)
break;
}
ippDelete(response);
}
}
/*
* 'show_class_info()' - Show class information.
*/
static void
show_class_info(http_t *http,
cups_lang_t *language,
char *name)
{
ipp_t *request, /* IPP request */
*response, /* IPP response */
*jobs; /* IPP Get Jobs response */
int jobcount; /* Number of jobs */
ipp_attribute_t *attr; /* IPP attribute */
char *message; /* Printer state message */
int accepting; /* Accepting requests? */
ipp_pstate_t pstate; /* Printer state */
char uri[HTTP_MAX_URI];/* Printer URI */
/*
* Build a IPP_GET_PRINTER_ATTRIBUTES request, which requires the following
* Build a printer request, which requires the following
* attributes:
*
* attributes-charset
@@ -285,200 +221,309 @@ show_class_info(http_t *http,
* printer-uri
*/
request = ippNew();
request = ippNewRequest(op);
request->request.op.operation_id = IPP_GET_PRINTER_ATTRIBUTES;
request->request.op.request_id = 1;
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_CHARSET,
"attributes-charset", NULL, cupsLangEncoding(language));
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE,
"attributes-natural-language", NULL, language->language);
sprintf(uri, "ipp://localhost/classes/%s", name);
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri", NULL, uri);
httpAssembleURIf(HTTP_URI_CODING_ALL, uri, sizeof(uri), "ipp", NULL,
"localhost", 0, "/classes/%s", printer);
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri",
NULL, uri);
/*
* Do the request and get back a response...
*/
if ((response = cupsDoRequest(http, request, uri + 15)) == NULL)
snprintf(resource, sizeof(resource), "/classes/%s", printer);
ippDelete(cupsDoRequest(http, request, resource));
if (cupsLastError() == IPP_NOT_AUTHORIZED)
{
puts("<P>Unable to communicate with CUPS server!");
return;
puts("Status: 401\n");
exit(0);
}
if (response->request.status.status_code == IPP_NOT_FOUND)
else if (cupsLastError() > IPP_OK_CONFLICT)
{
puts("<P>Class does not exist.");
ippDelete(response);
return;
cgiStartHTML(title);
cgiShowIPPError(_("Unable to do maintenance command"));
}
/*
* Grab the needed class attributes...
*/
if ((attr = ippFindAttribute(response, "printer-state", IPP_TAG_ENUM)) != NULL)
pstate = (ipp_pstate_t)attr->values[0].integer;
else
pstate = IPP_PRINTER_IDLE;
if ((attr = ippFindAttribute(response, "printer-state-message", IPP_TAG_TEXT)) != NULL)
message = attr->values[0].string.text;
else
message = NULL;
if ((attr = ippFindAttribute(response, "printer-is-accepting-jobs",
IPP_TAG_BOOLEAN)) != NULL)
accepting = attr->values[0].boolean;
else
accepting = 1;
if ((attr = ippFindAttribute(response, "printer-uri-supported", IPP_TAG_URI)) != NULL)
{
strcpy(uri, "http:");
strcpy(uri + 5, strchr(attr->values[0].string.text, '/'));
}
/*
* Display the class entry...
*/
puts("<TR>");
printf("<TD VALIGN=TOP><A HREF=\"%s\">%s</A></TD>\n", uri, name);
puts("<TD VALIGN=TOP><IMG SRC=\"/images/classes.gif\" ALIGN=\"LEFT\">");
printf("%s: %s, %s<BR>\n",
cupsLangString(language, CUPS_MSG_PRINTER_STATE),
cupsLangString(language, pstate == IPP_PRINTER_IDLE ? CUPS_MSG_IDLE :
pstate == IPP_PRINTER_PROCESSING ?
CUPS_MSG_PROCESSING : CUPS_MSG_STOPPED),
cupsLangString(language, accepting ? CUPS_MSG_ACCEPTING_JOBS :
CUPS_MSG_NOT_ACCEPTING_JOBS));
if (message)
printf("<BR CLEAR=ALL><I>\"%s\"</I>\n", message);
else if (!accepting || pstate == IPP_PRINTER_STOPPED)
puts("<BR CLEAR=ALL><I>\"Reason Unknown\"</I>");
puts("</TD>");
/*
* Show a list of jobs as needed...
*/
if (pstate != IPP_PRINTER_IDLE)
{
/*
* Build an IPP_GET_JOBS request, which requires the following
* attributes:
*
* attributes-charset
* attributes-natural-language
* printer-uri
* Redirect successful updates back to the printer page...
*/
request = ippNew();
request->request.op.operation_id = IPP_GET_JOBS;
request->request.op.request_id = 1;
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_CHARSET,
"attributes-charset", NULL,
cupsLangEncoding(language));
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE,
"attributes-natural-language", NULL,
language->language);
sprintf(uri, "ipp://localhost/printers/%s", name);
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI,
"printer-uri", NULL, uri);
jobs = cupsDoRequest(http, request, uri + 15);
}
else
jobs = NULL;
puts("<TD VALIGN=\"TOP\">");
jobcount = 0;
if (jobs != NULL)
{
char *username; /* Pointer to job-originating-user-name */
int jobid, /* job-id */
size; /* job-k-octets */
char url[1024], /* Printer/class URL */
refresh[1024]; /* Refresh URL */
for (attr = jobs->attrs; attr != NULL; attr = attr->next)
{
/*
* Skip leading attributes until we hit a job...
*/
cgiRewriteURL(uri, url, sizeof(url), NULL);
cgiFormEncode(uri, url, sizeof(uri));
snprintf(refresh, sizeof(refresh), "5;URL=%s", uri);
cgiSetVariable("refresh_page", refresh);
while (attr != NULL && attr->group_tag != IPP_TAG_JOB)
attr = attr->next;
cgiStartHTML(title);
if (attr == NULL)
break;
cgiSetVariable("IS_CLASS", "YES");
/*
* Pull the needed attributes from this job...
*/
jobid = 0;
size = 0;
username = NULL;
while (attr != NULL && attr->group_tag == IPP_TAG_JOB)
{
if (strcmp(attr->name, "job-id") == 0 &&
attr->value_tag == IPP_TAG_INTEGER)
jobid = attr->values[0].integer;
if (strcmp(attr->name, "job-k-octets") == 0 &&
attr->value_tag == IPP_TAG_INTEGER)
size = attr->values[0].integer;
if (strcmp(attr->name, "job-originating-user-name") == 0 &&
attr->value_tag == IPP_TAG_NAME)
username = attr->values[0].string.text;
attr = attr->next;
}
/*
* Display the job if it matches the current class...
*/
if (username != NULL)
{
jobcount ++;
printf("<A HREF=\"/jobs/%d\">%s-%d %s %dk</A><BR>\n", jobid, name,
jobid, username, size);
}
if (attr == NULL)
break;
}
ippDelete(jobs);
if (op == IPP_PAUSE_PRINTER)
cgiCopyTemplateLang("printer-stop.tmpl");
else if (op == IPP_RESUME_PRINTER)
cgiCopyTemplateLang("printer-start.tmpl");
else if (op == CUPS_ACCEPT_JOBS)
cgiCopyTemplateLang("printer-accept.tmpl");
else if (op == CUPS_REJECT_JOBS)
cgiCopyTemplateLang("printer-reject.tmpl");
else if (op == IPP_OP_CANCEL_JOBS)
cgiCopyTemplateLang("printer-cancel-jobs.tmpl");
}
if (jobcount == 0)
puts("None");
puts("</TD>");
puts("</TR>");
ippDelete(response);
cgiEndHTML();
}
/*
* End of "$Id$".
* 'show_all_classes()' - Show all classes...
*/
static void
show_all_classes(http_t *http, /* I - Connection to server */
const char *user) /* I - Username */
{
int i; /* Looping var */
ipp_t *request, /* IPP request */
*response; /* IPP response */
cups_array_t *classes; /* Array of class objects */
ipp_attribute_t *pclass; /* Class object */
int first, /* First class to show */
count; /* Number of classes */
const char *var; /* Form variable */
void *search; /* Search data */
char val[1024]; /* Form variable */
/*
* Show the standard header...
*/
cgiStartHTML(cgiText(_("Classes")));
/*
* Build a CUPS_GET_CLASSES request, which requires the following
* attributes:
*
* attributes-charset
* attributes-natural-language
* requesting-user-name
*/
request = ippNewRequest(CUPS_GET_CLASSES);
if (user)
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME,
"requesting-user-name", NULL, user);
cgiGetAttributes(request, "classes.tmpl");
/*
* Do the request and get back a response...
*/
if ((response = cupsDoRequest(http, request, "/")) != NULL)
{
/*
* Get a list of matching job objects.
*/
if ((var = cgiGetVariable("QUERY")) != NULL &&
!cgiGetVariable("CLEAR"))
search = cgiCompileSearch(var);
else
search = NULL;
classes = cgiGetIPPObjects(response, search);
count = cupsArrayCount(classes);
if (search)
cgiFreeSearch(search);
/*
* Figure out which classes to display...
*/
if ((var = cgiGetVariable("FIRST")) != NULL)
first = atoi(var);
else
first = 0;
if (first >= count)
first = count - CUPS_PAGE_MAX;
first = (first / CUPS_PAGE_MAX) * CUPS_PAGE_MAX;
if (first < 0)
first = 0;
sprintf(val, "%d", count);
cgiSetVariable("TOTAL", val);
for (i = 0, pclass = (ipp_attribute_t *)cupsArrayIndex(classes, first);
i < CUPS_PAGE_MAX && pclass;
i ++, pclass = (ipp_attribute_t *)cupsArrayNext(classes))
cgiSetIPPObjectVars(pclass, NULL, i);
/*
* Save navigation URLs...
*/
cgiSetVariable("THISURL", "/classes/");
if (first > 0)
{
sprintf(val, "%d", first - CUPS_PAGE_MAX);
cgiSetVariable("PREV", val);
}
if ((first + CUPS_PAGE_MAX) < count)
{
sprintf(val, "%d", first + CUPS_PAGE_MAX);
cgiSetVariable("NEXT", val);
}
if (count > CUPS_PAGE_MAX)
{
snprintf(val, sizeof(val), "%d", CUPS_PAGE_MAX * (count / CUPS_PAGE_MAX));
cgiSetVariable("LAST", val);
}
/*
* Then show everything...
*/
cgiCopyTemplateLang("search.tmpl");
cgiCopyTemplateLang("classes-header.tmpl");
if (count > CUPS_PAGE_MAX)
cgiCopyTemplateLang("pager.tmpl");
cgiCopyTemplateLang("classes.tmpl");
if (count > CUPS_PAGE_MAX)
cgiCopyTemplateLang("pager.tmpl");
/*
* Delete the response...
*/
cupsArrayDelete(classes);
ippDelete(response);
}
else
{
/*
* Show the error...
*/
cgiShowIPPError(_("Unable to get class list"));
}
cgiEndHTML();
}
/*
* 'show_class()' - Show a single class.
*/
static void
show_class(http_t *http, /* I - Connection to server */
const char *pclass) /* I - Name of class */
{
ipp_t *request, /* IPP request */
*response; /* IPP response */
ipp_attribute_t *attr; /* IPP attribute */
char uri[HTTP_MAX_URI]; /* Printer URI */
char refresh[1024]; /* Refresh URL */
/*
* Build an IPP_GET_PRINTER_ATTRIBUTES request, which requires the following
* attributes:
*
* attributes-charset
* attributes-natural-language
* printer-uri
*/
request = ippNewRequest(IPP_GET_PRINTER_ATTRIBUTES);
httpAssembleURIf(HTTP_URI_CODING_ALL, uri, sizeof(uri), "ipp", NULL,
"localhost", 0, "/classes/%s", pclass);
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri", NULL,
uri);
cgiGetAttributes(request, "class.tmpl");
/*
* Do the request and get back a response...
*/
if ((response = cupsDoRequest(http, request, "/")) != NULL)
{
/*
* Got the result; set the CGI variables and check the status of a
* single-queue request...
*/
cgiSetIPPVars(response, NULL, NULL, NULL, 0);
if (pclass && (attr = ippFindAttribute(response, "printer-state",
IPP_TAG_ENUM)) != NULL &&
attr->values[0].integer == IPP_PRINTER_PROCESSING)
{
/*
* Class is processing - automatically refresh the page until we
* are done printing...
*/
cgiFormEncode(uri, pclass, sizeof(uri));
snprintf(refresh, sizeof(refresh), "10;URL=/classes/%s", uri);
cgiSetVariable("refresh_page", refresh);
}
/*
* Delete the response...
*/
ippDelete(response);
/*
* Show the standard header...
*/
cgiStartHTML(pclass);
/*
* Show the class status...
*/
cgiCopyTemplateLang("class.tmpl");
/*
* Show jobs for the specified class...
*/
cgiCopyTemplateLang("class-jobs-header.tmpl");
cgiShowJobs(http, pclass);
}
else
{
/*
* Show the IPP error...
*/
cgiStartHTML(pclass);
cgiShowIPPError(_("Unable to get class status"));
}
cgiEndHTML();
}
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+77
Ver Arquivo
@@ -0,0 +1,77 @@
/*
* Online help index definitions for CUPS.
*
* Copyright 2007-2011 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products.
*
* Licensed under Apache License v2.0. See the file "LICENSE" for more information.
*/
#ifndef _CUPS_HELP_INDEX_H_
# define _CUPS_HELP_INDEX_H_
/*
* Include necessary headers...
*/
# include <cups/array.h>
/*
* C++ magic...
*/
# ifdef __cplusplus
extern "C" {
# endif /* __cplusplus */
/*
* Data structures...
*/
typedef struct help_word_s /**** Help word structure... ****/
{
int count; /* Number of occurrences */
char *text; /* Word text */
} help_word_t;
typedef struct help_node_s /**** Help node structure... ****/
{
char *filename; /* Filename, relative to help dir */
char *section; /* Section name (NULL if none) */
char *anchor; /* Anchor name (NULL if none) */
char *text; /* Text in anchor */
cups_array_t *words; /* Words after this node */
time_t mtime; /* Last modification time */
off_t offset; /* Offset in file */
size_t length; /* Length in bytes */
int score; /* Search score */
} help_node_t;
typedef struct help_index_s /**** Help index structure ****/
{
int search; /* 1 = search index, 0 = normal */
cups_array_t *nodes; /* Nodes sorted by filename */
cups_array_t *sorted; /* Nodes sorted by score + text */
} help_index_t;
/*
* Functions...
*/
extern void helpDeleteIndex(help_index_t *hi);
extern help_node_t *helpFindNode(help_index_t *hi, const char *filename,
const char *anchor);
extern help_index_t *helpLoadIndex(const char *hifile, const char *directory);
extern int helpSaveIndex(help_index_t *hi, const char *hifile);
extern help_index_t *helpSearchIndex(help_index_t *hi, const char *query,
const char *section,
const char *filename);
# ifdef __cplusplus
}
# endif /* __cplusplus */
#endif /* !_CUPS_HELP_INDEX_H_ */
+384
Ver Arquivo
@@ -0,0 +1,384 @@
/*
* Online help CGI for CUPS.
*
* Copyright 2007-2011 by Apple Inc.
* Copyright 1997-2006 by Easy Software Products.
*
* Licensed under Apache License v2.0. See the file "LICENSE" for more information.
*/
/*
* Include necessary headers...
*/
#include "cgi-private.h"
/*
* 'main()' - Main entry for CGI.
*/
int /* O - Exit status */
main(int argc, /* I - Number of command-line arguments */
char *argv[]) /* I - Command-line arguments */
{
help_index_t *hi, /* Help index */
*si; /* Search index */
help_node_t *n; /* Current help node */
int i; /* Looping var */
const char *query; /* Search query */
const char *cache_dir; /* CUPS_CACHEDIR environment variable */
const char *docroot; /* CUPS_DOCROOT environment variable */
const char *helpfile, /* Current help file */
*helptitle = NULL; /* Current help title */
const char *topic; /* Current topic */
char topic_data[1024]; /* Topic form data */
const char *section; /* Current section */
char filename[1024], /* Filename */
directory[1024]; /* Directory */
cups_file_t *fp; /* Help file */
char line[1024]; /* Line from file */
int printable; /* Show printable version? */
/*
* Get any form variables...
*/
cgiInitialize();
printable = cgiGetVariable("PRINTABLE") != NULL;
/*
* Set the web interface section...
*/
cgiSetVariable("SECTION", "help");
cgiSetVariable("REFRESH_PAGE", "");
/*
* Load the help index...
*/
if ((cache_dir = getenv("CUPS_CACHEDIR")) == NULL)
cache_dir = CUPS_CACHEDIR;
snprintf(filename, sizeof(filename), "%s/help.index", cache_dir);
if ((docroot = getenv("CUPS_DOCROOT")) == NULL)
docroot = CUPS_DOCROOT;
snprintf(directory, sizeof(directory), "%s/help", docroot);
fprintf(stderr, "DEBUG: helpLoadIndex(filename=\"%s\", directory=\"%s\")\n",
filename, directory);
hi = helpLoadIndex(filename, directory);
if (!hi)
{
perror(filename);
cgiStartHTML(cgiText(_("Online Help")));
cgiSetVariable("ERROR", cgiText(_("Unable to load help index.")));
cgiCopyTemplateLang("error.tmpl");
cgiEndHTML();
return (1);
}
fprintf(stderr, "DEBUG: %d nodes in help index...\n",
cupsArrayCount(hi->nodes));
/*
* See if we are viewing a file...
*/
for (i = 0; i < argc; i ++)
fprintf(stderr, "DEBUG: argv[%d]=\"%s\"\n", i, argv[i]);
if ((helpfile = getenv("PATH_INFO")) != NULL)
{
helpfile ++;
if (!*helpfile)
helpfile = NULL;
}
if (helpfile)
{
/*
* Verify that the help file exists and is part of the index...
*/
snprintf(filename, sizeof(filename), "%s/help/%s", docroot, helpfile);
fprintf(stderr, "DEBUG: helpfile=\"%s\", filename=\"%s\"\n",
helpfile, filename);
if (access(filename, R_OK))
{
perror(filename);
cgiStartHTML(cgiText(_("Online Help")));
cgiSetVariable("ERROR", cgiText(_("Unable to access help file.")));
cgiCopyTemplateLang("error.tmpl");
cgiEndHTML();
return (1);
}
if ((n = helpFindNode(hi, helpfile, NULL)) == NULL)
{
cgiStartHTML(cgiText(_("Online Help")));
cgiSetVariable("ERROR", cgiText(_("Help file not in index.")));
cgiCopyTemplateLang("error.tmpl");
cgiEndHTML();
return (1);
}
/*
* Save the page title and help file...
*/
helptitle = n->text;
topic = n->section;
/*
* Send a standard page header...
*/
if (printable)
puts("Content-Type: text/html;charset=utf-8\n");
else
cgiStartHTML(n->text);
}
else
{
/*
* Send a standard page header...
*/
cgiStartHTML(cgiText(_("Online Help")));
topic = cgiGetVariable("TOPIC");
}
/*
* Do a search as needed...
*/
if (cgiGetVariable("CLEAR"))
cgiSetVariable("QUERY", "");
query = cgiGetVariable("QUERY");
si = helpSearchIndex(hi, query, topic, helpfile);
cgiClearVariables();
if (query)
cgiSetVariable("QUERY", query);
if (topic)
cgiSetVariable("TOPIC", topic);
if (helpfile)
cgiSetVariable("HELPFILE", helpfile);
if (helptitle)
cgiSetVariable("HELPTITLE", helptitle);
fprintf(stderr, "DEBUG: query=\"%s\", topic=\"%s\"\n",
query ? query : "(null)", topic ? topic : "(null)");
if (si)
{
help_node_t *nn; /* Parent node */
fprintf(stderr,
"DEBUG: si=%p, si->sorted=%p, cupsArrayCount(si->sorted)=%d\n", si,
si->sorted, cupsArrayCount(si->sorted));
for (i = 0, n = (help_node_t *)cupsArrayFirst(si->sorted);
n;
i ++, n = (help_node_t *)cupsArrayNext(si->sorted))
{
if (helpfile && n->anchor)
snprintf(line, sizeof(line), "#%s", n->anchor);
else if (n->anchor)
snprintf(line, sizeof(line), "/help/%s?QUERY=%s#%s", n->filename,
query ? query : "", n->anchor);
else
snprintf(line, sizeof(line), "/help/%s?QUERY=%s", n->filename,
query ? query : "");
cgiSetArray("QTEXT", i, n->text);
cgiSetArray("QLINK", i, line);
if (!helpfile && n->anchor)
{
nn = helpFindNode(hi, n->filename, NULL);
snprintf(line, sizeof(line), "/help/%s?QUERY=%s", nn->filename,
query ? query : "");
cgiSetArray("QPTEXT", i, nn->text);
cgiSetArray("QPLINK", i, line);
}
else
{
cgiSetArray("QPTEXT", i, "");
cgiSetArray("QPLINK", i, "");
}
fprintf(stderr, "DEBUG: [%d] = \"%s\" @ \"%s\"\n", i, n->text, line);
}
helpDeleteIndex(si);
}
/*
* OK, now list the bookmarks within the index...
*/
for (i = 0, section = NULL, n = (help_node_t *)cupsArrayFirst(hi->sorted);
n;
n = (help_node_t *)cupsArrayNext(hi->sorted))
{
if (n->anchor)
continue;
/*
* Add a section link as needed...
*/
if (n->section &&
(!section || strcmp(n->section, section)))
{
/*
* Add a link for this node...
*/
snprintf(line, sizeof(line), "/help/?TOPIC=%s&QUERY=%s",
cgiFormEncode(topic_data, n->section, sizeof(topic_data)),
query ? query : "");
cgiSetArray("BMLINK", i, line);
cgiSetArray("BMTEXT", i, n->section);
cgiSetArray("BMINDENT", i, "0");
i ++;
section = n->section;
}
if (!topic || !n->section || strcmp(n->section, topic))
continue;
/*
* Add a link for this node...
*/
snprintf(line, sizeof(line), "/help/%s?TOPIC=%s&QUERY=%s", n->filename,
cgiFormEncode(topic_data, n->section, sizeof(topic_data)),
query ? query : "");
cgiSetArray("BMLINK", i, line);
cgiSetArray("BMTEXT", i, n->text);
cgiSetArray("BMINDENT", i, "1");
i ++;
if (helpfile && !strcmp(helpfile, n->filename))
{
help_node_t *nn; /* Pointer to sub-node */
cupsArraySave(hi->sorted);
for (nn = (help_node_t *)cupsArrayFirst(hi->sorted);
nn;
nn = (help_node_t *)cupsArrayNext(hi->sorted))
if (nn->anchor && !strcmp(helpfile, nn->filename))
{
/*
* Add a link for this node...
*/
snprintf(line, sizeof(line), "#%s", nn->anchor);
cgiSetArray("BMLINK", i, line);
cgiSetArray("BMTEXT", i, nn->text);
cgiSetArray("BMINDENT", i, "2");
i ++;
}
cupsArrayRestore(hi->sorted);
}
}
/*
* Show the search and bookmark content...
*/
if (!helpfile || !printable)
cgiCopyTemplateLang("help-header.tmpl");
else
cgiCopyTemplateLang("help-printable.tmpl");
/*
* If we are viewing a file, copy it in now...
*/
if (helpfile)
{
if ((fp = cupsFileOpen(filename, "r")) != NULL)
{
int inbody; /* Are we inside the body? */
char *lineptr; /* Pointer into line */
inbody = 0;
while (cupsFileGets(fp, line, sizeof(line)))
{
for (lineptr = line; *lineptr && isspace(*lineptr & 255); lineptr ++);
if (inbody)
{
if (!_cups_strncasecmp(lineptr, "</BODY>", 7))
break;
printf("%s\n", line);
}
else if (!_cups_strncasecmp(lineptr, "<BODY", 5))
inbody = 1;
}
cupsFileClose(fp);
}
else
{
perror(filename);
cgiSetVariable("ERROR", cgiText(_("Unable to open help file.")));
cgiCopyTemplateLang("error.tmpl");
}
}
/*
* Send a standard trailer...
*/
if (!printable)
{
cgiCopyTemplateLang("help-trailer.tmpl");
cgiEndHTML();
}
else
puts("</BODY>\n</HTML>");
/*
* Delete the index...
*/
helpDeleteIndex(hi);
/*
* Return with no errors...
*/
return (0);
}
+218
Ver Arquivo
@@ -0,0 +1,218 @@
/*
* HTML support functions for CUPS.
*
* Copyright 2007-2011 by Apple Inc.
* Copyright 1997-2006 by Easy Software Products.
*
* Licensed under Apache License v2.0. See the file "LICENSE" for more information.
*/
/*
* Include necessary headers...
*/
#include "cgi-private.h"
/*
* Local globals...
*/
static const char *cgi_multipart = NULL;
/* Multipart separator, if any */
/*
* Local functions...
*/
static const char *cgi_null_passwd(const char *prompt);
/*
* 'cgiEndHTML()' - End a HTML page.
*/
void
cgiEndHTML(void)
{
/*
* Send the standard trailer...
*/
cgiCopyTemplateLang("trailer.tmpl");
}
/*
* 'cgiEndMultipart()' - End the delivery of a multipart web page.
*/
void
cgiEndMultipart(void)
{
if (cgi_multipart)
{
printf("\n%s--\n", cgi_multipart);
fflush(stdout);
}
}
/*
* 'cgiFormEncode()' - Encode a string as a form variable.
*/
char * /* O - Destination string */
cgiFormEncode(char *dst, /* I - Destination string */
const char *src, /* I - Source string */
size_t dstsize) /* I - Size of destination string */
{
char *dstptr, /* Pointer into destination */
*dstend; /* End of destination */
static const char *hex = /* Hexadecimal characters */
"0123456789ABCDEF";
/*
* Mark the end of the string...
*/
dstend = dst + dstsize - 1;
/*
* Loop through the source string and copy...
*/
for (dstptr = dst; *src && dstptr < dstend;)
{
switch (*src)
{
case ' ' :
/*
* Encode spaces with a "+"...
*/
*dstptr++ = '+';
src ++;
break;
case '&' :
case '%' :
case '+' :
/*
* Encode special characters with %XX escape...
*/
if (dstptr < (dstend - 2))
{
*dstptr++ = '%';
*dstptr++ = hex[(*src & 255) >> 4];
*dstptr++ = hex[*src & 15];
src ++;
}
break;
default :
/*
* Copy other characters literally...
*/
*dstptr++ = *src++;
break;
}
}
/*
* Nul-terminate the destination string...
*/
*dstptr = '\0';
/*
* Return the encoded string...
*/
return (dst);
}
/*
* 'cgiStartHTML()' - Start a HTML page.
*/
void
cgiStartHTML(const char *title) /* I - Title of page */
{
/*
* Disable any further authentication attempts...
*/
cupsSetPasswordCB(cgi_null_passwd);
/*
* Tell the client to expect UTF-8 encoded HTML...
*/
if (cgi_multipart)
puts(cgi_multipart);
puts("Content-Type: text/html;charset=utf-8\n");
/*
* Send a standard header...
*/
cgiSetVariable("TITLE", title);
cgiSetServerVersion();
cgiCopyTemplateLang("header.tmpl");
}
/*
* 'cgiStartMultipart()' - Start a multipart delivery of a web page.
*/
void
cgiStartMultipart(void)
{
puts("MIME-Version: 1.0\n"
"Content-Type: multipart/x-mixed-replace; boundary=\"CUPS-MULTIPART\"\n");
fflush(stdout);
cgi_multipart = "--CUPS-MULTIPART";
}
/*
* 'cgiSupportsMultipart()' - Does the browser support multi-part documents?
*/
int /* O - 1 if multi-part supported, 0 otherwise */
cgiSupportsMultipart(void)
{
/*
* Too many bug reports for browsers that don't support it, and too much pain
* to whitelist known-good browsers, so for now we just punt on multi-part
* support... :(
*/
return (0);
}
/*
* 'cgi_null_passwd()' - Return a NULL password for authentication.
*/
static const char * /* O - NULL */
cgi_null_passwd(const char *prompt) /* I - Prompt string (unused) */
{
(void)prompt;
fprintf(stderr, "DEBUG: cgi_null_passwd(prompt=\"%s\") called!\n",
prompt ? prompt : "(null)");
return (NULL);
}
+1528
Ver Arquivo
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+109 -496
Ver Arquivo
@@ -1,161 +1,114 @@
/*
* "$Id$"
* Job status CGI for CUPS.
*
* Job status CGI for the Common UNIX Printing System (CUPS).
* Copyright 2007-2014 by Apple Inc.
* Copyright 1997-2006 by Easy Software Products.
*
* Copyright 1997-1999 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
* copyright law. Distribution and use rights are outlined in the file
* "LICENSE.txt" which should have been included with this file. If this
* file is missing or damaged please contact Easy Software Products
* at:
*
* Attn: CUPS Licensing Information
* Easy Software Products
* 44141 Airport View Drive, Suite 204
* Hollywood, Maryland 20636-3111 USA
*
* Voice: (301) 373-9603
* EMail: cups-info@cups.org
* WWW: http://www.cups.org
*
* Contents:
*
* main() - Main entry for CGI.
* show_job_list() - Show a list of jobs...
* show_job_info() - Show job information.
* Licensed under Apache License v2.0. See the file "LICENSE" for more information.
*/
/*
* Include necessary headers...
*/
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <cups/cups.h>
#include <cups/language.h>
#include <cups/debug.h>
#include "cgi-private.h"
/*
* Local functions...
*/
static void show_job_list(http_t *http, cups_lang_t *language);
static void show_job_info(http_t *http, cups_lang_t *language,
char *name);
static void do_job_op(http_t *http, int job_id, ipp_op_t op);
/*
* 'main()' - Main entry for CGI.
*/
int /* O - Exit status */
main(int argc, /* I - Number of command-line arguments */
char *argv[]) /* I - Command-line arguments */
int /* O - Exit status */
main(void)
{
cups_lang_t *language; /* Language information */
char *job; /* Job name */
http_t *http; /* Connection to the server */
http_t *http; /* Connection to the server */
const char *op; /* Operation name */
const char *job_id_var; /* Job ID form variable */
int job_id; /* Job ID */
/*
* Get the request language...
* Get any form variables...
*/
language = cupsLangDefault();
cgiInitialize();
/*
* Set the web interface section...
*/
cgiSetVariable("SECTION", "jobs");
cgiSetVariable("REFRESH_PAGE", "");
/*
* Connect to the HTTP server...
*/
http = httpConnect("localhost", ippPort());
http = httpConnectEncrypt(cupsServer(), ippPort(), cupsEncryption());
/*
* Tell the client to expect HTML...
* Get the job ID, if any...
*/
printf("Content-Type: text/html;charset=%s\n\n", cupsLangEncoding(language));
/*
* See if we need to show a list of jobs or the status of a
* single job...
*/
job = argv[0];
if (strcmp(job, "/") == 0 || strcmp(job, "jobs.cgi") == 0)
job = NULL;
/*
* Print the standard header...
*/
puts("<HTML>");
puts("<HEAD>");
if (job)
puts("<META HTTP-EQUIV=\"Refresh\" CONTENT=\"10\">");
if ((job_id_var = cgiGetVariable("JOB_ID")) != NULL)
job_id = atoi(job_id_var);
else
puts("<META HTTP-EQUIV=\"Refresh\" CONTENT=\"30\">");
printf("<TITLE>%s on %s - Common UNIX Printing System</TITLE>\n",
job == NULL ? "Jobs" : job, getenv("SERVER_NAME"));
puts("<LINK REL=STYLESHEET TYPE=\"text/css\" HREF=\"/cups.css\">");
puts("<MAP NAME=\"navbar\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"10,10,85,30\" HREF=\"/printers\" ALT=\"Current Printer Status\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"95,10,175,30\" HREF=\"/classes\" ALT=\"Current Printer Classes Status\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"185,10,235,30\" HREF=\"/jobs\" ALT=\"Current Jobs Status\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"245,10,395,30\" HREF=\"/documentation.html\" ALT=\"Read CUPS Documentation On-Line\">");
#ifdef ESPPRINTPRO
puts("<AREA SHAPE=\"RECT\" COORDS=\"405,10,490,30\" HREF=\"http://www.easysw.com/printpro/software.html\" ALT=\"Download the Current ESP Print Pro Software\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"505,10,585,30\" HREF=\"http://www.easysw.com/printpro/support.html\" ALT=\"Get Tech Support for Current ESP Print Pro\">");
#else
puts("<AREA SHAPE=\"RECT\" COORDS=\"405,10,490,30\" HREF=\"http://www.cups.org\" ALT=\"Download the Current CUPS Software\">");
#endif /* ESPPRINTPRO */
puts("</MAP>");
puts("</HEAD>");
puts("<BODY>");
puts("<P ALIGN=CENTER>");
puts("<A HREF=\"http://www.easysw.com\" ALT=\"Easy Software Products Home Page\">");
puts("<IMG SRC=\"/images/logo.gif\" WIDTH=\"71\" HEIGHT=\"40\" BORDER=0 ALT=\"Easy Software Products Home Page\"></A>");
#ifdef ESPPRINTPRO
puts("<IMG SRC=\"/images/navbar.gif\" WIDTH=\"600\" HEIGHT=\"40\" USEMAP=\"#navbar\" BORDER=0>");
#else
puts("<IMG SRC=\"/images/navbar.gif\" WIDTH=\"540\" HEIGHT=\"40\" USEMAP=\"#navbar\" BORDER=0>");
#endif /* ESPPRINTPRO */
fflush(stdout);
job_id = 0;
/*
* Show the information...
* Do the operation...
*/
if (job == NULL)
show_job_list(http, language);
if ((op = cgiGetVariable("OP")) != NULL && job_id > 0 && cgiIsPOST())
{
/*
* Do the operation...
*/
if (!strcmp(op, "cancel-job"))
do_job_op(http, job_id, IPP_CANCEL_JOB);
else if (!strcmp(op, "hold-job"))
do_job_op(http, job_id, IPP_HOLD_JOB);
else if (!strcmp(op, "move-job"))
cgiMoveJobs(http, NULL, job_id);
else if (!strcmp(op, "release-job"))
do_job_op(http, job_id, IPP_RELEASE_JOB);
else if (!strcmp(op, "restart-job"))
do_job_op(http, job_id, IPP_RESTART_JOB);
else
{
/*
* Bad operation code... Display an error...
*/
cgiStartHTML(cgiText(_("Jobs")));
cgiCopyTemplateLang("error-op.tmpl");
cgiEndHTML();
}
}
else
show_job_info(http, language, job);
{
/*
* Show a list of jobs...
*/
/*
* Write a standard trailer...
*/
puts("<HR>");
puts("<P>The Common UNIX Printing System, CUPS, and the CUPS logo are the");
puts("trademark property of <A HREF=\"http://www.easysw.com\">Easy Software");
puts("Products</A>. CUPS is copyright 1997-1999 by Easy Software Products,");
puts("All Rights Reserved.");
puts("</BODY>");
puts("</HTML>");
cgiStartHTML(cgiText(_("Jobs")));
cgiShowJobs(http, NULL);
cgiEndHTML();
}
/*
* Close the HTTP server connection...
*/
httpClose(http);
cupsLangFree(language);
/*
* Return with no errors...
@@ -166,419 +119,79 @@ main(int argc, /* I - Number of command-line arguments */
/*
* 'show_job_list()' - Show a list of jobs...
* 'do_job_op()' - Do a job operation.
*/
static void
show_job_list(http_t *http, /* I - HTTP connection */
cups_lang_t *language) /* I - Client's language */
do_job_op(http_t *http, /* I - HTTP connection */
int job_id, /* I - Job ID */
ipp_op_t op) /* I - Operation to perform */
{
ipp_t *request, /* IPP request */
*response; /* IPP response */
ipp_attribute_t *attr; /* IPP attribute */
char *job_uri, /* job-uri */
*printer_uri, /* job-printer-uri */
*job_name, /* job-name */
*job_user; /* job-originating-user-name */
int job_id, /* job-id */
job_priority, /* job-priority */
job_k_octets, /* job-k-octets */
copies; /* copies */
ipp_jstate_t job_state; /* job-state */
ipp_t *request; /* IPP request */
char uri[HTTP_MAX_URI]; /* Job URI */
const char *user; /* Username */
printf("<H1>Jobs on %s</H1>\n", getenv("SERVER_NAME"));
/*
* Build an IPP_GET_JOBS request, which requires the following
* Build a job request, which requires the following
* attributes:
*
* attributes-charset
* attributes-natural-language
* job-uri
* job-uri or printer-uri (purge-jobs)
* requesting-user-name
*/
request = ippNew();
request = ippNewRequest(op);
request->request.op.operation_id = IPP_GET_JOBS;
request->request.op.request_id = 1;
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_CHARSET,
"attributes-charset", NULL, cupsLangEncoding(language));
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE,
"attributes-natural-language", NULL, language->language);
snprintf(uri, sizeof(uri), "ipp://localhost/jobs/%d", job_id);
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "job-uri",
NULL, "ipp://localhost/jobs/");
NULL, uri);
if ((user = getenv("REMOTE_USER")) == NULL)
user = "guest";
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME,
"requesting-user-name", NULL, user);
/*
* Do the request and get back a response...
*/
if ((response = cupsDoRequest(http, request, "/jobs/")) != NULL)
ippDelete(cupsDoRequest(http, request, "/jobs"));
if (cupsLastError() <= IPP_OK_CONFLICT && getenv("HTTP_REFERER"))
{
/*
* Do a table for the jobs...
* Redirect successful updates back to the parent page...
*/
puts("<CENTER>");
puts("<TABLE WIDTH=\"90%\" BORDER=\"1\">");
puts("<TR>");
printf("<TH>%s</TH>\n", cupsLangString(language, CUPS_MSG_PRINT_JOBS));
printf("<TH>%s</TH>\n", cupsLangString(language, CUPS_MSG_JOB_STATE));
printf("<TH>%s</TH>\n", cupsLangString(language, CUPS_MSG_JOB_NAME));
printf("<TH>%s</TH>\n", cupsLangString(language, CUPS_MSG_USER_NAME));
printf("<TH>%s</TH>\n", cupsLangString(language, CUPS_MSG_PRIORITY));
printf("<TH>%s</TH>\n", cupsLangString(language, CUPS_MSG_COPIES));
printf("<TH>%s</TH>\n", cupsLangString(language, CUPS_MSG_FILE_SIZE));
puts("</TR>");
char url[1024]; /* Encoded URL */
/*
* Loop through the jobs returned in the list and display
* their devices...
*/
for (attr = response->attrs; attr != NULL; attr = attr->next)
{
/*
* Skip leading attributes until we hit a job...
*/
while (attr != NULL && attr->group_tag != IPP_TAG_JOB)
attr = attr->next;
if (attr == NULL)
break;
/*
* Show the job status for each job...
*/
job_uri = NULL;
printer_uri = NULL;
job_name = "unknown";
job_user = "unknown";
job_id = 0;
job_priority = 50;
job_k_octets = 0;
copies = 1;
job_state = IPP_JOB_PENDING;
while (attr != NULL && attr->group_tag == IPP_TAG_JOB)
{
if (strcmp(attr->name, "job-uri") == 0 &&
attr->value_tag == IPP_TAG_URI)
job_uri = attr->values[0].string.text;
if (strcmp(attr->name, "job-printer-uri") == 0 &&
attr->value_tag == IPP_TAG_URI)
printer_uri = attr->values[0].string.text;
if (strcmp(attr->name, "job-name") == 0 &&
attr->value_tag == IPP_TAG_NAME)
job_name = attr->values[0].string.text;
if (strcmp(attr->name, "job-originating-user-name") == 0 &&
attr->value_tag == IPP_TAG_NAME)
job_user = attr->values[0].string.text;
if (strcmp(attr->name, "job-id") == 0 &&
attr->value_tag == IPP_TAG_INTEGER)
job_id = attr->values[0].integer;
if (strcmp(attr->name, "job-priority") == 0 &&
attr->value_tag == IPP_TAG_INTEGER)
job_priority = attr->values[0].integer;
if (strcmp(attr->name, "job-k-octets") == 0 &&
attr->value_tag == IPP_TAG_INTEGER)
job_k_octets = attr->values[0].integer;
if (strcmp(attr->name, "copies") == 0 &&
attr->value_tag == IPP_TAG_INTEGER)
copies = attr->values[0].integer;
if (strcmp(attr->name, "job-state") == 0 &&
attr->value_tag == IPP_TAG_ENUM)
job_state = (ipp_jstate_t)attr->values[0].integer;
attr = attr->next;
}
/*
* See if we have everything needed...
*/
if (job_id && job_uri != NULL && printer_uri != NULL)
{
puts("<TR>");
printf("<TD><A HREF=\"http://%s:%s/jobs/%d\">%s-%d</A></TD>\n",
getenv("SERVER_NAME"), getenv("SERVER_PORT"), job_id,
strrchr(printer_uri, '/') + 1, job_id);
printf("<TD>%s</TD>\n", job_state == IPP_JOB_PROCESSING ?
cupsLangString(language, CUPS_MSG_PROCESSING) :
cupsLangString(language, CUPS_MSG_PENDING));
printf("<TD>%s</TD>\n", job_name);
printf("<TD>%s</TD>\n", job_user);
printf("<TD>%d</TD>\n", job_priority);
printf("<TD>%d</TD>\n", copies);
printf("<TD>%dk</TD>\n", job_k_octets);
puts("</TR>");
}
if (attr == NULL)
break;
}
ippDelete(response);
puts("</TABLE>");
puts("</CENTER>");
strlcpy(url, "5;URL=", sizeof(url));
cgiFormEncode(url + 6, getenv("HTTP_REFERER"), sizeof(url) - 6);
cgiSetVariable("refresh_page", url);
}
else
puts("<P>No jobs found.");
else if (cupsLastError() == IPP_NOT_AUTHORIZED)
{
puts("Status: 401\n");
exit(0);
}
cgiStartHTML(cgiText(_("Jobs")));
if (cupsLastError() > IPP_OK_CONFLICT)
cgiShowIPPError(_("Job operation failed"));
else if (op == IPP_CANCEL_JOB)
cgiCopyTemplateLang("job-cancel.tmpl");
else if (op == IPP_HOLD_JOB)
cgiCopyTemplateLang("job-hold.tmpl");
else if (op == IPP_RELEASE_JOB)
cgiCopyTemplateLang("job-release.tmpl");
else if (op == IPP_RESTART_JOB)
cgiCopyTemplateLang("job-restart.tmpl");
cgiEndHTML();
}
/*
* 'show_job_info()' - Show job information.
*/
static void
show_job_info(http_t *http, /* I - Server connection */
cups_lang_t *language, /* I - Language */
char *name) /* I - Job "name" */
{
int i; /* Looping var */
ipp_t *request, /* IPP request */
*response; /* IPP response */
ipp_attribute_t *attr; /* IPP attribute */
char uri[HTTP_MAX_URI];/* Real URI */
char *job_uri, /* job-uri */
*printer_uri, /* job-printer-uri */
*job_name, /* job-name */
*job_user; /* job-originating-user-name */
int job_id, /* job-id */
job_priority, /* job-priority */
job_k_octets; /* job-k-octets */
ipp_jstate_t job_state; /* job-state */
/*
* Build an IPP_GET_JOB_ATTRIBUTES request, which requires the following
* attributes:
*
* attributes-charset
* attributes-natural-language
* job-uri
*/
request = ippNew();
request->request.op.operation_id = IPP_GET_JOB_ATTRIBUTES;
request->request.op.request_id = 1;
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_CHARSET,
"attributes-charset", NULL, cupsLangEncoding(language));
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE,
"attributes-natural-language", NULL, language->language);
sprintf(uri, "ipp://localhost/jobs/%s", name);
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "job-uri", NULL, uri);
/*
* Do the request and get back a response...
*/
if ((response = cupsDoRequest(http, request, uri + 15)) == NULL)
{
puts("<P>Unable to communicate with CUPS server!");
return;
}
if (response->request.status.status_code == IPP_NOT_FOUND)
{
puts("<P>Job does not exist or has completed.");
ippDelete(response);
return;
}
/*
* Get the job status for this job...
*/
if ((attr = ippFindAttribute(response, "job-uri", IPP_TAG_URI)) != NULL)
job_uri = attr->values[0].string.text;
else
{
puts("<P>Missing job-uri attribute!");
ippDelete(request);
return;
}
if ((attr = ippFindAttribute(response, "job-printer-uri", IPP_TAG_URI)) != NULL)
printer_uri = attr->values[0].string.text;
else
{
puts("<P>Missing job-printer-uri attribute!");
ippDelete(request);
return;
}
if ((attr = ippFindAttribute(response, "job-name", IPP_TAG_NAME)) != NULL)
job_name = attr->values[0].string.text;
else
job_name = "unknown";
if ((attr = ippFindAttribute(response, "job-originating-user-name",
IPP_TAG_NAME)) != NULL)
job_user = attr->values[0].string.text;
else
job_user = "unknown";
if ((attr = ippFindAttribute(response, "job-id", IPP_TAG_INTEGER)) != NULL)
job_id = attr->values[0].integer;
else
{
puts("<P>Missing job-id attribute!");
ippDelete(request);
return;
}
if ((attr = ippFindAttribute(response, "job-priority", IPP_TAG_INTEGER)) != NULL)
job_priority = attr->values[0].integer;
else
job_priority = 50;
if ((attr = ippFindAttribute(response, "job-k-octets", IPP_TAG_INTEGER)) != NULL)
job_k_octets = attr->values[0].integer;
else
job_k_octets = 0;
if ((attr = ippFindAttribute(response, "job-state", IPP_TAG_ENUM)) != NULL)
job_state = (ipp_jstate_t)attr->values[0].integer;
else
job_state = IPP_JOB_PENDING;
/*
* Do a table for the job...
*/
printf("<H1><A HREF=\"http://%s:%s/printers/%s\">%s-%d</A></H1>\n",
getenv("SERVER_NAME"), getenv("SERVER_PORT"),
strrchr(printer_uri, '/') + 1, strrchr(printer_uri, '/') + 1, job_id);
puts("<CENTER>");
puts("<TABLE WIDTH=\"90%\" BORDER=\"1\">");
puts("<TR>");
printf("<TH>%s</TH>\n", cupsLangString(language, CUPS_MSG_JOB_STATE));
printf("<TD>%s</TD>\n", job_state == IPP_JOB_PROCESSING ?
cupsLangString(language, CUPS_MSG_PROCESSING) :
cupsLangString(language, CUPS_MSG_PENDING));
puts("</TR>");
puts("<TR>");
printf("<TH>%s</TH>\n", cupsLangString(language, CUPS_MSG_JOB_NAME));
printf("<TD>%s</TD>\n", job_name);
puts("</TR>");
puts("<TR>");
printf("<TH>%s</TH>\n", cupsLangString(language, CUPS_MSG_USER_NAME));
printf("<TD>%s</TD>\n", job_user);
puts("</TR>");
puts("<TR>");
printf("<TH>%s</TH>\n", cupsLangString(language, CUPS_MSG_PRIORITY));
printf("<TD>%d</TD>\n", job_priority);
puts("</TR>");
puts("<TR>");
printf("<TH>%s</TH>\n", cupsLangString(language, CUPS_MSG_FILE_SIZE));
printf("<TD>%dk</TD>\n", job_k_octets);
puts("</TR>");
puts("<TR VALIGN=\"TOP\">");
printf("<TH>%s</TH>\n", cupsLangString(language, CUPS_MSG_OPTIONS));
puts("<TD>");
for (attr = response->attrs; attr != NULL; attr = attr->next)
{
if (attr->group_tag != IPP_TAG_JOB &&
attr->group_tag != IPP_TAG_EXTENSION)
continue;
if (strcmp(attr->name, "job-uri") == 0 ||
strcmp(attr->name, "job-printer-uri") == 0 ||
strcmp(attr->name, "job-name") == 0 ||
strcmp(attr->name, "job-originating-user-name") == 0 ||
strcmp(attr->name, "job-id") == 0 ||
strcmp(attr->name, "job-priority") == 0 ||
strcmp(attr->name, "job-k-octets") == 0 ||
strcmp(attr->name, "job-state") == 0)
continue;
if (attr->value_tag != IPP_TAG_BOOLEAN)
printf("%s=", attr->name);
for (i = 0; i < attr->num_values; i ++)
{
if (i)
putchar(',');
switch (attr->value_tag)
{
case IPP_TAG_INTEGER :
case IPP_TAG_ENUM :
printf("%d", attr->values[i].integer);
break;
case IPP_TAG_BOOLEAN :
if (!attr->values[i].boolean)
printf("no");
case IPP_TAG_NOVALUE :
fputs(attr->name, stdout);
break;
case IPP_TAG_RANGE :
printf("%d-%d", attr->values[i].range.lower,
attr->values[i].range.upper);
break;
case IPP_TAG_RESOLUTION :
printf("%dx%d%s", attr->values[i].resolution.xres,
attr->values[i].resolution.yres,
attr->values[i].resolution.units == IPP_RES_PER_INCH ?
"dpi" : "dpc");
break;
case IPP_TAG_STRING :
case IPP_TAG_TEXT :
case IPP_TAG_NAME :
case IPP_TAG_KEYWORD :
case IPP_TAG_CHARSET :
case IPP_TAG_LANGUAGE :
case IPP_TAG_MIMETYPE :
case IPP_TAG_URI :
printf("\"%s\"", attr->values[i].string.text);
break;
}
}
puts("<BR>");
}
puts("</TD>");
puts("</TR>");
puts("</TABLE></CENTER>");
ippDelete(response);
}
/*
* End of "$Id$".
*/
+42
Ver Arquivo
@@ -0,0 +1,42 @@
_cgiCheckVariables
_cgiClearVariables
_cgiCompileSearch
_cgiCopyTemplateFile
_cgiCopyTemplateLang
_cgiDoSearch
_cgiEndHTML
_cgiEndMultipart
_cgiFormEncode
_cgiFreeSearch
_cgiGetArray
_cgiGetAttributes
_cgiGetCookie
_cgiGetFile
_cgiGetIPPObjects
_cgiGetSize
_cgiGetTemplateDir
_cgiGetVariable
_cgiInitialize
_cgiIsPOST
_cgiMoveJobs
_cgiPrintCommand
_cgiPrintTestPage
_cgiRewriteURL
_cgiSetArray
_cgiSetIPPObjectVars
_cgiSetIPPVars
_cgiSetCookie
_cgiSetServerVersion
_cgiSetSize
_cgiSetVariable
_cgiShowIPPError
_cgiShowJobs
_cgiStartHTML
_cgiStartMultipart
_cgiSupportsMultipart
_cgiText
_helpDeleteIndex
_helpFindNode
_helpLoadIndex
_helpSaveIndex
_helpSearchIndex
+465
Ver Arquivo
@@ -0,0 +1,465 @@
/*
* Xcode documentation set generator.
*
* Copyright 2007-2012 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products.
*
* Licensed under Apache License v2.0. See the file "LICENSE" for more information.
*
* Usage:
*
* makedocset directory *.tokens
*/
/*
* Include necessary headers...
*/
#include "cgi-private.h"
#include <errno.h>
/*
* Local structures...
*/
typedef struct _cups_html_s /**** Help file ****/
{
char *path; /* Path to help file */
char *title; /* Title of help file */
} _cups_html_t;
typedef struct _cups_section_s /**** Help section ****/
{
char *name; /* Section name */
cups_array_t *files; /* Files in this section */
} _cups_section_t;
/*
* Local functions...
*/
static int compare_html(_cups_html_t *a, _cups_html_t *b);
static int compare_sections(_cups_section_t *a, _cups_section_t *b);
static int compare_sections_files(_cups_section_t *a, _cups_section_t *b);
static void write_index(const char *path, help_index_t *hi);
static void write_info(const char *path, const char *revision);
static void write_nodes(const char *path, help_index_t *hi);
/*
* 'main()' - Test the help index code.
*/
int /* O - Exit status */
main(int argc, /* I - Number of command-line args */
char *argv[]) /* I - Command-line arguments */
{
int i; /* Looping var */
char path[1024], /* Path to documentation */
line[1024]; /* Line from file */
help_index_t *hi; /* Help index */
cups_file_t *tokens, /* Tokens.xml file */
*fp; /* Current file */
if (argc < 4)
{
puts("Usage: makedocset directory revision *.tokens");
return (1);
}
/*
* Index the help documents...
*/
snprintf(path, sizeof(path), "%s/Contents/Resources/Documentation", argv[1]);
if ((hi = helpLoadIndex(NULL, path)) == NULL)
{
fputs("makedocset: Unable to index help files!\n", stderr);
return (1);
}
snprintf(path, sizeof(path), "%s/Contents/Resources/Documentation/index.html",
argv[1]);
write_index(path, hi);
snprintf(path, sizeof(path), "%s/Contents/Resources/Nodes.xml", argv[1]);
write_nodes(path, hi);
/*
* Write the Info.plist file...
*/
snprintf(path, sizeof(path), "%s/Contents/Info.plist", argv[1]);
write_info(path, argv[2]);
/*
* Merge the Tokens.xml files...
*/
snprintf(path, sizeof(path), "%s/Contents/Resources/Tokens.xml", argv[1]);
if ((tokens = cupsFileOpen(path, "w")) == NULL)
{
fprintf(stderr, "makedocset: Unable to create \"%s\": %s\n", path,
strerror(errno));
return (1);
}
cupsFilePuts(tokens, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
cupsFilePuts(tokens, "<Tokens version=\"1.0\">\n");
for (i = 3; i < argc; i ++)
{
if ((fp = cupsFileOpen(argv[i], "r")) == NULL)
{
fprintf(stderr, "makedocset: Unable to open \"%s\": %s\n", argv[i],
strerror(errno));
return (1);
}
if (!cupsFileGets(fp, line, sizeof(line)) || strncmp(line, "<?xml ", 6) ||
!cupsFileGets(fp, line, sizeof(line)) || strncmp(line, "<Tokens ", 8))
{
fprintf(stderr, "makedocset: Bad Tokens.xml file \"%s\"!\n", argv[i]);
return (1);
}
while (cupsFileGets(fp, line, sizeof(line)))
{
if (strcmp(line, "</Tokens>"))
cupsFilePrintf(tokens, "%s\n", line);
}
cupsFileClose(fp);
}
cupsFilePuts(tokens, "</Tokens>\n");
cupsFileClose(tokens);
/*
* Return with no errors...
*/
return (0);
}
/*
* 'compare_html()' - Compare the titles of two HTML files.
*/
static int /* O - Result of comparison */
compare_html(_cups_html_t *a, /* I - First file */
_cups_html_t *b) /* I - Second file */
{
return (_cups_strcasecmp(a->title, b->title));
}
/*
* 'compare_sections()' - Compare the names of two help sections.
*/
static int /* O - Result of comparison */
compare_sections(_cups_section_t *a, /* I - First section */
_cups_section_t *b) /* I - Second section */
{
return (_cups_strcasecmp(a->name, b->name));
}
/*
* 'compare_sections_files()' - Compare the number of files and section names.
*/
static int /* O - Result of comparison */
compare_sections_files(
_cups_section_t *a, /* I - First section */
_cups_section_t *b) /* I - Second section */
{
int ret = cupsArrayCount(b->files) - cupsArrayCount(a->files);
if (ret)
return (ret);
else
return (_cups_strcasecmp(a->name, b->name));
}
/*
* 'write_index()' - Write an index file for the CUPS help.
*/
static void
write_index(const char *path, /* I - File to write */
help_index_t *hi) /* I - Index of files */
{
cups_file_t *fp; /* Output file */
help_node_t *node; /* Current help node */
_cups_section_t *section, /* Current section */
key; /* Section search key */
_cups_html_t *html; /* Current HTML file */
cups_array_t *sections, /* Sections in index */
*sections_files,/* Sections sorted by size */
*columns[3]; /* Columns in final HTML file */
int column, /* Current column */
lines[3], /* Number of lines in each column */
min_column, /* Smallest column */
min_lines; /* Smallest number of lines */
/*
* Build an array of sections and their files.
*/
sections = cupsArrayNew((cups_array_func_t)compare_sections, NULL);
for (node = (help_node_t *)cupsArrayFirst(hi->nodes);
node;
node = (help_node_t *)cupsArrayNext(hi->nodes))
{
if (node->anchor)
continue;
key.name = node->section ? node->section : "Miscellaneous";
if ((section = (_cups_section_t *)cupsArrayFind(sections, &key)) == NULL)
{
section = (_cups_section_t *)calloc(1, sizeof(_cups_section_t));
section->name = key.name;
section->files = cupsArrayNew((cups_array_func_t)compare_html, NULL);
cupsArrayAdd(sections, section);
}
html = (_cups_html_t *)calloc(1, sizeof(_cups_html_t));
html->path = node->filename;
html->title = node->text;
cupsArrayAdd(section->files, html);
}
/*
* Build a sorted list of sections based on the number of files in each section
* and the section name...
*/
sections_files = cupsArrayNew((cups_array_func_t)compare_sections_files,
NULL);
for (section = (_cups_section_t *)cupsArrayFirst(sections);
section;
section = (_cups_section_t *)cupsArrayNext(sections))
cupsArrayAdd(sections_files, section);
/*
* Then build three columns to hold everything, trying to balance the number of
* lines in each column...
*/
for (column = 0; column < 3; column ++)
{
columns[column] = cupsArrayNew((cups_array_func_t)compare_sections, NULL);
lines[column] = 0;
}
for (section = (_cups_section_t *)cupsArrayFirst(sections_files);
section;
section = (_cups_section_t *)cupsArrayNext(sections_files))
{
for (min_column = 0, min_lines = lines[0], column = 1;
column < 3;
column ++)
{
if (lines[column] < min_lines)
{
min_column = column;
min_lines = lines[column];
}
}
cupsArrayAdd(columns[min_column], section);
lines[min_column] += cupsArrayCount(section->files) + 2;
}
/*
* Write the HTML file...
*/
if ((fp = cupsFileOpen(path, "w")) == NULL)
{
fprintf(stderr, "makedocset: Unable to create %s: %s\n", path,
strerror(errno));
exit(1);
}
cupsFilePuts(fp, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 "
"Transitional//EN\" "
"\"http://www.w3.org/TR/html4/loose.dtd\">\n"
"<html>\n"
"<head>\n"
"<title>CUPS Documentation</title>\n"
"<link rel='stylesheet' type='text/css' "
"href='cups-printable.css'>\n"
"</head>\n"
"<body>\n"
"<h1 class='title'>CUPS Documentation</h1>\n"
"<table width='100%' summary=''>\n"
"<tr>\n");
for (column = 0; column < 3; column ++)
{
if (column)
cupsFilePuts(fp, "<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>\n");
cupsFilePuts(fp, "<td valign='top' width='33%'>");
for (section = (_cups_section_t *)cupsArrayFirst(columns[column]);
section;
section = (_cups_section_t *)cupsArrayNext(columns[column]))
{
cupsFilePrintf(fp, "<h2 class='title'>%s</h2>\n", section->name);
for (html = (_cups_html_t *)cupsArrayFirst(section->files);
html;
html = (_cups_html_t *)cupsArrayNext(section->files))
cupsFilePrintf(fp, "<p class='compact'><a href='%s'>%s</a></p>\n",
html->path, html->title);
}
cupsFilePuts(fp, "</td>\n");
}
cupsFilePuts(fp, "</tr>\n"
"</table>\n"
"</body>\n"
"</html>\n");
cupsFileClose(fp);
}
/*
* 'write_info()' - Write the Info.plist file.
*/
static void
write_info(const char *path, /* I - File to write */
const char *revision) /* I - Subversion revision number */
{
cups_file_t *fp; /* File */
if ((fp = cupsFileOpen(path, "w")) == NULL)
{
fprintf(stderr, "makedocset: Unable to create %s: %s\n", path,
strerror(errno));
exit(1);
}
cupsFilePrintf(fp, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
"<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" "
"\"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n"
"<plist version=\"1.0\">\n"
"<dict>\n"
"\t<key>CFBundleIdentifier</key>\n"
"\t<string>org.cups.docset</string>\n"
"\t<key>CFBundleName</key>\n"
"\t<string>CUPS Documentation</string>\n"
"\t<key>CFBundleVersion</key>\n"
"\t<string>%d.%d.%s</string>\n"
"\t<key>CFBundleShortVersionString</key>\n"
"\t<string>%d.%d.%d</string>\n"
"\t<key>DocSetFeedName</key>\n"
"\t<string>cups.org</string>\n"
"\t<key>DocSetFeedURL</key>\n"
"\t<string>http://www.cups.org/org.cups.docset.atom"
"</string>\n"
"\t<key>DocSetPublisherIdentifier</key>\n"
"\t<string>org.cups</string>\n"
"\t<key>DocSetPublisherName</key>\n"
"\t<string>CUPS</string>\n"
"</dict>\n"
"</plist>\n",
CUPS_VERSION_MAJOR, CUPS_VERSION_MINOR, revision,
CUPS_VERSION_MAJOR, CUPS_VERSION_MINOR, CUPS_VERSION_PATCH);
cupsFileClose(fp);
}
/*
* 'write_nodes()' - Write the Nodes.xml file.
*/
static void
write_nodes(const char *path, /* I - File to write */
help_index_t *hi) /* I - Index of files */
{
cups_file_t *fp; /* Output file */
int id; /* Current node ID */
help_node_t *node; /* Current help node */
int subnodes; /* Currently in Subnodes for file? */
int needclose; /* Need to close the current node? */
if ((fp = cupsFileOpen(path, "w")) == NULL)
{
fprintf(stderr, "makedocset: Unable to create %s: %s\n", path,
strerror(errno));
exit(1);
}
cupsFilePuts(fp, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
"<DocSetNodes version=\"1.0\">\n"
"<TOC>\n"
"<Node id=\"0\">\n"
"<Name>CUPS Documentation</Name>\n"
"<Path>Documentation/index.html</Path>\n"
"</Node>\n");
for (node = (help_node_t *)cupsArrayFirst(hi->nodes), id = 1, subnodes = 0,
needclose = 0;
node;
node = (help_node_t *)cupsArrayNext(hi->nodes), id ++)
{
if (node->anchor)
{
if (!subnodes)
{
cupsFilePuts(fp, "<Subnodes>\n");
subnodes = 1;
}
cupsFilePrintf(fp, "<Node id=\"%d\">\n"
"<Path>Documentation/%s</Path>\n"
"<Anchor>%s</Anchor>\n"
"<Name>%s</Name>\n"
"</Node>\n", id, node->filename, node->anchor,
node->text);
}
else
{
if (subnodes)
{
cupsFilePuts(fp, "</Subnodes>\n");
subnodes = 0;
}
if (needclose)
cupsFilePuts(fp, "</Node>\n");
cupsFilePrintf(fp, "<Node id=\"%d\">\n"
"<Path>Documentation/%s</Path>\n"
"<Name>%s</Name>\n", id, node->filename, node->text);
needclose = 1;
}
}
if (subnodes)
cupsFilePuts(fp, "</Subnodes>\n");
if (needclose)
cupsFilePuts(fp, "</Node>\n");
cupsFilePuts(fp, "</TOC>\n"
"</DocSetNodes>\n");
cupsFileClose(fp);
}
Arquivo binário não exibido.
+451 -388
Ver Arquivo
@@ -1,174 +1,202 @@
/*
* "$Id$"
* Printer status CGI for CUPS.
*
* Printer status CGI for the Common UNIX Printing System (CUPS).
* Copyright 2007-2016 by Apple Inc.
* Copyright 1997-2006 by Easy Software Products.
*
* Copyright 1997-1999 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
* copyright law. Distribution and use rights are outlined in the file
* "LICENSE.txt" which should have been included with this file. If this
* file is missing or damaged please contact Easy Software Products
* at:
*
* Attn: CUPS Licensing Information
* Easy Software Products
* 44141 Airport View Drive, Suite 204
* Hollywood, Maryland 20636-3111 USA
*
* Voice: (301) 373-9603
* EMail: cups-info@cups.org
* WWW: http://www.cups.org
*
* Contents:
*
* main() - Main entry for CGI.
* show_printer_list() - Show a list of printers...
* show_printer_info() - Show printer information.
* Licensed under Apache License v2.0. See the file "LICENSE" for more information.
*/
/*
* Include necessary headers...
*/
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <cups/cups.h>
#include <cups/language.h>
#include <cups/debug.h>
#include "cgi-private.h"
#include <errno.h>
/*
* Local functions...
*/
static void show_printer_list(http_t *http, cups_lang_t *language);
static void show_printer_info(http_t *http, cups_lang_t *language,
char *name);
static void do_printer_op(http_t *http, const char *printer, ipp_op_t op,
const char *title);
static void show_all_printers(http_t *http, const char *username);
static void show_printer(http_t *http, const char *printer);
/*
* 'main()' - Main entry for CGI.
*/
int /* O - Exit status */
main(int argc, /* I - Number of command-line arguments */
char *argv[]) /* I - Command-line arguments */
int /* O - Exit status */
main(void)
{
cups_lang_t *language; /* Language information */
char *printer; /* Printer name */
http_t *http; /* Connection to the server */
const char *printer; /* Printer name */
const char *user; /* Username */
http_t *http; /* Connection to the server */
ipp_t *request, /* IPP request */
*response; /* IPP response */
ipp_attribute_t *attr; /* IPP attribute */
const char *op; /* Operation to perform, if any */
static const char *def_attrs[] = /* Attributes for default printer */
{
"printer-name",
"printer-uri-supported"
};
/*
* Get the request language...
* Get any form variables...
*/
language = cupsLangDefault();
cgiInitialize();
op = cgiGetVariable("OP");
/*
* Set the web interface section...
*/
cgiSetVariable("SECTION", "printers");
cgiSetVariable("REFRESH_PAGE", "");
/*
* See if we are displaying a printer or all printers...
*/
if ((printer = getenv("PATH_INFO")) != NULL)
{
printer ++;
if (!*printer)
printer = NULL;
if (printer)
cgiSetVariable("PRINTER_NAME", printer);
}
/*
* See who is logged in...
*/
user = getenv("REMOTE_USER");
/*
* Connect to the HTTP server...
*/
http = httpConnect("localhost", ippPort());
http = httpConnectEncrypt(cupsServer(), ippPort(), cupsEncryption());
/*
* Tell the client to expect HTML...
* Get the default printer...
*/
printf("Content-Type: text/html;charset=%s\n\n", cupsLangEncoding(language));
if (!op || !cgiIsPOST())
{
/*
* Get the default destination...
*/
/*
* See if we need to show a list of printers or the status of a
* single printer...
*/
request = ippNewRequest(CUPS_GET_DEFAULT);
printer = argv[0];
if (strcmp(printer, "/") == 0 || strcmp(printer, "printers.cgi") == 0)
printer = NULL;
ippAddStrings(request, IPP_TAG_OPERATION, IPP_TAG_KEYWORD,
"requested-attributes",
sizeof(def_attrs) / sizeof(def_attrs[0]), NULL, def_attrs);
/*
* Print the standard header...
*/
if ((response = cupsDoRequest(http, request, "/")) != NULL)
{
if ((attr = ippFindAttribute(response, "printer-name", IPP_TAG_NAME)) != NULL)
cgiSetVariable("DEFAULT_NAME", attr->values[0].string.text);
puts("<HTML>");
puts("<HEAD>");
if (printer)
puts("<META HTTP-EQUIV=\"Refresh\" CONTENT=\"10\">");
if ((attr = ippFindAttribute(response, "printer-uri-supported", IPP_TAG_URI)) != NULL)
{
char url[HTTP_MAX_URI]; /* New URL */
cgiSetVariable("DEFAULT_URI",
cgiRewriteURL(attr->values[0].string.text,
url, sizeof(url), NULL));
}
ippDelete(response);
}
/*
* See if we need to show a list of printers or the status of a
* single printer...
*/
if (!printer)
show_all_printers(http, user);
else
show_printer(http, printer);
}
else if (printer)
{
if (!*op)
{
const char *server_port = getenv("SERVER_PORT");
/* Port number string */
int port = atoi(server_port ? server_port : "0");
/* Port number */
char uri[1024]; /* URL */
httpAssembleURIf(HTTP_URI_CODING_ALL, uri, sizeof(uri),
getenv("HTTPS") ? "https" : "http", NULL,
getenv("SERVER_NAME"), port, "/printers/%s", printer);
printf("Location: %s\n\n", uri);
}
else if (!strcmp(op, "start-printer"))
do_printer_op(http, printer, IPP_RESUME_PRINTER,
cgiText(_("Resume Printer")));
else if (!strcmp(op, "stop-printer"))
do_printer_op(http, printer, IPP_PAUSE_PRINTER,
cgiText(_("Pause Printer")));
else if (!strcmp(op, "accept-jobs"))
do_printer_op(http, printer, CUPS_ACCEPT_JOBS, cgiText(_("Accept Jobs")));
else if (!strcmp(op, "reject-jobs"))
do_printer_op(http, printer, CUPS_REJECT_JOBS, cgiText(_("Reject Jobs")));
else if (!strcmp(op, "cancel-jobs"))
do_printer_op(http, printer, IPP_OP_CANCEL_JOBS, cgiText(_("Cancel Jobs")));
else if (!_cups_strcasecmp(op, "print-self-test-page"))
cgiPrintCommand(http, printer, "PrintSelfTestPage",
cgiText(_("Print Self-Test Page")));
else if (!_cups_strcasecmp(op, "clean-print-heads"))
cgiPrintCommand(http, printer, "Clean all",
cgiText(_("Clean Print Heads")));
else if (!_cups_strcasecmp(op, "print-test-page"))
cgiPrintTestPage(http, printer);
else if (!_cups_strcasecmp(op, "move-jobs"))
cgiMoveJobs(http, printer, 0);
else
{
/*
* Unknown/bad operation...
*/
cgiStartHTML(printer);
cgiCopyTemplateLang("error-op.tmpl");
cgiEndHTML();
}
}
else
puts("<META HTTP-EQUIV=\"Refresh\" CONTENT=\"30\">");
printf("<TITLE>%s on %s - Common UNIX Printing System</TITLE>\n",
printer == NULL ? "Printers" : printer, getenv("SERVER_NAME"));
puts("<LINK REL=STYLESHEET TYPE=\"text/css\" HREF=\"/cups.css\">");
puts("<MAP NAME=\"navbar\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"10,10,85,30\" HREF=\"/printers\" ALT=\"Current Printer Status\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"95,10,175,30\" HREF=\"/classes\" ALT=\"Current Printer Classes Status\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"185,10,235,30\" HREF=\"/jobs\" ALT=\"Current Jobs Status\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"245,10,395,30\" HREF=\"/documentation.html\" ALT=\"Read CUPS Documentation On-Line\">");
#ifdef ESPPRINTPRO
puts("<AREA SHAPE=\"RECT\" COORDS=\"405,10,490,30\" HREF=\"http://www.easysw.com/printpro/software.html\" ALT=\"Download the Current ESP Print Pro Software\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"505,10,585,30\" HREF=\"http://www.easysw.com/printpro/support.html\" ALT=\"Get Tech Support for Current ESP Print Pro\">");
#else
puts("<AREA SHAPE=\"RECT\" COORDS=\"405,10,490,30\" HREF=\"http://www.cups.org\" ALT=\"Download the Current CUPS Software\">");
#endif /* ESPPRINTPRO */
puts("</MAP>");
puts("</HEAD>");
puts("<BODY>");
puts("<P ALIGN=CENTER>");
puts("<A HREF=\"http://www.easysw.com\" ALT=\"Easy Software Products Home Page\">");
puts("<IMG SRC=\"/images/logo.gif\" WIDTH=\"71\" HEIGHT=\"40\" BORDER=0 ALT=\"Easy Software Products Home Page\"></A>");
#ifdef ESPPRINTPRO
puts("<IMG SRC=\"/images/navbar.gif\" WIDTH=\"600\" HEIGHT=\"40\" USEMAP=\"#navbar\" BORDER=0>");
#else
puts("<IMG SRC=\"/images/navbar.gif\" WIDTH=\"540\" HEIGHT=\"40\" USEMAP=\"#navbar\" BORDER=0>");
#endif /* ESPPRINTPRO */
{
/*
* Unknown/bad operation...
*/
printf("<H1>%s on %s</H1>\n", printer == NULL ? "Printers" : printer,
getenv("SERVER_NAME"));
fflush(stdout);
puts("<CENTER>");
puts("<TABLE WIDTH=\"90%\" BORDER=\"1\">");
puts("<TR>");
puts("<TH>Name</TH>");
puts("<TH WIDTH=\"50%\">Status</TH>");
puts("<TH WIDTH=\"25%\">Jobs</TH>");
puts("</TR>");
/*
* Show the information...
*/
if (printer == NULL)
show_printer_list(http, language);
else
show_printer_info(http, language, printer);
/*
* Write a standard trailer...
*/
puts("</TABLE>");
puts("</CENTER>");
puts("<HR>");
puts("<P>The Common UNIX Printing System, CUPS, and the CUPS logo are the");
puts("trademark property of <A HREF=\"http://www.easysw.com\">Easy Software");
puts("Products</A>. CUPS is copyright 1997-1999 by Easy Software Products,");
puts("All Rights Reserved.");
puts("</BODY>");
puts("</HTML>");
cgiStartHTML(cgiText(_("Printers")));
cgiCopyTemplateLang("error-op.tmpl");
cgiEndHTML();
}
/*
* Close the HTTP server connection...
*/
httpClose(http);
cupsLangFree(language);
/*
* Return with no errors...
@@ -179,105 +207,22 @@ main(int argc, /* I - Number of command-line arguments */
/*
* 'show_printer_list()' - Show a list of printers...
* 'do_printer_op()' - Do a printer operation.
*/
static void
show_printer_list(http_t *http, /* I - HTTP connection */
cups_lang_t *language)/* I - Client's language */
do_printer_op(http_t *http, /* I - HTTP connection */
const char *printer, /* I - Printer name */
ipp_op_t op, /* I - Operation to perform */
const char *title) /* I - Title of page */
{
ipp_t *request, /* IPP request */
*response; /* IPP response */
ipp_attribute_t *attr; /* IPP attribute */
ipp_t *request; /* IPP request */
char uri[HTTP_MAX_URI], /* Printer URI */
resource[HTTP_MAX_URI]; /* Path for request */
/*
* Build a CUPS_GET_PRINTERS request, which requires the following
* attributes:
*
* attributes-charset
* attributes-natural-language
*/
request = ippNew();
request->request.op.operation_id = CUPS_GET_PRINTERS;
request->request.op.request_id = 1;
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_CHARSET,
"attributes-charset", NULL, cupsLangEncoding(language));
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE,
"attributes-natural-language", NULL, language->language);
/*
* Do the request and get back a response...
*/
if ((response = cupsDoRequest(http, request, "/printers/")) != NULL)
{
/*
* Loop through the printers returned in the list and display
* their devices...
*/
for (attr = response->attrs; attr != NULL; attr = attr->next)
{
/*
* Skip leading attributes until we hit a job...
*/
while (attr != NULL && attr->group_tag != IPP_TAG_PRINTER)
attr = attr->next;
if (attr == NULL)
break;
/*
* Show the printer status for each printer...
*/
while (attr != NULL && attr->group_tag == IPP_TAG_PRINTER)
{
if (strcmp(attr->name, "printer-name") == 0 &&
attr->value_tag == IPP_TAG_NAME)
show_printer_info(http, language, attr->values[0].string.text);
attr = attr->next;
}
if (attr == NULL)
break;
}
ippDelete(response);
}
}
/*
* 'show_printer_info()' - Show printer information.
*/
static void
show_printer_info(http_t *http,
cups_lang_t *language,
char *name)
{
ipp_t *request, /* IPP request */
*response, /* IPP response */
*jobs; /* IPP Get Jobs response */
int jobcount; /* Number of jobs */
ipp_attribute_t *attr; /* IPP attribute */
char *message; /* Printer state message */
int accepting; /* Accepting requests? */
ipp_pstate_t pstate; /* Printer state */
char uri[HTTP_MAX_URI];/* Printer URI */
/*
* Build a IPP_GET_PRINTER_ATTRIBUTES request, which requires the following
* Build a printer request, which requires the following
* attributes:
*
* attributes-charset
@@ -285,202 +230,320 @@ show_printer_info(http_t *http,
* printer-uri
*/
request = ippNew();
request = ippNewRequest(op);
request->request.op.operation_id = IPP_GET_PRINTER_ATTRIBUTES;
request->request.op.request_id = 1;
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_CHARSET,
"attributes-charset", NULL, cupsLangEncoding(language));
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE,
"attributes-natural-language", NULL, language->language);
sprintf(uri, "ipp://localhost/printers/%s", name);
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri", NULL, uri);
httpAssembleURIf(HTTP_URI_CODING_ALL, uri, sizeof(uri), "ipp", NULL,
"localhost", 0, "/printers/%s", printer);
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri",
NULL, uri);
/*
* Do the request and get back a response...
*/
if ((response = cupsDoRequest(http, request, uri + 15)) == NULL)
snprintf(resource, sizeof(resource), "/printers/%s", printer);
ippDelete(cupsDoRequest(http, request, resource));
if (cupsLastError() == IPP_NOT_AUTHORIZED)
{
puts("<P>Unable to communicate with CUPS server!");
return;
puts("Status: 401\n");
exit(0);
}
if (response->request.status.status_code == IPP_NOT_FOUND)
else if (cupsLastError() > IPP_OK_CONFLICT)
{
puts("<P>Printer does not exist.");
ippDelete(response);
return;
cgiStartHTML(title);
cgiShowIPPError(_("Unable to do maintenance command"));
}
/*
* Grab the needed printer attributes...
*/
if ((attr = ippFindAttribute(response, "printer-state", IPP_TAG_ENUM)) != NULL)
pstate = (ipp_pstate_t)attr->values[0].integer;
else
pstate = IPP_PRINTER_IDLE;
if ((attr = ippFindAttribute(response, "printer-state-message", IPP_TAG_TEXT)) != NULL)
message = attr->values[0].string.text;
else
message = NULL;
if ((attr = ippFindAttribute(response, "printer-is-accepting-jobs",
IPP_TAG_BOOLEAN)) != NULL)
accepting = attr->values[0].boolean;
else
accepting = 1;
if ((attr = ippFindAttribute(response, "printer-uri-supported", IPP_TAG_URI)) != NULL)
{
strcpy(uri, "http:");
strcpy(uri + 5, strchr(attr->values[0].string.text, '/'));
}
/*
* Display the printer entry...
*/
puts("<TR>");
printf("<TD VALIGN=TOP><A HREF=\"%s\">%s</A></TD>\n", uri, name);
printf("<TD VALIGN=TOP><IMG SRC=\"/images/printer-%s.gif\" ALIGN=\"LEFT\">\n",
pstate == IPP_PRINTER_IDLE ? "idle" :
pstate == IPP_PRINTER_PROCESSING ? "processing" : "stopped");
printf("%s: %s, %s<BR>\n",
cupsLangString(language, CUPS_MSG_PRINTER_STATE),
cupsLangString(language, pstate == IPP_PRINTER_IDLE ? CUPS_MSG_IDLE :
pstate == IPP_PRINTER_PROCESSING ?
CUPS_MSG_PROCESSING : CUPS_MSG_STOPPED),
cupsLangString(language, accepting ? CUPS_MSG_ACCEPTING_JOBS :
CUPS_MSG_NOT_ACCEPTING_JOBS));
if (message)
printf("<BR CLEAR=ALL><I>\"%s\"</I>\n", message);
else if (!accepting || pstate == IPP_PRINTER_STOPPED)
puts("<BR CLEAR=ALL><I>\"Reason Unknown\"</I>");
puts("</TD>");
/*
* Show a list of jobs as needed...
*/
if (pstate != IPP_PRINTER_IDLE)
{
/*
* Build an IPP_GET_JOBS request, which requires the following
* attributes:
*
* attributes-charset
* attributes-natural-language
* printer-uri
* Redirect successful updates back to the printer page...
*/
request = ippNew();
request->request.op.operation_id = IPP_GET_JOBS;
request->request.op.request_id = 1;
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_CHARSET,
"attributes-charset", NULL,
cupsLangEncoding(language));
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE,
"attributes-natural-language", NULL,
language->language);
sprintf(uri, "ipp://localhost/printers/%s", name);
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI,
"printer-uri", NULL, uri);
jobs = cupsDoRequest(http, request, uri + 15);
}
else
jobs = NULL;
puts("<TD VALIGN=\"TOP\">");
jobcount = 0;
if (jobs != NULL)
{
char *username; /* Pointer to job-originating-user-name */
int jobid, /* job-id */
size; /* job-k-octets */
char url[1024], /* Printer/class URL */
refresh[1024]; /* Refresh URL */
for (attr = jobs->attrs; attr != NULL; attr = attr->next)
{
/*
* Skip leading attributes until we hit a job...
*/
cgiRewriteURL(uri, url, sizeof(url), NULL);
cgiFormEncode(uri, url, sizeof(uri));
snprintf(refresh, sizeof(refresh), "5;URL=%s", uri);
cgiSetVariable("refresh_page", refresh);
while (attr != NULL && attr->group_tag != IPP_TAG_JOB)
attr = attr->next;
cgiStartHTML(title);
if (attr == NULL)
break;
/*
* Pull the needed attributes from this job...
*/
jobid = 0;
size = 0;
username = NULL;
while (attr != NULL && attr->group_tag == IPP_TAG_JOB)
{
if (strcmp(attr->name, "job-id") == 0 &&
attr->value_tag == IPP_TAG_INTEGER)
jobid = attr->values[0].integer;
if (strcmp(attr->name, "job-k-octets") == 0 &&
attr->value_tag == IPP_TAG_INTEGER)
size = attr->values[0].integer;
if (strcmp(attr->name, "job-originating-user-name") == 0 &&
attr->value_tag == IPP_TAG_NAME)
username = attr->values[0].string.text;
attr = attr->next;
}
/*
* Display the job if it matches the current printer...
*/
if (username != NULL)
{
jobcount ++;
printf("<A HREF=\"/jobs/%d\">%s-%d %s %dk</A><BR>\n", jobid, name,
jobid, username, size);
}
if (attr == NULL)
break;
}
ippDelete(jobs);
if (op == IPP_PAUSE_PRINTER)
cgiCopyTemplateLang("printer-stop.tmpl");
else if (op == IPP_RESUME_PRINTER)
cgiCopyTemplateLang("printer-start.tmpl");
else if (op == CUPS_ACCEPT_JOBS)
cgiCopyTemplateLang("printer-accept.tmpl");
else if (op == CUPS_REJECT_JOBS)
cgiCopyTemplateLang("printer-reject.tmpl");
else if (op == IPP_OP_CANCEL_JOBS)
cgiCopyTemplateLang("printer-cancel-jobs.tmpl");
}
if (jobcount == 0)
puts("None");
puts("</TD>");
puts("</TR>");
ippDelete(response);
cgiEndHTML();
}
/*
* End of "$Id$".
* 'show_all_printers()' - Show all printers...
*/
static void
show_all_printers(http_t *http, /* I - Connection to server */
const char *user) /* I - Username */
{
int i; /* Looping var */
ipp_t *request, /* IPP request */
*response; /* IPP response */
cups_array_t *printers; /* Array of printer objects */
ipp_attribute_t *printer; /* Printer object */
int first, /* First printer to show */
count; /* Number of printers */
const char *var; /* Form variable */
void *search; /* Search data */
char val[1024]; /* Form variable */
fprintf(stderr, "DEBUG: show_all_printers(http=%p, user=\"%s\")\n",
http, user ? user : "(null)");
/*
* Show the standard header...
*/
cgiStartHTML(cgiText(_("Printers")));
/*
* Build a CUPS_GET_PRINTERS request, which requires the following
* attributes:
*
* attributes-charset
* attributes-natural-language
* printer-type
* printer-type-mask
* requesting-user-name
*/
request = ippNewRequest(CUPS_GET_PRINTERS);
ippAddInteger(request, IPP_TAG_OPERATION, IPP_TAG_ENUM,
"printer-type", 0);
ippAddInteger(request, IPP_TAG_OPERATION, IPP_TAG_ENUM,
"printer-type-mask", CUPS_PRINTER_CLASS);
if (user)
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME,
"requesting-user-name", NULL, user);
cgiGetAttributes(request, "printers.tmpl");
/*
* Do the request and get back a response...
*/
if ((response = cupsDoRequest(http, request, "/")) != NULL)
{
/*
* Get a list of matching job objects.
*/
if ((var = cgiGetVariable("QUERY")) != NULL &&
!cgiGetVariable("CLEAR"))
search = cgiCompileSearch(var);
else
search = NULL;
printers = cgiGetIPPObjects(response, search);
count = cupsArrayCount(printers);
if (search)
cgiFreeSearch(search);
/*
* Figure out which printers to display...
*/
if ((var = cgiGetVariable("FIRST")) != NULL)
first = atoi(var);
else
first = 0;
if (first >= count)
first = count - CUPS_PAGE_MAX;
first = (first / CUPS_PAGE_MAX) * CUPS_PAGE_MAX;
if (first < 0)
first = 0;
sprintf(val, "%d", count);
cgiSetVariable("TOTAL", val);
for (i = 0, printer = (ipp_attribute_t *)cupsArrayIndex(printers, first);
i < CUPS_PAGE_MAX && printer;
i ++, printer = (ipp_attribute_t *)cupsArrayNext(printers))
cgiSetIPPObjectVars(printer, NULL, i);
/*
* Save navigation URLs...
*/
cgiSetVariable("THISURL", "/printers/");
if (first > 0)
{
sprintf(val, "%d", first - CUPS_PAGE_MAX);
cgiSetVariable("PREV", val);
}
if ((first + CUPS_PAGE_MAX) < count)
{
sprintf(val, "%d", first + CUPS_PAGE_MAX);
cgiSetVariable("NEXT", val);
}
if (count > CUPS_PAGE_MAX)
{
snprintf(val, sizeof(val), "%d", CUPS_PAGE_MAX * (count / CUPS_PAGE_MAX));
cgiSetVariable("LAST", val);
}
/*
* Then show everything...
*/
cgiCopyTemplateLang("search.tmpl");
cgiCopyTemplateLang("printers-header.tmpl");
if (count > CUPS_PAGE_MAX)
cgiCopyTemplateLang("pager.tmpl");
cgiCopyTemplateLang("printers.tmpl");
if (count > CUPS_PAGE_MAX)
cgiCopyTemplateLang("pager.tmpl");
/*
* Delete the response...
*/
cupsArrayDelete(printers);
ippDelete(response);
}
else
{
/*
* Show the error...
*/
cgiShowIPPError(_("Unable to get printer list"));
}
cgiEndHTML();
}
/*
* 'show_printer()' - Show a single printer.
*/
static void
show_printer(http_t *http, /* I - Connection to server */
const char *printer) /* I - Name of printer */
{
ipp_t *request, /* IPP request */
*response; /* IPP response */
ipp_attribute_t *attr; /* IPP attribute */
char uri[HTTP_MAX_URI]; /* Printer URI */
char refresh[1024]; /* Refresh URL */
fprintf(stderr, "DEBUG: show_printer(http=%p, printer=\"%s\")\n",
http, printer ? printer : "(null)");
/*
* Build an IPP_GET_PRINTER_ATTRIBUTES request, which requires the following
* attributes:
*
* attributes-charset
* attributes-natural-language
* printer-uri
*/
request = ippNewRequest(IPP_GET_PRINTER_ATTRIBUTES);
httpAssembleURIf(HTTP_URI_CODING_ALL, uri, sizeof(uri), "ipp", NULL,
"localhost", 0, "/printers/%s", printer);
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri", NULL,
uri);
cgiGetAttributes(request, "printer.tmpl");
/*
* Do the request and get back a response...
*/
if ((response = cupsDoRequest(http, request, "/")) != NULL)
{
/*
* Got the result; set the CGI variables and check the status of a
* single-queue request...
*/
cgiSetIPPVars(response, NULL, NULL, NULL, 0);
if (printer && (attr = ippFindAttribute(response, "printer-state",
IPP_TAG_ENUM)) != NULL &&
attr->values[0].integer == IPP_PRINTER_PROCESSING)
{
/*
* Printer is processing - automatically refresh the page until we
* are done printing...
*/
cgiFormEncode(uri, printer, sizeof(uri));
snprintf(refresh, sizeof(refresh), "10;URL=/printers/%s", uri);
cgiSetVariable("refresh_page", refresh);
}
/*
* Delete the response...
*/
ippDelete(response);
/*
* Show the standard header...
*/
cgiStartHTML(printer);
/*
* Show the printer status...
*/
cgiCopyTemplateLang("printer.tmpl");
/*
* Show jobs for the specified printer...
*/
cgiCopyTemplateLang("printer-jobs-header.tmpl");
cgiShowJobs(http, printer);
}
else
{
/*
* Show the IPP error...
*/
cgiStartHTML(printer);
cgiShowIPPError(_("Unable to get printer status"));
}
cgiEndHTML();
}
+362
Ver Arquivo
@@ -0,0 +1,362 @@
/*
* Search routines for CUPS.
*
* Copyright 2007-2018 by Apple Inc.
* Copyright 1997-2006 by Easy Software Products.
*
* Licensed under Apache License v2.0. See the file "LICENSE" for more
* information.
*/
/*
* Include necessary headers...
*/
#include "cgi-private.h"
#include <regex.h>
/*
* 'cgiCompileSearch()' - Compile a search string.
*/
void * /* O - Search context */
cgiCompileSearch(const char *query) /* I - Query string */
{
regex_t *re; /* Regular expression */
char *s, /* Regular expression string */
*sptr, /* Pointer into RE string */
*sword; /* Pointer to start of word */
size_t slen; /* Allocated size of RE string */
const char *qptr, /* Pointer into query string */
*qend; /* End of current word */
const char *prefix; /* Prefix to add to next word */
int quoted; /* Word is quoted */
size_t wlen; /* Word length */
char *lword; /* Last word in query */
/*
* Range check input...
*/
if (!query)
return (NULL);
/*
* Allocate a regular expression storage structure...
*/
if ((re = (regex_t *)calloc(1, sizeof(regex_t))) == NULL)
return (NULL);
/*
* Allocate a buffer to hold the regular expression string, starting
* at 1024 bytes or 3 times the length of the query string, whichever
* is greater. We'll expand the string as needed...
*/
slen = strlen(query) * 3;
if (slen < 1024)
slen = 1024;
if ((s = (char *)malloc(slen)) == NULL)
{
free(re);
return (NULL);
}
/*
* Copy the query string to the regular expression, handling basic
* AND and OR logic...
*/
prefix = ".*";
qptr = query;
sptr = s;
lword = NULL;
while (*qptr)
{
/*
* Skip leading whitespace...
*/
while (isspace(*qptr & 255))
qptr ++;
if (!*qptr)
break;
/*
* Find the end of the current word...
*/
if (*qptr == '\"' || *qptr == '\'')
{
/*
* Scan quoted string...
*/
quoted = *qptr ++;
for (qend = qptr; *qend && *qend != quoted; qend ++);
if (!*qend)
{
/*
* No closing quote, error out!
*/
free(s);
free(re);
if (lword)
free(lword);
return (NULL);
}
}
else
{
/*
* Scan whitespace-delimited string...
*/
quoted = 0;
for (qend = qptr + 1; *qend && !isspace(*qend); qend ++);
}
wlen = (size_t)(qend - qptr);
/*
* Look for logic words: AND, OR
*/
if (wlen == 3 && !_cups_strncasecmp(qptr, "AND", 3))
{
/*
* Logical AND with the following text...
*/
if (sptr > s)
prefix = ".*";
qptr = qend;
}
else if (wlen == 2 && !_cups_strncasecmp(qptr, "OR", 2))
{
/*
* Logical OR with the following text...
*/
if (sptr > s)
prefix = ".*|.*";
qptr = qend;
}
else
{
/*
* Add a search word, making sure we have enough room for the
* string + RE overhead...
*/
wlen = (size_t)(sptr - s) + 2 * 4 * wlen + 2 * strlen(prefix) + 11;
if (lword)
wlen += strlen(lword);
if (wlen > slen)
{
/*
* Expand the RE string buffer...
*/
char *temp; /* Temporary string pointer */
slen = wlen + 128;
temp = (char *)realloc(s, slen);
if (!temp)
{
free(s);
free(re);
if (lword)
free(lword);
return (NULL);
}
sptr = temp + (sptr - s);
s = temp;
}
/*
* Add the prefix string...
*/
memcpy(sptr, prefix, strlen(prefix) + 1);
sptr += strlen(sptr);
/*
* Then quote the remaining word characters as needed for the
* RE...
*/
sword = sptr;
while (qptr < qend)
{
/*
* Quote: ^ . [ $ ( ) | * + ? { \
*/
if (strchr("^.[$()|*+?{\\", *qptr))
*sptr++ = '\\';
*sptr++ = *qptr++;
}
*sptr = '\0';
/*
* For "word1 AND word2", add reciprocal "word2 AND word1"...
*/
if (!strcmp(prefix, ".*") && lword)
{
char *lword2; /* New "last word" */
if ((lword2 = strdup(sword)) == NULL)
{
free(lword);
free(s);
free(re);
return (NULL);
}
memcpy(sptr, ".*|.*", 6);
sptr += 5;
memcpy(sptr, lword2, strlen(lword2) + 1);
sptr += strlen(sptr);
memcpy(sptr, ".*", 3);
sptr += 2;
memcpy(sptr, lword, strlen(lword) + 1);
sptr += strlen(sptr);
free(lword);
lword = lword2;
}
else
{
if (lword)
free(lword);
lword = strdup(sword);
}
prefix = ".*|.*";
}
/*
* Advance to the next string...
*/
if (quoted)
qptr ++;
}
if (lword)
free(lword);
if (sptr > s)
memcpy(sptr, ".*", 3);
else
{
/*
* No query data, return NULL...
*/
free(s);
free(re);
return (NULL);
}
/*
* Compile the regular expression...
*/
if (regcomp(re, s, REG_EXTENDED | REG_ICASE))
{
free(re);
free(s);
return (NULL);
}
/*
* Free the RE string and return the new regular expression we compiled...
*/
free(s);
return ((void *)re);
}
/*
* 'cgiDoSearch()' - Do a search of some text.
*/
int /* O - Number of matches */
cgiDoSearch(void *search, /* I - Search context */
const char *text) /* I - Text to search */
{
int i; /* Looping var */
regmatch_t matches[100]; /* RE matches */
/*
* Range check...
*/
if (!search || !text)
return (0);
/*
* Do a lookup...
*/
if (!regexec((regex_t *)search, text, sizeof(matches) / sizeof(matches[0]),
matches, 0))
{
/*
* Figure out the number of matches in the string...
*/
for (i = 0; i < (int)(sizeof(matches) / sizeof(matches[0])); i ++)
if (matches[i].rm_so < 0)
break;
return (i);
}
else
return (0);
}
/*
* 'cgiFreeSearch()' - Free a compiled search context.
*/
void
cgiFreeSearch(void *search) /* I - Search context */
{
regfree((regex_t *)search);
free(search);
}
+679
Ver Arquivo
@@ -0,0 +1,679 @@
/*
* CGI template function.
*
* Copyright 2007-2015 by Apple Inc.
* Copyright 1997-2006 by Easy Software Products.
*
* Licensed under Apache License v2.0. See the file "LICENSE" for more information.
*/
#include "cgi-private.h"
#include <errno.h>
#include <regex.h>
/*
* Local functions...
*/
static void cgi_copy(FILE *out, FILE *in, int element, char term,
int indent);
static void cgi_puts(const char *s, FILE *out);
static void cgi_puturi(const char *s, FILE *out);
/*
* 'cgiCopyTemplateFile()' - Copy a template file and replace all the
* '{variable}' strings with the variable value.
*/
void
cgiCopyTemplateFile(FILE *out, /* I - Output file */
const char *tmpl) /* I - Template file to read */
{
FILE *in; /* Input file */
fprintf(stderr, "DEBUG2: cgiCopyTemplateFile(out=%p, tmpl=\"%s\")\n", out,
tmpl ? tmpl : "(null)");
/*
* Range check input...
*/
if (!tmpl || !out)
return;
/*
* Open the template file...
*/
if ((in = fopen(tmpl, "r")) == NULL)
{
fprintf(stderr, "ERROR: Unable to open template file \"%s\" - %s\n",
tmpl ? tmpl : "(null)", strerror(errno));
return;
}
/*
* Parse the file to the end...
*/
cgi_copy(out, in, 0, 0, 0);
/*
* Close the template file and return...
*/
fclose(in);
}
/*
* 'cgiCopyTemplateLang()' - Copy a template file using a language...
*/
void
cgiCopyTemplateLang(const char *tmpl) /* I - Base filename */
{
char filename[1024], /* Filename */
locale[16], /* Locale name */
*locptr; /* Pointer into locale name */
const char *directory, /* Directory for templates */
*lang; /* Language */
FILE *in; /* Input file */
fprintf(stderr, "DEBUG2: cgiCopyTemplateLang(tmpl=\"%s\")\n",
tmpl ? tmpl : "(null)");
/*
* Convert the language to a locale name...
*/
locale[0] = '\0';
if ((lang = getenv("LANG")) != NULL)
{
locale[0] = '/';
strlcpy(locale + 1, lang, sizeof(locale) - 1);
if ((locptr = strchr(locale, '.')) != NULL)
*locptr = '\0'; /* Strip charset */
}
fprintf(stderr, "DEBUG2: lang=\"%s\", locale=\"%s\"...\n",
lang ? lang : "(null)", locale);
/*
* See if we have a template file for this language...
*/
directory = cgiGetTemplateDir();
snprintf(filename, sizeof(filename), "%s%s/%s", directory, locale, tmpl);
if ((in = fopen(filename, "r")) == NULL)
{
locale[3] = '\0';
snprintf(filename, sizeof(filename), "%s%s/%s", directory, locale, tmpl);
if ((in = fopen(filename, "r")) == NULL)
{
snprintf(filename, sizeof(filename), "%s/%s", directory, tmpl);
in = fopen(filename, "r");
}
}
fprintf(stderr, "DEBUG2: Template file is \"%s\"...\n", filename);
/*
* Open the template file...
*/
if (!in)
{
fprintf(stderr, "ERROR: Unable to open template file \"%s\" - %s\n",
filename, strerror(errno));
return;
}
/*
* Parse the file to the end...
*/
cgi_copy(stdout, in, 0, 0, 0);
/*
* Close the template file and return...
*/
fclose(in);
}
/*
* 'cgiGetTemplateDir()' - Get the templates directory...
*/
char * /* O - Template directory */
cgiGetTemplateDir(void)
{
const char *datadir; /* CUPS_DATADIR env var */
static char templates[1024] = ""; /* Template directory */
if (!templates[0])
{
/*
* Build the template directory pathname...
*/
if ((datadir = getenv("CUPS_DATADIR")) == NULL)
datadir = CUPS_DATADIR;
snprintf(templates, sizeof(templates), "%s/templates", datadir);
}
return (templates);
}
/*
* 'cgiSetServerVersion()' - Set the server name and CUPS version...
*/
void
cgiSetServerVersion(void)
{
cgiSetVariable("SERVER_NAME", getenv("SERVER_NAME"));
cgiSetVariable("REMOTE_USER", getenv("REMOTE_USER"));
cgiSetVariable("CUPS_VERSION", CUPS_SVERSION);
#ifdef LC_TIME
setlocale(LC_TIME, "");
#endif /* LC_TIME */
}
/*
* 'cgi_copy()' - Copy the template file, substituting as needed...
*/
static void
cgi_copy(FILE *out, /* I - Output file */
FILE *in, /* I - Input file */
int element, /* I - Element number (0 to N) */
char term, /* I - Terminating character */
int indent) /* I - Debug info indentation */
{
int ch; /* Character from file */
char op; /* Operation */
char name[255], /* Name of variable */
*nameptr, /* Pointer into name */
innername[255], /* Inner comparison name */
*innerptr, /* Pointer into inner name */
*s; /* String pointer */
const char *value; /* Value of variable */
const char *innerval; /* Inner value */
const char *outptr; /* Output string pointer */
char outval[1024], /* Formatted output string */
compare[1024]; /* Comparison string */
int result; /* Result of comparison */
int uriencode; /* Encode as URI */
regex_t re; /* Regular expression to match */
fprintf(stderr, "DEBUG2: %*sStarting at file position %ld...\n", indent, "",
ftell(in));
/*
* Parse the file to the end...
*/
while ((ch = getc(in)) != EOF)
if (ch == term)
break;
else if (ch == '{')
{
/*
* Get a variable name...
*/
uriencode = 0;
for (s = name; (ch = getc(in)) != EOF;)
if (strchr("}]<>=!~ \t\n", ch))
break;
else if (s == name && ch == '%')
uriencode = 1;
else if (s > name && ch == '?')
break;
else if (s < (name + sizeof(name) - 1))
*s++ = (char)ch;
*s = '\0';
if (s == name && isspace(ch & 255))
{
fprintf(stderr, "DEBUG2: %*sLone { at %ld...\n", indent, "", ftell(in));
if (out)
{
putc('{', out);
putc(ch, out);
}
continue;
}
if (ch == '}')
fprintf(stderr, "DEBUG2: %*s\"{%s}\" at %ld...\n", indent, "", name,
ftell(in));
/*
* See if it has a value...
*/
if (name[0] == '?')
{
/*
* Insert value only if it exists...
*/
if ((nameptr = strrchr(name, '-')) != NULL && isdigit(nameptr[1] & 255))
{
*nameptr++ = '\0';
if ((value = cgiGetArray(name + 1, atoi(nameptr) - 1)) != NULL)
outptr = value;
else
{
outval[0] = '\0';
outptr = outval;
}
}
else if ((value = cgiGetArray(name + 1, element)) != NULL)
outptr = value;
else
{
outval[0] = '\0';
outptr = outval;
}
}
else if (name[0] == '#')
{
/*
* Insert count...
*/
if (name[1])
sprintf(outval, "%d", cgiGetSize(name + 1));
else
sprintf(outval, "%d", element + 1);
outptr = outval;
}
else if (name[0] == '[')
{
/*
* Loop for # of elements...
*/
int i; /* Looping var */
long pos; /* File position */
int count; /* Number of elements */
if (isdigit(name[1] & 255))
count = atoi(name + 1);
else
count = cgiGetSize(name + 1);
pos = ftell(in);
fprintf(stderr, "DEBUG2: %*sLooping on \"%s\" at %ld, count=%d...\n",
indent, "", name + 1, pos, count);
if (count > 0)
{
for (i = 0; i < count; i ++)
{
if (i)
fseek(in, pos, SEEK_SET);
cgi_copy(out, in, i, '}', indent + 2);
}
}
else
cgi_copy(NULL, in, 0, '}', indent + 2);
fprintf(stderr, "DEBUG2: %*sFinished looping on \"%s\"...\n", indent,
"", name + 1);
continue;
}
else if (name[0] == '$')
{
/*
* Insert cookie value or nothing if not defined.
*/
if ((value = cgiGetCookie(name + 1)) != NULL)
outptr = value;
else
{
outval[0] = '\0';
outptr = outval;
}
}
else
{
/*
* Insert variable or variable name (if element is NULL)...
*/
if ((nameptr = strrchr(name, '-')) != NULL && isdigit(nameptr[1] & 255))
{
*nameptr++ = '\0';
if ((value = cgiGetArray(name, atoi(nameptr) - 1)) == NULL)
{
snprintf(outval, sizeof(outval), "{%s}", name);
outptr = outval;
}
else
outptr = value;
}
else if ((value = cgiGetArray(name, element)) == NULL)
{
snprintf(outval, sizeof(outval), "{%s}", name);
outptr = outval;
}
else
outptr = value;
}
/*
* See if the terminating character requires another test...
*/
if (ch == '}')
{
/*
* End of substitution...
*/
if (out)
{
if (uriencode)
cgi_puturi(outptr, out);
else if (!_cups_strcasecmp(name, "?cupsdconf_default"))
fputs(outptr, stdout);
else
cgi_puts(outptr, out);
}
continue;
}
/*
* OK, process one of the following checks:
*
* {name?exist:not-exist} Exists?
* {name=value?true:false} Equal
* {name<value?true:false} Less than
* {name>value?true:false} Greater than
* {name!value?true:false} Not equal
* {name~refex?true:false} Regex match
*/
op = (char)ch;
if (ch == '?')
{
/*
* Test for existance...
*/
if (name[0] == '?')
result = cgiGetArray(name + 1, element) != NULL;
else if (name[0] == '#')
result = cgiGetVariable(name + 1) != NULL;
else
result = cgiGetArray(name, element) != NULL;
result = result && outptr[0];
compare[0] = '\0';
}
else
{
/*
* Compare to a string...
*/
for (s = compare; (ch = getc(in)) != EOF;)
if (ch == '?')
break;
else if (s >= (compare + sizeof(compare) - 1))
continue;
else if (ch == '#')
{
sprintf(s, "%d", element + 1);
s += strlen(s);
}
else if (ch == '{')
{
/*
* Grab the value of a variable...
*/
innerptr = innername;
while ((ch = getc(in)) != EOF && ch != '}')
if (innerptr < (innername + sizeof(innername) - 1))
*innerptr++ = (char)ch;
*innerptr = '\0';
if (innername[0] == '#')
sprintf(s, "%d", cgiGetSize(innername + 1));
else if ((innerptr = strrchr(innername, '-')) != NULL &&
isdigit(innerptr[1] & 255))
{
*innerptr++ = '\0';
if ((innerval = cgiGetArray(innername, atoi(innerptr) - 1)) == NULL)
*s = '\0';
else
strlcpy(s, innerval, sizeof(compare) - (size_t)(s - compare));
}
else if (innername[0] == '?')
{
if ((innerval = cgiGetArray(innername + 1, element)) == NULL)
*s = '\0';
else
strlcpy(s, innerval, sizeof(compare) - (size_t)(s - compare));
}
else if ((innerval = cgiGetArray(innername, element)) == NULL)
snprintf(s, sizeof(compare) - (size_t)(s - compare), "{%s}", innername);
else
strlcpy(s, innerval, sizeof(compare) - (size_t)(s - compare));
s += strlen(s);
}
else if (ch == '\\')
*s++ = (char)getc(in);
else
*s++ = (char)ch;
*s = '\0';
if (ch != '?')
{
fprintf(stderr,
"DEBUG2: %*sBad terminator '%c' at file position %ld...\n",
indent, "", ch, ftell(in));
return;
}
/*
* Do the comparison...
*/
switch (op)
{
case '<' :
result = _cups_strcasecmp(outptr, compare) < 0;
break;
case '>' :
result = _cups_strcasecmp(outptr, compare) > 0;
break;
case '=' :
result = _cups_strcasecmp(outptr, compare) == 0;
break;
case '!' :
result = _cups_strcasecmp(outptr, compare) != 0;
break;
case '~' :
fprintf(stderr, "DEBUG: Regular expression \"%s\"\n", compare);
if (regcomp(&re, compare, REG_EXTENDED | REG_ICASE))
{
fprintf(stderr,
"ERROR: Unable to compile regular expression \"%s\"!\n",
compare);
result = 0;
}
else
{
regmatch_t matches[10];
result = 0;
if (!regexec(&re, outptr, 10, matches, 0))
{
int i;
for (i = 0; i < 10; i ++)
{
fprintf(stderr, "DEBUG: matches[%d].rm_so=%d\n", i,
(int)matches[i].rm_so);
if (matches[i].rm_so < 0)
break;
result ++;
}
}
regfree(&re);
}
break;
default :
result = 1;
break;
}
}
fprintf(stderr,
"DEBUG2: %*sStarting \"{%s%c%s\" at %ld, result=%d...\n",
indent, "", name, op, compare, ftell(in), result);
if (result)
{
/*
* Comparison true; output first part and ignore second...
*/
fprintf(stderr, "DEBUG2: %*sOutput first part...\n", indent, "");
cgi_copy(out, in, element, ':', indent + 2);
fprintf(stderr, "DEBUG2: %*sSkip second part...\n", indent, "");
cgi_copy(NULL, in, element, '}', indent + 2);
}
else
{
/*
* Comparison false; ignore first part and output second...
*/
fprintf(stderr, "DEBUG2: %*sSkip first part...\n", indent, "");
cgi_copy(NULL, in, element, ':', indent + 2);
fprintf(stderr, "DEBUG2: %*sOutput second part...\n", indent, "");
cgi_copy(out, in, element, '}', indent + 2);
}
fprintf(stderr, "DEBUG2: %*sFinished \"{%s%c%s\", out=%p...\n", indent, "",
name, op, compare, out);
}
else if (ch == '\\') /* Quoted char */
{
if (out)
putc(getc(in), out);
else
getc(in);
}
else if (out)
putc(ch, out);
if (ch == EOF)
fprintf(stderr, "DEBUG2: %*sReturning at file position %ld on EOF...\n",
indent, "", ftell(in));
else
fprintf(stderr,
"DEBUG2: %*sReturning at file position %ld on character '%c'...\n",
indent, "", ftell(in), ch);
if (ch == EOF && term)
fprintf(stderr, "ERROR: %*sSaw EOF, expected '%c'!\n", indent, "", term);
/*
* Flush any pending output...
*/
if (out)
fflush(out);
}
/*
* 'cgi_puts()' - Put a string to the output file, quoting as needed...
*/
static void
cgi_puts(const char *s, /* I - String to output */
FILE *out) /* I - Output file */
{
while (*s)
{
if (*s == '<')
fputs("&lt;", out);
else if (*s == '>')
fputs("&gt;", out);
else if (*s == '\"')
fputs("&quot;", out);
else if (*s == '\'')
fputs("&#39;", out);
else if (*s == '&')
fputs("&amp;", out);
else
putc(*s, out);
s ++;
}
}
/*
* 'cgi_puturi()' - Put a URI string to the output file, quoting as needed...
*/
static void
cgi_puturi(const char *s, /* I - String to output */
FILE *out) /* I - Output file */
{
while (*s)
{
if (strchr("%@&+ <>#=", *s) || *s < ' ' || *s & 128)
fprintf(out, "%%%02X", *s & 255);
else
putc(*s, out);
s ++;
}
}
+58
Ver Arquivo
@@ -0,0 +1,58 @@
/*
* CGI test program for CUPS.
*
* Copyright 2007-2014 by Apple Inc.
* Copyright 1997-2005 by Easy Software Products.
*
* Licensed under Apache License v2.0. See the file "LICENSE" for more information.
*/
/*
* Include necessary headers...
*/
#include "cgi.h"
/*
* 'main()' - Test the CGI code.
*/
int /* O - Exit status */
main(void)
{
/*
* Test file upload/multi-part submissions...
*/
freopen("multipart.dat", "rb", stdin);
putenv("CONTENT_TYPE=multipart/form-data; "
"boundary=---------------------------1977426492562745908748943111");
putenv("REQUEST_METHOD=POST");
printf("cgiInitialize: ");
if (cgiInitialize())
{
const cgi_file_t *file; /* Upload file */
if ((file = cgiGetFile()) != NULL)
{
puts("PASS");
printf(" tempfile=\"%s\"\n", file->tempfile);
printf(" name=\"%s\"\n", file->name);
printf(" filename=\"%s\"\n", file->filename);
printf(" mimetype=\"%s\"\n", file->mimetype);
}
else
puts("FAIL (no file!)");
}
else
puts("FAIL (init)");
/*
* Return with no errors...
*/
return (0);
}
+181
Ver Arquivo
@@ -0,0 +1,181 @@
/*
* Help index test program for CUPS.
*
* Copyright 2007-2017 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products.
*
* Licensed under Apache License v2.0. See the file "LICENSE" for more information.
*/
/*
* Include necessary headers...
*/
#include "cgi.h"
/*
* Local functions...
*/
static void list_nodes(const char *title, cups_array_t *nodes);
static int usage(void);
/*
* 'main()' - Test the help index code.
*/
int /* O - Exit status */
main(int argc, /* I - Number of command-line arguments */
char *argv[]) /* I - Command-line arguments */
{
int i; /* Looping var */
help_index_t *hi, /* Help index */
*search; /* Search index */
const char *opt, /* Current option character */
*dir = ".", /* Directory to index */
*q = NULL, /* Query string */
*section = NULL, /* Section string */
*filename = NULL; /* Filename string */
/*
* Parse the command-line...
*/
for (i = 1; i < argc; i ++)
{
if (argv[i][0] == '-')
{
if (!strcmp(argv[i], "--help"))
{
usage();
return (0);
}
for (opt = argv[i] + 1; *opt; opt ++)
{
switch (*opt)
{
case 'd' : /* -d directory */
i ++;
if (i < argc)
{
dir = argv[i];
}
else
{
fputs("testhi: Missing directory for \"-d\" option.\n", stderr);
return (usage());
}
break;
case 's' : /* -s section */
i ++;
if (i < argc)
{
section = argv[i];
}
else
{
fputs("testhi: Missing section name for \"-s\" option.\n", stderr);
return (usage());
}
break;
default :
fprintf(stderr, "testhi: Unknown option \"-%c\".\n", *opt);
return (usage());
}
}
}
else if (!q)
q = argv[i];
else if (!filename)
filename = argv[i];
else
{
fprintf(stderr, "testhi: Unknown argument \"%s\".\n", argv[i]);
return (usage());
}
}
/*
* Load the help index...
*/
hi = helpLoadIndex("testhi.index", dir);
list_nodes("nodes", hi->nodes);
list_nodes("sorted", hi->sorted);
/*
* Do any searches...
*/
if (q)
{
search = helpSearchIndex(hi, q, section, filename);
if (search)
{
list_nodes(argv[1], search->sorted);
helpDeleteIndex(search);
}
else
printf("%s (0 nodes)\n", q);
}
helpDeleteIndex(hi);
/*
* Return with no errors...
*/
return (0);
}
/*
* 'list_nodes()' - List nodes in an array...
*/
static void
list_nodes(const char *title, /* I - Title string */
cups_array_t *nodes) /* I - Nodes */
{
int i; /* Looping var */
help_node_t *node; /* Current node */
printf("%s (%d nodes):\n", title, cupsArrayCount(nodes));
for (i = 1, node = (help_node_t *)cupsArrayFirst(nodes);
node;
i ++, node = (help_node_t *)cupsArrayNext(nodes))
{
if (node->anchor)
printf(" %d: %s#%s \"%s\"", i, node->filename, node->anchor,
node->text);
else
printf(" %d: %s \"%s\"", i, node->filename, node->text);
printf(" (%d words)\n", cupsArrayCount(node->words));
}
}
/*
* 'usage()' - Show program usage.
*/
static int /* O - Exit status */
usage(void)
{
puts("Usage: ./testhi [options] [\"query\"] [filename]");
puts("Options:");
puts("-d directory Specify index directory.");
puts("-s section Specify search section.");
return (1);
}
+31
Ver Arquivo
@@ -0,0 +1,31 @@
<HTML>
<HEAD>
<TITLE>Test File for Help Index Code</TITLE>
</HEAD>
<BODY>
<P>This is a test file for the help index code. The help index
code reads plain HTML and indexes the title and any anchored
text, ignoring all other markup. Anchor tags must be on a single
line, although the text they wrap may cross multiple lines and be
up to 1024 bytes in length.</P>
<H1><A NAME="FIRST">This is the First Anchor</A></H1>
<P>This&nbsp;is some text for the <em>first</em> anchor.</P>
<H1><A NAME="2ND">This is the Second Anchor</A></H1>
<P>This is some text for the first anchor.</P>
<P>John asked Mary to the dance.</P>
<H1><A NAME="THIRD">This is the Third Anchor</A></H1>
<P>This is some text for the third anchor. <A NAME="INLINE">This
is an in-line anchor that crosses a line.</A></P>
</BODY>
</HTML>
+88
Ver Arquivo
@@ -0,0 +1,88 @@
/*
* CGI template test program for CUPS.
*
* Copyright 2007-2011 by Apple Inc.
* Copyright 2006 by Easy Software Products.
*
* Licensed under Apache License v2.0. See the file "LICENSE" for more information.
*/
/*
* Include necessary headers...
*/
#include "cgi.h"
/*
* 'main()' - Test the template code.
*/
int /* O - Exit status */
main(int argc, /* I - Number of command-line arguments */
char *argv[]) /* I - Command-line arguments */
{
int i; /* Looping var */
char *value; /* Value in name=value */
FILE *out; /* Where to send output */
/*
* Don't buffer stdout or stderr so that the mixed output is sane...
*/
setbuf(stdout, NULL);
setbuf(stderr, NULL);
/*
* Loop through the command-line, assigning variables for any args with
* "name=value"...
*/
out = stdout;
for (i = 1; i < argc; i ++)
{
if (!strcmp(argv[i], "-o"))
{
i ++;
if (i < argc)
{
out = fopen(argv[i], "w");
if (!out)
{
perror(argv[i]);
return (1);
}
}
}
else if (!strcmp(argv[i], "-e"))
{
i ++;
if (i < argc)
{
if (!freopen(argv[i], "w", stderr))
{
perror(argv[i]);
return (1);
}
}
}
else if (!strcmp(argv[i], "-q"))
freopen("/dev/null", "w", stderr);
else if ((value = strchr(argv[i], '=')) != NULL)
{
*value++ = '\0';
cgiSetVariable(argv[i], value);
}
else
cgiCopyTemplateFile(out, argv[i]);
}
/*
* Return with no errors...
*/
return (0);
}
+1256
Ver Arquivo
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+94 -30
Ver Arquivo
@@ -1,25 +1,10 @@
#
# "$Id$"
# Configuration file makefile for CUPS.
#
# Configuration file makefile for the Common UNIX Printing System (CUPS).
# Copyright 2007-2015 by Apple Inc.
# Copyright 1993-2006 by Easy Software Products.
#
# Copyright 1993-1999 by Easy Software Products.
#
# These coded instructions, statements, and computer programs are the
# property of Easy Software Products and are protected by Federal
# copyright law. Distribution and use rights are outlined in the file
# "LICENSE.txt" which should have been included with this file. If this
# file is missing or damaged please contact Easy Software Products
# at:
#
# Attn: CUPS Licensing Information
# Easy Software Products
# 44141 Airport View Drive, Suite 204
# Hollywood, Maryland 20636-3111 USA
#
# Voice: (301) 373-9603
# EMail: cups-info@cups.org
# WWW: http://www.cups.org
# Licensed under Apache License v2.0. See the file "LICENSE" for more information.
#
include ../Makedefs
@@ -28,41 +13,120 @@ include ../Makedefs
# Config files...
#
KEEP = classes.conf cupsd.conf printers.conf
KEEP = cups-files.conf cupsd.conf snmp.conf
REPLACE = mime.convs mime.types
#
# Make everything...
#
all:
#
# Make library targets...
#
libs:
#
# Make unit tests...
#
unittests:
#
# Clean all config and object files...
#
clean:
#
# Install files...
# Dummy depend...
#
install:
-$(MKDIR) $(SERVERROOT)/conf
depend:
#
# Install all targets...
#
install: all install-data install-headers install-libs install-exec
#
# Install data files...
#
install-data:
for file in $(KEEP); do \
if test -e $(SERVERROOT)/conf/$$file ; then \
$(CP) $$file $(SERVERROOT)/conf/$$file.N ; \
if test -r $(SERVERROOT)/$$file ; then \
$(INSTALL_CONFIG) -g $(CUPS_GROUP) $$file $(SERVERROOT)/$$file.N ; \
else \
$(CP) $$file $(SERVERROOT)/conf ; \
$(INSTALL_CONFIG) -g $(CUPS_GROUP) $$file $(SERVERROOT) ; \
fi ; \
$(INSTALL_CONFIG) -g $(CUPS_GROUP) $$file $(SERVERROOT)/$$file.default; \
done
$(INSTALL_DIR) -m 755 $(DATADIR)/mime
for file in $(REPLACE); do \
if test -e $(SERVERROOT)/conf/$$file ; then \
$(MV) $(SERVERROOT)/conf/$$file $(SERVERROOT)/conf/$$file.O ; \
if test -r $(DATADIR)/mime/$$file ; then \
$(MV) $(DATADIR)/mime/$$file $(DATADIR)/mime/$$file.O ; \
fi ; \
$(CP) $$file $(SERVERROOT)/conf ; \
if test -r $(SERVERROOT)/$$file ; then \
$(MV) $(SERVERROOT)/$$file $(DATADIR)/mime/$$file.O ; \
fi ; \
$(INSTALL_DATA) $$file $(DATADIR)/mime ; \
done
-if test x$(PAMDIR) != x; then \
$(INSTALL_DIR) -m 755 $(BUILDROOT)$(PAMDIR); \
if test -r $(BUILDROOT)$(PAMDIR)/cups ; then \
$(INSTALL_DATA) $(PAMFILE) $(BUILDROOT)$(PAMDIR)/cups.N ; \
else \
$(INSTALL_DATA) $(PAMFILE) $(BUILDROOT)$(PAMDIR)/cups ; \
fi ; \
fi
#
# End of "$Id$".
# Install programs...
#
install-exec:
#
# Install headers...
#
install-headers:
#
# Install libraries...
#
install-libs:
#
# Uninstall files...
#
uninstall:
for file in $(KEEP) $(REPLACE) cupsd.conf.default; do \
$(RM) $(SERVERROOT)/$$file; \
done
-$(RMDIR) $(SERVERROOT)
for file in $(REPLACE); do \
$(RM) $(DATADIR)/mime/$$file; \
done
-$(RMDIR) $(DATADIR)/mime
-if test x$(PAMDIR) != x; then \
$(RM) $(BUILDROOT)$(PAMDIR)/cups; \
$(RMDIR) $(BUILDROOT)$(PAMDIR); \
fi
-72
Ver Arquivo
@@ -1,72 +0,0 @@
#
# "$Id: classes.conf 333 1999-05-17 18:03:40Z mike $"
#
# Sample class configuration file for the Common UNIX Printing System
# (CUPS) scheduler.
#
# Copyright 1997-1999 by Easy Software Products, all rights reserved.
#
# These coded instructions, statements, and computer programs are the
# property of Easy Software Products and are protected by Federal
# copyright law. Distribution and use rights are outlined in the file
# "LICENSE.txt" which should have been included with this file. If this
# file is missing or damaged please contact Easy Software Products
# at:
#
# Attn: CUPS Licensing Information
# Easy Software Products
# 44145 Airport View Drive, Suite 204
# Hollywood, Maryland 20636-3111 USA
#
# Voice: (301) 373-9603
# EMail: cups-info@cups.org
# WWW: http://www.cups.org
#
########################################################################
# #
# This is a sample class configuration file. This file is included #
# from the main configuration file (cups.conf) and lists all of the #
# printer classes known to the system. #
# #
########################################################################
#
# Each class starts with a <Class name> definition. Class names
# can be up to 128 characters in length and are *not* case sensitive.
#
# One <DefaultClass name> entry can appear in this file; if you don't
# define a default destination, the first printer or class becomes
# the default.
#
#<Class sample>
#
# Info: the description for the class.
#
#Info Acme LaserPrint 1000 Printers
#
# MoreInfo: a URL for more information on the printer.
#
#MoreInfo http://www.acme.com/lp1000.html
#
# Location: the location of the printer.
#
#Location Room 101 in the activities building
#
# Printer: adds a printer to the class.
#
#Printer sample
#Printer sample@host2
#</Class>
#
# End of "$Id: classes.conf 333 1999-05-17 18:03:40Z mike $".
#
+93
Ver Arquivo
@@ -0,0 +1,93 @@
#
# File/directory/user/group configuration file for the CUPS scheduler.
# See "man cups-files.conf" for a complete description of this file.
#
# List of events that are considered fatal errors for the scheduler...
#FatalErrors @CUPS_FATAL_ERRORS@
# Do we call fsync() after writing configuration or status files?
#SyncOnClose No
# Default user and group for filters/backends/helper programs; this cannot be
# any user or group that resolves to ID 0 for security reasons...
#User @CUPS_USER@
#Group @CUPS_GROUP@
# Administrator user group, used to match @SYSTEM in cupsd.conf policy rules...
# This cannot contain the Group value for security reasons...
SystemGroup @CUPS_SYSTEM_GROUPS@
@CUPS_SYSTEM_AUTHKEY@
# User that is substituted for unauthenticated (remote) root accesses...
#RemoteRoot remroot
# Do we allow file: device URIs other than to /dev/null?
#FileDevice No
# Permissions for configuration and log files...
#ConfigFilePerm 0@CUPS_CONFIG_FILE_PERM@
#LogFilePerm 0@CUPS_LOG_FILE_PERM@
# Location of the file logging all access to the scheduler; may be the name
# "syslog". If not an absolute path, the value of ServerRoot is used as the
# root directory. Also see the "AccessLogLevel" directive in cupsd.conf.
AccessLog @CUPS_LOGDIR@/access_log
# Location of cache files used by the scheduler...
#CacheDir @CUPS_CACHEDIR@
# Location of data files used by the scheduler...
#DataDir @CUPS_DATADIR@
# Location of the static web content served by the scheduler...
#DocumentRoot @CUPS_DOCROOT@
# Location of the file logging all messages produced by the scheduler and any
# helper programs; may be the name "syslog". If not an absolute path, the value
# of ServerRoot is used as the root directory. Also see the "LogLevel"
# directive in cupsd.conf.
ErrorLog @CUPS_LOGDIR@/error_log
# Location of fonts used by older print filters...
#FontPath @CUPS_FONTPATH@
# Location of LPD configuration
#LPDConfigFile @CUPS_DEFAULT_LPD_CONFIG_FILE@
# Location of the file logging all pages printed by the scheduler and any
# helper programs; may be the name "syslog". If not an absolute path, the value
# of ServerRoot is used as the root directory. Also see the "PageLogFormat"
# directive in cupsd.conf.
PageLog @CUPS_LOGDIR@/page_log
# Location of the file listing all of the local printers...
#Printcap @CUPS_DEFAULT_PRINTCAP@
# Format of the Printcap file...
#PrintcapFormat bsd
#PrintcapFormat plist
#PrintcapFormat solaris
# Location of all spool files...
#RequestRoot @CUPS_REQUESTS@
# Location of helper programs...
#ServerBin @CUPS_SERVERBIN@
# SSL/TLS keychain for the scheduler...
#ServerKeychain @CUPS_SERVERKEYCHAIN@
# Location of other configuration files...
#ServerRoot @CUPS_SERVERROOT@
# Location of Samba configuration file...
#SMBConfigFile @CUPS_DEFAULT_SMB_CONFIG_FILE@
# Location of scheduler state files...
#StateDir @CUPS_STATEDIR@
# Location of scheduler/helper temporary files. This directory is emptied on
# scheduler startup and cannot be one of the standard (public) temporary
# directory locations for security reasons...
#TempDir @CUPS_REQUESTS@/tmp
-369
Ver Arquivo
@@ -1,369 +0,0 @@
#
# "$Id: cupsd.conf 628 1999-08-23 15:24:48Z mike $"
#
# Sample configuration file for the Common UNIX Printing System (CUPS)
# scheduler.
#
# Copyright 1997-1999 by Easy Software Products, all rights reserved.
#
# These coded instructions, statements, and computer programs are the
# property of Easy Software Products and are protected by Federal
# copyright law. Distribution and use rights are outlined in the file
# "LICENSE.txt" which should have been included with this file. If this
# file is missing or damaged please contact Easy Software Products
# at:
#
# Attn: CUPS Licensing Information
# Easy Software Products
# 44145 Airport View Drive, Suite 204
# Hollywood, Maryland 20636-3111 USA
#
# Voice: (301) 373-9603
# EMail: cups-info@cups.org
# WWW: http://www.cups.org
#
########################################################################
# #
# This is the CUPS configuration file. If you are familiar with #
# Apache or any of the other popular web servers, we've followed the #
# same format. Any configuration variable used here has the same #
# semantics as the corresponding variable in Apache. If we need #
# different functionality then a different name is used to avoid #
# confusion... #
# #
########################################################################
#
# Ports/addresses that we listen to. The default port 631 is reserved
# for the Internet Printing Protocol (IPP) and is what we use here.
#
# You can have multiple Port/Listen lines to listen to more than one
# port or address, or to restrict access:
#
# Port 80
# Port 631
# Listen hostname
# Listen hostname:80
# Listen hostname:631
# Listen 1.2.3.4
# Listen 1.2.3.4:631
#
#Port 80
Port 631
#
# MaxClients: controls the maximum number of simultaneous clients that
# will be handled. Defaults to 100.
#
#MaxClients 100
#
# User/Group: the user and group the server runs under. Normally this
# must be lp and sys, however you can configure things for another user
# or group as needed.
#
# Note: the server must be run initially as root to support the
# default IPP port of 631. It changes users whenever an external
# program is run...
#
#User lp
#Group sys
#
# SystemGroup: the group name for "System" (printer administration)
# access. The default varies depending on the operating system, but
# will be "sys", "system", or "root" (checked for in that order.)
#
#SystemGroup sys
#
# ServerName: the hostname of your server, as advertised to the world.
# By default CUPS will use the hostname of the system.
#
# This is also the name used by clients when connecting to the local
# server, so you can use this to configure a client machine without
# a local server running.
#
#ServerName myhost.domain.com
#
# ServerAdmin: the email address to send all complaints/problems to.
# By default CUPS will use "root@hostname".
#
#ServerAdmin root@your.domain.com
#
# ServerRoot: the root directory for the scheduler.
# By default the compiled-in value.
#
#ServerRoot /var/cups
#
# AccessLog: the access log file; if this does not start with a leading /
# then it is assumed to be relative to ServerRoot. By default set to
# "logs/access_log"
#
#AccessLog logs/access_log
#
# ErrorLog: the error log file; if this does not start with a leading /
# then it is assumed to be relative to ServerRoot. By default set to
# "logs/error_log"
#
#ErrorLog logs/error_log
#
# PageLog: the page log file; if this does not start with a leading /
# then it is assumed to be relative to ServerRoot. By default set to
# "logs/page_log"
#
#PageLog logs/page_log
#
# LogLevel: controls the number of messages logged to the ErrorLog
# file and can be one of the following:
#
# debug Log everything.
# info Log all requests and state changes.
# warn Log errors and warnings.
# error Log only errors.
# none Log nothing.
#
LogLevel info
#
# MaxLogSize: controls the maximum size of each log file before they are
# rotated. Defaults to 1048576 (1MB). Set to 0 to disable log rotating.
#
#MaxLogSize 0
#
# MaxRequestSize: controls the maximum size of print files. Set to 0 to
# disable this feature (defaults to 0.)
#
#MaxRequestSize 0
#
# HostNameLookups: whether or not to do lookups on IP addresses to get a
# fully-qualified hostname. This defaults to Off for performance reasons...
#
#HostNameLookups On
#
# Timeout: the timeout before requests time out. Default is 300 seconds.
#
#Timeout 300
#
# KeepAlive: whether or not to support the Keep-Alive connection
# option. Default is on.
#
#KeepAlive On
#
# KeepAliveTimeout: the timeout before Keep-Alive connections are
# automatically closed. Default is 60 seconds.
#
#KeepAliveTimeout 60
#
# ImplicitClasses: whether or not to use implicit classes.
#
# Printer classes can be specified explicitly in the classes.conf
# file, implicitly based upon the printers available on the LAN, or
# both.
#
# When ImplicitClasses is On, printers on the LAN with the same name
# (e.g. Acme-LaserPrint-1000) will be put into a class with the same
# name. This allows you to setup multiple redundant queues on a LAN
# without a lot of administrative difficulties. If a user sends a
# job to Acme-LaserPrint-1000, the job will go to the first available
# queue.
#
# Enabled by default.
#
#ImplicitClasses On
#
# Browsing: whether or not to broadcast printer information to
# other CUPS servers. Enabled by default.
#
#Browsing On
#
# BrowseInterval: the time between browsing updates in seconds. Default
# is 30 seconds.
#
# Note that browsing information is sent whenever a printer's state changes
# as well, so this represents the maximum time between updates.
#
#BrowseInterval 30
#
# BrowseTimeout: the timeout for network printers - if we don't
# get an update within this time the printer will be removed
# from the printer list. This number definitely should not be
# less the BrowseInterval value for obvious reasons. Defaults
# to 300 seconds.
#
#BrowseTimeout 300
#
# BrowsePort: the port used for UDP broadcasts. By default this is
# the IPP port; if you change this you need to do it on all servers.
# Only one BrowsePort is recognized.
#
#BrowsePort 631
#
# BrowseAddress: specifies a broadcast address to be used. By
# default browsing information is broadcast to all active interfaces.
#
# Note: HP-UX 10.20 and earlier do not properly handle broadcast unless
# you have a Class A, B, C, or D netmask (i.e. no CIDR support).
#
#BrowseAddress x.y.z.255
#BrowseAddress x.y.255.255
#BrowseAddress x.255.255.255
#
# DocumentRoot: the root directory for HTTP documents that are served.
# By default the compiled in directory.
#
#DocumentRoot /usr/share/cups/doc
#
# DefaultLanguage: the default language if not specified by the browser.
# If not specified, the current locale is used.
#
#DefaultLanguage en
#
# DefaultCharset: the default character set to use. If not specified,
# defaults to iso-8859-1. Note that this can also be overridden in
# HTML documents...
#
#DefaultCharset iso-8859-1
#
# RIPCache: the amount of memory that each RIP should use to cache
# bitmaps. The value can be any real number followed by "k" for
# kilobytes, "m" for megabytes, "g" for gigabytes, or "t" for tiles
# (1 tile = 256x256 pixels.) Defaults to "8m" (8 megabytes).
#
#RIPCache 8m
#
# TempDir: the directory to put temporary files in. This directory must be
# writable by the user defined above! Defaults to "/var/tmp" or the value
# of the TMPDIR environment variable.
#
#TempDir /var/tmp
#
# Access permissions for each directory served by the scheduler.
# Locations are relative to DocumentRoot...
#
# AuthType: the authorization to use; currently only "Basic" authorization is
# supported.
#
# AuthClass: the authorization class; currently only "Anonymous", "User",
# "System" (valid user belonging to group SystemGroup), and "Group"
# (valid user belonging to the specified group) are supported.
#
# AuthGroupName: the group name for "Group" authorization.
#
# Order: the order of Allow/Deny processing.
#
# Allow: allows access from the specified hostname, domain, IP address, or
# network.
#
# Deny: denies access from the specified hostname, domain, IP address, or
# network.
#
# Both "Allow" and "Deny" accept the following notations for addresses:
#
# All
# None
# *.domain.com
# .domain.com
# host.domain.com
# nnn.*
# nnn.nnn.*
# nnn.nnn.nnn.*
# nnn.nnn.nnn.nnn
# nnn.nnn.nnn.nnn/mm
# nnn.nnn.nnn.nnn/mmm.mmm.mmm.mmm
#
# The host and domain address require that you enable hostname lookups
# with "HostNameLookups On" above.
#
<Location />
</Location>
<Location /printers>
#
# You may wish to limit access to printers and classes, either with Allow
# and Deny lines, or by requiring a username and password.
#
## Require a username and password
#AuthType Basic
#AuthClass User
## Restrict access to local domain
#Order Deny,Allow
#Deny From All
#Allow From .mydomain.com
</Location>
<Location /admin>
#
# You definitely will want to limit access to the administration tools.
# The default configuration requires a local connection from a user who
# is a member of the system group to do any admin tasks. You can change
# the group name using the SystemGroup directive.
#
AuthType Basic
AuthClass System
## Restrict access to local domain
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
</Location>
#
# End of "$Id: cupsd.conf 628 1999-08-23 15:24:48Z mike $".
#
-250
Ver Arquivo
@@ -1,250 +0,0 @@
#
# "$Id: cupsd.conf-personal 407 1999-06-17 20:02:43Z mike $"
#
# Scheduler configuration file for ESP Print Personal.
#
########################################################################
# #
# This is the CUPS configuration file. If you are familiar with #
# Apache or any of the other popular web servers, we've followed the #
# same format. Any configuration variable used here has the same #
# semantics as the corresponding variable in Apache. If we need #
# different functionality then a different name is used to avoid #
# confusion... #
# #
########################################################################
#
# Ports/addresses that we listen to. The default port 631 is reserved
# for the Internet Printing Protocol (IPP) and is what we use here.
#
# You can have multiple Listen lines to listen to more than one
# port:
#
# Listen 127.0.0.1:80
# Listen 127.0.0.1:631
#
# For ESP Print Personal, we can only listen on the local host...
#
#Listen 127.0.0.1:80
Listen 127.0.0.1:631
#
# User/Group: the user and group the server runs under. Normally this
# must be lp and sys, however you can configure things for another user
# or group as needed.
#
# Note: the server must be run initially as root to support the
# default IPP port of 631. It changes users whenever an external
# program is run...
#
User lp
Group sys
#
# SystemGroup: the group name for "System" (printer administration)
# access.
#
SystemGroup sys
#
# ServerName: the hostname of your server, as advertised to the world.
# By default CUPS will use the hostname of the system.
#
#ServerName myhost.domain.com
#
# ServerAdmin: the email address to send all complaints/problems to.
# By default CUPS will use "root@hostname".
#
#ServerAdmin root@your.domain.com
#
# ServerRoot: the root directory for the scheduler.
# By default the compiled-in value.
#
#ServerRoot /var/cups
#
# AccessLog: the access log file; if this does not start with a leading /
# then it is assumed to be relative to ServerRoot. By default set to
# "logs/access_log"
#
#AccessLog logs/access_log
#
# ErrorLog: the error log file; if this does not start with a leading /
# then it is assumed to be relative to ServerRoot. By default set to
# "logs/error_log"
#
#ErrorLog logs/error_log
#
# PageLog: the page log file; if this does not start with a leading /
# then it is assumed to be relative to ServerRoot. By default set to
# "logs/page_log"
#
#PageLog logs/page_log
#
# LogLevel: controls the number of messages logged to the ErrorLog
# file and can be one of the following:
#
# debug Log everything.
# info Log all requests and state changes.
# warn Log errors and warnings.
# error Log only errors.
# none Log nothing.
#
LogLevel info
#
# MaxLogSize: controls the maximum size of each log file before they are
# rotated. Defaults to 1048576 (1MB). Set to 0 to disable log rotating.
#
#MaxLogSize 0
#
# MaxRequestSize: controls the maximum size of print files. Set to 0 to
# disable this feature (defaults to 0.)
#
#MaxRequestSize 0
#
# HostNameLookups: whether or not to do lookups on IP addresses to get a
# fully-qualified hostname. This defaults to Off for performance reasons...
#
#HostNameLookups On
#
# Timeout: the timeout before requests time out. Default is 300 seconds.
#
#Timeout 300
#
# KeepAlive: whether or not to support the Keep-Alive connection
# option. Default is on.
#
#KeepAlive On
#
# KeepAliveTimeout: the timeout before Keep-Alive connections are
# automatically closed. Default is 60 seconds.
#
#KeepAliveTimeout 60
#
# Browsing: not available in ESP Print Personal.
#
Browsing Off
#
# DocumentRoot: the root directory for HTTP documents that are served.
# By default the compiled in directory.
#
#DocumentRoot /usr/share/cups/doc
#
# DefaultLanguage: the default language if not specified by the browser.
# If not specified, the current locale is used.
#
#DefaultLanguage en
#
# DefaultCharset: the default character set to use. If not specified,
# defaults to iso-8859-1. Note that this can also be overridden in
# HTML documents...
#
#DefaultCharset iso-8859-1
#
# RIPCache: the amount of memory that each RIP should use to cache
# bitmaps. The value can be any real number followed by "k" for
# kilobytes, "m" for megabytes, "g" for gigabytes, or "t" for tiles
# (1 tile = 256x256 pixels.) Defaults to "32m" (32 megabytes).
#
#RIPCache: 32m
#
# Access permissions for each directory served by the scheduler.
# Locations are relative to DocumentRoot...
#
# AuthType: the authorization to use; currently only "Basic" authorization is
# supported.
#
# AuthClass: the authorization class; currently only "Anonymous", "User",
# "System" (valid user belonging to group SystemGroup), and "Group"
# (valid user belonging to the specified group) are supported.
#
# AuthGroupName: the group name for "Group" authorization.
#
# Order: the order of Allow/Deny processing.
#
# Allow: allows access from the specified hostname, domain, IP address, or
# network.
#
# Deny: denies access from the specified hostname, domain, IP address, or
# network.
#
<Location />
</Location>
<Location /printers>
#
# You may wish to limit access to printers and classes, either with Allow
# and Deny lines, or by requiring a username and password.
#
## Require a username and password
#AuthType Basic
#AuthClass User
## Restrict access to local domain
#Order Deny,Allow
#Deny From All
#Allow From .mydomain.com
</Location>
<Location /admin>
#
# You definitely will want to limit access to the administration tools.
# The default configuration requires a local connection from a user who
# is a member of group "sys" to do any admin tasks. You can change the
# group name using the SystemGroup directive.
#
AuthType Basic
AuthClass System
## Restrict access to local domain
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
</Location>
#
# End of "$Id: cupsd.conf-personal 407 1999-06-17 20:02:43Z mike $".
#
-313
Ver Arquivo
@@ -1,313 +0,0 @@
#
# "$Id: cupsd.conf-professional 407 1999-06-17 20:02:43Z mike $"
#
# Scheduler configuration file for ESP Print Professional.
#
########################################################################
# #
# This is the CUPS configuration file. If you are familiar with #
# Apache or any of the other popular web servers, we've followed the #
# same format. Any configuration variable used here has the same #
# semantics as the corresponding variable in Apache. If we need #
# different functionality then a different name is used to avoid #
# confusion... #
# #
########################################################################
#
# Ports/addresses that we listen to. The default port 631 is reserved
# for the Internet Printing Protocol (IPP) and is what we use here.
#
# You can have multiple Port/Listen lines to listen to more than one
# port or address, or to restrict access:
#
# Port 80
# Port 631
# Listen hostname
# Listen hostname:80
# Listen hostname:631
# Listen 1.2.3.4
# Listen 1.2.3.4:631
#
#Port 80
Port 631
#
# User/Group: the user and group the server runs under. Normally this
# must be lp and sys, however you can configure things for another user
# or group as needed.
#
# Note: the server must be run initially as root to support the
# default IPP port of 631. It changes users whenever an external
# program is run...
#
User lp
Group sys
#
# SystemGroup: the group name for "System" (printer administration)
# access.
#
SystemGroup sys
#
# ServerName: the hostname of your server, as advertised to the world.
# By default CUPS will use the hostname of the system.
#
#ServerName myhost.domain.com
#
# ServerAdmin: the email address to send all complaints/problems to.
# By default CUPS will use "root@hostname".
#
#ServerAdmin root@your.domain.com
#
# ServerRoot: the root directory for the scheduler.
# By default the compiled-in value.
#
#ServerRoot /var/cups
#
# AccessLog: the access log file; if this does not start with a leading /
# then it is assumed to be relative to ServerRoot. By default set to
# "logs/access_log"
#
#AccessLog logs/access_log
#
# ErrorLog: the error log file; if this does not start with a leading /
# then it is assumed to be relative to ServerRoot. By default set to
# "logs/error_log"
#
#ErrorLog logs/error_log
#
# PageLog: the page log file; if this does not start with a leading /
# then it is assumed to be relative to ServerRoot. By default set to
# "logs/page_log"
#
#PageLog logs/page_log
#
# LogLevel: controls the number of messages logged to the ErrorLog
# file and can be one of the following:
#
# debug Log everything.
# info Log all requests and state changes.
# warn Log errors and warnings.
# error Log only errors.
# none Log nothing.
#
LogLevel info
#
# MaxLogSize: controls the maximum size of each log file before they are
# rotated. Defaults to 1048576 (1MB). Set to 0 to disable log rotating.
#
#MaxLogSize 0
#
# MaxRequestSize: controls the maximum size of print files. Set to 0 to
# disable this feature (defaults to 0.)
#
#MaxRequestSize 0
#
# HostNameLookups: whether or not to do lookups on IP addresses to get a
# fully-qualified hostname. This defaults to Off for performance reasons...
#
#HostNameLookups On
#
# Timeout: the timeout before requests time out. Default is 300 seconds.
#
#Timeout 300
#
# KeepAlive: whether or not to support the Keep-Alive connection
# option. Default is on.
#
#KeepAlive On
#
# KeepAliveTimeout: the timeout before Keep-Alive connections are
# automatically closed. Default is 60 seconds.
#
#KeepAliveTimeout 60
#
# ImplicitClasses: whether or not to use implicit classes.
#
# Printer classes can be specified explicitly in the classes.conf
# file, implicitly based upon the printers available on the LAN, or
# both.
#
# When ImplicitClasses is On, printers on the LAN with the same name
# (e.g. Acme-LaserPrint-1000) will be put into a class with the same
# name. This allows you to setup multiple redundant queues on a LAN
# without a lot of administrative difficulties. If a user sends a
# job to Acme-LaserPrint-1000, the job will go to the first available
# queue.
#
# Enabled by default.
#
#ImplicitClasses On
#
# Browsing: whether or not to broadcast printer information to
# other CUPS servers. Enabled by default.
#
#Browsing On
#
# BrowseInterval: the time between browsing updates in seconds. Default
# is 30 seconds.
#
# Note that browsing information is sent whenever a printer's state changes
# as well, so this represents the maximum time between updates.
#
#BrowseInterval 30
#
# BrowseTimeout: the timeout for network printers - if we don't
# get an update within this time the printer will be removed
# from the printer list. This number definitely should not be
# less the BrowseInterval value for obvious reasons. Defaults
# to 300 seconds.
#
#BrowseTimeout 300
#
# BrowsePort: the port used for UDP broadcasts. By default this is
# the IPP port; if you change this you need to do it on all servers.
# Only one BrowsePort is recognized.
#
#BrowsePort 631
#
# BrowseAddress: specifies a broadcast address to be used. By
# default browsing information is broadcast to all active interfaces.
#
# Note: HP-UX 10.20 and earlier do not properly handle broadcast unless
# you have a Class A, B, C, or D netmask (i.e. no CIDR support).
#
#BrowseAddress x.y.z.255
#BrowseAddress x.y.255.255
#BrowseAddress x.255.255.255
#
# DocumentRoot: the root directory for HTTP documents that are served.
# By default the compiled in directory.
#
#DocumentRoot /usr/share/cups/doc
#
# DefaultLanguage: the default language if not specified by the browser.
# If not specified, the current locale is used.
#
#DefaultLanguage en
#
# DefaultCharset: the default character set to use. If not specified,
# defaults to iso-8859-1. Note that this can also be overridden in
# HTML documents...
#
#DefaultCharset iso-8859-1
#
# RIPCache: the amount of memory that each RIP should use to cache
# bitmaps. The value can be any real number followed by "k" for
# kilobytes, "m" for megabytes, "g" for gigabytes, or "t" for tiles
# (1 tile = 256x256 pixels.) Defaults to "32m" (32 megabytes).
#
#RIPCache: 32m
#
# Access permissions for each directory served by the scheduler.
# Locations are relative to DocumentRoot...
#
# AuthType: the authorization to use; currently only "Basic" authorization is
# supported.
#
# AuthClass: the authorization class; currently only "Anonymous", "User",
# "System" (valid user belonging to group SystemGroup), and "Group"
# (valid user belonging to the specified group) are supported.
#
# AuthGroupName: the group name for "Group" authorization.
#
# Order: the order of Allow/Deny processing.
#
# Allow: allows access from the specified hostname, domain, IP address, or
# network.
#
# Deny: denies access from the specified hostname, domain, IP address, or
# network.
#
<Location />
</Location>
<Location /printers>
#
# You may wish to limit access to printers and classes, either with Allow
# and Deny lines, or by requiring a username and password.
#
## Require a username and password
#AuthType Basic
#AuthClass User
## Restrict access to local domain
#Order Deny,Allow
#Deny From All
#Allow From .mydomain.com
</Location>
<Location /admin>
#
# You definitely will want to limit access to the administration tools.
# The default configuration requires a local connection from a user who
# is a member of group "sys" to do any admin tasks. You can change the
# group name using the SystemGroup directive.
#
AuthType Basic
AuthClass System
## Restrict access to local domain
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
</Location>
#
# End of "$Id: cupsd.conf-professional 407 1999-06-17 20:02:43Z mike $".
#
+182
Ver Arquivo
@@ -0,0 +1,182 @@
#
# Configuration file for the CUPS scheduler. See "man cupsd.conf" for a
# complete description of this file.
#
# Log general information in error_log - change "@CUPS_LOG_LEVEL@" to "debug"
# for troubleshooting...
LogLevel @CUPS_LOG_LEVEL@
@CUPS_PAGE_LOG_FORMAT@
# Only listen for connections from the local machine.
Listen localhost:@DEFAULT_IPP_PORT@
@CUPS_LISTEN_DOMAINSOCKET@
# Show shared printers on the local network.
Browsing On
BrowseLocalProtocols @CUPS_BROWSE_LOCAL_PROTOCOLS@
# Default authentication type, when authentication is required...
DefaultAuthType Basic
# Web interface setting...
WebInterface @CUPS_WEBIF@
# Restrict access to the server...
<Location />
Order allow,deny
</Location>
# Restrict access to the admin pages...
<Location /admin>
Order allow,deny
</Location>
# Restrict access to configuration files...
<Location /admin/conf>
AuthType Default
Require user @SYSTEM
Order allow,deny
</Location>
# Restrict access to log files...
<Location /admin/log>
AuthType Default
Require user @SYSTEM
Order allow,deny
</Location>
# Set the default printer/job policies...
<Policy default>
# Job/subscription privacy...
JobPrivateAccess default
JobPrivateValues default
SubscriptionPrivateAccess default
SubscriptionPrivateValues default
# Job-related operations must be done by the owner or an administrator...
<Limit Create-Job Print-Job Print-URI Validate-Job>
Order deny,allow
</Limit>
<Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job Cancel-My-Jobs Close-Job CUPS-Move-Job CUPS-Get-Document>
Require user @OWNER @SYSTEM
Order deny,allow
</Limit>
# All administration operations require an administrator to authenticate...
<Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default CUPS-Get-Devices>
AuthType Default
Require user @SYSTEM
Order deny,allow
</Limit>
# All printer operations require a printer operator to authenticate...
<Limit Pause-Printer Resume-Printer Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After Cancel-Jobs CUPS-Accept-Jobs CUPS-Reject-Jobs>
AuthType Default
Require user @CUPS_DEFAULT_PRINTOPERATOR_AUTH@
Order deny,allow
</Limit>
# Only the owner or an administrator can cancel or authenticate a job...
<Limit Cancel-Job CUPS-Authenticate-Job>
Require user @OWNER @CUPS_DEFAULT_PRINTOPERATOR_AUTH@
Order deny,allow
</Limit>
<Limit All>
Order deny,allow
</Limit>
</Policy>
# Set the authenticated printer/job policies...
<Policy authenticated>
# Job/subscription privacy...
JobPrivateAccess default
JobPrivateValues default
SubscriptionPrivateAccess default
SubscriptionPrivateValues default
# Job-related operations must be done by the owner or an administrator...
<Limit Create-Job Print-Job Print-URI Validate-Job>
AuthType Default
Order deny,allow
</Limit>
<Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job Cancel-My-Jobs Close-Job CUPS-Move-Job CUPS-Get-Document>
AuthType Default
Require user @OWNER @SYSTEM
Order deny,allow
</Limit>
# All administration operations require an administrator to authenticate...
<Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default>
AuthType Default
Require user @SYSTEM
Order deny,allow
</Limit>
# All printer operations require a printer operator to authenticate...
<Limit Pause-Printer Resume-Printer Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After Cancel-Jobs CUPS-Accept-Jobs CUPS-Reject-Jobs>
AuthType Default
Require user @CUPS_DEFAULT_PRINTOPERATOR_AUTH@
Order deny,allow
</Limit>
# Only the owner or an administrator can cancel or authenticate a job...
<Limit Cancel-Job CUPS-Authenticate-Job>
AuthType Default
Require user @OWNER @CUPS_DEFAULT_PRINTOPERATOR_AUTH@
Order deny,allow
</Limit>
<Limit All>
Order deny,allow
</Limit>
</Policy>
# Set the kerberized printer/job policies...
<Policy kerberos>
# Job/subscription privacy...
JobPrivateAccess default
JobPrivateValues default
SubscriptionPrivateAccess default
SubscriptionPrivateValues default
# Job-related operations must be done by the owner or an administrator...
<Limit Create-Job Print-Job Print-URI Validate-Job>
AuthType Negotiate
Order deny,allow
</Limit>
<Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job Cancel-My-Jobs Close-Job CUPS-Move-Job CUPS-Get-Document>
AuthType Negotiate
Require user @OWNER @SYSTEM
Order deny,allow
</Limit>
# All administration operations require an administrator to authenticate...
<Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default>
AuthType Default
Require user @SYSTEM
Order deny,allow
</Limit>
# All printer operations require a printer operator to authenticate...
<Limit Pause-Printer Resume-Printer Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After Cancel-Jobs CUPS-Accept-Jobs CUPS-Reject-Jobs>
AuthType Default
Require user @CUPS_DEFAULT_PRINTOPERATOR_AUTH@
Order deny,allow
</Limit>
# Only the owner or an administrator can cancel or authenticate a job...
<Limit Cancel-Job CUPS-Authenticate-Job>
AuthType Negotiate
Require user @OWNER @CUPS_DEFAULT_PRINTOPERATOR_AUTH@
Order deny,allow
</Limit>
<Limit All>
Order deny,allow
</Limit>
</Policy>
-62
Ver Arquivo
@@ -1,62 +0,0 @@
#
# "$Id: mime.convs 575 1999-07-30 13:57:16Z mike $"
#
# MIME converts file for the Common UNIX Printing System (CUPS).
#
# Copyright 1997-1999 by Easy Software Products.
#
# These coded instructions, statements, and computer programs are the
# property of Easy Software Products and are protected by Federal
# copyright law. Distribution and use rights are outlined in the file
# "LICENSE.txt" which should have been included with this file. If this
# file is missing or damaged please contact Easy Software Products
# at:
#
# Attn: CUPS Licensing Information
# Easy Software Products
# 44141 Airport View Drive, Suite 204
# Hollywood, Maryland 20636-3111 USA
#
# Voice: (301) 373-9603
# EMail: cups-info@cups.org
# WWW: http://www.cups.org
#
########################################################################
#
# Format of Lines:
#
# source/type destination/type cost filter
#
# General Notes:
#
# Currently the "cost" field is not used (all filters are assumed to
# be equally costly in terms of speed/memory). Also, a filter program
# *must* accept the standard command-line arguments (job-id, user, title,
# copies,options,[filename or stdin]) or this won't work.
#
########################################################################
#
# PostScript filters
#
#application/msword application/postscript 50 mswordtops
application/pdf application/postscript 50 pdftops
application/postscript application/vnd.cups-postscript 50 pstops
application/vnd.hp-HPGL application/postscript 50 hpgltops
image/* application/vnd.cups-postscript 50 imagetops
#text/html application/postscript 50 htmltops
text/plain application/postscript 50 texttops
########################################################################
#
# Raster filters...
#
image/* application/vnd.cups-raster 50 imagetoraster
application/vnd.cups-postscript application/vnd.cups-raster 50 pstoraster
#
# End of "$Id: mime.convs 575 1999-07-30 13:57:16Z mike $".
#
+55
Ver Arquivo
@@ -0,0 +1,55 @@
#
# DO NOT EDIT THIS FILE, AS IT IS OVERWRITTEN WHEN YOU INSTALL NEW
# VERSIONS OF CUPS. Instead, create a "local.convs" file that
# reflects your local configuration changes.
#
# Base MIME conversions file for CUPS.
#
# Copyright © 2007-2016 by Apple Inc.
# Copyright © 1997-2007 by Easy Software Products.
#
# Licensed under Apache License v2.0. See the file "LICENSE" for more
# information.
#
########################################################################
#
# Format of Lines:
#
# source/type destination/type cost filter
#
# General Notes:
#
# The "cost" field is used to find the least costly filters to run
# when converting a job file to a printable format.
#
# All filters *must* accept the standard command-line arguments
# (job-id, user, title, copies, options, [filename or stdin]) to
# work with CUPS.
#
########################################################################
#
# PostScript filters
#
application/postscript application/vnd.cups-postscript 66 pstops
########################################################################
#
# Raster filters...
#
# PWG Raster filter for IPP Everywhere...
application/vnd.cups-raster image/pwg-raster 100 rastertopwg
application/vnd.cups-raster image/urf 100 rastertopwg
########################################################################
#
# Raw filter...
#
# Uncomment the following filter to allow printing of arbitrary files
# without the -oraw option.
#
@DEFAULT_RAW_PRINTING@application/octet-stream application/vnd.cups-raw 0 -
+90 -44
Ver Arquivo
@@ -1,25 +1,15 @@
#
# "$Id: mime.types 575 1999-07-30 13:57:16Z mike $"
# Base MIME types file for CUPS.
#
# MIME types file for the Common UNIX Printing System (CUPS).
# DO NOT EDIT THIS FILE, AS IT IS OVERWRITTEN WHEN YOU INSTALL NEW
# VERSIONS OF CUPS. Instead, create a "local.types" file that
# reflects your local configuration changes.
#
# Copyright 1997-1999 by Easy Software Products.
# Copyright © 2007-2017 by Apple Inc.
# Copyright © 1997-2007 by Easy Software Products.
#
# These coded instructions, statements, and computer programs are the
# property of Easy Software Products and are protected by Federal
# copyright law. Distribution and use rights are outlined in the file
# "LICENSE.txt" which should have been included with this file. If this
# file is missing or damaged please contact Easy Software Products
# at:
#
# Attn: CUPS Licensing Information
# Easy Software Products
# 44141 Airport View Drive, Suite 204
# Hollywood, Maryland 20636-3111 USA
#
# Voice: (301) 373-9603
# EMail: cups-info@cups.org
# WWW: http://www.cups.org
# Licensed under Apache License v2.0. See the file "LICENSE" for more
# information.
#
########################################################################
@@ -38,28 +28,36 @@
# extension Pattern match on "*.extension"
# ascii(offset,length) True if bytes are valid printable ASCII
# (CR, NL, TAB, BS, 32-126)
# priority(number) Sets priority of type (0=lowest,
# 100=default, 200=highest)
# printable(offset,length) True if bytes are printable 8-bit chars
# (CR, NL, TAB, BS, 32-126, 160-254)
# (CR, NL, TAB, BS, 32-126, 128-254)
# regex(offset,"regex") True if bytes match regular expression
# string(offset,"string") True if bytes are identical to string
# istring(offset,"string") True if bytes are identical to
# case-insensitive string
# char(offset,value) True if byte is identical
# short(offset,value) True if 16-bit integer is identical
# int(offset,value) True if 32-bit integer is identical
# locale("string") True if current locale matches string
# contains(offset,range,"string") True if the range contains the string
#
# General Notes:
#
# MIME type names are case-insensitive. Internally they are converted
# to lowercase. Multiple occurrences of a type will cause the provided
# rules to be appended to the existing definition. Type names are sorted
# in ascending order, so if two types use the same rules to resolve a type
# (e.g. doc extension for two types), the returned type will be the first
# type in the sorted list.
# rules to be appended to the existing definition. If two types use the same
# rules to resolve a type and have the same priority, e.g. "doc" extension for
# "text/bar" and "text/foo", the returned type will be the first type as
# sorted in alphanumerically ascending order without regard to case. Thus,
# the "text/bar" type will match the "doc" extension first unless the
# "text/foo" type has specified a higher priority.
#
# The "printable" rule differs from the "ascii" rule in that it also
# accepts 8-bit characters in the range 160-254.
# accepts 8-bit characters in the range 128-255.
#
# String constants must be surrounded by "" if they contain whitespace.
# To instead binary data into a string, use the <hex> notation.
# To insert binary data into a string, use the <hex> notation.
#
########################################################################
@@ -67,12 +65,17 @@
# Application-generated files...
#
application/msword doc string(0,<D0CF11E0A1B11AE1>)
application/pdf pdf string(0,%PDF)
application/postscript ai eps ps string(0,%!) string(0,<04>%!)
application/vnd.hp-HPGL hpgl string(0,<1b>%) string(0,<1b>&)\
string(0,<1b>E) string(0,<201b>)\
string(0,BP;) string(0,IN;) string(0,DF;)
#application/msword doc string(0,<D0CF11E0A1B11AE1>)
application/pdf pdf regex(0,^[\n\r]*%PDF)
application/postscript ai eps ps string(0,%!) string(0,<04>%!) \
contains(0,128,<1B>%-12345X) + \
(contains(0,4096,"LANGUAGE=POSTSCRIPT") \
contains(0,4096,"LANGUAGE = Postscript") \
contains(0,4096,"LANGUAGE = PostScript") \
contains(0,4096,"LANGUAGE = POSTSCRIPT") \
(contains(0,4096,<0a>%!) + \
!contains(0,4096,"ENTER LANGUAGE")))
########################################################################
#
@@ -81,8 +84,13 @@ application/vnd.hp-HPGL hpgl string(0,<1b>%) string(0,<1b>&)\
image/gif gif string(0,GIF87a) string(0,GIF89a)
image/png png string(0,<89>PNG)
image/jpeg jpeg jpg jpe string(6,JFIF)
image/tiff tiff tif string(0,MM) string(0,II)
image/jpeg jpeg jpg jpe string(0,<FFD8FF>) +\
(char(3,0xe0) char(3,0xe1) char(3,0xe2) char(3,0xe3)\
char(3,0xe4) char(3,0xe5) char(3,0xe6) char(3,0xe7)\
char(3,0xe8) char(3,0xe9) char(3,0xea) char(3,0xeb)\
char(3,0xec) char(3,0xed) char(3,0xee) char(3,0xef))
image/pwg-raster string(0,"RaS2") + string(4,PwgRaster<00>) priority(150)
image/tiff tiff tif string(0,MM<002A>) string(0,II<2A00>)
image/x-photocd pcd string(2048,PCD_IPI)
image/x-portable-anymap pnm
image/x-portable-bitmap pbm string(0,P1) string(0,P4)
@@ -91,32 +99,70 @@ image/x-portable-pixmap ppm string(0,P3) string(0,P6)
image/x-sgi-rgb rgb sgi bw icon short(0,474)
image/x-xbitmap xbm
image/x-xpixmap xpm ascii(0,1024) + string(3,"XPM")
image/x-xwindowdump xwd
image/x-sun-raster ras
#image/x-xwindowdump xwd string(4,<00000007>)
image/x-sun-raster ras string(0,<59a66a95>)
# TODO: Add Alias, SoftImage, GIMP??? files
#image/x-alias pix
#image/x-softimage
#image/x-gimp-xcf xcf xcf.gz
#image/fpx fpx
image/urf urf string(0,UNIRAST<00>)
image/x-alias pix short(8,8) short(8,24)
image/x-bitmap bmp string(0,BM) + !printable(2,14)
image/x-icon ico
########################################################################
#
# Text files...
#
application/x-cshell csh printable(0,1024) + string(0,#!) +\
(contains(2,80,/csh) contains(2,80,/tcsh))
application/x-perl pl printable(0,1024) + string(0,#!) +\
contains(2,80,/perl)
application/x-shell sh printable(0,1024) + string(0,#!) +\
(contains(2,80,/bash) contains(2,80,/ksh)\
contains(2,80,/sh) contains(2,80,/zsh))
application/x-csource c cxx cpp cc C h hpp \
printable(0,1024) + ! css + \
(string(0,/*) string(0,//) \
string(0,#include) contains(0,1024,<0a>#include) \
string(0,#define) contains(0,1024,<0a>#define))
text/html html htm printable(0,1024) +\
(string(0,"<HTML>") string(0,"<!DOCTYPE"))
(istring(0,"<HTML>") istring(0,"<!DOCTYPE"))
text/plain txt printable(0,1024)
text/css css
########################################################################
#
# RSS feed type...
#
application/rss+xml rss
########################################################################
#
# CUPS-specific types...
#
application/vnd.cups-postscript string(0,<1B>%-12345X)
application/vnd.cups-raster string(0,"RaSt") string(0,"tSaR")
application/vnd.cups-raw
application/vnd.cups-banner string(0,'#CUPS-BANNER')
application/vnd.cups-command string(0,'#CUPS-COMMAND')
application/vnd.cups-pdf
application/vnd.cups-postscript
application/vnd.cups-ppd ppd string(0,"*PPD-Adobe:")
application/vnd.cups-raster string(0,"RaSt") string(0,"tSaR") \
(string(0,"RaS2") + !string(4,PwgRaster<00>)) string(0,"2SaR") \
string(0,"RaS3") string(0,"3SaR")
application/vnd.cups-raw (string(0,<1B>E) + !string(2,<1B>%0B)) \
string(0,<1B>@) \
(contains(0,128,<1B>%-12345X) + \
(contains(0,4096,"LANGUAGE=PCL") \
contains(0,4096,"LANGUAGE = PCL")))
########################################################################
#
# End of "$Id: mime.types 575 1999-07-30 13:57:16Z mike $".
# Raw print file support...
#
# Comment the following type to prevent raw file printing.
#
application/octet-stream
+3
Ver Arquivo
@@ -0,0 +1,3 @@
@include common-auth
@include common-account
@include common-session
+5
Ver Arquivo
@@ -0,0 +1,5 @@
# cups: auth account password session
auth required pam_opendirectory.so
account required pam_permit.so
password required pam_deny.so
session required pam_permit.so
+7
Ver Arquivo
@@ -0,0 +1,7 @@
# cups: auth account password session
auth sufficient pam_securityserver.so
auth sufficient pam_unix.so
auth required pam_deny.so
account required pam_permit.so
password required pam_deny.so
session required pam_permit.so
+2
Ver Arquivo
@@ -0,0 +1,2 @@
auth required @PAMMODAUTH@
account required @PAMMOD@
-89
Ver Arquivo
@@ -1,89 +0,0 @@
#
# "$Id: printers.conf 334 1999-05-17 18:11:26Z mike $"
#
# Sample printer configuration file for the Common UNIX Printing System
# (CUPS) scheduler.
#
# Copyright 1997-1999 by Easy Software Products, all rights reserved.
#
# These coded instructions, statements, and computer programs are the
# property of Easy Software Products and are protected by Federal
# copyright law. Distribution and use rights are outlined in the file
# "LICENSE.txt" which should have been included with this file. If this
# file is missing or damaged please contact Easy Software Products
# at:
#
# Attn: CUPS Licensing Information
# Easy Software Products
# 44145 Airport View Drive, Suite 204
# Hollywood, Maryland 20636-3111 USA
#
# Voice: (301) 373-9603
# EMail: cups-info@cups.org
# WWW: http://www.cups.org
#
########################################################################
# #
# This is a sample printer configuration file. This file is included #
# from the main configuration file (cups.conf) and lists all of the #
# printers known to the system. #
# #
########################################################################
#
# Each printer starts with a <Printer name> definition. Printer names
# can be up to 128 characters in length and are *not* case sensitive.
#
# One <DefaultPrinter name> entry can appear in this file; if you don't
# define a default destination, the first printer or class becomes the
# default.
#
#<Printer sample>
#
# Info: the description for the printer.
#
#Info Acme LaserPrint 1000
#
# MoreInfo: a URL for more information on the printer.
#
#MoreInfo http://www.acme.com/lp1000.html
#
# Location: the location of the printer.
#
#Location Room 101 in the activities building
#
# DeviceURI: the device URI for this printer.
#
#DeviceURI parallel:/dev/plp
#DeviceURI serial:/dev/ttyd1?baud=38400+size=8+parity=none+flow=soft
#DeviceURI scsi:/dev/scsi/sc1d6l0
#DeviceURI socket://hostname:port
#DeviceURI tftp://hostname/path
#DeviceURI ftp://hostname/path
#DeviceURI http://hostname[:port]/path
#DeviceURI ipp://hostname/path
#DeviceURI smb://hostname/printer
#
# State: sets the initial state of the printer. Can be one of the
# following:
#
# Idle - Printer is available to accept new jobs.
# Stopped - Printer is disabled but accepting new jobs.
#
#State Idle
#</Printer>
#
# End of "$Id: printers.conf 334 1999-05-17 18:11:26Z mike $".
#
+7
Ver Arquivo
@@ -0,0 +1,7 @@
#
# SNMP configuration file for CUPS. See "man cups-snmp.conf" for a complete
# description of this file.
#
@CUPS_SNMP_ADDRESS@
@CUPS_SNMP_COMMUNITY@
+469
Ver Arquivo
@@ -0,0 +1,469 @@
dnl
dnl Common configuration stuff for CUPS.
dnl
dnl Copyright © 2007-2018 by Apple Inc.
dnl Copyright © 1997-2007 by Easy Software Products, all rights reserved.
dnl
dnl Licensed under Apache License v2.0. See the file "LICENSE" for more
dnl information.
dnl
dnl Set the name of the config header file...
AC_CONFIG_HEADER(config.h)
dnl Version number information...
CUPS_VERSION="AC_PACKAGE_VERSION"
CUPS_REVISION=""
CUPS_BUILD="cups-$CUPS_VERSION"
AC_ARG_WITH(cups_build, [ --with-cups-build set "cups-config --build" string ],
CUPS_BUILD="$withval")
AC_SUBST(CUPS_VERSION)
AC_SUBST(CUPS_REVISION)
AC_SUBST(CUPS_BUILD)
AC_DEFINE_UNQUOTED(CUPS_SVERSION, "AC_PACKAGE_NAME v$CUPS_VERSION$CUPS_REVISION")
AC_DEFINE_UNQUOTED(CUPS_MINIMAL, "AC_PACKAGE_NAME/$CUPS_VERSION$CUPS_REVISION")
dnl Default compiler flags...
CFLAGS="${CFLAGS:=}"
CPPFLAGS="${CPPFLAGS:=}"
CXXFLAGS="${CXXFLAGS:=}"
LDFLAGS="${LDFLAGS:=}"
dnl Checks for programs...
AC_PROG_AWK
AC_PROG_CC(clang cc gcc)
AC_PROG_CPP
AC_PROG_CXX(clang++ c++ g++)
AC_PROG_RANLIB
AC_PATH_PROG(AR,ar)
AC_PATH_PROG(CHMOD,chmod)
AC_PATH_PROG(GZIP,gzip)
AC_PATH_PROG(LD,ld)
AC_PATH_PROG(LN,ln)
AC_PATH_PROG(MKDIR,mkdir)
AC_PATH_PROG(MV,mv)
AC_PATH_PROG(RM,rm)
AC_PATH_PROG(RMDIR,rmdir)
AC_PATH_PROG(SED,sed)
AC_PATH_PROG(XDGOPEN,xdg-open)
if test "x$XDGOPEN" = x; then
CUPS_HTMLVIEW="htmlview"
else
CUPS_HTMLVIEW="$XDGOPEN"
fi
AC_SUBST(CUPS_HTMLVIEW)
AC_MSG_CHECKING(for install-sh script)
INSTALL="`pwd`/install-sh"
AC_SUBST(INSTALL)
AC_MSG_RESULT(using $INSTALL)
if test "x$AR" = x; then
AC_MSG_ERROR([Unable to find required library archive command.])
fi
if test "x$CC" = x; then
AC_MSG_ERROR([Unable to find required C compiler command.])
fi
dnl Static library option...
INSTALLSTATIC=""
AC_ARG_ENABLE(static, [ --enable-static install static libraries])
if test x$enable_static = xyes; then
echo Installing static libraries...
INSTALLSTATIC="installstatic"
fi
AC_SUBST(INSTALLSTATIC)
dnl Check for pkg-config, which is used for some other tests later on...
AC_PATH_TOOL(PKGCONFIG, pkg-config)
dnl Check for libraries...
AC_SEARCH_LIBS(abs, m, AC_DEFINE(HAVE_ABS))
AC_SEARCH_LIBS(crypt, crypt)
AC_SEARCH_LIBS(fmod, m)
AC_SEARCH_LIBS(getspent, sec gen)
LIBMALLOC=""
AC_ARG_ENABLE(mallinfo, [ --enable-mallinfo build with malloc debug logging])
if test x$enable_mallinfo = xyes; then
SAVELIBS="$LIBS"
LIBS=""
AC_SEARCH_LIBS(mallinfo, malloc, AC_DEFINE(HAVE_MALLINFO))
LIBMALLOC="$LIBS"
LIBS="$SAVELIBS"
fi
AC_SUBST(LIBMALLOC)
dnl Check for libpaper support...
AC_ARG_ENABLE(libpaper, [ --enable-libpaper build with libpaper support])
if test x$enable_libpaper = xyes; then
AC_CHECK_LIB(paper,systempapername,
AC_DEFINE(HAVE_LIBPAPER)
LIBPAPER="-lpaper",
LIBPAPER="")
else
LIBPAPER=""
fi
AC_SUBST(LIBPAPER)
dnl Checks for header files.
AC_HEADER_STDC
AC_CHECK_HEADER(stdlib.h,AC_DEFINE(HAVE_STDLIB_H))
AC_CHECK_HEADER(crypt.h,AC_DEFINE(HAVE_CRYPT_H))
AC_CHECK_HEADER(langinfo.h,AC_DEFINE(HAVE_LANGINFO_H))
AC_CHECK_HEADER(malloc.h,AC_DEFINE(HAVE_MALLOC_H))
AC_CHECK_HEADER(shadow.h,AC_DEFINE(HAVE_SHADOW_H))
AC_CHECK_HEADER(stdint.h,AC_DEFINE(HAVE_STDINT_H))
AC_CHECK_HEADER(string.h,AC_DEFINE(HAVE_STRING_H))
AC_CHECK_HEADER(strings.h,AC_DEFINE(HAVE_STRINGS_H))
AC_CHECK_HEADER(bstring.h,AC_DEFINE(HAVE_BSTRING_H))
AC_CHECK_HEADER(sys/ioctl.h,AC_DEFINE(HAVE_SYS_IOCTL_H))
AC_CHECK_HEADER(sys/param.h,AC_DEFINE(HAVE_SYS_PARAM_H))
AC_CHECK_HEADER(sys/ucred.h,AC_DEFINE(HAVE_SYS_UCRED_H))
dnl Checks for iconv.h and iconv_open
AC_CHECK_HEADER(iconv.h,
SAVELIBS="$LIBS"
LIBS=""
AC_SEARCH_LIBS(iconv_open,iconv,
AC_DEFINE(HAVE_ICONV_H)
SAVELIBS="$SAVELIBS $LIBS")
AC_SEARCH_LIBS(libiconv_open,iconv,
AC_DEFINE(HAVE_ICONV_H)
SAVELIBS="$SAVELIBS $LIBS")
LIBS="$SAVELIBS")
dnl Checks for Mini-XML (www.minixml.org)...
LIBMXML=""
AC_CHECK_HEADER(mxml.h,
SAVELIBS="$LIBS"
AC_SEARCH_LIBS(mmxlNewElement,mxml,
AC_DEFINE(HAVE_MXML_H)
LIBMXML="-lmxml")
LIBS="$SAVELIBS")
AC_SUBST(LIBMXML)
dnl Checks for statfs and its many headers...
AC_CHECK_HEADER(sys/mount.h,AC_DEFINE(HAVE_SYS_MOUNT_H))
AC_CHECK_HEADER(sys/statfs.h,AC_DEFINE(HAVE_SYS_STATFS_H))
AC_CHECK_HEADER(sys/statvfs.h,AC_DEFINE(HAVE_SYS_STATVFS_H))
AC_CHECK_HEADER(sys/vfs.h,AC_DEFINE(HAVE_SYS_VFS_H))
AC_CHECK_FUNCS(statfs statvfs)
dnl Checks for string functions.
AC_CHECK_FUNCS(strdup strlcat strlcpy)
if test "$host_os_name" = "hp-ux" -a "$host_os_version" = "1020"; then
echo Forcing snprintf emulation for HP-UX.
else
AC_CHECK_FUNCS(snprintf vsnprintf)
fi
dnl Check for random number functions...
AC_CHECK_FUNCS(random lrand48 arc4random)
dnl Check for geteuid function.
AC_CHECK_FUNCS(geteuid)
dnl Check for setpgid function.
AC_CHECK_FUNCS(setpgid)
dnl Check for vsyslog function.
AC_CHECK_FUNCS(vsyslog)
dnl Checks for signal functions.
case "$host_os_name" in
linux* | gnu*)
# Do not use sigset on Linux or GNU HURD
;;
*)
# Use sigset on other platforms, if available
AC_CHECK_FUNCS(sigset)
;;
esac
AC_CHECK_FUNCS(sigaction)
dnl Checks for wait functions.
AC_CHECK_FUNCS(waitpid wait3)
dnl Check for posix_spawn
AC_CHECK_FUNCS(posix_spawn)
dnl Check for getgrouplist
AC_CHECK_FUNCS(getgrouplist)
dnl See if the tm structure has the tm_gmtoff member...
AC_MSG_CHECKING(for tm_gmtoff member in tm structure)
AC_TRY_COMPILE([#include <time.h>],[struct tm t;
int o = t.tm_gmtoff;],
AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_TM_GMTOFF),
AC_MSG_RESULT(no))
dnl See if the stat structure has the st_gen member...
AC_MSG_CHECKING(for st_gen member in stat structure)
AC_TRY_COMPILE([#include <sys/stat.h>],[struct stat t;
int o = t.st_gen;],
AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_ST_GEN),
AC_MSG_RESULT(no))
dnl See if we have the removefile(3) function for securely removing files
AC_CHECK_FUNCS(removefile)
dnl See if we have libusb...
AC_ARG_ENABLE(libusb, [ --enable-libusb use libusb for USB printing])
LIBUSB=""
USBQUIRKS=""
AC_SUBST(LIBUSB)
AC_SUBST(USBQUIRKS)
if test "x$PKGCONFIG" != x; then
if test x$enable_libusb != xno -a $host_os_name != darwin; then
AC_MSG_CHECKING(for libusb-1.0)
if $PKGCONFIG --exists libusb-1.0; then
AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_LIBUSB)
CFLAGS="$CFLAGS `$PKGCONFIG --cflags libusb-1.0`"
LIBUSB="`$PKGCONFIG --libs libusb-1.0`"
USBQUIRKS="\$(DATADIR)/usb"
else
AC_MSG_RESULT(no)
if test x$enable_libusb = xyes; then
AC_MSG_ERROR(libusb required for --enable-libusb.)
fi
fi
fi
elif test x$enable_libusb = xyes; then
AC_MSG_ERROR(Need pkg-config to enable libusb support.)
fi
dnl See if we have libwrap for TCP wrappers support...
AC_ARG_ENABLE(tcp_wrappers, [ --enable-tcp-wrappers use libwrap for TCP wrappers support])
LIBWRAP=""
AC_SUBST(LIBWRAP)
if test x$enable_tcp_wrappers = xyes; then
AC_CHECK_LIB(wrap, hosts_access,[
AC_CHECK_HEADER(tcpd.h,
AC_DEFINE(HAVE_TCPD_H)
LIBWRAP="-lwrap")])
fi
dnl ZLIB
INSTALL_GZIP=""
LIBZ=""
AC_CHECK_HEADER(zlib.h,
AC_CHECK_LIB(z, gzgets,
AC_DEFINE(HAVE_LIBZ)
LIBZ="-lz"
LIBS="$LIBS -lz"
AC_CHECK_LIB(z, inflateCopy, AC_DEFINE(HAVE_INFLATECOPY))
if test "x$GZIP" != z; then
INSTALL_GZIP="-z"
fi))
AC_SUBST(INSTALL_GZIP)
AC_SUBST(LIBZ)
dnl Flags for "ar" command...
case $host_os_name in
darwin* | *bsd*)
ARFLAGS="-rcv"
;;
*)
ARFLAGS="crvs"
;;
esac
AC_SUBST(ARFLAGS)
dnl Prep libraries specifically for cupsd and backends...
BACKLIBS=""
SERVERLIBS=""
AC_SUBST(BACKLIBS)
AC_SUBST(SERVERLIBS)
dnl See if we have POSIX ACL support...
SAVELIBS="$LIBS"
LIBS=""
AC_ARG_ENABLE(acl, [ --enable-acl build with POSIX ACL support])
if test "x$enable_acl" != xno; then
AC_SEARCH_LIBS(acl_init, acl, AC_DEFINE(HAVE_ACL_INIT))
SERVERLIBS="$SERVERLIBS $LIBS"
fi
LIBS="$SAVELIBS"
dnl Check for DBUS support
AC_ARG_ENABLE(dbus, [ --disable-dbus build without DBUS support])
AC_ARG_WITH(dbusdir, [ --with-dbusdir set DBUS configuration directory ],
DBUSDIR="$withval")
DBUSDIR=""
DBUS_NOTIFIER=""
DBUS_NOTIFIERLIBS=""
if test "x$enable_dbus" != xno -a "x$PKGCONFIG" != x -a "x$host_os_name" != xdarwin; then
AC_MSG_CHECKING(for DBUS)
if $PKGCONFIG --exists dbus-1; then
AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_DBUS)
CFLAGS="$CFLAGS `$PKGCONFIG --cflags dbus-1` -DDBUS_API_SUBJECT_TO_CHANGE"
SERVERLIBS="$SERVERLIBS `$PKGCONFIG --libs dbus-1`"
DBUS_NOTIFIER="dbus"
DBUS_NOTIFIERLIBS="`$PKGCONFIG --libs dbus-1`"
SAVELIBS="$LIBS"
LIBS="$LIBS $DBUS_NOTIFIERLIBS"
AC_CHECK_FUNC(dbus_message_iter_init_append,
AC_DEFINE(HAVE_DBUS_MESSAGE_ITER_INIT_APPEND))
AC_CHECK_FUNC(dbus_threads_init,
AC_DEFINE(HAVE_DBUS_THREADS_INIT))
LIBS="$SAVELIBS"
if test -d /etc/dbus-1; then
DBUSDIR="/etc/dbus-1"
fi
else
AC_MSG_RESULT(no)
fi
fi
AC_SUBST(DBUSDIR)
AC_SUBST(DBUS_NOTIFIER)
AC_SUBST(DBUS_NOTIFIERLIBS)
dnl Extra platform-specific libraries...
CUPS_DEFAULT_PRINTOPERATOR_AUTH="@SYSTEM"
CUPS_DEFAULT_SYSTEM_AUTHKEY=""
CUPS_SYSTEM_AUTHKEY=""
INSTALLXPC=""
case $host_os_name in
darwin*)
BACKLIBS="$BACKLIBS -framework IOKit"
SERVERLIBS="$SERVERLIBS -framework IOKit -weak_framework ApplicationServices"
LIBS="-framework SystemConfiguration -framework CoreFoundation -framework Security $LIBS"
dnl Check for framework headers...
AC_CHECK_HEADER(ApplicationServices/ApplicationServices.h,AC_DEFINE(HAVE_APPLICATIONSERVICES_H))
AC_CHECK_HEADER(CoreFoundation/CoreFoundation.h,AC_DEFINE(HAVE_COREFOUNDATION_H))
AC_CHECK_HEADER(CoreFoundation/CFPriv.h,AC_DEFINE(HAVE_CFPRIV_H))
AC_CHECK_HEADER(CoreFoundation/CFBundlePriv.h,AC_DEFINE(HAVE_CFBUNDLEPRIV_H))
dnl Check for dynamic store function...
AC_CHECK_FUNCS(SCDynamicStoreCopyComputerName)
dnl Check for the new membership functions in MacOSX 10.4...
AC_CHECK_HEADER(membership.h,AC_DEFINE(HAVE_MEMBERSHIP_H))
AC_CHECK_HEADER(membershipPriv.h,AC_DEFINE(HAVE_MEMBERSHIPPRIV_H))
AC_CHECK_FUNCS(mbr_uid_to_uuid)
dnl Need <dlfcn.h> header...
AC_CHECK_HEADER(dlfcn.h,AC_DEFINE(HAVE_DLFCN_H))
dnl Check for notify_post support
AC_CHECK_HEADER(notify.h,AC_DEFINE(HAVE_NOTIFY_H))
AC_CHECK_FUNCS(notify_post)
dnl Check for Authorization Services support
AC_ARG_WITH(adminkey, [ --with-adminkey set the default SystemAuthKey value],
default_adminkey="$withval",
default_adminkey="default")
AC_ARG_WITH(operkey, [ --with-operkey set the default operator @AUTHKEY value],
default_operkey="$withval",
default_operkey="default")
AC_CHECK_HEADER(Security/Authorization.h, [
AC_DEFINE(HAVE_AUTHORIZATION_H)
if test "x$default_adminkey" != xdefault; then
CUPS_SYSTEM_AUTHKEY="SystemGroupAuthKey $default_adminkey"
CUPS_DEFAULT_SYSTEM_AUTHKEY="$default_adminkey"
else
CUPS_SYSTEM_AUTHKEY="SystemGroupAuthKey system.print.admin"
CUPS_DEFAULT_SYSTEM_AUTHKEY="system.print.admin"
fi
if test "x$default_operkey" != xdefault; then
CUPS_DEFAULT_PRINTOPERATOR_AUTH="@AUTHKEY($default_operkey) @admin @lpadmin"
else
CUPS_DEFAULT_PRINTOPERATOR_AUTH="@AUTHKEY(system.print.operator) @admin @lpadmin"
fi])
AC_CHECK_HEADER(Security/SecBasePriv.h,AC_DEFINE(HAVE_SECBASEPRIV_H))
dnl Check for sandbox/Seatbelt support
if test $host_os_version -ge 100; then
AC_CHECK_HEADER(sandbox.h,AC_DEFINE(HAVE_SANDBOX_H))
fi
if test $host_os_version -ge 110 -a $host_os_version -lt 120; then
# Broken public headers in 10.7.x...
AC_MSG_CHECKING(for sandbox/private.h presence)
if test -f /usr/local/include/sandbox/private.h; then
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
AC_MSG_ERROR(Run 'sudo mkdir -p /usr/local/include/sandbox' and 'sudo touch /usr/local/include/sandbox/private.h' to build CUPS.)
fi
fi
dnl Check for XPC support
AC_CHECK_HEADER(xpc/xpc.h,
AC_DEFINE(HAVE_XPC)
INSTALLXPC="install-xpc")
AC_CHECK_HEADER(xpc/private.h,
AC_DEFINE(HAVE_XPC_PRIVATE_H))
;;
esac
AC_SUBST(CUPS_DEFAULT_PRINTOPERATOR_AUTH)
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_PRINTOPERATOR_AUTH, "$CUPS_DEFAULT_PRINTOPERATOR_AUTH")
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_SYSTEM_AUTHKEY, "$CUPS_DEFAULT_SYSTEM_AUTHKEY")
AC_SUBST(CUPS_SYSTEM_AUTHKEY)
AC_SUBST(INSTALLXPC)
dnl Check for build components
COMPONENTS="all"
AC_ARG_WITH(components, [ --with-components set components to build:
- "all" (default) builds everything
- "core" builds libcups and ipptool
- "libcups" builds just libcups
- "libcupslite" builds just libcups without driver support],
COMPONENTS="$withval")
cupsimagebase="cupsimage"
LIBCUPSOBJS="\$(COREOBJS) \$(DRIVEROBJS)"
case "$COMPONENTS" in
all)
BUILDDIRS="test filter backend berkeley cgi-bin monitor notifier ppdc scheduler systemv conf data desktop locale man doc examples templates"
;;
core)
BUILDDIRS="test locale"
;;
libcups)
BUILDDIRS="locale"
cupsimagebase=""
;;
libcupslite)
BUILDDIRS="locale"
cupsimagebase=""
LIBCUPSOBJS="\$(COREOBJS)"
;;
*)
AC_MSG_ERROR([Bad build component "$COMPONENT" specified!])
;;
esac
AC_SUBST(BUILDDIRS)
AC_SUBST(LIBCUPSOBJS)
+225
Ver Arquivo
@@ -0,0 +1,225 @@
dnl
dnl Compiler stuff for CUPS.
dnl
dnl Copyright 2007-2018 by Apple Inc.
dnl Copyright 1997-2007 by Easy Software Products, all rights reserved.
dnl
dnl Licensed under Apache License v2.0. See the file "LICENSE" for more information.
dnl
dnl Clear the debugging and non-shared library options unless the user asks
dnl for them...
INSTALL_STRIP=""
AC_SUBST(INSTALL_STRIP)
AC_ARG_WITH(optim, [ --with-optim set optimization flags ],
OPTIM="$withval",
OPTIM="")
AC_SUBST(OPTIM)
AC_ARG_ENABLE(debug, [ --enable-debug build with debugging symbols])
AC_ARG_ENABLE(debug_guards, [ --enable-debug-guards build with memory allocation guards])
AC_ARG_ENABLE(debug_printfs, [ --enable-debug-printfs build with CUPS_DEBUG_LOG support])
AC_ARG_ENABLE(unit_tests, [ --enable-unit-tests build and run unit tests])
dnl For debugging, keep symbols, otherwise strip them...
if test x$enable_debug = xyes -a "x$OPTIM" = x; then
OPTIM="-g"
else
INSTALL_STRIP="-s"
fi
dnl Debug printfs can slow things down, so provide a separate option for that
if test x$enable_debug_printfs = xyes; then
CFLAGS="$CFLAGS -DDEBUG"
CXXFLAGS="$CXXFLAGS -DDEBUG"
fi
dnl Debug guards use an extra 4 bytes for some structures like strings in the
dnl string pool, so provide a separate option for that
if test x$enable_debug_guards = xyes; then
CFLAGS="$CFLAGS -DDEBUG_GUARDS"
CXXFLAGS="$CXXFLAGS -DDEBUG_GUARDS"
fi
dnl Unit tests take up time during a compile...
if test x$enable_unit_tests = xyes; then
if test "$build" != "$host"; then
AC_MSG_ERROR([Sorry, cannot build unit tests when cross-compiling.])
fi
UNITTESTS="unittests"
else
UNITTESTS=""
fi
AC_SUBST(UNITTESTS)
dnl Setup general architecture flags...
AC_ARG_WITH(archflags, [ --with-archflags set default architecture flags ])
AC_ARG_WITH(ldarchflags, [ --with-ldarchflags set program architecture flags ])
if test -z "$with_archflags"; then
ARCHFLAGS=""
else
ARCHFLAGS="$with_archflags"
fi
if test -z "$with_ldarchflags"; then
if test "$host_os_name" = darwin; then
# Only create Intel programs by default
LDARCHFLAGS="`echo $ARCHFLAGS | sed -e '1,$s/-arch ppc64//'`"
else
LDARCHFLAGS="$ARCHFLAGS"
fi
else
LDARCHFLAGS="$with_ldarchflags"
fi
AC_SUBST(ARCHFLAGS)
AC_SUBST(LDARCHFLAGS)
dnl Read-only data/program support on Linux...
AC_ARG_ENABLE(relro, [ --enable-relro build with the GCC relro option])
dnl Clang/GCC address sanitizer...
AC_ARG_ENABLE(sanitizer, [ --enable-sanitizer build with AddressSanitizer])
dnl Update compiler options...
CXXLIBS="${CXXLIBS:=}"
AC_SUBST(CXXLIBS)
PIEFLAGS=""
AC_SUBST(PIEFLAGS)
RELROFLAGS=""
AC_SUBST(RELROFLAGS)
WARNING_OPTIONS=""
AC_SUBST(WARNING_OPTIONS)
if test -n "$GCC"; then
# Add GCC-specific compiler options...
# Address sanitizer is a useful tool to use when developing/debugging
# code but adds about 2x overhead...
if test x$enable_sanitizer = xyes; then
# Use -fsanitize=address with debugging...
OPTIM="$OPTIM -g -fsanitize=address"
else
# Otherwise use the Fortify enhancements to catch any unbounded
# string operations...
CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=2"
CXXFLAGS="$CXXFLAGS -D_FORTIFY_SOURCE=2"
fi
# Default optimization options...
if test -z "$OPTIM"; then
# Default to optimize-for-size and debug
OPTIM="-Os -g"
fi
# Generate position-independent code as needed...
if test $PICFLAG = 1; then
OPTIM="-fPIC $OPTIM"
fi
# The -fstack-protector option is available with some versions of
# GCC and adds "stack canaries" which detect when the return address
# has been overwritten, preventing many types of exploit attacks.
AC_MSG_CHECKING(whether compiler supports -fstack-protector)
OLDCFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -fstack-protector"
AC_TRY_LINK(,,
if test "x$LSB_BUILD" = xy; then
# Can't use stack-protector with LSB binaries...
OPTIM="$OPTIM -fno-stack-protector"
else
OPTIM="$OPTIM -fstack-protector"
fi
AC_MSG_RESULT(yes),
AC_MSG_RESULT(no))
CFLAGS="$OLDCFLAGS"
if test "x$LSB_BUILD" != xy; then
# The -fPIE option is available with some versions of GCC and
# adds randomization of addresses, which avoids another class of
# exploits that depend on a fixed address for common functions.
#
# Not available to LSB binaries...
AC_MSG_CHECKING(whether compiler supports -fPIE)
OLDCFLAGS="$CFLAGS"
case "$host_os_name" in
darwin*)
CFLAGS="$CFLAGS -fPIE -Wl,-pie"
AC_TRY_COMPILE(,,[
PIEFLAGS="-fPIE -Wl,-pie"
AC_MSG_RESULT(yes)],
AC_MSG_RESULT(no))
;;
*)
CFLAGS="$CFLAGS -fPIE -pie"
AC_TRY_COMPILE(,,[
PIEFLAGS="-fPIE -pie"
AC_MSG_RESULT(yes)],
AC_MSG_RESULT(no))
;;
esac
CFLAGS="$OLDCFLAGS"
fi
# Add useful warning options for tracking down problems...
WARNING_OPTIONS="-Wall -Wno-format-y2k -Wunused -Wno-unused-result -Wsign-conversion"
# Test GCC version for certain warning flags since -Werror
# doesn't trigger...
gccversion=`$CC --version | head -1 | awk '{print $NF}'`
case "$gccversion" in
7.* | 8.*)
WARNING_OPTIONS="$WARNING_OPTIONS -Wno-format-truncation -Wno-tautological-compare"
;;
esac
# Additional warning options for development testing...
if test -d .git; then
WARNING_OPTIONS="-Werror -Wno-error=deprecated-declarations $WARNING_OPTIONS"
fi
else
# Add vendor-specific compiler options...
case $host_os_name in
sunos*)
# Solaris
if test -z "$OPTIM"; then
OPTIM="-xO2"
fi
if test $PICFLAG = 1; then
OPTIM="-KPIC $OPTIM"
fi
;;
*)
# Running some other operating system; inform the user
# they should contribute the necessary options via
# Github...
echo "Building CUPS with default compiler optimizations; contact the CUPS developers on Github"
echo "(https://github.com/apple/cups/issues) with the uname and compiler options needed for"
echo "your platform, or set the CFLAGS and LDFLAGS environment variables before running"
echo "configure."
;;
esac
fi
# Add general compiler options per platform...
case $host_os_name in
linux*)
# glibc 2.8 and higher breaks peer credentials unless you
# define _GNU_SOURCE...
OPTIM="$OPTIM -D_GNU_SOURCE"
# The -z relro option is provided by the Linux linker command to
# make relocatable data read-only.
if test x$enable_relro = xyes; then
RELROFLAGS="-Wl,-z,relro,-z,now"
fi
;;
esac
+439
Ver Arquivo
@@ -0,0 +1,439 @@
dnl
dnl Default cupsd configuration settings for CUPS.
dnl
dnl Copyright © 2007-2018 by Apple Inc.
dnl Copyright © 2006-2007 by Easy Software Products, all rights reserved.
dnl
dnl Licensed under Apache License v2.0. See the file "LICENSE" for more
dnl information.
dnl
dnl Default languages...
LANGUAGES="`ls -1 locale/cups_*.po 2>/dev/null | sed -e '1,$s/locale\/cups_//' -e '1,$s/\.po//' | tr '\n' ' '`"
AC_ARG_WITH(languages, [ --with-languages set installed languages, default=all ],[
case "$withval" in
none | no) LANGUAGES="" ;;
all) ;;
*) LANGUAGES="$withval" ;;
esac])
AC_SUBST(LANGUAGES)
dnl macOS bundle-based localization support
AC_ARG_WITH(bundledir, [ --with-bundledir set localization bundle directory ],
CUPS_BUNDLEDIR="$withval",[
if test "x$host_os_name" = xdarwin -a $host_os_version -ge 100; then
CUPS_BUNDLEDIR="/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/PrintCore.framework/Versions/A"
LANGUAGES=""
else
CUPS_BUNDLEDIR=""
fi])
AC_SUBST(CUPS_BUNDLEDIR)
if test "x$CUPS_BUNDLEDIR" != x; then
AC_DEFINE_UNQUOTED(CUPS_BUNDLEDIR, "$CUPS_BUNDLEDIR")
fi
AC_ARG_WITH(bundlelang, [ --with-bundlelang set localization bundle base language (English or en) ],
cups_bundlelang="$withval",[
if test $host_os_version -ge 190; then
cups_bundlelang="en"
else
cups_bundlelang="English"
fi])
if test "x$cups_bundlelang" != x -a "x$CUPS_BUNDLEDIR" != x; then
CUPS_RESOURCEDIR="$CUPS_BUNDLEDIR/Resources/$cups_bundlelang.lproj"
else
CUPS_RESOURCEDIR=""
fi
AC_SUBST(CUPS_RESOURCEDIR)
dnl Default executable file permissions
AC_ARG_WITH(exe_file_perm, [ --with-exe-file-perm set default executable permissions value, default=0555],
CUPS_EXE_FILE_PERM="$withval",
[case "$host_os_name" in
linux* | gnu*)
CUPS_EXE_FILE_PERM="755"
;;
*)
CUPS_EXE_FILE_PERM="555"
;;
esac])
AC_SUBST(CUPS_EXE_FILE_PERM)
dnl Default ConfigFilePerm
AC_ARG_WITH(config_file_perm, [ --with-config-file-perm set default ConfigFilePerm value, default=0640],
CUPS_CONFIG_FILE_PERM="$withval",
[if test "x$host_os_name" = xdarwin; then
CUPS_CONFIG_FILE_PERM="644"
else
CUPS_CONFIG_FILE_PERM="640"
fi])
AC_SUBST(CUPS_CONFIG_FILE_PERM)
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_CONFIG_FILE_PERM, 0$CUPS_CONFIG_FILE_PERM)
dnl Default permissions for cupsd
AC_ARG_WITH(cupsd_file_perm, [ --with-cupsd-file-perm set default cupsd permissions, default=0500],
CUPS_CUPSD_FILE_PERM="$withval",
[case "$host_os_name" in
linux* | gnu*)
CUPS_CUPSD_FILE_PERM="700"
;;
*)
CUPS_CUPSD_FILE_PERM="500"
;;
esac])
AC_SUBST(CUPS_CUPSD_FILE_PERM)
dnl Default LogFilePerm
AC_ARG_WITH(log_file_perm, [ --with-log-file-perm set default LogFilePerm value, default=0644],
CUPS_LOG_FILE_PERM="$withval",
CUPS_LOG_FILE_PERM="644")
AC_SUBST(CUPS_LOG_FILE_PERM)
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_LOG_FILE_PERM, 0$CUPS_LOG_FILE_PERM)
dnl Default FatalErrors
AC_ARG_WITH(fatal_errors, [ --with-fatal-errors set default FatalErrors value, default=config],
CUPS_FATAL_ERRORS="$withval",
CUPS_FATAL_ERRORS="config")
AC_SUBST(CUPS_FATAL_ERRORS)
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_FATAL_ERRORS, "$CUPS_FATAL_ERRORS")
dnl Default LogLevel
AC_ARG_WITH(log_level, [ --with-log-level set default LogLevel value, default=warn],
CUPS_LOG_LEVEL="$withval",
CUPS_LOG_LEVEL="warn")
AC_SUBST(CUPS_LOG_LEVEL)
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_LOG_LEVEL, "$CUPS_LOG_LEVEL")
dnl Default AccessLogLevel
AC_ARG_WITH(access_log_level, [ --with-access-log-level set default AccessLogLevel value, default=none],
CUPS_ACCESS_LOG_LEVEL="$withval",
CUPS_ACCESS_LOG_LEVEL="none")
AC_SUBST(CUPS_ACCESS_LOG_LEVEL)
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_ACCESS_LOG_LEVEL, "$CUPS_ACCESS_LOG_LEVEL")
dnl Default PageLogFormat
AC_ARG_ENABLE(page_logging, [ --enable-page-logging enable page_log by default])
if test "x$enable_page_logging" = xyes; then
CUPS_PAGE_LOG_FORMAT=""
else
CUPS_PAGE_LOG_FORMAT="PageLogFormat"
fi
AC_SUBST(CUPS_PAGE_LOG_FORMAT)
dnl Default Browsing
AC_ARG_ENABLE(browsing, [ --disable-browsing disable Browsing by default])
if test "x$enable_browsing" = xno; then
CUPS_BROWSING="No"
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_BROWSING, 0)
else
CUPS_BROWSING="Yes"
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_BROWSING, 1)
fi
AC_SUBST(CUPS_BROWSING)
dnl Default BrowseLocalProtocols
AC_ARG_WITH(local_protocols, [ --with-local-protocols set default BrowseLocalProtocols, default=""],
default_local_protocols="$withval",
default_local_protocols="default")
if test x$with_local_protocols != xno; then
if test "x$default_local_protocols" = "xdefault"; then
if test "x$DNSSD_BACKEND" != "x"; then
CUPS_BROWSE_LOCAL_PROTOCOLS="dnssd"
else
CUPS_BROWSE_LOCAL_PROTOCOLS=""
fi
else
CUPS_BROWSE_LOCAL_PROTOCOLS="$default_local_protocols"
fi
else
CUPS_BROWSE_LOCAL_PROTOCOLS=""
fi
AC_SUBST(CUPS_BROWSE_LOCAL_PROTOCOLS)
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_BROWSE_LOCAL_PROTOCOLS,
"$CUPS_BROWSE_LOCAL_PROTOCOLS")
dnl Default DefaultShared
AC_ARG_ENABLE(default_shared, [ --disable-default-shared
disable DefaultShared by default])
if test "x$enable_default_shared" = xno; then
CUPS_DEFAULT_SHARED="No"
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_DEFAULT_SHARED, 0)
else
CUPS_DEFAULT_SHARED="Yes"
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_DEFAULT_SHARED, 1)
fi
AC_SUBST(CUPS_DEFAULT_SHARED)
dnl Determine the correct username and group for this OS...
AC_ARG_WITH(cups_user, [ --with-cups-user set default user for CUPS],
CUPS_USER="$withval",
AC_MSG_CHECKING(for default print user)
if test x$host_os_name = xdarwin; then
if test x`id -u _lp 2>/dev/null` = x; then
CUPS_USER="lp";
else
CUPS_USER="_lp";
fi
AC_MSG_RESULT($CUPS_USER)
elif test -f /etc/passwd; then
CUPS_USER=""
for user in lp lpd guest daemon nobody; do
if test "`grep \^${user}: /etc/passwd`" != ""; then
CUPS_USER="$user"
AC_MSG_RESULT($user)
break;
fi
done
if test x$CUPS_USER = x; then
CUPS_USER="nobody"
AC_MSG_RESULT(not found, using "$CUPS_USER")
fi
else
CUPS_USER="nobody"
AC_MSG_RESULT(no password file, using "$CUPS_USER")
fi)
if test "x$CUPS_USER" = "xroot" -o "x$CUPS_USER" = "x0"; then
AC_MSG_ERROR([The default user for CUPS cannot be root!])
fi
AC_ARG_WITH(cups_group, [ --with-cups-group set default group for CUPS],
CUPS_GROUP="$withval",
AC_MSG_CHECKING(for default print group)
if test x$host_os_name = xdarwin; then
if test x`id -g _lp 2>/dev/null` = x; then
CUPS_GROUP="lp";
else
CUPS_GROUP="_lp";
fi
AC_MSG_RESULT($CUPS_GROUP)
elif test -f /etc/group; then
GROUP_LIST="_lp lp nobody"
CUPS_GROUP=""
for group in $GROUP_LIST; do
if test "`grep \^${group}: /etc/group`" != ""; then
CUPS_GROUP="$group"
AC_MSG_RESULT($group)
break;
fi
done
if test x$CUPS_GROUP = x; then
CUPS_GROUP="nobody"
AC_MSG_RESULT(not found, using "$CUPS_GROUP")
fi
else
CUPS_GROUP="nobody"
AC_MSG_RESULT(no group file, using "$CUPS_GROUP")
fi)
if test "x$CUPS_GROUP" = "xroot" -o "x$CUPS_GROUP" = "xwheel" -o "x$CUPS_GROUP" = "x0"; then
AC_MSG_ERROR([The default group for CUPS cannot be root!])
fi
AC_ARG_WITH(system_groups, [ --with-system-groups set default system groups for CUPS],
CUPS_SYSTEM_GROUPS="$withval",
if test x$host_os_name = xdarwin; then
CUPS_SYSTEM_GROUPS="admin"
else
AC_MSG_CHECKING(for default system groups)
if test -f /etc/group; then
CUPS_SYSTEM_GROUPS=""
GROUP_LIST="lpadmin sys system root"
for group in $GROUP_LIST; do
if test "`grep \^${group}: /etc/group`" != ""; then
if test "x$CUPS_SYSTEM_GROUPS" = x; then
CUPS_SYSTEM_GROUPS="$group"
else
CUPS_SYSTEM_GROUPS="$CUPS_SYSTEM_GROUPS $group"
fi
fi
done
if test "x$CUPS_SYSTEM_GROUPS" = x; then
CUPS_SYSTEM_GROUPS="$GROUP_LIST"
AC_MSG_RESULT(no groups found, using "$CUPS_SYSTEM_GROUPS")
else
AC_MSG_RESULT("$CUPS_SYSTEM_GROUPS")
fi
else
CUPS_SYSTEM_GROUPS="$GROUP_LIST"
AC_MSG_RESULT(no group file, using "$CUPS_SYSTEM_GROUPS")
fi
fi)
CUPS_PRIMARY_SYSTEM_GROUP="`echo $CUPS_SYSTEM_GROUPS | awk '{print $1}'`"
for group in $CUPS_SYSTEM_GROUPS; do
if test "x$CUPS_GROUP" = "x$group"; then
AC_MSG_ERROR([The default system groups cannot contain the default CUPS group!])
fi
done
AC_SUBST(CUPS_USER)
AC_SUBST(CUPS_GROUP)
AC_SUBST(CUPS_SYSTEM_GROUPS)
AC_SUBST(CUPS_PRIMARY_SYSTEM_GROUP)
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_USER, "$CUPS_USER")
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_GROUP, "$CUPS_GROUP")
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_SYSTEM_GROUPS, "$CUPS_SYSTEM_GROUPS")
dnl Default printcap file...
AC_ARG_WITH(printcap, [ --with-printcap set default printcap file],
default_printcap="$withval",
default_printcap="default")
if test x$default_printcap != xno; then
if test "x$default_printcap" = "xdefault"; then
case $host_os_name in
darwin*)
if test $host_os_version -ge 90; then
CUPS_DEFAULT_PRINTCAP="/Library/Preferences/org.cups.printers.plist"
else
CUPS_DEFAULT_PRINTCAP="/etc/printcap"
fi
;;
sunos*)
CUPS_DEFAULT_PRINTCAP="/etc/printers.conf"
;;
*)
CUPS_DEFAULT_PRINTCAP="/etc/printcap"
;;
esac
else
CUPS_DEFAULT_PRINTCAP="$default_printcap"
fi
else
CUPS_DEFAULT_PRINTCAP=""
fi
AC_SUBST(CUPS_DEFAULT_PRINTCAP)
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_PRINTCAP, "$CUPS_DEFAULT_PRINTCAP")
dnl Default LPD config file...
AC_ARG_WITH(lpdconfigfile, [ --with-lpdconfigfile set default LPDConfigFile URI],
default_lpdconfigfile="$withval",
default_lpdconfigfile="default")
if test x$default_lpdconfigfile != xno; then
if test "x$default_lpdconfigfile" = "xdefault"; then
case $host_os_name in
darwin*)
CUPS_DEFAULT_LPD_CONFIG_FILE="launchd:///System/Library/LaunchDaemons/org.cups.cups-lpd.plist"
;;
*)
if test "x$XINETD" != x; then
CUPS_DEFAULT_LPD_CONFIG_FILE="xinetd://$XINETD/cups-lpd"
else
CUPS_DEFAULT_LPD_CONFIG_FILE=""
fi
;;
esac
else
CUPS_DEFAULT_LPD_CONFIG_FILE="$default_lpdconfigfile"
fi
else
CUPS_DEFAULT_LPD_CONFIG_FILE=""
fi
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_LPD_CONFIG_FILE, "$CUPS_DEFAULT_LPD_CONFIG_FILE")
AC_SUBST(CUPS_DEFAULT_LPD_CONFIG_FILE)
dnl Default SMB config file...
AC_ARG_WITH(smbconfigfile, [ --with-smbconfigfile set default SMBConfigFile URI],
default_smbconfigfile="$withval",
default_smbconfigfile="default")
if test x$default_smbconfigfile != xno; then
if test "x$default_smbconfigfile" = "xdefault"; then
if test -f /etc/smb.conf; then
CUPS_DEFAULT_SMB_CONFIG_FILE="samba:///etc/smb.conf"
else
CUPS_DEFAULT_SMB_CONFIG_FILE=""
fi
else
CUPS_DEFAULT_SMB_CONFIG_FILE="$default_smbconfigfile"
fi
else
CUPS_DEFAULT_SMB_CONFIG_FILE=""
fi
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_SMB_CONFIG_FILE, "$CUPS_DEFAULT_SMB_CONFIG_FILE")
AC_SUBST(CUPS_DEFAULT_SMB_CONFIG_FILE)
dnl Default MaxCopies value...
AC_ARG_WITH(max-copies, [ --with-max-copies set default max copies value, default=9999 ],
CUPS_MAX_COPIES="$withval",
CUPS_MAX_COPIES="9999")
AC_SUBST(CUPS_MAX_COPIES)
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_MAX_COPIES, $CUPS_MAX_COPIES)
dnl Default raw printing state
AC_ARG_ENABLE(raw_printing, [ --disable-raw-printing do not allow raw printing by default])
if test "x$enable_raw_printing" != xno; then
DEFAULT_RAW_PRINTING=""
else
DEFAULT_RAW_PRINTING="#"
fi
AC_SUBST(DEFAULT_RAW_PRINTING)
dnl Default SNMP options...
AC_ARG_WITH(snmp-address, [ --with-snmp-address set SNMP query address, default=auto ],
if test "x$withval" = x; then
CUPS_SNMP_ADDRESS=""
else
CUPS_SNMP_ADDRESS="Address $withval"
fi,
if test "x$host_os_name" = xdarwin; then
CUPS_SNMP_ADDRESS=""
else
CUPS_SNMP_ADDRESS="Address @LOCAL"
fi)
AC_ARG_WITH(snmp-community, [ --with-snmp-community set SNMP community, default=public ],
CUPS_SNMP_COMMUNITY="Community $withval",
CUPS_SNMP_COMMUNITY="Community public")
AC_SUBST(CUPS_SNMP_ADDRESS)
AC_SUBST(CUPS_SNMP_COMMUNITY)
dnl New default port definition for IPP...
AC_ARG_WITH(ipp-port, [ --with-ipp-port set port number for IPP, default=631 ],
DEFAULT_IPP_PORT="$withval",
DEFAULT_IPP_PORT="631")
AC_SUBST(DEFAULT_IPP_PORT)
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_IPP_PORT,$DEFAULT_IPP_PORT)
dnl Web interface...
AC_ARG_ENABLE(webif, [ --enable-webif enable the web interface by default, default=no for macOS])
case "x$enable_webif" in
xno)
CUPS_WEBIF=No
CUPS_DEFAULT_WEBIF=0
;;
xyes)
CUPS_WEBIF=Yes
CUPS_DEFAULT_WEBIF=1
;;
*)
if test $host_os_name = darwin; then
CUPS_WEBIF=No
CUPS_DEFAULT_WEBIF=0
else
CUPS_WEBIF=Yes
CUPS_DEFAULT_WEBIF=1
fi
;;
esac
AC_SUBST(CUPS_WEBIF)
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_WEBIF, $CUPS_DEFAULT_WEBIF)
+299
Ver Arquivo
@@ -0,0 +1,299 @@
dnl
dnl Directory stuff for CUPS.
dnl
dnl Copyright 2007-2017 by Apple Inc.
dnl Copyright 1997-2007 by Easy Software Products, all rights reserved.
dnl
dnl Licensed under Apache License v2.0. See the file "LICENSE" for more information.
dnl
AC_PREFIX_DEFAULT(/)
dnl Fix "prefix" variable if it hasn't been specified...
if test "$prefix" = "NONE"; then
prefix="/"
fi
dnl Fix "exec_prefix" variable if it hasn't been specified...
if test "$exec_prefix" = "NONE"; then
if test "$prefix" = "/"; then
exec_prefix="/usr"
else
exec_prefix="$prefix"
fi
fi
dnl Fix "bindir" variable...
if test "$bindir" = "\${exec_prefix}/bin"; then
bindir="$exec_prefix/bin"
fi
AC_DEFINE_UNQUOTED(CUPS_BINDIR, "$bindir")
dnl Fix "sbindir" variable...
if test "$sbindir" = "\${exec_prefix}/sbin"; then
sbindir="$exec_prefix/sbin"
fi
AC_DEFINE_UNQUOTED(CUPS_SBINDIR, "$sbindir")
dnl Fix "sharedstatedir" variable if it hasn't been specified...
if test "$sharedstatedir" = "\${prefix}/com" -a "$prefix" = "/"; then
sharedstatedir="/usr/com"
fi
dnl Fix "datarootdir" variable if it hasn't been specified...
if test "$datarootdir" = "\${prefix}/share"; then
if test "$prefix" = "/"; then
datarootdir="/usr/share"
else
datarootdir="$prefix/share"
fi
fi
dnl Fix "datadir" variable if it hasn't been specified...
if test "$datadir" = "\${prefix}/share"; then
if test "$prefix" = "/"; then
datadir="/usr/share"
else
datadir="$prefix/share"
fi
elif test "$datadir" = "\${datarootdir}"; then
datadir="$datarootdir"
fi
dnl Fix "includedir" variable if it hasn't been specified...
if test "$includedir" = "\${prefix}/include" -a "$prefix" = "/"; then
includedir="/usr/include"
fi
dnl Fix "localstatedir" variable if it hasn't been specified...
if test "$localstatedir" = "\${prefix}/var"; then
if test "$prefix" = "/"; then
if test "$host_os_name" = darwin; then
localstatedir="/private/var"
else
localstatedir="/var"
fi
else
localstatedir="$prefix/var"
fi
fi
dnl Fix "sysconfdir" variable if it hasn't been specified...
if test "$sysconfdir" = "\${prefix}/etc"; then
if test "$prefix" = "/"; then
if test "$host_os_name" = darwin; then
sysconfdir="/private/etc"
else
sysconfdir="/etc"
fi
else
sysconfdir="$prefix/etc"
fi
fi
dnl Fix "libdir" variable...
if test "$libdir" = "\${exec_prefix}/lib"; then
case "$host_os_name" in
linux*)
if test -d /usr/lib64 -a ! -d /usr/lib64/fakeroot; then
libdir="$exec_prefix/lib64"
fi
;;
esac
fi
dnl Setup private include directory...
AC_ARG_WITH(privateinclude, [ --with-privateinclude set path for private include files, default=none],privateinclude="$withval",privateinclude="")
if test "x$privateinclude" != x -a "x$privateinclude" != xnone; then
PRIVATEINCLUDE="$privateinclude/cups"
else
privateinclude=""
PRIVATEINCLUDE=""
fi
AC_SUBST(privateinclude)
AC_SUBST(PRIVATEINCLUDE)
dnl LPD sharing support...
AC_ARG_WITH(lpdconfig, [ --with-lpdconfig set URI for LPD config file],
LPDCONFIG="$withval", LPDCONFIG="")
if test "x$LPDCONFIG" = x; then
if test -f /System/Library/LaunchDaemons/org.cups.cups-lpd.plist; then
LPDCONFIG="launchd:///System/Library/LaunchDaemons/org.cups.cups-lpd.plist"
elif test "x$XINETD" != x; then
LPDCONFIG="xinetd://$XINETD/cups-lpd"
fi
fi
if test "x$LPDCONFIG" = xoff; then
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_LPD_CONFIG, "")
else
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_LPD_CONFIG, "$LPDCONFIG")
fi
dnl SMB sharing support...
AC_ARG_WITH(smbconfig, [ --with-smbconfig set URI for Samba config file],
SMBCONFIG="$withval", SMBCONFIG="")
if test "x$SMBCONFIG" = x; then
if test -f /System/Library/LaunchDaemons/smbd.plist; then
SMBCONFIG="launchd:///System/Library/LaunchDaemons/smbd.plist"
else
for dir in /etc /etc/samba /usr/local/etc; do
if test -f $dir/smb.conf; then
SMBCONFIG="samba://$dir/smb.conf"
break
fi
done
fi
fi
if test "x$SMBCONFIG" = xoff; then
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_SMB_CONFIG, "")
else
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_SMB_CONFIG, "$SMBCONFIG")
fi
dnl Setup default locations...
# Cache data...
AC_ARG_WITH(cachedir, [ --with-cachedir set path for cache files],cachedir="$withval",cachedir="")
if test x$cachedir = x; then
if test "x$host_os_name" = xdarwin; then
CUPS_CACHEDIR="$localstatedir/spool/cups/cache"
else
CUPS_CACHEDIR="$localstatedir/cache/cups"
fi
else
CUPS_CACHEDIR="$cachedir"
fi
AC_DEFINE_UNQUOTED(CUPS_CACHEDIR, "$CUPS_CACHEDIR")
AC_SUBST(CUPS_CACHEDIR)
# Data files
CUPS_DATADIR="$datadir/cups"
AC_DEFINE_UNQUOTED(CUPS_DATADIR, "$datadir/cups")
AC_SUBST(CUPS_DATADIR)
# Icon directory
AC_ARG_WITH(icondir, [ --with-icondir set path for application icons],icondir="$withval",icondir="")
if test "x$icondir" = x -a -d /usr/share/icons; then
ICONDIR="/usr/share/icons"
else
ICONDIR="$icondir"
fi
AC_SUBST(ICONDIR)
# Menu directory
AC_ARG_WITH(menudir, [ --with-menudir set path for application menus],menudir="$withval",menudir="")
if test "x$menudir" = x -a -d /usr/share/applications; then
MENUDIR="/usr/share/applications"
else
MENUDIR="$menudir"
fi
AC_SUBST(MENUDIR)
# Documentation files
AC_ARG_WITH(docdir, [ --with-docdir set path for documentation],docdir="$withval",docdir="")
if test x$docdir = x; then
CUPS_DOCROOT="$datadir/doc/cups"
docdir="$datadir/doc/cups"
else
CUPS_DOCROOT="$docdir"
fi
AC_DEFINE_UNQUOTED(CUPS_DOCROOT, "$docdir")
AC_SUBST(CUPS_DOCROOT)
# Fonts
AC_ARG_WITH(fontpath, [ --with-fontpath set font path for pstoraster],fontpath="$withval",fontpath="")
if test "x$fontpath" = "x"; then
CUPS_FONTPATH="$datadir/cups/fonts"
else
CUPS_FONTPATH="$fontpath"
fi
AC_SUBST(CUPS_FONTPATH)
AC_DEFINE_UNQUOTED(CUPS_FONTPATH, "$CUPS_FONTPATH")
# Locale data
if test "$localedir" = "\${datarootdir}/locale"; then
case "$host_os_name" in
linux* | gnu* | *bsd* | darwin*)
CUPS_LOCALEDIR="$datarootdir/locale"
;;
*)
# This is the standard System V location...
CUPS_LOCALEDIR="$exec_prefix/lib/locale"
;;
esac
else
CUPS_LOCALEDIR="$localedir"
fi
AC_DEFINE_UNQUOTED(CUPS_LOCALEDIR, "$CUPS_LOCALEDIR")
AC_SUBST(CUPS_LOCALEDIR)
# Log files...
AC_ARG_WITH(logdir, [ --with-logdir set path for log files],logdir="$withval",logdir="")
if test x$logdir = x; then
CUPS_LOGDIR="$localstatedir/log/cups"
AC_DEFINE_UNQUOTED(CUPS_LOGDIR, "$localstatedir/log/cups")
else
CUPS_LOGDIR="$logdir"
fi
AC_DEFINE_UNQUOTED(CUPS_LOGDIR, "$CUPS_LOGDIR")
AC_SUBST(CUPS_LOGDIR)
# Longer-term spool data
CUPS_REQUESTS="$localstatedir/spool/cups"
AC_DEFINE_UNQUOTED(CUPS_REQUESTS, "$localstatedir/spool/cups")
AC_SUBST(CUPS_REQUESTS)
# Server executables...
case "$host_os_name" in
*bsd* | darwin*)
# *BSD and Darwin (macOS)
INSTALL_SYSV=""
CUPS_SERVERBIN="$exec_prefix/libexec/cups"
;;
*)
# All others
INSTALL_SYSV="install-sysv"
CUPS_SERVERBIN="$exec_prefix/lib/cups"
;;
esac
AC_DEFINE_UNQUOTED(CUPS_SERVERBIN, "$CUPS_SERVERBIN")
AC_SUBST(CUPS_SERVERBIN)
AC_SUBST(INSTALL_SYSV)
# Configuration files
CUPS_SERVERROOT="$sysconfdir/cups"
AC_DEFINE_UNQUOTED(CUPS_SERVERROOT, "$sysconfdir/cups")
AC_SUBST(CUPS_SERVERROOT)
# Transient run-time state
AC_ARG_WITH(rundir, [ --with-rundir set transient run-time state directory],CUPS_STATEDIR="$withval",[
case "$host_os_name" in
darwin*)
# Darwin (macOS)
CUPS_STATEDIR="$CUPS_SERVERROOT"
;;
*)
# All others
CUPS_STATEDIR="$localstatedir/run/cups"
;;
esac])
AC_DEFINE_UNQUOTED(CUPS_STATEDIR, "$CUPS_STATEDIR")
AC_SUBST(CUPS_STATEDIR)
+76
Ver Arquivo
@@ -0,0 +1,76 @@
dnl
dnl DNS Service Discovery (aka Bonjour) stuff for CUPS.
dnl
dnl Copyright 2007-2017 by Apple Inc.
dnl
dnl Licensed under Apache License v2.0. See the file "LICENSE" for more information.
dnl
AC_ARG_ENABLE(avahi, [ --disable-avahi disable DNS Service Discovery support using Avahi])
AC_ARG_ENABLE(dnssd, [ --disable-dnssd disable DNS Service Discovery support using mDNSResponder])
AC_ARG_WITH(dnssd-libs, [ --with-dnssd-libs set directory for DNS Service Discovery library],
LDFLAGS="-L$withval $LDFLAGS"
DSOFLAGS="-L$withval $DSOFLAGS",)
AC_ARG_WITH(dnssd-includes, [ --with-dnssd-includes set directory for DNS Service Discovery includes],
CFLAGS="-I$withval $CFLAGS"
CPPFLAGS="-I$withval $CPPFLAGS",)
DNSSDLIBS=""
DNSSD_BACKEND=""
IPPFIND_BIN=""
IPPFIND_MAN=""
if test "x$PKGCONFIG" != x -a x$enable_avahi != xno -a x$host_os_name != xdarwin; then
AC_MSG_CHECKING(for Avahi)
if $PKGCONFIG --exists avahi-client; then
AC_MSG_RESULT(yes)
CFLAGS="$CFLAGS `$PKGCONFIG --cflags avahi-client`"
DNSSDLIBS="`$PKGCONFIG --libs avahi-client`"
DNSSD_BACKEND="dnssd"
IPPFIND_BIN="ippfind"
IPPFIND_MAN="ippfind.\$(MAN1EXT)"
AC_DEFINE(HAVE_AVAHI)
else
AC_MSG_RESULT(no)
fi
fi
if test "x$DNSSD_BACKEND" = x -a x$enable_dnssd != xno; then
AC_CHECK_HEADER(dns_sd.h, [
case "$host_os_name" in
darwin*)
# Darwin and macOS...
AC_DEFINE(HAVE_DNSSD)
DNSSDLIBS="-framework CoreFoundation -framework SystemConfiguration"
DNSSD_BACKEND="dnssd"
IPPFIND_BIN="ippfind"
IPPFIND_MAN="ippfind.\$(MAN1EXT)"
;;
*)
# All others...
AC_MSG_CHECKING(for current version of dns_sd library)
SAVELIBS="$LIBS"
LIBS="$LIBS -ldns_sd"
AC_TRY_COMPILE([#include <dns_sd.h>],
[int constant = kDNSServiceFlagsShareConnection;
unsigned char txtRecord[100];
uint8_t valueLen;
TXTRecordGetValuePtr(sizeof(txtRecord),
txtRecord, "value", &valueLen);],
AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_DNSSD)
DNSSDLIBS="-ldns_sd"
DNSSD_BACKEND="dnssd",
IPPFIND_BIN="ippfind"
IPPFIND_MAN="ippfind.\$(MAN1EXT)"
AC_MSG_RESULT(no))
LIBS="$SAVELIBS"
;;
esac
])
fi
AC_SUBST(DNSSDLIBS)
AC_SUBST(DNSSD_BACKEND)
AC_SUBST(IPPFIND_BIN)
AC_SUBST(IPPFIND_MAN)
+123
Ver Arquivo
@@ -0,0 +1,123 @@
dnl
dnl GSSAPI/Kerberos library detection for CUPS.
dnl
dnl Copyright 2007-2017 by Apple Inc.
dnl Copyright 2006-2007 by Easy Software Products.
dnl
dnl This file contains Kerberos support code, copyright 2006 by
dnl Jelmer Vernooij.
dnl
dnl Licensed under Apache License v2.0. See the file "LICENSE" for more information.
dnl
AC_ARG_ENABLE(gssapi, [ --disable-gssapi disable GSSAPI support])
LIBGSSAPI=""
AC_SUBST(LIBGSSAPI)
if test x$enable_gssapi != xno; then
AC_PATH_TOOL(KRB5CONFIG, krb5-config)
if test "x$KRB5CONFIG" != x; then
case "$host_os_name" in
darwin)
# macOS weak-links to the Kerberos framework...
LIBGSSAPI="-weak_framework Kerberos"
AC_MSG_CHECKING(for GSS framework)
if test -d /System/Library/Frameworks/GSS.framework; then
AC_MSG_RESULT(yes)
LIBGSSAPI="$LIBGSSAPI -weak_framework GSS"
else
AC_MSG_RESULT(no)
fi
;;
sunos*)
# Solaris has a non-standard krb5-config, don't use it!
AC_CHECK_LIB(gss, gss_display_status,
AC_DEFINE(HAVE_GSSAPI, 1, [Whether GSSAPI is available])
CFLAGS="`$KRB5CONFIG --cflags` $CFLAGS"
CPPFLAGS="`$KRB5CONFIG --cflags` $CPPFLAGS"
LIBGSSAPI="-lgss `$KRB5CONFIG --libs`")
;;
*)
# Other platforms just ask for GSSAPI
CFLAGS="`$KRB5CONFIG --cflags gssapi` $CFLAGS"
CPPFLAGS="`$KRB5CONFIG --cflags gssapi` $CPPFLAGS"
LIBGSSAPI="`$KRB5CONFIG --libs gssapi`"
;;
esac
AC_DEFINE(HAVE_GSSAPI, 1, [Whether GSSAPI is available])
else
# Check for vendor-specific implementations...
case "$host_os_name" in
hp-ux*)
AC_CHECK_LIB(gss, gss_display_status,
AC_DEFINE(HAVE_GSSAPI, 1, [Whether GSSAPI is available])
LIBGSSAPI="-lgss -lgssapi_krb5")
;;
sunos*)
AC_CHECK_LIB(gss, gss_display_status,
AC_DEFINE(HAVE_GSSAPI, 1, [Whether GSSAPI is available])
LIBGSSAPI="-lgss")
;;
esac
fi
if test "x$LIBGSSAPI" != x; then
AC_CHECK_HEADER(krb5.h, AC_DEFINE(HAVE_KRB5_H))
if test -d /System/Library/Frameworks/GSS.framework; then
AC_CHECK_HEADER(GSS/gssapi.h, AC_DEFINE(HAVE_GSS_GSSAPI_H))
AC_CHECK_HEADER(GSS/gssapi_generic.h, AC_DEFINE(HAVE_GSS_GSSAPI_GENERIC_H))
AC_CHECK_HEADER(GSS/gssapi_spi.h, AC_DEFINE(HAVE_GSS_GSSAPI_SPI_H))
else
AC_CHECK_HEADER(gssapi.h, AC_DEFINE(HAVE_GSSAPI_H))
AC_CHECK_HEADER(gssapi/gssapi.h, AC_DEFINE(HAVE_GSSAPI_GSSAPI_H))
fi
SAVELIBS="$LIBS"
LIBS="$LIBS $LIBGSSAPI"
AC_CHECK_FUNC(__ApplePrivate_gss_acquire_cred_ex_f,
AC_DEFINE(HAVE_GSS_ACQUIRE_CRED_EX_F))
AC_MSG_CHECKING(for GSS_C_NT_HOSTBASED_SERVICE)
if test x$ac_cv_header_gssapi_gssapi_h = xyes; then
AC_TRY_COMPILE([ #include <gssapi/gssapi.h> ],
[ gss_OID foo = GSS_C_NT_HOSTBASED_SERVICE; ],
AC_DEFINE(HAVE_GSS_C_NT_HOSTBASED_SERVICE)
AC_MSG_RESULT(yes),
AC_MSG_RESULT(no))
elif test x$ac_cv_header_gss_gssapi_h = xyes; then
AC_TRY_COMPILE([ #include <GSS/gssapi.h> ],
[ gss_OID foo = GSS_C_NT_HOSTBASED_SERVICE; ],
AC_DEFINE(HAVE_GSS_C_NT_HOSTBASED_SERVICE)
AC_MSG_RESULT(yes),
AC_MSG_RESULT(no))
else
AC_TRY_COMPILE([ #include <gssapi.h> ],
[ gss_OID foo = GSS_C_NT_HOSTBASED_SERVICE; ],
AC_DEFINE(HAVE_GSS_C_NT_HOSTBASED_SERVICE)
AC_MSG_RESULT(yes),
AC_MSG_RESULT(no))
fi
LIBS="$SAVELIBS"
fi
fi
dnl Default GSS service name...
AC_ARG_WITH(gssservicename, [ --with-gssservicename set default gss service name],
default_gssservicename="$withval",
default_gssservicename="default")
if test x$default_gssservicename != xno; then
if test "x$default_gssservicename" = "xdefault"; then
CUPS_DEFAULT_GSSSERVICENAME="host"
else
CUPS_DEFAULT_GSSSERVICENAME="$default_gssservicename"
fi
else
CUPS_DEFAULT_GSSSERVICENAME=""
fi
AC_SUBST(CUPS_DEFAULT_GSSSERVICENAME)
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_GSSSERVICENAME, "$CUPS_DEFAULT_GSSSERVICENAME")
+42
Ver Arquivo
@@ -0,0 +1,42 @@
dnl
dnl Large file support stuff for CUPS.
dnl
dnl Copyright 2007-2011 by Apple Inc.
dnl Copyright 1997-2005 by Easy Software Products, all rights reserved.
dnl
dnl Licensed under Apache License v2.0. See the file "LICENSE" for more information.
dnl
dnl Check for largefile support...
AC_SYS_LARGEFILE
dnl Define largefile options as needed...
LARGEFILE=""
if test x$enable_largefile != xno; then
LARGEFILE="-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE"
if test x$ac_cv_sys_large_files = x1; then
LARGEFILE="$LARGEFILE -D_LARGE_FILES"
fi
if test x$ac_cv_sys_file_offset_bits = x64; then
LARGEFILE="$LARGEFILE -D_FILE_OFFSET_BITS=64"
fi
fi
AC_SUBST(LARGEFILE)
dnl Check for "long long" support...
AC_CACHE_CHECK(for long long int, ac_cv_c_long_long,
[if test "$GCC" = yes; then
ac_cv_c_long_long=yes
else
AC_TRY_COMPILE(,[long long int i;],
ac_cv_c_long_long=yes,
ac_cv_c_long_long=no)
fi])
if test $ac_cv_c_long_long = yes; then
AC_DEFINE(HAVE_LONG_LONG)
fi
AC_CHECK_FUNC(strtoll, AC_DEFINE(HAVE_STRTOLL))
+60
Ver Arquivo
@@ -0,0 +1,60 @@
dnl
dnl Libtool stuff for CUPS.
dnl
dnl Copyright 2007-2018 by Apple Inc.
dnl Copyright 1997-2005 by Easy Software Products, all rights reserved.
dnl
dnl Licensed under Apache License v2.0. See the file "LICENSE" for more information.
dnl
AC_ARG_ENABLE(libtool_unsupported, [ --enable-libtool-unsupported=/path/to/libtool
build with libtool (UNSUPPORTED!)],
[if test x$enable_libtool_unsupported != xno; then
if test x$enable_libtool_unsupported == xyes; then
AC_MSG_ERROR([Use --enable-libtool-unsupported=/path/to/libtool.])
fi
LIBTOOL="$enable_libtool_unsupported"
enable_shared=no
echo "WARNING: libtool is not supported or endorsed by Apple Inc."
echo " WE DO NOT PROVIDE SUPPORT FOR LIBTOOL PROBLEMS."
else
LIBTOOL=""
fi])
if test x$LIBTOOL != x; then
DSO="\$(LIBTOOL) --mode=link --tag=CC ${CC}"
DSOXX="\$(LIBTOOL) --mode=link --tag=CXX ${CXX}"
LD_CC="\$(LIBTOOL) --mode=link --tag=CC ${CC}"
LD_CXX="\$(LIBTOOL) --mode=link --tag=CXX ${CXX}"
LIBCUPS="libcups.la"
LIBCUPSSTATIC="libcups.la"
LIBCUPSCGI="libcupscgi.la"
LIBCUPSIMAGE="libcupsimage.la"
LIBCUPSMIME="libcupsmime.la"
LIBCUPSPPDC="libcupsppdc.la"
LIBTOOL_CC="\$(LIBTOOL) --mode=compile --tag=CC"
LIBTOOL_CXX="\$(LIBTOOL) --mode=compile --tag=CXX"
LIBTOOL_INSTALL="\$(LIBTOOL) --mode=install"
LINKCUPS="../cups/\$(LIBCUPS)"
LINKCUPSIMAGE="../cups/\$(LIBCUPSIMAGE)"
else
LD_CC="\$(CC)"
LD_CXX="\$(CXX)"
LIBTOOL_CC=""
LIBTOOL_CXX=""
LIBTOOL_INSTALL=""
fi
AC_SUBST(LD_CC)
AC_SUBST(LD_CXX)
AC_SUBST(LIBTOOL)
AC_SUBST(LIBTOOL_CC)
AC_SUBST(LIBTOOL_CXX)
AC_SUBST(LIBTOOL_INSTALL)
+72
Ver Arquivo
@@ -0,0 +1,72 @@
dnl
dnl Manpage stuff for CUPS.
dnl
dnl Copyright 2007-2017 by Apple Inc.
dnl Copyright 1997-2006 by Easy Software Products, all rights reserved.
dnl
dnl Licensed under Apache License v2.0. See the file "LICENSE" for more information.
dnl
dnl Fix "mandir" variable...
if test "$mandir" = "\${datarootdir}/man" -a "$prefix" = "/"; then
# New GNU "standards" break previous ones, so make sure we use
# the right default location for the operating system...
mandir="\${prefix}/man"
fi
if test "$mandir" = "\${prefix}/man" -a "$prefix" = "/"; then
case "$host_os_name" in
darwin* | linux* | gnu* | *bsd*)
# Darwin, macOS, Linux, GNU HURD, and *BSD
mandir="/usr/share/man"
AMANDIR="/usr/share/man"
PMANDIR="/usr/share/man"
;;
*)
# All others
mandir="/usr/man"
AMANDIR="/usr/man"
PMANDIR="/usr/man"
;;
esac
else
AMANDIR="$mandir"
PMANDIR="$mandir"
fi
AC_SUBST(AMANDIR)
AC_SUBST(PMANDIR)
dnl Setup manpage extensions...
case "$host_os_name" in
sunos*)
# Solaris
MAN1EXT=1
MAN5EXT=5
MAN7EXT=7
MAN8EXT=1m
MAN8DIR=1m
;;
linux* | gnu* | darwin*)
# Linux, GNU Hurd, and macOS
MAN1EXT=1.gz
MAN5EXT=5.gz
MAN7EXT=7.gz
MAN8EXT=8.gz
MAN8DIR=8
;;
*)
# All others
MAN1EXT=1
MAN5EXT=5
MAN7EXT=7
MAN8EXT=8
MAN8DIR=8
;;
esac
AC_SUBST(MAN1EXT)
AC_SUBST(MAN5EXT)
AC_SUBST(MAN7EXT)
AC_SUBST(MAN8EXT)
AC_SUBST(MAN8DIR)
+66
Ver Arquivo
@@ -0,0 +1,66 @@
dnl
dnl Networking stuff for CUPS.
dnl
dnl Copyright 2007-2016 by Apple Inc.
dnl Copyright 1997-2005 by Easy Software Products, all rights reserved.
dnl
dnl Licensed under Apache License v2.0. See the file "LICENSE" for more information.
dnl
AC_CHECK_HEADER(resolv.h,AC_DEFINE(HAVE_RESOLV_H),,[
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netinet/in_systm.h>
#include <netinet/ip.h>])
AC_SEARCH_LIBS(socket, socket)
AC_SEARCH_LIBS(gethostbyaddr, nsl)
AC_SEARCH_LIBS(getifaddrs, nsl, AC_DEFINE(HAVE_GETIFADDRS))
AC_SEARCH_LIBS(hstrerror, nsl socket resolv, AC_DEFINE(HAVE_HSTRERROR))
AC_SEARCH_LIBS(rresvport_af, nsl, AC_DEFINE(HAVE_RRESVPORT_AF))
AC_SEARCH_LIBS(__res_init, resolv bind, AC_DEFINE(HAVE_RES_INIT),
AC_SEARCH_LIBS(res_9_init, resolv bind, AC_DEFINE(HAVE_RES_INIT),
AC_SEARCH_LIBS(res_init, resolv bind, AC_DEFINE(HAVE_RES_INIT))))
# Tru64 5.1b leaks file descriptors with these functions; disable until
# we can come up with a test for this...
if test "$host_os_name" != "osf1"; then
AC_SEARCH_LIBS(getaddrinfo, nsl, AC_DEFINE(HAVE_GETADDRINFO))
AC_SEARCH_LIBS(getnameinfo, nsl, AC_DEFINE(HAVE_GETNAMEINFO))
fi
AC_CHECK_MEMBER(struct sockaddr.sa_len,,, [#include <sys/socket.h>])
AC_CHECK_HEADER(sys/sockio.h, AC_DEFINE(HAVE_SYS_SOCKIO_H))
CUPS_DEFAULT_DOMAINSOCKET=""
dnl Domain socket support...
AC_ARG_WITH(domainsocket, [ --with-domainsocket set unix domain socket name],
default_domainsocket="$withval",
default_domainsocket="")
if test x$enable_domainsocket != xno -a x$default_domainsocket != xno; then
if test "x$default_domainsocket" = x; then
case "$host_os_name" in
darwin*)
# Darwin and macOS do their own thing...
CUPS_DEFAULT_DOMAINSOCKET="$localstatedir/run/cupsd"
;;
*)
# All others use FHS standard...
CUPS_DEFAULT_DOMAINSOCKET="$CUPS_STATEDIR/cups.sock"
;;
esac
else
CUPS_DEFAULT_DOMAINSOCKET="$default_domainsocket"
fi
CUPS_LISTEN_DOMAINSOCKET="Listen $CUPS_DEFAULT_DOMAINSOCKET"
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_DOMAINSOCKET, "$CUPS_DEFAULT_DOMAINSOCKET")
else
CUPS_LISTEN_DOMAINSOCKET=""
fi
AC_SUBST(CUPS_DEFAULT_DOMAINSOCKET)
AC_SUBST(CUPS_LISTEN_DOMAINSOCKET)
+38
Ver Arquivo
@@ -0,0 +1,38 @@
dnl
dnl Operating system stuff for CUPS.
dnl
dnl Copyright 2007-2018 by Apple Inc.
dnl Copyright 1997-2006 by Easy Software Products, all rights reserved.
dnl
dnl Licensed under Apache License v2.0. See the file "LICENSE" for more
dnl information.
dnl
dnl Get the build and host platforms and split the host_os value
AC_CANONICAL_BUILD
AC_CANONICAL_HOST
[host_os_name=`echo $host_os | sed -e '1,$s/[0-9.]*$//g'`]
[host_os_version=`echo $host_os | sed -e '1,$s/^[^0-9.]*//g' | awk -F. '{print $1 $2}'`]
# Linux often does not yield an OS version we can use...
if test "x$host_os_version" = x; then
host_os_version="0"
fi
if test "$host_os_name" = darwin -a $host_os_version -lt 120; then
AC_MSG_ERROR([Sorry, this version of CUPS requires macOS 10.8 or higher.])
fi
echo host_os_version=$host_os_version
dnl Determine whether we are cross-compiling...
if test "$build" = "$host"; then
# No, build local targets
LOCALTARGET="local"
else
# Yes, don't build local targets
LOCALTARGET=""
fi
AC_SUBST(LOCALTARGET)
AC_PATH_PROGS(CODE_SIGN, codesign true)
+99
Ver Arquivo
@@ -0,0 +1,99 @@
dnl
dnl PAM stuff for CUPS.
dnl
dnl Copyright 2007-2017 by Apple Inc.
dnl Copyright 1997-2005 by Easy Software Products, all rights reserved.
dnl
dnl Licensed under Apache License v2.0. See the file "LICENSE" for more information.
dnl
AC_ARG_ENABLE(pam, [ --disable-pam disable PAM support])
AC_ARG_WITH(pam_module, [ --with-pam-module set the PAM module to use])
PAMDIR=""
PAMFILE="pam.std"
PAMLIBS=""
PAMMOD="pam_unknown.so"
PAMMODAUTH="pam_unknown.so"
if test x$enable_pam != xno; then
SAVELIBS="$LIBS"
AC_CHECK_LIB(dl,dlopen)
AC_CHECK_LIB(pam,pam_start)
AC_CHECK_LIB(pam,pam_set_item,AC_DEFINE(HAVE_PAM_SET_ITEM))
AC_CHECK_LIB(pam,pam_setcred,AC_DEFINE(HAVE_PAM_SETCRED))
AC_CHECK_HEADER(security/pam_appl.h)
if test x$ac_cv_header_security_pam_appl_h != xyes; then
AC_CHECK_HEADER(pam/pam_appl.h,
AC_DEFINE(HAVE_PAM_PAM_APPL_H))
fi
if test x$ac_cv_lib_pam_pam_start != xno; then
# Set the necessary libraries for PAM...
if test x$ac_cv_lib_dl_dlopen != xno; then
PAMLIBS="-lpam -ldl"
else
PAMLIBS="-lpam"
fi
# Find the PAM configuration directory, if any...
for dir in /private/etc/pam.d /etc/pam.d; do
if test -d $dir; then
PAMDIR=$dir
break;
fi
done
fi
LIBS="$SAVELIBS"
case "$host_os_name" in
darwin*)
# Darwin/macOS
if test "x$with_pam_module" != x; then
PAMFILE="pam.$with_pam_module"
elif test -f /usr/lib/pam/pam_opendirectory.so.2; then
PAMFILE="pam.opendirectory"
else
PAMFILE="pam.securityserver"
fi
;;
*)
# All others; this test might need to be updated
# as Linux distributors move things around...
if test "x$with_pam_module" != x; then
PAMMOD="pam_${with_pam_module}.so"
elif test -f /etc/pam.d/common-auth; then
PAMFILE="pam.common"
else
moddir=""
for dir in /lib/security /lib64/security /lib/x86_64-linux-gnu/security /var/lib/pam; do
if test -d $dir; then
moddir=$dir
break;
fi
done
if test -f $moddir/pam_unix2.so; then
PAMMOD="pam_unix2.so"
elif test -f $moddir/pam_unix.so; then
PAMMOD="pam_unix.so"
fi
fi
if test "x$PAMMOD" = xpam_unix.so; then
PAMMODAUTH="$PAMMOD shadow nodelay"
else
PAMMODAUTH="$PAMMOD nodelay"
fi
;;
esac
fi
AC_SUBST(PAMDIR)
AC_SUBST(PAMFILE)
AC_SUBST(PAMLIBS)
AC_SUBST(PAMMOD)
AC_SUBST(PAMMODAUTH)
+12
Ver Arquivo
@@ -0,0 +1,12 @@
dnl
dnl Select/poll stuff for CUPS.
dnl
dnl Copyright 2007-2011 by Apple Inc.
dnl Copyright 2006 by Easy Software Products, all rights reserved.
dnl
dnl Licensed under Apache License v2.0. See the file "LICENSE" for more information.
dnl
AC_CHECK_FUNC(poll, AC_DEFINE(HAVE_POLL))
AC_CHECK_FUNC(epoll_create, AC_DEFINE(HAVE_EPOLL))
AC_CHECK_FUNC(kqueue, AC_DEFINE(HAVE_KQUEUE))
+156
Ver Arquivo
@@ -0,0 +1,156 @@
dnl
dnl Shared library support for CUPS.
dnl
dnl Copyright © 2007-2018 by Apple Inc.
dnl Copyright © 1997-2005 by Easy Software Products, all rights reserved.
dnl
dnl Licensed under Apache License v2.0. See the file "LICENSE" for more
dnl information.
dnl
PICFLAG=1
DSOFLAGS="${DSOFLAGS:=}"
AC_ARG_ENABLE(shared, [ --disable-shared do not create shared libraries])
cupsbase="cups"
LIBCUPSBASE="lib$cupsbase"
LIBCUPSIMAGE=""
LIBCUPSSTATIC="lib$cupsbase.a"
if test x$enable_shared != xno; then
case "$host_os_name" in
sunos*)
LIBCUPS="lib$cupsbase.so.2"
if test "x$cupsimagebase" != x; then
LIBCUPSIMAGE="lib$cupsimagebase.so.2"
fi
DSO="\$(CC)"
DSOXX="\$(CXX)"
DSOFLAGS="$DSOFLAGS -Wl,-h\`basename \$@\` -G"
;;
linux* | gnu* | *bsd*)
LIBCUPS="lib$cupsbase.so.2"
if test "x$cupsimagebase" != x; then
LIBCUPSIMAGE="lib$cupsimagebase.so.2"
fi
DSO="\$(CC)"
DSOXX="\$(CXX)"
DSOFLAGS="$DSOFLAGS -Wl,-soname,\`basename \$@\` -shared"
;;
darwin*)
LIBCUPS="lib$cupsbase.2.dylib"
if test "x$cupsimagebase" != x; then
LIBCUPSIMAGE="lib$cupsimagebase.2.dylib"
fi
DSO="\$(CC)"
DSOXX="\$(CXX)"
DSOFLAGS="$DSOFLAGS -Wl,-no_warn_inits -dynamiclib -single_module -lc"
;;
*)
echo "Warning: shared libraries may not be supported. Trying -shared"
echo " option with compiler."
LIBCUPS="lib$cupsbase.so.2"
if test "x$cupsimagebase" != x; then
LIBCUPSIMAGE="lib$cupsimagebase.so.2"
fi
DSO="\$(CC)"
DSOXX="\$(CXX)"
DSOFLAGS="$DSOFLAGS -Wl,-soname,\`basename \$@\` -shared"
;;
esac
else
PICFLAG=0
LIBCUPS="lib$cupsbase.a"
if test "x$cupsimagebase" != x; then
LIBCUPSIMAGE="lib$cupsimagebase.a"
fi
DSO=":"
DSOXX=":"
fi
AC_SUBST(DSO)
AC_SUBST(DSOXX)
AC_SUBST(DSOFLAGS)
AC_SUBST(LIBCUPS)
AC_SUBST(LIBCUPSBASE)
AC_SUBST(LIBCUPSIMAGE)
AC_SUBST(LIBCUPSSTATIC)
if test x$enable_shared = xno; then
LINKCUPS="../cups/lib$cupsbase.a"
EXTLINKCUPS="-lcups"
if test "x$cupsimagebase" != x; then
LINKCUPSIMAGE="../cups/lib$cupsimagebase.a"
EXTLINKCUPSIMAGE="-l$cupsimagebase"
else
LINKCUPSIMAGE=""
EXTLINKCUPSIMAGE=""
fi
else
LINKCUPS="-l${cupsbase}"
EXTLINKCUPS="-lcups"
if test "x$cupsimagebase" != x; then
LINKCUPSIMAGE="-l$cupsimagebase"
EXTLINKCUPSIMAGE="-l$cupsimagebase"
else
LINKCUPSIMAGE=""
EXTLINKCUPSIMAGE=""
fi
fi
AC_SUBST(EXTLINKCUPS)
AC_SUBST(EXTLINKCUPSIMAGE)
AC_SUBST(LINKCUPS)
AC_SUBST(LINKCUPSIMAGE)
dnl Update libraries for DSOs...
EXPORT_LDFLAGS=""
if test "$DSO" != ":"; then
# When using DSOs the image libraries are linked to libcupsimage.so
# rather than to the executables. This makes things smaller if you
# are using any static libraries, and it also allows us to distribute
# a single DSO rather than a bunch...
DSOLIBS="\$(LIBZ)"
IMGLIBS=""
# Tell the run-time linkers where to find a DSO. Some platforms
# need this option, even when the library is installed in a
# standard location...
case $host_os_name in
sunos*)
# Solaris...
if test $exec_prefix != /usr; then
DSOFLAGS="-R$libdir $DSOFLAGS"
LDFLAGS="$LDFLAGS -R$libdir"
EXPORT_LDFLAGS="-R$libdir"
fi
;;
*bsd*)
# *BSD...
if test $exec_prefix != /usr; then
DSOFLAGS="-Wl,-R$libdir $DSOFLAGS"
LDFLAGS="$LDFLAGS -Wl,-R$libdir"
EXPORT_LDFLAGS="-Wl,-R$libdir"
fi
;;
linux* | gnu*)
# Linux, and HURD...
if test $exec_prefix != /usr; then
DSOFLAGS="-Wl,-rpath,$libdir $DSOFLAGS"
LDFLAGS="$LDFLAGS -Wl,-rpath,$libdir"
EXPORT_LDFLAGS="-Wl,-rpath,$libdir"
fi
;;
esac
else
DSOLIBS=""
IMGLIBS="\$(LIBZ)"
fi
AC_SUBST(DSOLIBS)
AC_SUBST(IMGLIBS)
AC_SUBST(EXPORT_LDFLAGS)

Alguns arquivos não foram exibidos porque demasiados arquivos foram alterados neste diff Mostrar Mais