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

Jérémy Lal kapouer at melix.org
Fri Mar 25 09:02:39 GMT 2022


On Fri, Mar 25, 2022 at 9:58 AM Bo YU <tsu.yubo at gmail.com> wrote:

>
>
> 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.
>

Yes, they are empty because of
make[1]: awk: No such file or directory

The line that initializes ABI fails.
(It would have been best if it failed sooner...)

Make sure you have /usr/bin/awk



> 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-javascript-devel/attachments/20220325/1d5fc825/attachment.htm>


More information about the Pkg-javascript-devel mailing list