|
Since upgrading to 7.4.1, if I 'cabal install' successfully and then 'cabal install' a second time without first doing a 'ghc-pkg unregister <package-name>', I get the following complaint:
cabal: The install plan contains reinstalls which can break your GHC The only path I've found so far that's willing to rebuild or even say nothing needs rebuilding (when nothing does) is to 'ghc-pkg unregister' and then 'cabal install' again. I'm getting the same behavior on Red Hat 5 and Mac OS 10.6.8, both compiled from sources. Does anyone know what's going on here? -- Conal _______________________________________________ Libraries mailing list [hidden email] http://www.haskell.org/mailman/listinfo/libraries |
|
Hi Conal.
On Sun, Feb 5, 2012 at 12:36 AM, Conal Elliott <[hidden email]> wrote: > Since upgrading to 7.4.1, if I 'cabal install' successfully and then 'cabal > install' a second time without first doing a 'ghc-pkg unregister > <package-name>', I get the following complaint: > > [...] The warning is intended to prevent you from breaking your system without knowing that you know that you're running a potentially dangerous cabal invocation. The --force-reinstalls flag should always make it build. If it doesn't, it's a bug. In addition, I'm planning to make the warning a little bit less aggressive before the release. > The only path I've found so far that's willing to rebuild or even say > nothing needs rebuilding (when nothing does) is to 'ghc-pkg unregister' and > then 'cabal install' again. I'm getting the same behavior on Red Hat 5 and > Mac OS 10.6.8, both compiled from sources. I'd be surprised if the OS matters. But as I said, I've not yet encountered a situation where it wouldn't build given --force-reinstalls. Cheers, Andres _______________________________________________ Libraries mailing list [hidden email] http://www.haskell.org/mailman/listinfo/libraries |
|
On Sat, Feb 4, 2012 at 9:51 PM, Andres Löh <[hidden email]> wrote:
> Hi Conal. > > On Sun, Feb 5, 2012 at 12:36 AM, Conal Elliott <[hidden email]> wrote: >> Since upgrading to 7.4.1, if I 'cabal install' successfully and then 'cabal >> install' a second time without first doing a 'ghc-pkg unregister >> <package-name>', I get the following complaint: >> >> [...] > > The warning is intended to prevent you from breaking your system > without knowing that you know that you're running a potentially > dangerous cabal invocation. > > The --force-reinstalls flag should always make it build. If it > doesn't, it's a bug. > > In addition, I'm planning to make the warning a little bit less > aggressive before the release. Before the release of what? (seeing as GHC 7.4.1 has been released) > >> The only path I've found so far that's willing to rebuild or even say >> nothing needs rebuilding (when nothing does) is to 'ghc-pkg unregister' and >> then 'cabal install' again. I'm getting the same behavior on Red Hat 5 and >> Mac OS 10.6.8, both compiled from sources. > > I'd be surprised if the OS matters. But as I said, I've not yet > encountered a situation where it wouldn't build given > --force-reinstalls. > > Cheers, > Andres > > _______________________________________________ > Libraries mailing list > [hidden email] > http://www.haskell.org/mailman/listinfo/libraries _______________________________________________ Libraries mailing list [hidden email] http://www.haskell.org/mailman/listinfo/libraries |
|
>> In addition, I'm planning to make the warning a little bit less
>> aggressive before the release. > > Before the release of what? (seeing as GHC 7.4.1 has been released) Sorry, I should have been clear. Before the release of cabal-install. The described behaviour only occurs in the current development version of cabal-install. It isn't tied directly to GHC 7.4.1. Cheers, Andres _______________________________________________ Libraries mailing list [hidden email] http://www.haskell.org/mailman/listinfo/libraries |
|
In reply to this post by Andres Löh-2
Hi Andres,
Thanks for the reply! Note that I get this message even running 'cabal install' a second time after changing nothing. Is that scenario an example of what you mean by a "potentially dangerous cabal invocation"? I've been unable to avoid this error message by any other means that (a) 'ghc-pkg unregister <package>' or (b) '--force-reinstall'. So far, '--solver=modular' hasn't helped. So I'm hoping for something less aggressive. In particular, in case nothing has changed, I want 'cabal install' to succeed (exit code 0) so that my automated build & install & release processes will continue rather than get stopped. Regards, - Conal On Sat, Feb 4, 2012 at 9:51 PM, Andres Löh <[hidden email]> wrote: Hi Conal. _______________________________________________ Libraries mailing list [hidden email] http://www.haskell.org/mailman/listinfo/libraries |
|
Hi Conal.
> Thanks for the reply! Note that I get this message even running 'cabal > install' a second time after changing nothing. Is that scenario an example > of what you mean by a "potentially dangerous cabal invocation"? The check currently is entirely ad-hoc. Any reinstallation of an existing package triggers the warning. There's no hash comparison. > I've been > unable to avoid this error message by any other means that (a) 'ghc-pkg > unregister <package>' or (b) '--force-reinstall'. So far, '--solver=modular' > hasn't helped. So I'm hoping for something less aggressive. In particular, > in case nothing has changed, I want 'cabal install' to succeed (exit code 0) > so that my automated build & install & release processes will continue > rather than get stopped. The message appears, but building should work, with --force-reinstall and no --dry-run. Can you confirm that you've tried that? Cheers, Andres _______________________________________________ Libraries mailing list [hidden email] http://www.haskell.org/mailman/listinfo/libraries |
|
>> I've been
>> unable to avoid this error message by any other means that (a) 'ghc-pkg >> unregister <package>' or (b) '--force-reinstall'. So far, '--solver=modular' >> hasn't helped. So I'm hoping for something less aggressive. In particular, >> in case nothing has changed, I want 'cabal install' to succeed (exit code 0) >> so that my automated build & install & release processes will continue >> rather than get stopped. > > The message appears, but building should work, with --force-reinstall > and no --dry-run. Can you confirm that you've tried that? Actually, the message should not even appear if --force-reinstalls is given. Are you using the latest development version of cabal-install from darcs? Cheers, Andres _______________________________________________ Libraries mailing list [hidden email] http://www.haskell.org/mailman/listinfo/libraries |
|
In reply to this post by Andres Löh-2
On Sun, Feb 5, 2012 at 12:43 AM, Andres Löh <[hidden email]> wrote:
Hi Conal. I'm confused. Isn't package re-installation an extremely common thing in cabal while developing software? Do you cope by habitually adding --force-reinstall during development? Perhaps that habit is the piece missing from my mental picture.
Yes, building does work for me with --force-reinstall. -- Conal _______________________________________________ Libraries mailing list [hidden email] http://www.haskell.org/mailman/listinfo/libraries |
|
On Sun, Feb 5, 2012 at 10:48 AM, Conal Elliott <[hidden email]> wrote:
> On Sun, Feb 5, 2012 at 12:43 AM, Andres Löh <[hidden email]> > wrote: >> >> Hi Conal. >> >> > Thanks for the reply! Note that I get this message even running 'cabal >> > install' a second time after changing nothing. Is that scenario an >> > example >> > of what you mean by a "potentially dangerous cabal invocation"? >> >> The check currently is entirely ad-hoc. Any reinstallation of an >> existing package triggers the warning. There's no hash comparison. > > > I'm confused. Isn't package re-installation an extremely common thing in > cabal while developing software? I would say, "You should never mutate your user or global package database" and recommend using cabal-dev. The way cabal-install does destructive updates is evil. In particular, it likes to mutate your global or user package database. You run the risk of building something and then breaking it later by mutating its dependencies. With cabal-dev it would be more like this: # Suppose you're in the source of bar # Further suppose you just changed # dependency 'foo' that you're also developing cabal-dev add-source ../foo cabal-dev install --reinstall foo Technically this still mutates a package database but, it's a throwaway package database in the bar directory. I lose very little when I 'rm -rf cabal-dev dist' and my user and global package databases stay in tact. I feel as though I can't sing the sandboxed-build praise loudly enough. The time my computer takes to rebuild packages is negligible to the human time spent dealing with broken package databases.. I hope that helps, Jason _______________________________________________ Libraries mailing list [hidden email] http://www.haskell.org/mailman/listinfo/libraries |
|
Ah -- so use cabal-dev for development and cabal-install when a version stabilizes? -- Conal
On Sun, Feb 5, 2012 at 4:20 PM, Jason Dagit <[hidden email]> wrote:
_______________________________________________ Libraries mailing list [hidden email] http://www.haskell.org/mailman/listinfo/libraries |
| Powered by Nabble | Edit this page |
