diff --git a/libpng-1.6.46-apng.patch b/libpng-1.6.47-apng.patch similarity index 93% rename from libpng-1.6.46-apng.patch rename to libpng-1.6.47-apng.patch index 5f4f7fb..3335d4e 100644 --- a/libpng-1.6.46-apng.patch +++ b/libpng-1.6.47-apng.patch @@ -1,6 +1,6 @@ -diff -Naru libpng-1.6.46.org/png.h libpng-1.6.46/png.h ---- libpng-1.6.46.org/png.h 2025-01-26 08:07:35.397600406 +0900 -+++ libpng-1.6.46/png.h 2025-01-26 09:20:38.643825794 +0900 +diff -Naru libpng-1.6.47.org/png.h libpng-1.6.47/png.h +--- libpng-1.6.47.org/png.h 2025-02-22 13:43:57.876577294 +0900 ++++ libpng-1.6.47/png.h 2025-02-21 11:27:13.469845682 +0900 @@ -328,6 +328,10 @@ # include "pnglibconf.h" #endif @@ -129,10 +129,10 @@ diff -Naru libpng-1.6.46.org/png.h libpng-1.6.46/png.h #endif #ifdef __cplusplus -diff -Naru libpng-1.6.46.org/pngget.c libpng-1.6.46/pngget.c ---- libpng-1.6.46.org/pngget.c 2025-01-26 08:07:01.591606746 +0900 -+++ libpng-1.6.46/pngget.c 2025-01-26 08:37:47.941894088 +0900 -@@ -1393,4 +1393,166 @@ +diff -Naru libpng-1.6.47.org/pngget.c libpng-1.6.47/pngget.c +--- libpng-1.6.47.org/pngget.c 2025-02-22 13:43:57.878577291 +0900 ++++ libpng-1.6.47/pngget.c 2025-02-21 11:27:13.469845682 +0900 +@@ -1367,4 +1367,166 @@ # endif #endif @@ -299,13 +299,14 @@ diff -Naru libpng-1.6.46.org/pngget.c libpng-1.6.46/pngget.c +} +#endif /* PNG_APNG_SUPPORTED */ #endif /* READ || WRITE */ -diff -Naru libpng-1.6.46.org/pnginfo.h libpng-1.6.46/pnginfo.h ---- libpng-1.6.46.org/pnginfo.h 2025-01-26 08:07:01.591606746 +0900 -+++ libpng-1.6.46/pnginfo.h 2025-01-26 08:37:47.941894088 +0900 -@@ -288,5 +288,18 @@ - png_bytepp row_pointers; /* the image bits */ +diff -Naru libpng-1.6.47.org/pnginfo.h libpng-1.6.47/pnginfo.h +--- libpng-1.6.47.org/pnginfo.h 2025-02-22 13:43:57.878577291 +0900 ++++ libpng-1.6.47/pnginfo.h 2025-02-21 12:55:22.729982300 +0900 +@@ -282,5 +282,18 @@ + #ifdef PNG_sRGB_SUPPORTED + int rendering_intent; #endif - ++ +#ifdef PNG_APNG_SUPPORTED + png_uint_32 num_frames; /* including default image */ + png_uint_32 num_plays; @@ -318,13 +319,12 @@ diff -Naru libpng-1.6.46.org/pnginfo.h libpng-1.6.46/pnginfo.h + png_byte next_frame_dispose_op; + png_byte next_frame_blend_op; +#endif -+ }; #endif /* PNGINFO_H */ -diff -Naru libpng-1.6.46.org/pngpread.c libpng-1.6.46/pngpread.c ---- libpng-1.6.46.org/pngpread.c 2025-01-26 08:07:01.591606746 +0900 -+++ libpng-1.6.46/pngpread.c 2025-01-26 08:37:47.941894088 +0900 -@@ -209,6 +209,106 @@ +diff -Naru libpng-1.6.47.org/pngpread.c libpng-1.6.47/pngpread.c +--- libpng-1.6.47.org/pngpread.c 2025-02-22 13:43:57.878577291 +0900 ++++ libpng-1.6.47/pngpread.c 2025-02-22 13:39:51.034065728 +0900 +@@ -200,6 +200,106 @@ chunk_name = png_ptr->chunk_name; @@ -431,7 +431,7 @@ diff -Naru libpng-1.6.46.org/pngpread.c libpng-1.6.46/pngpread.c if (chunk_name == png_IDAT) { if ((png_ptr->mode & PNG_AFTER_IDAT) != 0) -@@ -275,6 +375,9 @@ +@@ -260,6 +360,9 @@ else if (chunk_name == png_IDAT) { @@ -441,10 +441,10 @@ diff -Naru libpng-1.6.46.org/pngpread.c libpng-1.6.46/pngpread.c png_ptr->idat_size = png_ptr->push_length; png_ptr->process_mode = PNG_READ_IDAT_MODE; png_push_have_info(png_ptr, info_ptr); -@@ -452,6 +555,30 @@ - png_handle_iTXt(png_ptr, info_ptr, png_ptr->push_length); +@@ -270,6 +373,31 @@ + return; } - #endif + +#ifdef PNG_READ_APNG_SUPPORTED + else if (chunk_name == png_acTL) + { @@ -469,10 +469,11 @@ diff -Naru libpng-1.6.46.org/pngpread.c libpng-1.6.46/pngpread.c + } + +#endif /* PNG_READ_APNG_SUPPORTED */ - ++ else { -@@ -585,7 +712,11 @@ + PNG_PUSH_SAVE_BUFFER_IF_FULL +@@ -401,7 +529,11 @@ png_byte chunk_tag[4]; /* TODO: this code can be commoned up with the same code in push_read */ @@ -484,7 +485,7 @@ diff -Naru libpng-1.6.46.org/pngpread.c libpng-1.6.46/pngpread.c png_push_fill_buffer(png_ptr, chunk_length, 4); png_ptr->push_length = png_get_uint_31(png_ptr, chunk_length); png_reset_crc(png_ptr); -@@ -593,17 +724,64 @@ +@@ -409,17 +541,64 @@ png_ptr->chunk_name = PNG_CHUNK_FROM_STRING(chunk_tag); png_ptr->mode |= PNG_HAVE_CHUNK_HEADER; @@ -549,7 +550,7 @@ diff -Naru libpng-1.6.46.org/pngpread.c libpng-1.6.46/pngpread.c } if (png_ptr->idat_size != 0 && png_ptr->save_buffer_size != 0) -@@ -677,6 +855,15 @@ +@@ -493,6 +672,15 @@ if (!(buffer_length > 0) || buffer == NULL) png_error(png_ptr, "No IDAT data (internal error)"); @@ -565,7 +566,7 @@ diff -Naru libpng-1.6.46.org/pngpread.c libpng-1.6.46/pngpread.c /* This routine must process all the data it has been given * before returning, calling the row callback as required to * handle the uncompressed results. -@@ -1110,6 +1297,18 @@ +@@ -926,6 +1114,18 @@ png_set_read_fn(png_ptr, progressive_ptr, png_push_fill_buffer); } @@ -584,9 +585,9 @@ diff -Naru libpng-1.6.46.org/pngpread.c libpng-1.6.46/pngpread.c png_voidp PNGAPI png_get_progressive_ptr(png_const_structrp png_ptr) { -diff -Naru libpng-1.6.46.org/pngpriv.h libpng-1.6.46/pngpriv.h ---- libpng-1.6.46.org/pngpriv.h 2025-01-26 08:07:01.591606746 +0900 -+++ libpng-1.6.46/pngpriv.h 2025-01-26 08:37:47.942894086 +0900 +diff -Naru libpng-1.6.47.org/pngpriv.h libpng-1.6.47/pngpriv.h +--- libpng-1.6.47.org/pngpriv.h 2025-02-22 13:43:57.879577290 +0900 ++++ libpng-1.6.47/pngpriv.h 2025-03-09 20:16:39.436343661 +0900 @@ -620,6 +620,10 @@ #define PNG_HAVE_CHUNK_AFTER_IDAT 0x2000U /* Have another chunk after IDAT */ #define PNG_WROTE_eXIf 0x4000U @@ -598,14 +599,11 @@ diff -Naru libpng-1.6.46.org/pngpriv.h libpng-1.6.46/pngpriv.h /* Flags for the transformations the PNG library does on the image data */ #define PNG_BGR 0x0001U -@@ -861,6 +865,16 @@ +@@ -884,6 +888,13 @@ #define png_tRNS PNG_U32(116, 82, 78, 83) #define png_zTXt PNG_U32(122, 84, 88, 116) +#ifdef PNG_APNG_SUPPORTED -+#define png_acTL PNG_U32( 97, 99, 84, 76) -+#define png_fcTL PNG_U32(102, 99, 84, 76) -+#define png_fdAT PNG_U32(102, 100, 65, 84) + +/* For png_struct.apng_flags: */ +#define PNG_FIRST_FRAME_HIDDEN 0x0001U @@ -615,9 +613,9 @@ diff -Naru libpng-1.6.46.org/pngpriv.h libpng-1.6.46/pngpriv.h /* The following will work on (signed char*) strings, whereas the get_uint_32 * macro will fail on top-bit-set values because of the sign extension. */ -@@ -1709,6 +1723,47 @@ - */ - #endif +@@ -1671,6 +1682,47 @@ + PNG_EMPTY); + #endif /* PROGRESSIVE_READ */ +#ifdef PNG_APNG_SUPPORTED +PNG_INTERNAL_FUNCTION(void,png_ensure_fcTL_is_valid,(png_structp png_ptr, @@ -660,13 +658,13 @@ diff -Naru libpng-1.6.46.org/pngpriv.h libpng-1.6.46/pngpriv.h +#endif /* PNG_WRITE_APNG_SUPPORTED */ +#endif /* PNG_APNG_SUPPORTED */ + - /* Added at libpng version 1.4.0 */ - #ifdef PNG_COLORSPACE_SUPPORTED - /* These internal functions are for maintaining the colorspace structure within -diff -Naru libpng-1.6.46.org/pngread.c libpng-1.6.46/pngread.c ---- libpng-1.6.46.org/pngread.c 2025-01-26 08:07:01.592606746 +0900 -+++ libpng-1.6.46/pngread.c 2025-01-26 08:37:47.942894086 +0900 -@@ -160,6 +160,9 @@ + #ifdef PNG_iCCP_SUPPORTED + /* Routines for checking parts of an ICC profile. */ + #ifdef PNG_READ_iCCP_SUPPORTED +diff -Naru libpng-1.6.47.org/pngread.c libpng-1.6.47/pngread.c +--- libpng-1.6.47.org/pngread.c 2025-02-21 10:11:01.539479486 +0900 ++++ libpng-1.6.47/pngread.c 2025-02-22 13:41:31.515769732 +0900 +@@ -155,16 +155,96 @@ else if (chunk_name == png_IDAT) { @@ -676,9 +674,6 @@ diff -Naru libpng-1.6.46.org/pngread.c libpng-1.6.46/pngread.c png_ptr->idat_size = length; break; } -@@ -269,6 +272,17 @@ - png_handle_iTXt(png_ptr, info_ptr, length); - #endif +#ifdef PNG_READ_APNG_SUPPORTED + else if (chunk_name == png_acTL) @@ -692,9 +687,8 @@ diff -Naru libpng-1.6.46.org/pngread.c libpng-1.6.46/pngread.c +#endif + else - png_handle_unknown(png_ptr, info_ptr, length, - PNG_HANDLE_CHUNK_AS_DEFAULT); -@@ -276,6 +290,72 @@ + png_handle_chunk(png_ptr, info_ptr, length); + } } #endif /* SEQUENTIAL_READ */ @@ -767,10 +761,10 @@ diff -Naru libpng-1.6.46.org/pngread.c libpng-1.6.46/pngread.c /* Optional call to update the users info_ptr structure */ void PNGAPI png_read_update_info(png_structrp png_ptr, png_inforp info_ptr) -diff -Naru libpng-1.6.46.org/pngrutil.c libpng-1.6.46/pngrutil.c ---- libpng-1.6.46.org/pngrutil.c 2025-01-26 08:07:01.592606746 +0900 -+++ libpng-1.6.46/pngrutil.c 2025-01-26 08:37:47.943894084 +0900 -@@ -877,6 +877,11 @@ +diff -Naru libpng-1.6.47.org/pngrutil.c libpng-1.6.47/pngrutil.c +--- libpng-1.6.47.org/pngrutil.c 2025-02-22 13:43:57.886577281 +0900 ++++ libpng-1.6.47/pngrutil.c 2025-03-09 20:15:53.630386323 +0900 +@@ -922,6 +922,11 @@ filter_type = buf[11]; interlace_type = buf[12]; @@ -782,8 +776,8 @@ diff -Naru libpng-1.6.46.org/pngrutil.c libpng-1.6.46/pngrutil.c /* Set internal variables */ png_ptr->width = width; png_ptr->height = height; -@@ -3017,6 +3022,179 @@ - } +@@ -2730,6 +2735,179 @@ + # define png_handle_iTXt NULL #endif +#ifdef PNG_READ_APNG_SUPPORTED @@ -962,7 +956,7 @@ diff -Naru libpng-1.6.46.org/pngrutil.c libpng-1.6.46/pngrutil.c #ifdef PNG_READ_UNKNOWN_CHUNKS_SUPPORTED /* Utility function for png_handle_unknown; set up png_ptr::unknown_chunk */ static int -@@ -4321,7 +4499,38 @@ +@@ -4212,7 +4390,38 @@ { uInt avail_in; png_bytep buffer; @@ -1001,7 +995,7 @@ diff -Naru libpng-1.6.46.org/pngrutil.c libpng-1.6.46/pngrutil.c while (png_ptr->idat_size == 0) { png_crc_finish(png_ptr, 0); -@@ -4333,7 +4542,7 @@ +@@ -4224,7 +4433,7 @@ if (png_ptr->chunk_name != png_IDAT) png_error(png_ptr, "Not enough image data"); } @@ -1009,8 +1003,8 @@ diff -Naru libpng-1.6.46.org/pngrutil.c libpng-1.6.46/pngrutil.c +#endif /* PNG_READ_APNG_SUPPORTED */ avail_in = png_ptr->IDAT_read_size; - if (avail_in > png_ptr->idat_size) -@@ -4396,6 +4605,9 @@ + if (avail_in > png_chunk_max(png_ptr)) +@@ -4295,6 +4504,9 @@ png_ptr->mode |= PNG_AFTER_IDAT; png_ptr->flags |= PNG_FLAG_ZSTREAM_ENDED; @@ -1020,7 +1014,7 @@ diff -Naru libpng-1.6.46.org/pngrutil.c libpng-1.6.46/pngrutil.c if (png_ptr->zstream.avail_in > 0 || png_ptr->idat_size > 0) png_chunk_benign_error(png_ptr, "Extra compressed data"); -@@ -4805,4 +5017,80 @@ +@@ -4704,4 +4916,80 @@ png_ptr->flags |= PNG_FLAG_ROW_INIT; } @@ -1101,10 +1095,10 @@ diff -Naru libpng-1.6.46.org/pngrutil.c libpng-1.6.46/pngrutil.c +#endif /* PNG_PROGRESSIVE_READ_SUPPORTED */ +#endif /* PNG_READ_APNG_SUPPORTED */ #endif /* READ */ -diff -Naru libpng-1.6.46.org/pngset.c libpng-1.6.46/pngset.c ---- libpng-1.6.46.org/pngset.c 2025-01-26 08:07:01.592606746 +0900 -+++ libpng-1.6.46/pngset.c 2025-01-26 08:37:47.943894084 +0900 -@@ -457,6 +457,11 @@ +diff -Naru libpng-1.6.47.org/pngset.c libpng-1.6.47/pngset.c +--- libpng-1.6.47.org/pngset.c 2025-02-21 10:11:01.541479482 +0900 ++++ libpng-1.6.47/pngset.c 2025-02-21 11:27:13.471845678 +0900 +@@ -463,6 +463,11 @@ info_ptr->pixel_depth = (png_byte)(info_ptr->channels * info_ptr->bit_depth); info_ptr->rowbytes = PNG_ROWBYTES(info_ptr->pixel_depth, width); @@ -1116,7 +1110,7 @@ diff -Naru libpng-1.6.46.org/pngset.c libpng-1.6.46/pngset.c } #ifdef PNG_oFFs_SUPPORTED -@@ -1328,6 +1333,147 @@ +@@ -1318,6 +1323,147 @@ } #endif /* sPLT */ @@ -1264,10 +1258,10 @@ diff -Naru libpng-1.6.46.org/pngset.c libpng-1.6.46/pngset.c #ifdef PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED static png_byte check_location(png_const_structrp png_ptr, int location) -diff -Naru libpng-1.6.46.org/pngstruct.h libpng-1.6.46/pngstruct.h ---- libpng-1.6.46.org/pngstruct.h 2025-01-10 14:00:52.843880956 +0900 -+++ libpng-1.6.46/pngstruct.h 2025-01-26 08:37:47.943894084 +0900 -@@ -398,6 +398,27 @@ +diff -Naru libpng-1.6.47.org/pngstruct.h libpng-1.6.47/pngstruct.h +--- libpng-1.6.47.org/pngstruct.h 2025-02-22 13:43:57.886577281 +0900 ++++ libpng-1.6.47/pngstruct.h 2025-02-21 11:27:13.471845678 +0900 +@@ -392,6 +392,27 @@ png_byte filter_type; #endif @@ -1295,9 +1289,9 @@ diff -Naru libpng-1.6.46.org/pngstruct.h libpng-1.6.46/pngstruct.h /* New members added in libpng-1.2.0 */ /* New members added in libpng-1.0.2 but first enabled by default in 1.2.0 */ -diff -Naru libpng-1.6.46.org/pngtest.c libpng-1.6.46/pngtest.c ---- libpng-1.6.46.org/pngtest.c 2025-01-26 08:07:35.397600406 +0900 -+++ libpng-1.6.46/pngtest.c 2025-01-26 08:37:47.943894084 +0900 +diff -Naru libpng-1.6.47.org/pngtest.c libpng-1.6.47/pngtest.c +--- libpng-1.6.47.org/pngtest.c 2025-02-22 13:43:57.886577281 +0900 ++++ libpng-1.6.47/pngtest.c 2025-02-21 11:27:13.471845678 +0900 @@ -881,6 +881,10 @@ int bit_depth, color_type; user_chunk_info my_user_chunk_data; @@ -1443,9 +1437,9 @@ diff -Naru libpng-1.6.46.org/pngtest.c libpng-1.6.46/pngtest.c for (pass = 0; pass < num_passes; pass++) { # ifdef calc_pass_height -diff -Naru libpng-1.6.46.org/pngwrite.c libpng-1.6.46/pngwrite.c ---- libpng-1.6.46.org/pngwrite.c 2025-01-26 08:07:01.593606745 +0900 -+++ libpng-1.6.46/pngwrite.c 2025-01-26 08:37:47.944894083 +0900 +diff -Naru libpng-1.6.47.org/pngwrite.c libpng-1.6.47/pngwrite.c +--- libpng-1.6.47.org/pngwrite.c 2025-02-21 10:11:01.541479482 +0900 ++++ libpng-1.6.47/pngwrite.c 2025-02-21 11:27:13.471845678 +0900 @@ -127,6 +127,11 @@ * the application continues writing the PNG. So check the 'invalid' * flag here too. @@ -1458,7 +1452,7 @@ diff -Naru libpng-1.6.46.org/pngwrite.c libpng-1.6.46/pngwrite.c #ifdef PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED /* Write unknown chunks first; PNG v3 establishes a precedence order * for colourspace chunks. It is certain therefore that new -@@ -428,6 +433,11 @@ +@@ -405,6 +410,11 @@ png_benign_error(png_ptr, "Wrote palette index exceeding num_palette"); #endif @@ -1470,7 +1464,7 @@ diff -Naru libpng-1.6.46.org/pngwrite.c libpng-1.6.46/pngwrite.c /* See if user wants us to write information chunks */ if (info_ptr != NULL) { -@@ -1538,6 +1548,43 @@ +@@ -1515,6 +1525,43 @@ } #endif @@ -1514,9 +1508,9 @@ diff -Naru libpng-1.6.46.org/pngwrite.c libpng-1.6.46/pngwrite.c #ifdef PNG_SIMPLIFIED_WRITE_SUPPORTED /* Initialize the write structure - general purpose utility. */ -diff -Naru libpng-1.6.46.org/pngwutil.c libpng-1.6.46/pngwutil.c ---- libpng-1.6.46.org/pngwutil.c 2025-01-26 08:07:01.593606745 +0900 -+++ libpng-1.6.46/pngwutil.c 2025-01-26 08:37:47.944894083 +0900 +diff -Naru libpng-1.6.47.org/pngwutil.c libpng-1.6.47/pngwutil.c +--- libpng-1.6.47.org/pngwutil.c 2025-02-22 13:43:57.886577281 +0900 ++++ libpng-1.6.47/pngwutil.c 2025-02-21 11:27:13.472845676 +0900 @@ -838,6 +838,11 @@ /* Write the chunk */ png_write_complete_chunk(png_ptr, png_IHDR, buf, 13); @@ -1690,9 +1684,9 @@ diff -Naru libpng-1.6.46.org/pngwutil.c libpng-1.6.46/pngwutil.c +} +#endif /* PNG_WRITE_APNG_SUPPORTED */ #endif /* WRITE */ -diff -Naru libpng-1.6.46.org/scripts/symbols.def libpng-1.6.46/scripts/symbols.def ---- libpng-1.6.46.org/scripts/symbols.def 2025-01-26 08:07:01.594606745 +0900 -+++ libpng-1.6.46/scripts/symbols.def 2025-01-26 08:40:00.947693999 +0900 +diff -Naru libpng-1.6.47.org/scripts/symbols.def libpng-1.6.47/scripts/symbols.def +--- libpng-1.6.47.org/scripts/symbols.def 2025-01-26 08:07:01.594606745 +0900 ++++ libpng-1.6.47/scripts/symbols.def 2025-02-21 11:27:13.472845676 +0900 @@ -263,3 +263,23 @@ png_get_mDCV_fixed @257 png_set_mDCV @258 diff --git a/libpng.spec b/libpng.spec index c89a904..8fc4753 100644 --- a/libpng.spec +++ b/libpng.spec @@ -1,7 +1,7 @@ %define apiver %(echo %version | cut -d. -f1-2 | tr -d .) %define apngver %{version} Name: libpng -Version: 1.6.46 +Version: 1.6.47 Release: 1mamba Summary: A library of functions for manipulating PNG image format files Group: System/Libraries @@ -94,6 +94,9 @@ rm -f %{buildroot}%{_libdir}/libpng.la %endif %changelog +* Sun Mar 09 2025 Automatic Build System 1.6.47-1mamba +- automatic version update by autodist + * Sun Jan 26 2025 Automatic Build System 1.6.46-1mamba - automatic version update by autodist