vieiro commented on issue #3467: URL: https://github.com/apache/netbeans/issues/3467#issuecomment-1741052884
@neilcsmith-net @tmulle To clarify the situation. 1) `ide/dlight.nativeexecution` uses native binaries [`exechlp`](https://github.com/apache/netbeans/blob/2196e46c1b54df6b4c2c33079ce3f13bef3cea2c/ide/dlight.nativeexecution/external/binaries-list#L17) that are currently hosted in [OSUOSL](https://netbeans.osuosl.org/binaries/4B4DCA62F8C4A1954AE6D286955C36CC50B8CC3A-exechlp-1.2.zip). These are compiled (see the contents of the zip file) for the following platforms and oses: - Linux (ARM 64, Sparc 64, x86, x86_64) - MacOSX (x86, x86_64) - SunOS (sparc, x86, x86_64) - Windows (x86, x86_64) 2) The code for these binaries is actually APLv2, and is hosted in the [ide/dlight.nativeexecution/tools](https://github.com/apache/netbeans/tree/master/ide/dlight.nativeexecution/tools) subdirectory (wich in turn is a NetBeans CND project). 3) This APLv2 source code was compiled ages ago (2012, 2015, 2017, 2022, if the dates in the zip file are correct) for those different platforms. Of course at the time of compilation there was not such a thing as "Apple M1" or "Apple M2" and their variants. 4) NetBeans tries to read this "external" dependency at runtime from this binary dependency. For "Apple M1" and "Apple M2" boxes it cannot find the proper binary, and that's why this fails. To solve the issue at once: a) Compile the binary **once** in the required platform (I assume that if you build this in an Apple M1 box it will work well for Apple M2 boxes) b) Add the binary file (with the exact name that @tmulle recommends, so NetBeans can find it) to the downloaded `external/exechlp-1.2.zip` file. c) Upload the binary file to OSUOSL with the updated SHA1 sum. d) Modify `external/binaries-list` to reflect the proper SHA1 sum. e) Wait for apple to release Apple M3, and goto a). To solve the issue forever: a) Ensure that Apple becomes an sponsor of the Apache Software Foundation :-). b) Ensure that it's a good sponsor :-O. c) Ensure that Apple is a **very good sponsor** and makes some Apple M1 boxes for us (ASF) to build stuff for their customers. d) Install a cross platform compiler (clang/gcc) in the Apple M1 donated by Apple. e) Create a build job that uses this Apple M1 computer to build binaries for Apple M1 boxes. If you've succeeded at d) ensure that the compiler cross compiles for other platforms/boxes. f) Integrate this build-bot in the NetBeans release cycle (github actions, etc.). g) Enjoy a NetBeans release bot that compiles binaries for all Apple architectures. Cheers, Antonio -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected] For further information about the NetBeans mailing lists, visit: https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists
