git: e129c081e392 - main - graphics/gdk-pixbuf-extra: add default-disabled loaders

From: Charlie Li <vishwin_at_FreeBSD.org>
Date: Mon, 17 Mar 2025 04:05:04 UTC
The branch main has been updated by vishwin:

URL: https://cgit.FreeBSD.org/ports/commit/?id=e129c081e39271edac0d7b8aa174930f4317a796

commit e129c081e39271edac0d7b8aa174930f4317a796
Author:     Charlie Li <vishwin@FreeBSD.org>
AuthorDate: 2025-03-11 21:38:21 +0000
Commit:     Charlie Li <vishwin@FreeBSD.org>
CommitDate: 2025-03-17 04:04:29 +0000

    graphics/gdk-pixbuf-extra: add default-disabled loaders
    
    With the new port, remove OTHERS from graphics/gdk-pixbuf2, and add
    corresponding helper to USES=gnome. Ports using the affected loaders
    should declare USE_GNOME=gdkpixbufextra.
    
    PR: 285185
---
 Mk/Uses/gnome.mk                    |  6 +++++-
 UPDATING                            | 12 ++++++++++++
 graphics/Makefile                   |  1 +
 graphics/gdk-pixbuf-extra/Makefile  | 22 ++++++++++++++++++++++
 graphics/gdk-pixbuf-extra/distinfo  |  3 +++
 graphics/gdk-pixbuf-extra/pkg-descr | 12 ++++++++++++
 graphics/gdk-pixbuf-extra/pkg-plist | 10 ++++++++++
 graphics/gdk-pixbuf2/Makefile       |  7 ++-----
 graphics/gdk-pixbuf2/pkg-message    | 12 ++++++++++++
 graphics/gdk-pixbuf2/pkg-plist      |  9 ---------
 10 files changed, 79 insertions(+), 15 deletions(-)

diff --git a/Mk/Uses/gnome.mk b/Mk/Uses/gnome.mk
index 5603966820ed..388a42bd25ca 100644
--- a/Mk/Uses/gnome.mk
+++ b/Mk/Uses/gnome.mk
@@ -63,7 +63,7 @@ _USE_GNOME_ALL= intlhack intltool introspection \
 
 # GNOME 2 components
 _USE_GNOME_ALL+= atk cairo \
-		gdkpixbuf gdkpixbuf2xlib gconf2 glib20 \
+		gdkpixbuf gdkpixbuf2xlib gdkpixbufextra gconf2 glib20 \
 		gtk-update-icon-cache gtk20 \
 		gtksharp20 gtksourceview2 gvfs libartlgpl2 \
 		libglade2 libgnomecanvas \
@@ -177,6 +177,10 @@ gdkpixbuf_USE_GNOME_IMPL=glib20
 gdkpixbuf2xlib_LIB_DEPENDS=	libgdk_pixbuf_xlib-2.0.so:graphics/gdk-pixbuf2-xlib
 gdkpixbuf2xlib_USE_GNOME_IMPL=	glib20 gdkpixbuf
 
+gdkpixbufextra_BUILD_DEPENDS=	gdk-pixbuf-extra>=0.1.0:graphics/gdk-pixbuf-extra
+gdkpixbufextra_RUN_DEPENDS=	gdk-pixbuf-extra>=0.1.0:graphics/gdk-pixbuf-extra
+gdkpixbufextra_USE_GNOME_IMPL=	glib20 gdkpixbuf
+
 gtk-update-icon-cache_RUN_DEPENDS=	gtk-update-icon-cache:graphics/gtk-update-icon-cache
 
 gtk20_LIB_DEPENDS=	libgtk-x11-2.0.so:x11-toolkits/gtk20
diff --git a/UPDATING b/UPDATING
index 39c123fb5fcf..f00071876566 100644
--- a/UPDATING
+++ b/UPDATING
@@ -5,6 +5,18 @@ they are unavoidable.
 You should get into the habit of checking this file for changes each time
 you update your ports collection, before attempting any port upgrades.
 
+20250316:
+  AFFECTS: users of graphics/gdk-pixbuf2
+  AUTHOR: vishwin@FreeBSD.org
+
+  Loaders for ANI, BMP, ICNS, ICO, PNM, QTIF, TGA, XBM and XPM have
+  been moved to a separate graphics/gdk-pixbuf-extra port. Install
+  the aforementioned port if artefacts in those formats no longer
+  load or otherwise cause errors, and report them so that
+  USE_GNOME=gdkpixbufextra can be declared. Most should only need
+  USE_GNOME=gdkpixbufextra:run, but for those also needing these
+  loaders for build, leave out the :run.
+
 20250315:
   AFFECTS: users of sysutils/snmp_exporter
   AUTHOR: lexi@hemlock.eden.le-fay.org
diff --git a/graphics/Makefile b/graphics/Makefile
index 9c86ada2e949..0edc4d9967d1 100644
--- a/graphics/Makefile
+++ b/graphics/Makefile
@@ -232,6 +232,7 @@
     SUBDIR += gdal
     SUBDIR += gdal-grass
     SUBDIR += gdchart
+    SUBDIR += gdk-pixbuf-extra
     SUBDIR += gdk-pixbuf2
     SUBDIR += gdk-pixbuf2-xlib
     SUBDIR += gdtclft
diff --git a/graphics/gdk-pixbuf-extra/Makefile b/graphics/gdk-pixbuf-extra/Makefile
new file mode 100644
index 000000000000..563fc10d36fd
--- /dev/null
+++ b/graphics/gdk-pixbuf-extra/Makefile
@@ -0,0 +1,22 @@
+PORTNAME=	gdk-pixbuf-extra
+DISTVERSION=	0.1.0
+CATEGORIES=	graphics
+DIST_SUBDIR=	gnome
+
+MAINTAINER=	desktop@FreeBSD.org
+COMMENT=	gdk-pixbuf extra loaders for niche and seldom-used image formats
+WWW=		https://gitlab.gnome.org/ebassi/gdk-pixbuf-extra
+
+LICENSE=	LGPL21+
+LICENSE_FILE=	${WRKSRC}/COPYING
+
+USES=		cpe gnome meson pkgconfig
+CPE_VENDOR=	gnome
+USE_GNOME=	gdkpixbuf glib20
+
+USE_GITLAB=	yes
+GL_SITE=	https://gitlab.gnome.org/
+GL_ACCOUNT=	ebassi
+GL_TAGNAME=	ef0277942b83c5c4c4c726bf0076d02e087a131c
+
+.include <bsd.port.mk>
diff --git a/graphics/gdk-pixbuf-extra/distinfo b/graphics/gdk-pixbuf-extra/distinfo
new file mode 100644
index 000000000000..cbd0d145ca83
--- /dev/null
+++ b/graphics/gdk-pixbuf-extra/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1741719269
+SHA256 (gnome/ebassi-gdk-pixbuf-extra-ef0277942b83c5c4c4c726bf0076d02e087a131c_GL0.tar.gz) = 228f81e3f27ee567c139cc1030bd4c322731c25d14de6306d0fc26dd32d06e09
+SIZE (gnome/ebassi-gdk-pixbuf-extra-ef0277942b83c5c4c4c726bf0076d02e087a131c_GL0.tar.gz) = 71146
diff --git a/graphics/gdk-pixbuf-extra/pkg-descr b/graphics/gdk-pixbuf-extra/pkg-descr
new file mode 100644
index 000000000000..5ba5815050eb
--- /dev/null
+++ b/graphics/gdk-pixbuf-extra/pkg-descr
@@ -0,0 +1,12 @@
+This project includes GdkPixbuf loaders for niche and seldom used image
+formats:
+
+- ANI
+- BMP
+- ICO
+- ICNS
+- PNM
+- QTIF
+- TGA
+- XBM
+- XPM
diff --git a/graphics/gdk-pixbuf-extra/pkg-plist b/graphics/gdk-pixbuf-extra/pkg-plist
new file mode 100644
index 000000000000..073a90411846
--- /dev/null
+++ b/graphics/gdk-pixbuf-extra/pkg-plist
@@ -0,0 +1,10 @@
+lib/gdk-pixbuf-2.0/%%GTK2_VERSION%%/loaders/libpixbufloader-ani.so
+lib/gdk-pixbuf-2.0/%%GTK2_VERSION%%/loaders/libpixbufloader-bmp.so
+lib/gdk-pixbuf-2.0/%%GTK2_VERSION%%/loaders/libpixbufloader-icns.so
+lib/gdk-pixbuf-2.0/%%GTK2_VERSION%%/loaders/libpixbufloader-ico.so
+lib/gdk-pixbuf-2.0/%%GTK2_VERSION%%/loaders/libpixbufloader-pnm.so
+lib/gdk-pixbuf-2.0/%%GTK2_VERSION%%/loaders/libpixbufloader-qtif.so
+lib/gdk-pixbuf-2.0/%%GTK2_VERSION%%/loaders/libpixbufloader-tga.so
+lib/gdk-pixbuf-2.0/%%GTK2_VERSION%%/loaders/libpixbufloader-xbm.so
+lib/gdk-pixbuf-2.0/%%GTK2_VERSION%%/loaders/libpixbufloader-xpm.so
+share/thumbnailers/gdk-pixbuf-extra.thumbnailer
diff --git a/graphics/gdk-pixbuf2/Makefile b/graphics/gdk-pixbuf2/Makefile
index 5e44921da7dc..e0f2ef659336 100644
--- a/graphics/gdk-pixbuf2/Makefile
+++ b/graphics/gdk-pixbuf2/Makefile
@@ -1,5 +1,6 @@
 PORTNAME=	gdk-pixbuf
 PORTVERSION=	2.42.12
+PORTREVISION=	1
 CATEGORIES=	graphics
 MASTER_SITES=	GNOME
 PKGNAMESUFFIX=	2
@@ -28,11 +29,9 @@ LIBVERSION=	0.4200.12
 PLIST_SUB+=	LIBVERSION=${LIBVERSION}
 
 OPTIONS_SUB=	yes
-OPTIONS_DEFINE=	DOCS GIF JPEG MANPAGES OTHERS PNG TIFF
+OPTIONS_DEFINE=	DOCS GIF JPEG MANPAGES PNG TIFF
 OPTIONS_DEFAULT=GIF JPEG MANPAGES PNG TIFF
 
-OTHERS_DESC=	Enable weakly-maintained loaders
-
 DOCS_BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}gi-docgen>0:textproc/py-gi-docgen@${PY_FLAVOR}
 DOCS_MESON_TRUE=	gtk_doc
 
@@ -46,8 +45,6 @@ MANPAGES_BUILD_DEPENDS=	docbook-xsl>0:textproc/docbook-xsl \
 MANPAGES_USE=		gnome=libxslt:build
 MANPAGES_MESON_TRUE=	man
 
-OTHERS_MESON_ENABLED=	others
-
 PNG_LIB_DEPENDS=	libpng.so:graphics/png
 PNG_MESON_ENABLED=	png
 
diff --git a/graphics/gdk-pixbuf2/pkg-message b/graphics/gdk-pixbuf2/pkg-message
new file mode 100644
index 000000000000..0151081d6c66
--- /dev/null
+++ b/graphics/gdk-pixbuf2/pkg-message
@@ -0,0 +1,12 @@
+[
+{
+  type: upgrade
+  minimum_version: "2.42.11"
+  message: <<EOM
+Loaders for ANI, BMP, ICNS, ICO, PNM, QTIF, TGA, XBM and XPM have
+been moved to a separate graphics/gdk-pixbuf-extra port. Install
+the aforementioned port if artefacts in those formats no longer
+load or otherwise cause errors.
+EOM
+}
+]
diff --git a/graphics/gdk-pixbuf2/pkg-plist b/graphics/gdk-pixbuf2/pkg-plist
index 3cceaa2c7c5b..a6d9d41d121f 100644
--- a/graphics/gdk-pixbuf2/pkg-plist
+++ b/graphics/gdk-pixbuf2/pkg-plist
@@ -15,19 +15,10 @@ include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-simple-anim.h
 include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-transform.h
 include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf.h
 include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixdata.h
-%%OTHERS%%lib/gdk-pixbuf-2.0/%%GTK2_VERSION%%/loaders/libpixbufloader-ani.so
-%%OTHERS%%lib/gdk-pixbuf-2.0/%%GTK2_VERSION%%/loaders/libpixbufloader-bmp.so
 %%GIF%%lib/gdk-pixbuf-2.0/%%GTK2_VERSION%%/loaders/libpixbufloader-gif.so
-%%OTHERS%%lib/gdk-pixbuf-2.0/%%GTK2_VERSION%%/loaders/libpixbufloader-icns.so
-%%OTHERS%%lib/gdk-pixbuf-2.0/%%GTK2_VERSION%%/loaders/libpixbufloader-ico.so
 %%JPEG%%lib/gdk-pixbuf-2.0/%%GTK2_VERSION%%/loaders/libpixbufloader-jpeg.so
 %%PNG%%lib/gdk-pixbuf-2.0/%%GTK2_VERSION%%/loaders/libpixbufloader-png.so
-%%OTHERS%%lib/gdk-pixbuf-2.0/%%GTK2_VERSION%%/loaders/libpixbufloader-pnm.so
-%%OTHERS%%lib/gdk-pixbuf-2.0/%%GTK2_VERSION%%/loaders/libpixbufloader-qtif.so
-%%OTHERS%%lib/gdk-pixbuf-2.0/%%GTK2_VERSION%%/loaders/libpixbufloader-tga.so
 %%TIFF%%lib/gdk-pixbuf-2.0/%%GTK2_VERSION%%/loaders/libpixbufloader-tiff.so
-%%OTHERS%%lib/gdk-pixbuf-2.0/%%GTK2_VERSION%%/loaders/libpixbufloader-xbm.so
-%%OTHERS%%lib/gdk-pixbuf-2.0/%%GTK2_VERSION%%/loaders/libpixbufloader-xpm.so
 lib/girepository-1.0/GdkPixbuf-2.0.typelib
 lib/girepository-1.0/GdkPixdata-2.0.typelib
 lib/libgdk_pixbuf-2.0.so