diff --git a/.gitignore b/.gitignore index 1a934e7..34e7179 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /netpbm-10.61.02.tar.xz +/netpbm-10.66.02.tar.xz diff --git a/netpbm-compare-same-images.patch b/netpbm-compare-same-images.patch deleted file mode 100644 index c629c4c..0000000 --- a/netpbm-compare-same-images.patch +++ /dev/null @@ -1,23 +0,0 @@ -diff --git a/analyzer/pnmpsnr.c b/analyzer/pnmpsnr.c -index ce2708b..b04316c 100644 ---- a/analyzer/pnmpsnr.c -+++ b/analyzer/pnmpsnr.c -@@ -55,14 +55,14 @@ validateInput(struct pam const pam1, - "maxval of one of them.", - (unsigned int) pam1.maxval, (unsigned int) pam2.maxval); - -- if (streq(pam1.tuple_type, pam2.tuple_type)) -+ if (!streq(pam1.tuple_type, pam2.tuple_type)) - pm_error("images are not of the same type. The tuple types are " - "'%s' and '%s', respectively.", - pam1.tuple_type, pam2.tuple_type); - -- if (streq(pam1.tuple_type, PAM_PBM_TUPLETYPE) && -- streq(pam1.tuple_type, PAM_PGM_TUPLETYPE) && -- streq(pam1.tuple_type, PAM_PPM_TUPLETYPE)) -+ if (!streq(pam1.tuple_type, PAM_PBM_TUPLETYPE) && -+ !streq(pam1.tuple_type, PAM_PGM_TUPLETYPE) && -+ !streq(pam1.tuple_type, PAM_PPM_TUPLETYPE)) - pm_error("Images are not of a PNM type. Tuple type is '%s'", - pam1.tuple_type); - } diff --git a/netpbm-disable-pbmtog3.patch b/netpbm-disable-pbmtog3.patch new file mode 100644 index 0000000..7fb3ef6 --- /dev/null +++ b/netpbm-disable-pbmtog3.patch @@ -0,0 +1,13 @@ +diff --git a/test/Test-Order b/test/Test-Order +index ff4b985..7ef1d97 100644 +--- a/test/Test-Order ++++ b/test/Test-Order +@@ -74,7 +74,7 @@ symmetry.test + + # Format converter tests + +-pbmtog3.test ++#pbmtog3.test + 411toppm.test + eyuvtoppm.test + diff --git a/netpbm-man-repeated.patch b/netpbm-man-repeated.patch deleted file mode 100644 index 212bb19..0000000 --- a/netpbm-man-repeated.patch +++ /dev/null @@ -1,323 +0,0 @@ -diff --git a/userguide/cameratopam.html b/userguide/cameratopam.html -index 7a6391e..89f6939 100644 ---- a/userguide/cameratopam.html -+++ b/userguide/cameratopam.html -@@ -163,7 +163,7 @@ means. - href="http://www.cybercom.net/~dcoffin/dcraw/">dcraw by Dave - Coffin, by Bryan Henderson in April 2005. Bryan replaced the part - that generates the Netpbm output image and removed the Adobe Photoshop --output function. Bryan changed the command syntax and and made other -+output function. Bryan changed the command syntax and made other - small changes to make the program consistent with Netpbm. He also - split the source code into manageable pieces (dcraw has a - single 5000 line source file). -diff --git a/userguide/fiascotopnm.html b/userguide/fiascotopnm.html -index 2cd4f01..f1f1b17 100644 ---- a/userguide/fiascotopnm.html -+++ b/userguide/fiascotopnm.html -@@ -76,7 +76,7 @@ Set magnification of the decompressed image. Positive values enlarge - and negative values reduce the image width and height by a factor of - 2^|N|. - --
-s N, --smooth=N -+
-s N, --smoothing=N -
- Smooth decompressed image(s) along the partitioning borders by the - given amount N. N is 1 (minimum) to 100 (maximum); default -@@ -88,6 +88,10 @@ FIASCO file is used (defined by the FIASCO coder). - Set number of frames per second to N. When using this option, - the frame rate specified in the FIASCO file is overridden. - -+
--verbose=N -+
-+Set verbose of fiascotopnm to N. -+ -
-v, --version -
- Print fiascotopnm version number, then exit. -diff --git a/userguide/pamdepth.html b/userguide/pamdepth.html -index 1a2b5fd..c188e44 100644 ---- a/userguide/pamdepth.html -+++ b/userguide/pamdepth.html -@@ -52,7 +52,7 @@ files before April 2000. - pnmdepth, by Jef Poskanzer. pamdepth is backward compatible - with pnmdepth and adds the ability to process arbitrary PAM images - and the ability to process multi-image input streams. pnmdepth --handled only PNM images and ignored all but the the first in any stream. -+handled only PNM images and ignored all but the first in any stream. - -
-

Table Of Contents

-diff --git a/userguide/pamdice.html b/userguide/pamdice.html -index 0659e15..9053113 100644 ---- a/userguide/pamdice.html -+++ b/userguide/pamdice.html -@@ -139,7 +139,7 @@ in each direction. - pgmslice, - ppmglobe - pnm --pnm -+pam - -
-

Table Of Contents

-diff --git a/userguide/pamstereogram.html b/userguide/pamstereogram.html -index c337547..652b887 100644 ---- a/userguide/pamstereogram.html -+++ b/userguide/pamstereogram.html -@@ -319,7 +319,7 @@ be. Lower (darker) numbers mean further from the eye. - -

Input Images

- --

pamstereogram pays no attention the the image's tuple -+

pamstereogram pays no attention the image's tuple - type and ignores all planes other than plane 0.

- -

Like any Netpbm program, pamstereogram will accept PNM -diff --git a/userguide/pamtofits.html b/userguide/pamtofits.html -index 445b326..0ecc806 100644 ---- a/userguide/pamtofits.html -+++ b/userguide/pamtofits.html -@@ -54,7 +54,7 @@ approximation. -

Pixel Order

- -

The FITS specification does not specify which data in the file corresponds --to which pixel in the image (i.e. which bytes are the the top left pixel, -+to which pixel in the image (i.e. which bytes are the top left pixel, - etc.). Netpbm uses the common sense, most popular arrangement: row major, top - to bottom, left to right. That means in a 10 wide by 20 high image, the first - 10 pixels in the file are the top row and the last 10 are the bottom row. -diff --git a/userguide/pamtojpeg2k.html b/userguide/pamtojpeg2k.html -index 06b6113..046d740 100644 ---- a/userguide/pamtojpeg2k.html -+++ b/userguide/pamtojpeg2k.html -@@ -181,7 +181,7 @@ its goal is similar to JPEG. It has two main differences from JPEG. -

One difference is that it does a much better job on most images of - throwing out information in order to achieve a smaller output. That - means when you reconstruct the image from the resulting compressed --file, it looks a lot closer to the image you started with with -+file, it looks a lot closer to the image you started with - JPEG-2000 than with JPEG, for the same compressed file size. Or, looked - at another way, with JPEG-2000 you get a much smaller file than with - JPEG for the same image quality. -diff --git a/userguide/pamtotiff.html b/userguide/pamtotiff.html -index f07d227..c7a48a0 100644 ---- a/userguide/pamtotiff.html -+++ b/userguide/pamtotiff.html -@@ -124,7 +124,7 @@ format it produces are therefore controlled by that library. -

By default, pamtotiff creates a TIFF file with no - compression. This is your best bet most of the time. If you want to - try another compression scheme or tweak some of the other even more --obscure output options, there are a number of options which which to -+obscure output options, there are a number of options which to - play. - -

Before Netpbm 8.4 (April 2000), the default was to use LZW compression. -diff --git a/userguide/pamtouil.html b/userguide/pamtouil.html -index 1074119..6c2356b 100644 ---- a/userguide/pamtouil.html -+++ b/userguide/pamtouil.html -@@ -57,7 +57,7 @@ in the RGB database. -   -

SEE ALSO

- --pam -+pamstack - pam - ppm - -diff --git a/userguide/pamundice.html b/userguide/pamundice.html -index 2b789b4..bf366d6 100644 ---- a/userguide/pamundice.html -+++ b/userguide/pamundice.html -@@ -208,7 +208,7 @@ clips the bottom edge of each image before joining it to the one below. - pnmindex, - pnmtile, - pnm --pnm -+pam - -
-

Table Of Contents

-diff --git a/userguide/pbm.html b/userguide/pbm.html -index 63dfa40..7db4886 100644 ---- a/userguide/pbm.html -+++ b/userguide/pbm.html -@@ -136,7 +136,7 @@ P1 - accepting anything that looks remotely like a bitmap. - -

All characters referred to herein are encoded in ASCII. --"newline" refers the the character known in ASCII as Line -+"newline" refers the character known in ASCII as Line - Feed or LF. A "white space" character is space, CR, LF, - TAB, VT, or FF (I.e. what the ANSI standard C isspace() function - calls white space). -diff --git a/userguide/pbmtolj.html b/userguide/pbmtolj.html -index ce7e9bb..6da4555 100644 ---- a/userguide/pbmtolj.html -+++ b/userguide/pbmtolj.html -@@ -83,7 +83,7 @@ and end of the output file. - -

-copies - --
Specifies the the number of copies. The default is 1. This option -+
Specifies the number of copies. The default is 1. This option - controls the "number of copies" printer control; - pbmtolj generates only one copy of the image. - -diff --git a/userguide/pgm.html b/userguide/pgm.html -index d75c9ef..7df1abc 100644 ---- a/userguide/pgm.html -+++ b/userguide/pgm.html -@@ -153,7 +153,7 @@ P2 - accepting anything that looks remotely like a PGM. - -

All characters referred to herein are encoded in ASCII. --"newline" refers the the character known in ASCII as Line -+"newline" refers the character known in ASCII as Line - Feed or LF. A "white space" character is space, CR, LF, - TAB, VT, or FF (I.e. what the ANSI standard C isspace() function - calls white space). -diff --git a/userguide/pngtopam.html b/userguide/pngtopam.html -index 8185843..09406ef 100644 ---- a/userguide/pngtopam.html -+++ b/userguide/pngtopam.html -@@ -269,7 +269,7 @@ change to the package in Netpbm's renaissance. It and pnmtopng - were simply copied from the - pnmtopng package by Greg Roelofs. Those were based on --simpler reference applications by by Alexander Lehmann -+simpler reference applications by Alexander Lehmann - <alex@hal.rhein-main.de> and Willem van Schaik - <willem@schaik.com> and distributed with their PNG library. - -diff --git a/userguide/pnmnorm.html b/userguide/pnmnorm.html -index c4d2558..5d3ca49 100644 ---- a/userguide/pnmnorm.html -+++ b/userguide/pnmnorm.html -@@ -146,7 +146,7 @@ value 99 or the white value 101. - option. Sometimes, too much contrast is a bad thing. If your - intensities are all concentrated in the middle, -bpercent=2 and - -wpercent=1 might mean that an intensity of 60 gets stretched --up to 100 and and intensity of 20 gets stretched down to zero, for a -+up to 100 and intensity of 20 gets stretched down to zero, for a - range expansion of 150% (from a range of 40 to a range of 100). That - much stretching means two adjacent pixels that used to differ in - intensity by 4 units now differ by 10, and that might be unsightly. -diff --git a/userguide/pnmtopalm.html b/userguide/pnmtopalm.html -index 94aa6ff..9ca9c0d 100644 ---- a/userguide/pnmtopalm.html -+++ b/userguide/pnmtopalm.html -@@ -164,7 +164,7 @@ the -colormap option, for much the same reason. - -

-withdummy -
--This option tells pnmtopalm to put in the stream, after after -+This option tells pnmtopalm to put in the stream, after - the image, a dummy image header to introduce subsequent high density - images. - -diff --git a/userguide/ppm.html b/userguide/ppm.html -index c71aaa4..8e7a111 100644 ---- a/userguide/ppm.html -+++ b/userguide/ppm.html -@@ -158,7 +158,7 @@ P3 - accepting anything that looks remotely like a PPM image. - -

All characters referred to herein are encoded in ASCII. --"newline" refers the the character known in ASCII as Line -+"newline" refers the character known in ASCII as Line - Feed or LF. A "white space" character is space, CR, LF, - TAB, VT, or FF (I.e. what the ANSI standard C isspace() function - calls white space). -diff --git a/userguide/ppmtompeg.html b/userguide/ppmtompeg.html -index 4fa4a53..99efed9 100644 ---- a/userguide/ppmtompeg.html -+++ b/userguide/ppmtompeg.html -@@ -1023,7 +1023,7 @@ without respect to any other frame in the movie. A P frame - ("predictive" frame) describes a movie frame by describing how it - differs from the movie frame described by the latest preceding I or - P frame. A B frame ("bidirectional" frame) describes a movie frame by --describing how it differs from the the movie frames described by the -+describing how it differs from the movie frames described by the - nearest I or P frame before and after it. - -

Note that the first frame of a movie must be described by an I -diff --git a/userguide/ppmtopj.html b/userguide/ppmtopj.html -index c07c1d9..b50be28 100644 ---- a/userguide/ppmtopj.html -+++ b/userguide/ppmtopj.html -@@ -61,7 +61,7 @@ You could convert your input to this format like this: - pnmremap -map 8color.pam testimg.pam | ppmtopj - - --Or you could use use -+Or you could use -

-     ppmdither -red 2 -green 2 -blue 2
- 
-diff --git a/userguide/qrttoppm.html b/userguide/qrttoppm.html -index b6bf976..112bf50 100644 ---- a/userguide/qrttoppm.html -+++ b/userguide/qrttoppm.html -@@ -22,7 +22,7 @@ qrttoppm - convert output from the QRT ray tracer to a PPM image - -

This program is part of Netpbm. - --

qrttoppm reads a QRT file as input and and produces a PPM -+

qrttoppm reads a QRT file as input and produces a PPM - image as output. - -   -diff --git a/userguide/sbigtopgm.html b/userguide/sbigtopgm.html -index 400bcaf..78f9454 100644 ---- a/userguide/sbigtopgm.html -+++ b/userguide/sbigtopgm.html -@@ -22,7 +22,7 @@ sbigtopgm - convert an SBIG CCDOPS file to PGM - -

This program is part of Netpbm. - --

sbigtopgm reads an an image file in the native format used -+

sbigtopgm reads an image file in the native format used - by the Santa Barbara Instrument Group (SBIG) astronomical CCD cameras, - and produces a PGM image as output. Additional information on SBIG - cameras and documentation of the file format is available at the Web -diff --git a/userguide/srftopam.html b/userguide/srftopam.html -index b27f133..c98586f 100644 ---- a/userguide/srftopam.html -+++ b/userguide/srftopam.html -@@ -30,7 +30,7 @@ - -

This program is part of Netpbm.

- --

srftopam reads a a SRF image file as input and produces a -+

srftopam reads a SRF image file as input and produces a - multi-image stream of PAM images as output. - -

This program performs the inverse of the conversion that pamtosrf -diff --git a/userguide/sunicontopnm.html b/userguide/sunicontopnm.html -index 6ccbcde..0290f7b 100644 ---- a/userguide/sunicontopnm.html -+++ b/userguide/sunicontopnm.html -@@ -54,7 +54,7 @@ mostly XPM files. - xbmtoppm, - infotopam, - pbm --pbm -+pgm - -

HISTORY

- -diff --git a/userguide/xpmtoppm.html b/userguide/xpmtoppm.html -index c7c857b..f96b249 100644 ---- a/userguide/xpmtoppm.html -+++ b/userguide/xpmtoppm.html -@@ -46,7 +46,7 @@ alpha output to Standard Output and discards the image. - the alpha output file. - -

xpmtoppm can't handle a line longer than 8K characters in --the the XPM input. If an input line exceeds this limit, -+the XPM input. If an input line exceeds this limit, - xpmtoppm quits with an error message to that effect. Before - Netpbm 10.30 (October 2005), the limit was 2K. - diff --git a/netpbm-manual-pages.patch b/netpbm-manual-pages.patch deleted file mode 100644 index 79f0992..0000000 --- a/netpbm-manual-pages.patch +++ /dev/null @@ -1,1646 +0,0 @@ -diff --git a/userguide/cameratopam.html b/userguide/cameratopam.html -index 7a6391e..89f6939 100644 ---- a/userguide/cameratopam.html -+++ b/userguide/cameratopam.html -@@ -163,7 +163,7 @@ means. - href="http://www.cybercom.net/~dcoffin/dcraw/">dcraw by Dave - Coffin, by Bryan Henderson in April 2005. Bryan replaced the part - that generates the Netpbm output image and removed the Adobe Photoshop --output function. Bryan changed the command syntax and and made other -+output function. Bryan changed the command syntax and made other - small changes to make the program consistent with Netpbm. He also - split the source code into manageable pieces (dcraw has a - single 5000 line source file). -diff --git a/userguide/fiascotopnm.html b/userguide/fiascotopnm.html -index 2cd4f01..f1f1b17 100644 ---- a/userguide/fiascotopnm.html -+++ b/userguide/fiascotopnm.html -@@ -76,7 +76,7 @@ Set magnification of the decompressed image. Positive values enlarge - and negative values reduce the image width and height by a factor of - 2^|N|. - --

-s N, --smooth=N -+
-s N, --smoothing=N -
- Smooth decompressed image(s) along the partitioning borders by the - given amount N. N is 1 (minimum) to 100 (maximum); default -@@ -88,6 +88,10 @@ FIASCO file is used (defined by the FIASCO coder). - Set number of frames per second to N. When using this option, - the frame rate specified in the FIASCO file is overridden. - -+
--verbose=N -+
-+Set verbose of fiascotopnm to N. -+ -
-v, --version -
- Print fiascotopnm version number, then exit. -diff --git a/userguide/pamdepth.html b/userguide/pamdepth.html -index 1a2b5fd..c188e44 100644 ---- a/userguide/pamdepth.html -+++ b/userguide/pamdepth.html -@@ -52,7 +52,7 @@ files before April 2000. - pnmdepth, by Jef Poskanzer. pamdepth is backward compatible - with pnmdepth and adds the ability to process arbitrary PAM images - and the ability to process multi-image input streams. pnmdepth --handled only PNM images and ignored all but the the first in any stream. -+handled only PNM images and ignored all but the first in any stream. - -
-

Table Of Contents

-diff --git a/userguide/pamdice.html b/userguide/pamdice.html -index 0659e15..9053113 100644 ---- a/userguide/pamdice.html -+++ b/userguide/pamdice.html -@@ -139,7 +139,7 @@ in each direction. - pgmslice, - ppmglobe - pnm --pnm -+pam - -
-

Table Of Contents

-diff --git a/userguide/pamstereogram.html b/userguide/pamstereogram.html -index c337547..652b887 100644 ---- a/userguide/pamstereogram.html -+++ b/userguide/pamstereogram.html -@@ -319,7 +319,7 @@ be. Lower (darker) numbers mean further from the eye. - -

Input Images

- --

pamstereogram pays no attention the the image's tuple -+

pamstereogram pays no attention the image's tuple - type and ignores all planes other than plane 0.

- -

Like any Netpbm program, pamstereogram will accept PNM -diff --git a/userguide/pamtofits.html b/userguide/pamtofits.html -index 445b326..0ecc806 100644 ---- a/userguide/pamtofits.html -+++ b/userguide/pamtofits.html -@@ -54,7 +54,7 @@ approximation. -

Pixel Order

- -

The FITS specification does not specify which data in the file corresponds --to which pixel in the image (i.e. which bytes are the the top left pixel, -+to which pixel in the image (i.e. which bytes are the top left pixel, - etc.). Netpbm uses the common sense, most popular arrangement: row major, top - to bottom, left to right. That means in a 10 wide by 20 high image, the first - 10 pixels in the file are the top row and the last 10 are the bottom row. -diff --git a/userguide/pamtojpeg2k.html b/userguide/pamtojpeg2k.html -index 06b6113..046d740 100644 ---- a/userguide/pamtojpeg2k.html -+++ b/userguide/pamtojpeg2k.html -@@ -181,7 +181,7 @@ its goal is similar to JPEG. It has two main differences from JPEG. -

One difference is that it does a much better job on most images of - throwing out information in order to achieve a smaller output. That - means when you reconstruct the image from the resulting compressed --file, it looks a lot closer to the image you started with with -+file, it looks a lot closer to the image you started with - JPEG-2000 than with JPEG, for the same compressed file size. Or, looked - at another way, with JPEG-2000 you get a much smaller file than with - JPEG for the same image quality. -diff --git a/userguide/pamtotiff.html b/userguide/pamtotiff.html -index f07d227..c7a48a0 100644 ---- a/userguide/pamtotiff.html -+++ b/userguide/pamtotiff.html -@@ -124,7 +124,7 @@ format it produces are therefore controlled by that library. -

By default, pamtotiff creates a TIFF file with no - compression. This is your best bet most of the time. If you want to - try another compression scheme or tweak some of the other even more --obscure output options, there are a number of options which which to -+obscure output options, there are a number of options which to - play. - -

Before Netpbm 8.4 (April 2000), the default was to use LZW compression. -diff --git a/userguide/pamtouil.html b/userguide/pamtouil.html -index 1074119..6c2356b 100644 ---- a/userguide/pamtouil.html -+++ b/userguide/pamtouil.html -@@ -57,7 +57,7 @@ in the RGB database. -   -

SEE ALSO

- --pam -+pamstack - pam - ppm - -diff --git a/userguide/pamundice.html b/userguide/pamundice.html -index 2b789b4..bf366d6 100644 ---- a/userguide/pamundice.html -+++ b/userguide/pamundice.html -@@ -208,7 +208,7 @@ clips the bottom edge of each image before joining it to the one below. - pnmindex, - pnmtile, - pnm --pnm -+pam - -
-

Table Of Contents

-diff --git a/userguide/pbm.html b/userguide/pbm.html -index 63dfa40..7db4886 100644 ---- a/userguide/pbm.html -+++ b/userguide/pbm.html -@@ -136,7 +136,7 @@ P1 - accepting anything that looks remotely like a bitmap. - -

All characters referred to herein are encoded in ASCII. --"newline" refers the the character known in ASCII as Line -+"newline" refers the character known in ASCII as Line - Feed or LF. A "white space" character is space, CR, LF, - TAB, VT, or FF (I.e. what the ANSI standard C isspace() function - calls white space). -diff --git a/userguide/pbmtolj.html b/userguide/pbmtolj.html -index ce7e9bb..6da4555 100644 ---- a/userguide/pbmtolj.html -+++ b/userguide/pbmtolj.html -@@ -83,7 +83,7 @@ and end of the output file. - -

-copies - --
Specifies the the number of copies. The default is 1. This option -+
Specifies the number of copies. The default is 1. This option - controls the "number of copies" printer control; - pbmtolj generates only one copy of the image. - -diff --git a/userguide/pgm.html b/userguide/pgm.html -index d75c9ef..7df1abc 100644 ---- a/userguide/pgm.html -+++ b/userguide/pgm.html -@@ -153,7 +153,7 @@ P2 - accepting anything that looks remotely like a PGM. - -

All characters referred to herein are encoded in ASCII. --"newline" refers the the character known in ASCII as Line -+"newline" refers the character known in ASCII as Line - Feed or LF. A "white space" character is space, CR, LF, - TAB, VT, or FF (I.e. what the ANSI standard C isspace() function - calls white space). -diff --git a/userguide/pngtopam.html b/userguide/pngtopam.html -index 8185843..09406ef 100644 ---- a/userguide/pngtopam.html -+++ b/userguide/pngtopam.html -@@ -269,7 +269,7 @@ change to the package in Netpbm's renaissance. It and pnmtopng - were simply copied from the - pnmtopng package by Greg Roelofs. Those were based on --simpler reference applications by by Alexander Lehmann -+simpler reference applications by Alexander Lehmann - <alex@hal.rhein-main.de> and Willem van Schaik - <willem@schaik.com> and distributed with their PNG library. - -diff --git a/userguide/pnmnorm.html b/userguide/pnmnorm.html -index c4d2558..5d3ca49 100644 ---- a/userguide/pnmnorm.html -+++ b/userguide/pnmnorm.html -@@ -146,7 +146,7 @@ value 99 or the white value 101. - option. Sometimes, too much contrast is a bad thing. If your - intensities are all concentrated in the middle, -bpercent=2 and - -wpercent=1 might mean that an intensity of 60 gets stretched --up to 100 and and intensity of 20 gets stretched down to zero, for a -+up to 100 and intensity of 20 gets stretched down to zero, for a - range expansion of 150% (from a range of 40 to a range of 100). That - much stretching means two adjacent pixels that used to differ in - intensity by 4 units now differ by 10, and that might be unsightly. -diff --git a/userguide/pnmtopalm.html b/userguide/pnmtopalm.html -index 94aa6ff..9ca9c0d 100644 ---- a/userguide/pnmtopalm.html -+++ b/userguide/pnmtopalm.html -@@ -164,7 +164,7 @@ the -colormap option, for much the same reason. - -

-withdummy -
--This option tells pnmtopalm to put in the stream, after after -+This option tells pnmtopalm to put in the stream, after - the image, a dummy image header to introduce subsequent high density - images. - -diff --git a/userguide/ppm.html b/userguide/ppm.html -index c71aaa4..8e7a111 100644 ---- a/userguide/ppm.html -+++ b/userguide/ppm.html -@@ -158,7 +158,7 @@ P3 - accepting anything that looks remotely like a PPM image. - -

All characters referred to herein are encoded in ASCII. --"newline" refers the the character known in ASCII as Line -+"newline" refers the character known in ASCII as Line - Feed or LF. A "white space" character is space, CR, LF, - TAB, VT, or FF (I.e. what the ANSI standard C isspace() function - calls white space). -diff --git a/userguide/ppmtopj.html b/userguide/ppmtopj.html -index c07c1d9..b50be28 100644 ---- a/userguide/ppmtopj.html -+++ b/userguide/ppmtopj.html -@@ -61,7 +61,7 @@ You could convert your input to this format like this: - pnmremap -map 8color.pam testimg.pam | ppmtopj - - --Or you could use use -+Or you could use -

-     ppmdither -red 2 -green 2 -blue 2
- 
-diff --git a/userguide/qrttoppm.html b/userguide/qrttoppm.html -index b6bf976..112bf50 100644 ---- a/userguide/qrttoppm.html -+++ b/userguide/qrttoppm.html -@@ -22,7 +22,7 @@ qrttoppm - convert output from the QRT ray tracer to a PPM image - -

This program is part of Netpbm. - --

qrttoppm reads a QRT file as input and and produces a PPM -+

qrttoppm reads a QRT file as input and produces a PPM - image as output. - -   -diff --git a/userguide/sbigtopgm.html b/userguide/sbigtopgm.html -index 400bcaf..78f9454 100644 ---- a/userguide/sbigtopgm.html -+++ b/userguide/sbigtopgm.html -@@ -22,7 +22,7 @@ sbigtopgm - convert an SBIG CCDOPS file to PGM - -

This program is part of Netpbm. - --

sbigtopgm reads an an image file in the native format used -+

sbigtopgm reads an image file in the native format used - by the Santa Barbara Instrument Group (SBIG) astronomical CCD cameras, - and produces a PGM image as output. Additional information on SBIG - cameras and documentation of the file format is available at the Web -diff --git a/userguide/srftopam.html b/userguide/srftopam.html -index b27f133..c98586f 100644 ---- a/userguide/srftopam.html -+++ b/userguide/srftopam.html -@@ -30,7 +30,7 @@ - -

This program is part of Netpbm.

- --

srftopam reads a a SRF image file as input and produces a -+

srftopam reads a SRF image file as input and produces a - multi-image stream of PAM images as output. - -

This program performs the inverse of the conversion that pamtosrf -diff --git a/userguide/sunicontopnm.html b/userguide/sunicontopnm.html -index 6ccbcde..0290f7b 100644 ---- a/userguide/sunicontopnm.html -+++ b/userguide/sunicontopnm.html -@@ -54,7 +54,7 @@ mostly XPM files. - xbmtoppm, - infotopam, - pbm --pbm -+pgm - -

HISTORY

- -diff --git a/userguide/xpmtoppm.html b/userguide/xpmtoppm.html -index c7c857b..f96b249 100644 ---- a/userguide/xpmtoppm.html -+++ b/userguide/xpmtoppm.html -@@ -46,7 +46,7 @@ alpha output to Standard Output and discards the image. - the alpha output file. - -

xpmtoppm can't handle a line longer than 8K characters in --the the XPM input. If an input line exceeds this limit, -+the XPM input. If an input line exceeds this limit, - xpmtoppm quits with an error message to that effect. Before - Netpbm 10.30 (October 2005), the limit was 2K. - -diff --git a/userguide/infotopam.html b/userguide/infotopam.html -index 9818c59..177f4d4 100644 ---- a/userguide/infotopam.html -+++ b/userguide/infotopam.html -@@ -110,7 +110,7 @@ using the -forcecolor option.

-

To override the colors, first specify how many colors to override using - -numcolors, then specify an (index color) pair for each color - you want to override, where index is a value from 0 to 3 and -- color the the new color for that index. Specify color as -+ color the new color for that index. Specify color as - described for the ppm_parsecolor() - argument.

- -diff --git a/userguide/pbmtoppa.html b/userguide/pbmtoppa.html -index f2ccf11..e0abe05 100644 ---- a/userguide/pbmtoppa.html -+++ b/userguide/pbmtoppa.html -@@ -254,7 +254,7 @@ StartEntry: DeskJet720C -   About: { \ -         This driver supports the HP DeskJet 720C \ -         inkjet printer. \ --        It does does not support color printing. \ -+        It does not support color printing. \ -         IMPORTANT! Insert \ -              "- | pbm2ppa -" \ -         in the "Extra GS Options" field.\ -diff --git a/userguide/pnmgamma.html b/userguide/pnmgamma.html -index 574d7d9..4c884f5 100644 ---- a/userguide/pnmgamma.html -+++ b/userguide/pnmgamma.html -@@ -242,7 +242,7 @@ the output is the same as that of the input. - -

Because the transformation is not linear, you need a greater maxval - in the output in order not to lose any information from the input. --For example, if you convert to radiance-linear sample values with with -+For example, if you convert to radiance-linear sample values with - -ungamma -bt709ramp and default gamma value, and your maxval is - 255 on both input and output, 3 different input sample values all - generate output sample value 254. In order to have a different output -diff --git a/userguide/ppmtompeg.html b/userguide/ppmtompeg.html -deleted file mode 100644 -index 4fa4a53..0000000 ---- a/userguide/ppmtompeg.html -+++ /dev/null -@@ -1,1291 +0,0 @@ -- -- -- --Ppmtompeg User Manual -- -- --

Ppmtompeg

--Updated: 23 July 2006 --
--Table Of Contents -- --

NAME

--ppmtompeg - encode an MPEG-1 bitstream -- --

SYNOPSIS

-- --ppmtompeg --[options] --parameter-file -- --

DESCRIPTION

-- --

This program is part of Netpbm. -- --

ppmtompeg produces an MPEG-1 video stream. MPEG-1 is the --first great video compression method, and is what is used in Video CDs --(VCD). ppmtompeg originated in the year 1995. DVD uses a more --advanced method, MPEG-2. There is an even newer method called MPEG-4 --which is also called Divx. I don't know where one finds that used. -- --

There's technically a difference between a compression method for --video and an actual file (stream) format for a movie, and I don't know --if it can be validly said that the format of the stream --ppmtompeg produces is MPEG-1. -- --

Mencoder from the Mplayer --package is probably superior for most video format generation --needs, if for no other reason than that it is more popular. -- --

The programming library PM2V --generates MPEG-2 streams. -- --

Use Mplayer (not part of Netpbm) --to do the reverse conversion: to create a series of PNM files from an MPEG --stream. -- --

param_file is a parameter file which includes a list of --input files and other parameters. The file is described in detail --below. -- --

To understand this program, you need to understand something about --the complex MPEG-1 format. One source of information about this --standard format is the section Introduction to MPEG in the Compression FAQ. -- --

OPTIONS

-- --

The -gop, -combine_gops, -frames, and ---combine_frames options are all mutually exclusive. -- --

--
-stat stat_file -- --
This option causes ppmtompeg to append the statistics that --it write to Standard Output to the file stat_file as well. The --statistics use the following abbreviations: bits per block (bpb), bits --per frame (bpf), seconds per frame (spf), and bits per second (bps). -- --

These statistics include how many I, P, and B frames there were, --and information about compression and quality. -- -- --

-quiet num_seconds -- --
causes ppmtompeg not to report remaining time more often --than every num_seconds seconds (unless the time estimate rises, --which will happen near the beginning of the run). A negative value --tells ppmtompeg not to report at all. 0 is the default --(reports once after each frame). Note that the time remaining is an --estimate and does not take into account time to read in frames. -- --
-realquiet
causes ppmtompeg to run silently, --with the only screen output being errors. Particularly useful when --reading input from stdin. -- --
---no_frame_summary -- --
This option prevents ppmtompeg from printing a summary --line for each frame -- --
-float_dct -- --
forces ppmtompeg to use a more accurate, yet more --computationally expensive version of the DCT. -- --
-gop gop_num --
--causes ppmtompeg to encode only the numbered GOP (first GOP is 0). The --parameter file is the same as for normal usage. The output file will be --the normal output file with the suffix .gop.gop_num. --ppmtompeg does not output any sequence information. -- --
-combine_gops -- --
causes ppmtompeg simply to combine some GOP files into a --single MPEG output stream. ppmtompeg inserts a sequence header --and trailer. In this case, the parameter file needs only to contain --the SIZE value, an output file, and perhaps a list of input GOP --files (see below). -- --If you don't supply a list of input GOP files is used, then --ppmtompeg assumes you're using the same parameter file you used --when you created the input (with the -gop option) and --calculates the corresponding gop filenames itself. If this is not the --case, you can specify input GOP files in the same manner as normal --input files -- except instead of using INPUT_DIR, INPUT, and --END_INPUT, use GOP_INPUT_DIR, GOP_INPUT, and GOP_END_INPUT. If no --input GOP files are specified, then the default is to use the output --file name with suffix .gop.gop_num, with gop_num --starting from 0, as the input files. -- --

Thus, unless you're mixing and matching GOP files from different --sources, you can simply use the same parameter file for creating the --GOP files (-gop) and for later turning them into an MPEG stream --(-combine_gops). -- -- --

-frames first_frame last_frame -- --
This option causes ppmtompeg to encode only the frames numbered --first_frame to last_frame, inclusive. The parameter --file is the same as for normal usage. The output will be placed in --separate files, one per frame, with the file names being the normal --output file name with the suffix .frame.frame_num. No --GOP header information is output. (Thus, the parameter file need not --include the GOP_SIZE value) -- --

Use ppmtompeg -combine_frames to combine these frames later into --an MPEG stream. -- -- --

-combine_frames -- --
This option causes ppmtompeg simply to combine some --individual MPEG frames (such as you might have created with an earlier --run of ppmtompeg -frames) into a single MPEG stream. Sequence --and GOP headers are inserted appropriately. In this case, the --parameter file needs to contain only the SIZE value, the GOP_SIZE --value, an output file, and perhaps a list of frame files (see below). -- --

The parameter file may specify input frame files in the same manner --as normal input files -- except instead of using INPUT_DIR, INPUT, and --END_INPUT, use FRAME_INPUT_DIR, FRAME_INPUT, and FRAME_END_INPUT. If --no input frame files are specified, then the default is to use the --output file name with suffix .frame.frame_num, with --frame_num starting from 0, as the input files. -- -- -- --

-nice -- --
This option causes ppmtompeg to run any remote processes --"nicely," i.e. at low priority. (This is relevant only if you are --running ppmtompeg in parallel mode. Otherwise, there are no --remote processes). See 'man nice.' -- --
-max_machines num_machines -- --
This option causes ppmtompeg to use no more than --num_machines machines as slaves for use in parallel encoding. -- --
-snr -- --
This option causes ppmtompeg to include the signal-to-noise --ratio in the reported statistics. Prints SNR (Y U V) and peak SNR (Y --U V) for each frame. In summary, prints averages of luminance only --(Y). SNR is defined as 10*log(variance of original/variance of --error). Peak SNR is defined as 20*log(255/RMSE). Note that --ppmtompeg runs a little slower when you use this option. -- --
-mse -- --
This option causes ppmtompeg to report the mean squared --error per block. It also automatically reports the quality of the --images, so there is no need to specify -snr then. -- --
-bit_rate_info rate_file -- --
This option makes ppmtompeg write bit rate information --into the file rate_file. Bit rate information is bits per frame, and --also bits per I-frame-to-I-frame. -- --
-mv_histogram -- --
This option causes ppmtompeg to print a histogram of the --motion vectors as part of statistics. There are three histograms -- --one for P frame, one for forward B frame, and one for backward B frame --motion vectors. -- --

The output is in the form of a matrix, each entry corresponding to one --motion vector in the search window. The center of the matrix --represents (0,0) motion vectors. -- --

-debug_sockets -- --
This option causes ppmtompeg to print to Standard Output --messages that narrate the communication between the machines when you run --ppmtompeg in parallel mode. -- --
-debug_machines -- --
This option causes ppmtompeg to print to Standard Output --messages that narrate the progress of the conversion on the various --machines when you run ppmtompeg in parallel --mode. -- --
-- --

PARAMETER FILE

-- --

The parameter file must contain the following --lines (except when using the -combine_gops or -combine_frames --options): -- --

-- --
PATTERN pattern -- --
This statement specifies the pattern (sequence) of I frames, P frames, --and B frames. pattern is just a sequence of the letters I, P, and --B with nothing between. Example: -- --
--    PATTERN IBBPBBPBBPBBPBB
--
-- --

See I Frames, P Frames, B Frames. -- --

OUTPUT output file --
This names the file where the output MPEG stream goes. -- --
INPUT_DIR directory -- --
This statement tells where the input images (frames) come from. --If each frame is in a separate file, directory is the directory --where they all are. You may use . to refer to the current --directory. A null directory refers to the root directory of the --system file tree. -- --

To have ppmtompeg read all the frames serially from Standard --Input, specify --

--    INPUT_DIR stdin
--
-- --
INPUT --
--This line must be followed by a list of the input files (in display order) --and then the line END_INPUT. -- --

There are three types of lines between INPUT and END_INPUT. First, --a line may simply be the name of an input file. Second, the line --may be of the form single_star_expr --[x-y]. --single_star_expr can have a single * in it. It is --replaced by all the numbers between x and y inclusive. So, for --example, the line tennis*.ppm [12-15] refers to the files --tennis12.ppm, tennis13.ppm, tennis14.ppm, tennis15.ppm. -- --

Uniform zero-padding occurs, as well. For example, the line --football.*.ppm [001-130] refers to the files football.001.ppm, --football.002.ppm, ..., football.009.ppm, football.010.ppm, ..., --football.130.ppm. -- --

The third type of line is: single_star_expr --[x-y+s], where the --line is treated exactly as above, except that we skip by s. Thus, the --line football.*.ppm [001-130+4] refers to the files --football.001.ppm, football.005.ppm, football.009.ppm, --football.013.ppm, etc. -- --

Furthermore, a line may specify a shell command to execute to --generate lines to be interpreted as described above, as if those lines --were in the parameter file instead. Use back ticks, like in the --Bourne Shell, like this: -- --

--    `cat myfilelist`
--
-- --

--If input is from Standard Input (per the INPUT_DIR statement), --ppmtompeg ignores the INPUT/END_INPUT block, but --it still must be present. -- --

BASE_FILE_FORMAT {PPM | PNM | YUV | -- JPEG | JMOVIE} -- --
ppmtompeg must convert all input files to one of the --following formats as a first step of processing: PNM, YUV, JPEG(v4), --or JMOVIE. (The conversion may be trivial if your input files are --already in one of these formats). This line specifies which of the --four formats. PPM is actually a subset of PNM. The separate --specification is allowed for backward compatibility. Use PNM instead --of PPM in new applications. -- --
INPUT_CONVERT conversion_command -- --
You must specify how to convert a file to the base file format. --If no conversion is necessary, then you would just say: -- --
--     INPUT_CONVERT *
--     
-- --

Otherwise, conversion_command is a shell command that causes --an image in the format your specified with BASE_FILE_FORMAT to --be written to Standard Output. ppmtompeg executes the command --once for each line between INPUT and END_INPUT (which is --normally, but not necessarily, a file name). In the conversion --command, ppmtompeg replaces each '*' with the contents of that --line. -- -- If you had a bunch of gif files, you might say: --

--     INPUT_CONVERT giftopnm *
--     
-- -- If you have a bunch of separate a.Y, a.U, and a.V files (where -- the U and V have already been subsampled), then you might say: -- --
--     INPUT_CONVERT cat *.Y *.U *.V
--     
-- --

Input conversion is not allowed with input from stdin, so use -- --

--     INPUT_CONVERT *
--     
-- --as described above. -- --
SIZE widthxheight -- --
-- --

width and height are the width and height of each --frame in pixels. -- --

When ppmtompeg can get this information from the input image --files, it ignores the SIZE parameter and you may omit it. -- --

When the image files are in YUV format, the files don't contain --dimension information, so SIZE is required. -- --

When ppmtompeg is running in parallel mode, not all of the --processes in the network have access to the image files, so --SIZE is required and must give the same dimensions as the --input image files. -- --

YUV_SIZE widthxheight -- --
This is an obsolete synonym of SIZE. -- --
YUV_FORMAT {ABEKAS | PHILLIPS | UCB | -- EYUV | pattern} -- --
This is meaningful only when BASE_FILE_FORMAT specifies --YUV format, and then it is required. It specifies the sub-format of --the YUV class. -- -- --
GOP_SIZE n -- --
n is the number of frames in a Group of Pictures. Except that --because a GOP must start with an I frame, ppmtompeg makes a GOP as --much longer than n as it has to to make the next GOP start with an --I frame. -- --

Normally, it makes sense to make your GOP size a multiple of your --pattern length (the latter is determined by the PATTERN parameter file --statement). -- --

See Group Of Pictures. -- --

SLICES_PER_FRAME n --
n is roughly the number of slices per frame. Note, at --least one MPEG player may complain if slices do not start at the left --side of an image. To ensure this does not happen, make sure the --number of rows is divisible by SLICES_PER_FRAME. -- --
PIXEL {FULL | HALF} -- --
use half-pixel motion vectors, or just full-pixel ones It is --usually important that you use half-pixel motion vectors, because it --results in both better quality and better compression. -- -- --
RANGE n --
Use a search range of n pixels in each of the four directions --from a subject pixel. (So the search window is a square n*2 pixels --on a side). -- --
PSEARCH_ALG {EXHAUSTIVE | TWOLEVEL | -- SUBSAMPLE | LOGARITHMIC} -- --
This statement tells ppmtompeg what kind of search -- technique (algorithm) to use for P frames. You select the desired -- combination of speed and compression. EXHAUSTIVE gives the -- best compression, but LOGARITHMIC is the fastest. -- TWOLEVEL is an exhaustive full-pixel search, followed by a -- local half- pixel search around the best full-pixel vector (the -- PIXEL option is ignored for this search technique). -- --
BSEARCH_ALG {SIMPLE | CROSS2 | EXHAUSTIVE} -- --
This statement tells ppmtompeg what kind of search -- technique (algorithm) to use for B frames. SIMPLE means -- find best forward and backward vectors, then interpolate. -- CROSS2 means find those two vectors, then see what backward -- vector best matches the best forward vector, and vice versa. -- EXHAUSTIVE does an n-squared search and is -- extremely slow in relation to the others (CROSS2 -- is about half as fast as SIMPLE). -- --
IQSCALE n --
Use n as the qscale for I frames. -- See Qscale. -- --
PQSCALE n --
Use n as the qscale for P frames. -- See Qscale. -- --
BQSCALE n --
Use n as the qscale for B frames. -- See Qscale. -- --
REFERENCE_FRAME {ORIGINAL | DECODED}
This --statement determines whether ppmtompeg uses the original images --or the decoded images when computing motion vectors. Using decoded --images is more accurate and should increase the playback quality of --the output, but it makes the encoding take longer and seems to give --worse compression. It also causes some complications with parallel --encoding. (see the section on parallel encoding). One thing you can --do as a trade-off is select ORIGINAL here, and lower the --qscale (see QSCALE if the quality is not good enough. -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Original or Decoded? (Normalized)
ReferenceCompressionSpeedQuality IQuality PQuality B
Decoded100010001000969919
Original88513731000912884
-- -- -- --
-- --

The following lines are optional: -- --

-- --
FORCE_ENCODE_LAST_FRAME -- --
This statement is obsolete. It does nothing. -- --

Before Netpbm 10.26 (January 2005), ppmtompeg would drop --trailing B frames from your movie, since a movie can't end with a B --frame. (See I Frames, P Frames, B Frames. --You would have to specify FORCE_ENCODE_LAST_FRAME to stop --that from happening and get the same function that ppmtompeg --has today. -- -- --

NIQTABLE -- --
This statement specifies a custom non-intra quantization table. --If you don't specify this statement, ppmtompeg uses a default --non-intra quantization table. -- --

--The 8 lines immediately following NIQTABLE specify the quantization --table. Each line defines a table row and consists of 8 integers, --whitespace-delimited, which define the table columns. -- --

IQTABLE -- --
This is analogous to NIQTABLE, but for the intra quantization table. -- --
ASPECT_RATIO ratio -- --
This statement specifies the aspect ratio for ppmtompeg to --specify in the MPEG output. I'm not sure what this is used for. -- --

ratio must be 1.0, 0.6735, 0.7031, 0.7615, 0.8055, 0.8437, --0.8935, 0.9157, 0.9815, 1.0255, 1.0695, 1.0950, 1.1575, or 1.2015. -- --

FRAME_RATE rate --
This specifies the frame rate for ppmtompeg to specify in the --MPEG output. Some players use this value to determine the playback rate. -- --

rate must be 23.976, 24, 25, 29.97, 30, 50, 59.94, or 60. -- --

BIT_RATE rate --
This specifies the bit rate for Constant Bit Rate (CBR) encoding. -- --

rate must be an integer. -- --

BUFFER_SIZE size -- --
This specifies the value --ppmtompeg is to specify in the MPEG output for the Video --Buffering Verifier (VBV) buffer size needed to decode the sequence. -- --

A Video Verifying Buffer is a buffer in which a decoder keeps the --decoded bits in order to match the uneven speed of the decoding with --the required constant playback speed. -- --

As ppmtompeg encodes the image, it simulates the decoding --process in terms of how many bits would be in the VBV as each frame gets --decoded, assuming a VBV of the size you indicate. -- --

If you specify the WARN_VBV_UNDERFLOW statement, --ppmtompeg issues a warning each time the simulation underflows --the buffer, which suggests that an underflow would occur on playback, --which suggests the buffer is too small. -- --

If you specify the WARN_VBV_OVERFLOW statement, --ppmtompeg issues a warning each time the simulation overflows --the buffer, which suggests that an overflow would occur on playback, --which suggests the buffer is too small. -- --

WARN_VBV_UNDERFLOW --
WARN_VBV_OVERFLOW -- --
See BUFFER_SIZE. -- --

These options were new in Netpbm 10.26 (January 2005). Before that, --ppmtompeg issued the warnings always. -- --

-- -- --The following statements apply only to parallel operation: -- --
-- --
PARALLEL -- --
This statement, paired with END PARALLEL, is what causes --ppmtompeg to operate in parallel mode. See Parallel Operation. -- --
END PARALLEL -- --
This goes with PARALLEL. -- --
PARALLEL_TEST_FRAMES n -- --
The master starts off by measuring each slave's speed. It does --this by giving each slave n frames to encode and noting how --long the slave takes to finish. These are not just test frames, --though -- they're real frames and the results become part of the --output. --ppmtompeg is old and measures time in undivided seconds, so --to get useful timings, specify enough frames that it will take at --least 5 seconds to process them. The default is 10. -- --

If you specify FORCE_I_ALIGN, ppmtompeg will increase --the test frames value enough to maintain the alignment. -- --

If there aren't enough frames for every slave to have the indicated --number of test frames, ppmtompeg will give some slaves fewer. -- -- --

PARALLEL_TIME_CHUNKS t -- --
When you specify this statement, the master attempts to feed work --to the slaves in chunks that take t seconds to process. It uses --the speed measurement it made when it started up (see PARALLEL_TEST_FRAMES) --to decide how many frames to put in the chunk. This statement obviously --doesn't affect the first batch of work sent to each slave, which is the --one used to measure the slave's speed. -- --

Smaller values of t increase communication, but improve load --balancing. The default is 30 seconds. -- --

You may specify only one of PARALLEL_TIME_CHUNKS, PARALLEL_CHUNK_TAPER, --and PARALLEL_PERFECT. PARALLEL_CHUNK_TAPER is usually best. -- --

PARALLEL_CHUNK_TAPER -- --
When you specify this statement, the master distributes work like --with PARALLEL_TIME_CHUNKS, except that the master chooses the number --of seconds for the chunks. It starts with a large number and, as it --gets closer to finishing the job, reduces it. That way, it reduces --scheduling overhead when precise scheduling isn't helpful, but still --prevents a slave from finishing early after all the work has already --been handed out to the other slaves, and then sitting idle while --there's still work to do. -- --

You may specify only one of PARALLEL_TIME_CHUNKS, PARALLEL_CHUNK_TAPER, --and PARALLEL_PERFECT. PARALLEL_CHUNK_TAPER is usually best. -- -- --

PARALLEL_PERFECT -- --
If this statement is present, ppmtompeg schedules on the --assumption that each machine is about the same speed. The master will --simply divide up the frames evenly between the slaves -- each --slave gets the same number of frames. If some slaves are faster than --others, they will finish first and remain idle while the slower slaves --continue. -- --

This has the advantage of minimal scheduling overhead. Where slaves --have different speeds, though, it makes inefficient use of the fast --ones. Where slaves are the same speed, it also has the disadvantage --that they all finish at the same time and feed their output to the --single Combine Server in a burst, which makes less efficient use of --the Combine Server and thus can increase the total elapsed time. -- --

You may specify only one of PARALLEL_TIME_CHUNKS, PARALLEL_CHUNK_TAPER, --and PARALLEL_PERFECT. PARALLEL_CHUNK_TAPER is usually best. -- --

RSH remote_shell_command -- --
ppmtompeg executes the shell command --remote_shell_command to start a process on another machine. --The default command is rsh, and whatever command you specify --must have compatible semantics. ssh is usually compatible. --The command ppmtompeg uses is one like this: --ssh remote.host.com -l username shellcommand. -- --

Be sure to set up .rhosts files or SSH key authorizations --where needed. Otherwise, you'll have to type in passwords. -- --

On some HP machines, rsh is the restricted shell, and you want --to specify remsh. -- --

FORCE_I_ALIGN -- --
This statement forces each slave to encode a chunk of frames which --is a multiple of the pattern length (see PATTERN). Since the --first frame in any pattern is an I frame, this forces each chunk --encoded by a slave to begin with an I frame. -- --

This document used to say there was an argument to --FORCE_I_ALIGN which was the number of frames ppmtompeg --would use (and was required to be a multiple of the pattern length). --But ppmtompeg has apparently always ignored that argument, and --it does now. -- --

KEEP_TEMP_FILES -- --
This statement causes ppmtompeg not to delete the temporary --files it uses to transmit encoded frames to the combine server. This --means you will be left with a file for each frame, the same as you --would get with the -frames option. -- --

This is mostly useful for debugging. -- --

This works only if you're using a shared filesystem to communicate --between the servers. -- --

This option was new in Netpbm 10.26 (January 2005). -- --

-- -- --

Parameter File Notes

-- --

If you use the -combine_gops option, then you need to specify --only the SIZE and OUTPUT values in the parameter file. In --addition, the parameter file may specify input GOP files in the same --manner as normal input files -- except instead of using INPUT_DIR, --INPUT, and END_INPUT, use GOP_INPUT_DIR, GOP_INPUT, and GOP_END_INPUT. --If you specify no input GOP files, then ppmtompeg uses by default the --output file name with suffix .gop.gop_num, with gop_num --starting from 0, as the input files. -- --

If you use the -combine_frames option, then you need to --specify only the SIZE, GOP_SIZE, and OUTPUT values in the --parameter file. In addition, the parameter file may specify input --frame files in the same manner as normal input files -- except instead --of using INPUT_DIR, INPUT, and END_INPUT, use FRAME_INPUT_DIR, --FRAME_INPUT, and FRAME_END_INPUT. If no input frame files are --specified, then the default is to use the output file name with suffix --.frame.frame_num, with frame_num starting from 0, --as the input files. -- --

Any number of spaces and tabs may come between each option and value. Lines --beginning with # are ignored. Any other lines are ignored except for --those between INPUT and END_INPUT. This allows you to use the same --parameter file for normal usage and for -combine_gops and ---combine_frames. -- --

The file format is case-sensitive so all keywords should be in --upper case. -- --

The statements may appear in any order, except that the order within --a block statement (such as INPUT ... END INPUT) is significant. -- --

ppmtompeg is prepared to handle up to 16 B frames between --reference frames when encoding with input from stdin. (To build a --modified ppmtompeg with a higher limit, change the constant --B_FRAME_RUN in frame.c and recompile). -- --

GENERAL USAGE INFORMATION

-- --

Qscale

-- --

The quantization scale values (qscale) give a trade-off between --quality and compression. Using different Qscale values has very little --effect on speed. The qscale values can be set separately for I, P, and --B frames. -- --

You select the qscale values with the IQSCALE, --PQSCALE, and BSCALE parameter file statements. -- --

A qscale value is an integer from 1 to 31. Larger numbers give --better compression, but worse quality. In the following, the quality --numbers are peak signal-to-noise ratio, defined as: --signal-to-noise formula --where MSE is the mean squared error. -- -- --

Flower garden tests: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Qscale vs Quality
QscaleI FramesP FramesB Frames
143.246.346.5
632.634.634.3
1128.629.530.0
1626.326.828.6
2124.725.027.9
2623.523.927.5
3122.623.027.3
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Qscale vs Compression
QscaleI FramesP FramesB Frames
1222
671015
11111843
16152997
211941173
262456256
312873330
-- -- --

Search Techniques

-- --

There are several different motion vector search techniques --available. There are different techniques available for P frame --search and B frame search. Using different search techniques present --little difference in quality, but a large difference in compression --and speed. -- --

There are 4 types of P frame search: Exhaustive, TwoLevel, --SubSample, and Logarithmic. -- --

There are 3 types of B frame search: Exhaustive, Cross2, and --Simple. -- --The recommended search techniques are TwoLevel and Logarithmic for --P frame search, and Cross2 and Simple for B frame search. Here are --some numbers comparing the different search methods: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
P frame Motion Vector Search (Normalized)
TechniqueCompression1Speed 2Quality 3
Exhaustive100010001000
SubSample100824561000
TwoLevel100932371000
Logarithmic10858229998
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
B frame Motion Vector Search (Normalized)
TechniqueCompression1Speed2Quality3
Exhaustive100010001000
Cross29751000996
Simple9381765991
-- -- 1Smaller numbers are better --compression. -- -- 2Larger numbers mean faster --execution. -- -- 3Larger numbers mean better quality. -- --

For some reason, Simple seems to give better compression, but it --depends on the image sequence. -- --

Select the search techniques with the PSEARCH_ALG and --BSEARCH_ALG parameter file statements. -- -- -- --

Group Of Pictures (GOP)

-- --

A Group of Pictures (GOP) is a roughly independently decodable --sequence of frames. An MPEG video stream is made of one or more --GOP's. You may specify how many frames should be in each GOP with the --GOP_SIZE parameter file statement. A GOP always starts with an --I frame. -- --

Instead of encoding an entire sequence, you can encode a single --GOP. To do this, use the -gop command option. You can later --join the resulting GOP files at any time by running ppmtompeg --with the -combine_gops command option. -- -- --

Slices

-- --

A slice is an independently decodable unit in a frame. It can be --as small as one macroblock, or it can be as big as the entire frame. --Barring transmission error, adding slices does not change quality or --speed; the only effect is slightly worse compression. More slices are --used for noisy transmission so that errors are more recoverable. Since --usually errors are not such a problem, we usually just use one slice --per frame. -- --

Control the slice size with the SLICES_PER_FRAME parameter --file statement. -- --

Some MPEG playback systems require that each slice consist of whole --rows of macroblocks. If you are encoding for this kind of player, if --the height of the image is H pixels, then you should set the --SLICES_PER_FRAME to some number which divides H/16. For example, if --the image is 240 pixels (15 macroblocks) high, then you should use --only 15, 5, 3, or 1 slices per frame. -- --

Note: these MPEG playback systems are really wrong, since the MPEG --standard says this doesn't have to be so. -- -- -- --

Search Window

-- --

The search window is the window in which ppmtompeg searches --for motion vectors. The window is a square. You can specify the size --of the square, and whether to allow half-pixel motion vectors or not, --with the RANGE and PIXEL parameter file statements. -- --

I Frames, P Frames, B Frames

-- --

In MPEG-1, a movie is represented as a sequence of MPEG frames, --each of which is an I Frame, a P Frame, or a B Frame. Each represents --an actual frame of the movie (don't get confused by the dual use of --the word "frame." A movie frame is a graphical image. An MPEG frame --is a set of data that describes a movie frame). -- --

An I frame ("intra" frame) describes a movie frame in isolation -- --without respect to any other frame in the movie. A P frame --("predictive" frame) describes a movie frame by describing how it --differs from the movie frame described by the latest preceding I or --P frame. A B frame ("bidirectional" frame) describes a movie frame by --describing how it differs from the the movie frames described by the --nearest I or P frame before and after it. -- --

Note that the first frame of a movie must be described by an I --frame (because there is no previous movie frame) and the last movie --frame must be described by an I or P frame (because there is no --subsequent movie frame). -- --

Beyond that, you can choose which frames are represented by which --types. You specify a pattern, such as IBPBP and ppmtompeg --simply repeats it over and over throughout the movie. The pattern --affects speed, quality, and stream size. Here is a chart which shows --some of the trade-offs: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Comparison of I/P/B Frames (Normalized)
Frame TypeSizeSpeedQuality
I frames100010001000
P frames409609969
B frames72260919
-- --(this is with constant qscale) -- --

A standard sequence is IBBPBBPBBPBBPBB. -- --

Select the sequence with the PATTERN parameter file statement. -- --

Since the last MPEG frame cannot be a B frame (see above), if the --pattern you specify indicates a B frame for the last movie frame of --the movie, ppmtompeg makes it an I frame instead. -- --

Before Netpbm 10.26 (January 2005), ppmtompeg instead drops --the trailing B frames by default, and you need the --FORCE_ENCODE_LAST_FRAME parameter file statement to make it do --this. -- --

The MPEG frames don't appear in the MPEG-1 stream in the same order that --the corresponding movie frames appear in the movie -- the B frames come after --the I and P frames on which they are based. For example, if the movie is --4 frames that you will represent with the pattern IBBP, the MPEG-1 stream --will start with an I frame describing movie frame 0. The next frame in --the MPEG-1 stream is a P frame describing movie frame 3. The last two --frames in the MPEG-1 stream are B frames describing movie frames 1 and 2, --respectively. -- -- --

Specifying Input and Output Files

-- --

Specify the input frame images with the INPUT_DIR, --INPUT, END_INPUT, BASE_FILE_FORMAT, --SIZE, YUV_FORMAT and INPUT_CONVERT parameter --file statements. -- --

Specify the output file with the OUTPUT parameter file statement. -- -- --

Statistics

-- --

ppmtompeg can generate a variety of statistics about the --encoding. See the -stat, -snr, -mv_histogram, ---quiet, -no_frame_summary, and -bit_rate_info --options. -- -- --

PARALLEL OPERATION

-- --

You can run ppmtompeg on multiple machines at once, encoding --the same MPEG stream. When you do, the machines are used as shown in --the following diagram. We call this "parallel mode." -- --

ppmtompeg-par.gif -- --

To do parallel processing, put the statement -- --

--    PARALLEL
--
-- --in the parameter file, followed by a listing of the machines, one --machine per line, then -- --
--    END_PARALLEL
--
-- --Each of the machine lines must be in one of two forms. If the machine --has filesystem access to the input files, then the line is: -- --

--machine user executable -- --

The executable is normally ppmtompeg (you may need to give --the complete path if you've built for different architectures). If --the machine does not have filesystem access to the input files, the line --is: -- --

REMOTE machine user executable --parameter file -- --

The -max_machines command option limits the number of --machines ppmtompeg will use. If you specify more machines in --the parameter file than -max_machines allows, ppmtompeg --uses only the machines listed first. This is handy if you want to --experiment with different amounts of parallelism. -- --

In general, you should use full path file names when describing --executables and parameter files. This includes the parameter --file argument on the original invocation of ppmtompeg. -- --

All file names must be the same on all systems (so if e.g. you're --using an NFS filesystem, you must make sure it is mounted at the same --mountpoint on all systems). -- --

Because not all of the processes involved in parallel operation --have easy access to the input files, you must specify the SIZE --parameter file statement when you do parallel operation. -- --

The machine on which you originally invoke ppmtompeg is the --master machine. It hosts a "combine server,", a --"decode server," and a number of "i/o servers," --all as separate processes. The other machines in the network (listed --in the parameter file) are slave machines. Each hosts a single --process that continuously requests work from the master and does it. --The slave process does the computation to encode MPEG frames. It --processes frames in batches identified by the master. -- --

The master uses a remote shell command to start a process on a --slave machine. By default, it uses an rsh shell command to do --this. But use the RSH parameter file statement to control --this. The shell command the master executes remotely is --ppmtompeg, but with options to indicate that it is to perform --slave functions. -- --

The various machines talk to each other over TCP connections. Each --machine finds and binds to a free TCP port number and tells its --partners the port number. These port numbers are at least 2048. -- --

Use the PARALLEL_TEST_FRAMES, PARALLEL_TIME_CHUNKS, and --PARALLEL_PERFECT parameter file statements to control the way the --master divides up work among the slaves. -- --

Use the -nice command option to cause all slave processes to run --"nicely," i.e. as low priority processes. That way, this substantial and --long-running CPU load will have minimal impact on other, possibly --interactive, users of the systems. -- --  --

SPEED

-- --

Here is a look at ppmtompeg speed, in single-node (not parallel) --operation: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Compression Speed
Machine TypeMacroblocks per second1
HP 9000/755280
DEC 3000/400247
HP 9000/750191
Sparc 10104
DEC 500068
--1A macroblock is a 16x16 pixel square -- --

The measurements in the table are with inputs and outputs via a --conventional locally attached filesystem. If you are using a network --filesystem over a single 10 MB/s Ethernet, that constrains your speed more --than your CPU speed. In that case, don't expect to get better than 4 --or 5 frames per second no matter how fast your CPUs are. -- --

Network speed is even more of a bottleneck when the slaves do not --have filesystem access to the input files -- i.e. you declare them --REMOTE. -- --

Where I/O is the bottleneck, size of the input frames can make a big --difference. So YUV input is better than PPM, and JPEG is better than --both. -- --

When you're first trying to get parallel mode working, be sure to --use the -debug_machines option so you can see what's going on. --Also, -debug_sockets can help you diagnose communication --problems. -- -- --

AUTHORS

-- -- -- --
--  --

Table Of Contents

-- -- -- diff --git a/netpbm-more-files.patch b/netpbm-more-files.patch deleted file mode 100644 index a3405af..0000000 --- a/netpbm-more-files.patch +++ /dev/null @@ -1,18 +0,0 @@ -diff --git a/converter/other/pnmtops.c b/converter/other/pnmtops.c -index e393931..93a5156 100644 ---- a/converter/other/pnmtops.c -+++ b/converter/other/pnmtops.c -@@ -1994,6 +1994,13 @@ main(int argc, const char * argv[]) { - name = strdup("noname"); - else - name = basebasename(cmdline.inputFileName); -+ -+ /* This program manages file descriptors in a way that assumes -+ that new files will get file descriptor numbers less than 10, -+ so we close superfluous files now to make sure that's true. -+ */ -+ closeAllBut(fileno(ifP), fileno(stdout), fileno(stderr)); -+ - { - int eof; /* There are no more images in the input file */ - unsigned int imageSeq; diff --git a/netpbm-multipage-pam.patch b/netpbm-multipage-pam.patch deleted file mode 100644 index 59b1651..0000000 --- a/netpbm-multipage-pam.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff --git a/converter/other/pnmtops.c b/converter/other/pnmtops.c -index 24dc7df..e393931 100644 ---- a/converter/other/pnmtops.c -+++ b/converter/other/pnmtops.c -@@ -1909,6 +1909,7 @@ convertPage(FILE * const ifP, - /* The file stream which is the head of the filter chain; we write to - this and filtered stuff comes out the other end. - */ -+ FILE * filterChainOfP; - - pnm_readpaminit(ifP, &inpam, PAM_STRUCT_SIZE(tuple_type)); - -@@ -1951,7 +1952,11 @@ convertPage(FILE * const ifP, - initOutputEncoder(&oe, inpam.width, bitsPerSample, - rle, flate, ascii85, psFilter); - -- spawnFilters(stdout, &oe, &feedFileP, filterPidList); -+ fflush(stdout); -+ filterChainOfP = fdopen(dup(fileno(stdout)), "w"); -+ /* spawnFilters() closes this. See FILE MANAGEMENT above */ -+ -+ spawnFilters(filterChainOfP, &oe, &feedFileP, filterPidList); - - convertRaster(&inpam, bitsPerSample, psFilter, feedFileP); - diff --git a/netpbm-nodoc.patch b/netpbm-nodoc.patch index 2ecf665..c35cd9e 100644 --- a/netpbm-nodoc.patch +++ b/netpbm-nodoc.patch @@ -1,20 +1,13 @@ ---- netpbm-10.24/GNUmakefile.nodoc 2004-08-11 20:41:54.000000000 +0200 -+++ netpbm-10.24/GNUmakefile 2004-09-23 16:08:29.724369240 +0200 -@@ -275,16 +275,12 @@ +diff --git a/GNUmakefile b/GNUmakefile +index b0b7f00..a46329d 100644 +--- a/GNUmakefile ++++ b/GNUmakefile +@@ -369,7 +369,7 @@ install.lib: endif - .PHONY: install.manweb --install.manweb: $(PKGDIR)/man/web/netpbm.url $(PKGDIR)/bin/doc.url -+install.manweb: $(PKGDIR)/man/web/netpbm.url + .PHONY: install.manwebmain +-install.manwebmain: $(PKGDIR)/man/web/netpbm.url $(PKGDIR)/bin/doc.url ++install.manwebmain: $(PKGDIR)/man/web/netpbm.url $(PKGDIR)/man/web/netpbm.url: $(PKGDIR)/man/web echo "$(NETPBM_DOCURL)" > $@ - chmod $(INSTALL_PERM_MAN) $@ - --$(PKGDIR)/bin/doc.url: $(PKGDIR)/bin -- echo "$(NETPBM_DOCURL)" > $@ -- chmod $(INSTALL_PERM_MAN) $@ -- - .PHONY: install-dev - # Note that you might install the development package and NOT the runtime - # package. If you have a special system for building stuff, maybe for diff --git a/netpbm-security-code.patch b/netpbm-security-code.patch index 27b49fb..927773a 100644 --- a/netpbm-security-code.patch +++ b/netpbm-security-code.patch @@ -139,38 +139,6 @@ diff -up netpbm-10.58.01/converter/other/pnmtops.c.security-code netpbm-10.58.01 cmdlineP->imageheight = imageheight * 72; } else -diff -up netpbm-10.58.01/converter/other/pnmtorle.c.security-code netpbm-10.58.01/converter/other/pnmtorle.c ---- netpbm-10.58.01/converter/other/pnmtorle.c.security-code 2012-04-09 15:31:42.000000000 +0200 -+++ netpbm-10.58.01/converter/other/pnmtorle.c 2012-04-09 15:40:03.188619976 +0200 -@@ -19,6 +19,8 @@ - * If you modify this software, you should include a notice giving the - * name of the person performing the modification, the date of modification, - * and the reason for such modification. -+ * -+ * 2002-12-19: Fix maths wrapping bugs. Alan Cox - */ - /* - * pnmtorle - A program which will convert pbmplus (ppm or pgm) images -diff -up netpbm-10.58.01/converter/other/pnmtosgi.c.security-code netpbm-10.58.01/converter/other/pnmtosgi.c ---- netpbm-10.58.01/converter/other/pnmtosgi.c.security-code 2012-04-09 15:31:42.000000000 +0200 -+++ netpbm-10.58.01/converter/other/pnmtosgi.c 2012-04-09 15:40:03.188619976 +0200 -@@ -254,6 +254,7 @@ build_channels(FILE * const ifp, int con - #endif - - if( storage != STORAGE_VERBATIM ) { -+ overflow2(channels, rows); - MALLOCARRAY_NOFAIL(table, channels * rows); - MALLOCARRAY_NOFAIL(rletemp, WORSTCOMPR(cols)); - } -@@ -306,6 +307,8 @@ compress(ScanElem * temp, - break; - case STORAGE_RLE: - tabrow = chan_no * rows + row; -+ overflow2(chan_no, rows); -+ overflow_add(chan_no* rows, row); - len = rle_compress(temp, cols); /* writes result into rletemp */ - channel[chan_no][row].length = len; - MALLOCARRAY(p, len); diff -up netpbm-10.58.01/converter/other/rletopnm.c.security-code netpbm-10.58.01/converter/other/rletopnm.c --- netpbm-10.58.01/converter/other/rletopnm.c.security-code 2012-04-09 15:31:42.000000000 +0200 +++ netpbm-10.58.01/converter/other/rletopnm.c 2012-04-09 15:40:03.189619963 +0200 @@ -183,25 +151,6 @@ diff -up netpbm-10.58.01/converter/other/rletopnm.c.security-code netpbm-10.58.0 */ /* * rletopnm - A conversion program to convert from Utah's "rle" image format -diff -up netpbm-10.58.01/converter/other/sgitopnm.c.security-code netpbm-10.58.01/converter/other/sgitopnm.c ---- netpbm-10.58.01/converter/other/sgitopnm.c.security-code 2012-04-09 15:31:42.000000000 +0200 -+++ netpbm-10.58.01/converter/other/sgitopnm.c 2012-04-09 15:40:03.189619963 +0200 -@@ -359,10 +359,14 @@ readChannels(FILE * const ifP, - MALLOCARRAY_NOFAIL(image, head->ysize); - } else { - maxchannel = MIN(3, head->zsize); -+ overflow2(head->ysize, maxchannel); - MALLOCARRAY_NOFAIL(image, head->ysize * maxchannel); - } -- if (table) -+ if (table) { -+ overflow2(head->xsize, 2); -+ overflow_add(head->xsize*2, 2); - MALLOCARRAY_NOFAIL(temp, WORSTCOMPR(head->xsize)); -+ } - - for (channel = 0; channel < maxchannel; ++channel) { - unsigned int row; diff -up netpbm-10.58.01/converter/other/sirtopnm.c.security-code netpbm-10.58.01/converter/other/sirtopnm.c --- netpbm-10.58.01/converter/other/sirtopnm.c.security-code 2012-04-09 15:31:42.000000000 +0200 +++ netpbm-10.58.01/converter/other/sirtopnm.c 2012-04-09 15:40:03.190619951 +0200 @@ -729,46 +678,6 @@ diff -up netpbm-10.58.01/converter/ppm/ppmtoicr.c.security-code netpbm-10.58.01/ p = testimage; for (i=0; icolors = (Color *)calloc((unsigned int)header->ncolors, sizeof(Color)); if (header->colors == NULL) { -diff -up netpbm-10.58.01/converter/ppm/yuvtoppm.c.security-code netpbm-10.58.01/converter/ppm/yuvtoppm.c ---- netpbm-10.58.01/converter/ppm/yuvtoppm.c.security-code 2012-04-09 15:31:44.000000000 +0200 -+++ netpbm-10.58.01/converter/ppm/yuvtoppm.c 2012-04-09 15:40:03.218619602 +0200 -@@ -72,6 +72,7 @@ main(argc, argv) - - ppm_writeppminit(stdout, cols, rows, (pixval) 255, 0); - pixrow = ppm_allocrow(cols); -+ overflow_add(cols, 1); - MALLOCARRAY(yuvbuf, (cols+1)/2); - if (yuvbuf == NULL) - pm_error("Unable to allocate YUV buffer for %d columns.", cols); diff -up netpbm-10.58.01/editor/pamcut.c.security-code netpbm-10.58.01/editor/pamcut.c --- netpbm-10.58.01/editor/pamcut.c.security-code 2012-04-09 15:31:33.000000000 +0200 +++ netpbm-10.58.01/editor/pamcut.c 2012-04-09 15:40:03.218619602 +0200 @@ -1119,29 +1017,6 @@ diff -up netpbm-10.58.01/editor/pnmscalefixed.c.security-code netpbm-10.58.01/ed sxscale = SCALE * newcols / cols; syscale = SCALE * newrows / rows; -diff -up netpbm-10.58.01/editor/pnmshear.c.security-code netpbm-10.58.01/editor/pnmshear.c ---- netpbm-10.58.01/editor/pnmshear.c.security-code 2012-04-09 15:31:33.000000000 +0200 -+++ netpbm-10.58.01/editor/pnmshear.c 2012-04-09 15:40:03.224619526 +0200 -@@ -15,6 +15,7 @@ - #include - #include - #include -+#include - - #include "pm_c_util.h" - #include "ppm.h" -@@ -236,6 +237,11 @@ main(int argc, char * argv[]) { - - shearfac = fabs(tan(cmdline.angle)); - -+ if(rows * shearfac >= INT_MAX-1) -+ pm_error("image too large"); -+ -+ overflow_add(rows * shearfac, cols+1); -+ - newcols = rows * shearfac + cols + 0.999999; - - pnm_writepnminit(stdout, newcols, rows, newmaxval, newformat, 0); diff -up netpbm-10.58.01/editor/ppmdither.c.security-code netpbm-10.58.01/editor/ppmdither.c --- netpbm-10.58.01/editor/ppmdither.c.security-code 2012-04-09 15:31:33.000000000 +0200 +++ netpbm-10.58.01/editor/ppmdither.c 2012-04-09 15:40:03.224619526 +0200 @@ -1215,18 +1090,6 @@ diff -up netpbm-10.58.01/generator/pgmcrater.c.security-code netpbm-10.58.01/gen if (aux == NULL) pm_error("out of memory allocating elevation array"); -diff -up netpbm-10.58.01/generator/pgmkernel.c.security-code netpbm-10.58.01/generator/pgmkernel.c ---- netpbm-10.58.01/generator/pgmkernel.c.security-code 2012-04-09 15:31:34.000000000 +0200 -+++ netpbm-10.58.01/generator/pgmkernel.c 2012-04-09 15:40:03.226619502 +0200 -@@ -68,7 +68,7 @@ main ( argc, argv ) - kycenter = (fysize - 1) / 2.0; - ixsize = fxsize + 0.999; - iysize = fysize + 0.999; -- MALLOCARRAY(fkernel, ixsize * iysize); -+ fkernel = (double *) malloc3 (ixsize, iysize, sizeof(double)); - for (i = 0; i < iysize; i++) - for (j = 0; j < ixsize; j++) { - fkernel[i*ixsize+j] = 1.0 / (1.0 + w * sqrt((double) diff -up netpbm-10.58.01/lib/libpam.c.security-code netpbm-10.58.01/lib/libpam.c --- netpbm-10.58.01/lib/libpam.c.security-code 2012-04-09 15:31:38.000000000 +0200 +++ netpbm-10.58.01/lib/libpam.c 2012-04-09 15:40:03.227619490 +0200 @@ -1252,17 +1115,6 @@ diff -up netpbm-10.58.01/lib/libpammap.c.security-code netpbm-10.58.01/lib/libpa unsigned int const size = sizeof(*retval) - sizeof(retval->tupleint.tuple) + pamP->depth * sizeof(sample); -diff -up netpbm-10.58.01/lib/libpbm1.c.security-code netpbm-10.58.01/lib/libpbm1.c ---- netpbm-10.58.01/lib/libpbm1.c.security-code 2012-04-09 15:31:38.000000000 +0200 -+++ netpbm-10.58.01/lib/libpbm1.c 2012-04-09 15:40:03.228619477 +0200 -@@ -77,6 +77,7 @@ pbm_check(FILE * file, const enum pm_che - pm_message("pm_filepos passed to pm_check() is %u bytes", - sizeof(pm_filepos)); - #endif -+ overflow2(bytes_per_row, rows); - pm_check(file, check_type, need_raster_size, retval_p); - } - } diff -up netpbm-10.58.01/lib/libpm.c.security-code netpbm-10.58.01/lib/libpm.c --- netpbm-10.58.01/lib/libpm.c.security-code 2012-04-09 15:31:38.000000000 +0200 +++ netpbm-10.58.01/lib/libpm.c 2012-04-09 15:40:03.229619464 +0200 @@ -1680,3 +1532,118 @@ diff -up netpbm-10.58.01/urt/scanargs.c.security-code netpbm-10.58.01/urt/scanar static CONST_DECL char * prformat( CONST_DECL char *, int ); static int isnum( CONST_DECL char *, int, int ); +diff --git a/converter/other/pnmtorle.c b/converter/other/pnmtorle.c +index 180b144..d99d99f 100644 +--- a/converter/other/pnmtorle.c ++++ b/converter/other/pnmtorle.c +@@ -19,6 +19,8 @@ + * If you modify this software, you should include a notice giving the + * name of the person performing the modification, the date of modification, + * and the reason for such modification. ++ * ++ * 2002-12-19: Fix maths wrapping bugs. Alan Cox + */ + /* + * pnmtorle - A program which will convert pbmplus (ppm or pgm) images +diff --git a/converter/ppm/ppmtoilbm.c b/converter/ppm/ppmtoilbm.c +index e114457..7c46307 100644 +--- a/converter/ppm/ppmtoilbm.c ++++ b/converter/ppm/ppmtoilbm.c +@@ -185,6 +185,7 @@ makeValTable(int const oldmaxval, + unsigned int i; + int * table; + ++ overflow_add(oldmaxval, 1); + MALLOCARRAY_NOFAIL(table, oldmaxval + 1); + for (i = 0; i <= oldmaxval; ++i) + table[i] = ROUNDDIV(i * newmaxval, oldmaxval); +@@ -2328,8 +2329,11 @@ main(int argc, char ** argv) { + MALLOCARRAY_NOFAIL(coded_rowbuf, RowBytes(cols)); + for (i = 0; i < RowBytes(cols); ++i) + coded_rowbuf[i] = 0; +- if (DO_COMPRESS) ++ if (DO_COMPRESS) { ++ overflow2(cols,2); ++ overflow_add(cols*2,2); + MALLOCARRAY_NOFAIL(compr_rowbuf, WORSTCOMPR(RowBytes(cols))); ++ } + } + + switch (mode) { +diff --git a/editor/pnmshear.c b/editor/pnmshear.c +index 99fa302..dedce11 100644 +--- a/editor/pnmshear.c ++++ b/editor/pnmshear.c +@@ -15,6 +15,7 @@ + #include + #include + #include ++#include + + #include "pm_c_util.h" + #include "mallocvar.h" +@@ -242,6 +243,11 @@ main(int argc, const char * argv[]) { + + shearfac = fabs(tan(cmdline.angle)); + ++ if(rows * shearfac >= INT_MAX-1) ++ pm_error("image too large"); ++ ++ overflow_add(rows * shearfac, cols+1); ++ + newcols = rows * shearfac + cols + 0.999999; + + pnm_writepnminit(stdout, newcols, rows, newmaxval, newformat, 0); +diff --git a/lib/libpbm1.c b/lib/libpbm1.c +index c96779e..543fa36 100644 +--- a/lib/libpbm1.c ++++ b/lib/libpbm1.c +@@ -78,6 +78,7 @@ pbm_check(FILE * const fileP, + } else { + pm_filepos const bytesPerRow = (cols+7)/8; + pm_filepos const needRasterSize = rows * bytesPerRow; ++ overflow2(bytesPerRow, rows); + pm_check(fileP, checkType, needRasterSize, retvalP); + } + } +diff --git a/converter/other/pnmtosgi.c b/converter/other/pnmtosgi.c +index a8df532..514e9e6 100644 +--- a/converter/other/pnmtosgi.c ++++ b/converter/other/pnmtosgi.c +@@ -176,6 +176,8 @@ compress(ScanElem * const tempArg, + break; + case STORAGE_RLE: { + unsigned int const tabrow = chanNum * rows + row; ++ overflow2(chanNum, rows); ++ overflow_add(chanNum* rows, row); + unsigned int const len = rleCompress(tempArg, cols); + /* writes result into rletemp */ + unsigned int i; +@@ -212,6 +214,7 @@ buildChannels(FILE * const ifP, + ScanElem * temp; + + if (storage != STORAGE_VERBATIM) { ++ overflow2(channels, rows); + MALLOCARRAY_NOFAIL(table, channels * rows); + MALLOCARRAY_NOFAIL(rletemp, WORSTCOMPR(cols)); + } else +diff --git a/converter/other/sgitopnm.c b/converter/other/sgitopnm.c +index 008d537..ea9a2e9 100644 +--- a/converter/other/sgitopnm.c ++++ b/converter/other/sgitopnm.c +@@ -372,10 +372,14 @@ readChannels(FILE * const ifP, + MALLOCARRAY_NOFAIL(image, head->ysize); + } else { + maxchannel = 3; ++ overflow2(head->ysize, maxchannel); + MALLOCARRAY_NOFAIL(image, head->ysize * maxchannel); + } +- if (table) ++ if (table) { ++ overflow2(head->xsize, 2); ++ overflow2(head->xsize*2, 2); + MALLOCARRAY_NOFAIL(temp, WORSTCOMPR(head->xsize)); ++ } + + for (channel = 0; channel < maxchannel; ++channel) { + unsigned int row; diff --git a/netpbm-security-scripts.patch b/netpbm-security-scripts.patch index 831be82..6a9b197 100644 --- a/netpbm-security-scripts.patch +++ b/netpbm-security-scripts.patch @@ -1,7 +1,8 @@ -diff -up netpbm-10.47.05/converter/other/anytopnm.security-scripts netpbm-10.47.05/converter/other/anytopnm ---- netpbm-10.47.05/converter/other/anytopnm.security-scripts 2009-12-10 08:34:36.000000000 +0100 -+++ netpbm-10.47.05/converter/other/anytopnm 2010-03-16 21:28:09.000000000 +0100 -@@ -510,10 +510,7 @@ else +diff --git a/converter/other/anytopnm b/converter/other/anytopnm +index acf8813..335312a 100755 +--- a/converter/other/anytopnm ++++ b/converter/other/anytopnm +@@ -511,10 +511,7 @@ else inputFile="-" fi @@ -13,10 +14,13 @@ diff -up netpbm-10.47.05/converter/other/anytopnm.security-scripts netpbm-10.47. # Take out all spaces # Find the filename extension for last-ditch efforts later -@@ -539,9 +536,17 @@ if [ "$filetype" = "unknown" ]; then - echo "$progname: unknown file type. " \ - "'file' says mime type is '$mimeType', " 1>&2 - echo "type description is '$typeDescription'" 1>&2 +@@ -537,12 +534,17 @@ typeDescription=`file "$file" | cut -d: -f2- | cut -c2-` + determineType "$file" "$mimeType" "$typeDescription" "$fileExtension" + + if [ "$filetype" = "unknown" ]; then +- echo "$progname: unknown file type. " \ +- "'file' says mime type is '$mimeType', " 1>&2 +- echo "type description is '$typeDescription'" 1>&2 + if [ -d "$tempdir" ] ; then + rm -rf "$tempdir" + fi @@ -31,10 +35,11 @@ diff -up netpbm-10.47.05/converter/other/anytopnm.security-scripts netpbm-10.47. +fi + exit 0 -diff -up netpbm-10.47.05/editor/pamstretch-gen.security-scripts netpbm-10.47.05/editor/pamstretch-gen ---- netpbm-10.47.05/editor/pamstretch-gen.security-scripts 2009-12-10 08:34:32.000000000 +0100 -+++ netpbm-10.47.05/editor/pamstretch-gen 2010-03-16 21:28:47.000000000 +0100 -@@ -31,13 +31,9 @@ if [ "$1" = "" ]; then +diff --git a/editor/pamstretch-gen b/editor/pamstretch-gen +index ba0e818..250fca0 100755 +--- a/editor/pamstretch-gen ++++ b/editor/pamstretch-gen +@@ -31,9 +31,7 @@ if [ "$1" = "" ]; then exit 1 fi @@ -44,15 +49,12 @@ diff -up netpbm-10.47.05/editor/pamstretch-gen.security-scripts netpbm-10.47.05/ +tempfile=$(mktemp /tmp/pnmig.XXXXXXXXXX) || exit 1 trap 'rm -rf $tempdir' 0 1 3 15 --tempfile=$tempdir/pnmig -- - if ! cat $2 >$tempfile 2>/dev/null; then - echo 'pamstretch-gen: error reading file' 1>&2 - exit 1 -diff -up netpbm-10.47.05/editor/pnmmargin.security-scripts netpbm-10.47.05/editor/pnmmargin ---- netpbm-10.47.05/editor/pnmmargin.security-scripts 2009-12-10 08:34:32.000000000 +0100 -+++ netpbm-10.47.05/editor/pnmmargin 2010-03-16 21:28:09.000000000 +0100 -@@ -11,15 +11,11 @@ + tempfile=$tempdir/pnmig +diff --git a/editor/pnmmargin b/editor/pnmmargin +index 0f57d1d..e0d3625 100755 +--- a/editor/pnmmargin ++++ b/editor/pnmmargin +@@ -11,11 +11,7 @@ # documentation. This software is provided "as is" without express or # implied warranty. @@ -61,47 +63,37 @@ diff -up netpbm-10.47.05/editor/pnmmargin.security-scripts netpbm-10.47.05/edito - { echo "Could not create temporary file. Exiting." 1>&2; exit 1;} -trap 'rm -rf $tempdir' 0 1 3 15 - --tmp1=$tempdir/pnmm1 --tmp2=$tempdir/pnmm2 --tmp3=$tempdir/pnmm3 --tmp4=$tempdir/pnmm4 -+tmpdir=$(mktemp -d -t ppmmargin.XXXXXXX) || exit 1 -+tmp1="$tmpdir/tmp1" -+tmp2="$tmpdir/tmp2" -+tmp3="$tmpdir/tmp3" -+tmp4="$tmpdir/tmp4" - - color="-gofigure" - plainopt="" ++tempdir=$(mktemp -d -t ppmmargin.XXXXXXX) || exit 1 + tmp1=$tempdir/pnmm1 + tmp2=$tempdir/pnmm2 + tmp3=$tempdir/pnmm3 @@ -90,6 +86,7 @@ else -white | -black ) pnmpad $plainopt $color \ -left=$size -right=$size -top=$size -bottom=$size $tmp1 -+ rm -rf "$tmpdir" ++ rm -rf "$tempdir" exit ;; * ) -@@ -102,7 +99,4 @@ else - pnmcat -lr $tmp2 $tmp1 $tmp2 > $tmp4 +@@ -103,4 +100,4 @@ else pnmcat -tb $plainopt $tmp3 $tmp4 $tmp3 fi + - -- -- -- -+rm -rf "$tmpdir" -diff -up netpbm-10.47.05/editor/ppmfade.security-scripts netpbm-10.47.05/editor/ppmfade ---- netpbm-10.47.05/editor/ppmfade.security-scripts 2009-12-10 08:34:32.000000000 +0100 -+++ netpbm-10.47.05/editor/ppmfade 2010-03-16 21:28:09.000000000 +0100 -@@ -14,6 +14,7 @@ ++rm -rf "$tempdir" +diff --git a/editor/ppmfade b/editor/ppmfade +index 027fc79..8eb094f 100755 +--- a/editor/ppmfade ++++ b/editor/ppmfade +@@ -40,6 +40,7 @@ exec perl -w -x -S -- "$0" "$@" # - #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- + ############################################################################## use strict; +use File::Temp "tempdir"; my $SPREAD = 1; my $SHIFT = 2; -@@ -111,20 +112,26 @@ if ($first_file ne "undefined") { +@@ -137,20 +138,26 @@ if ($first_file ne "undefined") { print("Frames are " . $width . "W x " . $height . "H\n"); @@ -132,7 +124,7 @@ diff -up netpbm-10.47.05/editor/ppmfade.security-scripts netpbm-10.47.05/editor/ } # -@@ -132,14 +139,14 @@ if ($last_file eq "undefined") { +@@ -158,14 +165,14 @@ if ($last_file eq "undefined") { # # Here's what our temporary files are: @@ -155,7 +147,7 @@ diff -up netpbm-10.47.05/editor/ppmfade.security-scripts netpbm-10.47.05/editor/ my $i; # Frame number for ($i = 1; $i <= $nframes; $i++) { -@@ -147,147 +154,147 @@ for ($i = 1; $i <= $nframes; $i++) { +@@ -173,147 +180,147 @@ for ($i = 1; $i <= $nframes; $i++) { if ($mode eq $SPREAD) { if ($i <= 10) { my $n = $spline20[$i] * 100; @@ -356,10 +348,11 @@ diff -up netpbm-10.47.05/editor/ppmfade.security-scripts netpbm-10.47.05/editor/ +system("rm $tmpdir/junk*$$.ppm"); exit(0); -diff -up netpbm-10.47.05/editor/ppmshadow.security-scripts netpbm-10.47.05/editor/ppmshadow ---- netpbm-10.47.05/editor/ppmshadow.security-scripts 2009-12-10 08:34:32.000000000 +0100 -+++ netpbm-10.47.05/editor/ppmshadow 2010-03-16 21:28:09.000000000 +0100 -@@ -72,9 +72,10 @@ sub makeConvolutionKernel($$) { +diff --git a/editor/ppmshadow b/editor/ppmshadow +index 62cdf8b..72e1b22 100755 +--- a/editor/ppmshadow ++++ b/editor/ppmshadow +@@ -97,9 +97,10 @@ sub makeConvolutionKernel($$) { my $tmpdir = $ENV{TMPDIR} || "/tmp"; diff --git a/netpbm-werror.patch b/netpbm-werror.patch new file mode 100644 index 0000000..692bbe4 --- /dev/null +++ b/netpbm-werror.patch @@ -0,0 +1,102 @@ +diff --git a/converter/pbm/cmuwmtopbm.c b/converter/pbm/cmuwmtopbm.c +index 5c138c1..1f9bc6c 100644 +--- a/converter/pbm/cmuwmtopbm.c ++++ b/converter/pbm/cmuwmtopbm.c +@@ -48,20 +48,20 @@ readCmuwmHeader(FILE * const ifP, + + rc = pm_readbiglong(ifP, &l); + if (rc == -1 ) +- pm_error(initReadError); ++ pm_error("%s", initReadError); + if ((uint32_t)l != cmuwmMagic) + pm_error("bad magic number in CMU window manager file"); + rc = pm_readbiglong(ifP, &l); + if (rc == -1) +- pm_error(initReadError); ++ pm_error("%s", initReadError); + *colsP = l; + rc = pm_readbiglong(ifP, &l); + if (rc == -1 ) +- pm_error(initReadError); ++ pm_error("%s", initReadError); + *rowsP = l; + rc = pm_readbigshort(ifP, &s); + if (rc == -1) +- pm_error(initReadError); ++ pm_error("%s", initReadError); + *depthP = s; + } + +diff --git a/converter/other/tifftopnm.c b/converter/other/tifftopnm.c +index 3aa2e43..b8ebf39 100644 +--- a/converter/other/tifftopnm.c ++++ b/converter/other/tifftopnm.c +@@ -1459,7 +1459,7 @@ convertRasterInMemory(pnmOut * const pnmOutP, + int ok; + ok = TIFFRGBAImageOK(tif, emsg); + if (!ok) { +- pm_message(emsg); ++ pm_message("%s", emsg); + *statusP = CONV_UNABLE; + } else { + uint32 * raster; +@@ -1479,14 +1479,14 @@ convertRasterInMemory(pnmOut * const pnmOutP, + + ok = TIFFRGBAImageBegin(&img, tif, stopOnErrorFalse, emsg); + if (!ok) { +- pm_message(emsg); ++ pm_message("%s", emsg); + *statusP = CONV_FAILED; + } else { + int ok; + ok = TIFFRGBAImageGet(&img, raster, cols, rows); + TIFFRGBAImageEnd(&img) ; + if (!ok) { +- pm_message(emsg); ++ pm_message("%s", emsg); + *statusP = CONV_FAILED; + } else { + *statusP = CONV_DONE; +diff --git a/lib/util/pm_c_util.h b/lib/util/pm_c_util.h +index 01a0765..8f5aa01 100644 +--- a/lib/util/pm_c_util.h ++++ b/lib/util/pm_c_util.h +@@ -80,10 +80,10 @@ + #endif + + #ifndef TRUE +- #define TRUE true ++ #define TRUE 1 + #endif + #ifndef FALSE +- #define FALSE false ++ #define FALSE 0 + #endif + + #define ARRAY_SIZE(x) (sizeof(x)/sizeof(x[0])) +diff --git a/converter/other/fiasco/pnmtofiasco.c b/converter/other/fiasco/pnmtofiasco.c +index d78ff6b..761dac5 100644 +--- a/converter/other/fiasco/pnmtofiasco.c ++++ b/converter/other/fiasco/pnmtofiasco.c +@@ -170,7 +170,7 @@ main (int argc, char **argv) + return 0; + else + { +- fprintf (stderr, fiasco_get_error_message ()); ++ fprintf (stderr, "%s", fiasco_get_error_message ()); + fprintf (stderr, "\n"); + return 1; + } +diff --git a/converter/other/fiasco/params.c b/converter/other/fiasco/params.c +index a4d843a..9659e9f 100644 +--- a/converter/other/fiasco/params.c ++++ b/converter/other/fiasco/params.c +@@ -656,7 +656,7 @@ usage (const param_t *params, const char *progname, const char *synopsis, + fprintf (stderr, "Usage: %s [OPTION]...%s\n", progname, + non_opt_string ? non_opt_string : " "); + if (synopsis != NULL) +- fprintf (stderr, synopsis); ++ fprintf (stderr, "%s\n", synopsis); + fprintf (stderr, "\n\n"); + fprintf (stderr, "Mandatory or optional arguments to long options " + "are mandatory or optional\nfor short options too. " diff --git a/netpbm.spec b/netpbm.spec index fd00155..29bec7d 100644 --- a/netpbm.spec +++ b/netpbm.spec @@ -1,7 +1,7 @@ Summary: A library for handling different graphics file formats Name: netpbm -Version: 10.61.02 -Release: 9%{?dist} +Version: 10.66.02 +Release: 1%{?dist} # See copyright_summary for details License: BSD and GPLv2 and IJG and MIT and Public Domain Group: System Environment/Libraries @@ -33,13 +33,8 @@ Patch22: netpbm-pamtojpeg2k.patch Patch23: netpbm-manfix.patch Patch24: netpbm-ppmtopict.patch Patch25: netpbm-pnmtopclxl.patch -#Patch26: netpbm-man-repeated.patch -Patch27: netpbm-multipage-pam.patch -Patch28: netpbm-compare-same-images.patch -#Patch29: netpbm-man-corrections.patch -Patch29: netpbm-manual-pages.patch -Patch30: netpbm-format-security.patch -Patch31: netpbm-more-files.patch +Patch26: netpbm-werror.patch +Patch27: netpbm-disable-pbmtog3.patch BuildRequires: libjpeg-devel, libpng-devel, libtiff-devel, flex BuildRequires: libX11-devel, python, jasper-devel, libxml2-devel @@ -104,7 +99,7 @@ netpbm-doc. You'll also need to install the netpbm-progs package. %patch9 -p1 -b .xwdfix %patch11 -p1 -b .multilib %patch13 -p1 -b .glibc -%patch15 -p1 +%patch15 -p1 -b .docfix %patch16 -p1 -b .ppmfadeusage %patch17 -p1 -b .fiasco-overflow %patch20 -p1 -b .noppmtompeg @@ -113,13 +108,8 @@ netpbm-doc. You'll also need to install the netpbm-progs package. %patch23 -p1 -b .manfix %patch24 -p1 -b .ppmtopict %patch25 -p1 -b .pnmtopclxl -#%patch26 -p1 -b .man-repeated -%patch27 -p1 -b .multipage-pam -%patch28 -p1 -b .compare-same-images -#%patch29 -p1 -b .man-corrections -%patch29 -p1 -b .manual-pages -%patch30 -p1 -b .fmt-sec -%patch31 -p1 -b .more-files +%patch26 -p1 -b .werror +%patch27 -p1 -b .disable-pbmtog3 sed -i 's/STRIPFLAG = -s/STRIPFLAG =/g' config.mk.in rm -rf converter/other/jpeg2000/libjasper/ @@ -224,6 +214,7 @@ rm -rf $RPM_BUILD_ROOT/usr/misc rm -rf $RPM_BUILD_ROOT/usr/man rm -rf $RPM_BUILD_ROOT/usr/pkginfo rm -rf $RPM_BUILD_ROOT/usr/config_template +rm -rf $RPM_BUILD_ROOT/usr/pkgconfig_template # Don't ship the static library rm -f $RPM_BUILD_ROOT/%{_libdir}/lib*.a @@ -240,6 +231,7 @@ popd pushd test export LD_LIBRARY_PATH=$RPM_BUILD_ROOT%{_libdir} export PBM_TESTPREFIX=$RPM_BUILD_ROOT%{_bindir} +export PBM_BINPREFIX=$RPM_BUILD_ROOT%{_bindir} ./Execute-Tests && exit 0 popd @@ -274,7 +266,10 @@ rm -rf $RPM_BUILD_ROOT %doc userguide/* %changelog -* Wed Nov 13 2013 Petr Hracek - 10.61.02-9 +* Tue May 13 2014 Petr Hracek - 10.66.02-1 +- Update new sources (#1063264) + +* Wed Nov 13 2013 Petr Hracek - 10.61.02-8 - pnmtops hangs in case of more then 10 files (#1029512) * Mon Apr 14 2014 Jaromir Capik - 10.61.02-8 diff --git a/sources b/sources index 1a5f01c..1f41b8d 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -42bbb9fb283687c82e5c608901b22061 netpbm-10.61.02.tar.xz +dcb7de91384d630eb399e48c71158f3d netpbm-10.66.02.tar.xz