From 8f036af4ec09c1d590c503c346a1d2077995f114 Mon Sep 17 00:00:00 2001 From: Stephen Stubbs Date: Fri, 20 Sep 2024 19:26:01 +0100 Subject: [PATCH] zotero: 7.0.3 -> 7.0.5 and add darwin formatting formatting --- pkgs/applications/office/zotero/darwin.nix | 30 +++++ pkgs/applications/office/zotero/default.nix | 115 ++----------------- pkgs/applications/office/zotero/linux.nix | 118 ++++++++++++++++++++ 3 files changed, 157 insertions(+), 106 deletions(-) create mode 100644 pkgs/applications/office/zotero/darwin.nix create mode 100644 pkgs/applications/office/zotero/linux.nix diff --git a/pkgs/applications/office/zotero/darwin.nix b/pkgs/applications/office/zotero/darwin.nix new file mode 100644 index 0000000000000..7679fc3cc1562 --- /dev/null +++ b/pkgs/applications/office/zotero/darwin.nix @@ -0,0 +1,30 @@ +{ + stdenv, + fetchurl, + undmg, + pname, + version, +}: + +stdenv.mkDerivation { + inherit pname version; + src = fetchurl { + url = "https://download.zotero.org/client/release/${version}/Zotero-${version}.dmg"; + sha256 = "sha256-5AhOUCCL1/JUEXuPC9lkjNAHRPjiCqOV9nPb7eU+YdI="; + }; + + dontBuild = true; + + nativeBuildInputs = [ undmg ]; + + sourceRoot = "."; + + installPhase = '' + runHook preInstall + + mkdir -p $out/Applications + cp -r *.app $out/Applications + + runHook postInstall + ''; +} diff --git a/pkgs/applications/office/zotero/default.nix b/pkgs/applications/office/zotero/default.nix index 7b9a22ff07215..2b491c747b793 100644 --- a/pkgs/applications/office/zotero/default.nix +++ b/pkgs/applications/office/zotero/default.nix @@ -1,116 +1,19 @@ -{ lib -, stdenv -, fetchurl -, wrapGAppsHook3 -, makeDesktopItem -, alsa-lib -, atk -, cairo -, dbus-glib -, gdk-pixbuf -, glib -, gtk3 -, libGL -, libva -, xorg -, mesa -, pango -, pciutils -}: +{ stdenv +, callPackage +, lib}: -stdenv.mkDerivation rec { +let pname = "zotero"; - version = "7.0.3"; - - src = fetchurl { - url = "https://download.zotero.org/client/release/${version}/Zotero-${version}_linux-x86_64.tar.bz2"; - hash = "sha256-W5/j5ohrx/X0qlOiWWtB/FEF9aZCnbbAA3pcL8R6yy0="; - }; - - dontPatchELF = true; - nativeBuildInputs = [ wrapGAppsHook3 ]; - - libPath = lib.makeLibraryPath [ - alsa-lib - atk - cairo - dbus-glib - gdk-pixbuf - glib - gtk3 - libGL - libva - xorg.libX11 - xorg.libXcomposite - xorg.libXcursor - xorg.libXdamage - xorg.libXext - xorg.libXfixes - xorg.libXi - xorg.libXrandr - xorg.libXtst - xorg.libxcb - mesa - pango - pciutils - ] + ":" + lib.makeSearchPathOutput "lib" "lib64" [ stdenv.cc.cc ]; - - 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 - - # Copy package contents to the output directory - 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 32 64 128; do - install -Dm444 icons/icon''${size}.png \ - $out/share/icons/hicolor/''${size}x''${size}/apps/zotero.png - done - install -Dm444 icons/symbolic.svg \ - $out/share/icons/hicolor/symbolic/apps/zotero-symbolic.svg - - runHook postInstall - ''; - - postFixup = '' - for executable in \ - zotero-bin plugin-container updater vaapitest \ - minidump-analyzer glxtest - 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}/{}" \; - ''; - + version = "7.0.5"; meta = with lib; { homepage = "https://www.zotero.org"; description = "Collect, organize, cite, and share your research sources"; mainProgram = "zotero"; sourceProvenance = with sourceTypes; [ binaryNativeCode ]; license = licenses.agpl3Only; - platforms = [ "x86_64-linux" ]; + platforms = [ "x86_64-linux" "aarch64-darwin" ]; maintainers = with maintainers; [ atila justanotherariel ]; }; -} +in + if stdenv.isDarwin then callPackage ./darwin.nix { inherit pname version; } + else callPackage ./linux.nix { inherit pname version meta; } diff --git a/pkgs/applications/office/zotero/linux.nix b/pkgs/applications/office/zotero/linux.nix new file mode 100644 index 0000000000000..31a7854359b2b --- /dev/null +++ b/pkgs/applications/office/zotero/linux.nix @@ -0,0 +1,118 @@ +{ + lib, + stdenv, + fetchurl, + wrapGAppsHook3, + makeDesktopItem, + alsa-lib, + atk, + cairo, + dbus-glib, + gdk-pixbuf, + glib, + gtk3, + libGL, + libva, + xorg, + mesa, + pango, + pciutils, + pname, + version, + meta, +}: + +stdenv.mkDerivation rec { + inherit pname version; + src = fetchurl { + url = "https://download.zotero.org/client/release/${version}/Zotero-${version}_linux-x86_64.tar.bz2"; + hash = "sha256-Ljn2IUMXGhlv/RYpRyzxpdETxQOHWdw70KwPjrcmIT0="; + }; + + dontPatchELF = true; + nativeBuildInputs = [ wrapGAppsHook3 ]; + + libPath = + lib.makeLibraryPath [ + alsa-lib + atk + cairo + dbus-glib + gdk-pixbuf + glib + gtk3 + libGL + libva + xorg.libX11 + xorg.libXcomposite + xorg.libXcursor + xorg.libXdamage + xorg.libXext + xorg.libXfixes + xorg.libXi + xorg.libXrandr + xorg.libXtst + xorg.libxcb + mesa + pango + pciutils + ] + + ":" + + lib.makeSearchPathOutput "lib" "lib64" [ stdenv.cc.cc ]; + + 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 + + # Copy package contents to the output directory + 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 32 64 128; do + install -Dm444 icons/icon''${size}.png \ + $out/share/icons/hicolor/''${size}x''${size}/apps/zotero.png + done + install -Dm444 icons/symbolic.svg \ + $out/share/icons/hicolor/symbolic/apps/zotero-symbolic.svg + + runHook postInstall + ''; + + postFixup = '' + for executable in \ + zotero-bin plugin-container updater vaapitest \ + minidump-analyzer glxtest + 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}/{}" \; + ''; + +}