summary refs log tree commit diff
path: root/pkgs/development/libraries/faad2/default.nix
blob: 29c0252482eaa2c87033ec6507a429bd7e8a9f6d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
{stdenv, fetchurl
, drmSupport ? false # Digital Radio Mondiale
}:

with stdenv.lib;
stdenv.mkDerivation rec {
  pname = "faad2";
  version = "2.8.8";

  src = fetchurl {
    url = "mirror://sourceforge/faac/${pname}-${version}.tar.gz";
    sha256 = "1db37ydb6mxhshbayvirm5vz6j361bjim4nkpwjyhmy4ddfinmhl";
  };

  patches = let
    fp = { ver ? "2.8.8-3", pname, name ? (pname + ".patch"), sha256 }: fetchurl {
      url = "https://salsa.debian.org/multimedia-team/faad2/raw/debian/${ver}"
          + "/debian/patches/${pname}.patch?inline=false";
      inherit name sha256;
    };
  in [
    (fp {
      # critical bug addressed in vlc 3.0.7 (but we use system-provided faad)
      pname = "0004-Fix-a-couple-buffer-overflows";
      sha256 = "1mwycdfagz6wpda9j3cp7lf93crgacpa8rwr58p3x0i5cirnnmwq";
    })
    (fp {
      name = "CVE-2018-20362.patch";
      pname = "0009-syntax.c-check-for-syntax-element-inconsistencies";
      sha256 = "1z849l5qyvhyn5pvm6r07fa50nrn8nsqnrka2nnzgkhxlhvzpa81";
    })
    (fp {
      name = "CVE-2018-20194.patch";
      pname = "0010-sbr_hfadj-sanitize-frequency-band-borders";
      sha256 = "1b1kbz4mv0zhpq8h3djnvqafh1gn12nikk9v3jrxyryywacirah4";
    })
  ];

  configureFlags = []
    ++ optional drmSupport "--with-drm";

  meta = {
    description = "An open source MPEG-4 and MPEG-2 AAC decoder";
    homepage    = https://www.audiocoding.com/faad2.html;
    license     = licenses.gpl2;
    maintainers = with maintainers; [ codyopel ];
    platforms   = platforms.all;
  };
}