[Pkg-javascript-devel] Bug#932956: ITP: node-node-sass -- Wrapper around libsass
Xavier
yadd at debian.org
Mon Aug 12 21:24:58 BST 2019
Le 12/08/2019 à 22:21, Xavier a écrit :
> Le 12/08/2019 à 19:41, Nilesh Patra a écrit :
>>
>>
>>
>> Needed component are: async-foreach, gaze, get-stdin, js-base64,
>> sass-graph, sass-spec, scss-tokenizer, stdout-stream, true-case-path.
>> "in-publish" seems not used
>>
>>
>> I have included them, but on sbuild I get a few lintian errors which I
>> have no idea as to how to resolve.
>>
>> E: node-node-sass: embedded-library usr/lib/x86_64-linux-gnu/nodejs/node-sass/vendor/linux-x64-64/binding.node: libsass
>> 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
>>
>> Here's the complete error log: http://paste.debian.net/1095493/
>> Could you suggest a workaround for it? Also Pirate Praveen suggested
>> removing sass-spec/spec. Should that be done?
>> Your advice would be much appreciated.
>>
>> Regards
>> Nilesh
>
> You miss to remove debian/install and upstream provides a bad "files"
> field. You just have to add a "debian/nodejs/files" file to fix it:
>
> $ git rm debian/install
> $ mkdir debian/nodejs
> $ cat > debian/nodejs/files <<EOF
> binding.gyp
> bin
> package.json
> scripts
> src
> lib
> EOF
Fix:
$ cat > debian/nodejs/files <<EOF
binding.gyp
bin
lib
package.json
scripts
src
vendor
EOF
The only diff with package.json#files is the removal of "test"
> Then your debian/rules must be patched to install using pkg-js-tools
> (else your components are not installed); By the way your debian/install
> was wrong (missing vendor dir at least):
>
> diff --git a/debian/control b/debian/control
> index e69460c..e7dde13 100644
> --- a/debian/control
> +++ b/debian/control
> @@ -12,6 +12,7 @@ Build-Depends:
> , node-gyp (>= 3.8.0)
> , libuv1
> , libuv1-dev
> + , pkg-js-tools (>= 0.8.10)
> Standards-Version: 4.4.0
> Homepage: https://github.com/sass/node-sass
> Vcs-Git: https://salsa.debian.org/js-team/node-node-sass.git
> diff --git a/debian/rules b/debian/rules
> index 8c6c81d..0b1a0d6 100755
> --- a/debian/rules
> +++ b/debian/rules
> @@ -6,15 +6,15 @@
> export NODE_PATH := ${CURDIR}:/usr/share:/usr/include
>
> %:
> - dh $@
> + dh $@ --with nodejs
>
> override_dh_auto_build:
> rm -rf build vendor
> node scripts/build.js --force
>
> -override_dh_install:
> - dh_install
> - find
> debian/node-node-sass/usr/lib/nodejs/node-sass/src/libsass/win -name
> libsass.sln -delete
> - find debian/node-node-sass/usr/lib/nodejs/node-sass/src/libsass
> -name .gitignore -delete
> - find debian/node-node-sass/usr/lib/nodejs/node-sass/src/libsass
> -name .gitattributes -delete
> +override_dh_auto_install:
> + dh_auto_install --buildsystem=nodejs
> + find
> debian/node-node-sass/usr/lib/*/nodejs/node-sass/src/libsass/win -name
> libsass.sln -delete
> + find
> debian/node-node-sass/usr/lib/*/nodejs/node-sass/src/libsass -name
> .gitignore -delete
> + find
> debian/node-node-sass/usr/lib/*/nodejs/node-sass/src/libsass -name
> .gitattributes -delete
> #override_dh_auto_test:
>
>
> pkg-js-tools will test your package during build. This means that you
> have to copy dependencies in build dependencies (debian/control).
> You kept embedded component in binary dependencies, this makes package
> uninstallable (see attached diff)
>
> Then take a look at debian/rules. There is a "rm -rf build vendor" in
> the wrong place. Its place is in a debian/clean file.
>
> Lintian reports a lot of bad files installed by embedded libsass. This
> can be removed in debian/rules
>
> Then package builds.
>
> Next steps:
> - you should never embed a library that already exist in debian. I
> tried to add "--libsass=auto", but then compilation is bad: proved by
> test:
>
> /usr/bin/node: symbol lookup error:
> /.../node-node-sass/vendor/linux-x64-64/binding.node: undefined
> symbol: sass_make_boolean
>
> I need some JS-Team help for this
>
> Cheers,
> Xavier
More information about the Pkg-javascript-devel
mailing list