diff --git a/packages/fppkg/src/pkgfppkg.pp b/packages/fppkg/src/pkgfppkg.pp index 59de183896..9550b7818c 100644 --- a/packages/fppkg/src/pkgfppkg.pp +++ b/packages/fppkg/src/pkgfppkg.pp @@ -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; diff --git a/packages/fppkg/src/pkguninstalledsrcsrepo.pp b/packages/fppkg/src/pkguninstalledsrcsrepo.pp index 9c75ed43b4..1aad9035b5 100644 --- a/packages/fppkg/src/pkguninstalledsrcsrepo.pp +++ b/packages/fppkg/src/pkguninstalledsrcsrepo.pp @@ -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;