about summary refs log tree commit diff
path: root/pkgs/misc/emulators/cdemu
diff options
context:
space:
mode:
authorHerwig Hochleitner <herwig@bendlas.net>2015-02-10 02:27:04 +0100
committerHerwig Hochleitner <herwig@bendlas.net>2015-02-10 06:49:47 +0100
commit2961b83d08a18f6ac9c9d87a347cf5f2cea27690 (patch)
tree887896ee471c49da55faaf5dd5c299de3a2cf20a /pkgs/misc/emulators/cdemu
parentd49405a5abf7f4c63b9f9a5836e9790824f6406c (diff)
downloadnixlib-2961b83d08a18f6ac9c9d87a347cf5f2cea27690.tar
nixlib-2961b83d08a18f6ac9c9d87a347cf5f2cea27690.tar.gz
nixlib-2961b83d08a18f6ac9c9d87a347cf5f2cea27690.tar.bz2
nixlib-2961b83d08a18f6ac9c9d87a347cf5f2cea27690.tar.lz
nixlib-2961b83d08a18f6ac9c9d87a347cf5f2cea27690.tar.xz
nixlib-2961b83d08a18f6ac9c9d87a347cf5f2cea27690.tar.zst
nixlib-2961b83d08a18f6ac9c9d87a347cf5f2cea27690.zip
Add cdemu packages and module
Diffstat (limited to 'pkgs/misc/emulators/cdemu')
-rw-r--r--pkgs/misc/emulators/cdemu/analyzer.nix15
-rw-r--r--pkgs/misc/emulators/cdemu/base.nix37
-rw-r--r--pkgs/misc/emulators/cdemu/client.nix15
-rw-r--r--pkgs/misc/emulators/cdemu/daemon.nix9
-rw-r--r--pkgs/misc/emulators/cdemu/gui.nix18
-rw-r--r--pkgs/misc/emulators/cdemu/libmirage.nix9
-rw-r--r--pkgs/misc/emulators/cdemu/vhba.nix12
7 files changed, 115 insertions, 0 deletions
diff --git a/pkgs/misc/emulators/cdemu/analyzer.nix b/pkgs/misc/emulators/cdemu/analyzer.nix
new file mode 100644
index 000000000000..30d622ca46fb
--- /dev/null
+++ b/pkgs/misc/emulators/cdemu/analyzer.nix
@@ -0,0 +1,15 @@
+{ callPackage, gtk3, libxml2, gnuplot, makeWrapper, stdenv }:
+let pkg = import ./base.nix {
+  version = "3.0.0";
+  pkgName = "image-analyzer";
+  pkgSha256 = "1rb3f7c08dxc02zrwrkfvq7qlzlmm0kd2ah1fhxj6ajiyshi8q4v";
+};
+in callPackage pkg {
+  buildInputs = [ gtk3 libxml2 gnuplot (callPackage ./libmirage.nix {}) makeWrapper ];
+  drvParams = {
+    postFixup = ''
+      wrapProgram $out/bin/image-analyzer \
+        --set XDG_DATA_DIRS "$out/share:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS"
+    '';
+  };
+}
diff --git a/pkgs/misc/emulators/cdemu/base.nix b/pkgs/misc/emulators/cdemu/base.nix
new file mode 100644
index 000000000000..b2b641e3f7a6
--- /dev/null
+++ b/pkgs/misc/emulators/cdemu/base.nix
@@ -0,0 +1,37 @@
+{ pkgName, version, pkgSha256 }:
+{ stdenv, fetchurl, cmake, pkgconfig, buildInputs, drvParams ? {} }:
+let name = "${pkgName}-${version}";
+in stdenv.mkDerivation ({
+  inherit name buildInputs;
+  src = fetchurl {
+    url = "http://downloads.sourceforge.net/cdemu/${name}.tar.bz2";
+    sha256 = pkgSha256;
+  };
+  nativeBuildInputs = [ pkgconfig cmake ];
+  setSourceRoot = ''
+    mkdir build
+    cd build
+    sourceRoot="`pwd`"
+  '';
+  configurePhase = ''
+    cmake ../${name} -DCMAKE_INSTALL_PREFIX=$out -DCMAKE_BUILD_TYPE=Release -DCMAKE_SKIP_RPATH=ON
+  '';
+  meta = {
+    description = "CDemu is a software suite designed to emulate an optical drive and disc (including CD-ROMs and DVD-ROMs) on the Linux operating system.";
+    longDescription = ''
+      CDEmu consists of:
+
+      - a kernel module implementing a virtual drive-controller
+      - libmirage which is a software library for interpreting optical disc images
+      - a daemon which emulates the functionality of an optical drive+disc
+      - textmode and GTK clients for controlling the emulator
+      - an image analyzer to view the structure of image files
+
+      Optical media emulated by CDemu can be mounted within Linux. Automounting is also allowed.
+    '';
+    homepage = "http://cdemu.sourceforge.net/";
+    license = stdenv.lib.licenses.gpl2Plus;
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ "Rok Mandeljc <mrok AT users DOT sourceforge DOT net>" ];
+  };
+} // drvParams)
diff --git a/pkgs/misc/emulators/cdemu/client.nix b/pkgs/misc/emulators/cdemu/client.nix
new file mode 100644
index 000000000000..e590cf60ac0d
--- /dev/null
+++ b/pkgs/misc/emulators/cdemu/client.nix
@@ -0,0 +1,15 @@
+{ callPackage, python, dbus_python, intltool, makeWrapper }:
+let pkg = import ./base.nix {
+  version = "3.0.0";
+  pkgName = "cdemu-client";
+  pkgSha256 = "125f6j7c52a0c7smbx323vdpwhx24yl0vglkiyfcbm92fjji14rm";
+};
+in callPackage pkg {
+  buildInputs = [ python dbus_python intltool makeWrapper ];
+  drvParams = {
+    postFixup = ''
+      wrapProgram $out/bin/cdemu \
+        --set PYTHONPATH "$PYTHONPATH"
+    '';
+  };
+}
diff --git a/pkgs/misc/emulators/cdemu/daemon.nix b/pkgs/misc/emulators/cdemu/daemon.nix
new file mode 100644
index 000000000000..cc7a619b14fb
--- /dev/null
+++ b/pkgs/misc/emulators/cdemu/daemon.nix
@@ -0,0 +1,9 @@
+{ callPackage, glib, libao }:
+let pkg = import ./base.nix {
+  version = "3.0.2";
+  pkgName = "cdemu-daemon";
+  pkgSha256 = "01jg9b1nkqrbh6binfcbyraz83s9yjavgwi3y4w1bmqg5qlhv6lc";
+};
+in callPackage pkg {
+  buildInputs = [ glib libao (callPackage ./libmirage.nix {}) ];
+}
diff --git a/pkgs/misc/emulators/cdemu/gui.nix b/pkgs/misc/emulators/cdemu/gui.nix
new file mode 100644
index 000000000000..a6982f13cf50
--- /dev/null
+++ b/pkgs/misc/emulators/cdemu/gui.nix
@@ -0,0 +1,18 @@
+{ callPackage, python, pygobject3, gtk3, glib, libnotify, intltool, makeWrapper, gobjectIntrospection }:
+let pkg = import ./base.nix {
+  version = "3.0.0";
+  pkgName = "gcdemu";
+  pkgSha256 = "1m5ab325r586v2y2d93a817phn6wck67y5mfkf948mph40ks0mqk";
+};
+in callPackage pkg {
+  buildInputs = [ python pygobject3 gtk3 glib libnotify intltool makeWrapper ];
+  drvParams = {
+    postFixup = ''
+      wrapProgram $out/bin/gcdemu \
+        --set PYTHONPATH "$PYTHONPATH" \
+	--set GI_TYPELIB_PATH "$GI_TYPELIB_PATH" \
+	--set XDG_DATA_DIRS "$out/share:$XDG_DATA_DIRS"
+    '';  
+    # TODO AppIndicator
+  };
+}
diff --git a/pkgs/misc/emulators/cdemu/libmirage.nix b/pkgs/misc/emulators/cdemu/libmirage.nix
new file mode 100644
index 000000000000..f6ae5d132fcd
--- /dev/null
+++ b/pkgs/misc/emulators/cdemu/libmirage.nix
@@ -0,0 +1,9 @@
+{ callPackage, glib, libsndfile, zlib, bzip2, lzma, libsamplerate }:
+let pkg = import ./base.nix {
+  version = "3.0.3";
+  pkgName = "libmirage";
+  pkgSha256 = "03idg94h5qhmnnc8g9dw8yqf14yv2paph5n77dfmg925f3z70nyn";
+};
+in callPackage pkg {
+  buildInputs = [ glib libsndfile zlib bzip2 lzma libsamplerate ];
+}
diff --git a/pkgs/misc/emulators/cdemu/vhba.nix b/pkgs/misc/emulators/cdemu/vhba.nix
new file mode 100644
index 000000000000..d4596be03a69
--- /dev/null
+++ b/pkgs/misc/emulators/cdemu/vhba.nix
@@ -0,0 +1,12 @@
+{ stdenv, fetchurl, kernel }:
+let version = "20140928";
+in stdenv.mkDerivation {
+  name = "vhba-${version}";
+  src  = fetchurl {
+    url = "http://downloads.sourceforge.net/cdemu/vhba-module-${version}.tar.bz2";
+    sha256 = "18jmpg2kpx87f32b8aprr1pxla9dlhf901rkj1sp3ammf94nxxa5";
+  };
+  preBuild = ''
+    makeFlags="KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build INSTALL_MOD_PATH=$out";
+  '';
+}