summaryrefslogtreecommitdiff
path: root/pkgs/development/python-modules/audiotools/default.nix
blob: 940c8815ed5e2620ad4310e2ddb3b42849c05916 (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
{
  lib,
  buildPythonPackage,
  fetchFromGitHub,
  setuptools,
  pkg-config,
  libmpg123,
  lame,
  twolame,
  libopus,
  opusfile,
  libvorbis,
  libcdio,
  libcdio-paranoia,
}:

buildPythonPackage {
  pname = "audiotools";
  version = "3.1.1-unstable-2020-07-29";
  pyproject = true;

  build-system = [
    setuptools
  ];

  nativeBuildInputs = [
    pkg-config
  ];

  buildInputs = [
    libmpg123 # MP2/MP3 decoding
    lame # MP3 encoding
    twolame # MP2 encoding
    opusfile # opus decoding
    libopus # opus encoding
    libvorbis # ogg encoding/decoding
    libcdio # CD reading
    libcdio-paranoia # CD reading
  ];

  preConfigure = ''
    # need to change probe to yes because mp3lame is not reported in pkg-config
    substituteInPlace setup.cfg \
      --replace-fail "mp3lame:           probe" "mp3lame:           yes"
  '';

  # the python code contains #variant formats, PY_SSIZE_T_CLEAN must be defined
  # before including Python.h for 3.10 or newer
  # the last released version does not contain the required fix for python 3.10
  src = fetchFromGitHub {
    owner = "tuffy";
    repo = "python-audio-tools";
    rev = "de55488dc982e3f6375cde2d0c2ea6aad1b1c31c";
    hash = "sha256-iRakeV4Sg4oU0JtiA0O3jnmLJt99d89Hg6v9onUaSnw=";
  };

  meta = {
    description = "Utilities and Python modules for handling audio";
    homepage = "https://audiotools.sourceforge.net/";
    license = lib.licenses.gpl2Plus;
    maintainers = [ ];
  };
}