nixpkgs/pkgs/applications/misc/variety/default.nix
linsui d29e6a5255 variety: fix script shell
The scripts are copied to the user directory and they are not updated with the package. When the bash path is changed, the shebang will stop working. This patch change the code so that the bash is called directly instead of relying on the shebang.
2023-06-06 18:48:59 +00:00

102 lines
2.5 KiB
Nix

{ lib
, stdenv
, fetchFromGitHub
, gexiv2
, gobject-introspection
, gtk3
, hicolor-icon-theme
, intltool
, libnotify
, librsvg
, python3
, runtimeShell
, wrapGAppsHook
, fehSupport ? false
, feh
, imagemagickSupport ? true
, imagemagick
, appindicatorSupport ? true
, libayatana-appindicator
}:
python3.pkgs.buildPythonApplication rec {
pname = "variety";
version = "0.8.10";
src = fetchFromGitHub {
owner = "varietywalls";
repo = "variety";
rev = "refs/tags/${version}";
hash = "sha256-Uln0uoaEZgV9FN3HEBTeFOD7d6RkAQLgQZw7bcgu26A=";
};
nativeBuildInputs = [
intltool
wrapGAppsHook
gobject-introspection
];
buildInputs = [
gexiv2
gobject-introspection
gtk3
hicolor-icon-theme
libnotify
librsvg
]
++ lib.optional appindicatorSupport libayatana-appindicator;
propagatedBuildInputs = with python3.pkgs; [
beautifulsoup4
configobj
dbus-python
distutils_extra
httplib2
lxml
pillow
pycairo
pygobject3
requests
setuptools
]
++ lib.optional fehSupport feh
++ lib.optional imagemagickSupport imagemagick;
doCheck = false;
# Prevent double wrapping, let the Python wrapper use the args in preFixup.
dontWrapGApps = true;
preFixup = ''
makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
'';
prePatch = ''
substituteInPlace variety_lib/varietyconfig.py \
--replace "__variety_data_directory__ = \"../data\"" \
"__variety_data_directory__ = \"$out/share/variety\""
substituteInPlace variety/VarietyWindow.py \
--replace '[script,' '["${runtimeShell}", script,' \
--replace 'check_output(script)' 'check_output(["${runtimeShell}", script])'
'';
meta = with lib; {
homepage = "https://github.com/varietywalls/variety";
description = "A wallpaper manager for Linux systems";
longDescription = ''
Variety is a wallpaper manager for Linux systems. It supports numerous
desktops and wallpaper sources, including local files and online services:
Flickr, Wallhaven, Unsplash, and more.
Where supported, Variety sits as a tray icon to allow easy pausing and
resuming. Otherwise, its desktop entry menu provides a similar set of
options.
Variety also includes a range of image effects, such as oil painting and
blur, as well as options to layer quotes and a clock onto the background.
'';
license = licenses.gpl3Plus;
maintainers = with maintainers; [ p3psi AndersonTorres zfnmxt ];
};
}