@@ -118,10 +118,12 @@ KEYCHAIN="$2"
118118REL_PATH="$3"
119119XML_PATH="$4"
120120ABS_PATH="$(pwd)/$REL_PATH"
121- SIGN_CMD="codesign --verbose=4 --deep --strict --timestamp --options=runtime --entitlements $XML_PATH --sign \"$SIGN_ID\""
121+ TS="$(date +%Y-%m-%d_%H-%M-%S)"
122+ function sign_cmd() {
123+ codesign --verbose=4 --deep --strict --timestamp --options=runtime --entitlements $XML_PATH --sign "$SIGN_ID" "$1" 2>&1 | tee -a /tmp/codesign-output-${TS}.txt
124+ }
122125VERIFY_CMD="codesign --verbose=4 --verify --deep --strict"
123126ENTITLEMENT_CMD="codesign -d --entitlements :-"
124- TS="$(date +%Y-%m-%d_%H-%M-%S)"
125127LOG="2>&1 | tee -a /tmp/codesign-output-${TS}.txt"
126128
127129# Remove symlinks pointing outside of the project build folder:
@@ -133,25 +135,26 @@ eval "security find-identity -v -p codesigning \"$KEYCHAIN\" $LOG"
133135eval "security list-keychains -d user -s \"$KEYCHAIN\" $LOG"
134136
135137# Sign framework executables not signed by the deep sign command:
136- eval "$SIGN_CMD \"$ ABS_PATH/Contents/Frameworks/Squirrel.framework/Versions/A/Resources/ShipIt\" $LOG "
137- eval "$SIGN_CMD \"$ ABS_PATH/Contents/Frameworks/Electron Framework.framework/Versions/Current/Resources/crashpad_handler\" $LOG "
138- eval "$SIGN_CMD \"$ ABS_PATH/Contents/Frameworks/Electron Framework.framework/Versions/Current/Libraries/libnode.dylib\" $LOG "
139- eval "$SIGN_CMD \"$ ABS_PATH/Contents/Frameworks/Electron Framework.framework/Versions/Current/Libraries/libffmpeg.dylib\" $LOG "
138+ sign_cmd "$ABS_PATH/Contents/Frameworks/Squirrel.framework/Versions/A/Resources/ShipIt"
139+ sign_cmd "$ABS_PATH/Contents/Frameworks/Electron Framework.framework/Versions/Current/Resources/crashpad_handler"
140+ sign_cmd "$ABS_PATH/Contents/Frameworks/Electron Framework.framework/Versions/Current/Libraries/libnode.dylib"
141+ sign_cmd "$ABS_PATH/Contents/Frameworks/Electron Framework.framework/Versions/Current/Libraries/libffmpeg.dylib"
140142
141- eval "$SIGN_CMD \"$ABS_PATH/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libEGL.dylib\" $LOG"
142- eval "$SIGN_CMD \"$ABS_PATH/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libGLESv2.dylib\" $LOG"
143- eval "$SIGN_CMD \"$ABS_PATH/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libswiftshader_libEGL.dylib\" $LOG"
144- eval "$SIGN_CMD \"$ABS_PATH/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libswiftshader_libGLESv2.dylib\" $LOG"
143+ sign_cmd "$ABS_PATH/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libEGL.dylib"
144+ sign_cmd "$ABS_PATH/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libGLESv2.dylib"
145+ sign_cmd "$ABS_PATH/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libswiftshader_libEGL.dylib"
146+ sign_cmd "$ABS_PATH/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libswiftshader_libGLESv2.dylib"
147+ sign_cmd "$ABS_PATH/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libvk_swiftshader.dylib"
145148
146149# Sign native electron bindings and supplementary binaries
147- eval "$SIGN_CMD \"$ ABS_PATH/Contents/Resources/app/build/usb_bindings.node\" $LOG "
148- eval "$SIGN_CMD \"$ ABS_PATH/Contents/Resources/app/build/HID.node\" $LOG "
149- eval "$SIGN_CMD \"$ ABS_PATH/Contents/Resources/app/node_modules/keccak/bin/darwin-x64-76 /keccak.node\" $LOG "
150- eval "$SIGN_CMD \"$ ABS_PATH/Contents/Resources/app/node_modules/keccak/build/Release/addon.node\" $LOG "
151- eval "$SIGN_CMD \"$ ABS_PATH/Contents/Resources/app/node_modules/keccak/prebuilds/darwin-x64/node.napi.node\" $LOG "
150+ sign_cmd "$ABS_PATH/Contents/Resources/app/build/usb_bindings.node"
151+ sign_cmd "$ABS_PATH/Contents/Resources/app/build/HID.node"
152+ sign_cmd "$ABS_PATH/Contents/Resources/app/node_modules/keccak/bin/darwin-x64-"*" /keccak.node"
153+ sign_cmd "$ABS_PATH/Contents/Resources/app/node_modules/keccak/build/Release/addon.node"
154+ sign_cmd "$ABS_PATH/Contents/Resources/app/node_modules/keccak/prebuilds/darwin-x64/node.napi.node"
152155
153156# Sign the whole component deeply
154- eval "$SIGN_CMD \"$ ABS_PATH\" $LOG "
157+ sign_cmd "$ABS_PATH"
155158
156159# Verify the signing
157160eval "$VERIFY_CMD \"$ABS_PATH\" $LOG"
@@ -229,60 +232,62 @@ buildElectronApp darwinConfig@DarwinConfig{dcAppName, dcAppNameApp} installerCon
229232 externalYarn :: [FilePath ]
230233 externalYarn =
231234 [ " @babel"
232- , " regenerator-runtime"
233- , " node-fetch"
234235 , " @trezor"
235- , " runtypes"
236- , " parse-uri"
237- , " randombytes"
238- , " safe-buffer"
236+ , " base-x"
237+ , " base64-js"
238+ , " bchaddrjs"
239+ , " big-integer"
240+ , " bigi"
241+ , " bignumber.js"
239242 , " bip66"
240- , " pushdata-bitcoin"
241243 , " bitcoin-ops"
242- , " typeforce"
243- , " varuint-bitcoin"
244- , " bigi"
245- , " create-hash"
246- , " merkle-lib"
247244 , " blake2b"
248- , " nanoassert"
249245 , " blake2b-wasm"
250- , " bs58check"
251246 , " bs58"
252- , " base-x"
253- , " create-hmac"
254- , " ecurve"
255- , " wif"
256- , " ms"
257- , " keccak"
258- , " trezor-link"
259- , " semver-compare"
260- , " protobufjs-old-fixed-webpack"
247+ , " bs58check"
261248 , " bytebuffer-old-fixed-webpack"
262- , " long"
263- , " object.values"
249+ , " call-bind"
250+ , " cashaddrjs"
251+ , " cbor-web"
252+ , " create-hash"
253+ , " create-hmac"
254+ , " cross-fetch"
264255 , " define-properties"
265- , " object-keys"
266- , " has"
267- , " function-bind"
256+ , " ecurve"
268257 , " es-abstract"
258+ , " function-bind"
259+ , " get-intrinsic"
260+ , " has"
269261 , " has-symbols"
270- , " json-stable-stringify"
271- , " tiny-worker"
272262 , " hd-wallet"
273- , " cashaddrjs"
274- , " big-integer"
275- , " queue"
263+ , " ieee754"
276264 , " inherits"
277- , " bchaddrjs"
278- , " cross-fetch"
279- , " trezor-connect"
280- , " js-chain-libs-node"
281- , " bignumber.js"
282265 , " int64-buffer"
283- , " call-bind"
284- , " get-intrinsic"
285- , " cbor-web"
266+ , " js-chain-libs-node"
267+ , " json-stable-stringify"
268+ , " keccak"
269+ , " long"
270+ , " merkle-lib"
271+ , " ms"
272+ , " nanoassert"
273+ , " node-fetch"
274+ , " object-keys"
275+ , " object.values"
276+ , " parse-uri"
277+ , " protobufjs-old-fixed-webpack"
278+ , " pushdata-bitcoin"
279+ , " queue"
280+ , " randombytes"
281+ , " regenerator-runtime"
282+ , " runtypes"
283+ , " safe-buffer"
284+ , " semver-compare"
285+ , " tiny-worker"
286+ , " trezor-connect"
287+ , " trezor-link"
288+ , " typeforce"
289+ , " varuint-bitcoin"
290+ , " wif"
286291 ]
287292 mapM_ (\ lib -> do
288293 cptree (" ../node_modules" </> lib) ((fromText pathtoapp) </> " Contents/Resources/app/node_modules" </> lib)
@@ -309,7 +314,9 @@ getBackendVersion (Cardano bridge) = readCardanoVersionFile bridge
309314
310315makeComponentRoot :: Options -> FilePath -> DarwinConfig -> InstallerConfig -> IO ()
311316makeComponentRoot Options {oBackend,oCluster} appRoot darwinConfig@ DarwinConfig {dcAppName} InstallerConfig {} = do
312- let dir = appRoot </> " Contents/MacOS"
317+ let
318+ dir :: FilePath
319+ dir = appRoot </> " Contents/MacOS"
313320 dataDir = appRoot </> " Contents/Resources"
314321
315322 echo " Preparing files ..."
@@ -341,6 +348,20 @@ makeComponentRoot Options{oBackend,oCluster} appRoot darwinConfig@DarwinConfig{d
341348
342349 -- Rewrite libs paths and bundle them
343350 void $ chain (encodeString dir) $ fmap tt [dir </> " cardano-launcher" , dir </> " cardano-wallet" , dir </> " cardano-node" , dir </> " cardano-cli" , dir </> " cardano-address" ]
351+ let
352+ sortaMove :: FilePath -> IO ()
353+ sortaMove filename = do
354+ mv (appRoot </> " Contents/Resources/app/build" </> filename) (dir</> filename)
355+ symlink (" ../../../MacOS" </> filename) (appRoot </> " Contents/Resources/app/build" </> filename)
356+ mapM_ sortaMove [ " usb_bindings.node" ]
357+ void $ chain (encodeString dir) [ tt $ dir </> " usb_bindings.node" ]
358+ let
359+ sortaMove :: FilePath -> IO ()
360+ sortaMove filename = do
361+ mv (appRoot </> " Contents/Resources/app/build" </> filename) (dir</> filename)
362+ symlink (" ../../../MacOS" </> filename) (appRoot </> " Contents/Resources/app/build" </> filename)
363+ mapM_ sortaMove [ " HID.node" ]
364+ void $ chain (encodeString dir) [ tt $ dir </> " HID.node" ]
344365
345366 -- Prepare launcher
346367 de <- testdir (dir </> " Frontend" )
0 commit comments