diff --git a/pkgs/applications/office/zotero/default.nix b/pkgs/applications/office/zotero/default.nix index 61e84e2be43..9ca46e6e7cd 100644 --- a/pkgs/applications/office/zotero/default.nix +++ b/pkgs/applications/office/zotero/default.nix @@ -1,67 +1,140 @@ -{ stdenv, fetchurl, buildFHSUserEnv, makeDesktopItem, runCommand, bash, wrapGAppsHook, gsettings-desktop-schemas, gtk3, gnome3 }: - -let -version = "5.0.60"; -meta = with stdenv.lib; { - homepage = https://www.zotero.org; - description = "Collect, organize, cite, and share your research sources"; - license = licenses.agpl3; - platforms = platforms.linux; -}; - -zoteroSrc = stdenv.mkDerivation rec { - inherit version; - name = "zotero-${version}-pkg"; +{ stdenv, fetchurl, wrapGAppsHook, makeDesktopItem +, atk +, cairo +, curl +, cups +, dbus-glib +, dbus +, fontconfig +, freetype +, gdk_pixbuf +, glib +, glibc +, gtk3 +, libX11 +, libXScrnSaver +, libxcb +, libXcomposite +, libXcursor +, libXdamage +, libXext +, libXfixes +, libXi +, libXinerama +, libXrender +, libXt +, libnotify +, gnome3 +, libGLU_combined +, nspr +, nss +, pango +, coreutils +, gnused +, gsettings-desktop-schemas +}: +stdenv.mkDerivation rec { + name = "zotero-${version}"; + version = "5.0.60"; + src = fetchurl { url = "https://download.zotero.org/client/release/${version}/Zotero-${version}_linux-x86_64.tar.bz2"; sha256 = "0753xk95shhxma4dvdxrj2q6y81z8lianxg7jnab9m17fb67jy2d"; }; - + buildInputs= [ wrapGAppsHook gsettings-desktop-schemas gtk3 gnome3.adwaita-icon-theme gnome3.dconf ]; - phases = [ "unpackPhase" "installPhase" "fixupPhase"]; - installPhase = '' - mkdir -p $out/data - cp -r * $out/data - mkdir $out/bin - ln -s $out/data/zotero $out/bin/zotero + phases = [ "unpackPhase" "patchPhase" "installPhase" "fixupPhase" ]; + + dontStrip = true; + dontPatchELF = true; + + libPath = stdenv.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_combined + nspr + nss + pango + ] + ":" + stdenv.lib.makeSearchPathOutput "lib" "lib64" [ + stdenv.cc.cc + ]; + + patchPhase = '' + sed -i '/pref("app.update.enabled", true);/c\pref("app.update.enabled", false);' defaults/preferences/prefs.js ''; -}; -fhsEnv = buildFHSUserEnv { - name = "zotero-fhs-env"; - targetPkgs = pkgs: with pkgs; with xorg; [ - gtk3 dbus-glib glib - libXt nss - libX11 - ]; -}; + desktopItem = makeDesktopItem rec { + name = "zotero-${version}"; + exec = "zotero -url %U"; + icon = "zotero"; + type = "Application"; + comment = meta.description; + desktopName = "Zotero"; + genericName = "Reference Management"; + categories = "Office;Database;"; + startupNotify = "true"; + mimeType = "text/plain"; + }; -desktopItem = makeDesktopItem rec { - name = "zotero-${version}"; - exec = "zotero -url %U"; - icon = "zotero"; - type = "Application"; - comment = meta.description; - desktopName = "Zotero"; - genericName = "Reference Management"; - categories = "Office;Database;"; - startupNotify = "true"; -}; + installPhase = + '' + 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/" -in runCommand "zotero-${version}" { inherit meta; } '' - mkdir -p $out/bin $out/share/applications - cat >$out/bin/zotero <