mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-18 05:09:19 +02:00
* Do not install packages into a repository that does not allow new
packages, also not when they are installed from their original source. git-svn-id: trunk@35699 -
This commit is contained in:
parent
a3f43a3661
commit
20c9a16fa9
@ -596,16 +596,19 @@ begin
|
|||||||
for i := FRepositoryList.Count-1 downto 0 do
|
for i := FRepositoryList.Count-1 downto 0 do
|
||||||
begin
|
begin
|
||||||
Repo := FRepositoryList.Items[i] as TFPRepository;
|
Repo := FRepositoryList.Items[i] as TFPRepository;
|
||||||
|
if Repo.RepositoryType = fprtInstalled then
|
||||||
AvailableRepo := TFPRepository.Create(Self);
|
begin
|
||||||
FRepositoryList.Add(AvailableRepo);
|
AvailableRepo := TFPRepository.Create(Self);
|
||||||
AvailableRepo.RepositoryType := fprtAvailable;
|
FRepositoryList.Add(AvailableRepo);
|
||||||
AvailableRepo.RepositoryName := Repo.RepositoryName + '_source';
|
AvailableRepo.RepositoryType := fprtAvailable;
|
||||||
AvailableRepo.Description := Repo.Description + ' (original sources)';
|
AvailableRepo.RepositoryName := Repo.RepositoryName + '_source';
|
||||||
AvailStruc := TFPOriginalSourcePackagesStructure.Create(Self, Repo);
|
AvailableRepo.Description := Repo.Description + ' (original sources)';
|
||||||
AvailStruc.InitializeWithOptions(nil, FOptions, FCompilerOptions);
|
AvailStruc := TFPOriginalSourcePackagesStructure.Create(Self, Repo);
|
||||||
AvailStruc.AddPackagesToRepository(AvailableRepo);
|
AvailStruc.InitializeWithOptions(nil, FOptions, FCompilerOptions);
|
||||||
AvailableRepo.DefaultPackagesStructure := AvailStruc;
|
AvailStruc.InstallRepositoryName := Repo.RepositoryName;
|
||||||
|
AvailStruc.AddPackagesToRepository(AvailableRepo);
|
||||||
|
AvailableRepo.DefaultPackagesStructure := AvailStruc;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -56,6 +56,7 @@ type
|
|||||||
TFPUninstalledSourcesPackagesStructure = class(TFPCustomFileSystemPackagesStructure)
|
TFPUninstalledSourcesPackagesStructure = class(TFPCustomFileSystemPackagesStructure)
|
||||||
private
|
private
|
||||||
FSourceRepositoryName: string;
|
FSourceRepositoryName: string;
|
||||||
|
FLinkedRepositoryName: string;
|
||||||
public
|
public
|
||||||
class function GetRepositoryOptionSectionClass: TFppkgRepositoryOptionSectionClass; override;
|
class function GetRepositoryOptionSectionClass: TFppkgRepositoryOptionSectionClass; override;
|
||||||
procedure InitializeWithOptions(ARepoOptionSection: TFppkgRepositoryOptionSection; AnOptions: TFppkgOptions; ACompilerOptions: TCompilerOptions); override;
|
procedure InitializeWithOptions(ARepoOptionSection: TFppkgRepositoryOptionSection; AnOptions: TFppkgOptions; ACompilerOptions: TCompilerOptions); override;
|
||||||
@ -94,6 +95,7 @@ begin
|
|||||||
RepoOptionSection := ARepoOptionSection as TFppkgUninstalledRepositoryOptionSection;
|
RepoOptionSection := ARepoOptionSection as TFppkgUninstalledRepositoryOptionSection;
|
||||||
path := RepoOptionSection.Path;
|
path := RepoOptionSection.Path;
|
||||||
SourceRepositoryName := RepoOptionSection.SourceRepositoryName;
|
SourceRepositoryName := RepoOptionSection.SourceRepositoryName;
|
||||||
|
FLinkedRepositoryName := RepoOptionSection.RepositoryName;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TFPUninstalledSourcesPackagesStructure.AddPackagesToRepository(ARepository: TFPRepository): Boolean;
|
function TFPUninstalledSourcesPackagesStructure.AddPackagesToRepository(ARepository: TFPRepository): Boolean;
|
||||||
@ -148,7 +150,8 @@ end;
|
|||||||
|
|
||||||
function TFPUninstalledSourcesPackagesStructure.IsInstallationNeeded(APackage: TFPPackage): TFPInstallationNeeded;
|
function TFPUninstalledSourcesPackagesStructure.IsInstallationNeeded(APackage: TFPPackage): TFPInstallationNeeded;
|
||||||
begin
|
begin
|
||||||
if APackage.Repository.RepositoryName=SourceRepositoryName then
|
if (APackage.Repository.RepositoryName=SourceRepositoryName) or
|
||||||
|
(Assigned(APackage.Repository.DefaultPackagesStructure) and (APackage.Repository.DefaultPackagesStructure.InstallRepositoryName=FLinkedRepositoryName)) then
|
||||||
Result := fpinNoInstallationNeeded
|
Result := fpinNoInstallationNeeded
|
||||||
else
|
else
|
||||||
Result := fpinInstallationImpossible;
|
Result := fpinInstallationImpossible;
|
||||||
|
Loading…
Reference in New Issue
Block a user