-
Notifications
You must be signed in to change notification settings - Fork 53
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
CI: build SSR on Windows #352
base: master
Are you sure you want to change the base?
Conversation
e945500
to
b400b99
Compare
I briefly tried some of these executables after starting JACK. Either by running from the file explorer or via PowerShell, I didn't get any reaction what so ever. |
It might be an issue with QT, it was super hard to get running on windows, as it doesn't complain but just wouldn't start. There are quite a few required extra flags and packages, such as the platform support libs. Could you try to compile without GUI, would that at least give a reaction? |
Thanks for testing! I expected something to be wrong, because the files are too small. And thanks for the suggestion to disable the GUI, here are the artifacts without GUI: https://github.com/SoundScapeRenderer/ssr/actions/runs/5204312742?pr=352 |
I might have to use Now each Maybe we can get them smaller, as @chris-hld mentioned in #351 (comment)? |
Quickly tried, executed via double click from file explorer, getting the following three errors. |
Thanks for testing! Those error messages look reasonable. I guess those DLLs exist on the build server, but the CI is only uploading the EXE files. I would hope that the NSIS installer will take care of copying those DLL somehow ... @chris-hld is this true? I have worked a bit more on this and I have implemented a All directory names can of course be changed if necessary. NSIS should already be installed on the MSYS2 system. @chris-hld Would you like to try adding your installer setup from #351? |
No, I don't think that's possible. NSIS is really just a way of compressing specified binaries to a single installer, plus maybe some extra checks etc. There seems to be an alternative for MSYS2 |
I'm not sure if that's true. I don't really know any of this, but I do know that we are using MSYS2 to compile our Pd externals and they seem to work fine, and they don't have any strange MSYS2 dependencies. Their dependencies are collected here: ssr/.github/workflows/pd-externals.yml Line 127 in 4d9981d
... which uses this: https://git.iem.at/pd/iem-ci/-/blob/main/localdeps/localdeps.win.sh ... which in turn uses ntldd
I don't understand the comment that suggests using MINGW64 (msys2/MINGW-packages#5204 (comment)), because this somehow seems to be already used within MSYS2. Although nowadays using UCRT64 seems to be preferred: https://github.com/msys2/setup-msys2#msystem (that's why I'm using it here, but I can switch to MINGW64, if that turns out to work better). I'll try if I can get the necessary files from |
Ok, that might be worth a try! |
In 637f99e, I have used This includes |
I tried the following two executables. I had to run them via PowerShell, since running them via double click immediately closes the opened terminal without a chance to see the error message. This behavior should be improved somehow, so that a naive Windows user is not entirely lost with what might be going wrong.
For the latter, there is a problem with the path of the resource files. They are located in
|
just to chime in: in my experience, the if some binary loads optional functionality via plugins, this method is bound to fail, that's why it doesn't include Qt platform plugins or similar. |
Great, it looks like we're making progress! I have used the And I've used The latest artifact should be available shortly at https://github.com/SoundScapeRenderer/ssr/actions/runs/5280859728?pr=352 |
The renderer and GUI now opens via double click in file explorer. YAAY. Loading a config file by executing e.g. Even rendering a complex scene file with multiple long BRIRs in |
Thanks @HaHeho for testing, this is great news! I have stripped the .exe files, which makes their size much more manageable (1.5 MB instead of 44 MB). Now everything together is about 90 MB (about 50 MB compressed), which is still quite big, but I guess it's OK for now. The latest artifacts are here: https://github.com/SoundScapeRenderer/ssr/actions/runs/5299076783/jobs/9591819774?pr=352 I hope they still work. I'm curious whether the browser GUI works as well ... @HaHeho can you please try this (https://ssr.readthedocs.io/en/latest/browser-gui.html) when you have some time? Now the main thing that's missing is the installer. I would like to merge #155 soon and then make a new SSR release. If we have an experimental Windows installer already at that point, we can include it, otherwise we can make another release whenever the Windows installer is ready.
I don't know what's the typical solution in this case, but maybe we can configure the installer so that it keeps the terminal open after the SSR is finished? Or we create a batch file that starts the SSR and waits for a key press afterwards? |
I tried the same example as yesterday. As far as I can tell, there was no difference, so they seem to be working fine.
I ran
|
Thanks for testing! It looks like the problem is with serving the files via HTTP, before even trying to connect via WebSocket. I guess It is unfortunate that serving the files doesn't work, but I wouldn't call it a blocker if the WebSocket connection itself works. Can you please try if it works if you open Also, for completeness, it would be interesting to check the FUDI server as well: https://ssr.readthedocs.io/en/latest/network-fudi.html |
Yes, it gave the identical behavior to described above.
Same behaviour, renderer dies without comments.
Same here. After clicking "connect" it shows "WebSocket connection closed. Code: 1006" in the browser.
A quick test with muting and muting a couple of sources as well as setting binaural head rotation and rotation offset, was working as expected. |
Thanks for testing @HaHeho! It looks like both HTTP and WebSocket connections lead to the same error. I have no clue what to do here ... I hope somebody has an idea how to debug this. It's great that the FUDI interface works, though! Both interfaces are based on ASIO, so the socket connections should work fine in general. @chris-hld Did you try this on your MXE-compiled version? |
I have re-based this to the latest SSR release and have added the new ASDF library. Artifacts are here: https://github.com/SoundScapeRenderer/ssr/actions/runs/5490817426?pr=352 |
I don't really have access to a windows machine at the moment, but I thought I tried at some point. It seems that I had to manually set "D_WEBSOCKETPP_CPP11_THREAD_", and I referenced an issue in my CMAKE. |
@mgeier The MXE version websocket works as intended. |
I have installed VirtualBox and tested this with a Windows 11 image. Now an installer is created with CI: https://github.com/SoundScapeRenderer/ssr/actions/runs/6317485071?pr=352 Installing and uninstalling works smoothly, and I can start the SSR via the start menu links. I could also reproduce the problem with the WebSocket interface: on any connection attempt the SSR crashes without any error message.
Yes, thanks, I have also found that by reading the source code. Without it, it wouldn't compile.
It's good to know that it works when cross-compiling, now we only have to find out how to make it work when compiling with MSYS2. |
For now this is just an experiment to check whether it's possible to compile the SSR with MSYS2.
This is already building
.exe
files (see e.g. artifacts at https://github.com/SoundScapeRenderer/ssr/actions/runs/5191333285), but I don't expect them to actually work. I guess some dependencies will be missing.For this to be usable, the following steps would have to be completed:
There are more things to do, but I think those can be done at a later point (in separate PRs), once we know that everything else works:
Several of those things are already done in #351.