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 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 --- a/lib/rubygems/command_manager.rb
+++ b/lib/rubygems/command_manager.rb +++ b/lib/rubygems/command_manager.rb
@@ -70,6 +70,7 @@ class Gem::CommandManager @@ -70,6 +70,7 @@ class Gem::CommandManager
@ -10,12 +10,13 @@ index 0a19016..ef66d30 100644
end end
## ##
diff --git a/lib/rubygems/commands/nix_command.rb b/lib/rubygems/commands/nix_command.rb diff --git a/lib/rubygems/commands/nix_command.rb b/lib/rubygems/commands/nix_command.rb
new file mode 100644 new file mode 100644
index 0000000..005d5a9 index 0000000..24f3479
--- /dev/null --- /dev/null
+++ b/lib/rubygems/commands/nix_command.rb +++ b/lib/rubygems/commands/nix_command.rb
@@ -0,0 +1,226 @@ @@ -0,0 +1,229 @@
+require 'net/http' +require 'net/http'
+require 'rubygems/command' +require 'rubygems/command'
+require 'rubygems/doc_manager' +require 'rubygems/doc_manager'
@ -102,7 +103,7 @@ index 0000000..005d5a9
+ raise Gem::CommandLineError, "could'nt parse arg. expected: name or name-version" + raise Gem::CommandLineError, "could'nt parse arg. expected: name or name-version"
+ end + end
+ +
+ print "adding gem_name\n" + puts "adding #{gem_name}\n"
+ +
+ adddep(Gem::Dependency.new gem_name, version) + adddep(Gem::Dependency.new gem_name, version)
+ } + }
@ -183,8 +184,8 @@ index 0000000..005d5a9
+ return if @seen[full_name] + return if @seen[full_name]
+ @seen[full_name] = true # there maybe circular dependencies. thus mark this gem seen as early as possible + @seen[full_name] = true # there maybe circular dependencies. thus mark this gem seen as early as possible
+ +
+ # distinguish runtime / buildtime deps? (TODO) + # development deps can't be found. Some are old. Thus only add rutime dependencies
+ deps = gem[0].dependencies + deps = gem[0].dependencies.find_all { |d| d.type == :runtime }
+ +
+ print " total deps of #{full_name}: #{deps.length}\n" + print " total deps of #{full_name}: #{deps.length}\n"
+ +
@ -227,13 +228,16 @@ index 0000000..005d5a9
+ +
+ if cash[src].nil? then + if cash[src].nil? then
+ tmp="/tmp/ruby-gems-nix-tmp-file" + tmp="/tmp/ruby-gems-nix-tmp-file"
+ raise Gem::DependencyError("could'nt nix-prefetch #{src}") \ + system("nix-prefetch-url #{src.gsub(/([:= `$;])/,'\\\\\1')} > #{tmp} 2>/dev/null")
+ if (not system("nix-prefetch-url #{src.gsub(/([:= `$;])/,'\\\\\1')} > #{tmp} 2>/dev/null")) || $? != 0 + if $? == 0
+ file = File.new(tmp) + file = File.new(tmp)
+ hash = file.readlines().first().split("\n")[0] # remove trailing \n + hash = file.readlines().first().split("\n")[0] # remove trailing \n
+ file.close() + file.close()
+ File.delete(tmp) + File.delete(tmp)
+ cash[src] = hash + cash[src] = hash
+ else
+ cash[src] = "no hash"
+ end
+ +
+ File.open(cashfile, "w+") do |f| Marshal.dump(cash, f) end + File.open(cashfile, "w+") do |f| Marshal.dump(cash, f) end
+ end + end
@ -242,3 +246,22 @@ index 0000000..005d5a9
+ end + end
+ +
+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 # some packages (eg ruby-debug) still require 1.8. So let's stick to that for
# now if nobody has different requirements # now if nobody has different requirements
version = "1.3.4"; version = "1.3.5";
src = fetchurl { src = fetchurl {
url = "http://rubyforge.org/frs/download.php/57643/rubygems-1.3.4.tgz"; url = "http://rubyforge.org/frs/download.php/60718/rubygems-1.3.5.tgz";
sha256 = "1z5vvwdf7cwiq669amfxzqd88bn576yq6d9c5c6c92fm9sib1d0y"; sha256 = "1b26fn9kmyd6394m1gqppi10xyf1hac85lvsynsxzpjlmv0qr4n0";
}; };
buildInputs = [ruby makeWrapper]; buildInputs = [ruby makeWrapper];
configureFlags = []; configureFlags = [];
doInstall = fullDepEntry ('' doInstall = fullDepEntry (''
ruby setup.rb --prefix=$out/ ruby setup.rb --prefix=$out/
wrapProgram $out/bin/gem --prefix RUBYLIB : $out/lib:$out/lib 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"]; '') ["minInit" "addInputs" "doUnpack" "defEnsureDir"];
/* doConfigure should be specified separately */ /* doConfigure should be specified separately */
phaseNames = ["doInstall"]; phaseNames = ["doPatch" "doInstall"];
name = "rubygems-" + version; name = "rubygems-" + version;
meta = { meta = {

View File

@ -15,26 +15,69 @@
{pkgs, stdenv}: {pkgs, stdenv}:
let libs = let libs =
let let
inherit (pkgs) fetchurl; inherit (pkgs) fetchurl sourceFromHead writeScript makeWrapper;
ruby = pkgs.ruby; # select ruby version here ruby = pkgs.ruby; # select ruby version here
rubygems = pkgs.rubygemsFun ruby; # for bootstrapping rubygems = pkgs.rubygemsFun ruby; # for bootstrapping
inherit (pkgs.lib) mergeAttrsByFuncDefaults optional; inherit (pkgs.lib) mergeAttrsByFuncDefaults optional;
inherit (builtins) hasAttr getAttr; 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 # these settings are merged into the automatically generated settings
# either the nameNoVersion or name must match # either the nameNoVersion or name must match
patches = { patches = {
sup = { sup = {
buildInputs = [ pkgs.ncurses libs.rubygems_update ]; buildInputs = [ pkgs.ncurses pkgs.xapianBindings ];
}; };
ncurses = { buildInputs = [ pkgs.ncurses ]; }; ncurses = { buildInputs = [ pkgs.ncurses ]; };
nokogiri = { nokogiri = {
buildFlags=["--with-xml2-dir=${pkgs.libxml2} --with-xml2-include=${pkgs.libxml2}/include/libxml2" 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 = { rubygems_update = {
# gems is using --env-shebang by default
# replace env lines by $out/../bin/env
postInstall = '' 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 : rubyDerivation = args :
let completeArgs = (mergeAttrsByFuncDefaults let completeArgs = (mergeAttrsByFuncDefaults
([{ ([{
buildInputs = [rubygems pkgs.makeWrapper]; buildInputs = [rubygems ruby pkgs.makeWrapper];
unpackPhase = ":"; unpackPhase = ":";
configurePhase=":"; configurePhase=":";
bulidPhase=":"; bulidPhase=":";
# TODO add some abstraction for this kind of env path concatenation. It's used multiple times # TODO add some abstraction for this kind of env path concatenation. It's used multiple times
installPhase = '' installPhase = ''
ensureDir "$out/nix-support" ensureDir "$out/nix-support"
export HOME=$TMP/home; mkdir "$HOME" 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 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 THIS_GEM_PATH=$out
cat >> $out/nix-support/setup-hook << EOF cat >> $out/nix-support/setup-hook << EOF
@ -67,24 +111,36 @@ let libs =
done done
GEM_PATH_HASH["$THIS_GEM_PATH"]= GEM_PATH_HASH["$THIS_GEM_PATH"]=
for path in \''${!GEM_PATH_HASH[@]}; do 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 done
EOF EOF
. $out/nix-support/setup-hook . $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 for prog in $out/gems/*/bin/*; do
[ -e "$out/bin/$(basename $prog)" ] && continue || true
sed -i '1s@.*@#! ${ruby}/bin/ruby@' "$prog" sed -i '1s@.*@#! ${ruby}/bin/ruby@' "$prog"
t="$out/bin/$(basename "$prog")" t="$out/bin/$(basename "$prog")"
cat >> "$t" << EOF cat >> "$t" << EOF
#!/bin/sh #!/bin/sh
export GEM_PATH=$GEM_PATH:\$GEM_PATH export GEM_PATH=$GEM_PATH:\$GEM_PATH
#export RUBYLIB=$RUBYLIB:\$RUBYLIB #export RUBYLIB=$RUBYLIB:\$RUBYLIB
exec ruby $prog "\$@" exec $(type -p ruby) $prog "\$@"
EOF EOF
chmod +x "$t" chmod +x "$t"
done done
runHook postInstall runHook postInstall
''; '';
} args ] } args ]
++ optional (hasAttr args.name patches) (getAttr args.name patches) ++ optional (hasAttr args.name patches) (getAttr args.name patches)
++ optional (hasAttr args.nameNoVersion patches) (getAttr args.nameNoVersion patches) ++ optional (hasAttr args.nameNoVersion patches) (getAttr args.nameNoVersion patches)
@ -93,66 +149,9 @@ let libs =
rec { rec {
# ================ START automatically generated code ================ # ================ START automatically generated code ================
# WARNING: automatically generated CODE # WARNING: automatically generated CODE
# This section has been generated by # This section has been generated by gem nix sup chronic rubygems-update xrefresh-server rb-inotify jeweler
# $ gem nix sup chronic rubygems-update # the gem nix command has been added by a nix patch to ruby gems
# 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.";
};
};
rake_0_8_7 = rubyDerivation { rake_0_8_7 = rubyDerivation {
name = "ruby-rake-0.8.7"; # full_name name = "ruby-rake-0.8.7"; # full_name
@ -170,19 +169,129 @@ let libs =
}; };
}; };
racc_1_4_6 = rubyDerivation { ferret_0_11_6 = rubyDerivation {
name = "ruby-racc-1.4.6"; # full_name name = "ruby-ferret-0.11.6"; # full_name
nameNoVersion = "racc"; nameNoVersion = "ferret";
propagatedBuildInputs = [ ]; propagatedBuildInputs = [ ];
src = fetchurl { src = fetchurl {
url = "http://gems.rubyforge.org/gems/racc-1.4.6.gem"; url = "http://gems.rubyforge.org/gems/ferret-0.11.6.gem";
sha256 = "0y43s36bbn96pksf7dbpgjyyd9qsyyn77cl7hnfjwldhfvbfcxsq"; sha256 = "0q0zdrmfm41ijf1n19s85vg34b1a558x5cnwmbb8fc8kzxklzbih";
}; };
meta = { meta = {
homepage = "http://racc.rubyforge.org/"; homepage = "http://ferret.davebalmain.com/trac";
license = []; # one of ? license = []; # one of ?
description = "Racc is a LALR(1) parser generator[...]"; description = "Ferret is a port of the Java Lucene project[...]";
longDescription = "Racc is a LALR(1) parser generator. It is written in Ruby itself, and generates Ruby program."; 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 { ncurses_0_9_1 = rubyDerivation {
name = "ruby-ncurses-0.9.1"; # full_name name = "ruby-ncurses-0.9.1"; # full_name
nameNoVersion = "ncurses"; nameNoVersion = "ncurses";
propagatedBuildInputs = [ ]; propagatedBuildInputs = [ ];
src = fetchurl { src = fetchurl {
url = "http://gems.rubyforge.org/gems/ncurses-0.9.1.gem"; url = "http://gems.rubyforge.org/gems/ncurses-0.9.1.gem";
sha256 = "18qxp33imgrp337p7zrk0c008ydw08g73x1gxiqclhgvyqxa42v3"; sha256 = "0j9k3rfxglkivwnpdkbfk4acfnivfisyj8f0msf3zkid4hnj4r2h";
}; };
meta = { meta = {
homepage = "http://ncurses-ruby.berlios.de/"; 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 { fastthread_1_0_7 = rubyDerivation {
name = "ruby-fastthread-1.0.7"; # full_name name = "ruby-fastthread-1.0.7"; # full_name
nameNoVersion = "fastthread"; nameNoVersion = "fastthread";
@ -286,55 +363,38 @@ let libs =
}; };
}; };
hoe_2_3_2 = rubyDerivation { gemcutter_0_3_0 = rubyDerivation {
name = "ruby-hoe-2.3.2"; # full_name name = "ruby-gemcutter-0.3.0"; # full_name
nameNoVersion = "hoe"; nameNoVersion = "gemcutter";
propagatedBuildInputs = [ ]; propagatedBuildInputs = [ ];
src = fetchurl { src = fetchurl {
url = "http://gems.rubyforge.org/gems/hoe-2.3.2.gem"; url = "http://gems.rubyforge.org/gems/gemcutter-0.3.0.gem";
sha256 = "1asip0l73cp6xxn5dx4vxzsq3qlw5asdnj6jr0cs00nf8a5k341s"; sha256 = "07rm04lj5rb093gf1w87rzkj9gr1pkyd5frs716wn5gd4c1silik";
}; };
meta = { meta = {
homepage = "http://rubyforge.org/projects/seattlerb/"; homepage = "http://gemcutter.org";
license = []; # one of ? 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 description = "Adds several commands to RubyGems for managing gems and more on Gemcutter[...]";
longDescription = "Hoe is a rake/rubygems helper for project Rakefiles. It helps generate longDescription = "Adds several commands to RubyGems for managing gems and more on Gemcutter.org.";
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";
}; };
}; };
rake_compiler_0_5_0 = rubyDerivation { gettext_2_1_0 = rubyDerivation {
name = "ruby-rake-compiler-0.5.0"; # full_name name = "ruby-gettext-2.1.0"; # full_name
nameNoVersion = "rake_compiler"; nameNoVersion = "gettext";
propagatedBuildInputs = [ ]; propagatedBuildInputs = [ locale_2_0_5 ];
src = fetchurl { src = fetchurl {
url = "http://gems.rubyforge.org/gems/rake-compiler-0.5.0.gem"; url = "http://gems.rubyforge.org/gems/gettext-2.1.0.gem";
sha256 = "03l6hgyv9z2bc1p16c2mai5n1ylhzcnw053x0x0nc94p4297m2jv"; sha256 = "17g048gp7gh3c311l5jw2sbanma2havj4yqhaaa50b3rx72y4xwz";
}; };
meta = { meta = {
homepage = "http://github.com/luislavena/rake-compiler"; homepage = "http://gettext.rubyforge.org/";
license = []; # one of ? license = []; # one of ?
description = "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 = "Provide a standard and simplified way to build and package longDescription = " Ruby-GetText-Package is a GNU GetText-like program for Ruby.
Ruby C extensions using Rake as glue."; 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 { rubyforge_2_0_3 = rubyDerivation {
name = "ruby-locale-2.0.4"; # full_name 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"; nameNoVersion = "locale";
propagatedBuildInputs = [ ]; propagatedBuildInputs = [ ];
src = fetchurl { src = fetchurl {
url = "http://gems.rubyforge.org/gems/locale-2.0.4.gem"; url = "http://gems.rubyforge.org/gems/locale-2.0.5.gem";
sha256 = "1fy0bsrxmskmsw3wrl2dis57rgs1jr1dmlp3xm9z8w1phaqh3c8v"; sha256 = "007yx9rx52as4ykkcm1aw29vgm6rk5xz8012814ynhlp1i0z1fi8";
}; };
meta = { meta = {
homepage = "http://locale.rubyforge.org/"; homepage = "http://locale.rubyforge.org/";
license = []; # one of ? license = []; # one of ?
description = "Ruby-Locale is the pure ruby library which provides basic APIs for localization[...]"; 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."; 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.";
}; };
}; };
mime_types_1_16 = rubyDerivation { mime_types_1_16 = rubyDerivation {
name = "ruby-mime-types-1.16"; # full_name name = "ruby-mime-types-1.16"; # full_name
nameNoVersion = "mime_types"; nameNoVersion = "mime_types";
propagatedBuildInputs = [ archive_tar_minitar_0_5_2 nokogiri_1_3_2 rcov_0_8_1_2_0 ]; propagatedBuildInputs = [ ];
src = fetchurl { src = fetchurl {
url = "http://gems.rubyforge.org/gems/mime-types-1.16.gem"; url = "http://gems.rubyforge.org/gems/mime-types-1.16.gem";
sha256 = "1slp7g2xv9ygcapqv13qgh3g6ipx5k5c3imb5sdyh0b9ip5s34y3"; 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 { highline_1_5_1 = rubyDerivation {
name = "ruby-highline-1.5.1"; # full_name name = "ruby-highline-1.5.1"; # full_name
nameNoVersion = "highline"; nameNoVersion = "highline";
@ -450,29 +502,61 @@ let libs =
}; };
}; };
gettext_2_0_4 = rubyDerivation { json_pure_1_2_0 = rubyDerivation {
name = "ruby-gettext-2.0.4"; # full_name name = "ruby-json_pure-1.2.0"; # full_name
nameNoVersion = "gettext"; nameNoVersion = "json_pure";
propagatedBuildInputs = [ locale_2_0_4 ]; propagatedBuildInputs = [ ];
src = fetchurl { src = fetchurl {
url = "http://gems.rubyforge.org/gems/gettext-2.0.4.gem"; url = "http://gems.rubyforge.org/gems/json_pure-1.2.0.gem";
sha256 = "1hdj91qg5858ss3wsdjbi4yxmwixqin5vv550fkvf4514yyc9gk0"; sha256 = "162lzzbadp62q1fjf5zyg45qly9pryjh7f6xhnf04zbjiq815pc5";
}; };
meta = { meta = {
homepage = "http://gettext.rubyforge.org/"; homepage = "http://json.rubyforge.org";
license = []; # one of ? license = []; # one of ?
description = "Ruby-GetText-Package is a GNU GetText-like program for Ruby[...]"; description = "This is a JSON implementation in pure 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."; longDescription = "This is a JSON implementation in pure Ruby.";
}; };
}; };
sup_0_8_1 = rubyDerivation { jeweler_1_4_0 = rubyDerivation {
name = "ruby-sup-0.8.1"; # full_name name = "ruby-jeweler-1.4.0"; # full_name
nameNoVersion = "sup"; nameNoVersion = "jeweler";
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 ]; propagatedBuildInputs = [ git_1_2_5 rubyforge_2_0_3 gemcutter_0_3_0 ];
src = fetchurl { src = fetchurl {
url = "http://gems.rubyforge.org/gems/sup-0.8.1.gem"; url = "http://gems.rubyforge.org/gems/jeweler-1.4.0.gem";
sha256 = "0q7s63s43mf35j0372g3qpfhsnsys4fbsb8xkshpwrjsd4lb90l2"; 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 = { meta = {
homepage = "http://sup.rubyforge.org/"; homepage = "http://sup.rubyforge.org/";
@ -482,19 +566,40 @@ let libs =
}; };
}; };
trollop_1_14 = rubyDerivation { trollop_1_15 = rubyDerivation {
name = "ruby-trollop-1.14"; # full_name name = "ruby-trollop-1.15"; # full_name
nameNoVersion = "trollop"; nameNoVersion = "trollop";
propagatedBuildInputs = [ ]; propagatedBuildInputs = [ ];
src = fetchurl { src = fetchurl {
url = "http://gems.rubyforge.org/gems/trollop-1.14.gem"; url = "http://gems.rubyforge.org/gems/trollop-1.15.gem";
sha256 = "15jsdlnq6fj3q3g47qswi73gx91rw1yvssi8zkwf6svkd55ri3f7"; sha256 = "0xxd96xpnxmm4195qwawpjqgnsbzw4s70jf0wz32ynmya7flgdhk";
}; };
meta = { meta = {
homepage = "http://trollop.rubyforge.org"; homepage = "http://trollop.rubyforge.org";
license = []; # one of ? 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 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 # aliases
rmail=rmail_1_0_0; rmail=rmail_1_0_0;
fastthread=fastthread_1_0_7; term_ansicolor=term_ansicolor_1_0_4;
highline=highline_1_5_1; fastthread=fastthread_1_0_7;
rake=rake_0_8_7; rb_inotify=rb_inotify_0_4_0;
rubygems_update=rubygems_update_1_3_4; highline=highline_1_5_1;
sup=sup_0_8_1; rubygems_update=rubygems_update_1_3_5;
mime_types=mime_types_1_16; rake=rake_0_8_7;
echoe=echoe_3_1_1; sup=sup_0_9_1;
rubyforge=rubyforge_1_0_3; mime_types=mime_types_1_16;
rake_compiler=rake_compiler_0_5_0; rubyforge=rubyforge_2_0_3;
ferret=ferret_0_11_6; gemcutter=gemcutter_0_3_0;
net_ssh=net_ssh_2_0_11; ferret=ferret_0_11_6;
rcov=rcov_0_8_1_2_0; json=json_1_2_0;
ncurses=ncurses_0_9_1; xrefresh_server=xrefresh_server_0_3_0;
trollop=trollop_1_14; ncurses=ncurses_0_9_1;
gettext=gettext_2_0_4; net_ssh=net_ssh_2_0_17;
archive_tar_minitar=archive_tar_minitar_0_5_2; trollop=trollop_1_15;
locale=locale_2_0_4; jeweler=jeweler_1_4_0;
hoe=hoe_2_3_2; gettext=gettext_2_1_0;
chronic=chronic_0_2_3; git=git_1_2_5;
racc=racc_1_4_6; json_pure=json_pure_1_2_0;
lockfile=lockfile_1_4_3; locale=locale_2_0_5;
nokogiri=nokogiri_1_3_2; chronic=chronic_0_2_3;
rexical=rexical_1_0_4; lockfile=lockfile_1_4_3;
ffi=ffi_0_5_4;
# ================ END automatically generated code ================ # ================ END automatically generated code ================
}; in libs }; in libs