Commit Graph

306 Commits

Author SHA1 Message Date
Farid Zakaria
4af8bc084a
buildRubyGem: fix to support bundler cmds (#104977)
The way in which Nixpks builds Ruby gems means that certain operations
by bundler *will not work*, namely `bundle install --redownload`.

According to the source the _cache/_ directory should have been kept,
however it seems through revisions to the file it has been purged.

Here was the comment from the original commit that introduced
buildRubyGem:
```
  # Note:
  #   We really do need to keep the $out/${ruby.gemPath}/cache.
  #   This is very important in order for many parts of RubyGems/Bundler to not blow up.
  #   See https://github.com/bundler/bundler/issues/3327
```

Why is the _cache_ directory needed?

Bundler and RubyGems uses the cache as a source of truth.
When bundler executes `bundler install --redownload`, any gems it
discovers in the _GEM_PATH_ it assums must have their _.gem_ file
present in the cache (unaware it was installed from Nix).

Rather than downloading the gem from RubyGems the bundler code forcibly
re-installs the gem from the cache directory instead and **fails** if it
does not exist.

I've opened https://github.com/rubygems/rubygems/issues/4088 to see if
this failure should be soft and not so explicit; or fallback to fetching
the gem from scratch.

Without this change the following is the error:
```bash
> [nix-shell:~/code/nix/playground/jruby-bundler-rake]$ bundle install --force
[DEPRECATED] The `--force` option has been renamed to `--redownload`
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.jruby.ext.openssl.SecurityHelper (file:/nix/store/fis6nzrpw9pmcivr84qh5byfgm07qn10-jruby-9.2.13.0/lib/ruby/stdlib/jopenssl.jar) to field java.security.MessageDigest.provider
WARNING: Please consider reporting this to the maintainers of org.jruby.ext.openssl.SecurityHelper
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Fetching gem metadata from https://rubygems.org/.
Using bundler 2.1.4
Installing hello-world 1.2.0
Bundler::GemNotFound: Could not find hello-world-1.2.0.gem for installation
An error occurred while installing hello-world (1.2.0), and Bundler
cannot continue.
Make sure that `gem install hello-world -v '1.2.0' --source
'https://rubygems.org/'` succeeds before bundling.
```

Wth the fix the following no woccurs:
```bash
[nix-shell:~/code/nix/playground/jruby-bundler-rake]$ bundle install --redownload
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.jruby.ext.openssl.SecurityHelper (file:/nix/store/69wjlj4yirp48rv1q03zxgd4xvf0150d-jruby-9.2.13.0/lib/ruby/stdlib/jopenssl.jar) to field java.security.MessageDigest.provider
WARNING: Please consider reporting this to the maintainers of org.jruby.ext.openssl.SecurityHelper
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Fetching gem metadata from https://rubygems.org/.
Using bundler 2.1.4
Installing hello-world 1.2.0
Bundle complete! 1 Gemfile dependency, 2 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.
```

```
[nix-shell:~/code/nix/playground/jruby-bundler-rake]$ ls -l /nix/store/cwl9n5073hqgpfhnw4wic13nrrgg9dn8-gem-env/lib/jruby/gems/2.5.0/cache/
total 8
lrwxrwxrwx 1 fmzakari primarygroup 102 Dec 31  1969 bundler-2.1.4.gem -> /nix/store/ifc8a0gsfkrhkv953rd4rz8bcspahi8y-bundler-2.1.4/lib/jruby/gems/2.5.0/cache/bundler-2.1.4.gem
lrwxrwxrwx 1 fmzakari primarygroup 110 Dec 31  1969 hello-world-1.2.0.gem -> /nix/store/xi9ln6n1mz2is5ppykjxqhhkpjq9zm6i-hello-world-1.2.0/lib/jruby/gems/2.5.0/cache/hello-world-1.2.0.gem
```

I have a minimal project that demonstrates this issue at https://github.com/fzakaria/jruby-bundler-nix-failure
2020-11-30 12:15:12 +01:00
Graham Christensen
bc49a0815a
utillinux: rename to util-linux 2020-11-24 12:42:06 -05:00
Milan Pässler
2429d5a307 gitlab: 13.5.1 -> 13.6.0
Changed ruby version to 2.7.x to match upstream.
Added a gem config for gitlab-pg_query as it tries to download a source
tarball during the build process.
Also removed a patch for gitaly that has become obsolete by upstream fix
[here](de04077c25).
2020-11-21 01:38:35 +01:00
zimbatm
c3357d2cd9
buildRubyGem: remove Makefiles
The generated Makefile is not reproducible. The HDRS section is inode
dependent. "sitearchdir" and "sitelibdir" contains a timestamp and
random postfix. See https://r13y.com/diff/8350ec80865096f84705f3e000d97f151760e768bf626e52c84570413c5e1093-f9dea788fe62d683e90e12e166f29b778c39c699a5be39f9262e5cffb77d3e45.html

Instead of trying to make it reproducible, remove it entirely. It was
only useful for generating the .so file and it no longer needed.

See also https://bugs.ruby-lang.org/issues/15304

Fixes the rubyPackages.nokogiry reproducibility for example.
2020-10-27 14:20:09 +01:00
Mario Rodas
08236e4148 solargraph: 0.39.8 -> 0.39.17 2020-10-09 04:20:00 +00:00
Lassulus
b4ad4325ac
Merge pull request #90258 from Shopify/epk/bump-solargraph
solargraph: 0.38.6 -> 0.39.8
2020-08-22 10:08:36 +02:00
Joe Hermaszewski
f6e07b3c5d defaultGemConfig.mathematical: fix cross compilation 2020-07-10 07:48:12 +02:00
Aditya Sharma
19c5353b73
solargraph: 0.38.6 -> 0.39.8 2020-06-13 16:51:26 -04:00
Michael Reilly
84cf00f980
treewide: Per RFC45, remove all unquoted URLs 2020-04-10 17:54:53 +01:00
Michael Fellinger
b285fa07d5
set GEM_HOME via Gem.paths 2020-04-06 15:31:18 +02:00
Michael Fellinger
f92600b406
update versions in Gemfile.lock 2020-04-06 15:02:13 +02:00
Michael Fellinger
a2e73b062a
bundler: 1.17.3 -> 2.1.4 2020-04-03 23:52:14 +02:00
Douglas Soares de Andrade
dc4a0da5ff solargraph: 0.38.0 -> 0.38.6 2020-03-27 13:12:16 -07:00
zimbatm
89a09456c7
Revert "defaultGemConfig: remove asciidoctor-diagram JARs" (#81737)
This reverts commit 1ac11cc1c1.

asciidoctor-diagram starts Java processes, so the JARs are necessary
on all platforms.

See https://github.com/NixOS/nixpkgs/pull/77149#issuecomment-594576339.
2020-03-04 18:04:36 +00:00
Jan Tojnar
9d0fac46fd
Merge pull request #81664 from jtojnar/vips-cleanup
vips: general clean-ups
2020-03-04 08:26:18 +01:00
Jan Tojnar
3aa9d99a0a
vips: split into multiple outputs 2020-03-04 01:32:41 +01:00
talyz
affcf9ba1e bundlerEnv: Add option to copy gem files instead of symlinking
The way ruby loads gems and keeps track of their paths seems to not
always work very well when the gems are accessed through
symlinks. Ruby will then complain that the same files are loaded
multiple times; it relies on the file's full path to determine whether
the file is loaded or not.

This adds an option to simply copy all gem files into the environment
instead, which gets rid of this issue, but may instead result in major
file duplication.
2020-03-03 21:19:01 +01:00
Michael Fellinger
84fa1d2fb3
rubyWithPackages.libv8: fix compilation 2020-02-18 22:29:38 +01:00
zimbatm
bcdc90a3a7 ruby_2_4: remove
According to https://endoflife.software/programming-languages/server-side-scripting/ruby
ruby 2.4 will go end-of-life in march, where the new release of nixpkgs
will be cut. We won't be able to support it for security updates.

Remove all references to ruby_2_4 and add ruby_2_7 instead where
missing.

Mark packages that depend on ruby 2.4 as broken:
* chefdk
* sonic-pi
2020-02-10 13:23:35 -05:00
Alyssa Ross
1ac11cc1c1
defaultGemConfig: remove asciidoctor-diagram JARs
(Except on JRuby, where these are presumably important.)
2020-01-09 15:55:02 +00:00
Alyssa Ross
fbe4716bd5
defaultGemConfig: reduce mathematical closure size
ext/ isn't needed once the extensions have been built, contains
references to a bunch of huge dependencies, and contains megabytes of
tests.
2020-01-09 15:55:00 +00:00
Alyssa Ross
ec8293fbfe
buildRubyGem: remove more bloat files 2020-01-09 15:54:57 +00:00
Alyssa Ross
11970ee1d6
buildRubyGem: strip by default
I'm not sure why this was disabled, but it looks like a pretty
harmless way to bring down closure size and remove references to
compilers and stuff.
2020-01-09 15:54:56 +00:00
Frederik Rietdijk
f08e3e38d4 Merge master into staging-next 2020-01-02 21:41:13 +01:00
zimbatm
a9341dbb33
ruby_2_7.withPackages: test 2020-01-01 00:25:35 +00:00
Frederik Rietdijk
6d059becd3 Merge gcc-9 into staging (#68029) 2019-12-30 16:38:38 +01:00
Merijn Broeren
133103d709
treewide: replace make/build/configure/patchFlags with nix lists 2019-12-30 12:58:11 +01:00
Alyssa Ross
106d0920d9
bundlerEnv: fix for Ruby 2.7
Setting a Bundler version with GEM_PATH doesn't seem to work in Ruby
2.7, so we need to use the LOAD_PATH instead.  Without this,
bundlerEnv environments will always use the version of Bundler that
comes with Ruby, which won't necessarily work because it isn't the
version that was used to generate the bundle.

For example, building ronn with Ruby 2.7 without this change results
in a broken executable, but it works (when built with all packaged
Ruby versions) after this change.
2019-12-26 15:49:04 +00:00
Franz Pletz
77b6c3cd06
Merge remote-tracking branch 'origin/master' into gcc-9 2019-12-26 14:17:36 +01:00
Burke Libbey
62e680cdcf ruby-modules: parse build_flags correctly:
In building a gem whose native extension is a Rakefile, the previous
version of this code will call essentially `rake ""`, when it means to
call `rake`.

This change converts `""` into `[]` rather than `[""]`.
2019-12-17 00:58:32 +00:00
buckley310
c4aaab4053 defaultGemConfig: change 'infocmp' reference from 'ncurses.dev' to 'ncurses' (#75309) 2019-12-10 00:07:19 +00:00
Frederik Rietdijk
d14baf7747 Merge master into staging-next 2019-11-30 08:57:28 +01:00
Americo
114a83c2ef solargraph: 0.37.2 -> 0.38.0 (#74362) 2019-11-28 15:03:27 +00:00
adisbladis
dcfc821c6c
treewide: Stop using Qt 5.9 2019-11-18 20:10:43 +00:00
Frederik Rietdijk
c4e30cf98c Merge staging-next into staging 2019-11-05 14:18:08 +01:00
Franz Pletz
abec42e8eb
rubyPackages.grpc: fix build with gcc9 2019-11-05 09:26:09 +01:00
John Ericson
acd2d19484
Merge pull request #72347 from NixOS/bash-no-undef-vars
treewide: `set -u` everywhere
2019-11-04 19:52:33 -05:00
Alyssa Ross
547b5b7a73 ruby.withPackages: preserve setup hooks (#72743)
This fixes

    nix-shell -p 'ruby.withPackages (const [])' ruby.devdoc

which otherwise wouldn't find documentation, unlike

    nix-shell -p ruby ruby.devdoc

which would, because ruby has setup hooks to accomodate for this, that
were being masked by the withPackages wrapper.
2019-11-03 22:09:44 +00:00
John Ericson
2811b032d6 treewide: Make still dont* Variables are optional in most cases
Go beyond the obvious setup hooks now, with a bit of sed, with a skipped case:

 - cc-wrapper's `dontlink`, because it already is handled.

Also, in nix files escaping was manually added.

EMP
2019-11-01 14:44:44 -04:00
WilliButz
01e0ef28df
rubyPackages: remove global v8 pinning
Removes global pinning of v8 to 3.16.14 and also removes the
unreferenced package 'therubyracer'.
2019-11-01 13:53:35 +01:00
Americo
58311d9fc9
solargraph: 0.35.2 -> 0.37.2 2019-10-27 17:16:29 -07:00
talyz
96a1dbac97
bundler: 1.17.2 -> 1.17.3
Extracted from https://github.com/NixOS/nixpkgs/pull/70216.
2019-10-02 12:35:10 +00:00
Vladimír Čunát
22a216849b
Re-Revert "Merge branch 'staging-next'"
This reverts commit f8a8fc6c7c.
2019-09-22 09:38:09 +02:00
Vladimír Čunát
f8a8fc6c7c
Revert "Merge branch 'staging-next'"
This reverts commit 41af38f372, reversing
changes made to f0fec244ca.

Let's delay this.  We have some serious regressions.
2019-09-21 20:05:09 +02:00
Vladimír Čunát
b6c6e1f9e8
Merge branch 'master' into staging-next 2019-09-15 13:18:54 +02:00
Lily Ballard
a5d5133e9c jazzy: 0.10.0 -> 0.11.0 (#68766)
* gem-config: fix sassc on darwin

By default the sassc gem compiles with LTO, but LTO is currently broken
on darwin.

* jazzy: 0.10.0 -> 0.11.0
2019-09-14 10:17:05 +00:00
Michael Fellinger
13866ed4cf gem-config: fix zookeeper for gcc-8 (#68642) 2019-09-13 14:01:13 +00:00
zimbatm
cef857e8b7 bundlerApp: avoid unecessary rebuilds when gemdir changes
Because the gemdir was referenced on the derivation, it would cause the
whole gemdir to get added to the store, which would in turn force the
derivation to be rebuilt whenever unrelated folder files would change.
2019-09-13 11:40:40 +00:00
Jan Tojnar
a441eaa7b1
Merge branch 'staging-next' into staging 2019-09-12 22:49:43 +02:00
Jan Tojnar
8ab501545d
sup: remove (#68416)
sup: remove
2019-09-10 19:43:18 +02:00