Reinstalling a package + all its reverse dependencies

Mikhail Glushenkov the.dead.shall.rise at gmail.com
Fri Nov 16 00:06:09 CET 2012


Hi all,

While working on #1105 ("Rebuild source directories added to the
sandbox"), I encountered a problem: there is no way to reinstall a
bunch of packages + all their reverse dependencies. Right now when you
run sandbox-build it does the following (see the cabal-sandbox branch
in my repo [1]):

cabal install /path/to/add-source-dep-1 ... /path/to/add-source-dep-N
--force-reinstall && cabal build

Unfortunately, this doesn't reinstall the reverse dependencies of
add-source deps, which can obviously break them (hence the need for
--force-reinstall). I tried several option combinations, but nothing
gives me what I want.

To solve this, I propose adding an option
'--only-dependencies-of=TARGET' that would work like
'--only-dependencies', but only remove TARGET from the install plan
(see adjustOnlyDependencies in D.C.Install). This would make it
possible to implement sandbox-build in the following fashion:

cabal install /path/to/add-source-dep-1 ... /path/to/add-source-dep-N
--only-dependencies-of=. && cabal build

Comments?


[1] https://github.com/23Skidoo/cabal/commits/cabal-sandbox

-- 
()  ascii ribbon campaign - against html e-mail
/\  www.asciiribbon.org   - against proprietary attachments



More information about the cabal-devel mailing list