From 71f164ac1e5d4baa69fbd770da2e813e0f387ffb Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Mon, 17 May 2010 09:21:42 +0000 Subject: [PATCH] Three Games and Perl Support for Irssi Here are four patches. Three of them add expressions for games. The fourth, irssi-perl.patch, adds perl as an input for irssi, so that one can run perl plugins in irssi. I didn't make the perl input optional, but maybe it should be to keep the irssi expression light. svn path=/nixpkgs/trunk/; revision=21813 --- .../networking/irc/irssi/default.nix | 4 +- pkgs/games/gnugo/default.nix | 24 ++++++++++++ pkgs/games/six/default.nix | 34 +++++++++++++++++ pkgs/games/six/gcc43-includes.patch | 38 +++++++++++++++++++ pkgs/games/super-tux/default.nix | 28 ++++++++++++++ pkgs/games/super-tux/g++4.patch | 13 +++++++ pkgs/top-level/all-packages.nix | 17 ++++++++- 7 files changed, 155 insertions(+), 3 deletions(-) create mode 100644 pkgs/games/gnugo/default.nix create mode 100644 pkgs/games/six/default.nix create mode 100644 pkgs/games/six/gcc43-includes.patch create mode 100644 pkgs/games/super-tux/default.nix create mode 100644 pkgs/games/super-tux/g++4.patch diff --git a/pkgs/applications/networking/irc/irssi/default.nix b/pkgs/applications/networking/irc/irssi/default.nix index 7e3b27cec1f3..963108aa07f0 100644 --- a/pkgs/applications/networking/irc/irssi/default.nix +++ b/pkgs/applications/networking/irc/irssi/default.nix @@ -1,4 +1,4 @@ -{stdenv, fetchurl, pkgconfig, ncurses, glib, openssl}: +{stdenv, fetchurl, pkgconfig, ncurses, glib, openssl, perl}: stdenv.mkDerivation rec { name = "irssi-0.8.15"; @@ -8,7 +8,7 @@ stdenv.mkDerivation rec { sha256 = "19m0aah9bhc70dnhh7kpydbsz5n35l0l9knxav1df0sic3xicbf1"; }; - buildInputs = [pkgconfig ncurses glib openssl]; + buildInputs = [pkgconfig ncurses glib openssl perl]; NIX_LDFLAGS = "-lncurses"; diff --git a/pkgs/games/gnugo/default.nix b/pkgs/games/gnugo/default.nix new file mode 100644 index 000000000000..21c4195b28b8 --- /dev/null +++ b/pkgs/games/gnugo/default.nix @@ -0,0 +1,24 @@ +{ stdenv, fetchurl }: + +let + + versionNumber = "3.8"; + +in + +stdenv.mkDerivation { + + name = "gnugo-${versionNumber}"; + + src = fetchurl { + url = "mirror://gnu/gnugo/gnugo-${versionNumber}.tar.gz"; + sha256 = "0wkahvqpzq6lzl5r49a4sd4p52frdmphnqsfdv7gdp24bykdfs6s"; + }; + + meta = { + description = "GNU Go - A computer go player"; + homepage = "http://http://www.gnu.org/software/gnugo/"; + license = "GPLv3"; + }; + +} diff --git a/pkgs/games/six/default.nix b/pkgs/games/six/default.nix new file mode 100644 index 000000000000..2f11eab3ceaf --- /dev/null +++ b/pkgs/games/six/default.nix @@ -0,0 +1,34 @@ +{ stdenv, fetchurl, arts, kdelibs, libX11, libXext, libXt, perl, qt3, zlib }: + +let + + versionNumber = "0.5.3"; + +in + +stdenv.mkDerivation { + + name = "six-${versionNumber}"; + + src = fetchurl { + url = "http://six.retes.hu/download/six-${versionNumber}.tar.gz"; + sha256 = "0hialm0kxr11rp5z452whjmxp2vaqqj668d0dfs32fd10ggi8wj4"; + }; + + meta = { + description = "Six - A Hex playing program for KDE"; + homepage = http://six.retes.hu/; + license = "GPLv2"; + }; + + buildInputs = [ arts kdelibs libX11 libXext libXt perl qt3 zlib ]; + + # Supress some warnings which are less useful to us when making packages. + NIX_CFLAGS_COMPILE = "-Wno-conversion -Wno-parentheses"; + + # Without "--x-libraries=", we get the error + # "impure path `/usr/lib' used in link". + configureFlags = "--x-libraries="; + + patches = [ ./gcc43-includes.patch ]; +} diff --git a/pkgs/games/six/gcc43-includes.patch b/pkgs/games/six/gcc43-includes.patch new file mode 100644 index 000000000000..83096bb0da2b --- /dev/null +++ b/pkgs/games/six/gcc43-includes.patch @@ -0,0 +1,38 @@ +This patch makes six compile with gcc 4.3 by including more header files. It +is based on the advice at . + +--- a/six/carrier.h ++++ b/six/carrier.h +@@ -2,6 +2,7 @@ + #ifndef CARRIER_H + #define CARRIER_H + ++#include + #include + #include + +diff --git a/six/hexgame.cpp b/six/hexgame.cpp +index 720e977..5d0dafe 100644 +--- a/six/hexgame.cpp ++++ b/six/hexgame.cpp +@@ -3,6 +3,7 @@ + #include + #include + #include ++#include + + #include + +diff --git a/six/main.cpp b/six/main.cpp +index 7fb5c21..b925a0c 100644 +--- a/six/main.cpp ++++ b/six/main.cpp +@@ -4,6 +4,8 @@ + #include "carrier.h" + #include "misc.h" + ++#include ++ + #include + #include + #include diff --git a/pkgs/games/super-tux/default.nix b/pkgs/games/super-tux/default.nix new file mode 100644 index 000000000000..60e9cc537bf0 --- /dev/null +++ b/pkgs/games/super-tux/default.nix @@ -0,0 +1,28 @@ +{ fetchurl, stdenv, SDL, SDL_image, SDL_mixer, curl, gettext, libogg, libvorbis, mesa, openal }: + +let + + version = "0.1.3"; + +in + +stdenv.mkDerivation { + name = "supertux-${version}"; + + src = fetchurl { + url = "http://download.berlios.de/supertux/supertux-${version}.tar.bz2"; + sha256 = "15xdq99jy4hayr96jpqcp15rbr9cs5iamjirafajcrkpa61mi4h0"; + }; + + buildInputs = [ SDL SDL_image SDL_mixer curl gettext libogg libvorbis mesa openal ]; + + patches = [ ./g++4.patch ]; + + meta = { + description = "SuperTux is a classic 2D jump'n run sidescroller game in a style similar to the original Super Mario games covered under the GPL."; + + homepage = http://supertux.lethargik.org/index.html; + + license = "GPLv2"; + }; +} diff --git a/pkgs/games/super-tux/g++4.patch b/pkgs/games/super-tux/g++4.patch new file mode 100644 index 000000000000..a7378c80a29b --- /dev/null +++ b/pkgs/games/super-tux/g++4.patch @@ -0,0 +1,13 @@ +diff --git a/src/menu.h b/src/menu.h +index 3c67c45..7c7ab8e 100644 +--- a/src/menu.h ++++ b/src/menu.h +@@ -207,7 +207,7 @@ public: + + bool isToggled(int id); + +- void Menu::get_controlfield_key_into_input(MenuItem *item); ++ void get_controlfield_key_into_input(MenuItem *item); + + void draw (); + void draw_item(int index, int menu_width, int menu_height); diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index e9ea00f2dc2b..abd3a9071185 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7963,7 +7963,7 @@ let }; irssi = import ../applications/networking/irc/irssi { - inherit stdenv fetchurl pkgconfig ncurses openssl glib; + inherit stdenv fetchurl pkgconfig ncurses openssl glib perl; }; jackmeter = import ../applications/audio/jackmeter { @@ -8944,6 +8944,10 @@ let flex = flex2535; }; + gnugo = import ../games/gnugo { + inherit stdenv fetchurl; + }; + gparted = import ../tools/misc/gparted { inherit fetchurl stdenv parted intltool gettext libuuid pkgconfig libxml2; inherit (gtkLibs) gtk glib gtkmm; @@ -9015,6 +9019,13 @@ let inherit (xlibs) libX11; }; + six = import ../games/six { + inherit stdenv fetchurl; + inherit perl zlib qt3; + inherit (kde3) arts kdelibs; + inherit (xlibs) libX11 libXt libXext; + }; + # You still can override by passing more arguments. spaceOrbit = composedArgsAndFun (import ../games/orbit/1.01.nix) { inherit fetchurl stdenv builderDefs mesa freeglut; @@ -9022,6 +9033,10 @@ let inherit (xlibs) libXt libX11 libXmu libXi libXext; }; + superTux = import ../games/super-tux { + inherit fetchurl stdenv SDL SDL_image SDL_mixer curl gettext libogg libvorbis mesa openal; + }; + superTuxKart = import ../games/super-tux-kart { inherit fetchurl stdenv plib SDL openal freealut mesa libvorbis libogg gettext;