Finalize cross-platform support
wow.export was originally built with cross-platform support in mind, however due to 99% of the potential users being on Windows, the demand for it wasn't worth the development time of finishing it.
While we're not distributing builds for platforms other than Windows, the support for building them has still been implemented in the form of osx-x64 and linux-x64 build targets.
node ./build.js osx-x64 linux-x64
This issue tracks current known issues regarding non-Windows builds which must be resolved before we start providing them pre-built to users.
- [ ]
linux-x64does not run on Ubuntu as it's detected as a "shared application library". - [ ]
osx-x64has not been tested and will likely explode. - [x] ~~updater/updater.js needs support for process monitoring on non-Windows platforms.~~
- [ ] The updater application has not been tested on non-Windows platforms.
I tried to build if for osx-x64.
First I got an error: No available node version satisfies 'node15' Checking this pkg issue
I switched to node 13 as pkg-fetch has only for a few node versions for the target osx-x64:
npm install -g n
sudo n 13.0
Then the build was successful but the application will crash on start: wow.export.log
When I try to run it with node:
💥 node ./src/app.js
./dev/wow/wow.export/src/app.js:29
const errorMarkup = document.querySelector('noscript').innerHTML;
^
ReferenceError: document is not defined
at crash (/dev/wow/wow.export/src/app.js:29:22)
at process.<anonymous> (/dev/wow/wow.export/src/app.js:70:38)
at process.emit (events.js:210:5)
at process._fatalException (internal/process/execution.js:150:25)
Hey,
The file that you're attempting to execute with node, ./src/app.js is the entry point for the application itself, but it definitely won't run outside of the built nw.js application.
In order to build the application, you need to run ./build.js osx-x64 as exampled in the first post of this issue.
Hi, thanks for the response :)
Yes I have build it with ./build.js osx-x64
That will finish fine.
INFO Building update package...
INFO Update package built (341.29 MB (137.71 MB deflated) in 126 files)
DONE Build osx-x64 completed in 23.596s
DONE 1 builds completed in 23.599s!
But I cant run the build app. See log above. I am happy to assist! So far I am not experienced with node at all or but I am trying to look into it.
Hey,
Once the build has completed successfully, you'll find the compiled application under /bin/<build>, with <build> being the token provided to the build script. In this case, it would be under /bin/osx-x64/.
As a note, the OSX build has never been tested properly, so I can't speak for certain if it will work or not. The automatic update process is definitely not built for anything out of Windows at least.
Hey,
yes I found the app. And as I said added the log above from the crash: crash_osx-x64_wow.export.app.txt
[9764:775:1107/123952.769901:ERROR:component_loader.cc(164)] Failed to parse extension manifest.
Anyway I got it for start via nw. A few tweaks were necessary like adding a profile for it. But I am not sure if it works that way. I got past the manifest issue and got this crash (from the chromium app I guess):
I made a small "Hello World" nwjs app to check if that runs with my setup and it does. The nwjs API's wow.export uses may cause the chromium crash because I am on macos 11.0 beta (bigsur). I will try to get it running on my non beta macos laptop. I still have the pkg-fetch related build issue there. Not sure why.
Hey,
That error trace seems a little damning. I'm not 100% sure, but it looks like there's no GPU support available. That's going to be quite a problem for wow.export, given that we use WebGL2 and a number of other GPU accelerated things.
Hey,
hmm too bad! I got the same issue now on my MacOS Catalina (latest stable). Is there an easy way to test it without the gpu acceleration?
Hello,
I would like to compile it under Linux but here is the error I get :
$ node ./build.js linux-x64
INFO Selected builds: linux-x64
INFO Starting build linux-x64 [guid cd3e0661-c61f-42c4-bca8-ec7cd3c2bf21]...
(node:47217) [DEP0147] DeprecationWarning: In future versions of Node.js, fs.rmdir(path, { recursive: true }) will be removed. Use fs.rm(path, { recursive: true }) instead
(Use `node --trace-deprecation ...` to show where the warning was created)
ERR An unexpected error has halted the build:
ERR Error: ENOENT: no such file or directory, stat '/home/foulques/Téléchargements/wow.export/bin/linux-x64'
I am using node v16.3.0 I changed node-sass version from ^5.0.0 to ^6.0.0 otherwise I have a compile error.
Hey @Fl0ux, we currently don't support building on Linux/Mac OSX. Some of the earlier structure of the project has been built with that in mind, but since there was no demand for it, the development wasn't continued.
Other non-Windows users have reported that it works fine using some form of emulator or virtual machine, if that's a possibility for you. I'm afraid resolving the necessary issues for cross-platform building is not high on the list right now.
@Kruithne thanks for your reply. I used to run it with wine but for some reason it does not want to run anymore. It seems to be related to gpu acceleration, I need to investigate further.
Edit : installing DXVK did the trick