diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/office/zotero/default.nix')
-rw-r--r-- | nixpkgs/pkgs/applications/office/zotero/default.nix | 158 |
1 files changed, 158 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/office/zotero/default.nix b/nixpkgs/pkgs/applications/office/zotero/default.nix new file mode 100644 index 000000000000..e343790da2c7 --- /dev/null +++ b/nixpkgs/pkgs/applications/office/zotero/default.nix @@ -0,0 +1,158 @@ +{ lib +, stdenv +, fetchurl +, wrapGAppsHook +, makeDesktopItem +, atk +, cairo +, coreutils +, curl +, cups +, dbus-glib +, dbus +, dconf +, fontconfig +, freetype +, gdk-pixbuf +, glib +, glibc +, gtk3 +, libX11 +, libXScrnSaver +, libxcb +, libXcomposite +, libXcursor +, libXdamage +, libXext +, libXfixes +, libXi +, libXinerama +, libXrender +, libXt +, libnotify +, gnome +, libGLU +, libGL +, nspr +, nss +, pango +, gsettings-desktop-schemas +}: + +stdenv.mkDerivation rec { + pname = "zotero"; + version = "6.0.35"; + + src = fetchurl { + url = + "https://download.zotero.org/client/release/${version}/Zotero-${version}_linux-x86_64.tar.bz2"; + hash = "sha256-HAVLmamEPuFf0548/iEXes+f4XnQ7kU1u9hyOYhVyZ0="; + }; + + nativeBuildInputs = [ wrapGAppsHook ]; + buildInputs = + [ gsettings-desktop-schemas glib gtk3 gnome.adwaita-icon-theme dconf ]; + + dontConfigure = true; + dontBuild = true; + dontStrip = true; + dontPatchELF = true; + + libPath = lib.makeLibraryPath [ + stdenv.cc.cc + atk + cairo + curl + cups + dbus-glib + dbus + fontconfig + freetype + gdk-pixbuf + glib + glibc + gtk3 + libX11 + libXScrnSaver + libXcomposite + libXcursor + libxcb + libXdamage + libXext + libXfixes + libXi + libXinerama + libXrender + libXt + libnotify + libGLU + libGL + nspr + nss + pango + ] + ":" + lib.makeSearchPathOutput "lib" "lib64" [ stdenv.cc.cc ]; + + postPatch = '' + sed -i '/pref("app.update.enabled", true);/c\pref("app.update.enabled", false);' defaults/preferences/prefs.js + ''; + + desktopItem = makeDesktopItem { + name = "zotero"; + exec = "zotero -url %U"; + icon = "zotero"; + comment = meta.description; + desktopName = "Zotero"; + genericName = "Reference Management"; + categories = [ "Office" "Database" ]; + startupNotify = true; + mimeTypes = [ "x-scheme-handler/zotero" "text/plain" ]; + }; + + installPhase = '' + runHook preInstall + + mkdir -p "$prefix/usr/lib/zotero-bin-${version}" + cp -r * "$prefix/usr/lib/zotero-bin-${version}" + mkdir -p "$out/bin" + ln -s "$prefix/usr/lib/zotero-bin-${version}/zotero" "$out/bin/" + + # install desktop file and icons. + mkdir -p $out/share/applications + cp ${desktopItem}/share/applications/* $out/share/applications/ + for size in 16 32 48 256; do + install -Dm444 chrome/icons/default/default$size.png \ + $out/share/icons/hicolor/''${size}x''${size}/apps/zotero.png + done + + for executable in \ + zotero-bin plugin-container \ + updater minidump-analyzer + do + if [ -e "$out/usr/lib/zotero-bin-${version}/$executable" ]; then + patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + "$out/usr/lib/zotero-bin-${version}/$executable" + fi + done + find . -executable -type f -exec \ + patchelf --set-rpath "$libPath" \ + "$out/usr/lib/zotero-bin-${version}/{}" \; + + runHook postInstall + ''; + + preFixup = '' + gappsWrapperArgs+=( + --prefix PATH : ${lib.makeBinPath [ coreutils ]} + ) + ''; + + meta = with lib; { + homepage = "https://www.zotero.org"; + description = "Collect, organize, cite, and share your research sources"; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; + license = licenses.agpl3Only; + platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ i077 ]; + mainProgram = "zotero"; + }; +} |