licenses.list.txt 43 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104
  1. ====================COPYRIGHT====================
  2. "Copyright (c) 2018-2023 Cosmin Truta" PNG_STRING_NEWLINE \
  3. "Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson" \
  4. PNG_STRING_NEWLINE \
  5. "Copyright (c) 1996-1997 Andreas Dilger" PNG_STRING_NEWLINE \
  6. "Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc." \
  7. PNG_STRING_NEWLINE \
  8. "Portions Copyright (c) 2006-2007 Andrew Smith" PNG_STRING_NEWLINE \
  9. "Portions Copyright (c) 2008-2023 Max Stepin" PNG_STRING_NEWLINE ;
  10. #endif
  11. ====================COPYRIGHT====================
  12. * Copyright (c) 1995-2023 The PNG Reference Library Authors.
  13. * Copyright (c) 2018-2023 Cosmin Truta.
  14. * Copyright (c) 2000-2002, 2004, 2006-2018 Glenn Randers-Pehrson.
  15. * Copyright (c) 1996-1997 Andreas Dilger.
  16. * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
  17. ====================COPYRIGHT====================
  18. * Copyright (c) 2018 Cosmin Truta
  19. * Copyright (c) 1998-2002,2004,2006-2013 Glenn Randers-Pehrson
  20. * Copyright (c) 1996-1997 Andreas Dilger
  21. * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
  22. ====================COPYRIGHT====================
  23. * Copyright (c) 2018 Cosmin Truta
  24. * Copyright (c) 1998-2002,2004,2006-2013,2018 Glenn Randers-Pehrson
  25. * Copyright (c) 1996-1997 Andreas Dilger
  26. * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
  27. ====================COPYRIGHT====================
  28. * Copyright (c) 2018 Cosmin Truta
  29. * Copyright (c) 1998-2002,2004,2006-2014,2016 Glenn Randers-Pehrson
  30. * Copyright (c) 1996-1997 Andreas Dilger
  31. * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
  32. ====================COPYRIGHT====================
  33. * Copyright (c) 2018 Cosmin Truta
  34. * Copyright (c) 1998-2002,2004,2006-2014,2016,2018 Glenn Randers-Pehrson
  35. * Copyright (c) 1996-1997 Andreas Dilger
  36. * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
  37. ====================COPYRIGHT====================
  38. * Copyright (c) 2018 Cosmin Truta
  39. * Copyright (c) 1998-2002,2004,2006-2017 Glenn Randers-Pehrson
  40. * Copyright (c) 1996-1997 Andreas Dilger
  41. * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
  42. ====================COPYRIGHT====================
  43. * Copyright (c) 2018 Cosmin Truta
  44. * Copyright (c) 2014,2017 Glenn Randers-Pehrson
  45. * Written by Mans Rullgard, 2011.
  46. ====================COPYRIGHT====================
  47. * Copyright (c) 2018 Cosmin Truta
  48. * Copyright (c) 2016 Glenn Randers-Pehrson
  49. * Written by Mandar Sahastrabuddhe, August 2016.
  50. ====================COPYRIGHT====================
  51. * Copyright (c) 2018 Cosmin Truta
  52. * Copyright (c) 2016-2017 Glenn Randers-Pehrson
  53. * Written by Mike Klein and Matt Sarett
  54. * Derived from arm/filter_neon_intrinsics.c
  55. ====================COPYRIGHT====================
  56. * Copyright (c) 2018 Cosmin Truta
  57. * Copyright (c) 2017 Glenn Randers-Pehrson
  58. * Written by Vadim Barkov, 2017.
  59. ====================COPYRIGHT====================
  60. * Copyright (c) 2018-2019 Cosmin Truta
  61. * Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson
  62. * Copyright (c) 1996-1997 Andreas Dilger
  63. * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
  64. ====================COPYRIGHT====================
  65. * Copyright (c) 2018-2019 Cosmin Truta
  66. * Copyright (c) 2017-2018 Arm Holdings. All rights reserved.
  67. ====================COPYRIGHT====================
  68. * Copyright (c) 2018-2022 Cosmin Truta
  69. * Copyright (c) 1998-2002,2004,2006-2016,2018 Glenn Randers-Pehrson
  70. * Copyright (c) 1996-1997 Andreas Dilger
  71. * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
  72. ====================COPYRIGHT====================
  73. * Copyright (c) 2018-2022 Cosmin Truta
  74. * Copyright (c) 2014,2016 Glenn Randers-Pehrson
  75. * Written by Mans Rullgard, 2011.
  76. ====================COPYRIGHT====================
  77. * Copyright (c) 2018-2023 Cosmin Truta
  78. * Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson
  79. * Copyright (c) 1996-1997 Andreas Dilger
  80. * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
  81. ====================COPYRIGHT====================
  82. * Copyright (c) 2018-2023 Cosmin Truta
  83. * Copyright (c) 1998-2018 Glenn Randers-Pehrson
  84. * Copyright (c) 1996-1997 Andreas Dilger
  85. * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
  86. ====================COPYRIGHT====================
  87. Copyright (c) 2006-2007 Andrew Smith, Copyright (c) 2008-2023 Max Stepin,
  88. and are delimited by "#ifdef PNG_APNG_SUPPORTED / #endif" directives
  89. surrounding them in the modified libpng source files.
  90. ====================COPYRIGHT====================
  91. Copyright (c) 2022 Cosmin Truta
  92. Copyright (c) 1998-2002,2006-2016 Glenn Randers-Pehrson
  93. This document is released under the libpng license.
  94. For conditions of distribution and use, see the disclaimer
  95. ====================COPYRIGHT====================
  96. libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are
  97. Copyright (c) 1998-2000 Glenn Randers-Pehrson, are derived from
  98. libpng-0.96, and are distributed according to the same disclaimer and
  99. license as libpng-0.96, with the following individuals added to the
  100. list of Contributing Authors:
  101. ====================File: INSTALL====================
  102. Installing libpng
  103. Contents
  104. I. Simple installation
  105. II. Rebuilding the configure scripts
  106. III. Using scripts/makefile*
  107. IV. Using cmake
  108. V. Directory structure
  109. VI. Building with project files
  110. VII. Building with makefiles
  111. VIII. Configuring libpng for 16-bit platforms
  112. IX. Configuring for DOS
  113. X. Configuring for Medium Model
  114. XI. Prepending a prefix to exported symbols
  115. XII. Configuring for compiler xxx:
  116. XIII. Removing unwanted object code
  117. XIV. Enabling or disabling hardware optimizations
  118. XV. Changes to the build and configuration of libpng in libpng-1.5.x
  119. XVI. Setjmp/longjmp issues
  120. XVII. Common linking failures
  121. XVIII. Other sources of information about libpng
  122. I. Simple installation
  123. On Unix/Linux and similar systems, you can simply type
  124. ./configure [--prefix=/path]
  125. make check
  126. make install
  127. and ignore the rest of this document. "/path" is the path to the directory
  128. where you want to install the libpng "lib", "include", and "bin"
  129. subdirectories.
  130. If you downloaded a GIT clone, you will need to run ./autogen.sh before
  131. running ./configure, to create "configure" and "Makefile.in" which are
  132. not included in the GIT repository.
  133. Note that "configure" is only included in the "*.tar" distributions and not
  134. in the "*.zip" or "*.7z" distributions. If you downloaded one of those
  135. distributions, see "Building with project files" or "Building with makefiles",
  136. below.
  137. II. Rebuilding the configure scripts
  138. If configure does not work on your system, or if you have a need to
  139. change configure.ac or Makefile.am, and you have a reasonably
  140. up-to-date set of tools, running ./autogen.sh in a git clone before
  141. running ./configure may fix the problem. To be really sure that you
  142. aren't using any of the included pre-built scripts, especially if you
  143. are building from a tar distribution instead of a git distribution,
  144. do this:
  145. ./configure --enable-maintainer-mode
  146. make maintainer-clean
  147. ./autogen.sh --maintainer --clean
  148. ./autogen.sh --maintainer
  149. ./configure [--prefix=/path] [other options]
  150. make
  151. make install
  152. make check
  153. III. Using scripts/makefile*
  154. Instead, you can use one of the custom-built makefiles in the
  155. "scripts" directory
  156. cp scripts/pnglibconf.h.prebuilt pnglibconf.h
  157. cp scripts/makefile.system makefile
  158. make test
  159. make install
  160. The files that are presently available in the scripts directory
  161. are listed and described in scripts/README.txt.
  162. Or you can use one of the "projects" in the "projects" directory.
  163. Before installing libpng, you must first install zlib, if it
  164. is not already on your system. zlib can usually be found
  165. wherever you got libpng; otherwise go to https://zlib.net/. You can
  166. place zlib in the same directory as libpng or in another directory.
  167. If your system already has a preinstalled zlib you will still need
  168. to have access to the zlib.h and zconf.h include files that
  169. correspond to the version of zlib that's installed.
  170. If you wish to test with a particular zlib that is not first in the
  171. standard library search path, put ZLIBLIB, ZLIBINC, CPPFLAGS, LDFLAGS,
  172. and LD_LIBRARY_PATH in your environment before running "make test"
  173. or "make distcheck":
  174. ZLIBLIB=/path/to/lib export ZLIBLIB
  175. ZLIBINC=/path/to/include export ZLIBINC
  176. CPPFLAGS="-I$ZLIBINC" export CPPFLAGS
  177. LDFLAGS="-L$ZLIBLIB" export LDFLAGS
  178. LD_LIBRARY_PATH="$ZLIBLIB:$LD_LIBRARY_PATH" export LD_LIBRARY_PATH
  179. If you are using one of the makefile scripts, put ZLIBLIB and ZLIBINC
  180. in your environment and type
  181. make ZLIBLIB=$ZLIBLIB ZLIBINC=$ZLIBINC test
  182. IV. Using cmake
  183. If you want to use "cmake" (see www.cmake.org), type
  184. cmake . -DCMAKE_INSTALL_PREFIX=/path
  185. make
  186. make install
  187. As when using the simple configure method described above, "/path" points to
  188. the installation directory where you want to put the libpng "lib", "include",
  189. and "bin" subdirectories.
  190. V. Directory structure
  191. You can rename the directories that you downloaded (they
  192. might be called "libpng-x.y.z" or "libpngNN" and "zlib-1.2.8"
  193. or "zlib128") so that you have directories called "zlib" and "libpng".
  194. Your directory structure should look like this:
  195. .. (the parent directory)
  196. libpng (this directory)
  197. INSTALL (this file)
  198. README
  199. *.h, *.c => libpng source files
  200. CMakeLists.txt => "cmake" script
  201. ci
  202. ci_*.sh
  203. configuration files:
  204. configure.ac, configure, Makefile.am, Makefile.in,
  205. autogen.sh, config.guess, ltmain.sh, missing, libpng.pc.in,
  206. libpng-config.in, aclocal.m4, config.h.in, config.sub,
  207. depcomp, install-sh, mkinstalldirs, test-pngtest.sh, etc.
  208. contrib
  209. arm-neon, conftest, examples, gregbook, libtests, pngminim,
  210. pngminus, pngsuite, tools, visupng
  211. projects
  212. owatcom, visualc71, vstudio
  213. scripts
  214. makefile.*
  215. *.def (module definition files)
  216. etc.
  217. pngtest.png
  218. etc.
  219. zlib
  220. README, *.h, *.c, contrib, etc.
  221. If the line endings in the files look funny, you may wish to get the other
  222. distribution of libpng. It is available in both tar.gz (UNIX style line
  223. endings) and zip (DOS style line endings) formats.
  224. VI. Building with project files
  225. If you are building libpng with Microsoft Visual Studio, you can enter
  226. the directory projects\visualc71 or projects\vstudio and follow the
  227. instructions in README.txt.
  228. Otherwise, enter the zlib directory and follow the instructions in
  229. zlib/README, then come back here and run "configure" or choose the
  230. appropriate makefile in the scripts directory.
  231. VII. Building with makefiles
  232. Copy the file (or files) that you need from the
  233. scripts directory into this directory, for example
  234. UNIX example:
  235. cp scripts/makefile.std Makefile
  236. make
  237. Windows example:
  238. nmake -f scripts\makefile.vcwin32
  239. Read the makefile to see if you need to change any source or
  240. target directories to match your preferences.
  241. Then read pnglibconf.dfa to see if you want to make any configuration
  242. changes.
  243. Then just run "make" which will create the libpng library in
  244. this directory and "make test" which will run a quick test that reads
  245. the "pngtest.png" file and writes a "pngout.png" file that should be
  246. identical to it. Look for "9782 zero samples" in the output of the
  247. test. For more confidence, you can run another test by typing
  248. "pngtest pngnow.png" and looking for "289 zero samples" in the output.
  249. Also, you can run "pngtest -m contrib/pngsuite/*.png" and compare
  250. your output with the result shown in contrib/pngsuite/README.
  251. Most of the makefiles used to allow you to run "make install" to put
  252. the library in its final resting place, but that feature is no longer
  253. supported. The only tested and supported manners to install libpng are
  254. the conventional build and install procedures driven by the configure
  255. script or by the CMake file.
  256. VIII. Configuring for DOS and other 16-bit platforms
  257. Officially, the support for 16-bit platforms has been removed.
  258. For DOS users who only have access to the lower 640K, you will
  259. have to limit zlib's memory usage via a png_set_compression_mem_level()
  260. call. See zlib.h or zconf.h in the zlib library for more information.
  261. You may be or may not be in luck if you target the "large" memory model,
  262. but all the smaller models ("small", "compact" and "medium") are known
  263. to be unworkable. For DOS users who have access beyond the lower 640K,
  264. a "flat" 32-bit DOS model (such as DJGPP) is strongly recommended.
  265. For DOS users who only have access to the lower 640K, you will have to
  266. limit zlib's memory usage via a png_set_compression_mem_level() call.
  267. You will also have to look into zconf.h to tell zlib (and thus libpng)
  268. that it cannot allocate more than 64K at a time. Even if you can, the
  269. memory won't be accessible. Therefore, you should limit zlib and libpng
  270. to 64K by defining MAXSEG_64K.
  271. IX. Prepending a prefix to exported symbols
  272. Starting with libpng-1.6.0, you can configure libpng (when using the
  273. "configure" script) to prefix all exported symbols by means of the
  274. configuration option "--with-libpng-prefix=FOO_", where FOO_ can be any
  275. string beginning with a letter and containing only uppercase
  276. and lowercase letters, digits, and the underscore (i.e., a C language
  277. identifier). This creates a set of macros in pnglibconf.h, so this is
  278. transparent to applications; their function calls get transformed by
  279. the macros to use the modified names.
  280. X. Configuring for compiler xxx:
  281. All includes for libpng are in pngconf.h. If you need to add, change
  282. or delete an include, this is the place to do it.
  283. The includes that are not needed outside libpng are placed in pngpriv.h,
  284. which is only used by the routines inside libpng itself.
  285. The files in libpng proper only include pngpriv.h and png.h, which
  286. in turn includes pngconf.h and, as of libpng-1.5.0, pnglibconf.h.
  287. As of libpng-1.5.0, pngpriv.h also includes three other private header
  288. files, pngstruct.h, pnginfo.h, and pngdebug.h, which contain material
  289. that previously appeared in the public headers.
  290. XI. Removing unwanted object code
  291. There are a bunch of #define's in pngconf.h that control what parts of
  292. libpng are compiled. All the defines end in _SUPPORTED. If you are
  293. never going to use a capability, you can change the #define to #undef
  294. before recompiling libpng and save yourself code and data space, or
  295. you can turn off individual capabilities with defines that begin with
  296. "PNG_NO_".
  297. In libpng-1.5.0 and later, the #define's are in pnglibconf.h instead.
  298. You can also turn all of the transforms and ancillary chunk capabilities
  299. off en masse with compiler directives that define
  300. PNG_NO_READ[or WRITE]_TRANSFORMS, or PNG_NO_READ[or WRITE]_ANCILLARY_CHUNKS,
  301. or all four, along with directives to turn on any of the capabilities that
  302. you do want. The PNG_NO_READ[or WRITE]_TRANSFORMS directives disable the
  303. extra transformations but still leave the library fully capable of reading
  304. and writing PNG files with all known public chunks. Use of the
  305. PNG_NO_READ[or WRITE]_ANCILLARY_CHUNKS directive produces a library
  306. that is incapable of reading or writing ancillary chunks. If you are
  307. not using the progressive reading capability, you can turn that off
  308. with PNG_NO_PROGRESSIVE_READ (don't confuse this with the INTERLACING
  309. capability, which you'll still have).
  310. All the reading and writing specific code are in separate files, so the
  311. linker should only grab the files it needs. However, if you want to
  312. make sure, or if you are building a stand alone library, all the
  313. reading files start with "pngr" and all the writing files start with "pngw".
  314. The files that don't match either (like png.c, pngtrans.c, etc.)
  315. are used for both reading and writing, and always need to be included.
  316. The progressive reader is in pngpread.c
  317. If you are creating or distributing a dynamically linked library (a .so
  318. or DLL file), you should not remove or disable any parts of the library,
  319. as this will cause applications linked with different versions of the
  320. library to fail if they call functions not available in your library.
  321. The size of the library itself should not be an issue, because only
  322. those sections that are actually used will be loaded into memory.
  323. XII. Enabling or disabling hardware optimizations
  324. Certain hardware capabilities, such as the Intel SSE instructions,
  325. are normally detected at run time. Enable them with configure options
  326. such as one of
  327. --enable-arm-neon=yes
  328. --enable-mips-msa=yes
  329. --enable-intel-sse=yes
  330. --enable-powerpc-vsx=yes
  331. or enable them all at once with
  332. --enable-hardware-optimizations=yes
  333. or, if you are not using "configure", you can use one
  334. or more of
  335. CPPFLAGS += "-DPNG_ARM_NEON"
  336. CPPFLAGS += "-DPNG_MIPS_MSA"
  337. CPPFLAGS += "-DPNG_INTEL_SSE"
  338. CPPFLAGS += "-DPNG_POWERPC_VSX"
  339. See for example scripts/makefile.linux-opt
  340. If you wish to avoid using them,
  341. you can disable them via the configure option
  342. --disable-hardware-optimizations
  343. to disable them all, or
  344. --enable-intel-sse=no
  345. to disable a particular one,
  346. or via compiler-command options such as
  347. CPPFLAGS += "-DPNG_ARM_NEON_OPT=0, -DPNG_MIPS_MSA_OPT=0,
  348. -DPNG_INTEL_SSE_OPT=0, -DPNG_POWERPC_VSX_OPT=0"
  349. If you are using cmake, hardware optimizations are "on"
  350. by default. To disable them, use
  351. cmake . -DPNG_ARM_NEON=no -DPNG_INTEL_SSE=no \
  352. -DPNG_MIPS_MSA=no -DPNG_POWERPC_VSX=no
  353. or disable them all at once with
  354. cmake . -DPNG_HARDWARE_OPTIMIZATIONS=no
  355. XIII. Changes to the build and configuration of libpng in libpng-1.5.x
  356. Details of internal changes to the library code can be found in the CHANGES
  357. file and in the GIT repository logs. These will be of no concern to the vast
  358. majority of library users or builders; however, the few who configure libpng
  359. to a non-default feature set may need to change how this is done.
  360. There should be no need for library builders to alter build scripts if
  361. these use the distributed build support - configure or the makefiles -
  362. however, users of the makefiles may care to update their build scripts
  363. to build pnglibconf.h where the corresponding makefile does not do so.
  364. Building libpng with a non-default configuration has changed completely.
  365. The old method using pngusr.h should still work correctly even though the
  366. way pngusr.h is used in the build has been changed; however, library
  367. builders will probably want to examine the changes to take advantage of
  368. new capabilities and to simplify their build system.
  369. A. Specific changes to library configuration capabilities
  370. The exact mechanism used to control attributes of API functions has
  371. changed. A single set of operating system independent macro definitions
  372. is used and operating system specific directives are defined in
  373. pnglibconf.h
  374. As part of this the mechanism used to choose procedure call standards on
  375. those systems that allow a choice has been changed. At present this only
  376. affects certain Microsoft (DOS, Windows) and IBM (OS/2) operating systems
  377. running on Intel processors. As before, PNGAPI is defined where required
  378. to control the exported API functions; however, two new macros, PNGCBAPI
  379. and PNGCAPI, are used instead for callback functions (PNGCBAPI) and
  380. (PNGCAPI) for functions that must match a C library prototype (currently
  381. only png_longjmp_ptr, which must match the C longjmp function.) The new
  382. approach is documented in pngconf.h
  383. Despite these changes, libpng 1.5.0 only supports the native C function
  384. calling standard on those platforms tested so far ("__cdecl" on Microsoft
  385. Windows). This is because the support requirements for alternative
  386. calling conventions seem to no longer exist. Developers who find it
  387. necessary to set PNG_API_RULE to 1 should advise the mailing list
  388. (png-mng-implement) of this and library builders who use Openwatcom and
  389. therefore set PNG_API_RULE to 2 should also contact the mailing list.
  390. B. Changes to the configuration mechanism
  391. Prior to libpng-1.5.0 library builders who needed to configure libpng
  392. had either to modify the exported pngconf.h header file to add system
  393. specific configuration or had to write feature selection macros into
  394. pngusr.h and cause this to be included into pngconf.h by defining
  395. PNG_USER_CONFIG. The latter mechanism had the disadvantage that an
  396. application built without PNG_USER_CONFIG defined would see the
  397. unmodified, default, libpng API and thus would probably fail to link.
  398. These mechanisms still work in the configure build and in any makefile
  399. build that builds pnglibconf.h, although the feature selection macros
  400. have changed somewhat as described above. In 1.5.0, however, pngusr.h is
  401. processed only once, at the time the exported header file pnglibconf.h is
  402. built. pngconf.h no longer includes pngusr.h; therefore, pngusr.h is ignored
  403. after the build of pnglibconf.h and it is never included in an application
  404. build.
  405. The formerly used alternative of adding a list of feature macros to the
  406. CPPFLAGS setting in the build also still works; however, the macros will be
  407. copied to pnglibconf.h and this may produce macro redefinition warnings
  408. when the individual C files are compiled.
  409. All configuration now only works if pnglibconf.h is built from
  410. scripts/pnglibconf.dfa. This requires the program awk. Brian Kernighan
  411. (the original author of awk) maintains C source code of that awk and this
  412. and all known later implementations (often called by subtly different
  413. names - nawk and gawk for example) are adequate to build pnglibconf.h.
  414. The Sun Microsystems (now Oracle) program 'awk' is an earlier version
  415. and does not work; this may also apply to other systems that have a
  416. functioning awk called 'nawk'.
  417. Configuration options are now documented in scripts/pnglibconf.dfa. This
  418. file also includes dependency information that ensures a configuration is
  419. consistent; that is, if a feature is switched off, dependent features are
  420. also switched off. As a recommended alternative to using feature macros in
  421. pngusr.h a system builder may also define equivalent options in pngusr.dfa
  422. (or, indeed, any file) and add that to the configuration by setting
  423. DFA_XTRA to the file name. The makefiles in contrib/pngminim illustrate
  424. how to do this, and also illustrate a case where pngusr.h is still required.
  425. After you have built libpng, the definitions that were recorded in
  426. pnglibconf.h are available to your application (pnglibconf.h is included
  427. in png.h and gets installed alongside png.h and pngconf.h in your
  428. $PREFIX/include directory). Do not edit pnglibconf.h after you have built
  429. libpng, because than the settings would not accurately reflect the settings
  430. that were used to build libpng.
  431. XIV. Setjmp/longjmp issues
  432. Libpng uses setjmp()/longjmp() for error handling. Unfortunately setjmp()
  433. is known to be not thread-safe on some platforms and we don't know of
  434. any platform where it is guaranteed to be thread-safe. Therefore, if
  435. your application is going to be using multiple threads, you should
  436. configure libpng with PNG_NO_SETJMP in your pngusr.dfa file, with
  437. -DPNG_NO_SETJMP on your compile line, or with
  438. #undef PNG_SETJMP_SUPPORTED
  439. in your pnglibconf.h or pngusr.h.
  440. Starting with libpng-1.6.0, the library included a "simplified API".
  441. This requires setjmp/longjmp, so you must either build the library
  442. with PNG_SETJMP_SUPPORTED defined, or with PNG_SIMPLIFIED_READ_SUPPORTED
  443. and PNG_SIMPLIFIED_WRITE_SUPPORTED undefined.
  444. XV. Common linking failures
  445. If your application fails to find libpng or zlib entries while linking:
  446. Be sure "-lz" appears after "-lpng" on your linking command.
  447. Be sure you have built libpng, zlib, and your application for the
  448. same platform (e.g., 32-bit or 64-bit).
  449. If you are using the vstudio project, observe the WARNING in
  450. project/vstudio/README.txt.
  451. XVI. Other sources of information about libpng:
  452. Further information can be found in the README and libpng-manual.txt
  453. files, in the individual makefiles, in png.h, and the manual pages
  454. libpng.3 and png.5.
  455. Copyright (c) 2022 Cosmin Truta
  456. Copyright (c) 1998-2002,2006-2016 Glenn Randers-Pehrson
  457. This document is released under the libpng license.
  458. For conditions of distribution and use, see the disclaimer
  459. and license in png.h.
  460. ====================File: LICENSE====================
  461. COPYRIGHT NOTICE, DISCLAIMER, and LICENSE
  462. =========================================
  463. This modified version of libpng code adds animated PNG support and is
  464. released under the libpng license described below. The modifications are
  465. Copyright (c) 2006-2007 Andrew Smith, Copyright (c) 2008-2023 Max Stepin,
  466. and are delimited by "#ifdef PNG_APNG_SUPPORTED / #endif" directives
  467. surrounding them in the modified libpng source files.
  468. PNG Reference Library License version 2
  469. ---------------------------------------
  470. * Copyright (c) 1995-2023 The PNG Reference Library Authors.
  471. * Copyright (c) 2018-2023 Cosmin Truta.
  472. * Copyright (c) 2000-2002, 2004, 2006-2018 Glenn Randers-Pehrson.
  473. * Copyright (c) 1996-1997 Andreas Dilger.
  474. * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
  475. The software is supplied "as is", without warranty of any kind,
  476. express or implied, including, without limitation, the warranties
  477. of merchantability, fitness for a particular purpose, title, and
  478. non-infringement. In no event shall the Copyright owners, or
  479. anyone distributing the software, be liable for any damages or
  480. other liability, whether in contract, tort or otherwise, arising
  481. from, out of, or in connection with the software, or the use or
  482. other dealings in the software, even if advised of the possibility
  483. of such damage.
  484. Permission is hereby granted to use, copy, modify, and distribute
  485. this software, or portions hereof, for any purpose, without fee,
  486. subject to the following restrictions:
  487. 1. The origin of this software must not be misrepresented; you
  488. must not claim that you wrote the original software. If you
  489. use this software in a product, an acknowledgment in the product
  490. documentation would be appreciated, but is not required.
  491. 2. Altered source versions must be plainly marked as such, and must
  492. not be misrepresented as being the original software.
  493. 3. This Copyright notice may not be removed or altered from any
  494. source or altered source distribution.
  495. PNG Reference Library License version 1 (for libpng 0.5 through 1.6.35)
  496. -----------------------------------------------------------------------
  497. libpng versions 1.0.7, July 1, 2000, through 1.6.35, July 15, 2018 are
  498. Copyright (c) 2000-2002, 2004, 2006-2018 Glenn Randers-Pehrson, are
  499. derived from libpng-1.0.6, and are distributed according to the same
  500. disclaimer and license as libpng-1.0.6 with the following individuals
  501. added to the list of Contributing Authors:
  502. Simon-Pierre Cadieux
  503. Eric S. Raymond
  504. Mans Rullgard
  505. Cosmin Truta
  506. Gilles Vollant
  507. James Yu
  508. Mandar Sahastrabuddhe
  509. Google Inc.
  510. Vadim Barkov
  511. and with the following additions to the disclaimer:
  512. There is no warranty against interference with your enjoyment of
  513. the library or against infringement. There is no warranty that our
  514. efforts or the library will fulfill any of your particular purposes
  515. or needs. This library is provided with all faults, and the entire
  516. risk of satisfactory quality, performance, accuracy, and effort is
  517. with the user.
  518. Some files in the "contrib" directory and some configure-generated
  519. files that are distributed with libpng have other copyright owners, and
  520. are released under other open source licenses.
  521. libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are
  522. Copyright (c) 1998-2000 Glenn Randers-Pehrson, are derived from
  523. libpng-0.96, and are distributed according to the same disclaimer and
  524. license as libpng-0.96, with the following individuals added to the
  525. list of Contributing Authors:
  526. Tom Lane
  527. Glenn Randers-Pehrson
  528. Willem van Schaik
  529. libpng versions 0.89, June 1996, through 0.96, May 1997, are
  530. Copyright (c) 1996-1997 Andreas Dilger, are derived from libpng-0.88,
  531. and are distributed according to the same disclaimer and license as
  532. libpng-0.88, with the following individuals added to the list of
  533. Contributing Authors:
  534. John Bowler
  535. Kevin Bracey
  536. Sam Bushell
  537. Magnus Holmgren
  538. Greg Roelofs
  539. Tom Tanner
  540. Some files in the "scripts" directory have other copyright owners,
  541. but are released under this license.
  542. libpng versions 0.5, May 1995, through 0.88, January 1996, are
  543. Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
  544. For the purposes of this copyright and license, "Contributing Authors"
  545. is defined as the following set of individuals:
  546. Andreas Dilger
  547. Dave Martindale
  548. Guy Eric Schalnat
  549. Paul Schmidt
  550. Tim Wegner
  551. The PNG Reference Library is supplied "AS IS". The Contributing
  552. Authors and Group 42, Inc. disclaim all warranties, expressed or
  553. implied, including, without limitation, the warranties of
  554. merchantability and of fitness for any purpose. The Contributing
  555. Authors and Group 42, Inc. assume no liability for direct, indirect,
  556. incidental, special, exemplary, or consequential damages, which may
  557. result from the use of the PNG Reference Library, even if advised of
  558. the possibility of such damage.
  559. Permission is hereby granted to use, copy, modify, and distribute this
  560. source code, or portions hereof, for any purpose, without fee, subject
  561. to the following restrictions:
  562. 1. The origin of this source code must not be misrepresented.
  563. 2. Altered versions must be plainly marked as such and must not
  564. be misrepresented as being the original source.
  565. 3. This Copyright notice may not be removed or altered from any
  566. source or altered source distribution.
  567. The Contributing Authors and Group 42, Inc. specifically permit,
  568. without fee, and encourage the use of this source code as a component
  569. to supporting the PNG file format in commercial products. If you use
  570. this source code in a product, acknowledgment is not required but would
  571. be appreciated.
  572. ====================File: TRADEMARK====================
  573. TRADEMARK
  574. =========
  575. The name "libpng" has not been registered by the Copyright owners
  576. as a trademark in any jurisdiction. However, because libpng has
  577. been distributed and maintained world-wide, continually since 1995,
  578. the Copyright owners claim "common-law trademark protection" in any
  579. jurisdiction where common-law trademark is recognized.
  580. ====================Libpng====================
  581. INSTALL => Instructions to install libpng
  582. LICENSE => License to use and redistribute libpng
  583. ====================Libpng====================
  584. necessarily under the libpng license, and that some makefiles have
  585. ====================Libpng====================
  586. the libpng license.
  587. ====================Libpng====================
  588. Added a reference to the libpng license in each file.
  589. ====================Libpng====================
  590. Fixed a typo in the libpng license v2.
  591. ====================Libpng====================
  592. Refer to the libpng license instead of the libpng license in each file.
  593. ====================Libpng====================
  594. * Copyright (c) 1996-1997 Andreas Dilger, are derived from libpng-0.88,
  595. ====================Libpng====================
  596. * Copyright (c) 1998-2000 Glenn Randers-Pehrson, are derived from
  597. * libpng-0.96, and are distributed according to the same disclaimer and
  598. ====================Libpng====================
  599. * Some files in the "scripts" directory have other copyright owners,
  600. * but are released under this license.
  601. *
  602. * libpng versions 0.5, May 1995, through 0.88, January 1996, are
  603. ====================Libpng====================
  604. * This code is released under the libpng license.
  605. * For conditions of distribution and use, see the disclaimer
  606. * and license in png.h
  607. ====================Libpng====================
  608. * This code is released under the libpng license. (See LICENSE, below.)
  609. ====================Libpng====================
  610. * derived from libpng-1.0.6, and are distributed according to the same
  611. ====================Libpng====================
  612. * derived from libpng-1.0.6, and are distributed according to the same
  613. * disclaimer and license as libpng-1.0.6 with the following individuals
  614. * added to the list of Contributing Authors:
  615. *
  616. * Simon-Pierre Cadieux
  617. * Eric S. Raymond
  618. * Mans Rullgard
  619. * Cosmin Truta
  620. * Gilles Vollant
  621. * James Yu
  622. * Mandar Sahastrabuddhe
  623. * Google Inc.
  624. * Vadim Barkov
  625. *
  626. * and with the following additions to the disclaimer:
  627. *
  628. * There is no warranty against interference with your enjoyment of
  629. * the library or against infringement. There is no warranty that our
  630. * efforts or the library will fulfill any of your particular purposes
  631. * or needs. This library is provided with all faults, and the entire
  632. * risk of satisfactory quality, performance, accuracy, and effort is
  633. * with the user.
  634. ====================Libpng====================
  635. * libpng-0.96, and are distributed according to the same disclaimer and
  636. * license as libpng-0.96, with the following individuals added to the
  637. * list of Contributing Authors:
  638. *
  639. * Tom Lane
  640. * Glenn Randers-Pehrson
  641. * Willem van Schaik
  642. *
  643. * libpng versions 0.89, June 1996, through 0.96, May 1997, are
  644. * Copyright (c) 1996-1997 Andreas Dilger, are derived from libpng-0.88,
  645. * and are distributed according to the same disclaimer and license as
  646. * libpng-0.88, with the following individuals added to the list of
  647. * Contributing Authors:
  648. *
  649. * John Bowler
  650. * Kevin Bracey
  651. * Sam Bushell
  652. * Magnus Holmgren
  653. * Greg Roelofs
  654. * Tom Tanner
  655. *
  656. * Some files in the "scripts" directory have other copyright owners,
  657. * but are released under this license.
  658. *
  659. * libpng versions 0.5, May 1995, through 0.88, January 1996, are
  660. * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
  661. *
  662. * For the purposes of this copyright and license, "Contributing Authors"
  663. * is defined as the following set of individuals:
  664. *
  665. * Andreas Dilger
  666. * Dave Martindale
  667. * Guy Eric Schalnat
  668. * Paul Schmidt
  669. * Tim Wegner
  670. *
  671. * The PNG Reference Library is supplied "AS IS". The Contributing
  672. * Authors and Group 42, Inc. disclaim all warranties, expressed or
  673. * implied, including, without limitation, the warranties of
  674. * merchantability and of fitness for any purpose. The Contributing
  675. * Authors and Group 42, Inc. assume no liability for direct, indirect,
  676. * incidental, special, exemplary, or consequential damages, which may
  677. * result from the use of the PNG Reference Library, even if advised of
  678. * the possibility of such damage.
  679. *
  680. * Permission is hereby granted to use, copy, modify, and distribute this
  681. * source code, or portions hereof, for any purpose, without fee, subject
  682. * to the following restrictions:
  683. *
  684. * 1. The origin of this source code must not be misrepresented.
  685. *
  686. * 2. Altered versions must be plainly marked as such and must not
  687. * be misrepresented as being the original source.
  688. *
  689. * 3. This Copyright notice may not be removed or altered from any
  690. * source or altered source distribution.
  691. *
  692. * The Contributing Authors and Group 42, Inc. specifically permit,
  693. * without fee, and encourage the use of this source code as a component
  694. * to supporting the PNG file format in commercial products. If you use
  695. * this source code in a product, acknowledgment is not required but would
  696. * be appreciated.
  697. ====================Libpng====================
  698. * released under the libpng license described below. The modifications are
  699. ====================Libpng====================
  700. /* This code is released under the libpng license. */
  701. /* For conditions of distribution and use, see the disclaimer */
  702. /* and license in png.h */
  703. ====================Libpng====================
  704. Copyright (c) 1996-1997 Andreas Dilger, are derived from libpng-0.88,
  705. ====================Libpng====================
  706. Copyright (c) 1998-2000 Glenn Randers-Pehrson, are derived from
  707. libpng-0.96, and are distributed according to the same disclaimer and
  708. ====================Libpng====================
  709. Some files in the "scripts" directory have other copyright owners,
  710. but are released under this license.
  711. libpng versions 0.5, May 1995, through 0.88, January 1996, are
  712. ====================Libpng====================
  713. TRADEMARK
  714. =========
  715. The name "libpng" has not been registered by the Copyright owners
  716. as a trademark in any jurisdiction. However, because libpng has
  717. been distributed and maintained world-wide, continually since 1995,
  718. the Copyright owners claim "common-law trademark protection" in any
  719. jurisdiction where common-law trademark is recognized.
  720. ====================Libpng====================
  721. This document is released under the libpng license.
  722. For conditions of distribution and use, see the disclaimer
  723. and license in png.h.
  724. ====================Libpng====================
  725. derived from libpng-1.0.6, and are distributed according to the same
  726. ====================Libpng====================
  727. derived from libpng-1.0.6, and are distributed according to the same
  728. disclaimer and license as libpng-1.0.6 with the following individuals
  729. ====================Libpng====================
  730. libpng-0.96, and are distributed according to the same disclaimer and
  731. license as libpng-0.96, with the following individuals added to the
  732. list of Contributing Authors:
  733. Tom Lane
  734. Glenn Randers-Pehrson
  735. Willem van Schaik
  736. libpng versions 0.89, June 1996, through 0.96, May 1997, are
  737. Copyright (c) 1996-1997 Andreas Dilger, are derived from libpng-0.88,
  738. and are distributed according to the same disclaimer and license as
  739. libpng-0.88, with the following individuals added to the list of
  740. Contributing Authors:
  741. John Bowler
  742. Kevin Bracey
  743. Sam Bushell
  744. Magnus Holmgren
  745. Greg Roelofs
  746. Tom Tanner
  747. Some files in the "scripts" directory have other copyright owners,
  748. but are released under this license.
  749. libpng versions 0.5, May 1995, through 0.88, January 1996, are
  750. Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
  751. For the purposes of this copyright and license, "Contributing Authors"
  752. is defined as the following set of individuals:
  753. Andreas Dilger
  754. Dave Martindale
  755. Guy Eric Schalnat
  756. Paul Schmidt
  757. Tim Wegner
  758. The PNG Reference Library is supplied "AS IS". The Contributing
  759. Authors and Group 42, Inc. disclaim all warranties, expressed or
  760. implied, including, without limitation, the warranties of
  761. merchantability and of fitness for any purpose. The Contributing
  762. Authors and Group 42, Inc. assume no liability for direct, indirect,
  763. incidental, special, exemplary, or consequential damages, which may
  764. result from the use of the PNG Reference Library, even if advised of
  765. the possibility of such damage.
  766. Permission is hereby granted to use, copy, modify, and distribute this
  767. source code, or portions hereof, for any purpose, without fee, subject
  768. to the following restrictions:
  769. 1. The origin of this source code must not be misrepresented.
  770. 2. Altered versions must be plainly marked as such and must not
  771. be misrepresented as being the original source.
  772. 3. This Copyright notice may not be removed or altered from any
  773. source or altered source distribution.
  774. The Contributing Authors and Group 42, Inc. specifically permit,
  775. without fee, and encourage the use of this source code as a component
  776. to supporting the PNG file format in commercial products. If you use
  777. this source code in a product, acknowledgment is not required but would
  778. be appreciated.
  779. ====================Libpng====================
  780. other copyright owners, but are released under the libpng license.
  781. ====================Libpng====================
  782. released under the libpng license described below. The modifications are
  783. ====================libpng-2.0====================
  784. * * Copyright (c) 1995-2023 The PNG Reference Library Authors.
  785. * * Copyright (c) 2018-2023 Cosmin Truta.
  786. * * Copyright (c) 2000-2002, 2004, 2006-2018 Glenn Randers-Pehrson.
  787. * * Copyright (c) 1996-1997 Andreas Dilger.
  788. * * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
  789. *
  790. * The software is supplied "as is", without warranty of any kind,
  791. * express or implied, including, without limitation, the warranties
  792. * of merchantability, fitness for a particular purpose, title, and
  793. * non-infringement. In no event shall the Copyright owners, or
  794. * anyone distributing the software, be liable for any damages or
  795. * other liability, whether in contract, tort or otherwise, arising
  796. * from, out of, or in connection with the software, or the use or
  797. * other dealings in the software, even if advised of the possibility
  798. * of such damage.
  799. *
  800. * Permission is hereby granted to use, copy, modify, and distribute
  801. * this software, or portions hereof, for any purpose, without fee,
  802. * subject to the following restrictions:
  803. *
  804. * 1. The origin of this software must not be misrepresented; you
  805. * must not claim that you wrote the original software. If you
  806. * use this software in a product, an acknowledgment in the product
  807. * documentation would be appreciated, but is not required.
  808. *
  809. * 2. Altered source versions must be plainly marked as such, and must
  810. * not be misrepresented as being the original software.
  811. *
  812. * 3. This Copyright notice may not be removed or altered from any
  813. * source or altered source distribution.
  814. ====================libpng-2.0====================
  815. COPYRIGHT NOTICE, DISCLAIMER, and LICENSE
  816. =========================================
  817. This modified version of libpng code adds animated PNG support and is
  818. released under the libpng license described below. The modifications are
  819. Copyright (c) 2006-2007 Andrew Smith, Copyright (c) 2008-2023 Max Stepin,
  820. and are delimited by "#ifdef PNG_APNG_SUPPORTED / #endif" directives
  821. surrounding them in the modified libpng source files.
  822. PNG Reference Library License version 2
  823. ---------------------------------------
  824. * Copyright (c) 1995-2023 The PNG Reference Library Authors.
  825. * Copyright (c) 2018-2023 Cosmin Truta.
  826. * Copyright (c) 2000-2002, 2004, 2006-2018 Glenn Randers-Pehrson.
  827. * Copyright (c) 1996-1997 Andreas Dilger.
  828. * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
  829. The software is supplied "as is", without warranty of any kind,
  830. express or implied, including, without limitation, the warranties
  831. of merchantability, fitness for a particular purpose, title, and
  832. non-infringement. In no event shall the Copyright owners, or
  833. anyone distributing the software, be liable for any damages or
  834. other liability, whether in contract, tort or otherwise, arising
  835. from, out of, or in connection with the software, or the use or
  836. other dealings in the software, even if advised of the possibility
  837. of such damage.
  838. Permission is hereby granted to use, copy, modify, and distribute
  839. this software, or portions hereof, for any purpose, without fee,
  840. subject to the following restrictions:
  841. 1. The origin of this software must not be misrepresented; you
  842. must not claim that you wrote the original software. If you
  843. use this software in a product, an acknowledgment in the product
  844. documentation would be appreciated, but is not required.
  845. 2. Altered source versions must be plainly marked as such, and must
  846. not be misrepresented as being the original software.
  847. 3. This Copyright notice may not be removed or altered from any
  848. source or altered source distribution.