GHC packages inputs leak in guix shell

  • Open
  • quality assurance status badge
Details
One participant
  • Simon Tournier
Owner
unassigned
Submitted by
Simon Tournier
Severity
normal
S
S
Simon Tournier wrote on 4 Oct 2023 20:26
(address . bug-guix@gnu.org)
87jzs2z1ka.fsf@gmail.com
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
?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send an email to 66347@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 66347
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch