summary refs log tree commit diff
path: root/pkgs/development/libraries/libdeltachat
diff options
context:
space:
mode:
authorRobert Schütz <dev@schuetz-co.de>2021-08-10 01:55:54 +0200
committerGitHub <noreply@github.com>2021-08-10 01:55:54 +0200
commitffd075df9c017b5911f4ad14becfed50758df039 (patch)
tree89c444f11d0069ba7a789f9823aba9ae32145463 /pkgs/development/libraries/libdeltachat
parent543213e9370f33dbb7bef9226017ae199c4c0dc8 (diff)
parent280d92039706add32e4c9e525a0c941e776af4d1 (diff)
downloadnixpkgs-ffd075df9c017b5911f4ad14becfed50758df039.tar
nixpkgs-ffd075df9c017b5911f4ad14becfed50758df039.tar.gz
nixpkgs-ffd075df9c017b5911f4ad14becfed50758df039.tar.bz2
nixpkgs-ffd075df9c017b5911f4ad14becfed50758df039.tar.lz
nixpkgs-ffd075df9c017b5911f4ad14becfed50758df039.tar.xz
nixpkgs-ffd075df9c017b5911f4ad14becfed50758df039.tar.zst
nixpkgs-ffd075df9c017b5911f4ad14becfed50758df039.zip
Merge pull request #130561 from dotlambda/deltachat-desktop-init
deltachat-desktop: init at unstable-2021-08-04
Diffstat (limited to 'pkgs/development/libraries/libdeltachat')
-rw-r--r--pkgs/development/libraries/libdeltachat/default.nix24
-rw-r--r--pkgs/development/libraries/libdeltachat/no-static-lib.patch39
2 files changed, 61 insertions, 2 deletions
diff --git a/pkgs/development/libraries/libdeltachat/default.nix b/pkgs/development/libraries/libdeltachat/default.nix
index 77315776aca..6a0a6ae5c87 100644
--- a/pkgs/development/libraries/libdeltachat/default.nix
+++ b/pkgs/development/libraries/libdeltachat/default.nix
@@ -1,12 +1,17 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, fetchpatch
 , cmake
 , openssl
 , perl
 , pkg-config
 , rustPlatform
 , sqlite
+, fixDarwinDylibNames
+, CoreFoundation
+, Security
+, libiconv
 }:
 
 stdenv.mkDerivation rec {
@@ -20,6 +25,15 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-ZyVEI6q+GzHLEFH01TxS7NqwT7zqVgg0vduyf/fibB8=";
   };
 
+  patches = [
+    # https://github.com/deltachat/deltachat-core-rust/pull/2589
+    (fetchpatch {
+      url = "https://github.com/deltachat/deltachat-core-rust/commit/408467e85d04fbbfd6bed5908d84d9e995943487.patch";
+      sha256 = "1j2ywaazglgl6370js34acrg0wrh0b7krqg05dfjf65n527lzn59";
+    })
+    ./no-static-lib.patch
+  ];
+
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
@@ -33,11 +47,17 @@ stdenv.mkDerivation rec {
   ] ++ (with rustPlatform; [
     cargoSetupHook
     rust.cargo
-  ]);
+  ]) ++ lib.optionals stdenv.isDarwin [
+    fixDarwinDylibNames
+  ];
 
   buildInputs = [
     openssl
     sqlite
+  ] ++ lib.optionals stdenv.isDarwin [
+    CoreFoundation
+    Security
+    libiconv
   ];
 
   checkInputs = with rustPlatform; [
@@ -49,7 +69,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/deltachat/deltachat-core-rust/";
     changelog = "https://github.com/deltachat/deltachat-core-rust/blob/${version}/CHANGELOG.md";
     license = licenses.mpl20;
-    platforms = platforms.linux;
     maintainers = with maintainers; [ dotlambda ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/libdeltachat/no-static-lib.patch b/pkgs/development/libraries/libdeltachat/no-static-lib.patch
new file mode 100644
index 00000000000..95238cf8852
--- /dev/null
+++ b/pkgs/development/libraries/libdeltachat/no-static-lib.patch
@@ -0,0 +1,39 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index fe7abe08..acdbe0d6 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -13,7 +13,6 @@ find_program(CARGO cargo)
+ 
+ add_custom_command(
+ 	OUTPUT
+-	"target/release/libdeltachat.a"
+ 	"target/release/libdeltachat.${DYNAMIC_EXT}"
+ 	"target/release/pkgconfig/deltachat.pc"
+         COMMAND
+@@ -38,13 +37,11 @@ add_custom_target(
+ 	lib_deltachat
+ 	ALL
+ 	DEPENDS
+-	"target/release/libdeltachat.a"
+ 	"target/release/libdeltachat.${DYNAMIC_EXT}"
+ 	"target/release/pkgconfig/deltachat.pc"
+ )
+ 
+ include(GNUInstallDirs)
+ install(FILES "deltachat-ffi/deltachat.h" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
+-install(FILES "target/release/libdeltachat.a" DESTINATION ${CMAKE_INSTALL_LIBDIR})
+ install(FILES "target/release/libdeltachat.${DYNAMIC_EXT}" DESTINATION ${CMAKE_INSTALL_LIBDIR})
+ install(FILES "target/release/pkgconfig/deltachat.pc" DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
+diff --git a/deltachat-ffi/Cargo.toml b/deltachat-ffi/Cargo.toml
+index a34a27ba..cf354abb 100644
+--- a/deltachat-ffi/Cargo.toml
++++ b/deltachat-ffi/Cargo.toml
+@@ -12,7 +12,7 @@ categories = ["cryptography", "std", "email"]
+ 
+ [lib]
+ name = "deltachat"
+-crate-type = ["cdylib", "staticlib"]
++crate-type = ["cdylib"]
+ 
+ [dependencies]
+ deltachat = { path = "../", default-features = false }