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

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
diff --git a/debian/control b/debian/control
index e69460c..bf98157 100644
--- a/debian/control
+++ b/debian/control
@@ -3,15 +3,25 @@ Section: javascript
 Priority: optional
 Maintainer: Debian Javascript Maintainers <pkg-javascript-de...@lists.alioth.debian.org>
 Uploaders: Nilesh <npatra...@gmail.com>
+Testsuite: autopkgtest-pkg-nodejs
 Build-Depends:
  debhelper (>= 12)
  , nodejs (>= 6)
+ , node-chalk (>= 1.1.1) <!nocheck>
  , node-cross-spawn (>= 3.0.0)
+ , node-get-stdin (>= 4.0.1)
+ , node-glob (>= 7.0.3) <!nocheck>
+ , node-lodash (>= 4.17.11) <!nocheck>
+ , node-meow (>= 3.7.0) <!nocheck>
  , node-mkdirp (>= 0.5.1)
  , node-nan (>= 2.13.2)
  , node-gyp (>= 3.8.0)
+ , node-npmlog (>= 4.0.0) <!nocheck>
+ , node-request (>= 2.88.0) <!nocheck>
+ , libsass-dev
  , 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
@@ -21,14 +31,12 @@ Package: node-node-sass
 Architecture: any
 Depends:
  ${misc:Depends}
+ , ${shlibs:Depends}
  , nodejs (>= 6)
- , node-async-foreach (>= 0.1.3)
  , node-chalk (>= 1.1.1)
  , node-cross-spawn (>= 3.0.0)
- , node-gaze (>= 1.0.0)
  , node-get-stdin (>= 4.0.1)
  , node-glob (>= 7.0.3)
- , node-in-publish (>= 2.0.0)
  , node-lodash (>= 4.17.11)
  , node-meow (>= 3.7.0)
  , node-mkdirp (>= 0.5.1)
@@ -36,9 +44,6 @@ Depends:
  , node-gyp (>= 3.8.0)
  , node-npmlog (>= 4.0.0)
  , node-request (>= 2.88.0)
- , node-sass-graph (>= 2.2.4)
- , node-stdout-stream (>= 1.4.0)
- , node-true-case-path (>= 1.0.2)
 Description: Wrapper around libsass
  Node-sass is a library that provides binding for Node.js to LibSass.
  .
diff --git a/debian/install b/debian/install
deleted file mode 100644
index 543d728..0000000
--- a/debian/install
+++ /dev/null
@@ -1,6 +0,0 @@
-binding.gyp usr/lib/nodejs/node-sass/
-bin usr/lib/nodejs/node-sass/
-package.json usr/lib/nodejs/node-sass/
-scripts usr/lib/nodejs/node-sass/
-src usr/lib/nodejs/node-sass/
-lib usr/lib/nodejs/node-sass/
diff --git a/debian/rules b/debian/rules
index 8c6c81d..1ca4b38 100755
--- a/debian/rules
+++ b/debian/rules
@@ -6,15 +6,19 @@
 export NODE_PATH := ${CURDIR}:/usr/share:/usr/include
 
 %:
-	dh $@
+	dh $@ --with nodejs
 
 override_dh_auto_build:
-	rm -rf build vendor
+	# Using shared libsass:
+	#node scripts/build.js --force --libsass_ext=auto
+	# Without (bad):
 	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_test:
+	# Using shared libsass:
+	#rm -rf debian/node-node-sass/usr/lib/*/nodejs/node-sass/src/libsass
+	# Without:
+	for d in docs COPYING LICENSE '*.md' win/libsass.sln '.git*'; do \
+		rm -rvf debian/node-node-sass/usr/lib/*/nodejs/node-sass/src/libsass/$$d; \
+	done
diff --git a/debian/tests/control b/debian/tests/control
deleted file mode 100644
index ab36630..0000000
--- a/debian/tests/control
+++ /dev/null
@@ -1,2 +0,0 @@
-Tests: require
-Depends: node-node-sass
diff --git a/debian/tests/require b/debian/tests/require
deleted file mode 100644
index 48f2459..0000000
--- a/debian/tests/require
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-set -e
-node -e "require('node-sass');"
-- 
Pkg-javascript-devel mailing list
Pkg-javascript-devel@alioth-lists.debian.net
https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/pkg-javascript-devel

Reply via email to