mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-01-06 02:17:34 -08:00
media-video/ffmpeg: add 4.4.6
For what it's worth anyway, we have no real reason to keep 4.4.x anymore beside at most for testing regressions, but not planning to look at cleanups just yet. Patchset mostly unchanged given only the binutils patch was included in this release. Albeit did remove the glslang patch given it's unneeded now that we removed USE=glslang. Also added a new backport for gcc-15(?) only affecting building tests, not looked too closely at what introduced this. The offending code is gone entirely in ffmpeg-6+ so it's only needed here. Signed-off-by: Ionen Wolkens <ionen@gentoo.org>
This commit is contained in:
parent
63c6e36969
commit
9c30d3361b
@ -1,6 +1,9 @@
|
||||
DIST ffmpeg-4.4-patchset-1.tar.xz 9916 BLAKE2B 9b41de6b048601f2af41864c3262b3348330f792eea71df4cfab5e740626ee6c633ac5569e6e91d953143f6ad0fac15c840ef0643925e91261f8b4a32e2d386c SHA512 b11d9e182ddb0a48f50d63f5e0bd7fd99f4b8fa7dd17179a3bfbc9419dabb76401408a81ae2d5f118fbf67f28dcfdc3bfb5b7ac70f740259e3ebad8d1ba049bb
|
||||
DIST ffmpeg-4.4-patchset-2.tar.xz 9296 BLAKE2B ebc86b4fa29c02e3a1b72d6ae0ad59d7b1b5f77352ef7680dc97218a053eff43fdbd8005172241bbef8c903d0598d01b1b954ab16c8c5e48e99b50c59883016a SHA512 ec71e57eb620ae74d5602e7fc0dd9684b71c213cfa0544dd71193b486bbcbb7ff06d4e61c8dfadca5488e81cc328e3dbd8be3febac6efa5df363c5b51c43a293
|
||||
DIST ffmpeg-4.4.5.tar.xz 9575596 BLAKE2B 546df09f7731d22e532a18d9ba9be184283f62b7a2e9470e745e536802bc2263a00f11ed6ab0aee8fc60c5f728826311cbf3542084ba3a64b65a61d76295cd64 SHA512 70df4e63ef507a7ec76da34438142499139769728fd5130d9cf48d56c110ec82c3d6a7e6d1622da03c70167fa861d901d016bbe52c21d2b284b8a0d9f30811dc
|
||||
DIST ffmpeg-4.4.5.tar.xz.asc 520 BLAKE2B 505987208ed58b548f910299adb1324e6eba655cc37e6f03cac32c8623e16a4a884e822c745fb72b1934129a8c0a2706bb8bfb785715e6a68e43f737cb8ed365 SHA512 bcfee8986681dfbefd3add741fcbbc5e223bb06c9800797e68fde968c114055ac3fc02ce8731ed269bf30c92d6c990c7f636f82d42379920012e8a0ace8d527e
|
||||
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-1.tar.xz 11296 BLAKE2B 5227d0c7f52a4f217d5517da11c2327585375c9d860f31415e1079f4f1f9186637e07c7da0e168c732cc7abb953440f0ba952395db83074588eb31bee1d5bc9f SHA512 20fe94536a5c3873d0126ff535a3bff595dedc7787162f160ecde6cbd357b9eb3749c9d7b7543aa39896ceb4e656494d31811bf26682776cdfc693fe030cd77b
|
||||
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
|
||||
|
||||
500
media-video/ffmpeg/ffmpeg-4.4.6.ebuild
Normal file
500
media-video/ffmpeg/ffmpeg-4.4.6.ebuild
Normal file
@ -0,0 +1,500 @@
|
||||
# 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_SUBSLOT=56.58.58 # 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 )
|
||||
https://dev.gentoo.org/~ionen/distfiles/ffmpeg-$(ver_cut 1-2)-patchset-2.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/"
|
||||
|
||||
[[ ${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
|
||||
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
|
||||
kvazaar:libkvazaar
|
||||
ladspa
|
||||
lame:libmp3lame
|
||||
libaom
|
||||
libaribb24:@v3 # reminder: req use on gpl unneeded if >=1.0.4 (not in tree)
|
||||
+libass
|
||||
libcaca
|
||||
libilbc
|
||||
librtmp:librtmp
|
||||
libsoxr
|
||||
libtesseract
|
||||
lv2
|
||||
lzma
|
||||
modplug:libmodplug
|
||||
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
|
||||
rabbitmq:^librabbitmq # no multilib
|
||||
rav1e:^librav1e # no multilib
|
||||
rubberband:librubberband
|
||||
samba:libsmbclient@v3 # GPL-3+ only
|
||||
sdl:sdl2
|
||||
snappy:libsnappy
|
||||
sndio
|
||||
speex:libspeex
|
||||
srt:libsrt
|
||||
ssh:libssh
|
||||
svg:librsvg
|
||||
svt-av1:libsvtav1
|
||||
theora:libtheora
|
||||
+truetype:libfreetype
|
||||
twolame:libtwolame
|
||||
v4l:libv4l2
|
||||
vaapi
|
||||
vdpau
|
||||
vidstab:libvidstab
|
||||
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 )
|
||||
)
|
||||
!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[*]%:*}"
|
||||
REQUIRED_USE="
|
||||
fribidi? ( truetype )
|
||||
gmp? ( !librtmp )
|
||||
libaribb24? ( gpl ) cdio? ( gpl ) frei0r? ( gpl ) postproc? ( gpl )
|
||||
rubberband? ( gpl ) samba? ( gpl ) vidstab? ( gpl ) x264? ( gpl )
|
||||
x265? ( gpl ) xvid? ( gpl )
|
||||
"
|
||||
RESTRICT="gpl? ( fdk? ( bindist ) )"
|
||||
|
||||
# dlopen: vulkan-loader
|
||||
RDEPEND="
|
||||
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}] )
|
||||
kvazaar? ( media-libs/kvazaar:=[${MULTILIB_USEDEP}] )
|
||||
lame? ( media-sound/lame[${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}] )
|
||||
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}] )
|
||||
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}] )
|
||||
rabbitmq? ( net-libs/rabbitmq-c:= )
|
||||
rav1e? ( >=media-video/rav1e-0.4:=[capi] )
|
||||
rubberband? ( media-libs/rubberband:=[${MULTILIB_USEDEP}] )
|
||||
samba? ( net-fs/samba:=[client,${MULTILIB_USEDEP}] )
|
||||
sdl? ( media-libs/libsdl2[sound(+),video(+),${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.8.4:=[${MULTILIB_USEDEP}] )
|
||||
theora? ( media-libs/libtheora[encode,${MULTILIB_USEDEP}] )
|
||||
truetype? ( media-libs/freetype:2[${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}] )
|
||||
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}] )
|
||||
"
|
||||
DEPEND="
|
||||
${RDEPEND}
|
||||
X? ( x11-base/xorg-proto )
|
||||
kernel_linux? ( >=sys-kernel/linux-headers-6 )
|
||||
ladspa? ( media-libs/ladspa-sdk )
|
||||
nvenc? ( media-libs/nv-codec-headers )
|
||||
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() {
|
||||
default
|
||||
|
||||
# respect user preferences
|
||||
sed -i '/cflags -fdiagnostics-color/d' configure || die
|
||||
|
||||
# handle *FLAGS here to avoid repeating for each ABI below (bug #923491)
|
||||
filter-lto
|
||||
use elibc_musl && append-cppflags -D__musl__ #940733
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
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=' '
|
||||
|
||||
# not worth supporting on this version, use ffmpeg-6+
|
||||
--disable-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-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-amf # may or may not be broken, use ffmpeg-6+ (bug #910271)
|
||||
--disable-cuda-nvcc # prefer cuda-llvm for less issues
|
||||
--disable-libcelt # obsolete (bug #664158)
|
||||
--disable-libglslang # use ffmpeg-6+ with USE=shaderc instead
|
||||
--disable-liblensfun # https://trac.ffmpeg.org/ticket/9112 (abandoned?)
|
||||
--disable-libmfx # use ffmpeg-6+ with USE=qsv instead
|
||||
--disable-libnpp # use ffmpeg-6+, ebuild support was only added there
|
||||
--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-libvmaf # use ffmpeg-6+ instead, needs old vmaf library
|
||||
--disable-mbedtls # messy with slots, tests underlinking issues
|
||||
--disable-mmal # unsupported
|
||||
--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
|
||||
)
|
||||
|
||||
# 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
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user