Merge pull request #329823 from ExpidusOS/fix/pkgsllvm/elfutils
[NixPkgs.git] / pkgs / by-name / zo / zotero-beta / package.nix
blob2aca01589119edd0b8f194807890835577020029
1 { lib
2 , stdenv
3 , fetchurl
4 , wrapGAppsHook3
5 , makeDesktopItem
6 , alsa-lib
7 , atk
8 , cairo
9 , dbus-glib
10 , gdk-pixbuf
11 , glib
12 , gtk3
13 , libGL
14 , xorg
15 , mesa
16 , pango
17 , pciutils
20 stdenv.mkDerivation rec {
21   pname = "zotero";
22   version = "7.0.0-beta.83+066eda731";
24   src =
25     let
26       escapedVersion = lib.replaceStrings ["+"] ["%2B"] version;
27     in
28     fetchurl {
29       url = "https://download.zotero.org/client/beta/${escapedVersion}/Zotero-${escapedVersion}_linux-x86_64.tar.bz2";
30       hash = "sha256-wqew12/Icv4XS+IJRVcf1Rh/ipqBhe8QGkP8ErfS4J0=";
31     };
33   dontPatchELF = true;
34   nativeBuildInputs = [ wrapGAppsHook3 ];
36   libPath = lib.makeLibraryPath [
37     alsa-lib
38     atk
39     cairo
40     dbus-glib
41     gdk-pixbuf
42     glib
43     gtk3
44     libGL
45     xorg.libX11
46     xorg.libXcomposite
47     xorg.libXcursor
48     xorg.libXdamage
49     xorg.libXext
50     xorg.libXfixes
51     xorg.libXi
52     xorg.libXrandr
53     xorg.libXtst
54     xorg.libxcb
55     mesa
56     pango
57     pciutils
58   ] + ":" + lib.makeSearchPathOutput "lib" "lib64" [ stdenv.cc.cc ];
60   desktopItem = makeDesktopItem {
61     name = "zotero";
62     exec = "zotero -url %U";
63     icon = "zotero";
64     comment = meta.description;
65     desktopName = "Zotero";
66     genericName = "Reference Management";
67     categories = [ "Office" "Database" ];
68     startupNotify = true;
69     mimeTypes = [ "x-scheme-handler/zotero" "text/plain" ];
70   };
72   installPhase = ''
73     runHook preInstall
75     # Copy package contents to the output directory
76     mkdir -p "$prefix/usr/lib/zotero-bin-${version}"
77     cp -r * "$prefix/usr/lib/zotero-bin-${version}"
78     mkdir -p "$out/bin"
79     ln -s "$prefix/usr/lib/zotero-bin-${version}/zotero" "$out/bin/"
81     # Install desktop file and icons
82     mkdir -p $out/share/applications
83     cp ${desktopItem}/share/applications/* $out/share/applications/
84     for size in 32 64 128; do
85       install -Dm444 icons/icon''${size}.png \
86         $out/share/icons/hicolor/''${size}x''${size}/apps/zotero.png
87     done
88     install -Dm444 icons/symbolic.svg \
89       $out/share/icons/hicolor/symbolic/apps/zotero-symbolic.svg
91     runHook postInstall
92   '';
94   postFixup = ''
95     for executable in \
96       zotero-bin plugin-container updater vaapitest \
97       minidump-analyzer glxtest
98     do
99       if [ -e "$out/usr/lib/zotero-bin-${version}/$executable" ]; then
100         patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
101           "$out/usr/lib/zotero-bin-${version}/$executable"
102       fi
103     done
104     find . -executable -type f -exec \
105       patchelf --set-rpath "$libPath" \
106         "$out/usr/lib/zotero-bin-${version}/{}" \;
107   '';
109   meta = with lib; {
110     homepage = "https://www.zotero.org";
111     description = "Collect, organize, cite, and share your research sources";
112     mainProgram = "zotero";
113     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
114     license = licenses.agpl3Only;
115     platforms = [ "x86_64-linux" ];
116     maintainers = with maintainers; [ atila justanotherariel ];
117   };