app-sre/visual-qontract

transient dependency to node-sass has a dependency on python 2

erdii opened this issue · 1 comments

erdii commented

I tried to set up a dev environment on my arch based linux machine and ran into this error:

[4/4] Building fresh packages...
[-/3] ⠁ waiting...
[2/3] ⠁ node-sass
error /home/erdii/projects/redhat/app-sre/visual-qontract/node_modules/node-sass: Command failed.
Exit code: 1
Command: node scripts/build.js
Arguments: 
Directory: /home/erdii/projects/redhat/app-sre/visual-qontract/node_modules/node-sass
Output:
Building: /usr/bin/node /home/erdii/projects/redhat/app-sre/visual-qontract/node_modules/node-gyp/bin/node-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library=
gyp info it worked if it ends with ok
gyp verb cli [
gyp verb cli   '/usr/bin/node',
gyp verb cli   '/home/erdii/projects/redhat/app-sre/visual-qontract/node_modules/node-gyp/bin/node-gyp.js',
gyp verb cli   'rebuild',
gyp verb cli   '--verbose',
gyp verb cli   '--libsass_ext=',
gyp verb cli   '--libsass_cflags=',
gyp verb cli   '--libsass_ldflags=',
gyp verb cli   '--libsass_library='
gyp verb cli ]
gyp info using node-gyp@3.8.0
gyp info using node@15.11.0 | linux | x64
gyp verb command rebuild []
gyp verb command clean []
gyp verb clean removing "build" directory
gyp verb command configure []
gyp verb check python checking for Python executable "python2" in the PATH
gyp verb `which` failed Error: not found: python2
gyp verb `which` failed     at getNotFoundError (/home/erdii/projects/redhat/app-sre/visual-qontract/node_modules/which/which.js:13:12)
gyp verb `which` failed     at F (/home/erdii/projects/redhat/app-sre/visual-qontract/node_modules/which/which.js:68:19)
gyp verb `which` failed     at E (/home/erdii/projects/redhat/app-sre/visual-qontract/node_modules/which/which.js:80:29)
gyp verb `which` failed     at /home/erdii/projects/redhat/app-sre/visual-qontract/node_modules/which/which.js:89:16
gyp verb `which` failed     at /home/erdii/projects/redhat/app-sre/visual-qontract/node_modules/isexe/index.js:42:5
gyp verb `which` failed     at /home/erdii/projects/redhat/app-sre/visual-qontract/node_modules/isexe/mode.js:8:5
gyp verb `which` failed     at FSReqCallback.oncomplete (node:fs:200:21)
gyp verb `which` failed  python2 Error: not found: python2
gyp verb `which` failed     at getNotFoundError (/home/erdii/projects/redhat/app-sre/visual-qontract/node_modules/which/which.js:13:12)
gyp verb `which` failed     at F (/home/erdii/projects/redhat/app-sre/visual-qontract/node_modules/which/which.js:68:19)
gyp verb `which` failed     at E (/home/erdii/projects/redhat/app-sre/visual-qontract/node_modules/which/which.js:80:29)
gyp verb `which` failed     at /home/erdii/projects/redhat/app-sre/visual-qontract/node_modules/which/which.js:89:16
gyp verb `which` failed     at /home/erdii/projects/redhat/app-sre/visual-qontract/node_modules/isexe/index.js:42:5
gyp verb `which` failed     at /home/erdii/projects/redhat/app-sre/visual-qontract/node_modules/isexe/mode.js:8:5
gyp verb `which` failed     at FSReqCallback.oncomplete (node:fs:200:21) {
gyp verb `which` failed   code: 'ENOENT'
gyp verb `which` failed }
gyp verb check python checking for Python executable "python" in the PATH
gyp verb `which` succeeded python /usr/bin/python
gyp ERR! configure error 
gyp ERR! stack Error: Command failed: /usr/bin/python -c import sys; print "%s.%s.%s" % sys.version_info[:3];
gyp ERR! stack   File "<string>", line 1
gyp ERR! stack     import sys; print "%s.%s.%s" % sys.version_info[:3];
gyp ERR! stack                       ^
gyp ERR! stack SyntaxError: invalid syntax
gyp ERR! stack 
gyp ERR! stack     at ChildProcess.exithandler (node:child_process:326:12)
gyp ERR! stack     at ChildProcess.emit (node:events:378:20)
gyp ERR! stack     at maybeClose (node:internal/child_process:1067:16)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (node:internal/child_process:301:5)
gyp ERR! System Linux 5.11.2-arch1-1
gyp ERR! command "/usr/bin/node" "/home/erdii/projects/redhat/app-sre/visual-qontract/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
gyp ERR! cwd /home/erdii/projects/redhat/app-sre/visual-qontract/node_modules/node-sass
gyp ERR! node -v v15.11.0
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok

node --version: v15.11.0
npm --version: 7.6.0
available python versions: python 3.9

this seems to be the case because node-sass-chokidar has an outdated node-sass dependency which, in-turn, has tries to use python 2 with node-gyp sass/node-sass#3013

I checked the newest node-sass-chokidar version and they still depend on node-sass 4.x which has this problem.
I'll try to replace node-sass-chokidar with the native js version of dart sass

erdii commented

pr has been merged