# E - Release Notes

This appendix provides a description of the changes in each release of the CUPS DDK.

## Changes in v1.2.3

- Added a missing test file (foo-fr.po) to the source distribution.

## Changes in v1.2.2

- The PPD compiler hung when the driver info file contained attributes (STR #2541)
- The PPD compiler did not include "en" in the cupsLanguages attribute value.

## Changes in v1.2.1

- "#include foo" was (incorrectly) treated like "{ #include foo }" (STR #2514)
- Color profiles and other localizable attributes were not localized in generated PPD files (STR #2507)
- Page sizes were not properly localized in multi- language PPD files (STR #2524)
- "#include <file name>" did not work (STR #2506)
- The ppdpo utility did not include localizable attributes (STR #2479)
- The ppdc utility did not add a newline at the end of boolean and keyword attributes (STR #2481)
- The ppdc utility incorrectly wrote Product attributes twice.

## Changes in v1.2.0

- The DDK is now owned and licensed by Apple Inc.
- Added many new and updated message catalogs for the default localization strings.
- The ppdc utility did not generate localized PageSize, InputSlot, or MediaType options.
- The ppdpo utility incorrectly included the copyright text in the .po file.
- The ppdc utility incorrectly included two copies of the <font.defs> file.
- The ppdc utility did not allow you to override the cupsVersion attribute.
- The ppdmerge utility now recognizes "Korean" as a LanguageVersion.
- The ppdmerge utility incorrectly used "cn" for the Chinese locale.

## Changes in v1.1.1

- The ppdmerge utility incorrectly used "jp" for the Japanese locale (STR #2300)

## Changes in v1.1.0

- The ppdpo utility no longer includes the LanguageEncoding or LanguageVersion strings (STR #1525)
- The PPD compiler now provides a -D option to set variables from the command-line (STR #2066)
- If the PCFileName uses a lowercase ".ppd" extension, the PPD compiler will not convert the entire filename to lowercase (STR #2065)
- Added the ppdmerge utility.
- The "dymo" driver has been renamed to "label", which is the name used in CUPS 1.2 and higher.
- The PPD compiler now supports generation of compressed PPD files.
- The PPD compiler now supports generation of PPD files with line endings other than just a line feed.
- The PPD compiler now supports generation of globalized (multi-language) PPD files.
- Fixed the MacOS X Universal Binary support.
- The drivers now have their own man pages.
- The drivers are now bundled in a separate "cupsddk-drivers" package to allow vendors to provide the drivers separate from the developer kit.

## Changes in v1.0.1

- The ppdc utility did not return a non-zero exit code when it was unable to load a message catalog.
- The ppdc utility now looks for and uses existing ModelName, NickName, ShortNickName, LanguageEncoding, and LanguageVersion attributes; if missing, the previous auto-generated values are used (STR #709)
- The ppdi utility could add extra "*" characters to the beginning of main keywords in UIConstraints depending on the version of CUPS that was used (STR #703)
- Added man pages for the rastertoescpx and rastertopclx filters (STR #626)
- The ppdi utility crashed when importing a PPD file without Manufacturer, ModelName, PCFileName, or FileVersion attributes (STR #883)
- The configure script did not use the cups-config reported compiler options when testing for the presence of the cups/cups.h include file (STR #748)
- Fixed MacOS X 10.4 compilation problems.
- Fixed the comments in the included localization files.
- Fixed the R300 tutorial.
- Some attribute values were incorrectly quoted (STR #706)
- UIConstraints were incorrectly quoted (STR #705)
- The attribute strings containing quotes were not quoted properly when saved in the driver information file; this was most visible in the ppdi utility (STR #702)

## Changes in v1.0

- No changes.

## Changes in v1.0rc2

- Fixed some makefile errors that prevented installation of the software.
- Added ppdhtml utility to produce a summary of the options for each driver in a file.
- The configure script did not use the output of "cups-config --ldflags" to properly set the LDFLAGS variable (STR #657)
- The ppdi utility didn't remove the leading manufacturer prefix from the existing ModelName string.
- The ppdi utility added an extra * in front of the option keywords in constraints.
- Imported PPDs might contain NULL code, causing problems with exported files.

## Changes in v1.0rc1

- Much improved documentation.
- Added support for cupsAllXY and cupsAllGamma CMYK transform attributes.
- Updated ESC/P driver to support both the old ESC . and new ESC i graphics commands.
- The ESC/P driver no longer uses the individual remote mode model number bits, but instead relies on the CUPS attributes instead.
- The ESC/P driver now supports automatic paper feed value computation.
- The ESC/P driver now uses a more intuitive value for the row count.
- Added the CUPS simple profile generator, cupsprofile.
- Added driver types for the CUPS sample drivers.
- Reorganized the build system and directory structure for DDK components.
- Changed the default PCL media type to 'PLAIN' instead of 'Plain'.
- The PCL driver did not set the default PPD options.

## Changes in v0.20

- First public release.
- Updated dither lookup code to support density values beyond 2.0.
- Added PCL command filter for cleaning the print heads.
- The PCL driver did not support grayscale/black output with Mode 10 compression.
- The PCL driver did not support 7-color modes.

## Changes in v0.15

- The cupsCheckValue() function did its comparisons incorrectly, causing missing lines.
- The PPD compiler internally limited the size of code in PPD files to 1024 bytes; this has been increased to 10240 bytes (10k)
- The ESC/P driver did not support the softweaved modes properly.
- The PCL driver did not initialize the seed buffer correctly for mode 3 compression, causing spooky prints on PCL color devices in RGB mode.
- The PCL driver did not set the DISPLAY variable in its PJL JOB command, so some printers did not display the job info on the printer's LCD.
- Initial prototype of GUI development environment (ppddevel).
- First draft of PPDC manual.

## Changes in v0.14

- Improved the performance of the ppdi utility.
- The ppdc utility now converts the PCFileName string to lowercase when creating PPD files.
- Added new 'Fonts *' directive to include base fonts; otherwise PS PPD files would get non-PS base fonts.
- Added new 'CustomMedia' directive for non-standard media sizes/commands.
- Generated PPD files now use attributes instead of the standard values if defined (e.g. PSVersion's, Product's, etc.)
- The advanced PCL driver now uses non-standard cupsXYZ option names for all finishing options to avoid conflicts with HP and Lexmark PPD plug-ins on OSX.
- The advanced ESC/P driver now sets the correct top margin and position.

## Changes in v0.13

- Added the advanced PCL driver.
- The cupsCMYKLoad() function looked for the cupsBlackGeneration attribute instead of cupsBlackGamma for the black gamma correction and density lookup table.
- Fixed some spots where the ppdcDriver class did not localize the UI strings using the current message catalog.
- UIConstraints for Custom options now correctly map to NonUIConstraints in the output PPD file.

## Changes in v0.12

- Added hooks for cut method and pressure on high-end EPSON Stylus Pro models.
- The CMYK LUT code incorrectly required the cupsBlackGeneration attribute.

## Changes in v0.11

- Added hooks for keeping track of the driver "type" so that known drivers (ESC/P and PCL) can have meaningful ModelNumber values in the driver info/source files when saved.
- Now support localization via GNU gettext-like .po files.
- Changed the names of all CMYK lookup table attributes to be shorter and less specific to the CMYK code.
- Fixed the CMYK lookup table XY code - need to do a reverse transform from the provided data to get the proper results.
- The Lab color management code now generates 8-bit N-channel data for use with the CMYK lookup table stuff. This should make profiling a lot easier.
- The ESC/P driver now uses more PPD attributes for printer-specific stuff.

## Changes in v0.10

- Initial private release.