Commit graph

538 commits

Author SHA1 Message Date
Juan Ibiapina 62e5acd0a7
ruby: Expose generic builder (#173390)
To avoid duplicating the ruby compilation code, this change exposes two
functions `mkRubyVersion` and `mkRuby`, which can be used in an overlay
to build any past or current ruby version.

An example overlay:
```nix
self: super:

{
  ruby_2_7_6 = super.mkRuby {
    version = super.mkRubyVersion "2" "7" "6" "";
    sha256 = "042xrdk7hsv4072bayz3f8ffqh61i8zlhvck10nfshllq063n877";
  };

  ruby_3_1_2 = super.mkRuby {
    version = super.mkRubyVersion "3" "1" "2" "";
    sha256 = "0gm84ipk6mrfw94852w5h7xxk2lqrxjbnlwb88svf0lz70933131";
  };
}
```
2022-07-04 11:57:06 +02:00
Jörg Thalheim 49145d30e0
Revert "Revert "ruby: enable O3 optimization""
This reverts commit fe8f468f0e.

Now we are targeting the right branch.
2022-06-18 07:21:38 +02:00
Jörg Thalheim fe8f468f0e
Revert "ruby: enable O3 optimization"
This reverts commit 64e09fac3d.

This commit should go to staging first.
2022-06-18 07:19:45 +02:00
Jörg Thalheim f93c47b2e3
ruby: enable O3 optimization 2022-06-18 07:19:42 +02:00
Andrew Childs e6299e5368 ruby: move jemalloc to propagatedBuildInputs
Alternative malloc implementations in ruby are not fully encapsulated.
Their header files are required when building gems with native
extensions, like bcrypt.
2022-06-06 13:13:32 +09:00
JR Boyens 5bd5ab2410 ruby_3_1: 3.1.1 -> 3.1.2
https://www.ruby-lang.org/en/news/2022/04/12/ruby-3-1-2-released/

Fixes: CVE-2022-28738, CVE-2022-28739
2022-04-15 02:22:24 +02:00
JR Boyens 3e995fbb31 ruby_3_0: 3.0.3 -> 3.0.4
https://www.ruby-lang.org/en/news/2022/04/12/ruby-3-0-4-released/

Fixes: CVE-2022-28738, CVE-2022-28739
2022-04-15 02:21:54 +02:00
JR Boyens dd5210d85a ruby_2_7: 2.7.5 -> 2.7.6
https://www.ruby-lang.org/en/news/2022/04/12/ruby-2-7-6-released/

Fixes: CVE-2022-28739
2022-04-15 02:21:06 +02:00
Andrew Childs 6e859afe34 ruby: always build from the tarball, drop support for git builds 2022-03-15 21:57:36 +09:00
Andrew Childs 9634895022 ruby: fix build with bundled gems 2022-03-15 21:57:36 +09:00
Andrew Childs fa6f87a8ae ruby: fix default value of RUBY_REVISION when building from git
The revision.h header is normally pregenerated and included in the
tarball. When building from a git export the value defaults to "HEAD".
2022-03-15 21:57:36 +09:00
Andrew Childs aeb3ae5008 ruby: separate rails express patches and source location
These are unnecessarily composed. Disabling useRailsExpress changes to
using a tarball instead of fetching directly from git, which will have
unexpected effects. In come cases (Ruby 2.7) it will cause the build
to fail due to en error rubygems/installer.rb. It also changes the set
of gems that are available, since the bundled gems[1] are only
included in the tarball.

[1]: https://stdgems.org/
2022-03-15 21:57:35 +09:00
Alyssa Ross d7e181ff83
Merge remote-tracking branch 'nixpkgs/staging-next' into staging
Conflicts:
	pkgs/development/compilers/ocaml/4.12.nix
	pkgs/development/python-modules/oci/default.nix
	pkgs/tools/admin/bubblewrap/default.nix
2022-03-14 12:33:16 +00:00
Teo Ljungberg 4ad8b43ce2 ruby: 3.1.0 -> 3.1.1 2022-03-12 19:46:30 +01:00
Felix Buehler ae747bc007 rubygems: rename name to pname 2022-02-28 23:39:42 +01:00
arcnmx 7ad577f72a ruby: remove config indiscriminately
stripping config data was introduced in #138368, but was unintentionally
added to the wrong `optionalString` condition. This isn't a problem in
practice (as the relevant condition flag is enabled by default), but was
unintended and therefore fixed here.
2022-01-23 10:56:31 -08:00
Mario Rodas a2d81a8977 ruby_3_1: init at 3.1.0
https://www.ruby-lang.org/en/news/2021/12/25/ruby-3-1-0-released/
2021-12-25 04:20:00 +00:00
arcnmx 4ac0f8e045 ruby: more consistent baseRuby reference removal 2021-12-23 07:32:59 -08:00
arcnmx 09e3924934 ruby: configure via {enable,with}Feature 2021-12-23 07:32:59 -08:00
arcnmx 4e955d2101 ruby: remove references to baseRuby 2021-12-23 07:32:59 -08:00
Charlotte Van Petegem 26038de225
ruby: 2.7.4 -> 2.7.5, 3.0.2 -> 3.0.3 2021-11-25 10:11:28 +01:00
Sergei Trofimovich c6b949c09c ruby_2_6, rubyPackages_2_6: drop unused package 2021-10-22 08:46:57 +01:00
Tim Steinbach e9f8f75afc
rubygems: 3.2.24 -> 3.2.26 2021-08-30 07:58:39 -04:00
Mario Rodas 3320ca4bcb ruby: rubygems 3.2.16 -> 3.2.24 2021-07-16 04:20:00 +00:00
Mario Rodas afd61a6069 ruby_3_0: 3.0.1 -> 3.0.2
https://www.ruby-lang.org/en/news/2021/07/07/ruby-3-0-2-released/
2021-07-07 04:20:00 +00:00
Mario Rodas 5f9f17cc11 ruby_2_7: 2.7.3 -> 2.7.4
https://www.ruby-lang.org/en/news/2021/07/07/ruby-2-7-4-released/
2021-07-07 04:20:00 +00:00
Mario Rodas 2d420c1559 ruby_2_6: 2.6.7 -> 2.6.8
https://www.ruby-lang.org/en/news/2021/07/07/ruby-2-6-8-released/
2021-07-07 04:20:00 +00:00
Mario Rodas 6d4b46a56d ruby: update RVM patchsets 2021-07-07 04:20:00 +00:00
Arthur Gautier 7b48454121 rubygems: ensure temporary directories are cleaned up
see #123718

Signed-off-by: Arthur Gautier <baloo@superbaloo.net>
2021-05-20 20:51:41 +00:00
Mario Rodas 92bff24dc1
Merge pull request #119506 from marsam/ruby-disable-jit
ruby: build without jit by default
2021-05-01 21:56:15 -05:00
Andrew Childs f16053c34d rubygems: 3.1.3 -> 3.2.16 2021-04-21 13:23:53 +09:00
Jan Tojnar 625ce6c7f6 Merge branch 'staging-next' into staging
In python-packages.nix, resolve conflict between 50d604314e and 187d0371ab.
2021-04-08 17:14:31 +02:00
Mario Rodas 83612c3f98 ruby_2_7: 2.7.2 -> 2.7.3
https://www.ruby-lang.org/en/news/2021/04/05/ruby-2-7-3-released/
2021-04-07 04:20:00 +00:00
Mario Rodas 3d7c1202df ruby_2_6: 2.6.6 -> 2.6.7
https://www.ruby-lang.org/en/news/2021/04/05/ruby-2-6-7-released/
2021-04-07 04:20:00 +00:00
Lisa Ugray 7ed8d11dc4 ruby_3_0: 3.0.0 -> 3.0.1 2021-04-06 15:34:39 -04:00
Mario Rodas 6852f66506 ruby: disable jit by default
Building Ruby with jit by default includes clang in its closure, hence
causing a large closure size.

Ruby jit support is optional, and is only enabled at runtime through the
`--jit` flag, hence it should not cause any regression.
2021-04-01 04:20:00 +00:00
Alyssa Ross 53f49682ee
ruby: remove myself as maintainer/CODEOWNER
It's been at least a year since I kept up to date with Ruby, and I
don't think I really have anything left to offer Nixpkgs in terms of
Ruby expertise.
2021-03-31 09:27:35 +00:00
github-actions[bot] b0a6c2b8a5
Merge master into staging-next 2021-03-13 00:38:26 +00:00
Samuel Dionne-Riel 6638690261 ruby: Use hostPlatform
Using `stdenv.targetPlatform` gives the wrong platform in buildPackages.

E.g.:

```
 $ nix-diff --color never $(env -i nix-instantiate -A pkgs.ruby -A pkgs.pkgsCross.aarch64-multiplatform.buildPackages.ruby)
- /nix/store/w8wk99p4gadns35n2l0fr7wx56jlwnnx-ruby-2.6.6.drv:{out}
+ /nix/store/5ywj7nicjai6ji4g33yh6nvz1b5fq7xw-ruby-2.6.6.drv:{out}
• The input named `ruby-2.6.6` differs
  - /nix/store/4a6nag89dcxwdf32820z6dfwwpfgab8s-ruby-2.6.6.drv:{out}
  + /nix/store/40pakkdfv578zffx3y11qd5ckcp2xpzm-ruby-2.6.6.drv:{out}
  • The environments do not match:
      postInstall=''
          # Remove unnecessary groff reference from runtime closure, since it's big
          sed -i '/NROFF/d' $out/lib/ruby/*/*/rbconfig.rb

          # Bundler tries to create this directory
          mkdir -p $out/nix-support
          cat > $out/nix-support/setup-hook <<EOF
          addGemPath() {
            addToSearchPath GEM_PATH \$1/lib/ruby/gems/2.6.0
          }
          addRubyLibPath() {
            addToSearchPath RUBYLIB \$1/lib/ruby/site_ruby
            addToSearchPath RUBYLIB \$1/lib/ruby/site_ruby/2.6.0
            addToSearchPath RUBYLIB \$1/lib/ruby/site_ruby/2.6.0/←x86_←→aarch→64-linux
          }

          addEnvHooks "$hostOffset" addGemPath
          addEnvHooks "$hostOffset" addRubyLibPath
          EOF

          rbConfig=$(find $out/lib/ruby -name rbconfig.rb)
      ''
• Skipping environment comparison
```

`pkgs.pkgsCros.*.buildPackage.ruby` should be equivalent to `pkgs.ruby`.
It wasn't.
2021-03-06 22:30:55 -05:00
Mario Rodas 9db5a83465 ruby_2_5: remove patchset
ruby_2_5 was removed from nixpkgs in 1c33c0ad6b
2021-02-22 04:20:00 +00:00
Sandro 68ab562d23
Merge pull request #112941 from SuperSandro2000/ruby-jemalloc
ruby: add option to enable jemalloc
2021-02-17 11:21:58 +01:00
Sandro Jäckel 1c33c0ad6b
ruby: add option to enable jemalloc 2021-02-12 21:34:14 +01:00
Nick Novitski eda1eab733 ruby_2_5: remove 2021-02-03 12:10:32 -08:00
Ben Siraphob 001c0cbe54 pkgs/development/interpreters: stdenv.lib -> lib 2021-01-23 20:29:03 +07:00
Mario Rodas 1b3130ec1a ruby_3_0: init 3.0.0
https://www.ruby-lang.org/en/news/2020/12/25/ruby-3-0-0-released/
2020-12-29 04:20:00 +00:00
Mario Rodas 3cf05b37f2 ruby: update RVM patchsets 2020-12-29 04:20:00 +00:00
zowoq 051812b8cf Revert "ruby: fix build on darwin"
This reverts commit d73cc1e586.
2020-11-14 07:11:29 +10:00
Daniël de Kok b235552837 ruby: check disallowed references with jitSupport disabled
This makes it easier to detect regressions.
2020-11-12 15:12:59 +01:00
Doron Behar 9db44f61a7 rubyMinimal: remove
Due to being unused, and seemingly unusable, added appropriate release
notes.
2020-11-09 16:17:41 +02:00
Doron Behar f59f04352a ruby: Rename removeReferencesToCC flag to !jitSupport
If JIT support is built in to ruby, there's no choice other then to
leave this cc reference as is. removeReferencesToCC didn't do it's job
completely since some time ago. That's why it was practically redundant
- `lib/ruby/${version}/<platform>/rbconfig.rb` still referenced cc.
Removing this reference from
`lib/ruby/${version}/<platform>/rbconfig.rb` as well might lead to
breakage in some Gems that require this feature.

But, if JIT support is not desired, it should be safe enough to
completely remove all cc references, both in
lib/ruby/${version}/<platform>/rbconfig.rb and in $out/lib/libruby.so .
Hence now `rubyMinimal` has JIT support disabled and it has no
references at all to stdenv.cc.
2020-11-09 16:17:39 +02:00