From 082e62c56bedd9db82d8015f8160a7ad48669ba9 Mon Sep 17 00:00:00 2001 From: Moritz Angermann Date: Thu, 7 Apr 2022 16:12:54 +0800 Subject: [PATCH] Update flake.nix (#508) * Update flake.nix * update nix file, simplexmq sha Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com> --- cabal.project | 2 +- flake.nix | 37 +++++++++++++++++++++++++++++++++---- sha256map.nix | 2 +- stack.yaml | 2 +- 4 files changed, 36 insertions(+), 7 deletions(-) diff --git a/cabal.project b/cabal.project index b30676122e..37dd62c1ee 100644 --- a/cabal.project +++ b/cabal.project @@ -3,7 +3,7 @@ packages: . source-repository-package type: git location: https://github.com/simplex-chat/simplexmq.git - tag: 3ba1926b1e5ab32451a2239831d614492d40c9be + tag: ac7ffc413e1ff0fd09082278878e9d63e3bdfeb8 source-repository-package type: git diff --git a/flake.nix b/flake.nix index ecd71e5f95..645e9d8b4d 100644 --- a/flake.nix +++ b/flake.nix @@ -8,7 +8,7 @@ let systems = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ]; in flake-utils.lib.eachSystem systems (system: let pkgs = haskellNix.legacyPackages.${system}; in - let drv = pkgs': pkgs'.haskell-nix.project { + let drv' = { extra-modules, pkgs', ... }: pkgs'.haskell-nix.project { compiler-nix-name = "ghc8107"; index-state = "2022-01-24T00:00:00Z"; # We need this, to specify we want the cabal project. @@ -25,8 +25,10 @@ } ({ pkgs,lib, ... }: lib.mkIf (pkgs.stdenv.hostPlatform.isAndroid) { packages.simplex-chat.components.library.ghcOptions = [ "-pie" ]; - })]; + })] ++ extra-modules; }; in + # by defualt we don't need to pass extra-modules. + let drv = pkgs': drv' { extra-modules = []; inherit pkgs' }; in # This will package up all *.a in $out into a pkg.zip that can # be downloaded from hydra. let withHydraLibPkg = pkg: pkg.overrideAttrs (old: { @@ -211,7 +213,8 @@ }; }; "aarch64-darwin" = { - "aarch64-darwin:lib:simplex-chat" = (drv pkgs).simplex-chat.components.library.override { + # this is the aarch64-darwin iOS build (to be patched with mac2ios) + "aarch64-darwin-ios:lib:simplex-chat" = (drv' { pkgs' = pkgs; extra-modules = [{ packages.simplexmq.flags.swiftJSON = true; }] } ).simplex-chat.components.library.override { smallAddressSpace = true; enableShared = false; # we need threaded here, otherwise all the queing logic doesn't work properly. # for iOS we also use -staticlib, to get one rolled up library. @@ -229,7 +232,33 @@ find ${pkgs.gmp6.override { withStatic = true; }}/lib -name "*.a" -exec cp {} $out/_pkg \; # There is no static libc ${pkgs.tree}/bin/tree $out/_pkg - (cd $out/_pkg; ${pkgs.zip}/bin/zip -r -9 $out/pkg-ios-aarch64.zip *) + (cd $out/_pkg; ${pkgs.zip}/bin/zip -r -9 $out/pkg-ios-aarch64-swift-json.zip *) + rm -fR $out/_pkg + mkdir -p $out/nix-support + echo "file binary-dist \"$(echo $out/*.zip)\"" \ + > $out/nix-support/hydra-build-products + ''; + }; + # This is the aarch64-darwin build with tagged JSON format (for Mac & Flutter) + "aarch64-darwin:lib:simplex-chat" = (drv pkgs).simplex-chat.components.library.override { + smallAddressSpace = true; enableShared = false; + # we need threaded here, otherwise all the queing logic doesn't work properly. + # for iOS we also use -staticlib, to get one rolled up library. + # still needs mac2ios patching of the archives. + ghcOptions = [ "-staticlib" "-threaded" ]; + postInstall = '' + ${pkgs.tree}/bin/tree $out + mkdir -p $out/_pkg + # copy over includes, we might want those, but maybe not. + # cp -r $out/lib/*/*/include $out/_pkg/ + # find the libHS...ghc-X.Y.Z.a static library; this is the + # rolled up one with all dependencies included. + find ./dist -name "libHS*.a" -exec cp {} $out/_pkg \; + find ${pkgs.libffi.overrideAttrs (old: { dontDisableStatic = true; })}/lib -name "*.a" -exec cp {} $out/_pkg \; + find ${pkgs.gmp6.override { withStatic = true; }}/lib -name "*.a" -exec cp {} $out/_pkg \; + # There is no static libc + ${pkgs.tree}/bin/tree $out/_pkg + (cd $out/_pkg; ${pkgs.zip}/bin/zip -r -9 $out/pkg-ios-aarch64-tagged-json.zip *) rm -fR $out/_pkg mkdir -p $out/nix-support echo "file binary-dist \"$(echo $out/*.zip)\"" \ diff --git a/sha256map.nix b/sha256map.nix index 77f2287dd2..abc341216e 100644 --- a/sha256map.nix +++ b/sha256map.nix @@ -1,5 +1,5 @@ { - "https://github.com/simplex-chat/simplexmq.git"."3ba1926b1e5ab32451a2239831d614492d40c9be" = "1rgadib3xjzi81i1xda55gv1mdaq8vvyyh65qg482rnyh6kq9f6g"; + "https://github.com/simplex-chat/simplexmq.git"."ac7ffc413e1ff0fd09082278878e9d63e3bdfeb8" = "1lsp2x1sm5bpmax6ngwnmn8hb5812mqigszjxigip69kyaq5nn2s"; "https://github.com/simplex-chat/aeson.git"."3eb66f9a68f103b5f1489382aad89f5712a64db7" = "0kilkx59fl6c3qy3kjczqvm8c3f4n3p0bdk9biyflf51ljnzp4yp"; "https://github.com/simplex-chat/haskell-terminal.git"."f708b00009b54890172068f168bf98508ffcd495" = "0zmq7lmfsk8m340g47g5963yba7i88n4afa6z93sg9px5jv1mijj"; "https://github.com/zw3rk/android-support.git"."3c3a5ab0b8b137a072c98d3d0937cbdc96918ddb" = "1r6jyxbim3dsvrmakqfyxbd6ms6miaghpbwyl0sr6dzwpgaprz97"; diff --git a/stack.yaml b/stack.yaml index b9c297539d..ff5608a855 100644 --- a/stack.yaml +++ b/stack.yaml @@ -49,7 +49,7 @@ extra-deps: # - simplexmq-1.0.0@sha256:34b2004728ae396e3ae449cd090ba7410781e2b3cefc59259915f4ca5daa9ea8,8561 # - ../simplexmq - github: simplex-chat/simplexmq - commit: 3ba1926b1e5ab32451a2239831d614492d40c9be + commit: ac7ffc413e1ff0fd09082278878e9d63e3bdfeb8 # - terminal-0.2.0.0@sha256:de6770ecaae3197c66ac1f0db5a80cf5a5b1d3b64a66a05b50f442de5ad39570,2977 - github: simplex-chat/aeson commit: 3eb66f9a68f103b5f1489382aad89f5712a64db7