pytrainer: unpin python 3.10
[NixPkgs.git] / pkgs / games / xsokoban / default.nix
blob51de995af4bc41630991fff711edf037532b926e
1 { lib, stdenv, fetchurl, libX11, xorgproto, libXpm, libXt }:
3 stdenv.mkDerivation rec {
4   pname = "xsokoban";
5   version = "3.3c";
7   src = fetchurl {
8     url = "https://www.cs.cornell.edu/andru/release/${pname}-${version}.tar.gz";
9     sha256 = "006lp8y22b9pi81x1a9ldfgkl1fbmkdzfw0lqw5y9svmisbafbr9";
10   };
12   buildInputs = [ libX11 xorgproto libXpm libXt ];
14   env.NIX_CFLAGS_COMPILE = "-I${libXpm.dev}/include/X11";
16   hardeningDisable = [ "format" ];
18   prePatch = ''
19     substituteInPlace Makefile.in --replace 4755 0755
20   '';
22   preConfigure = ''
23     sed -e 's/getline/my_getline/' -i score.c
25     chmod a+rw config.h
26     cat >>config.h <<EOF
27     #define HERE "@nixos-packaged"
28     #define WWW 0
29     #define OWNER "$(whoami)"
30     #define ROOTDIR "$out/lib/xsokoban"
31     #define ANYLEVEL 1
32     #define SCOREFILE ".xsokoban-score"
33     #define LOCKFILE ".xsokoban-score-lock"
34     EOF
36     sed -i main.c \
37       -e 's/getpass[(][^)]*[)]/PASSWORD/' \
38       -e '/if [(]owner[)]/iowner=1;'
39   '';
41   preBuild = ''
42     sed -i Makefile \
43       -e "s@/usr/local/@$out/@" \
44       -e "s@ /bin/@ @"
45     mkdir -p $out/bin $out/share $out/man/man1 $out/lib
46   '';
48   meta = with lib; {
49     description = "X sokoban";
50     mainProgram = "xsokoban";
51     license = licenses.publicDomain;
52     maintainers = [ maintainers.raskin ];
53     platforms = platforms.linux;
54   };