From f660c6de84558324d784218831d8f0782ee41e2e Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Wed, 27 Oct 2021 22:41:01 +0100 Subject: gentoo resync : 27.10.2021 --- media-video/Manifest.gz | Bin 26288 -> 26286 bytes media-video/ffmpeg/Manifest | 4 +- media-video/ffmpeg/ffmpeg-4.4.1-r1.ebuild | 558 +++++++++++++++++++++ media-video/ffmpeg/ffmpeg-9999.ebuild | 7 +- media-video/obs-studio/Manifest | 4 +- media-video/obs-studio/obs-studio-27.1.3-r1.ebuild | 214 ++++++++ media-video/obs-studio/obs-studio-27.1.3.ebuild | 214 -------- media-video/openshot/Manifest | 4 +- media-video/openshot/openshot-2.6.0.ebuild | 55 -- media-video/openshot/openshot-2.6.1.ebuild | 55 ++ media-video/pipewire/Manifest | 6 +- .../files/pipewire-0.3.39-endian-test-fix.patch | 112 +++++ .../pipewire-0.3.39-fix-build-some-arches.patch | 35 ++ media-video/pipewire/pipewire-0.3.39-r1.ebuild | 293 ----------- media-video/pipewire/pipewire-0.3.39-r4.ebuild | 296 +++++++++++ media-video/pipewire/pipewire-9999.ebuild | 2 +- media-video/vdr/Manifest | 2 +- media-video/vdr/metadata.xml | 4 - media-video/vdr2jpeg/Manifest | 2 +- media-video/vdr2jpeg/metadata.xml | 4 - 20 files changed, 1289 insertions(+), 582 deletions(-) create mode 100644 media-video/ffmpeg/ffmpeg-4.4.1-r1.ebuild create mode 100644 media-video/obs-studio/obs-studio-27.1.3-r1.ebuild delete mode 100644 media-video/obs-studio/obs-studio-27.1.3.ebuild delete mode 100644 media-video/openshot/openshot-2.6.0.ebuild create mode 100644 media-video/openshot/openshot-2.6.1.ebuild create mode 100644 media-video/pipewire/files/pipewire-0.3.39-endian-test-fix.patch create mode 100644 media-video/pipewire/files/pipewire-0.3.39-fix-build-some-arches.patch delete mode 100644 media-video/pipewire/pipewire-0.3.39-r1.ebuild create mode 100644 media-video/pipewire/pipewire-0.3.39-r4.ebuild (limited to 'media-video') diff --git a/media-video/Manifest.gz b/media-video/Manifest.gz index 991fbad9fb01..36c431004a46 100644 Binary files a/media-video/Manifest.gz and b/media-video/Manifest.gz differ diff --git a/media-video/ffmpeg/Manifest b/media-video/ffmpeg/Manifest index d82d1ee03651..541585a6af94 100644 --- a/media-video/ffmpeg/Manifest +++ b/media-video/ffmpeg/Manifest @@ -7,10 +7,12 @@ DIST ffmpeg-4.2.2-ppc64-gcc.patch.gz 750 BLAKE2B 3a9cc7f0135e077c77179a7ca3da917 DIST ffmpeg-4.2.4.tar.bz2 10959430 BLAKE2B 932bc0046edab5587063bbc04d6ef0149876bd1001ad185384fcabb3d0ae196c9ba591e680823b3c7b6e0ef9a0a9e9575a8b08439fdd89ef0e4dabb9d4a7f4e6 SHA512 5c74e3fe77ddf8ffede0e4692d574858dd0626e542380a819ab79c0f669c6c1329ffbccb872502f60306e561f10aa8bc1e61d09b2bea829870fe4a48b76460c6 DIST ffmpeg-4.3.1.tar.bz2 11301038 BLAKE2B 3b0eb332459921435b60e72f5c572034abf65d4ab79ef4cfae94fe594048eaa37eec47724d119863102a7211c2178f5a2382a6d4016b792818079b8241bde084 SHA512 831a187d8b8f2715a9f11c93c8d3ec126ff579d470797da452d3395178877de113af7ae90ed27fca0b223791ad257972570481e6dbb8361d2b7f3b010924bee8 DIST ffmpeg-4.3.2.tar.bz2 11307134 BLAKE2B 97e1e598e4abe397b06298d545c3073ea2303e11c01e98343fe09d99174e02ca94f52c4df0d389fbefe7814686221446d30f107092f00cb0b69275c8747d6f32 SHA512 ec5566f8684f0ceb18184d59786ea1fc166ab28c46260ebcca5b919ad53137ba7317fd0c537e97df28553572a0d5e42c558773c808cf76995d67985aec2d6d4d +DIST ffmpeg-4.4.1.tar.bz2 11494996 BLAKE2B 050b0501cb21f44451d59bf3b20b18d55234636b5a69a4962103d63f80ce9af172cc2cecb1e33b92334fcf635b283afddbdfa20cbd6deb526008cdb34ae01c16 SHA512 c41e63ffa9f5465ea3a7f4a8b255b299a2f49d5868ada4310a2344b8fea02476365c44871defd5609da55c805cbb58f34063dbdd4b203ade932cba8b3cfefc72 DIST ffmpeg-4.4.tar.bz2 11489948 BLAKE2B a8dc007e260896228789d27339402e846cd21758e02c7a8d66a745ced2d1bbef4aa9c18c9b7cefef004b5ffa3fc859e2a2474c957bdf9ff27e82cec72ed4a5bf SHA512 212c330f477e9452b9d7873d6d3c452a5c946b6b9c17b01d94c60fda66e61e53b78388ef7686b8d9415a27cd3e05d5f0d6639a02a22467dbf1ed483b5594c80f EBUILD ffmpeg-4.2.4-r1.ebuild 17663 BLAKE2B c984c43f5f7d3298b7f9d577a62e9babe9003dcf4a5c6114005488f79e82a7e4a983cad7c05574773ca05cc425743fd5c74d42cc747989589d46527c1f0f73d6 SHA512 7d1bc4483da9b15fe9ecb83392f3010f5fec7c9e252d51416f1fd4d62291893c7f6ffb32a76a2ec528a8a0449a8d8c93d2f05cb1596d30b67a4cd2d1c9878dae EBUILD ffmpeg-4.3.1-r1.ebuild 17767 BLAKE2B 633604edd9a395d2fb03c7fa5145e4781a52c65ff53d7f2f7fbe6c2f4ae0e4df9ec5f308cb06fbfa197475e9514e961ff01afd1098881605ae5b1013587c9adc SHA512 17eed1b0ab7ecc1fea5b91e02acf686c4239b7bdb5a94777944d08c35889c22046665f8a0f7e7c40aa7946727f0bbbb4a6c9a9c043302419a83a5fbb8c7b1668 EBUILD ffmpeg-4.3.2-r1.ebuild 17750 BLAKE2B 7d8a0ca3154efebe7192bde4953fc680eb91a2cca4abf771ca4a29ef2b5162504f0e27857d4d54b7ab8148538acbb79131f8d29b6ac775160786981d763dea49 SHA512 f6ec1e3e150f644063c241b52bdd607de12b6f87515f98581ad412ce6ab8b0e1864b6c045887b21702743980b9ac0eded342bb49e81883c22a389127dabbe221 EBUILD ffmpeg-4.4-r1.ebuild 17818 BLAKE2B 87e0944f0e72a80daf75867fad31224bf41af5fd769ef468734cdb5cc1827f077336596b66eee7e9fab0a44d12de65c28a6f03a5180e43312b965826200846fc SHA512 0373d1564a9ddce54022b204bb47c46c219000880607d4e33fae0c7adc02d1e530396eac7d28b794a18c7583c1a668880253856f21c24c926b45dce9237e7164 -EBUILD ffmpeg-9999.ebuild 17776 BLAKE2B 2f41cd9417090ea5badfb24cdad7b09d8cc6166be18045ae8d74853f8873b12f5777c6afdda5c7f58a88f92bc62dacd612844dccd93ac4b5dcf7315ac6957905 SHA512 65f28bcd2f03a3b55e72c6c9c0355e411aecc3bd78b72623d87533b7da6c411b3904921b661ca8109c273bee7c2158bf26e8c8bcc256f9f1bb4df473baa6f890 +EBUILD ffmpeg-4.4.1-r1.ebuild 17867 BLAKE2B b0faaf12087ea83aa0a05bb2e9cc502d2fcc6a05ba26b22a359374df3220159f9c639011fd69496faaa9cba14461beabb2d20c7af2d78c27f75c9739e9ace733 SHA512 2808be9d8e80734edd03039a91954edf74dc98385482c5997fc9663434e2ce684319503e2c45c9b6cefe02592d5930213a2dc10eb52f504813992cf6ca804bc7 +EBUILD ffmpeg-9999.ebuild 17818 BLAKE2B 7d78e16959db094c7cedbf1a161a8c4858c358aa570bd9a549a945bba076c6498a1ca54bfd9f2e4dd67ff299469c4c3a8c78df9754d40896f15c3ae2ba9b37e3 SHA512 43cb6ff9d4c74ba472345ddda2db9c62e735716ae46c5c245274735072039378f220133140c9780ec636cabbb141317f2b286569c58e861a7aad3d275cecacef MISC metadata.xml 5956 BLAKE2B bf1e10c3a081c721dbaccc7389d1b35c3fdb844be0d5a9b674b154e7cbcef10c00a21fc38401819dbc0d66d6f1c5755dbf482ecdf43e1a43f2c76217af4d4ee3 SHA512 1fc8eee61c9b2d4108cacf52f64173d72e55797e0d87201f71fd35d873256aa0944361305f4c47e3bea39dde0007319643e60adbc64b984de56f3251b2ffc5a8 diff --git a/media-video/ffmpeg/ffmpeg-4.4.1-r1.ebuild b/media-video/ffmpeg/ffmpeg-4.4.1-r1.ebuild new file mode 100644 index 000000000000..9506a778d11a --- /dev/null +++ b/media-video/ffmpeg/ffmpeg-4.4.1-r1.ebuild @@ -0,0 +1,558 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +# Subslot: libavutil major.libavcodec major.libavformat major +# Since FFmpeg ships several libraries, subslot is kind of limited here. +# Most consumers will use those three libraries, if a "less used" library +# changes its soname, consumers will have to be rebuilt the old way +# (preserve-libs). +# If, for example, a package does not link to libavformat and only libavformat +# changes its ABI then this package will be rebuilt needlessly. Hence, such a +# package is free _not_ to := depend on FFmpeg but I would strongly encourage +# doing so since such a case is unlikely. +FFMPEG_SUBSLOT=56.58.58 + +SCM="" +if [ "${PV#9999}" != "${PV}" ] ; then + SCM="git-r3" + EGIT_MIN_CLONE_TYPE="single" + EGIT_REPO_URI="https://git.ffmpeg.org/ffmpeg.git" +fi + +inherit flag-o-matic multilib multilib-minimal toolchain-funcs ${SCM} + +DESCRIPTION="Complete solution to record/convert/stream audio and video. Includes libavcodec" +HOMEPAGE="https://ffmpeg.org/" +if [ "${PV#9999}" != "${PV}" ] ; then + SRC_URI="" +elif [ "${PV%_p*}" != "${PV}" ] ; then # Snapshot + SRC_URI="mirror://gentoo/${P}.tar.bz2" +else # Release + SRC_URI="https://ffmpeg.org/releases/${P/_/-}.tar.bz2" +fi +FFMPEG_REVISION="${PV#*_p}" + +SLOT="0/${FFMPEG_SUBSLOT}" +LICENSE=" + !gpl? ( LGPL-2.1 ) + gpl? ( GPL-2 ) + amr? ( + gpl? ( GPL-3 ) + !gpl? ( LGPL-3 ) + ) + gmp? ( + gpl? ( GPL-3 ) + !gpl? ( LGPL-3 ) + ) + libaribb24? ( + gpl? ( GPL-3 ) + !gpl? ( LGPL-3 ) + ) + encode? ( + amrenc? ( + gpl? ( GPL-3 ) + !gpl? ( LGPL-3 ) + ) + ) + samba? ( GPL-3 ) +" +if [ "${PV#9999}" = "${PV}" ] ; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux" +fi + +# Options to use as use_enable in the foo[:bar] form. +# This will feed configure with $(use_enable foo bar) +# or $(use_enable foo foo) if no :bar is set. +# foo is added to IUSE. +FFMPEG_FLAG_MAP=( + +bzip2:bzlib cpudetection:runtime-cpudetect debug gcrypt +gnutls gmp + +gpl hardcoded-tables +iconv libxml2 lzma +network opencl + openssl +postproc samba:libsmbclient sdl:ffplay sdl:sdl2 vaapi vdpau vulkan + X:xlib X:libxcb X:libxcb-shm X:libxcb-xfixes +zlib + # libavdevice options + cdio:libcdio iec61883:libiec61883 ieee1394:libdc1394 libcaca openal + opengl + # indevs + libv4l:libv4l2 pulseaudio:libpulse libdrm jack:libjack + # decoders + amr:libopencore-amrwb amr:libopencore-amrnb codec2:libcodec2 +dav1d:libdav1d fdk:libfdk-aac + jpeg2k:libopenjpeg bluray:libbluray gme:libgme gsm:libgsm + libaribb24 mmal modplug:libmodplug opus:libopus libilbc librtmp ssh:libssh + speex:libspeex srt:libsrt svg:librsvg video_cards_nvidia:ffnvcodec + vorbis:libvorbis vpx:libvpx zvbi:libzvbi + # libavfilter options + appkit + bs2b:libbs2b chromaprint cuda:cuda-llvm flite:libflite frei0r + fribidi:libfribidi fontconfig ladspa libass libtesseract lv2 truetype:libfreetype vidstab:libvidstab + rubberband:librubberband zeromq:libzmq zimg:libzimg + # libswresample options + libsoxr + # Threads; we only support pthread for now but ffmpeg supports more + +threads:pthreads +) + +# Same as above but for encoders, i.e. they do something only with USE=encode. +FFMPEG_ENCODER_FLAG_MAP=( + amrenc:libvo-amrwbenc mp3:libmp3lame + kvazaar:libkvazaar libaom + openh264:libopenh264 rav1e:librav1e snappy:libsnappy theora:libtheora twolame:libtwolame + webp:libwebp x264:libx264 x265:libx265 xvid:libxvid +) + +IUSE=" + alsa chromium doc +encode oss pic sndio static-libs test v4l + ${FFMPEG_FLAG_MAP[@]%:*} + ${FFMPEG_ENCODER_FLAG_MAP[@]%:*} +" + +# Strings for CPU features in the useflag[:configure_option] form +# if :configure_option isn't set, it will use 'useflag' as configure option +ARM_CPU_FEATURES=( + cpu_flags_arm_thumb:armv5te + cpu_flags_arm_v6:armv6 + cpu_flags_arm_thumb2:armv6t2 + cpu_flags_arm_neon:neon + cpu_flags_arm_vfp:vfp + cpu_flags_arm_vfpv3:vfpv3 + cpu_flags_arm_v8:armv8 +) +ARM_CPU_REQUIRED_USE=" + arm64? ( cpu_flags_arm_v8 ) + cpu_flags_arm_v8? ( cpu_flags_arm_vfpv3 cpu_flags_arm_neon ) + cpu_flags_arm_neon? ( cpu_flags_arm_thumb2 cpu_flags_arm_vfp ) + cpu_flags_arm_vfpv3? ( cpu_flags_arm_vfp ) + cpu_flags_arm_thumb2? ( cpu_flags_arm_v6 ) + cpu_flags_arm_v6? ( cpu_flags_arm_thumb ) +" +MIPS_CPU_FEATURES=( mipsdspr1:mipsdsp mipsdspr2 mipsfpu ) +PPC_CPU_FEATURES=( cpu_flags_ppc_altivec:altivec cpu_flags_ppc_vsx:vsx cpu_flags_ppc_vsx2:power8 ) +PPC_CPU_REQUIRED_USE=" + cpu_flags_ppc_vsx? ( cpu_flags_ppc_altivec ) + cpu_flags_ppc_vsx2? ( cpu_flags_ppc_vsx ) +" +X86_CPU_FEATURES_RAW=( 3dnow:amd3dnow 3dnowext:amd3dnowext aes:aesni avx:avx avx2:avx2 fma3:fma3 fma4:fma4 mmx:mmx mmxext:mmxext sse:sse sse2:sse2 sse3:sse3 ssse3:ssse3 sse4_1:sse4 sse4_2:sse42 xop:xop ) +X86_CPU_FEATURES=( ${X86_CPU_FEATURES_RAW[@]/#/cpu_flags_x86_} ) +X86_CPU_REQUIRED_USE=" + cpu_flags_x86_avx2? ( cpu_flags_x86_avx ) + cpu_flags_x86_fma4? ( cpu_flags_x86_avx ) + cpu_flags_x86_fma3? ( cpu_flags_x86_avx ) + cpu_flags_x86_xop? ( cpu_flags_x86_avx ) + cpu_flags_x86_avx? ( cpu_flags_x86_sse4_2 ) + cpu_flags_x86_aes? ( cpu_flags_x86_sse4_2 ) + cpu_flags_x86_sse4_2? ( cpu_flags_x86_sse4_1 ) + cpu_flags_x86_sse4_1? ( cpu_flags_x86_ssse3 ) + cpu_flags_x86_ssse3? ( cpu_flags_x86_sse3 ) + cpu_flags_x86_sse3? ( cpu_flags_x86_sse2 ) + cpu_flags_x86_sse2? ( cpu_flags_x86_sse ) + cpu_flags_x86_sse? ( cpu_flags_x86_mmxext ) + cpu_flags_x86_mmxext? ( cpu_flags_x86_mmx ) + cpu_flags_x86_3dnowext? ( cpu_flags_x86_3dnow ) + cpu_flags_x86_3dnow? ( cpu_flags_x86_mmx ) +" + +CPU_FEATURES_MAP=( + ${ARM_CPU_FEATURES[@]} + ${MIPS_CPU_FEATURES[@]} + ${PPC_CPU_FEATURES[@]} + ${X86_CPU_FEATURES[@]} +) +IUSE="${IUSE} + ${CPU_FEATURES_MAP[@]%:*}" + +CPU_REQUIRED_USE=" + ${ARM_CPU_REQUIRED_USE} + ${PPC_CPU_REQUIRED_USE} + ${X86_CPU_REQUIRED_USE} +" + +FFTOOLS=( aviocat cws2fws ffescape ffeval ffhash fourcc2pixfmt graph2dot ismindex pktdumper qt-faststart sidxindex trasher ) +IUSE="${IUSE} ${FFTOOLS[@]/#/+fftools_}" + +RDEPEND=" + alsa? ( >=media-libs/alsa-lib-1.0.27.2[${MULTILIB_USEDEP}] ) + amr? ( >=media-libs/opencore-amr-0.1.3-r1[${MULTILIB_USEDEP}] ) + bluray? ( >=media-libs/libbluray-0.3.0-r1:=[${MULTILIB_USEDEP}] ) + bs2b? ( >=media-libs/libbs2b-3.1.0-r1[${MULTILIB_USEDEP}] ) + bzip2? ( >=app-arch/bzip2-1.0.6-r4[${MULTILIB_USEDEP}] ) + cdio? ( >=dev-libs/libcdio-paranoia-0.90_p1-r1[${MULTILIB_USEDEP}] ) + chromaprint? ( >=media-libs/chromaprint-1.2-r1[${MULTILIB_USEDEP}] ) + codec2? ( media-libs/codec2[${MULTILIB_USEDEP}] ) + dav1d? ( >=media-libs/dav1d-0.4.0:0=[${MULTILIB_USEDEP}] ) + encode? ( + amrenc? ( >=media-libs/vo-amrwbenc-0.1.2-r1[${MULTILIB_USEDEP}] ) + kvazaar? ( >=media-libs/kvazaar-1.2.0[${MULTILIB_USEDEP}] ) + mp3? ( >=media-sound/lame-3.99.5-r1[${MULTILIB_USEDEP}] ) + openh264? ( >=media-libs/openh264-1.4.0-r1:=[${MULTILIB_USEDEP}] ) + rav1e? ( >=media-video/rav1e-0.4:=[capi] ) + snappy? ( >=app-arch/snappy-1.1.2-r1:=[${MULTILIB_USEDEP}] ) + theora? ( + >=media-libs/libtheora-1.1.1[encode,${MULTILIB_USEDEP}] + >=media-libs/libogg-1.3.0[${MULTILIB_USEDEP}] + ) + twolame? ( >=media-sound/twolame-0.3.13-r1[${MULTILIB_USEDEP}] ) + webp? ( >=media-libs/libwebp-0.3.0:=[${MULTILIB_USEDEP}] ) + x264? ( >=media-libs/x264-0.0.20130506:=[${MULTILIB_USEDEP}] ) + x265? ( >=media-libs/x265-1.6:=[${MULTILIB_USEDEP}] ) + xvid? ( >=media-libs/xvid-1.3.2-r1[${MULTILIB_USEDEP}] ) + ) + fdk? ( >=media-libs/fdk-aac-0.1.3:=[${MULTILIB_USEDEP}] ) + flite? ( >=app-accessibility/flite-1.4-r4[${MULTILIB_USEDEP}] ) + fontconfig? ( >=media-libs/fontconfig-2.10.92[${MULTILIB_USEDEP}] ) + frei0r? ( media-plugins/frei0r-plugins[${MULTILIB_USEDEP}] ) + fribidi? ( >=dev-libs/fribidi-0.19.6[${MULTILIB_USEDEP}] ) + gcrypt? ( >=dev-libs/libgcrypt-1.6:0=[${MULTILIB_USEDEP}] ) + gme? ( >=media-libs/game-music-emu-0.6.0[${MULTILIB_USEDEP}] ) + gmp? ( >=dev-libs/gmp-6:0=[${MULTILIB_USEDEP}] ) + gsm? ( >=media-sound/gsm-1.0.13-r1[${MULTILIB_USEDEP}] ) + iconv? ( >=virtual/libiconv-0-r1[${MULTILIB_USEDEP}] ) + iec61883? ( + >=media-libs/libiec61883-1.2.0-r1[${MULTILIB_USEDEP}] + >=sys-libs/libraw1394-2.1.0-r1[${MULTILIB_USEDEP}] + >=sys-libs/libavc1394-0.5.4-r1[${MULTILIB_USEDEP}] + ) + ieee1394? ( + >=media-libs/libdc1394-2.2.1:2=[${MULTILIB_USEDEP}] + >=sys-libs/libraw1394-2.1.0-r1[${MULTILIB_USEDEP}] + ) + jack? ( virtual/jack[${MULTILIB_USEDEP}] ) + jpeg2k? ( >=media-libs/openjpeg-2:2[${MULTILIB_USEDEP}] ) + libaom? ( >=media-libs/libaom-1.0.0-r1:=[${MULTILIB_USEDEP}] ) + libaribb24? ( >=media-libs/aribb24-1.0.3-r2[${MULTILIB_USEDEP}] ) + libass? ( >=media-libs/libass-0.10.2:=[${MULTILIB_USEDEP}] ) + libcaca? ( >=media-libs/libcaca-0.99_beta18-r1[${MULTILIB_USEDEP}] ) + libdrm? ( x11-libs/libdrm[${MULTILIB_USEDEP}] ) + libilbc? ( >=media-libs/libilbc-2[${MULTILIB_USEDEP}] ) + librtmp? ( >=media-video/rtmpdump-2.4_p20131018[${MULTILIB_USEDEP}] ) + libsoxr? ( >=media-libs/soxr-0.1.0[${MULTILIB_USEDEP}] ) + libtesseract? ( >=app-text/tesseract-4.1.0-r1[${MULTILIB_USEDEP}] ) + libv4l? ( >=media-libs/libv4l-0.9.5[${MULTILIB_USEDEP}] ) + libxml2? ( dev-libs/libxml2:=[${MULTILIB_USEDEP}] ) + lv2? ( media-libs/lv2[${MULTILIB_USEDEP}] media-libs/lilv[${MULTILIB_USEDEP}] ) + lzma? ( >=app-arch/xz-utils-5.0.5-r1[${MULTILIB_USEDEP}] ) + mmal? ( media-libs/raspberrypi-userland ) + modplug? ( >=media-libs/libmodplug-0.8.8.4-r1[${MULTILIB_USEDEP}] ) + openal? ( >=media-libs/openal-1.15.1[${MULTILIB_USEDEP}] ) + opencl? ( virtual/opencl[${MULTILIB_USEDEP}] ) + opengl? ( >=virtual/opengl-7.0-r1[${MULTILIB_USEDEP}] ) + opus? ( >=media-libs/opus-1.0.2-r2[${MULTILIB_USEDEP}] ) + pulseaudio? ( >=media-sound/pulseaudio-2.1-r1[${MULTILIB_USEDEP}] ) + rubberband? ( >=media-libs/rubberband-1.8.1-r1[${MULTILIB_USEDEP}] ) + samba? ( >=net-fs/samba-3.6.23-r1[client,${MULTILIB_USEDEP}] ) + sdl? ( media-libs/libsdl2[sound,video,${MULTILIB_USEDEP}] ) + sndio? ( media-sound/sndio:=[${MULTILIB_USEDEP}] ) + speex? ( >=media-libs/speex-1.2_rc1-r1[${MULTILIB_USEDEP}] ) + srt? ( >=net-libs/srt-1.3.0:=[${MULTILIB_USEDEP}] ) + ssh? ( >=net-libs/libssh-0.5.5[${MULTILIB_USEDEP}] ) + svg? ( + gnome-base/librsvg:2=[${MULTILIB_USEDEP}] + x11-libs/cairo[${MULTILIB_USEDEP}] + ) + truetype? ( >=media-libs/freetype-2.5.0.1:2[${MULTILIB_USEDEP}] ) + vaapi? ( >=x11-libs/libva-1.2.1-r1:0=[${MULTILIB_USEDEP}] ) + video_cards_nvidia? ( >=media-libs/nv-codec-headers-9.1.23.1[${MULTILIB_USEDEP}] ) + vdpau? ( >=x11-libs/libvdpau-0.7[${MULTILIB_USEDEP}] ) + vidstab? ( >=media-libs/vidstab-1.1.0[${MULTILIB_USEDEP}] ) + vorbis? ( + >=media-libs/libvorbis-1.3.3-r1[${MULTILIB_USEDEP}] + >=media-libs/libogg-1.3.0[${MULTILIB_USEDEP}] + ) + vpx? ( >=media-libs/libvpx-1.4.0:=[${MULTILIB_USEDEP}] ) + vulkan? ( >=media-libs/vulkan-loader-1.1.97:=[${MULTILIB_USEDEP}] ) + X? ( + >=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}] + >=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}] + >=x11-libs/libXv-1.0.10[${MULTILIB_USEDEP}] + >=x11-libs/libxcb-1.4:=[${MULTILIB_USEDEP}] + ) + zeromq? ( >=net-libs/zeromq-4.1.6 ) + zimg? ( >=media-libs/zimg-2.7.4:=[${MULTILIB_USEDEP}] ) + zlib? ( >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}] ) + zvbi? ( >=media-libs/zvbi-0.2.35[${MULTILIB_USEDEP}] ) + postproc? ( !media-libs/libpostproc ) +" + +RDEPEND="${RDEPEND} + openssl? ( >=dev-libs/openssl-1.0.1h-r2:0=[${MULTILIB_USEDEP}] ) + !openssl? ( gnutls? ( >=net-libs/gnutls-2.12.23-r6:=[${MULTILIB_USEDEP}] ) ) +" + +DEPEND="${RDEPEND} + ladspa? ( >=media-libs/ladspa-sdk-1.13-r2[${MULTILIB_USEDEP}] ) + v4l? ( sys-kernel/linux-headers ) +" +BDEPEND=" + >=sys-devel/make-3.81 + virtual/pkgconfig + cpu_flags_x86_mmx? ( || ( >=dev-lang/nasm-2.13 >=dev-lang/yasm-1.3 ) ) + cuda? ( >=sys-devel/clang-7[llvm_targets_NVPTX] ) + doc? ( sys-apps/texinfo ) + test? ( net-misc/wget sys-devel/bc ) +" + +# Code requiring FFmpeg to be built under gpl license +GPL_REQUIRED_USE=" + postproc? ( gpl ) + frei0r? ( gpl ) + cdio? ( gpl ) + rubberband? ( gpl ) + vidstab? ( gpl ) + samba? ( gpl ) + encode? ( + x264? ( gpl ) + x265? ( gpl ) + xvid? ( gpl ) + ) +" +REQUIRED_USE=" + cuda? ( video_cards_nvidia ) + libv4l? ( v4l ) + fftools_cws2fws? ( zlib ) + test? ( encode ) + ${GPL_REQUIRED_USE} + ${CPU_REQUIRED_USE}" +RESTRICT=" + !test? ( test ) + gpl? ( openssl? ( bindist ) fdk? ( bindist ) ) +" + +S=${WORKDIR}/${P/_/-} + +PATCHES=( + "${FILESDIR}"/chromium-r1.patch +) + +MULTILIB_WRAPPED_HEADERS=( + /usr/include/libavutil/avconfig.h +) + +build_separate_libffmpeg() { + use opencl +} + +src_prepare() { + if [[ "${PV%_p*}" != "${PV}" ]] ; then # Snapshot + export revision=git-N-${FFMPEG_REVISION} + fi + default + echo 'include $(SRC_PATH)/ffbuild/libffmpeg.mak' >> Makefile || die +} + +multilib_src_configure() { + local myconf=( ) + + local ffuse=( "${FFMPEG_FLAG_MAP[@]}" ) + use openssl && myconf+=( --enable-nonfree ) + use samba && myconf+=( --enable-version3 ) + + # Encoders + if use encode ; then + ffuse+=( "${FFMPEG_ENCODER_FLAG_MAP[@]}" ) + + # Licensing. + if use amrenc ; then + myconf+=( --enable-version3 ) + fi + else + myconf+=( --disable-encoders ) + fi + + # Indevs + use v4l || myconf+=( --disable-indev=v4l2 --disable-outdev=v4l2 ) + for i in alsa oss jack sndio ; do + use ${i} || myconf+=( --disable-indev=${i} ) + done + + # Outdevs + for i in alsa oss sndio ; do + use ${i} || myconf+=( --disable-outdev=${i} ) + done + + # Decoders + use amr && myconf+=( --enable-version3 ) + use gmp && myconf+=( --enable-version3 ) + use libaribb24 && myconf+=( --enable-version3 ) + use fdk && use gpl && myconf+=( --enable-nonfree ) + + for i in "${ffuse[@]#+}" ; do + myconf+=( $(use_enable ${i%:*} ${i#*:}) ) + done + + if use openssl ; then + myconf+=( --disable-gnutls ) + fi + + # (temporarily) disable non-multilib deps + if ! multilib_is_native_abi; then + for i in librav1e libzmq ; do + myconf+=( --disable-${i} ) + done + fi + + # CPU features + for i in "${CPU_FEATURES_MAP[@]}" ; do + use ${i%:*} || myconf+=( --disable-${i#*:} ) + done + + if use pic ; then + myconf+=( --enable-pic ) + # disable asm code if PIC is required + # as the provided asm decidedly is not PIC for x86. + [[ ${ABI} == x86 ]] && myconf+=( --disable-asm ) + fi + [[ ${ABI} == x32 ]] && myconf+=( --disable-asm ) #427004 + + # Try to get cpu type based on CFLAGS. + # Bug #172723 + # We need to do this so that features of that CPU will be better used + # If they contain an unknown CPU it will not hurt since ffmpeg's configure + # will just ignore it. + for i in $(get-flag mcpu) $(get-flag march) ; do + [[ ${i} = native ]] && i="host" # bug #273421 + myconf+=( --cpu=${i} ) + break + done + + # LTO support, bug #566282, bug #754654 + is-flagq "-flto*" && myconf+=( "--enable-lto" ) + filter-flags "-flto*" + + # Mandatory configuration + myconf=( + --enable-avfilter + --enable-avresample + --disable-stripping + # This is only for hardcoded cflags; those are used in configure checks that may + # interfere with proper detections, bug #671746 and bug #645778 + # We use optflags, so that overrides them anyway. + --disable-optimizations + --disable-libcelt # bug #664158 + "${myconf[@]}" + ) + + # cross compile support + if tc-is-cross-compiler ; then + myconf+=( --enable-cross-compile --arch=$(tc-arch-kernel) --cross-prefix=${CHOST}- --host-cc="$(tc-getBUILD_CC)" ) + case ${CHOST} in + *freebsd*) + myconf+=( --target-os=freebsd ) + ;; + *mingw32*) + myconf+=( --target-os=mingw32 ) + ;; + *linux*) + myconf+=( --target-os=linux ) + ;; + esac + fi + + # doc + myconf+=( + $(multilib_native_use_enable doc) + $(multilib_native_use_enable doc htmlpages) + $(multilib_native_enable manpages) + ) + + local extra_libs + if use arm || use ppc ; then + # bug #782811 + # bug #790590 + extra_libs+="$(test-flags-CCLD -latomic) " + fi + + set -- "${S}/configure" \ + --prefix="${EPREFIX}/usr" \ + --libdir="${EPREFIX}/usr/$(get_libdir)" \ + --shlibdir="${EPREFIX}/usr/$(get_libdir)" \ + --docdir="${EPREFIX}/usr/share/doc/${PF}/html" \ + --mandir="${EPREFIX}/usr/share/man" \ + --enable-shared \ + --cc="$(tc-getCC)" \ + --cxx="$(tc-getCXX)" \ + --ar="$(tc-getAR)" \ + --nm="$(tc-getNM)" \ + --ranlib="$(tc-getRANLIB)" \ + --pkg-config="$(tc-getPKG_CONFIG)" \ + --optflags="${CFLAGS}" \ + --extra-libs="${extra_libs}" \ + $(use_enable static-libs static) \ + "${myconf[@]}" \ + ${EXTRA_FFMPEG_CONF} + echo "${@}" + "${@}" || die + + if multilib_is_native_abi && use chromium && build_separate_libffmpeg; then + einfo "Configuring for Chromium" + mkdir -p ../chromium || die + pushd ../chromium >/dev/null || die + set -- "${@}" \ + --disable-shared \ + --enable-static \ + --enable-pic \ + --disable-opencl + echo "${@}" + "${@}" || die + popd >/dev/null || die + fi +} + +multilib_src_compile() { + emake V=1 + + if multilib_is_native_abi; then + for i in "${FFTOOLS[@]}" ; do + if use fftools_${i} ; then + emake V=1 tools/${i}$(get_exeext) + fi + done + + if use chromium; then + if build_separate_libffmpeg; then + einfo "Compiling for Chromium" + pushd ../chromium >/dev/null || die + emake V=1 libffmpeg + popd >/dev/null || die + else + emake V=1 libffmpeg + fi + fi + fi +} + +multilib_src_test() { + LD_LIBRARY_PATH="${BUILD_DIR}/libpostproc:${BUILD_DIR}/libswscale:${BUILD_DIR}/libswresample:${BUILD_DIR}/libavcodec:${BUILD_DIR}/libavdevice:${BUILD_DIR}/libavfilter:${BUILD_DIR}/libavformat:${BUILD_DIR}/libavutil:${BUILD_DIR}/libavresample" \ + emake V=1 fate +} + +multilib_src_install() { + emake V=1 DESTDIR="${D}" install install-doc + + if multilib_is_native_abi; then + for i in "${FFTOOLS[@]}" ; do + if use fftools_${i} ; then + dobin tools/${i}$(get_exeext) + fi + done + + if use chromium; then + if build_separate_libffmpeg; then + einfo "Installing for Chromium" + pushd ../chromium >/dev/null || die + emake V=1 DESTDIR="${D}" install-libffmpeg + popd >/dev/null || die + else + emake V=1 DESTDIR="${D}" install-libffmpeg + + # When not built separately, libffmpeg has no code of + # its own so this QA check raises a false positive. + QA_FLAGS_IGNORED+=" usr/$(get_libdir)/chromium/.*" + fi + fi + fi +} + +multilib_src_install_all() { + dodoc Changelog README.md CREDITS doc/*.txt doc/APIchanges + [ -f "RELEASE_NOTES" ] && dodoc "RELEASE_NOTES" +} diff --git a/media-video/ffmpeg/ffmpeg-9999.ebuild b/media-video/ffmpeg/ffmpeg-9999.ebuild index 442b6f27b0f3..ebffc6b55085 100644 --- a/media-video/ffmpeg/ffmpeg-9999.ebuild +++ b/media-video/ffmpeg/ffmpeg-9999.ebuild @@ -245,7 +245,10 @@ RDEPEND=" speex? ( >=media-libs/speex-1.2_rc1-r1[${MULTILIB_USEDEP}] ) srt? ( >=net-libs/srt-1.3.0:=[${MULTILIB_USEDEP}] ) ssh? ( >=net-libs/libssh-0.5.5[${MULTILIB_USEDEP}] ) - svg? ( gnome-base/librsvg:2=[${MULTILIB_USEDEP}] ) + svg? ( + gnome-base/librsvg:2=[${MULTILIB_USEDEP}] + x11-libs/cairo[${MULTILIB_USEDEP}] + ) truetype? ( >=media-libs/freetype-2.5.0.1:2[${MULTILIB_USEDEP}] ) vaapi? ( >=x11-libs/libva-1.2.1-r1:0=[${MULTILIB_USEDEP}] ) video_cards_nvidia? ( >=media-libs/nv-codec-headers-9.1.23.1[${MULTILIB_USEDEP}] ) @@ -261,7 +264,7 @@ RDEPEND=" >=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}] >=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}] >=x11-libs/libXv-1.0.10[${MULTILIB_USEDEP}] - >=x11-libs/libxcb-1.4[${MULTILIB_USEDEP}] + >=x11-libs/libxcb-1.4:=[${MULTILIB_USEDEP}] ) zeromq? ( >=net-libs/zeromq-4.1.6 ) zimg? ( >=media-libs/zimg-2.7.4:=[${MULTILIB_USEDEP}] ) diff --git a/media-video/obs-studio/Manifest b/media-video/obs-studio/Manifest index fbefdfe209d0..8295419a9a37 100644 --- a/media-video/obs-studio/Manifest +++ b/media-video/obs-studio/Manifest @@ -1,10 +1,10 @@ AUX obs-studio-26.1.2-python-3.8.patch 653 BLAKE2B 6fbafacb2b2a7dc7dbb15f63eea9463e7c26744caab9399146bd404227d6b7e4119cbeb8f93b4b5c81399d342f02b002d79ad72d2a8dde3317d8f5a67f163dc9 SHA512 598701d227feab450d2f8db40d18b7380dcbedb13b6586deb481b7164c33e12e04b1d5babdadbe073d5af0ac899d783f7a2a2d2ed020f19edb6146cfd00798af DIST cef_binary_4280_linux64.tar.bz2 79740715 BLAKE2B c648a9a4205094450f9eae407e98cbc3da2b7cd81b3c19c4f52cfa3efcca01dce40528018996c65f026eb97520d78040165d1906b0d19236a86e76ec39c58c26 SHA512 060a5a8716a75b4b96dfb6ac28c132e22b93107915d680311c1b9d4fd12c7712a9e3497338eac6d2b9f4e74f2dc005a75d195c597bba049e4731fe3724f519ba -DIST obs-browser-2a338b7c76d5dd0a6b23f1d49affefd40213b0e9.tar.gz 89474 BLAKE2B ff76a884ffbb7765430a14a7de2955164e9d8823f5dd48bd85e6d0452022b706517e935d813ad78a45adf5eca95fda02e17ae81dbd721145d3ecd169c5a70537 SHA512 bcc8e38505b3cabd7c0e3edcd34ed21141efaa09a9bb0af79fefb57e315531f0ee089b79696802fa052659f66e0becf304286ef82afcf16283ed6664cb5cedd4 +DIST obs-browser-aee43000bd994022cd73e32dc50938ab777d4a06.tar.gz 89603 BLAKE2B a51b92f829ecb7055dcf969d6d5bdc4632b51288f0bc7e2ab66fda087da608869ddffccda83aa925f049c79e745a6f67e70ec72303184b970f5009fe37b34054 SHA512 8159ca02b5c30d2733ce8e566f21d6b77d6b7beabd0a5898049ee83b0b4d720b967fc55fcf876cd772fdaa12ca08163a0f8cabf249a9b3b6eb56b7666d1192c7 DIST obs-browser-f1a61c5a2579e5673765c31a47c2053d4b502d4b.tar.gz 79259 BLAKE2B 28cfa46928de0b5e626b384673f7b92b3a48cb631066dda06288c51df78f06b913707a1295a5142d4521505b0678a6c639bfbb5b8a066d585fa12849578a382e SHA512 3ecab39bfb36774ac501de087ca70ecde12f408cfd54cdf12539a92e89d0cf531767a066ff77139389158c46beee423cf1848081ed187890b86241aa96f7b179 DIST obs-studio-27.0.1.tar.gz 15787807 BLAKE2B c2ea571f06a81b2e87ce5d9fd010610ea6cc2753223e6373025f0389972d4638a5f3ff1802f9f0af2c631d71ebcf4603e064da804e8c89eb032b1ad5743d1bd4 SHA512 c15dda62c1f212f623914e61a90c6b1e035720fb84d64726c14f43d77ae7569777a23d04221db34347ce610e7c3407c29e726ae36412e98e34ea2ddb2072b7f3 DIST obs-studio-27.1.3.tar.gz 15994678 BLAKE2B 5544a1ecdb04dca7f6422936ea5499a206b4beb8e5332605c18cd72a91ce73aa74ff06c49a106931822c1c413ee94d383942f173a71f2b21168a00495b4e301f SHA512 04c11c79e3b091aa9ea8fc6674c9fbcaa1c924fe049f68e9be63f63724c31305d6e4fb33aecdd4d0095d20013e2ee188983f6938b175257368d2260681c2fb39 EBUILD obs-studio-27.0.1-r1.ebuild 5401 BLAKE2B 33a0bde9d9e7ca353f7b14ace507eefaca53dc9ba52ee079c02032789dc851060386d114a5d9f0d5936e6f8bce8d7c535e99ad10a5b2778bbdff0aa6ee41a2a9 SHA512 e95c75cb4c6f08794a12501941660b7a8a2f75bcb4e26315101c67d5e34bdd66b62213f707f176a146531cb314ed9931603df0c3c60f6c52076a8dc4e6e7de34 -EBUILD obs-studio-27.1.3.ebuild 5234 BLAKE2B e89b74d8a6bf22634981acc3c6dfbbc6dbb1c9bd00356ee87afbe45c182014779bd54cc3666c06dfd7c888ada0b467d2bb471cdcd00edb44e326422e52750283 SHA512 1dde6de38391affd8d3b4c20e6ee8902f88dcdf53c9e134e43d658f28ee6470d05b346aa9b44611c9e0936dd8d431760043080567e65698be69e306974e28dbb +EBUILD obs-studio-27.1.3-r1.ebuild 5234 BLAKE2B 35fc725fac43cf84baf45c5d17395016db51eede74f8291d3bb59bfc5631978e32d0c5b83e053137a40f1c95a2c443534721dd03ca0fc57fbd91f220f31b3628 SHA512 c0c8af0ee7c22958ca8c5396eb9c5f223e3676dbadca29ef32b687a78afff66241511c8603a6d424489cf3b8b6a4ef21442880fe4e46a35dffa294f7e0e65591 EBUILD obs-studio-9999.ebuild 5234 BLAKE2B e89b74d8a6bf22634981acc3c6dfbbc6dbb1c9bd00356ee87afbe45c182014779bd54cc3666c06dfd7c888ada0b467d2bb471cdcd00edb44e326422e52750283 SHA512 1dde6de38391affd8d3b4c20e6ee8902f88dcdf53c9e134e43d658f28ee6470d05b346aa9b44611c9e0936dd8d431760043080567e65698be69e306974e28dbb MISC metadata.xml 1492 BLAKE2B 640e009dbc42a2f994c0737bf7e301738a52b541cc21b3a569d8988aa75614bf36541a0560fd6c690fca2d65134d8e71e8dae5ee8c19ab6d471dc431c7e2d38b SHA512 47de7d50138f441074dc81157410345790e4def50abe109b961781aba36f47fe413642f44143398be3a23ab8e8c40479622654b8d845bf976468ac8c994007fa diff --git a/media-video/obs-studio/obs-studio-27.1.3-r1.ebuild b/media-video/obs-studio/obs-studio-27.1.3-r1.ebuild new file mode 100644 index 000000000000..9cd43053e715 --- /dev/null +++ b/media-video/obs-studio/obs-studio-27.1.3-r1.ebuild @@ -0,0 +1,214 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +CMAKE_REMOVE_MODULES_LIST=( FindFreetype ) +LUA_COMPAT=( luajit ) +PYTHON_COMPAT=( python3_{8..10} ) + +inherit cmake lua-single python-single-r1 xdg + +OBS_BROWSER_COMMIT="aee43000bd994022cd73e32dc50938ab777d4a06" +CEF_DIR="cef_binary_4280_linux64" + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/obsproject/obs-studio.git" + EGIT_SUBMODULES=( plugins/obs-browser ) +else + SRC_URI="https://github.com/obsproject/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz" + SRC_URI+=" browser? ( https://github.com/obsproject/obs-browser/archive/${OBS_BROWSER_COMMIT}.tar.gz -> obs-browser-${OBS_BROWSER_COMMIT}.tar.gz )" + KEYWORDS="~amd64 ~ppc64 ~x86" +fi +SRC_URI+=" browser? ( https://cdn-fastly.obsproject.com/downloads/${CEF_DIR}.tar.bz2 )" + +DESCRIPTION="Software for Recording and Streaming Live Video Content" +HOMEPAGE="https://obsproject.com" + +LICENSE="GPL-2" +SLOT="0" +IUSE=" + +alsa browser decklink fdk jack lua nvenc pipewire + pulseaudio python speex +ssl truetype v4l vlc wayland +" +REQUIRED_USE=" + browser? ( || ( alsa pulseaudio ) ) + lua? ( ${LUA_REQUIRED_USE} ) + python? ( ${PYTHON_REQUIRED_USE} ) +" + +BDEPEND=" + lua? ( dev-lang/swig ) + python? ( dev-lang/swig ) +" +DEPEND=" + dev-libs/glib:2 + dev-libs/jansson:= + dev-qt/qtcore:5 + dev-qt/qtdeclarative:5 + dev-qt/qtgui:5[wayland?] + dev-qt/qtmultimedia:5 + dev-qt/qtnetwork:5 + dev-qt/qtquickcontrols:5 + dev-qt/qtsql:5 + dev-qt/qtsvg:5 + dev-qt/qtwidgets:5 + dev-qt/qtx11extras:5 + dev-qt/qtxml:5 + media-libs/libglvnd + media-libs/x264:= + media-video/ffmpeg:=[x264] + net-misc/curl + sys-apps/dbus + sys-libs/zlib:= + virtual/udev + x11-libs/libX11 + x11-libs/libXcomposite + x11-libs/libXfixes + x11-libs/libXinerama + x11-libs/libXrandr + x11-libs/libxcb:= + alsa? ( media-libs/alsa-lib ) + browser? ( + app-accessibility/at-spi2-atk + app-accessibility/at-spi2-core:2 + dev-libs/atk + dev-libs/expat + dev-libs/glib + dev-libs/nspr + dev-libs/nss + media-libs/alsa-lib + media-libs/fontconfig + media-libs/mesa[gbm(+)] + net-print/cups + x11-libs/libdrm + x11-libs/libXScrnSaver + x11-libs/libXcursor + x11-libs/libXdamage + x11-libs/libXext + x11-libs/libXi + x11-libs/libXrender + x11-libs/libXtst + ) + fdk? ( media-libs/fdk-aac:= ) + jack? ( virtual/jack ) + lua? ( ${LUA_DEPS} ) + nvenc? ( >=media-video/ffmpeg-4[video_cards_nvidia] ) + pipewire? ( media-video/pipewire:= ) + pulseaudio? ( media-sound/pulseaudio ) + python? ( ${PYTHON_DEPS} ) + speex? ( media-libs/speexdsp ) + ssl? ( net-libs/mbedtls:= ) + truetype? ( + media-libs/fontconfig + media-libs/freetype + ) + v4l? ( media-libs/libv4l ) + vlc? ( media-video/vlc:= ) + wayland? ( dev-libs/wayland ) +" +RDEPEND="${DEPEND}" + +QA_PREBUILT=" + usr/lib*/obs-plugins/chrome-sandbox + usr/lib*/obs-plugins/libEGL.so + usr/lib*/obs-plugins/libGLESv2.so + usr/lib*/obs-plugins/libcef.so + usr/lib*/obs-plugins/swiftshader/libEGL.so + usr/lib*/obs-plugins/swiftshader/libGLESv2.so +" + +PATCHES=( + "${FILESDIR}/${PN}-26.1.2-python-3.8.patch" +) + +pkg_setup() { + use lua && lua-single_pkg_setup + use python && python-single-r1_pkg_setup +} + +src_unpack() { + default + + if [[ ${PV} == 9999 ]]; then + git-r3_src_unpack + elif use browser; then + rm -d ${P}/plugins/obs-browser || die + mv obs-browser-${OBS_BROWSER_COMMIT} ${P}/plugins/obs-browser || die + fi +} + +src_configure() { + local libdir=$(get_libdir) + local mycmakeargs=( + $(usev browser -DCEF_ROOT_DIR=../${CEF_DIR}) + -DBUILD_BROWSER=$(usex browser) + -DBUILD_VST=no + -DENABLE_WAYLAND=$(usex wayland) + -DDISABLE_ALSA=$(usex !alsa) + -DDISABLE_DECKLINK=$(usex !decklink) + -DDISABLE_FREETYPE=$(usex !truetype) + -DDISABLE_JACK=$(usex !jack) + -DDISABLE_LIBFDK=$(usex !fdk) + -DENABLE_PIPEWIRE=$(usex pipewire) + -DDISABLE_PULSEAUDIO=$(usex !pulseaudio) + $(cmake_use_find_package pulseaudio PulseAudio) + -DDISABLE_SPEEXDSP=$(usex !speex) + -DDISABLE_V4L2=$(usex !v4l) + -DDISABLE_VLC=$(usex !vlc) + -DOBS_MULTIARCH_SUFFIX=${libdir#lib} + -DUNIX_STRUCTURE=1 + -DWITH_RTMPS=$(usex ssl) + + # deprecated and currently cause issues + # https://github.com/obsproject/obs-studio/pull/4560#issuecomment-826345608 + -DLIBOBS_PREFER_IMAGEMAGICK=no + ) + + if [[ ${PV} != 9999 ]]; then + mycmakeargs+=( + -DOBS_VERSION_OVERRIDE=${PV} + ) + fi + + if use lua || use python; then + mycmakeargs+=( + -DDISABLE_LUA=$(usex !lua) + -DDISABLE_PYTHON=$(usex !python) + -DENABLE_SCRIPTING=yes + ) + else + mycmakeargs+=( -DENABLE_SCRIPTING=no ) + fi + + cmake_src_configure +} + +src_install() { + cmake_src_install + + # external plugins may need some things not installed by default, install them here + insinto /usr/include/obs/UI/obs-frontend-api + doins UI/obs-frontend-api/obs-frontend-api.h +} + +pkg_postinst() { + xdg_pkg_postinst + + if ! use alsa && ! use pulseaudio; then + elog + elog "For the audio capture features to be available," + elog "either the 'alsa' or the 'pulseaudio' USE-flag needs to" + elog "be enabled." + elog + fi + + if use python; then + ewarn "This ebuild applies a patch that is not yet accepted upstream," + ewarn "and while it fixes Python support at least to some extent, it" + ewarn "may cause other issues." + ewarn "" + ewarn "Please report any such issues to the Gentoo maintainer." + fi +} diff --git a/media-video/obs-studio/obs-studio-27.1.3.ebuild b/media-video/obs-studio/obs-studio-27.1.3.ebuild deleted file mode 100644 index 6e23d6b2b473..000000000000 --- a/media-video/obs-studio/obs-studio-27.1.3.ebuild +++ /dev/null @@ -1,214 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -CMAKE_REMOVE_MODULES_LIST=( FindFreetype ) -LUA_COMPAT=( luajit ) -PYTHON_COMPAT=( python3_{8..10} ) - -inherit cmake lua-single python-single-r1 xdg - -OBS_BROWSER_COMMIT="2a338b7c76d5dd0a6b23f1d49affefd40213b0e9" -CEF_DIR="cef_binary_4280_linux64" - -if [[ ${PV} == 9999 ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/obsproject/obs-studio.git" - EGIT_SUBMODULES=( plugins/obs-browser ) -else - SRC_URI="https://github.com/obsproject/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz" - SRC_URI+=" browser? ( https://github.com/obsproject/obs-browser/archive/${OBS_BROWSER_COMMIT}.tar.gz -> obs-browser-${OBS_BROWSER_COMMIT}.tar.gz )" - KEYWORDS="~amd64 ~ppc64 ~x86" -fi -SRC_URI+=" browser? ( https://cdn-fastly.obsproject.com/downloads/${CEF_DIR}.tar.bz2 )" - -DESCRIPTION="Software for Recording and Streaming Live Video Content" -HOMEPAGE="https://obsproject.com" - -LICENSE="GPL-2" -SLOT="0" -IUSE=" - +alsa browser decklink fdk jack lua nvenc pipewire - pulseaudio python speex +ssl truetype v4l vlc wayland -" -REQUIRED_USE=" - browser? ( || ( alsa pulseaudio ) ) - lua? ( ${LUA_REQUIRED_USE} ) - python? ( ${PYTHON_REQUIRED_USE} ) -" - -BDEPEND=" - lua? ( dev-lang/swig ) - python? ( dev-lang/swig ) -" -DEPEND=" - dev-libs/glib:2 - dev-libs/jansson:= - dev-qt/qtcore:5 - dev-qt/qtdeclarative:5 - dev-qt/qtgui:5[wayland?] - dev-qt/qtmultimedia:5 - dev-qt/qtnetwork:5 - dev-qt/qtquickcontrols:5 - dev-qt/qtsql:5 - dev-qt/qtsvg:5 - dev-qt/qtwidgets:5 - dev-qt/qtx11extras:5 - dev-qt/qtxml:5 - media-libs/libglvnd - media-libs/x264:= - media-video/ffmpeg:=[x264] - net-misc/curl - sys-apps/dbus - sys-libs/zlib:= - virtual/udev - x11-libs/libX11 - x11-libs/libXcomposite - x11-libs/libXfixes - x11-libs/libXinerama - x11-libs/libXrandr - x11-libs/libxcb:= - alsa? ( media-libs/alsa-lib ) - browser? ( - app-accessibility/at-spi2-atk - app-accessibility/at-spi2-core:2 - dev-libs/atk - dev-libs/expat - dev-libs/glib - dev-libs/nspr - dev-libs/nss - media-libs/alsa-lib - media-libs/fontconfig - media-libs/mesa[gbm(+)] - net-print/cups - x11-libs/libdrm - x11-libs/libXScrnSaver - x11-libs/libXcursor - x11-libs/libXdamage - x11-libs/libXext - x11-libs/libXi - x11-libs/libXrender - x11-libs/libXtst - ) - fdk? ( media-libs/fdk-aac:= ) - jack? ( virtual/jack ) - lua? ( ${LUA_DEPS} ) - nvenc? ( >=media-video/ffmpeg-4[video_cards_nvidia] ) - pipewire? ( media-video/pipewire:= ) - pulseaudio? ( media-sound/pulseaudio ) - python? ( ${PYTHON_DEPS} ) - speex? ( media-libs/speexdsp ) - ssl? ( net-libs/mbedtls:= ) - truetype? ( - media-libs/fontconfig - media-libs/freetype - ) - v4l? ( media-libs/libv4l ) - vlc? ( media-video/vlc:= ) - wayland? ( dev-libs/wayland ) -" -RDEPEND="${DEPEND}" - -QA_PREBUILT=" - usr/lib*/obs-plugins/chrome-sandbox - usr/lib*/obs-plugins/libEGL.so - usr/lib*/obs-plugins/libGLESv2.so - usr/lib*/obs-plugins/libcef.so - usr/lib*/obs-plugins/swiftshader/libEGL.so - usr/lib*/obs-plugins/swiftshader/libGLESv2.so -" - -PATCHES=( - "${FILESDIR}/${PN}-26.1.2-python-3.8.patch" -) - -pkg_setup() { - use lua && lua-single_pkg_setup - use python && python-single-r1_pkg_setup -} - -src_unpack() { - default - - if [[ ${PV} == 9999 ]]; then - git-r3_src_unpack - elif use browser; then - rm -d ${P}/plugins/obs-browser || die - mv obs-browser-${OBS_BROWSER_COMMIT} ${P}/plugins/obs-browser || die - fi -} - -src_configure() { - local libdir=$(get_libdir) - local mycmakeargs=( - $(usev browser -DCEF_ROOT_DIR=../${CEF_DIR}) - -DBUILD_BROWSER=$(usex browser) - -DBUILD_VST=no - -DENABLE_WAYLAND=$(usex wayland) - -DDISABLE_ALSA=$(usex !alsa) - -DDISABLE_DECKLINK=$(usex !decklink) - -DDISABLE_FREETYPE=$(usex !truetype) - -DDISABLE_JACK=$(usex !jack) - -DDISABLE_LIBFDK=$(usex !fdk) - -DENABLE_PIPEWIRE=$(usex pipewire) - -DDISABLE_PULSEAUDIO=$(usex !pulseaudio) - $(cmake_use_find_package pulseaudio PulseAudio) - -DDISABLE_SPEEXDSP=$(usex !speex) - -DDISABLE_V4L2=$(usex !v4l) - -DDISABLE_VLC=$(usex !vlc) - -DOBS_MULTIARCH_SUFFIX=${libdir#lib} - -DUNIX_STRUCTURE=1 - -DWITH_RTMPS=$(usex ssl) - - # deprecated and currently cause issues - # https://github.com/obsproject/obs-studio/pull/4560#issuecomment-826345608 - -DLIBOBS_PREFER_IMAGEMAGICK=no - ) - - if [[ ${PV} != 9999 ]]; then - mycmakeargs+=( - -DOBS_VERSION_OVERRIDE=${PV} - ) - fi - - if use lua || use python; then - mycmakeargs+=( - -DDISABLE_LUA=$(usex !lua) - -DDISABLE_PYTHON=$(usex !python) - -DENABLE_SCRIPTING=yes - ) - else - mycmakeargs+=( -DENABLE_SCRIPTING=no ) - fi - - cmake_src_configure -} - -src_install() { - cmake_src_install - - # external plugins may need some things not installed by default, install them here - insinto /usr/include/obs/UI/obs-frontend-api - doins UI/obs-frontend-api/obs-frontend-api.h -} - -pkg_postinst() { - xdg_pkg_postinst - - if ! use alsa && ! use pulseaudio; then - elog - elog "For the audio capture features to be available," - elog "either the 'alsa' or the 'pulseaudio' USE-flag needs to" - elog "be enabled." - elog - fi - - if use python; then - ewarn "This ebuild applies a patch that is not yet accepted upstream," - ewarn "and while it fixes Python support at least to some extent, it" - ewarn "may cause other issues." - ewarn "" - ewarn "Please report any such issues to the Gentoo maintainer." - fi -} diff --git a/media-video/openshot/Manifest b/media-video/openshot/Manifest index 22bdefb7e605..d0007cdf4383 100644 --- a/media-video/openshot/Manifest +++ b/media-video/openshot/Manifest @@ -1,3 +1,3 @@ -DIST openshot-2.6.0.tar.gz 68096356 BLAKE2B e34ef6ee043565a895a110f867bbdbe4f49290d883224eec1c710f7b94186cea3a5083502b5c80d2dc02ddd61fc87d0ceacd397465892bd5e149b1846a2328ef SHA512 9e569f318672047e8251d00ce0bb80e4b295d5daba58c11a3e286b7daebf45b35a34d4ecc5a9d81891b0a68d75d813a78023ee984b8690a2d1217a8517239ee9 -EBUILD openshot-2.6.0.ebuild 1399 BLAKE2B ec7aac8b80aaa9204390d6f874044c46bc3e2a7cc1b85a377a083e580909993a0db0b49a7279b99f3ed9fab6ab996a0261ecbce3dfbc04f2bc6c264446df7134 SHA512 b8fad7214d387979a2959d0f54ea6acd60ce5136db8842f9ebaad36f36a0fdedad157b6a70ba69cbb5b084402811556f4161d7226d4ee2efcd6ff6dcba24ab89 +DIST openshot-2.6.1.tar.gz 68566443 BLAKE2B b3a163983bdb811103e5d9307beeb38938719747f743dd58520a0166c08eb11f4592d47bf24224062f9db323a66a2f353eb22f087982b929d60a519cd2c40789 SHA512 9e2d1eae5d72ec2deab914e464dac0d84a864ba2ca63104fad57c90fc907764d5683149fb8136d50030cae993cef9a977e995b0783868988de4668e71a3a5ee2 +EBUILD openshot-2.6.1.ebuild 1399 BLAKE2B ec7aac8b80aaa9204390d6f874044c46bc3e2a7cc1b85a377a083e580909993a0db0b49a7279b99f3ed9fab6ab996a0261ecbce3dfbc04f2bc6c264446df7134 SHA512 b8fad7214d387979a2959d0f54ea6acd60ce5136db8842f9ebaad36f36a0fdedad157b6a70ba69cbb5b084402811556f4161d7226d4ee2efcd6ff6dcba24ab89 MISC metadata.xml 521 BLAKE2B 0594441c26e88ba0aa7ea85be94580dd73588711f4a9c529ab7525b7535a3753579f7ab17d71a9ee4d801b269eeb214a4a5886a9bf2c89752ea6d9540a191294 SHA512 1028c0ac29289a8507d9e23e963c4f3341fdc59d36d06780f6d212f667212509d50781be5544636827af141d8f0d16c45ece1bd8010f37ee6c91464b9dd14687 diff --git a/media-video/openshot/openshot-2.6.0.ebuild b/media-video/openshot/openshot-2.6.0.ebuild deleted file mode 100644 index 9add97810814..000000000000 --- a/media-video/openshot/openshot-2.6.0.ebuild +++ /dev/null @@ -1,55 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{8,9} ) -PYTHON_REQ_USE=xml -DISTUTILS_SINGLE_IMPL=1 - -inherit distutils-r1 xdg - -MY_PN="${PN}-qt" - -DESCRIPTION="Award-winning free and open-source video editor" -HOMEPAGE="https://openshot.org/" -SRC_URI="https://github.com/OpenShot/${MY_PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" -S="${WORKDIR}/${MY_PN}-${PV}" - -LICENSE="GPL-3+" -SLOT="1" -KEYWORDS="~amd64 ~x86" -IUSE="doc" - -RDEPEND="$(python_gen_cond_dep ' - dev-python/httplib2[${PYTHON_MULTI_USEDEP}] - dev-python/PyQt5[${PYTHON_MULTI_USEDEP},gui,svg,widgets] - dev-python/PyQtWebEngine[${PYTHON_MULTI_USEDEP}] - dev-python/pyzmq[${PYTHON_MULTI_USEDEP}] - dev-python/requests[${PYTHON_MULTI_USEDEP}] - ') - >=media-libs/libopenshot-0.2.6:0=[python,${PYTHON_SINGLE_USEDEP}]" -DEPEND="" -BDEPEND="$(python_gen_cond_dep ' - doc? ( dev-python/sphinx[${PYTHON_MULTI_USEDEP}] ) - ')" - -src_prepare() { - distutils-r1_python_prepare_all - # prevent setup.py from trying to update MIME databases - sed -i 's/^ROOT =.*/ROOT = False/' setup.py || die -} - -python_compile_all() { - use doc && emake -C doc html -} - -python_install_all() { - use doc && local HTML_DOCS=( doc/_build/html/. ) - distutils-r1_python_install_all -} - -python_test() { - distutils_install_for_testing - "${EPYTHON}" src/tests/query_tests.py -v --platform minimal || die -} diff --git a/media-video/openshot/openshot-2.6.1.ebuild b/media-video/openshot/openshot-2.6.1.ebuild new file mode 100644 index 000000000000..9add97810814 --- /dev/null +++ b/media-video/openshot/openshot-2.6.1.ebuild @@ -0,0 +1,55 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{8,9} ) +PYTHON_REQ_USE=xml +DISTUTILS_SINGLE_IMPL=1 + +inherit distutils-r1 xdg + +MY_PN="${PN}-qt" + +DESCRIPTION="Award-winning free and open-source video editor" +HOMEPAGE="https://openshot.org/" +SRC_URI="https://github.com/OpenShot/${MY_PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" +S="${WORKDIR}/${MY_PN}-${PV}" + +LICENSE="GPL-3+" +SLOT="1" +KEYWORDS="~amd64 ~x86" +IUSE="doc" + +RDEPEND="$(python_gen_cond_dep ' + dev-python/httplib2[${PYTHON_MULTI_USEDEP}] + dev-python/PyQt5[${PYTHON_MULTI_USEDEP},gui,svg,widgets] + dev-python/PyQtWebEngine[${PYTHON_MULTI_USEDEP}] + dev-python/pyzmq[${PYTHON_MULTI_USEDEP}] + dev-python/requests[${PYTHON_MULTI_USEDEP}] + ') + >=media-libs/libopenshot-0.2.6:0=[python,${PYTHON_SINGLE_USEDEP}]" +DEPEND="" +BDEPEND="$(python_gen_cond_dep ' + doc? ( dev-python/sphinx[${PYTHON_MULTI_USEDEP}] ) + ')" + +src_prepare() { + distutils-r1_python_prepare_all + # prevent setup.py from trying to update MIME databases + sed -i 's/^ROOT =.*/ROOT = False/' setup.py || die +} + +python_compile_all() { + use doc && emake -C doc html +} + +python_install_all() { + use doc && local HTML_DOCS=( doc/_build/html/. ) + distutils-r1_python_install_all +} + +python_test() { + distutils_install_for_testing + "${EPYTHON}" src/tests/query_tests.py -v --platform minimal || die +} diff --git a/media-video/pipewire/Manifest b/media-video/pipewire/Manifest index 6cdbac926ba2..228c651285dc 100644 --- a/media-video/pipewire/Manifest +++ b/media-video/pipewire/Manifest @@ -10,6 +10,8 @@ AUX pipewire-0.3.36-non-systemd-integration.patch 911 BLAKE2B 6c6df1080821cefa17 AUX pipewire-0.3.38-find-readline.patch 1546 BLAKE2B c8d6a8d53e8f71792c5055dabb0a66d8a2b93641e4ade45542fbcb3269ebabb3319c1225f63433cccf8000f4585607383a903045112e9bd204f95bed4e92546e SHA512 c09d604e09552c1dca29b9709c8571a9bc1393fa885e249d8e71403a5669ef732d0e14b9a7c9f315a55b03c2dd2022bfa9f71f4430ae7f93a8d01b686f6bf246 AUX pipewire-0.3.38-fix-arm-build.patch 550 BLAKE2B c5c178160841494ffcbf5285939a8d2f5c4ac09ba9fd448b3c77446dc523a07d8ed090f08fec1029357c5cb67ea696f57aa3c22de1df5aa01d789c5c96cfdab5 SHA512 e35d35905da4f35b1db5c1e8a8dada24e83320dc38c4353f7c7dc4cc442c9a73aed02b4df99d66983683f36a004f85bdba9a287ff9e0e8ce71624e1703fced7b AUX pipewire-0.3.38-libcamera-null-deref.patch 2031 BLAKE2B a1bc641385bd762da8e0e523d48438eb703230a6c05b5064f49584dea990c5aae449ddd9e8fe29dacb35b41dc70f50c4ab2086b3ce6e3a139ca5b5b14754da1a SHA512 5e19f04613de8a85cf70d75a5c1816ba61c789dc35905428b6f0787f63feb41ffe8cef09b1528e608affb6a27cddc7530dfe4f00a7ca3f45fba9740d4093abf0 +AUX pipewire-0.3.39-endian-test-fix.patch 3368 BLAKE2B 1118b19aa84075a936884c638f895104cbc732199bba6e0d1101c3a0366e9f8ec93fbb7c458e11686e0884a53ad7467bcd32252906f9d5b1883d3ee35d3d03a7 SHA512 f1a83c761f3b49b3782e17190454718d15ad6e5a9c2f729c95c04a419cf5fb3f2222d86acc0df14a1467feb7381663fa639997711614ebfbfe6f5a6ada335263 +AUX pipewire-0.3.39-fix-build-some-arches.patch 1310 BLAKE2B 31e9f8030ef0f131de9c987371cd9fe62a900792de9c93ebe95ec489f7d1a20475ea128ea6a78d98807788a6ec0319ba39880033e2e8aa17c8a66119d482654a SHA512 0230f63612ff3b551e24ac9fba88df6920d4f23cc726e55a81aaa82b18293059815743b10043603010f7e42573f2f3f3344a4c7462eb8060ac9394651595fda9 AUX pipewire-launcher.sh 149 BLAKE2B 42a9fd174e8216f9941ec72bc50581d539453dd0430ac61712582039f1cfe17cafa050bd87fcb90b9c16ffd891fd9f9c5dfec99b2be8c66eaed0128af180508e SHA512 7f50287565fa44e2296a7b294e8fd3dd64938d2de15c6ff5674d85a6e7bbccbc334c0fb9e28321104aff5335894b3c5a21171f385465e37b422ef53988dbfe4b AUX pipewire.desktop 322 BLAKE2B 0299b9054cf881a5cbbdb128a5e8a51308cf0b5a98260dca756e704504ef057e403b2fb4aa2d58f52dde4be59e416c95d8fce21bc3ca6b6447ecab58263a3f21 SHA512 c13ea531cfdd3798f8d6cd20f5fa8c0a5040c27a6ef3850fdd41102a3bf0bcb73176e3300845af77804a98842fb736841223bc9ac1c92eb2034e9d46e41fc344 AUX pipewire.desktop-r1 325 BLAKE2B 7d823a264e5147bf8669127df22f468518fd54375ed57910f0143821894b33cfee8925b1cf8b9c5b1d219453a5c62fffa50d111b78bc5e151e23aed84d0a577e SHA512 e51ba049484daba3e4cdc5890748267f0c23ea6e57f31f3bb8a49c011e1a61b47b68eea742e5e7bcd58bfeddb96dd4064079fd9787cb66c78bd5eff10799a7bf @@ -22,6 +24,6 @@ EBUILD pipewire-0.3.30-r2.ebuild 9675 BLAKE2B df43c7f1ef0622d96741266e53dc343d96 EBUILD pipewire-0.3.36.ebuild 10264 BLAKE2B 4c34ce0089bf417366a1cc2eb6e5a83d84af4816db5da53fe0293504c26ddd3d0caef8e4cb48fd3c1a48cb4424720f31319e6f3d99729213595498d447ace0dd SHA512 a4ad4dfe0969fd41533e6742843e8b4332fc0122c4327e3198ae8c7a84be166f008c9ed694f14a56b56bfc129a6678651a17a168b96b13329485be2af378930d EBUILD pipewire-0.3.37.ebuild 10105 BLAKE2B 3c2d5450d5ffdd1be84b55e9fa06305f6b94566761045f13b978aac9fcc721badf46c5cbac97c5ceffef69d68bb02e5ea3986fc448e2b15ac5a5c5e03ea99c8c SHA512 5dd64416f24b099bf465b630e9116e1c756b0372ae0035ee4b7a7ca6d9fe88b3c9d9ce507251dcc8ae91a4aa0ad9fb9fd95c84275146052c1b05149e0c0f2b61 EBUILD pipewire-0.3.38.ebuild 10338 BLAKE2B 7861add091c7a01562398c392f512426a71e09f2ea3026aa22f296d9c57074f09807790cdaa6f9dd8f8c6b8ed453e83e40bb6561f8d2277c551b84f0e051914b SHA512 3f0758cc305d9efe5ba1599dd47b24820c0100b1279e607607db0d36779da0e6e0c4803e9861887ed49205dba4fc1a22a33b634ddc5c4b02899a910e61c3cb59 -EBUILD pipewire-0.3.39-r1.ebuild 10788 BLAKE2B eb1c937ac9125b31a8f0f77931e82b17c41ab1a551fe55ba38d50ee682ba61f3e809eec30ecbd1dffdb6d0a698d59a5b3549cf8cd25ccc63b71ec1b8cd56f142 SHA512 f480f128303b013ddcf50379ce3470bc86a143cc0332c4adc7bdb31e9480edfbd0b49882d583b0a3ae9605a21381fc4fc316c9827e973c3d9f284dff37e8603b -EBUILD pipewire-9999.ebuild 10785 BLAKE2B 7bc2d17dc8f35d6b3e3430effabc16a2435d9524464014f7bab84aa0201441fd9bc58eccb07b33d4a20be1b2cb97ea94c58c894dc08642a6a2ffa3c2a6d724a4 SHA512 2295cad63d6fe5e4b9996fee4a5d7e5d5b1b410c030b6a142e1b062d3683a917b9a3b064b854f180a1a318256a20880662e1c84e08b103e569891728deaa33bb +EBUILD pipewire-0.3.39-r4.ebuild 10888 BLAKE2B 9a229f85583bd255a3f2ad0c432db4e8b5cd0f628a778ddca5ca7a7d97acf90f0af4cb8a22a238f7a0a4706cc268f7278a5d44406457e5026e9a00a8d76c0cee SHA512 a95610efddadb30ee1db556bd6fef7d5d090b416354f39bab80a8cf912eaed78f50c4d8333a82fb617a822c22b97c8541d83d425fbac73959fa5577c8bafc294 +EBUILD pipewire-9999.ebuild 10783 BLAKE2B 898d127277ee046d55a3d4c2f4fca5bcbfa528835d94c02c75534c76395dc22cae3617950ac2040d35d2d1a5a8fd06e312b319a370f5e2ccb3b5411563bf883a SHA512 14e179d0e485b6077f8fa276e4ae63e1a0e89e199cb4347477aee57a7b5fde892ecb7dddac63c4b669e4ef03669be17c233db928077227e8806adb4bd7bbadf5 MISC metadata.xml 1182 BLAKE2B 1f8a03e4957ec550bbdc24352ff138ae42b7aaffd876cef6578b4e7247f91fe1eb6d0c6b47bac01c3b477a7efbd1d89bdeb32c5a1411e7d749c45d5e5c3c70bd SHA512 d38b464b77040206ee7e45fb4f18f01c29db0f5bce087fc8caefa1728d3680c1bc299d7197e3ff7a46e0e08f219ac4b0893c1815d564517365c8996cac5e49bf diff --git a/media-video/pipewire/files/pipewire-0.3.39-endian-test-fix.patch b/media-video/pipewire/files/pipewire-0.3.39-endian-test-fix.patch new file mode 100644 index 000000000000..2687299b235d --- /dev/null +++ b/media-video/pipewire/files/pipewire-0.3.39-endian-test-fix.patch @@ -0,0 +1,112 @@ +https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/5dfc3494dc4635918e74b9f3d717a39a74b28554.patch +https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/c07f0ccb71a9d95944ce3e4d7e453cb50a26b0a2.patch + +From 5dfc3494dc4635918e74b9f3d717a39a74b28554 Mon Sep 17 00:00:00 2001 +From: Wim Taymans +Date: Mon, 25 Oct 2021 16:15:17 +0200 +Subject: [PATCH] map: use uintptr_t for the next pointer + +This aligns the low bits of the next field with the low bits of the +pointer on big endian cpus. + +Fixes #1747 +--- + src/pipewire/map.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/pipewire/map.h b/src/pipewire/map.h +index f47dfa6b3..1867fa4d3 100644 +--- a/src/pipewire/map.h ++++ b/src/pipewire/map.h +@@ -74,7 +74,7 @@ extern "C" { + * first item to get re-used on the next insert. + */ + union pw_map_item { +- uint32_t next; /* next free index */ ++ uintptr_t next; /* next free index */ + void *data; /* data of this item, must be an even address */ + }; + +-- +GitLab + +From c07f0ccb71a9d95944ce3e4d7e453cb50a26b0a2 Mon Sep 17 00:00:00 2001 +From: Wim Taymans +Date: Mon, 25 Oct 2021 16:11:56 +0200 +Subject: [PATCH] map: make _insert_at() fail on a removed item + +You are only supposed to use _insert_new()/_remove() or _insert_at() +on the map, If we detect a _insert_at() to a removed item, +return an error because else we might corrupt the free list. + +Update unit test accordingly. +--- + src/pipewire/map.h | 15 ++------------- + test/test-map.c | 17 +---------------- + 2 files changed, 3 insertions(+), 29 deletions(-) + +diff --git a/src/pipewire/map.h b/src/pipewire/map.h +index fd57f7f7c..f47dfa6b3 100644 +--- a/src/pipewire/map.h ++++ b/src/pipewire/map.h +@@ -182,20 +182,9 @@ static inline int pw_map_insert_at(struct pw_map *map, uint32_t id, void *data) + if (item == NULL) + return -errno; + } else { +- if (pw_map_id_is_free(map, id)) { +- uint32_t *current = &map->free_list; +- while (*current != SPA_ID_INVALID) { +- uint32_t current_id = (*current) >> 1; +- uint32_t *next = &pw_map_get_item(map, current_id)->next; +- +- if (current_id == id) { +- *current = *next; +- break; +- } +- current = next; +- } +- } + item = pw_map_get_item(map, id); ++ if (pw_map_item_is_free(item)) ++ return -EINVAL; + } + item->data = data; + return 0; +diff --git a/test/test-map.c b/test/test-map.c +index dd1df77a8..b6d7681ce 100644 +--- a/test/test-map.c ++++ b/test/test-map.c +@@ -188,7 +188,6 @@ PWTEST(map_insert_at_free) + int data[3] = {1, 2, 3}; + int new_data = 4; + int *ptr[3] = {&data[0], &data[1], &data[3]}; +- int *new_ptr = &new_data; + int idx[3]; + int rc; + +@@ -225,21 +224,7 @@ PWTEST(map_insert_at_free) + } + + rc = pw_map_insert_at(&map, item_idx, &new_data); +- pwtest_neg_errno_ok(rc); +- pwtest_ptr_eq(new_ptr, pw_map_lookup(&map, item_idx)); +- +- if (before_idx != SKIP && before_idx != item_idx) { +- rc = pw_map_insert_at(&map, before_idx, &ptr[before_idx]); +- pwtest_neg_errno_ok(rc); +- pwtest_ptr_eq(&ptr[before_idx], pw_map_lookup(&map, before_idx)); +- } +- +- if (after_idx != SKIP && after_idx != item_idx) { +- rc = pw_map_insert_at(&map, after_idx, &ptr[after_idx]); +- pwtest_neg_errno_ok(rc); +- pwtest_ptr_eq(&ptr[after_idx], pw_map_lookup(&map, after_idx)); +- } +- ++ pwtest_neg_errno(rc, -EINVAL); + pw_map_clear(&map); + + return PWTEST_PASS; +-- +GitLab + diff --git a/media-video/pipewire/files/pipewire-0.3.39-fix-build-some-arches.patch b/media-video/pipewire/files/pipewire-0.3.39-fix-build-some-arches.patch new file mode 100644 index 000000000000..fe5392e29a3a --- /dev/null +++ b/media-video/pipewire/files/pipewire-0.3.39-fix-build-some-arches.patch @@ -0,0 +1,35 @@ +https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/651f0decea5f83730c271e9bed03cdd0048fcd49.patch +https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/2cddd4a775c145570f4a8a30d28b57f551d43206.patch + +From: Wim Taymans +Date: Thu, 21 Oct 2021 11:09:48 +0200 +Subject: [PATCH] cpu: fix compilation on some architectures + +--- a/spa/plugins/support/cpu.c ++++ b/spa/plugins/support/cpu.c +@@ -270,7 +270,7 @@ impl_init(const struct spa_handle_factory *factory, + if ((str = spa_dict_lookup(info, SPA_KEY_CPU_VM_TYPE)) != NULL) + this->vm_type = atoi(str); + if ((str = spa_dict_lookup(info, SPA_KEY_CPU_ZERO_DENORMALS)) != NULL) +- impl_cpu_zero_denormals(this, spa_atob(str)); ++ spa_cpu_zero_denormals(&this->cpu, spa_atob(str)); + } + + spa_log_debug(this->log, "%p: count:%d align:%d flags:%08x", + +From: Wim Taymans +Date: Mon, 25 Oct 2021 16:32:16 +0200 +Subject: [PATCH] cpu: disable VFP asm when not available + +Fixes #1746 +--- a/spa/plugins/support/cpu-arm.c ++++ b/spa/plugins/support/cpu-arm.c +@@ -143,7 +143,7 @@ static int arm_zero_denormals(void *object, bool enable) + "msr fpcr, %0 \n" + "isb \n" + : "=r"(cw)::"memory"); +-#else ++#elif (defined(__VFP_FP__) && !defined(__SOFTFP__)) + uint32_t cw; + if (enable) + __asm__ __volatile__( diff --git a/media-video/pipewire/pipewire-0.3.39-r1.ebuild b/media-video/pipewire/pipewire-0.3.39-r1.ebuild deleted file mode 100644 index 3c425733a524..000000000000 --- a/media-video/pipewire/pipewire-0.3.39-r1.ebuild +++ /dev/null @@ -1,293 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="7" - -PYTHON_COMPAT=( python3_{8..10} ) - -inherit meson-multilib optfeature prefix python-any-r1 systemd udev - -if [[ ${PV} == 9999 ]]; then - EGIT_REPO_URI="https://gitlab.freedesktop.org/${PN}/${PN}.git" - inherit git-r3 -else - SRC_URI="https://gitlab.freedesktop.org/${PN}/${PN}/-/archive/${PV}/${P}.tar.gz" - KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86" -fi - -DESCRIPTION="Multimedia processing graphs" -HOMEPAGE="https://pipewire.org/" - -LICENSE="MIT LGPL-2.1+ GPL-2" -SLOT="0/0.3" -IUSE="bluetooth doc echo-cancel extra gstreamer jack-client jack-sdk pipewire-alsa systemd test v4l" - -# Once replacing system JACK libraries is possible, it's likely that -# jack-client IUSE will need blocking to avoid users accidentally -# configuring their systems to send PW sink output to the emulated -# JACK's sink - doing so is likely to yield no audio, cause a CPU -# cycles consuming loop (and may even cause GUI crashes)! - -REQUIRED_USE="jack-sdk? ( !jack-client )" - -RESTRICT="!test? ( test )" - -BDEPEND=" - >=dev-util/meson-0.59 - virtual/pkgconfig - ${PYTHON_DEPS} - $(python_gen_any_dep 'dev-python/docutils[${PYTHON_USEDEP}]') - doc? ( - app-doc/doxygen - media-gfx/graphviz - ) -" -RDEPEND=" - acct-group/audio - media-libs/alsa-lib - sys-apps/dbus[${MULTILIB_USEDEP}] - sys-libs/readline:= - sys-libs/ncurses:=[unicode(+)] - virtual/libintl[${MULTILIB_USEDEP}] - virtual/libudev[${MULTILIB_USEDEP}] - bluetooth? ( - media-libs/fdk-aac - media-libs/libldac - media-libs/libfreeaptx - media-libs/sbc - >=net-wireless/bluez-4.101:= - ) - echo-cancel? ( media-libs/webrtc-audio-processing:0 ) - extra? ( - >=media-libs/libsndfile-1.0.20 - ) - gstreamer? ( - >=dev-libs/glib-2.32.0:2 - >=media-libs/gstreamer-1.10.0:1.0 - media-libs/gst-plugins-base:1.0 - ) - jack-client? ( >=media-sound/jack2-1.9.10:2[dbus] ) - jack-sdk? ( - !media-sound/jack-audio-connection-kit - !media-sound/jack2 - ) - pipewire-alsa? ( - >=media-libs/alsa-lib-1.1.7[${MULTILIB_USEDEP}] - !media-plugins/alsa-plugins[${MULTILIB_USEDEP},pulseaudio] - ) - !pipewire-alsa? ( media-plugins/alsa-plugins[${MULTILIB_USEDEP},pulseaudio] ) - systemd? ( sys-apps/systemd ) - v4l? ( media-libs/libv4l ) -" - -DEPEND="${RDEPEND}" - -# TODO: Consider use cases where pipewire is not used for driving audio -# Doing so with WirePlumber currently involves editing Lua scripts -PDEPEND="media-video/wireplumber" - -# Present RDEPEND that are currently always disabled due to the PW -# code using them being required to be disabled by Gentoo guidelines -# (i.e. developer binaries not meant for users) and unready code -# media-video/ffmpeg:= -# media-libs/libsdl2 -# >=media-libs/vulkan-loader-1.1.69 -# -# Ditto for DEPEND -# >=dev-util/vulkan-headers-1.1.69 - -DOCS=( {README,INSTALL}.md NEWS ) - -PATCHES=( - "${FILESDIR}"/${PN}-0.3.25-enable-failed-mlock-warning.patch -) - -# limitsdfile related code taken from =sys-auth/realtime-base-0.1 -# with changes as necessary. -limitsdfile=40-${PN}.conf - -python_check_deps() { - has_version -b "dev-python/docutils[${PYTHON_USEDEP}]" -} - -src_prepare() { - default - - einfo "Generating ${limitsdfile}" - cat > ${limitsdfile} <<- EOF || die - # Start of ${limitsdfile} from ${P} - - @audio - memlock 256 - - # End of ${limitsdfile} from ${P} - EOF -} - -multilib_src_configure() { - local emesonargs=( - -Ddocdir="${EPREFIX}"/usr/share/doc/${PF} - $(meson_native_use_feature doc docs) - $(meson_native_enabled examples) # TODO: Figure out if this is still important now that media-session gone - $(meson_native_enabled man) - $(meson_feature test tests) - -Dinstalled_tests=disabled # Matches upstream; Gentoo never installs tests - $(meson_native_use_feature gstreamer) - $(meson_native_use_feature gstreamer gstreamer-device-provider) - $(meson_native_use_feature systemd) - -Dsystemd-system-service=disabled # Matches upstream - $(meson_native_use_feature systemd systemd-user-service) - $(meson_feature pipewire-alsa) # Allows integrating ALSA apps into PW graph - -Dspa-plugins=enabled - -Dalsa=enabled # Allows using kernel ALSA for sound I/O (NOTE: media-session is gone so IUSE=alsa/spa_alsa/alsa-backend might be possible) - -Daudiomixer=enabled # Matches upstream - -Daudioconvert=enabled # Matches upstream - $(meson_native_use_feature bluetooth bluez5) - $(meson_native_use_feature bluetooth bluez5-backend-hsp-native) - $(meson_native_use_feature bluetooth bluez5-backend-hfp-native) - $(meson_native_use_feature bluetooth bluez5-backend-ofono) - $(meson_native_use_feature bluetooth bluez5-backend-hsphfpd) - $(meson_native_use_feature bluetooth bluez5-codec-aac) - $(meson_native_use_feature bluetooth bluez5-codec-aptx) - $(meson_native_use_feature bluetooth bluez5-codec-ldac) - $(meson_native_use_feature echo-cancel echo-cancel-webrtc) #807889 - -Dcontrol=enabled # Matches upstream - -Daudiotestsrc=enabled # Matches upstream - -Dffmpeg=disabled # Disabled by upstream and no major developments to spa/plugins/ffmpeg/ since May 2020 - -Dpipewire-jack=enabled # Allows integrating JACK apps into PW graph - $(meson_native_use_feature jack-client jack) # Allows PW to act as a JACK client - $(meson_use jack-sdk jack-devel) - $(usex jack-sdk "-Dlibjack-path=${EPREFIX}/usr/$(get_libdir)" '') - -Dsupport=enabled # Miscellaneous/common plugins, such as null sink - -Devl=disabled # Matches upstream - -Dtest=disabled # fakesink and fakesource plugins - $(meson_native_use_feature v4l v4l2) - -Dlibcamera=disabled # libcamera is not in Portage tree - -Dvideoconvert=enabled # Matches upstream - -Dvideotestsrc=enabled # Matches upstream - -Dvolume=enabled # Matches upstream - -Dvulkan=disabled # Uses pre-compiled Vulkan compute shader to provide a CGI video source (dev thing; disabled by upstream) - $(meson_native_use_feature extra pw-cat) - -Dudev=enabled - -Dudevrulesdir="${EPREFIX}$(get_udevdir)/rules.d" - -Dsdl2=disabled # Controls SDL2 dependent code (currently only examples when -Dinstalled_tests=enabled which we never install) - $(meson_native_use_feature extra sndfile) # Enables libsndfile dependent code (currently only pw-cat) - -Dsession-managers="[]" # All available session managers are now their own projects, so there's nothing to build - ) - - meson_src_configure -} - -multilib_src_install() { - # Our custom DOCS do not exist in multilib source directory - DOCS= meson_src_install -} - -multilib_src_install_all() { - einstalldocs - - insinto /etc/security/limits.d - doins ${limitsdfile} - - if use pipewire-alsa; then - dodir /etc/alsa/conf.d - # These will break if someone has /etc that is a symbolic link to a subfolder! See #724222 - # And the current dosym8 -r implementation is likely affected by the same issue, too. - dosym ../../../usr/share/alsa/alsa.conf.d/50-pipewire.conf /etc/alsa/conf.d/50-pipewire.conf - dosym ../../../usr/share/alsa/alsa.conf.d/99-pipewire-default.conf /etc/alsa/conf.d/99-pipewire-default.conf - fi - - if ! use systemd; then - insinto /etc/xdg/autostart - newins "${FILESDIR}"/pipewire.desktop-r1 pipewire.desktop - - exeinto /usr/bin - newexe "${FILESDIR}"/gentoo-pipewire-launcher.in gentoo-pipewire-launcher - eprefixify "${ED}"/usr/bin/gentoo-pipewire-launcher - fi -} - -pkg_postinst() { - elog "It is recommended to raise RLIMIT_MEMLOCK to 256 for users" - elog "using PipeWire. Do it either manually or add yourself" - elog "to the 'audio' group:" - elog - elog " usermod -aG audio " - elog - - if ! use jack-sdk; then - elog "JACK emulation is incomplete and not all programs will work. PipeWire's" - elog "alternative libraries have been installed to a non-default location." - elog "To use them, put pw-jack before every JACK application." - elog "When using pw-jack, do not run jackd/jackdbus. However, a virtual/jack" - elog "provider is still needed to compile the JACK applications themselves." - elog - fi - - if use systemd; then - elog "To use PipeWire for audio, the user units must be manually enabled" - elog "by running this command as each user you use for desktop activities:" - elog - elog " systemctl --user enable --now pipewire.socket pipewire-pulse.socket" - elog - elog "When switching from PulseAudio, do not forget to disable PulseAudio likewise:" - elog - elog " systemctl --user disable --now pulseaudio.service pulseaudio.socket" - elog - elog "A reboot is recommended to avoid interferences from still running" - elog "PulseAudio daemon." - elog - elog "Both, new users and those upgrading, need to enable WirePlumber" - elog "for relevant users:" - elog - elog " systemctl --user enable --now wireplumber.service" - elog - else - ewarn "PipeWire daemon startup has been moved to a launcher script!" - ewarn "Make sure that ${EROOT}/etc/pipewire/pipewire.conf either does not exist or no" - ewarn "longer is set to start a session manager or PulseAudio compatibility daemon (all" - ewarn "lines similar to `{ path = \"/usr/bin/pipewire*` should be commented out)" - ewarn - ewarn "Those manually starting /usr/bin/pipewire via .xinitrc or similar _must_ from" - ewarn "now on start ${EROOT}/usr/bin/gentoo-pipewire-launcher instead! It is highly" - ewarn "advised that a D-Bus user session is set up before starting the script." - ewarn - if has_version 'media-sound/pulseaudio[daemon]' || has_version 'media-sound/pulseaudio-daemon'; then - elog "This ebuild auto-enables PulseAudio replacement. Because of that, users" - elog "are recommended to edit: ${EROOT}/etc/pulse/client.conf and disable" - elog "autospawning of the original daemon by setting:" - elog - elog " autospawn = no" - elog - elog "Please note that the semicolon (;) must _NOT_ be at the beginning of the line!" - elog - elog "Alternatively, if replacing PulseAudio daemon is not desired, edit" - elog "${EROOT}/usr/bin/gentoo-pipewire-launcher by commenting out the relevant" - elog "command:" - elog - elog "#${EROOT}/usr/bin/pipewire -c pipewire-pulse.conf &" - elog - fi - elog "NOTE:" - elog "Starting with PipeWire-0.3.30, this package is no longer installing its config" - elog "into ${EROOT}/etc/pipewire by default. In case you need to change" - elog "its config, please start by copying default config from ${EROOT}/usr/share/pipewire" - elog "and just override the sections you want to change." - fi - - elog "For latest tips and tricks, troubleshooting information and documentation" - elog "in general, please refer to https://wiki.gentoo.org/wiki/PipeWire" - elog - - optfeature_header "The following can be installed for optional runtime features:" - optfeature "restricted realtime capabilities via D-Bus" sys-auth/rtkit - - if has_version 'net-misc/ofono' ; then - ewarn "Native backend has become default. Please disable oFono via:" - if systemd_is_booted ; then - ewarn "systemctl disable --now ofono" - else - ewarn "rc-update delete ofono" - fi - ewarn - fi -} diff --git a/media-video/pipewire/pipewire-0.3.39-r4.ebuild b/media-video/pipewire/pipewire-0.3.39-r4.ebuild new file mode 100644 index 000000000000..96a68064f996 --- /dev/null +++ b/media-video/pipewire/pipewire-0.3.39-r4.ebuild @@ -0,0 +1,296 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="7" + +PYTHON_COMPAT=( python3_{8..10} ) + +inherit meson-multilib optfeature prefix python-any-r1 systemd udev + +if [[ ${PV} == 9999 ]]; then + EGIT_REPO_URI="https://gitlab.freedesktop.org/${PN}/${PN}.git" + inherit git-r3 +else + SRC_URI="https://gitlab.freedesktop.org/${PN}/${PN}/-/archive/${PV}/${P}.tar.gz" + KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86" +fi + +DESCRIPTION="Multimedia processing graphs" +HOMEPAGE="https://pipewire.org/" + +LICENSE="MIT LGPL-2.1+ GPL-2" +SLOT="0/0.3" +IUSE="bluetooth doc echo-cancel extra gstreamer jack-client jack-sdk pipewire-alsa systemd test v4l" + +# Once replacing system JACK libraries is possible, it's likely that +# jack-client IUSE will need blocking to avoid users accidentally +# configuring their systems to send PW sink output to the emulated +# JACK's sink - doing so is likely to yield no audio, cause a CPU +# cycles consuming loop (and may even cause GUI crashes)! + +REQUIRED_USE="jack-sdk? ( !jack-client )" + +RESTRICT="!test? ( test )" + +BDEPEND=" + >=dev-util/meson-0.59 + virtual/pkgconfig + ${PYTHON_DEPS} + $(python_gen_any_dep 'dev-python/docutils[${PYTHON_USEDEP}]') + doc? ( + app-doc/doxygen + media-gfx/graphviz + ) +" +RDEPEND=" + acct-group/audio + media-libs/alsa-lib + sys-apps/dbus[${MULTILIB_USEDEP}] + sys-libs/readline:= + sys-libs/ncurses:=[unicode(+)] + virtual/libintl[${MULTILIB_USEDEP}] + virtual/libudev[${MULTILIB_USEDEP}] + bluetooth? ( + media-libs/fdk-aac + media-libs/libldac + media-libs/libfreeaptx + media-libs/sbc + >=net-wireless/bluez-4.101:= + ) + echo-cancel? ( media-libs/webrtc-audio-processing:0 ) + extra? ( + >=media-libs/libsndfile-1.0.20 + ) + gstreamer? ( + >=dev-libs/glib-2.32.0:2 + >=media-libs/gstreamer-1.10.0:1.0 + media-libs/gst-plugins-base:1.0 + ) + jack-client? ( >=media-sound/jack2-1.9.10:2[dbus] ) + jack-sdk? ( + !media-sound/jack-audio-connection-kit + !media-sound/jack2 + ) + pipewire-alsa? ( + >=media-libs/alsa-lib-1.1.7[${MULTILIB_USEDEP}] + !media-plugins/alsa-plugins[${MULTILIB_USEDEP},pulseaudio] + ) + !pipewire-alsa? ( media-plugins/alsa-plugins[${MULTILIB_USEDEP},pulseaudio] ) + systemd? ( sys-apps/systemd ) + v4l? ( media-libs/libv4l ) +" + +DEPEND="${RDEPEND}" + +# TODO: Consider use cases where pipewire is not used for driving audio +# Doing so with WirePlumber currently involves editing Lua scripts +PDEPEND="media-video/wireplumber" + +# Present RDEPEND that are currently always disabled due to the PW +# code using them being required to be disabled by Gentoo guidelines +# (i.e. developer binaries not meant for users) and unready code +# media-video/ffmpeg:= +# media-libs/libsdl2 +# >=media-libs/vulkan-loader-1.1.69 +# +# Ditto for DEPEND +# >=dev-util/vulkan-headers-1.1.69 + +DOCS=( {README,INSTALL}.md NEWS ) + +PATCHES=( + "${FILESDIR}"/${PN}-0.3.25-enable-failed-mlock-warning.patch + # Upstream + "${FILESDIR}"/${P}-fix-build-some-arches.patch + "${FILESDIR}"/${P}-endian-test-fix.patch +) + +# limitsdfile related code taken from =sys-auth/realtime-base-0.1 +# with changes as necessary. +limitsdfile=40-${PN}.conf + +python_check_deps() { + has_version -b "dev-python/docutils[${PYTHON_USEDEP}]" +} + +src_prepare() { + default + + einfo "Generating ${limitsdfile}" + cat > ${limitsdfile} <<- EOF || die + # Start of ${limitsdfile} from ${P} + + @audio - memlock 256 + + # End of ${limitsdfile} from ${P} + EOF +} + +multilib_src_configure() { + local emesonargs=( + -Ddocdir="${EPREFIX}"/usr/share/doc/${PF} + $(meson_native_use_feature doc docs) + $(meson_native_enabled examples) # TODO: Figure out if this is still important now that media-session gone + $(meson_native_enabled man) + $(meson_feature test tests) + -Dinstalled_tests=disabled # Matches upstream; Gentoo never installs tests + $(meson_native_use_feature gstreamer) + $(meson_native_use_feature gstreamer gstreamer-device-provider) + $(meson_native_use_feature systemd) + -Dsystemd-system-service=disabled # Matches upstream + $(meson_native_use_feature systemd systemd-user-service) + $(meson_feature pipewire-alsa) # Allows integrating ALSA apps into PW graph + -Dspa-plugins=enabled + -Dalsa=enabled # Allows using kernel ALSA for sound I/O (NOTE: media-session is gone so IUSE=alsa/spa_alsa/alsa-backend might be possible) + -Daudiomixer=enabled # Matches upstream + -Daudioconvert=enabled # Matches upstream + $(meson_native_use_feature bluetooth bluez5) + $(meson_native_use_feature bluetooth bluez5-backend-hsp-native) + $(meson_native_use_feature bluetooth bluez5-backend-hfp-native) + $(meson_native_use_feature bluetooth bluez5-backend-ofono) + $(meson_native_use_feature bluetooth bluez5-backend-hsphfpd) + $(meson_native_use_feature bluetooth bluez5-codec-aac) + $(meson_native_use_feature bluetooth bluez5-codec-aptx) + $(meson_native_use_feature bluetooth bluez5-codec-ldac) + $(meson_native_use_feature echo-cancel echo-cancel-webrtc) #807889 + -Dcontrol=enabled # Matches upstream + -Daudiotestsrc=enabled # Matches upstream + -Dffmpeg=disabled # Disabled by upstream and no major developments to spa/plugins/ffmpeg/ since May 2020 + -Dpipewire-jack=enabled # Allows integrating JACK apps into PW graph + $(meson_native_use_feature jack-client jack) # Allows PW to act as a JACK client + $(meson_use jack-sdk jack-devel) + $(usex jack-sdk "-Dlibjack-path=${EPREFIX}/usr/$(get_libdir)" '') + -Dsupport=enabled # Miscellaneous/common plugins, such as null sink + -Devl=disabled # Matches upstream + -Dtest=disabled # fakesink and fakesource plugins + $(meson_native_use_feature v4l v4l2) + -Dlibcamera=disabled # libcamera is not in Portage tree + -Dvideoconvert=enabled # Matches upstream + -Dvideotestsrc=enabled # Matches upstream + -Dvolume=enabled # Matches upstream + -Dvulkan=disabled # Uses pre-compiled Vulkan compute shader to provide a CGI video source (dev thing; disabled by upstream) + $(meson_native_use_feature extra pw-cat) + -Dudev=enabled + -Dudevrulesdir="${EPREFIX}$(get_udevdir)/rules.d" + -Dsdl2=disabled # Controls SDL2 dependent code (currently only examples when -Dinstalled_tests=enabled which we never install) + $(meson_native_use_feature extra sndfile) # Enables libsndfile dependent code (currently only pw-cat) + -Dsession-managers="[]" # All available session managers are now their own projects, so there's nothing to build + ) + + meson_src_configure +} + +multilib_src_install() { + # Our custom DOCS do not exist in multilib source directory + DOCS= meson_src_install +} + +multilib_src_install_all() { + einstalldocs + + insinto /etc/security/limits.d + doins ${limitsdfile} + + if use pipewire-alsa; then + dodir /etc/alsa/conf.d + # These will break if someone has /etc that is a symbolic link to a subfolder! See #724222 + # And the current dosym8 -r implementation is likely affected by the same issue, too. + dosym ../../../usr/share/alsa/alsa.conf.d/50-pipewire.conf /etc/alsa/conf.d/50-pipewire.conf + dosym ../../../usr/share/alsa/alsa.conf.d/99-pipewire-default.conf /etc/alsa/conf.d/99-pipewire-default.conf + fi + + if ! use systemd; then + insinto /etc/xdg/autostart + newins "${FILESDIR}"/pipewire.desktop-r1 pipewire.desktop + + exeinto /usr/bin + newexe "${FILESDIR}"/gentoo-pipewire-launcher.in gentoo-pipewire-launcher + eprefixify "${ED}"/usr/bin/gentoo-pipewire-launcher + fi +} + +pkg_postinst() { + elog "It is recommended to raise RLIMIT_MEMLOCK to 256 for users" + elog "using PipeWire. Do it either manually or add yourself" + elog "to the 'audio' group:" + elog + elog " usermod -aG audio " + elog + + if ! use jack-sdk; then + elog "JACK emulation is incomplete and not all programs will work. PipeWire's" + elog "alternative libraries have been installed to a non-default location." + elog "To use them, put pw-jack before every JACK application." + elog "When using pw-jack, do not run jackd/jackdbus. However, a virtual/jack" + elog "provider is still needed to compile the JACK applications themselves." + elog + fi + + if use systemd; then + elog "To use PipeWire for audio, the user units must be manually enabled" + elog "by running this command as each user you use for desktop activities:" + elog + elog " systemctl --user enable --now pipewire.socket pipewire-pulse.socket" + elog + elog "When switching from PulseAudio, do not forget to disable PulseAudio likewise:" + elog + elog " systemctl --user disable --now pulseaudio.service pulseaudio.socket" + elog + elog "A reboot is recommended to avoid interferences from still running" + elog "PulseAudio daemon." + elog + elog "Both, new users and those upgrading, need to enable WirePlumber" + elog "for relevant users:" + elog + elog " systemctl --user enable --now wireplumber.service" + elog + else + ewarn "PipeWire daemon startup has been moved to a launcher script!" + ewarn "Make sure that ${EROOT}/etc/pipewire/pipewire.conf either does not exist or no" + ewarn "longer is set to start a session manager or PulseAudio compatibility daemon (all" + ewarn "lines similar to '{ path = /usr/bin/pipewire*' should be commented out)" + ewarn + ewarn "Those manually starting /usr/bin/pipewire via .xinitrc or similar _must_ from" + ewarn "now on start ${EROOT}/usr/bin/gentoo-pipewire-launcher instead! It is highly" + ewarn "advised that a D-Bus user session is set up before starting the script." + ewarn + if has_version 'media-sound/pulseaudio[daemon]' || has_version 'media-sound/pulseaudio-daemon'; then + elog "This ebuild auto-enables PulseAudio replacement. Because of that, users" + elog "are recommended to edit: ${EROOT}/etc/pulse/client.conf and disable" + elog "autospawning of the original daemon by setting:" + elog + elog " autospawn = no" + elog + elog "Please note that the semicolon (;) must _NOT_ be at the beginning of the line!" + elog + elog "Alternatively, if replacing PulseAudio daemon is not desired, edit" + elog "${EROOT}/usr/bin/gentoo-pipewire-launcher by commenting out the relevant" + elog "command:" + elog + elog "#${EROOT}/usr/bin/pipewire -c pipewire-pulse.conf &" + elog + fi + elog "NOTE:" + elog "Starting with PipeWire-0.3.30, this package is no longer installing its config" + elog "into ${EROOT}/etc/pipewire by default. In case you need to change" + elog "its config, please start by copying default config from ${EROOT}/usr/share/pipewire" + elog "and just override the sections you want to change." + fi + + elog "For latest tips and tricks, troubleshooting information and documentation" + elog "in general, please refer to https://wiki.gentoo.org/wiki/PipeWire" + elog + + optfeature_header "The following can be installed for optional runtime features:" + optfeature "restricted realtime capabilities via D-Bus" sys-auth/rtkit + + if has_version 'net-misc/ofono' ; then + ewarn "Native backend has become default. Please disable oFono via:" + if systemd_is_booted ; then + ewarn "systemctl disable --now ofono" + else + ewarn "rc-update delete ofono" + fi + ewarn + fi +} diff --git a/media-video/pipewire/pipewire-9999.ebuild b/media-video/pipewire/pipewire-9999.ebuild index 7dabfed1cb8b..2e84b38f88d3 100644 --- a/media-video/pipewire/pipewire-9999.ebuild +++ b/media-video/pipewire/pipewire-9999.ebuild @@ -245,7 +245,7 @@ pkg_postinst() { ewarn "PipeWire daemon startup has been moved to a launcher script!" ewarn "Make sure that ${EROOT}/etc/pipewire/pipewire.conf either does not exist or no" ewarn "longer is set to start a session manager or PulseAudio compatibility daemon (all" - ewarn "lines similar to `{ path = \"/usr/bin/pipewire*` should be commented out)" + ewarn "lines similar to '{ path = /usr/bin/pipewire*' should be commented out)" ewarn ewarn "Those manually starting /usr/bin/pipewire via .xinitrc or similar _must_ from" ewarn "now on start ${EROOT}/usr/bin/gentoo-pipewire-launcher instead! It is highly" diff --git a/media-video/vdr/Manifest b/media-video/vdr/Manifest index 74c3fd6ac095..db1ff8951f64 100644 --- a/media-video/vdr/Manifest +++ b/media-video/vdr/Manifest @@ -23,4 +23,4 @@ DIST vdr-menuorg-2.3.x.diff 8852 BLAKE2B 19b98d51a69f52ecda5500f51ef1741a8397953 EBUILD vdr-2.2.0-r6.ebuild 8168 BLAKE2B 4965d23936592348a37cdba6c6b89e0f651780b32436e113d94a79f1ba1b5d581a259d47160e499e28b5380a932e778b4d9a4c4a0cf675525031d19dd24e6110 SHA512 f47051d63715a36276ced33653928adc5d3378d3b3a28da3f6e68896c9d796b4887eaa78d76e9c6e8b42f65af1ebbd3019b56d8a1e912dddfe0c3e31d7212502 EBUILD vdr-2.2.0-r7.ebuild 8210 BLAKE2B 004d8448d54dfe58ca1e83d6e1cfd9b84a22e8b0bb837900eba90666d55d4aae91e2e2d55095ab68665af104f52010b10268f5f730f451cedb54570d0271f8e9 SHA512 ca05beee04a50a8af95e4a990050c3430ac5a5829d4162e9c35f29bfd14deff2aa70e6ce6fcee10ceb506c48eca6a5bc15c418894e6d23ad5fb9d58da594e638 EBUILD vdr-2.4.7-r1.ebuild 6169 BLAKE2B 006d0156bebd83ad5200e0f6587e3252d85fc0818203915c5af3d27e0f3e0b5f99cf272f11f855a344535be6dc4cc8a121a424369fda6bf5cb941a295e48642d SHA512 702c24d7dfda3d4664432ae93b5bfcc063093fb9e5fca2b2f8fd26f1daf8283a9a1dde0028d6a23ba97acf4a5cb3576c4234d7461e9e17c379bdcc8bdb5f4192 -MISC metadata.xml 1893 BLAKE2B 6be07ef9608162ddbaf4da4fd6ca7f7e919fd9b54e4817575ff9fdbb56c084554c4126f26e4459bc8b51dd02b35030c0cd1b2afd7ba38e2bf46a0e065994ac0b SHA512 631a40da1627a71e3290ee527b3aeeb2babdc6abc650b21a7038a1ad9bcdd8d053c62c769fd1d04332d4564d41ff8988ea7bd79a21bef5583a26ed40cea59260 +MISC metadata.xml 1780 BLAKE2B 179a1948c96a7b237b500a08861799c25ae084d5b9cd6702921acd04cfbf0111bbb11170e4d14bf31ad7355ef0899f285857350131badc411548a3611593ecb6 SHA512 6c8c2073c55f327d4dfe52cb22ae1622d936c43503caf2964594656e1281b07110187c139216a73ed10abd625b43509ecdfe41edb7439950653e038991abfb31 diff --git a/media-video/vdr/metadata.xml b/media-video/vdr/metadata.xml index 07fd8b79f976..9cfb241df919 100644 --- a/media-video/vdr/metadata.xml +++ b/media-video/vdr/metadata.xml @@ -1,10 +1,6 @@ - - hd_brummy@gentoo.org - Joerg Bornkessel - martin.dummer@gmx.net Martin Dummer diff --git a/media-video/vdr2jpeg/Manifest b/media-video/vdr2jpeg/Manifest index f759f0745ee5..405b5fba09ca 100644 --- a/media-video/vdr2jpeg/Manifest +++ b/media-video/vdr2jpeg/Manifest @@ -1,3 +1,3 @@ DIST vdr2jpeg-0.2.0.tgz 20027 BLAKE2B c79a84c6e7010eae762fb31bdd9771dcdae1e78761afd07c536a55e834b0271fb55dcd4bb49f87a2d28695496d37f94c90350dd70b50229bb6248026422faee0 SHA512 65f3e0acb2ecd3a5341e527c45fafd454266841f1369c89b10750fce86f2326fba76329abd17a05d67aea3b43a7b1299a49cfa9eee9a784bb99c940253ca5952 EBUILD vdr2jpeg-0.2.0-r5.ebuild 953 BLAKE2B 5f62adf98f9c41c3b2e523573f1715e3a602d51e851a0374dc8d17782d6596c9b05de9afb237df44f36c07562744289f8521d8d4ecc6d70dd09e7a8019f70b9e SHA512 8dda6d44454acc0195818a608545966eed2e682f46007125f6455bf63ab6786de5a35bdb01cee7948e0f5ce9430f2e4773b68835c7f41d7981888af7cecc5f6a -MISC metadata.xml 373 BLAKE2B 80feee9883732f1f03711dea28d557d786bde8204c6e9d712f17ea4c97c10bebe8ca9e0eff42fcb913995dabe50818e89eb77394155b62f361fc0b5178003f49 SHA512 31ae6d5d3c39a54b3ff54f94ff72b52a85c86427d69639d8bfff743cfc5f0bd99625082c3a22873c936fc2c27324621169f27f0f3d4553e7c0b3b640a202bae2 +MISC metadata.xml 260 BLAKE2B ee10cc021112a6e67381cc76d642cabfe9876b9e2da97243070551179a9f8eb2bcb67d8bf96822d40239c350808a8a129882914f1ce9b5f924c99d16ba1300a6 SHA512 0bc4c52638ab97c96d6e1ea6b8199201567dbdac880349e8ab501de49bbfba142e4f2f60baac9c0bc48df6f5d170d81d641277cc01762d720b720764bb162c1a diff --git a/media-video/vdr2jpeg/metadata.xml b/media-video/vdr2jpeg/metadata.xml index a675e3e90c11..a2dfee954457 100644 --- a/media-video/vdr2jpeg/metadata.xml +++ b/media-video/vdr2jpeg/metadata.xml @@ -1,10 +1,6 @@ - - Joerg Bornkessel - hd_brummy@gentoo.org - media-video@gentoo.org Gentoo Video project -- cgit v1.2.3