You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

279 lines
8.8 KiB

ruby: update to 3.0.0 This release goal is performance, concurrency, and typing. See details in https://www.ruby-lang.org/en/news/2020/12/25/ruby-3-0-0-released/ New subpackages (reflect of mostly complete upstream ruby gemification) - ruby-abbrev (from ruby-misc) - ruby-base64 (from ruby-misc) - ruby-coverage (from ruby-misc) - ruby-continuation (from ruby-misc) - ruby-debug (from ruby-debuglib) - ruby-english (from ruby-misc) - ruby-expect (from ruby-misc) - ruby-fiber (from ruby-misc) - ruby-find (from ruby-filelib) - ruby-io-nonblock (from ruby-multithread) - ruby-io-wait (from ruby-multithread) - ruby-monitor (from ruby-multithread) - ruby-net-ftp (from ruby-net) - ruby-net-http (from ruby-net) - ruby-net-imap (from ruby-net) - ruby-net-pop (from ruby-net) - ruby-net-protocol (from ruby-net) - ruby-objspace (from ruby-debuglib) - ruby-open-uri (from ruby-net) - ruby-pathname (from ruby-filelib) - ruby-pp (from ruby-prettyprint) - ruby-pty (from ruby-misc) - ruby-rbs (NEW) - ruby-resolv (from ruby-socket) - ruby-resolv-replace (from ruby-socket) - ruby-securerandom (from ruby-misc) - ruby-set (from ruby-misc) - ruby-shellwords (from ruby-misc) - ruby-syslog (from ruby-logger) - ruby-tempfile (from ruby-filelib) - ruby-tmpdir (from ruby-filelib) - ruby-tsort (from ruby-misc) - ruby-typeprof (NEW) - ruby-un (from ruby-mkmf) - ruby-weakref (from ruby-misc) Removed subpackages - ruby-debuglib (split into ruby-debug,ruby-objspace) - ruby-filelib (split into ruby-find,ruby-pathname,ruby-tempfile,ruby-tmpdir) - ruby-misc (split into ruby-abbrev,ruby-base64,ruby-continuation, ruby-coverage,ruby-english,ruby-expect,ruby-fiber,ruby-securerandom, ruby-set,ruby-shellwords,ruby-tsort,ruby-weakref) - ruby-multithread (split into ruby-io-nonblock,ruby-io-wait,ruby-monitor) - ruby-net (split into ruby-net-ftp,ruby-net-http,ruby-net-imap,ruby-net-pop, ruby-net-protocol,ruby-open-uri) - ruby-net-telnet (removed upstream) - ruby-sdbm (removed upstream) - ruby-webrick (removed upstream) - ruby-xmlrpc (removed upstream) Signed-off-by: Luiz Angelo Daros de Luca <luizluca@gmail.com>
4 years ago
ruby: update to 3.0.0 This release goal is performance, concurrency, and typing. See details in https://www.ruby-lang.org/en/news/2020/12/25/ruby-3-0-0-released/ New subpackages (reflect of mostly complete upstream ruby gemification) - ruby-abbrev (from ruby-misc) - ruby-base64 (from ruby-misc) - ruby-coverage (from ruby-misc) - ruby-continuation (from ruby-misc) - ruby-debug (from ruby-debuglib) - ruby-english (from ruby-misc) - ruby-expect (from ruby-misc) - ruby-fiber (from ruby-misc) - ruby-find (from ruby-filelib) - ruby-io-nonblock (from ruby-multithread) - ruby-io-wait (from ruby-multithread) - ruby-monitor (from ruby-multithread) - ruby-net-ftp (from ruby-net) - ruby-net-http (from ruby-net) - ruby-net-imap (from ruby-net) - ruby-net-pop (from ruby-net) - ruby-net-protocol (from ruby-net) - ruby-objspace (from ruby-debuglib) - ruby-open-uri (from ruby-net) - ruby-pathname (from ruby-filelib) - ruby-pp (from ruby-prettyprint) - ruby-pty (from ruby-misc) - ruby-rbs (NEW) - ruby-resolv (from ruby-socket) - ruby-resolv-replace (from ruby-socket) - ruby-securerandom (from ruby-misc) - ruby-set (from ruby-misc) - ruby-shellwords (from ruby-misc) - ruby-syslog (from ruby-logger) - ruby-tempfile (from ruby-filelib) - ruby-tmpdir (from ruby-filelib) - ruby-tsort (from ruby-misc) - ruby-typeprof (NEW) - ruby-un (from ruby-mkmf) - ruby-weakref (from ruby-misc) Removed subpackages - ruby-debuglib (split into ruby-debug,ruby-objspace) - ruby-filelib (split into ruby-find,ruby-pathname,ruby-tempfile,ruby-tmpdir) - ruby-misc (split into ruby-abbrev,ruby-base64,ruby-continuation, ruby-coverage,ruby-english,ruby-expect,ruby-fiber,ruby-securerandom, ruby-set,ruby-shellwords,ruby-tsort,ruby-weakref) - ruby-multithread (split into ruby-io-nonblock,ruby-io-wait,ruby-monitor) - ruby-net (split into ruby-net-ftp,ruby-net-http,ruby-net-imap,ruby-net-pop, ruby-net-protocol,ruby-open-uri) - ruby-net-telnet (removed upstream) - ruby-sdbm (removed upstream) - ruby-webrick (removed upstream) - ruby-xmlrpc (removed upstream) Signed-off-by: Luiz Angelo Daros de Luca <luizluca@gmail.com>
4 years ago
ruby: update to 3.0.0 This release goal is performance, concurrency, and typing. See details in https://www.ruby-lang.org/en/news/2020/12/25/ruby-3-0-0-released/ New subpackages (reflect of mostly complete upstream ruby gemification) - ruby-abbrev (from ruby-misc) - ruby-base64 (from ruby-misc) - ruby-coverage (from ruby-misc) - ruby-continuation (from ruby-misc) - ruby-debug (from ruby-debuglib) - ruby-english (from ruby-misc) - ruby-expect (from ruby-misc) - ruby-fiber (from ruby-misc) - ruby-find (from ruby-filelib) - ruby-io-nonblock (from ruby-multithread) - ruby-io-wait (from ruby-multithread) - ruby-monitor (from ruby-multithread) - ruby-net-ftp (from ruby-net) - ruby-net-http (from ruby-net) - ruby-net-imap (from ruby-net) - ruby-net-pop (from ruby-net) - ruby-net-protocol (from ruby-net) - ruby-objspace (from ruby-debuglib) - ruby-open-uri (from ruby-net) - ruby-pathname (from ruby-filelib) - ruby-pp (from ruby-prettyprint) - ruby-pty (from ruby-misc) - ruby-rbs (NEW) - ruby-resolv (from ruby-socket) - ruby-resolv-replace (from ruby-socket) - ruby-securerandom (from ruby-misc) - ruby-set (from ruby-misc) - ruby-shellwords (from ruby-misc) - ruby-syslog (from ruby-logger) - ruby-tempfile (from ruby-filelib) - ruby-tmpdir (from ruby-filelib) - ruby-tsort (from ruby-misc) - ruby-typeprof (NEW) - ruby-un (from ruby-mkmf) - ruby-weakref (from ruby-misc) Removed subpackages - ruby-debuglib (split into ruby-debug,ruby-objspace) - ruby-filelib (split into ruby-find,ruby-pathname,ruby-tempfile,ruby-tmpdir) - ruby-misc (split into ruby-abbrev,ruby-base64,ruby-continuation, ruby-coverage,ruby-english,ruby-expect,ruby-fiber,ruby-securerandom, ruby-set,ruby-shellwords,ruby-tsort,ruby-weakref) - ruby-multithread (split into ruby-io-nonblock,ruby-io-wait,ruby-monitor) - ruby-net (split into ruby-net-ftp,ruby-net-http,ruby-net-imap,ruby-net-pop, ruby-net-protocol,ruby-open-uri) - ruby-net-telnet (removed upstream) - ruby-sdbm (removed upstream) - ruby-webrick (removed upstream) - ruby-xmlrpc (removed upstream) Signed-off-by: Luiz Angelo Daros de Luca <luizluca@gmail.com>
4 years ago
ruby: update to 3.0.0 This release goal is performance, concurrency, and typing. See details in https://www.ruby-lang.org/en/news/2020/12/25/ruby-3-0-0-released/ New subpackages (reflect of mostly complete upstream ruby gemification) - ruby-abbrev (from ruby-misc) - ruby-base64 (from ruby-misc) - ruby-coverage (from ruby-misc) - ruby-continuation (from ruby-misc) - ruby-debug (from ruby-debuglib) - ruby-english (from ruby-misc) - ruby-expect (from ruby-misc) - ruby-fiber (from ruby-misc) - ruby-find (from ruby-filelib) - ruby-io-nonblock (from ruby-multithread) - ruby-io-wait (from ruby-multithread) - ruby-monitor (from ruby-multithread) - ruby-net-ftp (from ruby-net) - ruby-net-http (from ruby-net) - ruby-net-imap (from ruby-net) - ruby-net-pop (from ruby-net) - ruby-net-protocol (from ruby-net) - ruby-objspace (from ruby-debuglib) - ruby-open-uri (from ruby-net) - ruby-pathname (from ruby-filelib) - ruby-pp (from ruby-prettyprint) - ruby-pty (from ruby-misc) - ruby-rbs (NEW) - ruby-resolv (from ruby-socket) - ruby-resolv-replace (from ruby-socket) - ruby-securerandom (from ruby-misc) - ruby-set (from ruby-misc) - ruby-shellwords (from ruby-misc) - ruby-syslog (from ruby-logger) - ruby-tempfile (from ruby-filelib) - ruby-tmpdir (from ruby-filelib) - ruby-tsort (from ruby-misc) - ruby-typeprof (NEW) - ruby-un (from ruby-mkmf) - ruby-weakref (from ruby-misc) Removed subpackages - ruby-debuglib (split into ruby-debug,ruby-objspace) - ruby-filelib (split into ruby-find,ruby-pathname,ruby-tempfile,ruby-tmpdir) - ruby-misc (split into ruby-abbrev,ruby-base64,ruby-continuation, ruby-coverage,ruby-english,ruby-expect,ruby-fiber,ruby-securerandom, ruby-set,ruby-shellwords,ruby-tsort,ruby-weakref) - ruby-multithread (split into ruby-io-nonblock,ruby-io-wait,ruby-monitor) - ruby-net (split into ruby-net-ftp,ruby-net-http,ruby-net-imap,ruby-net-pop, ruby-net-protocol,ruby-open-uri) - ruby-net-telnet (removed upstream) - ruby-sdbm (removed upstream) - ruby-webrick (removed upstream) - ruby-xmlrpc (removed upstream) Signed-off-by: Luiz Angelo Daros de Luca <luizluca@gmail.com>
4 years ago
ruby: update to 3.0.0 This release goal is performance, concurrency, and typing. See details in https://www.ruby-lang.org/en/news/2020/12/25/ruby-3-0-0-released/ New subpackages (reflect of mostly complete upstream ruby gemification) - ruby-abbrev (from ruby-misc) - ruby-base64 (from ruby-misc) - ruby-coverage (from ruby-misc) - ruby-continuation (from ruby-misc) - ruby-debug (from ruby-debuglib) - ruby-english (from ruby-misc) - ruby-expect (from ruby-misc) - ruby-fiber (from ruby-misc) - ruby-find (from ruby-filelib) - ruby-io-nonblock (from ruby-multithread) - ruby-io-wait (from ruby-multithread) - ruby-monitor (from ruby-multithread) - ruby-net-ftp (from ruby-net) - ruby-net-http (from ruby-net) - ruby-net-imap (from ruby-net) - ruby-net-pop (from ruby-net) - ruby-net-protocol (from ruby-net) - ruby-objspace (from ruby-debuglib) - ruby-open-uri (from ruby-net) - ruby-pathname (from ruby-filelib) - ruby-pp (from ruby-prettyprint) - ruby-pty (from ruby-misc) - ruby-rbs (NEW) - ruby-resolv (from ruby-socket) - ruby-resolv-replace (from ruby-socket) - ruby-securerandom (from ruby-misc) - ruby-set (from ruby-misc) - ruby-shellwords (from ruby-misc) - ruby-syslog (from ruby-logger) - ruby-tempfile (from ruby-filelib) - ruby-tmpdir (from ruby-filelib) - ruby-tsort (from ruby-misc) - ruby-typeprof (NEW) - ruby-un (from ruby-mkmf) - ruby-weakref (from ruby-misc) Removed subpackages - ruby-debuglib (split into ruby-debug,ruby-objspace) - ruby-filelib (split into ruby-find,ruby-pathname,ruby-tempfile,ruby-tmpdir) - ruby-misc (split into ruby-abbrev,ruby-base64,ruby-continuation, ruby-coverage,ruby-english,ruby-expect,ruby-fiber,ruby-securerandom, ruby-set,ruby-shellwords,ruby-tsort,ruby-weakref) - ruby-multithread (split into ruby-io-nonblock,ruby-io-wait,ruby-monitor) - ruby-net (split into ruby-net-ftp,ruby-net-http,ruby-net-imap,ruby-net-pop, ruby-net-protocol,ruby-open-uri) - ruby-net-telnet (removed upstream) - ruby-sdbm (removed upstream) - ruby-webrick (removed upstream) - ruby-xmlrpc (removed upstream) Signed-off-by: Luiz Angelo Daros de Luca <luizluca@gmail.com>
4 years ago
  1. #!/usr/bin/ruby -Eutf-8
  2. # encoding: utf-8
  3. #
  4. # Find dependencies between ruby packages
  5. #
  6. # Must run inside a openwrt with all *ruby* packages installed
  7. #
  8. RUBY_SIMPLE_VERSION = RUBY_VERSION.split(".")[0..1].join(".")
  9. failed = false
  10. puts "Loading all installed gems (unstable after external gems are instaled/update)"
  11. require 'rubygems'
  12. Gem::Specification.collect{ |g| g.name.downcase }.uniq.each {|g| gem g }
  13. puts "Looking for installed ruby packages..."
  14. packages=`opkg list-installed '*ruby*' | cut -d' ' -f 1`.split("\n")
  15. puts "Looking for packages files..."
  16. package_files=Hash.new { |h,k| h[k]=[] }
  17. packages.each do
  18. |pkg|
  19. files=`opkg files "#{pkg}" | sed -e 1d`.split("\n")
  20. package_files[pkg]=files if files
  21. end
  22. require_regex=/^require ["']([^"']+)["'].*/
  23. require_regex_ignore=/^require ([a-zA-Z\$]|["']$|.*\/$)/
  24. require_ignore=%w{foo rubygems/defaults/operating_system win32console java Win32API
  25. builder/xchar json/pure simplecov win32/sspi rdoc/markdown/literals_1_8 enumerator win32/resolv rbtree
  26. xmlscan/parser xmlscan/scanner xmltreebuilder xml/parser xmlparser xml/encoding-ja xmlencoding-ja
  27. iconv uconv win32ole gettext/po_parser gettext/mo libxml psych.jar psych_jars jar-dependencies thread minitest/proveit
  28. bundler pry bcrypt net/http/pipeline capistrano/version rubygems/builder rubygems/format diff/lcs graphviz
  29. win32api racc/cparse-jruby.jar profile profiler sorted_set jruby coverage/helpers stackprof webrick/https webrick
  30. }
  31. builtin_enc=[
  32. Encoding.find("ASCII-8BIT"),
  33. Encoding.find("UTF-8"),
  34. Encoding.find("UTF-7"),
  35. Encoding.find("US-ASCII"),
  36. ]
  37. puts "Looking for requires in files..."
  38. files_requires=Hash.new { |h,k| h[k]=[] }
  39. packages.each do
  40. |pkg|
  41. package_files[pkg].each do
  42. |file|
  43. next if not File.file?(file)
  44. if not file =~ /.rb$/
  45. if File.executable?(file)
  46. magic=`head -c50 '#{file}' | head -1`
  47. begin
  48. if not magic =~ /ruby/
  49. next
  50. end
  51. rescue
  52. next
  53. end
  54. else
  55. next
  56. end
  57. end
  58. #puts "Checking #{file}..."
  59. File.open(file, "r") do
  60. |f|
  61. lineno=0
  62. while line=f.gets() do
  63. lineno+=1; encs=[]; requires=[]; need_encdb=false
  64. line=line.chomp.gsub!(/^[[:blank:]]*/,"")
  65. case line
  66. when /^#.*coding *:/
  67. if lineno <= 2
  68. enc=line.sub(/.*coding *: */,"").sub(/ .*/,"")
  69. encs << Encoding.find(enc)
  70. end
  71. end
  72. line.gsub!(/#.*/,"")
  73. case line
  74. when "__END__"
  75. break
  76. when /^require /
  77. #puts "#{file}:#{line}"
  78. if require_regex_ignore =~ line
  79. #puts "Ignoring #{line} at #{file}:#{lineno} (REGEX)..."
  80. next
  81. end
  82. if not require_regex =~ line
  83. puts "Unknown require: '#{line}' at file #{file}:#{lineno}"
  84. failed=true
  85. end
  86. require=line.gsub(require_regex,"\\1")
  87. require.gsub!(/\.(so|rb)$/,"")
  88. if require_ignore.include?(require)
  89. #puts "Ignoring #{line} at #{file}:#{lineno} (STR)..."
  90. next
  91. end
  92. files_requires[file] += [require]
  93. when /Encoding::/
  94. encs=line.scan(/Encoding::[[:alnum:]_]+/).collect {|enc| eval(enc) }.select {|enc| enc.kind_of? Encoding }
  95. need_encdb=true
  96. end
  97. next if encs.empty?
  98. required_encs = (encs - builtin_enc).collect {|enc| "enc/#{enc.name.downcase.gsub("-","_")}" }
  99. required_encs << "enc/encdb" if need_encdb
  100. files_requires[file] += required_encs
  101. end
  102. end
  103. end
  104. end
  105. exit(1) if failed
  106. # From ruby source: grep -E 'rb_require' -R . | grep -E '\.c:.*rb_require.*'
  107. # Add dependencies of ruby files from ruby lib.so
  108. package_files.each do |(pkg,files)| files.each do |file|
  109. case file
  110. when /\/nkf\.so$/ ; files_requires[file]=files_requires[file] + ["enc/encdb"]
  111. when /\/objspace\.so$/; files_requires[file]=files_requires[file] + ["tempfile"] # dump_output from ext/objspace/objspace_dump.c
  112. when /\/openssl\.so$/; files_requires[file]=files_requires[file] + ["digest"] # Init_ossl_digest from ext/openssl/ossl_digest.c
  113. end
  114. end; end
  115. puts "Grouping package requirements per package"
  116. package_requires_files = Hash.new{|h,k| h[k] = Hash.new { |h2,k2| h2[k2] = [] } }
  117. package_files.each do |(pkg,files)|
  118. package_requires_files[pkg]
  119. files.each do |file|
  120. files_requires[file].each do |requires|
  121. package_requires_files[pkg][requires] << file
  122. end
  123. end
  124. end
  125. weak_dependency=Hash.new { |h,k| h[k]=[] }
  126. weak_dependency.merge!({
  127. "ruby-misc"=>["ruby-openssl","ruby-fiddle"], #securerandom.rb
  128. "ruby-debuglib"=>["ruby-readline"], #debug.rb
  129. "ruby-drb"=>["ruby-openssl"], #drb/ssl.rb
  130. "ruby-irb"=>["ruby-rdoc", "ruby-readline"], #irb/cmd/help.rb
  131. "ruby-gems"=>["ruby-openssl","ruby-io-console", #rubygems/commands/cert_command.rb rubygems/user_interaction.rb
  132. "ruby-bundler", "ruby-erb", "ruby-rdoc"], #rubygems.rb rubygems/server.rb
  133. "ruby-net"=>["ruby-openssl","ruby-io-console","ruby-zlib"], #net/*.rb
  134. "ruby-optparse"=>["ruby-uri","ruby-datetime"], #optparse/date.rb optparse/uri.rb
  135. "ruby-racc"=>["ruby-gems"], #/usr/bin/racc*
  136. "ruby-rake"=>["ruby-net","ruby-gems"], #rake/contrib/ftptools.rb /usr/bin/rake
  137. "ruby-rdoc"=>["ruby-gems","ruby-readline", #/usr/bin/rdoc and others
  138. "ruby-io-console"], #rdoc/stats/normal.rb
  139. "ruby-testunit"=>["ruby-io-console"], #gems/test-unit-3.1.5/lib/test/unit/ui/console/testrunner.rb
  140. "ruby-net-http"=>["ruby-open-uri"] #net/http/status.rb
  141. })
  142. puts "Looking for package dependencies..."
  143. package_provides = {}
  144. package_dependencies = Hash.new { |h,k| h[k]=[] }
  145. package_requires_files.each do
  146. |(pkg,requires_files)|
  147. requires_files.each do
  148. |(require,files)|
  149. if package_provides.include?(require)
  150. found = package_provides[require]
  151. else
  152. found = package_files.detect {|(pkg,files)| files.detect {|file| $:.detect {|path| "#{path}/#{require}" == file.gsub(/\.(so|rb)$/,"") } } }
  153. if not found
  154. $stderr.puts "#{pkg}: Nothing provides #{require} for #{files.collect {|file| file.sub("/usr/lib/ruby/","") }.join(",")}"
  155. failed = true
  156. next
  157. end
  158. found = found.first
  159. package_provides[require] = found
  160. end
  161. if weak_dependency[pkg].include?(found)
  162. puts "#{pkg}: #{found} provides #{require} (weak depedendency ignored)"
  163. else
  164. puts "#{pkg}: #{found} provides #{require} for #{files.collect {|file| file.sub("/usr/lib/ruby/","") }.join(",")}"
  165. package_dependencies[pkg] += [found]
  166. end
  167. end
  168. end
  169. if failed
  170. puts "There is some missing requirements not mapped to files in packages."
  171. puts "Please, fix the missing files or ignore them on require_ignore var"
  172. exit(1)
  173. end
  174. # Remove self dependency
  175. package_dependencies = Hash[package_dependencies.collect {|(pkg,deps)| [pkg,package_dependencies[pkg]=deps.uniq.sort - [pkg]]}]
  176. package_dependencies.default = []
  177. puts "Expanding dependencies..."
  178. begin
  179. changed=false
  180. package_dependencies.each do
  181. |(pkg,deps)|
  182. next if deps.empty?
  183. deps.each {|dep| puts "#{pkg}: #{dep} also depends on #{pkg}" if package_dependencies[dep].include?(pkg) }
  184. deps_new = deps.collect {|dep| [dep] + package_dependencies[dep] }.inject([],:+).uniq.sort
  185. if not deps == deps_new
  186. puts "#{pkg}: #{deps.join(",")}"
  187. puts "#{pkg}: #{deps_new.join(",")}"
  188. package_dependencies[pkg]=deps_new
  189. if deps_new.include?(pkg)
  190. $stderr.puts "#{pkg}: Circular dependency detected (#1)!"
  191. exit 1
  192. end
  193. changed=true
  194. end
  195. end
  196. end if not changed
  197. puts "Removing redundant dependencies..."
  198. package_dependencies.each do
  199. |(pkg,deps)|
  200. package_dependencies[pkg]=deps.uniq - [pkg]
  201. end
  202. puts "Checking for mutual dependencies..."
  203. package_dependencies.each do
  204. |(pkg,deps)|
  205. if deps.include? pkg
  206. $stderr.puts "#{pkg}: Circular dependency detected (#2)!"
  207. failed = true
  208. end
  209. end
  210. exit(1) if failed
  211. package_dependencies2=package_dependencies.dup
  212. package_dependencies.each do
  213. |(pkg,deps)|
  214. # Ignore dependencies that are already required by another dependency
  215. deps_clean = deps.reject {|dep_suspect| deps.detect {|dep_provider|
  216. if package_dependencies[dep_provider].include?(dep_suspect)
  217. puts "#{pkg}: #{dep_suspect} is already required by #{dep_provider}"
  218. true
  219. end
  220. } }
  221. if not deps==deps_clean
  222. puts "before: #{deps.join(",")}"
  223. puts "after: #{deps_clean.join(",")}"
  224. package_dependencies2[pkg]=deps_clean
  225. end
  226. end
  227. package_dependencies=package_dependencies2
  228. puts "Checking current packages dependencies..."
  229. ok=true
  230. package_dependencies.each do
  231. |(pkg,deps)|
  232. current_deps=`opkg depends #{pkg} | sed -r -e '1d;s/^[[:blank:]]*//'`.split("\n")
  233. current_deps.reject!{|dep| dep =~ /^lib/ }
  234. current_deps -= ["ruby"]
  235. extra_dep = current_deps - deps
  236. $stderr.puts "Package #{pkg} does not need to depend on #{extra_dep.join(" ")} " if not extra_dep.empty?
  237. missing_dep = deps - current_deps
  238. $stderr.puts "Package #{pkg} needs to depend on #{missing_dep.join(" ")} " if not missing_dep.empty?
  239. if not extra_dep.empty? or not missing_dep.empty?
  240. $stderr.puts "define Package/#{pkg}"
  241. $stderr.puts " DEPENDS:=ruby#{([""] +deps).join(" +")}"
  242. ok=false
  243. end
  244. end
  245. puts "All dependencies are OK." if ok
  246. __END__