Skip to Content.
Sympa Menu

sm-commit - [[SM-Commit] ] GIT changes to master grimoire by Ismael Luceno (751d4ba8359317714cc22c56aa65c6e79b94be49)

sm-commit AT lists.ibiblio.org

Subject: Source Mage code commit list

List archive

Chronological Thread  
  • From: Ismael Luceno <scm AT sourcemage.org>
  • To: sm-commit AT lists.ibiblio.org, sm-commit AT lists.sourcemage.org
  • Subject: [[SM-Commit] ] GIT changes to master grimoire by Ismael Luceno (751d4ba8359317714cc22c56aa65c6e79b94be49)
  • Date: Sat, 15 Aug 2026 17:39:42 +0000

GIT changes to master grimoire by Ismael Luceno <ismael AT sourcemage.org>:

devel/ghc/BUILD | 58
+++++++++++++++++++++--------------------------
devel/ghc/CONFIGURE | 4 ---
devel/ghc/DETAILS | 51 +++++++++++++++++++++++++----------------
devel/ghc/HISTORY | 14 +++++++++++
devel/ghc/INSTALL | 10 ++++++--
devel/ghc/POST_RESURRECT | 13 +++++-----
devel/ghc/PRE_BUILD | 24 +++++--------------
devel/ghc/PRE_RESURRECT | 13 +++++-----
devel/ghc/UP_TRIGGERS | 4 +--
9 files changed, 103 insertions(+), 88 deletions(-)

New commits:
commit 751d4ba8359317714cc22c56aa65c6e79b94be49
Author: Ismael Luceno <ismael AT sourcemage.org>
Commit: Ismael Luceno <ismael AT sourcemage.org>

ghc 9.12.4

diff --git a/devel/ghc/BUILD b/devel/ghc/BUILD
index 9b157f2..55eb696 100755
--- a/devel/ghc/BUILD
+++ b/devel/ghc/BUILD
@@ -1,15 +1,3 @@
-GHC_DIR=/usr/bin
-
-echo "BuildFlavour = perf" >> "${SPELL}-${VERSION}/mk/build.mk" &&
-echo "V = 0" >> "${SPELL}-${VERSION}/mk/build.mk" &&
-echo "XSLTPROC_OPTS += --nonet" >> "${SPELL}-${VERSION}/mk/build.mk" &&
-echo "BUILD_SPHINX_HTML = NO" >> "${SPELL}-${VERSION}/mk/build.mk" &&
-echo "BUILD_SPHINX_PDF = NO" >> "${SPELL}-${VERSION}/mk/build.mk" &&
-
-if [[ -x ${INSTALL_ROOT}/usr/bin/ghc-pkg-7.2.1 ]]; then
- ghc-pkg-7.2.1 trust base
-fi &&
-
# ld.gold and ld.lld are chosen first, but don't support -z{,no}separate-code
if type ld.gold || type ld.lld; then
case "$LD" in
@@ -22,24 +10,32 @@ if type ld.gold || type ld.lld; then
esac
fi > /dev/null

-if ! spell_ok "$SPELL"; then
- cd ghc-bin &&
- ./configure --prefix=${SOURCE_DIRECTORY}/ghc-bin-installed &&
- if [ "$(uname -m)" == x86_64 ]; then
- echo 'SplitObjs = NO' >> ../$SPELL-$VERSION/mk/build.mk
- fi &&
- make install &&
- GHC_DIR=${SOURCE_DIRECTORY}/ghc-bin-installed/bin &&
- cd ..
-fi &&
+cd $SOURCE_DIRECTORY/ghc-bin &&
+./configure --prefix=$SOURCE_DIRECTORY/ghc-bin-installed &&
+make install &&
+
+BOOT_GHC=$SOURCE_DIRECTORY/ghc-bin-installed/bin/ghc &&
+
+# bootstrap.py always builds into ./_build, so give it a directory of its
own;
+# it finds the in-tree packages relative to the script, not to $PWD. With
the
+# sources tarball it neither needs the network nor cabal-install.
+mkdir -p $SOURCE_DIRECTORY/hadrian-boot &&
+cd $SOURCE_DIRECTORY/hadrian-boot &&
+python3 $SOURCE_DIRECTORY/$SPELL-$VERSION/hadrian/bootstrap/bootstrap.py \
+ --no-archive \
+ -w $BOOT_GHC \
+ -s $SOURCE_CACHE/$SOURCE3 &&
+
+cd $SOURCE_DIRECTORY/$SPELL-$VERSION &&

-cd $SPELL-$VERSION &&
+# Only --prefix and --with-ghc matter here; Hadrian installs through the
+# binary distribution's own configure, which is run again in INSTALL.
+./configure --prefix=${INSTALL_ROOT}/usr \
+ --with-ghc=$BOOT_GHC \
+ $OPTS &&

-./configure --prefix=${INSTALL_ROOT}/usr \
- --sysconfdir=${INSTALL_ROOT}/etc \
- --localstatedir=${INSTALL_ROOT}/var \
- --mandir=${INSTALL_ROOT}/usr/share/man \
- --infodir=${INSTALL_ROOT}/usr/share/info \
- --with-ghc=$GHC_DIR/ghc \
- $OPTS &&
-default_build_make
+$SOURCE_DIRECTORY/hadrian-boot/_build/bin/hadrian \
+ -j$MAKE_NJOBS \
+ --flavour=perf \
+ --docs=none \
+ binary-dist-dir
diff --git a/devel/ghc/CONFIGURE b/devel/ghc/CONFIGURE
deleted file mode 100755
index 8bfa193..0000000
--- a/devel/ghc/CONFIGURE
+++ /dev/null
@@ -1,4 +0,0 @@
-message "${MESSAGE_COLOR}GHC's build procedure takes a fair amount of time.
-It's possible to speed up build by disabling optimisations,
-but the resulting compiler will be slower!${DEFAULT_COLOR}"
-config_query GHC_NO_OPTS "Disable optimisations?" n
diff --git a/devel/ghc/DETAILS b/devel/ghc/DETAILS
index 64d10d0..4c511f5 100755
--- a/devel/ghc/DETAILS
+++ b/devel/ghc/DETAILS
@@ -1,35 +1,46 @@
SPELL=ghc
- VERSION=8.6.5
+ VERSION=9.12.4
+ BOOT_VERSION=9.10.1
SOURCE=$SPELL-$VERSION-src.tar.xz
SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELL-$VERSION
- SOURCE_URL[0]=http://downloads.haskell.org/~$SPELL/$VERSION/$SOURCE
-
SOURCE_HASH=sha512:c08a7480200cb99e1ffbe4ce7669f552b1054054966f7e7efcbc5f98af8032e1249fa391c4fc4c7d62cc8e0be5d17fa05845177f3cea3dbcf86e6c92d40fc0f9
-if ! spell_ok "$SPELL"; then
- ARCH="${BUILD%%-*}"; case "$ARCH" in i?86) ARCH=i386;; esac
+ SOURCE_URL[0]=https://downloads.haskell.org/~$SPELL/$VERSION/$SOURCE
+
SOURCE_HASH=sha256:02d1ee5080acf00e135b93b238f09015b06ff27254cde59669cf57c42c2bee43
case "$BUILD" in
-*-linux-gnu)
- SOURCE2="$SPELL-$VERSION-$ARCH-deb9-linux.tar.xz"
- SOURCE2_URL=("http://downloads.haskell.org/~$SPELL/$VERSION/$SOURCE2";)
- ;&
-x86_64-*-linux-gnu)
-
SOURCE2_HASH=sha512:6e1d17ea69d313d7023985759ac28c87b620ea6fac59b92f298467e0b8a501ca6a9ba6e0107d6b27d3976be1da724e7e8b1625e7b99be4045f319a916d0ab711
+(x86_64-*-linux-musl)
+ BOOT_PLATFORM=x86_64-alpine3_18-linux
+
BOOT_HASH=d556a6be67ad02000f97c08ef615b7392416e01d64596e7c718df98196520999
;;
-*-linux-musl)
- SOURCE2="$SPELL-$VERSION-$ARCH-void-linux-musl.tar.xz"
- SOURCE2_URL=("https://alpha.de.repo.voidlinux.org/distfiles/$SOURCE2";)
- ;&
-x86_64-*-linux-musl)
-
SOURCE2_HASH=sha512:5a9d2832ef5fe581316c2d858548a0b41592dd1b596ffe68ef9bf49e94b428d2771cf6b2c876f57e46893171d46f48c367ac13d75d9dde28072233d5f18dd96e
+(aarch64-*-linux-musl)
+ BOOT_PLATFORM=aarch64-alpine3_18-linux
+
BOOT_HASH=6ad63714932c8acd9ed85ac1bacd31a27c888f259dd0d95a70d143dfd25fd863
+ ;;
+(x86_64-*-linux-gnu)
+ BOOT_PLATFORM=x86_64-deb11-linux
+
BOOT_HASH=78975575b8125ecf1f50f78b1016b14ea6e87abbf1fc39797af469d029c5d737
+ ;;
+(aarch64-*-linux-gnu)
+ BOOT_PLATFORM=aarch64-deb11-linux
+
BOOT_HASH=1db449c445d34779d4deaba22341576f7b512a05b6c2b5cb64f3846d1509714e
+ ;;
+(i?86-*-linux-gnu)
+ BOOT_PLATFORM=i386-deb10-linux
+
BOOT_HASH=5367e692dd9efd9062846334ec6aeeddf186c01b1551b3207649a2ce16f4df76
;;
esac
-fi
+ SOURCE2=$SPELL-$BOOT_VERSION-$BOOT_PLATFORM.tar.xz
+
SOURCE2_URL=("https://downloads.haskell.org/~$SPELL/$BOOT_VERSION/$SOURCE2";)
+ SOURCE2_HASH=sha256:$BOOT_HASH
+
+ SOURCE3=hadrian-bootstrap-sources-$BOOT_VERSION.tar.gz
+
SOURCE3_URL=("https://downloads.haskell.org/~$SPELL/$VERSION/hadrian-bootstrap-sources/$SOURCE3";)
+
SOURCE3_HASH=sha256:92b3c72c56cafe07032f0f9e907fb6d7a5306298798c28314ac2e19f2876315a
TMPFS=off
LICENSE[0]=BSD
- WEB_SITE=http://www.haskell.org/ghc/
+ WEB_SITE=https://www.haskell.org/ghc/
ENTERED=20041221
KEYWORDS="compiler devel"
SHORT="The Glasgow Haskell compiler"
cat << EOF
-GHC is a state-of-the-art, open source, compiler and interactive
+GHC is a state-of-the-art, open source, compiler and interactive
environment for the functional language Haskell.
EOF
diff --git a/devel/ghc/HISTORY b/devel/ghc/HISTORY
index 09c7c8c..38a432f 100644
--- a/devel/ghc/HISTORY
+++ b/devel/ghc/HISTORY
@@ -1,3 +1,17 @@
+2026-08-15 Ismael Luceno <ismael AT sourcemage.org>
+ * DETAILS: version 9.12.4
+ Bootstrap from a 9.10.1 binary distribution unconditionally, and
+ added the Hadrian bootstrap sources
+ * BUILD, INSTALL, PRE_BUILD: Switched to Hadrian; the make build
+ system was removed upstream in 9.6
+ * PRE_BUILD: Dropped the boot run and the mk/build.mk edits, source
+ distributions ship booted
+ * BUILD: Dropped the ghc-pkg-7.2.1 and SplitObjs workarounds
+ * INSTALL: Install the staged binary distribution directly
+ * PRE_RESURRECT, POST_RESURRECT: Fixed for the package.conf.d
+ database, package.conf has not existed since 6.12
+ * CONFIGURE: removed
+
2019-08-27 Ismael Luceno <ismael AT sourcemage.org>
* DEPENDS: Fixed ffi flag

diff --git a/devel/ghc/INSTALL b/devel/ghc/INSTALL
index 1ccc2d4..987862b 100755
--- a/devel/ghc/INSTALL
+++ b/devel/ghc/INSTALL
@@ -1,2 +1,8 @@
-cd "$SOURCE_DIRECTORY/$SPELL-$VERSION" &&
-default_install
+# Install the binary distribution BUILD staged. Hadrian has an `install'
+# target, but it re-enters the build system, and INSTALL runs in a separate
+# delve process that does not see BUILD's variables -- any disagreement over
+# the flavour would rebuild the whole compiler. This is what that target
does
+# anyway. Needs GNU make, as in BUILD.
+cd $SOURCE_DIRECTORY/$SPELL-$VERSION/_build/bindist/$SPELL-$VERSION-* &&
+./configure --prefix=${INSTALL_ROOT}/usr &&
+make install
diff --git a/devel/ghc/POST_RESURRECT b/devel/ghc/POST_RESURRECT
index 8b7998d..2919d43 100755
--- a/devel/ghc/POST_RESURRECT
+++ b/devel/ghc/POST_RESURRECT
@@ -1,7 +1,8 @@
-# We need to restore package.conf and package.conf.old after resurrection.
+# We need to restore the package database after resurrection.

-message "${MESSAGE_COLOR}Restoring package.conf and
package.conf.old...${DEFAULT_COLOR}"
-GHC_VERSION=$(ghc --version | tr -d ' ,[:alpha:]')
-GHC_DIR=${INSTALL_ROOT}/usr/lib/ghc-${GHC_VERSION}
-mv -v ${GHC_DIR}/package.conf.bak ${GHC_DIR}/package.conf
-mv -v ${GHC_DIR}/package.conf.old.bak ${GHC_DIR}/package.conf.old
+message "${MESSAGE_COLOR}Restoring the package database...${DEFAULT_COLOR}"
+GHC_VERSION=$(ghc --numeric-version)
+GHC_DIR=${INSTALL_ROOT}/usr/lib/ghc-${GHC_VERSION}/lib
+rm -rf ${GHC_DIR}/package.conf.d
+mv -v ${GHC_DIR}/package.conf.d.bak ${GHC_DIR}/package.conf.d
+ghc-pkg recache
diff --git a/devel/ghc/PRE_BUILD b/devel/ghc/PRE_BUILD
index 0678403..4a02781 100755
--- a/devel/ghc/PRE_BUILD
+++ b/devel/ghc/PRE_BUILD
@@ -9,21 +9,11 @@ fi &&
mk_source_dir $SOURCE_DIRECTORY &&
cd $SOURCE_DIRECTORY &&

-if ! spell_ok "$SPELL"; then
- unpack_file 2 &&
- mv "$SPELL-$VERSION" ghc-bin
-fi &&
+# The bootstrap compiler unpacks as ghc-$BOOT_VERSION-<target platform>,
which
+# is not the platform name its tarball is published under.
+unpack_file 2 &&
+mv $SPELL-$BOOT_VERSION-* ghc-bin &&

-unpack_file &&
-
-cd ${SOURCE_DIRECTORY}/${SPELL}-${VERSION} &&
-
-if [[ $GHC_NO_OPTS == "y" ]] ; then
- echo "BuildFlavour = quickest" > mk/build.mk.settings
-else
- echo "BuildFlavour = perf" > mk/build.mk.settings
-fi &&
-
-cat mk/build.mk.{settings,sample} > mk/build.mk &&
-
-python3 boot
+# Source distributions are shipped already booted: no boot script, no
+# mk/build.mk, and the Alex/Happy output is pre-generated.
+unpack_file
diff --git a/devel/ghc/PRE_RESURRECT b/devel/ghc/PRE_RESURRECT
index 96595c8..1c5e3b6 100755
--- a/devel/ghc/PRE_RESURRECT
+++ b/devel/ghc/PRE_RESURRECT
@@ -1,7 +1,8 @@
-# We need to backup package.conf and package.conf.old before resurrection
+# We need to backup the package database before resurrection. Since 6.12 it
+# is a directory of .conf files, not the old package.conf/package.conf.old
pair.

-message "${MESSAGE_COLOR}Backuping package.conf and
package.conf.old...${DEFAULT_COLOR}"
-GHC_VERSION=$(ghc --version | tr -d ' ,[:alpha:]')
-GHC_DIR=${INSTALL_ROOT}/usr/lib/ghc-${GHC_VERSION}
-cp -v ${GHC_DIR}/package.conf ${GHC_DIR}/package.conf.bak
-cp -v ${GHC_DIR}/package.conf.old ${GHC_DIR}/package.conf.old.bak
+message "${MESSAGE_COLOR}Backuping the package database...${DEFAULT_COLOR}"
+GHC_VERSION=$(ghc --numeric-version)
+GHC_DIR=${INSTALL_ROOT}/usr/lib/ghc-${GHC_VERSION}/lib
+rm -rf ${GHC_DIR}/package.conf.d.bak
+cp -av ${GHC_DIR}/package.conf.d ${GHC_DIR}/package.conf.d.bak
diff --git a/devel/ghc/UP_TRIGGERS b/devel/ghc/UP_TRIGGERS
index 2780b0d..9e4dd2f 100755
--- a/devel/ghc/UP_TRIGGERS
+++ b/devel/ghc/UP_TRIGGERS
@@ -1,7 +1,7 @@
-# up_trigger every library on every cast to keep package.conf in actual state
+# up_trigger every library on every cast to keep the package db in actual
state

if spell_ok $SPELL; then
- message "Every time ghc is rebuilt it overwrites package.conf :("
+ message "Every time ghc is rebuilt it overwrites the package database :("
message "Figuring out what spells need to be recast, this may take a
while."
for each in $(show_up_depends $SPELL); do
# Check in the install logs if haskell packages has been installed


  • [[SM-Commit] ] GIT changes to master grimoire by Ismael Luceno (751d4ba8359317714cc22c56aa65c6e79b94be49), Ismael Luceno, 08/15/2026

Archive powered by MHonArc 2.6.24.

Top of Page