(address . bug-guix@gnu.org)
Hi,
Consider this:
Toggle snippet (9 lines)
$ guix shell -C ghc-esqueleto ghc gcc-toolchain -- ghci
GHCi, version 9.2.5: https://www.haskell.org/ghc/ :? for help
ghci> import Data.ByteString.Base64.URL.Lazy
ghci> :t encode
encode
:: Data.ByteString.Lazy.Internal.ByteString
-> Data.ByteString.Lazy.Internal.ByteString
The package ghc-base64-bytestring should not be visible and instead, the
user should see:
<no location info>: error:
Could not find module `Data.ByteString.Base64.URL.Lazy'
It is not a module in the current program, or in any known package.
See discussion for more details if needed.
GHC packages' inputs leak in guix shell
Saku Laesvuori <saku@laesvuori.fi>
Tue, 15 Aug 2023 09:51:50 +0300
id:20230815065150.5joaxyts646mnpex@X-kone
As reported in the discussion above, cabal is not exposing the package
required as dependency.
Toggle snippet (18 lines)
$ guix shell -CN cabal-install coreutils zlib -D ghc-old-time
$ cabal update
$ env -u GHC_PACKAGE_PATH cabal install --lib esqueleto
$ ghci
ghci> import Database.Esqueleto.Experimental
ghci> :t encode
<interactive>:1:1: error: Variable not in scope: encode
ghci> import Data.ByteString.Base64.URL.Lazy
<no location info>: error:
Could not load module `Data.ByteString.Base64.URL.Lazy'
It is a member of the hidden package `base64-bytestring-1.2.1.0'.
You can run `:set -package base64-bytestring' to expose it.
(Note: this unloads all the modules in the current scope.)
Cheers,
simon