]> git.imager.perl.org - imager.git/blobdiff - Changes
- add limited tests for Imager::ExtUtils
[imager.git] / Changes
diff --git a/Changes b/Changes
index 3a69225664a090c0c791b9518c313d5ebfdce365..861ae7484c5514cfada5dd57ecfa9d33cf978947 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,8 +1,387 @@
 Imager release history.  Older releases can be found in Changes.old
 
-Imager 0.57 -
+Imager 0.67 - unreleased
 ===========
 
+Bug fixes:
+
+ - corrected a reference leak where writing GIFs would leak memory.
+   This could also happen calling to_paletted().
+   Also documented the underlying long existing feature where the
+   colors parameter is filled with the generated color table and added
+   tests for it.
+   http://rt.cpan.org/Ticket/Display.html?id=41028
+
+ - write out the image size in bytes field of a BMP correctly.
+   http://rt.cpan.org/Ticket/Display.html?id=41406
+
+ - add limited tests for Imager::ExtUtils
+
+ - make Imager::ExtUtils->includes use an absolute path, since
+   a relative path could cause failures using Inline::C.
+   http://rt.cpan.org/Ticket/Display.html?id=37353
+
+Imager 0.66 - 22 April 2008
+===========
+
+ - 24-bit color .ICO/.CUR files can now be read.
+
+Bug fixes:
+
+ - an optimization skipping 0 src alpha values could cause the
+   rubthrough() to read past the end of a buffer.
+   http://www.nntp.perl.org/group/perl.cpan.testers/2008/05/msg1509184.html
+
+Imager 0.65 - 20 May 2008
+===========
+
+Bug fixes:
+
+ - In some cases when an error occurs reading those parts of a JPEG
+   file after the image the scan-line buffer could be freed a second
+   time.  In cases where the the error occured while reading the image
+   data it's possible that the buffer could have leaked.
+   Thanks to Gabriel Vasseur for reporting this and help in tracking
+   it down.
+
+ - the gif_screen_height tag was overriding the screen width and being
+   ignored for the screen height when present.
+   https://rt.cpan.org/Public/Bug/Display.html?id=35568
+
+Imager 0.64 - 23 April 2008
+===========
+
+This is a bug fix release.  This includes a fix for a possible
+security issue.
+
+Bug fixes:
+
+ - Possible security issue: The floating point sample path for image
+   based fills had a buffer overflow.  This would overwrite the end of
+   a malloc()ed buffer with double precision floats.
+   http://rt.cpan.org/Ticket/Display.html?id=35324
+   CVE-2008-1928
+
+ - check that the result of fileno($fh) is defined rather than simply
+   true when read() or write() is supplied with an fh parameter.
+   http://rt.cpan.org/Ticket/Display.html?id=35139
+
+ - i_scale_axis() wasn't checking the result of i_img_new_ch()
+   resulting in a SIGSEGV when attempting to scale an image to a size
+   too large to fit in memory.  This is a NULL pointer access issue,
+   not a buffer overflow.
+   Added a check for the failure.
+   scale_calculate() (and hence scale()) will now fail if any of the
+   scale size parameters are a reference.
+   http://rt.cpan.org/Ticket/Display.html?id=35172
+
+ - Regression: filling a greyscale image with a hatch used the wrong
+   color channels from the supplied fg/bg colors.
+   https://rt.cpan.org/Ticket/Display.html?id=35278
+
+ - fixed a related problem for image fills.
+
+Imager 0.63 - 7 April 2008
+===========
+
+This release primarily contains changes to improve ease of use -
+rather than you having to convert images to the appropriate number of
+channels, Imager handles it internally.  How to handle drawing colors
+and the default combine mode is a thornier problem left for some other
+release.
+
+ - the font libraries are now only initialized when needed.
+   http://rt.cpan.org/Ticket/Display.html?id=28825
+
+ - moved the imtoc.perl code into Imager::Preprocess
+
+ - paste() and rubthrough() now adapt the source image data to the
+   destination, so you can now safely paste/rubthrough from greyscale
+   images to color images or back, or from alpha channel images to
+   noalpha channels or back.
+   https://rt.cpan.org/Ticket/Display.html?id=30908
+
+ - rubthrough() now falls back to pasting when the source doesn't have
+   an alpha channel.  This effectively treats the source as having a
+   max alpha channel, the right thing to do.
+   http://rt.cpan.org/Ticket/Display.html?id=29944
+
+ - re-worked most of the area filling code to use a common set of
+   functions when filling.
+   Corrected normal combine mode.
+   Rewrote most of the combine modes to match the way the SVG draft
+   defines them with respect to a translucent source and destination.
+   Added tests for translucent source and destination.
+   Added tests to check 8-bit/sample and double/sample combines work
+   similarly.
+   https://rt.cpan.org/Ticket/Display.html?id=29879
+
+ - writing a 2 or 4 channel image to a JPEG file will now write that
+   image as if composited against a background, black by default,
+   overridable with the i_background tag/parameter.
+   https://rt.cpan.org/Ticket/Display.html?id=29876
+
+ - writing a 2 or 4 channel image to a PGM/PPM file will now write
+   that image as if composited against a background, black by default,
+   overridable with the i_background tag/parameter.
+   http://rt.cpan.org/Ticket/Display.html?id=30074
+
+ - writing a 2 or 4 channel image to a BMP file will now write that
+   image as if composited against a background, black by default,
+   overridable with the i_background tag/parameter.
+   http://rt.cpan.org/Ticket/Display.html?id=30075
+
+Bug fixes:
+
+ - Imager::Matrix2d->translate() now only requires one of the x or y
+   parameters.
+   http://rt.cpan.org/Ticket/Display.html?id=29937
+
+ - mixing qtype scaling now sets all channels of a pixel to zero if
+   the pixel has zero coverage (zero alpha).  This should produce more
+   compressible output files.
+   http://rt.cpan.org/Ticket/Display.html?id=32324
+
+ - removed the pointless #! line from lib/Imager/Font/Wrap.pm
+   Noticed when I saw:
+   https://bugzilla.redhat.com/show_bug.cgi?id=166254
+   I'm not changing the #! lines of the sample code, since it's sample
+   code, not intended for installation.
+   http://rt.cpan.org/Ticket/Display.html?id=33408
+
+ - some TGA images weren't being detected correctly as TGA images
+   https://rt.cpan.org/Ticket/Display.html?id=32925
+
+ - handling of the left-over bit for 16-bit/pixel TGA images has been
+   changed to match the behaviour of the GIMP.  Previously the bit
+   being set was treated as an opaque pixel, but one user reported a
+   problem with loading such an image.  I haven't been able to find any
+   tools beyond the GIMP that handle alpha-channel 16-bit TGAs, so
+   I'll match it's behaviour.  See issue 114913 in the GIMP's
+   bugzilla.
+   http://rt.cpan.org/Ticket/Display.html?id=32926
+
+Imager 0.62 - 10 December 2007
+===========
+
+ - Makefile.PL now expands ~/path supplied to --incpath or --libpath
+   to /path under your home directory.
+   http://rt.cpan.org/Ticket/Display.html?id=29484
+
+ - the old dynaload code used Mach API functions to load dynamic
+   libraries on Mac OS X.  These APIs have been deprecated in OS X
+   10.5 and were causing some build problems.
+   So henceforth Imager uses the dlopen() family of functions, and you 
+   will need version 10.3 or later of OS X.
+
+ - added the det() function to the transform2() engine.
+   added the sample quad_to_square.pl
+   Courtesy Richard Fairhurst.
+   http://rt.cpan.org/Ticket/Display.html?id=31244
+
+Bug fixes:
+
+ - samples/gifscale.pl sourced the base value for gif_top from
+   gif_left.
+   Thanks to Eleneldil G. Arilou for pointing this out.
+
+ - t/t82inline.t no longer loads B at runtime, to work around a bug
+   in some 5.005_0[45] installations.
+   http://rt.cpan.org/Ticket/Display.html?id=30508
+
+ - work around Module::Depends::Intrusive bug #21229
+   http://rt.cpan.org/Ticket/Display.html?id=30520
+
+ - the hardinvert filter no-longer inverts the alpha channel.
+   http://rt.cpan.org/Ticket/Display.html?id=30002
+
+ - the hardinvert filter now supports large samples
+
+Imager 0.61_02 - 28 November 2007
+==============
+
+ - major TIFF support re-work
+   http://rt.cpan.org/Ticket/Display.html?id=20329
+
+ - added a C level image interface for accessing samples from 1-32
+   bits, exposed this at the perl level in getsamples()
+
+ - the conv filter now works at floating point precision for high bit
+   images
+
+ - added is_bilevel method to test whether an image should be written as
+   a bilevel image if the image format supports it.
+
+ - added -log-stderr as an Imager import list option
+
+ - added some important types to Imager::APIRef
+
+ - added test_image_double() to Imager::Test
+
+Bug fixes:
+
+ - Imager::Fountain couldn't read GIMP gradient files with 10 or more
+   segments
+
+ - the scale() method with qtype mixing now handles images with an
+   alpha channel correctly.
+
+ - fixed a broken link from the "animated GIF" entry in the concept index.
+   Thanks to Slaven Rezic.
+   http://rt.cpan.org/Ticket/Display.html?id=30889
+
+ - on some perl's the infix expression parser test would fail due to
+   actions in the grammar returning false.  Made sure all actions return
+   a true value.
+   Thanks to Richard Fairhurst for spending a lot of time in tracking
+   down this problem.
+   http://rt.cpan.org/Public/Bug/Display.html?id=29562
+
+Imager 0.61 - 5 November 2007
+===========
+
+ - added samples/gifscale.pl, which adjusts the screen size/position tags
+   when scaling an animated gif
+   http://rt.cpan.org/Ticket/Display.html?id=27591
+
+Bug fixes:
+
+ - correct handling of sz in matrix_transform() - this should allow
+   perspective type transformations to work now.
+   http://rt.cpan.org/Ticket/Display.html?id=29936
+
+ - prevent a cast to integer warning on x64 builds in datatypes.c
+   also fixed some other type warnings
+   https://rt.cpan.org/Ticket/Display.html?id=30204
+
+ - some sub-directory tests depended on files produced by the parent
+   directory tests
+   http://rt.cpan.org/Ticket/Display.html?id=30203
+
+ - Imager::Font::Wrap doesn't correctly set savepos
+   thanks to Nikita Dedik and Eleneldil G. Arilou for reporting this.
+   http://rt.cpan.org/Ticket/Display.html?id=29771
+
+ - test 171 in t/t01introvert.t was failing on perls configured to
+   use long double.
+   http://rt.cpan.org/Ticket/Display.html?id=29413
+
+ - the code for the transform2() uminus operator was missing a break.
+   Added tests for better code coverage of the ops.
+   http://rt.cpan.org/Ticket/Display.html?id=29296
+
+ - the SGI RLE compression code could overflow its compression buffer
+   http://rt.cpan.org/Ticket/Display.html?id=30334
+
+ - the 32-bit output function used by the SGI code only handled values
+   under 0x10000.  This was most noticable when writing large RLE images.
+   http://rt.cpan.org/Ticket/Display.html?id=30335
+
+ - validate chan_count for chans == NULL for each of the i_gsamp()
+   implementations.
+   http://rt.cpan.org/Ticket/Display.html?id=28985
+
+ - attempt to work around the test failure at 
+   http://www.nntp.perl.org/group/perl.cpan.testers/2007/09/msg650810.html
+   http://rt.cpan.org/Ticket/Display.html?id=29562
+
+ - improve the error messages produced when attempting to read or write
+   an unknown image file format.
+   http://rt.cpan.org/Ticket/Display.html?id=30103
+
+ - improve the transform2() documentation
+   http://rt.cpan.org/Ticket/Display.html?id=29267
+
+ - correctly generate the author key in META.yml
+   http://rt.cpan.org/Ticket/Display.html?id=30377
+
+ - correctly blend a rotated (or matrix_transformed()) image when
+   performing interpolation in the presence of an alpha channel.
+   Also corrected the centring of the rotated image on the output
+   image.
+
+Imager 0.60 - 30 August 2007
+===========
+
+ - Finished/rewrote Arnar's old SGI RGB file format support, so Imager
+   now has full SGI RGB image format, including RLE and 16-bit/sample
+   images.
+   https://rt.cpan.org/Ticket/Display.html?id=8666
+
+ - logging functions are now available in the API
+
+ - applied Gabriel Vasseur's patch
+   added documentation, further tests, and support for greyscale images
+   Obviously problems are my fault :)
+   https://rt.cpan.org/Ticket/Display.html?id=28142
+
+ - the mask for ICO/CUR images is now applied as an alpha channel to
+   the returned image.  For the old behaviour, supply ico_masked => 0
+   to read() or read_multi().  This should be less confusing when
+   using Imager as a general image processor.
+   https://rt.cpan.org/Ticket/Display.html?id=29001
+
+Bug fixes:
+
+ - in some cases it's possible for giflib/libungif to return color 
+   indexes outside the range of colors defined by the image's palette.
+   We now expand the palette to match the indexes used.
+   Thanks to Gabriel Vasseur for reporting this.
+
+ - fixed various memory leaks that could occur when failing to read png,
+   jpeg, bmp or tga files.
+
+ - to avoid confusion, channels not present in the image are returned as
+   zero by getscanline().  This has no effect on the C level i_glin()
+   and i_glinf() API functions which continue to not set the unused
+   channels.
+
+ - the convert() method now returns an image of the same sample size as
+   the source image.
+   https://rt.cpan.org/Ticket/Display.html?id=28492
+
+ - remove repeated text in Imager::Files
+   http://rt.cpan.org/Ticket/Display.html?id=27589
+
+ - be even more explicit that scale() and friends don't modify the source
+   image, but return a new image.
+   http://rt.cpan.org/Ticket/Display.html?id=28570
+
+ - improve the error message from errstr() when you try to load a font
+   for which the driver hasn't been built in Imager.
+   http://rt.cpan.org/Ticket/Display.html?id=27571
+
+ - transparency is now enabled by default when writing GIF images
+   http://rt.cpan.org/Ticket/Display.html?id=27615
+
+ - Imager would not load on Windows 98
+   http://rt.cpan.org/Ticket/Display.html?id=27653
+
+Imager 0.59 - 14 June 2007
+===========
+
+Bug fixes:
+
+ - fixes a regression introduced by the fixes for RT 11972
+   http://rt.cpan.org/Ticket/Display.html?id=27546
+
+ - cropping outside the image would return an Imager object with
+   no low-level image object, instead of returning false.
+   Fixed by: Philip Gwyn (Leolo)
+   http://rt.cpan.org/Ticket/Display.html?id=27509
+
+Imager 0.58 - 16 May 2007
+===========
+
+No significant changes from 0.57_01.
+
+Imager 0.57_01 - 11 May 2007
+==============
+
+ - added to_rgb16 to produce a 16-bit/sample version of an image
+
+ - improve freetype 1.x text output efficiency
+
 Bug fixes:
 
  - search another place for rgb.txt, and check all the places 
@@ -13,6 +392,39 @@ Bug fixes:
    fixed size when performing a gaussian blur
    http://rt.cpan.org/Ticket/Display.html?id=25645
 
+ - document the difference() method's mindist parameter, and debug it.
+
+ - put the Imager release number in the Inline::C generated code to
+   regenerate Inline code when a new release of Imager is installed.
+   http://rt.cpan.org/Ticket/Display.html?id=26278
+
+ - fix rendering on alpha channel images for the FreeType 1.x driver.
+   http://rt.cpan.org/Ticket/Display.html?id=11972
+
+ - fix rendering on alpha channel images for the T1lib driver.
+   http://rt.cpan.org/Ticket/Display.html?id=11972
+
+ - reworked library probing, we can now set more than one probe
+   function for a library.  Disabled the default (non-freetype-config)
+   library probe and added an extra probe function that searches for
+   both ft2build.h and whatever it includes, and adds -I as needed.
+   Hopefully this will fix build problems like
+   http://www.nntp.perl.org/group/perl.cpan.testers/2007/05/msg472281.html
+   http://rt.cpan.org/Ticket/Display.html?id=26086
+
+Imager 0.57 - 30 Apr 2007
+===========
+
+This is a maintenence release fixing a security issue in Imager.
+
+ - CRITICAL: a specially crafted compressed BMP file can cause a buffer
+   overflow in malloced memory.  There will be further discussion of
+   this issue in the ticket below.
+   http://rt.cpan.org/Ticket/Display.html?id=26811
+   CVE-2007-2459  CVE-2007-2413
+   The descriptions at cve.mitre.org varied in quality, please see the
+   ticket at rt.cpan.org for a more accurate description of the issue.
+
 Imager 0.56 - 1 Apr 2007
 ===========