1{ 2 lib, 3 buildPythonPackage, 4 fetchFromGitHub, 5 setuptools, 6 miniaudio, 7 cffi, 8 pytestCheckHook, 9}: 10 11let 12 # TODO: recheck after 1.59 13 miniaudio' = miniaudio.overrideAttrs (oldAttrs: rec { 14 version = "0.11.16"; # cffi breakage with 0.11.17 15 src = fetchFromGitHub { 16 inherit (oldAttrs.src) owner repo; 17 rev = "refs/tags/${version}"; 18 hash = "sha256-POe/dYPJ25RKNGIhaLoqxm9JJ08MrTyHVN4NmaGOdwM="; 19 }; 20 }); 21in 22buildPythonPackage rec { 23 pname = "miniaudio"; 24 version = "1.61"; 25 pyproject = true; 26 27 src = fetchFromGitHub { 28 owner = "irmen"; 29 repo = "pyminiaudio"; 30 rev = "refs/tags/v${version}"; 31 hash = "sha256-H3o2IWGuMqLrJTzQ7w636Ito6f57WBtMXpXXzrZ7UD8="; 32 }; 33 34 postPatch = '' 35 rm -r miniaudio 36 ln -s ${miniaudio'} miniaudio 37 substituteInPlace build_ffi_module.py \ 38 --replace-fail "miniaudio/stb_vorbis.c" "miniaudio/extras/stb_vorbis.c"; 39 substituteInPlace miniaudio.c \ 40 --replace-fail "miniaudio/stb_vorbis.c" "miniaudio/extras/stb_vorbis.c"; 41 ''; 42 43 build-system = [ setuptools ]; 44 45 propagatedNativeBuildInputs = [ cffi ]; 46 dependencies = [ cffi ]; 47 48 nativeCheckInputs = [ pytestCheckHook ]; 49 50 pythonImportsCheck = [ "miniaudio" ]; 51 52 meta = with lib; { 53 changelog = "https://github.com/irmen/pyminiaudio/releases/tag/v${version}"; 54 description = "Python bindings for the miniaudio library and its decoders"; 55 homepage = "https://github.com/irmen/pyminiaudio"; 56 license = licenses.mit; 57 maintainers = with maintainers; [ dotlambda ]; 58 }; 59}