git: 77d937d3ef44 - main - graphics/giflib: Update to 6.1.3
Date: Fri, 24 Jul 2026 18:50:10 UTC
The branch main has been updated by arrowd:
URL: https://cgit.FreeBSD.org/ports/commit/?id=77d937d3ef44e8bf02c334761025f334c9a85cee
commit 77d937d3ef44e8bf02c334761025f334c9a85cee
Author: Gleb Popov <arrowd@FreeBSD.org>
AuthorDate: 2026-07-22 14:26:51 +0000
Commit: Gleb Popov <arrowd@FreeBSD.org>
CommitDate: 2026-07-24 18:49:38 +0000
graphics/giflib: Update to 6.1.3
PR: 296876
---
graphics/giflib/Makefile | 18 +--
graphics/giflib/distinfo | 6 +-
graphics/giflib/files/patch-CVE-2026-26740 | 31 ++++
graphics/giflib/files/patch-Makefile | 33 -----
graphics/giflib/files/patch-issue203 | 21 +++
graphics/giflib/files/patch-overflows | 225 +++++++++++++++++++++++++++++
graphics/giflib/files/patch-tests_makefile | 11 +-
graphics/giflib/pkg-plist | 21 ++-
8 files changed, 313 insertions(+), 53 deletions(-)
diff --git a/graphics/giflib/Makefile b/graphics/giflib/Makefile
index 0e46ed90404c..586413ebb248 100644
--- a/graphics/giflib/Makefile
+++ b/graphics/giflib/Makefile
@@ -1,7 +1,7 @@
PORTNAME= giflib
-PORTVERSION= 5.2.2
+PORTVERSION= 6.1.3
CATEGORIES= graphics
-MASTER_SITES= SF/${PORTNAME}
+MASTER_SITES= SF/${PORTNAME}/giflib-6.x
MAINTAINER= desktop@FreeBSD.org
COMMENT= Tools and library routines for working with GIF images
@@ -28,17 +28,17 @@ CONFLICTS_INSTALL= giftool
OPTIONS_DEFINE= DOCS
-do-install-DOCS-on:
- ${MKDIR} ${STAGEDIR}${DOCSDIR}
- cd ${WRKSRC}/doc && ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR} \
- "! ( -name Makefile -o -name *\.[17] -o -name *\.xml )"
- ${MV} ${STAGEDIR}${DOCSDIR}/index.html.in ${STAGEDIR}${DOCSDIR}/index.html
-
-pre-build:
+post-extract:
${CP} ${FILESDIR}/giflib-logo.gif ${WRKSRC}/doc
post-install:
${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/*
${STRIP_CMD} --strip-unneeded ${STAGEDIR}${PREFIX}/lib/libgif.so.7.2.0
+post-install-DOCS-on:
+ ${MKDIR} ${STAGEDIR}${DOCSDIR}
+ cd ${WRKSRC}/doc && ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR} \
+ "! ( -name Makefile -o -name *\.[17] -o -name *\.xml )"
+ ${MV} ${STAGEDIR}${DOCSDIR}/index.html.in ${STAGEDIR}${DOCSDIR}/index.html
+
.include <bsd.port.mk>
diff --git a/graphics/giflib/distinfo b/graphics/giflib/distinfo
index 6cefa7643dcb..833ff3d86532 100644
--- a/graphics/giflib/distinfo
+++ b/graphics/giflib/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1714225271
-SHA256 (giflib-5.2.2.tar.gz) = be7ffbd057cadebe2aa144542fd90c6838c6a083b5e8a9048b8ee3b66b29d5fb
-SIZE (giflib-5.2.2.tar.gz) = 447175
+TIMESTAMP = 1784658362
+SHA256 (giflib-6.1.3.tar.gz) = b65b66b99f0424b93525f987386f22fc5efb9da2bfc92ad4a532249aaffbab0e
+SIZE (giflib-6.1.3.tar.gz) = 470579
diff --git a/graphics/giflib/files/patch-CVE-2026-26740 b/graphics/giflib/files/patch-CVE-2026-26740
new file mode 100644
index 000000000000..08a6d9e241f8
--- /dev/null
+++ b/graphics/giflib/files/patch-CVE-2026-26740
@@ -0,0 +1,31 @@
+commit 061605081115bbfd7019bafc119a13b6f17fcf25
+Author: Anthony Hurtado <amhurtado@protonmail.com>
+Date: Mon Jun 1 15:40:48 2026 -0500
+
+ Fix CVE-2026-26740: heap OOB write in EGifGCBToSavedExtension
+
+ EGifGCBToSavedExtension calls EGifGCBToExtension which unconditionally
+ writes 4 bytes into ep->Bytes without checking ep->ByteCount. If the
+ extension block was allocated with fewer than 4 bytes, this results in
+ a heap buffer overflow.
+
+ The read-side counterpart DGifExtensionToGCB already validates that
+ GifExtensionLength == 4 before reading. Add the symmetric check on
+ the write side: return GIF_ERROR when ep->ByteCount < 4.
+
+ Signed-off-by: Anthony Hurtado <amhurtado@pm.me>
+
+diff --git egif_lib.c egif_lib.c
+index f1141a2..d74e8df 100644
+--- egif_lib.c
++++ egif_lib.c
+@@ -690,6 +690,9 @@ int EGifGCBToSavedExtension(const GraphicsControlBlock *GCB,
+ ExtensionBlock *ep =
+ &GifFile->SavedImages[ImageIndex].ExtensionBlocks[i];
+ if (ep->Function == GRAPHICS_EXT_FUNC_CODE) {
++ if (ep->ByteCount < 4) {
++ return GIF_ERROR;
++ }
+ EGifGCBToExtension(GCB, ep->Bytes);
+ return GIF_OK;
+ }
diff --git a/graphics/giflib/files/patch-Makefile b/graphics/giflib/files/patch-Makefile
deleted file mode 100644
index 4fc7a7f5c3df..000000000000
--- a/graphics/giflib/files/patch-Makefile
+++ /dev/null
@@ -1,33 +0,0 @@
---- Makefile.orig 2024-02-19 01:01:50 UTC
-+++ Makefile
-@@ -64,13 +64,14 @@ MANUAL_PAGES = \
- LDLIBS=libgif.a -lm
-
- MANUAL_PAGES = \
-- doc/gif2rgb.xml \
-- doc/gifbuild.xml \
-- doc/gifclrmp.xml \
-- doc/giffix.xml \
-- doc/giflib.xml \
-- doc/giftext.xml \
-- doc/giftool.xml
-+ doc/gif2rgb.1 \
-+ doc/gifbuild.1 \
-+ doc/gifclrmp.1 \
-+ doc/giffix.1 \
-+ doc/giftext.1 \
-+ doc/giftool.1
-+MAN7_PAGES= \
-+ doc/giflib.7
-
- SOEXTENSION = so
- LIBGIFSO = libgif.$(SOEXTENSION)
-@@ -150,6 +151,8 @@ install-man:
- install-man:
- $(INSTALL) -d "$(DESTDIR)$(MANDIR)/man1"
- $(INSTALL) -m 644 $(MANUAL_PAGES) "$(DESTDIR)$(MANDIR)/man1"
-+ $(INSTALL) -d "$(DESTDIR)$(MANDIR)/man7"
-+ $(INSTALL) -m 644 $(MAN7_PAGES) "$(DESTDIR)$(MANDIR)/man7"
- uninstall: uninstall-man uninstall-include uninstall-lib uninstall-bin
- uninstall-bin:
- cd "$(DESTDIR)$(BINDIR)" && rm -f $(INSTALLABLE)
diff --git a/graphics/giflib/files/patch-issue203 b/graphics/giflib/files/patch-issue203
new file mode 100644
index 000000000000..bbd8f72eabd1
--- /dev/null
+++ b/graphics/giflib/files/patch-issue203
@@ -0,0 +1,21 @@
+commit 8abe475b7dde75961ea46b9cb69aa7d658d002f3
+Author: Eric S. Raymond <esr@thyrsus.com>
+Date: Wed Jun 10 17:00:29 2026 -0400
+
+ Resolve ticket #203: GifUnionColorMap NULL Pointer Dereference
+
+diff --git gifalloc.c gifalloc.c
+index 886907d..e36684b 100644
+--- gifalloc.c
++++ gifalloc.c
+@@ -114,6 +114,10 @@ ColorMapObject *GifUnionColorMap(const ColorMapObject *ColorIn1,
+ int i, j, CrntSlot, RoundUpTo, NewGifBitSize;
+ ColorMapObject *ColorUnion;
+
++ if (ColorIn1 == NULL || ColorIn2 == NULL) {
++ return (NULL);
++ }
++
+ /*
+ * We don't worry about duplicates within either color map; if
+ * the caller wants to resolve those, he can perform unions
diff --git a/graphics/giflib/files/patch-overflows b/graphics/giflib/files/patch-overflows
new file mode 100644
index 000000000000..7d7b935fe99b
--- /dev/null
+++ b/graphics/giflib/files/patch-overflows
@@ -0,0 +1,225 @@
+commit 4a731eacbb1861e866e84024aba201f1cbf0f22f
+Author: Anthony Hurtado <amhurtado@protonmail.com>
+Date: Mon Jun 1 15:41:11 2026 -0500
+
+ Fix integer overflow and type safety issues across giflib
+
+ Multiple integer overflow vulnerabilities exist in giflib's pixel count
+ and dimension arithmetic. On 32-bit platforms where long and int are
+ 32 bits, these overflow to negative values or wrap around, causing
+ heap buffer overflows, incorrect loop bounds, and undefined behavior.
+
+ dgif_lib.c:
+ - PixelCount: cast to (unsigned long) instead of signed (long) to
+ prevent signed overflow UB on 32-bit platforms.
+ - LZW CodeSize: reject BitsPerPixel < 2 (CodeSize 0 and 1 create
+ degenerate LZW states where ClearCode/EOFCode are unreachable).
+
+ egif_lib.c:
+ - PixelCount: same (unsigned long) fix as dgif_lib.c.
+ - EGifSpew: cast j to (size_t) in pointer arithmetic j * SavedWidth
+ to prevent int*int overflow in raster offset computation.
+
+ gifalloc.c:
+ - GifApplyTranslation: use size_t for RasterSize and loop counter
+ instead of int to prevent Height*Width overflow.
+ - GifMakeSavedImage: cast Height to (size_t) in reallocarray nmemb
+ and memcpy size to prevent int*int overflow before reaching
+ reallocarray's internal overflow check.
+
+ quantize.c:
+ - Compute PixelCount as (size_t)Width * Height with division-based
+ overflow guard. Use size_t loop counter for pixel iteration.
+ - Replace signed (long) cast of pixel count with (unsigned long).
+
+ All 51 regression tests pass. Compiles with zero warnings under
+ -Wall -O2.
+
+ Signed-off-by: Anthony Hurtado <amhurtado@pm.me>
+
+diff --git dgif_lib.c dgif_lib.c
+index cec94c1..a022bb6 100644
+--- dgif_lib.c
++++ dgif_lib.c
+@@ -416,7 +416,8 @@ int DGifGetImageHeader(GifFileType *GifFile) {
+ }
+
+ Private->PixelCount =
+- (long)GifFile->Image.Width * (long)GifFile->Image.Height;
++ (unsigned long)GifFile->Image.Width *
++ (unsigned long)GifFile->Image.Height;
+
+ /* Reset decompress algorithm parameters. */
+ return DGifSetupDecompress(GifFile);
+@@ -824,7 +825,7 @@ static int DGifSetupDecompress(GifFileType *GifFile) {
+ BitsPerPixel = CodeSize;
+
+ /* this can only happen on a severely malformed GIF */
+- if (BitsPerPixel > 8) {
++ if (BitsPerPixel < 2 || BitsPerPixel > 8) {
+ GifFile->Error =
+ D_GIF_ERR_READ_FAILED; /* somewhat bogus error code */
+ return GIF_ERROR; /* Failed to read Code size. */
+diff --git egif_lib.c egif_lib.c
+index d74e8df..6f7c9b6 100644
+--- egif_lib.c
++++ egif_lib.c
+@@ -448,7 +448,8 @@ int EGifPutImageDesc(GifFileType *GifFile, const int Left, const int Top,
+
+ /* Mark this file as has screen descriptor: */
+ Private->FileState |= FILE_STATE_IMAGE;
+- Private->PixelCount = (long)Width * (long)Height;
++ Private->PixelCount =
++ (unsigned long)Width * (unsigned long)Height;
+
+ /* Reset compress algorithm parameters. */
+ (void)EGifSetupCompress(GifFile);
+@@ -1154,7 +1155,7 @@ int EGifSpew(GifFileType *GifFileOut, int *ErrorCode) {
+ j += InterlacedJumps[k]) {
+ if (EGifPutLine(
+ GifFileOut,
+- sp->RasterBits + j * SavedWidth,
++ sp->RasterBits + (size_t)j * SavedWidth,
+ SavedWidth) == GIF_ERROR) {
+ status = GIF_ERROR;
+ err = GifFileOut->Error;
+@@ -1165,7 +1166,7 @@ int EGifSpew(GifFileType *GifFileOut, int *ErrorCode) {
+ } else {
+ for (j = 0; j < SavedHeight; j++) {
+ if (EGifPutLine(GifFileOut,
+- sp->RasterBits + j * SavedWidth,
++ sp->RasterBits + (size_t)j * SavedWidth,
+ SavedWidth) == GIF_ERROR) {
+ status = GIF_ERROR;
+ err = GifFileOut->Error;
+diff --git gifalloc.c gifalloc.c
+index 3d897ab..886907d 100644
+--- gifalloc.c
++++ gifalloc.c
+@@ -210,9 +210,9 @@ ColorMapObject *GifUnionColorMap(const ColorMapObject *ColorIn1,
+ Apply a given color translation to the raster bits of an image
+ *******************************************************************************/
+ void GifApplyTranslation(SavedImage *Image, const GifPixelType Translation[]) {
+- register int i;
+- register int RasterSize =
+- Image->ImageDesc.Height * Image->ImageDesc.Width;
++ size_t i;
++ size_t RasterSize =
++ (size_t)Image->ImageDesc.Height * Image->ImageDesc.Width;
+
+ for (i = 0; i < RasterSize; i++) {
+ Image->RasterBits[i] = Translation[Image->RasterBits[i]];
+@@ -371,17 +371,17 @@ SavedImage *GifMakeSavedImage(GifFileType *GifFile,
+ /* next, the raster */
+ sp->RasterBits = (unsigned char *)reallocarray(
+ NULL,
+- (CopyFrom->ImageDesc.Height *
+- CopyFrom->ImageDesc.Width),
++ (size_t)CopyFrom->ImageDesc.Height *
++ CopyFrom->ImageDesc.Width,
+ sizeof(GifPixelType));
+ if (sp->RasterBits == NULL) {
+ FreeLastSavedImage(GifFile);
+ return (SavedImage *)(NULL);
+ }
+ memcpy(sp->RasterBits, CopyFrom->RasterBits,
+- sizeof(GifPixelType) *
+- CopyFrom->ImageDesc.Height *
+- CopyFrom->ImageDesc.Width);
++ (size_t)CopyFrom->ImageDesc.Height *
++ CopyFrom->ImageDesc.Width *
++ sizeof(GifPixelType));
+
+ /* finally, the extension blocks */
+ if (CopyFrom->ExtensionBlocks != NULL) {
+diff --git quantize.c quantize.c
+index 160a29b..4ea44ce 100644
+--- quantize.c
++++ quantize.c
+@@ -71,6 +71,7 @@ int GifQuantizeBuffer(unsigned int Width, unsigned int Height,
+ long Red, Green, Blue;
+ NewColorMapType NewColorSubdiv[256];
+ QuantizedColorType *ColorArrayEntries, *QuantizedColor;
++ size_t k, PixelCount;
+
+ ColorArrayEntries = (QuantizedColorType *)malloc(
+ sizeof(QuantizedColorType) * COLOR_ARRAY_SIZE);
+@@ -78,6 +79,12 @@ int GifQuantizeBuffer(unsigned int Width, unsigned int Height,
+ return GIF_ERROR;
+ }
+
++ PixelCount = (size_t)Width * Height;
++ if (Width != 0 && PixelCount / Width != Height) {
++ free((char *)ColorArrayEntries);
++ return GIF_ERROR;
++ }
++
+ for (i = 0; i < COLOR_ARRAY_SIZE; i++) {
+ ColorArrayEntries[i].RGB[0] = i >> (2 * BITS_PER_PRIM_COLOR);
+ ColorArrayEntries[i].RGB[1] =
+@@ -87,12 +94,12 @@ int GifQuantizeBuffer(unsigned int Width, unsigned int Height,
+ }
+
+ /* Sample the colors and their distribution: */
+- for (i = 0; i < (int)(Width * Height); i++) {
+- Index = ((RedInput[i] >> (8 - BITS_PER_PRIM_COLOR))
++ for (k = 0; k < PixelCount; k++) {
++ Index = ((RedInput[k] >> (8 - BITS_PER_PRIM_COLOR))
+ << (2 * BITS_PER_PRIM_COLOR)) +
+- ((GreenInput[i] >> (8 - BITS_PER_PRIM_COLOR))
++ ((GreenInput[k] >> (8 - BITS_PER_PRIM_COLOR))
+ << BITS_PER_PRIM_COLOR) +
+- (BlueInput[i] >> (8 - BITS_PER_PRIM_COLOR));
++ (BlueInput[k] >> (8 - BITS_PER_PRIM_COLOR));
+ ColorArrayEntries[Index].Count++;
+ }
+
+@@ -127,7 +134,7 @@ int GifQuantizeBuffer(unsigned int Width, unsigned int Height,
+
+ NewColorSubdiv[0].NumEntries =
+ NumOfEntries; /* Different sampled colors */
+- NewColorSubdiv[0].Count = ((long)Width) * Height; /* Pixels */
++ NewColorSubdiv[0].Count = (unsigned long)PixelCount; /* Pixels */
+ NewColorMapSize = 1;
+ if (SubdivColorMap(NewColorSubdiv, *ColorMapSize, &NewColorMapSize) !=
+ GIF_OK) {
+@@ -167,28 +174,28 @@ int GifQuantizeBuffer(unsigned int Width, unsigned int Height,
+ /* Finally scan the input buffer again and put the mapped index in the
+ * output buffer. */
+ MaxRGBError[0] = MaxRGBError[1] = MaxRGBError[2] = 0;
+- for (i = 0; i < (int)(Width * Height); i++) {
+- Index = ((RedInput[i] >> (8 - BITS_PER_PRIM_COLOR))
++ for (k = 0; k < PixelCount; k++) {
++ Index = ((RedInput[k] >> (8 - BITS_PER_PRIM_COLOR))
+ << (2 * BITS_PER_PRIM_COLOR)) +
+- ((GreenInput[i] >> (8 - BITS_PER_PRIM_COLOR))
++ ((GreenInput[k] >> (8 - BITS_PER_PRIM_COLOR))
+ << BITS_PER_PRIM_COLOR) +
+- (BlueInput[i] >> (8 - BITS_PER_PRIM_COLOR));
++ (BlueInput[k] >> (8 - BITS_PER_PRIM_COLOR));
+ Index = ColorArrayEntries[Index].NewColorIndex;
+- OutputBuffer[i] = Index;
++ OutputBuffer[k] = Index;
+ if (MaxRGBError[0] <
+- ABS(OutputColorMap[Index].Red - RedInput[i])) {
++ ABS(OutputColorMap[Index].Red - RedInput[k])) {
+ MaxRGBError[0] =
+- ABS(OutputColorMap[Index].Red - RedInput[i]);
++ ABS(OutputColorMap[Index].Red - RedInput[k]);
+ }
+ if (MaxRGBError[1] <
+- ABS(OutputColorMap[Index].Green - GreenInput[i])) {
++ ABS(OutputColorMap[Index].Green - GreenInput[k])) {
+ MaxRGBError[1] =
+- ABS(OutputColorMap[Index].Green - GreenInput[i]);
++ ABS(OutputColorMap[Index].Green - GreenInput[k]);
+ }
+ if (MaxRGBError[2] <
+- ABS(OutputColorMap[Index].Blue - BlueInput[i])) {
++ ABS(OutputColorMap[Index].Blue - BlueInput[k])) {
+ MaxRGBError[2] =
+- ABS(OutputColorMap[Index].Blue - BlueInput[i]);
++ ABS(OutputColorMap[Index].Blue - BlueInput[k]);
+ }
+ }
+
diff --git a/graphics/giflib/files/patch-tests_makefile b/graphics/giflib/files/patch-tests_makefile
index dbabec4d495a..77a41e082f31 100644
--- a/graphics/giflib/files/patch-tests_makefile
+++ b/graphics/giflib/files/patch-tests_makefile
@@ -1,15 +1,14 @@
---- tests/makefile.orig 2019-03-28 17:05:25 UTC
+--- tests/makefile.orig 2026-04-12 17:17:27 UTC
+++ tests/makefile
-@@ -104,10 +106,10 @@ giffilter-regress:
+@@ -106,9 +106,9 @@ giffix-rebuild:
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 -
-+ @ghead --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 | ./tapdiffer "giffix: Testing giffix behavior" giffixed.ico
gifinto-regress:
- @echo "gifinto: Checking behavior on short files."
+ @rm -f $@.giflib.tmp
diff --git a/graphics/giflib/pkg-plist b/graphics/giflib/pkg-plist
index d36ad8b139db..a8b86b6d861c 100644
--- a/graphics/giflib/pkg-plist
+++ b/graphics/giflib/pkg-plist
@@ -1,4 +1,3 @@
-bin/gif2rgb
bin/gifbuild
bin/gifclrmp
bin/giffix
@@ -37,6 +36,25 @@ lib/libgif.so.7.2.0
%%PORTDOCS%%%%DOCSDIR%%/giftext.html
%%PORTDOCS%%%%DOCSDIR%%/giftool.html
%%PORTDOCS%%%%DOCSDIR%%/gifwedge.html
+%%PORTDOCS%%%%DOCSDIR%%/html/gif2rgb.html
+%%PORTDOCS%%%%DOCSDIR%%/html/gif_lib.html
+%%PORTDOCS%%%%DOCSDIR%%/html/gifbg.html
+%%PORTDOCS%%%%DOCSDIR%%/html/gifbuild.html
+%%PORTDOCS%%%%DOCSDIR%%/html/gifclrmp.html
+%%PORTDOCS%%%%DOCSDIR%%/html/gifcolor.html
+%%PORTDOCS%%%%DOCSDIR%%/html/gifecho.html
+%%PORTDOCS%%%%DOCSDIR%%/html/giffilter.html
+%%PORTDOCS%%%%DOCSDIR%%/html/giffix.html
+%%PORTDOCS%%%%DOCSDIR%%/html/gifhisto.html
+%%PORTDOCS%%%%DOCSDIR%%/html/gifinto.html
+%%PORTDOCS%%%%DOCSDIR%%/html/giflib-logo.gif
+%%PORTDOCS%%%%DOCSDIR%%/html/giflib.html
+%%PORTDOCS%%%%DOCSDIR%%/html/gifsponge.html
+%%PORTDOCS%%%%DOCSDIR%%/html/giftext.html
+%%PORTDOCS%%%%DOCSDIR%%/html/giftool.html
+%%PORTDOCS%%%%DOCSDIR%%/html/gifwedge.html
+%%PORTDOCS%%%%DOCSDIR%%/html/index.html
+%%PORTDOCS%%%%DOCSDIR%%/html/intro.html
%%PORTDOCS%%%%DOCSDIR%%/index.html
%%PORTDOCS%%%%DOCSDIR%%/intro.html
%%PORTDOCS%%%%DOCSDIR%%/whatsinagif/animation_and_transparency.html
@@ -67,7 +85,6 @@ lib/libgif.so.7.2.0
%%PORTDOCS%%%%DOCSDIR%%/whatsinagif/sample_2_green_yellow_diff.gif
%%PORTDOCS%%%%DOCSDIR%%/whatsinagif/sample_2_yellow_large.gif
%%PORTDOCS%%%%DOCSDIR%%/whatsinagif/trailer_block.gif
-share/man/man1/gif2rgb.1.gz
share/man/man1/gifbuild.1.gz
share/man/man1/gifclrmp.1.gz
share/man/man1/giffix.1.gz