Compare commits

...
Sign in to create a new pull request.

36 commits

Author SHA1 Message Date
Fedora Release Engineering
23eb07266e Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-23 22:20:22 +00:00
Sandro Mani
421662abf7 Use GNUInstallDirs 2025-07-16 23:00:28 +02:00
Sandro Mani
f73f39798e Increase minimum cmake version to 3.5 2025-07-16 22:38:42 +02:00
Sandro Mani
c22b8e9757 Add proposed patch for CVE-2025-31334 2025-04-15 19:49:32 +02:00
Benson Muite
cb8a423c41 Change getarg.h to gif_getarg.h 2025-04-02 14:31:09 +03:00
Benson Muite
a4acb22cd1 Install getarg.h header file 2025-04-02 11:31:14 +03:00
Fedora Release Engineering
8e1d361c1b Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-16 21:57:03 +00:00
Fedora Release Engineering
880d895e67 Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-18 02:18:16 +00:00
Sandro Mani
d98866cb09 Update to 5.2.2 2024-02-19 09:51:30 +01:00
Fedora Release Engineering
c6d4a9e4fb Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-24 14:46:27 +00:00
Fedora Release Engineering
33951725b3 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-19 22:17:34 +00:00
Sandro Mani
4eea5ef82f Add patch for CVE-2023-39742 2023-09-14 20:57:35 +02:00
Fedora Release Engineering
8fe0587570 Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-19 22:55:59 +00:00
Fedora Release Engineering
273f1a15ca Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-19 04:49:44 +00:00
Sandro Mani
2e9917bf13 Backport fix for CVE-2022-28506 2022-07-21 10:01:11 +02:00
Fedora Release Engineering
763a35cb09 Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-21 06:11:03 +00:00
Sandro Mani
3395452f7e Rebuild with mingw-gcc-12 2022-03-25 13:56:50 +01:00
Sandro Mani
8493e8a24a Make mingw subpackages noarch 2022-02-24 20:06:58 +01:00
Sandro Mani
67fb7bb617 Add CMakeLists.txt 2022-02-24 16:24:26 +01:00
Sandro Mani
9f2b9319d7 Add mingw subpackages 2022-02-24 11:12:04 +01:00
Fedora Release Engineering
0a8d631a31 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-01-20 05:56:05 +00:00
Fedora Release Engineering
f4dde61417 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-07-22 01:34:52 +00:00
Fedora Release Engineering
9cfef479ca - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-01-26 08:02:28 +00:00
Fedora Release Engineering
0fbe9930a5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-07-27 19:58:17 +00:00
Sandro Mani
df94d26a07 Add giflib_coverity.patch, giflib_html-docs-consistent-ids.patch 2020-02-17 17:01:19 +01:00
Fedora Release Engineering
f871055c01 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-01-28 21:49:46 +00:00
Sandro Mani
109bf038d7 Move quantize.c back into libgif.so (#1750122) 2019-10-01 13:08:50 +02:00
Fedora Release Engineering
48fc3cfe92 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-07-25 03:20:12 +00:00
Sandro Mani
8be59c6ecd Update to 5.2.1 2019-06-28 12:21:58 +02:00
Sandro Mani
40f920d176 Update to 5.1.9 2019-04-01 10:37:20 +02:00
Sandro Mani
e04ff20350 Update to 5.1.8 2019-03-20 13:39:09 +01:00
Sandro Mani
f811572386 Update to 5.1.7 2019-03-11 11:39:57 +01:00
Sandro Mani
db1305a891 Fix broken soname 2019-02-23 20:08:57 +01:00
Sandro Mani
cec422d17e Update to 5.1.6 2019-02-23 18:58:50 +01:00
Fedora Release Engineering
3eeb518ee3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-01-31 22:20:02 +00:00
Fedora Release Engineering
1e69d64a07 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2018-07-13 02:19:58 +00:00
9 changed files with 742 additions and 21 deletions

6
.gitignore vendored
View file

@ -1,2 +1,8 @@
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

142
CMakeLists.txt Normal file
View file

@ -0,0 +1,142 @@
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]
)

308
getarg.patch Normal file
View file

@ -0,0 +1,308 @@
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 <stdlib.h>
#include <string.h>
-#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 <stdbool.h>
-
-#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 <io.h>
#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 <stdlib.h>
#include <string.h>
-#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 <stdlib.h>
#include <string.h>
-#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 <stdlib.h>
#include <string.h>
-#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 <stdlib.h>
#include <string.h>
-#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 <stdlib.h>
#include <string.h>
-#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 <stdlib.h>
#include <string.h>
-#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 <stdlib.h>
#include <string.h>
-#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 <stdbool.h>
+
+#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 <stdlib.h>
#include <string.h>
-#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 <unistd.h>
#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 <stdlib.h>
#include <string.h>
-#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 <io.h>
#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 <stdlib.h>
#include <string.h>
-#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 <stdlib.h>
#include <string.h>
-#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)

View file

@ -0,0 +1,15 @@
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;

View file

@ -1,16 +1,35 @@
Name: giflib
Summary: A library and utilities for processing GIFs
Version: 5.1.4
Release: 1%{?dist}
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.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
# 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: make
BuildRequires: xmlto
BuildRequires: mingw32-filesystem
BuildRequires: mingw32-gcc
BuildRequires: mingw64-filesystem
BuildRequires: mingw64-gcc
%description
giflib is a library for reading and writing gif images.
@ -33,33 +52,71 @@ 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
%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*
@ -67,13 +124,138 @@ rm -f doc/Makefile*
%doc doc/*
%{_libdir}/libgif.so
%{_includedir}/gif_lib.h
%{_includedir}/gif_getarg.h
%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_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
%changelog
* Wed Jul 23 2025 Fedora Release Engineering <releng@fedoraproject.org> - 5.2.2-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Wed Jul 16 2025 Sandro Mani <manisandro@gmail.com> - 5.2.2-7
- Increase minimum cmake version to 3.5
- Use GnuInstallDirs
* Tue Apr 15 2025 Sandro Mani <manisandro@gmail.com> - 5.2.2-6
- Add proposed patch for CVE-2025-31334
* Wed Apr 02 2025 Benson Muite <fed500@fedoraproject.org> - 5.2.2-5
- Rename getarg.h to gif_getarg.h
* Wed Apr 02 2025 Benson Muite <fed500@fedoraproject.org> - 5.2.2-4
- Install getarg.h header file
* Thu Jan 16 2025 Fedora Release Engineering <releng@fedoraproject.org> - 5.2.2-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Thu Jul 18 2024 Fedora Release Engineering <releng@fedoraproject.org> - 5.2.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Mon Feb 19 2024 Sandro Mani <manisandro@gmail.com> - 5.2.2-1
- Update to 5.2.2
* Wed Jan 24 2024 Fedora Release Engineering <releng@fedoraproject.org> - 5.2.1-19
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Fri Jan 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 5.2.1-18
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Thu Sep 14 2023 Sandro Mani <manisandro@gmail.com> - 5.2.1-17
- Add patch for CVE-2023-39742
* Wed Jul 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 5.2.1-16
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 5.2.1-15
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Thu Jul 21 2022 Sandro Mani <manisandro@gmail.com> - 5.2.1-14
- Backport fix for CVE-2022-28506
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 5.2.1-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Fri Mar 25 2022 Sandro Mani <manisandro@gmail.com> - 5.2.1-12
- Rebuild with mingw-gcc-12
* Thu Feb 24 2022 Sandro Mani <manisandro@gmail.com> - 5.2.1-11
- Make mingw subpackages noarch
* Sat Feb 19 2022 Sandro Mani <manisandro@gmail.com> - 5.2.1-10
- Add mingw subpackage
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 5.2.1-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 5.2.1-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 5.2.1-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 5.2.1-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Mon Feb 17 2020 Sandro Mani <manisandro@gmail.com> - 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 <releng@fedoraproject.org> - 5.2.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Tue Oct 01 2019 Sandro Mani <manisandro@gmail.com> - 5.2.1-3
- Move quantize.c back into libgif.so (#1750122)
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 5.2.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Fri Jun 28 2019 Sandro Mani <manisandro@gmail.com> - 5.2.1-1
- Update to 5.2.1
* Mon Apr 01 2019 Sandro Mani <manisandro@gmail.com> - 5.1.9-1
- Update to 5.1.9
* Wed Mar 20 2019 Sandro Mani <manisandro@gmail.com> - 5.1.8-1
- Update to 5.1.8
* Mon Mar 11 2019 Sandro Mani <manisandro@gmail.com> - 5.1.7-1
- Update to 5.1.7
* Sat Feb 23 2019 Sandro Mani <manisandro@gmail.com> - 5.1.6-2
- Fix broken soname
* Mon Feb 18 2019 Sandro Mani <manisandro@gmail.com> - 5.1.6-1
- Update to 5.1.6
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 5.1.4-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 5.1.4-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Sun Feb 11 2018 Sandro Mani <manisandro@gmail.com> - 5.1.4-1
- Update to 5.1.4

39
giflib_coverity.patch Normal file
View file

@ -0,0 +1,39 @@
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);
}
}

View file

@ -0,0 +1,12 @@
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 $<

17
giflib_quantize.patch Normal file
View file

@ -0,0 +1,17 @@
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)

View file

@ -1 +1 @@
SHA512 (giflib-5.1.4.tar.bz2) = 32b5e342056c210e6478e9cb3b6ceec9594dcfaf34feea1eb4dad633a081ed4465bceee578c19165907cb47cb83912ac359ceea666a8e07dbbb5420f9928f96d
SHA512 (giflib-5.2.2.tar.gz) = 0865ab2b1904fa14640c655fdb14bb54244ad18a66e358565c00287875d00912343f9be8bfac7658cc0146200d626f7ec9160d7a339f20ba3be6b9941d73975f