about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJan Tojnar <jtojnar@gmail.com>2019-04-08 21:22:52 +0200
committerJan Tojnar <jtojnar@gmail.com>2019-04-13 15:51:17 +0200
commit18ba9e69a9f21a061b6af133dee8ce72caa1dbdc (patch)
tree01778140e790509ab69632ac624d592e3b3ea9a4
parent08b277e0da6c4578036a9a27f76dfaf85dd68a08 (diff)
downloadnixlib-18ba9e69a9f21a061b6af133dee8ce72caa1dbdc.tar
nixlib-18ba9e69a9f21a061b6af133dee8ce72caa1dbdc.tar.gz
nixlib-18ba9e69a9f21a061b6af133dee8ce72caa1dbdc.tar.bz2
nixlib-18ba9e69a9f21a061b6af133dee8ce72caa1dbdc.tar.lz
nixlib-18ba9e69a9f21a061b6af133dee8ce72caa1dbdc.tar.xz
nixlib-18ba9e69a9f21a061b6af133dee8ce72caa1dbdc.tar.zst
nixlib-18ba9e69a9f21a061b6af133dee8ce72caa1dbdc.zip
deadbeef: 0.7.2 → 1.8.0
- Add native opus support
- Remove wildmidi dependency, deadbeef uses its own fork
-rw-r--r--pkgs/applications/audio/deadbeef/default.nix46
-rw-r--r--pkgs/applications/audio/deadbeef/fix-wildmidi.patch19
2 files changed, 54 insertions, 11 deletions
diff --git a/pkgs/applications/audio/deadbeef/default.nix b/pkgs/applications/audio/deadbeef/default.nix
index 0212560cd03b..a6ca5b3639da 100644
--- a/pkgs/applications/audio/deadbeef/default.nix
+++ b/pkgs/applications/audio/deadbeef/default.nix
@@ -1,4 +1,10 @@
-{ config, stdenv, fetchurl, intltool, pkgconfig, jansson
+{ config, stdenv, fetchFromGitHub
+, autoconf
+, automake
+, libtool
+, intltool
+, pkgconfig
+, jansson
 # deadbeef can use either gtk2 or gtk3
 , gtk2Support ? false, gtk2 ? null
 , gtk3Support ? true, gtk3 ? null, gsettings-desktop-schemas ? null, wrapGAppsHook ? null
@@ -9,7 +15,7 @@
 , wavSupport ? true, libsndfile ? null
 , cdaSupport ? true, libcdio ? null, libcddb ? null
 , aacSupport ? true, faad2 ? null
-, midiSupport ? false, wildmidi ? null
+, opusSupport ? true, opusfile ? null
 , wavpackSupport ? false, wavpack ? null
 , ffmpegSupport ? false, ffmpeg ? null
 , apeSupport ? true, yasm ? null
@@ -37,6 +43,7 @@ assert flacSupport -> flac != null;
 assert wavSupport -> libsndfile != null;
 assert cdaSupport -> (libcdio != null && libcddb != null);
 assert aacSupport -> faad2 != null;
+assert opusSupport -> opusfile != null;
 assert zipSupport -> libzip != null;
 assert ffmpegSupport -> ffmpeg != null;
 assert apeSupport -> yasm != null;
@@ -47,19 +54,27 @@ assert alsaSupport -> alsaLib != null;
 assert pulseSupport -> libpulseaudio != null;
 assert resamplerSupport -> libsamplerate != null;
 assert overloadSupport -> zlib != null;
-assert midiSupport -> wildmidi != null;
 assert wavpackSupport -> wavpack != null;
 assert remoteSupport -> curl != null;
 
 stdenv.mkDerivation rec {
-  name = "deadbeef-${version}";
-  version = "0.7.2";
+  pname = "deadbeef";
+  version = "1.8.0";
 
-  src = fetchurl {
-    url = "mirror://sourceforge/project/deadbeef/${name}.tar.bz2";
-    sha256 = "1168hgr1nf27pf24n1rlfh1kx1wiscwhpbhqw0rprwy203gsnqwa";
+  src = fetchFromGitHub {
+    owner = "DeaDBeeF-Player";
+    repo = "deadbeef";
+    rev = version;
+    sha256 = "126i5qlkpv7pvi1mmc9y0jhqs6jjspsj7j615n2ddvsb2jsps81c";
   };
 
+  patches = [
+    # Fix broken symbol name
+    # https://github.com/NixOS/nixpkgs/pull/59187#issuecomment-480977993
+    # will be fixed in deadbeef 1.8.1
+    ./fix-wildmidi.patch
+  ];
+
   buildInputs = with stdenv.lib; [ jansson ]
     ++ optional gtk2Support gtk2
     ++ optionals gtk3Support [ gtk3 gsettings-desktop-schemas ]
@@ -69,6 +84,7 @@ stdenv.mkDerivation rec {
     ++ optional wavSupport libsndfile
     ++ optionals cdaSupport [ libcdio libcddb ]
     ++ optional aacSupport faad2
+    ++ optional opusSupport opusfile
     ++ optional zipSupport libzip
     ++ optional ffmpegSupport ffmpeg
     ++ optional apeSupport yasm
@@ -79,16 +95,24 @@ stdenv.mkDerivation rec {
     ++ optional pulseSupport libpulseaudio
     ++ optional resamplerSupport libsamplerate
     ++ optional overloadSupport zlib
-    ++ optional midiSupport wildmidi
     ++ optional wavpackSupport wavpack
     ++ optional remoteSupport curl
     ;
 
-  nativeBuildInputs = with stdenv.lib; [ intltool pkgconfig ]
-    ++ optional gtk3Support wrapGAppsHook;
+  nativeBuildInputs = [
+    autoconf
+    automake
+    intltool
+    libtool
+    pkgconfig
+  ] ++ stdenv.lib.optional gtk3Support wrapGAppsHook;
 
   enableParallelBuilding = true;
 
+  preConfigure = ''
+    ./autogen.sh
+  '';
+
   meta = with stdenv.lib; {
     description = "Ultimate Music Player for GNU/Linux";
     homepage = http://deadbeef.sourceforge.net/;
diff --git a/pkgs/applications/audio/deadbeef/fix-wildmidi.patch b/pkgs/applications/audio/deadbeef/fix-wildmidi.patch
new file mode 100644
index 000000000000..c37308459bb7
--- /dev/null
+++ b/pkgs/applications/audio/deadbeef/fix-wildmidi.patch
@@ -0,0 +1,19 @@
+--- a/plugins/wildmidi/src/wildmidi_lib.c
++++ b/plugins/wildmidi/src/wildmidi_lib.c
+@@ -394,11 +394,11 @@ free_gauss (void) {
+     }
+ }
+ 
+-unsigned long int delay_size[4][2];
+-signed long int a[5][2];
+-signed long int b[5][2];
+-signed long int gain_in[4];
+-signed long int gain_out[4];
++static unsigned long int delay_size[4][2];
++static signed long int a[5][2];
++static signed long int b[5][2];
++static signed long int gain_in[4];
++static signed long int gain_out[4];
+ 
+ void init_lowpass (void) {
+        float c = 0;