diff --git a/pkgs/by-name/do/dopewars/0001-remove_setuid.patch b/pkgs/by-name/do/dopewars/0001-remove_setuid.patch new file mode 100644 index 000000000000..ee68109c5579 --- /dev/null +++ b/pkgs/by-name/do/dopewars/0001-remove_setuid.patch @@ -0,0 +1,13 @@ +diff --git a/src/Makefile.am b/src/Makefile.am +index 4b0c466..ce008fa 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -54,7 +54,7 @@ + @chgrp games ${DOPEBIN} || chgrp wheel ${DOPEBIN} || \ + ( echo "WARNING: Cannot change group of dopewars binary - the high"; \ + echo "score file may be unreadable or unwriteable by some users" ) +- chmod 2755 ${DOPEBIN} ++ chmod 755 ${DOPEBIN} + + install-data-local: + ${mkinstalldirs} ${PIXDIR} diff --git a/pkgs/by-name/do/dopewars/package.nix b/pkgs/by-name/do/dopewars/package.nix new file mode 100644 index 000000000000..8f550abc8e2d --- /dev/null +++ b/pkgs/by-name/do/dopewars/package.nix @@ -0,0 +1,54 @@ +{ lib +, stdenv +, fetchFromGitHub +, autoreconfHook +, makeWrapper +, curl +, ncurses +, gtk3 +, pkg-config +, scoreDirectory ? "$HOME/.local/share" +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "dopewars"; + version = "1.6.2"; + + src = fetchFromGitHub { + owner = "benmwebb"; + repo = "dopewars"; + rev = "v${finalAttrs.version}"; + hash = "sha256-CpgqRYmrfOFxhC7yAS2OqRBi4r3Vesq3+7a0q5rc3vM="; + }; + + nativeBuildInputs = [ + autoreconfHook + makeWrapper + pkg-config + ]; + + buildInputs = [ + curl + gtk3 + ncurses + ]; + + # remove the denied setting of setuid bit permission + patches = [ ./0001-remove_setuid.patch ]; + + # run dopewars with -f so that it finds its scoreboard file in ~/.local/share + postInstall = '' + wrapProgram $out/bin/dopewars \ + --run 'mkdir -p ${scoreDirectory}' \ + --add-flags '-f ${scoreDirectory}/dopewars.sco' + ''; + + meta = with lib; { + description = "Game simulating the life of a drug dealer in New York"; + homepage = "https://dopewars.sourceforge.io"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ geri1701 ]; + mainProgram = "dopewars"; + platforms = platforms.unix; + }; +})