rules_haskell
rules_haskell copied to clipboard
Project created through `start` script doesn't build in nix shell
Describe the bug
Trying to build the example project generated with the start
script fails.
To Reproduce
I have used a pure nix shell to try and rule out any local setup on my machine.
flake.nix
{
inputs = {
nixpkgs.url = "nixpkgs/nixos-23.11";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = { self, nixpkgs, flake-utils }: flake-utils.lib.eachDefaultSystem (system: {
devShells.default = let
pkgs = import nixpkgs { inherit system; };
in pkgs.mkShell {
buildInputs = [
pkgs.bazel
pkgs.curl
];
};
});
}
$ mkdir example && cd example
$ # copy flake.nix into directory
$ nix develop -i
$ sh <(curl https://raw.githubusercontent.com/tweag/rules_haskell/master/start)
$ bazel run //:example
Error
Starting local Bazel server and connecting to it...
Loading:
Loading:
Loading: 0 packages loaded
Analyzing: target //:example (1 packages loaded, 0 targets configured)
DEBUG: /home/jonathan/.cache/bazel/_bazel_jonathan/7c28c4ae27345253884c3695ec67b112/external/rules_haskell/haskell/cabal.bzl:2390:10: Stack not found.
DEBUG: /home/jonathan/.cache/bazel/_bazel_jonathan/7c28c4ae27345253884c3695ec67b112/external/rules_haskell/haskell/cabal.bzl:2391:10: Downloading Stack 2.7.5 ...
Analyzing: target //:example (43 packages loaded, 137 targets configured)
Analyzing: target //:example (43 packages loaded, 137 targets configured)
Analyzing: target //:example (44 packages loaded, 137 targets configured)
Analyzing: target //:example (44 packages loaded, 137 targets configured)
Analyzing: target //:example (44 packages loaded, 137 targets configured)
INFO: Analyzed target //:example (62 packages loaded, 10937 targets configured).
checking cached actions
INFO: Found 1 target...
[0 / 54] [Prepa] action 'SolibSymlink _solib_k8/external_Srules_Uhaskell_Ughc_Ulinux_Uamd64/libHStemplate-haskell-2.19.0.0-ghc9.4.6.so'
[59 / 63] HaskellCabalLibrary @stackage//:zlib; 0s linux-sandbox
ERROR: /home/jonathan/.cache/bazel/_bazel_jonathan/7c28c4ae27345253884c3695ec67b112/external/stackage/BUILD.bazel:12:22: HaskellCabalLibrary @stackage//:zlib failed: (Exit 1): cabal_wrapper failed: error executing command (from target @stackage//:zlib) bazel-out/k8-opt-exec-2B5CBBC6/bin/external/rules_haskell/haskell/cabal_wrapper bazel-out/k8-fastbuild/bin/external/stackage/zlib_cabal_wrapper_args.json
Use --sandbox_debug to see verbose messages from the sandbox and retain the sandbox build root for debugging
Traceback (most recent call last):
File "/home/jonathan/.cache/bazel/_bazel_jonathan/7c28c4ae27345253884c3695ec67b112/sandbox/linux-sandbox/19/execroot/YOUR_PROJECT_NAME_HERE/bazel-out/k8-opt-exec-2B5CBBC6/bin/external/rules_haskell/haskell/runghc.runfiles/rules_haskell/haskell/runghc.py", line 9, in <module>
subprocess.run([r.Rlocation("rules_haskell_ghc_linux_amd64/bin/runghc")] + sys.argv[1:], check=True)
File "/nix/store/ffy6s77zhixlwvzprz5j0zj4ma8n8h2q-python3-3.11.8/lib/python3.11/subprocess.py", line 571, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['/home/jonathan/.cache/bazel/_bazel_jonathan/7c28c4ae27345253884c3695ec67b112/sandbox/linux-sandbox/19/execroot/YOUR_PROJECT_NAME_HERE/bazel-out/k8-opt-exec-2B5CBBC6/bin/external/rules_haskell/haskell/runghc.runfiles/rules_haskell_ghc_linux_amd64/bin/runghc', '/home/jonathan/.cache/bazel/_bazel_jonathan/7c28c4ae27345253884c3695ec67b112/sandbox/linux-sandbox/19/execroot/YOUR_PROJECT_NAME_HERE/bazel-out/k8-fastbuild/bin/external/stackage/zlib-0.6.3.0/Setup.hs', 'configure', 'lib:zlib', '--verbose=0', '--user', '--with-compiler=/home/jonathan/.cache/bazel/_bazel_jonathan/7c28c4ae27345253884c3695ec67b112/sandbox/linux-sandbox/19/execroot/YOUR_PROJECT_NAME_HERE/external/rules_haskell_ghc_linux_amd64/bin/ghc', '--with-hc-pkg=/home/jonathan/.cache/bazel/_bazel_jonathan/7c28c4ae27345253884c3695ec67b112/sandbox/linux-sandbox/19/execroot/YOUR_PROJECT_NAME_HERE/external/rules_haskell_ghc_linux_amd64/bin/ghc-pkg', '--with-hsc2hs=/home/jonathan/.cache/bazel/_bazel_jonathan/7c28c4ae27345253884c3695ec67b112/sandbox/linux-sandbox/19/execroot/YOUR_PROJECT_NAME_HERE/external/rules_haskell_ghc_linux_amd64/bin/hsc2hs', '--with-ar=/nix/store/shdkxxdlpv66wl33rh9d01zfypaka1dn-gcc-wrapper-12.3.0/bin/ar', '--with-gcc=/home/jonathan/.cache/bazel/_bazel_jonathan/7c28c4ae27345253884c3695ec67b112/sandbox/linux-sandbox/19/execroot/YOUR_PROJECT_NAME_HERE/bazel-out/k8-opt-exec-2B5CBBC6/bin/external/rules_haskell/haskell/cc_wrapper-python', '--with-ld=/nix/store/shdkxxdlpv66wl33rh9d01zfypaka1dn-gcc-wrapper-12.3.0/bin/ld', '--with-strip=/nix/store/shdkxxdlpv66wl33rh9d01zfypaka1dn-gcc-wrapper-12.3.0/bin/strip', '--enable-deterministic', '--ghc-option=-pgma', '--ghc-option=/home/jonathan/.cache/bazel/_bazel_jonathan/7c28c4ae27345253884c3695ec67b112/sandbox/linux-sandbox/19/execroot/YOUR_PROJECT_NAME_HERE/bazel-out/k8-opt-exec-2B5CBBC6/bin/external/rules_haskell/haskell/cc_wrapper-python', '--ghc-option=-pgmc', '--ghc-option=/home/jonathan/.cache/bazel/_bazel_jonathan/7c28c4ae27345253884c3695ec67b112/sandbox/linux-sandbox/19/execroot/YOUR_PROJECT_NAME_HERE/bazel-out/k8-opt-exec-2B5CBBC6/bin/external/rules_haskell/haskell/cc_wrapper-python', '--ghc-option=-pgml', '--ghc-option=/home/jonathan/.cache/bazel/_bazel_jonathan/7c28c4ae27345253884c3695ec67b112/sandbox/linux-sandbox/19/execroot/YOUR_PROJECT_NAME_HERE/bazel-out/k8-opt-exec-2B5CBBC6/bin/external/rules_haskell/haskell/cc_wrapper-python', '--ghc-option=-pgmP', '--ghc-option=/home/jonathan/.cache/bazel/_bazel_jonathan/7c28c4ae27345253884c3695ec67b112/sandbox/linux-sandbox/19/execroot/YOUR_PROJECT_NAME_HERE/bazel-out/k8-opt-exec-2B5CBBC6/bin/external/rules_haskell/haskell/cc_wrapper-python -E -undef -traditional', '--ghc-option=-optc-fno-stack-protector', '--ghc-option=-pgml-supports-no-pie', '--ghc-option=-pgmlm', '--ghc-option=/nix/store/shdkxxdlpv66wl33rh9d01zfypaka1dn-gcc-wrapper-12.3.0/bin/ld', '--ghc-option=-optlm', '--ghc-option=-r', '--hsc2hs-option=-c/home/jonathan/.cache/bazel/_bazel_jonathan/7c28c4ae27345253884c3695ec67b112/sandbox/linux-sandbox/19/execroot/YOUR_PROJECT_NAME_HERE/bazel-out/k8-opt-exec-2B5CBBC6/bin/external/rules_haskell/haskell/cc_wrapper-python', '--hsc2hs-option=-l/home/jonathan/.cache/bazel/_bazel_jonathan/7c28c4ae27345253884c3695ec67b112/sandbox/linux-sandbox/19/execroot/YOUR_PROJECT_NAME_HERE/bazel-out/k8-opt-exec-2B5CBBC6/bin/external/rules_haskell/haskell/cc_wrapper-python', '--enable-relocatable', '--builddir=../../../bazel-out/k8-fastbuild/bin/external/stackage/zlib-0.6.3.0/zlib-0.6.3.0', '--prefix=/home/jonathan/.cache/bazel/_bazel_jonathan/7c28c4ae27345253884c3695ec67b112/sandbox/linux-sandbox/19/execroot/YOUR_PROJECT_NAME_HERE/bazel-out/k8-fastbuild/bin/external/stackage/zlib-0.6.3.0/_install', '--libdir=/home/jonathan/.cache/bazel/_bazel_jonathan/7c28c4ae27345253884c3695ec67b112/sandbox/linux-sandbox/19/execroot/YOUR_PROJECT_NAME_HERE/bazel-out/k8-fastbuild/bin/external/stackage/zlib-0.6.3.0/_install/zlib-0.6.3.0_iface', '--dynlibdir=/home/jonathan/.cache/bazel/_bazel_jonathan/7c28c4ae27345253884c3695ec67b112/sandbox/linux-sandbox/19/execroot/YOUR_PROJECT_NAME_HERE/bazel-out/k8-fastbuild/bin/external/stackage/zlib-0.6.3.0/_install/lib', '--libsubdir=', '--bindir=/home/jonathan/.cache/bazel/_bazel_jonathan/7c28c4ae27345253884c3695ec67b112/sandbox/linux-sandbox/19/execroot/YOUR_PROJECT_NAME_HERE/bazel-out/k8-fastbuild/bin/external/stackage/zlib-0.6.3.0/_install/bin', '--datadir=/home/jonathan/.cache/bazel/_bazel_jonathan/7c28c4ae27345253884c3695ec67b112/sandbox/linux-sandbox/19/execroot/YOUR_PROJECT_NAME_HERE/bazel-out/k8-fastbuild/bin/external/stackage/zlib-0.6.3.0/_install/zlib-0.6.3.0_data', '--datasubdir=', '--haddockdir=/home/jonathan/.cache/bazel/_bazel_jonathan/7c28c4ae27345253884c3695ec67b112/sandbox/linux-sandbox/19/execroot/YOUR_PROJECT_NAME_HERE/bazel-out/k8-fastbuild/bin/external/stackage/zlib-0.6.3.0/_install/zlib-0.6.3.0_haddock', '--htmldir=/home/jonathan/.cache/bazel/_bazel_jonathan/7c28c4ae27345253884c3695ec67b112/sandbox/linux-sandbox/19/execroot/YOUR_PROJECT_NAME_HERE/bazel-out/k8-fastbuild/bin/external/stackage/zlib-0.6.3.0/_install/zlib-0.6.3.0_haddock_html', '--package-db=clear', '--package-db=global', '--flags=-pkg-config', '--ghc-option=-w', '--ghc-option=-optF=-w', '--ghc-option=-optl-Wl,-rpath,$ORIGIN/../../../../../_solib_k8/external_Srules_Uhaskell_Ughc_Ulinux_Uamd64', '--ghc-option=-optl-Wl,-rpath,$ORIGIN/../../../../../_solib_k8/[email protected]_S_S_Czlib___Uexternal_Szlib.dev', '--extra-include-dirs=../../../external/zlib.dev', '--extra-include-dirs=../../../bazel-out/k8-fastbuild/bin/external/zlib.dev', '--extra-lib-dirs=../../../bazel-out/k8-fastbuild/bin/_solib_k8/[email protected]_S_S_Czlib___Uexternal_Szlib.dev', '--package-db=/home/jonathan/.cache/bazel/_bazel_jonathan/7c28c4ae27345253884c3695ec67b112/sandbox/linux-sandbox/19/execroot/YOUR_PROJECT_NAME_HERE/bazel-out/k8-fastbuild/bin/external/stackage/zlib-0.6.3.0/_install/zlib-0.6.3.0.conf.d']' died with <Signals.SIGSEGV: 11>.
Traceback (most recent call last):
File "/home/jonathan/.cache/bazel/_bazel_jonathan/7c28c4ae27345253884c3695ec67b112/sandbox/linux-sandbox/19/execroot/YOUR_PROJECT_NAME_HERE/bazel-out/k8-opt-exec-2B5CBBC6/bin/external/rules_haskell/haskell/cabal_wrapper.runfiles/rules_haskell/haskell/private/cabal_wrapper.py", line 301, in <module>
run([runghc] + runghc_args + [setup, "configure", \
File "/home/jonathan/.cache/bazel/_bazel_jonathan/7c28c4ae27345253884c3695ec67b112/sandbox/linux-sandbox/19/execroot/YOUR_PROJECT_NAME_HERE/bazel-out/k8-opt-exec-2B5CBBC6/bin/external/rules_haskell/haskell/cabal_wrapper.runfiles/rules_haskell/haskell/private/cabal_wrapper.py", line 69, in run
subprocess.run(cmd, check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, *args, **kwargs)
File "/nix/store/ffy6s77zhixlwvzprz5j0zj4ma8n8h2q-python3-3.11.8/lib/python3.11/subprocess.py", line 571, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['/home/jonathan/.cache/bazel/_bazel_jonathan/7c28c4ae27345253884c3695ec67b112/sandbox/linux-sandbox/19/execroot/YOUR_PROJECT_NAME_HERE/bazel-out/k8-opt-exec-2B5CBBC6/bin/external/rules_haskell/haskell/runghc', '/home/jonathan/.cache/bazel/_bazel_jonathan/7c28c4ae27345253884c3695ec67b112/sandbox/linux-sandbox/19/execroot/YOUR_PROJECT_NAME_HERE/bazel-out/k8-fastbuild/bin/external/stackage/zlib-0.6.3.0/Setup.hs', 'configure', 'lib:zlib', '--verbose=0', '--user', '--with-compiler=/home/jonathan/.cache/bazel/_bazel_jonathan/7c28c4ae27345253884c3695ec67b112/sandbox/linux-sandbox/19/execroot/YOUR_PROJECT_NAME_HERE/external/rules_haskell_ghc_linux_amd64/bin/ghc', '--with-hc-pkg=/home/jonathan/.cache/bazel/_bazel_jonathan/7c28c4ae27345253884c3695ec67b112/sandbox/linux-sandbox/19/execroot/YOUR_PROJECT_NAME_HERE/external/rules_haskell_ghc_linux_amd64/bin/ghc-pkg', '--with-hsc2hs=/home/jonathan/.cache/bazel/_bazel_jonathan/7c28c4ae27345253884c3695ec67b112/sandbox/linux-sandbox/19/execroot/YOUR_PROJECT_NAME_HERE/external/rules_haskell_ghc_linux_amd64/bin/hsc2hs', '--with-ar=/nix/store/shdkxxdlpv66wl33rh9d01zfypaka1dn-gcc-wrapper-12.3.0/bin/ar', '--with-gcc=/home/jonathan/.cache/bazel/_bazel_jonathan/7c28c4ae27345253884c3695ec67b112/sandbox/linux-sandbox/19/execroot/YOUR_PROJECT_NAME_HERE/bazel-out/k8-opt-exec-2B5CBBC6/bin/external/rules_haskell/haskell/cc_wrapper-python', '--with-ld=/nix/store/shdkxxdlpv66wl33rh9d01zfypaka1dn-gcc-wrapper-12.3.0/bin/ld', '--with-strip=/nix/store/shdkxxdlpv66wl33rh9d01zfypaka1dn-gcc-wrapper-12.3.0/bin/strip', '--enable-deterministic', '--ghc-option=-pgma', '--ghc-option=/home/jonathan/.cache/bazel/_bazel_jonathan/7c28c4ae27345253884c3695ec67b112/sandbox/linux-sandbox/19/execroot/YOUR_PROJECT_NAME_HERE/bazel-out/k8-opt-exec-2B5CBBC6/bin/external/rules_haskell/haskell/cc_wrapper-python', '--ghc-option=-pgmc', '--ghc-option=/home/jonathan/.cache/bazel/_bazel_jonathan/7c28c4ae27345253884c3695ec67b112/sandbox/linux-sandbox/19/execroot/YOUR_PROJECT_NAME_HERE/bazel-out/k8-opt-exec-2B5CBBC6/bin/external/rules_haskell/haskell/cc_wrapper-python', '--ghc-option=-pgml', '--ghc-option=/home/jonathan/.cache/bazel/_bazel_jonathan/7c28c4ae27345253884c3695ec67b112/sandbox/linux-sandbox/19/execroot/YOUR_PROJECT_NAME_HERE/bazel-out/k8-opt-exec-2B5CBBC6/bin/external/rules_haskell/haskell/cc_wrapper-python', '--ghc-option=-pgmP', '--ghc-option=/home/jonathan/.cache/bazel/_bazel_jonathan/7c28c4ae27345253884c3695ec67b112/sandbox/linux-sandbox/19/execroot/YOUR_PROJECT_NAME_HERE/bazel-out/k8-opt-exec-2B5CBBC6/bin/external/rules_haskell/haskell/cc_wrapper-python -E -undef -traditional', '--ghc-option=-optc-fno-stack-protector', '--ghc-option=-pgml-supports-no-pie', '--ghc-option=-pgmlm', '--ghc-option=/nix/store/shdkxxdlpv66wl33rh9d01zfypaka1dn-gcc-wrapper-12.3.0/bin/ld', '--ghc-option=-optlm', '--ghc-option=-r', '--hsc2hs-option=-c/home/jonathan/.cache/bazel/_bazel_jonathan/7c28c4ae27345253884c3695ec67b112/sandbox/linux-sandbox/19/execroot/YOUR_PROJECT_NAME_HERE/bazel-out/k8-opt-exec-2B5CBBC6/bin/external/rules_haskell/haskell/cc_wrapper-python', '--hsc2hs-option=-l/home/jonathan/.cache/bazel/_bazel_jonathan/7c28c4ae27345253884c3695ec67b112/sandbox/linux-sandbox/19/execroot/YOUR_PROJECT_NAME_HERE/bazel-out/k8-opt-exec-2B5CBBC6/bin/external/rules_haskell/haskell/cc_wrapper-python', '--enable-relocatable', '--builddir=../../../bazel-out/k8-fastbuild/bin/external/stackage/zlib-0.6.3.0/zlib-0.6.3.0', '--prefix=/home/jonathan/.cache/bazel/_bazel_jonathan/7c28c4ae27345253884c3695ec67b112/sandbox/linux-sandbox/19/execroot/YOUR_PROJECT_NAME_HERE/bazel-out/k8-fastbuild/bin/external/stackage/zlib-0.6.3.0/_install', '--libdir=/home/jonathan/.cache/bazel/_bazel_jonathan/7c28c4ae27345253884c3695ec67b112/sandbox/linux-sandbox/19/execroot/YOUR_PROJECT_NAME_HERE/bazel-out/k8-fastbuild/bin/external/stackage/zlib-0.6.3.0/_install/zlib-0.6.3.0_iface', '--dynlibdir=/home/jonathan/.cache/bazel/_bazel_jonathan/7c28c4ae27345253884c3695ec67b112/sandbox/linux-sandbox/19/execroot/YOUR_PROJECT_NAME_HERE/bazel-out/k8-fastbuild/bin/external/stackage/zlib-0.6.3.0/_install/lib', '--libsubdir=', '--bindir=/home/jonathan/.cache/bazel/_bazel_jonathan/7c28c4ae27345253884c3695ec67b112/sandbox/linux-sandbox/19/execroot/YOUR_PROJECT_NAME_HERE/bazel-out/k8-fastbuild/bin/external/stackage/zlib-0.6.3.0/_install/bin', '--datadir=/home/jonathan/.cache/bazel/_bazel_jonathan/7c28c4ae27345253884c3695ec67b112/sandbox/linux-sandbox/19/execroot/YOUR_PROJECT_NAME_HERE/bazel-out/k8-fastbuild/bin/external/stackage/zlib-0.6.3.0/_install/zlib-0.6.3.0_data', '--datasubdir=', '--haddockdir=/home/jonathan/.cache/bazel/_bazel_jonathan/7c28c4ae27345253884c3695ec67b112/sandbox/linux-sandbox/19/execroot/YOUR_PROJECT_NAME_HERE/bazel-out/k8-fastbuild/bin/external/stackage/zlib-0.6.3.0/_install/zlib-0.6.3.0_haddock', '--htmldir=/home/jonathan/.cache/bazel/_bazel_jonathan/7c28c4ae27345253884c3695ec67b112/sandbox/linux-sandbox/19/execroot/YOUR_PROJECT_NAME_HERE/bazel-out/k8-fastbuild/bin/external/stackage/zlib-0.6.3.0/_install/zlib-0.6.3.0_haddock_html', '--package-db=clear', '--package-db=global', '--flags=-pkg-config', '--ghc-option=-w', '--ghc-option=-optF=-w', '--ghc-option=-optl-Wl,-rpath,$ORIGIN/../../../../../_solib_k8/external_Srules_Uhaskell_Ughc_Ulinux_Uamd64', '--ghc-option=-optl-Wl,-rpath,$ORIGIN/../../../../../_solib_k8/[email protected]_S_S_Czlib___Uexternal_Szlib.dev', '--extra-include-dirs=../../../external/zlib.dev', '--extra-include-dirs=../../../bazel-out/k8-fastbuild/bin/external/zlib.dev', '--extra-lib-dirs=../../../bazel-out/k8-fastbuild/bin/_solib_k8/[email protected]_S_S_Czlib___Uexternal_Szlib.dev', '--package-db=/home/jonathan/.cache/bazel/_bazel_jonathan/7c28c4ae27345253884c3695ec67b112/sandbox/linux-sandbox/19/execroot/YOUR_PROJECT_NAME_HERE/bazel-out/k8-fastbuild/bin/external/stackage/zlib-0.6.3.0/_install/zlib-0.6.3.0.conf.d']' returned non-zero exit status 1.
Target //:example failed to build
Use --verbose_failures to see the command lines of failed build steps.
INFO: Elapsed time: 83.659s, Critical Path: 1.32s
INFO: 60 processes: 42 internal, 18 linux-sandbox.
FAILED: Build did NOT complete successfully
ERROR: Build failed. Not running target
Expected behavior
The build to succeed.
Environment
- OS name + version: Ubuntu 22.04.4 LTS
- Bazel version: 6.4.0
- Version of the rules: v0.19
Additional context
- Using
sh <(curl https://haskell.build/start)
(rather than the script in the repo) makes no difference. - The project generated with
--with-bzlmod=true
also fails. - The project generated with
--use-nix
succeeds.