summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'media-video')
-rw-r--r--media-video/aegisub/aegisub-9999.ebuild2
-rw-r--r--media-video/amdgpu-pro-amf/Manifest10
-rw-r--r--media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.24.1376756-r1.ebuild58
-rw-r--r--media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.24.1384496-r1.ebuild58
-rw-r--r--media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.24.1452059.ebuild (renamed from media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.24.1420323.ebuild)2
-rw-r--r--media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.26.1511376.ebuild (renamed from media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.26.1438747.ebuild)2
-rw-r--r--media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.29.1580631.ebuild (renamed from media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.26.1462318.ebuild)4
-rw-r--r--media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.30.1620044.ebuild (renamed from media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.24.1395274.ebuild)7
-rw-r--r--media-video/bino/Manifest1
-rw-r--r--media-video/bino/bino-1.6.7.ebuild66
-rw-r--r--media-video/bino/bino-1.6.8.ebuild5
-rw-r--r--media-video/bino/files/bino-1.6.7-gcc11.patch30
-rw-r--r--media-video/blind/blind-1.1-r1.ebuild (renamed from media-video/blind/blind-1.1.ebuild)20
-rw-r--r--media-video/bluray_info/Manifest2
-rw-r--r--media-video/bluray_info/bluray_info-1.10.ebuild24
-rw-r--r--media-video/bluray_info/bluray_info-1.3.ebuild16
-rw-r--r--media-video/bluray_info/metadata.xml16
-rw-r--r--media-video/cheese/Manifest2
-rw-r--r--media-video/cheese/cheese-44.1.ebuild (renamed from media-video/cheese/cheese-43.0.ebuild)2
-rw-r--r--media-video/devedeng/devedeng-4.17.0-r2.ebuild (renamed from media-video/devedeng/devedeng-4.17.0-r1.ebuild)9
-rw-r--r--media-video/devedeng/devedeng-4.17.0.ebuild47
-rw-r--r--media-video/devedeng/files/devedeng-4.17.0-locale_install.patch15
-rw-r--r--media-video/devedeng/metadata.xml2
-rw-r--r--media-video/dirac/dirac-1.0.2-r2.ebuild2
-rw-r--r--media-video/droidcam/Manifest4
-rw-r--r--media-video/droidcam/droidcam-1.8.2_p20220831.ebuild158
-rw-r--r--media-video/droidcam/droidcam-2.0.0-r1.ebuild (renamed from media-video/droidcam/droidcam-1.9.0_rc1.ebuild)8
-rw-r--r--media-video/droidcam/droidcam-2.0.0-r3.ebuild (renamed from media-video/droidcam/droidcam-1.8.2-r1.ebuild)57
-rw-r--r--media-video/droidcam/files/droidcam-1.8.2-makefile-fixes.patch61
-rw-r--r--media-video/droidcam/files/droidcam-1.8.2_p20220831-makefile-fixes.patch68
-rw-r--r--media-video/droidcam/files/droidcam-2.0.0-libusbmuxd-20.patch13
-rw-r--r--media-video/dvdauthor/dvdauthor-0.7.2-r2.ebuild6
-rw-r--r--media-video/dvdauthor/files/dvdauthor-0.7.2-freetype-pkgconfig.patch (renamed from media-video/dvdauthor/files/dvdauthor-freetype_pkgconfig.patch)2
-rw-r--r--media-video/dvdauthor/metadata.xml1
-rw-r--r--media-video/dvdbackup/dvdbackup-0.4.2-r2.ebuild2
-rw-r--r--media-video/ffdiaporama/Manifest9
-rw-r--r--media-video/ffdiaporama/ffdiaporama-2.2_pre20140701-r2.ebuild77
-rw-r--r--media-video/ffdiaporama/ffdiaporama-2.2_pre20221007.ebuild4
-rw-r--r--media-video/ffdiaporama/ffdiaporama-2.2_pre20230525.ebuild (renamed from media-video/ffdiaporama/ffdiaporama-2.2_pre20220403.ebuild)8
-rw-r--r--media-video/ffdiaporama/metadata.xml2
-rw-r--r--media-video/ffmpeg-chromium/Manifest1
-rw-r--r--media-video/ffmpeg-chromium/ffmpeg-chromium-102.ebuild8
-rw-r--r--media-video/ffmpeg-chromium/ffmpeg-chromium-106.ebuild6
-rw-r--r--media-video/ffmpeg-chromium/ffmpeg-chromium-114.ebuild234
-rw-r--r--media-video/ffmpeg-chromium/files/ffmpeg-chromium-binutils-2.41.patch77
-rw-r--r--media-video/ffmpeg-chromium/metadata.xml1
-rw-r--r--media-video/ffmpeg/Manifest12
-rw-r--r--media-video/ffmpeg/ffmpeg-4.2.7.ebuild556
-rw-r--r--media-video/ffmpeg/ffmpeg-4.4.4-r3.ebuild (renamed from media-video/ffmpeg/ffmpeg-4.4.3.ebuild)27
-rw-r--r--media-video/ffmpeg/ffmpeg-4.4.4-r4.ebuild (renamed from media-video/ffmpeg/ffmpeg-4.2.8.ebuild)145
-rw-r--r--media-video/ffmpeg/ffmpeg-5.1.3-r3.ebuild (renamed from media-video/ffmpeg/ffmpeg-5.1.2-r2.ebuild)27
-rw-r--r--media-video/ffmpeg/ffmpeg-5.1.3-r4.ebuild604
-rw-r--r--media-video/ffmpeg/ffmpeg-6.0-r2.ebuild (renamed from media-video/ffmpeg/ffmpeg-6.0-r1.ebuild)22
-rw-r--r--media-video/ffmpeg/ffmpeg-6.0-r5.ebuild604
-rw-r--r--media-video/ffmpeg/ffmpeg-6.0-r6.ebuild605
-rw-r--r--media-video/ffmpeg/ffmpeg-9999.ebuild29
-rw-r--r--media-video/ffmpeg/files/ffmpeg-4.2.7-libsdl2-new-version-scheme.patch26
-rw-r--r--media-video/ffmpeg/files/ffmpeg-4.4.4-fix-build-svt-av1-1.5.0.patch44
-rw-r--r--media-video/ffmpeg/files/ffmpeg-4.4.4-wint-conversion-vulkan.patch30
-rw-r--r--media-video/ffmpeg/files/ffmpeg-5.1.2-vulkan.patch33
-rw-r--r--media-video/ffmpeg/files/ffmpeg-5.1.3-binutils-2.41.patch76
-rw-r--r--media-video/ffmpeg/files/ffmpeg-5.1.3-fix-build-svt-av1-1.5.0.patch81
-rw-r--r--media-video/ffmpeg/files/ffmpeg-5.1.3-svt-av1.patch67
-rw-r--r--media-video/ffmpeg/files/ffmpeg-6.0-binutils-2.41.patch76
-rw-r--r--media-video/ffmpeg/files/ffmpeg-6.0-libplacebo-remove-deprecated-field.patch103
-rw-r--r--media-video/ffmpeg/files/ffmpeg-6.0-wint-conversion-vulkan.patch43
-rw-r--r--media-video/ffmpeg/metadata.xml1
-rw-r--r--media-video/ffmpegthumbnailer/ffmpegthumbnailer-2.2.2.ebuild49
-rw-r--r--media-video/gaupol/gaupol-1.12.ebuild2
-rw-r--r--media-video/gnome-video-effects/Manifest1
-rw-r--r--media-video/gnome-video-effects/gnome-video-effects-0.5.0-r1.ebuild (renamed from media-video/gnome-video-effects/gnome-video-effects-0.5.0.ebuild)3
-rw-r--r--media-video/gnome-video-effects/gnome-video-effects-0.6.0.ebuild26
-rw-r--r--media-video/gpac/Manifest1
-rw-r--r--media-video/gpac/files/gpac-2.2.0-ffmpeg6-deux.patch46
-rw-r--r--media-video/gpac/gpac-2.2.0.ebuild3
-rw-r--r--media-video/gpac/gpac-2.2.1-r1.ebuild146
-rw-r--r--media-video/gpac/gpac-9999.ebuild2
-rw-r--r--media-video/handbrake/Manifest1
-rw-r--r--media-video/handbrake/files/handbrake-9999-dont-search-for-python.patch26
-rw-r--r--media-video/handbrake/handbrake-1.4.2-r2.ebuild2
-rw-r--r--media-video/handbrake/handbrake-1.5.1-r1.ebuild (renamed from media-video/handbrake/handbrake-1.5.1.ebuild)8
-rw-r--r--media-video/handbrake/handbrake-1.6.1.ebuild163
-rw-r--r--media-video/handbrake/handbrake-9999.ebuild63
-rw-r--r--media-video/hevc-hm/hevc-hm-17.0.ebuild2
-rw-r--r--media-video/jellyfin-media-player/Manifest1
-rw-r--r--media-video/jellyfin-media-player/jellyfin-media-player-1.9.1.ebuild69
-rw-r--r--media-video/jellyfin-web-bin/Manifest1
-rw-r--r--media-video/jellyfin-web-bin/jellyfin-web-bin-10.8.10.ebuild28
-rw-r--r--media-video/jubler/Manifest1
-rw-r--r--media-video/jubler/files/7.0.3-helpme.patch13
-rw-r--r--media-video/jubler/jubler-7.0.3.ebuild151
-rw-r--r--media-video/jubler/metadata.xml4
-rw-r--r--media-video/libva-utils/Manifest4
-rw-r--r--media-video/libva-utils/libva-utils-2.18.2.ebuild (renamed from media-video/libva-utils/libva-utils-2.17.1.ebuild)2
-rw-r--r--media-video/libva-utils/libva-utils-2.19.0.ebuild (renamed from media-video/libva-utils/libva-utils-2.18.1.ebuild)0
-rw-r--r--media-video/libva-utils/libva-utils-9999.ebuild2
-rw-r--r--media-video/lxdvdrip/files/lxdvdrip-1.77-clang-16-build.patch38
-rw-r--r--media-video/lxdvdrip/lxdvdrip-1.77-r2.ebuild51
-rw-r--r--media-video/makemkv/Manifest4
-rw-r--r--media-video/makemkv/files/makemkv-ffmpeg-6.patch13
-rw-r--r--media-video/makemkv/makemkv-1.17.4-r1.ebuild128
-rw-r--r--media-video/makemkv/makemkv-1.17.4.ebuild (renamed from media-video/makemkv/makemkv-1.17.3.ebuild)0
-rw-r--r--media-video/mediainfo/Manifest2
-rw-r--r--media-video/mediainfo/mediainfo-22.09.ebuild7
-rw-r--r--media-video/mediainfo/mediainfo-23.03.ebuild92
-rw-r--r--media-video/mediainfo/mediainfo-23.04.ebuild92
-rw-r--r--media-video/mjpegtools/files/mjpegtools-2.2.1-c++17-no-auto_ptr-fix.patch20
-rw-r--r--media-video/mjpegtools/files/mjpegtools-2.2.1-c++17-register-fix.patch17
-rw-r--r--media-video/mjpegtools/mjpegtools-2.2.1-r1.ebuild (renamed from media-video/mjpegtools/mjpegtools-2.2.1.ebuild)9
-rw-r--r--media-video/mkvtoolnix/Manifest2
-rw-r--r--media-video/mkvtoolnix/mkvtoolnix-75.0.0.ebuild135
-rw-r--r--media-video/mkvtoolnix/mkvtoolnix-77.0.ebuild135
-rw-r--r--media-video/mkvtoolnix/mkvtoolnix-9999.ebuild7
-rw-r--r--media-video/motion/Manifest1
-rw-r--r--media-video/motion/files/motion-4.5.1-fix-gettext-0.22-format-specifier.patch34
-rw-r--r--media-video/motion/files/motion.initd-r514
-rw-r--r--media-video/motion/files/motion.service-r41
-rw-r--r--media-video/motion/motion-4.3.2-r1.ebuild89
-rw-r--r--media-video/motion/motion-4.5.1-r2.ebuild (renamed from media-video/motion/motion-4.5.1.ebuild)8
-rw-r--r--media-video/movit/movit-1.6.3-r1.ebuild4
-rw-r--r--media-video/mpgtx/mpgtx-1.3.1-r2.ebuild2
-rw-r--r--media-video/mplayer/Manifest2
-rw-r--r--media-video/mplayer/mplayer-1.5_p20230215.ebuild2
-rw-r--r--media-video/mplayer/mplayer-1.5_p20230618.ebuild (renamed from media-video/mplayer/mplayer-1.5.ebuild)37
-rw-r--r--media-video/mplayer/mplayer-9999.ebuild5
-rw-r--r--media-video/mpv/Manifest2
-rw-r--r--media-video/mpv/files/mpv-0.35.1-pipewire-0.3.75.patch86
-rw-r--r--media-video/mpv/files/mpv-0.36.0-sub-match-audio.patch35
-rw-r--r--media-video/mpv/files/mpv-0.36.0-tests-odr.patch30
-rw-r--r--media-video/mpv/metadata.xml1
-rw-r--r--media-video/mpv/mpv-0.35.1-r2.ebuild (renamed from media-video/mpv/mpv-0.35.1-r1.ebuild)4
-rw-r--r--media-video/mpv/mpv-0.36.0-r1.ebuild (renamed from media-video/mpv/mpv-0.35.0-r1.ebuild)57
-rw-r--r--media-video/mpv/mpv-9999.ebuild47
-rw-r--r--media-video/noad/noad-0.8.8.ebuild2
-rw-r--r--media-video/obs-studio/Manifest12
-rw-r--r--media-video/obs-studio/metadata.xml1
-rw-r--r--media-video/obs-studio/obs-studio-28.1.2-r1.ebuild266
-rw-r--r--media-video/obs-studio/obs-studio-29.1.3-r1.ebuild (renamed from media-video/obs-studio/obs-studio-29.0.2.ebuild)41
-rw-r--r--media-video/obs-studio/obs-studio-9999.ebuild67
-rw-r--r--media-video/openshot/Manifest1
-rw-r--r--media-video/openshot/openshot-2.6.1.ebuild14
-rw-r--r--media-video/openshot/openshot-3.1.1.ebuild55
-rw-r--r--media-video/parole/Manifest1
-rw-r--r--media-video/parole/parole-4.16.0.ebuild64
-rw-r--r--media-video/parole/parole-4.18.0.ebuild2
-rw-r--r--media-video/pipewire/Manifest8
-rw-r--r--media-video/pipewire/files/0.3.65/0001-modules-also-install-module-combine-stream.patch21
-rw-r--r--media-video/pipewire/files/0.3.65/0002-spa-bluez5-fix-dependency-on-glib-in-bluez5_deps.patch28
-rw-r--r--media-video/pipewire/files/0.3.75/0001-module-rt-error-out-on-load-no-bus.patch83
-rw-r--r--media-video/pipewire/files/0.3.75/0002-thread-loop-only-signal-when-option-set.patch68
-rw-r--r--media-video/pipewire/files/0.3.75/0003-missing-include-version.h.patch21
-rw-r--r--media-video/pipewire/files/0.3.77/0001-gst-prevent-crash-stopping-device-provider.patch34
-rw-r--r--media-video/pipewire/files/0.3.77/0002-pulse-prevent-duplicates.patch28
-rw-r--r--media-video/pipewire/files/0.3.79/0001-meson-better-check-dlopen-dir.patch33
-rw-r--r--media-video/pipewire/files/0.3.79/0002-alsa-non-portable-isinf-use.patch30
-rw-r--r--media-video/pipewire/files/0.3.80/0001-aes-support-both-webrtc-versions.patch233
-rw-r--r--media-video/pipewire/files/gentoo-pipewire-launcher.152
-rw-r--r--media-video/pipewire/files/gentoo-pipewire-launcher.in29
-rw-r--r--media-video/pipewire/files/gentoo-pipewire-launcher.in-r277
-rw-r--r--media-video/pipewire/files/gentoo-pipewire-launcher.in-r384
-rw-r--r--media-video/pipewire/files/pipewire.desktop-r112
-rw-r--r--media-video/pipewire/files/pipewire.desktop-r2 (renamed from media-video/pipewire/files/pipewire.desktop)2
-rw-r--r--media-video/pipewire/metadata.xml2
-rw-r--r--media-video/pipewire/pipewire-0.3.75-r3.ebuild (renamed from media-video/pipewire/pipewire-0.3.67.ebuild)58
-rw-r--r--media-video/pipewire/pipewire-0.3.77-r2.ebuild (renamed from media-video/pipewire/pipewire-0.3.66-r1.ebuild)71
-rw-r--r--media-video/pipewire/pipewire-0.3.78-r1.ebuild (renamed from media-video/pipewire/pipewire-0.3.65-r3.ebuild)303
-rw-r--r--media-video/pipewire/pipewire-0.3.79-r1.ebuild473
-rw-r--r--media-video/pipewire/pipewire-0.3.79-r2.ebuild475
-rw-r--r--media-video/pipewire/pipewire-0.3.79-r3.ebuild475
-rw-r--r--media-video/pipewire/pipewire-0.3.80.ebuild475
-rw-r--r--media-video/pipewire/pipewire-9999.ebuild58
-rw-r--r--media-video/pitivi/Manifest2
-rw-r--r--media-video/pitivi/pitivi-2023.03-r1.ebuild (renamed from media-video/pitivi/pitivi-2022.06.ebuild)2
-rw-r--r--media-video/qmplay2/Manifest4
-rw-r--r--media-video/qmplay2/files/qmplay2-22.10.23-fix-includes.patch44
-rw-r--r--media-video/qmplay2/metadata.xml1
-rw-r--r--media-video/qmplay2/qmplay2-23.08.22.ebuild (renamed from media-video/qmplay2/qmplay2-22.10.23.ebuild)62
-rw-r--r--media-video/qmplay2/qmplay2-23.09.05.ebuild (renamed from media-video/qmplay2/qmplay2-23.02.05.ebuild)55
-rw-r--r--media-video/qmplay2/qmplay2-9999.ebuild57
-rw-r--r--media-video/rav1e/Manifest129
-rw-r--r--media-video/rav1e/rav1e-0.6.5.ebuild309
-rw-r--r--media-video/rav1e/rav1e-0.6.6.ebuild309
-rw-r--r--media-video/rav1e/rav1e-9999.ebuild216
-rw-r--r--media-video/rovclock/rovclock-0.6e-r2.ebuild (renamed from media-video/rovclock/rovclock-0.6e-r1.ebuild)14
-rw-r--r--media-video/simplescreenrecorder/simplescreenrecorder-0.4.4-r3.ebuild (renamed from media-video/simplescreenrecorder/simplescreenrecorder-0.4.4-r1.ebuild)6
-rw-r--r--media-video/simplescreenrecorder/simplescreenrecorder-0.4.4.ebuild99
-rw-r--r--media-video/simplescreenrecorder/simplescreenrecorder-9999.ebuild6
-rw-r--r--media-video/subliminal/subliminal-2.1.0-r2.ebuild2
-rw-r--r--media-video/subsync/subsync-0.0.1.ebuild5
-rw-r--r--media-video/subtitlecomposer/files/subtitlecomposer-0.7.1-changingaudio-crashfix.patch67
-rw-r--r--media-video/subtitlecomposer/files/subtitlecomposer-0.7.1-ffmpeg6-1.patch25
-rw-r--r--media-video/subtitlecomposer/files/subtitlecomposer-0.7.1-ffmpeg6-2.patch42
-rw-r--r--media-video/subtitlecomposer/files/subtitlecomposer-0.7.1-ffmpeg6-3.patch32
-rw-r--r--media-video/subtitlecomposer/files/subtitlecomposer-0.7.1-nullptr-deref.patch25
-rw-r--r--media-video/subtitlecomposer/files/subtitlecomposer-0.7.1-subtitle-crashfix.patch25
-rw-r--r--media-video/subtitlecomposer/files/subtitlecomposer-0.7.1-vobsub-crashfix.patch45
-rw-r--r--media-video/subtitlecomposer/subtitlecomposer-0.7.1-r2.ebuild (renamed from media-video/subtitlecomposer/subtitlecomposer-0.7.1-r1.ebuild)8
-rw-r--r--media-video/subtitlecomposer/subtitlecomposer-0.7.1-r3.ebuild (renamed from media-video/subtitlecomposer/subtitlecomposer-0.7.1.ebuild)22
-rw-r--r--media-video/totem/totem-43.0.ebuild2
-rw-r--r--media-video/transcode/transcode-1.1.7-r6.ebuild5
-rw-r--r--media-video/v4l2loopback/Manifest1
-rw-r--r--media-video/v4l2loopback/v4l2loopback-0.12.7.ebuild59
-rw-r--r--media-video/v4l2loopback/v4l2loopback-9999.ebuild19
-rw-r--r--media-video/vcsi/Manifest1
-rw-r--r--media-video/vcsi/metadata.xml3
-rw-r--r--media-video/vcsi/vcsi-7.0.13-r2.ebuild (renamed from media-video/vcsi/vcsi-7.0.13-r1.ebuild)3
-rw-r--r--media-video/vcsi/vcsi-7.0.16.ebuild31
-rw-r--r--media-video/vdr/vdr-2.6.4.ebuild4
-rw-r--r--media-video/vidcutter/Manifest2
-rw-r--r--media-video/vidcutter/metadata.xml4
-rw-r--r--media-video/vidcutter/vidcutter-6.0.5.1-r2.ebuild53
-rw-r--r--media-video/vidcutter/vidcutter-6.0.5.1_p20230201.ebuild2
-rw-r--r--media-video/vlc/files/vlc-3.0.18-drop-minizip-dep.patch38
-rw-r--r--media-video/vlc/files/vlc-3.0.18-flac-crc.patch90
-rw-r--r--media-video/vlc/files/vlc-9999-configure-lua-version.patch (renamed from media-video/vlc/files/vlc-configure_lua_version.patch)17
-rw-r--r--media-video/vlc/files/vlc-9999-fix-libtremor-libs.patch11
-rw-r--r--media-video/vlc/vlc-3.0.18-r3.ebuild (renamed from media-video/vlc/vlc-3.0.18.ebuild)12
-rw-r--r--media-video/vlc/vlc-3.0.9999.ebuild11
-rw-r--r--media-video/vlc/vlc-9999.ebuild25
-rw-r--r--media-video/webcamoid/Manifest2
-rw-r--r--media-video/webcamoid/files/webcamoid-8.7.1-gcc11.patch12
-rw-r--r--media-video/webcamoid/metadata.xml1
-rw-r--r--media-video/webcamoid/webcamoid-8.8.0.ebuild86
-rw-r--r--media-video/webcamoid/webcamoid-9.0.0-r1.ebuild (renamed from media-video/webcamoid/webcamoid-9.0.0.ebuild)18
-rw-r--r--media-video/webcamoid/webcamoid-9.1.1.ebuild84
-rw-r--r--media-video/webcamoid/webcamoid-9999.ebuild34
-rw-r--r--media-video/wireplumber/Manifest1
-rw-r--r--media-video/wireplumber/files/wireplumber-0.4.14-backport-pr505.patch31
-rw-r--r--media-video/wireplumber/wireplumber-0.4.13.ebuild132
-rw-r--r--media-video/wireplumber/wireplumber-0.4.14.ebuild4
-rw-r--r--media-video/wireplumber/wireplumber-9999.ebuild1
-rw-r--r--media-video/xine-ui/xine-ui-0.99.13.ebuild4
-rw-r--r--media-video/yle-dl/Manifest2
-rw-r--r--media-video/yle-dl/yle-dl-20230611.ebuild (renamed from media-video/yle-dl/yle-dl-20221231.ebuild)2
234 files changed, 9405 insertions, 3227 deletions
diff --git a/media-video/aegisub/aegisub-9999.ebuild b/media-video/aegisub/aegisub-9999.ebuild
index 211e90d17d21..ef73d1cff4ee 100644
--- a/media-video/aegisub/aegisub-9999.ebuild
+++ b/media-video/aegisub/aegisub-9999.ebuild
@@ -41,7 +41,7 @@ RDEPEND="${LUA_DEPS}
fftw? ( >=sci-libs/fftw-3.3:= )
openal? ( media-libs/openal )
portaudio? ( =media-libs/portaudio-19* )
- pulseaudio? ( media-sound/pulseaudio )
+ pulseaudio? ( media-libs/libpulse )
spell? ( app-text/hunspell:= )
uchardet? ( app-i18n/uchardet )
"
diff --git a/media-video/amdgpu-pro-amf/Manifest b/media-video/amdgpu-pro-amf/Manifest
index 3100766abb92..1d5e82418fcc 100644
--- a/media-video/amdgpu-pro-amf/Manifest
+++ b/media-video/amdgpu-pro-amf/Manifest
@@ -1,6 +1,4 @@
-DIST amdgpu-pro-amf-1.4.24.1376756.deb 1302168 BLAKE2B 706528317c317e0319e80decc8a9a59a0c55fed8c4c43c701ba93a2a503fbf5f2ee9fb44cfeb5bd582b013ebb8961514cb5b9faead8f24fdfe2b205f7d2dc656 SHA512 77740014e6bc2c91e822261e4fa247ac0e49747d6ff8af0c3b3046ec993c7c99621b55639ef18582021389a329e52ccc59edb85eb29d9e6a81da6986a487ec3e
-DIST amdgpu-pro-amf-1.4.24.1384496.deb 1304672 BLAKE2B a21e7d2cf9dc4fe139f87d5c61b4ac715e677fb23aa2cc3eb4a62e20776431d26e234d092d9b28ecad22de2f5acda1f21df394f3a51152c9fd36cdfddab78af2 SHA512 4620dda918196e67f99c8a1df8e3e487769bd3ad94881a3769e46a85a12648f50ba8520476c9eec9e982261354ff92f56803fd8731fa7a7e458670011426ce31
-DIST amdgpu-pro-amf-1.4.24.1395274.deb 1304984 BLAKE2B e1b51c6e9dfafcb677314ac881983372cc1d1f09b0112bbe842da06672da8f48e5bd5db358c8067fa23e8a5b4d110b2ea6d998c06357ed32e29accac8ba86c38 SHA512 e809ccf0b93fa8dc44320166ff549e10e1edc6556bb4bf48112de0f20c7e5dda761029aacfa0fd00def30cc647131eb55cf94f01414222c7891d2dad279d33f1
-DIST amdgpu-pro-amf-1.4.24.1420323.deb 1373976 BLAKE2B 64dbcbc079abf523f78663b01066bb74e12f60d56b4a2e7c6765e7b1755a84b1cf5cbe7fcdcc315b42fbb11cfafbf97b0705bb489bead8f84d07f4e81cd84bb6 SHA512 fbe3b24b65bf993dea5bc7d1f6abcb2d0eb938206183962dce1d4634538826e1f4d80f97ee09829af2e745e5f1f97c3bc1c2c8d7cfe4757009157e6996c4b195
-DIST amdgpu-pro-amf-1.4.26.1438747.deb 1501804 BLAKE2B 7be66469a0051fc4ba932d53a232db0487f94ca072580b0d2cc8b51aff2fd922430c632983cac5b02ccd5a9635c92c20b1fbb1d7b51b0425f107b51c4799e0b9 SHA512 f085b07437783295d60a5c1eb1ec46eeb2b6a912f0b80cfd7ab9f9b0c38d360dececcf18d763658af094697447d6486b37a2608c0913e2fd47d68797c085f634
-DIST amdgpu-pro-amf-1.4.26.1462318.deb 1502840 BLAKE2B 69dd0d0a0442a229081d14c733c5905efc91d88b47d18a5d65f5d131d8e0bfe1ff5dc4415d4932c9b227e26ee1f5f452bd3de97ed2be7773d856b5008e3061cf SHA512 8a789d07fdd3e027b343d2b6681b8eebd9974d3b7be59032b1dc1a4d07db4f8937f103feac404a50439cbf54a95f74ced59e9924e79a69006939085493946949
+DIST amdgpu-pro-amf-1.4.24.1452059.deb 1307216 BLAKE2B 2ecae593da961e2ff86e807c017a85fda5459458434c491e538f3845a12b0354e65da568550bbdebb47685aad6b7d22607b5f2a281b49718154ead6f92d30058 SHA512 9e3611ad3cad50da4aeeec2b14ad944e2ff7d83b9b104f65acf5e5915f74644fb25f74bfa51a5802dac828fa6c84e01351fbe58f14e1dde1145ba908d6a0445d
+DIST amdgpu-pro-amf-1.4.26.1511376.deb 1502528 BLAKE2B c2199f6b026552f486f2c7f75af9e3d37193870850de75d87b7099257281f98f030f4f7816aaf8086e0011a0f4db16210a084d4e7fcb8c3519e02be1ecb82de9 SHA512 3a3da593dfb765b7302e627a0df4c6e7bc35cfc76ce60ee9e5df74de73bcaf09b7dc687d30cd8ca54b25b90c140830bdb5352c816b7c6569f8200ca0f9acfc48
+DIST amdgpu-pro-amf-1.4.29.1580631.deb 1653852 BLAKE2B 5af5250c07e1b99ae8c1ee28507927e28ee7811929c789b5939a06f631b81155d6795e1392830945bf377f5298a5153e9af3541b2d94533661db394a059fb715 SHA512 07568c5e2f92f10274f7ac25a9d68539b8ce2e5d24c87e9b6a3aec2b8d5a32980c8fd802394dfa6eb421d3321dd60e07929e7f481578d23afcf623c5c9aa2fcc
+DIST amdgpu-pro-amf-1.4.30.1620044.deb 1671392 BLAKE2B 89611307dff4f77099ed52e8f7b523e842691b2fe970da7669a961048d5addd969068366a23d7c2df5710b67aeaf7a9cc3f4b902a708a4c686f00c32aa8cdb0c SHA512 4db5a814129a4d6e75466fd4e618eda155e031b70f184d5bf4dae78a13a61559fa26a1dcbc3d259064063467441822a34873af1142ab0366e38b61521c912bf4
diff --git a/media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.24.1376756-r1.ebuild b/media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.24.1376756-r1.ebuild
deleted file mode 100644
index 28e503e1d763..000000000000
--- a/media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.24.1376756-r1.ebuild
+++ /dev/null
@@ -1,58 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit unpacker
-
-MY_PV_HIGH=$(ver_cut 1)
-MY_PV_MIDDLE=$(ver_cut 2)
-MY_PV_LOW=$(ver_cut 3)
-MY_PV_REV=$(ver_cut 4)
-
-MY_PV="${MY_PV_HIGH}.${MY_PV_MIDDLE}.${MY_PV_LOW}"
-MY_PV_FULL="${MY_PV}-${MY_PV_REV}"
-
-MY_PN="amf-amdgpu-pro"
-
-PRO_VULKAN_PKG_VER="21.50.1"
-
-MY_LINK="https://repo.radeon.com/amdgpu/${PRO_VULKAN_PKG_VER}/ubuntu/pool/proprietary/a/${MY_PN}"
-
-DESCRIPTION="AMD's closed source Advanced Media Framework (AMF) driver"
-HOMEPAGE="https://www.amd.com/en/support"
-SRC_URI="${MY_LINK}/${MY_PN}_${MY_PV_FULL}_amd64.deb -> ${P}.deb"
-
-S="${WORKDIR}"
-
-RESTRICT="bindist mirror"
-
-LICENSE="AMD-GPU-PRO-EULA"
-SLOT="0"
-KEYWORDS="-* ~amd64"
-
-RDEPEND="
- media-libs/amdgpu-pro-vulkan
- media-libs/libglvnd
- x11-libs/libdrm
- x11-libs/libX11
-"
-
-QA_PREBUILT="
- usr/lib64/libamfrt64.so*
-"
-
-src_unpack() {
- mkdir "${S}/${PN}-amd64" || die
- cd "${S}/${PN}-amd64" || die
- unpack_deb "${DISTDIR}/${P}.deb"
-}
-
-src_install() {
- insinto "/usr/$(get_libdir)"
-
- # AMF
- doins "${S}/${PN}-amd64/opt/amdgpu-pro/lib/x86_64-linux-gnu/libamfrt64.so.${MY_PV}"
- dosym "libamfrt64.so.${MY_PV}" "/usr/$(get_libdir)/libamfrt64.so"
- dosym "libamfrt64.so.${MY_PV}" "/usr/$(get_libdir)/libamfrt64.so.1"
-}
diff --git a/media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.24.1384496-r1.ebuild b/media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.24.1384496-r1.ebuild
deleted file mode 100644
index d90e8996c76e..000000000000
--- a/media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.24.1384496-r1.ebuild
+++ /dev/null
@@ -1,58 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit unpacker
-
-MY_PV_HIGH=$(ver_cut 1)
-MY_PV_MIDDLE=$(ver_cut 2)
-MY_PV_LOW=$(ver_cut 3)
-MY_PV_REV=$(ver_cut 4)
-
-MY_PV="${MY_PV_HIGH}.${MY_PV_MIDDLE}.${MY_PV_LOW}"
-MY_PV_FULL="${MY_PV}-${MY_PV_REV}"
-
-MY_PN="amf-amdgpu-pro"
-
-PRO_VULKAN_PKG_VER="21.50.2"
-
-MY_LINK="https://repo.radeon.com/amdgpu/${PRO_VULKAN_PKG_VER}/ubuntu/pool/proprietary/a/${MY_PN}"
-
-DESCRIPTION="AMD's closed source Advanced Media Framework (AMF) driver"
-HOMEPAGE="https://www.amd.com/en/support"
-SRC_URI="${MY_LINK}/${MY_PN}_${MY_PV_FULL}_amd64.deb -> ${P}.deb"
-
-S="${WORKDIR}"
-
-RESTRICT="bindist mirror"
-
-LICENSE="AMD-GPU-PRO-EULA"
-SLOT="0"
-KEYWORDS="-* ~amd64"
-
-RDEPEND="
- media-libs/amdgpu-pro-vulkan
- media-libs/libglvnd
- x11-libs/libdrm
- x11-libs/libX11
-"
-
-QA_PREBUILT="
- usr/lib64/libamfrt64.so*
-"
-
-src_unpack() {
- mkdir "${S}/${PN}-amd64" || die
- cd "${S}/${PN}-amd64" || die
- unpack_deb "${DISTDIR}/${P}.deb"
-}
-
-src_install() {
- insinto "/usr/$(get_libdir)"
-
- # AMF
- doins "${S}/${PN}-amd64/opt/amdgpu-pro/lib/x86_64-linux-gnu/libamfrt64.so.${MY_PV}"
- dosym "libamfrt64.so.${MY_PV}" "/usr/$(get_libdir)/libamfrt64.so"
- dosym "libamfrt64.so.${MY_PV}" "/usr/$(get_libdir)/libamfrt64.so.1"
-}
diff --git a/media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.24.1420323.ebuild b/media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.24.1452059.ebuild
index 179799c5a6c5..2ae162b65fcb 100644
--- a/media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.24.1420323.ebuild
+++ b/media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.24.1452059.ebuild
@@ -15,7 +15,7 @@ MY_PV_FULL="${MY_PV}-${MY_PV_REV}"
MY_PN="amf-amdgpu-pro"
-PRO_VULKAN_PKG_VER="22.10.3"
+PRO_VULKAN_PKG_VER="22.10.4"
DESCRIPTION="AMD's closed source Advanced Media Framework (AMF) driver"
HOMEPAGE="https://www.amd.com/en/support"
diff --git a/media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.26.1438747.ebuild b/media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.26.1511376.ebuild
index 0e02c47bc041..2478a76df5ff 100644
--- a/media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.26.1438747.ebuild
+++ b/media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.26.1511376.ebuild
@@ -15,7 +15,7 @@ MY_PV_FULL="${MY_PV}-${MY_PV_REV}"
MY_PN="amf-amdgpu-pro"
-PRO_VULKAN_PKG_VER="22.20"
+PRO_VULKAN_PKG_VER="22.20.5"
UBUNTU_VER="22.04"
DESCRIPTION="AMD's closed source Advanced Media Framework (AMF) driver"
diff --git a/media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.26.1462318.ebuild b/media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.29.1580631.ebuild
index 9fd0217f66f6..aeace360442d 100644
--- a/media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.26.1462318.ebuild
+++ b/media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.29.1580631.ebuild
@@ -15,12 +15,12 @@ MY_PV_FULL="${MY_PV}-${MY_PV_REV}"
MY_PN="amf-amdgpu-pro"
-PRO_VULKAN_PKG_VER="22.20.3"
+INTERNAL_VER="5.4.6"
UBUNTU_VER="22.04"
DESCRIPTION="AMD's closed source Advanced Media Framework (AMF) driver"
HOMEPAGE="https://www.amd.com/en/support"
-SRC_URI="https://repo.radeon.com/amdgpu/${PRO_VULKAN_PKG_VER}/ubuntu/pool/proprietary/a/${MY_PN}/${MY_PN}_${MY_PV_FULL}~${UBUNTU_VER}_amd64.deb -> ${P}.deb"
+SRC_URI="https://repo.radeon.com/amdgpu/${INTERNAL_VER}/ubuntu/pool/proprietary/a/${MY_PN}/${MY_PN}_${MY_PV_FULL}.${UBUNTU_VER}_amd64.deb -> ${P}.deb"
S="${WORKDIR}"
diff --git a/media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.24.1395274.ebuild b/media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.30.1620044.ebuild
index 9e20d80730c7..cb437bc8cbaa 100644
--- a/media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.24.1395274.ebuild
+++ b/media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.30.1620044.ebuild
@@ -15,13 +15,12 @@ MY_PV_FULL="${MY_PV}-${MY_PV_REV}"
MY_PN="amf-amdgpu-pro"
-PRO_VULKAN_PKG_VER="22.10"
-
-MY_LINK="https://repo.radeon.com/amdgpu/${PRO_VULKAN_PKG_VER}/ubuntu/pool/proprietary/a/${MY_PN}"
+INTERNAL_VER="5.5.3"
+UBUNTU_VER="22.04"
DESCRIPTION="AMD's closed source Advanced Media Framework (AMF) driver"
HOMEPAGE="https://www.amd.com/en/support"
-SRC_URI="${MY_LINK}/${MY_PN}_${MY_PV_FULL}_amd64.deb -> ${P}.deb"
+SRC_URI="https://repo.radeon.com/amdgpu/${INTERNAL_VER}/ubuntu/pool/proprietary/a/${MY_PN}/${MY_PN}_${MY_PV_FULL}.${UBUNTU_VER}_amd64.deb -> ${P}.deb"
S="${WORKDIR}"
diff --git a/media-video/bino/Manifest b/media-video/bino/Manifest
index cb1e5a64e75a..0f61dee9e6c9 100644
--- a/media-video/bino/Manifest
+++ b/media-video/bino/Manifest
@@ -1,3 +1,2 @@
-DIST bino-1.6.7.tar.xz 825068 BLAKE2B d9019a793838f33ea1315849aa994b20a1c6127995315dc03972fe6c64a742c73434c07ba06402a1e2bd5357781d18aaf3d19ab2d61788745b2aa99ad3f4c6f4 SHA512 ae8f72b200100664b9fd55963371ce64a2f39e240676494d69b422d662f2295560ba458eb04707b82f88d3c6b3fab98a1ecb40d74799300f96b8eb8be680c9b8
DIST bino-1.6.8.tar.xz 836712 BLAKE2B 801d6f1ffbf1a7fbaabcdbb2c4bd649662d3b14b08189431a418702177f5de28a8961763c83962fd72cbf6f762fad34ed0b616efc68a723f65b6c72823618897 SHA512 d8cf5be356add4ed3fb36673038b5ffd92d0dc840798cc616fa4b11fec221c7f114347dfc7cdb7a3a24c5599b56301cddc99f84d3862d8e874612960281319cc
DIST bino-2.0.tar.gz 193004 BLAKE2B cb9f40e6eb3f925ecf83e766d613ce15c2fccf8b52a16c3b8000b8854a1defc5dab271c984db3a3780e5126b0e83e60c675956ee6e287c117874c0ef6b504fbf SHA512 5620c506f4de1a9aa7f21f0a23481c5174e7a6a47e6401a84d048dc87843249ef325e33ebc49790d405eb4697c3c571550b0e202f24e758c446ce8e4014f98b3
diff --git a/media-video/bino/bino-1.6.7.ebuild b/media-video/bino/bino-1.6.7.ebuild
deleted file mode 100644
index 8c5b35e1714a..000000000000
--- a/media-video/bino/bino-1.6.7.ebuild
+++ /dev/null
@@ -1,66 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit flag-o-matic xdg
-
-DESCRIPTION="Stereoscopic and multi-display media player"
-HOMEPAGE="https://bino3d.org/"
-SRC_URI="https://bino3d.org/releases/${P}.tar.xz"
-
-LICENSE="GPL-3"
-SLOT="0"
-KEYWORDS="amd64 x86"
-IUSE="debug doc lirc video_cards_nvidia"
-
-RDEPEND="
- dev-qt/qtcore:5
- dev-qt/qtgui:5
- dev-qt/qtopengl:5
- dev-qt/qtwidgets:5
- >=media-libs/glew-1.6.0:0=
- >=media-libs/libass-0.9.9
- >=media-libs/openal-1.15.1
- virtual/libintl
- >=media-video/ffmpeg-0.7:0=
- lirc? ( app-misc/lirc )
- video_cards_nvidia? ( x11-drivers/nvidia-drivers[tools,static-libs] )"
-DEPEND="${RDEPEND}"
-BDEPEND="sys-devel/gettext
- virtual/pkgconfig"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-1.6.7-gcc11.patch
-)
-
-src_configure() {
- if use video_cards_nvidia; then
- append-cppflags "-I${ESYSROOT}/usr/include/NVCtrl"
- append-ldflags "-L${ESYSROOT}/usr/$(get_libdir)/opengl/nvidia/lib -L${ESYSROOT}/usr/$(get_libdir)"
- append-libs "Xext"
- fi
-
- if use lirc; then
- append-cppflags "-I${ESYSROOT}/usr/include/lirc"
- append-libs "lirc_client"
- fi
-
- # Fix a compilation error because of a multiple definitions error in glew
- append-ldflags "-zmuldefs"
-
- econf \
- $(use_with video_cards_nvidia xnvctrl) \
- $(use_with lirc) \
- $(use_enable debug) \
- --without-equalizer \
- --with-qt-version=5
-}
-
-src_install() {
- default
-
- if ! use doc; then
- rm -rf "${ED}"/usr/share/doc/${PF}/html || die
- fi
-}
diff --git a/media-video/bino/bino-1.6.8.ebuild b/media-video/bino/bino-1.6.8.ebuild
index d7bdc7c2def6..841c5e2b3aa8 100644
--- a/media-video/bino/bino-1.6.8.ebuild
+++ b/media-video/bino/bino-1.6.8.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -14,6 +14,7 @@ SLOT="0"
KEYWORDS="amd64 x86"
IUSE="debug doc lirc video_cards_nvidia"
+# <ffmpeg-5 for bug #907682 and bug #834400. >=bino-2 uses Qt 6 and drops ffmpeg.
RDEPEND="
dev-qt/qtcore:5
dev-qt/qtgui:5
@@ -23,7 +24,7 @@ RDEPEND="
>=media-libs/libass-0.9.9
>=media-libs/openal-1.15.1
virtual/libintl
- >=media-video/ffmpeg-0.7:0=
+ <media-video/ffmpeg-5:=
lirc? ( app-misc/lirc )
video_cards_nvidia? ( x11-drivers/nvidia-drivers[tools,static-libs] )"
DEPEND="${RDEPEND}"
diff --git a/media-video/bino/files/bino-1.6.7-gcc11.patch b/media-video/bino/files/bino-1.6.7-gcc11.patch
deleted file mode 100644
index 8d4bf4070f36..000000000000
--- a/media-video/bino/files/bino-1.6.7-gcc11.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-https://git.marlam.de/gitweb/?p=bino.git;a=commitdiff;h=7997ad11eefe241bb85a27c50d009c99851d7b0b
-https://bugs.gentoo.org/790128
-
-From 7997ad11eefe241bb85a27c50d009c99851d7b0b Mon Sep 17 00:00:00 2001
-From: Martin Lambers <marlam@marlam.de>
-Date: Sat, 27 Feb 2021 21:28:50 +0100
-Subject: [PATCH] fix compilation with C++ 17 compilers such as gcc 11
-
----
- src/base/dbg.cpp | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/src/base/dbg.cpp b/src/base/dbg.cpp
-index 6c6234f..044be67 100644
---- a/src/base/dbg.cpp
-+++ b/src/base/dbg.cpp
-@@ -74,8 +74,10 @@ namespace dbg
- (void)sigaction(SIGFPE, &signal_handler, NULL);
- (void)sigaction(SIGSEGV, &signal_handler, NULL);
- #endif
-+#if __cplusplus < 201700
- std::set_unexpected(exception_crash);
- std::set_terminate(exception_crash);
-+#endif
- std::set_new_handler(oom_abort);
- }
-
---
-2.20.1
-
diff --git a/media-video/blind/blind-1.1.ebuild b/media-video/blind/blind-1.1-r1.ebuild
index 43fc42d195d8..e018b94b7386 100644
--- a/media-video/blind/blind-1.1.ebuild
+++ b/media-video/blind/blind-1.1-r1.ebuild
@@ -1,10 +1,11 @@
-# Copyright 1999-2018 Gentoo Foundation
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=6
+EAPI=8
+
inherit toolchain-funcs
-DESCRIPTION="a collection of command line video editing utilities"
+DESCRIPTION="Collection of command line video editing utilities"
HOMEPAGE="https://tools.suckless.org/blind/"
SRC_URI="https://dl.suckless.org/tools/${P}.tar.gz"
@@ -12,14 +13,7 @@ LICENSE="ISC"
SLOT="0"
KEYWORDS="~amd64"
-RDEPEND="
-"
-DEPEND="
- ${RDEPEND}
-"
-PATCHES=(
- "${FILESDIR}"/${PN}-1.1-ldflags.patch
-)
+PATCHES=( "${FILESDIR}"/${PN}-1.1-ldflags.patch )
src_prepare() {
default
@@ -36,7 +30,3 @@ src_prepare() {
src_compile() {
emake CC="$(tc-getCC)"
}
-
-src_install() {
- emake DESTDIR="${D}" install MANPREFIX=/usr/share/man
-}
diff --git a/media-video/bluray_info/Manifest b/media-video/bluray_info/Manifest
index 7aa6b9e6701c..41c5db0eef85 100644
--- a/media-video/bluray_info/Manifest
+++ b/media-video/bluray_info/Manifest
@@ -1 +1 @@
-DIST bluray_info-1.3.tar.gz 188192 BLAKE2B f88020721f7295b9bdd46687cd436c6a5bf38efc1fafc1bdfddda41a7c1a14fbee02a93b69b38a1703f089c9ad4a3576c9f750283a94ec2de09841bc1ae679cb SHA512 cf14733bd3b3fe9ebdace130c880fd695f0a60533a4b397f339789b2b11a15515f8ad24e87ccb428e73b74826ddaa5c2df0c1c9bf7907bdc5b1824f73d22c1ed
+DIST bluray_info-1.10.tar.gz 279446 BLAKE2B 651d729380649c1d6846d1897d5f3403c575e481f6206f3303607f80e334adda7b436c485de03a90f309676612dbb45839aced24be4ac8e1306b6466e58869e9 SHA512 fae7866155862fac1766b4dfdd587e0f40e562ca39d6bd19999732fb86203105ed7d350433e815636e2d8823de18e5805e425bd05c39070c5dc1792c8db060b6
diff --git a/media-video/bluray_info/bluray_info-1.10.ebuild b/media-video/bluray_info/bluray_info-1.10.ebuild
new file mode 100644
index 000000000000..e19744928418
--- /dev/null
+++ b/media-video/bluray_info/bluray_info-1.10.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Blu-ray utilities: bluray_info, bluray_copy, bluray_player"
+HOMEPAGE="https://github.com/beandog/bluray_info https://dvds.beandog.org"
+SRC_URI="https://bluray.beandog.org/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="+mpv"
+
+DEPEND="
+ media-libs/libaacs
+ >=media-libs/libbluray-1.2.0[aacs]
+ mpv? ( media-video/mpv[libmpv,bluray] )
+"
+RDEPEND="${DEPEND}"
+
+src_configure() {
+ econf $(use_with mpv libmpv)
+}
diff --git a/media-video/bluray_info/bluray_info-1.3.ebuild b/media-video/bluray_info/bluray_info-1.3.ebuild
deleted file mode 100644
index 7d6aef069eb6..000000000000
--- a/media-video/bluray_info/bluray_info-1.3.ebuild
+++ /dev/null
@@ -1,16 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-DESCRIPTION="Blu-ray disc tools: bluray_info, bluray_copy"
-HOMEPAGE="https://github.com/beandog/bluray_info"
-SRC_URI="mirror://sourceforge/bluray-info/${P}.tar.gz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE=""
-
-DEPEND=">=media-libs/libbluray-1.0.0"
-RDEPEND="${DEPEND}"
diff --git a/media-video/bluray_info/metadata.xml b/media-video/bluray_info/metadata.xml
index b0fc9141559e..47e7f040a95f 100644
--- a/media-video/bluray_info/metadata.xml
+++ b/media-video/bluray_info/metadata.xml
@@ -1,10 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
-<maintainer type="project">
-<email>media-video@gentoo.org</email>
-</maintainer>
-<upstream>
-<remote-id type="sourceforge">bluray-info</remote-id>
-</upstream>
+ <maintainer type="project">
+ <email>media-video@gentoo.org</email>
+ </maintainer>
+ <use>
+ <flag name="mpv">Build bluray_player, powered by <pkg>media-video/mpv</pkg></flag>
+ </use>
+ <upstream>
+ <remote-id type="sourceforge">bluray-info</remote-id>
+ <remote-id type="github">beandog/bluray_info</remote-id>
+ </upstream>
</pkgmetadata>
diff --git a/media-video/cheese/Manifest b/media-video/cheese/Manifest
index 7f3cd950c1d0..b042b9698685 100644
--- a/media-video/cheese/Manifest
+++ b/media-video/cheese/Manifest
@@ -1 +1 @@
-DIST cheese-43.0.tar.xz 1095328 BLAKE2B 728cf913336f09ae073508d6bf18f7bb0cf4bb0e16ad5d6acd5fb77b75577303b1a2d8820b280a31c15ebdcbf231205881440105c390a0f16681dc5274a74446 SHA512 07ed087490b4024ecbc097c1a62e24fdc0c5c8acac23ba3ed246104655a8b1786faee5caa5e59cfa7b725527b5aedc587b0f99a2b43100497f866966818e345e
+DIST cheese-44.1.tar.xz 1095916 BLAKE2B 7558b43a28bc5323a6ccd6e50c86611ee572d32cf190dde401c5d347b70b269ce05875e8a0d2d59e174a66d2cf5330b2530890969445eab00d7da0b4f02ce3e7 SHA512 106f02c0bd6e21039e3d1cdbcb8111c8d76638666b3a3ee65bc81295deaf50acf49023f3f7bf2ca244a9b7f4ac95d04fbc5864c1ded8698c52665c23c3640dc1
diff --git a/media-video/cheese/cheese-43.0.ebuild b/media-video/cheese/cheese-44.1.ebuild
index afde9bd88795..b6998ae2db97 100644
--- a/media-video/cheese/cheese-43.0.ebuild
+++ b/media-video/cheese/cheese-44.1.ebuild
@@ -10,7 +10,7 @@ HOMEPAGE="https://wiki.gnome.org/Apps/Cheese"
LICENSE="GPL-2+"
SLOT="0/8" # subslot = libcheese soname version
-KEYWORDS="amd64 ~arm arm64 ~ia64 ~ppc ~ppc64 ~riscv ~sparc x86"
+KEYWORDS="amd64 ~arm arm64 ~ia64 ~loong ~ppc ~ppc64 ~riscv ~sparc x86"
IUSE="gtk-doc +introspection test"
RESTRICT="!test? ( test )"
diff --git a/media-video/devedeng/devedeng-4.17.0-r1.ebuild b/media-video/devedeng/devedeng-4.17.0-r2.ebuild
index 36b0979743be..451ce0cb30ea 100644
--- a/media-video/devedeng/devedeng-4.17.0-r1.ebuild
+++ b/media-video/devedeng/devedeng-4.17.0-r2.ebuild
@@ -3,8 +3,8 @@
EAPI=8
-DISTUTILS_USE_SETUPTOOLS=no
-PYTHON_COMPAT=( python3_{9..11} )
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9..12} )
inherit distutils-r1 xdg
@@ -32,7 +32,10 @@ DEPEND="${PYTHON_DEPS}"
# src/unitests only works against system installed devedeng
RESTRICT="test"
-PATCHES=( "${FILESDIR}"/${PN}-4.14.0-no_compress_man.patch )
+PATCHES=(
+ "${FILESDIR}"/${PN}-4.14.0-no_compress_man.patch
+ "${FILESDIR}"/${P}-locale_install.patch
+)
src_prepare() {
default
diff --git a/media-video/devedeng/devedeng-4.17.0.ebuild b/media-video/devedeng/devedeng-4.17.0.ebuild
deleted file mode 100644
index 765cb590e3ee..000000000000
--- a/media-video/devedeng/devedeng-4.17.0.ebuild
+++ /dev/null
@@ -1,47 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_SETUPTOOLS=no
-PYTHON_COMPAT=( python3_{9..10} )
-
-inherit distutils-r1 xdg
-
-DESCRIPTION="DevedeNG is a program to create video DVDs and CDs (VCD, sVCD or CVD)"
-HOMEPAGE="https://www.rastersoft.com/programas/devede.html"
-SRC_URI="https://gitlab.com/rastersoft/${PN}/-/archive/${PV}/${P}.tar.bz2"
-
-LICENSE="GPL-3"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-
-RDEPEND="
- app-cdr/cdrtools
- dev-python/pycairo[${PYTHON_USEDEP}]
- dev-python/pygobject:3[${PYTHON_USEDEP}]
- x11-libs/gtk+:3
- || ( media-video/vlc media-video/mpv media-video/mplayer )
- media-video/ffmpeg
- media-video/dvdauthor
- media-video/vcdimager
- || ( app-cdr/brasero kde-apps/k3b app-cdr/xfburn )"
-
-DEPEND="${PYTHON_DEPS}"
-
-# src/unitests only works against system installed devedeng
-RESTRICT="test"
-
-PATCHES=( "${FILESDIR}"/${PN}-4.14.0-no_compress_man.patch )
-
-src_prepare() {
- default
-
- # Documentation path
- sed -e "s#/usr/share/doc/devedeng#/usr/share/doc/${P}#" \
- -i src/devedeng/configuration_data.py || die
- sed -e "/'doc'/s/devedeng/${P}/" -i setup.py || die
-
- # Desktop icon
- sed -e "/^Icon/s/.svg$//#" -i data/devede_ng.py.desktop || die
-}
diff --git a/media-video/devedeng/files/devedeng-4.17.0-locale_install.patch b/media-video/devedeng/files/devedeng-4.17.0-locale_install.patch
new file mode 100644
index 000000000000..c8cfefad093b
--- /dev/null
+++ b/media-video/devedeng/files/devedeng-4.17.0-locale_install.patch
@@ -0,0 +1,15 @@
+diff -Naur devedeng-4.17.0.orig/setup.py devedeng-4.17.0/setup.py
+--- devedeng-4.17.0.orig/setup.py 2022-03-02 16:03:24.000000000 +0100
++++ devedeng-4.17.0/setup.py 2023-07-09 11:07:43.855950815 +0200
+@@ -33,10 +33,7 @@
+ for lang_name in [f for f in os.listdir('locale')]:
+ mofile = os.path.join('locale', lang_name,
+ 'LC_MESSAGES', 'devedeng.mo')
+- # translations must be always in /usr/share because Gtk.builder only
+- # search there. If someone knows how to fix this...
+- # share/locale/fr/LC_MESSAGES/
+- target = os.path.join('/usr', 'share', 'locale',
++ target = os.path.join('share', 'locale',
+ lang_name, 'LC_MESSAGES')
+ data_files.append((target, [mofile]))
+
diff --git a/media-video/devedeng/metadata.xml b/media-video/devedeng/metadata.xml
index 6fd493ed47c4..45d3c80bfe20 100644
--- a/media-video/devedeng/metadata.xml
+++ b/media-video/devedeng/metadata.xml
@@ -11,6 +11,6 @@ DevedeNG is a program to create video DVDs and CDs (VCD, sVCD or CVD), suitables
The suffix NG is because it is a rewrite from scratch of the old Devede, to work with Python3 and Gtk3, and with a new internal architecture that allows to expand it and easily add new features.
</longdescription>
<upstream>
- <remote-id type="github">rastersoft/devedeng</remote-id>
+ <remote-id type="gitlab">rastersoft/devedeng</remote-id>
</upstream>
</pkgmetadata>
diff --git a/media-video/dirac/dirac-1.0.2-r2.ebuild b/media-video/dirac/dirac-1.0.2-r2.ebuild
index 49b566e64269..c56c5dc0be8a 100644
--- a/media-video/dirac/dirac-1.0.2-r2.ebuild
+++ b/media-video/dirac/dirac-1.0.2-r2.ebuild
@@ -11,7 +11,7 @@ SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
LICENSE="MPL-1.1"
SLOT="0"
-KEYWORDS="~alpha amd64 arm ~hppa ~ia64 ~mips ppc ppc64 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~x86-solaris"
+KEYWORDS="~alpha amd64 arm ~hppa ~ia64 ~mips ppc ppc64 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
IUSE="debug doc cpu_flags_x86_mmx"
BDEPEND="
diff --git a/media-video/droidcam/Manifest b/media-video/droidcam/Manifest
index d6d1c64f41d2..aca7a3b3a285 100644
--- a/media-video/droidcam/Manifest
+++ b/media-video/droidcam/Manifest
@@ -1,3 +1 @@
-DIST droidcam-1.8.2.tar.gz 84797 BLAKE2B b2458dd04b467106a6d9a8a9f3d44058641a7c8ca429d5c92f498401c07f6bc364dc056755f21b40faac7e7aec1877250afb119ac3b7f979b24cdeb86f45c384 SHA512 507f513c8d0dffa86afe5368ccab5461931e236b6352269a6eb5e970a79e5f9b386808da3466f3b391e955170b47b24a82663632ddc3c3c84e4de5988b7d3f8f
-DIST droidcam-1.8.2_p20220831.tar.gz 84943 BLAKE2B db54f39a9b303b4b06dfdfcb6bf9323ce25f8cea4594cdcec063685fea531fdeb915caab393d0edf72086deb592345d7ca6aefd546d44f06e24855d66fbd8d47 SHA512 c30848c2348c70a15c46f894b1c0547a3e904bbb8582ae2d34009dbc9b0d006a49ab3950fef4491f76f838fd091d68ec1d63d5b1f52e793e98936fe5f2d44b5c
-DIST droidcam-1.9.0_rc1.tar.gz 85035 BLAKE2B aa0129eeb1f5348948872c6144b472008d50d29b2d83bc96c32de52ba7696f067eeb59208c8ab53f0cd4d0bdcf74e94b61f11bd652d5cae828efd89bd434f595 SHA512 4b44cb702456110fdd7d9f82cd5e0f024a428dd9bed2e1c0eeb914983b9611a6405dadbb399efdb1539358a729c2194142eaa95d3eba68b6906ff1614919a29d
+DIST droidcam-2.0.0.tar.gz 85146 BLAKE2B 95b96e7474ee457589d751caff156f9715f75cab3e54bef151334f8fe6371f5eed919e9a5df050ec683a65f15c2e40a06efc66e80e5323a8b0e6713980c75174 SHA512 68fe4de308df238fc096ad8b658c5d330400113c7ddf54bf0f070c9852e375273f80c7a8293bd9b5e357163305573931c94bb2bd005673086f718121181b2212
diff --git a/media-video/droidcam/droidcam-1.8.2_p20220831.ebuild b/media-video/droidcam/droidcam-1.8.2_p20220831.ebuild
deleted file mode 100644
index 401a7d918546..000000000000
--- a/media-video/droidcam/droidcam-1.8.2_p20220831.ebuild
+++ /dev/null
@@ -1,158 +0,0 @@
-# Copyright 2019-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit desktop linux-mod xdg
-
-COMMIT="d1c3206306f948a8e86c7a256f1ca1be09b114b1"
-
-DESCRIPTION="Use your phone or tablet as webcam with a v4l device driver and app"
-HOMEPAGE="https://www.dev47apps.com/droidcam/linux/"
-SRC_URI="https://github.com/dev47apps/${PN}/archive/${COMMIT}.tar.gz -> ${P}.tar.gz"
-S="${WORKDIR}/${PN}-${COMMIT}"
-
-KEYWORDS="~amd64"
-LICENSE="GPL-2"
-SLOT="0"
-
-IUSE="gtk"
-
-# Requires connection to phone/tablet
-RESTRICT="test"
-
-DEPEND="
- app-pda/libplist
- app-pda/libusbmuxd
- dev-libs/glib
- dev-libs/libayatana-appindicator
- dev-libs/libxml2
- dev-util/android-tools
- media-libs/alsa-lib
- media-libs/libjpeg-turbo
- >=media-libs/speex-1.2.0-r1
- media-video/ffmpeg
- gtk? (
- x11-libs/gdk-pixbuf
- x11-libs/gtk+:3
- x11-libs/libX11
- x11-libs/pango
- )
-"
-RDEPEND="${DEPEND}"
-BDEPEND="virtual/pkgconfig"
-
-BUILD_TARGETS="all"
-MODULE_NAMES="v4l2loopback-dc(video:${S}/v4l2loopback:${S}/v4l2loopback)"
-MODULESD_V4L2LOOPBACK_DC_ENABLED="yes"
-
-CONFIG_CHECK="~SND_ALOOP VIDEO_DEV MEDIA_SUPPORT MEDIA_CAMERA_SUPPORT"
-ERROR_SND_ALOOP="CONFIG_SND_ALOOP is optionally required for audio support"
-
-PATCHES="${FILESDIR}/${PN}-1.8.2_p20220831-makefile-fixes.patch"
-
-src_prepare() {
- if ! use gtk; then
- default
- sed -i -e '/cflags gtk+/d' Makefile || die
- else
- default
- # remove path and extension from Icon and Exec entry
- sed -i -e 's/Icon=\/opt\/droidcam-icon.png/Icon=droidcam/g' \
- -e 's/\/usr\/local\/bin\/droidcam/droidcam/g' \
- droidcam.desktop || die
- sed -i -e 's%/opt/droidcam-icon.png%/usr/share/icons/hicolor/96x96/apps/droidcam.png%g' src/droidcam.c || die
- fi
-}
-
-src_configure() {
- set_arch_to_kernel
- default
-}
-
-src_compile() {
- if use gtk; then
- emake droidcam
- fi
- emake droidcam-cli
-
- if linux_chkconfig_present CC_IS_CLANG; then
- BUILD_PARAMS+=' CC=${CHOST}-clang'
- if linux_chkconfig_present LD_IS_LLD; then
- BUILD_PARAMS+=' LD=ld.lld'
- if linux_chkconfig_present LTO_CLANG_THIN; then
- # kernel enables cache by default leading to sandbox violations
- BUILD_PARAMS+=' ldflags-y=--thinlto-cache-dir= LDFLAGS_MODULE=--thinlto-cache-dir='
- fi
- fi
- fi
- export KERNEL_DIR || die
- linux-mod_src_compile
-}
-
-src_test() {
- pushd "v4l2loopback" || die
- default
- ./test || die
- popd || die
-}
-
-src_install() {
- if use gtk; then
- dobin droidcam
- newicon -s 32 icon.png droidcam.png
- newicon -s 96 icon2.png droidcam.png
- domenu droidcam.desktop
- fi
- dobin droidcam-cli
-
- # The cli and gui do not auto load the module if unloaded (why not though?)
- # so we just put it in modules-load.d to make sure it always works
- insinto /etc/modules-load.d
- if linux_config_exists; then
- if linux_chkconfig_module SND_ALOOP; then
- newins - "${PN}.conf" <<-EOF
- v4l2loopback-dc
- snd_aloop
- EOF
- else
- newins - "${PN}.conf" <<-EOF
- v4l2loopback-dc
- EOF
- fi
- fi
-
- einstalldocs
- linux-mod_src_install
-}
-
-pkg_preinst() {
- linux-mod_pkg_preinst
- if use gtk; then
- xdg_pkg_preinst
- fi
-}
-
-pkg_postinst() {
- linux-mod_pkg_postinst
- if use gtk; then
- xdg_pkg_postinst
- else
- elog
- elog "Only droidcam-cli has been installed since 'gtk' flag was not set"
- elog
- fi
-
- elog "The default resolution for v4l2loopback-dc (i.e. droidcam) is 640x480."
- elog "You can change this value in /etc/modprobe.d/v4l2loopback-dc.conf"
- elog
- elog "Links to the Android/iPhone/iPad apps can be found at"
- elog "https://www.dev47apps.com/"
-}
-
-pkg_postrm() {
- linux-mod_pkg_postrm
- if use gtk; then
- xdg_pkg_postrm
- fi
-}
diff --git a/media-video/droidcam/droidcam-1.9.0_rc1.ebuild b/media-video/droidcam/droidcam-2.0.0-r1.ebuild
index 43c1cec97661..17c5115355ca 100644
--- a/media-video/droidcam/droidcam-1.9.0_rc1.ebuild
+++ b/media-video/droidcam/droidcam-2.0.0-r1.ebuild
@@ -47,7 +47,9 @@ MODULESD_V4L2LOOPBACK_DC_ENABLED="yes"
CONFIG_CHECK="~SND_ALOOP VIDEO_DEV MEDIA_SUPPORT MEDIA_CAMERA_SUPPORT"
ERROR_SND_ALOOP="CONFIG_SND_ALOOP is optionally required for audio support"
-PATCHES="${FILESDIR}/${PN}-1.8.2_p20220831-makefile-fixes.patch"
+PATCHES=(
+ "${FILESDIR}/${P}-libusbmuxd-20.patch"
+)
src_prepare() {
if ! use gtk; then
@@ -70,9 +72,9 @@ src_configure() {
src_compile() {
if use gtk; then
- emake droidcam
+ APPINDICATOR=ayatana-appindicator3-0.1 emake droidcam
fi
- emake droidcam-cli
+ APPINDICATOR=ayatana-appindicator3-0.1 emake droidcam-cli
if linux_chkconfig_present CC_IS_CLANG; then
BUILD_PARAMS+=' CC=${CHOST}-clang'
diff --git a/media-video/droidcam/droidcam-1.8.2-r1.ebuild b/media-video/droidcam/droidcam-2.0.0-r3.ebuild
index 53150f3a9c28..e243b0248cff 100644
--- a/media-video/droidcam/droidcam-1.8.2-r1.ebuild
+++ b/media-video/droidcam/droidcam-2.0.0-r3.ebuild
@@ -1,13 +1,14 @@
-# Copyright 2019-2022 Gentoo Authors
+# Copyright 2019-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-inherit desktop linux-mod xdg
+inherit desktop linux-mod-r1 xdg
DESCRIPTION="Use your phone or tablet as webcam with a v4l device driver and app"
HOMEPAGE="https://www.dev47apps.com/droidcam/linux/"
-SRC_URI="https://github.com/dev47apps/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+SRC_URI="https://github.com/dev47apps/${PN}/archive/v${PV//_rc1/-RC}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/${PN}-${PV//_rc1/-RC}"
KEYWORDS="~amd64"
LICENSE="GPL-2"
@@ -22,7 +23,7 @@ DEPEND="
app-pda/libplist
app-pda/libusbmuxd
dev-libs/glib
- dev-libs/libappindicator:3
+ dev-libs/libayatana-appindicator
dev-libs/libxml2
dev-util/android-tools
media-libs/alsa-lib
@@ -39,21 +40,19 @@ DEPEND="
RDEPEND="${DEPEND}"
BDEPEND="virtual/pkgconfig"
-BUILD_TARGETS="all"
-MODULE_NAMES="v4l2loopback-dc(video:${S}/v4l2loopback:${S}/v4l2loopback)"
-MODULESD_V4L2LOOPBACK_DC_ENABLED="yes"
-
CONFIG_CHECK="~SND_ALOOP VIDEO_DEV MEDIA_SUPPORT MEDIA_CAMERA_SUPPORT"
ERROR_SND_ALOOP="CONFIG_SND_ALOOP is optionally required for audio support"
-PATCHES="${FILESDIR}/${PN}-1.8.2-makefile-fixes.patch"
+PATCHES=(
+ "${FILESDIR}/${P}-libusbmuxd-20.patch"
+)
src_prepare() {
if ! use gtk; then
default
sed -i -e '/cflags gtk+/d' Makefile || die
else
- xdg_src_prepare
+ default
# remove path and extension from Icon and Exec entry
sed -i -e 's/Icon=\/opt\/droidcam-icon.png/Icon=droidcam/g' \
-e 's/\/usr\/local\/bin\/droidcam/droidcam/g' \
@@ -69,22 +68,19 @@ src_configure() {
src_compile() {
if use gtk; then
- emake droidcam
+ APPINDICATOR=ayatana-appindicator3-0.1 emake droidcam
fi
- emake droidcam-cli
-
- if linux_chkconfig_present CC_IS_CLANG; then
- BUILD_PARAMS+=' CC=${CHOST}-clang'
- if linux_chkconfig_present LD_IS_LLD; then
- BUILD_PARAMS+=' LD=ld.lld'
- if linux_chkconfig_present LTO_CLANG_THIN; then
- # kernel enables cache by default leading to sandbox violations
- BUILD_PARAMS+=' ldflags-y=--thinlto-cache-dir= LDFLAGS_MODULE=--thinlto-cache-dir='
- fi
- fi
- fi
- export KERNEL_DIR || die
- linux-mod_src_compile
+ APPINDICATOR=ayatana-appindicator3-0.1 emake droidcam-cli
+
+ local modlist=(
+ v4l2loopback-dc=video:v4l2loopback:v4l2loopback:all
+ )
+
+ local modargs=(
+ KERNEL_DIR="${KV_OUT_DIR}"
+ )
+
+ linux-mod-r1_src_compile
}
src_test() {
@@ -103,7 +99,7 @@ src_install() {
fi
dobin droidcam-cli
- # The cli and gui do not auto load the module if unloaded (why not though?)
+ # The cli and gui do not auto load the module if unloaded,
# so we just put it in modules-load.d to make sure it always works
insinto /etc/modules-load.d
if linux_config_exists; then
@@ -119,19 +115,17 @@ src_install() {
fi
fi
- einstalldocs
- linux-mod_src_install
+ linux-mod-r1_src_install
}
pkg_preinst() {
- linux-mod_pkg_preinst
if use gtk; then
xdg_pkg_preinst
fi
}
pkg_postinst() {
- linux-mod_pkg_postinst
+ linux-mod-r1_pkg_postinst
if use gtk; then
xdg_pkg_postinst
else
@@ -148,7 +142,6 @@ pkg_postinst() {
}
pkg_postrm() {
- linux-mod_pkg_postrm
if use gtk; then
xdg_pkg_postrm
fi
diff --git a/media-video/droidcam/files/droidcam-1.8.2-makefile-fixes.patch b/media-video/droidcam/files/droidcam-1.8.2-makefile-fixes.patch
deleted file mode 100644
index 56b7589b2d12..000000000000
--- a/media-video/droidcam/files/droidcam-1.8.2-makefile-fixes.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-diff --git a/Makefile b/Makefile
-index 7be3c15..85ef623 100644
---- a/Makefile
-+++ b/Makefile
-@@ -6,25 +6,19 @@
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- # Use at your own risk. See README file for more details.
-
--JPEG_DIR ?= /opt/libjpeg-turbo
--JPEG_INCLUDE ?= $(JPEG_DIR)/include
--JPEG_LIB ?= $(JPEG_DIR)/lib`getconf LONG_BIT`
--
--CC = gcc
--CFLAGS = -Wall -O2
- GTK = `pkg-config --libs --cflags gtk+-3.0` `pkg-config --libs x11`
- GTK += `pkg-config --cflags --libs appindicator3-0.1`
- LIBAV = `pkg-config --libs --cflags libswscale libavutil`
- LIBS = -lspeex -lasound -lpthread -lm
--JPEG = -I$(JPEG_INCLUDE) $(JPEG_LIB)/libturbojpeg.a
-+JPEG = `pkg-config --libs --cflags libturbojpeg`
- SRC = src/connection.c src/settings.c src/decoder*.c src/av.c src/usb.c src/queue.c
--USBMUXD = -lusbmuxd
-+USBMUXD = -lusbmuxd-2.0
-
- all: droidcam-cli droidcam
-
- ifneq "$(RELEASE)" ""
--LIBAV = /usr/lib/x86_64-linux-gnu/libswscale.a /usr/lib/x86_64-linux-gnu/libavutil.a
--SRC += src/libusbmuxd.a src/libxml2.a src/libplist-2.0.a
-+LIBAV = /usr/lib/x86_64-linux-gnu/libswscale.so /usr/lib/x86_64-linux-gnu/libavutil.so
-+SRC += src/libusbmuxd-2.0.so src/libxml2.so src/libplist-2.0.so
- package: clean all
- zip "droidcam_$(RELEASE).zip" \
- LICENSE README* icon2.png \
-@@ -40,11 +34,11 @@ gresource: .gresource.xml icon2.png
-
- droidcam-cli: LDLIBS += $(JPEG) $(LIBAV) $(LIBS)
- droidcam-cli: src/droidcam-cli.c $(SRC)
-- $(CC) $(CPPFLAGS) $(CFLAGS) $^ -o $@ $(LDFLAGS) $(LDLIBS)
-+ $(CC) $(CPPFLAGS) $(CXXFLAGS) $(CFLAGS) $^ -o $@ $(LDFLAGS) $(LDLIBS)
-
- droidcam: LDLIBS += $(GTK) $(JPEG) $(LIBAV) $(LIBS)
- droidcam: src/droidcam.c src/resources.c $(SRC)
-- $(CC) $(CPPFLAGS) $(CFLAGS) $^ -o $@ $(LDFLAGS) $(LDLIBS)
-+ $(CC) $(CPPFLAGS) $(CXXFLAGS) $(CFLAGS) $^ -o $@ $(LDFLAGS) $(LDLIBS)
-
- clean:
- rm -f droidcam
-diff --git a/v4l2loopback/Makefile b/v4l2loopback/Makefile
-index 28c4502..02356e9 100644
---- a/v4l2loopback/Makefile
-+++ b/v4l2loopback/Makefile
-@@ -11,7 +11,7 @@ install:
- $(MAKE) -C $(KERNEL_DIR) M=$(PWD) modules_install
-
- test:
-- gcc test.c -o test
-+ $(CC) test.c -o test
-
- clean:
- $(MAKE) -C $(KERNEL_DIR) M=$(PWD) clean
diff --git a/media-video/droidcam/files/droidcam-1.8.2_p20220831-makefile-fixes.patch b/media-video/droidcam/files/droidcam-1.8.2_p20220831-makefile-fixes.patch
deleted file mode 100644
index 60454427e41a..000000000000
--- a/media-video/droidcam/files/droidcam-1.8.2_p20220831-makefile-fixes.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-diff --git a/Makefile b/Makefile
-index b372b09..d18ddba 100644
---- a/Makefile
-+++ b/Makefile
-@@ -11,31 +11,21 @@
- # Example:
- # APPINDICATOR=ayatana-appindicator3-0.1 make droidcam
-
--APPINDICATOR ?= appindicator3-0.1
--JPEG_DIR ?= /opt/libjpeg-turbo
--JPEG_INCLUDE ?= $(JPEG_DIR)/include
--JPEG_LIB ?= $(JPEG_DIR)/lib`getconf LONG_BIT`
--
--
--CC = gcc
--CFLAGS = -Wall -O2
- GTK = `pkg-config --libs --cflags gtk+-3.0` `pkg-config --libs x11`
--GTK += `pkg-config --libs --cflags $(APPINDICATOR)`
-+GTK += `pkg-config --libs --cflags ayatana-appindicator3-0.1`
- LIBAV = `pkg-config --libs --cflags libswscale libavutil`
- LIBS = -lspeex -lasound -lpthread -lm
--JPEG = -I$(JPEG_INCLUDE) $(JPEG_LIB)/libturbojpeg.a
-+JPEG = `pkg-config --libs --cflags libturbojpeg`
- SRC = src/connection.c src/settings.c src/decoder*.c src/av.c src/usb.c src/queue.c
--USBMUXD = -lusbmuxd
-+USBMUXD = -lusbmuxd-2.0
-
--ifneq ($(findstring ayatana,$(APPINDICATOR)),)
-- CFLAGS += -DUSE_AYATANA_APPINDICATOR
--endif
-+CFLAGS += -DUSE_AYATANA_APPINDICATOR
-
-
- all: droidcam-cli droidcam
-
- ifneq "$(RELEASE)" ""
--SRC += src/libusbmuxd.a src/libxml2.a src/libplist-2.0.a
-+SRC += src/libusbmuxd-2.0.s0 src/libxml2.so src/libplist-2.0.so
- package: clean all
- zip "droidcam_$(RELEASE).zip" \
- LICENSE README* icon2.png \
-@@ -51,11 +41,11 @@ gresource: .gresource.xml icon2.png
-
- droidcam-cli: LDLIBS += $(JPEG) $(LIBAV) $(LIBS)
- droidcam-cli: src/droidcam-cli.c $(SRC)
-- $(CC) $(CPPFLAGS) $(CFLAGS) $^ -o $@ $(LDFLAGS) $(LDLIBS)
-+ $(CC) $(CXXFLAGS) $(CPPFLAGS) $(CFLAGS) $^ -o $@ $(LDFLAGS) $(LDLIBS)
-
- droidcam: LDLIBS += $(GTK) $(JPEG) $(LIBAV) $(LIBS)
- droidcam: src/droidcam.c src/resources.c $(SRC)
-- $(CC) $(CPPFLAGS) $(CFLAGS) $^ -o $@ $(LDFLAGS) $(LDLIBS)
-+ $(CC) $(CXXFLAGS) $(CPPFLAGS) $(CFLAGS) $^ -o $@ $(LDFLAGS) $(LDLIBS)
-
- clean:
- rm -f droidcam
-diff --git a/v4l2loopback/Makefile b/v4l2loopback/Makefile
-index 28c4502..02356e9 100644
---- a/v4l2loopback/Makefile
-+++ b/v4l2loopback/Makefile
-@@ -11,7 +11,7 @@ install:
- $(MAKE) -C $(KERNEL_DIR) M=$(PWD) modules_install
-
- test:
-- gcc test.c -o test
-+ $(CC) test.c -o test
-
- clean:
- $(MAKE) -C $(KERNEL_DIR) M=$(PWD) clean
diff --git a/media-video/droidcam/files/droidcam-2.0.0-libusbmuxd-20.patch b/media-video/droidcam/files/droidcam-2.0.0-libusbmuxd-20.patch
new file mode 100644
index 000000000000..71625224aabe
--- /dev/null
+++ b/media-video/droidcam/files/droidcam-2.0.0-libusbmuxd-20.patch
@@ -0,0 +1,13 @@
+diff --git a/Makefile b/Makefile
+index f45cd20..0cf696b 100644
+--- a/Makefile
++++ b/Makefile
+@@ -20,7 +20,7 @@ GTK = `pkg-config --libs --cflags gtk+-3.0` `pkg-config --libs x11`
+ GTK += `pkg-config --libs --cflags $(APPINDICATOR)`
+ LIBAV = `pkg-config --libs --cflags libswscale libavutil`
+ JPEG = `pkg-config --libs --cflags libturbojpeg`
+-USBMUXD = `pkg-config --libs --cflags libusbmuxd`
++USBMUXD = `pkg-config --libs --cflags libusbmuxd-2.0`
+ LIBS = -lspeex -lasound -lpthread -lm
+ SRC = src/connection.c src/settings.c src/decoder*.c src/av.c src/usb.c src/queue.c
+
diff --git a/media-video/dvdauthor/dvdauthor-0.7.2-r2.ebuild b/media-video/dvdauthor/dvdauthor-0.7.2-r2.ebuild
index dcd1561b0b16..89f11e102235 100644
--- a/media-video/dvdauthor/dvdauthor-0.7.2-r2.ebuild
+++ b/media-video/dvdauthor/dvdauthor-0.7.2-r2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
@@ -28,7 +28,9 @@ S="${WORKDIR}/${PN}"
DOCS=( AUTHORS ChangeLog README TODO )
-PATCHES=( "${FILESDIR}/${PN}-freetype_pkgconfig.patch" )
+PATCHES=(
+ "${FILESDIR}"/${P}-freetype-pkgconfig.patch
+)
src_prepare() {
default
diff --git a/media-video/dvdauthor/files/dvdauthor-freetype_pkgconfig.patch b/media-video/dvdauthor/files/dvdauthor-0.7.2-freetype-pkgconfig.patch
index bb9858f437d4..1ddf49403e46 100644
--- a/media-video/dvdauthor/files/dvdauthor-freetype_pkgconfig.patch
+++ b/media-video/dvdauthor/files/dvdauthor-0.7.2-freetype-pkgconfig.patch
@@ -1,3 +1,5 @@
+https://github.com/ldo/dvdauthor/commit/d5bb0bdd542c33214855a7062fcc485f8977934e
+
From 259f892fe61f16c26733506d2511eec7ff136dc4 Mon Sep 17 00:00:00 2001
From: Lars Wendler <polynomial-c@gentoo.org>
Date: Mon, 7 May 2018 09:18:48 +0200
diff --git a/media-video/dvdauthor/metadata.xml b/media-video/dvdauthor/metadata.xml
index 01dfeec842c4..1479cf0f2ecd 100644
--- a/media-video/dvdauthor/metadata.xml
+++ b/media-video/dvdauthor/metadata.xml
@@ -6,5 +6,6 @@
</maintainer>
<upstream>
<remote-id type="sourceforge">dvdauthor</remote-id>
+ <remote-id type="github">ldo/dvdauthor</remote-id>
</upstream>
</pkgmetadata>
diff --git a/media-video/dvdbackup/dvdbackup-0.4.2-r2.ebuild b/media-video/dvdbackup/dvdbackup-0.4.2-r2.ebuild
index d515df7b66d1..9b4aa9ffff47 100644
--- a/media-video/dvdbackup/dvdbackup-0.4.2-r2.ebuild
+++ b/media-video/dvdbackup/dvdbackup-0.4.2-r2.ebuild
@@ -9,7 +9,7 @@ SRC_URI="mirror://sourceforge/${PN}/${P}.tar.xz"
LICENSE="GPL-3"
SLOT="0"
-KEYWORDS="amd64 ppc ppc64 ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-solaris"
+KEYWORDS="amd64 ppc ppc64 ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos"
IUSE="nls"
RDEPEND=">=media-libs/libdvdread-4.2.0_pre:=
diff --git a/media-video/ffdiaporama/Manifest b/media-video/ffdiaporama/Manifest
index 95deb3493d2b..93bff6f4e0f3 100644
--- a/media-video/ffdiaporama/Manifest
+++ b/media-video/ffdiaporama/Manifest
@@ -1,9 +1,2 @@
-DIST ffdiaporama-2.2-ffmpeg-3.0.patch 19635 BLAKE2B 000816945e74033b2620f635f59e762e82988ef60740ac14bfee02850cc6299ec0934a7f48afe03009a94bbb531e9668c9d16fe230db34d03ba54b0c42249348 SHA512 958025fee8df94a600fa4919fe9aa5574556c163a771b36213e90f116c13d0448a86e99a49b2ac4631c1b845ffb8c87789ac00cb8462fed1abbe9233e49a47fc
-DIST ffdiaporama-2.2-ffmpeg-4.0.patch 6648 BLAKE2B 1efaecf9dc6180539bc01a6e4f1403864ea2f9318cc1528aac0bb339d840e3eec40ddc60a531d8af52aae5592c38bbcad9d8dd260cedbe01ab655e2135766e6b SHA512 9588352af7b048ade3b681364a4edc29526241b0631e39314b9466f490d66a4e3b795f4c32afd0aadc2a3d63a9ce4e99a6bb77e4c3f79d959e68e82856882d32
-DIST ffdiaporama-2.2-ffmpeg-4.4.patch 1034 BLAKE2B f6105f5fc9d928c43fc33d2eb154d97843516f42754154690ca1651c90f9cce21ce03a80ca2fd0440611f30463077a67cccc9d2103d6ffecde80f7ca5ba48142 SHA512 14c2c8361836a0f95224577710b72d48fe9aa5c9a330777b8cb709a1ad02f95d9b8ba0f22ff9250e0a6898cfd8f6839658a94f59082d2da767299a81a38e9f8a
-DIST ffdiaporama-2.2-libav11.patch 18781 BLAKE2B 95da6d11fa31f18106184c0c14a524c42f03a169503ad58d72e871edc60ef52b5ee6ac6d757e8ddcaa66ba58a1b78bc1ca1a9b116d69a3526fd6bc3e5817a9d9 SHA512 f24f3f6b624763dcc3ea5bc0c52480d986fbec9b123ad5645c11a525c0eefb7b8708f90df4fb728dfab1d640c6dfab9a550874f59d333cff979e3ef56639416e
-DIST ffdiaporama-2.2_pre20220403.tar.gz 63270245 BLAKE2B 86e5926285b5c38146065cbbc53182eba77c25fa7eddd79e61276b949f5ad4f217f3e2562bed938f06c191493929afa7f24820ef957243f176b3f8e09d4284a9 SHA512 75076eadf1cbef38590ef250746228598ddb00bec2328589a6fb913ee3ae376a6587e6e90494986c5cbeda7aba6c342992cb5e71e5c8ce26e4fda12238ce72e4
DIST ffdiaporama-2.2_pre20221007.tar.gz 63271591 BLAKE2B 0fbd20e571329bc294554c50a04920b837af4b62cf4cc7ef356dd9372a8f1f3f01c7b2736fba71c52d468261ad778107e332929ab90d2cf768698102d269a00c SHA512 a37966bb31853de42e7c03a9a1e913332e417278fe663f088d9d9ee763db163549993fa7271b53ad2d495cef5e05d11e3f13ab3343cace3cb4c202aadb461beb
-DIST ffdiaporama_bin_2.2.devel.2014.0701.tar.gz 18377677 BLAKE2B 74337dcb935eedfccb769562c9b763f642058d2fc8bf4a3c4a81b1ce857398ee759ce2cf269c31527cece2c18a48505ad46b197e10da8444cbf2131ffb3e1130 SHA512 6531381137c47d3fd2954d09fe922086de1b69638ed4b092faeb9e2982b463c6614314bda56512f6a315bd02b8600d815efb19dca3dae89947df9a48a2ae7b86
-DIST ffdiaporama_rsc_2.2.devel.2014.0503.tar.gz 18390602 BLAKE2B 58c38d1f62ec04b217add232873556cf57d13cd17ef672f2087b44c0aac9ee7bc890de3bb812cb1c57093565b06de51ed0ddb0465d9b7fce21311fedf51042a3 SHA512 73faafe54d7d9a3d8d91719ac56cec7323e0a497f77e0c9f243d84782aa6040677236d9e41d3b539c45d6aca2448d737912ec59bd2a7e417749ee548cd68652d
-DIST ffdiaporama_texturemate_1.0.2014.0125.tar.gz 30352923 BLAKE2B af558994a811508ff6b0f1dc34f33c60fca0a4f40c1cf675e08925b40c8312444a20ea95b0a0c9316225806096e9bbb209faf3e48b74041604c6d81be0175aba SHA512 e9aa9607d670a620b2e3c27d6ec5bf983eb31ab3d3139edf32ebb84d9ffa58b11c822f7db4b3f3c4a430b256719803df4a3a385bd467bdda09f8710d010eb2f5
+DIST ffdiaporama-2.2_pre20230525.tar.gz 63270147 BLAKE2B 26cc3ecd7966a945808481c18b2f9a239132cae5016f33e83ef5588c55b1f2a0d7609cd1bdfaf51ada75e1df5274733b7985f6eb3b3814260102f6c9e406ed68 SHA512 777d110b0948bc3c3bdb14e13b4ce09ec819bfac2759c715a1e247b1d6cf8c8461c1ec28a0315f034e4e5a19b4732ce583d71b2edd9c6375b7dae14868cc8dfe
diff --git a/media-video/ffdiaporama/ffdiaporama-2.2_pre20140701-r2.ebuild b/media-video/ffdiaporama/ffdiaporama-2.2_pre20140701-r2.ebuild
deleted file mode 100644
index f32094e39d46..000000000000
--- a/media-video/ffdiaporama/ffdiaporama-2.2_pre20140701-r2.ebuild
+++ /dev/null
@@ -1,77 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-MY_PV=${PV%_pre20140701}
-BIN_PV=${MY_PV}.devel.2014.0701
-RSC_PV=${MY_PV}.devel.2014.0503
-TMT_PV=1.0.2014.0125
-inherit qmake-utils xdg-utils
-
-DESCRIPTION="Movie creator from photos and video clips"
-HOMEPAGE="https://ffdiaporama.tuxfamily.org"
-SRC_URI="https://download.tuxfamily.org/${PN}/Packages/Devel/${PN}_bin_${BIN_PV}.tar.gz
- https://download.tuxfamily.org/${PN}/Packages/Devel/${PN}_rsc_${RSC_PV}.tar.gz
- https://raw.githubusercontent.com/laurantino/gentoo-dist/master/ffdiaporama-2.2-libav11.patch
- https://raw.githubusercontent.com/laurantino/gentoo-dist/master/ffdiaporama-2.2-ffmpeg-3.0.patch
- https://raw.githubusercontent.com/laurantino/gentoo-dist/master/ffdiaporama-2.2-ffmpeg-4.0.patch
- https://raw.githubusercontent.com/laurantino/gentoo-dist/master/ffdiaporama-2.2-ffmpeg-4.4.patch
- texturemate? ( https://download.tuxfamily.org/${PN}/Packages/Stable/${PN}_texturemate_${TMT_PV}.tar.gz )"
-
-LICENSE="GPL-2 texturemate? ( CC-BY-3.0 )"
-SLOT="0"
-KEYWORDS="amd64 x86"
-IUSE="openclipart texturemate"
-
-RDEPEND="
- dev-qt/qtconcurrent:5
- dev-qt/qtcore:5
- dev-qt/qtgui:5
- dev-qt/qthelp:5
- dev-qt/qtmultimedia:5
- dev-qt/qtnetwork:5
- dev-qt/qtsql:5[sqlite]
- dev-qt/qtsvg:5
- dev-qt/qtwidgets:5
- dev-qt/qtxml:5
- media-gfx/exiv2:=
- >=media-video/ffmpeg-3:0=[encode]
- openclipart? ( media-gfx/openclipart[svg,-gzip] )"
-DEPEND="${RDEPEND}"
-
-DOCS=( authors.txt )
-PATCHES=( "${DISTDIR}"/${PN}-${MY_PV}-{ffmpeg-3.0,libav11,ffmpeg-4.0,ffmpeg-4.4}.patch )
-
-S="${WORKDIR}/ffDiaporama"
-
-src_prepare() {
- default
- echo "SUBDIRS += ../ffDiaporama_rsc" >> ffDiaporama.pro || die
- if use texturemate; then
- echo "SUBDIRS += ../ffDiaporama_texturemate" >> ffDiaporama.pro || die
- fi
-}
-
-src_configure() {
- eqmake5 QMAKE_CFLAGS_ISYSTEM=
-}
-
-src_install() {
- emake INSTALL_ROOT="${D}" install
- if use openclipart; then
- dosym ../../clipart/openclipart /usr/share/ffDiaporama/clipart/openclipart
- fi
-}
-
-pkg_postinst() {
- xdg_desktop_database_update
- xdg_mimeinfo_database_update
- xdg_icon_cache_update
-}
-
-pkg_postrm() {
- xdg_desktop_database_update
- xdg_mimeinfo_database_update
- xdg_icon_cache_update
-}
diff --git a/media-video/ffdiaporama/ffdiaporama-2.2_pre20221007.ebuild b/media-video/ffdiaporama/ffdiaporama-2.2_pre20221007.ebuild
index acb80e067b23..1d33f68b959e 100644
--- a/media-video/ffdiaporama/ffdiaporama-2.2_pre20221007.ebuild
+++ b/media-video/ffdiaporama/ffdiaporama-2.2_pre20221007.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -13,7 +13,7 @@ SRC_URI="https://github.com/laurantino/${PN}/archive/${COMMIT}.tar.gz -> ${P}.ta
LICENSE="GPL-3 CC-BY-3.0"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="amd64 x86"
IUSE="openclipart"
RDEPEND="
diff --git a/media-video/ffdiaporama/ffdiaporama-2.2_pre20220403.ebuild b/media-video/ffdiaporama/ffdiaporama-2.2_pre20230525.ebuild
index f13a63fc974d..624ed4d35a2f 100644
--- a/media-video/ffdiaporama/ffdiaporama-2.2_pre20220403.ebuild
+++ b/media-video/ffdiaporama/ffdiaporama-2.2_pre20230525.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-COMMIT="0557dc2d2489b88c813c695b0d75107be82292f8"
+COMMIT="6b2587064d705de42a3e88468d4922bc27b97e2a"
inherit qmake-utils xdg-utils
@@ -13,7 +13,7 @@ SRC_URI="https://github.com/laurantino/${PN}/archive/${COMMIT}.tar.gz -> ${P}.ta
LICENSE="GPL-3 CC-BY-3.0"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="amd64 x86"
IUSE="openclipart"
RDEPEND="
diff --git a/media-video/ffdiaporama/metadata.xml b/media-video/ffdiaporama/metadata.xml
index dc6829f4891b..77033bf869e4 100644
--- a/media-video/ffdiaporama/metadata.xml
+++ b/media-video/ffdiaporama/metadata.xml
@@ -13,6 +13,7 @@
<changelog>http://ffdiaporama.tuxfamily.org/?page_id=7266&amp;lang=en</changelog>
<doc lang="en">http://ffdiaporama.tuxfamily.org/?page_id=6268</doc>
<bugs-to>http://ffdiaporama.tuxfamily.org/Forum/viewforum.php?id=4</bugs-to>
+ <remote-id type="github">laurantino/ffdiaporama</remote-id>
</upstream>
<longdescription lang="en">
ffDiaporama is an application for creating video sequences consisting of
@@ -38,6 +39,5 @@
</longdescription>
<use>
<flag name="openclipart">Support openclipart database</flag>
- <flag name="texturemate">Install extra backgrounds</flag>
</use>
</pkgmetadata>
diff --git a/media-video/ffmpeg-chromium/Manifest b/media-video/ffmpeg-chromium/Manifest
index 58a303503608..2a8f8055040d 100644
--- a/media-video/ffmpeg-chromium/Manifest
+++ b/media-video/ffmpeg-chromium/Manifest
@@ -1,2 +1,3 @@
DIST ffmpeg-chromium-102.tar.gz 15165192 BLAKE2B ecf9b9ff538730d8a265e25e3d30900b119bfa5baa8e097e58151d744c95b3e768b96f477f6394015cd77a8ae35991c7cdaee5fb2f700d129b6c6d7ee87b34d9 SHA512 f5aa4c47e801d2547321c7995240e004706f9b5835610f9726ac45a63ac58a62de64d463ddeb8c1a001d31d89a4dbaee3a1be568c33316f29dc2b675b2f3161a
DIST ffmpeg-chromium-106.tar.xz 9707176 BLAKE2B 8ab9b006328e15faa38b8014f2870e7a9fd9eaacc723cd6079bfaadc05db4d1f8c542dff5a331e1f93c9c877eea6d2ed0dc2bf567c77680227b22b2a9baf8834 SHA512 9f04feee42bf548cbda542be16f186bfe0d8179289a1512cf77ec492a8608b2c9d5c758f93fb6d229be67c20762075dd266fa4b203556f8b7ec4bf66579f2b6b
+DIST ffmpeg-chromium-114.tar.xz 9934024 BLAKE2B cc11bd00bcf6bef5f946a16f1544881c71503207ba3c6ec57cdc37124ea562366dced2e029f31e57a6f78ec7073412ac0b8ec470d14975a3cc40fad2e96ec5df SHA512 1b1743664d58f5b92971d113ea441604e0b46f28b22df1b02ab0431b8e884789fb6d81b4f50ff1526f716381abcc63e1b336d23edd9ea28abe8b3526fba08ce9
diff --git a/media-video/ffmpeg-chromium/ffmpeg-chromium-102.ebuild b/media-video/ffmpeg-chromium/ffmpeg-chromium-102.ebuild
index 6f9eaaeb8883..6e4409a5274b 100644
--- a/media-video/ffmpeg-chromium/ffmpeg-chromium-102.ebuild
+++ b/media-video/ffmpeg-chromium/ffmpeg-chromium-102.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -116,6 +116,7 @@ S="${WORKDIR}"
PATCHES=(
"${FILESDIR}"/${PN}-100.patch
"${FILESDIR}"/${PN}-vk-headers.patch
+ "${FILESDIR}"/${PN}-binutils-2.41.patch
"${FILESDIR}"/chromium.patch
)
@@ -166,7 +167,7 @@ src_configure() {
# LTO support, bug #566282, bug #754654
is-flagq "-flto*" && myconf+=( "--enable-lto" )
- filter-flags "-flto*"
+ filter-lto
# Mandatory configuration
myconf=(
@@ -183,9 +184,6 @@ src_configure() {
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 )
;;
diff --git a/media-video/ffmpeg-chromium/ffmpeg-chromium-106.ebuild b/media-video/ffmpeg-chromium/ffmpeg-chromium-106.ebuild
index 61f550be5940..a25fa2fc9cdb 100644
--- a/media-video/ffmpeg-chromium/ffmpeg-chromium-106.ebuild
+++ b/media-video/ffmpeg-chromium/ffmpeg-chromium-106.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -114,6 +114,7 @@ RESTRICT="
PATCHES=(
"${FILESDIR}"/${PN}-100.patch
"${FILESDIR}"/${PN}-vk-headers.patch
+ "${FILESDIR}"/${PN}-binutils-2.41.patch
"${FILESDIR}"/chromium.patch
)
@@ -181,9 +182,6 @@ src_configure() {
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 )
;;
diff --git a/media-video/ffmpeg-chromium/ffmpeg-chromium-114.ebuild b/media-video/ffmpeg-chromium/ffmpeg-chromium-114.ebuild
new file mode 100644
index 000000000000..da89ecc4a215
--- /dev/null
+++ b/media-video/ffmpeg-chromium/ffmpeg-chromium-114.ebuild
@@ -0,0 +1,234 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit flag-o-matic toolchain-funcs
+
+COMMIT="842ef367665edee29efa2b09f7298fa5ecabe8b5"
+DESCRIPTION="FFmpeg built specifically for codec support in Chromium-based browsers"
+HOMEPAGE="https://ffmpeg.org/"
+SRC_URI="https://dev.gentoo.org/~chewi/distfiles/${P}.tar.xz"
+
+SLOT="${PV}"
+LICENSE="
+ !gpl? ( LGPL-2.1 )
+ gpl? ( GPL-2 )
+"
+
+KEYWORDS="amd64 ~arm ~arm64"
+
+# 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=(
+ cpudetection:runtime-cpudetect debug
+ +gpl
+ vaapi vdpau vulkan
+ # decoders
+ mmal +opus:libopus
+ nvenc:ffnvcodec
+ # Threads; we only support pthread for now but ffmpeg supports more
+ +threads:pthreads
+)
+
+IUSE="
+ ${FFMPEG_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 )
+"
+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[@]}
+ ${X86_CPU_FEATURES[@]}
+)
+IUSE="${IUSE}
+ ${CPU_FEATURES_MAP[@]%:*}"
+
+CPU_REQUIRED_USE="
+ ${ARM_CPU_REQUIRED_USE}
+ ${X86_CPU_REQUIRED_USE}
+"
+
+RDEPEND="
+ mmal? ( media-libs/raspberrypi-userland )
+ opus? ( >=media-libs/opus-1.0.2-r2 )
+ vaapi? ( >=media-libs/libva-1.2.1-r1:0= )
+ nvenc? ( >=media-libs/nv-codec-headers-9.1.23.1 )
+ vdpau? ( >=x11-libs/libvdpau-0.7 )
+ vulkan? ( >=media-libs/vulkan-loader-1.2.189:= )
+"
+
+DEPEND="${RDEPEND}
+"
+BDEPEND="
+ >=sys-devel/make-3.81
+ virtual/pkgconfig
+ cpu_flags_x86_mmx? ( || ( >=dev-lang/nasm-2.13 >=dev-lang/yasm-1.3 ) )
+"
+
+REQUIRED_USE="
+ ${CPU_REQUIRED_USE}"
+RESTRICT="
+ test
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-100.patch
+ "${FILESDIR}"/${PN}-binutils-2.41.patch
+ "${FILESDIR}"/chromium.patch
+)
+
+src_prepare() {
+ export revision=git-N-g${COMMIT:0:10}
+ default
+
+ # -fdiagnostics-color=auto gets appended after user flags which
+ # will ignore user's preference.
+ sed -i -e '/check_cflags -fdiagnostics-color=auto/d' configure || die
+
+ echo 'include $(SRC_PATH)/ffbuild/libffmpeg.mak' >> Makefile || die
+}
+
+src_configure() {
+ local myconf=( )
+
+ # bug 842201
+ use ia64 && tc-is-gcc && append-flags \
+ -fno-tree-ccp \
+ -fno-tree-dominator-opts \
+ -fno-tree-fre \
+ -fno-code-hoisting \
+ -fno-tree-pre \
+ -fno-tree-vrp
+
+ local ffuse=( "${FFMPEG_FLAG_MAP[@]}" )
+
+ for i in "${ffuse[@]#+}" ; do
+ myconf+=( $(use_enable ${i%:*} ${i#*:}) )
+ done
+
+ # CPU features
+ for i in "${CPU_FEATURES_MAP[@]}" ; do
+ use ${i%:*} || myconf+=( --disable-${i#*:} )
+ done
+
+ # 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, bug #772854
+ is-flagq "-flto*" && myconf+=( "--enable-lto" )
+ filter-lto
+
+ # Mandatory configuration
+ myconf=(
+ --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
+ *mingw32*)
+ myconf+=( --target-os=mingw32 )
+ ;;
+ *linux*)
+ myconf+=( --target-os=linux )
+ ;;
+ esac
+ fi
+
+ # Use --extra-libs if needed for LIBS
+ set -- "${S}/configure" \
+ --prefix="${EPREFIX}/usr" \
+ --libdir="${EPREFIX}/usr/$(get_libdir)" \
+ --shlibdir="${EPREFIX}/usr/$(get_libdir)" \
+ --cc="$(tc-getCC)" \
+ --cxx="$(tc-getCXX)" \
+ --ar="$(tc-getAR)" \
+ --nm="$(tc-getNM)" \
+ --strip="$(tc-getSTRIP)" \
+ --ranlib="$(tc-getRANLIB)" \
+ --pkg-config="$(tc-getPKG_CONFIG)" \
+ --optflags="${CFLAGS}" \
+ --disable-all \
+ --disable-autodetect \
+ --disable-error-resilience \
+ --disable-everything \
+ --disable-faan \
+ --disable-iconv \
+ --disable-network \
+ --enable-avcodec \
+ --enable-avformat \
+ --enable-avutil \
+ --enable-decoder=aac,flac,h264,libopus,mp3,pcm_alaw,pcm_f32le,pcm_mulaw,pcm_s16be,pcm_s16le,pcm_s24be,pcm_s24le,pcm_s32le,pcm_u8,theora,vorbis,vp8 \
+ --enable-demuxer=aac,flac,matroska,mov,mp3,ogg,wav \
+ --enable-parser=aac,flac,h264,mpegaudio,opus,vorbis,vp3,vp8,vp9 \
+ --enable-pic \
+ --enable-static \
+ "${myconf[@]}" \
+ ${EXTRA_FFMPEG_CONF}
+
+ echo "${@}"
+ "${@}" || die
+}
+
+src_compile() {
+ emake V=1 libffmpeg
+}
+
+src_install() {
+ emake V=1 DESTDIR="${D}" install-libffmpeg
+}
diff --git a/media-video/ffmpeg-chromium/files/ffmpeg-chromium-binutils-2.41.patch b/media-video/ffmpeg-chromium/files/ffmpeg-chromium-binutils-2.41.patch
new file mode 100644
index 000000000000..81d544625919
--- /dev/null
+++ b/media-video/ffmpeg-chromium/files/ffmpeg-chromium-binutils-2.41.patch
@@ -0,0 +1,77 @@
+https://bugs.gentoo.org/911582
+https://bugs.gentoo.org/911839
+https://trac.ffmpeg.org/ticket/10405
+https://git.videolan.org/?p=ffmpeg.git;a=commit;h=25cd95a9dc3510c3cc0d7aad6f9d83f6a1078c7e
+https://sourceware.org/PR30578
+https://gcc.gnu.org/PR108941
+
+From 25cd95a9dc3510c3cc0d7aad6f9d83f6a1078c7e Mon Sep 17 00:00:00 2001
+From: =?utf8?q?R=C3=A9mi=20Denis-Courmont?= <remi@remlab.net>
+Date: Sun, 16 Jul 2023 18:18:02 +0300
+Subject: [PATCH] avcodec/x86/mathops: clip constants used with shift
+ instructions within inline assembly
+
+Fixes assembling with binutil as >= 2.41
+
+Signed-off-by: James Almer <jamrial@gmail.com>
+(cherry picked from commit effadce6c756247ea8bae32dc13bb3e6f464f0eb)
+--- a/libavcodec/x86/mathops.h
++++ b/libavcodec/x86/mathops.h
+@@ -35,12 +35,20 @@
+ static av_always_inline av_const int MULL(int a, int b, unsigned shift)
+ {
+ int rt, dummy;
++ if (__builtin_constant_p(shift))
+ __asm__ (
+ "imull %3 \n\t"
+ "shrdl %4, %%edx, %%eax \n\t"
+ :"=a"(rt), "=d"(dummy)
+- :"a"(a), "rm"(b), "ci"((uint8_t)shift)
++ :"a"(a), "rm"(b), "i"(shift & 0x1F)
+ );
++ else
++ __asm__ (
++ "imull %3 \n\t"
++ "shrdl %4, %%edx, %%eax \n\t"
++ :"=a"(rt), "=d"(dummy)
++ :"a"(a), "rm"(b), "c"((uint8_t)shift)
++ );
+ return rt;
+ }
+
+@@ -113,19 +121,31 @@ __asm__ volatile(\
+ // avoid +32 for shift optimization (gcc should do that ...)
+ #define NEG_SSR32 NEG_SSR32
+ static inline int32_t NEG_SSR32( int32_t a, int8_t s){
++ if (__builtin_constant_p(s))
+ __asm__ ("sarl %1, %0\n\t"
+ : "+r" (a)
+- : "ic" ((uint8_t)(-s))
++ : "i" (-s & 0x1F)
+ );
++ else
++ __asm__ ("sarl %1, %0\n\t"
++ : "+r" (a)
++ : "c" ((uint8_t)(-s))
++ );
+ return a;
+ }
+
+ #define NEG_USR32 NEG_USR32
+ static inline uint32_t NEG_USR32(uint32_t a, int8_t s){
++ if (__builtin_constant_p(s))
+ __asm__ ("shrl %1, %0\n\t"
+ : "+r" (a)
+- : "ic" ((uint8_t)(-s))
++ : "i" (-s & 0x1F)
+ );
++ else
++ __asm__ ("shrl %1, %0\n\t"
++ : "+r" (a)
++ : "c" ((uint8_t)(-s))
++ );
+ return a;
+ }
+
+--
+2.30.2
diff --git a/media-video/ffmpeg-chromium/metadata.xml b/media-video/ffmpeg-chromium/metadata.xml
index 5e0aeba3b15e..1d15ec93bf0f 100644
--- a/media-video/ffmpeg-chromium/metadata.xml
+++ b/media-video/ffmpeg-chromium/metadata.xml
@@ -9,6 +9,5 @@
<flag name="cpudetection">Enables runtime CPU detection (useful for bindist, compatibility on other CPUs)</flag>
<flag name="gpl">Build GPL code. Should be enabled unless you require LGPL binaries.</flag>
<flag name="mmal">Enables Multi-Media Abstraction Layer (MMAL) decoding support: Available e.g. on the Raspberry Pi.</flag>
- <flag name="vulkan">Enables support for the vulkan API for GPU offload.</flag>
</use>
</pkgmetadata>
diff --git a/media-video/ffmpeg/Manifest b/media-video/ffmpeg/Manifest
index 5343790a686c..59d50e6b6b7f 100644
--- a/media-video/ffmpeg/Manifest
+++ b/media-video/ffmpeg/Manifest
@@ -1,10 +1,6 @@
-DIST ffmpeg-4.2.2-ppc64-altivec.patch.gz 7171 BLAKE2B 6676dadb22d2ab4b0f5c19b418448c5b9b54fd8c803c3f0ab517c6fa7990be08098dd6f6a2b1b3e77a1bed31a069c702366aba79ef9141ff9e23cd8c1b6e2885 SHA512 6653975017de3f7bde420860419fbdddb50ae41dbb811b819f4b5b13807bf885a4c01736f05a684515f97b0d63bd8896d5951a3276af90cc74abfe32dc2e2407
-DIST ffmpeg-4.2.2-ppc64-gcc.patch.gz 750 BLAKE2B 3a9cc7f0135e077c77179a7ca3da917bca3995d99d53b58221b23181a075f330132f83ea90a6110e89f90c7c3b5b2a7837559c5df414d9bd52dbb3ec166b1545 SHA512 701b0635e0819484a31de2062ba52d95ee03883ab56547cd75c3646a9b32bf3ecc7f719690b93f29202cfed0fdeecd26b51b9f3c66e72a999a3e8d9e97389275
-DIST ffmpeg-4.2.7.tar.bz2 10966448 BLAKE2B 91151a3ece19700fbc04f304ebad9f34ffce2de19416992ceccf3a347ab58195f746a0ace0a331cc1f34dafd87e4e8c6467268546b417d3f58a1cbbe41662807 SHA512 ab57fc370005d8f33eed2e0f18ac4f418372f47f03d43566c52f9ffc70de27e6ec1ba49faf6e3356fd8a495cff40a8073f8d85a625f6ee21bd7018e19b31734f
-DIST ffmpeg-4.2.8.tar.xz 9118672 BLAKE2B 7631bac87db7ce046a93c45422f0ffdc2929d9bb71798125dc403872b27f758015a5b0856e2b73edd47cbea2f3b3f6d94787f7d99846c9783826bd42b58b227a SHA512 40c3c0a2b9853220ad48ea7d9b6e6238238d8f914b1a845aa2be0961d88f5602daab79ca38dd21215077649bbd6967c9e9d9a993831a6735f3a00ae6b798c65f
-DIST ffmpeg-4.4.3.tar.xz 9566020 BLAKE2B a8b62a37151173f90821b876cf51e6819eb5519d7fb1f47b55b5f3003cb0e3d18d43c9482d70e32ef2bb6f5c6310260ec2c04ee997aad5ef687d598d838e9bc9 SHA512 0b232b66555237ed1a061807f88dbc5e6cd156e604c5d611bb6ac0c32b9006414cc4f30d632b482d9cb95f526df98b36efa3af9c863c52e7b7aa1a183545d915
-DIST ffmpeg-4.4.3.tar.xz.asc 520 BLAKE2B 999785516beb913d246d5f9de6e189ee644d0dba07f64ac90cbec91961ca181e5d6b95d9e097c362a76b543e3498672b1458edd68c23a86c3123ffc8e6c5ff2b SHA512 347abc8d75f4447296d8f6105b188a187daac158fbd972dc157b8a3597919519c20b8f649b7460df4e9aea249d74c6287e35bc389cc99ae5629490a36b345557
-DIST ffmpeg-5.1.2.tar.xz 10004956 BLAKE2B 4e2682f040205e6344ff1f2cf8ac69c35cac90a14634a2cd4b41fffc0e09264586b014327f7e9cb6417d12210894cdbc180541c07ad02e782bdf79af9f22991f SHA512 04d9ae2a0e9238c469941d2bb9929d59b58f4be3830846cf91b02a440da17803a04b147a4e0168c9ffd6f62ca82187508bc7b53255de9787a97168278e903b9b
-DIST ffmpeg-5.1.2.tar.xz.asc 520 BLAKE2B 57573afa9157e842efc6a22185aab133e5b5bd461c55d63bbb8b218e99f05fb17f4a679ee9e22c14060205894d7e71f011df7b0ceae15be4c7f5980cff739b32 SHA512 6afc898e3898a7d34e21f0f0bd0553765a46257332c6ece6226e3e043b842275a8d885b9ccca34bc90a2f008ae5fa14515276d23f921a518a63a47f6504af115
+DIST ffmpeg-4.4.4.tar.xz 9565584 BLAKE2B 8cd76a91ae6e485e56c6e5ae7b31d678e2fc2d634b1c56240619a4b6924dae4ec7adb445932bf4455f409dbc03fdc6d52b4fc270da55393e329ccd3d129f5770 SHA512 253799eccd129dad331db85def5352178ae22303e42af47fc013a6adfd4b60d1e59ff5f9ac6118fe3b403affa56ea1f3ba658042f526a914fba27050c3065daf
+DIST ffmpeg-4.4.4.tar.xz.asc 520 BLAKE2B c8bf944883e375555b6dd69029fe863c23f68a3584d84aa3e9c4278ae45aee0bfa3697cc1d8a768b95a1ebd7a9cb91553671072f88f46f6a9c947faa74344a44 SHA512 47afa042d8b529d0bfce391455a25cda261f39f8510601d7de2aba6398483ecb623992626e8489aa2a636e3cb93008f26b32080e526143254226d4e2651accea
+DIST ffmpeg-5.1.3.tar.xz 10007756 BLAKE2B 033dddac096d5dbbfadcf1af51fd1e93d222af1ec6ce7c36000c6a02cf9413288c7fcc7316d450926c60ea9e41935555cc66ee004130836816ada5d5833375c7 SHA512 4310f27fe0c7b4363207e1535115e0ad266a45772bdb5445f5c8658f35b0f3216d8f2cf70d1d2baa71b12069fbdccf418a774b353ddf092d4f66829ef391508a
+DIST ffmpeg-5.1.3.tar.xz.asc 520 BLAKE2B 09d7ff694a2fc61a00443b90f905bb771c3fb7244a154bbe289fe98a4520202a8066bff593ef0142d8d7387a75d4e4dc68e553fbeba98d0fdd51881f28a54623 SHA512 a7348205ef6648e5c73c32fbe99b8130256d1157d1a7c128701b240e4096ac16778cfcc74a922fe8147e0a137119b8a5fd60f006328454b712eefe154f546318
DIST ffmpeg-6.0.tar.xz 10234012 BLAKE2B c70884911f3a3e40fe87473f241a2a56b303f5abe7f1d7fa797d05e29e00971f98cbf37832c1c3dc5fa949a5beddef05a6ec55ae6668091976ea870ad93c0e8d SHA512 4d0e8f635d5a1633710f30cb3e0a854b6ca3bf85e33a289d1ec7aca2ad55dc4910010bc9cf3f13eee9f6decb9d50a0df6d7aa5a342f308c3868d2730f3a6b980
DIST ffmpeg-6.0.tar.xz.asc 520 BLAKE2B be294d375108b57bca3c687620ce2517c54c99012d82dc7aa1a83d5fe6d5453bd3c8620fdfb743df780cf588983a06a66a458c4e3e454dbe535cbba9da30c48c SHA512 a64cd0f8578fcea4537f5a38634c930d66c8ba4abd3e8e9dcffaeb95c3ad2e754d7bc4fbb5272409d4d32abf8180ef83f7204c6a570b52a37e635efd96cb94ed
diff --git a/media-video/ffmpeg/ffmpeg-4.2.7.ebuild b/media-video/ffmpeg/ffmpeg-4.2.7.ebuild
deleted file mode 100644
index 2b7fed0039c7..000000000000
--- a/media-video/ffmpeg/ffmpeg-4.2.7.ebuild
+++ /dev/null
@@ -1,556 +0,0 @@
-# Copyright 1999-2022 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
- https://dev.gentoo.org/~gyakovlev/distfiles/${PN}-4.2.2-ppc64-altivec.patch.gz
- https://dev.gentoo.org/~gyakovlev/distfiles/${PN}-4.2.2-ppc64-gcc.patch.gz
- "
-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 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
- 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 nvenc: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 snappy:libsnappy theora:libtheora twolame:libtwolame
- wavpack:libwavpack webp:libwebp x264:libx264 x265:libx265 xvid:libxvid
-)
-
-IUSE="
- alsa chromium doc +encode oss pic 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}] )
- 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}] )
- wavpack? ( >=media-sound/wavpack-4.60.1-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 )
- 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[${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}] )
- 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}] )
- truetype? ( >=media-libs/freetype-2.5.0.1:2[${MULTILIB_USEDEP}] )
- vaapi? ( >=media-libs/libva-1.2.1-r1:0=[${MULTILIB_USEDEP}] )
- nvenc? ( >=media-libs/nv-codec-headers-9.0.18.0 )
- 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}] )
- 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 )
- samba? ( gpl )
- encode? (
- x264? ( gpl )
- x265? ( gpl )
- xvid? ( gpl )
- )
-"
-REQUIRED_USE="
- cuda? ( nvenc )
- 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
- "${WORKDIR}"/${PN}-4.2.2-ppc64-gcc.patch # both ppc patches from
- "${WORKDIR}"/${PN}-4.2.2-ppc64-altivec.patch # https://trac.ffmpeg.org/ticket/7861
- "${FILESDIR}"/${PN}-5.0-backport-ranlib-build-fix.patch
- "${FILESDIR}"/${PN}-4.2.7-libsdl2-new-version-scheme.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=( ${EXTRA_FFMPEG_CONF} )
-
- # bug 842201
- use ia64 && tc-is-gcc && append-flags \
- -fno-tree-ccp \
- -fno-tree-dominator-opts \
- -fno-tree-fre \
- -fno-code-hoisting \
- -fno-tree-pre \
- -fno-tree-vrp
-
- 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 ; do
- use ${i} || myconf+=( --disable-indev=${i} )
- done
-
- # Outdevs
- for i in alsa oss ; 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 frei0r 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
- is-flagq "-flto*" && myconf+=( "--enable-lto" )
-
- # 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)
- )
-
- 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)" \
- --strip="$(tc-getSTRIP)" \
- --optflags="${CFLAGS}" \
- $(use_enable static-libs static) \
- "${myconf[@]}"
- 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_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"
-}
-
-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
-}
diff --git a/media-video/ffmpeg/ffmpeg-4.4.3.ebuild b/media-video/ffmpeg/ffmpeg-4.4.4-r3.ebuild
index 1eaa8af96b91..717a0742f97b 100644
--- a/media-video/ffmpeg/ffmpeg-4.4.3.ebuild
+++ b/media-video/ffmpeg/ffmpeg-4.4.4-r3.ebuild
@@ -84,7 +84,7 @@ FFMPEG_FLAG_MAP=(
# 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
+ libaribb24 mmal modplug:libmodplug opus:libopus qsv:libmfx libilbc librtmp ssh:libssh
speex:libspeex srt:libsrt svg:librsvg nvenc:ffnvcodec
vorbis:libvorbis vpx:libvpx zvbi:libzvbi
# libavfilter options
@@ -125,11 +125,16 @@ ARM_CPU_FEATURES=(
)
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_v8? ( cpu_flags_arm_vfpv3 cpu_flags_arm_neon )
+ cpu_flags_arm_neon? (
+ cpu_flags_arm_vfp
+ arm? ( cpu_flags_arm_thumb2 )
+ )
cpu_flags_arm_vfpv3? ( cpu_flags_arm_vfp )
cpu_flags_arm_thumb2? ( cpu_flags_arm_v6 )
- cpu_flags_arm_v6? ( cpu_flags_arm_thumb )
+ cpu_flags_arm_v6? (
+ arm? ( 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 )
@@ -244,6 +249,7 @@ RDEPEND="
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}] )
+ qsv? ( media-libs/intel-mediasdk[${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}] )
@@ -281,8 +287,8 @@ RDEPEND="
"
RDEPEND="${RDEPEND}
- openssl? ( >=dev-libs/openssl-1.0.1h-r2:0=[${MULTILIB_USEDEP}] )
- !openssl? ( gnutls? ( >=net-libs/gnutls-2.12.23-r6:=[${MULTILIB_USEDEP}] ) )
+ openssl? ( >=dev-libs/openssl-1.0.1h-r2:0=[${MULTILIB_USEDEP}] )
+ !openssl? ( gnutls? ( >=net-libs/gnutls-2.12.23-r6:=[${MULTILIB_USEDEP}] ) )
"
DEPEND="${RDEPEND}
@@ -332,8 +338,10 @@ S=${WORKDIR}/${P/_/-}
PATCHES=(
"${FILESDIR}"/chromium-r1.patch
"${FILESDIR}"/${PN}-5.0-backport-ranlib-build-fix.patch
- "${FILESDIR}"/${P}-clang-14-ff_seek_frame_binary-crash.patch
+ "${FILESDIR}"/${PN}-4.4.3-clang-14-ff_seek_frame_binary-crash.patch
"${FILESDIR}"/${PN}-4.4.3-get_cabac_inline_x86-32-bit.patch
+ "${FILESDIR}"/${PN}-4.4.4-wint-conversion-vulkan.patch
+ "${FILESDIR}"/${P}-fix-build-svt-av1-1.5.0.patch
)
MULTILIB_WRAPPED_HEADERS=(
@@ -479,9 +487,6 @@ multilib_src_configure() {
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 )
;;
@@ -594,5 +599,5 @@ multilib_src_install_all() {
dodoc Changelog README.md CREDITS doc/*.txt doc/APIchanges
[ -f "RELEASE_NOTES" ] && dodoc "RELEASE_NOTES"
- use amf && doenvd "${FILESDIR}"/amf-env-vulkan-override
+ use amf && newenvd "${FILESDIR}"/amf-env-vulkan-override 99amf-env-vulkan-override
}
diff --git a/media-video/ffmpeg/ffmpeg-4.2.8.ebuild b/media-video/ffmpeg/ffmpeg-4.4.4-r4.ebuild
index 3220df12b949..bcd93c69c858 100644
--- a/media-video/ffmpeg/ffmpeg-4.2.8.ebuild
+++ b/media-video/ffmpeg/ffmpeg-4.4.4-r4.ebuild
@@ -1,7 +1,7 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
# Subslot: libavutil major.libavcodec major.libavformat major
# Since FFmpeg ships several libraries, subslot is kind of limited here.
@@ -30,10 +30,12 @@ if [ "${PV#9999}" != "${PV}" ] ; then
elif [ "${PV%_p*}" != "${PV}" ] ; then # Snapshot
SRC_URI="mirror://gentoo/${P}.tar.xz"
else # Release
- SRC_URI="https://ffmpeg.org/releases/${P/_/-}.tar.xz
- https://dev.gentoo.org/~gyakovlev/distfiles/${PN}-4.2.2-ppc64-altivec.patch.gz
- https://dev.gentoo.org/~gyakovlev/distfiles/${PN}-4.2.2-ppc64-gcc.patch.gz
- "
+ VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/ffmpeg.asc
+ inherit verify-sig
+ SRC_URI="https://ffmpeg.org/releases/${P/_/-}.tar.xz"
+ SRC_URI+=" verify-sig? ( https://ffmpeg.org/releases/${P/_/-}.tar.xz.asc )"
+
+ BDEPEND=" verify-sig? ( sec-keys/openpgp-keys-ffmpeg )"
fi
FFMPEG_REVISION="${PV#*_p}"
@@ -62,7 +64,7 @@ LICENSE="
samba? ( GPL-3 )
"
if [ "${PV#9999}" = "${PV}" ] ; then
- KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 sparc x86 ~amd64-linux ~x86-linux"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos"
fi
# Options to use as use_enable in the foo[:bar] form.
@@ -70,9 +72,9 @@ fi
# 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
+ +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
+ 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
@@ -80,14 +82,14 @@ FFMPEG_FLAG_MAP=(
# indevs
libv4l:libv4l2 pulseaudio:libpulse libdrm jack:libjack
# decoders
- amr:libopencore-amrwb amr:libopencore-amrnb codec2:libcodec2 dav1d:libdav1d fdk:libfdk-aac
+ 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
+ libaribb24 mmal modplug:libmodplug opus:libopus qsv:libmfx libilbc librtmp ssh:libssh
speex:libspeex srt:libsrt svg:librsvg nvenc:ffnvcodec
vorbis:libvorbis vpx:libvpx zvbi:libzvbi
# libavfilter options
appkit
- bs2b:libbs2b chromaprint cuda:cuda-llvm flite:libflite frei0r
+ bs2b:libbs2b chromaprint cuda:cuda-llvm flite:libflite frei0r vmaf:libvmaf
fribidi:libfribidi fontconfig ladspa libass libtesseract lv2 truetype:libfreetype vidstab:libvidstab
rubberband:librubberband zeromq:libzmq zimg:libzimg
# libswresample options
@@ -98,14 +100,14 @@ FFMPEG_FLAG_MAP=(
# 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 snappy:libsnappy theora:libtheora twolame:libtwolame
- wavpack:libwavpack webp:libwebp x264:libx264 x265:libx265 xvid:libxvid
+ amf amrenc:libvo-amrwbenc kvazaar:libkvazaar libaom mp3:libmp3lame
+ openh264:libopenh264 rav1e:librav1e snappy:libsnappy svt-av1:libsvtav1
+ theora:libtheora twolame:libtwolame webp:libwebp x264:libx264
+ x265:libx265 xvid:libxvid
)
IUSE="
- alsa chromium doc +encode oss pic static-libs test v4l
+ alsa chromium doc +encode oss pic sndio static-libs test v4l
${FFMPEG_FLAG_MAP[@]%:*}
${FFMPEG_ENCODER_FLAG_MAP[@]%:*}
"
@@ -123,11 +125,16 @@ ARM_CPU_FEATURES=(
)
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_v8? ( cpu_flags_arm_vfpv3 cpu_flags_arm_neon )
+ cpu_flags_arm_neon? (
+ cpu_flags_arm_vfp
+ arm? ( cpu_flags_arm_thumb2 )
+ )
cpu_flags_arm_vfpv3? ( cpu_flags_arm_vfp )
cpu_flags_arm_thumb2? ( cpu_flags_arm_v6 )
- cpu_flags_arm_v6? ( cpu_flags_arm_thumb )
+ cpu_flags_arm_v6? (
+ arm? ( 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 )
@@ -175,6 +182,7 @@ IUSE="${IUSE} ${FFTOOLS[@]/#/+fftools_}"
RDEPEND="
alsa? ( >=media-libs/alsa-lib-1.0.27.2[${MULTILIB_USEDEP}] )
+ amf? ( media-video/amdgpu-pro-amf )
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}] )
@@ -187,14 +195,14 @@ RDEPEND="
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}] )
+ 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}]
+ >=media-libs/libtheora-1.1.1[encode,${MULTILIB_USEDEP}]
)
twolame? ( >=media-sound/twolame-0.3.13-r1[${MULTILIB_USEDEP}] )
- wavpack? ( >=media-sound/wavpack-4.60.1-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}] )
@@ -203,7 +211,7 @@ RDEPEND="
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 )
+ 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}] )
@@ -216,7 +224,7 @@ RDEPEND="
>=sys-libs/libavc1394-0.5.4-r1[${MULTILIB_USEDEP}]
)
ieee1394? (
- >=media-libs/libdc1394-2.2.1[${MULTILIB_USEDEP}]
+ >=media-libs/libdc1394-2.2.1:2=[${MULTILIB_USEDEP}]
>=sys-libs/libraw1394-2.1.0-r1[${MULTILIB_USEDEP}]
)
jack? ( virtual/jack[${MULTILIB_USEDEP}] )
@@ -241,46 +249,56 @@ RDEPEND="
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}] )
+ qsv? ( media-libs/intel-mediasdk[${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}] )
+ ssh? ( >=net-libs/libssh-0.5.5:=[sftp,${MULTILIB_USEDEP}] )
+ svg? (
+ gnome-base/librsvg:2=[${MULTILIB_USEDEP}]
+ x11-libs/cairo[${MULTILIB_USEDEP}]
+ )
+ nvenc? ( >=media-libs/nv-codec-headers-9.1.23.1 )
+ svt-av1? ( >=media-libs/svt-av1-0.8.4[${MULTILIB_USEDEP}] )
truetype? ( >=media-libs/freetype-2.5.0.1:2[${MULTILIB_USEDEP}] )
vaapi? ( >=media-libs/libva-1.2.1-r1:0=[${MULTILIB_USEDEP}] )
- nvenc? ( >=media-libs/nv-codec-headers-9.0.18.0 )
vdpau? ( >=x11-libs/libvdpau-0.7[${MULTILIB_USEDEP}] )
vidstab? ( >=media-libs/vidstab-1.1.0[${MULTILIB_USEDEP}] )
+ vmaf? ( media-libs/libvmaf[${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}]
+ >=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}] ) )
+ openssl? ( >=dev-libs/openssl-1.0.1h-r2:0=[${MULTILIB_USEDEP}] )
+ !openssl? ( gnutls? ( >=net-libs/gnutls-2.12.23-r6:=[${MULTILIB_USEDEP}] ) )
"
DEPEND="${RDEPEND}
+ amf? ( media-libs/amf-headers )
ladspa? ( >=media-libs/ladspa-sdk-1.13-r2[${MULTILIB_USEDEP}] )
v4l? ( sys-kernel/linux-headers )
"
-BDEPEND="
+
+# += for verify-sig above
+BDEPEND+="
>=sys-devel/make-3.81
virtual/pkgconfig
cpu_flags_x86_mmx? ( || ( >=dev-lang/nasm-2.13 >=dev-lang/yasm-1.3 ) )
@@ -295,6 +313,7 @@ GPL_REQUIRED_USE="
frei0r? ( gpl )
cdio? ( gpl )
rubberband? ( gpl )
+ vidstab? ( gpl )
samba? ( gpl )
encode? (
x264? ( gpl )
@@ -318,9 +337,12 @@ S=${WORKDIR}/${P/_/-}
PATCHES=(
"${FILESDIR}"/chromium-r1.patch
- "${WORKDIR}"/${PN}-4.2.2-ppc64-gcc.patch # both ppc patches from
- "${WORKDIR}"/${PN}-4.2.2-ppc64-altivec.patch # https://trac.ffmpeg.org/ticket/7861
"${FILESDIR}"/${PN}-5.0-backport-ranlib-build-fix.patch
+ "${FILESDIR}"/${PN}-4.4.3-clang-14-ff_seek_frame_binary-crash.patch
+ "${FILESDIR}"/${PN}-4.4.3-get_cabac_inline_x86-32-bit.patch
+ "${FILESDIR}"/${PN}-4.4.4-wint-conversion-vulkan.patch
+ "${FILESDIR}"/${P}-fix-build-svt-av1-1.5.0.patch
+ "${FILESDIR}"/${PN}-5.1.3-binutils-2.41.patch
)
MULTILIB_WRAPPED_HEADERS=(
@@ -331,16 +353,38 @@ build_separate_libffmpeg() {
use opencl
}
+pkg_setup() {
+ # ffmpeg[chromaprint] depends on chromaprint, and chromaprint[tools] depends on ffmpeg.
+ # May cause breakage while updating, #862996, #625210, #833821.
+ if has_version media-libs/chromaprint[tools] && use chromaprint; then
+ ewarn "You have media-libs/chromaprint installed with 'tools' USE flag, which "
+ ewarn "links to ffmpeg, and you have enabled 'chromaprint' USE flag for ffmpeg, "
+ ewarn "which links to chromaprint. This may cause issues while rebuilding ffmpeg."
+ ewarn ""
+ ewarn "If your build fails to 'ERROR: chromaprint not found', rebuild chromaprint "
+ ewarn "without the 'tools' use flag first, then rebuild ffmpeg, and then finally enable "
+ ewarn "'tools' USE flag for chromaprint. See #862996."
+ fi
+}
+
src_prepare() {
if [[ "${PV%_p*}" != "${PV}" ]] ; then # Snapshot
export revision=git-N-${FFMPEG_REVISION}
fi
+
+ eapply "${FILESDIR}/vmaf-models-default-path.patch"
+
default
+
+ # -fdiagnostics-color=auto gets appended after user flags which
+ # will ignore user's preference.
+ sed -i -e '/check_cflags -fdiagnostics-color=auto/d' configure || die
+
echo 'include $(SRC_PATH)/ffbuild/libffmpeg.mak' >> Makefile || die
}
multilib_src_configure() {
- local myconf=( ${EXTRA_FFMPEG_CONF} )
+ local myconf=( )
# bug 842201
use ia64 && tc-is-gcc && append-flags \
@@ -369,12 +413,12 @@ multilib_src_configure() {
# Indevs
use v4l || myconf+=( --disable-indev=v4l2 --disable-outdev=v4l2 )
- for i in alsa oss jack ; do
+ for i in alsa oss jack sndio ; do
use ${i} || myconf+=( --disable-indev=${i} )
done
# Outdevs
- for i in alsa oss ; do
+ for i in alsa oss sndio ; do
use ${i} || myconf+=( --disable-outdev=${i} )
done
@@ -394,7 +438,7 @@ multilib_src_configure() {
# (temporarily) disable non-multilib deps
if ! multilib_is_native_abi; then
- for i in frei0r libzmq ; do
+ for i in librav1e libzmq ; do
myconf+=( --disable-${i} )
done
fi
@@ -423,8 +467,9 @@ multilib_src_configure() {
break
done
- # LTO support, bug #566282
- is-flagq "-flto*" && myconf+=( "--enable-lto" )
+ # LTO support, bug #566282, bug #754654, bug #772854
+ [[ ${ABI} != x86 ]] && is-flagq "-flto*" && myconf+=( "--enable-lto" )
+ filter-lto
# Mandatory configuration
myconf=(
@@ -443,9 +488,6 @@ multilib_src_configure() {
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 )
;;
@@ -462,6 +504,7 @@ multilib_src_configure() {
$(multilib_native_enable manpages)
)
+ # Use --extra-libs if needed for LIBS
set -- "${S}/configure" \
--prefix="${EPREFIX}/usr" \
--libdir="${EPREFIX}/usr/$(get_libdir)" \
@@ -472,10 +515,14 @@ multilib_src_configure() {
--cc="$(tc-getCC)" \
--cxx="$(tc-getCXX)" \
--ar="$(tc-getAR)" \
+ --nm="$(tc-getNM)" \
--strip="$(tc-getSTRIP)" \
+ --ranlib="$(tc-getRANLIB)" \
+ --pkg-config="$(tc-getPKG_CONFIG)" \
--optflags="${CFLAGS}" \
$(use_enable static-libs static) \
- "${myconf[@]}"
+ "${myconf[@]}" \
+ ${EXTRA_FFMPEG_CONF}
echo "${@}"
"${@}" || die
@@ -517,6 +564,11 @@ multilib_src_compile() {
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
@@ -547,9 +599,6 @@ multilib_src_install() {
multilib_src_install_all() {
dodoc Changelog README.md CREDITS doc/*.txt doc/APIchanges
[ -f "RELEASE_NOTES" ] && dodoc "RELEASE_NOTES"
-}
-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
+ use amf && newenvd "${FILESDIR}"/amf-env-vulkan-override 99amf-env-vulkan-override
}
diff --git a/media-video/ffmpeg/ffmpeg-5.1.2-r2.ebuild b/media-video/ffmpeg/ffmpeg-5.1.3-r3.ebuild
index cc4189424afc..8c290006f1db 100644
--- a/media-video/ffmpeg/ffmpeg-5.1.2-r2.ebuild
+++ b/media-video/ffmpeg/ffmpeg-5.1.3-r3.ebuild
@@ -64,7 +64,7 @@ LICENSE="
samba? ( GPL-3 )
"
if [ "${PV#9999}" = "${PV}" ] ; then
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
fi
# Options to use as use_enable in the foo[:bar] form.
@@ -126,11 +126,16 @@ ARM_CPU_FEATURES=(
)
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_v8? ( cpu_flags_arm_vfpv3 cpu_flags_arm_neon )
+ cpu_flags_arm_neon? (
+ cpu_flags_arm_vfp
+ arm? ( cpu_flags_arm_thumb2 )
+ )
cpu_flags_arm_vfpv3? ( cpu_flags_arm_vfp )
cpu_flags_arm_thumb2? ( cpu_flags_arm_v6 )
- cpu_flags_arm_v6? ( cpu_flags_arm_thumb )
+ cpu_flags_arm_v6? (
+ arm? ( 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 )
@@ -233,7 +238,7 @@ RDEPEND="
libcaca? ( >=media-libs/libcaca-0.99_beta18-r1[${MULTILIB_USEDEP}] )
libdrm? ( x11-libs/libdrm[${MULTILIB_USEDEP}] )
libilbc? ( >=media-libs/libilbc-2[${MULTILIB_USEDEP}] )
- libplacebo? ( >=media-libs/libplacebo-4.192.0[$MULTILIB_USEDEP] )
+ libplacebo? ( >=media-libs/libplacebo-4.192.0:=[$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}] )
@@ -286,8 +291,8 @@ RDEPEND="
"
RDEPEND="${RDEPEND}
- openssl? ( >=dev-libs/openssl-1.0.1h-r2:0=[${MULTILIB_USEDEP}] )
- !openssl? ( gnutls? ( >=net-libs/gnutls-2.12.23-r6:=[${MULTILIB_USEDEP}] ) )
+ openssl? ( >=dev-libs/openssl-1.0.1h-r2:0=[${MULTILIB_USEDEP}] )
+ !openssl? ( gnutls? ( >=net-libs/gnutls-2.12.23-r6:=[${MULTILIB_USEDEP}] ) )
"
DEPEND="${RDEPEND}
@@ -336,8 +341,9 @@ S=${WORKDIR}/${P/_/-}
PATCHES=(
"${FILESDIR}"/chromium-r1.patch
- "${FILESDIR}"/${P}-vulkan.patch
"${FILESDIR}"/${PN}-5.1.2-get_cabac_inline_x86-32-bit.patch
+ "${FILESDIR}"/${P}-fix-build-svt-av1-1.5.0.patch
+ "${FILESDIR}"/${P}-svt-av1.patch
)
MULTILIB_WRAPPED_HEADERS=(
@@ -481,9 +487,6 @@ multilib_src_configure() {
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 )
;;
@@ -596,5 +599,5 @@ multilib_src_install_all() {
dodoc Changelog README.md CREDITS doc/*.txt doc/APIchanges
[ -f "RELEASE_NOTES" ] && dodoc "RELEASE_NOTES"
- use amf && doenvd "${FILESDIR}"/amf-env-vulkan-override
+ use amf && newenvd "${FILESDIR}"/amf-env-vulkan-override 99amf-env-vulkan-override
}
diff --git a/media-video/ffmpeg/ffmpeg-5.1.3-r4.ebuild b/media-video/ffmpeg/ffmpeg-5.1.3-r4.ebuild
new file mode 100644
index 000000000000..b6e43feb919a
--- /dev/null
+++ b/media-video/ffmpeg/ffmpeg-5.1.3-r4.ebuild
@@ -0,0 +1,604 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# 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=57.59.59
+
+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.xz"
+else # Release
+ VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/ffmpeg.asc
+ inherit verify-sig
+ SRC_URI="https://ffmpeg.org/releases/${P/_/-}.tar.xz"
+ SRC_URI+=" verify-sig? ( https://ffmpeg.org/releases/${P/_/-}.tar.xz.asc )"
+
+ BDEPEND=" verify-sig? ( sec-keys/openpgp-keys-ffmpeg )"
+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 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
+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 jpegxl:libjxl bluray:libbluray gme:libgme gsm:libgsm
+ libaribb24 mmal modplug:libmodplug opus:libopus qsv:libmfx libilbc librtmp ssh:libssh
+ speex:libspeex srt:libsrt svg:librsvg nvenc:ffnvcodec
+ vorbis:libvorbis vpx:libvpx zvbi:libzvbi
+ # libavfilter options
+ appkit
+ bs2b:libbs2b chromaprint cuda:cuda-llvm flite:libflite frei0r vmaf:libvmaf
+ fribidi:libfribidi fontconfig ladspa lcms:lcms2 libass libplacebo 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=(
+ amf amrenc:libvo-amrwbenc kvazaar:libkvazaar libaom mp3:libmp3lame
+ openh264:libopenh264 rav1e:librav1e snappy:libsnappy svt-av1:libsvtav1
+ 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_vfp
+ arm? ( cpu_flags_arm_thumb2 )
+ )
+ cpu_flags_arm_vfpv3? ( cpu_flags_arm_vfp )
+ cpu_flags_arm_thumb2? ( cpu_flags_arm_v6 )
+ cpu_flags_arm_v6? (
+ arm? ( 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}] )
+ amf? ( media-video/amdgpu-pro-amf )
+ 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/libogg-1.3.0[${MULTILIB_USEDEP}]
+ >=media-libs/libtheora-1.1.1[encode,${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}] )
+ jpegxl? ( >=media-libs/libjxl-0.7.0[$MULTILIB_USEDEP] )
+ lcms? ( >=media-libs/lcms-2.13: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.11.0:=[${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}] )
+ libplacebo? ( >=media-libs/libplacebo-4.192.0:=[$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}] )
+ qsv? ( media-libs/intel-mediasdk[${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:=[sftp,${MULTILIB_USEDEP}] )
+ svg? (
+ gnome-base/librsvg:2=[${MULTILIB_USEDEP}]
+ x11-libs/cairo[${MULTILIB_USEDEP}]
+ )
+ nvenc? ( >=media-libs/nv-codec-headers-9.1.23.1 )
+ svt-av1? ( >=media-libs/svt-av1-0.9.0[${MULTILIB_USEDEP}] )
+ truetype? ( >=media-libs/freetype-2.5.0.1:2[${MULTILIB_USEDEP}] )
+ vaapi? ( >=media-libs/libva-1.2.1-r1:0=[${MULTILIB_USEDEP}] )
+ vdpau? ( >=x11-libs/libvdpau-0.7[${MULTILIB_USEDEP}] )
+ vidstab? ( >=media-libs/vidstab-1.1.0[${MULTILIB_USEDEP}] )
+ vmaf? ( >=media-libs/libvmaf-2.0.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.2.189:=[${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}] )
+"
+
+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}
+ amf? ( media-libs/amf-headers )
+ ladspa? ( >=media-libs/ladspa-sdk-1.13-r2[${MULTILIB_USEDEP}] )
+ v4l? ( sys-kernel/linux-headers )
+"
+
+# += for verify-sig above
+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? ( nvenc )
+ 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
+ "${FILESDIR}"/${PN}-5.1.2-get_cabac_inline_x86-32-bit.patch
+ "${FILESDIR}"/${P}-fix-build-svt-av1-1.5.0.patch
+ "${FILESDIR}"/${P}-svt-av1.patch
+ "${FILESDIR}"/${P}-binutils-2.41.patch
+)
+
+MULTILIB_WRAPPED_HEADERS=(
+ /usr/include/libavutil/avconfig.h
+)
+
+build_separate_libffmpeg() {
+ use opencl
+}
+
+pkg_setup() {
+ # ffmpeg[chromaprint] depends on chromaprint, and chromaprint[tools] depends on ffmpeg.
+ # May cause breakage while updating, #862996, #625210, #833821.
+ if has_version media-libs/chromaprint[tools] && use chromaprint; then
+ ewarn "You have media-libs/chromaprint installed with 'tools' USE flag, which "
+ ewarn "links to ffmpeg, and you have enabled 'chromaprint' USE flag for ffmpeg, "
+ ewarn "which links to chromaprint. This may cause issues while rebuilding ffmpeg."
+ ewarn ""
+ ewarn "If your build fails to 'ERROR: chromaprint not found', rebuild chromaprint "
+ ewarn "without the 'tools' use flag first, then rebuild ffmpeg, and then finally enable "
+ ewarn "'tools' USE flag for chromaprint. See #862996."
+ fi
+}
+
+src_prepare() {
+ if [[ "${PV%_p*}" != "${PV}" ]] ; then # Snapshot
+ export revision=git-N-${FFMPEG_REVISION}
+ fi
+
+ default
+
+ # -fdiagnostics-color=auto gets appended after user flags which
+ # will ignore user's preference.
+ sed -i -e '/check_cflags -fdiagnostics-color=auto/d' configure || die
+
+ echo 'include $(SRC_PATH)/ffbuild/libffmpeg.mak' >> Makefile || die
+}
+
+multilib_src_configure() {
+ local myconf=( )
+
+ # bug 842201
+ use ia64 && tc-is-gcc && append-flags \
+ -fno-tree-ccp \
+ -fno-tree-dominator-opts \
+ -fno-tree-fre \
+ -fno-code-hoisting \
+ -fno-tree-pre \
+ -fno-tree-vrp
+
+ 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 )
+ has_version dev-libs/openssl:0/3 && myconf+=( --enable-version3 )
+ 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, bug #772854
+ [[ ${ABI} != x86 ]] && is-flagq "-flto*" && myconf+=( "--enable-lto" )
+ filter-lto
+
+ # Mandatory configuration
+ myconf=(
+ --enable-avfilter
+ --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
+ *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)
+ )
+
+ # Use --extra-libs if needed for LIBS
+ 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)" \
+ --strip="$(tc-getSTRIP)" \
+ --ranlib="$(tc-getRANLIB)" \
+ --pkg-config="$(tc-getPKG_CONFIG)" \
+ --optflags="${CFLAGS}" \
+ $(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" \
+ 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"
+
+ use amf && newenvd "${FILESDIR}"/amf-env-vulkan-override 99amf-env-vulkan-override
+}
diff --git a/media-video/ffmpeg/ffmpeg-6.0-r1.ebuild b/media-video/ffmpeg/ffmpeg-6.0-r2.ebuild
index e9e752819bc1..b872b34e5a38 100644
--- a/media-video/ffmpeg/ffmpeg-6.0-r1.ebuild
+++ b/media-video/ffmpeg/ffmpeg-6.0-r2.ebuild
@@ -64,7 +64,7 @@ LICENSE="
samba? ( GPL-3 )
"
if [ "${PV#9999}" = "${PV}" ] ; then
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
fi
# Options to use as use_enable in the foo[:bar] form.
@@ -126,11 +126,16 @@ ARM_CPU_FEATURES=(
)
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_v8? ( cpu_flags_arm_vfpv3 cpu_flags_arm_neon )
+ cpu_flags_arm_neon? (
+ cpu_flags_arm_vfp
+ arm? ( cpu_flags_arm_thumb2 )
+ )
cpu_flags_arm_vfpv3? ( cpu_flags_arm_vfp )
cpu_flags_arm_thumb2? ( cpu_flags_arm_v6 )
- cpu_flags_arm_v6? ( cpu_flags_arm_thumb )
+ cpu_flags_arm_v6? (
+ arm? ( 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 )
@@ -233,7 +238,7 @@ RDEPEND="
libcaca? ( >=media-libs/libcaca-0.99_beta18-r1[${MULTILIB_USEDEP}] )
libdrm? ( x11-libs/libdrm[${MULTILIB_USEDEP}] )
libilbc? ( >=media-libs/libilbc-2[${MULTILIB_USEDEP}] )
- libplacebo? ( >=media-libs/libplacebo-4.192.0[$MULTILIB_USEDEP] )
+ libplacebo? ( >=media-libs/libplacebo-4.192.0:=[$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}] )
@@ -286,8 +291,8 @@ RDEPEND="
"
RDEPEND="${RDEPEND}
- openssl? ( >=dev-libs/openssl-1.0.1h-r2:0=[${MULTILIB_USEDEP}] )
- !openssl? ( gnutls? ( >=net-libs/gnutls-2.12.23-r6:=[${MULTILIB_USEDEP}] ) )
+ openssl? ( >=dev-libs/openssl-1.0.1h-r2:0=[${MULTILIB_USEDEP}] )
+ !openssl? ( gnutls? ( >=net-libs/gnutls-2.12.23-r6:=[${MULTILIB_USEDEP}] ) )
"
DEPEND="${RDEPEND}
@@ -481,9 +486,6 @@ multilib_src_configure() {
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 )
;;
diff --git a/media-video/ffmpeg/ffmpeg-6.0-r5.ebuild b/media-video/ffmpeg/ffmpeg-6.0-r5.ebuild
new file mode 100644
index 000000000000..646efd85ae1a
--- /dev/null
+++ b/media-video/ffmpeg/ffmpeg-6.0-r5.ebuild
@@ -0,0 +1,604 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# 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=58.60.60
+
+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.xz"
+else # Release
+ VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/ffmpeg.asc
+ inherit verify-sig
+ SRC_URI="https://ffmpeg.org/releases/${P/_/-}.tar.xz"
+ SRC_URI+=" verify-sig? ( https://ffmpeg.org/releases/${P/_/-}.tar.xz.asc )"
+
+ BDEPEND=" verify-sig? ( sec-keys/openpgp-keys-ffmpeg )"
+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 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
+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 jpegxl:libjxl bluray:libbluray gme:libgme gsm:libgsm
+ libaribb24 mmal modplug:libmodplug opus:libopus qsv:libvpl libilbc librtmp ssh:libssh
+ speex:libspeex srt:libsrt svg:librsvg nvenc:ffnvcodec
+ vorbis:libvorbis vpx:libvpx zvbi:libzvbi
+ # libavfilter options
+ appkit
+ bs2b:libbs2b chromaprint cuda:cuda-llvm flite:libflite frei0r vmaf:libvmaf
+ fribidi:libfribidi fontconfig ladspa lcms:lcms2 libass libplacebo 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=(
+ amf amrenc:libvo-amrwbenc kvazaar:libkvazaar libaom mp3:libmp3lame
+ openh264:libopenh264 rav1e:librav1e snappy:libsnappy svt-av1:libsvtav1
+ 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_vfp
+ arm? ( cpu_flags_arm_thumb2 )
+ )
+ cpu_flags_arm_vfpv3? ( cpu_flags_arm_vfp )
+ cpu_flags_arm_thumb2? ( cpu_flags_arm_v6 )
+ cpu_flags_arm_v6? (
+ arm? ( 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}] )
+ amf? ( media-video/amdgpu-pro-amf )
+ 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/libogg-1.3.0[${MULTILIB_USEDEP}]
+ >=media-libs/libtheora-1.1.1[encode,${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}] )
+ jpegxl? ( >=media-libs/libjxl-0.7.0[$MULTILIB_USEDEP] )
+ lcms? ( >=media-libs/lcms-2.13: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.11.0:=[${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}] )
+ libplacebo? ( >=media-libs/libplacebo-4.192.0:=[$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}] )
+ qsv? ( media-libs/oneVPL[${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:=[sftp,${MULTILIB_USEDEP}] )
+ svg? (
+ gnome-base/librsvg:2=[${MULTILIB_USEDEP}]
+ x11-libs/cairo[${MULTILIB_USEDEP}]
+ )
+ nvenc? ( >=media-libs/nv-codec-headers-9.1.23.1 )
+ svt-av1? ( >=media-libs/svt-av1-0.9.0[${MULTILIB_USEDEP}] )
+ truetype? ( >=media-libs/freetype-2.5.0.1:2[${MULTILIB_USEDEP}] )
+ vaapi? ( >=media-libs/libva-1.2.1-r1:0=[${MULTILIB_USEDEP}] )
+ vdpau? ( >=x11-libs/libvdpau-0.7[${MULTILIB_USEDEP}] )
+ vidstab? ( >=media-libs/vidstab-1.1.0[${MULTILIB_USEDEP}] )
+ vmaf? ( >=media-libs/libvmaf-2.0.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.2.189:=[${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}] )
+"
+
+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}
+ amf? ( >=media-libs/amf-headers-1.4.28 )
+ ladspa? ( >=media-libs/ladspa-sdk-1.13-r2[${MULTILIB_USEDEP}] )
+ v4l? ( sys-kernel/linux-headers )
+"
+
+# += for verify-sig above
+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? ( nvenc )
+ 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
+ "${FILESDIR}"/${P}-DECLARE_ALIGNED.patch
+ "${FILESDIR}"/${PN}-5.1.2-get_cabac_inline_x86-32-bit.patch
+ "${FILESDIR}"/${P}-wint-conversion-vulkan.patch
+ "${FILESDIR}"/${P}-libplacebo-remove-deprecated-field.patch
+)
+
+MULTILIB_WRAPPED_HEADERS=(
+ /usr/include/libavutil/avconfig.h
+)
+
+build_separate_libffmpeg() {
+ use opencl
+}
+
+pkg_setup() {
+ # ffmpeg[chromaprint] depends on chromaprint, and chromaprint[tools] depends on ffmpeg.
+ # May cause breakage while updating, #862996, #625210, #833821.
+ if has_version media-libs/chromaprint[tools] && use chromaprint; then
+ ewarn "You have media-libs/chromaprint installed with 'tools' USE flag, which "
+ ewarn "links to ffmpeg, and you have enabled 'chromaprint' USE flag for ffmpeg, "
+ ewarn "which links to chromaprint. This may cause issues while rebuilding ffmpeg."
+ ewarn ""
+ ewarn "If your build fails to 'ERROR: chromaprint not found', rebuild chromaprint "
+ ewarn "without the 'tools' use flag first, then rebuild ffmpeg, and then finally enable "
+ ewarn "'tools' USE flag for chromaprint. See #862996."
+ fi
+}
+
+src_prepare() {
+ if [[ "${PV%_p*}" != "${PV}" ]] ; then # Snapshot
+ export revision=git-N-${FFMPEG_REVISION}
+ fi
+
+ default
+
+ # -fdiagnostics-color=auto gets appended after user flags which
+ # will ignore user's preference.
+ sed -i -e '/check_cflags -fdiagnostics-color=auto/d' configure || die
+
+ echo 'include $(SRC_PATH)/ffbuild/libffmpeg.mak' >> Makefile || die
+}
+
+multilib_src_configure() {
+ local myconf=( )
+
+ # bug 842201
+ use ia64 && tc-is-gcc && append-flags \
+ -fno-tree-ccp \
+ -fno-tree-dominator-opts \
+ -fno-tree-fre \
+ -fno-code-hoisting \
+ -fno-tree-pre \
+ -fno-tree-vrp
+
+ 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 )
+ has_version dev-libs/openssl:0/3 && myconf+=( --enable-version3 )
+ 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, bug #772854
+ [[ ${ABI} != x86 ]] && is-flagq "-flto*" && myconf+=( "--enable-lto" )
+ filter-lto
+
+ # Mandatory configuration
+ myconf=(
+ --enable-avfilter
+ --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
+ *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)
+ )
+
+ # Use --extra-libs if needed for LIBS
+ 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)" \
+ --strip="$(tc-getSTRIP)" \
+ --ranlib="$(tc-getRANLIB)" \
+ --pkg-config="$(tc-getPKG_CONFIG)" \
+ --optflags="${CFLAGS}" \
+ $(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" \
+ 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"
+
+ use amf && newenvd "${FILESDIR}"/amf-env-vulkan-override 99amf-env-vulkan-override
+}
diff --git a/media-video/ffmpeg/ffmpeg-6.0-r6.ebuild b/media-video/ffmpeg/ffmpeg-6.0-r6.ebuild
new file mode 100644
index 000000000000..b62d5e8abe3d
--- /dev/null
+++ b/media-video/ffmpeg/ffmpeg-6.0-r6.ebuild
@@ -0,0 +1,605 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# 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=58.60.60
+
+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.xz"
+else # Release
+ VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/ffmpeg.asc
+ inherit verify-sig
+ SRC_URI="https://ffmpeg.org/releases/${P/_/-}.tar.xz"
+ SRC_URI+=" verify-sig? ( https://ffmpeg.org/releases/${P/_/-}.tar.xz.asc )"
+
+ BDEPEND=" verify-sig? ( sec-keys/openpgp-keys-ffmpeg )"
+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 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
+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 jpegxl:libjxl bluray:libbluray gme:libgme gsm:libgsm
+ libaribb24 mmal modplug:libmodplug opus:libopus qsv:libvpl libilbc librtmp ssh:libssh
+ speex:libspeex srt:libsrt svg:librsvg nvenc:ffnvcodec
+ vorbis:libvorbis vpx:libvpx zvbi:libzvbi
+ # libavfilter options
+ appkit
+ bs2b:libbs2b chromaprint cuda:cuda-llvm flite:libflite frei0r vmaf:libvmaf
+ fribidi:libfribidi fontconfig ladspa lcms:lcms2 libass libplacebo 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=(
+ amf amrenc:libvo-amrwbenc kvazaar:libkvazaar libaom mp3:libmp3lame
+ openh264:libopenh264 rav1e:librav1e snappy:libsnappy svt-av1:libsvtav1
+ 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_vfp
+ arm? ( cpu_flags_arm_thumb2 )
+ )
+ cpu_flags_arm_vfpv3? ( cpu_flags_arm_vfp )
+ cpu_flags_arm_thumb2? ( cpu_flags_arm_v6 )
+ cpu_flags_arm_v6? (
+ arm? ( 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}] )
+ amf? ( media-video/amdgpu-pro-amf )
+ 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/libogg-1.3.0[${MULTILIB_USEDEP}]
+ >=media-libs/libtheora-1.1.1[encode,${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}] )
+ jpegxl? ( >=media-libs/libjxl-0.7.0[$MULTILIB_USEDEP] )
+ lcms? ( >=media-libs/lcms-2.13: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.11.0:=[${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}] )
+ libplacebo? ( >=media-libs/libplacebo-4.192.0:=[$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}] )
+ qsv? ( media-libs/oneVPL[${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:=[sftp,${MULTILIB_USEDEP}] )
+ svg? (
+ gnome-base/librsvg:2=[${MULTILIB_USEDEP}]
+ x11-libs/cairo[${MULTILIB_USEDEP}]
+ )
+ nvenc? ( >=media-libs/nv-codec-headers-9.1.23.1 )
+ svt-av1? ( >=media-libs/svt-av1-0.9.0[${MULTILIB_USEDEP}] )
+ truetype? ( >=media-libs/freetype-2.5.0.1:2[${MULTILIB_USEDEP}] )
+ vaapi? ( >=media-libs/libva-1.2.1-r1:0=[${MULTILIB_USEDEP}] )
+ vdpau? ( >=x11-libs/libvdpau-0.7[${MULTILIB_USEDEP}] )
+ vidstab? ( >=media-libs/vidstab-1.1.0[${MULTILIB_USEDEP}] )
+ vmaf? ( >=media-libs/libvmaf-2.0.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.2.189:=[${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}] )
+"
+
+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}
+ amf? ( >=media-libs/amf-headers-1.4.28 )
+ ladspa? ( >=media-libs/ladspa-sdk-1.13-r2[${MULTILIB_USEDEP}] )
+ v4l? ( sys-kernel/linux-headers )
+"
+
+# += for verify-sig above
+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? ( nvenc )
+ 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
+ "${FILESDIR}"/${P}-DECLARE_ALIGNED.patch
+ "${FILESDIR}"/${PN}-5.1.2-get_cabac_inline_x86-32-bit.patch
+ "${FILESDIR}"/${P}-wint-conversion-vulkan.patch
+ "${FILESDIR}"/${P}-libplacebo-remove-deprecated-field.patch
+ "${FILESDIR}"/${P}-binutils-2.41.patch
+)
+
+MULTILIB_WRAPPED_HEADERS=(
+ /usr/include/libavutil/avconfig.h
+)
+
+build_separate_libffmpeg() {
+ use opencl
+}
+
+pkg_setup() {
+ # ffmpeg[chromaprint] depends on chromaprint, and chromaprint[tools] depends on ffmpeg.
+ # May cause breakage while updating, #862996, #625210, #833821.
+ if has_version media-libs/chromaprint[tools] && use chromaprint; then
+ ewarn "You have media-libs/chromaprint installed with 'tools' USE flag, which "
+ ewarn "links to ffmpeg, and you have enabled 'chromaprint' USE flag for ffmpeg, "
+ ewarn "which links to chromaprint. This may cause issues while rebuilding ffmpeg."
+ ewarn ""
+ ewarn "If your build fails to 'ERROR: chromaprint not found', rebuild chromaprint "
+ ewarn "without the 'tools' use flag first, then rebuild ffmpeg, and then finally enable "
+ ewarn "'tools' USE flag for chromaprint. See #862996."
+ fi
+}
+
+src_prepare() {
+ if [[ "${PV%_p*}" != "${PV}" ]] ; then # Snapshot
+ export revision=git-N-${FFMPEG_REVISION}
+ fi
+
+ default
+
+ # -fdiagnostics-color=auto gets appended after user flags which
+ # will ignore user's preference.
+ sed -i -e '/check_cflags -fdiagnostics-color=auto/d' configure || die
+
+ echo 'include $(SRC_PATH)/ffbuild/libffmpeg.mak' >> Makefile || die
+}
+
+multilib_src_configure() {
+ local myconf=( )
+
+ # bug 842201
+ use ia64 && tc-is-gcc && append-flags \
+ -fno-tree-ccp \
+ -fno-tree-dominator-opts \
+ -fno-tree-fre \
+ -fno-code-hoisting \
+ -fno-tree-pre \
+ -fno-tree-vrp
+
+ 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 )
+ has_version dev-libs/openssl:0/3 && myconf+=( --enable-version3 )
+ 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, bug #772854
+ [[ ${ABI} != x86 ]] && is-flagq "-flto*" && myconf+=( "--enable-lto" )
+ filter-lto
+
+ # Mandatory configuration
+ myconf=(
+ --enable-avfilter
+ --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
+ *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)
+ )
+
+ # Use --extra-libs if needed for LIBS
+ 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)" \
+ --strip="$(tc-getSTRIP)" \
+ --ranlib="$(tc-getRANLIB)" \
+ --pkg-config="$(tc-getPKG_CONFIG)" \
+ --optflags="${CFLAGS}" \
+ $(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" \
+ 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"
+
+ use amf && newenvd "${FILESDIR}"/amf-env-vulkan-override 99amf-env-vulkan-override
+}
diff --git a/media-video/ffmpeg/ffmpeg-9999.ebuild b/media-video/ffmpeg/ffmpeg-9999.ebuild
index 7e4387880715..8266db290460 100644
--- a/media-video/ffmpeg/ffmpeg-9999.ebuild
+++ b/media-video/ffmpeg/ffmpeg-9999.ebuild
@@ -64,7 +64,7 @@ LICENSE="
samba? ( GPL-3 )
"
if [ "${PV#9999}" = "${PV}" ] ; then
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
fi
# Options to use as use_enable in the foo[:bar] form.
@@ -126,11 +126,16 @@ ARM_CPU_FEATURES=(
)
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_v8? ( cpu_flags_arm_vfpv3 cpu_flags_arm_neon )
+ cpu_flags_arm_neon? (
+ cpu_flags_arm_vfp
+ arm? ( cpu_flags_arm_thumb2 )
+ )
cpu_flags_arm_vfpv3? ( cpu_flags_arm_vfp )
cpu_flags_arm_thumb2? ( cpu_flags_arm_v6 )
- cpu_flags_arm_v6? ( cpu_flags_arm_thumb )
+ cpu_flags_arm_v6? (
+ arm? ( 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 )
@@ -233,7 +238,7 @@ RDEPEND="
libcaca? ( >=media-libs/libcaca-0.99_beta18-r1[${MULTILIB_USEDEP}] )
libdrm? ( x11-libs/libdrm[${MULTILIB_USEDEP}] )
libilbc? ( >=media-libs/libilbc-2[${MULTILIB_USEDEP}] )
- libplacebo? ( >=media-libs/libplacebo-4.192.0[$MULTILIB_USEDEP] )
+ libplacebo? ( >=media-libs/libplacebo-4.192.0:=[$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}] )
@@ -247,7 +252,7 @@ RDEPEND="
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}] )
+ pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] )
qsv? ( media-libs/oneVPL[${MULTILIB_USEDEP}] )
rubberband? ( >=media-libs/rubberband-1.8.1-r1[${MULTILIB_USEDEP}] )
samba? ( >=net-fs/samba-3.6.23-r1[client,${MULTILIB_USEDEP}] )
@@ -272,7 +277,7 @@ RDEPEND="
>=media-libs/libogg-1.3.0[${MULTILIB_USEDEP}]
)
vpx? ( >=media-libs/libvpx-1.4.0:=[${MULTILIB_USEDEP}] )
- vulkan? ( >=media-libs/vulkan-loader-1.2.189:=[${MULTILIB_USEDEP}] )
+ vulkan? ( >=media-libs/vulkan-loader-1.3.255:=[${MULTILIB_USEDEP}] )
X? (
>=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
>=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
@@ -286,14 +291,15 @@ RDEPEND="
"
RDEPEND="${RDEPEND}
- openssl? ( >=dev-libs/openssl-1.0.1h-r2:0=[${MULTILIB_USEDEP}] )
- !openssl? ( gnutls? ( >=net-libs/gnutls-2.12.23-r6:=[${MULTILIB_USEDEP}] ) )
+ openssl? ( >=dev-libs/openssl-1.0.1h-r2:0=[${MULTILIB_USEDEP}] )
+ !openssl? ( gnutls? ( >=net-libs/gnutls-2.12.23-r6:=[${MULTILIB_USEDEP}] ) )
"
DEPEND="${RDEPEND}
amf? ( media-libs/amf-headers )
ladspa? ( >=media-libs/ladspa-sdk-1.13-r2[${MULTILIB_USEDEP}] )
v4l? ( sys-kernel/linux-headers )
+ vulkan? ( >=dev-util/vulkan-headers-1.3.255 )
"
# += for verify-sig above
@@ -479,9 +485,6 @@ multilib_src_configure() {
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 )
;;
@@ -594,5 +597,5 @@ multilib_src_install_all() {
dodoc Changelog README.md CREDITS doc/*.txt doc/APIchanges
[ -f "RELEASE_NOTES" ] && dodoc "RELEASE_NOTES"
- use amf && doenvd "${FILESDIR}"/amf-env-vulkan-override
+ use amf && newenvd "${FILESDIR}"/amf-env-vulkan-override 99amf-env-vulkan-override
}
diff --git a/media-video/ffmpeg/files/ffmpeg-4.2.7-libsdl2-new-version-scheme.patch b/media-video/ffmpeg/files/ffmpeg-4.2.7-libsdl2-new-version-scheme.patch
deleted file mode 100644
index ce552893d19b..000000000000
--- a/media-video/ffmpeg/files/ffmpeg-4.2.7-libsdl2-new-version-scheme.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/839f98ff6719cf2db0cbd88cd787a1b19b9cbf47
-
-From 839f98ff6719cf2db0cbd88cd787a1b19b9cbf47 Mon Sep 17 00:00:00 2001
-From: Christopher Degawa <ccom@randomderp.com>
-Date: Wed, 11 May 2022 15:11:04 -0500
-Subject: [PATCH] configure: extend SDL check to accept all 2.x versions
-
-sdl2 recently changed their versioning, moving the patch level to minor level
-https://github.com/libsdl-org/SDL/commit/cd7c2f1de7d9e418bb554047d714dd7cacc020ff
-and have said that they will instead ship sdl3.pc for 3.0.0
-
-Fixes ticket 9768
-
-Signed-off-by: Christopher Degawa <ccom@randomderp.com>
-Signed-off-by: Gyan Doshi <ffmpeg@gyani.pro>
---- a/configure
-+++ b/configure
-@@ -6383,7 +6383,7 @@ fi
-
- if enabled sdl2; then
- SDL2_CONFIG="${cross_prefix}sdl2-config"
-- test_pkg_config sdl2 "sdl2 >= 2.0.1 sdl2 < 2.1.0" SDL_events.h SDL_PollEvent
-+ test_pkg_config sdl2 "sdl2 >= 2.0.1 sdl2 < 3.0.0" SDL_events.h SDL_PollEvent
- if disabled sdl2 && "${SDL2_CONFIG}" --version > /dev/null 2>&1; then
- sdl2_cflags=$("${SDL2_CONFIG}" --cflags)
- sdl2_extralibs=$("${SDL2_CONFIG}" --libs)
diff --git a/media-video/ffmpeg/files/ffmpeg-4.4.4-fix-build-svt-av1-1.5.0.patch b/media-video/ffmpeg/files/ffmpeg-4.4.4-fix-build-svt-av1-1.5.0.patch
new file mode 100644
index 000000000000..c9c180f06641
--- /dev/null
+++ b/media-video/ffmpeg/files/ffmpeg-4.4.4-fix-build-svt-av1-1.5.0.patch
@@ -0,0 +1,44 @@
+https://bugs.gentoo.org/907478
+https://bugs.gentoo.org/907493
+https://git.videolan.org/?p=ffmpeg.git;a=commit;h=c3c8f97a9804b4234e97f13b0057ffc2c9af27c0
+
+From c3c8f97a9804b4234e97f13b0057ffc2c9af27c0 Mon Sep 17 00:00:00 2001
+From: Christopher Degawa <christopher.degawa@intel.com>
+Date: Thu, 20 Oct 2022 22:55:27 -0500
+Subject: [PATCH] avcodec/libsvtav1: remove compressed_ten_bit_format and
+ simplify alloc_buffer
+
+compressed_ten_bit_format has been deprecated upstream and has no effect
+and can be removed. Plus, technically it was never used in the first place
+since it would require the app (ffmpeg) to set it and do additional
+processing of the input frames.
+
+Also simplify alloc_buffer by removing calculations relating to the
+non-existant processing.
+
+Signed-off-by: Christopher Degawa <christopher.degawa@intel.com>
+(cherry picked from commit 031f1561cd286596cdb374da32f8aa816ce3b135)
+--- a/libavcodec/libsvtav1.c
++++ b/libavcodec/libsvtav1.c
+@@ -120,16 +120,12 @@ static int svt_print_error(void *log_ctx, EbErrorType err,
+
+ static int alloc_buffer(EbSvtAv1EncConfiguration *config, SvtContext *svt_enc)
+ {
+- const int pack_mode_10bit =
+- (config->encoder_bit_depth > 8) && (config->compressed_ten_bit_format == 0) ? 1 : 0;
+- const size_t luma_size_8bit =
+- config->source_width * config->source_height * (1 << pack_mode_10bit);
+- const size_t luma_size_10bit =
+- (config->encoder_bit_depth > 8 && pack_mode_10bit == 0) ? luma_size_8bit : 0;
++ const size_t luma_size = config->source_width * config->source_height *
++ (config->encoder_bit_depth > 8 ? 2 : 1);
+
+ EbSvtIOFormat *in_data;
+
+- svt_enc->raw_size = (luma_size_8bit + luma_size_10bit) * 3 / 2;
++ svt_enc->raw_size = luma_size * 3 / 2;
+
+ // allocate buffer for in and out
+ svt_enc->in_buf = av_mallocz(sizeof(*svt_enc->in_buf));
+--
+2.30.2
diff --git a/media-video/ffmpeg/files/ffmpeg-4.4.4-wint-conversion-vulkan.patch b/media-video/ffmpeg/files/ffmpeg-4.4.4-wint-conversion-vulkan.patch
new file mode 100644
index 000000000000..f3766bb69f50
--- /dev/null
+++ b/media-video/ffmpeg/files/ffmpeg-4.4.4-wint-conversion-vulkan.patch
@@ -0,0 +1,30 @@
+https://bugs.gentoo.org/903752
+https://git.videolan.org/?p=ffmpeg.git;a=commit;h=cc76e8340d28438c1ac56ee7dfd774d25e944264
+
+(Dropped second bit for vulkan.h as has changed significantly in >4.4.)
+
+From cc76e8340d28438c1ac56ee7dfd774d25e944264 Mon Sep 17 00:00:00 2001
+From: =?utf8?q?Kacper=20Michaj=C5=82ow?= <kasper93@gmail.com>
+Date: Thu, 2 Mar 2023 17:27:30 +0100
+Subject: [PATCH] lavu/vulkan: fix handle type for 32-bit targets
+MIME-Version: 1.0
+Content-Type: text/plain; charset=utf8
+Content-Transfer-Encoding: 8bit
+
+Fixes compilation with clang which errors out on Wint-conversion.
+
+Signed-off-by: Kacper Michajłow <kasper93@gmail.com>
+Signed-off-by: Martin Storsjö <martin@martin.st>
+--- a/libavutil/hwcontext_vulkan.c
++++ b/libavutil/hwcontext_vulkan.c
+@@ -1149,7 +1149,7 @@ static void free_exec_ctx(AVHWFramesContext *hwfc, VulkanExecCtx *cmd)
+
+ av_freep(&cmd->queues);
+ av_freep(&cmd->bufs);
+- cmd->pool = NULL;
++ cmd->pool = VK_NULL_HANDLE;
+ }
+
+ static VkCommandBuffer get_buf_exec_ctx(AVHWFramesContext *hwfc, VulkanExecCtx *cmd)
+
+
diff --git a/media-video/ffmpeg/files/ffmpeg-5.1.2-vulkan.patch b/media-video/ffmpeg/files/ffmpeg-5.1.2-vulkan.patch
deleted file mode 100644
index d7ce57350e4e..000000000000
--- a/media-video/ffmpeg/files/ffmpeg-5.1.2-vulkan.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From eb0455d64690eed0068e5cb202f72ecdf899837c Mon Sep 17 00:00:00 2001
-From: Lynne <dev@lynne.ee>
-Date: Sun, 25 Dec 2022 01:03:30 +0100
-Subject: [PATCH] hwcontext_vulkan: remove optional encode/decode extensions
- from the list
-
-They're not currently used, so they don't need to be there.
-Vulkan stabilized the decode extensions less than a week ago, and their
-name prefixes were changed from EXT to KHR. It's a bit too soon to be
-depending on it, so rather than bumping, just remove these for now.
----
- libavutil/hwcontext_vulkan.c | 8 --------
- 1 file changed, 8 deletions(-)
-
-diff --git a/libavutil/hwcontext_vulkan.c b/libavutil/hwcontext_vulkan.c
-index f1db1c7291f1..2a9b5f4aac62 100644
---- a/libavutil/hwcontext_vulkan.c
-+++ b/libavutil/hwcontext_vulkan.c
-@@ -358,14 +358,6 @@ static const VulkanOptExtension optional_device_exts[] = {
- { VK_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME, FF_VK_EXT_EXTERNAL_WIN32_MEMORY },
- { VK_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME, FF_VK_EXT_EXTERNAL_WIN32_SEM },
- #endif
--
-- /* Video encoding/decoding */
-- { VK_KHR_VIDEO_QUEUE_EXTENSION_NAME, FF_VK_EXT_NO_FLAG },
-- { VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME, FF_VK_EXT_NO_FLAG },
-- { VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME, FF_VK_EXT_NO_FLAG },
-- { VK_EXT_VIDEO_ENCODE_H264_EXTENSION_NAME, FF_VK_EXT_NO_FLAG },
-- { VK_EXT_VIDEO_DECODE_H264_EXTENSION_NAME, FF_VK_EXT_NO_FLAG },
-- { VK_EXT_VIDEO_DECODE_H265_EXTENSION_NAME, FF_VK_EXT_NO_FLAG },
- };
-
- /* Converts return values to strings */
diff --git a/media-video/ffmpeg/files/ffmpeg-5.1.3-binutils-2.41.patch b/media-video/ffmpeg/files/ffmpeg-5.1.3-binutils-2.41.patch
new file mode 100644
index 000000000000..7031d1f02ccf
--- /dev/null
+++ b/media-video/ffmpeg/files/ffmpeg-5.1.3-binutils-2.41.patch
@@ -0,0 +1,76 @@
+https://bugs.gentoo.org/911582
+https://trac.ffmpeg.org/ticket/10405
+https://git.videolan.org/?p=ffmpeg.git;a=commit;h=25cd95a9dc3510c3cc0d7aad6f9d83f6a1078c7e
+https://sourceware.org/PR30578
+https://gcc.gnu.org/PR108941
+
+From 25cd95a9dc3510c3cc0d7aad6f9d83f6a1078c7e Mon Sep 17 00:00:00 2001
+From: =?utf8?q?R=C3=A9mi=20Denis-Courmont?= <remi@remlab.net>
+Date: Sun, 16 Jul 2023 18:18:02 +0300
+Subject: [PATCH] avcodec/x86/mathops: clip constants used with shift
+ instructions within inline assembly
+
+Fixes assembling with binutil as >= 2.41
+
+Signed-off-by: James Almer <jamrial@gmail.com>
+(cherry picked from commit effadce6c756247ea8bae32dc13bb3e6f464f0eb)
+--- a/libavcodec/x86/mathops.h
++++ b/libavcodec/x86/mathops.h
+@@ -35,12 +35,20 @@
+ static av_always_inline av_const int MULL(int a, int b, unsigned shift)
+ {
+ int rt, dummy;
++ if (__builtin_constant_p(shift))
+ __asm__ (
+ "imull %3 \n\t"
+ "shrdl %4, %%edx, %%eax \n\t"
+ :"=a"(rt), "=d"(dummy)
+- :"a"(a), "rm"(b), "ci"((uint8_t)shift)
++ :"a"(a), "rm"(b), "i"(shift & 0x1F)
+ );
++ else
++ __asm__ (
++ "imull %3 \n\t"
++ "shrdl %4, %%edx, %%eax \n\t"
++ :"=a"(rt), "=d"(dummy)
++ :"a"(a), "rm"(b), "c"((uint8_t)shift)
++ );
+ return rt;
+ }
+
+@@ -113,19 +121,31 @@ __asm__ volatile(\
+ // avoid +32 for shift optimization (gcc should do that ...)
+ #define NEG_SSR32 NEG_SSR32
+ static inline int32_t NEG_SSR32( int32_t a, int8_t s){
++ if (__builtin_constant_p(s))
+ __asm__ ("sarl %1, %0\n\t"
+ : "+r" (a)
+- : "ic" ((uint8_t)(-s))
++ : "i" (-s & 0x1F)
+ );
++ else
++ __asm__ ("sarl %1, %0\n\t"
++ : "+r" (a)
++ : "c" ((uint8_t)(-s))
++ );
+ return a;
+ }
+
+ #define NEG_USR32 NEG_USR32
+ static inline uint32_t NEG_USR32(uint32_t a, int8_t s){
++ if (__builtin_constant_p(s))
+ __asm__ ("shrl %1, %0\n\t"
+ : "+r" (a)
+- : "ic" ((uint8_t)(-s))
++ : "i" (-s & 0x1F)
+ );
++ else
++ __asm__ ("shrl %1, %0\n\t"
++ : "+r" (a)
++ : "c" ((uint8_t)(-s))
++ );
+ return a;
+ }
+
+--
+2.30.2
diff --git a/media-video/ffmpeg/files/ffmpeg-5.1.3-fix-build-svt-av1-1.5.0.patch b/media-video/ffmpeg/files/ffmpeg-5.1.3-fix-build-svt-av1-1.5.0.patch
new file mode 100644
index 000000000000..51a8cb02d7b5
--- /dev/null
+++ b/media-video/ffmpeg/files/ffmpeg-5.1.3-fix-build-svt-av1-1.5.0.patch
@@ -0,0 +1,81 @@
+https://bugs.gentoo.org/907478
+https://bugs.gentoo.org/907493
+https://git.videolan.org/?p=ffmpeg.git;a=commit;h=bea695d54372b66a6b9b136982fc92adb63e4745
+https://git.videolan.org/?p=ffmpeg.git;a=commit;h=3344d47a88506aba060b5fd2a214cf7785b11483
+
+From bea695d54372b66a6b9b136982fc92adb63e4745 Mon Sep 17 00:00:00 2001
+From: Christopher Degawa <christopher.degawa@intel.com>
+Date: Thu, 20 Oct 2022 22:55:28 -0500
+Subject: [PATCH] avcodec/libsvtav1: replace vbv_bufsize with
+ maximum_buffer_size_ms
+
+svt-av1 v1.2.0 has deprecated vbv_bufsize in favor of using
+- maximum_buffer_size_ms (--buf-sz)
+- starting_buffer_level_ms (--buf-initial-sz)
+- optimal_buffer_level_ms (--buf-optimal-sz)
+
+and vbv_bufsize has not been in use since svt-av1 v0.8.6
+
+Signed-off-by: Christopher Degawa <christopher.degawa@intel.com>
+--- a/libavcodec/libsvtav1.c
++++ b/libavcodec/libsvtav1.c
+@@ -183,7 +183,7 @@ static int config_enc_params(EbSvtAv1EncConfiguration *param,
+ param->min_qp_allowed = avctx->qmin;
+ }
+ param->max_bit_rate = avctx->rc_max_rate;
+- param->vbv_bufsize = avctx->rc_buffer_size;
++ param->maximum_buffer_size_ms = avctx->rc_buffer_size * 1000LL / avctx->bit_rate;
+
+ if (svt_enc->crf > 0) {
+ param->qp = svt_enc->crf;
+@@ -300,7 +300,7 @@ static int config_enc_params(EbSvtAv1EncConfiguration *param,
+ avctx->bit_rate = param->rate_control_mode > 0 ?
+ param->target_bit_rate : 0;
+ avctx->rc_max_rate = param->max_bit_rate;
+- avctx->rc_buffer_size = param->vbv_bufsize;
++ avctx->rc_buffer_size = param->maximum_buffer_size_ms * avctx->bit_rate / 1000LL;
+
+ if (avctx->bit_rate || avctx->rc_max_rate || avctx->rc_buffer_size) {
+ AVCPBProperties *cpb_props = ff_add_cpb_side_data(avctx);
+--
+2.30.2
+
+From 3344d47a88506aba060b5fd2a214cf7785b11483 Mon Sep 17 00:00:00 2001
+From: Christopher Degawa <christopher.degawa@intel.com>
+Date: Thu, 20 Oct 2022 22:55:27 -0500
+Subject: [PATCH] avcodec/libsvtav1: remove compressed_ten_bit_format and
+ simplify alloc_buffer
+
+compressed_ten_bit_format has been deprecated upstream and has no effect
+and can be removed. Plus, technically it was never used in the first place
+since it would require the app (ffmpeg) to set it and do additional
+processing of the input frames.
+
+Also simplify alloc_buffer by removing calculations relating to the
+non-existant processing.
+
+Signed-off-by: Christopher Degawa <christopher.degawa@intel.com>
+--- a/libavcodec/libsvtav1.c
++++ b/libavcodec/libsvtav1.c
+@@ -124,16 +124,12 @@ static int svt_print_error(void *log_ctx, EbErrorType err,
+
+ static int alloc_buffer(EbSvtAv1EncConfiguration *config, SvtContext *svt_enc)
+ {
+- const int pack_mode_10bit =
+- (config->encoder_bit_depth > 8) && (config->compressed_ten_bit_format == 0) ? 1 : 0;
+- const size_t luma_size_8bit =
+- config->source_width * config->source_height * (1 << pack_mode_10bit);
+- const size_t luma_size_10bit =
+- (config->encoder_bit_depth > 8 && pack_mode_10bit == 0) ? luma_size_8bit : 0;
++ const size_t luma_size = config->source_width * config->source_height *
++ (config->encoder_bit_depth > 8 ? 2 : 1);
+
+ EbSvtIOFormat *in_data;
+
+- svt_enc->raw_size = (luma_size_8bit + luma_size_10bit) * 3 / 2;
++ svt_enc->raw_size = luma_size * 3 / 2;
+
+ // allocate buffer for in and out
+ svt_enc->in_buf = av_mallocz(sizeof(*svt_enc->in_buf));
+--
+2.30.2
diff --git a/media-video/ffmpeg/files/ffmpeg-5.1.3-svt-av1.patch b/media-video/ffmpeg/files/ffmpeg-5.1.3-svt-av1.patch
new file mode 100644
index 000000000000..fb905f714fa3
--- /dev/null
+++ b/media-video/ffmpeg/files/ffmpeg-5.1.3-svt-av1.patch
@@ -0,0 +1,67 @@
+https://git.videolan.org/?p=ffmpeg.git;a=commit;h=8fe2fec45321d1b82f98f9725ad9118cefcfa58d
+https://git.videolan.org/?p=ffmpeg.git;a=commit;h=e5b5dd66535f444451e0fee59247b224d866f334
+
+From 8fe2fec45321d1b82f98f9725ad9118cefcfa58d Mon Sep 17 00:00:00 2001
+From: Christopher Degawa <ccom@randomderp.com>
+Date: Sun, 20 Nov 2022 13:07:36 -0600
+Subject: [PATCH] avcodec/libsvtav1: only set max_buf_sz if both bitrate and
+ rc_buf_sz is set
+
+maximum_buffer_size_ms should only be set if both are specified or if
+the user sets it through -svtav1-params buf-sz=val
+
+Signed-off-by: Christopher Degawa <ccom@randomderp.com>
+--- a/libavcodec/libsvtav1.c
++++ b/libavcodec/libsvtav1.c
+@@ -179,7 +179,8 @@ static int config_enc_params(EbSvtAv1EncConfiguration *param,
+ param->min_qp_allowed = avctx->qmin;
+ }
+ param->max_bit_rate = avctx->rc_max_rate;
+- param->maximum_buffer_size_ms = avctx->rc_buffer_size * 1000LL / avctx->bit_rate;
++ if (avctx->bit_rate && avctx->rc_buffer_size)
++ param->maximum_buffer_size_ms = avctx->rc_buffer_size * 1000LL / avctx->bit_rate;
+
+ if (svt_enc->crf > 0) {
+ param->qp = svt_enc->crf;
+--
+2.30.2
+
+From e5b5dd66535f444451e0fee59247b224d866f334 Mon Sep 17 00:00:00 2001
+From: =?utf8?q?Jan=20Ekstr=C3=B6m?= <jeebjp@gmail.com>
+Date: Thu, 9 Mar 2023 20:27:06 +0200
+Subject: [PATCH] avcodec/libsvtav1: use larger of bit rate and max rate for
+ buffer size
+
+Generally if maxrate is set, the calculation should be maxrate over
+bufsize. This additionally enables CRF + maxrate & bufsize usage.
+
+In order to keep negative values from enabling zero to be treated
+as larger and causing a division by zero, check that one of the
+variables is larger than zero.
+--- a/libavcodec/libsvtav1.c
++++ b/libavcodec/libsvtav1.c
+@@ -179,8 +179,10 @@ static int config_enc_params(EbSvtAv1EncConfiguration *param,
+ param->min_qp_allowed = avctx->qmin;
+ }
+ param->max_bit_rate = avctx->rc_max_rate;
+- if (avctx->bit_rate && avctx->rc_buffer_size)
+- param->maximum_buffer_size_ms = avctx->rc_buffer_size * 1000LL / avctx->bit_rate;
++ if ((avctx->bit_rate > 0 || avctx->rc_max_rate > 0) && avctx->rc_buffer_size)
++ param->maximum_buffer_size_ms =
++ avctx->rc_buffer_size * 1000LL /
++ FFMAX(avctx->bit_rate, avctx->rc_max_rate);
+
+ if (svt_enc->crf > 0) {
+ param->qp = svt_enc->crf;
+@@ -297,7 +299,8 @@ static int config_enc_params(EbSvtAv1EncConfiguration *param,
+ avctx->bit_rate = param->rate_control_mode > 0 ?
+ param->target_bit_rate : 0;
+ avctx->rc_max_rate = param->max_bit_rate;
+- avctx->rc_buffer_size = param->maximum_buffer_size_ms * avctx->bit_rate / 1000LL;
++ avctx->rc_buffer_size = param->maximum_buffer_size_ms *
++ FFMAX(avctx->bit_rate, avctx->rc_max_rate) / 1000LL;
+
+ if (avctx->bit_rate || avctx->rc_max_rate || avctx->rc_buffer_size) {
+ AVCPBProperties *cpb_props = ff_add_cpb_side_data(avctx);
+--
+2.30.2
diff --git a/media-video/ffmpeg/files/ffmpeg-6.0-binutils-2.41.patch b/media-video/ffmpeg/files/ffmpeg-6.0-binutils-2.41.patch
new file mode 100644
index 000000000000..a06b9119666f
--- /dev/null
+++ b/media-video/ffmpeg/files/ffmpeg-6.0-binutils-2.41.patch
@@ -0,0 +1,76 @@
+https://bugs.gentoo.org/911582
+https://trac.ffmpeg.org/ticket/10405
+https://git.videolan.org/?p=ffmpeg.git;a=commit;h=cc703cf60759d9798f440a9417e4efa2fcbe2747
+https://sourceware.org/PR30578
+https://gcc.gnu.org/PR108941
+
+From cc703cf60759d9798f440a9417e4efa2fcbe2747 Mon Sep 17 00:00:00 2001
+From: =?utf8?q?R=C3=A9mi=20Denis-Courmont?= <remi@remlab.net>
+Date: Sun, 16 Jul 2023 18:18:02 +0300
+Subject: [PATCH] avcodec/x86/mathops: clip constants used with shift
+ instructions within inline assembly
+
+Fixes assembling with binutil as >= 2.41
+
+Signed-off-by: James Almer <jamrial@gmail.com>
+(cherry picked from commit effadce6c756247ea8bae32dc13bb3e6f464f0eb)
+--- a/libavcodec/x86/mathops.h
++++ b/libavcodec/x86/mathops.h
+@@ -35,12 +35,20 @@
+ static av_always_inline av_const int MULL(int a, int b, unsigned shift)
+ {
+ int rt, dummy;
++ if (__builtin_constant_p(shift))
+ __asm__ (
+ "imull %3 \n\t"
+ "shrdl %4, %%edx, %%eax \n\t"
+ :"=a"(rt), "=d"(dummy)
+- :"a"(a), "rm"(b), "ci"((uint8_t)shift)
++ :"a"(a), "rm"(b), "i"(shift & 0x1F)
+ );
++ else
++ __asm__ (
++ "imull %3 \n\t"
++ "shrdl %4, %%edx, %%eax \n\t"
++ :"=a"(rt), "=d"(dummy)
++ :"a"(a), "rm"(b), "c"((uint8_t)shift)
++ );
+ return rt;
+ }
+
+@@ -113,19 +121,31 @@ __asm__ volatile(\
+ // avoid +32 for shift optimization (gcc should do that ...)
+ #define NEG_SSR32 NEG_SSR32
+ static inline int32_t NEG_SSR32( int32_t a, int8_t s){
++ if (__builtin_constant_p(s))
+ __asm__ ("sarl %1, %0\n\t"
+ : "+r" (a)
+- : "ic" ((uint8_t)(-s))
++ : "i" (-s & 0x1F)
+ );
++ else
++ __asm__ ("sarl %1, %0\n\t"
++ : "+r" (a)
++ : "c" ((uint8_t)(-s))
++ );
+ return a;
+ }
+
+ #define NEG_USR32 NEG_USR32
+ static inline uint32_t NEG_USR32(uint32_t a, int8_t s){
++ if (__builtin_constant_p(s))
+ __asm__ ("shrl %1, %0\n\t"
+ : "+r" (a)
+- : "ic" ((uint8_t)(-s))
++ : "i" (-s & 0x1F)
+ );
++ else
++ __asm__ ("shrl %1, %0\n\t"
++ : "+r" (a)
++ : "c" ((uint8_t)(-s))
++ );
+ return a;
+ }
+
+--
+2.30.2
diff --git a/media-video/ffmpeg/files/ffmpeg-6.0-libplacebo-remove-deprecated-field.patch b/media-video/ffmpeg/files/ffmpeg-6.0-libplacebo-remove-deprecated-field.patch
new file mode 100644
index 000000000000..ca05c1c56ea4
--- /dev/null
+++ b/media-video/ffmpeg/files/ffmpeg-6.0-libplacebo-remove-deprecated-field.patch
@@ -0,0 +1,103 @@
+Bug: https://bugs.gentoo.org/910406
+
+Backports the following two commits:
+ https://github.com/FFmpeg/FFmpeg/commit/11eca6018c40f5ebe6af93cbc4b4dce447d8b3bc
+ https://github.com/FFmpeg/FFmpeg/commit/1231003c3c6d4839a9e838d06f8e16ee7690958f
+
+--- a/doc/filters.texi
++++ b/doc/filters.texi
+@@ -16242,9 +16242,6 @@
+ @item disable_builtin
+ Disable built-in GPU sampling (forces LUT).
+
+-@item force_icc_lut
+-Force the use of a full ICC 3DLUT for gamut mapping.
+-
+ @item disable_fbos
+ Forcibly disable FBOs, resulting in loss of almost all functionality, but
+ offering the maximum possible speed.
+--- a/libavfilter/version_major.h
++++ b/libavfilter/version_major.h
+@@ -35,4 +35,6 @@
+ * the public API and may change, break or disappear at any time.
+ */
+
++#define FF_API_LIBPLACEBO_OPTS (LIBAVFILTER_VERSION_MAJOR < 10)
++
+ #endif /* AVFILTER_VERSION_MAJOR_H */
+--- a/libavfilter/vf_libplacebo.c
++++ b/libavfilter/vf_libplacebo.c
+@@ -97,7 +97,6 @@
+ float polar_cutoff;
+ int disable_linear;
+ int disable_builtin;
+- int force_icc_lut;
+ int force_dither;
+ int disable_fbos;
+
+@@ -132,11 +131,15 @@
+ int inverse_tonemapping;
+ float crosstalk;
+ int tonemapping_lut_size;
++
++#if FF_API_LIBPLACEBO_OPTS
+ /* for backwards compatibility */
+ float desat_str;
+ float desat_exp;
+ int gamut_warning;
+ int gamut_clipping;
++ int force_icc_lut;
++#endif
+
+ /* pl_dither_params */
+ int dithering;
+@@ -380,6 +383,7 @@
+ pl_rect2df_aspect_set(&target.crop, aspect, s->pad_crop_ratio);
+ }
+
++#if FF_API_LIBPLACEBO_OPTS
+ /* backwards compatibility with older API */
+ if (!tonemapping_mode && (s->desat_str >= 0.0f || s->desat_exp >= 0.0f)) {
+ float str = s->desat_str < 0.0f ? 0.9f : s->desat_str;
+@@ -397,6 +401,7 @@
+ gamut_mode = PL_GAMUT_WARN;
+ if (s->gamut_clipping)
+ gamut_mode = PL_GAMUT_DESATURATE;
++#endif
+
+ /* Update render params */
+ params = (struct pl_render_params) {
+@@ -458,7 +463,6 @@
+ .polar_cutoff = s->polar_cutoff,
+ .disable_linear_scaling = s->disable_linear,
+ .disable_builtin_scalers = s->disable_builtin,
+- .force_icc_lut = s->force_icc_lut,
+ .force_dither = s->force_dither,
+ .disable_fbos = s->disable_fbos,
+ };
+@@ -818,11 +822,14 @@
+ { "inverse_tonemapping", "Inverse tone mapping (range expansion)", OFFSET(inverse_tonemapping), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, DYNAMIC },
+ { "tonemapping_crosstalk", "Crosstalk factor for tone-mapping", OFFSET(crosstalk), AV_OPT_TYPE_FLOAT, {.dbl = 0.04}, 0.0, 0.30, DYNAMIC },
+ { "tonemapping_lut_size", "Tone-mapping LUT size", OFFSET(tonemapping_lut_size), AV_OPT_TYPE_INT, {.i64 = 256}, 2, 1024, DYNAMIC },
++
++#if FF_API_LIBPLACEBO_OPTS
+ /* deprecated options for backwards compatibility, defaulting to -1 to not override the new defaults */
+ { "desaturation_strength", "Desaturation strength", OFFSET(desat_str), AV_OPT_TYPE_FLOAT, {.dbl = -1.0}, -1.0, 1.0, DYNAMIC | AV_OPT_FLAG_DEPRECATED },
+ { "desaturation_exponent", "Desaturation exponent", OFFSET(desat_exp), AV_OPT_TYPE_FLOAT, {.dbl = -1.0}, -1.0, 10.0, DYNAMIC | AV_OPT_FLAG_DEPRECATED },
+ { "gamut_warning", "Highlight out-of-gamut colors", OFFSET(gamut_warning), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, DYNAMIC | AV_OPT_FLAG_DEPRECATED },
+ { "gamut_clipping", "Enable colorimetric gamut clipping", OFFSET(gamut_clipping), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, DYNAMIC | AV_OPT_FLAG_DEPRECATED },
++#endif
+
+ { "dithering", "Dither method to use", OFFSET(dithering), AV_OPT_TYPE_INT, {.i64 = PL_DITHER_BLUE_NOISE}, -1, PL_DITHER_METHOD_COUNT - 1, DYNAMIC, "dither" },
+ { "none", "Disable dithering", 0, AV_OPT_TYPE_CONST, {.i64 = -1}, 0, 0, STATIC, "dither" },
+@@ -847,7 +854,9 @@
+ { "polar_cutoff", "Polar LUT cutoff", OFFSET(polar_cutoff), AV_OPT_TYPE_FLOAT, {.dbl = 0}, 0.0, 1.0, DYNAMIC },
+ { "disable_linear", "Disable linear scaling", OFFSET(disable_linear), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, DYNAMIC },
+ { "disable_builtin", "Disable built-in scalers", OFFSET(disable_builtin), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, DYNAMIC },
+- { "force_icc_lut", "Force the use of a full ICC 3DLUT for color mapping", OFFSET(force_icc_lut), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, DYNAMIC },
++#if FF_API_LIBPLACEBO_OPTS
++ { "force_icc_lut", "Deprecated, does nothing", OFFSET(force_icc_lut), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, DYNAMIC | AV_OPT_FLAG_DEPRECATED },
++#endif
+ { "force_dither", "Force dithering", OFFSET(force_dither), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, DYNAMIC },
+ { "disable_fbos", "Force-disable FBOs", OFFSET(disable_fbos), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, DYNAMIC },
+ { NULL },
diff --git a/media-video/ffmpeg/files/ffmpeg-6.0-wint-conversion-vulkan.patch b/media-video/ffmpeg/files/ffmpeg-6.0-wint-conversion-vulkan.patch
new file mode 100644
index 000000000000..2c71a189329a
--- /dev/null
+++ b/media-video/ffmpeg/files/ffmpeg-6.0-wint-conversion-vulkan.patch
@@ -0,0 +1,43 @@
+https://git.videolan.org/?p=ffmpeg.git;a=commit;h=58f18df430d48e47a82c5e740d6e63a50c97d75f
+
+From 58f18df430d48e47a82c5e740d6e63a50c97d75f Mon Sep 17 00:00:00 2001
+From: =?utf8?q?Kacper=20Michaj=C5=82ow?= <kasper93@gmail.com>
+Date: Thu, 2 Mar 2023 17:27:30 +0100
+Subject: [PATCH] lavu/vulkan: fix handle type for 32-bit targets
+MIME-Version: 1.0
+Content-Type: text/plain; charset=utf8
+Content-Transfer-Encoding: 8bit
+
+Fixes compilation with clang which errors out on Wint-conversion.
+
+Signed-off-by: Kacper MichajÅow <kasper93@gmail.com>
+Signed-off-by: Martin Storsjö <martin@martin.st>
+(cherry picked from commit cc76e8340d28438c1ac56ee7dfd774d25e944264)
+Signed-off-by: Martin Storsjö <martin@martin.st>
+--- a/libavutil/hwcontext_vulkan.c
++++ b/libavutil/hwcontext_vulkan.c
+@@ -1149,7 +1149,7 @@ static void free_exec_ctx(AVHWFramesContext *hwfc, VulkanExecCtx *cmd)
+
+ av_freep(&cmd->queues);
+ av_freep(&cmd->bufs);
+- cmd->pool = NULL;
++ cmd->pool = VK_NULL_HANDLE;
+ }
+
+ static VkCommandBuffer get_buf_exec_ctx(AVHWFramesContext *hwfc, VulkanExecCtx *cmd)
+--- a/libavutil/vulkan.h
++++ b/libavutil/vulkan.h
+@@ -122,7 +122,11 @@ typedef struct FFVulkanPipeline {
+ VkDescriptorSetLayout *desc_layout;
+ VkDescriptorPool desc_pool;
+ VkDescriptorSet *desc_set;
++#if VK_USE_64_BIT_PTR_DEFINES == 1
+ void **desc_staging;
++#else
++ uint64_t *desc_staging;
++#endif
+ VkDescriptorSetLayoutBinding **desc_binding;
+ VkDescriptorUpdateTemplate *desc_template;
+ int *desc_set_initialized;
+--
+2.30.2
diff --git a/media-video/ffmpeg/metadata.xml b/media-video/ffmpeg/metadata.xml
index 54cb9b3546d3..88482e70770c 100644
--- a/media-video/ffmpeg/metadata.xml
+++ b/media-video/ffmpeg/metadata.xml
@@ -72,7 +72,6 @@
<flag name="vidstab">Enables video stabilization filter using vid.stab library (<pkg>media-libs/vidstab</pkg>).</flag>
<flag name="vmaf">Enables Netflix's perceptual video quality assessment filter using the library (<pkg>media-libs/libvmaf</pkg>).</flag>
<flag name="vpx">Enables VP8 and VP9 codec support using libvpx: Decoding does not require this to be enabled but libvpx can also be used for decoding; encoding requires this useflag to be enabled though.</flag>
- <flag name="vulkan">Enables support for the vulkan API for GPU offload.</flag>
<flag name="x265">Enables HEVC encoding with <pkg>media-libs/x265</pkg>.</flag>
<flag name="zeromq">Enables <pkg>net-libs/zeromq</pkg> support with the zmq/azmq filters.</flag>
<flag name="zimg">Enables <pkg>media-libs/zimg</pkg> based scale filter.</flag>
diff --git a/media-video/ffmpegthumbnailer/ffmpegthumbnailer-2.2.2.ebuild b/media-video/ffmpegthumbnailer/ffmpegthumbnailer-2.2.2.ebuild
deleted file mode 100644
index 009948d53ef0..000000000000
--- a/media-video/ffmpegthumbnailer/ffmpegthumbnailer-2.2.2.ebuild
+++ /dev/null
@@ -1,49 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit cmake
-
-DESCRIPTION="Lightweight video thumbnailer that can be used by file managers"
-HOMEPAGE="https://github.com/dirkvdb/ffmpegthumbnailer"
-SRC_URI="https://github.com/dirkvdb/${PN}/releases/download/${PV}/${P}.tar.bz2"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ppc ppc64 ~riscv sparc x86"
-IUSE="gnome gtk jpeg png test"
-RESTRICT="!test? ( test )"
-
-REQUIRED_USE="gnome? ( gtk )
- test? ( png jpeg )"
-
-BDEPEND="
- virtual/pkgconfig
-"
-RDEPEND="
- gtk? ( dev-libs/glib:2= )
- jpeg? ( virtual/jpeg:0= )
- >=media-video/ffmpeg-2.7:0=
- png? ( media-libs/libpng:0= )
-"
-DEPEND="${RDEPEND}"
-
-DOCS=( AUTHORS ChangeLog README.md )
-
-src_prepare() {
- rm -rf out* || die
-
- cmake_src_prepare
-}
-
-src_configure() {
- local mycmakeargs=(
- -DENABLE_GIO=$(usex gtk)
- -DENABLE_TESTS=$(usex test)
- -DENABLE_THUMBNAILER=$(usex gnome)
- -DHAVE_JPEG=$(usex jpeg)
- -DHAVE_PNG=$(usex png)
- )
- cmake_src_configure
-}
diff --git a/media-video/gaupol/gaupol-1.12.ebuild b/media-video/gaupol/gaupol-1.12.ebuild
index 17ce40934060..d82300acb79b 100644
--- a/media-video/gaupol/gaupol-1.12.ebuild
+++ b/media-video/gaupol/gaupol-1.12.ebuild
@@ -14,7 +14,7 @@ SRC_URI="https://github.com/otsaloma/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="GPL-2+"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="amd64 arm64 x86"
IUSE="spell"
RDEPEND="
diff --git a/media-video/gnome-video-effects/Manifest b/media-video/gnome-video-effects/Manifest
index d42f464b53c9..b5f216855ce8 100644
--- a/media-video/gnome-video-effects/Manifest
+++ b/media-video/gnome-video-effects/Manifest
@@ -1 +1,2 @@
DIST gnome-video-effects-0.5.0.tar.xz 85424 BLAKE2B 6c3aad12bd3f7c00a0f800d62df0144a4ca1318dbcb771f038f83fd82e252ba79aba379f57dd259c41dac3ba197dd98f52b944b018e39a419bb48b77e3a1d475 SHA512 48d68984913e6732a097b4f235671ecb3442945ec843accfae4b4526ecd27641831a847ea193ac1e13a452700c4a76fa15fa84c2293cbaf7b1b2f4d1b85487ce
+DIST gnome-video-effects-0.6.0.tar.xz 91564 BLAKE2B d08e2bc09dc85371290c059a9adc05b5ba602a38bc0884167f3afb4d731fbe78719270cd320203ed17fcc545d012b87b26d3f83cb6f48476e70f42d65a5861ca SHA512 e5a87fd134adc1dce1422d20c47cb87ccbad99841672563ef393ea3816a7fa0a3c865d9fc16047e8fa0eccc8388c019b5a2f91844dc3e448e353bf1ad7a39c21
diff --git a/media-video/gnome-video-effects/gnome-video-effects-0.5.0.ebuild b/media-video/gnome-video-effects/gnome-video-effects-0.5.0-r1.ebuild
index 26995771fc03..9046f8687f34 100644
--- a/media-video/gnome-video-effects/gnome-video-effects-0.5.0.ebuild
+++ b/media-video/gnome-video-effects/gnome-video-effects-0.5.0-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -15,7 +15,6 @@ KEYWORDS="~alpha amd64 ~arm arm64 ~ia64 ~ppc ~ppc64 ~riscv ~sparc x86"
DEPEND=""
RDEPEND=""
BDEPEND="
- >=dev-util/intltool-0.40.0
>=sys-devel/gettext-0.17
"
diff --git a/media-video/gnome-video-effects/gnome-video-effects-0.6.0.ebuild b/media-video/gnome-video-effects/gnome-video-effects-0.6.0.ebuild
new file mode 100644
index 000000000000..4d2d08a10081
--- /dev/null
+++ b/media-video/gnome-video-effects/gnome-video-effects-0.6.0.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit gnome.org meson optfeature
+
+DESCRIPTION="Effects for Cheese, the webcam video and picture application"
+HOMEPAGE="https://wiki.gnome.org/Projects/GnomeVideoEffects"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~arm arm64 ~loong ~ppc ~ppc64 ~riscv x86"
+
+DEPEND=""
+RDEPEND=""
+BDEPEND="
+ >=sys-devel/gettext-0.17
+"
+
+# This ebuild does not install any binaries
+RESTRICT="binchecks strip"
+
+pkg_postinst() {
+ optfeature "Scanline video effect" media-plugins/frei0r-plugins
+}
diff --git a/media-video/gpac/Manifest b/media-video/gpac/Manifest
index 5b4301b8344a..59e0c115eaf8 100644
--- a/media-video/gpac/Manifest
+++ b/media-video/gpac/Manifest
@@ -1,2 +1,3 @@
DIST gpac-2.0.0.tar.gz 11362932 BLAKE2B a8489831efb77c374d13e2edb3951e60a94907c4cd8601919e1390aee0e9002249e97a9200fd006c2aa783c516f701f7695aa84b5f3596a3bc90290916ff4086 SHA512 e95e6d78167fc306917b3ac89e56ba511bbcb0c825da118f5ba374504499352104b5c1f3ee71e7ec018015b8e302f9b07162d22287ddb21c8564b097d900913f
DIST gpac-2.2.0.tar.gz 11376708 BLAKE2B f50c131912787c274a5b2d37e242e37ddd07f2c6eab3a932ec243f0fc36aeb06d4f16fd861eb3534f93534c291c55fddc2bcd1f573d2ed186e17464512a1f089 SHA512 4ac63a79a5d1057aadb59429af84ca9e4e0c0b863b19beafb60bd1c30425357dec45b5d6d48d452eb94002b059c9eb0c7bb0cc14222194f641604f964b3207c2
+DIST gpac-2.2.1.tar.gz 11377184 BLAKE2B 44b47459da0f203d0e4c0eed5836a59f44fb508db4e601b46e9ffdb53d89bb49e22ccdfe7951b17581130f186c47ae8efc0d9002685d5cf9a3547159356d2d9e SHA512 873df4c2fdc3594a0f3bce66d511cee14669643042ab1ca8d7f370ad3f50636c32c31f79818051d00bf844de30a5533ae30c81ed168baf2626a152771b6a6845
diff --git a/media-video/gpac/files/gpac-2.2.0-ffmpeg6-deux.patch b/media-video/gpac/files/gpac-2.2.0-ffmpeg6-deux.patch
new file mode 100644
index 000000000000..695852847395
--- /dev/null
+++ b/media-video/gpac/files/gpac-2.2.0-ffmpeg6-deux.patch
@@ -0,0 +1,46 @@
+https://bugs.gentoo.org/903550
+
+From ba14e34dd7a3c4cef5a56962898e9f863dd4b4f3 Mon Sep 17 00:00:00 2001
+From: jeanlf <jeanlf@gpac.io>
+Date: Mon, 13 Mar 2023 09:43:52 +0100
+Subject: [PATCH] fixed compil with ffmpeg 6 - cf #2406
+
+--- a/src/filters/ff_mx.c
++++ b/src/filters/ff_mx.c
+@@ -503,7 +503,11 @@ static GF_Err ffmx_close_seg(GF_Filter *filter, GF_FFMuxCtx *ctx, Bool send_evt_
+ evt.seg_size.is_init = 0;
+ }
+ evt.seg_size.media_range_start = ctx->offset_at_seg_start;
++#if LIBAVFORMAT_VERSION_MAJOR >= 60
+ evt.seg_size.media_range_end = ctx->muxer->pb ? (ctx->muxer->pb->bytes_written-1) : 0;
++#else
++ evt.seg_size.media_range_end = ctx->muxer->pb ? (ctx->muxer->pb->written-1) : 0;
++#endif
+ ctx->offset_at_seg_start = evt.seg_size.media_range_end;
+
+ gf_filter_pid_send_event(pid, &evt);
+@@ -1013,13 +1017,21 @@ static GF_Err ffmx_configure_pid(GF_Filter *filter, GF_FilterPid *pid, Bool is_r
+ ff_codec_id = ffmpeg_codecid_from_gpac(codec_id, &ff_codec_tag);
+ }
+
++
++ res = 1;
++#if LIBAVFORMAT_VERSION_MAJOR < 60
+ if (ctx->muxer->oformat) {
+ res = avformat_query_codec(ctx->muxer->oformat, ff_codec_id, 1);
+- if (!res) {
+- GF_LOG(GF_LOG_ERROR, GF_LOG_CONTAINER, ("[FFMux] Codec %s not supported in container %s\n", gf_codecid_name(codec_id), ctx->muxer->oformat->name));
+- return GF_NOT_SUPPORTED;
+- }
+ }
++#else
++ res = avformat_query_codec(ctx->muxer->oformat, ff_codec_id, FF_COMPLIANCE_NORMAL);
++#endif
++
++ if (!res) {
++ GF_LOG(GF_LOG_ERROR, GF_LOG_CONTAINER, ("[FFMux] Codec %s not supported in container %s\n", gf_codecid_name(codec_id), ctx->muxer->oformat->name));
++ return GF_NOT_SUPPORTED;
++ }
++
+ const AVCodec *c = avcodec_find_decoder(ff_codec_id);
+ if (!c) return GF_NOT_SUPPORTED;
diff --git a/media-video/gpac/gpac-2.2.0.ebuild b/media-video/gpac/gpac-2.2.0.ebuild
index d8ee67521cd8..f99b1f15a15f 100644
--- a/media-video/gpac/gpac-2.2.0.ebuild
+++ b/media-video/gpac/gpac-2.2.0.ebuild
@@ -8,7 +8,7 @@ if [[ ${PV} == *9999 ]] ; then
EGIT_REPO_URI="https://github.com/gpac/gpac"
else
SRC_URI="https://github.com/gpac/gpac/archive/v${PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="~alpha ~amd64 ~ppc ~ppc64 ~sparc ~x86"
+ KEYWORDS="~alpha amd64 ~ppc ppc64 ~sparc x86"
fi
inherit toolchain-funcs ${SCM} xdg
@@ -66,6 +66,7 @@ PATCHES=(
"${FILESDIR}/${PN}-2.2.0-configure.patch"
"${FILESDIR}/${PN}-1.0.0-zlib-compile.patch"
"${FILESDIR}/${PN}-2.2.0-ffmpeg6.patch"
+ "${FILESDIR}/${PN}-2.2.0-ffmpeg6-deux.patch"
)
DOCS=(
diff --git a/media-video/gpac/gpac-2.2.1-r1.ebuild b/media-video/gpac/gpac-2.2.1-r1.ebuild
new file mode 100644
index 000000000000..fc002d795023
--- /dev/null
+++ b/media-video/gpac/gpac-2.2.1-r1.ebuild
@@ -0,0 +1,146 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+if [[ ${PV} == *9999 ]] ; then
+ SCM="git-r3"
+ EGIT_REPO_URI="https://github.com/gpac/gpac"
+else
+ SRC_URI="https://github.com/gpac/gpac/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~ppc ~ppc64 ~sparc ~x86"
+fi
+
+inherit toolchain-funcs ${SCM} xdg
+
+DESCRIPTION="Implementation of the MPEG-4 Systems standard developed from scratch in ANSI C"
+HOMEPAGE="https://gpac.wp.imt.fr/"
+
+LICENSE="GPL-2"
+# subslot == libgpac major
+SLOT="0/11"
+IUSE="a52 aac alsa cpu_flags_x86_sse2 debug dvb ffmpeg jack jpeg jpeg2k mad opengl oss png
+ pulseaudio sdl ssl static-libs theora truetype vorbis xml xvid X"
+
+BDEPEND="virtual/pkgconfig"
+RDEPEND="
+ media-libs/libogg
+ sys-libs/zlib
+ a52? ( media-libs/a52dec )
+ aac? ( media-libs/faad2 )
+ alsa? ( media-libs/alsa-lib )
+ ffmpeg? ( media-video/ffmpeg:0= )
+ jack? ( virtual/jack )
+ jpeg? ( media-libs/libjpeg-turbo:0= )
+ jpeg2k? ( media-libs/openjpeg:2 )
+ mad? ( media-libs/libmad )
+ opengl? (
+ media-libs/freeglut
+ virtual/glu
+ virtual/opengl
+ )
+ png? ( media-libs/libpng:0= )
+ pulseaudio? ( media-libs/libpulse )
+ theora? ( media-libs/libtheora )
+ truetype? ( media-libs/freetype:2 )
+ sdl? ( media-libs/libsdl )
+ ssl? (
+ dev-libs/openssl:0=
+ )
+ vorbis? ( media-libs/libvorbis )
+ X? (
+ x11-libs/libXt
+ x11-libs/libX11
+ x11-libs/libXv
+ x11-libs/libXext
+ )
+ xml? ( dev-libs/libxml2:2= )
+ xvid? ( media-libs/xvid )
+"
+DEPEND="
+ ${RDEPEND}
+ dvb? ( sys-kernel/linux-headers )
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-2.2.0-configure.patch"
+ "${FILESDIR}/${PN}-1.0.0-zlib-compile.patch"
+ "${FILESDIR}/${PN}-2.2.0-ffmpeg6.patch"
+ "${FILESDIR}/${PN}-2.2.0-ffmpeg6-deux.patch"
+)
+
+DOCS=(
+ share/doc/CODING_STYLE
+ share/doc/GPAC\ UPnP.doc
+ share/doc/ISO\ 639-2\ codes.txt
+ share/doc/SceneGenerators
+ share/doc/ipmpx_syntax.bt
+ Changelog
+ README.md
+)
+
+my_use() {
+ local flag="$1" pflag="${2:-$1}"
+ if use ${flag}; then
+ echo "--use-${pflag}=system"
+ else
+ echo "--use-${pflag}=no"
+ fi
+}
+
+src_configure() {
+ tc-export CC CXX AR RANLIB
+
+ local myeconfargs=(
+ --cc="$(tc-getCC)"
+ --libdir="$(get_libdir)"
+ --verbose
+ --enable-pic
+ --enable-svg
+ --use-ogg=system
+ $(use_enable alsa)
+ $(use_enable debug)
+ $(use_enable dvb dvb4linux)
+ $(use_enable jack jack yes)
+ $(use_enable opengl 3d)
+ $(use_enable oss oss-audio)
+ $(use_enable pulseaudio pulseaudio yes)
+ $(use_enable sdl)
+ $(use_enable ssl)
+ $(use_enable static-libs static-lib)
+ $(use_enable X x11)
+ $(use_enable X x11-shm)
+ $(use_enable X x11-xv)
+ $(my_use a52)
+ $(my_use aac faad)
+ $(use_enable dvb dvbx)
+ $(my_use ffmpeg)
+ $(my_use jpeg)
+ $(my_use jpeg2k openjpeg)
+ $(my_use mad)
+ $(my_use png)
+ $(my_use theora)
+ $(my_use truetype freetype)
+ $(my_use vorbis)
+ $(my_use xvid)
+ )
+
+ if use amd64 || use x86 ; then
+ # Don't pass -mno-sse2 on non amd64/x86
+ myeconfargs+=(
+ --extra-cflags="${CFLAGS} $(usex cpu_flags_x86_sse2 '-msse2' '-mno-sse2')"
+ )
+ else
+ myeconfargs+=(
+ --extra-cflags="${CFLAGS}"
+ )
+ fi
+
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ einstalldocs
+ emake STRIP="true" DESTDIR="${ED}" install
+ emake STRIP="true" DESTDIR="${ED}" install-lib
+}
diff --git a/media-video/gpac/gpac-9999.ebuild b/media-video/gpac/gpac-9999.ebuild
index d8ee67521cd8..f21d8e2a08aa 100644
--- a/media-video/gpac/gpac-9999.ebuild
+++ b/media-video/gpac/gpac-9999.ebuild
@@ -40,7 +40,7 @@ RDEPEND="
virtual/opengl
)
png? ( media-libs/libpng:0= )
- pulseaudio? ( media-sound/pulseaudio )
+ pulseaudio? ( media-libs/libpulse )
theora? ( media-libs/libtheora )
truetype? ( media-libs/freetype:2 )
sdl? ( media-libs/libsdl )
diff --git a/media-video/handbrake/Manifest b/media-video/handbrake/Manifest
index 1838ad0338f1..3e8e31e4f65d 100644
--- a/media-video/handbrake/Manifest
+++ b/media-video/handbrake/Manifest
@@ -1,2 +1,3 @@
DIST handbrake-1.4.2.tar.bz2 15991593 BLAKE2B 966b54d35dd5544800208edc9045eaf26f3253aa470686b9ea29cdf69393af140829b21072133684661fd881eee7f97b90f9c7edfa87f187058dd1b14d1a748b SHA512 ba8ffe01cd813e9991716eabb2844e1ed414e3a2c547154b89588389e96846af9f2dd47f66d735101fdacd5be1928e34e4bab31e6a189779e77001ffdb0b427e
DIST handbrake-1.5.1.tar.bz2 16137974 BLAKE2B 9ce1f1ae7b2fe514ba1fb6ed30a345d18144829272a6298f2af0831e5ea7533ef2f8b201fd98389269b0ea12bbba15d0b76f09afeff6ed1d9ed313f20cf8f3a1 SHA512 63c5933f77d417a89512abd278a1d844f2b7a36ec9f8ab664c1a1348fd228ee389fc8e349b2df6cbf5d617b912d4634457ebea86490ff5ed4930f39a90dc7568
+DIST handbrake-1.6.1.tar.bz2 15934833 BLAKE2B 027457c874bd49ff8a625233a5d09d70bdf76c45e6f2664f3ca65efcd0e1705d5575a81c5ac8f2237b8add7025314f12f0a19d6cc7337e2b0edd28c30ee3334b SHA512 e5cc0fee5bf063c4cdb8f64a772dac6800a7214bfdc65042c121e0e81878599fe615b499ebf6466bb78740314374ad8b8fa364fb24ff86852183e7dbbf565617
diff --git a/media-video/handbrake/files/handbrake-9999-dont-search-for-python.patch b/media-video/handbrake/files/handbrake-9999-dont-search-for-python.patch
new file mode 100644
index 000000000000..f9971e508404
--- /dev/null
+++ b/media-video/handbrake/files/handbrake-9999-dont-search-for-python.patch
@@ -0,0 +1,26 @@
+--- a/configure
++++ b/configure
+@@ -14,20 +14,8 @@ inpath()
+ }
+
+ if ( inpath bash ); then
+- pp=""
+- for p in python3 python3.8 python3.7 python3.6 python3.5 python3.4 python3.3 python3.2 python3.1 python2 python2.7 python
+- do
+- if ( inpath $p ); then
+- pp="$p"
+- break
+- fi
+- done
+- if [ "$pp" != "" ]; then
+- exec $pp `dirname $0`/make/configure.py "$@"
+- exit 0
+- else
+- echo "ERROR: no suitable version of python found."
+- fi
++ exec python `dirname $0`/make/configure.py "$@"
++ exit 0
+ else
+ echo "ERROR: bash shell not found."
+ fi
+
diff --git a/media-video/handbrake/handbrake-1.4.2-r2.ebuild b/media-video/handbrake/handbrake-1.4.2-r2.ebuild
index 618137c80e46..5f5a8b0e7e24 100644
--- a/media-video/handbrake/handbrake-1.4.2-r2.ebuild
+++ b/media-video/handbrake/handbrake-1.4.2-r2.ebuild
@@ -3,7 +3,7 @@
EAPI=8
-PYTHON_COMPAT=( python3_{9..10} )
+PYTHON_COMPAT=( python3_{9..11} )
inherit autotools python-any-r1 toolchain-funcs xdg
diff --git a/media-video/handbrake/handbrake-1.5.1.ebuild b/media-video/handbrake/handbrake-1.5.1-r1.ebuild
index a5d8c9da21ac..7c9e08992e02 100644
--- a/media-video/handbrake/handbrake-1.5.1.ebuild
+++ b/media-video/handbrake/handbrake-1.5.1-r1.ebuild
@@ -3,7 +3,7 @@
EAPI=8
-PYTHON_COMPAT=( python3_{9..10} )
+PYTHON_COMPAT=( python3_{9..11} )
inherit autotools python-any-r1 toolchain-funcs xdg
@@ -14,7 +14,7 @@ else
MY_P="HandBrake-${PV}"
SRC_URI="https://github.com/HandBrake/HandBrake/releases/download/${PV}/${MY_P}-source.tar.bz2 -> ${P}.tar.bz2"
S="${WORKDIR}/${MY_P}"
- KEYWORDS="amd64 ~x86"
+ KEYWORDS="amd64 ~arm64 ~x86"
fi
DESCRIPTION="Open-source, GPL-licensed, multiplatform, multithreaded video transcoder"
@@ -26,6 +26,7 @@ IUSE="+fdk gstreamer gtk libav-aac numa nvenc x265"
REQUIRED_USE="^^ ( fdk libav-aac )"
+# < ffmpeg-5.1 dep for bug #907406
RDEPEND="
app-arch/xz-utils
dev-libs/jansson:=
@@ -46,7 +47,7 @@ RDEPEND="
media-libs/x264:=
media-libs/zimg
media-sound/lame
- >=media-video/ffmpeg-4.2.1:0=[postproc,fdk?]
+ <media-video/ffmpeg-5.1:=[postproc,fdk?]
sys-libs/zlib
fdk? ( media-libs/fdk-aac:= )
gstreamer? (
@@ -79,7 +80,6 @@ BDEPEND="
${PYTHON_DEPS}
dev-lang/nasm
dev-util/cmake
- dev-util/intltool
"
PATCHES=(
diff --git a/media-video/handbrake/handbrake-1.6.1.ebuild b/media-video/handbrake/handbrake-1.6.1.ebuild
new file mode 100644
index 000000000000..41a2061311b8
--- /dev/null
+++ b/media-video/handbrake/handbrake-1.6.1.ebuild
@@ -0,0 +1,163 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} )
+
+inherit autotools edo python-any-r1 toolchain-funcs xdg
+
+if [[ ${PV} == *9999* ]]; then
+ EGIT_REPO_URI="https://github.com/HandBrake/HandBrake.git"
+ inherit git-r3
+else
+ MY_P="HandBrake-${PV}"
+ SRC_URI="https://github.com/HandBrake/HandBrake/releases/download/${PV}/${MY_P}-source.tar.bz2 -> ${P}.tar.bz2"
+ S="${WORKDIR}/${MY_P}"
+ KEYWORDS="~amd64 ~arm64 ~x86"
+fi
+
+DESCRIPTION="Open-source, GPL-licensed, multiplatform, multithreaded video transcoder"
+HOMEPAGE="https://handbrake.fr/ https://github.com/HandBrake/HandBrake"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="+fdk gstreamer gtk numa nvenc x265" # TODO: qsv vce
+
+REQUIRED_USE="numa? ( x265 )"
+
+RDEPEND="
+ >=app-arch/xz-utils-5.2.6
+ dev-libs/jansson:=
+ >=dev-libs/libxml2-2.10.3
+ media-libs/a52dec
+ >=media-libs/dav1d-1.0.0:=
+ >=media-libs/libjpeg-turbo-2.1.4:=
+ >=media-libs/libass-0.16.0:=
+ >=media-libs/libbluray-1.3.4:=
+ media-libs/libdvdnav
+ >=media-libs/libdvdread-6.1.3:=
+ media-libs/libsamplerate
+ media-libs/libtheora
+ media-libs/libvorbis
+ >=media-libs/libvpx-1.12.0:=
+ media-libs/opus
+ >=media-libs/speex-1.2.1
+ >=media-libs/svt-av1-1.4.1
+ >=media-libs/x264-0.0.20220222:=
+ >=media-libs/zimg-3.0.4
+ media-sound/lame
+ >=media-video/ffmpeg-5.1.2:=[postproc,fdk?]
+ sys-libs/zlib
+ fdk? ( media-libs/fdk-aac:= )
+ gstreamer? (
+ media-libs/gstreamer:1.0
+ media-libs/gst-plugins-base:1.0
+ media-libs/gst-plugins-good:1.0
+ media-libs/gst-plugins-bad:1.0
+ media-libs/gst-plugins-ugly:1.0
+ media-plugins/gst-plugins-a52dec:1.0
+ media-plugins/gst-plugins-libav:1.0
+ media-plugins/gst-plugins-x264:1.0
+ media-plugins/gst-plugins-gdkpixbuf:1.0
+ )
+ gtk? (
+ >=x11-libs/gtk+-3.10
+ dev-libs/dbus-glib
+ dev-libs/glib:2
+ dev-libs/libgudev:=
+ x11-libs/cairo
+ x11-libs/gdk-pixbuf:2
+ x11-libs/libnotify
+ x11-libs/pango
+ )
+ nvenc? (
+ media-libs/nv-codec-headers
+ media-video/ffmpeg[nvenc]
+ )
+ x265? ( >=media-libs/x265-3.5-r2:=[10bit,12bit,numa?] )
+"
+DEPEND="${RDEPEND}"
+# cmake needed for custom script: bug #852701
+BDEPEND="
+ ${PYTHON_DEPS}
+ dev-lang/nasm
+ dev-util/cmake
+"
+
+PATCHES=(
+ # Remove libdvdnav duplication and call it on the original instead.
+ # It may work this way; if not, we should try to mimic the duplication.
+ "${FILESDIR}/${PN}-9999-remove-dvdnav-dup.patch"
+
+ # Detect system tools - bug 738110
+ "${FILESDIR}/${PN}-9999-system-tools.patch"
+
+ # Use whichever python is set by portage
+ "${FILESDIR}/${PN}-9999-dont-search-for-python.patch"
+
+ # Fix x265 linkage... again again #730034
+ "${FILESDIR}/${PN}-1.3.3-x265-link.patch"
+)
+
+src_prepare() {
+ # Get rid of leftover bundled library build definitions,
+ sed -i 's:.*\(/contrib\|contrib/\).*::g' \
+ "${S}"/make/include/main.defs \
+ || die "Contrib removal failed."
+
+ default
+
+ cd "${S}/gtk" || die
+ eautoreconf
+}
+
+src_configure() {
+ tc-export AR RANLIB STRIP
+
+ # Libav was replaced in 1.2 with ffmpeg by default
+ # but I've elected to not make people change their use flags for AAC
+ # as its the same code anyway
+ local myconfargs=(
+ --force
+ --verbose
+ --prefix="${EPREFIX}/usr"
+ --disable-flatpak
+ $(usex !gtk --disable-gtk)
+ --disable-gtk4
+ $(usex !gstreamer --disable-gst)
+ $(use_enable x265)
+ $(use_enable numa)
+ $(use_enable fdk fdk-aac)
+ --enable-ffmpeg-aac # Forced on
+ $(use_enable nvenc)
+ # TODO: $(use_enable qsv)
+ # TODO: $(use_enable vce)
+ )
+
+ edo ./configure "${myconfargs[@]}"
+}
+
+src_compile() {
+ emake -C build
+}
+
+src_install() {
+ emake -C build DESTDIR="${D}" install
+ dodoc README.markdown AUTHORS.markdown NEWS.markdown THANKS.markdown
+}
+
+pkg_postinst() {
+ einfo "Gentoo builds of HandBrake are NOT SUPPORTED by upstream as they"
+ einfo "do not use the bundled (and often patched) upstream libraries."
+ einfo ""
+ einfo "Please do not raise bugs with upstream because of these ebuilds,"
+ einfo "report bugs to Gentoo's bugzilla or Multimedia forum instead."
+
+ einfo "For the CLI version of HandBrake, you can use \`HandBrakeCLI\`."
+ if use gtk ; then
+ einfo "For the GTK+ version of HandBrake, you can run \`ghb\`."
+ fi
+
+ xdg_pkg_postinst
+}
diff --git a/media-video/handbrake/handbrake-9999.ebuild b/media-video/handbrake/handbrake-9999.ebuild
index 81707377e6f7..41a2061311b8 100644
--- a/media-video/handbrake/handbrake-9999.ebuild
+++ b/media-video/handbrake/handbrake-9999.ebuild
@@ -3,18 +3,18 @@
EAPI=8
-PYTHON_COMPAT=( python3_{9..10} )
+PYTHON_COMPAT=( python3_{10..12} )
-inherit autotools python-any-r1 toolchain-funcs xdg
+inherit autotools edo python-any-r1 toolchain-funcs xdg
-if [[ ${PV} = *9999* ]]; then
+if [[ ${PV} == *9999* ]]; then
EGIT_REPO_URI="https://github.com/HandBrake/HandBrake.git"
inherit git-r3
else
MY_P="HandBrake-${PV}"
SRC_URI="https://github.com/HandBrake/HandBrake/releases/download/${PV}/${MY_P}-source.tar.bz2 -> ${P}.tar.bz2"
S="${WORKDIR}/${MY_P}"
- KEYWORDS="~amd64 ~x86"
+ KEYWORDS="~amd64 ~arm64 ~x86"
fi
DESCRIPTION="Open-source, GPL-licensed, multiplatform, multithreaded video transcoder"
@@ -22,31 +22,32 @@ HOMEPAGE="https://handbrake.fr/ https://github.com/HandBrake/HandBrake"
LICENSE="GPL-2"
SLOT="0"
-IUSE="+fdk gstreamer gtk libav-aac numa nvenc x265"
+IUSE="+fdk gstreamer gtk numa nvenc x265" # TODO: qsv vce
-REQUIRED_USE="^^ ( fdk libav-aac )"
+REQUIRED_USE="numa? ( x265 )"
RDEPEND="
- app-arch/xz-utils
+ >=app-arch/xz-utils-5.2.6
dev-libs/jansson:=
- dev-libs/libxml2
+ >=dev-libs/libxml2-2.10.3
media-libs/a52dec
- >=media-libs/dav1d-0.5.1:=
- media-libs/libjpeg-turbo:=
- media-libs/libass:=
- >=media-libs/libbluray-1.0:=
+ >=media-libs/dav1d-1.0.0:=
+ >=media-libs/libjpeg-turbo-2.1.4:=
+ >=media-libs/libass-0.16.0:=
+ >=media-libs/libbluray-1.3.4:=
media-libs/libdvdnav
- media-libs/libdvdread:=
+ >=media-libs/libdvdread-6.1.3:=
media-libs/libsamplerate
media-libs/libtheora
media-libs/libvorbis
- >=media-libs/libvpx-1.8:=
+ >=media-libs/libvpx-1.12.0:=
media-libs/opus
- media-libs/speex
- media-libs/x264:=
- media-libs/zimg
+ >=media-libs/speex-1.2.1
+ >=media-libs/svt-av1-1.4.1
+ >=media-libs/x264-0.0.20220222:=
+ >=media-libs/zimg-3.0.4
media-sound/lame
- >=media-video/ffmpeg-4.2.1:0=[postproc,fdk?]
+ >=media-video/ffmpeg-5.1.2:=[postproc,fdk?]
sys-libs/zlib
fdk? ( media-libs/fdk-aac:= )
gstreamer? (
@@ -70,8 +71,11 @@ RDEPEND="
x11-libs/libnotify
x11-libs/pango
)
- nvenc? ( media-libs/nv-codec-headers )
- x265? ( >=media-libs/x265-3.2:0=[10bit,12bit,numa?] )
+ nvenc? (
+ media-libs/nv-codec-headers
+ media-video/ffmpeg[nvenc]
+ )
+ x265? ( >=media-libs/x265-3.5-r2:=[10bit,12bit,numa?] )
"
DEPEND="${RDEPEND}"
# cmake needed for custom script: bug #852701
@@ -79,7 +83,6 @@ BDEPEND="
${PYTHON_DEPS}
dev-lang/nasm
dev-util/cmake
- dev-util/intltool
"
PATCHES=(
@@ -87,14 +90,11 @@ PATCHES=(
# It may work this way; if not, we should try to mimic the duplication.
"${FILESDIR}/${PN}-9999-remove-dvdnav-dup.patch"
- # Remove faac dependency; TODO: figure out if we need to do this at all.
- "${FILESDIR}/${PN}-9999-remove-faac-dependency.patch"
-
# Detect system tools - bug 738110
"${FILESDIR}/${PN}-9999-system-tools.patch"
# Use whichever python is set by portage
- "${FILESDIR}/${PN}-1.3.0-dont-search-for-python.patch"
+ "${FILESDIR}/${PN}-9999-dont-search-for-python.patch"
# Fix x265 linkage... again again #730034
"${FILESDIR}/${PN}-1.3.3-x265-link.patch"
@@ -122,19 +122,20 @@ src_configure() {
--force
--verbose
--prefix="${EPREFIX}/usr"
- --disable-gtk-update-checks
--disable-flatpak
- --disable-gtk4
- $(use_enable libav-aac ffmpeg-aac)
- $(use_enable fdk fdk-aac)
$(usex !gtk --disable-gtk)
+ --disable-gtk4
$(usex !gstreamer --disable-gst)
+ $(use_enable x265)
$(use_enable numa)
+ $(use_enable fdk fdk-aac)
+ --enable-ffmpeg-aac # Forced on
$(use_enable nvenc)
- $(use_enable x265)
+ # TODO: $(use_enable qsv)
+ # TODO: $(use_enable vce)
)
- ./configure "${myconfargs[@]}" || die "Configure failed."
+ edo ./configure "${myconfargs[@]}"
}
src_compile() {
diff --git a/media-video/hevc-hm/hevc-hm-17.0.ebuild b/media-video/hevc-hm/hevc-hm-17.0.ebuild
index 1b07951ca5ac..acf90fa78aa3 100644
--- a/media-video/hevc-hm/hevc-hm-17.0.ebuild
+++ b/media-video/hevc-hm/hevc-hm-17.0.ebuild
@@ -11,7 +11,7 @@ SRC_URI="https://vcgit.hhi.fraunhofer.de/jvet/HM/-/archive/HM-${PV}/HM-HM-${PV}.
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~mips ~riscv"
+KEYWORDS="amd64 arm ~ia64 ~loong ~mips ~riscv"
S="${WORKDIR}/HM-HM-${PV}"
diff --git a/media-video/jellyfin-media-player/Manifest b/media-video/jellyfin-media-player/Manifest
index d1255f337f9f..a67f2b616569 100644
--- a/media-video/jellyfin-media-player/Manifest
+++ b/media-video/jellyfin-media-player/Manifest
@@ -1,3 +1,4 @@
DIST jellyfin-media-player-1.7.1.tar.gz 575001 BLAKE2B b650f981427721a254fd1dcaa58ebf9f93aba47de50f8c24db27e917de8cd8ebb3da67afa68990845f9e019aac0c8d81f5440dd72f604aa74cdc71d8cc476d8f SHA512 7f8cd4c9094254a133430b1d1594d44a92696cd769323ecc51ef973dde1f09b013f9ade0affb9e364d922935994613f662667af46f90aae2ae04d6cb9deb86f0
DIST jellyfin-media-player-1.8.1.tar.gz 582343 BLAKE2B a5fa8d20cd3ec6e4444c1e9d90b93622f7435c2ccbf886c02ce744aa7aeb5a2440b07b3e5b3edb81bb6675d82958f5d63147412dd3d28fced60060de5724e52b SHA512 821bfa42e981d996c7f32f3951e625749a74636ebcb6a6c68c606282fb0db6d4c205419887828cc0dcdd3005d88b237977a01a82e2800a489c8bf3abac33630f
DIST jellyfin-media-player-1.9.0.tar.gz 519208 BLAKE2B c64bb40011dd3761144e70c9549329c921156d9b0c46425e9812d6210baa8b90df7ac8f5af3379da76f6b8c6a55a3d8ac903ce5481895135eaea720d2ce936a2 SHA512 58c35530d61405ed5ff5a73c8a4f3869b21e0b0b0eb5cef7cf15b846543f1070d5c2b4dbfc102c6b4fbce5cb844fea711045d39c1a6bae9c882ad24c6ccd0333
+DIST jellyfin-media-player-1.9.1.tar.gz 519515 BLAKE2B 0240d4f964a48e476531e0e601a62f270defa98ef2d4c0e63e2a552a03e6abf2e069e38b80fa9515b5c3cb62d789c3fc630a1f726cc4aa3bcab7e39869ef4b2f SHA512 c6df563ff343b8b6b570bdbaca9cd0111ed2b3f347c40888a83d338893a0523eb1614fd5fb2f4463e97f9656f71af23d94b110fff473c71226180530822ed0dd
diff --git a/media-video/jellyfin-media-player/jellyfin-media-player-1.9.1.ebuild b/media-video/jellyfin-media-player/jellyfin-media-player-1.9.1.ebuild
new file mode 100644
index 000000000000..23b1b45d7776
--- /dev/null
+++ b/media-video/jellyfin-media-player/jellyfin-media-player-1.9.1.ebuild
@@ -0,0 +1,69 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+inherit cmake python-any-r1
+
+DESCRIPTION="Jellyfin Desktop Client based on Plex Media Player"
+HOMEPAGE="https://github.com/jellyfin/jellyfin-media-player"
+
+SRC_URI="
+ https://github.com/jellyfin/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
+"
+
+LICENSE="GPL-2"
+SLOT="0"
+
+KEYWORDS="~amd64"
+IUSE="+dbus"
+
+DEPEND="
+ dev-libs/libcec
+ dev-qt/qtcore:5
+ dev-qt/qtdeclarative:5
+ dev-qt/qtgui:5
+ dev-qt/qtnetwork:5
+ dev-qt/qtquickcontrols:5
+ dev-qt/qtwebchannel:5
+ dev-qt/qtwebengine:5
+ dev-qt/qtwidgets:5
+ dev-qt/qtwidgets:5
+ dev-qt/qtx11extras:5
+ dev-qt/qtxml:5
+ media-libs/libsdl2
+ media-video/mpv:=[libmpv]
+ sys-libs/zlib
+ virtual/opengl
+ x11-libs/libX11
+ x11-libs/libXrandr
+ dbus? ( dev-qt/qtdbus:5 )
+"
+
+BDEPEND="
+ ${PYTHON_DEPS}
+ virtual/pkgconfig
+"
+
+# x11-misc/xdg-utils is used for xdg-screensaver, which is used to inhibit
+# screen locking
+
+RDEPEND="
+ ${DEPEND}
+ ~media-video/jellyfin-web-bin-10.8.10
+ !dbus? ( x11-misc/xdg-utils )
+"
+
+src_configure() {
+ local mycmakeargs=(
+ -DOpenGL_GL_PREFERENCE=GLVND
+ # PMP, at least prior to the fork into JMP, used to download codecs,
+ # for safe measure, disable that.
+ -DENABLE_CODECS=OFF
+ # LINUX_X11POWER instructs JMP to use xdg-screensaver instead of dbus
+ # for inhibiting screen saving.
+ -DLINUX_X11POWER="$(usex dbus OFF ON)"
+ )
+ cmake_src_configure
+}
diff --git a/media-video/jellyfin-web-bin/Manifest b/media-video/jellyfin-web-bin/Manifest
index 986ba06b30da..c9ab2161ce03 100644
--- a/media-video/jellyfin-web-bin/Manifest
+++ b/media-video/jellyfin-web-bin/Manifest
@@ -1 +1,2 @@
+DIST jellyfin-web_10.8.10_portable.tar.gz 44617443 BLAKE2B 6bfd14edd91039cd714326950fe420df77e7f5196f63fa704a3d033958acdeabef3d9639cfee63775013b89efac7de96f3d9f118fb79f5580c05d819f97d25b8 SHA512 b87b7cd5dc84abbbff127fc2d4a8ecfc04e2a98b37ed6232758c45251fd1f3e60fdf6a0e66bd994b5eea99d0c60f26562e257059a0fc6ec2b3e6a2a52588b51b
DIST jellyfin-web_10.8.9_portable.tar.gz 44617681 BLAKE2B c7db2d82c160391d3df1953725da54e4e16d09955ac45a2e844bdf802d47022afbe818b6787571dc0bc19a9db2ab67b254abaab7e17d72d02b8310da6e5a5160 SHA512 3f6fb592bf44e38664554881e931969b3cb173cabcb90d5b6e86a181263b07976fc2dc7d91cb4c08e814cbf2a950b6942ffe2080fe93567ab4d212a8956805f8
diff --git a/media-video/jellyfin-web-bin/jellyfin-web-bin-10.8.10.ebuild b/media-video/jellyfin-web-bin/jellyfin-web-bin-10.8.10.ebuild
new file mode 100644
index 000000000000..5bb80c0c2a83
--- /dev/null
+++ b/media-video/jellyfin-web-bin/jellyfin-web-bin-10.8.10.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Web Client for Jellyfin"
+HOMEPAGE="https://github.com/jellyfin/jellyfin-media-player"
+SRC_URI="
+ https://repo.jellyfin.org/releases/server/portable/versions/stable/web/${PV}/jellyfin-web_${PV}_portable.tar.gz
+"
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64"
+
+BDEPEND="
+ app-arch/unzip
+"
+
+RDEPEND="
+ !media-video/jellyfin-web-jmp-bin
+"
+
+S="${WORKDIR}/jellyfin-web_${PV}"
+
+src_install() {
+ insinto /usr/share/jellyfinmediaplayer/web-client/desktop
+ doins -r .
+}
diff --git a/media-video/jubler/Manifest b/media-video/jubler/Manifest
index 05eb56e5bf4f..062d06115937 100644
--- a/media-video/jubler/Manifest
+++ b/media-video/jubler/Manifest
@@ -1 +1,2 @@
DIST jubler-5.1.tar.bz2 1815531 BLAKE2B 59f9c3c57b906a73e16b32841900ef16450758115d930e767bc4d63882ad2b8a35100a34057ab6bb353f4bea87cb4036e080d8d13a844ae4bfcae8bb361d5b18 SHA512 e2a0da737362a3c8dc12966aec1e9939291237fc714a586186b72daa16abf967c8fea8dac04fb191cb803aa11db20cf6d67468d2383f17f5c6114a643860acef
+DIST jubler-7.0.3.tar.gz 24201905 BLAKE2B 9ac33ed8da3045944be32cc914aaa45ff0de3193aa1b699f144131f79a83c1932f1e74d730102c9227ef2a08a66efb1d50fb010cfc2e70c8678febd07eb1513d SHA512 a1c6b8a33439f0206378e2792748b06a163fd8083714f18ca57940422c8a8730369925c21f377eb42b8b91ffcae81d5f0219f4c9fee814f8a2f60b51e2356726
diff --git a/media-video/jubler/files/7.0.3-helpme.patch b/media-video/jubler/files/7.0.3-helpme.patch
new file mode 100644
index 000000000000..ac0be65c5598
--- /dev/null
+++ b/media-video/jubler/files/7.0.3-helpme.patch
@@ -0,0 +1,13 @@
+--- a/modules/core/src/main/java/com/panayotis/jubler/os/SystemFileFinder.java
++++ b/modules/core/src/main/java/com/panayotis/jubler/os/SystemFileFinder.java
+@@ -65,7 +65,9 @@ public class SystemFileFinder {
+ }
+
+ private static boolean loadLibraryImpl(String name) {
+- File libfile = findFile("lib" + File.separator + SystemDependent.mapLibraryName(name));
++ System.out.println("SystemDependent.mapLibraryName is " + SystemDependent.mapLibraryName(name));
++ File libfile = findFile(SystemDependent.mapLibraryName(name));
++ System.out.println("libfile is " + libfile);
+ if (libfile != null)
+ try {
+ System.load(libfile.getAbsolutePath());
diff --git a/media-video/jubler/jubler-7.0.3.ebuild b/media-video/jubler/jubler-7.0.3.ebuild
new file mode 100644
index 000000000000..0b14f079e2b1
--- /dev/null
+++ b/media-video/jubler/jubler-7.0.3.ebuild
@@ -0,0 +1,151 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Skeleton command:
+# java-ebuilder --generate-ebuild --workdir . --pom pom.xml --download-uri https://github.com/teras/Jubler/archive/v7.0.3.tar.gz --slot 0 --keywords "~amd64" --ebuild jubler-7.0.3.ebuild
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc source"
+MAVEN_ID="com.panayotis.jubler:project:7.0.3"
+
+inherit desktop java-pkg-2 java-pkg-simple toolchain-funcs xdg-utils
+
+DESCRIPTION="Jubler Subtitle Εditor"
+HOMEPAGE="https://www.jubler.org/"
+SRC_URI="https://github.com/teras/Jubler/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+CP_DEPEND="dev-java/appenh:0"
+
+DEPEND="${CP_DEPEND}
+ media-video/ffmpeg:0=
+ >=virtual/jdk-1.8:*"
+
+RDEPEND="${CP_DEPEND}
+ >=virtual/jre-1.8:*"
+
+JUBLER_MODULES=(
+ "jubler"
+ "appenhancer"
+ "aspell"
+ "basetextsubs"
+ "coretools"
+ "mplayer"
+ "zemberek"
+)
+
+HTML_DOCS=( ChangeLog.html )
+
+PATCHES=( "${FILESDIR}/7.0.3-helpme.patch" )
+
+S="${WORKDIR}/Jubler-${PV}"
+
+src_prepare() {
+ java-pkg-2_src_prepare
+ default
+ # decodeaudio.c:82:24: error: 'AVCODEC_MAX_AUDIO_FRAME_SIZE' undeclared (first use in this function); did you mean 'AV_CODEC_CAP_VARIABLE_FRAME_SIZE'?
+ # decodeaudio.c:176:49: error: 'CODEC_ID_NONE' undeclared (first use in this function); did you mean 'AV_CODEC_ID_NONE'?
+ # decodeaudio.c:180:38: error: 'AVCodecContext' has no member named 'request_channels'; did you mean 'request_channel_layout'?
+ # decodeframe.c:230:31: error: 'PIX_FMT_RGB24' undeclared (first use in this function); did you mean 'AV_PIX_FMT_RGB24'?
+ # decodeaudio.c:197:79: error: 'AVIO_WRONLY' undeclared (first use in this function # https://github.com/FFmpeg/FFmpeg/commit/59d96941f0
+ # decodeaudio.c:239:26: error: 'AVCodecContext' has no member named 'request_channels'; did you mean 'request_channel_layout'?
+ # makecache.c:94:28: error: 'AVCODEC_MAX_AUDIO_FRAME_SIZE' undeclared (first use in this function); did you mean 'AV_CODEC_CAP_VARIABLE_FRAME_SIZE'?
+ # decodeaudio.c:339:25: error: 'CODEC_FLAG_GLOBAL_HEADER' undeclared (first use in this function); did you mean 'AV_CODEC_FLAG_GLOBAL_HEADER'
+ sed \
+ -e 's:AVCODEC_MAX_AUDIO_FRAME_SIZE:AV_CODEC_CAP_VARIABLE_FRAME_SIZE:' \
+ -e 's:CODEC_ID_NONE:AV_CODEC_ID_NONE:' \
+ -e 's:request_channels:request_channel_layout:' \
+ -e 's:PIX_FMT_RGB24:AV_PIX_FMT_RGB24:' \
+ -e 's:AVIO_WRONLY:AVIO_FLAG_WRITE:' \
+ -e 's:CODEC_FLAG_GLOBAL_HEADER:AV_CODEC_FLAG_GLOBAL_HEADER:' \
+ -e 's:CodecID:AVCodecID:' \
+ -i resources/ffmpeg/ffdecode/*.c || die
+}
+
+src_compile() {
+ einfo "Compiling the ffdecode library"
+ pushd resources/ffmpeg/ffdecode || die
+ local args=(
+ JAVA_HOME="$(java-config -g JAVA_HOME)"
+ STATIC="no"
+ CC="$(tc-getCC)"
+ STRIP="$(tc-getSTRIP)"
+ LIBNAME="libffdecode.so"
+ )
+ emake "${args[@]}"
+ popd
+
+ jar -cf coretheme.jar -C modules/coretheme/src/main/resources/ . || die
+ JAVA_GENTOO_CLASSPATH_EXTRA+=":coretheme.jar"
+
+ mv modules/{core,jubler} || die
+
+ local module
+ for module in "${JUBLER_MODULES[@]}"; do
+ einfo "Compiling module \"${module}\""
+ JAVA_SRC_DIR="modules/${module}/src/main/java"
+ JAVA_RESOURCE_DIRS="modules/${module}/src/main/resources"
+ JAVA_JAR_FILENAME="${module}.jar"
+ if [[ ${module} == jubler ]]; then
+ JAVA_MAIN_CLASS="Jubler"
+ fi
+
+ java-pkg-simple_src_compile
+ JAVA_GENTOO_CLASSPATH_EXTRA+=":${module}.jar"
+ JAVA_MAIN_CLASS=""
+ rm -r target || die
+ done
+
+ if use doc; then
+ einfo "Compiling javadocs"
+ JAVA_SRC_DIR=()
+ for module in "${JUBLER_MODULES}"; do
+ JAVA_SRC_DIR+=( "modules/${module}/src/main/java" )
+ done
+ JAVA_JAR_FILENAME="ignoreme.jar"
+ java-pkg-simple_src_compile
+ fi
+}
+
+src_install() {
+ java-pkg_doso dist/lib/libffdecode.so
+ java-pkg_dojar "coretheme.jar"
+ local module
+ for module in "${JUBLER_MODULES[@]}"; do
+ java-pkg_dojar ${module}.jar
+ if use source; then
+ java-pkg_dosrc "modules/${module}/src/main/java/*"
+ fi
+ done
+
+ if use doc; then
+ java-pkg_dojavadoc target/api
+ fi
+
+ java-pkg_dolauncher "jubler" --main Jubler
+
+ domenu resources/installers/linux/jubler.desktop
+ doicon -s 32 resources/installers/linux/jubler32.png
+ doicon -s 64 resources/installers/linux/jubler64.png
+ doicon -s 128 resources/installers/linux/jubler128.png
+ doicon modules/jubler/src/main/resources/icons/splash.jpg
+ doicon -s 16 modules/jubler/src/main/resources/icons/crossmobile.png
+
+ # modules/installer/pom.xml#L90-L94
+ insinto /usr/share/${PN}/lib/i18n
+ doins -r resources/i18n/cache
+ insinto /usr/share/${PN}/lib/help
+ doins resources/help/{cache/jubler-faq.html,jubler-faq.xml,question.png}
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+}
diff --git a/media-video/jubler/metadata.xml b/media-video/jubler/metadata.xml
index 77e1c11c60b3..206f60aebeb8 100644
--- a/media-video/jubler/metadata.xml
+++ b/media-video/jubler/metadata.xml
@@ -5,6 +5,8 @@
<email>java@gentoo.org</email>
</maintainer>
<upstream>
- <remote-id type="google-code">jubler</remote-id>
+ <bugs-to>https://github.com/teras/Jubler/issues</bugs-to>
+ <changelog>https://www.jubler.org/changelog.html</changelog>
+ <remote-id type="github">teras/Jubler</remote-id>
</upstream>
</pkgmetadata>
diff --git a/media-video/libva-utils/Manifest b/media-video/libva-utils/Manifest
index 565a6bbe6d9c..82ff3113e1ad 100644
--- a/media-video/libva-utils/Manifest
+++ b/media-video/libva-utils/Manifest
@@ -1,2 +1,2 @@
-DIST libva-utils-2.17.1.tar.gz 1276454 BLAKE2B bde2b784c6470721b113d5a4429ac0b02b922a6bf37d3554d4c088736d184cb8d8107b714e37d0ba517fd9a52ba43247cd4985604421b5e63af841b649786366 SHA512 db89f70c6efb34d0e390a443b29d706ac6339e157e6451a96aa50d4246ce08b8276608874f20d115a2576b8876c95a2e34abba8fe0a446f6736a807779517c6c
-DIST libva-utils-2.18.1.tar.gz 1279583 BLAKE2B 84620e1c9cd24c0cddc4df93e598d858cec299af3a6776c3ee723be8cad3061f5d433d5d9ec1ff97f801ad5f14db93ef021c7bb40d7c7898d8d04fb9ac15ed07 SHA512 b83ac6395715b1970d56c4b03ac0331f444dad7e4159f00ce5891401c97aaac101a5be2b2123e2fe31350f7c09cd665e38ed01541c1be95b3d3ef822cafd6dea
+DIST libva-utils-2.18.2.tar.gz 1279586 BLAKE2B 26ba87ef6973cb9960f9a646da9d6467dceb27ce9527d007e92716b4480d3d21711e23cf37f51236da640f6e6eefb421f167e0f87926e966f2f53a699f4110e5 SHA512 cdbf2d542f2d7a442af017a924dd4835f22e367fab89f08ab2beabc535035ed11cdeb2ce581b178ecdb9fd1545fa8fde57b7bc15c8c591cc9c2b5f9ebf572ee7
+DIST libva-utils-2.19.0.tar.gz 1280543 BLAKE2B dea218b1b0832acab9d4ea71ee0d4b20460ef8dc3d3323b41ead552c6ff5ca3a7b2e6e5873a84dcfe48f4e5ade56ab177b4feb390bed660478483519fe264d5d SHA512 30004680dccbca0d7d9eb32abfc37f595d09293ea7f64fe6dcc7c3b010d754fe21b4e2eef55f54f58014745fd9f389910ebfdc8c9472906dae8967f6f6cedeb8
diff --git a/media-video/libva-utils/libva-utils-2.17.1.ebuild b/media-video/libva-utils/libva-utils-2.18.2.ebuild
index 28c1a1ca332c..f5fb22778737 100644
--- a/media-video/libva-utils/libva-utils-2.17.1.ebuild
+++ b/media-video/libva-utils/libva-utils-2.18.2.ebuild
@@ -6,7 +6,7 @@ EAPI=8
inherit meson
DESCRIPTION="Collection of utilities and tests for VA-API"
-HOMEPAGE="https://01.org/linuxmedia/vaapi"
+HOMEPAGE="https://github.com/intel/libva-utils"
if [[ ${PV} = *9999 ]] ; then
inherit git-r3
EGIT_REPO_URI="https://github.com/intel/libva-utils"
diff --git a/media-video/libva-utils/libva-utils-2.18.1.ebuild b/media-video/libva-utils/libva-utils-2.19.0.ebuild
index f2d6709a0a66..f2d6709a0a66 100644
--- a/media-video/libva-utils/libva-utils-2.18.1.ebuild
+++ b/media-video/libva-utils/libva-utils-2.19.0.ebuild
diff --git a/media-video/libva-utils/libva-utils-9999.ebuild b/media-video/libva-utils/libva-utils-9999.ebuild
index f2d6709a0a66..4641d69cb961 100644
--- a/media-video/libva-utils/libva-utils-9999.ebuild
+++ b/media-video/libva-utils/libva-utils-9999.ebuild
@@ -6,7 +6,7 @@ EAPI=8
inherit meson
DESCRIPTION="Collection of utilities and tests for VA-API"
-HOMEPAGE="https://01.org/linuxmedia/vaapi"
+HOMEPAGE="https://github.com/intel/libva-utils"
if [[ ${PV} = *9999 ]] ; then
inherit git-r3
EGIT_REPO_URI="https://github.com/intel/libva-utils"
diff --git a/media-video/lxdvdrip/files/lxdvdrip-1.77-clang-16-build.patch b/media-video/lxdvdrip/files/lxdvdrip-1.77-clang-16-build.patch
new file mode 100644
index 000000000000..98f1ae30220d
--- /dev/null
+++ b/media-video/lxdvdrip/files/lxdvdrip-1.77-clang-16-build.patch
@@ -0,0 +1,38 @@
+https://bugs.gentoo.org/885573
+--- a/dvdbackup.c
++++ b/dvdbackup.c
+@@ -30,6 +30,7 @@ COMMENTAIRE :
+
+ #include "const.h"
+ #include "dvdformat.h"
++#include "dvdcopy.h"
+ #include "dvdinfo.h"
+ #include "globals.h"
+ #include "systools.h"
+--- a/dvdcopy.h
++++ b/dvdcopy.h
+@@ -14,6 +14,7 @@ COMMENTAIRE :
+
+ #ifndef __DVDCOPY_H__
+ #define __DVDCOPY_H__
++#include <dvdread/ifo_read.h>
+ /*@$#[dvdcopy.c] global proto. AutoProtoSigV1.1. date: 106/01/05 21:32:04 */
+ #include "proto.h"
+ #ifdef __cplusplus
+--- a/systools.c
++++ b/systools.c
+@@ -20,12 +20,8 @@ COMMENTAIRE :
+ #include <stdlib.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
+-#if defined(__sun)
+-# include <sys/statvfs.h>
+-# include <sys/ioctl.h>
+-#else
+-# include <sys/statfs.h>
+-#endif
++#include <sys/statfs.h>
++#include <sys/ioctl.h>
+ #include <fcntl.h>
+ #include <unistd.h>
+ #if defined(__sun)
diff --git a/media-video/lxdvdrip/lxdvdrip-1.77-r2.ebuild b/media-video/lxdvdrip/lxdvdrip-1.77-r2.ebuild
new file mode 100644
index 000000000000..e1f495467a8e
--- /dev/null
+++ b/media-video/lxdvdrip/lxdvdrip-1.77-r2.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="Command line tool to automate the process of ripping and burning DVDs"
+HOMEPAGE="https://sourceforge.net/projects/lxdvdrip/"
+SRC_URI="mirror://sourceforge/lxdvdrip/${P}.tgz"
+S="${WORKDIR}/${PN}"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+
+DEPEND="media-libs/libdvdread"
+RDEPEND="${DEPEND}
+ >=media-video/dvdauthor-0.6.9
+ media-video/streamdvd
+ media-video/mpgtx
+"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-makefile.patch
+ "${FILESDIR}"/${P}-vamps-makefile.patch
+ "${FILESDIR}"/${P}-clang-16-build.patch
+)
+
+src_compile() {
+ tc-export CC
+ emake
+ emake -C vamps
+}
+
+src_install() {
+ dobin lxdvdrip
+ dobin lxac3scan
+ dodoc doc-pak/Changelog* doc-pak/Credits doc-pak/Debugging.*
+ dodoc doc-pak/lxdvdrip.conf* doc-pak/README*
+ doman lxdvdrip.1
+
+ insinto /usr/share
+ doins lxdvdrip.wav
+
+ insinto /etc
+ newins doc-pak/lxdvdrip.conf.EN lxdvdrip.conf
+
+ cd vamps || die
+ emake PREFIX="${D}/usr" install
+}
diff --git a/media-video/makemkv/Manifest b/media-video/makemkv/Manifest
index b572816f8441..526bb1f52c94 100644
--- a/media-video/makemkv/Manifest
+++ b/media-video/makemkv/Manifest
@@ -1,2 +1,2 @@
-DIST makemkv-bin-1.17.3.tar.gz 16402650 BLAKE2B adc7bb6e093247d782c57de2f304b5715c0e21d0572927551fc3830fc15776c09d9593dee18d464f4d19e40a1e260facf750a494493048971b5f4cb1b40a372f SHA512 d085afd28d767a1605fb1acfabb65c7bf8998a46c00ac52d1c2833526d7761bb73bf019d826c40d5281e1318aef619d93d2fb358896968c5dbb435b9c6bcdbfd
-DIST makemkv-oss-1.17.3.tar.gz 6618376 BLAKE2B 640948c378cd0c329b3278ec91efaa3632287edb8a8dc9b9b9dde619e8360d8e53e5af2f2c24e2091b69ea2d842afcd2043a2eef98cfff9c98e418bd418ee5b2 SHA512 864a9903443dbaf1decb88981e892b8a5150052b773b24a319b8744a0244ccb770733cb5bae44fa014c748417bd2a4705867081e8a287a803ecddb128e3a543f
+DIST makemkv-bin-1.17.4.tar.gz 16402081 BLAKE2B 9be9fe1c2af35af7f5632857bccae45d9e6ba522fb8753eb40903a61ff73bc1ff40f2fade6d099059c5d7f716c0903ff16c3ff0849ff21728cc7eb8eafd19a95 SHA512 64251bfbbb3a5cad3a99e15a0a215ab8d3dd54fc267b1f22c9ab347fd744add78edd41d2cfd48086999f4e8912da4713974e36db96406fd18a7c930a61b2f6ec
+DIST makemkv-oss-1.17.4.tar.gz 6618658 BLAKE2B c64e209fc20e432c4befe794133fb06761f4fd2fb6eceb8ce4ce7292582768d10937850027aad0a02f31f920c647841427797b43ba6f1016ff0e5920ac466682 SHA512 6e69400ec3ce8df63e55d107a8f81ceab3f3182b5e02be2187eb2cac93c5002d3c614b96e1a3672562e32495c447fb1d7a018ac233d3a9e32f1d27957169283d
diff --git a/media-video/makemkv/files/makemkv-ffmpeg-6.patch b/media-video/makemkv/files/makemkv-ffmpeg-6.patch
new file mode 100644
index 000000000000..684d8186bab5
--- /dev/null
+++ b/media-video/makemkv/files/makemkv-ffmpeg-6.patch
@@ -0,0 +1,13 @@
+diff --git a/libffabi/src/ffabi.c b/libffabi/src/ffabi.c
+index 5dda9e1..2b29b87 100644
+--- a/libffabi/src/ffabi.c
++++ b/libffabi/src/ffabi.c
+@@ -478,7 +478,7 @@ FFM_AudioEncodeContext* __cdecl ffm_audio_encode_init(void* logctx,const char* n
+ #else
+ ctx->frame = av_frame_alloc();
+ if (av_sample_fmt_is_planar(ctx->avctx->sample_fmt)) {
+- ctx->frame_extended_data = av_mallocz_array(ctx->avctx->channels,
++ ctx->frame_extended_data = av_calloc(ctx->avctx->channels,
+ sizeof(*ctx->frame_extended_data));
+ if (!ctx->frame_extended_data) {
+ ffm_audio_encode_close(ctx);
diff --git a/media-video/makemkv/makemkv-1.17.4-r1.ebuild b/media-video/makemkv/makemkv-1.17.4-r1.ebuild
new file mode 100644
index 000000000000..05a97bd1d4f3
--- /dev/null
+++ b/media-video/makemkv/makemkv-1.17.4-r1.ebuild
@@ -0,0 +1,128 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit flag-o-matic linux-info xdg
+
+MY_P=makemkv-oss-${PV}
+MY_PB=makemkv-bin-${PV}
+
+DESCRIPTION="Tool for ripping and streaming Blu-ray, HD-DVD and DVD discs"
+HOMEPAGE="http://www.makemkv.com/"
+SRC_URI="http://www.makemkv.com/download/${MY_P}.tar.gz
+ http://www.makemkv.com/download/${MY_PB}.tar.gz"
+
+LICENSE="GPL-2 LGPL-2.1 MPL-1.1 MakeMKV-EULA openssl"
+SLOT="0"
+KEYWORDS="-* ~amd64 ~x86"
+IUSE="+gui +java"
+RESTRICT="bindist mirror"
+
+QA_PREBUILT="usr/bin/makemkvcon usr/bin/mmdtsdec"
+
+DEPEND="
+ dev-libs/expat
+ dev-libs/openssl:0=[-bindist(-)]
+ >=media-video/ffmpeg-1.0.0:0=
+ sys-libs/glibc
+ sys-libs/zlib
+ gui? (
+ dev-qt/qtcore:5
+ dev-qt/qtdbus:5
+ dev-qt/qtgui:5
+ dev-qt/qtwidgets:5
+ )
+"
+RDEPEND="
+ ${DEPEND}
+ java? ( >=virtual/jre-1.8 )
+"
+BDEPEND="
+ virtual/pkgconfig
+ gui? ( dev-qt/qtcore:5 )
+"
+
+CONFIG_CHECK="~CHR_DEV_SG"
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-path.patch
+ "${FILESDIR}"/${PN}-ffmpeg-6.patch
+)
+
+src_prepare() {
+ default
+
+ if ! use java; then
+ rm -v "${WORKDIR}/${MY_PB}"/src/share/blues.* || die
+ fi
+}
+
+src_configure() {
+ # See bug #439380.
+ replace-flags -O* -Os
+
+ econf \
+ --enable-debug \
+ --disable-noec \
+ $(use_enable gui) \
+ $(use_enable gui qt5)
+}
+
+src_install() {
+ local myarch
+ case "${ARCH}" in
+ arm) myarch=armel ;;
+ x86) myarch=i386 ;;
+ *) myarch=${ARCH} ;;
+ esac
+
+ default
+
+ # add missing symlinks for QA
+ dosym libdriveio.so.0 /usr/$(get_libdir)/libdriveio.so.0.${PV}
+ dosym libdriveio.so.0 /usr/$(get_libdir)/libdriveio.so
+ dosym libmakemkv.so.1 /usr/$(get_libdir)/libmakemkv.so.1.${PV}
+ dosym libmakemkv.so.1 /usr/$(get_libdir)/libmakemkv.so
+ dosym libmmbd.so.0 /usr/$(get_libdir)/libmmbd.so
+ dosym libmmbd.so.0 /usr/$(get_libdir)/libmmbd.so.0.${PV}
+
+ cd "${WORKDIR}"/${MY_PB} || die
+
+ # install prebuilt bin
+ dobin bin/"${myarch}"/makemkvcon
+
+ # additional tool is actually part of makemkvcon
+ dosym makemkvcon /usr/bin/sdftool
+
+ # install profiles and locales
+ insinto /usr/share/MakeMKV
+ doins src/share/*
+
+ # install unofficial man page
+ doman "${FILESDIR}"/makemkvcon.1
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+
+ elog "While MakeMKV is in beta mode, upstream has provided a license"
+ elog "to use if you do not want to purchase one."
+ elog ""
+ elog "See this forum thread for more information, including the key:"
+ elog "https://www.makemkv.com/forum/viewtopic.php?f=5&t=1053"
+ elog ""
+ elog "Note that beta license may have an expiration date and you will"
+ elog "need to check for newer licenses/releases. "
+ elog ""
+ elog "We previously said to copy default.mmcp.xml to ~/.MakeMKV/. This"
+ elog "is no longer necessary and you should delete it from there to"
+ elog "avoid warning messages."
+ elog ""
+ elog "MakeMKV can also act as a drop-in replacement for libaacs and"
+ elog "libbdplus, allowing transparent decryption of a wider range of"
+ elog "titles under players like VLC and mplayer. To enable this, set"
+ elog "the following variables when launching the player:"
+ elog "LIBAACS_PATH=libmmbd LIBBDPLUS_PATH=libmmbd"
+}
diff --git a/media-video/makemkv/makemkv-1.17.3.ebuild b/media-video/makemkv/makemkv-1.17.4.ebuild
index e99d889b48d6..e99d889b48d6 100644
--- a/media-video/makemkv/makemkv-1.17.3.ebuild
+++ b/media-video/makemkv/makemkv-1.17.4.ebuild
diff --git a/media-video/mediainfo/Manifest b/media-video/mediainfo/Manifest
index 489edf57fec0..5884eccb3763 100644
--- a/media-video/mediainfo/Manifest
+++ b/media-video/mediainfo/Manifest
@@ -1 +1,3 @@
DIST mediainfo_22.09.tar.xz 2016868 BLAKE2B c4b1766c4d49be6e90d11c736e4572e24299ae96efdfbf92ef9d32a418d7777cad2ae60ac7e6234cfa7c3a11996e46fb178996c536b9ce13dd19a0449ae8bf86 SHA512 acdeef13153fd74c29d54b9bdf4e983dd81525ace47550977d99cb5950ab72579cbbfc1ae39d81d89e03c491ea559177a16853d9db20d83a995eff300b864d4d
+DIST mediainfo_23.03.tar.xz 2027676 BLAKE2B 2da17afaccb3a8b4a1e19012cb3bb29284856f9d16e27026701b1c78add444e83c5fbb3e22ff39955ffa1c0b6f62e87224c0b35a0ff007296c4c065f58f83c87 SHA512 5082826a315fefaa48ea65a09a538225f1311cfb48285c939bb7ce2ebc38a2d444e6974ecb8062e02b60fbde27759b5828fc97dd7f9229e0066e9d193137fb5c
+DIST mediainfo_23.04.tar.xz 2022444 BLAKE2B 4e5c1c09b670ee20839c49365f0973d783ec7ed4bd336bed7574b6369f356f8f11fe63fe99dd80a28b2677b3c872bc45941b89c307190fe0b8ab867f66ab7755 SHA512 768ac916da81ea10323be2957a87058ba863015f26a337ba3b3db15e40e52c7cd7b24f2ca2508334e35cdae6476d147ed4c81eeabfe801fa9dc5ca68ceb1e7af
diff --git a/media-video/mediainfo/mediainfo-22.09.ebuild b/media-video/mediainfo/mediainfo-22.09.ebuild
index 76baf622975b..68f70427ddc8 100644
--- a/media-video/mediainfo/mediainfo-22.09.ebuild
+++ b/media-video/mediainfo/mediainfo-22.09.ebuild
@@ -1,9 +1,12 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-# Please bump with media-libs/libmediainfo!
+# These must be bumped together:
+# - media-libs/libzen (if a release is available)
+# - media-libs/libmediainfo
+# - media-video/mediainfo
WX_GTK_VER="3.0-gtk3"
inherit xdg-utils autotools wxwidgets
diff --git a/media-video/mediainfo/mediainfo-23.03.ebuild b/media-video/mediainfo/mediainfo-23.03.ebuild
new file mode 100644
index 000000000000..a45f63ada5af
--- /dev/null
+++ b/media-video/mediainfo/mediainfo-23.03.ebuild
@@ -0,0 +1,92 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# These must be bumped together:
+# - media-libs/libzen (if a release is available)
+# - media-libs/libmediainfo
+# - media-video/mediainfo
+
+WX_GTK_VER="3.0-gtk3"
+inherit xdg-utils autotools wxwidgets
+
+DESCRIPTION="MediaInfo supplies technical and tag information about media files"
+HOMEPAGE="https://mediaarea.net/mediainfo/ https://github.com/MediaArea/MediaInfo"
+SRC_URI="https://mediaarea.net/download/source/${PN}/${PV}/${P/-/_}.tar.xz"
+S="${WORKDIR}/MediaInfo"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="amd64 ~arm arm64 ~ppc ~ppc64 ~riscv x86"
+IUSE="curl mms wxwidgets"
+
+# The libzen dep usually needs to be bumped for each release!
+RDEPEND="
+ ~media-libs/libmediainfo-${PV}[curl=,mms=]
+ >=media-libs/libzen-0.4.41
+ sys-libs/zlib
+ wxwidgets? ( x11-libs/wxGTK:${WX_GTK_VER}[X] )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+pkg_setup() {
+ TARGETS="CLI"
+
+ if use wxwidgets; then
+ TARGETS+=" GUI"
+ setup-wxwidgets
+ fi
+}
+
+src_prepare() {
+ default
+
+ local target
+ for target in ${TARGETS}; do
+ cd "${S}"/Project/GNU/${target} || die
+ sed -i -e "s:-O2::" configure.ac || die
+ eautoreconf
+ done
+}
+
+src_configure() {
+ local target
+
+ for target in ${TARGETS}; do
+ cd "${S}"/Project/GNU/${target} || die
+ local args=""
+ [[ ${target} == "GUI" ]] && args="--with-wxwidgets --with-wx-gui"
+ econf ${args}
+ done
+}
+
+src_compile() {
+ local target
+
+ for target in ${TARGETS}; do
+ cd "${S}"/Project/GNU/${target} || die
+ default
+ done
+}
+
+src_install() {
+ local target
+
+ for target in ${TARGETS}; do
+ cd "${S}"/Project/GNU/${target} || die
+ default
+ dodoc "${S}"/History_${target}.txt
+ done
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+}
diff --git a/media-video/mediainfo/mediainfo-23.04.ebuild b/media-video/mediainfo/mediainfo-23.04.ebuild
new file mode 100644
index 000000000000..a45f63ada5af
--- /dev/null
+++ b/media-video/mediainfo/mediainfo-23.04.ebuild
@@ -0,0 +1,92 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# These must be bumped together:
+# - media-libs/libzen (if a release is available)
+# - media-libs/libmediainfo
+# - media-video/mediainfo
+
+WX_GTK_VER="3.0-gtk3"
+inherit xdg-utils autotools wxwidgets
+
+DESCRIPTION="MediaInfo supplies technical and tag information about media files"
+HOMEPAGE="https://mediaarea.net/mediainfo/ https://github.com/MediaArea/MediaInfo"
+SRC_URI="https://mediaarea.net/download/source/${PN}/${PV}/${P/-/_}.tar.xz"
+S="${WORKDIR}/MediaInfo"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="amd64 ~arm arm64 ~ppc ~ppc64 ~riscv x86"
+IUSE="curl mms wxwidgets"
+
+# The libzen dep usually needs to be bumped for each release!
+RDEPEND="
+ ~media-libs/libmediainfo-${PV}[curl=,mms=]
+ >=media-libs/libzen-0.4.41
+ sys-libs/zlib
+ wxwidgets? ( x11-libs/wxGTK:${WX_GTK_VER}[X] )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+pkg_setup() {
+ TARGETS="CLI"
+
+ if use wxwidgets; then
+ TARGETS+=" GUI"
+ setup-wxwidgets
+ fi
+}
+
+src_prepare() {
+ default
+
+ local target
+ for target in ${TARGETS}; do
+ cd "${S}"/Project/GNU/${target} || die
+ sed -i -e "s:-O2::" configure.ac || die
+ eautoreconf
+ done
+}
+
+src_configure() {
+ local target
+
+ for target in ${TARGETS}; do
+ cd "${S}"/Project/GNU/${target} || die
+ local args=""
+ [[ ${target} == "GUI" ]] && args="--with-wxwidgets --with-wx-gui"
+ econf ${args}
+ done
+}
+
+src_compile() {
+ local target
+
+ for target in ${TARGETS}; do
+ cd "${S}"/Project/GNU/${target} || die
+ default
+ done
+}
+
+src_install() {
+ local target
+
+ for target in ${TARGETS}; do
+ cd "${S}"/Project/GNU/${target} || die
+ default
+ dodoc "${S}"/History_${target}.txt
+ done
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+}
diff --git a/media-video/mjpegtools/files/mjpegtools-2.2.1-c++17-no-auto_ptr-fix.patch b/media-video/mjpegtools/files/mjpegtools-2.2.1-c++17-no-auto_ptr-fix.patch
new file mode 100644
index 000000000000..cc68c95c2493
--- /dev/null
+++ b/media-video/mjpegtools/files/mjpegtools-2.2.1-c++17-no-auto_ptr-fix.patch
@@ -0,0 +1,20 @@
+--- a/mplex/main.cpp
++++ b/mplex/main.cpp
+@@ -50,7 +50,7 @@
+ #include "multiplexor.hpp"
+
+
+-using std::auto_ptr;
++using std::unique_ptr;
+
+
+ /*************************************************************************
+@@ -138,7 +138,7 @@
+ void
+ FileOutputStream::NextSegment( )
+ {
+- auto_ptr<char> prev_filename_buf( new char[strlen(cur_filename)+1] );
++ unique_ptr<char[]> prev_filename_buf( new char[strlen(cur_filename)+1] );
+ char *prev_filename = prev_filename_buf.get();
+ fclose(strm);
+ ++segment_num;
diff --git a/media-video/mjpegtools/files/mjpegtools-2.2.1-c++17-register-fix.patch b/media-video/mjpegtools/files/mjpegtools-2.2.1-c++17-register-fix.patch
new file mode 100644
index 000000000000..b32cef5129a1
--- /dev/null
+++ b/media-video/mjpegtools/files/mjpegtools-2.2.1-c++17-register-fix.patch
@@ -0,0 +1,17 @@
+--- a/utils/fastintfns.h
++++ b/utils/fastintfns.h
+@@ -2,12 +2,12 @@
+ *
+ * WARNING: Assumes 2's complement arithmetic.
+ */
+-static inline int intmax( register int x, register int y )
++static inline int intmax( int x, int y )
+ {
+ return x < y ? y : x;
+ }
+
+-static inline int intmin( register int x, register int y )
++static inline int intmin( int x, int y )
+ {
+ return x < y ? x : y;
+ }
diff --git a/media-video/mjpegtools/mjpegtools-2.2.1.ebuild b/media-video/mjpegtools/mjpegtools-2.2.1-r1.ebuild
index c87164eacd60..a56461679280 100644
--- a/media-video/mjpegtools/mjpegtools-2.2.1.ebuild
+++ b/media-video/mjpegtools/mjpegtools-2.2.1-r1.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
-inherit autotools flag-o-matic multilib-minimal toolchain-funcs
+inherit autotools multilib-minimal
DESCRIPTION="Tools for MJPEG video"
HOMEPAGE="http://mjpeg.sourceforge.net/"
@@ -20,7 +20,7 @@ BDEPEND="
virtual/pkgconfig
"
RDEPEND="
- virtual/jpeg:0=[${MULTILIB_USEDEP}]
+ media-libs/libjpeg-turbo:0[static-libs?,${MULTILIB_USEDEP}]
dv? ( >=media-libs/libdv-1.0.0-r3[${MULTILIB_USEDEP}] )
gtk? ( x11-libs/gtk+:2 )
png? ( media-libs/libpng:0= )
@@ -40,6 +40,9 @@ DEPEND="
src_prepare() {
default
+ eapply "${FILESDIR}/${P}-c++17-register-fix.patch"
+ eapply "${FILESDIR}/${P}-c++17-no-auto_ptr-fix.patch"
+
eautoreconf
sed -i -e '/ARCHFLAGS=/s:=.*:=:' configure
}
diff --git a/media-video/mkvtoolnix/Manifest b/media-video/mkvtoolnix/Manifest
index f07ffbf4fa32..d51ec57a4d96 100644
--- a/media-video/mkvtoolnix/Manifest
+++ b/media-video/mkvtoolnix/Manifest
@@ -1 +1,3 @@
DIST mkvtoolnix-72.0.0.tar.xz 10994204 BLAKE2B 2118837c01d8d31644e0147dfdec9fd619d18ffbab5d317e5dd84788a83cdf162ea7d72e98549bbc2ffc7953e0b80a0e23018658d8c5ad529fc719b291589a97 SHA512 dc18c6e63e724181e38753921ec3374752dbb7c4d20650cf0787e9049aaec4f6bb6c744e49b3783921804f192de742fba92826615a1edc8516d2a41621be658c
+DIST mkvtoolnix-75.0.0.tar.xz 11009552 BLAKE2B d9c32a453ac1f07e201b99fdcaaa5e553b42c1d17fafdeb1a84808ee572caf00b4b49d04c90d7801564f4856e9b3057a45ef79041e72f76bc829c3b5d9536c58 SHA512 eca45828ec3cbb540c67d12d369f3314246d08812933a018e5c4f69e8bd2fa4e17143a33a1841c5a8da3befbc22509fa508e6688ea858980d13c44aaae4ead08
+DIST mkvtoolnix-77.0.tar.xz 11044004 BLAKE2B 5aa43e155c1318dc6c3fd4418fb59ec498ad488a8459cf0aefa0bc0660ff93dd51f2699642ea633695fbf76ae1b4b6cfddddfca1b0e72e16357b579ce8dbee42 SHA512 b310077cfaddef3163c732943f1aaf7e63fb9f7efb19fdb27a35e2d0ad92dfc4536ea29366b44745f3f918703b02e2d52edb63369c23540df1312f3d54c06bb0
diff --git a/media-video/mkvtoolnix/mkvtoolnix-75.0.0.ebuild b/media-video/mkvtoolnix/mkvtoolnix-75.0.0.ebuild
new file mode 100644
index 000000000000..19b76609dc6a
--- /dev/null
+++ b/media-video/mkvtoolnix/mkvtoolnix-75.0.0.ebuild
@@ -0,0 +1,135 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools flag-o-matic multiprocessing qmake-utils xdg
+
+if [[ ${PV} == *9999 ]] ; then
+ EGIT_REPO_URI="https://gitlab.com/mbunkus/mkvtoolnix.git"
+ EGIT_SUBMODULES=()
+ inherit git-r3
+else
+ SRC_URI="https://mkvtoolnix.download/sources/${P}.tar.xz"
+ KEYWORDS="amd64 ppc ppc64 x86"
+fi
+
+DESCRIPTION="Tools to create, alter, and inspect Matroska files"
+HOMEPAGE="https://mkvtoolnix.download/ https://gitlab.com/mbunkus/mkvtoolnix"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="dbus debug dvd gui nls pch test"
+RESTRICT="!test? ( test )"
+
+# check NEWS.md for build system changes entries for boost/libebml/libmatroska
+# version requirement updates and other packaging info
+RDEPEND="
+ dev-libs/boost:=
+ dev-libs/gmp:=
+ >=dev-libs/libebml-1.4.4:=
+ >=dev-libs/libfmt-8.0.1:=
+ >=dev-libs/pugixml-1.11:=
+ media-libs/flac:=
+ >=media-libs/libmatroska-1.7.1:=
+ media-libs/libogg:=
+ media-libs/libvorbis:=
+ sys-libs/zlib
+ dvd? ( media-libs/libdvdread:= )
+ dev-qt/qtcore:5
+ gui? (
+ dev-qt/qtsvg:5
+ dev-qt/qtgui:5
+ dev-qt/qtnetwork:5
+ dev-qt/qtwidgets:5
+ dev-qt/qtconcurrent:5
+ dev-qt/qtmultimedia:5
+ )
+ app-text/cmark:0=
+ dbus? ( dev-qt/qtdbus:5 )
+"
+DEPEND="${RDEPEND}
+ >=dev-cpp/nlohmann_json-3.9.1
+ >=dev-libs/utfcpp-3.1.2
+ test? ( dev-cpp/gtest )
+"
+BDEPEND="
+ app-text/docbook-xsl-stylesheets
+ dev-libs/libxslt
+ dev-ruby/rake
+ virtual/pkgconfig
+ nls? (
+ sys-devel/gettext
+ app-text/po4a
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}"/mkvtoolnix-58.0.0-qt5dbus.patch
+ "${FILESDIR}"/mkvtoolnix-67.0.0-no-uic-qtwidgets.patch
+)
+
+src_prepare() {
+ default
+
+ if [[ ${PV} == *9999 ]]; then
+ ./autogen.sh || die
+ fi
+
+ # bug #692018
+ sed -i -e 's/pandoc/diSaBlEd/' ac/pandoc.m4 || die
+
+ eautoreconf
+
+ # remove bundled libs
+ rm -r lib/{fmt,libebml,libmatroska,nlohmann-json,pugixml,utf8-cpp} || die
+}
+
+src_configure() {
+ # bug #692322, use system dev-libs/utfcpp
+ append-cppflags -I"${ESYSROOT}"/usr/include/utf8cpp
+
+ local myeconfargs=(
+ $(use_enable debug)
+ $(usex pch "" --disable-precompiled-headers)
+ $(use_enable dbus)
+
+ # Qt (of some version) is always needed, even for non-GUI builds,
+ # to do e.g. MIME detection. See e.g. bug #844097.
+ # But most of the Qt deps are conditional on a GUI build.
+ --disable-qt6
+ --enable-qt5
+ $(use_enable gui)
+ --with-qmake="$(qt5_get_bindir)"/qmake
+
+ $(use_with dvd dvdread)
+ $(use_with nls gettext)
+ #$(use_with nls po4a)
+ --disable-update-check
+ --disable-optimization
+ --with-boost="${ESYSROOT}"/usr
+ --with-boost-libdir="${ESYSROOT}"/usr/$(get_libdir)
+ )
+
+ # Work around bug #904710.
+ use nls || export ac_cv_path_PO4A=
+
+ econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+ rake V=1 -j$(makeopts_jobs) || die
+}
+
+src_test() {
+ rake V=1 -j$(makeopts_jobs) tests:unit || die
+ rake V=1 -j$(makeopts_jobs) tests:run_unit || die
+}
+
+src_install() {
+ DESTDIR="${D}" rake -j$(makeopts_jobs) install || die
+
+ einstalldocs
+ dodoc NEWS.md
+ doman doc/man/*.1
+}
diff --git a/media-video/mkvtoolnix/mkvtoolnix-77.0.ebuild b/media-video/mkvtoolnix/mkvtoolnix-77.0.ebuild
new file mode 100644
index 000000000000..d8fe3faed440
--- /dev/null
+++ b/media-video/mkvtoolnix/mkvtoolnix-77.0.ebuild
@@ -0,0 +1,135 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools flag-o-matic multiprocessing qmake-utils xdg
+
+if [[ ${PV} == *9999 ]] ; then
+ EGIT_REPO_URI="https://gitlab.com/mbunkus/mkvtoolnix.git"
+ EGIT_SUBMODULES=()
+ inherit git-r3
+else
+ SRC_URI="https://mkvtoolnix.download/sources/${P}.tar.xz"
+ KEYWORDS="amd64 ~ppc ppc64 x86"
+fi
+
+DESCRIPTION="Tools to create, alter, and inspect Matroska files"
+HOMEPAGE="https://mkvtoolnix.download/ https://gitlab.com/mbunkus/mkvtoolnix"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="dbus debug dvd gui nls pch test"
+RESTRICT="!test? ( test )"
+
+# check NEWS.md for build system changes entries for boost/libebml/libmatroska
+# version requirement updates and other packaging info
+RDEPEND="
+ dev-libs/boost:=
+ dev-libs/gmp:=
+ >=dev-libs/libebml-1.4.4:=
+ >=dev-libs/libfmt-8.0.1:=
+ >=dev-libs/pugixml-1.11:=
+ media-libs/flac:=
+ >=media-libs/libmatroska-1.7.1:=
+ media-libs/libogg:=
+ media-libs/libvorbis:=
+ sys-libs/zlib
+ dvd? ( media-libs/libdvdread:= )
+ dev-qt/qtcore:5
+ gui? (
+ dev-qt/qtsvg:5
+ dev-qt/qtgui:5
+ dev-qt/qtnetwork:5
+ dev-qt/qtwidgets:5
+ dev-qt/qtconcurrent:5
+ dev-qt/qtmultimedia:5
+ )
+ app-text/cmark:0=
+ dbus? ( dev-qt/qtdbus:5 )
+"
+DEPEND="${RDEPEND}
+ >=dev-cpp/nlohmann_json-3.9.1
+ >=dev-libs/utfcpp-3.1.2
+ test? ( dev-cpp/gtest )
+"
+BDEPEND="
+ app-text/docbook-xsl-stylesheets
+ dev-libs/libxslt
+ dev-ruby/rake
+ virtual/pkgconfig
+ nls? (
+ sys-devel/gettext
+ app-text/po4a
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}"/mkvtoolnix-58.0.0-qt5dbus.patch
+ "${FILESDIR}"/mkvtoolnix-67.0.0-no-uic-qtwidgets.patch
+)
+
+src_prepare() {
+ default
+
+ if [[ ${PV} == *9999 ]]; then
+ ./autogen.sh || die
+ fi
+
+ # bug #692018
+ sed -i -e 's/pandoc/diSaBlEd/' ac/pandoc.m4 || die
+
+ eautoreconf
+
+ # remove bundled libs
+ rm -r lib/{fmt,libebml,libmatroska,nlohmann-json,pugixml,utf8-cpp} || die
+}
+
+src_configure() {
+ # bug #692322, use system dev-libs/utfcpp
+ append-cppflags -I"${ESYSROOT}"/usr/include/utf8cpp
+
+ local myeconfargs=(
+ $(use_enable debug)
+ $(usex pch "" --disable-precompiled-headers)
+ $(use_enable dbus)
+
+ # Qt (of some version) is always needed, even for non-GUI builds,
+ # to do e.g. MIME detection. See e.g. bug #844097.
+ # But most of the Qt deps are conditional on a GUI build.
+ --disable-qt6
+ --enable-qt5
+ $(use_enable gui)
+ --with-qmake="$(qt5_get_bindir)"/qmake
+
+ $(use_with dvd dvdread)
+ $(use_with nls gettext)
+ #$(use_with nls po4a)
+ --disable-update-check
+ --disable-optimization
+ --with-boost="${ESYSROOT}"/usr
+ --with-boost-libdir="${ESYSROOT}"/usr/$(get_libdir)
+ )
+
+ # Work around bug #904710.
+ use nls || export ac_cv_path_PO4A=
+
+ econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+ rake V=1 -j$(makeopts_jobs) || die
+}
+
+src_test() {
+ rake V=1 -j$(makeopts_jobs) tests:unit || die
+ rake V=1 -j$(makeopts_jobs) tests:run_unit || die
+}
+
+src_install() {
+ DESTDIR="${D}" rake -j$(makeopts_jobs) install || die
+
+ einstalldocs
+ dodoc NEWS.md
+ doman doc/man/*.1
+}
diff --git a/media-video/mkvtoolnix/mkvtoolnix-9999.ebuild b/media-video/mkvtoolnix/mkvtoolnix-9999.ebuild
index 23a2e80da85d..4637f4ccbfb9 100644
--- a/media-video/mkvtoolnix/mkvtoolnix-9999.ebuild
+++ b/media-video/mkvtoolnix/mkvtoolnix-9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -104,13 +104,16 @@ src_configure() {
$(use_with dvd dvdread)
$(use_with nls gettext)
- $(usex nls "" --with-po4a-translate=false)
+ #$(use_with nls po4a)
--disable-update-check
--disable-optimization
--with-boost="${ESYSROOT}"/usr
--with-boost-libdir="${ESYSROOT}"/usr/$(get_libdir)
)
+ # Work around bug #904710.
+ use nls || export ac_cv_path_PO4A=
+
econf "${myeconfargs[@]}"
}
diff --git a/media-video/motion/Manifest b/media-video/motion/Manifest
index 59627f5dbcfc..0973e0ebe198 100644
--- a/media-video/motion/Manifest
+++ b/media-video/motion/Manifest
@@ -1,2 +1 @@
-DIST motion-release-4.3.2.tar.gz 849378 BLAKE2B 2ff49f44bb1d57123760860ae17cc241ecabf3d045ac0c45e1ca08ce3ac8be2fec308492472c37c0d869bc21a7c04658c923c763f9b8f6b547403fc094b03196 SHA512 df54297eebc44b3bc50fd40890c69a9cbbfc5936224bf7027065364e794d7201ceadd99ac99bf43113ec3368f2b5ca435d2956258b9c774e03a6750b41346a7c
DIST motion-release-4.5.1.tar.gz 856665 BLAKE2B 59ae638113c7f08ced4b18d7c4f19e3b3f1850ba0cd4c224b300be5ac65ae3b45aa391f26f506a91bb4c38a47b552c71db846d2b3217ccf0b2f5799873ab7ddb SHA512 3b8b60ad4f41c37cc215aa575b0295ee99b15f2d32cbf3393c0f7cdd8d87616cca1c00e11cb7bf74e4afa285caa094f08df3ba62ab21dcb28a48336e3ff5803e
diff --git a/media-video/motion/files/motion-4.5.1-fix-gettext-0.22-format-specifier.patch b/media-video/motion/files/motion-4.5.1-fix-gettext-0.22-format-specifier.patch
new file mode 100644
index 000000000000..531fd3cf235a
--- /dev/null
+++ b/media-video/motion/files/motion-4.5.1-fix-gettext-0.22-format-specifier.patch
@@ -0,0 +1,34 @@
+https://github.com/Motion-Project/motion/pull/1681
+
+From 6c00ca93d87229ee28b052af4a4b4aefad14499b Mon Sep 17 00:00:00 2001
+From: David Seifert <soap@gentoo.org>
+Date: Mon, 26 Jun 2023 19:56:18 +0200
+Subject: [PATCH 1/2] po: fix gettext 0.22 format specifier
+
+Bug: https://bugs.gentoo.org/908965
+Bug: https://savannah.gnu.org/bugs/index.php?64334#comment1
+--- a/po/de.po
++++ b/po/de.po
+@@ -3458,7 +3458,7 @@ msgstr "Sprache: Deutsch"
+ #: src/util.c
+ #, c-format
+ msgid "Could not allocate %llu bytes of memory!"
+-msgstr "%Llu Bytes Speicher konnten nicht zugeordnet werden!"
++msgstr "%llu Bytes Speicher konnten nicht zugeordnet werden!"
+
+ #: src/util.c
+ #, c-format
+--- a/po/fi.po
++++ b/po/fi.po
+@@ -3432,7 +3432,7 @@ msgstr "Kieli: englanti"
+ #: src/util.c
+ #, c-format
+ msgid "Could not allocate %llu bytes of memory!"
+-msgstr "%Llu-tavua muistia ei voitu varata!"
++msgstr "%llu-tavua muistia ei voitu varata!"
+
+ #: src/util.c
+ #, c-format
+--
+2.41.0
+
diff --git a/media-video/motion/files/motion.initd-r5 b/media-video/motion/files/motion.initd-r5
index b13ac5d0b5b7..4d7b43af585b 100644
--- a/media-video/motion/files/motion.initd-r5
+++ b/media-video/motion/files/motion.initd-r5
@@ -13,6 +13,8 @@
command=/usr/bin/motion
command_user="${MOTION_USER}:${MOTION_GROUP}"
+extra_started_commands="reload"
+description_reload="Reread the config file"
start_pre() {
if [ "${MOTION_DIR}" ] ; then
@@ -20,7 +22,7 @@ start_pre() {
directory="${MOTION_DIR}"
fi
if [ "${MOTION_LOGFILE}" ] ; then
- checkpath -f -o "${MOTION_USER}":"${MOTION_GROUP}" "${LOGFILE}"
+ checkpath -f -o "${MOTION_USER}":"${MOTION_GROUP}" "${MOTION_LOGFILE}"
fi
if [ "${MOTION_PIDFILE}" ] ; then
pidfile="${MOTION_PIDFILE}"
@@ -35,3 +37,13 @@ depend() {
after bootmisc
use mysql postgresq
}
+
+reload() {
+ ebegin "Reloading ${RC_SVCNAME}"
+ if [ "${MOTION_PIDFILE}" ] ; then
+ start-stop-daemon --signal SIGHUP --pidfile "${MOTION_PIDFILE}"
+ else
+ supervise-daemon ${RC_SVCNAME} --signal SIGHUP
+ fi
+ eend $?
+}
diff --git a/media-video/motion/files/motion.service-r4 b/media-video/motion/files/motion.service-r4
index 1564fb2699c4..66143f0e204b 100644
--- a/media-video/motion/files/motion.service-r4
+++ b/media-video/motion/files/motion.service-r4
@@ -13,6 +13,7 @@ Documentation=man:motion(1)
Type=simple
ExecStart=/usr/bin/motion -n -c /etc/motion/motion.conf
StandardError=null
+ExecReload=/bin/kill -HUP $MAINPID
User=motion
Group=motion
diff --git a/media-video/motion/motion-4.3.2-r1.ebuild b/media-video/motion/motion-4.3.2-r1.ebuild
deleted file mode 100644
index 4bf353fb7643..000000000000
--- a/media-video/motion/motion-4.3.2-r1.ebuild
+++ /dev/null
@@ -1,89 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit autotools readme.gentoo-r1 systemd
-
-DESCRIPTION="A software motion detector"
-HOMEPAGE="https://motion-project.github.io"
-SRC_URI="https://github.com/Motion-Project/${PN}/archive/release-${PV}.tar.gz -> ${PN}-release-${PV}.tar.gz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc x86"
-IUSE="ffmpeg mariadb mmal mysql postgres sqlite v4l webp"
-
-RDEPEND="
- acct-group/motion
- acct-user/motion
- net-libs/libmicrohttpd:=
- virtual/jpeg:=
- ffmpeg? ( media-video/ffmpeg:0= )
- mariadb? ( dev-db/mariadb-connector-c )
- mmal? ( media-libs/raspberrypi-userland )
- mysql? ( dev-db/mysql-connector-c )
- postgres? ( dev-db/postgresql:= )
- sqlite? ( dev-db/sqlite:3 )
- webp? ( media-libs/libwebp:= )
-"
-DEPEND="${RDEPEND}
- v4l? (
- media-libs/libv4l
- virtual/os-headers
- )
-"
-
-# Breaks src_install(), #727056
-RESTRICT="test"
-
-DISABLE_AUTOFORMATTING="yes"
-DOC_CONTENTS="
-You need to setup a configuraton file (/etc/motion/motion.conf) before
-running motion for the first time.
-
-If motion is built with the mysql or mariadb use flags then please make
-sure to configure a matching database_type in the config file.
-
-Motion runs by default under user motion and group motion:
-- change this if needed in /etc/conf.d/motion
-- or add users who need access to the output files to the motion group
-
-To install motion as a service, use:
-- rc-update add motion default # with OpenRC
-- systemctl enable motion.service # with systemd
-"
-
-S="${WORKDIR}"/${PN}-release-${PV}
-
-src_prepare() {
- default
- eautoreconf
-}
-
-src_configure() {
- econf \
- $(use_with ffmpeg) \
- $(use_with mariadb) \
- $(use_with mmal) \
- $(use_with mysql) \
- $(use_with postgres pgsql) \
- $(use_with sqlite sqlite3) \
- $(use_with v4l v4l2) \
- $(use_with webp) \
- --without-optimizecpu
-}
-
-src_install() {
- emake \
- DESTDIR="${D}" \
- docdir=/usr/share/doc/${PF} \
- examplesdir=/usr/share/doc/${PF}/examples \
- install
-
- newinitd "${FILESDIR}/motion.initd-r5" ${PN}
- newconfd "${FILESDIR}/motion.confd-r5" ${PN}
- systemd_newunit "${FILESDIR}/${PN}.service-r4" "${PN}.service"
- readme.gentoo_create_doc
- readme.gentoo_print_elog
-}
diff --git a/media-video/motion/motion-4.5.1.ebuild b/media-video/motion/motion-4.5.1-r2.ebuild
index ee5f5d8492c9..8e786bb8fe9e 100644
--- a/media-video/motion/motion-4.5.1.ebuild
+++ b/media-video/motion/motion-4.5.1-r2.ebuild
@@ -8,10 +8,11 @@ inherit autotools readme.gentoo-r1 systemd
DESCRIPTION="A software motion detector"
HOMEPAGE="https://motion-project.github.io"
SRC_URI="https://github.com/Motion-Project/${PN}/archive/release-${PV}.tar.gz -> ${PN}-release-${PV}.tar.gz"
+S="${WORKDIR}/${PN}-release-${PV}"
LICENSE="GPL-2"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc x86"
IUSE="ffmpeg mariadb mmal mysql postgres sqlite v4l webp"
RDEPEND="
@@ -34,6 +35,9 @@ DEPEND="${RDEPEND}
virtual/os-headers
)
"
+
+PATCHES=( "${FILESDIR}"/${P}-fix-gettext-0.22-format-specifier.patch )
+
DISABLE_AUTOFORMATTING="yes"
DOC_CONTENTS="
You need to setup a configuraton file (/etc/motion/motion.conf) before
@@ -51,8 +55,6 @@ To install motion as a service, use:
- systemctl enable motion.service # with systemd
"
-S="${WORKDIR}"/${PN}-release-${PV}
-
src_prepare() {
default
eautoreconf
diff --git a/media-video/movit/movit-1.6.3-r1.ebuild b/media-video/movit/movit-1.6.3-r1.ebuild
index bc9144f4e5d9..a874a7ac114f 100644
--- a/media-video/movit/movit-1.6.3-r1.ebuild
+++ b/media-video/movit/movit-1.6.3-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -20,7 +20,7 @@ RESTRICT="test"
RDEPEND="media-libs/mesa[X(+)]
>=dev-cpp/eigen-3.2.0:3
- media-libs/libepoxy[egl]
+ media-libs/libepoxy[egl,X]
>=sci-libs/fftw-3:=
media-libs/libsdl2"
DEPEND="${RDEPEND}"
diff --git a/media-video/mpgtx/mpgtx-1.3.1-r2.ebuild b/media-video/mpgtx/mpgtx-1.3.1-r2.ebuild
index 5068956f28e9..dc1a6db034c7 100644
--- a/media-video/mpgtx/mpgtx-1.3.1-r2.ebuild
+++ b/media-video/mpgtx/mpgtx-1.3.1-r2.ebuild
@@ -11,7 +11,7 @@ HOMEPAGE="http://mpgtx.sourceforge.net/"
LICENSE="GPL-2"
SLOT="0"
-KEYWORDS="amd64 ppc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-solaris"
+KEYWORDS="amd64 ppc x86 ~amd64-linux ~x86-linux ~ppc-macos"
PATCHES=(
"${FILESDIR}"/${P}-configure.patch
diff --git a/media-video/mplayer/Manifest b/media-video/mplayer/Manifest
index 9fb82b326254..00ffd71a6226 100644
--- a/media-video/mplayer/Manifest
+++ b/media-video/mplayer/Manifest
@@ -1,5 +1,5 @@
-DIST MPlayer-1.5.tar.xz 15379972 BLAKE2B 33c09025a9c521e1bc09a50fabb04e89493cbc4117afb3d5769e17b7dd621e44441a8d9f5a3cce2316c781ed701131a966abb02d64976adee9e5f40b7b475e7f SHA512 05fe1edf23cec53be676333b6299df4b3f1ee746e5ccd96dc0bed550e7a1602ba7ba182c1cc23fcac67aacde849a46628b1dcab8ee3d3d4117415c11b6a6ad74
DIST font-arial-cp1250.tar.bz2 249705 BLAKE2B eb4366a110d917dc975b8add168ab43b1e8a0db7342647f69f5421fc1170719015c97ffa770e89892cbb4cee8e5b2fb74a4772c8f6cbef9606ee12c3746d78c9 SHA512 4f77ff5ceb8ec6e5d9f8f34d8950a6a6276d1fd5a947772fcbdb6554988b1ea665c12b82f45164f91fb7bd08000cb4afc26fa35beb4c760464160e22b9b8c340
DIST font-arial-iso-8859-1.tar.bz2 234242 BLAKE2B 0671854e1a257d27b502affb59de681942a93990d3ac2575bbf1a6dd9eef026969f2f9ce4e9c11a68ea3d8aed48063f826a1e153f7468437a39791672c92a5d0 SHA512 a1d03b6f09c48f48b7733f3bc0402ceab239a9abf88b860d852ea9fe69b4da690208a79d6f29d30204f5b37becf10672e8e8c0bfef201846d80ec54df617d029
DIST font-arial-iso-8859-2.tar.bz2 222208 BLAKE2B 94b1a04672bf9b4b20a0e6981591e761f751bd637deddcb801855296c525bf3b5e8feb1cb11cef282c0269f2c963ded22846089076e7e6763f258b8a932af454 SHA512 5671e628303fd816f64a51ad10e2f4dd9c3dc1b34c379a2ecf489b83931db7af668aaa4e00e96a00cacd63ed98daeae6b6a4d5925edfb06fc98d3a923f70257d
DIST mplayer-1.5_p20230215.tar.xz 15454028 BLAKE2B 08012f9b955921d832ab268a6e52e22e018b669787ff5e1c1ac734bd85083138551ad1065d5e4f5f9c977b804f8135ee89d2fd0590fb7228d4916b458cc58efa SHA512 f93d222817ff59ac7708956d6e8d5e9ee2084b4e724f66ea9fe4ffd477b864c2d0546d8df97511d499495ee446239645216a1e027d70eed434a3c64331f5ac73
+DIST mplayer-1.5_p20230618.tar.xz 15101476 BLAKE2B 74f1d2d579c83330d8bf1e1ce2a89592f62142f361ff0e4107710c80de4351a5807e344869cb55ff5b5856efaedb6cfe242483f8e7f97521b805f84ca23e3818 SHA512 874e76b3edfccb7475349d954ed49860f92a5e99f0374084f5da53af35326365bb064c460fb6527d2fb6d8ae20d9e059ba197f45d4de42bc7a78992b5191a7cb
diff --git a/media-video/mplayer/mplayer-1.5_p20230215.ebuild b/media-video/mplayer/mplayer-1.5_p20230215.ebuild
index 31de25e10b42..02a665bdb3cb 100644
--- a/media-video/mplayer/mplayer-1.5_p20230215.ebuild
+++ b/media-video/mplayer/mplayer-1.5_p20230215.ebuild
@@ -166,7 +166,7 @@ RDEPEND+="selinux? ( sec-policy/selinux-mplayer )"
LICENSE="GPL-2"
SLOT="0"
if [[ ${PV} != *9999* ]]; then
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
+ KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~ia64 ppc ppc64 ~riscv ~sparc x86"
fi
# faac codecs are nonfree
diff --git a/media-video/mplayer/mplayer-1.5.ebuild b/media-video/mplayer/mplayer-1.5_p20230618.ebuild
index 4f171b4f094c..7f503efeaf49 100644
--- a/media-video/mplayer/mplayer-1.5.ebuild
+++ b/media-video/mplayer/mplayer-1.5_p20230618.ebuild
@@ -11,12 +11,16 @@ if [[ ${PV} == *9999* ]]; then
RELEASE_URI=""
inherit subversion git-r3
-elif [[ "${PV%_rc*}" == "${PV}" && "${PV%_pre*}" == "${PV}" ]]; then
+elif [[ "${PV%_rc*}" == "${PV}" && "${PV%_pre*}" == "${PV}" && "${PV%_p*}" == "${PV}" ]]; then
MY_P="MPlayer-${PV}"
S="${WORKDIR}/${MY_P}"
RELEASE_URI="mirror://mplayer/releases/${MY_P}.tar.xz"
else
- RELEASE_URI="mirror://gentoo/${P}.tar.xz"
+ # If necessary, don't be afraid to make a snapshot.
+ # http://www.mplayerhq.hu/design7/dload.html says:
+ # "We recommend to always use the latest SVN to get the all the new
+ # features and bugfixes, especially if the release date above looks old."
+ RELEASE_URI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}.tar.xz"
fi
FONT_URI="
@@ -32,12 +36,15 @@ SRC_URI="
!truetype? ( ${FONT_URI} )
"
-IUSE="cpu_flags_x86_avx cpu_flags_x86_avx2 cpu_flags_x86_fma3 cpu_flags_x86_fma4"
+IUSE="cpu_flags_x86_avx cpu_flags_x86_avx2"
+IUSE+=" cpu_flags_x86_fma3 cpu_flags_x86_fma4"
IUSE+=" cpu_flags_x86_mmx cpu_flags_x86_mmxext"
IUSE+=" cpu_flags_x86_sse cpu_flags_x86_sse2 cpu_flags_x86_sse3 cpu_flags_x86_ssse3 cpu_flags_x86_sse4_1"
IUSE+=" cpu_flags_x86_sse4_2 cpu_flags_x86_xop"
IUSE+=" cpu_flags_x86_3dnow cpu_flags_x86_3dnowext"
+IUSE+=" cpu_flags_arm_thumb cpu_flags_arm_neon cpu_flags_arm_vfp cpu_flags_arm_vfpv3"
+IUSE+=" cpu_flags_arm_iwmmxt"
IUSE+=" cpu_flags_ppc_altivec"
IUSE+=" a52 aalib +alsa aqua bidi bl bluray"
@@ -66,10 +73,9 @@ X_RDEPS="
# nemesi? ( net-libs/libnemesi )
# - mplayer relies on private APIs in giflib that have been removed:
# https://sourceforge.net/p/giflib/bugs/132/
-# - depends on <ffmpeg-5 for bug #876760, a snapshot may help though.
RDEPEND="
app-arch/bzip2
- <media-video/ffmpeg-5:=[vdpau?]
+ >=media-video/ffmpeg-4.0:=[vdpau?]
sys-libs/ncurses:=
sys-libs/zlib
a52? ( media-libs/a52dec )
@@ -163,7 +169,7 @@ RDEPEND+="selinux? ( sec-policy/selinux-mplayer )"
LICENSE="GPL-2"
SLOT="0"
if [[ ${PV} != *9999* ]]; then
- KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~ia64 ppc ppc64 ~riscv ~sparc x86"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
fi
# faac codecs are nonfree
@@ -265,7 +271,7 @@ src_configure() {
# Set LINGUAS
[[ -n ${LINGUAS} ]] && LINGUAS="${LINGUAS/da/dk}"
- [[ -n ${LINGUAS} ]] && LINGUAS="${LINGUAS/zh/zh_CN}" #482968
+ [[ -n ${LINGUAS} ]] && LINGUAS="${LINGUAS/zh/zh_CN}" # bug #482968
# mplayer ebuild uses "use foo || --disable-foo" to forcibly disable
# compilation in almost every situation. The reason for this is
@@ -458,14 +464,21 @@ src_configure() {
# Platform specific flags, hardcoded on amd64 (see below)
use cpudetection && myconf+=( --enable-runtime-cpudetection )
- uses="3dnow 3dnowext avx avx2 fma3 fma4 mmx mmxext sse sse2 sse3 ssse3 xop"
- for i in ${uses}; do
+ local x86_uses="3dnow 3dnowext avx avx2 fma3 fma4 mmx mmxext sse sse2 sse3 ssse3 xop"
+ for i in ${x86_uses}; do
myconf+=( $(use_enable cpu_flags_x86_${i} ${i}) )
done
- myconf+=( $(use_enable cpu_flags_x86_sse4_1 sse4) )
- myconf+=( $(use_enable cpu_flags_x86_sse4_2 sse42) )
+ myconf+=(
+ $(use_enable cpu_flags_x86_sse4_1 sse4)
+ $(use_enable cpu_flags_x86_sse4_2 sse42)
+ )
myconf+=(
+ $(use_enable cpu_flags_arm_iwmmxt iwmmxt)
+ $(use_enable cpu_flags_arm_thumb thumb)
+ $(use_enable cpu_flags_arm_neon neon)
+ $(use_enable cpu_flags_arm_vfp armvfp)
+ $(use_enable cpu_flags_arm_vfpv3 vfpv3)
$(use_enable cpu_flags_ppc_altivec altivec)
$(use_enable shm)
)
@@ -600,7 +613,7 @@ src_install() {
_EOF_
fi
- # bug 256203
+ # bug #256203
if use rar; then
cat >> "${ED}/etc/mplayer/mplayer.conf" <<- _EOF_
unrarexec=${EPREFIX}/usr/bin/unrar
diff --git a/media-video/mplayer/mplayer-9999.ebuild b/media-video/mplayer/mplayer-9999.ebuild
index 31de25e10b42..8abf788096fd 100644
--- a/media-video/mplayer/mplayer-9999.ebuild
+++ b/media-video/mplayer/mplayer-9999.ebuild
@@ -268,7 +268,7 @@ src_configure() {
# Set LINGUAS
[[ -n ${LINGUAS} ]] && LINGUAS="${LINGUAS/da/dk}"
- [[ -n ${LINGUAS} ]] && LINGUAS="${LINGUAS/zh/zh_CN}" #482968
+ [[ -n ${LINGUAS} ]] && LINGUAS="${LINGUAS/zh/zh_CN}" # bug #482968
# mplayer ebuild uses "use foo || --disable-foo" to forcibly disable
# compilation in almost every situation. The reason for this is
@@ -461,6 +461,7 @@ src_configure() {
# Platform specific flags, hardcoded on amd64 (see below)
use cpudetection && myconf+=( --enable-runtime-cpudetection )
+ # TODO: refresh this list
uses="3dnow 3dnowext avx avx2 fma3 fma4 mmx mmxext sse sse2 sse3 ssse3 xop"
for i in ${uses}; do
myconf+=( $(use_enable cpu_flags_x86_${i} ${i}) )
@@ -603,7 +604,7 @@ src_install() {
_EOF_
fi
- # bug 256203
+ # bug #256203
if use rar; then
cat >> "${ED}/etc/mplayer/mplayer.conf" <<- _EOF_
unrarexec=${EPREFIX}/usr/bin/unrar
diff --git a/media-video/mpv/Manifest b/media-video/mpv/Manifest
index b935d2d6787d..2848b9c4a196 100644
--- a/media-video/mpv/Manifest
+++ b/media-video/mpv/Manifest
@@ -1,2 +1,2 @@
-DIST mpv-0.35.0.tar.gz 3365752 BLAKE2B 9b8dca943fc60a68f8474549d75c021dd9157195253c5ec09721969e500b2756c033e86975499f5632f0c943ac7bb54699f47340f0dee73d7284668d4419b17f SHA512 d5c1f734057f6b6c27e7f59de43cf7c0e7f813d842b8c7fd2ae1073dbe649c8187b7686df4efe928db2952e9f1efc171245e6f8780c1d9f174f4d7abff1e073a
DIST mpv-0.35.1.tar.gz 3367913 BLAKE2B 706a2031a2ca973eb3a092ec7f62ba40ca4dfd78e3ffe5d6e432486b0018852b034152a21805be594054178ccb17856dafe2b860cddcc22d27df895d163871de SHA512 42f3564a9ed4d972d14b2c697b0163f06a8bb68a0606a86c34935181247c783e3cb62286b445799998def0919fb13fce8b8f6453f82652d5bfaea5929119127a
+DIST mpv-0.36.0.tar.gz 3409178 BLAKE2B 7260c265f02918d4caf72d8d8ecc9d4ab9783d66d675bd683a2f9c228404ad978c6fe0aa50f486b5257740176bc26f8abde7eff20d89019d5f701ec78c7743e1 SHA512 51f455a425ea5aac47acb3582d0f958a34248a2290a8d6887d22bcb9385fe8d1ab5d7f09d5408cfecfb73c1ec85d1b8ec8958e45a4941d3f711a2e580187472f
diff --git a/media-video/mpv/files/mpv-0.35.1-pipewire-0.3.75.patch b/media-video/mpv/files/mpv-0.35.1-pipewire-0.3.75.patch
new file mode 100644
index 000000000000..41392ab0839c
--- /dev/null
+++ b/media-video/mpv/files/mpv-0.35.1-pipewire-0.3.75.patch
@@ -0,0 +1,86 @@
+Issue point that pipewire itself may apply a workaround for mpv,
+so this may or may not be necessary for future pipewire versions.
+Albeit the actual issue seems to be in mpv, so let's backport the
+fix which appears to work properly for old 0.35.1 as well.
+
+Note that (unrelated to this issue), 0.35.1 is still a bit flaky
+with pipewire. If have other issues with ao=pipewire you may want
+to consider mpv-9999 until next release, or use ao=pulse/alsa/jack
+to use through pipewire meanwhile.
+
+https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3374
+https://github.com/mpv-player/mpv/issues/11995
+
+https://github.com/mpv-player/mpv/pull/11996
+https://github.com/mpv-player/mpv/commit/007019a303a09b098a387f607ae149705b57dc1c
+From: =?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= <thomas@t-8ch.de>
+Date: Sun, 23 Jul 2023 09:10:55 +0200
+Subject: [PATCH] ao_pipewire: for_each_sink: properly check termination
+ condition
+
+Doing a pw_thread_loop_wait() without checking conditions is invalid.
+The thread loop could be signalled for other reasons and in this case
+the wait needs to continue.
+
+PipeWire added such additional signaling in
+commit 33be898130f0 ("thread-loop: signal when started").
+
+This meant that for_each_sink would return before the callbacks have
+fired and session_has_sink() would incorrectly return "false", failing
+the initialization of ao_pipewire.
+
+Fixes #11995
+--- a/audio/out/ao_pipewire.c
++++ b/audio/out/ao_pipewire.c
+@@ -337,6 +337,11 @@
+ }
+
+
++struct for_each_done_ctx {
++ struct pw_thread_loop *loop;
++ bool done;
++};
++
+ static const struct pw_registry_events for_each_sink_registry_events = {
+ .version = PW_VERSION_REGISTRY_EVENTS,
+ .global = for_each_sink_registry_event_global,
+@@ -344,8 +349,9 @@
+
+ static void for_each_sink_done(void *data, uint32_t it, int seq)
+ {
+- struct pw_thread_loop *loop = data;
+- pw_thread_loop_signal(loop, false);
++ struct for_each_done_ctx *ctx = data;
++ ctx->done = true;
++ pw_thread_loop_signal(ctx->loop, false);
+ }
+
+ static const struct pw_core_events for_each_sink_core_events = {
+@@ -359,12 +365,16 @@
+ struct priv *priv = ao->priv;
+ struct pw_registry *registry;
+ struct spa_hook core_listener;
++ struct for_each_done_ctx done_ctx = {
++ .loop = priv->loop,
++ .done = false,
++ };
+ int ret = -1;
+
+ pw_thread_loop_lock(priv->loop);
+
+ spa_zero(core_listener);
+- if (pw_core_add_listener(priv->core, &core_listener, &for_each_sink_core_events, priv->loop) < 0)
++ if (pw_core_add_listener(priv->core, &core_listener, &for_each_sink_core_events, &done_ctx) < 0)
+ goto unlock_loop;
+
+ registry = pw_core_get_registry(priv->core, PW_VERSION_REGISTRY, 0);
+@@ -383,7 +393,8 @@
+ if (pw_registry_add_listener(registry, &registry_listener, &for_each_sink_registry_events, &revents_ctx) < 0)
+ goto destroy_registry;
+
+- pw_thread_loop_wait(priv->loop);
++ while (!done_ctx.done)
++ pw_thread_loop_wait(priv->loop);
+
+ spa_hook_remove(&registry_listener);
+
diff --git a/media-video/mpv/files/mpv-0.36.0-sub-match-audio.patch b/media-video/mpv/files/mpv-0.36.0-sub-match-audio.patch
new file mode 100644
index 000000000000..d893b7b78c12
--- /dev/null
+++ b/media-video/mpv/files/mpv-0.36.0-sub-match-audio.patch
@@ -0,0 +1,35 @@
+Backport to restore --subs-with-matching-audio back to "yes" by default
+like it was in <0.36 to spare users from confusion and/or needlessly
+adjusting their configs until next version.
+
+https://github.com/mpv-player/mpv/issues/11854
+https://github.com/mpv-player/mpv/pull/12015
+https://github.com/mpv-player/mpv/commit/a2dd78fbc0932a4f47edbe4c41fe268095075c88
+--- a/DOCS/man/options.rst
++++ b/DOCS/man/options.rst
+@@ -140,11 +140,11 @@ Track Selection
+
+ ``--subs-with-matching-audio=<yes|no>``
+ When autoselecting a subtitle track, select a full/non-forced one even if the selected
+- audio stream matches your preferred subtitle language (default: no).
++ audio stream matches your preferred subtitle language (default: yes).
+
+ ``--subs-fallback=<yes|default|no>``
+ When autoselecting a subtitle track, if no tracks match your preferred languages,
+- select a full track even if it doesn't match your preferred subtitle language (default: no).
++ select a full track even if it doesn't match your preferred subtitle language (default: default).
+ Setting this to `default` means that only streams flagged as `default` will be selected.
+
+ ``--subs-fallback-forced=<yes|no>``
+--- a/options/options.c
++++ b/options/options.c
+@@ -1040,7 +1040,8 @@ static const struct MPOpts mp_default_opts = {
+ [STREAM_SUB] = (char *[]){ "auto", NULL },
+ },
+ .stream_auto_sel = true,
+- .subs_with_matching_audio = false,
++ .subs_with_matching_audio = true,
++ .subs_fallback = 1,
+ .subs_fallback_forced = true,
+ .audio_display = 1,
+ .audio_output_format = 0, // AF_FORMAT_UNKNOWN
diff --git a/media-video/mpv/files/mpv-0.36.0-tests-odr.patch b/media-video/mpv/files/mpv-0.36.0-tests-odr.patch
new file mode 100644
index 000000000000..1c7c05c20f78
--- /dev/null
+++ b/media-video/mpv/files/mpv-0.36.0-tests-odr.patch
@@ -0,0 +1,30 @@
+Quickfix for USE=test with -Werror=odr (stubs, so have no real consequences).
+
+timer.h gets indirectly included and can declare these differently, have not
+looked closer yet.
+--- a/test/test_utils.c
++++ b/test/test_utils.c
+@@ -110,6 +110,6 @@
+ #ifndef WIN32_TESTS
+-void mp_add_timeout(void) {};
+-void mp_rel_time_to_timespec(void) {};
+-void mp_time_us(void) {};
+-void mp_time_us_to_timespec(void) {};
++void mp_add_timeout(int64_t time_us, double timeout_sec) {};
++struct timespec mp_rel_time_to_timespec(double timeout_sec) {return (struct timespec){0};};
++int64_t mp_time_us(void) {return 0;};
++struct timespec mp_time_us_to_timespec(int64_t time_us) {return (struct timespec){0};};
+ #endif
+--- a/test/test_utils.h
++++ b/test/test_utils.h
+@@ -61,6 +61,6 @@
+ #ifndef WIN32_TESTS
+-void mp_add_timeout(void);
+-void mp_rel_time_to_timespec(void);
+-void mp_time_us(void);
+-void mp_time_us_to_timespec(void);
++void mp_add_timeout(int64_t time_us, double timeout_sec);
++struct timespec mp_rel_time_to_timespec(double timeout_sec);
++int64_t mp_time_us(void);
++struct timespec mp_time_us_to_timespec(int64_t time_us);
+ #endif
diff --git a/media-video/mpv/metadata.xml b/media-video/mpv/metadata.xml
index f635e0d7c024..7ae1bd6e2875 100644
--- a/media-video/mpv/metadata.xml
+++ b/media-video/mpv/metadata.xml
@@ -27,7 +27,6 @@
<flag name="sndio">Enable sound support via <pkg>media-sound/sndio</pkg></flag>
<flag name="tools">Install extra tools: mpv_identify.sh, mpv_idet.sh, and umpv</flag>
<flag name="uchardet">Enable subtitles charset discovery via <pkg>app-i18n/uchardet</pkg></flag>
- <flag name="vulkan">Enable support for Vulkan-based video backends</flag>
<flag name="zimg">Enable libzimg support (for vf_fingerprint)</flag>
</use>
<upstream>
diff --git a/media-video/mpv/mpv-0.35.1-r1.ebuild b/media-video/mpv/mpv-0.35.1-r2.ebuild
index 4ee310fc3829..f41aea9d7e6f 100644
--- a/media-video/mpv/mpv-0.35.1-r1.ebuild
+++ b/media-video/mpv/mpv-0.35.1-r2.ebuild
@@ -4,7 +4,7 @@
EAPI=8
LUA_COMPAT=( lua5-1 luajit )
-PYTHON_COMPAT=( python3_{9..11} )
+PYTHON_COMPAT=( python3_{10..12} )
inherit edo flag-o-matic lua-single meson optfeature pax-utils python-single-r1 xdg
if [[ ${PV} == 9999 ]]; then
@@ -87,6 +87,7 @@ COMMON_DEPEND="
libcaca? ( media-libs/libcaca )
libplacebo? (
>=media-libs/libplacebo-4.202:=[opengl?,vulkan?]
+ <media-libs/libplacebo-6
egl? ( media-libs/libplacebo[opengl] )
)
lua? ( ${LUA_DEPS} )
@@ -135,6 +136,7 @@ BDEPEND="
PATCHES=(
"${FILESDIR}"/${P}-yt-dlp-edl-fragments.patch
+ "${FILESDIR}"/${P}-pipewire-0.3.75.patch
)
pkg_setup() {
diff --git a/media-video/mpv/mpv-0.35.0-r1.ebuild b/media-video/mpv/mpv-0.36.0-r1.ebuild
index 355a3f826dcd..a1e1203ee5d1 100644
--- a/media-video/mpv/mpv-0.35.0-r1.ebuild
+++ b/media-video/mpv/mpv-0.36.0-r1.ebuild
@@ -4,15 +4,15 @@
EAPI=8
LUA_COMPAT=( lua5-1 luajit )
-PYTHON_COMPAT=( python3_{9..11} )
-inherit edo flag-o-matic lua-single meson optfeature pax-utils python-single-r1 xdg
+PYTHON_COMPAT=( python3_{10..12} )
+inherit flag-o-matic lua-single meson optfeature pax-utils python-single-r1 xdg
if [[ ${PV} == 9999 ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/mpv-player/mpv.git"
else
SRC_URI="https://github.com/mpv-player/mpv/archive/v${PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="amd64 ~arm ~arm64 ~loong ppc ppc64 ~riscv x86 ~amd64-linux"
+ KEYWORDS="amd64 ~arm ~arm64 ~hppa ~loong ppc ppc64 ~riscv x86 ~amd64-linux"
fi
DESCRIPTION="Media player for the command line"
@@ -25,7 +25,7 @@ IUSE="
dvd +egl gamepad +iconv jack javascript jpeg lcms libcaca +libmpv
+libplacebo +lua mmal nvenc openal opengl pipewire pulseaudio
raspberry-pi rubberband sdl selinux sixel sndio test tools +uchardet
- vaapi vdpau vulkan wayland +xv zimg zlib"
+ vaapi vdpau vulkan wayland xv zimg zlib"
REQUIRED_USE="
${PYTHON_REQUIRED_USE}
|| ( cli libmpv )
@@ -49,7 +49,7 @@ RESTRICT="!test? ( test )"
# raspberry-pi: default to -bin given non-bin is known broken (bug #893422)
COMMON_DEPEND="
media-libs/libass:=[fontconfig]
- media-video/ffmpeg:=[encode,threads,vaapi?,vdpau?]
+ >=media-video/ffmpeg-4.4:=[encode,threads,vaapi?,vdpau?]
X? (
x11-libs/libX11
x11-libs/libXScrnSaver
@@ -86,7 +86,7 @@ COMMON_DEPEND="
lcms? ( media-libs/lcms:2 )
libcaca? ( media-libs/libcaca )
libplacebo? (
- >=media-libs/libplacebo-4.202:=[opengl?,vulkan?]
+ >=media-libs/libplacebo-4.157:=[opengl?,vulkan?]
egl? ( media-libs/libplacebo[opengl] )
)
lua? ( ${LUA_DEPS} )
@@ -133,17 +133,16 @@ BDEPEND="
cli? ( dev-python/docutils )
wayland? ( dev-util/wayland-scanner )"
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.36.0-tests-odr.patch
+ "${FILESDIR}"/${PN}-0.36.0-sub-match-audio.patch
+)
+
pkg_setup() {
use lua && lua-single_pkg_setup
python-single-r1_pkg_setup
}
-src_prepare() {
- default
-
- sed -i "s/'rst2html/&.py/" meson.build || die
-}
-
src_configure() {
if use !debug; then
if use test; then
@@ -153,11 +152,6 @@ src_configure() {
fi
fi
- if use raspberry-pi; then
- append-cflags -I"${ESYSROOT}"/opt/vc/include
- append-ldflags -L"${ESYSROOT}"/opt/vc/lib
- fi
-
mpv_feature_multi() {
local use set
for use in ${1} ${2}; do
@@ -249,29 +243,18 @@ src_configure() {
$(mpv_feature_multi vdpau opengl vdpau-gl-x11)
$(mpv_feature_multi aqua opengl videotoolbox-gl)
- )
- meson_src_configure
-}
-
-src_test() {
- # https://github.com/mpv-player/mpv/blob/master/DOCS/man/options.rst#debugging
- local tests=($("${BUILD_DIR}"/mpv --no-config --unittest=help | tail -n +2; assert))
- (( ${#tests[@]} )) || die "failed to gather any tests"
-
- local skip=(
- all-simple
-
- # fails on non-issue minor inconsistencies (bug #888639)
- img_format
- repack_sws
+ # notable options left to automagic
+ #dmabuf-wayland: USE="drm wayland" + plus memfd_create support
+ #libplacebo-next: USE="libplacebo" + >=libplacebo-5.264
+ #vulkan-interop: USE="libplacebo vulkan" + ffmpeg-9999 currently
+ # TODO?: perhaps few more similar compound options should be left auto
)
- local test
- for test in "${tests[@]}"; do
- [[ ${test} == @($(IFS='|'; echo "${skip[*]}")) ]] ||
- edo "${BUILD_DIR}"/mpv -v --no-config --unittest="${test}"
- done
+ has_version '>=media-libs/libplacebo-5.264' ||
+ ewarn "${PN}'s gpu-next video output requires ${_} to be used"
+
+ meson_src_configure
}
src_install() {
diff --git a/media-video/mpv/mpv-9999.ebuild b/media-video/mpv/mpv-9999.ebuild
index bdc142fe6cd6..1175525fffac 100644
--- a/media-video/mpv/mpv-9999.ebuild
+++ b/media-video/mpv/mpv-9999.ebuild
@@ -4,7 +4,7 @@
EAPI=8
LUA_COMPAT=( lua5-1 luajit )
-PYTHON_COMPAT=( python3_{9..11} )
+PYTHON_COMPAT=( python3_{10..12} )
inherit flag-o-matic lua-single meson optfeature pax-utils python-single-r1 xdg
if [[ ${PV} == 9999 ]]; then
@@ -12,7 +12,7 @@ if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://github.com/mpv-player/mpv.git"
else
SRC_URI="https://github.com/mpv-player/mpv/archive/v${PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~x86 ~amd64-linux"
+ KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~x86 ~amd64-linux"
fi
DESCRIPTION="Media player for the command line"
@@ -24,8 +24,9 @@ IUSE="
+X +alsa aqua archive bluray cdda +cli coreaudio debug +drm dvb
dvd +egl gamepad +iconv jack javascript jpeg lcms libcaca +libmpv
+libplacebo +lua mmal nvenc openal opengl pipewire pulseaudio
- raspberry-pi rubberband sdl selinux sixel sndio test tools +uchardet
- vaapi vdpau vulkan wayland +xv zimg zlib"
+ raspberry-pi rubberband sdl selinux sixel sndio test tools
+ +uchardet vaapi vdpau vulkan wayland xv zimg zlib
+"
REQUIRED_USE="
${PYTHON_REQUIRED_USE}
|| ( cli libmpv )
@@ -37,13 +38,11 @@ REQUIRED_USE="
test? ( cli )
tools? ( cli )
uchardet? ( iconv )
- vaapi? (
- || ( X egl libplacebo wayland )
- wayland? ( drm )
- )
+ vaapi? ( || ( X drm wayland ) )
vdpau? ( X )
vulkan? ( || ( X wayland ) libplacebo )
- xv? ( X )"
+ xv? ( X )
+"
RESTRICT="!test? ( test )"
# raspberry-pi: default to -bin given non-bin is known broken (bug #893422)
@@ -54,7 +53,6 @@ COMMON_DEPEND="
x11-libs/libX11
x11-libs/libXScrnSaver
x11-libs/libXext
- x11-libs/libXinerama
x11-libs/libXpresent
x11-libs/libXrandr
xv? ( x11-libs/libXv )
@@ -67,8 +65,8 @@ COMMON_DEPEND="
dev-libs/libcdio:=
)
drm? (
- media-libs/mesa[gbm(+)]
x11-libs/libdrm
+ egl? ( media-libs/mesa[gbm(+)] )
)
dvd? (
media-libs/libdvdnav
@@ -86,7 +84,7 @@ COMMON_DEPEND="
lcms? ( media-libs/lcms:2 )
libcaca? ( media-libs/libcaca )
libplacebo? (
- >=media-libs/libplacebo-5.264:=[opengl?,vulkan?]
+ >=media-libs/libplacebo-6.292:=[opengl?,vulkan?]
egl? ( media-libs/libplacebo[opengl] )
)
lua? ( ${LUA_DEPS} )
@@ -116,22 +114,26 @@ COMMON_DEPEND="
x11-libs/libxkbcommon
)
zimg? ( media-libs/zimg )
- zlib? ( sys-libs/zlib:= )"
+ zlib? ( sys-libs/zlib:= )
+"
RDEPEND="
${COMMON_DEPEND}
selinux? ( sec-policy/selinux-mplayer )
- tools? ( ${PYTHON_DEPS} )"
+ tools? ( ${PYTHON_DEPS} )
+"
DEPEND="
${COMMON_DEPEND}
X? ( x11-base/xorg-proto )
dvb? ( virtual/linuxtv-dvb-headers )
nvenc? ( media-libs/nv-codec-headers )
- wayland? ( dev-libs/wayland-protocols )"
+ wayland? ( dev-libs/wayland-protocols )
+"
BDEPEND="
${PYTHON_DEPS}
virtual/pkgconfig
cli? ( dev-python/docutils )
- wayland? ( dev-util/wayland-scanner )"
+ wayland? ( dev-util/wayland-scanner )
+"
pkg_setup() {
use lua && lua-single_pkg_setup
@@ -200,11 +202,9 @@ src_configure() {
$(meson_feature X x11)
$(meson_feature aqua cocoa)
$(meson_feature drm)
- $(meson_feature drm gbm)
$(meson_feature jpeg)
$(meson_feature libcaca caca)
$(meson_feature libplacebo)
- $(meson_feature libplacebo libplacebo-next)
$(meson_feature mmal rpi-mmal)
$(meson_feature sdl sdl2-video)
$(meson_feature sixel)
@@ -215,6 +215,7 @@ src_configure() {
echo enabled || echo disabled)
$(meson_feature egl)
$(mpv_feature_multi egl X egl-x11)
+ $(mpv_feature_multi egl drm gbm) # gbm is only used by egl-drm
$(mpv_feature_multi egl drm egl-drm)
$(mpv_feature_multi egl wayland egl-wayland)
$(meson_feature libmpv plain-gl)
@@ -231,14 +232,18 @@ src_configure() {
$(meson_feature vaapi)
$(mpv_feature_multi vaapi X vaapi-x11)
- $(mpv_feature_multi 'vaapi X' egl vaapi-x-egl)
- $(mpv_feature_multi 'vaapi egl' drm vaapi-drm)
- $(mpv_feature_multi 'vaapi egl' wayland vaapi-wayland)
+ $(mpv_feature_multi vaapi drm vaapi-drm)
+ $(mpv_feature_multi vaapi wayland vaapi-wayland)
$(meson_feature vdpau)
$(mpv_feature_multi vdpau opengl vdpau-gl-x11)
$(mpv_feature_multi aqua opengl videotoolbox-gl)
+
+ # notable options left to automagic
+ #dmabuf-wayland: USE="drm wayland" + plus memfd_create support
+ #vulkan-interop: USE="libplacebo vulkan" + ffmpeg-9999 currently
+ # TODO?: perhaps few more similar compound options should be left auto
)
meson_src_configure
diff --git a/media-video/noad/noad-0.8.8.ebuild b/media-video/noad/noad-0.8.8.ebuild
index 72ad06e5416b..408b4c6b7d02 100644
--- a/media-video/noad/noad-0.8.8.ebuild
+++ b/media-video/noad/noad-0.8.8.ebuild
@@ -11,7 +11,7 @@ SRC_URI="https://github.com/madmartin/noad/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="GPL-2+"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="amd64 x86"
IUSE="+ffmpeg imagemagick libmpeg2"
REQUIRED_USE="|| ( ffmpeg libmpeg2 )"
diff --git a/media-video/obs-studio/Manifest b/media-video/obs-studio/Manifest
index ec43a65b2f63..bf83729d1000 100644
--- a/media-video/obs-studio/Manifest
+++ b/media-video/obs-studio/Manifest
@@ -1,11 +1,5 @@
-DIST asio-b73dc1d2c0ecb9452a87c26544d7f71e24342df6.tar.gz 1211725 BLAKE2B 8ffe536e9398b23910deab9889136ac5cb2a39e26982826252400737ea68d201e11bf16f13f20bd4c777fc7ff718da5ef8d329747065c62e61306fc1448f3908 SHA512 91245741fe6e7ce8eec6897f222b05cfa9474f93487272d8ca84ec56679afd5cddff2cf07f30cdd6516149e0a138b8a7396b1a7c02a46044b38f4e60addcbf8a
DIST cef_binary_5060_linux64.tar.bz2 132839531 BLAKE2B f7d342cf12bf435aab3873b666a47c42c6583a88f140c28dabfd2dd860cd0d5c96cc51cc034703bffc6f1094a738bd77008c01839fa5ea53b848bc1c483a0ae4 SHA512 c99ce53858c57becd7822e39ff81d59b7296374fa61b29dfd4a572c2ed8f9ab155114ed179764ea05586e0edb2f1654f0b73c471f1cd9b233660e7f1c8b462c4
-DIST json-a34e011e24beece3b69397a03fdc650546f052c3.tar.gz 6860722 BLAKE2B 433b499f24859153171654f3fd0fa9afd4ceb8b21a159185a424084b940d8496f8952c0291a52d85009dde16c46e45d5a206f354d043f4d010a29a1f18965d87 SHA512 a7c64517377274479bc3060163a2a7ed0a8780c12dc193287c060f04dfd742ffe8832c930bec75eb0b36f8290044c31530260a614aabae90367f6ccfd4b711f3
-DIST obs-browser-1c2264d722f065646b72ac654f6ddbb6843f9bef.tar.gz 110765 BLAKE2B 99ceb51dc1a39c5abab26c6e5f1be63eb0cfaeb7e102ed07a4dc6a16d477e46e7499f1e9beca81d479683374d03e3c08c9ceeb34d04a733ae34c0688bb4ad1c0 SHA512 bddfa7914559405331c10a9589f46c17013cdbd361423e71763a4d8d4d521c53dc5df4d7581ff7bf0c9136627024e017bfb08b4a996b33e609cddbae41b5c878
-DIST obs-browser-e2310b02df3e6c184fe6eb6608244a82e37f582e.tar.gz 109012 BLAKE2B a2f3d9e1a3dbc3aa4d00423e743633038d59ce501626941a21ef0cf78608f4190335b8b846bfef49b2f09976d4ef3bb8b19f955b2a328c375cc045b886cb367c SHA512 76494fc9415db68d2b67d832a7a5c8b035e4e379d9adb6eb8292579d12b88b92350692b24e999b1328e02f729fae4060304594d37c754ff359903193c1464aed
-DIST obs-studio-28.1.2.tar.gz 18859931 BLAKE2B 08fcedb4094d6a03512139e9055116f47fbd6cf706029d2719524bc018d0dce2a774de83b603f9a7665a115e2414775b858020e0be0ccdcc6882478256392646 SHA512 9d5e7e1f2f6236b795c2c49a1a6ba43623c71f16c1c6106fae6ac99b792e15793c169fb62aea271c253b13a0fd9bc9b9ad7880315d9ee787682174a5700f85bd
-DIST obs-studio-29.0.2.tar.gz 18939072 BLAKE2B 78a6b7fec520797a5c9d36e7d9a034c29c701d38a745415c3fd0ae3907831584ef4a77b833fa1a7466a23b02a06736afd34720ff3b0d3226dbb0dcab64c72931 SHA512 63a832dc6a0a7f07a2f7adf18f1412e8694405d39721144e82dedab8182e17da6f3063f547bc2b33cc7ea053f6dbb8ffda051af5bffdf9773710bd08744faf8f
-DIST obs-websocket-31f9845b6132e6c1529401292bc1125401e2a324.tar.gz 238884 BLAKE2B 93a41ff9dd33cf2babaef90c961def1ae39d3b4e7d2f2542123973672c2adbd0cff987f58ce72e9c4acd8818c834531e624c376b3d297f4bdfc097e22ee4b293 SHA512 11bf28f574ec2a7b128dae53010484610465c94245881fd98eb750b59e00236f656d1ef706187a41cb42eab3e3668440d83f66399f6917e2d93b7ba6c7241ad3
-DIST obs-websocket-5716577019b1ccda01a12db2cba35a023082b7ad.tar.gz 235118 BLAKE2B 96202cf81389b82b26027680dcaa6e2bf902c9776a89895fbef859dae2986523bc5d34ad30233c29fac043611a942fb4d86e5d9d9cd4ef2a9503154a383002fe SHA512 9bb511c9693889f9837cd001fafe403762d44f2ecc80bad42e592d7555e3807a148ab19638724871b7807e71edf5f62a1e0ea62f362fd1b9a6e9bf49000b8a5c
+DIST obs-browser-594115a27d40f0916e55db97cb61f7c7130cbe28.tar.gz 116455 BLAKE2B 8158bdd9fcc689c3b0024c9da26c3f39b44c9dac7fb031470470a2697f66af122552a19beb389faa96001a8f35bf06580ad3c5e00f616900e7ca960d3e1c1450 SHA512 ff1e5cbe76a1a4a7224b1b01f0f45df51dd60c7426a73008a744fb17be3e4c7a96dd3833f237a480dd4ec2dd3e544d847aced2256453919d8442f7857354afb2
+DIST obs-studio-29.1.3.tar.gz 26315797 BLAKE2B c8d7824ca280a9be566c075a6238141b00ad8a2efbd5d010ff5c92c7c12c225f473fd331a9654e23924ffb0d883734dc2d2afad5065f8c9b1486298dbe2c5a0a SHA512 563a9b71ebe273b604807b9c43be8bde58fb326e8a0b741afb84a481a99176c96bf63da2aa26b6dcc026573b7fb0bf53e0a296e2db0b93c28f0d4710cd7cf019
+DIST obs-websocket-6fd18a7ef1ecb149e8444154af1daab61d4241a9.tar.gz 245070 BLAKE2B 311037960ec230b76dfe2ae796d1897d42a2dc96cda7e9962209edfcd210e2af5d20a1ddfcffd8d4e6c9f7ac7d5cbb6818b864d53ce53acf2c6515f7dd2d33bf SHA512 94defd55e4a4dc65b4366d2e92c9604cff67cba2b24ed67d53fbd492605f339201e4d3896789c0ccb84b6fbff4b37be70475524fec5ca2b42f7b59b8596ce828
DIST qr-8518684c0f33d004fa93971be2c6a8eca3167d1e.tar.gz 135863 BLAKE2B fa6fb9c9e5250b56bdf38f31aa4acaf4ce860c153012984d1266928bd7a62dcf43b271ff53b4322931304670742566dcb016ef65ff2f681bf76224f86eca567c SHA512 ba298de89411fecc8db3dc10850485da01f5183d68b6d91ea91a9e28c1f104eb110adbf143a37e5d1856abbba5d309ab8329a6359ca7225bacb033d8044fa72c
-DIST websocketpp-56123c87598f8b1dd471be83ca841ceae07f95ba.tar.gz 701544 BLAKE2B 61680c31309d8f78b27b82e1bde2c7828eae2777df0629355c557dfd8b0daef6de7d202bbcff372351e135bb62366ffc8eec6c72a99df7c46a9197773c46550c SHA512 f185a66e5a7c783254352a6ef87e2e559f681032b7368765d08393ed12bcae76825abed7dcaea73de09df644320409dad46279701f5f469520542a2c9b6a6163
diff --git a/media-video/obs-studio/metadata.xml b/media-video/obs-studio/metadata.xml
index 0d746963a49f..9b0f681b3e6d 100644
--- a/media-video/obs-studio/metadata.xml
+++ b/media-video/obs-studio/metadata.xml
@@ -17,6 +17,7 @@
<flag name="fdk">Build with LibFDK AAC support.</flag>
<flag name="pipewire">Build with PipeWire support.</flag>
<flag name="python">Build with scripting support for Python 3.</flag>
+ <flag name="qsv">Build with Intel Quick Sync Video support.</flag>
<flag name="speex">Build with Speex noise suppression filter support.</flag>
<flag name="ssl">Build with TLS/SSL support for RTMPS connections.</flag>
<flag name="vlc">Build with VLC media source support.</flag>
diff --git a/media-video/obs-studio/obs-studio-28.1.2-r1.ebuild b/media-video/obs-studio/obs-studio-28.1.2-r1.ebuild
deleted file mode 100644
index 08e06f6d0ca1..000000000000
--- a/media-video/obs-studio/obs-studio-28.1.2-r1.ebuild
+++ /dev/null
@@ -1,266 +0,0 @@
-# Copyright 1999-2023 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_{9..11} )
-
-inherit cmake lua-single optfeature python-single-r1 xdg
-
-CEF_DIR="cef_binary_5060_linux64"
-ASIO_COMMIT="b73dc1d2c0ecb9452a87c26544d7f71e24342df6"
-JSON_COMMIT="a34e011e24beece3b69397a03fdc650546f052c3"
-OBS_BROWSER_COMMIT="e2310b02df3e6c184fe6eb6608244a82e37f582e"
-OBS_WEBSOCKET_COMMIT="5716577019b1ccda01a12db2cba35a023082b7ad"
-QR_COMMIT="8518684c0f33d004fa93971be2c6a8eca3167d1e"
-WEBSOCKETPP_COMMIT="56123c87598f8b1dd471be83ca841ceae07f95ba"
-
-if [[ ${PV} == 9999 ]]; then
- inherit git-r3
- EGIT_REPO_URI="https://github.com/obsproject/obs-studio.git"
- EGIT_SUBMODULES=(
- plugins/obs-browser
- plugins/obs-websocket
- plugins/obs-websocket/deps/asio
- plugins/obs-websocket/deps/json
- plugins/obs-websocket/deps/qr
- plugins/obs-websocket/deps/websocketpp
- )
-else
- SRC_URI="
- https://github.com/obsproject/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz
- https://github.com/obsproject/obs-browser/archive/${OBS_BROWSER_COMMIT}.tar.gz -> obs-browser-${OBS_BROWSER_COMMIT}.tar.gz
- https://github.com/chriskohlhoff/asio/archive/${ASIO_COMMIT}.tar.gz -> asio-${ASIO_COMMIT}.tar.gz
- https://github.com/nayuki/QR-Code-generator/archive/${QR_COMMIT}.tar.gz -> qr-${QR_COMMIT}.tar.gz
- https://github.com/nlohmann/json/archive/${JSON_COMMIT}.tar.gz -> json-${JSON_COMMIT}.tar.gz
- https://github.com/obsproject/obs-websocket/archive/${OBS_WEBSOCKET_COMMIT}.tar.gz -> obs-websocket-${OBS_WEBSOCKET_COMMIT}.tar.gz
- https://github.com/zaphoyd/websocketpp/archive/${WEBSOCKETPP_COMMIT}.tar.gz -> websocketpp-${WEBSOCKETPP_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="Boost-1.0 GPL-2+ MIT Unlicense"
-SLOT="0"
-IUSE="
- +alsa browser decklink fdk jack lua nvenc pipewire pulseaudio
- python qt6 speex +ssl truetype v4l vlc wayland websocket
-"
-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:=
- media-libs/libglvnd
- media-libs/x264:=
- media-video/ffmpeg:=[nvenc?,x264]
- net-misc/curl
- sys-apps/dbus
- sys-apps/pciutils
- sys-libs/zlib:=
- x11-libs/libX11
- x11-libs/libXcomposite
- x11-libs/libXfixes
- x11-libs/libxcb:=
- alsa? ( media-libs/alsa-lib )
- browser? (
- || (
- >=app-accessibility/at-spi2-core-2.46.0:2
- ( app-accessibility/at-spi2-atk dev-libs/atk )
- )
- dev-libs/expat
- dev-libs/glib
- dev-libs/nspr
- dev-libs/nss
- dev-libs/wayland
- media-libs/alsa-lib
- media-libs/fontconfig
- media-libs/mesa[gbm(+)]
- net-print/cups
- x11-libs/cairo
- x11-libs/libdrm
- x11-libs/libXcursor
- x11-libs/libXdamage
- x11-libs/libXext
- x11-libs/libXi
- x11-libs/libxkbcommon
- x11-libs/libXrandr
- x11-libs/libXrender
- x11-libs/libXScrnSaver
- x11-libs/libxshmfence
- x11-libs/libXtst
- x11-libs/pango
- )
- fdk? ( media-libs/fdk-aac:= )
- jack? ( virtual/jack )
- lua? ( ${LUA_DEPS} )
- pipewire? ( media-video/pipewire:= )
- pulseaudio? ( media-libs/libpulse )
- python? ( ${PYTHON_DEPS} )
- qt6? (
- dev-qt/qtbase:6[network,widgets,xml(+)]
- dev-qt/qtsvg:6
- x11-libs/libxkbcommon
- )
- !qt6? (
- dev-qt/qtcore:5
- dev-qt/qtgui:5[wayland?]
- dev-qt/qtnetwork:5
- dev-qt/qtquickcontrols:5
- dev-qt/qtsvg:5
- dev-qt/qtwidgets:5
- dev-qt/qtxml:5
- )
- speex? ( media-libs/speexdsp )
- ssl? ( net-libs/mbedtls:= )
- truetype? (
- media-libs/fontconfig
- media-libs/freetype
- )
- v4l? (
- media-libs/libv4l
- virtual/udev
- )
- vlc? ( media-video/vlc:= )
- wayland? (
- dev-libs/wayland
- x11-libs/libxkbcommon
- )
-"
-RDEPEND="${DEPEND}"
-
-QA_PREBUILT="
- usr/lib*/obs-plugins/chrome-sandbox
- usr/lib*/obs-plugins/libcef.so
- usr/lib*/obs-plugins/libEGL.so
- usr/lib*/obs-plugins/libGLESv2.so
- usr/lib*/obs-plugins/libvk_swiftshader.so
- usr/lib*/obs-plugins/libvulkan.so.1
- usr/lib*/obs-plugins/swiftshader/libEGL.so
- usr/lib*/obs-plugins/swiftshader/libGLESv2.so
-"
-
-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
- else
- rm -d ${P}/plugins/obs-browser || die
- mv obs-browser-${OBS_BROWSER_COMMIT} ${P}/plugins/obs-browser || die
-
- rm -d ${P}/plugins/obs-websocket || die
- mv obs-websocket-${OBS_WEBSOCKET_COMMIT} ${P}/plugins/obs-websocket || die
-
- rm -d ${P}/plugins/obs-websocket/deps/asio || die
- mv asio-${ASIO_COMMIT} ${P}/plugins/obs-websocket/deps/asio || die
-
- rm -d ${P}/plugins/obs-websocket/deps/json || die
- mv json-${JSON_COMMIT} ${P}/plugins/obs-websocket/deps/json || die
-
- rm -d ${P}/plugins/obs-websocket/deps/qr || die
- mv QR-Code-generator-${QR_COMMIT} ${P}/plugins/obs-websocket/deps/qr || die
-
- rm -d ${P}/plugins/obs-websocket/deps/websocketpp || die
- mv websocketpp-${WEBSOCKETPP_COMMIT} ${P}/plugins/obs-websocket/deps/websocketpp || die
- fi
-}
-
-src_configure() {
- local libdir=$(get_libdir)
- local mycmakeargs=(
- $(usev browser -DCEF_ROOT_DIR=../${CEF_DIR})
- -DENABLE_ALSA=$(usex alsa)
- -DENABLE_AJA=OFF
- -DENABLE_BROWSER=$(usex browser)
- -DENABLE_DECKLINK=$(usex decklink)
- -DENABLE_FREETYPE=$(usex truetype)
- -DENABLE_JACK=$(usex jack)
- -DENABLE_LIBFDK=$(usex fdk)
- -DENABLE_NEW_MPEGTS_OUTPUT=OFF # Requires librist and libsrt.
- -DENABLE_PIPEWIRE=$(usex pipewire)
- -DENABLE_PULSEAUDIO=$(usex pulseaudio)
- -DENABLE_RTMPS=$(usex ssl ON OFF) # Needed for bug 880861
- -DENABLE_SPEEXDSP=$(usex speex)
- -DENABLE_V4L2=$(usex v4l)
- -DENABLE_VLC=$(usex vlc)
- -DENABLE_VST=ON
- -DENABLE_WAYLAND=$(usex wayland)
- -DENABLE_WEBSOCKET=$(usex websocket)
- -DOBS_MULTIARCH_SUFFIX=${libdir#lib}
- -DQT_VERSION=$(usex qt6 6 5)
- -DUNIX_STRUCTURE=1
- )
-
- if [[ ${PV} != 9999 ]]; then
- mycmakeargs+=(
- -DOBS_VERSION_OVERRIDE=${PV}
- )
- fi
-
- if use lua || use python; then
- mycmakeargs+=(
- -DENABLE_SCRIPTING_LUA=$(usex lua)
- -DENABLE_SCRIPTING_PYTHON=$(usex python)
- -DENABLE_SCRIPTING=ON
- )
- else
- mycmakeargs+=( -DENABLE_SCRIPTING=OFF )
- fi
-
- if use browser && use ssl; then
- mycmakeargs+=( -DENABLE_WHATSNEW=ON )
- else
- mycmakeargs+=( -DENABLE_WHATSNEW=OFF )
- 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 "at least one of the 'alsa' or 'pulseaudio' USE-flags needs to"
- elog "be enabled."
- elog
- fi
-
- if use v4l && has_version media-video/v4l2loopback; then
- elog
- elog "Depending on system configuration, the v4l2loopback kernel module"
- elog "may need to be loaded manually, and needs to be re-built after"
- elog "kernel changes."
- elog
- fi
-
- optfeature "virtual camera support" media-video/v4l2loopback
-}
diff --git a/media-video/obs-studio/obs-studio-29.0.2.ebuild b/media-video/obs-studio/obs-studio-29.1.3-r1.ebuild
index a7bffc5d998a..49443e5e5190 100644
--- a/media-video/obs-studio/obs-studio-29.0.2.ebuild
+++ b/media-video/obs-studio/obs-studio-29.1.3-r1.ebuild
@@ -5,17 +5,14 @@ EAPI=8
CMAKE_REMOVE_MODULES_LIST=( FindFreetype )
LUA_COMPAT=( luajit )
-PYTHON_COMPAT=( python3_{9..11} )
+PYTHON_COMPAT=( python3_{9..12} )
inherit cmake lua-single optfeature python-single-r1 xdg
CEF_DIR="cef_binary_5060_linux64"
-ASIO_COMMIT="b73dc1d2c0ecb9452a87c26544d7f71e24342df6"
-JSON_COMMIT="a34e011e24beece3b69397a03fdc650546f052c3"
-OBS_BROWSER_COMMIT="1c2264d722f065646b72ac654f6ddbb6843f9bef"
-OBS_WEBSOCKET_COMMIT="31f9845b6132e6c1529401292bc1125401e2a324"
+OBS_BROWSER_COMMIT="594115a27d40f0916e55db97cb61f7c7130cbe28"
+OBS_WEBSOCKET_COMMIT="6fd18a7ef1ecb149e8444154af1daab61d4241a9"
QR_COMMIT="8518684c0f33d004fa93971be2c6a8eca3167d1e"
-WEBSOCKETPP_COMMIT="56123c87598f8b1dd471be83ca841ceae07f95ba"
if [[ ${PV} == 9999 ]]; then
inherit git-r3
@@ -32,11 +29,8 @@ else
SRC_URI="
https://github.com/obsproject/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz
https://github.com/obsproject/obs-browser/archive/${OBS_BROWSER_COMMIT}.tar.gz -> obs-browser-${OBS_BROWSER_COMMIT}.tar.gz
- https://github.com/chriskohlhoff/asio/archive/${ASIO_COMMIT}.tar.gz -> asio-${ASIO_COMMIT}.tar.gz
https://github.com/nayuki/QR-Code-generator/archive/${QR_COMMIT}.tar.gz -> qr-${QR_COMMIT}.tar.gz
- https://github.com/nlohmann/json/archive/${JSON_COMMIT}.tar.gz -> json-${JSON_COMMIT}.tar.gz
https://github.com/obsproject/obs-websocket/archive/${OBS_WEBSOCKET_COMMIT}.tar.gz -> obs-websocket-${OBS_WEBSOCKET_COMMIT}.tar.gz
- https://github.com/zaphoyd/websocketpp/archive/${WEBSOCKETPP_COMMIT}.tar.gz -> websocketpp-${WEBSOCKETPP_COMMIT}.tar.gz
"
KEYWORDS="~amd64 ~ppc64 ~x86"
fi
@@ -61,16 +55,18 @@ BDEPEND="
lua? ( dev-lang/swig )
python? ( dev-lang/swig )
"
+# media-video/ffmpeg[opus] required due to bug 909566
DEPEND="
dev-libs/glib:2
dev-libs/jansson:=
media-libs/libglvnd
media-libs/libva
media-libs/x264:=
- media-video/ffmpeg:=[nvenc?,x264]
+ media-video/ffmpeg:=[nvenc?,opus,x264]
net-misc/curl
sys-apps/dbus
sys-apps/pciutils
+ sys-apps/util-linux
sys-libs/zlib:=
x11-libs/libX11
x11-libs/libXcomposite
@@ -140,6 +136,11 @@ DEPEND="
dev-libs/wayland
x11-libs/libxkbcommon
)
+ websocket? (
+ dev-cpp/asio
+ dev-cpp/nlohmann_json
+ dev-cpp/websocketpp
+ )
"
RDEPEND="${DEPEND}"
@@ -171,24 +172,25 @@ src_unpack() {
rm -d ${P}/plugins/obs-websocket || die
mv obs-websocket-${OBS_WEBSOCKET_COMMIT} ${P}/plugins/obs-websocket || die
- rm -d ${P}/plugins/obs-websocket/deps/asio || die
- mv asio-${ASIO_COMMIT} ${P}/plugins/obs-websocket/deps/asio || die
-
- rm -d ${P}/plugins/obs-websocket/deps/json || die
- mv json-${JSON_COMMIT} ${P}/plugins/obs-websocket/deps/json || die
-
rm -d ${P}/plugins/obs-websocket/deps/qr || die
mv QR-Code-generator-${QR_COMMIT} ${P}/plugins/obs-websocket/deps/qr || die
-
- rm -d ${P}/plugins/obs-websocket/deps/websocketpp || die
- mv websocketpp-${WEBSOCKETPP_COMMIT} ${P}/plugins/obs-websocket/deps/websocketpp || die
fi
}
+src_prepare() {
+ default
+
+ sed -i '/-Werror$/d' "${WORKDIR}"/${P}/cmake/Modules/CompilerConfig.cmake || die
+
+ cmake_src_prepare
+}
+
src_configure() {
local libdir=$(get_libdir)
local mycmakeargs=(
$(usev browser -DCEF_ROOT_DIR=../${CEF_DIR})
+ -DCALM_DEPRECATION=ON
+ -DCCACHE_SUPPORT=OFF
-DENABLE_ALSA=$(usex alsa)
-DENABLE_AJA=OFF
-DENABLE_BROWSER=$(usex browser)
@@ -263,5 +265,6 @@ pkg_postinst() {
elog
fi
+ optfeature "VA-API hardware encoding" media-video/ffmpeg[vaapi]
optfeature "virtual camera support" media-video/v4l2loopback
}
diff --git a/media-video/obs-studio/obs-studio-9999.ebuild b/media-video/obs-studio/obs-studio-9999.ebuild
index a7bffc5d998a..96ad2ebc7090 100644
--- a/media-video/obs-studio/obs-studio-9999.ebuild
+++ b/media-video/obs-studio/obs-studio-9999.ebuild
@@ -5,17 +5,14 @@ EAPI=8
CMAKE_REMOVE_MODULES_LIST=( FindFreetype )
LUA_COMPAT=( luajit )
-PYTHON_COMPAT=( python3_{9..11} )
+PYTHON_COMPAT=( python3_{9..12} )
inherit cmake lua-single optfeature python-single-r1 xdg
CEF_DIR="cef_binary_5060_linux64"
-ASIO_COMMIT="b73dc1d2c0ecb9452a87c26544d7f71e24342df6"
-JSON_COMMIT="a34e011e24beece3b69397a03fdc650546f052c3"
-OBS_BROWSER_COMMIT="1c2264d722f065646b72ac654f6ddbb6843f9bef"
-OBS_WEBSOCKET_COMMIT="31f9845b6132e6c1529401292bc1125401e2a324"
+OBS_BROWSER_COMMIT="291464d6988083411e7369fc53eba6d5ef07ff67"
+OBS_WEBSOCKET_COMMIT="6fd18a7ef1ecb149e8444154af1daab61d4241a9"
QR_COMMIT="8518684c0f33d004fa93971be2c6a8eca3167d1e"
-WEBSOCKETPP_COMMIT="56123c87598f8b1dd471be83ca841ceae07f95ba"
if [[ ${PV} == 9999 ]]; then
inherit git-r3
@@ -32,11 +29,8 @@ else
SRC_URI="
https://github.com/obsproject/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz
https://github.com/obsproject/obs-browser/archive/${OBS_BROWSER_COMMIT}.tar.gz -> obs-browser-${OBS_BROWSER_COMMIT}.tar.gz
- https://github.com/chriskohlhoff/asio/archive/${ASIO_COMMIT}.tar.gz -> asio-${ASIO_COMMIT}.tar.gz
https://github.com/nayuki/QR-Code-generator/archive/${QR_COMMIT}.tar.gz -> qr-${QR_COMMIT}.tar.gz
- https://github.com/nlohmann/json/archive/${JSON_COMMIT}.tar.gz -> json-${JSON_COMMIT}.tar.gz
https://github.com/obsproject/obs-websocket/archive/${OBS_WEBSOCKET_COMMIT}.tar.gz -> obs-websocket-${OBS_WEBSOCKET_COMMIT}.tar.gz
- https://github.com/zaphoyd/websocketpp/archive/${WEBSOCKETPP_COMMIT}.tar.gz -> websocketpp-${WEBSOCKETPP_COMMIT}.tar.gz
"
KEYWORDS="~amd64 ~ppc64 ~x86"
fi
@@ -49,7 +43,7 @@ LICENSE="Boost-1.0 GPL-2+ MIT Unlicense"
SLOT="0"
IUSE="
+alsa browser decklink fdk jack lua nvenc pipewire pulseaudio
- python qt6 speex +ssl truetype v4l vlc wayland websocket
+ python qsv speex +ssl truetype v4l vlc wayland websocket
"
REQUIRED_USE="
browser? ( || ( alsa pulseaudio ) )
@@ -61,27 +55,33 @@ BDEPEND="
lua? ( dev-lang/swig )
python? ( dev-lang/swig )
"
+# media-video/ffmpeg[opus] required due to bug 909566
DEPEND="
dev-libs/glib:2
dev-libs/jansson:=
+ dev-qt/qtbase:6[network,widgets,xml(+)]
+ dev-qt/qtsvg:6
media-libs/libglvnd
media-libs/libva
media-libs/x264:=
- media-video/ffmpeg:=[nvenc?,x264]
+ media-video/ffmpeg:=[nvenc?,opus,x264]
net-misc/curl
sys-apps/dbus
sys-apps/pciutils
+ sys-apps/util-linux
sys-libs/zlib:=
x11-libs/libX11
+ x11-libs/libxcb:=
x11-libs/libXcomposite
x11-libs/libXfixes
- x11-libs/libxcb:=
+ x11-libs/libxkbcommon
alsa? ( media-libs/alsa-lib )
browser? (
|| (
>=app-accessibility/at-spi2-core-2.46.0:2
( app-accessibility/at-spi2-atk dev-libs/atk )
)
+ dev-cpp/nlohmann_json
dev-libs/expat
dev-libs/glib
dev-libs/nspr
@@ -111,20 +111,7 @@ DEPEND="
pipewire? ( media-video/pipewire:= )
pulseaudio? ( media-libs/libpulse )
python? ( ${PYTHON_DEPS} )
- qt6? (
- dev-qt/qtbase:6[network,widgets,xml(+)]
- dev-qt/qtsvg:6
- x11-libs/libxkbcommon
- )
- !qt6? (
- dev-qt/qtcore:5
- dev-qt/qtgui:5[wayland?]
- dev-qt/qtnetwork:5
- dev-qt/qtquickcontrols:5
- dev-qt/qtsvg:5
- dev-qt/qtwidgets:5
- dev-qt/qtxml:5
- )
+ qsv? ( media-libs/oneVPL )
speex? ( media-libs/speexdsp )
ssl? ( net-libs/mbedtls:= )
truetype? (
@@ -140,6 +127,11 @@ DEPEND="
dev-libs/wayland
x11-libs/libxkbcommon
)
+ websocket? (
+ dev-cpp/asio
+ dev-cpp/nlohmann_json
+ dev-cpp/websocketpp
+ )
"
RDEPEND="${DEPEND}"
@@ -171,24 +163,25 @@ src_unpack() {
rm -d ${P}/plugins/obs-websocket || die
mv obs-websocket-${OBS_WEBSOCKET_COMMIT} ${P}/plugins/obs-websocket || die
- rm -d ${P}/plugins/obs-websocket/deps/asio || die
- mv asio-${ASIO_COMMIT} ${P}/plugins/obs-websocket/deps/asio || die
-
- rm -d ${P}/plugins/obs-websocket/deps/json || die
- mv json-${JSON_COMMIT} ${P}/plugins/obs-websocket/deps/json || die
-
rm -d ${P}/plugins/obs-websocket/deps/qr || die
mv QR-Code-generator-${QR_COMMIT} ${P}/plugins/obs-websocket/deps/qr || die
-
- rm -d ${P}/plugins/obs-websocket/deps/websocketpp || die
- mv websocketpp-${WEBSOCKETPP_COMMIT} ${P}/plugins/obs-websocket/deps/websocketpp || die
fi
}
+src_prepare() {
+ default
+
+ sed -i '/-Werror$/d' "${WORKDIR}"/${P}/cmake/Modules/CompilerConfig.cmake || die
+
+ cmake_src_prepare
+}
+
src_configure() {
local libdir=$(get_libdir)
local mycmakeargs=(
$(usev browser -DCEF_ROOT_DIR=../${CEF_DIR})
+ -DCALM_DEPRECATION=ON
+ -DCCACHE_SUPPORT=OFF
-DENABLE_ALSA=$(usex alsa)
-DENABLE_AJA=OFF
-DENABLE_BROWSER=$(usex browser)
@@ -199,15 +192,16 @@ src_configure() {
-DENABLE_NEW_MPEGTS_OUTPUT=OFF # Requires librist and libsrt.
-DENABLE_PIPEWIRE=$(usex pipewire)
-DENABLE_PULSEAUDIO=$(usex pulseaudio)
+ -DENABLE_QSV11=$(usex qsv)
-DENABLE_RTMPS=$(usex ssl ON OFF) # Needed for bug 880861
-DENABLE_SPEEXDSP=$(usex speex)
-DENABLE_V4L2=$(usex v4l)
-DENABLE_VLC=$(usex vlc)
-DENABLE_VST=ON
-DENABLE_WAYLAND=$(usex wayland)
+ -DENABLE_WEBRTC=OFF # Requires libdatachannel.
-DENABLE_WEBSOCKET=$(usex websocket)
-DOBS_MULTIARCH_SUFFIX=${libdir#lib}
- -DQT_VERSION=$(usex qt6 6 5)
-DUNIX_STRUCTURE=1
)
@@ -263,5 +257,6 @@ pkg_postinst() {
elog
fi
+ optfeature "VA-API hardware encoding" media-video/ffmpeg[vaapi]
optfeature "virtual camera support" media-video/v4l2loopback
}
diff --git a/media-video/openshot/Manifest b/media-video/openshot/Manifest
index c7d5944f54b6..231590e5be23 100644
--- a/media-video/openshot/Manifest
+++ b/media-video/openshot/Manifest
@@ -1 +1,2 @@
DIST openshot-2.6.1.tar.gz 68566443 BLAKE2B b3a163983bdb811103e5d9307beeb38938719747f743dd58520a0166c08eb11f4592d47bf24224062f9db323a66a2f353eb22f087982b929d60a519cd2c40789 SHA512 9e2d1eae5d72ec2deab914e464dac0d84a864ba2ca63104fad57c90fc907764d5683149fb8136d50030cae993cef9a977e995b0783868988de4668e71a3a5ee2
+DIST openshot-3.1.1.tar.gz 95843738 BLAKE2B 4059fe12b064692070278366f787789866dcbe39414d10217fb62b671dda98ebb6d2f76b8e1cfe2284a647e3d7ebc460b620ba0756a4542f5b26e7ef669e9b3e SHA512 4e5a42825abf8e3862957039169905a6f03872d81de454f52a57ace2e636e91b2f4e87ae603bf9669baa7d1bbbd6c0213efd0c72e23f2b209ba266af2fbe380f
diff --git a/media-video/openshot/openshot-2.6.1.ebuild b/media-video/openshot/openshot-2.6.1.ebuild
index 1284b9944aa2..a013ab34e233 100644
--- a/media-video/openshot/openshot-2.6.1.ebuild
+++ b/media-video/openshot/openshot-2.6.1.ebuild
@@ -3,8 +3,8 @@
EAPI=7
-PYTHON_COMPAT=( python3_{9..10} )
-PYTHON_REQ_USE=xml
+PYTHON_COMPAT=( python3_{10..11} )
+PYTHON_REQ_USE="xml(+)"
DISTUTILS_SINGLE_IMPL=1
inherit distutils-r1 xdg
@@ -44,12 +44,12 @@ 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
}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/media-video/openshot/openshot-3.1.1.ebuild b/media-video/openshot/openshot-3.1.1.ebuild
new file mode 100644
index 000000000000..e4e04dbc01cd
--- /dev/null
+++ b/media-video/openshot/openshot-3.1.1.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{10..11} )
+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_USEDEP}]
+ dev-python/PyQt5[${PYTHON_USEDEP},gui,svg,widgets]
+ dev-python/PyQtWebEngine[${PYTHON_USEDEP}]
+ dev-python/pyzmq[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ ')
+ >=media-libs/libopenshot-0.3.2:0=[python,${PYTHON_SINGLE_USEDEP}]"
+DEPEND=""
+BDEPEND="$(python_gen_cond_dep '
+ doc? ( dev-python/sphinx[${PYTHON_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_test() {
+ distutils_install_for_testing
+ "${EPYTHON}" src/tests/query_tests.py -v --platform minimal || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/_build/html/. )
+ distutils-r1_python_install_all
+}
diff --git a/media-video/parole/Manifest b/media-video/parole/Manifest
index af85eaf55e24..b5c5057ff55c 100644
--- a/media-video/parole/Manifest
+++ b/media-video/parole/Manifest
@@ -1,2 +1 @@
-DIST parole-4.16.0.tar.bz2 924955 BLAKE2B 7f5c9994e65ce66aa34211047228840e1747cbbaebe0f03d27501d54ef0372e55f294f37869bfaba378e3ab6447e9824798d0c9906549b7c822ce60c54ac81a5 SHA512 fe4723ce3e2106935b4577647920d6759ade3311ef92d5633a309aeb930b81974dd8e5f65958a304a117e614341cba032a54d0c81bdd386d592c64ed2aa31124
DIST parole-4.18.0.tar.bz2 932686 BLAKE2B 49bbc93d1172daf29e73d5eacedfae2fb11f14684232e2c6cbcc84fcddfa65bcece6ef41c68fb58a0046e1a60280ff92e0890e5302f9e0751c1afce825bee7f3 SHA512 2988c8b6f9f0beab646a90116ee83f19d6e6689ea4d037ea643aa26d5716f7c452fa96ee1d4c6d01ee6c421b06cb5405f7256cfdb525ce1016c12f0a78cddb80
diff --git a/media-video/parole/parole-4.16.0.ebuild b/media-video/parole/parole-4.16.0.ebuild
deleted file mode 100644
index 185f0d300764..000000000000
--- a/media-video/parole/parole-4.16.0.ebuild
+++ /dev/null
@@ -1,64 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit xdg-utils
-
-DESCRIPTION="A simple Xfce4 media player using GStreamer"
-HOMEPAGE="https://docs.xfce.org/apps/parole/start"
-SRC_URI="https://archive.xfce.org/src/apps/${PN}/${PV%.*}/${P}.tar.bz2"
-
-LICENSE="GPL-2+"
-SLOT="0"
-KEYWORDS="amd64 ~mips x86"
-IUSE="libnotify taglib"
-
-DEPEND="
- >=dev-libs/dbus-glib-0.100
- >=dev-libs/glib-2.32:2
- media-libs/gstreamer:1.0
- media-libs/gst-plugins-base:1.0
- sys-apps/dbus
- >=x11-libs/gtk+-3.20:3
- x11-libs/libX11
- >=xfce-base/libxfce4ui-4.11:=[gtk3(+)]
- >=xfce-base/libxfce4util-4.11:=
- >=xfce-base/xfconf-4.10:=
- libnotify? ( >=x11-libs/libnotify-0.7 )
- taglib? ( >=media-libs/taglib-1.6:0= )"
-RDEPEND="${DEPEND}
- media-plugins/gst-plugins-meta:1.0"
-DEPEND+="
- x11-base/xorg-proto"
-BDEPEND="
- dev-util/glib-utils
- dev-util/intltool
- sys-devel/gettext
- virtual/pkgconfig"
-
-src_configure() {
- local myconf=(
- # clutter backend does not work with new GTK+3 versions
- --disable-clutter
- $(use_enable taglib)
- $(use_enable libnotify notify-plugin)
- )
-
- econf "${myconf[@]}"
-}
-
-src_install() {
- default
- find "${D}" -name '*.la' -delete || die
-}
-
-pkg_postinst() {
- xdg_desktop_database_update
- xdg_icon_cache_update
-}
-
-pkg_postrm() {
- xdg_desktop_database_update
- xdg_icon_cache_update
-}
diff --git a/media-video/parole/parole-4.18.0.ebuild b/media-video/parole/parole-4.18.0.ebuild
index 56773b4c0515..e8bff7cbe260 100644
--- a/media-video/parole/parole-4.18.0.ebuild
+++ b/media-video/parole/parole-4.18.0.ebuild
@@ -14,7 +14,7 @@ SRC_URI="https://archive.xfce.org/src/apps/${PN}/${PV%.*}/${P}.tar.bz2"
LICENSE="GPL-2+"
SLOT="0"
-KEYWORDS="~amd64 ~mips ~x86"
+KEYWORDS="amd64 ~mips x86"
IUSE="libnotify taglib"
DEPEND="
diff --git a/media-video/pipewire/Manifest b/media-video/pipewire/Manifest
index 0bfca7036486..2b9157523e57 100644
--- a/media-video/pipewire/Manifest
+++ b/media-video/pipewire/Manifest
@@ -1,3 +1,5 @@
-DIST pipewire-0.3.65.tar.bz2 1522095 BLAKE2B d991820e8780773ccf1cd68baa3156428eb099703b82c3e3ad24a86bc634ad43fb474fe362de5e5704ee8b35832b75995fd56096b6539835e8b1f31710450d08 SHA512 0c2402044a04ab6ba724b0808279498e2126dd567920f3241d7d3d5e13ea676e353fc85a73634cf4cae5429454250dfce5cd18ba4a5444a7ed1a5ca2e0ae1eef
-DIST pipewire-0.3.66.tar.bz2 1532022 BLAKE2B aa0db6426a04728b633ce9a40aa1b10eca69423925b1a06b70cc65e4b8466b9de23c4f16ebdc5bd6c14d41866deec66ed166053299b9bc6f5b9e81fcc06010e2 SHA512 9e43159fec81dddad618be6ea44304aba4013be14992476e54cbb01e8699c9d6291012879e1c6717e1095be2d73390f900f6d54d8d9c689b50baf93c820c2129
-DIST pipewire-0.3.67.tar.bz2 1531871 BLAKE2B 59ea184ae11ad2999f37f0ded785551894ce6fbf478146c53f1dc6cdfeae7aa50cf6151b1e5e9c63c4f288682e5da7fde523251096af7da9d79bf96dd9d94809 SHA512 538b8ee905760775a0522dd3883d5db9bcaafe93d80eb5b588e21e73de22637a49cd139d3ed4dcfd1a5822af85e4cede624eee899c1e51a115f1ba0a6966c7a5
+DIST pipewire-0.3.75.tar.bz2 1629466 BLAKE2B e69dbb93ebe50f037bc602aa86733c8ba9ccbe57db520cd34ea025c9bf153dbd848882dbb4c2a4e830785a302a7cb7d4b7c1856c9a4be6f1c5ada92f70d1729b SHA512 19bf292f951f68de19cdfd3c76ee0e538a2ad3022e2669a4a19b40d26c2b16938799470b85def4b74b27b8c8137d03a05780d6bab0f38fb0835b528f2cd34f5d
+DIST pipewire-0.3.77.tar.bz2 1643767 BLAKE2B 3a2df9cdedf77d5b4927e115ddd7da0d1eecc85322ce7995a49945d41cc83b9a543c1382ad304bdb549f67ac444f7bca6871248654fb4d2e21b25eb55411940c SHA512 422c8504f608d6845b94351a336ab528f51195551418d0d245064972ed784817cacafc6afaad74eb0e0ea80474a9da33ef6917c1f60d3f8f45d70c54971f0760
+DIST pipewire-0.3.78.tar.bz2 1643536 BLAKE2B 44e04486850b0c68cea42ef911eaffae4c22bdedeff0783c119409d2e8d528c165f1f46f0a0e8b63e1c46cf8535b52b79291b54dd61496c6275c6e41f9d71edd SHA512 2fe0113eaaba1ffe67d20cf10b9ee927cb2bfc7c2663937b131f479d35ca6af43b5659cf8a16db849ecc5881e47a56507e775aad06e9765a3ab8ec354636f8eb
+DIST pipewire-0.3.79.tar.bz2 1647590 BLAKE2B dd7c88219310c77fd5b64cbfa4ab8130d81c47ff3a35c03ecfd260bc1e7e24fb108b5100bdbc977e3cd8e74ccfe90c11310b195e804a7fe04a64e1d1637c7233 SHA512 5853d4d9d0c21265e0fc0fd68369530d76ae63bad1aa28f6eaa4a0f76e5c939ffc0dee2d81fdf0526da3473f69bddcdb77938597ad004abe04c842d798409b1d
+DIST pipewire-0.3.80.tar.bz2 1655137 BLAKE2B cf55e01b6fff29e7ef1f40e9a8f28788b9f538380232821b334359844b33b12b913375ae14e4589d7ae9cd26d22bc841d8103d41c7eb3ea1a9f0c1db1abc6507 SHA512 77e26b6cbefc091ea703b53d147accbd9495f97ba57618a21366b0747074de3ed1060c03e91362f5cf9dc5c256da6d541eccaff8de306b369730400c7b7f46b2
diff --git a/media-video/pipewire/files/0.3.65/0001-modules-also-install-module-combine-stream.patch b/media-video/pipewire/files/0.3.65/0001-modules-also-install-module-combine-stream.patch
deleted file mode 100644
index 6e7dc42c2704..000000000000
--- a/media-video/pipewire/files/0.3.65/0001-modules-also-install-module-combine-stream.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/fba7083f8ceb210c7c20aceafeb5c9a8767cf705
-
-From fba7083f8ceb210c7c20aceafeb5c9a8767cf705 Mon Sep 17 00:00:00 2001
-From: Wim Taymans <wtaymans@redhat.com>
-Date: Thu, 26 Jan 2023 11:57:45 +0100
-Subject: [PATCH] modules: also install module-combine-stream
-
---- a/src/modules/meson.build
-+++ b/src/modules/meson.build
-@@ -139,7 +139,7 @@ pipewire_module_echo_cancel_sources = [
- pipewire_module_combine_stream = shared_library('pipewire-module-combine-stream',
- [ 'module-combine-stream.c' ],
- include_directories : [configinc],
-- install : false,
-+ install : true,
- install_dir : modules_install_dir,
- install_rpath: modules_install_dir,
- dependencies : [spa_dep, dl_lib, pipewire_dep],
---
-2.39.1
-
diff --git a/media-video/pipewire/files/0.3.65/0002-spa-bluez5-fix-dependency-on-glib-in-bluez5_deps.patch b/media-video/pipewire/files/0.3.65/0002-spa-bluez5-fix-dependency-on-glib-in-bluez5_deps.patch
deleted file mode 100644
index 2763236693d7..000000000000
--- a/media-video/pipewire/files/0.3.65/0002-spa-bluez5-fix-dependency-on-glib-in-bluez5_deps.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1511
-
-From 18fa7a555cc43c7219a53d836d9561faec6d6310 Mon Sep 17 00:00:00 2001
-From: Sam James <sam@gentoo.org>
-Date: Sat, 28 Jan 2023 11:04:48 +0000
-Subject: [PATCH] spa: bluez5: fix dependency on glib in bluez5_deps
-
-In de595a78ff958b8314d853f6266d5832529d9729, we started to require glib
-for building bluez and introduced dependencies for the needed gio* bits,
-but we only ever check for glib itself for gstreamer or flatpak.
-
-Drop glib from the dep list to match the summary() & subsequent bluez_deps_found
-logic in spa/meson.build.
-
-Fixes: https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/2999
---- a/spa/plugins/bluez5/meson.build
-+++ b/spa/plugins/bluez5/meson.build
-@@ -1,6 +1,6 @@
- gnome = import('gnome')
-
--bluez5_deps = [ mathlib, dbus_dep, glib2_dep, sbc_dep, bluez_dep, gio_dep, gio_unix_dep ]
-+bluez5_deps = [ mathlib, dbus_dep, sbc_dep, bluez_dep, gio_dep, gio_unix_dep ]
- foreach dep: bluez5_deps
- if not dep.found()
- subdir_done()
---
-2.39.1
-
diff --git a/media-video/pipewire/files/0.3.75/0001-module-rt-error-out-on-load-no-bus.patch b/media-video/pipewire/files/0.3.75/0001-module-rt-error-out-on-load-no-bus.patch
new file mode 100644
index 000000000000..8885eb8a564f
--- /dev/null
+++ b/media-video/pipewire/files/0.3.75/0001-module-rt-error-out-on-load-no-bus.patch
@@ -0,0 +1,83 @@
+https://bugs.gentoo.org/910714
+https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/55812195ce3b77317e7a2dc642b78271f3a45c8e
+
+From 55812195ce3b77317e7a2dc642b78271f3a45c8e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Joan=20Bruguera=20Mic=C3=B3?= <joanbrugueram@gmail.com>
+Date: Sat, 22 Jul 2023 01:20:58 +0000
+Subject: [PATCH] module-rt: error out on load if no bus is available
+
+Since the recent changes to the RT module in Pipewire 0.3.75, some
+applications such as those using OpenAL-Soft crash on startup if
+neither the session nor the system bus is available. For example:
+
+ bwrap --dev-bind / / \
+ --bind /dev/null /run/dbus/system_bus_socket \
+ --bind /dev/null $XDG_RUNTIME_DIR/bus \
+ openal-info
+
+Will result in a crash with the following error message:
+
+ dbus[1626147]: arguments to dbus_message_new_method_call() were
+ incorrect, assertion "path != NULL" failed in file dbus-message.c
+ line 1373.
+ This is normally a bug in some application using the D-Bus library.
+
+The RT module previously failed to load if no bus was available, but
+after the recent changes, the init. logic runs in a thread, and failing
+to obtain the bus no longer causes the module to fail to load.
+
+Then, functions called later such as `pw_rtkit_make_realtime` assume
+the bus is available and try to use it, causing the error above.
+
+Put the logic for obtaining and checking the bus back to `module_init`,
+so the module fails to load again if no bus is available.
+--- a/src/modules/module-rt.c
++++ b/src/modules/module-rt.c
+@@ -923,14 +923,11 @@ static int check_rtkit(struct impl *impl, struct pw_context *context, bool *can_
+ return 0;
+ }
+
+-static int do_rtkit_setup(struct spa_loop *loop, bool async, uint32_t seq,
+- const void *data, size_t size, void *user_data)
++static int rtkit_get_bus(struct impl *impl)
+ {
+- struct impl *impl = user_data;
+ int res;
+- long long retval;
+
+- pw_log_debug("enter rtkit setup");
++ pw_log_debug("enter rtkit get bus");
+
+ /* Checking xdg-desktop-portal. It works fine in all situations. */
+ if (impl->rtportal_enabled)
+@@ -967,6 +964,18 @@ static int do_rtkit_setup(struct spa_loop *loop, bool async, uint32_t seq,
+ return res;
+ }
+ }
++
++ return 0;
++}
++
++static int do_rtkit_setup(struct spa_loop *loop, bool async, uint32_t seq,
++ const void *data, size_t size, void *user_data)
++{
++ struct impl *impl = user_data;
++ long long retval;
++
++ pw_log_debug("enter rtkit setup");
++
+ /* get some properties */
+ if (rtkit_get_int_property(impl, "MaxRealtimePriority", &retval) < 0) {
+ retval = 1;
+@@ -1076,6 +1085,9 @@ int pipewire__module_init(struct pw_impl_module *module, const char *args)
+ #ifdef HAVE_DBUS
+ impl->use_rtkit = use_rtkit;
+ if (impl->use_rtkit) {
++ if ((res = rtkit_get_bus(impl)) < 0)
++ goto error;
++
+ impl->thread_loop = pw_thread_loop_new("module-rt", NULL);
+ if (impl->thread_loop == NULL) {
+ res = -errno;
+--
+GitLab
diff --git a/media-video/pipewire/files/0.3.75/0002-thread-loop-only-signal-when-option-set.patch b/media-video/pipewire/files/0.3.75/0002-thread-loop-only-signal-when-option-set.patch
new file mode 100644
index 000000000000..670847b2f86a
--- /dev/null
+++ b/media-video/pipewire/files/0.3.75/0002-thread-loop-only-signal-when-option-set.patch
@@ -0,0 +1,68 @@
+https://github.com/mpv-player/mpv/issues/11995
+https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3374
+https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/920bb7160e0be0ce5729d9538f6dea966f297603
+
+From 920bb7160e0be0ce5729d9538f6dea966f297603 Mon Sep 17 00:00:00 2001
+From: Wim Taymans <wtaymans@redhat.com>
+Date: Sun, 23 Jul 2023 18:16:00 +0200
+Subject: [PATCH] thread-loop: only signal when option is set
+
+Add a thead-loop.start-signal option that will do a signal before
+entering the thread loop. Doing the signal in all cases can confuse
+apps that don't expect the signal.
+
+Make module-rt use the thread-loop.start-signal.
+
+Fixes #3374
+--- a/src/modules/module-rt.c
++++ b/src/modules/module-rt.c
+@@ -1085,10 +1085,14 @@ int pipewire__module_init(struct pw_impl_module *module, const char *args)
+ #ifdef HAVE_DBUS
+ impl->use_rtkit = use_rtkit;
+ if (impl->use_rtkit) {
++ struct spa_dict_item items[] = {
++ { "thread-loop.start-signal", "true" }
++ };
+ if ((res = rtkit_get_bus(impl)) < 0)
+ goto error;
+
+- impl->thread_loop = pw_thread_loop_new("module-rt", NULL);
++ impl->thread_loop = pw_thread_loop_new("module-rt",
++ &SPA_DICT_INIT_ARRAY(items));
+ if (impl->thread_loop == NULL) {
+ res = -errno;
+ goto error;
+--- a/src/pipewire/thread-loop.c
++++ b/src/pipewire/thread-loop.c
+@@ -43,6 +43,7 @@ struct pw_thread_loop {
+ int n_waiting_for_accept;
+ unsigned int created:1;
+ unsigned int running:1;
++ unsigned int start_signal:1;
+ };
+ /** \endcond */
+
+@@ -143,6 +144,11 @@ static struct pw_thread_loop *loop_new(struct pw_loop *loop,
+ return NULL;
+
+ pw_log_debug("%p: new name:%s", this, name);
++ if (props != NULL) {
++ const char *str = spa_dict_lookup(props, "thread-loop.start-signal");
++ if (str != NULL)
++ this->start_signal = spa_atob(str);
++ }
+
+ if (loop == NULL) {
+ loop = pw_loop_new(props);
+@@ -282,7 +288,8 @@ static void *do_loop(void *user_data)
+ pw_log_debug("%p: enter thread", this);
+ pw_loop_enter(this->loop);
+
+- pw_thread_loop_signal(this, false);
++ if (this->start_signal)
++ pw_thread_loop_signal(this, false);
+
+ while (this->running) {
+ if ((res = pw_loop_iterate(this->loop, -1)) < 0) {
+--
+GitLab
diff --git a/media-video/pipewire/files/0.3.75/0003-missing-include-version.h.patch b/media-video/pipewire/files/0.3.75/0003-missing-include-version.h.patch
new file mode 100644
index 000000000000..b1c688bba343
--- /dev/null
+++ b/media-video/pipewire/files/0.3.75/0003-missing-include-version.h.patch
@@ -0,0 +1,21 @@
+https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/193384b26aba3917d086ac3f009aa2cab9d197d2
+
+From 193384b26aba3917d086ac3f009aa2cab9d197d2 Mon Sep 17 00:00:00 2001
+From: "Tom A. Wagner" <tom.a.wagner@protonmail.com>
+Date: Mon, 24 Jul 2023 12:48:33 +0200
+Subject: [PATCH] pipewire: add missing stdbool.h include to version.h.in
+
+The header file only works when included in a file where stdbool.h was already included otherwise.
+--- a/src/pipewire/version.h.in
++++ b/src/pipewire/version.h.in
+@@ -11,6 +11,8 @@
+ extern "C" {
+ #endif
+
++#include <stdbool.h>
++
+ /** Return the version of the header files. Keep in mind that this is
+ a macro and not a function, so it is impossible to get the pointer of
+ it. */
+--
+GitLab
diff --git a/media-video/pipewire/files/0.3.77/0001-gst-prevent-crash-stopping-device-provider.patch b/media-video/pipewire/files/0.3.77/0001-gst-prevent-crash-stopping-device-provider.patch
new file mode 100644
index 000000000000..9b6373da1390
--- /dev/null
+++ b/media-video/pipewire/files/0.3.77/0001-gst-prevent-crash-stopping-device-provider.patch
@@ -0,0 +1,34 @@
+https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/140374d2071e6204fded4ca65645d4e9a3dd053e
+https://bugs.webkit.org/show_bug.cgi?id=259735
+
+From 140374d2071e6204fded4ca65645d4e9a3dd053e Mon Sep 17 00:00:00 2001
+From: Philippe Normand <philn@igalia.com>
+Date: Fri, 4 Aug 2023 10:01:07 +0100
+Subject: [PATCH] gst: Prevent a crash when stopping device provider
+
+The provider might fail to connect to the PipeWire core when starting up, so
+when stopping we need to check the core is valid before attempting to acquire a
+mutex on its loop.
+--- a/src/gst/gstpipewiredeviceprovider.c
++++ b/src/gst/gstpipewiredeviceprovider.c
+@@ -665,11 +665,16 @@ gst_pipewire_device_provider_stop (GstDeviceProvider * provider)
+ {
+ GstPipeWireDeviceProvider *self = GST_PIPEWIRE_DEVICE_PROVIDER (provider);
+
+- pw_thread_loop_lock (self->core->loop);
++ /* core might be NULL if we failed to connect in _start. */
++ if (self->core != NULL) {
++ pw_thread_loop_lock (self->core->loop);
++ }
+ GST_DEBUG_OBJECT (self, "stopping provider");
+
+ g_clear_pointer ((struct pw_proxy**)&self->registry, pw_proxy_destroy);
+- pw_thread_loop_unlock (self->core->loop);
++ if (self->core != NULL) {
++ pw_thread_loop_unlock (self->core->loop);
++ }
+ g_clear_pointer (&self->core, gst_pipewire_core_release);
+ }
+
+--
+GitLab
diff --git a/media-video/pipewire/files/0.3.77/0002-pulse-prevent-duplicates.patch b/media-video/pipewire/files/0.3.77/0002-pulse-prevent-duplicates.patch
new file mode 100644
index 000000000000..5a0fcde67fed
--- /dev/null
+++ b/media-video/pipewire/files/0.3.77/0002-pulse-prevent-duplicates.patch
@@ -0,0 +1,28 @@
+https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/820ca90705ae78124958f1b96de3bdc7889c2d1e
+https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3414
+
+From 820ca90705ae78124958f1b96de3bdc7889c2d1e Mon Sep 17 00:00:00 2001
+From: Wim Taymans <wtaymans@redhat.com>
+Date: Tue, 8 Aug 2023 13:01:30 +0200
+Subject: [PATCH] pulse-server: set all change_mask flags when removing
+
+So that the logic to emit events will select sink and source objects.
+
+Fixes #3414
+--- a/src/modules/module-protocol-pulse/manager.c
++++ b/src/modules/module-protocol-pulse/manager.c
+@@ -641,9 +641,10 @@ static void registry_event_global_remove(void *data, uint32_t id)
+
+ o->this.removing = true;
+
+- if (!o->this.creating)
++ if (!o->this.creating) {
++ o->this.change_mask = ~0;
+ manager_emit_removed(m, &o->this);
+-
++ }
+ object_destroy(o);
+ }
+
+--
+GitLab
diff --git a/media-video/pipewire/files/0.3.79/0001-meson-better-check-dlopen-dir.patch b/media-video/pipewire/files/0.3.79/0001-meson-better-check-dlopen-dir.patch
new file mode 100644
index 000000000000..1bcddd4277cb
--- /dev/null
+++ b/media-video/pipewire/files/0.3.79/0001-meson-better-check-dlopen-dir.patch
@@ -0,0 +1,33 @@
+https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/9f7d960c66a2d5732958ee29934c7aef6decc0cb
+
+From 9f7d960c66a2d5732958ee29934c7aef6decc0cb Mon Sep 17 00:00:00 2001
+From: q66 <q66@chimera-linux.org>
+Date: Thu, 31 Aug 2023 03:42:40 +0200
+Subject: [PATCH] meson: better check for module dlopen dir
+
+The ${LIB} token is a glibc extension, so it is incorrect to
+use it on all Linux. Doing so will break e.g. with musl libc.
+--- a/meson.build
++++ b/meson.build
+@@ -49,7 +49,9 @@ pipewire_configdir = pipewire_sysconfdir / 'pipewire'
+ pipewire_confdatadir = pipewire_datadir / 'pipewire'
+ modules_install_dir = pipewire_libdir / pipewire_name
+
+-if host_machine.system() == 'linux'
++cc = meson.get_compiler('c')
++
++if cc.has_header('features.h') and cc.get_define('__GLIBC__', prefix: '#include <features.h>') != ''
+ # glibc ld.so interprets ${LIB} in a library loading path with an
+ # appropriate value for the current architecture, typically something
+ # like lib, lib64 or lib/x86_64-linux-gnu.
+@@ -72,8 +74,6 @@ pipewire_headers_dir = pipewire_name / 'pipewire'
+
+ pkgconfig = import('pkgconfig')
+
+-cc = meson.get_compiler('c')
+-
+ common_flags = [
+ '-fvisibility=hidden',
+ '-fno-strict-aliasing',
+--
+GitLab
diff --git a/media-video/pipewire/files/0.3.79/0002-alsa-non-portable-isinf-use.patch b/media-video/pipewire/files/0.3.79/0002-alsa-non-portable-isinf-use.patch
new file mode 100644
index 000000000000..767c399bd515
--- /dev/null
+++ b/media-video/pipewire/files/0.3.79/0002-alsa-non-portable-isinf-use.patch
@@ -0,0 +1,30 @@
+https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/aa11dbe10c0f2319a5c4c8dcfff1d5dccc03589e
+
+From aa11dbe10c0f2319a5c4c8dcfff1d5dccc03589e Mon Sep 17 00:00:00 2001
+From: q66 <q66@chimera-linux.org>
+Date: Thu, 31 Aug 2023 03:17:54 +0200
+Subject: [PATCH] alsa: get rid of non-portable isinf use
+
+The isinf function returns -1 for negative infinity on glibc, but
+the standard guarantees no such behavior (e.g. in C++ it always
+returns a bool, on musl libc it's a macro that expands to a bool
+expression), saying just that it returns a non-zero value.
+
+This was added in pulseaudio around 15 years ago, and was never
+fixed; pipewire then got the code from it. However, we can portably
+check against -INFINITY instead (from math.h, already included).
+
+Ref https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/commit/045c1d6
+--- a/spa/plugins/alsa/acp/volume.h
++++ b/spa/plugins/alsa/acp/volume.h
+@@ -83,7 +83,7 @@ static inline pa_volume_t pa_sw_volume_from_linear(double v)
+
+ static inline pa_volume_t pa_sw_volume_from_dB(double dB)
+ {
+- if (isinf(dB) < 0 || dB <= PA_DECIBEL_MININFTY)
++ if (dB == -INFINITY || dB <= PA_DECIBEL_MININFTY)
+ return PA_VOLUME_MUTED;
+ return pa_sw_volume_from_linear(pa_volume_dB_to_linear(dB));
+ }
+--
+GitLab
diff --git a/media-video/pipewire/files/0.3.80/0001-aes-support-both-webrtc-versions.patch b/media-video/pipewire/files/0.3.80/0001-aes-support-both-webrtc-versions.patch
new file mode 100644
index 000000000000..f2afdde4f4be
--- /dev/null
+++ b/media-video/pipewire/files/0.3.80/0001-aes-support-both-webrtc-versions.patch
@@ -0,0 +1,233 @@
+https://bugs.gentoo.org/913693
+https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/1f1c308c9766312e684f0b53fc2d1422c7414d31
+
+From 1f1c308c9766312e684f0b53fc2d1422c7414d31 Mon Sep 17 00:00:00 2001
+From: Wim Taymans <wtaymans@redhat.com>
+Date: Thu, 14 Sep 2023 15:35:40 +0200
+Subject: [PATCH] aec: support both webrtc versions
+
+Version 1 does not seem to be packaged in many distros and so they would
+need to revert the patch or disable AEC. Enabling both allows for things
+to move forwards gracefully.
+--- a/meson.build
++++ b/meson.build
+@@ -377,9 +377,17 @@ cdata.set('HAVE_GSTREAMER_DEVICE_PROVIDER', get_option('gstreamer-device-provide
+
+ webrtc_dep = dependency('webrtc-audio-processing-1',
+ version : ['>= 1.2' ],
+- required : get_option('echo-cancel-webrtc'))
+-summary({'WebRTC Echo Canceling': webrtc_dep.found()}, bool_yn: true, section: 'Misc dependencies')
+-cdata.set('HAVE_WEBRTC', webrtc_dep.found())
++ required : false)
++cdata.set('HAVE_WEBRTC1', webrtc_dep.found())
++if webrtc_dep.found()
++ summary({'WebRTC Echo Canceling >= 1.2': webrtc_dep.found()}, bool_yn: true, section: 'Misc dependencies')
++else
++ webrtc_dep = dependency('webrtc-audio-processing',
++ version : ['>= 0.2', '< 1.0'],
++ required : get_option('echo-cancel-webrtc'))
++ cdata.set('HAVE_WEBRTC', webrtc_dep.found())
++ summary({'WebRTC Echo Canceling < 1.0': webrtc_dep.found()}, bool_yn: true, section: 'Misc dependencies')
++endif
+
+ # On FreeBSD and MidnightBSD, epoll-shim library is required for eventfd() and timerfd()
+ epoll_shim_dep = (host_machine.system() == 'freebsd' or host_machine.system() == 'midnightbsd'
+--- a/spa/plugins/aec/aec-webrtc.cpp
++++ b/spa/plugins/aec/aec-webrtc.cpp
+@@ -3,6 +3,8 @@
+ /* SPDX-FileCopyrightText: Copyright © 2021 Arun Raghavan <arun@asymptotic.io> */
+ /* SPDX-License-Identifier: MIT */
+
++#include "config.h"
++
+ #include <memory>
+ #include <utility>
+
+@@ -13,7 +15,13 @@
+ #include <spa/utils/json.h>
+ #include <spa/support/plugin.h>
+
++#ifdef HAVE_WEBRTC
++#include <webrtc/modules/audio_processing/include/audio_processing.h>
++#include <webrtc/modules/interface/module_common_types.h>
++#include <webrtc/system_wrappers/include/trace.h>
++#else
+ #include <modules/audio_processing/include/audio_processing.h>
++#endif
+
+ struct impl_data {
+ struct spa_handle handle;
+@@ -39,6 +47,54 @@ static bool webrtc_get_spa_bool(const struct spa_dict *args, const char *key, bo
+ return default_value;
+ }
+
++#ifdef HAVE_WEBRTC
++/* [ f0 f1 f2 ] */
++static int parse_point(struct spa_json *it, float (&f)[3])
++{
++ struct spa_json arr;
++ int i, res;
++
++ if (spa_json_enter_array(it, &arr) <= 0)
++ return -EINVAL;
++
++ for (i = 0; i < 3; i++) {
++ if ((res = spa_json_get_float(&arr, &f[i])) <= 0)
++ return -EINVAL;
++ }
++ return 0;
++}
++
++/* [ point1 point2 ... ] */
++static int parse_mic_geometry(struct impl_data *impl, const char *mic_geometry,
++ std::vector<webrtc::Point>& geometry)
++{
++ int res;
++ size_t i;
++ struct spa_json it[2];
++
++ spa_json_init(&it[0], mic_geometry, strlen(mic_geometry));
++ if (spa_json_enter_array(&it[0], &it[1]) <= 0) {
++ spa_log_error(impl->log, "Error: webrtc.mic-geometry expects an array");
++ return -EINVAL;
++ }
++
++ for (i = 0; i < geometry.size(); i++) {
++ float f[3];
++
++ if ((res = parse_point(&it[1], f)) < 0) {
++ spa_log_error(impl->log, "Error: can't parse webrtc.mic-geometry points: %d", res);
++ return res;
++ }
++
++ spa_log_info(impl->log, "mic %zd position: (%g %g %g)", i, f[0], f[1], f[2]);
++ geometry[i].c[0] = f[0];
++ geometry[i].c[1] = f[1];
++ geometry[i].c[2] = f[2];
++ }
++ return 0;
++}
++#endif
++
+ static int webrtc_init2(void *object, const struct spa_dict *args,
+ struct spa_audio_info_raw *rec_info, struct spa_audio_info_raw *out_info,
+ struct spa_audio_info_raw *play_info)
+@@ -48,9 +104,18 @@ static int webrtc_init2(void *object, const struct spa_dict *args,
+
+ bool high_pass_filter = webrtc_get_spa_bool(args, "webrtc.high_pass_filter", true);
+ bool noise_suppression = webrtc_get_spa_bool(args, "webrtc.noise_suppression", true);
+- bool transient_suppression = webrtc_get_spa_bool(args, "webrtc.transient_suppression", true);
+ bool voice_detection = webrtc_get_spa_bool(args, "webrtc.voice_detection", true);
+-
++#ifdef HAVE_WEBRTC
++ bool extended_filter = webrtc_get_spa_bool(args, "webrtc.extended_filter", true);
++ bool delay_agnostic = webrtc_get_spa_bool(args, "webrtc.delay_agnostic", true);
++ // Disable experimental flags by default
++ bool experimental_agc = webrtc_get_spa_bool(args, "webrtc.experimental_agc", false);
++ bool experimental_ns = webrtc_get_spa_bool(args, "webrtc.experimental_ns", false);
++
++ bool beamforming = webrtc_get_spa_bool(args, "webrtc.beamforming", false);
++#else
++ bool transient_suppression = webrtc_get_spa_bool(args, "webrtc.transient_suppression", true);
++#endif
+ // Note: AGC seems to mess up with Agnostic Delay Detection, especially with speech,
+ // result in very poor performance, disable by default
+ bool gain_control = webrtc_get_spa_bool(args, "webrtc.gain_control", false);
+@@ -59,6 +124,51 @@ static int webrtc_init2(void *object, const struct spa_dict *args,
+ // This filter will modify playback buffer (when calling ProcessReverseStream), but now
+ // playback buffer modifications are discarded.
+
++#ifdef HAVE_WEBRTC
++ webrtc::Config config;
++ config.Set<webrtc::ExtendedFilter>(new webrtc::ExtendedFilter(extended_filter));
++ config.Set<webrtc::DelayAgnostic>(new webrtc::DelayAgnostic(delay_agnostic));
++ config.Set<webrtc::ExperimentalAgc>(new webrtc::ExperimentalAgc(experimental_agc));
++ config.Set<webrtc::ExperimentalNs>(new webrtc::ExperimentalNs(experimental_ns));
++
++ if (beamforming) {
++ std::vector<webrtc::Point> geometry(rec_info->channels);
++ const char *mic_geometry, *target_direction;
++
++ /* The beamformer gives a single mono channel */
++ out_info->channels = 1;
++ out_info->position[0] = SPA_AUDIO_CHANNEL_MONO;
++
++ if ((mic_geometry = spa_dict_lookup(args, "webrtc.mic-geometry")) == NULL) {
++ spa_log_error(impl->log, "Error: webrtc.beamforming requires webrtc.mic-geometry");
++ return -EINVAL;
++ }
++
++ if ((res = parse_mic_geometry(impl, mic_geometry, geometry)) < 0)
++ return res;
++
++ if ((target_direction = spa_dict_lookup(args, "webrtc.target-direction")) != NULL) {
++ webrtc::SphericalPointf direction(0.0f, 0.0f, 0.0f);
++ struct spa_json it;
++ float f[3];
++
++ spa_json_init(&it, target_direction, strlen(target_direction));
++ if (parse_point(&it, f) < 0) {
++ spa_log_error(impl->log, "Error: can't parse target-direction %s",
++ target_direction);
++ return -EINVAL;
++ }
++
++ direction.s[0] = f[0];
++ direction.s[1] = f[1];
++ direction.s[2] = f[2];
++
++ config.Set<webrtc::Beamforming>(new webrtc::Beamforming(true, geometry, direction));
++ } else {
++ config.Set<webrtc::Beamforming>(new webrtc::Beamforming(true, geometry));
++ }
++ }
++#else
+ webrtc::AudioProcessing::Config config;
+ config.echo_canceller.enabled = true;
+ // FIXME: Example code enables both gain controllers, but that seems sus
+@@ -73,6 +183,7 @@ static int webrtc_init2(void *object, const struct spa_dict *args,
+ // FIXME: expose pre/postamp gain
+ config.transient_suppression.enabled = transient_suppression;
+ config.voice_detection.enabled = voice_detection;
++#endif
+
+ webrtc::ProcessingConfig pconfig = {{
+ webrtc::StreamConfig(rec_info->rate, rec_info->channels, false), /* input stream */
+@@ -81,15 +192,35 @@ static int webrtc_init2(void *object, const struct spa_dict *args,
+ webrtc::StreamConfig(play_info->rate, play_info->channels, false), /* reverse output stream */
+ }};
+
++#ifdef HAVE_WEBRTC
++ auto apm = std::unique_ptr<webrtc::AudioProcessing>(webrtc::AudioProcessing::Create(config));
++#else
+ auto apm = std::unique_ptr<webrtc::AudioProcessing>(webrtc::AudioProcessingBuilder().Create());
+
+ apm->ApplyConfig(config);
++#endif
+
+ if ((res = apm->Initialize(pconfig)) != webrtc::AudioProcessing::kNoError) {
+ spa_log_error(impl->log, "Error initialising webrtc audio processing module: %d", res);
+ return -EINVAL;
+ }
+
++#ifdef HAVE_WEBRTC
++ apm->high_pass_filter()->Enable(high_pass_filter);
++ // Always disable drift compensation since PipeWire will already do
++ // drift compensation on all sinks and sources linked to this echo-canceler
++ apm->echo_cancellation()->enable_drift_compensation(false);
++ apm->echo_cancellation()->Enable(true);
++ // TODO: wire up supression levels to args
++ apm->echo_cancellation()->set_suppression_level(webrtc::EchoCancellation::kHighSuppression);
++ apm->noise_suppression()->set_level(webrtc::NoiseSuppression::kHigh);
++ apm->noise_suppression()->Enable(noise_suppression);
++ apm->voice_detection()->Enable(voice_detection);
++ // TODO: wire up AGC parameters to args
++ apm->gain_control()->set_analog_level_limits(0, 255);
++ apm->gain_control()->set_mode(webrtc::GainControl::kAdaptiveDigital);
++ apm->gain_control()->Enable(gain_control);
++#endif
+ impl->apm = std::move(apm);
+ impl->rec_info = *rec_info;
+ impl->out_info = *out_info;
+--
+GitLab
diff --git a/media-video/pipewire/files/gentoo-pipewire-launcher.1 b/media-video/pipewire/files/gentoo-pipewire-launcher.1
new file mode 100644
index 000000000000..36e697c632cd
--- /dev/null
+++ b/media-video/pipewire/files/gentoo-pipewire-launcher.1
@@ -0,0 +1,52 @@
+.TH "gentoo-pipewire-launcher" "1" "2023-06-15"
+.SH "NAME"
+gentoo\-pipewire\-launcher \- start instances of PipeWire, PipeWire-Pulse and WirePlumber
+.SH "SYNOPSIS"
+.BR gentoo\-pipewire\-launcher
+[restart]
+.SH "DESCRIPTION"
+\fIgentoo\-pipewire\-launcher\fR starts instances of PipeWire and
+WirePlumber.
+Two instances of PipeWire are started: one as the core sound-server, and
+one for PulseAudio emulation (cf.\&
+.BR pipewire-pulse (1)\fR).
+.PP
+It must be run in an environment with an active D-Bus session bus,
+i.e. one in which the
+.B DBUS_SESSION_BUS_ADDRESS
+environment variable is set appropriately.
+.PP
+\fIgentoo\-pipewire\-launcher\fR
+tries to avoid restarting, in order to avoid audio dropouts.
+However, a restart can be forced by calling
+\fIgentoo\-pipewire\-launcher\fR
+with an argument of \(oqrestart\(cq.
+.PP
+.B ${XDG_CONFIG_HOME}/gentoo\-pipewire\-launcher.conf
+(or, if
+.B ${XDG_CONFIG_HOME}
+is not set,
+.BR ${HOME}/.config/gentoo\-pipewire\-launcher.conf )
+can be used to specify absolute paths of files to which log output
+should be sent, by specifying values for one or more of the
+.B GENTOO_PIPEWIRE_LOG\fR,
+.B GENTOO_PIPEWIRE_PULSE_LOG\fR,
+and
+.B GENTOO_WIREPLUMBER_LOG
+variables, one per line.
+.SH "REPORTING BUGS"
+Please report bugs via https://bugs.gentoo.org/
+.SH "FILES"
+.TP
+.B ${XDG_CONFIG_HOME}/gentoo\-pipewire\-launcher.conf
+configures locations of files for log output.
+.TP
+.B ${HOME}/.config/gentoo\-pipewire\-launcher.conf
+configures locations of files for log output if
+.B ${XDG_CONFIG_HOME}
+is not set.
+.SH "SEE ALSO"
+.BR pipewire (1),
+.BR pipewire-pulse (1),
+.BR wireplumber (1),
+.BR pipewire.conf (5)
diff --git a/media-video/pipewire/files/gentoo-pipewire-launcher.in b/media-video/pipewire/files/gentoo-pipewire-launcher.in
deleted file mode 100644
index 495c47f6c7e1..000000000000
--- a/media-video/pipewire/files/gentoo-pipewire-launcher.in
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/bin/sh
-
-# PipeWire launcher script for XDG compliant desktops on OpenRC.
-#
-# systemd users are very _STRONGLY_ advised to use the much
-# more reliable and predictable user units instead.
-
-# WARNING: This script assumes being run inside XDG compliant session,
-# which means D-Bus session instance is expected to be correctly set up
-# prior to this script starting. If that is not true, things may break!
-
-# Best to reap any existing daemons and only then try to start a new set.
-pkill -u "${USER}" -x pipewire\|wireplumber 1>/dev/null 2>&1
-
-# The core daemon which by itself does probably nothing.
-@GENTOO_PORTAGE_EPREFIX@/usr/bin/pipewire &
-
-# The so called pipewire-pulse daemon used for PulseAudio compatibility.
-# Commenting this out will stop the PA proxying daemon from starting,
-# however ALSA (with pipewire-alsa), JACK (with jack-sdk) and PW API using
-# clients will still have access to audio and may end up clashing with
-# non-PW apps over HW control (most notably, /usr/bin/pulseaudio daemon).
-@GENTOO_PORTAGE_EPREFIX@/usr/bin/pipewire -c pipewire-pulse.conf &
-
-# Hack for bug #822498
-sleep 1
-
-# Finally a session manager is required for PipeWire to do anything.
-exec @GENTOO_PORTAGE_EPREFIX@/usr/bin/wireplumber
diff --git a/media-video/pipewire/files/gentoo-pipewire-launcher.in-r2 b/media-video/pipewire/files/gentoo-pipewire-launcher.in-r2
new file mode 100644
index 000000000000..a149b0d326c3
--- /dev/null
+++ b/media-video/pipewire/files/gentoo-pipewire-launcher.in-r2
@@ -0,0 +1,77 @@
+#!/bin/sh
+
+# PipeWire launcher script for XDG compliant desktops on OpenRC.
+#
+# systemd users are very _STRONGLY_ advised to use the much
+# more reliable and predictable user units instead.
+
+# WARNING: This script assumes being run inside XDG compliant session,
+# which means D-Bus session instance is expected to be correctly set up
+# prior to this script starting. If that is not true, things may break!
+
+DATE_FORMAT='+%Y-%m-%dT%H:%M:%S%Z'
+
+CONF="${XDG_CONFIG_HOME:-${HOME}/.config}/gentoo-pipewire-launcher.conf"
+if [ -f "${CONF}" ]
+then
+ . "${CONF}"
+else
+ GENTOO_PIPEWIRE_LOG='/dev/null'
+ GENTOO_PIPEWIRE_PULSE_LOG='/dev/null'
+ GENTOO_WIREPLUMBER_LOG='/dev/null'
+fi
+for L in \
+ "${GENTOO_PIPEWIRE_LOG}" \
+ "${GENTOO_PIPEWIRE_PULSE_LOG}" \
+ "${GENTOO_WIREPLUMBER_LOG}"
+do
+ if [ ! -e "${L}" ]
+ then
+ touch "${L}"
+ fi
+done
+
+restart () {
+ echo "Terminating PipeWire processes ..."
+ pkill -u "${USER}" -x pipewire\|wireplumber 1>/dev/null 2>&1
+ pwait -u "${USER}" -x pipewire\|wireplumber
+ echo "PipeWire terminated."
+}
+
+if [ "${#}" -gt 0 ]
+then
+ if [ "${1}" = 'restart' ]
+ then
+ restart
+ else
+ echo "Unrecognised argument." >&2
+ echo "Usage: gentoo-pipewire-launcher [restart]" >&2
+ exit 1
+ fi
+fi
+
+if pgrep -u "${USER}" -x pipewire\|wireplumber 1>/dev/null 2>&1
+then
+ echo "PipeWire already running, exiting." >&2
+ echo "(Use 'gentoo-pipewire-launcher restart' to restart PipeWire and WirePlumber.)" >&2
+ exit 1
+fi
+
+# The core daemon which by itself does probably nothing.
+echo "[$(@GENTOO_PORTAGE_EPREFIX@/bin/date ${DATE_FORMAT})] Starting PipeWire." 1>>"${GENTOO_PIPEWIRE_LOG}"
+@GENTOO_PORTAGE_EPREFIX@/usr/bin/pipewire 1>>"${GENTOO_PIPEWIRE_LOG}" 2>&1 &
+
+# The so called pipewire-pulse daemon used for PulseAudio compatibility.
+# Commenting this out will stop the PA proxying daemon from starting,
+# however ALSA (with pipewire-alsa), JACK (with jack-sdk) and PW API using
+# clients will still have access to audio and may end up clashing with
+# non-PW apps over HW control (most notably, /usr/bin/pulseaudio daemon).
+echo "[$(@GENTOO_PORTAGE_EPREFIX@/bin/date ${DATE_FORMAT})] Starting PipeWire-Pulse." 1>>"${GENTOO_PIPEWIRE_PULSE_LOG}"
+@GENTOO_PORTAGE_EPREFIX@/usr/bin/pipewire -c pipewire-pulse.conf 1>>"${GENTOO_PIPEWIRE_PULSE_LOG}" 2>&1 &
+
+# Hack for bug #822498
+sleep 1
+
+# Finally a session manager is required for PipeWire to do anything.
+echo "[$(@GENTOO_PORTAGE_EPREFIX@/bin/date ${DATE_FORMAT})] Starting WirePlumber." 1>>"${GENTOO_WIREPLUMBER_LOG}"
+exec @GENTOO_PORTAGE_EPREFIX@/usr/bin/wireplumber 1>>"${GENTOO_WIREPLUMBER_LOG}" 2>&1
diff --git a/media-video/pipewire/files/gentoo-pipewire-launcher.in-r3 b/media-video/pipewire/files/gentoo-pipewire-launcher.in-r3
new file mode 100644
index 000000000000..abe9174c4253
--- /dev/null
+++ b/media-video/pipewire/files/gentoo-pipewire-launcher.in-r3
@@ -0,0 +1,84 @@
+#!/bin/sh
+
+# PipeWire launcher script for XDG compliant desktops on OpenRC.
+#
+# systemd users are very _STRONGLY_ advised to use the much
+# more reliable and predictable user units instead.
+
+# WARNING: This script assumes being run inside XDG compliant session,
+# which means D-Bus session instance is expected to be correctly set up
+# prior to this script starting. If that is not true, things may break!
+
+DATE_FORMAT='+%Y-%m-%dT%H:%M:%S%Z'
+
+CONF="${XDG_CONFIG_HOME:-${HOME}/.config}/gentoo-pipewire-launcher.conf"
+if [ -f "${CONF}" ]
+then
+ . "${CONF}"
+else
+ GENTOO_PIPEWIRE_LOG='/dev/null'
+ GENTOO_PIPEWIRE_PULSE_LOG='/dev/null'
+ GENTOO_WIREPLUMBER_LOG='/dev/null'
+fi
+for L in \
+ "${GENTOO_PIPEWIRE_LOG}" \
+ "${GENTOO_PIPEWIRE_PULSE_LOG}" \
+ "${GENTOO_WIREPLUMBER_LOG}"
+do
+ if [ ! -e "${L}" ]
+ then
+ touch "${L}"
+ fi
+done
+
+restart () {
+ echo "Terminating PipeWire processes ..."
+ pkill -u "${USER}" -x pipewire\|wireplumber 1>/dev/null 2>&1
+
+ # pidwait was renamed to pwait w/ procps-4 (bug #914030)
+ if command -v pidwait > /dev/null ; then
+ pidwait -u "${USER}" -x pipewire\|wireplumber
+ elif command -v pwait > /dev/null ; then
+ pwait -u "${USER}" -x pipewire\|wireplumber
+ fi
+
+ echo "PipeWire terminated."
+}
+
+if [ "${#}" -gt 0 ]
+then
+ if [ "${1}" = 'restart' ]
+ then
+ restart
+ else
+ echo "Unrecognised argument." >&2
+ echo "Usage: gentoo-pipewire-launcher [restart]" >&2
+ exit 1
+ fi
+fi
+
+if pgrep -u "${USER}" -x pipewire\|wireplumber 1>/dev/null 2>&1
+then
+ echo "PipeWire already running, exiting." >&2
+ echo "(Use 'gentoo-pipewire-launcher restart' to restart PipeWire and WirePlumber.)" >&2
+ exit 1
+fi
+
+# The core daemon which by itself does probably nothing.
+echo "[$(@GENTOO_PORTAGE_EPREFIX@/bin/date ${DATE_FORMAT})] Starting PipeWire." 1>>"${GENTOO_PIPEWIRE_LOG}"
+@GENTOO_PORTAGE_EPREFIX@/usr/bin/pipewire 1>>"${GENTOO_PIPEWIRE_LOG}" 2>&1 &
+
+# The so called pipewire-pulse daemon used for PulseAudio compatibility.
+# Commenting this out will stop the PA proxying daemon from starting,
+# however ALSA (with pipewire-alsa), JACK (with jack-sdk) and PW API using
+# clients will still have access to audio and may end up clashing with
+# non-PW apps over HW control (most notably, /usr/bin/pulseaudio daemon).
+echo "[$(@GENTOO_PORTAGE_EPREFIX@/bin/date ${DATE_FORMAT})] Starting PipeWire-Pulse." 1>>"${GENTOO_PIPEWIRE_PULSE_LOG}"
+@GENTOO_PORTAGE_EPREFIX@/usr/bin/pipewire -c pipewire-pulse.conf 1>>"${GENTOO_PIPEWIRE_PULSE_LOG}" 2>&1 &
+
+# Hack for bug #822498
+sleep 1
+
+# Finally a session manager is required for PipeWire to do anything.
+echo "[$(@GENTOO_PORTAGE_EPREFIX@/bin/date ${DATE_FORMAT})] Starting WirePlumber." 1>>"${GENTOO_WIREPLUMBER_LOG}"
+exec @GENTOO_PORTAGE_EPREFIX@/usr/bin/wireplumber 1>>"${GENTOO_WIREPLUMBER_LOG}" 2>&1
diff --git a/media-video/pipewire/files/pipewire.desktop-r1 b/media-video/pipewire/files/pipewire.desktop-r1
deleted file mode 100644
index d950312930f6..000000000000
--- a/media-video/pipewire/files/pipewire.desktop-r1
+++ /dev/null
@@ -1,12 +0,0 @@
-[Desktop Entry]
-Version=1.0
-Name[de]=PipeWire Mediensystem
-Name=PipeWire Media System
-Comment[de]=Das PipeWire Mediensystem starten
-Comment=Start the PipeWire Media System
-Exec=/usr/bin/gentoo-pipewire-launcher
-Terminal=false
-Type=Application
-X-GNOME-HiddenUnderSystemd=true
-X-KDE-HiddenUnderSystemd=true
-X-systemd-skip=true
diff --git a/media-video/pipewire/files/pipewire.desktop b/media-video/pipewire/files/pipewire.desktop-r2
index d3786e74f82b..1e8564dbe370 100644
--- a/media-video/pipewire/files/pipewire.desktop
+++ b/media-video/pipewire/files/pipewire.desktop-r2
@@ -4,7 +4,7 @@ Name[de]=PipeWire Mediensystem
Name=PipeWire Media System
Comment[de]=Das PipeWire Mediensystem starten
Comment=Start the PipeWire Media System
-Exec=/usr/libexec/pipewire-launcher
+Exec=/usr/bin/gentoo-pipewire-launcher restart
Terminal=false
Type=Application
X-GNOME-HiddenUnderSystemd=true
diff --git a/media-video/pipewire/metadata.xml b/media-video/pipewire/metadata.xml
index 4401131936e1..1e5541a20ad2 100644
--- a/media-video/pipewire/metadata.xml
+++ b/media-video/pipewire/metadata.xml
@@ -22,9 +22,11 @@
<flag name="gsettings">Use gsettings (<pkg>dev-libs/glib</pkg>) to read/save used modules (useful for e.g. <pkg>media-sound/paprefs</pkg></flag>
<flag name="jack-client">Install a plugin for running PipeWire as a JACK client</flag>
<flag name="jack-sdk">Use PipeWire as JACK replacement</flag>
+ <flag name="liblc3">Allow loading LC3 plugins via <pkg>media-sound/liblc3</pkg></flag>
<flag name="lv2">Allow loading LV2 plugins via <pkg>media-libs/lv2</pkg></flag>
<flag name="modemmanager">Combined with USE=bluetooth, allows PipeWire to perform telephony on mobile devices.</flag>
<flag name="pipewire-alsa">Replace PulseAudio's ALSA plugin with PipeWire's plugin</flag>
+ <flag name="roc">Enable roc support for real-time audio streaming over the network, using <pkg>media-libs/roc-toolkit</pkg>. See https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Network#roc</flag>
<flag name="ssl">Enable raop-sink support (needs <pkg>dev-libs/openssl</pkg>)</flag>
<flag name="system-service">Install systemd unit files for running as a system service. Not recommended.</flag>
<flag name="X">Enable audible bell for X11</flag>
diff --git a/media-video/pipewire/pipewire-0.3.67.ebuild b/media-video/pipewire/pipewire-0.3.75-r3.ebuild
index 9f2c486145b1..8df954be4490 100644
--- a/media-video/pipewire/pipewire-0.3.67.ebuild
+++ b/media-video/pipewire/pipewire-0.3.75-r3.ebuild
@@ -13,7 +13,7 @@ EAPI=8
# continue to move quickly. It's not uncommon for fixes to be made shortly
# after releases.
-PYTHON_COMPAT=( python3_{9..11} )
+PYTHON_COMPAT=( python3_{10..12} )
inherit flag-o-matic meson-multilib optfeature prefix python-any-r1 systemd tmpfiles udev
@@ -29,7 +29,7 @@ else
SRC_URI="https://gitlab.freedesktop.org/${PN}/${PN}/-/archive/${PV}/${P}.tar.bz2"
fi
- KEYWORDS="~amd64 arm arm64 ~loong ~ppc ppc64 ~riscv ~sparc x86"
+ KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~sparc x86"
fi
DESCRIPTION="Multimedia processing graphs"
@@ -38,8 +38,8 @@ HOMEPAGE="https://pipewire.org/"
LICENSE="MIT LGPL-2.1+ GPL-2"
# ABI was broken in 0.3.42 for https://gitlab.freedesktop.org/pipewire/wireplumber/-/issues/49
SLOT="0/0.4"
-IUSE="bluetooth dbus doc echo-cancel extra ffmpeg flatpak gstreamer gsettings jack-client jack-sdk lv2
-modemmanager pipewire-alsa readline sound-server ssl system-service systemd test v4l X zeroconf"
+IUSE="bluetooth dbus doc echo-cancel extra ffmpeg flatpak gstreamer gsettings ieee1394 jack-client jack-sdk liblc3 lv2"
+IUSE+=" modemmanager pipewire-alsa readline sound-server ssl system-service systemd test v4l X zeroconf"
# Once replacing system JACK libraries is possible, it's likely that
# jack-client IUSE will need blocking to avoid users accidentally
@@ -97,41 +97,30 @@ RDEPEND="
)
dbus? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
echo-cancel? ( media-libs/webrtc-audio-processing:0 )
- extra? (
- >=media-libs/libsndfile-1.0.20
- )
+ extra? ( >=media-libs/libsndfile-1.0.20 )
ffmpeg? ( media-video/ffmpeg:= )
- flatpak? (
- dev-libs/glib
- )
+ flatpak? ( dev-libs/glib )
gstreamer? (
>=dev-libs/glib-2.32.0:2
>=media-libs/gstreamer-1.10.0:1.0
media-libs/gst-plugins-base:1.0
)
- gsettings? (
- >=dev-libs/glib-2.26.0:2
- )
+ gsettings? ( >=dev-libs/glib-2.26.0:2 )
+ ieee1394? ( media-libs/libffado[${MULTILIB_USEDEP}] )
jack-client? ( >=media-sound/jack2-1.9.10:2[dbus] )
jack-sdk? (
!media-sound/jack-audio-connection-kit
!media-sound/jack2
)
+ liblc3? ( media-sound/liblc3 )
lv2? ( media-libs/lilv )
modemmanager? ( >=net-misc/modemmanager-1.10.0 )
- pipewire-alsa? (
- >=media-libs/alsa-lib-1.1.7[${MULTILIB_USEDEP}]
- )
- sound-server? (
- !media-sound/pulseaudio[daemon(+)]
- !media-sound/pulseaudio-daemon
- )
+ pipewire-alsa? ( >=media-libs/alsa-lib-1.1.7[${MULTILIB_USEDEP}] )
+ sound-server? ( !media-sound/pulseaudio-daemon )
readline? ( sys-libs/readline:= )
ssl? ( dev-libs/openssl:= )
systemd? ( sys-apps/systemd )
- system-service? (
- acct-user/pipewire
- )
+ system-service? ( acct-user/pipewire )
v4l? ( media-libs/libv4l )
X? (
media-libs/libcanberra
@@ -187,6 +176,7 @@ multilib_src_configure() {
$(meson_native_enabled man)
$(meson_feature test tests)
-Dinstalled_tests=disabled # Matches upstream; Gentoo never installs tests
+ $(meson_feature ieee1394 libffado)
$(meson_native_use_feature gstreamer)
$(meson_native_use_feature gstreamer gstreamer-device-provider)
$(meson_native_use_feature gsettings)
@@ -213,13 +203,10 @@ multilib_src_configure() {
$(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 bluetooth opus)
$(meson_native_use_feature bluetooth bluez5-codec-opus)
$(meson_native_use_feature bluetooth libusb) # At least for now only used by bluez5 native (quirk detection of adapters)
$(meson_native_use_feature echo-cancel echo-cancel-webrtc) #807889
- # Not yet packaged.
- # http://www.bluez.org/le-audio-support-in-pipewire/
- -Dbluez5-codec-lc3=disabled
- -Dbluez5-codec-lc3plus=disabled
-Dcontrol=enabled # Matches upstream
-Daudiotestsrc=enabled # Matches upstream
-Dffmpeg=disabled # Disabled by upstream and no major developments to spa/plugins/ffmpeg/ since May 2020
@@ -232,6 +219,8 @@ multilib_src_configure() {
-Dsupport=enabled # Miscellaneous/common plugins, such as null sink
-Devl=disabled # Matches upstream
-Dtest=disabled # fakesink and fakesource plugins
+ -Dbluez5-codec-lc3plus=disabled # unpackaged
+ $(meson_native_use_feature liblc3 bluez5-codec-lc3)
$(meson_native_use_feature lv2)
$(meson_native_use_feature v4l v4l2)
-Dlibcamera=disabled # libcamera is not in Portage tree
@@ -306,10 +295,12 @@ multilib_src_install_all() {
if ! use systemd; then
insinto /etc/xdg/autostart
- newins "${FILESDIR}"/pipewire.desktop-r1 pipewire.desktop
+ newins "${FILESDIR}"/pipewire.desktop-r2 pipewire.desktop
exeinto /usr/bin
- newexe "${FILESDIR}"/gentoo-pipewire-launcher.in gentoo-pipewire-launcher
+ newexe "${FILESDIR}"/gentoo-pipewire-launcher.in-r2 gentoo-pipewire-launcher
+
+ doman "${FILESDIR}"/gentoo-pipewire-launcher.1
# Disable pipewire-pulse if sound-server is disabled.
if ! use sound-server ; then
@@ -344,6 +335,13 @@ pkg_postinst() {
local ver
for ver in ${REPLACING_VERSIONS} ; do
+ if has_version kde-plasma/kwin[screencast] || has_version x11-wm/mutter[screencast] ; then
+ # https://bugs.gentoo.org/908490
+ # https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3243
+ ewarn "Please restart KWin/Mutter after upgrading PipeWire."
+ ewarn "Screencasting may not work until you do."
+ fi
+
if ver_test ${ver} -le 0.3.66-r1 ; then
elog ">=pipewire-0.3.66 uses the 'pipewire' group to manage permissions"
elog "and limits needed to function smoothly:"
@@ -414,6 +412,8 @@ pkg_postinst() {
if [[ ${HAD_SOUND_SERVER} -eq 0 || -z ${REPLACING_VERSIONS} ]] ; then
# TODO: We could drop most of this if we set up systemd presets?
+ # They're worth looking into because right now, the out-of-the-box experience
+ # is automatic on OpenRC, while it needs manual intervention on systemd.
if use sound-server && use systemd ; then
elog
elog "When switching from PulseAudio, you may need to disable PulseAudio:"
diff --git a/media-video/pipewire/pipewire-0.3.66-r1.ebuild b/media-video/pipewire/pipewire-0.3.77-r2.ebuild
index 9af52bf09561..8df954be4490 100644
--- a/media-video/pipewire/pipewire-0.3.66-r1.ebuild
+++ b/media-video/pipewire/pipewire-0.3.77-r2.ebuild
@@ -13,7 +13,7 @@ EAPI=8
# continue to move quickly. It's not uncommon for fixes to be made shortly
# after releases.
-PYTHON_COMPAT=( python3_{9..11} )
+PYTHON_COMPAT=( python3_{10..12} )
inherit flag-o-matic meson-multilib optfeature prefix python-any-r1 systemd tmpfiles udev
@@ -38,8 +38,8 @@ HOMEPAGE="https://pipewire.org/"
LICENSE="MIT LGPL-2.1+ GPL-2"
# ABI was broken in 0.3.42 for https://gitlab.freedesktop.org/pipewire/wireplumber/-/issues/49
SLOT="0/0.4"
-IUSE="bluetooth dbus doc echo-cancel extra ffmpeg flatpak gstreamer gsettings jack-client jack-sdk lv2
-modemmanager pipewire-alsa readline sound-server ssl system-service systemd test v4l X zeroconf"
+IUSE="bluetooth dbus doc echo-cancel extra ffmpeg flatpak gstreamer gsettings ieee1394 jack-client jack-sdk liblc3 lv2"
+IUSE+=" modemmanager pipewire-alsa readline sound-server ssl system-service systemd test v4l X zeroconf"
# Once replacing system JACK libraries is possible, it's likely that
# jack-client IUSE will need blocking to avoid users accidentally
@@ -97,41 +97,30 @@ RDEPEND="
)
dbus? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
echo-cancel? ( media-libs/webrtc-audio-processing:0 )
- extra? (
- >=media-libs/libsndfile-1.0.20
- )
+ extra? ( >=media-libs/libsndfile-1.0.20 )
ffmpeg? ( media-video/ffmpeg:= )
- flatpak? (
- dev-libs/glib
- )
+ flatpak? ( dev-libs/glib )
gstreamer? (
>=dev-libs/glib-2.32.0:2
>=media-libs/gstreamer-1.10.0:1.0
media-libs/gst-plugins-base:1.0
)
- gsettings? (
- >=dev-libs/glib-2.26.0:2
- )
+ gsettings? ( >=dev-libs/glib-2.26.0:2 )
+ ieee1394? ( media-libs/libffado[${MULTILIB_USEDEP}] )
jack-client? ( >=media-sound/jack2-1.9.10:2[dbus] )
jack-sdk? (
!media-sound/jack-audio-connection-kit
!media-sound/jack2
)
+ liblc3? ( media-sound/liblc3 )
lv2? ( media-libs/lilv )
modemmanager? ( >=net-misc/modemmanager-1.10.0 )
- pipewire-alsa? (
- >=media-libs/alsa-lib-1.1.7[${MULTILIB_USEDEP}]
- )
- sound-server? (
- !media-sound/pulseaudio[daemon(+)]
- !media-sound/pulseaudio-daemon
- )
+ pipewire-alsa? ( >=media-libs/alsa-lib-1.1.7[${MULTILIB_USEDEP}] )
+ sound-server? ( !media-sound/pulseaudio-daemon )
readline? ( sys-libs/readline:= )
ssl? ( dev-libs/openssl:= )
systemd? ( sys-apps/systemd )
- system-service? (
- acct-user/pipewire
- )
+ system-service? ( acct-user/pipewire )
v4l? ( media-libs/libv4l )
X? (
media-libs/libcanberra
@@ -187,6 +176,7 @@ multilib_src_configure() {
$(meson_native_enabled man)
$(meson_feature test tests)
-Dinstalled_tests=disabled # Matches upstream; Gentoo never installs tests
+ $(meson_feature ieee1394 libffado)
$(meson_native_use_feature gstreamer)
$(meson_native_use_feature gstreamer gstreamer-device-provider)
$(meson_native_use_feature gsettings)
@@ -200,7 +190,7 @@ multilib_src_configure() {
$(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)
- -Dcompress-offload=disabled # Matches upstream, tinycompress unpackaged too
+ -Dcompress-offload=disabled # TODO: tinycompress unpackaged
-Daudiomixer=enabled # Matches upstream
-Daudioconvert=enabled # Matches upstream
$(meson_native_use_feature bluetooth bluez5)
@@ -213,13 +203,10 @@ multilib_src_configure() {
$(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 bluetooth opus)
$(meson_native_use_feature bluetooth bluez5-codec-opus)
$(meson_native_use_feature bluetooth libusb) # At least for now only used by bluez5 native (quirk detection of adapters)
$(meson_native_use_feature echo-cancel echo-cancel-webrtc) #807889
- # Not yet packaged.
- # http://www.bluez.org/le-audio-support-in-pipewire/
- -Dbluez5-codec-lc3=disabled
- -Dbluez5-codec-lc3plus=disabled
-Dcontrol=enabled # Matches upstream
-Daudiotestsrc=enabled # Matches upstream
-Dffmpeg=disabled # Disabled by upstream and no major developments to spa/plugins/ffmpeg/ since May 2020
@@ -232,6 +219,8 @@ multilib_src_configure() {
-Dsupport=enabled # Miscellaneous/common plugins, such as null sink
-Devl=disabled # Matches upstream
-Dtest=disabled # fakesink and fakesource plugins
+ -Dbluez5-codec-lc3plus=disabled # unpackaged
+ $(meson_native_use_feature liblc3 bluez5-codec-lc3)
$(meson_native_use_feature lv2)
$(meson_native_use_feature v4l v4l2)
-Dlibcamera=disabled # libcamera is not in Portage tree
@@ -306,10 +295,12 @@ multilib_src_install_all() {
if ! use systemd; then
insinto /etc/xdg/autostart
- newins "${FILESDIR}"/pipewire.desktop-r1 pipewire.desktop
+ newins "${FILESDIR}"/pipewire.desktop-r2 pipewire.desktop
exeinto /usr/bin
- newexe "${FILESDIR}"/gentoo-pipewire-launcher.in gentoo-pipewire-launcher
+ newexe "${FILESDIR}"/gentoo-pipewire-launcher.in-r2 gentoo-pipewire-launcher
+
+ doman "${FILESDIR}"/gentoo-pipewire-launcher.1
# Disable pipewire-pulse if sound-server is disabled.
if ! use sound-server ; then
@@ -344,15 +335,25 @@ pkg_postinst() {
local ver
for ver in ${REPLACING_VERSIONS} ; do
+ if has_version kde-plasma/kwin[screencast] || has_version x11-wm/mutter[screencast] ; then
+ # https://bugs.gentoo.org/908490
+ # https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3243
+ ewarn "Please restart KWin/Mutter after upgrading PipeWire."
+ ewarn "Screencasting may not work until you do."
+ fi
+
if ver_test ${ver} -le 0.3.66-r1 ; then
elog ">=pipewire-0.3.66 uses the 'pipewire' group to manage permissions"
- elog "and limits needed to function smoothly."
- elog "1. Please make sure your user is in the 'pipewire' group for correct"
- elog "PAM limits behavior! You can add your account with:"
+ elog "and limits needed to function smoothly:"
+ elog
+ elog "1. Please make sure your user is in the 'pipewire' group for"
+ elog "the best experience with realtime scheduling (PAM limits behavior)!"
+ elog "You can add your account with:"
elog " usermod -aG pipewire <youruser>"
elog
- elog "2. It is recommended that you remove your user from the 'audio' group"
- elog "as it can interfere with fast user switching:"
+ elog "2. For the best experience with fast user switching, it is recommended"
+ elog "that you remove your user from the 'audio' group unless you rely on the"
+ elog "audio group for device access control or ACLs.:"
elog " usermod -rG audio <youruser>"
elog
@@ -411,6 +412,8 @@ pkg_postinst() {
if [[ ${HAD_SOUND_SERVER} -eq 0 || -z ${REPLACING_VERSIONS} ]] ; then
# TODO: We could drop most of this if we set up systemd presets?
+ # They're worth looking into because right now, the out-of-the-box experience
+ # is automatic on OpenRC, while it needs manual intervention on systemd.
if use sound-server && use systemd ; then
elog
elog "When switching from PulseAudio, you may need to disable PulseAudio:"
diff --git a/media-video/pipewire/pipewire-0.3.65-r3.ebuild b/media-video/pipewire/pipewire-0.3.78-r1.ebuild
index c96649f89edb..608eb135e010 100644
--- a/media-video/pipewire/pipewire-0.3.65-r3.ebuild
+++ b/media-video/pipewire/pipewire-0.3.78-r1.ebuild
@@ -13,7 +13,7 @@ EAPI=8
# continue to move quickly. It's not uncommon for fixes to be made shortly
# after releases.
-PYTHON_COMPAT=( python3_{9..11} )
+PYTHON_COMPAT=( python3_{10..12} )
inherit flag-o-matic meson-multilib optfeature prefix python-any-r1 systemd tmpfiles udev
@@ -29,7 +29,7 @@ else
SRC_URI="https://gitlab.freedesktop.org/${PN}/${PN}/-/archive/${PV}/${P}.tar.bz2"
fi
- KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~sparc x86"
+ KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
fi
DESCRIPTION="Multimedia processing graphs"
@@ -38,8 +38,8 @@ HOMEPAGE="https://pipewire.org/"
LICENSE="MIT LGPL-2.1+ GPL-2"
# ABI was broken in 0.3.42 for https://gitlab.freedesktop.org/pipewire/wireplumber/-/issues/49
SLOT="0/0.4"
-IUSE="bluetooth dbus doc echo-cancel extra ffmpeg flatpak gstreamer gsettings jack-client jack-sdk lv2
-modemmanager pipewire-alsa readline sound-server ssl system-service systemd test v4l X zeroconf"
+IUSE="bluetooth dbus doc echo-cancel extra ffmpeg flatpak gstreamer gsettings ieee1394 jack-client jack-sdk liblc3 lv2"
+IUSE+=" modemmanager pipewire-alsa readline sound-server ssl system-service systemd test v4l X zeroconf"
# Once replacing system JACK libraries is possible, it's likely that
# jack-client IUSE will need blocking to avoid users accidentally
@@ -70,6 +70,7 @@ BDEPEND="
virtual/pkgconfig
${PYTHON_DEPS}
$(python_gen_any_dep 'dev-python/docutils[${PYTHON_USEDEP}]')
+ dbus? ( dev-util/gdbus-codegen )
doc? (
app-doc/doxygen
media-gfx/graphviz
@@ -79,6 +80,7 @@ BDEPEND="
# and not really worth it, bug #877769.
RDEPEND="
acct-group/audio
+ acct-group/pipewire
media-libs/alsa-lib
sys-libs/ncurses:=[unicode(+)]
virtual/libintl[${MULTILIB_USEDEP}]
@@ -95,42 +97,30 @@ RDEPEND="
)
dbus? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
echo-cancel? ( media-libs/webrtc-audio-processing:0 )
- extra? (
- >=media-libs/libsndfile-1.0.20
- )
+ extra? ( >=media-libs/libsndfile-1.0.20 )
ffmpeg? ( media-video/ffmpeg:= )
- flatpak? (
- dev-libs/glib
- )
+ flatpak? ( dev-libs/glib )
gstreamer? (
>=dev-libs/glib-2.32.0:2
>=media-libs/gstreamer-1.10.0:1.0
media-libs/gst-plugins-base:1.0
)
- gsettings? (
- >=dev-libs/glib-2.26.0:2
- )
+ gsettings? ( >=dev-libs/glib-2.26.0:2 )
+ ieee1394? ( media-libs/libffado[${MULTILIB_USEDEP}] )
jack-client? ( >=media-sound/jack2-1.9.10:2[dbus] )
jack-sdk? (
!media-sound/jack-audio-connection-kit
!media-sound/jack2
)
+ liblc3? ( media-sound/liblc3 )
lv2? ( media-libs/lilv )
modemmanager? ( >=net-misc/modemmanager-1.10.0 )
- pipewire-alsa? (
- >=media-libs/alsa-lib-1.1.7[${MULTILIB_USEDEP}]
- )
- sound-server? (
- !media-sound/pulseaudio[daemon(+)]
- !media-sound/pulseaudio-daemon
- )
+ pipewire-alsa? ( >=media-libs/alsa-lib-1.1.7[${MULTILIB_USEDEP}] )
+ sound-server? ( !media-sound/pulseaudio-daemon )
readline? ( sys-libs/readline:= )
ssl? ( dev-libs/openssl:= )
systemd? ( sys-apps/systemd )
- system-service? (
- acct-user/pipewire
- acct-group/pipewire
- )
+ system-service? ( acct-user/pipewire )
v4l? ( media-libs/libv4l )
X? (
media-libs/libcanberra
@@ -161,10 +151,6 @@ 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() {
python_has_version "dev-python/docutils[${PYTHON_USEDEP}]"
}
@@ -174,21 +160,6 @@ src_prepare() {
# Used for upstream backports
[[ -d "${FILESDIR}"/${PV} ]] && eapply "${FILESDIR}"/${PV}
-
- einfo "Generating ${limitsdfile}"
- cat > ${limitsdfile} <<- EOF || die
- # Start of ${limitsdfile} from ${P}
-
- @audio - memlock 256
-
- $(use system-service && {
- echo @pipewire - rtprio 95
- echo @pipewire - nice -19
- echo @pipewire - memlock 4194304
- })
-
- # End of ${limitsdfile} from ${P}
- EOF
}
multilib_src_configure() {
@@ -205,6 +176,7 @@ multilib_src_configure() {
$(meson_native_enabled man)
$(meson_feature test tests)
-Dinstalled_tests=disabled # Matches upstream; Gentoo never installs tests
+ $(meson_feature ieee1394 libffado)
$(meson_native_use_feature gstreamer)
$(meson_native_use_feature gstreamer gstreamer-device-provider)
$(meson_native_use_feature gsettings)
@@ -218,7 +190,7 @@ multilib_src_configure() {
$(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)
- -Dcompress-offload=disabled # Matches upstream, tinycompress unpackaged too
+ -Dcompress-offload=disabled # TODO: tinycompress unpackaged
-Daudiomixer=enabled # Matches upstream
-Daudioconvert=enabled # Matches upstream
$(meson_native_use_feature bluetooth bluez5)
@@ -231,13 +203,10 @@ multilib_src_configure() {
$(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 bluetooth opus)
$(meson_native_use_feature bluetooth bluez5-codec-opus)
$(meson_native_use_feature bluetooth libusb) # At least for now only used by bluez5 native (quirk detection of adapters)
$(meson_native_use_feature echo-cancel echo-cancel-webrtc) #807889
- # Not yet packaged.
- # http://www.bluez.org/le-audio-support-in-pipewire/
- -Dbluez5-codec-lc3=disabled
- -Dbluez5-codec-lc3plus=disabled
-Dcontrol=enabled # Matches upstream
-Daudiotestsrc=enabled # Matches upstream
-Dffmpeg=disabled # Disabled by upstream and no major developments to spa/plugins/ffmpeg/ since May 2020
@@ -250,6 +219,8 @@ multilib_src_configure() {
-Dsupport=enabled # Miscellaneous/common plugins, such as null sink
-Devl=disabled # Matches upstream
-Dtest=disabled # fakesink and fakesource plugins
+ -Dbluez5-codec-lc3plus=disabled # unpackaged
+ $(meson_native_use_feature liblc3 bluez5-codec-lc3)
$(meson_native_use_feature lv2)
$(meson_native_use_feature v4l v4l2)
-Dlibcamera=disabled # libcamera is not in Portage tree
@@ -263,9 +234,15 @@ multilib_src_configure() {
-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)
+ -Dlibmysofa=disabled # libmysofa is unpackaged
$(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
+ # We still have <5.16 kernels packaged in Gentoo and 6.1 (LTS) only
+ # just became stable, with 5.15 being the previous LTS. Many people
+ # are still on it.
+ -Dpam-defaults-install=true
+
# Just for bell sounds in X11 right now.
$(meson_native_use_feature X x11)
$(meson_native_use_feature X x11-xfixes)
@@ -287,9 +264,6 @@ multilib_src_install() {
multilib_src_install_all() {
einstalldocs
- insinto /etc/security/limits.d
- doins ${limitsdfile}
-
if use pipewire-alsa; then
dodir /etc/alsa/conf.d
@@ -321,10 +295,12 @@ multilib_src_install_all() {
if ! use systemd; then
insinto /etc/xdg/autostart
- newins "${FILESDIR}"/pipewire.desktop-r1 pipewire.desktop
+ newins "${FILESDIR}"/pipewire.desktop-r2 pipewire.desktop
exeinto /usr/bin
- newexe "${FILESDIR}"/gentoo-pipewire-launcher.in gentoo-pipewire-launcher
+ newexe "${FILESDIR}"/gentoo-pipewire-launcher.in-r2 gentoo-pipewire-launcher
+
+ doman "${FILESDIR}"/gentoo-pipewire-launcher.1
# Disable pipewire-pulse if sound-server is disabled.
if ! use sound-server ; then
@@ -339,124 +315,159 @@ pkg_postrm() {
udev_reload
}
+pkg_preinst() {
+ HAD_SOUND_SERVER=0
+ HAD_SYSTEM_SERVICE=0
+
+ if has_version "media-video/pipewire[sound-server(-)]" ; then
+ HAD_SOUND_SERVER=1
+ fi
+
+ if has_version "media-video/pipewire[system-service(-)]" ; then
+ HAD_SYSTEM_SERVICE=1
+ fi
+}
+
pkg_postinst() {
udev_reload
- use system-service && tmpfiles_process pipewire.conf
- 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 <youruser>"
- elog
+ use system-service && tmpfiles_process pipewire.conf
local ver
for ver in ${REPLACING_VERSIONS} ; do
- if ver_test ${ver} -le 0.3.53-r1 && ! use sound-server ; then
- ewarn "USE=sound-server is disabled! If you want PipeWire to provide"
- ewarn "your sound, please enable it. See the wiki at"
- ewarn "https://wiki.gentoo.org/wiki/PipeWire#Replacing_PulseAudio"
- ewarn "for more details."
-
- break
+ if has_version kde-plasma/kwin[screencast] || has_version x11-wm/mutter[screencast] ; then
+ # https://bugs.gentoo.org/908490
+ # https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3243
+ ewarn "Please restart KWin/Mutter after upgrading PipeWire."
+ ewarn "Screencasting may not work until you do."
fi
- done
- 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 <application> 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 ver_test ${ver} -le 0.3.66-r1 ; then
+ elog ">=pipewire-0.3.66 uses the 'pipewire' group to manage permissions"
+ elog "and limits needed to function smoothly:"
+ elog
+ elog "1. Please make sure your user is in the 'pipewire' group for"
+ elog "the best experience with realtime scheduling (PAM limits behavior)!"
+ elog "You can add your account with:"
+ elog " usermod -aG pipewire <youruser>"
+ elog
+ elog "2. For the best experience with fast user switching, it is recommended"
+ elog "that you remove your user from the 'audio' group unless you rely on the"
+ elog "audio group for device access control or ACLs.:"
+ elog " usermod -rG audio <youruser>"
+ elog
- if use systemd; then
- elog "When switching from PulseAudio, you may need to disable PulseAudio:"
- elog
- elog " systemctl --user disable pulseaudio.service pulseaudio.socket"
- elog
- elog "To use PipeWire, 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 pipewire.socket pipewire-pulse.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 disable pipewire-media-session.service"
- elog " systemctl --user --force enable wireplumber.service"
- elog
- elog "Root user may replace --user with --global to change system default"
- elog "configuration for all of the above commands."
- 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 ! use jack-sdk ; then
+ elog
+ 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 <application> 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
+ ewarn
+ 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
+ fi
+
+ if use sound-server && ( has_version 'media-sound/pulseaudio[daemon]' || has_version 'media-sound/pulseaudio-daemon' ) ; then
+ elog
+ elog "This ebuild auto-enables PulseAudio replacement. Because of that, users"
+ elog "are recommended to edit pulseaudio client configuration files:"
+ elog "${EROOT}/etc/pulse/client.conf and ${EROOT}/etc/pulse/client.conf.d/enable-autospawn.conf"
+ elog "if it exists, and disable 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
+
+ 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 ofono"
+ else
+ ewarn "rc-update delete ofono"
+ fi
+ fi
+ fi
+ done
- if use sound-server && ( 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 pulseaudio client configuration files:"
- elog "${EROOT}/etc/pulse/client.conf and ${EROOT}/etc/pulse/client.conf.d/enable-autospawn.conf"
- elog "if it exists, and disable autospawning of the original daemon by setting:"
+ if [[ ${HAD_SOUND_SERVER} -eq 0 || -z ${REPLACING_VERSIONS} ]] ; then
+ # TODO: We could drop most of this if we set up systemd presets?
+ # They're worth looking into because right now, the out-of-the-box experience
+ # is automatic on OpenRC, while it needs manual intervention on systemd.
+ if use sound-server && use systemd ; then
+ elog
+ elog "When switching from PulseAudio, you may need to disable PulseAudio:"
+ elog
+ elog " systemctl --user disable pulseaudio.service pulseaudio.socket"
elog
- elog " autospawn = no"
+ elog "To use PipeWire, the user units must be manually enabled"
+ elog "by running this command as each user you use for desktop activities:"
elog
- elog "Please note that the semicolon (;) must _NOT_ be at the beginning of the line!"
+ elog " systemctl --user enable pipewire.socket pipewire-pulse.socket"
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 "A reboot is recommended to avoid interferences from still running"
+ elog "PulseAudio daemon."
elog
- elog "#${EROOT}/usr/bin/pipewire -c pipewire-pulse.conf &"
+ elog "Both new users and those upgrading need to enable WirePlumber"
+ elog "for relevant users:"
+ elog
+ elog " systemctl --user disable pipewire-media-session.service"
+ elog " systemctl --user --force enable wireplumber.service"
+ elog
+ elog "Root user may replace --user with --global to change system default"
+ elog "configuration for all of the above commands."
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
-
- 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 use sound-server && ! use pipewire-alsa; then
- optfeature "ALSA plugin to use PulseAudio interface for output" "media-plugins/alsa-plugins[pulseaudio]"
- fi
- 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 ofono"
- else
- ewarn "rc-update delete ofono"
+ if ! use sound-server ; then
+ ewarn
+ ewarn "USE=sound-server is disabled! If you want PipeWire to provide"
+ ewarn "your sound, please enable it. See the wiki at"
+ ewarn "https://wiki.gentoo.org/wiki/PipeWire#Replacing_PulseAudio"
+ ewarn "for more details."
+ ewarn
fi
- ewarn
fi
- if use system-service; then
+ if use system-service && [[ ${HAD_SYSTEM_SERVICE} -eq 0 || -z ${REPLACING_VERSIONS} ]] ; then
ewarn
- ewarn "WARNING: you have enabled the system-service USE flag, which installs"
+ ewarn "You have enabled the system-service USE flag, which installs"
ewarn "the system-wide systemd units that enable PipeWire to run as a system"
ewarn "service. This is more than likely NOT what you want. You are strongly"
ewarn "advised not to enable this mode and instead stick with systemd user"
- ewarn "units. The default configuration files will likely not work out of"
+ ewarn "units. The default configuration files will likely not work out of the"
ewarn "box, and you are on your own with configuration."
ewarn
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 use sound-server && ! use pipewire-alsa; then
+ optfeature "ALSA plugin to use PulseAudio interface for output" "media-plugins/alsa-plugins[pulseaudio]"
+ fi
}
diff --git a/media-video/pipewire/pipewire-0.3.79-r1.ebuild b/media-video/pipewire/pipewire-0.3.79-r1.ebuild
new file mode 100644
index 000000000000..608eb135e010
--- /dev/null
+++ b/media-video/pipewire/pipewire-0.3.79-r1.ebuild
@@ -0,0 +1,473 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# 1. Please regularly check (even at the point of bumping) Fedora's packaging
+# for needed backports at https://src.fedoraproject.org/rpms/pipewire/tree/rawhide.
+#
+# 2. Upstream also sometimes amend release notes for the previous release to mention
+# needed patches, e.g. https://gitlab.freedesktop.org/pipewire/pipewire/-/tags/0.3.55#distros
+#
+# 3. Keep an eye on git master (for both PipeWire and WirePlumber) as things
+# continue to move quickly. It's not uncommon for fixes to be made shortly
+# after releases.
+
+PYTHON_COMPAT=( python3_{10..12} )
+
+inherit flag-o-matic meson-multilib optfeature prefix python-any-r1 systemd tmpfiles udev
+
+if [[ ${PV} == 9999 ]]; then
+ EGIT_REPO_URI="https://gitlab.freedesktop.org/${PN}/${PN}.git"
+ inherit git-r3
+else
+ if [[ ${PV} == *_p* ]] ; then
+ MY_COMMIT=""
+ SRC_URI="https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/${MY_COMMIT}/pipewire-${MY_COMMIT}.tar.bz2 -> ${P}.tar.bz2"
+ S="${WORKDIR}"/${PN}-${MY_COMMIT}
+ else
+ SRC_URI="https://gitlab.freedesktop.org/${PN}/${PN}/-/archive/${PV}/${P}.tar.bz2"
+ fi
+
+ KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+fi
+
+DESCRIPTION="Multimedia processing graphs"
+HOMEPAGE="https://pipewire.org/"
+
+LICENSE="MIT LGPL-2.1+ GPL-2"
+# ABI was broken in 0.3.42 for https://gitlab.freedesktop.org/pipewire/wireplumber/-/issues/49
+SLOT="0/0.4"
+IUSE="bluetooth dbus doc echo-cancel extra ffmpeg flatpak gstreamer gsettings ieee1394 jack-client jack-sdk liblc3 lv2"
+IUSE+=" modemmanager pipewire-alsa readline sound-server ssl system-service systemd test v4l X zeroconf"
+
+# 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)!
+
+# - TODO: There should be "sound-server? ( || ( alsa bluetooth ) )" here, but ALSA is always enabled
+# - TODO: Pulseaudio alsa plugin performs runtime check that pulseaudio server connection will work
+# which provides adequate guarantee that alsa-lib will be able to provide audio services.
+# If that works, pulseaudio defaults are loaded into alsa-lib runtime replacing default PCM and CTL.
+# When pipewire-alsa will be able to perform similar check, pipewire-alsa can be enabled unconditionally.
+# - ffmpeg is only used for pw-cat. We don't build the spa plugin which receives barely any activity.
+REQUIRED_USE="
+ ffmpeg? ( extra )
+ bluetooth? ( dbus )
+ jack-sdk? ( !jack-client )
+ modemmanager? ( bluetooth )
+ system-service? ( systemd )
+ !sound-server? ( !pipewire-alsa )
+ jack-client? ( dbus )
+"
+
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ >=dev-util/meson-0.59
+ virtual/pkgconfig
+ ${PYTHON_DEPS}
+ $(python_gen_any_dep 'dev-python/docutils[${PYTHON_USEDEP}]')
+ dbus? ( dev-util/gdbus-codegen )
+ doc? (
+ app-doc/doxygen
+ media-gfx/graphviz
+ )
+"
+# While udev could technically be optional, it's needed for a numebr of options,
+# and not really worth it, bug #877769.
+RDEPEND="
+ acct-group/audio
+ acct-group/pipewire
+ media-libs/alsa-lib
+ sys-libs/ncurses:=[unicode(+)]
+ virtual/libintl[${MULTILIB_USEDEP}]
+ virtual/libudev[${MULTILIB_USEDEP}]
+ bluetooth? (
+ dev-libs/glib
+ media-libs/fdk-aac
+ media-libs/libldac
+ media-libs/libfreeaptx
+ media-libs/opus
+ media-libs/sbc
+ >=net-wireless/bluez-4.101:=
+ virtual/libusb:1
+ )
+ dbus? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
+ echo-cancel? ( media-libs/webrtc-audio-processing:0 )
+ extra? ( >=media-libs/libsndfile-1.0.20 )
+ ffmpeg? ( media-video/ffmpeg:= )
+ flatpak? ( dev-libs/glib )
+ gstreamer? (
+ >=dev-libs/glib-2.32.0:2
+ >=media-libs/gstreamer-1.10.0:1.0
+ media-libs/gst-plugins-base:1.0
+ )
+ gsettings? ( >=dev-libs/glib-2.26.0:2 )
+ ieee1394? ( media-libs/libffado[${MULTILIB_USEDEP}] )
+ jack-client? ( >=media-sound/jack2-1.9.10:2[dbus] )
+ jack-sdk? (
+ !media-sound/jack-audio-connection-kit
+ !media-sound/jack2
+ )
+ liblc3? ( media-sound/liblc3 )
+ lv2? ( media-libs/lilv )
+ modemmanager? ( >=net-misc/modemmanager-1.10.0 )
+ pipewire-alsa? ( >=media-libs/alsa-lib-1.1.7[${MULTILIB_USEDEP}] )
+ sound-server? ( !media-sound/pulseaudio-daemon )
+ readline? ( sys-libs/readline:= )
+ ssl? ( dev-libs/openssl:= )
+ systemd? ( sys-apps/systemd )
+ system-service? ( acct-user/pipewire )
+ v4l? ( media-libs/libv4l )
+ X? (
+ media-libs/libcanberra
+ x11-libs/libX11
+ x11-libs/libXfixes
+ )
+ zeroconf? ( net-dns/avahi )
+"
+
+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-0.4.8-r3"
+
+# 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-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
+)
+
+python_check_deps() {
+ python_has_version "dev-python/docutils[${PYTHON_USEDEP}]"
+}
+
+src_prepare() {
+ default
+
+ # Used for upstream backports
+ [[ -d "${FILESDIR}"/${PV} ]] && eapply "${FILESDIR}"/${PV}
+}
+
+multilib_src_configure() {
+ # https://bugs.gentoo.org/838301
+ filter-flags -fno-semantic-interposition
+
+ local emesonargs=(
+ -Ddocdir="${EPREFIX}"/usr/share/doc/${PF}
+
+ $(meson_feature dbus)
+ $(meson_native_use_feature zeroconf avahi)
+ $(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_feature ieee1394 libffado)
+ $(meson_native_use_feature gstreamer)
+ $(meson_native_use_feature gstreamer gstreamer-device-provider)
+ $(meson_native_use_feature gsettings)
+ $(meson_native_use_feature systemd)
+
+ $(meson_native_use_feature system-service systemd-system-service)
+ -Dsystemd-system-unit-dir="$(systemd_get_systemunitdir)"
+ -Dsystemd-user-unit-dir="$(systemd_get_userunitdir)"
+
+ $(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)
+ -Dcompress-offload=disabled # TODO: tinycompress unpackaged
+ -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)
+ # https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1379
+ $(meson_native_use_feature modemmanager bluez5-backend-native-mm)
+ $(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 bluetooth opus)
+ $(meson_native_use_feature bluetooth bluez5-codec-opus)
+ $(meson_native_use_feature bluetooth libusb) # At least for now only used by bluez5 native (quirk detection of adapters)
+ $(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
+ $(meson_native_use_feature ffmpeg pw-cat-ffmpeg)
+ $(meson_native_use_feature flatpak)
+ -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
+ -Dbluez5-codec-lc3plus=disabled # unpackaged
+ $(meson_native_use_feature liblc3 bluez5-codec-lc3)
+ $(meson_native_use_feature lv2)
+ $(meson_native_use_feature v4l v4l2)
+ -Dlibcamera=disabled # libcamera is not in Portage tree
+ $(meson_native_use_feature readline)
+ $(meson_native_use_feature ssl raop)
+ -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)
+ -Dlibmysofa=disabled # libmysofa is unpackaged
+ $(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
+
+ # We still have <5.16 kernels packaged in Gentoo and 6.1 (LTS) only
+ # just became stable, with 5.15 being the previous LTS. Many people
+ # are still on it.
+ -Dpam-defaults-install=true
+
+ # Just for bell sounds in X11 right now.
+ $(meson_native_use_feature X x11)
+ $(meson_native_use_feature X x11-xfixes)
+ $(meson_native_use_feature X libcanberra)
+ )
+
+ meson_src_configure
+}
+
+multilib_src_test() {
+ meson_src_test --timeout-multiplier 10
+}
+
+multilib_src_install() {
+ # Our custom DOCS do not exist in multilib source directory
+ DOCS= meson_src_install
+}
+
+multilib_src_install_all() {
+ einstalldocs
+
+ if use pipewire-alsa; then
+ dodir /etc/alsa/conf.d
+
+ # Install pipewire conf loader hook
+ insinto /usr/share/alsa/alsa.conf.d
+ doins "${FILESDIR}"/99-pipewire-default-hook.conf
+ eprefixify "${ED}"/usr/share/alsa/alsa.conf.d/99-pipewire-default-hook.conf
+
+ # 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-hook.conf /etc/alsa/conf.d/99-pipewire-default-hook.conf
+ fi
+
+ # Enable required wireplumber alsa and bluez monitors
+ if use sound-server; then
+ dodir /etc/wireplumber/main.lua.d
+ echo "alsa_monitor.enabled = true" > "${ED}"/etc/wireplumber/main.lua.d/89-gentoo-sound-server-enable-alsa-monitor.lua || die
+
+ dodir /etc/wireplumber/bluetooth.lua.d
+ echo "bluez_monitor.enabled = true" > "${ED}"/etc/wireplumber/bluetooth.lua.d/89-gentoo-sound-server-enable-bluez-monitor.lua || die
+ fi
+
+ if use system-service; then
+ newtmpfiles - pipewire.conf <<-EOF || die
+ d /run/pipewire 0755 pipewire pipewire - -
+ EOF
+ fi
+
+ if ! use systemd; then
+ insinto /etc/xdg/autostart
+ newins "${FILESDIR}"/pipewire.desktop-r2 pipewire.desktop
+
+ exeinto /usr/bin
+ newexe "${FILESDIR}"/gentoo-pipewire-launcher.in-r2 gentoo-pipewire-launcher
+
+ doman "${FILESDIR}"/gentoo-pipewire-launcher.1
+
+ # Disable pipewire-pulse if sound-server is disabled.
+ if ! use sound-server ; then
+ sed -i -s '/pipewire -c pipewire-pulse.conf/s/^/#/' "${ED}"/usr/bin/gentoo-pipewire-launcher || die
+ fi
+
+ eprefixify "${ED}"/usr/bin/gentoo-pipewire-launcher
+ fi
+}
+
+pkg_postrm() {
+ udev_reload
+}
+
+pkg_preinst() {
+ HAD_SOUND_SERVER=0
+ HAD_SYSTEM_SERVICE=0
+
+ if has_version "media-video/pipewire[sound-server(-)]" ; then
+ HAD_SOUND_SERVER=1
+ fi
+
+ if has_version "media-video/pipewire[system-service(-)]" ; then
+ HAD_SYSTEM_SERVICE=1
+ fi
+}
+
+pkg_postinst() {
+ udev_reload
+
+ use system-service && tmpfiles_process pipewire.conf
+
+ local ver
+ for ver in ${REPLACING_VERSIONS} ; do
+ if has_version kde-plasma/kwin[screencast] || has_version x11-wm/mutter[screencast] ; then
+ # https://bugs.gentoo.org/908490
+ # https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3243
+ ewarn "Please restart KWin/Mutter after upgrading PipeWire."
+ ewarn "Screencasting may not work until you do."
+ fi
+
+ if ver_test ${ver} -le 0.3.66-r1 ; then
+ elog ">=pipewire-0.3.66 uses the 'pipewire' group to manage permissions"
+ elog "and limits needed to function smoothly:"
+ elog
+ elog "1. Please make sure your user is in the 'pipewire' group for"
+ elog "the best experience with realtime scheduling (PAM limits behavior)!"
+ elog "You can add your account with:"
+ elog " usermod -aG pipewire <youruser>"
+ elog
+ elog "2. For the best experience with fast user switching, it is recommended"
+ elog "that you remove your user from the 'audio' group unless you rely on the"
+ elog "audio group for device access control or ACLs.:"
+ elog " usermod -rG audio <youruser>"
+ elog
+
+ if ! use jack-sdk ; then
+ elog
+ 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 <application> 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
+ ewarn
+ 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
+ fi
+
+ if use sound-server && ( has_version 'media-sound/pulseaudio[daemon]' || has_version 'media-sound/pulseaudio-daemon' ) ; then
+ elog
+ elog "This ebuild auto-enables PulseAudio replacement. Because of that, users"
+ elog "are recommended to edit pulseaudio client configuration files:"
+ elog "${EROOT}/etc/pulse/client.conf and ${EROOT}/etc/pulse/client.conf.d/enable-autospawn.conf"
+ elog "if it exists, and disable 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
+
+ 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 ofono"
+ else
+ ewarn "rc-update delete ofono"
+ fi
+ fi
+ fi
+ done
+
+ if [[ ${HAD_SOUND_SERVER} -eq 0 || -z ${REPLACING_VERSIONS} ]] ; then
+ # TODO: We could drop most of this if we set up systemd presets?
+ # They're worth looking into because right now, the out-of-the-box experience
+ # is automatic on OpenRC, while it needs manual intervention on systemd.
+ if use sound-server && use systemd ; then
+ elog
+ elog "When switching from PulseAudio, you may need to disable PulseAudio:"
+ elog
+ elog " systemctl --user disable pulseaudio.service pulseaudio.socket"
+ elog
+ elog "To use PipeWire, 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 pipewire.socket pipewire-pulse.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 disable pipewire-media-session.service"
+ elog " systemctl --user --force enable wireplumber.service"
+ elog
+ elog "Root user may replace --user with --global to change system default"
+ elog "configuration for all of the above commands."
+ elog
+ fi
+
+ if ! use sound-server ; then
+ ewarn
+ ewarn "USE=sound-server is disabled! If you want PipeWire to provide"
+ ewarn "your sound, please enable it. See the wiki at"
+ ewarn "https://wiki.gentoo.org/wiki/PipeWire#Replacing_PulseAudio"
+ ewarn "for more details."
+ ewarn
+ fi
+ fi
+
+ if use system-service && [[ ${HAD_SYSTEM_SERVICE} -eq 0 || -z ${REPLACING_VERSIONS} ]] ; then
+ ewarn
+ ewarn "You have enabled the system-service USE flag, which installs"
+ ewarn "the system-wide systemd units that enable PipeWire to run as a system"
+ ewarn "service. This is more than likely NOT what you want. You are strongly"
+ ewarn "advised not to enable this mode and instead stick with systemd user"
+ ewarn "units. The default configuration files will likely not work out of the"
+ ewarn "box, and you are on your own with configuration."
+ ewarn
+ 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 use sound-server && ! use pipewire-alsa; then
+ optfeature "ALSA plugin to use PulseAudio interface for output" "media-plugins/alsa-plugins[pulseaudio]"
+ fi
+}
diff --git a/media-video/pipewire/pipewire-0.3.79-r2.ebuild b/media-video/pipewire/pipewire-0.3.79-r2.ebuild
new file mode 100644
index 000000000000..9ae26c068a6e
--- /dev/null
+++ b/media-video/pipewire/pipewire-0.3.79-r2.ebuild
@@ -0,0 +1,475 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# 1. Please regularly check (even at the point of bumping) Fedora's packaging
+# for needed backports at https://src.fedoraproject.org/rpms/pipewire/tree/rawhide.
+#
+# 2. Upstream also sometimes amend release notes for the previous release to mention
+# needed patches, e.g. https://gitlab.freedesktop.org/pipewire/pipewire/-/tags/0.3.55#distros
+#
+# 3. Keep an eye on git master (for both PipeWire and WirePlumber) as things
+# continue to move quickly. It's not uncommon for fixes to be made shortly
+# after releases.
+
+PYTHON_COMPAT=( python3_{10..12} )
+
+inherit flag-o-matic meson-multilib optfeature prefix python-any-r1 systemd tmpfiles udev
+
+if [[ ${PV} == 9999 ]]; then
+ EGIT_REPO_URI="https://gitlab.freedesktop.org/${PN}/${PN}.git"
+ inherit git-r3
+else
+ if [[ ${PV} == *_p* ]] ; then
+ MY_COMMIT=""
+ SRC_URI="https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/${MY_COMMIT}/pipewire-${MY_COMMIT}.tar.bz2 -> ${P}.tar.bz2"
+ S="${WORKDIR}"/${PN}-${MY_COMMIT}
+ else
+ SRC_URI="https://gitlab.freedesktop.org/${PN}/${PN}/-/archive/${PV}/${P}.tar.bz2"
+ fi
+
+ KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+fi
+
+DESCRIPTION="Multimedia processing graphs"
+HOMEPAGE="https://pipewire.org/"
+
+LICENSE="MIT LGPL-2.1+ GPL-2"
+# ABI was broken in 0.3.42 for https://gitlab.freedesktop.org/pipewire/wireplumber/-/issues/49
+SLOT="0/0.4"
+IUSE="bluetooth dbus doc echo-cancel extra ffmpeg flatpak gstreamer gsettings ieee1394 jack-client jack-sdk liblc3 lv2"
+IUSE+=" modemmanager pipewire-alsa readline roc sound-server ssl system-service systemd test v4l X zeroconf"
+
+# 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)!
+
+# - TODO: There should be "sound-server? ( || ( alsa bluetooth ) )" here, but ALSA is always enabled
+# - TODO: Pulseaudio alsa plugin performs runtime check that pulseaudio server connection will work
+# which provides adequate guarantee that alsa-lib will be able to provide audio services.
+# If that works, pulseaudio defaults are loaded into alsa-lib runtime replacing default PCM and CTL.
+# When pipewire-alsa will be able to perform similar check, pipewire-alsa can be enabled unconditionally.
+# - ffmpeg is only used for pw-cat. We don't build the spa plugin which receives barely any activity.
+REQUIRED_USE="
+ ffmpeg? ( extra )
+ bluetooth? ( dbus )
+ jack-sdk? ( !jack-client )
+ modemmanager? ( bluetooth )
+ system-service? ( systemd )
+ !sound-server? ( !pipewire-alsa )
+ jack-client? ( dbus )
+"
+
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ >=dev-util/meson-0.59
+ virtual/pkgconfig
+ ${PYTHON_DEPS}
+ $(python_gen_any_dep 'dev-python/docutils[${PYTHON_USEDEP}]')
+ dbus? ( dev-util/gdbus-codegen )
+ doc? (
+ app-doc/doxygen
+ media-gfx/graphviz
+ )
+"
+# While udev could technically be optional, it's needed for a numebr of options,
+# and not really worth it, bug #877769.
+RDEPEND="
+ acct-group/audio
+ acct-group/pipewire
+ media-libs/alsa-lib
+ sys-libs/ncurses:=[unicode(+)]
+ virtual/libintl[${MULTILIB_USEDEP}]
+ virtual/libudev[${MULTILIB_USEDEP}]
+ bluetooth? (
+ dev-libs/glib
+ media-libs/fdk-aac
+ media-libs/libldac
+ media-libs/libfreeaptx
+ media-libs/opus
+ media-libs/sbc
+ >=net-wireless/bluez-4.101:=
+ virtual/libusb:1
+ )
+ dbus? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
+ echo-cancel? ( media-libs/webrtc-audio-processing:0 )
+ extra? ( >=media-libs/libsndfile-1.0.20 )
+ ffmpeg? ( media-video/ffmpeg:= )
+ flatpak? ( dev-libs/glib )
+ gstreamer? (
+ >=dev-libs/glib-2.32.0:2
+ >=media-libs/gstreamer-1.10.0:1.0
+ media-libs/gst-plugins-base:1.0
+ )
+ gsettings? ( >=dev-libs/glib-2.26.0:2 )
+ ieee1394? ( media-libs/libffado[${MULTILIB_USEDEP}] )
+ jack-client? ( >=media-sound/jack2-1.9.10:2[dbus] )
+ jack-sdk? (
+ !media-sound/jack-audio-connection-kit
+ !media-sound/jack2
+ )
+ liblc3? ( media-sound/liblc3 )
+ lv2? ( media-libs/lilv )
+ modemmanager? ( >=net-misc/modemmanager-1.10.0 )
+ pipewire-alsa? ( >=media-libs/alsa-lib-1.1.7[${MULTILIB_USEDEP}] )
+ sound-server? ( !media-sound/pulseaudio-daemon )
+ roc? ( media-libs/roc-toolkit )
+ readline? ( sys-libs/readline:= )
+ ssl? ( dev-libs/openssl:= )
+ systemd? ( sys-apps/systemd )
+ system-service? ( acct-user/pipewire )
+ v4l? ( media-libs/libv4l )
+ X? (
+ media-libs/libcanberra
+ x11-libs/libX11
+ x11-libs/libXfixes
+ )
+ zeroconf? ( net-dns/avahi )
+"
+
+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-0.4.8-r3"
+
+# 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-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
+)
+
+python_check_deps() {
+ python_has_version "dev-python/docutils[${PYTHON_USEDEP}]"
+}
+
+src_prepare() {
+ default
+
+ # Used for upstream backports
+ [[ -d "${FILESDIR}"/${PV} ]] && eapply "${FILESDIR}"/${PV}
+}
+
+multilib_src_configure() {
+ # https://bugs.gentoo.org/838301
+ filter-flags -fno-semantic-interposition
+
+ local emesonargs=(
+ -Ddocdir="${EPREFIX}"/usr/share/doc/${PF}
+
+ $(meson_feature dbus)
+ $(meson_native_use_feature zeroconf avahi)
+ $(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_feature ieee1394 libffado)
+ $(meson_native_use_feature gstreamer)
+ $(meson_native_use_feature gstreamer gstreamer-device-provider)
+ $(meson_native_use_feature gsettings)
+ $(meson_native_use_feature systemd)
+
+ $(meson_native_use_feature system-service systemd-system-service)
+ -Dsystemd-system-unit-dir="$(systemd_get_systemunitdir)"
+ -Dsystemd-user-unit-dir="$(systemd_get_userunitdir)"
+
+ $(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)
+ -Dcompress-offload=disabled # TODO: tinycompress unpackaged
+ -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)
+ # https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1379
+ $(meson_native_use_feature modemmanager bluez5-backend-native-mm)
+ $(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 bluetooth opus)
+ $(meson_native_use_feature bluetooth bluez5-codec-opus)
+ $(meson_native_use_feature bluetooth libusb) # At least for now only used by bluez5 native (quirk detection of adapters)
+ $(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
+ $(meson_native_use_feature ffmpeg pw-cat-ffmpeg)
+ $(meson_native_use_feature flatpak)
+ -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
+ -Dbluez5-codec-lc3plus=disabled # unpackaged
+ $(meson_native_use_feature liblc3 bluez5-codec-lc3)
+ $(meson_native_use_feature lv2)
+ $(meson_native_use_feature v4l v4l2)
+ -Dlibcamera=disabled # libcamera is not in Portage tree
+ $(meson_native_use_feature roc)
+ $(meson_native_use_feature readline)
+ $(meson_native_use_feature ssl raop)
+ -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)
+ -Dlibmysofa=disabled # libmysofa is unpackaged
+ $(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
+
+ # We still have <5.16 kernels packaged in Gentoo and 6.1 (LTS) only
+ # just became stable, with 5.15 being the previous LTS. Many people
+ # are still on it.
+ -Dpam-defaults-install=true
+
+ # Just for bell sounds in X11 right now.
+ $(meson_native_use_feature X x11)
+ $(meson_native_use_feature X x11-xfixes)
+ $(meson_native_use_feature X libcanberra)
+ )
+
+ meson_src_configure
+}
+
+multilib_src_test() {
+ meson_src_test --timeout-multiplier 10
+}
+
+multilib_src_install() {
+ # Our custom DOCS do not exist in multilib source directory
+ DOCS= meson_src_install
+}
+
+multilib_src_install_all() {
+ einstalldocs
+
+ if use pipewire-alsa; then
+ dodir /etc/alsa/conf.d
+
+ # Install pipewire conf loader hook
+ insinto /usr/share/alsa/alsa.conf.d
+ doins "${FILESDIR}"/99-pipewire-default-hook.conf
+ eprefixify "${ED}"/usr/share/alsa/alsa.conf.d/99-pipewire-default-hook.conf
+
+ # 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-hook.conf /etc/alsa/conf.d/99-pipewire-default-hook.conf
+ fi
+
+ # Enable required wireplumber alsa and bluez monitors
+ if use sound-server; then
+ dodir /etc/wireplumber/main.lua.d
+ echo "alsa_monitor.enabled = true" > "${ED}"/etc/wireplumber/main.lua.d/89-gentoo-sound-server-enable-alsa-monitor.lua || die
+
+ dodir /etc/wireplumber/bluetooth.lua.d
+ echo "bluez_monitor.enabled = true" > "${ED}"/etc/wireplumber/bluetooth.lua.d/89-gentoo-sound-server-enable-bluez-monitor.lua || die
+ fi
+
+ if use system-service; then
+ newtmpfiles - pipewire.conf <<-EOF || die
+ d /run/pipewire 0755 pipewire pipewire - -
+ EOF
+ fi
+
+ if ! use systemd; then
+ insinto /etc/xdg/autostart
+ newins "${FILESDIR}"/pipewire.desktop-r2 pipewire.desktop
+
+ exeinto /usr/bin
+ newexe "${FILESDIR}"/gentoo-pipewire-launcher.in-r2 gentoo-pipewire-launcher
+
+ doman "${FILESDIR}"/gentoo-pipewire-launcher.1
+
+ # Disable pipewire-pulse if sound-server is disabled.
+ if ! use sound-server ; then
+ sed -i -s '/pipewire -c pipewire-pulse.conf/s/^/#/' "${ED}"/usr/bin/gentoo-pipewire-launcher || die
+ fi
+
+ eprefixify "${ED}"/usr/bin/gentoo-pipewire-launcher
+ fi
+}
+
+pkg_postrm() {
+ udev_reload
+}
+
+pkg_preinst() {
+ HAD_SOUND_SERVER=0
+ HAD_SYSTEM_SERVICE=0
+
+ if has_version "media-video/pipewire[sound-server(-)]" ; then
+ HAD_SOUND_SERVER=1
+ fi
+
+ if has_version "media-video/pipewire[system-service(-)]" ; then
+ HAD_SYSTEM_SERVICE=1
+ fi
+}
+
+pkg_postinst() {
+ udev_reload
+
+ use system-service && tmpfiles_process pipewire.conf
+
+ local ver
+ for ver in ${REPLACING_VERSIONS} ; do
+ if has_version kde-plasma/kwin[screencast] || has_version x11-wm/mutter[screencast] ; then
+ # https://bugs.gentoo.org/908490
+ # https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3243
+ ewarn "Please restart KWin/Mutter after upgrading PipeWire."
+ ewarn "Screencasting may not work until you do."
+ fi
+
+ if ver_test ${ver} -le 0.3.66-r1 ; then
+ elog ">=pipewire-0.3.66 uses the 'pipewire' group to manage permissions"
+ elog "and limits needed to function smoothly:"
+ elog
+ elog "1. Please make sure your user is in the 'pipewire' group for"
+ elog "the best experience with realtime scheduling (PAM limits behavior)!"
+ elog "You can add your account with:"
+ elog " usermod -aG pipewire <youruser>"
+ elog
+ elog "2. For the best experience with fast user switching, it is recommended"
+ elog "that you remove your user from the 'audio' group unless you rely on the"
+ elog "audio group for device access control or ACLs.:"
+ elog " usermod -rG audio <youruser>"
+ elog
+
+ if ! use jack-sdk ; then
+ elog
+ 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 <application> 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
+ ewarn
+ 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
+ fi
+
+ if use sound-server && ( has_version 'media-sound/pulseaudio[daemon]' || has_version 'media-sound/pulseaudio-daemon' ) ; then
+ elog
+ elog "This ebuild auto-enables PulseAudio replacement. Because of that, users"
+ elog "are recommended to edit pulseaudio client configuration files:"
+ elog "${EROOT}/etc/pulse/client.conf and ${EROOT}/etc/pulse/client.conf.d/enable-autospawn.conf"
+ elog "if it exists, and disable 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
+
+ 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 ofono"
+ else
+ ewarn "rc-update delete ofono"
+ fi
+ fi
+ fi
+ done
+
+ if [[ ${HAD_SOUND_SERVER} -eq 0 || -z ${REPLACING_VERSIONS} ]] ; then
+ # TODO: We could drop most of this if we set up systemd presets?
+ # They're worth looking into because right now, the out-of-the-box experience
+ # is automatic on OpenRC, while it needs manual intervention on systemd.
+ if use sound-server && use systemd ; then
+ elog
+ elog "When switching from PulseAudio, you may need to disable PulseAudio:"
+ elog
+ elog " systemctl --user disable pulseaudio.service pulseaudio.socket"
+ elog
+ elog "To use PipeWire, 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 pipewire.socket pipewire-pulse.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 disable pipewire-media-session.service"
+ elog " systemctl --user --force enable wireplumber.service"
+ elog
+ elog "Root user may replace --user with --global to change system default"
+ elog "configuration for all of the above commands."
+ elog
+ fi
+
+ if ! use sound-server ; then
+ ewarn
+ ewarn "USE=sound-server is disabled! If you want PipeWire to provide"
+ ewarn "your sound, please enable it. See the wiki at"
+ ewarn "https://wiki.gentoo.org/wiki/PipeWire#Replacing_PulseAudio"
+ ewarn "for more details."
+ ewarn
+ fi
+ fi
+
+ if use system-service && [[ ${HAD_SYSTEM_SERVICE} -eq 0 || -z ${REPLACING_VERSIONS} ]] ; then
+ ewarn
+ ewarn "You have enabled the system-service USE flag, which installs"
+ ewarn "the system-wide systemd units that enable PipeWire to run as a system"
+ ewarn "service. This is more than likely NOT what you want. You are strongly"
+ ewarn "advised not to enable this mode and instead stick with systemd user"
+ ewarn "units. The default configuration files will likely not work out of the"
+ ewarn "box, and you are on your own with configuration."
+ ewarn
+ 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 use sound-server && ! use pipewire-alsa; then
+ optfeature "ALSA plugin to use PulseAudio interface for output" "media-plugins/alsa-plugins[pulseaudio]"
+ fi
+}
diff --git a/media-video/pipewire/pipewire-0.3.79-r3.ebuild b/media-video/pipewire/pipewire-0.3.79-r3.ebuild
new file mode 100644
index 000000000000..7a471fb632bf
--- /dev/null
+++ b/media-video/pipewire/pipewire-0.3.79-r3.ebuild
@@ -0,0 +1,475 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# 1. Please regularly check (even at the point of bumping) Fedora's packaging
+# for needed backports at https://src.fedoraproject.org/rpms/pipewire/tree/rawhide.
+#
+# 2. Upstream also sometimes amend release notes for the previous release to mention
+# needed patches, e.g. https://gitlab.freedesktop.org/pipewire/pipewire/-/tags/0.3.55#distros
+#
+# 3. Keep an eye on git master (for both PipeWire and WirePlumber) as things
+# continue to move quickly. It's not uncommon for fixes to be made shortly
+# after releases.
+
+PYTHON_COMPAT=( python3_{10..12} )
+
+inherit flag-o-matic meson-multilib optfeature prefix python-any-r1 systemd tmpfiles udev
+
+if [[ ${PV} == 9999 ]]; then
+ EGIT_REPO_URI="https://gitlab.freedesktop.org/${PN}/${PN}.git"
+ inherit git-r3
+else
+ if [[ ${PV} == *_p* ]] ; then
+ MY_COMMIT=""
+ SRC_URI="https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/${MY_COMMIT}/pipewire-${MY_COMMIT}.tar.bz2 -> ${P}.tar.bz2"
+ S="${WORKDIR}"/${PN}-${MY_COMMIT}
+ else
+ SRC_URI="https://gitlab.freedesktop.org/${PN}/${PN}/-/archive/${PV}/${P}.tar.bz2"
+ fi
+
+ KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+fi
+
+DESCRIPTION="Multimedia processing graphs"
+HOMEPAGE="https://pipewire.org/"
+
+LICENSE="MIT LGPL-2.1+ GPL-2"
+# ABI was broken in 0.3.42 for https://gitlab.freedesktop.org/pipewire/wireplumber/-/issues/49
+SLOT="0/0.4"
+IUSE="bluetooth dbus doc echo-cancel extra ffmpeg flatpak gstreamer gsettings ieee1394 jack-client jack-sdk liblc3 lv2"
+IUSE+=" modemmanager pipewire-alsa readline roc sound-server ssl system-service systemd test v4l X zeroconf"
+
+# 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)!
+
+# - TODO: There should be "sound-server? ( || ( alsa bluetooth ) )" here, but ALSA is always enabled
+# - TODO: Pulseaudio alsa plugin performs runtime check that pulseaudio server connection will work
+# which provides adequate guarantee that alsa-lib will be able to provide audio services.
+# If that works, pulseaudio defaults are loaded into alsa-lib runtime replacing default PCM and CTL.
+# When pipewire-alsa will be able to perform similar check, pipewire-alsa can be enabled unconditionally.
+# - ffmpeg is only used for pw-cat. We don't build the spa plugin which receives barely any activity.
+REQUIRED_USE="
+ ffmpeg? ( extra )
+ bluetooth? ( dbus )
+ jack-sdk? ( !jack-client )
+ modemmanager? ( bluetooth )
+ system-service? ( systemd )
+ !sound-server? ( !pipewire-alsa )
+ jack-client? ( dbus )
+"
+
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ >=dev-util/meson-0.59
+ virtual/pkgconfig
+ ${PYTHON_DEPS}
+ $(python_gen_any_dep 'dev-python/docutils[${PYTHON_USEDEP}]')
+ dbus? ( dev-util/gdbus-codegen )
+ doc? (
+ app-doc/doxygen
+ media-gfx/graphviz
+ )
+"
+# While udev could technically be optional, it's needed for a numebr of options,
+# and not really worth it, bug #877769.
+RDEPEND="
+ acct-group/audio
+ acct-group/pipewire
+ media-libs/alsa-lib
+ sys-libs/ncurses:=[unicode(+)]
+ virtual/libintl[${MULTILIB_USEDEP}]
+ virtual/libudev[${MULTILIB_USEDEP}]
+ bluetooth? (
+ dev-libs/glib
+ media-libs/fdk-aac
+ media-libs/libldac
+ media-libs/libfreeaptx
+ media-libs/opus
+ media-libs/sbc
+ >=net-wireless/bluez-4.101:=
+ virtual/libusb:1
+ )
+ dbus? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
+ echo-cancel? ( media-libs/webrtc-audio-processing:0 )
+ extra? ( >=media-libs/libsndfile-1.0.20 )
+ ffmpeg? ( media-video/ffmpeg:= )
+ flatpak? ( dev-libs/glib )
+ gstreamer? (
+ >=dev-libs/glib-2.32.0:2
+ >=media-libs/gstreamer-1.10.0:1.0
+ media-libs/gst-plugins-base:1.0
+ )
+ gsettings? ( >=dev-libs/glib-2.26.0:2 )
+ ieee1394? ( media-libs/libffado[${MULTILIB_USEDEP}] )
+ jack-client? ( >=media-sound/jack2-1.9.10:2[dbus] )
+ jack-sdk? (
+ !media-sound/jack-audio-connection-kit
+ !media-sound/jack2
+ )
+ liblc3? ( media-sound/liblc3 )
+ lv2? ( media-libs/lilv )
+ modemmanager? ( >=net-misc/modemmanager-1.10.0 )
+ pipewire-alsa? ( >=media-libs/alsa-lib-1.1.7[${MULTILIB_USEDEP}] )
+ sound-server? ( !media-sound/pulseaudio-daemon )
+ roc? ( media-libs/roc-toolkit )
+ readline? ( sys-libs/readline:= )
+ ssl? ( dev-libs/openssl:= )
+ systemd? ( sys-apps/systemd )
+ system-service? ( acct-user/pipewire )
+ v4l? ( media-libs/libv4l )
+ X? (
+ media-libs/libcanberra
+ x11-libs/libX11
+ x11-libs/libXfixes
+ )
+ zeroconf? ( net-dns/avahi )
+"
+
+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-0.4.8-r3"
+
+# 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-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
+)
+
+python_check_deps() {
+ python_has_version "dev-python/docutils[${PYTHON_USEDEP}]"
+}
+
+src_prepare() {
+ default
+
+ # Used for upstream backports
+ [[ -d "${FILESDIR}"/${PV} ]] && eapply "${FILESDIR}"/${PV}
+}
+
+multilib_src_configure() {
+ # https://bugs.gentoo.org/838301
+ filter-flags -fno-semantic-interposition
+
+ local emesonargs=(
+ -Ddocdir="${EPREFIX}"/usr/share/doc/${PF}
+
+ $(meson_feature dbus)
+ $(meson_native_use_feature zeroconf avahi)
+ $(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_feature ieee1394 libffado)
+ $(meson_native_use_feature gstreamer)
+ $(meson_native_use_feature gstreamer gstreamer-device-provider)
+ $(meson_native_use_feature gsettings)
+ $(meson_native_use_feature systemd)
+
+ $(meson_native_use_feature system-service systemd-system-service)
+ -Dsystemd-system-unit-dir="$(systemd_get_systemunitdir)"
+ -Dsystemd-user-unit-dir="$(systemd_get_userunitdir)"
+
+ $(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)
+ -Dcompress-offload=disabled # TODO: tinycompress unpackaged
+ -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)
+ # https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1379
+ $(meson_native_use_feature modemmanager bluez5-backend-native-mm)
+ $(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 bluetooth opus)
+ $(meson_native_use_feature bluetooth bluez5-codec-opus)
+ $(meson_native_use_feature bluetooth libusb) # At least for now only used by bluez5 native (quirk detection of adapters)
+ $(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
+ $(meson_native_use_feature ffmpeg pw-cat-ffmpeg)
+ $(meson_native_use_feature flatpak)
+ -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
+ -Dbluez5-codec-lc3plus=disabled # unpackaged
+ $(meson_native_use_feature liblc3 bluez5-codec-lc3)
+ $(meson_native_use_feature lv2)
+ $(meson_native_use_feature v4l v4l2)
+ -Dlibcamera=disabled # libcamera is not in Portage tree
+ $(meson_native_use_feature roc)
+ $(meson_native_use_feature readline)
+ $(meson_native_use_feature ssl raop)
+ -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)
+ -Dlibmysofa=disabled # libmysofa is unpackaged
+ $(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
+
+ # We still have <5.16 kernels packaged in Gentoo and 6.1 (LTS) only
+ # just became stable, with 5.15 being the previous LTS. Many people
+ # are still on it.
+ -Dpam-defaults-install=true
+
+ # Just for bell sounds in X11 right now.
+ $(meson_native_use_feature X x11)
+ $(meson_native_use_feature X x11-xfixes)
+ $(meson_native_use_feature X libcanberra)
+ )
+
+ meson_src_configure
+}
+
+multilib_src_test() {
+ meson_src_test --timeout-multiplier 10
+}
+
+multilib_src_install() {
+ # Our custom DOCS do not exist in multilib source directory
+ DOCS= meson_src_install
+}
+
+multilib_src_install_all() {
+ einstalldocs
+
+ if use pipewire-alsa; then
+ dodir /etc/alsa/conf.d
+
+ # Install pipewire conf loader hook
+ insinto /usr/share/alsa/alsa.conf.d
+ doins "${FILESDIR}"/99-pipewire-default-hook.conf
+ eprefixify "${ED}"/usr/share/alsa/alsa.conf.d/99-pipewire-default-hook.conf
+
+ # 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-hook.conf /etc/alsa/conf.d/99-pipewire-default-hook.conf
+ fi
+
+ # Enable required wireplumber alsa and bluez monitors
+ if use sound-server; then
+ dodir /etc/wireplumber/main.lua.d
+ echo "alsa_monitor.enabled = true" > "${ED}"/etc/wireplumber/main.lua.d/89-gentoo-sound-server-enable-alsa-monitor.lua || die
+
+ dodir /etc/wireplumber/bluetooth.lua.d
+ echo "bluez_monitor.enabled = true" > "${ED}"/etc/wireplumber/bluetooth.lua.d/89-gentoo-sound-server-enable-bluez-monitor.lua || die
+ fi
+
+ if use system-service; then
+ newtmpfiles - pipewire.conf <<-EOF || die
+ d /run/pipewire 0755 pipewire pipewire - -
+ EOF
+ fi
+
+ if ! use systemd; then
+ insinto /etc/xdg/autostart
+ newins "${FILESDIR}"/pipewire.desktop-r2 pipewire.desktop
+
+ exeinto /usr/bin
+ newexe "${FILESDIR}"/gentoo-pipewire-launcher.in-r3 gentoo-pipewire-launcher
+
+ doman "${FILESDIR}"/gentoo-pipewire-launcher.1
+
+ # Disable pipewire-pulse if sound-server is disabled.
+ if ! use sound-server ; then
+ sed -i -s '/pipewire -c pipewire-pulse.conf/s/^/#/' "${ED}"/usr/bin/gentoo-pipewire-launcher || die
+ fi
+
+ eprefixify "${ED}"/usr/bin/gentoo-pipewire-launcher
+ fi
+}
+
+pkg_postrm() {
+ udev_reload
+}
+
+pkg_preinst() {
+ HAD_SOUND_SERVER=0
+ HAD_SYSTEM_SERVICE=0
+
+ if has_version "media-video/pipewire[sound-server(-)]" ; then
+ HAD_SOUND_SERVER=1
+ fi
+
+ if has_version "media-video/pipewire[system-service(-)]" ; then
+ HAD_SYSTEM_SERVICE=1
+ fi
+}
+
+pkg_postinst() {
+ udev_reload
+
+ use system-service && tmpfiles_process pipewire.conf
+
+ local ver
+ for ver in ${REPLACING_VERSIONS} ; do
+ if has_version kde-plasma/kwin[screencast] || has_version x11-wm/mutter[screencast] ; then
+ # https://bugs.gentoo.org/908490
+ # https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3243
+ ewarn "Please restart KWin/Mutter after upgrading PipeWire."
+ ewarn "Screencasting may not work until you do."
+ fi
+
+ if ver_test ${ver} -le 0.3.66-r1 ; then
+ elog ">=pipewire-0.3.66 uses the 'pipewire' group to manage permissions"
+ elog "and limits needed to function smoothly:"
+ elog
+ elog "1. Please make sure your user is in the 'pipewire' group for"
+ elog "the best experience with realtime scheduling (PAM limits behavior)!"
+ elog "You can add your account with:"
+ elog " usermod -aG pipewire <youruser>"
+ elog
+ elog "2. For the best experience with fast user switching, it is recommended"
+ elog "that you remove your user from the 'audio' group unless you rely on the"
+ elog "audio group for device access control or ACLs.:"
+ elog " usermod -rG audio <youruser>"
+ elog
+
+ if ! use jack-sdk ; then
+ elog
+ 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 <application> 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
+ ewarn
+ 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
+ fi
+
+ if use sound-server && ( has_version 'media-sound/pulseaudio[daemon]' || has_version 'media-sound/pulseaudio-daemon' ) ; then
+ elog
+ elog "This ebuild auto-enables PulseAudio replacement. Because of that, users"
+ elog "are recommended to edit pulseaudio client configuration files:"
+ elog "${EROOT}/etc/pulse/client.conf and ${EROOT}/etc/pulse/client.conf.d/enable-autospawn.conf"
+ elog "if it exists, and disable 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
+
+ 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 ofono"
+ else
+ ewarn "rc-update delete ofono"
+ fi
+ fi
+ fi
+ done
+
+ if [[ ${HAD_SOUND_SERVER} -eq 0 || -z ${REPLACING_VERSIONS} ]] ; then
+ # TODO: We could drop most of this if we set up systemd presets?
+ # They're worth looking into because right now, the out-of-the-box experience
+ # is automatic on OpenRC, while it needs manual intervention on systemd.
+ if use sound-server && use systemd ; then
+ elog
+ elog "When switching from PulseAudio, you may need to disable PulseAudio:"
+ elog
+ elog " systemctl --user disable pulseaudio.service pulseaudio.socket"
+ elog
+ elog "To use PipeWire, 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 pipewire.socket pipewire-pulse.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 disable pipewire-media-session.service"
+ elog " systemctl --user --force enable wireplumber.service"
+ elog
+ elog "Root user may replace --user with --global to change system default"
+ elog "configuration for all of the above commands."
+ elog
+ fi
+
+ if ! use sound-server ; then
+ ewarn
+ ewarn "USE=sound-server is disabled! If you want PipeWire to provide"
+ ewarn "your sound, please enable it. See the wiki at"
+ ewarn "https://wiki.gentoo.org/wiki/PipeWire#Replacing_PulseAudio"
+ ewarn "for more details."
+ ewarn
+ fi
+ fi
+
+ if use system-service && [[ ${HAD_SYSTEM_SERVICE} -eq 0 || -z ${REPLACING_VERSIONS} ]] ; then
+ ewarn
+ ewarn "You have enabled the system-service USE flag, which installs"
+ ewarn "the system-wide systemd units that enable PipeWire to run as a system"
+ ewarn "service. This is more than likely NOT what you want. You are strongly"
+ ewarn "advised not to enable this mode and instead stick with systemd user"
+ ewarn "units. The default configuration files will likely not work out of the"
+ ewarn "box, and you are on your own with configuration."
+ ewarn
+ 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 use sound-server && ! use pipewire-alsa; then
+ optfeature "ALSA plugin to use PulseAudio interface for output" "media-plugins/alsa-plugins[pulseaudio]"
+ fi
+}
diff --git a/media-video/pipewire/pipewire-0.3.80.ebuild b/media-video/pipewire/pipewire-0.3.80.ebuild
new file mode 100644
index 000000000000..7a471fb632bf
--- /dev/null
+++ b/media-video/pipewire/pipewire-0.3.80.ebuild
@@ -0,0 +1,475 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# 1. Please regularly check (even at the point of bumping) Fedora's packaging
+# for needed backports at https://src.fedoraproject.org/rpms/pipewire/tree/rawhide.
+#
+# 2. Upstream also sometimes amend release notes for the previous release to mention
+# needed patches, e.g. https://gitlab.freedesktop.org/pipewire/pipewire/-/tags/0.3.55#distros
+#
+# 3. Keep an eye on git master (for both PipeWire and WirePlumber) as things
+# continue to move quickly. It's not uncommon for fixes to be made shortly
+# after releases.
+
+PYTHON_COMPAT=( python3_{10..12} )
+
+inherit flag-o-matic meson-multilib optfeature prefix python-any-r1 systemd tmpfiles udev
+
+if [[ ${PV} == 9999 ]]; then
+ EGIT_REPO_URI="https://gitlab.freedesktop.org/${PN}/${PN}.git"
+ inherit git-r3
+else
+ if [[ ${PV} == *_p* ]] ; then
+ MY_COMMIT=""
+ SRC_URI="https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/${MY_COMMIT}/pipewire-${MY_COMMIT}.tar.bz2 -> ${P}.tar.bz2"
+ S="${WORKDIR}"/${PN}-${MY_COMMIT}
+ else
+ SRC_URI="https://gitlab.freedesktop.org/${PN}/${PN}/-/archive/${PV}/${P}.tar.bz2"
+ fi
+
+ KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+fi
+
+DESCRIPTION="Multimedia processing graphs"
+HOMEPAGE="https://pipewire.org/"
+
+LICENSE="MIT LGPL-2.1+ GPL-2"
+# ABI was broken in 0.3.42 for https://gitlab.freedesktop.org/pipewire/wireplumber/-/issues/49
+SLOT="0/0.4"
+IUSE="bluetooth dbus doc echo-cancel extra ffmpeg flatpak gstreamer gsettings ieee1394 jack-client jack-sdk liblc3 lv2"
+IUSE+=" modemmanager pipewire-alsa readline roc sound-server ssl system-service systemd test v4l X zeroconf"
+
+# 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)!
+
+# - TODO: There should be "sound-server? ( || ( alsa bluetooth ) )" here, but ALSA is always enabled
+# - TODO: Pulseaudio alsa plugin performs runtime check that pulseaudio server connection will work
+# which provides adequate guarantee that alsa-lib will be able to provide audio services.
+# If that works, pulseaudio defaults are loaded into alsa-lib runtime replacing default PCM and CTL.
+# When pipewire-alsa will be able to perform similar check, pipewire-alsa can be enabled unconditionally.
+# - ffmpeg is only used for pw-cat. We don't build the spa plugin which receives barely any activity.
+REQUIRED_USE="
+ ffmpeg? ( extra )
+ bluetooth? ( dbus )
+ jack-sdk? ( !jack-client )
+ modemmanager? ( bluetooth )
+ system-service? ( systemd )
+ !sound-server? ( !pipewire-alsa )
+ jack-client? ( dbus )
+"
+
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ >=dev-util/meson-0.59
+ virtual/pkgconfig
+ ${PYTHON_DEPS}
+ $(python_gen_any_dep 'dev-python/docutils[${PYTHON_USEDEP}]')
+ dbus? ( dev-util/gdbus-codegen )
+ doc? (
+ app-doc/doxygen
+ media-gfx/graphviz
+ )
+"
+# While udev could technically be optional, it's needed for a numebr of options,
+# and not really worth it, bug #877769.
+RDEPEND="
+ acct-group/audio
+ acct-group/pipewire
+ media-libs/alsa-lib
+ sys-libs/ncurses:=[unicode(+)]
+ virtual/libintl[${MULTILIB_USEDEP}]
+ virtual/libudev[${MULTILIB_USEDEP}]
+ bluetooth? (
+ dev-libs/glib
+ media-libs/fdk-aac
+ media-libs/libldac
+ media-libs/libfreeaptx
+ media-libs/opus
+ media-libs/sbc
+ >=net-wireless/bluez-4.101:=
+ virtual/libusb:1
+ )
+ dbus? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
+ echo-cancel? ( media-libs/webrtc-audio-processing:0 )
+ extra? ( >=media-libs/libsndfile-1.0.20 )
+ ffmpeg? ( media-video/ffmpeg:= )
+ flatpak? ( dev-libs/glib )
+ gstreamer? (
+ >=dev-libs/glib-2.32.0:2
+ >=media-libs/gstreamer-1.10.0:1.0
+ media-libs/gst-plugins-base:1.0
+ )
+ gsettings? ( >=dev-libs/glib-2.26.0:2 )
+ ieee1394? ( media-libs/libffado[${MULTILIB_USEDEP}] )
+ jack-client? ( >=media-sound/jack2-1.9.10:2[dbus] )
+ jack-sdk? (
+ !media-sound/jack-audio-connection-kit
+ !media-sound/jack2
+ )
+ liblc3? ( media-sound/liblc3 )
+ lv2? ( media-libs/lilv )
+ modemmanager? ( >=net-misc/modemmanager-1.10.0 )
+ pipewire-alsa? ( >=media-libs/alsa-lib-1.1.7[${MULTILIB_USEDEP}] )
+ sound-server? ( !media-sound/pulseaudio-daemon )
+ roc? ( media-libs/roc-toolkit )
+ readline? ( sys-libs/readline:= )
+ ssl? ( dev-libs/openssl:= )
+ systemd? ( sys-apps/systemd )
+ system-service? ( acct-user/pipewire )
+ v4l? ( media-libs/libv4l )
+ X? (
+ media-libs/libcanberra
+ x11-libs/libX11
+ x11-libs/libXfixes
+ )
+ zeroconf? ( net-dns/avahi )
+"
+
+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-0.4.8-r3"
+
+# 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-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
+)
+
+python_check_deps() {
+ python_has_version "dev-python/docutils[${PYTHON_USEDEP}]"
+}
+
+src_prepare() {
+ default
+
+ # Used for upstream backports
+ [[ -d "${FILESDIR}"/${PV} ]] && eapply "${FILESDIR}"/${PV}
+}
+
+multilib_src_configure() {
+ # https://bugs.gentoo.org/838301
+ filter-flags -fno-semantic-interposition
+
+ local emesonargs=(
+ -Ddocdir="${EPREFIX}"/usr/share/doc/${PF}
+
+ $(meson_feature dbus)
+ $(meson_native_use_feature zeroconf avahi)
+ $(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_feature ieee1394 libffado)
+ $(meson_native_use_feature gstreamer)
+ $(meson_native_use_feature gstreamer gstreamer-device-provider)
+ $(meson_native_use_feature gsettings)
+ $(meson_native_use_feature systemd)
+
+ $(meson_native_use_feature system-service systemd-system-service)
+ -Dsystemd-system-unit-dir="$(systemd_get_systemunitdir)"
+ -Dsystemd-user-unit-dir="$(systemd_get_userunitdir)"
+
+ $(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)
+ -Dcompress-offload=disabled # TODO: tinycompress unpackaged
+ -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)
+ # https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1379
+ $(meson_native_use_feature modemmanager bluez5-backend-native-mm)
+ $(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 bluetooth opus)
+ $(meson_native_use_feature bluetooth bluez5-codec-opus)
+ $(meson_native_use_feature bluetooth libusb) # At least for now only used by bluez5 native (quirk detection of adapters)
+ $(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
+ $(meson_native_use_feature ffmpeg pw-cat-ffmpeg)
+ $(meson_native_use_feature flatpak)
+ -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
+ -Dbluez5-codec-lc3plus=disabled # unpackaged
+ $(meson_native_use_feature liblc3 bluez5-codec-lc3)
+ $(meson_native_use_feature lv2)
+ $(meson_native_use_feature v4l v4l2)
+ -Dlibcamera=disabled # libcamera is not in Portage tree
+ $(meson_native_use_feature roc)
+ $(meson_native_use_feature readline)
+ $(meson_native_use_feature ssl raop)
+ -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)
+ -Dlibmysofa=disabled # libmysofa is unpackaged
+ $(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
+
+ # We still have <5.16 kernels packaged in Gentoo and 6.1 (LTS) only
+ # just became stable, with 5.15 being the previous LTS. Many people
+ # are still on it.
+ -Dpam-defaults-install=true
+
+ # Just for bell sounds in X11 right now.
+ $(meson_native_use_feature X x11)
+ $(meson_native_use_feature X x11-xfixes)
+ $(meson_native_use_feature X libcanberra)
+ )
+
+ meson_src_configure
+}
+
+multilib_src_test() {
+ meson_src_test --timeout-multiplier 10
+}
+
+multilib_src_install() {
+ # Our custom DOCS do not exist in multilib source directory
+ DOCS= meson_src_install
+}
+
+multilib_src_install_all() {
+ einstalldocs
+
+ if use pipewire-alsa; then
+ dodir /etc/alsa/conf.d
+
+ # Install pipewire conf loader hook
+ insinto /usr/share/alsa/alsa.conf.d
+ doins "${FILESDIR}"/99-pipewire-default-hook.conf
+ eprefixify "${ED}"/usr/share/alsa/alsa.conf.d/99-pipewire-default-hook.conf
+
+ # 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-hook.conf /etc/alsa/conf.d/99-pipewire-default-hook.conf
+ fi
+
+ # Enable required wireplumber alsa and bluez monitors
+ if use sound-server; then
+ dodir /etc/wireplumber/main.lua.d
+ echo "alsa_monitor.enabled = true" > "${ED}"/etc/wireplumber/main.lua.d/89-gentoo-sound-server-enable-alsa-monitor.lua || die
+
+ dodir /etc/wireplumber/bluetooth.lua.d
+ echo "bluez_monitor.enabled = true" > "${ED}"/etc/wireplumber/bluetooth.lua.d/89-gentoo-sound-server-enable-bluez-monitor.lua || die
+ fi
+
+ if use system-service; then
+ newtmpfiles - pipewire.conf <<-EOF || die
+ d /run/pipewire 0755 pipewire pipewire - -
+ EOF
+ fi
+
+ if ! use systemd; then
+ insinto /etc/xdg/autostart
+ newins "${FILESDIR}"/pipewire.desktop-r2 pipewire.desktop
+
+ exeinto /usr/bin
+ newexe "${FILESDIR}"/gentoo-pipewire-launcher.in-r3 gentoo-pipewire-launcher
+
+ doman "${FILESDIR}"/gentoo-pipewire-launcher.1
+
+ # Disable pipewire-pulse if sound-server is disabled.
+ if ! use sound-server ; then
+ sed -i -s '/pipewire -c pipewire-pulse.conf/s/^/#/' "${ED}"/usr/bin/gentoo-pipewire-launcher || die
+ fi
+
+ eprefixify "${ED}"/usr/bin/gentoo-pipewire-launcher
+ fi
+}
+
+pkg_postrm() {
+ udev_reload
+}
+
+pkg_preinst() {
+ HAD_SOUND_SERVER=0
+ HAD_SYSTEM_SERVICE=0
+
+ if has_version "media-video/pipewire[sound-server(-)]" ; then
+ HAD_SOUND_SERVER=1
+ fi
+
+ if has_version "media-video/pipewire[system-service(-)]" ; then
+ HAD_SYSTEM_SERVICE=1
+ fi
+}
+
+pkg_postinst() {
+ udev_reload
+
+ use system-service && tmpfiles_process pipewire.conf
+
+ local ver
+ for ver in ${REPLACING_VERSIONS} ; do
+ if has_version kde-plasma/kwin[screencast] || has_version x11-wm/mutter[screencast] ; then
+ # https://bugs.gentoo.org/908490
+ # https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3243
+ ewarn "Please restart KWin/Mutter after upgrading PipeWire."
+ ewarn "Screencasting may not work until you do."
+ fi
+
+ if ver_test ${ver} -le 0.3.66-r1 ; then
+ elog ">=pipewire-0.3.66 uses the 'pipewire' group to manage permissions"
+ elog "and limits needed to function smoothly:"
+ elog
+ elog "1. Please make sure your user is in the 'pipewire' group for"
+ elog "the best experience with realtime scheduling (PAM limits behavior)!"
+ elog "You can add your account with:"
+ elog " usermod -aG pipewire <youruser>"
+ elog
+ elog "2. For the best experience with fast user switching, it is recommended"
+ elog "that you remove your user from the 'audio' group unless you rely on the"
+ elog "audio group for device access control or ACLs.:"
+ elog " usermod -rG audio <youruser>"
+ elog
+
+ if ! use jack-sdk ; then
+ elog
+ 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 <application> 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
+ ewarn
+ 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
+ fi
+
+ if use sound-server && ( has_version 'media-sound/pulseaudio[daemon]' || has_version 'media-sound/pulseaudio-daemon' ) ; then
+ elog
+ elog "This ebuild auto-enables PulseAudio replacement. Because of that, users"
+ elog "are recommended to edit pulseaudio client configuration files:"
+ elog "${EROOT}/etc/pulse/client.conf and ${EROOT}/etc/pulse/client.conf.d/enable-autospawn.conf"
+ elog "if it exists, and disable 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
+
+ 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 ofono"
+ else
+ ewarn "rc-update delete ofono"
+ fi
+ fi
+ fi
+ done
+
+ if [[ ${HAD_SOUND_SERVER} -eq 0 || -z ${REPLACING_VERSIONS} ]] ; then
+ # TODO: We could drop most of this if we set up systemd presets?
+ # They're worth looking into because right now, the out-of-the-box experience
+ # is automatic on OpenRC, while it needs manual intervention on systemd.
+ if use sound-server && use systemd ; then
+ elog
+ elog "When switching from PulseAudio, you may need to disable PulseAudio:"
+ elog
+ elog " systemctl --user disable pulseaudio.service pulseaudio.socket"
+ elog
+ elog "To use PipeWire, 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 pipewire.socket pipewire-pulse.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 disable pipewire-media-session.service"
+ elog " systemctl --user --force enable wireplumber.service"
+ elog
+ elog "Root user may replace --user with --global to change system default"
+ elog "configuration for all of the above commands."
+ elog
+ fi
+
+ if ! use sound-server ; then
+ ewarn
+ ewarn "USE=sound-server is disabled! If you want PipeWire to provide"
+ ewarn "your sound, please enable it. See the wiki at"
+ ewarn "https://wiki.gentoo.org/wiki/PipeWire#Replacing_PulseAudio"
+ ewarn "for more details."
+ ewarn
+ fi
+ fi
+
+ if use system-service && [[ ${HAD_SYSTEM_SERVICE} -eq 0 || -z ${REPLACING_VERSIONS} ]] ; then
+ ewarn
+ ewarn "You have enabled the system-service USE flag, which installs"
+ ewarn "the system-wide systemd units that enable PipeWire to run as a system"
+ ewarn "service. This is more than likely NOT what you want. You are strongly"
+ ewarn "advised not to enable this mode and instead stick with systemd user"
+ ewarn "units. The default configuration files will likely not work out of the"
+ ewarn "box, and you are on your own with configuration."
+ ewarn
+ 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 use sound-server && ! use pipewire-alsa; then
+ optfeature "ALSA plugin to use PulseAudio interface for output" "media-plugins/alsa-plugins[pulseaudio]"
+ fi
+}
diff --git a/media-video/pipewire/pipewire-9999.ebuild b/media-video/pipewire/pipewire-9999.ebuild
index bcdc4725ecd4..7a471fb632bf 100644
--- a/media-video/pipewire/pipewire-9999.ebuild
+++ b/media-video/pipewire/pipewire-9999.ebuild
@@ -13,7 +13,7 @@ EAPI=8
# continue to move quickly. It's not uncommon for fixes to be made shortly
# after releases.
-PYTHON_COMPAT=( python3_{9..11} )
+PYTHON_COMPAT=( python3_{10..12} )
inherit flag-o-matic meson-multilib optfeature prefix python-any-r1 systemd tmpfiles udev
@@ -38,8 +38,8 @@ HOMEPAGE="https://pipewire.org/"
LICENSE="MIT LGPL-2.1+ GPL-2"
# ABI was broken in 0.3.42 for https://gitlab.freedesktop.org/pipewire/wireplumber/-/issues/49
SLOT="0/0.4"
-IUSE="bluetooth dbus doc echo-cancel extra ffmpeg flatpak gstreamer gsettings jack-client jack-sdk lv2
-modemmanager pipewire-alsa readline sound-server ssl system-service systemd test v4l X zeroconf"
+IUSE="bluetooth dbus doc echo-cancel extra ffmpeg flatpak gstreamer gsettings ieee1394 jack-client jack-sdk liblc3 lv2"
+IUSE+=" modemmanager pipewire-alsa readline roc sound-server ssl system-service systemd test v4l X zeroconf"
# Once replacing system JACK libraries is possible, it's likely that
# jack-client IUSE will need blocking to avoid users accidentally
@@ -97,41 +97,31 @@ RDEPEND="
)
dbus? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
echo-cancel? ( media-libs/webrtc-audio-processing:0 )
- extra? (
- >=media-libs/libsndfile-1.0.20
- )
+ extra? ( >=media-libs/libsndfile-1.0.20 )
ffmpeg? ( media-video/ffmpeg:= )
- flatpak? (
- dev-libs/glib
- )
+ flatpak? ( dev-libs/glib )
gstreamer? (
>=dev-libs/glib-2.32.0:2
>=media-libs/gstreamer-1.10.0:1.0
media-libs/gst-plugins-base:1.0
)
- gsettings? (
- >=dev-libs/glib-2.26.0:2
- )
+ gsettings? ( >=dev-libs/glib-2.26.0:2 )
+ ieee1394? ( media-libs/libffado[${MULTILIB_USEDEP}] )
jack-client? ( >=media-sound/jack2-1.9.10:2[dbus] )
jack-sdk? (
!media-sound/jack-audio-connection-kit
!media-sound/jack2
)
+ liblc3? ( media-sound/liblc3 )
lv2? ( media-libs/lilv )
modemmanager? ( >=net-misc/modemmanager-1.10.0 )
- pipewire-alsa? (
- >=media-libs/alsa-lib-1.1.7[${MULTILIB_USEDEP}]
- )
- sound-server? (
- !media-sound/pulseaudio[daemon(+)]
- !media-sound/pulseaudio-daemon
- )
+ pipewire-alsa? ( >=media-libs/alsa-lib-1.1.7[${MULTILIB_USEDEP}] )
+ sound-server? ( !media-sound/pulseaudio-daemon )
+ roc? ( media-libs/roc-toolkit )
readline? ( sys-libs/readline:= )
ssl? ( dev-libs/openssl:= )
systemd? ( sys-apps/systemd )
- system-service? (
- acct-user/pipewire
- )
+ system-service? ( acct-user/pipewire )
v4l? ( media-libs/libv4l )
X? (
media-libs/libcanberra
@@ -187,6 +177,7 @@ multilib_src_configure() {
$(meson_native_enabled man)
$(meson_feature test tests)
-Dinstalled_tests=disabled # Matches upstream; Gentoo never installs tests
+ $(meson_feature ieee1394 libffado)
$(meson_native_use_feature gstreamer)
$(meson_native_use_feature gstreamer gstreamer-device-provider)
$(meson_native_use_feature gsettings)
@@ -213,13 +204,10 @@ multilib_src_configure() {
$(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 bluetooth opus)
$(meson_native_use_feature bluetooth bluez5-codec-opus)
$(meson_native_use_feature bluetooth libusb) # At least for now only used by bluez5 native (quirk detection of adapters)
$(meson_native_use_feature echo-cancel echo-cancel-webrtc) #807889
- # Not yet packaged.
- # http://www.bluez.org/le-audio-support-in-pipewire/
- -Dbluez5-codec-lc3=disabled
- -Dbluez5-codec-lc3plus=disabled
-Dcontrol=enabled # Matches upstream
-Daudiotestsrc=enabled # Matches upstream
-Dffmpeg=disabled # Disabled by upstream and no major developments to spa/plugins/ffmpeg/ since May 2020
@@ -232,9 +220,12 @@ multilib_src_configure() {
-Dsupport=enabled # Miscellaneous/common plugins, such as null sink
-Devl=disabled # Matches upstream
-Dtest=disabled # fakesink and fakesource plugins
+ -Dbluez5-codec-lc3plus=disabled # unpackaged
+ $(meson_native_use_feature liblc3 bluez5-codec-lc3)
$(meson_native_use_feature lv2)
$(meson_native_use_feature v4l v4l2)
-Dlibcamera=disabled # libcamera is not in Portage tree
+ $(meson_native_use_feature roc)
$(meson_native_use_feature readline)
$(meson_native_use_feature ssl raop)
-Dvideoconvert=enabled # Matches upstream
@@ -306,10 +297,12 @@ multilib_src_install_all() {
if ! use systemd; then
insinto /etc/xdg/autostart
- newins "${FILESDIR}"/pipewire.desktop-r1 pipewire.desktop
+ newins "${FILESDIR}"/pipewire.desktop-r2 pipewire.desktop
exeinto /usr/bin
- newexe "${FILESDIR}"/gentoo-pipewire-launcher.in gentoo-pipewire-launcher
+ newexe "${FILESDIR}"/gentoo-pipewire-launcher.in-r3 gentoo-pipewire-launcher
+
+ doman "${FILESDIR}"/gentoo-pipewire-launcher.1
# Disable pipewire-pulse if sound-server is disabled.
if ! use sound-server ; then
@@ -344,6 +337,13 @@ pkg_postinst() {
local ver
for ver in ${REPLACING_VERSIONS} ; do
+ if has_version kde-plasma/kwin[screencast] || has_version x11-wm/mutter[screencast] ; then
+ # https://bugs.gentoo.org/908490
+ # https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3243
+ ewarn "Please restart KWin/Mutter after upgrading PipeWire."
+ ewarn "Screencasting may not work until you do."
+ fi
+
if ver_test ${ver} -le 0.3.66-r1 ; then
elog ">=pipewire-0.3.66 uses the 'pipewire' group to manage permissions"
elog "and limits needed to function smoothly:"
@@ -414,6 +414,8 @@ pkg_postinst() {
if [[ ${HAD_SOUND_SERVER} -eq 0 || -z ${REPLACING_VERSIONS} ]] ; then
# TODO: We could drop most of this if we set up systemd presets?
+ # They're worth looking into because right now, the out-of-the-box experience
+ # is automatic on OpenRC, while it needs manual intervention on systemd.
if use sound-server && use systemd ; then
elog
elog "When switching from PulseAudio, you may need to disable PulseAudio:"
diff --git a/media-video/pitivi/Manifest b/media-video/pitivi/Manifest
index 5bba247d761b..51b2a1bfe3c9 100644
--- a/media-video/pitivi/Manifest
+++ b/media-video/pitivi/Manifest
@@ -1 +1 @@
-DIST pitivi-2022.06.tar.xz 11352412 BLAKE2B f7d14f9bff136a8b50c0ce82e66fad92ba7df429d8cf588c526ae04f673617d882a0cc024c5a21c97471d2b31cb0001cefdeb8e32c9f62e1c6600d9500d1e428 SHA512 649c8e61d9545cbf35a0a0c8f648490c14c8bfb6c6637794887c03bffd6998c63cb2cc22102cd2f7a59974f79488a13f29beceadab29ddd1c1c01abff33a85fa
+DIST pitivi-2023.03.tar.xz 11347576 BLAKE2B ff9ff391d2739a4b1617ab010defd63b39f575901297fae427a797cfcffefb58c33a86642fa4d364d681805697d1c31b91fbafa1e810ec9a65030d7f7575f274 SHA512 505c011bb375fcce250a46c958ef06d050f83e73fa41a66f8ba3be6a41332a4a05838b8245233f481146edae9af924b618901b7ed0600f642ebe550c151f52b0
diff --git a/media-video/pitivi/pitivi-2022.06.ebuild b/media-video/pitivi/pitivi-2023.03-r1.ebuild
index 7dacc21dc1ef..8b3d98b8e913 100644
--- a/media-video/pitivi/pitivi-2022.06.ebuild
+++ b/media-video/pitivi/pitivi-2023.03-r1.ebuild
@@ -43,6 +43,7 @@ RDEPEND="${COMMON_DEPEND}
dev-python/matplotlib[${PYTHON_USEDEP}]
dev-python/numpy[${PYTHON_USEDEP}]
>=dev-python/pygobject-3.8:3[${PYTHON_USEDEP}]
+ >=dev-python/scipy-1.9.3[${PYTHON_USEDEP}]
')
gnome-base/librsvg:=
@@ -65,7 +66,6 @@ BDEPEND="
$(python_gen_cond_dep '
dev-python/setuptools[${PYTHON_USEDEP}]
')
- >=dev-util/intltool-0.35.5
dev-util/itstool
sys-devel/gettext
virtual/pkgconfig
diff --git a/media-video/qmplay2/Manifest b/media-video/qmplay2/Manifest
index 6e61c851eee9..d2b3e79d5426 100644
--- a/media-video/qmplay2/Manifest
+++ b/media-video/qmplay2/Manifest
@@ -1,2 +1,2 @@
-DIST QMPlay2-src-22.10.23.tar.xz 1414804 BLAKE2B c0db1187538be8ab0806abd41fbfdae5a71dda450505af1956989a3ccc10fa52997b8652f280cd66837d12a84a7a058783b65df3d4bd35665c92f1262cd8d004 SHA512 80c9408a9085084857b5b433f009bf62784cf73ceb90218ec09132be227aae97136095811ffa1211375dcbfc1f51cbefaa3690c56fc8df51d9b1cf022ce0709f
-DIST QMPlay2-src-23.02.05.tar.xz 1428992 BLAKE2B 7296ed089306e50e1051c33c23dae30f14cbb166b9d9ea8c184e8aa027a261a658e1d7770c7d574784a5cde4890c66e2104927f4473f484562378c956bea4b3f SHA512 d2e998a2df08c98b7e0232de693ee17b5c703793e2b1edadde300ca39998f40f7ad58b5850ee1f8cddf1dd9489c7f96e664db7e9deba01a612d97707aad849c0
+DIST QMPlay2-src-23.08.22.tar.xz 1440292 BLAKE2B 9f563f1deaa65f8d452d7536a0c2b10f2ca74f8ac39318922bfe2e04feaad88f02234ba8efe0b110f7885383c212f857b20e6275a417d663af5c8911fd90412c SHA512 19648080f9bf7c7c982b637e2c1a5eeec7390604eee0e98dca96cf710f0df8e7ab71ac95bae64d01a5407357880467e05b0f91561f1f4b8f72773c85a5dba1ea
+DIST QMPlay2-src-23.09.05.tar.xz 1441076 BLAKE2B b3c0140bdb17b8dab079f3706e35f635d481e8e639c60145088a592c4e70ba760e6574d0febc96cdb7e38fc40585ff34d762319769c99043a295bb72e42bb8bc SHA512 9e214b58b14f1954f11ca85c4a06661da339df3724f9bede57e3c543a07df0c73dba4e9547a5d57c8c1fc2315d3ee51502ba9a22afca30e893a51424bc2a815e
diff --git a/media-video/qmplay2/files/qmplay2-22.10.23-fix-includes.patch b/media-video/qmplay2/files/qmplay2-22.10.23-fix-includes.patch
deleted file mode 100644
index eb77927f6ea9..000000000000
--- a/media-video/qmplay2/files/qmplay2-22.10.23-fix-includes.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-https://github.com/zaps166/QMPlay2/pull/541
-
-fix include memory with USE_VULKAN=OFF
-
-Those header files are using std::shared_ptr from memory header even
-when USE_VULKAN is OFF, so we must include them unconditionally.
-
-Signed-off-by: Arthur Zamarin <arthurzam@gentoo.org>
---- a/src/qmplay2/LibASS.hpp
-+++ b/src/qmplay2/LibASS.hpp
-@@ -23,6 +23,7 @@
- #include <QByteArray>
- #include <QList>
-
-+#include <memory>
- #include <set>
-
- class Settings;
-@@ -35,7 +36,6 @@ struct ass_renderer;
- struct ass_image;
-
- #ifdef USE_VULKAN
--#include <memory>
- namespace QmVk {
- class BufferPool;
- }
---- a/src/qmplay2/QMPlay2OSD.hpp
-+++ b/src/qmplay2/QMPlay2OSD.hpp
-@@ -25,14 +25,13 @@
- #include <QRect>
-
- #include <functional>
-+#include <memory>
- #include <vector>
- #include <mutex>
-
- #ifdef USE_VULKAN
- # include <QVector4D>
-
--# include <memory>
--
- namespace QmVk {
-
- class Buffer;
diff --git a/media-video/qmplay2/metadata.xml b/media-video/qmplay2/metadata.xml
index fc1a5ebde4be..061f7e97eba9 100644
--- a/media-video/qmplay2/metadata.xml
+++ b/media-video/qmplay2/metadata.xml
@@ -23,6 +23,5 @@
<flag name="shaders">Compile Vulkan shaders using <pkg>media-libs/shaderc</pkg></flag>
<flag name="videofilters">Build with VideoFilters module</flag>
<flag name="visualizations">Build with Visualizations module</flag>
- <flag name="vulkan">Build with Vulkan support</flag>
</use>
</pkgmetadata>
diff --git a/media-video/qmplay2/qmplay2-22.10.23.ebuild b/media-video/qmplay2/qmplay2-23.08.22.ebuild
index 1ef2e8a50818..4c9184782dc4 100644
--- a/media-video/qmplay2/qmplay2-22.10.23.ebuild
+++ b/media-video/qmplay2/qmplay2-23.08.22.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -14,61 +14,60 @@ if [[ ${PV} == *9999 ]]; then
else
SRC_URI="https://github.com/zaps166/QMPlay2/releases/download/${PV}/QMPlay2-src-${PV}.tar.xz"
S="${WORKDIR}/QMPlay2-src-${PV}"
- KEYWORDS="~amd64 ~x86"
+ KEYWORDS="~amd64"
fi
LICENSE="LGPL-3"
SLOT="0"
IUSE="avdevice +audiofilters +alsa cdio cuvid extensions gme inputs libass
- modplug notifications opengl pipewire portaudio pulseaudio sid shaders
- +taglib vaapi vdpau videofilters visualizations vulkan xv"
+ modplug notifications opengl pipewire portaudio pulseaudio +qt5 qt6 sid
+ shaders +taglib vaapi vdpau videofilters visualizations vulkan xv"
REQUIRED_USE="
audiofilters? ( || ( alsa pipewire portaudio pulseaudio ) )
- shaders? ( vulkan )"
+ shaders? ( vulkan )
+ ^^ ( qt5 qt6 )
+"
RDEPEND="
- dev-qt/qtcore:5
- dev-qt/qtdbus:5
- dev-qt/qtsvg:5
- dev-qt/qtwidgets:5
- dev-qt/qtx11extras:5
- media-video/ffmpeg
- || (
- dev-qt/qtgui:5[X(-)]
- dev-qt/qtgui:5[xcb(-)]
+ qt5? (
+ dev-qt/qtcore:5
+ dev-qt/qtdbus:5
+ dev-qt/qtgui:5[X(-),vulkan?]
+ dev-qt/qtsvg:5
+ dev-qt/qtwidgets:5
+ dev-qt/qtx11extras:5
+ extensions? ( dev-qt/qtdeclarative:5 )
+ videofilters? ( dev-qt/qtconcurrent:5 )
+ )
+ qt6? (
+ dev-qt/qtbase:6[concurrent,dbus,gui,network,opengl?,ssl,vulkan?,widgets]
+ dev-qt/qt5compat:6
+ dev-qt/qtsvg:6
+ extensions? ( dev-qt/qtdeclarative:6 )
)
+ media-video/ffmpeg:=[vaapi?,vdpau?]
alsa? ( media-libs/alsa-lib )
cdio? ( dev-libs/libcdio[cddb] )
- extensions? ( dev-qt/qtdeclarative:5 )
gme? ( media-libs/game-music-emu )
libass? ( media-libs/libass )
opengl? ( virtual/opengl )
pipewire? ( media-video/pipewire )
portaudio? ( media-libs/portaudio )
- pulseaudio? ( media-sound/pulseaudio )
+ pulseaudio? ( media-libs/libpulse )
sid? ( media-libs/libsidplayfp )
shaders? ( >=media-libs/shaderc-2020.1 )
taglib? ( media-libs/taglib )
- vaapi? (
- >=media-video/ffmpeg-4.1.3[vaapi]
- media-libs/libva[X]
- )
- vdpau? ( media-video/ffmpeg[vdpau] )
- videofilters? ( dev-qt/qtconcurrent:5 )
- vulkan? (
- >=dev-qt/qtgui-5.14.1:5[vulkan]
- >=media-libs/vulkan-loader-1.2.133
- )
+ vaapi? ( media-libs/libva[X] )
+ vulkan? ( >=media-libs/vulkan-loader-1.2.133 )
xv? ( x11-libs/libXv )
"
DEPEND="${RDEPEND}"
-BDEPEND="dev-qt/linguist-tools:5"
-
-PATCHES=(
- "${FILESDIR}/${P}-fix-includes.patch"
-)
+BDEPEND="
+ qt5? ( dev-qt/linguist-tools:5 )
+ qt6? ( dev-qt/qttools:6[linguist] )
+"
src_prepare() {
# disable compress man pages
@@ -82,6 +81,7 @@ src_prepare() {
src_configure() {
local mycmakeargs=(
+ -DBUILD_WITH_QT6=$(usex qt6)
# core
-DUSE_LINK_TIME_OPTIMIZATION=false
-DUSE_UPDATES=OFF
diff --git a/media-video/qmplay2/qmplay2-23.02.05.ebuild b/media-video/qmplay2/qmplay2-23.09.05.ebuild
index 83acd1b1df36..961b70b140c8 100644
--- a/media-video/qmplay2/qmplay2-23.02.05.ebuild
+++ b/media-video/qmplay2/qmplay2-23.09.05.ebuild
@@ -14,57 +14,59 @@ if [[ ${PV} == *9999 ]]; then
else
SRC_URI="https://github.com/zaps166/QMPlay2/releases/download/${PV}/QMPlay2-src-${PV}.tar.xz"
S="${WORKDIR}/QMPlay2-src-${PV}"
- KEYWORDS="~amd64 ~x86"
+ KEYWORDS="~amd64"
fi
LICENSE="LGPL-3"
SLOT="0"
IUSE="avdevice +audiofilters +alsa cdio cuvid extensions gme inputs libass
- modplug notifications opengl pipewire portaudio pulseaudio sid shaders
- +taglib vaapi vdpau videofilters visualizations vulkan xv"
+ modplug notifications opengl pipewire portaudio pulseaudio qt6 sid
+ shaders +taglib vaapi vdpau videofilters visualizations vulkan xv"
REQUIRED_USE="
audiofilters? ( || ( alsa pipewire portaudio pulseaudio ) )
- shaders? ( vulkan )"
+ shaders? ( vulkan )
+"
RDEPEND="
- dev-qt/qtcore:5
- dev-qt/qtdbus:5
- dev-qt/qtsvg:5
- dev-qt/qtwidgets:5
- dev-qt/qtx11extras:5
- media-video/ffmpeg
- || (
- dev-qt/qtgui:5[X(-)]
- dev-qt/qtgui:5[xcb(-)]
+ media-video/ffmpeg:=[vaapi?,vdpau?]
+ !qt6? (
+ dev-qt/qtcore:5
+ dev-qt/qtdbus:5
+ dev-qt/qtgui:5[X(-),vulkan?]
+ dev-qt/qtsvg:5
+ dev-qt/qtwidgets:5
+ dev-qt/qtx11extras:5
+ extensions? ( dev-qt/qtdeclarative:5 )
+ videofilters? ( dev-qt/qtconcurrent:5 )
+ )
+ qt6? (
+ dev-qt/qtbase:6[concurrent,dbus,gui,network,opengl?,ssl,vulkan?,widgets]
+ dev-qt/qt5compat:6
+ dev-qt/qtsvg:6
+ extensions? ( dev-qt/qtdeclarative:6 )
)
alsa? ( media-libs/alsa-lib )
cdio? ( dev-libs/libcdio[cddb] )
- extensions? ( dev-qt/qtdeclarative:5 )
gme? ( media-libs/game-music-emu )
libass? ( media-libs/libass )
opengl? ( virtual/opengl )
pipewire? ( media-video/pipewire )
portaudio? ( media-libs/portaudio )
- pulseaudio? ( media-sound/pulseaudio )
+ pulseaudio? ( media-libs/libpulse )
sid? ( media-libs/libsidplayfp )
shaders? ( >=media-libs/shaderc-2020.1 )
taglib? ( media-libs/taglib )
- vaapi? (
- >=media-video/ffmpeg-4.1.3[vaapi]
- media-libs/libva[X]
- )
- vdpau? ( media-video/ffmpeg[vdpau] )
- videofilters? ( dev-qt/qtconcurrent:5 )
- vulkan? (
- >=dev-qt/qtgui-5.14.1:5[vulkan]
- >=media-libs/vulkan-loader-1.2.133
- )
+ vaapi? ( media-libs/libva[X] )
+ vulkan? ( >=media-libs/vulkan-loader-1.2.133 )
xv? ( x11-libs/libXv )
"
DEPEND="${RDEPEND}"
-BDEPEND="dev-qt/linguist-tools:5"
+BDEPEND="
+ !qt6? ( dev-qt/linguist-tools:5 )
+ qt6? ( dev-qt/qttools:6[linguist] )
+"
src_prepare() {
# disable compress man pages
@@ -78,6 +80,7 @@ src_prepare() {
src_configure() {
local mycmakeargs=(
+ -DBUILD_WITH_QT6=$(usex qt6)
# core
-DUSE_LINK_TIME_OPTIMIZATION=false
-DUSE_UPDATES=OFF
diff --git a/media-video/qmplay2/qmplay2-9999.ebuild b/media-video/qmplay2/qmplay2-9999.ebuild
index dcf4fed040ad..961b70b140c8 100644
--- a/media-video/qmplay2/qmplay2-9999.ebuild
+++ b/media-video/qmplay2/qmplay2-9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -14,57 +14,59 @@ if [[ ${PV} == *9999 ]]; then
else
SRC_URI="https://github.com/zaps166/QMPlay2/releases/download/${PV}/QMPlay2-src-${PV}.tar.xz"
S="${WORKDIR}/QMPlay2-src-${PV}"
- KEYWORDS="~amd64 ~x86"
+ KEYWORDS="~amd64"
fi
LICENSE="LGPL-3"
SLOT="0"
IUSE="avdevice +audiofilters +alsa cdio cuvid extensions gme inputs libass
- modplug notifications opengl pipewire portaudio pulseaudio sid shaders
- +taglib vaapi vdpau videofilters visualizations vulkan xv"
+ modplug notifications opengl pipewire portaudio pulseaudio qt6 sid
+ shaders +taglib vaapi vdpau videofilters visualizations vulkan xv"
REQUIRED_USE="
audiofilters? ( || ( alsa pipewire portaudio pulseaudio ) )
- shaders? ( vulkan )"
+ shaders? ( vulkan )
+"
RDEPEND="
- dev-qt/qtcore:5
- dev-qt/qtdbus:5
- dev-qt/qtsvg:5
- dev-qt/qtwidgets:5
- dev-qt/qtx11extras:5
- media-video/ffmpeg
- || (
- dev-qt/qtgui:5[X(-)]
- dev-qt/qtgui:5[xcb(-)]
+ media-video/ffmpeg:=[vaapi?,vdpau?]
+ !qt6? (
+ dev-qt/qtcore:5
+ dev-qt/qtdbus:5
+ dev-qt/qtgui:5[X(-),vulkan?]
+ dev-qt/qtsvg:5
+ dev-qt/qtwidgets:5
+ dev-qt/qtx11extras:5
+ extensions? ( dev-qt/qtdeclarative:5 )
+ videofilters? ( dev-qt/qtconcurrent:5 )
+ )
+ qt6? (
+ dev-qt/qtbase:6[concurrent,dbus,gui,network,opengl?,ssl,vulkan?,widgets]
+ dev-qt/qt5compat:6
+ dev-qt/qtsvg:6
+ extensions? ( dev-qt/qtdeclarative:6 )
)
alsa? ( media-libs/alsa-lib )
cdio? ( dev-libs/libcdio[cddb] )
- extensions? ( dev-qt/qtdeclarative:5 )
gme? ( media-libs/game-music-emu )
libass? ( media-libs/libass )
opengl? ( virtual/opengl )
pipewire? ( media-video/pipewire )
portaudio? ( media-libs/portaudio )
- pulseaudio? ( media-sound/pulseaudio )
+ pulseaudio? ( media-libs/libpulse )
sid? ( media-libs/libsidplayfp )
shaders? ( >=media-libs/shaderc-2020.1 )
taglib? ( media-libs/taglib )
- vaapi? (
- >=media-video/ffmpeg-4.1.3[vaapi]
- media-libs/libva
- )
- vdpau? ( media-video/ffmpeg[vdpau] )
- videofilters? ( dev-qt/qtconcurrent:5 )
- vulkan? (
- >=dev-qt/qtgui-5.14.1:5[vulkan]
- >=media-libs/vulkan-loader-1.2.133
- )
+ vaapi? ( media-libs/libva[X] )
+ vulkan? ( >=media-libs/vulkan-loader-1.2.133 )
xv? ( x11-libs/libXv )
"
DEPEND="${RDEPEND}"
-BDEPEND="dev-qt/linguist-tools:5"
+BDEPEND="
+ !qt6? ( dev-qt/linguist-tools:5 )
+ qt6? ( dev-qt/qttools:6[linguist] )
+"
src_prepare() {
# disable compress man pages
@@ -78,6 +80,7 @@ src_prepare() {
src_configure() {
local mycmakeargs=(
+ -DBUILD_WITH_QT6=$(usex qt6)
# core
-DUSE_LINK_TIME_OPTIMIZATION=false
-DUSE_UPDATES=OFF
diff --git a/media-video/rav1e/Manifest b/media-video/rav1e/Manifest
index 43389a4836d4..2545a2d887a2 100644
--- a/media-video/rav1e/Manifest
+++ b/media-video/rav1e/Manifest
@@ -4,10 +4,12 @@ DIST adler-1.0.2.crate 12778 BLAKE2B a1dc17786adae945ac09d3525e609ed944e64656907
DIST adler32-1.2.0.crate 6411 BLAKE2B 51d44ccfd774158687b8244e83377e40ff896364e3d41e9015665131cc2a176d4ca0ab5a84df027dec0869ee735ee36f5687a06c1d2341de666070cdbab89483 SHA512 8ed72612fb78e213fc92963fdae0508ef26988656c939e6c9cddccbe2658d4a956a8ae934d9658262a8b2687dc446b3f1ee7614128b440487c81e606526dfda3
DIST aho-corasick-0.7.18.crate 112923 BLAKE2B 4f6947d1aacf89ccfab0592cdc55fa61ef09cea38231d3f758765dbce328a810c0b588be4ba96e81d64955379ee005722d22a7aec39caea6e72342245d7ca34f SHA512 7a23b16231a90d23ee60ad4c81bc225410599a4560d33d3a203138fc540c39cf1000100fed3aed40dcc371c3635656a3792545dca5dd1aefbde00d8774eebd00
DIST aho-corasick-0.7.20.crate 111440 BLAKE2B 3f5d54fea2793ce1c2c4d5b3049b910f45a5721e7538cb2557df63dc3069ab3f6b66aceb5e9a48f21c43ae29778fd045428ea103b2a6de81659e605e30e64ca6 SHA512 ad31f3d1b3fe41e593d4ca7e721bbad62936f2e6a17fd1e0997353edb6fc906d1bef2b79f0ac7c7676abe637bbabb23ff22059947be379a2441011f8178983c5
+DIST aho-corasick-1.0.1.crate 167320 BLAKE2B f148004140d4f705e93f448020b97c434b93fea6ae34fd74b1f394b076c2727a87f5ec54542a0f52822d716c10ada3c68ae8f50a46c455fc6e828b10b5650ecc SHA512 7cea5b2305b90aebc54f78446cfc91f275b1be8489d2d80c3baa9ff8b913f9b2296adbdf4aefb0d8fce8f57812963fb9450b200d133a9d61e100cef324068070
DIST anes-0.1.6.crate 23857 BLAKE2B 9ef464a964709b408c7d7846b9b1e54e52d6ae8f21f22ccfe509ef7197d4694f439084dbdb01fdf88829d181965ea9d1452253789a46fdf6d0520e3413c50d61 SHA512 f9dfaaca9ca327881ec30efaf24e208daae668b1e9d6963c8b0ca9f9fd13be777c793076a87980429f0dfa4db28ef5331ce6652a76da4d5a87485b23fc2fde29
DIST ansi_term-0.12.1.crate 24838 BLAKE2B f636772c34e2d68cda7b8d3b2b86abda074585a62bd2654812ce92384244655a9197fa66e6939e19a674c0148ca605313d83de262bb18c2339a8a4eb4438a791 SHA512 b840e28b3e7700689a69a39659b1e066560078dd4a58326b91a028915819e7af883399ee53e920db68fd974c58d35bb1ddf8d427af5937d5f696f57c4376b671
DIST anyhow-1.0.52.crate 44224 BLAKE2B 79d68d3390d27e0e27f9db784ad10b5d7845dec7949fbc722f944ef3988419acd72c509b44a4544e99bea5e57407da5b1ce40a96277d307fc408c958ea915c31 SHA512 b87e0b304daff85894c34060b97379d8e3d9be03078275313035c7142c76b3e59922b25924ac98a0b1b70fc98746eb174ca4b7ef33a26e115f294c1f1200aa6a
DIST anyhow-1.0.68.crate 43882 BLAKE2B 0ccd8fcb746344dfa85674fa7c95aa648aed8d40134b8c1c1c0852f6c7d22f5622ca1704ec65c254fc20946b1733299e1517364d74f726952d5a951ef89a2fe5 SHA512 b8cfc132ebeac823edf18cba7e335d1939fcbb095ed4ea859f4dc4cde5b1ff35fd68f0743577c69085f74f019768a3359936bf6dc1b2aceb7e2b28ace7f74a0f
+DIST anyhow-1.0.71.crate 43808 BLAKE2B 1ec6b440758e26b2328738bab7c6b1fe8670959793cc24f61cecd0d8b0ebe60b9855ee1cdac9b5f5a5b238daf796eae5b7c82b903e7c822a5625d95130f8b61f SHA512 401b1c5d04fa0581f303395fcb3af5e7684ead367e2a173b4d90db9c04ac20010c5330a686f3ba91a541e1526a7185091b7dbfddce5134b5a74cc749b0338da5
DIST aom-sys-0.3.0.crate 3064 BLAKE2B 210de17df81b78af866336bc4f3c00803d0c62a503809b288883fcf8bcfab6262b2bec35ab9fc8d8d4ec31d38665ca74069bf5f866daa8a2ab3f04c16ecc91de SHA512 9bb02069b5951dce34a445427f3c49c9995464213104786f0a800f7cb6629e5f6cfb5c4d736dce7963d1bdddee2cc8caf3cfa9df801d5a9cea93397aaf38b53f
DIST aom-sys-0.3.2.crate 3043 BLAKE2B edef684249c8e0fb6abfdc656c65e64d311aea2cd1b591044837be4061d89548533c0a1b88fd9349733a38ac97e29d760db27440632cab709ddfb6b455fd99d4 SHA512 0d08bd789cc52d7981dc1d01c98d5d075502bc29e23a851e51f609314d9ebde8d3cf13a32b7fc57290b83152e18b5b39ba946fc1f8a935cbaa8a6b9ec0998b0a
DIST arbitrary-0.4.7.crate 26282 BLAKE2B 1a304154926c9f24a80eced744f13379814377f067f8340672c2588edad22b26088b359b304c1c22f068bf6c7a1da09715caefa28eab046fe79085e67ecb259e SHA512 17968466d1403903a8cb5ec7f8af403e2ecbbbd8beed3df41035c34af1c19bc9d57596e1751f3aaf4c6021fe8fc7e23a7f0c1bbd1a5942d94f9dcafd0b19c1a6
@@ -20,6 +22,7 @@ DIST autocfg-1.0.1.crate 12908 BLAKE2B 40c53cab298e4f26634c3acff3ece6a3371188d91
DIST autocfg-1.1.0.crate 13272 BLAKE2B 7724055c337d562103f191f4e36cab469e578f0c51cc24d33624dea155d108a07578703766341fd6a4cc1ef52acda406e7dba1650d59115f18261281e5b40203 SHA512 df972c09abbdc0b6cb6bb55b1e29c7fed706ece38a62613d9e275bac46a19574a7f96f0152cccb0239efea04ee90083a146b58b15307696c4c81878cd12de28f
DIST av-metrics-0.7.2.crate 22690 BLAKE2B 938a6488d9a50c962540cb0dd7488bb0a1fba5db68a2f9ec68338961c5d31c2448f5b9536463b7e287caf3adc901d9df11bb0af8b64e7c21ae440e0df6f17983 SHA512 b98571f685a0a3eadf28b2e889964b0a7ac2853405e179e7af349d416506beb8fe18b39cb9cd452a2c0167054d2203d2fc7914e6eefab164b5973f67a0ffcd61
DIST av-metrics-0.9.0.crate 22812 BLAKE2B 62532067da3cb4a91645f6b65e40514f7e0637bbd060369f509fb14bc7eca089882dd021ae5840364ea63c81f0078da10129cb962dfddf767c3750f3d9ab365a SHA512 22b6b61b08949b0dfb9d340a00cab8af03222a8b8c480771f02850ec8a5165c899c9e7c9411d10cae111e0b984ef48458affa9b46b535695e7fe2c29d9fcf8a2
+DIST av-metrics-0.9.1.crate 22681 BLAKE2B 18a5ad630e75bd4624577e700e9cfbec2215bc6867f980d1cac9d8e96caef4491d4669f0d31c78a03a3a5efbfb65faca4ab441f4698b2610da12fe15cd101cb2 SHA512 5d9c408a4ff66ef2e163a2d83eea91fc317c80d7e36fc782f4a8b577d6a7e930d9d657f924dabb8ca28c1b2c674fe7f3348b28d6012e1fd592aa857fe98c784f
DIST av1-grain-0.2.2.crate 33763 BLAKE2B 6c1a8967e74f3a776abe7b04fe910f36cdc4ca02d69372fed34292527d8e6946610d77ed929c04cecf621aab329cff7507ccb43c0b2620b50a185082997a4890 SHA512 026bffbf4fd085b0e57ee7d525bb6033cb6cc4343c11ee1e8370dddfe629298868e295b5e4ac7f60ae6d4167fcd28a2d2663b78ec2935d9d8fcc5e01aa30b157
DIST backtrace-0.3.63.crate 74280 BLAKE2B 825fcabaddb436d33e179630301657d212c9364b323bfe72e8ed8edda5c0c34abe36142b0bc34501d1885d40d55ab53c0f8bc6387e35ef86f14a9d010c426bf5 SHA512 25cf411ee21c796f39a45e6320374b38f62580ca853e560b3a8ec596f0ca6d60b94539662b1a8a3a3046f481b8b84a5b84983e1d2624aea297090382eb99b25a
DIST backtrace-0.3.67.crate 78564 BLAKE2B 8c77d3d182c7e1ec3840fd6c7f4214322e473ba79a71b2d11d98696f8ae4440350f3c84a891b2ec79fffde107fb2ebb99fffca202d6ed235d3abd68215a1089b SHA512 8603a3b63f4f08be315176908134243680bf1a4b0e6cb26ed81f5fc1060279126ca0ef28f209a10289e1a85214b35db6b496affd71ad21524094f3ee3acd31b6
@@ -30,10 +33,14 @@ DIST bitstream-io-1.2.0.crate 27108 BLAKE2B 1e22302fa66f9afb8f45abbc319af67fdafd
DIST bitstream-io-1.6.0.crate 30445 BLAKE2B 48c078ebb28f36e65f634f545a8a335c47d8e24e6a101204cd16b1aca4425b2fbe20ede37c743d247440fc7fedb71ab2502bac96c8b39d2e07d638c4132b903b SHA512 7b530eb34351f822b6b114d55d33bd9f5ae618d56e336ef84e78f991aa07e901918895e1815a7049460f5167dbd9b73104450715b2c2a18d73b509e71813827c
DIST bstr-0.2.17.crate 330350 BLAKE2B 90c3a48d78b73d7e36a3da9fda0beae6e91ce534d17198ea8ceee0b613d03297f9dd8bca30e1ec5da01d1da359a1da72b2c2771b77c82bebab5006cafd665192 SHA512 883eac8210d14f89517b4dd5e25d02c97cf31602ec74498b5e186112ba0f154d47de8d1c41a8f4e5503f3b53c064e2c976b60bbfd63fc28b186bc006e00f20c2
DIST bstr-1.1.0.crate 340878 BLAKE2B 33168147f9e53bbae98672b61e342665b70dad65ec440af24245d358758ef79e9e50d1a518de09e79207106901aea5cf7824a3d7b18f3a258a3cc511110bfe03 SHA512 5c7802a9d3d2cc219d26fd82c91288195a95d16d4f9f14d7bc3e9932f1027b6a4a50729a2eef998eba25e75d95945a4bd4fba9bd18b8a5bd33306b4548f114ca
+DIST bstr-1.4.0.crate 345921 BLAKE2B 39a3cb366a7ceb784b7a6626f81338e8047498c5755ed60fce1f6460ea5aa907ab5df4bcf30a07ed699c7af7d2d0dbc48b2c5cb674b863c22fd63b5080b52fae SHA512 98dc7bdcc1a307eae2ed202b2b785a4ad27719c4b3289408edc710beabedb78d16b3042b41de04fca5dbdba19d8567df69c35431e33a3c02924820e1a601df36
DIST built-0.5.2.crate 17621 BLAKE2B 02a59238e4da373a369f3621a08eda6ad6a9138cab6f6973b11542fd9e30cc93ae28243a4a261841f7d642bd91c3868967841d1f42fa37c47d216f80622932f8 SHA512 dd405a96c9f44622f901a90da11715529f23f5576115ef0c464b43d954fd3a05aa702e2cf91d28e1ec6556a4533fabd94f21bea89a8145a4b89939cfe26a0e5e
DIST bumpalo-3.11.1.crate 81207 BLAKE2B ba76008fb5a975aca12b6f893779e18dd353a22a42cbbeecd5870622a7cbc0cd7e37036af600c570b8a55f26ea8d07f44a9aa1a8373d977b6f75bd4276730292 SHA512 70e90bee1fa4e783ff5a3b18f192b9347bafab7daaa907e74913a415a66c29acfb073fcfb46150801aa7649ab0d2ec8a610de239551565dd167bac72ab13a9bc
+DIST bumpalo-3.12.1.crate 81653 BLAKE2B 26ca1df07c8f55a4362e844bb80cabf1efb6627ed0f489f280178e03d0c8bb600303529c05e5c2a9bab79115510eddddf446f4baa717352babd68b6a3200b7bb SHA512 1f57591bddd5d4c856d5ad1ae71f9306d8c37681a72172b6be35b4d6fffa7f30b086d88b37d8f512e2256cb7d37dc992ee83bd071e4ff84182e5e226dc92e4bd
+DIST bumpalo-3.12.2.crate 81706 BLAKE2B 50aa1e5f8f1208bd50b8fb0580bb5c5a7baadf36c0a0d8ad041c48b127896b75437118decfb1138e694964b89c8c0f66144cbd44037a67ef376fed312e08ebe8 SHA512 a0571501d2b2cbe25b862197295fddf14dbbbba7472965ab6006fb7cfcdf0f76df3b5e505888c0f1a0be99870b87afe5881a80df4f75756d2d9b65791d94d566
DIST bumpalo-3.8.0.crate 79835 BLAKE2B 3937c4ca9d7c5e2ffee229c8f5503c6a59f2fabfa3b7c81fefbf5df816efc5f601aaca4b606a62e647262acafa34146aa0906eedc09368e16eb76b3c6722e8e1 SHA512 c9825e7638bd54f97877adee8ac8f6a2cee308050c3f446f9da3996688ec3d779cb6eb935a440329794fb534958a6e89749b44a9bb27dfd219a963f64a6bcac1
DIST bytemuck-1.12.3.crate 39835 BLAKE2B 70bb0459b80fceec7f3c16c70a251f3d0e77069d77468e80c8ab2c3fcb7596dfd072c2214008d78ed1bd1a19332ed312b50a77b9f57c4230f2815768497fabcd SHA512 4bd87ace983d659877792e4f463d7ccf16e5a524f2c9698728bd688bf9d0cc5651cf641f4d6d987c8c26be5e56d11d22537389ac76a8d49b4d6e25b6a2284c1e
+DIST bytemuck-1.13.1.crate 42309 BLAKE2B 055e031a677823c110e44446e1e371632a0a5a8227ef7053e964bd3f9967705bdedf96b14178818021ffc09182ead805a68813a8a2b9cf7a70b6e8daf733eac4 SHA512 eb0a7e423a3f903fb831369e0c6d1e5fbffd7eff1b56bb7d1ffe4e5e18850cdfb9a7f9bdcfd53ce10b1c659dff11c59190b7b85ad89ca60485878548621f01c0
DIST bytemuck-1.7.3.crate 27879 BLAKE2B b231e200fa8925f71e457a6ae3a6677366cf6a5b1a6c19845b6973f385fdaaa86b6a3d4e8b38356dbc824cde70e8f1120008d21a3d77d06575fd036b0bf20678 SHA512 03569cb6b6532ff62f406f8f6c80ea5cc3a4fc36ebe28f5a4bab32000862192eed2d26163062c62c0749d2f96ebed6968ce76d2e95a6430d9147c3648aff1f64
DIST byteorder-1.4.3.crate 22512 BLAKE2B d39c546ba7346df315297fc53da4bfc77ecb1f38567ddb788549ee31cae2719a8bc0b7d1f1705abb3cff033aa57af004987d90748f5a31765273b3223a011c0d SHA512 8c8000eb8ecf40351c9ce36a3a8acd7a02f81786d1b11aab85adfeffa0f2267ed74df29b2ca5d1d38128484d1d3cad2b673aa0d0441dcd0620dfd3934bb888fa
DIST cargo-lock-8.0.3.crate 39302 BLAKE2B 63e67288b0201088d25da9246675b4d9bef96d532038655b484996cddcaeeb44b1bcba22f4738001c8593c1c5bea2716896b2f57cb3107c415f08bf85adca629 SHA512 297636b1e573ed42e539d8f9eab40ef516af7eaa60a476ed371900e5a4c1ae61dbc94d5aae8313f7eb684d1e5e9cf0bee698022fc95b9557d6fbc944e38e1140
@@ -41,19 +48,26 @@ DIST cast-0.2.7.crate 11222 BLAKE2B 8a09b6493d68b08539b38fef39ac3abae829c8b899d5
DIST cast-0.3.0.crate 11452 BLAKE2B fe6edddd0589fa436cda32342d7beaabe4003afdbdf1d7c5db7e8748adf23b1b2cdcdd286235837c735d2143f29e692c152a5d56fb0458a54961e4dea303b2cb SHA512 4a3e19bc1e9e5ecc03aaef9bcdce01624ac0e6858c065fa1c41693db0ac172b9735ce872064561347cd9e79f00a274129011f6e4ccf9e61d960c8bb684b6d396
DIST cc-1.0.72.crate 57495 BLAKE2B b2057ca53aacafa063a4eaa907bfb65aa32ce01a74a90b9085c8243a87723cee8ce79e4904f9d205f9d451598ee34495f8879d27c189477ca43bd39b88b5ea2e SHA512 e9a5b283b2a1fee1030009068c1f87291ec1dab7584a0892f27cc7e523c8fdfd5d986281d9aec1a00af706af1e61d7e64c245c74be7b39c8c022ae2d4f87de8d
DIST cc-1.0.78.crate 61375 BLAKE2B fd4765cf5ae0dc7018bc6b56298cd0fa9bf6fe23545e845670d98ce73baee55354e77c6d87cf047f10b074f3d742deca8b5631a250c69b347b4a1fc653965d43 SHA512 b85bec4c75cb1d1e252419052e9dd22b6892e54ea36195ff483a04f785b5b103e82b30b778459fd45324ffeb2463aa4f5696baeff2779c25ffe9f65eb99ae893
+DIST cc-1.0.79.crate 62624 BLAKE2B b3cbed3bd6fcac1c6ea258ec96cd107f859947a35dc89c3dc8f314741b0f668e61518f896ec32ce10c9a7eb20dd350bc177a71810d53ebea59fda062ed9d27db SHA512 cbf0a25f3a23fc540e9d638fabc23f761f1c240ebb4814e761e90437d71fc559cd155768ab9e78fc192220d8a605c66c3af342ed736b719181656170b98d7bf5
DIST cexpr-0.4.0.crate 18023 BLAKE2B 4a55c6c80f09c1d4ee86706d8af1f52219ceee99f19ecd0618825ce5bb27535184b64c0a49a540756b0c5e9cce6e39aac271545c504fbfb37c44052d04856cb2 SHA512 31592e38d80414cd07b25f7460775eafce1f91570abc1b94af7452961604574d1ca2374c0177875569b644f615a2b6fede273f37a6ee137f9adc9c0315c59b37
DIST cexpr-0.6.0.crate 17966 BLAKE2B cb46f066eb1f4dbac00ec86dc3e562db7ee8ea5ff17d16a60004fa020405e455b8aeb3d001f669cb33d1b62525bfd04ec657ffca4ed44a83af4a5e75b2c820e3 SHA512 766bff7ca7f9bf0885aee6f014bcfc084e7fdfcd567a49443d5340acfe8f257db109de17b24588504fc35c53f2d4303e2d22da21f73669125cfca984950cf886
DIST cfg-expr-0.11.0.crate 39821 BLAKE2B 19a9c100105026ddb7e415f31f0d2ee20c431df02b155fc9e1975d586e4d1cc6f34a135a6962cdd6b95d7b5a56cad0a051bc5c3de9b5bd81b6ebbacbdb2c49c0 SHA512 92ef9c4f1ab0788295efe75cdced1a2a63503892fee1b63f8ddd5a6fc125b6046e17950f2ce060133a763640b992988a6899b15d397d3892f7a3298b3a3130d7
+DIST cfg-expr-0.15.1.crate 40860 BLAKE2B 66d7144c6ef87ee78ccb7c11e8dae73221d89039dee77e57207bee666888f5fd2162075ec13ef2cf844ddf05bfddd0ea95bf89f894e647ab4e7c0f4ae4df6dd4 SHA512 cd13158c37ccc01c0cdc23f3d9def013a1dcb0864cf8341b1d8117ab7fef9f9b4a221eceb71bb5ff1704c334e354a4d13b3cb68b8f3a59c4efb956eaa2fe84bd
DIST cfg-expr-0.7.4.crate 34162 BLAKE2B 24314b3e3ae62be22ecbb147272fc2dafec5e7978c98b7dfbd4865387a8219e0b2168aaba42ed0d22b584f7087e46af1d96a9c3a9cb0a4a1c45855f617e9c129 SHA512 13b52f443ea10f28a475aa6c3077a8a97743935d44dfe6567ee044893bbab696af9f95fedc9b89582f388e2eaacc2cb0786ca62d2202973ade9270082ae0f9b7
DIST cfg-if-1.0.0.crate 7934 BLAKE2B e99a5589c11d79d77a4537b34ce0a45d37b981c123b79b807cea836c89fc3926d693458893baca2882448d3d44e3f64e06141f6d916b748daa10b8cc1ae16d1b SHA512 0fb16a8882fd30e86b62c5143b1cb18ab564e84e75bd1f28fd12f24ffdc4a42e0d2e012a99abb606c12efe3c11061ff5bf8e24ab053e550ae083f7d90f6576ff
DIST chrono-0.4.19.crate 155663 BLAKE2B c92c273fb6475bbb2546dfb75eaa23321bc8f9a5fa8a7c652f527649b96ff8718fa932f52b500b02a4acae7837df5bdb14f69cb821d4962be2790dbd1d023a54 SHA512 a119349bfc2243a249f1d18b1ae548a04b30fecb75913a56f26d1ff8c0eb53097a2674d9141e2094018191cbbc1620843fbddaf52999824e077c1157f0907980
DIST ciborium-0.2.0.crate 30130 BLAKE2B 69896bd45dc95fb38df5f6b7f0952866c8efcb65490ad64447e1a645b5558c00a56d81aafe1ff6d2477daab4050c1f69598f0a3f2a74f644e090006291b9af0d SHA512 05f906ca1eec19e903652f2cfe86de36c25f6019af0e10212720bfdb2260a90426cea3acbab6acf64cb059fd138883e5cd4e46032b9a2d7a021715243ca6ecc1
+DIST ciborium-0.2.1.crate 34974 BLAKE2B 370f4228aa63075cd7a0d41dd83f15211fc69267235905e7f5607f6e6c0baf64db0f6203c97990604de2ae683ca1937acf284c6444702414fe1a685ccfdc12a4 SHA512 4403239badcdb5ea6e754e706472e25c4593a1fbdfc5a07e46409ea3dac41151020204167102dbf401a2e5f31b3731267bc3759be59a73880a022e5f4a3064fc
DIST ciborium-io-0.2.0.crate 2738 BLAKE2B 6f59c4e8d9c91bec47775d96d1089fa3989d347f7138f73f73cda02842a0409d96f32ce25f371a8a7dd5b34706c457b6815aeafeac36a61e309e828f9cc2edd3 SHA512 814059cf5c32c3ca2eab6877eeb73074d38f3419c04137ba345f83c7dc0222b983166e869e0ae9f22d9c604a162555926bff92a3ff57c076d72c9cb39072db63
+DIST ciborium-io-0.2.1.crate 6679 BLAKE2B 1835b1002c2e5f6fb1cc36a6a1f1e3ee10423760646b00a75e5ee5e66dfd2892914705e4456ec440cde27dda04e28329febfbd5c640ec7f86e7c013a9a9d748d SHA512 8860de0a72f07d0d0bb84af3c24635193540c574cc87367c7379222bf97ed68648330511866810265b68076bd1146e0ddb41c269e62db669b1c3390aca679c50
DIST ciborium-ll-0.2.0.crate 10740 BLAKE2B f2ab6870bf68d238d51617e17a6a50fb7894d11d7428305fa0ef590b825fa9351dcfec02e27d5cdf716bf392d0a996ecee2a475297de02ed99c65d8fc06f2c08 SHA512 73a7507332c8d941c82e7ff8cc707168f8d231db7531fd28eaba1be341f1511cd494c61f531852e0c5e37a65153addf259ebceac70f70185ede287d93b911845
+DIST ciborium-ll-0.2.1.crate 14649 BLAKE2B 02f5ddca41141e426492afe237ef439acca518c448a6f8daea650ceb925f6a13517819df88c93c979ed1ad9e8411cde400ff39ca288d2de8577ec870531453f3 SHA512 214550780734dcb0bb5dc999ecf22283850bf52ee4a9cfb58d86bdac9d4b80db32f0664eef71e8197e7e56a6643ff45d2974b9a36945db2c754a98df42adf9f8
DIST clang-sys-1.3.0.crate 37713 BLAKE2B ca7ee0771a970ed67b02d55d9027bab061c52d624540894cd00d09d847f6f35c58e76a1a6153309f8af709474df64b46f4764c2036883a688ffb8154d77ed123 SHA512 80c78c53a877cd8208730885214c135dd65a208cfd047dba7595283bbeec266f4d39cd1e0b3c2c69a474569ba68e4db93636e31a77c350d7bb2337e06ee7cb74
DIST clang-sys-1.4.0.crate 38679 BLAKE2B d15bdae2142ed26b4f6bd037bd2062e8c4b7b87fc5b749b872a95ff1952d000066c255aa0984e5f9c4a5c88066db4a20cfd048db4ba5a59b331d5ffa5e9a281d SHA512 062189bb0a341e2e85de4987f4b564c1fc69e4005c9c42cfedb61dee5f48db9126a8114d1d97be1b9c21b8c885243751232fbe8cf532e1d2be593308fe45216a
+DIST clang-sys-1.6.1.crate 41346 BLAKE2B b70104e6c6b3c1b85caa111c2b1fb2c20d30eeb85059bc616afc49bce9409f7ee2dd8b800750a466accad6a74ef29d10c6a2ee4459d854a2c0c54050ff51cc4b SHA512 a6c62c1d3faae3796f5e7d98ed4f1a8119f0ffaf8fceee8e728cd4da57b0140e82631012450bb0c551cd13814a97065e9e47015320707a87bdfbb6fd317e952c
DIST clap-2.34.0.crate 202210 BLAKE2B f383adf1d757ac4b68995132b33837686ce451f85a02a8d05d2c746da398510d05d46330f3efade063c3952aacb1754cdac73dd0afcae0df5340a89f9353aa1c SHA512 c648a761b9996a7e7464a538bb53621bae22090b846a42c3b729beca3363958ae67e3da9f93f58b10a10e043cadf7ff930388680d168646178c2824177832db8
DIST clap-3.2.23.crate 219435 BLAKE2B e99a928ef61a7f9f6d7df2c38acd480fc86bfa3885d8b875007aa5bc855396641ca6772387de2eadc1d545dd201434037ea9e7fd138395831e4755ae5a917a7d SHA512 1f1f2ad07a0f8fbe8672f4252edf260ffb5e024a20d6673fb846d59e245a226a43675539ccd3cb252571766b1f6511c68c5cb0f2351c8086955d49c37f87338a
+DIST clap-3.2.25.crate 219403 BLAKE2B 75a8ee36c52e64cf0ac7ed5604d8a575c41c756a588bd418e6c1edccfb358350cdd831b4176f01b987fe7fa5901ca2bccee6b0f68ccba7dbe40baf85a5f3bdb4 SHA512 557c8932175d7ecd077b32b68904924e52dd46d04fd04ba36b3a9dfd7ab1dbe8c2128fecfd75d0388b21fca4aee55a941794181cc2910a4d4eb3c54e9c7e73ea
DIST clap-4.0.32.crate 207531 BLAKE2B 5a8dedd7d9b6ef3dbd1dbb6a6504b0f6ea694246bfc3cc608f018898ff75b9952bd56dea16ca321d2a3fc208b164cb4016558cf4dce28863bb00ce133d470eb1 SHA512 a054f02385bb9a3539786295c55395ddae398f8d2b05b5d3ab50d065155ccc702c3bd624e6f878ea678bc01a1cbea8979476703856b9a86d8d0d971f22954e37
DIST clap_complete-4.0.7.crate 32728 BLAKE2B 3798b9209637c88a76e830d7ad32213aa160a6c76b82bfe076cf27a26735370c3d5f643bc8ff6c9af42c0c1a301df1dab623b4a95ccd2e5bfdff477ec9e2af03 SHA512 263c2290e8239820469bb9810494433186e0e9e135083fe82945aa7669d8f08fa68200366815a8280edef8ce541abfaf56e8e984072a2635028c42b13d55da6b
DIST clap_derive-4.0.21.crate 27567 BLAKE2B cbef7e547b0d0a145ee7696a773e1dce541866dd4878797e9b810b7506dd11d75ae9cd2547b4c3330569390568a1039588406ee614b9eaa2b1a619951b0e67e5 SHA512 95bbddfd09de9dc1c64266743e9877aaed086be56f7e0f6e933dc5245724fead7163316a7bb4a744bc81597e4d079fb0abfea891766a17e0b1aafba011dd74df
@@ -61,9 +75,11 @@ DIST clap_lex-0.2.4.crate 9652 BLAKE2B 5120b508dedf52507068c0c369a45ddfbe0369e5c
DIST clap_lex-0.3.0.crate 9671 BLAKE2B 4422495226da19cb7a793d364ba5539ec77f9d327e2f1627e4b547fee0625162b57ddc6bc50585f520d31ec289a53065a2b6e0ba66111959390f756143cd5fb7 SHA512 5e601d540e46e527f6a2ea1959fa5aa035ad823008806f3a5adb4785f1928de4c9fe04e61680c64bcb87ed32b2e991951ec27c5cc5acdcfae51cdc61767ff100
DIST cmake-0.1.46.crate 15119 BLAKE2B 0889436835c16bc47cdc671615f421a50acf6c34a3ba3b6b8b4289e11bf1b803abd15d88a65ae9c1588586151f467524517e9c60d5dcc820e41ff21711f3a536 SHA512 e2749309055c85baa242cef8d0f4a91eb7e694664c5e42339df8ccc6644d1563337b835d3d931f5a0a75351efd299a21fe6eea497941802ea041916d665c7311
DIST cmake-0.1.49.crate 16717 BLAKE2B 4a2dfdbfe38c481715054db4bf3ade6339b033180e4e1560edd820b1d44a66cdb23e042db772ef28283dd4d9e73423d64c9bed791742f706771c309c1b542007 SHA512 ba8d65a757734d72c8c7c7f532adbe563b5caedb67140d100cde404d4bd206e227a9d408f122975b737d44cc76a9deebbf0b4a492d1bf03e3d5f1ce8a6d50fc2
+DIST cmake-0.1.50.crate 16748 BLAKE2B cd3b131fbc27764e15fcefdac31f97a9d12f82ac9758b2aad256ccb371ce3e2db8aed3c76fbf4816df3483dad9fffe9973940ced65be6d31463d8c059c543646 SHA512 868d5cece75d79382ac6176aabde1723bb7e26dc745383a636516ff45856dc9187fe5a83e139f17e3bb0c114624e9e71b93c8a460b89b8facbafbca50d1d0923
DIST color_quant-1.1.0.crate 6649 BLAKE2B 9a2488dd00b7a33e15e05531ea49ef1961131f0be0922ba41e2d74d2b1a047daed483ac3a9dd87c847a81cce70a347395c557cad8228ab9a8dc5be7cc0f1bcaa SHA512 690c928bda4b7b57425f38ea68ac89cde2473b7a91b7e62c04a8f2c5a0fa3505e26b065d48b7ad0a8bb491f92f600f896fefdad3ce0e86e43cbf4f9a89e94201
DIST console-0.14.1.crate 22844 BLAKE2B 2e7a1480fc10ba92d4d5c601b87a0dac840b71c6c44679acf0a90667f37a40528ff2155130aa72be2ade1fdef4e6512dfb404b0eff181d77fbafb00c25dd6c5c SHA512 2c85d1938faca5163dd7eede2a8a07569e536c92fd0fbc7f6e6ed91c60fa7f947f0ae101817ed943b0668c4d98ddfd3149033c83614786b5d841b19a8b011c91
DIST console-0.15.4.crate 34237 BLAKE2B edd1992b38a24a4c5a6cab42a1a1ae2483a2ec42231a9460b9a4d2701945d1bb1fdde181044976f76781348497303b035b9f9dcf5733c9a317fb32ff3252edfe SHA512 fc719a26f93fa28793379e77eb90a9144892b07ee7fa5c495d842c892f5a161607da83376d447950dc1b2be6b023b38f2f1d416b112c09ab2c84847e53055650
+DIST console-0.15.5.crate 34788 BLAKE2B 915818e2a5cc6776a3d40f51ac85ba178e738f5cf40e5e3c1450aa731a04d73a617341dead606e043fcf66d0701f625ccdb5c787978d784c3f22f9ec0524e89a SHA512 54dc15a0c0d7e1a96a368e5866e1e5ea9d11b0b7eafd0e086376085efd3f656bcf5ec86f4eb387b42dd8cd4258f9162c401914d519a175331d0c1873794f8d43
DIST const_fn_assert-0.1.2.crate 5772 BLAKE2B b9f715593c0a53c1a028b08bad260f6a2f676100a7622a47ecd0217639e3605e819782b2a67b4f745d496719520c24dc4f81ccad83d3c0744379128a296fe8e2 SHA512 99d98d3cfd8e4c7b74378263e4ce4ec952b97ef0289bde5ae1c1672cce461cc9827eeb29c4756e2ca48d2a0d818dadb01e7cde13843cac1a42034ecd3705e367
DIST crc32fast-1.3.0.crate 38565 BLAKE2B 4191cbfdf05964a39933f66453752c5f14b177c43fa5fa44de02d74b6fb4e4d874218f5a369c4a1d1ea71461cd541203f42afee259343ea139e305043e155ee7 SHA512 6ff361acfc0bb134672b30fb438f6d3ac93841d06332a6ff156025620b23870a79a4ceacf57d4b14ea1744838cffcfb77b413352d055809e74acd853ae912673
DIST crc32fast-1.3.2.crate 38661 BLAKE2B ce3762b03d24d5367d89738991c060f4b3af7840e0a7ac7fc17d01ed438caf964bbaefad0fc4d0c438dafa5a578429ddd353c71197f8b54b1ec441395f2f7ee0 SHA512 a683943e252afdb1b9d626a07533ed11cf7a63af603c19640056c5d2b9c884ad9aff33ac54c0853ffca2f6cf94b0730eae6c05abf3e53e55e709d180c8152357
@@ -75,13 +91,17 @@ DIST crossbeam-0.8.1.crate 10429 BLAKE2B 4f915d623533a226370eeceefa5c196438b1b33
DIST crossbeam-0.8.2.crate 10502 BLAKE2B 487a7a5f197898ebea0fd41a413647db0fc3380790cfdfc6cb7cf3caef48197bb7c2498579ce676d3c5796480a8541ae37ae03f009d768a6157246b1f7d63a33 SHA512 bd2e54372595daeaddcaa26802780959465bd571cac64f23256b7ecc68ff5c0161a36740a51386ee54abe7c509ad1ff870b6f6877a7921f4335661f2c554c3a0
DIST crossbeam-channel-0.5.1.crate 86919 BLAKE2B b223d0dcacbb09850d457825cb2a018494d798d0000a20eed3f54b1152e41ebca4698e7d50e81f467b86543779155ad08566da9496eee36aa06644b69cf5d7eb SHA512 f15aff67e9105584f5fe41e1ee650ae4fdd0d0ca0fa9202ee83c6f6025398a300decaa50d1b4682e8afb9bd6e11e95b69bcf23f68ae117419aa84df14ee7747b
DIST crossbeam-channel-0.5.6.crate 90292 BLAKE2B 7da87ab15c384754d2493dd1a30e83550cd4b2b749b7f0c24de131f054e3a2e521e1bb4ba10094378c8f4c7bdf19218e35b10562c50b4ad1d2871bf6f821e488 SHA512 de6a42ffede95750a13e3b9af6ab26cbc498125860cd8e4d227c7361bd831e558254a48bdef5cf901585a915003071b0efa321f2011f282218c364780f62f44a
+DIST crossbeam-channel-0.5.8.crate 90455 BLAKE2B 017132056f1b40e55fbc7a09b75509d72b0a6123a0e5ea5d6104fe822f73b3ccce670d711d3b84b5ce743dcab5f10445297a6701b71213b77c0d56e2c3fd7160 SHA512 47677d6fe63050c51393e4a0537a3c65d7055c9eae118ebe60c5d716b4f47f23c2b1947b1e1b66bfb34a57c4db3a44631d323e996dd545565fe4f58c25863ff4
DIST crossbeam-deque-0.8.1.crate 20852 BLAKE2B 0e7a2616b82c5e501c0f74935adfea3ee09db5475408be83db8f1b6faab4cd5509de2e029bdf6df90435e474ef91f3fc8d482ce3a72966b2a3bec5967666bdc4 SHA512 44a4fe1d4ab7457e2b0950be787b76b15e1bb0b1c108d032381ce3fe99bf7bf76f3d1718085660083d813e2639e66fdd3635d9186e85a9eb7267063b117eaca4
DIST crossbeam-deque-0.8.2.crate 21237 BLAKE2B f00948fe90806fcbf1585c0404250dc84bca2cf27733bf7f2a0aa957e618f916162f41124333329a5b1e84909cbae3d93fb3b4461ab23e9dd97672c7d520d5b7 SHA512 a50a878d843d6eb1b5b92321ce6bfb87a23d3c16e820b1ff55472f0bd3d29b41d09ea95e1b9ccb2790f6687c043dd9ada1cd5124705e24292ccbd8fae1f243b3
+DIST crossbeam-deque-0.8.3.crate 21746 BLAKE2B c24025c65d7c1c98e442af95491749dd4f777af0509636ed66886dcf656359ec50dc2a5e26327559c6659f6b355d2b0b992dafa691a36571c99637cb47372d0f SHA512 f3201c9afef7d2d119702696f7e5e7997a104b8f7d67c7adebd1cbed84d3a3415636ff674f1ccdfd95d0dc162384e46c6138c8203ede69577b0d5359a4b44672
DIST crossbeam-epoch-0.9.13.crate 48313 BLAKE2B 6e548cd39fb400732dc179c5b7185555bdb8a367b5d3a27dcabe9ad36db6e9858604dee210fe487de8f9127fd6d0db1ef1fd04a1cc8cdcf34bedcf980c048555 SHA512 a4578e0e535f301b73f0332778e79b327bafea6afa43284317fccc49b410118360866a2dea8ac22f2977f309d07c663e5d95fbfa852ab795d414c170ee4e06bf
+DIST crossbeam-epoch-0.9.14.crate 48524 BLAKE2B 439eec7e5e0364af0fe0a34ffc9354ae289798ffa7480bc656d4a610101e1ef2d5f484d84f82c87f961bd622434c36adfb7a87f7fbd2c71077b732cc7cc765ad SHA512 543cb60cff7c0823733f6ace191b137a04025a2b40fe4fea5eb273772009627fb705aecf742bc59e01367d4c15a14aca73aa2caf7f4b509f4b25947e14fd1e19
DIST crossbeam-epoch-0.9.5.crate 43883 BLAKE2B c0ee0879c583bd1051b63d29eccac37ceb9f9446ee8cb64756b2e3d95a30c5c11bc79d9d460be4ef4b62513049e28900a96085031f805d064e81b5eae4bc297a SHA512 ad822e967e5ef45fa0c4a939f057f44146f1f051032fd032355a75c0f45ae4e0a55e1d31c80bc67c01ff8d9c87a51aba7ccfe9a440f061fd8225c879aa663064
DIST crossbeam-queue-0.3.2.crate 14993 BLAKE2B b22d68d0bebcee8eeb53fe431f54ae2193a837a0ce8dfe7a49c3c1a42c2de895dea1ef1d71b0909abf9e89442efb14c8fde932553ba13dff8af9d155d7e6dab7 SHA512 7e67037b7a7f134a50e34728813b85a4a6e062895b9f482fa4ef7b1e1e9cc15c9c2836b9b5dec2a4ec36eee57065dc2f1066937e1ffc5b77fae253f60cf3f05a
DIST crossbeam-queue-0.3.8.crate 16731 BLAKE2B 80a8647bf491adc1a5dc736f662c01e77bcceb4bb2b876eaf684cb2a742a2f46d09e1221f6ca8b19340ddc9ed3a10bf07a08305a5bf069338d00873b1296ad96 SHA512 3c4e855184f8e2656305a59463f0170aab99f9c2df1001f54341b62e05e533864f384477a7a9cbc2b8b1a36bbe4b8076531c11b1492485029ef81ade6e7cbf8b
DIST crossbeam-utils-0.8.14.crate 42127 BLAKE2B 3e31e6371e46aba6697501a34e1b737680dcb692c0d1ba7cc1ce7025ec70ee69f7595e3abd90fb52c11e42cb43fa5fae6103f97add35cf87b0a68ea83213d0d0 SHA512 fa00a57c41c9daa152f8a6c6f4d3c77986de1aa21585984adf577e244c2f121db014ba2beb92241590e1cf78710e77d9a703ce4a4d44d8854bc3e60690151393
+DIST crossbeam-utils-0.8.15.crate 42326 BLAKE2B 23e6bd2a6535c6fccf7b7d17487fdd4095c92a3f3ae383a72dd6d90c1c49c2ec8d96dc01a94c7127b2681bfaef843585b3ae8665ecbc43b2e7db8434e31c6c8b SHA512 adb9ce1886396bc637299cb8122d102bcc9e561f25d67ef73e98c9ed8a8b13b78bc0f5bbacab19d015e1a7690bc0201f08b3d8e82393ec347e7f2933eb622533
DIST crossbeam-utils-0.8.5.crate 38414 BLAKE2B 8a10162cbc54f77737602b6f8574b65a02765577f0e2f59d71e1d87662180fe24a781df542f3e765c4d64b7a0666575157e000766dac138bd4fc0356944092ad SHA512 fd4d2ae10340bb96c22b31190b300aab54e96b8089fd62489e102c76a944e6a16c582a90bc40f5e188f13f841293a4b9becf30830c2ece04f3ce78c29066532f
DIST csv-1.1.6.crate 886999 BLAKE2B b178d0419af671df570f37a4d054391bc883085b0cd3949de5e967aa4ca323fdadfd8c5d91eef1e8882ec112a1111cf255756eace3c7421e455ea2b6e01cb600 SHA512 81dd826f0ee85e7d335d844e9f9b4d2b66f7076c517d8050ee2e35721bfa4ecb8a906dcd9671b1c5381a968dcce0949202f1afe8eea535b6d215363d4f5be6fc
DIST csv-core-0.1.10.crate 25668 BLAKE2B 8e9a56c26e75f4c4c9e90a21cc30c60cc3fff17515ac93bc858e8ec45e130df2ecabafa7c513b2d2815269fbbd98c418269dfb1bf1425d2fd32fe46823cee6c8 SHA512 2a269d050fbe5d9e0f5dcda2de1e84bfeb69538dde86040ad1ec7307a214eed813a1482acb5029a51f18126d384d5238355e021964e47811db971a0821bcc328
@@ -89,6 +109,7 @@ DIST ctor-0.1.21.crate 9303 BLAKE2B 8feeaacd3d870b721ecfed7c8df60a27005de1f2a099
DIST ctor-0.1.26.crate 10803 BLAKE2B 93627949b92651243b7a763d3d45a22fafcf2147a30661c4cc017e222bfc2bc12b4071054e3079adc431fc8a5dd8b86a8d11c53c401be6db846a3d0d2076b9b5 SHA512 3a3d60c976ec02a9edfe04470af4b04b02601c48e2a007393cedfef5c13e22bca58630e9e885e635a71aabc3e0ad8fb70995876551cdbc6a31029d8d2bc2e86d
DIST dav1d-sys-0.3.4.crate 2748 BLAKE2B 64cb5dc703ca302e2348af9d81951c91dcbb52128ea1b2792e538044fd2e1007baeaab1d27b54982afbb3255b7dfc0c1cf94932e88a0f509542d035e20b8fc75 SHA512 950c1a2e4ab0072321b2e55ec3c7494e0b67bf86721563a8d3ab4ae51dd23b308552cf98cb5e293c4ef4633bade2b02412541dfc2b526352ffd0761ff56ca4fd
DIST dav1d-sys-0.7.0.crate 6692 BLAKE2B 968e5e9ce9bd66f0fc9ac4079d803060825550d95ad4a5e54690f49b0a56a82d266819aac827f4eaf2fb086512ee19117d1a751f1a807edcacf2a96072e921ed SHA512 b22c7f6cc019b99fc2a84a95da1529b6fcdbc1535559c93c06f43439bfda0d7b653e3014e2b9218bf128ab6df62840dbf27eff215422ba01f8046168fd6caa27
+DIST dav1d-sys-0.7.1.crate 6820 BLAKE2B 9ea4ec165ec1591f7e7872114da74c768b0aee211ac3445ac290d452456616642ad5643d3e31471cb08197f759c9920bb6bd8ca809d818ea10a115e1d27e91c0 SHA512 c40f63fc48f7b88da48bd372aec9b6a848f9ed02dc6deb4327c07c5a27f94de0a19cefd86aa6d5ef903dc6133610cf95bb1f5b7f92d9c911c106e598c88159f0
DIST deflate-0.8.6.crate 62365 BLAKE2B 05b1f81e4c423f9fdd823bc33352d8421f2ca0c26d43cf0c5990db12f5e31c46ff7769f1baa3b971166b4146eb448ed0bd3ffe68f7c4aff5885b47826f77d847 SHA512 7e2e23205c56cc4c834ade2a6a22b056253c32e29346907558117714a18d8433882a712711413addb15da79f9f59e089a06dfd680b756ab2725b500a49dc16b2
DIST diff-0.1.12.crate 10223 BLAKE2B 369f305661f1da31207f3801ed1841dbce12451ac9c3e9d3736f7158ece433af9b2e42c29063e5d93bb86b1d300e503caa9c3ce7dd0b25553f91d72a9eea5298 SHA512 0e81331c0424e9369963e23894a6412b65a3ed4f3154ccc184fc84cf1c5985b81c586a6b34e8c6c0e5c3afba38fb15277cfd89e7f50c85bd5d8d4d24ba670d16
DIST diff-0.1.13.crate 46216 BLAKE2B 27ceeafb7afd45eabbbe22d1f05667f513a6062762e6b77122e267282a8f2a0bf96384989508bf10c9e13af4856bc9f58f09b10055d6fc2c32681e288ffa9f9e SHA512 45e259c9fe7c23bd9e9454891b42d4aef6d681d35ee039d21fdb05ae9ed5856161a40f29889e7880ac2a2daf85f1b7d752d213b4a99a1a74ed2682c18a3ae7fb
@@ -96,18 +117,26 @@ DIST difflib-0.4.0.crate 7638 BLAKE2B 57c703de0d467c997bcbedc4d6577569b3d72c612d
DIST doc-comment-0.3.3.crate 4123 BLAKE2B a82d1c1a7a90af6e111b5e684a1298d7eac5fd8e4bf7d5baf6c7403d26b609958716d57e51122fe7ad7626fe00a2d824dcfef3cc2fd7679fdb7b5099603de1cd SHA512 e98ff9646a3612bd41bb6f278e7b6e9a0c58747f8b82524da814cf51b7f06c76ad4d65b502ac5740e818744abb295f78f15f8262d0b50ced1523f6d1a26939ba
DIST either-1.6.1.crate 13641 BLAKE2B e5f40c40a5edb6dcb07a10bf79183cbe42438f1f70f3932dce72f6f6e91f75f24d17d82bc447507def4dad4345ffc9dd9162dde778afb253bdb1218e91887949 SHA512 4bfe56920e30cbc8eb4f90162db618f7dca653b42db35ab6a7045d3fd9a24ceb1778b1f79613850bdb1a87ad3794fa0d73015e46c48d513f368d8c3776fc9ddf
DIST either-1.8.0.crate 15992 BLAKE2B 5b9254d54ced1f23447cc78fca74f12085c37e3c2da441b30521819025ebb808e8cbd9cbcec811f8b3951030914c1736b8bda61744d1323af8c5b8b0a3ef3ee9 SHA512 5089b218af067b51ee39c085568a1a6f542e8f68b362207bd7126cbcd2b76783cd21cc1517a1d088ce4dad1714be03a3660f50e9498a0bb43a8676cd7ec490d2
+DIST either-1.8.1.crate 16027 BLAKE2B 2fad54b5f20bb8540fff5959ca7b2f9021c814ee610895d770f7081b12ebe2c93ce754c462df9d81824d479ca75e07f4a9e398c07a655f4abe2740b9c9de9c62 SHA512 5e4da301a605e0bc1ee3a269fe449aef044df05b5e833940c7f79bed61bbff4fc248e9c82b45dab92b2688d578ada000b271aaf67f2f4f7c82b35f05663cfe7e
DIST encode_unicode-0.3.6.crate 45741 BLAKE2B e1e3792bc2bf9db7df33a516d0d755eef5eff1249aa9b2fd7f0dfcb155786c566fb619c9b2d73425a8625c8593988b117e9676c341f65e8795ddc838bf9881c4 SHA512 64193d6ac75f66d58ed864169b5d6228ede36dcf100614395e086bc8e847a3ddd287734d88e8ed50f38c679a99c80ec68449175a67d8ee03b02ec1cfa9d55e77
DIST env_logger-0.8.4.crate 33342 BLAKE2B b1bb359be2f34ca6f93f72154c86920b8254f574b48f693b2ae7296cd1ff25d34dea61e95fb2954569fdebb6c522c851ef7499c107005528aa2226df13b0de33 SHA512 9e4478ff609a2e1e1a902a55b221af43a52622fdb5668dc33fb0be354b964708b7b6d13b7f1ef11982f45fa7e71f0712a2ab3fd4ea98155a5115e5a7c3d33049
DIST errno-0.2.8.crate 9276 BLAKE2B b73738deb47d1f76ec91ffd15558126d32312647b82677290725669edb01b8f34a503172fad6518ebf0ffb1633ef0afaf0750982b9384a9fb87833d31721c9a8 SHA512 1f513743224cd9a9b7e4caaf33dab075a4a79efa90c9f46c9edfb0c8600daccd3ad2677ba2116621e19fcf8be456954da5d611cbcea4b6f1410f7731828b50d1
+DIST errno-0.3.1.crate 10348 BLAKE2B 72831d0b69f95884a69918249cc0e814eb5eade3205331bec6d2021f8b01a42c4c9b494f2717033d65a4c5230c8490b6ce250d349c1e8e177b20e7e84a860020 SHA512 00d64157d066f1e7601c522c0f4e777eb662ca5cce64682f616de0734857765c343396f7161ac2908c3db0c474995ae157bfe9d8a9880743724d9bd428dfdf54
DIST errno-dragonfly-0.1.2.crate 1810 BLAKE2B 781fc26dce5c33d83b9a1fd9be2b2ce9ac2559aaa858957ba6777e143b1e44cdfee48e1b47e3c91a95075a51921d1a421d0b45eb3d8de827cf4dd0ad744a7d8c SHA512 f853f1e1b8dd0f359a8f9a0399b3384c1103cd090d96e2b2204f91a40d40a9eb99383d4aa6a11e5470c51557afacf452d4be2049600d4235d27f59870fa3b916
+DIST fdeflate-0.3.0.crate 21790 BLAKE2B 3c96f6395fc42f66e436fbf6b747c2f3c2dfd8c38729bd0eb88be872ad55e5d964ba322b703fae122907d51892619687ac9b7a5e7546f8fe6eb7d80a91c1f398 SHA512 1a1862460745780407892c835b4e3431267044285fdd718dc6b316dbce9520d2955bf36e5e28257f2f758ba7bc3051b446e786d11ace83deec492e4c161664bc
DIST fern-0.6.0.crate 299856 BLAKE2B e7adf3beaa2f5fc029acc8d87411c5ef8d3288100b5521d0c1379db6868bcaae73e197f456509bf29f52429ec72bc6e5ef297e971ce9cf6d7cc6232b5d9813fd SHA512 d0524c272cba970b5193d845d4e84698d64bc28c75b38dd2f265f1a132e1c9ea177ebdc38741614f6a6f3d106c7c50565b8562378a50d59ed093e00aee8ca382
DIST fern-0.6.1.crate 300402 BLAKE2B 70ddb9f8cf605471594d961fd8dafa20100a7eb9b58bfd17caba63b60fef35d5c96e642c03c5b302c314361b695d4f3b4cc10f6f5cc78e6ee13e97eb94f6b73a SHA512 f33d3e03c8f4248b046bc84c83d0de9be77b895e79ebc1ab943c50d7ebae021477749376daa14763709aaafa69d414a8ea774bb009a10737d1de57c7cb6d7fbc
+DIST fern-0.6.2.crate 304626 BLAKE2B 7dbfc8a1cf0adc288732a1dcc23e30bfea6668b01e162b60e867b67b995b7eeea5399b9e9a630510e3f56c8f36b79b34913342b7c8834783ddacb2cd7b94e140 SHA512 f9c44d1387f803b567b7254d91cd942c55d30a1c3cd37786101d7d49d346bc2bbc593fa8a3b2e59711c5320c1496354e8d2f3ecf0967030ac1e5199650523fba
DIST flate2-1.0.25.crate 70210 BLAKE2B 992525ffeeb4433a222487cdfb0c3927ad77f914e1db94f612d80e81faef4a2c955c755c2b800251e3416d0b22726d5f7d7e432a81c3582c54b7de95ab7a324e SHA512 d81a463360ee2778f609ff297e04548120d1fda1f9e020fb2f429ea51189b8fe6cae57252fcd924d71fb65ad0f93ff7cdc7235913f8b78fa82925939cf884af7
+DIST flate2-1.0.26.crate 70832 BLAKE2B acbfad138abf2175822153867413dc89bafa9254494b4f13d958dcc6008a26fca6f934e8010b8c090367b8e25272a4ba3b26a31e59cec69c1359f83ca859d186 SHA512 a9f7b9e4adfd0a22fbf66e1cbcfe377cc03ec248c7fb7113097b839922b569cc96bf080089b8c800b35ec6f81b3f602a5860de55963b85f27ee6d75a9df88f3d
+DIST float-cmp-0.9.0.crate 10102 BLAKE2B 46bce5f7e838a947bbbdd22b085435e795b67fd23479780f65bf1586a70e7a35f04f9af086be98bff24e2583eeac7c9688727a2ddbd1ce978526dc01abf67dfd SHA512 f8dad12ecf8a278769054fd78794999dae8dedbcfde5e77bdf6cea12fdeaadeeb2f1f3ca62df9aadc1bc3f61457236c4854d6d6923ad6d03ae7f23af600572e8
DIST form_urlencoded-1.1.0.crate 8734 BLAKE2B eaca73d73d16242f3fa3e38e23531c67c01404697bc7b7eb7c64fa04167dcb403a41818487fc46c5d9118842818472d549a2f5fcef5e4d962461e1c103d895d1 SHA512 9e245495dbf235b147e4216b313f2e6a96357d2782a66d71c08c2902c6a065701ca8ecdbb6b2035983a83c44cf36c921b5c71d63af0e02dd39bf5f8347117e11
DIST getrandom-0.2.3.crate 26261 BLAKE2B 3e52a87b9355f850e07e5080c20e1ab3acfa927bae28c63bb8bfd6a773ad77be96d3ba770c344631cc0f2d9a95aac920790173168b102e25f50480ee96663569 SHA512 e6da64ed529cb0fc000b613f75187ed6b20f716e721d8a02ac2ae39c507fb9f6189ebb66b522d28584eff1e7e9efc274cad6bfe43f464f58053701e1d51c603d
DIST getrandom-0.2.8.crate 30553 BLAKE2B 30211bc6a8ceb5ba765cbf068405cfc08842b2521c5850647971f4cb4bc9a5b0a9195ccfbc1461de019eeb7744ee69f934922ff21677259d7b815800516df4dc SHA512 cd7aea29f79a33a0de2a52a0a82f2b57ea8f27908ccfe00a5f42248766df88b225023603ec56d6fc634ef9c1eb67ad0135c90d4c695f6f659db0767e7fda44c5
+DIST getrandom-0.2.9.crate 34457 BLAKE2B ccf7232ece1047000140ed6bb9a1afa784be87b5cf83e2f58dff77abcd79e34120b45336cb05e47fbfde36407957fe9da8b04971092ec05f67b321fde9142d29 SHA512 48e341125223945d1c02c4dfc54df303ae27d3ceca0d5a30b42065f5e40da600cb2010bb59e88af6b990d54b5eb4bf83ae5bbd27e13e56363f5f68be03ea9082
DIST gimli-0.26.1.crate 716168 BLAKE2B c138e890457e8724295cc8996f8e60f1f4d3eed46c865dc7ff2379c65e8d470080953eee70718867b73524f57d54d4a91b5d5ba74d79bd3da38084a880f3fed6 SHA512 c341354e13a78c4afeb651a0ed651f60d188957216ba51079512531ab1273b1b79c86c57e904b87064015f8e7efe4280d9edd4acf90e25fb29f8813a4c7bf9a9
DIST gimli-0.27.0.crate 720457 BLAKE2B 0a4fdb66844f3370203dc696a2f826135630b29d3aa78f378a162f5c74763565792c900174d859f4e15b32c951333fc35e46ae7c2fa293a70e3bcfde4cbb6183 SHA512 71563f0b086ec7e22475db77b4f18f05c706dd39dee37fd5df47e636e010c6ab1dae0f6759c6b90a0b2d7937a85878d9b8d62bbf7b5b7e2390335895c6ef2905
+DIST gimli-0.27.2.crate 721636 BLAKE2B 61a202545529618b44035450c696b52559d5aa8af091dccc613d62b21733dadde0da467d40595aab71f4532d1fc2f2a6b3744e0aefe89f244e54b9eebf422d99 SHA512 1c0bf53754db2503033c17988e1cfa824af4e01f43c874b02fa61a475467185b13657c7ddf891e06f5984db3ef6b1e37586b184443716dbe45db1aa8bd082ba2
DIST git2-0.15.0.crate 198983 BLAKE2B 0e340dedef36339cc6ce4cf9ac79014e7bcbdf9ebf688986d1836c3e2f480998a60a2722017381124682edc5dc511368497f03c9bd9a8c4d0e7690682789bf88 SHA512 8ea32850e592cb9bc8caa0d7a04042e284c11b9d46959807d8e6d496d93946342dc37fcdf1ed354010434798a404f415e8e980fee2ce4f5cb998e0f8736b5bc5
DIST glob-0.3.0.crate 18724 BLAKE2B 1f1dd380e7d668a0c2cff9134279ebda958b4bccdd4a65ff01f9665b45ec4cce8ffbd47eb46e52cf516c5fd5803561e6bcb60cdee21ddfbb8601a95d45500620 SHA512 87098ffdbc518442995c422120cef71f83069c8f88a1970ecec5105b0f284ddd92bcee929f5c230d5b90ae1ead7e1214c3eea26f4a8b26715a00c1ab8b09bc46
DIST glob-0.3.1.crate 18880 BLAKE2B dc89b3a664e810264dd7a01ad892e865ce35b504bfe5dba12d7ea8084da7de84feaa94c2208f1a1eefed90297e552636ad61ccebf6fc8cb4d01f27d605ad0a09 SHA512 29368160138bcb7ea5660f9f30c5711cfca8bc8ba836bbade3fbe8c424e7b4118daf27cffa677962e37e36f025fd2bb5a9c2aea865b0ff155cace455dfbb658b
@@ -115,54 +144,74 @@ DIST half-1.8.2.crate 41874 BLAKE2B c3c5c01771f05b7af652abb8e5490dde7afd04de1305
DIST hashbrown-0.12.3.crate 102968 BLAKE2B 492072f27eaec45abd2c5d7405c614c0c6a8221425e901bb6174bfa1688ee524408a618650126d6c683b7285b9bf0a21dcdbff7347e4d8f97bf7111defa1b7e5 SHA512 b3700fcd659a21a6b9b3777c18b37a83bf25542b4e8f2b963779a122f5d22e1742c064cfc03e649583e7dd5c6e90ca8407f8c51a0e8755f6a108682853022f76
DIST heck-0.3.3.crate 10260 BLAKE2B dc756738081d855583f239908f671e9b5dde72ebfb577f6387b1a169817a03332464cf67071708a4c4f06b1ecb222118e8c719073ccdec1c0f938e5ef378b13f SHA512 b3498e033f44e03206421e565efec5b21d13107b60d35e4476331c44e6effd75c81f7678f2452c822eefd581209a2ffefd2034779cca2d8b4fac4583bbbf777f
DIST heck-0.4.0.crate 11161 BLAKE2B 13b8bc39cf3ab90e71433e3c7b3e5f1c19404bec58dc4298dca05d94d5c14c2fc97350de737cb78aa45196b1241aa8f1ccf3a11ca309da5fe0f6a657673412b3 SHA512 33bdbf4ff9ecc4f4d74cf06590e056f4d96bf0d990d5381b9da5b65682b2495ed74e27b45419c2afa986c1f6200909d5175b137ae73ced5cc8ac869e4e1bce8f
+DIST heck-0.4.1.crate 11567 BLAKE2B 520aeea740cfa30b0cca12f73594ffa655f32959673b1c9caaca1ea0162e455546ae3033881394c0ba0516bcd5c9a997da02162e1585522d665813b9096eabd9 SHA512 8c80e959d2f10a2893f9a71994720f90747742bb5b61fc0a539eed3ea5679b140c48fd7f7690d7122cd6af5f7f20a19d412e3569fe741c6d31f6b2ce1e0b80e8
DIST hermit-abi-0.1.19.crate 9979 BLAKE2B 801e8052b85341cca388ada9db4b06bb1bd7b64474185b2ad06c0256b9e597639bd3dd4ba0053ea010f922e53969a4ab47b90d451fd9b94c8f2324055d151ea1 SHA512 1c877fcd562b15d2de9c151fd6c5f3ea4bf48abcb799e6139a180ffad5d64b632f0000d5707bbd92ff23a0e5f349157b9e0f5be8b50f03680b0fa47315dbb78a
DIST hermit-abi-0.2.6.crate 13027 BLAKE2B 4df5306639511a5f69594e903f8ce62482cbbfbfe272a91a12f407483dbac4e87c2d7e5668cc06ca5c0fc149ca93a3152fe6ad4bb3b96cacf56a22cb635e5b7f SHA512 bad8442bb822a9c99f6536db16523c80f5139af6a139bcc359c03725c59ff935816e2ecc5c491dc362ac75ab2dff41ab1e9dd29431f5e9a109b60eb9b7a8dc28
+DIST hermit-abi-0.3.1.crate 13793 BLAKE2B ece7865a09f566a95bfba5f1fba380bf12836c3761fc6d5a3d5543d3e50ca0eac81bb567d50b5643849cf1a752aa651a0db4c053c60faa8f1c74fe2f12819d71 SHA512 a55fe9230e4e8fef63284befff74108f206e76067257439d334d33068875368902dc690926a1feea15611f14123073867d7e9cd21397bc484cef849d6e1dfbf9
DIST humantime-2.1.0.crate 16749 BLAKE2B e2ae8325b037fb175b9200cc5c1944ce579056c6662cce307beb6701894552362a25e371aad65f8fb9384945b48815ca74bb8b544a32e0a5845b7edd30b918c9 SHA512 3bf29ddd1391d82897c22baa0ff3ed58ef6d6959859f1f8ed54d324caba5b6fb4422e56790511ce82f902cd11467f93c8ab7fc7b0e0bdb719308a4d0a446ae0c
DIST idna-0.3.0.crate 271128 BLAKE2B cf8a2c43760f03e94953c6692423a12f28fe763aabea8785b93cd247b3aedd2aeef2cd99978a027186290016ed924db39d19fe7d397da1ab570be9646bbb630a SHA512 9b7cee27811ee52ed9bb39fe82f724742eef2e5370642b6c756bd134c8cbc20bb6faa9f296053672dba8a66f7356a08b2ca99f176407b173e2d566d85d066441
DIST image-0.23.14.crate 226804 BLAKE2B 0debec9484b54cb56eedbf07c246b80afc6de99b03e5f41b5cb9aa29ad2269cb7e9891b7377ef7ff53200959317bd38b24e823ebe5c2125677ef2588eec81ae8 SHA512 4eb07fd698c2d902979ab06ae0baef4a53db74da78493c45f0c32d5903c5399cb8a1a25a2e89bf504ffb612e8153eaba4ae41df3d17f02c27e7991fdca518f63
DIST image-0.24.5.crate 270381 BLAKE2B 239022ae8f5cb6ae187fa886f531b3eda2134f3ca31501902a13aec104efa86dfc717aeaaad329a22ccfdd2d8ff3eb222d2acd83f01854333199611aa95c77a0 SHA512 710647226e060cc75550e6bf852a5d78f94628b44bfc5a9d20fcf60dbe10efb1b28d192e91d5a9ac8aa57e975ecc88b0f9b19d08e732694f1037d8c235b48fc9
+DIST image-0.24.6.crate 273618 BLAKE2B 3a76d8dbc30540d3b34df2bff54ac8cff024d3edbaf22d0de8acc6e48219b168be98699c823e1173d88316fe7b696d6cb89819d33dc04aafab010fce706ea35d SHA512 559f8396cedcf7141a05e3714f2e8e33e5b5873b0ea81d50f13c8e8ca860c1ec20dc2fe89feb59c8a72eefa1bf74f2b93ab81f28aea0339b2a4c24c5e4a94803
DIST indexmap-1.9.2.crate 54627 BLAKE2B dbfa551d33305db06b59d07c1b4bf8d4596a67ff1caa03062d07f6d78b4604ac0533d1c1fe3c371702dd7e65a012bfb960d79c76db37e264d0b44be576969285 SHA512 946c54881a347892dfcb55648a2b881d3a4d113424b8c76d8957980a834895318d11336dc438a04601916cca787420708ad7e271f965c38bfeae511ec1dedf85
+DIST indexmap-1.9.3.crate 54653 BLAKE2B 7bc1768589e74020dc15d3dd064009edaaef39b7aeb682d0ca8e49944e3f020b9c04d64feb102e88b22feb40863479dfaf4722d6a77b5d19e7ca553f4bf64c1b SHA512 2aa8069eb07a814c8fa3e11296c9f032ef60963520d7786ad20cca5cb7e73b8f76d97722a994d65295bb713020aadce5008cd3df5e99d8bd968ef1979f910a37
DIST interpolate_name-0.2.3.crate 4165 BLAKE2B 4399a4330a833c45918b94c78a269e9166a616714faec00998a69484e3fcb8cef20b2a0fc266fa6dea5abda2830e0f9bc958f51497b249c01e1f60373e198a59 SHA512 964944384c39d0c085c05a7643ed2e8a25e224e6b28fd9da9d971567b4d56e7c4887a61e107c718cd95c19c6d83f355256d1130206491f7b286a68899eb7b894
+DIST io-lifetimes-1.0.10.crate 37294 BLAKE2B 9b8836c4bf30e6d102fd9973ac66f067c3ff8bc2806e55f26368ebdc9854f2e9cc6eecc8014f9a0b22a968a6eea8be243fcb7a641d2d0dfc747ee08a6a1450bb SHA512 4b2cde9522780a408c5d4e6406286bc5dd3a0de1a99675129e9856e5d889498a127fd5dd7c937a7542135abc2213b60bfb6258b7871b8709dcdd79d60455bea9
DIST io-lifetimes-1.0.3.crate 35650 BLAKE2B 51182293d373618fdf5dbab016167a01b3e12f79bffcbcc00e1679c2f63a167f7fc291fcd8f886944a855ad5d9828aadc9aceff1a3e5c09106fb274b39e837be SHA512 afb868979d54bc99d5c8a1c31062c91ea9e920470bb1f0bce95c2ebe0ef22fe8970ba86b2ad570d789f648485ea4d75fd83bba34e5a590a443698c713a321388
DIST is-terminal-0.4.2.crate 7577 BLAKE2B 4ef84768184203b58e2b155256e35fd7a74169a8ccd52c3c74aec7fb1d6aeefe6232d049bbdbc40ede2acaf0be453caac19f758cf1abfd04cd1efdf4022c4996 SHA512 ce4997ce1b9f529a7d1b875985cde02440de288a0e823f2f5a9647e3a34658c5f56d254e85dd7f152a987f08f428bd82ce7e2af626c4b3c76cde50e8ae1e9374
+DIST is-terminal-0.4.7.crate 8356 BLAKE2B f0f42d6f6204c68bc8a9e1290b9b059ec55f5aa2f83f6966711a5f986852befe21ac9281fd611e65cb4fcbf35dfb212748785c7258c44602e7e390c51f09dec5 SHA512 56c00b2942963f8a0b5c40c96a885f85565fb09e247bfd5a3e77ca5c9e0e0e40a17a8d809c0541177e8b496fef87baac4b86c751765491ffffdb631515d8acf5
DIST itertools-0.10.3.crate 118661 BLAKE2B 0095d6e7f14ddda69605d09f74e8cc881eec1a1d234f705e667d7f9e738ef157b7ddee066855cbcad7f134bf79b99a4a4c77bff3371397a567cd34d98b68bf97 SHA512 9d17357eb68159edf4f4ccd2eb9895672c7fb633803166d5e24ee12350639eaf66f1c822910518185cd1f1ca5d9c3e228dd37525e6c337ba3fc7ce967f9bfc85
DIST itertools-0.10.5.crate 115354 BLAKE2B f24734bdfedf1dba48554e39b43669efcd4a43656eeb2c511096060daeaf049e1ad3eab232e757057750ce94aabad9fc8a0cf29a997edc6c4b167301c3443391 SHA512 d03c3cfba9841776913bbb6daad0c8945830c155f32ae4b48872e0f937c75a443f0ac9a0355f43b359ff75232f38b15f4f6d446b4be30b00b4209cf66ef770c3
DIST itertools-0.8.2.crate 89203 BLAKE2B bcf8c00da5033f36cc205708324fd8eff083d46313ee84f567e4f333d8ac1ebe44474d89835a312a5357a48659e2f51d34d2194d548256118943999a3da8ebaf SHA512 325d87a80c0b217469762ae958c46925d284b37ddd987c3ab977c864f426dc6e4515701864f12fafbe49289b45b1910906f0e7d884ba8aea217cac521c3d1ff3
DIST itoa-0.4.8.crate 11926 BLAKE2B e5a648b490908d0ffa3a0832342ad11264eb4357939bb39aad014aed3938bb60e82703b7e31929a458525061e9bc40539d33753bdbd722a03b6804e57dd1f70c SHA512 6911d269ff3ed7350e4f0dcfc6e9e0d70e25833e1e7cfcc57d5b8aff1f47b8be4f2e9baf1b92e5517cff63492be489b6d29b48dd9bb642e428acaa431216b68e
DIST itoa-1.0.1.crate 11059 BLAKE2B 5a2e22ab891ec883a90f652c88f924113252765579c03c783e43210fb2604e9e3ccbd4c1571087791be07bb99c4e85c7f85253be831b3ea883bc0ac18a927980 SHA512 8e7bc1e9bf4fc06871b9fe20caad4e0af965477d724f4c8d0e2a3a4d87aedf99f92e4e583a6440ce574d0fb43fc9d6a2e80add52a2f64210c6aa3b402e424295
DIST itoa-1.0.5.crate 10622 BLAKE2B 0d08db487ee791a252389e40e08e47a649d9eb90faad16bfbdfdfde46366082d2e3561fb8a62da80b122e7771052c50a0483e9618260d094820e20748d99882e SHA512 b90841e3a016a9a68cb090e4bf78959bbadecb3391cba71e0deeb5ac2723379ccd3251ec18a0bd055fba7cb6e71608ab1d7db990ad4d03cf2fd1289bd5834540
+DIST itoa-1.0.6.crate 10410 BLAKE2B 8b1dc9ae9d55a006bb2abe3b0282e5e77397814b692a87b9becdc2bb74deabf5db09e3d5a2f604964cbff046148025988a5d916480e0402b2b80646fbed32875 SHA512 e1fb82fe16e1248141d48de9e05e7abed0c6fef58f2ff8b77b52aca5f16f3600c46707ff4c7a0f0307047610f29775bda74948d6d1efceb74b37cdd22e1fcf31
DIST jobserver-0.1.24.crate 21303 BLAKE2B 571e6f18f09d56d8281d2b2d206647666dc6e9ebb0a1fa48f707d3cdf603880b78ac6a2ec2239658a220e70924ed1612dc19ad90fcef883f21972a1df4f67d57 SHA512 0feade0f1f0a458bdbcedafce8fc39f44adeb56772ea94a59f16f038a743f506db1405a7c8deae65a6a5c1695bfb363c19aeea1c82c41c7f4d1101469f32e42e
DIST jobserver-0.1.25.crate 21888 BLAKE2B 2ecd417446f9eb975119af4ec74c9b3463d061f5348ebca380f0ab9963ccce6dcea8c1671c7701f3f867c7e49d0ec130809a37bff466261a2fc75e80cc01d15c SHA512 0c014e7c72a070e3332463cfa6e9c9095d542a68f8631150bad0efa3706a2d6de0347bf7d1221cc3bc0f3d5f9840fe7188aad949559375403b929d43b4a524b7
+DIST jobserver-0.1.26.crate 22645 BLAKE2B 44bcc15330268ea29650e58605c7f21c35108eb64b790c005968955238e948d27b3d12e6bb06bfc0eb4a3fe5f9e5322bc0657200212bf87e08d9e043e008a5a8 SHA512 ad3ebb693018928daf399e918ce35ed0d4e643cfb5c78bde04697e41dc8adf2861023ea1cf2c5033a3026048ca0ebeb7f2f57a966ba8e420558e42dde8d494f7
DIST js-sys-0.3.55.crate 70499 BLAKE2B 6108d6bf4be72dc93db5c2f45d59dcbd7b94edc02ccb368a05bdc0e259768be4708e449647b254bc3c542a366492a02f0569d08e69c00249f58b07a566cdf97a SHA512 bd51d61684b3683d5b80df42eb80cb2e4688096bf14fcbd30234503709b1730ab25c7b58112516aeb5d7f44ae20e0ba08bdfddb0518a20603bbb4ca74544d4ac
DIST js-sys-0.3.60.crate 79257 BLAKE2B 714facdab00d567d074de4a25b69487400c23194d0f58ca784159483f9e02289acadce084b1514d8816cc9e0597800de82a5298b071b7df19a24df93541f23c1 SHA512 543dfd444539fad27bafcbbf112366f53d4ccf4bc63f8bb17820d818c3e1804656697ed6268a793f383ddf6b6227f7e9b3a11fb6fbb24e10732fdbd971801665
+DIST js-sys-0.3.61.crate 80158 BLAKE2B 07980db627a1f4f385586ad0609b5daf30d590931d2ca0c123f2d84f6c97be0ea935aaae3ccd082440c7e7da1adb4eccfd054a3598d99351fafdfa748f567b5b SHA512 f97bb546af2111fe072a23cbdc71e4fbfd39fbfc6be37132b306853d5737175d4c9c0c4661096012f7fce3612f81509e62a97df8bcb21d7cc796a8084e5b2e16
+DIST js-sys-0.3.63.crate 80154 BLAKE2B 378b8da12827a743c2cc996362934cfe249dc9d9dc0de507cef366fef4ed1b9d82b5ffc22f3ac6270c909eef901f494dccc8f01725278876ef2fae1945041111 SHA512 fddab182e0f093d8b600f86688ffe736852b48351abfab1e60073c67901f144bacbcdac867f533056b1213eb75920b08b6249fcfb5a15e650978966e8350918b
DIST lab-0.11.0.crate 15140 BLAKE2B 28763aba9809eaf8ee5d90438ed973fbcde5861d78f51757a23840e5c1823ac30e53cfdcd88c6a8f0cc44c6b0d9ea7e8e50192f40c290c8ef1e93c9c58b35a7b SHA512 bb56ba0af097c5822f6e9ad51f0e4202ddd740953336f9da79af072feb0b40fcb18863f17df4ea8a076e5af719144037303b0fff4fcc0e5c37a018129a08fa91
DIST lazy_static-1.4.0.crate 10443 BLAKE2B 25b2e61bbac48f0dcbc79c81d7bf01f2403d8269ecb6be3ea6147bd00f7a588df15a91f44dfc18ada19b21faa71de4637c7d493a8628cbecd0e547d74e616a23 SHA512 e124c0521ec7c950f3c4a066821918da7a9c6e711115d98009ae7c351928fdddead852e7596fea5937a9c30e4e4ce8eee7099b20248b5d6e3b2494b6a6d88cb8
DIST lazycell-1.3.0.crate 12502 BLAKE2B dca2d3f46823a52dcf87b7d6103fc4f1f83bc5247ce361946ac2d9df239fb43ce4b418104503698dff0242480cd014996e77da4ae0a88f3cedbce4eb9d3c9ef8 SHA512 f9d627afc28b61e9687a3f72260eb013401fd64057647641ff2e763770d7380ab1d2d8cbb4a3c8818d53d504c618a3b46aaf701f72f4d7b25d226042824c2f8d
DIST libc-0.2.112.crate 571445 BLAKE2B 3936f4fd08cda0ad5be7b1ff417b6dfc9abad14ea5cf647425d8a2e7306275e958fb5cab4de9eeaab95065176bc295065bafec3846ebadb6e15cba20de495280 SHA512 6c1a027eff21d3ef8078ad19b90b06d90790919a848e95a4c878e8c8b850d2e9be3fca36d8db39b24e472f15e5352ead1182d5491a0b382e06f8c3ead379c45f
DIST libc-0.2.139.crate 638983 BLAKE2B e92b296cf8c916e10e859722ed75f4790401662ff7aa2fe8ed84ef9b94a00538768be33c272f0881e42da887c8c43e1fd44d061343386216492a76fe5d308598 SHA512 ff5fae517c49c382dee9b1d7479b65b0a818780453e5c00c416847d02f42186e2fcf19a8a8dc5e9cc2611300690c6ad324f9c0f0e8172e913a1b781fb7c0b5b4
+DIST libc-0.2.144.crate 682092 BLAKE2B 1f699cb880a65baf9210527789abb35fe8be9565828d061e12b5c76330e21babab67b21e9a44be6a706f643f3c8b98503a3b40482183188b49f33f96a2489a68 SHA512 576da68e3845a7149f64bee425529ffec4bbb8df0272790182e49c8bad5b9744de21ffb5c1206753b57b7fe45af02c6c429e16522b72a77e5262482d64df5692
DIST libfuzzer-sys-0.3.5.crate 112480 BLAKE2B 0c566e9f8187e51708b8df88333a9ad92f80e62be22c6dcede44729c87a245f41ad254dd4bcbb76f5f6be3c7c426770b0800e82ad6e4b1e5b598e54ac033ee9e SHA512 d07c49351ff8bdb1cfc62f60cbf9147213bfd524e26dc50ca17f2374868a05581c432822c396222fbb9c72098fe47a57d97423f4b40fc2e7577801b829a8e796
DIST libgit2-sys-0.14.0+1.5.0.crate 1740370 BLAKE2B 0bdcec13f78292ad7849f88bbf21a8168371e9d4b15dcd09863b2ef703caa8e94a33da01164214620e11ff6f75038cf9ee6257c44aed5e07c52af044abca9952 SHA512 b2e1e54b172e6b0c71fdd02da0800e9120a3fe1b9c33b5fee4e667e9aa627979012865397b406fe91437425bf52e52a26245cfb7fa84f3ba64269dbe204582d6
+DIST libgit2-sys-0.14.2+1.5.1.crate 1742257 BLAKE2B 028e6bf6980d7a54b76c918fcd499684869f14cb160e821d6657e59925d142655dae6e018c9f29389de304ef6109197fd71e6e6752d0d0a53152f2c4820ea1a3 SHA512 eb9602706036ea62ecbc08250f297119a1c51ea09ea86ae8630dc6d0521b74db96d8eccc4106343572eb70d9a156415c017c6a91fb5529100fbed091ff8e7921
DIST libloading-0.7.2.crate 27229 BLAKE2B f85ba948aa88e7e3e32984e4a74e34efc01d3c35354ea30bc3d8f0a873094eff8d0c30b8583fbbb57e6afec8d505d4b53c8f2b7bf879921c986d5908ec6354ec SHA512 235ecd8750baef122f3f6ce673e4feae621d806851e842f33f95e8a414915776c33c11e6253da449faa12855f5e444f691c591cbe66efffcbe221d6ca2d32a67
DIST libloading-0.7.4.crate 27580 BLAKE2B 491faef2659270b10bb88ac46e0453f747f35e78d7f28b7d6d9151177b4c7a7aec0a1efdf702eda0988c31e9dafff2990eba4e6a9b0b695c535ea9086ccf36e7 SHA512 34439d9eca68bac8fcbe2bc94a70e07550e7e95d713ab74ed60ba6736ec807fd9c9135c178d436fbeb39afb074b2a9b05775d953340845c088f5f8712f5f56a1
DIST libz-sys-1.1.8.crate 2481844 BLAKE2B e890a3850aed5348afe7558168c7571564687d6a7d3567a4d53ffdf79444d38c4d70d35891e16f496f31169bf73b669534f5fc584f9ec520b518dda05e80b882 SHA512 0766ab72cc1414160ccefe4812e6204cbed1341607e5d17607f24fd4ff81dca68d8f2cf43e1d27f332a508d602bff0ad340c4c647a5d5f85acc120c19cfb4100
+DIST libz-sys-1.1.9.crate 2404387 BLAKE2B ffca4e9993a8ef2af6360d38cc8f2d3c6f1d6ba27c689057bcd99500c05b80aefe5225bcc77ff2a1c75289edb0da617c2ca15c4f2aef7c06745521721caf4728 SHA512 0d474b79aa55f1cdda8f52c87fd2cde84da80db5e18485b3e6845d40c49c6f3b3b92ae73e286b06acbc0e05f36ef3975231fb57e1b5b6546ad90a46752fa88b2
DIST linux-raw-sys-0.1.4.crate 878981 BLAKE2B b8708b06e48ef4e32d820b5a0e25ce12d3d985d729a2d7fef46d0b3b4518b4ad40d037d4689fb2270f9c2583dc031d0f4daa26500197e6c32bffd1400357934c SHA512 ee6d5a7a08b183681ae00890784c9e6b72e4c987b2ce2d7de6e7308b7a10d4a2b532db3d5121523bf5d4a262407f3033af4f4c1fd9f09be091523366fa30d768
+DIST linux-raw-sys-0.3.7.crate 1013423 BLAKE2B e77b372a391c0389674331647f8f479d96ebfff99f6bbe60b6d8935e035834026e15c056f098c91ed328e512b72b7e25b04534841aac26e658991e41fb9963d6 SHA512 49a84d3e57f3e3985fbb82a2d59df55bd7a259a65a2b2dc180b6a32e92eb1dedad0edfdda1fbd51698dfa31b1ac06777338910c63564a14d1e85d9b7344d21dc
DIST log-0.4.14.crate 34582 BLAKE2B ddfba35947ae1f5905cd9ecb9eb862a78af6f00ee8b8fe6258b369b140928fe677a02b1b3ca5bdec36ff2b16abd85a9f49688fd5f3d1ba2b2905e7f96b8a84c1 SHA512 796100167663d85a7bc4244cd305e9b3f0a1b1520764b63464698eb136318d0928c40c16f5d19d9f602a5bf769851275bbd48d66b088b0c37be7a6fb62def7cc
DIST log-0.4.17.crate 38028 BLAKE2B b46be3719fc0a53e50b1f342762e188587e9f1ceb692c72473ce2663edfb8253742d30024e68c1444780ab7fc0e2d5b0601b8ea7228dc3405a9342a57548e605 SHA512 2477d88db42b1d92c30708d88823212e236f613b3465e85eb425f83f8d16fadfaf0352f06c2999a1852102edd2f6ffb10ecb539d8a3b6c48f552a25622ccffa2
DIST maybe-rayon-0.1.0.crate 2781 BLAKE2B a564232c540f12a27c7861ad45320a28152c5b07baa1088a1ddb0ef8a1c92c163061676bee127721b48562f010907b4e8d8c1696b025aaa2615e7dc689c1a5ce SHA512 18385659062be0fa98b3b0ebe6191b2fd5fd1d3d8dd5aed880cda136e3cfa7193be4d810dd23d9e2c5a32c4c2a4d1720abba6b16edd9381c484accf648784a2f
+DIST maybe-rayon-0.1.1.crate 2901 BLAKE2B dca587f95e7766a0050b320cac7adb31d3fe9b84688c241c004824da684df0ce5f8c04053cc120d70e4325fac7bddc5d0dfc5aaf29c791b67503e7588bb81182 SHA512 6f4e0e2a342fc86b5d0626a08779075c68911ffd3f837ac6ab2c15c821ba96e50617cfc9df9d16bf96ae57fa1802c5549e21d67f79e4e1c3f10bce04b88115e9
DIST memchr-2.4.1.crate 64977 BLAKE2B 31479718c118093b684bed946eae0706d77d9d275bd49f5aeff4de490f479abd60c7dc462150eafffc6d6fc1da0853123b78be038826b775d2a41a4c39d93ab5 SHA512 d8912e3902a2126f86159bdc998532a2890b882cbb7d59b5a470fffcad4c32281e045f2fff48a235aa4189f1928866bf3d33b699d50866ad6b6c272bba7adb11
DIST memchr-2.5.0.crate 65812 BLAKE2B 57966413a1f933dcb2d2d4ccb29c247070f65a83299b2a9f5aa83f5a48a5c5f1c4c7c632fa63bd19f9508e9291e7258db2f16e2813a56fd84e0856f70f1e67ab SHA512 444a163b484c233e78c0e2e4d51f01ce2da93d7d29f516a95e4b0866b20bdfd3f34137653abed53eb70387991ee3e2b5937d8d4360a85bbcb50a93005a75defa
DIST memoffset-0.6.5.crate 7686 BLAKE2B 9a797388702389076c426052c3d54dc62802d5db8bc5c9c83990429f2ffaec4fab4c7dd3f09cd0704d1ea555e87976563bb43408ba54b5e66ce7e406d4604009 SHA512 11bdd9185b99dfee8e659e051b09ee301c7142a372a8117864745a5085c015436d2efbb1478192886f09cbc562529e209d2e3325d94938a64bc75b1d91d2bf3f
DIST memoffset-0.7.1.crate 8556 BLAKE2B 1ef270f1c8dba32e66cf47a1835f10c342024762c0e56953f16e82d575250028154054d4c42b1324c60f955a40fad3bbb1c5fced147c11c9a4ad62f6f0e948c3 SHA512 40ca3c4b1fb929bec75bfcde0135037f81a6c5aa80181bc7dd7bbcd9c0946288eea8d23fca95e296567ccb02155ed0f66c7c23644b5cb3e6d3932be9f9742157
+DIST memoffset-0.8.0.crate 8912 BLAKE2B 19ad3abed21fc39461b0382b15a8cc312378aba36f042b1e5335012115d31b350a4e3bc720f1eea300d7d19b9b317f75a28d4ccd78ff3b31defd9e4b3147899c SHA512 47adcae0848ff967035e10543ea599c7af9c5bad387023eb4dc77c9e8d875994ec8139b9941b3ecc4fc17214d80944a47a3be174a45b334661914a5a7382dfbe
DIST minimal-lexical-0.2.1.crate 94841 BLAKE2B e6b8919b80d938d0b98d60d4f5f29ce43d77ebfcf8b18bde08909141915c6ef4f0d07a543538d4f3ba8527a9f55926d4a8e83473248469d087e80b274d701d61 SHA512 385fab51884bdcc7b0f2728a219ab164d0dc8efe42160b918f2c09f79ecf853fb12bda006d11e649f097bae1499dcd41ddf2a8784ee7d178cf2c28059e46078c
DIST miniz_oxide-0.3.7.crate 44996 BLAKE2B 0e89ec4131e7abdadaa9feb6019b31853976a34434216e0f89ddab519559d0e1feaf2228fbc09906e51fb0242a18abe1a67a5362e080c19fc7cd00c2f95f08ae SHA512 d4eff239f8d6e947b94619e80fe03ed32aabd1a6393f63145d70ed7f08c51c45c7261d8157bf61c78d1637ea1f71ef15f9813ec733efd8afe6aa14810888718e
DIST miniz_oxide-0.4.4.crate 49938 BLAKE2B 3403416bf9d10b67ef976eb23be64216027c67c56225efd08c87f8269017cb5174ae64f35d18acb66c7a1b831347791cee5af565f3ddfb31ae4210221604b0c4 SHA512 2c6e484a8a53c6b1fb84e2bf9518919e6e5ba84e7716c0bb8e33b53dc0d3432c35f28f19c18368e27c94f6df66b7674f514ef889cf1b19f546bedfb6e6ebaf6f
DIST miniz_oxide-0.6.2.crate 54536 BLAKE2B 8127ebec5a2cee1c2101d9533da573e01ef1a0fcb169bb0fb1419973ddd2e6953d8dfe85f9509a5d1226643ad290f0ee1479fc68f1788ade7ddf9633d90bfe1e SHA512 250782e214572acdd11df87c2788cd5f78e8388d9b285d0a850918219678e262e8b9905cc88728f5b70d13920ef9d19c43d243dad8fbcc18f8c8462662ce1419
+DIST miniz_oxide-0.7.1.crate 55194 BLAKE2B 56afbe0c0b3eca98105ae2d507493f365353cce29a6b04910ff26bc75899400fdbd067756cbda7b3d86f047fb8f3d737de00043a4a7348a813cc43e45824e33f SHA512 5eb6ffe34a866403273ff0267ff7838aeb50722ca57a03d5a1d842a5f19a3b4af570b133a3b9d64d78eafe49e4b9732b92dd63fd9c6b0ce59b3295daf10f6a3c
DIST nasm-rs-0.2.2.crate 9733 BLAKE2B 60574883ef3215444cc3245e0b789f4f8e87813207720f0abae3b5311ce4426d3ad2629bdbf906d400ab785bac77d4736f055a4a614324481b700d9d850a5494 SHA512 83c6953e7651325b30f58a63a1cff203656dc0facd57b2f6285999e5f77e95706c9e16b2927b237ad6a67bca29253632955b9b49bd6f0600cde2ff03107b1fd7
DIST nasm-rs-0.2.4.crate 9919 BLAKE2B bd8029f67065e08d73c338dc63cd9bbde87ab2dff6d80cada6a24abec59beeb44b2656efc9bdf81c307113fbee36f840e392a364e09115523101435f7747c5f8 SHA512 220824b9acc693336a684e1d4017ec22e5feadbb61c5aa98c5a5061d5e3e54fb35401927d01fbb01f28f2cb5dfc9d1e48806428faf20b0a0d71f77789a45e352
+DIST nasm-rs-0.2.5.crate 9920 BLAKE2B 2fc889ed1f8c743afb639265d78b3612cc4da8c0185e08de742625b5b34c2381553ef8baa4ab586e0b0120ee3350400e1168ec007a015f912fc2191058e589be SHA512 b636dbd1594f2f0d1f71c3dc76fef94c9940c4a2a735b86c4b7c05838024c86122c9e8342b8f7ae8e8c63c5a56344a1f21346317952552face0aa2b6425b0465
DIST new_debug_unreachable-1.0.4.crate 2561 BLAKE2B 5c9831b04e2a44b2dd27816df0a331a8108991a84ebdfefe4e42f325ec3519ee50e89a99d490020a65a3d75acc371316c2253d2c6382453a0b15f4c3d5b96520 SHA512 6f964bb322aa8f2ff92078381dd720527600c6449e237b703278cbcf47b39a2581fddfc2f34ebb7cf31229e33d58de48bb5050e083fec6dad9aefddc1d771c85
DIST nom-5.1.2.crate 136174 BLAKE2B 32387d6ded0fbcdee8a1a0d0a08cd36bf92c38906cd199b574b6b9b24f6c245f2287e04374f7d84e2867d2785aa16d8c01ae3bd3bc811829770232681e2d33a5 SHA512 53b8ddab62475588efae46c78b5fd086a14c0fa505c84e625fbedd6dc74d4ac047e9fbed7312b797f126e9ca1f056458d8ffe0ab13f0117de685ef8b43f86aca
DIST nom-7.1.2.crate 117341 BLAKE2B c7956334c92b7f7d427e1eb7618785bc240217a398e6a5bbe58454af99d06ac997c58ce239355f5f8ce4fd29b54ccbdfd7a07d289810fd46cb83554efb02715b SHA512 7fdec020468d6a16fa1d2602478bf07324605f37ef6e2ea9dfc6aaa3a772fd6d54b5facf6b5f717368e39f269fc9218ffb6d1854db60cf2d45ae83e5991d75fa
+DIST nom-7.1.3.crate 117570 BLAKE2B 5643b67990b7305e101b16b8cd27c447e162a7adc6d0dfac00920b0cb50fea98c9d4edca63c34f6845cba05f8d0acb407cf3045cf64a4cb28e53c8b6bc9090cf SHA512 1ffce08dde299bc0e0367ad59c7b6a83e23decfa11115ee076ab91ec53cdd9ef37e4c2103c96eff23a7b6b8b5c3f67c83ce1917928c7d4c6462083bdfa0c9cad
DIST noop_proc_macro-0.3.0.crate 2157 BLAKE2B 0be977f9820fe4cab4035e866d6ebc77a07cf634ee6889dc91581a9eb43f308b0fc60b87c8bcf200742bcea4af14a94c69c5b9dfbb32b95454219a4197fd5228 SHA512 a5ad22e815b8c574b42f7b70486a3fac319c24334ade74726ec07b976a838954d1de2d3632fc55ce6c8de2673e62b987fb4607a49c576f60959b1609e47b3771
+DIST normalize-line-endings-0.3.0.crate 5737 BLAKE2B 935b2d20ccd37ca7469641a37aa0ae9b6872715d6ee88d568d0ee16fb76416cb1a0c585cff861825de8cef11d864b1dc1b350911c28d64e071d8fb444bbdf740 SHA512 f8e2a6e333b0e8972febe8b9cf058c8d899c384fd177e0b6ef1c5f94e0fa18192963970cb1a2ba80e3135a8cca66cdae6796e4d84ac6b325bb369575bdfc6eea
DIST num-bigint-0.4.3.crate 97799 BLAKE2B afe9a08bf20dc974dcea12b5f9dd465e8b399a0cb0a6d0028d08f7f753aa4dfc929710e4dae883e67633d9dda073f995287e5315b1487e8f99f8f23f1f70e581 SHA512 4b38eaa8b51119dbc7cd8a1e177f37ec935ee348b693a93378742e9bfa68fe5f7e5062b7f34638283c23f04d2127451d796d310cd8adb64dc8e865b28708374f
DIST num-derive-0.3.3.crate 14545 BLAKE2B 3af73d35ced61f8e4fa2f2bef695f72a3cf1f1a67c77982d3518d9383331f34c1222dd7d72802cec22baa108ae08a87805a11942132c565ab8439c4983e99871 SHA512 e0f4d06fff26c2d2b140ff5ec1ba655a46c8d8fda484f03a8ad4910e8cf1392f0130d5c0bfbbe3bfb95da1f93e964f73364de6551fddd81e6fc27bfa35c15053
DIST num-integer-0.1.44.crate 22216 BLAKE2B e1c08427e006cde6f2084adadb6086e87e6d6f8bb8dfa757a8228aa671e862a366e4bd8ca5e0500008c18bab128aead9bd5b1e53568a4f40afadcaf3882ee98f SHA512 d07e27ede02a1d007373935fd91e57a26e0e84ae14bbe24be66763baae6850788bd64ad2598d2bde4f4fad6c8a4675c40bfe0927164b16b9b69de5e9a83d9771
@@ -176,17 +225,22 @@ DIST num_cpus-1.13.1.crate 14752 BLAKE2B 27490aeee349d944c29e50b44e9a84371030459
DIST num_cpus-1.15.0.crate 15680 BLAKE2B a4d98b29ad534de9bc262f58f615ec06bde5d5a2f5252f09b5a0a6ecb06a9daf9709ad9045eb08f7cb744d8a838854b9095aa73918e06624a84efbc11a9a5c1d SHA512 fd4772868def9460a6ee17ef6fc00b0bc74115eec891bb3fdb07ba5b5fe4057a2ac69eb31ba8beddbd3189c7be4545888e5724879f3a89132fbc9b32aa7bb10f
DIST object-0.27.1.crate 228030 BLAKE2B 48ebfff83ebd0c1bad5f956f79a0f8628f9cdcd75638ecb92f040ed84f625425062c16449ce44b29d9d99c3950554fc1a480046fff922bba30348ac14d68d887 SHA512 3f25b663fdbf9a38090c2b1cdc03ca40bead87fb83f99143e79a272dfa4f2fedc387a50d3412d42a53aab228bbcbc6967fdb5a0c8db0a8a3e3ae9cdcf1061589
DIST object-0.30.1.crate 258223 BLAKE2B b5754225d2aa81bfc40fd98017ddb13a124df0151fa45aaf6ca030a295d9a351df495a1e0b08d94bb5b4dc05229c8de32201c8d6d31640994dce97b2784d657c SHA512 dc9a3a90352a662c9adf0f146ec1bd69bf5b891b6db9f455e6fee4317c74414cf93b2358ae338e14163dd55a8e6892d1a12b73636185122e6c1c5981a5453fd7
+DIST object-0.30.3.crate 258901 BLAKE2B 73e190fcbf7c47950ac036306ca8e6e03bd1772466cd580fc51e246868cc69c4e49c712601759533ea650c806a8363d0d77582e1363ce2b5f92d4b7439fde91b SHA512 61414475d3fcc7c4c3ad8c1316f6ada7801e28590d98bd425fa246f091d464de4eff7eba7cd74904517dee95ae0673e3d581400adb971306955a0aefa814172c
DIST once_cell-1.17.0.crate 32736 BLAKE2B 767fc8f362ce5ed7a9eafceb2f0764a2a1c7f4070e22d1e6e2498b3c841c5f761e77fb66a34b899a75d48f1563f6b9b73b90aa9431055d4e0269c47a1b043c1f SHA512 291d87380c0ea17fb3ffc9fdff8620d2ff55601c06ef65b2f0c54254fecd5b488645c6e94c6026b82071893f4d420491ff712399a782e14efa1e323e5c299c46
+DIST once_cell-1.17.1.crate 32856 BLAKE2B 8bde2aaaf9ef45d1f6b8458686179f1fe9295ee8faea269e9b49779583ce26ab9dafe988c3584e841a9e5d05e28430ca967ef3b25e755f48f0120d9c99cdb7bc SHA512 1302d51801e38bfee23e74c0046f1ecb1d3c27309b5fe11c2b6c99553b357db502ce1718695602f9d8b10429e8ff03f91c016d5d604957083728293824c05904
DIST oorandom-11.1.3.crate 10068 BLAKE2B 443ced49f63015823866257a36a88e566f75adaa79511c1c73f1190ec8855ca590d2b6ece07c2ad5e9e47a89f7891af6e9e43b7d74d9ac57cb3551e60b50aca1 SHA512 51ae60ef51da56d7673f36a6c5b99b743580c5f5be54fdcb54b69e5e2f6bbba3267f96b74e7cd6dee6962dfa6696fd9ed073f22726a2861b8f2601946a8efab9
DIST os_str_bytes-6.4.1.crate 23101 BLAKE2B 252fc826f646bbb999fa80b47f58ac9a77e409b10a99284c7b669304c0cd701a3d20e690350018f5d7de8c6c7d38521f3413ac81d08067dc26f76b7c0e5b056b SHA512 2199502ad24449e08370686a596f905325f5b145e105e8c7bf90ed7729bbc405e065fce62c98eada40f77f0665ca041db41f16cc8e62473501eca32c24e56f43
+DIST os_str_bytes-6.5.0.crate 23166 BLAKE2B 60f5beced502b7bcf165dd2bca2989f9039fc22cda80bbb09d2ed0eb115831c6e0f80292e656f4bf9c0b0635ad10210c88c1b23bcbb59b8d2729b6cda473ecd7 SHA512 cde7779ba24304256cc57de78208af4d26bc91dae7fbb9c85e3f67c3e35cb6268caf3fc9eef530a8d3cbdc951ec3534223f3559d2a013561912231ebdb1801b2
DIST output_vt100-0.1.2.crate 4062 BLAKE2B eed08c0a1800560d4f623f451d818e3c7f0dcd72fa99f4e5e6dd4934e50a9649011ec955e06728fd017d58bb9f36cecbeb9b4aa8c13c040225c24019f774e63a SHA512 b8eb00a541bebef2e0bb44975c4547fadfd4ab88a14aa8e31945f3c73531a550cf5729f1f3d18fae5cf36286b82d1a54fb08b28720f1592ab6cfe0814c8d3036
DIST output_vt100-0.1.3.crate 4473 BLAKE2B 8c75dbcd413e1273ddf077f3b57996953d70376be6e438ee1a4de83a8c3c535d4cc866849aed91df74aa9b22d41d428b1142cefe035dab7404ec89af9efaa832 SHA512 ccca3b4c582e860b0643dea78302fbcb96f8f86b356041ae9c685e7c48f1721fd3366dd1bea39afc1bcef03b298d0f6c87918a1ba92a56e6b06bc8b4123c0d89
DIST paste-1.0.11.crate 18349 BLAKE2B 02e3168fd03a4036bff486cd01bb7f7fa2c355cb6087c4b92c091e9e16d6d098fca1f142cf29fd0428fae9fc32bf96e84a0fd59ddb5f6bbbe155dcbfd1d41558 SHA512 136f7e840a20d18b6706929b0c440ea2d546d0931da91236e3b401e0dbaa74aea95510277620fbcba401f2ca7f56a315049a77ee16a4b228dcaf63f90bd2c9a8
+DIST paste-1.0.12.crate 18156 BLAKE2B ab4426f9f588de4c50114421c4f9a0bb2fb5f144e9cde5d0d8ab14b3a451ff5219a99ee1cfa82dd48cae86f70d205dd8fef591651e443ba118bb27f7446e601b SHA512 fa75129e5463347ebb871f2e409463d2f164e1d9cf7160aca044dd280582354cb3286df05d56acc209174e371b577996a5b99ff35f12810610172bd9de21f98e
DIST paste-1.0.6.crate 17808 BLAKE2B 8659076678f659ab0bc5d9c626d405f1f545742c79222348ad6d974beeef4541663e166247433c617829e5e65fb7a5b4d00656d95d37bad214bcfb2182d45677 SHA512 cf7795c64ded12c16ed7bc90a29bb36156abc8c424066c62d3eff8831a86b4133965d87b8b76b17ed5487ec286fc80e05fff1180833dee4b48f0429016bea25e
DIST peeking_take_while-0.1.2.crate 6697 BLAKE2B 31571604d00872900abcb677a483da93654de523bbdb0331c326dc9a3e531f246e571bebcb983e79dc46e33ed6dd32b978be509841ec0d9f1e7209c06289c22a SHA512 7bf8721987c3e2e1986683dd897746592a909382f02b840b777effec7d8b0a864c1a83b03c73d555e359f22c423168a54b75448a7e7b996b739527ce8c88b721
DIST percent-encoding-2.2.0.crate 10075 BLAKE2B 397e59acc3953868c709244b89a2e0db3304c0b574ecba761026b570a485f2cb5b0b2a0159586d1f342ec395ef02ace536da3bc1c72093e1cf93f8b37b26b0ec SHA512 890a5256d2b4290e12e04a02c3529f3a017faa2b6016a4dd0f08b36509f0b1107eacfcb4702024d6a21ff8852a11f263c1adc096b16ef8d12c45a734c087fe68
DIST pkg-config-0.3.24.crate 16489 BLAKE2B d0bd099bcc39928b6758c22b14291f2dc4f4452c0837aeed8c3ff6086cdcf29518806e4f3f379804c998d752b717a26d5c0054c071c5f4c224a3e03cc6a3ee51 SHA512 be22c609b3d5a9a38bab1d30792cff397cc908f1c53fb2da68a9a7d1258e53ef64c1c5b26d840b0ed1d35b307c98ffb499c82e5796e88be0a6ecc0c6f3b5dbfb
DIST pkg-config-0.3.26.crate 18662 BLAKE2B 2ad92dfdc8ac0414b12a61dd30ea4ac5f142bbb55d0555ecfa3a53e750367e1b11766a693ef11f8cbe5a2ddb978327632458b2bcf75be7aa8f973262033349ee SHA512 509c4d1494cccc20de6a62d9d037c63ff77ebee8d907747c57ba0926d177b08fcac0231ccdda14511b453deb0b76ddd10f8fbdf63ff94257d72a12a889546435
+DIST pkg-config-0.3.27.crate 18838 BLAKE2B 1295eb4f08751b3663cb2c7c2753f29bf2ccd80f4e5856909fe10b6f006c37fb9672c9518b9b416546469faa18821512673a66543c0bd1e848bddabc456d0a90 SHA512 41e9b8d4fce6b8244c2ac8566318a001b481bd42a182f1a832c81ce93c6a023e18af03aa3500b134c30195219d35080433bdba69b2594e9665081debfbb4533a
DIST plotters-0.3.1.crate 8595577 BLAKE2B 7c500c43c2b2875d9dc17e4eab57cbd8a470c6064deadf4e78c429abe2f1e97511f64bc67782b4e03e7cc47c8ac54aadfa5f7cc8c27d3b4453d2ee8252896c99 SHA512 c7bcdf9da56c2d1c03053f61256d44d2384fac1a9a7e0db058090c13b359bce76a2a96bbcbfde04fdcde0a9dd3db8a1a22bc57508b0b6e4a374c8b35ec6c9707
DIST plotters-0.3.4.crate 143219 BLAKE2B 3121caf7d2a62d3dd337d887ea2343981d23b26ab742fa192456d58a73ebd07d384ad6e1de58671b5c06344c2efea8e32168d830051d425a63299d15746f3a73 SHA512 04d490ad1b822195259a661dbc605ec2f8e190a5bbbbf549741b286aa888b26a2c7468d226cee7718bd69b77e026283944367504db98c0293b3db4ce45103534
DIST plotters-backend-0.3.2.crate 13524 BLAKE2B cfd42df0fcea4e5ee944a6b8c48e3b7fcecefd6d97f07e1c333067193c211da9eba29fb56e9fc8b861cfa2d1baa3c042fddb494bb66b9109656b26bde7901f7d SHA512 116bc6866094a2ec40a9ab9363378566ff37eeb4a4e3805562dd3e95f1d5e8664b54d3dc858a2c9974b125e308e46b77c294de2a655f836d342712c32f0242a3
@@ -195,6 +249,7 @@ DIST plotters-svg-0.3.1.crate 7596 BLAKE2B ac8dffc5dea833c0506c472567056be0804e5
DIST plotters-svg-0.3.3.crate 6916 BLAKE2B 74c2c71afefe1148c82f8695ca3ae5283bad5b084e542325f3b6d587eac23f9fc087b64033043ff52ebcd661d40bb91c33ccd0de3c424ac0916baaa3a69c63b6 SHA512 1233eece4ab91ec690f93c7134ae8e6405183aaf500b2dce6973b6e212058334b7335aa80915e40363b9d2057398028c57d0b3aa974b88bb42c4e0e4726e7a92
DIST png-0.16.8.crate 52598 BLAKE2B 03f706591182a89b0566f8a793163372a4db3e7a742f3aadf06fda93068c42a4351722796ddbbb013fdc1be5a88dc02debae50ab1cc3ac81d72d07a814b456ce SHA512 df96f8580d8cc11df54788ff64ab3269b14369a467d7c29964a5b19add5e7a82258e6bfda40eedf135bffa98a2a86afbb725cd085cf37f6c433abf9a7485edee
DIST png-0.17.7.crate 80979 BLAKE2B 37628fa2282c7195f983a95939eda1c73745f89d772904173775d7e1906b71615e45de8f59489d6842450ed6f7c7b809b28881c84d5a3399da38013fc3062c79 SHA512 f8009925a6948d8b9c82007f31eefd18d2173274816c0329673e48ef725aec52ca3aab2b91e8fc4f776c8f7f17475a3e065835e578a632445e1bd70794b18270
+DIST png-0.17.8.crate 88654 BLAKE2B 2c7d7cf032be40bcb614c2cdea6e41af2d15ca701377af6cae1bac6be7dc154d33a1d31cbaebe4848044ba59e02d56cc4b02bee14ce2d93904ae9bc5e4b6a699 SHA512 65a7a98295f6c4d1da79d17c3ad5a879e43fdafe3a925cf92c9866146032fd223144a84c1e6d95886bdfd07bbf35d1ef38abf2ab4ed09373c9fccc12992019af
DIST ppv-lite86-0.2.15.crate 22002 BLAKE2B 3f967f112ba799f18a3f897c944ea656994abdc7c912868023de90d3885a87d9544159c44b6aeeffd83c1fe0172e326bed4044c2d199ca899da4f8420629736c SHA512 6dac73153d244cca97ea00e429f783a7d03b48f10ee450cf6f8d77581010b28be5048f53322b0c888b425b5085f440b6ea90599ea00c55c641de6e29da42f0b3
DIST ppv-lite86-0.2.17.crate 22242 BLAKE2B 48c4a31a3b555fa37072c4de083580bb769747c7668748541af472778b5b58c3e7ab2b5e178760f542f973774f09910bdd4058ae5fb9d6b10c103eb76cfd0d3d SHA512 539d916e7e5869d832045c1aa88aec519bd000227f9b01d4dd0bfc9ffb640d5f5eb21b05eba718174773c97192a655ad3cb31b53ceb914dd19179a6699b3583a
DIST predicates-2.1.0.crate 23141 BLAKE2B 32dc6455d74e4188385e196f9b9042411c0c1278d12121b4aeaffd58d5adbd201ee4a3e51d908dd59528928f5751f53a125b53e1b15542ed6064c753cd8cfe52 SHA512 824cc99e8e904e5257223bba104cc705fb2e1c93ec6b638cd898dd53fb29217978de1a61c2f11caf1e4a0e076a37efbd09a2998457bcf4af1c2e7eb3c089e0af
@@ -209,10 +264,14 @@ DIST proc-macro-error-1.0.4.crate 25293 BLAKE2B ef918c5efaf2545ab38787c8d0c07315
DIST proc-macro-error-attr-1.0.4.crate 7971 BLAKE2B 98e2925881c2be186e22c2c439697e91d43f807eb61a5d13e3b0b4321ed50a74f3d699942c04b89b6fea0f156bb5d19ebcf22f9cd4b98a7e6917c437600ed823 SHA512 2606afa9ec78d7dad4500c98d3a5ecbd02c6b53ab829c742bed7f57b322a95238ab4e01cf268746815f1424fd9b02eddfa30e72f98c66106f57765f3d3116495
DIST proc-macro2-1.0.34.crate 41072 BLAKE2B 6b507e95802fd8dfca422deace25e328b1e4c5a9515c83ae55f8a34b1c1d34ce427afea7d7a748f582abf903245ed8c2b3f4175d78c8c9dc9f467c9805329d47 SHA512 960036a077c3869386ecb5c2019816adc70e9a9b32ceeacd4b14b39a91dbffe0b21764ead7237ab3aa553b26cb6732bbeccacbaf83c8dca9069b11b9a85dd1f8
DIST proc-macro2-1.0.49.crate 41977 BLAKE2B e31c81d3b836404bd2c28363eb0cf2637cb7fb1ff5fb39333158be2b40b15f6f8f582edaec51cabd32d7b215df39c08a9632208fe4da36fc435dc32a48483a6b SHA512 b490d5cbaa790163aaa49c1595e694dfaded61c59fc23f9b6d359f4b774ee6eb20ae8efc5f5ebd59c8ca75da85baad61c065451c1cde03b3b6148e2aaa2c9e1b
+DIST proc-macro2-1.0.56.crate 44454 BLAKE2B b2a1f28979245a784a4b3a0af8cb04bd01ef3e7aba32c45122fc05a6cceddb1b7303890827f1a2cb99b0b2ae013cd772bffd6e94ea226f0030cde867d6c22aad SHA512 511fd8332eca47ed834736d405e18d53d83642cf528bebb8fd67fa5561e19b0a43c359b3e8020ecd28f9fafdb065c484ca360abc0287a0f97e94d4f779145f03
+DIST proc-macro2-1.0.57.crate 44506 BLAKE2B 6f3535a71213b2403b4ffd088366cb9e6b729def8b31afeb153702d6af24e93b4e90ca3d167ee260d7ae92d0c30ef69675587f63dc2c0b267a9354db05f648b4 SHA512 c812e51f1a85b9592d2259f5568ed39ebbc837a44b31237b943f6f0fe9c6149854597320d009730f5d6337dad59bbf648a0c3764fcfdc74436645c9edb8e9336
DIST quickcheck-1.0.3.crate 28069 BLAKE2B 5f0ddc8e22fec55e879745a95024abaa03d7bcfc6453286eec072663b36a5d6ae247b3c1622c4743e1ca9b7c4bb21da0d095aa5247f32b0bedc393f92cda6bc0 SHA512 07dd707c9d3fd0b9cedbba545bc8b4fc1ca2770d169e444f8c96f8306d3161a6a3e9189cc5d0d6b3dc4221f7dbc05887dfe2dedc914f88d5e69ab2b94179185a
DIST quickcheck_macros-1.0.0.crate 5275 BLAKE2B 1681fbc5a476c627da442d601d9f24dfeaa147dbad7c8d6989ad73cf5a204963c29b2b5bf68513ba74c322f74ef5ceea92594953e9034921a2c8132150252779 SHA512 f7de86f76a53fc36063f10f5405979677a2e48a96d13c439a4aa98e89ec7f3c3cae324b8dd789a5236630110ac9a1763f28361442cca08d1a1ef458c7bfadd55
DIST quote-1.0.10.crate 29960 BLAKE2B fbd4e3e0e0f452e64b30399fdfaef318cead505d05f0c61db61a7aa3cd5a3300220b4ba2656603f88bc0b535390ab4d0ec101a919ace1d442a3e979f08e8d48f SHA512 08613679b564ea7d750117d3a2907ba957d5d595bdfa8016344f99a232c72c6b08acb882dff45c34c9e4c8f93f879fb308b36125572722aac04fbc6bb0c666f0
DIST quote-1.0.23.crate 28058 BLAKE2B 81c483fa26b36b5c4dbe85b386a74f5bfeaa854a99c0d678374507613da916a60e3f5b14d4a4d295e1c9ef0413fa1f16447df8f19a9db8cb0485b7a5c327fdc1 SHA512 3bce6846dda94d285de15771549099e60df39c8395c498b372c90a240f77df31d6d9048127913ec1c7ed8f3a189470ade1db2bede406bb00fa715ea641ec87c2
+DIST quote-1.0.26.crate 28397 BLAKE2B b468a5e9350843ea81e540d17c9fcb302b46fbd450e10280c5fff6fd7c98a439df8c3d3d47e551bc6d67ed02052b5b5c65d215d5ff8ee34f045747e75c1ba37e SHA512 6fcfe4d31f601aa60beb858c25df217421b0a184d185eebc7a4cb9fbf97c687992b77bebd8671a9e6193716387c3e926fed9b75a08684eb2d9a5b155fbc321a5
+DIST quote-1.0.27.crate 28416 BLAKE2B 68715000ad56f93c573ebacfbad0987054ef7716e10144cc8de47636812271060e3aa8f0754d105abef46a27024cda03a7054f11cbdecf110735ef845dc59a31 SHA512 5fb5802aa667c60d1a721766081b01bfd6cd929db7a5d71cb74627c2325f7108740752e514db73fb3612c163840e60ef2d4bde31c41978f3d77605418bdf2b4a
DIST rand-0.8.4.crate 87406 BLAKE2B c09358416d2425a8243b623346fe71bf6f03fddab1a23fc752f4303ba7c241b3606629e4edf0ea720785bda0bca534acd675c2de079b78eac3df24a1ad6ba654 SHA512 77ae0e988e31e12f7d3f2c40814f930eecbc94c4aced827c337be78eeeabf39fde2dc5c4fda059afdc01285ff4afe30393c32694377de004feff16207606558e
DIST rand-0.8.5.crate 87113 BLAKE2B 516f26bb2a969d0d79e957818133f35d2c0b4d9f1b401098ea23c5b80d27599e842b9298c0c5e46e2a6cb6953857bf8a9fb71ec9366c5ce6708cf17df14f179c SHA512 8b33a8988906ba5e2057a9a84bdd11f867a5536c22f5056eec59ed4ec4e3a6da2fd773da4c0510d343762e5a4ea0f007db4c4a7cef87a47f90e36c1a84d86fb2
DIST rand_chacha-0.3.1.crate 15251 BLAKE2B 645771b2c3e274f085e0837a20306b1d59f6e9032fba8eb38a6d1b30180d15e2f89ffa2a162bf6358da41e030098242d81e71dab4321980d0a4f6ddfc2974ce3 SHA512 8198c580b1b9b0429758ffa49cd8138fa3ce724f0dcf73c767ea7e55611d6a2e4c7cad9950896510def500ce4062b594386c947ac3d89425b4e5c9b04d0b8075
@@ -221,42 +280,61 @@ DIST rand_core-0.6.4.crate 22666 BLAKE2B 8b6b66d50aade877f2779c006f8038db450f808
DIST rand_hc-0.3.1.crate 11891 BLAKE2B b3aa810638390eea4245ebb711de88ccdc2a64350a5c6e14064fea7685d49746b4b77215dbb8374fa7a6cbc2cfd79fb553513d6e551acf64586d8303f7d4f3a0 SHA512 582bb44b81c27e698eb57c6f06444b8a7c9d3f7ee73f4e14be8004c4bfd3bbfd9795c69f7294b5e87107e86b90fa3e91ad080964474af81c92705d356e43fbb5
DIST rav1e-0.5.1.tar.gz 2697850 BLAKE2B b4c117e28130996970a75132defb619563d2f91c512c9b05f40a70904dfba0e4cb55cdce4f3a9210029e93a9065ccce0bdedc4b01a4452d1c56790ef3175b722 SHA512 54fdc65527e83bed1c57916c48f03b5701cb1c41c3990326130f56c562174a97b571fb58f0f099108ccc00d8c0fd05c8a57be3fc043750dcddf804440ceeff39
DIST rav1e-0.6.3.tar.gz 2915740 BLAKE2B febd4a3267bbf77d753ac6c22474b0ef08666b038c13b4d96e26b2c50ee999488a249790e4c71cdc26163ccbbe709f09320878379ec8482b218215b0382976e4 SHA512 f39066c90c82c11b79be20836574e2ab0f7889157598c32cc91e1e78c689c1df727b16e3977f9628ac854e156c1c7ce8aafa2817857eef156bd51e348a9fe733
+DIST rav1e-0.6.5.tar.gz 2919590 BLAKE2B cd8a2eafef335a20e50a799865ba6b847c9a4ad2056c72745fc9cb567046f840dd36ef02110e8d750c46aee104555a03707d1895760379d90838b37367397e2a SHA512 bf0d107aed4c19bd75dcdcfcbf05a8df9fd7a2dbb15dae863e18f09fbfbb6dd0771907192c8f0fd4d4cf3422b2d20cafde237e93cfe987f30aad2f6bfa02b2b1
+DIST rav1e-0.6.6.tar.gz 3002789 BLAKE2B b0151ab424e58f5d85f36e4febaaa08b6a990532d24892e8b1b3bf136cc200f5945c7e6379edb9498dc6a072b450aea96acf5d5a7d679473dc17e0f190709cbb SHA512 4427c75f176989b72d6eca009dfe976ea5daf2dd7a6f01937e14304c9735dea8468b3612801d36a65bf6e818f460ed71890a487e6a2db62f165840c2318f7d3b
DIST rayon-1.5.1.crate 160424 BLAKE2B 1c31c8e3290f76d02347271cb020e50e8f915b7a064f133a196c12e07ae1551c0e7c31883a31ec419a05198d6c71f0057be1b8ddb21f451db9ba40da511a0e1a SHA512 a68e65aae7040a6f6b0cc33b53b4c22929c15504ed4fdf54f5eb5fcaeab137c220b00c716aed96246b6a762c4f1e8be920356231d6c4a0b3e01132b9ab96ffc9
DIST rayon-1.6.1.crate 166330 BLAKE2B 5bbc439e0c88780b8d80cb36d4b4164e698a1189bd140e8c84d9f6a466023de0cd69a1f24c4217d595ae9af1f61aca6829461648152116c6bebeef0f0e686e50 SHA512 2e03585170e59f4388359817d67a43cd10a2244382615ae39bf84210db03a6dfec3b75d8a23800b8faaa31f45e8df4c44fbc343f02e18dd3dc0572c207791e73
+DIST rayon-1.7.0.crate 169488 BLAKE2B 518f0eda1fcbd1b1b230587ea18cab0023a699e796c819bf35a6492b7edb051137446bfbc49aaab0a68aef8280c970ad14301a9f8f7461d537af119a65b33a38 SHA512 d999c811b701d0aa4e547234bdc20a7df56728e142c4aa882bae081b7b057e8c3a72f4a62fb35535e57501e8c2ba7ff072068b59d6b5374e9ca6bb66cc0984d3
DIST rayon-core-1.10.1.crate 70008 BLAKE2B aa6dc470af3464ddd20f75faa5793bbc684d1550e44e0148134be7219dbded5dc7c1a1da96487ce9132330f26a587d9861b64be342566d6550cf3806a764d51b SHA512 a9261aa4a648029f50bcca30bd991ef51353c258b9b8c98027efe9ff62e4b7be200e59bc7aa9144d9a3d39873b01bbe104c1d7875d61e02e089bb04e0312798f
+DIST rayon-core-1.11.0.crate 73118 BLAKE2B 313d65bb6e3a010569b317b32ac91c72e38282f4fcddbcb56ffa97de42d88c0d34f35f76b62e1ad60ee96b596aa681caf2071a8d5dfdca085fb1fbafb07c3ee4 SHA512 00ac782f49d688da90e823980e83b5ccd858f93769e2d801061fdef78728cff37d3a9fa4fd47a5cddb058f28f3289de349f8c8fdd94fa2f8c400d73bc4529800
DIST rayon-core-1.9.1.crate 64961 BLAKE2B 7201024124324d2cf2d5785b7e79d2195adc7de576b826a9c28603dc44f1b5de46d277b791a741413c85facb4f4a552bfd55989a190f6f5ea3df4bbd32042f66 SHA512 c24c34dc488171ce476df145e8c6953d35fea93412805f6c411ba8b8e9dbbd733610b291203ee91bd265b766b78e14ba15a7b587e8f0ae8bde53f60e0644ef78
DIST regex-1.5.4.crate 236581 BLAKE2B 6efaf69d1a99dc3a2e04b2d1a96b036f631e9a0ad0d3aa57263febd47f7ec12765526f06f9c52a5497bf0d9b455f1d1b39e011adc4c28530c44b65c8a453efc0 SHA512 1a9208358c4ab87c19ec91bcf5c1e35dede46f3a0c0097061b7b53fa77a1e5ad38090d243aab274956f09c491e5fbe3b3b35a91db079b82a2dde2fd9fbad4c19
DIST regex-1.7.1.crate 239648 BLAKE2B d68591ab0627f0bbcead8e81de2b9f6c7eb7be2d29b2c1700e06ffb541c073ecc054dfc76aba8f55ac0630b191d4136805bd04c7d1b9f6cbb1ca2437668ab244 SHA512 ee19bc6d24b981a151324ad4115488383227ec33dfba0225b35b6252f0d363b8d906db59a45170139c7a687fe681a983c2392d2921c7365db38c7c0e9745066f
+DIST regex-1.8.1.crate 248412 BLAKE2B 4f1355104def09ec8f7a7d604fb08d0a39af36cdbb5160c63329e8c06ef2d2ad1063fc7280c90ba3748e1766b65f52fd6da24e439d5262209a6137bcbe2eda9c SHA512 fe83c2497b786314cbd9ead0d85a39ca87ae92225e444a41ba381fe80aa381a88806e2c20e1c468b8b59503fdf1c2b7e5bf6eaae0ddf9f14a70c1ca2773e8830
DIST regex-automata-0.1.10.crate 114533 BLAKE2B 0e357229f6825f14339b1d7c40730b83e62bba12115d01ed20313320766e769a653a2fcd2c9d19af51a82c38e9e42c1a31d005e1f44f5b6fbb3ead7c9c74027f SHA512 56d64da361afce82c6cb49e70b99ce1fca3e1969c54bba5f9971db135f8544c65f49feb8827789947b3d1dcefc9c49a7a434a7ffe0d09c5900345a1733723c5f
DIST regex-syntax-0.6.25.crate 293293 BLAKE2B d5ca0dbc26b03c6a1818026f9a69cd226ec934e7c64094d0ebe843052b648617ffae7aa3a074f8da46d03c46996d8b547d8916576342000bd9711089b3e57d73 SHA512 a3d31f82aadc6be1796f76c03152ff24f37fe42d6ce27fb98e2f55ab102f86502bc37ccd563f6e0eba61aab20d002184c618517b678b3b93cb8f0497cc046ca5
DIST regex-syntax-0.6.28.crate 299288 BLAKE2B 8554370e269e888e603c403089aa6eb4a087ae65fec016a428e424289990a07826e37a2e51cd353c7d530d5b3421e2db6a8f9d50e62379867bb5b6cbc57f2436 SHA512 ba5fb1622a330b67a4eb820551c7f20dbfdc6b38eb697b9bfddea4cf0060b473472045e93aaf6cb9727ae609e06ed285e1e42f06f34ac730ac39fb90425bbe85
+DIST regex-syntax-0.7.1.crate 339705 BLAKE2B 59dcdb9e0f5a2008db491756fb353745bf4dbaba0d3a8a6782960c990065e1870cc120d7a7e220991b78f89053aa63b1a9c326f5ae3526d47679e4ae30ae5e66 SHA512 ff61e4a075550fce3a16e516f8222a489dfe2bdf9431220c98c33b1f9e6b19da7bc1ca6bf34031235d6f1ad06882b63d606874a14d2e27c615701ecc2f4cdd9a
DIST rust_hawktracer-0.7.0.crate 4718 BLAKE2B 269902116f53e1f50cfb524bedd4594c9c43d481ae5eebb16dc12f4314024afa16e224fbccc97907429534cfb74e06cc263c69da3ac1cc2f04b49ec4b8b29890 SHA512 62756c6c99a1ff1dd78565a522cebec3a9bed637a157b3d5d7ab91f7ce74d6de809604e8406b7e80807f34a7fa7b72fc9b6df51bcbd41e4fb503425d0b8cbc02
DIST rust_hawktracer_normal_macro-0.4.1.crate 3000 BLAKE2B 9126ff8bd5dd0300e4c6df4311a94c96c1b0ffc23973fdde752593c7072ed687393a5165d5e4a27df28ab56490a0cf4af67556c1829103298963f1210dab7161 SHA512 19d2d10da7728d28baf3c5be0f7a9df7b23e63188d7f6f2acae199d081a06fcc6a78c778d56cbaeeb83dfcc5e0c775f1d608074c95461a17b6a1ff84017129a9
DIST rust_hawktracer_proc_macro-0.4.1.crate 3028 BLAKE2B aa2d70be709d0926a2edc4e29c31fb2bb1412d2e9c2144a604d19a4b903e92c59ed2a9892a2182c859963704ea0d6035304e0621e8f8bb432ca7cb888b1bc4a5 SHA512 f23b23cedbf1992a58e238d03acf75d627a9a4442019597c913e8c23d133511c2501e80a839f61af816efd55d6b9d8a6b045454652dced927e06b480dec53140
DIST rust_hawktracer_sys-0.4.2.crate 319968 BLAKE2B 251fd00f03338cd5287c79a58a5589cc03890b9e044fe679b2ede657816256caab8d7b09765b540b1ff50b0fcc52b9138a63b41e6b6def35ead81168e0c3ca13 SHA512 9a145263b5debed91980151229fbf61583f67b187c904cd9976d8837c0c8b348e53b47e58cd0d34b7a23609ecec8cd40d241f08d0da585931a203915e36bcc24
DIST rustc-demangle-0.1.21.crate 27920 BLAKE2B 73ada923b9b293c5a9893f86fda0586139afbb7d56894cabbd70612d1fb0330a9e491d5143fe3498a0c8d3e1a3f8e63c14b20865926e4c831915592486ae32d0 SHA512 4031b26863a726cc6d3398b48682e0f0f9e5665abf20a5d35343a904ebd7c0d3752dcdd3a049b2bfa3e2a303214dc39a2980700bcc64464f7029be3c7f34727c
+DIST rustc-demangle-0.1.23.crate 28970 BLAKE2B 611d2e41a8a9799db2f8bcb8fc8fefcda361d055a417d2bfaaf2dedcce9d6f388c69d905a28c65e6691b4d408d7922ccdc97ce524c87c3cccb8467e314bc87b9 SHA512 8cd29800254b1305ad50f1fc008838c52d9659f97a51a68e9f2bd6d0a60126f3ebdd1c79760f96445b3bf998d0773526ddf663b174acca81babdc0b423247247
DIST rustc-hash-1.1.0.crate 9331 BLAKE2B 16ac56622897f47a06b661fb59a196b08d48e782ab87549c8bd5c6fe92f374c9bfd44dcb36588512bd9b6125c2fd79a12d648aaa308fd9694bcca3a7c1b49ac9 SHA512 84e673ea9b046f7b989d47f2c4505557fbd5de991e6fc9f56a03605d40e0b4ba5427cd566954890153cc033ccbec6c984306634571935bfe0d4cdfbe56f39544
DIST rustc_version-0.4.0.crate 12175 BLAKE2B 6fda2ce03eab45d7193fa0d70175cc7ffb56b7be85fb1314092bdcfd3948ea145420569ace3a47218a4a2a6e44a818862cea6dd8cfb945475496f63b591c29da SHA512 f66da7c6efe431db06cd01180d84ba67fcd38f8cd6ef693762957c00ccc2211f23c08079d7f184776e08f28d2d6ca3bdb5f5016f7de245c6193d4722891ba1db
DIST rustix-0.36.6.crate 288718 BLAKE2B 5b1a09f8af9bc4b7ae045d038734f3568896c75ac0e77d9d1d74aef63e461f14a2934129cce36bb2d450fa94046770f6d394b0469b072b16f82977de92fa1e50 SHA512 d18e44d7546024d96a0ab6256c0913d9647a3290a60a5c8ed66611ab5983e7e22e05bddd61b12cd5b3d864ab9f1a2ed604e48a1336aea9e95907c2fc0cbfc4c4
+DIST rustix-0.37.19.crate 323809 BLAKE2B 6a01e5128910c4b1333359efdacd5d0c1f0cf0ac4f2615e6891c10e7de3ce8df5ca50955a3e5c27f3b85d3ffee9fe28105aac3baa4fadd05172645e9f7ddb853 SHA512 e1c00f97414313580dfb7a616cd0e9a64d87950b4d4e6b536b5eaea93b8741f769ef62d4ee1461af8266758f9bdc136a445abbb05c8355a11d338a166b498722
DIST ryu-1.0.12.crate 47070 BLAKE2B 02b0eec6bf266b7c482aea15ff83de4bf3cd6f607f8cd6f17f1c3ffc60cc64b62b15738907b4069f5816dd81669ed4f5b00c4bbc8705abaebe3a0846f56e8e29 SHA512 070f0b2b52e47cc9a6d8f003439d257c27aec15ffb030a92481ac22d5052436156e25127ea3ea7986cc514d2a7a924f9328710d743c216d7b1379beacae79829
+DIST ryu-1.0.13.crate 46823 BLAKE2B c6d661cbff5e7b273da5a6bb704bb1910b897c55d854b05bd417f53853a832791afc351e5a5aeaa94ba99a8fe64c8a930221c52a8784519728da748371a4ae04 SHA512 25f60216d91e68cb47695ce4e966fae674d5b3e4b0cf33e740248c1605fdcf0c963acd278a485c5b4bb0a1c1144002e73173592222af4989df7a4ba402508c13
DIST ryu-1.0.9.crate 48391 BLAKE2B d5c1035ffd6340d846009953cb4303fb8c250a3a6ac60b51a2fec77a6cb3648524420064b7380fe31af33c57011f950f6f739a1f0114196675b3b5de4b54efc6 SHA512 4e7c2c7ec73da1ddb32e18d36b8159cb4047b9f4feeb975361e7ba68135e671e11419bb7786df789f5d08e5895231d2c98e36035b515f2c64ac40474d08905cb
DIST same-file-1.0.6.crate 10183 BLAKE2B a320c8343e0b38078ba81c4f0159d886bf47764c74efe0d7cd2b3218426e8341b51e523c00a9e5fbc2ee1057618296bd70b576c68751bd55d6ddb352defaca15 SHA512 3ba35309742c8db63210d9ea78bff4ecd80471d69e6238eb96c7bf0673814f221e2d838fe6311bfc5a0e71b4a7ccba33e07859c0b9cff2171969ff08a4214a7c
DIST scan_fmt-0.2.6.crate 9676 BLAKE2B eb314c3e456de46b31d4286016b9194e663f7c3aea0b699a2693d180b2f0fa549448609b845afbbd0053661b5777a8912c2c607ffb26e490f86fd43ee2c2a1ab SHA512 ac24f699aa39d6fb29c309a9716eda9bda7331769114f52ab51f4aa781ecb3c7694ac385c7d60cec9b87e134fa2a5d8f586b54166ee9d58cc4bc34c83943ecc0
DIST scopeguard-1.1.0.crate 11470 BLAKE2B f774eb90b7d3ffb2efba47518e9d1dead4017ab4b38a4bd74914daa84a5af4bf9eb63da0496e3924499d79cd0439c37447aeda4a21226f95645bddcd6becfabe SHA512 368fa5726df8f42b599993681579a9ffd0196480ee3cd0f9f671e8493f3bedd1e1779bdf2beb329e77e0005fa09b816e3385f309490c0f2781568db275d4d17d
DIST semver-1.0.16.crate 29850 BLAKE2B 6a6a680e55b6e98e5d0d466cae2f144531d3019988a7a241e7f0e54ebf2ebfbef27eb7af5ac59a618fdaa5546bb84c65e4616734b775fb2e90d87c1ac0b07317 SHA512 4fac06eb9ea475f8a31dd85e4d28c70a351656914e8e61518ad69274e93f1b6f14cc32a5b0c0e5a7d9ba0c74d4a16d502518dfdf2756e8df5e45869886db8c2d
+DIST semver-1.0.17.crate 29685 BLAKE2B b9beb685eb9f6cffe557d1185997e1a93d0e50ecd8e9719d9855347f12dd430ed1020df81839b7924a984596437ae7fb2951e7ae44c5540692a7f37b591bee2e SHA512 5199923757e675506d68c252182b10f55955e47054880492e5471a0a0f9ad13ef25d552d2ab9bd68fba37121b8026d9989bf15db67e95265b3aa53d06377fda7
DIST semver-1.0.4.crate 29375 BLAKE2B 534a89125c4483fc99c44f7b104870be1471d478ba4f709819ae700767f4d6d0bdc98955897e33566651cbecadb4d4dc223204e4504ba4820c2d3919ef4fa775 SHA512 82ef2b4a3533360de1c645dba02b57a2670fdc51709a07be4a63b94055335225764d42d70f9617ed3aeb4c4de121da24e73b0e2c5c781501e9ee32dff756ebd9
DIST serde-1.0.132.crate 75364 BLAKE2B 7485bcf0ae578f02f7c7dcdb284fcd6d8ccb4022b7d487e19593f3b3c9bd03a369410307dbe5ecde8071ca3ab6c7e45a5ddfe332e43076b84d67444d1f105b7b SHA512 8dac512547074a6934315ebae3e7540ef8baa225cdd58f11416b4565a1335ab317e659901fd626beffd6514c5dc6ec9fc705cc1d15e9cdd2051bd28649cca555
DIST serde-1.0.152.crate 77091 BLAKE2B 89c01ce359042ebe6b1b64ea710580886f965a98e1d6085c58a75269a9b43401e2cace080c4c93ee51982855fb7e2f09fdefe9bd237bbf30c5537f3a4258283b SHA512 b47bd58fdc1a81d96cc0c9d14c8b19153b6689e893851975b1d7c7010c4448750e7fa09056dd4f13ed475a4aea2a3950952ff528832976919a6e78504a37bea7
+DIST serde-1.0.162.crate 77030 BLAKE2B 27e6a9bfabcd66a2250be36ac9987ec12a864c15eabea4bb793f796a19d85db097bf46426462fbdd22ccde24af3581638c2e14634701a0b14a3bfcc624c40a8d SHA512 e9b112999b69a14f1d05cce985448378c889a497dfa00f86e0c611b17d98fe7d942e9142fdf8c95c6d0a32e2016b3f384b52efae3bd75012c12299b02d055578
+DIST serde-1.0.163.crate 77030 BLAKE2B 0d7ead66faab8ae01c693c9bbcadfd0a7a736c8bf46f50ef43ba261eec9e0f0c43477feadb2e134f0ed6dda3115dcbc3d22daa28592f343739f1ea03d9c25723 SHA512 752738ef5f67f1b4435bdd4e76e740ba192bd93e83cac55fd667809af26ceaf02db7083aaf7b2074644b38964021af206000b6130199e7994c12c9c57cd31a34
DIST serde-big-array-0.4.1.crate 5707 BLAKE2B 9520b244c92e2dd5d59d91c9414cc4bb44ab20cd6fad773c3df7bc52a33bf00420fb8797636ea0f537792a3db0a1bd368f8057a68e886ee94a803d73ae0267f3 SHA512 0777c2e36c87ca88334559512d9399fb4badccbfb44d6353dda985ad762c7e9ccc375ce5b80ba6a8283458827077851436f717492772cdf0591d200d51733024
DIST serde_cbor-0.11.2.crate 44570 BLAKE2B facc8d16886dde89125b7d69e9e77ff586c61993c3493fe4089ff03c53e6c0808c6da45a83337d3be7414dd82f3d6a7f3d43167473e49e586a7e817d47ef3014 SHA512 12ddcbd5de0d85f2da6e078e3ccfdf2115125084d57eb93d7e9b45bca6a86daf79dcc79c8e54260c56240c3b5e814b1481ac28c3aa1d1b4b982ef5956b5cc3cd
DIST serde_derive-1.0.132.crate 54725 BLAKE2B 10ba0e55a498cfb469f1a36368f66515ab3e331f337b9441b08aba857dd6c824ccb718fdc33ab467413bd755db31370d4eb52039bb28e4a6c0775e2be87db896 SHA512 04f1a738b133de752fd1f4d70ffa35bbc144208bc3495ead56cda8ce65a72c501ea9c8e5e6