about summary refs log tree commit diff
path: root/pkgs/applications/office/zotero
diff options
context:
space:
mode:
authortimor <timor.dd@googlemail.com>2017-11-15 13:59:33 +0100
committertimor <timor.dd@googlemail.com>2017-11-15 14:53:05 +0100
commite1a797e37f61e1df0f316e33cd4501fe0e1df2be (patch)
treee7fb62db5de8c97cdb78f37202bae3e5e8166789 /pkgs/applications/office/zotero
parent73af2b27c972c77880ceda770fd6573d75ecfb33 (diff)
downloadnixlib-e1a797e37f61e1df0f316e33cd4501fe0e1df2be.tar
nixlib-e1a797e37f61e1df0f316e33cd4501fe0e1df2be.tar.gz
nixlib-e1a797e37f61e1df0f316e33cd4501fe0e1df2be.tar.bz2
nixlib-e1a797e37f61e1df0f316e33cd4501fe0e1df2be.tar.lz
nixlib-e1a797e37f61e1df0f316e33cd4501fe0e1df2be.tar.xz
nixlib-e1a797e37f61e1df0f316e33cd4501fe0e1df2be.tar.zst
nixlib-e1a797e37f61e1df0f316e33cd4501fe0e1df2be.zip
zotero: 4.0.29 -> 5.0.25
This uses buildFHSUserenv.  The source installation probably does not work until
node2nix supports nodejs-8.x.
Diffstat (limited to 'pkgs/applications/office/zotero')
-rw-r--r--pkgs/applications/office/zotero/default.nix110
1 files changed, 38 insertions, 72 deletions
diff --git a/pkgs/applications/office/zotero/default.nix b/pkgs/applications/office/zotero/default.nix
index a4b15b6626e7..4d66d3dd349a 100644
--- a/pkgs/applications/office/zotero/default.nix
+++ b/pkgs/applications/office/zotero/default.nix
@@ -1,82 +1,48 @@
-{ stdenv, fetchurl, lib, bash, firefox, perl, unzipNLS, xorg }:
+{ stdenv, fetchurl, buildFHSUserEnv, writeTextFile, bash, wrapGAppsHook, gsettings_desktop_schemas, gtk3, gnome3 }:
 
 let
-
-  xpi = fetchurl {
-    url = "https://download.zotero.org/extension/zotero-${version}.xpi";
-    sha256 = "1dyf578yfj3xr9kkhmsvbkvraw2arghmh67ksi5c8qlxczx5i1xy";
-  };
-
-  version = "4.0.29";
-
-in
-stdenv.mkDerivation {
-  name = "zotero-${version}";
+version = "5.0.25";
+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";
 
   src = fetchurl {
-    url = "https://github.com/zotero/zotero-standalone-build/archive/4.0.29.2.tar.gz";
-    sha256 = "0pfip6s5dawp7wp8r5czvzlnxvvdwjja64g71h9dxyxrh49v2mxa";
+    url = "https://download.zotero.org/client/release/${version}/Zotero-${version}_linux-x86_64.tar.bz2";
+    sha256 = "1y3q5582xp4inpz137x0r9iscs1g0cjlqcfjpzl3klsq3yas688k";
   };
 
-  nativeBuildInputs = [ perl unzipNLS ];
-
-  inherit bash firefox;
-
-  phases = "unpackPhase installPhase fixupPhase";
+  buildInputs= [ wrapGAppsHook gsettings_desktop_schemas gtk3 gnome3.adwaita-icon-theme gnome3.dconf ];
+  phases = [ "unpackPhase" "installPhase" "fixupPhase"];
 
   installPhase = ''
-    mkdir -p "$out/libexec/zotero"
-    unzip "${xpi}" -d "$out/libexec/zotero"
-
-    BUILDID=`date +%Y%m%d`
-    GECKO_VERSION="${lib.removeSuffix "esr" firefox.passthru.version}"
-    UPDATE_CHANNEL="default"
-
-    # Copy branding
-    cp -R assets/branding "$out/libexec/zotero/chrome/branding"
-
-    # Adjust chrome.manifest
-    echo "" >> "$out/libexec/zotero/chrome.manifest"
-    cat assets/chrome.manifest >> "$out/libexec/zotero/chrome.manifest"
-
-    # Copy updater.ini
-    cp assets/updater.ini "$out/libexec/zotero"
-
-    # Adjust connector pref
-    perl -pi -e 's/pref\("extensions\.zotero\.httpServer\.enabled", false\);/pref("extensions.zotero.httpServer.enabled", true);/g' "$out/libexec/zotero/defaults/preferences/zotero.js"
-    perl -pi -e 's/pref\("extensions\.zotero\.connector\.enabled", false\);/pref("extensions.zotero.connector.enabled", true);/g' "$out/libexec/zotero/defaults/preferences/zotero.js"
-
-    # Copy icons
-    cp -r assets/icons "$out/libexec/zotero/chrome/icons"
-
-    # Copy application.ini and modify
-    cp assets/application.ini "$out/libexec/zotero/application.ini"
-    perl -pi -e "s/\{\{VERSION}}/$version/" "$out/libexec/zotero/application.ini"
-    perl -pi -e "s/\{\{BUILDID}}/$BUILDID/" "$out/libexec/zotero/application.ini"
-    perl -pi -e "s/^MaxVersion.*\$/MaxVersion=$GECKO_VERSION/" "$out/libexec/zotero/application.ini"
-
-    # Copy prefs.js and modify
-    cp assets/prefs.js "$out/libexec/zotero/defaults/preferences"
-    perl -pi -e 's/pref\("app\.update\.channel", "[^"]*"\);/pref\("app\.update\.channel", "'"$UPDATE_CHANNEL"'");/' "$out/libexec/zotero/defaults/preferences/prefs.js"
-    perl -pi -e 's/%GECKO_VERSION%/'"$GECKO_VERSION"'/g' "$out/libexec/zotero/defaults/preferences/prefs.js"
-
-    # Add platform-specific standalone assets
-    cp -R assets/unix "$out/libexec/zotero"
-
-    mkdir -p "$out/bin"
-    substituteAll "${./zotero.sh}" "$out/bin/zotero"
-    chmod +x "$out/bin/zotero"
+    mkdir -p $out/data
+    cp -r * $out/data
+    mkdir $out/bin
+    ln -s $out/data/zotero $out/bin/zotero
   '';
-
-  doInstallCheck = true;
-  installCheckPhase = "$out/bin/zotero --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;
-    broken = true; # probably; see #20049
-  };
-}
+};
+
+fhsEnv = buildFHSUserEnv {
+  name = "zotero-fhs-env";
+  targetPkgs = pkgs: with pkgs; with xlibs; [
+    gtk3 dbus_glib
+    libXt nss
+  ];
+};
+
+in writeTextFile {
+  name = "zotero";
+  destination = "/bin/zotero";
+  executable = true;
+  text = ''
+    #!${bash}/bin/bash
+    ${fhsEnv}/bin/zotero-fhs-env ${zoteroSrc}/bin/zotero
+  '';
+} // {inherit meta; }