[Nix-dev] Announcing New Ruby Support

Wout Mertens wout.mertens at gmail.com
Wed Feb 11 00:50:24 CET 2015


rb_enc_raise seems to be a ruby 2.0 thing and you're using 1.9.3. Some
mixup somewhere?
https://bugs.ruby-lang.org/issues/5650 was when it was added to 2.0 3 years
ago...


On Tue Feb 10 2015 at 11:05:56 PM Cillian de Róiste <
cillian.deroiste at gmail.com> wrote:

> 2015-02-10 19:25 GMT+01:00 Cillian de Róiste <cillian.deroiste at gmail.com>:
> >
> > Hi!
> >
> > I thought I'd try to package jekyll, but I've run into some trouble...
> >
> > 2015-01-22 5:29 GMT+01:00 Charles Strahan <charles.c.strahan at gmail.com>:
> >>
> >> To use the new system, first create (or copy over) a Gemfile describing
> the
> >> required gems.
> >
> >
> > I grabbed the Gemfile from the github repo:
> > $ wget https://raw.githubusercontent.com/jekyll/jekyll/master/Gemfile
> >
> >
> >> Next, create a Gemfile.lock by running `bundler package --no-install`
> in the
> >> containing directory (this also creates two folders - vendor and
> .bundle -
> >> which you'll want to delete before committing).
> >
> >
> > I had first installed pkgs.bundler, which got me version 1.7.9, which
> doesn't have the --no-install option which seems to have been added in 1.8.
> I then installed pkgs.bundler_HEAD which also reports the version to be
> 1.7.9 but does have the --no-install option. However, I got stuck on the
> next step:
> >
> > $ bundler package --no-install
> > There are no gemspecs at /home/goibhniu/ruby/jekyll.
>
> The second line has the word "gemspec", I commented it out and was
> able to get further
>
> I ran `bundler package --no-install --path vendor/bundle` which
> successfully created lockfile.
>
> >> Now, you'll need to dump the lockfile as a Nix expression. To do so,
> use Bundix
> >> in the target directory:
> >>
> >>   $(nix-build '<nixpkgs>' -A bundix)/bin/bundix
>
> To avoid rebuilding the world I checked out 317d78d and tried to
> install bundix from there. I had to patch the hash for bundix and
> bundler [1], but then I was able to install bundix and create the
> gemset.nix \o/
>
> >>
> >> That will drop a gemset.nix file in your current directory, which
> describes the
> >> sources for all of the gems and their respective SHAs.
> >>
> >> Finally, you'll need to use bundlerEnv to build the gems. The following
> example
> >> is how we package the sup mail reader:
>
>
> I copied the example nix expression, changed the name and added it to
> all-packages.nix to build it. All went quite well until I got the
> following error:
>
>     ...
>     Installing liquid 3.0.1
>
>     Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
>
>         /nix/store/wdjnbdyrvsfbg245qyp3r7qwhlhxzd
> 1c-ruby-1.9.3-p547/bin/ruby
> -r ./siteconf20150210-115-km0s7e.rb extconf.rb
>     creating Makefile
>
>     make  clean
>     building clean-static
>     building clean
>
>     make
>     building lexer.o
>     compiling lexer.c
>     lexer.c: In function 'lex_one':
>     lexer.c:143:5: error: implicit declaration of function
> 'rb_enc_raise' [-Werror=implicit-function-declaration]
>          rb_enc_raise(utf8_encoding, cLiquidSyntaxError, "Unexpected
> character %c", c);
>
> IIUC it fails to find some ruby header file. Any tips on how to proceed?
>
> Cheers,
> Cillian
>
>
> Patches [1]:
>
> diff --git a/pkgs/development/interpreters/ruby/bundix/gemset.nix
> b/pkgs/development/interpreters/ruby/bundix/gemset.nix
> index a2c633f..a3e732c 100644
> --- a/pkgs/development/interpreters/ruby/bundix/gemset.nix
> +++ b/pkgs/development/interpreters/ruby/bundix/gemset.nix
> @@ -6,7 +6,7 @@
>        url = "https://github.com/cstrahan/bundix.git";
>        rev = "5df25b11b5b86e636754d54c2a8859c7c6ec78c7";
>        fetchSubmodules = false;
> -      sha256 = "0334jsavpzkikcs7wrx7a3r0ilvr5vsnqd34lhc58b8cgvgll47p";
> +      sha256 = "1iqx12y777v8gszggj25x0xcf6lzllx58lmv53x6zy3jmvfh4siv";
>      };
>      dependencies = [
>        "thor"
> diff --git a/pkgs/development/interpreters/ruby/bundler-head.nix
> b/pkgs/development/interpreters/ruby/bundler-head.nix
> index 2e8cfc8..43a5961 100644
> --- a/pkgs/development/interpreters/ruby/bundler-head.nix
> +++ b/pkgs/development/interpreters/ruby/bundler-head.nix
> @@ -5,7 +5,7 @@ buildRubyGem {
>    src = fetchgit {
>      url = "https://github.com/bundler/bundler.git";
>      rev = "a2343c9eabf5403d8ffcbca4dea33d18a60fc157";
> -    sha256 = "1l4r55n1wzr817l225l6pm97li1mxg9icd8s51cpfihh91nkdz68";
> +    sha256 = "1fywz0m3bb0fmcikhqbw9iaw67k29srwi8dllq6ni1cbm1xfyj46";
>      leaveDotGit = true;
>    };
>    dontPatchShebangs = true;
>
>
> --
> NixOS: The Purely Functional Linux Distribution
> http://nixos.org
> _______________________________________________
> nix-dev mailing list
> nix-dev at lists.science.uu.nl
> http://lists.science.uu.nl/mailman/listinfo/nix-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.science.uu.nl/pipermail/nix-dev/attachments/20150210/607ba1fd/attachment-0001.html 


More information about the nix-dev mailing list