summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/games/keen4/builder.sh31
-rw-r--r--pkgs/games/keen4/default.nix16
-rw-r--r--pkgs/top-level/all-packages.nix4
-rw-r--r--pkgs/top-level/build-for-release.nix17
4 files changed, 60 insertions, 8 deletions
diff --git a/pkgs/games/keen4/builder.sh b/pkgs/games/keen4/builder.sh
new file mode 100644
index 000000000000..bb7643f04648
--- /dev/null
+++ b/pkgs/games/keen4/builder.sh
@@ -0,0 +1,31 @@
+source $stdenv/setup
+
+ensureDir $out/share/keen4
+unzip -j $dist -d $out/share/keen4
+
+ensureDir $out/bin
+cat > $out/bin/keen4 <<EOF
+#! $SHELL -e
+if test -z "\$HOME"; then
+    echo "HOME directory not set"
+    exit 1
+fi
+
+# Game wants to write in the current directory, but of course we can't
+# let it write in the Nix store.  So create symlinks to the game files
+# in ~/.keen4 and execute game from there.
+mkdir -p \$HOME/.keen4
+cd \$HOME/.keen4
+
+ln -sf $out/share/keen4/* .
+
+dosbox ./KEEN4E.EXE -fullscreen -exit || true
+
+# Cleanup the symlinks.
+for i in *; do
+    if test -L "\$i"; then
+        rm "\$i"
+    fi
+done
+EOF
+chmod +x $out/bin/keen4
\ No newline at end of file
diff --git a/pkgs/games/keen4/default.nix b/pkgs/games/keen4/default.nix
new file mode 100644
index 000000000000..ca9aafa6d03f
--- /dev/null
+++ b/pkgs/games/keen4/default.nix
@@ -0,0 +1,16 @@
+{stdenv, fetchurl, dosbox, unzip}:
+
+stdenv.mkDerivation {
+  name = "keen4";
+  builder = ./builder.sh;
+
+  dist = /home/eelco/keen4.zip;
+
+  buildInputs = [unzip];
+
+  inherit dosbox;
+
+  meta = {
+    description = "Commander Keen Episode 4: Secret of the Oracle";
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index d19de08e4fac..85acfda8424f 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -2726,6 +2726,10 @@ rec {
     inherit (xlibs) xlibs;
   };
 
+  keen4 = import ../games/keen4 {
+    inherit fetchurl stdenv dosbox unzip;
+  };
+
 
   ### MISC
 
diff --git a/pkgs/top-level/build-for-release.nix b/pkgs/top-level/build-for-release.nix
index 802be53a3008..3133b23de252 100644
--- a/pkgs/top-level/build-for-release.nix
+++ b/pkgs/top-level/build-for-release.nix
@@ -59,14 +59,13 @@ let {
     grub
     gzip
     hello
-#    inkscape
     jakartaregexp
     jetty
     jikes
     jing_tools
     jre
     kcachegrind
-#    kernel
+    keen4
     less
     libtool
     libxml2
@@ -80,7 +79,6 @@ let {
     mythtv
     nix
     nxml
-#    octave
     openssl
     pan
     par2cmdline
@@ -93,10 +91,8 @@ let {
     python
     qcmm
     qt3
-#    qtparted
     quake3demo
     readline
-#    rssglx
     screen
     sdf
     spidermonkey
@@ -112,7 +108,6 @@ let {
     transformers
     uml
     unzip
-#    uuagc
     uulib
     valgrind
     vim
@@ -124,7 +119,6 @@ let {
     xmms
     xorg_sys_opengl
     xsel
-#    zapping
     zdelta
     zip
 #    atermjava
@@ -132,15 +126,22 @@ let {
 #    ghc
 #    helium
 #    hevea
+#    inkscape
 #    jakartabcel
 #    jjtraveler
+#    kernel
 #    monodevelop
 #    monodoc
 #    ocaml
+#    octave
 #    ov511
+#    qtparted
+#    rssglx
 #    sharedobjects
+#    uuagc
 #    xauth
 #    xawtv
+#    zapping
   ;};
 
   powerpcLinuxPkgs = {inherit (allPackages {system = "powerpc-linux";})
@@ -177,7 +178,7 @@ let {
     libtool
     libxml2
     libxslt
-    maven
+#    maven
     nxml
     php
 #    spidermonkey