nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at devShellTools-shell 130 lines 3.0 kB view raw
1{ 2 pname, 3 version, 4 meta, 5 lib, 6 stdenv, 7 fetchurl, 8 wrapGAppsHook3, 9 makeDesktopItem, 10 atk, 11 cairo, 12 dbus-glib, 13 gdk-pixbuf, 14 glib, 15 gtk3, 16 libGL, 17 libva, 18 xorg, 19 libgbm, 20 pango, 21 pciutils, 22 alsaSupport ? true, 23 alsa-lib, 24 jackSupport ? true, 25 libjack2, 26 pulseSupport ? true, 27 libpulseaudio, 28 sndioSupport ? true, 29 sndio, 30}: 31 32stdenv.mkDerivation rec { 33 inherit pname version meta; 34 35 src = fetchurl { 36 url = "https://download.zotero.org/client/release/${version}/Zotero-${version}_linux-x86_64.tar.bz2"; 37 hash = "sha256-L2Mvi11X4YBU4ezHDJosl7qHClmzUwmghvXG8TChA8c="; 38 }; 39 40 dontPatchELF = true; 41 nativeBuildInputs = [ wrapGAppsHook3 ]; 42 43 libPath = 44 lib.makeLibraryPath ( 45 [ 46 atk 47 cairo 48 dbus-glib 49 gdk-pixbuf 50 glib 51 gtk3 52 libGL 53 libva 54 xorg.libX11 55 xorg.libXcomposite 56 xorg.libXcursor 57 xorg.libXdamage 58 xorg.libXext 59 xorg.libXfixes 60 xorg.libXi 61 xorg.libXrandr 62 xorg.libXtst 63 xorg.libxcb 64 libgbm 65 pango 66 pciutils 67 ] 68 ++ lib.optional alsaSupport alsa-lib 69 ++ lib.optional jackSupport libjack2 70 ++ lib.optional pulseSupport libpulseaudio 71 ++ lib.optional sndioSupport sndio 72 ) 73 + ":" 74 + lib.makeSearchPathOutput "lib" "lib" [ stdenv.cc.cc ]; 75 76 desktopItem = makeDesktopItem { 77 name = "zotero"; 78 exec = "zotero -url %U"; 79 icon = "zotero"; 80 comment = meta.description; 81 desktopName = "Zotero"; 82 genericName = "Reference Management"; 83 categories = [ 84 "Office" 85 "Database" 86 ]; 87 startupNotify = true; 88 mimeTypes = [ 89 "x-scheme-handler/zotero" 90 "text/plain" 91 ]; 92 }; 93 94 installPhase = '' 95 runHook preInstall 96 97 # Copy package contents to the output directory 98 mkdir -p "$prefix/usr/lib/zotero-bin-${version}" 99 cp -r * "$prefix/usr/lib/zotero-bin-${version}" 100 mkdir -p "$out/bin" 101 ln -s "$prefix/usr/lib/zotero-bin-${version}/zotero" "$out/bin/" 102 103 # Install desktop file and icons 104 mkdir -p $out/share/applications 105 cp ${desktopItem}/share/applications/* $out/share/applications/ 106 for size in 32 64 128; do 107 install -Dm444 icons/icon''${size}.png \ 108 $out/share/icons/hicolor/''${size}x''${size}/apps/zotero.png 109 done 110 install -Dm444 icons/symbolic.svg \ 111 $out/share/icons/hicolor/symbolic/apps/zotero-symbolic.svg 112 113 runHook postInstall 114 ''; 115 116 postFixup = '' 117 for executable in \ 118 zotero-bin plugin-container updater vaapitest \ 119 minidump-analyzer glxtest 120 do 121 if [ -e "$out/usr/lib/zotero-bin-${version}/$executable" ]; then 122 patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ 123 "$out/usr/lib/zotero-bin-${version}/$executable" 124 fi 125 done 126 find . -executable -type f -exec \ 127 patchelf --set-rpath "$libPath" \ 128 "$out/usr/lib/zotero-bin-${version}/{}" \; 129 ''; 130}