Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / applications / misc / albert / default.nix
blobd76231ee8c166bc7d0d3894a32138663014a0945
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , cmake
5 , libqalculate
6 , muparser
7 , libarchive
8 , python3Packages
9 , qtbase
10 , qtscxml
11 , qtsvg
12 , qtdeclarative
13 , qtwayland
14 , qt5compat
15 , wrapQtAppsHook
16 , nix-update-script
17 , pkg-config
20 stdenv.mkDerivation (finalAttrs: {
21   pname = "albert";
22   version = "0.22.14";
24   src = fetchFromGitHub {
25     owner = "albertlauncher";
26     repo = "albert";
27     rev = "v${finalAttrs.version}";
28     sha256 = "sha256-cAxdCjaCqEkwjL+OXW7ONkS7OpKfey3bUYmGzJyV+g8=";
29     fetchSubmodules = true;
30   };
32   nativeBuildInputs = [
33     cmake
34     pkg-config
35     wrapQtAppsHook
36   ];
38   buildInputs = [
39     libqalculate
40     libarchive
41     muparser
42     qtbase
43     qtscxml
44     qtsvg
45     qtdeclarative
46     qtwayland
47     qt5compat
48   ] ++ (with python3Packages; [ python pybind11 ]);
50   postPatch = ''
51     find -type f -name CMakeLists.txt -exec sed -i {} -e '/INSTALL_RPATH/d' \;
53     sed -i src/qtpluginprovider.cpp \
54       -e "/QStringList dirs = {/a    QFileInfo(\"$out/lib\").canonicalFilePath(),"
55   '';
57   postFixup = ''
58     for i in $out/{bin/.albert-wrapped,lib/albert/plugins/*.so}; do
59       patchelf $i --add-rpath $out/lib/albert
60     done
61   '';
63   passthru = {
64     updateScript = nix-update-script { };
65   };
67   meta = with lib; {
68     description = "A fast and flexible keyboard launcher";
69     longDescription = ''
70       Albert is a desktop agnostic launcher. Its goals are usability and beauty,
71       performance and extensibility. It is written in C++ and based on the Qt
72       framework.
73     '';
74     homepage = "https://albertlauncher.github.io";
75     changelog = "https://github.com/albertlauncher/albert/blob/${finalAttrs.src.rev}/CHANGELOG.md";
76     license = licenses.gpl3Plus;
77     maintainers = with maintainers; [ ericsagnes synthetica ];
78     mainProgram = "albert";
79     platforms = platforms.linux;
80   };