licenses.list.txt 42 KB

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