Hello community, here is the log from the commit of package nodejs-packaging for openSUSE:Factory checked in at 2016-02-25 22:11:03 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/nodejs-packaging (Old) and /work/SRC/openSUSE:Factory/.nodejs-packaging.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "nodejs-packaging" Changes: -------- --- /work/SRC/openSUSE:Factory/nodejs-packaging/nodejs-packaging.changes 2016-02-17 12:16:53.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.nodejs-packaging.new/nodejs-packaging.changes 2016-02-26 00:36:59.000000000 +0100 @@ -1,0 +2,26 @@ +Thu Feb 25 01:14:55 UTC 2016 - [email protected] + +- update version v10.beta7 + * fix bugs related with licenses in dependency.rb + * nodejs.rb: fix a bug that 'v2.0.0' dir will be renamed + * fix a bug in semver.rb + * add npkg-mgmt-merge: possible to create a huge bundle + * add bower.rb plugin to handle bower dependencies + * build C node modules automatically + * add a global filter for rpmlint warnings + +------------------------------------------------------------------- +Sun Feb 14 14:00:56 UTC 2016 - [email protected] + +- update version v10.beta6 + * history.rb: some version exists in version timestamp + but has no details, not downloadable, so drop them + * clean_temp for parent.rb: don't use array substraction, + it will all values matched. we just need to free the last + * skiploop in dependencies.rb: parents variable can be + nested arrays + * skip in dependencies.rb: let those "parent" element + without "name" variable return -1 to break infinite loop + * vcmp.rb: fix a bug in ">=" test + +------------------------------------------------------------------- Old: ---- nodejs-packaging-10.beta5.tar.gz New: ---- nodejs-packaging-10.beta7.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ nodejs-packaging.spec ++++++ --- /var/tmp/diff_new_pack.2MTlXK/_old 2016-02-26 00:37:00.000000000 +0100 +++ /var/tmp/diff_new_pack.2MTlXK/_new 2016-02-26 00:37:00.000000000 +0100 @@ -18,21 +18,35 @@ %define _rpmconfigdir %{_prefix}/lib/rpm Name: nodejs-packaging -Version: 10.beta5 +Version: 10.beta7 Release: 0 -Summary: NodeJS packaging helpers and utilities for openSUSE +Summary: Node.js Dependency generators for openSUSE License: MIT Group: Development/Languages/NodeJS Url: https://github.com/marguerite/nodejs-packaging Source: %{name}-%{version}.tar.gz BuildArch: noarch -Requires: nodejs +Requires: nodejs-devel Requires: ruby +Requires: npm(npm) Requires: rubygem(json) BuildRoot: %{_tmppath}/%{name}-%{version}-build %description -nodejs packaging helpers and utilities for openSUSE. +This package generates Node.js Provides/Requires dependencies +automatically for nodejs module packages in openSUSE. + +%package -n npkg +Summary: The ultimate Node.js packaging toolkit for openSUSE +Group: Development/Lanaguages/NodeJS +Requires: nodejs-packaging = %{version} +Requires: ruby +Requires: rubygem(json) +Requires: rubygem(nokogiri) + +%description -n npkg +This package provides the ultimate Node.js packaging toolkit +for openSUSE. %prep %setup -q @@ -54,8 +68,10 @@ cp -r tool/* %{buildroot}%{_datadir}/npkg cp -r scripts %{buildroot}%{_datadir}/npkg ln -sf %{_datadir}/npkg/npkg %{buildroot}%{_bindir}/npkg -ln -sf %{_datadir}/npkg/scripts/npkg-mgmt-batch-delete.rb %{buildroot}%{_bindir}/npkg-mgmt-batch-delete +ln -sf %{_datadir}/npkg/scripts/npkg-mgmt-pkg-batchrm.rb %{buildroot}%{_bindir}/npkg-mgmt-pkg-batchrm ln -sf %{_datadir}/npkg/scripts/npkg-mgmt-json2pkgtxt.rb %{buildroot}%{_bindir}/npkg-mgmt-json2pkgtxt +ls -l %{buildroot}%{_datadir}/npkg/scripts/ +ln -sf %{_datadir}/npkg/scripts/npkg-mgmt-merge.rb %{buildroot}%{_bindir}/npkg-mgmt-merge install -m0644 nodejs.attr %{buildroot}%{_rpmconfigdir}/fileattrs/nodejs.attr install -m0755 nodejs.prov %{buildroot}%{_rpmconfigdir}/nodejs.prov install -m0755 nodejs.req %{buildroot}%{_rpmconfigdir}/nodejs.req @@ -70,9 +86,6 @@ %else %config %{_sysconfdir}/rpm/macros.nodejs %endif -%{_bindir}/npkg -%{_bindir}/npkg-mgmt-batch-delete -%{_bindir}/npkg-mgmt-json2pkgtxt %if 0%{?suse_version} == 1110 %dir %{_rpmconfigdir}/fileattrs %endif @@ -82,6 +95,13 @@ %{_rpmconfigdir}/nodejs.rb %{_rpmconfigdir}/nodejs-fixdep.rb %{_rpmconfigdir}/nodejs + +%files -n npkg +%defattr(-,root,root) +%{_bindir}/npkg +%{_bindir}/npkg-mgmt-pkg-batchrm +%{_bindir}/npkg-mgmt-json2pkgtxt +%{_bindir}/npkg-mgmt-merge %{_datadir}/npkg %changelog ++++++ nodejs-packaging-10.beta5.tar.gz -> nodejs-packaging-10.beta7.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nodejs-packaging-10.beta5/TODO new/nodejs-packaging-10.beta7/TODO --- old/nodejs-packaging-10.beta5/TODO 2016-02-12 18:57:59.000000000 +0100 +++ new/nodejs-packaging-10.beta7/TODO 2016-02-25 01:47:57.000000000 +0100 @@ -1,4 +1,4 @@ -* global linking -* native-build module if there's .gyp present * support SLES 11 SP3 at least. - + nodejs.prov and nodejs.req. nova don't need to + + nodejs.prov and nodejs.req. npkg don't need to +* support grunt auto tasks +* support node-nsp security check diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nodejs-packaging-10.beta5/macros.nodejs new/nodejs-packaging-10.beta7/macros.nodejs --- old/nodejs-packaging-10.beta5/macros.nodejs 2016-02-12 18:57:59.000000000 +0100 +++ new/nodejs-packaging-10.beta7/macros.nodejs 2016-02-25 01:47:57.000000000 +0100 @@ -29,6 +29,7 @@ %nodejs_prep %{_prefix}/lib/rpm/nodejs.rb --prep %nodejs_mkdir %{_prefix}/lib/rpm/nodejs.rb --mkdir +%nodejs_build %{_prefix}/lib/rpm/nodejs.rb --build %nodejs_copy %{_prefix}/lib/rpm/nodejs.rb --copy %nodejs_filelist %{_prefix}/lib/rpm/nodejs.rb --filelist diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nodejs-packaging-10.beta5/nodejs/plugins/gruntfile.rb new/nodejs-packaging-10.beta7/nodejs/plugins/gruntfile.rb --- old/nodejs-packaging-10.beta5/nodejs/plugins/gruntfile.rb 1970-01-01 01:00:00.000000000 +0100 +++ new/nodejs-packaging-10.beta7/nodejs/plugins/gruntfile.rb 2016-02-25 01:47:57.000000000 +0100 @@ -0,0 +1 @@ +# Execute grunt commands diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nodejs-packaging-10.beta5/nodejs/plugins/nsp.rb new/nodejs-packaging-10.beta7/nodejs/plugins/nsp.rb --- old/nodejs-packaging-10.beta5/nodejs/plugins/nsp.rb 1970-01-01 01:00:00.000000000 +0100 +++ new/nodejs-packaging-10.beta7/nodejs/plugins/nsp.rb 2016-02-25 01:47:57.000000000 +0100 @@ -0,0 +1 @@ +# performing nodesecurity.io checks for insecurity modules diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nodejs-packaging-10.beta5/nodejs/semver.rb new/nodejs-packaging-10.beta7/nodejs/semver.rb --- old/nodejs-packaging-10.beta5/nodejs/semver.rb 2016-02-12 18:57:59.000000000 +0100 +++ new/nodejs-packaging-10.beta7/nodejs/semver.rb 2016-02-25 01:47:57.000000000 +0100 @@ -211,10 +211,9 @@ dep[name] = [">=#{va[0]}.#{va[1]}.0","<#{va[0]}.#{(va[1].to_i + 1)}.0"] end - elsif va == ["0","0","0"] - + elsif va == ["0","0","0"] if dep.has_key?(name) - dep[name] << [">=0.0.0"] + dep[name] << ">=0.0.0" else dep[name] = [">=0.0.0"] end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nodejs-packaging-10.beta5/nodejs/vcmp.rb new/nodejs-packaging-10.beta7/nodejs/vcmp.rb --- old/nodejs-packaging-10.beta5/nodejs/vcmp.rb 2016-02-12 18:57:59.000000000 +0100 +++ new/nodejs-packaging-10.beta7/nodejs/vcmp.rb 2016-02-25 01:47:57.000000000 +0100 @@ -10,8 +10,11 @@ maj,min = [],[] a = str.split("-") # ["1.0.0","beta.2"] maj = a[0].split(".") # ["1","0","0"] - if a[1].index(".") + if a[1].index(".") # beta.2 min = a[1].split(".") # ["beta","2"] + elsif a[1].index(/[a-z][0-9]/) # beta2 + b = a[1].gsub(/[0-9].*$/,'') + min = [b,a[1].gsub(b,'')] else min = [a[1]] #["beta"] end @@ -190,7 +193,7 @@ elsif min_result < 0 return false else - return false + return true end else return true @@ -217,3 +220,4 @@ end +#p Vcmp.comp("0.4.10-rc5",">=","0.4.10-rc4") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nodejs-packaging-10.beta5/nodejs.prov new/nodejs-packaging-10.beta7/nodejs.prov --- old/nodejs-packaging-10.beta5/nodejs.prov 2016-02-12 18:57:59.000000000 +0100 +++ new/nodejs-packaging-10.beta7/nodejs.prov 2016-02-25 01:47:57.000000000 +0100 @@ -17,9 +17,7 @@ unless f.index(/\/usr\/lib.*\/node_modules\/.*\/node_modules/) pub << f.strip else - unless f.index(/\/(test|example.*)\//) - priv << f.strip - end + priv << f.strip end end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nodejs-packaging-10.beta5/nodejs.rb new/nodejs-packaging-10.beta7/nodejs.rb --- old/nodejs-packaging-10.beta5/nodejs.rb 2016-02-12 18:57:59.000000000 +0100 +++ new/nodejs-packaging-10.beta7/nodejs.rb 2016-02-25 01:47:57.000000000 +0100 @@ -54,48 +54,185 @@ end +def backpath(path="",count="") + + count.times do + + path = path.gsub(/\/$/,'') + path = path.gsub(path.gsub(/^.*\//,''),'') + unless count == 1 + backpath(path,count - 1) + end + + end + + return path + +end + +def find_symlink(symlink="",target="") + + path = symlink.gsub(symlink.gsub(/^.*\//,''),'') + count = target.scan("..").count + back = backpath(path,count) + suffix = target.gsub(/^.*\.\.\//,'') + realpath = back + suffix + + return realpath +end + +def filter(file="") + f = file.split("/") + if f.grep(/^\..*$|.*~$|\.bat|\.cmd|Makefile|test(s)?(\.js)?|example(s)?(\.js)?|benchmark(s)?(\.js)?|\.sh|_test\.|browser$|\.orig|\.bak|windows|\.sln|\.njsproj|\.exe|\.c|\.h|\.cc|\.cpp/).empty? + unless f.grep(/LICENSE|\.md|\.txt|\.markdown/).empty? + io = IO.popen("chmod -x #{file}") + io.close + end + return file + else + return nil + end + +end + case ARGV[0] when "--prep" Dir.glob(sourcedir + "/*.tgz") do |tgz| name = tgz.gsub(/^.*\//,'').gsub('.tgz','') - io = IO.popen("tar --warning=none -xf #{tgz} -C #{sourcedir}") + io = IO.popen("tar --warning=none --no-same-owner --no-same-permissions -xf #{tgz} -C #{sourcedir}") io.close FileUtils.mv sourcedir + "/package",sourcedir + "/" + name end + + # bower + if File.exist?(sourcedir + "/bower_components.tar.gz") + io = IO.popen("tar --no-same-owner --no-same-permissions -xf #{sourcedir}/bower_components.tar.gz -C #{sourcedir}") + io.close + + Dir.glob(sourcedir + "/bower_components/**/*.tar.gz") do |dir| + dir1 = dir.gsub(dir.gsub(/^.*\//,''),'') + io1 = IO.popen("tar --no-same-owner --no-same-permissions -xf #{dir} -C #{dir1}") + io1.close + FileUtils.rm_rf dir + Dir.glob(dir1 + "/*") do |i| + io2 = IO.popen("cp -r #{i}/* #{dir1}/") + io2.close + FileUtils.rm_rf i + end + end + + end + when "--mkdir" json = {} + Dir.glob(sourcedir + "/*.json") do |j| open(j,'r:UTF-8') {|f| json = JSON.parse(f.read)} end + recursive_mkdir(json,buildroot + sitelib) + +when "--build" + buildlist = [] + + Dir.glob(sourcedir + "/**/*") do |f| + if f.end_with?(".c") || f.end_with?(".h") || f.end_with?(".cc") || f.end_with?(".cpp") + name = f.gsub(/^.*node_modules\//,'').gsub(/\/.*$/,'') + prefix = f.gsub(buildroot,'').gsub(/#{name}\/.*$/,'') + prefix = buildroot + prefix + name + buildlist << prefix + end + end + + buildlist = ( buildlist.uniq! if buildlist.uniq! ) || buildlist + + buildlist.each do |b| + io = IO.popen("pushd #{b} && npm build -f && popd") + io.close + end + # clean middle files + Dir.glob(sourcedir + "/**/*") do |f| + FileUtils.rm_rf f if f.index(/build\/(Release|Debug)/) + end + # clean empty directories + Dir[sourcedir + "/**/*"].select{|d| File.directory? d}.select{|d| (Dir.entries(d) - %w[ . .. ]).empty?}.each{|d| Dir.rmdir d} + when "--copy" Dir.glob(buildroot + "/**/*") do |dir| - name = dir.gsub(/^.*\//,'') - Dir.glob(sourcedir + "/" + name + "/*") do |f| - FileUtils.cp_r f,dir - end + name = dir.gsub(/^.*\//,'') + Dir.glob(sourcedir + "/" + name + "/*") do |f| + file = filter(f) + unless file.nil? + if File.directory? file + dir1 = file.gsub(/^.*[0-9]\.[0-9]/,'') + FileUtils.mkdir_p dir + dir1 + Dir.glob(file + "/**/*") do |f1| + f2 = filter(f1) + unless f2.nil? + FileUtils.cp_r f2,dir + dir1 + end + end + else + FileUtils.cp_r file,dir + end + end + end end + Dir.glob(buildroot + "/**/*").sort{|x| x.size}.each do |dir| name = dir.gsub(/^.*\//,'') prefix = dir.gsub(buildroot,'').gsub(name,'') - if name.index(/[0-9]\.[0-9]/) + if name.index(/-[0-9]\.[0-9]/) FileUtils.mv dir,buildroot + prefix + name.gsub(/-[0-9].*$/,'') end - if name.index(/test|example|benchmark/) - FileUtils.rm_rf dir - end end + + # bower + main = Dir.glob(buildroot + sitelib + "/*")[0] + if Dir.exist?(sourcedir + "/bower_components") + Dir.glob(sourcedir + "/bower_components/**/*") do |f| + if File.directory?(f) + FileUtils.mkdir_p f.gsub(sourcedir,main) + end + end + + Dir.glob(sourcedir + "/bower_components/**/*").sort{|x| x.size}.each do |f| + if File.symlink?(f) + real_target = find_symlink(f,File.readlink(f)) + if File.directory? real_target + FileUtils.mkdir_p real_target.gsub(sourcedir,main) + Dir.glob(real_target + "/**/*") do |i| + name = i.gsub(real_target,'') + FileUtils.ln_sf i.gsub(sourcedir,main).gsub(buildroot,''),f.gsub(sourcedir,main) + name + end + else + FileUtils.ln_sf real_target.gsub(sourcedir,main).gsub(buildroot,''),f.gsub(sourcedir,main) + end + end + unless File.directory?(f) || File.symlink?(f) || f.end_with?("package.json") || f.end_with?("bower.json") + file = filter(f) + unless file.nil? + f1 = f.gsub(sourcedir + "/bower_components",'') + dir = f.gsub(f1,'').gsub(sourcedir,main) + FileUtils.cp_r file,dir + f1 + end + end + end + end + when "--filelist" + open(sourcedir + "/files.lst","w:UTF-8") do |file| Dir.glob(buildroot + "/**/*") do |f| if File.directory? f unless f == buildroot + "/usr" || f == buildroot + "/usr/lib" || f == buildroot + sitelib file.write "%dir " + f.gsub(buildroot,'') + "\n" - end - else + end + else file.write f.gsub(buildroot,'') + "\n" end end end + end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nodejs-packaging-10.beta5/nodejs.req new/nodejs-packaging-10.beta7/nodejs.req --- old/nodejs-packaging-10.beta5/nodejs.req 2016-02-12 18:57:59.000000000 +0100 +++ new/nodejs-packaging-10.beta7/nodejs.req 2016-02-25 01:47:57.000000000 +0100 @@ -12,14 +12,11 @@ ARGF.each do |f| if f.strip.end_with?("package.json") - unless f.index(/\/test\//) - reqlist << f.strip - - if f.index(/\/usr\/lib.*\/node_modules\/.*\/node_modules/) - provlist << f.strip - end - end - end + reqlist << f.strip + if f.index(/\/usr\/lib.*\/node_modules\/.*\/node_modules/) + provlist << f.strip + end + end end # 1. parse the reqlist @@ -99,7 +96,6 @@ end # 5. calculate the maximum node version - node,max = [],[] reqlist.each do |j| @@ -132,7 +128,6 @@ end node = ( node.uniq! if node.uniq! ) || node - node.each do |v| va = v.split('.') va.push('0') if va.size < 3 # from now va.size = 3 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nodejs-packaging-10.beta5/scripts/npkg-mgmt-batch-delete.rb new/nodejs-packaging-10.beta7/scripts/npkg-mgmt-batch-delete.rb --- old/nodejs-packaging-10.beta5/scripts/npkg-mgmt-batch-delete.rb 2016-02-12 18:57:59.000000000 +0100 +++ new/nodejs-packaging-10.beta7/scripts/npkg-mgmt-batch-delete.rb 1970-01-01 01:00:00.000000000 +0100 @@ -1,42 +0,0 @@ -#!/usr/bin/env ruby -require 'fileutils' - -# run in repository workspace on your local machine, -# to drop useless packages, it will: -# 1. delete the previous built RPMs on build service servers -# 2. remote delete the package in the naming project -# 3. remove the package's working directory on your local machine -# 4. clean the repo metadata on your local machine -# you have to have a "packages.txt" first, which can -# be generated using `osc list <prj> | grep <keywords>` -# command or can be written manually. - -array = [] - -File.open("packages.txt",'r:UTF-8') do |f| - f.each_line do |l| - array << l.strip! - end -end - -array.each do |a| - - io2 = IO.popen("osc wipebinaries --all devel:languages:nodejs #{a}") - io2.each_line {|l| puts l} - io2.close - - io1 = IO.popen("osc rdelete devel:languages:nodejs #{a} -m \"deleted\"") - io1.each_line {|l| puts l} - io1.close - - if Dir.glob("./#{a}") - - FileUtils.rm_rf "/home/marguerite/Public/home:MargueriteSu:branches:devel:languages:nodejs/#{a}" - - end - - io = IO.popen("sed -i \"/#{a}/d\" .osc/_packages") - io.each_line {|l| puts l} - io.close - -end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nodejs-packaging-10.beta5/scripts/npkg-mgmt-json-statistics.rb new/nodejs-packaging-10.beta7/scripts/npkg-mgmt-json-statistics.rb --- old/nodejs-packaging-10.beta5/scripts/npkg-mgmt-json-statistics.rb 2016-02-12 18:57:59.000000000 +0100 +++ new/nodejs-packaging-10.beta7/scripts/npkg-mgmt-json-statistics.rb 2016-02-25 01:47:57.000000000 +0100 @@ -0,0 +1,47 @@ +require 'json' +require 'net/https' + +#https://build.opensuse.org/source/devel:languages:nodejs/mocha/mocha.json + +OBS = "https://build.opensuse.org" +REPO = "devel:languages:nodejs" +pkgs = [] + +IO.popen("osc list #{REPO}") do |i| + i.each_line {|l| pkgs << l.strip unless l.index("nodejs-") || l.strip == "nodejs" || l.strip == "scons" || l.strip == "phantomjs" || l.strip.index("ruby")} +end + +def login(username="",password="") + + uri = URI.parse(OBS + "/user/login") + + http = Net::HTTP.new(uri.host,uri.port) + http.use_ssl = true + http.basic_auth username,password + resp = http.get(uri.path) + cookie = resp.response['set-cookie'] + + p resp.code + p cookie + +end + +def json_exist?(pkg="") + + uri = URI.parse(OBS + "/source/" + REPO + "/" + pkg + "/" + pkg + ".json") + + http = Net::HTTP.new(uri.host,uri.port) + http.use_ssl = true + http.verify_mode = OpenSSL::SSL::VERIFY_NONE + req = Net::HTTP::Get.new(uri.request_uri) + req.basic_auth 'MargueriteSu','Zzl612' + resp = http.request(req) + + #p resp.status + p resp.body + return resp.status + +end + +login("MargueriteSu","Zzl612") +#json_exist?("mocha") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nodejs-packaging-10.beta5/scripts/npkg-mgmt-merge.rb new/nodejs-packaging-10.beta7/scripts/npkg-mgmt-merge.rb --- old/nodejs-packaging-10.beta5/scripts/npkg-mgmt-merge.rb 1970-01-01 01:00:00.000000000 +0100 +++ new/nodejs-packaging-10.beta7/scripts/npkg-mgmt-merge.rb 2016-02-25 01:47:57.000000000 +0100 @@ -0,0 +1,109 @@ +#!/usr/bin/env ruby + +require 'json' + +jsonname,jsonversion = ARGV[0],ARGV[1] + +jsonlist,sourcelist,licenselist = [],[],[] +json,source,license = [],[],"" + +if ARGV.include?("-i") + + start = ARGV.find_index("-i") + + jsonlist = ARGV[start..-1].delete_if {|i| i == "-i"} + +end + +jsonlist.each do |l| + + sourcelist << l.gsub(".json",".source") + licenselist << l.gsub(".json",".license") + +end + +# merge jsons + +jsonlist.each do |l| + + open(l) do |f| + + json << JSON.parse(f.read).to_s.gsub(/^\{/,'').gsub(/\}$/,'').gsub("=>",":") + + end + +end + +huge = "{\"#{jsonname}\":{\"version\":\"#{jsonversion}\",\"dependencies\":{" + +json.each do |l| + + huge += l + "," + +end + +huge = huge.gsub(/,$/,'') + "}}}" + +final = JSON.parse(huge) + +open(jsonname + ".json","w") do |f| + f.write JSON.pretty_generate(final) +end + +# merge sources + +i = 1 +mid = [] + +sourcelist.each do |s| + + open(s) do |f| + + f.each_line do |l| + + a = l.gsub(/^Source.*:/,"") + mid << a + + end + + end + +end + +mid = ( mid.uniq! if mid.uniq! ) || mid +p mid + +open(jsonname + ".source","w") do |f| + mid.each do |m| + f.write "Source#{i}:\t\thttp:" + m + i += 1 + end +end + +# merge licenses + +licenselist.each do |li| + + open(li) do |f| + a = f.read.strip + unless li == licenselist.last + license += a + " and " + else + license += a + end + end + +end + +la = license.split(" and ") +la = ( la.uniq! if la.uniq! ) || la + +open(jsonname + ".license","w") do |f| + la.each do |i| + unless i == la.last + f.write i + " and " + else + f.write i + end + end +end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nodejs-packaging-10.beta5/scripts/npkg-mgmt-pkg-batchrm.rb new/nodejs-packaging-10.beta7/scripts/npkg-mgmt-pkg-batchrm.rb --- old/nodejs-packaging-10.beta5/scripts/npkg-mgmt-pkg-batchrm.rb 1970-01-01 01:00:00.000000000 +0100 +++ new/nodejs-packaging-10.beta7/scripts/npkg-mgmt-pkg-batchrm.rb 2016-02-25 01:47:57.000000000 +0100 @@ -0,0 +1,42 @@ +#!/usr/bin/env ruby +require 'fileutils' + +# run in repository workspace on your local machine, +# to drop useless packages, it will: +# 1. delete the previous built RPMs on build service servers +# 2. remote delete the package in the naming project +# 3. remove the package's working directory on your local machine +# 4. clean the repo metadata on your local machine +# you have to have a "packages.txt" first, which can +# be generated using `osc list <prj> | grep <keywords>` +# command or can be written manually. + +array = [] + +File.open("packages.txt",'r:UTF-8') do |f| + f.each_line do |l| + array << l.strip! + end +end + +array.each do |a| + + io2 = IO.popen("osc wipebinaries --all devel:languages:nodejs #{a}") + io2.each_line {|l| puts l} + io2.close + + io1 = IO.popen("osc rdelete devel:languages:nodejs #{a} -m \"deleted\"") + io1.each_line {|l| puts l} + io1.close + + if Dir.glob("./#{a}") + + FileUtils.rm_rf "/home/marguerite/Public/home:MargueriteSu:branches:devel:languages:nodejs/#{a}" + + end + + io = IO.popen("sed -i \"/#{a}/d\" .osc/_packages") + io.each_line {|l| puts l} + io.close + +end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nodejs-packaging-10.beta5/tool/dependencies.rb new/nodejs-packaging-10.beta7/tool/dependencies.rb --- old/nodejs-packaging-10.beta5/tool/dependencies.rb 2016-02-12 18:57:59.000000000 +0100 +++ new/nodejs-packaging-10.beta7/tool/dependencies.rb 1970-01-01 01:00:00.000000000 +0100 @@ -1,246 +0,0 @@ -module Dependencies - - # takes a module name, write all its dependent modules - # and downloadable files in pretty json - - require 'json' - require 'fileutils' -#=begin - require '/usr/lib/rpm/nodejs/semver.rb' - require '/usr/lib/rpm/nodejs/vcmp.rb' - require '/usr/share/npkg/history.rb' - require '/usr/share/npkg/download.rb' - require '/usr/share/npkg/parent.rb' -#=end -=begin - require_relative '../nodejs/semver.rb' - require_relative '../nodejs/vcmp.rb' - require_relative 'history.rb' - require_relative 'download.rb' - require_relative 'parent.rb' -=end - include Semver - include Vcmp - include History - include Download - - @@filelist,@@dependencies = {},{} - @@license = [] - @@number = 0 - - def self.skiploop(name='',version='',parents=[]) - if parents.to_s.index("\"#{name}\"") - ind = parents.index(name) - str = "" - if ind == 0 - str = "@@dependencies[\"#{parents[0]}\"][\"version\"]" - else - for i in 0..ind do - if i == 0 - str = "@@dependencies[\"#{parents[i]}\"][\"dependencies\"]" - elsif i == ind - str += "[\"#{parents[i]}\"][\"version\"]" - else - str += "[\"#{parents[i]}\"][\"dependencies\"]" - end - end - end - verold = eval(str) - if verold == version - return true - else - return false - end - else - return false - end - end - - def self.bundled(name='',version='',bundles={}) - unless bundles.empty? - if bundles.keys.include?(name) - if bundles[name] == version - return true - else - return false - end - else - return false - end - else - return false - end - end - - def self.list(name:'',comparator:'',parent:'',bundles:{}) - - comparator = "*" if comparator.nil? - comphash = Semver.parse(name,comparator) # {'clone':['>=1.0.2','<1.1.0']} - - # get latest latest version - all = History.all(name) - latest = all.last - - # calculate proper version that suits the conditions - comphash.reject! do |_k,hv| - hv.reject! do |v| - op = v.gsub(/[0-9].*$/,'') - ve = v.gsub(op,'') - Vcmp.comp(latest,op,ve) - end - hv.empty? - end - - if comphash.empty? - version = latest - else - comphash.values.each do |values| - values.each do |v| - op = v.gsub(/[0-9].*$/,'') - ve = v.gsub(op,'') - # op: '<=' or '<' - if op == '<' - version = History.last(name,ve) - else - version = ve - end - end - end - end - - # if the resolved version does not exist, use the - # most reasonable version - unless all.include?(version) - candidates = [] - vs = version.split(".").delete_if {|v| v == "0"} # usually delete starts from the last - all.each do |v| - vs1 = v.split(".") - if vs.size == 2 # no vs.size == 3, because if that the version exists in all - if vs1[0] == vs[0] && vs1[1] == vs[1] - candidates << v - end - elsif vs.size == 1 - if vs1[0] == vs[0] - candidates << v - end - end - end - version = candidates[-1] - end - - # find the dependencies - json = {} - open(name,'r:UTF-8') {|f| json = JSON.parse(f.read)["versions"][version]} - - if parent.empty? - @@dependencies[name] = {} - @@dependencies[name]["version"] = version - else - parents = Parent.new(@@dependencies,parent).find - path = Parent.new(@@dependencies,parent).path(parents) - if path.class == String - unless self.skiploop(name,version,parents) # child can't have parent as dependency - if eval(path)["dependencies"].nil? - eval(path)["dependencies"] = {} - eval(path)["dependencies"][name] = {} - eval(path)["dependencies"][name]["version"] = version - else - if eval(path)["dependencies"][name].nil? - eval(path)["dependencies"][name] = {} - eval(path)["dependencies"][name]["version"] = version - end - end - end - else - path.each do |ph| - unless self.skiploop(name,version,parents) - if eval(ph)["dependencies"].nil? - eval(ph)["dependencies"] = {} - eval(ph)["dependencies"][name] = {} - eval(ph)["dependencies"][name]["version"] = version - else - if eval(ph)["dependencies"][name].nil? - eval(ph)["dependencies"][name] = {} - eval(ph)["dependencies"][name]["version"] = version - end - end - end - end - end - end - - @@number += 1 - puts "#{@@number}:#{name}" - - # recursively - unless json["dependencies"].nil? - # don't loop the parent in child & the dependency provided by bundles - unless self.skiploop(name,version,parents) || self.bundled(name,version,bundles) - json["dependencies"].each do |k,v| - self.list(name:k,comparator:v,parent:name,bundles:bundles) - end - end - end - - # write downloadable filelist - if @@filelist[json["name"]] - @@filelist[json["name"]] << json["version"] - else - @@filelist[json["name"]] = [json["version"]] - end - - # write licenses - if ! json["license"].nil? - if json["license"].class == Hash - @@license << json["license"]["type"] - else - @@license << json["license"] - end - elsif ! json["licenses"].nil? - json["licenses"].each do |h| - @@license << h["type"] - end - end - - @@filelist.values.each {|v| v = (v.uniq! if v.uniq!)||v} - @@license = (@@license.uniq! if @@license.uniq!)||@@license - - end - - def self.write(name="",bundles={}) - - self.list(name:name,bundles:bundles) - - open(name + '.json','w:UTF-8') do |f| - f.write JSON.pretty_generate(@@dependencies) - end - - open(name + '.lst','w:UTF-8') do |f| - @@filelist.each do |k,v| - v.each do |i| - f.write "#{k}-#{i}\n" - end - end - end - - open(name + '.license','w:UTF-8') do |f| - unless @@license.size > 1 - @@license.each {|i| f.write i} - else - @@license.each do |i| - unless i == @@license.last - f.write i + " and " - else - f.write i - end - end - end - end - - # clean tmp files - @@filelist.keys.each {|k| FileUtils.rm_rf(k) } - - end - -end - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nodejs-packaging-10.beta5/tool/dependency.rb new/nodejs-packaging-10.beta7/tool/dependency.rb --- old/nodejs-packaging-10.beta5/tool/dependency.rb 1970-01-01 01:00:00.000000000 +0100 +++ new/nodejs-packaging-10.beta7/tool/dependency.rb 2016-02-25 01:47:57.000000000 +0100 @@ -0,0 +1,303 @@ +module Dependency + + # takes a module name, write all its dependent modules + # and downloadable files in pretty json + + require 'json' + require 'fileutils' +#=begin + require '/usr/lib/rpm/nodejs/semver.rb' + require '/usr/lib/rpm/nodejs/vcmp.rb' + require '/usr/share/npkg/history.rb' + require '/usr/share/npkg/download.rb' + require '/usr/share/npkg/parent.rb' +#=end +=begin + require_relative '../nodejs/semver.rb' + require_relative '../nodejs/vcmp.rb' + require_relative 'history.rb' + require_relative 'download.rb' + require_relative 'parent.rb' +=end + include Semver + include Vcmp + include History + include Download + + @@filelist,@@dependencies = {},{} + @@license = [] + @@number = 0 + + def skip(name='',version='',array=[]) + + if array.include?(name) + + ind = 0 + + # find from last + array.to_enum.with_index.reverse_each do |k,i| + if k == name + ind = i + break + end + end + + str = "" + if ind == 0 + str = "@@dependencies[\"#{array[0]}\"][\"version\"]" + else + for i in 0..ind do + if i == 0 + str = "@@dependencies[\"#{array[i]}\"][\"dependencies\"]" + elsif i == ind + str += "[\"#{array[i]}\"][\"version\"]" + else + str += "[\"#{array[i]}\"][\"dependencies\"]" + end + end + end + verold = eval(str) + if verold == version + return 1 + else + return 0 + end + + else + + return -1 + end + + end + + def skiploop(name='',version='',parents=[]) + if ( ! parents.nil? ) && parents.to_s.index("\"#{name}\"") + + if parents[0].class == String + + if skip(name,version,parents) > 0 + return true + else + return false + end + + else + arr = [] + parents.each {|pa| arr << skip(name,version,pa)} + + if arr.include?(0) + return false + else + return true + end + + end + + else + return false + end + end + + def bundled(name='',version='',bundles={}) + unless bundles.empty? + if bundles.keys.include?(name) + if bundles[name] == version + return true + else + return false + end + else + return false + end + else + return false + end + end + + def list(name:'',comparator:'',parent:'',bundles:{}) + + comparator = "*" if comparator.nil? + comphash = Semver.parse(name,comparator) # {'clone':['>=1.0.2','<1.1.0']} + + # get latest latest version + all = History.all(name) + latest = all.last + + # calculate proper version that suits the conditions + comphash.reject! do |_k,hv| + hv.reject! do |v| + op = v.gsub(/[0-9].*$/,'') + ve = v.gsub(op,'') + Vcmp.comp(latest,op,ve) + end + hv.empty? + end + + if comphash.empty? + version = latest + else + comphash.values.each do |values| + values.each do |v| + op = v.gsub(/[0-9].*$/,'') + ve = v.gsub(op,'') + # op: '<=' or '<' + if op == '<' + version = History.last(name,ve) + else + version = ve + end + end + end + end + + # if the resolved version does not exist, use the + # most reasonable version + unless all.include?(version) + candidates = [] + vs = version.split(".").delete_if {|v| v == "0"} # usually delete starts from the last + all.each do |v| + vs1 = v.split(".") + if vs.size == 2 # no vs.size == 3, because if that the version exists in all + if vs1[0] == vs[0] && vs1[1] == vs[1] + candidates << v + end + elsif vs.size == 1 + if vs1[0] == vs[0] + candidates << v + end + end + end + version = candidates[-1] + end + + # find the dependencies + json = {} + open(name,'r:UTF-8') {|f| json = JSON.parse(f.read)["versions"][version]} + + if parent.empty? + @@dependencies[name] = {} + @@dependencies[name]["version"] = version + else + parents = Parent.new(@@dependencies,parent).find + path = Parent.new(@@dependencies,parent).path(parents) + if path.class == String + unless skiploop(name,version,parents) # child can't have parent as dependency + if eval(path)["dependencies"].nil? + eval(path)["dependencies"] = {} + eval(path)["dependencies"][name] = {} + eval(path)["dependencies"][name]["version"] = version + else + if eval(path)["dependencies"][name].nil? + eval(path)["dependencies"][name] = {} + eval(path)["dependencies"][name]["version"] = version + end + end + end + else + path.each do |ph| + unless skiploop(name,version,parents) + if eval(ph)["dependencies"].nil? + eval(ph)["dependencies"] = {} + eval(ph)["dependencies"][name] = {} + eval(ph)["dependencies"][name]["version"] = version + else + if eval(ph)["dependencies"][name].nil? + eval(ph)["dependencies"][name] = {} + eval(ph)["dependencies"][name]["version"] = version + end + end + end + end + end + end + + @@number += 1 + puts "#{@@number}:#{name}" + + # recursively + unless json["dependencies"].nil? + # don't loop the parent in child & the dependency provided by bundles + unless skiploop(name,version,parents) || bundled(name,version,bundles) + json["dependencies"].each do |k,v| + list(name:k,comparator:v,parent:name,bundles:bundles) + end + end + end + + # write downloadable filelist + if @@filelist[json["name"]] + @@filelist[json["name"]] << json["version"] + else + @@filelist[json["name"]] = [json["version"]] + end + + # write licenses + if ! json["license"].nil? + if json["license"].class == Hash + @@license << json["license"]["type"] + elsif json["license"].class == Array + json["license"].each {|h| @@license << h} + else + @@license << json["license"] + end + elsif ! json["licenses"].nil? + if json["licenses"].class == Array + json["licenses"].each do |h| + if h.class == String + @@license << h + else + @@license << h["type"] + end + end + else # Hash + @@license << json["licenses"]["type"] + end + end + + @@filelist.values.each {|v| v = (v.uniq! if v.uniq!)||v} + @@license = (@@license.uniq! if @@license.uniq!)||@@license + + end + + def write(name="",bundles={}) + + list(name:name,bundles:bundles) + + open(name + '.json','w:UTF-8') do |f| + f.write JSON.pretty_generate(@@dependencies) + end + + open(name + '.lst','w:UTF-8') do |f| + @@filelist.each do |k,v| + v.each do |i| + f.write "#{k}-#{i}\n" + end + end + end + + open(name + '.license','w:UTF-8') do |f| + unless @@license.size > 1 + @@license.each {|i| f.write i} + else + @@license.each do |i| + unless i == @@license.last + f.write i + " and " + else + f.write i + end + end + end + end + + # clean tmp files + @@filelist.keys.each {|k| FileUtils.rm_rf(k) } + + end + + module_function :skip,:skiploop + module_function :bundled + module_function :list + module_function :write + +end + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nodejs-packaging-10.beta5/tool/download.rb new/nodejs-packaging-10.beta7/tool/download.rb --- old/nodejs-packaging-10.beta5/tool/download.rb 2016-02-12 18:57:59.000000000 +0100 +++ new/nodejs-packaging-10.beta7/tool/download.rb 2016-02-25 01:47:57.000000000 +0100 @@ -4,7 +4,7 @@ require 'net/http' - def self.get(url='') + def get(url='') path = url.gsub(/^.*\.(com|org)/,'') file = url.gsub(/^.*\//,'') @@ -30,5 +30,7 @@ end + module_function :get + end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nodejs-packaging-10.beta5/tool/history.rb new/nodejs-packaging-10.beta7/tool/history.rb --- old/nodejs-packaging-10.beta5/tool/history.rb 2016-02-12 18:57:59.000000000 +0100 +++ new/nodejs-packaging-10.beta7/tool/history.rb 2016-02-25 01:47:57.000000000 +0100 @@ -46,19 +46,19 @@ def all(name="") url = "http://registry.npmjs.org/" + name - str = "" file = Download.get(url) + json,history = {},[] if File.exist?(file) - File.open(file,'r:UTF-8') {|f| str = f.read} + File.open(file,'r:UTF-8') {|f| json = JSON.parse(f.read)} end - json = JSON.parse(str) - histhash = json["time"].reject! {|k,_v| k == "modified" || k == "created"} - - history = [] - histhash.keys.each {|k| history << k} + histhash.keys.each do |k| + unless json["versions"][k].nil? # "[email protected]" doesn't exist + history << k + end + end return sort(history) # the result is not natively sorted. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nodejs-packaging-10.beta5/tool/npkg new/nodejs-packaging-10.beta7/tool/npkg --- old/nodejs-packaging-10.beta5/tool/npkg 2016-02-12 18:57:59.000000000 +0100 +++ new/nodejs-packaging-10.beta7/tool/npkg 2016-02-25 01:47:57.000000000 +0100 @@ -4,12 +4,15 @@ require 'fileutils' #=begin -require '/usr/share/npkg/dependencies.rb' +require '/usr/share/npkg/dependency.rb' +require '/usr/share/npkg/plugins/bower.rb' #=end =begin -require_relative 'dependencies.rb' +require_relative 'dependency.rb' +require_relative 'plugins/bower.rb' =end -include Dependencies +include Dependency +include Bower name = ARGV[0] bundles = {} @@ -21,7 +24,8 @@ end # generate dependency map, downloadable filelist, and complete license string -Dependencies.write(name,bundles) +puts "Processing dependencies in package.json" +Dependency.write(name,bundles) # generate source.txt @@ -60,18 +64,28 @@ deltanew = new - cross deltanew.each do |d| - unless d == nil + unless d.nil? url = "http://registry.npmjs.org/" + d.gsub(/-[0-9].*$/,'') + "/-/" + d + ".tgz" - IO.popen("wget --tries=0 #{url}") + io = IO.popen("wget --tries=0 #{url}") + io.close end end FileUtils.rm_rf name + '.lst' deltaold.each do |d| - unless d == nil - IO.popen("osc delete #{d}.tgz") + unless d.nil? + p "#{d}.tgz needs to be deleted from source" end end end + +# bower +io = IO.popen("tar -xf #{name}-*.tgz") +io.close +if File.exist? "package/bower.json" + puts "Processing dependencies in bower.json" + Bower.install(name) +end +FileUtils.rm_rf "package" #=end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nodejs-packaging-10.beta5/tool/parent.rb new/nodejs-packaging-10.beta7/tool/parent.rb --- old/nodejs-packaging-10.beta5/tool/parent.rb 2016-02-12 18:57:59.000000000 +0100 +++ new/nodejs-packaging-10.beta7/tool/parent.rb 2016-02-25 01:47:57.000000000 +0100 @@ -16,7 +16,7 @@ find(json.values[0]["dependencies"],parent) else json.keys.each do |k| - unless json[k]["dependencies"] == nil + unless json[k]["dependencies"].nil? if json[k]["dependencies"].to_s.index('"' + parent + '"') @keys << k self.find(json[k]["dependencies"],parent) @@ -46,20 +46,18 @@ def clean_temp(temp=@temp) - newtemp = [temp[-1]] + newtemp,result = [temp[-1]],[] if temp.size > 1 # temp = 1, most of the times don't need to clean last = get_str(temp) looptimes = eval(last).select{|k,v| v.to_s.index(@parent) || k == @parent}.keys.size - if @arrkeys.to_s.scan(@parent).count == looptimes temp.each_index do |i| n = temp.size - i - 1 # 5 - i - #["gulp","gulp-utils","dateformat","meow","read-pkg-up","find-up"] str = get_str(temp[0...n]) s = eval(str).select{|k,v| k != temp[n+1] && ( v.to_s.index(@parent) || k == @parent)} newtemp << temp[n] - if s != nil && s.keys.size >= 1 + if ! s.nil? && s.keys.size >= 1 break else next @@ -68,12 +66,22 @@ end end - return (temp - newtemp) + # delete from the last of temp + temp.to_enum.with_index.reverse_each do |k,i| + + if newtemp.include?(k) + temp.each_with_index {|m,j| result << m unless j == i} + newtemp.delete_if {|n| n == k} + end + + end + + return result end def find(json=@json,parent=@parent) - unless json == nil + unless json.nil? count = json.to_s.scan("\"#{parent}\"").count if count > 1 @@ -81,6 +89,10 @@ if json.keys.size == 1 @temp << json.keys[0] find(json.values[0]["dependencies"],parent) + unless @keys.empty? + @temp.each {|t| @arrkeys << t} + @keys.each {|k| @arrkeys << k} + end else json.each do |k,v| if k == parent || v.to_s.index("\"#{parent}\"") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nodejs-packaging-10.beta5/tool/plugins/bower.rb new/nodejs-packaging-10.beta7/tool/plugins/bower.rb --- old/nodejs-packaging-10.beta5/tool/plugins/bower.rb 1970-01-01 01:00:00.000000000 +0100 +++ new/nodejs-packaging-10.beta7/tool/plugins/bower.rb 2016-02-25 01:47:57.000000000 +0100 @@ -0,0 +1,118 @@ +module Bower + + require 'json' + require 'fileutils' + require 'nokogiri' + require 'open-uri' +#=begin + require '/usr/share/npkg/download.rb' + require '/usr/share/npkg/history.rb' + require '/usr/lib/rpm/nodejs/semver.rb' + require '/usr/lib/rpm/nodejs/vcmp.rb' +#=end +=begin + require_relative "../download.rb" + require_relative "../history.rb" + require_relative "../../nodejs/semver.rb" + require_relative "../../nodejs/vcmp.rb" +=end + include Semver + include Vcmp + include Download + include History + + def dependency(name="") + + json = {} + open("package/bower.json") {|f| json = JSON.parse(f.read)} + return json["dependencies"] + + end + + def lookup(name="") + + json = dependency(name) + jsonnew = {} + + json.each do |k,v| + url,j,version = "",{},"" + file = Download.get("http://bower.herokuapp.com/packages/" + k) + if File.exist?(file) + open(file) {|f| j = JSON.parse(f.read)} + FileUtils.rm_f file + url = j["url"].gsub("git://","https://").gsub(".git","") + html = Nokogiri::HTML(open(url + "/tags")) + versions_pre,versions,matches = [],[],[] + html.xpath('//span[@class="tag-name"]').each {|f| versions_pre << f.text +} + # remove the prefix "v" in eg v3.0.0 + versions_pre.each do |v1| + if v1.index(/^v/) + versions << v1.gsub("v","") + else + versions << v1 + end + end + + semver = Semver.parse(k,v) + versions.each do |i| + arr = [] + semver.values.each do |v1| + v1.each do |v2| + op = v2.gsub(/[0-9].*$/,'') + ve = v2.gsub(op,'') + if Vcmp.comp(i,op,ve) + arr << 1 + else + arr << 0 + end + end + end + matches << i unless arr.include?(0) + end + + match = matches[0] + + versions_pre.each do |v1| + if v1.index(match) + match = v1 + break + end + end + + url = url + "/archive/" + match + ".tar.gz" + + end + jsonnew[k] = url + end + + return jsonnew + + end + + def install(name="") + + json = lookup(name) + json.each do |k,v| + io = IO.popen("mkdir -p bower_components/#{k}") + io.close + io1 = IO.popen("wget #{v}") + io1.close + tarball = v.gsub(/^.*\//,'') + if File.exist? tarball + FileUtils.mv tarball,"bower_components/#{k}/" + end + end + + if File.exist? "bower_components" + io = IO.popen("tar -czf bower_components.tar.gz bower_components") + io.close + FileUtils.rm_rf "bower_components" + end + + end + + module_function :dependency,:lookup,:install + +end + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nodejs-packaging-10.beta5/tool/template new/nodejs-packaging-10.beta7/tool/template --- old/nodejs-packaging-10.beta5/tool/template 2016-02-12 18:57:59.000000000 +0100 +++ new/nodejs-packaging-10.beta7/tool/template 2016-02-25 01:47:57.000000000 +0100 @@ -41,7 +41,7 @@ %nodejs_prep %build -#nothing to do +%nodejs_build %install %nodejs_mkdir @@ -50,7 +50,7 @@ # make your changes here, suppose: # %{buildroot}%{nodejs_sitelib}/%{name} exists # you can copy, modify stuff, like: -# ln -s %{nodejs_sitelib}/gulp/bin/gulp \ +# ln -sf %{nodejs_sitelib}/gulp/bin/gulp \ # %{buildroot}%{_bindir}/gulp # but your changes won't be tracked by files.lst # so write them manually
