git: 3f3ce2a60f96 - main - multimedia/jellyfin-ffmpeg: Update to 8.1.2.5

From: Jochen Neumeister <joneum_at_FreeBSD.org>
Date: Wed, 23 Sep 2026 13:11:45 UTC
The branch main has been updated by joneum:

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

commit 3f3ce2a60f968c105fcc6984a7f7dffedb18027b
Author:     Michael Johnson <michaeljohnson@ahze.net>
AuthorDate: 2026-09-23 13:10:36 +0000
Commit:     Jochen Neumeister <joneum@FreeBSD.org>
CommitDate: 2026-09-23 13:11:20 +0000

    multimedia/jellyfin-ffmpeg: Update to 8.1.2.5
    
    Build chromaprint statically, which drops the dependency on
    audio/chromaprint and a second FFmpeg with it.
    
    PR:             298787
    Sponsored by:   Netzkommune GmbH
---
 multimedia/jellyfin-ffmpeg/Makefile | 29 ++++++++++++++++++++++++++---
 multimedia/jellyfin-ffmpeg/distinfo |  8 +++++---
 2 files changed, 31 insertions(+), 6 deletions(-)

diff --git a/multimedia/jellyfin-ffmpeg/Makefile b/multimedia/jellyfin-ffmpeg/Makefile
index ab4c9baa1c7b..32a40449e5f4 100644
--- a/multimedia/jellyfin-ffmpeg/Makefile
+++ b/multimedia/jellyfin-ffmpeg/Makefile
@@ -1,5 +1,5 @@
 PORTNAME=	jellyfin-ffmpeg
-PORTVERSION=	8.1.2.4
+PORTVERSION=	8.1.2.5
 CATEGORIES=	multimedia
 
 MAINTAINER=	michaeljohnson@ahze.net
@@ -13,11 +13,12 @@ ONLY_FOR_ARCHS=	aarch64 amd64
 ONLY_FOR_ARCHS_REASON=	upstream jellyfin-ffmpeg targets 64-bit; 32-bit builds non-PIC asm that lld rejects
 
 BUILD_DEPENDS=	nasm:devel/nasm \
+		${LOCALBASE}/include/fftw3.h:math/fftw3 \
+		${LOCALBASE}/lib/libfftw3f.a:math/fftw3-float \
 		${LOCALBASE}/include/vulkan/vulkan.h:graphics/vulkan-headers
 PATCH_DEPENDS=	quilt:devel/quilt
 LIB_DEPENDS=	libass.so:multimedia/libass \
 		libbluray.so:multimedia/libbluray \
-		libchromaprint.so:audio/chromaprint \
 		libdav1d.so:multimedia/dav1d \
 		libfdk-aac.so:audio/fdk-aac \
 		libfontconfig.so:x11-fonts/fontconfig \
@@ -51,11 +52,12 @@ LIB_DEPENDS=	libass.so:multimedia/libass \
 		libasound.so:audio/alsa-lib \
 		libsndio.so:audio/sndio
 
-USES=		compiler:c17 gmake localbase:ldflags pkgconfig tar:xz
+USES=		cmake:indirect compiler:c17 gmake localbase:ldflags pkgconfig tar:xz
 USE_GITHUB=	yes
 GH_ACCOUNT=	jellyfin
 GH_PROJECT=	jellyfin-ffmpeg
 GH_TAGNAME=	v${PORTVERSION:C/\.([0-9]+)$/-\1/}
+GH_TUPLE=	acoustid:chromaprint:v1.6.0:chromaprint
 
 # Everything installs into a private subdir so nothing collides with
 # multimedia/ffmpeg or jellyfin-ffmpeg7; only the suffixed bin/ symlinks land
@@ -67,8 +69,29 @@ post-patch:
 	cd ${WRKSRC} && QUILT_PATCHES=debian/patches quilt push -a || \
 	    QUILT_PATCHES=debian/patches quilt applied | ${GREP} -q 0098
 
+# Static chromaprint on fftw3f, as upstream's builder does: audio/chromaprint
+# links multimedia/ffmpeg for its FFT, dragging a second FFmpeg and ~30 other
+# ports (gcc, boost, numpy, ...) into this port's runtime.
+CHROMAPRINT_PREFIX=	${WRKDIR}/chromaprint-static
+CMAKE_INSTALL_PREFIX=	${CHROMAPRINT_PREFIX}
+CMAKE_ARGS+=	-DCMAKE_INSTALL_LIBDIR:STRING=lib -DFFT_LIB:STRING=fftw3f
+CMAKE_ON=	CMAKE_DISABLE_FIND_PACKAGE_FFmpeg CMAKE_POSITION_INDEPENDENT_CODE
+CMAKE_OFF=	BUILD_SHARED_LIBS BUILD_TESTS BUILD_TOOLS
+
+pre-configure:
+	${SETENVI} ${WRK_ENV} ${CMAKE_BIN} ${CMAKE_ARGS} \
+	    -S ${WRKSRC_chromaprint} -B ${WRKDIR}/chromaprint-build
+	${SETENVI} ${WRK_ENV} ${CMAKE_BIN} --build ${WRKDIR}/chromaprint-build \
+	    -j ${MAKE_JOBS_NUMBER}
+	${SETENVI} ${WRK_ENV} ${CMAKE_BIN} --install ${WRKDIR}/chromaprint-build
+	# configure links with plain `pkg-config --libs` (shared build), so the
+	# static deps go in Libs:, not Libs.private: as upstream's builder does
+	${REINPLACE_CMD} -e 's|^Libs:.*|Libs: -L$${libdir} -lchromaprint ${LOCALBASE}/lib/libfftw3f.a -lc++ -lm|' \
+	    ${CHROMAPRINT_PREFIX}/lib/pkgconfig/libchromaprint.pc
+
 HAS_CONFIGURE=	yes
 CONFIGURE_LOG=	ffbuild/config.log
+CONFIGURE_ENV+=	PKG_CONFIG_PATH=${CHROMAPRINT_PREFIX}/lib/pkgconfig
 NOPRECIOUSMAKEVARS=	yes
 
 MAKE_ENV+=	V=1
diff --git a/multimedia/jellyfin-ffmpeg/distinfo b/multimedia/jellyfin-ffmpeg/distinfo
index ef5adb38d3dd..6d14bfd5d8f4 100644
--- a/multimedia/jellyfin-ffmpeg/distinfo
+++ b/multimedia/jellyfin-ffmpeg/distinfo
@@ -1,3 +1,5 @@
-TIMESTAMP = 1788678647
-SHA256 (jellyfin-jellyfin-ffmpeg-8.1.2.4-v8.1.2-4_GH0.tar.gz) = eeb6b4a095193520293e59e2f9a17e7126ba697cc7e194377f7f63919988e6e0
-SIZE (jellyfin-jellyfin-ffmpeg-8.1.2.4-v8.1.2-4_GH0.tar.gz) = 17717861
+TIMESTAMP = 1790153155
+SHA256 (jellyfin-jellyfin-ffmpeg-8.1.2.5-v8.1.2-5_GH0.tar.gz) = 2d871248eb86f15ce54dad8d57787cf2c098b5c675b556d1f40025b1ae53acd0
+SIZE (jellyfin-jellyfin-ffmpeg-8.1.2.5-v8.1.2-5_GH0.tar.gz) = 17733403
+SHA256 (acoustid-chromaprint-v1.6.0_GH0.tar.gz) = 65bfce4a35b2e673dbcda917b6aa577e2f145cf805243d19e6a50fea2a520c2a
+SIZE (acoustid-chromaprint-v1.6.0_GH0.tar.gz) = 1580199