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