[Pkg-javascript-devel] Bug#994245: nodejs: improve bootstraping nodejs

Bo YU tsu.yubo at gmail.com
Fri Mar 25 08:58:10 GMT 2022


On Fri, Mar 25, 2022 at 4:12 PM Jérémy Lal <kapouer at melix.org> wrote:

>
>
> On Fri, Mar 25, 2022 at 7:10 AM Bo YU <tsu.yubo at gmail.com> wrote:
>
>> hi,
>>
>>
>>>>>
>>>>> >   Linking nodejs happens to use a lot of memory: make sure enough
>>>>>>> swap
>>>>>>> >   space is available.
>>>>>>> >   (I had similar crashes with 12GB of RAM and no swap).
>>>>>>> >   Or the linker is broken on riscv64... let's hope it is not.
>>>>>>> >   If you happen to reach the "building deb" stage, you can disable
>>>>>>> >   -dbgsym package creation,
>>>>>>> >   which is very long, with another build profile: noautodbgsym.
>>>>>>> >   DEB_BUILD_PROFILES="nodoc nocheck noautodbgsym
>>>>>>> pkg.nodejs.nobuiltin"
>>>>>>> >   Jérémy
>>>>>>> Today I checkout master-16.x, and I got:
>>>>>>>
>>>>>> sorry, add more useful info:
>>>>>> cc -o
>>>>>> /home/vimer/git/nodejs/out/Release/obj.target/llhttp/deps/llhttp/src/api.o
>>>>>> ../deps/llhttp/src/api.c '-DV8_DEPRECATION_WARNINGS'
>>>>>> '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1'
>>>>>> '-DNODE_OPENSSL_CERT_STORE' '-D__STDC_FORMAT_MACROS' -I../deps/llhttp
>>>>>> -I../deps/llhttp/include  -pthread -Wall -Wextra -Wno-unused-parameter
>>>>>> -fPIC -O3 -fno-omit-frame-pointer  -MMD -MF
>>>>>> /home/vimer/git/nodejs/out/Release/.deps//home/vimer/git/nodejs/out/Release/obj.target/llhttp/deps/llhttp/src/api.o.d.raw
>>>>>> -fPIC -g -fPIC -g -fPIC -g -fPIC -g -c
>>>>>> make[3]: *** No rule to make target
>>>>>> '../deps/acorn/acorn/dist/acorn.js', needed by
>>>>>> '/home/vimer/git/nodejs/out/Release/obj/gen/node_javascript.cc'.  Stop.
>>>>>>
>>>>>
>>>>> Maybe some symlink is missing, am checking it but it will take a while
>>>>> to rebuild.
>>>>>
>>>>
>>>> I pushed a fix for a mistake in debian/rules that happened while
>>>> renaming "nobuiltin".
>>>>
>>>
>>> At least it builds and produces deb packages here on amd64 without
>>> depending on nodejs itself.
>>>
>>> It have finished about compiling phrase, but dh_missing reports error:
>> make[1]: Entering directory '/home/vimer/git/nodejs'
>> make[1]: awk: No such file or directory
>> make[1]: awk: No such file or directory
>> sed 's/@DEB_HOST_MULTIARCH@/riscv64-linux-gnu/g' debian/libnode.install
>> > debian/libnode.install
>> sed -e 's/@DEB_HOST_MULTIARCH@/riscv64-linux-gnu/g' -e 's/@ABI@//g'
>> debian/libnode-dev.links.in > debian/libnode-dev.links
>> cp debian/nodejs.install.in debian/nodejs.install
>> echo "./lib /usr/share/nodejs/node/" >> debian/nodejs.install
>> deps_files="deps/v8/tools/splaytree.mjs deps/v8/tools/codemap.mjs
>> deps/v8/tools/consarray.mjs deps/v8/tools/csvparser.mjs
>> deps/v8/tools/profile.mjs deps/v8/tools/profile_view.mjs
>> deps/v8/tools/logreader.mjs deps/v8/tools/arguments.mjs
>> deps/v8/tools/tickprocessor.mjs deps/v8/tools/sourcemap.mjs
>> deps/v8/tools/tickprocessor-driver.mjs deps/acorn/acorn/dist/acorn.js
>> deps/acorn/acorn-walk/dist/walk.js deps/cjs-module-lexer/lexer.js"; \
>> for src in $deps_files; do \
>>         dst=`dirname $src`; \
>>         echo "./$src /usr/share/nodejs/node/$dst" >>
>> debian/nodejs.install; \
>> done
>> # and add uncompiled acorn
>> echo "./node-acorn/acorn/src /usr/share/nodejs/node/deps/acorn/acorn/" >>
>> debian/nodejs.install
>> echo "./node-acorn/acorn-walk/src
>> /usr/share/nodejs/node/deps/acorn/acorn-walk/" >> debian/nodejs.install
>> dh_install
>> make[1]: Leaving directory '/home/vimer/git/nodejs'
>>    debian/rules override_dh_installdocs
>> make[1]: Entering directory '/home/vimer/git/nodejs'
>> dh_installdocs
>> find debian/nodejs-doc/usr/share/doc/nodejs-doc -name *.json -delete ||
>> true
>> find: 'debian/nodejs-doc/usr/share/doc/nodejs-doc': No such file or
>> directory
>> make[1]: Leaving directory '/home/vimer/git/nodejs'
>>    dh_installchangelogs -a
>>    dh_installman -a
>>    dh_lintian -a
>>    dh_perl -a
>>    dh_link -a
>>    dh_strip_nondeterminism -a
>>    dh_compress -a
>>    dh_fixperms -a
>>    dh_missing -a
>> dh_missing: warning: usr/lib/libnode.so.93 exists in debian/tmp but is
>> not installed to anywhere
>>         The following debhelper tools have reported what they installed
>> (with files per package)
>>          * dh_install: libnode-dev (179), libnode93 (0), nodejs (72),
>> nodejs-doc (0)
>>          * dh_installdocs: libnode-dev (0), libnode93 (0), nodejs (0),
>> nodejs-doc (0)
>>          * dh_installman: libnode-dev (0), libnode93 (0), nodejs (1),
>> nodejs-doc (0)
>>         If the missing files are installed by another tool, please file a
>> bug against it.
>>         When filing the report, if the tool is not part of debhelper
>> itself, please reference the
>>         "Logging helpers and dh_missing" section from the "PROGRAMMING"
>> guide for debhelper (10.6.3+).
>>           (in the debhelper package:
>> /usr/share/doc/debhelper/PROGRAMMING.gz)
>>         Be sure to test with dpkg-buildpackage -A/-B as the results may
>> vary when only a subset is built
>>         If the omission is intentional or no other helper can take care
>> of this consider adding the
>>         paths to debian/not-installed.
>> dh_missing: error: missing files, aborting
>> make: *** [debian/rules:186: binary-arch] Error 255
>> dpkg-buildpackage: error: debian/rules binary-arch subprocess returned
>> exit status 2
>>
>> Will fix debian/not-installed?
>>
>
> ./debian/rules assumes you have /usr/bin/awk which is provided by gawk
>
Ok. I installed gwak by manual, and run `dpkg-buildpackage --build=any
--no-pre-clean`  again.
It reports the same error.
And there is some more info(on IRC):
```that "sed 's/@DEB_HOST_MULTIARCH@/riscv64-linux-gnu/g'
debian/libnode.install > debian/libnode.install" line is obviously
              wrong, and according to the sid rules file the output file
name indeed includes $(ABI)
```
The  libnode.install and libnode93.install file are empty.
Here is the log [0] and d/rules[1]
[0]: https://paste.debian.net/1235527/
[1]:
https://salsa.debian.org/js-team/nodejs/-/blob/master-16.x/debian/rules#L272
Bo

>
>
>> BTW, We have sole cmd execute after dh_missing phrase? if not rebuilt
>> again it will save many times.
>>
>
> Either add --no-pre-clean to dpkg-buildpackage or add
> --debbuildopt="--no-pre-clean" to sbuild.
> That might work...
>
> Jérémy
>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-javascript-devel/attachments/20220325/25ce88d3/attachment.htm>


More information about the Pkg-javascript-devel mailing list