From: jlovell Date: Mon, 22 May 2006 23:39:03 +0000 (+0000) Subject: Load cups into easysw/current. X-Git-Tag: release-1.6.3~234 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3608048605dc5886f0d960ed83e77e2243a6e33d;p=thirdparty%2Fcups.git Load cups into easysw/current. git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@161 a1ca3aef-8c08-0410-bb20-df032aa958be --- diff --git a/CHANGES-1.2.txt b/CHANGES-1.2.txt deleted file mode 100644 index 5195095c04..0000000000 --- a/CHANGES-1.2.txt +++ /dev/null @@ -1,622 +0,0 @@ -CHANGES-1.2.txt ---------------- - -CHANGES IN CUPS V1.2.1 - - - The web interface support programs crashed on Solaris - (STR #1699) - - cupstestppd incorrectly reported problems with - *1284DeviceID attributes (STR #1710) - - Browsing could get disabled after a restart (STR #1670) - - Custom page sizes were not parsed properly (STR #1709) - - The -U option wasn't supported by lpadmin (STR #1702) - - The -u option didn't work with lpadmin (STR #1703) - - The scheduler did not create non-blocking back-channel - pipes, which caused problems when the printer driver - did not read the back-channel data (STR #1705) - - The scheduler no longer uses chunking in responses to - clients - this caused problems with older versions of - CUPS like 1.1.17 (PR #6143) - - Automatic raw printing was broken (STR #1667) - - 6-up printing was broken (STR #1697) - - The pstops filter did not disable CTRL-D processing on - the printer/RIP. - - ppdOpen*() did not load custom options properly (STR - #1680) - - "Set Printer Options" in the web interface did not - update the DefaultImageableArea or - DefaultPaperDimension attributes in the PPD file (STR - #1689) - - Fixed compile errors (STR #1682, STR #1684, STR #1685, - STR #1690) - - The lpstat command displayed the wrong error message - for a missing destination (STR #1683) - - Revised and completed the Polish translation (STR - #1669) - - Stopped jobs did not show up in the list of active jobs - (STR #1676) - - The configure script did not use the GNU TLS - "libgnutls-config" script to find the proper compiler - and linker options. - - The imagetoraster filter did not correctly generate - several 1, 2, and 4-bit color modes. - - cupsRasterWritePixels() could lose track of the current - output row. - - cupsRasterReadPixels() did not automatically swap - 12/16-bit chunked pixel data. - - Moved the private _cups_raster_s structure out of the - public header. - - Updated the CUPS raster format specification to include - encoding rules and colorspace definitions. - - The Zebra PPD files had the wrong PostScript code for - the "default" option choices. - - The imagetoraster filter did not generate correct CIE - XYZ or Lab color data. - - The cups-config script did not work when invoked from a - source directory (STR #1673) - - The SNMP backend did not compile on systems that used - the getifaddrs emulation functions (STR #1668) - - -CHANGES IN CUPS V1.2 - - - Documentation updates (STR #1618, STR #1620, STR #1622, - STR #1637) - - Static file copy buffers reduced from 64k to 32k to - work around bogus MallocDebug library assumptions (STR - #1660) - - The scheduler did not decode the backend exit code - properly (STR #1648) - - The MacOS X USB backend did not report the 1284 device ID, - nor did it fix device IDs returned by HP printers. - - The scheduler started more slowly than 1.1.x with large - numbers of printers (STR #1653) - - cupsRasterInterpretPPD() didn't support the - cupsPreferredBitsPerColor attribute, and imagetoraster - didn't use the new API. - - The "make test" script did not create all of the necessary - subdirectories for testing (STR #1638) - - The scheduler did not prevent rotation of logs - redirected to /dev/null (STR #1651) - - "make test" did not include the SNMP backend in the - test environment (STR #1625) - - The EPM packaging files did not work (STR #1621) - - "Use Default Configuration" inserted a broken - configuration file (STR #1624) - - Redirects in the web interface did not always preserve - the encrypted status of a connection (STR #1603) - - Added the Apple "pap" backend. - - Added CUPS library to CUPS Image shared library - linkage to support Linux --as-needed linker option - (STR #1606) - - Fixed support for --enable-pie (STR #1609) - - The pdftops filter did not validate the length of the - encryption key (STR #1608) - - Updated the Polish localization. - - "Encryption Required" in the cupsd.conf file now only - requires encryption when the connection is not over the - loopback interface or domain socket. - - Printer names containing "+" were not quoted properly in - the web interface (STR #1600) - - The SNMP backend now reports the make and model in the - information string so that the auto-generated printer - name is more useful than just an IP address. - - -CHANGES IN CUPS V1.2rc3 - - - The cups-lpd program always did reverse lookups on the - client address, which could be a performance problem. - Added a "-n" option to disable lookups. - - When configured with SSL support, require encryption by - default when displaying the /admin location (STR #1592) - - The next job ID was not computed correctly if the job - cache file got out of sync with the spool directory - (STR #1582) - - The PNG image handling code used deprecated functions - from libpng (STR #1587) - - Added a Polish translation (STR #1584, STR #1586) - - More changes to the scheduler to improve battery life - on portable devices (STR #1583) - - Changed the default log level for status messages back - to "DEBUG" to be consistent with CUPS 1.1.x (STR #1579) - - The error string was not set properly when - cupsDoFileRequest() was given the name of a directory - (STR #1578) - - Fixed handling of job-hold-until (STR #1581) - - Added explicit notes to the cupsaddsmb man page - explaining that the driver filenames are case-sensitive - under UNIX and that they must be all lowercase (Windows - 2000) or all UPPERCASE (Windows 95/98/Me) to work (STR - #1568) - - The USB backend incorrectly split the manufacturer name - if it contained spaces (STR #1566) - - The scheduler would hang when listing PPD files for a - manufacturer whose name contained spaces (STR #1567) - - Added the SNMP backend for network printer discovery - (STR #1555) - - cupstestppd now fails PPD files with 1284DeviceId - instead of 1284DeviceID, and cups-driverd uses a - case-insensitive comparison when looking for it (STR - #1573) - - cupsDoFileRequest() and cupsDoRequest() now work - properly with non-blocking HTTP connections. - - Added Swedish translation (STR #1569) - - "make install" now installs the MIME files with world - read permissions (STR #1565) - - More CDSA encryption support fixes (STR #1563) - - Updated the default mime.types file to support printing - of files that do not have a locally-recognized MIME - media type to raw or System V queues. - - Updated the serial port detection code on Linux (STR - #1562) - - Added some more error checking to httpGetHostname() - (STR #1561) - - The title of some administration pages was not - localized (STR #1548) - - The edit-config.tmpl file was not generated or - installed for the Spanish or Japanese localizations - (STR #1547) - - The mimeDelete() function freed the types before the - filters, but the filters needed the type data (STR #1558) - - The scheduler didn't keep track of the status pipes - properly, leading to a bad select() for multi-file jobs - (STR #1559) - - The cupstestdsc program didn't validate the ordinal - page number value for %%Page: comments. - - -CHANGES IN CUPS V1.2rc2 - - - The scheduler was not always using the string pool, - causing random crashes. - - The lpmove and the web interface's Move Job button did - not work with stopped jobs (STR #1534) - - The PostScript filter did not handle the page-set - option properly with number-up printing (STR #1543) - - The scheduler now only warns about unsupported ACLs - once (STR #1532) - - The "fitplot" option did not work with output from - Mozilla (STR #1542) - - The imagetops filter did not work with Level 2 or 3 - printers (STR #1533) - - The scheduler now recognizes PostScript files with PJL - commands that do not include an ENTER LANGUAGE command. - - Added --with-printcap configure option. - - 64-bit SSL fixes for MacOS X. - - The scheduler didn't send some printer state change - events. - - The scheduler didn't send jobs to busy remote printers. - - Fixed some problems with the launchd support. - - Added new USB printer backend for MacOS X. - - The PostScript filter now handles files that start with - an incomplete PJL header (PR #6076) - - The web interface language selection code did not try - the generic language localization (STR #1531) - - The language cache, string pool, and transcoding caches - are now process global instead of per-thread to avoid - problems with GNOME and to allow for data sharing - between threads (STR #1530) - - Fixed a CUPS 1.1.x compatibility bug (STR #1528) - - The web interface redirection after certain printer - administration tasks was broken (STR #1516) - - Web interface authorization could get stuck (STR #1512) - - Localization updates (STR #1513, STR #1518, STR #1520) - - The pstops filter didn't work with some files (STR - #1523) - - "./configure --enable-static" didn't work (STR #1522) - - The scheduler was not using the configured default - Group (STR #1521) - - The web interface still did not show the localized time - and date for some locales and systems (STR #1509) - - httpAddrGetList() would crash on systems without - getaddrinfo(). - - Socket URIs without a trailing slash would cause the - port number to not be accepted (STR #1519) - - Local raw and System V printers were not advertised as - such for printer browsing (STR #1502) - - The RPM spec file incorrectly put duplicate copies of - the Japanese and Spanish web interface templates in the - main cups package (STR #1517) - - cupsSetDests() did not explicitly set the permissions - of the /etc/cups/lpoptions file (STR #1508) - - The lpq command crashed with the -h option (STR #1515) - - -CHANGES IN CUPS V1.2rc1 - - - Documentation updates (STR #1497, STR #1498) - - The scheduler now redirects browsers to https: URLs - when encryption is required. - - The scheduler would crash when printing with a banner - (STR #1500) - - cups-driverd did not use the LanguageEncoding attribute - in PPD files to convert the NickName to UTF-8 (STR - #1503) - - The lpadmin command could not set the - printer-error-policy attribute (STR #1504) - - The web interface did not show the time and date in the - correct format for the locale (STR #1505) - - CUPS no longer accepts print jobs if a printer does not - support the file format (STR #1501) - - Cleaned up the PostScript filter (pstops) so that it - properly supports %%IncludeFeature and page scaling - (STR #1453) - - Fixed the cupsFileRewind() and cupsFileSeek() functions - to work properly with uncompressed files. - - Added cupsFileGetLine(), cupsFileStderr(), - cupsFileStdin(), and cupsFileStdout() functions to the - CUPS library. - - Added a new cupstestdsc program to test the DSC - conformance of PostScript files. - - Added KDE/GNOME icons and a Manage Printers menu item. - - Added --enable-image and --enable-pdftops configure - options to control whether the image and PDF filters - are built and installed (default = yes for all - platforms but MacOS X) - - Fixed a minor memory leak in the PPD API. - - Fixed transcoding issues (STR #1493) - - The scheduler now enforces a minimum job cost of 100 - when doing FilterLimit checks. - - The scheduler would leak file descriptors when printing - to raw queues (STR #1491) - - The IPv6 support did not compile on Tru64 UNIX (STR - #1488) - - ppdOpen2() now converts the NickName and all UI text to - UTF-8 (STR #1475) - - The Set Allowed Users web page did not work (STR #1486) - - When the default policy was not set or set to a non- - existing policy, the scheduler did not set the default - policy name to "default" (STR #1484) - - The Zebra CPCL driver did not use the correct righthand - margin for the 4" wide label sizes. - - Fixed a problem with the parsing of fractional real - numbers in PPD files. - - Added Spanish localization files (STR #1480) - - Fixed localization of a few scheduler messages (STR - #1478) - - Fixed support for HEAD requests in the scheduler (STR - #1481) - - -CHANGES IN CUPS V1.2b2 - - - Updated the CUPS design description. - - Added --enable-32bit and --enable-64bit configure - options to allow building of separate 32/64-bit - libraries on systems that support both environments - (STR #1472) - - Various compiler warning fixes. - - Fixes for Solaris 10 builds against old GNU TLS and - LDAP libraries. - - Added a cupsArrayUserData() function to retrieve the - user data pointer for an array (useful for typing - arrays) - - The ppdEmitString() function did not compute the - required buffer size properly, leading to dropped - characters on the end of the printer commands in pstops - and imagetops (STR #1470) - - -CHANGES IN CUPS V1.2b1 - - - The serial backend now supports Equinox 8-port serial - hubs (STR #526) - - The IPP backend now supports a compression option to - compress print files as they are sent to the remote - server (STR #956) - - The CUPS browse protocol now supports passing of - default options and browse timeout values from the - server to the clients (STR #800) - - Implicit classes that timed out could cause the - scheduler to crash (STR #1439) - - Added DragonFly support in local device backends (STR - #1362) - - Added LDAP printer browsing support (STR #338) - - Added official support for printer maintenance commands - via the CUPS Command file format and hooks in the - printer-type and web interfaces (STR #932) - - The HP-GL/2 filter could get in an infinite loop trying - to convert HP-PCL files (STR #1415) - - CUPS now implements the HTTP/1.1 Expect header (STR - #1407) - - Options in PPD files are no longer automatically put in - an "Extra" group; rather, all options that are not - inside an Open/CloseGroup will be placed in the - "General" group (STR #1385) - - The scheduler now creates a job-uuid attribute that - uniquely identifies a job on a network (STR #1410) - - The init script now unsets the TMPDIR environment - variable to prevent user temporary directories from - being used by cupsd accidentally (STR #1424) - - Added support for launchd on MacOS X. - - Added support for notify_post on MacOS X. - - Added support for DBUS on Linux. - - All of the Berkeley (except for lpc) and System V - commands now support specification of user, host, and - port (STR #1028, STR #1029, STR #1087) - - The lpmove command now allows you to move all jobs for - a given queue (STR #56) - - The web interface now supports moving of a job or jobs - to another queue (STR #56) - - The web interface now provides searching, paging, and - changing of the sort/display order of classes, jobs, - and printers. - - cupsaddsmb now accepts a password on the command-line - and supports passwords with special characters (STR - #822, STR #1236) - - ppdLoad*() no longer tries to "fix" bad characters in - UI text (STR #1101) - - Printer names can now (reliably) contain Unicode - characters (STR #896) - - The lpstat command now shows the time and date of the - last printer state change instead of the hardcoded "Jan - 01 00:00" (STR #659) - - The scheduler now adds a job-actual-printer-uri - attribute to job objects when printing to a class (STR - #116) - - The scheduler now logs log file open errors to the - system log (STR #1289) - - The scheduler now sets the job-originating-user-name to - the authenticated username, if available (STR #1318) - - The scheduler now only updates the permissions of SSL - keys and certificates when they are under the - ServerRoot directory (STR #1324) - - The rastertodymo driver has been renamed to - rastertolabel (a symlink is installed so that existing - queues continue to work) and now also supports Zebra's - CPCL language. - - The lpstat command could show the wrong active job for - a printer (STR #1301) - - Fixed a potential crash problem in the scheduler when - aborting a CGI program (STR #1290) - - Added a "cancel all jobs" button to the class and - printer web interfaces (STR #1140) - - The add-printer web page now shows the - set-printer-options page after the printer has been - added (STR #690) - - The classes web page now provides links to each of the - member printers (STR #307) - - CUPS now handles HTTP request/response lines up to 32k - in length; this is mainly for better cookie support - (STR #1274) - - Added support for the Apache PassEnv and SetEnv - directives to cupsd.conf (STR #853) - - Added large file (64-bit) support (STR #541) - - Fixed a performance issue with the ippReadIO() - implementation (STR #1284) - - Fixed a performance issue with the scheduler's implicit - class implementation (STR #1283) - - The pdftops filter now adds the Title and Creator - fields from the PDF file to the PostScript document - comments section (STR #539, STR #830) - - Added a new cups_array_t and cupsArray*() functions to - the CUPS API to support sorted lists of data. - - Made the CUPS API library thread-safe (STR #1276) - - Added "media" option support for EFI EFMediaType option - (STR #902) - - Added write buffering to the HTTP code to improve - performance (STR #547) - - The scheduler now uses the attributes-natural-language - attribute to localize banner pages (STR #386) - - The scheduler now returns the address that was used to - connect to it (STR #1076) - - Fixed a problem with N-up printing and OpenOffice (STR - #576) - - Added support for the GCC position independent - executable options (STR #1209) - - Added new BrowseLocalProtocols and - BrowseRemoteProtocols directives to cupsd.conf, - allowing for different browse protocols for local and - remote printers (STR #877) - - PPD files can now contain strings up to 256k in length - (STR #1215) - - The pstops filter now supports the IncludeFeature DSC - comment (STR #1212) - - The pstops filter now disables the setpagedevice - procedure when doing N-up printing (STR #1161) - - The serial backend now supports "stop=1", "stop=2", - "parity=space", and "parity=mark" options (STR #1155) - - "make install" no longer overwrites an existing PAM - configuration file (STR #1064) - - The scheduler now closes all files on startup when run - in daemon mode (STR #1009) - - Added a new RGBW colorspace to the CUPS raster format - (STR #1071) - - The pdftops filter now sets the page size based on the - media box when not scaling the output (STR #912) - - The pdftops filter now supports masked images (STR - #281) - - The pdftops filter produced large output when rendering - PDF files containing lot of repeated images (STR #327) - - The pdftops filter now minimizes print processing of - PDF files when using the page-ranges option (STR #273) - - Updated pdftops filter to Xpdf 3.01. - - Added new cupsBackchannelRead() and - cupsBackchannelWrite() functions, as well as - backchannel support to the parallel, serial, socket, - and USB backends (STR #1252) - - The parallel and USB backends now treat a "no space - available" error as an out-of-paper condition (STR - #1225) - - The "lpc" command now supports the "status all" command - (STR #1004) - - ippReadIO() did not read collections properly (STR - #1249) - - The "make test" script now creates the test files in - "/tmp/cups-$USER" instead of "/tmp/$USER" (STR #981) - - All backends now abort on error when printing a job to - a class - this allows the next printer in the class to - print the job (STR #1084) - - The scheduler now verifies that a printer supports - Letter or A4 media sizes before setting them as the - initial default (STR #1250) - - The cupstestppd program now flags bad Resolution - options (STR #1269) - - The USB backend now retries printing when the printer - is disconnected or turned off (STR #1267) - - Added new httpGetHostname() function to CUPS API, and - use it instead of gethostname() so that the web - interface will work correctly on systems whose hostname - is not the FQDN (STR #1266) - - The scheduler now stops printers if the backend for the - queue is missing on startup (STR #1265) - - The configure script now supports "--disable-library" - to disable particular image file format support - libraries, even if they are available on the build - system (STR #1248) - - The IPP backend did not always report on the total - number of pages that were printed (STR #1251) - - The lpstat program could display garbage date and time - values for locales whose date format exceeded 31 - characters (STR #1263) - - The cupstestppd program would segfault when testing - certain broken PPD files (STR #1268) - - Dramatically reduced the overhead of implicit classes. - - Added new cupsDir*() functions to CUPS API. - - Printers can now be published individually for sharing. - - Fixed a bug in the scheduler's startup signalling code - which caused cupsd to send the SIGUSR1 signal to the - init process instead of the original parent process - (STR #1258) - - Added new on-line help CGI to web interface to provide - searchable help. - - Devices are now tracked dynamically, with each query - doing a new device scan. This eliminates a previous - startup delay caused by slow backends and allows new - printers to be seen without restarting the server, - however it limits the amount of device URI checking - that can be done (basically now the scheduler only - requires a URI with a method that is a listed backend) - - Added new printer auto-detection, server configuration, - and log file viewing to the administration web page. - - Added new "set allowed users" web interface to set the - list of allowed users for a printer or class. - - The scheduler, command-line, and web interfaces now - limit the list of printers and classes to those - accessible by a user. - - cupsMarkOptions() now handles more non-standard - duplexing options and choices (STR #915) - - cups-lpd now honors remote banner requests with the - "standard" banner whenever a printer does not have one - defined (STR #1220) - - The scheduler's denial-of-service checks did not work - properly with IPv6 addresses (STR #1134) - - The lp and lpr commands did not error out properly when - they were unable to write to a temporary file (STR - #1129) - - The pstops filter did not handle Adobe-specific - comments in Windows NT driver output (STR #1085) - - "lpstat -l -p" incorrectly reported the printer - interface (STR #936) - - The web interface now operates exclusively with the - UTF-8 encoding, and sends the appropriate character set - and header information to the web browser (STR #919, - STR #1007) - - Added a "set allowed users" interface to the web - interface so that you can set the list of allowed or - denied users/groups for a printer or class. - - Disallow the "#" character in printer names, since it - has special meaning in the shell, config files, and in - URIs (STR #917, STR #1202) - - Added a new application/x-csource MIME type, and - support for it to the texttops filter so that you can - pretty print plain text files without the C/C++ - keywords being highlighted. - - The pdftops filter did not compile with GCC 4.0 (STR - #1226) - - The texttops filter did not highlight preprocessor - directives followed by a tab properly. - - HP PJL output now uses both JOB DISPLAY and RDYMSG - commands to show the current job on the printer's - display (STR #1218) - - Local authentication certificates are now stored in - /var/run/cups/certs by default instead of - /etc/cups/certs (STR #1211) - - Backends now use "&" to separate options in device - URIs; "+" is still recognized but is deprecated (STR - #842) - - The USB backend no longer supports the usb:/dev/foo - format on systems that support device ID queries. - - Forced classification markings did not work when the - job-sheets parameters were "none,none". - - "lpstat -l -p" incorrectly showed all users as allowed, - even if the queue was restricted to certain users (STR - #801) - - The scheduler now automatically detects SSL/TLS clients - without using the SSLPort/SSLListen directives. - - The CUPS API and scheduler no longer support SSLv2- - encrypted connections. - - Updated the cupsaddsmb utility to correctly export the - CUPS driver for Windows. - - Fixed a signal-handling bug in httpRead() which - ultimately caused the server to print multiple copies - when it was busy (STR #1184) - - The cupsFile API now uses the O_APPEND option when - opening files in append mode (STR #990) - - The md5.h header and md5_* functions are now officially - private and have been renamed to avoid conflicts with - other implementations with the same name. - - The pdftops filter incorrectly embedded some Type1 - fonts (STR #1093) - - The scheduler didn't detect a closed connection in the - middle of an IPP request (STR #1153) - - The scheduler could block trying to read the job status - if there was input pending and the job was cancelled in - the same input cycle (STR #1157) - - The scheduler could crash when deleting a class due to - infinite recursion. - - Updated the Zebra ZPL label printer driver to use the - run-length encoding and support more options. - - Updated serial backend to scan for /dev/ttyC* as well - as /dev/ttyc* for Cyclades serial ports (STR #1049) - - The scheduler could hang reading the job status under - certain circumstances (STR #1068) - - The USB backend termination signal code was inverted - (STR #1046) - - Moved enable and disable commands to sbindir to be - consistent. - - Added new cupsRasterInterpretPPD() function for RIP - filters to setup the raster page header from - PostScript commands in a PPD file. - - The CUPS browsing protocol now offers a "delete" bit - to remove printers as soon as they are deleted on the - server or as soon as the server shuts down gracefully - (STR #793) - - The CUPS_SERVER and ServerName directives (client.conf - and ~/.cupsrc) may now contain names of the form - "server:port" and "/path/to/domain/socket". - - The "cancel -u user" command now works for ordinary - users (STR #751) - - Added test run support to "make test" target (STR #64) - - Added domain socket support (STR #656) - - Added BrowseLocalOptions directive to allow the - administrator to add printer URI options to the browse - URI, e.g. "encryption=required" (STR #732) - - Added BrowseRemoteOptions directive to allow the - administrator to add standard URI options to the - remote printer URI, e.g. "encryption=required" (STR - #732) - - Now put "-I.." compiler option in front of all others - to ensure that local CUPS headers are used before - installed headers (STR #437) - - New cupsLangPrintf() and cupsLangPuts() for localized - interfaces. - - Now support custom attributes and extended options in - PPD files. - - Now provide functions to save PPD files. - - New policy mechanism allows per-operation and - per-printer control over what users and groups are - allowed to do various IPP operations. - - New error policy mechanism to control how aborted - backend errors are handled by the scheduler - (abort-job, retry-job, requeue-job, stop-printer) - - Updated the printer test page with a better color - wheel and a separate grayscale ramp. - - A single backend process is now run to send all print - data for a job. - - Backends and filters can now send and receive - backchannel data over file descriptor 3. - - Updated the raster stream format to support more - user-defined attributes and to do compression of the - page data. diff --git a/CHANGES.txt b/CHANGES.txt index 2791e58658..87691a8c70 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,8 +1,639 @@ -CHANGES.txt - 2006-05-16 +CHANGES.txt - 2006-05-22 ------------------------ -CHANGES IN CUPS V1.3 +CHANGES IN CUPS V1.2.1 - - Added support for setting the document-format-default - attribute on a per-printer basis. - - Added support for IntelliBar label printers. + - The web interface did not handle reloads properly for + MSIE (STR #1716) + - The configure script no longer adds linker rpath + options when they are unnecessary. + - The scheduler could crash printing a debug message on + Solaris (STR #1714) + - The --enable-32bit and --enable-64bit configure options + did not always work. + - The password prompt showed the domain socket address + instead of "localhost" for local authentication (STR + #1706) + - The web interface filtered the list of printers even if + the user wasn't logged in (STR #1700) + - The IPP backend did not work reliably with some Xerox + printers (STR #1704) + - Trailing banners were not added when printing a single + file (STR #1698) + - The web interface support programs crashed on Solaris + (STR #1699) + - cupstestppd incorrectly reported problems with + *1284DeviceID attributes (STR #1710) + - Browsing could get disabled after a restart (STR #1670) + - Custom page sizes were not parsed properly (STR #1709) + - The -U option wasn't supported by lpadmin (STR #1702) + - The -u option didn't work with lpadmin (STR #1703) + - The scheduler did not create non-blocking back-channel + pipes, which caused problems when the printer driver + did not read the back-channel data (STR #1705) + - The scheduler no longer uses chunking in responses to + clients - this caused problems with older versions of + CUPS like 1.1.17 (PR #6143) + - Automatic raw printing was broken (STR #1667) + - 6-up printing was broken (STR #1697) + - The pstops filter did not disable CTRL-D processing on + the printer/RIP. + - ppdOpen*() did not load custom options properly (STR + #1680) + - "Set Printer Options" in the web interface did not + update the DefaultImageableArea or + DefaultPaperDimension attributes in the PPD file (STR + #1689) + - Fixed compile errors (STR #1682, STR #1684, STR #1685, + STR #1690) + - The lpstat command displayed the wrong error message + for a missing destination (STR #1683) + - Revised and completed the Polish translation (STR + #1669) + - Stopped jobs did not show up in the list of active jobs + (STR #1676) + - The configure script did not use the GNU TLS + "libgnutls-config" script to find the proper compiler + and linker options. + - The imagetoraster filter did not correctly generate + several 1, 2, and 4-bit color modes. + - cupsRasterWritePixels() could lose track of the current + output row. + - cupsRasterReadPixels() did not automatically swap + 12/16-bit chunked pixel data. + - Moved the private _cups_raster_s structure out of the + public header. + - Updated the CUPS raster format specification to include + encoding rules and colorspace definitions. + - The Zebra PPD files had the wrong PostScript code for + the "default" option choices. + - The imagetoraster filter did not generate correct CIE + XYZ or Lab color data. + - The cups-config script did not work when invoked from a + source directory (STR #1673) + - The SNMP backend did not compile on systems that used + the getifaddrs emulation functions (STR #1668) + + +CHANGES IN CUPS V1.2.0 + + - Documentation updates (STR #1618, STR #1620, STR #1622, + STR #1637) + - Static file copy buffers reduced from 64k to 32k to + work around bogus MallocDebug library assumptions (STR + #1660) + - The scheduler did not decode the backend exit code + properly (STR #1648) + - The MacOS X USB backend did not report the 1284 device ID, + nor did it fix device IDs returned by HP printers. + - The scheduler started more slowly than 1.1.x with large + numbers of printers (STR #1653) + - cupsRasterInterpretPPD() didn't support the + cupsPreferredBitsPerColor attribute, and imagetoraster + didn't use the new API. + - The "make test" script did not create all of the necessary + subdirectories for testing (STR #1638) + - The scheduler did not prevent rotation of logs + redirected to /dev/null (STR #1651) + - "make test" did not include the SNMP backend in the + test environment (STR #1625) + - The EPM packaging files did not work (STR #1621) + - "Use Default Configuration" inserted a broken + configuration file (STR #1624) + - Redirects in the web interface did not always preserve + the encrypted status of a connection (STR #1603) + - Added the Apple "pap" backend. + - Added CUPS library to CUPS Image shared library + linkage to support Linux --as-needed linker option + (STR #1606) + - Fixed support for --enable-pie (STR #1609) + - The pdftops filter did not validate the length of the + encryption key (STR #1608) + - Updated the Polish localization. + - "Encryption Required" in the cupsd.conf file now only + requires encryption when the connection is not over the + loopback interface or domain socket. + - Printer names containing "+" were not quoted properly in + the web interface (STR #1600) + - The SNMP backend now reports the make and model in the + information string so that the auto-generated printer + name is more useful than just an IP address. + + +CHANGES IN CUPS V1.2rc3 + + - The cups-lpd program always did reverse lookups on the + client address, which could be a performance problem. + Added a "-n" option to disable lookups. + - When configured with SSL support, require encryption by + default when displaying the /admin location (STR #1592) + - The next job ID was not computed correctly if the job + cache file got out of sync with the spool directory + (STR #1582) + - The PNG image handling code used deprecated functions + from libpng (STR #1587) + - Added a Polish translation (STR #1584, STR #1586) + - More changes to the scheduler to improve battery life + on portable devices (STR #1583) + - Changed the default log level for status messages back + to "DEBUG" to be consistent with CUPS 1.1.x (STR #1579) + - The error string was not set properly when + cupsDoFileRequest() was given the name of a directory + (STR #1578) + - Fixed handling of job-hold-until (STR #1581) + - Added explicit notes to the cupsaddsmb man page + explaining that the driver filenames are case-sensitive + under UNIX and that they must be all lowercase (Windows + 2000) or all UPPERCASE (Windows 95/98/Me) to work (STR + #1568) + - The USB backend incorrectly split the manufacturer name + if it contained spaces (STR #1566) + - The scheduler would hang when listing PPD files for a + manufacturer whose name contained spaces (STR #1567) + - Added the SNMP backend for network printer discovery + (STR #1555) + - cupstestppd now fails PPD files with 1284DeviceId + instead of 1284DeviceID, and cups-driverd uses a + case-insensitive comparison when looking for it (STR + #1573) + - cupsDoFileRequest() and cupsDoRequest() now work + properly with non-blocking HTTP connections. + - Added Swedish translation (STR #1569) + - "make install" now installs the MIME files with world + read permissions (STR #1565) + - More CDSA encryption support fixes (STR #1563) + - Updated the default mime.types file to support printing + of files that do not have a locally-recognized MIME + media type to raw or System V queues. + - Updated the serial port detection code on Linux (STR + #1562) + - Added some more error checking to httpGetHostname() + (STR #1561) + - The title of some administration pages was not + localized (STR #1548) + - The edit-config.tmpl file was not generated or + installed for the Spanish or Japanese localizations + (STR #1547) + - The mimeDelete() function freed the types before the + filters, but the filters needed the type data (STR #1558) + - The scheduler didn't keep track of the status pipes + properly, leading to a bad select() for multi-file jobs + (STR #1559) + - The cupstestdsc program didn't validate the ordinal + page number value for %%Page: comments. + + +CHANGES IN CUPS V1.2rc2 + + - The scheduler was not always using the string pool, + causing random crashes. + - The lpmove and the web interface's Move Job button did + not work with stopped jobs (STR #1534) + - The PostScript filter did not handle the page-set + option properly with number-up printing (STR #1543) + - The scheduler now only warns about unsupported ACLs + once (STR #1532) + - The "fitplot" option did not work with output from + Mozilla (STR #1542) + - The imagetops filter did not work with Level 2 or 3 + printers (STR #1533) + - The scheduler now recognizes PostScript files with PJL + commands that do not include an ENTER LANGUAGE command. + - Added --with-printcap configure option. + - 64-bit SSL fixes for MacOS X. + - The scheduler didn't send some printer state change + events. + - The scheduler didn't send jobs to busy remote printers. + - Fixed some problems with the launchd support. + - Added new USB printer backend for MacOS X. + - The PostScript filter now handles files that start with + an incomplete PJL header (PR #6076) + - The web interface language selection code did not try + the generic language localization (STR #1531) + - The language cache, string pool, and transcoding caches + are now process global instead of per-thread to avoid + problems with GNOME and to allow for data sharing + between threads (STR #1530) + - Fixed a CUPS 1.1.x compatibility bug (STR #1528) + - The web interface redirection after certain printer + administration tasks was broken (STR #1516) + - Web interface authorization could get stuck (STR #1512) + - Localization updates (STR #1513, STR #1518, STR #1520) + - The pstops filter didn't work with some files (STR + #1523) + - "./configure --enable-static" didn't work (STR #1522) + - The scheduler was not using the configured default + Group (STR #1521) + - The web interface still did not show the localized time + and date for some locales and systems (STR #1509) + - httpAddrGetList() would crash on systems without + getaddrinfo(). + - Socket URIs without a trailing slash would cause the + port number to not be accepted (STR #1519) + - Local raw and System V printers were not advertised as + such for printer browsing (STR #1502) + - The RPM spec file incorrectly put duplicate copies of + the Japanese and Spanish web interface templates in the + main cups package (STR #1517) + - cupsSetDests() did not explicitly set the permissions + of the /etc/cups/lpoptions file (STR #1508) + - The lpq command crashed with the -h option (STR #1515) + + +CHANGES IN CUPS V1.2rc1 + + - Documentation updates (STR #1497, STR #1498) + - The scheduler now redirects browsers to https: URLs + when encryption is required. + - The scheduler would crash when printing with a banner + (STR #1500) + - cups-driverd did not use the LanguageEncoding attribute + in PPD files to convert the NickName to UTF-8 (STR + #1503) + - The lpadmin command could not set the + printer-error-policy attribute (STR #1504) + - The web interface did not show the time and date in the + correct format for the locale (STR #1505) + - CUPS no longer accepts print jobs if a printer does not + support the file format (STR #1501) + - Cleaned up the PostScript filter (pstops) so that it + properly supports %%IncludeFeature and page scaling + (STR #1453) + - Fixed the cupsFileRewind() and cupsFileSeek() functions + to work properly with uncompressed files. + - Added cupsFileGetLine(), cupsFileStderr(), + cupsFileStdin(), and cupsFileStdout() functions to the + CUPS library. + - Added a new cupstestdsc program to test the DSC + conformance of PostScript files. + - Added KDE/GNOME icons and a Manage Printers menu item. + - Added --enable-image and --enable-pdftops configure + options to control whether the image and PDF filters + are built and installed (default = yes for all + platforms but MacOS X) + - Fixed a minor memory leak in the PPD API. + - Fixed transcoding issues (STR #1493) + - The scheduler now enforces a minimum job cost of 100 + when doing FilterLimit checks. + - The scheduler would leak file descriptors when printing + to raw queues (STR #1491) + - The IPv6 support did not compile on Tru64 UNIX (STR + #1488) + - ppdOpen2() now converts the NickName and all UI text to + UTF-8 (STR #1475) + - The Set Allowed Users web page did not work (STR #1486) + - When the default policy was not set or set to a non- + existing policy, the scheduler did not set the default + policy name to "default" (STR #1484) + - The Zebra CPCL driver did not use the correct righthand + margin for the 4" wide label sizes. + - Fixed a problem with the parsing of fractional real + numbers in PPD files. + - Added Spanish localization files (STR #1480) + - Fixed localization of a few scheduler messages (STR + #1478) + - Fixed support for HEAD requests in the scheduler (STR + #1481) + + +CHANGES IN CUPS V1.2b2 + + - Updated the CUPS design description. + - Added --enable-32bit and --enable-64bit configure + options to allow building of separate 32/64-bit + libraries on systems that support both environments + (STR #1472) + - Various compiler warning fixes. + - Fixes for Solaris 10 builds against old GNU TLS and + LDAP libraries. + - Added a cupsArrayUserData() function to retrieve the + user data pointer for an array (useful for typing + arrays) + - The ppdEmitString() function did not compute the + required buffer size properly, leading to dropped + characters on the end of the printer commands in pstops + and imagetops (STR #1470) + + +CHANGES IN CUPS V1.2b1 + + - The serial backend now supports Equinox 8-port serial + hubs (STR #526) + - The IPP backend now supports a compression option to + compress print files as they are sent to the remote + server (STR #956) + - The CUPS browse protocol now supports passing of + default options and browse timeout values from the + server to the clients (STR #800) + - Implicit classes that timed out could cause the + scheduler to crash (STR #1439) + - Added DragonFly support in local device backends (STR + #1362) + - Added LDAP printer browsing support (STR #338) + - Added official support for printer maintenance commands + via the CUPS Command file format and hooks in the + printer-type and web interfaces (STR #932) + - The HP-GL/2 filter could get in an infinite loop trying + to convert HP-PCL files (STR #1415) + - CUPS now implements the HTTP/1.1 Expect header (STR + #1407) + - Options in PPD files are no longer automatically put in + an "Extra" group; rather, all options that are not + inside an Open/CloseGroup will be placed in the + "General" group (STR #1385) + - The scheduler now creates a job-uuid attribute that + uniquely identifies a job on a network (STR #1410) + - The init script now unsets the TMPDIR environment + variable to prevent user temporary directories from + being used by cupsd accidentally (STR #1424) + - Added support for launchd on MacOS X. + - Added support for notify_post on MacOS X. + - Added support for DBUS on Linux. + - All of the Berkeley (except for lpc) and System V + commands now support specification of user, host, and + port (STR #1028, STR #1029, STR #1087) + - The lpmove command now allows you to move all jobs for + a given queue (STR #56) + - The web interface now supports moving of a job or jobs + to another queue (STR #56) + - The web interface now provides searching, paging, and + changing of the sort/display order of classes, jobs, + and printers. + - cupsaddsmb now accepts a password on the command-line + and supports passwords with special characters (STR + #822, STR #1236) + - ppdLoad*() no longer tries to "fix" bad characters in + UI text (STR #1101) + - Printer names can now (reliably) contain Unicode + characters (STR #896) + - The lpstat command now shows the time and date of the + last printer state change instead of the hardcoded "Jan + 01 00:00" (STR #659) + - The scheduler now adds a job-actual-printer-uri + attribute to job objects when printing to a class (STR + #116) + - The scheduler now logs log file open errors to the + system log (STR #1289) + - The scheduler now sets the job-originating-user-name to + the authenticated username, if available (STR #1318) + - The scheduler now only updates the permissions of SSL + keys and certificates when they are under the + ServerRoot directory (STR #1324) + - The rastertodymo driver has been renamed to + rastertolabel (a symlink is installed so that existing + queues continue to work) and now also supports Zebra's + CPCL language. + - The lpstat command could show the wrong active job for + a printer (STR #1301) + - Fixed a potential crash problem in the scheduler when + aborting a CGI program (STR #1290) + - Added a "cancel all jobs" button to the class and + printer web interfaces (STR #1140) + - The add-printer web page now shows the + set-printer-options page after the printer has been + added (STR #690) + - The classes web page now provides links to each of the + member printers (STR #307) + - CUPS now handles HTTP request/response lines up to 32k + in length; this is mainly for better cookie support + (STR #1274) + - Added support for the Apache PassEnv and SetEnv + directives to cupsd.conf (STR #853) + - Added large file (64-bit) support (STR #541) + - Fixed a performance issue with the ippReadIO() + implementation (STR #1284) + - Fixed a performance issue with the scheduler's implicit + class implementation (STR #1283) + - The pdftops filter now adds the Title and Creator + fields from the PDF file to the PostScript document + comments section (STR #539, STR #830) + - Added a new cups_array_t and cupsArray*() functions to + the CUPS API to support sorted lists of data. + - Made the CUPS API library thread-safe (STR #1276) + - Added "media" option support for EFI EFMediaType option + (STR #902) + - Added write buffering to the HTTP code to improve + performance (STR #547) + - The scheduler now uses the attributes-natural-language + attribute to localize banner pages (STR #386) + - The scheduler now returns the address that was used to + connect to it (STR #1076) + - Fixed a problem with N-up printing and OpenOffice (STR + #576) + - Added support for the GCC position independent + executable options (STR #1209) + - Added new BrowseLocalProtocols and + BrowseRemoteProtocols directives to cupsd.conf, + allowing for different browse protocols for local and + remote printers (STR #877) + - PPD files can now contain strings up to 256k in length + (STR #1215) + - The pstops filter now supports the IncludeFeature DSC + comment (STR #1212) + - The pstops filter now disables the setpagedevice + procedure when doing N-up printing (STR #1161) + - The serial backend now supports "stop=1", "stop=2", + "parity=space", and "parity=mark" options (STR #1155) + - "make install" no longer overwrites an existing PAM + configuration file (STR #1064) + - The scheduler now closes all files on startup when run + in daemon mode (STR #1009) + - Added a new RGBW colorspace to the CUPS raster format + (STR #1071) + - The pdftops filter now sets the page size based on the + media box when not scaling the output (STR #912) + - The pdftops filter now supports masked images (STR + #281) + - The pdftops filter produced large output when rendering + PDF files containing lot of repeated images (STR #327) + - The pdftops filter now minimizes print processing of + PDF files when using the page-ranges option (STR #273) + - Updated pdftops filter to Xpdf 3.01. + - Added new cupsBackchannelRead() and + cupsBackchannelWrite() functions, as well as + backchannel support to the parallel, serial, socket, + and USB backends (STR #1252) + - The parallel and USB backends now treat a "no space + available" error as an out-of-paper condition (STR + #1225) + - The "lpc" command now supports the "status all" command + (STR #1004) + - ippReadIO() did not read collections properly (STR + #1249) + - The "make test" script now creates the test files in + "/tmp/cups-$USER" instead of "/tmp/$USER" (STR #981) + - All backends now abort on error when printing a job to + a class - this allows the next printer in the class to + print the job (STR #1084) + - The scheduler now verifies that a printer supports + Letter or A4 media sizes before setting them as the + initial default (STR #1250) + - The cupstestppd program now flags bad Resolution + options (STR #1269) + - The USB backend now retries printing when the printer + is disconnected or turned off (STR #1267) + - Added new httpGetHostname() function to CUPS API, and + use it instead of gethostname() so that the web + interface will work correctly on systems whose hostname + is not the FQDN (STR #1266) + - The scheduler now stops printers if the backend for the + queue is missing on startup (STR #1265) + - The configure script now supports "--disable-library" + to disable particular image file format support + libraries, even if they are available on the build + system (STR #1248) + - The IPP backend did not always report on the total + number of pages that were printed (STR #1251) + - The lpstat program could display garbage date and time + values for locales whose date format exceeded 31 + characters (STR #1263) + - The cupstestppd program would segfault when testing + certain broken PPD files (STR #1268) + - Dramatically reduced the overhead of implicit classes. + - Added new cupsDir*() functions to CUPS API. + - Printers can now be published individually for sharing. + - Fixed a bug in the scheduler's startup signalling code + which caused cupsd to send the SIGUSR1 signal to the + init process instead of the original parent process + (STR #1258) + - Added new on-line help CGI to web interface to provide + searchable help. + - Devices are now tracked dynamically, with each query + doing a new device scan. This eliminates a previous + startup delay caused by slow backends and allows new + printers to be seen without restarting the server, + however it limits the amount of device URI checking + that can be done (basically now the scheduler only + requires a URI with a method that is a listed backend) + - Added new printer auto-detection, server configuration, + and log file viewing to the administration web page. + - Added new "set allowed users" web interface to set the + list of allowed users for a printer or class. + - The scheduler, command-line, and web interfaces now + limit the list of printers and classes to those + accessible by a user. + - cupsMarkOptions() now handles more non-standard + duplexing options and choices (STR #915) + - cups-lpd now honors remote banner requests with the + "standard" banner whenever a printer does not have one + defined (STR #1220) + - The scheduler's denial-of-service checks did not work + properly with IPv6 addresses (STR #1134) + - The lp and lpr commands did not error out properly when + they were unable to write to a temporary file (STR + #1129) + - The pstops filter did not handle Adobe-specific + comments in Windows NT driver output (STR #1085) + - "lpstat -l -p" incorrectly reported the printer + interface (STR #936) + - The web interface now operates exclusively with the + UTF-8 encoding, and sends the appropriate character set + and header information to the web browser (STR #919, + STR #1007) + - Added a "set allowed users" interface to the web + interface so that you can set the list of allowed or + denied users/groups for a printer or class. + - Disallow the "#" character in printer names, since it + has special meaning in the shell, config files, and in + URIs (STR #917, STR #1202) + - Added a new application/x-csource MIME type, and + support for it to the texttops filter so that you can + pretty print plain text files without the C/C++ + keywords being highlighted. + - The pdftops filter did not compile with GCC 4.0 (STR + #1226) + - The texttops filter did not highlight preprocessor + directives followed by a tab properly. + - HP PJL output now uses both JOB DISPLAY and RDYMSG + commands to show the current job on the printer's + display (STR #1218) + - Local authentication certificates are now stored in + /var/run/cups/certs by default instead of + /etc/cups/certs (STR #1211) + - Backends now use "&" to separate options in device + URIs; "+" is still recognized but is deprecated (STR + #842) + - The USB backend no longer supports the usb:/dev/foo + format on systems that support device ID queries. + - Forced classification markings did not work when the + job-sheets parameters were "none,none". + - "lpstat -l -p" incorrectly showed all users as allowed, + even if the queue was restricted to certain users (STR + #801) + - The scheduler now automatically detects SSL/TLS clients + without using the SSLPort/SSLListen directives. + - The CUPS API and scheduler no longer support SSLv2- + encrypted connections. + - Updated the cupsaddsmb utility to correctly export the + CUPS driver for Windows. + - Fixed a signal-handling bug in httpRead() which + ultimately caused the server to print multiple copies + when it was busy (STR #1184) + - The cupsFile API now uses the O_APPEND option when + opening files in append mode (STR #990) + - The md5.h header and md5_* functions are now officially + private and have been renamed to avoid conflicts with + other implementations with the same name. + - The pdftops filter incorrectly embedded some Type1 + fonts (STR #1093) + - The scheduler didn't detect a closed connection in the + middle of an IPP request (STR #1153) + - The scheduler could block trying to read the job status + if there was input pending and the job was cancelled in + the same input cycle (STR #1157) + - The scheduler could crash when deleting a class due to + infinite recursion. + - Updated the Zebra ZPL label printer driver to use the + run-length encoding and support more options. + - Updated serial backend to scan for /dev/ttyC* as well + as /dev/ttyc* for Cyclades serial ports (STR #1049) + - The scheduler could hang reading the job status under + certain circumstances (STR #1068) + - The USB backend termination signal code was inverted + (STR #1046) + - Moved enable and disable commands to sbindir to be + consistent. + - Added new cupsRasterInterpretPPD() function for RIP + filters to setup the raster page header from + PostScript commands in a PPD file. + - The CUPS browsing protocol now offers a "delete" bit + to remove printers as soon as they are deleted on the + server or as soon as the server shuts down gracefully + (STR #793) + - The CUPS_SERVER and ServerName directives (client.conf + and ~/.cupsrc) may now contain names of the form + "server:port" and "/path/to/domain/socket". + - The "cancel -u user" command now works for ordinary + users (STR #751) + - Added test run support to "make test" target (STR #64) + - Added domain socket support (STR #656) + - Added BrowseLocalOptions directive to allow the + administrator to add printer URI options to the browse + URI, e.g. "encryption=required" (STR #732) + - Added BrowseRemoteOptions directive to allow the + administrator to add standard URI options to the + remote printer URI, e.g. "encryption=required" (STR + #732) + - Now put "-I.." compiler option in front of all others + to ensure that local CUPS headers are used before + installed headers (STR #437) + - New cupsLangPrintf() and cupsLangPuts() for localized + interfaces. + - Now support custom attributes and extended options in + PPD files. + - Now provide functions to save PPD files. + - New policy mechanism allows per-operation and + per-printer control over what users and groups are + allowed to do various IPP operations. + - New error policy mechanism to control how aborted + backend errors are handled by the scheduler + (abort-job, retry-job, requeue-job, stop-printer) + - Updated the printer test page with a better color + wheel and a separate grayscale ramp. + - A single backend process is now run to send all print + data for a job. + - Backends and filters can now send and receive + backchannel data over file descriptor 3. + - Updated the raster stream format to support more + user-defined attributes and to do compression of the + page data. diff --git a/INSTALL.txt b/INSTALL.txt index 329409b374..df6022b46d 100644 --- a/INSTALL.txt +++ b/INSTALL.txt @@ -1,5 +1,5 @@ -INSTALL - CUPS v1.2rc1 - 2006-03-24 ------------------------------------ +INSTALL - CUPS v1.2.0 - 2006-05-08 +---------------------------------- This file describes how to compile and install CUPS from source code. For more information on CUPS see the file called diff --git a/Makedefs.in b/Makedefs.in index 8629f6a573..122d437b21 100644 --- a/Makedefs.in +++ b/Makedefs.in @@ -1,5 +1,5 @@ # -# "$Id: Makedefs.in 5563 2006-05-21 17:18:40Z mike $" +# "$Id: Makedefs.in 5564 2006-05-22 00:59:11Z mike $" # # Common makefile definitions for the Common UNIX Printing System (CUPS). # @@ -263,5 +263,5 @@ DBUSDIR = @DBUSDIR@ # -# End of "$Id: Makedefs.in 5563 2006-05-21 17:18:40Z mike $" +# End of "$Id: Makedefs.in 5564 2006-05-22 00:59:11Z mike $" # diff --git a/Makefile b/Makefile index e9a1f6d92b..d1fe2d02dc 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ # -# "$Id: Makefile 5546 2006-05-19 12:44:15Z mike $" +# "$Id: Makefile 5547 2006-05-19 12:44:29Z mike $" # # Top-level Makefile for the Common UNIX Printing System (CUPS). # @@ -239,5 +239,5 @@ epm: # -# End of "$Id: Makefile 5546 2006-05-19 12:44:15Z mike $". +# End of "$Id: Makefile 5547 2006-05-19 12:44:29Z mike $". # diff --git a/README.txt b/README.txt index fc0a146b48..4595be8c4c 100644 --- a/README.txt +++ b/README.txt @@ -1,5 +1,5 @@ -README - CUPS v1.2rc1 - 2006-03-24 ----------------------------------- +README - CUPS v1.2.0 - 2006-05-08 +--------------------------------- Looking for compile instructions? Read the file "INSTALL.txt" instead... diff --git a/backend/ipp.c b/backend/ipp.c index 8061d42cbb..315f8e0585 100644 --- a/backend/ipp.c +++ b/backend/ipp.c @@ -1,5 +1,5 @@ /* - * "$Id: ipp.c 5553 2006-05-20 12:22:27Z mike $" + * "$Id: ipp.c 5554 2006-05-20 12:23:40Z mike $" * * IPP backend for the Common UNIX Printing System (CUPS). * @@ -1619,5 +1619,5 @@ sigterm_handler(int sig) /* I - Signal */ /* - * End of "$Id: ipp.c 5553 2006-05-20 12:22:27Z mike $". + * End of "$Id: ipp.c 5554 2006-05-20 12:23:40Z mike $". */ diff --git a/backend/serial.c b/backend/serial.c index 0442c29261..33d74f8b50 100644 --- a/backend/serial.c +++ b/backend/serial.c @@ -1,5 +1,5 @@ /* - * "$Id: serial.c 5553 2006-05-20 12:22:27Z mike $" + * "$Id: serial.c 5554 2006-05-20 12:23:40Z mike $" * * Serial port backend for the Common UNIX Printing System (CUPS). * @@ -1169,5 +1169,5 @@ list_devices(void) /* - * End of "$Id: serial.c 5553 2006-05-20 12:22:27Z mike $". + * End of "$Id: serial.c 5554 2006-05-20 12:23:40Z mike $". */ diff --git a/backend/usb-unix.c b/backend/usb-unix.c index 39df2e67d8..90d58e2a80 100644 --- a/backend/usb-unix.c +++ b/backend/usb-unix.c @@ -1,5 +1,5 @@ /* - * "$Id: usb-unix.c 5553 2006-05-20 12:22:27Z mike $" + * "$Id: usb-unix.c 5554 2006-05-20 12:23:40Z mike $" * * USB port backend for the Common UNIX Printing System (CUPS). * @@ -633,5 +633,5 @@ open_device(const char *uri) /* I - Device URI */ /* - * End of "$Id: usb-unix.c 5553 2006-05-20 12:22:27Z mike $". + * End of "$Id: usb-unix.c 5554 2006-05-20 12:23:40Z mike $". */ diff --git a/cgi-bin/admin.c b/cgi-bin/admin.c index db6baa4b6f..85142e3a0f 100644 --- a/cgi-bin/admin.c +++ b/cgi-bin/admin.c @@ -1,5 +1,5 @@ /* - * "$Id: admin.c 5571 2006-05-22 18:46:55Z mike $" + * "$Id: admin.c 5572 2006-05-22 18:47:09Z mike $" * * Administration CGI for the Common UNIX Printing System (CUPS). * @@ -2893,5 +2893,5 @@ match_string(const char *a, /* I - First string */ /* - * End of "$Id: admin.c 5571 2006-05-22 18:46:55Z mike $". + * End of "$Id: admin.c 5572 2006-05-22 18:47:09Z mike $". */ diff --git a/cgi-bin/classes.c b/cgi-bin/classes.c index 1c22d513e2..f639525cc3 100644 --- a/cgi-bin/classes.c +++ b/cgi-bin/classes.c @@ -1,5 +1,5 @@ /* - * "$Id: classes.c 5571 2006-05-22 18:46:55Z mike $" + * "$Id: classes.c 5572 2006-05-22 18:47:09Z mike $" * * Class status CGI for the Common UNIX Printing System (CUPS). * @@ -463,5 +463,5 @@ show_class(http_t *http, /* I - Connection to server */ /* - * End of "$Id: classes.c 5571 2006-05-22 18:46:55Z mike $". + * End of "$Id: classes.c 5572 2006-05-22 18:47:09Z mike $". */ diff --git a/cgi-bin/html.c b/cgi-bin/html.c index 62e0cc517b..da5f7cd203 100644 --- a/cgi-bin/html.c +++ b/cgi-bin/html.c @@ -1,5 +1,5 @@ /* - * "$Id: html.c 5548 2006-05-19 19:38:31Z mike $" + * "$Id: html.c 5549 2006-05-19 19:39:28Z mike $" * * HTML support functions for the Common UNIX Printing System (CUPS). * @@ -183,5 +183,5 @@ cgi_null_passwd(const char *prompt) /* I - Prompt string (unused) */ /* - * End of "$Id: html.c 5548 2006-05-19 19:38:31Z mike $". + * End of "$Id: html.c 5549 2006-05-19 19:39:28Z mike $". */ diff --git a/cgi-bin/ipp-var.c b/cgi-bin/ipp-var.c index 83dc0af745..0b515f123d 100644 --- a/cgi-bin/ipp-var.c +++ b/cgi-bin/ipp-var.c @@ -1,5 +1,5 @@ /* - * "$Id: ipp-var.c 5571 2006-05-22 18:46:55Z mike $" + * "$Id: ipp-var.c 5572 2006-05-22 18:47:09Z mike $" * * CGI <-> IPP variable routines for the Common UNIX Printing System (CUPS). * @@ -1279,5 +1279,5 @@ cgiText(const char *message) /* I - Message */ /* - * End of "$Id: ipp-var.c 5571 2006-05-22 18:46:55Z mike $". + * End of "$Id: ipp-var.c 5572 2006-05-22 18:47:09Z mike $". */ diff --git a/cgi-bin/printers.c b/cgi-bin/printers.c index 50dc2b3223..e8ec0d2b3a 100644 --- a/cgi-bin/printers.c +++ b/cgi-bin/printers.c @@ -1,5 +1,5 @@ /* - * "$Id: printers.c 5571 2006-05-22 18:46:55Z mike $" + * "$Id: printers.c 5572 2006-05-22 18:47:09Z mike $" * * Printer status CGI for the Common UNIX Printing System (CUPS). * @@ -638,5 +638,5 @@ show_printer(http_t *http, /* I - Connection to server */ /* - * End of "$Id: printers.c 5571 2006-05-22 18:46:55Z mike $". + * End of "$Id: printers.c 5572 2006-05-22 18:47:09Z mike $". */ diff --git a/cgi-bin/template.c b/cgi-bin/template.c index d2fd9b8e3c..82cf0e45df 100644 --- a/cgi-bin/template.c +++ b/cgi-bin/template.c @@ -1,5 +1,5 @@ /* - * "$Id: template.c 5548 2006-05-19 19:38:31Z mike $" + * "$Id: template.c 5549 2006-05-19 19:39:28Z mike $" * * CGI template function. * @@ -670,5 +670,5 @@ cgi_puturi(const char *s, /* I - String to output */ /* - * End of "$Id: template.c 5548 2006-05-19 19:38:31Z mike $". + * End of "$Id: template.c 5549 2006-05-19 19:39:28Z mike $". */ diff --git a/cgi-bin/var.c b/cgi-bin/var.c index 113b8d026e..17d507756d 100644 --- a/cgi-bin/var.c +++ b/cgi-bin/var.c @@ -1,5 +1,5 @@ /* - * "$Id: var.c 5548 2006-05-19 19:38:31Z mike $" + * "$Id: var.c 5549 2006-05-19 19:39:28Z mike $" * * CGI form variable and array functions. * @@ -1027,5 +1027,5 @@ cgi_unlink_file(void) /* - * End of "$Id: var.c 5548 2006-05-19 19:38:31Z mike $". + * End of "$Id: var.c 5549 2006-05-19 19:39:28Z mike $". */ diff --git a/config-scripts/cups-common.m4 b/config-scripts/cups-common.m4 index f31fc36914..5495beaa0b 100644 --- a/config-scripts/cups-common.m4 +++ b/config-scripts/cups-common.m4 @@ -1,5 +1,5 @@ dnl -dnl "$Id: cups-common.m4 5502 2006-05-08 21:09:15Z mike $" +dnl "$Id: cups-common.m4 5466 2006-04-26 19:52:27Z mike $" dnl dnl Common configuration stuff for the Common UNIX Printing System (CUPS). dnl @@ -29,7 +29,7 @@ dnl Set the name of the config header file... AC_CONFIG_HEADER(config.h) dnl Versio number information... -CUPS_VERSION="1.3svn" +CUPS_VERSION="1.2svn" CUPS_REVISION="" if test -z "$CUPS_REVISION" -a -d .svn; then CUPS_REVISION="-r`svnversion . | awk -F: '{print $NF}' | sed -e '1,$s/[[a-zA-Z]]*//g'`" @@ -265,5 +265,5 @@ AC_SUBST(DEFAULT_IPP_PORT) AC_DEFINE_UNQUOTED(CUPS_DEFAULT_IPP_PORT,$DEFAULT_IPP_PORT) dnl -dnl End of "$Id: cups-common.m4 5502 2006-05-08 21:09:15Z mike $". +dnl End of "$Id: cups-common.m4 5466 2006-04-26 19:52:27Z mike $". dnl diff --git a/config-scripts/cups-compiler.m4 b/config-scripts/cups-compiler.m4 index 964931f9d1..5619374f21 100644 --- a/config-scripts/cups-compiler.m4 +++ b/config-scripts/cups-compiler.m4 @@ -1,5 +1,5 @@ dnl -dnl "$Id: cups-compiler.m4 5565 2006-05-22 01:08:19Z mike $" +dnl "$Id: cups-compiler.m4 5566 2006-05-22 01:10:11Z mike $" dnl dnl Compiler stuff for the Common UNIX Printing System (CUPS). dnl @@ -488,5 +488,5 @@ if test $uname = HP-UX; then fi dnl -dnl End of "$Id: cups-compiler.m4 5565 2006-05-22 01:08:19Z mike $". +dnl End of "$Id: cups-compiler.m4 5566 2006-05-22 01:10:11Z mike $". dnl diff --git a/config-scripts/cups-directories.m4 b/config-scripts/cups-directories.m4 index 7a378ad3ad..afbeba5aa2 100644 --- a/config-scripts/cups-directories.m4 +++ b/config-scripts/cups-directories.m4 @@ -1,5 +1,5 @@ dnl -dnl "$Id: cups-directories.m4 5546 2006-05-19 12:44:15Z mike $" +dnl "$Id: cups-directories.m4 5547 2006-05-19 12:44:29Z mike $" dnl dnl Directory stuff for the Common UNIX Printing System (CUPS). dnl @@ -302,5 +302,5 @@ AC_DEFINE_UNQUOTED(CUPS_STATEDIR, "$localstatedir/run/cups") AC_SUBST(CUPS_STATEDIR) dnl -dnl End of "$Id: cups-directories.m4 5546 2006-05-19 12:44:15Z mike $". +dnl End of "$Id: cups-directories.m4 5547 2006-05-19 12:44:29Z mike $". dnl diff --git a/config-scripts/cups-ldap.m4 b/config-scripts/cups-ldap.m4 index d2171eb302..c78e175098 100644 --- a/config-scripts/cups-ldap.m4 +++ b/config-scripts/cups-ldap.m4 @@ -1,5 +1,5 @@ dnl -dnl "$Id: cups-ldap.m4 5563 2006-05-21 17:18:40Z mike $" +dnl "$Id: cups-ldap.m4 5564 2006-05-22 00:59:11Z mike $" dnl dnl LDAP configuration stuff for the Common UNIX Printing System (CUPS). dnl @@ -46,5 +46,5 @@ AC_SUBST(LIBLDAP) dnl -dnl End of "$Id: cups-ldap.m4 5563 2006-05-21 17:18:40Z mike $". +dnl End of "$Id: cups-ldap.m4 5564 2006-05-22 00:59:11Z mike $". dnl diff --git a/config-scripts/cups-sharedlibs.m4 b/config-scripts/cups-sharedlibs.m4 index d6f224f257..0654faf894 100644 --- a/config-scripts/cups-sharedlibs.m4 +++ b/config-scripts/cups-sharedlibs.m4 @@ -1,5 +1,5 @@ dnl -dnl "$Id: cups-sharedlibs.m4 5567 2006-05-22 15:33:11Z mike $" +dnl "$Id: cups-sharedlibs.m4 5568 2006-05-22 15:34:01Z mike $" dnl dnl Shared library support for the Common UNIX Printing System (CUPS). dnl @@ -173,5 +173,5 @@ AC_SUBST(IMGLIBS) AC_SUBST(EXPORT_LDFLAGS) dnl -dnl End of "$Id: cups-sharedlibs.m4 5567 2006-05-22 15:33:11Z mike $". +dnl End of "$Id: cups-sharedlibs.m4 5568 2006-05-22 15:34:01Z mike $". dnl diff --git a/config-scripts/cups-ssl.m4 b/config-scripts/cups-ssl.m4 index 35d025c7fb..4446f22aca 100644 --- a/config-scripts/cups-ssl.m4 +++ b/config-scripts/cups-ssl.m4 @@ -1,5 +1,5 @@ dnl -dnl "$Id: cups-ssl.m4 5524 2006-05-15 13:52:09Z mike $" +dnl "$Id: cups-ssl.m4 5525 2006-05-15 13:52:16Z mike $" dnl dnl OpenSSL/GNUTLS stuff for the Common UNIX Printing System (CUPS). dnl @@ -114,5 +114,5 @@ AC_SUBST(EXPORT_SSLLIBS) dnl -dnl End of "$Id: cups-ssl.m4 5524 2006-05-15 13:52:09Z mike $". +dnl End of "$Id: cups-ssl.m4 5525 2006-05-15 13:52:16Z mike $". dnl diff --git a/cups-config.in b/cups-config.in index 0c88b72b92..77541e48c0 100755 --- a/cups-config.in +++ b/cups-config.in @@ -1,6 +1,6 @@ #! /bin/sh # -# "$Id: cups-config.in 5503 2006-05-10 18:55:39Z mike $" +# "$Id: cups-config.in 5504 2006-05-10 18:57:46Z mike $" # # CUPS configuration utility. # @@ -24,7 +24,7 @@ # VERSION="@CUPS_VERSION@" -APIVERSION="1.3" +APIVERSION="1.2" prefix=@prefix@ exec_prefix=@exec_prefix@ @@ -150,5 +150,5 @@ while test $# -gt 0; do done # -# End of "$Id: cups-config.in 5503 2006-05-10 18:55:39Z mike $". +# End of "$Id: cups-config.in 5504 2006-05-10 18:57:46Z mike $". # diff --git a/cups/Makefile b/cups/Makefile index 8bd7f808e4..6f2fc67b63 100644 --- a/cups/Makefile +++ b/cups/Makefile @@ -1,5 +1,5 @@ # -# "$Id: Makefile 5563 2006-05-21 17:18:40Z mike $" +# "$Id: Makefile 5564 2006-05-22 00:59:11Z mike $" # # API library Makefile for the Common UNIX Printing System (CUPS). # @@ -449,5 +449,5 @@ include Dependencies # -# End of "$Id: Makefile 5563 2006-05-21 17:18:40Z mike $". +# End of "$Id: Makefile 5564 2006-05-22 00:59:11Z mike $". # diff --git a/cups/auth.c b/cups/auth.c index 6dd85bbd39..8f515f8e0c 100644 --- a/cups/auth.c +++ b/cups/auth.c @@ -1,5 +1,5 @@ /* - * "$Id: auth.c 5558 2006-05-21 13:58:56Z mike $" + * "$Id: auth.c 5559 2006-05-21 13:59:42Z mike $" * * Authentication functions for the Common UNIX Printing System (CUPS). * @@ -249,5 +249,5 @@ cups_local_auth(http_t *http) /* I - HTTP connection to server */ /* - * End of "$Id: auth.c 5558 2006-05-21 13:58:56Z mike $". + * End of "$Id: auth.c 5559 2006-05-21 13:59:42Z mike $". */ diff --git a/cups/backchannel.c b/cups/backchannel.c index f2a7f0ede7..09833fe46a 100644 --- a/cups/backchannel.c +++ b/cups/backchannel.c @@ -1,5 +1,5 @@ /* - * "$Id: backchannel.c 5550 2006-05-19 20:20:15Z mike $" + * "$Id: backchannel.c 5551 2006-05-19 20:20:32Z mike $" * * Backchannel functions for the Common UNIX Printing System (CUPS). * @@ -197,5 +197,5 @@ cups_setup(fd_set *set, /* I - Set for select() */ /* - * End of "$Id: backchannel.c 5550 2006-05-19 20:20:15Z mike $". + * End of "$Id: backchannel.c 5551 2006-05-19 20:20:32Z mike $". */ diff --git a/cups/cups.h b/cups/cups.h index 94f9b8981b..64b389a08f 100644 --- a/cups/cups.h +++ b/cups/cups.h @@ -1,5 +1,5 @@ /* - * "$Id: cups.h 5502 2006-05-08 21:09:15Z mike $" + * "$Id: cups.h 5233 2006-03-06 03:39:28Z mike $" * * API definitions for the Common UNIX Printing System (CUPS). * @@ -61,9 +61,9 @@ extern "C" { * Constants... */ -# define CUPS_VERSION 1.0300 +# define CUPS_VERSION 1.0200 # define CUPS_VERSION_MAJOR 1 -# define CUPS_VERSION_MINOR 3 +# define CUPS_VERSION_MINOR 2 # define CUPS_VERSION_PATCH 0 # define CUPS_DATE_ANY -1 @@ -244,5 +244,5 @@ extern cups_file_t *cupsTempFile2(char *filename, int len); #endif /* !_CUPS_CUPS_H_ */ /* - * End of "$Id: cups.h 5502 2006-05-08 21:09:15Z mike $". + * End of "$Id: cups.h 5233 2006-03-06 03:39:28Z mike $". */ diff --git a/cups/encode.c b/cups/encode.c index 7d6f4cec47..a00e2c52a2 100644 --- a/cups/encode.c +++ b/cups/encode.c @@ -1,5 +1,5 @@ /* - * "$Id: encode.c 5544 2006-05-18 21:00:16Z mike $" + * "$Id: encode.c 5545 2006-05-18 21:00:56Z mike $" * * Option encoding routines for the Common UNIX Printing System (CUPS). * @@ -67,7 +67,6 @@ static const _ipp_option_t ipp_options[] = { "copies", IPP_TAG_INTEGER, IPP_TAG_JOB }, { "copies-default", IPP_TAG_INTEGER, IPP_TAG_PRINTER }, { "document-format", IPP_TAG_MIMETYPE, IPP_TAG_OPERATION }, - { "document-format-default", IPP_TAG_MIMETYPE, IPP_TAG_PRINTER }, { "finishings", IPP_TAG_ENUM, IPP_TAG_JOB }, { "finishings-default", IPP_TAG_ENUM, IPP_TAG_PRINTER }, { "fitplot", IPP_TAG_BOOLEAN, IPP_TAG_JOB }, @@ -89,7 +88,6 @@ static const _ipp_option_t ipp_options[] = { "natural-scaling-default", IPP_TAG_INTEGER, IPP_TAG_PRINTER }, { "notify-charset", IPP_TAG_CHARSET, IPP_TAG_SUBSCRIPTION }, { "notify-events", IPP_TAG_KEYWORD, IPP_TAG_SUBSCRIPTION }, - { "notify-events-default", IPP_TAG_KEYWORD, IPP_TAG_PRINTER }, { "notify-lease-time", IPP_TAG_INTEGER, IPP_TAG_SUBSCRIPTION }, { "notify-natural-language", IPP_TAG_LANGUAGE, IPP_TAG_SUBSCRIPTION }, { "notify-pull-method", IPP_TAG_KEYWORD, IPP_TAG_SUBSCRIPTION }, @@ -561,5 +559,5 @@ compare_ipp_options(_ipp_option_t *a, /* I - First option */ /* - * End of "$Id: encode.c 5544 2006-05-18 21:00:16Z mike $". + * End of "$Id: encode.c 5545 2006-05-18 21:00:56Z mike $". */ diff --git a/cups/getifaddrs.c b/cups/getifaddrs.c index 7653cfde94..abfd0fac6b 100644 --- a/cups/getifaddrs.c +++ b/cups/getifaddrs.c @@ -1,5 +1,5 @@ /* - * "$Id: getifaddrs.c 5503 2006-05-10 18:55:39Z mike $" + * "$Id: getifaddrs.c 5504 2006-05-10 18:57:46Z mike $" * * Network interface functions for the Common UNIX Printing System * (CUPS) scheduler. @@ -272,5 +272,5 @@ _cups_freeifaddrs(struct ifaddrs *addrs)/* I - Interface list to free */ /* - * End of "$Id: getifaddrs.c 5503 2006-05-10 18:55:39Z mike $". + * End of "$Id: getifaddrs.c 5504 2006-05-10 18:57:46Z mike $". */ diff --git a/cups/http-private.h b/cups/http-private.h index b95b007d8e..bef934ed92 100644 --- a/cups/http-private.h +++ b/cups/http-private.h @@ -1,5 +1,5 @@ /* - * "$Id: http-private.h 5503 2006-05-10 18:55:39Z mike $" + * "$Id: http-private.h 5504 2006-05-10 18:57:46Z mike $" * * Private HTTP definitions for the Common UNIX Printing System (CUPS). * @@ -187,5 +187,5 @@ extern void _cups_freeifaddrs(struct ifaddrs *addrs); #endif /* !_CUPS_HTTP_PRIVATE_H_ */ /* - * End of "$Id: http-private.h 5503 2006-05-10 18:55:39Z mike $". + * End of "$Id: http-private.h 5504 2006-05-10 18:57:46Z mike $". */ diff --git a/cups/mark.c b/cups/mark.c index a7d8fd7bd4..3b2226774f 100644 --- a/cups/mark.c +++ b/cups/mark.c @@ -1,5 +1,5 @@ /* - * "$Id: mark.c 5528 2006-05-15 20:03:12Z mike $" + * "$Id: mark.c 5529 2006-05-15 20:06:46Z mike $" * * Option marking routines for the Common UNIX Printing System (CUPS). * @@ -679,5 +679,5 @@ ppd_defaults(ppd_file_t *ppd, /* I - PPD file */ /* - * End of "$Id: mark.c 5528 2006-05-15 20:03:12Z mike $". + * End of "$Id: mark.c 5529 2006-05-15 20:06:46Z mike $". */ diff --git a/cups/page.c b/cups/page.c index f835c41c0f..f8b79832f0 100644 --- a/cups/page.c +++ b/cups/page.c @@ -1,5 +1,5 @@ /* - * "$Id: page.c 5548 2006-05-19 19:38:31Z mike $" + * "$Id: page.c 5549 2006-05-19 19:39:28Z mike $" * * Page size functions for the Common UNIX Printing System (CUPS). * @@ -193,5 +193,5 @@ ppdPageLength(ppd_file_t *ppd, /* I - PPD file */ /* - * End of "$Id: page.c 5548 2006-05-19 19:38:31Z mike $". + * End of "$Id: page.c 5549 2006-05-19 19:39:28Z mike $". */ diff --git a/cups/request.c b/cups/request.c index 6aff5126d8..329cce8813 100644 --- a/cups/request.c +++ b/cups/request.c @@ -1,5 +1,5 @@ /* - * "$Id: request.c 5556 2006-05-21 13:55:23Z mike $" + * "$Id: request.c 5555 2006-05-20 13:35:58Z mike $" * * IPP utilities for the Common UNIX Printing System (CUPS). * @@ -479,5 +479,5 @@ _cupsSetError(ipp_status_t status, /* I - IPP status code */ /* - * End of "$Id: request.c 5556 2006-05-21 13:55:23Z mike $". + * End of "$Id: request.c 5555 2006-05-20 13:35:58Z mike $". */ diff --git a/cups/snprintf.c b/cups/snprintf.c index 19dff87af7..683551b054 100644 --- a/cups/snprintf.c +++ b/cups/snprintf.c @@ -1,5 +1,5 @@ /* - * "$Id: snprintf.c 5527 2006-05-15 19:37:11Z mike $" + * "$Id: snprintf.c 5529 2006-05-15 20:06:46Z mike $" * * snprintf functions for the Common UNIX Printing System (CUPS). * @@ -368,6 +368,6 @@ _cups_snprintf(char *buffer, /* O - Output buffer */ /* - * End of "$Id: snprintf.c 5527 2006-05-15 19:37:11Z mike $". + * End of "$Id: snprintf.c 5529 2006-05-15 20:06:46Z mike $". */ diff --git a/doc/Makefile b/doc/Makefile index e5d8b85712..2e701b76c6 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -1,5 +1,5 @@ # -# "$Id: Makefile 5428 2006-04-18 20:45:30Z mike $" +# "$Id: Makefile 5500 2006-05-08 20:32:27Z mike $" # # Documentation makefile for the Common UNIX Printing System (CUPS). # @@ -167,7 +167,6 @@ HELPFILES = \ help/spec-command.html \ help/spec-design.html \ help/spec-ipp.html \ - help/spec-postscript.html \ help/spec-ppd.html \ help/spec-raster.html \ help/spec-stp.html \ diff --git a/doc/help/spec-pdf.html b/doc/help/spec-pdf.html deleted file mode 100644 index 862eb0cb6a..0000000000 --- a/doc/help/spec-pdf.html +++ /dev/null @@ -1,21 +0,0 @@ - - - - CUPS PDF Format - - - - -

CUPS PDF files (application/vnd.cups-pdf) are device-dependent -PDF/A files that contain a job ticket information. These files -are typically produced by the CUPS pdftopdf filter -which handles job ticket generation, imposition, page labeling, -scaling, and other formatting options requested by the user. CUPS -PDF files are intended for direct consumption by a PDF-capable -printer, PDF RIP, or the pdftops filter.

- -

More information will be posted here as the PDF workflow -filters are added to CUPS.

- - - diff --git a/doc/help/spec-postscript.html b/doc/help/spec-postscript.html deleted file mode 100644 index 7e9f9a8027..0000000000 --- a/doc/help/spec-postscript.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - - Generating PostScript for CUPS - - - - - - -

Introduction

- -

This document describes how to generate PostScript output for -CUPS and is largely based on the -Adobe TechNote #5001: PostScript Language Document Structuring -Conventions Specification Version 3.0. While CUPS can -generally print any PostScript file, following the rules in the -Adobe TechNote and this document will ensure that your PostScript -output will work reliably.

- -
Note: While PostScript is currently the -defacto-standard print job file format/language for UNIX-based -applications, it is slowly being phased out in favor of Adobe's -Portable Document Format ("PDF") which offers many advantages -over PostScript. MacOS X uses PDF as the primary print job file -format, and we expect Linux to soon follow. Both PostScript and -PDF are complex formats, and we highly recommend using high-level -toolkits whenever possible.
- -

Anatomy of a PostScript File

- -

PostScript files are ASCII text files starting with a header -line (%!PS-Adobe-3.0) followed by a combination of -comment lines starting with two percent signs (%%) and -PostScript code lines. The lines themselves should not exceed 255 -characters to conform to the DSC. The following short PostScript -file produces a box with a smiley face in it:

- -
-%!PS-Adobe-3.0
-%%BoundingBox: 36 36 576 756
-%%Pages: 1
-%%LanguageLevel: 2
-%%EndComments
-%%Page: (1) 1
-% Draw a black box around the page
-0 setgray
-1 setlinewidth
-36 36 540 720 rectstroke
-
-% Draw a two inch blue circle in the middle of the page
-0 0 1 setrgbcolor
-306 396 144 0 360 arc closepath fill
-
-% Draw two half inch yellow circles for eyes
-1 1 0 setrgbcolor
-252 432 36 0 360 arc closepath fill
-360 432 36 0 360 arc closepath fill
-
-% Draw the smile
-1 setlinecap
-18 setlinewidth
-306 396 99 200 340 arc stroke
-
-% Print it!
-showpage
-%%EOF
-
- -
- - -
Figure 1: Sample PostScript File Output
Sample PostScript File Output
- - -

Embedding Printer Options

- - -

Embedding Fonts and Text

- - -

Embedding Images

- - -
Note: While some printers support arbitrary -binary data in PostScript files, we do not recommend this -practice because it does not work with all printers or -interfaces. In most cases, the Base-85 encoding and compression -filters can be used to embed images with very little, if any, -increase in data size.
- - - - - diff --git a/doc/pl/images/button-accept-jobs.gif b/doc/pl/images/button-accept-jobs.gif index 8013e5de5c..5b8cd5b217 100644 Binary files a/doc/pl/images/button-accept-jobs.gif and b/doc/pl/images/button-accept-jobs.gif differ diff --git a/doc/pl/images/button-add-class.gif b/doc/pl/images/button-add-class.gif index ca9b8c616f..ce7ea6ccf4 100644 Binary files a/doc/pl/images/button-add-class.gif and b/doc/pl/images/button-add-class.gif differ diff --git a/doc/pl/images/button-add-printer.gif b/doc/pl/images/button-add-printer.gif index 1e099e647a..0f284487f7 100644 Binary files a/doc/pl/images/button-add-printer.gif and b/doc/pl/images/button-add-printer.gif differ diff --git a/doc/pl/images/button-add-this-printer.gif b/doc/pl/images/button-add-this-printer.gif index 4fa4e4d4ba..dc00856bd5 100644 Binary files a/doc/pl/images/button-add-this-printer.gif and b/doc/pl/images/button-add-this-printer.gif differ diff --git a/doc/pl/images/button-cancel-all-jobs.gif b/doc/pl/images/button-cancel-all-jobs.gif index 093b3e7fdb..84e724b258 100644 Binary files a/doc/pl/images/button-cancel-all-jobs.gif and b/doc/pl/images/button-cancel-all-jobs.gif differ diff --git a/doc/pl/images/button-cancel-job.gif b/doc/pl/images/button-cancel-job.gif index 1cc3be3af2..2d122bac5a 100644 Binary files a/doc/pl/images/button-cancel-job.gif and b/doc/pl/images/button-cancel-job.gif differ diff --git a/doc/pl/images/button-change-settings.gif b/doc/pl/images/button-change-settings.gif index 8abeb0774a..73de99527d 100644 Binary files a/doc/pl/images/button-change-settings.gif and b/doc/pl/images/button-change-settings.gif differ diff --git a/doc/pl/images/button-clean-print-heads.gif b/doc/pl/images/button-clean-print-heads.gif index 0daf9a9ac2..2f45608d8e 100644 Binary files a/doc/pl/images/button-clean-print-heads.gif and b/doc/pl/images/button-clean-print-heads.gif differ diff --git a/doc/pl/images/button-clear.gif b/doc/pl/images/button-clear.gif index 9e1c36d36f..e15a4bb3dd 100644 Binary files a/doc/pl/images/button-clear.gif and b/doc/pl/images/button-clear.gif differ diff --git a/doc/pl/images/button-continue.gif b/doc/pl/images/button-continue.gif index d0d291666d..93f849041d 100644 Binary files a/doc/pl/images/button-continue.gif and b/doc/pl/images/button-continue.gif differ diff --git a/doc/pl/images/button-delete-class.gif b/doc/pl/images/button-delete-class.gif index 38f69eca13..934b8d66b5 100644 Binary files a/doc/pl/images/button-delete-class.gif and b/doc/pl/images/button-delete-class.gif differ diff --git a/doc/pl/images/button-delete-printer.gif b/doc/pl/images/button-delete-printer.gif index 7e5bf74ea0..f7c6984186 100644 Binary files a/doc/pl/images/button-delete-printer.gif and b/doc/pl/images/button-delete-printer.gif differ diff --git a/doc/pl/images/button-edit-configuration-file.gif b/doc/pl/images/button-edit-configuration-file.gif index e892aa1d96..89fd8a7d65 100644 Binary files a/doc/pl/images/button-edit-configuration-file.gif and b/doc/pl/images/button-edit-configuration-file.gif differ diff --git a/doc/pl/images/button-export-samba.gif b/doc/pl/images/button-export-samba.gif index 1fdbf67f09..c6c333619f 100644 Binary files a/doc/pl/images/button-export-samba.gif and b/doc/pl/images/button-export-samba.gif differ diff --git a/doc/pl/images/button-help.gif b/doc/pl/images/button-help.gif index f5e239e0ec..d2d4f85307 100644 Binary files a/doc/pl/images/button-help.gif and b/doc/pl/images/button-help.gif differ diff --git a/doc/pl/images/button-hold-job.gif b/doc/pl/images/button-hold-job.gif index 5219e68684..2ab5564929 100644 Binary files a/doc/pl/images/button-hold-job.gif and b/doc/pl/images/button-hold-job.gif differ diff --git a/doc/pl/images/button-manage-classes.gif b/doc/pl/images/button-manage-classes.gif index 63a8f660d6..c758f98029 100644 Binary files a/doc/pl/images/button-manage-classes.gif and b/doc/pl/images/button-manage-classes.gif differ diff --git a/doc/pl/images/button-manage-jobs.gif b/doc/pl/images/button-manage-jobs.gif index f8f6f0d8bc..7aefeddaf3 100644 Binary files a/doc/pl/images/button-manage-jobs.gif and b/doc/pl/images/button-manage-jobs.gif differ diff --git a/doc/pl/images/button-manage-printers.gif b/doc/pl/images/button-manage-printers.gif index 041efc2159..f884f7f606 100644 Binary files a/doc/pl/images/button-manage-printers.gif and b/doc/pl/images/button-manage-printers.gif differ diff --git a/doc/pl/images/button-manage-server.gif b/doc/pl/images/button-manage-server.gif index cb6d760478..ba6e31cdc8 100644 Binary files a/doc/pl/images/button-manage-server.gif and b/doc/pl/images/button-manage-server.gif differ diff --git a/doc/pl/images/button-modify-class.gif b/doc/pl/images/button-modify-class.gif index 38cce158f3..fcf5f6d3ee 100644 Binary files a/doc/pl/images/button-modify-class.gif and b/doc/pl/images/button-modify-class.gif differ diff --git a/doc/pl/images/button-modify-printer.gif b/doc/pl/images/button-modify-printer.gif index acbb6daac0..e3d5346630 100644 Binary files a/doc/pl/images/button-modify-printer.gif and b/doc/pl/images/button-modify-printer.gif differ diff --git a/doc/pl/images/button-move-job.gif b/doc/pl/images/button-move-job.gif index 585f48e8bc..02ce3300d1 100644 Binary files a/doc/pl/images/button-move-job.gif and b/doc/pl/images/button-move-job.gif differ diff --git a/doc/pl/images/button-move-jobs.gif b/doc/pl/images/button-move-jobs.gif index 4600b780fa..36029ac308 100644 Binary files a/doc/pl/images/button-move-jobs.gif and b/doc/pl/images/button-move-jobs.gif differ diff --git a/doc/pl/images/button-print-self-test-page.gif b/doc/pl/images/button-print-self-test-page.gif index 1aa3349f10..bcea1ba01a 100644 Binary files a/doc/pl/images/button-print-self-test-page.gif and b/doc/pl/images/button-print-self-test-page.gif differ diff --git a/doc/pl/images/button-print-test-page.gif b/doc/pl/images/button-print-test-page.gif index 8eb7ec3984..57ac13be77 100644 Binary files a/doc/pl/images/button-print-test-page.gif and b/doc/pl/images/button-print-test-page.gif differ diff --git a/doc/pl/images/button-publish-printer.gif b/doc/pl/images/button-publish-printer.gif index 909702fb49..c12abe87e6 100644 Binary files a/doc/pl/images/button-publish-printer.gif and b/doc/pl/images/button-publish-printer.gif differ diff --git a/doc/pl/images/button-reject-jobs.gif b/doc/pl/images/button-reject-jobs.gif index bcff455807..a81848bdee 100644 Binary files a/doc/pl/images/button-reject-jobs.gif and b/doc/pl/images/button-reject-jobs.gif differ diff --git a/doc/pl/images/button-release-job.gif b/doc/pl/images/button-release-job.gif index a3d95ad376..d8a82f0925 100644 Binary files a/doc/pl/images/button-release-job.gif and b/doc/pl/images/button-release-job.gif differ diff --git a/doc/pl/images/button-restart-job.gif b/doc/pl/images/button-restart-job.gif index 5d5a7c0313..42b7568ecf 100644 Binary files a/doc/pl/images/button-restart-job.gif and b/doc/pl/images/button-restart-job.gif differ diff --git a/doc/pl/images/button-save-changes.gif b/doc/pl/images/button-save-changes.gif index 5056b80bef..2f1fee1704 100644 Binary files a/doc/pl/images/button-save-changes.gif and b/doc/pl/images/button-save-changes.gif differ diff --git a/doc/pl/images/button-search.gif b/doc/pl/images/button-search.gif index 5f99760e6f..1bc1945271 100644 Binary files a/doc/pl/images/button-search.gif and b/doc/pl/images/button-search.gif differ diff --git a/doc/pl/images/button-set-allowed-users.gif b/doc/pl/images/button-set-allowed-users.gif index 728ced1eeb..cd7709ef59 100644 Binary files a/doc/pl/images/button-set-allowed-users.gif and b/doc/pl/images/button-set-allowed-users.gif differ diff --git a/doc/pl/images/button-set-as-default.gif b/doc/pl/images/button-set-as-default.gif index b01c19122e..203d097347 100644 Binary files a/doc/pl/images/button-set-as-default.gif and b/doc/pl/images/button-set-as-default.gif differ diff --git a/doc/pl/images/button-set-printer-options.gif b/doc/pl/images/button-set-printer-options.gif index ed026d57ec..6610735e41 100644 Binary files a/doc/pl/images/button-set-printer-options.gif and b/doc/pl/images/button-set-printer-options.gif differ diff --git a/doc/pl/images/button-show-active.gif b/doc/pl/images/button-show-active.gif index ac9d4e05f4..82751977db 100644 Binary files a/doc/pl/images/button-show-active.gif and b/doc/pl/images/button-show-active.gif differ diff --git a/doc/pl/images/button-show-all.gif b/doc/pl/images/button-show-all.gif index 0bd0388225..0473ee6263 100644 Binary files a/doc/pl/images/button-show-all.gif and b/doc/pl/images/button-show-all.gif differ diff --git a/doc/pl/images/button-show-completed.gif b/doc/pl/images/button-show-completed.gif index d27b3074c5..5481f4d9a7 100644 Binary files a/doc/pl/images/button-show-completed.gif and b/doc/pl/images/button-show-completed.gif differ diff --git a/doc/pl/images/button-show-next.gif b/doc/pl/images/button-show-next.gif index a584f885ad..3fdf857981 100644 Binary files a/doc/pl/images/button-show-next.gif and b/doc/pl/images/button-show-next.gif differ diff --git a/doc/pl/images/button-show-previous.gif b/doc/pl/images/button-show-previous.gif index 64613b9ec0..8a6f8c4cf4 100644 Binary files a/doc/pl/images/button-show-previous.gif and b/doc/pl/images/button-show-previous.gif differ diff --git a/doc/pl/images/button-sort-ascending.gif b/doc/pl/images/button-sort-ascending.gif index 993cf6a93a..5a88283f33 100644 Binary files a/doc/pl/images/button-sort-ascending.gif and b/doc/pl/images/button-sort-ascending.gif differ diff --git a/doc/pl/images/button-sort-descending.gif b/doc/pl/images/button-sort-descending.gif index fbc5e966dd..61c85de29e 100644 Binary files a/doc/pl/images/button-sort-descending.gif and b/doc/pl/images/button-sort-descending.gif differ diff --git a/doc/pl/images/button-start-class.gif b/doc/pl/images/button-start-class.gif index 834f8a1254..85c098a38a 100644 Binary files a/doc/pl/images/button-start-class.gif and b/doc/pl/images/button-start-class.gif differ diff --git a/doc/pl/images/button-start-printer.gif b/doc/pl/images/button-start-printer.gif index 7d86be593c..cd1734cce7 100644 Binary files a/doc/pl/images/button-start-printer.gif and b/doc/pl/images/button-start-printer.gif differ diff --git a/doc/pl/images/button-stop-class.gif b/doc/pl/images/button-stop-class.gif index c1f96cc85b..8031731a45 100644 Binary files a/doc/pl/images/button-stop-class.gif and b/doc/pl/images/button-stop-class.gif differ diff --git a/doc/pl/images/button-stop-printer.gif b/doc/pl/images/button-stop-printer.gif index 34bf39da66..ce485f3a16 100644 Binary files a/doc/pl/images/button-stop-printer.gif and b/doc/pl/images/button-stop-printer.gif differ diff --git a/doc/pl/images/button-unpublish-printer.gif b/doc/pl/images/button-unpublish-printer.gif index fdb48f32de..2842a3e180 100644 Binary files a/doc/pl/images/button-unpublish-printer.gif and b/doc/pl/images/button-unpublish-printer.gif differ diff --git a/doc/pl/images/button-use-default-config.gif b/doc/pl/images/button-use-default-config.gif index 578cd05ac9..47697cde89 100644 Binary files a/doc/pl/images/button-use-default-config.gif and b/doc/pl/images/button-use-default-config.gif differ diff --git a/doc/pl/images/button-view-access-log.gif b/doc/pl/images/button-view-access-log.gif index b6ffd0ab49..5d89af5214 100644 Binary files a/doc/pl/images/button-view-access-log.gif and b/doc/pl/images/button-view-access-log.gif differ diff --git a/doc/pl/images/button-view-error-log.gif b/doc/pl/images/button-view-error-log.gif index bbdd548f41..c99078ad81 100644 Binary files a/doc/pl/images/button-view-error-log.gif and b/doc/pl/images/button-view-error-log.gif differ diff --git a/doc/pl/images/button-view-page-log.gif b/doc/pl/images/button-view-page-log.gif index 30b3a7e0cb..ad49a2f4fc 100644 Binary files a/doc/pl/images/button-view-page-log.gif and b/doc/pl/images/button-view-page-log.gif differ diff --git a/doc/pl/images/button-view-printable-version.gif b/doc/pl/images/button-view-printable-version.gif index 726cd3a744..27ae97c763 100644 Binary files a/doc/pl/images/button-view-printable-version.gif and b/doc/pl/images/button-view-printable-version.gif differ diff --git a/filter/Makefile b/filter/Makefile index 2a4dfeadf5..2783578d0c 100644 --- a/filter/Makefile +++ b/filter/Makefile @@ -1,5 +1,5 @@ # -# "$Id: Makefile 5563 2006-05-21 17:18:40Z mike $" +# "$Id: Makefile 5564 2006-05-22 00:59:11Z mike $" # # Filter makefile for the Common UNIX Printing System (CUPS). # @@ -377,5 +377,5 @@ include Dependencies # -# End of "$Id: Makefile 5563 2006-05-21 17:18:40Z mike $". +# End of "$Id: Makefile 5564 2006-05-22 00:59:11Z mike $". # diff --git a/filter/image-bmp.c b/filter/image-bmp.c index 1dc5247632..dab979a659 100644 --- a/filter/image-bmp.c +++ b/filter/image-bmp.c @@ -1,5 +1,5 @@ /* - * "$Id: image-bmp.c 5508 2006-05-11 11:41:16Z mike $" + * "$Id: image-bmp.c 5509 2006-05-11 11:41:36Z mike $" * * BMP image routines for the Common UNIX Printing System (CUPS). * @@ -535,5 +535,5 @@ read_long(FILE *fp) /* I - File to read from */ /* - * End of "$Id: image-bmp.c 5508 2006-05-11 11:41:16Z mike $". + * End of "$Id: image-bmp.c 5509 2006-05-11 11:41:36Z mike $". */ diff --git a/filter/image-colorspace.c b/filter/image-colorspace.c index cc442944ea..2cb4ced018 100644 --- a/filter/image-colorspace.c +++ b/filter/image-colorspace.c @@ -1,5 +1,5 @@ /* - * "$Id: image-colorspace.c 5520 2006-05-12 16:37:36Z mike $" + * "$Id: image-colorspace.c 5519 2006-05-12 15:06:42Z mike $" * * Colorspace conversions for the Common UNIX Printing System (CUPS). * @@ -1573,5 +1573,5 @@ zshear(float mat[3][3], /* I - Matrix */ /* - * End of "$Id: image-colorspace.c 5520 2006-05-12 16:37:36Z mike $". + * End of "$Id: image-colorspace.c 5519 2006-05-12 15:06:42Z mike $". */ diff --git a/filter/image-gif.c b/filter/image-gif.c index 09784a60eb..b56dd0c88f 100644 --- a/filter/image-gif.c +++ b/filter/image-gif.c @@ -1,5 +1,5 @@ /* - * "$Id: image-gif.c 5508 2006-05-11 11:41:16Z mike $" + * "$Id: image-gif.c 5509 2006-05-11 11:41:36Z mike $" * * GIF image routines for the Common UNIX Printing System (CUPS). * @@ -695,5 +695,5 @@ gif_read_lzw(FILE *fp, /* I - File to read from */ /* - * End of "$Id: image-gif.c 5508 2006-05-11 11:41:16Z mike $". + * End of "$Id: image-gif.c 5509 2006-05-11 11:41:36Z mike $". */ diff --git a/filter/image-jpeg.c b/filter/image-jpeg.c index 5a07a7bbd1..7db80ae1f8 100644 --- a/filter/image-jpeg.c +++ b/filter/image-jpeg.c @@ -1,5 +1,5 @@ /* - * "$Id: image-jpeg.c 5508 2006-05-11 11:41:16Z mike $" + * "$Id: image-jpeg.c 5509 2006-05-11 11:41:36Z mike $" * * JPEG image routines for the Common UNIX Printing System (CUPS). * @@ -320,5 +320,5 @@ _cupsImageReadJPEG( /* - * End of "$Id: image-jpeg.c 5508 2006-05-11 11:41:16Z mike $". + * End of "$Id: image-jpeg.c 5509 2006-05-11 11:41:36Z mike $". */ diff --git a/filter/image-photocd.c b/filter/image-photocd.c index 00171ecc1f..195f0da394 100644 --- a/filter/image-photocd.c +++ b/filter/image-photocd.c @@ -1,5 +1,5 @@ /* - * "$Id: image-photocd.c 5508 2006-05-11 11:41:16Z mike $" + * "$Id: image-photocd.c 5509 2006-05-11 11:41:36Z mike $" * * PhotoCD routines for the Common UNIX Printing System (CUPS). * @@ -313,5 +313,5 @@ _cupsImageReadPhotoCD( /* - * End of "$Id: image-photocd.c 5508 2006-05-11 11:41:16Z mike $". + * End of "$Id: image-photocd.c 5509 2006-05-11 11:41:36Z mike $". */ diff --git a/filter/image-pix.c b/filter/image-pix.c index ac471669dd..64e5956230 100644 --- a/filter/image-pix.c +++ b/filter/image-pix.c @@ -1,5 +1,5 @@ /* - * "$Id: image-pix.c 5508 2006-05-11 11:41:16Z mike $" + * "$Id: image-pix.c 5509 2006-05-11 11:41:36Z mike $" * * Alias PIX image routines for the Common UNIX Printing System (CUPS). * @@ -232,5 +232,5 @@ read_short(FILE *fp) /* I - File to read from */ /* - * End of "$Id: image-pix.c 5508 2006-05-11 11:41:16Z mike $". + * End of "$Id: image-pix.c 5509 2006-05-11 11:41:36Z mike $". */ diff --git a/filter/image-png.c b/filter/image-png.c index 3b4469bc98..97cbfc13f0 100644 --- a/filter/image-png.c +++ b/filter/image-png.c @@ -1,5 +1,5 @@ /* - * "$Id: image-png.c 5508 2006-05-11 11:41:16Z mike $" + * "$Id: image-png.c 5509 2006-05-11 11:41:36Z mike $" * * PNG image routines for the Common UNIX Printing System (CUPS). * @@ -280,5 +280,5 @@ _cupsImageReadPNG( /* - * End of "$Id: image-png.c 5508 2006-05-11 11:41:16Z mike $". + * End of "$Id: image-png.c 5509 2006-05-11 11:41:36Z mike $". */ diff --git a/filter/image-pnm.c b/filter/image-pnm.c index dab288032a..54f6c74470 100644 --- a/filter/image-pnm.c +++ b/filter/image-pnm.c @@ -1,5 +1,5 @@ /* - * "$Id: image-pnm.c 5508 2006-05-11 11:41:16Z mike $" + * "$Id: image-pnm.c 5509 2006-05-11 11:41:36Z mike $" * * Portable Any Map file routines for the Common UNIX Printing System (CUPS). * @@ -301,5 +301,5 @@ _cupsImageReadPNM( /* - * End of "$Id: image-pnm.c 5508 2006-05-11 11:41:16Z mike $". + * End of "$Id: image-pnm.c 5509 2006-05-11 11:41:36Z mike $". */ diff --git a/filter/image-sgi.c b/filter/image-sgi.c index 288af26187..234868512b 100644 --- a/filter/image-sgi.c +++ b/filter/image-sgi.c @@ -1,5 +1,5 @@ /* - * "$Id: image-sgi.c 5508 2006-05-11 11:41:16Z mike $" + * "$Id: image-sgi.c 5509 2006-05-11 11:41:36Z mike $" * * SGI image file routines for the Common UNIX Printing System (CUPS). * @@ -279,5 +279,5 @@ _cupsImageReadSGI( /* - * End of "$Id: image-sgi.c 5508 2006-05-11 11:41:16Z mike $". + * End of "$Id: image-sgi.c 5509 2006-05-11 11:41:36Z mike $". */ diff --git a/filter/image-sun.c b/filter/image-sun.c index a7aa39a8ae..c6b0622db7 100644 --- a/filter/image-sun.c +++ b/filter/image-sun.c @@ -1,5 +1,5 @@ /* - * "$Id: image-sun.c 5508 2006-05-11 11:41:16Z mike $" + * "$Id: image-sun.c 5509 2006-05-11 11:41:36Z mike $" * * Sun Raster image file routines for the Common UNIX Printing System (CUPS). * @@ -389,5 +389,5 @@ read_unsigned(FILE *fp) /* I - File to read from */ /* - * End of "$Id: image-sun.c 5508 2006-05-11 11:41:16Z mike $". + * End of "$Id: image-sun.c 5509 2006-05-11 11:41:36Z mike $". */ diff --git a/filter/image-tiff.c b/filter/image-tiff.c index 184cf96217..223324bbf7 100644 --- a/filter/image-tiff.c +++ b/filter/image-tiff.c @@ -1,5 +1,5 @@ /* - * "$Id: image-tiff.c 5508 2006-05-11 11:41:16Z mike $" + * "$Id: image-tiff.c 5509 2006-05-11 11:41:36Z mike $" * * TIFF file routines for the Common UNIX Printing System (CUPS). * @@ -1720,5 +1720,5 @@ _cupsImageReadTIFF( /* - * End of "$Id: image-tiff.c 5508 2006-05-11 11:41:16Z mike $". + * End of "$Id: image-tiff.c 5509 2006-05-11 11:41:36Z mike $". */ diff --git a/filter/imagetoraster.c b/filter/imagetoraster.c index db92982314..32bc9a7c79 100644 --- a/filter/imagetoraster.c +++ b/filter/imagetoraster.c @@ -1,5 +1,5 @@ /* - * "$Id: imagetoraster.c 5523 2006-05-15 05:02:43Z mike $" + * "$Id: imagetoraster.c 5522 2006-05-15 05:02:15Z mike $" * * Image file to raster filter for the Common UNIX Printing System (CUPS). * @@ -4310,5 +4310,5 @@ raster_cb( /* - * End of "$Id: imagetoraster.c 5523 2006-05-15 05:02:43Z mike $". + * End of "$Id: imagetoraster.c 5522 2006-05-15 05:02:15Z mike $". */ diff --git a/filter/interpret.c b/filter/interpret.c index a5c1c57b45..3e7b47be16 100644 --- a/filter/interpret.c +++ b/filter/interpret.c @@ -1,5 +1,5 @@ /* - * "$Id: interpret.c 5512 2006-05-11 18:06:58Z mike $" + * "$Id: interpret.c 5513 2006-05-11 18:07:25Z mike $" * * PPD command interpreter for the Common UNIX Printing System (CUPS). * @@ -608,5 +608,5 @@ exec_code( /* - * End of "$Id: interpret.c 5512 2006-05-11 18:06:58Z mike $". + * End of "$Id: interpret.c 5513 2006-05-11 18:07:25Z mike $". */ diff --git a/filter/pstops.c b/filter/pstops.c index 23469f3e35..e91e1fb32f 100644 --- a/filter/pstops.c +++ b/filter/pstops.c @@ -1,5 +1,5 @@ /* - * "$Id: pstops.c 5569 2006-05-22 18:30:52Z mike $" + * "$Id: pstops.c 5570 2006-05-22 18:31:23Z mike $" * * PostScript filter for the Common UNIX Printing System (CUPS). * @@ -2935,5 +2935,5 @@ start_nup(pstops_doc_t *doc, /* I - Document information */ /* - * End of "$Id: pstops.c 5569 2006-05-22 18:30:52Z mike $". + * End of "$Id: pstops.c 5570 2006-05-22 18:31:23Z mike $". */ diff --git a/filter/raster.c b/filter/raster.c index 8206a44224..8dee94b1ac 100644 --- a/filter/raster.c +++ b/filter/raster.c @@ -1,5 +1,5 @@ /* - * "$Id: raster.c 5523 2006-05-15 05:02:43Z mike $" + * "$Id: raster.c 5522 2006-05-15 05:02:15Z mike $" * * Raster file routines for the Common UNIX Printing System (CUPS). * @@ -964,5 +964,5 @@ cups_write(int fd, /* I - File descriptor */ /* - * End of "$Id: raster.c 5523 2006-05-15 05:02:43Z mike $". + * End of "$Id: raster.c 5522 2006-05-15 05:02:15Z mike $". */ diff --git a/filter/raster.h b/filter/raster.h index 3c5b671181..987e00d2c5 100644 --- a/filter/raster.h +++ b/filter/raster.h @@ -1,5 +1,5 @@ /* - * "$Id: raster.h 5516 2006-05-11 23:54:05Z mike $" + * "$Id: raster.h 5519 2006-05-12 15:06:42Z mike $" * * Raster file definitions for the Common UNIX Printing System (CUPS). * @@ -342,5 +342,5 @@ extern unsigned cupsRasterWriteHeader2(cups_raster_t *r, #endif /* !_CUPS_RASTER_H_ */ /* - * End of "$Id: raster.h 5516 2006-05-11 23:54:05Z mike $". + * End of "$Id: raster.h 5519 2006-05-12 15:06:42Z mike $". */ diff --git a/filter/rastertolabel.c b/filter/rastertolabel.c index 4b8ee4a051..90de48f824 100644 --- a/filter/rastertolabel.c +++ b/filter/rastertolabel.c @@ -1,5 +1,5 @@ /* - * "$Id: rastertolabel.c 5510 2006-05-11 17:41:54Z mike $" + * "$Id: rastertolabel.c 5287 2006-03-13 16:41:45Z mike $" * * Label printer filter for the Common UNIX Printing System (CUPS). * @@ -30,7 +30,6 @@ * EndPage() - Finish a page of graphics. * CancelJob() - Cancel the current job... * OutputLine() - Output a line of graphics. - * PCLCompress() - Output a PCL (mode 3) compressed line. * ZPLCompress() - Output a run-length compression sequence. * main() - Main entry and processing of driver. */ @@ -49,20 +48,16 @@ /* - * This driver filter currently supports Dymo, Intellitech, and Zebra - * label printers. + * This driver filter currently supports Dymo and Zebra label printers. * * The Dymo portion of the driver has been tested with the 300, 330, - * and 330 Turbo label printers; it may also work with other models. + * and 330 Turbo label printers; it may also work with older models. * The Dymo printers support printing at 136, 203, and 300 DPI. * - * The Intellitech portion of the driver has been tested with the - * Intellibar 408, 412, and 808 and supports their PCL variant. - * - * The Zebra portion of the driver has been tested with the LP-2844, - * LP-2844Z, QL-320, and QL-420 label printers; it may also work with - * other models. The driver supports EPL line mode, EPL page mode, - * ZPL, and CPCL as defined in Zebra's on-line developer documentation. + * The Zebra portion of the driver has been tested with the LP-2844Z label + * printer; it may also work with other models. The driver supports EPL + * line mode, EPL page mode, ZPL, and CPCL as defined in Zebra's on-line + * developer documentation. */ /* @@ -76,15 +71,13 @@ #define ZEBRA_ZPL 0x12 /* Zebra ZPL-based printers */ #define ZEBRA_CPCL 0x13 /* Zebra CPCL-based printers */ -#define INTELLITECH_PCL 0x20 /* Intellitech PCL-based printers */ - /* * Globals... */ unsigned char *Buffer; /* Output buffer */ -unsigned char *CompBuffer; /* Compression buffer */ +char *CompBuffer; /* Compression buffer */ unsigned char *LastBuffer; /* Last buffer */ int LastSet; /* Number of repeat characters */ int ModelNumber, /* cupsModelNumber attribute */ @@ -102,7 +95,6 @@ void StartPage(ppd_file_t *ppd, cups_page_header_t *header); void EndPage(ppd_file_t *ppd, cups_page_header_t *header); void CancelJob(int sig); void OutputLine(ppd_file_t *ppd, cups_page_header_t *header, int y); -void PCLCompress(unsigned char *line, int length); void ZPLCompress(char repeat_char, int repeat_count); @@ -155,15 +147,6 @@ Setup(ppd_file_t *ppd) /* I - PPD file */ case ZEBRA_CPCL : break; - - case INTELLITECH_PCL : - /* - * Send a PCL reset sequence. - */ - - putchar(0x1b); - putchar('E'); - break; } } @@ -230,9 +213,6 @@ StartPage(ppd_file_t *ppd, /* I - PPD file */ fprintf(stderr, "DEBUG: cupsColorOrder = %d\n", header->cupsColorOrder); fprintf(stderr, "DEBUG: cupsColorSpace = %d\n", header->cupsColorSpace); fprintf(stderr, "DEBUG: cupsCompression = %d\n", header->cupsCompression); - fprintf(stderr, "DEBUG: cupsRowCount = %d\n", header->cupsRowCount); - fprintf(stderr, "DEBUG: cupsRowFeed = %d\n", header->cupsRowFeed); - fprintf(stderr, "DEBUG: cupsRowStep = %d\n", header->cupsRowStep); /* * Register a signal handler to eject the current page if the @@ -373,108 +353,6 @@ StartPage(ppd_file_t *ppd, /* I - PPD file */ header->HWResolution[1], header->cupsHeight, header->NumCopies); break; - - case INTELLITECH_PCL : - /* - * Set the media size... - */ - - printf("\033&l6D\033&k12H"); /* Set 6 LPI, 10 CPI */ - printf("\033&l0O"); /* Set portrait orientation */ - - switch (header->PageSize[1]) - { - case 540 : /* Monarch Envelope */ - printf("\033&l80A"); /* Set page size */ - break; - - case 624 : /* DL Envelope */ - printf("\033&l90A"); /* Set page size */ - break; - - case 649 : /* C5 Envelope */ - printf("\033&l91A"); /* Set page size */ - break; - - case 684 : /* COM-10 Envelope */ - printf("\033&l81A"); /* Set page size */ - break; - - case 756 : /* Executive */ - printf("\033&l1A"); /* Set page size */ - break; - - case 792 : /* Letter */ - printf("\033&l2A"); /* Set page size */ - break; - - case 842 : /* A4 */ - printf("\033&l26A"); /* Set page size */ - break; - - case 1008 : /* Legal */ - printf("\033&l3A"); /* Set page size */ - break; - - default : /* Custom size */ - printf("\033!f%dZ", header->PageSize[1] * 300 / 72); - break; - } - - printf("\033&l%dP", /* Set page length */ - header->PageSize[1] / 12); - printf("\033&l0E"); /* Set top margin to 0 */ - printf("\033&l%dX", header->NumCopies); - /* Set number copies */ - printf("\033&l0L"); /* Turn off perforation skip */ - - /* - * Print settings... - */ - - if (Page == 1) - { - if (header->cupsRowFeed) /* inPrintRate */ - printf("\033!p%dS", header->cupsRowFeed); - - if (header->cupsCompression != ~0) - /* inPrintDensity */ - printf("\033&d%dA", 30 * header->cupsCompression / 100 - 15); - - if (header->cupsRowCount != ~0) - /* inTearInterval */ - printf("\033!n%dT", header->cupsRowCount); - - if (header->cupsRowStep != ~0) - /* inCutInterval */ - printf("\033!n%dC", header->cupsRowStep); - } - - /* - * Setup graphics... - */ - - printf("\033*t%dR", header->HWResolution[0]); - /* Set resolution */ - - printf("\033*r%dS", header->cupsWidth); - /* Set width */ - printf("\033*r%dT", header->cupsHeight); - /* Set height */ - - printf("\033&a0H"); /* Set horizontal position */ - printf("\033&a0V"); /* Set vertical position */ - printf("\033*r1A"); /* Start graphics */ - printf("\033*b3M"); /* Set compression */ - - /* - * Allocate compression buffers... - */ - - CompBuffer = malloc(2 * header->cupsBytesPerLine + 1); - LastBuffer = malloc(header->cupsBytesPerLine); - LastSet = 0; - break; } /* @@ -713,11 +591,6 @@ EndPage(ppd_file_t *ppd, /* I - PPD file */ puts("FORM\r"); puts("PRINT\r"); break; - - case INTELLITECH_PCL : - printf("\033*rB"); /* End GFX */ - printf("\014"); /* Eject current page */ - break; } fflush(stdout); @@ -915,163 +788,10 @@ OutputLine(ppd_file_t *ppd, /* I - PPD file */ fflush(stdout); } break; - - case INTELLITECH_PCL : - if (Buffer[0] || - memcmp(Buffer, Buffer + 1, header->cupsBytesPerLine - 1)) - { - if (Feed) - { - printf("\033*b%dY", Feed); - Feed = 0; - LastSet = 0; - } - - PCLCompress(Buffer, header->cupsBytesPerLine); - } - else - Feed ++; - break; } } -/* - * 'PCLCompress()' - Output a PCL (mode 3) compressed line. - */ - -void -PCLCompress(unsigned char *line, /* I - Line to compress */ - int length) /* I - Length of line */ -{ - unsigned char *line_ptr, /* Current byte pointer */ - *line_end, /* End-of-line byte pointer */ - *comp_ptr, /* Pointer into compression buffer */ - *start, /* Start of compression sequence */ - *seed; /* Seed buffer pointer */ - int count, /* Count of bytes for output */ - offset; /* Offset of bytes for output */ - - - /* - * Do delta-row compression... - */ - - line_ptr = line; - line_end = line + length; - - comp_ptr = CompBuffer; - seed = LastBuffer; - - while (line_ptr < line_end) - { - /* - * Find the next non-matching sequence... - */ - - start = line_ptr; - - if (!LastSet) - { - /* - * The seed buffer is invalid, so do the next 8 bytes, max... - */ - - offset = 0; - - if ((count = line_end - line_ptr) > 8) - count = 8; - - line_ptr += count; - } - else - { - /* - * The seed buffer is valid, so compare against it... - */ - - while (*line_ptr == *seed && - line_ptr < line_end) - { - line_ptr ++; - seed ++; - } - - if (line_ptr == line_end) - break; - - offset = line_ptr - start; - - /* - * Find up to 8 non-matching bytes... - */ - - start = line_ptr; - count = 0; - while (*line_ptr != *seed && - line_ptr < line_end && - count < 8) - { - line_ptr ++; - seed ++; - count ++; - } - } - - /* - * Place mode 3 compression data in the buffer; see HP manuals - * for details... - */ - - if (offset >= 31) - { - /* - * Output multi-byte offset... - */ - - *comp_ptr++ = ((count - 1) << 5) | 31; - - offset -= 31; - while (offset >= 255) - { - *comp_ptr++ = 255; - offset -= 255; - } - - *comp_ptr++ = offset; - } - else - { - /* - * Output single-byte offset... - */ - - *comp_ptr++ = ((count - 1) << 5) | offset; - } - - memcpy(comp_ptr, start, count); - comp_ptr += count; - } - - line_ptr = CompBuffer; - line_end = comp_ptr; - - /* - * Set the length of the data and write it... - */ - - printf("\033*b%dW", comp_ptr - CompBuffer); - fwrite(CompBuffer, comp_ptr - CompBuffer, 1, stdout); - - /* - * Save this line as a "seed" buffer for the next... - */ - - memcpy(LastBuffer, line, length); - LastSet = 1; -} - - /* * 'ZPLCompress()' - Output a run-length compression sequence. */ @@ -1153,7 +873,7 @@ main(int argc, /* I - Number of command-line arguments */ * and return. */ - fputs("ERROR: rastertolabel job-id user title copies options [file]\n", stderr); + fputs("ERROR: rastertodymo job-id user title copies options [file]\n", stderr); return (1); } @@ -1283,5 +1003,5 @@ main(int argc, /* I - Number of command-line arguments */ /* - * End of "$Id: rastertolabel.c 5510 2006-05-11 17:41:54Z mike $". + * End of "$Id: rastertolabel.c 5287 2006-03-13 16:41:45Z mike $". */ diff --git a/locale/cups.pot b/locale/cups.pot index a74569ef57..1ca4004d75 100644 --- a/locale/cups.pot +++ b/locale/cups.pot @@ -29,7 +29,7 @@ msgid "" msgstr "" "Project-Id-Version: CUPS 1.2\n" "Report-Msgid-Bugs-To: http://www.cups.org/str.php\n" -"POT-Creation-Date: 2006-05-21 10:07-0400\n" +"POT-Creation-Date: 2006-05-21 10:08-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/locale/cups_es.po b/locale/cups_es.po index eeb6713741..f185289559 100644 --- a/locale/cups_es.po +++ b/locale/cups_es.po @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: CUPS 1.2\n" "Report-Msgid-Bugs-To: http://www.cups.org/str.php\n" -"POT-Creation-Date: 2006-05-21 10:07-0400\n" +"POT-Creation-Date: 2006-05-21 10:08-0400\n" "PO-Revision-Date: 2006-03-25 21:48+0100\n" "Last-Translator: Juan Pablo González Riopedre \n" "Language-Team: Spanish\n" diff --git a/locale/cups_ja.po b/locale/cups_ja.po index 464407aba9..cf6d770a9a 100644 --- a/locale/cups_ja.po +++ b/locale/cups_ja.po @@ -25,7 +25,7 @@ msgid "" msgstr "" "Project-Id-Version: CUPS 1.2\n" "Report-Msgid-Bugs-To: http://www.cups.org/str.php\n" -"POT-Creation-Date: 2006-05-21 10:07-0400\n" +"POT-Creation-Date: 2006-05-21 10:08-0400\n" "PO-Revision-Date: 2006-03-29 23:44+0900\n" "Last-Translator: Kenshi Muto \n" "Language-Team: Japanese \n" diff --git a/locale/cups_pl.po b/locale/cups_pl.po index 49c815145e..d10a852c4a 100644 --- a/locale/cups_pl.po +++ b/locale/cups_pl.po @@ -25,7 +25,7 @@ msgid "" msgstr "" "Project-Id-Version: CUPS 1.2\n" "Report-Msgid-Bugs-To: http://www.cups.org/str.php\n" -"POT-Creation-Date: 2006-05-21 10:07-0400\n" +"POT-Creation-Date: 2006-05-21 10:08-0400\n" "PO-Revision-Date: 2006-05-09 17:20+0200\n" "Last-Translator: Piotr Drąg \n" "Language-Team: Polish \n" diff --git a/locale/cups_sv.po b/locale/cups_sv.po index a245aa8139..21b3c01498 100644 --- a/locale/cups_sv.po +++ b/locale/cups_sv.po @@ -28,7 +28,7 @@ msgid "" msgstr "" "Project-Id-Version: CUPS 1.2\n" "Report-Msgid-Bugs-To: http://www.cups.org/str.php\n" -"POT-Creation-Date: 2006-05-21 10:07-0400\n" +"POT-Creation-Date: 2006-05-21 10:08-0400\n" "PO-Revision-Date: 2006-04-16 00:55+0100\n" "Last-Translator: Daniel Nylander \n" "Language-Team: Swedish \n" diff --git a/packaging/WELCOME.rtf b/packaging/WELCOME.rtf index a949db828f..832780032b 100644 --- a/packaging/WELCOME.rtf +++ b/packaging/WELCOME.rtf @@ -10,7 +10,7 @@ \f1\b WARNING\ \f0\b0 \ -This is pre-release software and should not be used in production environments. Because MacOS X packages cannot be uninstalled, you will need to reinstall MacOS X to revert to the original CUPS 1.1.x software.\ +Because MacOS X packages cannot be uninstalled, you will need to reinstall MacOS X to revert to the original CUPS 1.1.x software.\ \ Please report all problems using the Bugs & Features page on the CUPS home page:\ \ diff --git a/packaging/cups.readme b/packaging/cups.readme index c2f9648324..958bd7b10a 100644 --- a/packaging/cups.readme +++ b/packaging/cups.readme @@ -1,86 +1,21 @@ -README - CUPS v1.2.0b1 - 01/10/2006 ------------------------------------ - -***************************************************************** -***************************************************************** -**** **** -**** WARNING: THIS IS BETA RELEASE SOFTWARE AND MAY BE **** -**** TOTALLY UNSTABLE. DO NOT USE IN ENVIRONMENTS **** -**** WHERE RELIABLE SOFTWARE IS REQUIRED! **** -**** **** -***************************************************************** -***************************************************************** - -Looking for compile instructions? Read the file "INSTALL.txt" -instead... - -***************************************************************** -***************************************************************** -**** **** -**** IF YOU HAVE A NON-POSTSCRIPT PRINTER, YOU WILL ALSO **** -**** NEED TO INSTALL ESP GHOSTSCRIPT OR A PATCHED VERSION **** -**** OF A STANDARD GHOSTSCRIPT RELEASE. **** -**** **** -***************************************************************** -***************************************************************** - - -INTRODUCTION - -CUPS provides a portable printing layer for UNIX(r)-based -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 ("IPP") as the basis -for managing print jobs and queues. The Line Printer Daemon -("LPD") Server Message Block ("SMB"), and AppSocket (a.k.a. -JetDirect) protocols are also supported with reduced -functionality. CUPS adds network printer browsing and -PostScript Printer Description ("PPD") based printing options to -support real-world printing under UNIX. - -CUPS includes an image file RIP that supports printing of image -files to non-PostScript printers. A customized version of GNU -Ghostscript for CUPS called ESP Ghostscript is available -separately to support printing of PostScript files within the -CUPS driver framework. Sample drivers for Dymo, EPSON, HP, and -OKIDATA printers are included that use these filters. - -Drivers for thousands of printers are provided with our ESP -Print Pro software, available at: - - http://www.easysw.com/printpro/ - -CUPS is licensed under the GNU General Public License and GNU -Library General Public License. Please contact Easy Software -Products for commercial support and "binary distribution" -rights. - - 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 ANSI-compliant C -and C++ compilers and optionally one or more image file support -libraries. Complete source installation instructions can be -found in the file "INSTALL.txt". - SOFTWARE REQUIREMENTS The following operating system software is required to install one of the binary distributions from Easy Software Products: - - AIX 4.3 or higher + - AIX 5.2 or higher - HP-UX 11.00 or higher - IRIX 6.5 or higher - - Linux 2.4 with glibc 2.2 or higher - - Solaris 7 or higher (SPARC or Intel) + - Linux 2.4 with glibc 2.3 or higher (LSB 3.1) + - MacOS X 10.4 or higher (PowerPC or Intel) + - Solaris 8 or higher (SPARC or Intel) INSTALLING "PORTABLE" CUPS DISTRIBUTIONS @@ -90,7 +25,7 @@ distributions in TAR format with installation and removal scripts generated by our ESP Package Manager (EPM) software, which is available from: - http://www.easysw.com/epm + http://www.easysw.com/epm/ WARNING: Installing CUPS will overwrite your existing printing system. Backup files are made by the installation script and @@ -112,10 +47,9 @@ be installed and the scheduler will be started automatically. INSTALLING HOST-SPECIFIC (RPM, DEBIAN, ETC.) DISTRIBUTIONS -The host-specific distributions use the operating system -software installation tools. To install a host-specific -distribution please consult the CUPS Software Administrators -Manual or your operating system documentation. +The host-specific distributions use the operating system software +installation tools. To install a host-specific distribution +please consult your operating system documentation. READING THE DOCUMENTATION @@ -164,93 +98,7 @@ shown a menu of available functions. DO NOT use the hostname for your machine - it will not work with the default CUPS configuration. To enable administration access -on other addresses, consult the CUPS Software Administrators -Manual. - - -SETTING UP PRINTER QUEUES FROM THE COMMAND-LINE - -CUPS works best with PPD (PostScript Printer Description) -files. In a pinch you can also use System V style printer -interface scripts. - -Six sample PPD files are provided with this distribution that -utilize the PostScript and image file RIPs and the sample EPSON -and HP printer drivers. To add the sample DeskJet driver to the -system for a printer connected to the parallel port, use one of -the following commands: - - 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/lp0 -E - /usr/lib/lpadmin -p DeskJet -m deskjet.ppd -v parallel:/dev/lp1 -E - /usr/lib/lpadmin -p DeskJet -m deskjet.ppd -v parallel:/dev/lp2 -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 other sample drivers you can use: - - Driver PPD File - ----------------------------- ------------ - Dymo Label Printers dymo.ppd - EPSON Stylus Color Series stcolor.ppd - EPSON Stylus Photo Series stphoto.ppd - EPSON Stylus New Color Series stcolor2.ppd - EPSON Stylus New Photo Series stphoto2.ppd - EPSON 9-pin Series epson9.ppd - EPSON 24-pin Series epson24.ppd - HP DeskJet Series deskjet.ppd - HP New DeskJet Series deskjet2.ppd - HP LaserJet Series laserjet.ppd - OKIDATA 9-Pin Series okidata9.ppd - OKIDATA 24-Pin Series okidat24.ppd - -These sample drivers provide basic printing capabilities, but -generally do not exercise the full potential of the printers or -CUPS. For commercial printer drivers check out our ESP Print -Pro software at: - - http://www.easysw.com/printpro/ - - -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 PDF, -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. +on other addresses, consult the on-line help. LEGAL STUFF diff --git a/ppd/intelbar.ppd b/ppd/intelbar.ppd deleted file mode 100644 index f2af1a3d55..0000000000 --- a/ppd/intelbar.ppd +++ /dev/null @@ -1,219 +0,0 @@ -*PPD-Adobe: "4.3" -*% -*% "$Id$" -*% -*% Sample IntelliBar label printer driver PPD file for the Common UNIX -*% Printing System (CUPS). -*% -*% Copyright 2001-2006 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 USA -*% -*% Voice: (301) 373-9600 -*% EMail: cups-info@cups.org -*% WWW: http://www.cups.org -*% -*FormatVersion: "4.3" -*FileVersion: "1.2" -*LanguageVersion: English -*LanguageEncoding: ISOLatin1 -*PCFileName: "INTELBAR.PPD" -*Manufacturer: "Intellitech" -*Product: "(GNU Ghostscript)" -*Product: "(ESP Ghostscript)" -*cupsVersion: 1.2 -*cupsManualCopies: False -*cupsFilter: "application/vnd.cups-raster 0 rastertolabel" -*cupsModelNumber: 32 -*ModelName: "Intellitech IntelliBar Series Label Printer" -*ShortNickName: "Intellitech IntelliBar Series" -*NickName: "Intellitech IntelliBar Series Label Printer v1.2" -*PSVersion: "(3010.000) 81501" -*LanguageLevel: "3" -*ColorDevice: False -*DefaultColorSpace: Gray -*FileSystem: False -*Throughput: "8" -*LandscapeOrientation: Plus90 -*TTRasterizer: Type42 - -*OpenUI *PageSize/Media Size: PickOne -*OrderDependency: 10 AnySetup *PageSize -*DefaultPageSize: w288h432 -*PageSize w288h432/Label - 4.00x6.00": "<>setpagedevice" -*CloseUI: *PageSize - -*OpenUI *PageRegion: PickOne -*OrderDependency: 10 AnySetup *PageRegion -*DefaultPageRegion: w288h432 -*PageRegion w288h432/Label - 4.00x6.00": "<>setpagedevice" -*CloseUI: *PageRegion - -*DefaultImageableArea: w288h432 -*ImageableArea w288h432/Label - 4.00x6.00": "0 5.76 288 426.24" - -*DefaultPaperDimension: w288h432 -*PaperDimension w288h432/Label - 4.00x6.00": "288 432" - -*MaxMediaWidth: "630" -*MaxMediaHeight: "7128" -*HWMargins: 0 5.76 0 5.76 -*CustomPageSize True: "pop pop pop <>setpagedevice" -*ParamCustomPageSize Width: 1 points 36 630 -*ParamCustomPageSize Height: 2 points 36 7128 -*ParamCustomPageSize WidthOffset: 3 points 0 0 -*ParamCustomPageSize HeightOffset: 4 points 0 0 -*ParamCustomPageSize Orientation: 5 int 0 0 - -*OpenUI *Resolution/Output Resolution: PickOne -*OrderDependency: 20 AnySetup *Resolution -*DefaultResolution: 300dpi -*Resolution 300dpi/300 DPI: "<>setpagedevice" -*CloseUI: *Resolution - -*OpenGroup: PrinterSettings/Printer Settings -*OpenUI *inPrintDensity/Print Density: PickOne -*OrderDependency: 20 DocumentSetup *inPrintDensity -*DefaultinPrintDensity: Default -*inPrintDensity Default/PrinterDefault: "<>setpagedevice" -*inPrintDensity -15: "<>setpagedevice" -*inPrintDensity -14: "<>setpagedevice" -*inPrintDensity -13: "<>setpagedevice" -*inPrintDensity -12: "<>setpagedevice" -*inPrintDensity -11: "<>setpagedevice" -*inPrintDensity -10: "<>setpagedevice" -*inPrintDensity -9: "<>setpagedevice" -*inPrintDensity -8: "<>setpagedevice" -*inPrintDensity -7: "<>setpagedevice" -*inPrintDensity -6: "<>setpagedevice" -*inPrintDensity -5: "<>setpagedevice" -*inPrintDensity -4: "<>setpagedevice" -*inPrintDensity -3: "<>setpagedevice" -*inPrintDensity -2: "<>setpagedevice" -*inPrintDensity -1: "<>setpagedevice" -*inPrintDensity 0: "<>setpagedevice" -*inPrintDensity 1: "<>setpagedevice" -*inPrintDensity 2: "<>setpagedevice" -*inPrintDensity 3: "<>setpagedevice" -*inPrintDensity 4: "<>setpagedevice" -*inPrintDensity 5: "<>setpagedevice" -*inPrintDensity 6: "<>setpagedevice" -*inPrintDensity 7: "<>setpagedevice" -*inPrintDensity 8: "<>setpagedevice" -*inPrintDensity 9: "<>setpagedevice" -*inPrintDensity 10: "<>setpagedevice" -*inPrintDensity 11: "<>setpagedevice" -*inPrintDensity 12: "<>setpagedevice" -*inPrintDensity 13: "<>setpagedevice" -*inPrintDensity 14: "<>setpagedevice" -*inPrintDensity 15: "<>setpagedevice" -*CloseUI: *inPrintDensity - -*OpenUI *inPrintRate/Print Speed: PickOne -*OrderDependency: 20 DocumentSetup *inPrintRate -*DefaultinPrintRate: Default -*inPrintRate Default/PrinterDefault: "<>setpagedevice" -*inPrintRate 15/15 mm/sec.: "<>setpagedevice" -*inPrintRate 20/20 mm/sec.: "<>setpagedevice" -*inPrintRate 30/30 mm/sec.: "<>setpagedevice" -*inPrintRate 40/40 mm/sec.: "<>setpagedevice" -*inPrintRate 60/60 mm/sec.: "<>setpagedevice" -*inPrintRate 80/80 mm/sec.: "<>setpagedevice" -*inPrintRate 100/100 mm/sec.: "<>setpagedevice" -*inPrintRate 120/120 mm/sec.: "<>setpagedevice" -*inPrintRate 150/150 mm/sec.: "<>setpagedevice" -*inPrintRate 200/200 mm/sec.: "<>setpagedevice" -*inPrintRate 250/250 mm/sec.: "<>setpagedevice" -*inPrintRate 300/300 mm/sec.: "<>setpagedevice" -*CloseUI: *inPrintRate - -*OpenUI *inTearInterval/Print and Tear: PickOne -*OrderDependency: 20 DocumentSetup *inTearInterval -*DefaultinTearInterval: Default -*inTearInterval Default/PrinterDefault: "<>setpagedevice" -*inTearInterval None/Disabled: "<>setpagedevice" -*inTearInterval 1/Every Label: "<>setpagedevice" -*inTearInterval 2/Every 2 Labels: "<>setpagedevice" -*inTearInterval 3/Every 3 Labels: "<>setpagedevice" -*inTearInterval 4/Every 4 Labels: "<>setpagedevice" -*inTearInterval 5/Every 5 Labels: "<>setpagedevice" -*inTearInterval 6/Every 6 Labels: "<>setpagedevice" -*inTearInterval 7/Every 7 Labels: "<>setpagedevice" -*inTearInterval 8/Every 8 Labels: "<>setpagedevice" -*inTearInterval 9/Every 9 Labels: "<>setpagedevice" -*inTearInterval 10/Every 10 Labels: "<>setpagedevice" -*CloseUI: *inTearInterval - -*CustominTearInterval True: "<>setpagedevice" -*ParamCustominTearInterval Interval: 1 int 1 99 - -*OpenUI *inCutInterval/Print and Cut: PickOne -*OrderDependency: 20 DocumentSetup *inCutInterval -*DefaultinCutInterval: Default -*inCutInterval Default/PrinterDefault: "<>setpagedevice" -*inCutInterval None/Disabled: "<>setpagedevice" -*inCutInterval 1/Every Label: "<>setpagedevice" -*inCutInterval 2/Every 2 Labels: "<>setpagedevice" -*inCutInterval 3/Every 3 Labels: "<>setpagedevice" -*inCutInterval 4/Every 4 Labels: "<>setpagedevice" -*inCutInterval 5/Every 5 Labels: "<>setpagedevice" -*inCutInterval 6/Every 6 Labels: "<>setpagedevice" -*inCutInterval 7/Every 7 Labels: "<>setpagedevice" -*inCutInterval 8/Every 8 Labels: "<>setpagedevice" -*inCutInterval 9/Every 9 Labels: "<>setpagedevice" -*inCutInterval 10/Every 10 Labels: "<>setpagedevice" -*CloseUI: *inCutInterval - -*CustominCutInterval True: "<>setpagedevice" -*ParamCustominCutInterval Interval: 1 int 1 99 -*CloseGroup: *PrinterSettings - -*DefaultFont: Courier -*Font AvantGarde-Book: Standard "(001.006S)" Standard ROM -*Font AvantGarde-BookOblique: Standard "(001.006S)" Standard ROM -*Font AvantGarde-Demi: Standard "(001.007S)" Standard ROM -*Font AvantGarde-DemiOblique: Standard "(001.007S)" Standard ROM -*Font Bookman-Demi: Standard "(001.004S)" Standard ROM -*Font Bookman-DemiItalic: Standard "(001.004S)" Standard ROM -*Font Bookman-Light: Standard "(001.004S)" Standard ROM -*Font Bookman-LightItalic: Standard "(001.004S)" Standard ROM -*Font Courier: Standard "(002.004S)" Standard ROM -*Font Courier-Bold: Standard "(002.004S)" Standard ROM -*Font Courier-BoldOblique: Standard "(002.004S)" Standard ROM -*Font Courier-Oblique: Standard "(002.004S)" Standard ROM -*Font Helvetica: Standard "(001.006S)" Standard ROM -*Font Helvetica-Bold: Standard "(001.007S)" Standard ROM -*Font Helvetica-BoldOblique: Standard "(001.007S)" Standard ROM -*Font Helvetica-Narrow: Standard "(001.006S)" Standard ROM -*Font Helvetica-Narrow-Bold: Standard "(001.007S)" Standard ROM -*Font Helvetica-Narrow-BoldOblique: Standard "(001.007S)" Standard ROM -*Font Helvetica-Narrow-Oblique: Standard "(001.006S)" Standard ROM -*Font Helvetica-Oblique: Standard "(001.006S)" Standard ROM -*Font NewCenturySchlbk-Bold: Standard "(001.009S)" Standard ROM -*Font NewCenturySchlbk-BoldItalic: Standard "(001.007S)" Standard ROM -*Font NewCenturySchlbk-Italic: Standard "(001.006S)" Standard ROM -*Font NewCenturySchlbk-Roman: Standard "(001.007S)" Standard ROM -*Font Palatino-Bold: Standard "(001.005S)" Standard ROM -*Font Palatino-BoldItalic: Standard "(001.005S)" Standard ROM -*Font Palatino-Italic: Standard "(001.005S)" Standard ROM -*Font Palatino-Roman: Standard "(001.005S)" Standard ROM -*Font Symbol: Special "(001.007S)" Special ROM -*Font Times-Bold: Standard "(001.007S)" Standard ROM -*Font Times-BoldItalic: Standard "(001.009S)" Standard ROM -*Font Times-Italic: Standard "(001.007S)" Standard ROM -*Font Times-Roman: Standard "(001.007S)" Standard ROM -*Font ZapfChancery-MediumItalic: Standard "(001.007S)" Standard ROM -*Font ZapfDingbats: Special "(001.004S)" Standard ROM -*% -*% End of "$Id: zebra.ppd 5130 2006-02-17 20:25:33Z mike $". -*% diff --git a/ppd/zebra.ppd b/ppd/zebra.ppd index c478eda0f7..536896cb4e 100644 --- a/ppd/zebra.ppd +++ b/ppd/zebra.ppd @@ -1,6 +1,6 @@ *PPD-Adobe: "4.3" *% -*% "$Id: zebra.ppd 5510 2006-05-11 17:41:54Z mike $" +*% "$Id: zebra.ppd 5511 2006-05-11 17:43:12Z mike $" *% *% Sample Zebra label printer driver PPD file for the Common UNIX Printing *% System (CUPS). @@ -479,5 +479,5 @@ *Font ZapfChancery-MediumItalic: Standard "(001.007S)" Standard ROM *Font ZapfDingbats: Special "(001.004S)" Standard ROM *% -*% End of "$Id: zebra.ppd 5510 2006-05-11 17:41:54Z mike $". +*% End of "$Id: zebra.ppd 5511 2006-05-11 17:43:12Z mike $". *% diff --git a/scheduler/auth.c b/scheduler/auth.c index 895a14225d..ea9a071013 100644 --- a/scheduler/auth.c +++ b/scheduler/auth.c @@ -1,5 +1,5 @@ /* - * "$Id: auth.c 5567 2006-05-22 15:33:11Z mike $" + * "$Id: auth.c 5568 2006-05-22 15:34:01Z mike $" * * Authorization routines for the Common UNIX Printing System (CUPS). * @@ -2168,5 +2168,5 @@ to64(char *s, /* O - Output string */ /* - * End of "$Id: auth.c 5567 2006-05-22 15:33:11Z mike $". + * End of "$Id: auth.c 5568 2006-05-22 15:34:01Z mike $". */ diff --git a/scheduler/client.c b/scheduler/client.c index a08f91fc98..5800977137 100644 --- a/scheduler/client.c +++ b/scheduler/client.c @@ -1,5 +1,5 @@ /* - * "$Id: client.c 5567 2006-05-22 15:33:11Z mike $" + * "$Id: client.c 5568 2006-05-22 15:34:01Z mike $" * * Client routines for the Common UNIX Printing System (CUPS) scheduler. * @@ -3825,5 +3825,5 @@ write_file(cupsd_client_t *con, /* I - Client connection */ /* - * End of "$Id: client.c 5567 2006-05-22 15:33:11Z mike $". + * End of "$Id: client.c 5568 2006-05-22 15:34:01Z mike $". */ diff --git a/scheduler/dirsvc.c b/scheduler/dirsvc.c index b27ac8c41c..d1b8ab7923 100644 --- a/scheduler/dirsvc.c +++ b/scheduler/dirsvc.c @@ -1,5 +1,5 @@ /* - * "$Id: dirsvc.c 5548 2006-05-19 19:38:31Z mike $" + * "$Id: dirsvc.c 5549 2006-05-19 19:39:28Z mike $" * * Directory services routines for the Common UNIX Printing System (CUPS). * @@ -3130,5 +3130,5 @@ slp_url_callback( /* - * End of "$Id: dirsvc.c 5548 2006-05-19 19:38:31Z mike $". + * End of "$Id: dirsvc.c 5549 2006-05-19 19:39:28Z mike $". */ diff --git a/scheduler/ipp.c b/scheduler/ipp.c index 0a78c9d6c5..277196017b 100644 --- a/scheduler/ipp.c +++ b/scheduler/ipp.c @@ -1,5 +1,5 @@ /* - * "$Id: ipp.c 5552 2006-05-20 12:00:37Z mike $" + * "$Id: ipp.c 5554 2006-05-20 12:23:40Z mike $" * * IPP routines for the Common UNIX Printing System (CUPS) scheduler. * @@ -126,7 +126,8 @@ static void accept_jobs(cupsd_client_t *con, ipp_attribute_t *uri); static void add_class(cupsd_client_t *con, ipp_attribute_t *uri); static int add_file(cupsd_client_t *con, cupsd_job_t *job, mime_type_t *filetype, int compression); -static cupsd_job_t *add_job(cupsd_client_t *con, cupsd_printer_t *printer, +static cupsd_job_t *add_job(cupsd_client_t *con, ipp_attribute_t *uri, + cupsd_printer_t **dprinter, mime_type_t *filetype); static void add_job_state_reasons(cupsd_client_t *con, cupsd_job_t *job); static void add_job_subscriptions(cupsd_client_t *con, cupsd_job_t *job); @@ -699,6 +700,12 @@ accept_jobs(cupsd_client_t *con, /* I - Client connection */ { http_status_t status; /* Policy status */ cups_ptype_t dtype; /* Destination type (printer or class) */ + char method[HTTP_MAX_URI], /* Method portion of URI */ + username[HTTP_MAX_URI], /* Username portion of URI */ + host[HTTP_MAX_URI], /* Host portion of URI */ + resource[HTTP_MAX_URI]; /* Resource portion of URI */ + int port; /* Port portion of URI */ + const char *name; /* Printer name */ cupsd_printer_t *printer; /* Printer data */ @@ -709,7 +716,11 @@ accept_jobs(cupsd_client_t *con, /* I - Client connection */ * Is the destination valid? */ - if (!cupsdValidateDest(uri->values[0].string.text, &dtype, &printer)) + httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, method, + sizeof(method), username, sizeof(username), host, + sizeof(host), &port, resource, sizeof(resource)); + + if ((name = cupsdValidateDest(host, resource, &dtype, &printer)) == NULL) { /* * Bad URI... @@ -740,19 +751,12 @@ accept_jobs(cupsd_client_t *con, /* I - Client connection */ cupsdAddPrinterHistory(printer); if (dtype & CUPS_PRINTER_CLASS) - { cupsdSaveAllClasses(); - - cupsdLogMessage(CUPSD_LOG_INFO, "Class \"%s\" now accepting jobs (\"%s\").", - printer->name, get_username(con)); - } else - { cupsdSaveAllPrinters(); - cupsdLogMessage(CUPSD_LOG_INFO, "Printer \"%s\" now accepting jobs (\"%s\").", - printer->name, get_username(con)); - } + cupsdLogMessage(CUPSD_LOG_INFO, "Printer \"%s\" now accepting jobs (\"%s\").", name, + get_username(con)); /* * Everything was ok, so return OK status... @@ -780,6 +784,7 @@ add_class(cupsd_client_t *con, /* I - Client connection */ cupsd_printer_t *pclass, /* Class */ *member; /* Member printer/class */ cups_ptype_t dtype; /* Destination type */ + const char *dest; /* Printer or class name */ ipp_attribute_t *attr; /* Printer attribute */ int modify; /* Non-zero if we just modified */ char newname[IPP_MAX_NAME]; /* New class name */ @@ -998,7 +1003,11 @@ add_class(cupsd_client_t *con, /* I - Client connection */ * Search for the printer or class URI... */ - if (!cupsdValidateDest(attr->values[i].string.text, &dtype, &member)) + httpSeparateURI(HTTP_URI_CODING_ALL, attr->values[i].string.text, method, + sizeof(method), username, sizeof(username), host, + sizeof(host), &port, resource, sizeof(resource)); + + if ((dest = cupsdValidateDest(host, resource, &dtype, &member)) == NULL) { /* * Bad URI... @@ -1135,24 +1144,54 @@ add_file(cupsd_client_t *con, /* I - Connection to client */ static cupsd_job_t * /* O - Job object */ add_job(cupsd_client_t *con, /* I - Client connection */ - cupsd_printer_t *printer, /* I - Destination printer */ + ipp_attribute_t *uri, /* I - printer-uri */ + cupsd_printer_t **dprinter, /* I - Destination printer */ mime_type_t *filetype) /* I - First print file type, if any */ { http_status_t status; /* Policy status */ ipp_attribute_t *attr; /* Current attribute */ + const char *dest; /* Destination */ + cups_ptype_t dtype; /* Destination type (printer or class) */ const char *val; /* Default option value */ int priority; /* Job priority */ char *title; /* Job name/title */ cupsd_job_t *job; /* Current job */ - char job_uri[HTTP_MAX_URI]; /* Job URI */ + char job_uri[HTTP_MAX_URI], /* Job URI */ + method[HTTP_MAX_URI], /* Method portion of URI */ + username[HTTP_MAX_URI], /* Username portion of URI */ + host[HTTP_MAX_URI], /* Host portion of URI */ + resource[HTTP_MAX_URI]; /* Resource portion of URI */ + int port; /* Port portion of URI */ + cupsd_printer_t *printer; /* Printer data */ int kbytes; /* Size of print file */ int i; /* Looping var */ int lowerpagerange; /* Page range bound */ - cupsdLogMessage(CUPSD_LOG_DEBUG2, "add_job(%p[%d], %p(%s), %p(%s/%s))", - con, con->http.fd, printer, printer->name, - filetype, filetype->super, filetype->type); + cupsdLogMessage(CUPSD_LOG_DEBUG2, "add_job(%p[%d], %s)", con, + con->http.fd, uri->values[0].string.text); + + /* + * Is the destination valid? + */ + + httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, method, + sizeof(method), username, sizeof(username), host, + sizeof(host), &port, resource, sizeof(resource)); + + if ((dest = cupsdValidateDest(host, resource, &dtype, &printer)) == NULL) + { + /* + * Bad URI... + */ + + send_ipp_status(con, IPP_NOT_FOUND, + _("The printer or class was not found.")); + return (NULL); + } + + if (dprinter) + *dprinter = printer; /* * Check remote printing to non-shared printer... @@ -1190,7 +1229,7 @@ add_job(cupsd_client_t *con, /* I - Client connection */ { send_ipp_status(con, IPP_NOT_ACCEPTING, _("Destination \"%s\" is not accepting jobs."), - printer->name); + dest); return (NULL); } @@ -1257,7 +1296,7 @@ add_job(cupsd_client_t *con, /* I - Client connection */ if (MaxJobs && cupsArrayCount(Jobs) >= MaxJobs) cupsdCleanJobs(); - if (MaxJobs && cupsArrayCount(Jobs) >= MaxJobs) + if (cupsArrayCount(Jobs) >= MaxJobs && MaxJobs) { send_ipp_status(con, IPP_NOT_POSSIBLE, _("Too many active jobs.")); @@ -1299,13 +1338,11 @@ add_job(cupsd_client_t *con, /* I - Client connection */ if ((job = cupsdAddJob(priority, printer->name)) == NULL) { send_ipp_status(con, IPP_INTERNAL_ERROR, - _("Unable to add job for destination \"%s\"!"), - printer->name); + _("Unable to add job for destination \"%s\"!"), dest); return (NULL); } - job->dtype = printer->type & (CUPS_PRINTER_CLASS | CUPS_PRINTER_IMPLICIT | - CUPS_PRINTER_REMOTE); + job->dtype = dtype; job->attrs = con->request; con->request = NULL; @@ -2730,10 +2767,11 @@ cancel_all_jobs(cupsd_client_t *con, /* I - Client connection */ ipp_attribute_t *uri) /* I - Job or Printer URI */ { http_status_t status; /* Policy status */ + const char *dest; /* Destination */ cups_ptype_t dtype; /* Destination type */ - char scheme[HTTP_MAX_URI], /* Scheme portion of URI */ + char method[HTTP_MAX_URI], /* Method portion of URI */ userpass[HTTP_MAX_URI], /* Username portion of URI */ - hostname[HTTP_MAX_URI], /* Host portion of URI */ + host[HTTP_MAX_URI], /* Host portion of URI */ resource[HTTP_MAX_URI]; /* Resource portion of URI */ int port; /* Port portion of URI */ ipp_attribute_t *attr; /* Attribute in request */ @@ -2792,17 +2830,16 @@ cancel_all_jobs(cupsd_client_t *con, /* I - Client connection */ * And if the destination is valid... */ - if (!cupsdValidateDest(uri->values[0].string.text, &dtype, &printer)) + httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, method, + sizeof(method), userpass, sizeof(userpass), host, + sizeof(host), &port, resource, sizeof(resource)); + + if ((dest = cupsdValidateDest(host, resource, &dtype, &printer)) == NULL) { /* * Bad URI? */ - httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, - scheme, sizeof(scheme), userpass, sizeof(userpass), - hostname, sizeof(hostname), &port, - resource, sizeof(resource)); - if ((!strncmp(resource, "/printers/", 10) && resource[10]) || (!strncmp(resource, "/classes/", 9) && resource[9])) { @@ -2810,6 +2847,13 @@ cancel_all_jobs(cupsd_client_t *con, /* I - Client connection */ _("The printer or class was not found.")); return; } + else if (strcmp(resource, "/printers/")) + { + send_ipp_status(con, IPP_NOT_FOUND, + _("The printer-uri \"%s\" is not valid."), + uri->values[0].string.text); + return; + } /* * Check policy... @@ -2836,8 +2880,7 @@ cancel_all_jobs(cupsd_client_t *con, /* I - Client connection */ * Check policy... */ - if ((status = cupsdCheckPolicy(printer->op_policy_ptr, con, - NULL)) != HTTP_OK) + if ((status = cupsdCheckPolicy(printer->op_policy_ptr, con, NULL)) != HTTP_OK) { send_http_error(con, status); return; @@ -2847,11 +2890,10 @@ cancel_all_jobs(cupsd_client_t *con, /* I - Client connection */ * Cancel all of the jobs on the named printer... */ - cupsdCancelJobs(printer->name, username, purge); + cupsdCancelJobs(dest, username, purge); cupsdLogMessage(CUPSD_LOG_INFO, "All jobs on \"%s\" were %s by \"%s\".", - printer->name, purge ? "purged" : "cancelled", - get_username(con)); + dest, purge ? "purged" : "cancelled", get_username(con)); } con->response->request.status.status_code = IPP_OK; @@ -2868,12 +2910,13 @@ cancel_job(cupsd_client_t *con, /* I - Client connection */ { ipp_attribute_t *attr; /* Current attribute */ int jobid; /* Job ID */ - char scheme[HTTP_MAX_URI], /* Scheme portion of URI */ + char method[HTTP_MAX_URI], /* Method portion of URI */ username[HTTP_MAX_URI], /* Username portion of URI */ host[HTTP_MAX_URI], /* Host portion of URI */ resource[HTTP_MAX_URI]; /* Resource portion of URI */ int port; /* Port portion of URI */ cupsd_job_t *job; /* Job information */ + const char *dest; /* Destination */ cups_ptype_t dtype; /* Destination type (printer or class) */ cupsd_printer_t *printer; /* Printer data */ @@ -2905,7 +2948,11 @@ cancel_job(cupsd_client_t *con, /* I - Client connection */ * Find the current job on the specified printer... */ - if (!cupsdValidateDest(uri->values[0].string.text, &dtype, &printer)) + httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, method, + sizeof(method), username, sizeof(username), host, + sizeof(host), &port, resource, sizeof(resource)); + + if ((dest = cupsdValidateDest(host, resource, &dtype, &printer)) == NULL) { /* * Bad URI... @@ -2932,7 +2979,7 @@ cancel_job(cupsd_client_t *con, /* I - Client connection */ job; job = (cupsd_job_t *)cupsArrayNext(ActiveJobs)) if (job->state_value <= IPP_JOB_PROCESSING && - !strcasecmp(job->dest, printer->name)) + !strcasecmp(job->dest, dest)) break; if (job) @@ -2940,7 +2987,7 @@ cancel_job(cupsd_client_t *con, /* I - Client connection */ else { send_ipp_status(con, IPP_NOT_POSSIBLE, _("No active jobs on %s!"), - printer->name); + dest); return; } } @@ -2952,8 +2999,8 @@ cancel_job(cupsd_client_t *con, /* I - Client connection */ * Got a job URI; parse it to get the job ID... */ - httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, scheme, - sizeof(scheme), username, sizeof(username), host, + httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, method, + sizeof(method), username, sizeof(username), host, sizeof(host), &port, resource, sizeof(resource)); if (strncmp(resource, "/jobs/", 6)) @@ -4412,33 +4459,17 @@ static void create_job(cupsd_client_t *con, /* I - Client connection */ ipp_attribute_t *uri) /* I - Printer URI */ { - cupsd_printer_t *printer; /* Printer */ - cupsd_job_t *job; /* New job */ + cupsd_job_t *job; /* New job */ cupsdLogMessage(CUPSD_LOG_DEBUG2, "create_job(%p[%d], %s)", con, con->http.fd, uri->values[0].string.text); - /* - * Is the destination valid? - */ - - if (!cupsdValidateDest(uri->values[0].string.text, NULL, &printer)) - { - /* - * Bad URI... - */ - - send_ipp_status(con, IPP_NOT_FOUND, - _("The printer or class was not found.")); - return; - } - /* * Create the job object... */ - if ((job = add_job(con, printer, NULL)) == NULL) + if ((job = add_job(con, uri, NULL, NULL)) == NULL) return; /* @@ -4709,8 +4740,7 @@ create_subscription( dtype = CUPS_PRINTER_CLASS; printer = NULL; } - else if ((dest = cupsdValidateDest(uri->values[0].string.text, &dtype, - &printer)) == NULL) + else if ((dest = cupsdValidateDest(host, resource, &dtype, &printer)) == NULL) { /* * Bad URI... @@ -4727,8 +4757,7 @@ create_subscription( if (printer) { - if ((status = cupsdCheckPolicy(printer->op_policy_ptr, con, - NULL)) != HTTP_OK) + if ((status = cupsdCheckPolicy(printer->op_policy_ptr, con, NULL)) != HTTP_OK) { send_http_error(con, status); return; @@ -4932,7 +4961,13 @@ delete_printer(cupsd_client_t *con, /* I - Client connection */ ipp_attribute_t *uri) /* I - URI of printer or class */ { http_status_t status; /* Policy status */ + const char *dest; /* Destination */ cups_ptype_t dtype; /* Destination type (printer or class) */ + char method[HTTP_MAX_URI], /* Method portion of URI */ + username[HTTP_MAX_URI], /* Username portion of URI */ + host[HTTP_MAX_URI], /* Host portion of URI */ + resource[HTTP_MAX_URI]; /* Resource portion of URI */ + int port; /* Port portion of URI */ cupsd_printer_t *printer; /* Printer/class */ char filename[1024]; /* Script/PPD filename */ @@ -4944,7 +4979,11 @@ delete_printer(cupsd_client_t *con, /* I - Client connection */ * Do we have a valid URI? */ - if (!cupsdValidateDest(uri->values[0].string.text, &dtype, &printer)) + httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, method, + sizeof(method), username, sizeof(username), host, + sizeof(host), &port, resource, sizeof(resource)); + + if ((dest = cupsdValidateDest(host, resource, &dtype, &printer)) == NULL) { /* * Bad URI... @@ -4969,7 +5008,7 @@ delete_printer(cupsd_client_t *con, /* I - Client connection */ * Remove old jobs... */ - cupsdCancelJobs(printer->name, NULL, 1); + cupsdCancelJobs(dest, NULL, 1); /* * Remove old subscriptions and send a "deleted printer" event... @@ -4978,7 +5017,7 @@ delete_printer(cupsd_client_t *con, /* I - Client connection */ cupsdAddEvent(CUPSD_EVENT_PRINTER_DELETED, printer, NULL, "%s \"%s\" deleted by \"%s\".", (dtype & CUPS_PRINTER_CLASS) ? "Class" : "Printer", - printer->name, get_username(con)); + dest, get_username(con)); cupsdExpireSubscriptions(printer, NULL); @@ -4986,26 +5025,24 @@ delete_printer(cupsd_client_t *con, /* I - Client connection */ * Remove any old PPD or script files... */ - snprintf(filename, sizeof(filename), "%s/interfaces/%s", ServerRoot, - printer->name); + snprintf(filename, sizeof(filename), "%s/interfaces/%s", ServerRoot, dest); unlink(filename); - snprintf(filename, sizeof(filename), "%s/ppd/%s.ppd", ServerRoot, - printer->name); + snprintf(filename, sizeof(filename), "%s/ppd/%s.ppd", ServerRoot, dest); unlink(filename); if (dtype & CUPS_PRINTER_CLASS) { - cupsdLogMessage(CUPSD_LOG_INFO, "Class \"%s\" deleted by \"%s\".", - printer->name, get_username(con)); + cupsdLogMessage(CUPSD_LOG_INFO, "Class \"%s\" deleted by \"%s\".", dest, + get_username(con)); cupsdDeletePrinter(printer, 0); cupsdSaveAllClasses(); } else { - cupsdLogMessage(CUPSD_LOG_INFO, "Printer \"%s\" deleted by \"%s\".", - printer->name, get_username(con)); + cupsdLogMessage(CUPSD_LOG_INFO, "Printer \"%s\" deleted by \"%s\".", dest, + get_username(con)); cupsdDeletePrinter(printer, 0); cupsdSaveAllPrinters(); @@ -5248,7 +5285,7 @@ get_jobs(cupsd_client_t *con, /* I - Client connection */ const char *dest; /* Destination */ cups_ptype_t dtype; /* Destination type (printer or class) */ cups_ptype_t dmask; /* Destination type mask */ - char scheme[HTTP_MAX_URI], /* Scheme portion of URI */ + char method[HTTP_MAX_URI], /* Method portion of URI */ username[HTTP_MAX_URI], /* Username portion of URI */ host[HTTP_MAX_URI], /* Host portion of URI */ resource[HTTP_MAX_URI]; /* Resource portion of URI */ @@ -5270,8 +5307,8 @@ get_jobs(cupsd_client_t *con, /* I - Client connection */ * Is the destination valid? */ - httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, scheme, - sizeof(scheme), username, sizeof(username), host, + httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, method, + sizeof(method), username, sizeof(username), host, sizeof(host), &port, resource, sizeof(resource)); if (!strcmp(resource, "/") || @@ -5296,8 +5333,7 @@ get_jobs(cupsd_client_t *con, /* I - Client connection */ dmask = CUPS_PRINTER_CLASS; printer = NULL; } - else if ((dest = cupsdValidateDest(uri->values[0].string.text, &dtype, - &printer)) == NULL) + else if ((dest = cupsdValidateDest(host, resource, &dtype, &printer)) == NULL) { /* * Bad URI... @@ -5316,8 +5352,7 @@ get_jobs(cupsd_client_t *con, /* I - Client connection */ if (printer) { - if ((status = cupsdCheckPolicy(printer->op_policy_ptr, con, - NULL)) != HTTP_OK) + if ((status = cupsdCheckPolicy(printer->op_policy_ptr, con, NULL)) != HTTP_OK) { send_http_error(con, status); return; @@ -5653,7 +5688,17 @@ get_printer_attrs(cupsd_client_t *con, /* I - Client connection */ ipp_attribute_t *uri) /* I - Printer URI */ { http_status_t status; /* Policy status */ + const char *dest; /* Destination */ cups_ptype_t dtype; /* Destination type (printer or class) */ + char method[HTTP_MAX_URI], + /* Method portion of URI */ + username[HTTP_MAX_URI], + /* Username portion of URI */ + host[HTTP_MAX_URI], + /* Host portion of URI */ + resource[HTTP_MAX_URI]; + /* Resource portion of URI */ + int port; /* Port portion of URI */ cupsd_printer_t *printer; /* Printer/class */ cups_array_t *ra; /* Requested attributes array */ @@ -5665,7 +5710,11 @@ get_printer_attrs(cupsd_client_t *con, /* I - Client connection */ * Is the destination valid? */ - if (!cupsdValidateDest(uri->values[0].string.text, &dtype, &printer)) + httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, method, + sizeof(method), username, sizeof(username), host, + sizeof(host), &port, resource, sizeof(resource)); + + if ((dest = cupsdValidateDest(host, resource, &dtype, &printer)) == NULL) { /* * Bad URI... @@ -5928,8 +5977,8 @@ get_subscriptions(cupsd_client_t *con, /* I - Client connection */ cups_array_t *ra; /* Requested attributes array */ ipp_attribute_t *attr; /* Attribute */ cups_ptype_t dtype; /* Destination type (printer or class) */ - char scheme[HTTP_MAX_URI], - /* Scheme portion of URI */ + char method[HTTP_MAX_URI], + /* Method portion of URI */ username[HTTP_MAX_URI], /* Username portion of URI */ host[HTTP_MAX_URI], @@ -5949,8 +5998,8 @@ get_subscriptions(cupsd_client_t *con, /* I - Client connection */ * Is the destination valid? */ - httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, scheme, - sizeof(scheme), username, sizeof(username), host, + httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, method, + sizeof(method), username, sizeof(username), host, sizeof(host), &port, resource, sizeof(resource)); if (!strcmp(resource, "/") || @@ -5973,7 +6022,7 @@ get_subscriptions(cupsd_client_t *con, /* I - Client connection */ return; } } - else if (!cupsdValidateDest(uri->values[0].string.text, &dtype, &printer)) + else if (!cupsdValidateDest(host, resource, &dtype, &printer)) { /* * Bad URI... @@ -6232,7 +6281,7 @@ move_job(cupsd_client_t *con, /* I - Client connection */ *dest; /* Destination */ cups_ptype_t stype, /* Source type (printer or class) */ dtype; /* Destination type (printer or class) */ - char scheme[HTTP_MAX_URI], /* Scheme portion of URI */ + char method[HTTP_MAX_URI], /* Method portion of URI */ username[HTTP_MAX_URI], /* Username portion of URI */ host[HTTP_MAX_URI], /* Host portion of URI */ resource[HTTP_MAX_URI]; /* Resource portion of URI */ @@ -6260,8 +6309,11 @@ move_job(cupsd_client_t *con, /* I - Client connection */ return; } - if ((dest = cupsdValidateDest(attr->values[0].string.text, &dtype, - &dprinter)) == NULL) + httpSeparateURI(HTTP_URI_CODING_ALL, attr->values[0].string.text, method, + sizeof(method), username, sizeof(username), host, + sizeof(host), &port, resource, sizeof(resource)); + + if ((dest = cupsdValidateDest(host, resource, &dtype, &dprinter)) == NULL) { /* * Bad URI... @@ -6276,8 +6328,7 @@ move_job(cupsd_client_t *con, /* I - Client connection */ * Check policy... */ - if ((status = cupsdCheckPolicy(dprinter->op_policy_ptr, con, - NULL)) != HTTP_OK) + if ((status = cupsdCheckPolicy(dprinter->op_policy_ptr, con, NULL)) != HTTP_OK) { send_http_error(con, status); return; @@ -6287,8 +6338,8 @@ move_job(cupsd_client_t *con, /* I - Client connection */ * See if we have a job URI or a printer URI... */ - httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, scheme, - sizeof(scheme), username, sizeof(username), host, + httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, method, + sizeof(method), username, sizeof(username), host, sizeof(host), &port, resource, sizeof(resource)); if (!strcmp(uri->name, "printer-uri")) @@ -6304,8 +6355,7 @@ move_job(cupsd_client_t *con, /* I - Client connection */ * Move all jobs... */ - if ((src = cupsdValidateDest(uri->values[0].string.text, &stype, - &sprinter)) == NULL) + if ((src = cupsdValidateDest(host, resource, &stype, &sprinter)) == NULL) { /* * Bad URI... @@ -6603,7 +6653,6 @@ print_job(cupsd_client_t *con, /* I - Client connection */ { ipp_attribute_t *attr; /* Current attribute */ ipp_attribute_t *format; /* Document-format attribute */ - const char *default_format; /* document-format-default value */ cupsd_job_t *job; /* New job */ char filename[1024]; /* Job filename */ mime_type_t *filetype; /* Type of file */ @@ -6660,21 +6709,6 @@ print_job(cupsd_client_t *con, /* I - Client connection */ return; } - /* - * Is the destination valid? - */ - - if (!cupsdValidateDest(uri->values[0].string.text, NULL, &printer)) - { - /* - * Bad URI... - */ - - send_ipp_status(con, IPP_NOT_FOUND, - _("The printer or class was not found.")); - return; - } - /* * Is it a format we support? */ @@ -6686,8 +6720,7 @@ print_job(cupsd_client_t *con, /* I - Client connection */ * Grab format from client... */ - if (sscanf(format->values[0].string.text, "%15[^/]/%31[^;]", super, - type) != 2) + if (sscanf(format->values[0].string.text, "%15[^/]/%31[^;]", super, type) != 2) { send_ipp_status(con, IPP_BAD_REQUEST, _("Could not scan type \"%s\"!"), @@ -6695,26 +6728,10 @@ print_job(cupsd_client_t *con, /* I - Client connection */ return; } } - else if ((default_format = cupsGetOption("document-format", - printer->num_options, - printer->options)) != NULL) - { - /* - * Use default document format... - */ - - if (sscanf(default_format, "%15[^/]/%31[^;]", super, type) != 2) - { - send_ipp_status(con, IPP_BAD_REQUEST, - _("Could not scan type \"%s\"!"), - default_format); - return; - } - } else { /* - * Auto-type it! + * No document format attribute? Auto-type it! */ strcpy(super, "application"); @@ -6737,35 +6754,32 @@ print_job(cupsd_client_t *con, /* I - Client connection */ doc_name ? doc_name->values[0].string.text : NULL, &compression); - if (!filetype) - filetype = mimeType(MimeDatabase, super, type); - } - else - filetype = mimeType(MimeDatabase, super, type); - - if (filetype && - (!format || - (!strcmp(super, "application") && !strcmp(type, "octet-stream")))) - { - /* - * Replace the document-format attribute value with the auto-typed or - * default one. - */ + if (filetype) + { + /* + * Replace the document-format attribute value with the auto-typed one. + */ - snprintf(mimetype, sizeof(mimetype), "%s/%s", filetype->super, - filetype->type); + snprintf(mimetype, sizeof(mimetype), "%s/%s", filetype->super, + filetype->type); - if (format) - { - _cupsStrFree(format->values[0].string.text); + if (format) + { + _cupsStrFree(format->values[0].string.text); - format->values[0].string.text = _cupsStrAlloc(mimetype); + format->values[0].string.text = _cupsStrAlloc(mimetype); + } + else + ippAddString(con->request, IPP_TAG_JOB, IPP_TAG_MIMETYPE, + "document-format", NULL, mimetype); } else - ippAddString(con->request, IPP_TAG_JOB, IPP_TAG_MIMETYPE, - "document-format", NULL, mimetype); + filetype = mimeType(MimeDatabase, super, type); } - else if (!filetype) + else + filetype = mimeType(MimeDatabase, super, type); + + if (!filetype) { send_ipp_status(con, IPP_DOCUMENT_FORMAT, _("Unsupported format \'%s/%s\'!"), super, type); @@ -6794,7 +6808,7 @@ print_job(cupsd_client_t *con, /* I - Client connection */ * Create the job object... */ - if ((job = add_job(con, printer, filetype)) == NULL) + if ((job = add_job(con, uri, &printer, filetype)) == NULL) return; /* @@ -7059,6 +7073,12 @@ reject_jobs(cupsd_client_t *con, /* I - Client connection */ { http_status_t status; /* Policy status */ cups_ptype_t dtype; /* Destination type (printer or class) */ + char method[HTTP_MAX_URI], /* Method portion of URI */ + username[HTTP_MAX_URI], /* Username portion of URI */ + host[HTTP_MAX_URI], /* Host portion of URI */ + resource[HTTP_MAX_URI]; /* Resource portion of URI */ + int port; /* Port portion of URI */ + const char *name; /* Printer name */ cupsd_printer_t *printer; /* Printer data */ ipp_attribute_t *attr; /* printer-state-message text */ @@ -7070,7 +7090,11 @@ reject_jobs(cupsd_client_t *con, /* I - Client connection */ * Is the destination valid? */ - if (!cupsdValidateDest(uri->values[0].string.text, &dtype, &printer)) + httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, method, + sizeof(method), username, sizeof(username), host, + sizeof(host), &port, resource, sizeof(resource)); + + if ((name = cupsdValidateDest(host, resource, &dtype, &printer)) == NULL) { /* * Bad URI... @@ -7111,14 +7135,14 @@ reject_jobs(cupsd_client_t *con, /* I - Client connection */ cupsdSaveAllClasses(); cupsdLogMessage(CUPSD_LOG_INFO, "Class \"%s\" rejecting jobs (\"%s\").", - printer->name, get_username(con)); + name, get_username(con)); } else { cupsdSaveAllPrinters(); cupsdLogMessage(CUPSD_LOG_INFO, "Printer \"%s\" rejecting jobs (\"%s\").", - printer->name, get_username(con)); + name, get_username(con)); } /* @@ -7574,7 +7598,6 @@ send_document(cupsd_client_t *con, /* I - Client connection */ { ipp_attribute_t *attr; /* Current attribute */ ipp_attribute_t *format; /* Document-format attribute */ - const char *default_format;/* document-format-default value */ int jobid; /* Job ID number */ cupsd_job_t *job; /* Current job */ char job_uri[HTTP_MAX_URI], @@ -7733,22 +7756,6 @@ send_document(cupsd_client_t *con, /* I - Client connection */ return; } } - else if ((default_format = cupsGetOption("document-format", - printer->num_options, - printer->options)) != NULL) - { - /* - * Use default document format... - */ - - if (sscanf(default_format, "%15[^/]/%31[^;]", super, type) != 2) - { - send_ipp_status(con, IPP_BAD_REQUEST, - _("Could not scan type \"%s\"!"), - default_format); - return; - } - } else { /* @@ -7775,35 +7782,31 @@ send_document(cupsd_client_t *con, /* I - Client connection */ doc_name ? doc_name->values[0].string.text : NULL, &compression); - if (!filetype) - filetype = mimeType(MimeDatabase, super, type); - } - else - filetype = mimeType(MimeDatabase, super, type); - - if (filetype && - (!format || - (!strcmp(super, "application") && !strcmp(type, "octet-stream")))) - { - /* - * Replace the document-format attribute value with the auto-typed or - * default one. - */ - - snprintf(mimetype, sizeof(mimetype), "%s/%s", filetype->super, - filetype->type); - - if (format) + if (filetype) { - _cupsStrFree(format->values[0].string.text); + /* + * Replace the document-format attribute value with the auto-typed one. + */ + + snprintf(mimetype, sizeof(mimetype), "%s/%s", filetype->super, + filetype->type); - format->values[0].string.text = _cupsStrAlloc(mimetype); + if (format) + { + _cupsStrFree(format->values[0].string.text); + format->values[0].string.text = _cupsStrAlloc(mimetype); + } + else + ippAddString(con->request, IPP_TAG_JOB, IPP_TAG_MIMETYPE, + "document-format", NULL, mimetype); } else - ippAddString(con->request, IPP_TAG_JOB, IPP_TAG_MIMETYPE, - "document-format", NULL, mimetype); + filetype = mimeType(MimeDatabase, super, type); } - else if (!filetype) + else + filetype = mimeType(MimeDatabase, super, type); + + if (!filetype) { send_ipp_status(con, IPP_DOCUMENT_FORMAT, _("Unsupported format \'%s/%s\'!"), super, type); @@ -8043,6 +8046,16 @@ set_default(cupsd_client_t *con, /* I - Client connection */ { http_status_t status; /* Policy status */ cups_ptype_t dtype; /* Destination type (printer or class) */ + char method[HTTP_MAX_URI], + /* Method portion of URI */ + username[HTTP_MAX_URI], + /* Username portion of URI */ + host[HTTP_MAX_URI], + /* Host portion of URI */ + resource[HTTP_MAX_URI]; + /* Resource portion of URI */ + int port; /* Port portion of URI */ + const char *name; /* Printer name */ cupsd_printer_t *printer; /* Printer */ @@ -8053,7 +8066,11 @@ set_default(cupsd_client_t *con, /* I - Client connection */ * Is the destination valid? */ - if (!cupsdValidateDest(uri->values[0].string.text, &dtype, &printer)) + httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, method, + sizeof(method), username, sizeof(username), host, + sizeof(host), &port, resource, sizeof(resource)); + + if ((name = cupsdValidateDest(host, resource, &dtype, &printer)) == NULL) { /* * Bad URI... @@ -8086,8 +8103,8 @@ set_default(cupsd_client_t *con, /* I - Client connection */ cupsdWritePrintcap(); cupsdLogMessage(CUPSD_LOG_INFO, - "Default destination set to \"%s\" by \"%s\".", - printer->name, get_username(con)); + "Default destination set to \"%s\" by \"%s\".", name, + get_username(con)); /* * Everything was ok, so return OK status... @@ -8589,7 +8606,8 @@ set_printer_defaults( attr->values[0].string.text); cupsdSetString(&printer->error_policy, attr->values[0].string.text); } - else if (!strcmp(attr->name, "notify-lease-duration-default") || + else if (!strcmp(attr->name, "document-format-default") || + !strcmp(attr->name, "notify-lease-duration-default") || !strcmp(attr->name, "notify-events-default")) continue; @@ -8692,6 +8710,16 @@ start_printer(cupsd_client_t *con, /* I - Client connection */ { http_status_t status; /* Policy status */ cups_ptype_t dtype; /* Destination type (printer or class) */ + char method[HTTP_MAX_URI], + /* Method portion of URI */ + username[HTTP_MAX_URI], + /* Username portion of URI */ + host[HTTP_MAX_URI], + /* Host portion of URI */ + resource[HTTP_MAX_URI]; + /* Resource portion of URI */ + int port; /* Port portion of URI */ + const char *name; /* Printer name */ cupsd_printer_t *printer; /* Printer data */ @@ -8702,7 +8730,11 @@ start_printer(cupsd_client_t *con, /* I - Client connection */ * Is the destination valid? */ - if (!cupsdValidateDest(uri->values[0].string.text, &dtype, &printer)) + httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, method, + sizeof(method), username, sizeof(username), host, + sizeof(host), &port, resource, sizeof(resource)); + + if ((name = cupsdValidateDest(host, resource, &dtype, &printer)) == NULL) { /* * Bad URI... @@ -8733,19 +8765,17 @@ start_printer(cupsd_client_t *con, /* I - Client connection */ if (dtype & CUPS_PRINTER_CLASS) { - cupsdLogMessage(CUPSD_LOG_INFO, "Class \"%s\" started by \"%s\".", - printer->name, get_username(con)); + cupsdLogMessage(CUPSD_LOG_INFO, "Class \"%s\" started by \"%s\".", name, + get_username(con)); cupsdAddEvent(CUPSD_EVENT_PRINTER_MODIFIED, printer, NULL, - "Class \"%s\" started by \"%s\".", printer->name, - get_username(con)); + "Class \"%s\" started by \"%s\".", name, get_username(con)); } else { - cupsdLogMessage(CUPSD_LOG_INFO, "Printer \"%s\" started by \"%s\".", - printer->name, get_username(con)); + cupsdLogMessage(CUPSD_LOG_INFO, "Printer \"%s\" started by \"%s\".", name, + get_username(con)); cupsdAddEvent(CUPSD_EVENT_PRINTER_MODIFIED, printer, NULL, - "Printer \"%s\" started by \"%s\".", printer->name, - get_username(con)); + "Printer \"%s\" started by \"%s\".", name, get_username(con)); } cupsdCheckJobs(); @@ -8768,6 +8798,16 @@ stop_printer(cupsd_client_t *con, /* I - Client connection */ { http_status_t status; /* Policy status */ cups_ptype_t dtype; /* Destination type (printer or class) */ + char method[HTTP_MAX_URI], + /* Method portion of URI */ + username[HTTP_MAX_URI], + /* Username portion of URI */ + host[HTTP_MAX_URI], + /* Host portion of URI */ + resource[HTTP_MAX_URI]; + /* Resource portion of URI */ + int port; /* Port portion of URI */ + const char *name; /* Printer name */ cupsd_printer_t *printer; /* Printer data */ ipp_attribute_t *attr; /* printer-state-message attribute */ @@ -8779,7 +8819,11 @@ stop_printer(cupsd_client_t *con, /* I - Client connection */ * Is the destination valid? */ - if (!cupsdValidateDest(uri->values[0].string.text, &dtype, &printer)) + httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, method, + sizeof(method), username, sizeof(username), host, + sizeof(host), &port, resource, sizeof(resource)); + + if ((name = cupsdValidateDest(host, resource, &dtype, &printer)) == NULL) { /* * Bad URI... @@ -8817,19 +8861,17 @@ stop_printer(cupsd_client_t *con, /* I - Client connection */ if (dtype & CUPS_PRINTER_CLASS) { - cupsdLogMessage(CUPSD_LOG_INFO, "Class \"%s\" stopped by \"%s\".", - printer->name, get_username(con)); + cupsdLogMessage(CUPSD_LOG_INFO, "Class \"%s\" stopped by \"%s\".", name, + get_username(con)); cupsdAddEvent(CUPSD_EVENT_PRINTER_MODIFIED, printer, NULL, - "Class \"%s\" stopped by \"%s\".", printer->name, - get_username(con)); + "Class \"%s\" stopped by \"%s\".", name, get_username(con)); } else { - cupsdLogMessage(CUPSD_LOG_INFO, "Printer \"%s\" stopped by \"%s\".", - printer->name, get_username(con)); + cupsdLogMessage(CUPSD_LOG_INFO, "Printer \"%s\" stopped by \"%s\".", name, + get_username(con)); cupsdAddEvent(CUPSD_EVENT_PRINTER_MODIFIED, printer, NULL, - "Printer \"%s\" stopped by \"%s\".", printer->name, - get_username(con)); + "Printer \"%s\" stopped by \"%s\".", name, get_username(con)); } /* @@ -8956,6 +8998,15 @@ validate_job(cupsd_client_t *con, /* I - Client connection */ ipp_attribute_t *attr; /* Current attribute */ ipp_attribute_t *format; /* Document-format attribute */ cups_ptype_t dtype; /* Destination type (printer or class) */ + char method[HTTP_MAX_URI], + /* Method portion of URI */ + username[HTTP_MAX_URI], + /* Username portion of URI */ + host[HTTP_MAX_URI], + /* Host portion of URI */ + resource[HTTP_MAX_URI]; + /* Resource portion of URI */ + int port; /* Port portion of URI */ char super[MIME_MAX_SUPER], /* Supertype of file */ type[MIME_MAX_TYPE]; @@ -9015,7 +9066,11 @@ validate_job(cupsd_client_t *con, /* I - Client connection */ * Is the destination valid? */ - if (!cupsdValidateDest(uri->values[0].string.text, &dtype, &printer)) + httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, method, + sizeof(method), username, sizeof(username), host, + sizeof(host), &port, resource, sizeof(resource)); + + if (cupsdValidateDest(host, resource, &dtype, &printer) == NULL) { /* * Bad URI... @@ -9115,5 +9170,5 @@ validate_user(cupsd_job_t *job, /* I - Job */ /* - * End of "$Id: ipp.c 5552 2006-05-20 12:00:37Z mike $". + * End of "$Id: ipp.c 5554 2006-05-20 12:23:40Z mike $". */ diff --git a/scheduler/job.c b/scheduler/job.c index de0d6005cf..2cd60b6163 100644 --- a/scheduler/job.c +++ b/scheduler/job.c @@ -1,5 +1,5 @@ /* - * "$Id: job.c 5543 2006-05-18 20:51:33Z mike $" + * "$Id: job.c 5545 2006-05-18 21:00:56Z mike $" * * Job management routines for the Common UNIX Printing System (CUPS). * @@ -865,6 +865,13 @@ cupsdLoadJob(cupsd_job_t *job) /* I - Job */ cups_file_t *fp; /* Job file */ int fileid; /* Current file ID */ ipp_attribute_t *attr; /* Job attribute */ + char scheme[32], /* Scheme portion of URI */ + username[64], /* Username portion of URI */ + host[HTTP_MAX_HOST], + /* Host portion of URI */ + resource[HTTP_MAX_URI]; + /* Resource portion of URI */ + int port; /* Port portion of URI */ const char *dest; /* Destination */ mime_type_t **filetypes; /* New filetypes array */ int *compressions; /* New compressions array */ @@ -948,7 +955,11 @@ cupsdLoadJob(cupsd_job_t *job) /* I - Job */ return; } - if ((dest = cupsdValidateDest(attr->values[0].string.text, &(job->dtype), + httpSeparateURI(HTTP_URI_CODING_ALL, attr->values[0].string.text, scheme, + sizeof(scheme), username, sizeof(username), host, + sizeof(host), &port, resource, sizeof(resource)); + + if ((dest = cupsdValidateDest(host, resource, &(job->dtype), NULL)) == NULL) { cupsdLogMessage(CUPSD_LOG_ERROR, @@ -3444,5 +3455,5 @@ unload_job(cupsd_job_t *job) /* I - Job */ /* - * End of "$Id: job.c 5543 2006-05-18 20:51:33Z mike $". + * End of "$Id: job.c 5545 2006-05-18 21:00:56Z mike $". */ diff --git a/scheduler/printers.c b/scheduler/printers.c index 1beabcf1fd..f6511b939b 100644 --- a/scheduler/printers.c +++ b/scheduler/printers.c @@ -1,5 +1,5 @@ /* - * "$Id: printers.c 5533 2006-05-16 19:45:14Z mike $" + * "$Id: printers.c 5535 2006-05-16 19:47:26Z mike $" * * Printer routines for the Common UNIX Printing System (CUPS). * @@ -406,6 +406,10 @@ cupsdCreateCommonData(void) /* copies-supported */ ippAddRange(CommonData, IPP_TAG_PRINTER, "copies-supported", 1, MaxCopies); + /* document-format-default */ + ippAddString(CommonData, IPP_TAG_PRINTER, IPP_TAG_MIMETYPE, + "document-format-default", NULL, "application/octet-stream"); + /* generated-natural-language-supported */ ippAddString(CommonData, IPP_TAG_PRINTER, IPP_TAG_LANGUAGE, "generated-natural-language-supported", NULL, DefaultLanguage); @@ -2400,25 +2404,18 @@ cupsdUpdatePrinters(void) const char * /* O - Printer or class name */ cupsdValidateDest( - const char *uri, /* I - Printer URI */ + const char *hostname, /* I - Host name */ + const char *resource, /* I - Resource name */ cups_ptype_t *dtype, /* O - Type (printer or class) */ cupsd_printer_t **printer) /* O - Printer pointer */ { cupsd_printer_t *p; /* Current printer */ char localname[1024],/* Localized hostname */ *lptr, /* Pointer into localized hostname */ - *sptr, /* Pointer into server name */ - *rptr, /* Pointer into resource */ - scheme[32], /* Scheme portion of URI */ - username[64], /* Username portion of URI */ - hostname[HTTP_MAX_HOST], - /* Host portion of URI */ - resource[HTTP_MAX_URI]; - /* Resource portion of URI */ - int port; /* Port portion of URI */ - - - DEBUG_printf(("cupsdValidateDest(uri=\"%s\", dtype=%p, printer=%p)\n", uri, + *sptr; /* Pointer into server name */ + + + DEBUG_printf(("cupsdValidateDest(\"%s\", \"%s\", %p, %p)\n", hostname, resource, dtype, printer)); /* @@ -2428,16 +2425,7 @@ cupsdValidateDest( if (printer) *printer = NULL; - if (dtype) - *dtype = (cups_ptype_t)0; - - /* - * Pull the hostname and resource from the URI... - */ - - httpSeparateURI(HTTP_URI_CODING_ALL, uri, scheme, sizeof(scheme), - username, sizeof(username), hostname, sizeof(hostname), - &port, resource, sizeof(resource)); + *dtype = (cups_ptype_t)0; /* * See if the resource is a class or printer... @@ -2449,7 +2437,7 @@ cupsdValidateDest( * Class... */ - rptr = resource + 9; + resource += 9; } else if (!strncmp(resource, "/printers/", 10)) { @@ -2457,7 +2445,7 @@ cupsdValidateDest( * Printer... */ - rptr = resource + 10; + resource += 10; } else { @@ -2472,19 +2460,17 @@ cupsdValidateDest( * See if the printer or class name exists... */ - p = cupsdFindDest(rptr); + p = cupsdFindDest(resource); - if (p == NULL && strchr(rptr, '@') == NULL) + if (p == NULL && strchr(resource, '@') == NULL) return (NULL); else if (p != NULL) { if (printer) *printer = p; - if (dtype) - *dtype = p->type & (CUPS_PRINTER_CLASS | CUPS_PRINTER_IMPLICIT | - CUPS_PRINTER_REMOTE); - + *dtype = p->type & (CUPS_PRINTER_CLASS | CUPS_PRINTER_IMPLICIT | + CUPS_PRINTER_REMOTE); return (p->name); } @@ -2493,7 +2479,7 @@ cupsdValidateDest( */ if (!strcasecmp(hostname, "localhost")) - strlcpy(hostname, ServerName, sizeof(hostname)); + hostname = ServerName; strlcpy(localname, hostname, sizeof(localname)); @@ -2535,15 +2521,13 @@ cupsdValidateDest( p; p = (cupsd_printer_t *)cupsArrayNext(Printers)) if (!strcasecmp(p->hostname, localname) && - !strcasecmp(p->name, rptr)) + !strcasecmp(p->name, resource)) { if (printer) *printer = p; - if (dtype) - *dtype = p->type & (CUPS_PRINTER_CLASS | CUPS_PRINTER_IMPLICIT | - CUPS_PRINTER_REMOTE); - + *dtype = p->type & (CUPS_PRINTER_CLASS | CUPS_PRINTER_IMPLICIT | + CUPS_PRINTER_REMOTE); return (p->name); } @@ -2792,10 +2776,6 @@ add_printer_defaults(cupsd_printer_t *p)/* I - Printer */ ippAddInteger(p->attrs, IPP_TAG_PRINTER, IPP_TAG_INTEGER, "copies-default", 1); - if (!cupsGetOption("document-format", p->num_options, p->options)) - ippAddString(CommonData, IPP_TAG_PRINTER, IPP_TAG_MIMETYPE, - "document-format-default", NULL, "application/octet-stream"); - if (!cupsGetOption("job-hold-until", p->num_options, p->options)) ippAddString(p->attrs, IPP_TAG_PRINTER, IPP_TAG_KEYWORD, "job-hold-until-default", NULL, "no-hold"); @@ -3300,5 +3280,5 @@ write_irix_state(cupsd_printer_t *p) /* I - Printer to update */ /* - * End of "$Id: printers.c 5533 2006-05-16 19:45:14Z mike $". + * End of "$Id: printers.c 5535 2006-05-16 19:47:26Z mike $". */ diff --git a/scheduler/printers.h b/scheduler/printers.h index 7d502b681e..ef8b347090 100644 --- a/scheduler/printers.h +++ b/scheduler/printers.h @@ -1,5 +1,5 @@ /* - * "$Id: printers.h 5533 2006-05-16 19:45:14Z mike $" + * "$Id: printers.h 5330 2006-03-23 21:07:20Z mike $" * * Printer definitions for the Common UNIX Printing System (CUPS) scheduler. * @@ -135,7 +135,8 @@ extern void cupsdStopPrinter(cupsd_printer_t *p, int update); extern void cupsdUpdatePrinters(void); extern cupsd_quota_t *cupsdUpdateQuota(cupsd_printer_t *p, const char *username, int pages, int k); -extern const char *cupsdValidateDest(const char *uri, +extern const char *cupsdValidateDest(const char *hostname, + const char *resource, cups_ptype_t *dtype, cupsd_printer_t **printer); extern void cupsdWritePrintcap(void); @@ -145,5 +146,5 @@ extern char *cupsdSanitizeURI(const char *uri, char *buffer, /* - * End of "$Id: printers.h 5533 2006-05-16 19:45:14Z mike $". + * End of "$Id: printers.h 5330 2006-03-23 21:07:20Z mike $". */ diff --git a/scheduler/testmime.c b/scheduler/testmime.c index 64897975c6..889f5591f3 100644 --- a/scheduler/testmime.c +++ b/scheduler/testmime.c @@ -1,5 +1,5 @@ /* - * "$Id: testmime.c 5533 2006-05-16 19:45:14Z mike $" + * "$Id: testmime.c 5535 2006-05-16 19:47:26Z mike $" * * MIME test program for the Common UNIX Printing System (CUPS). * @@ -331,5 +331,5 @@ type_dir(mime_t *mime, /* I - MIME database */ /* - * End of "$Id: testmime.c 5533 2006-05-16 19:45:14Z mike $". + * End of "$Id: testmime.c 5535 2006-05-16 19:47:26Z mike $". */ diff --git a/systemv/cupstestppd.c b/systemv/cupstestppd.c index 0177cc7eb3..20c3c0a340 100644 --- a/systemv/cupstestppd.c +++ b/systemv/cupstestppd.c @@ -1,5 +1,5 @@ /* - * "$Id: cupstestppd.c 5548 2006-05-19 19:38:31Z mike $" + * "$Id: cupstestppd.c 5549 2006-05-19 19:39:28Z mike $" * * PPD test program for the Common UNIX Printing System (CUPS). * @@ -1730,5 +1730,5 @@ usage(void) /* - * End of "$Id: cupstestppd.c 5548 2006-05-19 19:38:31Z mike $". + * End of "$Id: cupstestppd.c 5549 2006-05-19 19:39:28Z mike $". */ diff --git a/systemv/lpadmin.c b/systemv/lpadmin.c index 1d60982536..c0467fa767 100644 --- a/systemv/lpadmin.c +++ b/systemv/lpadmin.c @@ -1,5 +1,5 @@ /* - * "$Id: lpadmin.c 5544 2006-05-18 21:00:16Z mike $" + * "$Id: lpadmin.c 5545 2006-05-18 21:00:56Z mike $" * * "lpadmin" command for the Common UNIX Printing System (CUPS). * @@ -1984,5 +1984,5 @@ validate_name(const char *name) /* I - Name to check */ /* - * End of "$Id: lpadmin.c 5544 2006-05-18 21:00:16Z mike $". + * End of "$Id: lpadmin.c 5545 2006-05-18 21:00:56Z mike $". */ diff --git a/systemv/lpstat.c b/systemv/lpstat.c index 5a6f317279..731625edae 100644 --- a/systemv/lpstat.c +++ b/systemv/lpstat.c @@ -1,5 +1,5 @@ /* - * "$Id: lpstat.c 5527 2006-05-15 19:37:11Z mike $" + * "$Id: lpstat.c 5529 2006-05-15 20:06:46Z mike $" * * "lpstat" command for the Common UNIX Printing System (CUPS). * @@ -2248,5 +2248,5 @@ show_scheduler(http_t *http) /* I - HTTP connection to server */ /* - * End of "$Id: lpstat.c 5527 2006-05-15 19:37:11Z mike $". + * End of "$Id: lpstat.c 5529 2006-05-15 20:06:46Z mike $". */ diff --git a/tools/makesrcdist b/tools/makesrcdist index 955a8f42dc..a17e8013a5 100755 --- a/tools/makesrcdist +++ b/tools/makesrcdist @@ -1,6 +1,6 @@ #!/bin/sh # -# "$Id: makesrcdist 5502 2006-05-08 21:09:15Z mike $" +# "$Id: makesrcdist 5500 2006-05-08 20:32:27Z mike $" # # makesrcdist - make a source distribution of CUPS. # @@ -18,9 +18,9 @@ if test $# = 0; then echo Updating for snapshot... svn up rev=`svnversion . | sed -e '1,$s/[a-zA-Z]//g'` - version="1.3svn" + version="1.2svn" revision="-r$rev" - fileversion="1.3svn-r$rev" + fileversion="1.2svn-r$rev" fileurl="ftp://ftp.easysw.com/pub/cups/test/cups-$fileversion-source.tar." url="." else @@ -32,7 +32,7 @@ else fileurl="ftp://ftp.easysw.com/pub/cups/$version/cups-$fileversion-source.tar." url="https://svn.easysw.com/public/cups/tags/release-$version" - svn copy https://svn.easysw.com/public/cups/trunk "$url" \ + svn copy https://svn.easysw.com/public/cups/branches/branch-1.2 "$url" \ -m "Tag $version" || exit 1 fi @@ -81,5 +81,5 @@ rm -rf cups-$version echo "Done!" # -# End of "$Id: makesrcdist 5502 2006-05-08 21:09:15Z mike $". +# End of "$Id: makesrcdist 5500 2006-05-08 20:32:27Z mike $". # diff --git a/tools/testosx b/tools/testosx index 4bc74b5804..655853a3b3 100755 --- a/tools/testosx +++ b/tools/testosx @@ -12,7 +12,7 @@ fi rev=`svnversion . | awk -F: '{print $NF}' | sed -e '1,$s/[a-zA-Z]*//g'` if test $# = 0; then - version="1.3svn-r$rev" + version="1.2svn-r$rev" else version=$1 fi @@ -69,7 +69,7 @@ for file in packaging/cups-desc.plist packaging/cups-info.plist \ echo Updating $file... sed -e '1,$s/@CUPS_VERSION@/'$version'/g' \ -e '1,$s/@CUPS_REVISION@//g' \ - -e '1,$s/@CUPS_RELEASE@/1.3.'$rev'/g' \ + -e '1,$s/@CUPS_RELEASE@/1.2.'$rev'/g' \ <$file.in >$file done