marguerite / nodejs-packaging Goto Github PK
View Code? Open in Web Editor NEWnodejs packaging helpers and utilities for openSUSE
License: MIT License
nodejs packaging helpers and utilities for openSUSE
License: MIT License
I switched to upstream nodejs RPM packaging (from home:MargueriteSu:nodejs) again there is some troubles and this is one major one:
[ 19s] Untaring /home/abuild/rpmbuild/SOURCES/semver-4.0.0/semver.min.js.gz
[ 19s] tar: This does not look like a tar archive
[ 19s] tar: Skipping to next header
[ 19s] tar: Exiting with failure status due to previous errors
[ 19s] /usr/lib64/ruby/gems/2.1.0/gems/node2rpm-1.0.0/lib/node2rpm/server.rb:158:in `basename': no implicit conversion of nil into String (TypeError)
[ 19s] from /usr/lib64/ruby/gems/2.1.0/gems/node2rpm-1.0.0/lib/node2rpm/server.rb:158:in `unpack'
[ 19s] from /usr/lib64/ruby/gems/2.1.0/gems/node2rpm-1.0.0/lib/node2rpm/server.rb:138:in `block in recursive_untar'
[ 19s] from /usr/lib64/ruby/gems/2.1.0/gems/node2rpm-1.0.0/lib/node2rpm/server.rb:133:in `glob'
[ 19s] from /usr/lib64/ruby/gems/2.1.0/gems/node2rpm-1.0.0/lib/node2rpm/server.rb:133:in `recursive_untar'
[ 19s] from /usr/lib64/ruby/gems/2.1.0/gems/node2rpm-1.0.0/lib/node2rpm/server.rb:145:in `block (2 levels) in recursive_untar'
[ 19s] from /usr/lib64/ruby/gems/2.1.0/gems/node2rpm-1.0.0/lib/node2rpm/server.rb:145:in `each'
[ 19s] from /usr/lib64/ruby/gems/2.1.0/gems/node2rpm-1.0.0/lib/node2rpm/server.rb:145:in `block in recursive_untar'
[ 19s] from /usr/lib64/ruby/gems/2.1.0/gems/node2rpm-1.0.0/lib/node2rpm/server.rb:133:in `glob'
[ 19s] from /usr/lib64/ruby/gems/2.1.0/gems/node2rpm-1.0.0/lib/node2rpm/server.rb:133:in `recursive_untar'
[ 19s] from /usr/lib64/ruby/gems/2.1.0/gems/node2rpm-1.0.0/lib/node2rpm/server.rb:24:in `prep'
[ 19s] from /usr/lib64/ruby/gems/2.1.0/gems/node2rpm-1.0.0/bin/node2rpm-server:11:in `<top (required)>'
[ 19s] from /usr/bin/node2rpm-server:23:in `load'
[ 19s] from /usr/bin/node2rpm-server:23:in `<main>'
[ 19s] error: Bad exit status from /var/tmp/rpm-tmp.Xf49KX (%prep)
which can be found for example here: https://build.opensuse.org/package/live_build_log/home:illuusio:nodejs-bundle/stylelint/openSUSE_Leap_42.3/x86_64
Building Uglifyjs doesn't work anymore after whiching to upstream nodejs-packaging. It produces error:
[ 48s] + node2rpm-server --prep
[ 49s] /usr/lib64/ruby/gems/2.1.0/gems/rpmspec-1.0.0/lib/rpmspec/changelog.rb:24:in `entries_suse': undefined method `map!' for nil:NilClass (NoMethodError)
[ 49s] from /usr/lib64/ruby/gems/2.1.0/gems/rpmspec-1.0.0/lib/rpmspec/changelog.rb:13:in `entries'
[ 49s] from /usr/lib64/ruby/gems/2.1.0/gems/rpmspec-1.0.0/lib/rpmspec/parser.rb:29:in `parse'
[ 49s] from /usr/lib64/ruby/gems/2.1.0/gems/node2rpm-1.0.0/lib/node2rpm/system.rb:32:in `buildroot'
[ 49s] from /usr/lib64/ruby/gems/2.1.0/gems/node2rpm-1.0.0/lib/node2rpm/system.rb:27:in `buildroot'
[ 49s] from /usr/lib64/ruby/gems/2.1.0/gems/node2rpm-1.0.0/lib/node2rpm/server.rb:10:in `initialize'
[ 49s] from /usr/lib64/ruby/gems/2.1.0/gems/node2rpm-1.0.0/bin/node2rpm-server:7:in `new'
[ 49s] from /usr/lib64/ruby/gems/2.1.0/gems/node2rpm-1.0.0/bin/node2rpm-server:7:in `<top (required)>'
[ 49s] from /usr/bin/node2rpm-server:23:in `load'
[ 49s] from /usr/bin/node2rpm-server:23:in `<main>'
[ 49s] error: Bad exit status from /var/tmp/rpm-tmp.uUCDaw (%prep)
Package can be found here: https://build.opensuse.org/package/show/home:illuusio:nodejs-bundle/uglifyjs
We can create a spect template at /etc/rpmdevtools/, then it is easy to create a spec file with single command:
rpmdev-newspec -t nodejs gulp
Latest version of npkg (npkg-10.beta10-32.1.noarch) fails on fully patched Leap system:
test@linux-vmko:/Application:ERP:Tryton:3.8/tryton-sao> npkg tryton-sao
Processing dependencies in package.json
1:tryton-sao
2:bower
Processing dependencies in bower.json
/usr/share/npkg/plugins/bower.rb:78:in index': type mismatch: NilClass given (TypeError) from /usr/share/npkg/plugins/bower.rb:78:in
block (2 levels) in lookup'
from /usr/share/npkg/plugins/bower.rb:77:in each' from /usr/share/npkg/plugins/bower.rb:77:in
block in lookup'
from /usr/share/npkg/plugins/bower.rb:38:in each' from /usr/share/npkg/plugins/bower.rb:38:in
lookup'
from /usr/share/npkg/plugins/bower.rb:97:in install' from /usr/bin/npkg:92:in
block in
glob' from /usr/bin/npkg:85:in
'As most automatic dependency tracking problems has vanished there is more to come:
[ 47s] Finding Requires: /usr/lib/rpm/nodejs.req
[ 47s] error: Dependency tokens must begin with alpha-numeric, '_' or '/': >=>= 1.5.0
[ 47s] npm(nomnom) < 1.6.0
[ 47s] npm(JSV) >=>= 4.0.0
[ 47s] npm(JSV) < 4.1.0
[ 47s] nodejs(engine) >= 0.8.0
[ 47s]
[ 47s] error: Failed to find Requires:
[ 47s] Provides: jsonlint = 1.6.2-9.1 npm(jsonlint) = 1.6.2 own(ansi-styles) = 1.1.0 own(has-color) = 0.1.7 own(strip-ansi) = 0.1.1 own(chalk) = 0.4.0 own(underscore) = 1.6.0 own(nomnom) = 1.8.1
[ 47s] Requires(rpmlib): rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1
[ 47s] Requires: npm(ansi-styles) >= 1.0.0 npm(ansi-styles) < 1.1.0 npm(nomnom)
[ 47s]
[ 47s]
[ 47s] RPM build errors:
[ 47s] Dependency tokens must begin with alpha-numeric, '_' or '/': >=>= 1.5.0
[ 47s] npm(nomnom) < 1.6.0
[ 47s] npm(JSV) >=>= 4.0.0
[ 47s] npm(JSV) < 4.1.0
[ 47s] nodejs(engine) >= 0.8.0
[ 47s]
[ 47s] Failed to find Requires:
[ 47s]
[ 47s] wildcard3 failed "build jsonlint.spec" at Wed Sep 6 13:20:31 UTC 2017.
from https://build.opensuse.org/package/show/home:illuusio:nodejs-bundle/jsonlint
and
[ 27s] error: Dependency tokens must begin with alpha-numeric, '_' or '/': >=. 0.0
[ 27s] npm(mime-db) = 1.24.0
[ 27s] npm(mime-db) <. 0.0
[ 27s] npm(mime-db) >= 2.0.0
[ 27s] npm(mime-db) < 3.0.0
[ 27s] npm(statuses) >=. 0.0
[ 27s] npm(statuses) = 1.3.1
[ 27s] npm(statuses) <. 0.0
[ 27s] npm(statuses) >= 2.0.0
[ 27s] npm(statuses) < 3.0.0
[ 27s] nodejs(engine) >= 0.8.0
from https://build.opensuse.org/package/show/home:illuusio:nodejs-bundle/hexo-server
It is unmaintained, and some macros are straight up broken. Wouldn't it make more sense to work together with Fedora on their version since it's actively maintained?
It seems there is broken tars inside nodejs 'tar' which makes packaging script fall error like this:
[ 37s] Untaring /home/abuild/rpmbuild/SOURCES/tar-2.2.1.tgz
[ 37s] Renaming /home/abuild/rpmbuild/SOURCES/package to /home/abuild/rpmbuild/SOURCES/tar-2.2.1
[ 37s] Untaring /home/abuild/rpmbuild/SOURCES/tar-2.2.1/test/fixtures.tgz
[ 37s] Untaring /home/abuild/rpmbuild/SOURCES/tar-2.2.1/test/cb-never-called-1.0.1.tgz
[ 37s]
[ 37s] gzip: stdin: unexpected end of file
[ 37s] tar: Unexpected EOF in archive
[ 37s] tar: Unexpected EOF in archive
[ 37s] tar: Error is not recoverable: exiting now
[ 37s] Renaming /home/abuild/rpmbuild/SOURCES/tar-2.2.1/test/package to /home/abuild/rpmbuild/SOURCES/tar-2.2.1/test/cb-never-called-1.0.1
[ 37s] Untaring /home/abuild/rpmbuild/SOURCES/tar-2.2.1/test/fixtures.tgz
[ 37s] /usr/lib64/ruby/gems/2.1.0/gems/node2rpm-1.0.0/lib/node2rpm/server.rb:124:in `basename': no implicit conversion of nil into String (TypeError)
[ 37s] from /usr/lib64/ruby/gems/2.1.0/gems/node2rpm-1.0.0/lib/node2rpm/server.rb:124:in `unpack'
[ 37s] from /usr/lib64/ruby/gems/2.1.0/gems/node2rpm-1.0.0/lib/node2rpm/server.rb:104:in `block in recursive_untar'
[ 37s] from /usr/lib64/ruby/gems/2.1.0/gems/node2rpm-1.0.0/lib/node2rpm/server.rb:99:in `glob'
[ 37s] from /usr/lib64/ruby/gems/2.1.0/gems/node2rpm-1.0.0/lib/node2rpm/server.rb:99:in `recursive_untar'
[ 37s] from /usr/lib64/ruby/gems/2.1.0/gems/node2rpm-1.0.0/lib/node2rpm/server.rb:111:in `block (2 levels) in recursive_untar'
[ 37s] from /usr/lib64/ruby/gems/2.1.0/gems/node2rpm-1.0.0/lib/node2rpm/server.rb:111:in `each'
[ 37s] from /usr/lib64/ruby/gems/2.1.0/gems/node2rpm-1.0.0/lib/node2rpm/server.rb:111:in `block in recursive_untar'
[ 37s] from /usr/lib64/ruby/gems/2.1.0/gems/node2rpm-1.0.0/lib/node2rpm/server.rb:99:in `glob'
[ 37s] from /usr/lib64/ruby/gems/2.1.0/gems/node2rpm-1.0.0/lib/node2rpm/server.rb:99:in `recursive_untar'
[ 37s] from /usr/lib64/ruby/gems/2.1.0/gems/node2rpm-1.0.0/lib/node2rpm/server.rb:24:in `prep'
[ 37s] from /usr/lib64/ruby/gems/2.1.0/gems/node2rpm-1.0.0/bin/node2rpm-server:11:in `<top (required)>'
[ 37s] from /usr/bin/node2rpm-server:23:in `load'
[ 37s] from /usr/bin/node2rpm-server:23:in `<main>'
[ 37s] error: Bad exit status from /var/tmp/rpm-tmp.augKU5 (%prep)
[ 37s]
[ 37s]
[ 37s] RPM build errors:
[ 37s] Bad exit status from /var/tmp/rpm-tmp.augKU5 (%prep)
[ 37s]
[ 37s] lamb51 failed "build postcss-cli.spec" at Wed Sep 6 13:19:52 UTC 2017.
As it's correct behavior to crash it should be probably be done more nicely with testing is tar archive correct or not try to untar from test-directories as they are not needed.
Package can be found here: https://build.opensuse.org/package/show/home:illuusio:nodejs-bundle/postcss-cli
See https://build.opensuse.org/package/show/hardware:razer/nodejs-less. The spec works on openSUSE_Leap_42.3 (which apparently doesn't have this project included) and doesn't work on openSUSE_Tumbleweed (which apparently includes this project). Any idea how I can fix this error because I need the lessc
compiler for another package.
There should has a document to explain the exactly meaning of each macros, eg, %nodejs_copy
, %nodejs_prep
, because not all the people would like to learn Ruby just for building a package.
@ok. now 'jslint' is working and 'jshint' ain't working (tested with your package from home repo) and same goes with git version
1:jshint 2:cli 3:glob 4:minimatch 5:lru-cache 6:sigmund 7:graceful-fs 8:inherits 9:exit 10:console-browserify 11:date-now 12:exit 13:htmlparser2 14:domhandler 15:domelementtype 16:domutils 17:domelementtype 18:domelementtype 19:readable-stream /usr/share/nova/dependencies.rb:86:in `list': undefined method `[]' for nil:NilClass (NoMethodError) from /usr/share/nova/dependencies.rb:91:in `block in list' from /usr/share/nova/dependencies.rb:87:in `each' from /usr/share/nova/dependencies.rb:87:in `list' from /usr/share/nova/dependencies.rb:91:in `block in list' from /usr/share/nova/dependencies.rb:87:in `each' from /usr/share/nova/dependencies.rb:87:in `list' from /usr/share/nova/dependencies.rb:122:in `write' from /usr/bin/nova:12:in `'
These dependencies doesn't appear to exist even sources are available in
npm(glob) < 0.1.0 is needed by jshint-2.9.1-5.1.noarch npm(readable-stream) = 1.1.0 is needed by jshint-2.9.1-5.1.noarch
package avaialble: https://build.opensuse.org/package/show/home:illuusio:nodejs-bundle/jshint
This happens with pre-pasted and without pre-pasting 'jshint.source' to 'jshint.spec'.
run npkg on the package tryton-sao.
It creates a .json file with sao and bower included, but it does not download the files that bower would process
(run npm package inside tryton-sao/package directory to see remaining downloads)
openSUSE 42.2 generates this kind of problem. It done with npm2rpm script others are still mumbled with depencies:
[ 33s] + node2rpm-server --prep
[ 33s] /usr/lib64/ruby/gems/2.1.0/gems/rpmspec-1.0.0/lib/rpmspec/stage.rb:9:in +': no implicit conversion of Symbol into String (TypeError) [ 33s] from /usr/lib64/ruby/gems/2.1.0/gems/rpmspec-1.0.0/lib/rpmspec/stage.rb:9:in
block in method_missing'
[ 33s] from /usr/lib64/ruby/gems/2.1.0/gems/rpmspec-1.0.0/lib/rpmspec/stage.rb:9:in each' [ 33s] from /usr/lib64/ruby/gems/2.1.0/gems/rpmspec-1.0.0/lib/rpmspec/stage.rb:9:in
each_with_index'
[ 33s] from /usr/lib64/ruby/gems/2.1.0/gems/rpmspec-1.0.0/lib/rpmspec/stage.rb:9:in method_missing' [ 33s] from /usr/lib64/ruby/gems/2.1.0/gems/rpmspec-1.0.0/lib/rpmspec/parser.rb:22:in
parse'
[ 33s] from /usr/lib64/ruby/gems/2.1.0/gems/node2rpm-1.0.0/lib/node2rpm/system.rb:32:in buildroot' [ 33s] from /usr/lib64/ruby/gems/2.1.0/gems/node2rpm-1.0.0/lib/node2rpm/system.rb:27:in
buildroot'
[ 33s] from /usr/lib64/ruby/gems/2.1.0/gems/node2rpm-1.0.0/lib/node2rpm/server.rb:9:in initialize' [ 33s] from /usr/lib64/ruby/gems/2.1.0/gems/node2rpm-1.0.0/bin/node2rpm-server:7:in
new'
[ 33s] from /usr/lib64/ruby/gems/2.1.0/gems/node2rpm-1.0.0/bin/node2rpm-server:7:in <top (required)>' [ 33s] from /usr/bin/node2rpm-server:23:in
load'
[ 33s] from /usr/bin/node2rpm-server:23:in `
Spec can be found:
https://build.opensuse.org/package/show/home:illuusio:nodejs-packages/zxcvbn-cli
Csslint doesn't build and throws this error
[ 66s] + exec rpmbuild -ba --define '_srcdefattr (-,root,root)' --nosignature --define 'disturl obs://build.opensuse.org/home:illuusio:nodejs-bundle/openSUSE_13.1/780d225b03794da54f14fbe031e86c61-defs' /home/abuild/rpmbuild/SOURCES/defs.spec [ 66s] Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.ZC86TN [ 66s] + umask 022 [ 66s] + cd /home/abuild/rpmbuild/BUILD [ 66s] + /usr/lib/rpm/nodejs.rb --prep [ 66s] /usr/lib64/ruby/2.0.0/fileutils.rb:1551:in `stat': No such file or directory - /home/abuild/rpmbuild/SOURCES/package (Errno::ENOENT) [ 66s] from /usr/lib64/ruby/2.0.0/fileutils.rb:1551:in `block in fu_each_src_dest' [ 66s] from /usr/lib64/ruby/2.0.0/fileutils.rb:1567:in `fu_each_src_dest0' [ 66s] from /usr/lib64/ruby/2.0.0/fileutils.rb:1549:in `fu_each_src_dest' [ 66s] from /usr/lib64/ruby/2.0.0/fileutils.rb:508:in `mv' [ 66s] from /usr/lib/rpm/nodejs.rb:125:in `block in ' [ 66s] from /usr/lib/rpm/nodejs.rb:121:in `glob' [ 66s] from /usr/lib/rpm/nodejs.rb:121:in `' [ 66s] error: Bad exit status from /var/tmp/rpm-tmp.ZC86TN (%prep) [ 66s]
package can be found 'https://build.opensuse.org/package/show/home:illuusio:nodejs-bundle/defs'
Did not change the spec file on OBS, but recently I noticed that the rpm contains only directories bower_components and node_modules, but not the other files (index.html etc) of the source package.
Affects all builds of tryton-sao
stylelint-config-standard doesn't build anymore and it produces this kind error:
[ 18s] + node2rpm-server --mkdir
[ 19s] /usr/lib64/ruby/gems/2.1.0/gems/node2rpm-1.0.0/lib/node2rpm/server.rb:265:in `block in manual_requires': undefined method `[]' for nil:NilClass (NoMethodError)
[ 19s] from /usr/lib64/ruby/gems/2.1.0/gems/node2rpm-1.0.0/lib/node2rpm/server.rb:264:in `each'
[ 19s] from /usr/lib64/ruby/gems/2.1.0/gems/node2rpm-1.0.0/lib/node2rpm/server.rb:264:in `manual_requires'
[ 19s] from /usr/lib64/ruby/gems/2.1.0/gems/node2rpm-1.0.0/lib/node2rpm/server.rb:278:in `block in recursive_mkdir'
[ 19s] from /usr/lib64/ruby/gems/2.1.0/gems/node2rpm-1.0.0/lib/node2rpm/server.rb:274:in `each'
[ 19s] from /usr/lib64/ruby/gems/2.1.0/gems/node2rpm-1.0.0/lib/node2rpm/server.rb:274:in `recursive_mkdir'
[ 19s] from /usr/lib64/ruby/gems/2.1.0/gems/node2rpm-1.0.0/lib/node2rpm/server.rb:36:in `mkdir'
[ 19s] from /usr/lib64/ruby/gems/2.1.0/gems/node2rpm-1.0.0/bin/node2rpm-server:13:in `<top (required)>'
[ 19s] from /usr/bin/node2rpm-server:23:in `load'
[ 19s] from /usr/bin/node2rpm-server:23:in `<main>'
[ 19s] error: Bad exit status from /var/tmp/rpm-tmp.wAlyO2 (%install)
Package can be found from: https://build.opensuse.org/package/show/home:illuusio:nodejs-bundle/stylelint-config-standard
Depencies parsing is missing there lines >=0.0.1 < 1.0.0 because of Regexp in nodejs-req.js. It leads to situation where package have all depencies but requires them outside also like:
https://build.opensuse.org/package/binary/home:illuusio:nodejs-bundle/jsonlint?arch=x86_64&filename=jsonlint-1.6.2-12.1.x86_64.rpm&repository=openSUSE_Leap_42.3.
One can't install this package and packager needs to add dependency by hand.
If you try to pack jscs with nova then you get:
1:jscs /usr/share/nova/history.rb:39:in `last': undefined method `-' for nil:NilClass (NoMethodError) from /usr/share/nova/dependencies.rb:49:in `block (2 levels) in list' from /usr/share/nova/dependencies.rb:44:in `each' from /usr/share/nova/dependencies.rb:44:in `block in list' from /usr/share/nova/dependencies.rb:43:in `each' from /usr/share/nova/dependencies.rb:43:in `list' from /usr/share/nova/dependencies.rb:91:in `block in list' from /usr/share/nova/dependencies.rb:87:in `each' from /usr/share/nova/dependencies.rb:87:in `list' from /usr/share/nova/dependencies.rb:122:in `write' from /usr/bin/nova:12:in `'
Package 'csslint' build fails randomly with same kind as issue #7. But most of the time only one package is errored but others are working good
package: https://build.opensuse.org/package/show/home:illuusio:nodejs-bundle/csslint
I'm facing problem that provides are not parsed in several Nodejs packages with new nodejs-packaging. For example:
https://build.opensuse.org/package/show/home:illuusio:nodejs-fedora/nodejs-invert-kv
It generates error
[ 65s] /usr/lib64/ruby/2.0.0/json/common.rb:155:in `encode': "\xE2" on US-ASCII (Encoding::InvalidByteSequenceError) [ 65s] from /usr/lib64/ruby/2.0.0/json/common.rb:155:in `initialize' [ 65s] from /usr/lib64/ruby/2.0.0/json/common.rb:155:in `new' [ 65s] from /usr/lib64/ruby/2.0.0/json/common.rb:155:in `parse' [ 65s] from /usr/lib/rpm/nodejs.prov:26:in `block in <main>' [ 65s] from /usr/lib/rpm/nodejs.prov:22:in `each' [ 65s] from /usr/lib/rpm/nodejs.prov:22:in `<main>' [ 65s] /usr/lib64/ruby/2.0.0/json/common.rb:155:in `encode': "\xE2" on US-ASCII (Encoding::InvalidByteSequenceError) [ 65s] from /usr/lib64/ruby/2.0.0/json/common.rb:155:in `initialize' [ 65s] from /usr/lib64/ruby/2.0.0/json/common.rb:155:in `new' [ 65s] from /usr/lib64/ruby/2.0.0/json/common.rb:155:in `parse' [ 65s] from /usr/lib/rpm/nodejs.req:33:in `block in <main>' [ 65s] from /usr/lib/rpm/nodejs.req:30:in `each' [ 65s] from /usr/lib/rpm/nodejs.req:30:in `<main>'
Which I assume is caused by UTF-8 char or something JSON-stream. Ruby is not my best language but I try to dig this little more.
I'm building Application:ERP:Tryton:3.8/tryton-sao.
In the spec file we have
%define majorver 3.8
Version: %{majorver}.5
When running npkg trytod-sao , it downloads version 4.0.1 and builds against that - this will not work in the 3.8 tree. npkg should recognize the version in the spec file
Sometimes requires and provides end like this:
[ 22s] Finding Provides: /usr/lib/rpm/nodejs.prov
[ 22s] Finding Requires(interp):
[ 22s] Finding Requires(rpmlib):
[ 22s] Finding Requires(verify):
[ 22s] Finding Requires(pre):
[ 22s] Finding Requires(post):
[ 22s] Finding Requires(preun):
[ 22s] Finding Requires(postun):
[ 22s] Finding Requires(pretrans):
[ 22s] Finding Requires(posttrans):
[ 22s] Finding Requires: /usr/lib/rpm/nodejs.req
[ 23s] error: Dependency tokens must begin with alpha-numeric, '_' or '/': >=. 0.0
[ 23s] npm(graceful-readlink) = 1.0.0
[ 23s] nodejs(engine) >= 0.8.0
[ 23s]
[ 23s] error: Failed to find Requires:
[ 23s] Provides: zxcvbn-cli = 1.0.6-8.1 npm(zxcvbn-cli) = 1.0.6 own(ansi-styles) = 2.2.1 own(escape-string-regexp) = 1.0.5 own(ansi-regex) = 2.0.0 own(has-ansi) = 2.0.0 own(strip-ansi) = 3.0.1 own(supports-color) = 2.0.0 own(chalk) = 1.1.3 own(colors) = 1.0.3 own(cli-table) = 0.3.1 own(graceful-readlink) = 1.0.1 own(commander) = 2.9.0 own(zxcvbn) = 4.2.0
[ 23s] Requires(rpmlib): rpmlib(PartialHardlinkSets) <= 4.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1
[ 23s] Requires: npm(graceful-readlink)
[ 23s]
[ 23s]
[ 23s] RPM build errors:
[ 23s] Dependency tokens must begin with alpha-numeric, '_' or '/': >=. 0.0
[ 23s] npm(graceful-readlink) = 1.0.0
[ 23s] nodejs(engine) >= 0.8.0
[ 23s]
[ 23s] Failed to find Requires:
[ 23s]
[ 23s] lamb24 failed "build zxcvbn-cli.spec" at Tue Sep 5 09:13:47 UTC 2017.
Package can be found on: https://build.opensuse.org/package/show/home:illuusio:nodejs-bundle/zxcvbn-cli
Trying to pack 'jslint' with new Nova tool throws error:
./nova jslint
["read-pkg", "load-json-file", "pinkie-promise"] 1:jslint 2:exit 3:glob 4:inflight 5:once 6:wrappy 7:wrappy 8:inherits 9:minimatch 10:brace-expansion 11:balanced-match 12:concat-map 13:once 14:wrappy 15:nopt 16:abbrev /something/tool/dependencies.rb:77:in `list': undefined method `[]' for nil:NilClass (NoMethodError) from /something/nodejs-packaging/tool/dependencies.rb:79:in `block in list' from /something/nodejs-packaging/tool/dependencies.rb:78:in `each' from /something/nodejs-packaging/tool/dependencies.rb:78:in `list' from/something/nodejs-packaging/tool/dependencies.rb:79:in `block in list' from /something/nodejs-packaging/tool/dependencies.rb:78:in `each' from/something/nodejs-packaging/tool/dependencies.rb:78:in `list' from /something/nodejs-packaging/tool/dependencies.rb:110:in `write' from ./nova:12:in `'
I ran your node2rpm -pkg twilio-cmd
and it generated this line:
Source99: https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz
But that dependency is not a package (?), so the %nodejs_prep
step failed because when the tarball was unpacked there was no package
directory to move.
This patch works around this problem:
--- /var/tmp/build-root/openSUSE_Leap_15.2-x86_64/usr/lib/rpm/nodejs.rb.orig 2021-08-17 13:07:37.999046183 -0500
+++ /var/tmp/build-root/openSUSE_Leap_15.2-x86_64/usr/lib/rpm/nodejs.rb 2021-08-17 13:24:48.784285292 -0500
@@ -119,10 +119,15 @@
case ARGV[0]
when "--prep"
Dir.glob(sourcedir + "/*.tgz") do |tgz|
+ FileUtils.rm_rf sourcedir + "/unpack"
+ FileUtils.mkdir_p sourcedir + "/unpack"
name = tgz.gsub(/^.*\//,'').gsub('.tgz','')
- io = IO.popen("tar --warning=none --no-same-owner --no-same-permissions -xf #{tgz} -C #{sourcedir}")
+ io = IO.popen("tar --warning=none --no-same-owner --no-same-permissions -xf #{tgz} -C #{sourcedir}/unpack")
io.close
- FileUtils.mv sourcedir + "/package",sourcedir + "/" + name
+ if File.exist?(sourcedir + "/unpack/package")
+ FileUtils.mv sourcedir + "/unpack/package",sourcedir + "/" + name
+ FileUtils.rm_rf sourcedir + "/unpack"
+ end
end
# bower
Note: I don't understand node very well so this might just be fixing the symptom... that's for you to figure out.
FWIW, even with this fix my build still fails with undefined symbol: ares_parse_caa_reply
:
[ 3s] -----------------------------------------------------------------
[ 3s] ----- building twilio-cli.spec (user abuild)
[ 3s] -----------------------------------------------------------------
[ 3s] -----------------------------------------------------------------
[ 3s] + exec rpmbuild -ba --define '_srcdefattr (-,root,root)' --nosignature /home/abuild/rpmbuild/SOURCES/twilio-cli.spec
[ 3s] Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.YgsqMO
[ 3s] + umask 022
[ 3s] + cd /home/abuild/rpmbuild/BUILD
[ 3s] + /usr/lib/rpm/nodejs.rb --prep
[ 5s] + exit 0
[ 5s] Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.tOY7Xp
[ 5s] + umask 022
[ 5s] + cd /home/abuild/rpmbuild/BUILD
[ 5s] + /usr/bin/rm -rf /home/abuild/rpmbuild/BUILDROOT/twilio-cli-2.28.0-0.x86_64
[ 5s] ++ dirname /home/abuild/rpmbuild/BUILDROOT/twilio-cli-2.28.0-0.x86_64
[ 5s] + /usr/bin/mkdir -p /home/abuild/rpmbuild/BUILDROOT
[ 5s] + /usr/bin/mkdir /home/abuild/rpmbuild/BUILDROOT/twilio-cli-2.28.0-0.x86_64
[ 5s] + /usr/lib/rpm/nodejs.rb --build
[ 5s] + exit 0
[ 5s] Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.wCAvu1
[ 5s] + umask 022
[ 5s] + cd /home/abuild/rpmbuild/BUILD
[ 5s] + mkdir -p /home/abuild/rpmbuild/BUILDROOT/twilio-cli-2.28.0-0.x86_64/usr/lib/node_modules
[ 5s] + npm_config_prefix=/home/abuild/rpmbuild/BUILDROOT/twilio-cli-2.28.0-0.x86_64/usr
[ 5s] + npm install -g /home/abuild/rpmbuild/SOURCES/wide-align-1.1.3.tgz
[ 5s] /usr/bin/node14: symbol lookup error: /usr/bin/node14: undefined symbol: ares_parse_caa_reply
[ 5s] error: Bad exit status from /var/tmp/rpm-tmp.wCAvu1 (%install)
[ 5s]
[ 5s]
[ 5s] RPM build errors:
[ 5s] Bad exit status from /var/tmp/rpm-tmp.wCAvu1 (%install)
[ 5s]
[ 5s] ops2 failed "build twilio-cli.spec" at Tue Aug 17 18:13:45 UTC 2021.
[ 5s]
As there is nodejs4 - nodejs8 it would be easier to remove that from dependencies that are auto generated.
Esparse bundle building goes down like this
[ 51s] Processing files: esparse-0.1.2-4.1.noarch [ 51s] Finding Provides: /usr/lib/rpm/nodejs.prov [ 51s] /usr/lib/rpm/nodejs.prov:32:in `+': no implicit conversion of nil into String (TypeError) [ 51s] from /usr/lib/rpm/nodejs.prov:32:in `block in ' [ 51s] from /usr/lib/rpm/nodejs.prov:27:in `each' [ 51s] from /usr/lib/rpm/nodejs.prov:27:in `' [ 51s] error: /usr/lib/rpm/nodejs.prov failed: 100 [ 51s] error: Failed to find Provides: [ 51s] Provides: esparse = 0.1.2-4.1 [ 51s] Requires(rpmlib): rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1 [ 51s] [ 51s] [ 51s] RPM build errors: [ 51s] /usr/lib/rpm/nodejs.prov failed: 100 [ 51s] Failed to find Provides:
Package can be found: https://build.opensuse.org/package/show/home:illuusio:nodejs-bundle/esparse
If this this implemented it's not very easy to understand how to use. Original had 'nodejs-symlink-deps' script which was in RPM-macros as '%nodejs_symlink_deps'.
I don't know is there way symlink automatic or even semi-automic without user intervention and that makes most of packages non-working state.
If there is no Changes file packing fails with:
[ 33s] + node2rpm-server --prep
[ 33s] /usr/lib64/ruby/gems/2.1.0/gems/rpmspec-1.0.0/lib/rpmspec/changelog.rb:23:in `entries_suse': undefined method `map!' for nil:NilClass (NoMethodError)
[ 33s] from /usr/lib64/ruby/gems/2.1.0/gems/rpmspec-1.0.0/lib/rpmspec/changelog.rb:13:in `entries'
[ 33s] from /usr/lib64/ruby/gems/2.1.0/gems/rpmspec-1.0.0/lib/rpmspec/parser.rb:29:in `parse'
[ 33s] from /usr/lib64/ruby/gems/2.1.0/gems/node2rpm-1.0.0/lib/node2rpm/system.rb:32:in `buildroot'
[ 33s] from /usr/lib64/ruby/gems/2.1.0/gems/node2rpm-1.0.0/lib/node2rpm/system.rb:27:in `buildroot'
[ 33s] from /usr/lib64/ruby/gems/2.1.0/gems/node2rpm-1.0.0/lib/node2rpm/server.rb:9:in `initialize'
[ 33s] from /usr/lib64/ruby/gems/2.1.0/gems/node2rpm-1.0.0/bin/node2rpm-server:7:in `new'
[ 33s] from /usr/lib64/ruby/gems/2.1.0/gems/node2rpm-1.0.0/bin/node2rpm-server:7:in `<top (required)>'
[ 33s] from /usr/bin/node2rpm-server:23:in `load'
[ 33s] from /usr/bin/node2rpm-server:23:in `<main>'
[ 33s] error: Bad exit status from /var/tmp/rpm-tmp.iwSYtn (%prep)
Jscs has this kind of problematic babylon depency-hell.
npm(babylon) >= 6.7.0 npm(babylon) < 7.0.0 npm(babylon) >= 6.3.0
I tried to fix it with with
%nodejs_fixdep babylon "~6.7"
without success.
package can be found: https://build.opensuse.org/package/show/home:illuusio:nodejs-bundle/jscs
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.