nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 stdenv,
4 fetchurl,
5 appimageTools,
6 undmg,
7 _7zz,
8}:
9let
10 pname = "paperlib";
11 version = "3.1.10";
12 src =
13 fetchurl
14 {
15 aarch64-darwin = {
16 url = "https://github.com/Future-Scholars/paperlib/releases/download/release-electron-${version}/Paperlib_${version}_arm.dmg";
17 hash = "sha256-KNMPUeCNtODHzMJhCwI4SJPRfa87RmAe6CRRazgRZCQ=";
18 };
19 x86_64-darwin = {
20 url = "https://github.com/Future-Scholars/paperlib/releases/download/release-electron-${version}/Paperlib_${version}.dmg";
21 hash = "sha256-5QwF0+7Y4LzReHCj8yZrAJDAZVyY0ANC5gjAxdaVRkU=";
22 };
23 x86_64-linux = {
24 url = "https://github.com/Future-Scholars/paperlib/releases/download/release-electron-${version}/Paperlib_${version}.AppImage";
25 hash = "sha256-uBYhiUL4YWwnLLPvXMoXjlQqlqFep/OpwwnmPx7s5dY=";
26 };
27 }
28 .${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
29
30 passthru = {
31 inherit pname version src;
32 };
33
34 meta = {
35 homepage = "https://github.com/Future-Scholars/paperlib";
36 description = "Open-source academic paper management tool";
37 license = lib.licenses.gpl3Only;
38 maintainers = with lib.maintainers; [ ByteSudoer ];
39 platforms = [
40 "aarch64-darwin"
41 "x86_64-darwin"
42 "x86_64-linux"
43 ];
44 mainProgram = "paperlib";
45 sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
46 };
47in
48if stdenv.hostPlatform.isDarwin then
49 stdenv.mkDerivation {
50 inherit
51 pname
52 version
53 src
54 meta
55 passthru
56 ;
57
58 sourceRoot = ".";
59
60 nativeBuildInputs = if stdenv.hostPlatform.isAarch64 then [ _7zz ] else [ undmg ];
61
62 installPhase = ''
63 runHook preInstall
64
65 mkdir -p $out/Applications
66 mv Paperlib.app $out/Applications/
67
68 runHook postInstall
69 '';
70 }
71else
72 appimageTools.wrapType2 {
73 inherit
74 pname
75 version
76 src
77 meta
78 passthru
79 ;
80
81 extraPkgs = pkgs: [ pkgs.libsecret ];
82 }