diff options
author | jpathy <15735913+jpathy@users.noreply.github.com> | 2019-03-04 15:25:17 +0530 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-03-04 15:25:17 +0530 |
commit | 142260c991ae62904fb6b675a9dc5198fb0a85c9 (patch) | |
tree | b2eca796ac49bca8fa9137bfbd6d9636dcb37e4f /pkgs/applications/office/zotero/default.nix | |
parent | def5aeb17fad58ce39a108ebb2568825cae32ffb (diff) | |
download | nixlib-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.nix | 168 |
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; + }; +} |