nixpkgs-suyu/pkgs/applications/graphics/shutter/default.nix
Emery Hemingway b5526585c2 treewide: inject xdg-open into wrappers as $PATH suffix
The xdg-open utility is only ever a runtime dependency and its
dependents only expect that it accept a URI as a command line
argument and do something with it that the user would expect.
For such as a trivial relationship it should be possible for
users to override xdg-open with something else in their PATH.
2022-08-19 13:11:27 -05:00

112 lines
2.1 KiB
Nix

{ lib
, stdenv
, fetchFromGitHub
, perlPackages
, wrapGAppsHook
, imagemagick
, gdk-pixbuf
, librsvg
, hicolor-icon-theme
, procps
, libwnck
, libappindicator-gtk3
, xdg-utils
}:
let
perlModules = with perlPackages; [
# Not sure if these are needed
# Gnome2 Gnome2Canvas Gnome2VFS Gtk2AppIndicator Gtk2Unique
ImageMagick
Cairo
FileBaseDir
FileWhich
FileCopyRecursive
XMLSimple
XMLTwig
XMLParser
SortNaturally
LocaleGettext
ProcProcessTable
X11Protocol
ProcSimple
ImageExifTool
JSON
JSONMaybeXS
NetOAuth
PathClass
LWP
LWPProtocolHttps
NetDBus
TryTiny
WWWMechanize
HTTPMessage
HTTPDate
HTMLForm
HTMLParser
HTMLTagset
HTTPCookies
EncodeLocale
URI
CarpAlways
GlibObjectIntrospection
NumberBytesHuman
CairoGObject
Readonly
Gtk3ImageView
Gtk3
Glib
Pango
GooCanvas2
GooCanvas2CairoTypes
commonsense
TypesSerialiser
];
in
stdenv.mkDerivation rec {
pname = "shutter";
version = "0.99.2";
src = fetchFromGitHub {
owner = "shutter-project";
repo = "shutter";
rev = "v${version}";
sha256 = "sha256-o95skSr6rszh0wsHQTpu1GjqCDmde7aygIP+i4XQW9A=";
};
nativeBuildInputs = [ wrapGAppsHook ];
buildInputs = [
perlPackages.perl
procps
gdk-pixbuf
librsvg
libwnck
libappindicator-gtk3
hicolor-icon-theme
] ++ perlModules;
makeFlags = [
"prefix=${placeholder "out"}"
];
postPatch = ''
patchShebangs po2mo.sh
'';
preFixup = ''
# make xdg-open overrideable at runtime
gappsWrapperArgs+=(
--set PERL5LIB ${perlPackages.makePerlPath perlModules} \
--prefix PATH : ${lib.makeBinPath [ imagemagick ] }
--suffix PATH : ${lib.makeBinPath [ xdg-utils ] }
)
'';
meta = with lib; {
description = "Screenshot and annotation tool";
homepage = "https://shutter-project.org/";
license = licenses.gpl3Plus;
platforms = platforms.all;
maintainers = [ maintainers.bjornfor ];
};
}