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;
|
DrvInfos installed;
|
||||||
queryInstalled(globals.state, installed, globals.linkPath);
|
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) {
|
for (DrvInfos::iterator i = drvs.begin(); i != drvs.end(); ++i) {
|
||||||
cout << format("%1%%2% %3%\n")
|
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' : '-')
|
% (isValidPath(i->second.outPath) ? 'P' : '-')
|
||||||
% i->second.name;
|
% i->second.name;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue