repo rework: Remove need for repos to be self-aware

* See #12917 for details.
* Squashed to one commit to make revert easy if we
  run into any issues.
* pkgman is now pre-attached to the 'current' repo
  version within nightly images so they can be updated
  by default.
* This shouldn't impact us keeping older sets of package
  versions by commit hash for building older hrevs.
* There are XXX stubs with "Kill me". These will need
  to be dropped after users are given sufficent time to
  upgrade. We're dropping a previously required field (url)
  so making this a slowish roll out.
* Makes the repos a lot less restrictive which should
  help PM package building automation be a bit easier.
* Once this stuff smooths out, we'll add UUID's to the
  repo definitions for duplicate repo detection.
This commit is contained in:
Alexander von Gluck IV
2016-12-02 00:41:06 -06:00
parent 28fb504bb8
commit 5ffaf72c8a
15 changed files with 184 additions and 63 deletions
+1 -1
View File
@@ -901,7 +901,7 @@ rule AddPackagesAndRepositoryVariablesToContainerScript script : container
local repositoryFiles ;
for repository in $(HAIKU_REPOSITORIES) {
repositoryFiles
+= [ on $(repository) return $(HAIKU_REPOSITORY_CACHE_FILE) ] ;
+= [ on $(repository) return $(HAIKU_REPOSITORY_CONFIG_FILE) ] ;
}
AddTargetVariableToScript $(script) : $(repositoryFiles) : repositories ;
+5 -4
View File
@@ -761,10 +761,10 @@ actions BuildRemoteHaikuPortsRepository1
}
rule HaikuRepository repository : repoInfoTemplate : packages
rule HaikuRepository repository : repoInfoTemplate : packages : url
{
# HaikuRepository <repository> : <repoInfoTemplate> : <packages>
# [ : <url> [ : <versionFile> ] ] ;
# HaikuRepository <repository> : <repoInfoTemplate> : <packages> : <url>
# [ : <versionFile> ] ;
# Builds the Haiku repository from the given packages and repository info
# template. <repository> must already be located.
#
@@ -773,6 +773,7 @@ rule HaikuRepository repository : repoInfoTemplate : packages
# meta data files.
# <repoInfoTemplate> - The repository info template file to be used.
# <packages> - The packages to be added to the repository.
# <url> - The remote location of the initial update repository
local architecture = $(HAIKU_PACKAGING_ARCH) ;
local secondaryArchitecture ;
@@ -791,7 +792,7 @@ rule HaikuRepository repository : repoInfoTemplate : packages
# build the respository config
local repositoryConfig = $(repository:G=repository-config)-config ;
MakeLocate $(repositoryConfig) : $(repositoriesDir) ;
RepositoryConfig $(repositoryConfig) : $(repositoryInfo) ;
RepositoryConfig $(repositoryConfig) : $(repositoryInfo) : $(url) ;
HAIKU_REPOSITORY_CONFIG_FILE on $(repository) = $(repositoryConfig) ;
# setup the repository cache file
+5 -1
View File
@@ -52,4 +52,8 @@ if $(webPositiveIsAvailable) {
packages += webpositive ;
}
HaikuRepository $(haikuRepository) : $(repoInfo) : $(packages:S=.hpkg) ;
local version = current ;
#local version = $(HAIKU_VERSION) ;
local remoteURL = http://packages.haiku-os.org/haiku/master/$(HAIKU_PACKAGING_ARCH)/$(version) ;
HaikuRepository $(haikuRepository) : $(repoInfo) : $(packages:S=.hpkg) : $(remoteURL) ;
+1 -1
View File
@@ -7,7 +7,7 @@ set -o errexit
# tmpDir
# addBuildCompatibilityLibDir
# systemPackages - lists of the hpkg packages copied/updated
# repositories - all repository files
# repositories - all repository configuration files
# downloadDir
# The following are only for image types:
# installDir