RavenProject / Ravencoin

Ravencoin Core integration/staging tree
https://www.ravencoin.org
MIT License
1.08k stars 671 forks source link

M1/Aarch64 Mac Native/Universal Binary Requested #1194

Open iamhumanipromise opened 2 years ago

iamhumanipromise commented 2 years ago

The Wallet and miner are currently only Intel-compatible. Requesting a native aarch64/armv8/M1 build for macOS.

cross commented 1 year ago

There is a comment on the most recent release (4.6.1) which says:

There is no OSX build due to Apple SDK restrictions, and the windows files are unsigned.

I was curious to get some more information on that. What are the SDK restrictions affecting building the Raven Core application for Mac?

Chief-Prince-Of-Function commented 1 year ago

From some research into the Apple SDK restrictions I found the App Sore Review Guidelines.

Specifically speaking to crypto wallets one could reference the original ban of them in: Revised 3.1.1: “Apps may not use their own mechanisms to unlock content or functionality, such as license keys, augmented reality markers, QR codes, cryptocurrencies and cryptocurrency wallets, etc.”

However further updates to the guidelines in 3.5.1 shows the following details: 3.1.5 Cryptocurrencies: (i) Wallets: Apps may facilitate virtual currency storage, provided they are offered by developers enrolled as an organization. (ii) Mining: Apps may not mine for cryptocurrencies unless the processing is performed off device (e.g. cloud-based mining). (iii) Exchanges: Apps may facilitate transactions or transmissions of cryptocurrency on an approved exchange, provided they are offered only in countries or regions where the app has appropriate licensing and permissions to provide a cryptocurrency exchange. (iv) Initial Coin Offerings: Apps facilitating Initial Coin Offerings (“ICOs”), cryptocurrency futures trading, and other crypto-securities or quasi-securities trading must come from established banks, securities firms, futures commission merchants (“FCM”), or other approved financial institutions and must comply with all applicable law. (v) Cryptocurrency apps may not offer currency for completing tasks, such as downloading other apps, encouraging other users to download, posting to social networks, etc.

Seems as though pursuit of OSX build should be back on the table.

lsji07 commented 1 year ago

The problem is an automated verifiable reproducible build. Currently the SDK is only licensed as available to apple devs signed in to their specific build machine.

The SDK cannot be used without an apple dev sign in and SDK. The SDK code required to build is not allowed to be seperated from the SDK although some people have been known to do this in violation of the SDK license.

That is the issue with Apple SDK license and getting an automated signed Mac build working. Doing a build seperately is possible but takes time requires the dev to sign their dev keys against their own build and release it BUT that build is not reproducible or verifiable by others for security.

That Apple SDK restriction is warring against the devs desire to provide the best open source verifiable Ravencoin code.

Respectfully we want the automated builds as these add security and trust to the individual users that otherwise may never check the code is as stated.

Chief-Prince-Of-Function commented 1 year ago

"automated signed mac build" Assumed you mean a build that is automated for updates through GitHub or other?

Considering the entirety of the community I assume that others have the Apple Dev credentials. I have them and may continue to do so... Would be helpful to at a minimum get a working Mac build of some sort. Suggest a base build, however I have seen instances of Automatic Code-signing and Notarization for macOS apps using GitHub Actions.

Maybe more to explore, but I am willing to do my part. Great convo start either way.

cross commented 6 months ago

Agreed. I'd like to figure out how to manage this. I'd guess some other projects are doing automated Mac builds, but I can't put examples forward. I wonder if Github would have insights? They know their build systems, and I know they do have Mac testing/building systems. It seems like they should at least have a recipe for how to do such builds, even if they can't perform it themselves.