1414 ghc_targets :
1515 type : string
1616 default : " install_bin install_lib update_package_db install_extra"
17+ gmp :
18+ type : string
19+ default : 6.3.0
1720 cabal :
1821 type : string
1922 default : 3.14.2.0
3033 GHC_TEST_VERSION : 9.6.7
3134 GHC_TEST_TARGETS : " install_bin install_lib update_package_db"
3235 CABAL_VERSION : ${{ inputs.cabal }}
36+ GMP_VERSION : ${{ inputs.gmp }}
3337 BOOTSTRAP_HASKELL_NONINTERACTIVE : 1
3438 BOOTSTRAP_HASKELL_MINIMAL : 1
3539 DEBIAN_FRONTEND : noninteractive
@@ -70,89 +74,19 @@ jobs:
7074 fail-fast : false
7175 matrix :
7276 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"
13078 , installCmd: "yum -y install epel-release && yum install -y --allowerasing"
13179 , 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 "
13482 , ADD_CABAL_ARGS: "--enable-split-sections"
13583 },
13684 { image: "alpine:3.20"
13785 , installCmd: "apk update && apk add"
13886 , 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 "
14189 , 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"
15690 }
15791 ]
15892 container :
@@ -172,6 +106,19 @@ jobs:
172106 with :
173107 ref : ${{ matrix.branch }}
174108
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+
175122 - name : Run build
176123 run : |
177124 bash .github/scripts/build.bash
@@ -181,6 +128,14 @@ jobs:
181128 DISTRO : ${{ matrix.platform.DISTRO }}
182129 ADD_CABAL_ARGS : ${{ matrix.platform.ADD_CABAL_ARGS }}
183130
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+
184139 - if : always()
185140 name : Upload artifact
186141 uses : ./.github/actions/upload
@@ -473,73 +428,91 @@ jobs:
473428 , installCmd: "apt-get update && apt-get install -y"
474429 , toolRequirements: "${{ needs.tool-output.outputs.apt_tools }}"
475430 , DISTRO: "Debian"
476- , ARTIFACT: "x86_64-linux-deb11 "
431+ , ARTIFACT: "x86_64-linux-glibc "
477432 },
478433 { image: "debian:12"
479434 , installCmd: "apt-get update && apt-get install -y"
480435 , toolRequirements: "${{ needs.tool-output.outputs.apt_tools }}"
481436 , DISTRO: "Debian"
482- , ARTIFACT: "x86_64-linux-deb12 "
437+ , ARTIFACT: "x86_64-linux-glibc "
483438 },
484439 { image: "ubuntu:20.04"
485440 , installCmd: "apt-get update && apt-get install -y"
486441 , toolRequirements: "${{ needs.tool-output.outputs.apt_tools }}"
487442 , DISTRO: "Ubuntu"
488- , ARTIFACT: "x86_64-linux-ubuntu20.04 "
443+ , ARTIFACT: "x86_64-linux-glibc "
489444 },
490445 { image: "ubuntu:22.04"
491446 , installCmd: "apt-get update && apt-get install -y"
492447 , toolRequirements: "${{ needs.tool-output.outputs.apt_tools }}"
493448 , DISTRO: "Ubuntu"
494- , ARTIFACT: "x86_64-linux-ubuntu22.04 "
449+ , ARTIFACT: "x86_64-linux-glibc "
495450 },
496451 { image: "ubuntu:24.04"
497452 , installCmd: "apt-get update && apt-get install -y"
498453 , toolRequirements: "${{ needs.tool-output.outputs.apt_tools_ncurses6 }}"
499454 , 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"
501468 },
502469 { image: "fedora:33"
503470 , installCmd: "dnf install -y"
504471 , toolRequirements: "${{ needs.tool-output.outputs.rpm_tools }}"
505472 , DISTRO: "Fedora"
506- , ARTIFACT: "x86_64-linux-fedora33 "
473+ , ARTIFACT: "x86_64-linux-glibc "
507474 },
508- { image: "fedora:36 "
475+ { image: "fedora:37 "
509476 , installCmd: "dnf install -y"
510477 , toolRequirements: "${{ needs.tool-output.outputs.rpm_tools }}"
511478 , DISTRO: "Fedora"
512- , ARTIFACT: "x86_64-linux-fedora36 "
479+ , ARTIFACT: "x86_64-linux-glibc "
513480 },
514- { image: "fedora:38 "
481+ { image: "fedora:42 "
515482 , installCmd: "dnf install -y"
516483 , toolRequirements: "${{ needs.tool-output.outputs.rpm_tools }}"
517484 , DISTRO: "Fedora"
518- , ARTIFACT: "x86_64-linux-fedora38 "
485+ , ARTIFACT: "x86_64-linux-glibc "
519486 },
520487 { image: "rockylinux:8"
521488 , installCmd: "yum -y install epel-release && yum install -y --allowerasing"
522489 , 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"
525498 },
526499 { image: "alpine:3.20"
527500 , installCmd: "apk update && apk add"
528501 , 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 "
531504 },
532505 { image: "alpine:3.12"
533506 , installCmd: "apk update && apk add"
534507 , 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 "
537510 },
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 }}"
541514 , DISTRO: "Unknown"
542- , ARTIFACT: "x86_64-linux-alpine320 "
515+ , ARTIFACT: "x86_64-linux-musl-static "
543516 }
544517 ]
545518 container :
0 commit comments