From 94dd4b97211d413e80735c4f3e228187202c4564 Mon Sep 17 00:00:00 2001 From: Charles Strahan Date: Tue, 30 Dec 2014 21:05:00 -0500 Subject: [PATCH] ruby: WIP --- nixos/modules/services/misc/redmine.nix | 1 - .../networking/mailreaders/sup/.bundix/cache | 4 ++++ .../networking/mailreaders/sup/.bundle/config | 2 ++ .../networking/mailreaders/sup/Gemfile | 6 +++++ .../networking/mailreaders/sup/Gemfile.lock | 12 ++++++++++ .../networking/mailreaders/sup/gemset.nix | 19 +++++++++++++++ .../version-management/redmine/default.nix | 4 ++-- .../interpreters/ruby/bundler-head.nix | 18 +++++++++++++++ .../development/interpreters/ruby/bundler.nix | 12 +++++++--- .../libraries/xapian/bindings/1.0.x.nix | 1 - .../libraries/xapian/bindings/default.nix | 1 - pkgs/servers/consul/default.nix | 2 +- pkgs/tools/audio/mpdcron/default.nix | 4 ++-- .../package-management/gem-nix/default.nix | 23 ------------------- pkgs/top-level/all-packages.nix | 1 + 15 files changed, 76 insertions(+), 34 deletions(-) create mode 100644 pkgs/applications/networking/mailreaders/sup/.bundix/cache create mode 100644 pkgs/applications/networking/mailreaders/sup/.bundle/config create mode 100644 pkgs/applications/networking/mailreaders/sup/Gemfile create mode 100644 pkgs/applications/networking/mailreaders/sup/Gemfile.lock create mode 100644 pkgs/applications/networking/mailreaders/sup/gemset.nix create mode 100644 pkgs/development/interpreters/ruby/bundler-head.nix delete mode 100644 pkgs/tools/package-management/gem-nix/default.nix diff --git a/nixos/modules/services/misc/redmine.nix b/nixos/modules/services/misc/redmine.nix index 5d91468753b4..059cc18733bb 100644 --- a/nixos/modules/services/misc/redmine.nix +++ b/nixos/modules/services/misc/redmine.nix @@ -8,7 +8,6 @@ let cfg = config.services.redmine; ruby = pkgs.ruby; - rubyPackages = pkgs.rubyPackages; databaseYml = '' production: diff --git a/pkgs/applications/networking/mailreaders/sup/.bundix/cache b/pkgs/applications/networking/mailreaders/sup/.bundix/cache new file mode 100644 index 000000000000..5894e96022c8 --- /dev/null +++ b/pkgs/applications/networking/mailreaders/sup/.bundix/cache @@ -0,0 +1,4 @@ +--- +gem: + https://rubygems.org/downloads/mini_portile-0.6.0.gem: 09kcn4g63xrdirgwxgjikqg976rr723bkc9bxfr29pk22cj3wavn + https://rubygems.org/downloads/gpgme-2.0.7.gem: 1p84zhiri2ihcld7py9mwc2kg5xs5da8fk11zhndrhmw05yvf5mr diff --git a/pkgs/applications/networking/mailreaders/sup/.bundle/config b/pkgs/applications/networking/mailreaders/sup/.bundle/config new file mode 100644 index 000000000000..88cb2d529351 --- /dev/null +++ b/pkgs/applications/networking/mailreaders/sup/.bundle/config @@ -0,0 +1,2 @@ +--- +BUNDLE_NO_INSTALL: true diff --git a/pkgs/applications/networking/mailreaders/sup/Gemfile b/pkgs/applications/networking/mailreaders/sup/Gemfile new file mode 100644 index 000000000000..f7d13a163268 --- /dev/null +++ b/pkgs/applications/networking/mailreaders/sup/Gemfile @@ -0,0 +1,6 @@ +source "https://rubygems.org" + +#gem "sup", "0.20.0" +#gem 'sup', '~> 0.20.0' +#gem 'gpgme' +gem 'gpgme', '2.0.7' diff --git a/pkgs/applications/networking/mailreaders/sup/Gemfile.lock b/pkgs/applications/networking/mailreaders/sup/Gemfile.lock new file mode 100644 index 000000000000..2f56752d9a2f --- /dev/null +++ b/pkgs/applications/networking/mailreaders/sup/Gemfile.lock @@ -0,0 +1,12 @@ +GEM + remote: https://rubygems.org/ + specs: + gpgme (2.0.7) + mini_portile (>= 0.5.0, <= 0.6.0) + mini_portile (0.6.0) + +PLATFORMS + ruby + +DEPENDENCIES + gpgme (= 2.0.7) diff --git a/pkgs/applications/networking/mailreaders/sup/gemset.nix b/pkgs/applications/networking/mailreaders/sup/gemset.nix new file mode 100644 index 000000000000..de28a5dfeb39 --- /dev/null +++ b/pkgs/applications/networking/mailreaders/sup/gemset.nix @@ -0,0 +1,19 @@ +{ + gpgme = { + version = "2.0.7"; + src = { + type = "gem"; + sha256 = "1p84zhiri2ihcld7py9mwc2kg5xs5da8fk11zhndrhmw05yvf5mr"; + }; + dependencies = [ + "mini_portile" + ]; + }; + mini_portile = { + version = "0.6.0"; + src = { + type = "gem"; + sha256 = "09kcn4g63xrdirgwxgjikqg976rr723bkc9bxfr29pk22cj3wavn"; + }; + }; +} \ No newline at end of file diff --git a/pkgs/applications/version-management/redmine/default.nix b/pkgs/applications/version-management/redmine/default.nix index ea3a07db724a..544c4218e00f 100644 --- a/pkgs/applications/version-management/redmine/default.nix +++ b/pkgs/applications/version-management/redmine/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, ruby, rubyPackages, libiconv, libiconvOrNull, libiconvOrLibc, libxslt, libxml2, pkgconfig, libffi, glibc, imagemagickBig, postgresql }: +{ stdenv, fetchurl, ruby, rubyPackages, bundler, libiconv, libiconvOrNull, libiconvOrLibc, libxslt, libxml2, pkgconfig, libffi, glibc, imagemagickBig, postgresql }: let gemspec = map (gem: fetchurl { url=gem.url; sha256=gem.hash; }) (import ./Gemfile.nix); @@ -25,7 +25,7 @@ in stdenv.mkDerivation rec { ''; buildInputs = [ - ruby rubyPackages.bundler + ruby bundler ] ++ (if (libiconvOrNull != null) then [libiconv] else []) ++ [ libxslt libxml2 pkgconfig libffi imagemagickBig postgresql diff --git a/pkgs/development/interpreters/ruby/bundler-head.nix b/pkgs/development/interpreters/ruby/bundler-head.nix new file mode 100644 index 000000000000..62169759bf5d --- /dev/null +++ b/pkgs/development/interpreters/ruby/bundler-head.nix @@ -0,0 +1,18 @@ +{ buildRubyGem, coreutils, fetchgit }: + +buildRubyGem { + name = "bundler-HEAD"; + src = fetchgit { + url = "https://github.com/bundler/bundler.git"; + rev = "17919e790cd8f6fb369d6afc81f0afec6fb5ad8b"; + sha256 = "10gqashaax0i18gs95pijqsnpnwfj9v3va5rpxps0v597d16px9b"; + leaveDotGit = true; + }; + dontPatchShebangs = true; + postInstall = '' + find $out -type f -perm +0100 | while read f; do + substituteInPlace $f \ + --replace "/usr/bin/env" "${coreutils}/bin/env" + done + ''; +} diff --git a/pkgs/development/interpreters/ruby/bundler.nix b/pkgs/development/interpreters/ruby/bundler.nix index a66aa08c1f5d..cbec8d0ad75b 100644 --- a/pkgs/development/interpreters/ruby/bundler.nix +++ b/pkgs/development/interpreters/ruby/bundler.nix @@ -1,7 +1,13 @@ -{ buildRubyGem }: +{ buildRubyGem, coreutils }: buildRubyGem { - name = "bundler-1.7.4"; - sha256 = "122k07z60780mr00zfbbw04v9xlw1fhxjsx4g2rbm66hxlnlnh89"; + name = "bundler-1.7.9"; + sha256 = "1gd201rh17xykab9pbqp0dkxfm7b9jri02llyvmrc0c5bz2vhycm"; dontPatchShebangs = true; + postInstall = '' + find $out -type f -perm +0100 | while read f; do + substituteInPlace $f \ + --replace "/usr/bin/env" "${coreutils}/bin/env" + done + ''; } diff --git a/pkgs/development/libraries/xapian/bindings/1.0.x.nix b/pkgs/development/libraries/xapian/bindings/1.0.x.nix index 2d44542e8fd8..5d69f73d7973 100644 --- a/pkgs/development/libraries/xapian/bindings/1.0.x.nix +++ b/pkgs/development/libraries/xapian/bindings/1.0.x.nix @@ -42,7 +42,6 @@ composableDerivation.composableDerivation {} rec { name = "ruby"; enable = { buildInputs = [ ruby ]; - # export same env vars as in rubyPackages preConfigure = '' export RUBY_LIB=$out/${ruby.libPath} export RUBY_LIB_ARCH=$RUBY_LIB diff --git a/pkgs/development/libraries/xapian/bindings/default.nix b/pkgs/development/libraries/xapian/bindings/default.nix index 8c1a4069748a..740b71c59a7d 100644 --- a/pkgs/development/libraries/xapian/bindings/default.nix +++ b/pkgs/development/libraries/xapian/bindings/default.nix @@ -42,7 +42,6 @@ composableDerivation.composableDerivation {} rec { name = "ruby"; enable = { buildInputs = [ ruby ]; - # export same env vars as in rubyPackages preConfigure = '' export RUBY_LIB=$out/${ruby.libPath} export RUBY_LIB_ARCH=$RUBY_LIB diff --git a/pkgs/servers/consul/default.nix b/pkgs/servers/consul/default.nix index 94eff57e7c33..f056a8d496e6 100644 --- a/pkgs/servers/consul/default.nix +++ b/pkgs/servers/consul/default.nix @@ -1,5 +1,5 @@ { stdenv, lib, go, fetchgit, fetchhg, fetchbzr, fetchFromGitHub -, ruby, rubyPackages, nodejs, loadRubyEnv }: +, ruby, nodejs, loadRubyEnv }: let version = "0.4.1"; diff --git a/pkgs/tools/audio/mpdcron/default.nix b/pkgs/tools/audio/mpdcron/default.nix index f9f33d84437d..a6fe1151b77d 100644 --- a/pkgs/tools/audio/mpdcron/default.nix +++ b/pkgs/tools/audio/mpdcron/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchgit, autoconf, automake, libtool, pkgconfig, glib, libdaemon +{ stdenv, fetchgit, autoconf, automake, libtool, pkgconfig, glib, libdaemon, buildRubyGem , mpd_clientlib, curl, sqlite, ruby, rubyPackages, libnotify, haskellPackages }: stdenv.mkDerivation rec { @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { buildInputs = [ autoconf automake libtool pkgconfig glib libdaemon haskellPackages.pandoc - mpd_clientlib curl sqlite ruby rubyPackages.nokogiri libnotify ]; + mpd_clientlib curl sqlite ruby /*nokogiri*/ libnotify ]; preConfigure = '' ./autogen.sh diff --git a/pkgs/tools/package-management/gem-nix/default.nix b/pkgs/tools/package-management/gem-nix/default.nix deleted file mode 100644 index 37130b695918..000000000000 --- a/pkgs/tools/package-management/gem-nix/default.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ stdenv, rubygems, rubyPackages, ruby, makeWrapper }: - -stdenv.mkDerivation rec { - name = "gem-nix"; - - buildInputs = [ ruby rubygems rubyPackages.nix makeWrapper ]; - - phases = ["installPhase"]; - - installPhase = '' - mkdir -p $out/bin - echo 'exec ${rubygems}/bin/gem nix "$@"' >> $out/bin/gem-nix - chmod +x $out/bin/gem-nix - wrapProgram $out/bin/gem-nix \ - --set GEM_PATH $GEM_PATH - ''; - - meta = with stdenv.lib; { - description = "gem nix command in a nice wrapper"; - platforms = platforms.unix; - maintainers = [ maintainers.iElectric ]; - }; -} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 69e22d161f6b..9c966b0066ff 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4189,6 +4189,7 @@ let }; bundler = callPackage ../development/interpreters/ruby/bundler.nix { }; + bundler_HEAD = callPackage ../development/interpreters/ruby/bundler-head.nix { }; gemFixes = callPackage ../development/interpreters/ruby/fixes.nix { }; buildRubyGem = callPackage ../development/interpreters/ruby/gem.nix { }; loadRubyEnv = callPackage ../development/interpreters/ruby/load-ruby-env.nix { };