Skip to content

Commit

Permalink
Merge branch 'pnggroup:libpng16' into libpng16_upd
Browse files Browse the repository at this point in the history
  • Loading branch information
irwir authored Jan 27, 2024
2 parents 71e07da + ba980b8 commit 1619166
Show file tree
Hide file tree
Showing 61 changed files with 1,875 additions and 1,277 deletions.
33 changes: 17 additions & 16 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -39,28 +39,29 @@
*.su

# Libpng configuration and build artifacts
*.out
.deps/
.dirstamp
Makefile
autom4te.cache/
config.h
config.h.in~
config.log
config.status
configure~
libpng-config
libpng.pc
libpng.vers
libpng16-config
libpng16.pc
libtool
/Makefile
/autom4te.cache/
/config.guess~
/config.h.in~
/config.log
/config.status
/config.sub~
/configure~
/install-sh~
/libpng-config
/libpng.pc
/libpng.vers
/libpng16-config
/libpng16.pc
/libtool
/stamp-h1
pnglibconf.[ch]
pnglibconf.dfn
pnglibconf.out
pnglibconf.pre
pngprefix.h
stamp-h1
vers.out

# Libpng test artifacts
png-fix-itxt
Expand Down
58 changes: 37 additions & 21 deletions ANNOUNCE
Original file line number Diff line number Diff line change
@@ -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.

Expand All @@ -17,13 +9,13 @@ Files available for download

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:

Expand All @@ -33,15 +25,39 @@ Other information:
* 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.
Expand Down
31 changes: 16 additions & 15 deletions AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -35,25 +35,26 @@ Authors, for copyright and licensing purposes.
* Willem van Schaik
* Zhijie Liang
* Apple Inc.
- Zixu Wang
- Zixu Wang (王子旭)
* Arm Holdings
- Richard Townsend
- Richard Townsend
* Google Inc.
- Dan Field
- Leon Scroggins III
- Matt Sarett
- Mike Klein
- Sami Boukortt
- Wan-Teh Chang
- Dan Field
- Leon Scroggins III
- Matt Sarett
- Mike Klein
- Sami Boukortt
- Wan-Teh Chang
* Loongson Technology Corporation Ltd.
- GuXiWei
- JinBo
- ZhangLixia
- GuXiWei (顾希伟)
- JinBo (金波)
- ZhangLixia (张利霞)

The build projects, the build scripts, the test scripts, and other
files in the "ci", "projects", "scripts" and "tests" directories, have
files in the "projects", "scripts" and "tests" directories, have
other copyright owners, but are released under the libpng license.

Some files in the "contrib" directory, and some tools-generated files
that are distributed with libpng, have other copyright owners, and are
released under other open source licenses.
Some files in the "ci" and "contrib" directories, as well as some
of the tools-generated files that are distributed with libpng, have
other copyright owners, and are released under other open source
licenses.
32 changes: 31 additions & 1 deletion CHANGES
Original file line number Diff line number Diff line change
Expand Up @@ -6129,7 +6129,37 @@ Version 1.6.40 [June 21, 2023]
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
Expand Down
76 changes: 29 additions & 47 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,45 +1,27 @@
# CMakeLists.txt

# Copyright (c) 2018-2023 Cosmin Truta
# Copyright (c) 2007,2009-2018 Glenn Randers-Pehrson
# Written by Christian Ehrlicher, 2007
# Revised by Roger Lowman, 2009-2010
# Revised by Clifford Yapp, 2011-2012,2017
# Revised by Claudio Bley, 2013
# Revised by Roger Leigh, 2016
# Revised by Andreas Franek, 2016
# Revised by Sam Serrels, 2017
# Revised by Vadim Barkov, 2017
# Revised by Vicky Pfau, 2018
# Revised by Cameron Cawley, 2018,2021
# Revised by Kyle Bentley, 2018
# Revised by David Callu, 2020
# Revised by Steve Robinson, 2020
# Revised by Simon Hausmann, 2020
# Revised by Alex Gaynor, 2020
# Revised by Owen Rudge, 2020
# Revised by Gleb Mazovetskiy, 2021
# Revised by Christopher Sean Morrison, 2022
# Revised by B. Scott Michel, 2022
# Revised by Jeremy Maitin-Shepard, 2022
# Revised by Martin Storsjo, 2022
# Revised by Jon Creighton, 2023
# Revised by Gunther Nikl, 2023
# Revised by Tyler Kropp, 2023
# Revised by Timothy Lyanguzov, 2023
# Revised by Clinton Ingram, 2023

# This code is released under the libpng license.
# For conditions of distribution and use, see the disclaimer
# and license in png.h

# CMakeLists.txt - CMake lists for libpng
#
# Copyright (c) 2018-2024 Cosmin Truta.
# Copyright (c) 2007-2018 Glenn Randers-Pehrson.
# Originally written by Christian Ehrlicher, 2007.
#
# Use, modification and distribution are subject to
# the same licensing terms and conditions as libpng.
# Please see the copyright notice in png.h or visit
# http://libpng.org/pub/png/src/libpng-LICENSE.txt
#
# For copyright and licensing purposes, please see
# the accompanying file scripts/cmake/AUTHORS.md
#
# SPDX-License-Identifier: libpng-2.0

cmake_minimum_required(VERSION 3.6)

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})
Expand Down Expand Up @@ -370,7 +352,7 @@ else()
COMMAND "${CMAKE_COMMAND}"
"-DINPUT=${_GC_INPUT}"
"-DOUTPUT=${_GC_OUTPUT}"
-P "${CMAKE_CURRENT_BINARY_DIR}/scripts/genchk.cmake"
-P "${CMAKE_CURRENT_BINARY_DIR}/genchk.cmake"
DEPENDS "${_GC_INPUT}" ${_GC_DEPENDS}
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")
endfunction()
Expand All @@ -393,7 +375,7 @@ else()
COMMAND "${CMAKE_COMMAND}"
"-DINPUT=${_GO_INPUT}"
"-DOUTPUT=${_GO_OUTPUT}"
-P "${CMAKE_CURRENT_BINARY_DIR}/scripts/genout.cmake"
-P "${CMAKE_CURRENT_BINARY_DIR}/genout.cmake"
DEPENDS "${_GO_INPUT}" ${_GO_DEPENDS}
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")
endfunction()
Expand All @@ -412,7 +394,7 @@ else()
add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${_GSO_OUTPUT}"
COMMAND "${CMAKE_COMMAND}"
"-DOUTPUT=${_GSO_OUTPUT}"
-P "${CMAKE_CURRENT_BINARY_DIR}/scripts/gensrc.cmake"
-P "${CMAKE_CURRENT_BINARY_DIR}/gensrc.cmake"
DEPENDS ${_GSO_DEPENDS}
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")
endfunction()
Expand Down Expand Up @@ -542,7 +524,7 @@ else()
add_custom_target(png_genprebuilt
COMMAND "${CMAKE_COMMAND}"
"-DOUTPUT=scripts/pnglibconf.h.prebuilt"
-P "${CMAKE_CURRENT_BINARY_DIR}/scripts/gensrc.cmake"
-P "${CMAKE_CURRENT_BINARY_DIR}/gensrc.cmake"
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")

# A single target handles generation of all generated files.
Expand Down Expand Up @@ -750,7 +732,7 @@ if(PNG_TESTS AND PNG_SHARED)
set(TEST_OPTIONS "${_PAT_OPTIONS}")
set(TEST_FILES "${_PAT_FILES}")

configure_file("${CMAKE_CURRENT_SOURCE_DIR}/scripts/test.cmake.in"
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/scripts/cmake/test.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/tests/${_PAT_NAME}.cmake"
@ONLY)
add_test(NAME "${_PAT_NAME}"
Expand Down Expand Up @@ -984,14 +966,14 @@ function(create_symlink DEST_FILE)
endfunction()

# Create source generation scripts.
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/genchk.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/scripts/genchk.cmake
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/cmake/genchk.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/genchk.cmake
@ONLY)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/genout.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/scripts/genout.cmake
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/cmake/genout.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/genout.cmake
@ONLY)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/gensrc.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/scripts/gensrc.cmake
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/cmake/gensrc.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/gensrc.cmake
@ONLY)

# libpng is a library so default to 'lib'
Expand Down
6 changes: 3 additions & 3 deletions Makefile.am
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Makefile.am, the source file for Makefile.in (and hence Makefile), is
#
# Copyright (c) 2018-2023 Cosmin Truta
# Copyright (c) 2018-2024 Cosmin Truta
# Copyright (c) 2004-2016 Glenn Randers-Pehrson
#
# This code is released under the libpng license.
Expand All @@ -9,7 +9,7 @@

PNGLIB_BASENAME= libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@

ACLOCAL_AMFLAGS = -I scripts
ACLOCAL_AMFLAGS = -I scripts/autoconf

# test programs - run on make check, make distcheck
if ENABLE_TESTS
Expand Down Expand Up @@ -183,7 +183,7 @@ pkgconfig_DATA = libpng@PNGLIB_MAJOR@@[email protected]
EXTRA_DIST= \
ANNOUNCE AUTHORS CHANGES INSTALL LICENSE README TODO TRADEMARK \
pngtest.png pngbar.png pngnow.png pngbar.jpg autogen.sh \
${srcdir}/contrib ${srcdir}/projects ${srcdir}/scripts \
${srcdir}/ci ${srcdir}/contrib ${srcdir}/projects ${srcdir}/scripts \
$(TESTS) $(XFAIL_TESTS) tests/pngstest \
CMakeLists.txt example.c libpng-manual.txt

Expand Down
Loading

0 comments on commit 1619166

Please sign in to comment.