summaryrefslogtreecommitdiff
path: root/graphics
diff options
context:
space:
mode:
Diffstat (limited to 'graphics')
-rw-r--r--graphics/libavif/Makefile8
-rw-r--r--graphics/p5-Image-PNG-QRCode/Makefile5
-rw-r--r--graphics/p5-Image-PNG-QRCode/distinfo6
-rw-r--r--graphics/py-img2pdf/Makefile11
-rw-r--r--graphics/py-img2pdf/distinfo6
-rw-r--r--graphics/py-pillow/Makefile76
-rw-r--r--graphics/py-pillow/distinfo6
-rw-r--r--graphics/py-pillow/files/patch-pyproject.toml16
-rw-r--r--graphics/py-pyvips/Makefile11
-rw-r--r--graphics/py-pyvips/distinfo6
-rw-r--r--graphics/py-willow/Makefile3
-rw-r--r--graphics/py-willow/distinfo6
-rw-r--r--graphics/py-willow/files/patch-pyproject.toml17
-rw-r--r--graphics/qgis-ltr/Makefile2
-rw-r--r--graphics/qgis-ltr/distinfo6
-rw-r--r--graphics/qgis-ltr/files/patch-src_server_qgsfcgiserverresponse.cpp24
-rw-r--r--graphics/rubygem-invisible_captcha/Makefile3
17 files changed, 107 insertions, 105 deletions
diff --git a/graphics/libavif/Makefile b/graphics/libavif/Makefile
index bb6c5932e72b..98eb65d96530 100644
--- a/graphics/libavif/Makefile
+++ b/graphics/libavif/Makefile
@@ -18,6 +18,8 @@ TEST_DEPENDS= bash:shells/bash \
USES= cmake:testing compiler:c11 cpe jpeg pkgconfig
CMAKE_ARGS= -DAVIF_GTEST:STRING=OFF \
+ -DAVIF_FUZZTEST:STRING=OFF \
+ -DAVIF_JPEG:STRING=SYSTEM \
-DAVIF_LIBYUV:STRING=SYSTEM \
-DAVIF_ZLIBPNG:STRING=SYSTEM
CMAKE_OFF= AVIF_BUILD_EXAMPLES
@@ -33,7 +35,7 @@ GH_TUPLE= kmurray:libargparse:ee74d1b:kmurray_libargparse/../.build/_deps/libarg
CPE_VENDOR= aomedia
-OPTIONS_DEFINE= LIBSHARPYUV MANPAGES PIXBUF
+OPTIONS_DEFINE= LIBSHARPYUV LIBXML2 MANPAGES PIXBUF
OPTIONS_GROUP= AV1
OPTIONS_GROUP_AV1= AOM DAV1D GAV1 RAV1E SVTAV1
OPTIONS_DEFAULT=AOM DAV1D PIXBUF
@@ -69,6 +71,10 @@ RAV1E_LIB_DEPENDS= librav1e.so:multimedia/librav1e
SVTAV1_CMAKE_OFF= -DAVIF_CODEC_SVT:STRING=OFF
SVTAV1_CMAKE_ON= -DAVIF_CODEC_SVT:STRING=SYSTEM
SVTAV1_LIB_DEPENDS= libSvtAv1Enc.so:multimedia/svt-av1
+LIBXML2_CMAKE_OFF= -DAVIF_LIBXML2:STRING=OFF
+LIBXML2_CMAKE_ON= -DAVIF_LIBXML2:STRING=SYSTEM
+LIBXML2_USE= GNOME=libxml2
+LIBXML2_USES= gnome
post-patch:
# Clean up bundled libraries
diff --git a/graphics/p5-Image-PNG-QRCode/Makefile b/graphics/p5-Image-PNG-QRCode/Makefile
index 47de7d6976fc..014aab60e07b 100644
--- a/graphics/p5-Image-PNG-QRCode/Makefile
+++ b/graphics/p5-Image-PNG-QRCode/Makefile
@@ -1,5 +1,5 @@
PORTNAME= Image-PNG-QRCode
-DISTVERSION= 0.10
+DISTVERSION= 0.11
CATEGORIES= graphics perl5
MASTER_SITES= CPAN
PKGNAMEPREFIX= p5-
@@ -10,6 +10,9 @@ WWW= https://metacpan.org/pod/Image::PNG::QRCode
LICENSE= GPLv3
+DEPRECATED= Abandoned
+EXPIRATION_DATE= 2025-12-31
+
LIB_DEPENDS= libpng.so:graphics/png
USES= perl5
diff --git a/graphics/p5-Image-PNG-QRCode/distinfo b/graphics/p5-Image-PNG-QRCode/distinfo
index 476631441673..41cb3b85edda 100644
--- a/graphics/p5-Image-PNG-QRCode/distinfo
+++ b/graphics/p5-Image-PNG-QRCode/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1655209776
-SHA256 (Image-PNG-QRCode-0.10.tar.gz) = b71502b6f7ceb57609ed916fb42e4c614f0e2498746e8ca191b11dfae7b0af1f
-SIZE (Image-PNG-QRCode-0.10.tar.gz) = 68571
+TIMESTAMP = 1747521348
+SHA256 (Image-PNG-QRCode-0.11.tar.gz) = 516b9c62de0765de87f19f0d44513db6a009c85a76cbd4d61ff71f213370d292
+SIZE (Image-PNG-QRCode-0.11.tar.gz) = 138977
diff --git a/graphics/py-img2pdf/Makefile b/graphics/py-img2pdf/Makefile
index 2816d9f1212c..4b51a2ddc65f 100644
--- a/graphics/py-img2pdf/Makefile
+++ b/graphics/py-img2pdf/Makefile
@@ -1,6 +1,5 @@
PORTNAME= img2pdf
-DISTVERSION= 0.6.0
-PORTREVISION= 3
+DISTVERSION= 0.6.1
CATEGORIES= graphics python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -12,6 +11,8 @@ WWW= https://gitlab.mister-muffin.de/josch/img2pdf
LICENSE= LGPL3+
LICENSE_FILE= ${WRKSRC}/LICENSE
+BUILD_DEPENDS= ${PY_SETUPTOOLS} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR}
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pikepdf>0:textproc/py-pikepdf@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pillow>0:graphics/py-pillow@${PY_FLAVOR}
TEST_DEPENDS= ${PY_NUMPY} \
@@ -21,11 +22,11 @@ TEST_DEPENDS= ${PY_NUMPY} \
jpegtopnm:graphics/netpbm \
pdftocairo:graphics/poppler-utils
-USES= python shebangfix magick:6,test
-USE_PYTHON= autoplist concurrent distutils pytest
+USES= python shebangfix magick:7,test
+USE_PYTHON= autoplist concurrent pep517 pytest
# Some tests fail, see following link for more info:
# https://gitlab.mister-muffin.de/josch/img2pdf/issues/152
-PYTEST_BROKEN_TESTS= jpg_cmyk miff_cmyk8 test_date tiff_cmyk8
+PYTEST_BROKEN_TESTS= jpg_cmyk test_date tiff_cmyk8
SHEBANG_FILES= src/img2pdf.py
TEST_ENV= PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}
diff --git a/graphics/py-img2pdf/distinfo b/graphics/py-img2pdf/distinfo
index bc77662778e2..280871d5df5f 100644
--- a/graphics/py-img2pdf/distinfo
+++ b/graphics/py-img2pdf/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1740898563
-SHA256 (img2pdf-0.6.0.tar.gz) = 85a89b8abdeef9ef033508aed0d9f1e84fd6d0130e864e2c523f948ec45365e1
-SIZE (img2pdf-0.6.0.tar.gz) = 106503
+TIMESTAMP = 1747416899
+SHA256 (img2pdf-0.6.1.tar.gz) = 306e279eb832bc159d7d6294b697a9fbd11b4be1f799b14b3b2174fb506af289
+SIZE (img2pdf-0.6.1.tar.gz) = 106513
diff --git a/graphics/py-pillow/Makefile b/graphics/py-pillow/Makefile
index 125eaf971cbb..f96ffe28aede 100644
--- a/graphics/py-pillow/Makefile
+++ b/graphics/py-pillow/Makefile
@@ -1,12 +1,12 @@
PORTNAME= pillow
-PORTVERSION= 11.0.0
+PORTVERSION= 11.2.1
CATEGORIES= graphics python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
MAINTAINER= sunpoet@FreeBSD.org
COMMENT= Fork of the Python Imaging Library (PIL)
-WWW= https://python-pillow.org/ \
+WWW= https://python-pillow.github.io/ \
https://pillow.readthedocs.io/en/stable/ \
https://github.com/python-pillow/Pillow
@@ -20,61 +20,57 @@ BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=61:devel/py-setuptools@${PY_FL
TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pytest>=0,1:devel/py-pytest@${PY_FLAVOR}
USES= cpe jpeg localbase python
-USE_PYTHON= autoplist concurrent pep517
+USE_PYTHON= autoplist concurrent pep517 pytest
+
+PEP517_BUILD_CONFIG_SETTING= \
+ --config-setting jpeg=enable \
+ --config-setting zlib=enable
+TEST_ENV= PYTHONPATH=${STAGEDIR}${PYTHON_SITELIBDIR}
CPE_VENDOR= python
-OPTIONS_DEFINE= FREETYPE IMAGEQUANT JPEG2000 LCMS OLE PNG RAQM TIFF TKINTER WEBP XCB
-OPTIONS_DEFAULT=FREETYPE IMAGEQUANT JPEG2000 LCMS OLE PNG RAQM TIFF TKINTER WEBP XCB
-IMAGEQUANT_DESC= Image Quantization support
-LCMS_DESC= Little Color Management System
-OLE_DESC= Microsoft OLE2 file format support
-RAQM_DESC= Complex text layout support
-TKINTER_DESC= Tkinter (Tcl/Tk) BitmapImage & PhotoImage support
-XCB_DESC= X11 screengrab support
+OPTIONS_DEFINE= AVIF FREETYPE IMAGEQUANT JPEG2000 LCMS OLE RAQM TIFF TKINTER WEBP XCB
+OPTIONS_DEFAULT=AVIF FREETYPE IMAGEQUANT JPEG2000 LCMS OLE RAQM TIFF TKINTER WEBP XCB
+IMAGEQUANT_DESC=Image Quantization support
+LCMS_DESC= Little Color Management System
+OLE_DESC= Microsoft OLE2 file format support
+RAQM_DESC= Complex text layout support
+TKINTER_DESC= Tkinter (Tcl/Tk) BitmapImage & PhotoImage support
+XCB_DESC= X11 screengrab support
+AVIF_LIB_DEPENDS= libavif.so:graphics/libavif
+AVIF_VARS= PEP517_BUILD_CONFIG_SETTING+="--config-setting avif=enable"
+AVIF_VARS_OFF= PEP517_BUILD_CONFIG_SETTING+="--config-setting avif=disable"
FREETYPE_LIB_DEPENDS= libfreetype.so:print/freetype2
-FREETYPE_VARS= PYDISTUTILS_BUILDARGS+=--enable-freetype
-FREETYPE_VARS_OFF= PYDISTUTILS_BUILDARGS+=--disable-freetype
+FREETYPE_VARS= PEP517_BUILD_CONFIG_SETTING+="--config-setting freetype=enable"
+FREETYPE_VARS_OFF= PEP517_BUILD_CONFIG_SETTING+="--config-setting freetype=disable"
IMAGEQUANT_LIB_DEPENDS= libimagequant.so:graphics/libimagequant
-IMAGEQUANT_VARS= PYDISTUTILS_BUILDARGS+=--enable-imagequant
-IMAGEQUANT_VARS_OFF= PYDISTUTILS_BUILDARGS+=--disable-imagequant
+IMAGEQUANT_VARS= PEP517_BUILD_CONFIG_SETTING+="--config-setting imagequant=enable"
+IMAGEQUANT_VARS_OFF= PEP517_BUILD_CONFIG_SETTING+="--config-setting imagequant=disable"
JPEG2000_LIB_DEPENDS= libopenjp2.so:graphics/openjpeg
-JPEG2000_VARS= PYDISTUTILS_BUILDARGS+=--enable-jpeg2000
-JPEG2000_VARS_OFF= PYDISTUTILS_BUILDARGS+=--disable-jpeg2000
+JPEG2000_VARS= PEP517_BUILD_CONFIG_SETTING+="--config-setting jpeg2000=enable"
+JPEG2000_VARS_OFF= PEP517_BUILD_CONFIG_SETTING+="--config-setting jpeg2000=disable"
LCMS_LIB_DEPENDS= liblcms2.so:graphics/lcms2
-LCMS_VARS= PYDISTUTILS_BUILDARGS+=--enable-lcms
-LCMS_VARS_OFF= PYDISTUTILS_BUILDARGS+=--disable-lcms
+LCMS_VARS= PEP517_BUILD_CONFIG_SETTING+="--config-setting lcms=enable"
+LCMS_VARS_OFF= PEP517_BUILD_CONFIG_SETTING+="--config-setting lcms=disable"
OLE_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}olefile>=0:devel/py-olefile@${PY_FLAVOR}
-PNG_VARS= PYDISTUTILS_BUILDARGS+=--enable-zlib
-PNG_VARS_OFF= PYDISTUTILS_BUILDARGS+=--disable-zlib
RAQM_LIB_DEPENDS= libraqm.so:print/libraqm
-RAQM_VARS= PYDISTUTILS_BUILDARGS+=--enable-raqm
-RAQM_VARS_OFF= PYDISTUTILS_BUILDARGS+=--disable-raqm
+RAQM_VARS= PEP517_BUILD_CONFIG_SETTING+="--config-setting raqm=enable"
+RAQM_VARS_OFF= PEP517_BUILD_CONFIG_SETTING+="--config-setting raqm=disable"
TIFF_LIB_DEPENDS= libtiff.so:graphics/tiff
-TIFF_VARS= PYDISTUTILS_BUILDARGS+=--enable-tiff
-TIFF_VARS_OFF= PYDISTUTILS_BUILDARGS+=--disable-tiff
+TIFF_VARS= PEP517_BUILD_CONFIG_SETTING+="--config-setting tiff=enable"
+TIFF_VARS_OFF= PEP517_BUILD_CONFIG_SETTING+="--config-setting tiff=disable"
TKINTER_BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}tkinter>=0:x11-toolkits/py-tkinter@${PY_FLAVOR}
TKINTER_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}tkinter>=0:x11-toolkits/py-tkinter@${PY_FLAVOR}
-TKINTER_USES= tk
-TKINTER_VARS= PYDISTUTILS_BUILDARGS+="--include-dirs=${TCL_INCLUDEDIR}:${TK_INCLUDEDIR}"
WEBP_LIB_DEPENDS= libwebp.so:graphics/webp
-WEBP_VARS= PYDISTUTILS_BUILDARGS+="--enable-webp --enable-webpmux"
-WEBP_VARS_OFF= PYDISTUTILS_BUILDARGS+="--disable-webp --disable-webpmux"
+WEBP_VARS= PEP517_BUILD_CONFIG_SETTING+="--config-setting webp=enable"
+WEBP_VARS_OFF= PEP517_BUILD_CONFIG_SETTING+="--config-setting webp=disable"
XCB_USE= XORG=xcb
XCB_USES= xorg
-XCB_VARS= PYDISTUTILS_BUILDARGS+=--enable-xcb
-XCB_VARS_OFF= PYDISTUTILS_BUILDARGS+=--disable-xcb
-
-.include <bsd.port.pre.mk>
-
-PYDISTUTILS_BUILD_TARGET= build build_ext
-PYDISTUTILS_BUILDARGS+= saveopts
+XCB_VARS= PEP517_BUILD_CONFIG_SETTING+="--config-setting xcb=enable"
+XCB_VARS_OFF= PEP517_BUILD_CONFIG_SETTING+="--config-setting xcb=disable"
post-install:
${FIND} ${STAGEDIR}${PYTHON_SITELIBDIR} -name '*.so' -exec ${STRIP_CMD} {} +
-do-test:
- cd ${WRKSRC} && ${SETENV} PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR} ${PYTHON_CMD} selftest.py
-
-.include <bsd.port.post.mk>
+.include <bsd.port.mk>
diff --git a/graphics/py-pillow/distinfo b/graphics/py-pillow/distinfo
index 80825b3a278b..5c020407f22e 100644
--- a/graphics/py-pillow/distinfo
+++ b/graphics/py-pillow/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1730387100
-SHA256 (pillow-11.0.0.tar.gz) = 72bacbaf24ac003fea9bff9837d1eedb6088758d41e100c1552930151f677739
-SIZE (pillow-11.0.0.tar.gz) = 46737780
+TIMESTAMP = 1745936196
+SHA256 (pillow-11.2.1.tar.gz) = a64dd61998416367b7ef979b73d3a85853ba9bec4c2925f74e588879a58716b6
+SIZE (pillow-11.2.1.tar.gz) = 47026707
diff --git a/graphics/py-pillow/files/patch-pyproject.toml b/graphics/py-pillow/files/patch-pyproject.toml
index a63e11867748..b9adef928b09 100644
--- a/graphics/py-pillow/files/patch-pyproject.toml
+++ b/graphics/py-pillow/files/patch-pyproject.toml
@@ -1,11 +1,21 @@
---- pyproject.toml.orig 2023-10-15 08:57:48 UTC
+--- pyproject.toml.orig 2025-04-12 17:02:40 UTC
+++ pyproject.toml
-@@ -1,7 +1,7 @@
+@@ -1,7 +1,7 @@ requires = [
[build-system]
build-backend = "backend"
requires = [
-- "setuptools>=67.8",
+- "setuptools>=77",
+ "setuptools>=61",
]
backend-path = [
"_custom_build",
+@@ -14,8 +14,7 @@ keywords = [
+ keywords = [
+ "Imaging",
+ ]
+-license = "MIT-CMU"
+-license-files = [ "LICENSE" ]
++license = { text = "MIT-CMU" }
+ authors = [
+ { name = "Jeffrey A. Clark", email = "aclark@aclark.net" },
+ ]
diff --git a/graphics/py-pyvips/Makefile b/graphics/py-pyvips/Makefile
index d6eba9540fbc..d67becacb0b9 100644
--- a/graphics/py-pyvips/Makefile
+++ b/graphics/py-pyvips/Makefile
@@ -1,5 +1,5 @@
PORTNAME= pyvips
-PORTVERSION= 2.2.3
+PORTVERSION= 3.0.0
CATEGORIES= graphics python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -12,13 +12,12 @@ WWW= https://libvips.github.io/pyvips/ \
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE.txt
-BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cffi>=1.13:devel/py-cffi@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}pkgconfig>=0,1:devel/py-pkgconfig@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cffi>=1.0.0:devel/py-cffi@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pkgconfig>=1.5,1:devel/py-pkgconfig@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}setuptools>=61.0.0:devel/py-setuptools@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
LIB_DEPENDS= libvips.so:graphics/vips
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cffi>=1.13:devel/py-cffi@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}pkgconfig>=0,1:devel/py-pkgconfig@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cffi>=1.0.0:devel/py-cffi@${PY_FLAVOR}
USES= gnome python
USE_GNOME= glib20
diff --git a/graphics/py-pyvips/distinfo b/graphics/py-pyvips/distinfo
index 8da6aedc4e47..e9129e250ac1 100644
--- a/graphics/py-pyvips/distinfo
+++ b/graphics/py-pyvips/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1715842784
-SHA256 (pyvips-2.2.3.tar.gz) = 43bceced0db492654c93008246a58a508e0373ae1621116b87b322f2ac72212f
-SIZE (pyvips-2.2.3.tar.gz) = 56626
+TIMESTAMP = 1745936198
+SHA256 (pyvips-3.0.0.tar.gz) = 79459975e4a16089b0eaafed26eb1400ae66ebc16d3ff3a7d2241abcf19dc9e8
+SIZE (pyvips-3.0.0.tar.gz) = 56806
diff --git a/graphics/py-willow/Makefile b/graphics/py-willow/Makefile
index ab65b9622095..04bcee8c222d 100644
--- a/graphics/py-willow/Makefile
+++ b/graphics/py-willow/Makefile
@@ -1,6 +1,5 @@
PORTNAME= willow
-PORTVERSION= 1.9.0
-PORTREVISION= 2
+PORTVERSION= 1.10.0
CATEGORIES= graphics python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
diff --git a/graphics/py-willow/distinfo b/graphics/py-willow/distinfo
index b64ee56e3267..0ec5a8d02e0c 100644
--- a/graphics/py-willow/distinfo
+++ b/graphics/py-willow/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1729994332
-SHA256 (willow-1.9.0.tar.gz) = ffac1406275ae30b60e7c6cbd1245f0bc359d1b5731002b18a712aaf424a5102
-SIZE (willow-1.9.0.tar.gz) = 113373
+TIMESTAMP = 1745936200
+SHA256 (willow-1.10.0.tar.gz) = e10673ff954e79ca0412c648e40dd9ce0b93c8bef798e8468ce3411ff972fb15
+SIZE (willow-1.10.0.tar.gz) = 113732
diff --git a/graphics/py-willow/files/patch-pyproject.toml b/graphics/py-willow/files/patch-pyproject.toml
index 4e0077e20035..ba816ba9d024 100644
--- a/graphics/py-willow/files/patch-pyproject.toml
+++ b/graphics/py-willow/files/patch-pyproject.toml
@@ -1,11 +1,22 @@
---- pyproject.toml.orig 2023-09-06 10:32:49 UTC
+--- pyproject.toml.orig 2025-04-22 13:08:41 UTC
+++ pyproject.toml
-@@ -25,7 +25,7 @@ classifiers = [
+@@ -26,7 +26,7 @@ dependencies = [
dynamic = ["version"] # will read __version__ from willow/__init__.py
- requires-python = ">=3.8"
+ requires-python = ">=3.9"
dependencies = [
- "filetype>=1.0.10,!=1.1.0",
+ "filetype>=1.0.7,!=1.1.0",
"defusedxml>=0.7,<1.0",
]
+@@ -35,8 +35,8 @@ heif = [
+ wand = ["Wand>=0.6,<1.0"]
+ heif = [
+ # Pinned because pillow-heif 0.23+ has dropped AVIF support but we still rely on it.
+- "pillow-heif>=0.10.0,<0.22.0; python_version < '3.12'",
+- "pillow-heif>=0.13.0,<0.22.0; python_version >= '3.12'",
++ "pillow-heif>=0.10.0,<1.0.0; python_version < '3.12'",
++ "pillow-heif>=0.13.0,<1.0.0; python_version >= '3.12'",
+ ]
+
+ testing = [
diff --git a/graphics/qgis-ltr/Makefile b/graphics/qgis-ltr/Makefile
index bc803b7a8efb..fa9ca88348c9 100644
--- a/graphics/qgis-ltr/Makefile
+++ b/graphics/qgis-ltr/Makefile
@@ -1,5 +1,5 @@
PORTNAME= qgis
-DISTVERSION= 3.40.6
+DISTVERSION= 3.40.7
CATEGORIES= graphics geography
MASTER_SITES= https://qgis.org/downloads/
PKGNAMESUFFIX= -ltr
diff --git a/graphics/qgis-ltr/distinfo b/graphics/qgis-ltr/distinfo
index d3e4d7b720fc..7d39d5f8cfc1 100644
--- a/graphics/qgis-ltr/distinfo
+++ b/graphics/qgis-ltr/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1745126800
-SHA256 (qgis-3.40.6.tar.bz2) = dd68d39a2a29326031195bed2125e8b0fa7112fe9ee74d5f9850d06b02cef6a8
-SIZE (qgis-3.40.6.tar.bz2) = 182776341
+TIMESTAMP = 1747501981
+SHA256 (qgis-3.40.7.tar.bz2) = 871118ff1cd66f8d72810fff2e783848859f04d9fbb751a644f1882c883d81dd
+SIZE (qgis-3.40.7.tar.bz2) = 181877862
diff --git a/graphics/qgis-ltr/files/patch-src_server_qgsfcgiserverresponse.cpp b/graphics/qgis-ltr/files/patch-src_server_qgsfcgiserverresponse.cpp
deleted file mode 100644
index 102965e15b47..000000000000
--- a/graphics/qgis-ltr/files/patch-src_server_qgsfcgiserverresponse.cpp
+++ /dev/null
@@ -1,24 +0,0 @@
---- src/server/qgsfcgiserverresponse.cpp.orig 2025-04-18 12:00:43 UTC
-+++ src/server/qgsfcgiserverresponse.cpp
-@@ -31,6 +31,7 @@
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <chrono>
-+#include <pthread_np.h>
-
- //
- // QgsFCGXStreamData copied from libfcgi FCGX_Stream_Data
-@@ -114,7 +115,12 @@ void QgsSocketMonitoringThread::run()
- }
-
- #if defined( Q_OS_UNIX ) && !defined( Q_OS_ANDROID )
-- const pid_t threadId = gettid();
-+ // https://github.com/qgis/QGIS/commit/6ecc1c31c95894199b88b56f8023e74807743957
-+ #if !defined (__FreeBSD__)
-+ const pid_t threadId = gettid();
-+ #else
-+ const pid_t threadId = pthread_getthreadid_np();
-+ #endif
-
- char c;
-
diff --git a/graphics/rubygem-invisible_captcha/Makefile b/graphics/rubygem-invisible_captcha/Makefile
index 6ecea501011e..00e37dcd82a9 100644
--- a/graphics/rubygem-invisible_captcha/Makefile
+++ b/graphics/rubygem-invisible_captcha/Makefile
@@ -1,5 +1,6 @@
PORTNAME= invisible_captcha
PORTVERSION= 2.1.0
+PORTREVISION= 1
CATEGORIES= graphics rubygems
MASTER_SITES= RG
@@ -9,7 +10,7 @@ WWW= https://github.com/markets/invisible_captcha
LICENSE= MIT
-RUN_DEPENDS= rubygem-rails70>=5.2:www/rubygem-rails70
+RUN_DEPENDS= rubygem-rails-gitlab>=5.2:www/rubygem-rails-gitlab
USES= gem