Compare commits

..

1 commit

Author SHA1 Message Date
Jens Petersen
91f80c7d4c make stack-symlink-distro-ghc executable 2023-11-11 21:24:19 +08:00
9 changed files with 549 additions and 179 deletions

17
.gitignore vendored
View file

@ -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

125
6028-2.9.1.patch Normal file
View file

@ -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).

View file

@ -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 <releng@fedoraproject.org> - 2024.1-36
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Fri Jan 17 2025 Fedora Release Engineering <releng@fedoraproject.org> - 2024.1-35
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Fri Dec 6 2024 Jens Petersen <petersen@redhat.com> - 2024.1-34
- stack is now packaged separately
* Thu Aug 1 2024 Jens Petersen <petersen@redhat.com> - 2024.1-33
- https://hackage.haskell.org/package/stack-2.15.7/changelog
* Thu Jul 18 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2023.1-32
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Mon Jul 8 2024 Jens Petersen <petersen@redhat.com> - 2023.1-31
- update to new stackage snapshots.json url
* Thu Mar 7 2024 Jens Petersen <petersen@redhat.com> - 2023.1-30
- stack-symlink-distro-ghc: workaround for ppc64le and no longer error
for existing dir
* Wed Jan 24 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2023.1-29
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Sat Jan 20 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2023.1-28
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Fri Dec 15 2023 Jens Petersen <petersen@redhat.com> - 2023.1-27
- patch Stack.Setup to accept PPC64 and S390X Linux platforms
* Tue Nov 7 2023 Jens Petersen <petersen@redhat.com> - 2023.1-26
* Sat Nov 11 2023 Jens Petersen <petersen@redhat.com> - 2022.2-23
- make stack-symlink-distro-ghc executable
* Tue Aug 8 2023 Jens Petersen <petersen@redhat.com> - 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 <petersen@redhat.com> - 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 <releng@fedoraproject.org> - 2022.2-23
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Tue Apr 11 2023 Jens Petersen <petersen@redhat.com> - 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)

14
sources
View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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)

View file

@ -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