diff options
author | Matthew Pickering <matthewtpickering@gmail.com> | 2021-07-14 09:34:29 +0100 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2021-07-27 12:01:51 -0400 |
commit | 957fe3596e8a184ab6c4fe41be5c2f07c516fcbe (patch) | |
tree | be6aa4222ce56fb09e3cf1a68fb8e843b350c2cf | |
parent | 45f0555455f7384727d959954dc359d491f32ebf (diff) | |
download | haskell-957fe3596e8a184ab6c4fe41be5c2f07c516fcbe.tar.gz |
hadrian: Call ghc-pkg recache after copying package database into bindist
The package.cache needs to have a later mod-time than all of the .conf
files. This invariant can be destroyed by `cp -r` and so we run `ghc-pkg
recache` to ensure the package database which is distributed is
consistent.
If you are installing a relocatable bindist, for example, on windows,
you should preserve mtimes by using cp -a or run ghc-pkg recache after
installing.
-rw-r--r-- | hadrian/src/Rules/BinaryDist.hs | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/hadrian/src/Rules/BinaryDist.hs b/hadrian/src/Rules/BinaryDist.hs index af0088ddff..9a0a1e71e4 100644 --- a/hadrian/src/Rules/BinaryDist.hs +++ b/hadrian/src/Rules/BinaryDist.hs @@ -167,6 +167,11 @@ bindistRules = do copyDirectory (ghcBuildDir -/- "lib") bindistFilesDir copyDirectory (rtsIncludeDir) bindistFilesDir + -- Call ghc-pkg recache, after copying so the package.cache is + -- accurate, then it's on the distributor to use `cp -a` to install + -- a relocatable bindist. + cmd_ (bindistFilesDir -/- "bin" -/- "ghc-pkg") ["recache"] + unless cross $ need ["docs"] -- TODO: we should only embed the docs that have been generated |