Node: Node 6.5.0 compilation fails on Debian Jessie with non ascii pathes

Created on 4 Sep 2016  Â·  15Comments  Â·  Source: nodejs/node

Renaming the path fixed the issue but thought you would like to know it:

# uname -a    
Linux host 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt20-1+deb8u4 (2016-02-29) x86_64 GNU/Linux

# make
make -C out BUILDTYPE=Release V=1
make[1]: Entering directory '/home/nfroidure/Téléchargements/node-v6.5.0/out'
  touch 0390905dc0aa65572cf4df45f1cf6df516177078.intermediate
  LD_LIBRARY_PATH=/home/nfroidure/Téléchargements/node-v6.5.0/out/Release/lib.host:/home/nfroidure/Téléchargements/node-v6.5.0/out/Release/lib.target:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; cd ../deps/v8_inspector/third_party/v8_inspector/platform/v8_inspector; mkdir -p /home/nfroidure/Téléchargements/node-v6.5.0/out/Release/obj/gen/blink/platform/v8_inspector/public/protocol /home/nfroidure/Téléchargements/node-v6.5.0/out/Release/obj/gen/blink/platform/v8_inspector/protocol; python ../inspector_protocol/CodeGenerator.py --protocol js_protocol.json --string_type String16 --export_macro PLATFORM_EXPORT --output_dir "/home/nfroidure/Téléchargements/node-v6.5.0/out/Release/obj/gen/blink/platform/v8_inspector/protocol" --output_package platform/v8_inspector/protocol --exported_dir "/home/nfroidure/Téléchargements/node-v6.5.0/out/Release/obj/gen/blink/platform/v8_inspector/public/protocol" --exported_package platform/v8_inspector/public/protocol
Traceback (most recent call last):
  File "../inspector_protocol/CodeGenerator.py", line 415, in <module>
    if up_to_date():
  File "../inspector_protocol/CodeGenerator.py", line 116, in up_to_date
    paths = [os.path.join(output_dirname, name + ".h"), os.path.join(output_dirname, name + ".cpp")]
  File "/usr/lib/python2.7/posixpath.py", line 80, in join
    path += '/' + b
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 17: ordinal not in range(128)
deps/v8_inspector/third_party/v8_inspector/platform/v8_inspector/protocol_sources.target.mk:16: recipe for target '0390905dc0aa65572cf4df45f1cf6df516177078.intermediate' failed
make[1]: *** [0390905dc0aa65572cf4df45f1cf6df516177078.intermediate] Error 1
rm 0390905dc0aa65572cf4df45f1cf6df516177078.intermediate
make[1]: Leaving directory '/home/nfroidure/Téléchargements/node-v6.5.0/out'
Makefile:66: recipe for target 'node' failed
make: *** [node] Error 2

build inspector

Most helpful comment

@nfroidure works if you move it out of the Téléchargements folder, right?

$ mv ~/Téléchargements/node-6.5.0 ~/node-6.5.0 && make -C ~/node-6.5.0

All 15 comments

What does executing locale show?

Looks like $path might be a suspect: /home/nfroidure/Téléchargements/node-v6.5.0/out.

I can reproduce locally -- will look at making a patch

@mscdex

#locale
LANG=fr_FR.utf8
LANGUAGE=
LC_CTYPE=fr_FR.utf8
LC_NUMERIC="fr_FR.utf8"
LC_TIME="fr_FR.utf8"
LC_COLLATE="fr_FR.utf8"
LC_MONETARY="fr_FR.utf8"
LC_MESSAGES="fr_FR.utf8"
LC_PAPER="fr_FR.utf8"
LC_NAME="fr_FR.utf8"
LC_ADDRESS="fr_FR.utf8"
LC_TELEPHONE="fr_FR.utf8"
LC_MEASUREMENT="fr_FR.utf8"
LC_IDENTIFICATION="fr_FR.utf8"
LC_ALL=

@nfroidure works if you move it out of the Téléchargements folder, right?

$ mv ~/Téléchargements/node-6.5.0 ~/node-6.5.0 && make -C ~/node-6.5.0

@jbergstroem thought so cause compilation looked to continue but it failed too finally:

make -C out BUILDTYPE=Release V=1
make[1]: Entering directory '/home/nfroidure/projects/node/out'
  touch 0390905dc0aa65572cf4df45f1cf6df516177078.intermediate
  LD_LIBRARY_PATH=/home/nfroidure/Téléchargements/node-v6.5.0/out/Release/lib.host:/home/nfroidure/Téléchargements/node-v6.5.0/out/Release/lib.target:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; cd ../deps/v8_inspector/third_party/v8_inspector/platform/v8_inspector; mkdir -p /home/nfroidure/Téléchargements/node-v6.5.0/out/Release/obj/gen/blink/platform/v8_inspector/public/protocol /home/nfroidure/Téléchargements/node-v6.5.0/out/Release/obj/gen/blink/platform/v8_inspector/protocol; python ../inspector_protocol/CodeGenerator.py --protocol js_protocol.json --string_type String16 --export_macro PLATFORM_EXPORT --output_dir "/home/nfroidure/Téléchargements/node-v6.5.0/out/Release/obj/gen/blink/platform/v8_inspector/protocol" --output_package platform/v8_inspector/protocol --exported_dir "/home/nfroidure/Téléchargements/node-v6.5.0/out/Release/obj/gen/blink/platform/v8_inspector/public/protocol" --exported_package platform/v8_inspector/public/protocol
Traceback (most recent call last):
  File "../inspector_protocol/CodeGenerator.py", line 415, in <module>
    if up_to_date():
  File "../inspector_protocol/CodeGenerator.py", line 116, in up_to_date
    paths = [os.path.join(output_dirname, name + ".h"), os.path.join(output_dirname, name + ".cpp")]
  File "/usr/lib/python2.7/posixpath.py", line 80, in join
    path += '/' + b
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 17: ordinal not in range(128)
deps/v8_inspector/third_party/v8_inspector/platform/v8_inspector/protocol_sources.target.mk:16: recipe for target '0390905dc0aa65572cf4df45f1cf6df516177078.intermediate' failed
make[1]: *** [0390905dc0aa65572cf4df45f1cf6df516177078.intermediate] Error 1
rm 0390905dc0aa65572cf4df45f1cf6df516177078.intermediate
make[1]: Leaving directory '/home/nfroidure/projects/node/out'
Makefile:66: recipe for target 'node' failed
make: *** [node] Error 2

@nfroidure could you run make clean && ./configure between runs just to make sure?

➜  backend git:(master) ✗ python --version
Python 2.7.9
➜  backend git:(master) ✗ make -v         
GNU Make 4.0
Construit pour x86_64-pc-linux-gnu
Copyright (C) 1988-2013 Free Software Foundation, Inc.
Licence GPLv3+ : GNU GPL version 3 ou ultérieure <http://gnu.org/licenses/gpl.html>
Ceci est un logiciel libre : vous ĂȘtes autorisĂ© Ă  le modifier et Ă  la redistribuer.
Il ne comporte AUCUNE GARANTIE, dans la mesure de ce que permet la loi.
➜  backend git:(master) ✗ gcc -v     
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.9/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.9.2-10' --with-bugurl=file:///usr/share/doc/gcc-4.9/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.9 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.9 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.9-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.9-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.9-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --with-arch-32=i586 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.9.2 (Debian 4.9.2-10) 

@jbergstroem sure, may take a while before i can give you the result.

@nfroidure just checking in. Did it finish?

I had the same error with v 7.8.0. Move node folder out of Téléchargement directory and launch make clean && ./configure resolve it.
But you should fix this issue, as identifying the problem is not trivial.

identifying the problem is not trivial.

See if configure --without-intl helps, I know the scripts that build ICU are path sensitive

Yeah this works too.

Sorry, just figured out I didn't answer you. It worked by moving to another folder without special chars.

It seems like https://github.com/nodejs/node/issues/14336 is a good tracking issue for this. There's now a doc note about this but also any other changes are likely to come out of a single issue. I'm going to go ahead and close this but feel free to follow the other issue for any updates. Thanks!

Was this page helpful?
0 / 5 - 0 ratings