{ lib, stdenv, fetchFromGitHub, lazarus-qt, fpc, autoPatchelfHook, libsForQt5, libqt5pas, xorg, python3, }: let bgrabitmap = fetchFromGitHub { owner = "bgrabitmap"; repo = "bgrabitmap"; rev = "2814b069d55f726b9f3b4774d85d00dd72be9c05"; hash = "sha256-YibwdhlgjgI30gqYsKchgDPlOSpBiDBDJNlUDFMygGs="; }; bgracontrols = fetchFromGitHub { owner = "bgrabitmap"; repo = "bgracontrols"; rev = "v8.0"; hash = "sha256-5L05eGVN+xncd0/0XLFN6EL2ux4aAOsiU0BMoy0dKgg="; }; in stdenv.mkDerivation rec { pname = "lazpaint"; version = "7.2.2-unstable-2024-01-23"; src = fetchFromGitHub { owner = "bgrabitmap"; repo = "lazpaint"; rev = "45a7a471d531d6adb5ee557ff917a99af76e92f1"; hash = "sha256-KgCxSK72Ow29T58mlcYCJiS4D0Ov2/p37c1FSNgKZew="; }; nativeBuildInputs = [ lazarus-qt fpc libsForQt5.wrapQtAppsHook autoPatchelfHook ]; buildInputs = [ libsForQt5.qtbase libqt5pas ]; runtimeDependencies = [ xorg.libX11 ]; preConfigure = '' patchShebangs --build configure ''; buildPhase = '' runHook preBuild export HOME=$(mktemp -d) cp -r --no-preserve=mode ${bgrabitmap} bgrabitmap cp -r --no-preserve=mode ${bgracontrols} bgracontrols lazbuild --lazarusdir=${lazarus-qt}/share/lazarus \ --build-mode=ReleaseQt5 \ bgrabitmap/bgrabitmap/bgrabitmappack.lpk \ bgracontrols/bgracontrols.lpk \ lazpaintcontrols/lazpaintcontrols.lpk \ lazpaint/lazpaint.lpi runHook postBuild ''; # Python is needed for scripts preFixup = '' qtWrapperArgs+=(--prefix PATH : ${lib.makeBinPath [ python3 ]}) ''; meta = { description = "Image editor like PaintBrush or Paint.Net"; homepage = "https://lazpaint.github.io"; downloadPage = "https://github.com/bgrabitmap/lazpaint/"; license = lib.licenses.gpl3Only; platforms = lib.platforms.linux; maintainers = with lib.maintainers; [ aleksana ]; mainProgram = "lazpaint"; }; }