diff --git a/.gitignore b/.gitignore
index 8c6b1cc..f9fd4bb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -26,3 +26,4 @@
/netpbm-11.00.00.tar.xz
/netpbm-11.01.00.tar.xz
/netpbm-11.02.00.tar.xz
+/netpbm-11.09.00.tar.xz
diff --git a/netpbm-CAN-2005-2471.patch b/netpbm-CAN-2005-2471.patch
index ae17d6b..de6bc59 100644
--- a/netpbm-CAN-2005-2471.patch
+++ b/netpbm-CAN-2005-2471.patch
@@ -1,6 +1,6 @@
diff -urNp a/converter/other/pstopnm.c b/converter/other/pstopnm.c
---- a/converter/other/pstopnm.c 2018-07-23 15:14:51.200658026 +0200
-+++ b/converter/other/pstopnm.c 2018-07-23 15:18:12.579910612 +0200
+--- a/converter/other/pstopnm.c 2025-02-04 10:47:27.857451432 +0100
++++ b/converter/other/pstopnm.c 2025-02-04 10:55:56.430470597 +0100
@@ -896,11 +896,11 @@ execGhostscript(int const
ghostscriptProg, arg0,
deviceopt, outfileopt, gopt, ropt, textalphabitsopt,
@@ -9,9 +9,9 @@ diff -urNp a/converter/other/pstopnm.c b/converter/other/pstopnm.c
+ "-dPARANOIDSAFER", "-");
}
- execl(ghostscriptProg, arg0, deviceopt, outfileopt, gopt, ropt,
-- textalphabitsopt, "-q", "-dNOPAUSE", "-dSAFER", "-", NULL);
-+ "-q", "-dNOPAUSE", "-dPARANOIDSAFER", "-", NULL);
+ execl(ghostscriptProg, arg0, deviceopt, outfileopt, gopt, ropt,
+- textalphabitsopt, "-q", "-dNOPAUSE", "-dSAFER", "-", NULL);
++ "-q", "-dNOPAUSE", "-dPARANOIDSAFER", "-", NULL);
pm_error("execl() of Ghostscript ('%s') failed, errno=%d (%s)",
ghostscriptProg, errno, strerror(errno));
diff --git a/netpbm-c99-2.patch b/netpbm-c99-2.patch
deleted file mode 100644
index bcb8a99..0000000
--- a/netpbm-c99-2.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-Remove the contents of libjasper_compat.c. The assignment
-
- *errorP = errorP;
-
-is bogus because it creates a non-null value in *errorP even on
-success, and the caller expects a null pointer int his case.
-
-The source file is compiled, but not actually linked in, so this is
-only a problem because of the type error that fails the build.
-
-diff --git a/converter/other/jpeg2000/libjasper_compat.c b/converter/other/jpeg2000/libjasper_compat.c
-index 101820a321212dc6..e69de29bb2d1d643 100644
---- a/converter/other/jpeg2000/libjasper_compat.c
-+++ b/converter/other/jpeg2000/libjasper_compat.c
-@@ -1,26 +0,0 @@
--#include "netpbm/nstring.h"
--
--#include "jasper/jasper.h"
--#include "jasper/jas_image.h"
--
--#ifndef JAS_HAVE_PMJAS_IMAGE_DECODE
--
--void
--pmjas_image_decode(jas_stream_t * const in,
-- int const fmtArg,
-- const char * const optstr,
-- jas_image_t ** const imagePP,
-- const char ** const errorP) {
--
-- jas_image_t * const jasperP = jas_image_decode(in, fmtArg, optstr);
--
-- if (jasperP) {
-- *imagePP = jasperP;
-- *errorP = errorP;
-- } else {
-- pm_asprintf(errorP, "Failed. Details may have been written to "
-- "Standard Error");
-- }
--}
--
--#endif
diff --git a/netpbm-c99.patch b/netpbm-c99.patch
index ed0a887..bcb8a99 100644
--- a/netpbm-c99.patch
+++ b/netpbm-c99.patch
@@ -1,46 +1,41 @@
-Include "pm.h" for the declaration of the overflow_add function. This
-avoids an implicit function declaration. Future C compilers will
-require that all functions are declared explicitly. Implicit function
-declarations are a language feature that was removed in 1999.
+Remove the contents of libjasper_compat.c. The assignment
-Likewise, include "pm.h" for the newly added declarations of realloc2.
-This fixes a pointer truncation bug in pjtoppm.
+ *errorP = errorP;
-Both issues are specific to downstream patches.
+is bogus because it creates a non-null value in *errorP even on
+success, and the caller expects a null pointer int his case.
-diff --git a/converter/pbm/pbmtoppa/pbm.c b/converter/pbm/pbmtoppa/pbm.c
-index 1c8d236219b297e1..d63cab63b13f2051 100644
---- a/converter/pbm/pbmtoppa/pbm.c
-+++ b/converter/pbm/pbmtoppa/pbm.c
-@@ -12,6 +12,7 @@
- #include Updated: 07 February 2010 avstopam - convert an AVS X image to a Netpbm image
-+ avstopam - convert an AVS X image to a Netpbm image avstopam - convert an AVS X image to a Netpbm image
+@@ -16,40 +16,40 @@ Updated: 07 February 2010
The Libnetpbm Utility Manual
diff -urNp a/userguide/pamfunc.html b/userguide/pamfunc.html
---- a/userguide/pamfunc.html 2022-01-03 16:56:37.730614236 +0100
-+++ b/userguide/pamfunc.html 2022-01-03 16:58:29.892416027 +0100
+--- a/userguide/pamfunc.html 2025-02-04 10:47:27.823451565 +0100
++++ b/userguide/pamfunc.html 2025-02-04 17:52:19.661114878 +0100
@@ -60,7 +60,7 @@ output image.
and bit string (such as and with 01001000). For the arithmetic functions, the
function arguments and results are the fraction that a sample is of the
@@ -112,9 +107,9 @@ diff -urNp a/userguide/pamfunc.html b/userguide/pamfunc.html
Minimum unique abbreviation of an option is acceptable. You can use a
- single hyphen instead of double hyphens to denote options. You can use white
+@@ -17,19 +17,19 @@ Updated: 18 December 2024
+ [-maskfile=filename]
+ [-stdev=number]
+ [-randomseed integer]
+- filename ...
++ filename ... Minimum unique abbreviation of an option is acceptable. You can use double
+ hyphen instead of a single hyphen to denote options. You can use white
space in place of the equals sign to separate an option name from its
-value.
+value.avstopam
-Updated: 07 February 2010
-
-Table Of Contents
-+
+NAME
--SYNOPSIS
-
-@@ -16,40 +17,40 @@ Updated: 07 February 2010
+ DESCRIPTION
@@ -72,8 +67,8 @@ diff -urNp a/userguide/avstopam.html b/userguide/avstopam.html
diff -urNp a/userguide/faxformat.html b/userguide/faxformat.html
---- a/userguide/faxformat.html 2022-01-03 16:56:37.731614243 +0100
-+++ b/userguide/faxformat.html 2022-01-03 16:58:29.890416013 +0100
+--- a/userguide/faxformat.html 2025-02-04 10:47:27.824451560 +0100
++++ b/userguide/faxformat.html 2025-02-04 17:50:41.300631089 +0100
@@ -5,10 +5,11 @@
Updated: 03 December 2008
@@ -88,8 +83,8 @@ diff -urNp a/userguide/faxformat.html b/userguide/faxformat.html
(the idea is to provide a way to be sure that a fax machine is able to receive
a fax sent by another). These standards incidentally specify graphics file
diff -urNp a/userguide/libnetpbm_ug.html b/userguide/libnetpbm_ug.html
---- a/userguide/libnetpbm_ug.html 2022-01-03 16:56:37.732614250 +0100
-+++ b/userguide/libnetpbm_ug.html 2022-01-03 16:58:29.891416020 +0100
+--- a/userguide/libnetpbm_ug.html 2025-02-04 10:47:27.824451560 +0100
++++ b/userguide/libnetpbm_ug.html 2025-02-04 17:52:02.045207328 +0100
@@ -374,7 +374,7 @@ plain format.
Reference
@@ -100,8 +95,8 @@ diff -urNp a/userguide/libnetpbm_ug.html b/userguide/libnetpbm_ug.html
Arithmetic functions
diff -urNp a/userguide/pammixmulti.html b/userguide/pammixmulti.html
---- a/userguide/pammixmulti.html 2022-01-03 16:56:37.731614243 +0100
-+++ b/userguide/pammixmulti.html 2022-01-03 16:58:29.893416034 +0100
-@@ -7,8 +7,8 @@ Updated: 18 November 2018
+--- a/userguide/pammixmulti.html 2025-02-04 10:47:27.820451577 +0100
++++ b/userguide/pammixmulti.html 2025-02-04 17:56:58.538651212 +0100
+@@ -7,8 +7,8 @@ Updated: 18 December 2024
Table Of Contents
@@ -125,9 +120,15 @@ diff -urNp a/userguide/pammixmulti.html b/userguide/pammixmulti.html
SYNOPSIS
-@@ -22,14 +22,14 @@ Updated: 18 November 2018
-
mask, each pixel in the output is produced by a
- weighted average of the corresponding pixels from all the input images based
--on the grayscale level of an additional mask image.
-+on the grayscale level of an additional mask image.
+ mask, each pixel in the output is
+ produced by a weighted average of the corresponding pixels from all
+ the input images based on the grayscale level of an additional mask
+-image.
+--alpha-weighted was new in Netpbm 11.09 (December 2024). ++image.
++-alpha-weighted was new in Netpbm 11.09 (December 2024).
-Use this to ensure you get the same image on separate invocations. +
Use this to ensure you get the same image on separate invocations.
@@ -207,7 +210,7 @@ diff -urNp a/userguide/pammixmulti.html b/userguide/pammixmulti.html +image:
- pammixmulti --blend=random input*.ppm >output.ppm
+ pammixmulti -blend=random input*.ppm >output.ppm
Use a mask image to control the fading among input images on a @@ -215,7 +218,7 @@ diff -urNp a/userguide/pammixmulti.html b/userguide/pammixmulti.html +pixel-by-pixel basis:
- pammixmulti --blend=mask --maskfile=mask.pgm >output.pam \
+ pammixmulti -blend=mask -maskfile=mask.pgm >output.pam \
one.pam two.pam three.pam four.pam
@@ -223,7 +226,7 @@ diff -urNp a/userguide/pammixmulti.html b/userguide/pammixmulti.html
+Do the same but with more abrupt transitions:
- pammixmulti --blend=mask --maskfile=mask.pgm --stdev=0.0 >output.pam \
+ pammixmulti -blend=mask -maskfile=mask.pgm -stdev=0.0 >output.pam \
one.pam two.pam three.pam four.pam
@@ -231,8 +234,8 @@ diff -urNp a/userguide/pammixmulti.html b/userguide/pammixmulti.html
+and now with more gradual transitions:
- pammixmulti --blend=mask --maskfile=mask.pgm --stdev=1.0 >output.pam \
-@@ -133,12 +133,12 @@ pixel-by-pixel basis:
+ pammixmulti -blend=mask -maskfile=mask.pgm -stdev=1.0 >output.pam \
+@@ -139,12 +139,12 @@ pixel-by-pixel basis:
HISTORY
@@ -242,12 +245,12 @@ diff -urNp a/userguide/pammixmulti.html b/userguide/pammixmulti.html
AUTHOR
--Copyright 2018 Scott Pakin, scott+pbm@pakin.org.
-+
Copyright 2018 Scott Pakin, scott+pbm@pakin.org.
+-Copyright 2018–2024 Scott Pakin, scott+pbm@pakin.org.
++
Copyright 2018–2024 Scott Pakin, scott+pbm@pakin.org.
SEE ALSO
-@@ -146,20 +146,20 @@ pixel-by-pixel basis:
+@@ -152,20 +152,20 @@ pixel-by-pixel basis:
ppmmix,
pamarith,
pnm,
@@ -278,8 +281,8 @@ diff -urNp a/userguide/pammixmulti.html b/userguide/pammixmulti.html