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

Jérémy Lal kapouer at melix.org
Thu Mar 24 00:11:40 GMT 2022


On Thu, Mar 24, 2022 at 1:05 AM Jérémy Lal <kapouer at melix.org> wrote:

> (please avoid top-posting, it makes the discussion hard to read
> for newcomers - my reply is at the bottom)
>
> On Thu, Mar 24, 2022 at 12:53 AM Bo YU <tsu.yubo at gmail.com> wrote:
>
>> s/check/builtin
>>
>> On Thu, Mar 24, 2022 at 7:50 AM Bo YU <tsu.yubo at gmail.com> wrote:
>>
>>>
>>>
>>> On Fri, Mar 18, 2022 at 4:49 PM Jérémy Lal <kapouer at melix.org> wrote:
>>>
>>>>
>>>>
>>>> On Fri, Mar 18, 2022 at 8:25 AM Bo YU <tsu.yubo at gmail.com> wrote:
>>>>
>>>>> Hi Jérémy,
>>>>>
>>>>> On Wed, Mar 16, 2022 at 7:11 PM Jérémy Lal <kapouer at melix.org> wrote:
>>>>>
>>>>>>
>>>>>>
>>>>>> On Tue, Mar 15, 2022 at 10:46 PM Bo YU <tsu.yubo at gmail.com> wrote:
>>>>>>
>>>>>>> HI
>>>>>>>
>>>>>>> On Mon, Mar 14, 2022 at 11:03 PM Jérémy Lal <kapouer at melix.org>
>>>>>>> wrote:
>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Mon, Mar 14, 2022 at 3:58 PM Bo YU <tsu.yubo at gmail.com> wrote:
>>>>>>>>
>>>>>>>>> Hi Jérémy,
>>>>>>>>>
>>>>>>>>> On Mon, Mar 14, 2022 at 9:27 AM Jérémy Lal <kapouer at melix.org>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>> Package: nodejs
>>>>>>>>>> Followup-For: Bug #994245
>>>>>>>>>> X-Debbugs-Cc: Bo YU <tsu.yubo at gmail.com>
>>>>>>>>>>
>>>>>>>>>> Hi,
>>>>>>>>>>
>>>>>>>>>> recently Bo YU has worked on building nodejs 14 for riscv64.
>>>>>>>>>>
>>>>>>>>>> Bo, you can tell us here what you achieved, and what's blocking
>>>>>>>>>> you right now ?
>>>>>>>>>>
>>>>>>>>>> Good news: I am building the nodejs(16.14) that remove d/control
>>>>>>>>> file about nocheck nodoc  nobuildt tags
>>>>>>>>>  with ` sudo sbuild --arch=riscv64 -d sid-riscv64-sbuild
>>>>>>>>>  --extra-package=/home/vimer/pre_install_debs/`.
>>>>>>>>> Yadd hinted me: I firstly rebuild pkg-js-tools package and yadd
>>>>>>>>> told me that is all arch  and it does not need to
>>>>>>>>> rebuild at all. So I downloaded those special packages form
>>>>>>>>> https://packages.debian.org/ and pass them
>>>>>>>>> with --extar-package argument. At last it can build. But
>>>>>>>>> according to last build experience, It will last 15+ h.
>>>>>>>>> If everything is ok, I will upload the changes file to
>>>>>>>>> experimental tomorrow
>>>>>>>>>
>>>>>>>>
>>>>>>>> It's so simple it's painful :)
>>>>>>>>
>>>>>>>
>>>>>> Well actually i got blinded by that simplicity, see below.
>>>>>>
>>>>>>
>>>>>>
>>>>>>> Bad news:
>>>>>>> In the past two days, I got the same error when rebuild riscv arch
>>>>>>> nodejs package:
>>>>>>>
>>>>>>> if [ -x /<<PKGBUILDDIR>>/./node ] && [ -e /<<PKGBUILDDIR>>/./node ];
>>>>>>> then /<<PKGBUILDDIR>>/./node  debian/doc-generator/apilinks.mjs
>>>>>>> out/doc/apilinks.json lib/_http_agent.js lib/_http_client.js
>>>>>>> lib/_http_common.js lib/_http_incoming.js lib/_http_outgoing.js
>>>>>>> lib/_http_server.js lib/_stream_duplex.js lib/_stream_passthrough.js
>>>>>>> lib/_stream_readable.js lib/_stream_transform.js lib/_stream_wrap.js
>>>>>>> lib/_stream_writable.js lib/_tls_common.js lib/_tls_wrap.js lib/assert.js
>>>>>>> lib/async_hooks.js lib/buffer.js lib/child_process.js lib/cluster.js
>>>>>>> lib/console.js lib/constants.js lib/crypto.js lib/dgram.js
>>>>>>> lib/diagnostics_channel.js lib/dns.js lib/domain.js lib/events.js lib/fs.js
>>>>>>> lib/http.js lib/http2.js lib/https.js lib/inspector.js lib/module.js
>>>>>>> lib/net.js lib/os.js lib/path.js lib/perf_hooks.js lib/process.js
>>>>>>> lib/punycode.js lib/querystring.js lib/readline.js lib/repl.js
>>>>>>> lib/stream.js lib/string_decoder.js lib/sys.js lib/timers.js lib/tls.js
>>>>>>> lib/trace_events.js lib/tty.js lib/url.js lib/util.js lib/v8.js lib/vm.js
>>>>>>> lib/wasi.js lib/worker_threads.js lib/zlib.js; elif [ -x `command -v node`
>>>>>>> ] && [ -e `command -v node` ] && [ `command -v node` ]; then `command -v
>>>>>>> node`  debian/doc-generator/apilinks.mjs out/doc/apilinks.json
>>>>>>> lib/_http_agent.js lib/_http_client.js lib/_http_common.js
>>>>>>> lib/_http_incoming.js lib/_http_outgoing.js lib/_http_server.js
>>>>>>> lib/_stream_duplex.js lib/_stream_passthrough.js lib/_stream_readable.js
>>>>>>> lib/_stream_transform.js lib/_stream_wrap.js lib/_stream_writable.js
>>>>>>> lib/_tls_common.js lib/_tls_wrap.js lib/assert.js lib/async_hooks.js
>>>>>>> lib/buffer.js lib/child_process.js lib/cluster.js lib/console.js
>>>>>>> lib/constants.js lib/crypto.js lib/dgram.js lib/diagnostics_channel.js
>>>>>>> lib/dns.js lib/domain.js lib/events.js lib/fs.js lib/http.js lib/http2.js
>>>>>>> lib/https.js lib/inspector.js lib/module.js lib/net.js lib/os.js
>>>>>>> lib/path.js lib/perf_hooks.js lib/process.js lib/punycode.js
>>>>>>> lib/querystring.js lib/readline.js lib/repl.js lib/stream.js
>>>>>>> lib/string_decoder.js lib/sys.js lib/timers.js lib/tls.js
>>>>>>> lib/trace_events.js lib/tty.js lib/url.js lib/util.js lib/v8.js lib/vm.js
>>>>>>> lib/wasi.js lib/worker_threads.js lib/zlib.js; else echo "No available
>>>>>>> node, cannot run \"node  debian/doc-generator/apilinks.mjs
>>>>>>> out/doc/apilinks.json lib/_http_agent.js lib/_http_client.js
>>>>>>> lib/_http_common.js lib/_http_incoming.js lib/_http_outgoing.js
>>>>>>> lib/_http_server.js lib/_stream_duplex.js lib/_stream_passthrough.js
>>>>>>> lib/_stream_readable.js lib/_stream_transform.js lib/_stream_wrap.js
>>>>>>> lib/_stream_writable.js lib/_tls_common.js lib/_tls_wrap.js lib/assert.js
>>>>>>> lib/async_hooks.js lib/buffer.js lib/child_process.js lib/cluster.js
>>>>>>> lib/console.js lib/constants.js lib/crypto.js lib/dgram.js
>>>>>>> lib/diagnostics_channel.js lib/dns.js lib/domain.js lib/events.js lib/fs.js
>>>>>>> lib/http.js lib/http2.js lib/https.js lib/inspector.js lib/module.js
>>>>>>> lib/net.js lib/os.js lib/path.js lib/perf_hooks.js lib/process.js
>>>>>>> lib/punycode.js lib/querystring.js lib/readline.js lib/repl.js
>>>>>>> lib/stream.js lib/string_decoder.js lib/sys.js lib/timers.js lib/tls.js
>>>>>>> lib/trace_events.js lib/tty.js lib/url.js lib/util.js lib/v8.js lib/vm.js
>>>>>>> lib/wasi.js lib/worker_threads.js lib/zlib.js\""; exit 1; fi;
>>>>>>> node:internal/errors:464
>>>>>>>     ErrorCaptureStackTrace(err);
>>>>>>>     ^
>>>>>>>
>>>>>>> Error [ERR_MODULE_NOT_FOUND]: Cannot find module
>>>>>>> '/<<PKGBUILDDIR>>/deps/acorn/acorn/dist/acorn.mjs' imported from
>>>>>>> /<<PKGBUILDDIR>>/debian/doc-generator/apilinks.mjs
>>>>>>>     at new NodeError (node:internal/errors:371:5)
>>>>>>>     at finalizeResolution (node:internal/modules/esm/resolve:418:11)
>>>>>>>     at moduleResolve (node:internal/modules/esm/resolve:981:10)
>>>>>>>     at defaultResolve (node:internal/modules/esm/resolve:1078:11)
>>>>>>>     at ESMLoader.resolve (node:internal/modules/esm/loader:530:30)
>>>>>>>     at ESMLoader.getModuleJob
>>>>>>> (node:internal/modules/esm/loader:251:18)
>>>>>>>     at ModuleWrap.<anonymous>
>>>>>>> (node:internal/modules/esm/module_job:79:40)
>>>>>>>     at link (node:internal/modules/esm/module_job:78:36) {
>>>>>>>   code: 'ERR_MODULE_NOT_FOUND'
>>>>>>> }
>>>>>>> make[3]: *** [Makefile:726: out/doc/apilinks.json] Error 1
>>>>>>> make[2]: *** [Makefile:686: doc-only] Error 2
>>>>>>> make[2]: Leaving directory '/<<PKGBUILDDIR>>'
>>>>>>> make[1]: *** [debian/rules:249: override_dh_auto_build-indep] Error 2
>>>>>>> make[1]: Leaving directory '/<<PKGBUILDDIR>>'
>>>>>>> make: *** [debian/rules:186: binary] Error 2
>>>>>>> dpkg-buildpackage: error: debian/rules binary subprocess returned
>>>>>>> exit status 2
>>>>>>>
>>>>>>> --------------------------------------------------------------------------------
>>>>>>> Build finished at 2022-03-15T18:52:50Z
>>>>>>>
>>>>>>> Was I missing the dependencies?
>>>>>>>
>>>>>>
>>>>>> I repeat that to bootstrap nodejs you need to build first the
>>>>>> arch-dependent packages (nodejs, libnode..)
>>>>>> --build=any
>>>>>> DEB_BUILD_PROFILES="nodoc nocheck nobuiltin"
>>>>>>
>>>>> let me just clarify. First  I git clone nodejs from salsa && git
>>>>> checkout master-16.x
>>>>> `dpkg-buildpackage --build=any` (with DEB_BUILD_PROFILES="nodoc
>>>>> nocheck nobuiltin"). I am not sure whether
>>>>> to fix d/control file.
>>>>>
>>>>
>>>>
>>> Yes, the command is
>>>> DEB_BUILD_PROFILES="nodoc nocheck nobuiltin"  dpkg-buildpackage
>>>> --build=any
>>>>
>>>
> Hi,
>> After several times build fails about (on riscv hardware):
>>  collect2: fatal error: ld terminated with signal 9 [Killed]
>> compilation terminated.
>>
>
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-javascript-devel/attachments/20220324/02ae6abc/attachment.htm>


More information about the Pkg-javascript-devel mailing list