By being in sync with the pname, it makes it easier to walk back from
the pname that shows in the /nix/store back to the attribute.
This change should not cause any rebuild.
The reliance on the OsPath API of this package means that there's no
(easy?) install plan for GHC < 9.6. We only _need_ stan for GHC 9.4 HLS,
on lower versions it seems to be broken by independent issues.
Previously, `ghcWithPackages` would fail to build on macOS because
package `.conf` files now contain a literal `${pkgroot}` (which of
course does not exist):
```
$ grep -Poz "dynamic-library-dirs:\s*\K .+\n" /nix/store/s5xrmb3583fd5qjrqsg73fblaq46gqpd-ghc-9.10.1-with-packages/lib/ghc-9.10.1/lib/package.conf.d/*
...
/nix/store/s5xrmb3583fd5qjrqsg73fblaq46gqpd-ghc-9.10.1-with-packages/lib/ghc-9.10.1/lib/package.conf.d/unix-2.8.5.1-ce1b.conf.copy: ${pkgroot}/../lib/aarch64-osx-ghc-9.10.1
...
```
Therefore, we use `ghc-pkg --simple-output list` to get a list of
`.conf` files and `ghc-pkg --simple-output field "$pkg"
dynamic-library-dirs` to get the value of the field while expanding
`${pkgroot}` prefixes.
The issue presents itself in README.lhs which normally is a symlink to
README.md. Upstream has a patch fixing the issue, but we need to
additionally deal with the fact that the Hackage tarball doesn't
preserve the symlink, of course.
Since Stackage LTS doesn't run test suites, PVP legal updates can
sometimes break test suites. This happened here. See the comment for
details.
Presumably because of configuration ordering, there's no elegant way to
override a constraint from stackage.yaml at the moment.
Fixes build of `pkgsCross.aarch64-android-prebuilt.haskell.packages.ghc910.attoparsec`:
```
RPATH of binary /nix/store/g6ncgk2b04mv722hh2jgfbixyawbwabv-attoparsec-aarch64-unknown-linux-android-0.14.4/lib/ghc-9.10.1/lib/aarch64-android-ghc-9.10.1-inplace/libHSattoparsec-0.14.4-GkMCGqk5eKArKmd1r9IB7-ghc9.10.1.so contains a forbidden reference to /build/
```
Contrary to intuition, an assert will **not** fail CI's Eval workflow.
Instead, the package will be hidden from Eval. A warning will be
evaluated - and then cause Eval to fail.
Also, all warnings are printed, before Eval fails. Thus we can see at
one glance which packages need to be checked and don't need to iterate.