autopkgtestが debian/control
での Testsuite: autopkgtest-pkg-ruby
行を起点として実施される(実際は debian/ruby-tests.rake
ファイルが実行されるのかな?)のだけど、この際に gemspec
ファイルの中身が実行される。ところがここで git
コマンドを使ってファイルの有無を確認するという形になってしまっていて、git への依存関係がないのでコケるという悲しい状態だった。
s.files = `git ls-files`.split("\n")
s.test_files = `git ls-files -- {spec,features}/*`.split("\n")
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
しかもどうやらこれはbundlerの雛形がそうなってるという…何なんだRuby。daiさんに Dir 使うというのを教えてもらってパッチを作って対処、Bug#910953をクローズ。
diff --git a/aruba.gemspec b/aruba.gemspec
index c6ac3e7..1581e98 100644
--- a/aruba.gemspec
+++ b/aruba.gemspec
@@ -40,9 +40,9 @@ With aruba >= 1.0 there will be breaking changes. Make sure to read https://gith
EOS
end
- s.files = `git ls-files`.split("\n")
- s.test_files = `git ls-files -- {spec,features}/*`.split("\n")
- s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
+ s.files = Dir['**/*'].reject { |f| f =~ %r{^debian/} }
+ s.test_files = Dir['spec/*,features/*']
+ s.executables = Dir['bin/*'].map{ |f| File.basename(f) }
s.rdoc_options = ["--charset=UTF-8"]
s.require_path = "lib"
end