ruby update:

* xrefresh server on Linux (only paths config option is honored)
* sup can be started without hacks now :)
* rubygems update 1.3.5
* fix handling of /bin/* ruby scripts
* only recognize runtime dependencies when creating nix derivations.
  Some development dependencies are no longer available.
* make ruby lib ffy compile by using NIX_POST_EXTRACT_FILES_HOOK
* update rubygems patch: Even if there is a missing dep create attr
  item. Maybe this missing source can be fixed manually.

svn path=/nixpkgs/trunk/; revision=19470
This commit is contained in:
Marc Weber 2010-01-15 19:35:06 +00:00
parent 11f8b98ccc
commit 92a0256e8e
3 changed files with 573 additions and 442 deletions

View File

@ -1,5 +1,5 @@
diff --git a/lib/rubygems/command_manager.rb b/lib/rubygems/command_manager.rb
index 0a19016..ef66d30 100644
index 0a19016..ef66d30 100755
--- a/lib/rubygems/command_manager.rb
+++ b/lib/rubygems/command_manager.rb
@@ -70,6 +70,7 @@ class Gem::CommandManager
@ -10,12 +10,13 @@ index 0a19016..ef66d30 100644
end
##
diff --git a/lib/rubygems/commands/nix_command.rb b/lib/rubygems/commands/nix_command.rb
new file mode 100644
index 0000000..005d5a9
index 0000000..24f3479
--- /dev/null
+++ b/lib/rubygems/commands/nix_command.rb
@@ -0,0 +1,226 @@
@@ -0,0 +1,229 @@
+require 'net/http'
+require 'rubygems/command'
+require 'rubygems/doc_manager'
@ -102,7 +103,7 @@ index 0000000..005d5a9
+ raise Gem::CommandLineError, "could'nt parse arg. expected: name or name-version"
+ end
+
+ print "adding gem_name\n"
+ puts "adding #{gem_name}\n"
+
+ adddep(Gem::Dependency.new gem_name, version)
+ }
@ -183,8 +184,8 @@ index 0000000..005d5a9
+ return if @seen[full_name]
+ @seen[full_name] = true # there maybe circular dependencies. thus mark this gem seen as early as possible
+
+ # distinguish runtime / buildtime deps? (TODO)
+ deps = gem[0].dependencies
+ # development deps can't be found. Some are old. Thus only add rutime dependencies
+ deps = gem[0].dependencies.find_all { |d| d.type == :runtime }
+
+ print " total deps of #{full_name}: #{deps.length}\n"
+
@ -227,13 +228,16 @@ index 0000000..005d5a9
+
+ if cash[src].nil? then
+ tmp="/tmp/ruby-gems-nix-tmp-file"
+ raise Gem::DependencyError("could'nt nix-prefetch #{src}") \
+ if (not system("nix-prefetch-url #{src.gsub(/([:= `$;])/,'\\\\\1')} > #{tmp} 2>/dev/null")) || $? != 0
+ system("nix-prefetch-url #{src.gsub(/([:= `$;])/,'\\\\\1')} > #{tmp} 2>/dev/null")
+ if $? == 0
+ file = File.new(tmp)
+ hash = file.readlines().first().split("\n")[0] # remove trailing \n
+ file.close()
+ File.delete(tmp)
+ cash[src] = hash
+ else
+ cash[src] = "no hash"
+ end
+
+ File.open(cashfile, "w+") do |f| Marshal.dump(cash, f) end
+ end
@ -242,3 +246,22 @@ index 0000000..005d5a9
+ end
+
+end
diff --git a/lib/rubygems/installer.rb b/lib/rubygems/installer.rb
index d1ef3cb..bf15652 100755
--- a/lib/rubygems/installer.rb
+++ b/lib/rubygems/installer.rb
@@ -545,6 +545,13 @@ Results logged to #{File.join(Dir.pwd, 'gem_make.out')}
say path if Gem.configuration.really_verbose
end
+
+ if !ENV['NIX_POST_EXTRACT_FILES_HOOK'].nil?
+ print "\nrunning NIX_POST_EXTRACT_FILES_HOOK #{ENV['NIX_POST_EXTRACT_FILES_HOOK']} #{@gem_dir}\n"
+ print `#{ENV['NIX_POST_EXTRACT_FILES_HOOK']} #{@gem_dir}`
+ print "\nrunning NIX_POST_EXTRACT_FILES_HOOK done\n"
+ end
+
end
##

View File

@ -4,22 +4,24 @@ rec {
# some packages (eg ruby-debug) still require 1.8. So let's stick to that for
# now if nobody has different requirements
version = "1.3.4";
version = "1.3.5";
src = fetchurl {
url = "http://rubyforge.org/frs/download.php/57643/rubygems-1.3.4.tgz";
sha256 = "1z5vvwdf7cwiq669amfxzqd88bn576yq6d9c5c6c92fm9sib1d0y";
url = "http://rubyforge.org/frs/download.php/60718/rubygems-1.3.5.tgz";
sha256 = "1b26fn9kmyd6394m1gqppi10xyf1hac85lvsynsxzpjlmv0qr4n0";
};
buildInputs = [ruby makeWrapper];
configureFlags = [];
doInstall = fullDepEntry (''
ruby setup.rb --prefix=$out/
wrapProgram $out/bin/gem --prefix RUBYLIB : $out/lib:$out/lib
find $out -type f -name "*.rb" | xargs sed -i "s@/usr/bin/env@$(type -p env)@g"
'') ["minInit" "addInputs" "doUnpack" "defEnsureDir"];
/* doConfigure should be specified separately */
phaseNames = ["doInstall"];
phaseNames = ["doPatch" "doInstall"];
name = "rubygems-" + version;
meta = {

View File

@ -15,26 +15,69 @@
{pkgs, stdenv}:
let libs =
let
inherit (pkgs) fetchurl;
inherit (pkgs) fetchurl sourceFromHead writeScript makeWrapper;
ruby = pkgs.ruby; # select ruby version here
rubygems = pkgs.rubygemsFun ruby; # for bootstrapping
inherit (pkgs.lib) mergeAttrsByFuncDefaults optional;
inherit (builtins) hasAttr getAttr;
patchUsrBinEnv = writeScript "path-usr-bin-env" ''
#!/bin/sh
set -x
echo "==================="
find "$1" -type f -name "*.rb" | xargs sed -i "s@/usr/bin/env@$(type -p env)@g"
find "$1" -type f -name "*.mk" | xargs sed -i "s@/usr/bin/env@$(type -p env)@g"
'';
# these settings are merged into the automatically generated settings
# either the nameNoVersion or name must match
patches = {
sup = {
buildInputs = [ pkgs.ncurses libs.rubygems_update ];
buildInputs = [ pkgs.ncurses pkgs.xapianBindings ];
};
ncurses = { buildInputs = [ pkgs.ncurses ]; };
nokogiri = {
buildFlags=["--with-xml2-dir=${pkgs.libxml2} --with-xml2-include=${pkgs.libxml2}/include/libxml2"
"--with-xslt-dir=${pkgs.libxslt}" ]; };
"--with-xslt-dir=${pkgs.libxslt}" ];
};
gemcutter = {
propagatedBuildInputs = [ libs.rubygems_update ];
};
ffi = {
postUnpack = "onetuh";
propagatedBuildInputs = [ libs.rake libs.rubygems_update ];
buildFlags=["--with-ffi-dir=${pkgs.libffi}"];
NIX_POST_EXTRACT_FILES_HOOK = patchUsrBinEnv;
};
rake = {
propagatedBuildInputs = [ libs.rubygems_update ];
};
rubygems_update = {
# gems is using --env-shebang by default
# replace env lines by $out/../bin/env
postInstall = ''
cd $out/gems/*; patch -p 1 < ${./gem_nix_command.patch}; echo
cd $out/gems/*;
patch -p 1 < ${./gem_nix_command.patch}; echo
find $out -type f -name "*.rb" | xargs sed -i "s@/usr/bin/env@$(type -p env)@g"
'';
};
xrefresh_server =
let patch = fetchurl {
url = "http://mawercer.de/~nix/xrefresh.diff.gz";
sha256 = "1f7bnmn1pgkmkml0ms15m5lx880hq2sxy7vsddb3sbzm7n1yyicq";
};
in {
propagatedBuildInputs = [ libs.rb_inotify libs.rubygems_update ];
# monitor implementation for Linux
postInstall = ''
cd $out/gems/*;
cat ${patch} | gunzip | patch -p 1;
'';
};
};
@ -42,19 +85,20 @@ let libs =
rubyDerivation = args :
let completeArgs = (mergeAttrsByFuncDefaults
([{
buildInputs = [rubygems pkgs.makeWrapper];
buildInputs = [rubygems ruby pkgs.makeWrapper];
unpackPhase = ":";
configurePhase=":";
bulidPhase=":";
# TODO add some abstraction for this kind of env path concatenation. It's used multiple times
installPhase = ''
ensureDir "$out/nix-support"
export HOME=$TMP/home; mkdir "$HOME"
gem install -E -i "$out" "$src" -- $buildFlags
gem install --ignore-dependencies --env-shebang -E -i "$out" "$src" -- $buildFlags
rm -fr $out/cache # don't keep the .gem file here
THIS_RUBY_LIB=$out/gems/$name/lib
THIS_RUBY_LIB=$(echo $out/gems/*/lib)
THIS_GEM_PATH=$out
cat >> $out/nix-support/setup-hook << EOF
@ -67,24 +111,36 @@ let libs =
done
GEM_PATH_HASH["$THIS_GEM_PATH"]=
for path in \''${!GEM_PATH_HASH[@]}; do
export GEM_PATH=\''${GEM_PATH_HASH}\''${GEM_PATH:+:}\$path
export GEM_PATH=\''${GEM_PATH}\''${GEM_PATH:+:}\$path
done
EOF
. $out/nix-support/setup-hook
for prog in $out/bin/*; do
wrapProgram "$prog" \
--prefix RUBYLIB : "$RUBYLIB" \
--prefix GEM_PATH : "$GEM_PATH" \
--set RUBYOPT 'rubygems'
done
for prog in $out/gems/*/bin/*; do
[ -e "$out/bin/$(basename $prog)" ] && continue || true
sed -i '1s@.*@#! ${ruby}/bin/ruby@' "$prog"
t="$out/bin/$(basename "$prog")"
cat >> "$t" << EOF
#!/bin/sh
export GEM_PATH=$GEM_PATH:\$GEM_PATH
#export RUBYLIB=$RUBYLIB:\$RUBYLIB
exec ruby $prog "\$@"
exec $(type -p ruby) $prog "\$@"
EOF
chmod +x "$t"
done
runHook postInstall
'';
} args ]
++ optional (hasAttr args.name patches) (getAttr args.name patches)
++ optional (hasAttr args.nameNoVersion patches) (getAttr args.nameNoVersion patches)
@ -93,66 +149,9 @@ let libs =
rec {
# ================ START automatically generated code ================
# WARNING: automatically generated CODE
# This section has been generated by
# $ gem nix sup chronic rubygems-update
# both rubygems (all-packages.nix) and rubygems_update are patched
# adding the nix command
rubygems_update_1_3_4 = rubyDerivation {
name = "ruby-rubygems-update-1.3.4"; # full_name
nameNoVersion = "rubygems_update";
propagatedBuildInputs = [ ];
src = fetchurl {
url = "http://gems.rubyforge.org/gems/rubygems-update-1.3.4.gem";
sha256 = "1y7svhxpr1bfzdpwlaqymm71sbvbhyf3yyifnxadkwd0zqp3chqp";
};
meta = {
homepage = "http://rubygems.rubyforge.org";
license = []; # one of ?
description = "RubyGems is a package management framework for Ruby This gem is an update for the RubyGems software. You must have an i"; # cut to 120 chars
longDescription = "RubyGems is a package management framework for Ruby.
This gem is an update for the RubyGems software. You must have an
installation of RubyGems before this update can be applied.
";
};
};
rexical_1_0_4 = rubyDerivation {
name = "ruby-rexical-1.0.4"; # full_name
nameNoVersion = "rexical";
propagatedBuildInputs = [ hoe_2_3_2 ];
src = fetchurl {
url = "http://gems.rubyforge.org/gems/rexical-1.0.4.gem";
sha256 = "1jfhrlnilb422jvhlbc6dqs25ba45hb2wz5yxdpk27yb0dn9ihid";
};
meta = {
homepage = "http://github.com/tenderlove/rexical/tree/master";
license = []; # one of ?
description = "Rexical is a lexical scanner generator It is written in Ruby itself, and generates Ruby program. It is designed for use w"; # cut to 120 chars
longDescription = "Rexical is a lexical scanner generator.
It is written in Ruby itself, and generates Ruby program.
It is designed for use with Racc.";
};
};
ferret_0_11_6 = rubyDerivation {
name = "ruby-ferret-0.11.6"; # full_name
nameNoVersion = "ferret";
propagatedBuildInputs = [ rake_0_8_7 ];
src = fetchurl {
url = "http://gems.rubyforge.org/gems/ferret-0.11.6.gem";
sha256 = "0q0zdrmfm41ijf1n19s85vg34b1a558x5cnwmbb8fc8kzxklzbih";
};
meta = {
homepage = "http://ferret.davebalmain.com/trac";
license = []; # one of ?
description = "Ferret is a port of the Java Lucene project[...]";
longDescription = "Ferret is a port of the Java Lucene project. It is a powerful indexing and search library.";
};
};
# This section has been generated by gem nix sup chronic rubygems-update xrefresh-server rb-inotify jeweler
# the gem nix command has been added by a nix patch to ruby gems
rake_0_8_7 = rubyDerivation {
name = "ruby-rake-0.8.7"; # full_name
@ -170,19 +169,129 @@ let libs =
};
};
racc_1_4_6 = rubyDerivation {
name = "ruby-racc-1.4.6"; # full_name
nameNoVersion = "racc";
ferret_0_11_6 = rubyDerivation {
name = "ruby-ferret-0.11.6"; # full_name
nameNoVersion = "ferret";
propagatedBuildInputs = [ ];
src = fetchurl {
url = "http://gems.rubyforge.org/gems/racc-1.4.6.gem";
sha256 = "0y43s36bbn96pksf7dbpgjyyd9qsyyn77cl7hnfjwldhfvbfcxsq";
url = "http://gems.rubyforge.org/gems/ferret-0.11.6.gem";
sha256 = "0q0zdrmfm41ijf1n19s85vg34b1a558x5cnwmbb8fc8kzxklzbih";
};
meta = {
homepage = "http://racc.rubyforge.org/";
homepage = "http://ferret.davebalmain.com/trac";
license = []; # one of ?
description = "Racc is a LALR(1) parser generator[...]";
longDescription = "Racc is a LALR(1) parser generator. It is written in Ruby itself, and generates Ruby program.";
description = "Ferret is a port of the Java Lucene project[...]";
longDescription = "Ferret is a port of the Java Lucene project. It is a powerful indexing and search library.";
};
};
git_1_2_5 = rubyDerivation {
name = "ruby-git-1.2.5"; # full_name
nameNoVersion = "git";
propagatedBuildInputs = [ ];
src = fetchurl {
url = "http://gems.rubyforge.org/gems/git-1.2.5.gem";
sha256 = "19dy8sakv4x7pnvjddqjyd4j74cji14wikhz95iaqqrc9n4z43hk";
};
meta = {
homepage = "http://github.com/schacon/ruby-git";
license = []; # one of ?
description = "[...]";
longDescription = "";
};
};
rubygems_update_1_3_5 = rubyDerivation {
name = "ruby-rubygems-update-1.3.5"; # full_name
nameNoVersion = "rubygems_update";
propagatedBuildInputs = [ ];
src = fetchurl {
url = "http://gems.rubyforge.org/gems/rubygems-update-1.3.5.gem";
sha256 = "1idzrbnl24ldxz8dmn8lz466avsn1w0rbc35lyp92fd3ar2b23qj";
};
meta = {
homepage = "http://rubygems.rubyforge.org/";
license = []; # one of ?
description = "RubyGems is a package management framework for Ruby This gem is an update for the RubyGems software. You must have an in"; # cut to 120 chars
longDescription = "RubyGems is a package management framework for Ruby.
This gem is an update for the RubyGems software. You must have an
installation of RubyGems before this update can be applied.
See Gem for information on RubyGems (or `ri Gem`)
To upgrade to the latest RubyGems, run:
$ gem install --system # you might need to be an administrator or root
NOTE: RubyGems 1.1 and 1.2 have problems upgrading when there is no
rubygems-update installed. You will need to use the following instructions
if you see &quot;Nothing to update&quot;.
If you have an older version of RubyGems installed, then you can still
do it in two steps:
$ gem install rubygems-update # again, might need to be admin/root
$ update_rubygems # ... here too
If you don't have any RubyGems install, there is still the pre-gem approach to
getting software, doing it manually:
1. Download from: http://rubyforge.org/frs/?group_id=126
2. Unpack into a directory and cd there
3. Install with: ruby setup.rb # you may need admin/root privilege
For more details and other options, see:
ruby setup.rb --help";
};
};
net_ssh_2_0_17 = rubyDerivation {
name = "ruby-net-ssh-2.0.17"; # full_name
nameNoVersion = "net_ssh";
propagatedBuildInputs = [ ];
src = fetchurl {
url = "http://gems.rubyforge.org/gems/net-ssh-2.0.17.gem";
sha256 = "0qswvcmq91sfii3cfr6myws2ncch9l4yzd09070yn5a3wsx4i6r5";
};
meta = {
homepage = "http://rubyforge.org/projects/net-ssh/";
license = []; # one of ?
description = "Net::SSH: a pure-Ruby implementation of the SSH2 client protocol[...]";
longDescription = "Net::SSH: a pure-Ruby implementation of the SSH2 client protocol.";
};
};
rb_inotify_0_4_0 = rubyDerivation {
name = "ruby-rb-inotify-0.4.0"; # full_name
nameNoVersion = "rb_inotify";
propagatedBuildInputs = [ ffi_0_5_4 ];
src = fetchurl {
url = "http://gems.rubyforge.org/gems/rb-inotify-0.4.0.gem";
sha256 = "17wanfs4jmp8c3sslb7a947ay9k78fhm1nls87cgpssmynpsmbvl";
};
meta = {
homepage = "http://github.com/nex3/rb-notify";
license = []; # one of ?
description = "A Ruby wrapper for Linux's inotify, using FFI[...]";
longDescription = "A Ruby wrapper for Linux's inotify, using FFI";
};
};
term_ansicolor_1_0_4 = rubyDerivation {
name = "ruby-term-ansicolor-1.0.4"; # full_name
nameNoVersion = "term_ansicolor";
propagatedBuildInputs = [ ];
src = fetchurl {
url = "http://gems.rubyforge.org/gems/term-ansicolor-1.0.4.gem";
sha256 = "0pvyr3f0kk17nap1bm0myziskd8wn3kwba7zmp3zxks8icn0sa5j";
};
meta = {
homepage = "http://term-ansicolor.rubyforge.org";
license = []; # one of ?
description = "[...]";
longDescription = "";
};
};
@ -202,65 +311,13 @@ let libs =
};
};
nokogiri_1_3_2 = rubyDerivation {
name = "ruby-nokogiri-1.3.2"; # full_name
nameNoVersion = "nokogiri";
propagatedBuildInputs = [ racc_1_4_6 rexical_1_0_4 rake_compiler_0_5_0 ];
src = fetchurl {
url = "http://gems.rubyforge.org/gems/nokogiri-1.3.2.gem";
sha256 = "1j5w39nriyw8ly1pzn7giw6wd9r5wclj4r1933z5ximss7l7ih15";
};
meta = {
homepage = "http://nokogiri.org/";
license = []; # one of ?
description = "Nokogiri (&#37624;) is an HTML, XML, SAX, and Reader parser many features is the ability to search documents via XPath or"; # cut to 120 chars
longDescription = "Nokogiri (&#37624;) is an HTML, XML, SAX, and Reader parser. Among Nokogiri's
many features is the ability to search documents via XPath or CSS3 selectors.
XML is like violence - if it doesn&#8217;t solve your problems, you are not using
enough of it.";
};
};
archive_tar_minitar_0_5_2 = rubyDerivation {
name = "ruby-archive-tar-minitar-0.5.2"; # full_name
nameNoVersion = "archive_tar_minitar";
propagatedBuildInputs = [ ];
src = fetchurl {
url = "http://gems.rubyforge.org/gems/archive-tar-minitar-0.5.2.gem";
sha256 = "1j666713r3cc3wb0042x0wcmq2v11vwwy5pcaayy5f0lnd26iqig";
};
meta = {
homepage = "http://rubyforge.org/projects/ruwiki/";
license = []; # one of ?
description = "Archive::Tar::Minitar is a pure-Ruby library and command-line utility that provides the ability to deal with POSIX tar(1)"; # cut to 120 chars
longDescription = "Archive::Tar::Minitar is a pure-Ruby library and command-line utility that provides the ability to deal with POSIX tar(1) archive files. The implementation is based heavily on Mauricio Ferna'ndez's implementation in rpa-base, but has been reorganised to promote reuse in other projects.";
};
};
rubyforge_1_0_3 = rubyDerivation {
name = "ruby-rubyforge-1.0.3"; # full_name
nameNoVersion = "rubyforge";
propagatedBuildInputs = [ ];
src = fetchurl {
url = "http://gems.rubyforge.org/gems/rubyforge-1.0.3.gem";
sha256 = "0pwhb8mrnmcr5yybh13csfn658s1r1y978wj5m3mn85cbvwrrkyz";
};
meta = {
homepage = "http://codeforpeople.rubyforge.org/rubyforge/";
license = []; # one of ?
description = "A script which automates a limited set of rubyforge operations[...]";
longDescription = "A script which automates a limited set of rubyforge operations. * Run 'rubyforge help' for complete usage. * Setup: For first time users AND upgrades to 0.4.0: * rubyforge setup (deletes your username and password, so run sparingly!) * edit ~/.rubyforge/user-config.yml * rubyforge config * For all rubyforge upgrades, run 'rubyforge config' to ensure you have latest. * Don't forget to login! logging in will store a cookie in your .rubyforge directory which expires after a time. always run the login command before any operation that requires authentication, such as uploading a package.";
};
};
ncurses_0_9_1 = rubyDerivation {
name = "ruby-ncurses-0.9.1"; # full_name
nameNoVersion = "ncurses";
propagatedBuildInputs = [ ];
src = fetchurl {
url = "http://gems.rubyforge.org/gems/ncurses-0.9.1.gem";
sha256 = "18qxp33imgrp337p7zrk0c008ydw08g73x1gxiqclhgvyqxa42v3";
sha256 = "0j9k3rfxglkivwnpdkbfk4acfnivfisyj8f0msf3zkid4hnj4r2h";
};
meta = {
homepage = "http://ncurses-ruby.berlios.de/";
@ -270,6 +327,26 @@ let libs =
};
};
ffi_0_5_4 = rubyDerivation {
name = "ruby-ffi-0.5.4"; # full_name
nameNoVersion = "ffi";
propagatedBuildInputs = [ rake_0_8_7 ];
src = fetchurl {
url = "http://gems.rubyforge.org/gems/ffi-0.5.4.gem";
sha256 = "1kxa1ljcl1907kav400w43n9fdw535qr7klj06wx1bnyaq7bfnik";
};
meta = {
homepage = "http://wiki.github.com/ffi/ffi";
license = []; # one of ?
description = "Ruby-FFI is a ruby extension for programmatically loading dynamic libraries, binding functions within them, and calling t"; # cut to 120 chars
longDescription = "Ruby-FFI is a ruby extension for programmatically loading dynamic
libraries, binding functions within them, and calling those functions
from Ruby code. Moreover, a Ruby-FFI extension works without changes
on Ruby and JRuby. Discover why should you write your next extension
using Ruby-FFI here[http://wiki.github.com/ffi/ffi/why-use-ffi].";
};
};
fastthread_1_0_7 = rubyDerivation {
name = "ruby-fastthread-1.0.7"; # full_name
nameNoVersion = "fastthread";
@ -286,55 +363,38 @@ let libs =
};
};
hoe_2_3_2 = rubyDerivation {
name = "ruby-hoe-2.3.2"; # full_name
nameNoVersion = "hoe";
gemcutter_0_3_0 = rubyDerivation {
name = "ruby-gemcutter-0.3.0"; # full_name
nameNoVersion = "gemcutter";
propagatedBuildInputs = [ ];
src = fetchurl {
url = "http://gems.rubyforge.org/gems/hoe-2.3.2.gem";
sha256 = "1asip0l73cp6xxn5dx4vxzsq3qlw5asdnj6jr0cs00nf8a5k341s";
url = "http://gems.rubyforge.org/gems/gemcutter-0.3.0.gem";
sha256 = "07rm04lj5rb093gf1w87rzkj9gr1pkyd5frs716wn5gd4c1silik";
};
meta = {
homepage = "http://rubyforge.org/projects/seattlerb/";
homepage = "http://gemcutter.org";
license = []; # one of ?
description = "Hoe is a rake/rubygems helper for project Rakefiles rubygems and includes a dynamic plug-in system allowing for easy exte"; # cut to 120 chars
longDescription = "Hoe is a rake/rubygems helper for project Rakefiles. It helps generate
rubygems and includes a dynamic plug-in system allowing for easy
extensibility. Hoe ships with plug-ins for all your usual project
tasks including rdoc generation, testing, packaging, and deployment.
Plug-ins Provided:
* Hoe::Clean
* Hoe::Debug
* Hoe::Deps
* Hoe::Flay
* Hoe::Flog
* Hoe::Inline
* Hoe::Package
* Hoe::Publish
* Hoe::RCov
* Hoe::Signing
* Hoe::Test
See class rdoc for help. Hint: ri Hoe";
description = "Adds several commands to RubyGems for managing gems and more on Gemcutter[...]";
longDescription = "Adds several commands to RubyGems for managing gems and more on Gemcutter.org.";
};
};
rake_compiler_0_5_0 = rubyDerivation {
name = "ruby-rake-compiler-0.5.0"; # full_name
nameNoVersion = "rake_compiler";
propagatedBuildInputs = [ ];
gettext_2_1_0 = rubyDerivation {
name = "ruby-gettext-2.1.0"; # full_name
nameNoVersion = "gettext";
propagatedBuildInputs = [ locale_2_0_5 ];
src = fetchurl {
url = "http://gems.rubyforge.org/gems/rake-compiler-0.5.0.gem";
sha256 = "03l6hgyv9z2bc1p16c2mai5n1ylhzcnw053x0x0nc94p4297m2jv";
url = "http://gems.rubyforge.org/gems/gettext-2.1.0.gem";
sha256 = "17g048gp7gh3c311l5jw2sbanma2havj4yqhaaa50b3rx72y4xwz";
};
meta = {
homepage = "http://github.com/luislavena/rake-compiler";
homepage = "http://gettext.rubyforge.org/";
license = []; # one of ?
description = "Provide a standard and simplified way to build and package Ruby C extensions using Rake as glue[...]";
longDescription = "Provide a standard and simplified way to build and package
Ruby C extensions using Rake as glue.";
description = " Ruby-GetText-Package is a GNU GetText-like program for Ruby The catalog file(po-file) is same format with"; # cut to 120 chars
longDescription = " Ruby-GetText-Package is a GNU GetText-like program for Ruby.
The catalog file(po-file) is same format with GNU GetText.
So you can use GNU GetText tools for maintaining.
";
};
};
@ -354,58 +414,66 @@ let libs =
};
};
locale_2_0_4 = rubyDerivation {
name = "ruby-locale-2.0.4"; # full_name
rubyforge_2_0_3 = rubyDerivation {
name = "ruby-rubyforge-2.0.3"; # full_name
nameNoVersion = "rubyforge";
propagatedBuildInputs = [ json_pure_1_2_0 ];
src = fetchurl {
url = "http://gems.rubyforge.org/gems/rubyforge-2.0.3.gem";
sha256 = "1ck9hkad55dy25819v4gd1nmnpvcrb3i4np3hc03h1j6q8qpxg5p";
};
meta = {
homepage = "http://codeforpeople.rubyforge.org/rubyforge/";
license = []; # one of ?
description = "A script which automates a limited set of rubyforge operations * Run 'rubyforge help' for complete usage. * Setup: For f"; # cut to 120 chars
longDescription = "A script which automates a limited set of rubyforge operations.
* Run 'rubyforge help' for complete usage.
* Setup: For first time users AND upgrades to 0.4.0:
* rubyforge setup (deletes your username and password, so run sparingly!)
* edit ~/.rubyforge/user-config.yml
* rubyforge config
* For all rubyforge upgrades, run 'rubyforge config' to ensure you have latest.";
};
};
xrefresh_server_0_3_0 = rubyDerivation {
name = "ruby-xrefresh-server-0.3.0"; # full_name
nameNoVersion = "xrefresh_server";
propagatedBuildInputs = [ json_1_2_0 term_ansicolor_1_0_4 ];
src = fetchurl {
url = "http://gems.rubyforge.org/gems/xrefresh-server-0.3.0.gem";
sha256 = "1k80hadnmaxi8q8fw879xaj0ragy4bmqjqm7zjkv9bq8njb3i0c5";
};
meta = {
homepage = "http://github.com/darwin/xrefresh-server";
license = []; # one of ?
description = "XRefresh is browser refresh automation for web developers[...]";
longDescription = "XRefresh is browser refresh automation for web developers";
};
};
locale_2_0_5 = rubyDerivation {
name = "ruby-locale-2.0.5"; # full_name
nameNoVersion = "locale";
propagatedBuildInputs = [ ];
src = fetchurl {
url = "http://gems.rubyforge.org/gems/locale-2.0.4.gem";
sha256 = "1fy0bsrxmskmsw3wrl2dis57rgs1jr1dmlp3xm9z8w1phaqh3c8v";
url = "http://gems.rubyforge.org/gems/locale-2.0.5.gem";
sha256 = "007yx9rx52as4ykkcm1aw29vgm6rk5xz8012814ynhlp1i0z1fi8";
};
meta = {
homepage = "http://locale.rubyforge.org/";
license = []; # one of ?
description = "Ruby-Locale is the pure ruby library which provides basic APIs for localization[...]";
longDescription = "Ruby-Locale is the pure ruby library which provides basic APIs for localization.";
};
};
rcov_0_8_1_2_0 = rubyDerivation {
name = "ruby-rcov-0.8.1.2.0"; # full_name
nameNoVersion = "rcov";
propagatedBuildInputs = [ ];
src = fetchurl {
url = "http://gems.rubyforge.org/gems/rcov-0.8.1.2.0.gem";
sha256 = "0mbm0n48yvgiibyvdc3gn4h70c82pn7z3hns9jinak7hyfmb5q5p";
};
meta = {
homepage = "http://eigenclass.org/hiki.rb?rcov";
license = []; # one of ?
description = "rcov is a code coverage tool for Ruby[...]";
longDescription = "rcov is a code coverage tool for Ruby. It is commonly used for viewing overall test unit coverage of target code. It features fast execution (20-300 times faster than previous tools), multiple analysis modes, XHTML and several kinds of text reports, easy automation with Rake via a RcovTask, fairly accurate coverage information through code linkage inference using simple heuristics, colorblind-friendliness...";
};
};
echoe_3_1_1 = rubyDerivation {
name = "ruby-echoe-3.1.1"; # full_name
nameNoVersion = "echoe";
propagatedBuildInputs = [ rubyforge_1_0_3 ];
src = fetchurl {
url = "http://gems.rubyforge.org/gems/echoe-3.1.1.gem";
sha256 = "1vy4jc8j8fq89r7fg2x37ybagghpw82qbqivc9pjk5fwyrxcvqha";
};
meta = {
homepage = "http://blog.evanweaver.com/files/doc/fauna/echoe/";
license = []; # one of ?
description = "A Rubygems packaging tool that provides Rake tasks for documentation, extension compiling, testing, and deployment[...]";
longDescription = "A Rubygems packaging tool that provides Rake tasks for documentation, extension compiling, testing, and deployment.";
description = " Ruby-Locale is the pure ruby library which provides basic APIs for localization [...]";
longDescription = " Ruby-Locale is the pure ruby library which provides basic APIs for localization.
";
};
};
mime_types_1_16 = rubyDerivation {
name = "ruby-mime-types-1.16"; # full_name
nameNoVersion = "mime_types";
propagatedBuildInputs = [ archive_tar_minitar_0_5_2 nokogiri_1_3_2 rcov_0_8_1_2_0 ];
propagatedBuildInputs = [ ];
src = fetchurl {
url = "http://gems.rubyforge.org/gems/mime-types-1.16.gem";
sha256 = "1slp7g2xv9ygcapqv13qgh3g6ipx5k5c3imb5sdyh0b9ip5s34y3";
@ -418,22 +486,6 @@ let libs =
};
};
net_ssh_2_0_11 = rubyDerivation {
name = "ruby-net-ssh-2.0.11"; # full_name
nameNoVersion = "net_ssh";
propagatedBuildInputs = [ echoe_3_1_1 ];
src = fetchurl {
url = "http://gems.rubyforge.org/gems/net-ssh-2.0.11.gem";
sha256 = "1j1mpnhpnb0d9l3jfk7g02syqjanc51lm076llzmjydy30x2n2f7";
};
meta = {
homepage = "http://net-ssh.rubyforge.org/ssh";
license = []; # one of ?
description = "a pure-Ruby implementation of the SSH2 client protocol[...]";
longDescription = "a pure-Ruby implementation of the SSH2 client protocol";
};
};
highline_1_5_1 = rubyDerivation {
name = "ruby-highline-1.5.1"; # full_name
nameNoVersion = "highline";
@ -450,29 +502,61 @@ let libs =
};
};
gettext_2_0_4 = rubyDerivation {
name = "ruby-gettext-2.0.4"; # full_name
nameNoVersion = "gettext";
propagatedBuildInputs = [ locale_2_0_4 ];
json_pure_1_2_0 = rubyDerivation {
name = "ruby-json_pure-1.2.0"; # full_name
nameNoVersion = "json_pure";
propagatedBuildInputs = [ ];
src = fetchurl {
url = "http://gems.rubyforge.org/gems/gettext-2.0.4.gem";
sha256 = "1hdj91qg5858ss3wsdjbi4yxmwixqin5vv550fkvf4514yyc9gk0";
url = "http://gems.rubyforge.org/gems/json_pure-1.2.0.gem";
sha256 = "162lzzbadp62q1fjf5zyg45qly9pryjh7f6xhnf04zbjiq815pc5";
};
meta = {
homepage = "http://gettext.rubyforge.org/";
homepage = "http://json.rubyforge.org";
license = []; # one of ?
description = "Ruby-GetText-Package is a GNU GetText-like program for Ruby[...]";
longDescription = "Ruby-GetText-Package is a GNU GetText-like program for Ruby. The catalog file(po-file) is same format with GNU GetText. So you can use GNU GetText tools for maintaining.";
description = "This is a JSON implementation in pure Ruby[...]";
longDescription = "This is a JSON implementation in pure Ruby.";
};
};
sup_0_8_1 = rubyDerivation {
name = "ruby-sup-0.8.1"; # full_name
nameNoVersion = "sup";
propagatedBuildInputs = [ ferret_0_11_6 ncurses_0_9_1 rmail_1_0_0 highline_1_5_1 net_ssh_2_0_11 trollop_1_14 lockfile_1_4_3 mime_types_1_16 gettext_2_0_4 fastthread_1_0_7 ];
jeweler_1_4_0 = rubyDerivation {
name = "ruby-jeweler-1.4.0"; # full_name
nameNoVersion = "jeweler";
propagatedBuildInputs = [ git_1_2_5 rubyforge_2_0_3 gemcutter_0_3_0 ];
src = fetchurl {
url = "http://gems.rubyforge.org/gems/sup-0.8.1.gem";
sha256 = "0q7s63s43mf35j0372g3qpfhsnsys4fbsb8xkshpwrjsd4lb90l2";
url = "http://gems.rubyforge.org/gems/jeweler-1.4.0.gem";
sha256 = "0hsz38wc37k1zzmy1jjvsqj6am14n410bbxk1dhq55cgapnwm3kb";
};
meta = {
homepage = "http://github.com/technicalpickles/jeweler";
license = []; # one of ?
description = "Simple and opinionated helper for creating Rubygem projects on GitHub[...]";
longDescription = "Simple and opinionated helper for creating Rubygem projects on GitHub";
};
};
json_1_2_0 = rubyDerivation {
name = "ruby-json-1.2.0"; # full_name
nameNoVersion = "json";
propagatedBuildInputs = [ ];
src = fetchurl {
url = "http://gems.rubyforge.org/gems/json-1.2.0.gem";
sha256 = "0srfhr38g322l4lcnzsa6kzp64i9p24ai2bmh5wl0xx2g925b7n7";
};
meta = {
homepage = "http://json.rubyforge.org";
license = []; # one of ?
description = "This is a JSON implementation as a Ruby extension in C[...]";
longDescription = "This is a JSON implementation as a Ruby extension in C.";
};
};
sup_0_9_1 = rubyDerivation {
name = "ruby-sup-0.9.1"; # full_name
nameNoVersion = "sup";
propagatedBuildInputs = [ ferret_0_11_6 ncurses_0_9_1 rmail_1_0_0 highline_1_5_1 net_ssh_2_0_17 trollop_1_15 lockfile_1_4_3 mime_types_1_16 gettext_2_1_0 fastthread_1_0_7 ];
src = fetchurl {
url = "http://gems.rubyforge.org/gems/sup-0.9.1.gem";
sha256 = "0hifzcvfsbcyjszyyryfi60qiysn0i47f8jlwj3p7v7agxy5hm5a";
};
meta = {
homepage = "http://sup.rubyforge.org/";
@ -482,19 +566,40 @@ let libs =
};
};
trollop_1_14 = rubyDerivation {
name = "ruby-trollop-1.14"; # full_name
trollop_1_15 = rubyDerivation {
name = "ruby-trollop-1.15"; # full_name
nameNoVersion = "trollop";
propagatedBuildInputs = [ ];
src = fetchurl {
url = "http://gems.rubyforge.org/gems/trollop-1.14.gem";
sha256 = "15jsdlnq6fj3q3g47qswi73gx91rw1yvssi8zkwf6svkd55ri3f7";
url = "http://gems.rubyforge.org/gems/trollop-1.15.gem";
sha256 = "0xxd96xpnxmm4195qwawpjqgnsbzw4s70jf0wz32ynmya7flgdhk";
};
meta = {
homepage = "http://trollop.rubyforge.org";
license = []; # one of ?
description = "Documentation quickstart: See Trollop::options (for some reason rdoc isn't linking that; it's in the top right of the scr"; # cut to 120 chars
longDescription = "Documentation quickstart: See Trollop::options (for some reason rdoc isn't linking that; it's in the top right of the screen if you're browsing online) and then Trollop::Parser#opt. Also see the examples at http://trollop.rubyforge.org/. == DESCRIPTION == REQUIREMENTS * A burning desire to write less code. == INSTALL * gem install trollop == LICENSE Copyright (c) 2008 William Morgan. Trollop is distributed under the same terms as Ruby.";
longDescription = "Documentation quickstart: See Trollop::options (for some reason rdoc isn't
linking that; it's in the top right of the screen if you're browsing online)
and then Trollop::Parser#opt. Also see the examples at
http://trollop.rubyforge.org/.
== DESCRIPTION
== REQUIREMENTS
* A burning desire to write less code.
== INSTALL
* gem install trollop
== LICENSE
Copyright (c) 2008--2009 William Morgan. Trollop is distributed under the same
terms as Ruby.
";
};
};
@ -515,30 +620,31 @@ let libs =
};
# aliases
rmail=rmail_1_0_0;
fastthread=fastthread_1_0_7;
highline=highline_1_5_1;
rake=rake_0_8_7;
rubygems_update=rubygems_update_1_3_4;
sup=sup_0_8_1;
mime_types=mime_types_1_16;
echoe=echoe_3_1_1;
rubyforge=rubyforge_1_0_3;
rake_compiler=rake_compiler_0_5_0;
ferret=ferret_0_11_6;
net_ssh=net_ssh_2_0_11;
rcov=rcov_0_8_1_2_0;
ncurses=ncurses_0_9_1;
trollop=trollop_1_14;
gettext=gettext_2_0_4;
archive_tar_minitar=archive_tar_minitar_0_5_2;
locale=locale_2_0_4;
hoe=hoe_2_3_2;
chronic=chronic_0_2_3;
racc=racc_1_4_6;
lockfile=lockfile_1_4_3;
nokogiri=nokogiri_1_3_2;
rexical=rexical_1_0_4;
rmail=rmail_1_0_0;
term_ansicolor=term_ansicolor_1_0_4;
fastthread=fastthread_1_0_7;
rb_inotify=rb_inotify_0_4_0;
highline=highline_1_5_1;
rubygems_update=rubygems_update_1_3_5;
rake=rake_0_8_7;
sup=sup_0_9_1;
mime_types=mime_types_1_16;
rubyforge=rubyforge_2_0_3;
gemcutter=gemcutter_0_3_0;
ferret=ferret_0_11_6;
json=json_1_2_0;
xrefresh_server=xrefresh_server_0_3_0;
ncurses=ncurses_0_9_1;
net_ssh=net_ssh_2_0_17;
trollop=trollop_1_15;
jeweler=jeweler_1_4_0;
gettext=gettext_2_1_0;
git=git_1_2_5;
json_pure=json_pure_1_2_0;
locale=locale_2_0_5;
chronic=chronic_0_2_3;
lockfile=lockfile_1_4_3;
ffi=ffi_0_5_4;
# ================ END automatically generated code ================
}; in libs