diff --git a/.gitignore b/.gitignore index e3c9059..35a982e 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,67 @@ haskell-platform-2010.2.0.0.tar.gz /haskell-platform-7.10.3.tar.gz /haskell-platform-8.0.2.tar.gz /haskell-platform-8.2.2.tar.gz +/filelock-0.1.1.4.tar.gz +/hi-file-parser-0.1.0.0.tar.gz +/hpack-0.31.2.tar.gz +/http-download-0.1.0.1.tar.gz +/infer-license-0.2.0.tar.gz +/mintty-0.1.2.tar.gz +/mustache-2.3.1.tar.gz +/neat-interpolation-0.3.2.6.tar.gz +/open-browser-0.2.1.0.tar.gz +/pantry-0.1.1.2.tar.gz +/project-template-0.2.0.1.tar.gz +/regex-applicative-text-0.1.0.1.tar.gz +/retry-0.8.1.0.tar.gz +/rio-orphans-0.1.1.0.tar.gz +/stack-2.1.3.1.tar.gz +/th-utilities-0.2.3.1.tar.gz +/casa-client-0.0.1.tar.gz +/casa-types-0.0.1.tar.gz +/hpack-0.34.2.tar.gz +/http-download-0.2.0.0.tar.gz +/pantry-0.4.0.1.tar.gz +/retry-0.8.1.2.tar.gz +/stack-2.3.1.tar.gz +/th-utilities-0.2.4.0.tar.gz +/filelock-0.1.1.5.tar.gz +/project-template-0.2.1.0.tar.gz +/pantry-0.4.0.2.tar.gz +/stack-2.3.3.tar.gz +/stack-2.7.3.tar.gz +/hi-file-parser-0.1.2.0.tar.gz +/hpack-0.34.4.tar.gz +/neat-interpolation-0.5.1.2.tar.gz +/pantry-0.5.2.3.tar.gz +/rio-orphans-0.1.2.0.tar.gz +/casa-types-0.0.2.tar.gz +/stack-2.7.5.tar.gz +/hpack-0.34.6.tar.gz +/mintty-0.1.3.tar.gz +/mustache-2.3.2.tar.gz +/neat-interpolation-0.5.1.3.tar.gz +/pantry-0.5.3.tar.gz +/stack-2.9.1.tar.gz +/hi-file-parser-0.1.3.0.tar.gz +/hpack-0.35.2.tar.gz +/mintty-0.1.4.tar.gz +/mustache-2.4.1.tar.gz +/pantry-0.5.7.tar.gz +/stack-2.9.3.1.tar.gz +/filelock-0.1.1.6.tar.gz +/hi-file-parser-0.1.4.0.tar.gz +/mustache-2.4.2.tar.gz +/pantry-0.8.3.tar.gz +/stack-2.15.7.tar.gz +/aeson-warning-parser-0.1.1.tar.gz +/casa-client-0.0.2.tar.gz +/companion-0.1.0.tar.gz +/crypton-conduit-0.2.3.tar.gz +/filelock-0.1.1.7.tar.gz +/hi-file-parser-0.1.6.0.tar.gz +/hpack-0.36.1.tar.gz +/http-download-0.2.1.0.tar.gz +/neat-interpolation-0.5.1.4.tar.gz +/pantry-0.9.3.2.tar.gz +/static-bytes-0.1.0.tar.gz diff --git a/haskell-platform.spec b/haskell-platform.spec index 2d7bcb5..b4cbdbd 100644 --- a/haskell-platform.spec +++ b/haskell-platform.spec @@ -1,19 +1,20 @@ -# https://fedoraproject.org/wiki/Packaging:Haskell +# generated by cabal-rpm-2.2.1 --subpackage +# https://docs.fedoraproject.org/en-US/packaging-guidelines/Haskell/ Name: haskell-platform -Version: 2019.1 -Release: 4%{?dist} +Version: 2024.1 +Release: 36%{?dist} Summary: Standard Haskell distribution -License: BSD -URL: http://www.haskell.org/platform/ +License: BSD-3-Clause +URL: https://www.haskell.org/ -BuildArch: noarch BuildRequires: ghc BuildRequires: alex BuildRequires: cabal-install BuildRequires: happy BuildRequires: hscolour +BuildRequires: stack # pull in all of ghc for least surprise # even though strictly libHSghc is not formally part of HP @@ -22,28 +23,151 @@ Requires: alex Requires: cabal-install Requires: happy Requires: hscolour -# F17: -Obsoletes: ghc-haskell-platform < %{version}-%{release} -# F26: -Obsoletes: ghc-haskell-platform-devel < %{version}-%{release} +Requires: stack %description -Haskell Platform is a set stable and well used Haskell tools. +Haskell Platform is a set of stable and well used Haskell tools. It provides a good starting environment for Haskell development. + %prep -%{nil} + %build -%{nil} + %install -%{nil} + %files %changelog +* Thu Jul 24 2025 Fedora Release Engineering - 2024.1-36 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Fri Jan 17 2025 Fedora Release Engineering - 2024.1-35 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Fri Dec 6 2024 Jens Petersen - 2024.1-34 +- stack is now packaged separately + +* Thu Aug 1 2024 Jens Petersen - 2024.1-33 +- https://hackage.haskell.org/package/stack-2.15.7/changelog + +* Thu Jul 18 2024 Fedora Release Engineering - 2023.1-32 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Mon Jul 8 2024 Jens Petersen - 2023.1-31 +- update to new stackage snapshots.json url + +* Thu Mar 7 2024 Jens Petersen - 2023.1-30 +- stack-symlink-distro-ghc: workaround for ppc64le and no longer error + for existing dir + +* Wed Jan 24 2024 Fedora Release Engineering - 2023.1-29 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sat Jan 20 2024 Fedora Release Engineering - 2023.1-28 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Dec 15 2023 Jens Petersen - 2023.1-27 +- patch Stack.Setup to accept PPC64 and S390X Linux platforms + +* Tue Nov 7 2023 Jens Petersen - 2023.1-26 +- make stack-symlink-distro-ghc executable + +* Tue Aug 8 2023 Jens Petersen - 2023.1-25 +- bring back the stack InvalidAbsFile patch updated for 2.9.3 + https://github.com/commercialhaskell/stack/pull/6028 +- disable warnings about untested ghc and Cabal versions + +* Sat Jul 29 2023 Jens Petersen - 2023.1-24 +- stack-2.9.3.1 +- https://hackage.haskell.org/package/stack-2.9.3.1/changelog + +* Thu Jul 20 2023 Fedora Release Engineering - 2022.2-23 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Tue Apr 11 2023 Jens Petersen - 2022.2-22 +- backport fix for error: InvalidAbsFile "/usr/lib64/ghc-9.2.3/lib/../lib/x86_64-linux-ghc-9.2.3/rts-1.0.2/include/ghcversion.h" (#5866) + +* Tue Feb 21 2023 Jens Petersen - 2022.2-21 +- update to stack 2.9.1 +- https://hackage.haskell.org/package/stack-2.9.1/changelog +- SPDX migration + +* Thu Jul 21 2022 Fedora Release Engineering - 2022.1-20 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Mon Jun 20 2022 Jens Petersen - 2022.1-19 +- rebuild + +* Sat Apr 30 2022 Jens Petersen - 2022.1-18 +- stack-symlink-distro-ghc script for setting up stack to use ghcX.Y + +* Mon Mar 21 2022 Jens Petersen - 2022.1-17 +- silence the warnings about ghc-9.2 and Cabal-3.6 + +* Sun Mar 20 2022 Jens Petersen - 2022.1-16 +- https://hackage.haskell.org/package/stack-2.7.5/changelog +- drop regex-applicative-text library + +* Thu Jan 20 2022 Fedora Release Engineering - 2021.1-15 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Sat Jan 08 2022 Miro HronĨok - 2021.1-14 +- Rebuilt for https://fedoraproject.org/wiki/Changes/LIBFFI34 + +* Tue Aug 10 2021 Jens Petersen - 2021.1-13 +- stack-2.7.3 +- https://github.com/commercialhaskell/stack/releases/tag/v2.7.3 + +* Thu Jul 22 2021 Fedora Release Engineering - 2020.2-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Tue Jun 8 2021 Jens Petersen - 2020.2-11 +- use ghc_delete_rpaths + +* Thu Mar 18 2021 Jens Petersen - 2020.2-10 +- retry was packaged in Fedora + +* Tue Jan 26 2021 Fedora Release Engineering - 2020.2-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Sun Jan 24 2021 Jens Petersen - 2020.2-8 +- infer-license was packaged + +* Sun Jan 17 2021 Jens Petersen - 2020.2-7 +- th-utilities is not longer needed for pantry/store + +* Fri Sep 18 2020 Jens Petersen +- stack: use recommends for zlib-devel + +* Wed Sep 16 2020 Jens Petersen - 2020.2-6 +- stack requires gmp-devel and gcc + https://github.com/commercialhaskell/stack/issues/5388 + +* Tue Aug 11 2020 Jens Petersen - 2020.2-5 +- stack-2.3.3 +- https://github.com/commercialhaskell/stack/releases/tag/v2.3.3 + +* Tue Jul 28 2020 Fedora Release Engineering - 2020.2-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Thu Jun 25 2020 Jens Petersen - 2020.2-3 +- update stack to 2.3.1 + +* Sat May 2 2020 Jens Petersen +- generate bash completions + +* Sun Apr 12 2020 Jens Petersen - 2020.1-2 +- stack requires ghc-zlib-devel for ghc +- stack: silence warnings about ghc-8.8 and Cabal-3.0 + +* Wed Apr 8 2020 Jens Petersen - 2020.1-1 +- subpackage stack package tool + * Wed Jan 29 2020 Fedora Release Engineering - 2019.1-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild diff --git a/stack-Setup-Platforms.patch b/stack-Setup-Platforms.patch new file mode 100644 index 0000000..b557d44 --- /dev/null +++ b/stack-Setup-Platforms.patch @@ -0,0 +1,11 @@ +--- stack-2.15.7/src/Stack/Setup.hs~ 2024-05-12 22:50:14.000000000 +0800 ++++ stack-2.15.7/src/Stack/Setup.hs 2024-08-02 01:11:32.252316054 +0800 +@@ -2138,6 +2138,8 @@ + Platform Sparc Cabal.Linux -> pure "linux-sparc" + Platform AArch64 Cabal.OSX -> pure "macosx-aarch64" + Platform AArch64 Cabal.FreeBSD -> pure "freebsd-aarch64" ++ Platform PPC64 Cabal.Linux -> pure "linux-ppc64" ++ Platform S390X Cabal.Linux -> pure "linux-s390x" + Platform arch os -> + prettyThrowM $ UnsupportedSetupCombo os arch tool toolDir programsDir + diff --git a/stack-disable-ghc-Cabal-version-warnings.patch b/stack-disable-ghc-Cabal-version-warnings.patch new file mode 100644 index 0000000..2bedd29 --- /dev/null +++ b/stack-disable-ghc-Cabal-version-warnings.patch @@ -0,0 +1,38 @@ +--- stack-2.9.3.1/src/Stack/Setup.hs~ 2023-06-22 18:40:54.000000000 +0800 ++++ stack-2.9.3.1/src/Stack/Setup.hs 2023-08-08 14:29:43.486062926 +0800 +@@ -719,12 +719,12 @@ + logWarn "For more information, see: https://github.com/commercialhaskell/stack/issues/648" + logWarn "" + pure True +- | ghcVersion >= mkVersion [9, 5] -> do +- logWarn $ +- "Stack has not been tested with GHC versions above 9.4, and using " <> +- fromString (versionString ghcVersion) <> +- ", this may fail" +- pure True ++ -- | ghcVersion >= mkVersion [9, 5] -> do ++ -- logWarn $ ++ -- "Stack has not been tested with GHC versions above 9.4, and using " <> ++ -- fromString (versionString ghcVersion) <> ++ -- ", this may fail" ++ -- pure True + | otherwise -> do + logDebug "Asking for a supported GHC version" + pure False +@@ -746,11 +746,11 @@ + logWarn "This invocation will most likely fail." + logWarn "To fix this, either use an older version of Stack or a newer resolver" + logWarn "Acceptable resolvers: lts-3.0/nightly-2015-05-05 or later" +- | cabalVersion >= mkVersion [3, 9] -> +- logWarn $ +- "Stack has not been tested with Cabal versions above 3.8, but version " <> +- fromString (versionString cabalVersion) <> +- " was found, this may fail" ++ -- | cabalVersion >= mkVersion [3, 9] -> ++ -- logWarn $ ++ -- "Stack has not been tested with Cabal versions above 3.8, but version " <> ++ -- fromString (versionString cabalVersion) <> ++ -- " was found, this may fail" + | otherwise -> pure () + + -- | Ensure that the msys toolchain is installed if necessary and diff --git a/stack-disabled-global-warnings.patch b/stack-disabled-global-warnings.patch new file mode 100644 index 0000000..fd4525d --- /dev/null +++ b/stack-disabled-global-warnings.patch @@ -0,0 +1,49 @@ +diff -up stack-2.15.7/src/Stack/Config.hs~ stack-2.15.7/src/Stack/Config.hs +--- stack-2.15.7/src/Stack/Config.hs~ 2024-05-12 22:50:13.000000000 +0800 ++++ stack-2.15.7/src/Stack/Config.hs 2024-08-02 01:21:01.138918479 +0800 +@@ -435,9 +435,9 @@ configFromConfigMonoid + fromFirst Constants.hackageBaseUrl configMonoid.hackageBaseUrl + hideSourcePaths = fromFirstTrue configMonoid.hideSourcePaths + recommendUpgrade = fromFirstTrue configMonoid.recommendUpgrade +- notifyIfNixOnPath = fromFirstTrue configMonoid.notifyIfNixOnPath +- notifyIfGhcUntested = fromFirstTrue configMonoid.notifyIfGhcUntested +- notifyIfCabalUntested = fromFirstTrue configMonoid.notifyIfCabalUntested ++ notifyIfNixOnPath = fromFirstFalse configMonoid.notifyIfNixOnPath ++ notifyIfGhcUntested = fromFirstFalse configMonoid.notifyIfGhcUntested ++ notifyIfCabalUntested = fromFirstFalse configMonoid.notifyIfCabalUntested + notifyIfArchUnknown = fromFirstTrue configMonoid.notifyIfArchUnknown + noRunCompile = fromFirstFalse configMonoid.noRunCompile + allowDifferentUser <- +diff -up stack-2.15.7/src/Stack/Types/ConfigMonoid.hs~ stack-2.15.7/src/Stack/Types/ConfigMonoid.hs +--- stack-2.15.7/src/Stack/Types/ConfigMonoid.hs~ 2024-05-12 22:50:14.000000000 +0800 ++++ stack-2.15.7/src/Stack/Types/ConfigMonoid.hs 2024-08-02 01:20:22.724711778 +0800 +@@ -170,11 +170,11 @@ data ConfigMonoid = ConfigMonoid + -- ^ See 'configHideSourcePaths' + , recommendUpgrade :: !FirstTrue + -- ^ See 'configRecommendUpgrade' +- , notifyIfNixOnPath :: !FirstTrue ++ , notifyIfNixOnPath :: !FirstFalse + -- ^ See 'configNotifyIfNixOnPath' +- , notifyIfGhcUntested :: !FirstTrue ++ , notifyIfGhcUntested :: !FirstFalse + -- ^ See 'configNotifyIfGhcUntested' +- , notifyIfCabalUntested :: !FirstTrue ++ , notifyIfCabalUntested :: !FirstFalse + -- ^ See 'configNotifyIfCabalUntested' + , notifyIfArchUnknown :: !FirstTrue + -- ^ See 'configNotifyIfArchUnknown' +@@ -317,11 +317,11 @@ parseConfigMonoidObject rootDir obj = do + let styles = fromMaybe mempty $ configMonoidStylesUS <|> configMonoidStylesGB + hideSourcePaths <- FirstTrue <$> obj ..:? configMonoidHideSourcePathsName + recommendUpgrade <- FirstTrue <$> obj ..:? configMonoidRecommendUpgradeName +- notifyIfNixOnPath <- FirstTrue <$> obj ..:? configMonoidNotifyIfNixOnPathName ++ notifyIfNixOnPath <- FirstFalse <$> obj ..:? configMonoidNotifyIfNixOnPathName + notifyIfGhcUntested <- +- FirstTrue <$> obj ..:? configMonoidNotifyIfGhcUntestedName ++ FirstFalse <$> obj ..:? configMonoidNotifyIfGhcUntestedName + notifyIfCabalUntested <- +- FirstTrue <$> obj ..:? configMonoidNotifyIfCabalUntestedName ++ FirstFalse <$> obj ..:? configMonoidNotifyIfCabalUntestedName + notifyIfArchUnknown <- + FirstTrue <$> obj ..:? configMonoidNotifyIfArchUnknownName + casaOpts <- jsonSubWarnings (obj ..:? configMonoidCasaOptsName ..!= mempty) diff --git a/stack-symlink-distro-ghc b/stack-symlink-distro-ghc new file mode 100755 index 0000000..894dba8 --- /dev/null +++ b/stack-symlink-distro-ghc @@ -0,0 +1,51 @@ +#!/bin/sh + +VERSION=$1 + +if [ -z "$VERSION" ]; then + echo "Usage: $0 X.Y.Z" + exit 1 +fi + +#set +x + +#FIXME lib +LIBDIR=/usr/lib64/ghc-$VERSION +if [ ! -d "$LIBDIR" ]; then + echo "$0: $LIBDIR does not exist: please install ghcX.Y first" + exit 1 +fi + +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 "$0: $STACK_GHCDIR exists: to replace, please remove first" + exit 0 +fi + +mkdir -p $STACK_GHCDIR/bin + +for i in ghc ghc-pkg ghci hp2ps hpc hsc2hs runghc runhaskell; do + if [ -x /usr/bin/$i-$VERSION ]; then + ln -s /usr/bin/$i-$VERSION $STACK_GHCDIR/bin/$i + elif [ -x /usr/bin/$i-ghc-$VERSION ]; then + ln -s /usr/bin/$i-ghc-$VERSION $STACK_GHCDIR/bin/$i + else + ln -s /usr/bin/$i $STACK_GHCDIR/bin/$i + fi +done + +ln -s /usr/bin/haddock-ghc-$VERSION $STACK_GHCDIR/bin/haddock + +if [ ! -f "${STACK_GHCDIR}.installed" ]; then + echo "installed" > $STACK_GHCDIR.installed +fi