Skip to content

Commit

Permalink
[DDW-745] Added darwin arm64 support
Browse files Browse the repository at this point in the history
  • Loading branch information
danielmain committed Sep 23, 2021
1 parent 4e7733c commit a7ba27a
Show file tree
Hide file tree
Showing 10 changed files with 31 additions and 8 deletions.
7 changes: 7 additions & 0 deletions .buildkite/pipeline.yml
Expand Up @@ -8,6 +8,13 @@ steps:
agents:
queue: daedalus
system: x86_64-darwin
- label: 'daedalus-arm64-darwin'
command: 'scripts/build-installer-unix.sh --build-id $BUILDKITE_BUILD_NUMBER'
env:
NIX_SSL_CERT_FILE: /nix/var/nix/profiles/default/etc/ssl/certs/ca-bundle.crt
agents:
queue: daedalus
system: arm64-darwin
- label: 'daedalus-x86_64-linux-nix'
command: 'scripts/build-installer-nix.sh $BUILDKITE_BUILD_NUMBER'
agents:
Expand Down
1 change: 1 addition & 0 deletions CHANGELOG.md
Expand Up @@ -4,6 +4,7 @@

### Features

- Support of apple arm64 chip ([PR ](https://github.com/input-output-hk/daedalus/pull/))
- Implemented static screens for signing dApp interaction transactions ([PR 2626](https://github.com/input-output-hk/daedalus/pull/2626))

### Fixes
Expand Down
4 changes: 4 additions & 0 deletions default.nix
Expand Up @@ -47,8 +47,12 @@ let
buildNumSuffix = if buildNum == null then "" else ("-${builtins.toString buildNum}");
throwSystem = throw "Unsupported system: ${pkgs.stdenv.hostPlatform.system}";
ostable.x86_64-windows = "windows";
ostable.arm64-windows = "windows-arm";
ostable.x86_64-linux = "linux";
ostable.aarch64-linux = "linux-arm";
ostable.x86_64-darwin = "macos64";
ostable.arm64-darwin = "macos64-arm";

packages = self: {
inherit cluster pkgs version target nodeImplementation;
cardanoLib = localLib.iohkNix.cardanoLib;
Expand Down
2 changes: 1 addition & 1 deletion installers/Installer.hs
Expand Up @@ -46,5 +46,5 @@ genSignedInstaller os options'= do
export "NETWORK" (clusterNetwork $ oCluster options')
case os of
Linux64 -> putStrLn ("Use default.nix, please." :: String)
Macos64 -> MacInstaller.main options'
Macos64 -> MacInstaller.main options'
Win64 -> WindowsInstaller.main options'
2 changes: 2 additions & 0 deletions installers/Spec.hs
Expand Up @@ -50,7 +50,9 @@ macBuildSpec = do
liftIO $ do
withDir installersDir $ do
mktree "../release/darwin-x64/Daedalus-darwin-x64/Daedalus.app/Contents/Resources/app"
mktree "../release/darwin-arm64/Daedalus-darwin-arm64/Daedalus.app/Contents/Resources/app"
writeFile "../release/darwin-x64/Daedalus-darwin-x64/Daedalus.app/Contents/Resources/app/package.json" "{}"
writeFile "../release/darwin-arm64/Daedalus-darwin-arm64/Daedalus.app/Contents/Resources/app/package.json" "{}"
Mac.main opts

-- there should be an installer file at the end
Expand Down
2 changes: 2 additions & 0 deletions installers/common/MacInstaller.hs
Expand Up @@ -150,8 +150,10 @@ sign_cmd "$ABS_PATH/Contents/Frameworks/Electron Framework.framework/Versions/A/
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/bin/darwin-arm64-"*"/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_cmd "$ABS_PATH/Contents/Resources/app/node_modules/keccak/prebuilds/darwin-arm64/node.napi.node"

# Sign the whole component deeply
sign_cmd "$ABS_PATH"
Expand Down
4 changes: 2 additions & 2 deletions installers/nix/electron.nix
Expand Up @@ -12,7 +12,7 @@ let
homepage = https://github.com/electron/electron;
license = licenses.mit;
maintainers = with maintainers; [ travisbhartwell manveru ];
platforms = [ "x86_64-darwin" "x86_64-linux" "i686-linux" "armv7l-linux" "aarch64-linux" ];
platforms = [ "x86_64-darwin" "arm64-darwin" "x86_64-linux" "i686-linux" "armv7l-linux" "aarch64-linux" ];
};

linux = {
Expand Down Expand Up @@ -68,7 +68,7 @@ let
url = "https://github.com/electron/electron/releases/download/v${version}/electron-v${version}-darwin-x64.zip";
sha256 = "d62a561e80fcbcb0f249e74c487313192451046f288478add65be997793831de";
};
aarch64-darwin = fetchurl {
arm64-darwin = fetchurl {
url = "https://github.com/electron/electron/releases/download/v${version}/electron-v${version}-darwin-arm64.zip";
sha256 = "6da46d2861011263af2953a3e0186735e54708c01c50967ff5f8ed71b73f7fea";
};
Expand Down
2 changes: 2 additions & 0 deletions installers/overlays/add-test-stubs.nix
Expand Up @@ -19,7 +19,9 @@ self: super: {
(stub "sudo" "exec $@")
(stub "yarn" ''
mkdir -p dist release/darwin-x64/Daedalus-darwin-x64/Daedalus.app/Contents/MacOS
mkdir -p dist release/darwin-arm64/Daedalus-darwin-arm64/Daedalus.app/Contents/MacOS
touch release/darwin-x64/Daedalus-darwin-x64/Daedalus.app/Contents/MacOS/Daedalus
touch release/darwin-arm64/Daedalus-darwin-arm64/Daedalus.app/Contents/MacOS/Daedalus
touch dist/index.html
'')
(stub "iconutil" "exit 0")
Expand Down
13 changes: 9 additions & 4 deletions release.nix
Expand Up @@ -9,16 +9,21 @@ let
};
shellEnvs = {
linux = import ./shell.nix { system = "x86_64-linux"; autoStartBackend = true; };
linux-arm = import ./shell.nix { system = "aarch64-linux"; autoStartBackend = true; };
darwin = import ./shell.nix { system = "x86_64-darwin"; autoStartBackend = true; };
darwin-arm = import ./shell.nix { system = "arm64-darwin"; autoStartBackend = true; };
};
suffix = if buildNum == null then "" else "-${toString buildNum}";
version = (builtins.fromJSON (builtins.readFile ./package.json)).version;
daedalusPkgsWithSystem = system:
let
table = {
x86_64-linux = import ./. { target = "x86_64-linux"; };
aarch64-linux = import ./. { target = "aarch64-linux"; };
x86_64-windows = import ./. { target = "x86_64-windows"; };
arm64-windows = import ./. { target = "arm64-windows"; };
x86_64-darwin = import ./. { target = "x86_64-darwin"; };
arm64-darwin = import ./. { target = "arm64-darwin"; };
};
in
table.${system};
Expand Down Expand Up @@ -59,10 +64,10 @@ in {
};
} // (builtins.listToAttrs (map (x: { name = x; value = makeJobs x; }) clusters))
// (mapOverArches {
daedalus-installer = [ "x86_64-linux" "x86_64-darwin" ];
yaml2json = [ "x86_64-linux" "x86_64-darwin" ];
daedalus-installer = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "arm64-darwin" ];
yaml2json = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "arm64-darwin" ];
bridgeTable = {
cardano = [ "x86_64-linux" "x86_64-darwin" "x86_64-windows" ];
cardano = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "arm64-darwin" "x86_64-windows" "arm64-windows" ];
};
cardano-node = [ "x86_64-linux" "x86_64-darwin" "x86_64-windows" ];
cardano-node = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "arm64-darwin" "x86_64-windows" "arm64-windows" ];
})
2 changes: 1 addition & 1 deletion shell.nix
Expand Up @@ -62,7 +62,7 @@ let
libusb
] ++ (localLib.optionals autoStartBackend [
daedalusPkgs.daedalus-bridge
]) ++ (if (pkgs.stdenv.hostPlatform.system == "x86_64-darwin") then [
]) ++ (if (pkgs.stdenv.hostPlatform.system == "x86_64-darwin") || (pkgs.stdenv.hostPlatform.system == "arm64-darwin") then [
darwin.apple_sdk.frameworks.CoreServices darwin.apple_sdk.frameworks.AppKit
] else [
daedalusPkgs.electron
Expand Down

0 comments on commit a7ba27a

Please sign in to comment.