1{
2 stdenv,
3 lib,
4 pname,
5 version,
6 meta,
7 fetchurl,
8 autoPatchelfHook,
9 alsa-lib,
10 coreutils,
11 db,
12 dpkg,
13 glib,
14 gtk3,
15 wrapGAppsHook3,
16 libkrb5,
17 libsecret,
18 nss,
19 openssl,
20 udev,
21 xorg,
22 libgbm,
23 libdrm,
24 libappindicator,
25}:
26
27stdenv.mkDerivation (finalAttrs: {
28 inherit pname version meta;
29
30 src = fetchurl {
31 url = "https://github.com/Foundry376/Mailspring/releases/download/${finalAttrs.version}/mailspring-${finalAttrs.version}-amd64.deb";
32 hash = "sha256-+glQaz36mKMtnNeyHH4brZmzYe9SHCtccO6CIJpTH2k=";
33 };
34
35 nativeBuildInputs = [
36 autoPatchelfHook
37 dpkg
38 wrapGAppsHook3
39 ];
40
41 buildInputs = [
42 alsa-lib
43 db
44 glib
45 gtk3
46 libkrb5
47 libsecret
48 nss
49 xorg.libxkbfile
50 xorg.libXdamage
51 xorg.libXScrnSaver
52 xorg.libXtst
53 xorg.libxshmfence
54 libgbm
55 libdrm
56 ];
57
58 runtimeDependencies = [
59 coreutils
60 openssl
61 (lib.getLib udev)
62 libappindicator
63 libsecret
64 ];
65
66 unpackPhase = ''
67 runHook preUnpack
68
69 dpkg -x $src .
70
71 runHook postUnpack
72 '';
73
74 installPhase = ''
75 runHook preInstall
76
77 mkdir -p $out/{bin,lib}
78 cp -ar ./usr/share $out
79
80 substituteInPlace $out/share/mailspring/resources/app.asar.unpacked/mailsync \
81 --replace-fail dirname ${coreutils}/bin/dirname
82
83 ln -s $out/share/mailspring/mailspring $out/bin/mailspring
84 ln -s ${lib.getLib openssl}/lib/libcrypto.so $out/lib/libcrypto.so.1.0.0
85
86 runHook postInstall
87 '';
88
89 postFixup = # sh
90 ''
91 substituteInPlace $out/share/applications/Mailspring.desktop \
92 --replace-fail Exec=mailspring Exec=$out/bin/mailspring
93 '';
94})