#2491: ghc-pkg unregister should complain about breaking dependent packages
--------------------------------+-------------------------------------------
    Reporter:  duncan           |       Owner:          
        Type:  feature request  |      Status:  new     
    Priority:  normal           |   Component:  Compiler
     Version:  6.8.3            |    Severity:  normal  
    Keywords:                   |    Testcase:          
Architecture:  Unknown          |          Os:  Unknown 
--------------------------------+-------------------------------------------
 Currently it is easy to silently break installed packages. This is
 particularly bad when users unregister things like 'old' versions of Cabal
 or bytestring (usually after having installed a new version) because this
 breaks packages like the ghc api package which cannot be re-installed.

 So ghc-pkg unregister should report an error if there are packages that
 depend on the package being unregistered (at least within the same package
 db). The error message should report which packages still need the package
 that the user was trying to unregister and should mention that if they're
 really really sure that they want to break other said packages that they
 can run the command again with `--force`. With `--force` inplace it should
 probably still print the warning (for the benefit of log files in
 packaging systems that may need to use `--force` if they do not guarantee
 an order of unregistering).

 Example user interaction:

 {{{
 $ ghc-pkg unregister bytestring-0.9.0.1
 ghc-pkg: bytestring-0.9.0.1 should not be unregistered
 because the following registered packages depend on it:
   ghc-6.8.2.
 Use --force to unregister anyway and break these packages.
 You can use ghc-pkg check at any time to see what packages
 in the broken state due to missing dependencies.

 $ ghc-pkg unregister bytestring-0.9.0.1 --force
 ghc-pkg: Warning: due to the forced unregistering of the
 package bytestring-0.9.0.1, the following packages are now
 in the broken state:
   ghc-6.8.2
 }}}

 Incidentally, we should also install a package.conf.shipped to help people
 recover their ghc installations after they've unwisely and over-zealously
 gone round unregistering 'old' packages. Debian and Gentoo already do this
 and it's saved many users.

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/2491>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to