Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ config
2, lib
3, stdenv
4, fetchurl
5, zlib
6, pkg-config
7, mpg123
8, libogg
9, libvorbis
10, portaudio
11, libsndfile
12, flac
13, usePulseAudio ? config.pulseaudio or stdenv.isLinux
14, libpulseaudio
15}:
16
17stdenv.mkDerivation rec {
18 pname = "libopenmpt";
19 version = "0.6.10";
20
21 outputs = [ "out" "dev" "bin" ];
22
23 src = fetchurl {
24 url = "https://lib.openmpt.org/files/libopenmpt/src/libopenmpt-${version}+release.autotools.tar.gz";
25 sha256 = "wlvo3A2sI87AJUh+WPGV5NFPfZSu3dX+RrIcBPHOJ3Q=";
26 };
27
28 enableParallelBuilding = true;
29
30 nativeBuildInputs = [
31 pkg-config
32 ];
33
34 buildInputs = [
35 zlib
36 mpg123
37 libogg
38 libvorbis
39 portaudio
40 libsndfile
41 flac
42 ] ++ lib.optional usePulseAudio libpulseaudio;
43
44 configureFlags = lib.optional (!usePulseAudio) "--without-pulseaudio";
45
46 doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
47
48 postFixup = ''
49 moveToOutput share/doc $dev
50 '';
51
52 passthru.updateScript = ./update.sh;
53
54 meta = with lib; {
55 description = "Cross-platform C++ and C library to decode tracked music files into a raw PCM audio stream";
56 longDescription = ''
57 libopenmpt is a cross-platform C++ and C library to decode tracked music files (modules) into a raw PCM audio stream.
58 openmpt123 is a cross-platform command-line or terminal based module file player.
59 libopenmpt is based on the player code of the OpenMPT project.
60 '';
61 homepage = "https://lib.openmpt.org/libopenmpt/";
62 license = licenses.bsd3;
63 maintainers = with maintainers; [ OPNA2608 ];
64 platforms = platforms.unix;
65 };
66}