rake-compiler-dock 1.7.1 → 1.9.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: 5a59f63867c312521f69bb31aae8cc5d64b1386b4e0265697f2d94a8119cdb65
4
+ data.tar.gz: 6b5820fec1db079e704bc03e9e2cee3e8c7304e877c98f1bd187a3205aa6a232
5
5
  SHA512:
6
- metadata.gz: 2dab2d0f3d3b0e616b7c5f8c410d9a66a917b5ee64cb2773cafabffae10b1ff586caadba926395c02ee64dbf30a4831819f6ac50638a315a4593aea96a5eeb06
7
- data.tar.gz: 7b75f6e253400bc5314b547021889ad4e06a83338a3a9bf66de2c453774b81e0e03b6fd744f7c5961869c9959dcb03b46371d8535c54d1a3b16786d81abe85ea
6
+ metadata.gz: fcc064e935c6abac109883672ec3b0d087f27bc5dbe1b32ad52b467d2388c1a7dc40f97f496dd10442b98a92ac10533b493ab0763f84c2180e17f8b0cfc3e42e
7
+ data.tar.gz: e4739c09899d1f5fbaa4ebd1eb1fd5f81be132dacb64217901890937561eeb50fac4161e7133b9c90ec569766b86e2dca81fa1dfe42a307ec7e0e0a894a03f5c
@@ -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,31 +47,57 @@ 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 3.4.1"
78
+
77
79
  # Install the bootstrap rubies
78
80
  RUN bash -c " \
79
- echo 'gem: --no-ri --no-rdoc --no-document' >> ~/.gemrc && \
80
- export CFLAGS='-s -O3 -fno-fast-math -fPIC' && \
81
- for v in ${RBENV_RUBIES} ; do \
82
- rbenv install \$v -- --disable-install-doc ; \
83
- done && \
84
- find ${RBENV_ROOT} -type d -print0 | sudo xargs -0 chmod g+w \
85
- "
81
+ echo 'gem: --no-ri --no-rdoc --no-document' >> ~/.gemrc && \
82
+ export CFLAGS='-s -O3 -fno-fast-math -fPIC' && \
83
+ for v in ${RBENV_RUBIES} ; do \
84
+ rbenv install \$v -- --disable-install-doc ; \
85
+ done && \
86
+ find ${RBENV_ROOT} -type d -print0 | sudo xargs -0 chmod g+w \
87
+ "
86
88
 
87
89
  # Install rake-compiler and patch it to build and install static libraries for Linux rubies
88
90
  COPY build/patches /home/rubyuser/patches
89
91
  RUN bash -c " \
90
- for v in ${RBENV_RUBIES} ; do \
91
- rbenv shell \$v && \
92
- gem install rake-compiler -v1.2.9 && \
93
- 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 ; \
95
- done \
96
- "
92
+ for v in ${RBENV_RUBIES} ; do \
93
+ rbenv shell \$v && \
94
+ gem install rake-compiler -v1.2.9 && \
95
+ cd ${RBENV_ROOT}/versions/\$v/lib/ruby/gems/*/gems/rake-compiler-1.2.9 && \
96
+ for patch in /home/rubyuser/patches/rake-compiler-1.2.9/*.patch ; do \
97
+ patch -p1 < \$patch ; \
98
+ done \
99
+ done \
100
+ "
97
101
 
98
102
  # Install rake-compiler's cross rubies in global dir instead of /root
99
103
  RUN sudo mkdir -p /usr/local/rake-compiler && \
@@ -110,19 +114,20 @@ 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.7:3.2.6:3.1.6", "3.4.1"],
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
+ ["2.7.8", "3.1.6"],
130
+ ["3.4.1:3.3.7:3.2.6:3.1.6:3.0.7", "3.4.1"],
126
131
  ]
127
132
  end
128
133
 
@@ -130,16 +135,16 @@ strip = '-s' if platform !~ /darwin/
130
135
 
131
136
  xrubies_build_plan.each do |xrubies, bootstrap_ruby_version| %>
132
137
  RUN bash -c " \
133
- rbenv shell <%= bootstrap_ruby_version %> && \
134
- export CPPFLAGS='<%= "-D__USE_MINGW_ANSI_STDIO=1" if platform =~ /x64-mingw-ucrt/ %>' && \
135
- export CFLAGS='-O1 -fno-omit-frame-pointer -fno-fast-math -fstack-protector-strong <%= strip %>' && \
136
- export LDFLAGS='-pipe <%= strip %>' && \
137
- <%= "export LIBS='-l:libssp.a' &&" if platform =~ /mingw/ %> \
138
- <%= "export CC=#{target}-clang &&" if platform =~ /darwin/ %> \
139
- export MAKE='make V=1' && \
140
- rake-compiler cross-ruby VERSION=<%= xrubies %> HOST=<%= target %> && \
141
- rm -rf ~/.rake-compiler/builds ~/.rake-compiler/sources \
142
- "
138
+ rbenv shell <%= bootstrap_ruby_version %> && \
139
+ export CPPFLAGS='<%= "-D__USE_MINGW_ANSI_STDIO=1" if platform =~ /x64-mingw-ucrt/ %>' && \
140
+ export CFLAGS='-O1 -fno-omit-frame-pointer -fno-fast-math -fstack-protector-strong <%= strip %>' && \
141
+ export LDFLAGS='-pipe <%= strip %>' && \
142
+ <%= "export LIBS='-l:libssp.a' &&" if platform =~ /mingw/ %> \
143
+ <%= "export CC=#{target}-clang &&" if platform =~ /darwin/ %> \
144
+ export MAKE='make V=1' && \
145
+ rake-compiler cross-ruby VERSION=<%= xrubies %> HOST=<%= target %> && \
146
+ rm -rf ~/.rake-compiler/builds ~/.rake-compiler/sources \
147
+ "
143
148
  <% end %>
144
149
  # "
145
150
 
@@ -165,12 +170,15 @@ RUN find /usr/local/rake-compiler/ruby -name lib*-ruby*.dll.a | while read f ; d
165
170
  RUN find /usr/local/rake-compiler/ruby -name rbconfig.rb | while read f ; do sed -i 's/-lcrypt//' $f ; done
166
171
 
167
172
  <% 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
173
+ # for rubies which use `-bundle_loader` on darwin
174
+ # - the upstream change: https://github.com/ruby/ruby/pull/6193
175
+ # - how we got to this solution: https://github.com/rake-compiler/rake-compiler-dock/issues/87
176
+ #
177
+ # note that ruby/ruby#6193 was backported to 2.7.7, 3.0.5, and 3.1.3
178
+ # - see https://github.com/rake-compiler/rake-compiler-dock/issues/134 for more notes
179
+ RUN find /usr/local/rake-compiler/ruby/*/*/lib/ruby -name rbconfig.rb | while read f ; do \
180
+ sed -E -i 's/(\["EXTDLDFLAGS"\] = ".*)(-bundle_loader)/\1-Wl,-flat_namespace \2/' $f ; \
181
+ done
174
182
  <% end %>
175
183
 
176
184
 
@@ -216,8 +224,8 @@ RUN echo 'source /etc/profile.d/rcd-env.sh' >> /etc/rubybashrc
216
224
  # Install sudoers configuration
217
225
  COPY build/sudoers /etc/sudoers.d/rake-compiler-dock
218
226
 
219
- RUN bash -c "rbenv global 3.1.3"
227
+ RUN bash -c "rbenv global 3.4.1"
220
228
 
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
229
+ ENV RUBY_CC_VERSION=3.4.1:3.3.7:3.2.6:3.1.6:3.0.7:2.7.8:2.6.10:2.5.9:2.4.10
222
230
 
223
231
  CMD bash
data/History.md CHANGED
@@ -1,5 +1,38 @@
1
1
  # `rake-compiler/rake-compiler-dock` Changelog
2
2
 
3
+ ## v1.9.0 / 2025-01-19
4
+
5
+ ### Changes
6
+
7
+ - Bump Ruby 3.3 to v3.3.7 (from v3.3.5). #147 @flavorjones
8
+ - The default `rbenv` ruby in the container is now Ruby v3.4.1 (previously the default was 3.1.6), which allows gems to drop Ruby 3.1 from their gemspecs. Fixes #145. #146 @flavorjones
9
+ - Ruby 3.4.x, 3.3.x, 3.2.x, 3.1.x, and 3.0.x are cross-compiled using Ruby v3.4.1. #146 @flavorjones
10
+
11
+ ### CRuby container summary
12
+
13
+ - native rubies: 3.4.1 (default), 3.1.6, 2.5.9
14
+ - `RUBY_CC_VERSION=3.4.1:3.3.7:3.2.6:3.1.6:3.0.7:2.7.8:2.6.10:2.5.9:2.4.10`
15
+
16
+
17
+ ## v1.8.0 / 2025-01-05
18
+
19
+ ### Notable changes
20
+
21
+ All versions of Ruby in the build containers are the latest patch version. #135 @flavorjones
22
+ - `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`
23
+
24
+ ### Other changes
25
+
26
+ - Base ruby updated to v3.1.6 (from v3.1.3), which is now the default `rbenv` ruby.
27
+ - (Darwin) Set `OSXCROSS_PKG_CONFIG_USE_NATIVE_VARIABLES=1` to successfully build the 3.0 series.
28
+ - (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.
29
+
30
+ ### CRuby container summary
31
+
32
+ - native rubies: 3.1.6 (default), 2.5.9
33
+ - `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`
34
+
35
+
3
36
  ## v1.7.1 / 2025-01-03
4
37
 
5
38
  - 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.9.0"
3
+ IMAGE_VERSION = "1.9.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.9.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-19 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