summaryrefslogtreecommitdiff
path: root/graphics
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--graphics/Makefile3
-rw-r--r--graphics/R-cran-ggforce/Makefile36
-rw-r--r--graphics/R-cran-ggforce/distinfo3
-rw-r--r--graphics/R-cran-ggforce/files/patch-src_robust__predicate_expansion_mp__basic.hpp14
-rw-r--r--graphics/R-cran-ggforce/pkg-descr5
-rw-r--r--graphics/R-cran-rgl/Makefile44
-rw-r--r--graphics/R-cran-rgl/distinfo3
-rw-r--r--graphics/R-cran-rgl/pkg-descr6
-rw-r--r--graphics/R-cran-tweenr/Makefile25
-rw-r--r--graphics/R-cran-tweenr/distinfo3
-rw-r--r--graphics/R-cran-tweenr/pkg-descr5
-rw-r--r--graphics/corrupter/Makefile2
-rw-r--r--graphics/d2/Makefile2
-rw-r--r--graphics/gowall/Makefile41
-rw-r--r--graphics/gowall/distinfo10
-rw-r--r--graphics/gowall/files/i386/extra-patch-vendor_github.com_gen2brain_go-fitz_fitz__cgo.go25
-rw-r--r--graphics/gowall/files/patch-internal_backends_compression_png_setup.go10
-rw-r--r--graphics/gowall/files/patch-internal_image_upscale.go19
-rw-r--r--graphics/gowall/files/patch-vendor_github.com_gen2brain_go-fitz_fitz__cgo.go16
-rw-r--r--graphics/gtkam/Makefile2
-rw-r--r--graphics/jp/Makefile2
-rw-r--r--graphics/libheif/Makefile2
-rw-r--r--graphics/libimagequant/Makefile17
-rw-r--r--graphics/libimagequant/Makefile.crates36
-rw-r--r--graphics/libimagequant/distinfo78
-rw-r--r--graphics/mesa-devel/Makefile4
-rw-r--r--graphics/mesa-devel/distinfo6
-rw-r--r--graphics/openexr/Makefile2
-rw-r--r--graphics/openjpeg/Makefile2
-rw-r--r--graphics/openjpeg/distinfo6
-rw-r--r--graphics/openjph/Makefile2
-rw-r--r--graphics/openjph/distinfo6
-rw-r--r--graphics/openjph/pkg-plist2
-rw-r--r--graphics/osgearth/Makefile2
-rw-r--r--graphics/proj-data/Makefile2
-rw-r--r--graphics/proj-data/distinfo6
-rw-r--r--graphics/proj-data/pkg-plist2
-rw-r--r--graphics/vhs/Makefile2
-rw-r--r--graphics/vv/Makefile40
-rw-r--r--graphics/vv/distinfo6
-rw-r--r--graphics/vv/files/patch-common_clitkCommon.txx25
-rw-r--r--graphics/vv/files/patch-common_clitkXdrImageIOWriter.cxx15
-rw-r--r--graphics/vv/files/patch-common_rtkEdfImageIO.h15
-rw-r--r--graphics/vv/files/patch-itk_RelativePositionPropImageFilter.txx30
-rw-r--r--graphics/vv/files/patch-vv_vv.cxx33
-rw-r--r--graphics/vv/files/patch-vv_vvBlendImageActor.cxx56
-rw-r--r--graphics/vv/files/patch-vv_vvSlicer.cxx25
47 files changed, 588 insertions, 110 deletions
diff --git a/graphics/Makefile b/graphics/Makefile
index 50b87413c358..2bccf42a9ba8 100644
--- a/graphics/Makefile
+++ b/graphics/Makefile
@@ -17,6 +17,7 @@
SUBDIR += R-cran-dichromat
SUBDIR += R-cran-dygraphs
SUBDIR += R-cran-farver
+ SUBDIR += R-cran-ggforce
SUBDIR += R-cran-ggplot2
SUBDIR += R-cran-ggrepel
SUBDIR += R-cran-gridBase
@@ -32,9 +33,11 @@
SUBDIR += R-cran-qcc
SUBDIR += R-cran-qpdf
SUBDIR += R-cran-ragg
+ SUBDIR += R-cran-rgl
SUBDIR += R-cran-s2
SUBDIR += R-cran-scales
SUBDIR += R-cran-shape
+ SUBDIR += R-cran-tweenr
SUBDIR += R-cran-viridis
SUBDIR += R-cran-viridisLite
SUBDIR += R-cran-visNetwork
diff --git a/graphics/R-cran-ggforce/Makefile b/graphics/R-cran-ggforce/Makefile
new file mode 100644
index 000000000000..b6a7ce8fbd1f
--- /dev/null
+++ b/graphics/R-cran-ggforce/Makefile
@@ -0,0 +1,36 @@
+PORTNAME= ggforce
+DISTVERSION= 0.5.0
+CATEGORIES= graphics
+DISTNAME= ${PORTNAME}_${DISTVERSION}
+
+MAINTAINER= uzsolt@FreeBSD.org
+COMMENT= Accelerating ggplot2
+WWW= https://cran.r-project.org/package=${PORTNAME}
+
+LICENSE= GPLv3
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+CRAN_DEPENDS= R-cran-cli>0:devel/R-cran-cli \
+ R-cran-ggplot2>=3.5.0:graphics/R-cran-ggplot2 \
+ R-cran-gtable>0:math/R-cran-gtable \
+ R-cran-lifecycle>0:devel/R-cran-lifecycle \
+ R-cran-polyclip>0:math/R-cran-polyclip \
+ R-cran-rlang>0:devel/R-cran-rlang \
+ R-cran-scales>0:graphics/R-cran-scales \
+ R-cran-systemfonts>0:devel/R-cran-systemfonts \
+ R-cran-tidyselect>0:devel/R-cran-tidyselect \
+ R-cran-tweenr>=0.1.5:graphics/R-cran-tweenr \
+ R-cran-vctrs>0:devel/R-cran-vctrs \
+ R-cran-withr>0:devel/R-cran-withr
+BUILD_DEPENDS= ${CRAN_DEPENDS}
+RUN_DEPENDS= ${CRAN_DEPENDS}
+TEST_DEPENDS= R-cran-covr>0:devel/R-cran-covr \
+ R-cran-deldir>0:math/R-cran-deldir \
+ R-cran-reshape2>0:devel/R-cran-reshape2 \
+ R-cran-sessioninfo>0:devel/R-cran-sessioninfo \
+ R-cran-units>=0.8.0:math/R-cran-units
+
+USES= compiler:c++17-lang cran:auto-plist,compiles
+USE_GCC= yes
+
+.include <bsd.port.mk>
diff --git a/graphics/R-cran-ggforce/distinfo b/graphics/R-cran-ggforce/distinfo
new file mode 100644
index 000000000000..1a2b33eabe81
--- /dev/null
+++ b/graphics/R-cran-ggforce/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1760349622
+SHA256 (ggforce_0.5.0.tar.gz) = 41b3ea33dc4da774a0047a446676e7c4d6c41592ad9cdb21db8d4efebcfb5d53
+SIZE (ggforce_0.5.0.tar.gz) = 906529
diff --git a/graphics/R-cran-ggforce/files/patch-src_robust__predicate_expansion_mp__basic.hpp b/graphics/R-cran-ggforce/files/patch-src_robust__predicate_expansion_mp__basic.hpp
new file mode 100644
index 000000000000..7e9e0ec67447
--- /dev/null
+++ b/graphics/R-cran-ggforce/files/patch-src_robust__predicate_expansion_mp__basic.hpp
@@ -0,0 +1,14 @@
+--- src/robust_predicate/expansion/mp_basic.hpp.orig 2025-10-13 12:47:59 UTC
++++ src/robust_predicate/expansion/mp_basic.hpp
+@@ -69,6 +69,11 @@
+ --------------------------------------------------------
+ */
+
++#ifndef SINGLE_DEFINED
++using single = float;
++#define SINGLE_DEFINED
++#endif
++
+ # pragma once
+
+ # ifndef __MP_BASIC__
diff --git a/graphics/R-cran-ggforce/pkg-descr b/graphics/R-cran-ggforce/pkg-descr
new file mode 100644
index 000000000000..90a648aec6df
--- /dev/null
+++ b/graphics/R-cran-ggforce/pkg-descr
@@ -0,0 +1,5 @@
+The aim of 'ggplot2' is to aid in visual data investigations. This focus has led
+to a lack of facilities for composing specialised plots. 'ggforce' aims to be a
+collection of mainly new stats and geoms that fills this gap. All additional
+functionality is aimed to come through the official extension system so using
+'ggforce' should be a stable experience.
diff --git a/graphics/R-cran-rgl/Makefile b/graphics/R-cran-rgl/Makefile
new file mode 100644
index 000000000000..2725b38a9859
--- /dev/null
+++ b/graphics/R-cran-rgl/Makefile
@@ -0,0 +1,44 @@
+PORTNAME= rgl
+DISTVERSION= 1.3.24
+CATEGORIES= graphics
+DISTNAME= ${PORTNAME}_${DISTVERSION}
+
+MAINTAINER= uzsolt@FreeBSD.org
+COMMENT= 3D Visualization Using OpenGL
+WWW= https://cran.r-project.org/package=${PORTNAME}
+
+LICENSE= GPLv3
+
+CRAN_DEPENDS= R-cran-base64enc>0:converters/R-cran-base64enc \
+ R-cran-htmltools>0:textproc/R-cran-htmltools \
+ R-cran-htmlwidgets>=1.6.0:www/R-cran-htmlwidgets \
+ R-cran-jsonlite>=0.9.20:converters/R-cran-jsonlite \
+ R-cran-knitr>=1.33:print/R-cran-knitr \
+ R-cran-magrittr>0:devel/R-cran-magrittr \
+ R-cran-mime>0:misc/R-cran-mime \
+ R-cran-R6>0:devel/R-cran-R6
+BUILD_DEPENDS= ${CRAN_DEPENDS}
+LIB_DEPENDS= libfreetype.so:print/freetype2 \
+ libpng.so:graphics/png
+RUN_DEPENDS= ${CRAN_DEPENDS}
+TEST_DEPENDS= R-cran-crosstalk>0:www/R-cran-crosstalk \
+ R-cran-deldir>=1.0.4:math/R-cran-deldir \
+ R-cran-downlit>=0.4.0:textproc/R-cran-downlit \
+ R-cran-interp>0:devel/R-cran-interp \
+ R-cran-jpeg>0:graphics/R-cran-jpeg \
+ R-cran-magick>0:graphics/R-cran-magick \
+ R-cran-markdown>0:textproc/R-cran-markdown \
+ R-cran-misc3d>0:math/R-cran-misc3d \
+ R-cran-pkgdown>=2.0.0:www/R-cran-pkgdown \
+ R-cran-png>0:graphics/R-cran-png \
+ R-cran-rmarkdown>=2.16:textproc/R-cran-rmarkdown \
+ R-cran-shiny>0:www/R-cran-shiny \
+ R-cran-testthat>0:devel/R-cran-testthat
+
+USES= compiler:c++17-lang cran:auto-plist,compiles gl xorg
+USE_GL= gl glu
+USE_XORG= x11
+
+TESTING_UNSAFE= Requires a WebGL-capable browser
+
+.include <bsd.port.mk>
diff --git a/graphics/R-cran-rgl/distinfo b/graphics/R-cran-rgl/distinfo
new file mode 100644
index 000000000000..30d9e3c3e784
--- /dev/null
+++ b/graphics/R-cran-rgl/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1760362372
+SHA256 (rgl_1.3.24.tar.gz) = 9f580a97c56eaf28344da83a2309e35cd665fa77ba07a324d9c4789bdc03ee49
+SIZE (rgl_1.3.24.tar.gz) = 4146898
diff --git a/graphics/R-cran-rgl/pkg-descr b/graphics/R-cran-rgl/pkg-descr
new file mode 100644
index 000000000000..48bda7c2539e
--- /dev/null
+++ b/graphics/R-cran-rgl/pkg-descr
@@ -0,0 +1,6 @@
+Provides medium to high level functions for 3D interactive graphics, including
+functions modelled on base graphics (plot3d(), etc.) as well as functions for
+constructing representations of geometric objects (cube3d(), etc.). Output may
+be on screen using OpenGL, or to various standard 3D file formats including
+WebGL, PLY, OBJ, STL as well as 2D image formats, including PNG, Postscript,
+SVG, PGF.
diff --git a/graphics/R-cran-tweenr/Makefile b/graphics/R-cran-tweenr/Makefile
new file mode 100644
index 000000000000..a23a73c7dac8
--- /dev/null
+++ b/graphics/R-cran-tweenr/Makefile
@@ -0,0 +1,25 @@
+PORTNAME= tweenr
+DISTVERSION= 2.0.3
+CATEGORIES= graphics
+DISTNAME= ${PORTNAME}_${DISTVERSION}
+
+MAINTAINER= uzsolt@FreeBSD.org
+COMMENT= Interpolate Data for Smooth Animations
+WWW= https://cran.r-project.org/package=tweenr
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+CRAN_DEPENDS= R-cran-cpp11>=0.4.2:devel/R-cran-cpp11 \
+ R-cran-farver>0:graphics/R-cran-farver \
+ R-cran-magrittr>0:devel/R-cran-magrittr \
+ R-cran-rlang>0:devel/R-cran-rlang \
+ R-cran-vctrs>0:devel/R-cran-vctrs
+BUILD_DEPENDS= ${CRAN_DEPENDS}
+RUN_DEPENDS= ${CRAN_DEPENDS}
+TEST_DEPENDS= R-cran-covr>0:devel/R-cran-covr \
+ R-cran-testthat>0:devel/R-cran-testthat
+
+USES= cran:auto-plist,compiles
+
+.include <bsd.port.mk>
diff --git a/graphics/R-cran-tweenr/distinfo b/graphics/R-cran-tweenr/distinfo
new file mode 100644
index 000000000000..dc54f70fe3c4
--- /dev/null
+++ b/graphics/R-cran-tweenr/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1760291527
+SHA256 (tweenr_2.0.3.tar.gz) = efabe512a45d653787ba40f87f3e23add4037f88573a102fa9ac7a5ff43c8cbe
+SIZE (tweenr_2.0.3.tar.gz) = 584998
diff --git a/graphics/R-cran-tweenr/pkg-descr b/graphics/R-cran-tweenr/pkg-descr
new file mode 100644
index 000000000000..62cb56216931
--- /dev/null
+++ b/graphics/R-cran-tweenr/pkg-descr
@@ -0,0 +1,5 @@
+In order to create smooth animation between states of data, tweening is
+necessary. This package provides a range of functions for creating tweened data
+that can be used as basis for animation. Furthermore it adds a number of
+vectorized interpolaters for common R data types such as numeric, date and
+colour.
diff --git a/graphics/corrupter/Makefile b/graphics/corrupter/Makefile
index d9deb7cb9abe..2018f46b6ea1 100644
--- a/graphics/corrupter/Makefile
+++ b/graphics/corrupter/Makefile
@@ -1,7 +1,7 @@
PORTNAME= corrupter
DISTVERSIONPREFIX= v
DISTVERSION= 1.0
-PORTREVISION= 30
+PORTREVISION= 31
CATEGORIES= graphics
MAINTAINER= ports@FreeBSD.org
diff --git a/graphics/d2/Makefile b/graphics/d2/Makefile
index 8309fc37737f..82543c9d8817 100644
--- a/graphics/d2/Makefile
+++ b/graphics/d2/Makefile
@@ -1,7 +1,7 @@
PORTNAME= d2
DISTVERSIONPREFIX= v
DISTVERSION= 0.7.1
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= graphics
MAINTAINER= adamw@FreeBSD.org
diff --git a/graphics/gowall/Makefile b/graphics/gowall/Makefile
index c8f1d1aa390a..dce6566dbfbc 100644
--- a/graphics/gowall/Makefile
+++ b/graphics/gowall/Makefile
@@ -1,6 +1,6 @@
PORTNAME= gowall
DISTVERSIONPREFIX= v
-DISTVERSION= 0.2.1
+DISTVERSION= 0.2.3
PORTREVISION= 1
CATEGORIES= graphics
@@ -11,17 +11,44 @@ WWW= https://github.com/Achno/gowall
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE
+LIB_DEPENDS= libffi.so:devel/libffi \
+ libmupdf.so:graphics/mupdf
RUN_DEPENDS= xdg-open:devel/xdg-utils
-USES= go:1.22,modules
+USES= go:modules
-GO_MODULE= github.com/Achno/gowall
+GO_MODULE= github.com/Achno/${PORTNAME}
+CGO_LDFLAGS+= -lmupdf -lffi
-PLIST_FILES= bin/gowall
+# utils/error.go:15:18: non-constant format string in call to ...
+TESTING_UNSAFE= yes
-OPTIONS_DEFINE= PREVIEW
-OPTIONS_DEFAULT= PREVIEW
-PREVIEW_DESC= Enable image preview support using chafa
+PLIST_FILES= bin/${PORTNAME}
+
+OPTIONS_DEFAULT= PNGQUANT PREVIEW UPSCALE
+OPTIONS_GROUP= COMPRESSION FEATURES OCR
+OPTIONS_GROUP_COMPRESSION= PNGQUANT
+OPTIONS_GROUP_FEATURES= PREVIEW UPSCALE
+OPTIONS_GROUP_OCR= TESSERACT
+
+PNGQUANT_DESC= Install pngquant PNG image compression method
+PREVIEW_DESC= Install chafa for image previewing support in terminal
+TESSERACT_DESC= Install Tesseract OCR Engine for extracting text from an image or pdf
+UPSCALE_DESC= Install upscaler for upscaling and enhancing images
+
+PNGQUANT_RUN_DEPENDS= pngquant:graphics/pngquant
PREVIEW_RUN_DEPENDS= chafa:graphics/chafa
+TESSERACT_RUN_DEPENDS= tesseract:graphics/tesseract
+UPSCALE_RUN_DEPENDS= upscaler:graphics/upscaler
+
+post-patch:
+ @${REINPLACE_CMD} -e '23s,([^()]*),("${LOCALBASE}/bin"),g' \
+ ${WRKSRC}/internal/image/upscale.go
+
+.include <bsd.port.options.mk>
+
+.if ${ARCH} == "i386"
+EXTRA_PATCHES= ${PATCHDIR}/i386/extra-patch-vendor_github.com_gen2brain_go-fitz_fitz__cgo.go
+.endif
.include <bsd.port.mk>
diff --git a/graphics/gowall/distinfo b/graphics/gowall/distinfo
index 7e77db9590b9..6f9636659c15 100644
--- a/graphics/gowall/distinfo
+++ b/graphics/gowall/distinfo
@@ -1,5 +1,5 @@
-TIMESTAMP = 1744489937
-SHA256 (go/graphics_gowall/gowall-v0.2.1/v0.2.1.mod) = 9db8b7d9dd21d67a66903acadccb4a0aa2c0d3713c3097be5fd8798da7c21804
-SIZE (go/graphics_gowall/gowall-v0.2.1/v0.2.1.mod) = 515
-SHA256 (go/graphics_gowall/gowall-v0.2.1/v0.2.1.zip) = 4deb2c1b61e31f88dcead48a2f4a31fb4b43ba66085990d60c566c9c78121a2c
-SIZE (go/graphics_gowall/gowall-v0.2.1/v0.2.1.zip) = 3359975
+TIMESTAMP = 1760285357
+SHA256 (go/graphics_gowall/gowall-v0.2.3/v0.2.3.mod) = 7a4f2e628182dc4e3bec87f4f1fef9f399fa8d744220297b7b17dfe6835f338c
+SIZE (go/graphics_gowall/gowall-v0.2.3/v0.2.3.mod) = 2289
+SHA256 (go/graphics_gowall/gowall-v0.2.3/v0.2.3.zip) = 3bdff68aad21129c387d7720fc5f7474fd89b8e20d514e10141dae20e6873342
+SIZE (go/graphics_gowall/gowall-v0.2.3/v0.2.3.zip) = 3410684
diff --git a/graphics/gowall/files/i386/extra-patch-vendor_github.com_gen2brain_go-fitz_fitz__cgo.go b/graphics/gowall/files/i386/extra-patch-vendor_github.com_gen2brain_go-fitz_fitz__cgo.go
new file mode 100644
index 000000000000..0391135e5926
--- /dev/null
+++ b/graphics/gowall/files/i386/extra-patch-vendor_github.com_gen2brain_go-fitz_fitz__cgo.go
@@ -0,0 +1,25 @@
+===> Building gowall from .
+# github.com/gen2brain/go-fitz
+vendor/github.com/gen2brain/go-fitz/fitz_cgo.go:100:79: cannot use _Ctype_store(MaxStore) (value of uint32 type _Ctype_store) as _Ctype_size_t value in argument to (_Cfunc_fz_new_context_imp)
+vendor/github.com/gen2brain/go-fitz/fitz_cgo.go:133:79: cannot use _Ctype_store(MaxStore) (value of uint32 type _Ctype_store) as _Ctype_size_t value in argument to (_Cfunc_fz_new_context_imp)
+
+--- vendor/github.com/gen2brain/go-fitz/fitz_cgo.go.orig 2025-10-13 13:52:34 UTC
++++ vendor/github.com/gen2brain/go-fitz/fitz_cgo.go
+@@ -97,7 +97,7 @@ func New(filename string) (f *Document, err error) {
+ return
+ }
+
+- f.ctx = (*C.struct_fz_context)(unsafe.Pointer(C.fz_new_context_imp(nil, nil, C.store(MaxStore), C.fz_version)))
++ f.ctx = (*C.struct_fz_context)(unsafe.Pointer(C.fz_new_context_imp(nil, nil, C.size_t(MaxStore), C.fz_version)))
+ if f.ctx == nil {
+ err = ErrCreateContext
+ return
+@@ -130,7 +130,7 @@ func NewFromMemory(b []byte) (f *Document, err error)
+ }
+ f = &Document{}
+
+- f.ctx = (*C.struct_fz_context)(unsafe.Pointer(C.fz_new_context_imp(nil, nil, C.store(MaxStore), C.fz_version)))
++ f.ctx = (*C.struct_fz_context)(unsafe.Pointer(C.fz_new_context_imp(nil, nil, C.size_t(MaxStore), C.fz_version)))
+ if f.ctx == nil {
+ err = ErrCreateContext
+ return
diff --git a/graphics/gowall/files/patch-internal_backends_compression_png_setup.go b/graphics/gowall/files/patch-internal_backends_compression_png_setup.go
new file mode 100644
index 000000000000..ff6a552b412c
--- /dev/null
+++ b/graphics/gowall/files/patch-internal_backends_compression_png_setup.go
@@ -0,0 +1,10 @@
+--- internal/backends/compression/png/setup.go.orig 2025-10-12 17:20:54 UTC
++++ internal/backends/compression/png/setup.go
+@@ -76,6 +76,7 @@ func CheckPngquantInstalled() (string, error) {
+ "linux": config.PngquantBinaryName,
+ "windows": config.PngquantBinaryName + ".exe",
+ "darwin": config.PngquantBinaryName,
++ "freebsd": config.PngquantBinaryName,
+ }
+
+ destFolder := filepath.Join(config.GowallConfig.OutputFolder, "compression", "pngquant")
diff --git a/graphics/gowall/files/patch-internal_image_upscale.go b/graphics/gowall/files/patch-internal_image_upscale.go
new file mode 100644
index 000000000000..ab402d78c440
--- /dev/null
+++ b/graphics/gowall/files/patch-internal_image_upscale.go
@@ -0,0 +1,19 @@
+--- internal/image/upscale.go.orig 1979-11-30 00:00:00 UTC
++++ internal/image/upscale.go
+@@ -7,7 +7,7 @@ import (
+ "os/exec"
+ "path/filepath"
+
+- "github.com/Achno/gowall/config"
++ // "github.com/Achno/gowall/config"
+ imageio "github.com/Achno/gowall/internal/image_io"
+ types "github.com/Achno/gowall/internal/types"
+ "github.com/Achno/gowall/internal/upscaler"
+@@ -35,6 +35,7 @@ func (p *UpscaleProcessor) Process(img image.Image, th
+ "windows": "realesrgan-ncnn-vulkan.exe",
+ "darwin": "realesrgan-ncnn-vulkan",
+ "linux": "realesrgan-ncnn-vulkan",
++ "freebsd": "realesrgan-ncnn-vulkan",
+ }
+
+ binary, err := utils.FindBinary(binaryNames, destFolder)
diff --git a/graphics/gowall/files/patch-vendor_github.com_gen2brain_go-fitz_fitz__cgo.go b/graphics/gowall/files/patch-vendor_github.com_gen2brain_go-fitz_fitz__cgo.go
new file mode 100644
index 000000000000..3aa616f47c78
--- /dev/null
+++ b/graphics/gowall/files/patch-vendor_github.com_gen2brain_go-fitz_fitz__cgo.go
@@ -0,0 +1,16 @@
+===> Building gowall from .
+# github.com/gen2brain/go-fitz
+vendor/github.com/gen2brain/go-fitz/fitz_cgo.go:546:103: cannot use _Ctype_int(len(buf)) (value of int32 type _Ctype_int) as _Ctype_size_t value in variable declaration
+*** Error code 1
+
+--- vendor/github.com/gen2brain/go-fitz/fitz_cgo.go.orig 2025-10-12 16:34:24 UTC
++++ vendor/github.com/gen2brain/go-fitz/fitz_cgo.go
+@@ -543,7 +543,7 @@ func (f *Document) Metadata() map[string]string {
+ defer C.free(unsafe.Pointer(ckey))
+
+ buf := make([]byte, 256)
+- C.fz_lookup_metadata(f.ctx, f.doc, ckey, (*C.char)(unsafe.Pointer(&buf[0])), C.int(len(buf)))
++ C.fz_lookup_metadata(f.ctx, f.doc, ckey, (*C.char)(unsafe.Pointer(&buf[0])), C.size_t(len(buf)))
+
+ return string(buf)
+ }
diff --git a/graphics/gtkam/Makefile b/graphics/gtkam/Makefile
index 00f2b613670e..277df70bead7 100644
--- a/graphics/gtkam/Makefile
+++ b/graphics/gtkam/Makefile
@@ -4,7 +4,7 @@ PORTREVISION= 9
CATEGORIES= graphics
MASTER_SITES= SF/gphoto/${PORTNAME}/${PORTVERSION}
-MAINTAINER= zirias@FreeBSD.org
+MAINTAINER= ports@FreeBSD.org
COMMENT= Download and view files from various digital cameras
WWW= http://www.gphoto.org/proj/gtkam/
diff --git a/graphics/jp/Makefile b/graphics/jp/Makefile
index fb27bd7d4f3f..334da057d526 100644
--- a/graphics/jp/Makefile
+++ b/graphics/jp/Makefile
@@ -1,6 +1,6 @@
PORTNAME= jp
DISTVERSION= 1.1.12
-PORTREVISION= 33
+PORTREVISION= 34
CATEGORIES= graphics
MAINTAINER= 0mp@FreeBSD.org
diff --git a/graphics/libheif/Makefile b/graphics/libheif/Makefile
index ddd51a17ce73..d6b2def53930 100644
--- a/graphics/libheif/Makefile
+++ b/graphics/libheif/Makefile
@@ -1,6 +1,6 @@
PORTNAME= libheif
DISTVERSION= 1.19.8
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= graphics
MASTER_SITES= https://github.com/strukturag/${PORTNAME}/releases/download/v${DISTVERSION}/
diff --git a/graphics/libimagequant/Makefile b/graphics/libimagequant/Makefile
index 177b9f0a27a1..789f9b086f59 100644
--- a/graphics/libimagequant/Makefile
+++ b/graphics/libimagequant/Makefile
@@ -1,9 +1,8 @@
PORTNAME= libimagequant
-PORTVERSION= 4.3.4
-PORTREVISION= 6
+PORTVERSION= 4.4.0
CATEGORIES= graphics
-MAINTAINER= ports@FreeBSD.org
+MAINTAINER= tagattie@FreeBSD.org
COMMENT= Image Quantization Library
WWW= https://pngquant.org/lib/
@@ -13,18 +12,24 @@ LICENSE_FILE= ${WRKSRC}/COPYRIGHT
BUILD_DEPENDS= cargo-cbuild:devel/cargo-c
USES= cargo
+
USE_GITHUB= yes
-USE_LDCONFIG= yes
GH_ACCOUNT= ImageOptim
+
+USE_LDCONFIG= yes
+
CARGO_BUILD_ARGS= --package imagequant-sys
CARGO_INSTALL_ARGS:= ${CARGO_BUILD_ARGS}
+
PLIST_FILES= include/libimagequant.h \
lib/libimagequant.a \
lib/libimagequant.so \
- lib/libimagequant.so.0.4 \
- lib/libimagequant.so.0.4.0 \
+ lib/libimagequant.so.${SOVERSION:R} \
+ lib/libimagequant.so.${SOVERSION} \
libdata/pkgconfig/imagequant.pc
+SOVERSION= 0.4.1
+
do-build:
@${CARGO_CARGO_RUN} cbuild \
--verbose \
diff --git a/graphics/libimagequant/Makefile.crates b/graphics/libimagequant/Makefile.crates
index 84c2fd6788e4..eb9bec380e90 100644
--- a/graphics/libimagequant/Makefile.crates
+++ b/graphics/libimagequant/Makefile.crates
@@ -1,21 +1,25 @@
-CARGO_CRATES= adler2-2.0.0 \
+CARGO_CRATES= adler2-2.0.1 \
arrayvec-0.7.6 \
- bitflags-2.8.0 \
- bytemuck-1.21.0 \
- cc-1.2.10 \
- cfg-if-1.0.0 \
- crc32fast-1.4.2 \
+ bitflags-2.9.4 \
+ bytemuck-1.24.0 \
+ cc-1.2.41 \
+ cfg-if-1.0.3 \
+ crc32fast-1.5.0 \
crossbeam-deque-0.8.6 \
crossbeam-epoch-0.9.18 \
crossbeam-utils-0.8.21 \
- either-1.13.0 \
- flate2-1.0.35 \
- libc-0.2.169 \
- lodepng-3.11.0 \
- miniz_oxide-0.8.3 \
- once_cell-1.20.2 \
- rayon-1.10.0 \
- rayon-core-1.12.1 \
- rgb-0.8.50 \
+ either-1.15.0 \
+ find-msvc-tools-0.1.4 \
+ flate2-1.1.4 \
+ libc-0.2.177 \
+ libz-rs-sys-0.5.2 \
+ lodepng-3.12.1 \
+ miniz_oxide-0.8.9 \
+ once_cell-1.21.3 \
+ rayon-1.11.0 \
+ rayon-core-1.13.0 \
+ rgb-0.8.52 \
shlex-1.3.0 \
- thread_local-1.1.8
+ simd-adler32-0.3.7 \
+ thread_local-1.1.9 \
+ zlib-rs-0.5.2
diff --git a/graphics/libimagequant/distinfo b/graphics/libimagequant/distinfo
index 72c258bf2f45..328b6b128f61 100644
--- a/graphics/libimagequant/distinfo
+++ b/graphics/libimagequant/distinfo
@@ -1,45 +1,53 @@
-TIMESTAMP = 1737655933
-SHA256 (rust/crates/adler2-2.0.0.crate) = 512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627
-SIZE (rust/crates/adler2-2.0.0.crate) = 13529
+TIMESTAMP = 1760220425
+SHA256 (rust/crates/adler2-2.0.1.crate) = 320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa
+SIZE (rust/crates/adler2-2.0.1.crate) = 13366
SHA256 (rust/crates/arrayvec-0.7.6.crate) = 7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50
SIZE (rust/crates/arrayvec-0.7.6.crate) = 31237
-SHA256 (rust/crates/bitflags-2.8.0.crate) = 8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36
-SIZE (rust/crates/bitflags-2.8.0.crate) = 47482
-SHA256 (rust/crates/bytemuck-1.21.0.crate) = ef657dfab802224e671f5818e9a4935f9b1957ed18e58292690cc39e7a4092a3
-SIZE (rust/crates/bytemuck-1.21.0.crate) = 51553
-SHA256 (rust/crates/cc-1.2.10.crate) = 13208fcbb66eaeffe09b99fffbe1af420f00a7b35aa99ad683dfc1aa76145229
-SIZE (rust/crates/cc-1.2.10.crate) = 101251
-SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd
-SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934
-SHA256 (rust/crates/crc32fast-1.4.2.crate) = a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3
-SIZE (rust/crates/crc32fast-1.4.2.crate) = 38491
+SHA256 (rust/crates/bitflags-2.9.4.crate) = 2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394
+SIZE (rust/crates/bitflags-2.9.4.crate) = 47950
+SHA256 (rust/crates/bytemuck-1.24.0.crate) = 1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4
+SIZE (rust/crates/bytemuck-1.24.0.crate) = 53243
+SHA256 (rust/crates/cc-1.2.41.crate) = ac9fe6cdbb24b6ade63616c0a0688e45bb56732262c158df3c0c4bea4ca47cb7
+SIZE (rust/crates/cc-1.2.41.crate) = 91154
+SHA256 (rust/crates/cfg-if-1.0.3.crate) = 2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9
+SIZE (rust/crates/cfg-if-1.0.3.crate) = 8719
+SHA256 (rust/crates/crc32fast-1.5.0.crate) = 9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511
+SIZE (rust/crates/crc32fast-1.5.0.crate) = 40723
SHA256 (rust/crates/crossbeam-deque-0.8.6.crate) = 9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51
SIZE (rust/crates/crossbeam-deque-0.8.6.crate) = 22471
SHA256 (rust/crates/crossbeam-epoch-0.9.18.crate) = 5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e
SIZE (rust/crates/crossbeam-epoch-0.9.18.crate) = 46875
SHA256 (rust/crates/crossbeam-utils-0.8.21.crate) = d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28
SIZE (rust/crates/crossbeam-utils-0.8.21.crate) = 42691
-SHA256 (rust/crates/either-1.13.0.crate) = 60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0
-SIZE (rust/crates/either-1.13.0.crate) = 19169
-SHA256 (rust/crates/flate2-1.0.35.crate) = c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c
-SIZE (rust/crates/flate2-1.0.35.crate) = 109188
-SHA256 (rust/crates/libc-0.2.169.crate) = b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a
-SIZE (rust/crates/libc-0.2.169.crate) = 757901
-SHA256 (rust/crates/lodepng-3.11.0.crate) = a7720115060cd38dcfe5c758525a43fd34dc615d0566374212ff0dc3b6151eac
-SIZE (rust/crates/lodepng-3.11.0.crate) = 52160
-SHA256 (rust/crates/miniz_oxide-0.8.3.crate) = b8402cab7aefae129c6977bb0ff1b8fd9a04eb5b51efc50a70bea51cda0c7924
-SIZE (rust/crates/miniz_oxide-0.8.3.crate) = 61827
-SHA256 (rust/crates/once_cell-1.20.2.crate) = 1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775
-SIZE (rust/crates/once_cell-1.20.2.crate) = 33394
-SHA256 (rust/crates/rayon-1.10.0.crate) = b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa
-SIZE (rust/crates/rayon-1.10.0.crate) = 180155
-SHA256 (rust/crates/rayon-core-1.12.1.crate) = 1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2
-SIZE (rust/crates/rayon-core-1.12.1.crate) = 70701
-SHA256 (rust/crates/rgb-0.8.50.crate) = 57397d16646700483b67d2dd6511d79318f9d057fdbd21a4066aeac8b41d310a
-SIZE (rust/crates/rgb-0.8.50.crate) = 21980
+SHA256 (rust/crates/either-1.15.0.crate) = 48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719
+SIZE (rust/crates/either-1.15.0.crate) = 20114
+SHA256 (rust/crates/find-msvc-tools-0.1.4.crate) = 52051878f80a721bb68ebfbc930e07b65ba72f2da88968ea5c06fd6ca3d3a127
+SIZE (rust/crates/find-msvc-tools-0.1.4.crate) = 30817
+SHA256 (rust/crates/flate2-1.1.4.crate) = dc5a4e564e38c699f2880d3fda590bedc2e69f3f84cd48b457bd892ce61d0aa9
+SIZE (rust/crates/flate2-1.1.4.crate) = 77010
+SHA256 (rust/crates/libc-0.2.177.crate) = 2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976
+SIZE (rust/crates/libc-0.2.177.crate) = 792045
+SHA256 (rust/crates/libz-rs-sys-0.5.2.crate) = 840db8cf39d9ec4dd794376f38acc40d0fc65eec2a8f484f7fd375b84602becd
+SIZE (rust/crates/libz-rs-sys-0.5.2.crate) = 46524
+SHA256 (rust/crates/lodepng-3.12.1.crate) = 77a32335d22e44238e2bb0b4d726964d18952ce1f1279ec3305305d2c61539eb
+SIZE (rust/crates/lodepng-3.12.1.crate) = 52964
+SHA256 (rust/crates/miniz_oxide-0.8.9.crate) = 1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316
+SIZE (rust/crates/miniz_oxide-0.8.9.crate) = 67132
+SHA256 (rust/crates/once_cell-1.21.3.crate) = 42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d
+SIZE (rust/crates/once_cell-1.21.3.crate) = 34534
+SHA256 (rust/crates/rayon-1.11.0.crate) = 368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f
+SIZE (rust/crates/rayon-1.11.0.crate) = 182470
+SHA256 (rust/crates/rayon-core-1.13.0.crate) = 22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91
+SIZE (rust/crates/rayon-core-1.13.0.crate) = 73151
+SHA256 (rust/crates/rgb-0.8.52.crate) = 0c6a884d2998352bb4daf0183589aec883f16a6da1f4dde84d8e2e9a5409a1ce
+SIZE (rust/crates/rgb-0.8.52.crate) = 22449
SHA256 (rust/crates/shlex-1.3.0.crate) = 0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64
SIZE (rust/crates/shlex-1.3.0.crate) = 18713
-SHA256 (rust/crates/thread_local-1.1.8.crate) = 8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c
-SIZE (rust/crates/thread_local-1.1.8.crate) = 13962
-SHA256 (ImageOptim-libimagequant-4.3.4_GH0.tar.gz) = b86f4ac0eb707af88b0a000e2e2409e399c6969c9d0d988efafaff138cebaf96
-SIZE (ImageOptim-libimagequant-4.3.4_GH0.tar.gz) = 88710
+SHA256 (rust/crates/simd-adler32-0.3.7.crate) = d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe
+SIZE (rust/crates/simd-adler32-0.3.7.crate) = 12086
+SHA256 (rust/crates/thread_local-1.1.9.crate) = f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185
+SIZE (rust/crates/thread_local-1.1.9.crate) = 19315
+SHA256 (rust/crates/zlib-rs-0.5.2.crate) = 2f06ae92f42f5e5c42443fd094f245eb656abf56dd7cce9b8b263236565e00f2
+SIZE (rust/crates/zlib-rs-0.5.2.crate) = 194342
+SHA256 (ImageOptim-libimagequant-4.4.0_GH0.tar.gz) = 22f90ad2ba87fe44d8156862798491bf056034f031a9b8b95d720669047ede20
+SIZE (ImageOptim-libimagequant-4.4.0_GH0.tar.gz) = 89068
diff --git a/graphics/mesa-devel/Makefile b/graphics/mesa-devel/Makefile
index ebfafd1e4f5a..00526bd5a72c 100644
--- a/graphics/mesa-devel/Makefile
+++ b/graphics/mesa-devel/Makefile
@@ -1,6 +1,6 @@
PORTNAME= mesa
-DISTVERSION= 25.2-branchpoint-4433
-DISTVERSIONSUFFIX= -g07f3b62d59d
+DISTVERSION= 25.2-branchpoint-4828
+DISTVERSIONSUFFIX= -g84d8e6824be
CATEGORIES= graphics
PKGNAMESUFFIX= -devel
diff --git a/graphics/mesa-devel/distinfo b/graphics/mesa-devel/distinfo
index 7f7e31ef4e65..f6f09b851849 100644
--- a/graphics/mesa-devel/distinfo
+++ b/graphics/mesa-devel/distinfo
@@ -1,6 +1,6 @@
-TIMESTAMP = 1759959813
-SHA256 (mesa-25.2-branchpoint-4433-g07f3b62d59d.tar.bz2) = 3bf9a8993e6b9c0bd5f1e782c6561d7d20a4e0c92b80335f6f0ea72fe4990bf6
-SIZE (mesa-25.2-branchpoint-4433-g07f3b62d59d.tar.bz2) = 58737590
+TIMESTAMP = 1760569293
+SHA256 (mesa-25.2-branchpoint-4828-g84d8e6824be.tar.bz2) = 16d14453c0a9a801ed47d34474fe05a1d925c7f34b3369313953c5b07a8fd6c6
+SIZE (mesa-25.2-branchpoint-4828-g84d8e6824be.tar.bz2) = 55320540
SHA256 (700efacda59c.patch) = 0d567fe737ad1404e1f12d7cd018826d9095c23835f1ed5aaa1c81cb58d3d008
SIZE (700efacda59c.patch) = 983
SHA256 (de5cf0a44b50.patch) = c9e02e5eb1fb4e3aa2bc7a7e0a70f28f3ee609835ff0b59e827893a821983851
diff --git a/graphics/openexr/Makefile b/graphics/openexr/Makefile
index 9c20cf595fe8..4fd50c57abef 100644
--- a/graphics/openexr/Makefile
+++ b/graphics/openexr/Makefile
@@ -1,6 +1,6 @@
PORTNAME?= openexr
PORTVERSION?= 3.4.1 # ALSO update openexr-website-docs! -- verify sigstore: make makesum verify-sigstore
-PORTREVISION?= 0
+PORTREVISION?= 1
CATEGORIES= graphics devel
.if !defined(MASTERDIR)
MASTER_SITES= https://raw.githubusercontent.com/AcademySoftwareFoundation/openexr-images/v1.0/:testimages \
diff --git a/graphics/openjpeg/Makefile b/graphics/openjpeg/Makefile
index b474a6264c21..f22f5fe3a02f 100644
--- a/graphics/openjpeg/Makefile
+++ b/graphics/openjpeg/Makefile
@@ -1,5 +1,5 @@
PORTNAME= openjpeg
-PORTVERSION= 2.5.3
+PORTVERSION= 2.5.4
DISTVERSIONPREFIX= v
CATEGORIES= graphics
diff --git a/graphics/openjpeg/distinfo b/graphics/openjpeg/distinfo
index 2e0b8de94a01..bb212ab19e83 100644
--- a/graphics/openjpeg/distinfo
+++ b/graphics/openjpeg/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1734888052
-SHA256 (uclouvain-openjpeg-v2.5.3_GH0.tar.gz) = 368fe0468228e767433c9ebdea82ad9d801a3ad1e4234421f352c8b06e7aa707
-SIZE (uclouvain-openjpeg-v2.5.3_GH0.tar.gz) = 2155188
+TIMESTAMP = 1759816550
+SHA256 (uclouvain-openjpeg-v2.5.4_GH0.tar.gz) = a695fbe19c0165f295a8531b1e4e855cd94d0875d2f88ec4b61080677e27188a
+SIZE (uclouvain-openjpeg-v2.5.4_GH0.tar.gz) = 2157028
diff --git a/graphics/openjph/Makefile b/graphics/openjph/Makefile
index 53a16904da1d..f05bba626b5c 100644
--- a/graphics/openjph/Makefile
+++ b/graphics/openjph/Makefile
@@ -1,5 +1,5 @@
PORTNAME= openjph
-PORTVERSION= 0.23.0
+PORTVERSION= 0.24.1
CATEGORIES= graphics
MAINTAINER= sunpoet@FreeBSD.org
diff --git a/graphics/openjph/distinfo b/graphics/openjph/distinfo
index 153df09e4603..e9785ac0429a 100644
--- a/graphics/openjph/distinfo
+++ b/graphics/openjph/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1759324014
-SHA256 (aous72-OpenJPH-0.23.0_GH0.tar.gz) = 483079f402ee6701d5f35a12c96657a715851da770d5d101c3baa239f8dd26d2
-SIZE (aous72-OpenJPH-0.23.0_GH0.tar.gz) = 476785
+TIMESTAMP = 1759816552
+SHA256 (aous72-OpenJPH-0.24.1_GH0.tar.gz) = 5e44a809c9ee3dad175da839feaf66746cfc114a625ec61c786de8ad3f5ab472
+SIZE (aous72-OpenJPH-0.24.1_GH0.tar.gz) = 477270
diff --git a/graphics/openjph/pkg-plist b/graphics/openjph/pkg-plist
index 187ad1ec328e..4c6e9373218f 100644
--- a/graphics/openjph/pkg-plist
+++ b/graphics/openjph/pkg-plist
@@ -16,6 +16,6 @@ lib/cmake/openjph/openjph-targets-%%CMAKE_BUILD_TYPE%%.cmake
lib/cmake/openjph/openjph-targets.cmake
lib/libopenjph.so
lib/libopenjph.so.0
-lib/libopenjph.so.0.23
+lib/libopenjph.so.0.24
lib/libopenjph.so.%%PORTVERSION%%
libdata/pkgconfig/openjph.pc
diff --git a/graphics/osgearth/Makefile b/graphics/osgearth/Makefile
index e61f72f0d94d..037173005bf2 100644
--- a/graphics/osgearth/Makefile
+++ b/graphics/osgearth/Makefile
@@ -4,7 +4,7 @@ DISTVERSIONPREFIX= ${PORTNAME}-
PORTREVISION= 8
CATEGORIES= graphics geography
-MAINTAINER= zirias@FreeBSD.org
+MAINTAINER= ports@FreeBSD.org
COMMENT= C++ terrain rendering toolkit for OpenSceneGraph
WWW= http://osgearth.org/
diff --git a/graphics/proj-data/Makefile b/graphics/proj-data/Makefile
index 223b0c8a142b..4928c9a93b23 100644
--- a/graphics/proj-data/Makefile
+++ b/graphics/proj-data/Makefile
@@ -1,5 +1,5 @@
PORTNAME= proj-data
-PORTVERSION= 1.22
+PORTVERSION= 1.23
CATEGORIES= graphics geography
MASTER_SITES= https://download.osgeo.org/proj/ \
https://github.com/OSGeo/PROJ-data/releases/download/${PORTVERSION}.0/
diff --git a/graphics/proj-data/distinfo b/graphics/proj-data/distinfo
index 496a6d118052..aafd537766bb 100644
--- a/graphics/proj-data/distinfo
+++ b/graphics/proj-data/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1749813014
-SHA256 (proj-data-1.22.tar.gz) = 4fe417fbef77fef7b2d4f305c348e5b8612209312880b54a5626a17c00966766
-SIZE (proj-data-1.22.tar.gz) = 791590547
+TIMESTAMP = 1759816554
+SHA256 (proj-data-1.23.tar.gz) = 1055630cac3d830b794b48af3ca8c9dd88f4d46ef5dc51c270e0a416b3d1fa1c
+SIZE (proj-data-1.23.tar.gz) = 791943741
diff --git a/graphics/proj-data/pkg-plist b/graphics/proj-data/pkg-plist
index b5df9d1d5ea0..34eb3bac09da 100644
--- a/graphics/proj-data/pkg-plist
+++ b/graphics/proj-data/pkg-plist
@@ -229,6 +229,7 @@
%%DATADIR%%/no_kv_HREF2018B_NN2000_EUREF89.tif
%%DATADIR%%/no_kv_NKGETRF14_EPSG7922_2000.tif
%%DATADIR%%/no_kv_README.txt
+%%DATADIR%%/no_kv_Svalbard_EUREF89_SVD2024.tif
%%DATADIR%%/no_kv_arcgp-2006-sk.tif
%%DATADIR%%/no_kv_href2008a.tif
%%DATADIR%%/nz_linz_README.txt
@@ -302,6 +303,7 @@
%%DATADIR%%/se_lantmateriet_SWEN17_RH2000.tif
%%DATADIR%%/si_gurs_README.txt
%%DATADIR%%/si_gurs_SLO-VRP2016-Koper.tif
+%%DATADIR%%/si_gurs_SLO-VTP2024.tif
%%DATADIR%%/sk_gku_JTSK03_to_JTSK.tif
%%DATADIR%%/sk_gku_README.txt
%%DATADIR%%/sk_gku_Slovakia_ETRS89h_to_Baltic1957.tif
diff --git a/graphics/vhs/Makefile b/graphics/vhs/Makefile
index f38f49840d1c..4a7d6690eed8 100644
--- a/graphics/vhs/Makefile
+++ b/graphics/vhs/Makefile
@@ -1,7 +1,7 @@
PORTNAME= vhs
DISTVERSIONPREFIX= v
DISTVERSION= 0.10.0
-PORTREVISION= 4
+PORTREVISION= 5
CATEGORIES= graphics
MAINTAINER= dtxdf@FreeBSD.org
diff --git a/graphics/vv/Makefile b/graphics/vv/Makefile
index f238b61ff4ed..949a0af9f166 100644
--- a/graphics/vv/Makefile
+++ b/graphics/vv/Makefile
@@ -1,8 +1,7 @@
PORTNAME= vv
DISTVERSIONPREFIX= v
-DISTVERSION= 1.4.0-383
-DISTVERSIONSUFFIX= -g7a783a8b
-PORTREVISION= 8
+DISTVERSION= 1.4.0-406
+DISTVERSIONSUFFIX= -gd33ac3e8
CATEGORIES= graphics
MAINTAINER= yuri@FreeBSD.org
@@ -18,15 +17,16 @@ LIB_DEPENDS= libexpat.so:textproc/expat2 \
libgdcmCommon.so:devel/gdcm \
libhdf5_cpp.so:science/hdf5 \
libITKLabelMap-5.0.so:science/InsightToolkit501 \
- libpng.so:graphics/png \
- libsz.so:science/libaec \
+ libmpi.so:net/mpich \
+ libnetcdf.so:science/netcdf \
+ libpng16.so:graphics/png \
libtiff.so:graphics/tiff \
- libvtkIOSQL-8.2.so:math/vtk8
+ libvtkIOSQL-${VTK_VER}.so:math/vtk9
-USES= cmake compiler:c++11-lang eigen:3 jpeg qt:5 xorg
+USES= cmake compiler:c++11-lang eigen:3 jpeg python:build,run qt:5 xorg
USE_GITHUB= yes
GH_ACCOUNT= open-vv
-USE_QT= core designer gui network sql widgets xml buildtools:build qmake:build
+USE_QT= core designer gui network opengl declarative sql widgets xml buildtools:build qmake:build
USE_XORG= ice sm x11 xext xt
USE_CXXSTD= c++11
@@ -40,7 +40,31 @@ PLIST_FILES= bin/vv
CXXFLAGS+= -msse2 # workaround for ITK failing to add -msse2 on i386: https://github.com/open-vv/vv/issues/83 & https://github.com/InsightSoftwareConsortium/ITK/issues/2011
.endif
+post-patch:
+ @${REINPLACE_CMD} -e 's/VTK_OVERRIDE/override/g' \
+ ${WRKSRC}/vv/vtkVOXImageWriter.h \
+ ${WRKSRC}/vv/vvAnimatedGIFWriter.h \
+ ${WRKSRC}/vv/vvBlendImageActor.h \
+ ${WRKSRC}/vv/vvClipPolyData.h \
+ ${WRKSRC}/vv/vvGlyph2D.h \
+ ${WRKSRC}/vv/vvGlyphSource.h \
+ ${WRKSRC}/vv/vvInteractorStyleNavigator.h \
+ ${WRKSRC}/vv/vvLandmarksGlyph.h \
+ ${WRKSRC}/vv/vvSlicer.h
+ @${REINPLACE_CMD} -e 's/Widget()->GetRenderWindow()/Widget()->renderWindow()/g' \
+ ${WRKSRC}/vv/vvToolHistogramCommand.cxx
+ @${REINPLACE_CMD} -e 's/Widget->GetRenderWindow()/Widget->renderWindow()/g' \
+ ${WRKSRC}/vv/vvMainWindow.cxx \
+ ${WRKSRC}/vv/vvSegmentationDialog.cxx \
+ ${WRKSRC}/vv/vvSurfaceViewerDialog.cxx \
+ ${WRKSRC}/vv/vvToolHistogram.cxx \
+ ${WRKSRC}/vv/vvToolProfile.cxx
+ @${REINPLACE_CMD} -e 's/widget->GetRenderWindow()/widget->renderWindow()/g' \
+ ${WRKSRC}/vv/vvMainWindow.cxx
+
post-configure: # workaround for "error: unable to find library -lGTest::GTest", see https://github.com/open-vv/vv/issues/74
@${REINPLACE_CMD} -E 's/ -lGTest::(GTest|Main) / /g' ${BUILD_WRKSRC}/build.ninja
+ @${REINPLACE_CMD} -E 's|/usr/local/lib/libtiff\.so\.[0-9]+\.[0-9]+\.[0-9]+|/usr/local/lib/libtiff.so|g' ${BUILD_WRKSRC}/build.ninja
+.include <../../math/vtk9/Makefile.version>
.include <bsd.port.post.mk>
diff --git a/graphics/vv/distinfo b/graphics/vv/distinfo
index a7748e6e693c..5f0f729f98bf 100644
--- a/graphics/vv/distinfo
+++ b/graphics/vv/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1600492328
-SHA256 (open-vv-vv-v1.4.0-383-g7a783a8b_GH0.tar.gz) = dfa80f7036297e859bf5c6b18b2b187fc05dc50a17f0b074d909e96fa8c2acbb
-SIZE (open-vv-vv-v1.4.0-383-g7a783a8b_GH0.tar.gz) = 4860982
+TIMESTAMP = 1760419528
+SHA256 (open-vv-vv-v1.4.0-406-gd33ac3e8_GH0.tar.gz) = 7f3e10a3a1391ccebd56d685316303b2fbf7f0112417d8caadb4562644cebf06
+SIZE (open-vv-vv-v1.4.0-406-gd33ac3e8_GH0.tar.gz) = 8248327
diff --git a/graphics/vv/files/patch-common_clitkCommon.txx b/graphics/vv/files/patch-common_clitkCommon.txx
new file mode 100644
index 000000000000..8f800d137543
--- /dev/null
+++ b/graphics/vv/files/patch-common_clitkCommon.txx
@@ -0,0 +1,25 @@
+Remove deprecated std::binary_function base class.
+
+C++17 removed std::binary_function which was deprecated in C++11.
+Replace with plain structs that define operator().
+
+--- common/clitkCommon.txx.orig 2025-04-17 12:54:38 UTC
++++ common/clitkCommon.txx
+@@ -135,7 +135,7 @@ template<class Type>
+
+ //--------------------------------------------------------------------
+ template<class Type>
+-struct vectorComparisonLowerThan: public std::binary_function<int, int, bool> {
++struct vectorComparisonLowerThan {
+ vectorComparisonLowerThan(const std::vector<Type> & v):vect(v) {};
+ bool operator()(int x, int y) {
+ return (vect[x] < vect[y]);
+@@ -146,7 +146,7 @@ template<class Type>
+
+ //--------------------------------------------------------------------
+ template<class Type>
+-struct vectorComparisonGreaterThan: public std::binary_function<int, int, bool> {
++struct vectorComparisonGreaterThan {
+ vectorComparisonGreaterThan(const std::vector<Type> & v):vect(v) {};
+ bool operator()(int x, int y) {
+ return (vect[x] > vect[y]);
diff --git a/graphics/vv/files/patch-common_clitkXdrImageIOWriter.cxx b/graphics/vv/files/patch-common_clitkXdrImageIOWriter.cxx
new file mode 100644
index 000000000000..0a7eef8e114b
--- /dev/null
+++ b/graphics/vv/files/patch-common_clitkXdrImageIOWriter.cxx
@@ -0,0 +1,15 @@
+Remove register storage class specifier.
+
+C++17 removed the 'register' keyword which was deprecated in C++11.
+
+--- common/clitkXdrImageIOWriter.cxx.orig 2025-04-17 12:54:38 UTC
++++ common/clitkXdrImageIOWriter.cxx
+@@ -464,7 +464,7 @@ static size_t nki_private_compress(signed char *dest,
+ unsigned long iCRC;
+ unsigned long iCRC2;
+ unsigned int iHeaderSize=8; // value for iMode==1 and iMode==3
+- register int val;
++ int val;
+ size_t i,j;
+ NKI_MODE2* pHeader = (NKI_MODE2*)dest;
+ NKI_MODE2_64BITS* pHeader_64bits = (NKI_MODE2_64BITS*)dest;
diff --git a/graphics/vv/files/patch-common_rtkEdfImageIO.h b/graphics/vv/files/patch-common_rtkEdfImageIO.h
new file mode 100644
index 000000000000..f79dd805a41f
--- /dev/null
+++ b/graphics/vv/files/patch-common_rtkEdfImageIO.h
@@ -0,0 +1,15 @@
+Update ITK enum name for ITK 5.0 compatibility.
+
+ITK 5.0 renamed IOByteOrderEnum to ByteOrder.
+
+--- common/rtkEdfImageIO.h.orig 2025-04-17 12:54:38 UTC
++++ common/rtkEdfImageIO.h
+@@ -100,7 +100,7 @@ class EdfImageIO : public itk::ImageIOBase (protected)
+ // table key-value structure
+ struct table {
+ const char *key;
+- itk::ImageIOBase::IOByteOrderEnum value;
++ itk::ImageIOBase::ByteOrder value;
+ };
+
+ struct table3 {
diff --git a/graphics/vv/files/patch-itk_RelativePositionPropImageFilter.txx b/graphics/vv/files/patch-itk_RelativePositionPropImageFilter.txx
new file mode 100644
index 000000000000..f6d963c9eada
--- /dev/null
+++ b/graphics/vv/files/patch-itk_RelativePositionPropImageFilter.txx
@@ -0,0 +1,30 @@
+Remove register storage class specifier.
+
+C++17 removed the 'register' keyword which was deprecated in C++11.
+
+--- itk/RelativePositionPropImageFilter.txx.orig 2025-04-17 12:54:38 UTC
++++ itk/RelativePositionPropImageFilter.txx
+@@ -365,12 +365,12 @@ namespace itk
+
+ typename TabulationImageType::IndexType start;
+
+- for(register int i=0;i<ImageDimension;i++)
++ for(int i=0;i<ImageDimension;i++)
+ start[i]=0;
+
+ typename TabulationImageType::SizeType size = this->GetInput()->GetLargestPossibleRegion().GetSize();
+
+- for(register int i=0;i<ImageDimension;i++)
++ for(int i=0;i<ImageDimension;i++)
+ size[i]*=2;
+
+ typename TabulationImageType::RegionType region;
+@@ -390,7 +390,7 @@ namespace itk
+ m_AngleTabulation->GetRequestedRegion().GetIndex();
+
+ typename TabulationImageType::SizeType center = this->GetInput()->GetLargestPossibleRegion().GetSize();
+- for(register int i=0;i<ImageDimension;i++)
++ for(int i=0;i<ImageDimension;i++)
+ center[i]-=1;
+
+ VectorType vecttemp;
diff --git a/graphics/vv/files/patch-vv_vv.cxx b/graphics/vv/files/patch-vv_vv.cxx
index b3517f001de0..1167955d887f 100644
--- a/graphics/vv/files/patch-vv_vv.cxx
+++ b/graphics/vv/files/patch-vv_vv.cxx
@@ -1,11 +1,36 @@
---- vv/vv.cxx.orig 2020-09-19 05:31:12 UTC
+Update for VTK 9 and fix platform-specific code.
+
+- Replace QVTKOpenGLWidget with QVTKOpenGLNativeWidget (VTK 9 API change)
+- Wrap Windows-specific #pragma in #ifdef _WIN32 to prevent linking errors
+ on non-Windows platforms
+
+--- vv/vv.cxx.orig 2025-04-17 12:54:38 UTC
+++ vv/vv.cxx
-@@ -53,7 +53,7 @@
+@@ -43,7 +43,7 @@
+ #include "vvToolsList.h"
+ #include "vvConfiguration.h"
+ #if (VTK_MAJOR_VERSION == 8 && VTK_MINOR_VERSION >= 2) || VTK_MAJOR_VERSION >= 9
+-#include <QVTKOpenGLWidget.h>
++#include <QVTKOpenGLNativeWidget.h>
+ #endif
+
+ #include <vtkFileOutputWindow.h>
+@@ -56,7 +56,9 @@
#include <sys/types.h>
#include <sys/stat.h>
#include <errno.h>
--#pragma comment(lib, "ws2_32.lib")
-+//#pragma comment(lib, "ws2_32.lib")
++#ifdef _WIN32
+ #pragma comment(lib, "ws2_32.lib")
++#endif
typedef enum {O_BASE,O_OVERLAY,O_FUSION,O_VF,O_CONTOUR,O_LANDMARKS} OpenModeType;
typedef enum {P_NORMAL,P_SEQUENCE,P_WINDOW,P_LEVEL} ParseModeType;
+@@ -119,7 +121,7 @@ int main( int argc, char** argv )
+ #endif
+
+ #if (VTK_MAJOR_VERSION == 8 && VTK_MINOR_VERSION >= 2) || VTK_MAJOR_VERSION >= 9
+- QSurfaceFormat::setDefaultFormat(QVTKOpenGLWidget::defaultFormat());
++ QSurfaceFormat::setDefaultFormat(QVTKOpenGLNativeWidget::defaultFormat());
+ #endif
+ CLITK_INIT;
+
diff --git a/graphics/vv/files/patch-vv_vvBlendImageActor.cxx b/graphics/vv/files/patch-vv_vvBlendImageActor.cxx
new file mode 100644
index 000000000000..0f2bd047929a
--- /dev/null
+++ b/graphics/vv/files/patch-vv_vvBlendImageActor.cxx
@@ -0,0 +1,56 @@
+Update OpenGL and VTK headers for VTK 9 compatibility.
+
+VTK 9 removed several deprecated headers and changed OpenGL handling:
+- Removed vtk_glew.h and vtkOpenGL.h (no longer needed)
+- Added vtkOpenGLState.h and vtk_glad.h for modern OpenGL
+- Replaced vtkgl::BlendEquationEXT with standard glBlendEquation
+ (OpenGL 3.2+ has blend equations built-in, no extensions needed)
+
+--- vv/vvBlendImageActor.cxx.orig 2025-04-17 12:54:38 UTC
++++ vv/vvBlendImageActor.cxx
+@@ -3,7 +3,7 @@ - University of LYON http://www.universit
+
+ Authors belong to:
+ - University of LYON http://www.universite-lyon.fr/
+-- Léon Bérard cancer center http://www.centreleonberard.fr
++- L�on B�rard cancer center http://www.centreleonberard.fr
+ - CREATIS CNRS laboratory http://www.creatis.insa-lyon.fr
+
+ This software is distributed WITHOUT ANY WARRANTY; without even
+@@ -17,11 +17,11 @@ - CeCILL-B http://www.cecill.info/licences/Licence_C
+ ===========================================================================**/
+
+ #include "vvBlendImageActor.h"
+-#include <vtk_glew.h>
+ #include <vtkOpenGLRenderWindow.h>
+ #include <vtkOpenGLRenderer.h>
+-#include <vtkOpenGL.h>
+ #include <vtkObjectFactory.h>
++#include <vtkOpenGLState.h>
++#include <vtk_glad.h>
+
+ vtkStandardNewMacro(vvBlendImageActor);
+
+@@ -45,19 +45,14 @@ void vvBlendImageActor::Render(vtkRenderer *ren)
+ VTK_IMAGE_ACTOR::Render(ren);
+
+ #else
+- vtkOpenGLExtensionManager *extensions = renwin->GetExtensionManager();
+- if (extensions->ExtensionSupported("GL_EXT_blend_minmax")) {
+- extensions->LoadExtension("GL_EXT_blend_minmax");
+- vtkgl::BlendEquationEXT( vtkgl::MAX );
+- }
++ // VTK 9 uses OpenGL 3.2+ which has blend equations built-in
++ glBlendEquation(GL_MAX);
+
+ //Call normal render
+ VTK_IMAGE_ACTOR::Render(ren);
+
+ //Move back blending to weighted sum
+- if (vtkgl::BlendEquationEXT!=0) {
+- vtkgl::BlendEquationEXT( vtkgl::FUNC_ADD );
+- }
++ glBlendEquation(GL_FUNC_ADD);
+ #endif
+ }
+
diff --git a/graphics/vv/files/patch-vv_vvSlicer.cxx b/graphics/vv/files/patch-vv_vvSlicer.cxx
new file mode 100644
index 000000000000..7612f66f5b5e
--- /dev/null
+++ b/graphics/vv/files/patch-vv_vvSlicer.cxx
@@ -0,0 +1,25 @@
+Update for VTK 9 compatibility.
+
+- Remove deprecated vtkToolkits.h header (no longer exists in VTK 9)
+- Convert vtkStdString to const char* when calling SetCaption()
+ (VTK 9 changed API to require explicit conversion)
+
+--- vv/vvSlicer.cxx.orig 2025-04-17 12:54:38 UTC
++++ vv/vvSlicer.cxx
+@@ -44,7 +44,6 @@
+ #include <vtkImageData.h>
+ #include <vtkImageActor.h>
+ #include <vvBlendImageActor.h>
+-#include <vtkToolkits.h>
+ #include <vtkObjectFactory.h>
+ #include <vtkPointData.h>
+ #include <vtkDataArray.h>
+@@ -1877,7 +1876,7 @@ void vvSlicer::DisplayLandmarks()
+ double *position = mLandClipper->GetOutput()->GetPoint(id);
+ vtkStdString label = static_cast<vtkStringArray*>(mLandClipper->GetOutput()->GetPointData()->GetAbstractArray("labels"))->GetValue(id);
+ vtkSmartPointer<vtkCaptionActor2D> label_actor = vtkSmartPointer<vtkCaptionActor2D>::New();
+- label_actor->SetCaption(label);
++ label_actor->SetCaption(label.c_str());
+ label_actor->SetAttachmentPoint(position);
+ label_actor->GetCaptionTextProperty()->SetColor(1,0,0);
+ label_actor->GetCaptionTextProperty()->SetOrientation(33.333333);