about summary refs log tree commit diff
path: root/pkgs/applications/office/zotero/default.nix
diff options
context:
space:
mode:
authorjpathy <15735913+jpathy@users.noreply.github.com>2019-03-04 15:25:17 +0530
committerGitHub <noreply@github.com>2019-03-04 15:25:17 +0530
commit142260c991ae62904fb6b675a9dc5198fb0a85c9 (patch)
treeb2eca796ac49bca8fa9137bfbd6d9636dcb37e4f /pkgs/applications/office/zotero/default.nix
parentdef5aeb17fad58ce39a108ebb2568825cae32ffb (diff)
downloadnixlib-142260c991ae62904fb6b675a9dc5198fb0a85c9.tar
nixlib-142260c991ae62904fb6b675a9dc5198fb0a85c9.tar.gz
nixlib-142260c991ae62904fb6b675a9dc5198fb0a85c9.tar.bz2
nixlib-142260c991ae62904fb6b675a9dc5198fb0a85c9.tar.lz
nixlib-142260c991ae62904fb6b675a9dc5198fb0a85c9.tar.xz
nixlib-142260c991ae62904fb6b675a9dc5198fb0a85c9.tar.zst
nixlib-142260c991ae62904fb6b675a9dc5198fb0a85c9.zip
Zotero: Fix to use patchelf instead of FHS Env.
Removed buildFHSUserEnv to use `patchelf` on prebuilt binaries and libs. Should fix issue #48814.
Diffstat (limited to 'pkgs/applications/office/zotero/default.nix')
-rw-r--r--pkgs/applications/office/zotero/default.nix168
1 files changed, 113 insertions, 55 deletions
diff --git a/pkgs/applications/office/zotero/default.nix b/pkgs/applications/office/zotero/default.nix
index 61e84e2be430..75a70fd9ff50 100644
--- a/pkgs/applications/office/zotero/default.nix
+++ b/pkgs/applications/office/zotero/default.nix
@@ -1,67 +1,125 @@
-{ 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
+, 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" ];
 
-fhsEnv = buildFHSUserEnv {
-  name = "zotero-fhs-env";
-  targetPkgs = pkgs: with pkgs; with xorg; [
-    gtk3 dbus-glib glib
-    libXt nss
-    libX11
-  ];
-};
+  dontStrip = true;
+  dontPatchELF = true;
 
-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";
-};
+  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
+    ];
 
-in runCommand "zotero-${version}" { inherit meta; } ''
-  mkdir -p $out/bin $out/share/applications
-  cat >$out/bin/zotero <<EOF
-#!${bash}/bin/bash
-${fhsEnv}/bin/zotero-fhs-env ${zoteroSrc}/bin/zotero
-EOF
-  chmod +x $out/bin/zotero
+  patchPhase = ''
+    sed -i '/pref("app.update.enabled", true);/c\pref("app.update.enabled", false);' defaults/preferences/prefs.js
+  '';
 
-  cp ${desktopItem}/share/applications/* $out/share/applications/
+  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/"
 
-  for size in 16 32 48 256; do
-    install -Dm444 ${zoteroSrc}/data/chrome/icons/default/default$size.png \
-      $out/share/icons/hicolor/''${size}x''${size}/apps/zotero.png
-  done
-''
+     install -Dm444 zotero.desktop $out/share/applications/zotero.desktop
+     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}/{}" \;
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://www.zotero.org;
+    description = "Collect, organize, cite, and share your research sources";
+    license = licenses.agpl3;
+    platforms = platforms.linux;
+  };
+}