<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Le lun. 12 août 2019 à 22:25, Xavier <<a href="mailto:yadd@debian.org">yadd@debian.org</a>> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Le 12/08/2019 à 22:21, Xavier a écrit :<br>
> Le 12/08/2019 à 19:41, Nilesh Patra a écrit :<br>
>><br>
>><br>
>><br>
>>     Needed component are: async-foreach, gaze, get-stdin, js-base64,<br>
>>     sass-graph, sass-spec, scss-tokenizer, stdout-stream, true-case-path.<br>
>>     "in-publish" seems not used<br>
>><br>
>><br>
>> I have included them, but on sbuild I get a few lintian errors which I<br>
>> have no idea as to how to resolve.<br>
>><br>
>> E: node-node-sass: embedded-library usr/lib/x86_64-linux-gnu/nodejs/node-sass/vendor/linux-x64-64/binding.node: libsass<br>
>> E: node-node-sass: missing-dependency-on-libc needed by usr/lib/x86_64-linux-gnu/nodejs/node-sass/vendor/linux-x64-64/binding.node<br>
>><br>
>> Here's the complete error log: <a href="http://paste.debian.net/1095493/" rel="noreferrer" target="_blank">http://paste.debian.net/1095493/</a><br>
>> Could you suggest a workaround for it? Also Pirate Praveen suggested<br>
>> removing sass-spec/spec. Should that be done?<br>
>> Your advice would be much appreciated.<br>
>><br>
>> Regards<br>
>> Nilesh<br>
> <br>
> You miss to remove debian/install and upstream provides a bad "files"<br>
> field. You just have to add a "debian/nodejs/files" file to fix it:<br>
> <br>
> $ git rm debian/install<br>
> $ mkdir debian/nodejs<br>
> $ cat > debian/nodejs/files <<EOF<br>
> binding.gyp<br>
> bin<br>
> package.json<br>
> scripts<br>
> src<br>
> lib<br>
> EOF<br>
<br>
Fix:<br>
$ cat > debian/nodejs/files <<EOF<br>
binding.gyp<br>
bin<br>
lib<br>
package.json<br>
scripts<br>
src<br>
vendor<br>
EOF<br>
<br>
The only diff with package.json#files is the removal of "test"<br>
<br>
> Then your debian/rules must be patched to install using pkg-js-tools<br>
> (else your components are not installed); By the way your debian/install<br>
> was wrong (missing vendor dir at least):<br>
> <br>
> diff --git a/debian/control b/debian/control<br>
> index e69460c..e7dde13 100644<br>
> --- a/debian/control<br>
> +++ b/debian/control<br>
> @@ -12,6 +12,7 @@ Build-Depends:<br>
>   , node-gyp (>= 3.8.0)<br>
>   , libuv1<br>
>   , libuv1-dev<br>
> + , pkg-js-tools (>= 0.8.10)<br>
>  Standards-Version: 4.4.0<br>
>  Homepage: <a href="https://github.com/sass/node-sass" rel="noreferrer" target="_blank">https://github.com/sass/node-sass</a><br>
>  Vcs-Git: <a href="https://salsa.debian.org/js-team/node-node-sass.git" rel="noreferrer" target="_blank">https://salsa.debian.org/js-team/node-node-sass.git</a><br>
> diff --git a/debian/rules b/debian/rules<br>
> index 8c6c81d..0b1a0d6 100755<br>
> --- a/debian/rules<br>
> +++ b/debian/rules<br>
> @@ -6,15 +6,15 @@<br>
>  export NODE_PATH := ${CURDIR}:/usr/share:/usr/include<br>
> <br>
>  %:<br>
> -       dh $@<br>
> +       dh $@ --with nodejs<br>
> <br>
>  override_dh_auto_build:<br>
>         rm -rf build vendor<br>
>         node scripts/build.js --force<br>
> <br>
> -override_dh_install:<br>
> -       dh_install<br>
> -       find<br>
> debian/node-node-sass/usr/lib/nodejs/node-sass/src/libsass/win -name<br>
> libsass.sln -delete<br>
> -       find debian/node-node-sass/usr/lib/nodejs/node-sass/src/libsass<br>
> -name .gitignore -delete<br>
> -       find debian/node-node-sass/usr/lib/nodejs/node-sass/src/libsass<br>
> -name .gitattributes -delete<br>
> +override_dh_auto_install:<br>
> +       dh_auto_install --buildsystem=nodejs<br>
> +       find<br>
> debian/node-node-sass/usr/lib/*/nodejs/node-sass/src/libsass/win -name<br>
> libsass.sln -delete<br>
> +       find<br>
> debian/node-node-sass/usr/lib/*/nodejs/node-sass/src/libsass -name<br>
> .gitignore -delete<br>
> +       find<br>
> debian/node-node-sass/usr/lib/*/nodejs/node-sass/src/libsass -name<br>
> .gitattributes -delete<br>
>  #override_dh_auto_test:<br>
> <br>
> <br>
> pkg-js-tools will test your package during build. This means that you<br>
> have to copy dependencies in build dependencies (debian/control).<br>
> You kept embedded component in binary dependencies, this makes package<br>
> uninstallable (see attached diff)<br>
> <br>
> Then take a look at debian/rules. There is a "rm -rf build vendor" in<br>
> the wrong place. Its place is in a debian/clean file.<br>
> <br>
> Lintian reports a lot of bad files installed by embedded libsass. This<br>
> can be removed in debian/rules<br>
> <br>
> Then package builds.<br>
> <br>
> Next steps:<br>
>  - you should never embed a library that already exist in debian. I<br>
>    tried to add "--libsass=auto", but then compilation is bad: proved by<br>
>    test:<br>
> <br>
>      /usr/bin/node: symbol lookup error:<br>
>      /.../node-node-sass/vendor/linux-x64-64/binding.node: undefined<br>
>                                               symbol: sass_make_boolean<br>
> <br>
> I need some JS-Team help for this<br></blockquote><div><br></div><div>Hi,</div><div><br></div><div>i <strike>did</strike> was going to MR a patch for scripts/buid.js to make sure --libsass_ext=auto</div><div>option works as expected.</div><div>The patch is forwarded upstream.</div><div>salsa is too slow right now, so i just attach it, you'll have to quilt import it.</div><div><br></div><div>Jérémy</div><div><br></div></div></div>