Andrew Marshall
cf5fa5eab2
ruby: Make reproducible
...
Bundled gems that have native extensions have a gem_make.out file that
is the build log for the native extension. That file contains random
filenames. Since this file is not needed, simply remove it.
With this change, ruby_3_1 build is reproducible, at least on
x86_64-linux.
Example `diff -ur` from `nix build --rebuild --keep-failed .#ruby_3_1`,
before this change:
```diff
diff -ur /nix/store/m9xczrqsh4chvg4b9z3sl4y93s0jqlbg-ruby-3.1.2/lib/ruby/gems/3.1.0/extensions/x86_64-linux/3.1.0/debug-1.4.0/gem_make.out /nix/store/m9xczrqsh4chvg4b9z3sl4y93s0jqlbg-ruby-3.1.2.check/lib/ruby/gems/3.1.0/extensions/x86_64-linux/3.1.0/debug-1.4.0/gem_make.out
--- /nix/store/m9xczrqsh4chvg4b9z3sl4y93s0jqlbg-ruby-3.1.2/lib/ruby/gems/3.1.0/extensions/x86_64-linux/3.1.0/debug-1.4.0/gem_make.out 1969-12-31 19:00:01.000000000 -0500
+++ /nix/store/m9xczrqsh4chvg4b9z3sl4y93s0jqlbg-ruby-3.1.2.check/lib/ruby/gems/3.1.0/extensions/x86_64-linux/3.1.0/debug-1.4.0/gem_make.out 1969-12-31 19:00:01.000000000 -0500
@@ -3,12 +3,12 @@
creating Makefile
current directory: /nix/store/m9xczrqsh4chvg4b9z3sl4y93s0jqlbg-ruby-3.1.2/lib/ruby/gems/3.1.0/gems/debug-1.4.0/ext/debug
-make DESTDIR\= sitearchdir\=./.gem.20221028-31660-a79mlv sitelibdir\=./.gem.20221028-31660-a79mlv clean
+make DESTDIR\= sitearchdir\=./.gem.20221109-31667-zllvs sitelibdir\=./.gem.20221109-31667-zllvs clean
make[1]: Entering directory '/nix/store/m9xczrqsh4chvg4b9z3sl4y93s0jqlbg-ruby-3.1.2/lib/ruby/gems/3.1.0/gems/debug-1.4.0/ext/debug'
make[1]: Leaving directory '/nix/store/m9xczrqsh4chvg4b9z3sl4y93s0jqlbg-ruby-3.1.2/lib/ruby/gems/3.1.0/gems/debug-1.4.0/ext/debug'
current directory: /nix/store/m9xczrqsh4chvg4b9z3sl4y93s0jqlbg-ruby-3.1.2/lib/ruby/gems/3.1.0/gems/debug-1.4.0/ext/debug
-make DESTDIR\= sitearchdir\=./.gem.20221028-31660-a79mlv sitelibdir\=./.gem.20221028-31660-a79mlv
+make DESTDIR\= sitearchdir\=./.gem.20221109-31667-zllvs sitelibdir\=./.gem.20221109-31667-zllvs
make[1]: Entering directory '/nix/store/m9xczrqsh4chvg4b9z3sl4y93s0jqlbg-ruby-3.1.2/lib/ruby/gems/3.1.0/gems/debug-1.4.0/ext/debug'
compiling debug.c
compiling iseq_collector.c
@@ -16,7 +16,7 @@
make[1]: Leaving directory '/nix/store/m9xczrqsh4chvg4b9z3sl4y93s0jqlbg-ruby-3.1.2/lib/ruby/gems/3.1.0/gems/debug-1.4.0/ext/debug'
current directory: /nix/store/m9xczrqsh4chvg4b9z3sl4y93s0jqlbg-ruby-3.1.2/lib/ruby/gems/3.1.0/gems/debug-1.4.0/ext/debug
-make DESTDIR\= sitearchdir\=./.gem.20221028-31660-a79mlv sitelibdir\=./.gem.20221028-31660-a79mlv install
+make DESTDIR\= sitearchdir\=./.gem.20221109-31667-zllvs sitelibdir\=./.gem.20221109-31667-zllvs install
make[1]: Entering directory '/nix/store/m9xczrqsh4chvg4b9z3sl4y93s0jqlbg-ruby-3.1.2/lib/ruby/gems/3.1.0/gems/debug-1.4.0/ext/debug'
-/nix/store/xq4g38m5ppg78z7bzfxyy2s8ii693k74-coreutils-9.1/bin/install -c -m 0755 debug.so ./.gem.20221028-31660-a79mlv/debug
+/nix/store/xq4g38m5ppg78z7bzfxyy2s8ii693k74-coreutils-9.1/bin/install -c -m 0755 debug.so ./.gem.20221109-31667-zllvs/debug
make[1]: Leaving directory '/nix/store/m9xczrqsh4chvg4b9z3sl4y93s0jqlbg-ruby-3.1.2/lib/ruby/gems/3.1.0/gems/debug-1.4.0/ext/debug'
diff -ur /nix/store/m9xczrqsh4chvg4b9z3sl4y93s0jqlbg-ruby-3.1.2/lib/ruby/gems/3.1.0/extensions/x86_64-linux/3.1.0/rbs-2.1.0/gem_make.out /nix/store/m9xczrqsh4chvg4b9z3sl4y93s0jqlbg-ruby-3.1.2.check/lib/ruby/gems/3.1.0/extensions/x86_64-linux/3.1.0/rbs-2.1.0/gem_make.out
--- /nix/store/m9xczrqsh4chvg4b9z3sl4y93s0jqlbg-ruby-3.1.2/lib/ruby/gems/3.1.0/extensions/x86_64-linux/3.1.0/rbs-2.1.0/gem_make.out 1969-12-31 19:00:01.000000000 -0500
+++ /nix/store/m9xczrqsh4chvg4b9z3sl4y93s0jqlbg-ruby-3.1.2.check/lib/ruby/gems/3.1.0/extensions/x86_64-linux/3.1.0/rbs-2.1.0/gem_make.out 1969-12-31 19:00:01.000000000 -0500
@@ -3,12 +3,12 @@
creating Makefile
current directory: /nix/store/m9xczrqsh4chvg4b9z3sl4y93s0jqlbg-ruby-3.1.2/lib/ruby/gems/3.1.0/gems/rbs-2.1.0/ext/rbs_extension
-make DESTDIR\= sitearchdir\=./.gem.20221028-31660-cv0bgw sitelibdir\=./.gem.20221028-31660-cv0bgw clean
+make DESTDIR\= sitearchdir\=./.gem.20221109-31667-7spnp3 sitelibdir\=./.gem.20221109-31667-7spnp3 clean
make[1]: Entering directory '/nix/store/m9xczrqsh4chvg4b9z3sl4y93s0jqlbg-ruby-3.1.2/lib/ruby/gems/3.1.0/gems/rbs-2.1.0/ext/rbs_extension'
make[1]: Leaving directory '/nix/store/m9xczrqsh4chvg4b9z3sl4y93s0jqlbg-ruby-3.1.2/lib/ruby/gems/3.1.0/gems/rbs-2.1.0/ext/rbs_extension'
current directory: /nix/store/m9xczrqsh4chvg4b9z3sl4y93s0jqlbg-ruby-3.1.2/lib/ruby/gems/3.1.0/gems/rbs-2.1.0/ext/rbs_extension
-make DESTDIR\= sitearchdir\=./.gem.20221028-31660-cv0bgw sitelibdir\=./.gem.20221028-31660-cv0bgw
+make DESTDIR\= sitearchdir\=./.gem.20221109-31667-7spnp3 sitelibdir\=./.gem.20221109-31667-7spnp3
make[1]: Entering directory '/nix/store/m9xczrqsh4chvg4b9z3sl4y93s0jqlbg-ruby-3.1.2/lib/ruby/gems/3.1.0/gems/rbs-2.1.0/ext/rbs_extension'
compiling constants.c
compiling lexer.c
@@ -23,7 +23,7 @@
make[1]: Leaving directory '/nix/store/m9xczrqsh4chvg4b9z3sl4y93s0jqlbg-ruby-3.1.2/lib/ruby/gems/3.1.0/gems/rbs-2.1.0/ext/rbs_extension'
current directory: /nix/store/m9xczrqsh4chvg4b9z3sl4y93s0jqlbg-ruby-3.1.2/lib/ruby/gems/3.1.0/gems/rbs-2.1.0/ext/rbs_extension
-make DESTDIR\= sitearchdir\=./.gem.20221028-31660-cv0bgw sitelibdir\=./.gem.20221028-31660-cv0bgw install
+make DESTDIR\= sitearchdir\=./.gem.20221109-31667-7spnp3 sitelibdir\=./.gem.20221109-31667-7spnp3 install
make[1]: Entering directory '/nix/store/m9xczrqsh4chvg4b9z3sl4y93s0jqlbg-ruby-3.1.2/lib/ruby/gems/3.1.0/gems/rbs-2.1.0/ext/rbs_extension'
-/nix/store/xq4g38m5ppg78z7bzfxyy2s8ii693k74-coreutils-9.1/bin/install -c -m 0755 rbs_extension.so ./.gem.20221028-31660-cv0bgw
+/nix/store/xq4g38m5ppg78z7bzfxyy2s8ii693k74-coreutils-9.1/bin/install -c -m 0755 rbs_extension.so ./.gem.20221109-31667-7spnp3
make[1]: Leaving directory '/nix/store/m9xczrqsh4chvg4b9z3sl4y93s0jqlbg-ruby-3.1.2/lib/ruby/gems/3.1.0/gems/rbs-2.1.0/ext/rbs_extension'
```
2022-11-09 13:53:41 -05:00
Andrew Marshall
4750b447cf
ruby: Do not assume gemPath
...
Other parts of this derivation use `passthru.gemPath` already, this is
the one exception.
2022-11-09 13:53:41 -05:00
Arnout Engelen
c5e2f3c066
ruby: move towards ruby 3
...
Currently, `pkgs.ruby` is ruby 2.7.6, which is in 'security updates
only' mode and scheduled to go EOL April 2023. Updating `pkgs.ruby`
to be ruby 3.1 would be a rather large change, but using ruby 3 to
bootstrap building ruby itself would be a nice first step in that
direction.
Tested with asciidoctor that this indeed now allows building a ruby
application without getting ruby 2.7 in the build closure.
Also fixes #192729
2022-10-06 17:09:38 +02:00
ajs124
a902277262
ruby*: use matching openssl version for each release
2022-08-17 20:16:19 +02:00
Mario Rodas
0565bd8b59
ruby: update meta
2022-08-12 04:20:00 +00:00
Mario Rodas
b0447f04cb
ruby: remove deprecated passthru variables
2022-08-12 04:20:00 +00:00
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
Teo Ljungberg
4ad8b43ce2
ruby: 3.1.0 -> 3.1.1
2022-03-12 19:46:30 +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
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
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
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
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
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
zimbatm
7aee32121a
ruby: make the build reproducible
...
ext/io/console/io-console.gemspec was embedding a timestamp which made
the build not reproducible. Gems respect SOURCE_DATE_EPOCH so it's
enough to just delete that line if it exists.
This file has been fixed in
679a941d05 (diff-d8422f096931c58d4463e2489f62a228b0f24f0492950ba88c8c89a0d741cfe6)
And then ruby regularly merges that gem into their own repository. Ruby
master is fixed but none of the ruby releases have been fixed yet.
lib/ruby/gems/2.6.0/specifications/default/io-console-0.4.7.gemspec now
contains:
s.date = "1980-01-01"
2020-10-27 14:20:08 +01:00