I can describe some of the problems at hand. I'm gonna leave some blanks because I'm not an expert on Cabal or Hackage. Maybe somebody else can fill them in.
## 1.A. Some infrastructure change has recently caused
hackage.fpcomplete.com (which is an AWS S3 bucket behind the scenes) to start returning 403s.
I'm asking my contacts if that's expected. It may just be time to retire that mirror.
## 1.B.
dream.io changed their URL schema.
Updating mirrors.json may require new signatures...? I've asked my contacts about that one, as well.
## 1.C. Even if the
dream.io URL was correct, it looks like that mirror isn't being updated.
The timestamp should be in the future, but it's from October 2025. So I think this mirror is doubly unusable.
I'm not sure who is able to administrate this mirror. But... you guessed it... I've asked around. Probably somebody on this list can also answer.
# 2. cabal only lists the status of the last mirror attempted.
For whatever reason, your invocation is failing to find what it's looking for in Hackage. It tries fpcomplete, which fails. It tries
dream.io, which fails. The last one is the error you get.
I don't know why your invocation is not succeeding with Hackage, itself. Maybe there's some extra verbosity you could throw at it.
- - -
And now, solutions!
# Solution 1: Override cabal's repository config.[1]
I think you can put that in a cabal.project somehow? Maybe it has to go in a config file[4].
# Solution 2: Stop using mirrors
...Ok, I lied. That's not a solution. Or is it? I don't know if it's possible or not.
-Bryan
- - -
[2]: I'm not sure *which* values from root.json are the ones you're supposed to put here.
[3]: I set up the HF mirror when I managed the adoption of FPComplete infrastructure.
Their mirror was rolled up in the Stackage machinery. In fact, I never actually
shut down the FPCo mirror. I've been the one updating it the last couple
years... right up until the 403s started. :)