Release libpng version 1.6.44

This commit is contained in:
Cosmin Truta 2024-09-12 23:44:44 +03:00
parent 88ab4f592d
commit f5e92d7697
17 changed files with 86 additions and 81 deletions

View File

@ -1,13 +1,5 @@
libpng 1.6.44.git libpng 1.6.44 - September 12, 2024
================= ==================================
This is a development version, not intended to be a public release.
It will be replaced by a public release, or by another development
version, at a later time.
libpng 1.6.43 - February 23, 2024
=================================
This is a public release of libpng, intended for use in production code. This is a public release of libpng, intended for use in production code.
@ -17,13 +9,13 @@ Files available for download
Source files with LF line endings (for Unix/Linux): Source files with LF line endings (for Unix/Linux):
* libpng-1.6.43.tar.xz (LZMA-compressed, recommended) * libpng-1.6.44.tar.xz (LZMA-compressed, recommended)
* libpng-1.6.43.tar.gz (deflate-compressed) * libpng-1.6.44.tar.gz (deflate-compressed)
Source files with CRLF line endings (for Windows): Source files with CRLF line endings (for Windows):
* lpng1643.7z (LZMA-compressed, recommended) * lpng1644.7z (LZMA-compressed, recommended)
* lpng1643.zip (deflate-compressed) * lpng1644.zip (deflate-compressed)
Other information: Other information:
@ -33,36 +25,29 @@ Other information:
* TRADEMARK.md * TRADEMARK.md
Changes from version 1.6.42 to version 1.6.43 Changes from version 1.6.43 to version 1.6.44
--------------------------------------------- ---------------------------------------------
* Fixed the row width check in png_check_IHDR(). * Hardened calculations in chroma handling to prevent overflows, and
This corrected a bug that was specific to the 16-bit platforms, relaxed a constraint in cHRM validation to accomodate the standard
and removed a spurious compiler warning from the 64-bit builds. ACES AP1 set of color primaries.
(Reported by Jacek Caban; fixed by John Bowler)
* Added eXIf chunk support to the push-mode reader in pngpread.c.
(Contributed by Chris Blume)
* Added contrib/pngexif for the benefit of the users who would like
to inspect the content of eXIf chunks.
* Added contrib/conftest/basic.dfa, a basic build-time configuration.
(Contributed by John Bowler) (Contributed by John Bowler)
* Fixed a preprocessor condition in pngread.c that broke build-time * Removed the ASM implementation of ARM Neon optimizations and updated
configurations like contrib/conftest/pngcp.dfa. the build accordingly. Only the remaining C implementation shall be
(Contributed by John Bowler) used from now on, thus ensuring the support of the PAC/BTI security
* Added CMake build support for LoongArch LSX. features on ARM64.
(Contributed by GuXiWei) (Contributed by Ross Burton and John Bowler)
* Fixed a CMake build error that occurred under a peculiar state of the * Fixed the pickup of the PNG_HARDWARE_OPTIMIZATIONS option in the
dependency tree. This was a regression introduced in libpng-1.6.41. CMake build on FreeBSD/amd64. This is an important performance fix
(Contributed by Dan Rosser) on this platform.
* Marked the installed libpng headers as system headers in CMake. * Applied various fixes and improvements to the CMake build.
(Contributed by Benjamin Buch) (Contributed by Eric Riff, Benjamin Buch and Erik Scholz)
* Updated the build support for RISCOS. * Added fuzzing targets for the simplified read API.
(Contributed by Cameron Cawley) (Contributed by Mikhail Khachayants)
* Updated the makefiles to allow cross-platform builds to initialize * Fixed a build error involving pngtest.c under a custom config.
conventional make variables like AR and ARFLAGS. This was a regression introduced in a code cleanup in libpng-1.6.43.
* Added various improvements to the CI scripts in areas like version (Contributed by Ben Wagner)
consistency verification and text linting. * Fixed and improved the config files for AppVeyor CI and Travis CI.
* Added version consistency verification to pngtest.c also.
Send comments/corrections/commendations to png-mng-implement at lists.sf.net. Send comments/corrections/commendations to png-mng-implement at lists.sf.net.

22
CHANGES
View File

@ -6196,7 +6196,27 @@ Version 1.6.43 [February 23, 2024]
consistency verification and text linting. consistency verification and text linting.
Added version consistency verification to pngtest.c also. Added version consistency verification to pngtest.c also.
Version 1.6.44 [TODO] Version 1.6.44 [September 12, 2024]
Hardened calculations in chroma handling to prevent overflows, and
relaxed a constraint in cHRM validation to accomodate the standard
ACES AP1 set of color primaries.
(Contributed by John Bowler)
Removed the ASM implementation of ARM Neon optimizations and updated
the build accordingly. Only the remaining C implementation shall be
used from now on, thus ensuring the support of the PAC/BTI security
features on ARM64.
(Contributed by Ross Burton and John Bowler)
Fixed the pickup of the PNG_HARDWARE_OPTIMIZATIONS option in the
CMake build on FreeBSD/amd64. This is an important performance fix
on this platform.
Applied various fixes and improvements to the CMake build.
(Contributed by Eric Riff, Benjamin Buch and Erik Scholz)
Added fuzzing targets for the simplified read API.
(Contributed by Mikhail Khachayants)
Fixed a build error involving pngtest.c under a custom config.
This was a regression introduced in a code cleanup in libpng-1.6.43.
(Contributed by Ben Wagner)
Fixed and improved the config files for AppVeyor CI and Travis CI.
Send comments/corrections/commendations to png-mng-implement at lists.sf.net. Send comments/corrections/commendations to png-mng-implement at lists.sf.net.
Subscription is required; visit Subscription is required; visit

View File

@ -20,8 +20,8 @@ cmake_minimum_required(VERSION 3.6)
set(PNGLIB_MAJOR 1) set(PNGLIB_MAJOR 1)
set(PNGLIB_MINOR 6) set(PNGLIB_MINOR 6)
set(PNGLIB_REVISION 44) set(PNGLIB_REVISION 44)
#set(PNGLIB_SUBREVISION 0) set(PNGLIB_SUBREVISION 0)
set(PNGLIB_SUBREVISION "git") #set(PNGLIB_SUBREVISION "git")
set(PNGLIB_VERSION ${PNGLIB_MAJOR}.${PNGLIB_MINOR}.${PNGLIB_REVISION}) set(PNGLIB_VERSION ${PNGLIB_MAJOR}.${PNGLIB_MINOR}.${PNGLIB_REVISION})
set(PNGLIB_ABI_VERSION ${PNGLIB_MAJOR}${PNGLIB_MINOR}) set(PNGLIB_ABI_VERSION ${PNGLIB_MAJOR}${PNGLIB_MINOR})
set(PNGLIB_SHARED_VERSION ${PNGLIB_ABI_VERSION}.${PNGLIB_REVISION}.${PNGLIB_SUBREVISION}) set(PNGLIB_SHARED_VERSION ${PNGLIB_ABI_VERSION}.${PNGLIB_REVISION}.${PNGLIB_SUBREVISION})

4
README
View File

@ -1,5 +1,5 @@
README for libpng version 1.6.44.git README for libpng version 1.6.44
==================================== ================================
See the note about version numbers near the top of `png.h`. See the note about version numbers near the top of `png.h`.
See `INSTALL` for instructions on how to install libpng. See `INSTALL` for instructions on how to install libpng.

22
configure vendored
View File

@ -1,6 +1,6 @@
#! /bin/sh #! /bin/sh
# Guess values for system-dependent variables and create Makefiles. # Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.72 for libpng 1.6.44.git. # Generated by GNU Autoconf 2.72 for libpng 1.6.44.
# #
# Report bugs to <png-mng-implement@lists.sourceforge.net>. # Report bugs to <png-mng-implement@lists.sourceforge.net>.
# #
@ -614,8 +614,8 @@ MAKEFLAGS=
# Identity of this package. # Identity of this package.
PACKAGE_NAME='libpng' PACKAGE_NAME='libpng'
PACKAGE_TARNAME='libpng' PACKAGE_TARNAME='libpng'
PACKAGE_VERSION='1.6.44.git' PACKAGE_VERSION='1.6.44'
PACKAGE_STRING='libpng 1.6.44.git' PACKAGE_STRING='libpng 1.6.44'
PACKAGE_BUGREPORT='png-mng-implement@lists.sourceforge.net' PACKAGE_BUGREPORT='png-mng-implement@lists.sourceforge.net'
PACKAGE_URL='' PACKAGE_URL=''
@ -1419,7 +1419,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing. # Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh. # This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF cat <<_ACEOF
'configure' configures libpng 1.6.44.git to adapt to many kinds of systems. 'configure' configures libpng 1.6.44 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]... Usage: $0 [OPTION]... [VAR=VALUE]...
@ -1490,7 +1490,7 @@ fi
if test -n "$ac_init_help"; then if test -n "$ac_init_help"; then
case $ac_init_help in case $ac_init_help in
short | recursive ) echo "Configuration of libpng 1.6.44.git:";; short | recursive ) echo "Configuration of libpng 1.6.44:";;
esac esac
cat <<\_ACEOF cat <<\_ACEOF
@ -1687,7 +1687,7 @@ fi
test -n "$ac_init_help" && exit $ac_status test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then if $ac_init_version; then
cat <<\_ACEOF cat <<\_ACEOF
libpng configure 1.6.44.git libpng configure 1.6.44
generated by GNU Autoconf 2.72 generated by GNU Autoconf 2.72
Copyright (C) 2023 Free Software Foundation, Inc. Copyright (C) 2023 Free Software Foundation, Inc.
@ -1950,7 +1950,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake. running configure, to aid debugging if configure makes a mistake.
It was created by libpng $as_me 1.6.44.git, which was It was created by libpng $as_me 1.6.44, which was
generated by GNU Autoconf 2.72. Invocation command line was generated by GNU Autoconf 2.72. Invocation command line was
$ $0$ac_configure_args_raw $ $0$ac_configure_args_raw
@ -3431,7 +3431,7 @@ fi
# Define the identity of the package. # Define the identity of the package.
PACKAGE='libpng' PACKAGE='libpng'
VERSION='1.6.44.git' VERSION='1.6.44'
printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@ -3526,7 +3526,7 @@ fi
PNGLIB_VERSION=1.6.44.git PNGLIB_VERSION=1.6.44
PNGLIB_MAJOR=1 PNGLIB_MAJOR=1
PNGLIB_MINOR=6 PNGLIB_MINOR=6
PNGLIB_RELEASE=44 PNGLIB_RELEASE=44
@ -15539,7 +15539,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their # report actual input values of CONFIG_FILES etc. instead of their
# values after options handling. # values after options handling.
ac_log=" ac_log="
This file was extended by libpng $as_me 1.6.44.git, which was This file was extended by libpng $as_me 1.6.44, which was
generated by GNU Autoconf 2.72. Invocation command line was generated by GNU Autoconf 2.72. Invocation command line was
CONFIG_FILES = $CONFIG_FILES CONFIG_FILES = $CONFIG_FILES
@ -15607,7 +15607,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped' ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\ ac_cs_version="\\
libpng config.status 1.6.44.git libpng config.status 1.6.44
configured by $0, generated by GNU Autoconf 2.72, configured by $0, generated by GNU Autoconf 2.72,
with options \\"\$ac_cs_config\\" with options \\"\$ac_cs_config\\"

View File

@ -25,7 +25,7 @@ AC_PREREQ([2.68])
dnl Version number stuff here: dnl Version number stuff here:
AC_INIT([libpng],[1.6.44.git],[png-mng-implement@lists.sourceforge.net]) AC_INIT([libpng],[1.6.44],[png-mng-implement@lists.sourceforge.net])
AC_CONFIG_MACRO_DIR([scripts/autoconf]) AC_CONFIG_MACRO_DIR([scripts/autoconf])
# libpng does not follow GNU file name conventions (hence 'foreign') # libpng does not follow GNU file name conventions (hence 'foreign')
@ -46,7 +46,7 @@ dnl automake, so the following is not necessary (and is not defined anyway):
dnl AM_PREREQ([1.11.2]) dnl AM_PREREQ([1.11.2])
dnl stop configure from automagically running automake dnl stop configure from automagically running automake
PNGLIB_VERSION=1.6.44.git PNGLIB_VERSION=1.6.44
PNGLIB_MAJOR=1 PNGLIB_MAJOR=1
PNGLIB_MINOR=6 PNGLIB_MINOR=6
PNGLIB_RELEASE=44 PNGLIB_RELEASE=44

View File

@ -9,7 +9,7 @@ libpng-manual.txt - A description on how to use and modify libpng
Based on: Based on:
libpng version 1.6.36, December 2018, through 1.6.43 - February 2024 libpng version 1.6.36, December 2018, through 1.6.44 - September 2024
Updated and distributed by Cosmin Truta Updated and distributed by Cosmin Truta
Copyright (c) 2018-2024 Cosmin Truta Copyright (c) 2018-2024 Cosmin Truta

View File

@ -1,6 +1,6 @@
.TH LIBPNG 3 "February 23, 2024" .TH LIBPNG 3 "September 12, 2024"
.SH NAME .SH NAME
libpng \- Portable Network Graphics (PNG) Reference Library 1.6.43 libpng \- Portable Network Graphics (PNG) Reference Library 1.6.44
.SH SYNOPSIS .SH SYNOPSIS
\fB#include <png.h>\fP \fB#include <png.h>\fP
@ -528,7 +528,7 @@ libpng-manual.txt - A description on how to use and modify libpng
Based on: Based on:
libpng version 1.6.36, December 2018, through 1.6.43 - February 2024 libpng version 1.6.36, December 2018, through 1.6.44 - September 2024
Updated and distributed by Cosmin Truta Updated and distributed by Cosmin Truta
Copyright (c) 2018-2024 Cosmin Truta Copyright (c) 2018-2024 Cosmin Truta

View File

@ -1,6 +1,6 @@
.TH LIBPNGPF 3 "February 23, 2024" .TH LIBPNGPF 3 "September 12, 2024"
.SH NAME .SH NAME
libpng \- Portable Network Graphics (PNG) Reference Library 1.6.43 libpng \- Portable Network Graphics (PNG) Reference Library 1.6.44
(private functions) (private functions)
.SH SYNOPSIS .SH SYNOPSIS

2
png.5
View File

@ -1,4 +1,4 @@
.TH PNG 5 "February 23, 2024" .TH PNG 5 "September 12, 2024"
.SH NAME .SH NAME
png \- Portable Network Graphics (PNG) format png \- Portable Network Graphics (PNG) format

4
png.c
View File

@ -14,7 +14,7 @@
#include "pngpriv.h" #include "pngpriv.h"
/* Generate a compiler error if there is an old png.h in the search path. */ /* Generate a compiler error if there is an old png.h in the search path. */
typedef png_libpng_version_1_6_44_git Your_png_h_is_not_version_1_6_44_git; typedef png_libpng_version_1_6_44 Your_png_h_is_not_version_1_6_44;
/* Tells libpng that we have already handled the first "num_bytes" bytes /* Tells libpng that we have already handled the first "num_bytes" bytes
* of the PNG file signature. If the PNG data is embedded into another * of the PNG file signature. If the PNG data is embedded into another
@ -794,7 +794,7 @@ png_get_copyright(png_const_structrp png_ptr)
return PNG_STRING_COPYRIGHT return PNG_STRING_COPYRIGHT
#else #else
return PNG_STRING_NEWLINE \ return PNG_STRING_NEWLINE \
"libpng version 1.6.44.git" PNG_STRING_NEWLINE \ "libpng version 1.6.44" PNG_STRING_NEWLINE \
"Copyright (c) 2018-2024 Cosmin Truta" PNG_STRING_NEWLINE \ "Copyright (c) 2018-2024 Cosmin Truta" PNG_STRING_NEWLINE \
"Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson" \ "Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson" \
PNG_STRING_NEWLINE \ PNG_STRING_NEWLINE \

16
png.h
View File

@ -1,7 +1,7 @@
/* png.h - header file for PNG reference library /* png.h - header file for PNG reference library
* *
* libpng version 1.6.44.git * libpng version 1.6.44
* *
* Copyright (c) 2018-2024 Cosmin Truta * Copyright (c) 2018-2024 Cosmin Truta
* Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson * Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson
@ -15,7 +15,7 @@
* libpng versions 0.89, June 1996, through 0.96, May 1997: Andreas Dilger * libpng versions 0.89, June 1996, through 0.96, May 1997: Andreas Dilger
* libpng versions 0.97, January 1998, through 1.6.35, July 2018: * libpng versions 0.97, January 1998, through 1.6.35, July 2018:
* Glenn Randers-Pehrson * Glenn Randers-Pehrson
* libpng versions 1.6.36, December 2018, through 1.6.43, February 2024: * libpng versions 1.6.36, December 2018, through 1.6.44, September 2024:
* Cosmin Truta * Cosmin Truta
* See also "Contributing Authors", below. * See also "Contributing Authors", below.
*/ */
@ -239,7 +239,7 @@
* ... * ...
* 1.5.30 15 10530 15.so.15.30[.0] * 1.5.30 15 10530 15.so.15.30[.0]
* ... * ...
* 1.6.43 16 10643 16.so.16.43[.0] * 1.6.44 16 10644 16.so.16.44[.0]
* *
* Henceforth the source version will match the shared-library major and * Henceforth the source version will match the shared-library major and
* minor numbers; the shared-library major version number will be used for * minor numbers; the shared-library major version number will be used for
@ -275,7 +275,7 @@
*/ */
/* Version information for png.h - this should match the version in png.c */ /* Version information for png.h - this should match the version in png.c */
#define PNG_LIBPNG_VER_STRING "1.6.44.git" #define PNG_LIBPNG_VER_STRING "1.6.44"
#define PNG_HEADER_VERSION_STRING " libpng version " PNG_LIBPNG_VER_STRING "\n" #define PNG_HEADER_VERSION_STRING " libpng version " PNG_LIBPNG_VER_STRING "\n"
/* The versions of shared library builds should stay in sync, going forward */ /* The versions of shared library builds should stay in sync, going forward */
@ -291,7 +291,7 @@
/* This should be zero for a public release, or non-zero for a /* This should be zero for a public release, or non-zero for a
* development version. * development version.
*/ */
#define PNG_LIBPNG_VER_BUILD 1 #define PNG_LIBPNG_VER_BUILD 0
/* Release Status */ /* Release Status */
#define PNG_LIBPNG_BUILD_ALPHA 1 #define PNG_LIBPNG_BUILD_ALPHA 1
@ -308,7 +308,7 @@
#define PNG_LIBPNG_BUILD_SPECIAL 32 /* Cannot be OR'ed with #define PNG_LIBPNG_BUILD_SPECIAL 32 /* Cannot be OR'ed with
PNG_LIBPNG_BUILD_PRIVATE */ PNG_LIBPNG_BUILD_PRIVATE */
#define PNG_LIBPNG_BUILD_BASE_TYPE PNG_LIBPNG_BUILD_BETA #define PNG_LIBPNG_BUILD_BASE_TYPE PNG_LIBPNG_BUILD_STABLE
/* Careful here. At one time, Guy wanted to use 082, but that /* Careful here. At one time, Guy wanted to use 082, but that
* would be octal. We must not include leading zeros. * would be octal. We must not include leading zeros.
@ -317,7 +317,7 @@
* From version 1.0.1 it is: * From version 1.0.1 it is:
* XXYYZZ, where XX=major, YY=minor, ZZ=release * XXYYZZ, where XX=major, YY=minor, ZZ=release
*/ */
#define PNG_LIBPNG_VER 10644 /* 1.6.44.git */ #define PNG_LIBPNG_VER 10644 /* 1.6.44 */
/* Library configuration: these options cannot be changed after /* Library configuration: these options cannot be changed after
* the library has been built. * the library has been built.
@ -427,7 +427,7 @@ extern "C" {
/* This triggers a compiler error in png.c, if png.c and png.h /* This triggers a compiler error in png.c, if png.c and png.h
* do not agree upon the version number. * do not agree upon the version number.
*/ */
typedef char* png_libpng_version_1_6_44_git; typedef char* png_libpng_version_1_6_44;
/* Basic control structions. Read libpng-manual.txt or libpng.3 for more info. /* Basic control structions. Read libpng-manual.txt or libpng.3 for more info.
* *

View File

@ -1,7 +1,7 @@
/* pngconf.h - machine-configurable file for libpng /* pngconf.h - machine-configurable file for libpng
* *
* libpng version 1.6.44.git * libpng version 1.6.44
* *
* Copyright (c) 2018-2024 Cosmin Truta * Copyright (c) 2018-2024 Cosmin Truta
* Copyright (c) 1998-2002,2004,2006-2016,2018 Glenn Randers-Pehrson * Copyright (c) 1998-2002,2004,2006-2016,2018 Glenn Randers-Pehrson

View File

@ -51,7 +51,7 @@
#define STDERR stdout #define STDERR stdout
/* Generate a compiler error if there is an old png.h in the search path. */ /* Generate a compiler error if there is an old png.h in the search path. */
typedef png_libpng_version_1_6_44_git Your_png_h_is_not_version_1_6_44_git; typedef png_libpng_version_1_6_44 Your_png_h_is_not_version_1_6_44;
/* Ensure that all version numbers in png.h are consistent with one another. */ /* Ensure that all version numbers in png.h are consistent with one another. */
#if (PNG_LIBPNG_VER != PNG_LIBPNG_VER_MAJOR * 10000 + \ #if (PNG_LIBPNG_VER != PNG_LIBPNG_VER_MAJOR * 10000 + \

View File

@ -11,7 +11,7 @@
# Modeled after libxml-config. # Modeled after libxml-config.
version=1.6.44.git version=1.6.44
prefix="" prefix=""
libdir="" libdir=""
libs="" libs=""

View File

@ -5,6 +5,6 @@ includedir=@includedir@/libpng16
Name: libpng Name: libpng
Description: Loads and saves PNG files Description: Loads and saves PNG files
Version: 1.6.44.git Version: 1.6.44
Libs: -L${libdir} -lpng16 Libs: -L${libdir} -lpng16
Cflags: -I${includedir} Cflags: -I${includedir}

View File

@ -1,6 +1,6 @@
/* pnglibconf.h - library build configuration */ /* pnglibconf.h - library build configuration */
/* libpng version 1.6.44.git */ /* libpng version 1.6.44 */
/* Copyright (c) 2018-2024 Cosmin Truta */ /* Copyright (c) 2018-2024 Cosmin Truta */
/* Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson */ /* Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson */