Apply apt-0.5.15cnc6-alt-apt-shell.patch
Added in commit d952729
:
0.5.15cnc6-alt4
- apt-shell fixes from Mouse (#4306).
This commit is contained in:
parent
1adbad161e
commit
cfcfc5759b
@ -1,49 +0,0 @@
|
|||||||
--- apt-0.5.15lorg2/cmdline/apt-shell.cc.orig 2006-03-17 17:56:01 +0300
|
|
||||||
+++ apt-0.5.15lorg2/cmdline/apt-shell.cc 2006-03-17 17:56:02 +0300
|
|
||||||
@@ -1285,10 +1285,24 @@
|
|
||||||
if (Cache[Pkg].CandidateVer == 0 && Pkg->ProvidesList != 0)
|
|
||||||
{
|
|
||||||
vector<pkgCache::Package *> GoodSolutions;
|
|
||||||
+ unsigned long Size = 0;
|
|
||||||
for (pkgCache::PrvIterator Prv = Pkg.ProvidesList();
|
|
||||||
Prv.end() == false; Prv++)
|
|
||||||
- {
|
|
||||||
- pkgCache::PkgIterator PrvPkg = Prv.OwnerPkg();
|
|
||||||
+ Size++;
|
|
||||||
+ SPtrArray<pkgCache::Package *> PList = new pkgCache::Package *[Size];
|
|
||||||
+ pkgCache::Package **PEnd = PList;
|
|
||||||
+ for (pkgCache::PrvIterator Prv = Pkg.ProvidesList(); Prv.end() == false; Prv++)
|
|
||||||
+ *PEnd++ = Prv.OwnerPkg();
|
|
||||||
+ Fix.MakeScores();
|
|
||||||
+ qsort(PList,PEnd - PList,sizeof(*PList),&(Fix.ScoreSort));
|
|
||||||
+
|
|
||||||
+ for (unsigned int p=0; p<Size; ++p)
|
|
||||||
+ {
|
|
||||||
+ bool instVirtual = _config->FindB("APT::Install::Virtual", false);
|
|
||||||
+ pkgCache::PkgIterator PrvPkg = pkgCache::PkgIterator(*Pkg.Cache(), PList[p]);
|
|
||||||
+ pkgCache::PrvIterator Prv = Pkg.ProvidesList();
|
|
||||||
+ for (; Prv.end() == false && Prv.OwnerPkg() != PrvPkg; Prv++)
|
|
||||||
+ ;
|
|
||||||
// Check if it's a different version of a package already
|
|
||||||
// considered as a good solution.
|
|
||||||
bool AlreadySeen = false;
|
|
||||||
@@ -1310,6 +1324,8 @@
|
|
||||||
// the user might try to install something he already has
|
|
||||||
// without being aware.
|
|
||||||
GoodSolutions.push_back(PrvPkg);
|
|
||||||
+ if (instVirtual)
|
|
||||||
+ break;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
pkgCache::VerIterator PrvPkgCandVer =
|
|
||||||
@@ -4536,8 +4552,8 @@
|
|
||||||
largv[largc] = 0;
|
|
||||||
|
|
||||||
// Make our own copy of the configuration.
|
|
||||||
- delete _config;
|
|
||||||
- _config = new Configuration(GlobalConfig);
|
|
||||||
+ //delete _config;
|
|
||||||
+ //_config = new Configuration(GlobalConfig);
|
|
||||||
|
|
||||||
// Prepare the command line
|
|
||||||
CommandLine CmdL(CommandArgs(largv[1]),_config);
|
|
@ -1279,10 +1279,24 @@ bool TryToInstall(pkgCache::PkgIterator Pkg,pkgDepCache &Cache,
|
|||||||
if (Cache[Pkg].CandidateVer == 0 && Pkg->ProvidesList != 0)
|
if (Cache[Pkg].CandidateVer == 0 && Pkg->ProvidesList != 0)
|
||||||
{
|
{
|
||||||
vector<pkgCache::Package *> GoodSolutions;
|
vector<pkgCache::Package *> GoodSolutions;
|
||||||
|
unsigned long Size = 0;
|
||||||
for (pkgCache::PrvIterator Prv = Pkg.ProvidesList();
|
for (pkgCache::PrvIterator Prv = Pkg.ProvidesList();
|
||||||
Prv.end() == false; Prv++)
|
Prv.end() == false; Prv++)
|
||||||
|
Size++;
|
||||||
|
SPtrArray<pkgCache::Package *> PList = new pkgCache::Package *[Size];
|
||||||
|
pkgCache::Package **PEnd = PList;
|
||||||
|
for (pkgCache::PrvIterator Prv = Pkg.ProvidesList(); Prv.end() == false; Prv++)
|
||||||
|
*PEnd++ = Prv.OwnerPkg();
|
||||||
|
Fix.MakeScores();
|
||||||
|
qsort(PList,PEnd - PList,sizeof(*PList),&(Fix.ScoreSort));
|
||||||
|
|
||||||
|
for (unsigned int p=0; p<Size; ++p)
|
||||||
{
|
{
|
||||||
pkgCache::PkgIterator PrvPkg = Prv.OwnerPkg();
|
bool instVirtual = _config->FindB("APT::Install::Virtual", false);
|
||||||
|
pkgCache::PkgIterator PrvPkg = pkgCache::PkgIterator(*Pkg.Cache(), PList[p]);
|
||||||
|
pkgCache::PrvIterator Prv = Pkg.ProvidesList();
|
||||||
|
for (; Prv.end() == false && Prv.OwnerPkg() != PrvPkg; Prv++)
|
||||||
|
;
|
||||||
// Check if it's a different version of a package already
|
// Check if it's a different version of a package already
|
||||||
// considered as a good solution.
|
// considered as a good solution.
|
||||||
bool AlreadySeen = false;
|
bool AlreadySeen = false;
|
||||||
@ -1304,6 +1318,8 @@ bool TryToInstall(pkgCache::PkgIterator Pkg,pkgDepCache &Cache,
|
|||||||
// the user might try to install something he already has
|
// the user might try to install something he already has
|
||||||
// without being aware.
|
// without being aware.
|
||||||
GoodSolutions.push_back(PrvPkg);
|
GoodSolutions.push_back(PrvPkg);
|
||||||
|
if (instVirtual)
|
||||||
|
break;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
pkgCache::VerIterator PrvPkgCandVer =
|
pkgCache::VerIterator PrvPkgCandVer =
|
||||||
@ -4533,8 +4549,8 @@ int main(int argc,const char *argv[])
|
|||||||
largv[largc] = 0;
|
largv[largc] = 0;
|
||||||
|
|
||||||
// Make our own copy of the configuration.
|
// Make our own copy of the configuration.
|
||||||
delete _config;
|
//delete _config;
|
||||||
_config = new Configuration(GlobalConfig);
|
//_config = new Configuration(GlobalConfig);
|
||||||
|
|
||||||
// Prepare the command line
|
// Prepare the command line
|
||||||
CommandLine CmdL(CommandArgs(largv[1]),_config);
|
CommandLine CmdL(CommandArgs(largv[1]),_config);
|
||||||
|
Loading…
Reference in New Issue
Block a user