public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Ionen Wolkens" <ionen@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: media-video/ffmpeg-compat/
Date: Fri, 15 Aug 2025 07:49:27 +0000 (UTC)	[thread overview]
Message-ID: <1755244123.8b3755324e03bb04d65f5312549b1e10bcd75187.ionen@gentoo> (raw)

commit:     8b3755324e03bb04d65f5312549b1e10bcd75187
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Fri Aug 15 07:40:58 2025 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Fri Aug 15 07:48:43 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8b375532

media-video/ffmpeg-compat: add 6.1.3

Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 media-video/ffmpeg-compat/Manifest                 |   3 +
 .../ffmpeg-compat/ffmpeg-compat-6.1.3.ebuild       | 571 +++++++++++++++++++++
 2 files changed, 574 insertions(+)

diff --git a/media-video/ffmpeg-compat/Manifest b/media-video/ffmpeg-compat/Manifest
index e0f7a1ae20fd..45174f593294 100644
--- a/media-video/ffmpeg-compat/Manifest
+++ b/media-video/ffmpeg-compat/Manifest
@@ -5,8 +5,11 @@ DIST ffmpeg-4.4.5.tar.xz.asc 520 BLAKE2B 505987208ed58b548f910299adb1324e6eba655
 DIST ffmpeg-4.4.6.tar.xz 9575932 BLAKE2B c025f9b020b9881d5b00455a42aa9a591fa18c5b2010cf3ee4af6d5242ab0b28e18f05d43e0416ba280bbb1393cfeaf4aaadc0e7258bd0c9578720fd7a9052d9 SHA512 3805c5ff4661217cd2f85a7443a796b9dece67b6eba7686f5f348a1c6c4c678d26f97f9674bb9552b74cfa5bffaf8048885e57e765ad3e09a31274172c57725b
 DIST ffmpeg-4.4.6.tar.xz.asc 520 BLAKE2B 6b16c806af2df78452c17cc81d254ba96056a2aeee24f41d17030aa268cd0176b94e72845092eef2c78fc436d91c881fa076155eadd9925726e478fbb2fb271c SHA512 dc07824da6ce364cc3010cfc90a3f79f60be3ede454d5844a8d06f0a6fa0f7c2881e32d71c54488c0ec8edb3191aedde9a0302e95cb233b96ac219833c48a094
 DIST ffmpeg-6.1-patchset-2.tar.xz 11632 BLAKE2B b4a414825daa74315ab1a5d50dffa13f3ac08565fd8f954a6f031ec0b01a32762af89a14624c0ab9414a6be411de8fa345b75240a2b31e8adc69dbab230b8e34 SHA512 d1be8acae3a2b03993e530737819bc6c85fcf970eddedf93ae99f2a7206876e7b2525842c177d07db8c878fd22490a1c00861580ad158dccd21ed6518d039a48
+DIST ffmpeg-6.1-patchset-3.tar.xz 11156 BLAKE2B b926ad445372f1c5410925f320a472e73752dba357d517136e3c7d00746ac0285938a750ad2359ffc5b45a39e3763df8e84034e94814652eb270e8c78c1fb32b SHA512 6705832a4e710795c8bdbfd0c14b1cae8d66389e80b5a0f4293e927b5337f9d2887845c2a33f51fc062a8a2af0cd6ea853814d7ef65b3e60a03e8a2cdba7777f
 DIST ffmpeg-6.1.2.tar.xz 10466152 BLAKE2B ff1f2b2bb60ccc4c37b6ffda2a0e6a0be80c451dc99f6d4a99bd95a1bdc44c494d62377c53383ccfb5b818573a1971948d7db34119099dbc56d7258724831d3c SHA512 3a009184d971fc3168e1322d1d724aae787ed0e9c152d8d1813ea0b9099bda3b35c41fcabbd7b140560e7a8fa9fa1ffd7f0938432d5d498c43829fc6cc3d9e08
 DIST ffmpeg-6.1.2.tar.xz.asc 520 BLAKE2B f26a2d6f5423f93090f2a448172e49f3858aeb5a00f326207d374bbb70fa8942c7ee1a7c55338b2db664b647c983cd5ab4fd8d71efe5c37af4c90385ca17d0ab SHA512 a26dba1f4870b964080b45f8468f5ce3591eb6aa69be426bf4afbe5a60c3cbd0fe5056dc86ca7bb817c04ae30d39160cb7773772a9a2123ae7f095b18a6d7050
+DIST ffmpeg-6.1.3.tar.xz 10473704 BLAKE2B 9a182ba9546a06264b30e1e2494bdf02344a44532146de7be38ce1cb2da9cb7d0cc2553e7d9ca9cd29fd56ea8925c5f27ac907b112bb5e13001527ad7db1eddf SHA512 5700b06f6abc23e8e968e52322ad7845ba43cbfe15c4db72b33e4cd3874057bc60b894f64bd95240f9145db218419fff5e96fec6afc2dfc3acde4b030c41b606
+DIST ffmpeg-6.1.3.tar.xz.asc 520 BLAKE2B cad27eef290b4c22c86e818c71cc9d29ff600579949b54046c61129af26f29220ed7dedde18db6ad6711ab40d0deef149046aea20b0452b69bb5e63f0b19f4e2 SHA512 a858a5fc5b72cfa53071e0f7a36e89459e1173676841a9fb72bb3f2cea9ed877f638e58eebd9d5ae4288811fe24b8bd48ec683419aaef06b66ad862ca2690e99
 DIST ffmpeg-7.1-patchset-1.tar.xz 2332 BLAKE2B 0fefee824923266618b656c49c43d3a661e6a6885c0b72f5e6fe6516165aab873e519bce5f011aeef7f9fed32418c8d9c8096ae9d3f10ffd3b364948eae8979a SHA512 7afd732dd1df8e8d232dcfb66d873234710d30e123ceee3d7d1980058c71352ab5aa7676835392206565afdb9d4258708d458dc156226dde07cc01d09b4c9a8b
 DIST ffmpeg-7.1.1.tar.xz 11019500 BLAKE2B 85d1850bfa39ec28d358b5454daa7c1cf8580af73a6f83e7c070ea94db40ad485adbaeb89e886e0b3908e0f1765bd9f2b40ddd838e33e0a76e5b286917535310 SHA512 42486e485c8fc6f3ec61598a1a7cb40360535762b3fcf28c10d7c6840bc55afe3334434912746e69eef862d3cedf45a02953bde73d38547d2d9a7a38a65e123a
 DIST ffmpeg-7.1.1.tar.xz.asc 520 BLAKE2B 3bb276ab356ba50a805a76e3e3cd2113141c28daf69d1f43aceded79769fffd686729f9db99df1046c88d5c1a6f12d224e34ddf409aa9989acfa87ebbbcd0155 SHA512 480846fd939d00f2ea90c0256081519a6996c7a990d0f66444a7ae1bce2e5ad6380f5d751efc9bde18da9c4d34738ade57dd66288b989dfd074c484562e20e75

diff --git a/media-video/ffmpeg-compat/ffmpeg-compat-6.1.3.ebuild b/media-video/ffmpeg-compat/ffmpeg-compat-6.1.3.ebuild
new file mode 100644
index 000000000000..bb3b84896a0a
--- /dev/null
+++ b/media-video/ffmpeg-compat/ffmpeg-compat-6.1.3.ebuild
@@ -0,0 +1,571 @@
+# Copyright 2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit flag-o-matic multilib-minimal toolchain-funcs
+
+FFMPEG_SOC_PATCH=ffmpeg-rpi-6.1-r3.patch
+FFMPEG_SUBSLOT=58.60.60 # avutil.avcodec.avformat SONAME
+
+if [[ ${PV} == 9999 ]]; then
+	inherit git-r3
+	EGIT_REPO_URI=(
+		https://git.ffmpeg.org/ffmpeg.git
+		https://github.com/FFmpeg/FFmpeg.git
+	)
+else
+	inherit verify-sig
+	SRC_URI="
+		https://ffmpeg.org/releases/ffmpeg-${PV}.tar.xz
+		verify-sig? ( https://ffmpeg.org/releases/ffmpeg-${PV}.tar.xz.asc )
+		${FFMPEG_SOC_PATCH:+"
+			soc? ( https://dev.gentoo.org/~chewi/distfiles/${FFMPEG_SOC_PATCH} )
+		"}
+		https://dev.gentoo.org/~ionen/distfiles/ffmpeg-$(ver_cut 1-2)-patchset-3.tar.xz
+	"
+	S=${WORKDIR}/ffmpeg-${PV} # avoid ${P} for ffmpeg-compat
+	KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
+fi
+
+DESCRIPTION="Complete solution to record/convert/stream audio and video"
+HOMEPAGE="
+	https://ffmpeg.org/
+	https://code.ffmpeg.org/FFmpeg/FFmpeg/
+"
+
+[[ ${PN} == *-compat ]] && FFMPEG_UNSLOTTED= || FFMPEG_UNSLOTTED=1
+
+FFMPEG_IUSE_MAP=(
+	# [+]flag[:[^][!]opt1,...][@<v3|nonfree>]], ^ = native-only, ! = override
+	# remember to keep LICENSE, REQUIRED_USE, and RESTRICT in sync
+	X:libxcb,libxcb-shape,libxcb-shm,libxcb-xfixes,xlib
+	alsa
+	amf
+	amrenc:libvo-amrwbenc@v3
+	amr:libopencore-amrnb,libopencore-amrwb@v3
+	appkit
+	bluray:libbluray
+	bs2b:libbs2b
+	bzip2:bzlib
+	cdio:libcdio
+	chromaprint
+	codec2:libcodec2
+	cuda:cuda-llvm
+	+dav1d:libdav1d
+	${FFMPEG_UNSLOTTED:+doc:^htmlpages}
+	+drm:libdrm
+	fdk:libfdk-aac@nonfree
+	flite:libflite
+	+fontconfig:libfontconfig
+	frei0r
+	fribidi:libfribidi
+	gcrypt
+	gme:libgme
+	gmp:@v3
+	+gnutls # unused if USE=openssl, default for bug #905113,#917627
+	+gpl
+	gsm:libgsm
+	iec61883:libiec61883
+	ieee1394:libdc1394
+	jack:libjack
+	jpeg2k:libopenjpeg
+	jpegxl:libjxl
+	kvazaar:libkvazaar
+	ladspa
+	lame:libmp3lame
+	lcms:lcms2
+	libaom
+	libaribb24:@v3 # reminder: req use on gpl unneeded if >=1.0.4 (not in tree)
+	+libass
+	libcaca
+	libilbc
+	libplacebo
+	librtmp:librtmp
+	libsoxr
+	libtesseract
+	lv2
+	lzma
+	modplug:libmodplug
+	npp:^libnpp@nonfree # no multilib
+	nvenc:cuvid,ffnvcodec,nvdec,nvenc
+	openal
+	opencl
+	opengl
+	openh264:libopenh264
+	openmpt:libopenmpt
+	openssl:openssl,!gnutls@v3ifgpl # still LGPL2.1+ if USE=-gpl
+	opus:libopus
+	+postproc # exposed as a USE for clarity with the GPL requirement
+	pulseaudio:libpulse
+	qsv:libvpl
+	rabbitmq:^librabbitmq # no multilib
+	rav1e:^librav1e # no multilib
+	rubberband:librubberband
+	samba:libsmbclient@v3 # GPL-3+ only
+	sdl:sdl2
+	shaderc:libshaderc
+	snappy:libsnappy
+	sndio
+	speex:libspeex
+	srt:libsrt
+	ssh:libssh
+	svg:librsvg
+	svt-av1:libsvtav1
+	theora:libtheora
+	+truetype:libfreetype,libharfbuzz
+	twolame:libtwolame
+	v4l:libv4l2
+	vaapi
+	vdpau
+	vidstab:libvidstab
+	vmaf:libvmaf
+	vorbis:libvorbis
+	vpx:libvpx
+	vulkan
+	webp:libwebp
+	x264:libx264
+	x265:libx265
+	+xml:libxml2
+	xvid:libxvid
+	zeromq:^libzmq # no multilib
+	zimg:libzimg
+	+zlib
+	zvbi:libzvbi
+)
+
+# all-rights is used to express the GPL incompatibility (RESTRICT=bindist)
+LICENSE="
+	gpl? (
+		GPL-2+
+		amr? ( GPL-3+ ) amrenc? ( GPL-3+ ) libaribb24? ( GPL-3+ )
+		gmp? ( GPL-3+ ) openssl? ( GPL-3+ )
+		fdk? ( all-rights-reserved ) npp? ( all-rights-reserved )
+	)
+	!gpl? (
+		LGPL-2.1+
+		amr? ( LGPL-3+ ) amrenc? ( LGPL-3+ ) libaribb24? ( LGPL-3+ )
+		gmp? ( LGPL-3+ )
+	)
+	samba? ( GPL-3+ )
+"
+[[ ${FFMPEG_UNSLOTTED} ]] && : 0 || : "$(ver_cut 1)"
+SLOT="${_}/${FFMPEG_SUBSLOT}"
+IUSE="
+	${FFMPEG_IUSE_MAP[*]%:*}
+	${FFMPEG_UNSLOTTED:+chromium}
+	${FFMPEG_SOC_PATCH:+soc}
+"
+REQUIRED_USE="
+	cuda? ( nvenc )
+	fribidi? ( truetype )
+	gmp? ( !librtmp )
+	libplacebo? ( vulkan )
+	npp? ( nvenc )
+	shaderc? ( vulkan )
+	libaribb24? ( gpl ) cdio? ( gpl ) frei0r? ( gpl ) postproc? ( gpl )
+	rubberband? ( gpl ) samba? ( gpl ) vidstab? ( gpl ) x264? ( gpl )
+	x265? ( gpl ) xvid? ( gpl )
+	${FFMPEG_UNSLOTTED:+chromium? ( opus )}
+	${FFMPEG_SOC_PATCH:+soc? ( drm )}
+"
+RESTRICT="gpl? ( fdk? ( bindist ) npp? ( bindist ) )"
+
+# dlopen: amdgpu-pro-amf, vulkan-loader
+COMMON_DEPEND="
+	virtual/libiconv[${MULTILIB_USEDEP}]
+	X? (
+		x11-libs/libX11[${MULTILIB_USEDEP}]
+		x11-libs/libXext[${MULTILIB_USEDEP}]
+		x11-libs/libXv[${MULTILIB_USEDEP}]
+		x11-libs/libxcb:=[${MULTILIB_USEDEP}]
+	)
+	alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
+	amr? ( media-libs/opencore-amr[${MULTILIB_USEDEP}] )
+	amrenc? ( media-libs/vo-amrwbenc[${MULTILIB_USEDEP}] )
+	bluray? ( media-libs/libbluray:=[${MULTILIB_USEDEP}] )
+	bs2b? ( media-libs/libbs2b[${MULTILIB_USEDEP}] )
+	bzip2? ( app-arch/bzip2[${MULTILIB_USEDEP}] )
+	cdio? ( dev-libs/libcdio-paranoia:=[${MULTILIB_USEDEP}] )
+	chromaprint? ( media-libs/chromaprint:=[${MULTILIB_USEDEP}] )
+	codec2? ( media-libs/codec2:=[${MULTILIB_USEDEP}] )
+	dav1d? ( media-libs/dav1d:=[${MULTILIB_USEDEP}] )
+	drm? ( x11-libs/libdrm[${MULTILIB_USEDEP}] )
+	fdk? ( media-libs/fdk-aac:=[${MULTILIB_USEDEP}] )
+	flite? ( app-accessibility/flite[${MULTILIB_USEDEP}] )
+	fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] )
+	frei0r? ( media-plugins/frei0r-plugins[${MULTILIB_USEDEP}] )
+	fribidi? ( dev-libs/fribidi[${MULTILIB_USEDEP}] )
+	gcrypt? ( dev-libs/libgcrypt:=[${MULTILIB_USEDEP}] )
+	gme? ( media-libs/game-music-emu[${MULTILIB_USEDEP}] )
+	gmp? ( dev-libs/gmp:=[${MULTILIB_USEDEP}] )
+	gnutls? ( !openssl? (
+		net-libs/gnutls:=[${MULTILIB_USEDEP}]
+	) )
+	gsm? ( media-sound/gsm[${MULTILIB_USEDEP}] )
+	iec61883? (
+		media-libs/libiec61883[${MULTILIB_USEDEP}]
+		sys-libs/libavc1394[${MULTILIB_USEDEP}]
+		sys-libs/libraw1394[${MULTILIB_USEDEP}]
+	)
+	ieee1394? (
+		media-libs/libdc1394:2=[${MULTILIB_USEDEP}]
+		sys-libs/libraw1394[${MULTILIB_USEDEP}]
+	)
+	jack? ( virtual/jack[${MULTILIB_USEDEP}] )
+	jpeg2k? ( media-libs/openjpeg:2=[${MULTILIB_USEDEP}] )
+	jpegxl? ( media-libs/libjxl:=[${MULTILIB_USEDEP}] )
+	kvazaar? ( media-libs/kvazaar:=[${MULTILIB_USEDEP}] )
+	lame? ( media-sound/lame[${MULTILIB_USEDEP}] )
+	lcms? ( media-libs/lcms:2[${MULTILIB_USEDEP}] )
+	libaom? ( media-libs/libaom:=[${MULTILIB_USEDEP}] )
+	libaribb24? ( media-libs/aribb24[${MULTILIB_USEDEP}] )
+	libass? ( media-libs/libass:=[${MULTILIB_USEDEP}] )
+	libcaca? ( media-libs/libcaca[${MULTILIB_USEDEP}] )
+	libilbc? ( media-libs/libilbc:=[${MULTILIB_USEDEP}] )
+	libplacebo? ( media-libs/libplacebo:=[vulkan,${MULTILIB_USEDEP}] )
+	librtmp? ( media-video/rtmpdump[${MULTILIB_USEDEP}] )
+	libsoxr? ( media-libs/soxr[${MULTILIB_USEDEP}] )
+	libtesseract? ( app-text/tesseract:=[${MULTILIB_USEDEP}] )
+	lv2? (
+		media-libs/lilv[${MULTILIB_USEDEP}]
+		media-libs/lv2[${MULTILIB_USEDEP}]
+	)
+	lzma? ( app-arch/xz-utils[${MULTILIB_USEDEP}] )
+	modplug? ( media-libs/libmodplug[${MULTILIB_USEDEP}] )
+	npp? ( dev-util/nvidia-cuda-toolkit:= )
+	openal? ( media-libs/openal[${MULTILIB_USEDEP}] )
+	opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
+	opengl? ( media-libs/libglvnd[X,${MULTILIB_USEDEP}] )
+	openh264? ( media-libs/openh264:=[${MULTILIB_USEDEP}] )
+	openmpt? ( media-libs/libopenmpt[${MULTILIB_USEDEP}] )
+	openssl? ( >=dev-libs/openssl-3:=[${MULTILIB_USEDEP}] )
+	opus? ( media-libs/opus[${MULTILIB_USEDEP}] )
+	pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] )
+	qsv? ( media-libs/libvpl:=[${MULTILIB_USEDEP}] )
+	rabbitmq? ( net-libs/rabbitmq-c:= )
+	rav1e? ( >=media-video/rav1e-0.5:=[capi] )
+	rubberband? ( media-libs/rubberband:=[${MULTILIB_USEDEP}] )
+	samba? ( net-fs/samba:=[client,${MULTILIB_USEDEP}] )
+	sdl? (
+		media-libs/libsdl2[sound(+),video(+),${MULTILIB_USEDEP}]
+		libplacebo? ( media-libs/libsdl2[vulkan] )
+	)
+	shaderc? ( media-libs/shaderc[${MULTILIB_USEDEP}] )
+	snappy? ( app-arch/snappy:=[${MULTILIB_USEDEP}] )
+	sndio? ( media-sound/sndio:=[${MULTILIB_USEDEP}] )
+	speex? ( media-libs/speex[${MULTILIB_USEDEP}] )
+	srt? ( net-libs/srt:=[${MULTILIB_USEDEP}] )
+	ssh? ( net-libs/libssh:=[sftp,${MULTILIB_USEDEP}] )
+	svg? (
+		dev-libs/glib:2[${MULTILIB_USEDEP}]
+		>=gnome-base/librsvg-2.52:2[${MULTILIB_USEDEP}]
+		x11-libs/cairo[${MULTILIB_USEDEP}]
+	)
+	svt-av1? ( >=media-libs/svt-av1-0.9:=[${MULTILIB_USEDEP}] )
+	theora? ( media-libs/libtheora:=[encode,${MULTILIB_USEDEP}] )
+	truetype? (
+		media-libs/freetype:2[${MULTILIB_USEDEP}]
+		media-libs/harfbuzz:=[${MULTILIB_USEDEP}]
+	)
+	twolame? ( media-sound/twolame[${MULTILIB_USEDEP}] )
+	v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
+	vaapi? ( media-libs/libva:=[X?,${MULTILIB_USEDEP}] )
+	vdpau? (
+		x11-libs/libX11[${MULTILIB_USEDEP}]
+		x11-libs/libvdpau[${MULTILIB_USEDEP}]
+	)
+	vidstab? ( media-libs/vidstab[${MULTILIB_USEDEP}] )
+	vmaf? ( media-libs/libvmaf:=[${MULTILIB_USEDEP}] )
+	vorbis? ( media-libs/libvorbis[${MULTILIB_USEDEP}] )
+	vpx? ( media-libs/libvpx:=[${MULTILIB_USEDEP}] )
+	vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] )
+	webp? ( media-libs/libwebp:=[${MULTILIB_USEDEP}] )
+	x264? ( media-libs/x264:=[${MULTILIB_USEDEP}] )
+	x265? ( media-libs/x265:=[${MULTILIB_USEDEP}] )
+	xml? ( dev-libs/libxml2:=[${MULTILIB_USEDEP}] )
+	xvid? ( media-libs/xvid[${MULTILIB_USEDEP}] )
+	zeromq? ( net-libs/zeromq:= )
+	zimg? ( media-libs/zimg[${MULTILIB_USEDEP}] )
+	zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )
+	zvbi? ( media-libs/zvbi[${MULTILIB_USEDEP}] )
+	${FFMPEG_SOC_PATCH:+"
+		soc? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
+	"}
+"
+RDEPEND="
+	${COMMON_DEPEND}
+	amf? ( media-video/amdgpu-pro-amf )
+"
+DEPEND="
+	${COMMON_DEPEND}
+	X? ( x11-base/xorg-proto )
+	amf? ( media-libs/amf-headers )
+	kernel_linux? ( >=sys-kernel/linux-headers-6 )
+	ladspa? ( media-libs/ladspa-sdk )
+	nvenc? ( >=media-libs/nv-codec-headers-12.1.14.0 )
+	opencl? ( dev-util/opencl-headers )
+	vulkan? ( dev-util/vulkan-headers )
+"
+BDEPEND="
+	app-alternatives/awk
+	virtual/pkgconfig
+	amd64? (
+		|| (
+			dev-lang/nasm
+			dev-lang/yasm
+		)
+	)
+	cuda? ( llvm-core/clang:*[llvm_targets_NVPTX] )
+	${FFMPEG_UNSLOTTED:+"
+		dev-lang/perl
+		doc? ( sys-apps/texinfo )
+	"}
+"
+[[ ${PV} != 9999 ]] &&
+	BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-ffmpeg )"
+
+DOCS=( CREDITS Changelog README.md doc/APIchanges )
+[[ ${PV} != 9999 ]] && DOCS+=( RELEASE_NOTES )
+
+MULTILIB_WRAPPED_HEADERS=(
+	/usr/include/libavutil/avconfig.h
+)
+
+PATCHES=(
+	"${WORKDIR}"/patches
+)
+
+pkg_pretend() {
+	# TODO: drop this after a few months
+	if has_version "${CATEGORY}/${PN}[mp3]" && use !lame; then #952971
+		ewarn "${PN}'s 'mp3' USE was renamed to 'lame', please enable it"
+		ewarn "if wish to keep the ability to encode using media-sound/lame."
+		ewarn "This is *not* needed if only want mp3 playback."
+	fi
+}
+
+pkg_setup() {
+	[[ ${MERGE_TYPE} != binary ]] || return
+
+	if use chromaprint && has_version 'media-libs/chromaprint[tools]'; then
+		ewarn "media-libs/chromaprint is installed with USE=tools which links to"
+		ewarn "ffmpeg, and USE=chromaprint is enabled on ffmpeg which links to"
+		ewarn "chromaprint (circular). This may cause issues when updating ffmpeg."
+		ewarn
+		ewarn "If get a build failure with 'ERROR: chromaprint not found' or so,"
+		ewarn "first rebuild chromaprint with USE=-tools, then rebuild ffmpeg, and"
+		ewarn "then finally rebuild chromaprint with USE=tools again (bug #862996)."
+	fi
+
+	[[ ${EXTRA_FFMPEG_CONF} ]] && # drop this eventually
+		die "EXTRA_FFMPEG_CONF is set in the environment, please use EXTRA_ECONF instead"
+}
+
+src_unpack() {
+	if [[ ${PV} == 9999 ]]; then
+		git-r3_src_unpack
+	else
+		use verify-sig &&
+			verify-sig_verify_detached "${DISTDIR}"/ffmpeg-${PV}.tar.xz{,.asc} \
+				"${BROOT}"/usr/share/openpgp-keys/ffmpeg.asc
+		default
+	fi
+}
+
+src_prepare() {
+	in_iuse chromium && PATCHES+=( "${FILESDIR}"/chromium-r3.patch )
+	in_iuse soc && use soc && PATCHES+=( "${DISTDIR}"/${FFMPEG_SOC_PATCH} )
+
+	default
+
+	# respect user preferences
+	sed -i '/cflags -fdiagnostics-color/d' configure || die
+
+	# handle here to avoid repeating for each ABI below (bug #923491)
+	FFMPEG_ENABLE_LTO=
+	if tc-is-lto; then
+		: "$(get-flag -flto)" # get -flto=<val> (e.g. =thin)
+		FFMPEG_ENABLE_LTO=--enable-lto${_#-flto}
+	fi
+	filter-lto
+
+	use elibc_musl && append-cppflags -D__musl__ #940733
+}
+
+multilib_src_configure() {
+	if use npp && multilib_is_native_abi; then
+		local -x CPPFLAGS=${CPPFLAGS} LDFLAGS=${LDFLAGS}
+		append-cppflags $($(tc-getPKG_CONFIG) --cflags nppc || die)
+		append-ldflags $($(tc-getPKG_CONFIG) --libs-only-L nppc || die)
+	fi
+
+	local conf=( "${S}"/configure ) # not autotools-based
+
+	local prefix=${EPREFIX}/usr
+	if [[ ! ${FFMPEG_UNSLOTTED} ]]; then
+		prefix+=/lib/ffmpeg${SLOT%/*}
+		# could get SONAME clashes, so prefer rpath over LDPATH
+		conf+=(
+			--enable-rpath
+			--disable-doc
+		)
+	fi
+
+	conf+=(
+		--prefix="${prefix}"
+		--libdir="${prefix}"/$(get_libdir)
+		--shlibdir="${prefix}"/$(get_libdir)
+		--mandir="${prefix}"/share/man
+		--docdir="${EPREFIX}"/usr/share/doc/${PF}/html
+
+		--ar="$(tc-getAR)"
+		--cc="$(tc-getCC)"
+		--cxx="$(tc-getCXX)"
+		--nm="$(tc-getNM)"
+		--pkg-config="$(tc-getPKG_CONFIG)"
+		--ranlib="$(tc-getRANLIB)"
+		--disable-stripping
+
+		# overrides users' -g/-O, let *FLAGS handle these
+		--disable-debug
+		--disable-optimizations
+		--optflags=' '
+
+		# pass option over *FLAGS due to special logic (bug #566282,#754654)
+		${FFMPEG_ENABLE_LTO}
+
+		# basic defaults that should not really need a USE
+		--enable-iconv
+		--enable-pic
+		--enable-shared
+		--disable-static
+		$(multilib_native_enable manpages) # needs pod2man
+		--disable-podpages
+		--disable-txtpages
+
+		# disabled primarily due to being unpackaged
+		--disable-decklink
+		--disable-libaribcaption
+		--disable-libdavs2
+		--disable-libklvanc
+		--disable-libmysofa
+		--disable-libopenvino
+		--disable-libshine
+		--disable-libtls
+		--disable-libuavs3d
+		--disable-libxavs
+		--disable-libxavs2
+		--disable-pocketsphinx
+		--disable-rkmpp
+		--disable-vapoursynth
+
+		# disabled for other or additional reasons
+		--disable-cuda-nvcc # prefer cuda-llvm for less issues
+		--disable-libcelt # obsolete (bug #664158)
+		--disable-libglslang # prefer USE=shaderc (bug #918989,#920283,#922333)
+		--disable-liblensfun # https://trac.ffmpeg.org/ticket/9112 (abandoned?)
+		--disable-libmfx # prefer libvpl for USE=qsv
+		--disable-libopencv # leaving for later due to circular opencv[ffmpeg]
+		--disable-librist # librist itself needs attention first (bug #822012)
+		--disable-libtensorflow # causes headaches, and is gone
+		--disable-mbedtls # messy with slots, tests underlinking issues
+		--disable-mmal # prefer USE=soc
+		--disable-omx # unsupported (bug #653386)
+		--disable-omx-rpi # ^
+
+		# to avoid obscure issues like bug #915384 and simplify the ebuild,
+		# not passing the following (use EXTRA_ECONF if really must):
+		# --cpu: adds -march=<exact> after the user's more adapted
+		# =native, its logic also does not account for -mno-*
+		# --disable/enable-<cpufeature>: safer to detect at runtime
+	)
+
+	in_iuse soc && use soc &&
+		conf+=(
+			--disable-epoxy
+			--enable-libudev
+			--enable-sand
+			--enable-v4l2-request
+		)
+
+	# broken on x32 (bug #427004), and not PIC safe on x86 (bug #916067)
+	[[ ${ABI} == @(x32|x86) ]] && conf+=( --disable-asm )
+
+	# disable due to asm-related failures on ppc (bug #951464, ppc64be)
+	# https://trac.ffmpeg.org/ticket/9604 (ppc64el)
+	# https://trac.ffmpeg.org/ticket/10955 (ppc64el)
+	# (review re-enabling if resolved, or if debian allows it again)
+	use ppc || use ppc64 && conf+=( --disable-asm )
+
+	if tc-is-cross-compiler; then
+		conf+=(
+			--enable-cross-compile
+			--arch="$(tc-arch-kernel)"
+			--cross-prefix="${CHOST}-"
+			--host-cc="$(tc-getBUILD_CC)"
+		)
+		case ${CHOST} in
+			*mingw32*) conf+=( --target-os=mingw32 );;
+			*linux*) conf+=( --target-os=linux );;
+		esac
+	fi
+
+	# import options from FFMPEG_IUSE_MAP
+	local flag license mod v
+	local -A optmap=() licensemap=()
+	for v in "${FFMPEG_IUSE_MAP[@]}"; do
+		[[ ${v} =~ \+?([^:]+):?([^@]*)@?(.*) ]] || die "${v}"
+		flag=${BASH_REMATCH[1]}
+		license=${BASH_REMATCH[3]}
+		v=${BASH_REMATCH[2]:-${flag}}
+		for v in ${v//,/ }; do
+			mod=${v::1}
+			v=${v#[\!\^]}
+			if [[ ${mod} == '!' ]]; then
+				if use ${flag}; then
+					optmap[${v}]=--disable-${v}
+					unset licensemap[${v}]
+				fi
+			elif [[ ! -v optmap[${v}] ]]; then
+				if [[ ${mod} == '^' ]]; then
+					optmap[${v}]=$(multilib_native_use_enable ${flag} ${v})
+				else
+					optmap[${v}]=$(use_enable ${flag} ${v})
+				fi
+				use ${flag} && licensemap[${v}]=${license}
+			fi
+		done
+	done
+	for license in "${licensemap[@]}"; do
+		case ${license} in
+			v3ifgpl) use gpl || continue ;&
+			v3) optmap[v3]=--enable-version3 ;;
+			nonfree) use gpl && optmap[nonfree]=--enable-nonfree ;;
+		esac
+	done
+	conf+=(
+		"${optmap[@]}"
+		${EXTRA_ECONF}
+	)
+
+	einfo "${conf[*]}"
+	"${conf[@]}" || die "configure failed, see ${BUILD_DIR}/ffbuild/config.log"
+}
+
+multilib_src_compile() {
+	emake V=1
+	in_iuse chromium && use chromium && multilib_is_native_abi &&
+		emake V=1 libffmpeg
+}
+
+multilib_src_test() {
+	local -x LD_LIBRARY_PATH=$(printf %s: "${BUILD_DIR}"/lib*)${LD_LIBRARY_PATH}
+	emake V=1 -k fate
+}
+
+multilib_src_install() {
+	emake V=1 DESTDIR="${D}" install
+	in_iuse chromium && use chromium && multilib_is_native_abi &&
+		emake V=1 DESTDIR="${D}" install-libffmpeg
+}


             reply	other threads:[~2025-08-15  7:49 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-08-15  7:49 Ionen Wolkens [this message]
  -- strict thread matches above, loose matches on Subject: below --
2025-10-19 13:22 [gentoo-commits] repo/gentoo:master commit in: media-video/ffmpeg-compat/ Ionen Wolkens
2025-10-19 13:22 Ionen Wolkens
2025-10-07  8:12 Ionen Wolkens
2025-10-07  0:14 Ionen Wolkens
2025-09-15  7:55 Ionen Wolkens
2025-09-15  7:55 Ionen Wolkens
2025-09-07  3:54 Ionen Wolkens
2025-08-13  0:36 Ionen Wolkens
2025-08-13  0:27 Ionen Wolkens
2025-08-08 16:40 Ionen Wolkens
2025-08-03  7:42 Ionen Wolkens
2025-07-23 19:59 Ionen Wolkens
2025-06-15  3:44 Ionen Wolkens
2025-05-18 19:29 Ionen Wolkens
2025-05-11 15:33 Sam James
2025-04-27  1:00 Ionen Wolkens
2025-04-27  0:48 Ionen Wolkens
2025-04-23 13:25 Ionen Wolkens
2025-04-23 12:38 Ionen Wolkens
2025-04-01  2:30 Ionen Wolkens
2025-03-27 19:01 Sam James
2025-03-27 19:01 Sam James
2025-03-27 19:01 Sam James
2025-03-27 19:01 Sam James
2025-03-27 19:01 Sam James
2025-03-27 19:01 Sam James
2025-03-16 18:04 Ionen Wolkens
2025-03-13  6:10 Ionen Wolkens
2025-03-13  4:24 Ionen Wolkens
2025-03-11  9:04 Ionen Wolkens

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1755244123.8b3755324e03bb04d65f5312549b1e10bcd75187.ionen@gentoo \
    --to=ionen@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox