diff --git a/pkgs/development/libraries/SDL_mixer/default.nix b/pkgs/development/libraries/SDL_mixer/default.nix index 7f5e38f39b8..291e9790e44 100644 --- a/pkgs/development/libraries/SDL_mixer/default.nix +++ b/pkgs/development/libraries/SDL_mixer/default.nix @@ -1,4 +1,8 @@ -{ stdenv, lib, fetchurl, SDL, libogg, libvorbis, smpeg, enableNativeMidi ? false, fluidsynth ? null }: +{ stdenv, lib, fetchurl +, SDL, libogg, libvorbis, smpeg, libmikmod +, fluidsynth +, enableNativeMidi ? false +}: stdenv.mkDerivation rec { pname = "SDL_mixer"; @@ -9,9 +13,9 @@ stdenv.mkDerivation rec { sha256 = "0alrhqgm40p4c92s26mimg9cm1y7rzr6m0p49687jxd9g6130i0n"; }; - buildInputs = [ SDL libogg libvorbis fluidsynth smpeg ]; + buildInputs = [ SDL libogg libvorbis fluidsynth smpeg libmikmod ]; - configureFlags = [ "--disable-music-ogg-shared" ] + configureFlags = [ "--disable-music-ogg-shared" "--disable-music-mod-shared" ] ++ lib.optional enableNativeMidi " --enable-music-native-midi-gpl" ++ lib.optionals stdenv.isDarwin [ "--disable-sdltest" "--disable-smpegtest" ]; diff --git a/pkgs/games/freedroid/default.nix b/pkgs/games/freedroid/default.nix new file mode 100644 index 00000000000..266407d17db --- /dev/null +++ b/pkgs/games/freedroid/default.nix @@ -0,0 +1,53 @@ +{ lib, stdenv +, fetchFromGitHub +, makeDesktopItem, copyDesktopItems +, imagemagick +, autoreconfHook +, SDL, SDL_mixer, SDL_image, SDL_gfx +, libvorbis +, libjpeg, libpng +, zlib +}: + +stdenv.mkDerivation rec { + pname = "freedroid"; + version = "1.2.1"; + + src = fetchFromGitHub { + owner = "ReinhardPrix"; + repo = "FreedroidClassic"; + rev = "release-${version}"; + sha256 = "027wns25nyyc8afyhyp5a8wn13x9nlzmnqzqyyma1055xjy5imis"; + }; + + nativeBuildInputs = [ copyDesktopItems imagemagick autoreconfHook ]; + buildInputs = [ SDL SDL_image SDL_gfx SDL_mixer libjpeg libpng libvorbis zlib ]; + + postPatch = '' + touch NEWS + ''; + + postInstall = '' + mkdir -p $out/share/icons/hicolor/32x32/apps + convert graphics/paraicon.bmp $out/share/icons/hicolor/32x32/apps/freedroid.png + ''; + + desktopItems = [ (makeDesktopItem { + name = pname; + exec = pname; + icon = pname; + desktopName = "Freedroid Classic"; + comment = "A clone of the classic game 'Paradroid' on Commodore 64"; + categories = "Game;ArcadeGame;"; + }) ]; + + meta = with lib; { + description = "A clone of the classic game 'Paradroid' on Commodore 64"; + homepage = "https://github.com/ReinhardPrix/FreedroidClassic"; + license = licenses.gpl2Only; + maintainers = with maintainers; [ iblech ]; + platforms = platforms.unix; + # Builds but fails to render to the screen at runtime. + broken = stdenv.isDarwin; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 72269704ed1..0a863bac1a7 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4233,6 +4233,8 @@ in mkFranzDerivation = callPackage ../applications/networking/instant-messengers/franz/generic.nix { }; }; + freedroid = callPackage ../games/freedroid { }; + freedroidrpg = callPackage ../games/freedroidrpg { }; freenukum = callPackage ../games/freenukum { };