-
-
Notifications
You must be signed in to change notification settings - Fork 14k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
58cbd98
commit c130229
Showing
3 changed files
with
173 additions
and
108 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
{ | ||
pname, | ||
version, | ||
meta, | ||
stdenv, | ||
fetchurl, | ||
undmg, | ||
}: | ||
|
||
stdenv.mkDerivation rec { | ||
inherit pname version meta; | ||
|
||
src = fetchurl { | ||
url = "https://download.zotero.org/client/release/${version}/Zotero-${version}.dmg"; | ||
hash = "sha256-z1HAkHz4JGRfQJna2cINZTmYPzyj9ofp7mJHN/mNyOo="; | ||
}; | ||
sourceRoot = "."; | ||
|
||
nativeBuildInputs = [ undmg ]; | ||
|
||
dontConfigure = true; | ||
dontBuild = true; | ||
dontFixup = true; # breaks notarization | ||
|
||
installPhase = '' | ||
runHook preInstall | ||
mkdir -p $out/Applications | ||
cp -r Zotero.app $out/Applications | ||
runHook postInstall | ||
''; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,116 +1,30 @@ | ||
{ lib | ||
, stdenv | ||
, fetchurl | ||
, wrapGAppsHook3 | ||
, makeDesktopItem | ||
, alsa-lib | ||
, atk | ||
, cairo | ||
, dbus-glib | ||
, gdk-pixbuf | ||
, glib | ||
, gtk3 | ||
, libGL | ||
, libva | ||
, xorg | ||
, mesa | ||
, pango | ||
, pciutils | ||
{ | ||
lib, | ||
stdenv, | ||
callPackage, | ||
}: | ||
|
||
stdenv.mkDerivation rec { | ||
let | ||
pname = "zotero"; | ||
version = "7.0.8"; | ||
|
||
src = fetchurl { | ||
url = "https://download.zotero.org/client/release/${version}/Zotero-${version}_linux-x86_64.tar.bz2"; | ||
hash = "sha256-utiqS4/PvlkQesqTOyEvj8uwW1sDxlqjnhv6GFfY5uk="; | ||
}; | ||
|
||
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}/{}" \; | ||
''; | ||
|
||
meta = with lib; { | ||
meta = { | ||
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" ]; | ||
maintainers = with maintainers; [ atila justanotherariel ]; | ||
sourceProvenance = [ lib.sourceTypes.binaryNativeCode ]; | ||
license = lib.licenses.agpl3Only; | ||
platforms = [ | ||
"x86_64-linux" | ||
"x86_64-darwin" | ||
"aarch64-darwin" | ||
]; | ||
maintainers = with lib.maintainers; [ | ||
atila | ||
justanotherariel | ||
]; | ||
}; | ||
} | ||
in | ||
if stdenv.hostPlatform.isDarwin then | ||
callPackage ./darwin.nix { inherit pname version meta; } | ||
else | ||
callPackage ./linux.nix { inherit pname version meta; } |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,118 @@ | ||
{ | ||
pname, | ||
version, | ||
meta, | ||
lib, | ||
stdenv, | ||
fetchurl, | ||
wrapGAppsHook3, | ||
makeDesktopItem, | ||
alsa-lib, | ||
atk, | ||
cairo, | ||
dbus-glib, | ||
gdk-pixbuf, | ||
glib, | ||
gtk3, | ||
libGL, | ||
libva, | ||
xorg, | ||
mesa, | ||
pango, | ||
pciutils, | ||
}: | ||
|
||
stdenv.mkDerivation rec { | ||
inherit pname version meta; | ||
|
||
src = fetchurl { | ||
url = "https://download.zotero.org/client/release/${version}/Zotero-${version}_linux-x86_64.tar.bz2"; | ||
hash = "sha256-utiqS4/PvlkQesqTOyEvj8uwW1sDxlqjnhv6GFfY5uk="; | ||
}; | ||
|
||
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}/{}" \; | ||
''; | ||
} |