[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#436537: Source code is at...



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

This appears to be stalled because the source couldn't be found...
strange.  A quick google finds it:

http://www.dzeta.jp/~junjis/files/dh-make-ruby/

Also, the package in its current form doesn't support rubygems, which I
think is a bit lame.  There's a patch attached for basic support for
packaging a downloaded ruby gem file; expect another version which will
download straight from rubygems.org soon...

And I really can't understand the position of
http://pkg-ruby-extras.alioth.debian.org/rubygems.html - perhaps it is a
historical oversight but as far as I can see a .gem is just a tar within
a tar (very much like .debs).
- --
Sam Vilain, Chief Yak Shaver, Catalyst IT (NZ) Ltd.
phone: +64 4 499 2267        PGP ID: 0x66B25843
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkiJUJEACgkQ/AZAiGayWENwrQCglI+Agg7KdmR07lGWJUwMCBWr
vvIAnjSRmO3Ujpis5UPHQR0IS+T7M2ts
=5vmj
-----END PGP SIGNATURE-----
--- dh-make-ruby.orig	2008-07-23 10:17:12.000000000 -0700
+++ dh-make-ruby	2008-07-23 11:54:31.000000000 -0700
@@ -274,22 +274,61 @@
 end
 
 if ARGV.length == 0 then
-  puts "Usage: #{$0} dir"
+  puts "Usage:   #{$0} <target>"
+  puts "Options:\n    --gem|-g  treat target as a rubygem"
   exit
 end
 
 maintainer = get_username
 mailaddr = get_email
 
+require 'getoptlong'
+
+opt = GetoptLong.new(
+  ['--gem', '-g', GetoptLong::NO_ARGUMENT]	
+)
+
+processing_gem = false
+opt.each { |opt,val|
+  if opt == '--gem' then
+    processing_gem = true
+  end
+}
+
 maindir = ARGV.shift
 maindir = maindir.chop if maindir[-1] == ?/
 
-pkgname, version = get_pkgname_and_version(maindir)
+directory_to_process = maindir
+
+if processing_gem then
+  directory_to_process = maindir.sub(/\.gem$/,'')
+end
+
+pkgname, version = get_pkgname_and_version(directory_to_process)
 puts "pkgname: #{pkgname}, version: #{version}"
 
-FileUtils.cp_r(maindir, "#{maindir}.orig", {:preserve => true})
+# Extract gem to a directory
+if processing_gem then
+  puts "Extracting #{maindir} to #{directory_to_process}"
+
+  # A gem file by itself is a simple tarfile
+  FileUtils.mkdir_p('tmpgem')
+  system('tar', '-xf', maindir, '-C', 'tmpgem') or throw "Could not untar gemfile"
+
+  # Extract data.tar.gz into directory_to_process
+  FileUtils.mkdir_p(directory_to_process)
+  system('tar', '-xzf', 'tmpgem/data.tar.gz', '-C', directory_to_process) or throw "Could not untar gemfiles data tarball"
+
+  # Remove temporary directory
+  FileUtils.rm_rf('tmpgem')	
+end
+
+# Since we already have the gem, no need to back the directory up
+if !processing_gem then
+  FileUtils.cp_r(directory_to_process, "#{directory_to_process}.orig", {:preserve => true})
+end
 
-Dir.chdir(maindir)
+Dir.chdir(directory_to_process)
 Dir.mkdir('debian')
 create_changelog(pkgname, version, maintainer, mailaddr)
 create_compat

Reply to: