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

Debigem: .gem -> debian source automatically



Hello everyone,

First let me say I apologize if this work overlaps with previously
done work. I don't mean to compete with anything else done previously
at all.

I had an itch, and I scratched it, and its been fun trying to make
it go since then.

I created a tool which I call "DebiGem" that tries to make debian
source packages out of .gem files directly.

It can also work from a .gemspec file in a tarball/vcs dir as well.

The process is pretty simple.. step one is to donwload the .gem
file

Then:

dh-make-gem file.gem

Which produces a .orig.tar.gz, and an unpacked .gem file with the
debian directory populated appropriately.

It tries to "do the right thing" by creating a 1.8 and a 1.9.1
package. So far I've been pretty unsuccessful at getting the 1.9.1
packages to build though, and I suspect it is because of the changes
in rubygems. So usually I just remove the 1.9.1 stanza from the
control file.

For most pure ruby gems, the next step is just simply to cd into
the dir and run 'debuild' which produces .debs for  libGEMNAME-ruby1.8
and libGEMNAME-ruby which depends on the former. Dependencies are
extracted from the gemspec file at build time.

Updating to new versions is still a little tedious, but not unclear.
One can simply re-run the process to generate a new orig.tar.gz,
and then use 'uupdate' from there. Unfortunately, the
debian/libGEMNAME-ruby.gemspec file that is used during the build
needs to be manually updated at that time, so you will also need
to copy that in from the new version's debian directory as well.
I'm not sure the best way to remind people of that.

I'm hoping I can get some feedback on it to see what you guys think.
I just cut the 0.2.0 release today.

Currently I'm distributing it only as a debian native package,
though I think long term it would work as a gem itself.

I welcome all feedback, negative or positive!

https://launchpad.net/debigem

Thanks!


Reply to: