diff --git a/pkgs/games/koules/default.nix b/pkgs/games/koules/default.nix new file mode 100644 index 000000000000..e2c7c55cbb70 --- /dev/null +++ b/pkgs/games/koules/default.nix @@ -0,0 +1,76 @@ +{ stdenv +, lib +, fetchurl +, fetchzip +, makeDesktopItem +, copyDesktopItems +, imake +, gccmakedep +, libX11 +, libXext +, installShellFiles +}: + +let + debian-extras = fetchzip { + url = "mirror://debian/pool/main/k/koules/koules_1.4-27.debian.tar.xz"; + sha256 = "0bq1rr6vxqmx2k0dhyrqnwwfiw4h2ycbj576v66vwr0jaq5plil3"; + }; +in + +stdenv.mkDerivation rec { + pname = "koules"; + version = "1.4"; + + src = fetchurl { + url = "https://www.ucw.cz/~hubicka/koules/packages/${pname}${version}-src.tar.gz"; + sha256 = "06x2wkpns14kii9fxmxbmj5lma371qj00hgl7fc5kggfmzz96vy3"; + }; + + nativeBuildInputs = [ imake gccmakedep installShellFiles copyDesktopItems ]; + buildInputs = [ libX11 libXext ]; + + # Debian maintains lots of patches for koules. Let's include all of them. + prePatch = '' + patches="$patches $(cat ${debian-extras}/patches/series | sed 's|^|${debian-extras}/patches/|')" + ''; + + postPatch = '' + # We do not want to depend on that particular font to be available in the + # xserver, hence substitute it by a font which is always available + sed -ie 's:-schumacher-clean-bold-r-normal--8-80-75-75-c-80-\*iso\*:fixed:' xlib/init.c + ''; + + preBuild = '' + cp xkoules.6 xkoules.man # else "make" will not succeed + sed -ie "s:^SOUNDDIR\s*=.*:SOUNDDIR=$out/lib:" Makefile + sed -ie "s:^KOULESDIR\s*=.*:KOULESDIR=$out:" Makefile + ''; + + installPhase = '' + runHook preInstall + install -Dm755 xkoules $out/bin/xkoules + install -Dm755 koules.sndsrv.linux $out/lib/koules.sndsrv.linux + install -m644 sounds/* $out/lib/ + install -Dm644 Koules.xpm $out/share/pixmaps/koules.xpm + installManPage xkoules.6 + runHook postInstall + ''; + + desktopItems = [ (makeDesktopItem { + desktopName = "Koules"; + name = "koules"; + exec = "xkoules"; + icon = "koules"; + comment = "Push your enemies away, but stay away from obstacles"; + categories = [ "Game" "ArcadeGame" ]; + }) ]; + + meta = with lib; { + description = "Fast arcade game based on the fundamental law of body attraction"; + homepage = "https://www.ucw.cz/~hubicka/koules/English/"; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = [ maintainers.iblech ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index af8053340ced..a9017c1a41d3 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -31352,6 +31352,8 @@ with pkgs; useProprietaryAssets = false; }; + koules = callPackage ../games/koules { }; + leela-zero = libsForQt5.callPackage ../games/leela-zero { }; legendary-gl = python38Packages.callPackage ../games/legendary-gl { };