diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/graphics/drawpile/default.nix')
-rw-r--r-- | nixpkgs/pkgs/applications/graphics/drawpile/default.nix | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/graphics/drawpile/default.nix b/nixpkgs/pkgs/applications/graphics/drawpile/default.nix new file mode 100644 index 000000000000..ea07e2314217 --- /dev/null +++ b/nixpkgs/pkgs/applications/graphics/drawpile/default.nix @@ -0,0 +1,109 @@ +{ stdenv +, lib +, mkDerivation +, fetchFromGitHub +, extra-cmake-modules + +# common deps +, karchive + +# client deps +, qtbase +, qtkeychain +, qtmultimedia +, qtsvg +, qttools +, libsecret + +# optional client deps +, giflib +, kdnssd +, libvpx +, miniupnpc +, qtx11extras # kis + +# optional server deps +, libmicrohttpd +, libsodium +, withSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd +, systemd ? null + +# options +, buildClient ? true +, buildServer ? true +, buildServerGui ? true # if false builds a headless server +, buildExtraTools ? false +, enableKisTablet ? false # enable improved graphics tablet support +}: + +with lib; + +let + clientDeps = [ + qtbase + qtkeychain + qtmultimedia + qtsvg + qttools + libsecret + # optional: + giflib # gif animation export support + kdnssd # local server discovery with Zeroconf + libvpx # WebM video export + miniupnpc # automatic port forwarding + ]; + + serverDeps = [ + # optional: + libmicrohttpd # HTTP admin api + libsodium # ext-auth support + ] ++ optional withSystemd systemd; + + kisDeps = [ + qtx11extras + ]; + + boolToFlag = bool: + if bool then "ON" else "OFF"; + +in mkDerivation rec { + pname = "drawpile"; + version = "2.1.20"; + + src = fetchFromGitHub { + owner = "drawpile"; + repo = "drawpile"; + rev = version; + sha256 = "sha256-HjGsaa2BYRNxaQP9e8Z7BkVlIKByC/ta92boGbYHRWQ="; + }; + + nativeBuildInputs = [ extra-cmake-modules ]; + + buildInputs = [ + karchive + ] + ++ optionals buildClient clientDeps + ++ optionals buildServer serverDeps + ++ optionals enableKisTablet kisDeps; + + cmakeFlags = [ + "-Wno-dev" + "-DINITSYS=systemd" + "-DCLIENT=${boolToFlag buildClient}" + "-DSERVER=${boolToFlag buildServer}" + "-DSERVERGUI=${boolToFlag buildServerGui}" + "-DTOOLS=${boolToFlag buildExtraTools}" + "-DKIS_TABLET=${boolToFlag enableKisTablet}" + ]; + + meta = { + description = "A collaborative drawing program that allows multiple users to sketch on the same canvas simultaneously"; + homepage = "https://drawpile.net/"; + downloadPage = "https://drawpile.net/download/"; + license = licenses.gpl3; + maintainers = with maintainers; [ fgaz ]; + platforms = platforms.unix; + broken = stdenv.isDarwin; + }; +} + |