From 649e766baeac0a68091539b9978492fdda230e84 Mon Sep 17 00:00:00 2001 From: Jens Petersen Date: Sun, 12 Nov 2023 22:57:20 +0800 Subject: [PATCH 1/5] make stack-symlink-distro-ghc executable --- haskell-platform.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/haskell-platform.spec b/haskell-platform.spec index de59325..aa29ce0 100644 --- a/haskell-platform.spec +++ b/haskell-platform.spec @@ -24,7 +24,7 @@ Name: haskell-platform Version: 2022.1 -Release: 20%{?dist} +Release: 21%{?dist} Summary: Standard Haskell distribution License: BSD @@ -258,7 +258,7 @@ echo %{_bindir}/haskell-mustache >> %{mustache}/ghc-mustache.files mkdir -p %{buildroot}%{_datadir}/bash-completion/completions/ %{buildroot}%{_bindir}/stack --bash-completion-script stack | sed s/filenames/default/ > %{buildroot}%{_datadir}/bash-completion/completions/stack -install -p -m 644 %{SOURCE20} %{buildroot}%{_bindir}/stack-symlink-distro-ghc +install -p %{SOURCE20} %{buildroot}%{_bindir}/stack-symlink-distro-ghc %files @@ -275,6 +275,9 @@ install -p -m 644 %{SOURCE20} %{buildroot}%{_bindir}/stack-symlink-distro-ghc %changelog +* Sun Nov 12 2023 Jens Petersen - 2022.1-21 +- make stack-symlink-distro-ghc executable + * Thu Jul 21 2022 Fedora Release Engineering - 2022.1-20 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild From 416302fefaea0cd0547fa897a129c4646d5bc290 Mon Sep 17 00:00:00 2001 From: Jens Petersen Date: Mon, 8 Jul 2024 22:02:21 +0800 Subject: [PATCH 2/5] patch stack setup for ppc64le and s390 (backport) To avoid: I don't know how to install GHC for (Linux,PPC64), please install manually --- haskell-platform.spec | 9 +++++++-- stack-Setup-Platforms.patch | 11 +++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 stack-Setup-Platforms.patch diff --git a/haskell-platform.spec b/haskell-platform.spec index aa29ce0..7fae33e 100644 --- a/haskell-platform.spec +++ b/haskell-platform.spec @@ -24,7 +24,7 @@ Name: haskell-platform Version: 2022.1 -Release: 21%{?dist} +Release: 22%{?dist} Summary: Standard Haskell distribution License: BSD @@ -48,6 +48,8 @@ Source13: https://hackage.haskell.org/package/%{casatypes}/%{casatypes}.ta Source20: stack-symlink-distro-ghc # End cabal-rpm sources Patch0: stack-2.7.5-ghc-Cabal-version-warnings.patch +# https://github.com/commercialhaskell/stack/issues/6379 +Patch2: stack-Setup-Platforms.patch BuildRequires: ghc BuildRequires: alex @@ -235,7 +237,7 @@ Stack is a cross-platform program for developing Haskell projects. # Begin cabal-rpm setup: %setup -q -c -a1 -a2 -a3 -a4 -a5 -a6 -a7 -a8 -a9 -a10 -a11 -a12 -a13 # End cabal-rpm setup -%patch0 -p0 -b .orig +%autopatch -p0 %build @@ -275,6 +277,9 @@ install -p %{SOURCE20} %{buildroot}%{_bindir}/stack-symlink-distro-ghc %changelog +* Mon Jul 8 2024 Jens Petersen - 2022.1-22 +- patch stack setup for ppc64le and s390x + * Sun Nov 12 2023 Jens Petersen - 2022.1-21 - make stack-symlink-distro-ghc executable diff --git a/stack-Setup-Platforms.patch b/stack-Setup-Platforms.patch new file mode 100644 index 0000000..110f151 --- /dev/null +++ b/stack-Setup-Platforms.patch @@ -0,0 +1,11 @@ +--- stack-2.7.5/src/Stack/Setup.hs~ 2024-07-08 21:24:36.825860660 +0800 ++++ stack-2.7.5/src/Stack/Setup.hs 2024-07-08 21:26:16.500759387 +0800 +@@ -1261,6 +1261,8 @@ + Platform Sparc Cabal.Linux -> return "linux-sparc" + Platform AArch64 Cabal.OSX -> return "macosx-aarch64" + Platform AArch64 Cabal.FreeBSD -> return "freebsd-aarch64" ++ Platform PPC64 Cabal.Linux -> pure "linux-ppc64" ++ Platform S390 Cabal.Linux -> pure "linux-s390" + Platform arch os -> throwM $ UnsupportedSetupCombo os arch + + downloadOrUseLocal From 773d8708077032408fe0a417288c59f3ee14e80f Mon Sep 17 00:00:00 2001 From: Jens Petersen Date: Mon, 8 Jul 2024 22:05:45 +0800 Subject: [PATCH 3/5] backport stack-symlink-distro-ghc fixes from fedora --- haskell-platform.spec | 2 ++ stack-symlink-distro-ghc | 18 +++++++++++++----- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/haskell-platform.spec b/haskell-platform.spec index 7fae33e..4c7d1c4 100644 --- a/haskell-platform.spec +++ b/haskell-platform.spec @@ -278,6 +278,8 @@ install -p %{SOURCE20} %{buildroot}%{_bindir}/stack-symlink-distro-ghc %changelog * Mon Jul 8 2024 Jens Petersen - 2022.1-22 +- stack-symlink-distro-ghc: workaround for ppc64le and no longer error + for existing dir - patch stack setup for ppc64le and s390x * Sun Nov 12 2023 Jens Petersen - 2022.1-21 diff --git a/stack-symlink-distro-ghc b/stack-symlink-distro-ghc index d3c7b39..894dba8 100755 --- a/stack-symlink-distro-ghc +++ b/stack-symlink-distro-ghc @@ -7,21 +7,29 @@ if [ -z "$VERSION" ]; then exit 1 fi +#set +x + #FIXME lib LIBDIR=/usr/lib64/ghc-$VERSION if [ ! -d "$LIBDIR" ]; then - echo "$LIBDIR does not exist: please install ghcX.Y first" + echo "$0: $LIBDIR does not exist: please install ghcX.Y first" exit 1 fi -# FIXME arch -STACK_PROGRAMS=$HOME/.stack/programs/$(arch)-linux +ARCH=$(arch) + +# stack/Cabal doesn't know ppc64le +if [ "$ARCH" = "ppc64le" ]; then + ARCH=ppc64 +fi + +STACK_PROGRAMS=$HOME/.stack/programs/$ARCH-linux STACK_GHCDIR=${STACK_PROGRAMS}/ghc-tinfo6-$VERSION if [ -e "$STACK_GHCDIR" ]; then - echo "$STACK_GHCDIR exists: please remove first" - exit 1 + echo "$0: $STACK_GHCDIR exists: to replace, please remove first" + exit 0 fi mkdir -p $STACK_GHCDIR/bin From c99f36cd7b303bfca9df83f04404081f20a8d9e5 Mon Sep 17 00:00:00 2001 From: Jens Petersen Date: Mon, 8 Jul 2024 22:09:18 +0800 Subject: [PATCH 4/5] update to new stackage snapshots.json url --- haskell-platform.spec | 3 +++ stack-snapshots-json.patch | 11 +++++++++++ 2 files changed, 14 insertions(+) create mode 100644 stack-snapshots-json.patch diff --git a/haskell-platform.spec b/haskell-platform.spec index 4c7d1c4..77c2179 100644 --- a/haskell-platform.spec +++ b/haskell-platform.spec @@ -50,6 +50,8 @@ Source20: stack-symlink-distro-ghc Patch0: stack-2.7.5-ghc-Cabal-version-warnings.patch # https://github.com/commercialhaskell/stack/issues/6379 Patch2: stack-Setup-Platforms.patch +# https://discourse.haskell.org/t/ann-stack-2-15-3-and-earliers-default-source-for-list-of-stackage-snapshots-not-up-to-date/9023 +Patch3: stack-snapshots-json.patch BuildRequires: ghc BuildRequires: alex @@ -278,6 +280,7 @@ install -p %{SOURCE20} %{buildroot}%{_bindir}/stack-symlink-distro-ghc %changelog * Mon Jul 8 2024 Jens Petersen - 2022.1-22 +- update to new stackage snapshots.json url - stack-symlink-distro-ghc: workaround for ppc64le and no longer error for existing dir - patch stack setup for ppc64le and s390x diff --git a/stack-snapshots-json.patch b/stack-snapshots-json.patch new file mode 100644 index 0000000..d98b4ec --- /dev/null +++ b/stack-snapshots-json.patch @@ -0,0 +1,11 @@ +--- stack-2.7.5/src/Stack/Config.hs~ 2022-03-05 08:13:02.000000000 +0800 ++++ stack-2.7.5/src/Stack/Config.hs 2024-07-08 21:40:15.903671623 +0800 +@@ -213,7 +213,7 @@ + configWorkDir0 <- maybe (return relDirStackWork) (liftIO . parseRelDir) mstackWorkEnv + let configWorkDir = fromFirst configWorkDir0 configMonoidWorkDir + configLatestSnapshot = fromFirst +- "https://s3.amazonaws.com/haddock.stackage.org/snapshots.json" ++ "https://www.stackage.org/download/snapshots.json" + configMonoidLatestSnapshot + clConnectionCount = fromFirst 8 configMonoidConnectionCount + configHideTHLoading = fromFirstTrue configMonoidHideTHLoading From ed2a655f3b370bcacd50fb70d8f7a4d731e86e9f Mon Sep 17 00:00:00 2001 From: Jens Petersen Date: Tue, 9 Jul 2024 13:54:58 +0800 Subject: [PATCH 5/5] fixup! patch stack setup for ppc64le and s390 (backport) --- haskell-platform.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/haskell-platform.spec b/haskell-platform.spec index 77c2179..a183b1e 100644 --- a/haskell-platform.spec +++ b/haskell-platform.spec @@ -283,7 +283,7 @@ install -p %{SOURCE20} %{buildroot}%{_bindir}/stack-symlink-distro-ghc - update to new stackage snapshots.json url - stack-symlink-distro-ghc: workaround for ppc64le and no longer error for existing dir -- patch stack setup for ppc64le and s390x +- patch stack setup for ppc64le and s390 * Sun Nov 12 2023 Jens Petersen - 2022.1-21 - make stack-symlink-distro-ghc executable