rake-compiler-dock 1.7.0 → 1.7.1
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 +4 -4
- data/.github/workflows/ci.yml +6 -6
- data/.github/workflows/publish-images.yml +1 -1
- data/.github/workflows/release-images.yml +87 -0
- data/CONTRIBUTING.md +19 -8
- data/Dockerfile.jruby +4 -4
- data/Dockerfile.mri.erb +15 -14
- data/History.md +6 -0
- data/build/mk_osxcross.sh +1 -1
- data/build/{patches2/rake-compiler-1.2.5 → patches/rake-compiler-1.2.9}/0004-Enable-build-of-static-libruby.patch +4 -1
- data/lib/rake_compiler_dock/version.rb +2 -2
- data/mingw64-ucrt/Dockerfile +5 -1
- data/mingw64-ucrt/README.md +58 -0
- metadata +6 -7
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b9c4b1e01bfda55a4667b92493a41b27893b83c670455e1ffe0238bf123498d8
|
|
4
|
+
data.tar.gz: ed349a2d99f6615ba3dabc237580c72a1eb9461651dfd3e11b759176f4a4f46d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2dab2d0f3d3b0e616b7c5f8c410d9a66a917b5ee64cb2773cafabffae10b1ff586caadba926395c02ee64dbf30a4831819f6ac50638a315a4593aea96a5eeb06
|
|
7
|
+
data.tar.gz: 7b75f6e253400bc5314b547021889ad4e06a83338a3a9bf66de2c453774b81e0e03b6fd744f7c5961869c9959dcb03b46371d8535c54d1a3b16786d81abe85ea
|
data/.github/workflows/ci.yml
CHANGED
|
@@ -144,7 +144,7 @@ jobs:
|
|
|
144
144
|
fail-fast: false
|
|
145
145
|
matrix:
|
|
146
146
|
os: [ubuntu-latest]
|
|
147
|
-
ruby: ["3.4
|
|
147
|
+
ruby: ["3.4", "3.3", "3.2", "3.1", "3.0", "2.7", "2.6", "2.5", "2.4"]
|
|
148
148
|
runs-on: ${{ matrix.os }}
|
|
149
149
|
steps:
|
|
150
150
|
- uses: actions/checkout@v4
|
|
@@ -169,7 +169,7 @@ jobs:
|
|
|
169
169
|
fail-fast: false
|
|
170
170
|
matrix:
|
|
171
171
|
platform: [x86_64-linux, x86_64-linux-gnu]
|
|
172
|
-
ruby: ["3.4
|
|
172
|
+
ruby: ["3.4", "3.3", "3.2", "3.1", "3.0", "2.7", "2.6", "2.5", "2.4"]
|
|
173
173
|
include:
|
|
174
174
|
# declare rubygems for each ruby version
|
|
175
175
|
- { ruby: "3.0", rubygems: "3.5.23" }
|
|
@@ -214,7 +214,7 @@ jobs:
|
|
|
214
214
|
- x86_64-linux
|
|
215
215
|
- x86_64-linux-gnu
|
|
216
216
|
- x86_64-linux-musl
|
|
217
|
-
ruby: ["3.4
|
|
217
|
+
ruby: ["3.4", "3.3", "3.2", "3.1", "3.0", "2.7", "2.6", "2.5", "2.4"]
|
|
218
218
|
include:
|
|
219
219
|
# declare rubygems for each ruby version
|
|
220
220
|
- { ruby: "3.0", rubygems: "3.5.23" }
|
|
@@ -264,7 +264,7 @@ jobs:
|
|
|
264
264
|
fail-fast: false
|
|
265
265
|
matrix:
|
|
266
266
|
os: [macos-13, macos-14]
|
|
267
|
-
ruby: ["3.4
|
|
267
|
+
ruby: ["3.4", "3.3", "3.2", "3.1", "3.0", "2.7", "2.6", "2.5", "2.4"]
|
|
268
268
|
exclude:
|
|
269
269
|
# setup-ruby does not provide ruby 2.4 or 2.5 on arm64-darwin as of 2024-05-01
|
|
270
270
|
- os: macos-14
|
|
@@ -304,7 +304,7 @@ jobs:
|
|
|
304
304
|
ruby: "3.3"
|
|
305
305
|
platform: x64-mingw-ucrt
|
|
306
306
|
- os: windows-latest
|
|
307
|
-
ruby: "
|
|
307
|
+
ruby: "3.4"
|
|
308
308
|
platform: x64-mingw-ucrt
|
|
309
309
|
runs-on: ${{ matrix.os }}
|
|
310
310
|
steps:
|
|
@@ -359,7 +359,7 @@ jobs:
|
|
|
359
359
|
ruby: "3.3"
|
|
360
360
|
platform: x64-mingw-ucrt
|
|
361
361
|
- os: windows-latest
|
|
362
|
-
ruby: "
|
|
362
|
+
ruby: "3.4"
|
|
363
363
|
platform: x64-mingw-ucrt
|
|
364
364
|
runs-on: ${{ matrix.os }}
|
|
365
365
|
steps:
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
name: Release docker images to GHCR
|
|
2
|
+
concurrency:
|
|
3
|
+
group: "${{github.workflow}}-${{github.ref}}"
|
|
4
|
+
cancel-in-progress: true
|
|
5
|
+
|
|
6
|
+
#
|
|
7
|
+
# This workflow assumes the maintainer has chosen the appropriate tag in the workflow dispatch UI.
|
|
8
|
+
#
|
|
9
|
+
on:
|
|
10
|
+
workflow_dispatch:
|
|
11
|
+
inputs:
|
|
12
|
+
tag:
|
|
13
|
+
description: "Tag name to release"
|
|
14
|
+
required: true
|
|
15
|
+
|
|
16
|
+
jobs:
|
|
17
|
+
build:
|
|
18
|
+
name: "build ${{ inputs.tag }} ${{ matrix.platform }}"
|
|
19
|
+
strategy:
|
|
20
|
+
fail-fast: false
|
|
21
|
+
matrix:
|
|
22
|
+
platform:
|
|
23
|
+
- aarch64-linux-gnu
|
|
24
|
+
- aarch64-linux-musl
|
|
25
|
+
- arm-linux-gnu
|
|
26
|
+
- arm-linux-musl
|
|
27
|
+
- arm64-darwin
|
|
28
|
+
- jruby
|
|
29
|
+
- x64-mingw-ucrt
|
|
30
|
+
- x64-mingw32
|
|
31
|
+
- x86-linux-gnu
|
|
32
|
+
- x86-linux-musl
|
|
33
|
+
- x86-mingw32
|
|
34
|
+
- x86_64-darwin
|
|
35
|
+
- x86_64-linux-gnu
|
|
36
|
+
- x86_64-linux-musl
|
|
37
|
+
runs-on: ubuntu-latest
|
|
38
|
+
steps:
|
|
39
|
+
- uses: actions/checkout@v4
|
|
40
|
+
with:
|
|
41
|
+
ref: ${{ inputs.tag }}
|
|
42
|
+
- name: Use cache from primary pipeline
|
|
43
|
+
uses: actions/cache@v4
|
|
44
|
+
with:
|
|
45
|
+
path: tmp/build-cache
|
|
46
|
+
key: ${{runner.os}}-${{matrix.platform}}-buildx-${{github.sha}}
|
|
47
|
+
restore-keys: |
|
|
48
|
+
${{runner.os}}-${{matrix.platform}}-buildx
|
|
49
|
+
- uses: ruby/setup-ruby@v1
|
|
50
|
+
with:
|
|
51
|
+
ruby-version: "3.3"
|
|
52
|
+
bundler-cache: true
|
|
53
|
+
- name: Generate docker image names
|
|
54
|
+
id: rcd_config
|
|
55
|
+
run: |
|
|
56
|
+
bundle exec ruby -e ' \
|
|
57
|
+
require "rake_compiler_dock"; \
|
|
58
|
+
print "image_name="; \
|
|
59
|
+
puts RakeCompilerDock::Starter.container_image_name(:platform => %q(${{matrix.platform}})); \
|
|
60
|
+
if %q(${{matrix.platform}}).end_with?("-gnu"); \
|
|
61
|
+
print "generic_linux_image_name="; \
|
|
62
|
+
puts RakeCompilerDock::Starter.container_image_name(:platform => %q(${{matrix.platform}})).chomp("-gnu"); \
|
|
63
|
+
end \
|
|
64
|
+
' | tee -a $GITHUB_OUTPUT
|
|
65
|
+
- name: Build docker image
|
|
66
|
+
env:
|
|
67
|
+
RCD_DOCKER_BUILD: docker buildx build --cache-from=type=local,src=tmp/build-cache --cache-to=type=local,dest=tmp/build-cache-new --load
|
|
68
|
+
run: |
|
|
69
|
+
docker buildx create --driver docker-container --use
|
|
70
|
+
bundle exec rake build:${{matrix.platform}}
|
|
71
|
+
# move build cache and remove outdated layers
|
|
72
|
+
rm -rf tmp/build-cache
|
|
73
|
+
mv tmp/build-cache-new tmp/build-cache
|
|
74
|
+
- uses: docker/login-action@v3
|
|
75
|
+
with:
|
|
76
|
+
registry: ghcr.io
|
|
77
|
+
username: ${{github.actor}}
|
|
78
|
+
password: ${{secrets.GITHUB_TOKEN}}
|
|
79
|
+
- name: Push the docker image
|
|
80
|
+
run: |
|
|
81
|
+
docker images
|
|
82
|
+
docker push ${{steps.rcd_config.outputs.image_name}}
|
|
83
|
+
- name: Push a generic linux image
|
|
84
|
+
if: ${{ steps.rcd_config.outputs.generic_linux_image_name }}
|
|
85
|
+
run: |
|
|
86
|
+
docker tag ${{steps.rcd_config.outputs.image_name}} ${{steps.rcd_config.outputs.generic_linux_image_name}}
|
|
87
|
+
docker push ${{steps.rcd_config.outputs.generic_linux_image_name}}
|
data/CONTRIBUTING.md
CHANGED
|
@@ -7,17 +7,28 @@ This document is intended for the rake-compiler-dock contributors.
|
|
|
7
7
|
- prep
|
|
8
8
|
- [ ] make sure CI is green!
|
|
9
9
|
- [ ] update `History.md` and `lib/rake_compiler_dock/version.rb`
|
|
10
|
-
-
|
|
11
|
-
|
|
12
|
-
-
|
|
13
|
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
|
|
17
|
-
|
|
10
|
+
- [ ] commit and create a git tag
|
|
11
|
+
- option 1: build locally
|
|
12
|
+
- build
|
|
13
|
+
- [ ] run the steps below to generate the images locally
|
|
14
|
+
- [ ] run `gem build rake-compiler-dock`
|
|
15
|
+
- push
|
|
16
|
+
- [ ] run `bundle exec rake release:images`
|
|
17
|
+
- [ ] run `gem push pkg/rake-compiler-dock*gem`
|
|
18
|
+
- [ ] run `git push && git push --tags`
|
|
19
|
+
- option 2: build with github actions
|
|
20
|
+
- build and push images from github actions
|
|
21
|
+
- [ ] run `git push && git push --tags`
|
|
22
|
+
- [ ] wait for CI to go green on the tag
|
|
23
|
+
- [ ] go to the [release-images pipeline][] and run the workflow on the tag
|
|
24
|
+
- build the gem locally and push it
|
|
25
|
+
- [ ] locally, run `gem build rake-compiler-dock`
|
|
26
|
+
- [ ] run `gem push pkg/rake-compiler-dock*gem`
|
|
18
27
|
- announce
|
|
19
28
|
- [ ] create a release at https://github.com/rake-compiler/rake-compiler-dock/releases
|
|
20
29
|
|
|
30
|
+
[release-images pipeline]: https://github.com/rake-compiler/rake-compiler-dock/actions/workflows/release-images.yml
|
|
31
|
+
|
|
21
32
|
|
|
22
33
|
## Building a versioned image
|
|
23
34
|
|
data/Dockerfile.jruby
CHANGED
|
@@ -44,13 +44,13 @@ RUN bash -c " \
|
|
|
44
44
|
"
|
|
45
45
|
|
|
46
46
|
# Install rake-compiler and patch it to build and install static libraries for Linux rubies
|
|
47
|
-
COPY build/
|
|
47
|
+
COPY build/patches /home/rubyuser/patches
|
|
48
48
|
RUN bash -c " \
|
|
49
49
|
for v in ${RBENV_RUBIES} ; do \
|
|
50
50
|
rbenv shell \$v && \
|
|
51
|
-
gem install rake-compiler -v1.2.
|
|
52
|
-
cd ${RBENV_ROOT}/versions/\$v/lib/ruby/gems/*/gems/rake-compiler-1.2.
|
|
53
|
-
patch -p1 < /home/rubyuser/patches/rake-compiler-1.2.
|
|
51
|
+
gem install rake-compiler -v1.2.9 && \
|
|
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 ; \
|
|
54
54
|
done \
|
|
55
55
|
"
|
|
56
56
|
|
data/Dockerfile.mri.erb
CHANGED
|
@@ -37,12 +37,12 @@ ENV BASH_ENV=/etc/rubybashrc
|
|
|
37
37
|
##
|
|
38
38
|
<% if platform =~ /x64-mingw-ucrt/ %>
|
|
39
39
|
COPY --from=larskanis/mingw64-ucrt:20.04 \
|
|
40
|
-
/build/binutils-mingw-w64-x86-
|
|
41
|
-
/build/g++-mingw-w64-x86-
|
|
42
|
-
/build/gcc-mingw-w64-
|
|
43
|
-
/build/gcc-mingw-w64-x86-
|
|
44
|
-
/build/mingw-w64-
|
|
45
|
-
/build/mingw-w64-x86-64-
|
|
40
|
+
/build/binutils-mingw-w64-x86-64_*.deb \
|
|
41
|
+
/build/g++-mingw-w64-x86-64_*.deb \
|
|
42
|
+
/build/gcc-mingw-w64-base_*.deb \
|
|
43
|
+
/build/gcc-mingw-w64-x86-64_*.deb \
|
|
44
|
+
/build/mingw-w64-common_*.deb \
|
|
45
|
+
/build/mingw-w64-x86-64-dev_*.deb \
|
|
46
46
|
/debs/
|
|
47
47
|
RUN dpkg -i /debs/*.deb
|
|
48
48
|
|
|
@@ -57,6 +57,7 @@ if platform =~ /darwin/ %> clang python lzma-dev libxml2-dev libssl-d
|
|
|
57
57
|
if platform =~ /aarch64-linux-gnu/ %> gcc-aarch64-linux-gnu g++-aarch64-linux-gnu <% end %><%
|
|
58
58
|
if platform =~ /arm-linux-gnu/ %> gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf <% end %><%
|
|
59
59
|
if platform =~ /x86-linux-gnu/ %> gcc-i686-linux-gnu g++-i686-linux-gnu <% end %><%
|
|
60
|
+
if platform =~ /x86_64-linux-gnu/ %> gcc-x86-64-linux-gnu g++-x86-64-linux-gnu <% end %><%
|
|
60
61
|
if platform =~ /x86-mingw32/ %> gcc-mingw-w64-i686 g++-mingw-w64-i686 <% end %><%
|
|
61
62
|
if platform =~ /x64-mingw32/ %> gcc-mingw-w64-x86-64 g++-mingw-w64-x86-64 <% end %> && \
|
|
62
63
|
rm -rf /var/lib/apt/lists/*
|
|
@@ -84,13 +85,13 @@ RUN bash -c " \
|
|
|
84
85
|
"
|
|
85
86
|
|
|
86
87
|
# Install rake-compiler and patch it to build and install static libraries for Linux rubies
|
|
87
|
-
COPY build/
|
|
88
|
+
COPY build/patches /home/rubyuser/patches
|
|
88
89
|
RUN bash -c " \
|
|
89
90
|
for v in ${RBENV_RUBIES} ; do \
|
|
90
91
|
rbenv shell \$v && \
|
|
91
|
-
gem install rake-compiler -v1.2.
|
|
92
|
-
cd ${RBENV_ROOT}/versions/\$v/lib/ruby/gems/*/gems/rake-compiler-1.2.
|
|
93
|
-
patch -p1 < /home/rubyuser/patches/rake-compiler-1.2.
|
|
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 ; \
|
|
94
95
|
done \
|
|
95
96
|
"
|
|
96
97
|
|
|
@@ -110,7 +111,7 @@ RUN sudo mkdir -p /usr/local/rake-compiler && \
|
|
|
110
111
|
xrubies_build_plan = if platform =~ /x64-mingw-ucrt/
|
|
111
112
|
[
|
|
112
113
|
# Rubyinstaller-3.1.0+ is platform x64-mingw-ucrt
|
|
113
|
-
["3.4.
|
|
114
|
+
["3.4.1:3.3.5:3.2.0:3.1.0", "3.1.3"],
|
|
114
115
|
]
|
|
115
116
|
elsif platform =~ /x64-mingw32/
|
|
116
117
|
[
|
|
@@ -121,7 +122,7 @@ elsif platform =~ /x64-mingw32/
|
|
|
121
122
|
else
|
|
122
123
|
[
|
|
123
124
|
["2.6.0:2.5.0:2.4.0", "2.5.9"],
|
|
124
|
-
["3.4.
|
|
125
|
+
["3.4.1:3.3.5:3.2.0:3.1.0:3.0.0:2.7.0", "3.1.3"],
|
|
125
126
|
]
|
|
126
127
|
end
|
|
127
128
|
|
|
@@ -148,7 +149,7 @@ RUN bash -c " \
|
|
|
148
149
|
RUN find /usr/local/rake-compiler/ruby/*linux*/ -name libruby.so | xargs rm
|
|
149
150
|
RUN find /usr/local/rake-compiler/ruby/*linux*/ -name libruby-static.a | while read f ; do cp $f `echo $f | sed s/-static//` ; done
|
|
150
151
|
RUN find /usr/local/rake-compiler/ruby/*linux*/ -name libruby.a | while read f ; do ar t $f | xargs ar d $f ; done
|
|
151
|
-
RUN find /usr/local/rake-compiler/ruby/*linux*/ -name mkmf.rb | while read f ; do sed -i ':a;N;$!ba;s/TRY_LINK = [^\n]*\n[^\n]*\n[^\n]*LOCAL_LIBS)/& -lruby-static -lpthread -lrt -ldl
|
|
152
|
+
RUN find /usr/local/rake-compiler/ruby/*linux*/ -name mkmf.rb | while read f ; do sed -i ':a;N;$!ba;s/TRY_LINK = [^\n]*\n[^\n]*\n[^\n]*LOCAL_LIBS)/& -lruby-static -lpthread -lrt -ldl/' $f ; done
|
|
152
153
|
<% end %>
|
|
153
154
|
|
|
154
155
|
<% if platform =~ /mingw/ %>
|
|
@@ -217,6 +218,6 @@ COPY build/sudoers /etc/sudoers.d/rake-compiler-dock
|
|
|
217
218
|
|
|
218
219
|
RUN bash -c "rbenv global 3.1.3"
|
|
219
220
|
|
|
220
|
-
ENV RUBY_CC_VERSION=3.4.
|
|
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
|
|
221
222
|
|
|
222
223
|
CMD bash
|
data/History.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# `rake-compiler/rake-compiler-dock` Changelog
|
|
2
2
|
|
|
3
|
+
## v1.7.1 / 2025-01-03
|
|
4
|
+
|
|
5
|
+
- Bump rake-compiler dependency to v1.2.9 (from v1.2.5).
|
|
6
|
+
- Bump Ruby to v3.4.1 (from v3.4.0) to address `ruby_abi_version` issues.
|
|
7
|
+
|
|
8
|
+
|
|
3
9
|
## v1.7.0 / 2024-12-25
|
|
4
10
|
|
|
5
11
|
### Ruby 3.4 support
|
data/build/mk_osxcross.sh
CHANGED
|
@@ -13,7 +13,7 @@ set -x
|
|
|
13
13
|
curl -L -o MacOSX11.1.sdk.tar.xz https://github.com/larskanis/MacOSX-SDKs/releases/download/11.1/MacOSX11.1.sdk.tar.xz
|
|
14
14
|
tar -xf MacOSX11.1.sdk.tar.xz -C .
|
|
15
15
|
cp -rf /usr/lib/llvm-10/include/c++ MacOSX11.1.sdk/usr/include/c++
|
|
16
|
-
cp -rf /usr/include
|
|
16
|
+
cp -rf /usr/include/*-linux-gnu/c++/9/bits/ MacOSX11.1.sdk/usr/include/c++/v1/bits
|
|
17
17
|
tar -cJf MacOSX11.1.sdk.tar.xz MacOSX11.1.sdk
|
|
18
18
|
|
|
19
19
|
set +x
|
|
@@ -2,13 +2,16 @@ diff --git a/tasks/bin/cross-ruby.rake b/tasks/bin/cross-ruby.rake
|
|
|
2
2
|
index 8317a2a3..8ed21718 100644
|
|
3
3
|
--- a/tasks/bin/cross-ruby.rake
|
|
4
4
|
+++ b/tasks/bin/cross-ruby.rake
|
|
5
|
-
@@ -116,11 +116,
|
|
5
|
+
@@ -116,11 +116,30 @@
|
|
6
6
|
"--host=#{mingw_host}",
|
|
7
7
|
"--target=#{mingw_target}",
|
|
8
8
|
"--build=#{RUBY_BUILD}",
|
|
9
9
|
- '--enable-shared',
|
|
10
10
|
+ '--enable-install-static-library',
|
|
11
11
|
+ '--disable-jit-support',
|
|
12
|
+
+ 'ac_cv_lib_z_uncompress=no',
|
|
13
|
+
+ 'ac_cv_lib_crypt_crypt=no',
|
|
14
|
+
+ 'ac_cv_func_crypt_r=no',
|
|
12
15
|
'--disable-install-doc',
|
|
13
16
|
'--with-ext=',
|
|
14
17
|
]
|
data/mingw64-ucrt/Dockerfile
CHANGED
|
@@ -32,7 +32,7 @@ RUN cd mingw-w64-* && \
|
|
|
32
32
|
|
|
33
33
|
# Install UCRT enabled deb-packages
|
|
34
34
|
RUN dpkg -i mingw-w64-common_7.0.0-2_all.deb \
|
|
35
|
-
mingw-w64-tools_7.0.0-
|
|
35
|
+
mingw-w64-tools_7.0.0-2_*.deb \
|
|
36
36
|
mingw-w64-x86-64-dev_7.0.0-2_all.deb
|
|
37
37
|
|
|
38
38
|
# Download gcc-binutils sources for mingw
|
|
@@ -52,6 +52,10 @@ RUN apt-get source gcc-mingw-w64 && \
|
|
|
52
52
|
cd gcc-mingw-w64-* && \
|
|
53
53
|
mk-build-deps -ir -t "apt-get -o Debug::pkgProblemResolver=yes -y --no-install-recommends"
|
|
54
54
|
|
|
55
|
+
# Add version based alias
|
|
56
|
+
RUN ln -s `which autoconf` `which autoconf`2.69 && \
|
|
57
|
+
ln -s `which autom4te` `which autom4te`2.69
|
|
58
|
+
|
|
55
59
|
# Build gcc (only C and C++) based on UCRT headers and crt
|
|
56
60
|
ADD gcc-mingw-w64-*.patch ./
|
|
57
61
|
RUN cd gcc-mingw-w64-* && \
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
Docker image with compilers for ruby platform x64-mingw-ucrt
|
|
2
|
+
------------------
|
|
3
|
+
|
|
4
|
+
This Dockerfile builds compilers for Windows UCRT target.
|
|
5
|
+
It takes the mingw compiler provided by Debian/Ubuntu and configures and compiles them for UCRT.
|
|
6
|
+
Outputs are *.deb files of binutils, gcc and g++.
|
|
7
|
+
Rake-compiler-dock reads them from this image as part of its build process for the x64-mingw-ucrt platform.
|
|
8
|
+
|
|
9
|
+
The image is provided for arm64 and amd64 architectures.
|
|
10
|
+
They are built by the following command:
|
|
11
|
+
|
|
12
|
+
```sh
|
|
13
|
+
docker buildx build . -t larskanis/mingw64-ucrt:20.04 --platform linux/arm64,linux/amd64 --push
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
Create builder instance for two architectures
|
|
18
|
+
------------------
|
|
19
|
+
|
|
20
|
+
Building with qemu emulation fails currently with a segfault, so that it must be built by a builder instance with at least one remote node for the other architecture.
|
|
21
|
+
Building on native hardware is also much faster (~30 minutes) than on qemu.
|
|
22
|
+
A two-nodes builder requires obviously a ARM and a Intel/AMD device.
|
|
23
|
+
It can be created like this:
|
|
24
|
+
|
|
25
|
+
```sh
|
|
26
|
+
# Make sure the remote instance can be connected
|
|
27
|
+
$ docker -H ssh://isa info
|
|
28
|
+
|
|
29
|
+
# Create a new builder with the local instance
|
|
30
|
+
$ docker buildx create --name isayoga
|
|
31
|
+
|
|
32
|
+
# Add the remote instance
|
|
33
|
+
$ docker buildx create --name isayoga --append ssh://isa
|
|
34
|
+
|
|
35
|
+
# They are inactive from the start
|
|
36
|
+
$ docker buildx ls
|
|
37
|
+
NAME/NODE DRIVER/ENDPOINT STATUS BUILDKIT PLATFORMS
|
|
38
|
+
isayoga docker-container
|
|
39
|
+
\_ isayoga0 \_ unix:///var/run/docker.sock inactive
|
|
40
|
+
\_ isayoga1 \_ ssh://isa inactive
|
|
41
|
+
default* docker
|
|
42
|
+
\_ default \_ default running v0.13.2 linux/arm64
|
|
43
|
+
|
|
44
|
+
# Bootstrap the instances
|
|
45
|
+
$ docker buildx inspect --bootstrap --builder isayoga
|
|
46
|
+
|
|
47
|
+
# Set the new builder as default
|
|
48
|
+
$ docker buildx use isayoga
|
|
49
|
+
|
|
50
|
+
# Now it should be default and in state "running"
|
|
51
|
+
$ docker buildx ls
|
|
52
|
+
NAME/NODE DRIVER/ENDPOINT STATUS BUILDKIT PLATFORMS
|
|
53
|
+
isayoga* docker-container
|
|
54
|
+
\_ isayoga0 \_ unix:///var/run/docker.sock running v0.18.2 linux/arm64
|
|
55
|
+
\_ isayoga1 \_ ssh://isa running v0.18.2 linux/amd64, linux/amd64/v2, linux/amd64/v3, linux/386
|
|
56
|
+
default docker
|
|
57
|
+
\_ default \_ default running v0.13.2 linux/arm64
|
|
58
|
+
```
|
metadata
CHANGED
|
@@ -1,14 +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.
|
|
4
|
+
version: 1.7.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Lars Kanis
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 2025-01-03 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
13
|
name: bundler
|
|
@@ -71,6 +70,7 @@ files:
|
|
|
71
70
|
- ".dockerignore"
|
|
72
71
|
- ".github/workflows/ci.yml"
|
|
73
72
|
- ".github/workflows/publish-images.yml"
|
|
73
|
+
- ".github/workflows/release-images.yml"
|
|
74
74
|
- ".gitignore"
|
|
75
75
|
- CONTRIBUTING.md
|
|
76
76
|
- Dockerfile.jruby
|
|
@@ -87,7 +87,7 @@ files:
|
|
|
87
87
|
- build/mk_osxcross.sh
|
|
88
88
|
- build/mk_pkg_config.sh
|
|
89
89
|
- build/parallel_docker_build.rb
|
|
90
|
-
- build/
|
|
90
|
+
- build/patches/rake-compiler-1.2.9/0004-Enable-build-of-static-libruby.patch
|
|
91
91
|
- build/rcd-env.sh
|
|
92
92
|
- build/runas
|
|
93
93
|
- build/sigfw.c
|
|
@@ -101,6 +101,7 @@ files:
|
|
|
101
101
|
- lib/rake_compiler_dock/starter.rb
|
|
102
102
|
- lib/rake_compiler_dock/version.rb
|
|
103
103
|
- mingw64-ucrt/Dockerfile
|
|
104
|
+
- mingw64-ucrt/README.md
|
|
104
105
|
- mingw64-ucrt/binutils-mingw-w64-ignore-check-errors.patch
|
|
105
106
|
- mingw64-ucrt/gcc-mingw-w64-only-c-c++.patch
|
|
106
107
|
- mingw64-ucrt/mingw-w64-enable-ucrt.patch
|
|
@@ -125,7 +126,6 @@ homepage: https://github.com/rake-compiler/rake-compiler-dock
|
|
|
125
126
|
licenses:
|
|
126
127
|
- MIT
|
|
127
128
|
metadata: {}
|
|
128
|
-
post_install_message:
|
|
129
129
|
rdoc_options: []
|
|
130
130
|
require_paths:
|
|
131
131
|
- lib
|
|
@@ -140,8 +140,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
140
140
|
- !ruby/object:Gem::Version
|
|
141
141
|
version: '0'
|
|
142
142
|
requirements: []
|
|
143
|
-
rubygems_version: 3.
|
|
144
|
-
signing_key:
|
|
143
|
+
rubygems_version: 3.6.2
|
|
145
144
|
specification_version: 4
|
|
146
145
|
summary: Easy to use and reliable cross compiler environment for building Windows
|
|
147
146
|
and Linux binary gems.
|