Hello community, here is the log from the commit of package rubygem-rake-compiler for openSUSE:Factory checked in at 2016-03-26 15:28:26 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/rubygem-rake-compiler (Old) and /work/SRC/openSUSE:Factory/.rubygem-rake-compiler.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-rake-compiler" Changes: -------- --- /work/SRC/openSUSE:Factory/rubygem-rake-compiler/rubygem-rake-compiler.changes 2015-02-10 20:22:09.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.rubygem-rake-compiler.new/rubygem-rake-compiler.changes 2016-03-26 18:14:28.000000000 +0100 @@ -1,0 +2,44 @@ +Sat Mar 19 05:31:26 UTC 2016 - co...@suse.com + +- updated to version 0.9.7 + see installed History.txt + + === 0.9.7 / 2016-03-16 + + * Bugfixes: + * May fix "make" detection on Windows. + #123 [Reported by Aaron Stone] + +------------------------------------------------------------------- +Sat Mar 5 05:30:50 UTC 2016 - co...@suse.com + +- updated to version 0.9.6 + see installed History.txt + + === 0.9.6 / 2016-03-04 + + * Enhancements + * Add more descriptions into README. + Closes #105 [Patch by Aaron Stone] + * Remove needless executable bits. + Closes #107 [Patch by Thibault Jouan] + * Update .gitignore. + Closes #108 [Patch by Thibault Jouan] + * Improve "make" detection on some platforms such as FreeBSD. + Closes #109 [Patch by Thibault Jouan] + * Enable cucumber steps for POSIX on *BSD. + Closes #110 [Patch by Thibault Jouan] + * Stop to build bundled extensions. + * Add description about CLI option into README. + Closes #115 [Patch by Richard Michael] + * Update description about using rake-compiler on virtual machine in + README. + Closes #116, #117 [Patch by Lars Kanis] + * Update fake mechanism to be compatible with Bundler. + Closes #121 [Patch by Lars Kanis] + + * Bugfixes: + * Fix typos in README. + Closes #102, #103 [Patch by Robert Fletcher] + +------------------------------------------------------------------- Old: ---- rake-compiler-0.9.5.gem New: ---- rake-compiler-0.9.7.gem ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ rubygem-rake-compiler.spec ++++++ --- /var/tmp/diff_new_pack.8cEJNp/_old 2016-03-26 18:14:29.000000000 +0100 +++ /var/tmp/diff_new_pack.8cEJNp/_new 2016-03-26 18:14:29.000000000 +0100 @@ -1,7 +1,7 @@ # # spec file for package rubygem-rake-compiler # -# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -24,7 +24,7 @@ # Name: rubygem-rake-compiler -Version: 0.9.5 +Version: 0.9.7 Release: 0 %define mod_name rake-compiler %define mod_full_name %{mod_name}-%{version} ++++++ rake-compiler-0.9.5.gem -> rake-compiler-0.9.7.gem ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/History.txt new/History.txt --- old/History.txt 2015-01-03 06:43:52.000000000 +0100 +++ new/History.txt 2016-03-16 14:39:06.000000000 +0100 @@ -1,3 +1,35 @@ +=== 0.9.7 / 2016-03-16 + +* Bugfixes: + * May fix "make" detection on Windows. + #123 [Reported by Aaron Stone] + +=== 0.9.6 / 2016-03-04 + +* Enhancements + * Add more descriptions into README. + Closes #105 [Patch by Aaron Stone] + * Remove needless executable bits. + Closes #107 [Patch by Thibault Jouan] + * Update .gitignore. + Closes #108 [Patch by Thibault Jouan] + * Improve "make" detection on some platforms such as FreeBSD. + Closes #109 [Patch by Thibault Jouan] + * Enable cucumber steps for POSIX on *BSD. + Closes #110 [Patch by Thibault Jouan] + * Stop to build bundled extensions. + * Add description about CLI option into README. + Closes #115 [Patch by Richard Michael] + * Update description about using rake-compiler on virtual machine in + README. + Closes #116, #117 [Patch by Lars Kanis] + * Update fake mechanism to be compatible with Bundler. + Closes #121 [Patch by Lars Kanis] + +* Bugfixes: + * Fix typos in README. + Closes #102, #103 [Patch by Robert Fletcher] + === 0.9.5 / 2015-01-03 * Enhancements diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/README.rdoc new/README.rdoc --- old/README.rdoc 2015-01-03 06:43:52.000000000 +0100 +++ new/README.rdoc 2016-03-16 14:39:06.000000000 +0100 @@ -1,7 +1,7 @@ = What is rake-compiler? rake-compiler is first and foremost a productivity tool for Ruby developers. -It's goal is to make the busy developer's life easier by simplifying the building +Its goal is to make the busy developer's life easier by simplifying the building and packaging of Ruby extensions by simplifying code and reducing duplication. It follows *convention over configuration* by advocating a standardized build and @@ -118,6 +118,10 @@ performs the entire compile and build process for you and places the resulting extension inside the <tt>lib</tt> directory of your project. +To pass <tt>dir_config</tt> options to the compilation, add to the command line: + + $ rake compile -- --with-foo-[dir|lib|bin|...]=/path/to/foo + NOTE: Please be aware that building C extensions requires the proper development environment for your Platform, including libraries, headers and build tools. Check your distro / vendor documentation on how to install @@ -230,10 +234,11 @@ ==== The Easy Way -Use rake-compiler-dev-box, a virtual machine provisioned with all the necessary -build tools. With one command, you can cross-compile and package your gem into -native, Java, and Windows fat binaries (with 1.8, 1.9, and 2.0 support). See -https://github.com/tjschuck/rake-compiler-dev-box for more information. +Use rake-compiler-dock, a gem that makes use of a virtual machine provisioned with +all the necessary build tools. You can add a task to your Rakefile, that +cross-compiles and packages your gem into Windows fat binaries (with 1.8 to 2.2 +and x86/x64 support). See https://github.com/rake-compiler/rake-compiler-dock for more +information. ==== The Manual Way @@ -284,9 +289,9 @@ # File: ~/.rake-compiler/config.yml - rbconfig-i386-mingw32-1.8.6: /path/to/ruby-1.8.6/rbconfig.rb - rbconfig-i386-mingw32-1.8.7: /path/to/ruby-1.8.7/rbconfig.rb - rbconfig-i386-mingw32-1.9.2: /path/to/ruby-1.9.2/rbconfig.rb + rbconfig-x86-mingw32-1.8.6: /path/to/ruby-1.8.6/rbconfig.rb + rbconfig-x86-mingw32-1.8.7: /path/to/ruby-1.8.7/rbconfig.rb + rbconfig-x86-mingw32-1.9.2: /path/to/ruby-1.9.2/rbconfig.rb If, instead, you want to build a different Ruby version than the default one, please supply a <tt>VERSION</tt>: @@ -296,7 +301,7 @@ If you, like me, have multiple versions of MinGW packages installed, you can specify the HOST that will be used to cross compile Ruby: - rake-compiler cross-ruby HOST=i386-mingw32 # (OSX mingw32 port) + rake-compiler cross-ruby HOST=x86-mingw32 # (OSX mingw32 port) The host will vary depending on provider (mingw32 versus mingw-w64 projects). Please consult the documentation and website of the MinGW package provider before @@ -307,22 +312,41 @@ Now, you only need specify a few additional options in your extension definition: Rake::ExtensionTask.new('my_extension', gem_spec) do |ext| - ext.cross_compile = true # enable cross compilation (requires cross compile toolchain) - ext.cross_platform = 'i386-mswin32-60' # forces the Windows platform instead of the default one - # configure options only for cross compile - ext.cross_config_options << '--with-something' + # enable cross compilation (requires cross compile toolchain) + ext.cross_compile = true + + # set a single platform or an array of platforms to target + ext.cross_platform = ['x86-mingw32', 'x64-mingw32'] + + # cross-compile options will be passed to extconf.rb for each + # platform build, with platform-specific options in a hash. + ext.cross_config_options << '--with-common-option' + ext.cross_config_options << { + 'x86-mswin32-60 => '--with-some-option', + 'x64-mingw32' => '--enable-64bits', + } + ext.cross_config_options << '--with-final-option' # perform alterations on the gemspec when cross compiling ext.cross_compiling do |gem_spec| + # such as packaging a file that isn't specified in the gemspec + gem_spec.files << 'lib/generated_file.rb' + # or adding a new installation message gem_spec.post_install_message = "You installed the binary version of this gem!" end end -By default, cross compilation targets 'i386-mingw32' which is the default GCC -platform for Ruby. - -To target gems for MRI Ruby's current official distribution, please force the -platform to the one (i386-mswin32-60) previously shown. +By default, cross compilation targets 'i386-mingw32' which is the default +GCC platform for Ruby. MRI Ruby's current official distribution uses +<tt>i386-mswin32-60</tt>. The RubyInstaller distribution uses +<tt>x86-mingw32</tt> and <tt>x64-mingw32</tt> for 32-bit and 64-bit +Windows targets, respectively. Note that <tt>i386</tt> and <tt>x86</tt> +are synonymous here; <tt>x86</tt> is preferred going forward. + +The format for <tt>cross_config_options</tt> is an array of strings and +hashes. Hashes will be fetched for each value of <tt>cross_platform</tt> +as the build iterates, or ignored if there is no value for that platform. +You can mix-and-match strings and hashes to get desired option ordering. ==== Warning, magician about to do some tricks, don't blink! @@ -330,7 +354,7 @@ rake cross compile -And now, building gems for your Windows users is just 5 more letters: +And now, building gems for your Windows users is just 6 more letters: rake cross native gem @@ -366,7 +390,7 @@ cross compiling from a Linux or OSX host. Patches are welcome if building "fat" gems from Windows hosts is desired, or natively for your platform :-) -Now is up to you to make your gem load the proper binary at runtime: +Now it's up to you to make your gem load the proper binary at runtime: begin RUBY_VERSION =~ /(\d+.\d+)/ Files old/checksums.yaml.gz and new/checksums.yaml.gz differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/features/step_definitions/cross_compilation.rb new/features/step_definitions/cross_compilation.rb --- old/features/step_definitions/cross_compilation.rb 2015-01-03 06:43:52.000000000 +0100 +++ new/features/step_definitions/cross_compilation.rb 2016-03-16 14:39:06.000000000 +0100 @@ -1,6 +1,6 @@ -# Naive way of looking into platforms, please include others like FreeBSD? +# Naive way of looking into platforms Given %r{^I'm running a POSIX operating system$} do - unless RbConfig::CONFIG['host_os'] =~ /linux|darwin/ then + unless RbConfig::CONFIG['host_os'] =~ /linux|darwin|bsd|dragonfly/ then raise Cucumber::Pending.new("You need a POSIX operating system, no cheating ;-)") end end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/rake/baseextensiontask.rb new/lib/rake/baseextensiontask.rb --- old/lib/rake/baseextensiontask.rb 2015-01-03 06:43:52.000000000 +0100 +++ new/lib/rake/baseextensiontask.rb 2016-03-16 14:39:06.000000000 +0100 @@ -1,5 +1,3 @@ -#!/usr/bin/env ruby - require 'rake' require 'rake/clean' require 'rake/tasklib' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/rake/extensioncompiler.rb new/lib/rake/extensioncompiler.rb --- old/lib/rake/extensioncompiler.rb 2015-01-03 06:43:52.000000000 +0100 +++ new/lib/rake/extensioncompiler.rb 2016-03-16 14:39:06.000000000 +0100 @@ -1,5 +1,3 @@ -#!/usr/bin/env ruby - module Rake # diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/rake/extensiontask.rb new/lib/rake/extensiontask.rb --- old/lib/rake/extensiontask.rb 2015-01-03 06:43:52.000000000 +0100 +++ new/lib/rake/extensiontask.rb 2016-03-16 14:39:06.000000000 +0100 @@ -1,4 +1,4 @@ -#!/usr/bin/env ruby +require "rbconfig" require 'rake/baseextensiontask' require "rubygems/package_task" @@ -8,7 +8,6 @@ module Rake class ExtensionTask < BaseExtensionTask - attr_accessor :config_script attr_accessor :cross_compile attr_accessor :cross_platform @@ -172,8 +171,8 @@ # now add the extconf script cmd << abs_extconf.relative_path_from(abs_tmp_path) - # rbconfig.rb will be present if we are cross compiling - if t.prerequisites.include?("#{tmp_path}/rbconfig.rb") then + # fake.rb will be present if we are cross compiling + if t.prerequisites.include?("#{tmp_path}/fake.rb") then options.push(*cross_config_options(platf)) end @@ -368,39 +367,30 @@ # define compilation tasks for cross platform! define_compile_tasks(for_platform, ruby_ver) - # chain fake.rb, rbconfig.rb and mkmf.rb to Makefile generation + # chain fake.rb and mkmf.rb to Makefile generation file "#{tmp_path}/Makefile" => ["#{tmp_path}/fake.rb", - "#{tmp_path}/rbconfig.rb", "#{tmp_path}/mkmf.rb"] - # copy the file from the cross-ruby location - file "#{tmp_path}/rbconfig.rb" => [rbconfig_file] do |t| + # copy the rbconfig from the cross-ruby location and + # genearte fake.rb for different ruby versions + file "#{tmp_path}/fake.rb" => [rbconfig_file] do |t| File.open(t.name, 'w') do |f| - f.write "require 'fake.rb'\n\n" + f.write fake_rb(for_platform, ruby_ver) f.write File.read(t.prerequisites.first) end end # copy mkmf from cross-ruby location file "#{tmp_path}/mkmf.rb" => [mkmf_file] do |t| - cp t.prerequisites.first, t.name - if ruby_ver < "1.9" && "1.9" <= RUBY_VERSION - File.open(t.name, 'r+t') do |f| - content = f.read + File.open(t.name, 'w') do |f| + content = File.read(t.prerequisites.first) + content.sub!(/^(require ')rbconfig(')$/, '\\1fake\\2') + if ruby_ver < "1.9" && "1.9" <= RUBY_VERSION content.sub!(/^( break )\*(defaults)$/, '\\1\\2.first') content.sub!(/^( return )\*(defaults)$/, '\\1\\2.first') content.sub!(/^( mfile\.)print( configuration\(srcprefix\))$/, '\\1puts\\2') - f.rewind - f.write content - f.truncate(f.tell) end - end - end - - # genearte fake.rb for different ruby versions - file "#{tmp_path}/fake.rb" do |t| - File.open(t.name, 'w') do |f| - f.write fake_rb(for_platform, ruby_ver) + f.write content end end @@ -455,9 +445,7 @@ if RUBY_PLATFORM =~ /mswin/ then 'nmake' else - ENV['MAKE'] || %w[gmake make].find { |c| - system("#{c} -v >> #{dev_null} 2>&1") - } + ENV['MAKE'] || find_make end end @@ -468,8 +456,19 @@ @make end - def dev_null - windows? ? 'NUL' : '/dev/null' + def find_make + candidates = ["gmake", "make"] + paths = (ENV["PATH"] || "").split(File::PATH_SEPARATOR) + + exeext = RbConfig::CONFIG["EXEEXT"] + candidates.each do |candidate| + paths.each do |path| + make = File.join(path, "#{candidate}#{exeext}") + return make if File.executable?(make) + end + end + + nil end def compiled_files @@ -490,8 +489,10 @@ # "cannot load such file -- win32/resolv" when it is required later on. # See also: https://github.com/tjschuck/rake-compiler-dev-box/issues/5 require 'resolv' + require 'rbconfig' class Object + remove_const :RbConfig remove_const :RUBY_PLATFORM remove_const :RUBY_VERSION remove_const :RUBY_DESCRIPTION if defined?(RUBY_DESCRIPTION) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/rake/javaextensiontask.rb new/lib/rake/javaextensiontask.rb --- old/lib/rake/javaextensiontask.rb 2015-01-03 06:43:52.000000000 +0100 +++ new/lib/rake/javaextensiontask.rb 2016-03-16 14:39:06.000000000 +0100 @@ -1,5 +1,3 @@ -#!/usr/bin/env ruby - require 'rake/baseextensiontask' # Define a series of tasks to aid in the compilation of Java extensions for diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/metadata new/metadata --- old/metadata 2015-01-03 06:43:52.000000000 +0100 +++ new/metadata 2016-03-16 14:39:06.000000000 +0100 @@ -1,7 +1,7 @@ --- !ruby/object:Gem::Specification name: rake-compiler version: !ruby/object:Gem::Version - version: 0.9.5 + version: 0.9.7 platform: ruby authors: - Kouhei Sutou @@ -9,7 +9,7 @@ autorequire: bindir: bin cert_chain: [] -date: 2015-01-03 00:00:00.000000000 Z +date: 2016-03-16 00:00:00.000000000 Z dependencies: - !ruby/object:Gem::Dependency name: rake @@ -134,7 +134,7 @@ version: 1.8.23 requirements: [] rubyforge_project: rake-compiler -rubygems_version: 2.2.2 +rubygems_version: 2.5.1 signing_key: specification_version: 4 summary: Rake-based Ruby Extension (C, Java) task generator. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec/lib/rake/extensiontask_spec.rb new/spec/lib/rake/extensiontask_spec.rb --- old/spec/lib/rake/extensiontask_spec.rb 2015-01-03 06:43:52.000000000 +0100 +++ new/spec/lib/rake/extensiontask_spec.rb 2016-03-16 14:39:06.000000000 +0100 @@ -426,15 +426,9 @@ it 'should chain fake task to Makefile generation' do Rake::Task["tmp/universal-unknown/extension_one/#{@ruby_ver}/Makefile"].prerequisites.should include("tmp/universal-unknown/extension_one/#{@ruby_ver}/fake.rb") end - end - - context 'rbconfig' do - it 'should chain rbconfig tasks to Makefile generation' do - Rake::Task["tmp/universal-unknown/extension_one/#{@ruby_ver}/Makefile"].prerequisites.should include("tmp/universal-unknown/extension_one/#{@ruby_ver}/rbconfig.rb") - end - it 'should take rbconfig from rake-compiler configuration' do - Rake::Task["tmp/universal-unknown/extension_one/#{@ruby_ver}/rbconfig.rb"].prerequisites.should include(@config_path) + it 'should chain rbconfig tasks to fake.rb generation' do + Rake::Task["tmp/universal-unknown/extension_one/#{@ruby_ver}/fake.rb"].prerequisites.should include(@config_path) end end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tasks/bin/cross-ruby.rake new/tasks/bin/cross-ruby.rake --- old/tasks/bin/cross-ruby.rake 2015-01-03 06:43:52.000000000 +0100 +++ new/tasks/bin/cross-ruby.rake 2016-03-16 14:39:06.000000000 +0100 @@ -135,8 +135,7 @@ "--build=#{RUBY_BUILD}", '--enable-shared', '--disable-install-doc', - '--without-tk', - '--without-tcl' + '--with-ext=' ] # Force Winsock2 for Ruby 1.8, 1.9 defaults to it diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tasks/gem.rake new/tasks/gem.rake --- old/tasks/gem.rake 2015-01-03 06:43:52.000000000 +0100 +++ new/tasks/gem.rake 2016-03-16 14:39:06.000000000 +0100 @@ -3,7 +3,7 @@ GEM_SPEC = Gem::Specification.new do |s| # basic information s.name = "rake-compiler" - s.version = "0.9.5" + s.version = "0.9.7" s.platform = Gem::Platform::RUBY # description and details