1414 ghc_targets :
1515 type : string
1616 default : " install_bin install_lib update_package_db"
17+ gmp :
18+ type : string
19+ default : 6.3.0
1720 cabal :
1821 type : string
1922 default : 3.14.2.0
2528 GHC_VERSION : ${{ inputs.ghc }}
2629 GHC_TARGETS : ${{ inputs.ghc_targets }}
2730 CABAL_VERSION : ${{ inputs.cabal }}
31+ GMP_VERSION : ${{ inputs.gmp }}
2832 BOOTSTRAP_HASKELL_NONINTERACTIVE : 1
2933 BOOTSTRAP_HASKELL_MINIMAL : 1
3034 DEBIAN_FRONTEND : noninteractive
@@ -65,89 +69,19 @@ jobs:
6569 fail-fast : false
6670 matrix :
6771 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"
12573 , installCmd: "yum -y install epel-release && yum install -y --allowerasing"
12674 , 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 "
12977 , ADD_CABAL_ARGS: "--enable-split-sections"
13078 },
13179 { image: "alpine:3.20"
13280 , installCmd: "apk update && apk add"
13381 , 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 "
13684 , 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"
15185 }
15286 ]
15387 container :
@@ -167,15 +101,35 @@ jobs:
167101 with :
168102 ref : ${{ matrix.branch }}
169103
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+
170117 - name : Run build
171118 run : |
172119 bash .github/scripts/build.sh
173-
174120 env :
175121 ARTIFACT : ${{ matrix.platform.ARTIFACT }}
176122 DISTRO : ${{ matrix.platform.DISTRO }}
177123 ADD_CABAL_ARGS : ${{ matrix.platform.ADD_CABAL_ARGS }}
178124
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+
179133 - if : always()
180134 name : Upload artifact
181135 uses : ./.github/actions/upload
@@ -460,6 +414,7 @@ jobs:
460414 env :
461415 TARBALL_EXT : tar.xz
462416 ARCH : 64
417+ ADD_CABAL_ARGS : " "
463418 strategy :
464419 fail-fast : false
465420 matrix :
@@ -468,85 +423,91 @@ jobs:
468423 , installCmd: "apt-get update && apt-get install -y"
469424 , toolRequirements: "${{ needs.tool-output.outputs.apt_tools }}"
470425 , DISTRO: "Debian"
471- , ARTIFACT: "x86_64-linux-deb11"
472- , ADD_CABAL_ARGS: "--enable-split-sections"
426+ , ARTIFACT: "x86_64-linux-glibc"
473427 },
474428 { image: "debian:12"
475429 , installCmd: "apt-get update && apt-get install -y"
476430 , toolRequirements: "${{ needs.tool-output.outputs.apt_tools }}"
477431 , DISTRO: "Debian"
478- , ARTIFACT: "x86_64-linux-deb12"
479- , ADD_CABAL_ARGS: "--enable-split-sections"
432+ , ARTIFACT: "x86_64-linux-glibc"
480433 },
481434 { image: "ubuntu:20.04"
482435 , installCmd: "apt-get update && apt-get install -y"
483436 , toolRequirements: "${{ needs.tool-output.outputs.apt_tools }}"
484437 , DISTRO: "Ubuntu"
485- , ARTIFACT: "x86_64-linux-ubuntu20.04"
486- , ADD_CABAL_ARGS: "--enable-split-sections"
438+ , ARTIFACT: "x86_64-linux-glibc"
487439 },
488440 { image: "ubuntu:22.04"
489441 , installCmd: "apt-get update && apt-get install -y"
490442 , toolRequirements: "${{ needs.tool-output.outputs.apt_tools }}"
491443 , DISTRO: "Ubuntu"
492- , ARTIFACT: "x86_64-linux-ubuntu22.04"
493- , ADD_CABAL_ARGS: "--enable-split-sections"
444+ , ARTIFACT: "x86_64-linux-glibc"
494445 },
495446 { image: "ubuntu:24.04"
496447 , installCmd: "apt-get update && apt-get install -y"
497448 , toolRequirements: "${{ needs.tool-output.outputs.apt_tools_ncurses6 }}"
498449 , 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"
501463 },
502464 { image: "fedora:33"
503465 , installCmd: "dnf install -y"
504466 , toolRequirements: "${{ needs.tool-output.outputs.rpm_tools }}"
505467 , DISTRO: "Fedora"
506- , ARTIFACT: "x86_64-linux-fedora33"
507- , ADD_CABAL_ARGS: "--enable-split-sections"
468+ , ARTIFACT: "x86_64-linux-glibc"
508469 },
509- { image: "fedora:36 "
470+ { image: "fedora:37 "
510471 , installCmd: "dnf install -y"
511472 , toolRequirements: "${{ needs.tool-output.outputs.rpm_tools }}"
512473 , DISTRO: "Fedora"
513- , ARTIFACT: "x86_64-linux-fedora36"
514- , ADD_CABAL_ARGS: "--enable-split-sections"
474+ , ARTIFACT: "x86_64-linux-glibc"
515475 },
516- { image: "fedora:38 "
476+ { image: "fedora:42 "
517477 , installCmd: "dnf install -y"
518478 , toolRequirements: "${{ needs.tool-output.outputs.rpm_tools }}"
519479 , DISTRO: "Fedora"
520- , ARTIFACT: "x86_64-linux-fedora38"
521- , ADD_CABAL_ARGS: "--enable-split-sections"
480+ , ARTIFACT: "x86_64-linux-glibc"
522481 },
523482 { image: "rockylinux:8"
524483 , installCmd: "yum -y install epel-release && yum install -y --allowerasing"
525484 , 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"
529493 },
530494 { image: "alpine:3.20"
531495 , installCmd: "apk update && apk add"
532496 , 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"
536499 },
537500 { image: "alpine:3.12"
538501 , installCmd: "apk update && apk add"
539502 , 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"
543505 },
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 }}"
547509 , DISTRO: "Unknown"
548- , ARTIFACT: "x86_64-linux-alpine320"
549- , ADD_CABAL_ARGS: "--enable-split-sections"
510+ , ARTIFACT: "x86_64-linux-musl-static"
550511 }
551512 ]
552513 container :
0 commit comments