Skip to content

Commit

Permalink
Merges develop
Browse files Browse the repository at this point in the history
  • Loading branch information
nikolaglumac committed Sep 14, 2021
2 parents 94ed96e + e94535d commit 0e21735
Show file tree
Hide file tree
Showing 46 changed files with 2,076 additions and 1,161 deletions.
3 changes: 3 additions & 0 deletions .eslintrc
Expand Up @@ -89,5 +89,8 @@
"MOBX_DEV_TOOLS": true,
"BUILD_NUMBER": true,
"Process": true // TODO: remove after fix
},
"settings": {
"import/resolver": "webpack"
}
}
1 change: 1 addition & 0 deletions .flowconfig
Expand Up @@ -15,6 +15,7 @@
<PROJECT_ROOT>/state-cluster/.*
<PROJECT_ROOT>/utils/js-launcher/.*
<PROJECT_ROOT>/tests-report/.*
<PROJECT_ROOT>/node_modules/.cache

[include]

Expand Down
5 changes: 5 additions & 0 deletions .gitignore
Expand Up @@ -110,3 +110,8 @@ utils/js-launcher/state
# local development cluster

state-cluster
Release
Debug
/cardano-cli
/cardano-wallet
.vscode
1 change: 1 addition & 0 deletions CHANGELOG.md
Expand Up @@ -9,6 +9,7 @@ Changelog

### Fixes

- Updated Electron and related packages ([PR 2206](https://github.com/input-output-hk/daedalus/pull/2206))
- Fixed some Japanese translations for the external currencies ([PR 2667](https://github.com/input-output-hk/daedalus/pull/2667))

## 4.3.1
Expand Down
15 changes: 3 additions & 12 deletions default.nix
Expand Up @@ -54,7 +54,8 @@ let
cardanoLib = localLib.iohkNix.cardanoLib;
daedalus-bridge = self.bridgeTable.${nodeImplementation};

nodejs = pkgs.nodejs-12_x;
nodejs = pkgs.nodejs-14_x;
nodePackages = pkgs.nodePackages.override { nodejs = self.nodejs; };
yarnInfo = {
version = "1.22.4";
hash = "1l3sv30g61dcn7ls213prcja2y3dqdi5apq9r7yyick295w25npq";
Expand Down Expand Up @@ -314,17 +315,7 @@ let
source = builtins.filterSource localLib.cleanSourceFilter ./.;
yaml2json = pkgs.haskell.lib.disableCabalFlag pkgs.haskellPackages.yaml "no-exe";

electron4 = pkgs.callPackage ./installers/nix/electron.nix {};
electron8 = self.electron4.overrideAttrs (old: rec {
name = "electron-${version}";
version = "8.2.2";
src = {
x86_64-linux = pkgs.fetchurl {
url = "https://github.com/electron/electron/releases/download/v${version}/electron-v${version}-linux-x64.zip";
sha256 = "0sk63i72kg7xixqgdkq4z80ia3ya9cyc15pak8shg4qi605jdnr7";
};
}.${pkgs.stdenv.hostPlatform.system} or throwSystem;
});
electron = pkgs.callPackage ./installers/nix/electron.nix {};

tests = {
runFlow = self.callPackage ./tests/flow.nix {};
Expand Down
16 changes: 11 additions & 5 deletions gulpfile.js
Expand Up @@ -85,15 +85,21 @@ gulp.task('server:start', (done) => {
});

gulp.task('server:create:dev', (done) => {
createElectronServer({ NODE_ENV: process.env.NODE_ENV || 'development' });
createElectronServer({
NODE_ENV: process.env.NODE_ENV,
XCURSOR_PATH: '/usr/share/icons' || 'development',
});
done();
});

gulp.task('server:create:debug', (done) => {
createElectronServer({ NODE_ENV: process.env.NODE_ENV || 'development' }, [
'--inspect',
'--inspect-brk',
]);
createElectronServer(
{
NODE_ENV: process.env.NODE_ENV,
XCURSOR_PATH: '/usr/share/icons' || 'development',
},
['--inspect', '--inspect-brk']
);
done();
});

Expand Down
137 changes: 79 additions & 58 deletions installers/common/MacInstaller.hs
Expand Up @@ -118,10 +118,12 @@ KEYCHAIN="$2"
REL_PATH="$3"
XML_PATH="$4"
ABS_PATH="$(pwd)/$REL_PATH"
SIGN_CMD="codesign --verbose=4 --deep --strict --timestamp --options=runtime --entitlements $XML_PATH --sign \"$SIGN_ID\""
TS="$(date +%Y-%m-%d_%H-%M-%S)"
function sign_cmd() {
codesign --verbose=4 --deep --strict --timestamp --options=runtime --entitlements $XML_PATH --sign "$SIGN_ID" "$1" 2>&1 | tee -a /tmp/codesign-output-${TS}.txt
}
VERIFY_CMD="codesign --verbose=4 --verify --deep --strict"
ENTITLEMENT_CMD="codesign -d --entitlements :-"
TS="$(date +%Y-%m-%d_%H-%M-%S)"
LOG="2>&1 | tee -a /tmp/codesign-output-${TS}.txt"

# Remove symlinks pointing outside of the project build folder:
Expand All @@ -133,25 +135,26 @@ eval "security find-identity -v -p codesigning \"$KEYCHAIN\" $LOG"
eval "security list-keychains -d user -s \"$KEYCHAIN\" $LOG"

# Sign framework executables not signed by the deep sign command:
eval "$SIGN_CMD \"$ABS_PATH/Contents/Frameworks/Squirrel.framework/Versions/A/Resources/ShipIt\" $LOG"
eval "$SIGN_CMD \"$ABS_PATH/Contents/Frameworks/Electron Framework.framework/Versions/Current/Resources/crashpad_handler\" $LOG"
eval "$SIGN_CMD \"$ABS_PATH/Contents/Frameworks/Electron Framework.framework/Versions/Current/Libraries/libnode.dylib\" $LOG"
eval "$SIGN_CMD \"$ABS_PATH/Contents/Frameworks/Electron Framework.framework/Versions/Current/Libraries/libffmpeg.dylib\" $LOG"
sign_cmd "$ABS_PATH/Contents/Frameworks/Squirrel.framework/Versions/A/Resources/ShipIt"
sign_cmd "$ABS_PATH/Contents/Frameworks/Electron Framework.framework/Versions/Current/Resources/crashpad_handler"
sign_cmd "$ABS_PATH/Contents/Frameworks/Electron Framework.framework/Versions/Current/Libraries/libnode.dylib"
sign_cmd "$ABS_PATH/Contents/Frameworks/Electron Framework.framework/Versions/Current/Libraries/libffmpeg.dylib"

eval "$SIGN_CMD \"$ABS_PATH/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libEGL.dylib\" $LOG"
eval "$SIGN_CMD \"$ABS_PATH/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libGLESv2.dylib\" $LOG"
eval "$SIGN_CMD \"$ABS_PATH/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libswiftshader_libEGL.dylib\" $LOG"
eval "$SIGN_CMD \"$ABS_PATH/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libswiftshader_libGLESv2.dylib\" $LOG"
sign_cmd "$ABS_PATH/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libEGL.dylib"
sign_cmd "$ABS_PATH/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libGLESv2.dylib"
sign_cmd "$ABS_PATH/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libswiftshader_libEGL.dylib"
sign_cmd "$ABS_PATH/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libswiftshader_libGLESv2.dylib"
sign_cmd "$ABS_PATH/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libvk_swiftshader.dylib"

# Sign native electron bindings and supplementary binaries
eval "$SIGN_CMD \"$ABS_PATH/Contents/Resources/app/build/usb_bindings.node\" $LOG"
eval "$SIGN_CMD \"$ABS_PATH/Contents/Resources/app/build/HID.node\" $LOG"
eval "$SIGN_CMD \"$ABS_PATH/Contents/Resources/app/node_modules/keccak/bin/darwin-x64-76/keccak.node\" $LOG"
eval "$SIGN_CMD \"$ABS_PATH/Contents/Resources/app/node_modules/keccak/build/Release/addon.node\" $LOG"
eval "$SIGN_CMD \"$ABS_PATH/Contents/Resources/app/node_modules/keccak/prebuilds/darwin-x64/node.napi.node\" $LOG"
sign_cmd "$ABS_PATH/Contents/Resources/app/build/usb_bindings.node"
sign_cmd "$ABS_PATH/Contents/Resources/app/build/HID.node"
sign_cmd "$ABS_PATH/Contents/Resources/app/node_modules/keccak/bin/darwin-x64-"*"/keccak.node"
sign_cmd "$ABS_PATH/Contents/Resources/app/node_modules/keccak/build/Release/addon.node"
sign_cmd "$ABS_PATH/Contents/Resources/app/node_modules/keccak/prebuilds/darwin-x64/node.napi.node"

# Sign the whole component deeply
eval "$SIGN_CMD \"$ABS_PATH\" $LOG"
sign_cmd "$ABS_PATH"

# Verify the signing
eval "$VERIFY_CMD \"$ABS_PATH\" $LOG"
Expand Down Expand Up @@ -229,60 +232,62 @@ buildElectronApp darwinConfig@DarwinConfig{dcAppName, dcAppNameApp} installerCon
externalYarn :: [FilePath]
externalYarn =
[ "@babel"
, "regenerator-runtime"
, "node-fetch"
, "@trezor"
, "runtypes"
, "parse-uri"
, "randombytes"
, "safe-buffer"
, "base-x"
, "base64-js"
, "bchaddrjs"
, "big-integer"
, "bigi"
, "bignumber.js"
, "bip66"
, "pushdata-bitcoin"
, "bitcoin-ops"
, "typeforce"
, "varuint-bitcoin"
, "bigi"
, "create-hash"
, "merkle-lib"
, "blake2b"
, "nanoassert"
, "blake2b-wasm"
, "bs58check"
, "bs58"
, "base-x"
, "create-hmac"
, "ecurve"
, "wif"
, "ms"
, "keccak"
, "trezor-link"
, "semver-compare"
, "protobufjs-old-fixed-webpack"
, "bs58check"
, "bytebuffer-old-fixed-webpack"
, "long"
, "object.values"
, "call-bind"
, "cashaddrjs"
, "cbor-web"
, "create-hash"
, "create-hmac"
, "cross-fetch"
, "define-properties"
, "object-keys"
, "has"
, "function-bind"
, "ecurve"
, "es-abstract"
, "function-bind"
, "get-intrinsic"
, "has"
, "has-symbols"
, "json-stable-stringify"
, "tiny-worker"
, "hd-wallet"
, "cashaddrjs"
, "big-integer"
, "queue"
, "ieee754"
, "inherits"
, "bchaddrjs"
, "cross-fetch"
, "trezor-connect"
, "js-chain-libs-node"
, "bignumber.js"
, "int64-buffer"
, "call-bind"
, "get-intrinsic"
, "cbor-web"
, "js-chain-libs-node"
, "json-stable-stringify"
, "keccak"
, "long"
, "merkle-lib"
, "ms"
, "nanoassert"
, "node-fetch"
, "object-keys"
, "object.values"
, "parse-uri"
, "protobufjs-old-fixed-webpack"
, "pushdata-bitcoin"
, "queue"
, "randombytes"
, "regenerator-runtime"
, "runtypes"
, "safe-buffer"
, "semver-compare"
, "tiny-worker"
, "trezor-connect"
, "trezor-link"
, "typeforce"
, "varuint-bitcoin"
, "wif"
]
mapM_ (\lib -> do
cptree ("../node_modules" </> lib) ((fromText pathtoapp) </> "Contents/Resources/app/node_modules" </> lib)
Expand All @@ -309,7 +314,9 @@ getBackendVersion (Cardano bridge) = readCardanoVersionFile bridge

makeComponentRoot :: Options -> FilePath -> DarwinConfig -> InstallerConfig -> IO ()
makeComponentRoot Options{oBackend,oCluster} appRoot darwinConfig@DarwinConfig{dcAppName} InstallerConfig{} = do
let dir = appRoot </> "Contents/MacOS"
let
dir :: FilePath
dir = appRoot </> "Contents/MacOS"
dataDir = appRoot </> "Contents/Resources"

echo "Preparing files ..."
Expand Down Expand Up @@ -341,6 +348,20 @@ makeComponentRoot Options{oBackend,oCluster} appRoot darwinConfig@DarwinConfig{d

-- Rewrite libs paths and bundle them
void $ chain (encodeString dir) $ fmap tt [dir </> "cardano-launcher", dir </> "cardano-wallet", dir </> "cardano-node", dir </> "cardano-cli", dir </> "cardano-address" ]
let
sortaMove :: FilePath -> IO ()
sortaMove filename = do
mv (appRoot </> "Contents/Resources/app/build" </> filename) (dir</>filename)
symlink ("../../../MacOS" </> filename) (appRoot </> "Contents/Resources/app/build" </> filename)
mapM_ sortaMove [ "usb_bindings.node" ]
void $ chain (encodeString dir) [ tt $ dir </> "usb_bindings.node" ]
let
sortaMove :: FilePath -> IO ()
sortaMove filename = do
mv (appRoot </> "Contents/Resources/app/build" </> filename) (dir</>filename)
symlink ("../../../MacOS" </> filename) (appRoot </> "Contents/Resources/app/build" </> filename)
mapM_ sortaMove [ "HID.node" ]
void $ chain (encodeString dir) [ tt $ dir </> "HID.node" ]

-- Prepare launcher
de <- testdir (dir </> "Frontend")
Expand Down
33 changes: 22 additions & 11 deletions installers/nix/electron.nix
@@ -1,7 +1,8 @@
{ stdenv, libXScrnSaver, makeWrapper, fetchurl, unzip, atomEnv, libuuid, at-spi2-atk, at_spi2_core }:
{ stdenv, libXScrnSaver, makeWrapper, fetchurl, unzip, atomEnv, libuuid, at-spi2-atk, at_spi2_core, libxshmfence,
libdrm, libxkbcommon, mesa }:

let
version = "4.0.0";
version = "13.1.0";
name = "electron-${version}";

throwSystem = throw "Unsupported system: ${stdenv.hostPlatform.system}";
Expand All @@ -20,19 +21,19 @@ let
src = {
i686-linux = fetchurl {
url = "https://github.com/electron/electron/releases/download/v${version}/electron-v${version}-linux-ia32.zip";
sha256 = "0yv2f7yf6ingjysswpnpnvqsjkdkp2rd4laawhziifzbfjda4yws";
sha256 = "e4d8cc19689b1f9c00894bb776083f8543abeba9203d3297268c1644f1300355";
};
x86_64-linux = fetchurl {
url = "https://github.com/electron/electron/releases/download/v${version}/electron-v${version}-linux-x64.zip";
sha256 = "1kh2jds7jra9f1vcn2z1193cxcyvfxkldim4b9ij7chj9xzxwgln";
sha256 = "6681078971d2e99e9f8b3c598de65869d3596356af901bbbabcc4860c0496bb4";
};
armv7l-linux = fetchurl {
url = "https://github.com/electron/electron/releases/download/v${version}/electron-v${version}-linux-armv7l.zip";
sha256 = "1v492qfdgnj3fks2hrfc9lmsx5a5xk957rvismlpc2mjkjrwx2dq";
sha256 = "ac5a19e31fd83db5775a2af57f742c7b3e5fc4528958329ec3c81f82e7bd611a";
};
aarch64-linux = fetchurl {
url = "https://github.com/electron/electron/releases/download/v${version}/electron-v${version}-linux-arm64.zip";
sha256 = "18vpqif5grvhrkx6h64yzw1pf9013811gzq2qxaj8pzr6lck3irf";
sha256 = "0ed0cc3afae5cc7e1e6c6204866a1cecdf97e0ab658789e8951842bd0d28e1bb";
};
}.${stdenv.hostPlatform.system} or throwSystem;

Expand All @@ -51,17 +52,27 @@ let
$out/lib/electron/electron
wrapProgram $out/lib/electron/electron \
--prefix LD_PRELOAD : ${stdenv.lib.makeLibraryPath [ libXScrnSaver ]}/libXss.so.1
--prefix LD_PRELOAD : ${stdenv.lib.makeLibraryPath [ libXScrnSaver ]}/libXss.so.1 \
--prefix LD_PRELOAD : ${stdenv.lib.makeLibraryPath [ libdrm ]}/libdrm.so.2 \
--prefix LD_PRELOAD : ${stdenv.lib.makeLibraryPath [ libxkbcommon ]}/libxkbcommon.so.0 \
--prefix LD_PRELOAD : ${stdenv.lib.makeLibraryPath [ mesa ]}/libgbm.so.1 \
--prefix LD_PRELOAD : ${stdenv.lib.makeLibraryPath [ libxshmfence ]}/libxshmfence.so.1
'';
};

darwin = {
inherit name version meta;

src = fetchurl {
url = "https://github.com/electron/electron/releases/download/v${version}/electron-v${version}-darwin-x64.zip";
sha256 = "08n3xzgncb2hf645zn8b0rb1izq9pqh3726hf2g4nvrgfllivlg1";
};
src = {
x86_64-darwin = fetchurl {
url = "https://github.com/electron/electron/releases/download/v${version}/electron-v${version}-darwin-x64.zip";
sha256 = "d62a561e80fcbcb0f249e74c487313192451046f288478add65be997793831de";
};
aarch64-darwin = fetchurl {
url = "https://github.com/electron/electron/releases/download/v${version}/electron-v${version}-darwin-arm64.zip";
sha256 = "6da46d2861011263af2953a3e0186735e54708c01c50967ff5f8ed71b73f7fea";
};
}.${stdenv.hostPlatform.system} or throwSystem;

buildInputs = [ unzip ];

Expand Down
5 changes: 3 additions & 2 deletions installers/nix/linux.nix
@@ -1,4 +1,4 @@
{ stdenv, runCommand, writeText, writeScriptBin, electron8
{ stdenv, runCommand, writeText, writeScriptBin, electron
, coreutils, utillinux, procps, cluster
, rawapp, daedalus-bridge, daedalus-installer
, sandboxed ? false
Expand Down Expand Up @@ -28,7 +28,7 @@ let
cd "''${DAEDALUS_DIR}/${cluster}/"
exec ${electron8}/bin/electron --disable-setuid-sandbox --no-sandbox ${rawapp}/share/daedalus "$@"
exec ${electron}/bin/electron --disable-setuid-sandbox --no-sandbox ${rawapp}/share/daedalus "$@"
'';
daedalus = writeScriptBin "daedalus" ''
#!${stdenv.shell}
Expand All @@ -49,6 +49,7 @@ let
mkdir -p "''${DAEDALUS_DIR}/${cluster}/"{Logs/pub,Secrets}
cd "''${DAEDALUS_DIR}/${cluster}/"
export XCURSOR_PATH="/usr/share/icons"
exec ${daedalus-bridge}/bin/cardano-launcher \
--config ${if sandboxed then "/nix/var/nix/profiles/profile-${linuxClusterBinName}/etc/launcher-config.yaml" else "${daedalus-config}/launcher-config.yaml"}
'';
Expand Down
2 changes: 1 addition & 1 deletion netlify.toml
@@ -1,2 +1,2 @@
[build]
environment = { YARN_VERSION = "1.22.4", NODE_VERSION = "12.19.0" }
environment = { YARN_VERSION = "1.22.4", NODE_VERSION = "14.17.0" }
Binary file modified nix/windows-usb-libs.zip
Binary file not shown.

0 comments on commit 0e21735

Please sign in to comment.