rake-compiler-dock 1.7.1 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b9c4b1e01bfda55a4667b92493a41b27893b83c670455e1ffe0238bf123498d8
4
- data.tar.gz: ed349a2d99f6615ba3dabc237580c72a1eb9461651dfd3e11b759176f4a4f46d
3
+ metadata.gz: d8defac75bbfdcb50e87c34ae26c04eeac94d56144481a01ea096cffe70f33ac
4
+ data.tar.gz: 5fe13b2f51bea09bb8ed3f02c170ccf2984aa6fcd74bed05b74643d658a0d615
5
5
  SHA512:
6
- metadata.gz: 2dab2d0f3d3b0e616b7c5f8c410d9a66a917b5ee64cb2773cafabffae10b1ff586caadba926395c02ee64dbf30a4831819f6ac50638a315a4593aea96a5eeb06
7
- data.tar.gz: 7b75f6e253400bc5314b547021889ad4e06a83338a3a9bf66de2c453774b81e0e03b6fd744f7c5961869c9959dcb03b46371d8535c54d1a3b16786d81abe85ea
6
+ metadata.gz: 94bb24cf349bc6099fc6dd07ffe860588a782ef0408af57c59001a4100a5be568489e7d8610a840949590086289a474c123be34da1193633c7ba6aaff733c2fb
7
+ data.tar.gz: 2123aa6ccb22c06ee123e58eb34e306a0f8e5b69e57fd6124b1bfe7cdd42a5f2a83a0b7c6ce63015e7c02f706f011bd46a1b0e56b823d86997a702fa7ab57525
@@ -187,9 +187,10 @@ jobs:
187
187
  uses: actions/download-artifact@v4
188
188
  with:
189
189
  name: gem-${{ matrix.platform }}
190
+ - if: matrix.rubygems
191
+ run: gem update --system ${{ matrix.rubygems }}
190
192
  - name: Test gem-${{ matrix.platform }}
191
193
  run: |
192
- gem update --system ${{ matrix.rubygems }}
193
194
  gem install --local *.gem --verbose
194
195
  cd test/rcd_test/
195
196
  bundle install
@@ -250,7 +251,7 @@ jobs:
250
251
  docker run --rm -v $PWD:/work -w /work \
251
252
  ${{ matrix.docker_platform}} ruby:${{ matrix.ruby }}${{ matrix.docker_tag }} \
252
253
  sh -c "
253
- gem update --system ${{ matrix.rubygems }} &&
254
+ if test -n '${{ matrix.rubygems }}' ; then gem update --system ${{ matrix.rubygems }} ; fi &&
254
255
  gem install --local *.gem --verbose &&
255
256
  cd test/rcd_test/ &&
256
257
  bundle install &&
data/Dockerfile.jruby CHANGED
@@ -50,7 +50,9 @@ RUN bash -c " \
50
50
  rbenv shell \$v && \
51
51
  gem install rake-compiler -v1.2.9 && \
52
52
  cd ${RBENV_ROOT}/versions/\$v/lib/ruby/gems/*/gems/rake-compiler-1.2.9 && \
53
- patch -p1 < /home/rubyuser/patches/rake-compiler-1.2.9/*.patch ; \
53
+ for patch in /home/rubyuser/patches/rake-compiler-1.2.9/*.patch ; do \
54
+ patch -p1 < \$patch ; \
55
+ done \
54
56
  done \
55
57
  "
56
58
 
data/Dockerfile.mri.erb CHANGED
@@ -10,28 +10,6 @@ RUN apt-get -y update && \
10
10
  apt-get install -y autoconf cmake pkg-config zlib1g-dev libreadline-dev libsqlite0-dev libssl-dev libyaml-dev libffi-dev && \
11
11
  rm -rf /var/lib/apt/lists/*
12
12
 
13
- ##
14
- ## install rbenv and ruby-build
15
- ##
16
- RUN groupadd -r rubyuser && useradd -r -g rubyuser -G sudo -p "" --create-home rubyuser
17
-
18
- ENV RBENV_ROOT=/usr/local/rbenv RBENV_RUBIES="2.5.9 3.1.3"
19
-
20
- # chown after running `rbenv init` because that command creates some subdirectories
21
- RUN git clone https://github.com/rbenv/rbenv.git ${RBENV_ROOT} && \
22
- git clone https://github.com/rbenv/ruby-build.git ${RBENV_ROOT}/plugins/ruby-build && \
23
- \
24
- echo "export RBENV_ROOT=/usr/local/rbenv" >> /etc/rubybashrc && \
25
- echo "export PATH=$RBENV_ROOT/bin:\$PATH" >> /etc/rubybashrc && \
26
- $RBENV_ROOT/bin/rbenv init - --no-rehash bash >> /etc/rubybashrc && \
27
- echo "source /etc/rubybashrc" >> /etc/bashrc && \
28
- echo "source /etc/rubybashrc" >> /etc/bash.bashrc && \
29
- \
30
- chown -R rubyuser:rubyuser ${RBENV_ROOT} && \
31
- find ${RBENV_ROOT} -type d -print0 | sudo xargs -0 chmod g+sw
32
- ENV BASH_ENV=/etc/rubybashrc
33
-
34
-
35
13
  ##
36
14
  ## Install cross compilers
37
15
  ##
@@ -69,11 +47,35 @@ RUN /tmp/mk_osxcross.sh
69
47
  <% end %>
70
48
 
71
49
 
50
+ ##
51
+ ## install rbenv and ruby-build
52
+ ##
53
+ RUN groupadd -r rubyuser && useradd -r -g rubyuser -G sudo -p "" --create-home rubyuser
54
+
55
+ ENV RBENV_ROOT=/usr/local/rbenv
56
+
57
+ # chown after running `rbenv init` because that command creates some subdirectories
58
+ RUN git clone https://github.com/rbenv/rbenv.git ${RBENV_ROOT} && \
59
+ git clone https://github.com/rbenv/ruby-build.git ${RBENV_ROOT}/plugins/ruby-build && \
60
+ \
61
+ echo "export RBENV_ROOT=/usr/local/rbenv" >> /etc/rubybashrc && \
62
+ echo "export PATH=$RBENV_ROOT/bin:\$PATH" >> /etc/rubybashrc && \
63
+ $RBENV_ROOT/bin/rbenv init - --no-rehash bash >> /etc/rubybashrc && \
64
+ echo "source /etc/rubybashrc" >> /etc/bashrc && \
65
+ echo "source /etc/rubybashrc" >> /etc/bash.bashrc && \
66
+ \
67
+ chown -R rubyuser:rubyuser ${RBENV_ROOT} && \
68
+ find ${RBENV_ROOT} -type d -print0 | sudo xargs -0 chmod g+sw
69
+ ENV BASH_ENV=/etc/rubybashrc
70
+
71
+
72
72
  ##
73
73
  ## set up rake-compiler and install bootstrap rubies
74
74
  ##
75
75
  USER rubyuser
76
76
 
77
+ ENV RBENV_RUBIES="2.5.9 3.1.6"
78
+
77
79
  # Install the bootstrap rubies
78
80
  RUN bash -c " \
79
81
  echo 'gem: --no-ri --no-rdoc --no-document' >> ~/.gemrc && \
@@ -91,7 +93,9 @@ RUN bash -c " \
91
93
  rbenv shell \$v && \
92
94
  gem install rake-compiler -v1.2.9 && \
93
95
  cd ${RBENV_ROOT}/versions/\$v/lib/ruby/gems/*/gems/rake-compiler-1.2.9 && \
94
- patch -p1 < /home/rubyuser/patches/rake-compiler-1.2.9/*.patch ; \
96
+ for patch in /home/rubyuser/patches/rake-compiler-1.2.9/*.patch ; do \
97
+ patch -p1 < \$patch ; \
98
+ done \
95
99
  done \
96
100
  "
97
101
 
@@ -110,19 +114,19 @@ RUN sudo mkdir -p /usr/local/rake-compiler && \
110
114
  #
111
115
  xrubies_build_plan = if platform =~ /x64-mingw-ucrt/
112
116
  [
113
- # Rubyinstaller-3.1.0+ is platform x64-mingw-ucrt
114
- ["3.4.1:3.3.5:3.2.0:3.1.0", "3.1.3"],
117
+ # Rubyinstaller-3.1+ is platform x64-mingw-ucrt
118
+ ["3.4.1:3.3.5:3.2.6:3.1.6", "3.1.6"],
115
119
  ]
116
120
  elsif platform =~ /x64-mingw32/
117
121
  [
118
- # Rubyinstaller prior to 3.1.0 is platform x64-mingw32
119
- ["2.6.0:2.5.0:2.4.0", "2.5.9"],
120
- ["3.0.0:2.7.0", "3.1.3"],
122
+ # Rubyinstaller prior to 3.1 is platform x64-mingw32
123
+ ["2.6.10:2.5.9:2.4.10", "2.5.9"],
124
+ ["3.0.7:2.7.8", "3.1.6"],
121
125
  ]
122
126
  else
123
127
  [
124
- ["2.6.0:2.5.0:2.4.0", "2.5.9"],
125
- ["3.4.1:3.3.5:3.2.0:3.1.0:3.0.0:2.7.0", "3.1.3"],
128
+ ["2.6.10:2.5.9:2.4.10", "2.5.9"],
129
+ ["3.4.1:3.3.5:3.2.6:3.1.6:3.0.7:2.7.8", "3.1.6"],
126
130
  ]
127
131
  end
128
132
 
@@ -165,12 +169,15 @@ RUN find /usr/local/rake-compiler/ruby -name lib*-ruby*.dll.a | while read f ; d
165
169
  RUN find /usr/local/rake-compiler/ruby -name rbconfig.rb | while read f ; do sed -i 's/-lcrypt//' $f ; done
166
170
 
167
171
  <% if platform =~ /darwin/ %>
168
- # ruby-3.2+ on darwin links with `-bundle_loader`,
169
- # - see https://github.com/rake-compiler/rake-compiler-dock/issues/87
170
- # - note that we do this for "3.[2-9].0" to match rubies 3.2 and later
171
- # - and we add a "*" on the end for "3.[2-9].0*" to match prereleases like "3.3.0+0"
172
- RUN find /usr/local/rake-compiler/ruby/*/*/lib/ruby/3.[2-9].0* -name rbconfig.rb | \
173
- while read f ; do sed -i 's/\["EXTDLDFLAGS"\] = "/&-Wl,-flat_namespace /' $f ; done
172
+ # for rubies which use `-bundle_loader` on darwin
173
+ # - the upstream change: https://github.com/ruby/ruby/pull/6193
174
+ # - how we got to this solution: https://github.com/rake-compiler/rake-compiler-dock/issues/87
175
+ #
176
+ # note that ruby/ruby#6193 was backported to 2.7.7, 3.0.5, and 3.1.3
177
+ # - see https://github.com/rake-compiler/rake-compiler-dock/issues/134 for more notes
178
+ RUN find /usr/local/rake-compiler/ruby/*/*/lib/ruby -name rbconfig.rb | while read f ; do \
179
+ sed -E -i 's/(\["EXTDLDFLAGS"\] = ".*)(-bundle_loader)/\1-Wl,-flat_namespace \2/' $f ; \
180
+ done
174
181
  <% end %>
175
182
 
176
183
 
@@ -216,8 +223,8 @@ RUN echo 'source /etc/profile.d/rcd-env.sh' >> /etc/rubybashrc
216
223
  # Install sudoers configuration
217
224
  COPY build/sudoers /etc/sudoers.d/rake-compiler-dock
218
225
 
219
- RUN bash -c "rbenv global 3.1.3"
226
+ RUN bash -c "rbenv global 3.1.6"
220
227
 
221
- ENV RUBY_CC_VERSION=3.4.1:3.3.5:3.2.0:3.1.0:3.0.0:2.7.0:2.6.0:2.5.0:2.4.0
228
+ ENV RUBY_CC_VERSION=3.4.1:3.3.5:3.2.6:3.1.6:3.0.7:2.7.8:2.6.10:2.5.9:2.4.10
222
229
 
223
230
  CMD bash
data/History.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # `rake-compiler/rake-compiler-dock` Changelog
2
2
 
3
+ ## v1.8.0 / 2025-01-05
4
+
5
+ ### Notable changes
6
+
7
+ All versions of Ruby in the build containers are the latest patch version. #135 @flavorjones
8
+ - `RUBY_CC_VERSION=3.4.1:3.3.5:3.2.6:3.1.6:3.0.7:2.7.8:2.6.10:2.5.9:2.4.10`
9
+
10
+ ### Other changes
11
+
12
+ - Base ruby updated to v3.1.6 (from v3.1.3), which is now the default `rbenv` ruby.
13
+ - (Darwin) Set `OSXCROSS_PKG_CONFIG_USE_NATIVE_VARIABLES=1` to successfully build the 3.0 series.
14
+ - (Darwin) The linker flags include `-Wl,-flat_namespace` for 2.7, 3.0, 3.1, 3.2, 3.3, and 3.4 rubies. Previously this was only needed for 3.2+, but code backported to 2.7.7, 3.0.5, and 3.1.3 required it for those versions as well.
15
+
16
+
3
17
  ## v1.7.1 / 2025-01-03
4
18
 
5
19
  - Bump rake-compiler dependency to v1.2.9 (from v1.2.5).
data/build/mk_osxcross.sh CHANGED
@@ -27,6 +27,8 @@ rm -rf *~ build tarballs/*
27
27
  echo "export PATH=/opt/osxcross/target/bin:\$PATH" >> /etc/rubybashrc
28
28
  echo "export MACOSX_DEPLOYMENT_TARGET=10.13" >> /etc/rubybashrc
29
29
  echo "export OSXCROSS_MP_INC=1" >> /etc/rubybashrc
30
+ echo "export OSXCROSS_PKG_CONFIG_USE_NATIVE_VARIABLES=1" >> /etc/rubybashrc
31
+
30
32
 
31
33
  # Add links to build tools without target version kind of:
32
34
  # arm64-apple-darwin-clang => arm64-apple-darwin20.1-clang
@@ -0,0 +1,17 @@
1
+ diff --git a/tasks/bin/cross-ruby.rake b/tasks/bin/cross-ruby.rake
2
+ index d37ab97b..0df44b30 100644
3
+ --- a/tasks/bin/cross-ruby.rake
4
+ +++ b/tasks/bin/cross-ruby.rake
5
+ @@ -129,6 +129,12 @@
6
+
7
+ # make
8
+ file "#{build_dir}/ruby.exe" => ["#{build_dir}/Makefile"] do |t|
9
+ + puts "MIKE: #{ruby_cc_version}: #{mingw_target}"
10
+ + if ruby_cc_version.start_with?("ruby-3.1") && mingw_target =~ /darwin/
11
+ + # for later 3.1.x releases, we need to explicitly build miniruby
12
+ + # see https://bugs.ruby-lang.org/issues/19239
13
+ + sh "#{MAKE} miniruby", chdir: File.dirname(t.prerequisites.first)
14
+ + end
15
+ sh MAKE, chdir: File.dirname(t.prerequisites.first)
16
+ end
17
+
@@ -1,4 +1,4 @@
1
1
  module RakeCompilerDock
2
- VERSION = "1.7.1"
3
- IMAGE_VERSION = "1.7.1"
2
+ VERSION = "1.8.0"
3
+ IMAGE_VERSION = "1.8.0"
4
4
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rake-compiler-dock
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.1
4
+ version: 1.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lars Kanis
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-01-03 00:00:00.000000000 Z
10
+ date: 2025-01-06 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: bundler
@@ -88,6 +88,7 @@ files:
88
88
  - build/mk_pkg_config.sh
89
89
  - build/parallel_docker_build.rb
90
90
  - build/patches/rake-compiler-1.2.9/0004-Enable-build-of-static-libruby.patch
91
+ - build/patches/rake-compiler-1.2.9/0005-build-miniruby-first.patch
91
92
  - build/rcd-env.sh
92
93
  - build/runas
93
94
  - build/sigfw.c