forked from lix-project/lix
* In nix-env --query --status', determine the
I' bit by looking at
the output path of a derivation, not the path of its store expression. This ensures that changes that affect the path of the store expression but not the output path, do not affect the `installed' state of a derivation.
This commit is contained in:
parent
9a404e45c9
commit
55e11bc0d3
|
@ -600,9 +600,15 @@ static void opQuery(Globals & globals,
|
|||
DrvInfos installed;
|
||||
queryInstalled(globals.state, installed, globals.linkPath);
|
||||
|
||||
PathSet installedPaths; /* output paths of installed drvs */
|
||||
for (DrvInfos::iterator i = installed.begin();
|
||||
i != installed.end(); ++i)
|
||||
installedPaths.insert(i->second.outPath);
|
||||
|
||||
for (DrvInfos::iterator i = drvs.begin(); i != drvs.end(); ++i) {
|
||||
cout << format("%1%%2% %3%\n")
|
||||
% (installed.find(i->first) != installed.end() ? 'I' : '-')
|
||||
% (installedPaths.find(i->second.outPath)
|
||||
!= installedPaths.end() ? 'I' : '-')
|
||||
% (isValidPath(i->second.outPath) ? 'P' : '-')
|
||||
% i->second.name;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue