diff --git a/multimedia/jellyfin-ffmpeg7/Makefile b/multimedia/jellyfin-ffmpeg7/Makefile index 84cae91d5b1e..e5876394dc2b 100644 --- a/multimedia/jellyfin-ffmpeg7/Makefile +++ b/multimedia/jellyfin-ffmpeg7/Makefile @@ -1,153 +1,136 @@ PORTNAME= jellyfin-ffmpeg7 PORTVERSION= 7.1.4.3 +PORTREVISION= 1 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/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 USE_GITHUB= yes GH_ACCOUNT= jellyfin GH_PROJECT= jellyfin-ffmpeg GH_TAGNAME= v${PORTVERSION:C/\.([0-9]+)$/-\1/} # Everything installs into a private subdir so nothing collides with -# multimedia/ffmpeg or with jellyfin-ffmpeg8. Standard PREFIX is untouched: -# ${PREFIX}/lib/jellyfin-ffmpeg7/bin/ffmpeg <- real binary -# ${PREFIX}/lib/jellyfin-ffmpeg7/lib/libav* <- bundled libs (ldconfig) -# ${PREFIX}/bin/jellyfin-ffmpeg7 <- version-suffixed symlink -# The only files outside the private dir are the suffixed bin/ symlinks. -# --enable-rpath (below) makes the binary load these bundled libs even when -# base multimedia/ffmpeg is installed with the same soname. -# The bundled headers stay under the private prefix so they do not collide -# with multimedia/ffmpeg's include/libav*. The pkg-config files are relocated -# in post-install to libdata/pkgconfig with a jellyfin-ffmpeg7- filename prefix -# (Requires tokens rewritten to match) so they are discoverable system-wide -# without colliding with multimedia/ffmpeg's libav*.pc. +# multimedia/ffmpeg or jellyfin-ffmpeg8; 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-ffmpeg7 -USE_LDCONFIG= ${JFFMPEG_DIR}/lib post-patch: cd ${WRKSRC} && QUILT_PATCHES=debian/patches quilt push -a || \ QUILT_PATCHES=debian/patches quilt applied | ${GREP} -q 0094 HAS_CONFIGURE= yes CONFIGURE_LOG= ffbuild/config.log 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-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 install-headers +INSTALL_TARGET= install-progs install-data install-libs post-install: # Version-suffixed symlinks in /usr/local/bin for PATH access ${LN} -sf ../lib/jellyfin-ffmpeg7/bin/ffmpeg ${STAGEDIR}${PREFIX}/bin/jellyfin-ffmpeg7 ${LN} -sf ../lib/jellyfin-ffmpeg7/bin/ffprobe ${STAGEDIR}${PREFIX}/bin/jellyfin-ffprobe7 # Unversioned alias: this port is the current jellyfin-ffmpeg. Consumers # (jellyfin, immich) reference the stable /usr/local/bin/jellyfin-ffmpeg. ${LN} -sf ../lib/jellyfin-ffmpeg7/bin/ffmpeg ${STAGEDIR}${PREFIX}/bin/jellyfin-ffmpeg ${LN} -sf ../lib/jellyfin-ffmpeg7/bin/ffprobe ${STAGEDIR}${PREFIX}/bin/jellyfin-ffprobe - # Relocate the private pkg-config files to libdata/pkgconfig under a - # jellyfin-ffmpeg7- prefix. Rewrite Name and the Requires cross-refs so - # pkg-config resolves them to each other, not to multimedia/ffmpeg. - @${MKDIR} ${STAGEDIR}${PREFIX}/libdata/pkgconfig - @cd ${STAGEDIR}${JFFMPEG_DIR}/lib/pkgconfig && for pc in *.pc; do \ - ${SED} -E \ - -e 's/^(Name: )/\1jellyfin-ffmpeg7-/' \ - -e '/^Requires/ s/lib(avcodec|avdevice|avfilter|avformat|avutil|postproc|swresample|swscale)/jellyfin-ffmpeg7-lib\1/g' \ - $${pc} > ${STAGEDIR}${PREFIX}/libdata/pkgconfig/jellyfin-ffmpeg7-$${pc}; \ - done - ${RM} -r ${STAGEDIR}${JFFMPEG_DIR}/lib/pkgconfig .include diff --git a/multimedia/jellyfin-ffmpeg7/pkg-plist b/multimedia/jellyfin-ffmpeg7/pkg-plist index 37ffa642b910..898b02880a25 100644 --- a/multimedia/jellyfin-ffmpeg7/pkg-plist +++ b/multimedia/jellyfin-ffmpeg7/pkg-plist @@ -1,186 +1,36 @@ bin/jellyfin-ffmpeg7 bin/jellyfin-ffmpeg bin/jellyfin-ffprobe bin/jellyfin-ffprobe7 lib/jellyfin-ffmpeg7/bin/ffmpeg lib/jellyfin-ffmpeg7/bin/ffprobe -lib/jellyfin-ffmpeg7/include/libavcodec/ac3_parser.h -lib/jellyfin-ffmpeg7/include/libavcodec/adts_parser.h -lib/jellyfin-ffmpeg7/include/libavcodec/avcodec.h -lib/jellyfin-ffmpeg7/include/libavcodec/avdct.h -lib/jellyfin-ffmpeg7/include/libavcodec/avfft.h -lib/jellyfin-ffmpeg7/include/libavcodec/bsf.h -lib/jellyfin-ffmpeg7/include/libavcodec/codec.h -lib/jellyfin-ffmpeg7/include/libavcodec/codec_desc.h -lib/jellyfin-ffmpeg7/include/libavcodec/codec_id.h -lib/jellyfin-ffmpeg7/include/libavcodec/codec_par.h -lib/jellyfin-ffmpeg7/include/libavcodec/d3d11va.h -lib/jellyfin-ffmpeg7/include/libavcodec/defs.h -lib/jellyfin-ffmpeg7/include/libavcodec/dirac.h -lib/jellyfin-ffmpeg7/include/libavcodec/dv_profile.h -lib/jellyfin-ffmpeg7/include/libavcodec/dxva2.h -lib/jellyfin-ffmpeg7/include/libavcodec/jni.h -lib/jellyfin-ffmpeg7/include/libavcodec/mediacodec.h -lib/jellyfin-ffmpeg7/include/libavcodec/packet.h -lib/jellyfin-ffmpeg7/include/libavcodec/qsv.h -lib/jellyfin-ffmpeg7/include/libavcodec/vdpau.h -lib/jellyfin-ffmpeg7/include/libavcodec/version.h -lib/jellyfin-ffmpeg7/include/libavcodec/version_major.h -lib/jellyfin-ffmpeg7/include/libavcodec/videotoolbox.h -lib/jellyfin-ffmpeg7/include/libavcodec/vorbis_parser.h -lib/jellyfin-ffmpeg7/include/libavdevice/avdevice.h -lib/jellyfin-ffmpeg7/include/libavdevice/version.h -lib/jellyfin-ffmpeg7/include/libavdevice/version_major.h -lib/jellyfin-ffmpeg7/include/libavfilter/avfilter.h -lib/jellyfin-ffmpeg7/include/libavfilter/buffersink.h -lib/jellyfin-ffmpeg7/include/libavfilter/buffersrc.h -lib/jellyfin-ffmpeg7/include/libavfilter/version.h -lib/jellyfin-ffmpeg7/include/libavfilter/version_major.h -lib/jellyfin-ffmpeg7/include/libavformat/avformat.h -lib/jellyfin-ffmpeg7/include/libavformat/avio.h -lib/jellyfin-ffmpeg7/include/libavformat/version.h -lib/jellyfin-ffmpeg7/include/libavformat/version_major.h -lib/jellyfin-ffmpeg7/include/libavutil/adler32.h -lib/jellyfin-ffmpeg7/include/libavutil/aes.h -lib/jellyfin-ffmpeg7/include/libavutil/aes_ctr.h -lib/jellyfin-ffmpeg7/include/libavutil/ambient_viewing_environment.h -lib/jellyfin-ffmpeg7/include/libavutil/attributes.h -lib/jellyfin-ffmpeg7/include/libavutil/audio_fifo.h -lib/jellyfin-ffmpeg7/include/libavutil/avassert.h -lib/jellyfin-ffmpeg7/include/libavutil/avconfig.h -lib/jellyfin-ffmpeg7/include/libavutil/avstring.h -lib/jellyfin-ffmpeg7/include/libavutil/avutil.h -lib/jellyfin-ffmpeg7/include/libavutil/base64.h -lib/jellyfin-ffmpeg7/include/libavutil/blowfish.h -lib/jellyfin-ffmpeg7/include/libavutil/bprint.h -lib/jellyfin-ffmpeg7/include/libavutil/bswap.h -lib/jellyfin-ffmpeg7/include/libavutil/buffer.h -lib/jellyfin-ffmpeg7/include/libavutil/camellia.h -lib/jellyfin-ffmpeg7/include/libavutil/cast5.h -lib/jellyfin-ffmpeg7/include/libavutil/channel_layout.h -lib/jellyfin-ffmpeg7/include/libavutil/common.h -lib/jellyfin-ffmpeg7/include/libavutil/cpu.h -lib/jellyfin-ffmpeg7/include/libavutil/crc.h -lib/jellyfin-ffmpeg7/include/libavutil/csp.h -lib/jellyfin-ffmpeg7/include/libavutil/des.h -lib/jellyfin-ffmpeg7/include/libavutil/detection_bbox.h -lib/jellyfin-ffmpeg7/include/libavutil/dict.h -lib/jellyfin-ffmpeg7/include/libavutil/display.h -lib/jellyfin-ffmpeg7/include/libavutil/dovi_meta.h -lib/jellyfin-ffmpeg7/include/libavutil/downmix_info.h -lib/jellyfin-ffmpeg7/include/libavutil/encryption_info.h -lib/jellyfin-ffmpeg7/include/libavutil/error.h -lib/jellyfin-ffmpeg7/include/libavutil/eval.h -lib/jellyfin-ffmpeg7/include/libavutil/executor.h -lib/jellyfin-ffmpeg7/include/libavutil/ffversion.h -lib/jellyfin-ffmpeg7/include/libavutil/fifo.h -lib/jellyfin-ffmpeg7/include/libavutil/file.h -lib/jellyfin-ffmpeg7/include/libavutil/film_grain_params.h -lib/jellyfin-ffmpeg7/include/libavutil/frame.h -lib/jellyfin-ffmpeg7/include/libavutil/hash.h -lib/jellyfin-ffmpeg7/include/libavutil/hdr_dynamic_metadata.h -lib/jellyfin-ffmpeg7/include/libavutil/hdr_dynamic_vivid_metadata.h -lib/jellyfin-ffmpeg7/include/libavutil/hmac.h -lib/jellyfin-ffmpeg7/include/libavutil/hwcontext.h -lib/jellyfin-ffmpeg7/include/libavutil/hwcontext_cuda.h -lib/jellyfin-ffmpeg7/include/libavutil/hwcontext_d3d11va.h -lib/jellyfin-ffmpeg7/include/libavutil/hwcontext_d3d12va.h -lib/jellyfin-ffmpeg7/include/libavutil/hwcontext_drm.h -lib/jellyfin-ffmpeg7/include/libavutil/hwcontext_dxva2.h -lib/jellyfin-ffmpeg7/include/libavutil/hwcontext_mediacodec.h -lib/jellyfin-ffmpeg7/include/libavutil/hwcontext_opencl.h -lib/jellyfin-ffmpeg7/include/libavutil/hwcontext_qsv.h -lib/jellyfin-ffmpeg7/include/libavutil/hwcontext_rkmpp.h -lib/jellyfin-ffmpeg7/include/libavutil/hwcontext_vaapi.h -lib/jellyfin-ffmpeg7/include/libavutil/hwcontext_vdpau.h -lib/jellyfin-ffmpeg7/include/libavutil/hwcontext_videotoolbox.h -lib/jellyfin-ffmpeg7/include/libavutil/hwcontext_vulkan.h -lib/jellyfin-ffmpeg7/include/libavutil/iamf.h -lib/jellyfin-ffmpeg7/include/libavutil/imgutils.h -lib/jellyfin-ffmpeg7/include/libavutil/intfloat.h -lib/jellyfin-ffmpeg7/include/libavutil/intreadwrite.h -lib/jellyfin-ffmpeg7/include/libavutil/lfg.h -lib/jellyfin-ffmpeg7/include/libavutil/log.h -lib/jellyfin-ffmpeg7/include/libavutil/lzo.h -lib/jellyfin-ffmpeg7/include/libavutil/macros.h -lib/jellyfin-ffmpeg7/include/libavutil/mastering_display_metadata.h -lib/jellyfin-ffmpeg7/include/libavutil/mathematics.h -lib/jellyfin-ffmpeg7/include/libavutil/md5.h -lib/jellyfin-ffmpeg7/include/libavutil/mem.h -lib/jellyfin-ffmpeg7/include/libavutil/motion_vector.h -lib/jellyfin-ffmpeg7/include/libavutil/murmur3.h -lib/jellyfin-ffmpeg7/include/libavutil/opt.h -lib/jellyfin-ffmpeg7/include/libavutil/parseutils.h -lib/jellyfin-ffmpeg7/include/libavutil/pixdesc.h -lib/jellyfin-ffmpeg7/include/libavutil/pixelutils.h -lib/jellyfin-ffmpeg7/include/libavutil/pixfmt.h -lib/jellyfin-ffmpeg7/include/libavutil/random_seed.h -lib/jellyfin-ffmpeg7/include/libavutil/rational.h -lib/jellyfin-ffmpeg7/include/libavutil/rc4.h -lib/jellyfin-ffmpeg7/include/libavutil/replaygain.h -lib/jellyfin-ffmpeg7/include/libavutil/ripemd.h -lib/jellyfin-ffmpeg7/include/libavutil/samplefmt.h -lib/jellyfin-ffmpeg7/include/libavutil/sha.h -lib/jellyfin-ffmpeg7/include/libavutil/sha512.h -lib/jellyfin-ffmpeg7/include/libavutil/spherical.h -lib/jellyfin-ffmpeg7/include/libavutil/stereo3d.h -lib/jellyfin-ffmpeg7/include/libavutil/tea.h -lib/jellyfin-ffmpeg7/include/libavutil/threadmessage.h -lib/jellyfin-ffmpeg7/include/libavutil/time.h -lib/jellyfin-ffmpeg7/include/libavutil/timecode.h -lib/jellyfin-ffmpeg7/include/libavutil/timestamp.h -lib/jellyfin-ffmpeg7/include/libavutil/tree.h -lib/jellyfin-ffmpeg7/include/libavutil/twofish.h -lib/jellyfin-ffmpeg7/include/libavutil/tx.h -lib/jellyfin-ffmpeg7/include/libavutil/uuid.h -lib/jellyfin-ffmpeg7/include/libavutil/version.h -lib/jellyfin-ffmpeg7/include/libavutil/video_enc_params.h -lib/jellyfin-ffmpeg7/include/libavutil/video_hint.h -lib/jellyfin-ffmpeg7/include/libavutil/xtea.h -lib/jellyfin-ffmpeg7/include/libpostproc/postprocess.h -lib/jellyfin-ffmpeg7/include/libpostproc/version.h -lib/jellyfin-ffmpeg7/include/libpostproc/version_major.h -lib/jellyfin-ffmpeg7/include/libswresample/swresample.h -lib/jellyfin-ffmpeg7/include/libswresample/version.h -lib/jellyfin-ffmpeg7/include/libswresample/version_major.h -lib/jellyfin-ffmpeg7/include/libswscale/swscale.h -lib/jellyfin-ffmpeg7/include/libswscale/version.h -lib/jellyfin-ffmpeg7/include/libswscale/version_major.h lib/jellyfin-ffmpeg7/lib/libavcodec.so lib/jellyfin-ffmpeg7/lib/libavcodec.so.61 lib/jellyfin-ffmpeg7/lib/libavcodec.so.61.19.101 lib/jellyfin-ffmpeg7/lib/libavdevice.so lib/jellyfin-ffmpeg7/lib/libavdevice.so.61 lib/jellyfin-ffmpeg7/lib/libavdevice.so.61.3.100 lib/jellyfin-ffmpeg7/lib/libavfilter.so lib/jellyfin-ffmpeg7/lib/libavfilter.so.10 lib/jellyfin-ffmpeg7/lib/libavfilter.so.10.5.100 lib/jellyfin-ffmpeg7/lib/libavformat.so lib/jellyfin-ffmpeg7/lib/libavformat.so.61 lib/jellyfin-ffmpeg7/lib/libavformat.so.61.7.103 lib/jellyfin-ffmpeg7/lib/libavutil.so lib/jellyfin-ffmpeg7/lib/libavutil.so.59 lib/jellyfin-ffmpeg7/lib/libavutil.so.59.39.100 lib/jellyfin-ffmpeg7/lib/libpostproc.so lib/jellyfin-ffmpeg7/lib/libpostproc.so.58 lib/jellyfin-ffmpeg7/lib/libpostproc.so.58.3.100 lib/jellyfin-ffmpeg7/lib/libswresample.so lib/jellyfin-ffmpeg7/lib/libswresample.so.5 lib/jellyfin-ffmpeg7/lib/libswresample.so.5.3.100 lib/jellyfin-ffmpeg7/lib/libswscale.so lib/jellyfin-ffmpeg7/lib/libswscale.so.8 lib/jellyfin-ffmpeg7/lib/libswscale.so.8.3.100 -libdata/pkgconfig/jellyfin-ffmpeg7-libavcodec.pc -libdata/pkgconfig/jellyfin-ffmpeg7-libavdevice.pc -libdata/pkgconfig/jellyfin-ffmpeg7-libavfilter.pc -libdata/pkgconfig/jellyfin-ffmpeg7-libavformat.pc -libdata/pkgconfig/jellyfin-ffmpeg7-libavutil.pc -libdata/pkgconfig/jellyfin-ffmpeg7-libpostproc.pc -libdata/pkgconfig/jellyfin-ffmpeg7-libswresample.pc -libdata/pkgconfig/jellyfin-ffmpeg7-libswscale.pc lib/jellyfin-ffmpeg7/share/ffmpeg/ffprobe.xsd lib/jellyfin-ffmpeg7/share/ffmpeg/libvpx-1080p.ffpreset lib/jellyfin-ffmpeg7/share/ffmpeg/libvpx-1080p50_60.ffpreset lib/jellyfin-ffmpeg7/share/ffmpeg/libvpx-360p.ffpreset lib/jellyfin-ffmpeg7/share/ffmpeg/libvpx-720p.ffpreset lib/jellyfin-ffmpeg7/share/ffmpeg/libvpx-720p50_60.ffpreset