wow.export icon indicating copy to clipboard operation
wow.export copied to clipboard

Finalize cross-platform support

Open Kruithne opened this issue 6 years ago • 10 comments

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-x64 does not run on Ubuntu as it's detected as a "shared application library".
  • [ ] osx-x64 has 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.

Kruithne avatar Oct 31 '19 10:10 Kruithne

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)
 

Kiatra avatar Nov 06 '20 09:11 Kiatra

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.

Kruithne avatar Nov 06 '20 12:11 Kruithne

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.

Kiatra avatar Nov 06 '20 13:11 Kiatra

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.

Kruithne avatar Nov 07 '20 01:11 Kruithne

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):

crash_nw_.txt

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.

Kiatra avatar Nov 07 '20 11:11 Kiatra

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.

Kruithne avatar Nov 07 '20 12:11 Kruithne

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?

Kiatra avatar Nov 07 '20 18:11 Kiatra

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.

Fl0ux avatar Jun 17 '21 14:06 Fl0ux

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 avatar Jun 17 '21 15:06 Kruithne

@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

Fl0ux avatar Jun 17 '21 15:06 Fl0ux