Version 3.12.1.0 Fails to Bootstrap with Error "Installation directories are not prefix_relative"
- 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
Assessment
This issue has not been assessed yet.