- Package:
- emscripten
- Source:
- emscripten
- Submitter:
- Ophir Lojkine
- Date:
- 2021-11-17 11:39:04 UTC
- Severity:
- normal
It looks like the emscripten debian package contains a few errors. It does not contain symlinks to the emscripten executables in the emscripten root directory, which makes compilation with emcmake fail. The missing symlinks are:
sudo ln -s /usr/share/emscripten/emcc.py /usr/share/emscripten/emcc && \
sudo ln -s /usr/share/emscripten/emar.py /usr/share/emscripten/emar && \
sudo ln -s /usr/share/emscripten/emranlib.py
/usr/share/emscripten/emranlib && \
sudo ln -s /usr/share/emscripten/em++.py /usr/share/emscripten/em++
The package misses a dependency to the acorn js library, which raises the following error:
Error: Cannot find module 'acorn'
Require stack:
- /usr/share/emscripten/tools/acorn-optimizer.js
at Function.Module._resolveFilename (node:internal/modules/cjs/loader:933:15)
at Function.Module._load (node:internal/modules/cjs/loader:778:27)
at Module.require (node:internal/modules/cjs/loader:1005:19)
at require (node:internal/modules/cjs/helpers:102:18)
at Object.<anonymous> (/usr/share/emscripten/tools/acorn-optimizer.js:1:13)
at Module._compile (node:internal/modules/cjs/loader:1101:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12) {
code: 'MODULE_NOT_FOUND',
requireStack: [ '/usr/share/emscripten/tools/acorn-optimizer.js' ]
}
emcc: error: '/usr/local/bin/node /usr/share/emscripten/tools/acorn-optimizer.js /tmp/emscripten_temp_g7n6r4of/highs.js.pp.js AJSDCE --closureFriendly' failed (1)
Tested while compilinghttps://github.com/ERGO-Code/HiGHS (as a part ofhttps://github.com/lovasoa/highs-js )
emscripten also depends on closure-compiler, which is not listed as a dependency to the emscripten package
There is also a bug in debian's patch to tools/building.py : https://github.com/emscripten-core/emscripten/issues/15545
Quoting Ophir Lojkine (2021-11-16 22:47:04) Please file each issue separately. - Jonas
Hi Ophir, Quoting Ophir Lojkine (2021-11-16 22:30:03) Debian packaging of emscripten provides executables in $PATH. Please try use those. emscripten 2.0.12~dfsg-2 depends on node-acorn, so the cause for above error must be a different one. - Jonas
It's not me who is trying to use the executables from /usr/share/emscripten, it's emscripten itself. Notably, emcmake requires it in /usr/share/emscripten/cmake/Modules/Platform/Emscripten.cmake, which is where I initially encountered the error, but the entire codebase of emscripten expects the executables to be present in EMSCRIPTEN_ROOT, which is /usr/share/emscripten/ in debian. Well, you can try it yourself. The require in /usr/share/emscripten/tools/acorn-optimizer.js fails unless acorn is manually installed to /usr/share/emscripten/node_modules.