diff options
Diffstat (limited to 'pkgs/games/sgt-puzzles/default.nix')
-rw-r--r-- | pkgs/games/sgt-puzzles/default.nix | 53 |
1 files changed, 40 insertions, 13 deletions
diff --git a/pkgs/games/sgt-puzzles/default.nix b/pkgs/games/sgt-puzzles/default.nix index 8349be64264..f138e1d0491 100644 --- a/pkgs/games/sgt-puzzles/default.nix +++ b/pkgs/games/sgt-puzzles/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl +{ stdenv, fetchurl, desktop-file-utils , gtk3, libX11 , makeWrapper, pkgconfig, perl, autoreconfHook, wrapGAppsHook }: @@ -8,28 +8,55 @@ stdenv.mkDerivation rec { version = "20191114.1c0c49d"; src = fetchurl { - url = "http://www.chiark.greenend.org.uk/~sgtatham/puzzles/puzzles-${version}.tar.gz"; - sha256 = "01fi2f3w71bfbgcfr6gxdp5a9cxh4dshbflv83q2j5rxxs2ll870"; + url = "http://www.chiark.greenend.org.uk/~sgtatham/puzzles/puzzles-${version}.tar.gz"; + sha256 = "01fi2f3w71bfbgcfr6gxdp5a9cxh4dshbflv83q2j5rxxs2ll870"; }; - nativeBuildInputs = [ autoreconfHook makeWrapper pkgconfig perl wrapGAppsHook ]; + sgt-puzzles-menu = fetchurl { + url = "https://raw.githubusercontent.com/Oleh-Kravchenko/portage/master/games-puzzle/sgt-puzzles/files/sgt-puzzles.menu"; + sha256 = "088w0x9g3j8pn725ix8ny8knhdsfgjr3hpswsh9fvfkz5vlg2xkm"; + }; + + nativeBuildInputs = [ autoreconfHook desktop-file-utils makeWrapper + pkgconfig perl wrapGAppsHook ]; buildInputs = [ gtk3 libX11 ]; - makeFlags = ["prefix=$(out)" "gamesdir=$(out)/bin"]; + makeFlags = [ "prefix=$(out)" "gamesdir=$(out)/bin"]; + preInstall = '' mkdir -p "$out"/{bin,share/doc/sgtpuzzles} cp gamedesc.txt LICENCE README "$out/share/doc/sgtpuzzles" ''; - # SGT Puzzles use generic names like net, map, etc. - # Create symlinks with sgt-puzzle- prefix for possibility of - # disambiguation + postInstall = '' - ( - cd "$out"/bin ; - for i in *; do ln -s "$i" "sgt-puzzle-$i"; done - ) + for i in $(basename -s $out/bin/*); do + + ln -s $out/bin/$i $out/bin/sgt-puzzle-$i + install -Dm644 icons/$i-48d24.png -t $out/share/icons/hicolor/48x48/apps/ + + # Generate/validate/install .desktop files. + echo "[Desktop Entry]" > $i.desktop + desktop-file-install --dir $out/share/applications \ + --set-key Type --set-value Application \ + --set-key Exec --set-value $i \ + --set-key Name --set-value $i \ + --set-key Comment --set-value "${meta.description}" \ + --set-key Categories --set-value "Game;LogicGame;X-sgt-puzzles;" \ + --set-key Icon --set-value $out/share/icons/hicolor/48x48/apps/$i-48d24 \ + $i.desktop + done + + echo "[Desktop Entry]" > sgt-puzzles.directory + desktop-file-install --dir $out/share/desktop-directories \ + --set-key Type --set-value Directory \ + --set-key Name --set-value Puzzles \ + --set-key Icon --set-value $out/share/icons/hicolor/48x48/apps/sgt-puzzles_map \ + sgt-puzzles.directory + + install -Dm644 ${sgt-puzzles-menu} -t $out/etc/xdg/menus/applications-merged/ ''; + preConfigure = '' perl mkfiles.pl export NIX_LDFLAGS="$NIX_LDFLAGS -lX11" @@ -39,7 +66,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Simon Tatham's portable puzzle collection"; license = licenses.mit; - maintainers = [ maintainers.raskin ]; + maintainers = [ maintainers.raskin maintainers.genesis ]; platforms = platforms.linux; homepage = https://www.chiark.greenend.org.uk/~sgtatham/puzzles/; }; |