Release libpng version 1.6.41
diff --git a/ANNOUNCE b/ANNOUNCE
index 806791f..800446b 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -1,13 +1,5 @@
-libpng 1.6.41.git
-=================
-
-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.40 - June 21, 2023
-=============================
+libpng 1.6.41 - January 24, 2024
+================================
This is a public release of libpng, intended for use in production code.
@@ -17,13 +9,13 @@
Source files with LF line endings (for Unix/Linux):
- * libpng-1.6.40.tar.xz (LZMA-compressed, recommended)
- * libpng-1.6.40.tar.gz
+ * libpng-1.6.41.tar.xz (LZMA-compressed, recommended)
+ * libpng-1.6.41.tar.gz (deflate-compressed)
Source files with CRLF line endings (for Windows):
- * lpng1640.7z (LZMA-compressed, recommended)
- * lpng1640.zip
+ * lpng1641.7z (LZMA-compressed, recommended)
+ * lpng1641.zip (deflate-compressed)
Other information:
@@ -33,15 +25,39 @@
* TRADEMARK.md
-Changes from version 1.6.39 to version 1.6.40
+Changes from version 1.6.40 to version 1.6.41
---------------------------------------------
- * Fixed the eXIf chunk multiplicity checks.
- * Fixed a memory leak in pCAL processing.
- * Corrected the validity report about tRNS inside png_get_valid().
- * Fixed various build issues on *BSD, Mac and Windows.
- * Updated the configurations and the scripts for continuous integration.
- * Cleaned up the code, the build scripts, and the documentation.
+ * Added SIMD-optimized code for the Loongarch LSX hardware.
+ (Contributed by GuXiWei, JinBo and ZhangLixia)
+ * Fixed the run-time discovery of MIPS MSA hardware.
+ (Contributed by Sui Jingfeng)
+ * Fixed an off-by-one error in the function `png_do_check_palette_indexes`,
+ which failed to recognize errors that might have existed in the first
+ column of a broken palette-encoded image. This was a benign regression
+ accidentally introduced in libpng-1.6.33. No pixel was harmed.
+ (Contributed by Adam Richter; reviewed by John Bowler)
+ * Fixed, improved and modernized the contrib/pngminus programs, i.e.,
+ png2pnm.c and pnm2png.c
+ * Removed old and peculiar portability hacks that were meant to silence
+ warnings issued by gcc version 7.1 alone.
+ (Contributed by John Bowler)
+ * Fixed and modernized the CMake file, and raised the minimum required
+ CMake version from 3.1 to 3.6.
+ (Contributed by Clinton Ingram, Timothy Lyanguzov, Tyler Kropp, et al.)
+ * Allowed the configure script to disable the building of auxiliary tools
+ and tests, thus catching up with the CMake file.
+ (Contributed by Carlo Bramini)
+ * Fixed a build issue on Mac.
+ (Contributed by Zixu Wang)
+ * Moved the Autoconf macro files to scripts/autoconf.
+ * Moved the CMake files (except for the main CMakeLists.txt) to
+ scripts/cmake and moved the list of their contributing authors to
+ scripts/cmake/AUTHORS.md
+ * Updated the CI configurations and scripts.
+ * Relicensed the CI scripts to the MIT License.
+ * Improved the test coverage.
+ (Contributed by John Bowler)
Send comments/corrections/commendations to png-mng-implement at lists.sf.net.
diff --git a/CHANGES b/CHANGES
index 13a3060..2d9a57e 100644
--- a/CHANGES
+++ b/CHANGES
@@ -6129,7 +6129,37 @@
Updated the configurations and the scripts for continuous integration.
Cleaned up the code, the build scripts, and the documentation.
-Version 1.6.41 [TODO]
+Version 1.6.41 [January 24, 2024]
+ Added SIMD-optimized code for the Loongarch LSX hardware.
+ (Contributed by GuXiWei, JinBo and ZhangLixia)
+ Fixed the run-time discovery of MIPS MSA hardware.
+ (Contributed by Sui Jingfeng)
+ Fixed an off-by-one error in the function `png_do_check_palette_indexes`,
+ which failed to recognize errors that might have existed in the first
+ column of a broken palette-encoded image. This was a benign regression
+ accidentally introduced in libpng-1.6.33. No pixel was harmed.
+ (Contributed by Adam Richter; reviewed by John Bowler)
+ Fixed, improved and modernized the contrib/pngminus programs, i.e.,
+ png2pnm.c and pnm2png.c
+ Removed old and peculiar portability hacks that were meant to silence
+ warnings issued by gcc version 7.1 alone.
+ (Contributed by John Bowler)
+ Fixed and modernized the CMake file, and raised the minimum required
+ CMake version from 3.1 to 3.6.
+ (Contributed by Clinton Ingram, Timothy Lyanguzov, Tyler Kropp, et al.)
+ Allowed the configure script to disable the building of auxiliary tools
+ and tests, thus catching up with the CMake file.
+ (Contributed by Carlo Bramini)
+ Fixed a build issue on Mac.
+ (Contributed by Zixu Wang)
+ Moved the Autoconf macro files to scripts/autoconf.
+ Moved the CMake files (except for the main CMakeLists.txt) to
+ scripts/cmake and moved the list of their contributing authors to
+ scripts/cmake/AUTHORS.md
+ Updated the CI configurations and scripts.
+ Relicensed the CI scripts to the MIT License.
+ Improved the test coverage.
+ (Contributed by John Bowler)
Send comments/corrections/commendations to png-mng-implement at lists.sf.net.
Subscription is required; visit
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2e559c0..0d40ce0 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -20,8 +20,8 @@
set(PNGLIB_MAJOR 1)
set(PNGLIB_MINOR 6)
set(PNGLIB_REVISION 41)
-#set(PNGLIB_SUBREVISION 0)
-set(PNGLIB_SUBREVISION "git")
+set(PNGLIB_SUBREVISION 0)
+#set(PNGLIB_SUBREVISION "git")
set(PNGLIB_VERSION ${PNGLIB_MAJOR}.${PNGLIB_MINOR}.${PNGLIB_REVISION})
set(PNGLIB_ABI_VERSION ${PNGLIB_MAJOR}${PNGLIB_MINOR})
set(PNGLIB_SHARED_VERSION ${PNGLIB_ABI_VERSION}.${PNGLIB_REVISION}.${PNGLIB_SUBREVISION})
diff --git a/README b/README
index c3ebf4e..1f51a80 100644
--- a/README
+++ b/README
@@ -1,5 +1,5 @@
-README for libpng version 1.6.41.git
-====================================
+README for libpng version 1.6.41
+================================
See the note about version numbers near the top of `png.h`.
See `INSTALL` for instructions on how to install libpng.
diff --git a/configure b/configure
index c74420b..5af26c7 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.72 for libpng 1.6.41.git.
+# Generated by GNU Autoconf 2.72 for libpng 1.6.41.
#
# Report bugs to <png-mng-implement@lists.sourceforge.net>.
#
@@ -614,8 +614,8 @@
# Identity of this package.
PACKAGE_NAME='libpng'
PACKAGE_TARNAME='libpng'
-PACKAGE_VERSION='1.6.41.git'
-PACKAGE_STRING='libpng 1.6.41.git'
+PACKAGE_VERSION='1.6.41'
+PACKAGE_STRING='libpng 1.6.41'
PACKAGE_BUGREPORT='png-mng-implement@lists.sourceforge.net'
PACKAGE_URL=''
@@ -1416,7 +1416,7 @@
# 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.
cat <<_ACEOF
-'configure' configures libpng 1.6.41.git to adapt to many kinds of systems.
+'configure' configures libpng 1.6.41 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1487,7 +1487,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of libpng 1.6.41.git:";;
+ short | recursive ) echo "Configuration of libpng 1.6.41:";;
esac
cat <<\_ACEOF
@@ -1683,7 +1683,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-libpng configure 1.6.41.git
+libpng configure 1.6.41
generated by GNU Autoconf 2.72
Copyright (C) 2023 Free Software Foundation, Inc.
@@ -1946,7 +1946,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by libpng $as_me 1.6.41.git, which was
+It was created by libpng $as_me 1.6.41, which was
generated by GNU Autoconf 2.72. Invocation command line was
$ $0$ac_configure_args_raw
@@ -3246,7 +3246,7 @@
# Define the identity of the package.
PACKAGE='libpng'
- VERSION='1.6.41.git'
+ VERSION='1.6.41'
printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -3379,7 +3379,7 @@
-PNGLIB_VERSION=1.6.41.git
+PNGLIB_VERSION=1.6.41
PNGLIB_MAJOR=1
PNGLIB_MINOR=6
PNGLIB_RELEASE=41
@@ -15382,7 +15382,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by libpng $as_me 1.6.41.git, which was
+This file was extended by libpng $as_me 1.6.41, which was
generated by GNU Autoconf 2.72. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -15450,7 +15450,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
-libpng config.status 1.6.41.git
+libpng config.status 1.6.41
configured by $0, generated by GNU Autoconf 2.72,
with options \\"\$ac_cs_config\\"
diff --git a/configure.ac b/configure.ac
index ab117fd..d81a580 100644
--- a/configure.ac
+++ b/configure.ac
@@ -25,7 +25,7 @@
dnl Version number stuff here:
-AC_INIT([libpng],[1.6.41.git],[png-mng-implement@lists.sourceforge.net])
+AC_INIT([libpng],[1.6.41],[png-mng-implement@lists.sourceforge.net])
AC_CONFIG_MACRO_DIR([scripts/autoconf])
# libpng does not follow GNU file name conventions (hence 'foreign')
@@ -46,7 +46,7 @@
dnl AM_PREREQ([1.11.2])
dnl stop configure from automagically running automake
-PNGLIB_VERSION=1.6.41.git
+PNGLIB_VERSION=1.6.41
PNGLIB_MAJOR=1
PNGLIB_MINOR=6
PNGLIB_RELEASE=41
diff --git a/libpng-manual.txt b/libpng-manual.txt
index 67b5078..dbb60af 100644
--- a/libpng-manual.txt
+++ b/libpng-manual.txt
@@ -1,6 +1,6 @@
libpng-manual.txt - A description on how to use and modify libpng
- Copyright (c) 2018-2023 Cosmin Truta
+ Copyright (c) 2018-2024 Cosmin Truta
Copyright (c) 1998-2018 Glenn Randers-Pehrson
This document is released under the libpng license.
@@ -9,9 +9,9 @@
Based on:
- libpng version 1.6.36, December 2018, through 1.6.40 - June 2023
+ libpng version 1.6.36, December 2018, through 1.6.41 - January 2024
Updated and distributed by Cosmin Truta
- Copyright (c) 2018-2023 Cosmin Truta
+ Copyright (c) 2018-2024 Cosmin Truta
libpng versions 0.97, January 1998, through 1.6.35 - July 2018
Updated and distributed by Glenn Randers-Pehrson
diff --git a/libpng.3 b/libpng.3
index 003bfaf..3c68fe5 100644
--- a/libpng.3
+++ b/libpng.3
@@ -1,6 +1,6 @@
-.TH LIBPNG 3 "June 21, 2023"
+.TH LIBPNG 3 "January 24, 2024"
.SH NAME
-libpng \- Portable Network Graphics (PNG) Reference Library 1.6.40
+libpng \- Portable Network Graphics (PNG) Reference Library 1.6.41
.SH SYNOPSIS
\fB#include <png.h>\fP
@@ -519,7 +519,7 @@
.SH LIBPNG.TXT
libpng-manual.txt - A description on how to use and modify libpng
- Copyright (c) 2018-2023 Cosmin Truta
+ Copyright (c) 2018-2024 Cosmin Truta
Copyright (c) 1998-2018 Glenn Randers-Pehrson
This document is released under the libpng license.
@@ -528,9 +528,9 @@
Based on:
- libpng version 1.6.36, December 2018, through 1.6.40 - June 2023
+ libpng version 1.6.36, December 2018, through 1.6.41 - January 2024
Updated and distributed by Cosmin Truta
- Copyright (c) 2018-2023 Cosmin Truta
+ Copyright (c) 2018-2024 Cosmin Truta
libpng versions 0.97, January 1998, through 1.6.35 - July 2018
Updated and distributed by Glenn Randers-Pehrson
diff --git a/libpngpf.3 b/libpngpf.3
index 43eeb9a..610432d 100644
--- a/libpngpf.3
+++ b/libpngpf.3
@@ -1,6 +1,6 @@
-.TH LIBPNGPF 3 "June 21, 2023"
+.TH LIBPNGPF 3 "January 24, 2024"
.SH NAME
-libpng \- Portable Network Graphics (PNG) Reference Library 1.6.40
+libpng \- Portable Network Graphics (PNG) Reference Library 1.6.41
(private functions)
.SH SYNOPSIS
diff --git a/png.5 b/png.5
index 5442ea1..e2c177a 100644
--- a/png.5
+++ b/png.5
@@ -1,4 +1,4 @@
-.TH PNG 5 "June 21, 2023"
+.TH PNG 5 "January 24, 2024"
.SH NAME
png \- Portable Network Graphics (PNG) format
diff --git a/png.c b/png.c
index 4d3fb52..e411381 100644
--- a/png.c
+++ b/png.c
@@ -14,7 +14,7 @@
#include "pngpriv.h"
/* Generate a compiler error if there is an old png.h in the search path. */
-typedef png_libpng_version_1_6_41_git Your_png_h_is_not_version_1_6_41_git;
+typedef png_libpng_version_1_6_41 Your_png_h_is_not_version_1_6_41;
/* 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
@@ -794,7 +794,7 @@
return PNG_STRING_COPYRIGHT
#else
return PNG_STRING_NEWLINE \
- "libpng version 1.6.41.git" PNG_STRING_NEWLINE \
+ "libpng version 1.6.41" PNG_STRING_NEWLINE \
"Copyright (c) 2018-2024 Cosmin Truta" PNG_STRING_NEWLINE \
"Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson" \
PNG_STRING_NEWLINE \
diff --git a/png.h b/png.h
index 6c72d68..d78c779 100644
--- a/png.h
+++ b/png.h
@@ -1,7 +1,7 @@
/* png.h - header file for PNG reference library
*
- * libpng version 1.6.41.git
+ * libpng version 1.6.41
*
* Copyright (c) 2018-2024 Cosmin Truta
* 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.97, January 1998, through 1.6.35, July 2018:
* Glenn Randers-Pehrson
- * libpng versions 1.6.36, December 2018, through 1.6.40, June 2023:
+ * libpng versions 1.6.36, December 2018, through 1.6.41, January 2024:
* Cosmin Truta
* See also "Contributing Authors", below.
*/
@@ -239,7 +239,7 @@
* ...
* 1.5.30 15 10530 15.so.15.30[.0]
* ...
- * 1.6.40 16 10640 16.so.16.40[.0]
+ * 1.6.41 16 10641 16.so.16.41[.0]
*
* Henceforth the source version will match the shared-library major and
* minor numbers; the shared-library major version number will be used for
@@ -278,8 +278,8 @@
*/
/* Version information for png.h - this should match the version in png.c */
-#define PNG_LIBPNG_VER_STRING "1.6.41.git"
-#define PNG_HEADER_VERSION_STRING " libpng version 1.6.41.git\n"
+#define PNG_LIBPNG_VER_STRING "1.6.41"
+#define PNG_HEADER_VERSION_STRING " libpng version " PNG_LIBPNG_VER_STRING "\n"
#define PNG_LIBPNG_VER_SONUM 16
#define PNG_LIBPNG_VER_DLLNUM 16
@@ -292,7 +292,7 @@
/* This should be zero for a public release, or non-zero for a
* development version. [Deprecated]
*/
-#define PNG_LIBPNG_VER_BUILD 1
+#define PNG_LIBPNG_VER_BUILD 0
/* Release Status */
#define PNG_LIBPNG_BUILD_ALPHA 1
@@ -309,7 +309,7 @@
#define PNG_LIBPNG_BUILD_SPECIAL 32 /* Cannot be OR'ed with
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
* would be octal. We must not include leading zeros.
@@ -318,7 +318,7 @@
* From version 1.0.1 it is:
* XXYYZZ, where XX=major, YY=minor, ZZ=release
*/
-#define PNG_LIBPNG_VER 10641 /* 1.6.41.git */
+#define PNG_LIBPNG_VER 10641 /* 1.6.41 */
/* Library configuration: these options cannot be changed after
* the library has been built.
@@ -428,7 +428,7 @@
/* This triggers a compiler error in png.c, if png.c and png.h
* do not agree upon the version number.
*/
-typedef char* png_libpng_version_1_6_41_git;
+typedef char* png_libpng_version_1_6_41;
/* Basic control structions. Read libpng-manual.txt or libpng.3 for more info.
*
diff --git a/pngconf.h b/pngconf.h
index 54f0a37..30c1aad 100644
--- a/pngconf.h
+++ b/pngconf.h
@@ -1,9 +1,9 @@
/* pngconf.h - machine-configurable file for libpng
*
- * libpng version 1.6.41.git
+ * libpng version 1.6.41
*
- * Copyright (c) 2018-2023 Cosmin Truta
+ * Copyright (c) 2018-2024 Cosmin Truta
* Copyright (c) 1998-2002,2004,2006-2016,2018 Glenn Randers-Pehrson
* Copyright (c) 1996-1997 Andreas Dilger
* Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
diff --git a/pngpriv.h b/pngpriv.h
index 190eb85..3a3e9d3 100644
--- a/pngpriv.h
+++ b/pngpriv.h
@@ -1,7 +1,7 @@
/* pngpriv.h - private declarations for use inside libpng
*
- * Copyright (c) 2018-2023 Cosmin Truta
+ * Copyright (c) 2018-2024 Cosmin Truta
* Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson
* Copyright (c) 1996-1997 Andreas Dilger
* Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
diff --git a/pngtest.c b/pngtest.c
index a078130..f83e8bb 100644
--- a/pngtest.c
+++ b/pngtest.c
@@ -2155,4 +2155,4 @@
#endif
/* Generate a compiler error if there is an old png.h in the search path. */
-typedef png_libpng_version_1_6_41_git Your_png_h_is_not_version_1_6_41_git;
+typedef png_libpng_version_1_6_41 Your_png_h_is_not_version_1_6_41;
diff --git a/scripts/libpng-config-head.in b/scripts/libpng-config-head.in
index 43cc327..3cc2ecb 100644
--- a/scripts/libpng-config-head.in
+++ b/scripts/libpng-config-head.in
@@ -11,7 +11,7 @@
# Modeled after libxml-config.
-version=1.6.41.git
+version=1.6.41
prefix=""
libdir=""
libs=""
diff --git a/scripts/libpng.pc.in b/scripts/libpng.pc.in
index fadffc1..d206d86 100644
--- a/scripts/libpng.pc.in
+++ b/scripts/libpng.pc.in
@@ -5,6 +5,6 @@
Name: libpng
Description: Loads and saves PNG files
-Version: 1.6.41.git
+Version: 1.6.41
Libs: -L${libdir} -lpng16
Cflags: -I${includedir}
diff --git a/scripts/pnglibconf.h.prebuilt b/scripts/pnglibconf.h.prebuilt
index 06d6045..d768a8e 100644
--- a/scripts/pnglibconf.h.prebuilt
+++ b/scripts/pnglibconf.h.prebuilt
@@ -1,7 +1,6 @@
-/* 1.6.41.git STANDARD API DEFINITION */
/* pnglibconf.h - library build configuration */
-/* libpng version 1.6.41.git */
+/* libpng version 1.6.41 */
/* Copyright (c) 2018-2024 Cosmin Truta */
/* Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson */