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,132 +1,155 @@ PORTNAME= jellyfin-ffmpeg -PORTVERSION= 8.1.2.4 +PORTVERSION= 8.1.2.5 CATEGORIES= multimedia MAINTAINER= michaeljohnson@ahze.net COMMENT= FFmpeg with patches for HDR tone mapping (tonemapx/libplacebo) WWW= https://github.com/jellyfin/jellyfin-ffmpeg LICENSE= GPLv2+ LGPL21+ LICENSE_COMB= multi 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 \ libfreetype.so:print/freetype2 \ libfribidi.so:converters/fribidi \ libgmp.so:math/gmp \ libharfbuzz.so:print/harfbuzz \ libmp3lame.so:audio/lame \ libopenmpt.so:audio/libopenmpt \ libopus.so:audio/opus \ libplacebo.so:graphics/libplacebo \ libshaderc_shared.so:graphics/shaderc \ libSvtAv1Enc.so:multimedia/svt-av1 \ libtheoraenc.so:multimedia/libtheora \ libvorbis.so:audio/libvorbis \ libvpx.so:multimedia/libvpx \ libvulkan.so:graphics/vulkan-loader \ libwebp.so:graphics/webp \ libx264.so:multimedia/libx264 \ libx265.so:multimedia/x265 \ libzimg.so:graphics/sekrit-twc-zimg \ libzvbi.so:devel/libzvbi \ libgnutls.so:security/gnutls \ libxml2.so:textproc/libxml2 \ libiconv.so:converters/libiconv \ libva.so:multimedia/libva \ libva-drm.so:multimedia/libva \ libdrm.so:graphics/libdrm \ libvdpau.so:multimedia/libvdpau \ libX11.so:x11/libX11 \ 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 # in PREFIX. --enable-rpath lets the binary load the bundled libs without # ldconfig even when base ffmpeg shares the same soname. JFFMPEG_DIR= ${PREFIX}/lib/jellyfin-ffmpeg8 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 CONFIGURE_ARGS= --prefix="${JFFMPEG_DIR}" \ --libdir="${JFFMPEG_DIR}/lib" \ --enable-rpath \ --target-os=freebsd \ --cc="${CC}" --cxx="${CXX}" \ --extra-version=Jellyfin \ --disable-unstable \ --disable-doc \ --disable-ffplay \ --disable-static \ --disable-libxcb \ --disable-sdl2 \ --disable-xlib \ --enable-lto=auto \ --enable-gpl \ --enable-version3 \ --enable-shared \ --enable-gmp \ --enable-gnutls \ --enable-libxml2 \ --enable-libass \ --enable-libfreetype \ --enable-libfribidi \ --enable-libfontconfig \ --enable-libharfbuzz \ --enable-libbluray \ --enable-chromaprint \ --enable-libdrm \ --enable-libfdk-aac \ --enable-libmp3lame \ --enable-libopenmpt \ --enable-libopus \ --enable-libtheora \ --enable-libvorbis \ --enable-libdav1d \ --enable-libsvtav1 \ --enable-libwebp \ --enable-libvpx \ --enable-libx264 \ --enable-libx265 \ --enable-libzimg \ --enable-libzvbi \ --enable-libplacebo \ --enable-libshaderc \ --enable-vulkan \ --enable-vaapi \ --enable-vdpau \ --disable-ffnvcodec INSTALL_TARGET= install-progs install-data install-libs post-install: # Version-suffixed symlinks in /usr/local/bin for PATH access ${LN} -sf ../lib/jellyfin-ffmpeg8/bin/ffmpeg ${STAGEDIR}${PREFIX}/bin/jellyfin-ffmpeg8 ${LN} -sf ../lib/jellyfin-ffmpeg8/bin/ffprobe ${STAGEDIR}${PREFIX}/bin/jellyfin-ffprobe8 .include 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