14
14
ghc_targets :
15
15
type : string
16
16
default : " install_bin install_lib update_package_db install_extra"
17
+ gmp :
18
+ type : string
19
+ default : 6.3.0
17
20
cabal :
18
21
type : string
19
22
default : 3.14.2.0
30
33
GHC_TEST_VERSION : 9.6.7
31
34
GHC_TEST_TARGETS : " install_bin install_lib update_package_db"
32
35
CABAL_VERSION : ${{ inputs.cabal }}
36
+ GMP_VERSION : ${{ inputs.gmp }}
33
37
BOOTSTRAP_HASKELL_NONINTERACTIVE : 1
34
38
BOOTSTRAP_HASKELL_MINIMAL : 1
35
39
DEBIAN_FRONTEND : noninteractive
@@ -70,89 +74,19 @@ jobs:
70
74
fail-fast : false
71
75
matrix :
72
76
branch : ${{ fromJSON(inputs.branches) }}
73
- platform : [ { image: "debian:11"
74
- , installCmd: "apt-get update && apt-get install -y"
75
- , toolRequirements: "${{ needs.tool-output.outputs.apt_tools }}"
76
- , DISTRO: "Debian"
77
- , ARTIFACT: "x86_64-linux-deb11"
78
- , ADD_CABAL_ARGS: "--enable-split-sections"
79
- },
80
- { image: "debian:12"
81
- , installCmd: "apt-get update && apt-get install -y"
82
- , toolRequirements: "${{ needs.tool-output.outputs.apt_tools }}"
83
- , DISTRO: "Debian"
84
- , ARTIFACT: "x86_64-linux-deb12"
85
- , ADD_CABAL_ARGS: "--enable-split-sections"
86
- },
87
- { image: "ubuntu:20.04"
88
- , installCmd: "apt-get update && apt-get install -y"
89
- , toolRequirements: "${{ needs.tool-output.outputs.apt_tools }}"
90
- , DISTRO: "Ubuntu"
91
- , ARTIFACT: "x86_64-linux-ubuntu20.04"
92
- , ADD_CABAL_ARGS: "--enable-split-sections"
93
- },
94
- { image: "ubuntu:22.04"
95
- , installCmd: "apt-get update && apt-get install -y"
96
- , toolRequirements: "${{ needs.tool-output.outputs.apt_tools }}"
97
- , DISTRO: "Ubuntu"
98
- , ARTIFACT: "x86_64-linux-ubuntu22.04"
99
- , ADD_CABAL_ARGS: "--enable-split-sections"
100
- },
101
- { image: "ubuntu:24.04"
102
- , installCmd: "apt-get update && apt-get install -y"
103
- , toolRequirements: "${{ needs.tool-output.outputs.apt_tools_ncurses6 }}"
104
- , DISTRO: "Ubuntu"
105
- , ARTIFACT: "x86_64-linux-ubuntu24.04"
106
- , ADD_CABAL_ARGS: "--enable-split-sections"
107
- },
108
- { image: "fedora:33"
109
- , installCmd: "dnf install -y"
110
- , toolRequirements: "${{ needs.tool-output.outputs.rpm_tools }}"
111
- , DISTRO: "Fedora"
112
- , ARTIFACT: "x86_64-linux-fedora33"
113
- , ADD_CABAL_ARGS: "--enable-split-sections"
114
- },
115
- { image: "fedora:36"
116
- , installCmd: "dnf install -y"
117
- , toolRequirements: "${{ needs.tool-output.outputs.rpm_tools }}"
118
- , DISTRO: "Fedora"
119
- , ARTIFACT: "x86_64-linux-fedora36"
120
- , ADD_CABAL_ARGS: "--enable-split-sections"
121
- },
122
- { image: "fedora:38"
123
- , installCmd: "dnf install -y"
124
- , toolRequirements: "${{ needs.tool-output.outputs.rpm_tools }}"
125
- , DISTRO: "Fedora"
126
- , ARTIFACT: "x86_64-linux-fedora38"
127
- , ADD_CABAL_ARGS: "--enable-split-sections"
128
- },
129
- { image: "rockylinux:8"
77
+ platform : [ { image: "rockylinux:8"
130
78
, installCmd: "yum -y install epel-release && yum install -y --allowerasing"
131
79
, toolRequirements: "${{ needs.tool-output.outputs.rpm_tools }}"
132
- , DISTRO: "Unknown "
133
- , ARTIFACT: "x86_64-linux-rocky8 "
80
+ , DISTRO: "Rockylinux "
81
+ , ARTIFACT: "x86_64-linux-glibc "
134
82
, ADD_CABAL_ARGS: "--enable-split-sections"
135
83
},
136
84
{ image: "alpine:3.20"
137
85
, installCmd: "apk update && apk add"
138
86
, toolRequirements: "${{ needs.tool-output.outputs.apk_tools }}"
139
- , DISTRO: "Unknown "
140
- , ARTIFACT: "x86_64-linux-unknown "
87
+ , DISTRO: "Alpine "
88
+ , ARTIFACT: "x86_64-linux-musl-static "
141
89
, ADD_CABAL_ARGS: "--enable-split-sections --enable-executable-static"
142
- },
143
- { image: "alpine:3.12"
144
- , installCmd: "apk update && apk add"
145
- , toolRequirements: "${{ needs.tool-output.outputs.apk_tools }}"
146
- , DISTRO: "Unknown"
147
- , ARTIFACT: "x86_64-linux-alpine312"
148
- , ADD_CABAL_ARGS: "--enable-split-sections"
149
- },
150
- { image: "alpine:3.20"
151
- , installCmd: "apk update && apk add"
152
- , toolRequirements: "${{ needs.tool-output.outputs.apk_tools }}"
153
- , DISTRO: "Unknown"
154
- , ARTIFACT: "x86_64-linux-alpine320"
155
- , ADD_CABAL_ARGS: "--enable-split-sections"
156
90
}
157
91
]
158
92
container :
@@ -172,6 +106,19 @@ jobs:
172
106
with :
173
107
ref : ${{ matrix.branch }}
174
108
109
+ - name : install GMP
110
+ if : matrix.platform.DISTRO == 'Rockylinux'
111
+ run : |
112
+ set -eux
113
+
114
+ curl -O -L https://gmplib.org/download/gmp/gmp-${{ env.GMP_VERSION }}.tar.xz
115
+ tar xf gmp-${{ env.GMP_VERSION }}.tar.xz
116
+ cd gmp-${{ env.GMP_VERSION }}
117
+ CFLAGS=-fPIC ./configure --prefix=$HOME/.local/ --disable-shared
118
+ make install
119
+ cd ..
120
+ echo "extra-lib-dirs: $HOME/.local/lib/" >> cabal.release.project.local
121
+
175
122
- name : Run build
176
123
run : |
177
124
bash .github/scripts/build.bash
@@ -181,6 +128,14 @@ jobs:
181
128
DISTRO : ${{ matrix.platform.DISTRO }}
182
129
ADD_CABAL_ARGS : ${{ matrix.platform.ADD_CABAL_ARGS }}
183
130
131
+ - name : check linking
132
+ if : matrix.platform.DISTRO == 'Rockylinux'
133
+ run : |
134
+ cd out
135
+ tar xf *.${TARBALL_EXT}
136
+ ldd cabal | grep --quiet gmp && exit 1
137
+ rm cabal plan.json
138
+
184
139
- if : always()
185
140
name : Upload artifact
186
141
uses : ./.github/actions/upload
@@ -473,73 +428,91 @@ jobs:
473
428
, installCmd: "apt-get update && apt-get install -y"
474
429
, toolRequirements: "${{ needs.tool-output.outputs.apt_tools }}"
475
430
, DISTRO: "Debian"
476
- , ARTIFACT: "x86_64-linux-deb11 "
431
+ , ARTIFACT: "x86_64-linux-glibc "
477
432
},
478
433
{ image: "debian:12"
479
434
, installCmd: "apt-get update && apt-get install -y"
480
435
, toolRequirements: "${{ needs.tool-output.outputs.apt_tools }}"
481
436
, DISTRO: "Debian"
482
- , ARTIFACT: "x86_64-linux-deb12 "
437
+ , ARTIFACT: "x86_64-linux-glibc "
483
438
},
484
439
{ image: "ubuntu:20.04"
485
440
, installCmd: "apt-get update && apt-get install -y"
486
441
, toolRequirements: "${{ needs.tool-output.outputs.apt_tools }}"
487
442
, DISTRO: "Ubuntu"
488
- , ARTIFACT: "x86_64-linux-ubuntu20.04 "
443
+ , ARTIFACT: "x86_64-linux-glibc "
489
444
},
490
445
{ image: "ubuntu:22.04"
491
446
, installCmd: "apt-get update && apt-get install -y"
492
447
, toolRequirements: "${{ needs.tool-output.outputs.apt_tools }}"
493
448
, DISTRO: "Ubuntu"
494
- , ARTIFACT: "x86_64-linux-ubuntu22.04 "
449
+ , ARTIFACT: "x86_64-linux-glibc "
495
450
},
496
451
{ image: "ubuntu:24.04"
497
452
, installCmd: "apt-get update && apt-get install -y"
498
453
, toolRequirements: "${{ needs.tool-output.outputs.apt_tools_ncurses6 }}"
499
454
, DISTRO: "Ubuntu"
500
- , ARTIFACT: "x86_64-linux-ubuntu24.04"
455
+ , ARTIFACT: "x86_64-linux-glibc"
456
+ },
457
+ { image: "linuxmintd/mint20.3-amd64"
458
+ , installCmd: "apt-get update && apt-get install -y"
459
+ , toolRequirements: "${{ needs.tool-output.outputs.apt_tools }}"
460
+ , DISTRO: "Mint"
461
+ , ARTIFACT: "x86_64-linux-glibc"
462
+ },
463
+ { image: "linuxmintd/mint21.3-amd64"
464
+ , installCmd: "apt-get update && apt-get install -y"
465
+ , toolRequirements: "${{ needs.tool-output.outputs.apt_tools }}"
466
+ , DISTRO: "Mint"
467
+ , ARTIFACT: "x86_64-linux-glibc"
501
468
},
502
469
{ image: "fedora:33"
503
470
, installCmd: "dnf install -y"
504
471
, toolRequirements: "${{ needs.tool-output.outputs.rpm_tools }}"
505
472
, DISTRO: "Fedora"
506
- , ARTIFACT: "x86_64-linux-fedora33 "
473
+ , ARTIFACT: "x86_64-linux-glibc "
507
474
},
508
- { image: "fedora:36 "
475
+ { image: "fedora:37 "
509
476
, installCmd: "dnf install -y"
510
477
, toolRequirements: "${{ needs.tool-output.outputs.rpm_tools }}"
511
478
, DISTRO: "Fedora"
512
- , ARTIFACT: "x86_64-linux-fedora36 "
479
+ , ARTIFACT: "x86_64-linux-glibc "
513
480
},
514
- { image: "fedora:38 "
481
+ { image: "fedora:42 "
515
482
, installCmd: "dnf install -y"
516
483
, toolRequirements: "${{ needs.tool-output.outputs.rpm_tools }}"
517
484
, DISTRO: "Fedora"
518
- , ARTIFACT: "x86_64-linux-fedora38 "
485
+ , ARTIFACT: "x86_64-linux-glibc "
519
486
},
520
487
{ image: "rockylinux:8"
521
488
, installCmd: "yum -y install epel-release && yum install -y --allowerasing"
522
489
, toolRequirements: "${{ needs.tool-output.outputs.rpm_tools }}"
523
- , DISTRO: "Unknown"
524
- , ARTIFACT: "x86_64-linux-rocky8"
490
+ , DISTRO: "Rockylinux"
491
+ , ARTIFACT: "x86_64-linux-glibc"
492
+ },
493
+ { image: "rockylinux:9"
494
+ , installCmd: "yum -y install epel-release && yum install -y --allowerasing"
495
+ , toolRequirements: "${{ needs.tool-output.outputs.rpm_tools }}"
496
+ , DISTRO: "Rockylinux"
497
+ , ARTIFACT: "x86_64-linux-glibc"
525
498
},
526
499
{ image: "alpine:3.20"
527
500
, installCmd: "apk update && apk add"
528
501
, toolRequirements: "${{ needs.tool-output.outputs.apk_tools }}"
529
- , DISTRO: "Unknown "
530
- , ARTIFACT: "x86_64-linux-unknown "
502
+ , DISTRO: "Alpine "
503
+ , ARTIFACT: "x86_64-linux-musl-static "
531
504
},
532
505
{ image: "alpine:3.12"
533
506
, installCmd: "apk update && apk add"
534
507
, toolRequirements: "${{ needs.tool-output.outputs.apk_tools }}"
535
- , DISTRO: "Unknown "
536
- , ARTIFACT: "x86_64-linux-alpine312 "
508
+ , DISTRO: "Alpine "
509
+ , ARTIFACT: "x86_64-linux-musl-static "
537
510
},
538
- { image: "alpine:3.20 "
539
- , installCmd: "apk update && apk add "
540
- , toolRequirements: "${{ needs.tool-output.outputs.apk_tools }}"
511
+ { image: "ghcr.io/void-linux/void-glibc:latest "
512
+ , installCmd: "xbps-install -Suy xbps && xbps-install -Sy "
513
+ , toolRequirements: "${{ needs.tool-output.outputs.xbps_tools }}"
541
514
, DISTRO: "Unknown"
542
- , ARTIFACT: "x86_64-linux-alpine320 "
515
+ , ARTIFACT: "x86_64-linux-musl-static "
543
516
}
544
517
]
545
518
container :
0 commit comments