diff --git a/.gitignore b/.gitignore index 35a982e..bdb17be 100644 --- a/.gitignore +++ b/.gitignore @@ -59,20 +59,3 @@ haskell-platform-2010.2.0.0.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/6028-2.9.1.patch b/6028-2.9.1.patch new file mode 100644 index 0000000..ff6376e --- /dev/null +++ b/6028-2.9.1.patch @@ -0,0 +1,125 @@ +diff -up stack-2.9.1/src/Path/Extra.hs.orig stack-2.9.1/src/Path/Extra.hs +--- stack-2.9.1/src/Path/Extra.hs.orig 2023-04-11 10:23:31.337973989 +0800 ++++ stack-2.9.1/src/Path/Extra.hs 2023-04-11 10:27:20.925638798 +0800 +@@ -15,6 +15,8 @@ module Path.Extra + ,pathToLazyByteString + ,pathToText + ,tryGetModificationTime ++ ,forgivingResolveFile ++ ,forgivingResolveFile' + ) where + + import Data.Time (UTCTime) +@@ -27,6 +29,7 @@ import qualified Data.ByteString.Char8 a + import qualified Data.ByteString.Lazy.Char8 as BSL + import qualified Data.Text as T + import qualified Data.Text.Encoding as T ++import qualified System.Directory as D + import qualified System.FilePath as FP + + -- | Convert to FilePath but don't add a trailing slash. +@@ -121,3 +124,30 @@ pathToText = T.pack . toFilePath + + tryGetModificationTime :: MonadIO m => Path Abs File -> m (Either () UTCTime) + tryGetModificationTime = liftIO . tryJust (guard . isDoesNotExistError) . getModificationTime ++ ++-- | 'Path.IO.resolveFile' (@path-io@ package) throws 'InvalidAbsFile' (@path@ ++-- package) if the file does not exist; this function yields 'Nothing'. ++forgivingResolveFile :: ++ MonadIO m ++ => Path Abs Dir ++ -- ^ Base directory ++ -> FilePath ++ -- ^ Path to resolve ++ -> m (Maybe (Path Abs File)) ++forgivingResolveFile b p = liftIO $ ++ D.canonicalizePath (toFilePath b FP. p) >>= \cp -> ++ catch ++ (Just <$> parseAbsFile cp) ++ ( \e -> case e of ++ InvalidAbsFile _ -> pure Nothing ++ _ -> throwIO e ++ ) ++ ++-- | 'Path.IO.resolveFile'' (@path-io@ package) throws 'InvalidAbsFile' (@path@ ++-- package) if the file does not exist; this function yields 'Nothing'. ++forgivingResolveFile' :: ++ MonadIO m ++ => FilePath ++ -- ^ Path to resolve ++ -> m (Maybe (Path Abs File)) ++forgivingResolveFile' p = getCurrentDir >>= flip forgivingResolveFile p +diff -up stack-2.9.1/src/Stack/Build/Execute.hs.orig stack-2.9.1/src/Stack/Build/Execute.hs +--- stack-2.9.1/src/Stack/Build/Execute.hs.orig 2023-04-11 10:23:31.338973998 +0800 ++++ stack-2.9.1/src/Stack/Build/Execute.hs 2023-04-11 10:31:07.314541963 +0800 +@@ -63,7 +63,10 @@ import Distribution.Verbosity + import Distribution.Version (mkVersion) + import Path + import Path.CheckInstall +-import Path.Extra (toFilePathNoTrailingSep, rejectMissingFile) ++import Path.Extra ++ ( forgivingResolveFile, rejectMissingFile ++ , toFilePathNoTrailingSep ++ ) + import Path.IO hiding (findExecutable, makeAbsolute, withSystemTempDir) + import qualified RIO + import Stack.Build.Cache +@@ -535,7 +538,7 @@ copyExecutables exes = do + case loc of + Snap -> snapBin + Local -> localBin +- mfp <- liftIO $ forgivingAbsence (resolveFile bindir $ T.unpack name ++ ext) ++ mfp <- liftIO $ forgivingResolveFile bindir (T.unpack name ++ ext) + >>= rejectMissingFile + case mfp of + Nothing -> do +@@ -2156,7 +2159,7 @@ + mabs <- + if isValidSuffix y + then liftIO $ liftM (fmap ((T.takeWhile isSpace x <>) . T.pack . toFilePath)) $ +- forgivingAbsence (resolveFile pkgDir (T.unpack $ T.dropWhile isSpace x)) `catch` ++ forgivingResolveFile pkgDir (T.unpack $ T.dropWhile isSpace x) `catch` + \(_ :: PathException) -> return Nothing + else return Nothing + case mabs of +diff -up stack-2.9.1/src/Stack/Ghci.hs.orig stack-2.9.1/src/Stack/Ghci.hs +--- stack-2.9.1/src/Stack/Ghci.hs.orig 2023-04-11 10:23:31.338973998 +0800 ++++ stack-2.9.1/src/Stack/Ghci.hs 2023-04-11 10:35:16.376070265 +0800 +@@ -29,7 +29,7 @@ import qualified Data.Text.Lazy as TL + import qualified Data.Text.Lazy.Encoding as TLE + import qualified Distribution.PackageDescription as C + import Path +-import Path.Extra (toFilePathNoTrailingSep) ++import Path.Extra (forgivingResolveFile', toFilePathNoTrailingSep) + import Path.IO hiding (withSystemTempDir) + import qualified RIO + import RIO.PrettyPrint +@@ -213,7 +213,7 @@ preprocessTargets buildOptsCLI sma rawTa + then do + fileTargets <- forM fileTargetsRaw $ \fp0 -> do + let fp = T.unpack fp0 +- mpath <- liftIO $ forgivingAbsence (resolveFile' fp) ++ mpath <- liftIO $ forgivingResolveFile' fp + case mpath of + Nothing -> throwM (MissingFileTarget fp) + Just path -> return path +--- stack-2.9.1/src/Stack/Package.hs 2022-09-19 18:33:27.000000000 +0800 ++++ stack-2.9.1/src/Stack/Package.hs 2023-04-11 12:03:27.145182761 +0800 +@@ -1120,7 +1120,7 @@ + let moduleNames = fmap (fromString . T.unpack . decodeUtf8Lenient . fst) . + Iface.unList . Iface.dmods . Iface.deps + resolveFileDependency file = do +- resolved <- liftIO (forgivingAbsence (resolveFile dir file)) >>= rejectMissingFile ++ resolved <- liftIO (forgivingResolveFile dir file) >>= rejectMissingFile + when (isNothing resolved) $ + prettyWarnL + [ flow "Dependent file listed in:" +@@ -1326,7 +1326,7 @@ + resolveFileOrWarn :: FilePath.FilePath + -> RIO Ctx (Maybe (Path Abs File)) + resolveFileOrWarn = resolveOrWarn "File" f +- where f p x = liftIO (forgivingAbsence (resolveFile p x)) >>= rejectMissingFile ++ where f p x = liftIO (forgivingResolveFile p x) >>= rejectMissingFile + + -- | Resolve the directory, if it can't be resolved, warn for the user + -- (purely to be helpful). diff --git a/haskell-platform.spec b/haskell-platform.spec index b4cbdbd..651ed5e 100644 --- a/haskell-platform.spec +++ b/haskell-platform.spec @@ -1,20 +1,321 @@ -# generated by cabal-rpm-2.2.1 --subpackage +# generated by cabal-rpm-2.1.0 --subpackage # https://docs.fedoraproject.org/en-US/packaging-guidelines/Haskell/ +%global stack_ver 2.9.1 +%global stack stack-%{stack_ver} + +%global filelock filelock-0.1.1.5 +%global hifileparser hi-file-parser-0.1.3.0 +%global hpack hpack-0.35.2 +%global httpdownload http-download-0.2.0.0 +%global mintty mintty-0.1.4 +%global mustache mustache-2.4.1 +%global neatinterpolation neat-interpolation-0.5.1.3 +%global openbrowser open-browser-0.2.1.0 +%global pantry pantry-0.5.7 +%global projecttemplate project-template-0.2.1.0 +%global rioorphans rio-orphans-0.1.2.0 +%global casaclient casa-client-0.0.1 +%global casatypes casa-types-0.0.2 +%global subpkgs %{filelock} %{hifileparser} %{hpack} %{httpdownload} %{mintty} %{mustache} %{neatinterpolation} %{openbrowser} %{rioorphans} %{casatypes} %{casaclient} %{pantry} %{projecttemplate} %{stack} + +# testsuite missing deps: raw-strings-qq + Name: haskell-platform -Version: 2024.1 -Release: 36%{?dist} +Version: 2022.2 +Release: 23%{?dist} Summary: Standard Haskell distribution -License: BSD-3-Clause -URL: https://www.haskell.org/ +License: BSD +URL: http://www.haskell.org/platform/ +# for stack: +# Begin cabal-rpm sources: +Source0: https://hackage.haskell.org/package/%{stack}/%{stack}.tar.gz +Source1: https://hackage.haskell.org/package/%{filelock}/%{filelock}.tar.gz +Source2: https://hackage.haskell.org/package/%{hifileparser}/%{hifileparser}.tar.gz +Source3: https://hackage.haskell.org/package/%{hpack}/%{hpack}.tar.gz +Source4: https://hackage.haskell.org/package/%{httpdownload}/%{httpdownload}.tar.gz +Source5: https://hackage.haskell.org/package/%{mintty}/%{mintty}.tar.gz +Source6: https://hackage.haskell.org/package/%{mustache}/%{mustache}.tar.gz +Source7: https://hackage.haskell.org/package/%{neatinterpolation}/%{neatinterpolation}.tar.gz +Source8: https://hackage.haskell.org/package/%{openbrowser}/%{openbrowser}.tar.gz +Source9: https://hackage.haskell.org/package/%{pantry}/%{pantry}.tar.gz +Source10: https://hackage.haskell.org/package/%{projecttemplate}/%{projecttemplate}.tar.gz +Source11: https://hackage.haskell.org/package/%{rioorphans}/%{rioorphans}.tar.gz +Source12: https://hackage.haskell.org/package/%{casaclient}/%{casaclient}.tar.gz +Source13: https://hackage.haskell.org/package/%{casatypes}/%{casatypes}.tar.gz +Source20: stack-symlink-distro-ghc +# End cabal-rpm sources +# https://github.com/commercialhaskell/stack/issues/5866 +# https://github.com/commercialhaskell/stack/pull/6028 +Patch1: 6028-2.9.1.patch BuildRequires: ghc BuildRequires: alex BuildRequires: cabal-install BuildRequires: happy BuildRequires: hscolour -BuildRequires: stack + +# for stack: +# Begin cabal-rpm deps: +BuildRequires: ghc-rpm-macros-extra +BuildRequires: ghc-Cabal-devel +BuildRequires: ghc-aeson-devel +BuildRequires: ghc-annotated-wl-pprint-devel +BuildRequires: ghc-ansi-terminal-devel +BuildRequires: ghc-array-devel +BuildRequires: ghc-async-devel +BuildRequires: ghc-attoparsec-devel +BuildRequires: ghc-base-devel +BuildRequires: ghc-base64-bytestring-devel +BuildRequires: ghc-bytestring-devel +#BuildRequires: ghc-casa-client-devel +#BuildRequires: ghc-casa-types-devel +BuildRequires: ghc-colour-devel +BuildRequires: ghc-conduit-devel +BuildRequires: ghc-conduit-extra-devel +BuildRequires: ghc-containers-devel +BuildRequires: ghc-cryptonite-devel +BuildRequires: ghc-cryptonite-conduit-devel +BuildRequires: ghc-deepseq-devel +BuildRequires: ghc-directory-devel +BuildRequires: ghc-echo-devel +BuildRequires: ghc-exceptions-devel +BuildRequires: ghc-extra-devel +BuildRequires: ghc-file-embed-devel +#BuildRequires: ghc-filelock-devel +BuildRequires: ghc-filepath-devel +BuildRequires: ghc-fsnotify-devel +BuildRequires: ghc-generic-deriving-devel +BuildRequires: ghc-githash-devel +BuildRequires: ghc-hackage-security-devel +BuildRequires: ghc-hashable-devel +#BuildRequires: ghc-hi-file-parser-devel +#BuildRequires: ghc-hpack-devel +BuildRequires: ghc-hpc-devel +BuildRequires: ghc-http-client-devel +BuildRequires: ghc-http-client-tls-devel +BuildRequires: ghc-http-conduit-devel +#BuildRequires: ghc-http-download-devel +BuildRequires: ghc-http-types-devel +BuildRequires: ghc-memory-devel +BuildRequires: ghc-microlens-devel +#BuildRequires: ghc-mintty-devel +BuildRequires: ghc-mono-traversable-devel +BuildRequires: ghc-mtl-devel +#BuildRequires: ghc-mustache-devel +#BuildRequires: ghc-neat-interpolation-devel +BuildRequires: ghc-network-uri-devel +#BuildRequires: ghc-open-browser-devel +BuildRequires: ghc-optparse-applicative-devel +BuildRequires: ghc-optparse-simple-devel +#BuildRequires: ghc-pantry-devel +BuildRequires: ghc-path-devel +BuildRequires: ghc-path-io-devel +BuildRequires: ghc-persistent-devel +BuildRequires: ghc-persistent-sqlite-devel +BuildRequires: ghc-persistent-template-devel +BuildRequires: ghc-pretty-devel +BuildRequires: ghc-primitive-devel +BuildRequires: ghc-process-devel +#BuildRequires: ghc-project-template-devel +BuildRequires: ghc-random-devel +BuildRequires: ghc-retry-devel +BuildRequires: ghc-rio-devel +BuildRequires: ghc-rio-prettyprint-devel +BuildRequires: ghc-semigroups-devel +BuildRequires: ghc-split-devel +BuildRequires: ghc-stm-devel +BuildRequires: ghc-streaming-commons-devel +BuildRequires: ghc-tar-devel +BuildRequires: ghc-template-haskell-devel +BuildRequires: ghc-temporary-devel +BuildRequires: ghc-text-devel +BuildRequires: ghc-text-metrics-devel +BuildRequires: ghc-th-reify-many-devel +BuildRequires: ghc-time-devel +BuildRequires: ghc-tls-devel +BuildRequires: ghc-transformers-devel +BuildRequires: ghc-typed-process-devel +BuildRequires: ghc-unicode-transforms-devel +BuildRequires: ghc-unix-devel +BuildRequires: ghc-unix-compat-devel +BuildRequires: ghc-unliftio-devel +BuildRequires: ghc-unordered-containers-devel +BuildRequires: ghc-vector-devel +BuildRequires: ghc-yaml-devel +BuildRequires: ghc-zip-archive-devel +BuildRequires: ghc-zlib-devel +%if %{with ghc_prof} +BuildRequires: ghc-Cabal-prof +BuildRequires: ghc-aeson-prof +BuildRequires: ghc-annotated-wl-pprint-prof +BuildRequires: ghc-ansi-terminal-prof +BuildRequires: ghc-array-prof +BuildRequires: ghc-async-prof +BuildRequires: ghc-attoparsec-prof +BuildRequires: ghc-base-prof +BuildRequires: ghc-base64-bytestring-prof +BuildRequires: ghc-bytestring-prof +#BuildRequires: ghc-casa-client-prof +#BuildRequires: ghc-casa-types-prof +BuildRequires: ghc-colour-prof +BuildRequires: ghc-conduit-prof +BuildRequires: ghc-conduit-extra-prof +BuildRequires: ghc-containers-prof +BuildRequires: ghc-cryptonite-prof +BuildRequires: ghc-cryptonite-conduit-prof +BuildRequires: ghc-deepseq-prof +BuildRequires: ghc-directory-prof +BuildRequires: ghc-echo-prof +BuildRequires: ghc-exceptions-prof +BuildRequires: ghc-extra-prof +BuildRequires: ghc-file-embed-prof +#BuildRequires: ghc-filelock-prof +BuildRequires: ghc-filepath-prof +BuildRequires: ghc-fsnotify-prof +BuildRequires: ghc-generic-deriving-prof +BuildRequires: ghc-githash-prof +BuildRequires: ghc-hackage-security-prof +BuildRequires: ghc-hashable-prof +#BuildRequires: ghc-hi-file-parser-prof +#BuildRequires: ghc-hpack-prof +BuildRequires: ghc-hpc-prof +BuildRequires: ghc-http-client-prof +BuildRequires: ghc-http-client-tls-prof +BuildRequires: ghc-http-conduit-prof +#BuildRequires: ghc-http-download-prof +BuildRequires: ghc-http-types-prof +BuildRequires: ghc-memory-prof +BuildRequires: ghc-microlens-prof +#BuildRequires: ghc-mintty-prof +BuildRequires: ghc-mono-traversable-prof +BuildRequires: ghc-mtl-prof +#BuildRequires: ghc-mustache-prof +#BuildRequires: ghc-neat-interpolation-prof +BuildRequires: ghc-network-uri-prof +#BuildRequires: ghc-open-browser-prof +BuildRequires: ghc-optparse-applicative-prof +BuildRequires: ghc-optparse-simple-prof +#BuildRequires: ghc-pantry-prof +BuildRequires: ghc-path-prof +BuildRequires: ghc-path-io-prof +BuildRequires: ghc-persistent-prof +BuildRequires: ghc-persistent-sqlite-prof +# no persistent-template prof: +#BuildRequires: ghc-persistent-template-prof +BuildRequires: ghc-pretty-prof +BuildRequires: ghc-primitive-prof +BuildRequires: ghc-process-prof +#BuildRequires: ghc-project-template-prof +BuildRequires: ghc-random-prof +BuildRequires: ghc-retry-prof +BuildRequires: ghc-rio-prof +BuildRequires: ghc-rio-prettyprint-prof +BuildRequires: ghc-semigroups-prof +BuildRequires: ghc-split-prof +BuildRequires: ghc-stm-prof +BuildRequires: ghc-streaming-commons-prof +BuildRequires: ghc-tar-prof +BuildRequires: ghc-template-haskell-prof +BuildRequires: ghc-temporary-prof +BuildRequires: ghc-text-prof +BuildRequires: ghc-text-metrics-prof +BuildRequires: ghc-th-reify-many-prof +BuildRequires: ghc-time-prof +BuildRequires: ghc-tls-prof +BuildRequires: ghc-transformers-prof +BuildRequires: ghc-typed-process-prof +BuildRequires: ghc-unicode-transforms-prof +BuildRequires: ghc-unix-prof +BuildRequires: ghc-unix-compat-prof +BuildRequires: ghc-unliftio-prof +BuildRequires: ghc-unordered-containers-prof +BuildRequires: ghc-vector-prof +BuildRequires: ghc-yaml-prof +BuildRequires: ghc-zip-archive-prof +BuildRequires: ghc-zlib-prof +%endif +# for missing dep 'hi-file-parser': +BuildRequires: ghc-binary-devel +%if %{with ghc_prof} +BuildRequires: ghc-binary-prof +%endif +# for missing dep 'hpack': +BuildRequires: ghc-Glob-devel +BuildRequires: ghc-bifunctors-devel +BuildRequires: ghc-infer-license-devel +BuildRequires: ghc-scientific-devel +%if %{with ghc_prof} +BuildRequires: ghc-Glob-prof +BuildRequires: ghc-bifunctors-prof +BuildRequires: ghc-infer-license-prof +BuildRequires: ghc-scientific-prof +%endif +# for missing dep 'mustache': +BuildRequires: ghc-cmdargs-devel +BuildRequires: ghc-parsec-devel +BuildRequires: ghc-scientific-devel +BuildRequires: ghc-th-lift-devel +%if %{with ghc_prof} +BuildRequires: ghc-cmdargs-prof +BuildRequires: ghc-parsec-prof +BuildRequires: ghc-scientific-prof +BuildRequires: ghc-th-lift-prof +%endif +# for missing dep 'neat-interpolation': +BuildRequires: ghc-megaparsec-devel +%if %{with ghc_prof} +BuildRequires: ghc-megaparsec-prof +%endif +# for missing dep 'pantry': +BuildRequires: ghc-digest-devel +BuildRequires: ghc-resourcet-devel +BuildRequires: ghc-tar-conduit-devel +%if %{with ghc_prof} +BuildRequires: ghc-digest-prof +BuildRequires: ghc-resourcet-prof +BuildRequires: ghc-tar-conduit-prof +%endif +# for missing dep 'project-template': +BuildRequires: ghc-resourcet-devel +%if %{with ghc_prof} +BuildRequires: ghc-resourcet-prof +%endif +# for missing dep 'rio-orphans': +BuildRequires: ghc-fast-logger-devel +BuildRequires: ghc-monad-control-devel +BuildRequires: ghc-monad-logger-devel +BuildRequires: ghc-resourcet-devel +BuildRequires: ghc-transformers-base-devel +BuildRequires: ghc-unliftio-core-devel +%if %{with ghc_prof} +BuildRequires: ghc-fast-logger-prof +BuildRequires: ghc-monad-control-prof +BuildRequires: ghc-monad-logger-prof +BuildRequires: ghc-resourcet-prof +BuildRequires: ghc-transformers-base-prof +BuildRequires: ghc-unliftio-core-prof +%endif +# for missing dep 'casa-client': +BuildRequires: ghc-base16-bytestring-devel +BuildRequires: ghc-resourcet-devel +BuildRequires: ghc-th-lift-devel +BuildRequires: ghc-unliftio-core-devel +%if %{with ghc_prof} +BuildRequires: ghc-base16-bytestring-prof +BuildRequires: ghc-resourcet-prof +BuildRequires: ghc-th-lift-prof +BuildRequires: ghc-unliftio-core-prof +%endif +# for missing dep 'casa-types': +BuildRequires: ghc-base16-bytestring-devel +BuildRequires: ghc-path-pieces-devel +%if %{with ghc_prof} +BuildRequires: ghc-base16-bytestring-prof +BuildRequires: ghc-path-pieces-prof +%endif +# End cabal-rpm deps # pull in all of ghc for least surprise # even though strictly libHSghc is not formally part of HP @@ -30,65 +331,90 @@ Haskell Platform is a set of stable and well used Haskell tools. It provides a good starting environment for Haskell development. -%prep +%package -n stack +Version: %{stack_ver} +Summary: Haskell package tool +License: BSD +Url: http://haskellstack.org +Requires: gcc +Requires: gmp-devel +Recommends: zlib-devel +%description -n stack +Stack is a cross-platform program for developing Haskell projects. + + +%global main_version %{version} + +%if %{defined ghclibdir} +%ghc_lib_subpackage -l BSD-3-Clause %{casaclient} +%ghc_lib_subpackage -l BSD-3-Clause %{casatypes} +%ghc_lib_subpackage -l CC0-1.0 %{filelock} +%ghc_lib_subpackage -l BSD-3-Clause %{hifileparser} +%ghc_lib_subpackage -l MIT %{hpack} +%ghc_lib_subpackage -l BSD-3-Clause %{httpdownload} +%ghc_lib_subpackage -l BSD-3-Clause %{mintty} +%ghc_lib_subpackage -l BSD-3-Clause %{mustache} +%ghc_lib_subpackage -l MIT %{neatinterpolation} +%ghc_lib_subpackage -l BSD-3-Clause %{openbrowser} +%ghc_lib_subpackage -l BSD-3-Clause %{pantry} +%ghc_lib_subpackage -l BSD-3-Clause %{projecttemplate} +%ghc_lib_subpackage -l MIT %{rioorphans} +%ghc_lib_subpackage -l BSD-3-Clause %{stack} +%endif + +%global version %{main_version} + + +%prep +# Begin cabal-rpm setup: +%setup -q -c -a1 -a2 -a3 -a4 -a5 -a6 -a7 -a8 -a9 -a10 -a11 -a12 -a13 +# End cabal-rpm setup +( +cd %{stack} +%patch 1 -p1 -b .orig +) %build +# Begin cabal-rpm build: +%ghc_libs_build %{subpkgs} +# End cabal-rpm build %install +# Begin cabal-rpm install +%ghc_libs_install %{subpkgs} +%ghc_delete_rpaths +# End cabal-rpm install + +# open-browser +rm %{buildroot}%{_bindir}/example +echo %{_bindir}/hpack >> %{hpack}/ghc-hpack.files +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 %{SOURCE20} %{buildroot}%{_bindir}/stack-symlink-distro-ghc %files +%files -n stack +# Begin cabal-rpm files: +%license %{stack}/LICENSE +%doc %{stack}/CONTRIBUTING.md %{stack}/ChangeLog.md %{stack}/README.md +%{_bindir}/stack +%{_bindir}/stack-symlink-distro-ghc +# End cabal-rpm files +%{_datadir}/bash-completion/completions/stack + + %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 +* Sat Nov 11 2023 Jens Petersen - 2022.2-23 - 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) diff --git a/sources b/sources index e69de29..b3003ea 100644 --- a/sources +++ b/sources @@ -0,0 +1,14 @@ +SHA512 (stack-2.9.1.tar.gz) = 23446a96b2326fb2dc4a9ba1e52cd09fef92508e8b1c7e50ecf886efc441d6f7dc79318fee9ecde886a2e781fc6766ec4bb702fa4e722daa530ef4bce6d3edd1 +SHA512 (filelock-0.1.1.5.tar.gz) = 6ccd0b671cec8d1c2daa3115a5b2d8cd10a31db0a1dc1c15e6cb80d679bd2e09208be8bebc0f4bb64d7cdd0fad2e7e170e8283b6be61edd5017b788f94a41048 +SHA512 (hi-file-parser-0.1.3.0.tar.gz) = 2a2fa5e2e5574abeda360a0c5b5f80e7889ea83955c659460ff2c0c95411fc18652eac79a66e1d445e2d2df8b97bd21d32d1b4280f64785e7c23e51434cceb86 +SHA512 (hpack-0.35.2.tar.gz) = 0b07a509bc429199fefecfc6963aee71987540cdb8901b4d26034db426252d9a42f206607ee162c917343b7146a9cd1eb560703f4bb65594537d3f62255d0ca7 +SHA512 (http-download-0.2.0.0.tar.gz) = b31caa48c1ea2a01f1301ca63b2e0c135cd0d3d392b92518c7d70d89fd83da7fd95cffa3cb374900a45fb2da8d17f748de0de72fb4beb8ad11e203676f9864ae +SHA512 (mintty-0.1.4.tar.gz) = f5c3231f342d24d7dc38b0281579aa6f272767451412ea84e1c248f77331d6740186cef0bb4144b7655a80914daa0b1f3573107a76c29c1d2e6a56e793532733 +SHA512 (mustache-2.4.1.tar.gz) = 389a418712fee9ff16c88f45014470e1cdd31f6e9dd2f418853a1a2d174ba7fd11ee05ba20f22b134d34b95377bf55c5add5b52cf423ecb49338bd4ff6534e13 +SHA512 (neat-interpolation-0.5.1.3.tar.gz) = d777ac442d0b32348470b64458a88c76836e84b9fe15f46c6ec05f8a84ebe4a5b79827b85ff9a0e2138bb8db10fc4493c2793e13091ee5f5decf5e28110d86ba +SHA512 (open-browser-0.2.1.0.tar.gz) = 94ba71597c270b518742534b1b9b9a7ca0ede2eeb08a030b03cca6dbe6e5a2de363dc443bae907ca5c90b126aeb7dc5f5dd1eada95ca78a0ba1a8d472df4ada1 +SHA512 (pantry-0.5.7.tar.gz) = 05814d404f97873939e29f183cd74d2c8e6bf5b3e87a9c665694578faeab641d9b8d3efef0525727a881031a5bf815e39299388ce0207d5ef04c674f172e7618 +SHA512 (project-template-0.2.1.0.tar.gz) = ed70f640e5197f7a6158b851dcd3990e77b7266f716be248ecfb012c4827dc688028aa78d649313203a274357f57e45e94371a09446c4404d3282add0d1a158c +SHA512 (rio-orphans-0.1.2.0.tar.gz) = 85e883977e161161e5ba8f4fa6d13026d71f7367bac262307f9a8cfdc0316b71a490fcb6c15737919a6b4e73b3355b413161e09f5167c95b1f0c5a22c045f7ac +SHA512 (casa-client-0.0.1.tar.gz) = 2df03a0b1c2e01f2d24728e96fe446a25b630f5495c4e9995bcbde1ee9da530df1c6b40dde954cfaf6de2af6036fa6cfda7d9957b22106316557cc57d64114fa +SHA512 (casa-types-0.0.2.tar.gz) = a54bb7f15310878e0a4c0524749ba8c8de8537a60892d278941cacefb80ad9d31e9ba16dd236c196b6639758f281f9ae66911d04c39b0ec6e2b75db5127ad5bf diff --git a/stack-2.1-relax_version_warnings.patch b/stack-2.1-relax_version_warnings.patch new file mode 100644 index 0000000..53bd16e --- /dev/null +++ b/stack-2.1-relax_version_warnings.patch @@ -0,0 +1,28 @@ +--- stack-2.1.3.1/src/Stack/Setup.hs~ 2019-07-14 12:22:56.000000000 +0800 ++++ stack-2.1.3.1/src/Stack/Setup.hs 2020-04-12 11:56:39.453839733 +0800 +@@ -482,9 +482,9 @@ + logWarn "For more information, see: https://github.com/commercialhaskell/stack/issues/648" + logWarn "" + pure True +- | ghcVersion >= mkVersion [8, 7] -> do ++ | ghcVersion >= mkVersion [8, 9] -> do + logWarn $ +- "Stack has not been tested with GHC versions above 8.6, and using " <> ++ "Stack has not been tested with GHC versions above 8.8, and using " <> + fromString (versionString ghcVersion) <> + ", this may fail" + pure True +@@ -509,9 +509,9 @@ + 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 [2, 5] -> ++ | cabalVersion >= mkVersion [3, 1] -> + logWarn $ +- "Stack has not been tested with Cabal versions above 2.4, but version " <> ++ "Stack has not been tested with Cabal versions above 3.0, but version " <> + fromString (versionString cabalVersion) <> + " was found, this may fail" + | otherwise -> pure () + +Diff finished. Sun Apr 12 11:56:54 2020 diff --git a/stack-Setup-Platforms.patch b/stack-Setup-Platforms.patch deleted file mode 100644 index b557d44..0000000 --- a/stack-Setup-Platforms.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- 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 deleted file mode 100644 index 2bedd29..0000000 --- a/stack-disable-ghc-Cabal-version-warnings.patch +++ /dev/null @@ -1,38 +0,0 @@ ---- 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 deleted file mode 100644 index fd4525d..0000000 --- a/stack-disabled-global-warnings.patch +++ /dev/null @@ -1,49 +0,0 @@ -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 index 894dba8..d3c7b39 100755 --- a/stack-symlink-distro-ghc +++ b/stack-symlink-distro-ghc @@ -7,29 +7,21 @@ if [ -z "$VERSION" ]; then 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" + echo "$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 +# FIXME arch +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 + echo "$STACK_GHCDIR exists: please remove first" + exit 1 fi mkdir -p $STACK_GHCDIR/bin