Add repository config for the Haiku repository to the image
* HaikuRepository rule: Create the repository config. * HaikuImage: Add the repository config for the Haiku image. The repository cache is not added, though (it would only be available, if the repository had been built before). Implements #10287. The Haiku repository is now available in Haiku by default.
This commit is contained in:
@@ -62,6 +62,9 @@ SubDir HAIKU_TOP ;
|
|||||||
# Execute post-build-target user config rules.
|
# Execute post-build-target user config rules.
|
||||||
UserBuildConfigRulePostBuildTargets ;
|
UserBuildConfigRulePostBuildTargets ;
|
||||||
|
|
||||||
|
# specify the Haiku repository contents
|
||||||
|
include [ FDirName $(HAIKU_BUILD_RULES_DIR) repositories Haiku ] ;
|
||||||
|
|
||||||
# specify the Haiku image and network boot archive contents
|
# specify the Haiku image and network boot archive contents
|
||||||
if $(HAIKU_BOOTSTRAP_BUILD) {
|
if $(HAIKU_BOOTSTRAP_BUILD) {
|
||||||
include [ FDirName $(HAIKU_BUILD_RULES_DIR) images HaikuImageBootstrap ] ;
|
include [ FDirName $(HAIKU_BUILD_RULES_DIR) images HaikuImageBootstrap ] ;
|
||||||
@@ -74,7 +77,6 @@ include [ FDirName $(HAIKU_BUILD_RULES_DIR) images CDBootImage ] ;
|
|||||||
include [ FDirName $(HAIKU_BUILD_RULES_DIR) images CDBootPPCImage ] ;
|
include [ FDirName $(HAIKU_BUILD_RULES_DIR) images CDBootPPCImage ] ;
|
||||||
include [ FDirName $(HAIKU_BUILD_RULES_DIR) images HaikuCD ] ;
|
include [ FDirName $(HAIKU_BUILD_RULES_DIR) images HaikuCD ] ;
|
||||||
include [ FDirName $(HAIKU_BUILD_RULES_DIR) images AnybootImage ] ;
|
include [ FDirName $(HAIKU_BUILD_RULES_DIR) images AnybootImage ] ;
|
||||||
include [ FDirName $(HAIKU_BUILD_RULES_DIR) repositories Haiku ] ;
|
|
||||||
|
|
||||||
# Check whether all requested optional packages do actually exist.
|
# Check whether all requested optional packages do actually exist.
|
||||||
local package ;
|
local package ;
|
||||||
|
|||||||
@@ -678,11 +678,23 @@ actions BuildRemoteHaikuPortsRepository1
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
rule HaikuRepository repository : repoInfoTemplate : packages
|
rule HaikuRepository repository : repoInfoTemplate : packages : url
|
||||||
|
: versionFile
|
||||||
{
|
{
|
||||||
# HaikuRepository <repository> : <repoInfoTemplate> : <packages> ;
|
# HaikuRepository <repository> : <repoInfoTemplate> : <packages>
|
||||||
|
# [ : <url> [ : <versionFile> ] ] ;
|
||||||
# Builds the Haiku repository from the given packages and repository info
|
# Builds the Haiku repository from the given packages and repository info
|
||||||
# template. <repository> must already be located.
|
# template. <repository> must already be located.
|
||||||
|
#
|
||||||
|
# <repository> - The repository target. Resolves to a directory that will be
|
||||||
|
# (removed,) created and populated with the package files and repository
|
||||||
|
# meta data files.
|
||||||
|
# <repoInfoTemplate> - The repository info template file to be used.
|
||||||
|
# <packages> - The packages to be added to the repository.
|
||||||
|
# <url> - Optional repository URL for the repository config file to be
|
||||||
|
# created. If not specified the one from the repository info is used.
|
||||||
|
# <versionFile> - Optional file containing the version string that shall
|
||||||
|
# replace the "$version" placeholder in <url> (if any).
|
||||||
|
|
||||||
local architecture = $(HAIKU_PACKAGING_ARCH) ;
|
local architecture = $(HAIKU_PACKAGING_ARCH) ;
|
||||||
local secondaryArchitecture ;
|
local secondaryArchitecture ;
|
||||||
@@ -698,6 +710,13 @@ rule HaikuRepository repository : repoInfoTemplate : packages
|
|||||||
PreprocessPackageOrRepositoryInfo $(repoInfo) : $(repoInfoTemplate)
|
PreprocessPackageOrRepositoryInfo $(repoInfo) : $(repoInfoTemplate)
|
||||||
: $(architecture) : $(secondaryArchitecture) ;
|
: $(architecture) : $(secondaryArchitecture) ;
|
||||||
|
|
||||||
|
# build the respository config
|
||||||
|
local repositoryConfig = $(repository:G=repository-config)-config ;
|
||||||
|
MakeLocate $(repositoryConfig) : $(repositoriesDir) ;
|
||||||
|
RepositoryConfig $(repositoryConfig) : $(repoInfo) : $(url)
|
||||||
|
: $(versionFile) ;
|
||||||
|
HAIKU_REPOSITORY_CONFIG_FILE on $(repository) = $(repositoryConfig) ;
|
||||||
|
|
||||||
# prepare the script that initializes the shell variables
|
# prepare the script that initializes the shell variables
|
||||||
local initVariablesScript = $(repository)-repository-init-vars ;
|
local initVariablesScript = $(repository)-repository-init-vars ;
|
||||||
MakeLocate $(initVariablesScript)
|
MakeLocate $(initVariablesScript)
|
||||||
|
|||||||
@@ -314,7 +314,7 @@ CopyDirectoryToHaikuImage home config settings Media
|
|||||||
|
|
||||||
# repository config and cache files
|
# repository config and cache files
|
||||||
local repository ;
|
local repository ;
|
||||||
for repository in $(HAIKU_REPOSITORIES) {
|
for repository in $(HAIKU_REPOSITORIES) <repository>haiku {
|
||||||
local config = [ on $(repository) return $(HAIKU_REPOSITORY_CONFIG_FILE) ] ;
|
local config = [ on $(repository) return $(HAIKU_REPOSITORY_CONFIG_FILE) ] ;
|
||||||
local cache = [ on $(repository) return $(HAIKU_REPOSITORY_CACHE_FILE) ] ;
|
local cache = [ on $(repository) return $(HAIKU_REPOSITORY_CACHE_FILE) ] ;
|
||||||
if $(HAIKU_UPDATE_ALL_PACKAGES) {
|
if $(HAIKU_UPDATE_ALL_PACKAGES) {
|
||||||
|
|||||||
@@ -24,4 +24,9 @@ if $(TARGET_PACKAGING_ARCH) != x86_gcc2 || $(secondaryArchs) {
|
|||||||
packages += webpositive ;
|
packages += webpositive ;
|
||||||
}
|
}
|
||||||
|
|
||||||
HaikuRepository $(haikuRepository) : $(repoInfo) : $(packages:S=.hpkg) ;
|
HaikuRepository $(haikuRepository) : $(repoInfo) : $(packages:S=.hpkg)
|
||||||
|
: http://www.haiku-files.org/haiku/master/repo/$(TARGET_PACKAGING_ARCH)/$(HAIKU_VERSION)_$version
|
||||||
|
: [ DetermineEffectiveHaikuRevision ]
|
||||||
|
# TODO: Remove the URL and the version file argument once the repository
|
||||||
|
# is available on haiku-os.org as specified in the repository info.
|
||||||
|
;
|
||||||
|
|||||||
Reference in New Issue
Block a user