libav{,_{0_8,11,12}}: drop
Every version is insecure, none of them build successfully, the project has been abandoned upstream for years, the website is gone, and nothing in the tree that works used them.
This commit is contained in:
parent
ba845b0d47
commit
34334f147d
@ -1,137 +0,0 @@
|
||||
{ lib, stdenv, fetchurl, pkg-config, yasm, bzip2, zlib, perl, bash
|
||||
, mp3Support ? true, lame ? null
|
||||
, speexSupport ? true, speex ? null
|
||||
, theoraSupport ? true, libtheora ? null
|
||||
, vorbisSupport ? true, libvorbis ? null
|
||||
, vpxSupport ? true, libvpx ? null
|
||||
, x264Support ? false, x264 ? null
|
||||
, xvidSupport ? true, xvidcore ? null
|
||||
, faacSupport ? false, faac ? null
|
||||
, vaapiSupport ? true, libva ? null
|
||||
, vdpauSupport ? true, libvdpau ? null
|
||||
, freetypeSupport ? true, freetype ? null # it's small and almost everywhere
|
||||
, SDL # only for avplay in $bin, adds nontrivial closure to it
|
||||
, enableGPL ? true # ToDo: some additional default stuff may need GPL
|
||||
, enableUnfree ? faacSupport
|
||||
}:
|
||||
|
||||
assert faacSupport -> enableUnfree;
|
||||
|
||||
let inherit (lib) optional optionals hasPrefix enableFeature; in
|
||||
|
||||
/* ToDo:
|
||||
- more deps, inspiration: https://packages.ubuntu.com/raring/libav-tools
|
||||
- maybe do some more splitting into outputs
|
||||
*/
|
||||
|
||||
let
|
||||
result = {
|
||||
# e.g. https://libav.org/releases/libav-11.11.tar.xz.sha1
|
||||
libav_0_8 = libavFun "0.8.21" "d858f65128dad0bac1a8c3a51e5cbb27a7c79b3f";
|
||||
libav_11 = libavFun "11.12" "61d5dcab5fde349834af193a572b12a5fd6a4d42";
|
||||
libav_12 = libavFun "12.3" "386c18c8b857f23dfcf456ce40370716130211d9";
|
||||
};
|
||||
|
||||
libavFun = version : sha1 : stdenv.mkDerivation rec {
|
||||
pname = "libav";
|
||||
inherit version;
|
||||
|
||||
src = fetchurl {
|
||||
url = "${meta.homepage}/releases/${pname}-${version}.tar.xz";
|
||||
inherit sha1; # upstream directly provides sha1 of releases over https
|
||||
};
|
||||
|
||||
patches = []
|
||||
++ optional (vpxSupport && hasPrefix "0.8." version) ./vpxenc-0.8.17-libvpx-1.5.patch
|
||||
++ optional (vpxSupport && hasPrefix "12." version) ./vpx-12.3-libvpx-1.8.patch
|
||||
;
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs .
|
||||
# another shebang was hidden in a here document text
|
||||
substituteInPlace ./configure --replace "#! /bin/sh" "#!${bash}/bin/sh"
|
||||
'';
|
||||
|
||||
configurePlatforms = [];
|
||||
configureFlags = assert lib.all (x: x!=null) buildInputs; [
|
||||
"--arch=${stdenv.hostPlatform.parsed.cpu.name}"
|
||||
"--target_os=${stdenv.hostPlatform.parsed.kernel.name}"
|
||||
#"--enable-postproc" # it's now a separate package in upstream
|
||||
"--disable-avserver" # upstream says it's in a bad state
|
||||
"--enable-avplay"
|
||||
"--enable-shared"
|
||||
"--enable-runtime-cpudetect"
|
||||
"--cc=${stdenv.cc.targetPrefix}cc"
|
||||
(enableFeature enableGPL "gpl")
|
||||
(enableFeature enableGPL "swscale")
|
||||
(enableFeature mp3Support "libmp3lame")
|
||||
(enableFeature mp3Support "libmp3lame")
|
||||
(enableFeature speexSupport "libspeex")
|
||||
(enableFeature theoraSupport "libtheora")
|
||||
(enableFeature vorbisSupport "libvorbis")
|
||||
(enableFeature vpxSupport "libvpx")
|
||||
(enableFeature x264Support "libx264")
|
||||
(enableFeature xvidSupport "libxvid")
|
||||
(enableFeature faacSupport "libfaac")
|
||||
(enableFeature faacSupport "nonfree")
|
||||
(enableFeature vaapiSupport "vaapi")
|
||||
(enableFeature vdpauSupport "vdpau")
|
||||
(enableFeature freetypeSupport "libfreetype")
|
||||
] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
|
||||
"--cross-prefix=${stdenv.cc.targetPrefix}"
|
||||
"--enable-cross-compile"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ pkg-config perl ];
|
||||
buildInputs = [ lame yasm zlib bzip2 SDL bash ]
|
||||
++ [ perl ] # for install-man target
|
||||
++ optional mp3Support lame
|
||||
++ optional speexSupport speex
|
||||
++ optional theoraSupport libtheora
|
||||
++ optional vorbisSupport libvorbis
|
||||
++ optional vpxSupport libvpx
|
||||
++ optional x264Support x264
|
||||
++ optional xvidSupport xvidcore
|
||||
++ optional faacSupport faac
|
||||
++ optional vaapiSupport libva
|
||||
++ optional vdpauSupport libvdpau
|
||||
++ optional freetypeSupport freetype
|
||||
;
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
outputs = [ "bin" "dev" "out" ];
|
||||
setOutputFlags = false;
|
||||
|
||||
# alltools to build smaller tools, incl. aviocat, ismindex, qt-faststart, etc.
|
||||
buildFlags = [ "all" "alltools" "install-man" ];
|
||||
|
||||
|
||||
postInstall = ''
|
||||
moveToOutput bin "$bin"
|
||||
# alltools target compiles an executable in tools/ for every C
|
||||
# source file in tools/, so move those to $out
|
||||
for tool in $(find tools -type f -executable); do
|
||||
mv "$tool" "$bin/bin/"
|
||||
done
|
||||
'';
|
||||
|
||||
doInstallCheck = false; # fails randomly
|
||||
installCheckTarget = "check"; # tests need to be run *after* installation
|
||||
|
||||
passthru = { inherit vdpauSupport; };
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://libav.org/";
|
||||
description = "Complete, cross-platform solution to record, convert and stream audio and video (fork of ffmpeg)";
|
||||
license = with licenses; if enableUnfree then unfree #ToDo: redistributable or not?
|
||||
else if enableGPL then gpl2Plus else lgpl21Plus;
|
||||
platforms = with platforms; linux ++ darwin;
|
||||
knownVulnerabilities =
|
||||
lib.optional (lib.versionOlder version "12.1") "CVE-2017-9051"
|
||||
++ lib.optionals (lib.versionOlder version "12.3") [ "CVE-2018-5684" "CVE-2018-5766" ]
|
||||
++ lib.optionals (lib.versionOlder version "12.4") [ "CVE-2019-9717" "CVE-2019-9720" ];
|
||||
};
|
||||
}; # libavFun
|
||||
|
||||
in result
|
@ -1,46 +0,0 @@
|
||||
--- libav/libavcodec/libvpx.c.orig 2018-02-12 21:25:59 UTC
|
||||
+++ libav/libavcodec/libvpx.c
|
||||
@@ -25,6 +25,7 @@
|
||||
enum AVPixelFormat ff_vpx_imgfmt_to_pixfmt(vpx_img_fmt_t img)
|
||||
{
|
||||
switch (img) {
|
||||
+#if VPX_IMAGE_ABI_VERSION < 5
|
||||
case VPX_IMG_FMT_RGB24: return AV_PIX_FMT_RGB24;
|
||||
case VPX_IMG_FMT_RGB565: return AV_PIX_FMT_RGB565BE;
|
||||
case VPX_IMG_FMT_RGB555: return AV_PIX_FMT_RGB555BE;
|
||||
@@ -36,10 +37,13 @@ enum AVPixelFormat ff_vpx_imgfmt_to_pixfmt(vpx_img_fmt
|
||||
case VPX_IMG_FMT_ARGB_LE: return AV_PIX_FMT_BGRA;
|
||||
case VPX_IMG_FMT_RGB565_LE: return AV_PIX_FMT_RGB565LE;
|
||||
case VPX_IMG_FMT_RGB555_LE: return AV_PIX_FMT_RGB555LE;
|
||||
+#endif
|
||||
case VPX_IMG_FMT_I420: return AV_PIX_FMT_YUV420P;
|
||||
case VPX_IMG_FMT_I422: return AV_PIX_FMT_YUV422P;
|
||||
case VPX_IMG_FMT_I444: return AV_PIX_FMT_YUV444P;
|
||||
+#if VPX_IMAGE_ABI_VERSION < 5
|
||||
case VPX_IMG_FMT_444A: return AV_PIX_FMT_YUVA444P;
|
||||
+#endif
|
||||
#if VPX_IMAGE_ABI_VERSION >= 3
|
||||
case VPX_IMG_FMT_I440: return AV_PIX_FMT_YUV440P;
|
||||
case VPX_IMG_FMT_I42016: return AV_PIX_FMT_YUV420P16BE;
|
||||
@@ -53,6 +57,7 @@ enum AVPixelFormat ff_vpx_imgfmt_to_pixfmt(vpx_img_fmt
|
||||
vpx_img_fmt_t ff_vpx_pixfmt_to_imgfmt(enum AVPixelFormat pix)
|
||||
{
|
||||
switch (pix) {
|
||||
+#if VPX_IMAGE_ABI_VERSION < 5
|
||||
case AV_PIX_FMT_RGB24: return VPX_IMG_FMT_RGB24;
|
||||
case AV_PIX_FMT_RGB565BE: return VPX_IMG_FMT_RGB565;
|
||||
case AV_PIX_FMT_RGB555BE: return VPX_IMG_FMT_RGB555;
|
||||
@@ -64,10 +69,13 @@ vpx_img_fmt_t ff_vpx_pixfmt_to_imgfmt(enum AVPixelForm
|
||||
case AV_PIX_FMT_BGRA: return VPX_IMG_FMT_ARGB_LE;
|
||||
case AV_PIX_FMT_RGB565LE: return VPX_IMG_FMT_RGB565_LE;
|
||||
case AV_PIX_FMT_RGB555LE: return VPX_IMG_FMT_RGB555_LE;
|
||||
+#endif
|
||||
case AV_PIX_FMT_YUV420P: return VPX_IMG_FMT_I420;
|
||||
case AV_PIX_FMT_YUV422P: return VPX_IMG_FMT_I422;
|
||||
case AV_PIX_FMT_YUV444P: return VPX_IMG_FMT_I444;
|
||||
+#if VPX_IMAGE_ABI_VERSION < 5
|
||||
case AV_PIX_FMT_YUVA444P: return VPX_IMG_FMT_444A;
|
||||
+#endif
|
||||
#if VPX_IMAGE_ABI_VERSION >= 3
|
||||
case AV_PIX_FMT_YUV440P: return VPX_IMG_FMT_I440;
|
||||
case AV_PIX_FMT_YUV420P16BE: return VPX_IMG_FMT_I42016;
|
@ -1,22 +0,0 @@
|
||||
--- a/libavcodec/libvpxenc.c 2016-05-01 17:57:16.753852614 +0200
|
||||
+++ b/libavcodec/libvpxenc.c 2016-05-01 18:01:08.252147138 +0200
|
||||
@@ -67,19 +67,11 @@
|
||||
|
||||
/** String mappings for enum vp8e_enc_control_id */
|
||||
static const char *ctlidstr[] = {
|
||||
- [VP8E_UPD_ENTROPY] = "VP8E_UPD_ENTROPY",
|
||||
- [VP8E_UPD_REFERENCE] = "VP8E_UPD_REFERENCE",
|
||||
- [VP8E_USE_REFERENCE] = "VP8E_USE_REFERENCE",
|
||||
- [VP8E_SET_ROI_MAP] = "VP8E_SET_ROI_MAP",
|
||||
- [VP8E_SET_ACTIVEMAP] = "VP8E_SET_ACTIVEMAP",
|
||||
- [VP8E_SET_SCALEMODE] = "VP8E_SET_SCALEMODE",
|
||||
[VP8E_SET_CPUUSED] = "VP8E_SET_CPUUSED",
|
||||
[VP8E_SET_ENABLEAUTOALTREF] = "VP8E_SET_ENABLEAUTOALTREF",
|
||||
[VP8E_SET_NOISE_SENSITIVITY] = "VP8E_SET_NOISE_SENSITIVITY",
|
||||
- [VP8E_SET_SHARPNESS] = "VP8E_SET_SHARPNESS",
|
||||
[VP8E_SET_STATIC_THRESHOLD] = "VP8E_SET_STATIC_THRESHOLD",
|
||||
[VP8E_SET_TOKEN_PARTITIONS] = "VP8E_SET_TOKEN_PARTITIONS",
|
||||
- [VP8E_GET_LAST_QUANTIZER] = "VP8E_GET_LAST_QUANTIZER",
|
||||
[VP8E_SET_ARNR_MAXFRAMES] = "VP8E_SET_ARNR_MAXFRAMES",
|
||||
[VP8E_SET_ARNR_STRENGTH] = "VP8E_SET_ARNR_STRENGTH",
|
||||
[VP8E_SET_ARNR_TYPE] = "VP8E_SET_ARNR_TYPE",
|
@ -751,6 +751,11 @@ mapAliases ({
|
||||
lfs = dysk; # Added 2023-07-03
|
||||
llvmPackages_rocm = throw "'llvmPackages_rocm' has been replaced with 'rocmPackages.llvm'"; # Added 2023-10-08
|
||||
libAfterImage = throw "'libAfterImage' has been removed from nixpkgs, as it's no longer in development for a long time"; # Added 2024-06-01
|
||||
libav = throw "libav has been removed as it was insecure and abandoned upstream for over half a decade; please use FFmpeg"; # Added 2024-08-25
|
||||
libav_0_8 = libav; # Added 2024-08-25
|
||||
libav_11 = libav; # Added 2024-08-25
|
||||
libav_12 = libav; # Added 2024-08-25
|
||||
libav_all = libav; # Added 2024-08-25
|
||||
libayatana-indicator-gtk3 = libayatana-indicator; # Added 2022-10-18
|
||||
libayatana-appindicator-gtk3 = libayatana-appindicator; # Added 2022-10-18
|
||||
libbencodetools = bencodetools; # Added 2022-07-30
|
||||
|
@ -21160,10 +21160,6 @@ with pkgs;
|
||||
|
||||
libaudec = callPackage ../development/libraries/libaudec { };
|
||||
|
||||
libav = libav_11; # branch 11 is API-compatible with branch 10
|
||||
libav_all = callPackages ../development/libraries/libav { };
|
||||
inherit (libav_all) libav_0_8 libav_11 libav_12;
|
||||
|
||||
libavc1394 = callPackage ../development/libraries/libavc1394 { };
|
||||
|
||||
libavif = callPackage ../development/libraries/libavif { };
|
||||
|
Loading…
Reference in New Issue
Block a user