Hi Clint, Clint Byrum escreveu isso aí: > > 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. I tried it here on a Debian unstable machine and the package build failed: terceiro@morere:~/src/debigem/test (home)$ dh-make-gem /tmp/fast_gettext-0.5.10.gem Extracting gem file /tmp/fast_gettext-0.5.10.gem tar -zcf libfast-gettext-ruby_0.5.10.orig.tar.gz --exclude=libfast-gettext-ruby-0.5.10/debian libfast-gettext-ruby-0.5.10 changing working dir to libfast-gettext-ruby-0.5.10 DEBUG: /tmp/fast_gettext-0.5.10.gem.gemspec WARNING: no description specified WARNING: no rubyforge_project specified Successfully built Debian source package from gemspec Name: fast_gettext Version: 0.5.10 PackageName: libfast_gettext-ruby terceiro@morere:~/src/debigem/test (home)$ ls -l total 88 drwxr-xr-x 7 terceiro terceiro 4096 Set 26 18:05 libfast-gettext-ruby-0.5.10 -rw-r--r-- 1 terceiro terceiro 78984 Set 26 18:05 libfast-gettext-ruby_0.5.10.orig.tar.gz terceiro@morere:~/src/debigem/test (home)$ cd libfast-gettext-ruby-0.5.10/ terceiro@morere:~/src/debigem/test/libfast-gettext-ruby-0.5.10 (home)$ ls -l total 48 drwxr-xr-x 5 terceiro terceiro 4096 Set 26 18:05 benchmark -rw-r--r-- 1 terceiro terceiro 439 Set 26 18:05 CHANGELOG drwxr-xr-x 2 terceiro terceiro 4096 Set 26 18:05 debian drwxr-xr-x 3 terceiro terceiro 4096 Set 26 18:05 examples -rw-r--r-- 1 terceiro terceiro 4907 Set 26 18:05 fast_gettext.gemspec drwxr-xr-x 3 terceiro terceiro 4096 Set 26 18:05 lib -rw-r--r-- 1 terceiro terceiro 910 Set 26 18:05 Rakefile -rw-r--r-- 1 terceiro terceiro 7828 Set 26 18:05 README.markdown drwxr-xr-x 6 terceiro terceiro 4096 Set 26 18:05 spec -rw-r--r-- 1 terceiro terceiro 7 Set 26 18:05 VERSION terceiro@morere:~/src/debigem/test/libfast-gettext-ruby-0.5.10 (home)$ terceiro@morere:~/src/debigem/test/libfast-gettext-ruby-0.5.10 (home)$ ls -l total 48 drwxr-xr-x 5 terceiro terceiro 4096 Set 26 18:05 benchmark -rw-r--r-- 1 terceiro terceiro 439 Set 26 18:05 CHANGELOG drwxr-xr-x 2 terceiro terceiro 4096 Set 26 18:05 debian drwxr-xr-x 3 terceiro terceiro 4096 Set 26 18:05 examples -rw-r--r-- 1 terceiro terceiro 4907 Set 26 18:05 fast_gettext.gemspec drwxr-xr-x 3 terceiro terceiro 4096 Set 26 18:05 lib -rw-r--r-- 1 terceiro terceiro 910 Set 26 18:05 Rakefile -rw-r--r-- 1 terceiro terceiro 7828 Set 26 18:05 README.markdown drwxr-xr-x 6 terceiro terceiro 4096 Set 26 18:05 spec -rw-r--r-- 1 terceiro terceiro 7 Set 26 18:05 VERSION terceiro@morere:~/src/debigem/test/libfast-gettext-ruby-0.5.10 (home)$ debuild dpkg-buildpackage -rfakeroot -D -us -uc dpkg-buildpackage: export CFLAGS from dpkg-buildflags (origin: vendor): -g -O2 dpkg-buildpackage: export CPPFLAGS from dpkg-buildflags (origin: vendor): dpkg-buildpackage: export CXXFLAGS from dpkg-buildflags (origin: vendor): -g -O2 dpkg-buildpackage: export FFLAGS from dpkg-buildflags (origin: vendor): -g -O2 dpkg-buildpackage: export LDFLAGS from dpkg-buildflags (origin: vendor): dpkg-buildpackage: source package libfast-gettext-ruby dpkg-buildpackage: source version 0.5.10-1 dpkg-buildpackage: source changed by Antonio Terceiro <terceiro@softwarelivre.org> dpkg-source --before-build libfast-gettext-ruby-0.5.10 dpkg-buildpackage: host architecture i386 fakeroot debian/rules clean dh clean dh_testdir dh_auto_clean debian/rules override_dh_clean make[1]: Entrando no diretório `/home/terceiro/src/debigem/test/libfast-gettext-ruby-0.5.10' dh_rubygems clean dh_clean make[1]: Saindo do diretório `/home/terceiro/src/debigem/test/libfast-gettext-ruby-0.5.10' dpkg-source -b libfast-gettext-ruby-0.5.10 dpkg-source: warning: no source format specified in debian/source/format, see dpkg-source(1) dpkg-source: info: using source format `1.0' dpkg-source: info: building libfast-gettext-ruby using existing libfast-gettext-ruby_0.5.10.orig.tar.gz dpkg-source: info: building libfast-gettext-ruby in libfast-gettext-ruby_0.5.10-1.diff.gz dpkg-source: info: building libfast-gettext-ruby in libfast-gettext-ruby_0.5.10-1.dsc debian/rules build dh build dh_testdir dh_auto_configure debian/rules override_dh_auto_build make[1]: Entrando no diretório `/home/terceiro/src/debigem/test/libfast-gettext-ruby-0.5.10' dh_rubygems build ERROR: While executing gem ... (NameError) uninitialized constant Gem::Specification::YAML /usr/bin/dh_rubygems:113:in `build_gemspec': gem build failed for debian/libfast-gettext-ruby.gemspec (RuntimeError) from /usr/bin/dh_rubygems:254 from /usr/bin/dh_rubygems:92:in `for_each_package' from /usr/bin/dh_rubygems:84:in `each' from /usr/bin/dh_rubygems:84:in `for_each_package' from /usr/bin/dh_rubygems:83:in `each_pair' from /usr/bin/dh_rubygems:83:in `for_each_package' from /usr/bin/dh_rubygems:254 make[1]: ** [override_dh_auto_build] Erro 1 make[1]: Saindo do diretório `/home/terceiro/src/debigem/test/libfast-gettext-ruby-0.5.10' make: ** [build] Erro 2 dpkg-buildpackage: error: debian/rules build gave error exit status 2 debuild: fatal error at line 1327: dpkg-buildpackage -rfakeroot -D -us -uc failed That's weird, because I didn't find any reference to "YAML" in debigem's source code. > 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. That's great work you did. I'm not sure, though, whether it's a good thing or bad thing to have rubygems as a build dependency for all Ruby packages on Debian ... -- Antonio Terceiro <terceiro@softwarelivre.org> http://softwarelivre.org/terceiro
Attachment:
signature.asc
Description: Digital signature