[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