about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2008-08-21 08:58:51 +0000
committerLudovic Courtès <ludo@gnu.org>2008-08-21 08:58:51 +0000
commitd4e5ed05960a8a93c29f20f7bb522d97a1873271 (patch)
treec69eda93d0b275fb38dc37fdcdf2df506baaf0b0
parent16d317e709c1426e66c8049e8517ef0ed809b914 (diff)
downloadnixlib-d4e5ed05960a8a93c29f20f7bb522d97a1873271.tar
nixlib-d4e5ed05960a8a93c29f20f7bb522d97a1873271.tar.gz
nixlib-d4e5ed05960a8a93c29f20f7bb522d97a1873271.tar.bz2
nixlib-d4e5ed05960a8a93c29f20f7bb522d97a1873271.tar.lz
nixlib-d4e5ed05960a8a93c29f20f7bb522d97a1873271.tar.xz
nixlib-d4e5ed05960a8a93c29f20f7bb522d97a1873271.tar.zst
nixlib-d4e5ed05960a8a93c29f20f7bb522d97a1873271.zip
Add EMMS, the Emacs Multimedia System.
svn path=/nixpkgs/trunk/; revision=12675
-rw-r--r--pkgs/applications/editors/emacs-modes/emms/default.nix58
-rw-r--r--pkgs/top-level/all-packages.nix5
2 files changed, 63 insertions, 0 deletions
diff --git a/pkgs/applications/editors/emacs-modes/emms/default.nix b/pkgs/applications/editors/emacs-modes/emms/default.nix
new file mode 100644
index 000000000000..ce4954056e12
--- /dev/null
+++ b/pkgs/applications/editors/emacs-modes/emms/default.nix
@@ -0,0 +1,58 @@
+{ stdenv, fetchurl, emacs, texinfo
+, mpg321, vorbisTools, taglib, alsaUtils }:
+
+# XXX: EMMS also supports Xine, MPlayer, Jack, etc.
+
+stdenv.mkDerivation rec {
+  name = "emms-3.0";
+
+  src = fetchurl {
+    # These guys don't use ftp.gnu.org...
+    url = "http://www.gnu.org/software/emms/download/${name}.tar.gz";
+    sha256 = "151mfx97x15lfpd1qc2sqbvhwhvg46axgh15qyqmdy42vh906xav";
+  };
+
+  buildInputs = [ emacs texinfo ];
+
+  configurePhase = ''
+    sed -i "Makefile" -e "s|PREFIX *=.*\$|PREFIX = $out|g ;
+                          s|/usr/sbin/install-info|install-info|g ;
+                          s|/usr/include/taglib|${taglib}/include/taglib|g ;
+                          s|/usr/lib|${taglib}/lib|g ;
+                          s|^all:\(.*\)\$|all:\1 emms-print-metadata|g"
+    ensureDir "$out/share/man/man1"
+
+    sed -i "emms-player-mpg321-remote.el" \
+        -e 's|emms-player-mpg321-remote-command[[:blank:]]\+"mpg321"|emms-player-mpg321-remote-command "${mpg321}/bin/mpg321"|g'
+    sed -i "emms-player-simple.el" \
+        -e 's|"ogg123"|"${vorbisTools}/bin/ogg123"|g'
+    sed -i "emms-info-ogginfo.el" \
+        -e 's|emms-info-ogginfo-program-name[[:blank:]]\+"ogginfo"|emms-info-ogginfo-program-name "${vorbisTools}/bin/ogginfo"|g'
+    sed -i "emms-info-libtag.el" \
+        -e "s|\"emms-print-metadata\"|\"$out/bin/emms-print-metadata\"|g"
+    sed -i "emms-volume-amixer.el" \
+        -e 's|"amixer"|"${alsaUtils}/bin/amixer"|g'
+  '';
+
+  postInstall = ''
+    ensureDir "$out/bin" && cp emms-print-metadata "$out/bin"
+  '';
+  
+  meta = {
+    description = "GNU EMMS, The Emacs Multimedia System";
+
+    longDescription = ''
+      EMMS is the Emacs Multimedia System.  It tries to be a clean and
+      small application to play multimedia files from Emacs using
+      external players.  Many of it's ideas are derived from
+      MpthreePlayer, but it tries to be more general and cleaner.
+
+      The fact that EMMS is based on external players makes it
+      powerful, because it supports all formats that those players
+      support, with no effort from your side.
+    '';
+
+    homepage = http://www.gnu.org/software/emms/;
+    license = "GPLv3+";
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index af2ec9471ca4..b56d283961db 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -6000,6 +6000,11 @@ let pkgs = rec {
     xftSupport = true;
   };
 
+  emms = import ../applications/editors/emacs-modes/emms {
+    inherit fetchurl stdenv emacs texinfo mpg321 vorbisTools taglib
+      alsaUtils;
+  };
+
   evince = import ../applications/misc/evince {
     inherit fetchurl stdenv perl perlXMLParser gettext
       pkgconfig poppler libspectre djvulibre libxslt