about summary refs log tree commit diff
path: root/doc
diff options
context:
space:
mode:
authorgiraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8>2006-08-19 03:12:28 +0000
committergiraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8>2006-08-19 03:12:28 +0000
commit1fd361a1ea06e44286c213ca1f814f49306fdc43 (patch)
tree64c8c96cf54d8718847339a403e5e67b922e8c3f /doc
downloadnetpbm-mirror-1fd361a1ea06e44286c213ca1f814f49306fdc43.tar.gz
netpbm-mirror-1fd361a1ea06e44286c213ca1f814f49306fdc43.tar.xz
netpbm-mirror-1fd361a1ea06e44286c213ca1f814f49306fdc43.zip
Create Subversion repository
git-svn-id: http://svn.code.sf.net/p/netpbm/code/trunk@1 9d0c8265-081b-0410-96cb-a4ca84ce46f8
Diffstat (limited to 'doc')
-rw-r--r--doc/COPYRIGHT.PATENT125
-rw-r--r--doc/GPL_LICENSE.txt340
-rw-r--r--doc/HISTORY3385
-rw-r--r--doc/INSTALL248
-rw-r--r--doc/Netpbm.programming358
-rw-r--r--doc/README.CYGWIN79
-rw-r--r--doc/README.DJGPP65
-rw-r--r--doc/USERDOC155
-rw-r--r--doc/copyright_summary382
-rw-r--r--doc/lgpl_v21.txt504
-rw-r--r--doc/netpbm.14
-rw-r--r--doc/netpbm.html3
12 files changed, 5648 insertions, 0 deletions
diff --git a/doc/COPYRIGHT.PATENT b/doc/COPYRIGHT.PATENT
new file mode 100644
index 00000000..fe3c242a
--- /dev/null
+++ b/doc/COPYRIGHT.PATENT
@@ -0,0 +1,125 @@
+Netpbm consists of code contributed by many authors.  In most of the
+source code files, there is a copyright notice and license, telling
+you what you may or may not do with the code.  All authors have granted
+you the right to use and distribute their code without having to pay
+them, as long as you meet some simple requirements.
+
+Most of the components require you to include a copy of their
+copyright notices and warranty disclaimers in any copies or
+derivations you distribute.
+
+Another restriction that some of the software has is that in order to
+have permission to copy it (which includes writing anything derived
+from it), you must distribute source code for your copy or derivation
+and propagate the same restriction to people who would copy your
+derivation.  In other words, the price the author wants for the use of
+his proprietary work is your contribution to the free software cause.
+
+One component prohibits you from selling it or using it in a
+commercial way: hpcdtoppm.
+
+Some components are contributed to the public domain.  
+
+The copyrights on individual components of this package are detailed 
+at appropriate places within the package.  A slightly out of date
+summary of all the copyrights is in the file 'doc/copyright_summary'
+in the Netpbm source tree.
+
+As with most public open source software, no one really knows for sure
+where the code came from.  It is possible that a contributor copied it
+without license to do so.  That might mean any user of the code owes
+someone royalties.  The Netpbm maintainer in particular has received
+no warranties regarding any of the code in the package.  So consider
+all the above to be modified by "to the best of the Netpbm
+maintainer's knowledge."
+
+
+
+PATENTS
+-------
+
+These are the patents the Netpbm maintainer knows about that relate to
+Netpbm.  It is basically just information the maintainer has stumbled
+over at some point -- no search has been done.
+
+No licenses have been granted by patent owners to the maintainer of
+Netpbm.  Therefore, if you need a patent to use something in Netpbm,
+you need your own license.
+
+A note about patents in general: A patent gives an inventor the
+exclusive right to make, sell, or use the invention.  If you
+independently invent something without knowing that the patent holder
+already did, that makes no difference -- the patent holder still has
+the exclusive right.  It makes no difference if you give the original
+inventor credit.  The patent applies to a method, not its expression,
+so writing a program from scratch to implement a certain method is
+still a patent infringement.  Infringing a patent is not a crime per
+se, but to the extent that it costs the patent holder money, the
+infringer has to make it up.
+
+The original purpose of patents is probably perverted when patents are
+applied to things you implement in computer programs.  This is one of
+the Free Software Foundation's causes.  See 
+<http://www.gnu.org/philosophy.html#laws>.
+
+
+Unisys owns patents on LZW compression, which is used by Ppmtogif, and
+maybe on LZW decompression, which is used by Giftopnm.  IBM also owns
+a patent that may cover the GIF tools.  Unisys offers a license of the
+patent for trivial use for $5000.  Its U.S. patent (Number 4,558,302)
+EXPIRED June 20, 2003.  In most of Europe, the patent expires June 18,
+2004.  In Japan, it's June 20, 2004 and in Canada, July 7, 2004.
+IBM's U.S. patent expirs August 11, 2006.
+
+Neither company has ever enforced the patent against trivial users of
+it.  <http://news.cnet.com/news/0-1005-200-1713278.html> is an article
+dated April 18, 2000 on the issue.
+http://www.unisys.com/about__unisys/lzw/> is Unisys' view of the
+matter.  For information from another perspective, see
+<http://burnallgifs.org>.
+
+The following Netpbm components may be restricted by these patents:
+Ppmtogif, Giftopnm.
+
+A good substitute for GIF if the patents are a problem is PNG (see
+pngtopnm, pnmtopng), which was developed with a primary purpose of not
+using any patented technology.
+
+You can also use the -nolzw option on ppmtogif to avoid using the LZW
+patent.  The images so generated are larger than traditional
+LZW-compressed GIFs, but any GIF decoder can decode them just the
+same.
+
+I repeat: The Unisys U.S. patent has expired.  It is not an issue
+for any future use of Netpbm.
+
+
+The Pnmtojpeg and possibly Jpegtopnm programs in some cases may use
+the arithmetic coding patents owned by IBM, AT&T, and Mitsubishi.
+There is difference of opinion on whether they do.
+
+Forgent owns a patent it believes covers JPEG compression.  This
+patent was virtually unknown before July 2002, when Forgent began to
+enforce it.  It has successfully enforced it against two companies
+(Sony and an unnamed Japanese digital camera maker), but without court
+ruling.  This patent, U.S. Patent No. 4,698,672, expires in 2006.
+
+Philips and Lucent Technologies also own patents they claim cover
+JPEG.
+
+The following Netpbm components may be restricted by these patents:
+Jpegtopnm, Pnmtojpeg, Ppmtompeg, Tifftopnm, Pnmtotiff.  These all
+do their JPEG work via a JPEG library not distributed with Netpbm.
+Your JPEG-related liability for using Netpbm is limited to your 
+liability for using your JPEG library.
+
+The next best alternative to JPEG is probably PNG and maybe JBIG for
+bilevel (black and white) images.
+
+http://burnalljpegs.org contains information on this issue.
+
+
+The Jbigtopnm and Pnmtojbig programs use arithmetic coding patents and
+other patents covering various aspects of the "front end."
+
+
diff --git a/doc/GPL_LICENSE.txt b/doc/GPL_LICENSE.txt
new file mode 100644
index 00000000..c3c7a9ea
--- /dev/null
+++ b/doc/GPL_LICENSE.txt
@@ -0,0 +1,340 @@
+		    GNU GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+			    NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+	    How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) 19yy  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) 19yy name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/doc/HISTORY b/doc/HISTORY
new file mode 100644
index 00000000..7098e887
--- /dev/null
+++ b/doc/HISTORY
@@ -0,0 +1,3385 @@
+Jef Poskanzer (jef@acme.com) invented the PBM format in the 1980s to
+provide the computer graphics world with a common, trouble-free
+format, a lingua-franca, for bitmaps.  The format was designed to be
+simple enough that it could transmitted within an email message
+without any special encapsulating and survive any translations and
+recoding that an email message might go through and be easily
+extractable on the other end.
+
+In 1988, Jef distributed the forerunner of Netpbm, Pbmplus, which
+gathered together the various tools he had developed to work with PBM
+files.  These were mainly tools to convert between PBM and other
+existing graphics formats, making it possible to deal with the Tower
+Of Babel situation that had arisen with the proliferation of graphics
+formats.
+
+By the end of 1988, Jef had added the PGM and PPM formats and lots more
+tools to Pbmplus.
+
+In 1991, Jef added a variety of programs and code contributed by the
+user community, and then stopped maintaining Pbmplus.  Jef never
+formally renounced support for it, but simply didn't get around to
+distributing any updates for over a year following his final December
+10, 1991 release.
+
+In 1993, Netpbm was developed to replace Pbmplus.  Netpbm was nothing
+more than a new release of Pbmplus, and named for the fact that people
+all over the world would maintain the package by submitting fixes and
+enhancements over the Net.  This was a time when such worldwide
+collaboration was still novel.
+
+Then Netpbm apparently fell into neglect with the last release by its
+regular maintainer in March 1994.  In September of 1995 Anthony
+Thyssen released an unofficial update of it called Netpbm-1mar1994.p1,
+while disclaiming any responsibity for ongoing upkeep.
+
+The documentation in that 1995 release mentioned two different official
+mailing lists concerning the package, but by April 1999, neither
+existed anymore.
+
+In September 1999, Bryan Henderson needed some minor bugs fixed, and
+wanted to clean up the mess of unsupported versions and outdated
+documentation of these tools.  After checking around to see if anyone
+had any claims of ownership of the package, and finding none, Bryan
+assumed control and responsibility for Netpbm.  
+
+In November 1999, Thorbjoern Ravn Anderson <ravn@mip.sdu.dk> did the
+same thing, for the same reason (apparently unaware of Bryan's work)
+and made available an updated version (based on the 1994 release) as
+described by http://sunsite.auc.dk/netpbm.  Shortly thereafter, he
+discontinued his effort in deference to the new Pbmplus effort
+mentioned below.  Bryan did not know about Anderson's work until March
+2000.
+
+In August 2000, the PAM format appeared.  But it took a long time
+after that for there to be enough programs and library routines to
+make it useful.  It still is barely known and used; PAM is more of a
+direction or philosophy than a practical tool.  Along with PAM came a
+whole new suite of library routines for processing both classic PNM
+and PAM format images.  The new "pam" routines are easier to use.
+
+In parallel, and unknown to Bryan, Jef was working on a new release
+under the original name Pbmplus and claiming again (or maybe still) to
+be maintaining Pbmplus.  He did a limited release of a beta version of
+it in November 1999.  A mailing list pbmplus@acme.com was active.
+Bryan learned of this effort's existence in March 2000.  No widespread
+distribution ever resulted from this.
+
+Pbmplus and Netpbm were once part of the body of X/Windows contributed
+software, distributed on ftp.x.org (directory contrib/utilities).
+Bryan didn't receive a response to an inquiry to the ftp.x.org owner
+as to the prospect of cleaning up the Netpbm related files there.  So
+Bryan instead made Metalab the new home of the source code.  But
+Metalab had pretty low quality too, and in April 2000 Bryan moved the
+package's home to Sourceforge.
+
+In June 2002, Bryan reorganized the package.  Before, it was organized to
+reflect the evolution of the package:  first PBM only, then PGM was added,
+then PPM, and then the multi-format PNM programs.  There were four separate
+subroutine libraries and each of the PBM, PGM, PPM, and PNM components was
+independent of the components invented later.  Documentation was in the form
+of traditional man pages.  In Release 10, the package was integrated into a
+single monolithic package.  There was one subroutine library and the source
+tree was divided according to program function rather than what generation
+of Netpbm it related to.  All documentation was converted to HTML.
+
+In January 2004, Netpbm started to get the linear/gamma-adjusted
+sample value thing right.  Many programs had always used the gamma
+adjusted values from Netpbm images as if they were linear, which
+produced incorrect and rather terrible results.  Netpbm 10.20 brought
+the pm_[un]gamma709() library routines and pnm_readpamrown() etc.  for
+manipulating Netpbm images in floating point 0..1 sample values, both
+linear and gamma-adjusted.
+
+
+CHANGE HISTORY 
+--------------
+
+06.08.19 BJH  Release 10.35
+
+              Add pgmdeshadow.
+
+              giftopnm: add -quitearly.
+
+              pamfile: add -comments.
+
+              ppmdraw: remove limitation on size of script.
+
+              pnm_readpaminit(), pnm_writepaminit(): Add comment control.
+
+              ppmtogif: do one row at a time.
+
+              Pnmtopng: improve validation of -modtime option.
+
+              Look in /usr/share/X11 instead of /usr/openwin/lib for
+              rgb.txt.
+
+              ppmtompeg: die properly when frame is less than 16x16.
+
+              ppmdraw: fix bug with semicolon in script not followed by
+              white space.
+
+              libppmd (ppmdraw, ppmlabel): don't crash with horizontal
+              or vertical line that is entirely out of frame.
+
+              picttoppm: Fix 32 bit per pixel conversion, broken in 10.34.
+
+              pamthreshold: fix read from pipe.
+
+              Fix typo in make file that makes svgtopam get built
+              when Libxml2 is not available.
+
+              pnm_computetuplefreqhash(), pnm_computetuplefreqtable2():
+              Don't crash on error without pm_setjmp().
+
+              Change memmem() to memmem_internal() in cameratopam/identify.c
+              to avoid collision with system library.
+
+              Use __MINGW32__ to determine HAVE_MKSTEMP (instead of manual).
+
+              Eliminate use of network functions for endianness computations.
+
+              Use "inttypes_netpbm.h" on a system that doesn't have
+              the int_fast32_t, etc. types.  Like Solaris 8.
+
+              configure, installnetpbm: autoflush stdout.
+
+              Build: Use libpng-config if it exists.
+
+              Build: assume no Lex program if neither 'flex' or 'lex' shell
+              command verb exists.
+
+              Remove test source file ppmdtexttest.  Ppmdraw should be
+              sufficient now.
+              
+06.06.18 BJH  Release 10.34
+
+              Add pamthreshold.  Thanks Erik Auerswald
+              <auerswal@unix-ag.uni-kl.de>.
+
+              Add pamx.
+
+              Add pamtoxvmini.
+              
+              pammasksharpen: Add -threshold.
+
+              pnmtopng: make "N colors found" message verbose-only.
+
+              pnmtopng: make "no room in palette" message non-verbose.
+
+              picttoppm: Tolerate various PICT file corruptions.
+
+              picttoppm: Don't issue warning message when file named
+              'fontdir' doesn't exist.
+
+              libnetpbm: Add ppm_bk_color_from_color(),
+              ppm_bk_color_from_name(), ppm_name_from_bk_color().
+              Thanks "Kenan Kalajdzic" <kalajdzic@gmail.com>.
+
+              libnetpbm: Add ppmd_fill_path().
+
+              ppmtobmp: Fix for PBM input.
+
+              bmptopnm: Don't crash on BMP with no color map.
+
+              bmptopnm: Fix wrong file name in error messages.
+
+              ppmtogif: fix bug: always produces garbage output.
+
+              ppmtompeg: fix input from Standard Input.
+
+              pnmflip: fix bug: -rotate90, -rotate180, and -rotate270
+              (and synonyms) don't work when followed by other rotation
+              options.
+
+              ppmtoilbm: Fig bug: generates more planes than necessary.
+
+              pamtofits: fix buffer overflow in asembling header.
+
+              picttoppm: fix bug - interprets some images wrong because of
+              bogus "rowBytes" value.
+
+              Redo asprintfN(), etc. so as not to use va_list in a way
+              that doesn't work on some machines.
+
+              cameratopam: remove definition of memmem() so it doesn't collide
+              with same in some C libraries.  Add memmemN() and MEMEQ to
+              libnetpbm.
+
+              Fix build of filename.o.
+
+              Build: Use local version of mkstemp() based on mktemp() when
+              mkstemp() isn't available.  No automatic determination that
+              mkstemp() isn't available yet.
+
+              Build: Include dummy pm_system() on a system that doesn't
+              have regular Unix process management.
+
+              Add -Wundef to Gcc compile options.
+
+06.03.26 BJH  Release 10.33
+
+              Add pamtosvg.
+
+              g3topbm: Add -width, -paper_size.
+
+              libnetpbm / most newer programs: Fix bug that produces
+              plain format output when it should be raw because
+              pnm_readpaminit() does not set 'plainformat' and most
+              programs just copy the input pam to the output pam.
+
+              pamflip: fix bug with left/right flip of PBM that has 
+              width an even multiple of 8 plus something less than 8.
+
+              pnmquant: turn on autoflush when creating seekable file.
+
+              install: fix symbolic link pnmdepth -> pamdepth.
+              
+              build: fix some importinc dependencies.
+
+06.02.25 BJH  Release 10.32
+
+              Add rlatopam.  Thanks Simon Walton <simonw@matteworld.com>.
+
+              Add pgmmake.
+
+              bmptopnm: Understands RLE4/RLE8 compressed BMP.  Thanks
+              Prophet of the Way <afu@wta.att.ne.jp>.
+
+              pnmgamma: Add -bt709tosrgb -srgbtobt709, -bt709tolinear,
+              -lineartobt709, -gamma, -rgamma, -ggamma, -bgamma (gammma
+              values were formerly specified as parameters).
+
+              pnmgamma: Rename -cieramp to -bt709ramp.
+
+              pnmnorm: add -maxexpand option.
+
+              ppmdraw: work on multi-image streams.              
+
+              anytopnm: add mime time image/x-ms-bmp for BMP
+
+              pamchannel: works on multi-image streams.
+
+              pamstack: works on multi-image streams.
+
+              Convert pnmdepth to pamdepth.  Add multi-image stream
+              capability.
+
+              pamcut: works on multi-image streams.
+
+              pnmtops: allow -flate and -rle together.
+
+              pnmtops: overhaul of -psfilter output.
+              Thanks Chapman Flack <chap@anastigmatix.net>.
+
+              pnmrotate: fine adjustment to arithmetic (rounding,
+              pixel quantization).
+
+              pbmtopsg3: Put currentfile ... in exec block.  Thanks
+              Chapman Flack <chap@anastigmatix.net>
+
+              pbmtopsg3: Add missing /EndOfBlock .  Thanks
+              Chapman Flack <chap@anastigmatix.net>
+
+              pnmtops: Don't claim EPSF if using setpagedevice.
+              Thanks Chapman Flack <chap@anastigmatix.net>
+
+              giftopnm: do "reading image sequence N" message only if
+              being verbose.
+
+              ppmtobmp, bmptopnm: major speed improvement for PBM.  Thanks
+              Prophet of the Way <afu@wta.att.ne.jp>.
+
+              pbmtog3: Use new GCC features instead of assembly language
+              for superspeed operations.  Thanks
+              Prophet of the Way <afu@wta.att.ne.jp>.
+
+              pm_make_tempfile(): Use TEMP and TMP environment variables if
+              TMPDIR not set.
+
+              pm_make_tempfile(): improve error message.
+
+              libpam: pnm_writepamrowmult() respects pam.plainformat.
+
+              libpam: pnm_writepaminit() checks -plain option for PAM format
+              (recognizes the error).
+
+              ppmtoglobe: Fix wild pointer bug.
+
+              Fix wild pointer in REALLOCARRAY(). Affects ppmdraw,
+              escp2topbm, ppmtowinicon, ppmtompeg, pnmtopalm,
+              pnmtopng.  Thanks Steve Summit <scs@eskimo.com>.
+
+              pnmtopng: fix bug with undefined cmdline.modtimeSpec.
+              Thanks Mike Frysinger <vapier@gentoo.org>.
+
+              pnmquant: Use Perl sysseek() instead of seek() to avoid
+              a mispositioned file disaster on some platforms.
+
+              pamditherbw, pgmtopbm: fix bug: overly dark with cluster
+              methods because only 1/4 of the dither matrix is used.
+              Thanks Mark Williams <mark@aziraphale.homeip.net>.
+
+              pnmrotate: fix bug: garbage in lower right corner of background
+              with -noantialias.
+
+              pnmsmooth: change to regular Netpbm syntax.  Replace -size
+              with -width and -height.
+
+              pnmsmooth: fix bug: free of temp file name even when there
+              is no temp file (-dump option).
+
+              pnm_scaletuplerow() fix bug: does nothing when old maxval ==
+              new maxval.  Affects pamedge only.
+
+              ppmtompeg: Fix array/pointer degeneration mess with LumBlock
+              arguments; fix crash.
+
+              pamstereogram: Fix crippling bugs.  Thanks Scott Pakin
+              <scott@pakin.org>.
+
+              giftopnm: Fix bug with interlaced GIF < 5 rows.
+
+              giftopnm: Handle case of a clear code at the end of a block.
+
+              ppmtogif: Fix bug with interlaced GIF < 5 rows.
+
+              cameratopam: Fix segmentation fault from undefined 'ifp'.
+              Thanks Bernard Hatt <bmh@arkady.demon.co.uk>.
+
+              xwdtopnm: Fix bug from 10.31: LSB-first XWDs convert to all
+              black.
+
+              ppmglobe: fix bug: always says stripcount is zero
+              because it looks at the wrong argument.  Thanks Urs Enke
+              <urs.enke@rwth-aachen.de>.
+
+              pnmtotiffcmyk: Fix inttypes conflict on AIX.
+
+              Stop exporting stripeq().
+         
+              Add -lm to link of libnetpbm shared library, to express the
+              fact that code in libnetpbm requires it.  Helps GNU Ld
+              --as-needed.
+
+              Build: move symbolic links to header files into
+              'importinc' directories to keep directories cleaner.  Fully
+              populate 'importinc' in every directory so we don't have
+              to maintain a list of header files for each.
+
+05.12.23 BJH  Release 10.31
+
+              Add pamgradient.
+
+              libnetpbm/everything: speed up ppm_readppmrow() and
+              pgm_readpgmrow() by doing one fread per row instead of a
+              pgm_readrawsample() per sample.  Thanks "Ariel Berkman"
+              <aberkm1@uic.edu>.
+
+              libnetpbm: Make PGM, PPM, and PNM routines read suitable
+              PAM images.
+
+              pnmsplit: upgrade to pamsplit.
+
+              xwdtopnm: Add ability to work with bits per pixel >
+              bits per item.  Replace whole pixel reader.
+
+              pamtotiff: Use TIFFDefaultStripSize() for ROWSPERSTRIP default.
+
+              pamtotiff: add -tag option.  Thanks Gary Gorbet
+              <ggorbet@sdicgm.com>.
+
+              ppmglobe: add -background, -closeok, filename argument.
+
+              pnmcolormap: Work on multi-image stream (one map for all).
+
+              pnmtopclxl: read/convert/write one row at a time.
+              Thanks Martin Buck <m@rtin-buck.de>.
+
+              ppmtolj: read/convert/write one row at a time.
+              Thanks Martin Buck <m@rtin-buck.de>.
+
+              ppmtoxpm: fix bug: produced incorrect output when number
+              of colors is a power of 92.  Thanks Mark Weyer.
+
+              pnmcolormap: fix bug: crashes with input depth > 3.
+
+              pambayer: fix bug: doesn't actually read input file.
+
+              ppmtompeg build: add missing const to work around TRU64
+              compile failure.
+
+              xwdtopnm: Fix handling of padding at end of XWD row.
+
+              pamtotiff: fix bug with PAMs with > 3 planes.
+
+              Remove PPM_PACKCOLORS.
+
+              pnmremap: fix arithmetic overflow bug with maxval > 255 that
+              caused random pixels.
+
+              remove global "cmdline" variables from all programs (4 had them).
+
+              pnmtops: remove extra %%%%Page from 10.27.
+
+              mkinstalldirs: remove chmod 755 to match Automake's
+              mkinstalldirs.
+
+              libopt: add -quiet option
+
+              ppmtojpeg: fix prototype mismatch when building without
+              the JPEG function.
+
+              libnetpbm: fix: PPM_DISTANCE uses red twice instead of and green.
+
+              pnmnlfilt: fix alpha ranges.
+         
+              cameratopam: replace setenv with putenv so it works on Solaris.
+
+              cameratopam: put in workaround for Solaris header file bug.
+
+              pngtopnm: fix bug: grayscale PNG produces PPM.  s/b PGM.
+
+              anytopnm: Use sed instead of Awk -- more universal.
+
+              anytopnm: fix "INTERNAL ERROR" crash due to "filetype" variable
+              not set.
+
+              rletopnm: fix crash when input file is empty or
+              there are various other problems reading its header.
+
+              rletopnm: fix universal crash in option parser.
+
+              tifftopnm: fix crash due to uninitialized variable.
+
+              libnetpbm: Fix bug from 10.30: erroneously says a PAM header
+              line is missing.
+
+05.10.16 BJH  Release 10.30
+
+              Add pambayer.
+              
+              Add pamrgbatopng.
+                            
+              Add pamtilt.  Thanks Gregg Townsend <gmt@cs.arizona.edu>.
+              
+              pamtotiff: create from pnmtotiff.
+
+              pamtofits: create from pnmtofits.
+
+              pamaddnoise: create from pnmaddnoise.
+         
+              pamarith: Add -divide.
+
+              pammasksharpen: Add -sharpness.
+
+              pnmtopng: add -comp_mem_level, -comp_strategy, -comp_method,
+              -comp_window_bits, -comp_buffer_size.
+
+              pnmtopng: use Shhopt command line processor; replace
+              -chroma with -rgb, -phys with -size, -time with -modtime.
+
+              pnmremap: Handle multiple image stream.
+
+              xpmtoppm: Expand capacity from 2K character input lines to
+              8K character input lines.
+
+              libnetpbm: improved messages for "color xxx cannot be
+              represented precisely with maxval M"
+
+              libnetpbm color specification parsing:  Improve warning message
+              about rounding.
+
+              libnetpbm/everything: speed up ppm_writeppmrow() and
+              pgm_writepgmrow() by doing one fwrite per row instead of
+              a pgm_writerawsample() per sample.
+
+              pnmtopng: fix "meaningful bits" optimization of PGM so it
+              optimizes all the way instead of stopping at 4 bits.
+
+              pnmtopng: fix crash when no -alpha option, due to dereferencing
+              of undefined alpha_mask.
+
+              pnmtopng: fix bug: arbitrary color made transparent in
+              paletted PNG when nothing should be transparent.
+
+              pnmtops: bug: selects wrong Postscript level.
+
+              ppmtowinicon: use REALLOCARRAY instead of arithmetic-overflowing
+              realloc().
+
+              anytopnm: fix bug: fails when 'file' database doesn't
+              have mime type but does have human-readable type.
+              
+              manweb: recognize directory as not executable in search of PATH.
+
+              pgm_allocrow(), ppm_allocrow(), pnm_allocrow(): cure
+              arithmetic overflow.
+
+              libnetpbm: On plain formats, check for sample value exceeding
+              maxval.
+
+              libnetpbm: reject maxval > 65535 in "pam" functions. 
+
+              pamarith: Use normalized libnetpbm facilities to get
+              proper accuracy.  Thanks Thomas Henlich
+              <http://sourceforge.net/users/thenlich/>.
+
+              pamarith: fix bug: shift functions don't work when maxvals
+              are not identical.
+
+              pamarith: fix rounding error on multiply.
+
+              pgmtexture: correct calculation of normalizing constants
+              for d > 1.  Thanks Marc Breithecker
+              <Marc.Breithecker@informatik.uni-erlangen.de>.
+
+              pnmnorm: fix divide by zero crash.
+
+              pnmnorm: fix bug that doesn't let you specify
+              -luminosity, -colorvalue, or -saturation.
+
+              ilbmtoppm: fix variable used before set.
+
+              pnmtofits: fix 16 bit sample values > 2**15.
+
+              pnmtopsnr: minor adjustments to messages.
+
+              pnmnorm: don't crash when wvalue == bvalue.  Thanks Thomas
+              Henlich <http://sourceforge.net/users/thenlich/>.
+
+              pnmnorm: fix rounding of output values.  Thanks Thomas
+              Henlich <http://sourceforge.net/users/thenlich/>.
+
+              pnmhisteq: Fix external map to have width maxval + 1 instead
+              of maxval, so full intensity input pixels map properly.
+
+              pnmhisteq: Fix -rmap.
+
+              Fix typos in error messages in various programs.
+
+              pgmmedian: change syntax to Netpbm standard.
+
+              pammasksharpen: fix signedness bug that caused random bright
+              pixels at edges.
+
+              pammasksharpen: fix bug with maxval != 255.
+
+              Clean up a bunch of function prototypes so some broken
+              compilers don't complain about missing "const" in them.
+
+              Remove dependency of pnmtops on basename().  It isn't in
+              some C libraries and we don't want to mess with linking
+              extra libraries.
+
+              Build of ppmsvgalib: work properly when LINUXSVGALIB is
+              a "default path" value such as "libvga.so".
+
+05.08.15 BJH  Release 10.29
+
+              Add ppmdraw.
+
+              Add pammixinterlace.  Thanks Bruce Guenter <bruceg@em.ca>.
+              
+              Add pgmmedian.
+
+              Add pnmaddnoise.
+
+              pnmtopclxl: add -rendergray option.
+
+              pnmtopclxl: add -jobsetup option.
+              
+              pstopnm: add -dSAFER Ghostscript option.
+
+              pnmcrop: add -margin option.
+
+              pnmcrop: add -borderfile option.
+
+              pnmnorm: add -luminosity (which was already default),
+              -colorvalue, and -saturation.
+         
+              pnmtopng: Don't include any alpha info if supplied alpha mask
+              is all opaque.
+
+              ppmcie: Make white point mark more visible.
+
+              pamdice: Remove restriction of 100 slices in each direction.
+
+              pnmtopng: Fix bug: erroneous transparent pixels when supplied
+              alpha mask is all opaque.
+              
+              Fix bytesToWordInt(): converts incorrectly on a machine that
+              has pointer size != word size and uses the general case code.
+
+              libnetpbm: fix basic pm_readlittleshort() bug introduced
+              in 10.27.  Affects mdatopbm, rawtopgm, lispmtopgm,
+              pcxtoppm, winicontoppm, bmptopnm, sirtopnm, xwdtopnm,
+              cameratopam.
+
+              pamlookup: fix universal crash.  Thanks "Colley, Anthony
+              W." <Anthony.Colley@ngc.com>
+
+              pbmtolj: fix bug from 10.28: crashes with a line which is
+              a multiple of 8 plus 7 pixels wide not counting white right
+              margin.
+
+              ppmtompeg: fix uname() rc test (sometimes > 0 is success).
+
+05.06.06 BJH  Release 10.28
+
+              Add cameratopam (Dave Coffin's dcraw).
+
+              ppmtoxpm: ignore empty or similar malformed XPM line instead
+              of giving up.
+
+              pbmtolj: do multi-image stream.
+
+              pnmindex: rewrite in C.
+
+              Fix Gcc 3 warnings.
+
+              pamcomp: fix out of memory problem due to uninitialized
+              pam.allocation_depth.
+
+              anytopnm: remove apparently redundant traps of signals.
+
+              pnm_alloctupletable(): fix bug - returns random value.
+              (affects pnmcolormap, pnmremap, pnmquant, others).
+         
+              jpeg2ktopam: fix array bounds violation on 64 bit machines.
+              Thanks Frederic Devernay <Frederic.Devernay@inrialpes.fr>.
+
+              rle_open: remove extraneous errno declaration.  Thanks
+              Joerg Sonnenberger <joerg@britannica.bec.de>.
+
+              pm_tmpfile, pm_make_tmpfile: rearrange code.
+
+              ppmtompeg: fix insecure temp file.  Thanks Alexey
+              Tourbin <at@altlinux.ru>.
+
+              libnetpbm: fix basic readlittlelong() bug introduced in 10.27.
+              Affects xwdtopnm, bmptopnm, winicontoppm, lispmtopgm.
+
+              pbmtext/libnetpbm: fix crash with -builtin=fixed.
+
+              pbmtoppa: fix floating point exception always due to
+              undefined DPI.
+
+              fix jpeg2000 build failure on system without inttypes.h,
+              etc.  Build now excludes jpeg2000 if you don't have 64
+              bit capability, which practically means you have
+              inttypes.h, etc.
+
+              jpeg2000: don't do unsafe temporary files.
+
+              ppmshadow: make it work with old Perl.
+
+              pnmquant: remove use of Fcntl::seek, not available in
+              Perl 5.00503.
+
+              pnmquant: make -quiet option work.
+
+              pnmgamma: Correct math in -srgbramp.  Add proper rounding.
+              Thanks Horst J. Wobig (hjw.fsw@wobig.de).
+
+              ppmshadow: fix blurring of non-translucent shadow.
+
+              ppmtoxpm: fix use of uninitialized variable that results
+              in invalid color map.
+         
+              Fix backward pnmtopnm - pamtopnm symlink.
+
+05.03.28 BJH  Release 10.27
+
+              tifftopnm: do multi-image streams.
+
+              pnmtotiff: add -append option.
+
+              pnmtotiff: do multi-image streams.
+
+              pnmtopclxl: fix bug with invalid palette in
+              SetColorSpace command.
+
+              pnmtopng: don't accept -background without -mix.
+
+              Eliminate pnmtopnm program -- install 'pnmtopnm' as an
+              alternate name for 'pamtopnm' instead.
+
+              pamscale: refilter as part of resampling for better
+              quality downsampling.
+
+              ppmcolormask: fix segfault with stdin input.
+
+              Add pm_setjmpbuf().
+
+              pnmindex, ppmquantall: use pnmquant instead of ppmquant.
+
+              pnmquant: add -quiet, -plain options
+
+              ppmfade, pnmshadow, pnmindex, pamlookup: Use pamscale
+              instead of pnmscale.
+
+              ppmtoxpm: Don't include superfluous entries for colors
+              of transparent pixels, or for transparency when there are
+              all colors are opaque, in the XPM color map.
+              
+              pnmquant: remove dependency on File::Temp, not available
+              before Perl 5.6.1.
+
+              pamfunc: use multiplication instead of division for -divisor,
+              for speed.
+
+              pamfunc: fix bug in -adder and -subtractor with signed
+              arithmetic.  Thanks David Jones <drj@pobox.com>.
+
+              pamscale: fix bug in converting negative floats to integers.
+              Thanks David Jones <drj@pobox.com>.
+
+              pamscale: fix bug with -filter: scanbuf too small, thus
+              some output rows/columns can never be created and output raster
+              is invalid.
+
+              build: fix build errors in ppmtompeg with OMIT_NETWORK.
+
+              jpeg2ktopam: fix uninitialized memory problem in allocating
+              jasperCmptNo.
+
+              pbmclean: fix -minneighbors so it isn't really -minneighbor.
+
+              pnmremap: allow RGB map and BLACKANDWHITE/GRAYSCALE input.
+
+              pamstereogram: fix bug with -eyesep (float/double).
+
+              pamtojpeg2k: fix bug with -compression (float/double).
+
+              pamtojpeg2k/jpeg2ktopam: work on 64 bit machine; fix
+              definition of int32fast_t, etc. in libjasper.
+
+              libnetpbm: Respect plainness of specified format when writing.
+
+              pnmremap: fix handling of arithmetic overflow in color
+              distance calculation.
+
+              pnmremap: fix bug with palette of different depth from image.
+              
+              libnetpbm: fix 2 byte per pixel pnm_pamwriterow(),
+              pnm_formatpamrow().
+
+              pbmmake: fix bug: requires color option.  (Introduced ca.
+              10.23).
+
+              -plain works with PAM write functions.
+
+              common -plain option causes failure instead of wrong output
+              when used with PAM output.
+
+              pnmremap: fix rounding error where map maxval is small and
+              unequal to image maxval.
+
+              Add pnm_normalizeRow(), pnm_unnormalizeRow(),
+              pnm_creategammatransform(), pnm_createungammatransform(),
+              pnm_freegammatransform(), pnm_freeungammatransform().
+              Idea and prototype from "Scott T. Smith" <scott@gelatinous.com>.
+
+              pamscale: Use pnm_noramlizeRow() to speed up gamma adjustments.
+
+              palmtopnm: Don't assume Palm Bitmap is valid.
+              Thanks Paul Bolle <pebolle@tiscali.nl>.
+
+              giftopnm: fix crash with input that has bogus color indices
+              in the raster.
+
+              giftopnm: fix crash with input that has a bogus minimum code
+              length field.  Thanks deekoo@tentacle.net (Deekoo L.).
+
+              pnm_readpamrown(): use pnm_readpamrow() instead of
+              pm_getraw() for speed.  Similar for pnm_writepamrown().
+
+              pnm_readpamrown(): use multiplication instead of division
+              for speed.  Thanks "Scott T. Smith" <scott@gelatinous.com>.
+         
+              pm_readbiglong(), etc.: pm_error() in case of failure.
+
+              Add pm_readchar(), pm_writechar(), pm_readcharu(),
+              pm_writecharu().
+
+              pnmtopalm: Add packbits compression.
+
+              pnmtopalm: Add version 3 capability (-density, -withdummy).
+
+              pnmtopalm: fix bug: incorrect between-image pad amount.
+
+              pnmtopalm: fix compressed images.  use 0 compressed size
+              field - not totally correct, but passable.
+
+              palmtopnm: fix incorrect handling of some combinations of
+              PALM_IS_COMPRESSED flag and compression type field.
+              Thanks Paul Bolle <pebolle@tiscali.nl>.
+
+              palmtopnm: fix totally broken RLE and scanline compression.
+              Thanks Paul Bolle <pebolle@tiscali.nl>.
+
+              palmtopnm: handle PackBits compression.  Thanks Paul
+              Bolle <pebolle@tiscali.nl>.
+
+              palmtopnm: handle Version 3 encoding.  Thanks Paul Bolle
+              <pebolle@tiscali.nl>.
+
+              Make makeman put in missing newline.  Thanks Eric S. Raymond
+              <esr@thyrsus.com>.
+
+              Include libz in build of programs that use TIFF library.
+
+              palmtopnm: fix wrong check for disallowed combination of
+              -transparent and -rendition.
+
+              pnmtops: Add -psfilter, -flate, -ascii85, -level options.
+
+              pnmtops: Add -dict, -vmreclaim options.
+
+              pnmtops: improve %%Title
+
+              pamcomp: fix bug that duplicates last row of overlay image.
+              Thanks achurch@achurch.org (Andrew Church).
+
+              pamcut: fix bug that fills the rightmost column with black.
+              Thanks achurch@achurch.org (Andrew Church).
+
+              pnmtops: Add -noshowpage option.
+
+              pnmtops: Add %%%%Page. (whoops, this actually added a second
+              %%%%Page.  Removed in 10.31).
+
+              pnmtopalm: fix bug with -offset option.
+
+              xwdtopnm: recognize TrueColor visual class in header dump.
+
+              ppmforge: fix bug: crash due to wild pointer with -night.
+              Thanks John Walker <kelvin@fourmilab.ch>.
+
+05.01.01 BJH  Release 10.26
+
+              pnmhistmap: Add -dots, -nmax, -red, -green, -blue, -lval,
+              -rval, -height, and -width options.
+              Thanks "John H. DuBois III" <spcecdt@armory.com>.
+
+              pnmnorm: accept -wpercent and -wvalue (or -bpercent and -bvalue)
+              together.  Thanks Gregg Townsend <gmt@CS.Arizona.EDU>.
+         
+              xwdtopnm: Add -headerdump option.
+
+              pnmtoxwd: Include 256 color color maps in direct color instead
+              of zero.  Zero has a weird effect.
+
+              pamtotga: recognize RGB_ALPHA instead of RGBA.
+
+              palmtopnm: fix bug in determination of compression type.
+
+              palmtopnm: fix bug in handling of multi-image streams.
+              Thanks Paul Bolle <pebolle@tiscali.nl>.
+
+              pnmtopalm: fix bugs in computation of nextDepthOffset.
+              Thanks Paul Bolle <pebolle@tiscali.nl>.
+
+              pamtotga: fix TGA pixel size for TGA with alpha.  Don't do
+              colormap if input has transparency.
+
+              pamtotga: fix crash due to uninitialized "id" field in TGA 
+              header.
+
+              pbm_writepbmrow(): Fix bug in MMX/SSE code that causes
+              segmentation fault.
+
+              pnmhistmap: Fix bug: doesn't work with maxval != 255.
+              Thanks "John H. DuBois III" <spcecdt@armory.com>.
+
+              pbmtext: fix crash with code point > 127.
+
+              ppmtompeg: major cleanup.
+
+              pnmtopng: fix "internal error" and crash bug with -transparent.
+
+              pnmtoxwd: fix endianness on littleendian machines.
+
+              pnmtoxwd: fix bug: doesn't work if you specify an option.
+              
+              jpegtopnm: fix bug: -dumpexif all wrong.
+
+              jpegtopnm: fix bug: newline written to stdout instead of stderr
+              with -dumpexif.
+
+              Add missing 'col' declaration so -msse compile works.
+
+              pcdovtoppm: fix syntax error
+
+              pnmtojbig/jbigtopnm: add newline to "usage" message.
+
+              pamperspective: fix bugs with -frame_include, etc.
+
+              build: Jpeg2k programs build properly with newer Jasper library.
+
+              build: Fix bug: "no rule to build xxx.so" with external
+              Jasper or Jbig library.
+
+              Add NAME and DESCRIPTION section to pointer man pages.
+
+04.10.16 BJH  Release 10.25
+
+              Add pcxstd.ppm.
+
+              Add pbmtoibm23xx.  Thanks Jo Fahlke <jorrit@jorrit.de>.
+
+              Add pamedge, replacement for pnmedge.
+         
+              pamperspective: add -frame_include, -*margin, -include.
+
+              pamcomp: Handle RGB_ALPHA and GRAYSCALE_ALPHA images,
+              using the opacity plane.
+              
+              pamscale: do transparency pixel mixing properly.
+
+              ppmtompeg: cleanups and additional verbosity.
+
+              anytopnm: Use 'nawk' instead of 'awk' where available.
+
+              anytopnm: Don't use -e.  (not available everywhere).
+
+              tifftopnm: Add warning when Whole Image method reduces
+              resolution to 8 bit.
+
+              pamtopnm: accept extra planes (ignore them).
+
+              pamcut: major speedup.  Thanks Prophet of the Way
+              <afu@wta.att.ne.jp> (Akira Urushibata ("Douso")).
+
+              Add pnm_getopacity().
+
+              libnetpbm: "pam" read and write routines much more
+              efficient.  Thanks Prophet of the Way
+              <afu@wta.att.ne.jp> (Akira Urushibata ("Douso")).
+
+              Add pnm_formatpamrow(), pnm_allocrowimage(),
+              pnm_freerowimage().  Thanks Thanks Prophet of the Way
+              <afu@wta.att.ne.jp> (Akira Urushibata ("Douso")).
+
+              pnm_readpamrow(): Add option to have "tuplerow" argument
+              NULL and not get the row's contents.  Thanks Thanks
+              Prophet of the Way <afu@wta.att.ne.jp> (Akira Urushibata
+              ("Douso")).
+
+              Add pnm_writepamrowmult().  Thanks Thanks Prophet of the
+              Way <afu@wta.att.ne.jp> (Akira Urushibata ("Douso")).
+
+              libnetpbm: format plain format images more nicely.
+              Thanks Thanks Prophet of the Way <afu@wta.att.ne.jp>
+              (Akira Urushibata ("Douso")).  
+
+              pamcut: fix bug: Blows up instead of failing cleanly
+              when you try to cut beyond the bounds of the image.
+              Thanks Thanks Prophet of the Way <afu@wta.att.ne.jp>
+              (Akira Urushibata ("Douso")).
+
+              fix bug: MMX/SSE fast PBM writing (with gcc -msse) all wrong.
+
+              pamscale; fix bug: -linear option sense reversed.
+
+              pamscale: fix bug: everything too dark when using resampling
+              to enlarge.
+
+              Speed up pbm_writepbmrow() (and all PBM output programs)
+              by going a byte at a time.  Thanks Prophet of the Way
+              <afu@wta.att.ne.jp>.
+
+              pamperspective: fix bug that can cause memory corruption
+              and crashes.  Thanks Mark Weyer
+              <Mark.Weyer@math.uni-freiburg.de>.
+
+              ppmtompeg: put in proper marshalling/unmarshalling so as not
+              to depend on a 32 bit integer type.
+
+              ppmtopcx: add -palette option.
+
+              pnmconvol: fix bug: green and blue convolution matrices
+              exchanged, gray exchanged with random.
+
+              ppmtowinicon: fix bug: crashes on 32 bit images.
+         
+              Use <inttypes.h> or <types.h> where possible, dynamically
+              built "inttypes.h" where not.  Eliminate uint32n.
+
+              Handle BITS_PER_WORD=64 in wordaccess.h so it builds on 
+              64 bit platforms.
+
+04.08.11 BJH  Release 10.24
+
+              g3topbm: Add -stop_error.
+
+              Add makeman to build tools.  Thanks Eric S. Raymond
+              <esr@thyrsus.com>.
+
+              pamflip: Large speed, memory improvements for
+              non-diagonal flips.  Thanks Prophet of the Way
+              <afu@wta.att.ne.jp>.
+
+              jbigtopnm, pnmtojbig: Use packed PBM functions to speed up
+              greatly.  Thanks Prophet of the Way <afu@wta.att.ne.jp>.
+
+              g3topbm: Don't fail on premature EOF; produce partial
+              output instead.
+
+              add pnm_maketuplergb(), pnm_makerowrgb(), pnm_makearrayrgb().
+
+              Fix a bunch of programs that, starting with 10.23, have too
+              large a "len" field in the pam structure, causing storage
+              overwrites.
+
+              pbmtext: fix free of unallocated storage bug with stdin
+              input text.
+
+              pnm_writepaminit(): deal correctly with pam structure that
+              doesn't contain tuple_type member.
+
+              Fix pamP->allocation_depth == 0.
+
+              pamstretch-gen: use pamscale instead of pnmscale.
+
+              Generate pm_config.h at make time.  Determine endianness
+              and word size stuff dynamically.  Use uint32n instead of
+              uint32_t in infotopam.c.
+         
+              fitstopnm: fix MIN/MAX transposition in maxval bounding.
+         
+              Fix bug: "wordn" in place of "wordint" in wordaccess.h.
+
+              Fix bug: -plain option on "pam" programs generated plain
+              header, but raw raster.
+
+04.07.17 BJH  Release 10.23
+
+              Add pamgauss.
+
+              Add pammasksharpen.
+
+              Replace pnmtoplainpnm with pnmtopnm.
+
+              pnmconvol: Add -nooffset.
+
+              pamdice: add -hoverlap, -voverlap.  Thanks Geoff
+              Kuenning <geoff@cs.hmc.edu>.
+         
+              pbmtoepson: Add -dpi, -adjacent, -noadjacent, and -protocol
+              options.
+
+              pstopnm: recognize Encapsulated Postscript by presence of 
+              "EPSF-" in the header instead of a whole specific header line.
+              Thanks Philip Hallstrom <philip.hallstrom@gilbarco.com>.
+
+              pnmpad: Allow -left/-right along with -width,
+              -bottom/-top along with -height.  Thanks David Jones 
+              <drj@pobox.com>.
+
+              pnmpad: round to nearest instead of lowest in interpretation
+              of -halign, -valign.
+
+              pnmsplit: Add -padname option.
+
+              pnmenlarge: work on multi-image streams.
+              
+              libnetpbm: add allocation_depth to PAM structure.  Add
+              maketuplergb(), makerowrgb(), makearrayrgb().
+
+              pnminvert: much faster for PBMs.  Thanks 
+              Prophet of the Way <afu@wta.att.ne.jp>.
+
+              pbmmake: use packed bits to speed up.  Thanks Prophet of
+              the Way <afu@wta.att.ne.jp> (Akira Urushibata ("Douso")).
+
+              pbmtog3: speedups.  Thanks Prophet of the Way
+              <afu@wta.att.ne.jp> (Akira Urushibata ("Douso")).
+
+              Fix gamma value (from .45 to 2.2) in pm_gamma709(), 
+              pm_ungamma709().
+
+              pgmramp: Fix signedness bug with -rectangle, -ellipse.
+
+              pnmtojpeg: fix bug with large exif files. (negative malloc)
+
+              pnmtopng: Fix estimation of whether it's better to use a
+              colormap or not.
+         
+              Add pamditherbw, replacement for pgmtopbm.
+
+              pamperspective: Fix bug.  Incorrect output.  Thanks
+              <Mark.Weyer@math.uni-freiburg.de>.
+
+              ppmtompeg: fix crash with input that is not a multiple of
+              16 pixels high and wide.
+
+              pamtotga: fix crash due to freeing nonexistent color table.
+
+              pamtotga: fix bug: invalid TGA when you use -rgb with a
+              non-color input.
+
+              pgmtopbm: fix calculations that divide by maxval+1; should
+              divide by maxval.  Thanks David Jones <drj@pobox.com>.
+
+04.05.01 BJH  Release 10.22
+
+              Add pamperspective.  Thanks Mark Weyer
+              <Mark.Weyer@math.uni-freiburg.de>.
+
+              Add pamstereogram.  Thanks Scott Pakin <scott@pakin.org>.
+
+              Add pc1toppm.  Thanks Roine Gustafsson
+              <roine@users.sourceforge.net>.
+
+              Add pbmtodjvurle.  Thanks Scott Pakin <scott@pakin.org>.
+
+              Add infotopam.  Thanks Rich Griswold <griswold@acm.org>.
+
+              Add pamtopfm, pfmtopam.
+
+              ppmtowinicon: Add -truetransparent.
+
+              ppmtowinicon: remove old, wrong, undocumented -andppm synonym
+              of -andpgm.
+
+              ppmtopcx: Add -stdpalette option.
+
+              pamsumm: Add -brief, -normalize.
+
+              All programs that interpret color specifiers (ppmchange, etc.):
+              warn if the specified color can't be represented, to the 
+              precision specified, in the operative maxval.
+
+              ppmchange: fail if the specified color can't be represented in
+              the maxval of the input image.
+
+              pcxtoppm: Imply standard palette when palette in PCX header is
+              all black.  This function apparently got lost some time since
+              it was added in 1994.
+              
+              pcxtoppm: Add the color palette to -verbose output.
+
+              ppmtopcx: Fix bug: wrong 256 color PCX output.  From
+              10.21.  Thanks Timothy Borgeaud
+              <timothy@borgeaud.freeserve.co.uk>.
+
+              Convert ppmtodjvurle into pamtodjvurle.
+
+              pngtopnm: Dump additional info about PNG with -verbose.
+
+              pngtopnm: Use Netpbm command line parser.
+
+              pbm_readpbmrowpacked(): Fix bug: ORs bits into return value
+              instead of setting them.  Affects pbmtoescp2.
+
+              ppmtopcx: Fix bug: don't add black to a palette if it's not
+              already there.
+
+              pnm_tuplehashtotable(): fix allocsize (maxsize) = 0 case.
+
+              pamflip: fix bug with random memory accesses due to
+              signed/unsigned comparison.
+
+04.03.28 BJH  Release 10.21
+
+              Add pamsumm.
+
+              Add pamsummcol.
+
+              Add pamsharpness, pamsharpmap.
+
+              Add ppmtodjvurle.  Thanks Scott Pakin <scott@pakin.org>.
+
+              pstopnm: add -dpi option.
+
+              ppmtopcx: add -planes option.
+         
+              pbmtext: add -width option.
+
+              replace pnmcomp with pamcomp, do transparency right wrt gamma.
+
+              tifftopnm: Use better CMYK->RGB algorithm: y=1-(b+k) instead
+              of y=(1-k)*(1-b) in Row By Row mode.
+
+              pbmtext/libnetpbm: Allow pbmfont fonts to have 96 characters
+              (32-128) instead of 95.
+
+              pnmtopng: fix bug with -transparent.
+
+              pcxtoppm: remove debugging footsteps.
+
+              pnmflip: pass through -plain, etc. to pamflip.
+
+              Include pm_system.h, pm_gamma.h in package.
+
+              ppmtomap: Change #/bin/sh to #!/bin/sh.
+
+              ppmtogif: Don't violate array bounds when GIF color map is
+              is larger than internal color map.
+
+              yuvsplittoppm: Fix -ccir601 option; clean up.
+
+              ppmtobmp: Fix bug: Generates invalid bits per pixel
+              (e.g. 3) when input image has small number of colors.
+              Thanks David Jones <drj@pobox.com>.
+
+              pbmtog3: fix buffer overrun when image > 1728 columns.
+              Thanks Prophet of the Way <afu@wta.att.ne.jp>.
+
+              pnmsvgalib: Correct error message - too wide -> too tall.
+
+              pnmtotiffcmyk:  Correct abs to fabs so -theta works.
+
+              sldtoppm: Correct abs to fabs.
+
+              pgmramp: Correct abs to fabs so -rectangle and -ellipse work.
+
+              pgmramp: Don't crash with -rectangle and height or width = 1.
+
+              ppmforge: Correct abs to fabs so the planet is more than
+              2 pixels wide.  Also recode much of program in high level C.
+
+              pnmtojpeg: interpret "length" field in exif data as unsigned
+              16 bit instead of signed.
+
+              pnmrotate: fix bug: always crashes in memory free
+
+              pnmrotate: remove debugging messages.
+
+              Declare _XOPEN_SOURCE=500 in programs that use strdup() so
+              C libraries that don't have _BSD_SOURCE will declare it.
+
+              Use FTELLO macro so things compile on a system that
+              doesn't have ftello.  Don't assume _LARGE_FILE_API means
+              ftello is available -- _LARGE_FILE_API is input to libc, not
+              output from it.
+
+04.01.30 BJH  Release 10.20
+
+              pamscale: derive from pnmscale.
+
+              pamscale: Add resampling/convolution code.  Thanks
+              Michael Reinelt <m.reinelt@steinhilberschwehr.at>.
+
+              pamscale: Do math in linear intensities instead of
+              gamma-adjusted.
+
+              pamscale: Add -xyfill.
+
+              pnmtopng: Remove global variables.  Solves a problem with 
+              conflicting name with libc: "gamma".
+                       
+              pbmtomda: make program identifier 'MicroDesignPCW'.  Thanks
+              John Elliott <jce@seasip.demon.co.uk>.
+
+              fitstopnm: Produce maxval 1 instead of 0 when input is all one
+              value.  Use maxval 255 when samples are floating point.
+
+              pamstretch-gen: be robust to invalid PNM input.
+
+              anytopnm: do safe temporary files.
+
+              ppmquantall: do safe temporary files.
+
+              pnmindex: do safe temporary files.
+
+              pnmmargin: do safe temporary files.
+
+              pamstretch-gen: do safe temporary files.  Thanks 
+              Stefan Nordhausen <nordhaus@informatik.hu-berlin.de>.
+              
+              tifftopnm: Do better validation of number of channels.
+              
+              libnetpbm: Add "normalized" (floating point) read/write
+              routines:  pnm_readpamrown(), pnm_writepamrown(), 
+              pnm_allocpamrown(), pnm_freepamrown().
+
+              libnetpbm: Add pm_gamma709, pm_ungamma709().
+
+              libnetpbm: rename createBlackTuple() to pnm_createBlackTuple().
+
+              pm_openr_seekable(): use TMPFILE environment variable.
+              Thanks Kai Strieder <ska@pixelboxx.de>.
+
+              libnetpbm: Fail when input maxval is 0.  This wreaks havoc
+              with such things as rescaling to a new maxval.
+
+              pnmquant: Fix bug wherein all options are rejected.
+
+              ppmshadow: Fix crash in all invocations.
+
+              pnmtopng: fix bug with array bounds violation with -alpha.
+              Usual symptom: "internal inconsistency" message.
+
+              anytopnm: Remove "function" so it works on FreeBSD.
+
+              configure: Do a better job of choosing between -R and -rpath.
+
+              configure: Add test compile for PNG, Z libraries.
+
+03.11.15 BJH  Release 10.19
+
+              ppmhist: Add -float option.
+
+              ppmhist: speed up -colorname by reading color dictionary only
+              once.
+
+              bmptopnm: fix bug with BMPs that end prematurely.
+
+              giftopnm: Properly generate alpha mask when the same
+              color is both transparent and opaque in the GIF.  Thanks
+              Karl Zilles <zilles@1969.ws>.
+
+              rgb.txt: move D65 to the end, so "white" is preferred.
+
+              xwdtopnm: change interpretation of bitmap_pad and bitmap_unit
+              to accomodate Xfree86 direct color 24 bit xwd.
+
+              pbmtextps: fix bug where intermediate file gets truncated.
+
+              pstopnm: fix bug in which Standard Input never works.
+
+              ppmtobmp: change 'char' to 'unsigned char' to work around a
+              Solaris C library bug.
+
+              ppmtobmp: handle maxval properly for maxval != 256 truecolor BMP.
+              Thanks Michael Buchholz <michael.buchholz@deu.mci.com>.
+
+              ppmquant: replace with wrapper for pnmquant, because ppmquant
+              had some really hard bug in computing the new color set.
+
+              Fix stack corruption in pXm_check() on systems that have
+              both 32 and 64 bit file offsets.
+
+              Add 'makecat' build tool and description to USERDOC of
+              using lynx -dump to get man-able documentation.
+
+              Make AIX shared library build work, with -qmkshrobj.
+
+              configure: Add intelligence to default location for zlib,
+              libpng headers.
+
+              configure: Make shared libraries work on AIX.
+
+              Add netpbm-config.
+
+              installnetpbm: don't crash on mkdir on old Perl.
+
+03.09.19 BJH  Release 10.18
+
+              Add escp2topbm, pbmtoescp2.  Thanks Ulrich Walcher
+              <u.walcher@gmx.de>
+
+              Add pbmtomatrixorbital.
+
+              Add ddbugtopbm by Russell Marks.
+
+              bmptopnm: Handle transparency, arbitrary pixel format (rgba
+              masks in BMP header).
+
+              bmptopnm: Handle top-down BMP.
+
+              bmptopnm: Handle 32 bit BMP.  Thanks Aaron Orenstein
+              <aorenste@grandvirtual.com>.
+
+              ppmtopcx: add -8bit option.  Thanks Holger Schemel
+              <holger.schemel@telefonica.de>.
+
+              ilbmtoppm: recognize (and ignore) DPPS and TINY chunks.
+
+              pbmpage: Add solid perimeter box to Pattern 1.
+
+              anytopnm: use 'file --mime' where available to determine file
+              type more robustly.
+
+              manweb: make 'webdir' a list of directories instead of just one.
+
+              pnmpsnr: fix bug: Cr and Cb interchanged.  Thanks
+              "Uwe Utecht" <uwe.utecht@bbc.co.uk>.
+
+              pnmstitch: fix crash.  Thanks "Paul" <pwilkins@lashwhip.com>.
+
+              manweb: add ability to read info files.
+
+              configure: missing lineends for Solaris.
+
+              anytopnm, ppmquantall: remove non-POSIX tail -N and egrep.
+
+              pgmtexture: Fix Measure of Correlation-2 so small values don't
+              turn into zero (replace abs() with fabs()).
+         
+              Add and use MALLOCVAR and MALLOCARRAY utility macros.
+
+              Allocate rows individually if can't get all rows in a single
+              memory block.
+
+              Remove hpcdtoppm from the main package because it isn't
+              licensed properly to be distributed on Sourceforge.
+              
+              Remove "magic" file -- the version that comes with Christos
+              Zoulas' 'file' package now contains everything that file had.
+
+              configure: put space after -o in test compiles.
+
+              Explicitly set SCRIPTS make variable to null so environment
+              variable of the same name doesn't screw things up.
+
+              Remove -DALL_SOURCE from AIX compile; define it in files that
+              require it.
+
+              Add -ffast-math option to recommended Gcc options.
+
+              stamp_date: don't use LOGNAME as a variable (on AIX, you can't).
+
+03.07.05 BJH  Release 10.17
+
+              Various code cleanups based on TRU64 compiler warnings.
+
+              Configure: print message when $OSNAME not recognized.
+
+              Fix Makefile.common so LIBS and LOADLIBES work.
+
+              Fix make file for Ppmglobe so it links the math library.
+
+              Fix bug in xxx_check(): function/prototype mismatch
+              causes bogus wrong-filesize error on systems where off_t
+              is sometimes not 64 bits.
+
+03.07.03 BJH  Release 10.16
+
+              Add ppmglobe.  Thanks Max Gensthaler <Max@Gensthaler.de>.
+
+              bmptopnm: Add ability to convert 16 bits per pixel Windows BMP.
+
+              giftopnm: add -image=all.
+
+              pnmtiff: Add -resolutionunit option.
+
+              pnmtopng: fix bugs, remove limitations with -text.
+
+              pgmabel: Declare internal subroutines 'static'.
+              
+              pstopnm: fix bug: encapsulated postscript confused with 
+              regular postscript, so all pages get overlaid as one page.
+
+              pnmrotate: Use smaller real memory working set.
+
+              winicontoppm: use standard option parser.
+
+              pnmflip: fix bug causing -r180 and -r270 to be ignored.
+              Thanks YANO Hirokuni <hyano@ya-no.com>.
+
+              configure: fix bug with missing space when using CFLAGS
+              environment variable.
+
+              Add CPPFLAGS and LOADLIBES to rules and 'configure' test
+              compiles.
+
+              Issue error message if you do 'make package' before 'make'.
+
+              Add VERSION file to package.
+
+              Use explicit library file name on a link instead of -L/-l
+              where possible.
+
+03.04.27 BJH  Release 10.15
+
+              Add pamtohtmltbl.  Thanks Alexander B. Ivanov <ssh@S-and-B.ru>.
+
+              Add pampop9.  Thanks Robert Tinsley, 
+              <http://www.thepoacher.net/contact>.
+
+              winicontoppm: Handle 24 bit direct color winicons.  Thanks
+              Lee Benfield <lee@benf.org>.
+
+              pnmrotate: add -background option.
+
+              pnmtojpeg: Add -density option.
+
+              pamtotga: Add alpha capability, via "RGBA" tuple type.
+
+              libnetpbm: Add ppm_readcolornamefile().
+
+              Make library and programs work with files > 2GB.  At least 
+              on GNU and AIX.
+
+              pbmtext: Add -momargin option.  Thanks "Slaven Rezic"
+              <eserte@web.de>.
+
+              pbmtoepsi: fix bug: non six-digit lines between 
+              %%BeginPreview: ... and %%EndImage .  Thanks
+              "K.Nakano" <ksk@seeds-man.com>.
+
+              pnmrotate: fix bug: background color computed wrong.
+              
+              pnmrotate: fix bug: PBMs without -noantialias not properly
+              promoted to PGM.
+
+              pnmtops: fix bug: 1 bit per sample output when maxval is 2
+              or 3.  Should be 4 bits per sample.
+
+              pnmtops: fix bug: everything too dark when input maxval less
+              than Postscript maxval.
+
+              pm_nextimage(): fix bug: doesn't read past white space at the
+              end of a plain-format raster.
+
+              pnmremap: fix performance bug: don't put same color into hash
+              twice.  Thanks Hannu Koivisto <Hannu.Koivisto@ionific.com>.
+
+              ppmtoxpm: Add -hexonly.  Default to system color dictionary.
+              Use standard library routines to access color dictionary.
+
+              pnmcolormap: Keep only one row at a time in memory.
+
+              bmptopnm: fix buffer overrun with wild ColorsUsed value.
+
+              Change ordering of include files in parallel.c so it compiles
+              on AIX 5.
+
+              configure: change -O2 to -O0 for broken gcc compiler.
+
+              One more chop at the -R/-rpath issue: new defaults for Solaris.
+
+03.02.13 BJH  Release 10.14
+
+              Add pamedge, adapted from pnmedge by Peter Kirchgessner, 1995.
+
+              Add ppmwheel, adapted from ppmcirc by Peter Kirchgessner, 1995.
+
+              Add ppmtoarbtxt, renamed from ppmtotxt by Peter Kirchgessner,
+              1995.
+              
+              pnmflip: add pnmflip directory to search path for pamflip.
+
+              picttoppm: Recognize DirectBitsRgn opcode.  Thanks
+              <kabe@sra-tohoku.co.jp>.
+
+              ppmbrighten: -normalize works with nonseekable input.
+
+              jpegtopnm: Update exif stuff to match Jhead 1.9.
+
+              bmptopnm: fix for the case of ColorsUsed != 0 in 
+              non-colormapped (24 bit) image.
+
+              pbmtopgm: limit the maxval to legal values.
+         
+              pamarith: minimum output maxval of 2 for -compare.
+
+              rgb.txt: remove redundant lines, clean up.
+
+              pnmgamma: fix bug in -ungamma -cieramp. 1/gamma vs gamma.
+
+              pnmtopng: fix bug: background color = transparent color in
+              colormapped image causes transparent color not to be
+              transparent.  Also make bilevel images with background color
+              use 1 bit per pixel instead of 2.
+
+              pngtopnm: Fix bug: wrong exit code.
+
+              Fix broken ISUPPER; affects sbigtopgm and color name functions
+
+              pamflip: Use bundled strsepN() instead of strsep().
+
+              giftopnm: fix bug with GIFs that (invalidly) contain translation
+              cycles.  Clean up LZW decompression so it is readable and more
+              robust.
+              
+              Add strsepN() to libnetpbm, because strsep() is not available
+              everywhere.
+
+              Change --rpath to -rpath.
+
+              Change LINKERISGCC to LINKERISCOMPILER and default to Y.
+
+              configure: Handle explicit "none" response to svgalib prompt.
+
+              Add merge.o (vs mergelist) method of doing merge build.
+         
+              Fix bug: jbig converters missing from merge build.
+
+03.01.09 BJH  Release 10.13
+
+              Add pamlookup.
+              
+              Add pamflip: replacement of pnmflip.  Does PAM images and has
+              -xform option.
+
+              Add pm_system().
+
+              Ppmrainbow:  Add -norepeat option.
+
+              tifftopnm: handle 32 bits per sample -- Use upper 16 bits.
+
+              tifftopnm: add -byrow.
+
+              pamarith:  Add -compare operator.
+
+              ppmtompeg: Check for missing YUV_SIZE option with 
+              -combine_frames and -combine_gops.
+
+              ppmtompeg: fix buffer overrun with invalid message received
+              by slave processor.
+
+              pamseq: Fix crash/memory corruption.
+
+              pamseq: Remove debugging statement.
+
+              Add some protection against Netpbm images that indicate
+              dimensions too big to process without arithmetic overflow.
+
+              Replace isdigit() with ISDIGIT(), etc.
+
+              pnmnorm: malloc histogram array instead of using stack
+              variable to avoid stack overflow.
+
+              thinkjettopbm: works with Solaris Lex.
+              
+              Add PKGDIR_DEFAULT Makefile.config variable.
+
+              Configure: Test for old JPEG library without jpeg_marker_struct.
+
+              Configure: Add -I/usr/local/include and -I/usr/local/lib to
+              OpenBSD and NetBSD compiles and links.
+
+              Change make variable from INCLUDE to INCLUDES to avoid collision
+              with Cygwin environment variable.
+
+02.11.09 BJH  Release 10.12
+              
+              Add pamtojpeg2k, jpeg2ktopam.
+
+              pnmtotiff: add test for seekable output.
+
+              pnmflip: use packed PBM format to save memory.  Thanks
+              Ivan Karski <karski@nym.alias.net>.
+
+              thinkjettopbm: replace getopt with shhopt to avoid header file
+              problem (getopt.h) on some systems.
+
+              fix multiple definition problem with pm_plain_output.
+
+              pgmminkowski, pgmmorphconv: fix bug: programs missing.  These
+              were formally added in 10.0, but the code never actually went in.
+
+              pbmtomda: fix crash with input image not multiple of 4 rows.
+
+              tgatoppm: fix segfault in option processing from recent
+              option processor change.
+
+              Slight correction to coefficients in pnm_YCbCrtuple.
+
+              Add pnm_YCbCr_to_rgbtuple() to libnetpbm.
+
+              ppmtompeg: fix build failure with NETWORKLD=NONE.
+
+              ppmtompeg: fix build error due to broken C library header files
+              on SunOS.
+
+              Fix missing alias symlinks in merge build.
+
+02.10.17 BJH  Release 10.11
+         
+              Fix nstring.h, ppmcmap.h dependency in analyzer/.
+
+              pnmtojpeg: Add -rgb option.
+
+              jpegtopnm: Handle a stream of consecutive JPEGs.
+
+              tifftopnm: use TIFFRGBAImageGet() so it works on compressed
+              images.
+
+              'make distclean' deletes all symbolic links, even if I forget
+              to put them in HEADERLINKS so that 'make clean' gets them.
+
+02.10.10 BJH  Release 10.10
+
+              Add -plain common option.  Thanks "John H. DuBois III"
+              <spcecdt@armory.com>.
+
+              ppmhist: Add -colorname option
+
+              pnmcomp: Add -align=beyondleft, -align=beyondright,
+              -valign=above, -valign=below and make -xoff and -yoff work
+              in conjunction with -align and -valign.  Idea from 
+              "John H. DuBois III" <spcecdt@armory.com>.
+
+              manweb: Add ability to search through PATH for documentation
+              so you can just say 'manweb bmptopnm'.
+
+              bmptopnm: fix bug from 10.9: 24 bit truecolor should be
+              BGR, not RGB.
+
+              ppmtobmp: fix bug from 10.9: 24 bit truecolor should be
+              BGR, not RGB.
+
+              pamarith: Fix bug with mixed depth inputs.
+         
+              pamarith: Fix bug with -subtract of larger # from smaller.
+
+              pnmstitch: fix bug causing segfault at end.
+
+              pgmtopgm, ppmtoppm: Issue error message if arguments given.
+
+              giftopnm: remove debugging messages.
+
+              Fix line number in color dictionary error messages.
+
+              Fix build errors on systems that don't do "echo -n" by using
+              cat /dev/null instead.
+
+              Fix build errors that cause the data files not to get installed.
+              
+              Merge build: fix install of other/ programs and add NETWORKLD
+              to the link.
+
+              Merge build: add missing backward compatibility 'pnmfile' link.
+
+              Add SCO OpenServer to configure dialog.  Thanks
+              John H. DuBois III <spcecdt@armory.com>
+
+              Add FreeBSD to the configure dialog.
+
+02.09.21 BJH  Release 10.9
+
+              Add pgmtopgm.
+
+              Add ppmtoppm.
+
+              Add ppmtoterm.  Thanks Ero Carrera <ecarrera@lightforge.com>.
+
+              Add ppmrough.  Thanks Eckard Specht
+              <specht@hydra.nat.uni-magdeburg.de>.
+
+              Add rgb.txt
+
+              pnmquant: make it work with pipe input; fix crash due to 
+              half-finished work accidentally released a few releases ago.
+
+              bmptopnm: Use way less memory by inverting image while still
+              in the BMP raster format (as little as 1 bit per pixel), 
+              instead of in the libnetpbm format (96 bits per pixel).
+
+              ppmhist: Reads image into memory one row at a time instead
+              of entire image in memory at once.
+
+              ppmshadow: make it work with non-PPM input.
+
+              ppmshadow: Don't run a shell for every Netpbm program.
+
+              xwdtopnm, pnmtoxwd: make them work on 64-bit-long machines.
+              
+              ppmdither: Fix subscript out of bounds bug which caused
+              random intensity values for the most intense pixels (and
+              very slightly too-intense values everywhere).
+
+              ppmtobmp: Fix bug in 24 bit truecolor: was writing B, G, R
+              but standard appears to be R, G, B (per bmptopnm and xli).
+
+              pamarith: restore pnmarith capability of having one of the
+              inputs be depth 1 while the other is not.
+
+              pnmtopclxl: fine tuning of PBM input case.
+
+              remove pnmfile; obsoleted by pamfile.
+
+              ppmfade, ppmshadow: Change #!/bin/perl to #!/usr/bin/perl.
+
+              Add a bunch of missing #include <string.h> and fix scanf type
+              mismatches, per gcc 3.2 compiler warnings.
+
+              Add some missing -R options to links.
+
+02.08.16 BJH  Release 10.8
+  
+              Build: Fix Configure bug with JPEG headers in default path.
+
+              Pnmtopclxl: fix bug with PBM input not multiple of 8 across.
+
+02.08.15 BJH  Release 10.7
+
+              Pnmtopclxl: remove padBytesMultiple attribute, which doesn't
+              exist on old printers.
+
+              Pnmtopclxl: fix MediaDestination parameter value.
+
+              Pnmtopclxl: make options parsed by standard Netpbm
+              option parser; remove unconventional (and broken)
+              --output option.  Fix crash with Standard Input input.
+              Check whole length given for option values.
+
+              pnmflip: Add -memsize and -pagesize.  Make other options
+              conventional - only one transformation allowed.
+
+              Make 'configure' a Bourne Shell program that calls configure.pl.
+
+              Add pnmstitch.  Thanks Mark Salyzyn <salyzyn@cfl.rr.com>.
+
+              Fix -R stuff to fix Solaris build.
+              
+              Add lots of consts, remove dead code, with the help of 
+              GNU compiler warnings.
+
+02.07.29 BJH  Release 10.6
+
+              Add pnmtopclxl.  Thanks Jochen Karrer
+              <cip307@cip.physik.uni-wuerzburg.de>.
+
+              Add pnmstitch code; not working yet.
+
+              pnmmontage: add -data option.  Thanks Ben
+              <bem@mad.scientist.com>.
+
+              pnmtotga: put "image ID" in TGA output.
+
+              ppmtotga: Correct name to pnmtotga.
+
+              pnmcomp:  Add -opacity option.
+
+              pbmtog3: Add -nofixedwidth option.  Vladimir Nadvornik
+              <nadvornik@suse.cz>
+
+              ppmtopgm: upgrade to handle multi-image PPM file.
+
+              icontopbm: fix bugs with invalid input formats.  Thanks
+              Vladimir Nadvornik <nadvornik@suse.cz>
+
+              ppmtompeg: fix crash with logarithmic psearch algorithm and
+              non-power-of-2 search range.
+
+              configure: fix use of compiler other than cc.  Thanks
+              Ben <bem@mad.scientist.com>.
+
+              Fix Cygwin library build for default DLLVER.
+
+              Fix file handle problem with Configure on old Perl.
+
+              Don't use .defs file/run dlltool (Windows).
+
+02.07.14 BJH  Release 10.5
+         
+              Make library link on Solaris with GNU Ld work.  Thanks
+              Russel Winder <russel@russel.org.uk>.
+
+              Make Configure not depend on File::Temp.
+
+02.07.09 BJH  Release 10.4
+
+              Fix space after -I bug in Makefile.common, lib/Makefile.
+
+              Change a bunch of macros to upper case; avoid name collision
+              of round() with math library.
+
+              Configure detects broken gcc, sets -O2.
+
+              Configure detects jpeg headers not in default search path.
+
+02.07.02 BJH  Release 10.3
+
+              Add pamfunc.
+
+              Add pgmabel.  Thanks Volker Schmidt <lefti@voyager.boerde.de>.
+
+              pamslice: add -xmgr option.
+                       
+              pgmslice: upgrade to pamslice.
+         
+              pamarith: add -mean option.
+
+              pnmarith: upgrade to pamarith.
+
+              pnmtopng: add -palette option.  Functional copy from
+              "Pnmtopng" package.
+
+              pbmtoepsi: Add -dpi option.  Thanks Bill Cheng
+              <bill.cheng@acm.org>
+
+              tifftopnm: make -respectfillorder work.
+
+              pnmtopng: fix bugs in handling of text comment files.
+              Taken from "Pnmtopng" package.
+
+              pnmtopng: fix -hist option.
+
+              Cygwin build accomodations.  Thanks Charles Wilson 
+              <cwilson@ece.gatech.edu>.
+
+              Fix ppmtompeg build failure when JPEGLIB = NONE
+
+              Fix missing -R link options.
+
+02.06.14 BJH  Release 10.2
+         
+              Works with separate build directory.
+
+              pnmnorm: fix precision error causes whites to become black
+
+              Fix bug: Pbmpage needs math library
+
+02.06.07 BJH  Release 10.1
+
+              ppmmake: add -maxval option
+
+              pgmramp: add -maxval option
+
+              Add pamseq.
+
+              ppmcolors: base on pamseq.
+
+              pnmtotiff: Fix bug in -indexbits.
+
+              Fix runtime library paths for Darwin, Netbsd
+
+              installnetpbm: Fix infinite loop when you refuse manweb.conf.
+
+              installnetpbm: Add mode to mkdir for older Perl.
+
+              installnetpbm: Use BSD option on Cp if not GNU.
+
+02.06.01 BJH  Release 10.0
+         
+              Man pages replaced by web pages -- either private copies
+              or straight from Netpbm Central.  Documentation distributed
+              via Worldwide Web, not in the Netpbm source code tarball.
+
+              Reorganize source tree.  Combine 4 Netpbm libraries into 1.
+              Make merge build merge ALL programs into one.
+
+              Add pamendian.
+
+              Add pamstack.
+
+              Add pamtohdiff, hdifftopam.
+         
+              Add pbmtextps.  Thanks James McCann <jmccann@eskimo.com>.
+
+              Add pgmminkowski, pgmmorphconv.  Thanks Luuk van Dijk
+              <lvd@mndmttr.nl>
+
+              pnmtotiff: Add -indexbits option to allow fewer than 8 bits
+              per sample in apletted image.  Thanks Thomas Henlich.
+              <http://sourceforge.net/users/thenlich/>.
+
+              pnmtotiff: put zeroes in unused colormap entries.  Thanks
+              Thomas Henlich <http://sourceforge.net/users/thenlich/>.
+         
+              pbmtext:  Add -lspace option.  Thanks Denis <denism@cyberus.ca>.
+
+              ppmqvga: remove; appears to be obsoleted by Pnmquant.
+
+              pnmtops: remove setpagedevice by default.  Add -setpage option.
+
+              ppmtouil: rename to pamtouil, add transparency.
+
+              pamchannel: Add -tupletype option.
+
+              pstopnm: Add a showpage in case the EPS source doesn't have it.
+              Thanks "J. Milgram" <milgram@cgpp.com>.
+
+              pstopnm: Run Ghostscript directly instead of via a shell.
+              Some Windows environments don't have a Bourne-compatible shell.
+
+              pnmtotiff: Don't put bogus colormap in grayscale TIFF.
+              Thanks Thomas Henlich  <http://sourceforge.net/users/thenlich/>.
+
+              picttoppm, ppmtompeg, rletoppm: fix bug with invalid parameter
+              ("b" modes) on popen().
+
+              pnmtopng: fix bug with 'mayscale'.
+
+              pnmnorm: Fix bug with bvalue == 0.  Thanks "Blake, Chris" 
+              <chris.blake@windriver.com>
+
+              pnmtopng: restructure palette generation to make it
+              easier to read.
+
+              configure: Add --help.
+
+              Add Windows DLL versioning.  Thanks Charles Wilson 
+              <cwilson@ece.gatech.edu>.
+         
+              Add Nstring library, so Netpbm programs can use asprintf(), etc.
+
+02.03.15 BJH  Release 9.25
+
+              Add pamdice.
+         
+              pnmgamma: add -srgbramp.
+
+              ppmnorm, pgmnorm: replace with pnmnorm
+
+              ppmnorm: Read only a row at a time into memory.
+         
+              ppmnorm: Add -keephues option.
+
+              pnmtotiff: Add -miniswhite option.
+
+              pnmtopsnr: Read only a row at a time into memory.
+
+              Convert bmptoppm to bmptopnm.
+
+              ppmtopcx: Add -xpos, -ypos options.
+
+              pcxtoppm: Don't require seekable input.
+
+              pcxtoppm: Improve messages; add some PCX header validation.
+
+              ppmtowinicon: Use standard alpha mask (PGM image) instead of
+              PPM image (black/not black) for and file.
+
+              pnmpad: Add -width, -height, -halign, -valign options.
+              Thanks M. van Beilen <mvb@iradis.org>.
+
+              ppmhist: remove 100,000 color limit.
+
+              pnmnlfilt: works with multi-image streams.  Thanks 
+              "Steven M. Schultz" <sms@2BSD.COM>.
+
+              pcxtoppm: Fix bug with negative image position.
+
+              pnmtopsnr: fix unsigned integer bug giving wrong results on PGMs.
+
+              libpnm: fix bug: PAM functions write 16 bit samples wrong.
+
+              Tifftopnm: fix bug: transparency mask all wrong.  Thanks
+              Heikki Suonsivu <hsu@bbnetworks.net>.
+
+              Makefile improvements for cross compiling.  Thanks
+              "Maciej W. Rozycki" <macro@ds2.pg.gda.pl>.
+ 
+              Allow build with existing JBIG library instead of the
+              bundled one.  Thanks "Maciej W. Rozycki"
+              <macro@ds2.pg.gda.pl>.
+
+              ppmtompeg Makefile: include -R option where needed.
+              Thanks Hans Werner Strube <strube@physik3.gwdg.de>.
+
+              Add BSD/OS to configure program.  
+              Thanks seebs@plethora.net (Peter Seebach)
+
+              install uses supplied install.sh instead of an 'install program
+              it finds on your system.
+
+              configure: Fix missing newline bug for IRIX.
+
+02.01.27 BJH  Release 9.24
+
+              Add ppmsvgalib.
+              
+              pnmremap: Use full color resolution of input instead of that
+              of color map to do Floyd-Steinberg dithering.
+         
+              pnmremap: fix bug where Floyd-Steinberg dithering of very 
+              dark areas creates spots of maximal brightness.
+
+              ppmquant: fix same bug as pnmremap.
+
+              pnmscale: add -nomix option
+
+              rawtopgm: fix bug.  Thanks Joe Krahn <krahn@niehs.nih.gov>.
+              
+              pnmquant: replace with a Perl program that calls
+              pnmcolormap and pnmremap.
+
+              Fix bug: PAM library routines fail to read 2-byte samples.
+         
+              fix bug: install-dev doesn't install mappam.h.
+
+              configure sets up install paths.
+
+              make install does Ldconfig where required.
+         
+              pnmtops: Add "XxY" form of -dpi option.  Thanks Vladimir 
+              Nadvornik <nadvornik@suse.cz>
+
+              ppmtomap: rewrite to call the new pnmcolormap.
+
+              pnmscale: clean up code a little; now it appears to produce
+              somewhat better results -- don't know why.
+
+              exif.h: remove C++ comments
+
+              various fixes to please Irix compiler.
+
+              Change some "long" to "uint32n" so it works on 64 bit 
+              machines.
+
+02.01.04 BJH  Release 9.23
+
+              tifftopnm: fix bug from 9.22: always crashes.
+
+              xpmtoppm: fix bug from 9.21: XPM 3 files not recognized because
+              /* XPM */ comment read twice.
+                         
+              xwdtopnm: Use bitmap_pad instead of bitmap_unit on X11 pixmap
+              files with depth > 1.  Thanks "Ben Kelley" <ben_kelley@ubsw.com>.
+
+              pnmtopalm: fix bug: crashes with -colormap and non-color input.
+
+              ppmforge: fix bug: array subscripts out of bounds.  Thanks
+              Rob Menke <robmenke@mac.com>.
+
+              giftopnm: fix bug with extraneous "bogus character 0x00" message
+
+              tifftopnm: add -respectfillorder option.  Ignore FILLORDER
+              by default.
+
+              make install-dev: install shared library stub files (symlinks).
+              
+              ppmtogif: Fix bug: color resolution in wrong bits in logical
+              screen descriptor.  Thanks Elmue <elmue@gmx.de>.
+
+              Add -lz to Tiff programs; libtiff requires it now.
+
+              Add ppmcolors.
+
+              Add pnmremap.
+
+              Add pnmcolormap.
+
+              pnmtops: Include setpagedevice directive in Postscript output.
+              Thanks A Braunsdorf <ab@eas.purdue.edu>.
+
+              pnmtops: turn-to-fit logic works properly where paper is 
+              wider than tall.  Thanks A Braunsdorf <ab@eas.purdue.edu>.
+
+              giftopnm: cleanup
+         
+01.12.10 BJH  Release 9.22
+
+              Fix bug: pnm_luminosity_factor must be "extern" in pam.h
+
+              pbmtonokia: can create picture messages.  -txt, -net options.
+
+              tifftopnm: Accept invalid FILLORDER value - assume msb-to-lsb.
+
+01.12.01 BJH  Release 9.21
+
+              Add pamdeinterlace.
+
+              Add pnmquant.
+
+              pnmtops: Accept maxval > 255 input.
+         
+              Rename pnminterp to the more informative pnmstretch.
+
+              pnmstretch: convert from pnm to pam - pamstretch.
+
+              pamstretch: add -xscale, -yscale options
+
+              pbmtolj: Add -copies option
+
+              ppmtogif: Add secret -h option to make Latex2html configure
+              program work.
+
+              ppmquant: output maxval controlled by colormap maxval,
+              not input maxval.
+
+              pbmclean: Add -black and -white options.  Thanks
+              Michael Sternberg <sternberg@phys.uni-paderborn.de>.
+
+              xpmtoppm: Don't require input to start with a comment.
+              Thanks MINAMI <minami@chem.s.u-tokyo.ac.jp>.
+
+              xpmtoppm: Fix bug introduced with 9.20 with XPM 1 files.
+
+              pnmcut, pamcut: fix bug with cut that begins past right edge
+              of image.
+         
+              pamcut: Same fix as in pnmcut in 9.9.  Also fix black fill.  
+
+              pnmtotiff:  Process one row at a time instead of reading
+              entire image into memory.  Add -color, -truecolor.
+
+01.10.05 BJH  Release 9.20
+
+              ppmtogif: Add -nolzw option.
+
+              ppmntsc: do multiple images
+
+              pnmtojpeg: fix bug from 9.19 causing crash on most images.
+
+              ilbmtoppm: Correct cmyk -> rgb transformation.
+
+              ppmtompeg: Fix bug due to missing "breaks".  Thanks
+              Wolfgang Mueller <muellerw@pc7143.unige.ch>    
+
+              eyuvtoppm: fix memory leak, speed up by allocating working
+              storage only once.
+
+              libopt.c: replace strtok_r() with strtok() so it compiles on
+              Mac OS X.
+         
+01.09.18 BJH  Release 9.19
+
+              pnmtotiff: fix bug from 9.17 causing compile to fail
+              with old Tiff library
+
+              pnmtojpeg: Add -exif option.
+
+              ppmtojpeg: Change to pnmtojpeg; PBM/PGM input causes grayscale
+              output.
+
+              pnmtotiff: Handle LSB2MSB FILLORDER.
+
+              pnmtotiff: Fix -msb2lsb, -lsb2msb.  Used to do nothing but 
+              set FILLORDER tag value.
+
+              Make maxval of a PBM image read as a PGM image 255 instead of 1.
+              
+              libpbm: eliminate external data symbol pm_show_version
+              so it works with Windows.
+
+              Use subplatform-specific prefixes on Windows shared libraries.
+              Thanks Charles Wilson <cwilson@ece.gatech.edu>.
+
+01.09.04 BJH  Release 9.18
+
+              Fix bug from 9.17: -lm now needed in jpegtopnm link.
+
+              jpegtopnm: Add -dumpexif and -exif options.
+
+              pnmtotiff: Fix bug: 16 bit samples byte-swapped on little-
+              endian machines.
+
+              Remove C++ comments from exif.c
+
+01.09.03 BJH  Release 9.17
+
+              Add ppmtoneo, neotoppm.  Thanks Teemu Hukkanen <tjhukkan@iki.fi>.
+
+              pnmtotiff:  Add -flate, -adobeflate.  Thanks Peter Creath.
+
+              pnmindex: Fix bug with -size option.  Thanks 
+              André Majorel <amajorel@teaser.fr>
+
+              pnmflip: Fix memory leak, plus make special case for PBM
+              images that uses 12 times less memory.  Thanks
+              Stefan Roellin <stefan.roellin@switzerland.org>.
+          
+              tifftopnm: Fix incorrect interpretation of FILLORDER tag
+              causing incorrect output with 16 bit samples and
+              FILLORDER not msb2lsb.  Thanks Don Reid
+              <donr@cvs.agilent.com>.
+
+              tifftopnm: Fix PHOTOMETRIC_MIN_IS_WHITE case.
+              Thanks Don Reid <donr@cvs.agilent.com>.
+
+              giftopnm: Fix bug with malformed GIFs that end prematurely.
+
+              pbmtonokia: Convert C++ style comments to C style so Sun C
+              compiler can handle them.  Thanks Jon Parise <jon@csh.rit.edu>.
+
+              Install development package (header files, static libraries)
+              by default.  Add ability to build both static and shared
+              libraries.
+
+              Add merge/nonmerge to Makefile.config/configure, in place
+              of special make targets.
+
+              Fix Mac OSX build for gcc 3.0.  Thanks m-sekino@mb.kcom.ne.jp 
+              (Masanori Sekino)
+
+              Fix make install.hdr.  Thanks m-sekino@mb.kcom.ne.jp 
+              (Masanori Sekino)
+
+01.07.24 BJH  Release 9.16
+
+              Builds on Darwin/Mac OS.  Thanks m-sekino@mb.kcom.ne.jp 
+              (Masanori Sekino)
+
+              Add pbmtopsg3.  (Postscript G3 fax) Thanks Kristof Koehler 
+              <kristof@fachschaft.physik.uni-karlsruhe.de>
+
+              Add pbmtonokia.  Thanks Tim.Ruehsen@OpenMediaSystem.de.
+
+              Add ppmrainbow.  Thanks Arjen Bax <arjen.bax@cmg.nl>.
+
+              Add pamoil, as replacement for pgmoil.  Based on ppmoil by
+              Chris <cesheppa@midnightsun.uwaterloo.ca>.
+
+              ppmtogif:  Add -alpha option.
+
+              ppmtojpeg: fix bug: option takes as input filename.
+
+              xpmtoppm: fix bug: Bogus EOF failure.  Thanks 
+              "Dr. Larry Pyeatt" <pyeatt@redwood.cs.ttu.edu>.
+              
+              pnmtopng/pngtopnm: update to Release 2.37.5 of the pnmtopng
+              package.  Make -transparent option work like ppmtogif --
+              you can add an "=" before the color to specify "exact".
+              fix bug with background color and maxval = 65535.  Fix a 
+              raft of bugs in pnmtopng from Netpbm 9.15.
+
+              Remove Tiff library from the package.
+
+              Proper naming of AIX and HP-UX shared libraries.
+
+              giftopnm: Add color index to transparency message.
+
+              Add some -R link options in make files.
+
+              ppm3d: fix bug: ignores offset argument.
+
+              tifftopnm: fix bug: shifted right one pixel.
+         
+              pnmshear: remove sscanf so it works better with Cygwin,
+              convert to shhopt, clean up.
+
+              pgmcrater: Remove black vertical line at right
+              edge. Make craters wrap around the image (enables tiling
+              of image).  Thanks Arjen Bax.
+              
+              pgmtopbm: remove sscanf so it works better with Cygwin.
+              Thanks Arjen Bax.
+
+              Treat all white space, including DOS carriage returns,    
+              in color name db file as white space;  Thanks Arjen Bax.
+
+01.06.24 BJH  Release 9.15
+
+              Change format specs to state that sample values are
+              nonlinear instead of linear.
+
+              pnmtopalm/palmtopnm: Handle PalmOS 4.0 16 bit direct
+              color format.  Thanks  Bill Janssen  <janssen@parc.xerox.com>.
+
+              pnmgamma: Add CIE Rec 709 gamma correction option.
+
+              pnmgamma: Add -ungamma option
+              
+              ppmcie: Add -rec709 color system option as default so
+              that it produces true PPM output (per the new spec) and
+              carefully document what the program generates.
+              
+              ppmcie (work done by Andrew Hamilton
+              <Andrew.Hamilton@colorado.edu> in May 1999 but not
+              distributed):
+
+                 1. Corrected the XYZ -> RGB transformation;
+                 2. Eliminated the -interpwp option, a fudge which had been
+                    necessitated by the incorrect XYZ -> RGB transformation;
+                 3. Added a Gamma correction, missing in the original;
+                 4. Added the option to plot u' v' chromaticity instead of x y;
+                 5. Added options to suppress labels and/or axes.
+
+              pnmscale, pnmscalefixed:  Fix bug with unwanted -verbose
+              behavior.
+
+              pnmscale, pnmscalefixed: Add -reduce option.  Thanks
+              Christopher W. Boyd <cboyd@pobox.com>
+
+              ppmtoeyuv: Speed up by not freeing/reallocating storage for
+              each image.  Thanks "Steven M. Schultz" <sms@moe.2bsd.com>
+
+              ppmtoeyuv: Fix memory leak.
+
+              Eliminate pgm_pbmmaxval, ppm_pbmmaxval, and pnm_pbmmaxval
+              from libpgm, libppm, and libpnm.  'maxval' argument to 
+              pgm_readpgmrow() and ppm_readppmrow() already accomplishes
+              this.  pnm_readpnmrow() changed to do same.  external data
+              symbols like this do not work with Mingw.
+         
+              various changes to accomodate Mingw (native Windows)
+              and DLLs with Cygwin (Windows).
+
+              eyuvtoppm: rewrite.  Uses Netpbm libraries now.
+
+              pstopnm: Remove gratuitous 5% margin.  Add -equalpixels,
+              -imageheight, and -imagewidth options.
+
+              pnmtopng: Read only one row at a time, not the whole image,
+              into memory.  Do multiple passes through the (hopefully
+              fully cached) file.  This saves memory because pnmtopng's
+              internal format may use 96 times as much space per pixel 
+              as the file.
+
+              libpbm: Add pm_openr_seekable(), pm_seek(), pm_tell().
+
+              libppm: Add ppm_computecolorhash2(), ppm_computecolorhist2().
+
+              configure: fix bug with Solaris/Sun compiler.
+
+              Split pbmplus.h into pm_config.h and pbm/pm.h to prepare
+              for automatic generation of pm_config.h.  Move pm_*()
+              subroutines from libpbm1.c to new libpm.c for clarity.
+
+              Remove malloc.h from 411toppm.  malloc is included by
+              pm_config.h, in platform-dependent way.
+
+01.05.13 BJH  Release 9.14
+
+              fix bug in shhopt causing wild branches.
+
+              winicontoppm: Make alpha mask ("and") output PBM instead
+              of PPM; correct sense so white is opaque, black transparent.
+
+              ppmtoxpm: Add --alphamask option.  Remove 256 color limit.
+         
+              xpmtoppm: Add --alphaout option
+         
+              ppmtogif: Add "=" to -transparent option to specify exact
+              color.
+
+              configure: change /bin/perl to /usr/bin/perl.  Red Hat Linux
+              doesn't have /bin/perl.
+
+              pnm/Makefile: correct bugs in link.  Thanks J Scott Berg 
+              <jsberg@bnl.gov>
+
+              Make it build on Unixware.
+
+              Make it build on OpenBSD.
+
+              document color indexing and histogram functions.
+
+01.04.22 BJH  Release 9.13
+
+              ppmtogif: fix divide by zero
+
+              move much of README file into a new master man page, netpbm.1.
+
+              pnmcomp: add -align and -valign options.
+              
+              Add thinkjettopbm.  Thanks Eric Norum <eric.norum@usask.ca>.
+
+              Builds with Sun compiler.
+
+01.03.25 BJH  Release 9.12
+
+              Add 411toppm.  Thanks Steve Allen <sla@alumni.caltech.edu>.
+
+              pnmcrop:  add -sides option (does what was default
+              behavior until July 2000)
+
+              ppmtoeyuv: Use netpbm libraries, deal with multi-image
+              input.
+
+              Add color row color map and Floyd-Steinberg functions from
+              ilbm package to libppm.
+
+              ilbmtoppm, ppmtoilbm: replace with Ingo Wilken's version from
+              April 13, 1995.
+
+              jpegtopnm: fix crash with B&W JPEG input.
+
+              pnmcomp: fix bug: invalid output image when overlay image
+              is "higher" format than underlying image.
+
+              ppmchange: fix bug: wouldn't work with maxval != 255.
+
+              pnmtojbig: fix bug: it always says invalid maxval. 
+              Thanks Bill Davidsen.
+
+              pbmtext: fix bug: output is sometimes "not implemented"
+              because of uninitialized variable.
+
+              pnmpsnr: rewritten so as not to use Fiasco library.
+              Correctly handles maxval != 255.  Works with PAM.
+
+              Add IRIX to the configure program.  Thanks Neil Franklin 
+              <franklin@arch.ethz.ch>.
+
+              make files: add ZLIB_DIR and ZHDR_DIR variables to
+              Makefile.config.  Thanks Bill Janssen.  
+              <janssen@parc.xerox.com>
+
+              pcdindex: convert from csh to sh.  Thanks Steve McIntyre.
+
+01.02.20 BJH  Release 9.11
+
+              pnmtopalm: Handle 16 bit direct color format.
+
+              pnmtotiff: Add -xresolution and -yresolution options.
+              Thanks Tim Ruehsen.
+
+              Add error message to GNUMakefile for when GNU Make is too old.
+
+              pnmpsnr: fix bug: PGM files always compared equal.
+
+              libpbm: improve --version to reflect that libraries are
+              usually dynamically linked now, so it's the version of
+              libpbm, not the program itself.
+
+              pbmtext: add -space option.
+
+              asciitopgm: fix crash due to memcpy that should be memset.
+              Thanks Philipp Knirsch <pknirsch@redhat.com>.
+
+              pktopbm: fix numerous bugs.  Copied from Red Hat.  By
+              jcn <janneke@gnu.org> 1998.09.22.
+
+              pstopnm.csh: fix bomb when xres=yres.  This program is
+              obsolete (use pstopnm.c instead), but the patch was free,
+              so why not?  Copied from Red Hat.  By Nalin Dahyabhai
+              <nalin@redhat.com> 2000.02.14.
+
+              pnmtotiff: Make photometric for G3/G4 fax MINISWHITE 
+              instead of MINISBLACK.  Add -minisblack option.  Thanks
+              Eric Smith <eric@brouhaha.com>.
+
+              libppm/ppm_parsecolor: fix rounding error for very small
+              maxvals (e.g. PBM files -- maxval = 1).
+         
+              pnmtopalm, palmtopnm: minor updates
+              
+              bmptoppm: handle BMPs that use ColorsUsed instead of
+              bits per pixel to determine color map size.
+
+              bmptoppm: add -verbose option.
+
+              ppmquant: fix bug with maxval > 255 causing arithmetic
+              overflow and arbitrary colors in output.
+
+01.01.10 BJH  Release 9.10
+
+              giftopnm: add -alphaout.
+
+              ppmchange: Add -remainder option.
+
+              Add pnmtopalm, palmtopnm.  Thanks Bill Janssen 
+              <bill@janssen.org>.
+
+              Add pnmmontage.  Thanks Ben Olmstead <bem@mad.scientist.com>.
+
+              ppmtogif: Add -comment option.
+
+              ppmtogif: fix bug: created GIF89 when it should have created
+              GIF87.
+
+              giftopnm: fix bug in displaying of comment extensions.
+
+              jpegtopnm: Add -comments option.
+
+              ppmtojpeg: Add -comment option.
+
+              ppmtompeg: fix crash.  Thanks  Roger Southwick 
+              <rogers@mediaforte.com>
+
+              More work on separating source and build directories.
+              GNU Make 3.77 or better now required.
+
+00.11.20 BJH  Release 9.9
+
+              add ppmtolj: color HP Laserjet graphics (PCL).  Thanks
+              Jonathan.Melvin@heywood.co.uk.
+
+              ppmfade: add -mix option.
+
+              ppmhist: add -noheader option.
+
+              rawtopgm: Add --bpp, --maxval, and --littleendian options.
+
+              pnmindex: Add -noquant, -title options.
+
+              pnmtotiff: create 16 bits-per-sample Tiff files when 
+              maxval > 255 instead of crash.
+
+              tifftopnm: handle 16 bits-per-sample Tiff files.
+
+              pnmscale: Use floating point arithmetic instead of 12 bit
+              fixed point to reduce distortion at right and bottom edge of
+              large images with weird scaling factors.  Add pnmscalefixed,
+              which is the old fixed point pnmscale, which goes faster.  But
+              also fix bug in the fixed point version so the distortion 
+              isn't as bad.  Add -verbose option.
+
+              pnmcut: fix bug: right edge wrong or subscript out of bounds.
+              Thanks MURAKAMI Masahiko <muramasa@np.catv.ne.jp>,
+              Sven Over <sven.over@web.de>, Frederic Vivien 
+              <vivien@lcs.mit.edu>, Pete Weisz <pete@pw34.resnet.cornell.edu>.
+
+              xpmtoppm: fix reading of 4-character color codes; handles
+              "NONE" color (transparent background); add -v.  Thanks
+              Martin Vermeer <martin.vermeer@hut.fi>.
+
+              ppm/Makefile: fix bug: ppmtompeg, hpcdtoppm not installed.
+              Thanks Mike Castle <dalgoda@ix.netcom.com>.
+
+              ppmpspread: fix bug: invalid memory reference crash.  Thanks
+              digger <jfk666@poczta.onet.pl>, john joseph iii casey 
+              <jjcasey@midway.uchicago.edu>.
+
+              ppmchange: fix bug: every other argument pair ignored.
+              Thanks Sven Over <sven.over@web.de>.
+
+              Fix error message in pXmmerge (no pm_error()).  Thanks
+              Pete Weisz <pete@pw34.resnet.cornell.edu>, 
+              <g031w503@soft.iwate-pu.ac.jp>
+
+              libppm: add /usr/X11R6/lib/X11/rgb.txt as default rgb.txt file.
+              Thanks ceder@lysator.liu.se (Per Cederqvist).
+
+              Replace hpcdtoppm version 0.3 (1992) with 0.6 (1994).  Add
+              pcdindex.
+
+              Build fixes for Tru64.  Thanks Phil Benchoff <benchoff@vt.edu>.
+
+              Makefile.config: option to not strip binaries on install.
+
+00.09.01 BJH  Release 9.8
+
+              jpegtopnm: Add -adobe, -notadobe options.
+
+              ppmchange:  Add -closeness.
+
+              giftopnm: report transparency information.
+
+              jpegtopnm: Accept single-hyphen options.
+
+              Make it build on DJGPP.
+
+00.08.12 BJH  Release 9.7
+
+              Add PAM format, Pamchannel, Pamtopnm.
+
+              sgitopnm: add -channel option to access more than 3 channels.
+              Thanks Smarasderagd.
+         
+              pnmcut: Add -pad option
+
+              ppmtobmp: change default from -os2 to -windows.
+
+              pnmcut: fix bug: height argument misinterpreted.
+
+              ppmquantall: fix bug: don't crop white borders off images
+
+              yuvtoppm: fix bugs: don't depend on bigendian representation
+              of integers.  reject odd-width images.
+
+              ppmtoyuv: fix bug: reject odd-width images.
+
+              anytopnm: fix bug: required nonstandard shell feature.
+
+              giftopnm: fix bug: when image consists of two gray colors,
+              program converted them to black or white and created PBM
+              file.  Thanks Smarasderagd.  Also fix memory leak.
+
+              Make changes since 9.2 build on Cygwin.
+
+00.07.12 BJH  Release 9.6
+
+              Add pnmtofiasco, fiascotopnm, psnpsnr.  Thanks to Ullrich
+              Hafner.
+
+              Make Pnmcrop use a temporary file instead of huge amounts
+              of memory.
+
+              bmptoppm: fix crash when OS/2 BMP file has > 8 bits per pixel.
+
+              anytopnm: fix bug (from 9.0) wherein program almost
+              always crashed.  Add gzip, bzip, bzip2 capability.
+              Thanks Charles Howes.
+
+              parallel.c: Work around SunOS libc problem.
+
+              Define some newer libtiff macros so it compiles against
+              older libtiff.
+
+00.07.01 BJH  Release 9.5
+
+              Extend formats to allow multiple images per file.  Add
+              -allimages option to pnmfile.  Add pnmsplit.  Extend
+              pnmtops.
+
+              Add pbmtowbmp, wbmptopbm.  Thanks Terje Sannum.
+
+              ppmtobmp: Add 24 bit (truecolor) capability.  Remove Release 8.3
+              colormap size update.
+
+              pnmcut: easier, more expressive syntax for specifying what
+              to cut.
+
+              pnminterp: handle maxval != 255, convert to use Netpbm
+              libraries.
+
+              Translate pstopnm from Csh to C, eliminate dependency
+              on the 'bc' program.
+
+              Fix bug in tiff library build which caused null soname.
+
+              Add optParseopt2() to shhopt.a so you can use long options
+              with one hyphen instead of two.
+
+              giftopnm: fix bug with variable used before set.  Fix bug
+              (coding error -- 0=>i).  Unknown impact.
+
+              bmptoppm: fix bug with 24 bit (truecolor) Windows BMPs.
+
+              xwdtopnm: fix one more bug with bits_per_item <> bits_per_pixel.
+
+              Fix ppmtompeg build bug with static libraries.
+
+              Make build clean with gcc -ansi (albeit with some files
+              that need extensions declaring the _BSD_SOURCE etc.).
+
+00.06.04 BJH  Release 9.4
+
+              Rebase pnmtopng, pngtopnm on Pnmtopng 2.37.4.
+
+              pbmtolj: fix bug where blank lines get discarded.  Thanks
+              Charles Howes.
+
+              ppmtompeg: fix bug with "PNM" format files with maxval != 255.
+              Get rid of built-in PPM file parsing.
+
+              Fix 'make install' where mkinstalldirs is not found.
+
+              Fix bug where rle_global.c would not compile with GNU C 
+              Library 2.
+
+00.06.01 BJH  Release 9.3
+
+              pnmfile: check for file size error.
+
+              ppmhist: handle larger maxvals, image sizes
+
+              xwdtopnm: Use color map with DirectColor to fix wrong color
+              bug on some DirectColor xwds.
+
+              xwdtopnm: Correct bug with 24/32 DirectColor LSBfirst xwds.
+
+              Add pXmcheck() library function.
+
+              Add leaftoppm and ppmtoleaf.  Thanks Bill O'Donnell.
+
+              Add winicontoppm and ppmtowinicon.  Thanks Lee Benfield 
+              <lee@benf.org>.
+
+              Add pgmslice.  Thanks to Jos Dingjan.
+              
+              Include subset of RLE library in the package.
+
+              stamp-date doesn't rely on whoami.
+
+              Make file fixes to accomodate more install programs.
+         
+              Replace tmpnam() with mkstemp().
+
+              Add pXm_init() into all programs that didn't have it.
+
+00.05.15 BJH  Release 9.2
+
+              Shared libraries now build properly for Solaris, SunOS, NetBSD.
+
+              Add jbigtopnm, pnmtojbig.  Thanks to Markus Kuhn.
+
+              Add pnminterp, pnminterp-gen by Russell Marks.
+
+              Add pbm_writepbmrow_packed() and pbm_readpbmrow_packed() to
+              libpbm.
+
+              ppmdither: fix bug with input maxval != 255.  Make output
+              maxval the LCM of the requested numbers of primary levels.
+
+              xwdtopnm: works with files where there aren't an integeral
+              number of pixels per storage unit (e.g. 24 bits per pixel)
+              
+              Add some missing pXm_init()
+
+              Make pXmmerge source code automatically generated.
+
+00.05.06 BJH  Release 9.1
+
+              Add pbmtoppa (renamed from pbm2ppa, renamed from print-pbm).
+              Thanks Tim Norman.
+
+              Add pbmpage.  Thanks Tim Norman.
+
+              Add pbmtomda, mdatopbm.  Thanks John Elliott.
+
+              Replace gemtopbm with gemtopnm.  Thanks to John Elliott.
+
+              Add ppmntsc: change colors to those acceptable for ntsc or pal.
+
+              Rename old ppmntsc to ppmtv.
+
+              pbmtolj: Add compression (-delta, -packbits, -compress) by
+              Dave Platt
+
+              Look for both /usr/lib/X11/rgb.txt and /usr/openwin/lib/rgb.txt
+              by default.  Improved error messages if file not found.
+
+              pbmtext: renders character codes 0x80-0xff and 0x00-0x1f as
+              whatever the font says, rather than always blank.  Thanks
+              Helge Oldach.
+
+              Fix bug in parsing of rgb.txt file in ppm_colorname().
+
+              Add optional static library build to make files.
+
+              Fix a bunch of build bugs for Solaris, SunOS.  Still not all 
+              the way there.  Thanks Richard Curnow, Philippe Brieu, 
+              Benjamin Kuit.
+
+              Make it build on Cygwin.  Thanks Pierre Humblet.
+
+              Use rm -f;ls instead of ls -sf in make files; some systems don't
+              have ln -f.
+              
+00.04.15 BJH  Release 9.0
+
+              Add the 16-bit-per-sample format for maxval > 255.
+              Change size of samples in the library interface from 8
+              bits to 32 bits.  Library write routines now create the
+              new 16 bit format instead of plain format when you
+              request a maxval > 255 and not 'forceplain'.  Make all
+              programs read the new format, and all programs that
+              convert to PNM from a >8 bit input generate it instead
+              of failing or normalizing.  Make pnmdepth generate it.
+
+              pnm_readpnminit(), etc. fails if you request a maxval >
+              65535 and not 'forceplain'.  It used to generate plain
+              format in that case, but you couldn't actually specify    
+              a sample value > 255.
+
+              Add pnmtorle and rletopnm from the Army High Performance 
+              Computing Research Center.
+
+              add ppmcolormask - creates a mask of areas of a certain 
+              color in an image.
+
+              anytopnm: fix infinite loop
+              
+              pbmtext:  Ignore non-8-bit characters in bdf files instead
+              of crashing.
+
+              ppmdither: fix crash with large dithering matrix dimensions.
+
+              Rename ppmtompeg/headers/search.h to motion_search.h to avoid
+              possible confusion with the OSF system file search.h
+         
+              Fix erroneous shhopt.h dependency in build.
+              
+00.04.03 BJH  Release 8.4
+
+              Add ppmtompeg, adapted from Berkeley's mpeg_encode.
+         
+              Add eyuvtoppm and ppmtoeyuv, and vidtoppm, from Berkeley
+              mpeg tools.
+
+              Add ppmfade, adapted from Wesley C. Barris' pbmfade. 
+
+              Add ability to extract the alpha channel to tifftopnm,
+              tgatoppm, and ximtoppm.  (It's already in pngtoppm,
+              and still missing from ilbmtoppm).
+
+              pnmtotiff: Change default compression to none, due to
+              removal of LZW capability from Tiff library.
+
+              Make merge build use symbolic links instead of hard links.
+
+              Include dependent libraries in the link of the
+              libraries.  This is necessary on some systems, and a
+              good idea on others.
+
+              Use strerror() instead of sys_errlist[] everywhere.  If
+              some systems do not have the former, we need to do some
+              work, because strerror() was already used in some
+              places.  We do have a report of a BeOS system with no
+              sys_errlist[].
+
+00.03.24 BJH  Release 8.3
+
+              Add ppmshadow, by John Walker <http://www.fourmilab.ch/>,
+              dated 1997.08.15.
+
+              Add ppmlabel, by John Walker, dated June 1995.
+
+              Add ppmcie by John Walker, dated September 1994.
+
+              Add character drawing routines by John Walker to libppm.
+
+              Add sbigtopgm by John Walker, dated January 1998.
+
+              Handle BMP file color map size parameter in ppmtobmp, bmptoppm.
+              Thanks Marc Moorcroft.
+
+              Rewrite make files, fix lots of make install bugs.
+
+00.03.20 BJH  Release 8.2
+
+              Add ppmtojpeg and jpegtopnm.
+
+              Rename pnmnoraw to pnmtoplainpnm.
+
+              Add CMYK capability to tifftopnm.
+ 
+              Major make file rewrite, especially making install work.
+              Pnmmerge is no longer the default.  Shared libraries are.
+ 
+              Add pnmtotiffcmyk.  Written by Andrew Cooke  (Jara Software)
+              jara@andrewcooke.free-online.co.uk
+
+00.03.02 BJH  Release 8.1
+
+00.03.02 BJH  Add pnmtopng and pngtopnm.  I got these from 
+              ftp://ftp.au.netbsd.org/pub/NetBSD/packages/distfiles
+              today.  Release 2.37.3.  I added an "unsigned" and
+              changed the type of 'scaleval' to quiet compiler warnings.
+
+00.03.01 BJH  Fix xwdtopnm interpretation of 16 bit TrueColor files.
+              Thanks to Martin Kroeker, mk@daveg.com.
+
+99.09.23 BJH  Update xbmtopbm to recognize newer xbm format.
+
+
+
+
+CHANGES TO NETPBM THROUGH MARCH 1994
+------------------------------------
+
+Functional changes to Netpbm since 13 October 1993.
+Minor bug fixes and compatibility fixes are not documented in this file.
+
+PBM
+
+libpbm1.c	strstr() added to libpbm1.c.
+libpbm5.c	BDF font support added.
+pbmtext		BDF font support added.
+pbmto4425	New filter.
+pbmtoln03	Command line parsing changed to Pbmplus standard.
+
+
+PGM
+
+pgmnoise	New filter.
+
+
+PPM
+
+picttoppm	Updated
+ppm3d		New facility.
+ppmchange	New filter.
+ppmdim		New filter.
+ppmflash	New filter.
+ppmmix		New filter.
+ppmntsc		New filter.
+ppmqvga		Option parsing changed to Pbmplus standard.
+ppmshift	New filter.
+ppmspread	New filter.
+ppmtoxpm	Prototypes added.
+xpmtoppm	Prototypes added.
+ilbmtoppm	Updated.
+ppmtoilbm	Updated.
+
+
+PNM
+
+pnmtoddif	New filter.
+pnmhistmap	New facility.
+pnmtops		New option (-nocenter) added.
+
+
+Functional changes to Netpbm since 7 December 1993.
+Minor bug fixes and compatibility fixes are not documented in this file.
+
+PGM
+
+asciitopgm	New filter.
+fitstopgm	Replaced by fitstopnm.
+pgmtofits	Replaced by pnmtofits.
+pgmtopbm	Upgraded.
+pgmkernel	New filter.
+
+PPM
+
+ppmchange	Upgraded.
+xvminitoppm	New filter.
+
+PNM
+
+pnmalias	New filter.
+pnmtofits	Replacement for pgmtofits.
+fitstopnm	Replacement for fitstopgm.
+pnmtosgi	New filter.
+sgitopnm	New filter.
+pstopnm		New filter.
+
+
+
+CHANGES BETWEEN PBMPLUS AND THE ORIGINAL NETPBM
+-----------------------------------------------
+
+The following is new in Netpbm (compared to Pbmplus):
+
+PBM
+
+pbmtext		BDF font support added.
+
+pbmto4425	Display on an AT&T 4425 Ascii terminal.
+
+pbmtoascii	A new improved version.
+
+pbmtoln03	Convert to DEC LN03+.
+
+pbmtolps	Fast PostScript creator.
+
+pbmtopk		Conversion to/from a packed (PK) format font.
+pktopbm
+
+pbmclean	Flip isolated pixels.
+
+pbmpscale	Enlarge pbm image with edge smoothing.
+
+
+PGM
+
+asciitopgm	Convert an ascii image into pgm.
+
+pbmtopgm	Convert pbm to pgm by averaging areas.
+
+rawtopgm	Handles input files without specification of the file size,
+		assuming the input image is quadratic. It also supports a
+		-tb (top bottom flip) option.
+
+bioradtopgm	Conversion utility for files created by Biorad confocal
+		microscopes.
+
+spottopgm	Convert SPOT satellite images to pgm.
+
+pgmkernel	Generate a convolution kernel.
+
+pgmnoise	Create a pgm file with random pixels.
+
+
+PPM
+
+bmptoppm	Conversion to/from windows bitmap format.
+ppmtobmp
+
+ppmtogif	Updated version.
+giftoppm	Removed (see giftopnm).
+
+ppmtoilbm	Updated version.
+ilbmtoppm
+
+picttoppm	Updated version.
+ppmtopict
+
+ppmtoxpm	Updated version, which supports xpm version 3.
+xpmtoppm
+
+ppmtomap	Extract all colors from a ppm file.
+
+ppmtomitsu	Convert to Mitsubishi S340-10 printer format.
+
+xvminitoppm	Convert an XV thumbnail picture to ppm.
+
+ppmtoyuvsplit	Conversion to/from YUV triplets. (MPEG / JPEG).
+yuvsplittoppm
+
+ppm3d		Create a red/blue stereo image.
+
+ppmbrighten	Change image saturation and value on an HSV map.
+
+ppmchange	Change all pixels of one color to another in a portable pixmap
+
+ppmdim		Dim a ppm file down to total blackness.
+
+ppmdist		Simplistic grayscale assignment for machine generated
+		color images.
+
+ppmflash	Brighten a picture up to complete white-out
+
+ppmmix		Blend together two portable pixmaps.
+
+ppmnorm		Normalize the contrast in a portable pixmap.
+
+ppmntsc		Make a portable pixmap look like taken from an American TV.
+
+ppmqvga		Eight plane quantization.
+
+ppmshift	Shift lines of a portable pixmap left or right by a random amount.
+
+ppmspread	Displace a portable pixmap's pixels by a random amount.
+
+ppmtopjxl	Convert a ppm file into an HP PaintJet XL PCL file.
+
+
+PNM
+
+pnmtops		New option (-nocenter) added.
+
+pnmtofits	Replacement for pgmtofits/fitstopgm
+fitstopnm
+
+pnmtosgi	Conversion to/from sgi image format.
+sgitopnm
+
+pnmtosir	Conversion to/from Solitaire image recorder format.
+sirtopnm
+
+giftopnm	Replaces giftoppm. Examines the input image and produces
+		a pbm, pgm, or ppm output.
+
+pstopnm		Convert PostScript to pnm. Requires Ghostscript.
+
+zeisstopnm	Conversion utility for files created by Zeiss confocal
+		microscopes (the old standard).
+
+pnmalias	Anti aliasing filter.
+
+pnmcomp		Composite two portable anymaps together.
+
+pnmcrop		New options added.
+
+pnmpad		Add borders to anymap.
+
+
+LIBTIFF
+
+A new release of libtiff is included. Please read its supporting
+documentation.
+
+
+CHANGE LOG FROM PBMPLUS
+-----------------------
+
+Changes since the 30oct91 patch version:
+
+    Fixed uninitialized variable in ppmtotga.  (John Walker)
+    Added pgmcrater, ppmforge, ppmtoacad, sldtoppm.  (John Walker)
+    Slight change to the p?mmerge.c front-ends to allow for main programs
+      that return instead of exitting.
+    Minor clarifications to the pnmconvol man page.
+    Fixed xwdtopnm to read some 16-bit True/Direct files. (David Elliott)
+    Fixed uninitialized variables in pnmtotiff.  (Larry Rosenstein, Bayles Holt)
+    Added a couple of checks for \r while reading whitespace. (Larry Rosenstein)
+    Removed all the BROKENPUTC stuff.  Now we ignore all return values from
+      putc(), and check ferror() in pm_close().  Added pm_close() calls to
+      many of the filters.
+    Fixed pnmdepth to check for too-large newmaxvals.  Improved rounding
+      in pnmdepth and PPM_DEPTH macro.  (Tom Lane)
+    Minor fix to ppmtouil.  (Mohsen Banan)
+    Added new Imakefiles.  (Rainer Klute)
+
+Changes since the 05oct91 X11R5 contrib tape version:
+
+    Fixed minor SysV config error in pbmplus.h.  (Tom Lane)
+    Fixed tifftopnm so that BITSPERSAMPLE and SAMPLESPERPIXEL default
+      correctly.  Fixed possible bug in tgatoppm line-interleaving code.
+      (Arthur David Olson)
+    Fixed tifftopnm so that colormapped files are read correctly.
+      (PauL Drews, Mike Wade)
+    Corrected use of DefaultRGBDatabase / RGB_DB for imake sites.
+      (Randal L. Schwartz)
+    Bugfix to pnmtops color PostScript in -rle mode.  (Angus Duggan)
+    Added auto-turning to pnmtops.
+    Added run-length encoding to ppmtotga.
+    Space optimization to pgmoil.
+
+Changes since the 27sep91 comp.sources.misc distribution:
+
+    Fixed spelling error in giftoppm.  Fixed ppmrelief to not shrink the
+      image by 2 rows and columns.  Minor fix to pgmramp.  Fixed off-by-one
+      error in pnmtoxwd.  Man page fix for pnmgamma.  (Arthur David Olson)
+    Converted ANSI trigraphs in ppmtosixel into good old octal.  (Jeff Glover)
+    Fix to 24/32 bit case in rasttopnm.  (Behr de Ruiter)
+    Float/double portability fix to libppm4.  (Bruce Holmer, Ronald Khoo)
+    Fixed typo in compat.ksh.  (Larry Virden)
+    Fixed int/short incompatibility in tifftopnm.  (Salik Rafiq)
+
+Changes during the extended beta test period, starting on 15jan91:
+
+    Lots of fixes from: Anthony A. Datri, Arthur David Olson, David Brooks,
+      David Elliott, Doug Claar, Duncan Sinclair, Francois Pinard, Gerard
+      Leurs, Jim Hanko, Ken Laprade, Klaus U. Schallhorn, Markus Bolz, Mike
+      Hench, Philip Gladstone, R C Smith, Selden E. Ball, Jr., Stephen Uitti,
+      Steve Allen, Tom Lane, update.kpj-jaakkola@athena.dsv.su.se,
+      Charles Karney, Unmesh Agarwala, Ed Pendzik, Juha Sarlin, Tom Tulinsky,
+      Phillip Smith, Lai-King Mau, David Koblas, Mark Donovan.
+    Added a global -version flag.
+    Added bunches of statics and prototypes.  Now compiles with zero
+      warnings under gcc -ansi -pedantic.
+    Changed #ifdef __STDC__ to #if __STDC__, since some non-compliant
+      compilers define it as 0.
+    Changed pm_message and pm_error to be varargs routines.  Added a
+      portable version of vfprintf for those systems which don't have it.
+    Removed the option of not compiling the pgm and ppm parts.  Very few
+      people used it, and it added amazing complexity to the pnm programs,
+      turning them into maintenance nightmares.
+    Merged pbmpaste into pnmpaste.
+    Merged pgmtops and ppmtops into pnmtops.
+    Added auto-scaling and dpi / page size flags to pnmtops.
+    Changed the interpretation of bits in pbmlife to conform with other
+      tools.
+    Changed xwdtopnm to ignore the pixel number in the xwd color structure.
+    Added a -pseudodepth flag to pnmtoxwd.
+    Updated tifftopnm for libtiff 2.4.
+    Added many option flags to pnmtotiff.  (J.T. Conklin)
+    Added support for X11R5's new color specifiers rgb: and rgbi:.
+    Added pgmtexture.  (James Darrell McCauley)
+    Added ppmtopj, pjtoppm, and ppmdither.  (Christos Zoulas)
+    Added ppmtotga.  (Mark Shand)
+    Added ppmtosixel.  (Rick Vinci)
+    Added pbmtoatk and atktopbm.  (Bill Janssen)
+    Added ppmtoyuv and yuvtoppm.  (Marc Boucher)
+    Fixes to picttoppm.  (George Phillips)
+    Added 24-bit support to ilbmtoppm.  (Mark Thompson)
+
+Changes since the X.V11R4 / comp.sources.misc distribution of 22nov89:
+
+    Added pgmramp, pgmedge, pgmtoppm, rgb3toppm, ppmtoxpm, pnmgamma,
+      ximtoppm, pgmtofs, picttoppm, ppmtopict, ppmquantall, anytopnm,
+      pi1toppm, ppmtopi1, sputoppm, spctoppm, pbmto10x, ppmtoicr, ppmmake,
+      xpmtoppm, ppmtopuzz, ppmtouil, ybmtopbm, pbmtoybm, lispmtopgm,
+      pgmtolispm, pbmtogem, pi3topbm, pbmtopi3, pbmtoepson, pbmtoplot,
+      pbmtozinc, pbmtext, pnmnoraw, pnmmargin, pnmfile, pnmindex,
+      ppmtorgb3, gouldtoppm, pgmbentley, pgmoil, ppmrelief, pnmtotiff,
+      ppmtopcx.
+    Merged some filters:
+      rasttopbm and rasttoppm into rasttopnm;
+      pbmtorast and ppmtorast into pnmtorast;
+      xwdtopbm and xwdtoppm into xwdtopnm;
+      pbmtoxwd and ppmtoxwd into pnmtoxwd.
+    Promoted some filters:
+      pcxtopbm to pcxtoppm;
+      ppmarith to pnmarith;
+      ppmconvol to pnmconvol;
+      ppmcscale to pnmdepth;
+      ppmrotate to pnmrotate;
+      ppmscale to pnmscale;
+      ppmshear to pnmshear;
+      ppmsmooth to pnmsmooth;
+      tifftopgm to tifftopnm - new version based on Sam Leffler's libtiff.
+    Bugfixes to pbmtoicon, ppmtops.
+    The Makefiles now have a "merge" option.
+    All flags are now case-insensitive.
+    Added $(MAKE) stuff to Makefile.
+    Changed pnmsmooth from a csh script to a sh script.
+    Made macro use in pbmtox10bm and pbmtoxbm more portable.
+    Moved compataliases to compat.csh, and added compat.ksh.
+    Made ppmtoilbm less Amiga-specific.
+    Added -headerskip and -rowskip flags to rawtopgm.
+    Enhanced rasttopnm to interpret 8-bit rasters with no colormap as grayscale.
+    Changed sscanf %g to %f - some systems can't handle %g on input.
+    Added -expand flag to pbmmask.
+    Speedup to pnmflip - don't buffer if possible.
+    Added color-name-to-value routine to ppm - uses X11's rgb.txt if present.
+    Updated Imakefile support to reflect X.V11R4.
+    Removed picttopbm.
+    Improved pnmcut argument syntax so that negative coords work like pnmpaste.
+    Added "magic" file, for use with the "file" program.
+    40% speedup for pgmnorm from Robert Stockton (rgs@cs.cmu.edu).
+    Fixed long-standing bug involving colormaps on SPARCstations when
+      compiled with gcc -- had to do with passing structs by value.
+    Removed the -x flag from pnmtorast -- it's not really needed.
+    Fixed subtle bug in the pnm reading code that caused pnmcat to blow
+      it on images that differed greatly in width or height.
+    New version of giftoppm that handles the GIF89a standard, and doesn't
+      use fseek.
+    Fixed fitstopgm to handle three-axis images, such as the Hubble pix.
+    Xwdtopnm and pnmtoxwd finally handle byte-order properly.
+    Added -xysize flag to pnmscale.
+    Added conditional ANSI function prototypes to library routines.
+    Added -noantialias flag to pnmrotate and pnmshear.
+    Removed the TIPS file.  No one ever sent in any new tips, so I just
+      moved the few I had into the relevant man pages.  That's probably
+      where they belonged in the first place.
+    Added justification flags to pnmcat.
+    Added -map flag to ppmquant - user-specifiable colormap.  Also, the
+      Floyd-Steinberg error diffusion finally works right.
+    Added -map flag to pgmtoppm.
+    Added DirectColor support to xwdtopnm and pnmtoxwd.
+    Speedup to pgmtolj from Arthur David Olson: avoid sending whitespace.
+    Fix to pbmtogo from Bo Thide': 2D compression now works.
+
+Patch 1 to the X.V11R4 / comp.sources.misc distribution of 22nov89:
+
+    Fixed bug in pgmtops -rle.
+
+Changes since the alt.sources distribution of 13sep89:
+
+    Small corrections to ppmtorast, pgmtops.
+    Moved pbm/tifftopbm to pgm/tifftopgm - it now handles grayscale TIFF files.
+    Fixed tifftopgm to handle non-native byte order.
+    Changes to tifftopgm to handle bogus AppleScan TIFF files, to have
+      better command syntax, and to use stdio.
+    Optimizations to xbmtopbm, pbmtoxbm, and pbmtox10bm, courtesy of
+      Juha Sarlin, to make them go about three times as fast.
+    Optimization to pgmtops and ppmtops to make them go three times as fast.
+    Optimization to pnmcrop.
+    Added PBMPLUS_BROKENPUTC defines in pbmplus.h to handle systems (such as
+      ULTRIX) which have broken putc() macros.
+    Rewrote ppmscale, pnmcat, and pgmhist to operate line-by-line, instead
+      of reading in the whole image.
+    Rewrote pnmflip to keep only one copy of the image in memory.
+    Added pgmtofits, courtesy of Wilson H. Bent, plus bugfixes to fitstopgm
+      and a patch to giftoppm to handle black&white GIF files.
+    Added picttopbm and rawtopgm.
+    Fixes to xwdtoppm and ppmtoxwd so they compile with SunOS cc as well as gcc.
+    Another small change to ppmtoxwd having to do with colormap size.
+    Changed macptopbm's -headersize flag to be -extraskip.
+    Changed tgatoppm to read color values as BGRA instead of ARGB; the Targa
+      documentation is apparently wrong about the order.
+    Some changes to the Makefiles, partially to work around bugs in gnumake.
+    Got g3topbm working, and added pbmtog3, courtesy of Paul Haeberli.
+    Added some pixrect work-alike code so that rasttopbm, pbmtorast, rasttoppm,
+      and ppmtorast can be used on non-Sun systems.  This also provides a
+      final solution to the persistent byte- and bit-order problems on 386's.
+    Moved the SYSV-checking #ifdefs to *after* the include of pbm.h, which
+      defines SYSV.
+    Made all the #else's and #endif's ANSI-compliant.
+    Added manual pages for libpbm, libpgm, libppm, and libpnm, courtesy
+      of Tony Hansen.
+    Changed man page installation so that pages from different sections
+      can go in different directories.
+    Fixed Imakefiles.
+
+Changes since the expo.lcs.mit.edu FTP distribution of 06sep89:
+
+    Added #ifdefs to pnm/libpnm3.c to allow the PBM-PNM-only configuration.
+    Small corrections to TIPS, pnm/Makefile, pnm/Imakefile, ppm/ppmrotate.1,
+      ppm/ppmshear.1, ppm/ppmtoilbm.c, pbm/xwdtopbm.c, ppm/xwdtoppm.c,
+      ppm/ppmtoxwd.c, ppm/ppmtoxwd.1, pbm/x11wd.h.
+
+Changes since the comp.sources.misc distribution of 31oct88:
+
+    Added pbmreduce, pbmlife, pbmmask, and pbmupc.
+    Added gemtopbm, tifftopbm, pcxtopbm, pbmtogo, mgrtopbm, pbmtomgr,
+      cmuwmtopbm, pbmtocmuwm, g3topbm, and pbmtobg.
+    Minor bugfix to pbmtolj.
+    Slight restructuring of most of the programs to use vastly less memory.
+    Various other minor optimizations.
+    Fixed pbmtorast and rasttopbm to handle byte-swapped big-endian 386 boxes.
+    Slight changes to argument syntax of pbmcrop, pbmmake, pbmreduce.
+    Moved to the new PGM package: pbmtops (which now produces Conforming PS).
+    Moved to the new PPM package: giftopbm.
+    Moved to the new PNM package: pbmcrop pbmcut pbmenlarge pbminvert.
+    Consolidated into a single pnmflip tool: pbmfliplr pbmfliptb pbmtrnspos.
+    Consolidated into a single pnmcat tool: pbmcatlr pbmcattb.
+    Added compataliases script for upward compatability with changed tools.
+    Removed xxxtopbm.
+    Added a -headersize flag to macptopbm, to help get around annoying
+      problems in MacPaint file format.
+    Added the RAWBITS compilation-time option, to use a more compact and
+      much faster (but less portable) external format.
+    Removed the CBM format - use compress(1) and / or RAWBITS instead.
+    Pbmpaste (and the new pnmpaste) now accepts negative x and y coords,
+      which are interpreted relative to the right and bottom sides.
+    Changed all programs to accept a "-" file argument as meaning standard
+      input.
+    Removed pbmtox10wd, since it was never very useful (X10 doesn't have xwud).
+    Added Imakefiles, for X11 types to use.
+
+Changes since the X.V11R3 distribution of 31aug88:
+
+    The cbm format has been revised to support run-length encoding.
+    Pbmtops now does run-length encoding.
+
+Major changes since the X.V11R2 distribution of 28mar88:
+
+    The pbm format now has a "magic number".
+    New conversion filters: brushtopbm, giftopbm, pbmtolj, pbmtomacp,
+      pbmtoxwd, and pbmtox10wd.
+    Icontopbm converter has a better parser -- it knows to skip over
+      any extraneous comments at the beginning of the icon file.
+    Pbmtops generates a different PostScript wrapper program -- it should
+      handle huge bitmaps better.
+    Xwdtopbm now handles byte-swapping correctly.
+    Pbmmake takes a flag to specify the color of the new bitmap.
+    Pbmpaste now implements 'or', 'and', and 'xor' operations as well
+      as the default 'replace'.
diff --git a/doc/INSTALL b/doc/INSTALL
new file mode 100644
index 00000000..78cf1ebf
--- /dev/null
+++ b/doc/INSTALL
@@ -0,0 +1,248 @@
+HOW TO INSTALL NETPBM
+---------------------
+
+For most typical platforms, you can just do
+
+    configure
+
+followed by
+
+    make
+
+To build all the programs.  Then
+
+    make package
+
+to gather all the installable parts into a specified directory, and 
+finally
+
+    installnetpbm
+
+to install it into your system.  
+
+If you're building Latest Netpbm (as opposed to Stable Netpbm), there
+are probably known bugs.  Some may even prevent Netpbm from building.
+These are listed in the release notes for the release on Sourceforge.
+Check it out.
+
+The 'configure' program is not GNU Autoconf -- it is a simple program
+specific to Netpbm that prompts you for information about your system.
+If your system is not typical enough, you'll have to do a little more
+work, as described below under "custom installation."
+
+You need to use GNU Make even if nothing else on your system is GNU,
+because the Netpbm make files exploit many advanced features of GNU
+Make.  Often, systems have both GNU Make and a native Make.  In this
+case, GNU Make is named 'gmake'.  If you don't have it yet, see
+www.gnu.org/software.  GNU Make is free, easy to install, and works
+just about anywhere.
+
+The only tricky part about installing is setting up the shared
+libraries that are part of Netpbm.  Simply putting the library files
+in place may not be enough.  If you get mysterious "file not found"
+kinds of errors and are not an expert with shared libraries, see the
+section "SHARED LIBRARIES" below.
+
+The --keep-going option to Make is handy, because it causes Make to
+make anything it can, as opposed to quitting as soon as something goes
+wrong.  With so many parts having so many requirements, it's not
+unusual for a few things to fail to build, but that doesn't affect
+everything else.  You can work on the failed parts and repeat the make
+and it will attempt to build whatever it hasn't successfully built
+yet.
+
+
+AUTOMATING THE BUILD
+--------------------
+
+The build is already as automatic as Netpbm developers know how to make
+it without sacrificing your ability to build it a wide variety of ways.
+But if you're building for a specific range of applications, e.g. a
+particular standard system configuration, then you may want to write 
+programs to automate the build further.
+
+PLEASE don't do this by writing a program that invokes Netpbm's Configure
+program and tries to maintain a dialogue with Configure.  This is more work
+than you need to do and you will be disappointed with Configure's 
+unpredictability, especially from one release to the next.  Configure is
+specifically intended to talk to an intelligent human being.
+
+Rather, just write a program to generate the file Makefile.config.  That's
+all Configure does in the end anyway.  Like Configure, your program can
+simply copy Makefile.config.in and add overrides to the bottom.  Or you
+can just package up a complete Makefile.config and not run any program at
+all at build time.  Comments in Makefile.config.in explain the entire
+contents.  You can also run Configure interactively and use its output
+as an example.
+
+
+
+INSTALLATION - WINDOWS
+----------------------
+
+For notes on building Netpbm on Windows using Cygwin, see the file
+README.CYGWIN.  With Cygwin, you can build Netpbm programs that use
+Cygwin or Netpbm programs that use Mingw.
+
+For notes on building Netpbm on Windows using Djgpp, see the file
+README.DJGPP.
+
+See also the general installation instructions above.
+
+
+
+INSTALLATION - MAKING ONLY THE PARTS YOU NEED
+---------------------------------------------
+
+If you don't need the whole package, but just want one tool in it that you
+heard about, you can make just that one.  For example, to make Pnmtojpeg,
+just do
+
+  configure
+  cd converter/other
+  make pnmtojpeg
+
+It will build Pnmtojpeg and any of its dependencies, but nothing else.
+You have to install it manually.  
+
+When you build just one program, you should request static libraries
+in the configure step, because for just one program, the shared
+libraries would be pure masochism.
+
+
+CUSTOM BUILDING
+---------------
+
+This section explains how to customize the installation in the case
+that your platform is, or your requirements are, not among the simple
+cases that 'configure' understands.  'configure' is really just a
+convenient way to build the Makefile.config file, and in the most
+general case, you build that file manually.
+
+Makefile.config contains settings for various things that vary from
+one system to the next, like file paths.  Start with the distributed
+file Makefile.config.in.  Copy it as Makefile.config, then edit it.
+Search for your platform name (Solaris, SunOS, NetBSD, Cygwin, BeOS,
+and Tru64 are among those mentioned) to see recommended settings for
+your platform.
+
+If your system is even too exotic to accomodate with settings in
+Makefile.config, you may need to modify things in the main make files
+or pm_config.h.
+
+If you figure out how to install on other platforms, contact the
+Netpbm maintainer to have the 'configure' program or these
+instructions improved for the next person.
+
+
+CUSTOM INSTALLATION
+-------------------
+
+If the Installnetpbm program doesn't install the way you want, it is
+easy to install it manually using the package that 'make package'
+generates.  That package is just a directory full of files, and you
+should be able to tell by inspection what to do with those files (copy
+to /bin, etc).  If not, there will be a README file in the package to
+explain everything.
+
+
+INSTALLATION - SHARED LIBRARIES
+-------------------------------
+
+There are over 240 programs in the Netpbm package and they do a lot of
+common things.  In order to avoid the expense of copying the code for
+those common things into every program, Netpbm places them in a shared
+library: libnetpbm.  When you invoke a Netpbm program, your system
+notices that it needs this library and accesses it too.
+
+The tricky part of installing the shared (runtime) library is telling
+your system where to find it in the event that you invoke a Netpbm
+program.  And that varies from one system to the next.
+
+On a GNU libc system (essentially, any Linux system), if you put the
+Netpbm shared library in a conventional spot (say, /lib) and reboot
+your system, chances are you will have no trouble running Netpbm
+programs.  But if you want to fine tune things, read up on ld-linux.so
+(GNU libc's dynamic linker) and Ldconfig and consider the
+/etc/ld.so.conf file and LD_LIBRARY_PATH environment variables.  Use
+'ldd' to see if you have a shared library issue.  If it shows any
+shared library as "not found", you've got library trouble.
+
+On a Solaris system, use 'crle' to set the default search path for
+shared libraries (which is kept in /var/ld/ld.config).  Make sure that
+path includes the directory in which you installed the Netpbm shared
+library.  You can also use the LD_LIBRARY_PATH environment variable.
+
+Besides the Netpbm shared library, libnetpbm, several of the converter
+programs, e.g. Jpegtopnm, use separately distributed libraries that
+understand the graphics format involved.  You need to make sure your
+system knows how to find those libraries at run time too (or cause the
+Netpbm build to statically bind the libraries into the Netpbm programs).
+
+Another thing you can do is forget about library search paths and just
+build into each Netpbm executable the location of the Netpbm shared
+library.  (I'm talking about the classic -R linker option) You set
+this up with variables in Makefile.config.  If you use Configure to
+build Makefile.config, then for some platforms where this method is
+common, the Configure dialog asks you what directory, if any, you want
+built into Netpbm executables.
+
+One final note: New Netpbm executables often can run OK with an old
+Netpbm shared library.  This means if you don't correctly install
+the new library, you may run what you think is a new Netpbm program,
+but in actuality be accessing the old Netpbm library, and you may not
+even notice a problem right away.  But eventually, you may find some
+things not working the way they should.  Again, 'ldd' will give you 
+peace of mind.
+
+
+INSTALLATION WITHOUT SHARED LIBRARIES
+-------------------------------------
+
+Since shared libraries can be such a pain, and in fact some systems
+don't even have them, you can build Netpbm with a static library
+instead.  Just answer "static" to the static/shared question when you
+run 'configure' (if you don't use 'configure', set NETPBMLIBTYPE as
+directed in Makefile.config.in).
+
+If you do this, you probably want to do a merge build instead of the
+normal build (there's a question for that in the Configure program).
+See below.
+
+
+MERGE BUILD
+-----------
+
+There are two ways to build Netpbm: the standard or nonmerge build,
+and the merge build.  There are different make file targets for them
+and which one is default is controlled by the DEFAULT_TARGET make
+variable in Makefile.config, and its value is one of the choices you
+make via the Configure dialog.
+
+The standard build is the conventional one.  The merge build is a way
+to reduce disk space and other resource usage in some configurations.
+
+In the standard build, hundreds of separate programs get built: ppmtogif,
+pamcomp, etc.
+
+But the merge build creates a single large program called 'netpbm'
+instead.  That single 'netpbm' program contains the functions of all
+the individual programs that the standard build builds, and selects
+one of them to execute based on what command name you use to invoke
+'netpbm'.
+
+For example, if you install 'netpbm' with a symbolic link to it named
+'ppmtogif' and you invoke the program by typing 'ppmtogif' at a shell
+prompt, 'netpbm' executes Ppmtogif.
+
+Hence, 'make package' creates a package containing the one 'netpbm'
+program and lots of symbolic links to it.  With all these links
+properly installed, a typical user cannot tell the merge build from the
+standard build.
+
+
+DOCUMENTATION
+-------------
+
+Documentation is not packaged with the program source code.  See the
+file doc/USERDOC for information on installing documentation.
diff --git a/doc/Netpbm.programming b/doc/Netpbm.programming
new file mode 100644
index 00000000..14de8b08
--- /dev/null
+++ b/doc/Netpbm.programming
@@ -0,0 +1,358 @@
+This file is an attempt to give some basic guidelines for those who
+wish to write new Netpbm programs.  The guidelines ensure:
+
+  A) Your program functions consistently with the rest of the package.
+
+  B) Your program works in myriad environments on which you can't test it.
+
+  C) You don't miss an important detail of the Netpbm formats.
+
+  D) Your program is immune to small changes in the Netpbm formats.
+
+The easiest way to write your own Netpbm program is to take an
+existing one, similar to the one you want to write, and to modify
+it.  This saves a lot of time, and ensures conformity with these rules.
+But pick a recent one (check the file modification date and the
+doc/HISTORY file), because many things you see in old programs are
+grandfathered in.  Pamtopnm is good example of a thoroughly modern
+Netpbm program.  Pamcut is another good one.
+
+
+COLLECTION PARAMETERS
+---------------------
+
+The philosophy that guides what goes into Netpbm and what doesn't is
+one of maximum distribution of function.  Contributions to Netpbm are
+refused very rarely, and usually because there is already some better
+way to do what the contribution attempts to do, so that the
+contribution would just make the package more confusing and thus
+harder to use.  The second most common reason for declining a
+contribution is that it falls well outside Netpbm's scope.  That too
+would make the package more confusing and thus harder to use.
+
+"Nobody will use that" is not a reason for leaving something out of
+Netpbm.
+
+"That's different from how other Netpbm programs work" is similarly 
+not an excuse for refusing distribution of a feature.  (But it's a
+good reason to accept a change to make a feature consistent!)
+
+The standard for adding something to Netpbm isn't that it be perfect,
+or even a net improvement.  The standard is that it not make Netpbm
+worse.  Poor quality additions are made all the time, because a
+program that doesn't work well is usually no worse than no program at
+all.
+
+
+DEVELOPMENT PROCESS
+-------------------
+
+Just email your code to the Netpbm maintainer.  Base it on the most recent
+Latest Netpbm release if possible.  It's a good idea to ask the maintainer
+before starting a big change to a file to make sure it doesn't conflict
+with some other work that has been done since the last release.
+
+The preferred form for changes to existing files is a unified diff patch --
+the conventional Unix means of communicating code changes.
+
+You should update or create documentation too.  The source files for
+the documentation are the HTML files at
+http://netpbm.sourceforge.net.doc/ .  But if you don't, the Netpbm
+maintainer will do the update before releasing your code.
+
+There are some automated tests in the package - shell scripts in files
+named such as "pbmtog3.test".  You can use those to verify your
+changes.  You should also add to these tests and create new ones.  But
+most developers don't.
+
+
+CODING GUIDELINES
+-----------------
+
+The Netpbm maintainer accepts programs that do not meet these guidelines,
+so don't feel you need to hold back a contribution because you wrote it
+before you read these.
+
+* See the Netpbm library documentation to see what library functions
+  you should be using and how.  You can find it at:
+
+  http://netpbm.sourceforge.net/doc/libnetpbm.html
+
+* See the specifications of the Netpbm formats at:
+
+  http://netpbm.sourceforge.net/doc/pbm.html
+  http://netpbm.sourceforge.net/doc/pgm.html
+  http://netpbm.sourceforge.net/doc/ppm.html
+  http://netpbm.sourceforge.net/doc/pam.html
+
+  but don't depend very much on these; use the library functions
+  instead to read and write the image files.
+
+* Your new program must belong to one of the four Netpbm classes,
+  which are loosely based on the Netpbm formats.  They are defined as
+  follows:
+
+  pbm: These programs take PBM (bitmap - pixels are black or white)
+       files as input or output or both.  They never have PGM or PPM 
+       primary input or output.  They use the libpbm Netpbm
+       library.  They have "pbm" in their names.
+
+  pgm: These programs take PBM or PGM (grayscale) files as input, or
+       produce PGM files as output, or both.  They treat PBM input
+       as if it were the equivalent PGM input.  They never produce PBM
+       primary output and never have PPM primary input or output.
+       They use the libpbm and libpgm Netpbm libraries.  They have
+       "pgm" in their names.
+
+  ppm: These programs take PBM or PGM or PPM (color) files as input,
+       or produce PPM files as output, or both.  They treat PBM and
+       PGM input as if it were the equivalent PPM input.  They never
+       produce PBM or PGM primary output.  They use the libpbm,
+       libpgm, and libppm Netpbm libraries.  They have "ppm" in their
+       names.
+
+  pnm: These are the most general programs.  They handle all four
+       Netpbm formats (PBM, PGM, PPM, and PAM).  They use all Netpbm
+       formats as input or output or both.  They recognize the
+       difference between PBM, PGM, and PPM input, so a PBM input
+       might produce a different result than the equivalent PGM input.
+       These programs use the libpbm, libpgm, libppm, and libpnm
+       Netpbm libraries.  They have "pnm" or "pam" in their names.
+
+  Decide which one of these classes your program belongs to.  Your choice
+  determines the proper naming of the program and which set of library
+  subroutines you should use.
+
+* If your program involves transparency (alpha masks), you have two
+  alternatives.  The older method is to use a separate PGM file for the
+  alpha mask, in the style of Pngtopnm/Pnmtopng and Giftopnm/Pnmtogif,
+  and use command syntax like those programs.  See the PGM format spec
+  for details.
+  
+  A newer method involves a PAM image with an alpha plane (tuple type
+  RGB_ALPHA, etc.).  This is preferred because it's easier for users
+  to pipe stuff around.  Pamtotga is an example of this.
+
+* Declare all your symbols except 'main' as static so that they won't
+  cause problems to other programs when you do a "merge build" of 
+  Netpbm.
+
+* Declare main() with return type 'int', not 'void'.  Some systems won't
+  compile void main().
+
+* Always start the code in main() with a call to p?m_init().
+
+* Use shhopt for option processing.  i.e. call optParseOptions3().
+  This is really easy if you just copy the parseCommandLine() function
+  and struct cmdlineInfo declaration from pamcut.c and adapt it to 
+  your program. 
+
+  When you do this, you get a command line syntax consistent with all the
+  other Netpbm programs, you save coding time and debugging time, and it
+  is trivial to add options later on.
+
+  Do not use shhopt's short option alternative unless you need to be
+  compatible with another program that has short options.  Short
+  options are traditional one-character Unix options, which can be
+  stacked up like "foo -cderx myfile", and they are far too unfriendly
+  to be accepted by the Netpbm philosophy.  Note that long options in
+  shhopt can always be abbreviated to the shortest unique prefix, even
+  one character.
+
+  In messages and examples in documentation, always refer to an option
+  by its full name, not the abbreviation you usually use.  E.g. if you have
+  a "-width" option which can be abbreviated "-w", don't use -w in 
+  documentation.  -width is far clearer.
+  
+* Use pm_error() and pm_message() for error messages and other messages.
+  Note that the universal -quiet option (processed by p?m_init()) causes
+  messages issued via pm_message() to be suppressed.  And that's what
+  Netpbm's architecture requires.
+
+* The argument to pm_error() and pm_message() is a string of text, not
+  a formatted message.  Don't put newlines or other formatting characters
+  in it.  These subroutines are designed to be flexible in how they issue
+  the messages.
+
+* Use MALLOCARRAY() to allocate space for an array and MALLOCVAR to allocate
+  space for a non-array variable.  In fact, you usually want to save some
+  programming tedium and use the NOFAIL versions of these (they never fail
+  because they abort the program if memory is not available).  These avoid
+  array bounds violations.
+
+* Use pm_tmpfile() to make a temporary file.  This avoids races that can
+  be used to compromise security.
+
+* Properly use maxvals.  As explained in the format specifications, every
+  sample value in an image must be interpreted relative to the image's
+  maxval.  For example, a pixel with value 24 in an image with maxval 24
+  is the same brightness as a pixel with value 255 in an image with a
+  maxval of 255.
+
+  255 is a popular maxval (use the PPM_MAXMAXVAL etc. macros) because it
+  makes samples fit in a single byte and at one time was the maximum 
+  possible maxval in the format.
+
+  Note that the Pnmdepth program converts an image from one maxval to
+  another.
+
+* Don't include extra function.  If you can already do something by 
+  piping the input or output of your program through another Netpbm
+  program, don't make an option on your program to do it.  That's the
+  Netpbm philosophy -- simple building blocks.
+
+  Similarly, if your program does two things which would be useful
+  separately, write two programs and advise users to pipe them
+  together.  Or add a third program that simply calls the first two.
+
+* Your program should, if appropriate, allow the user to use Standard
+  Input and Output for images.  This is because Netpbm users commonly
+  use pipes.
+
+* Don't forget to write a proper html documentation page.  Get an
+  example to use as a template from
+  <http://netpbm.sourceforge.net/doc/directory.html>.
+
+* No Netpbm source code may contain tab characters.  If you
+  generate such a file, the Netpbm maintainer will convert it to spaces
+  and possibly change all your indenting at the same time.  Tabs are not
+  appropriate for code that multiple people must edit because they don't
+  necessarily look the same in every editing environment, and in most
+  editing environments, you can't even tell which spaces are actually in
+  the file and which came from the editor, expanding tabs.  Spaces, on
+  the other hand, look the same for everyone.  Modern editors let you
+  compose code just as easily with spaces as with tabs.
+
+
+
+
+DISCONTINUED CODING GUIDELINES
+------------------------------
+
+Here are some things you will see in old Netpbm programs, but they are
+obsolete and you shouldn't propagate them into a new program:
+
+* Tolerating non-standard C libraries.  You may assume all users have
+  ANSI and POSIX compliant C libraries.  E.g. use strrchr() and forget
+  about rindex().
+
+* pm_keymatch() for option processing.  Use shhopt instead, as described
+  above.
+
+* optParseOptions() and optParseOptions2().  These are obsoleted
+  by optParseOptions3(), which is easier to use and more powerful.
+
+* K&R C function declarations.  Always use ANSI function declarations
+  exclusively (e.g. use 
+
+      void foo(int arg1){} 
+
+  instead of 
+
+       void foo(arg1)
+           int arg1;
+           {}
+
+* for (col=0, xP = row; col < cols; col++, xP++)
+      foo(*xP);
+
+  This was done in the days before optimizing compilers because it ran faster
+  than the more readable:
+
+    for (col=0; col < cols; col++)
+        foo(row[col]);
+
+  Now, just use the latter.
+
+
+CODING STYLE
+------------
+
+We do not generally mandate any basic coding style in these
+guidelines.  Where you put your braces is a matter of personal style
+and other people working with your code will just have to live with
+it.  However, people working with your code might just recode it into
+another style if it makes it easier for them to read the code and
+have confidence in their changes.
+
+But if you have no preference, the following is what the Netpbm
+maintainer currently prefers.  Essentially, it is clean, elegant
+computer science-type code rather than brute force engineering-type
+code.  Modular and structured above all.
+
+* No gotos.  This includes all variations of goto:  break, continue, leave,
+  mid-function return.  An exception: aborting the entire program in the 
+  middle of something is allowed.
+
+* No functions with side effects.  This is a tough one, since
+  functions with side effects is highly traditional C.  In fact, the
+  creators of C didn't even have a concept of a subroutine.  However,
+  the average human brain, especially one trained in math, cannot
+  easily follow code where a function both computes a value and does
+  other stuff.
+  
+  For the purpose of this discussion, we say that a C function whose return
+  type is void is not a "function," but a "subroutine."
+
+  So a function should never change anything in the program.  All it does
+  is compute a value.
+
+  Where you have to call an external function that has side effects (virtually
+  anything in the standard C library, for example), put it in a simple
+  assignment function that captures its return value and otherwise consider
+  it a subroutine:
+
+    rc = fopen(...)
+    if (rc ...)
+
+* No reuse of variables.  Most variables should be set at most once.
+  Don't say "A is 5" and then later on, "no, A is 6."  A reader
+  should be able to take that first "A is 5" as a statement of fact
+  and not hunt for all the places it might be contradicted.  A
+  variable that represents the state of execution of an algorithm is an
+  obvious exception.
+
+  Use "const" everywhere you possibly can.
+
+  Especially never modify the argument of a function.  All function arguments
+  should be "const".
+
+  Don't use initializers except for constants.  If you're going to set 
+  a variable twice, do it out in the open; don't hide one in the declaration
+  of the variable.
+
+* Avoid global variables.  Sometimes, a value is truly global and
+  passing it as a parameter just muddies the code.  But most of the
+  time, any external value to which a function refers should be one of
+  its arguments.  
+
+  Declare a variable in the most local scope possible.
+
+* Keep subroutines small.  Generally under 50 lines.  But if the
+  routine is a long sequence of simple, similar things, it's OK for it
+  run on ad infinitem.
+
+* Use the type "bool" for boolean variables.  "bool" is defined in Netpbm
+  headers.  Use TRUE and FALSE as its values.
+
+* Do not say "if (a)" when you mean "if (a != 0)".  Use "if (a)" only if
+  a is a boolean variable.  Or where it's defined so that a zero value 
+  means ("doesn't exist").
+
+* Do multiword variable names like this:  "multiWordName".  Underscores waste
+  valuable screen real estate.
+
+* If a variable's value is the address of something (a pointer to something),
+  it's name should reflect that, as opposed to lying and saying the value is
+  the thing pointed to.  A "P" on the end is the conventional way to say
+  "address of."  E.g. if a variable's value is the address of a color value,
+  name it "colorP", not "color".
+
+* Put "const" as close as possible to the thing that is constant.
+  "int const width", not "const int width".  When pointers to
+  constants are involved, it makes it much easier to read.
+
+* Free something in the same subroutine that allocates it.  Have exactly 
+  one free per allocate (this comes naturally if you eliminate gotos).
+
+
diff --git a/doc/README.CYGWIN b/doc/README.CYGWIN
new file mode 100644
index 00000000..6c11ff35
--- /dev/null
+++ b/doc/README.CYGWIN
@@ -0,0 +1,79 @@
+Cygwin is a software package that sets up a Unix-like platform on a
+Windows (win32) system.  Here are some specific things you need in
+that environment to build and use Netpbm.  All these programs and
+libraries are optional parts of the cygwin package.
+
+   Programs: 
+    1) gcc suite 
+    2) binutils
+    3) bash
+    4) dlltool
+    5) flex & byacc
+    6) patch
+    7) install
+    8) rm, ln, cp and other file utilities
+   Libraries:
+    1) libtiff (cygtiff3.dll)
+    2) libpng  (cygpng2.dll)
+    3) libjpeg6b (cygjpeg6b.dll)
+    4) libz (cygz.dll)
+
+Find Cygwin at http://sources.redhat.com/cygwin/ .
+
+One problem special to Windows is the common existence of directories
+with space in their names (e.g. Windows 2000's "Documents and
+Settings" directory.  (Such filenames are possible on non-Windows
+systems, but are highly unconventional).  Don't try to build Netpbm in
+such a directory or with files in such a directory.  It ought to work,
+but it just doesn't.  And the error messages are far from helpful,
+since those spaces completely change the nature of the commands that
+include them.
+
+One way to deal with this is to use the Cygwin "mount" facility to map
+the Windows path "c:/Documents and Settings/aaa/bbb/cccc/Distributions" to
+something short and friendly, such as /Distributions.
+
+
+MINGW
+------
+
+You can use Cygwin on Windows to build Netpbm to run on Windows, but
+have the Netpbm programs use Mingw code instead of Cygwin code.
+
+Two reasons to do this:
+
+  - We don't appear to have a way to statically link Cygwin library
+    routines into Netpbm, so you have to have a Cygwin library (DLL)
+    installed on a system as well as Netpbm to run Netpbm.
+
+  - If you link Netpbm with a Cygwin library (some believe even if the
+    program links itself to a Cygwin library at run time), you cannot
+    distribute the resulting Netpbm, or any extension of your own,
+    unless you distribute it under GPL.  That's because Cygwin is
+    publicly distributed under GPL, so you probably got your
+    permission to distribute Cygwin as part of Netpbm from GPL.  A
+    condition of that permission was that you distribute everything you
+    wrap around Cygwin under GPL as well.
+
+Mingw is a small POSIX emulation library for Windows.  See 
+<http://mingw.org>.
+
+Mingw comes with tools you can use to build Netpbm with the Mingw
+library, but you can just use the Cygwin tools if you prefer.
+<http://www.delorie.com/howto/cygwin/mno-cygwin-howto.html> tells how.
+There isn't much to it -- it's just a matter of telling the compiler to
+search for include files and link libraries in a different place,
+which is basically just a -mno-cygwin option and -I and -L options.
+
+You can easily add the compiler options you need at the bottom of
+Makefile.config after you create it with the automatic configurator
+('configure').
+
+Mingw does not have the Unix process management facilities (fork/wait,
+etc.), so Netpbm will build without some of its function if you use
+Mingw.  Areas of Netpbm that require those facilities are so arcane you
+probably will not miss them.
+
+
+
+
diff --git a/doc/README.DJGPP b/doc/README.DJGPP
new file mode 100644
index 00000000..773a22e7
--- /dev/null
+++ b/doc/README.DJGPP
@@ -0,0 +1,65 @@
+Warning: The Netpbm distribution uses long filenames, so you can only
+build the package in a W9x environment, with LFN support.
+
+To build Netpbm with DJGPP v2.0x you need:
+
+        - djgpp: gcc, make, and binutils
+        - bash 
+        - fileutils
+        - sed
+        - groff (to convert man pages to cat format)
+        - man and less (to read the converted man pages)
+
+You can fetch all packages on Simtelnet in the DJGPP tree:
+ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/
+
+You need too four external libraries to add tiff, png and jpeg support
+to Netpbm (you can build without them, modifying Makefile.config.djgpp
+but I think it makes Netpbm useless).
+
+        - Libtiff (www.libtiff.org)
+        - Libjpeg (www.ijg.org)
+        - Libpng  (www.libpng.org/pub/png/libpng.html)
+        - Libz    (www.info-zip.org/pub/infozip)
+
+All libraries come with guidelines to compile ok with DJGPP. At this time
+you can get binary packages of libjpeg, libpng and libz on Simtelnet.
+
+
+To build the Netpbm programs do the following:
+
+  Copy Makefile.config.djgpp to Makefile.config
+
+  Run "touch Makefile.config" to prevent Make from updating the file.
+
+  Read the Makefile.config and make any changes you want
+
+  Do "make merge"
+
+  Do "make install-merge" to install binaries and man pages.
+
+  Makefile.config.djgpp is set up to install these in TMPDIR/netpbm
+  (normally /dgjpp/tmp/netpbm).  If everything worked OK, you can
+  move the contents of this directory to your DJGPP production tree.
+
+
+WARNING
+
+There are some problems that have to be addressed if using the
+binaries in pure DOS OS, without long file names, but it works OK
+using "netpbm <utility>" (<utility> is the real Netpbm program to be
+used, for example: 
+
+      netpbm ppmtobmp <testimg.ppm >testimg.bmp
+
+instead of the usual
+
+      ppmtobmp <testimg.ppm >testimg.bmp).
+
+
+
+This procedure and the code to adapt Netpbm to DJGPP was contributed by
+M.Alvarez <malfer@teleline.es> in August 2001.  You can find his 
+current information on using Netpbm with DJGPP and prebuilt binaries
+at <http://www.terra.es/personal/malfer/netpbm/netpbm.htm>.
+
diff --git a/doc/USERDOC b/doc/USERDOC
new file mode 100644
index 00000000..3cd2b383
--- /dev/null
+++ b/doc/USERDOC
@@ -0,0 +1,155 @@
+Since May 2002, Netpbm does not have traditional man pages for
+documentation.  BUT YOU CAN CONFIGURE NETPBM, IF YOU WANT, SO YOU GET
+ESSENTIALLY THE SAME 'MAN' FUNCTION AS WITH A TRADITIONAL UNIX PACKAGE.
+
+Netpbm's maintainer believes man pages are obsolete and too limiting,
+and doesn't have time to maintain the documentation in multiple
+formats.  So instead of classic nroff man page format, the Netpbm
+documentation is available as HTML, with one HTML file per program,
+plus some others.  The current user manual is accessible on the World
+Wide Web at <http://netpbm.sourceforge.net/doc>, and if it's practical
+for you, you should access it there instead of making a local copy.
+This manual is always up to date.  It is not maintained on a release
+schedule like the source code is, but rather updated continuously.
+The user manual describes past Netpbm function as well as the present,
+so you can use the current manual with old Netpbm code.
+
+
+INSTALLING A LOCAL COPY OF DOCUMENTATION
+----------------------------------------
+
+If accessing the manual on the World Wide Web is not convenient for
+you (for example, if you want to access it from a computer that is not
+always connected to the Internet), just make a local copy of the web
+site files using GNU Wget:
+
+  wget --recursive --relative http://netpbm.sourceforge.net/doc/
+
+The above copies all the HTML files from the web site into your
+current directory, under a subdirectory 'netpbm.sourceforge.net/doc'
+that it creates.  You can browse those files directly with a web
+browser.  If you don't have Wget, get it from
+ftp://ftp.gnu.org/gnu/wget.  It is very useful.
+
+
+GETTING COMMAND HELP WITH A "MAN" COMMAND
+-----------------------------------------
+
+You can get the same quick access to program documentation with this
+HTML setup as with traditional man pages, using the Manweb program.
+This works whether you use the www copy or a local copy of the HTML
+files.  Manweb is distributed with Netpbm.  With Manweb and Netpbm
+installed and configured appropriately (see below), you can type
+
+  man netpbm
+
+and get the top level page of the Netpbm user manual (with hyperlinks to
+all the other pages), or
+
+  man netpbm ppmtogif
+
+or 
+
+  man ppmtogif
+
+to go straight to the Ppmtogif documentation.
+
+Installnetpbm normally installs Manweb and the netpbm.url file that
+Manweb needs to find the Netpbm documentation.  Through the Configure
+dialog, or editing Makefile.config, you determine whether Manweb
+accesses the master web copy or a local copy you installed.
+
+Installnetpbm installs the program as 'manweb'.  If you want to invoke
+it as 'man', you'll have to set that up yourself.  Perhaps with a
+symbolic link from 'man' to 'manweb'.  Note that 'manweb' is mostly
+backward compatible with 'man' so that this is a reasonable thing to
+do.  Manweb can find documentation on the web, in HTML files, in GNU
+info files, and in traditional man pages.
+
+
+In a standard installation of Netpbm, Installnetpbm also creates a
+traditional man page for every Netpbm program it installs, but the man
+page just tells you to go to the HTML file.  This way, even if the "man"
+program isn't capable of reading the HTML documentation and even if the
+user doesn't know specifically where Netpbm documentation lives, he isn't
+stranded without information.
+
+
+VIEWING NETPBM DOC WITH TRADITIONAL MAN PROGRAM
+-----------------------------------------------
+
+Some people want to be able to access the Netpbm documentation with an
+existing man program that doesn't know HTML.  You can install the
+documentation that way, with some loss of quality.  There are two
+ways:
+
+  1) convert the HTML to troff with the 'makeman' program in the
+     'buildtools' directory of the Netpbm source tree.  This is a 
+     Python program.
+
+  2) convert the HTML to formatted plain text (suitable as man "cat"
+     pages) with the 'makecat' program in the 'buildtools' directory
+     of the Netpbm source tree.  This program just does a 
+     'lynx -dump'.
+
+The "loss of quality" mentioned above is because:
+
+  - The classic Unix manual format isn't as expressive as the
+    worldwide web format; you can't convert down losslessly.
+
+  - There is less maintenance effort put into maintaining the
+    secondary non-web format.  It requires certain idioms to be
+    followed in the HTML source and lists of man pages to be
+    separately maintained.  This maintenance is essentially done on a
+    fault basis -- when someone notices the Unix man pages aren't
+    right, he fixes something.
+    
+    Bear in mind that the person who writes most of the Netpbm
+    documentation updates never sees the troff versions; he uses
+    Manweb, which renders directly from the HTML.
+
+Also, these methods require manual effort, and technical
+understanding, on your part to set up.  Setting it up is too complex
+for an automated process to do it for you with any significant
+integrity.  The examples are guidelines and you shouldn't expect them
+to work literally in your situtation.
+
+Here is an example of making troff pages:
+
+  mkdir netpbmdoc
+  cd netpbmdoc
+  wget --recursive --relative http://netpbm.sourceforge.net/doc/
+  cd netpbm.sourceforge.net/doc
+  make MAKEMAN=/usr/src/netpbm/buildtools/makeman \
+    -f /usr/src/netpbm/buildtools/Makefile.manpage manpages
+  make -f /usr/src/netpbm/buildtools/Makefile.manpage manpages
+  make -f /usr/src/netpbm/buildtools/Makefile.manpage installman
+  cd ../../..
+  rm -r netpbmdoc
+
+  man ppmtogif
+
+Here is an example of making "cat" pages:
+
+  mkdir netpbmdoc
+  cd netpbmdoc
+  wget --recursive --relative http://netpbm.sourceforge.net/doc/
+  cd netpbm.sourceforge.net/doc
+  /usr/src/netpbm/buildtools/makecat *.html
+  cp *.1 /usr/man/cat1/
+  cd ../../..
+  rm -r netpbmdoc
+
+  man ppmtogif
+
+
+DOCBOOK
+-------
+
+You can turn the Netpbm user manual into Docbook XML pages using
+Doclifter.  Because Doclifter works on troff pages, you have to
+convert the documentation down to troff first, which means the Docbook
+pages are of lower quality than the main HTML documentation.
+
+To create Docbook XML, follow the example above for creating troff
+pages, and use 'make xmlpages' instead of 'make manpages'.
diff --git a/doc/copyright_summary b/doc/copyright_summary
new file mode 100644
index 00000000..9ab3a784
--- /dev/null
+++ b/doc/copyright_summary
@@ -0,0 +1,382 @@
+Here is an analysys of Netpbm copyrights done by Steve McIntyre
+<stevem@chiark.greenend.org.uk> finishing on October 7, 2001.
+
+It is based on Netpbm 9.20, so it doesn't cover material added since
+then.
+
+
+
+Copyright:
+==========
+
+Netpbm has a very complicated licensing setup, as it is a collection
+of hundreds of small utility programs, each with an individual
+copyright/license. From inspection of the source and documentation in
+the package, I believe the following programs are DFSG-free. They have
+a variety of licenses, which I have summarised below for convenience.
+
+A:  The most common netpbm license - clearly the original from Jef Poskanzer:
+
+    Permission to use, copy, modify, and distribute this software and its
+    documentation for any purpose and without fee is hereby granted, provided
+    that the above copyright notice appear in all copies and that both that
+    copyright notice and this permission notice appear in supporting
+    documentation.  This software is provided "as is" without express or
+    implied warranty.
+
+The core libp[gbnp]m library code all also seems to follow this license.
+
+B:  The standard BSD license. See /usr/share/common-licenses/BSD
+
+C:  GNU General Public License v2. See /usr/share/common-licenses/GPL.
+
+D:  The Independent JPEG Group license:
+
+    Permission is hereby granted to use, copy, modify, and distribute
+    this software (or portions thereof) for any purpose, without fee,
+    subject to these conditions: (1) If any part of the source code
+    for this software is distributed, then this README file must be
+    included, with this copyright and no-warranty notice unaltered;
+    and any additions, deletions, or changes to the original files
+    must be clearly indicated in accompanying documentation.  (2) If
+    only executable code is distributed, then the accompanying
+    documentation must state that "this software is based in part on
+    the work of the Independent JPEG Group".  (3) Permission for use
+    of this software is granted only if the user accepts full
+    responsibility for any undesirable consequences; the authors
+    accept NO LIABILITY for damages of any kind.
+
+    These conditions apply to any software derived from or based on
+    the IJG code, not just to the unmodified library.  If you use our
+    work, you ought to acknowledge us.
+
+    Permission is NOT granted for the use of any IJG author's name or
+    company name in advertising or publicity relating to this software
+    or products derived from it.  This software may be referred to
+    only as "the Independent JPEG Group's software".
+
+    We specifically permit and encourage the use of this software as
+    the basis of commercial products, provided that all warranty or
+    liability claims are assumed by the product vendor.
+
+E:  This software is copyrighted as noted below.  It may be freely copied,
+    modified, and redistributed, provided that the copyright notice is
+    preserved on all copies.
+
+    There is no warranty or other guarantee of fitness for this software,
+    it is provided solely "as is".  Bug reports or fixes may be sent
+    to the author, who may or may not act on them as he desires.
+
+    You may not include this software in a program or other software product
+    without supplying the source, or without informing the end-user that the
+    source is available for no extra charge.
+    
+    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.
+
+F:  The program and documentation may be freely distributed by anyone in source
+    or binary format. Please clearly note any changes.
+
+G:  Public domain:
+
+    This software is in the public domain.  Permission to use, copy,
+    modify, and distribute this software and its documentation for any
+    purpose and without fee is hereby granted, without any conditions or
+    restrictions.
+
+H:  Public domain, slightly different wording:
+
+    Permission  to  use, copy, modify, and distribute this software and
+    its documentation  for  any  purpose  and  without  fee  is  hereby
+    granted,  without any conditions or restrictions.  This software is
+    provided "as is" without express or implied warranty.
+
+I:  A variation on the BSD license
+
+    Permission to use, copy, modify, distribute, and  sell  this
+    software  and  its  documentation  for any purpose is hereby
+    granted without  fee,  provided  that  the  above  copyright
+    notice  appear  in  all  copies and that both that copyright
+    notice and this permission notice appear in supporting documentation,
+    and  that  the  name  of the  Smithsonian Astrophysical
+    Observatory not be used in advertising or publicity
+    pertaining to distribution of the software without specific,
+    written  prior  permission.   The Smithsonian  Astrophysical
+    Observatory makes no representations about  the  suitability
+    of  this  software for any purpose.  It is provided  "as is"
+    without express or implied warranty.
+    THE  SMITHSONIAN  ASTROPHYSICAL  OBSERVATORY  DISCLAIMS  ALL
+    WARRANTIES  WITH  REGARD  TO  THIS  SOFTWARE,  INCLUDING ALL
+    IMPLIED  WARRANTIES  OF  MERCHANTABILITY AND FITNESS, IN  NO
+    EVENT SHALL THE  SMITHSONIAN  ASTROPHYSICAL  OBSERVATORY  BE
+    LIABLE FOR  ANY SPECIAL, INDIRECT  OR  CONSEQUENTIAL DAMAGES
+    OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS  OF USE,  DATA
+    OR  PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+    OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION  WITH
+    THE  USE OR PERFORMANCE OF THIS SOFTWARE.
+
+411toppm:      (B) 2001      Steve Allen <sla@alumni.caltech.edu>
+anytopnm:      (A) 1991      Jef Poskanzer
+asciitopgm:    (A) 1989      Wilson H. Bent, Jr
+atktopbm:      (A) 1991      Bill Janssen
+bioradtopgm:   (A) 1993      Oliver Trepte <oliver@fysik4.kth.se>
+bmptoppm:      (A) 1992      David W. Sanderson
+brushtopbm:    (A) 1988      Jef Poskanzer
+cmuwmtopbm:    (A) 1989      Jef Poskanzer
+eyuvtoppm:     (B) 1995      The Regents of the University of California
+fiascotopnm:   (C) 1994-2000 Ullrich Hafner <hafner@bigfoot.de>
+fitstopnm:     (A) 1989      Jef Poskanzer
+fstopgm:       (A) 1989      Jef Poskanzer
+g3topbm:       (A) 1989      Paul Haeberli <paul@manray.sgi.com>
+gemtopbm:      (A) 1988      Diomidis D. Spinellis
+gemtopnm:      (A) 1988      Diomidis D. Spinellis
+giftopnm:      (A) 1990-1993 David Koblas <koblas@netcom.com>
+gouldtoppm:    (A) 1990      Stephen P. Lesniewski
+hipstopgm:     (A) 1989      Jef Poskanzer
+icontopbm:     (A) 1988      Jef Poskanzer
+ilbmtoppm:     (A) 1989      Jef Poskanzer
+imgtoppm:      (A) 1989      Jef Poskanzer
+jbigtopnm:     (C) 2000      Markus Kuhn <mkuhn@acm.org>
+jpegtopnm:     (D) 1991-2000 Thomas G. Lane, Bryan Henderson
+leaftoppm:     (A) 1994      Bill O'Donnell
+lispmtopgm:    (A) 1988      Jef Poskanzer, Jamie Zawinski
+macptopbm:     (A) 1988      Jef Poskanzer
+mdatopbm:      (C) 1999      John Elliott <jce@seasip.demon.co.uk>
+mgrtopbm:      (A) 1989      Jef Poskanzer
+mtvtoppm:      (A) 1989      Jef Poskanzer
+neotoppm:      (D) 2001      Teemu Hukkanen <tjhukkan@iki.fi>
+palmtopnm:     (A) 1995-2000 Ian Goldberg, Bill Janssen
+pamcut:        (A) 1989      Jef Poskanzer
+pamfile:       (A) 1991      Jef Poskanzer
+pamoil:        (A) 1990      Wilson Bent <whb@hoh-2.att.com>
+pbmclean:      (A) 1989-1990 Jef Poskanzer, Angus Duggan
+pbmlife:       (A) 1988-1991 Jef Poskanzer
+pbmmake:       (A) 1988      Jef Poskanzer
+pbmmask:       (A) 1989-1991 Jef Poskanzer
+pbmpage:       (C) 1998      Tim Norman
+pbmpscale:     (A) 1989-1990 Jef Poskanzer, Angus Duggan
+pbmreduce:     (A) 1989      Jef Poskanzer
+pbmtext:       (A) 1991      Jef Poskanzer
+pbmto10x:      (A) 1990-1994 Ken Yap
+pbmtoascii:    (A) 1988-1992 Jef Poskanzer
+pbmtoatk:      (A) 1991      Bill Janssen
+pbmtobbnbg:    (A) 1989      Mike Parker
+pbmtocmuwm:    (A) 1989      Jef Poskanzer
+pbmtoepsi:     (A) 1988      Jef Poskanzer
+pbmtoepson:    (A) 1990      Jef Poskanzer, John Tiller <tiller@galois.msfc.nasa.gov>
+pbmtog3:       (A) 1989      Paul Haeberli <paul@manray.sgi.com>
+pbmtogem:      (A) 1988      Jef Poskanzer, David Beckemeyer
+pbmtogo:       (A) 1988-1989 Jef Poskanzer, Michael Haberler, Bo Thide'
+pbmtoicon:     (A) 1988      Jef Poskanzer
+pbmtolj:       (A) 1988      Jef Poskanzer, Michael Haberler
+pbmtomacp:     (A) 1988      Douwe vand der Schaaf
+pbmtomda:      (C) 1999      John Elliott <jce@seasip.demon.co.uk>
+pbmtomgr:      (A) 1989      Jef Poskanzer
+pbmtonokia:    (A) 2001      OMS Open Media System GmbH, Tim R<FC>hsen <tim.ruehsen@openmediasystem.de>
+pbmtopgm:      (A) 1989-1990 Jef Poskanzer, Angus Duggan
+pbmtopi3:      (A) 1988      David Beckemeyer and Jef Poskanzer
+pbmtoplot:     (A) 1990      Arthur David Olson
+pbmtoppa:      (C) 1998      Tim Norman
+pbmtopsg3:     (C) 2001      Kristof Koehler <kristof@fachschaft.physik.uni-karlsruhe.de>
+pbmtoptx:      (A) 1988      Jef Poskanzer
+pbmtowbmp:     (A) 1999      Terje Sannum <terje@looplab.com>
+pbmtox10bm:    (A) 1988      Jef Poskanzer
+pbmtoxbm:      (A) 1988      Jef Poskanzer
+pbmtoybm:      (A) 1991      Jamie Zawinski and Jef Poskanzer
+pbmtozinc:     (A) 1988      James Darrell McCauley <jdm5548@diamond.tamu.edu>, Jef Poskanzer
+pbmupc:        (A) 1988      Jef Poskanzer
+pcxtoppm:      (A) 1990      Michael Davidson
+pgmbentley:    (A) 1990      Wilson Bent <whb@hoh-2.att.com>
+pgmcrater:     (H) 1989      John Walker <kelvin@autodesk.com>
+pgmedge:       (A) 1989      Jef Poskanzer
+pgmenhance:    (A) 1989-1991 Jef Poskanzer
+pgmhist:       (A) 1989      Jef Poskanzer
+pgmkernel:     (A) 1992      Alberto Accomazzi, Smithsonian Astrophysical Observatory
+pgmnoise:      (A) 1993      Frank Neumann
+pgmnorm:       (A) 1989-1991 Jef Poskanzer
+pgmramp:       (A) 1989      Jef Poskanzer
+pgmslice:      (C) 2000      Jos Dingjan <jos@tuatha.org>
+pgmtexture:    (A) 1991      Texas Agricultural Experiment Station, James Darrell McCauley
+pgmtofs:       (A) 1991      Jef Poskanzer
+pgmtolispm:    (A) 1991      Jamie Zawinski and Jef Poskanzer
+pgmtopbm:      (A) 1989      Jef Poskanzer
+pgmtoppm:      (A) 1991      Jef Poskanzer
+pi1toppm:      (A) 1991      Steve Belczyk <seb3@gte.com> and Jef Poskanzer
+pi3topbm:      (A) 1988      David Beckemeyer and Diomidis D. Spinellis
+picttoppm:     (A) 1989-1993 George Phillips <phillips@cs.ubc.ca>
+pjtoppm:       (A) 1990      Christos Zoulas <christos@ee.cornell.edu>
+pngtopnm:      (A) 1995-1998 Alexander Lehmann <alex@hal.rhein-main.de>, Willem van Schaik <willem@schaik.com>
+pnmalias:      (A) 1992      Alberto Accomazzi, Smithsonian Astrophysical Observatory
+pnmarith:      (A) 1989-1991 Jef Poskanzer
+pnmcat:        (A) 1989-1991 Jef Poskanzer
+pnmcomp:       (A) 1992      David Koblas
+pnmconvol:     (A) 1989-1995 Jef Poskanzer, Mike Burns <burns@chem.psu.edu>
+pnmcrop:       (A) 1988      Jef Poskanzer
+pnmcut:        (A) 1989      Jef Poskanzer
+pnmdepth:      (A) 1989-1991 Jef Poskanzer
+pnmenlarge:    (A) 1989      Jef Poskanzer
+pnmfile:       (A) 1991      Jef Poskanzer
+pnmflip:       (A) 1989      Jef Poskanzer
+pnmgamma:      (A) 1991      Jef Poskanzer and Bill Davidson
+pnmhisteq:     (H) 1995      John Walker <kelvin@fourmalib.ch>
+pnmhistmap:    (A) 1993      Wilson H. Bent, Jr <whb@usc.edu>
+pnmindex:      (A) 1991      Jef Poskanzer
+pnminterp:     (C) 1998-2000 Russell Marks <russell.marks@ntlworld.com>
+pnminterp-gen: (C) 1998-2000 Russell Marks <russell.marks@ntlworld.com>
+pnminvert:     (A) 1989      Jef Poskanzer
+pnmmargin:     (A) 1991      Jef Poskanzer
+pnmmontage:    (A) 2000      Ben Olmstead
+pnmnlfilt:     (A) 1993      Graeme W. Gill <graeme@labtam.oz.au>
+pnmnoraw:      (A) 1991      Jef Poskanzer
+pnmpad:        (A) 1989-1990 Jef Poskanzer, Angus Duggan
+pnmpaste:      (A) 1989      Jef Poskanzer
+pnmpsnr:       (C) 1994-2000 Ullrich Hafner <hafner@bigfoot.de>
+pnmrotate:     (A) 1989-1991 Jef Poskanzer
+pnmscale:      (A) 1989-1991 Jef Poskanzer
+pnmscalefixed: (A) 1989-1991 Jef Poskanzer
+pnmshear:      (A) 1989-1991 Jef Poskanzer
+pnmsmooth:     (A) 1984      Mike Burns <burns@chem.psu.edu>
+pnmsplit:      (?) 2000      Bryan Henderson <bryanh@giraffe-data.com>
+pnmtile:       (A) 1989      Jef Poskanzer
+pnmtoddif:     (A) 1992      Digital Equipment Corporation, Burkhard Neidecker-Lutz
+pnmtofiasco:   (C) 1994-2000 Ullrich Hafner <hafner@bigfoot.de>
+pnmtofits:     (C) 1989      Wilson H. Bent <whb@hoh-2.att.com>
+pnmtojbig:     (C) 2000      Markus Kuhn <mkuhn@acm.org>
+pnmtojpeg:     (D) 1991-2001 Thomas G. Lane, Bryan Henderson
+pnmtopalm:     (A) 1995-2000 Ian Goldberg, Bill Janssen
+pnmtoplainpnm: (A) 1991      Jef Poskanzer
+pnmtopng:      (A) 1995-1998 Alexander Lehmann <alex@hal.rhein-main.de>, Willem van Schaik <willem@schaik.com>
+pnmtops:       (A) 1989      Jef Poskanzer
+pnmtorast:     (A) 1989-1991 Jef Poskanzer
+pnmtorle:      (E) 1994      Minnesota Supercomputer Center, Inc, Wes Barris <wes@msc.edu>
+pnmtosgi:      (A) 1994      Ingo Wilken <Ingo.Wilken@informatik.uni-oldenburg.de>
+pnmtosir:      (A) 1991      Marvin Landis
+pnmtotiff:     (A) 1990      Sun Microsystems, Inc, Jef Poskanzer
+pnmtotiffcmyk: (C) 1999      Andrew Cooke (Jara Software) <jara@andrewcooke.free-online.co.uk>
+pnmtoxwd:      (A) 1989-1991 Jef Poskanzer
+ppm3d:         (A) 1989      Jef Poskanzer
+ppmbrighten:   (A) 1989-1990 Jef Poskanzer, Brian Moffet
+ppmchange:     (A) 1991      Wilson H. Bent, Jr
+ppmcie:        (H) 1995      John Walker <kelvin@fourmilab.ch>
+ppmcolormask:  (?) 2000      Bryan Henderson <bryanh@giraffe-data.com>
+ppmdim:        (A) 1993      Frank Neumann
+ppmdist:       (A) 1993      Dan Stromberg
+ppmdither:     (A) 1991      Christos Zoulas
+ppmfade:       (?) 1994      Minnesota Supercomputer Center, Inc, Wes Barris <wes@msc.edu>
+ppmflash:      (A) 1993      Frank Neumann
+ppmforge:      (H) 1989      John Walker <kelvin@autodesk.com>
+ppmhist:       (A) 1989      Jef Poskanzer
+ppmlabel:      (H) 1995      John Walker <kelvin@fourmilab.ch>
+ppmmake:       (A) 1989      Jef Poskanzer
+ppmmix:        (A) 1993      Frank Neumann
+ppmnorm:       (A) 1989-1991 Jef Poskanzer, Wilson H. Bent, Jr <whb@usc.edu>
+ppmntsc:       (E) 1993      Minnesota Supercomputer Center, Inc, Wes Barris <wes@msc.edu>
+ppmpat:        (A) 1989-1991 Jef Poskanzer
+ppmquant:      (A) 1989-1991 Jef Poskanzer
+ppmquantall:   (A) 1991      Jef Poskanzer
+ppmqvga:       (F) 1991-1992 Bill Davidsen, Lyle Rains <lrains@netcom.com>
+ppmrainbow:	   (A) 2001      Arjen Bax, Bryan Henderson
+ppmrelief:     (A) 1990      Wilson H. Bent, Jr
+ppmshadow:     (G) 1997      John Walker <kelvin@fourmilab.ch>
+ppmshift:      (A) 1993      Frank Neumann
+ppmspread:     (A) 1993      Frank Neumann
+ppmtoacad:     (H) 1991      John Walker <kelvin@autodesk.com>
+ppmtobmp:      (A) 1992      David W. Sanderson
+ppmtoeyuv:     (B) 1995      The Regents of the University of California
+ppmtoicr:      (A) 1990      Kanthan Pillay <svpillay@Princeton.EDU>
+ppmtoilbm:     (A) 1989      Jef Poskanzer
+ppmtoleaf:     (A) 1994      Bill O'Donnell
+ppmtolj:       (A) 2000      Jonathan Melvin <jonathan.melvin@heywood.co.uk>
+ppmtomap:      (A) 1989      Jef Poskanzer
+ppmtomitsu:    (A) 1992-1993 S.Petra Zeidler
+ppmtompeg:     (B) 1995      The Regents of the University of California
+ppmtoneo:      (D) 2001      Teemu Hukkanen <tjhukkan@iki.fi>
+ppmtopcx:      (B) 1994      Ingo Wilken <Ingo.Wilken@informatik.uni-oldenburg.de>
+ppmtopgm:      (A) 1989      Jef Poskanzer
+ppmtopi1:      (A) 1991      Jef Poskanzer and Steve Belczyk
+ppmtopict:     (A) 1990      Ken Yap <ken@cs.rochester.edu>
+ppmtopj:       (A) 1990      Christos Zoulas <christos@ee.cornell.edu>
+ppmtopuzz:     (A) 1991      Jef Poskanzer
+ppmtorgb3:     (A) 1991      Jef Poskanzer
+ppmtosixel:    (A) 1991      Rick Vinci
+ppmtotga:      (A) 1989-1991 Mark Shand and Jef Poskanzer
+ppmtouil:      (A) 1990      Mark W. Snitily, Jef Poskanzer
+ppmtowinicon:  (A) 2000      Lee Benfield <lee@recoil.org>
+ppmtoxpm:      (A) 1990      Mark W. Snitily
+ppmtoyuv:      (A) 1987-1991 Abekas Video Systems Inc, DHD PostImage Inc
+ppmtoyuvsplit: (A) 1993      Andre Beck <Andre_Beck@IRS.Inf.TU-Dresden.de>
+ppmtv:         (A) 1993      Frank Neumann
+psidtopgm:     (A) 1989      Jef Poskanzer
+pstopnm:       (I) 1992      Smithsonian Astrophysical Observatory, Alberto Accomazzi
+qrttoppm:      (A) 1989      Jef Poskanzer
+rasttopnm:     (A) 1989-1991 Jef Poskanzer
+rawtopgm:      (A) 1989      Jef Poskanzer
+rawtoppm:      (A) 1991      Jef Poskanzer
+rgb3toppm:     (A) 1991      Jef Poskanzer
+rletopnm:      (E) 1994      Minnesota Supercomputer Center, Inc, Wes Barris <wes@msc.edu>
+sbigtopgm:     (A) 1998      John Walker
+sgitopnm:      (A) 1994      Ingo Wilken <Ingo.Wilken@informatik.uni-oldenburg.de>
+sirtopnm:      (A) 1991      Marvin Landis
+sldtoppm:      (H) 1991      John Walker <kelvin@autodesk.com>
+spctoppm:      (A) 1991      Jef Poskanzer and Steve Belczyk
+sputoppm:      (A) 1991      Jef Poskanzer and Steve Belczyk
+tgatoppm:      (A) 1989      Jef Poskanzer
+tifftopnm:     (A) 1990      Sun Microsystems, Inc, Jef Poskanzer
+thinkjettopbm: (A) 2001      W. Eric Norum <eric.norum@usask.ca>
+wbmptopbm:     (A) 1999      Terje Sannum <terje@looplab.com>
+winicontoppm:  (A) 2000      Lee Benfield <lee@recoil.org>
+xbmtopbm:      (A) 1988      Jef Poskanzer
+ximtoppm:      (A) 1991      Jef Poskanzer
+xpmtoppm:      (A) 1991      Jef Poskanzer
+xvminitoppm:   (A) 1993      Ingo Wilken <Ingo.Wilken@informatik.uni-oldenburg.de>
+xwdtopnm:      (A) 1989-1991 Jef Poskanzer
+ybmtopbm:      (A) 1988      Jamie Zawinski and Jef Poskanzer
+yuvsplittoppm: (A) 1993      Marcel Wijkstra <wijkstra@fwi.uva.nl>
+yuvtoppm:      (A) 1987-1991 Jef Poskanzer, Abekas Video Systems Inc., DHD PostImage Inc.
+zeisstopnm:    (A) 1993      Oliver Trepte <oliver@fysik4.kth.se>
+
+==============================================================================
+NON-FREE:
+
+The following programs have restrictions on their use or source:
+
+hpcdtoppm package:
+==================
+hpcdtoppm pcdindex
+
+*  Copyright (c) 1992, 1993, 1994 by Hadmut Danisch (danisch@ira.uka.de).
+*  Permission to use and distribute this software and its
+*  documentation for noncommercial use and without fee is hereby granted,
+*  provided that the above copyright notice appear in all copies and that
+*  both that copyright notice and this permission notice appear in
+*  supporting documentation. It is not allowed to sell this software in 
+*  any way. This software is not public domain.
+
+Note that Hpcdtoppm and Pcdindex are not distributed in the main Netpbm
+package on Sourceforge, as Sourceforge does not offer distribution services
+for software licensed in this way.  These programs are distributed in the
+supplemental Netpbm package on Ibiblio.
+
+filter to create GIFs - patent restricted. (http://www.unisys.com/unisys/lzw/)
+ppmtogif:      (A) 1989      Jef Poskanzer
+
+The Unisys patent, at least in the US, expired in 2003.
+
+=============================================================================
+UNKNOWN, SO NOT DISTRIBUTED:
+
+The following programs are in the upstream source package, but do not
+have sufficient copyright and license information to be redistributed:
+
+pamchannel:  No copyright / license text found
+pamtopnm:    No copyright / license text found
+pbmto4425:   No copyright / license text found
+pbmtoln03:   No copyright / license text found
+pbmtolps:    No copyright / license text found
+pbmtopk:     No copyright / license text found
+pktopbm:     No copyright / license text found
+ppmtopjxl:   No copyright / license text found
+spottopgm:   No copyright / license text found
+
+
diff --git a/doc/lgpl_v21.txt b/doc/lgpl_v21.txt
new file mode 100644
index 00000000..b1e3f5a2
--- /dev/null
+++ b/doc/lgpl_v21.txt
@@ -0,0 +1,504 @@
+		  GNU LESSER GENERAL PUBLIC LICENSE
+		       Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it.  You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+  When we speak of free software, we are referring to freedom of use,
+not price.  Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+  To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights.  These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  To protect each distributor, we want to make it very clear that
+there is no warranty for the free library.  Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+  Finally, software patents pose a constant threat to the existence of
+any free program.  We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder.  Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+  Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License.  This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License.  We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+  When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library.  The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom.  The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+  We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License.  It also provides other free software developers Less
+of an advantage over competing non-free programs.  These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries.  However, the Lesser license provides advantages in certain
+special circumstances.
+
+  For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard.  To achieve this, non-free programs must be
+allowed to use the library.  A more frequent case is that a free
+library does the same job as widely used non-free libraries.  In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+  In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software.  For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+  Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+		  GNU LESSER GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+  
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+  6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Use a suitable shared library mechanism for linking with the
+    Library.  A suitable mechanism is one that (1) uses at run time a
+    copy of the library already present on the user's computer system,
+    rather than copying library functions into the executable, and (2)
+    will operate properly with a modified version of the library, if
+    the user installs one, as long as the modified version is
+    interface-compatible with the version that the work was made with.
+
+    c) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    d) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    e) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+			    NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+           How to Apply These Terms to Your New Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.  It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the library's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+  <signature of Ty Coon>, 1 April 1990
+  Ty Coon, President of Vice
+
+That's all there is to it!
+
+
diff --git a/doc/netpbm.1 b/doc/netpbm.1
new file mode 100644
index 00000000..5bed86a9
--- /dev/null
+++ b/doc/netpbm.1
@@ -0,0 +1,4 @@
+Are you looking for the man pages?
+
+Netpbm does not have man pages in the conventional Unix form.  Please see 
+the file doc/USERDOC for a complete explanation of this.
diff --git a/doc/netpbm.html b/doc/netpbm.html
new file mode 100644
index 00000000..471c1d54
--- /dev/null
+++ b/doc/netpbm.html
@@ -0,0 +1,3 @@
+Are you looking for the Netpbm user manual?
+
+It's not in the source code package.  Please see the file doc/USERDOC.