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
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
@@ -462,6 +416,7 @@ jobs:
462
416
ARCH : 64
463
417
GHC_VERSION : 9.6.7
464
418
GHC_TARGETS : " install_bin install_lib update_package_db"
419
+ ADD_CABAL_ARGS : " "
465
420
strategy :
466
421
fail-fast : false
467
422
matrix :
@@ -470,85 +425,91 @@ jobs:
470
425
, installCmd: "apt-get update && apt-get install -y"
471
426
, toolRequirements: "${{ needs.tool-output.outputs.apt_tools }}"
472
427
, DISTRO: "Debian"
473
- , ARTIFACT: "x86_64-linux-deb11"
474
- , ADD_CABAL_ARGS: "--enable-split-sections"
428
+ , ARTIFACT: "x86_64-linux-glibc"
475
429
},
476
430
{ image: "debian:12"
477
431
, installCmd: "apt-get update && apt-get install -y"
478
432
, toolRequirements: "${{ needs.tool-output.outputs.apt_tools }}"
479
433
, DISTRO: "Debian"
480
- , ARTIFACT: "x86_64-linux-deb12"
481
- , ADD_CABAL_ARGS: "--enable-split-sections"
434
+ , ARTIFACT: "x86_64-linux-glibc"
482
435
},
483
436
{ image: "ubuntu:20.04"
484
437
, installCmd: "apt-get update && apt-get install -y"
485
438
, toolRequirements: "${{ needs.tool-output.outputs.apt_tools }}"
486
439
, DISTRO: "Ubuntu"
487
- , ARTIFACT: "x86_64-linux-ubuntu20.04"
488
- , ADD_CABAL_ARGS: "--enable-split-sections"
440
+ , ARTIFACT: "x86_64-linux-glibc"
489
441
},
490
442
{ image: "ubuntu:22.04"
491
443
, installCmd: "apt-get update && apt-get install -y"
492
444
, toolRequirements: "${{ needs.tool-output.outputs.apt_tools }}"
493
445
, DISTRO: "Ubuntu"
494
- , ARTIFACT: "x86_64-linux-ubuntu22.04"
495
- , ADD_CABAL_ARGS: "--enable-split-sections"
446
+ , ARTIFACT: "x86_64-linux-glibc"
496
447
},
497
448
{ image: "ubuntu:24.04"
498
449
, installCmd: "apt-get update && apt-get install -y"
499
450
, toolRequirements: "${{ needs.tool-output.outputs.apt_tools_ncurses6 }}"
500
451
, DISTRO: "Ubuntu"
501
- , ARTIFACT: "x86_64-linux-ubuntu24.04"
502
- , ADD_CABAL_ARGS: "--enable-split-sections"
452
+ , ARTIFACT: "x86_64-linux-glibc"
453
+ },
454
+ { image: "linuxmintd/mint20.3-amd64"
455
+ , installCmd: "apt-get update && apt-get install -y"
456
+ , toolRequirements: "${{ needs.tool-output.outputs.apt_tools }}"
457
+ , DISTRO: "Mint"
458
+ , ARTIFACT: "x86_64-linux-glibc"
459
+ },
460
+ { image: "linuxmintd/mint21.3-amd64"
461
+ , installCmd: "apt-get update && apt-get install -y"
462
+ , toolRequirements: "${{ needs.tool-output.outputs.apt_tools }}"
463
+ , DISTRO: "Mint"
464
+ , ARTIFACT: "x86_64-linux-glibc"
503
465
},
504
466
{ image: "fedora:33"
505
467
, installCmd: "dnf install -y"
506
468
, toolRequirements: "${{ needs.tool-output.outputs.rpm_tools }}"
507
469
, DISTRO: "Fedora"
508
- , ARTIFACT: "x86_64-linux-fedora33"
509
- , ADD_CABAL_ARGS: "--enable-split-sections"
470
+ , ARTIFACT: "x86_64-linux-glibc"
510
471
},
511
- { image: "fedora:36 "
472
+ { image: "fedora:37 "
512
473
, installCmd: "dnf install -y"
513
474
, toolRequirements: "${{ needs.tool-output.outputs.rpm_tools }}"
514
475
, DISTRO: "Fedora"
515
- , ARTIFACT: "x86_64-linux-fedora36"
516
- , ADD_CABAL_ARGS: "--enable-split-sections"
476
+ , ARTIFACT: "x86_64-linux-glibc"
517
477
},
518
- { image: "fedora:38 "
478
+ { image: "fedora:42 "
519
479
, installCmd: "dnf install -y"
520
480
, toolRequirements: "${{ needs.tool-output.outputs.rpm_tools }}"
521
481
, DISTRO: "Fedora"
522
- , ARTIFACT: "x86_64-linux-fedora38"
523
- , ADD_CABAL_ARGS: "--enable-split-sections"
482
+ , ARTIFACT: "x86_64-linux-glibc"
524
483
},
525
484
{ image: "rockylinux:8"
526
485
, installCmd: "yum -y install epel-release && yum install -y --allowerasing"
527
486
, toolRequirements: "${{ needs.tool-output.outputs.rpm_tools }}"
528
- , DISTRO: "Unknown"
529
- , ARTIFACT: "x86_64-linux-rocky8"
530
- , ADD_CABAL_ARGS: "--enable-split-sections"
487
+ , DISTRO: "Rockylinux"
488
+ , ARTIFACT: "x86_64-linux-glibc"
489
+ },
490
+ { image: "rockylinux:9"
491
+ , installCmd: "yum -y install epel-release && yum install -y --allowerasing"
492
+ , toolRequirements: "${{ needs.tool-output.outputs.rpm_tools }}"
493
+ , DISTRO: "Rockylinux"
494
+ , ARTIFACT: "x86_64-linux-glibc"
531
495
},
532
496
{ image: "alpine:3.20"
533
497
, installCmd: "apk update && apk add"
534
498
, toolRequirements: "${{ needs.tool-output.outputs.apk_tools }}"
535
- , DISTRO: "Unknown"
536
- , ARTIFACT: "x86_64-linux-unknown"
537
- , ADD_CABAL_ARGS: "--enable-split-sections --enable-executable-static"
499
+ , DISTRO: "Alpine"
500
+ , ARTIFACT: "x86_64-linux-musl-static"
538
501
},
539
502
{ image: "alpine:3.12"
540
503
, installCmd: "apk update && apk add"
541
504
, toolRequirements: "${{ needs.tool-output.outputs.apk_tools }}"
542
- , DISTRO: "Unknown"
543
- , ARTIFACT: "x86_64-linux-alpine312"
544
- , ADD_CABAL_ARGS: "--enable-split-sections"
505
+ , DISTRO: "Alpine"
506
+ , ARTIFACT: "x86_64-linux-musl-static"
545
507
},
546
- { image: "alpine:3.20 "
547
- , installCmd: "apk update && apk add "
548
- , toolRequirements: "${{ needs.tool-output.outputs.apk_tools }}"
508
+ { image: "ghcr.io/void-linux/void-glibc:latest "
509
+ , installCmd: "xbps-install -Suy xbps && xbps-install -Sy "
510
+ , toolRequirements: "${{ needs.tool-output.outputs.xbps_tools }}"
549
511
, DISTRO: "Unknown"
550
- , ARTIFACT: "x86_64-linux-alpine320"
551
- , ADD_CABAL_ARGS: "--enable-split-sections"
512
+ , ARTIFACT: "x86_64-linux-musl-static"
552
513
}
553
514
]
554
515
container :
0 commit comments