diff options
author | giraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8> | 2013-06-29 19:19:47 +0000 |
---|---|---|
committer | giraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8> | 2013-06-29 19:19:47 +0000 |
commit | 380588e187c12000ac8082cb2a20a905d3c422a5 (patch) | |
tree | 296b1324b7a9360646a34ae836b8eb486b7feede /doc | |
parent | f8b633c2be1231a0c194214271caa456dc669ecb (diff) | |
download | netpbm-mirror-380588e187c12000ac8082cb2a20a905d3c422a5.tar.gz netpbm-mirror-380588e187c12000ac8082cb2a20a905d3c422a5.tar.xz netpbm-mirror-380588e187c12000ac8082cb2a20a905d3c422a5.zip |
Release 10.63.00
git-svn-id: http://svn.code.sf.net/p/netpbm/code/advanced@1968 9d0c8265-081b-0410-96cb-a4ca84ce46f8
Diffstat (limited to 'doc')
-rw-r--r-- | doc/HISTORY | 256 | ||||
-rw-r--r-- | doc/INSTALL | 23 | ||||
-rw-r--r-- | doc/TESTS | 302 | ||||
-rw-r--r-- | doc/patent_summary | 15 |
4 files changed, 476 insertions, 120 deletions
diff --git a/doc/HISTORY b/doc/HISTORY index 16f04d14..30be7d5c 100644 --- a/doc/HISTORY +++ b/doc/HISTORY @@ -4,51 +4,37 @@ Netpbm. CHANGE HISTORY -------------- -13.06.27 BJH Release 10.62.09 +13.06.29 BJH Release 10.63.00 - libnetpbm: fix bug: pnm_readpaminit and pnm_writepaminit set - 'opacity_plane' member of struct pam incorrectly. No Netpbm - programs are affected. + Add pamtowinicon, winicontopam. Thanks Ludolf Holzheid + (lholzheid@bihl-wiedemann.de). -13.06.14 BJH Release 10.62.08 + pgmnoise: add -maxval, speed up. Thanks Prophet of the Way + <afu@wta.att.ne.jp>. - giftopnm: fix bug: erroneously claims GIF ends prematurely. - Broken in Netpbm 10.38 (March 2007). This affects all GIfs, but - the problem does not manifest when Netpbm was built with Gcc - from 2007 and later. + Perl programs: make them shell programs that reinvoke themselves + as perl so we can get the Perl interpreter from the PATH. - libnetpbm: fix bug: ppm_freecolornames() has wild pointer - dereference when the color name table was generated empty - because the color dictionary file was not openable. ppmtoxpm - suffers from this. Broken in 10.15 (April 2003). + yuvtoppm: check for inconsistencies between specified + width and height and size of input. - ppmtoxpm: fix bug: ignores inability to open the specified color - dictionary file (-rgb) and just doesn't use color names. - Introduced in Netpbm 10.15 (April 2003). + 411toppm: check for inconsistencies between specified + width and height and size of input. - ppmforge. fix crash when -mesh is 1 or less. Always broken - (program was added in Pbmplus (October 1991). Thanks Prophet of - the Way <afu@wta.att.ne.jp>. + Ignore -plain when program generates PAM. Before, programs + failed if the user specified -plain to a program that generates + a PAM image. - ppmforge: fix array bounds violation. Always broken (program - was added in Pbmplus (October 1991). Thanks Prophet of the Way - <afu@wta.att.ne.jp>. - -13.05.27 BJH Release 10.62.07 + giftopnm: fix bug: erroneously claims GIF ends prematurely. + Broken in Netpbm 10.38 (March 2007). This affects all GIFs, but + the problem does not manifest when Netpbm was built with Gcc + from 2007 and later. pnmtops: Fix bug: only first image gets converted. Broken in Netpbm 10.56 (September 2011). -13.05.20 BJH Release 10.62.06 - - pnmremap (ergo pnmquant): fix bug: incorrect output with - -norandom and floyd-steinberg dithering. Always broken. - (-norandom was introduced in Netpbm 10.39 (June 2007)). - -13.05.11 BJH Release 10.62.05 - pnmtopng: fix bug: incorrect output when output should have - an alpha mask. Broken Netpbm in 10.55 (June 2011). Thanks + an alpha mask. Broken in Netpbm 10.55 (June 2011). Thanks Ludolf Holzheid (lholzheid@bihl-wiedemann.de). pnmtopng: fix bug: output bigger than it needs to be when the @@ -57,32 +43,55 @@ CHANGE HISTORY (September 2003). Thanks Ludolf Holzheid (lholzheid@bihl-wiedemann.de). + pnmremap (ergo pnmquant): fix bug: incorrect output with + -norandom and floyd-steinberg dithering. Always broken. + (-norandom was introduced in Netpbm 10.39 (June 2007)). + pamtilt: fix bug: incorrect output or invalid memory access crash. Always broken (program was new in Netpbm 10.30 (October 2005)). -13.05.02 BJH Release 10.62.04 + pnmpsnr: fix bug: says types aren't the same when they are. + Introduced in Netpbm 10.61 (December 2012). + + ppmtowinicon: fix bug: sometimes creates image truncated in the + middle of the AND mask. Always broken (program was new in + Netpbm 9.3 (June 2000)). + + ppmtoxpm: fix bug: ignores inability to open the specified color + dictionary file (-rgb) and just doesn't use color names. + Introduced in Netpbm 10.15 (April 2003). + + libnetpbm: fix bug: ppm_freecolornames() has wild pointer + dereference when the color name table was generated empty + because the color dictionary file was not openable. ppmtoxpm + suffers from this. Broken in 10.15 (April 2003). + + libnetpbm: fix bug: pnm_readpaminit and pnm_writepaminit set + 'opacity_plane' member of struct pam incorrectly. No Netpbm + programs are affected. Always broken (member was added in + Netpbm 10.56 (September 2011)). sparc64 pbmtog3: fix bug that causes crash due to unaligned memory access. -13.04.18 BJH Release 10.62.03 + ppmforge. fix crash when -mesh is 1 or less. Always broken + (program was added in Pbmplus (October 1991). Thanks Prophet of + the Way <afu@wta.att.ne.jp>. - build: fix problem with creating lib/util that already exists. - Broken in 10.62. + ppmforge: fix array bounds violation. Always broken (program + was added in Pbmplus (October 1991). Thanks Prophet of the Way + <afu@wta.att.ne.jp>. -13.04.13 BJH Release 10.62.02 + install: fix Perl warning in installnetpbm. Broken in + Netpbm 10.61. - ppmtowinicon: fix bug: sometimes creates image truncated in the - middle of the AND mask. Always broken (program was new in - Netpbm 9.3 (June 2000)). + build: Use <stdbool.h> when available. - install: fix Perl warning in installnetpbm. Broken in 10.61. + build: fix problem with creating lib/util that already exists. + Broken in Netpbm 10.62. - pnmpsnr: fix bug: says types aren't the same when they are. - Introduced in 10.61 (December 2012). - -13.03.28 BJH Release 10.62.00 +12.03.28 BJH Release 10.62.00 pnmtorast: set don't care bytes to zero to make output repeatable. @@ -90,16 +99,16 @@ CHANGE HISTORY rasttopnm: add -dumpheader, dumpcolormap. pamstereogram: change -guidesize default from 10 to 20 - (relevant since 10.61). + (relevant since Netpbm 10.61). rasttopnm: fix bug: incorrect output due to used-before-set - variable. Introduced in 10.56 (September 2011). + variable. Introduced in Netpbm 10.56 (September 2011). pamstereogram: fix bug: doesn't reject negative guidesize. - Broken since 10.61. + Broken since Netpbm 10.61. pamstereogram: fix bug: garbage in -verbose listing. Broken - since 10.61 + since Netpbm 10.61 MinGW build: various fixes. @@ -127,7 +136,7 @@ CHANGE HISTORY libpam, pamcomp: fix bug: treats tuple type GRAYSCALE_ALPHA like GRAYSCALE on 32-bit machine. Actually, looks only at first 4 characters (8 characters on machine with 64 bit addressess) of - the tuple type. Broken since 10.56 (September 2011). + the tuple type. Broken since Netpbm 10.56 (September 2011). pngtopam -alphapam with grayscale input: fix bug: generates invalid output: tuple type GRAYSCALE_ALPHA, but depth 1. Depth @@ -135,7 +144,7 @@ CHANGE HISTORY Netpbm 10.44 (September 2008)). pamtotiff: fix bug: XRESOLUTION, YRESOLUTION, and RESOLUTIONUNIT - not allowed in -tags. Broken at least since 10.35. + not allowed in -tags. Broken at least since Netpbm 10.35. pnmpsnr: fix crash when invoked (invalidly) with only one argument. Always broken. @@ -146,29 +155,30 @@ CHANGE HISTORY cmuwmtopbm: fix incorrect determination of whether input is a CMU window manager bitmap on 64 bit systems. Always broken. - pnmmontage: fix totally wrong output. Broken in 10.44 + pnmmontage: fix totally wrong output. Broken in Netpbm 10.44 (August 2008). pnmmontage: fix random stuff placed in unoccupied space in the - output image. Always broken (program was new in 9.10 (January - 2001). + output image. Always broken (program was new in Netpbm 9.10 + (January 2001). - pbmpscale, pgmhist, pampick, pamtompfont: fix wild pointer - in command line parsing. Bug has always been there in - pampick, pamtompfont, since 10.50 (March 2010) in pbmpscale, - since 10.44 (September 2008) in pgmhist. + pbmpscale, pgmhist, pampick, pamtompfont: fix wild pointer in + command line parsing. Bug has always been there in pampick, + pamtompfont, since Netpbm 10.50 (March 2010) in pbmpscale, since + 10.44 (September 2008) in pgmhist. xbmtopbm: fix incorrect output, memory leak. Thanks Prophet of the Way <afu@wta.att.ne.jp>. sunicontopnm: Fix incorrect output for depth 8. Always broken - (depth = 8 capability was added in 10.53 (December 2010). + (depth = 8 capability was added in Netpbm 10.53 (December 2010). pamgauss: Fix bug: erroneously says -maxval is too big on 64 bit - system. Always broken (Pamgauss was added in 10.23 (July 2004). + system. Always broken (Pamgauss was added in Netpbm 10.23 (July + 2004). - ppmpat: Fix bug: wrong output with -poles. Broken in 10.47 - (June 2009). + ppmpat: Fix bug: wrong output with -poles. Broken in Netpbm + 10.47 (June 2009). Add tests. Thanks Prophet of the Way <afu@wta.att.ne.jp>. @@ -179,19 +189,20 @@ CHANGE HISTORY linear search or direct index, go row by row. xpmtoppm: fix bogus "color number too large" failure. Broken - in 10.49 (December 2009). + in Netpbm 10.49 (December 2009). pnm_hashtuple: slight performance improvement from new hash function. Thanks Prophet of the Way <afu@wta.att.ne.jp>. ppmtospu: wild memory accesses. Always broken (program added in - 10.58 (March 2012). + Netpbm 10.58 (March 2012). pamtosrf: fix storage corruption. Always broken (program added - in 10.55 (June 2011). + in Netpbm 10.55 (June 2011). - Build: change _XOPEN_SOURCE 500 to 600 because on a Mac OSX 10.8 - system, this is necessary to get 'strdup' into <strings.h>. + Build: change _XOPEN_SOURCE 500 to 600 because on a Mac OSX + Netpbm 10.8 system, this is necessary to get 'strdup' into + <strings.h>. Build: rename getline() in xpmtoppm.c to avoid collision with some libc. Always broken. @@ -214,20 +225,23 @@ CHANGE HISTORY pamstereogram: improve verbose output. Thanks Scott Pakin (scott@pakin.org). - pamstereogram: fix crash introduced in 10.54 (March 2011). + pamstereogram: fix crash introduced in Netpbm 10.54 (March 2011). - pamstereogram: fix crash introduced in 10.53 (December 2010). + pamstereogram: fix crash introduced in Netpbm 10.53 (December + 2010). - Build: fix bug: declines to build pnmtops. Broken in 10.58. + Build: fix bug: declines to build pnmtops. Broken in Netpbm + 10.58. - Build: move -lm to end of -l's. Broken at least since 10.35. + Build: move -lm to end of -l's. Broken at least since Netpbm + 10.35. 12.03.29 BJH Release 10.58.00 Add ppmtospu, 22 years late. pngtopam: fix incorrect output when PNG has 16 bits per pixel. - Broken in 10.56. + Broken in Netpbm 10.56. pgmtexture: fix integer overflow in difference variance. Always broken. @@ -244,7 +258,7 @@ CHANGE HISTORY to Perl. Windows/Mingw: fix bug: temporary file creation fails - consistently. Broken in 10.34. + consistently. Broken in Netpbm 10.34. Windows/Mingw: set binary mode on files. @@ -272,7 +286,8 @@ CHANGE HISTORY pngtopam: fix crash with invalid tIME chunk. Always broken. - pamarith: fix wrong result with -multiply. Broken in 10.41. + pamarith: fix wrong result with -multiply. Broken in Neptbm + 10.41. pamscale: fix all black output with resampling. Always broken. @@ -306,17 +321,17 @@ CHANGE HISTORY libnetpbm, many programs: fix bug in pm_allocarray(): returns NULL when can't get memory. Calling programs thus crash on - very large images. Introduced in 10.51. + very large images. Introduced in Netpbm 10.51. pnmtopng: fix bug: with -alpha specifying a mask which contains no fully transparent area, output PNG is fully opaque. - Introduced in 10.29. + Introduced in Netpbm 10.29. pnmtops: fix message: says "from top edge" where it means "from bottom edge." ppmcie: fix bug: fails with "X coordinate out of range" error. - Introduced in 10.51. + Introduced in Neptbm 10.51. bmptopnm: Fail properly with BMP that indicates an illegal bits per pixel. @@ -336,18 +351,18 @@ CHANGE HISTORY pgmtexture: fix wrong sum variance result. Wrong since the beginning. Thanks Francois P. S. Luus <fpsluus@gmail.com>. - pamrubber: fix crash. Introduced in 10.54. + pamrubber: fix crash. Introduced in Netpbm 10.54. libnetpbm: pm_system(): fix bug - program always takes Standard Input from invoker's Standard Input when you don't - supply a Standard Output accepter. Introduced in 10.40. + supply a Standard Output accepter. Introduced in Netpbm 10.40. ppmtobmp: fix bug: crash ("internal error") or bogus failure or incorrect output on image without palette (e.g. black and - white). Introduced in 10.54. + white). Introduced in Netpbm 10.54. pnmtops: fix floating point exception or bogus width/height - too large error. Introduced in 10.53. + too large error. Introduced in Netpbm 10.53. pnmcat: Fix garbage output when multiple input image are from Standard Input (now it just fails gracefully). @@ -360,12 +375,12 @@ CHANGE HISTORY structure. Build: fix undefined "strsol" and "vsnprintfN" failure on - systems without vasprintf(). Introduced in 10.53. + systems without vasprintf(). Introduced in Netpbm 10.53. Build: fix compiler warning in pbmtocmuwm. configure: fix selection of mingw compiler. Introduced in - 10.48. + Netpbm 10.48. 11.03.30 BJH Release 10.54.00 @@ -386,7 +401,7 @@ CHANGE HISTORY Add libpamd (PAM version of classic libppmd drawing routines). Rename pbmtoicon to pbmtosunicon, to go with change - of icontopbm to sunicontopnm in 10.53. + of icontopbm to sunicontopnm in Netpbm 10.53. g3topbm: correct error message: codes go up to 13 bits. @@ -420,11 +435,11 @@ CHANGE HISTORY the BMP header of a compressed file. Always broken. bmptopnm: don't crash on large invalid value of 'colorsused' in - the BMP header. Introduced in 9.11. + the BMP header. Introduced in Netpbm 9.11. pm_mallocarray2: fix wild pointers when image is too big to fit in a single chunk of malloc memory. Affects many Netpbm - programs. Introduced in 10.51.00. + programs. Introduced in Netpbm 10.51.00. ilbmtoppm: Don't crash on image that has a transparent color index, but no color map. @@ -455,7 +470,7 @@ CHANGE HISTORY fitstopnm: Deal properly with NaN in input image. pm_floatFromBigendFloat, pm_doubleFromBigendFloat, fitstopnm: - fix corrupted output. Broken in 10.46. + fix corrupted output. Broken in Netpbm 10.46. pamtopdbimg: fix corrupted output image. Thanks Scott Pakin. @@ -497,10 +512,10 @@ CHANGE HISTORY bits). pnmconvol: fix reversed sense of -nooffset. Introduced in - 10.49. + Netpbm 10.49. ppmtompeg: fix crash with free of unallocated memory. - Broken after 10.18, not later than 10.26. + Broken after Netpbm 10.18, not later than 10.26. Build: fix parallel make - multiple simultaneous attempts to build lib/util/importinc. @@ -539,19 +554,19 @@ CHANGE HISTORY Prophet of the Way <afu@wta.att.ne.jp>. pbmtext/libpbmfont: Fix wild pointer; probably asymptomatic. - Introduced in 10.39. + Introduced in Netpbm 10.39. pbmtext/libpbmfont: Fix some error messages for bad fonts. pbmtext/libpbmfont: fix crash with a BDF font with negative - left or bottom border. Introduced in 10.39. + left or bottom border. Introduced in Netpbm 10.39. - pamarith: fix memory leak. Introduced in 10.41. + pamarith: fix memory leak. Introduced in Netpbm 10.41. pnm_bytespersample(): fix bogus assertion on 64 bit system. pnmtops: fix bug: 12 bits per sample output when 8 would do. - Introduced in 10.40. + Introduced in Netpbm 10.40. palmtopnm: fix for pixel size 16. Thanks Paul Bolle <pebolle@tiscali.nl>. @@ -567,17 +582,18 @@ CHANGE HISTORY <afu@wta.att.ne.jp>. pnmsmooth: fix wild pointer: causes wrong arguments to - 'pnmconvol'. Introduced in 10.50. Thanks Prophet of the Way - <afu@wta.att.ne.jp>. + 'pnmconvol'. Introduced in Netpbm 10.50. Thanks Prophet of the + Way <afu@wta.att.ne.jp>. - pamscale: fix -reduce. Introduced in 10.27. + pamscale: fix -reduce. Introduced in Netpbm 10.27. pampaintspill: fix incorrect output. libnetpbm text drawing: fix incorrect output in all cases. - Introduced in 10.47. + Introduced in Netpbm 10.47. - libnetpbm line drawing: fix bogus assertion, introduced in 10.47. + libnetpbm line drawing: fix bogus assertion, introduced in + Netpbm 10.47. build: fix incorrect determination of when vasprintf() exists in libc. @@ -635,14 +651,14 @@ CHANGE HISTORY pnmhistmap: Fix crash with -width. Always broken. libppmd/ppmpat: fix wild pointer in ppmd_fill_drawprocp(); - broken in 10.47. + broken in Netpbm 10.47. palmtopnm: fix incorrect "PALM_DIRECT_COLOR_FLAG is not valid for version 3 encoding type" failure. Thanks Paul Bolle <pebolle@tiscali.nl>. pamtosvg: fix bug: occasional crash with out of range error. - Introduced in 10.42. + Introduced in Netpbm 10.42. palmtopnm: fix incorrect output with version 3 direct color. Thanks Paul Bolle <pebolle@tiscali.nl>. @@ -695,7 +711,7 @@ CHANGE HISTORY pnmtofiasco, fiascotopnm: fix bug on bigendian machine. pngtopam: use png_create_read_struct() instead of - png_create_write_struct(). Broken since 10.48. + png_create_write_struct(). Broken since Netpbm 10.48. configure: advise if adding -lz -lm fixes libpng link problem. @@ -786,7 +802,7 @@ CHANGE HISTORY problems. ilbmtoppm: fix some bug in interpreting ILBM input. - (due to wrong pm_uintFromBigend16()). From 10.46. + (due to wrong pm_uintFromBigend16()). From Netpbm 10.46. ximtoppm: fix crash in command line processing. @@ -797,7 +813,7 @@ CHANGE HISTORY ppmquantall: don't use 'set' to set Bourne shell variable. pnmtile: fix reference to arbitrary storage in option - processing. Introduced in 10.42. + processing. Introduced in Netpbm 10.42. pamstereogram: fix tuple type in output file (and crash with -verbose) with -patfile . @@ -837,23 +853,23 @@ CHANGE HISTORY the background color (i.e. the color of added margins). pnmscale: finally make it just an alias of pamscale, which - obsoleted it in 10.20. + obsoleted it in Netpbm 10.20. pnmcut: finally make it just an alias of pamcut, which - obsoleted it in 9.20. + obsoleted it in Netpbm 9.20. tifftopnm: fix orientation problem on big-endian machines. - Introduced in 10.42. + Introduced in Netpbm 10.42. pnmcrop: various fixes. - g3topbm: fix array bound violation. Introduced in 10.32. + g3topbm: fix array bound violation. Introduced in Netpbm 10.32. pnmcat: fix array bound violation with PBM top/bottom - concatenation. Introduced in 10.44. + concatenation. Introduced in Netpbm 10.44. ilbmtoppm: Fix array bound violation with compressed ILBM. - Introduced in 10.18. + Introduced in Netpbm 10.18. fitstopnm: fix garbage output when input is little endian floating point FITS. @@ -864,7 +880,7 @@ CHANGE HISTORY picttoppm: Improve error/informational messages. picttoppm: Don't fail if 'fontdir' file doesn't exist. Bug - from 10.44. + from Netpbm 10.44. ppmtopict: Use two-byte length field when image width > 200 instead of > 250. Former is what Picttoppm has been assuming @@ -873,11 +889,11 @@ CHANGE HISTORY ilbmtoppm: fix bug: appends color map PPM to output if input has color map; fails if input doesn't have color map. Broken - in 10.18. + in Netpbm 10.18. leaftoppm: fix bug: uses red channel as all three channels; - (produces grayscale output). Broken between 10.19 and 10.26, - inclusive. + (produces grayscale output). Broken between Netpbm 10.19 and + 10.26, inclusive. pbmtomrf, mrftopbm: fix crashes, incorrect output in all cases. Broken forever. @@ -918,7 +934,7 @@ CHANGE HISTORY Build: Move LDFLAGS later so that a -L in LDFLAGS doesn't interfere with finding the built libnetpbm. (The common - link rule is already this way in 10.44.00; all the other + link rule is already this way in Netpbm 10.44.00; all the other link rules are now the same). Build: Rename Makefile.common, Makefile.config, to common.mk, @@ -964,13 +980,13 @@ CHANGE HISTORY pamtosvg: remove "needed exchange" debug trace. - Add pbmminkowski (source code has been in package since 10.12 - but not documented or built by default). + Add pbmminkowski (source code has been in package since Netpbm + 10.12 but not documented or built by default). pnmmontage: don't corrupt file names when they contain colons. - pamflip: fix bug: garbage output for PBMs, since 10.42. + pamflip: fix bug: garbage output for PBMs, since Netpbm 10.42. pngtopnm: fix gamma correction. @@ -1013,7 +1029,7 @@ CHANGE HISTORY pamtohtmltbl: fix output error: contains holes due to uninitialized memory. - xvminitoppm: fix. Totally broken since 10.34. + xvminitoppm: fix. Totally broken since Netpbm 10.34. pnmtopclxl: fix crash with Standard Input input. @@ -1029,7 +1045,7 @@ CHANGE HISTORY height, width. Add back ppmd_fill_init() for backward compatibility; - removed in 10.29. + removed in Netpbm 10.29. Build: make it work with Gcc 4.3 and -sse. diff --git a/doc/INSTALL b/doc/INSTALL index 474b61cf..f8397ca2 100644 --- a/doc/INSTALL +++ b/doc/INSTALL @@ -52,6 +52,29 @@ and it will attempt to build whatever it hasn't successfully built yet. +CHECKING THE BUILD +------------------ + +The package comes with a test facility, which you can run after packaging, +against the package you created. The typical sequence is + + make + + make package + + make check + + ./installnetpbm + +To capture all the messages from "make check" do: + + make check > test.log 2>&1 + +The test facility was new in Netpbm 10.61 (December 2012). + +For further information on the tests read the document TESTS. + + AUTOMATING THE BUILD -------------------- diff --git a/doc/TESTS b/doc/TESTS new file mode 100644 index 00000000..3196a8fb --- /dev/null +++ b/doc/TESTS @@ -0,0 +1,302 @@ +Contents +======== + +1. Running the tests + 1.1 Standard test procedure + 1.2 Summary report + 1.3 Prerequisites + 1.4 Repeatability + 1.5 Execution time + 1.6 Testing package in designated directory + 1.7 Post-install check + 1.8 Skipping test items + 1.9 Valgrind + +2. Troubleshooting + 2.1 Missing programs + 2.2 Broken programs + 2.3 Color name file + 2.4 Multiple versions + 2.5 System dependent issues + +3. Reporting test failures + +------------------------------------------------------------------------------ + +1. Running the tests +==================== + +1.1 Standard test procedure +=========================== + +The recommended method of running the tests is after packaging: + + make + make package + make check + +To capture the output do: + + make check 2>&1 | less + +Or: + + make check > check.log 2>&1 + + + +1.2 Summary report +================== + +Like most other test routines, these produce much output. A summary will +appear at the end: + + Test summary: + ================== + SUCCESS 83 + FAILURE 1 + TOTAL SUPPORTED 84 + ================== + All tests done. + Sat, 08 Jun 2013 09:30:33 +0000 + make: *** [check] Error 1 + + + +1.3 Prerequisites +================= + +The tests require the Bash command shell. The script Execute-Tests has some +expressions unique to bash. Quite old versions work, at least back to bash +v. 2.05b. + +The tests also use the following utilities: + + - awk + - cat + - cmp + - egrep + - head + - mktemp + - sed + - seq + - tee + + + +1.4 Repeatability +================= + +The current version of the test package produces identical results if you run +"make check" repeatedly. The tests contain no random elements; some +Netpbm programs use randomness internally, but the tests seed their random +number generators with fixed values so that they too have repeatable results. + + + +1.5 Execution time +================== + +Currently "make check" takes no more time to execute than "make package", +and much less than "make". + + + +1.6 Testing package in designated directory +=========================================== + +If you specify the package directory when you do "make package", +you must do the same with "make check": + + make + make package pkgdir=/tmp/package + make check pkgdir=/tmp/package + + + +1.7 Post-install check +====================== + +You can run the tests after installation as well as from the package +directory. Just set $PBM_TESTPREFIX to the bin directory. For example, if +the Netpbm executables are in /usr/local/bin/ do + + PBM_TESTPREFIX=/usr/local/bin make check + +If you want to test the executables in the default search path do + + PBM_TESTPREFIX="" make check + +If the color dictionary file rgb.txt is in a non-standard location, you must +set RGBDEF. If you don't, the tests will report several false positives. + + PBM_TESTPREFIX=/usr/local/bin RGBDEF=/etc/colors/rgb.txt make check + + + +1.8 Skipping test items +======================= + +The file test/Test-Order is a list of tests which are run. If you want to +skip any test, remove the line or comment it out with a "#". + + + +1.9 Valgrind +============ + +You can run the whole test under Valgrind. This is an advanced feature +intended for programmers who work on Netpbm code. + +To turn on Valgrind, uncomment this line in test/Execute: + +# export PBM_TESTPREFIX="valgrind --log-fd=4 "${PBM_TESTPREFIX} + + make check 4> valgrind.log + +Note that Valgrind output is directed to file descriptor 4. + +Valgrind version 3.5.0 or newer is recommended. Older versions do +not report the command that is being executed. + +You can add any options for Valgrind should by editing the above mentioned +line. To run "valgrind --track-origins=yes", you must make two changes in +config.mk: + + - Add -g to CFLAGS. + - Turn stripping off. + +Valgrind significantly increases execution time. You should consider paring +down the items in Test-Order. You probably don't need to run +"all-in-place.test", which has restrictions in the way errors are reported +when PBM_TESTPREFIX is not a simple directory path. Another test +"pamslice-roundtrip.test" is time-consuming, you may want to skip this one +too. + + + +2. Troubleshooting +================== + +2.1 Missing programs +==================== + +The first test run, "all-in-place.test" detects missing programs. + +If you work around a build glitch with "make --keep-going" you +will get a few errors here. + +A wholesale failure with "all-in-place.test" indicates a systemic +problem, such as a misconfigured dynamic library or a directory-wide +permission issue. This kind of failure is known to happen when N is +set too high with "make -jN" (overambitious parallel make.) + +The current test routines assume a typical build configuration - they are not +aware of the actual configuration you chose. If a choice you make during +configure causes "make" to skip compilation of certain programs, the test +routines won't know and will report failures. + +For details read 'Netpbm Library Prerequisites': +http://netpbm.sourceforge.net/prereq.html . + + + +2.2 Broken programs +=================== + +Broken programs will invariably lead to failures. Certain programs +(for instance, image generators pbmmake pgmmake) are used in numerous +test scripts. Problem in them will lead to multiple failures. + +To aid you in this situation each test routine lists the necessary programs +near the top. + +Each test routine comes in two parts, a ".test" file which is a +shell script and a ".ok" file which denotes its proper output. +When a test fails, a ".out" file will be produced in the +/tmp/netpbm-test/ directory. By comparing ".ok" and ".out" you +can tell exactly what went wrong. Often one does not need to +go this far; the error messages tell enough. + + + +2.3 Color dictionary file +========================= + +If you get the following error message, it indicates a problem with +the color dictionary file rgb.txt. + + ppmmake: can't open color names dictionary file from the path '/usr/share/ + netpbm/rgb.txt:/usr/lib/X11/rgb.txt:/usr/share/X11/rgb.txt:/usr/X11R6/lib/ + X11/rgb.txt' and Environment variable RGBDEF not set. Set RGBDEF to the + pathname of your rgb.txt file or don't use color names. + +This is highly unlikely to occur with "make check" right after packaging, +but may appear after installation. + +To check manually after installation, execute the following and see +whether the proper output or the error message appears: + + ppmmake red 1 1 -plain + +Proper output: + + P3 + 1 1 + 255 + 255 0 0 + +The simple remedy is properly setting the environment value RGBDEF to +the location of rgb.txt. + +If you want to hardcode the path, modify RGB_DB_PATH in pm_config.h +and run "make" again. Note that running "configure" will cause +pm_config.h to be overwritten; changes by editing will be lost. + + + +2.4 Multiple versions +===================== + +If multiple versions of Netpbm executables are installed on your +system, you should do a post-installation check to ensure that +the newly built version is in place and in working condition. + +The test routines can test binaries other than the intended +target, for example pre-compiled binaries distributed in .rpm +or .deb format. If PBM_TESTPREFIX is explicitly set to a directory +that contains programs from such a source, you should expect multiple +failures due to missing programs, missing features, etc. If +PBM_TEXTPREFIX is set to "" (null), the outcome will depend heavily +on what version has precedence in PATH. + +Netpbm distributed with Debian or Ubuntu is called "Netpbm-Free" and +is based on a fork which broke off in 2002. There are many differences. +Many tests will fail. However, the test framework itself is valid for +these distributions. + + + +2.5 System dependent issues +=========================== + +The tests have worked on x86 and x86_64 GNU/Linux systems, with several +versions of GCC and Clang. Reports from users of other systems including Mac +OS, Sun SPARC and BSD and compilers other than GCC are highly welcome. + +Floating point math precision seems to be an issue. Some discrepancies +have been observed between x86 32 bit and 64 bit; the tests are written to +work around them as much as possible. The use of the "--fast-math" +flag by default may also be a factor. + +The current test framework checks whether the random number generator +is the one from glibc and skips certain tests if a different one is +detected. + + +3. Reporting test failures +========================== + +When reporting problems with the tests, please give both +the output of "make check" and the contents of the "netpbm-test" +directory. diff --git a/doc/patent_summary b/doc/patent_summary index 271f227c..324fec0d 100644 --- a/doc/patent_summary +++ b/doc/patent_summary @@ -48,12 +48,27 @@ do their JPEG work via a JPEG library not distributed with Netpbm. Your JPEG-related liability for using Netpbm is limited to your liability for using your JPEG library. +Note that it is possible to use Ppmtompeg without involving JPEG and to +build it without the ability to involve JPEG. + The next best alternative to JPEG is probably PNG and maybe JBIG for bilevel (black and white) images. http://burnalljpegs.org contains information on this issue. +MPEG patents +------------ + +The original University of California distributeion of the Ppmtompeg code +conatins this statement in a README file: + + ... patents are held by several companies on various aspects of the MPEG + video standard. Companies or individuals who want to develop commercial + products that include this code must acquire licenses from these companies. + For information on licensing, see Appendix F in the standard. + + Expired LZW patents ------------------- |