Re: Seems Odd, and Big Question
clang or gcc or free servers donated are irrelevant to an application binary. This is not friends helping out. :)
The license provision of the compiler used is completely irrelevant to the license provisions of the final application, (unless I suppose enforced by the compiler license, but then no one would use it for a paid application).
Also how much you contribute to the source base also does not give any extra “wiggle room” in the eyes of the law, unless that is written in the license agreement of clang (and it isn’t). “I contribute 1 million lines to the free compiler you used, so I get to do what I want with your app" does not fly in court, without a prior *accepted* agreement.
Reverse engineering is reverse engineering, the compiler used or the mac model used or the time of the day for compliing does not change this. so clang or gcc or cl is absolutely irrelevant, none of them link their license to the final output application. You could use visual studio to compile and make a GPL application, and you can use gcc to release a closed source paid application.
For all practical purposes, an application is already in machine code, unlike assembly code, which is still character text.
Rosetta 2 is translation of machine code itself, not a representation of it. So it is very different from the normal use of the word “compiling".
(If they have an intermediate step that dissassembles to text and then passes through a compile/assemble stage the term “compile” might apply, but that is their choice of implementation.)
The input to the system was binary machine code, and this no matter what the intermediate choices, the system is translating between binary machine code.
Legally it would be resonable expectation for an application license to only permit use of the application machine code as provided. Not to translate said machine code.
For example they could be free to charge different prices for different architectures. A translation layer like rosetta would circument this, and can be a breach of the license agreement of the application. Perhaps the developer wants to price the M1 version higher to support the development costs, instead of keeping people using rosetta and the cheaper x64 version.
So Rosetta is most certainly not the same thing as compiling legally. No source license or machine code licence is being provided, and how you fiddle the binary is certainly a legal question different to compiling.