Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

rubyPackages: update #76595

Merged
merged 2 commits into from Feb 9, 2020
Merged

rubyPackages: update #76595

merged 2 commits into from Feb 9, 2020

Conversation

alyssais
Copy link
Member

Motivation for this change

Noticed rubyPackages_2_6.gtk2 didn’t build any more. New version seems to fix it.

Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Ensured that relevant documentation is up to date
  • Fits CONTRIBUTING.md.
Notify maintainers

cc @

@zimbatm
Copy link
Member

zimbatm commented Dec 28, 2019

nix-review built everything except:

rubyPackages.libv8 rubyPackages_2_4.libv8 rubyPackages_2_5.libv8

I don't thing this should be a blocker to merge.

@zimbatm
Copy link
Member

zimbatm commented Dec 28, 2019

$ nix-build -A rubyPackages.libv8
warning: unknown setting 'experimental-features'
these derivations will be built:
  /nix/store/sp1avshcxayp723xaqfcgahwhxqc59wb-ruby2.6.5-libv8-7.3.492.27.1.drv
building '/nix/store/sp1avshcxayp723xaqfcgahwhxqc59wb-ruby2.6.5-libv8-7.3.492.27.1.drv'...
unpacking sources
patching sources
configuring
no configure script, doing nothing
installing
buildFlags: --with-system-v8=true
WARNING:  You build with buildroot.
  Build root: /
  Bin dir: /nix/store/31nix2zsgnnrqn5sckfcyph4rb3nkvhy-ruby2.6.5-libv8-7.3.492.27.1/lib/ruby/gems/2.6.0/bin
  Gem home: /nix/store/31nix2zsgnnrqn5sckfcyph4rb3nkvhy-ruby2.6.5-libv8-7.3.492.27.1/lib/ruby/gems/2.6.0
Building native extensions with: '--with-system-v8=true'
This could take a while...
ERROR:  Error installing /nix/store/n6j9aksqr2bb6vsd2aiv3i9i2q3v1ady-libv8-7.3.492.27.1.gem:
        ERROR: Failed to build gem native extension.

    current directory: /nix/store/31nix2zsgnnrqn5sckfcyph4rb3nkvhy-ruby2.6.5-libv8-7.3.492.27.1/lib/ruby/gems/2.6.0/gems/libv8-7.3.492.27.1/ext/libv8
/nix/store/7l24siwk9yw0znjpcapq0rvpdghxmwsc-ruby-2.6.5/bin/ruby -I /nix/store/7l24siwk9yw0znjpcapq0rvpdghxmwsc-ruby-2.6.5/lib/ruby/2.6.0 -r ./siteconf20191228-8-101f4fp.rb extconf.rb --with-system-v8\=true
creating Makefile
/nix/store/31nix2zsgnnrqn5sckfcyph4rb3nkvhy-ruby2.6.5-libv8-7.3.492.27.1/lib/ruby/gems/2.6.0/gems/libv8-7.3.492.27.1/ext/libv8/builder.rb:83:in `block in setup_build_deps!': unable to fetch v8 source (RuntimeError)
        from /nix/store/31nix2zsgnnrqn5sckfcyph4rb3nkvhy-ruby2.6.5-libv8-7.3.492.27.1/lib/ruby/gems/2.6.0/gems/libv8-7.3.492.27.1/ext/libv8/builder.rb:81:in `chdir'
        from /nix/store/31nix2zsgnnrqn5sckfcyph4rb3nkvhy-ruby2.6.5-libv8-7.3.492.27.1/lib/ruby/gems/2.6.0/gems/libv8-7.3.492.27.1/ext/libv8/builder.rb:81:in `setup_build_deps!'
        from /nix/store/31nix2zsgnnrqn5sckfcyph4rb3nkvhy-ruby2.6.5-libv8-7.3.492.27.1/lib/ruby/gems/2.6.0/gems/libv8-7.3.492.27.1/ext/libv8/builder.rb:40:in `build_libv8!'
        from /nix/store/31nix2zsgnnrqn5sckfcyph4rb3nkvhy-ruby2.6.5-libv8-7.3.492.27.1/lib/ruby/gems/2.6.0/gems/libv8-7.3.492.27.1/ext/libv8/location.rb:24:in `install!'
        from extconf.rb:7:in `<main>'

extconf failed, exit code 1

Gem files will remain installed in /nix/store/31nix2zsgnnrqn5sckfcyph4rb3nkvhy-ruby2.6.5-libv8-7.3.492.27.1/lib/ruby/gems/2.6.0/gems/libv8-7.3.492.27.1 for inspection.
Results logged to /nix/store/31nix2zsgnnrqn5sckfcyph4rb3nkvhy-ruby2.6.5-libv8-7.3.492.27.1/lib/ruby/gems/2.6.0/extensions/x86_64-linux/2.6.0/libv8-7.3.492.27.1/gem_make.out
builder for '/nix/store/sp1avshcxayp723xaqfcgahwhxqc59wb-ruby2.6.5-libv8-7.3.492.27.1.drv' failed with exit code 1
error: build of '/nix/store/sp1avshcxayp723xaqfcgahwhxqc59wb-ruby2.6.5-libv8-7.3.492.27.1.drv' failed

unable to fetch v8 source (RuntimeError)

looks like they are ignoring the --with-system-v8=true option now: rubyjs/libv8@c714ddf#diff-e4644139217623558c4f0b5fd4e07805

since version v6.7.288.46.0

@alyssais
Copy link
Member Author

alyssais commented Dec 28, 2019 via email

@zimbatm
Copy link
Member

zimbatm commented Dec 28, 2019

I read that they are shipping the gem with libv8 pre-compiled for most platforms. Potentially we just have to patchelf the binary but I haven't checked if it's true.

@zimbatm
Copy link
Member

zimbatm commented Dec 28, 2019

image
So now we need bundix to hash all of them right?

@alyssais
Copy link
Member Author

alyssais commented Dec 29, 2019 via email

@zimbatm
Copy link
Member

zimbatm commented Dec 30, 2019

For that we need some infrastructure from rubygems.

  1. Extend the gem spec schema to contain a set of name/URL/sha256 tuples that will be downloaded as part of the installation.
  2. Extend rubygems to handle the download and put them in a pre-determined location.
  3. Make a big PR campaign to convert existing gems to use that mechanism instead of doing custom downloads.
  4. (bonus) Extend the bundle.lock format to also contain that information.

With that in place we will be able to take over the download part with nix.

@FRidh FRidh added this to Needs review in Staging Dec 31, 2019
@FRidh
Copy link
Member

FRidh commented Feb 5, 2020

What's the status of this PR?

@zimbatm
Copy link
Member

zimbatm commented Feb 5, 2020

I would be inclined to merge this. Perfect is the enemy of good.

@FRidh FRidh changed the base branch from master to staging February 9, 2020 08:18
@FRidh FRidh merged commit 1f95695 into NixOS:staging Feb 9, 2020
Staging automation moved this from Needs review to Done Feb 9, 2020
@ahiaao ahiaao mentioned this pull request Feb 18, 2020
10 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Staging
  
Done
Development

Successfully merging this pull request may close these issues.

None yet

3 participants