<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 3:26 PM vimer <<a href="mailto:tsu.yubo@gmail.com">tsu.yubo@gmail.com</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">Hi,<br>
On Fri, Mar 11, 2022 at 10:12:49AM +0100, Jérémy Lal wrote:<br>
>   On Fri, Mar 11, 2022 at 6:03 AM Yadd <[1]<a href="mailto:yadd@debian.org" target="_blank">yadd@debian.org</a>> wrote:<br>
><br>
>     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 <[2]<a href="mailto:kapouer@melix.org" target="_blank">kapouer@melix.org</a><br>
>     > <mailto:[3]<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 <[4]<a href="mailto:tsu.yubo@gmail.com" target="_blank">tsu.yubo@gmail.com</a><br>
...<br>
>     ><br>
>     >         E: Unable to correct problems, you have held broken<br>
>     packages.<br>
>     >         apt-get failed.<br>
>     >         E: Package installation failed<br>
>     >         ```<br>
>     >         This may be a common error on Debian riscv arch. I am<br>
>     thinking<br>
>     >         that I have to build from a package without<br>
>     node-*dependencies?<br>
>     >         Below is my operations step how to build(please point to<br>
>     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 //<br>
>     not need -b<br>
>     >               git checkout -b pristine-tar origin/pristine-tar //<br>
>     not<br>
>     >         need -b also<br>
>     >                git checkout main<br>
>     >         3. gbp buildpackage --git-pbuilder --git-submodules<br>
>     >         --git-upstream-branch='upstream/16.14'<br>
>     --git-debian-branch=main<br>
>     >         --git-no-pristine-tar --git-upstream-tree=tag<br>
>     --git-ignore-new<br>
>     >         -sa // the step to generate *.orig.tar.gz file. But I do<br>
>     not<br>
>     >         have the base directory /var/cache/pbuilder/base.cow and<br>
>     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<br>
>     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<br>
>     sid-riscv64-sbuild `<br>
>     >         and got above errors.<br>
>     ><br>
>     >         Just as I am editing the email, Suddenly IT occurred to<br>
>     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<br>
>     don't know<br>
>     >     if gbp pass them along to pbuilder correctly, but that's the<br>
>     idea):<br>
>     >     -d experimental '--extra-repository=deb<br>
>     [18]<a href="http://deb.debian.org/debian" rel="noreferrer" target="_blank">http://deb.debian.org/debian</a><br>
>     >     <[19]<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<br>
>     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<br>
>     many<br>
>     > DIEs, not optimizing<br>
>     > dh_dwz: error: dwz --max-die-limit 100000000 --<br>
><br>
>   Hi Yadd, Bo,<br>
>   That failure is not fatal and happens on some other archs too, you<br>
>   don't really need to fix it.<br>
>   Anyway once you built nodejs on riscv64 with DEB_BUILD_PROFILES as<br>
>   above,<br>
>   you should now try to build all the build-dependencies of nodejs that<br>
>   themselves depend on nodejs<br>
>   (they have the <!nocheck> or <!nodoc> flag in debian/control).<br>
I checked those package with above tags, they are:<br>
     sse2-support [i386]<br>
     curl<br>
     node_acron<br>
     openssl<br>
     pkg_js_tools<br>
     procps<br>
     node-js-yaml<br>
     node-marked<br>
     node-highlights.js<br>
In fact, I must first resolve compiling Node-* package separately, right?<br></blockquote><div><br></div><div>Attention: those packages must be rebuilt with DEB_BUILD_PROFILES="nocheck"</div><div>or else you'll have to face a dependency hell, which i'm not sure you will not fall into anyway :)</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Another question: How can i add  nodejs's build-dependencies package in riscv64<br>
vm as described in previous mail, For example, after building node_acron package<br></blockquote><div><br></div><div>It depends on your tools. --extra-package, --extra-repository are the options you need to look into.</div><div><br></div><div>Jérémy</div></div></div>