diff --git a/.gitignore b/.gitignore index 35a982e..939929b 100644 --- a/.gitignore +++ b/.gitignore @@ -64,15 +64,3 @@ haskell-platform-2010.2.0.0.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.3.1.patch b/6028-2.9.3.1.patch new file mode 100644 index 0000000..59005a8 --- /dev/null +++ b/6028-2.9.3.1.patch @@ -0,0 +1,130 @@ +diff -ur stack-2.9.3.1/src/Path/Extra.hs stack-2.9.3.1.new/src/Path/Extra.hs +--- stack-2.9.3.1/src/Path/Extra.hs 2023-06-22 18:40:54.000000000 +0800 ++++ stack-2.9.3.1.new/src/Path/Extra.hs 2023-08-08 13:55:22.550467487 +0800 +@@ -15,6 +15,8 @@ + , pathToLazyByteString + , pathToText + , tryGetModificationTime ++ ,forgivingResolveFile ++ ,forgivingResolveFile' + ) where + + import Data.Time ( UTCTime ) +@@ -27,6 +29,7 @@ + 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 @@ + + 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 -ur stack-2.9.3.1/src/Stack/Build/Execute.hs stack-2.9.3.1.new/src/Stack/Build/Execute.hs +--- stack-2.9.3.1/src/Stack/Build/Execute.hs 2023-06-22 18:40:54.000000000 +0800 ++++ stack-2.9.3.1.new/src/Stack/Build/Execute.hs 2023-08-08 13:57:36.831258806 +0800 +@@ -66,6 +66,10 @@ + import Path + import Path.CheckInstall + import Path.Extra ( toFilePathNoTrailingSep, rejectMissingFile ) ++import Path.Extra ++ ( forgivingResolveFile, rejectMissingFile ++ , toFilePathNoTrailingSep ++ ) + import Path.IO + hiding ( findExecutable, makeAbsolute, withSystemTempDir ) + import RIO.Process +@@ -548,7 +552,7 @@ + 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 +@@ -2195,7 +2199,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) -> pure Nothing + else pure Nothing + case mabs of +diff -ur stack-2.9.3.1/src/Stack/ComponentFile.hs stack-2.9.3.1.new/src/Stack/ComponentFile.hs +--- stack-2.9.3.1/src/Stack/ComponentFile.hs 2023-06-22 18:40:54.000000000 +0800 ++++ stack-2.9.3.1.new/src/Stack/ComponentFile.hs 2023-08-08 14:04:52.914859026 +0800 +@@ -283,8 +283,8 @@ + Iface.unList . Iface.dmods . Iface.deps + resolveFileDependency file = do + resolved <- +- liftIO (forgivingAbsence (resolveFile dir file)) >>= +- rejectMissingFile ++ liftIO (forgivingResolveFile dir file) >>= ++ rejectMissingFile + when (isNothing resolved) $ + prettyWarnL + [ flow "Dependent file listed in:" +diff -ur stack-2.9.3.1/src/Stack/Ghci.hs stack-2.9.3.1.new/src/Stack/Ghci.hs +--- stack-2.9.3.1/src/Stack/Ghci.hs 2023-06-22 18:40:54.000000000 +0800 ++++ stack-2.9.3.1.new/src/Stack/Ghci.hs 2023-08-08 13:58:43.393651047 +0800 +@@ -29,7 +29,7 @@ + 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 RIO.Process + ( HasProcessContext, exec, proc, readProcess_ +@@ -225,7 +225,7 @@ + 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 -> pure path +diff -ur stack-2.9.3.1/src/Stack/PackageFile.hs stack-2.9.3.1.new/src/Stack/PackageFile.hs +--- stack-2.9.3.1/src/Stack/PackageFile.hs 2023-06-22 18:40:54.000000000 +0800 ++++ stack-2.9.3.1.new/src/Stack/PackageFile.hs 2023-08-08 14:06:21.163396729 +0800 +@@ -34,7 +34,7 @@ + -> RIO GetPackageFileContext (Maybe (Path Abs File)) + resolveFileOrWarn = resolveOrWarn "File" f + where +- f p x = liftIO (forgivingAbsence (resolveFile p x)) >>= rejectMissingFile ++ f p x = liftIO (forgivingResolveFile p x) >>= rejectMissingFile + + -- | Get all files referenced by the package. + packageDescModulesAndFiles diff --git a/haskell-platform.spec b/haskell-platform.spec index b4cbdbd..aa7fb01 100644 --- a/haskell-platform.spec +++ b/haskell-platform.spec @@ -1,20 +1,326 @@ -# generated by cabal-rpm-2.2.1 --subpackage +# generated by cabal-rpm-2.1.2 --subpackage # https://docs.fedoraproject.org/en-US/packaging-guidelines/Haskell/ +%global pkg_name stack +%global stack_ver 2.9.3.1 +%global pkgver %{pkg_name}-%{stack_ver} + +%global casaclient casa-client-0.0.1 +%global casatypes casa-types-0.0.2 +%global filelock filelock-0.1.1.6 +%global hifileparser hi-file-parser-0.1.4.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.2 +%global neatinterpolation neat-interpolation-0.5.1.3 +%global openbrowser open-browser-0.2.1.0 +%global pantry pantry-0.8.3 +%global projecttemplate project-template-0.2.1.0 +%global rioorphans rio-orphans-0.1.2.0 +%global subpkgs %{filelock} %{hifileparser} %{hpack} %{httpdownload} %{mintty} %{mustache} %{neatinterpolation} %{openbrowser} %{rioorphans} %{casatypes} %{casaclient} %{pantry} %{projecttemplate} + +# testsuite missing deps: raw-strings-qq + Name: haskell-platform -Version: 2024.1 -Release: 36%{?dist} +Version: 2023.1 +Release: 31%{?dist} Summary: Standard Haskell distribution License: BSD-3-Clause URL: https://www.haskell.org/ +# for stack: +# Begin cabal-rpm sources: +Source0: https://hackage.haskell.org/package/%{pkgver}/%{pkgver}.tar.gz +Source1: https://hackage.haskell.org/package/%{casaclient}/%{casaclient}.tar.gz +Source2: https://hackage.haskell.org/package/%{casatypes}/%{casatypes}.tar.gz +Source3: https://hackage.haskell.org/package/%{filelock}/%{filelock}.tar.gz +Source4: https://hackage.haskell.org/package/%{hifileparser}/%{hifileparser}.tar.gz +Source5: https://hackage.haskell.org/package/%{hpack}/%{hpack}.tar.gz +Source6: https://hackage.haskell.org/package/%{httpdownload}/%{httpdownload}.tar.gz +Source7: https://hackage.haskell.org/package/%{mintty}/%{mintty}.tar.gz +Source8: https://hackage.haskell.org/package/%{mustache}/%{mustache}.tar.gz +Source9: https://hackage.haskell.org/package/%{neatinterpolation}/%{neatinterpolation}.tar.gz +Source10: https://hackage.haskell.org/package/%{openbrowser}/%{openbrowser}.tar.gz +Source11: https://hackage.haskell.org/package/%{pantry}/%{pantry}.tar.gz +Source12: https://hackage.haskell.org/package/%{projecttemplate}/%{projecttemplate}.tar.gz +Source13: https://hackage.haskell.org/package/%{rioorphans}/%{rioorphans}.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 +Patch0: 6028-2.9.3.1.patch +Patch1: stack-disable-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 BuildRequires: cabal-install BuildRequires: happy BuildRequires: hscolour -BuildRequires: 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 '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 +# 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 +# End cabal-rpm deps # pull in all of ghc for least surprise # even though strictly libHSghc is not formally part of HP @@ -30,34 +336,153 @@ Haskell Platform is a set of stable and well used Haskell tools. It provides a good starting environment for Haskell development. +%package -n stack +Version: %{stack_ver} +Summary: Haskell package tool +Url: https://docs.haskellstack.org/en/stable/ +Requires: gcc +Requires: gmp-devel +Recommends: zlib-devel + +%description -n stack +Stack is a cross-platform program for developing Haskell projects. + + +%package -n ghc-stack +Version: %{stack_ver} +Summary: Haskell stack library + +%description -n ghc-stack +This package provides the Haskell stack shared library. + + +%package -n ghc-stack-devel +Version: %{stack_ver} +Summary: Haskell stack library development files +Provides: ghc-stack-static = %{version}-%{release} +Provides: ghc-stack-static%{?_isa} = %{version}-%{release} +%if %{defined ghc_version} +Requires: ghc-compiler = %{ghc_version} +%endif +Requires: ghc-stack%{?_isa} = %{version}-%{release} + +%description -n ghc-stack-devel +This package provides the Haskell stack library development files. + + +%if %{with haddock} +%package -n ghc-stack-doc +Version: %{stack_ver} +Summary: Haskell stack library documentation +BuildArch: noarch +Requires: ghc-filesystem + +%description -n ghc-stack-doc +This package provides the Haskell stack library documentation. +%endif + + +%if %{with ghc_prof} +%package -n ghc-stack-prof +Version: %{stack_ver} +Summary: Haskell stack profiling library +Requires: ghc-stack-devel%{?_isa} = %{version}-%{release} +Supplements: (ghc-stack-devel and ghc-prof) + +%description -n ghc-stack-prof +This package provides the Haskell stack profiling library. +%endif + + +%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} +%endif + +%global version %{main_version} + + %prep +# Begin cabal-rpm setup: +%setup -q -n %{pkgver} -a1 -a2 -a3 -a4 -a5 -a6 -a7 -a8 -a9 -a10 -a11 -a12 -a13 +# End cabal-rpm setup +%autopatch -p1 %build +# Begin cabal-rpm build: +%ghc_libs_build %{subpkgs} +%ghc_lib_build +# End cabal-rpm build %install +# Begin cabal-rpm install +%ghc_libs_install %{subpkgs} +%ghc_lib_install +mkdir -p %{buildroot}%{_datadir}/bash-completion/completions/ +%{buildroot}%{_bindir}/stack --bash-completion-script stack | sed s/filenames/default/ > %{buildroot}%{_datadir}/bash-completion/completions/stack +# 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 + +install -p %{SOURCE20} %{buildroot}%{_bindir}/stack-symlink-distro-ghc + +rm %{buildroot}%{_licensedir}/%{name}/LICENSE + %files +%files -n stack +# Begin cabal-rpm files: +%license LICENSE +%doc CONTRIBUTING.md ChangeLog.md README.md +%{_bindir}/stack +%{_bindir}/stack-symlink-distro-ghc +%{_datadir}/bash-completion/completions/stack +# End cabal-rpm files + + +%files -n ghc-stack -f ghc-stack.files +# Begin cabal-rpm files: +%license LICENSE +# End cabal-rpm files + + +%files -n ghc-stack-devel -f ghc-stack-devel.files +%doc CONTRIBUTING.md ChangeLog.md README.md + + +%if %{with haddock} +%files -n ghc-stack-doc -f ghc-stack-doc.files +%license LICENSE +%endif + + +%if %{with ghc_prof} +%files -n ghc-stack-prof -f ghc-stack-prof.files +%endif + + %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 diff --git a/sources b/sources index e69de29..b7dce7f 100644 --- a/sources +++ b/sources @@ -0,0 +1,14 @@ +SHA512 (stack-2.9.3.1.tar.gz) = d08c95c6104fbe0e79ef4ed7edf29a00caf54acd05eb1cc412a3114b80785995007fd0e8564d4a716dcf4b78ff32eaa32e8b19c3a288a20827ed2794a51f5573 +SHA512 (casa-client-0.0.1.tar.gz) = 2df03a0b1c2e01f2d24728e96fe446a25b630f5495c4e9995bcbde1ee9da530df1c6b40dde954cfaf6de2af6036fa6cfda7d9957b22106316557cc57d64114fa +SHA512 (casa-types-0.0.2.tar.gz) = a54bb7f15310878e0a4c0524749ba8c8de8537a60892d278941cacefb80ad9d31e9ba16dd236c196b6639758f281f9ae66911d04c39b0ec6e2b75db5127ad5bf +SHA512 (filelock-0.1.1.6.tar.gz) = 859a054d28c6ca915067c36d6764c4c6094aefb359e7082db64a2662f297f5a6c746b911fcdab182691932d58315dccaa5c0f39bb31f95a818c21633b6a88c2c +SHA512 (hi-file-parser-0.1.4.0.tar.gz) = c32adc409a4e7a884e30ed1604927e32bd569174d3bef95b43fa19a0a6f28dbac407cf7f0849ee8e926a5df0b8a5b6d5dbe7c30d1bfc16aee867afaca998a004 +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.2.tar.gz) = 96e10988f8ccf15cd5939e16cd8d5f551853168a3719cd4717b3bb40c3227f540f4d955614e1d38385fb30f9a97351f260f79cfbc872da30eadb73bac1ebc315 +SHA512 (neat-interpolation-0.5.1.3.tar.gz) = d777ac442d0b32348470b64458a88c76836e84b9fe15f46c6ec05f8a84ebe4a5b79827b85ff9a0e2138bb8db10fc4493c2793e13091ee5f5decf5e28110d86ba +SHA512 (open-browser-0.2.1.0.tar.gz) = 94ba71597c270b518742534b1b9b9a7ca0ede2eeb08a030b03cca6dbe6e5a2de363dc443bae907ca5c90b126aeb7dc5f5dd1eada95ca78a0ba1a8d472df4ada1 +SHA512 (pantry-0.8.3.tar.gz) = d3934bf761f4354f08fdc20cbc320b21c37b83114170ad3a006133122202312f34134ae6d470baef9ea552b2bad2ca2a73af08380ceee108108e395e21728ac5 +SHA512 (project-template-0.2.1.0.tar.gz) = ed70f640e5197f7a6158b851dcd3990e77b7266f716be248ecfb012c4827dc688028aa78d649313203a274357f57e45e94371a09446c4404d3282add0d1a158c +SHA512 (rio-orphans-0.1.2.0.tar.gz) = 85e883977e161161e5ba8f4fa6d13026d71f7367bac262307f9a8cfdc0316b71a490fcb6c15737919a6b4e73b3355b413161e09f5167c95b1f0c5a22c045f7ac 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 index b557d44..8319819 100644 --- a/stack-Setup-Platforms.patch +++ b/stack-Setup-Platforms.patch @@ -1,11 +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 +--- stack-2.9.3.1/src/Stack/Setup.hs~ 2023-12-15 20:23:43.622387891 +0800 ++++ stack-2.9.3.1/src/Stack/Setup.hs 2023-12-15 22:57:36.515310538 +0800 +@@ -1566,6 +1566,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 -> throwM $ UnsupportedSetupCombo os arch + downloadOrUseLocal 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-snapshots-json.patch b/stack-snapshots-json.patch new file mode 100644 index 0000000..7ee4bd6 --- /dev/null +++ b/stack-snapshots-json.patch @@ -0,0 +1,11 @@ +--- stack-2.9.3.1/src/Stack/Config.hs~ 2023-06-23 02:42:33.000000000 +0800 ++++ stack-2.9.3.1/src/Stack/Config.hs 2024-07-08 14:47:57.644375532 +0800 +@@ -214,7 +214,7 @@ + configWorkDir0 <- maybe (pure 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