diff --git a/.gitignore b/.gitignore index 2ff3807..a81feca 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1 @@ -SOURCES/giflib-5.1.4.tar.bz2 -/giflib-5.1.4.tar.bz2 +giflib-5.2.1.tar.gz diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..b69a03d --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,141 @@ +cmake_minimum_required(VERSION 2.6.0) + +project(giflib C) + +SET(BUILD_STATIC_LIBS OFF CACHE BOOL "Whether to also build static libs") + +execute_process(COMMAND ./getversion + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + OUTPUT_VARIABLE VERSION + OUTPUT_STRIP_TRAILING_WHITESPACE +) + +set(LIBMAJOR 7) +set(LIBMINOR 1) +set(LIBPOINT 0) +set(LIBVER "${LIBMAJOR}.${LIBMINOR}.${LIBPOINT}") + +set(giflib_SRC + dgif_lib.c + egif_lib.c + getarg.c + gifalloc.c + gif_err.c + gif_font.c + gif_hash.c + openbsd-reallocarray.c + qprintf.c + quantize.c +) + +# Some utilities are installed +set(giflib_INSTALLABLE + gif2rgb + gifbuild + giffix + giftext + giftool + gifclrmp +) + +# Some utilities are only used internally for testing. +# There is a parallel list in doc/Makefile. +# These are all candidates for removal in future releases. +set(giflib_UTILS + ${giflib_INSTALLABLE} + gifbg + gifcolor + gifecho + giffilter + gifhisto + gifinto + gifwedge +) + +file(GLOB giflib_MAN doc/*.1) + +### Build library / tools + +add_library(gif SHARED ${giflib_SRC}) +target_link_libraries(gif m) +set_target_properties(gif PROPERTIES VERSION ${LIBVER} SOVERSION ${LIBMAJOR}) +if(WIN32) + set_target_properties(gif PROPERTIES SUFFIX "-${LIBMAJOR}${CMAKE_SHARED_LIBRARY_SUFFIX}") +endif(WIN32) + +if(${BUILD_STATIC_LIBS}) + add_library(gif_static STATIC ${giflib_SRC}) + set_target_properties(gif_static PROPERTIES OUTPUT_NAME gif) +endif(${BUILD_STATIC_LIBS}) + + +foreach(UTILITY ${giflib_UTILS}) + add_executable(${UTILITY} ${UTILITY}.c) + target_link_libraries(${UTILITY} gif) +endforeach() + +### Installation + +install(TARGETS gif + RUNTIME DESTINATION bin + ARCHIVE DESTINATION lib${LIB_SUFFIX} + LIBRARY DESTINATION lib${LIB_SUFFIX} +) + +if(${BUILD_STATIC_LIBS}) + install(TARGETS gif_static ARCHIVE DESTINATION lib${LIB_SUFFIX}) +endif(${BUILD_STATIC_LIBS}) + +foreach(UTILITY ${giflib_UTILS}) + install(TARGETS ${UTILITY} DESTINATION bin) +endforeach() + +install(FILES gif_lib.h DESTINATION include) +install(FILES ${giflib_MAN} DESTINATION ${CMAKE_INSTALL_PREFIX}/share/man/man1) + + +### Distribution tarball +set(giflib_DIST + *.c + *.h + README + NEWS + TODO + COPYING + getversion + ChangeLog + CMakeLists.txt + build.adoc + history.adoc + control + doc/whatsinagif + doc/*.1 + doc/*.xml + doc/*.txt + doc/index.html.in + doc/00README + doc/Makefile + tests + pic +) +# We include all of the XML, and also generated manual pages +# so people working from the distribution tarball won't need xmlto. +add_custom_target(dist-gz + COMMAND tar --transform='s:^:giflib-${VERSION}/:' -czf giflib-${VERSION}.tar.gz ${giflib_DIST} + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} +) + +add_custom_target(dist-bz2 + COMMAND tar --transform='s:^:giflib-${VERSION}/:' -cjf giflib-${VERSION}.tar.bz2 ${giflib_DIST} + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} +) + +add_custom_target(dist DEPENDS dist-gz DEPENDS dist-bz2) + + +### Auditing tools + +# cppcheck should run clean +add_custom_target(cppcheck + COMMAND cppcheck --inline-suppr --template gcc --enable=all --suppress=unusedFunction --force *.[ch] +) diff --git a/CVE-2022-28506.patch b/CVE-2022-28506.patch new file mode 100644 index 0000000..c5f0b9a --- /dev/null +++ b/CVE-2022-28506.patch @@ -0,0 +1,15 @@ +diff -rupN giflib-5.2.1/gif2rgb.c giflib-5.2.1-new/gif2rgb.c +--- giflib-5.2.1/gif2rgb.c 2019-06-24 09:24:27.000000000 +0200 ++++ giflib-5.2.1-new/gif2rgb.c 2022-07-21 09:58:28.256036156 +0200 +@@ -294,6 +294,11 @@ static void DumpScreen2RGB(char *FileNam + GifRow = ScreenBuffer[i]; + GifQprintf("\b\b\b\b%-4d", ScreenHeight - i); + for (j = 0, BufferP = Buffer; j < ScreenWidth; j++) { ++ /* Check if color is within color palete */ ++ if (GifRow[j] >= ColorMap->ColorCount) ++ { ++ GIF_EXIT(GifErrorString(D_GIF_ERR_IMAGE_DEFECT)); ++ } + ColorMapEntry = &ColorMap->Colors[GifRow[j]]; + *BufferP++ = ColorMapEntry->Red; + *BufferP++ = ColorMapEntry->Green; diff --git a/fix-get-args-segment-violation.patch b/fix-get-args-segment-violation.patch new file mode 100644 index 0000000..1595450 --- /dev/null +++ b/fix-get-args-segment-violation.patch @@ -0,0 +1,24 @@ +Description: Fix segmentation faults due to non correct checking for args +Author: David Suárez +Origin: vendor +Bug: https://sourceforge.net/p/giflib/bugs/153/ +Bug-Debian: https://bugs.debian.org/715963 +Bug-Debian: https://bugs.debian.org/715964 +Bug-Debian: https://bugs.debian.org/715967 +Last-Update: 2020-12-20 + +--- a/getarg.c ++++ b/getarg.c +@@ -305,6 +305,12 @@ + int i = 0, ScanRes; + + while (!(ISSPACE(CtrlStrCopy[i]))) { ++ ++ if ((*argv) == argv_end) { ++ GAErrorToken = Option; ++ return CMD_ERR_NumRead; ++ } ++ + switch (CtrlStrCopy[i + 1]) { + case 'd': /* Get signed integers. */ + ScanRes = sscanf(*((*argv)++), "%d", diff --git a/giflib-5.1.4-coverity.patch b/giflib-5.1.4-coverity.patch deleted file mode 100644 index 41ef7a4..0000000 --- a/giflib-5.1.4-coverity.patch +++ /dev/null @@ -1,82 +0,0 @@ -diff --git a/util/gif2rgb.c b/util/gif2rgb.c -index e39f37b..92bf82f 100644 ---- a/util/gif2rgb.c -+++ b/util/gif2rgb.c -@@ -171,6 +171,8 @@ static void SaveGif(GifByteType *OutputBuffer, - /* Open stdout for the output file: */ - if ((GifFile = EGifOpenFileHandle(1, &Error)) == NULL) { - PrintGifError(Error); -+ free(OutputBuffer); -+ GifFreeMapObject(OutputColorMap); - exit(EXIT_FAILURE); - } - -@@ -179,25 +181,34 @@ static void SaveGif(GifByteType *OutputBuffer, - OutputColorMap) == GIF_ERROR || - EGifPutImageDesc(GifFile, - 0, 0, Width, Height, false, NULL) == -- GIF_ERROR) -+ GIF_ERROR) { - PrintGifError(Error); -+ free(OutputBuffer); -+ GifFreeMapObject(OutputColorMap); - exit(EXIT_FAILURE); -+ } - - GifQprintf("\n%s: Image 1 at (%d, %d) [%dx%d]: ", - PROGRAM_NAME, GifFile->Image.Left, GifFile->Image.Top, - GifFile->Image.Width, GifFile->Image.Height); - - for (i = 0; i < Height; i++) { -- if (EGifPutLine(GifFile, Ptr, Width) == GIF_ERROR) -+ if (EGifPutLine(GifFile, Ptr, Width) == GIF_ERROR) { -+ free(OutputBuffer); -+ GifFreeMapObject(OutputColorMap); - exit(EXIT_FAILURE); -+ } - GifQprintf("\b\b\b\b%-4d", Height - i - 1); - - Ptr += Width; - } - -- if (EGifCloseFile(GifFile, &Error) == GIF_ERROR) -+ if (EGifCloseFile(GifFile, &Error) == GIF_ERROR) { - PrintGifError(Error); -+ free(OutputBuffer); -+ GifFreeMapObject(OutputColorMap); - exit(EXIT_FAILURE); -+ } - } - - /****************************************************************************** -diff --git a/util/gifsponge.c b/util/gifsponge.c -index 6e248d8..12bce36 100644 ---- a/util/gifsponge.c -+++ b/util/gifsponge.c -@@ -73,8 +73,7 @@ int main(int argc, char **argv) - * data; it's *your* responsibility to keep your changes consistent. - * Caveat hacker! - */ -- if (EGifSpew(GifFileOut) == GIF_ERROR) -- PrintGifError(GifFileOut->Error); -+ EGifSpew(GifFileOut); - - if (DGifCloseFile(GifFileIn, &ErrorCode) == GIF_ERROR) - PrintGifError(ErrorCode); -diff --git a/util/giftool.c b/util/giftool.c -index e61281c..fe6325c 100644 ---- a/util/giftool.c -+++ b/util/giftool.c -@@ -565,9 +565,9 @@ int main(int argc, char **argv) - for (i = 0; i < GifFileIn->ImageCount; i++) - (void) GifMakeSavedImage(GifFileOut, &GifFileIn->SavedImages[i]); - -- if (EGifSpew(GifFileOut) == GIF_ERROR) -- PrintGifError(GifFileOut->Error); -- else if (DGifCloseFile(GifFileIn, &ErrorCode) == GIF_ERROR) -+ EGifSpew(GifFileOut); -+ -+ if (DGifCloseFile(GifFileIn, &ErrorCode) == GIF_ERROR) - PrintGifError(ErrorCode); - - return 0; diff --git a/giflib-5.1.4-html-docs-consistent-ids.patch b/giflib-5.1.4-html-docs-consistent-ids.patch deleted file mode 100644 index c7f23ca..0000000 --- a/giflib-5.1.4-html-docs-consistent-ids.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/doc/Makefile.am b/doc/Makefile.am -index b9696ea..698104b 100644 ---- a/doc/Makefile.am -+++ b/doc/Makefile.am -@@ -1,7 +1,7 @@ - SUFFIXES = .xml .html .txt .asc .1 - - .xml.html: -- xmlto xhtml-nochunks $< -+ xmlto --stringparam generate.consistent.ids=1 xhtml-nochunks $< - - .xml.1: - xmlto man $< diff --git a/giflib-5.2.1-fixsnprintf.patch b/giflib-5.2.1-fixsnprintf.patch new file mode 100644 index 0000000..c048bf4 --- /dev/null +++ b/giflib-5.2.1-fixsnprintf.patch @@ -0,0 +1,21 @@ +diff -up giflib-5.2.1/giftext.c.6 giflib-5.2.1/giftext.c +--- giflib-5.2.1/giftext.c.6 2025-01-31 10:17:17.554855649 +0100 ++++ giflib-5.2.1/giftext.c 2025-01-31 10:18:44.420663412 +0100 +@@ -386,7 +386,7 @@ static void PrintExtBlock(GifByteType *E + for (i = 1; i <= Len; i++) { + (void)snprintf(&HexForm[CrntPlace * 3], 3, + " %02x", Extension[i]); +- (void)snprintf(&AsciiForm[CrntPlace], 3, ++ (void)snprintf(&AsciiForm[CrntPlace], 2, + "%c", MAKE_PRINTABLE(Extension[i])); + if (++CrntPlace == 16) { + HexForm[CrntPlace * 3] = 0; +@@ -429,7 +429,7 @@ static void PrintPixelBlock(GifByteType + for (i = 0; i < Len; i++) { + (void)snprintf(&HexForm[CrntPlace * 3], 3, + " %02x", PixelBlock[i]); +- (void)snprintf(&AsciiForm[CrntPlace], 3, ++ (void)snprintf(&AsciiForm[CrntPlace], 2, + "%c", MAKE_PRINTABLE(PixelBlock[i])); + if (++CrntPlace == 16) { + HexForm[CrntPlace * 3] = 0; diff --git a/giflib.spec b/giflib.spec index 80d0066..a6d057b 100644 --- a/giflib.spec +++ b/giflib.spec @@ -1,20 +1,38 @@ Name: giflib Summary: A library and utilities for processing GIFs -Version: 5.1.4 -Release: 3%{?dist} +Version: 5.2.1 +Release: 22%{?dist} License: MIT URL: http://www.sourceforge.net/projects/%{name}/ -Source: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.bz2 +Source: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz +# Downstream cmake support +Source1: CMakeLists.txt +# Move quantize.c back into libgif.so (#1750122) +Patch0: giflib_quantize.patch +# Fix several defects found by Coverity scan +Patch1: giflib_coverity.patch +# Generate HTML docs with consistent section IDs to avoid multilib difference +Patch2: giflib_html-docs-consistent-ids.patch +# Backport fix for CVE-2022-28506 +# See https://sourceforge.net/u/mmuzila/giflib/ci/5b74cdd9c1285514eaa4675347ba3eea81d32c65/ +Patch3: CVE-2022-28506.patch +# Fix segmentation faults when invoking tools with incorrect arguments (CVE-2023-39742) +# Taken from Debian package +Patch4: fix-get-args-segment-violation.patch +Patch5: giflib-5.2.1-fixsnprintf.patch -Patch0: giflib-5.1.4-coverity.patch -Patch1: giflib-5.1.4-html-docs-consistent-ids.patch -BuildRequires: autoconf automake libtool +BuildRequires: cmake BuildRequires: gcc -BuildRequires: make BuildRequires: xmlto +BuildRequires: mingw32-filesystem >= 95 +BuildRequires: mingw32-gcc + +BuildRequires: mingw64-filesystem >= 95 +BuildRequires: mingw64-gcc + %description giflib is a library for reading and writing gif images. @@ -37,34 +55,72 @@ Requires: %{name}%{?_isa} = %{version}-%{release} The giflib-utils package contains various programs for manipulating GIF format image files. +%package -n mingw32-%{name} +Summary: MinGW Windows %{name} library +Obsoletes: mingw32-%{name}-static +BuildArch: noarch + +%description -n mingw32-%{name} +%{summary}. + + +%package -n mingw32-%{name}-tools +Summary: Tools for the MinGW Windows %{name} library +Requires: mingw32-%{name} = %{version}-%{release} +BuildArch: noarch + +%description -n mingw32-%{name}-tools +%{summary}. + + +%package -n mingw64-%{name} +Summary: MinGW Windows %{name} library +Obsoletes: mingw64-%{name}-static +BuildArch: noarch + +%description -n mingw64-%{name} +%{summary}. + + +%package -n mingw64-%{name}-tools +Summary: Tools for the MinGW Windows %{name} library +Requires: mingw64-%{name} = %{version}-%{release} +BuildArch: noarch + +%description -n mingw64-%{name}-tools +%{summary}. + + +%{?mingw_debug_package} + %prep %autosetup -p1 +cp -a %{SOURCE1} . %build -autoreconf -vif -%configure -sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool -sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool -%make_build +# Native build +%cmake +%cmake_build + +# MinGW build +%mingw_cmake +%mingw_make_build %install -%make_install - -# Don't install any static .a and libtool .la files -rm -f %{buildroot}%{_libdir}/*.{a,la} - -# Remove makefile relics from documentation -rm -f doc/Makefile* +%cmake_install +%mingw_make_install +rm -rf %{buildroot}%{mingw32_mandir} +rm -rf %{buildroot}%{mingw64_mandir} -%ldconfig_scriptlets +%mingw_debug_install_post -%files -%doc AUTHORS ChangeLog NEWS README +%files +%doc ChangeLog NEWS README %license COPYING %{_libdir}/libgif.so.7* @@ -75,17 +131,116 @@ rm -f doc/Makefile* %files utils %{_bindir}/gif* -%{_mandir}/man1/gif*.1* +%{_mandir}/man1/*.1* + +%files -n mingw32-%{name} +%license COPYING +%{mingw32_bindir}/libgif-7.dll +%{mingw32_includedir}/gif_lib.h +%{mingw32_libdir}/libgif.dll.a + +%files -n mingw32-%{name}-tools +%{mingw32_bindir}/*.exe + +%files -n mingw64-%{name} +%license COPYING +%{mingw64_bindir}/libgif-7.dll +%{mingw64_includedir}/gif_lib.h +%{mingw64_libdir}/libgif.dll.a + +%files -n mingw64-%{name}-tools +%{mingw64_bindir}/*.exe %changelog -* Thu Nov 08 2018 Nikola Forró - 5.1.4-3 -- Generate HTML docs with consistent section IDs to avoid multilib difference - related: #1602513 +* Thu Feb 06 2025 Michal Hlavinka - 5.2.1-22 +- fix giftext memmory access error (RHEL-77803) -* Mon Oct 29 2018 Nikola Forró - 5.1.4-2 -- Fix important Covscan defects - resolves: #1602513 +* Tue Oct 29 2024 Troy Dawson - 5.2.1-21 +- Bump release for October 2024 mass rebuild: + Resolves: RHEL-64018 + +* Mon Jun 24 2024 Troy Dawson - 5.2.1-20 +- Bump release for June 2024 mass rebuild + +* Wed Jan 24 2024 Fedora Release Engineering - 5.2.1-19 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jan 19 2024 Fedora Release Engineering - 5.2.1-18 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Thu Sep 14 2023 Sandro Mani - 5.2.1-17 +- Add patch for CVE-2023-39742 + +* Wed Jul 19 2023 Fedora Release Engineering - 5.2.1-16 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Thu Jan 19 2023 Fedora Release Engineering - 5.2.1-15 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Thu Jul 21 2022 Sandro Mani - 5.2.1-14 +- Backport fix for CVE-2022-28506 + +* Thu Jul 21 2022 Fedora Release Engineering - 5.2.1-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Fri Mar 25 2022 Sandro Mani - 5.2.1-12 +- Rebuild with mingw-gcc-12 + +* Thu Feb 24 2022 Sandro Mani - 5.2.1-11 +- Make mingw subpackages noarch + +* Sat Feb 19 2022 Sandro Mani - 5.2.1-10 +- Add mingw subpackage + +* Thu Jan 20 2022 Fedora Release Engineering - 5.2.1-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Thu Jul 22 2021 Fedora Release Engineering - 5.2.1-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Tue Jan 26 2021 Fedora Release Engineering - 5.2.1-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Mon Jul 27 2020 Fedora Release Engineering - 5.2.1-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Feb 17 2020 Sandro Mani - 5.2.1-5 +- Fix several defects found by Coverity scan +- Generate HTML docs with consistent section IDs to avoid multilib difference + +* Tue Jan 28 2020 Fedora Release Engineering - 5.2.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Tue Oct 01 2019 Sandro Mani - 5.2.1-3 +- Move quantize.c back into libgif.so (#1750122) + +* Thu Jul 25 2019 Fedora Release Engineering - 5.2.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Fri Jun 28 2019 Sandro Mani - 5.2.1-1 +- Update to 5.2.1 + +* Mon Apr 01 2019 Sandro Mani - 5.1.9-1 +- Update to 5.1.9 + +* Wed Mar 20 2019 Sandro Mani - 5.1.8-1 +- Update to 5.1.8 + +* Mon Mar 11 2019 Sandro Mani - 5.1.7-1 +- Update to 5.1.7 + +* Sat Feb 23 2019 Sandro Mani - 5.1.6-2 +- Fix broken soname + +* Mon Feb 18 2019 Sandro Mani - 5.1.6-1 +- Update to 5.1.6 + +* Thu Jan 31 2019 Fedora Release Engineering - 5.1.4-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Fri Jul 13 2018 Fedora Release Engineering - 5.1.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild * Sun Feb 11 2018 Sandro Mani - 5.1.4-1 - Update to 5.1.4 diff --git a/giflib_coverity.patch b/giflib_coverity.patch new file mode 100644 index 0000000..c51234f --- /dev/null +++ b/giflib_coverity.patch @@ -0,0 +1,43 @@ +diff -rupN --no-dereference giflib-5.2.1/gif2rgb.c giflib-5.2.1-new/gif2rgb.c +--- giflib-5.2.1/gif2rgb.c 2019-06-24 09:24:27.000000000 +0200 ++++ giflib-5.2.1-new/gif2rgb.c 2020-02-17 16:51:04.468397502 +0100 +@@ -170,6 +170,8 @@ static void SaveGif(GifByteType *OutputB + /* Open stdout for the output file: */ + if ((GifFile = EGifOpenFileHandle(1, &Error)) == NULL) { + PrintGifError(Error); ++ free(OutputBuffer); ++ GifFreeMapObject(OutputColorMap); + exit(EXIT_FAILURE); + } + +@@ -179,6 +181,8 @@ static void SaveGif(GifByteType *OutputB + EGifPutImageDesc(GifFile, + 0, 0, Width, Height, false, NULL) == GIF_ERROR) { + PrintGifError(Error); ++ free(OutputBuffer); ++ GifFreeMapObject(OutputColorMap); + exit(EXIT_FAILURE); + } + +@@ -187,8 +191,11 @@ static void SaveGif(GifByteType *OutputB + GifFile->Image.Width, GifFile->Image.Height); + + for (i = 0; i < Height; i++) { +- if (EGifPutLine(GifFile, Ptr, Width) == GIF_ERROR) ++ if (EGifPutLine(GifFile, Ptr, Width) == GIF_ERROR) { ++ free(OutputBuffer); ++ GifFreeMapObject(OutputColorMap); + exit(EXIT_FAILURE); ++ } + GifQprintf("\b\b\b\b%-4d", Height - i - 1); + + Ptr += Width; +@@ -196,6 +203,8 @@ static void SaveGif(GifByteType *OutputB + + if (EGifCloseFile(GifFile, &Error) == GIF_ERROR) { + PrintGifError(Error); ++ free(OutputBuffer); ++ GifFreeMapObject(OutputColorMap); + exit(EXIT_FAILURE); + } + } diff --git a/giflib_html-docs-consistent-ids.patch b/giflib_html-docs-consistent-ids.patch new file mode 100644 index 0000000..d4006ea --- /dev/null +++ b/giflib_html-docs-consistent-ids.patch @@ -0,0 +1,12 @@ +diff -rupN --no-dereference giflib-5.2.1/doc/Makefile giflib-5.2.1-new/doc/Makefile +--- giflib-5.2.1/doc/Makefile 2019-03-28 18:05:25.000000000 +0100 ++++ giflib-5.2.1-new/doc/Makefile 2020-02-17 16:51:04.489397582 +0100 +@@ -1,7 +1,7 @@ + .SUFFIXES: .xml .html .txt .adoc .1 + + .xml.html: +- xmlto xhtml-nochunks $< ++ xmlto --stringparam generate.consistent.ids=1 xhtml-nochunks $< + + .xml.1: + xmlto man $< diff --git a/giflib_quantize.patch b/giflib_quantize.patch new file mode 100644 index 0000000..aa34629 --- /dev/null +++ b/giflib_quantize.patch @@ -0,0 +1,17 @@ +diff -rupN --no-dereference giflib-5.2.1/Makefile giflib-5.2.1-new/Makefile +--- giflib-5.2.1/Makefile 2019-06-24 18:08:57.000000000 +0200 ++++ giflib-5.2.1-new/Makefile 2020-02-17 16:51:04.450397434 +0100 +@@ -29,11 +29,11 @@ LIBPOINT=0 + LIBVER=$(LIBMAJOR).$(LIBMINOR).$(LIBPOINT) + + SOURCES = dgif_lib.c egif_lib.c gifalloc.c gif_err.c gif_font.c \ +- gif_hash.c openbsd-reallocarray.c ++ gif_hash.c openbsd-reallocarray.c quantize.c + HEADERS = gif_hash.h gif_lib.h gif_lib_private.h + OBJECTS = $(SOURCES:.c=.o) + +-USOURCES = qprintf.c quantize.c getarg.c ++USOURCES = qprintf.c getarg.c + UHEADERS = getarg.h + UOBJECTS = $(USOURCES:.c=.o) + diff --git a/sources b/sources index a2edad6..441cb4c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (giflib-5.1.4.tar.bz2) = 32b5e342056c210e6478e9cb3b6ceec9594dcfaf34feea1eb4dad633a081ed4465bceee578c19165907cb47cb83912ac359ceea666a8e07dbbb5420f9928f96d +SHA512 (giflib-5.2.1.tar.gz) = 4550e53c21cb1191a4581e363fc9d0610da53f7898ca8320f0d3ef6711e76bdda2609c2df15dc94c45e28bff8de441f1227ec2da7ea827cb3c0405af4faa4736