<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Mar 11, 2022 at 6:03 AM Yadd <<a href="mailto:yadd@debian.org">yadd@debian.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 11/03/2022 04:29, Bo YU wrote:<br>
> hi<br>
> <br>
> On Thu, Mar 10, 2022 at 6:45 PM Jérémy Lal <<a href="mailto:kapouer@melix.org" target="_blank">kapouer@melix.org</a> <br>
> <mailto:<a href="mailto:kapouer@melix.org" target="_blank">kapouer@melix.org</a>>> wrote:<br>
> <br>
> <br>
> <br>
>     On Thu, Mar 10, 2022 at 11:26 AM Bo YU <<a href="mailto:tsu.yubo@gmail.com" target="_blank">tsu.yubo@gmail.com</a><br>
>     <mailto:<a href="mailto:tsu.yubo@gmail.com" target="_blank">tsu.yubo@gmail.com</a>>> wrote:<br>
> <br>
>         Hi<br>
> <br>
>         On Thu, Mar 10, 2022 at 4:45 PM Jérémy Lal <<a href="mailto:kapouer@melix.org" target="_blank">kapouer@melix.org</a><br>
>         <mailto:<a href="mailto:kapouer@melix.org" target="_blank">kapouer@melix.org</a>>> wrote:<br>
> <br>
> <br>
> <br>
>             On Thu, Mar 10, 2022 at 9:20 AM vimer <<a href="mailto:tsu.yubo@gmail.com" target="_blank">tsu.yubo@gmail.com</a><br>
>             <mailto:<a href="mailto:tsu.yubo@gmail.com" target="_blank">tsu.yubo@gmail.com</a>>> wrote:<br>
> <br>
>                 Hi,<br>
>                 On Thu, Mar 10, 2022 at 09:00:10AM +0100, Jérémy Lal wrote:<br>
>                  >   On Thu, Mar 10, 2022 at 8:56 AM Yadd<br>
>                 <[1]<a href="mailto:yadd@debian.org" target="_blank">yadd@debian.org</a> <mailto:<a href="mailto:yadd@debian.org" target="_blank">yadd@debian.org</a>>> wrote:<br>
>                  ><br>
>                  >     On 10/03/2022 08:19, vimer wrote:<br>
>                  >     > Hi,<br>
>                  >     > According to<br>
>                 [2]<a href="https://github.com/nodejs/build/issues/2876" rel="noreferrer" target="_blank">https://github.com/nodejs/build/issues/2876</a><br>
>                 <<a href="https://github.com/nodejs/build/issues/2876" rel="noreferrer" target="_blank">https://github.com/nodejs/build/issues/2876</a>>, The<br>
>                  >     nodejs<br>
>                  >     > upstream seems have supported riscv64. I want<br>
>                 to help port it to<br>
>                  >     Debian<br>
>                  >     > riscv<br>
>                  >     > if possible.<br>
>                  >     ><br>
>                  >     > But I want to know workflow about porting.<br>
>                  >     ><br>
>                  >     > The nodejs released in Debian Bulleye sid is<br>
>                 12.22.9~dfsg-1, But<br>
>                  >     nodejs<br>
>                  >     > upstream version upon 16 or 17 can support<br>
>                 riscv64. So, the<br>
>                  >     question is:<br>
>                  >     ><br>
>                  >     > Need I gpb import nodejs-16 or 17 in current<br>
>                  >     > [3]<a href="https://salsa.debian.org/js-team/nodejs.git" rel="noreferrer" target="_blank">https://salsa.debian.org/js-team/nodejs.git</a><br>
>                 <<a href="https://salsa.debian.org/js-team/nodejs.git" rel="noreferrer" target="_blank">https://salsa.debian.org/js-team/nodejs.git</a>><br>
>                  >     > or gpb import nodejs latest version from upstream?<br>
>                  >     Hi,<br>
>                  >     don't do that, updating nodejs requires a lot of<br>
>                 job and node-16<br>
>                  >     requires a newer libicu.<br>
>                  ><br>
>                  >   Indeed,<br>
>                  >   You will want to use nodejs 16 from the master-16.x<br>
>                 branch.<br>
>                  >   (it is a gbp layout with master-16.x /<br>
>                 upstream-16.x/pristine-tar<br>
>                  >   branches)<br>
>                  >   From that point, i suggest you setup a riscv64 vm<br>
>                 and try to<br>
>                  >   git-buildpackage node 16 in it.<br>
>                  >   You will probably need to use the "build profiles"<br>
>                 documented<br>
>                  >   in debian/README.source.<br>
>                  >   Also later today i'll push latest 16.x upstream<br>
>                 release in that branch.<br>
>                  >   Feel free to ask more questions.<br>
>                  >   Jérémy<br>
>                 Ok, will do. Thanks all,<br>
>                 BR,<br>
>                 vimer<br>
> <br>
> <br>
>             node 16.14.0 is available on master-16.x branch.<br>
>             Doing a local build right now.<br>
>             The documentation generator prints some errors, nothing to<br>
>             be alarmed of.<br>
>             This is the command i'm using for the build:<br>
>             sbuild -d experimental '--extra-repository=deb<br>
>             <a href="http://deb.debian.org/debian" rel="noreferrer" target="_blank">http://deb.debian.org/debian</a> <<a href="http://deb.debian.org/debian" rel="noreferrer" target="_blank">http://deb.debian.org/debian</a>><br>
>             experimental main' --build-dep-resolver=aspcud<br>
> <br>
>         I use sbuild to build it in riscv64 vm, but get error:<br>
>         sudo sbuild --arch=riscv64 -d sid-riscv64-sbuild<br>
>         ```The following information may help to resolve the situation:<br>
> <br>
>         The following packages have unmet dependencies:<br>
>           sbuild-build-depends-main-dummy : Depends: libicu-dev (>=<br>
>         70.1~) but 67.1-7 is to be installed<br>
>                                             Depends: node-acorn (>=<br>
>         6.2.1~) but it is not going to be installed<br>
>                                             Depends: pkg-js-tools (>=<br>
>         0.8.2~) but it is not going to be installed<br>
>                                             Depends: node-js-yaml (>=<br>
>         4.1.0+dfsg+~4.0.5-6) but it is not going to be installed<br>
>                                             Depends: node-marked (>= 4~)<br>
>         but it is not going to be installed<br>
>                                             Depends: node-highlight.js<br>
>         but it is not going to be installed<br>
>         E: Unable to correct problems, you have held broken packages.<br>
>         apt-get failed.<br>
>         E: Package installation failed<br>
>         ```<br>
>         This may be a common error on Debian riscv arch. I am thinking<br>
>         that I have to build from a package without node-*dependencies?<br>
>         Below is my operations step how to build(please point to me<br>
>         wrong as I am newbie to gbp also):<br>
>         1. git clone<br>
>               git clone git@salsa.debian.org:js-team/nodejs.git<br>
>         2. checkout 16.14<br>
>               git checkout -b main origin/master-16.x<br>
>                git checkout -b upstream origin/upstream-16.x // not need -b<br>
>               git checkout -b pristine-tar origin/pristine-tar // not<br>
>         need -b also<br>
>                git checkout main<br>
>         3. gbp buildpackage --git-pbuilder --git-submodules<br>
>         --git-upstream-branch='upstream/16.14' --git-debian-branch=main<br>
>         --git-no-pristine-tar --git-upstream-tree=tag --git-ignore-new<br>
>         -sa // the step to generate *.orig.tar.gz file. But I do not<br>
>         have the base directory /var/cache/pbuilder/base.cow and it fail<br>
>         at last(*.orig.tzr.gz has been generated)<br>
> <br>
> <br>
>     You can do it a bit simpler because of the debian/gbp.conf file, so<br>
>     no need to rename any branch at all.<br>
>     git checkout master-16.x<br>
>     gbp buildpackage --git-pbuilder --git-ignore-new -sa<br>
> <br>
>         4. execute ` sudo sbuild --arch=riscv64 -d sid-riscv64-sbuild `<br>
>         and got above errors. <br>
> <br>
>         Just as I am editing the email, Suddenly IT occurred to me,<br>
>         maybe the distribution sid should be experimental, right?<br>
> <br>
> <br>
>     yes, as i wrote above, those flags will need to be set (i don't know<br>
>     if gbp pass them along to pbuilder correctly, but that's the idea):<br>
>     -d experimental '--extra-repository=deb <a href="http://deb.debian.org/debian" rel="noreferrer" target="_blank">http://deb.debian.org/debian</a><br>
>     <<a href="http://deb.debian.org/debian" rel="noreferrer" target="_blank">http://deb.debian.org/debian</a>> experimental main'<br>
>     --build-dep-resolver=aspcud<br>
> <br>
>     Also you really will want to use the DEB_BUILD_PROFILES="nodoc<br>
>     nocheck nobuiltin"<br>
> <br>
> I build it(last 17+ h) with your help.<br>
> vimer@debian-local:~/build_test/nodejs/nodejs$ ls ../<br>
> libnode93_16.14.0~dfsg-1_riscv64.deb         <br>
> nodejs_16.14.0~dfsg-1_riscv64.buildinfo<br>
> libnode93-dbgsym_16.14.0~dfsg-1_riscv64.deb <br>
>   nodejs_16.14.0~dfsg-1_riscv64.changes<br>
> libnode-dev_16.14.0~dfsg-1_riscv64.deb       <br>
> nodejs_16.14.0~dfsg-1_riscv64.deb<br>
> master-16.x                                 <br>
>   nodejs-16.14.0~dfsg.obsolete.1646911112.6398954<br>
> nodejs                                       <br>
> nodejs-16.14.0~dfsg.obsolete.1646911132.04706<br>
> nodejs-16.14.0~dfsg                         <br>
>   nodejs_16.14.0~dfsg.orig-node-acorn.tar.xz<br>
> nodejs_16.14.0~dfsg-1_amd64.build            nodejs_16.14.0~dfsg.orig.tar.xz<br>
> nodejs_16.14.0~dfsg-1.debian.tar.xz         <br>
>   nodejs_16.14.0~dfsg.orig-types-node.tar.xz<br>
> nodejs_16.14.0~dfsg-1.dsc                   <br>
>   nodejs-dbgsym_16.14.0~dfsg-1_riscv64.deb<br>
> nodejs_16.14.0~dfsg-1_riscv64.build         <br>
>   nodejs-doc_16.14.0~dfsg-1_all.deb<br>
>   But there are mirror error :<br>
> ···<br>
> dwz: debian/libnode93/usr/lib/riscv64-linux-gnu/libnode.so.93: Too many <br>
> DIEs, not optimizing<br>
> dh_dwz: error: dwz --max-die-limit 100000000 --</blockquote><div><br></div><div>Hi Yadd, Bo,</div><div>That failure is not fatal and happens on some other archs too, you don't really need to fix it.</div><div><br></div><div>Anyway once you built nodejs on riscv64 with DEB_BUILD_PROFILES as above,</div><div>you should now try to build all the build-dependencies of nodejs that themselves depend on nodejs</div><div>(they have the <!nocheck> or <!nodoc> flag in debian/control).</div><div>Once that is done, you can rebuild nodejs without DEB_BUILD_PROFILES at all, and upload it to experimental.</div><div><br></div><div>Jérémy</div><div><br></div><div><br></div><div><br></div></div></div>