nixpkgs/pkgs/applications/misc/ulauncher/default.nix
Guillaume Girol 33afbf39f6 treewide: switch to nativeCheckInputs
checkInputs used to be added to nativeBuildInputs. Now we have
nativeCheckInputs to do that instead. Doing this treewide change allows
to keep hashes identical to before the introduction of
nativeCheckInputs.
2023-01-21 12:00:00 +00:00

128 lines
2.6 KiB
Nix

{ lib
, fetchurl
, nix-update-script
, python3Packages
, gdk-pixbuf
, glib
, gnome
, gobject-introspection
, gtk3
, wrapGAppsHook
, webkitgtk
, libnotify
, keybinder3
, libappindicator
, intltool
, wmctrl
, xvfb-run
, librsvg
, libX11
}:
python3Packages.buildPythonApplication rec {
pname = "ulauncher";
version = "5.15.0";
src = fetchurl {
url = "https://github.com/Ulauncher/Ulauncher/releases/download/${version}/ulauncher_${version}.tar.gz";
sha256 = "sha256-1Qo6ffMtVRtZDPCHvHEl7T0dPdDUxP4TP2hkSVSdQpo";
};
nativeBuildInputs = with python3Packages; [
distutils_extra
gobject-introspection
intltool
wrapGAppsHook
gdk-pixbuf
];
buildInputs = [
glib
gnome.adwaita-icon-theme
gtk3
keybinder3
libappindicator
libnotify
librsvg
webkitgtk
wmctrl
];
propagatedBuildInputs = with python3Packages; [
mock
mypy
mypy-extensions
dbus-python
pygobject3
pyinotify
levenshtein
pyxdg
pycairo
requests
websocket-client
];
nativeCheckInputs = with python3Packages; [
mock
pytest
pytest-mock
xvfb-run
];
patches = [
./fix-path.patch
./fix-extensions.patch
];
postPatch = ''
substituteInPlace setup.py --subst-var out
patchShebangs bin/ulauncher-toggle
substituteInPlace bin/ulauncher-toggle \
--replace wmctrl ${wmctrl}/bin/wmctrl
'';
# https://github.com/Ulauncher/Ulauncher/issues/390
doCheck = false;
preCheck = ''
export PYTHONPATH=$PYTHONPATH:$out/${python3Packages.python.sitePackages}
'';
# Simple translation of
# - https://github.com/Ulauncher/Ulauncher/blob/f5a601bdca75198a6a31b9d84433496b63530e74/test
checkPhase = ''
runHook preCheck
# skip tests in invocation that handle paths that
# aren't nix friendly (i think)
xvfb-run -s '-screen 0 1024x768x16' \
pytest -k 'not TestPath and not test_handle_key_press_event' tests
runHook postCheck
'';
# do not double wrap
dontWrapGApps = true;
preFixup = ''
makeWrapperArgs+=(
"''${gappsWrapperArgs[@]}"
--prefix PATH : "${lib.makeBinPath [ wmctrl ]}"
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libX11 ]}"
--prefix WEBKIT_DISABLE_COMPOSITING_MODE : "1"
)
'';
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "A fast application launcher for Linux, written in Python, using GTK";
homepage = "https://ulauncher.io/";
license = licenses.gpl3;
platforms = platforms.linux;
maintainers = with maintainers; [ aaronjanse ];
};
}