-
Notifications
You must be signed in to change notification settings - Fork 52
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add warnings on Windows and Linux AArch64 #1279
Conversation
src/main/java/com/gluonhq/substrate/target/LinuxTargetConfiguration.java
Outdated
Show resolved
Hide resolved
src/main/java/com/gluonhq/substrate/target/WindowsTargetConfiguration.java
Outdated
Show resolved
Hide resolved
Hi! Why Windows are not supported yet? Is there any plans, how much time it's will taks to support windows too, like Linux and MacOs? |
Tried windows AMD 64 and it works. |
The fact that there is a PR to warn that Windows is not supported (as opposed to fixing it), is a bad sign. What's the challenge here? |
We don't have vmone for windows yet. If someone can update the Makefile to bundle the jvm libs with jdklibs, we might be able to do a windows release. |
I don't think it's going to come from the community, as vmone doesn't even have a description, etc. It's very frustrating how Windows (and desktop OS's in general) seem to be second-class citizens / afterthoughts. #1241 should not be closed just because Gluon's mobile use-cases are covered, it's misleading and confusing. (of course we're grateful for the efforts in general though!) |
Exactly! |
Everything we released so far comes from "the community". We are not Oracle. We are not Microsoft. We have no VC's. I think we can honestly say that we (Gluon) are part of "the community". In general, I recommend being more friendly towards people who spend most of their spare time on open source projects, without getting paid for it. |
About the reason why we focus on Mobile first: there is no real alternative if you want to run the latest Java on iOS/Android. It is far from simple to provide that. It costs lots of time, and it spans completely different skills (Java/C, compiler understanding, posix structures, build tools) that are hard to find (in an OSS project). |
Sorry if these or other comments are coming across as unfriendly or demanding @johanvos, 100% not the intentional tone from myself anyway (you'd see if it was a voice conversation) -- I do have a habit of typing like a robot when rushing. Although at times frustrated, I am genuinely trying to be constructive and represent the feelings of the desktop-only folks out there (I've chatted to a few of the devs from big JavaFX projects over the years -- they're practically all interested in going native). Regarding this release, I see the main sources of frustration as being primarily a simple communication problem that should be easily solvable. E.g., regarding this/similar releases, it's confusing trying to understand what's going on in the background with Gluon (i.e., outcomes of the conversations that happen elsewhere), and what's on any roadmap or what obstacles are being encountered, or what "not supported yet" actually might mean (i.e., it's being worked on by someone, it's on some roadmap, or it's not and don't expect it, etc). There's lots of knowledge and insights that could be shared, but those of us outside the Gluon inner-circle have no feasible way of figuring out what's going on or what's being worked on by those most knowledgeable. Regarding the rationale on desktop vs mobile priorities -- this is all understandable and I think we've discussed before, but it could just be made clearer about what's being delivered and why -- what works and what doesn't, and what to expect. It doesn't need to be a costly or particularly well-written form of communication. When I said "the community" I of course did not mean to imply Gluon is some separate well-funded entity with deep pockets, but I mean those folks outside of Gluon who have no idea what vmone is, as an example, or what the challenges around Windows/whatever are, how problematic they are or aren't -- the vast majority of folks won't be both competent Java & C engineers and won't know where to begin, but many probably could contribute with some help. But the only source of discussion seems to be via raising issues and chatting such as on this one. It would be great if there was a better way to communicate, share knowledge, encourage and accept contributions -- but I've said that elsewhere on another thread you've responded to. FYI I'm currently a hobbyist when it comes to desktop JavaFX apps, providing (currently) free-to-use apps -- I get no income either despite pumping insane amounts of time into some projects. I'm also not unfamiliar with C / compilers / posix, etc., though I'd dip-in-and-out only as strictly required these-days and by no means an expert, but would have attempted to contribute more if I knew where to begin or that the contributions were on the right track and not already being worked on by someone, etc. |
In Asian countries like Pakistan, most of the people are Windows users, followed by Android users. So my priorities are: Windows -> Android -> Linux -> macOS I have been using JavaFX for almost 10 years and Gluon plugins too from the very beginning. Now when I hear, "Hi! Windows support from Gluon becomes second priority," I think, what's going on? Honestly, after the old javafxmobile-plugin, everything has changed. Now it's like building the technology first then using technology! I am struggling hard to switch to And still, native desktop apps are too challenging, using simple Zulu JDK 17.x for desktop Windows apps. |
As for the communications/discussions: I get the point that it is difficult to understand what is happening and where. One of the things is that Substrate is just one of the components. The codebase of Substrate itself is rather small, it is mainly the glue between different components that are not created to work together. I try to move the focus to OpenJDK/mobile (see https://github.com/openjdk/mobile) and I try to gather more contributions/discussions on the mailinglist there, but it's hard. I get great feedback from OpenJDK developers there, and I'm very happy with that. Currently, we use the artifacts produced by OpenJDK/mobile code/builds, and those are very reproducible, and they don't contain dirty hacks. So that is the first step towards a clear, understandable, documented path -- as the diff with upstream jdk is really small. In the longer term, I think it would be better if we can get the VM files from the source itself (openjdk/jdk), but the current showstopper for this is that we can not use hotspot on iOS. This is a discussion though that I think should happen on the openjdk/mobile list, where we should be able to come to a clean, maintainable solution that works on all platforms (mobile and desktop). Meanwhile, we have Substrate as a project where we try to combine things-that-were-not-designed-to-work-together. That is already a difficult task if we had one target platform (e.g. Android OR iOS), and it becomes harder if we have 2 platforms (Android AND iOS). It's also non-trivial because we need a GraalVM build for Mac to support iOS development, and a Linux build to support Android development. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The choice is clear:
- do we want an up-to-date Java and JavaFX for mobile now?
or - do we want an up-to-date Java and JavaFX for all platforms in an unspecified time in the future?
I vote for 1.
Many of the peoples use JavaFx only for cross-platform development, not for just Mobile only cross-platfom, I think so! Otherwise, for native codding, native method are best choice e.g. Android Studio way for Android Apps and so on (the reason behind we get 100% quick support and lot of community using, can get helps from anywhere)! The main technology which is using is still GraalVM native-image, and GraalVM native-image is not 100% supporting Swing/AWT. Can any one create secessfully GUI Apss with Swing/AWT, as 100'rd of lib are dependent upon it! Then Android part is another issue ast .awt package is not there and so on! So how can someone make secessfully comple GUI apps for mobile! In short GUI cross-platforms must be the target both desktop os and mobile os! As we get benefits that our Apps can run on Desktop OS, so development, and testing becomes easy then ports to mobile as the apps move forward! |
True, but what is missing from the "regular" JavaFX builds and plugins for doing this? I could be missing something, but that is where the default platform builds are for (https://gluonhq.com/products/javafx), in combination with the javafx-maven plugin. |
I was thinking, my Windows Javafx Apps boot-up performance using graalvm native-image. But that dream is going to be ended up! Gluon only for Mobile devices, and Javafx for Desktop one! |
I think the message here is to stick with JDK 17, GraalVM 22 and substrate plugin version 1.0.23 if you want native images. It seems to me that the mobile-first approach was a tactical decision and that there will be a solution in time for Windows/desktop... |
@abhinayagarwal @jperedadnr @johanvos I hace secessfully created vmone for windows! I AM NOT SURE, HOW CAN I TELL THE NECESSORY CHANGES. should i have to fork the repo or what is the next process? |
That's great! Have you tested that your With the latest 1.0.24-SNAPSHOT as is now, have you tried
over some of the Gluon samples (HelloFX, HelloGluon)? Either if that is the case, or if you get some issues that you can't easily fix, you can fork https://github.com/gluonhq/vmone, add a branch with your changes, and create a PR. |
I am working here, after working is my local PC! |
Most of the stuff is going to github actions: |
If you setup a self-hosted Windows runner (it's very easy) and get GitHub Actions to use that instead of a remote Windows, you'd probably be able to figure out what's going wrong or what's missing, much easier. I regretted not doing that much much sooner for my projects. Debugging GitHub remote runners is too painful when you can't simply browse the file system or logs, etc... Just an idea! |
We have a pirvate VPS Linux Hosting at Contabo. A long time ago I alrday have steup custom github runner using VPS hosting. And yeah, it's more easy to do debugging and testing on own customer runnter then Github provided runner. It's a much pain to works with remotly gihtub provided runner. |
@jperedadnr I have almost comple the vmone windows! I need to tests these, any suggstions and review or changes are most welcome! @ALL let test these! |
my staic lib is here I am trying but it's not picking static lib at all, what could be?
|
It's looking for libvmone.a only... and throwing that error if it doesn't exist:
|
As a test (but by no means a solution) rename your lib to "libvmone.a" and see how far it gets? |
You'll need to apply the necessary changes in Substrate to support vmone on Windows, so you can fork, do the changes and then create a PR. To test your local changes, clone both Substrate and GluonFX Maven plugin, and install locally: |
Okey! Let me do it! |
Okey here is the substrate-fork hello-gluon-ci after using custome substrate plugins compile tasks done secessfully without any issue e.g. the error
|
Last time error just solved: gvm-24-4 Now main errors are happening, see error logs: |
@jperedadnr @johanvos @abhinayagarwal @credmond |
The instrusting thing is that using official gluon providing substrate and vmone in linux is still causing issues, maybe something went wrong at gluon side! process-compile-1726375861304.log |
It seems you need to enable sw rendering (for the linux build). As for the link issues on Windows: If I run on macOS
as those symbols are archived in libjdk.a:
So you need to make sure that vmone.lib contains all the object files that come from libjdk.lib. |
@jperedadnr When I try, to see the content of
in this case both any solution? |
Can you try
|
@jperedadnr same issue! |
main issues,
I try almost any possibility using ar or lib but same issue, but on my local pc however i have solve the problem as there is d drive and nested folder i can make easily! |
https://github.com/gluonhq/mobile/releases/tag/gvm-24-1 I alrey have tried, lib.exe way too |
Online at github actions runner (windows container) I am unable to build the vmone.lib, I have metioned the issue above! I am able to build the lib vmone.lib locally. Now I have run the program, but more and more errors are happening let see the logs: |
@abhinayagarwal You are going to close this issue! |
I created an issue to continue the discussion on the correct channel. The comments on the PR will always be available to build things on top of all the work you have already achieved. |
After #1273, Windows and Linux AArch64 are not supported yet.