From a10aa50fc6cfabcbd54a4df8ea67ff52c270f9c1 Mon Sep 17 00:00:00 2001 From: Weijia Wang <9713184+wegank@users.noreply.github.com> Date: Sun, 7 Jan 2024 21:03:27 +0100 Subject: [PATCH] tuxpaint: 0.9.28 -> 0.9.31, refactor --- pkgs/games/tuxpaint/default.nix | 103 +++++++++++++++++++++++++------- 1 file changed, 80 insertions(+), 23 deletions(-) diff --git a/pkgs/games/tuxpaint/default.nix b/pkgs/games/tuxpaint/default.nix index e03079bf60dd..f2332d6027fa 100644 --- a/pkgs/games/tuxpaint/default.nix +++ b/pkgs/games/tuxpaint/default.nix @@ -1,37 +1,92 @@ -{ lib, stdenv, fetchurl, SDL, SDL_gfx, SDL_image, SDL_ttf, SDL_mixer, libpng -, libimagequant, cairo, librsvg, gettext, libpaper, fribidi, pkg-config, gperf +{ lib +, stdenv +, fetchurl +, gettext +, gperf , imagemagick +, makeWrapper +, pkg-config +, SDL2 +, cairo +, freetype +, fribidi +, libimagequant +, libpaper +, libpng +, librsvg +, pango +, SDL2_gfx +, SDL2_image +, SDL2_mixer +, SDL2_Pango +, SDL2_ttf +, netpbm }: +let + stamps = fetchurl { + url = "mirror://sourceforge/project/tuxpaint/tuxpaint-stamps/2023-07-20/tuxpaint-stamps-2023.07.20.tar.gz"; + hash = "sha256-D7QgYXRRdZpN3Ni/4lXoXCtsJORT+T2hHaLUFpgDeEI="; + }; +in stdenv.mkDerivation rec { - version = "0.9.28"; + version = "0.9.31"; pname = "tuxpaint"; src = fetchurl { - url = "mirror://sourceforge/tuxpaint/${version}/${pname}-${version}-sdl1.tar.gz"; - sha256 = "sha256-b4Ru9GqyGf2jMmM24szGXO2vbSxCwvPmA6tgEUWhhos="; + url = "mirror://sourceforge/tuxpaint/${version}/tuxpaint-${version}.tar.gz"; + hash = "sha256-GoXAT6XJrms//Syo+oaoTAyLRitQWfofwsRFtc+oV+4="; }; - nativeBuildInputs = [ - SDL SDL_gfx SDL_image SDL_ttf SDL_mixer libpng cairo libimagequant librsvg - gettext libpaper fribidi pkg-config gperf imagemagick + patches = [ + ./tuxpaint-completion.diff ]; - hardeningDisable = [ "format" ]; - makeFlags = [ "GPERF=${gperf}/bin/gperf" - "PREFIX=$$out" - "COMPLETIONDIR=$$out/share/bash-completion/completions" - ]; - patches = [ ./tuxpaint-completion.diff ]; postPatch = '' - grep -Zlr include.*SDL . | xargs -0 sed -i -e 's,"SDL,"SDL/SDL,' + grep -Zlr include.*SDL . | xargs -0 \ + sed -i -E \ + -e 's,"(SDL2?_?[a-zA-Z]*.h),"SDL2/\1,' \ + -e 's,SDL2/SDL2_Pango.h,SDL2_Pango.h,' ''; - # stamps - stamps = fetchurl { - url = "mirror://sourceforge/project/tuxpaint/tuxpaint-stamps/2022-06-04/tuxpaint-stamps-2022.06.04.tar.gz"; - sha256 = "sha256-hCBlV2+uVUNY4A5R1xpJJhamSQsStZIigGdHfCh6C/g="; - }; + strictDeps = true; + + nativeBuildInputs = [ + gettext + gperf + imagemagick + makeWrapper + pkg-config + SDL2 + ]; + + buildInputs = [ + cairo + freetype + fribidi + libimagequant + libpaper + libpng + librsvg + pango + SDL2 + SDL2_gfx + SDL2_image + SDL2_mixer + SDL2_Pango + SDL2_ttf + ]; + + hardeningDisable = [ "format" ]; + + makeFlags = [ + "CC=${stdenv.cc.targetPrefix}cc" + "COMPLETIONDIR=$(out)/share/bash-completion/completions" + "GPERF=${lib.getExe gperf}" + "PREFIX=$(out)" + ]; + + enableParallelBuilding = true; postInstall = '' # Install desktop file @@ -40,13 +95,15 @@ stdenv.mkDerivation rec { sed -e "s+Exec=tuxpaint+Exec=$out/bin/tuxpaint+" < src/tuxpaint.desktop > $out/share/applications/tuxpaint.desktop # Install stamps - tar xzf $stamps + tar xzf ${stamps} cd tuxpaint-stamps-* make install-all PREFIX=$out rm -rf $out/share/tuxpaint/stamps/military - ''; - enableParallelBuilding = true; + # Requirements for tuxpaint-import + wrapProgram $out/bin/tuxpaint-import \ + --prefix PATH : ${lib.makeBinPath [ netpbm ]} + ''; meta = { description = "Open Source Drawing Software for Children";