[DRE-commits] [SCM] gem2deb.git branch, master, updated. e54f196cd9435c5147d4b83469a2be5cf12303b1

Antonio Terceiro terceiro at softwarelivre.org
Fri Mar 25 07:20:39 UTC 2011


The following commit has been merged in the master branch:
commit ef19e5641107448c661b62120af92817210a8e0f
Author: Antonio Terceiro <terceiro at softwarelivre.org>
Date:   Thu Mar 24 20:09:39 2011 -0700

    Remove code for handling multiple binary packages
    
      * Having the tests grouped as shoulda contexts helped a lot.
      * I just love deleting code. ;-)

diff --git a/lib/gem2deb/dh_make_ruby.rb b/lib/gem2deb/dh_make_ruby.rb
index 22f9d82..3b4bf64 100644
--- a/lib/gem2deb/dh_make_ruby.rb
+++ b/lib/gem2deb/dh_make_ruby.rb
@@ -40,6 +40,8 @@ module Gem2Deb
       @source_package_name = value.gsub('_', '-')
     end
 
+    attr_accessor :binary_package
+
     attr_accessor :source_tarball_name
 
     attr_accessor :orig_tarball_name
@@ -77,10 +79,6 @@ module Gem2Deb
       [source_package_name, gem_version].join('-')
     end
 
-    def binary_packages
-      @binary_packages ||= []
-    end
-
     def homepage
       metadata.homepage
     end
@@ -108,35 +106,19 @@ module Gem2Deb
     
     def read_upstream_source_info
       read_metadata
-      detect_needed_binary_packages
+      initialize_binary_package
     end
 
     def read_metadata
       self.metadata = Gem2Deb::Metadata.new('.')
     end
 
-    MULTI_PACKAGES = false # kept in case we want to reintroduce that, as an option for example
-    def detect_needed_binary_packages
-      if MULTI_PACKAGES
-        binary_packages << Package.new(source_package_name)
-        if metadata.has_native_extensions?
-          binary_packages << Package.new(source_package_name.sub('ruby-', 'ruby1.8-'), 'any')
-          binary_packages << Package.new(source_package_name.sub('ruby-', 'ruby1.9.1-'), 'any')
-        end
-
-        binary_packages.each do |package|
-          metadata.dependencies.each do |dependency|
-            package.gem_dependencies << dependency
-          end
-        end
-      else
-        pkg = Package.new(source_package_name, metadata.has_native_extensions? ? 'any' : 'all')
-        metadata.dependencies.each do |dependency|
-          pkg.gem_dependencies << dependency
-        end
-        binary_packages << pkg
+    def initialize_binary_package
+      self.binary_package = Package.new(source_package_name, metadata.has_native_extensions? ? 'any' : 'all')
+      metadata.dependencies.each do |dependency|
+        binary_package.gem_dependencies << dependency
       end
-      binary_packages
+      binary_package
     end
 
     def buildpackage(source_only = false, check_build_deps = true)
@@ -374,13 +356,12 @@ Standards-Version: 3.9.1
 #Vcs-Git: git://git.debian.org/pkg-ruby-extras/<%= source_package_name %>.git
 #Vcs-Browser: http://git.debian.org/?p=pkg-ruby-extras/<%= source_package_name %>;a=summary
 Homepage: <%= homepage ? homepage : 'FIXME'%>
-<% binary_packages.each do |package| %>
- 
-Package: <%= package.name %>
-Architecture: <%= package.architecture %>
-Depends: <%= package.dependencies.join(', ') %>
-<% if package.gem_dependencies.length > 0 %>
-# <%= package.gem_dependencies.join(', ') %>
+
+Package: <%= binary_package.name %>
+Architecture: <%= binary_package.architecture %>
+Depends: <%= binary_package.dependencies.join(', ') %>
+<% if binary_package.gem_dependencies.length > 0 %>
+# <%= binary_package.gem_dependencies.join(', ') %>
 <% end %>
 Description: <%= short_description ? short_description : 'FIXME' %>
 <% if long_description %>
@@ -388,7 +369,6 @@ Description: <%= short_description ? short_description : 'FIXME' %>
 <% else %>
 <%= " <insert long description, indented with spaces>\n" %>
 <% end %>
-<% end %>
 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> debian/rules
 #!/usr/bin/make -f
 #export DH_VERBOSE=1
diff --git a/lib/gem2deb/dh_ruby.rb b/lib/gem2deb/dh_ruby.rb
index a2f2658..596b082 100644
--- a/lib/gem2deb/dh_ruby.rb
+++ b/lib/gem2deb/dh_ruby.rb
@@ -48,6 +48,8 @@ module Gem2Deb
 
     DEFAULT_RUBY_VERSION = 'ruby1.8'
 
+    RUBY_CODE_DIR = '/usr/lib/ruby/vendor_ruby'
+
     include Gem2Deb
 
     attr_accessor :verbose
@@ -83,15 +85,12 @@ module Gem2Deb
     def install(argv)
       puts "Entering dh_ruby --install" if @verbose
 
-      packages_to_install_programs_in.each do |package|
-        install_files('bin', find_files('bin'), File.join(destdir_for(package), @bindir),             755) if File::directory?('bin')
-      end
+      package = packages.first
 
-      packages_to_install_libraries_in.each do |package|
-        install_files('lib', find_files('lib'), File.join(destdir_for(package), libdir_for(package)), 644) if File::directory?('lib')
-      end
+      install_files('bin', find_files('bin'), File.join(destdir_for(package), @bindir),             755) if File::directory?('bin')
+
+      install_files('lib', find_files('lib'), File.join(destdir_for(package), RUBY_CODE_DIR), 644) if File::directory?('lib')
 
-      package = packages.first
       if metadata.has_native_extensions?
         SUPPORTED_RUBY_VERSIONS.each_key do |rubyver|
          puts "Building extension for #{rubyver} ..." if @verbose
@@ -238,20 +237,12 @@ module Gem2Deb
       end
     end
 
-    def ruby_version_for(package)
-      if package =~ /^(ruby[^-]*)/
-        $1
-      else
-        'ruby'
-      end
-    end
-
     def destdir_for(package)
       File.expand_path(File.join('debian', package))
     end
 
     def update_shebangs(package)
-      rubyver = ruby_version_for(package)
+      rubyver = DEFAULT_RUBY_VERSION
       ruby_binary = SUPPORTED_RUBY_VERSIONS[rubyver] || SUPPORTED_RUBY_VERSIONS[DEFAULT_RUBY_VERSION]
       Dir.glob(File.join(destdir_for(package), @bindir, '*')).each do |path|
         puts "Rewriting shebang line of #{path}" if @verbose
@@ -284,57 +275,6 @@ module Gem2Deb
       @packages ||= `dh_listpackages`.split
     end
 
-    def packages_to_install_libraries_in
-      if single_package?
-        packages
-      else
-        if has_common_package?
-          common_packages
-        else
-          native_packages
-        end
-      end
-    end
-
-    def packages_to_install_programs_in
-      if single_package?
-        packages
-      else
-        if has_common_package?
-          common_packages
-        else
-          packages.first
-        end
-      end
-    end
-
-    def single_package?
-      packages.size == 1
-    end
-
-    def has_common_package?
-      common_packages.size > 0
-    end
-
-    def common_packages
-      @common_packages ||= packages.grep(/ruby-.*-common/)
-    end
-
-    def native_packages
-      @native_packages ||= packages.select { |pkg| ruby_version_for(pkg) != 'ruby' }
-    end
-
-    def libdir_for(package)
-      case ruby_version_for(package)
-      when 'ruby1.8'
-        '/usr/lib/ruby/vendor_ruby/1.8'
-      when 'ruby1.9.1'
-        '/usr/lib/ruby/vendor_ruby/1.9.1'
-      else
-        '/usr/lib/ruby/vendor_ruby'
-      end
-    end
-
     def run_make_clean_on_extensions
       if metadata.has_native_extensions?
         metadata.native_extensions.each do |extension|
diff --git a/test/unit/dh_ruby_test.rb b/test/unit/dh_ruby_test.rb
index ed7aa4b..0a0a7f0 100644
--- a/test/unit/dh_ruby_test.rb
+++ b/test/unit/dh_ruby_test.rb
@@ -62,64 +62,6 @@ class DhRubyTest < Gem2DebTestCase
     end
   end
 
-  context 'determining ruby version for package' do
-    {
-      'foo' => 'ruby',
-      'ruby-foo' => 'ruby',
-      'ruby1.8-foo' => 'ruby1.8',
-      'ruby1.9.1-foo' => 'ruby1.9.1',
-    }.each do |package,version|
-      should "detect #{version} for package '#{package}'" do
-        assert_equal version, Gem2Deb::DhRuby.new.send(:ruby_version_for, package)
-      end
-    end
-  end
-
-  context 'mixed packages (both pure-Ruby and native library code)' do
-    should 'install Ruby libraries into single package' do
-      dh_ruby = Gem2Deb::DhRuby.new
-      dh_ruby.stubs(:packages).returns(['ruby-foo'])
-      assert_equal ['ruby-foo'], dh_ruby.send(:packages_to_install_libraries_in)
-    end
-
-    should 'install Ruby libraries in native packages' do
-      dh_ruby = Gem2Deb::DhRuby.new
-      dh_ruby.stubs(:packages).returns(['ruby-foo', 'ruby1.8-foo', 'ruby1.9.1-foo'])
-      assert_equal ['ruby1.8-foo', 'ruby1.9.1-foo'], dh_ruby.send(:packages_to_install_libraries_in)
-    end
-
-    should 'install Ruby code in ruby-foo-common package if it is present' do
-      dh_ruby = Gem2Deb::DhRuby.new
-      dh_ruby.stubs(:packages).returns(['ruby-foo', 'ruby1.8-foo', 'ruby1.9.1-foo', 'ruby-foo-common'])
-      assert_equal ['ruby-foo-common'], dh_ruby.send(:packages_to_install_libraries_in)
-    end
-
-    should 'install programs in single package' do
-      dh_ruby = Gem2Deb::DhRuby.new
-      dh_ruby.stubs(:packages).returns(['ruby-foo'])
-      assert_equal ['ruby-foo'], dh_ruby.send(:packages_to_install_programs_in)
-    end
-
-    should 'install programs in common package if present' do
-      dh_ruby = Gem2Deb::DhRuby.new
-      dh_ruby.stubs(:packages).returns(['ruby-foo', 'ruby1.8-foo', 'ruby1.9.1-foo', 'ruby-foo-common'])
-      assert_equal ['ruby-foo-common'], dh_ruby.send(:packages_to_install_programs_in)
-    end
-
-  end
-
-  context 'calculating libdir for each package' do
-    {
-      'ruby-foo' => '/usr/lib/ruby/vendor_ruby',
-      'ruby1.8-foo' => '/usr/lib/ruby/vendor_ruby/1.8',
-      'ruby1.9.1-foo' => '/usr/lib/ruby/vendor_ruby/1.9.1',
-    }.each do |package,path|
-      should "install Ruby code for #{package} at #{path}" do
-        assert_equal path, Gem2Deb::DhRuby.new.send(:libdir_for, package)
-      end
-    end
-  end
-
   protected
 
   def assert_installed(gem_dirname, package, path)

-- 
gem2deb.git



More information about the Pkg-ruby-extras-commits mailing list