diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2006-10-28 22:28:35 +0000 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2006-10-28 22:28:35 +0000 |
commit | c391e5855bb518bf9a21f979991be82f0dcd86f2 (patch) | |
tree | f5db6ff3690e77d14d539448586da7d5898b72c1 | |
parent | f95a93197a5db531b12bd50510efb50bdacdf656 (diff) | |
download | nixlib-c391e5855bb518bf9a21f979991be82f0dcd86f2.tar nixlib-c391e5855bb518bf9a21f979991be82f0dcd86f2.tar.gz nixlib-c391e5855bb518bf9a21f979991be82f0dcd86f2.tar.bz2 nixlib-c391e5855bb518bf9a21f979991be82f0dcd86f2.tar.lz nixlib-c391e5855bb518bf9a21f979991be82f0dcd86f2.tar.xz nixlib-c391e5855bb518bf9a21f979991be82f0dcd86f2.tar.zst nixlib-c391e5855bb518bf9a21f979991be82f0dcd86f2.zip |
* An example of supporting legacy applications using dosbox ;-)
svn path=/nixpkgs/trunk/; revision=6895
-rw-r--r-- | pkgs/games/keen4/builder.sh | 31 | ||||
-rw-r--r-- | pkgs/games/keen4/default.nix | 16 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 4 | ||||
-rw-r--r-- | pkgs/top-level/build-for-release.nix | 17 |
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 |