haskell / haskell/cabal

Version 3.12.1.0 Fails to Bootstrap with Error "Installation directories are not prefix_relative"

Open
#10,155 9 comments 1 reaction 0 assignees View on GitHub
needs triage type: bug
Dominant language
Haskell
Stars
1.7k
Forks
750
Avg merge
4d 3h
Merged PRs (30d)
28

Description

**Describe the bug**

I'm the maintainer for MacPorts `cabal`, and am trying to update to version 3.12.1.0, which is bootstrapped from source using the prebuilt binary at https://downloads.haskell.org/~cabal/cabal-install-latest/.

Source builds using either `--project-file=cabal.bootstrap.project` or `--project-file=cabal.release.project` fail to build with the multiple errors of the form:

> ```
> :info:build Build log (
> :info:build /opt/local/var/macports/build/_opt_local_ports_lang_cabal/cabal/work/.home/.cabal/logs/ghc-9.6.4/rgx-bs-0.94.0.2-56aa30a0.log
> :info:build ):
> :info:build Configuring library for regex-base-0.94.0.2...
> :info:build Error: [Cabal-6000]
> :info:build Installation directories are not prefix_relative:
> :info:build internal error InstallDirs.libsubdir
> :info:build CallStack (from HasCallStack):
> :info:build error, called at src/Distribution/Simple/InstallDirs.hs:147:19 in Cabal-3.12.1.0-inplace:Distribution.Simple.InstallDirs
> :info:build Failed to build os-string-2.0.3. The failure occurred during the configure
> :info:build step.
> ```

This error is new in version 3.12.1.0. Version 3.10.3.0 bootstraps as expected.

See:

https://github.com/haskell/cabal/blob/7cbc45ede7545a39003d6fb56b5a9d2d7d505176/Cabal/src/Distribution/Simple/Errors.hs#L633

**To Reproduce**
Steps to reproduce the behavior:

```
$ env CABAL_CONFIG=/opt/local/var/macports/build/_opt_local_ports_lang_cabal/cabal/work/.home/.cabal/config GHC=/opt/local/bin/ghc /opt/local/bin/cabal-prebuilt --config-file=/opt/local/var/macports/build/_opt_local_ports_lang_cabal/cabal/work/.home/.cabal/config update
$ /opt/local/bin/cabal-prebuilt --config-file=/opt/local/var/macports/build/_opt_local_ports_lang_cabal/cabal/work/.home/.cabal/config configure
$ /opt/local/bin/cabal-prebuilt --config-file=/opt/local/var/macports/build/_opt_local_ports_lang_cabal/cabal/work/.home/.cabal/config build cabal-install --project-file=cabal.bootstrap.project -j12 --builddir=/opt/local/var/macports/build/_opt_local_ports_lang_cabal/cabal/work/dist --prefix=/opt/local --datadir=/opt/local/share/cabal --docdir=/opt/local/share/doc/cabal --htmldir=/opt/local/share/doc/cabal --haddockdir=/opt/local/share/doc/cabal --sysconfdir=/opt/local/etc/cabal --enable-relocatable --bindir=/opt/local/bin --datadir=/opt/local/share/cabal
```

**Expected behavior**

A successful bootstrap.

**System information**
- macOS 14
- `cabal` 3.12.1.0, `ghc` 9.6.4

**Additional context**

Automated builds of `cabal` 3.10.3.0 across multiple macOS versions: https://ports.macports.org/port/cabal/details/

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.