On Sat, May 23, 2026 at 12:19:16PM +0200, gonzalo wrote:
> Hello,
> 
> Update for giflib to 6.1.3:
> 
> https://sourceforge.net/p/giflib/code/ci/edff4aed17f857442ab0cac31566572ba08f93d3/log/
> 
> OK? Comments?

Diff is incomplete as two patches were already introduced upstream.
make check-shlib-syms doesn't warn about new/removed symbols etc, but
we should still bump the major I think.  Looking at the diff between
old and new gif_lib.h:

|--- /usr/local/include/gif_lib.h        Thu May 21 18:54:57 2026
|+++ /usr/ports/pobj/giflib-6.1.3/fake-amd64/usr/local/include/gif_lib.h Sat 
May 23 13:09:46 2026
|@@ -13,9 +13,9 @@
| extern "C" {
| #endif /* __cplusplus */
|
|-#define GIFLIB_MAJOR 5
|-#define GIFLIB_MINOR 2
|-#define GIFLIB_RELEASE 2
|+#define GIFLIB_MAJOR 6
|+#define GIFLIB_MINOR 1
|+#define GIFLIB_RELEASE 3
|
| #define GIF_ERROR 0
| #define GIF_OK 1
|@@ -129,21 +129,21 @@
|                               const bool GifTestExistence, int *Error);
| GifFileType *EGifOpenFileHandle(const int GifFileHandle, int *Error);
| GifFileType *EGifOpen(void *userPtr, OutputFunc writeFunc, int *Error);
|-int EGifSpew(GifFileType *GifFile);
|+int EGifSpew(GifFileType *GifFile, int *ErrorCode);
| const char *EGifGetGifVersion(GifFileType *GifFile); /* new in 5.x */
| int EGifCloseFile(GifFileType *GifFile, int *ErrorCode);
|
| #define E_GIF_SUCCEEDED 0
|-#define E_GIF_ERR_OPEN_FAILED 1 /* And EGif possible errors. */
|-#define E_GIF_ERR_WRITE_FAILED 2
|-#define E_GIF_ERR_HAS_SCRN_DSCR 3
|-#define E_GIF_ERR_HAS_IMAG_DSCR 4
|-#define E_GIF_ERR_NO_COLOR_MAP 5
|-#define E_GIF_ERR_DATA_TOO_BIG 6
|-#define E_GIF_ERR_NOT_ENOUGH_MEM 7
|-#define E_GIF_ERR_DISK_IS_FULL 8
|-#define E_GIF_ERR_CLOSE_FAILED 9
|-#define E_GIF_ERR_NOT_WRITEABLE 10
|+#define E_GIF_ERR_OPEN_FAILED 201 /* And EGif possible errors. */
|+#define E_GIF_ERR_WRITE_FAILED 202
|+#define E_GIF_ERR_HAS_SCRN_DSCR 203
|+#define E_GIF_ERR_HAS_IMAG_DSCR 204
|+#define E_GIF_ERR_NO_COLOR_MAP 205
|+#define E_GIF_ERR_DATA_TOO_BIG 206
|+#define E_GIF_ERR_NOT_ENOUGH_MEM 207
|+#define E_GIF_ERR_DISK_IS_FULL 208
|+#define E_GIF_ERR_CLOSE_FAILED 209
|+#define E_GIF_ERR_NOT_WRITEABLE 210

The signature of a function was changed, which is incompatible.  The
renumbering of the error codes is most likely also an incompatible
change.

Updated diff:

Index: Makefile
===================================================================
RCS file: /home/cvs/ports/graphics/giflib/Makefile,v
diff -u -p -r1.35 Makefile
--- Makefile    22 Apr 2025 15:55:32 -0000      1.35
+++ Makefile    23 May 2026 11:15:11 -0000
@@ -1,8 +1,7 @@
 COMMENT=       tools and library routines for working with GIF images
 
-DISTNAME=      giflib-5.2.2
-REVISION=      0
-SHARED_LIBS += gif                  9.1      # 7.1
+DISTNAME=      giflib-6.1.3
+SHARED_LIBS += gif                  10.0
 CATEGORIES=    graphics
 
 SITES=         ${SITE_SOURCEFORGE:=giflib/}
@@ -17,7 +16,8 @@ WANTLIB += c m
 USE_GMAKE=     Yes
 CFLAGS+=       -DHAVE_REALLOCARRAY
 MAKE_FLAGS=    CC="${CC}" OFLAGS="${CFLAGS}" LIBVER="${LIBgif_VERSION}"
-FAKE_FLAGS=    MANDIR="${PREFIX}/man" LIBVER="${LIBgif_VERSION}"
+FAKE_FLAGS=    MANDIR="${PREFIX}/man" LIBVER="${LIBgif_VERSION}" \
+               PREFIX="${PREFIX}"
 
 BUILD_DEPENDS+=        textproc/xmlto
 TEST_DEPENDS=  sysutils/coreutils
Index: distinfo
===================================================================
RCS file: /home/cvs/ports/graphics/giflib/distinfo,v
diff -u -p -r1.8 distinfo
--- distinfo    29 Feb 2024 15:25:40 -0000      1.8
+++ distinfo    23 May 2026 11:04:19 -0000
@@ -1,2 +1,2 @@
-SHA256 (giflib-5.2.2.tar.gz) = vn/70FfK3r4qoURUL9kMaDjGoIO16KkEi47jtmsp1fs=
-SIZE (giflib-5.2.2.tar.gz) = 447175
+SHA256 (giflib-6.1.3.tar.gz) = tltmuZ8EJLk1JfmHOG8i/F77naK/ySrUpTIkmq/7qw4=
+SIZE (giflib-6.1.3.tar.gz) = 470579
Index: patches/patch-Makefile
===================================================================
RCS file: /home/cvs/ports/graphics/giflib/patches/patch-Makefile,v
diff -u -p -r1.4 patch-Makefile
--- patches/patch-Makefile      29 Feb 2024 15:25:40 -0000      1.4
+++ patches/patch-Makefile      23 May 2026 11:04:19 -0000
@@ -1,96 +1,48 @@
-- Correct document page install.
-  61f375082c80ee479eb8ff03189aea691a6a06aa
-
-hunk 1, disable -Wno-format-truncation, not available on some compilers?
-
-hunk 2, move quantize.c back to exported library, it was in the public
-API prior to 5.2 and is used by various downstream users
-https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=935088
-https://src.fedoraproject.org/rpms/giflib/c/109bf038d703a471b857aba44af673be103d7079?branch=master
-
-hunk 5-6, library handling
-
 Index: Makefile
 --- Makefile.orig
 +++ Makefile
-@@ -8,7 +8,7 @@
- #
- OFLAGS = -O0 -g
- OFLAGS  = -O2
--CFLAGS  = -std=gnu99 -fPIC -Wall -Wno-format-truncation $(OFLAGS)
-+CFLAGS  = -std=gnu99 -fPIC -Wall $(OFLAGS)
- 
- SHELL = /bin/sh
- TAR = tar
-@@ -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)
- 
-@@ -63,17 +63,21 @@ UTILS = $(INSTALLABLE) \
- 
- LDLIBS=libgif.a -lm
- 
--MANUAL_PAGES = \
-+MANUAL_PAGES_1 = \
-       doc/gif2rgb.xml \
-       doc/gifbuild.xml \
-       doc/gifclrmp.xml \
-       doc/giffix.xml \
--      doc/giflib.xml \
-       doc/giftext.xml \
-       doc/giftool.xml
- 
-+MANUAL_PAGES_7 = \
-+      doc/giflib.xml
-+
-+MANUAL_PAGES = $(MANUAL_PAGES_1) $(MANUAL_PAGES_7)
-+
- SOEXTENSION   = so
--LIBGIFSO      = libgif.$(SOEXTENSION)
-+LIBGIFSO      = libgif.$(SOEXTENSION).$(LIBVER)
+@@ -95,7 +95,7 @@ SOEXTENSION  = so
+ LIBGIFSO      = libgif.$(SOEXTENSION)
  LIBGIFSOMAJOR = libgif.$(SOEXTENSION).$(LIBMAJOR)
  LIBGIFSOVER   = libgif.$(SOEXTENSION).$(LIBVER)
- LIBUTILSO     = libutil.$(SOEXTENSION)
-@@ -99,7 +103,7 @@ $(LIBGIFSO): $(OBJECTS) $(HEADERS)
+-LIBUTILSO     = libutil.$(SOEXTENSION)
++LIBUTILSO     = libutil.$(SOEXTENSION).$(LIBVER)
+ LIBUTILSOMAJOR        = libutil.$(SOEXTENSION).$(LIBMAJOR)
+ ifeq ($(UNAME), Darwin)
+ SOEXTENSION   = dylib
+@@ -125,7 +125,7 @@ $(LIBGIFSO): $(OBJECTS) $(HEADERS)
  ifeq ($(UNAME), Darwin)
        $(CC) $(CFLAGS) -dynamiclib -current_version $(LIBVER) $(OBJECTS) -o 
$(LIBGIFSO)
  else
--      $(CC) $(CFLAGS) -shared $(LDFLAGS) -Wl,-soname -Wl,$(LIBGIFSOMAJOR) -o 
$(LIBGIFSO) $(OBJECTS)
+-      $(CC) $(CFLAGS) $(CPPFLAGS) -shared $(LDFLAGS) -Wl,-soname 
-Wl,$(LIBGIFSOMAJOR) -o $(LIBGIFSO) $(OBJECTS)
 +      $(CC) $(CFLAGS) -shared $(LDFLAGS) -o $(LIBGIFSO) $(OBJECTS)
  endif
  
  libgif.a: $(OBJECTS) $(HEADERS)
-@@ -109,7 +113,7 @@ $(LIBUTILSO): $(UOBJECTS) $(UHEADERS)
+@@ -135,7 +135,7 @@ $(LIBUTILSO): $(UOBJECTS) $(UHEADERS)
  ifeq ($(UNAME), Darwin)
-       $(CC) $(CFLAGS) -dynamiclib -current_version $(LIBVER) $(OBJECTS) -o 
$(LIBUTILSO)
+       $(CC) $(CFLAGS) -dynamiclib -current_version $(LIBVER) $(UOBJECTS) -o 
$(LIBUTILSO)
  else
--      $(CC) $(CFLAGS) -shared $(LDFLAGS) -Wl,-soname -Wl,$(LIBUTILMAJOR) -o 
$(LIBUTILSO) $(UOBJECTS)
+-      $(CC) $(CFLAGS) $(CPPLAGS) -shared $(LDFLAGS) -Wl,-soname 
-Wl,$(LIBUTILSOMAJOR) -o $(LIBUTILSO) $(UOBJECTS)
 +      $(CC) $(CFLAGS) -shared $(LDFLAGS) -o $(LIBUTILSO) $(UOBJECTS)
  endif
  
  libutil.a: $(UOBJECTS) $(UHEADERS)
-@@ -145,11 +149,10 @@ install-lib:
+@@ -169,7 +169,7 @@ spellcheck:
+ ifeq ($(UNAME), Darwin)
+ install: all install-bin install-include install-lib
+ else
+-install: all install-bin install-include install-lib install-man install-doc
++install: all install-bin install-include install-lib install-man
+ endif
+ 
+ install-bin: $(INSTALLABLE)
+@@ -184,8 +184,6 @@ install-static-lib:
+ install-shared-lib:
        $(INSTALL) -d "$(DESTDIR)$(LIBDIR)"
-       $(INSTALL) -m 644 libgif.a "$(DESTDIR)$(LIBDIR)/libgif.a"
        $(INSTALL) -m 755 $(LIBGIFSO) "$(DESTDIR)$(LIBDIR)/$(LIBGIFSOVER)"
 -      ln -sf $(LIBGIFSOVER) "$(DESTDIR)$(LIBDIR)/$(LIBGIFSOMAJOR)"
 -      ln -sf $(LIBGIFSOMAJOR) "$(DESTDIR)$(LIBDIR)/$(LIBGIFSO)"
+ install-lib: install-static-lib install-shared-lib
  install-man:
--      $(INSTALL) -d "$(DESTDIR)$(MANDIR)/man1"
--      $(INSTALL) -m 644 $(MANUAL_PAGES) "$(DESTDIR)$(MANDIR)/man1"
-+      $(INSTALL) -d "$(DESTDIR)$(MANDIR)/man1" "$(DESTDIR)$(MANDIR)/man7"
-+      $(INSTALL) -m 644 $(MANUAL_PAGES_1:xml=1) "$(DESTDIR)$(MANDIR)/man1"
-+      $(INSTALL) -m 644 $(MANUAL_PAGES_7:xml=7) "$(DESTDIR)$(MANDIR)/man7"
- uninstall: uninstall-man uninstall-include uninstall-lib uninstall-bin
- uninstall-bin:
-       cd "$(DESTDIR)$(BINDIR)" && rm -f $(INSTALLABLE)
+       $(INSTALL) -d "$(DESTDIR)$(MANDIR)/man1" "$(DESTDIR)$(MANDIR)/man7"
Index: patches/patch-doc_Makefile
===================================================================
RCS file: /home/cvs/ports/graphics/giflib/patches/patch-doc_Makefile,v
diff -u -p -r1.1 patch-doc_Makefile
--- patches/patch-doc_Makefile  29 Feb 2024 15:25:40 -0000      1.1
+++ patches/patch-doc_Makefile  23 May 2026 11:07:13 -0000
@@ -1,14 +0,0 @@
-Disable calling a target which wants ImageMagick.
-
-Index: doc/Makefile
---- doc/Makefile.orig
-+++ doc/Makefile
-@@ -46,7 +46,7 @@ giflib-logo.gif: ../pic/gifgrid.gif
-       convert $^ -resize 50x50 $@
- 
- # Philosophical choice: the website gets the internal manual pages
--allhtml: $(XMLALL:.xml=.html) giflib-logo.gif
-+allhtml: $(XMLALL:.xml=.html)
- 
- manpages: $(XMLMAN1:.xml=.1) $(XMLMAN7:.xml=.7) $(XMLINTERNAL:.xml=.1)
- 
Index: patches/patch-gif2rgb_c
===================================================================
RCS file: /home/cvs/ports/graphics/giflib/patches/patch-gif2rgb_c,v
diff -u -p -r1.1 patch-gif2rgb_c
--- patches/patch-gif2rgb_c     22 Apr 2025 15:55:32 -0000      1.1
+++ patches/patch-gif2rgb_c     23 May 2026 11:07:27 -0000
@@ -1,18 +0,0 @@
-Fix CVE-2025-31344
-https://www.openwall.com/lists/oss-security/2025/04/07/3
-
-Index: gif2rgb.c
---- gif2rgb.c.orig
-+++ gif2rgb.c
-@@ -329,6 +329,11 @@ static void DumpScreen2RGB(char *FileName, int OneFile
-                       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;
Index: patches/patch-tests_makefile
===================================================================
RCS file: /home/cvs/ports/graphics/giflib/patches/patch-tests_makefile,v
diff -u -p -r1.5 patch-tests_makefile
--- patches/patch-tests_makefile        2 Jul 2022 14:13:43 -0000       1.5
+++ patches/patch-tests_makefile        23 May 2026 11:04:19 -0000
@@ -1,39 +1,30 @@
-#1, gmake-ism
-
-#2, unsure if this is a test bug or a command-line parser bug, but the -p
-value isn't read in the original order; same on Linux
-
-#3, "head --bytes=-20" means "display most of the file, but trim last 20 bytes"
-which isn't easily replicable with base tools, so just use ghead from coreutils
-
 Index: tests/makefile
 --- tests/makefile.orig
 +++ tests/makefile
-@@ -27,12 +27,12 @@ rebuild: render-rebuild \
- UTILS = ..
- PICS = ../pic
+@@ -39,12 +39,12 @@ GIF2RGB = ../gif2rgb
+ $(GIF2RGB):
+       @$(MAKE) -C .. gif2rgb
  
 -GIFS := $(shell ls ../pic/*.gif)
 +GIFS := `ls ../pic/*.gif`
  
  # Test decompression and rendering by unpacking images,
  # converting them to RGB, and comparing that result to a check file.
- render-regress:
+ render-regress: $(GIF2RGB)
 -      @for test in $(GIFS); \
 +      for test in $(GIFS); \
        do \
            stem=`basename $${test} | sed -e "s/.gif$$//"`; \
-           if echo "Testing RGB rendering of $${test}" >&2; \
-@@ -104,10 +104,10 @@ giffilter-regress:
+           $(UTILS)/gif2rgb -1 <$${test} | ./cmpdiffer "gif2rgb: test of 
$${test}" $${stem}.rgb; \
+@@ -106,9 +106,9 @@ giffilter-regress: $(GIF2RGB)
  
  giffix-rebuild:
        @echo "Rebuilding giffix test."
 -      @head --bytes=-20 <$(PICS)/treescap.gif | $(UTILS)/giffix 2>/dev/null | 
$(UTILS)/gifbuild -d >giffixed.ico
 +      @ghead --bytes=-20 <$(PICS)/treescap.gif | $(UTILS)/giffix 2>/dev/null 
| $(UTILS)/gifbuild -d >giffixed.ico
  giffix-regress:
-       @echo "giffix: Testing giffix behavior"
--      @head --bytes=-20 <$(PICS)/treescap.gif | $(UTILS)/giffix 2>/dev/null | 
$(UTILS)/gifbuild -d | diff -u giffixed.ico -
+-      @head --bytes=-20 <$(PICS)/treescap.gif | $(UTILS)/giffix 2>/dev/null | 
$(UTILS)/gifbuild -d | ./tapdiffer "giffix: Testing giffix behavior" 
giffixed.ico
 +      @ghead --bytes=-20 <$(PICS)/treescap.gif | $(UTILS)/giffix 2>/dev/null 
| $(UTILS)/gifbuild -d | diff -u giffixed.ico -
  
  gifinto-regress:
-       @echo "gifinto: Checking behavior on short files."
+       @rm -f [email protected]
Index: pkg/PLIST
===================================================================
RCS file: /home/cvs/ports/graphics/giflib/pkg/PLIST,v
diff -u -p -r1.13 PLIST
--- pkg/PLIST   29 Feb 2024 15:25:40 -0000      1.13
+++ pkg/PLIST   23 May 2026 11:04:19 -0000
@@ -1,6 +1,5 @@
 @conflict libungif-*
 @pkgpath graphics/libungif
-@bin bin/gif2rgb
 @bin bin/gifbuild
 @bin bin/gifclrmp
 @bin bin/giffix
@@ -9,7 +8,6 @@
 include/gif_lib.h
 @static-lib lib/libgif.a
 @lib lib/libgif.so.${LIBgif_VERSION}
-@man man/man1/gif2rgb.1
 @man man/man1/gifbuild.1
 @man man/man1/gifclrmp.1
 @man man/man1/giffix.1


-- 
jca

Reply via email to