diff options
Diffstat (limited to '')
156 files changed, 2848 insertions, 441 deletions
diff --git a/graphics/R-cran-cowplot/Makefile b/graphics/R-cran-cowplot/Makefile index 79e5015b8a31..455093425141 100644 --- a/graphics/R-cran-cowplot/Makefile +++ b/graphics/R-cran-cowplot/Makefile @@ -1,5 +1,5 @@ PORTNAME= cowplot -DISTVERSION= 1.1.3 +DISTVERSION= 1.2.0 CATEGORIES= graphics DISTNAME= ${PORTNAME}_${DISTVERSION} @@ -9,15 +9,20 @@ WWW= https://wilkelab.org/cowplot/ LICENSE= GPLv2 -CRAN_DEPENDS= R-cran-ggplot2>=3.4.0:graphics/R-cran-ggplot2 \ +RUN_DEPENDS= R-cran-ggplot2>=3.5.2:graphics/R-cran-ggplot2 \ R-cran-gtable>0:math/R-cran-gtable \ R-cran-rlang>0:devel/R-cran-rlang \ R-cran-scales>0:graphics/R-cran-scales -BUILD_DEPENDS= ${CRAN_DEPENDS} -RUN_DEPENDS= ${CRAN_DEPENDS} -TEST_DEPENDS= R-cran-dbplyr>0:databases/R-cran-dbplyr \ +TEST_DEPENDS= R-cran-covr>0:devel/R-cran-covr \ + R-cran-dplyr>0:math/R-cran-dplyr \ + R-cran-forcats>0:math/R-cran-forcats \ + R-cran-knitr>0:print/R-cran-knitr \ + R-cran-magick>0:graphics/R-cran-magick \ R-cran-maps>0:math/R-cran-maps \ - R-cran-testthat>=1.0.0:devel/R-cran-testthat + R-cran-markdown>0:textproc/R-cran-markdown \ + R-cran-ragg>0:graphics/R-cran-ragg \ + R-cran-testthat>=1.0.0:devel/R-cran-testthat \ + R-cran-tidyr>0:devel/R-cran-tidyr USES= cran:auto-plist diff --git a/graphics/R-cran-cowplot/distinfo b/graphics/R-cran-cowplot/distinfo index a342717b4385..5c9204b0f3f1 100644 --- a/graphics/R-cran-cowplot/distinfo +++ b/graphics/R-cran-cowplot/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1706875292 -SHA256 (cowplot_1.1.3.tar.gz) = 8756971af5c50381cf00ec7ed622fd5cf3d70f534bdfa3ebadd157b5aef5b273 -SIZE (cowplot_1.1.3.tar.gz) = 1350286 +TIMESTAMP = 1751929808 +SHA256 (cowplot_1.2.0.tar.gz) = 431d582a4fb68f005f45e0d963c19daad826289374b429b05fe168ef6f231aa1 +SIZE (cowplot_1.2.0.tar.gz) = 1638386 diff --git a/graphics/argyllcms/Makefile b/graphics/argyllcms/Makefile index 62103aa894cf..e32d603737e0 100644 --- a/graphics/argyllcms/Makefile +++ b/graphics/argyllcms/Makefile @@ -5,7 +5,7 @@ CATEGORIES= graphics MASTER_SITES= https://www.argyllcms.com/ DISTNAME= Argyll_V${PORTVERSION}_src -MAINTAINER= kwm@FreeBSD.org +MAINTAINER= ports@FreeBSD.org COMMENT= ICC compatible color management system WWW= https://www.argyllcms.com/ diff --git a/graphics/art/Makefile b/graphics/art/Makefile index 90cf66c3c20c..ec539439e9a8 100644 --- a/graphics/art/Makefile +++ b/graphics/art/Makefile @@ -1,5 +1,5 @@ PORTNAME= art -DISTVERSION= 1.25.5 +DISTVERSION= 1.25.6 CATEGORIES= graphics MASTER_SITES= https://github.com/artpixls/ART/releases/download/${DISTVERSION}/ PKGNAMESUFFIX= -raw-image-editor diff --git a/graphics/art/distinfo b/graphics/art/distinfo index c1826865e9c2..091bb873a928 100644 --- a/graphics/art/distinfo +++ b/graphics/art/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1748330075 -SHA256 (ART-1.25.5.tar.xz) = c4f8eb3fb7d363c6efef6a63997710e63fcb5997f2811c2fecae00e443529a1e -SIZE (ART-1.25.5.tar.xz) = 19598872 +TIMESTAMP = 1752186852 +SHA256 (ART-1.25.6.tar.xz) = b3f6859d0944d3c038ced54367a787af0b6051df0f28e9bfa1ecebb9c5183a2d +SIZE (ART-1.25.6.tar.xz) = 19616232 diff --git a/graphics/asciio/Makefile b/graphics/asciio/Makefile index 0ccd78e61b9d..d54630072209 100644 --- a/graphics/asciio/Makefile +++ b/graphics/asciio/Makefile @@ -1,6 +1,6 @@ PORTNAME= asciio PORTVERSION= 1.9.02 -PORTREVISION= 1 +PORTREVISION= 2 PORTEPOCH= 1 CATEGORIES= graphics MASTER_SITES= https://cpan.metacpan.org/authors/id/N/NK/NKH/ \ diff --git a/graphics/bsd-plotutils/Makefile b/graphics/bsd-plotutils/Makefile index 840dda35df1e..920e97f4fbca 100644 --- a/graphics/bsd-plotutils/Makefile +++ b/graphics/bsd-plotutils/Makefile @@ -1,6 +1,6 @@ PORTNAME= bsd-plotutils DISTVERSION= 1.4.2 -PORTREVISION= 3 +PORTREVISION= 4 CATEGORIES= graphics MAINTAINER= toranktto@gmail.com diff --git a/graphics/bsd-plotutils/files/patch-plot_plot.1 b/graphics/bsd-plotutils/files/patch-plot_plot.1 new file mode 100644 index 000000000000..d1fa77263b52 --- /dev/null +++ b/graphics/bsd-plotutils/files/patch-plot_plot.1 @@ -0,0 +1,11 @@ +--- plot/plot.1.orig 2019-02-09 03:42:21 UTC ++++ plot/plot.1 +@@ -13,7 +13,7 @@ + .Sh SYNOPSIS + .Nm plot + .Oo +-.Op Fl T Ar terminal ++.Op Fl T Ns Ar terminal + .Oo + .Ar + .Sh DESCRIPTION diff --git a/graphics/bsd-plotutils/files/patch-plot_plot.sh b/graphics/bsd-plotutils/files/patch-plot_plot.sh new file mode 100644 index 000000000000..9c1907843a6b --- /dev/null +++ b/graphics/bsd-plotutils/files/patch-plot_plot.sh @@ -0,0 +1,11 @@ +--- plot/plot.sh.orig 2019-02-09 03:42:21 UTC ++++ plot/plot.sh +@@ -3,6 +3,8 @@ case $1 in + PATH=/bin:/usr/bin:/usr/local/bin:/usr/local/libexec:/usr/libexec + + case $1 in ++-T) t=-T$2 ++ shift; shift;; + -T*) t=$1 + shift ;; + *) t=-T$TERM diff --git a/graphics/chafa/Makefile b/graphics/chafa/Makefile index dff86d2db09f..73358ab85dec 100644 --- a/graphics/chafa/Makefile +++ b/graphics/chafa/Makefile @@ -1,6 +1,5 @@ PORTNAME= chafa -DISTVERSION= 1.16.1 -PORTREVISION= 1 +DISTVERSION= 1.16.2 CATEGORIES= graphics MASTER_SITES= https://hpjansson.org/chafa/releases/ \ https://github.com/hpjansson/chafa/releases/download/${PORTVERSION}/ diff --git a/graphics/chafa/distinfo b/graphics/chafa/distinfo index 8e8d77f6b774..8235dc838a20 100644 --- a/graphics/chafa/distinfo +++ b/graphics/chafa/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1747805132 -SHA256 (chafa-1.16.1.tar.xz) = 4a25debb71530baf0a748b15cfee6b8da6b513f696d9484987eaf410ecce1129 -SIZE (chafa-1.16.1.tar.xz) = 1035536 +TIMESTAMP = 1751704312 +SHA256 (chafa-1.16.2.tar.xz) = 657898dd9a89b45130a44c1efe1fc03e2c7bd00c2f543ed7111613cb9e7861df +SIZE (chafa-1.16.2.tar.xz) = 1039788 diff --git a/graphics/chafa/pkg-plist b/graphics/chafa/pkg-plist index 65ebadedd052..64d779903b20 100644 --- a/graphics/chafa/pkg-plist +++ b/graphics/chafa/pkg-plist @@ -17,7 +17,7 @@ lib/chafa/include/chafaconfig.h lib/libchafa.a lib/libchafa.so lib/libchafa.so.0 -lib/libchafa.so.0.10.1 +lib/libchafa.so.0.10.2 libdata/pkgconfig/chafa.pc %%PORTDOCS%%%%DOCSDIR%%/html/chafa/api-index-deprecated.html %%PORTDOCS%%%%DOCSDIR%%/html/chafa/api-index-full.html diff --git a/graphics/colmap/Makefile b/graphics/colmap/Makefile index dbb6cfd7dfe8..ff330dc7534f 100644 --- a/graphics/colmap/Makefile +++ b/graphics/colmap/Makefile @@ -1,6 +1,5 @@ PORTNAME= colmap -DISTVERSION= 3.11.1 -PORTREVISION= 2 +DISTVERSION= 3.12.3 CATEGORIES= graphics MAINTAINER= fuz@FreeBSD.org @@ -18,22 +17,22 @@ LICENSE_FILE_SIFTGPU= ${WRKSRC}/src/thirdparty/SiftGPU/LICENSE LICENSE_PERMS_SIFTGPU= dist-mirror pkg-mirror auto-accept LIB_DEPENDS= libPoseLib.so:graphics/poselib \ - libboost_filesystem.so:devel/boost-libs \ + libboost_program_options.so:devel/boost-libs \ libceres.so:math/ceres-solver \ - libflann.so:math/flann \ + libcurl.so:ftp/curl \ + libfaiss.so:math/faiss \ libfreeimage.so:graphics/freeimage \ libglog.so:devel/glog \ - liblz4.so:archivers/liblz4 \ libmetis.so:math/metis TEST_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/gtest.pc:devel/googletest USES= cmake:testing compiler:${OPENMP}c++11-lib desktop-file-utils eigen:3 gl \ - localbase python:env qt:5 sqlite + localbase python:env qt:5 sqlite ssl USE_CXXSTD= c++17 USE_GITHUB= yes USE_GL= gl glew USE_QT= core gui widgets buildtools:build opengl:build qmake:build -CMAKE_OFF= BOOST_STATIC CUDA_ENABLED FETCH_POSELIB +CMAKE_OFF= BOOST_STATIC CUDA_ENABLED FETCH_FAISS FETCH_POSELIB CMAKE_TESTING_ON= TESTS_ENABLED LDFLAGS+= -Wl,--as-needed # gflags, glu, xi, xmu diff --git a/graphics/colmap/distinfo b/graphics/colmap/distinfo index 65f2c01eccf4..75c6ecbbd492 100644 --- a/graphics/colmap/distinfo +++ b/graphics/colmap/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1733745417 -SHA256 (colmap-colmap-3.11.1_GH0.tar.gz) = d2c20729ab5b1198e17725b720128f304f4cfae5c0a8c20d75c0e9c5bdee5860 -SIZE (colmap-colmap-3.11.1_GH0.tar.gz) = 3513052 +TIMESTAMP = 1752688090 +SHA256 (colmap-colmap-3.12.3_GH0.tar.gz) = 1ad69660bd4e15b9cdd2ef407ac11c8e39bdcdc68625c1d142b0d8e80b6b2aa7 +SIZE (colmap-colmap-3.12.3_GH0.tar.gz) = 3578250 diff --git a/graphics/colmap/files/patch-CMakeLists.txt b/graphics/colmap/files/patch-CMakeLists.txt index d1c928a91f9c..022d12ffe97d 100644 --- a/graphics/colmap/files/patch-CMakeLists.txt +++ b/graphics/colmap/files/patch-CMakeLists.txt @@ -1,14 +1,11 @@ ---- CMakeLists.txt.orig 2024-10-16 10:58:58 UTC +--- CMakeLists.txt.orig 2025-07-04 10:48:20 UTC +++ CMakeLists.txt -@@ -125,9 +125,10 @@ endif() +@@ -132,6 +132,8 @@ endif() unset(CLANG_TIDY_EXE) endif() -+add_definitions("-DGLOG_USE_GLOG_EXPORT") ++add_compile_definitions(GLOG_USE_GLOG_EXPORT) + if(IS_MSVC) # Some fixes for the Glog library. -- add_definitions("-DGLOG_USE_GLOG_EXPORT") - add_definitions("-DGLOG_NO_ABBREVIATED_SEVERITIES") - add_definitions("-DGL_GLEXT_PROTOTYPES") - add_definitions("-DNOMINMAX") + add_compile_definitions(GLOG_USE_GLOG_EXPORT) diff --git a/graphics/colmap/pkg-plist b/graphics/colmap/pkg-plist index 5d20b23dc333..1dae83c7ea7c 100644 --- a/graphics/colmap/pkg-plist +++ b/graphics/colmap/pkg-plist @@ -21,7 +21,6 @@ include/colmap/estimators/essential_matrix_poly.h include/colmap/estimators/euclidean_transform.h include/colmap/estimators/fundamental_matrix.h include/colmap/estimators/generalized_absolute_pose.h -include/colmap/estimators/generalized_absolute_pose_coeffs.h include/colmap/estimators/generalized_pose.h include/colmap/estimators/generalized_relative_pose.h include/colmap/estimators/homography_matrix.h @@ -50,9 +49,13 @@ include/colmap/feature/utils.h include/colmap/geometry/essential_matrix.h include/colmap/geometry/gps.h include/colmap/geometry/homography_matrix.h +include/colmap/geometry/normalization.h include/colmap/geometry/pose.h +include/colmap/geometry/pose_prior.h include/colmap/geometry/rigid3.h +include/colmap/geometry/rigid3_matchers.h include/colmap/geometry/sim3.h +include/colmap/geometry/sim3_matchers.h include/colmap/geometry/triangulation.h include/colmap/image/line.h include/colmap/image/undistortion.h @@ -79,6 +82,7 @@ include/colmap/mvs/model.h include/colmap/mvs/normal_map.h include/colmap/mvs/patch_match.h include/colmap/mvs/patch_match_cuda.h +include/colmap/mvs/patch_match_options.h include/colmap/mvs/workspace.h include/colmap/optim/combination_sampler.h include/colmap/optim/least_absolute_deviations.h @@ -93,21 +97,26 @@ include/colmap/retrieval/geometry.h include/colmap/retrieval/inverted_file.h include/colmap/retrieval/inverted_file_entry.h include/colmap/retrieval/inverted_index.h +include/colmap/retrieval/resources.h include/colmap/retrieval/utils.h include/colmap/retrieval/visual_index.h include/colmap/retrieval/vote_and_verify.h include/colmap/scene/camera.h -include/colmap/scene/camera_rig.h include/colmap/scene/correspondence_graph.h include/colmap/scene/database.h include/colmap/scene/database_cache.h +include/colmap/scene/frame.h include/colmap/scene/image.h include/colmap/scene/point2d.h include/colmap/scene/point3d.h include/colmap/scene/projection.h include/colmap/scene/reconstruction.h include/colmap/scene/reconstruction_io.h +include/colmap/scene/reconstruction_io_binary.h +include/colmap/scene/reconstruction_io_text.h +include/colmap/scene/reconstruction_io_utils.h include/colmap/scene/reconstruction_manager.h +include/colmap/scene/rig.h include/colmap/scene/scene_clustering.h include/colmap/scene/synthetic.h include/colmap/scene/track.h @@ -116,8 +125,10 @@ include/colmap/scene/visibility_pyramid.h include/colmap/sensor/bitmap.h include/colmap/sensor/database.h include/colmap/sensor/models.h +include/colmap/sensor/rig.h include/colmap/sensor/specs.h include/colmap/sfm/incremental_mapper.h +include/colmap/sfm/incremental_mapper_impl.h include/colmap/sfm/incremental_triangulator.h include/colmap/sfm/observation_manager.h include/colmap/thirdparty/LSD/lsd.h @@ -253,8 +264,9 @@ include/colmap/util/cudacc.h include/colmap/util/eigen_alignment.h include/colmap/util/eigen_matchers.h include/colmap/util/endian.h -include/colmap/util/enum_to_string.h +include/colmap/util/enum_utils.h include/colmap/util/file.h +include/colmap/util/glog_macros.h include/colmap/util/logging.h include/colmap/util/misc.h include/colmap/util/opengl_utils.h @@ -287,12 +299,11 @@ lib/libcolmap_ui.a lib/libcolmap_util.a lib/libcolmap_vlfeat.a share/applications/COLMAP.desktop +%%DATADIR%%/cmake/FindCryptoPP.cmake %%DATADIR%%/cmake/FindDependencies.cmake -%%DATADIR%%/cmake/FindFLANN.cmake %%DATADIR%%/cmake/FindFreeImage.cmake %%DATADIR%%/cmake/FindGlew.cmake %%DATADIR%%/cmake/FindGlog.cmake -%%DATADIR%%/cmake/FindLZ4.cmake %%DATADIR%%/cmake/FindMetis.cmake %%DATADIR%%/colmap-config-version.cmake %%DATADIR%%/colmap-config.cmake @@ -305,6 +316,7 @@ share/applications/COLMAP.desktop %%PORTDOCS%%%%DOCSDIR%%/_sources/cameras.rst.txt %%PORTDOCS%%%%DOCSDIR%%/_sources/changelog.rst.txt %%PORTDOCS%%%%DOCSDIR%%/_sources/cli.rst.txt +%%PORTDOCS%%%%DOCSDIR%%/_sources/concepts.rst.txt %%PORTDOCS%%%%DOCSDIR%%/_sources/contribution.rst.txt %%PORTDOCS%%%%DOCSDIR%%/_sources/database.rst.txt %%PORTDOCS%%%%DOCSDIR%%/_sources/datasets.rst.txt @@ -313,10 +325,12 @@ share/applications/COLMAP.desktop %%PORTDOCS%%%%DOCSDIR%%/_sources/gui.rst.txt %%PORTDOCS%%%%DOCSDIR%%/_sources/index.rst.txt %%PORTDOCS%%%%DOCSDIR%%/_sources/install.rst.txt +%%PORTDOCS%%%%DOCSDIR%%/_sources/legacy.rst.txt %%PORTDOCS%%%%DOCSDIR%%/_sources/license.rst.txt %%PORTDOCS%%%%DOCSDIR%%/_sources/pycolmap/cost_functions.rst.txt %%PORTDOCS%%%%DOCSDIR%%/_sources/pycolmap/index.rst.txt %%PORTDOCS%%%%DOCSDIR%%/_sources/pycolmap/pycolmap.rst.txt +%%PORTDOCS%%%%DOCSDIR%%/_sources/rigs.rst.txt %%PORTDOCS%%%%DOCSDIR%%/_sources/tutorial.rst.txt %%PORTDOCS%%%%DOCSDIR%%/_static/_sphinx_javascript_frameworks_compat.js %%PORTDOCS%%%%DOCSDIR%%/_static/basic.css @@ -361,6 +375,7 @@ share/applications/COLMAP.desktop %%PORTDOCS%%%%DOCSDIR%%/cameras.html %%PORTDOCS%%%%DOCSDIR%%/changelog.html %%PORTDOCS%%%%DOCSDIR%%/cli.html +%%PORTDOCS%%%%DOCSDIR%%/concepts.html %%PORTDOCS%%%%DOCSDIR%%/contribution.html %%PORTDOCS%%%%DOCSDIR%%/database.html %%PORTDOCS%%%%DOCSDIR%%/datasets.html @@ -370,11 +385,13 @@ share/applications/COLMAP.desktop %%PORTDOCS%%%%DOCSDIR%%/gui.html %%PORTDOCS%%%%DOCSDIR%%/index.html %%PORTDOCS%%%%DOCSDIR%%/install.html +%%PORTDOCS%%%%DOCSDIR%%/legacy.html %%PORTDOCS%%%%DOCSDIR%%/license.html %%PORTDOCS%%%%DOCSDIR%%/objects.inv %%PORTDOCS%%%%DOCSDIR%%/pycolmap/cost_functions.html %%PORTDOCS%%%%DOCSDIR%%/pycolmap/index.html %%PORTDOCS%%%%DOCSDIR%%/pycolmap/pycolmap.html +%%PORTDOCS%%%%DOCSDIR%%/rigs.html %%PORTDOCS%%%%DOCSDIR%%/search.html %%PORTDOCS%%%%DOCSDIR%%/searchindex.js %%PORTDOCS%%%%DOCSDIR%%/tutorial.html diff --git a/graphics/converseen/Makefile b/graphics/converseen/Makefile index 6f9c48382907..61fd7adba787 100644 --- a/graphics/converseen/Makefile +++ b/graphics/converseen/Makefile @@ -1,6 +1,6 @@ PORTNAME= converseen DISTVERSIONPREFIX= v -DISTVERSION= 0.14.0.0 +DISTVERSION= 0.15.0.1 CATEGORIES= graphics MAINTAINER= fernape@FreeBSD.org diff --git a/graphics/converseen/distinfo b/graphics/converseen/distinfo index 5276e215f0d1..21f318515921 100644 --- a/graphics/converseen/distinfo +++ b/graphics/converseen/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1745754508 -SHA256 (Faster3ck-Converseen-v0.14.0.0_GH0.tar.gz) = 434ab5363b0a1399b51788473ccc6907ac790f90be743b30484223ef4273f3e3 -SIZE (Faster3ck-Converseen-v0.14.0.0_GH0.tar.gz) = 962236 +TIMESTAMP = 1751800958 +SHA256 (Faster3ck-Converseen-v0.15.0.1_GH0.tar.gz) = 0e7f7731f660537eb2d360b5adbf535e5959892384d7c81083224a73bc685ce2 +SIZE (Faster3ck-Converseen-v0.15.0.1_GH0.tar.gz) = 968202 diff --git a/graphics/corrupter/Makefile b/graphics/corrupter/Makefile index 750b38964938..c2b1d99bb442 100644 --- a/graphics/corrupter/Makefile +++ b/graphics/corrupter/Makefile @@ -1,7 +1,7 @@ PORTNAME= corrupter DISTVERSIONPREFIX= v DISTVERSION= 1.0 -PORTREVISION= 26 +PORTREVISION= 27 CATEGORIES= graphics MAINTAINER= ports@FreeBSD.org diff --git a/graphics/d2/Makefile b/graphics/d2/Makefile index 7183a5c25d4b..dfe50e8daa69 100644 --- a/graphics/d2/Makefile +++ b/graphics/d2/Makefile @@ -1,7 +1,7 @@ PORTNAME= d2 DISTVERSIONPREFIX= v DISTVERSION= 0.7.0 -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= graphics MAINTAINER= adamw@FreeBSD.org diff --git a/graphics/darktable/Makefile b/graphics/darktable/Makefile index 0a5e92805986..170a419ea86c 100644 --- a/graphics/darktable/Makefile +++ b/graphics/darktable/Makefile @@ -1,6 +1,6 @@ PORTNAME= darktable -PORTVERSION= 5.0.1 -PORTREVISION= 1 +PORTVERSION= 5.2.0 +PORTREVISION= 0 CATEGORIES= graphics MASTER_SITES= https://github.com/darktable-org/${PORTNAME}/releases/download/release-${PORTVERSION:C/\.rc/rc/}/ @@ -43,7 +43,7 @@ LIB_DEPENDS= libavif.so:graphics/libavif \ libwebp.so:graphics/webp USES= cmake compiler:c++11-lib desktop-file-utils gl gnome jpeg \ - llvm:17,build lua perl5 pkgconfig sdl shebangfix sqlite \ + llvm:build lua perl5 pkgconfig sdl shebangfix sqlite \ tar:xz xorg USE_GL= gl USE_GNOME= cairo gtk30 intltool librsvg2 libxml2 @@ -59,7 +59,9 @@ CMAKE_BOOL+= BUILD_CMSTEST USE_AVIF USE_CAMERA_SUPPORT USE_HEIF \ USE_ISOBMFF USE_KWALLET USE_LUA USE_MAP USE_OPENEXR \ USE_OPENJPEG USE_WEBP RAWSPEED_ENABLE_LTO -CFLAGS+= -fopenmp +# darktable wraps pthread lock/release functions, causing false +# compiler warnings from -Wthread-safety-analysis. Kill this warning. +CFLAGS+= -fopenmp -Wno-thread-safety-analysis WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION:C/\.rc/~rc/} diff --git a/graphics/darktable/distinfo b/graphics/darktable/distinfo index f9a0561a026c..b061c37997b9 100644 --- a/graphics/darktable/distinfo +++ b/graphics/darktable/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1739833136 -SHA256 (darktable-5.0.1.tar.xz) = 4a918d094ebba983ef67a10cc715c3d7e8ca738009920a9ff65d33417b6dd984 -SIZE (darktable-5.0.1.tar.xz) = 7247072 +TIMESTAMP = 1751715144 +SHA256 (darktable-5.2.0.tar.xz) = 53a46cd46ef7118485c4abf4ab407c181639bb8634243ec0ed1f7c1e8299bec6 +SIZE (darktable-5.2.0.tar.xz) = 7319420 diff --git a/graphics/darktable/files/patch-git-0cc770a2e21ced661c5363c5733eb13ac7433748 b/graphics/darktable/files/patch-git-0cc770a2e21ced661c5363c5733eb13ac7433748 new file mode 100644 index 000000000000..4127a55bb2ba --- /dev/null +++ b/graphics/darktable/files/patch-git-0cc770a2e21ced661c5363c5733eb13ac7433748 @@ -0,0 +1,85 @@ +From 0cc770a2e21ced661c5363c5733eb13ac7433748 Mon Sep 17 00:00:00 2001 +From: Martin Straeten <39386816+MStraeten@users.noreply.github.com> +Date: Fri, 27 Jun 2025 17:06:45 +0200 +Subject: [PATCH] reset window placement if last position is out of available + display space (#18988) + +* reset window if position is out of display space + +on initialisation darktable moves the window to the last position even thats outside of the available displays. + +_valid_window_placement checks for an overlay with an existing display + +dt_gui_gtk_load_config() resets position to default if there's no overlap + +* 24 pixel as a border + +a border of 24 pixels is used to define the effective area that must be overlapped from the last window position to avoid a reset of position + +* stile fixes + +one parameter per line +several const additions +--- + src/gui/gtk.c | 41 ++++++++++++++++++++++++++++++++++++++++- + 1 file changed, 40 insertions(+), 1 deletion(-) + +diff --git a/src/gui/gtk.c b/src/gui/gtk.c +index 671d87345850..a620dcb42332 100644 +--- src/gui/gtk.c ++++ b/src/gui/gtk.c +@@ -773,6 +773,42 @@ static gboolean _scrollbar_changed(GtkWidget *widget, + return TRUE; + } + ++gboolean _valid_window_placement( const gint saved_x, ++ const gint saved_y, ++ const gint window_width, ++ const gint window_height, ++ const gint border) ++{ ++ GdkDisplay *display = gdk_display_get_default(); ++ const gint n_monitors = gdk_display_get_n_monitors(display); ++ ++ // check each monitor ++ for(gint i = 0; i < n_monitors; i++) ++ { ++ GdkMonitor *monitor = gdk_display_get_monitor(display, i); ++ GdkRectangle geometry; ++ gdk_monitor_get_geometry(monitor, &geometry); ++ ++ // Calculate effective area excluding border ++ const gint eff_x = geometry.x + border; ++ const gint eff_y = geometry.y + border; ++ const gint eff_width = geometry.width - (2 * border); ++ const gint eff_height = geometry.height - (2 * border); ++ ++ if(eff_width <= 0 || eff_height <= 0) continue; ++ ++ // Check overlap ++ const gboolean x_overlap = (saved_x < eff_x + eff_width) && (saved_x + window_width > eff_x); ++ const gboolean y_overlap = (saved_y < eff_y + eff_height) && (saved_y + window_height > eff_y); ++ ++ if(x_overlap && y_overlap) ++ { ++ return TRUE; ++ } ++ } ++ return FALSE; ++} ++ + int dt_gui_gtk_load_config() + { + dt_pthread_mutex_lock(&darktable.gui->mutex); +@@ -784,7 +820,10 @@ int dt_gui_gtk_load_config() + const gint y = MAX(0, dt_conf_get_int("ui_last/window_y")); + + gtk_window_resize(GTK_WINDOW(widget), width, height); +- gtk_window_move(GTK_WINDOW(widget), x, y); ++ if(_valid_window_placement(x, y, width, height, 24)) ++ gtk_window_move(GTK_WINDOW(widget), x, y); ++ else ++ gtk_window_move(GTK_WINDOW(widget), 0, 0); + const gboolean fullscreen = dt_conf_get_bool("ui_last/fullscreen"); + + if(fullscreen) diff --git a/graphics/darktable/files/patch-git-5db7918176ca45a24e9ea5b2a7bdbce898343059 b/graphics/darktable/files/patch-git-5db7918176ca45a24e9ea5b2a7bdbce898343059 new file mode 100644 index 000000000000..cabdbe858e29 --- /dev/null +++ b/graphics/darktable/files/patch-git-5db7918176ca45a24e9ea5b2a7bdbce898343059 @@ -0,0 +1,46 @@ +From 5db7918176ca45a24e9ea5b2a7bdbce898343059 Mon Sep 17 00:00:00 2001 +From: Mario Zimmermann <mail@zisoft.de> +Date: Mon, 23 Jun 2025 13:36:33 +0200 +Subject: [PATCH] use full metadata tag name for variable substitution + +--- + src/common/variables.c | 4 +--- + src/gui/gtkentry.c | 2 +- + 2 files changed, 2 insertions(+), 4 deletions(-) + +diff --git a/src/common/variables.c b/src/common/variables.c +index b8deed704af0..2746a7cf8647 100644 +--- src/common/variables.c ++++ b/src/common/variables.c +@@ -953,9 +953,8 @@ static char *_get_base_value(dt_variables_params_t *params, char **variable) + for(GList* iter = dt_metadata_get_list(); iter; iter = iter->next) + { + dt_metadata_t *metadata = (dt_metadata_t *)iter->data; +- gchar *prefix = g_utf8_strup(dt_metadata_get_tag_subkey(metadata->tagname), -1); + gboolean found = FALSE; +- if(_has_prefix(variable, prefix)) ++ if(_has_prefix(variable, metadata->tagname)) + { + GList *res = dt_metadata_get(params->imgid, metadata->tagname, NULL); + if(res != NULL) +@@ -963,7 +962,6 @@ static char *_get_base_value(dt_variables_params_t *params, char **variable) + g_list_free_full(res, g_free); + found = TRUE; + } +- g_free(prefix); + if(found) break; + } + dt_pthread_mutex_unlock(&darktable.metadata_threadsafe); +diff --git a/src/gui/gtkentry.c b/src/gui/gtkentry.c +index b4acc9ccc8ad..db200eff47a9 100644 +--- src/gui/gtkentry.c ++++ b/src/gui/gtkentry.c +@@ -291,7 +291,7 @@ void dt_gtkentry_variables_add_metadata(dt_metadata_t *metadata) + { + GtkTreeIter iter; + +- gchar *varname = g_utf8_strup(dt_metadata_get_tag_subkey(metadata->tagname), -1); ++ gchar *varname = g_strdup(metadata->tagname); + gchar *description = g_strdup_printf("$(%s) - %s", varname, _("from metadata")); + gtk_list_store_append(_completion_model, &iter); + gtk_list_store_set(_completion_model, &iter, diff --git a/graphics/darktable/files/patch-git-727ad35663589dc046c557787f0c1c34a45fb4af b/graphics/darktable/files/patch-git-727ad35663589dc046c557787f0c1c34a45fb4af new file mode 100644 index 000000000000..2cf87c412f38 --- /dev/null +++ b/graphics/darktable/files/patch-git-727ad35663589dc046c557787f0c1c34a45fb4af @@ -0,0 +1,23 @@ +From 727ad35663589dc046c557787f0c1c34a45fb4af Mon Sep 17 00:00:00 2001 +From: Hanno Schwalm <hanno@schwalm-bremen.de> +Date: Sun, 29 Jun 2025 06:07:42 +0200 +Subject: [PATCH] Fix non-raw OpenCL rastermask codepath + +Using the correct OpenCL interpolator +--- + src/iop/rasterfile.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/iop/rasterfile.c b/src/iop/rasterfile.c +index 9f774b3c86cb..4e582861be70 100644 +--- src/iop/rasterfile.c ++++ b/src/iop/rasterfile.c +@@ -378,7 +378,7 @@ int process_cl(dt_iop_module_t *self, + if(visual) return err; + + if(roi_out->scale != roi_in->scale && ch == 4) +- err = dt_iop_clip_and_zoom_roi_cl(devid, dev_out, dev_in, roi_out, roi_in); ++ err = dt_iop_clip_and_zoom_cl(devid, dev_out, dev_in, roi_out, roi_in); + else + { + size_t iorigin[] = { roi_out->x, roi_out->y, 0 }; diff --git a/graphics/darktable/files/patch-git-b4e81416381fd7a1e189a4fc4d8b3836906ddd2b b/graphics/darktable/files/patch-git-b4e81416381fd7a1e189a4fc4d8b3836906ddd2b new file mode 100644 index 000000000000..666c92431acb --- /dev/null +++ b/graphics/darktable/files/patch-git-b4e81416381fd7a1e189a4fc4d8b3836906ddd2b @@ -0,0 +1,154 @@ +From b4e81416381fd7a1e189a4fc4d8b3836906ddd2b Mon Sep 17 00:00:00 2001 +From: Pascal Obry <pascal@obry.net> +Date: Tue, 17 Jun 2025 17:35:04 +0200 +Subject: [PATCH] Fix memory leak when using dt_util_localize_segmented_name. + +--- + src/common/history.c | 8 +++++--- + src/common/presets.c | 14 +++++++------- + src/common/presets.h | 8 ++++---- + src/develop/imageop.c | 6 +++++- + src/gui/styles_dialog.c | 12 +++++++----- + 5 files changed, 28 insertions(+), 20 deletions(-) + +diff --git a/src/common/history.c b/src/common/history.c +index 94b370c140f7..3fa458999ed7 100644 +--- src/common/history.c ++++ b/src/common/history.c +@@ -1,6 +1,6 @@ + /* + This file is part of darktable, +- Copyright (C) 2010-2024 darktable developers. ++ Copyright (C) 2010-2025 darktable developers. + + darktable is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by +@@ -1023,13 +1023,15 @@ char *dt_history_get_name_label(const char *name, + } + else + { +- const char *l_label = hand_edited +- ? label ++ char *l_label = hand_edited ++ ? g_strdup (label) + : dt_util_localize_segmented_name(label, FALSE); + + result = markup + ? g_markup_printf_escaped("%s • <small>%s</small>", name, l_label) + : g_markup_printf_escaped("%s • %s", name, l_label); ++ ++ g_free(l_label); + } + + return result; +diff --git a/src/common/presets.c b/src/common/presets.c +index a22dc8935c56..50fab77749dc 100644 +--- src/common/presets.c ++++ b/src/common/presets.c +@@ -428,7 +428,7 @@ char *dt_presets_get_module_label(const char *module_name, + const char *name = (const char *)sqlite3_column_text(stmt, 0); + const char *multi_name = (const char *)sqlite3_column_text(stmt, 1); + if(multi_name && (strlen(multi_name) == 0 || multi_name[0] != ' ')) +- result = g_strdup(dt_presets_get_multi_name(name, multi_name, FALSE)); ++ result = dt_presets_get_multi_name(name, multi_name, FALSE); + } + g_free(query); + sqlite3_finalize(stmt); +@@ -436,9 +436,9 @@ char *dt_presets_get_module_label(const char *module_name, + return result; + } + +-const char *dt_presets_get_multi_name(const char *name, +- const char *multi_name, +- const gboolean localize) ++char *dt_presets_get_multi_name(const char *name, ++ const char *multi_name, ++ const gboolean localize) + { + const gboolean auto_module = dt_conf_get_bool("darkroom/ui/auto_module_name_update"); + +@@ -446,10 +446,10 @@ const char *dt_presets_get_multi_name(const char *name, + // in non auto-update mode : use only the multi_name if defined + if(auto_module) + return strlen(multi_name) > 0 +- ? multi_name +- : (localize ? dt_util_localize_segmented_name(name, FALSE) : name); ++ ? g_strdup(multi_name) ++ : (localize ? dt_util_localize_segmented_name(name, FALSE) : g_strdup(name)); + else +- return strlen(multi_name) > 0 ? multi_name : ""; ++ return g_strdup(strlen(multi_name) > 0 ? multi_name : ""); + } + + // clang-format off +diff --git a/src/common/presets.h b/src/common/presets.h +index b493b543b1db..fe4c65fc3960 100644 +--- src/common/presets.h ++++ b/src/common/presets.h +@@ -1,6 +1,6 @@ + /* + This file is part of darktable, +- Copyright (C) 2019-2023 darktable developers. ++ Copyright (C) 2019-2025 darktable developers. + + darktable is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by +@@ -42,9 +42,9 @@ char *dt_presets_get_module_label(const char *module_name, + and the recorded preset's multi_name. This depends on the preference + darkroom/ui/auto_module_name_update + */ +-const char *dt_presets_get_multi_name(const char *name, +- const char *multi_name, +- const gboolean localize); ++char *dt_presets_get_multi_name(const char *name, ++ const char *multi_name, ++ const gboolean localize); + + /** get currently active preset name for the module */ + gchar *dt_get_active_preset_name(dt_iop_module_t *module, gboolean *writeprotect); +diff --git a/src/develop/imageop.c b/src/develop/imageop.c +index b2886b8d274e..13386fb6286b 100644 +--- src/develop/imageop.c ++++ b/src/develop/imageop.c +@@ -1198,7 +1198,11 @@ static void _iop_panel_name(dt_iop_module_t *module) + if(module->multi_name_hand_edited) + new_label = g_strdup_printf("• %s", module->multi_name); + else +- new_label = g_strdup_printf("• %s", dt_util_localize_segmented_name(module->multi_name, FALSE)); ++ { ++ char *loc = dt_util_localize_segmented_name(module->multi_name, FALSE); ++ new_label = g_strdup_printf("• %s", loc); ++ g_free(loc); ++ } + gtk_widget_set_name(GTK_WIDGET(iname), "iop-module-name"); + } + } +diff --git a/src/gui/styles_dialog.c b/src/gui/styles_dialog.c +index c4fc24704e9f..75474de98793 100644 +--- src/gui/styles_dialog.c ++++ b/src/gui/styles_dialog.c +@@ -1,6 +1,6 @@ + /* + This file is part of darktable, +- Copyright (C) 2010-2024 darktable developers. ++ Copyright (C) 2010-2025 darktable developers. + + darktable is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by +@@ -1003,10 +1003,12 @@ GtkWidget *dt_gui_style_content_dialog(char *name, const dt_imgid_t imgid) + + if(i->multi_name && strlen(i->multi_name) > 0) + { +- snprintf(mn, sizeof(mn), "(%s)", +- i->multi_name_hand_edited +- ? i->multi_name +- : dt_util_localize_segmented_name(i->multi_name, TRUE)); ++ char *mname = i->multi_name_hand_edited ++ ? g_strdup(i->multi_name) ++ : dt_util_localize_segmented_name(i->multi_name, TRUE); ++ ++ snprintf(mn, sizeof(mn), "(%s)", mname); ++ g_free(mname); + } + else + { diff --git a/graphics/darktable/files/patch-git-dd5e98050bbd3b726cf1577042f03de734eaf642 b/graphics/darktable/files/patch-git-dd5e98050bbd3b726cf1577042f03de734eaf642 new file mode 100644 index 000000000000..9b218f023472 --- /dev/null +++ b/graphics/darktable/files/patch-git-dd5e98050bbd3b726cf1577042f03de734eaf642 @@ -0,0 +1,23 @@ +From dd5e98050bbd3b726cf1577042f03de734eaf642 Mon Sep 17 00:00:00 2001 +From: Pascal Obry <pascal@obry.net> +Date: Tue, 17 Jun 2025 17:34:51 +0200 +Subject: [PATCH] snapshots: Ensure the entry fill all the widget while + editing. + +--- + src/libs/snapshots.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/libs/snapshots.c b/src/libs/snapshots.c +index bf0909f757e7..9c2fd0c23c76 100644 +--- src/libs/snapshots.c ++++ b/src/libs/snapshots.c +@@ -558,7 +558,7 @@ static void _init_snapshot_entry(dt_lib_module_t *self, dt_lib_snapshot_t *s) + gtk_widget_set_halign(s->name, GTK_ALIGN_START); + + s->entry = gtk_entry_new(); +- gtk_widget_set_halign(s->entry, GTK_ALIGN_START); ++ gtk_widget_set_halign(s->entry, GTK_ALIGN_FILL); + g_signal_connect(G_OBJECT(s->entry), "activate", + G_CALLBACK(_entry_activated_callback), self); + diff --git a/graphics/darktable/files/patch-git-e00a758e6164389e845308f3615c3754dd04c712 b/graphics/darktable/files/patch-git-e00a758e6164389e845308f3615c3754dd04c712 new file mode 100644 index 000000000000..67331abd7b4c --- /dev/null +++ b/graphics/darktable/files/patch-git-e00a758e6164389e845308f3615c3754dd04c712 @@ -0,0 +1,27 @@ +From e00a758e6164389e845308f3615c3754dd04c712 Mon Sep 17 00:00:00 2001 +From: Mario Zimmermann <mail@zisoft.de> +Date: Fri, 27 Jun 2025 20:05:23 +0200 +Subject: [PATCH] fix screen dpi setting has no effect + +--- + src/gui/gtk.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src/gui/gtk.c b/src/gui/gtk.c +index a620dcb42332..d62411e9d6ef 100644 +--- src/gui/gtk.c ++++ b/src/gui/gtk.c +@@ -1630,10 +1630,10 @@ double dt_get_screen_resolution(GtkWidget *widget) + screen_dpi = 96.0; + strncpy(opt_str, "(default value)", sizeof(opt_str)); + } +- gdk_screen_set_resolution(gtk_widget_get_screen(widget), screen_dpi); +- dt_print(DT_DEBUG_CONTROL, "[screen resolution] setting the screen resolution to %f dpi %s", +- screen_dpi, opt_str); + } ++ gdk_screen_set_resolution(gtk_widget_get_screen(widget), screen_dpi); ++ dt_print(DT_DEBUG_CONTROL, "[screen resolution] setting the screen resolution to %f dpi %s", ++ screen_dpi, opt_str); + return screen_dpi; + } + diff --git a/graphics/darktable/files/patch-git-eac87cf0c41ef6d2190cd88cd9379a288edba1fa b/graphics/darktable/files/patch-git-eac87cf0c41ef6d2190cd88cd9379a288edba1fa new file mode 100644 index 000000000000..2f3bf38c170c --- /dev/null +++ b/graphics/darktable/files/patch-git-eac87cf0c41ef6d2190cd88cd9379a288edba1fa @@ -0,0 +1,30 @@ +From eac87cf0c41ef6d2190cd88cd9379a288edba1fa Mon Sep 17 00:00:00 2001 +From: Pascal Obry <pascal@obry.net> +Date: Fri, 27 Jun 2025 08:14:30 +0200 +Subject: [PATCH] Fix compilation when OpenMP is disabled. + +Fixes #19006. +--- + src/common/darktable.c | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/src/common/darktable.c b/src/common/darktable.c +index 11f86b0330a8..e5feaf63eddd 100644 +--- src/common/darktable.c ++++ b/src/common/darktable.c +@@ -1193,10 +1193,13 @@ int dt_init(int argc, char *argv[], const gboolean init_gui, const gboolean load + if(desired > possible) + dt_print(DT_DEBUG_ALWAYS, + "[dt_init --threads] requested %d ompthreads restricted to %d", +- desired, possible); ++ desired, possible); ++#ifdef _OPENMP + dt_print(DT_DEBUG_ALWAYS, + "[dt_init --threads] using %d threads of %d for openmp parallel sections %s", +- darktable.num_openmp_threads, (int)dt_get_num_procs(), omp_get_dynamic() ? "(dynamic)" : "(static)"); ++ darktable.num_openmp_threads, (int)dt_get_num_procs(), ++ omp_get_dynamic() ? "(dynamic)" : "(static)"); ++#endif + k++; + argv[k-1] = NULL; + argv[k] = NULL; diff --git a/graphics/darktable/pkg-plist b/graphics/darktable/pkg-plist index 89d93ee37b90..8cfa8b9195b8 100644 --- a/graphics/darktable/pkg-plist +++ b/graphics/darktable/pkg-plist @@ -90,6 +90,7 @@ lib/darktable/plugins/liboverexposed.so lib/darktable/plugins/liboverlay.so lib/darktable/plugins/libprimaries.so lib/darktable/plugins/libprofile_gamma.so +lib/darktable/plugins/librasterfile.so lib/darktable/plugins/librawdenoise.so lib/darktable/plugins/librawoverexposed.so lib/darktable/plugins/librawprepare.so @@ -236,7 +237,6 @@ share/applications/org.darktable.darktable.desktop %%DATADIR%%/lua/darktable/debug.lua %%DATADIR%%/luarc %%DATADIR%%/noiseprofiles.json -%%DATADIR%%/pixmaps/clock.svg %%DATADIR%%/pixmaps/darktable.svg %%DATADIR%%/pixmaps/dt_logo_128x128.png %%DATADIR%%/pixmaps/dt_text.svg @@ -900,6 +900,30 @@ share/applications/org.darktable.darktable.desktop %%DATADIR%%/styles/darktable_Sony_ZV-1.dtstyle %%DATADIR%%/styles/darktable_Sony_ZV-E1.dtstyle %%DATADIR%%/styles/darktable_Sony_ZV-E10.dtstyle +%%DATADIR%%/styles/examples_colors_autumn.dtstyle +%%DATADIR%%/styles/examples_colors_blue LED lighting fix (strong).dtstyle +%%DATADIR%%/styles/examples_colors_blue LED lighting fix.dtstyle +%%DATADIR%%/styles/examples_colors_extreme saturation.dtstyle +%%DATADIR%%/styles/examples_colors_faded.dtstyle +%%DATADIR%%/styles/examples_colors_pastels.dtstyle +%%DATADIR%%/styles/examples_colors_sepia.dtstyle +%%DATADIR%%/styles/examples_contrast and sharpness_dehaze (strong, luminance only).dtstyle +%%DATADIR%%/styles/examples_contrast and sharpness_extreme local contrast.dtstyle +%%DATADIR%%/styles/examples_contrast and sharpness_sharpen finest details.dtstyle +%%DATADIR%%/styles/examples_effects_4-up on US Letter paper.dtstyle +%%DATADIR%%/styles/examples_effects_day for night.dtstyle +%%DATADIR%%/styles/examples_effects_day for twilight.dtstyle +%%DATADIR%%/styles/examples_effects_fog.dtstyle +%%DATADIR%%/styles/examples_effects_motion blur.dtstyle +%%DATADIR%%/styles/examples_effects_red-eye reduction.dtstyle +%%DATADIR%%/styles/examples_spot color_blue.dtstyle +%%DATADIR%%/styles/examples_spot color_cyan.dtstyle +%%DATADIR%%/styles/examples_spot color_green.dtstyle +%%DATADIR%%/styles/examples_spot color_magenta.dtstyle +%%DATADIR%%/styles/examples_spot color_orange.dtstyle +%%DATADIR%%/styles/examples_spot color_purple.dtstyle +%%DATADIR%%/styles/examples_spot color_red.dtstyle +%%DATADIR%%/styles/examples_spot color_yellow.dtstyle %%DATADIR%%/themes/darktable-elegant-dark.css %%DATADIR%%/themes/darktable-elegant-darker.css %%DATADIR%%/themes/darktable-elegant-grey.css @@ -946,12 +970,12 @@ share/icons/hicolor/scalable/apps/darktable.svg %%NLS%%share/locale/fi/LC_MESSAGES/darktable.mo %%NLS%%share/locale/fr/LC_MESSAGES/darktable.mo %%NLS%%share/locale/hu/LC_MESSAGES/darktable.mo +%%NLS%%share/locale/it/LC_MESSAGES/darktable.mo %%NLS%%share/locale/ja/LC_MESSAGES/darktable.mo %%NLS%%share/locale/nl/LC_MESSAGES/darktable.mo -%%NLS%%share/locale/pl/LC_MESSAGES/darktable.mo %%NLS%%share/locale/pt_BR/LC_MESSAGES/darktable.mo +%%NLS%%share/locale/ru/LC_MESSAGES/darktable.mo %%NLS%%share/locale/sl/LC_MESSAGES/darktable.mo -%%NLS%%share/locale/sv/LC_MESSAGES/darktable.mo %%NLS%%share/locale/sq/LC_MESSAGES/darktable.mo %%NLS%%share/locale/uk/LC_MESSAGES/darktable.mo %%NLS%%share/locale/zh_CN/LC_MESSAGES/darktable.mo diff --git a/graphics/djvulibre/Makefile b/graphics/djvulibre/Makefile index bfce4c9beaa0..009b574e3d52 100644 --- a/graphics/djvulibre/Makefile +++ b/graphics/djvulibre/Makefile @@ -1,6 +1,5 @@ PORTNAME= djvulibre -PORTVERSION= 3.5.28 -PORTREVISION= 4 +PORTVERSION= 3.5.29 CATEGORIES= graphics www MASTER_SITES= SF/djvu/DjVuLibre/${PORTVERSION} diff --git a/graphics/djvulibre/distinfo b/graphics/djvulibre/distinfo index b04e6577271d..17e318618c20 100644 --- a/graphics/djvulibre/distinfo +++ b/graphics/djvulibre/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1613156151 -SHA256 (djvulibre-3.5.28.tar.gz) = fcd009ea7654fde5a83600eb80757bd3a76998e47d13c66b54c8db849f8f2edc -SIZE (djvulibre-3.5.28.tar.gz) = 3701161 +TIMESTAMP = 1751742375 +SHA256 (djvulibre-3.5.29.tar.gz) = d3b4b03ae2bdca8516a36ef6eb27b777f0528c9eda26745d9962824a3fdfeccf +SIZE (djvulibre-3.5.29.tar.gz) = 3716911 diff --git a/graphics/djvulibre/pkg-plist b/graphics/djvulibre/pkg-plist index 8bf6fb568e45..b333de705d94 100644 --- a/graphics/djvulibre/pkg-plist +++ b/graphics/djvulibre/pkg-plist @@ -21,7 +21,7 @@ include/libdjvu/ddjvuapi.h include/libdjvu/miniexp.h lib/libdjvulibre.so lib/libdjvulibre.so.21 -lib/libdjvulibre.so.21.7.0 +lib/libdjvulibre.so.21.8.0 libdata/pkgconfig/ddjvuapi.pc %%ANY2DJVU%%share/man/man1/any2djvu.1.gz share/man/man1/bzz.1.gz diff --git a/graphics/drawio/Makefile b/graphics/drawio/Makefile index f2ecf89cf3da..6df4bd569854 100644 --- a/graphics/drawio/Makefile +++ b/graphics/drawio/Makefile @@ -1,6 +1,6 @@ PORTNAME= drawio PORTVERSION= 26.2.15 -PORTREVISION= 7 +PORTREVISION= 9 DISTVERSIONPREFIX= x86_64- CATEGORIES= graphics MASTER_SITES= https://github.com/jgraph/drawio-desktop/releases/download/v${PORTVERSION}/ diff --git a/graphics/f3d/Makefile b/graphics/f3d/Makefile index b5d60c73b92c..9b69bde42b92 100644 --- a/graphics/f3d/Makefile +++ b/graphics/f3d/Makefile @@ -1,7 +1,6 @@ PORTNAME= f3d DISTVERSIONPREFIX= v -DISTVERSION= 3.1.0 -PORTREVISION= 4 +DISTVERSION= 3.2.0 CATEGORIES= graphics MAINTAINER= yuri@FreeBSD.org @@ -40,8 +39,8 @@ LDFLAGS+= -linotify # dependency descroptions are in https://f3d.app/doc/dev/BUILD.html OPTIONS_GROUP= MODULES PLUGINS OPTIONS_GROUP_MODULES= EXTERNAL_RENDERING RAYTRACING -OPTIONS_GROUP_PLUGINS= ALEMBIC ASSIMP DRACO EXODUS OCCT -OPTIONS_DEFAULT= ALEMBIC ASSIMP DRACO EXODUS OCCT +OPTIONS_GROUP_PLUGINS= ALEMBIC ASSIMP DRACO HDF OCCT VDB +OPTIONS_DEFAULT= ALEMBIC ASSIMP DRACO HDF OCCT # VDB OPTIONS_SUB= yes MODULES_DESC= Build modules: @@ -59,19 +58,23 @@ DRACO_DESC= Draco plugin DRACO_CMAKE_BOOL= F3D_PLUGIN_BUILD_DRACO DRACO_LIB_DEPENDS= libdraco.so:archivers/draco -EXODUS_DESC= ExodusII plugin -EXODUS_CMAKE_BOOL= F3D_PLUGIN_BUILD_EXODUS - EXTERNAL_RENDERING_DESC= External rendering module EXTERNAL_RENDERING_CMAKE_BOOL= F3D_MODULE_EXTERNAL_RENDERING EXTERNAL_RENDERING_BROKEN= Requires VTK::RenderingExternal enabled in VTK +HDF_DESC= Support for VTKHDF (.vtkhdf), ExodusII (.ex2), and NetCDF (.nc) file formats +HDF_CMAKE_BOOL= F3D_PLUGIN_BUILD_HDF + OCCT_DESC= OpenCASCADE plugin (for STEP and IGES files) OCCT_USES= localbase:ldflags OCCT_CMAKE_BOOL= F3D_PLUGIN_BUILD_OCCT OCCT_LIB_DEPENDS= libTKBRep.so:cad/opencascade OCCT_CMAKE_ON= -DOpenCASCADE_DIR=${LOCALBASE}/lib/cmake +VDB_DESC= VDB plugin +VDB_CMAKE_BOOL= F3D_PLUGIN_BUILD_VDB +VDB_BROKEN= depends on the VTK module IOOpenVD that can't be enabled because OpenVDB doesn't install required cmake files, see https://github.com/AcademySoftwareFoundation/openvdb/issues/2058 + RAYTRACING_DESC= Raytracing module RAYTRACING_CMAKE_BOOL= F3D_MODULE_RAYTRACING RAYTRACING_BROKEN= Requires VTK::RenderingRayTracing enabled in VTK diff --git a/graphics/f3d/distinfo b/graphics/f3d/distinfo index 531cd6078de7..4b7c92357910 100644 --- a/graphics/f3d/distinfo +++ b/graphics/f3d/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1748893025 -SHA256 (f3d-app-f3d-v3.1.0_GH0.tar.gz) = 93ba23078133122e929d9c1e2946c86da1f08fe56b9ffae40ebfd8185e91380a -SIZE (f3d-app-f3d-v3.1.0_GH0.tar.gz) = 61473994 +TIMESTAMP = 1752141480 +SHA256 (f3d-app-f3d-v3.2.0_GH0.tar.gz) = 2a3cff123821be41d99489e080a7153812e58a86598fa9f4988099660bf6a947 +SIZE (f3d-app-f3d-v3.2.0_GH0.tar.gz) = 68125944 diff --git a/graphics/f3d/files/patch-plugins_assimp_CMakeLists.txt b/graphics/f3d/files/patch-plugins_assimp_CMakeLists.txt deleted file mode 100644 index 1119e588b41b..000000000000 --- a/graphics/f3d/files/patch-plugins_assimp_CMakeLists.txt +++ /dev/null @@ -1,11 +0,0 @@ ---- plugins/assimp/CMakeLists.txt.orig 2025-06-02 22:44:41 UTC -+++ plugins/assimp/CMakeLists.txt -@@ -11,7 +11,7 @@ endif() - include(f3dPlugin) - endif() - --find_package(assimp 5.4.0 REQUIRED) -+find_package(assimp REQUIRED) - - set(F3D_ASSIMP_VERSION "${assimp_VERSION}" CACHE INTERNAL "") - message(STATUS "Plugin: assimp ${assimp_VERSION} found") diff --git a/graphics/f3d/pkg-plist b/graphics/f3d/pkg-plist index 9a973dfddcf4..77289080d9c5 100644 --- a/graphics/f3d/pkg-plist +++ b/graphics/f3d/pkg-plist @@ -25,12 +25,12 @@ lib/cmake/f3d/f3dTargets.cmake lib/cmake/f3d/library-config.cmake lib/libf3d.so lib/libf3d.so.3 -lib/libf3d.so.3.1 +lib/libf3d.so.3.2 lib/libvtkext.so %%ALEMBIC%%share/applications/f3d-plugin-alembic.desktop %%ASSIMP%%share/applications/f3d-plugin-assimp.desktop %%DRACO%%share/applications/f3d-plugin-draco.desktop -%%EXODUS%%share/applications/f3d-plugin-exodus.desktop +%%HDF%%share/applications/f3d-plugin-hdf.desktop share/applications/f3d-plugin-native.desktop %%OCCT%%share/applications/f3d-plugin-occt.desktop share/applications/f3d.desktop @@ -41,20 +41,20 @@ share/doc/F3D/THIRD_PARTY_LICENSES.md %%ALEMBIC%%%%DATADIR%%/configs/config.d/10_alembic.json %%ASSIMP%%%%DATADIR%%/configs/config.d/10_assimp.json %%DRACO%%%%DATADIR%%/configs/config.d/10_draco.json -%%EXODUS%%%%DATADIR%%/configs/config.d/10_exodus.json +%%HDF%%%%DATADIR%%/configs/config.d/10_hdf.json %%DATADIR%%/configs/config.d/10_native.json %%OCCT%%%%DATADIR%%/configs/config.d/10_occt.json %%DATADIR%%/configs/thumbnail.d/05_all.json %%ALEMBIC%%%%DATADIR%%/configs/thumbnail.d/10_alembic.json %%ASSIMP%%%%DATADIR%%/configs/thumbnail.d/10_assimp.json %%DRACO%%%%DATADIR%%/configs/thumbnail.d/10_draco.json -%%EXODUS%%%%DATADIR%%/configs/thumbnail.d/10_exodus.json +%%HDF%%%%DATADIR%%/configs/thumbnail.d/10_hdf.json %%DATADIR%%/configs/thumbnail.d/10_native.json %%OCCT%%%%DATADIR%%/configs/thumbnail.d/10_occt.json %%ALEMBIC%%%%DATADIR%%/plugins/alembic.json %%ASSIMP%%%%DATADIR%%/plugins/assimp.json %%DRACO%%%%DATADIR%%/plugins/draco.json -%%EXODUS%%%%DATADIR%%/plugins/exodus.json +%%HDF%%%%DATADIR%%/plugins/hdf.json %%DATADIR%%/plugins/native.json %%OCCT%%%%DATADIR%%/plugins/occt.json share/fish/vendor_completions.d/f3d.fish @@ -72,13 +72,13 @@ share/mime/packages/f3d-3d-image-formats.xml %%ALEMBIC%%share/mime/packages/f3d-alembic-formats.xml %%ASSIMP%%share/mime/packages/f3d-assimp-formats.xml %%DRACO%%share/mime/packages/f3d-draco-formats.xml -%%EXODUS%%share/mime/packages/f3d-exodus-formats.xml %%OCCT%%share/mime/packages/f3d-occt-formats.xml +%%HDF%%share/mime/packages/f3d-hdf-formats.xml share/mime/packages/f3d-vtk-formats.xml %%ALEMBIC%%share/thumbnailers/f3d-plugin-alembic.thumbnailer %%ASSIMP%%share/thumbnailers/f3d-plugin-assimp.thumbnailer %%DRACO%%share/thumbnailers/f3d-plugin-draco.thumbnailer -%%EXODUS%%share/thumbnailers/f3d-plugin-exodus.thumbnailer +%%HDF%%share/thumbnailers/f3d-plugin-hdf.thumbnailer share/thumbnailers/f3d-plugin-native.thumbnailer %%OCCT%%share/thumbnailers/f3d-plugin-occt.thumbnailer share/zsh/site-functions/_f3d diff --git a/graphics/filament/Makefile b/graphics/filament/Makefile index 05a58e344472..c0e27a92e4d8 100644 --- a/graphics/filament/Makefile +++ b/graphics/filament/Makefile @@ -1,11 +1,12 @@ PORTNAME= filament DISTVERSIONPREFIX= v -DISTVERSION= 1.59.3 +DISTVERSION= 1.62.1 CATEGORIES= graphics MAINTAINER= yuri@FreeBSD.org COMMENT= Real-time physically based rendering engine -WWW= https://google.github.io/filament/ +WWW= https://google.github.io/filament/ \ + https://github.com/google/filament LICENSE= APACHE20 LICENSE_FILE= ${WRKSRC}/LICENSE @@ -52,5 +53,9 @@ post-install: @cd ${STAGEDIR}${PREFIX} && ${RM} -r README.md LICENSE docs # remove conflicting file, see https://github.com/google/filament/issues/5957 @${RM} ${STAGEDIR}${PREFIX}/lib/libzstd.a + # remove files installed by the improperly bundled spirv-tools package, see https://github.com/google/filament/issues/8965 + @${FIND} ${STAGEDIR}${PREFIX} -iname "*spirv*" -delete + @${RM} -r ${STAGEDIR}${PREFIX}/include/spirv-tools # workaround for the find(1) -delete bug, see https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=288277 + @${RMDIR} ${STAGEDIR}${PREFIX}/lib/cmake .include <bsd.port.mk> diff --git a/graphics/filament/distinfo b/graphics/filament/distinfo index 49e9483e7ac2..b63cbf81b763 100644 --- a/graphics/filament/distinfo +++ b/graphics/filament/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1745309194 -SHA256 (google-filament-v1.59.3_GH0.tar.gz) = 897d1880d1573b3a8452e7df5a82f8fb82a35f997775edfa44ee26cbcedbdafb -SIZE (google-filament-v1.59.3_GH0.tar.gz) = 759893829 +TIMESTAMP = 1752596311 +SHA256 (google-filament-v1.62.1_GH0.tar.gz) = 7cd0e8a6e050a9346729924823c00155ac2312635c60cb65714142f17ec52231 +SIZE (google-filament-v1.62.1_GH0.tar.gz) = 764525864 diff --git a/graphics/filament/files/patch-CMakeLists.txt b/graphics/filament/files/patch-CMakeLists.txt index 40f6db9d930b..108eeb9035b6 100644 --- a/graphics/filament/files/patch-CMakeLists.txt +++ b/graphics/filament/files/patch-CMakeLists.txt @@ -1,6 +1,6 @@ ---- CMakeLists.txt.orig 2024-06-03 18:10:41 UTC +--- CMakeLists.txt.orig 2025-07-14 23:11:31 UTC +++ CMakeLists.txt -@@ -87,7 +87,7 @@ find_program(CCACHE_PROGRAM ccache) +@@ -101,7 +101,7 @@ find_program(CCACHE_PROGRAM ccache) # Support for ccache # ================================================================================================== find_program(CCACHE_PROGRAM ccache) diff --git a/graphics/filament/files/patch-filament_backend_src_PlatformFactory.cpp b/graphics/filament/files/patch-filament_backend_src_PlatformFactory.cpp index fd6961590dba..bded9df8b8d5 100644 --- a/graphics/filament/files/patch-filament_backend_src_PlatformFactory.cpp +++ b/graphics/filament/files/patch-filament_backend_src_PlatformFactory.cpp @@ -1,6 +1,6 @@ ---- filament/backend/src/PlatformFactory.cpp.orig 2025-03-31 22:23:27 UTC +--- filament/backend/src/PlatformFactory.cpp.orig 2025-07-14 23:11:31 UTC +++ filament/backend/src/PlatformFactory.cpp -@@ -41,7 +41,7 @@ +@@ -42,7 +42,7 @@ #include <backend/platforms/PlatformCocoaGL.h> #endif #endif @@ -9,7 +9,7 @@ #if defined(FILAMENT_SUPPORTS_X11) #if defined(FILAMENT_SUPPORTS_OPENGL) && !defined(FILAMENT_USE_EXTERNAL_GLES3) #include "backend/platforms/PlatformGLX.h" -@@ -151,7 +151,7 @@ Platform* PlatformFactory::create(Backend* backend) no +@@ -152,7 +152,7 @@ Platform* PlatformFactory::create(Backend* backend) no #else return new PlatformCocoaGL(); #endif diff --git a/graphics/filament/files/patch-libs_bluevk_include_bluevk_BlueVK.h b/graphics/filament/files/patch-libs_bluevk_include_bluevk_BlueVK.h index 3af2733630ee..f084580c50df 100644 --- a/graphics/filament/files/patch-libs_bluevk_include_bluevk_BlueVK.h +++ b/graphics/filament/files/patch-libs_bluevk_include_bluevk_BlueVK.h @@ -1,8 +1,8 @@ ---- libs/bluevk/include/bluevk/BlueVK.h.orig 2022-11-11 07:03:46 UTC +--- libs/bluevk/include/bluevk/BlueVK.h.orig 2025-07-14 23:11:31 UTC +++ libs/bluevk/include/bluevk/BlueVK.h @@ -42,7 +42,7 @@ #define VK_USE_PLATFORM_ANDROID_KHR 1 - #elif defined(IOS) + #elif defined(FILAMENT_IOS) #define VK_USE_PLATFORM_IOS_MVK 1 - #elif defined(__linux__) + #elif defined(__linux__) || defined(__FreeBSD__) diff --git a/graphics/filament/files/patch-libs_utils_CMakeLists.txt b/graphics/filament/files/patch-libs_utils_CMakeLists.txt index 4e45fbc7aa4d..8bf9c71d2a66 100644 --- a/graphics/filament/files/patch-libs_utils_CMakeLists.txt +++ b/graphics/filament/files/patch-libs_utils_CMakeLists.txt @@ -1,7 +1,7 @@ ---- libs/utils/CMakeLists.txt.orig 2023-05-30 23:22:31 UTC +--- libs/utils/CMakeLists.txt.orig 2025-07-14 23:11:31 UTC +++ libs/utils/CMakeLists.txt -@@ -82,8 +82,10 @@ if (ANDROID) - list(APPEND SRCS src/android/Systrace.cpp) +@@ -90,8 +90,10 @@ if (LINUX OR ANDROID) + list(APPEND SRCS src/android/Tracing.cpp) endif() if (LINUX OR ANDROID) - list(APPEND SRCS src/linux/Condition.cpp) diff --git a/graphics/filament/files/patch-third__party_perfetto_perfetto_perfetto.cc b/graphics/filament/files/patch-third__party_perfetto_perfetto_perfetto.cc new file mode 100644 index 000000000000..f760a992860e --- /dev/null +++ b/graphics/filament/files/patch-third__party_perfetto_perfetto_perfetto.cc @@ -0,0 +1,40 @@ +--- third_party/perfetto/perfetto/perfetto.cc.orig 2025-07-16 02:06:53 UTC ++++ third_party/perfetto/perfetto/perfetto.cc +@@ -14,6 +14,8 @@ + // + // This file is automatically generated by gen_amalgamated. Do not edit. + ++#include <sys/ucred.h> ++ + // gen_amalgamated: predefined macros + #if !defined(PERFETTO_IMPLEMENTATION) + #define PERFETTO_IMPLEMENTATION +@@ -42125,7 +42127,7 @@ ClockSnapshotVector CaptureClockSnapshots() { + {0, 0}}, + {CLOCK_REALTIME, protos::pbzero::BUILTIN_CLOCK_REALTIME, {0, 0}}, + {CLOCK_MONOTONIC, protos::pbzero::BUILTIN_CLOCK_MONOTONIC, {0, 0}}, +- {CLOCK_MONOTONIC_RAW, ++ {CLOCK_MONOTONIC, + protos::pbzero::BUILTIN_CLOCK_MONOTONIC_RAW, + {0, 0}}, + }; +@@ -58913,8 +58915,8 @@ void UnixSocket::ReadPeerCredentialsPosix() { + int res = getpeereid(fd, &peer_uid_, nullptr); + PERFETTO_CHECK(res == 0); + // There is no pid when obtaining peer credentials for QNX +-#elif PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \ +- PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) ++#elif !defined(__FreeBSD__) && (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \ ++ PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)) + struct ucred user_cred; + socklen_t len = sizeof(user_cred); + int fd = sock_raw_.fd(); +@@ -58922,7 +58924,7 @@ void UnixSocket::ReadPeerCredentialsPosix() { + PERFETTO_CHECK(res == 0); + peer_uid_ = user_cred.uid; + peer_pid_ = user_cred.pid; +-#elif PERFETTO_BUILDFLAG(PERFETTO_OS_APPLE) ++#elif defined(__FreeBSD__) || PERFETTO_BUILDFLAG(PERFETTO_OS_APPLE) + struct xucred user_cred; + socklen_t len = sizeof(user_cred); + int res = getsockopt(sock_raw_.fd(), 0, LOCAL_PEERCRED, &user_cred, &len); diff --git a/graphics/filament/files/patch-third__party_perfetto_perfetto_perfetto.h b/graphics/filament/files/patch-third__party_perfetto_perfetto_perfetto.h new file mode 100644 index 000000000000..a1c99bc6e26e --- /dev/null +++ b/graphics/filament/files/patch-third__party_perfetto_perfetto_perfetto.h @@ -0,0 +1,42 @@ +--- third_party/perfetto/perfetto/perfetto.h.orig 2025-07-15 17:16:00 UTC ++++ third_party/perfetto/perfetto/perfetto.h +@@ -34,6 +34,8 @@ + * limitations under the License. + */ + ++#include <pthread_np.h> ++ + // Generated by write_buildflag_header.py + + // fix_include_guards: off +@@ -129,10 +131,10 @@ + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_MAC() 1 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_IOS() 0 + #endif +-#elif defined(__linux__) ++#elif defined(__linux__) || defined(__FreeBSD__) + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_ANDROID() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX() 1 +-#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX_BUT_NOT_QNX() 1 ++#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX_BUT_NOT_QNX() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_WIN() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_APPLE() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_MAC() 0 +@@ -1075,7 +1077,7 @@ inline TimeNanos GetWallTimeRawNs() { + } + + inline TimeNanos GetWallTimeRawNs() { +- return GetTimeInternalNs(CLOCK_MONOTONIC_RAW); ++ return GetTimeInternalNs(CLOCK_MONOTONIC); + } + + inline TimeNanos GetThreadCPUTimeNs() { +@@ -8167,7 +8169,7 @@ inline PlatformThreadId GetThreadId() { + #elif PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) + using PlatformThreadId = pid_t; + inline PlatformThreadId GetThreadId() { +- return static_cast<pid_t>(syscall(__NR_gettid)); ++ return static_cast<pid_t>(pthread_getthreadid_np()); + } + #elif PERFETTO_BUILDFLAG(PERFETTO_OS_FUCHSIA) + using PlatformThreadId = zx_koid_t; diff --git a/graphics/filament/pkg-plist b/graphics/filament/pkg-plist index 25b8b2373291..3fd3b702d3d7 100644 --- a/graphics/filament/pkg-plist +++ b/graphics/filament/pkg-plist @@ -17,16 +17,6 @@ bin/normal-blending bin/resgen bin/roughness-prefilter bin/specular-color -bin/spirv-as -bin/spirv-cfg -bin/spirv-dis -bin/spirv-lesspipe.sh -bin/spirv-link -bin/spirv-lint -bin/spirv-objdump -bin/spirv-opt -bin/spirv-reduce -bin/spirv-val bin/uberz include/backend/AcquiredImage.h include/backend/BufferDescriptor.h @@ -150,10 +140,6 @@ include/math/vec3.h include/math/vec4.h include/mathio/ostream.h include/mikktspace/mikktspace.h -include/spirv-tools/libspirv.h -include/spirv-tools/libspirv.hpp -include/spirv-tools/linker.hpp -include/spirv-tools/optimizer.hpp include/tsl/robin_growth_policy.h include/tsl/robin_hash.h include/tsl/robin_map.h @@ -171,6 +157,7 @@ include/utils/EntityManager.h include/utils/FixedCapacityVector.h include/utils/Invocable.h include/utils/Log.h +include/utils/Logger.h include/utils/Mutex.h include/utils/NameComponentManager.h include/utils/Panic.h @@ -197,34 +184,6 @@ include/viewer/AutomationSpec.h include/viewer/RemoteServer.h include/viewer/Settings.h include/viewer/ViewerGui.h -lib/cmake/SPIRV-Tools-diff/SPIRV-Tools-diffConfig.cmake -lib/cmake/SPIRV-Tools-diff/SPIRV-Tools-diffTargets-%%CMAKE_BUILD_TYPE%%.cmake -lib/cmake/SPIRV-Tools-diff/SPIRV-Tools-diffTargets.cmake -lib/cmake/SPIRV-Tools-link/SPIRV-Tools-linkConfig.cmake -lib/cmake/SPIRV-Tools-link/SPIRV-Tools-linkTargets-%%CMAKE_BUILD_TYPE%%.cmake -lib/cmake/SPIRV-Tools-link/SPIRV-Tools-linkTargets.cmake -lib/cmake/SPIRV-Tools-lint/SPIRV-Tools-lintConfig.cmake -lib/cmake/SPIRV-Tools-lint/SPIRV-Tools-lintTargets-%%CMAKE_BUILD_TYPE%%.cmake -lib/cmake/SPIRV-Tools-lint/SPIRV-Tools-lintTargets.cmake -lib/cmake/SPIRV-Tools-opt/SPIRV-Tools-optConfig.cmake -lib/cmake/SPIRV-Tools-opt/SPIRV-Tools-optTargets-%%CMAKE_BUILD_TYPE%%.cmake -lib/cmake/SPIRV-Tools-opt/SPIRV-Tools-optTargets.cmake -lib/cmake/SPIRV-Tools-reduce/SPIRV-Tools-reduceConfig.cmake -lib/cmake/SPIRV-Tools-reduce/SPIRV-Tools-reduceTarget-%%CMAKE_BUILD_TYPE%%.cmake -lib/cmake/SPIRV-Tools-reduce/SPIRV-Tools-reduceTarget.cmake -lib/cmake/SPIRV-Tools-tools/SPIRV-Tools-toolsConfig.cmake -lib/cmake/SPIRV-Tools-tools/SPIRV-Tools-toolsTargets-%%CMAKE_BUILD_TYPE%%.cmake -lib/cmake/SPIRV-Tools-tools/SPIRV-Tools-toolsTargets.cmake -lib/cmake/SPIRV-Tools/SPIRV-ToolsConfig.cmake -lib/cmake/SPIRV-Tools/SPIRV-ToolsTarget-%%CMAKE_BUILD_TYPE%%.cmake -lib/cmake/SPIRV-Tools/SPIRV-ToolsTarget.cmake -lib/libSPIRV-Tools-diff.a -lib/libSPIRV-Tools-link.a -lib/libSPIRV-Tools-lint.a -lib/libSPIRV-Tools-opt.a -lib/libSPIRV-Tools-reduce.a -lib/libSPIRV-Tools-shared.so -lib/libSPIRV-Tools.a lib/libabseil.a lib/libbackend.a lib/libbasis_transcoder.a @@ -249,6 +208,7 @@ lib/libktxreader.a lib/libmatdbg.a lib/libmeshoptimizer.a lib/libmikktspace.a +lib/libperfetto.a lib/libshaders.a lib/libsmol-v.a lib/libstb.a @@ -257,5 +217,3 @@ lib/libuberzlib.a lib/libutils.a lib/libviewer.a lib/libvkshaders.a -libdata/pkgconfig/SPIRV-Tools-shared.pc -libdata/pkgconfig/SPIRV-Tools.pc diff --git a/graphics/fractgen/Makefile b/graphics/fractgen/Makefile index e3b673a9b4fa..76261e0f6e24 100644 --- a/graphics/fractgen/Makefile +++ b/graphics/fractgen/Makefile @@ -1,5 +1,5 @@ PORTNAME= fractgen -DISTVERSION= 3.0.3 +DISTVERSION= 3.0.5 CATEGORIES= graphics MASTER_SITES= https://www.nntb.no/~dreibh/fractalgenerator/download/ diff --git a/graphics/fractgen/distinfo b/graphics/fractgen/distinfo index 7729ffa69ba0..4b12900c51e7 100644 --- a/graphics/fractgen/distinfo +++ b/graphics/fractgen/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1747127562 -SHA256 (fractgen-3.0.3.tar.xz) = 8bfa98708b71e86500aea953dedc9bc4ca4b0e59d1041683697ba5a63984a911 -SIZE (fractgen-3.0.3.tar.xz) = 341264 +TIMESTAMP = 1751736940 +SHA256 (fractgen-3.0.5.tar.xz) = e6144cfb556f38ffbf2fe29c2526155c0f5677e0e090bd22053fdc0dc00b355f +SIZE (fractgen-3.0.5.tar.xz) = 342408 diff --git a/graphics/gdal/Makefile b/graphics/gdal/Makefile index f8c5969a8b3a..7a20a59b31b5 100644 --- a/graphics/gdal/Makefile +++ b/graphics/gdal/Makefile @@ -1,6 +1,5 @@ PORTNAME= gdal -PORTVERSION= 3.11.0 -PORTREVISION= 1 +PORTVERSION= 3.11.3 CATEGORIES= graphics geography MASTER_SITES= https://download.osgeo.org/gdal/${PORTVERSION}/ \ LOCAL/sunpoet diff --git a/graphics/gdal/distinfo b/graphics/gdal/distinfo index e132da71acea..9e9a4f020e0f 100644 --- a/graphics/gdal/distinfo +++ b/graphics/gdal/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1747715310 -SHA256 (gdal-3.11.0.tar.xz) = ba1a17a74428bfd5c789ce293f59b6a3d8bfabab747431c33331ac0ac579ea71 -SIZE (gdal-3.11.0.tar.xz) = 9292588 +TIMESTAMP = 1752416410 +SHA256 (gdal-3.11.3.tar.xz) = ba0807729fa681eed55bb6d5588bb9e4bde2b691c46e8d6d375ff5eaf789b16a +SIZE (gdal-3.11.3.tar.xz) = 9313768 diff --git a/graphics/gdk-pixbuf2/pkg-plist b/graphics/gdk-pixbuf2/pkg-plist index a6d9d41d121f..77fd1e87f90a 100644 --- a/graphics/gdk-pixbuf2/pkg-plist +++ b/graphics/gdk-pixbuf2/pkg-plist @@ -277,7 +277,6 @@ libdata/pkgconfig/gdk-pixbuf-2.0.pc %%DOCS%%share/doc/gdk-pixdata/SourceCodePro-It.ttf.woff %%DOCS%%share/doc/gdk-pixdata/SourceCodePro-Regular.ttf.woff %%DOCS%%share/doc/gdk-pixdata/SourceCodePro-Semibold.ttf.woff -%%DOCS%%share/doc/gdk-pixdata/classes_hierarchy.html %%DOCS%%share/doc/gdk-pixdata/const.PIXBUF_MAGIC_NUMBER.html %%DOCS%%share/doc/gdk-pixdata/const.PIXDATA_HEADER_LENGTH.html %%DOCS%%share/doc/gdk-pixdata/flags.PixdataDumpType.html diff --git a/graphics/gegl/Makefile b/graphics/gegl/Makefile index b8bb13fa84b3..2ec905392421 100644 --- a/graphics/gegl/Makefile +++ b/graphics/gegl/Makefile @@ -1,6 +1,5 @@ PORTNAME= gegl -DISTVERSION= 0.4.58 -PORTREVISION= 3 +DISTVERSION= 0.4.62 CATEGORIES= graphics MASTER_SITES= GIMP @@ -41,7 +40,7 @@ MESON_ARGS= -Ddocs=false \ MESON_ARGS+= -Dopenmp=disabled .endif -GEGL_SHLIB= 0.457.1 +GEGL_SHLIB= 0.461.1 GEGL_VER= 0.4 PLIST_SUB+= GEGL_SHLIB=${GEGL_SHLIB} GEGL_VER=${GEGL_VER} diff --git a/graphics/gegl/distinfo b/graphics/gegl/distinfo index 9bec1ea7c920..6baf544fe586 100644 --- a/graphics/gegl/distinfo +++ b/graphics/gegl/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1742856432 -SHA256 (gegl-0.4.58.tar.xz) = d5678bbd5fe535941b82f965b97fcc9385ce936f70c982bd565a53d5519d1bff -SIZE (gegl-0.4.58.tar.xz) = 6020756 +TIMESTAMP = 1752052464 +SHA256 (gegl-0.4.62.tar.xz) = 5887576371ebf1d9e90797d10e4b9a7f1658228d4827583e79e1db3d94505c6c +SIZE (gegl-0.4.62.tar.xz) = 6025372 diff --git a/graphics/gexiv2/Makefile b/graphics/gexiv2/Makefile index b3720e749a57..8106e39f84d8 100644 --- a/graphics/gexiv2/Makefile +++ b/graphics/gexiv2/Makefile @@ -1,5 +1,5 @@ PORTNAME= gexiv2 -PORTVERSION= 0.14.5 +PORTVERSION= 0.14.6 CATEGORIES= graphics MASTER_SITES= GNOME diff --git a/graphics/gexiv2/distinfo b/graphics/gexiv2/distinfo index 8a28b4a32020..d8d3025137a5 100644 --- a/graphics/gexiv2/distinfo +++ b/graphics/gexiv2/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1748189417 -SHA256 (gexiv2-0.14.5.tar.xz) = 0913c53daabab1f1ab586afd55bb55370796f2b8abcc6e37640ab7704ad99ce1 -SIZE (gexiv2-0.14.5.tar.xz) = 390860 +TIMESTAMP = 1751909719 +SHA256 (gexiv2-0.14.6.tar.xz) = 606c28aaae7b1f3ef5c8eabe5e7dffd7c5a1c866d25b7671fb847fe287a72b8b +SIZE (gexiv2-0.14.6.tar.xz) = 391436 diff --git a/graphics/gimp3-app/Makefile b/graphics/gimp3-app/Makefile index 5cfd19b7bf98..e8f8239db386 100644 --- a/graphics/gimp3-app/Makefile +++ b/graphics/gimp3-app/Makefile @@ -1,6 +1,5 @@ PORTNAME= gimp -DISTVERSION= 3.0.2 -PORTREVISION= 1 +DISTVERSION= 3.0.4 CATEGORIES?= graphics gnome MASTER_SITES= GIMP/gimp/v${PORTVERSION:R} PKGNAMESUFFIX= 3-app @@ -80,8 +79,8 @@ MESON_ARGS= -Dappdata-test=disabled \ OPTIONS_DEFINE?= AALIB GHOSTSCRIPT HEIF HELP OPENJPEG JXL LIBMNG WMF DOCS VALA CFITSIO OPTIONS_DEFAULT?= AALIB GHOSTSCRIPT HEIF OPENJPEG JXL WMF DOCS VALA LUA CFITSIO -OPTIONS_RADIO= SCRIPTS -OPTIONS_RADIO_SCRIPTS= LUA LUAJIT +OPTIONS_SINGLE= SCRIPTS +OPTIONS_SINGLE_SCRIPTS= LUA LUAJIT LUA_NONE OPTIONS_SUB= yes AALIB_LIB_DEPENDS= libaa.so:graphics/aalib @@ -121,11 +120,14 @@ VALA_USES= vala:build VALA_MESON_ENABLED= vala LUA_USES= lua:51 -LUA_MESON_TRUE= lua +LUA_BUILD_DEPENDS= ${LUA_REFMODLIBDIR}/lgi/corelgilua${LUA_VER_STR}.so:devel/lua-lgi@${LUA_FLAVOR} +LUA_RUN_DEPENDS= ${LUA_REFMODLIBDIR}/lgi/corelgilua${LUA_VER_STR}.so:devel/lua-lgi@${LUA_FLAVOR} LUAJIT_DESC?= Lua scripting language support via Luajit LUAJIT_USES= luajit -LUAJIT_MESON_TRUE= lua + +LUA_NONE_DESC?= Disable Lua scripting language support +LUA_NONE_MESON_FALSE= lua LIBS+= -lexecinfo -lm CPE_PRODUCT= gimp @@ -134,12 +136,21 @@ CPE_VENDOR= gnu SHEBANG_FILES= plug-ins/python/*.py \ plug-ins/python/python-console/*.py \ extensions/goat-exercises/*.py \ - extensions/goat-exercises/*.js + extensions/goat-exercises/*.js \ + extensions/goat-exercises/*.lua SHEBANG_LANG+= gjs PLIST_SUB+= BINVER=${PORTVERSION:R:R} ABIVER=${PORTVERSION:R} SHLIBVER=${PORTVERSION:E} +.include <bsd.port.options.mk> + +.if ${PORT_OPTIONS:MLUA} || ${PORT_OPTIONS:MLUAJIT} +PLIST_SUB+= LUASCRIPTS="" +.else +PLIST_SUB+= LUASCRIPTS="@comment " +.endif + #post-patch: #.for s in 16 22 24 32 48 64 256 # @${CP} ${WRKSRC}/desktop/${s}x${s}/gimp.png ${WRKSRC}/desktop/${s}x${s}/gimp3.png diff --git a/graphics/gimp3-app/distinfo b/graphics/gimp3-app/distinfo index 7b8033429275..d3ecf51f1c19 100644 --- a/graphics/gimp3-app/distinfo +++ b/graphics/gimp3-app/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1742896924 -SHA256 (gimp-3.0.2.tar.xz) = 546ddc30cb2d0e79123c7fcb4d78211e1ee7a6aace91a6a0ad8cbcbf6ea571a2 -SIZE (gimp-3.0.2.tar.xz) = 27019468 +TIMESTAMP = 1752051281 +SHA256 (gimp-3.0.4.tar.xz) = 8caa2ec275bf09326575654ac276afc083f8491e7cca45d19cf29e696aecab25 +SIZE (gimp-3.0.4.tar.xz) = 27060240 diff --git a/graphics/gimp3-app/files/patch-meson.build b/graphics/gimp3-app/files/patch-meson.build new file mode 100644 index 000000000000..7c786ab3116a --- /dev/null +++ b/graphics/gimp3-app/files/patch-meson.build @@ -0,0 +1,20 @@ +--- meson.build.orig 2025-05-17 22:51:03 UTC ++++ meson.build +@@ -1208,7 +1208,7 @@ if have_lua + if have_lua + have_lua_lgi = false + +- foreach lua_bin : [ 'luajit', 'lua5.1', 'lua-5.1', 'lua' ] ++ foreach lua_bin : [ 'luajit', 'lua51', 'lua-5.1', 'lua' ] + lua = find_program(lua_bin, required: false) + + if lua.found() and meson.can_run_host_binaries() +@@ -1247,7 +1247,7 @@ if have_lua + if is_supported_lua + have_lua_lgi = run_command(lua, '-e', + ''' +- local lgi = require 'lgi' ++ local lgi = require("lgi") + ''', + check: false).returncode() == 0 + endif diff --git a/graphics/gimp3-app/pkg-plist b/graphics/gimp3-app/pkg-plist index ca98162cec2f..106dbf39c02d 100644 --- a/graphics/gimp3-app/pkg-plist +++ b/graphics/gimp3-app/pkg-plist @@ -264,6 +264,7 @@ lib/gimp/%%ABIVER%%/extensions/org.gimp.extension.goat-exercises/goat-exercise-c lib/gimp/%%ABIVER%%/extensions/org.gimp.extension.goat-exercises/goat-exercise-c.c lib/gimp/%%ABIVER%%/extensions/org.gimp.extension.goat-exercises/goat-exercise-gjs.js lib/gimp/%%ABIVER%%/extensions/org.gimp.extension.goat-exercises/goat-exercise-py3.py +%%LUASCRIPTS%%lib/gimp/%%ABIVER%%/extensions/org.gimp.extension.goat-exercises/goat-exercise-lua.lua %%VALA%%lib/gimp/%%ABIVER%%/extensions/org.gimp.extension.goat-exercises/goat-exercise-vala %%VALA%%lib/gimp/%%ABIVER%%/extensions/org.gimp.extension.goat-exercises/goat-exercise-vala.vala lib/gimp/%%ABIVER%%/extensions/org.gimp.extension.goat-exercises/locale/ar/LC_MESSAGES/org.gimp.extension.goat-exercises.mo @@ -335,6 +336,7 @@ lib/gimp/%%ABIVER%%/extensions/org.gimp.extension.goat-exercises/locale/zh_HK/LC lib/gimp/%%ABIVER%%/extensions/org.gimp.extension.goat-exercises/locale/zh_TW/LC_MESSAGES/org.gimp.extension.goat-exercises.mo lib/gimp/%%ABIVER%%/extensions/org.gimp.extension.goat-exercises/org.gimp.extension.goat-exercises.metainfo.xml lib/gimp/%%ABIVER%%/interpreters/default.interp +%%LUASCRIPTS%%lib/gimp/%%ABIVER%%/interpreters/lua.interp lib/gimp/%%ABIVER%%/modules/libcolor-selector-cmyk.so lib/gimp/%%ABIVER%%/modules/libcolor-selector-water.so lib/gimp/%%ABIVER%%/modules/libcolor-selector-wheel.so @@ -375,7 +377,7 @@ lib/gimp/%%ABIVER%%/plug-ins/file-dicom/file-dicom lib/gimp/%%ABIVER%%/plug-ins/file-exr/file-exr lib/gimp/%%ABIVER%%/plug-ins/file-farbfeld/file-farbfeld lib/gimp/%%ABIVER%%/plug-ins/file-faxg3/file-faxg3 -lib/gimp/%%ABIVER%%/plug-ins/file-fits/file-fits +%%CFITSIO%%lib/gimp/%%ABIVER%%/plug-ins/file-fits/file-fits lib/gimp/%%ABIVER%%/plug-ins/file-fli/file-fli lib/gimp/%%ABIVER%%/plug-ins/file-gbr/file-gbr lib/gimp/%%ABIVER%%/plug-ins/file-gegl/file-gegl @@ -5106,7 +5108,7 @@ libexec/gimp-debug-tool-%%ABIVER%% %%DATADIR%%/%%ABIVER%%/icons/hicolor/scalable/actions/switch-off-symbolic.svg %%DATADIR%%/%%ABIVER%%/icons/hicolor/scalable/actions/switch-on-symbolic.svg %%DATADIR%%/%%ABIVER%%/icons/hicolor/scalable/status/software-update-available-symbolic.svg -%%DATADIR%%/%%ABIVER%%/images/gimp-devel-logo.png +%%PORTDOCS%%%%DATADIR%%/%%ABIVER%%/images/gimp-devel-logo.png %%DATADIR%%/%%ABIVER%%/images/gimp-logo.png %%DATADIR%%/%%ABIVER%%/images/gimp-splash.png %%DATADIR%%/%%ABIVER%%/menus/app-menu.ui diff --git a/graphics/goocanvasmm2/Makefile b/graphics/goocanvasmm2/Makefile index 5cdec45dbdfd..dd2bce32d570 100644 --- a/graphics/goocanvasmm2/Makefile +++ b/graphics/goocanvasmm2/Makefile @@ -5,7 +5,7 @@ CATEGORIES= graphics MASTER_SITES= GNOME PKGNAMESUFFIX= 2 -MAINTAINER= kwm@FreeBSD.org +MAINTAINER= ports@FreeBSD.org COMMENT= C++ bindings for the goocanvas widget for GTK WWW= https://sourceforge.net/projects/goocanvas/ diff --git a/graphics/gscan2pdf/Makefile b/graphics/gscan2pdf/Makefile index 75b68da87c9f..f2c840acc459 100644 --- a/graphics/gscan2pdf/Makefile +++ b/graphics/gscan2pdf/Makefile @@ -1,6 +1,6 @@ PORTNAME= gscan2pdf PORTVERSION= 2.13.4 -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= graphics MASTER_SITES= SF diff --git a/graphics/hyprgraphics/Makefile b/graphics/hyprgraphics/Makefile index b34809b9c076..66b4fc1069ea 100644 --- a/graphics/hyprgraphics/Makefile +++ b/graphics/hyprgraphics/Makefile @@ -1,9 +1,10 @@ PORTNAME= hyprgraphics DISTVERSIONPREFIX= v -DISTVERSION= 0.1.4 +DISTVERSION= 0.1.5 +PORTREVISION= 2 CATEGORIES= graphics -MAINTAINER= jbeich@FreeBSD.org +MAINTAINER= tagattie@FreeBSD.org COMMENT= Hyprland graphics / resource utilities WWW= https://github.com/hyprwm/hyprgraphics diff --git a/graphics/hyprgraphics/distinfo b/graphics/hyprgraphics/distinfo index 1dad374865e8..7ff976cbdc91 100644 --- a/graphics/hyprgraphics/distinfo +++ b/graphics/hyprgraphics/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1750621377 -SHA256 (hyprwm-hyprgraphics-v0.1.4_GH0.tar.gz) = 8b4662a0e687351da703a19e9cd9fdbe4b4b053e7380957584cda112c96feb9f -SIZE (hyprwm-hyprgraphics-v0.1.4_GH0.tar.gz) = 425677 +TIMESTAMP = 1752149140 +SHA256 (hyprwm-hyprgraphics-v0.1.5_GH0.tar.gz) = 03bdd5a6e456c31cc17f973656326220f94e58a5f4ab33b2450ccb5d6a697a4c +SIZE (hyprwm-hyprgraphics-v0.1.5_GH0.tar.gz) = 426523 diff --git a/graphics/inkscape/Makefile b/graphics/inkscape/Makefile index 642c7c60f676..9f4e2d8f6b41 100644 --- a/graphics/inkscape/Makefile +++ b/graphics/inkscape/Makefile @@ -1,5 +1,6 @@ PORTNAME= inkscape DISTVERSION= 1.4.2 +PORTREVISION= 1 CATEGORIES= graphics gnome MASTER_SITES= https://media.inkscape.org/dl/resources/file/ @@ -36,7 +37,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}numpy>0:math/py-numpy@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}cachecontrol>0:www/py-cachecontrol@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}cssselect>0:www/py-cssselect@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}filelock>=3.7.1:sysutils/py-filelock@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}lxml>0:devel/py-lxml@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}lxml5>0:devel/py-lxml5@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}requests>0:www/py-requests@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}scour>0:textproc/py-scour@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}tinycss2>0:textproc/py-tinycss2@${PY_FLAVOR} \ diff --git a/graphics/jp/Makefile b/graphics/jp/Makefile index 8aa5670f72c6..0c6f3c74b258 100644 --- a/graphics/jp/Makefile +++ b/graphics/jp/Makefile @@ -1,6 +1,6 @@ PORTNAME= jp DISTVERSION= 1.1.12 -PORTREVISION= 29 +PORTREVISION= 30 CATEGORIES= graphics MAINTAINER= 0mp@FreeBSD.org diff --git a/graphics/kf6-kimageformats/Makefile b/graphics/kf6-kimageformats/Makefile index 486c61aae2d5..8dc08c060878 100644 --- a/graphics/kf6-kimageformats/Makefile +++ b/graphics/kf6-kimageformats/Makefile @@ -1,5 +1,6 @@ PORTNAME= kimageformats DISTVERSION= ${KDE_FRAMEWORKS_VERSION} +PORTREVISION= 1 CATEGORIES= graphics kde kde-frameworks COMMENT= Plugins to allow QImage to support extra file formats diff --git a/graphics/kf6-kimageformats/distinfo b/graphics/kf6-kimageformats/distinfo index f2b4436dc63f..7aecaa5016c6 100644 --- a/graphics/kf6-kimageformats/distinfo +++ b/graphics/kf6-kimageformats/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1749476624 -SHA256 (KDE/frameworks/6.15/kimageformats-6.15.0.tar.xz) = 2fab119c64f117026166f49840abe5c1efe3e8f9a10d966b3406ffb6a6084030 -SIZE (KDE/frameworks/6.15/kimageformats-6.15.0.tar.xz) = 28203696 +TIMESTAMP = 1752529509 +SHA256 (KDE/frameworks/6.16/kimageformats-6.16.0.tar.xz) = 86dfbb05ab845f7b19a7fec88e135d14e47af14dc1713d9fb391966510c1dc4b +SIZE (KDE/frameworks/6.16/kimageformats-6.16.0.tar.xz) = 28620588 diff --git a/graphics/kf6-kimageformats/pkg-plist b/graphics/kf6-kimageformats/pkg-plist index 8003f92ff524..c6220810c367 100644 --- a/graphics/kf6-kimageformats/pkg-plist +++ b/graphics/kf6-kimageformats/pkg-plist @@ -7,6 +7,7 @@ lib/cmake/KF6ImageFormats/KF6ImageFormatsConfigVersion.cmake %%OPENEXR%%%%QT_PLUGINDIR%%/imageformats/kimg_exr.so %%QT_PLUGINDIR%%/imageformats/kimg_hdr.so %%HEIF%%%%QT_PLUGINDIR%%/imageformats/kimg_heif.so +%%QT_PLUGINDIR%%/imageformats/kimg_iff.so %%QT_PLUGINDIR%%/imageformats/kimg_jp2.so %%JXL%%%%QT_PLUGINDIR%%/imageformats/kimg_jxl.so %%QT_PLUGINDIR%%/imageformats/kimg_kra.so diff --git a/graphics/kf6-kplotting/distinfo b/graphics/kf6-kplotting/distinfo index a29d1766ec1e..81188fd98953 100644 --- a/graphics/kf6-kplotting/distinfo +++ b/graphics/kf6-kplotting/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1749476624 -SHA256 (KDE/frameworks/6.15/kplotting-6.15.0.tar.xz) = 5f7105f015eee67acdeb8a96fb9448186a605b6273f0af89a055c2721cab59dc -SIZE (KDE/frameworks/6.15/kplotting-6.15.0.tar.xz) = 34032 +TIMESTAMP = 1752529510 +SHA256 (KDE/frameworks/6.16/kplotting-6.16.0.tar.xz) = a2117ed10b5c5992f9b160cb98bc53042cdd257de6b9b9f2f5ba4a6a5c00bd06 +SIZE (KDE/frameworks/6.16/kplotting-6.16.0.tar.xz) = 34032 diff --git a/graphics/kf6-kquickcharts/distinfo b/graphics/kf6-kquickcharts/distinfo index d50f42a0b6fd..61dbf55324cc 100644 --- a/graphics/kf6-kquickcharts/distinfo +++ b/graphics/kf6-kquickcharts/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1749832090 -SHA256 (KDE/frameworks/6.15/kquickcharts-6.15.0.tar.xz) = f9f2f4bea577fed8a7f1ddea34617efe74517a492e9c0721f02f2cc08fb6786d -SIZE (KDE/frameworks/6.15/kquickcharts-6.15.0.tar.xz) = 112060 +TIMESTAMP = 1752529511 +SHA256 (KDE/frameworks/6.16/kquickcharts-6.16.0.tar.xz) = 03a70fa5b5b1f098bbcc020dd1792b8c0b999d8be7ccd1b34b79f5b7a39f183d +SIZE (KDE/frameworks/6.16/kquickcharts-6.16.0.tar.xz) = 112100 diff --git a/graphics/kf6-ksvg/distinfo b/graphics/kf6-ksvg/distinfo index ab0052c6bab3..0def4105b456 100644 --- a/graphics/kf6-ksvg/distinfo +++ b/graphics/kf6-ksvg/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1749476625 -SHA256 (KDE/frameworks/6.15/ksvg-6.15.0.tar.xz) = 955c5ceb28879d10106cb807f4f259810c705bbbbddaf170af0d563fbd580197 -SIZE (KDE/frameworks/6.15/ksvg-6.15.0.tar.xz) = 83772 +TIMESTAMP = 1752529512 +SHA256 (KDE/frameworks/6.16/ksvg-6.16.0.tar.xz) = ee3bf0726e84137c131ccd5c61c17f08edc0c0d8e9fa27d26cd3a4524f5cf6c3 +SIZE (KDE/frameworks/6.16/ksvg-6.16.0.tar.xz) = 83764 diff --git a/graphics/kf6-prison/distinfo b/graphics/kf6-prison/distinfo index 9ac77c36f2ce..e73d6e8d2db2 100644 --- a/graphics/kf6-prison/distinfo +++ b/graphics/kf6-prison/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1749476625 -SHA256 (KDE/frameworks/6.15/prison-6.15.0.tar.xz) = 343f1dbc82fe6fddaad08b93a60048ed11a00c5c97fb2b30430d7199d614dfbf -SIZE (KDE/frameworks/6.15/prison-6.15.0.tar.xz) = 57380 +TIMESTAMP = 1752529512 +SHA256 (KDE/frameworks/6.16/prison-6.16.0.tar.xz) = 382b2b9e3a0055c34b60290352b8566a8bff75ca8735b9534a076383d6e4e510 +SIZE (KDE/frameworks/6.16/prison-6.16.0.tar.xz) = 57360 diff --git a/graphics/libmypaint/Makefile b/graphics/libmypaint/Makefile index 391a2a56ef64..cce8505134f6 100644 --- a/graphics/libmypaint/Makefile +++ b/graphics/libmypaint/Makefile @@ -4,7 +4,7 @@ PORTREVISION= 2 CATEGORIES= graphics MASTER_SITES= https://github.com/mypaint/libmypaint/releases/download/v${PORTVERSION}/ -MAINTAINER= kwm@FreeBSD.org +MAINTAINER= ports@FreeBSD.org COMMENT= Brush library from the MyPaint project WWW= http://mypaint.org/ diff --git a/graphics/mapserver/Makefile b/graphics/mapserver/Makefile index 04fd0725c71e..b2a9f1abd37a 100644 --- a/graphics/mapserver/Makefile +++ b/graphics/mapserver/Makefile @@ -1,6 +1,6 @@ PORTNAME= mapserver DISTVERSION= 8.4.0 -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= graphics www geography MASTER_SITES= https://download.osgeo.org/${PORTNAME}/ \ https://github.com/MapServer/MapServer/releases/download/rel-${DISTVERSION:S|.|-|g}/ diff --git a/graphics/mesa-devel/Makefile b/graphics/mesa-devel/Makefile index 22caa093d62c..983560017143 100644 --- a/graphics/mesa-devel/Makefile +++ b/graphics/mesa-devel/Makefile @@ -1,7 +1,6 @@ PORTNAME= mesa -DISTVERSION= 25.1-branchpoint-3684 -DISTVERSIONSUFFIX= -gec05d4b1faf -PORTREVISION= 1 +DISTVERSION= 25.2-branchpoint-37 +DISTVERSIONSUFFIX= -gafdb2c64de0 CATEGORIES= graphics PKGNAMESUFFIX= -devel @@ -113,6 +112,7 @@ OPENCL_LIB_DEPENDS= libLLVMSPIRVLib.so.${OPENCL_SOVERSION}:devel/spirv-llvm-tran OPENCL_RUN_DEPENDS= libclc-${LLVM_PORT:T}>0:devel/libclc@${LLVM_PORT:T} OPENCL_SOVERSION= ${LLVM_VERSION}${${LLVM_VERSION}>=18:?.1:} OPENCL_CONFIGURE_ENV= PKG_CONFIG_PATH="${LLVM_PREFIX}/libdata/pkgconfig" +OPENCL_MESON_FALSE= b_lundef # environ OPENCL_MESON_TRUE= gallium-rusticl OPENCL_IMPLIES= LLVM ${"${PORT_OPTIONS:Miris}":?iris:radeonsi} # any from OPTIONS_GROUP_GALLIUM diff --git a/graphics/mesa-devel/distinfo b/graphics/mesa-devel/distinfo index f72b76f65a6b..47511b643f96 100644 --- a/graphics/mesa-devel/distinfo +++ b/graphics/mesa-devel/distinfo @@ -1,6 +1,6 @@ -TIMESTAMP = 1751496736 -SHA256 (mesa-25.1-branchpoint-3684-gec05d4b1faf.tar.bz2) = 3885f8dbb6d0edc5136cb7cd8b57c3ebf2211c01689c3776a2fc5210d6f6516a -SIZE (mesa-25.1-branchpoint-3684-gec05d4b1faf.tar.bz2) = 58260181 +TIMESTAMP = 1752706603 +SHA256 (mesa-25.2-branchpoint-37-gafdb2c64de0.tar.bz2) = c32dcb64be41317a23bec1cd8054f988902310a21a7e3c5af6aa57e42c43cb33 +SIZE (mesa-25.2-branchpoint-37-gafdb2c64de0.tar.bz2) = 58353962 SHA256 (700efacda59c.patch) = 0d567fe737ad1404e1f12d7cd018826d9095c23835f1ed5aaa1c81cb58d3d008 SIZE (700efacda59c.patch) = 983 SHA256 (2930dcbb3329.patch) = f90ab77950ba1a56d165f0bc8a3cbd9c5f624bb5c67d1c7f337316027e8295e8 diff --git a/graphics/mupdf/Makefile b/graphics/mupdf/Makefile index 057881eb99c8..e1be24f4825c 100644 --- a/graphics/mupdf/Makefile +++ b/graphics/mupdf/Makefile @@ -1,5 +1,5 @@ PORTNAME= mupdf -DISTVERSION= 1.25.6 +DISTVERSION= 1.26.3 DISTVERSIONSUFFIX= -source PORTEPOCH= 1 CATEGORIES= graphics @@ -12,34 +12,41 @@ WWW= https://www.mupdf.com/ LICENSE= AGPLv3 LICENSE_FILE= ${WRKSRC}/COPYING -LIB_DEPENDS= libcurl.so:ftp/curl \ +BUILD_DEPENDS= ${LOCALBASE}/bin/ar:devel/binutils +LIB_DEPENDS= libbrotlidec.so:archivers/brotli \ + libbrotlienc.so:archivers/brotli \ + libcurl.so:ftp/curl \ libfreetype.so:print/freetype2 \ + libgumbo.so:devel/gumbo \ libharfbuzz.so:print/harfbuzz \ libjbig2dec.so:graphics/jbig2dec \ libopenjp2.so:graphics/openjpeg -USES= compiler:c++11-lang cpe gl gmake jpeg pkgconfig xorg +USES= compiler:c++20-lang cpe gl gmake jpeg pkgconfig ssl xorg CPE_VENDOR= artifex USE_GL= gl glut USE_LDCONFIG= yes USE_XORG= x11 xcursor xext xinerama xrandr -MAKE_ARGS= build=release \ +_VERSION_MINOR= ${DISTVERSION:E} +_VERSION_MAJOR= ${DISTVERSION:R:E} +MAKE_ARGS= AR=${LOCALBASE}/bin/ar \ + build=release \ mandir=${PREFIX}/share/man \ prefix=${PREFIX} \ - SOVERSION=${DISTVERSION} \ + shared=yes \ + USE_SYSTEM_LIBS=yes \ verbose=yes \ - XCFLAGS+="-I${WRKSRC}/include/mupdf -fPIC" \ - XLIBS+="-L${LOCALBASE}/lib -L${WRKSRC}/build/release" + XCFLAGS="${CFLAGS} -I${WRKSRC}/include/mupdf -fPIC" \ + XLIB_LDFLAGS="-Wl,-soname,libmupdf.so.${_VERSION_MAJOR}" \ + XLIBS="-L${LOCALBASE}/lib -L${WRKSRC}/build/release ${LDFLAGS}" ALL_TARGET= all extra-libs - -# pkg-config to avoid the conflict with openjpeg15 -CFLAGS+= `pkg-config --cflags libopenjp2` -LDFLAGS+= `pkg-config --libs libjpeg libopenjp2` -ljbig2dec +INSTALL_TARGET= install install-extra-apps BINARY_ALIAS= bash=/bin/sh -PLIST_SUB= SOVERSION=${PORTVERSION} +PLIST_SUB= VERSION_MAJOR=${_VERSION_MAJOR} \ + VERSION_MINOR=${_VERSION_MINOR} OPTIONS_DEFINE= DOCS JS SCROLL OPTIONS_DEFAULT= SCROLL @@ -52,18 +59,8 @@ JS_MAKE_ARGS= V8_PRESENT=1 \ V8LIBS=-lv8 SCROLL_EXTRA_PATCHES= ${FILESDIR}/scroll_hack-platform__x11__pdfapp.c -post-patch: - @${REINPLACE_CMD} -e 's/-pipe -O2//' -e 's/-ldl//' ${WRKSRC}/Makerules - post-install: ${MV} ${STAGEDIR}${PREFIX}/bin/mupdf-x11 \ ${STAGEDIR}${PREFIX}/bin/mupdf - ${INSTALL_PROGRAM} \ - ${WRKSRC}/build/release/muraster \ - ${STAGEDIR}${PREFIX}/bin - ${LN} -s libmupdf.so.${PORTVERSION} \ - ${STAGEDIR}${PREFIX}/lib/libmupdf.so - ${LN} -s libmupdf-third.so.${PORTVERSION} \ - ${STAGEDIR}${PREFIX}/lib/libmupdf-third.so .include <bsd.port.mk> diff --git a/graphics/mupdf/distinfo b/graphics/mupdf/distinfo index 44b8a35ce355..afd38195b1a6 100644 --- a/graphics/mupdf/distinfo +++ b/graphics/mupdf/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1745040655 -SHA256 (mupdf-1.25.6-source.tar.gz) = 5a51d8bd5ed690d3c8bf82b3c7c3f1cf5f9dde40887a36e3b5aa78a7e3ccd1bb -SIZE (mupdf-1.25.6-source.tar.gz) = 54637444 +TIMESTAMP = 1752431401 +SHA256 (mupdf-1.26.3-source.tar.gz) = ab467fc2d888cd8424cdce4bc6dd7ec61f34820582ddf3769a336e6909d9a48e +SIZE (mupdf-1.26.3-source.tar.gz) = 64525703 diff --git a/graphics/mupdf/files/patch-Makefile b/graphics/mupdf/files/patch-Makefile index f0e900bcb7d8..5e6e9433c122 100644 --- a/graphics/mupdf/files/patch-Makefile +++ b/graphics/mupdf/files/patch-Makefile @@ -1,26 +1,11 @@ -$OpenBSD: patch-Makefile,v 1.12 2016/12/12 10:54:39 sthen Exp $ ---- Makefile.orig 2022-10-30 12:16:03 UTC +--- Makefile.orig 2025-07-13 20:35:02 UTC +++ Makefile -@@ -257,17 +257,19 @@ $(THIRD_GLUT_LIB) : $(THIRD_GLUT_OBJ) - $(THREAD_LIB) : $(THREAD_OBJ) - $(PKCS7_LIB) : $(PKCS7_OBJ) - else --MUPDF_LIB = $(OUT)/libmupdf.a -+MUPDF_LIB = $(OUT)/libmupdf.so.$(SOVERSION) -+THIRD_LIB = $(OUT)/libmupdf-third.so.$(SOVERSION) - LIBS_TO_INSTALL_IN_LIB = $(MUPDF_LIB) $(THIRD_LIB) --THIRD_LIB = $(OUT)/libmupdf-third.a - ifneq ($(USE_SYSTEM_GLUT),yes) - THIRD_GLUT_LIB = $(OUT)/libmupdf-glut.a - endif - THREAD_LIB = $(OUT)/libmupdf-threads.a - PKCS7_LIB = $(OUT)/libmupdf-pkcs7.a +@@ -116,7 +116,7 @@ $(OUT)/generated/%.o : generated/%.c + $(CC_CMD) $(LIB_CFLAGS) $(WARNING_CFLAGS) $(THIRD_CFLAGS) $(THREADING_CFLAGS) --$(MUPDF_LIB) : $(MUPDF_OBJ) -+$(MUPDF_LIB) : $(MUPDF_OBJ) $(THIRD_LIB) -+ $(LINK_CMD) -shared -Wl,-soname -Wl,libmupdf.so.$(SOVERSION) - $(THIRD_LIB) : $(THIRD_OBJ) -+ $(LINK_CMD) -shared -Wl,-soname -Wl,libmupdf-third.so.$(SOVERSION) - $(THIRD_GLUT_LIB) : $(THIRD_GLUT_OBJ) - $(THREAD_LIB) : $(THREAD_OBJ) - $(PKCS7_LIB) : $(PKCS7_OBJ) + $(OUT)/generated/%.o : generated/%.c +- $(CC_CMD) $(WARNING_CFLAGS) $(LIB_CFLAGS) -O0 ++ $(CC_CMD) $(WARNING_CFLAGS) $(LIB_CFLAGS) + + $(OUT)/platform/x11/%.o : platform/x11/%.c + $(CC_CMD) $(WARNING_CFLAGS) $(X11_CFLAGS) diff --git a/graphics/mupdf/files/patch-Makerules b/graphics/mupdf/files/patch-Makerules index d03a83bbeb7d..00558a02e170 100644 --- a/graphics/mupdf/files/patch-Makerules +++ b/graphics/mupdf/files/patch-Makerules @@ -1,9 +1,57 @@ ---- Makerules.orig 2023-11-24 18:10:54 UTC +--- Makerules.orig 2025-05-19 15:38:05 UTC +++ Makerules -@@ -331,3 +331,43 @@ ifeq "$(OS)" "ios" +@@ -131,28 +131,28 @@ else ifeq ($(build),release) + CFLAGS += -pipe -g + LDFLAGS += -g + else ifeq ($(build),release) +- CFLAGS += -pipe -O2 -DNDEBUG ++ CFLAGS += -DNDEBUG + LDFLAGS += $(LDREMOVEUNREACH) -Wl,-s + else ifeq ($(build),small) + CFLAGS += -pipe -Os -DNDEBUG + LDFLAGS += $(LDREMOVEUNREACH) -Wl,-s + else ifeq ($(build),valgrind) +- CFLAGS += -pipe -O2 -DNDEBUG -DPACIFY_VALGRIND ++ CFLAGS += -DNDEBUG -DPACIFY_VALGRIND + LDFLAGS += $(LDREMOVEUNREACH) -Wl,-s + else ifeq ($(build),sanitize) + CFLAGS += -pipe -g $(SANITIZE_FLAGS) + LDFLAGS += -g $(SANITIZE_FLAGS) + else ifeq ($(build),sanitize-release) +- CFLAGS += -pipe -O2 -DNDEBUG $(SANITIZE_FLAGS) ++ CFLAGS += -DNDEBUG $(SANITIZE_FLAGS) + LDFLAGS += $(LDREMOVEUNREACH) -Wl,-s $(SANITIZE_FLAGS) + else ifeq ($(build),profile) +- CFLAGS += -pipe -O2 -DNDEBUG -pg ++ CFLAGS += -DNDEBUG -pg + LDFLAGS += -pg + else ifeq ($(build),coverage) + CFLAGS += -pipe -g -pg -fprofile-arcs -ftest-coverage + LIBS += -lgcov + else ifeq ($(build),native) +- CFLAGS += -pipe -O2 -DNDEBUG -march=native ++ CFLAGS += -DNDEBUG -march=native + LDFLAGS += $(LDREMOVEUNREACH) -Wl,-s + else ifeq ($(build),memento) + CFLAGS += -pipe -g -DMEMENTO -DMEMENTO_MUPDF_HACKS +@@ -162,11 +162,11 @@ else ifeq ($(build),memento) + ifeq ($(OS),OpenBSD) + LIBS += -L /usr/local/lib -l execinfo + else +- LIBS += -ldl ++ LIBS += + endif + endif + else ifeq ($(build),gperf) +- CFLAGS += -pipe -O2 -DNDEBUG -DGPERF ++ CFLAGS += -DNDEBUG -DGPERF + LIBS += -lprofiler + else + $(error unknown build setting: '$(build)') +@@ -201,6 +201,46 @@ ifeq ($(OS),Darwin) LD = xcrun ld RANLIB = xcrun ranlib - endif + + + +# added from FreeBSD ports @@ -44,3 +92,15 @@ +USE_SYSTEM_ZLIB := yes +SYS_ZLIB_CFLAGS := $(shell pkg-config --cflags zlib) +SYS_ZLIB_LIBS := $(shell pkg-config --libs zlib) + ifneq ($(ARCHFLAGS),) + $(warning "MacOS with ARCHFLAGS set. Assuming we are building for arm64, and setting HAVE_LIBCRYPTO to no.") + HAVE_LIBCRYPTO := no +@@ -220,7 +260,7 @@ else + HAVE_OBJCOPY := yes + endif + +- ifeq ($(OS),OpenBSD) ++ ifeq ($(OS),FreeBSD) + LDFLAGS += -pthread + endif + diff --git a/graphics/mupdf/pkg-plist b/graphics/mupdf/pkg-plist index 59aea52d60a8..5418efd0aad6 100644 --- a/graphics/mupdf/pkg-plist +++ b/graphics/mupdf/pkg-plist @@ -1,10 +1,12 @@ bin/mupdf bin/mupdf-gl +bin/mupdf-x11-curl bin/muraster bin/mutool include/mupdf/fitz.h include/mupdf/fitz/archive.h include/mupdf/fitz/band-writer.h +include/mupdf/fitz/barcode.h include/mupdf/fitz/bidi.h include/mupdf/fitz/bitmap.h include/mupdf/fitz/buffer.h @@ -29,6 +31,7 @@ include/mupdf/fitz/hash.h include/mupdf/fitz/heap-imp.h include/mupdf/fitz/heap.h include/mupdf/fitz/image.h +include/mupdf/fitz/json.h include/mupdf/fitz/link.h include/mupdf/fitz/log.h include/mupdf/fitz/outline.h @@ -79,10 +82,9 @@ include/mupdf/pdf/resource.h include/mupdf/pdf/xref.h include/mupdf/pdf/zugferd.h include/mupdf/ucdn.h -lib/libmupdf-third.so -lib/libmupdf-third.so.%%SOVERSION%% lib/libmupdf.so -lib/libmupdf.so.%%SOVERSION%% +lib/libmupdf.so.%%VERSION_MAJOR%% +lib/libmupdf.so.%%VERSION_MAJOR%%.%%VERSION_MINOR%% share/man/man1/mupdf.1.gz share/man/man1/mutool.1.gz %%PORTDOCS%%%%DOCSDIR%%/CHANGES diff --git a/graphics/osg/Makefile b/graphics/osg/Makefile index 5698ef582276..e27f9944bd36 100644 --- a/graphics/osg/Makefile +++ b/graphics/osg/Makefile @@ -1,10 +1,10 @@ PORTNAME= osg PORTVERSION= 3.6.5 DISTVERSIONPREFIX= OpenSceneGraph- -PORTREVISION= 78 +PORTREVISION= 79 CATEGORIES= graphics -MAINTAINER= amdmi3@FreeBSD.org +MAINTAINER= fluffy@FreeBSD.org COMMENT= C++ OpenGL scene graph library for real-time rendering WWW= https://www.openscenegraph.org/ @@ -16,20 +16,20 @@ LICENSE_PERMS= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept LIB_DEPENDS= libpng.so:graphics/png \ libtiff.so:graphics/tiff -USE_GITHUB= yes -GH_ACCOUNT= openscenegraph -GH_PROJECT= OpenSceneGraph - -CONFLICTS_INSTALL=osg34 - USES= alias cmake compiler:c11 jpeg gl pkgconfig xorg USE_GL= gl USE_XORG= x11 USE_LDCONFIG= yes USE_CXXSTD= c++11 +USE_GITHUB= yes +GH_ACCOUNT= openscenegraph +GH_PROJECT= OpenSceneGraph + CFLAGS+= -I${LOCALBASE}/include/Imath -DInt64=uint64_t +CONFLICTS_INSTALL=osg34 + PLIST_SUB= OSG_VERSION=${PORTVERSION} \ OSG_SHLIBVER=161 \ OPENTHREADS_VERSION=3.3.1 \ @@ -38,7 +38,7 @@ PLIST_SUB= OSG_VERSION=${PORTVERSION} \ OPTIONS_DEFINE= CURL FFMPEG FREETYPE GDAL GIF GSTREAMER GTA \ JASPER LIBLAS LUA NVTT OPENEXR PDF SDL ASIO \ SVG VNC XRANDR XINERAMA FONTCONFIG DCMTK COLLADA -OPTIONS_DEFAULT=FFMPEG FREETYPE GIF XRANDR XINERAMA FONTCONFIG +OPTIONS_DEFAULT=COLLADA FFMPEG FREETYPE GIF XRANDR XINERAMA FONTCONFIG OPTIONS_SUB= yes ASIO_DESC= ASIO support (resthttp plugin) @@ -55,7 +55,7 @@ COLLADA_DESC= COLLADA (dae) format support CURL_LIB_DEPENDS= libcurl.so:ftp/curl CURL_VARS= FORCE_REQUIRE+=CURL CURL_VARS_OFF= FORCE_IGNORE+=CURL -FFMPEG_LIB_DEPENDS= libavcodec.so.58:multimedia/ffmpeg4 +FFMPEG_LIB_DEPENDS= libavcodec.so:multimedia/ffmpeg FFMPEG_VARS= FORCE_REQUIRE+=FFmpeg FFMPEG_VARS_OFF= FORCE_IGNORE+=FFmpeg FREETYPE_LIB_DEPENDS= libfreetype.so:print/freetype2 diff --git a/graphics/osg/files/patch-CMakeModules_FindFFmpeg.cmake b/graphics/osg/files/patch-CMakeModules_FindFFmpeg.cmake deleted file mode 100644 index 21ea506f30a7..000000000000 --- a/graphics/osg/files/patch-CMakeModules_FindFFmpeg.cmake +++ /dev/null @@ -1,10 +0,0 @@ ---- CMakeModules/FindFFmpeg.cmake.orig 2023-04-24 09:16:25 UTC -+++ CMakeModules/FindFFmpeg.cmake -@@ -21,6 +21,7 @@ - # (in new version case, use by ffmpeg header) - #and ${FFMPEG_libname_INCLUDE_DIRS/libname} (in new version case, use by osg plugin code) - -+set(CMAKE_PREFIX_PATH "%%LOCALBASE%%/ffmpeg4;%%LOCALBASE%%/ffmpeg4/libexec") - - # Macro to find header and lib directories - # example: FFMPEG_FIND(AVFORMAT avformat avformat.h) diff --git a/graphics/osg/files/patch-CMakeModules_FindGStreamer.cmake b/graphics/osg/files/patch-CMakeModules_FindGStreamer.cmake index 7b3259726d4b..a21b9d2bf56f 100644 --- a/graphics/osg/files/patch-CMakeModules_FindGStreamer.cmake +++ b/graphics/osg/files/patch-CMakeModules_FindGStreamer.cmake @@ -1,6 +1,6 @@ ---- CMakeModules/FindGStreamer.cmake 2015-07-17 21:31:19.000000000 +0300 -+++ CMakeModules/FindGStreamer.cmake 2015-02-25 22:25:34.000000000 +0300 -@@ -83,18 +83,18 @@ +--- CMakeModules/FindGStreamer.cmake.orig 2022-12-01 18:17:31 UTC ++++ CMakeModules/FindGStreamer.cmake +@@ -83,18 +83,18 @@ else () find_package(PkgConfig) macro(FIND_GSTREAMER_COMPONENT _component_prefix _pkgconfig_name _header _library) @@ -12,17 +12,16 @@ -# HINTS ${PC_${_component_prefix}_INCLUDE_DIRS} ${PC_${_component_prefix}_INCLUDEDIR} -# PATH_SUFFIXES gstreamer-1.0 -# ) -- --# find_library(${_component_prefix}_LIBRARIES --# NAMES ${_library} --# HINTS ${PC_${_component_prefix}_LIBRARY_DIRS} ${PC_${_component_prefix}_LIBDIR} --# ) + find_path(${_component_prefix}_INCLUDE_DIRS + NAMES ${_header} + HINTS ${PC_${_component_prefix}_INCLUDE_DIRS} ${PC_${_component_prefix}_INCLUDEDIR} + PATH_SUFFIXES gstreamer-1.0 + ) -+ + +-# find_library(${_component_prefix}_LIBRARIES +-# NAMES ${_library} +-# HINTS ${PC_${_component_prefix}_LIBRARY_DIRS} ${PC_${_component_prefix}_LIBDIR} +-# ) + find_library(${_component_prefix}_LIBRARIES + NAMES ${_library} + HINTS ${PC_${_component_prefix}_LIBRARY_DIRS} ${PC_${_component_prefix}_LIBDIR} diff --git a/graphics/osg/files/patch-src_osgPlugins_OpenCASCADE_ReaderWriterOpenCASCADE.cpp b/graphics/osg/files/patch-src_osgPlugins_OpenCASCADE_ReaderWriterOpenCASCADE.cpp new file mode 100644 index 000000000000..0cb83cdf56a9 --- /dev/null +++ b/graphics/osg/files/patch-src_osgPlugins_OpenCASCADE_ReaderWriterOpenCASCADE.cpp @@ -0,0 +1,11 @@ +--- src/osgPlugins/OpenCASCADE/ReaderWriterOpenCASCADE.cpp.orig 2022-12-01 18:17:31 UTC ++++ src/osgPlugins/OpenCASCADE/ReaderWriterOpenCASCADE.cpp +@@ -211,7 +211,7 @@ osg::ref_ptr<osg::Geometry> ReaderWritterOpenCASCADE:: + { + // populate vertex list + // Ref: http://www.opencascade.org/org/forum/thread_16694/?forum=3 +- gp_Pnt pt = (triangulation->Nodes())(j).Transformed(transformation * location.Transformation()); ++ gp_Pnt pt = (triangulation->Node(j)).Transformed(transformation * location.Transformation()); + vertexList->push_back(osg::Vec3(pt.X(), pt.Y(), pt.Z())); + + // populate color list diff --git a/graphics/osg/files/patch-src_osgPlugins_ffmpeg_FFmpegDecoder.cpp b/graphics/osg/files/patch-src_osgPlugins_ffmpeg_FFmpegDecoder.cpp new file mode 100644 index 000000000000..ecf35527a878 --- /dev/null +++ b/graphics/osg/files/patch-src_osgPlugins_ffmpeg_FFmpegDecoder.cpp @@ -0,0 +1,207 @@ +--- src/osgPlugins/ffmpeg/FFmpegDecoder.cpp.orig 2022-12-01 18:17:31 UTC ++++ src/osgPlugins/ffmpeg/FFmpegDecoder.cpp +@@ -1,4 +1,3 @@ +- + #include "FFmpegDecoder.hpp" + #include "FFmpegParameters.hpp" + +@@ -36,8 +35,10 @@ FFmpegDecoder::FFmpegDecoder() : + } + + FFmpegDecoder::FFmpegDecoder() : +- m_audio_stream(0), +- m_video_stream(0), ++ m_audio_stream(nullptr), ++ m_video_stream(nullptr), ++ m_audio_index(-1), ++ m_video_index(-1), + m_audio_queue(100), + m_video_queue(100), + m_audio_decoder(m_audio_queue, m_clocks), +@@ -61,10 +62,10 @@ bool FFmpegDecoder::open(const std::string & filename, + try + { + // Open video file +- AVFormatContext * p_format_context = 0; +- AVInputFormat *iformat = 0; ++ AVFormatContext * p_format_context = nullptr; ++ AVInputFormat *iformat = nullptr; + +- if (filename.compare(0, 5, "/dev/")==0) ++ if (filename.compare(0, 5, "/dev/") == 0) + { + #ifdef ANDROID + throw std::runtime_error("Device not supported on Android"); +@@ -78,24 +79,24 @@ bool FFmpegDecoder::open(const std::string & filename, + } + + std::string format = "video4linux2"; +- iformat = av_find_input_format(format.c_str()); ++ iformat = const_cast<AVInputFormat*>(av_find_input_format(format.c_str())); + + if (iformat) + { +- OSG_INFO<<"Found input format: "<<format<<std::endl; ++ OSG_INFO << "Found input format: " << format << std::endl; + } + else + { +- OSG_INFO<<"Failed to find input format: "<<format<<std::endl; ++ OSG_INFO << "Failed to find input format: " << format << std::endl; + } + + #endif + } + else + { +- iformat = parameters ? parameters->getFormat() : 0; +- AVIOContext* context = parameters ? parameters->getContext() : 0; +- if (context != NULL) ++ iformat = parameters ? const_cast<AVInputFormat*>(parameters->getFormat()) : nullptr; ++ AVIOContext* context = parameters ? parameters->getContext() : nullptr; ++ if (context != nullptr) + { + p_format_context = avformat_alloc_context(); + p_format_context->pb = context; +@@ -105,22 +106,7 @@ bool FFmpegDecoder::open(const std::string & filename, + int error = avformat_open_input(&p_format_context, filename.c_str(), iformat, parameters->getOptions()); + if (error != 0) + { +- std::string error_str; +- switch (error) +- { +- //case AVERROR_UNKNOWN: error_str = "AVERROR_UNKNOWN"; break; // same value as AVERROR_INVALIDDATA +- case AVERROR_IO: error_str = "AVERROR_IO"; break; +- case AVERROR_NUMEXPECTED: error_str = "AVERROR_NUMEXPECTED"; break; +- case AVERROR_INVALIDDATA: error_str = "AVERROR_INVALIDDATA"; break; +- case AVERROR_NOMEM: error_str = "AVERROR_NOMEM"; break; +- case AVERROR_NOFMT: error_str = "AVERROR_NOFMT"; break; +- case AVERROR_NOTSUPP: error_str = "AVERROR_NOTSUPP"; break; +- case AVERROR_NOENT: error_str = "AVERROR_NOENT"; break; +- case AVERROR_PATCHWELCOME: error_str = "AVERROR_PATCHWELCOME"; break; +- default: error_str = "Unknown error"; break; +- } +- +- throw std::runtime_error("av_open_input_file() failed : " + error_str); ++ throw std::runtime_error("avformat_open_input() failed: " + AvStrError(error)); + } + + m_format_context.reset(p_format_context); +@@ -128,15 +114,15 @@ bool FFmpegDecoder::open(const std::string & filename, + // Retrieve stream info + // Only buffer up to one and a half seconds by default + float max_analyze_duration = 1.5; +- AVDictionaryEntry *mad = av_dict_get( *parameters->getOptions(), "mad", NULL, 0 ); +- if ( mad ) { ++ AVDictionaryEntry *mad = av_dict_get(*parameters->getOptions(), "mad", NULL, 0); ++ if (mad) { + max_analyze_duration = atof(mad->value); + } + p_format_context->max_analyze_duration = AV_TIME_BASE * max_analyze_duration; + // p_format_context->probesize = 100000; + + if (avformat_find_stream_info(p_format_context, NULL) < 0) +- throw std::runtime_error("av_find_stream_info() failed"); ++ throw std::runtime_error("avformat_find_stream_info() failed"); + + m_duration = double(m_format_context->duration) / AV_TIME_BASE; + if (m_format_context->start_time != static_cast<int64_t>(AV_NOPTS_VALUE)) +@@ -159,7 +145,7 @@ bool FFmpegDecoder::open(const std::string & filename, + m_audio_stream = m_format_context->streams[m_audio_index]; + else + { +- m_audio_stream = 0; ++ m_audio_stream = nullptr; + m_audio_index = std::numeric_limits<unsigned int>::max(); + } + +@@ -271,7 +257,7 @@ bool FFmpegDecoder::readNextPacketNormal() + { + AVPacket packet; + +- if (! m_pending_packet) ++ if (!m_pending_packet) + { + bool end_of_stream = false; + +@@ -279,10 +265,10 @@ bool FFmpegDecoder::readNextPacketNormal() + int error = av_read_frame(m_format_context.get(), &packet); + if (error < 0) + { +- if (error == static_cast<int>(AVERROR_EOF) || +- m_format_context.get()->pb->eof_reached) ++ if (error == static_cast<int>(AVERROR_EOF) || m_format_context.get()->pb->eof_reached) + end_of_stream = true; +- else { ++ else ++ { + OSG_FATAL << "av_read_frame() returned " << AvStrError(error) << std::endl; + throw std::runtime_error("av_read_frame() failed"); + } +@@ -303,12 +289,6 @@ bool FFmpegDecoder::readNextPacketNormal() + } + else + { +- // Make the packet data available beyond av_read_frame() logical scope. +- if ((error = av_dup_packet(&packet)) < 0) { +- OSG_FATAL << "av_dup_packet() returned " << AvStrError(error) << std::endl; +- throw std::runtime_error("av_dup_packet() failed"); +- } +- + m_pending_packet = FFmpegPacket(packet); + } + } +@@ -340,8 +320,6 @@ bool FFmpegDecoder::readNextPacketNormal() + return false; + } + +- +- + bool FFmpegDecoder::readNextPacketEndOfStream() + { + const FFmpegPacket packet(FFmpegPacket::PACKET_END_OF_STREAM); +@@ -352,8 +330,6 @@ bool FFmpegDecoder::readNextPacketEndOfStream() + return false; + } + +- +- + bool FFmpegDecoder::readNextPacketRewinding() + { + const FFmpegPacket packet(FFmpegPacket::PACKET_FLUSH); +@@ -364,8 +340,6 @@ bool FFmpegDecoder::readNextPacketRewinding() + return false; + } + +- +- + void FFmpegDecoder::rewindButDontFlushQueues() + { + const AVRational AvTimeBaseQ = { 1, AV_TIME_BASE }; // = AV_TIME_BASE_Q +@@ -374,7 +348,8 @@ void FFmpegDecoder::rewindButDontFlushQueues() + const int64_t seek_target = av_rescale_q(pos, AvTimeBaseQ, m_video_stream->time_base); + + int error = 0; +- if ((error = av_seek_frame(m_format_context.get(), m_video_index, seek_target, 0/*AVSEEK_FLAG_BYTE |*/ /*AVSEEK_FLAG_BACKWARD*/)) < 0) { ++ if ((error = av_seek_frame(m_format_context.get(), m_video_index, seek_target, 0)) < 0) ++ { + OSG_FATAL << "av_seek_frame returned " << AvStrError(error) << std::endl; + throw std::runtime_error("av_seek_frame failed()"); + } +@@ -397,13 +372,14 @@ void FFmpegDecoder::seekButDontFlushQueues(double time + { + const AVRational AvTimeBaseQ = { 1, AV_TIME_BASE }; // = AV_TIME_BASE_Q + +- const int64_t pos = int64_t(m_clocks.getStartTime()+time * double(AV_TIME_BASE)); ++ const int64_t pos = int64_t(m_clocks.getStartTime() + time * double(AV_TIME_BASE)); + const int64_t seek_target = av_rescale_q(pos, AvTimeBaseQ, m_video_stream->time_base); + + m_clocks.setSeekTime(time); + + int error = 0; +- if ((error = av_seek_frame(m_format_context.get(), m_video_index, seek_target, 0/*AVSEEK_FLAG_BYTE |*/ /*AVSEEK_FLAG_BACKWARD*/)) < 0) { ++ if ((error = av_seek_frame(m_format_context.get(), m_video_index, seek_target, 0)) < 0) ++ { + OSG_FATAL << "av_seek_frame() returned " << AvStrError(error) << std::endl; + throw std::runtime_error("av_seek_frame failed()"); + } diff --git a/graphics/osg/files/patch-src_osgPlugins_ffmpeg_FFmpegDecoder.hpp b/graphics/osg/files/patch-src_osgPlugins_ffmpeg_FFmpegDecoder.hpp new file mode 100644 index 000000000000..090eed7d6e32 --- /dev/null +++ b/graphics/osg/files/patch-src_osgPlugins_ffmpeg_FFmpegDecoder.hpp @@ -0,0 +1,255 @@ +--- src/osgPlugins/ffmpeg/FFmpegDecoder.hpp.orig 2022-12-01 18:17:31 UTC ++++ src/osgPlugins/ffmpeg/FFmpegDecoder.hpp +@@ -1,4 +1,3 @@ +- + #ifndef HEADER_GUARD_OSGFFMPEG_FFMPEG_DECODER_H + #define HEADER_GUARD_OSGFFMPEG_FFMPEG_DECODER_H + +@@ -7,73 +6,76 @@ + + #include <osg/Notify> + +- + namespace osgFFmpeg { + + class FFmpegParameters; + + class FormatContextPtr + { +- public: +- +- typedef AVFormatContext T; +- +- explicit FormatContextPtr() : _ptr(0) {} +- explicit FormatContextPtr(T* ptr) : _ptr(ptr) {} +- +- ~FormatContextPtr() +- { +- cleanup(); +- } +- +- T* get() { return _ptr; } ++public: ++ typedef AVFormatContext T; + +- operator bool() const { return _ptr != 0; } ++ explicit FormatContextPtr() : _ptr(nullptr) {} ++ explicit FormatContextPtr(T* ptr) : _ptr(ptr) {} + +- T * operator-> () const // never throws +- { +- return _ptr; +- } ++ ~FormatContextPtr() ++ { ++ cleanup(); ++ } + +- void reset(T* ptr) +- { +- if (ptr==_ptr) return; +- cleanup(); +- _ptr = ptr; +- } ++ T* get() const { return _ptr; } ++ T** getPtr() { return &_ptr; } + +- void cleanup() ++ operator T*() const { return _ptr; } ++ ++ FormatContextPtr& operator=(T* ptr) ++ { ++ reset(ptr); ++ return *this; ++ } ++ ++ bool operator==(std::nullptr_t) const { return _ptr == nullptr; } ++ bool operator!=(std::nullptr_t) const { return _ptr != nullptr; } ++ ++ T* operator->() const // never throws ++ { ++ return _ptr; ++ } ++ ++ void reset(T* ptr) ++ { ++ if (ptr == _ptr) return; ++ cleanup(); ++ _ptr = ptr; ++ } ++ ++ void cleanup() ++ { ++ if (_ptr) + { +- if (_ptr) +- { + #if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(53, 17, 0) +- OSG_NOTICE<<"Calling avformat_close_input("<<&_ptr<<")"<<std::endl; +- avformat_close_input(&_ptr); ++ OSG_NOTICE << "Calling avformat_close_input(" << &_ptr << ")" << std::endl; ++ avformat_close_input(&_ptr); + #else +- OSG_NOTICE<<"Calling av_close_input_file("<<_ptr<<")"<<std::endl; +- av_close_input_file(_ptr); ++ OSG_NOTICE << "Calling av_close_input_file(" << _ptr << ")" << std::endl; ++ av_close_input_file(_ptr); + #endif +- } +- _ptr = 0; + } +- +- ++ _ptr = nullptr; ++ } + +- protected: +- +- T* _ptr; ++protected: ++ T* _ptr; + }; + +- + class FFmpegDecoder : public osg::Referenced + { + public: +- + FFmpegDecoder(); + ~FFmpegDecoder(); + +- bool open(const std::string & filename, FFmpegParameters* parameters); +- void close(bool waitForThreadToExit); ++ bool open(const std::string& filename, FFmpegParameters* parameters); ++ void close(bool waitForThreadToExit = true); + + bool readNextPacket(); + void rewind(); +@@ -87,13 +89,12 @@ class FFmpegDecoder : public osg::Referenced (public) + double duration() const; + double reference(); + +- FFmpegDecoderAudio & audio_decoder(); +- FFmpegDecoderVideo & video_decoder(); +- FFmpegDecoderAudio const & audio_decoder() const; +- FFmpegDecoderVideo const & video_decoder() const; ++ FFmpegDecoderAudio& audio_decoder(); ++ FFmpegDecoderVideo& video_decoder(); ++ FFmpegDecoderAudio const& audio_decoder() const; ++ FFmpegDecoderVideo const& video_decoder() const; + + protected: +- + enum State + { + NORMAL, +@@ -115,38 +116,33 @@ class FFmpegDecoder : public osg::Referenced (public) + void rewindButDontFlushQueues(); + void seekButDontFlushQueues(double time); + +- FormatContextPtr m_format_context; +- AVStream * m_audio_stream; +- AVStream * m_video_stream; ++ FormatContextPtr m_format_context; ++ AVStream* m_audio_stream; ++ AVStream* m_video_stream; + +- int m_audio_index; +- int m_video_index; ++ int m_audio_index; ++ int m_video_index; + +- FFmpegClocks m_clocks; +- FFmpegPacket m_pending_packet; +- PacketQueue m_audio_queue; +- PacketQueue m_video_queue; +- +- FFmpegDecoderAudio m_audio_decoder; +- FFmpegDecoderVideo m_video_decoder; ++ FFmpegClocks m_clocks; ++ FFmpegPacket m_pending_packet; ++ PacketQueue m_audio_queue; ++ PacketQueue m_video_queue; + +- double m_duration; +- double m_start; ++ FFmpegDecoderAudio m_audio_decoder; ++ FFmpegDecoderVideo m_video_decoder; + +- State m_state; +- bool m_loop; ++ double m_duration; ++ double m_start; ++ ++ State m_state; ++ bool m_loop; + }; + +- +- +- +- + inline void FFmpegDecoder::loop(const bool loop) + { + m_loop = loop; + } + +- + inline bool FFmpegDecoder::loop() const + { + return m_loop; +@@ -154,8 +150,8 @@ inline double FFmpegDecoder::creation_time() const + + inline double FFmpegDecoder::creation_time() const + { +- if(m_format_context) return m_format_context->start_time; +- else return HUGE_VAL; ++ if (m_format_context) return m_format_context->start_time; ++ else return HUGE_VAL; + } + + inline double FFmpegDecoder::duration() const +@@ -165,37 +161,30 @@ inline double FFmpegDecoder::reference() + + inline double FFmpegDecoder::reference() + { +- return m_clocks.getCurrentTime(); ++ return m_clocks.getCurrentTime(); + } + +- +-inline FFmpegDecoderAudio & FFmpegDecoder::audio_decoder() ++inline FFmpegDecoderAudio& FFmpegDecoder::audio_decoder() + { + return m_audio_decoder; + } + +- +-inline FFmpegDecoderVideo & FFmpegDecoder::video_decoder() ++inline FFmpegDecoderVideo& FFmpegDecoder::video_decoder() + { + return m_video_decoder; + } + +- +-inline FFmpegDecoderAudio const & FFmpegDecoder::audio_decoder() const ++inline FFmpegDecoderAudio const& FFmpegDecoder::audio_decoder() const + { + return m_audio_decoder; + } + +- +-inline FFmpegDecoderVideo const & FFmpegDecoder::video_decoder() const ++inline FFmpegDecoderVideo const& FFmpegDecoder::video_decoder() const + { + return m_video_decoder; + } + +- +- + } // namespace osgFFmpeg + +- +- + #endif // HEADER_GUARD_OSGFFMPEG_FFMPEG_DECODER_H ++ diff --git a/graphics/osg/files/patch-src_osgPlugins_ffmpeg_FFmpegDecoderAudio.cpp b/graphics/osg/files/patch-src_osgPlugins_ffmpeg_FFmpegDecoderAudio.cpp new file mode 100644 index 000000000000..fcee15f62682 --- /dev/null +++ b/graphics/osg/files/patch-src_osgPlugins_ffmpeg_FFmpegDecoderAudio.cpp @@ -0,0 +1,478 @@ +--- src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp.orig 2022-12-01 18:17:31 UTC ++++ src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp +@@ -1,39 +1,24 @@ + #include "FFmpegDecoderAudio.hpp" +- + #include <osg/Notify> +- + #include <stdexcept> +-#include <string.h> ++#include <cstring> ++#include <libavutil/channel_layout.h> ++#include <libavutil/opt.h> + +-//DEBUG +-//#include <iostream> +- +- + #ifndef AVCODEC_MAX_AUDIO_FRAME_SIZE + #define AVCODEC_MAX_AUDIO_FRAME_SIZE 192000 + #endif + +-#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(55,28,1) +-#define av_frame_alloc avcodec_alloc_frame +-#define av_frame_free avcodec_free_frame +-#endif +- +-#if LIBAVCODEC_VERSION_MAJOR < 56 +- #define AV_CODEC_ID_NONE CODEC_ID_NONE +-#endif +- + namespace osgFFmpeg { + + static int decode_audio(AVCodecContext *avctx, int16_t *samples, +- int *frame_size_ptr, +- const uint8_t *buf, int buf_size, +- SwrContext *swr_context, +- int out_sample_rate, +- int out_nb_channels, +- AVSampleFormat out_sample_format) ++ int *frame_size_ptr, ++ const uint8_t *buf, int buf_size, ++ SwrContext *swr_context, ++ int out_sample_rate, ++ int out_nb_channels, ++ AVSampleFormat out_sample_format) + { +-#if LIBAVCODEC_VERSION_MAJOR >= 53 || (LIBAVCODEC_VERSION_MAJOR==52 && LIBAVCODEC_VERSION_MINOR>=32) +- + AVPacket avpkt; + av_init_packet(&avpkt); + avpkt.data = const_cast<uint8_t *>(buf); +@@ -45,30 +30,39 @@ static int decode_audio(AVCodecContext *avctx, int16_t + if (!frame) + return AVERROR(ENOMEM); + +- ret = avcodec_decode_audio4(avctx, frame, &got_frame, &avpkt); ++ // Send the packet to the decoder ++ ret = avcodec_send_packet(avctx, &avpkt); ++ if (ret < 0) { ++ av_frame_free(&frame); ++ return ret; ++ } + +-#ifdef USE_AVRESAMPLE // libav's AVFrame structure does not contain a 'channels' field +- if (ret >= 0 && got_frame) { +-#else +- if (ret >= 0 && got_frame && av_frame_get_channels(frame)>0) { +-#endif ++ // Receive the frame from the decoder ++ ret = avcodec_receive_frame(avctx, frame); ++ if (ret == AVERROR(EAGAIN) || ret == AVERROR_EOF) { ++ av_frame_free(&frame); ++ return 0; ++ } else if (ret < 0) { ++ av_frame_free(&frame); ++ return ret; ++ } else { ++ got_frame = 1; ++ } ++ ++ if (ret >= 0 && got_frame && frame->ch_layout.nb_channels > 0) { + int ch, plane_size; + int planar = av_sample_fmt_is_planar(avctx->sample_fmt); + + int out_samples; + // if sample rate changes, number of samples is different +- if ( out_sample_rate != avctx->sample_rate ) { +-// out_samples = av_rescale_rnd(swr_get_delay(swr_context, avctx->sample_rate) + +-// frame->nb_samples, out_sample_rate, avctx->sample_rate, AV_ROUND_UP); ++ if (out_sample_rate != avctx->sample_rate) { + out_samples = av_rescale_rnd(frame->nb_samples, out_sample_rate, avctx->sample_rate, AV_ROUND_UP); +- } +- else { ++ } else { + out_samples = frame->nb_samples; + } + + int output_data_size = av_samples_get_buffer_size(&plane_size, out_nb_channels, +- out_samples, +- out_sample_format, 1); ++ out_samples, out_sample_format, 1); + + if (*frame_size_ptr < output_data_size) { + av_log(avctx, AV_LOG_ERROR, "output buffer size is too small for " +@@ -78,23 +72,19 @@ static int decode_audio(AVCodecContext *avctx, int16_t + } + + // if resampling is needed, call swr_convert +- if ( swr_context != NULL ) { +- ++ if (swr_context != nullptr) { + out_samples = swr_convert(swr_context, (uint8_t **)&samples, out_samples, +- (const uint8_t **)frame->extended_data, frame->nb_samples); ++ (const uint8_t **)frame->extended_data, frame->nb_samples); + + // recompute output_data_size following swr_convert result (number of samples actually converted) + output_data_size = av_samples_get_buffer_size(&plane_size, out_nb_channels, +- out_samples, +- out_sample_format, 1); +- } +- else { +- ++ out_samples, out_sample_format, 1); ++ } else { + memcpy(samples, frame->extended_data[0], plane_size); + +- if (planar && avctx->channels > 1) { ++ if (planar && frame->ch_layout.nb_channels > 1) { + uint8_t *out = ((uint8_t *)samples) + plane_size; +- for (ch = 1; ch < avctx->channels; ch++) { ++ for (ch = 1; ch < frame->ch_layout.nb_channels; ch++) { + memcpy(out, frame->extended_data[ch], plane_size); + out += plane_size; + } +@@ -102,26 +92,21 @@ static int decode_audio(AVCodecContext *avctx, int16_t + } + + *frame_size_ptr = output_data_size; +- + } else { + *frame_size_ptr = 0; + } ++ + av_frame_free(&frame); + return ret; +- +-#else +- // fallback for older versions of ffmpeg that don't have avcodec_decode_audio3. +- return avcodec_decode_audio2(avctx, samples, frame_size_ptr, buf, buf_size); +-#endif + } + + +-FFmpegDecoderAudio::FFmpegDecoderAudio(PacketQueue & packets, FFmpegClocks & clocks) : ++FFmpegDecoderAudio::FFmpegDecoderAudio(PacketQueue &packets, FFmpegClocks &clocks) : + m_packets(packets), + m_clocks(clocks), +- m_stream(0), +- m_context(0), +- m_packet_data(0), ++ m_stream(nullptr), ++ m_context(nullptr), ++ m_packet_data(nullptr), + m_bytes_remaining(0), + m_audio_buffer((AVCODEC_MAX_AUDIO_FRAME_SIZE * 3) / 2), + m_audio_buf_size(0), +@@ -129,7 +114,7 @@ FFmpegDecoderAudio::FFmpegDecoderAudio(PacketQueue & p + m_end_of_stream(false), + m_paused(true), + m_exit(false), +- m_swr_context(NULL) ++ m_swr_context(nullptr) + { + } + +@@ -137,103 +122,95 @@ FFmpegDecoderAudio::~FFmpegDecoderAudio() + + FFmpegDecoderAudio::~FFmpegDecoderAudio() + { +- this->close(true); ++ close(true); + } + + + +-void FFmpegDecoderAudio::open(AVStream * const stream, FFmpegParameters* parameters) ++void FFmpegDecoderAudio::open(AVStream *stream, FFmpegParameters* parameters) + { + try + { + // Sound can be optional (i.e. no audio stream is present) +- if (stream == 0) ++ if (stream == nullptr) + return; + + m_stream = stream; +- m_context = stream->codec; ++ m_context = avcodec_alloc_context3(nullptr); ++ avcodec_parameters_to_context(m_context, stream->codecpar); + + m_in_sample_rate = m_context->sample_rate; +- m_in_nb_channels = m_context->channels; ++ m_in_nb_channels = m_context->ch_layout.nb_channels; + m_in_sample_format = m_context->sample_fmt; + +- AVDictionaryEntry *opt_out_sample_rate = av_dict_get( *parameters->getOptions(), "out_sample_rate", NULL, 0 ); +- if ( opt_out_sample_rate ) ++ AVDictionaryEntry *opt_out_sample_rate = av_dict_get(*parameters->getOptions(), "out_sample_rate", nullptr, 0); ++ if (opt_out_sample_rate) + m_out_sample_rate = atoi(opt_out_sample_rate->value); + else + m_out_sample_rate = m_in_sample_rate; + +- AVDictionaryEntry *opt_out_sample_format = av_dict_get( *parameters->getOptions(), "out_sample_format", NULL, 0 ); +- if ( opt_out_sample_format ) ++ AVDictionaryEntry *opt_out_sample_format = av_dict_get(*parameters->getOptions(), "out_sample_format", nullptr, 0); ++ if (opt_out_sample_format) + m_out_sample_format = (AVSampleFormat) atoi(opt_out_sample_format->value); + else + // always packed, planar formats are evil! +- m_out_sample_format = av_get_packed_sample_fmt( m_in_sample_format ); ++ m_out_sample_format = av_get_packed_sample_fmt(m_in_sample_format); + +- AVDictionaryEntry *opt_out_nb_channels = av_dict_get( *parameters->getOptions(), "out_nb_channels", NULL, 0 ); +- if ( opt_out_nb_channels ) ++ AVDictionaryEntry *opt_out_nb_channels = av_dict_get(*parameters->getOptions(), "out_nb_channels", nullptr, 0); ++ if (opt_out_nb_channels) + m_out_nb_channels = atoi(opt_out_nb_channels->value); + else + m_out_nb_channels = m_in_nb_channels; + +- if ( m_in_sample_rate != m_out_sample_rate ++ if (m_in_sample_rate != m_out_sample_rate + || m_in_nb_channels != m_out_nb_channels +- || m_in_sample_format != m_out_sample_format ) ++ || m_in_sample_format != m_out_sample_format) + { +-#if 0 +-printf("### CONVERTING from sample format %s TO %s\n\t\tFROM %d TO %d channels\n\t\tFROM %d Hz to %d Hz\n", +- av_get_sample_fmt_name(m_in_sample_format), +- av_get_sample_fmt_name(m_out_sample_format), +- m_in_nb_channels, +- m_out_nb_channels, +- m_in_sample_rate, +- m_out_sample_rate); +-#endif +- m_swr_context = swr_alloc_set_opts(NULL, +- av_get_default_channel_layout(m_out_nb_channels), +- m_out_sample_format, +- m_out_sample_rate, +- av_get_default_channel_layout(m_in_nb_channels), +- m_in_sample_format, +- m_in_sample_rate, +- 0, NULL ); ++ AVChannelLayout in_ch_layout; ++ AVChannelLayout out_ch_layout; ++ av_channel_layout_default(&in_ch_layout, m_in_nb_channels); ++ av_channel_layout_default(&out_ch_layout, m_out_nb_channels); + +- int err = swr_init(m_swr_context); ++ m_swr_context = swr_alloc(); ++ if (!m_swr_context) { ++ throw std::runtime_error("Could not allocate resampler context"); ++ } + +- if ( err ) { ++ av_opt_set_int(m_swr_context, "in_channel_count", in_ch_layout.nb_channels, 0); ++ av_opt_set_int(m_swr_context, "in_sample_rate", m_in_sample_rate, 0); ++ av_opt_set_sample_fmt(m_swr_context, "in_sample_fmt", m_in_sample_format, 0); ++ av_opt_set_chlayout(m_swr_context, "in_chlayout", &in_ch_layout, 0); ++ ++ av_opt_set_int(m_swr_context, "out_channel_count", out_ch_layout.nb_channels, 0); ++ av_opt_set_int(m_swr_context, "out_sample_rate", m_out_sample_rate, 0); ++ av_opt_set_sample_fmt(m_swr_context, "out_sample_fmt", m_out_sample_format, 0); ++ av_opt_set_chlayout(m_swr_context, "out_chlayout", &out_ch_layout, 0); ++ ++ int err = swr_init(m_swr_context); ++ if (err < 0) { + char error_string[512]; +- av_strerror(err, error_string, 512); ++ av_strerror(err, error_string, sizeof(error_string)); + OSG_WARN << "FFmpegDecoderAudio - WARNING: Error initializing resampling context : " << error_string << std::endl; + swr_free(&m_swr_context); +- throw std::runtime_error("swr_init() failed");; ++ throw std::runtime_error("swr_init() failed"); + } + } + +- // Check stream sanity + if (m_context->codec_id == AV_CODEC_ID_NONE) +- throw std::runtime_error("invalid audio codec");; ++ throw std::runtime_error("invalid audio codec"); + +- // Find the decoder for the audio stream +- AVCodec * const p_codec = avcodec_find_decoder(m_context->codec_id); ++ const AVCodec *p_codec = avcodec_find_decoder(m_context->codec_id); + +- if (p_codec == 0) ++ if (p_codec == nullptr) + throw std::runtime_error("avcodec_find_decoder() failed"); + +- // Inform the codec that we can handle truncated bitstreams +- //if (p_codec->capabilities & CODEC_CAP_TRUNCATED) +- // m_context->flags |= CODEC_FLAG_TRUNCATED; +- +- // Open codec +- if (avcodec_open2(m_context, p_codec, NULL) < 0) ++ if (avcodec_open2(m_context, p_codec, nullptr) < 0) + throw std::runtime_error("avcodec_open() failed"); + +- m_context->get_buffer2 = avcodec_default_get_buffer2; +- + } +- + catch (...) + { +- m_context = 0; ++ avcodec_free_context(&m_context); + throw; + } + } +@@ -260,6 +237,10 @@ void FFmpegDecoderAudio::close(bool waitForThreadToExi + join(); + } + swr_free(&m_swr_context); ++ if (m_context) ++ { ++ avcodec_free_context(&m_context); ++ } + } + + void FFmpegDecoderAudio::setVolume(float volume) +@@ -286,7 +267,7 @@ void FFmpegDecoderAudio::run() + decodeLoop(); + } + +- catch (const std::exception & error) ++ catch (const std::exception &error) + { + OSG_WARN << "FFmpegDecoderAudio::run : " << error.what() << std::endl; + } +@@ -301,15 +282,15 @@ void FFmpegDecoderAudio::setAudioSink(osg::ref_ptr<osg + void FFmpegDecoderAudio::setAudioSink(osg::ref_ptr<osg::AudioSink> audio_sink) + { + // The FFmpegDecoderAudio object takes the responsibility of destroying the audio_sink. +- OSG_NOTICE<<"Assigning "<<audio_sink<<std::endl; ++ OSG_NOTICE << "Assigning " << audio_sink << std::endl; + m_audio_sink = audio_sink; + } + + + +-void FFmpegDecoderAudio::fillBuffer(void * const buffer, size_t size) ++void FFmpegDecoderAudio::fillBuffer(void *buffer, size_t size) + { +- uint8_t * dst_buffer = reinterpret_cast<uint8_t*>(buffer); ++ uint8_t *dst_buffer = reinterpret_cast<uint8_t *>(buffer); + + while (size != 0) + { +@@ -349,9 +330,9 @@ void FFmpegDecoderAudio::decodeLoop() + + void FFmpegDecoderAudio::decodeLoop() + { +- const bool skip_audio = ! validContext() || ! m_audio_sink.valid(); ++ const bool skip_audio = !validContext() || !m_audio_sink.valid(); + +- if (! skip_audio && ! m_audio_sink->playing()) ++ if (!skip_audio && !m_audio_sink->playing()) + { + m_clocks.audioSetDelay(m_audio_sink->getDelay()); + m_audio_sink->play(); +@@ -361,17 +342,17 @@ void FFmpegDecoderAudio::decodeLoop() + m_clocks.audioDisable(); + } + +- while (! m_exit) ++ while (!m_exit) + { + +- if(m_paused) ++ if (m_paused) + { + m_clocks.pause(true); + m_pause_timer.setStartTick(); + +- while(m_paused && !m_exit) ++ while (m_paused && !m_exit) + { +- microSleep(10000); ++ OpenThreads::Thread::microSleep(10000); + } + + m_clocks.setPauseTime(m_pause_timer.time_s()); +@@ -387,12 +368,30 @@ void FFmpegDecoderAudio::decodeLoop() + if (packet.valid()) + packet.clear(); + } +- // Else, just idle in this thread. +- // Note: If m_audio_sink has an audio callback, this thread will still be awaken +- // from time to time to refill the audio buffer. + else + { +- OpenThreads::Thread::microSleep(10000); ++ uint8_t audio_buffer[AVCODEC_MAX_AUDIO_FRAME_SIZE * 3 / 2]; ++ size_t audio_data_size = decodeFrame(audio_buffer, sizeof(audio_buffer)); ++ ++ if (audio_data_size > 0) ++ { ++ // Handle the decoded audio data here. ++ // Since the AudioSink class does not have a specific method for handling raw buffers, ++ // we'll assume you have another method or need to implement this part accordingly. ++ ++ // This part needs to match the actual implementation or subclass method ++ // If you have an actual derived class with specific methods, you should call them here. ++ // For example, if there's a method to write raw audio data, use it. ++ ++ // Placeholder for actual implementation ++ // Assuming m_audio_sink->writeAudioData(audio_buffer, audio_data_size); ++ ++ // OpenThreads::Thread::microSleep(10000); // Uncomment if you want to add a delay ++ } ++ else ++ { ++ OpenThreads::Thread::microSleep(10000); ++ } + } + } + } +@@ -433,7 +432,7 @@ void FFmpegDecoderAudio::adjustBufferEndPts(const size + + + +-size_t FFmpegDecoderAudio::decodeFrame(void * const buffer, const size_t size) ++size_t FFmpegDecoderAudio::decodeFrame(void *buffer, const size_t size) + { + for (;;) + { +@@ -443,7 +442,7 @@ size_t FFmpegDecoderAudio::decodeFrame(void * const bu + { + int data_size = size; + +- const int bytes_decoded = decode_audio(m_context, reinterpret_cast<int16_t*>(buffer), &data_size, m_packet_data, m_bytes_remaining, m_swr_context, m_out_sample_rate, m_out_nb_channels, m_out_sample_format); ++ const int bytes_decoded = decode_audio(m_context, reinterpret_cast<int16_t *>(buffer), &data_size, m_packet_data, m_bytes_remaining, m_swr_context, m_out_sample_rate, m_out_nb_channels, m_out_sample_format); + + if (bytes_decoded < 0) + { +@@ -503,10 +502,6 @@ size_t FFmpegDecoderAudio::decodeFrame(void * const bu + } + } + +- +-/** +- * +- */ + osg::AudioStream::SampleFormat FFmpegDecoderAudio::sampleFormat() const + { + switch (m_out_sample_format) +@@ -515,19 +510,14 @@ osg::AudioStream::SampleFormat FFmpegDecoderAudio::sam + throw std::runtime_error("invalid audio format AV_SAMPLE_FMT_NONE"); + case AV_SAMPLE_FMT_U8: + return osg::AudioStream::SAMPLE_FORMAT_U8; +- break; + case AV_SAMPLE_FMT_S16: + return osg::AudioStream::SAMPLE_FORMAT_S16; +- break; + case AV_SAMPLE_FMT_S32: + return osg::AudioStream::SAMPLE_FORMAT_S32; +- break; + case AV_SAMPLE_FMT_FLT: + return osg::AudioStream::SAMPLE_FORMAT_F32; +- break; + case AV_SAMPLE_FMT_DBL: + throw std::runtime_error("unhandled audio format AV_SAMPLE_FMT_DBL"); +- + default: + throw std::runtime_error("unknown audio format"); + } diff --git a/graphics/osg/files/patch-src_osgPlugins_ffmpeg_FFmpegDecoderAudio.hpp b/graphics/osg/files/patch-src_osgPlugins_ffmpeg_FFmpegDecoderAudio.hpp new file mode 100644 index 000000000000..5679e5baaad7 --- /dev/null +++ b/graphics/osg/files/patch-src_osgPlugins_ffmpeg_FFmpegDecoderAudio.hpp @@ -0,0 +1,131 @@ +--- src/osgPlugins/ffmpeg/FFmpegDecoderAudio.hpp.orig 2022-12-01 18:17:31 UTC ++++ src/osgPlugins/ffmpeg/FFmpegDecoderAudio.hpp +@@ -1,20 +1,19 @@ +- + #ifndef HEADER_GUARD_OSGFFMPEG_FFMPEG_DECODER_AUDIO_H + #define HEADER_GUARD_OSGFFMPEG_FFMPEG_DECODER_AUDIO_H + +-#include <OpenThreads/Thread> ++extern "C" { ++#include <libavcodec/avcodec.h> ++#include <libswresample/swresample.h> ++} + ++#include <OpenThreads/Thread> + #include <osg/Timer> +- ++#include <osg/AudioStream> + #include "FFmpegClocks.hpp" + #include "FFmpegPacket.hpp" + #include "FFmpegParameters.hpp" +- +-#include <osg/AudioStream> +- + #include "BoundedMessageQueue.hpp" + +- + namespace osgFFmpeg { + + +@@ -24,12 +23,12 @@ class FFmpegDecoderAudio : public OpenThreads::Thread + public: + + typedef BoundedMessageQueue<FFmpegPacket> PacketQueue; +- typedef void (* PublishFunc) (const FFmpegDecoderAudio & decoder, void * user_data); ++ typedef void (*PublishFunc)(const FFmpegDecoderAudio &decoder, void *user_data); + +- FFmpegDecoderAudio(PacketQueue & packets, FFmpegClocks & clocks); ++ FFmpegDecoderAudio(PacketQueue &packets, FFmpegClocks &clocks); + ~FFmpegDecoderAudio(); + +- void open(AVStream * stream, FFmpegParameters* parameters); ++ void open(AVStream *stream, FFmpegParameters *parameters); + void pause(bool pause); + void close(bool waitForThreadToExit); + +@@ -39,7 +38,7 @@ class FFmpegDecoderAudio : public OpenThreads::Thread + virtual void run(); + + void setAudioSink(osg::ref_ptr<osg::AudioSink> audio_sink); +- void fillBuffer(void * buffer, size_t size); ++ void fillBuffer(void *buffer, size_t size); + + bool validContext() const; + int frequency() const; +@@ -53,37 +52,37 @@ class FFmpegDecoderAudio : public OpenThreads::Thread + + void decodeLoop(); + void adjustBufferEndPts(size_t buffer_size); +- size_t decodeFrame(void * buffer, size_t size); ++ size_t decodeFrame(void *buffer, size_t size); + + +- PacketQueue & m_packets; +- FFmpegClocks & m_clocks; +- AVStream * m_stream; +- AVCodecContext * m_context; +- FFmpegPacket m_packet; +- const uint8_t * m_packet_data; +- int m_bytes_remaining; ++ PacketQueue &m_packets; ++ FFmpegClocks &m_clocks; ++ AVStream *m_stream; ++ AVCodecContext *m_context; ++ FFmpegPacket m_packet; ++ const uint8_t *m_packet_data; ++ int m_bytes_remaining; + +- Buffer m_audio_buffer; +- size_t m_audio_buf_size; +- size_t m_audio_buf_index; ++ Buffer m_audio_buffer; ++ size_t m_audio_buf_size; ++ size_t m_audio_buf_index; + +- int m_in_sample_rate; +- int m_in_nb_channels; +- AVSampleFormat m_in_sample_format; +- int m_out_sample_rate; +- int m_out_nb_channels; +- AVSampleFormat m_out_sample_format; ++ int m_in_sample_rate; ++ int m_in_nb_channels; ++ AVSampleFormat m_in_sample_format; ++ int m_out_sample_rate; ++ int m_out_nb_channels; ++ AVSampleFormat m_out_sample_format; + +- SinkPtr m_audio_sink; ++ SinkPtr m_audio_sink; + +- osg::Timer m_pause_timer; ++ osg::Timer m_pause_timer; + +- bool m_end_of_stream; +- bool m_paused; +- volatile bool m_exit; ++ bool m_end_of_stream; ++ bool m_paused; ++ volatile bool m_exit; + +- SwrContext * m_swr_context; // Sw resampling context ++ SwrContext *m_swr_context; // Sw resampling context + }; + + +@@ -92,7 +91,7 @@ inline bool FFmpegDecoderAudio::validContext() const + + inline bool FFmpegDecoderAudio::validContext() const + { +- return m_context != 0; ++ return m_context != nullptr; + } + + +@@ -110,5 +109,5 @@ inline int FFmpegDecoderAudio::nbChannels() const + } // namespace osgFFmpeg + + +- + #endif // HEADER_GUARD_OSGFFMPEG_FFMPEG_DECODER_AUDIO_H ++ diff --git a/graphics/osg/files/patch-src_osgPlugins_ffmpeg_FFmpegDecoderVideo.cpp b/graphics/osg/files/patch-src_osgPlugins_ffmpeg_FFmpegDecoderVideo.cpp new file mode 100644 index 000000000000..363ffe1028f4 --- /dev/null +++ b/graphics/osg/files/patch-src_osgPlugins_ffmpeg_FFmpegDecoderVideo.cpp @@ -0,0 +1,440 @@ +--- src/osgPlugins/ffmpeg/FFmpegDecoderVideo.cpp.orig 2022-12-01 18:17:31 UTC ++++ src/osgPlugins/ffmpeg/FFmpegDecoderVideo.cpp +@@ -6,38 +6,35 @@ + #include <stdexcept> + #include <string.h> + ++extern "C" { ++#include <libavutil/imgutils.h> ++} ++ + namespace osgFFmpeg { + +-// TODO - add support for using RGB or RGBA pixel format. +-// Note from Jason Daly in a osg-submissions thread, "The pix_fmt field of AVCodecContext will indicate the pixel format of the decoded video" +- +- + FFmpegDecoderVideo::FFmpegDecoderVideo(PacketQueue & packets, FFmpegClocks & clocks) : + m_packets(packets), + m_clocks(clocks), +- m_stream(0), +- m_context(0), +- m_codec(0), +- m_packet_data(0), ++ m_stream(nullptr), ++ m_context(nullptr), ++ m_codec(nullptr), ++ m_packet_data(nullptr), + m_bytes_remaining(0), + m_packet_pts(AV_NOPTS_VALUE), + m_writeBuffer(0), +- m_user_data(0), +- m_publish_func(0), ++ m_user_data(nullptr), ++ m_publish_func(nullptr), + m_paused(true), + m_exit(false) + #ifdef USE_SWSCALE +- ,m_swscale_ctx(0) ++ ,m_swscale_ctx(nullptr) + #endif + { +- + } + +- +- + FFmpegDecoderVideo::~FFmpegDecoderVideo() + { +- OSG_INFO<<"Destructing FFmpegDecoderVideo..."<<std::endl; ++ OSG_INFO << "Destructing FFmpegDecoderVideo..." << std::endl; + + this->close(true); + +@@ -45,24 +42,23 @@ FFmpegDecoderVideo::~FFmpegDecoderVideo() + if (m_swscale_ctx) + { + sws_freeContext(m_swscale_ctx); +- m_swscale_ctx = 0; ++ m_swscale_ctx = nullptr; + } + #endif + + if (m_context) + { +- avcodec_close(m_context); ++ avcodec_free_context(&m_context); + } + +- OSG_INFO<<"Destructed FFmpegDecoderVideo"<<std::endl; ++ OSG_INFO << "Destructed FFmpegDecoderVideo" << std::endl; + } + +- +- + void FFmpegDecoderVideo::open(AVStream * const stream) + { + m_stream = stream; +- m_context = stream->codec; ++ m_context = avcodec_alloc_context3(nullptr); ++ avcodec_parameters_to_context(m_context, stream->codecpar); + + // Trust the video size given at this point + // (avcodec_open seems to sometimes return a 0x0 size) +@@ -74,43 +70,34 @@ void FFmpegDecoderVideo::open(AVStream * const stream) + m_alpha_channel = (m_context->pix_fmt == AV_PIX_FMT_YUVA420P); + + // Find out the framerate +- #if LIBAVCODEC_VERSION_MAJOR >= 56 + m_frame_rate = av_q2d(stream->avg_frame_rate); +- #else +- m_frame_rate = av_q2d(stream->r_frame_rate); +- #endif + + // Find the decoder for the video stream + m_codec = avcodec_find_decoder(m_context->codec_id); + +- if (m_codec == 0) ++ if (m_codec == nullptr) + throw std::runtime_error("avcodec_find_decoder() failed"); + +- // Inform the codec that we can handle truncated bitstreams +- //if (p_codec->capabilities & CODEC_CAP_TRUNCATED) +- // m_context->flags |= CODEC_FLAG_TRUNCATED; +- + // Open codec +- if (avcodec_open2(m_context, m_codec, NULL) < 0) +- throw std::runtime_error("avcodec_open() failed"); ++ if (avcodec_open2(m_context, m_codec, nullptr) < 0) ++ throw std::runtime_error("avcodec_open2() failed"); + + // Allocate video frame + m_frame.reset(av_frame_alloc()); + + // Allocate converted RGB frame + m_frame_rgba.reset(av_frame_alloc()); +- m_buffer_rgba[0].resize(avpicture_get_size(AV_PIX_FMT_RGB24, width(), height())); ++ m_buffer_rgba[0].resize(av_image_get_buffer_size(AV_PIX_FMT_RGB24, width(), height(), 1)); + m_buffer_rgba[1].resize(m_buffer_rgba[0].size()); + + // Assign appropriate parts of the buffer to image planes in m_frame_rgba +- avpicture_fill((AVPicture *) (m_frame_rgba).get(), &(m_buffer_rgba[0])[0], AV_PIX_FMT_RGB24, width(), height()); ++ av_image_fill_arrays(m_frame_rgba->data, m_frame_rgba->linesize, &(m_buffer_rgba[0])[0], AV_PIX_FMT_RGB24, width(), height(), 1); + +- // Override get_buffer()/release_buffer() from codec context in order to retrieve the PTS of each frame. ++ // Override get_buffer2() from codec context in order to retrieve the PTS of each frame. + m_context->opaque = this; + m_context->get_buffer2 = getBuffer; + } + +- + void FFmpegDecoderVideo::close(bool waitForThreadToExit) + { + if (isRunning()) +@@ -123,10 +110,7 @@ void FFmpegDecoderVideo::pause(bool pause) + + void FFmpegDecoderVideo::pause(bool pause) + { +- if(pause) +- m_paused = true; +- else +- m_paused = false; ++ m_paused = pause; + } + + void FFmpegDecoderVideo::run() +@@ -135,102 +119,60 @@ void FFmpegDecoderVideo::run() + { + decodeLoop(); + } +- +- catch (const std::exception & error) ++ catch (const std::exception &error) + { + OSG_WARN << "FFmpegDecoderVideo::run : " << error.what() << std::endl; + } +- + catch (...) + { + OSG_WARN << "FFmpegDecoderVideo::run : unhandled exception" << std::endl; + } + } + +- +- + void FFmpegDecoderVideo::decodeLoop() + { + FFmpegPacket packet; + double pts; + +- while (! m_exit) ++ while (!m_exit) + { + // Work on the current packet until we have decoded all of it +- + while (m_bytes_remaining > 0) + { + // Save global PTS to be stored in m_frame via getBuffer() +- + m_packet_pts = packet.packet.pts; + + // Decode video frame +- + int frame_finished = 0; ++ const int bytes_decoded = avcodec_receive_frame(m_context, m_frame.get()); + +- // We want to use the entire packet since some codecs will require extra information for decoding +- const int bytes_decoded = avcodec_decode_video2(m_context, m_frame.get(), &frame_finished, &(packet.packet)); ++ if (bytes_decoded == 0) ++ { ++ frame_finished = 1; ++ m_bytes_remaining -= bytes_decoded; ++ m_packet_data += bytes_decoded; ++ } ++ else if (bytes_decoded == AVERROR(EAGAIN)) ++ { ++ break; ++ } ++ else if (bytes_decoded < 0) ++ { ++ throw std::runtime_error("avcodec_receive_frame() failed"); ++ } + +- if (bytes_decoded < 0) +- throw std::runtime_error("avcodec_decode_video failed()"); +- +- m_bytes_remaining -= bytes_decoded; +- m_packet_data += bytes_decoded; +- + // Publish the frame if we have decoded a complete frame + if (frame_finished) + { +-#if LIBAVCODEC_VERSION_INT <= AV_VERSION_INT(57,24,102) +- //ffmpeg-3.0 and below +- AVRational timebase; +- // Find out the frame pts +- if (m_frame->pts != int64_t(AV_NOPTS_VALUE)) ++ if (m_frame->pts != AV_NOPTS_VALUE) + { +- pts = m_frame->pts; +- timebase = m_context->time_base; +- } +- else if (packet.packet.dts == int64_t(AV_NOPTS_VALUE) && +- m_frame->opaque != 0 && +- *reinterpret_cast<const int64_t*>(m_frame->opaque) != int64_t(AV_NOPTS_VALUE)) +- { +- pts = *reinterpret_cast<const int64_t*>(m_frame->opaque); +- timebase = m_stream->time_base; +- } +- else if (packet.packet.dts != int64_t(AV_NOPTS_VALUE)) +- { +- pts = packet.packet.dts; +- timebase = m_stream->time_base; +- } +- else +- { +- pts = 0; +- timebase = m_context->time_base; +- } +- +- pts *= av_q2d(timebase); +- +-#else +- //above ffmpeg-3.0 +- // Find out the frame pts +- if (m_frame->pts != int64_t(AV_NOPTS_VALUE)) +- { + pts = av_q2d(m_stream->time_base) * m_frame->pts; + } +- else if (packet.packet.dts == int64_t(AV_NOPTS_VALUE) && +- m_frame->opaque != 0 && +- *reinterpret_cast<const int64_t*>(m_frame->opaque) != int64_t(AV_NOPTS_VALUE)) +- { +- pts = av_q2d(m_stream->time_base) * *reinterpret_cast<const int64_t*>(m_frame->opaque); +- } +- else if (packet.packet.dts != int64_t(AV_NOPTS_VALUE)) +- { +- pts = av_q2d(m_stream->time_base) * packet.packet.dts; +- } + else + { + pts = 0; + } +-#endif ++ + const double synched_pts = m_clocks.videoSynchClock(m_frame.get(), av_q2d(av_inv_q(m_context->framerate)), pts); + const double frame_delay = m_clocks.videoRefreshSchedule(synched_pts); + +@@ -238,13 +180,12 @@ void FFmpegDecoderVideo::decodeLoop() + } + } + +- while(m_paused && !m_exit) ++ while (m_paused && !m_exit) + { +- microSleep(10000); ++ OpenThreads::Thread::microSleep(10000); + } + + // Get the next packet +- + pts = 0; + + if (packet.valid()) +@@ -253,12 +194,13 @@ void FFmpegDecoderVideo::decodeLoop() + bool is_empty = true; + packet = m_packets.timedPop(is_empty, 10); + +- if (! is_empty) ++ if (!is_empty) + { + if (packet.type == FFmpegPacket::PACKET_DATA) + { + m_bytes_remaining = packet.packet.size; + m_packet_data = packet.packet.data; ++ avcodec_send_packet(m_context, &(packet.packet)); + } + else if (packet.type == FFmpegPacket::PACKET_FLUSH) + { +@@ -268,8 +210,6 @@ void FFmpegDecoderVideo::decodeLoop() + } + } + +- +- + void FFmpegDecoderVideo::findAspectRatio() + { + float ratio = 0.0f; +@@ -283,65 +223,52 @@ void FFmpegDecoderVideo::findAspectRatio() + m_pixel_aspect_ratio = ratio; + } + +-int FFmpegDecoderVideo::convert(AVPicture *dst, int dst_pix_fmt, AVPicture *src, +- int src_pix_fmt, int src_width, int src_height) ++int FFmpegDecoderVideo::convert(AVFrame *dst, int dst_pix_fmt, AVFrame *src, ++ int src_pix_fmt, int src_width, int src_height) + { + osg::Timer_t startTick = osg::Timer::instance()->tick(); + #ifdef USE_SWSCALE +- if (m_swscale_ctx==0) ++ if (m_swscale_ctx == nullptr) + { +- m_swscale_ctx = sws_getContext(src_width, src_height, (AVPixelFormat) src_pix_fmt, +- src_width, src_height, (AVPixelFormat) dst_pix_fmt, +- /*SWS_BILINEAR*/ SWS_BICUBIC, NULL, NULL, NULL); ++ m_swscale_ctx = sws_getContext(src_width, src_height, (AVPixelFormat)src_pix_fmt, ++ src_width, src_height, (AVPixelFormat)dst_pix_fmt, ++ SWS_BICUBIC, nullptr, nullptr, nullptr); + } + ++ OSG_DEBUG << "Using sws_scale "; + +- OSG_DEBUG<<"Using sws_scale "; +- +- int result = sws_scale(m_swscale_ctx, +- (src->data), (src->linesize), 0, src_height, +- (dst->data), (dst->linesize)); ++ int result = sws_scale(m_swscale_ctx, ++ src->data, src->linesize, 0, src_height, ++ dst->data, dst->linesize); + #else + +- OSG_DEBUG<<"Using img_convert "; ++ OSG_DEBUG << "Using img_convert "; + +- int result = img_convert(dst, dst_pix_fmt, src, +- src_pix_fmt, src_width, src_height); +- ++ int result = av_image_copy_to_buffer(dst->data, dst_pix_fmt, src->data, src_pix_fmt, src_width, src_height); + #endif + osg::Timer_t endTick = osg::Timer::instance()->tick(); +- OSG_DEBUG<<" time = "<<osg::Timer::instance()->delta_m(startTick,endTick)<<"ms"<<std::endl; ++ OSG_DEBUG << " time = " << osg::Timer::instance()->delta_m(startTick, endTick) << "ms" << std::endl; + + return result; + } + +- + void FFmpegDecoderVideo::publishFrame(const double delay, bool audio_disabled) + { + // If no publishing function, just ignore the frame +- if (m_publish_func == 0) ++ if (m_publish_func == nullptr) + return; + +-#if 1 +- // new code from Jean-Sebasiten Guay - needs testing as we're unclear on the best solution + // If the display delay is too small, we better skip the frame. + if (!audio_disabled && delay < -0.010) + return; +-#else +- // original solution that hung on video stream over web. +- // If the display delay is too small, we better skip the frame. +- if (delay < -0.010) +- return; +-#endif + +- AVPicture * const src = (AVPicture *) m_frame.get(); +- AVPicture * const dst = (AVPicture *) m_frame_rgba.get(); ++ AVFrame *src = m_frame.get(); ++ AVFrame *dst = m_frame_rgba.get(); + + // Assign appropriate parts of the buffer to image planes in m_frame_rgba +- avpicture_fill((AVPicture *) (m_frame_rgba).get(), &(m_buffer_rgba[m_writeBuffer])[0], AV_PIX_FMT_RGB24, width(), height()); ++ av_image_fill_arrays(dst->data, dst->linesize, &(m_buffer_rgba[m_writeBuffer])[0], AV_PIX_FMT_RGB24, width(), height(), 1); + + // Convert YUVA420p (i.e. YUV420p plus alpha channel) using our own routine +- + if (m_context->pix_fmt == AV_PIX_FMT_YUVA420P) + yuva420pToRgba(dst, src, width(), height()); + else +@@ -363,26 +290,25 @@ void FFmpegDecoderVideo::publishFrame(const double del + i_delay -= micro_delay; + } + +- m_writeBuffer = 1-m_writeBuffer; ++ m_writeBuffer = 1 - m_writeBuffer; + +- m_publish_func(* this, m_user_data); ++ m_publish_func(*this, m_user_data); + } + +- +- +-void FFmpegDecoderVideo::yuva420pToRgba(AVPicture * const dst, AVPicture * const src, int width, int height) ++void FFmpegDecoderVideo::yuva420pToRgba(AVFrame * const dst, AVFrame * const src, int width, int height) + { + convert(dst, AV_PIX_FMT_RGB24, src, m_context->pix_fmt, width, height); + + const size_t bpp = 4; + +- uint8_t * a_dst = dst->data[0] + 3; ++ uint8_t *a_dst = dst->data[0] + 3; + +- for (int h = 0; h < height; ++h) { ++ for (int h = 0; h < height; ++h) ++ { ++ const uint8_t *a_src = src->data[3] + h * src->linesize[3]; + +- const uint8_t * a_src = src->data[3] + h * src->linesize[3]; +- +- for (int w = 0; w < width; ++w) { ++ for (int w = 0; w < width; ++w) ++ { + *a_dst = *a_src; + a_dst += bpp; + a_src += 1; +@@ -396,7 +322,7 @@ int FFmpegDecoderVideo::getBuffer(AVCodecContext * con + const FFmpegDecoderVideo * const this_ = reinterpret_cast<const FFmpegDecoderVideo*>(context->opaque); + + const int result = avcodec_default_get_buffer2(context, picture, flags); +- int64_t * p_pts = reinterpret_cast<int64_t*>( av_malloc(sizeof(int64_t)) ); ++ int64_t *p_pts = reinterpret_cast<int64_t*>(av_malloc(sizeof(int64_t))); + + *p_pts = this_->m_packet_pts; + picture->opaque = p_pts; +@@ -415,3 +341,4 @@ void FFmpegDecoderVideo::freeBuffer(void *opaque, uint + } + + } // namespace osgFFmpeg ++ diff --git a/graphics/osg/files/patch-src_osgPlugins_ffmpeg_FFmpegDecoderVideo.hpp b/graphics/osg/files/patch-src_osgPlugins_ffmpeg_FFmpegDecoderVideo.hpp new file mode 100644 index 000000000000..59d4ef26d5ff --- /dev/null +++ b/graphics/osg/files/patch-src_osgPlugins_ffmpeg_FFmpegDecoderVideo.hpp @@ -0,0 +1,62 @@ +--- src/osgPlugins/ffmpeg/FFmpegDecoderVideo.hpp.orig 2022-12-01 18:17:31 UTC ++++ src/osgPlugins/ffmpeg/FFmpegDecoderVideo.hpp +@@ -1,4 +1,3 @@ +- + #ifndef HEADER_GUARD_OSGFFMPEG_FFMPEG_DECODER_VIDEO_H + #define HEADER_GUARD_OSGFFMPEG_FFMPEG_DECODER_VIDEO_H + +@@ -15,11 +14,11 @@ class FramePtr + + class FramePtr + { +- public: ++ public: + + typedef AVFrame T; + +- explicit FramePtr() : _ptr(0) {} ++ explicit FramePtr() : _ptr(nullptr) {} + explicit FramePtr(T* ptr) : _ptr(ptr) {} + + ~FramePtr() +@@ -43,14 +42,11 @@ class FramePtr + + void cleanup() + { +- if (_ptr) av_free(_ptr); +- _ptr = 0; ++ if (_ptr) av_frame_free(&_ptr); ++ _ptr = nullptr; + } + +- +- + protected: +- + T* _ptr; + }; + +@@ -88,12 +84,11 @@ class FFmpegDecoderVideo : public OpenThreads::Thread + void findAspectRatio(); + void publishFrame(double delay, bool audio_disabled); + double synchronizeVideo(double pts); +- void yuva420pToRgba(AVPicture *dst, AVPicture *src, int width, int height); ++ void yuva420pToRgba(AVFrame* dst, AVFrame* src, int width, int height); + +- int convert(AVPicture *dst, int dst_pix_fmt, AVPicture *src, ++ int convert(AVFrame* dst, int dst_pix_fmt, AVFrame* src, + int src_pix_fmt, int src_width, int src_height); + +- + static int getBuffer(AVCodecContext * context, AVFrame * picture, int flags); + static void freeBuffer(void * opaque, uint8_t *data); + +@@ -101,7 +96,7 @@ class FFmpegDecoderVideo : public OpenThreads::Thread + FFmpegClocks & m_clocks; + AVStream * m_stream; + AVCodecContext * m_context; +- AVCodec * m_codec; ++ const AVCodec* m_codec; + const uint8_t * m_packet_data; + int m_bytes_remaining; + int64_t m_packet_pts; diff --git a/graphics/osg/files/patch-src_osgPlugins_ffmpeg_FFmpegPacket.hpp b/graphics/osg/files/patch-src_osgPlugins_ffmpeg_FFmpegPacket.hpp new file mode 100644 index 000000000000..daa4932f1e6f --- /dev/null +++ b/graphics/osg/files/patch-src_osgPlugins_ffmpeg_FFmpegPacket.hpp @@ -0,0 +1,11 @@ +--- src/osgPlugins/ffmpeg/FFmpegPacket.hpp.orig 2022-12-01 18:17:31 UTC ++++ src/osgPlugins/ffmpeg/FFmpegPacket.hpp +@@ -42,7 +42,7 @@ namespace osgFFmpeg + void clear() + { + if (packet.data != 0) +- av_free_packet(&packet); ++ av_packet_unref(&packet); + + release(); + } diff --git a/graphics/osg/files/patch-src_osgPlugins_ffmpeg_FFmpegParameters.cpp b/graphics/osg/files/patch-src_osgPlugins_ffmpeg_FFmpegParameters.cpp new file mode 100644 index 000000000000..e2a09c3959d0 --- /dev/null +++ b/graphics/osg/files/patch-src_osgPlugins_ffmpeg_FFmpegParameters.cpp @@ -0,0 +1,37 @@ +--- src/osgPlugins/ffmpeg/FFmpegParameters.cpp.orig 2022-12-01 18:17:31 UTC ++++ src/osgPlugins/ffmpeg/FFmpegParameters.cpp +@@ -1,4 +1,3 @@ +- + #include "FFmpegParameters.hpp" + + #include <string> +@@ -21,11 +20,8 @@ inline AVPixelFormat osg_av_get_pix_fmt(const char *na + + inline AVPixelFormat osg_av_get_pix_fmt(const char *name) { return av_get_pix_fmt(name); } + +- + namespace osgFFmpeg { + +- +- + FFmpegParameters::FFmpegParameters() : + m_format(0), + m_context(0), +@@ -40,7 +36,6 @@ FFmpegParameters::~FFmpegParameters() + av_dict_free(&m_options); + } + +- + void FFmpegParameters::parse(const std::string& name, const std::string& value) + { + if (value.empty()) +@@ -52,7 +47,8 @@ void FFmpegParameters::parse(const std::string& name, + #ifndef ANDROID + avdevice_register_all(); + #endif +- m_format = av_find_input_format(value.c_str()); ++ const AVInputFormat* format = av_find_input_format(value.c_str()); ++ m_format = const_cast<AVInputFormat*>(format); + if (!m_format) + OSG_NOTICE<<"Failed to apply input video format: "<<value.c_str()<<std::endl; + } diff --git a/graphics/osg/files/patch-src_osgPlugins_ffmpeg_ReaderWriterFFmpeg.cpp b/graphics/osg/files/patch-src_osgPlugins_ffmpeg_ReaderWriterFFmpeg.cpp new file mode 100644 index 000000000000..6bf9c3e11141 --- /dev/null +++ b/graphics/osg/files/patch-src_osgPlugins_ffmpeg_ReaderWriterFFmpeg.cpp @@ -0,0 +1,100 @@ +--- src/osgPlugins/ffmpeg/ReaderWriterFFmpeg.cpp.orig 2022-12-01 18:17:31 UTC ++++ src/osgPlugins/ffmpeg/ReaderWriterFFmpeg.cpp +@@ -10,7 +10,6 @@ + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * OpenSceneGraph Public License for more details. + */ +- + #include "FFmpegHeaders.hpp" + #include "FFmpegImageStream.hpp" + #include "FFmpegParameters.hpp" +@@ -19,13 +18,6 @@ + #include <osgDB/FileNameUtils> + #include <osgDB/FileUtils> + +- +-#if LIBAVCODEC_VERSION_MAJOR >= 53 || \ +- (LIBAVCODEC_VERSION_MAJOR==52 && LIBAVCODEC_VERSION_MINOR>=30) || \ +- (LIBAVCODEC_VERSION_MAJOR==52 && LIBAVCODEC_VERSION_MINOR==20 && LIBAVCODEC_VERSION_MICRO >= 1) +- #define USE_AV_LOCK_MANAGER +-#endif +- + extern "C" { + + static void log_to_osg(void* /*ptr*/, int level, const char *fmt, va_list vl) +@@ -100,26 +92,21 @@ class ReaderWriterFFmpeg : public osgDB::ReaderWriter + + supportsOption("format", "Force setting input format (e.g. vfwcap for Windows webcam)"); + supportsOption("pixel_format", "Set pixel format"); +- supportsOption("frame_size", "Set frame size (e.g. 320x240)"); ++ supportsOption("frame_size", "Set frame size (e.g. 320x240)"); + supportsOption("frame_rate", "Set frame rate (e.g. 25)"); + // WARNING: This option is kept for backwards compatibility only, use out_sample_rate instead! + supportsOption("audio_sample_rate", "Set audio sampling rate (e.g. 44100)"); + supportsOption("out_sample_format", "Set the output sample format (e.g. AV_SAMPLE_FMT_S16)"); +- supportsOption("out_sample_rate", "Set the output sample rate or frequency in Hz (e.g. 48000)"); ++ supportsOption("out_sample_rate", "Set the output sample rate or frequency in Hz (e.g. 48000)"); + supportsOption("out_nb_channels", "Set the output number of channels (e.g. 2 for stereo)"); +- supportsOption("context", "AVIOContext* for custom IO"); +- supportsOption("mad", "Max analyze duration (seconds)"); +- supportsOption("rtsp_transport", "RTSP transport (udp, tcp, udp_multicast or http)"); ++ supportsOption("context", "AVIOContext* for custom IO"); ++ supportsOption("mad", "Max analyze duration (seconds)"); ++ supportsOption("rtsp_transport", "RTSP transport (udp, tcp, udp_multicast or http)"); + + av_log_set_callback(log_to_osg); + +-#ifdef USE_AV_LOCK_MANAGER +- // enable thread locking +- av_lockmgr_register(&lockMgr); +-#endif + // Register all FFmpeg formats/codecs +- av_register_all(); +- ++ avdevice_register_all(); + avformat_network_init(); + } + +@@ -218,41 +205,7 @@ class ReaderWriterFFmpeg : public osgDB::ReaderWriter + } + } + } +- +-#ifdef USE_AV_LOCK_MANAGER +- static int lockMgr(void **mutex, enum AVLockOp op) +- { +- // returns are 0 success +- OpenThreads::Mutex **m=(OpenThreads::Mutex**)mutex; +- if (op==AV_LOCK_CREATE) +- { +- *m=new OpenThreads::Mutex; +- return !*m; +- } +- else if (op==AV_LOCK_DESTROY) +- { +- delete *m; +- return 0; +- } +- else if (op==AV_LOCK_OBTAIN) +- { +- (*m)->lock(); +- return 0; +- } +- else if (op==AV_LOCK_RELEASE) +- { +- (*m)->unlock(); +- return 0; +- } +- else +- { +- return -1; +- } +- } +-#endif +- + }; + +- +- + REGISTER_OSGPLUGIN(ffmpeg, ReaderWriterFFmpeg) ++ diff --git a/graphics/osg34/Makefile b/graphics/osg34/Makefile index 4732c45355a7..b08265df70dd 100644 --- a/graphics/osg34/Makefile +++ b/graphics/osg34/Makefile @@ -5,7 +5,7 @@ PORTREVISION= 64 CATEGORIES= graphics PKGNAMESUFFIX= 34 -MAINTAINER= amdmi3@FreeBSD.org +MAINTAINER= ports@FreeBSD.org COMMENT= C++ OpenGL scene graph library for real-time rendering WWW= https://www.openscenegraph.org/ @@ -14,6 +14,9 @@ LICENSE_NAME= OpenSceneGraph Public License LICENSE_FILE= ${WRKSRC}/LICENSE.txt LICENSE_PERMS= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept +DEPRECATED= Obsolete version released in 2015 +EXPIRATION_DATE=2025-09-10 + LIB_DEPENDS= libpng.so:graphics/png \ libtiff.so:graphics/tiff diff --git a/graphics/p5-Cairo/Makefile b/graphics/p5-Cairo/Makefile index e7e20d61515f..2d6f99f601dd 100644 --- a/graphics/p5-Cairo/Makefile +++ b/graphics/p5-Cairo/Makefile @@ -1,6 +1,6 @@ PORTNAME= Cairo PORTVERSION= 1.109 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= graphics perl5 MASTER_SITES= CPAN \ SF/gtk2-perl/Cairo/${PORTVERSION} diff --git a/graphics/p5-Cairo/files/patch-Makefile.PL b/graphics/p5-Cairo/files/patch-Makefile.PL new file mode 100644 index 000000000000..b90da87f1d95 --- /dev/null +++ b/graphics/p5-Cairo/files/patch-Makefile.PL @@ -0,0 +1,14 @@ +Propagate Perl's ccflags to make sure it uses Perl's headers the same way as +Perl itself. + +--- Makefile.PL.orig 2021-01-19 17:26:47 UTC ++++ Makefile.PL +@@ -612,7 +612,7 @@ my $dep = ExtUtils::Depends->new ('Cairo'); + push @typemaps, 'cairo-perl.typemap'; + + my $dep = ExtUtils::Depends->new ('Cairo'); +-$dep->set_inc ('-I. -I'.$autogen_dir.' '.$cairo_cfg{cflags}); ++$dep->set_inc ('-I. -I'.$autogen_dir.' '.$cairo_cfg{cflags}.' '.$Config::Config{ccflags}); + $dep->set_libs ($cairo_cfg{libs}); + $dep->add_xs (@xs_files); + $dep->add_c (qw/cairo-perl-enums.c cairo-perl-flags.c/); diff --git a/graphics/p5-Chart-Clicker/Makefile b/graphics/p5-Chart-Clicker/Makefile index 2e1081d4b90f..9aa285befe17 100644 --- a/graphics/p5-Chart-Clicker/Makefile +++ b/graphics/p5-Chart-Clicker/Makefile @@ -1,6 +1,6 @@ PORTNAME= Chart-Clicker PORTVERSION= 2.90 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= graphics perl5 MASTER_SITES= CPAN PKGNAMEPREFIX= p5- diff --git a/graphics/p5-Gimp/Makefile b/graphics/p5-Gimp/Makefile index f6d7e1b34eae..132cd2d77243 100644 --- a/graphics/p5-Gimp/Makefile +++ b/graphics/p5-Gimp/Makefile @@ -1,6 +1,6 @@ PORTNAME= Gimp PORTVERSION= 2.38 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= graphics perl5 MASTER_SITES= CPAN PKGNAMEPREFIX= p5- diff --git a/graphics/p5-Graphics-Primitive-Driver-Cairo/Makefile b/graphics/p5-Graphics-Primitive-Driver-Cairo/Makefile index 12228117675b..ed566295beeb 100644 --- a/graphics/p5-Graphics-Primitive-Driver-Cairo/Makefile +++ b/graphics/p5-Graphics-Primitive-Driver-Cairo/Makefile @@ -1,5 +1,6 @@ PORTNAME= Graphics-Primitive-Driver-Cairo PORTVERSION= 0.47 +PORTREVISION= 1 CATEGORIES= graphics perl5 MASTER_SITES= CPAN PKGNAMEPREFIX= p5- diff --git a/graphics/plasma6-spectacle/distinfo b/graphics/plasma6-spectacle/distinfo index 30d02b344cc8..fe2bcbf43d46 100644 --- a/graphics/plasma6-spectacle/distinfo +++ b/graphics/plasma6-spectacle/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1751380537 -SHA256 (KDE/plasma/6.4.2/spectacle-6.4.2.tar.xz) = 18b1d0b7e26680666eb86a2b0908c36d9e17a498b352944d89b901183920e0cb -SIZE (KDE/plasma/6.4.2/spectacle-6.4.2.tar.xz) = 1598176 +TIMESTAMP = 1752584468 +SHA256 (KDE/plasma/6.4.3/spectacle-6.4.3.tar.xz) = 9986fc091f913a3f0e1520bd8b3a33e9c174e03f48b4b2af3192bd8a31bb29d8 +SIZE (KDE/plasma/6.4.3/spectacle-6.4.3.tar.xz) = 1598408 diff --git a/graphics/py-f3d/Makefile b/graphics/py-f3d/Makefile index 22af77e74471..b14fe006e826 100644 --- a/graphics/py-f3d/Makefile +++ b/graphics/py-f3d/Makefile @@ -1,6 +1,6 @@ PORTNAME= f3d DISTVERSIONPREFIX= v -DISTVERSION= 3.1.0 +DISTVERSION= 3.2.0 CATEGORIES= graphics PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} diff --git a/graphics/py-f3d/distinfo b/graphics/py-f3d/distinfo index 2fa9f5ca6487..323a3c87394b 100644 --- a/graphics/py-f3d/distinfo +++ b/graphics/py-f3d/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1748895401 -SHA256 (f3d-app-f3d-v3.1.0_GH0.tar.gz) = 93ba23078133122e929d9c1e2946c86da1f08fe56b9ffae40ebfd8185e91380a -SIZE (f3d-app-f3d-v3.1.0_GH0.tar.gz) = 61473994 +TIMESTAMP = 1752181495 +SHA256 (f3d-app-f3d-v3.2.0_GH0.tar.gz) = 2a3cff123821be41d99489e080a7153812e58a86598fa9f4988099660bf6a947 +SIZE (f3d-app-f3d-v3.2.0_GH0.tar.gz) = 68125944 diff --git a/graphics/py-gdal/Makefile b/graphics/py-gdal/Makefile index 5cd4c7449df8..08fef0e30044 100644 --- a/graphics/py-gdal/Makefile +++ b/graphics/py-gdal/Makefile @@ -1,6 +1,5 @@ PORTNAME= gdal -PORTVERSION= 3.11.0 -PORTREVISION= 1 +PORTVERSION= 3.11.3 CATEGORIES= graphics python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} diff --git a/graphics/py-gdal/distinfo b/graphics/py-gdal/distinfo index 43d7d4186f50..78aa21a8c962 100644 --- a/graphics/py-gdal/distinfo +++ b/graphics/py-gdal/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1747715312 -SHA256 (gdal-3.11.0.tar.gz) = ac59ccfe291d3ce4f6a9a3eed17da3777bc3bae970ce27217d4fa85db98650f8 -SIZE (gdal-3.11.0.tar.gz) = 877693 +TIMESTAMP = 1752416412 +SHA256 (gdal-3.11.3.tar.gz) = 4c3ad0fae393b5ddb093a7e4b890077839b2a6acdbd19202657fe4e881886efa +SIZE (gdal-3.11.3.tar.gz) = 878190 diff --git a/graphics/py-gdal/files/patch-pyproject.toml b/graphics/py-gdal/files/patch-pyproject.toml index 7f85867e1502..1a3e906318f9 100644 --- a/graphics/py-gdal/files/patch-pyproject.toml +++ b/graphics/py-gdal/files/patch-pyproject.toml @@ -1,8 +1,8 @@ ---- pyproject.toml.orig 2024-05-06 12:37:20 UTC +--- pyproject.toml.orig 2025-07-01 09:09:51 UTC +++ pyproject.toml @@ -1,12 +1,10 @@ [build-system] --requires = ["setuptools>=67.0.0", +-requires = ["setuptools>=77.0.3", - "wheel", - "oldest-supported-numpy; python_version=='3.8'", - "numpy >=2.0.0rc1; python_version>='3.9'"] @@ -16,3 +16,12 @@ dynamic = ["version", "scripts"] authors = [ {name = "Frank Warmerdam"}, +@@ -19,7 +17,7 @@ keywords = ["gis", "raster", "vector"] + description = "GDAL: Geospatial Data Abstraction Library" + readme = "README.rst" + keywords = ["gis", "raster", "vector"] +-license = "MIT" ++license = {text = "MIT"} + classifiers = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", diff --git a/graphics/py-geosnap/Makefile b/graphics/py-geosnap/Makefile index bf2d2b7f1b1d..85e9dca52b38 100644 --- a/graphics/py-geosnap/Makefile +++ b/graphics/py-geosnap/Makefile @@ -1,5 +1,5 @@ PORTNAME= geosnap -PORTVERSION= 0.15.2 +PORTVERSION= 0.15.3 CATEGORIES= graphics python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} diff --git a/graphics/py-geosnap/distinfo b/graphics/py-geosnap/distinfo index 859084f27b17..b979359f7564 100644 --- a/graphics/py-geosnap/distinfo +++ b/graphics/py-geosnap/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1738982852 -SHA256 (geosnap-0.15.2.tar.gz) = d78f177243446f6ffa0b5817184ee7e9e0bdb1571f79722821b0fc8dc7f5405a -SIZE (geosnap-0.15.2.tar.gz) = 29917764 +TIMESTAMP = 1752266148 +SHA256 (geosnap-0.15.3.tar.gz) = f08a7b9c15aec554023cf28c4bef66bbbbafc7db5d5a9e3e2aebd70b15eb06b1 +SIZE (geosnap-0.15.3.tar.gz) = 29917823 diff --git a/graphics/py-mapclassify/Makefile b/graphics/py-mapclassify/Makefile index 3856b71cb066..e358fe2de757 100644 --- a/graphics/py-mapclassify/Makefile +++ b/graphics/py-mapclassify/Makefile @@ -1,5 +1,5 @@ PORTNAME= mapclassify -PORTVERSION= 2.9.0 +PORTVERSION= 2.10.0 CATEGORIES= graphics python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} diff --git a/graphics/py-mapclassify/distinfo b/graphics/py-mapclassify/distinfo index ca614a828bb0..2fd6a6661cbc 100644 --- a/graphics/py-mapclassify/distinfo +++ b/graphics/py-mapclassify/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1748495823 -SHA256 (mapclassify-2.9.0.tar.gz) = 65fa7a7d778ed63496ff860b9f3c26d632d8f289820a6d8556ac527d14b26bd8 -SIZE (mapclassify-2.9.0.tar.gz) = 5401963 +TIMESTAMP = 1752416424 +SHA256 (mapclassify-2.10.0.tar.gz) = 0d6736a08c0b1e10e6197224ef512951514204706514244bd01aea49fd1442b3 +SIZE (mapclassify-2.10.0.tar.gz) = 6172445 diff --git a/graphics/py-pillow/Makefile b/graphics/py-pillow/Makefile index f96ffe28aede..ac2b8f95de43 100644 --- a/graphics/py-pillow/Makefile +++ b/graphics/py-pillow/Makefile @@ -1,5 +1,5 @@ PORTNAME= pillow -PORTVERSION= 11.2.1 +PORTVERSION= 11.3.0 CATEGORIES= graphics python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} diff --git a/graphics/py-pillow/distinfo b/graphics/py-pillow/distinfo index 5c020407f22e..612f07901e64 100644 --- a/graphics/py-pillow/distinfo +++ b/graphics/py-pillow/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1745936196 -SHA256 (pillow-11.2.1.tar.gz) = a64dd61998416367b7ef979b73d3a85853ba9bec4c2925f74e588879a58716b6 -SIZE (pillow-11.2.1.tar.gz) = 47026707 +TIMESTAMP = 1751622375 +SHA256 (pillow-11.3.0.tar.gz) = 3828ee7586cd0b2091b6209e5ad53e20d0649bbe87164a459d0676e035e8f523 +SIZE (pillow-11.3.0.tar.gz) = 47113069 diff --git a/graphics/py-pycollada/Makefile b/graphics/py-pycollada/Makefile index 37e4ea3a82bc..c85d95ded77c 100644 --- a/graphics/py-pycollada/Makefile +++ b/graphics/py-pycollada/Makefile @@ -1,6 +1,6 @@ PORTNAME= pycollada DISTVERSION= 0.6 -PORTREVISION= 6 +PORTREVISION= 7 CATEGORIES= graphics python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} @@ -21,6 +21,6 @@ USE_PYTHON= autoplist distutils OPTIONS_DEFINE= LXML LXML_DESC= Uses lxml for XML loading, construction, and saving. -LXML_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}lxml>0:devel/py-lxml@${PY_FLAVOR} +LXML_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}lxml5>0:devel/py-lxml5@${PY_FLAVOR} .include <bsd.port.mk> diff --git a/graphics/py-termtosvg/Makefile b/graphics/py-termtosvg/Makefile index 947259a2c182..3d6b89d40203 100644 --- a/graphics/py-termtosvg/Makefile +++ b/graphics/py-termtosvg/Makefile @@ -1,6 +1,6 @@ PORTNAME= termtosvg PORTVERSION= 1.1.0 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= graphics python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} @@ -12,7 +12,7 @@ WWW= https://github.com/nbedos/termtosvg LICENSE= BSD3CLAUSE RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}svgwrite>=0:graphics/py-svgwrite@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}lxml>0:devel/py-lxml@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}lxml5>0:devel/py-lxml5@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pyte>=0:devel/py-pyte@${PY_FLAVOR} USES= python diff --git a/graphics/py-tifffile/Makefile b/graphics/py-tifffile/Makefile index ff9827739709..b97efc5fe285 100644 --- a/graphics/py-tifffile/Makefile +++ b/graphics/py-tifffile/Makefile @@ -1,5 +1,6 @@ PORTNAME= tifffile PORTVERSION= 2025.6.1 +PORTREVISION= 1 CATEGORIES= graphics python MASTER_SITES= PYPI \ https://github.com/cgohlke/tifffile/releases/download/v${PORTVERSION}/ @@ -30,7 +31,7 @@ ZARR_DESC= Access zarr store CODECS_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}imagecodecs>=2024.12.30:graphics/py-imagecodecs@${PY_FLAVOR} PLOT_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}matplotlib>=0:math/py-matplotlib@${PY_FLAVOR} XML_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}defusedxml>=0:devel/py-defusedxml@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}lxml>=0:devel/py-lxml@${PY_FLAVOR} + ${PYTHON_PKGNAMEPREFIX}lxml5>=0:devel/py-lxml5@${PY_FLAVOR} ZARR_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}fsspec>=0:filesystems/py-fsspec@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}kerchunk>=0:filesystems/py-kerchunk@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}zarr>=3:devel/py-zarr@${PY_FLAVOR} diff --git a/graphics/qgis-ltr/Makefile b/graphics/qgis-ltr/Makefile index 75968353d2f4..22d0f30ba71c 100644 --- a/graphics/qgis-ltr/Makefile +++ b/graphics/qgis-ltr/Makefile @@ -1,6 +1,5 @@ PORTNAME= qgis -DISTVERSION= 3.40.8 -PORTREVISION= 1 +DISTVERSION= 3.40.9 CATEGORIES= graphics geography MASTER_SITES= https://qgis.org/downloads/ PKGNAMESUFFIX= -ltr diff --git a/graphics/qgis-ltr/distinfo b/graphics/qgis-ltr/distinfo index 8ac8d3d21e2b..224c0577869f 100644 --- a/graphics/qgis-ltr/distinfo +++ b/graphics/qgis-ltr/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1750597813 -SHA256 (qgis-3.40.8.tar.bz2) = 17b9ad47e964b676c32f5228d3fad668338404c14fc991657363914e4317ed4f -SIZE (qgis-3.40.8.tar.bz2) = 183915862 +TIMESTAMP = 1752928201 +SHA256 (qgis-3.40.9.tar.bz2) = 1b9cf895917d21e2cdb6858e079fe35d1c058e731b0cb1a5b42eeaa31dc5a537 +SIZE (qgis-3.40.9.tar.bz2) = 184036057 diff --git a/graphics/qgis-ltr/pkg-plist b/graphics/qgis-ltr/pkg-plist index 6a327cab3626..923f8192989a 100644 --- a/graphics/qgis-ltr/pkg-plist +++ b/graphics/qgis-ltr/pkg-plist @@ -1339,6 +1339,7 @@ include/qgis/qgsprocessingfeedback.h include/qgis/qgsprocessingfieldmapwidgetwrapper.h include/qgis/qgsprocessinggui.h include/qgis/qgsprocessingguiregistry.h +include/qgis/qgsprocessingguiutils.h include/qgis/qgsprocessinghelpeditorwidget.h include/qgis/qgsprocessinghistoryprovider.h include/qgis/qgsprocessinghistorywidget.h diff --git a/graphics/qgis/Makefile b/graphics/qgis/Makefile index 638e671201a6..cf64b07941b0 100644 --- a/graphics/qgis/Makefile +++ b/graphics/qgis/Makefile @@ -1,6 +1,5 @@ PORTNAME= qgis -DISTVERSION= 3.44.0 -PORTREVISION= 1 +DISTVERSION= 3.44.1 CATEGORIES= graphics geography MASTER_SITES= https://qgis.org/downloads/ diff --git a/graphics/qgis/distinfo b/graphics/qgis/distinfo index f5668280b11f..fbee2451425f 100644 --- a/graphics/qgis/distinfo +++ b/graphics/qgis/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1750571856 -SHA256 (qgis-3.44.0.tar.bz2) = 81e5088060f38ab4e9835b05e5eec1ba7cc2eb903105830808b60215ae2cd320 -SIZE (qgis-3.44.0.tar.bz2) = 190272372 +TIMESTAMP = 1752899169 +SHA256 (qgis-3.44.1.tar.bz2) = b228ef7093da0e9f7a594b93a57ef737cdefd8c07b84ccff251da1f7d2bb6f4b +SIZE (qgis-3.44.1.tar.bz2) = 187982326 diff --git a/graphics/qgis/pkg-plist b/graphics/qgis/pkg-plist index ce9c47c290d5..3616f7c3f390 100644 --- a/graphics/qgis/pkg-plist +++ b/graphics/qgis/pkg-plist @@ -3838,10 +3838,12 @@ share/metainfo/org.qgis.qgis.appdata.xml %%DATADIR%%/i18n/qgis_cs.qm %%DATADIR%%/i18n/qgis_da.qm %%DATADIR%%/i18n/qgis_de.qm +%%DATADIR%%/i18n/qgis_el.qm %%DATADIR%%/i18n/qgis_en_US.qm %%DATADIR%%/i18n/qgis_es.qm %%DATADIR%%/i18n/qgis_et.qm %%DATADIR%%/i18n/qgis_eu.qm +%%DATADIR%%/i18n/qgis_fa.qm %%DATADIR%%/i18n/qgis_fi.qm %%DATADIR%%/i18n/qgis_fr.qm %%DATADIR%%/i18n/qgis_gl.qm @@ -3850,6 +3852,7 @@ share/metainfo/org.qgis.qgis.appdata.xml %%DATADIR%%/i18n/qgis_it.qm %%DATADIR%%/i18n/qgis_ja.qm %%DATADIR%%/i18n/qgis_ko.qm +%%DATADIR%%/i18n/qgis_ky.qm %%DATADIR%%/i18n/qgis_lt.qm %%DATADIR%%/i18n/qgis_lv.qm %%DATADIR%%/i18n/qgis_nb.qm diff --git a/graphics/rawstudio/Makefile b/graphics/rawstudio/Makefile index 24eb07ef4d06..910ce22b8034 100644 --- a/graphics/rawstudio/Makefile +++ b/graphics/rawstudio/Makefile @@ -10,8 +10,6 @@ WWW= https://rawstudio.org/ LICENSE= GPLv2+ -BROKEN= Fails to build with libxml2 2.13+, error: use of undeclared identifier 'xmlDocPtr' - BUILD_DEPENDS= ${LOCALBASE}/include/fftw3.h:math/fftw3 LIB_DEPENDS= libcurl.so:ftp/curl \ liblcms.so:graphics/lcms \ diff --git a/graphics/rawstudio/files/patch-libxml2-2.12.7 b/graphics/rawstudio/files/patch-libxml2-2.12.7 index 39256d3688a5..6a6d8861d262 100644 --- a/graphics/rawstudio/files/patch-libxml2-2.12.7 +++ b/graphics/rawstudio/files/patch-libxml2-2.12.7 @@ -58,6 +58,26 @@ #include <libxml/xmlwriter.h> #include "rs-utils.h" +--- plugins/output-facebook/rs-facebook-client.c ++++ plugins/output-facebook/rs-facebook-client.c +@@ -19,6 +19,7 @@ + + #include <curl/curl.h> + #include <libxml/encoding.h> ++#include <libxml/tree.h> + #include <gtk/gtk.h> + #include <glib.h> + #include <glib/gstdio.h> +--- plugins/output-picasa/rs-picasa-client.c ++++ plugins/output-picasa/rs-picasa-client.c +@@ -10,6 +10,7 @@ + #include <glib.h> + #include <gtk/gtk.h> + #include <libxml/encoding.h> ++#include <libxml/tree.h> + #include <string.h> + #include <curl/curl.h> + #include "rs-picasa-client.h" --- src/rs-batch.c +++ src/rs-batch.c @@ -23,6 +23,7 @@ diff --git a/graphics/rubygem-mini_magick/Makefile b/graphics/rubygem-mini_magick/Makefile index 26a9d3a2b14c..0a42560e840d 100644 --- a/graphics/rubygem-mini_magick/Makefile +++ b/graphics/rubygem-mini_magick/Makefile @@ -1,5 +1,5 @@ PORTNAME= mini_magick -PORTVERSION= 5.2.0 +PORTVERSION= 5.3.0 CATEGORIES= graphics rubygems MASTER_SITES= RG @@ -10,8 +10,7 @@ WWW= https://github.com/minimagick/minimagick LICENSE= MIT LICENSE_FILE= ${WRKSRC}/MIT-LICENSE -RUN_DEPENDS= rubygem-benchmark>=0:benchmarks/rubygem-benchmark \ - rubygem-logger>=0:devel/rubygem-logger +RUN_DEPENDS= rubygem-logger>=0:devel/rubygem-logger USES= gem magick:${FLAVOR} diff --git a/graphics/rubygem-mini_magick/distinfo b/graphics/rubygem-mini_magick/distinfo index 8200aea2d06f..eb2346034f41 100644 --- a/graphics/rubygem-mini_magick/distinfo +++ b/graphics/rubygem-mini_magick/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1740836320 -SHA256 (rubygem/mini_magick-5.2.0.gem) = 2757ffbfdb1d38242d1da9ff1505360ab75d59dc02eb7ab79ff6d5acb1243f4a -SIZE (rubygem/mini_magick-5.2.0.gem) = 21504 +TIMESTAMP = 1752416430 +SHA256 (rubygem/mini_magick-5.3.0.gem) = 6f13309c90f9ebe204b4c3f04d0a5a9265c5f734950894e83fa2480d4aa79ba4 +SIZE (rubygem/mini_magick-5.3.0.gem) = 21504 diff --git a/graphics/variety/Makefile b/graphics/variety/Makefile index 2cbf850c2d4d..864e26e7c73a 100644 --- a/graphics/variety/Makefile +++ b/graphics/variety/Makefile @@ -1,5 +1,6 @@ PORTNAME= variety PORTVERSION= 0.8.13 +PORTREVISION= 1 CATEGORIES= graphics MAINTAINER= nivit@FreeBSD.org @@ -18,7 +19,7 @@ RUN_DEPENDS= ${PY_PILLOW} \ ${PYTHON_PKGNAMEPREFIX}configobj>=5.0.6:devel/py-configobj@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}dbus>=1.1.1_1:devel/py-dbus@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}httplib2>=0.9:www/py-httplib2@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}lxml>=3.4.1_1:devel/py-lxml@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}lxml5>=3.4.1_1:devel/py-lxml5@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pillow>=7.0.0:graphics/py-pillow@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}requests>0:www/py-requests@${PY_FLAVOR} \ bash>=4.3.33:shells/bash \ diff --git a/graphics/vhs/Makefile b/graphics/vhs/Makefile index 874050dcfe21..00b1e894e36f 100644 --- a/graphics/vhs/Makefile +++ b/graphics/vhs/Makefile @@ -1,6 +1,7 @@ PORTNAME= vhs DISTVERSIONPREFIX= v DISTVERSION= 0.10.0 +PORTREVISION= 1 CATEGORIES= graphics MAINTAINER= dtxdf@FreeBSD.org diff --git a/graphics/vips/Makefile b/graphics/vips/Makefile index 3e9aa60067f3..e02bb8413e5a 100644 --- a/graphics/vips/Makefile +++ b/graphics/vips/Makefile @@ -1,5 +1,5 @@ PORTNAME= vips -PORTVERSION= 8.17.0 +PORTVERSION= 8.17.1 CATEGORIES= graphics MASTER_SITES= https://github.com/libvips/libvips/releases/download/v${PORTVERSION}/ diff --git a/graphics/vips/distinfo b/graphics/vips/distinfo index b1cd0252c0c0..d3e6483b31e5 100644 --- a/graphics/vips/distinfo +++ b/graphics/vips/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1749813016 -SHA256 (vips-8.17.0.tar.xz) = 8256a82f2e64c119ffadac99822350f45212f16df2505ea8dbae5ff4d0001996 -SIZE (vips-8.17.0.tar.xz) = 29496800 +TIMESTAMP = 1752266012 +SHA256 (vips-8.17.1.tar.xz) = 4d8c3325922c5300253d7594507a8f1d3caf8eed70dfb66cc7eb2cbed65bb5ca +SIZE (vips-8.17.1.tar.xz) = 29529248 diff --git a/graphics/vips/pkg-plist b/graphics/vips/pkg-plist index 4eafcb025ce4..3fd92496605b 100644 --- a/graphics/vips/pkg-plist +++ b/graphics/vips/pkg-plist @@ -60,11 +60,11 @@ include/vips/vips8 lib/libvips-cpp.a lib/libvips-cpp.so lib/libvips-cpp.so.42 -lib/libvips-cpp.so.42.19.0 +lib/libvips-cpp.so.42.19.1 lib/libvips.a lib/libvips.so lib/libvips.so.42 -lib/libvips.so.42.19.0 +lib/libvips.so.42.19.1 libdata/pkgconfig/vips-cpp.pc libdata/pkgconfig/vips.pc %%PORTDOCS%%%%DOCSDIR%%/Combine.png diff --git a/graphics/vulkan-caps-viewer/Makefile b/graphics/vulkan-caps-viewer/Makefile index 09a7d0ccf61e..be8721a1bc18 100644 --- a/graphics/vulkan-caps-viewer/Makefile +++ b/graphics/vulkan-caps-viewer/Makefile @@ -2,27 +2,31 @@ PORTNAME= vulkan-caps-viewer DISTVERSION= 4.02 CATEGORIES= graphics -MAINTAINER= ports@FreeBSD.org +MAINTAINER= atanubiswas484@gmail.com COMMENT= Vulkan Hardware Capability Viewer WWW= https://vulkan.gpuinfo.org/ LICENSE= LGPL3 # based on license headers +BUILD_DEPENDS= ${LOCALBASE}/include/vulkan/vulkan.h:graphics/vulkan-headers LIB_DEPENDS= libvulkan.so:graphics/vulkan-loader USES= compiler:c++11-lib pkgconfig qmake qt:5 USE_GITHUB= yes -USE_QT= qmake:build buildtools:build core gui network widgets GH_ACCOUNT= SaschaWillems GH_PROJECT= VulkanCapsViewer -GH_TUPLE= KhronosGroup:Vulkan-Headers:v1.4.320:vkheaders/Vulkan-Headers +USE_QT= core gui network widgets buildtools:build qmake:build + LDFLAGS+= -Wl,--as-needed # avoid overlinking (GL, wayland) + +PORTSCOUT= skipv:sdk_2023_1 + PLIST_FILES= bin/vulkanCapsViewer \ share/applications/vulkanCapsViewer.desktop \ share/icons/hicolor/256x256/apps/vulkanCapsViewer.png -OPTIONS_DEFINE= WAYLAND X11 -OPTIONS_DEFAULT=WAYLAND X11 +OPTIONS_DEFINE= WAYLAND X11 +OPTIONS_DEFAULT= WAYLAND X11 WAYLAND_CATEGORIES= wayland WAYLAND_LIB_DEPENDS= libwayland-client.so:graphics/wayland @@ -43,5 +47,7 @@ post-patch: ${WRKSRC}/vulkanCapsViewer.pro @${REINPLACE_CMD} -e 's/__linux/__unix/' \ ${WRKSRC}/vulkancapsviewer.cpp + @${REINPLACE_CMD} -e 's|$$$$PWD/Vulkan-Headers/include/vulkan/vulkan.h|${LOCALBASE}/include/vulkan/vulkan.h|' \ + ${WRKSRC}/vulkanCapsViewer.pri .include <bsd.port.mk> diff --git a/graphics/vulkan-caps-viewer/distinfo b/graphics/vulkan-caps-viewer/distinfo index a8b4856669ad..9b29f8c5f63d 100644 --- a/graphics/vulkan-caps-viewer/distinfo +++ b/graphics/vulkan-caps-viewer/distinfo @@ -1,5 +1,3 @@ -TIMESTAMP = 1751043175 +TIMESTAMP = 1752265390 SHA256 (SaschaWillems-VulkanCapsViewer-4.02_GH0.tar.gz) = f16873ad56bf4fa5981bdd18526c93a6a3825a64bbb8d2e9c9313664c4c6ea43 SIZE (SaschaWillems-VulkanCapsViewer-4.02_GH0.tar.gz) = 2868716 -SHA256 (KhronosGroup-Vulkan-Headers-v1.4.320_GH0.tar.gz) = 26bf2befead6bf397263a74885dac3e68d133af76062321c2a5ce81de47b8429 -SIZE (KhronosGroup-Vulkan-Headers-v1.4.320_GH0.tar.gz) = 2629365 diff --git a/graphics/vulkan-extension-layer/Makefile b/graphics/vulkan-extension-layer/Makefile index a735c96149c4..550377be5c3c 100644 --- a/graphics/vulkan-extension-layer/Makefile +++ b/graphics/vulkan-extension-layer/Makefile @@ -1,9 +1,9 @@ PORTNAME= vulkan-extension-layer DISTVERSIONPREFIX= v -DISTVERSION= 1.4.313 +DISTVERSION= 1.4.321 CATEGORIES= graphics -MAINTAINER= ports@FreeBSD.org +MAINTAINER= atanubiswas484@gmail.com COMMENT= Layer providing Vulkan features when native support is unavailable WWW= https://github.com/KhronosGroup/Vulkan-ExtensionLayer @@ -21,15 +21,16 @@ CMAKE_OFF= BUILD_TESTS OPTIONS_DEFINE= WAYLAND XCB XLIB OPTIONS_DEFAULT=WAYLAND XCB XLIB +XCB_DESC= ${X11_DESC} via libxcb +XLIB_DESC= ${X11_DESC} via libX11 + WAYLAND_LIB_DEPENDS= libwayland-egl.so:graphics/wayland WAYLAND_CMAKE_BOOL= BUILD_WSI_WAYLAND_SUPPORT -XCB_DESC= ${X11_DESC} via libxcb XCB_USES= xorg XCB_USE= XORG=xcb XCB_CMAKE_BOOL= BUILD_WSI_XCB_SUPPORT -XLIB_DESC= ${X11_DESC} via libX11 XLIB_USES= xorg XLIB_USE= XORG=x11,xrandr XLIB_CMAKE_BOOL= BUILD_WSI_XLIB_SUPPORT diff --git a/graphics/vulkan-extension-layer/distinfo b/graphics/vulkan-extension-layer/distinfo index 04e44e73640c..f6e0eb758543 100644 --- a/graphics/vulkan-extension-layer/distinfo +++ b/graphics/vulkan-extension-layer/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1745251687 -SHA256 (KhronosGroup-Vulkan-ExtensionLayer-v1.4.313_GH0.tar.gz) = 14fdaf5cbbc02ce7dbacbaadeb1e9d63dc49f07a32214c4995ea9909bb534dc1 -SIZE (KhronosGroup-Vulkan-ExtensionLayer-v1.4.313_GH0.tar.gz) = 789915 +TIMESTAMP = 1752189602 +SHA256 (KhronosGroup-Vulkan-ExtensionLayer-v1.4.321_GH0.tar.gz) = 177a356162cfcf47c50cc0f0dcd51630196f171f21d6cefe3fb8b5d514f60d49 +SIZE (KhronosGroup-Vulkan-ExtensionLayer-v1.4.321_GH0.tar.gz) = 790149 diff --git a/graphics/vulkan-headers/Makefile b/graphics/vulkan-headers/Makefile index 654e6b301b41..bfc613c19d27 100644 --- a/graphics/vulkan-headers/Makefile +++ b/graphics/vulkan-headers/Makefile @@ -1,9 +1,9 @@ PORTNAME= vulkan-headers DISTVERSIONPREFIX= v -DISTVERSION= 1.4.320 +DISTVERSION= 1.4.322 CATEGORIES= graphics -MAINTAINER= ports@FreeBSD.org +MAINTAINER= atanubiswas484@gmail.com COMMENT= Headers for the Vulkan graphics API WWW= https://github.com/KhronosGroup/Vulkan-Headers @@ -13,14 +13,15 @@ USES= cmake USE_GITHUB= yes GH_ACCOUNT= KhronosGroup GH_PROJECT= Vulkan-Headers -STRIP= # nothing to strip -NO_ARCH= yes # XXX Add clang-scan-deps to WITH_CLANG_EXTRAS in src.conf(5) .if exists(/usr/bin/clang) && !exists(/usr/bin/clang-scan-deps) CMAKE_OFF+= VULKAN_HEADERS_ENABLE_MODULE .endif +STRIP= # nothing to strip +NO_ARCH= yes + post-extract: # genvk.py requires docgenerator.py from Vulkan-Docs, so drop useless shebang @${FIND} ${WRKSRC}/registry -name \*.py -exec ${REINPLACE_CMD} -i '' '/^#!/d' {} + diff --git a/graphics/vulkan-headers/distinfo b/graphics/vulkan-headers/distinfo index 9f9617c29d44..c39e531e65b0 100644 --- a/graphics/vulkan-headers/distinfo +++ b/graphics/vulkan-headers/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1751022519 -SHA256 (KhronosGroup-Vulkan-Headers-v1.4.320_GH0.tar.gz) = 26bf2befead6bf397263a74885dac3e68d133af76062321c2a5ce81de47b8429 -SIZE (KhronosGroup-Vulkan-Headers-v1.4.320_GH0.tar.gz) = 2629365 +TIMESTAMP = 1752318911 +SHA256 (KhronosGroup-Vulkan-Headers-v1.4.322_GH0.tar.gz) = c5ec1d0e1baf9c2ca4eb581e5ba31ad4ef83cdab1f6c959e459b97b92739f92d +SIZE (KhronosGroup-Vulkan-Headers-v1.4.322_GH0.tar.gz) = 2740918 diff --git a/graphics/vulkan-loader/Makefile b/graphics/vulkan-loader/Makefile index 583b2a8b03d3..bc6c18fb3314 100644 --- a/graphics/vulkan-loader/Makefile +++ b/graphics/vulkan-loader/Makefile @@ -1,9 +1,9 @@ PORTNAME= vulkan-loader DISTVERSIONPREFIX= v -DISTVERSION= 1.4.320 +DISTVERSION= 1.4.321 CATEGORIES= graphics devel -MAINTAINER= ports@FreeBSD.org +MAINTAINER= atanubiswas484@gmail.com COMMENT= Driver loader for the Vulkan graphics API WWW= https://github.com/KhronosGroup/Vulkan-Loader @@ -13,9 +13,9 @@ BUILD_DEPENDS= vulkan-headers>0:graphics/vulkan-headers USES= alias cmake compiler:c++11-lib pkgconfig python:build USE_GITHUB= yes -USE_LDCONFIG= yes GH_ACCOUNT= KhronosGroup GH_PROJECT= Vulkan-Loader +USE_LDCONFIG= yes CMAKE_ON= CMAKE_SKIP_RPATH CMAKE_OFF= BUILD_TESTS PLIST_SUB= VERSION=${DISTVERSION:C/-.*//} @@ -23,15 +23,16 @@ PLIST_SUB= VERSION=${DISTVERSION:C/-.*//} OPTIONS_DEFINE= WAYLAND XCB XLIB OPTIONS_DEFAULT=WAYLAND XCB XLIB +XCB_DESC= ${X11_DESC} via libxcb +XLIB_DESC= ${X11_DESC} via libX11 + WAYLAND_LIB_DEPENDS= libwayland-client.so:graphics/wayland WAYLAND_CMAKE_BOOL= BUILD_WSI_WAYLAND_SUPPORT -XCB_DESC= ${X11_DESC} via libxcb XCB_USES= xorg XCB_USE= XORG=xcb XCB_CMAKE_BOOL= BUILD_WSI_XCB_SUPPORT -XLIB_DESC= ${X11_DESC} via libX11 XLIB_USES= xorg XLIB_USE= XORG=x11,xrandr XLIB_CMAKE_BOOL= BUILD_WSI_XLIB_SUPPORT diff --git a/graphics/vulkan-loader/distinfo b/graphics/vulkan-loader/distinfo index f85387a59b19..ace3f1a21f95 100644 --- a/graphics/vulkan-loader/distinfo +++ b/graphics/vulkan-loader/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1751041519 -SHA256 (KhronosGroup-Vulkan-Loader-v1.4.320_GH0.tar.gz) = 8cec80f3b617a30a94a354121a47b090187d5fe70f668eb26eb71010a18a88a0 -SIZE (KhronosGroup-Vulkan-Loader-v1.4.320_GH0.tar.gz) = 1761554 +TIMESTAMP = 1752188907 +SHA256 (KhronosGroup-Vulkan-Loader-v1.4.321_GH0.tar.gz) = 00669f6bb2db35c8df07f0b118c09bfe0ebffecaad7d80647a429eece0e37ac3 +SIZE (KhronosGroup-Vulkan-Loader-v1.4.321_GH0.tar.gz) = 1762478 diff --git a/graphics/vulkan-tools/Makefile b/graphics/vulkan-tools/Makefile index f177f11605a0..97a64bd4de20 100644 --- a/graphics/vulkan-tools/Makefile +++ b/graphics/vulkan-tools/Makefile @@ -1,10 +1,9 @@ PORTNAME= vulkan-tools DISTVERSIONPREFIX= v -DISTVERSION= 1.4.320 -PORTREVISION= 1 +DISTVERSION= 1.4.321 CATEGORIES= graphics -MAINTAINER= ports@FreeBSD.org +MAINTAINER= atanubiswas484@gmail.com COMMENT= Tools and demos for the Vulkan graphics API WWW= https://github.com/KhronosGroup/Vulkan-Tools @@ -17,24 +16,25 @@ USES= alias cmake compiler:c++11-lib pkgconfig python:build USE_GITHUB= yes GH_ACCOUNT= KhronosGroup GH_PROJECT= Vulkan-Tools -CMAKE_OFF= BUILD_ICD CMAKE_ARGS= -DGLSLANG_INSTALL_DIR:PATH="${LOCALBASE}" +CMAKE_OFF= BUILD_ICD OPTIONS_DEFINE= WAYLAND XCB XLIB OPTIONS_DEFAULT= WAYLAND XCB XLIB +XCB_DESC= ${X11_DESC} via libxcb +XLIB_DESC= ${X11_DESC} via libX11 + WAYLAND_CATEGORIES= wayland WAYLAND_BUILD_DEPENDS= evdev-proto>0:devel/evdev-proto \ wayland-protocols>0:graphics/wayland-protocols WAYLAND_LIB_DEPENDS= libwayland-client.so:graphics/wayland WAYLAND_CMAKE_BOOL= BUILD_WSI_WAYLAND_SUPPORT -XCB_DESC= ${X11_DESC} via libxcb XCB_USES= xorg XCB_USE= XORG=xcb XCB_CMAKE_BOOL= BUILD_WSI_XCB_SUPPORT -XLIB_DESC= ${X11_DESC} via libX11 XLIB_USES= xorg XLIB_USE= XORG=x11 XLIB_CMAKE_BOOL= BUILD_WSI_XLIB_SUPPORT diff --git a/graphics/vulkan-tools/distinfo b/graphics/vulkan-tools/distinfo index 4b9611aa040f..dc7c7bd4ba44 100644 --- a/graphics/vulkan-tools/distinfo +++ b/graphics/vulkan-tools/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1751043806 -SHA256 (KhronosGroup-Vulkan-Tools-v1.4.320_GH0.tar.gz) = 6de7b073ee45dc6e8421d4f3fd8fb3c9bf4cd07cf83ddfa905f4e4d93eba6c36 -SIZE (KhronosGroup-Vulkan-Tools-v1.4.320_GH0.tar.gz) = 805785 +TIMESTAMP = 1752190908 +SHA256 (KhronosGroup-Vulkan-Tools-v1.4.321_GH0.tar.gz) = f5f75413d21d1508b746a3d0594961d64c7155ee5f4f28245b9547c1b4697d8d +SIZE (KhronosGroup-Vulkan-Tools-v1.4.321_GH0.tar.gz) = 807369 diff --git a/graphics/vulkan-utility-libraries/Makefile b/graphics/vulkan-utility-libraries/Makefile index 62c3054e0a11..69026e4899f9 100644 --- a/graphics/vulkan-utility-libraries/Makefile +++ b/graphics/vulkan-utility-libraries/Makefile @@ -1,9 +1,9 @@ PORTNAME= vulkan-utility-libraries DISTVERSIONPREFIX= v -DISTVERSION= 1.4.320 +DISTVERSION= 1.4.321 CATEGORIES= graphics -MAINTAINER= ports@FreeBSD.org +MAINTAINER= atanubiswas484@gmail.com COMMENT= Utility libraries for Vulkan developers WWW= https://github.com/KhronosGroup/Vulkan-Utility-Libraries diff --git a/graphics/vulkan-utility-libraries/distinfo b/graphics/vulkan-utility-libraries/distinfo index 2a304359de34..9ee941230cd8 100644 --- a/graphics/vulkan-utility-libraries/distinfo +++ b/graphics/vulkan-utility-libraries/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1751041510 -SHA256 (KhronosGroup-Vulkan-Utility-Libraries-v1.4.320_GH0.tar.gz) = fb210bde874a4688b0fae98089c4d7cd4496c99bfae5d9aaa37b008f6b3a00d6 -SIZE (KhronosGroup-Vulkan-Utility-Libraries-v1.4.320_GH0.tar.gz) = 623211 +TIMESTAMP = 1752192249 +SHA256 (KhronosGroup-Vulkan-Utility-Libraries-v1.4.321_GH0.tar.gz) = 853eb1e9a390fed9a66ebca7f3390e58f6d467d9e16ab35830a03ef66cf87a22 +SIZE (KhronosGroup-Vulkan-Utility-Libraries-v1.4.321_GH0.tar.gz) = 625800 diff --git a/graphics/vulkan-utility-libraries/pkg-descr b/graphics/vulkan-utility-libraries/pkg-descr index eaebc143ec56..f20539c49dc3 100644 --- a/graphics/vulkan-utility-libraries/pkg-descr +++ b/graphics/vulkan-utility-libraries/pkg-descr @@ -1 +1,6 @@ -Shared code across various Vulkan repositories. +Vulkan-Utility-Libraries provides shared utility code for Vulkan SDK developers. +It includes standardized layer settings and header-only utilities like dispatch +table setup, format helpers, Vulkan struct handling, and enum-to-string helpers. + +This repository improves code reuse and reduces maintenance overhead across +multiple Vulkan-related projects. diff --git a/graphics/vulkan-validation-layers/Makefile b/graphics/vulkan-validation-layers/Makefile index 1d4e5858594f..42054403f4e8 100644 --- a/graphics/vulkan-validation-layers/Makefile +++ b/graphics/vulkan-validation-layers/Makefile @@ -1,10 +1,9 @@ PORTNAME= vulkan-validation-layers DISTVERSIONPREFIX= v -DISTVERSION= 1.4.320 -PORTREVISION= 1 +DISTVERSION= 1.4.321 CATEGORIES= graphics -MAINTAINER= ports@FreeBSD.org +MAINTAINER= atanubis484@gmail.com COMMENT= Validation layers for the Vulkan graphics API WWW= https://github.com/KhronosGroup/Vulkan-ValidationLayers @@ -22,18 +21,22 @@ GH_PROJECT= Vulkan-ValidationLayers GH_TUPLE= KhronosGroup:SPIRV-Headers:1.5.4.raytracing.fixed-430-g2a611a9:headers/SPIRV-Headers CMAKE_OFF= BUILD_TESTS -OPTIONS_DEFINE= WAYLAND XCB XLIB -OPTIONS_DEFAULT=WAYLAND XCB XLIB +PLIST_FILES= lib/libVkLayer_khronos_validation.so \ + share/vulkan/explicit_layer.d/VkLayer_khronos_validation.json + +OPTIONS_DEFINE= WAYLAND XCB XLIB +OPTIONS_DEFAULT= WAYLAND XCB XLIB + +XCB_DESC= ${X11_DESC} via libxcb +XLIB_DESC= ${X11_DESC} via libX11 WAYLAND_LIB_DEPENDS= libwayland-egl.so:graphics/wayland WAYLAND_CMAKE_BOOL= BUILD_WSI_WAYLAND_SUPPORT -XCB_DESC= ${X11_DESC} via libxcb XCB_USES= xorg XCB_USE= XORG=xcb XCB_CMAKE_BOOL= BUILD_WSI_XCB_SUPPORT -XLIB_DESC= ${X11_DESC} via libX11 XLIB_USES= xorg XLIB_USE= XORG=x11,xrandr XLIB_CMAKE_BOOL= BUILD_WSI_XLIB_SUPPORT diff --git a/graphics/vulkan-validation-layers/distinfo b/graphics/vulkan-validation-layers/distinfo index f8424217620a..106014142470 100644 --- a/graphics/vulkan-validation-layers/distinfo +++ b/graphics/vulkan-validation-layers/distinfo @@ -1,5 +1,5 @@ -TIMESTAMP = 1751051574 -SHA256 (KhronosGroup-Vulkan-ValidationLayers-v1.4.320_GH0.tar.gz) = 96488f23efe7ca71d3ec539c43ed0eacba7ace9adeb052b6fde771c256c1bf66 -SIZE (KhronosGroup-Vulkan-ValidationLayers-v1.4.320_GH0.tar.gz) = 6468110 +TIMESTAMP = 1752313850 +SHA256 (KhronosGroup-Vulkan-ValidationLayers-v1.4.321_GH0.tar.gz) = b539b4862f02bb75a211afa939d59c37263604e88331cf06de5249ff0453cc78 +SIZE (KhronosGroup-Vulkan-ValidationLayers-v1.4.321_GH0.tar.gz) = 6476609 SHA256 (KhronosGroup-SPIRV-Headers-1.5.4.raytracing.fixed-430-g2a611a9_GH0.tar.gz) = f88c4918fc307c406b03587689bec0b7b5aaf9539955d3ee7a698342c2c52e8e SIZE (KhronosGroup-SPIRV-Headers-1.5.4.raytracing.fixed-430-g2a611a9_GH0.tar.gz) = 538631 diff --git a/graphics/vulkan-validation-layers/pkg-plist b/graphics/vulkan-validation-layers/pkg-plist deleted file mode 100644 index 9175df639946..000000000000 --- a/graphics/vulkan-validation-layers/pkg-plist +++ /dev/null @@ -1,2 +0,0 @@ -lib/libVkLayer_khronos_validation.so -share/vulkan/explicit_layer.d/VkLayer_khronos_validation.json diff --git a/graphics/waylandpp/Makefile b/graphics/waylandpp/Makefile index 9da095eb838f..ea0860dbc688 100644 --- a/graphics/waylandpp/Makefile +++ b/graphics/waylandpp/Makefile @@ -1,5 +1,5 @@ PORTNAME= waylandpp -DISTVERSION= 1.0.0 +DISTVERSION= 1.0.1 CATEGORIES= graphics MAINTAINER= eduardo@FreeBSD.org @@ -12,7 +12,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE LIB_DEPENDS= libpugixml.so:textproc/pugixml \ libwayland-egl.so:graphics/wayland -USES= cmake compiler:c++11-lang gl localbase:ldflags pkgconfig xorg +USES= cmake compiler:c++11-lang gl localbase:ldflags pkgconfig USE_GITHUB= yes GH_ACCOUNT= NilsBrause USE_GL= egl diff --git a/graphics/waylandpp/distinfo b/graphics/waylandpp/distinfo index 1add68a778d8..6f74bc9d09f4 100644 --- a/graphics/waylandpp/distinfo +++ b/graphics/waylandpp/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1656001374 -SHA256 (NilsBrause-waylandpp-1.0.0_GH0.tar.gz) = b20b45917382c6b87e9380130c9a1a1c563da2f498de5830df12fbce326dd9f5 -SIZE (NilsBrause-waylandpp-1.0.0_GH0.tar.gz) = 203510 +TIMESTAMP = 1752525900 +SHA256 (NilsBrause-waylandpp-1.0.1_GH0.tar.gz) = 49c362fa5db28ab5472968215b88f1fbe3a7b7f57818dde722fd7d38997d940a +SIZE (NilsBrause-waylandpp-1.0.1_GH0.tar.gz) = 203547 diff --git a/graphics/webp/Makefile b/graphics/webp/Makefile index 1626d50f5b47..563ac6cf7511 100644 --- a/graphics/webp/Makefile +++ b/graphics/webp/Makefile @@ -1,5 +1,5 @@ PORTNAME= webp -PORTVERSION= 1.5.0 +PORTVERSION= 1.6.0 CATEGORIES= graphics MASTER_SITES= http://downloads.webmproject.org/releases/webp/ \ https://storage.googleapis.com/downloads.webmproject.org/releases/webp/ diff --git a/graphics/webp/distinfo b/graphics/webp/distinfo index d7f76f9f7154..61d3285727d7 100644 --- a/graphics/webp/distinfo +++ b/graphics/webp/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1735227800 -SHA256 (libwebp-1.5.0.tar.gz) = 7d6fab70cf844bf6769077bd5d7a74893f8ffd4dfb42861745750c63c2a5c92c -SIZE (libwebp-1.5.0.tar.gz) = 4267494 +TIMESTAMP = 1752266014 +SHA256 (libwebp-1.6.0.tar.gz) = e4ab7009bf0629fd11982d4c2aa83964cf244cffba7347ecd39019a9e38c4564 +SIZE (libwebp-1.6.0.tar.gz) = 4296070 diff --git a/graphics/webp/pkg-plist b/graphics/webp/pkg-plist index 8a11904328be..2f05b52eafdd 100644 --- a/graphics/webp/pkg-plist +++ b/graphics/webp/pkg-plist @@ -16,23 +16,23 @@ include/webp/types.h lib/libsharpyuv.a lib/libsharpyuv.so lib/libsharpyuv.so.0 -lib/libsharpyuv.so.0.1.1 +lib/libsharpyuv.so.0.1.2 lib/libwebp.a lib/libwebp.so lib/libwebp.so.7 -lib/libwebp.so.7.1.10 +lib/libwebp.so.7.2.0 lib/libwebpdecoder.a lib/libwebpdecoder.so lib/libwebpdecoder.so.3 -lib/libwebpdecoder.so.3.1.10 +lib/libwebpdecoder.so.3.2.0 lib/libwebpdemux.a lib/libwebpdemux.so lib/libwebpdemux.so.2 -lib/libwebpdemux.so.2.0.16 +lib/libwebpdemux.so.2.0.17 lib/libwebpmux.a lib/libwebpmux.so lib/libwebpmux.so.3 -lib/libwebpmux.so.3.1.1 +lib/libwebpmux.so.3.1.2 libdata/pkgconfig/libsharpyuv.pc libdata/pkgconfig/libwebp.pc libdata/pkgconfig/libwebpdecoder.pc diff --git a/graphics/xmlgraphics-commons/Makefile b/graphics/xmlgraphics-commons/Makefile index ad963a60ec1b..875e1d17628b 100644 --- a/graphics/xmlgraphics-commons/Makefile +++ b/graphics/xmlgraphics-commons/Makefile @@ -1,11 +1,11 @@ PORTNAME= xmlgraphics-commons -PORTVERSION= 2.6 +DISTVERSION= 2.11 DISTVERSIONSUFFIX= -bin CATEGORIES= graphics textproc java MASTER_SITES= APACHE/xmlgraphics/commons/binaries \ https://archive.apache.org/dist/xmlgraphics/commons/binaries/ -MAINTAINER= ports@FreeBSD.org +MAINTAINER= atanubiswas484@gmail.com COMMENT= Several reusable components used by Apache Batik and FOP WWW= https://xmlgraphics.apache.org/commons/ @@ -17,14 +17,14 @@ USES= java NO_ARCH= yes NO_BUILD= yes -WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION} +WRKSRC= ${WRKDIR}/${PORTNAME}-${DISTVERSION} PLIST_FILES= ${JAVAJARDIR}/${JARFILE_VER} \ ${JAVAJARDIR}/${JARFILE} PORTDOCS= * JARFILE= ${PORTNAME}.jar -JARFILE_VER= ${PORTNAME}-${PORTVERSION}.jar +JARFILE_VER= ${PORTNAME}-${DISTVERSION}.jar OPTIONS_DEFINE= DOCS diff --git a/graphics/xmlgraphics-commons/distinfo b/graphics/xmlgraphics-commons/distinfo index ec1a202d60ac..a93b66cdcac4 100644 --- a/graphics/xmlgraphics-commons/distinfo +++ b/graphics/xmlgraphics-commons/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1626809136 -SHA256 (xmlgraphics-commons-2.6-bin.tar.gz) = 2f92a74fe6c54685c31fb988eb1dc2134f4e4f567c31d9d4e103f07001300ab3 -SIZE (xmlgraphics-commons-2.6-bin.tar.gz) = 1580005 +TIMESTAMP = 1752609194 +SHA256 (xmlgraphics-commons-2.11-bin.tar.gz) = 690a3301c3f320dd78092622bfc0e7f20c9457f048c37947c3700a4d7dc124f0 +SIZE (xmlgraphics-commons-2.11-bin.tar.gz) = 2009106 diff --git a/graphics/zathura-pdf-mupdf/Makefile b/graphics/zathura-pdf-mupdf/Makefile index 63a4a241d273..ca48d5ee2792 100644 --- a/graphics/zathura-pdf-mupdf/Makefile +++ b/graphics/zathura-pdf-mupdf/Makefile @@ -1,6 +1,6 @@ PORTNAME= zathura-pdf-mupdf DISTVERSION= 0.4.4 -PORTREVISION= 3 +PORTREVISION= 4 CATEGORIES= graphics MASTER_SITES= https://pwmt.org/projects/zathura-pdf-mupdf/download/ diff --git a/graphics/zathura-pdf-mupdf/files/patch-meson.build b/graphics/zathura-pdf-mupdf/files/patch-meson.build new file mode 100644 index 000000000000..52af85b6f040 --- /dev/null +++ b/graphics/zathura-pdf-mupdf/files/patch-meson.build @@ -0,0 +1,58 @@ +--- meson.build.orig 2024-08-04 08:34:58 UTC ++++ meson.build +@@ -22,8 +22,7 @@ cairo = dependency('cairo') + girara = dependency('girara-gtk3') + glib = dependency('glib-2.0') + cairo = dependency('cairo') +-mupdf = dependency('mupdf', required: false, version: '>=@0@.@1@'.format(mupdf_required_version_major, mupdf_required_version_minor)) +-mupdfthird = cc.find_library('mupdf-third') ++mupdf = cc.find_library('mupdf') + + build_dependencies = [ + zathura, +@@ -32,43 +31,19 @@ build_dependencies = [ + cairo, + ] + +-if not mupdf.found() +- # normal build of mupdf +- mupdf = cc.find_library('mupdf', has_headers: ['mupdf/fitz/version.h', 'mupdf/fitz.h', 'mupdf/pdf.h'], required: true) +- version_check = ''' +-#include <mupdf/fitz/version.h> ++ build_dependencies += [mupdf] + +-#if FZ_VERSION_MAJOR < @0@ || (FZ_VERSION_MAJOR == @0@ && FZ_VERSION_MINOR < @1@) +-#error "mupdf @0@.@1@ or newer is requried" +-#endif +-'''.format(mupdf_required_version_major, mupdf_required_version_minor) +- if not cc.compiles(version_check, dependencies: [mupdf]) +- error('mupdf @0@.@1@ or newer is required'.format(mupdf_required_version_major, mupdf_required_version_minor)) +- endif +- +- build_dependencies += [mupdf, mupdfthird] +-else +- # build from Debian's libmupdf-dev +- build_dependencies += [mupdf, mupdfthird] +- + libjpeg = dependency('libjpeg') + libjbig2dec = cc.find_library('jbig2dec') + libopenjp2 = dependency('libopenjp2') + gumbo = dependency('gumbo') +- tesseract = dependency('tesseract') +- leptonica = dependency('lept') +- mujs = dependency('mujs') + + build_dependencies += [ + libjpeg, + libjbig2dec, + libopenjp2, +- gumbo, +- tesseract, +- leptonica, +- mujs ++ gumbo + ] +-endif + + if get_option('plugindir') == '' + plugindir = zathura.get_variable(pkgconfig: 'plugindir') |