diff --git a/.gitignore b/.gitignore index cbfea7a..1fb1734 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1 @@ giflib-4.1.6.tar.bz2 -/giflib-5.1.4.tar.bz2 -/giflib-5.1.6.tar.gz -/giflib-5.1.7.tar.gz -/giflib-5.1.8.tar.gz -/giflib-5.1.9.tar.gz -/giflib-5.2.1.tar.gz -/giflib-5.2.2.tar.gz diff --git a/CMakeLists.txt b/CMakeLists.txt deleted file mode 100644 index 5bd836c..0000000 --- a/CMakeLists.txt +++ /dev/null @@ -1,142 +0,0 @@ -cmake_minimum_required(VERSION 3.5) - -project(giflib C) -include(GNUInstallDirs) - -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 ${CMAKE_INSTALL_BINDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} -) - -if(${BUILD_STATIC_LIBS}) - install(TARGETS gif_static ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) -endif(${BUILD_STATIC_LIBS}) - -foreach(UTILITY ${giflib_UTILS}) - install(TARGETS ${UTILITY} DESTINATION ${CMAKE_INSTALL_BINDIR}) -endforeach() - -install(FILES gif_lib.h gif_getarg.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) -install(FILES ${giflib_MAN} DESTINATION ${CMAKE_INSTALL_MANDIR}/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/getarg.patch b/getarg.patch deleted file mode 100644 index 4026183..0000000 --- a/getarg.patch +++ /dev/null @@ -1,308 +0,0 @@ -diff -rupN --no-dereference giflib-5.2.2/getarg.c giflib-5.2.2-new/getarg.c ---- giflib-5.2.2/getarg.c 2024-02-19 04:01:27.000000000 +0100 -+++ giflib-5.2.2-new/getarg.c 2025-04-15 16:56:27.276152030 +0200 -@@ -112,7 +112,7 @@ SPDX-License-Identifier: MIT - #include - #include - --#include "getarg.h" -+#include "gif_getarg.h" - - #define MAX_PARAM 100 /* maximum number of parameters allowed. */ - #define CTRL_STR_MAX_LEN 1024 -diff -rupN --no-dereference giflib-5.2.2/getarg.h giflib-5.2.2-new/getarg.h ---- giflib-5.2.2/getarg.h 2024-02-19 03:20:00.000000000 +0100 -+++ giflib-5.2.2-new/getarg.h 1970-01-01 01:00:00.000000000 +0100 -@@ -1,54 +0,0 @@ --/*************************************************************************** -- --getarg.h - Support routines for the giflib utilities -- --SPDX-License-Identifier: MIT -- -- **************************************************************************/ -- --#ifndef _GETARG_H --#define _GETARG_H -- --#include "gif_lib.h" --#include -- --#define VERSION_COOKIE " Version %d.%d, " -- --/*************************************************************************** -- Error numbers as returned by GAGetArg routine: --***************************************************************************/ --#define CMD_ERR_NotAnOpt 1 /* None Option found. */ --#define CMD_ERR_NoSuchOpt 2 /* Undefined Option Found. */ --#define CMD_ERR_WildEmpty 3 /* Empty input for !*? seq. */ --#define CMD_ERR_NumRead 4 /* Failed on reading number. */ --#define CMD_ERR_AllSatis 5 /* Fail to satisfy (must-'!') option. */ -- --bool GAGetArgs(int argc, char **argv, char *CtrlStr, ...); --void GAPrintErrMsg(int Error); --void GAPrintHowTo(char *CtrlStr); -- --/****************************************************************************** -- From qprintf.c --******************************************************************************/ --extern void GifQprintf(char *Format, ...); --extern void PrintGifError(int ErrorCode); -- --/****************************************************************************** -- Color table quantization --******************************************************************************/ --int GifQuantizeBuffer(unsigned int Width, unsigned int Height, -- int *ColorMapSize, GifByteType *RedInput, -- GifByteType *GreenInput, GifByteType *BlueInput, -- GifByteType *OutputBuffer, GifColorType *OutputColorMap); -- --/* These used to live in the library header */ --#define GIF_MESSAGE(Msg) fprintf(stderr, "\n%s: %s\n", PROGRAM_NAME, Msg) --#define GIF_EXIT(Msg) \ -- { \ -- GIF_MESSAGE(Msg); \ -- exit(-3); \ -- } -- --#endif /* _GETARG_H */ -- --/* end */ -diff -rupN --no-dereference giflib-5.2.2/gif2rgb.c giflib-5.2.2-new/gif2rgb.c ---- giflib-5.2.2/gif2rgb.c 2025-04-15 16:56:27.247167987 +0200 -+++ giflib-5.2.2-new/gif2rgb.c 2025-04-15 16:56:27.276617411 +0200 -@@ -34,7 +34,7 @@ with our utilities mainly interesting as - #include - #endif /* _WIN32 */ - --#include "getarg.h" -+#include "gif_getarg.h" - #include "gif_lib.h" - - #define PROGRAM_NAME "gif2rgb" -diff -rupN --no-dereference giflib-5.2.2/gifbg.c giflib-5.2.2-new/gifbg.c ---- giflib-5.2.2/gifbg.c 2024-02-19 04:01:28.000000000 +0100 -+++ giflib-5.2.2-new/gifbg.c 2025-04-15 16:56:27.276870781 +0200 -@@ -12,7 +12,7 @@ SPDX-License-Identifier: MIT - #include - #include - --#include "getarg.h" -+#include "gif_getarg.h" - #include "gif_lib.h" - - #define PROGRAM_NAME "gifbg" -diff -rupN --no-dereference giflib-5.2.2/gifbuild.c giflib-5.2.2-new/gifbuild.c ---- giflib-5.2.2/gifbuild.c 2024-02-19 04:05:16.000000000 +0100 -+++ giflib-5.2.2-new/gifbuild.c 2025-04-15 16:56:27.277111740 +0200 -@@ -12,7 +12,7 @@ SPDX-License-Identifier: MIT - #include - #include - --#include "getarg.h" -+#include "gif_getarg.h" - #include "gif_lib.h" - - #define PROGRAM_NAME "gifbuild" -diff -rupN --no-dereference giflib-5.2.2/gifclrmp.c giflib-5.2.2-new/gifclrmp.c ---- giflib-5.2.2/gifclrmp.c 2024-02-19 04:01:27.000000000 +0100 -+++ giflib-5.2.2-new/gifclrmp.c 2025-04-15 16:56:27.277368098 +0200 -@@ -14,7 +14,7 @@ SPDX-License-Identifier: MIT - #include - #include - --#include "getarg.h" -+#include "gif_getarg.h" - #include "gif_lib.h" - - #define PROGRAM_NAME "gifclrmp" -diff -rupN --no-dereference giflib-5.2.2/gifcolor.c giflib-5.2.2-new/gifcolor.c ---- giflib-5.2.2/gifcolor.c 2024-02-19 04:01:28.000000000 +0100 -+++ giflib-5.2.2-new/gifcolor.c 2025-04-15 16:56:27.277585194 +0200 -@@ -12,7 +12,7 @@ SPDX-License-Identifier: MIT - #include - #include - --#include "getarg.h" -+#include "gif_getarg.h" - #include "gif_lib.h" - - #define PROGRAM_NAME "gifcolor" -diff -rupN --no-dereference giflib-5.2.2/gifecho.c giflib-5.2.2-new/gifecho.c ---- giflib-5.2.2/gifecho.c 2024-02-19 04:01:27.000000000 +0100 -+++ giflib-5.2.2-new/gifecho.c 2025-04-15 16:56:27.277769355 +0200 -@@ -12,7 +12,7 @@ SPDX-License-Identifier: MIT - #include - #include - --#include "getarg.h" -+#include "gif_getarg.h" - #include "gif_lib.h" - - #define PROGRAM_NAME "gifecho" -diff -rupN --no-dereference giflib-5.2.2/giffilter.c giflib-5.2.2-new/giffilter.c ---- giflib-5.2.2/giffilter.c 2024-02-19 04:01:28.000000000 +0100 -+++ giflib-5.2.2-new/giffilter.c 2025-04-15 16:56:27.277955467 +0200 -@@ -25,7 +25,7 @@ SPDX-License-Identifier: MIT - #include - #include - --#include "getarg.h" -+#include "gif_getarg.h" - #include "gif_lib.h" - - #define PROGRAM_NAME "giffilter" -diff -rupN --no-dereference giflib-5.2.2/giffix.c giflib-5.2.2-new/giffix.c ---- giflib-5.2.2/giffix.c 2024-02-19 04:01:27.000000000 +0100 -+++ giflib-5.2.2-new/giffix.c 2025-04-15 16:56:27.278150152 +0200 -@@ -12,7 +12,7 @@ SPDX-License-Identifier: MIT - #include - #include - --#include "getarg.h" -+#include "gif_getarg.h" - #include "gif_lib.h" - - #define PROGRAM_NAME "giffix" -diff -rupN --no-dereference giflib-5.2.2/gif_getarg.h giflib-5.2.2-new/gif_getarg.h ---- giflib-5.2.2/gif_getarg.h 1970-01-01 01:00:00.000000000 +0100 -+++ giflib-5.2.2-new/gif_getarg.h 2025-04-15 16:56:27.278343984 +0200 -@@ -0,0 +1,54 @@ -+/*************************************************************************** -+ -+getarg.h - Support routines for the giflib utilities -+ -+SPDX-License-Identifier: MIT -+ -+ **************************************************************************/ -+ -+#ifndef _GETARG_H -+#define _GETARG_H -+ -+#include "gif_lib.h" -+#include -+ -+#define VERSION_COOKIE " Version %d.%d, " -+ -+/*************************************************************************** -+ Error numbers as returned by GAGetArg routine: -+***************************************************************************/ -+#define CMD_ERR_NotAnOpt 1 /* None Option found. */ -+#define CMD_ERR_NoSuchOpt 2 /* Undefined Option Found. */ -+#define CMD_ERR_WildEmpty 3 /* Empty input for !*? seq. */ -+#define CMD_ERR_NumRead 4 /* Failed on reading number. */ -+#define CMD_ERR_AllSatis 5 /* Fail to satisfy (must-'!') option. */ -+ -+bool GAGetArgs(int argc, char **argv, char *CtrlStr, ...); -+void GAPrintErrMsg(int Error); -+void GAPrintHowTo(char *CtrlStr); -+ -+/****************************************************************************** -+ From qprintf.c -+******************************************************************************/ -+extern void GifQprintf(char *Format, ...); -+extern void PrintGifError(int ErrorCode); -+ -+/****************************************************************************** -+ Color table quantization -+******************************************************************************/ -+int GifQuantizeBuffer(unsigned int Width, unsigned int Height, -+ int *ColorMapSize, GifByteType *RedInput, -+ GifByteType *GreenInput, GifByteType *BlueInput, -+ GifByteType *OutputBuffer, GifColorType *OutputColorMap); -+ -+/* These used to live in the library header */ -+#define GIF_MESSAGE(Msg) fprintf(stderr, "\n%s: %s\n", PROGRAM_NAME, Msg) -+#define GIF_EXIT(Msg) \ -+ { \ -+ GIF_MESSAGE(Msg); \ -+ exit(-3); \ -+ } -+ -+#endif /* _GETARG_H */ -+ -+/* end */ -diff -rupN --no-dereference giflib-5.2.2/gifhisto.c giflib-5.2.2-new/gifhisto.c ---- giflib-5.2.2/gifhisto.c 2024-02-19 04:01:28.000000000 +0100 -+++ giflib-5.2.2-new/gifhisto.c 2025-04-15 16:56:27.278489203 +0200 -@@ -12,7 +12,7 @@ SPDX-License-Identifier: MIT - #include - #include - --#include "getarg.h" -+#include "gif_getarg.h" - #include "gif_lib.h" - - #define PROGRAM_NAME "gifhisto" -diff -rupN --no-dereference giflib-5.2.2/gifinto.c giflib-5.2.2-new/gifinto.c ---- giflib-5.2.2/gifinto.c 2024-02-19 04:01:28.000000000 +0100 -+++ giflib-5.2.2-new/gifinto.c 2025-04-15 16:56:27.278753624 +0200 -@@ -19,7 +19,7 @@ SPDX-License-Identifier: MIT - #include - #endif /* _WIN32 */ - --#include "getarg.h" -+#include "gif_getarg.h" - #include "gif_lib.h" - - #define PROGRAM_NAME "gifinto" -diff -rupN --no-dereference giflib-5.2.2/gifsponge.c giflib-5.2.2-new/gifsponge.c ---- giflib-5.2.2/gifsponge.c 2024-02-19 04:01:28.000000000 +0100 -+++ giflib-5.2.2-new/gifsponge.c 2025-04-15 16:56:27.278945283 +0200 -@@ -25,7 +25,7 @@ SPDX-License-Identifier: MIT - #include - #include - --#include "getarg.h" -+#include "gif_getarg.h" - #include "gif_lib.h" - - #define PROGRAM_NAME "gifsponge" -diff -rupN --no-dereference giflib-5.2.2/giftext.c giflib-5.2.2-new/giftext.c ---- giflib-5.2.2/giftext.c 2024-02-19 04:01:28.000000000 +0100 -+++ giflib-5.2.2-new/giftext.c 2025-04-15 16:56:27.279142751 +0200 -@@ -16,7 +16,7 @@ SPDX-License-Identifier: MIT - #include - #endif /* _WIN32 */ - --#include "getarg.h" -+#include "gif_getarg.h" - #include "gif_lib.h" - - #define PROGRAM_NAME "giftext" -diff -rupN --no-dereference giflib-5.2.2/giftool.c giflib-5.2.2-new/giftool.c ---- giflib-5.2.2/giftool.c 2024-02-19 04:01:28.000000000 +0100 -+++ giflib-5.2.2-new/giftool.c 2025-04-15 16:56:27.279376975 +0200 -@@ -12,7 +12,7 @@ SPDX-License-Identifier: MIT - #include - #include - --#include "getarg.h" -+#include "gif_getarg.h" - #include "getopt.h" - #include "gif_lib.h" - -diff -rupN --no-dereference giflib-5.2.2/gifwedge.c giflib-5.2.2-new/gifwedge.c ---- giflib-5.2.2/gifwedge.c 2024-02-19 04:01:27.000000000 +0100 -+++ giflib-5.2.2-new/gifwedge.c 2025-04-15 16:56:27.279666309 +0200 -@@ -12,7 +12,7 @@ SPDX-License-Identifier: MIT - #include - #include - --#include "getarg.h" -+#include "gif_getarg.h" - #include "gif_lib.h" - - #define PROGRAM_NAME "gifwedge" -diff -rupN --no-dereference giflib-5.2.2/Makefile giflib-5.2.2-new/Makefile ---- giflib-5.2.2/Makefile 2025-04-15 16:56:27.223615747 +0200 -+++ giflib-5.2.2-new/Makefile 2025-04-15 16:56:27.279870038 +0200 -@@ -34,7 +34,7 @@ HEADERS = gif_hash.h gif_lib.h gif_lib - OBJECTS = $(SOURCES:.c=.o) - - USOURCES = qprintf.c getarg.c --UHEADERS = getarg.h -+UHEADERS = gif_getarg.h - UOBJECTS = $(USOURCES:.c=.o) - - UNAME:=$(shell uname) diff --git a/giflib-5.2.2-cve-2025-31344.patch b/giflib-5.2.2-cve-2025-31344.patch deleted file mode 100644 index bf9abfd..0000000 --- a/giflib-5.2.2-cve-2025-31344.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff -rupN --no-dereference giflib-5.2.2/gif2rgb.c giflib-5.2.2-new/gif2rgb.c ---- giflib-5.2.2/gif2rgb.c 2025-04-15 16:56:27.300766548 +0200 -+++ giflib-5.2.2-new/gif2rgb.c 2025-04-15 16:56:27.308678722 +0200 -@@ -337,6 +337,11 @@ static void DumpScreen2RGB(char *FileNam - GifRow = ScreenBuffer[i]; - GifQprintf("\b\b\b\b%-4d", ScreenHeight - i); - for (j = 0; 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]]; - Buffers[0][j] = ColorMapEntry->Red; - Buffers[1][j] = ColorMapEntry->Green; diff --git a/giflib.spec b/giflib.spec index 682379f..492ead6 100644 --- a/giflib.spec +++ b/giflib.spec @@ -1,318 +1,95 @@ -Name: giflib -Summary: A library and utilities for processing GIFs -Version: 5.2.2 -Release: 8%{?dist} - -License: MIT -URL: http://www.sourceforge.net/projects/%{name}/ -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 -# Rename getarg.h to gif_getarg.h -# https://sourceforge.net/p/giflib/code/merge-requests/18/ -Patch3: getarg.patch -# Proposed patch for CVE-2025-31344 -Patch4: https://raw.githubusercontent.com/OpenMandrivaAssociation/giflib/refs/heads/master/giflib-5.2.2-cve-2025-31344.patch - -BuildRequires: cmake -BuildRequires: gcc -BuildRequires: xmlto - -BuildRequires: mingw32-filesystem -BuildRequires: mingw32-gcc - -BuildRequires: mingw64-filesystem -BuildRequires: mingw64-gcc - +Summary: Library for manipulating GIF format image files +Name: giflib +Version: 4.1.6 +Release: 4%{?dist} +License: MIT +Group: System Environment/Libraries +URL: http://www.sourceforge.net/projects/%{name}/ +Source: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.bz2 +BuildRequires: libX11-devel, libICE-devel, libSM-devel, libXt-devel +Provides: libungif = %{version}-%{release} +Obsoletes: libungif <= %{version}-%{release} +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) %description -giflib is a library for reading and writing gif images. - +The giflib package contains a shared library of functions for loading and +saving GIF format image files. It is API and ABI compatible with libungif, +the library which supported uncompressed GIFs while the Unisys LZW patent +was in effect. %package devel -Summary: Development files for programs using the giflib library -Requires: %{name}%{?_isa} = %{version}-%{release} +Summary: Development tools for programs using the giflib library +Group: Development/Libraries +Requires: %{name} = %{version}-%{release} +Provides: libungif-devel = %{version}-%{release} +Obsoletes: libungif-devel <= %{version}-%{release} %description devel The giflib-devel package includes header files, libraries necessary for -developing programs which use the giflib library. - +developing programs which use the giflib library to load and save GIF format +image files. It contains the documentation of the giflib library, too. %package utils -Summary: Programs for manipulating GIF format image files -Requires: %{name}%{?_isa} = %{version}-%{release} +Summary: Programs for manipulating GIF format image files +Group: Applications/Multimedia +Requires: %{name} = %{version}-%{release} +Provides: libungif-progs = %{version}-%{release} +Obsoletes: libungif-progs <= %{version}-%{release} %description utils 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} - +format image files. Install it if you need to manipulate GIF format image +files. %prep -%autosetup -p1 -cp -a %{SOURCE1} . +%setup -q %build -# Native build -%cmake -%cmake_build - -# MinGW build -%mingw_cmake -%mingw_make_build +%configure +make %{?_smp_mflags} all +# Handling of libungif compatibility +MAJOR=`echo '%{version}' | sed -e 's/\([0-9]\+\)\..*/\1/'` +%{__cc} $RPM_OPT_FLAGS -shared -Wl,-soname,libungif.so.$MAJOR -Llib/.libs -lgif -o libungif.so.%{version} %install -%cmake_install -%mingw_make_install -rm -rf %{buildroot}%{mingw32_mandir} -rm -rf %{buildroot}%{mingw64_mandir} +rm -rf $RPM_BUILD_ROOT +make DESTDIR=$RPM_BUILD_ROOT INSTALL='install -p' install +# Handling of libungif compatibility +install -p -m 755 libungif.so.%{version} $RPM_BUILD_ROOT%{_libdir} +ln -sf libungif.so.%{version} $RPM_BUILD_ROOT%{_libdir}/libungif.so.4 +ln -sf libungif.so.4 $RPM_BUILD_ROOT%{_libdir}/libungif.so -%mingw_debug_install_post +# Don't install any static .a and libtool .la files +rm -f $RPM_BUILD_ROOT%{_libdir}/*.{a,la} +# Remove makefile relics from documentation +rm -f doc/Makefile* -%files -%doc ChangeLog NEWS README -%license COPYING -%{_libdir}/libgif.so.7* +%clean +rm -rf $RPM_BUILD_ROOT + +%post -p /sbin/ldconfig + +%postun -p /sbin/ldconfig + +%files +%defattr(-,root,root,-) +%doc AUTHORS ChangeLog COPYING NEWS README +%{_libdir}/lib*.so.* %files devel -%doc doc/* -%{_libdir}/libgif.so -%{_includedir}/gif_lib.h -%{_includedir}/gif_getarg.h +%defattr(-,root,root,-) +%doc doc/* util/giffiltr.c util/gifspnge.c +%{_libdir}/lib*.so +%{_includedir}/*.h %files utils -%{_bindir}/gif* -%{_mandir}/man1/*.1* - -%files -n mingw32-%{name} -%license COPYING -%{mingw32_bindir}/libgif-7.dll -%{mingw32_includedir}/gif_lib.h -%{mingw32_includedir}/gif_getarg.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_includedir}/gif_getarg.h -%{mingw64_libdir}/libgif.dll.a - -%files -n mingw64-%{name}-tools -%{mingw64_bindir}/*.exe - +%defattr(-,root,root,-) +%{_bindir}/* %changelog -* Wed Jul 23 2025 Fedora Release Engineering - 5.2.2-8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Wed Jul 16 2025 Sandro Mani - 5.2.2-7 -- Increase minimum cmake version to 3.5 -- Use GnuInstallDirs - -* Tue Apr 15 2025 Sandro Mani - 5.2.2-6 -- Add proposed patch for CVE-2025-31334 - -* Wed Apr 02 2025 Benson Muite - 5.2.2-5 -- Rename getarg.h to gif_getarg.h - -* Wed Apr 02 2025 Benson Muite - 5.2.2-4 -- Install getarg.h header file - -* Thu Jan 16 2025 Fedora Release Engineering - 5.2.2-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Thu Jul 18 2024 Fedora Release Engineering - 5.2.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Mon Feb 19 2024 Sandro Mani - 5.2.2-1 -- Update to 5.2.2 - -* 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 - -* Thu Feb 8 2018 Florian Weimer - 4.1.6-22 -- Build libungif with linker flags from redhat-rpm-config - -* Wed Feb 07 2018 Fedora Release Engineering - 4.1.6-21 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Sat Feb 03 2018 Igor Gnatenko - 4.1.6-20 -- Switch to %%ldconfig_scriptlets - -* Wed Aug 02 2017 Fedora Release Engineering - 4.1.6-19 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild - -* Wed Jul 26 2017 Fedora Release Engineering - 4.1.6-18 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Wed Mar 29 2017 Stephen Gallagher - 4.1.6-17 -- Fix compilation errors when -Werror=format-security - -* Fri Feb 10 2017 Fedora Release Engineering - 4.1.6-16 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Wed Feb 03 2016 Fedora Release Engineering - 4.1.6-15 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Fri Aug 14 2015 Adam Jackson 4.1.6-14 -- Link libungif with -z now too - -* Wed Jun 17 2015 Fedora Release Engineering - 4.1.6-13 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild - -* Sat Aug 16 2014 Fedora Release Engineering - 4.1.6-12 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild - -* Sat Jun 07 2014 Fedora Release Engineering - 4.1.6-11 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild - -* Wed Dec 18 2013 Peter Robinson 4.1.6-10 -- Rebuild - -* Sat Aug 03 2013 Fedora Release Engineering - 4.1.6-9 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild - -* Wed Jul 17 2013 Petr Pisar - 4.1.6-8 -- Perl 5.18 rebuild - -* Wed Feb 13 2013 Fedora Release Engineering - 4.1.6-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild - -* Thu Jul 19 2012 Fedora Release Engineering - 4.1.6-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild - -* Fri Jan 13 2012 Fedora Release Engineering - 4.1.6-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild - * Tue Feb 08 2011 Fedora Release Engineering - 4.1.6-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild diff --git a/giflib_coverity.patch b/giflib_coverity.patch deleted file mode 100644 index acba905..0000000 --- a/giflib_coverity.patch +++ /dev/null @@ -1,39 +0,0 @@ -diff -rupN --no-dereference giflib-5.2.2/gif2rgb.c giflib-5.2.2-new/gif2rgb.c ---- giflib-5.2.2/gif2rgb.c 2024-02-19 04:01:28.000000000 +0100 -+++ giflib-5.2.2-new/gif2rgb.c 2025-04-15 16:56:27.228197561 +0200 -@@ -165,6 +165,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); - } - -@@ -173,6 +175,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); - } - -@@ -182,6 +186,8 @@ static void SaveGif(GifByteType *OutputB - - for (i = 0; i < Height; i++) { - if (EGifPutLine(GifFile, Ptr, Width) == GIF_ERROR) { -+ free(OutputBuffer); -+ GifFreeMapObject(OutputColorMap); - exit(EXIT_FAILURE); - } - GifQprintf("\b\b\b\b%-4d", Height - i - 1); -@@ -191,6 +197,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 deleted file mode 100644 index ea3da5b..0000000 --- a/giflib_html-docs-consistent-ids.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -rupN --no-dereference giflib-5.2.2/doc/Makefile giflib-5.2.2-new/doc/Makefile ---- giflib-5.2.2/doc/Makefile 2024-02-18 19:15:05.000000000 +0100 -+++ giflib-5.2.2-new/doc/Makefile 2025-04-15 16:56:27.252074979 +0200 -@@ -1,7 +1,7 @@ - .SUFFIXES: .xml .html .txt .adoc .1 .7 - - .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 deleted file mode 100644 index 66c48e0..0000000 --- a/giflib_quantize.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff -rupN --no-dereference giflib-5.2.2/Makefile giflib-5.2.2-new/Makefile ---- giflib-5.2.2/Makefile 2024-02-19 02:01:50.000000000 +0100 -+++ giflib-5.2.2-new/Makefile 2025-04-15 16:56:27.204960961 +0200 -@@ -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 67868a9..c66eb81 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (giflib-5.2.2.tar.gz) = 0865ab2b1904fa14640c655fdb14bb54244ad18a66e358565c00287875d00912343f9be8bfac7658cc0146200d626f7ec9160d7a339f20ba3be6b9941d73975f +7125644155ae6ad33dbc9fc15a14735f giflib-4.1.6.tar.bz2