summaryrefslogtreecommitdiffstats
path: root/pkgs/by-name/st/streamripper/package.nix
blob: 907acb61087c9e020543302ac5a46fcf8815e8cf (plain)
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
{
  lib,
  stdenv,
  fetchurl,
  fetchpatch,
  fetchDebianPatch,
  glib,
  pkg-config,
  libogg,
  libvorbis,
  libmad,
}:

stdenv.mkDerivation rec {
  pname = "streamripper";
  version = "1.64.6";

  src = fetchurl {
    url = "mirror://sourceforge/streamripper/streamripper-${version}.tar.gz";
    sha256 = "0hnyv3206r0rfprn3k7k6a0j959kagsfyrmyjm3gsf3vkhp5zmy1";
  };

  patches = [
    # fix build with gcc 14
    (fetchDebianPatch {
      inherit pname version;
      debianRevision = "2";
      patch = "1075541-gcc14";
      hash = "sha256-30bz7CDmbq+Bd+jTKSq7aJsXUJQAQp3nnJZvt3Qbp8Q=";
    })
    # fix parse of URIs containing colons (https://bugs.debian.org/873964)
    (fetchDebianPatch {
      inherit pname version;
      debianRevision = "2";
      patch = "873964-http";
      hash = "sha256-D6koUCbnJHtRuq2zZy9VrxymuGXN1COacbQhphgB8qo=";
    })
    # fix build with gcc 15
    (fetchDebianPatch {
      inherit pname version;
      debianRevision = "4";
      patch = "1097944-gcc15";
      hash = "sha256-yBFDxd2sNlavQDmg/MCORFdpJY8p1Lzo131T4sBby5g=";
    })
    # fix SR_ERROR_INVALID_METADATA caused by HTTP chunking
    # (https://sourceforge.net/p/streamripper/bugs/193/#6a82)
    (fetchpatch {
      name = "streamripper-http-1.0.patch";
      url = "https://sourceforge.net/p/streamripper/bugs/_discuss/thread/df13e77a/6a82/attachment/streamripper-http-1.0.patch";
      hash = "sha256-EhkxAqMcRJ4IJ6BLrpSQu6FomfEbxvgAu12vaDdNqEU=";
    })
  ];

  nativeBuildInputs = [ pkg-config ];
  buildInputs = [
    glib
    libogg
    libvorbis
    libmad
  ];

  meta = {
    homepage = "https://streamripper.sourceforge.net/";
    description = "Application that lets you record streaming mp3 to your hard drive";
    license = lib.licenses.gpl2;
    mainProgram = "streamripper";
    maintainers = with lib.maintainers; [ cybershadow ];
  };
}