|
@@ -52,7 +52,7 @@ type
|
|
procedure ScanAvailablePackages;
|
|
procedure ScanAvailablePackages;
|
|
procedure ScanPackages;
|
|
procedure ScanPackages;
|
|
|
|
|
|
- function PackageIsBroken(APackage: TFPPackage; ARepository: TFPRepository): Boolean;
|
|
|
|
|
|
+ function PackageIsBroken(APackage: TFPPackage; out Reason: string; ARepository: TFPRepository): Boolean;
|
|
|
|
|
|
function FPMakeRepoFindPackage(APackageName: string; APackageKind: TpkgPackageKind): TFPPackage;
|
|
function FPMakeRepoFindPackage(APackageName: string; APackageKind: TpkgPackageKind): TFPPackage;
|
|
function FindPackage(APackageName: string; APackageKind: TpkgPackageKind): TFPPackage;
|
|
function FindPackage(APackageName: string; APackageKind: TpkgPackageKind): TFPPackage;
|
|
@@ -320,7 +320,7 @@ begin
|
|
ScanAvailablePackages;
|
|
ScanAvailablePackages;
|
|
end;
|
|
end;
|
|
|
|
|
|
-function TpkgFPpkg.PackageIsBroken(APackage: TFPPackage; ARepository: TFPRepository): Boolean;
|
|
|
|
|
|
+function TpkgFPpkg.PackageIsBroken(APackage: TFPPackage; out Reason: string; ARepository: TFPRepository): Boolean;
|
|
var
|
|
var
|
|
j, i, ThisRepositoryIndex: Integer;
|
|
j, i, ThisRepositoryIndex: Integer;
|
|
Dependency: TFPDependency;
|
|
Dependency: TFPDependency;
|
|
@@ -329,10 +329,9 @@ var
|
|
HashPtr: PtrInt;
|
|
HashPtr: PtrInt;
|
|
begin
|
|
begin
|
|
result:=false;
|
|
result:=false;
|
|
-
|
|
|
|
|
|
+ Reason := '';
|
|
if Assigned(APackage.Repository) and (APackage.Repository.RepositoryType <> fprtInstalled) then
|
|
if Assigned(APackage.Repository) and (APackage.Repository.RepositoryType <> fprtInstalled) then
|
|
begin
|
|
begin
|
|
- Result := False;
|
|
|
|
Exit;
|
|
Exit;
|
|
end;
|
|
end;
|
|
|
|
|
|
@@ -390,10 +389,11 @@ begin
|
|
|
|
|
|
if assigned(DepPackage) then
|
|
if assigned(DepPackage) then
|
|
begin
|
|
begin
|
|
- if PackageIsBroken(DepPackage, ARepository) then
|
|
|
|
|
|
+ if PackageIsBroken(DepPackage, Reason, ARepository) then
|
|
begin
|
|
begin
|
|
log(llInfo,SLogPackageDepBroken,[APackage.Name,APackage.Repository.RepositoryName,Dependency.PackageName,Repository.RepositoryName]);
|
|
log(llInfo,SLogPackageDepBroken,[APackage.Name,APackage.Repository.RepositoryName,Dependency.PackageName,Repository.RepositoryName]);
|
|
result:=true;
|
|
result:=true;
|
|
|
|
+ Reason := Format(SInfoPackageDepBroken, [Dependency.PackageName, Repository.RepositoryName]);
|
|
FBrokenPackagesDictionary.Add(APackage.Name, Pointer(1));
|
|
FBrokenPackagesDictionary.Add(APackage.Name, Pointer(1));
|
|
exit;
|
|
exit;
|
|
end;
|
|
end;
|
|
@@ -401,6 +401,7 @@ begin
|
|
begin
|
|
begin
|
|
log(llInfo,SLogPackageChecksumChanged,[APackage.Name,APackage.Repository.RepositoryName,Dependency.PackageName,Repository.RepositoryName]);
|
|
log(llInfo,SLogPackageChecksumChanged,[APackage.Name,APackage.Repository.RepositoryName,Dependency.PackageName,Repository.RepositoryName]);
|
|
result:=true;
|
|
result:=true;
|
|
|
|
+ Reason := Format(SInfoPackageChecksumChanged, [Dependency.PackageName, Repository.RepositoryName]);
|
|
FBrokenPackagesDictionary.Add(APackage.Name, Pointer(1));
|
|
FBrokenPackagesDictionary.Add(APackage.Name, Pointer(1));
|
|
exit;
|
|
exit;
|
|
end;
|
|
end;
|
|
@@ -409,6 +410,7 @@ begin
|
|
begin
|
|
begin
|
|
log(llInfo,SDbgObsoleteDependency,[APackage.Name,Dependency.PackageName]);
|
|
log(llInfo,SDbgObsoleteDependency,[APackage.Name,Dependency.PackageName]);
|
|
result:=true;
|
|
result:=true;
|
|
|
|
+ Reason :=Format(SInfoObsoleteDependency, [Dependency.PackageName]);
|
|
FBrokenPackagesDictionary.Add(APackage.Name, Pointer(1));
|
|
FBrokenPackagesDictionary.Add(APackage.Name, Pointer(1));
|
|
exit;
|
|
exit;
|
|
end;
|
|
end;
|
|
@@ -699,6 +701,7 @@ function TpkgFPpkg.FindBrokenPackages(SL: TStrings): Boolean;
|
|
var
|
|
var
|
|
i,j,k : integer;
|
|
i,j,k : integer;
|
|
P : TFPPackage;
|
|
P : TFPPackage;
|
|
|
|
+ s : string;
|
|
Repo: TFPRepository;
|
|
Repo: TFPRepository;
|
|
begin
|
|
begin
|
|
SL.Clear;
|
|
SL.Clear;
|
|
@@ -712,7 +715,7 @@ begin
|
|
for j := 0 to Repo.PackageCount-1 do
|
|
for j := 0 to Repo.PackageCount-1 do
|
|
begin
|
|
begin
|
|
P := Repo.Packages[j];
|
|
P := Repo.Packages[j];
|
|
- if (P = FindPackage(P.Name, pkgpkInstalled)) and PackageIsBroken(P, nil) then
|
|
|
|
|
|
+ if (P = FindPackage(P.Name, pkgpkInstalled)) and PackageIsBroken(P, s, nil) then
|
|
begin
|
|
begin
|
|
if P.IsFPMakeAddIn then
|
|
if P.IsFPMakeAddIn then
|
|
// Make sure that FPMakeAddIn's are fixed first, so
|
|
// Make sure that FPMakeAddIn's are fixed first, so
|