From 8c0fb91d4e9c7ea32c750416fd7c6e0a145889b3 Mon Sep 17 00:00:00 2001 From: snehring <7978778+snehring@users.noreply.github.com> Date: Fri, 25 Nov 2022 16:37:17 -0600 Subject: ffmpeg: adding version 5.1.2 (#33758) * ffmpeg: add version 5.1.2 and switch to conditional variants Also: py-torchvision: restrict ffmpeg dependency --- var/spack/repos/builtin/packages/ffmpeg/package.py | 74 ++++++++-------------- .../builtin/packages/py-torchvision/package.py | 3 +- 2 files changed, 29 insertions(+), 48 deletions(-) diff --git a/var/spack/repos/builtin/packages/ffmpeg/package.py b/var/spack/repos/builtin/packages/ffmpeg/package.py index 0602b012d4..599c13b3c9 100644 --- a/var/spack/repos/builtin/packages/ffmpeg/package.py +++ b/var/spack/repos/builtin/packages/ffmpeg/package.py @@ -15,6 +15,7 @@ class Ffmpeg(AutotoolsPackage): maintainers = ["xjrc"] + version("5.1.2", sha256="39a0bcc8d98549f16c570624678246a6ac736c066cebdb409f9502e915b22f2b") version("4.4.1", sha256="8fc9f20ac5ed95115a9e285647add0eedd5cc1a98a039ada14c132452f98ac42") version("4.3.2", sha256="ab3a6d6a70358ba0a5f67f37f91f6656b7302b02e98e5b8c846c16763c99913a") version("4.2.2", sha256="b620d187c26f76ca19e74210a0336c3b8380b97730df5cdf45f3e69e89000e5c") @@ -43,30 +44,32 @@ class Ffmpeg(AutotoolsPackage): # spack packages. # meta variants: These will toggle several settings - variant("X", default=False, description="X11 support") + variant("X", default=False, when="@2.4:", description="X11 support") variant("drawtext", default=False, description="drawtext filter") # options variant("bzlib", default=True, description="bzip2 support") - variant("libaom", default=False, description="AV1 video encoding/decoding") + variant("libaom", default=False, when="@4.0:", description="AV1 video encoding/decoding") variant("libmp3lame", default=False, description="MP3 encoding") variant("libopenjpeg", default=False, description="JPEG 2000 de/encoding") variant("libopus", default=False, description="Opus de/encoding") - variant("libsnappy", default=False, description="Snappy compression, needed for hap encoding") + variant( + "libsnappy", + default=False, + when="@2.7:", + description="Snappy compression, needed for hap encoding", + ) variant("libspeex", default=False, description="Speex de/encoding") - variant("libssh", default=False, description="SFTP protocol") + variant("libssh", default=False, when="@2.1:", description="SFTP protocol") variant("libvorbis", default=False, description="Vorbis en/decoding") variant("libvpx", default=False, description="VP9 en/decoding") - variant("libwebp", default=False, description="WebP encoding via libwebp") - # TODO: There is an issue with the spack headers property in the libxml2 - # package recipe. Comment out the libxml2 variant until that is resolved. - # variant('libxml2', default=False, - # description='XML parsing, needed for dash demuxing support') - variant("libzmq", default=False, description="message passing via libzmq") - variant("lzma", default=False, description="lzma support") - variant("avresample", default=False, description="AV reasmpling component") + variant("libwebp", default=False, when="@2.2:", description="WebP encoding via libwebp") + variant("libxml2", default=False, description="XML parsing, needed for dash demuxing support") + variant("libzmq", default=False, when="@2.0:", description="message passing via libzmq") + variant("lzma", default=False, when="@2.4:", description="lzma support") + variant("avresample", default=False, when="@0.11:4.4", description="AV reasmpling component") variant("openssl", default=False, description="needed for https support") - variant("sdl2", default=False, description="sdl2 support") + variant("sdl2", default=False, when="@3.2:", description="sdl2 support") variant("shared", default=True, description="build shared libraries") variant("libx264", default=False, description="H.264 encoding") @@ -85,33 +88,19 @@ class Ffmpeg(AutotoolsPackage): depends_on("libvorbis", when="+libvorbis") depends_on("libvpx", when="+libvpx") depends_on("libwebp", when="+libwebp") - # TODO: enable libxml2 when libxml2 header issue is resolved - # depends_on('libxml2', when='+libxml2') + depends_on("libxml2", when="+libxml2") depends_on("libxv", when="+X") depends_on("libzmq", when="+libzmq") depends_on("openjpeg", when="+libopenjpeg") depends_on("openssl", when="+openssl") depends_on("opus", when="+libopus") + depends_on("sdl2@:2.0.22", when="@3.2:4.4+sdl2") depends_on("sdl2", when="+sdl2") depends_on("snappy", when="+libsnappy") depends_on("speex", when="+libspeex") depends_on("xz", when="+lzma") depends_on("x264", when="+libx264") - # TODO: enable when libxml2 header issue is resolved - # conflicts('+libxml2', when='@:3') - # See: https://www.ffmpeg.org/index.html#news (search AV1) - conflicts("+libaom", when="@:3") - # All of the following constraints were sourced from the official 'ffmpeg' - # change log, which can be found here: - # https://raw.githubusercontent.com/FFmpeg/FFmpeg/release/4.0/Changelog - conflicts("+sdl2", when="@:3.1") - conflicts("+libsnappy", when="@:2.7") - conflicts("+X", when="@:2.4") - conflicts("+lzma", when="@2.3:") - conflicts("+libwebp", when="@2.1:") - conflicts("+libssh", when="@2.1:") - conflicts("+libzmq", when="@:1") conflicts("%nvhpc") @property @@ -173,30 +162,21 @@ class Ffmpeg(AutotoolsPackage): "libvorbis", "libvpx", "libx264", - "avresample", "nonfree", "openssl", "shared", "version3", + "avresample", + "libzmq", + "libssh", + "libwebp", + "lzma", + "libsnappy", + "sdl2", + "libaom", + "libxml2", ] - if spec.satisfies("@2.0:"): - variant_opts.append("libzmq") - if spec.satisfies("@2.1:"): - variant_opts.append("libssh") - if spec.satisfies("@2.2:"): - variant_opts.append("libwebp") - if spec.satisfies("@2.4:"): - variant_opts.append("lzma") - if spec.satisfies("@2.8:"): - variant_opts.append("libsnappy") - if spec.satisfies("@3.2:"): - variant_opts.append("sdl2") - if spec.satisfies("@4:"): - variant_opts.append("libaom") - # TODO: enable when libxml2 header issue is resolved - # variant_opts.append('libxml2') - for variant_opt in variant_opts: config_args += self.enable_or_disable(variant_opt) diff --git a/var/spack/repos/builtin/packages/py-torchvision/package.py b/var/spack/repos/builtin/packages/py-torchvision/package.py index e1e58b7ccd..411a6c133e 100644 --- a/var/spack/repos/builtin/packages/py-torchvision/package.py +++ b/var/spack/repos/builtin/packages/py-torchvision/package.py @@ -111,7 +111,8 @@ class PyTorchvision(PythonPackage): depends_on("libpng@1.6.0:", when="backend=png") depends_on("jpeg") # seems to be required for all backends - depends_on("ffmpeg@3.1:", when="@0.4.2:") + depends_on("ffmpeg@3.1:4.4", when="@0.4.2:0.12.0") + depends_on("ffmpeg@3.1:", when="@13.0:") # Many of the datasets require additional dependencies to use. # These can be installed after the fact. -- cgit v1.2.3-60-g2f50