|
|
|
@ -1,38 +1,41 @@ |
|
|
|
|
{ lib |
|
|
|
|
, copyDesktopItems |
|
|
|
|
, electron |
|
|
|
|
, electron_14 |
|
|
|
|
, esbuild |
|
|
|
|
, fetchFromGitHub |
|
|
|
|
, fetchpatch |
|
|
|
|
, libdeltachat |
|
|
|
|
, makeDesktopItem |
|
|
|
|
, makeWrapper |
|
|
|
|
, nodePackages |
|
|
|
|
, nodejs-14_x |
|
|
|
|
, noto-fonts-emoji |
|
|
|
|
, pkg-config |
|
|
|
|
, roboto |
|
|
|
|
, rustPlatform |
|
|
|
|
, sqlcipher |
|
|
|
|
, stdenv |
|
|
|
|
, CoreServices |
|
|
|
|
}: |
|
|
|
|
|
|
|
|
|
let |
|
|
|
|
libdeltachat' = libdeltachat.overrideAttrs (old: rec { |
|
|
|
|
version = "1.70.0"; |
|
|
|
|
version = "1.76.0"; |
|
|
|
|
src = fetchFromGitHub { |
|
|
|
|
owner = "deltachat"; |
|
|
|
|
repo = "deltachat-core-rust"; |
|
|
|
|
rev = version; |
|
|
|
|
hash = "sha256-702XhFWvFG+g++3X97sy6C5DMNWogv1Xbr8QPR8QyLo="; |
|
|
|
|
hash = "sha256-aeYOszOFyLaC1xKswYZLzqoWSFFWOOeOkc+WrtqU0jo="; |
|
|
|
|
}; |
|
|
|
|
cargoDeps = rustPlatform.fetchCargoTarball { |
|
|
|
|
inherit src; |
|
|
|
|
name = "${old.pname}-${version}"; |
|
|
|
|
hash = "sha256-MiSGJMXe8vouv4XEHXq274FHEvBMtd7IX6DyNJIWYeU="; |
|
|
|
|
hash = "sha256-sBFXcLXpAkX+HzRKrLKaHhi5ieS8Yc/Uf30WcXyWrok="; |
|
|
|
|
}; |
|
|
|
|
}); |
|
|
|
|
electronExec = if stdenv.isDarwin then |
|
|
|
|
"${electron}/Applications/Electron.app/Contents/MacOS/Electron" |
|
|
|
|
"${electron_14}/Applications/Electron.app/Contents/MacOS/Electron" |
|
|
|
|
else |
|
|
|
|
"${electron}/bin/electron"; |
|
|
|
|
"${electron_14}/bin/electron"; |
|
|
|
|
esbuild' = esbuild.overrideAttrs (old: rec { |
|
|
|
|
version = "0.12.29"; |
|
|
|
|
src = fetchFromGitHub { |
|
|
|
@ -42,19 +45,18 @@ let |
|
|
|
|
hash = "sha256-oU++9E3StUoyrMVRMZz8/1ntgPI62M1NoNz9sH/N5Bg="; |
|
|
|
|
}; |
|
|
|
|
}); |
|
|
|
|
in nodePackages.deltachat-desktop.override rec { |
|
|
|
|
in nodejs-14_x.pkgs.deltachat-desktop.override rec { |
|
|
|
|
pname = "deltachat-desktop"; |
|
|
|
|
version = "1.26.0"; |
|
|
|
|
version = "1.28.0"; |
|
|
|
|
|
|
|
|
|
src = fetchFromGitHub { |
|
|
|
|
owner = "deltachat"; |
|
|
|
|
repo = "deltachat-desktop"; |
|
|
|
|
rev = "v${version}"; |
|
|
|
|
hash = "sha256-IDyGV2+/+wHp5N4G10y5OHvw2yoyVxWx394xszIYoj4="; |
|
|
|
|
hash = "sha256-Ur0UxaKEWp+y7lGz2Khsg4npOf+gjCiOoijkSbnp0hg="; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
nativeBuildInputs = [ |
|
|
|
|
esbuild |
|
|
|
|
makeWrapper |
|
|
|
|
pkg-config |
|
|
|
|
] ++ lib.optionals stdenv.isLinux [ |
|
|
|
@ -72,27 +74,29 @@ in nodePackages.deltachat-desktop.override rec { |
|
|
|
|
USE_SYSTEM_LIBDELTACHAT = "true"; |
|
|
|
|
VERSION_INFO_GIT_REF = src.rev; |
|
|
|
|
|
|
|
|
|
postInstall = let |
|
|
|
|
keep = lib.concatMapStringsSep " " (file: "! -name ${file}") [ |
|
|
|
|
"_locales" "build" "html-dist" "images" "index.js" |
|
|
|
|
"node_modules" "themes" "tsc-dist" |
|
|
|
|
]; |
|
|
|
|
in '' |
|
|
|
|
postInstall = '' |
|
|
|
|
rm -r node_modules/deltachat-node/{deltachat-core-rust,prebuilds,src} |
|
|
|
|
|
|
|
|
|
patchShebangs node_modules/sass/sass.js |
|
|
|
|
|
|
|
|
|
npm run build |
|
|
|
|
|
|
|
|
|
npm prune --production |
|
|
|
|
|
|
|
|
|
find . -mindepth 1 -maxdepth 1 ${keep} -print0 | xargs -0 rm -r |
|
|
|
|
awk '!/^#/ && NF' build/packageignore_list \ |
|
|
|
|
| xargs -I {} sh -c "rm -rf {}" || true |
|
|
|
|
|
|
|
|
|
ln -sf ${noto-fonts-emoji}/share/fonts/noto/NotoColorEmoji.ttf \ |
|
|
|
|
$out/lib/node_modules/deltachat-desktop/html-dist/fonts/noto/emoji |
|
|
|
|
for font in $out/lib/node_modules/deltachat-desktop/html-dist/fonts/Roboto-*.ttf; do |
|
|
|
|
ln -sf ${roboto}/share/fonts/truetype/$(basename $font) \ |
|
|
|
|
$out/lib/node_modules/deltachat-desktop/html-dist/fonts |
|
|
|
|
done |
|
|
|
|
|
|
|
|
|
mkdir -p $out/share/icons/hicolor/scalable/apps |
|
|
|
|
ln -s $out/lib/node_modules/deltachat-desktop/build/icon.png \ |
|
|
|
|
$out/share/icons/hicolor/scalable/apps/deltachat.png |
|
|
|
|
|
|
|
|
|
makeWrapper ${electronExec} $out/bin/deltachat \ |
|
|
|
|
--set LD_PRELOAD ${sqlcipher}/lib/libsqlcipher${stdenv.hostPlatform.extensions.sharedLibrary} \ |
|
|
|
|
--add-flags $out/lib/node_modules/deltachat-desktop |
|
|
|
|
''; |
|
|
|
|
|
|
|
|
|