diff options
-rw-r--r-- | pkgs/games/gsb/default.nix | 68 | ||||
-rw-r--r-- | pkgs/tools/networking/curl/7.15.nix | 75 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 7 |
3 files changed, 150 insertions, 0 deletions
diff --git a/pkgs/games/gsb/default.nix b/pkgs/games/gsb/default.nix new file mode 100644 index 000000000000..b740fc026d97 --- /dev/null +++ b/pkgs/games/gsb/default.nix @@ -0,0 +1,68 @@ +{ stdenv, config, requireFile +, curl3, SDL, SDL_image, libpng12, libjpeg62, libvorbis, libogg, openal, mesa +, libX11, libXext, libXft, fontconfig, zlib }: + +# TODO: add i686 support + +stdenv.mkDerivation rec { + name = "gsb-1.56.0"; + + goBuyItNow = '' + We cannot download the full version automatically, as you require a license. + Once you bought a license, you need to add your downloaded version to the nix store. + You can do this by using "nix-prefetch-url file://gsb1324679796.tar.gz" in the + directory where you saved it. + ''; + + src = requireFile { + message = goBuyItNow; + name = "gsb1324679796.tar.gz"; + sha256 = "12jsz9v55w9zxwiz4kbm6phkv60q3c2kyv5imsls13385pzwcs8i"; + }; + + phases = "unpackPhase installPhase"; + + # XXX: stdenv.lib.makeLibraryPath doesn't pick up /lib64 + libPath = stdenv.lib.makeLibraryPath [ stdenv.gcc.gcc stdenv.gcc.libc ] + + ":" + stdenv.lib.makeLibraryPath [ SDL SDL_image libjpeg62 libpng12 mesa ] + + ":" + stdenv.lib.makeLibraryPath [ curl3 openal libvorbis libogg ] + + ":" + stdenv.lib.makeLibraryPath [ libX11 libXext libXft fontconfig zlib ] + + ":" + stdenv.gcc.gcc + "/lib64"; + + installPhase = '' + ensureDir $out/libexec/positech/GSB/ + ensureDir $out/bin + + patchelf --interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" --set-rpath $libPath ./GSB.bin.x86_64 + + cp -r * $out/libexec/positech/GSB/ + rm -rf $out/libexec/positech/GSB/lib64/ + + #makeWrapper doesn't do cd. :( + + cat > $out/bin/GSB << EOF + #!/bin/sh + cd $out/libexec/positech/GSB + exec ./GSB.bin.x86_64 + EOF + chmod +x $out/bin/GSB + ''; + + meta = { + description = "Gratuitous Space Battles"; + longDescription = '' + a strategy / management / simulation game that does away with all the + base building and delays and gets straight to the meat and potatoes of + science-fiction games : The big space battles fought by huge spaceships with + tons of laser beams and things going 'zap!', 'ka-boom!' and 'ka-pow!'. In GSB + you put your ships together from modular components, arrange them into fleets, + give your ships orders of engagement and then hope they emerge victorious from + battle (or at least blow to bits in aesthetically pleasing ways). + ''; + homepage = http://www.positech.co.uk/gratuitousspacebattles/index.html; + license = [ "unfree" ]; + maintainers = with stdenv.lib.maintainers; [ jcumming ]; + platforms = [ "x86_64-linux"] ; + }; + +} diff --git a/pkgs/tools/networking/curl/7.15.nix b/pkgs/tools/networking/curl/7.15.nix new file mode 100644 index 000000000000..0a87eaa944cd --- /dev/null +++ b/pkgs/tools/networking/curl/7.15.nix @@ -0,0 +1,75 @@ +{ stdenv, fetchurl +, zlibSupport ? false, zlib ? null +, sslSupport ? false, openssl ? null +, scpSupport ? false, libssh2 ? null +, gssSupport ? false, gss ? null +, c-aresSupport ? false, c-ares ? null +, linkStatic ? false +}: + +assert zlibSupport -> zlib != null; +assert sslSupport -> openssl != null; +assert scpSupport -> libssh2 != null; +assert c-aresSupport -> c-ares != null; + +stdenv.mkDerivation rec { + name = "curl-7.15.0"; + + src = fetchurl { + url = "http://curl.haxx.se/download/archeology/${name}.tar.gz"; + sha256 = "061bgjm6rv0l9804vmm4jvr023l52qvmy9qq4zjv4lgqhlljvhz3"; + }; + + # Zlib and OpenSSL must be propagated because `libcurl.la' contains + # "-lz -lssl", which aren't necessary direct build inputs of + # applications that use Curl. + propagatedBuildInputs = with stdenv.lib; + optional zlibSupport zlib ++ + optional gssSupport gss ++ + optional c-aresSupport c-ares ++ + optional sslSupport openssl; + + preConfigure = '' + sed -e 's|/usr/bin|/no-such-path|g' -i.bak configure + ''; + configureFlags = [ + ( if sslSupport then "--with-ssl=${openssl}" else "--without-ssl" ) + ( if scpSupport then "--with-libssh2=${libssh2}" else "--without-libssh2" ) + ] + ++ stdenv.lib.optional c-aresSupport "--enable-ares=${c-ares}" + ++ stdenv.lib.optional gssSupport "--with-gssapi=${gss}" + ++ stdenv.lib.optionals linkStatic [ "--enable-static" "--disable-shared" ] + ; + + dontDisableStatic = linkStatic; + + CFLAGS = if stdenv ? isDietLibC then "-DHAVE_INET_NTOA_R_2_ARGS=1" else ""; + LDFLAGS = if linkStatic then "-static" else ""; + CXX = "g++"; + CXXCPP = "g++ -E"; + + # libtool hack to get a static binary. Notice that to 'configure' I passed + # other LDFLAGS, because it doesn't use libtool for linking in the tests. + makeFlags = if linkStatic then "LDFLAGS=-all-static" else ""; + + crossAttrs = { + # We should refer to the cross built openssl + # For the 'urandom', maybe it should be a cross-system option + configureFlags = [ + ( if sslSupport then "--with-ssl=${openssl.crossDrv}" else "--without-ssl" ) + "--with-random /dev/urandom" + ] + ++ stdenv.lib.optionals linkStatic [ "--enable-static" "--disable-shared" ] + ; + }; + + passthru = { + inherit sslSupport openssl; + }; + + meta = { + homepage = "http://curl.haxx.se/"; + description = "A command line tool for transferring files with URL syntax"; + platforms = stdenv.lib.platforms.all; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 3bfa1e815eef..9ff6461998a7 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -712,6 +712,11 @@ let scpSupport = zlibSupport && !stdenv.isSunOS && !stdenv.isCygwin; }; + curl3 = callPackage ../tools/networking/curl/7.15.nix rec { + zlibSupport = true; + sslSupport = zlibSupport; + }; + cunit = callPackage ../tools/misc/cunit { }; curlftpfs = callPackage ../tools/filesystems/curlftpfs { }; @@ -4112,6 +4117,8 @@ let gav = callPackage ../games/gav { }; + gsb = callPackage ../games/gsb { }; + gdome2 = callPackage ../development/libraries/gdome2 { inherit (gnome) gtkdoc; }; |