Hello community,

here is the log from the commit of package nodejs-packaging for 
openSUSE:Factory checked in at 2016-03-07 13:24:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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-26 22:20:58.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.nodejs-packaging.new/nodejs-packaging.changes   
2016-03-07 13:24:46.000000000 +0100
@@ -1,0 +2,17 @@
+Tue Mar  1 10:52:38 UTC 2016 - i...@marguerite.su
+
+- update version v10.beta9
+  * expose build log in nodejs_build macro
+  * nodejs_build: more general build using node-gyp,
+    depends on the existence of compiled .node files
+  * filter 'sample' directory when copying files
+  * auto link executables in bin to /usr/bin, you can
+    delete unneeded ones later
+  * add nodejs_check macro, easy to check for unsatisfied
+    dependency now
+  * bugfix: semver.rb can't handle version like '1.0.0-rc3'
+  * bugfix: sometimes 'engines' tag is empty
+  * bugfix: nodejs-fixdep can't handle multiple occurance
+    of the same module
+
+-------------------------------------------------------------------

Old:
----
  nodejs-packaging-10.beta8.tar.gz

New:
----
  nodejs-packaging-10.beta9.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ nodejs-packaging.spec ++++++
--- /var/tmp/diff_new_pack.21ogc6/_old  2016-03-07 13:24:46.000000000 +0100
+++ /var/tmp/diff_new_pack.21ogc6/_new  2016-03-07 13:24:46.000000000 +0100
@@ -18,7 +18,7 @@
 
 %define         _rpmconfigdir %{_prefix}/lib/rpm
 Name:           nodejs-packaging
-Version:        10.beta8
+Version:        10.beta9
 Release:        0
 Summary:        Node.js Dependency generators for openSUSE
 License:        MIT
@@ -26,9 +26,11 @@
 Url:            https://github.com/marguerite/nodejs-packaging
 Source:         %{name}-%{version}.tar.gz
 BuildArch:      noarch
+Requires:       gcc-c++
 Requires:       nodejs-devel
+Requires:       npm
+Requires:       python
 Requires:       ruby
-Requires:       npm(npm)
 Requires:       rubygem(json)
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 
@@ -70,13 +72,14 @@
 ln -sf %{_datadir}/npkg/npkg %{buildroot}%{_bindir}/npkg
 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
 install -m0755 nodejs.rb %{buildroot}%{_rpmconfigdir}/nodejs.rb
 install -m0755 nodejs-fixdep.rb %{buildroot}%{_rpmconfigdir}/nodejs-fixdep.rb
+install -m0755 nodejs-check.rb %{buildroot}%{_rpmconfigdir}/nodejs-check.rb
+install -m0755 nodejs-symlink-deps.rb 
%{buildroot}%{_rpmconfigdir}/nodejs-symlink-deps.rb
 
 %files
 %defattr(-,root,root)
@@ -94,6 +97,8 @@
 %{_rpmconfigdir}/nodejs.req
 %{_rpmconfigdir}/nodejs.rb
 %{_rpmconfigdir}/nodejs-fixdep.rb
+%{_rpmconfigdir}/nodejs-symlink-deps.rb
+%{_rpmconfigdir}/nodejs-check.rb
 %{_rpmconfigdir}/nodejs
 
 %files -n npkg

++++++ nodejs-packaging-10.beta8.tar.gz -> nodejs-packaging-10.beta9.tar.gz 
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nodejs-packaging-10.beta8/macros.nodejs 
new/nodejs-packaging-10.beta9/macros.nodejs
--- old/nodejs-packaging-10.beta8/macros.nodejs 2016-02-26 16:51:36.000000000 
+0100
+++ new/nodejs-packaging-10.beta9/macros.nodejs 2016-03-01 11:42:59.000000000 
+0100
@@ -29,12 +29,14 @@
 
 %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_build %{_prefix}/lib/rpm/nodejs.rb --build
+%nodejs_clean %{_prefix}/lib/rpm/nodejs.rb --clean
 %nodejs_filelist %{_prefix}/lib/rpm/nodejs.rb --filelist
 
 %nodejs_symlink_deps %{_prefix}/lib/rpm/nodejs-symlink-deps.rb
 %nodejs_fixdep %{_prefix}/lib/rpm/nodejs-fixdep.rb
+%nodejs_check %{_prefix}/lib/rpm/nodejs-check.rb
 
 #compat opensuse
 %nodejs_modulesdir %{nodejs_sitelib}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nodejs-packaging-10.beta8/nodejs/semver.rb 
new/nodejs-packaging-10.beta9/nodejs/semver.rb
--- old/nodejs-packaging-10.beta8/nodejs/semver.rb      2016-02-26 
16:51:36.000000000 +0100
+++ new/nodejs-packaging-10.beta9/nodejs/semver.rb      2016-03-01 
11:42:59.000000000 +0100
@@ -84,10 +84,9 @@
                     va = [vs,'0','0']
                 end
 
-                # from now on, version_array.size = 3
-
                 default_op = ["~","^","*",
                             ">",">=","<","<="]
+               left = va[va.size - 1] if va.size > 3
 
                 if default_op.include?(op)
 
@@ -97,9 +96,17 @@
                         va[2] = "0" if va[2].index(/x|X/)
                         
                         if dep.has_key?(name)
+                         if left
+                           dep[name] << ">#{va[0]}.#{va[1]}.#{va[2]}-#{left}"
+                         else
                             dep[name] << ">#{va[0]}.#{va[1]}.#{va[2]}"
+                         end
                         else
+                         if left
+                           dep[name] = [">#{va[0]}.#{va[1]}.#{va[2]}-#{left}"]
+                         else
                             dep[name] = [">#{va[0]}.#{va[1]}.#{va[2]}"]
+                         end
                         end
                         
                     when ">="
@@ -107,9 +114,17 @@
                         va[2] = "0" if va[2].index(/x|X/)
                         
                         if dep.has_key?(name)
+                          if left
+                            dep[name] << ">=#{va[0]}.#{va[1]}.#{va[2]}-#{left}"
+                          else
                             dep[name] << ">=#{va[0]}.#{va[1]}.#{va[2]}"
+                          end
                         else
+                          if left
+                            dep[name] = 
[">=#{va[0]}.#{va[1]}.#{va[2]}-#{left}"]
+                          else
                             dep[name] = [">=#{va[0]}.#{va[1]}.#{va[2]}"]
+                          end
                         end
                         
                     when "<"
@@ -117,9 +132,17 @@
                         va[2] = "0" if va[2].index(/x|X/)
                         
                         if dep.has_key?(name)
+                          if left
+                            dep[name] << "<#{va[0]}.#{va[1]}.#{va[2]}-#{left}"
+                          else
                             dep[name] << "<#{va[0]}.#{va[1]}.#{va[2]}"
+                          end
                         else
+                          if left
+                            dep[name] = ["<#{va[0]}.#{va[1]}.#{va[2]}-#{left}"]
+                          else
                             dep[name] = ["<#{va[0]}.#{va[1]}.#{va[2]}"]
+                          end
                         end
                         
                     when "<="
@@ -127,17 +150,26 @@
                         va[2] = "0" if va[2].index(/x|X/)
                         
                         if dep.has_key?(name)
+                          if left
+                            dep[name] << "<=#{va[0]}.#{va[1]}.#{va[2]}-#{left}"
+                          else
                             dep[name] << "<=#{va[0]}.#{va[1]}.#{va[2]}"
+                          end
                         else
+                          if left
+                            dep[name] = 
["<=#{va[0]}.#{va[1]}.#{va[2]}-#{left}"]
+                          else
                             dep[name] = ["<=#{va[0]}.#{va[1]}.#{va[2]}"]
+                          end
                         end
                         
                     when "~"
+                       # ["1", "0", "0", "rc3"]
                         if va[0] == '0'
                             if va[1].index(/x|X/)
                                 high = "1.0.0"
                             else
-                                high = '0.' + (va[1].to_i + 1).to_s + '.0'
+                                high = '0.' + (va[1].to_i + 1).to_s + ".0"
                             end
                         else
                             if va[1].index(/x|X/) || va[1] == '0' && va[2] == 
'0'
@@ -148,8 +180,12 @@
                         end
                         va[1] = "0" if va[1].index(/x|X/)
                         va[2] = "0" if va[2].index(/x|X/)
-                        low = va[0] + '.' + va[1] + '.' + va[2]
-                        
+                       if left
+                         low = va[0] + '.' + va[1] + '.' + va[2] + '-' + left
+                       else
+                          low = va[0] + '.' + va[1] + '.' + va[2]
+                       end
+
                         if dep.has_key?(name)
                             dep[name] << ">=#{low}"
                             dep[name] << "<#{high}"
@@ -173,7 +209,11 @@
                         end
                         va[1] = "0" if va[1].index(/x|X/)
                         va[2] = "0" if va[2].index(/x|X/)
-                        low = va[0] + '.' + va[1] + '.' + va[2]
+                       if left
+                         low = va[0] + '.' + va[1] + '.' + va[2] + '-' + left
+                       else
+                          low = va[0] + '.' + va[1] + '.' + va[2]
+                       end
                         
                         if dep.has_key?(name)
                             dep[name] << ">=#{low}"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nodejs-packaging-10.beta8/nodejs-check.rb 
new/nodejs-packaging-10.beta9/nodejs-check.rb
--- old/nodejs-packaging-10.beta8/nodejs-check.rb       1970-01-01 
01:00:00.000000000 +0100
+++ new/nodejs-packaging-10.beta9/nodejs-check.rb       2016-03-01 
11:42:59.000000000 +0100
@@ -0,0 +1,34 @@
+#!/usr/bin/env ruby
+require 'json'
+
+require '/usr/lib/rpm/nodejs/bundles.rb'
+include Bundles
+
+buildroot = Bundles.getbuildroot
+sitelib = Bundles.getsitelib
+
+# check where a module comes from
+mod = ARGV[0]
+
+unless mod.nil?
+  Dir.glob(buildroot + sitelib + "/**/package.json") do |f|
+    open(f) do |file|
+      json = JSON.parse(file.read)
+      unless json["dependencies"].nil?
+        puts f if json["dependencies"].include?(mod)
+      end
+    end
+  end
+end
+
+# check left-over bower.json dependencies
+Dir.glob(buildroot + sitelib + "/**/*") do |f|
+  if f.end_with?("bower.json")
+    open(f) do |file|
+      json = JSON.parse(file.read)
+      unless json["dependencies"].nil? || json["dependencies"].empty?
+       puts f.gsub(/^.*node_modules\//,'').gsub(/\/bower\.json/,'') + " has 
dependencies in bower.json, please do something"
+      end
+    end
+  end
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nodejs-packaging-10.beta8/nodejs-fixdep.rb 
new/nodejs-packaging-10.beta9/nodejs-fixdep.rb
--- old/nodejs-packaging-10.beta8/nodejs-fixdep.rb      2016-02-26 
16:51:36.000000000 +0100
+++ new/nodejs-packaging-10.beta9/nodejs-fixdep.rb      2016-03-01 
11:42:59.000000000 +0100
@@ -20,14 +20,13 @@
 json = {}
 
 files.each do |f|
-       pkgjson = f if f.index(pkgname + "/package.json")
+    if f.index(pkgname + "/package.json")
+        # get its parent
+        pkgjson = f.gsub('node_modules/' + pkgname + '/package.json','') + 
"package.json"
+       if File.exist? pkgjson
+          File.open(pkgjson,'r:UTF-8') {|f| json = JSON.parse(f.read)}
+         json["dependencies"][pkgname] = dep
+         File.open(pkgjson,'w:UTF-8') {|f| f.write JSON.pretty_generate(json) }
+       end
+    end
 end
-
-# get its parent
-pkgjson = pkgjson.gsub('node_modules/' + pkgname + '/package.json','') + 
"package.json"
-
-File.open(pkgjson,'r:UTF-8') {|f| json = JSON.parse(f.read)}
-
-json["dependencies"][pkgname] = dep
-
-File.open(pkgjson,'w:UTF-8') {|f| f.write JSON.pretty_generate(json) }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nodejs-packaging-10.beta8/nodejs.rb 
new/nodejs-packaging-10.beta9/nodejs.rb
--- old/nodejs-packaging-10.beta8/nodejs.rb     2016-02-26 16:51:36.000000000 
+0100
+++ new/nodejs-packaging-10.beta9/nodejs.rb     2016-03-01 11:42:59.000000000 
+0100
@@ -108,12 +108,7 @@
 
 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?
-       if File.file?(file) && File.executable?(file) && f.grep("bin").empty?
-         puts "Fixing permission: " + file
-         io = IO.popen("chmod -x #{file}")
-         io.close
-        end
+    if 
f.grep(/^\..*$|.*~$|\.bat$|\.cmd$|Makefile|test(s)?(\.js)?|example(s)?(\.js)?|benchmark(s)?(\.js)?|sample(s)?(\.js)?|\.sh$|_test\.|browser$|\.orig$|\.bak$|windows|\.sln$|\.njsproj$|\.exe$|appveyor\.yml/).empty?
        return file
     else
         return nil
@@ -161,8 +156,8 @@
 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")
+    Dir.glob(buildroot + "/**/*") do |f|
+        if f.end_with?(".c") || f.end_with?(".cc") || f.end_with?(".cpp")
             name = f.gsub(/^.*node_modules\//,'').gsub(/\/.*$/,'')
             prefix = f.gsub(buildroot,'').gsub(/#{name}\/.*$/,'')
             prefix = buildroot + prefix + name
@@ -171,17 +166,21 @@
     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)/)
+       gyp = Dir.glob(b + "/**/*").select{|f| f.end_with?(".gyp")}
+       node = Dir.glob(b + "/**/*").select{|f| f.end_with?(".node")}
+       if ! gyp.empty? && ! node.empty?
+          io = IO.popen("pushd #{b} && npm build -f && popd")
+         io.each_line {|l| puts l}
+         io.close
+       elsif ! gyp.empty? && node.empty?
+         node_gyp = 
Dir.glob("/usr/lib*/node_modules/npm/node_modules/node-gyp/bin")[0] + 
"/node-gyp.js"
+         io1 = IO.popen("pushd #{b} && #{node_gyp} rebuild && popd")
+          io1.each_line {|l| puts l}
+          io1.close
+        end
     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|
@@ -190,7 +189,8 @@
            recursive_copy(f,dir)
         end
     end
-    
+
+    # rename    
     Dir.glob(buildroot + "/**/*").sort{|x| x.size}.each do |dir|
         name = dir.gsub(/^.*\//,'')
        prefix = dir.gsub(buildroot,'').gsub(name,'')
@@ -198,6 +198,19 @@
                 FileUtils.mv dir,buildroot + prefix + name.gsub(/-[0-9].*$/,'')
         end
     end
+
+    # auto symlink executables in bin to /usr/bin
+    Dir.glob(buildroot + "/**/*") do |f|
+       unless f.split("/").grep("bin").empty? || f.end_with?(".node")
+         if File.file?(f) && File.executable?(f)
+               FileUtils.mkdir_p buildroot + "/usr/bin" unless 
Dir.exist?(buildroot + "/usr/bin")
+               name = f.gsub(/^.*\/bin\//,'')
+               prefix = f.gsub(buildroot,'').gsub(/#{name}$/,'')
+               puts "Linking #{prefix}#{name} to /usr/bin/#{name}"
+               FileUtils.ln_sf prefix + name, buildroot + "/usr/bin/" + name
+         end
+       end
+    end
     
     # bower
     main = Dir.glob(buildroot + sitelib + "/*")[0]
@@ -232,6 +245,28 @@
        end  
     end
  
+when "--clean"
+
+  # clean source files
+  Dir.glob(buildroot + sitelib + "/**/{*,.*}") do |f|
+    if f.end_with?(".c") || f.end_with?(".h") || f.end_with?(".cc") || 
f.end_with?(".cpp") || f.end_with?(".o") || f.gsub(/^.*\//,'').start_with?(".") 
|| f.end_with?("Makefile") || f.end_with?(".mk") || f.end_with?(".gyp") || 
f.end_with?(".gypi")
+       puts "Cleaning " + f
+       FileUtils.rm_rf f
+    end
+    unless f.index("build/Release")
+      if File.file?(f) && File.executable?(f) && 
f.split("/").grep("bin").empty?
+        puts "Fixing permission: " + f
+        io = IO.popen("chmod -x #{f}")
+        io.close
+      end
+    else
+       FileUtils.rm_rf f if f.index("obj.target")
+    end
+  end
+
+  # clean empty directories
+  Dir[buildroot + sitelib + "/**/{*,.*}"].select{|d| File.directory? 
d}.select{|d| (Dir.entries(d) - %w[ . .. ]).empty?}.each{|d| Dir.rmdir d}
+
 when "--filelist"
     
     open(sourcedir + "/files.lst","w:UTF-8") do |file|
@@ -244,7 +279,6 @@
                 file.write f.gsub(buildroot,'') + "\n"
             end
         end
-    end
-    
+    end 
 end
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nodejs-packaging-10.beta8/nodejs.req 
new/nodejs-packaging-10.beta9/nodejs.req
--- old/nodejs-packaging-10.beta8/nodejs.req    2016-02-26 16:51:36.000000000 
+0100
+++ new/nodejs-packaging-10.beta9/nodejs.req    2016-03-01 11:42:59.000000000 
+0100
@@ -25,7 +25,7 @@
        js = {}
         File.open(f,'r:UTF-8') {|f1| js = JSON.parse(f1.read)}
         
-        unless js["dependencies"] == nil
+        unless js["dependencies"].nil?
             js["dependencies"].each do |k,v|
                 deps = Semver.parse(k,v)
                 # {"semver"=>[">=4.1.0","<5.0.0"]}
@@ -145,4 +145,4 @@
        end             
 end
 
-puts "nodejs(engine) >= #{max[0]}.#{max[1]}.#{max[2]}"
+puts "nodejs(engine) >= #{max[0]}.#{max[1]}.#{max[2]}" unless max.empty?
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nodejs-packaging-10.beta8/tool/template 
new/nodejs-packaging-10.beta9/tool/template
--- old/nodejs-packaging-10.beta8/tool/template 2016-02-26 16:51:36.000000000 
+0100
+++ new/nodejs-packaging-10.beta9/tool/template 2016-03-01 11:42:59.000000000 
+0100
@@ -41,11 +41,13 @@
 %nodejs_prep
 
 %build
-%nodejs_build
+# nothing to do
 
 %install
 %nodejs_mkdir
 %nodejs_copy
+%nodejs_build
+%nodejs_clean
 %nodejs_filelist
 # make your changes here, suppose:
 # %{buildroot}%{nodejs_sitelib}/%{name} exists


Reply via email to