tech-pkg archive

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

Re: helper Makefile fragment to handle Ruby gems


On Tue, Mar 04, 2008 at 03:49:54PM -0500, Johnny C. Lam wrote:
> Stoned Elipot wrote:
>> Inspired by FreeBSD's ports/devel/ruby-gems/Makefile.common
>> I came up with pkgsrc/misc/rubygems/ as a little Makefile 
>> fragment
>> to handle Ruby gems packaging.
>> In the attached tarball you'll find the above mentioned
>> and 3 "rubygem" packages as test cases: devel/rubygem-ruby-debug
>> and its supporting package devel/rubygem-ruby-debug-base, and 
>> net/rubygem-snmp.
>> devel/rubygem-ruby-debug-base is a nice test case because its
>> corresponding gem contains C sources resulting in a shared library
>> being installed (of course this build is magically made under the
>> tools, buildlink3, ... frameworks).
> Looking at this, the only thing I'm concerned about is that gems that 
> require compiling sources will compile them during the install phase.  I 
> had looked at modifying rubygems at one point to see if we could separate 
> the installation from the compiling so that we could hook them into the 
> "build" and "install" phases in pkgsrc.  The worry is only the usual one 
> about building and running stuff as the root user, which opens you up to 
> malicious gem builders.
> Can you attempt one more test gem to see if your framework is general 
> enough?  Try creating a package for either the postgres or ruby-xslt gems 
> using your framework.  These would require that you include 
> files within your package Makefile, and would test whether the correct 
> files are being used (you can check the work.log to make sure).

=> Unless I'm mistaken ruby-xslt is an "extconf type" distribution, it has a
gem spec but I did not bother to build a gem to try to package it afterward.
Anyway I tried the latest (old) available ruby-postgres gem. As I already
saw it with the ruby-debug-base gem the buildling framework is indeed 
correctly triggered/used.

Also about the build-at-install-time-thus-possibly-as-root issue.
OpenSuSe seems to have proposed a gem install command extra option
to effectively render the installation a "DESTDIR type" one.
Google for rubygem opensuse buildroot.

Using this approach and enforcing rubygem gem packages to be build
with DESTDIR might be an easy way out of this problem...

> One the whole, I think this is worthwhile to commit.  There are some minor 
> adjustments that I would make to the file, but it's easier to 
> modify them in-tree.

==> I'll commit this in a few hours.

Anyway thanks Johnny for the review.

Cheers, Stoned.

Home | Main Index | Thread Index | Old Index