67 lines
1.8 KiB
Nix
67 lines
1.8 KiB
Nix
{
|
|
fetchFromGitHub,
|
|
ncurses,
|
|
lib,
|
|
stdenv,
|
|
autoconf,
|
|
automake,
|
|
pkg-config,
|
|
installShellFiles,
|
|
}:
|
|
|
|
stdenv.mkDerivation {
|
|
pname = "freesweep";
|
|
version = "1.0.2-unstable-2024-04-19";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "rwestlund";
|
|
repo = "freesweep";
|
|
rev = "68c0ee5b29d1087d216d95875a7036713cd25fc0";
|
|
hash = "sha256-ZnAH7mIuBMFLdrtJOY8PzNbxv+GDEFAgyEtWCpTH2Us=";
|
|
};
|
|
|
|
# These patches are sent upstream in github:rwestlund/freesweep#18
|
|
patches = [
|
|
# strncasecmp and friends are declared in strings.h and not string.h on
|
|
# systems with HAVE_STRINGS_H
|
|
./0001-include-strings.h.patch
|
|
# Fixes a potential format string vulnerability and makes it compile with
|
|
# -Wformat-security
|
|
./0002-fix-Wformat-security.patch
|
|
# autoconf believes systems that handle malloc(0) differently from glibc
|
|
# have a bad malloc implementation and will replace calls to malloc with
|
|
# rpl_malloc. freesweep does not define rpl_malloc so this macro prevents
|
|
# building for such systems, the easiest solution is to remove this macro
|
|
./0003-remove-ac_func_malloc.patch
|
|
];
|
|
|
|
nativeBuildInputs = [
|
|
autoconf
|
|
automake
|
|
pkg-config
|
|
installShellFiles
|
|
];
|
|
buildInputs = [ ncurses ];
|
|
|
|
enableParallelBuilding = true;
|
|
|
|
preConfigure = "./autogen.sh";
|
|
|
|
installPhase = ''
|
|
runHook preInstall
|
|
install -D -m 0555 freesweep $out/bin/freesweep
|
|
install -D -m 0444 sweeprc $out/share/sweeprc
|
|
installManPage freesweep.6
|
|
runHook postInstall
|
|
'';
|
|
|
|
meta = {
|
|
description = "Console minesweeper-style game written in C for Unix-like systems";
|
|
mainProgram = "freesweep";
|
|
homepage = "https://github.com/rwestlund/freesweep";
|
|
license = lib.licenses.gpl2Only;
|
|
maintainers = with lib.maintainers; [ lzcunt ];
|
|
platforms = lib.platforms.unix;
|
|
};
|
|
}
|