-
Notifications
You must be signed in to change notification settings - Fork 696
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Amend non-reinstallable packages list #10087
Comments
GHC 9.10 ships with a new wired-in package, ghc-internal, which cannot be reinstalled. This commit prevents cabal-install from attempting it.
I've opened #10093 to add Ideally we would keep |
I've been thinking it would be nice of the libdir contained a file of bootlibs and dependencies, which would allow us to both get the non-reinstallable libs and treat the others as non-reinstallable if
(quick example only, I don't know enough about the details) |
Also, do we need to worry about the likes of |
The issue is that packages which cannot be actually built are uploaded to Hackage. AFAICT, the only reason is to provide haddocks in the common place with everything else. But I'd argue it's primarily a Hackage issue. If say |
@geekosaur Package distributed with |
"The build plan contains |
GHC 9.10 ships with a new wired-in package, ghc-internal, which cannot be reinstalled. This commit prevents cabal-install from attempting it.
) GHC 9.10 ships with a new wired-in package, ghc-internal, which cannot be reinstalled. This commit prevents cabal-install from attempting it. Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> (cherry picked from commit b1c8ee6)
) (#10108) GHC 9.10 ships with a new wired-in package, ghc-internal, which cannot be reinstalled. This commit prevents cabal-install from attempting it. Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> (cherry picked from commit b1c8ee6) Co-authored-by: Adam Gundry <[email protected]>
… (haskell#10093) GHC 9.10 ships with a new wired-in package, ghc-internal, which cannot be reinstalled. This commit prevents cabal-install from attempting it. Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
… (haskell#10093) GHC 9.10 ships with a new wired-in package, ghc-internal, which cannot be reinstalled. This commit prevents cabal-install from attempting it. Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
… (haskell#10093) GHC 9.10 ships with a new wired-in package, ghc-internal, which cannot be reinstalled. This commit prevents cabal-install from attempting it. Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
I think we only need the first half of your tuple @geekosaur, the second part is just the reverse dependencies of the package from the list, and I think that should be covered already. I've made a ticket to track the GHC side of this: https://gitlab.haskell.org/ghc/ghc/-/issues/25282 |
The second would matter if the bootlibs started to include a package with a partial or disjoint set of dependencies; I was thinking in terms of forward compatibility. |
I see that makes sense. I feel like maybe we could just go with the simpler thing for now. And if we need this in the future we could modify the interface. I don't imagine we will be needing this extra feature any time soon, since you normally want all the dependencies as well, otherwise you'd currently get broken packages. |
This lets Cabal know which packages are not reinstallable. Previously this was a fixed list that was hard-coded into Cabal. See: <haskell/cabal#10087> Resolvces #25282
This lets Cabal know which packages are not reinstallable. Previously this was a fixed list that was hard-coded into Cabal. See: <haskell/cabal#10087> Resolvces #25282
This lets Cabal know which packages are not reinstallable. Previously this was a fixed list that was hard-coded into Cabal. See: <haskell/cabal#10087> Resolvces #25282
This lets Cabal know which packages are wired-in. In turn Cabal can use this information to determine which packages should be re-installable. Previously this was a fixed list that was hard-coded into Cabal. See: <haskell/cabal#10087> Resolves #25282
To update on this. I made an initial MR here: https://gitlab.haskell.org/ghc/ghc/-/merge_requests/13297 @mpickering made some great points and it's likely that this interface will need more thought as GHC shouldn't expose information about packages, as that's outside its area of concern. I'm taking a break from this right now (someone else is free to pick it up), but I'm hoping to get back to it before 9.14 |
Insifar as it's ghc that is foisting this set of packages and their special requirements on the community, I must disagree. |
cabal-install
maintains a list ofnonReinstallablePackages
, preventing certain packages being reinstalled by the user. This list needs some updates:ghc-internal
(released with GHC 9.10) should be considered non-reinstallable, so it needs to be added to the list.template-haskell
package, so it can be removed from the list (cf. Marktemplate-haskell
non-upgradable (again) #4185).base
; this is not yet fully implemented but is tracked in https://gitlab.haskell.org/ghc/ghc/-/issues/24903 (cc @mpickering).The list of non-reinstallable packages does not currently depend on the compiler version. Really it should; is there an easy way to achieve this?
cabal/cabal-install/src/Distribution/Client/Dependency.hs
Lines 447 to 471 in dda541c
The text was updated successfully, but these errors were encountered: