From 57eb1b0c301280f831f6465a83ffec831a8f69c1 Mon Sep 17 00:00:00 2001 From: IlGrandeAnonimo Date: Wed, 13 May 2026 17:11:07 +0200 Subject: [PATCH] fix: simplified rosetta 2 installation status check replaced the old process-based Rosetta 2 installation status check with a faster file-based one which check for `/Library/Apple/usr/libexec/oah/libRosettaRuntime` executable instead --- Mythic/Utilities/Rosetta.swift | 11 +++-------- .../Unified/Sheets/RosettaInstallationView.swift | 2 +- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/Mythic/Utilities/Rosetta.swift b/Mythic/Utilities/Rosetta.swift index 9f512b5c..02c2cc11 100644 --- a/Mythic/Utilities/Rosetta.swift +++ b/Mythic/Utilities/Rosetta.swift @@ -10,14 +10,9 @@ import Foundation final class Rosetta { - static var exists: Bool { // thread-blocking, but ~0.04 sec cpu time - let process: Process = .init() - process.executableURL = .init(filePath: "/usr/bin/pgrep") - process.arguments = ["oahd"] - - let result = try? process.runWrapped() - - return result?.standardOutput?.isEmpty == false + static var isInstalled: Bool { + FileManager.default.isExecutableFile( + atPath: "/Library/Apple/usr/libexec/oah/libRosettaRuntime") } struct AgreementFailure: LocalizedError { diff --git a/Mythic/Views/Unified/Sheets/RosettaInstallationView.swift b/Mythic/Views/Unified/Sheets/RosettaInstallationView.swift index 5d01dd8f..6ddd85d2 100644 --- a/Mythic/Views/Unified/Sheets/RosettaInstallationView.swift +++ b/Mythic/Views/Unified/Sheets/RosettaInstallationView.swift @@ -94,7 +94,7 @@ extension RosettaInstallationView { ProgressView(value: percentageCompletion, total: 100.0) .progressViewStyle(.linear) .task { - guard !Rosetta.exists else { + guard !Rosetta.isInstalled else { viewModel.stepStage(); return }