Page 1 of 4

Apple M1 Support

PostPosted: Sat Nov 28, 2020 1:04 pm
by swingman
Hi,

I know Servoy are on working their own on fixes and awaiting open-source fixes relating to Mac OS X Big Sur.

What about support for the Apple M1?

My systems are on the following versions:

Servoy 8.2 (Smart Client)
Servoy 2019.12 (NG Client)
Servoy 2020.03 LTS (NG Client)
Servoy 2020.09 (NG Client)

What versions are likely to get updates?
If 2020.03 is line for an update, I will move the older systems to that version.

Thanks,

Re: Apple M1 Support

PostPosted: Sat Nov 28, 2020 6:05 pm
by ROCLASI
Hi Christian,

I though the issue(s) were only with Eclipse. Not with tomcat/servoy server/servoy clents.
Unless I misread.

Re: Apple M1 Support

PostPosted: Sat Nov 28, 2020 6:37 pm
by jcompagner
https://stackoverflow.com/questions/647 ... le-m1-chip

So if you really can install java then i guess it should work. Did any one try that?

Re: Apple M1 Support

PostPosted: Sat Nov 28, 2020 6:42 pm
by ROCLASI
Yeah, I saw that Azul had Apple M1 installers.
https://www.azul.com/downloads/zulu-com ... ackage=jdk
However I have no system to try it on.

Re: Apple M1 Support

PostPosted: Sat Nov 28, 2020 7:44 pm
by jcompagner
right and after that for developer support we need Eclipse to have a build for that (SWT is native)

But running tomcat/server should be doable earlier when a full Java VM is there. But thats i guess not what you will run on it...

Re: Apple M1 Support

PostPosted: Sat Nov 28, 2020 8:45 pm
by swingman
I have i9 and M1 MacBook Pros side by side on my desk.

NG-Client is not an issue. My 8.2 Smart Client appears to run fine, possibly ever so little slower because of Java running on Rosetta 2. But it is useable.
Azul Java 8 installs fine, but does not seem to have Java web start.

I'm more concerned about updates to Servoy developer to take advantage of M1's speed and any issues relating to Mac OS X Big Sur.

I have run some developers for a few minutes under Rosetta 2:
Developer 2020.09 appears to work acceptably, I can launch NG client which performs more or less as normal.
Developer 2020.03.1 crashes loading my project (this may be due to my earlier having tried to start without having a database running)
Developer 2019.12 Can't test because I need a VPN running.
Developer 8.2 becomes unresponsive after loading my project

Re: Apple M1 Support

PostPosted: Sun Nov 29, 2020 12:28 pm
by ROCLASI
Hi Christian,

swingman wrote:Azul Java 8 installs fine, but does not seem to have Java web start.

Have you tried Azul IcedTea-Web? This is supposed to be a Java webstart implementation.
It's available on that same download page.

Re: Apple M1 Support

PostPosted: Sun Nov 29, 2020 11:25 pm
by swingman
Hi Robert,

Getting the old Smart Client to run fully native on M1 is a bit of a distraction as it appears to run fine under Rosetta2.

Anyway, I downloaded it and launched the jnlp, but it failed.
Code: Select all
bin % /bin/sh javaws.sh /Users/chrisb/Downloads/Servoy.jnlp
Warning! JAVA_HOME of /Library/Java/JavaVirtualMachines/zulu8.50.0.1013-ca-jdk8.0.275-macos_aarch64/zulu-8.jdk/Contents/Home/ in play!
warning, using portable itw from /Applications/icedtea-web-image: -Xbootclasspath/a:/Applications/icedtea-web-image/share/icedtea-web/javaws.jar:/Applications/icedtea-web-image/share/icedtea-web/plugin.jar:/Applications/icedtea-web-image/share/icedtea-web/jsobject.jar:/Applications/icedtea-web-image/linux-deps-runtime/tagsoup.jar:/Applications/icedtea-web-image/linux-deps-runtime/js.jar /Applications/icedtea-web-image/bin/javaws.sh /Applications/icedtea-web-image/share/icedtea-web/javaws_splash.png
IcedTea-Web 1.8.3-7
Using JRE version 1.8.0_275-b01 OpenJDK 64-Bit Server VM
Unable to use Firefox's proxy settings. Using "DIRECT" as proxy type.
Warning - your JRE - 1.8.0_275 - does not match requested JRE - 1.8

***

Codebase matches codebase manifest attribute, and application is signed. Continuing. See: http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/security/no_redeploy.html for details.
This application does not specify a Codebase in its manifest. Please verify with the applet's vendor. Continuing. See: http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/security/no_redeploy.html for details.

****

proper APIs such as CTFontCreateUIFontForLanguage() or +[NSFont systemFontOfSize:].
2020-11-29 21:04:30.875 java[74264:997452] CoreText note: Set a breakpoint on CTFontLogSystemFontNameRequest to debug.
2020-11-29 21:04:30.877 java[74264:997452] CoreText note: Client requested name ".SFNS-Bold", it will get Times-Roman rather than the intended font. All system UI font access should be through proper APIs such as CTFontCreateUIFontForLanguage() or +[NSFont systemFontOfSize:].
2020-11-29 21:04:30.913 java[74264:997452] CoreText note: Client requested name ".SFNS-Regular", it will get Times-Roman rather than the intended font. All system UI font access should be through proper APIs such as CTFontCreateUIFontForLanguage() or +[NSFont systemFontOfSize:].
2020-11-29 21:04:30.914 java[74264:997452] CoreText note: Client requested name ".SFNS-Bold", it will get Times-Roman rather than the intended font. All system UI font access should be through proper APIs such as CTFontCreateUIFontForLanguage() or +[NSFont systemFontOfSize:].
Application title was not found in manifest. Check with application vendor
Codebase matches codebase manifest attribute, and application is signed. Continuing. See: http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/security/no_redeploy.html for details.
java.io.IOException: Cannot run program "xdg-desktop-icon": error=2, No such file or directory
   at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
   at net.sourceforge.jnlp.util.XDesktopEntry.installDesktopLauncher(XDesktopEntry.java:400)
   at net.sourceforge.jnlp.util.XDesktopEntry.createDesktopShortcuts(XDesktopEntry.java:330)
   at net.sourceforge.jnlp.runtime.ApplicationInstance.addMenuAndDesktopEntries(ApplicationInstance.java:244)
   at net.sourceforge.jnlp.runtime.ApplicationInstance.initialize(ApplicationInstance.java:148)
   at net.sourceforge.jnlp.Launcher.launchApplication(Launcher.java:532)
   at net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:945)
Caused by: java.io.IOException: error=2, No such file or directory
   at java.lang.UNIXProcess.forkAndExec(Native Method)
   at java.lang.UNIXProcess.<init>(UNIXProcess.java:247)
   at java.lang.ProcessImpl.start(ProcessImpl.java:134)
   at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
   ... 6 more

Starting application [com.servoy.j2db.smart.J2DBClient] ...
netx: Launch Error: Could not launch JNLP file. ( (class com.servoy.j2db.scripting.InstanceJavaMembers cannot access its superclass org.mozilla.javascript.JavaMembers))
net.sourceforge.jnlp.LaunchException: Fatal: Launch Error: Could not launch JNLP file. The application has not been initialized, for more information execute javaws/browser from the command line and send a bug report.
   at net.sourceforge.jnlp.Launcher.launchApplication(Launcher.java:582)
   at net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:945)
Caused by: java.lang.reflect.InvocationTargetException
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
   at java.lang.reflect.Method.invoke(Method.java:498)
   at net.sourceforge.jnlp.Launcher.launchApplication(Launcher.java:576)
   ... 1 more
Caused by: java.lang.IllegalAccessError: class com.servoy.j2db.scripting.InstanceJavaMembers cannot access its superclass org.mozilla.javascript.JavaMembers
   at java.lang.ClassLoader.defineClass1(Native Method)
   at java.lang.ClassLoader.defineClass(ClassLoader.java:757)
   at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
   at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
   at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
   at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
   at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
   at net.sourceforge.jnlp.runtime.JNLPClassLoader.access$1701(JNLPClassLoader.java:105)
   at net.sourceforge.jnlp.runtime.JNLPClassLoader$5.run(JNLPClassLoader.java:1748)
   at net.sourceforge.jnlp.runtime.JNLPClassLoader$5.run(JNLPClassLoader.java:1745)
   at java.security.AccessController.doPrivileged(Native Method)
   at net.sourceforge.jnlp.runtime.JNLPClassLoader.findClass(JNLPClassLoader.java:1744)
   at net.sourceforge.jnlp.runtime.JNLPClassLoader.loadClassExt(JNLPClassLoader.java:1781)
   at net.sourceforge.jnlp.runtime.JNLPClassLoader.loadClass(JNLPClassLoader.java:1581)
   at com.servoy.j2db.smart.J2DBClient.createFormManager(J2DBClient.java:1204)
   at com.servoy.j2db.ClientState.applicationSetup(ClientState.java:291)
   at com.servoy.j2db.smart.J2DBClient.applicationSetup(J2DBClient.java:1016)
   at com.servoy.j2db.smart.J2DBClient.startupApplication(J2DBClient.java:790)
   at com.servoy.j2db.smart.J2DBClient$4.run(J2DBClient.java:698)
   at com.servoy.j2db.smart.J2DBClient.mainImpl(J2DBClient.java:722)
   at com.servoy.j2db.smart.J2DBClient.main(J2DBClient.java:685)
   ... 6 more

Re: Apple M1 Support

PostPosted: Tue Dec 01, 2020 5:11 pm
by sbutler
Looks like Eclipse team is working on it (for developer), but no ETA: https://bugs.eclipse.org/bugs/show_bug.cgi?id=565690

Re: Apple M1 Support

PostPosted: Thu Jan 28, 2021 12:08 pm
by rvanveen
Hi,

I did some testing, and currently on the Apple M1 java 15 isn't working.. when i install adoptOpenJDK11 on my and change the servoy.ini file to point to that java version (so not the default included one)
It will start and rosetta will handle it.. ok performance wise it can be better.. but it will work (i think with java for M1 in the feature it will be really fast)

Then i also tested the Azul build for the apple M1, but that still has some errors in combination with eclipse.. so that will not work yet.

Then there are some other issues.. like the default shipped postgres will also not work (for me), but when running a separated postgres (build for M1) or docker container it runs good.

Re: Apple M1 Support

PostPosted: Thu Jan 28, 2021 5:59 pm
by swingman
Thanks for your testing and the update

Re: Apple M1 Support

PostPosted: Tue Feb 02, 2021 12:41 pm
by huber
+1
swingman wrote:Thanks for your testing and the update

Re: Apple M1 Support

PostPosted: Fri Feb 05, 2021 7:07 pm
by rafig
Hi all,
just spotted this on ProductHunt, 'Apple Silicon M1 as a Service'
https://www.scaleway.com/en/hello-m1/?ref=producthunt
so I guess one could use this to try out Servoy stuff before actually buying an M1 based Mac?? (it's €0.10/hour, minimum of 24 hours, but that's only €2.40, a lot cheaper than buying one & not being able to use/deploy Servoy ;-) )

Rafi

Re: Apple M1 Support

PostPosted: Thu Mar 18, 2021 8:58 pm
by rafig
Well, maybe I should have used used my own post idea, but I decided to splash out on an Apple Mac mini M1 (from Amazon as 19% off & with 5 x 0% payments).
Even after reading this post & the other on Big Sur, I thought I'd try (after updating to latest macOS releases) & install Servoy
Downloaded latest Mac 'application', copied to Applications, launched it and it started up ok (had to get Mac to install Command Line Utilities [Git]), and I let it setup the default Postgres server & databases, then installed the new Sample solution using package manager, launched it, and it ran fine in Safari, so I thought
"Yipee! It works!!"
but on quitting and re-launching it crashed out.
Tried rebooting and it now 'crashes' instantly (that M1 chip is fast ;-) )
So it doesn't work, but I'd like to know why it did on 1st install/run??

Hope it all gets sorted soon as I'd love to use the speed & power of the new chip for my development work...

Re: Apple M1 Support

PostPosted: Wed Mar 24, 2021 6:50 pm
by rafig
It appears that Servoy 2021.03 release candidate 2 (release number 3641) works on Apple M1
see https://forum.servoy.com/viewtopic.php?uid=150&f=1&t=23179&start=0