mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-21 20:29:32 +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
|
||||
begin
|
||||
Repo := FRepositoryList.Items[i] as TFPRepository;
|
||||
|
||||
AvailableRepo := TFPRepository.Create(Self);
|
||||
FRepositoryList.Add(AvailableRepo);
|
||||
AvailableRepo.RepositoryType := fprtAvailable;
|
||||
AvailableRepo.RepositoryName := Repo.RepositoryName + '_source';
|
||||
AvailableRepo.Description := Repo.Description + ' (original sources)';
|
||||
AvailStruc := TFPOriginalSourcePackagesStructure.Create(Self, Repo);
|
||||
AvailStruc.InitializeWithOptions(nil, FOptions, FCompilerOptions);
|
||||
AvailStruc.AddPackagesToRepository(AvailableRepo);
|
||||
AvailableRepo.DefaultPackagesStructure := AvailStruc;
|
||||
if Repo.RepositoryType = fprtInstalled then
|
||||
begin
|
||||
AvailableRepo := TFPRepository.Create(Self);
|
||||
FRepositoryList.Add(AvailableRepo);
|
||||
AvailableRepo.RepositoryType := fprtAvailable;
|
||||
AvailableRepo.RepositoryName := Repo.RepositoryName + '_source';
|
||||
AvailableRepo.Description := Repo.Description + ' (original sources)';
|
||||
AvailStruc := TFPOriginalSourcePackagesStructure.Create(Self, Repo);
|
||||
AvailStruc.InitializeWithOptions(nil, FOptions, FCompilerOptions);
|
||||
AvailStruc.InstallRepositoryName := Repo.RepositoryName;
|
||||
AvailStruc.AddPackagesToRepository(AvailableRepo);
|
||||
AvailableRepo.DefaultPackagesStructure := AvailStruc;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
@ -56,6 +56,7 @@ type
|
||||
TFPUninstalledSourcesPackagesStructure = class(TFPCustomFileSystemPackagesStructure)
|
||||
private
|
||||
FSourceRepositoryName: string;
|
||||
FLinkedRepositoryName: string;
|
||||
public
|
||||
class function GetRepositoryOptionSectionClass: TFppkgRepositoryOptionSectionClass; override;
|
||||
procedure InitializeWithOptions(ARepoOptionSection: TFppkgRepositoryOptionSection; AnOptions: TFppkgOptions; ACompilerOptions: TCompilerOptions); override;
|
||||
@ -94,6 +95,7 @@ begin
|
||||
RepoOptionSection := ARepoOptionSection as TFppkgUninstalledRepositoryOptionSection;
|
||||
path := RepoOptionSection.Path;
|
||||
SourceRepositoryName := RepoOptionSection.SourceRepositoryName;
|
||||
FLinkedRepositoryName := RepoOptionSection.RepositoryName;
|
||||
end;
|
||||
|
||||
function TFPUninstalledSourcesPackagesStructure.AddPackagesToRepository(ARepository: TFPRepository): Boolean;
|
||||
@ -148,7 +150,8 @@ end;
|
||||
|
||||
function TFPUninstalledSourcesPackagesStructure.IsInstallationNeeded(APackage: TFPPackage): TFPInstallationNeeded;
|
||||
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
|
||||
else
|
||||
Result := fpinInstallationImpossible;
|
||||
|
Loading…
Reference in New Issue
Block a user