From 5f78d261a207dabedb8a7848ecad873b6b472d07 Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Sun, 4 May 2008 16:06:41 +0000 Subject: [PATCH] Added rules AddOptionalPackageDescriptionToHaikuImage and AddLicenseToHaikuImage that can be used in optional package definitions to add a copyright entry in AboutSystem and add a license file to /etc/licenses. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25313 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- build/jam/HaikuImage | 24 ++++++++++++++++++++++++ build/jam/ImageRules | 22 ++++++++++++++++++++++ build/scripts/build_haiku_image | 4 ++++ 3 files changed, 50 insertions(+) diff --git a/build/jam/HaikuImage b/build/jam/HaikuImage index a93a5aaded..67ae75a2ed 100644 --- a/build/jam/HaikuImage +++ b/build/jam/HaikuImage @@ -421,9 +421,29 @@ CopyDirectoryToHaikuImage beos etc #pragma mark - Optional Packages +HAIKU_IMAGE_OPTIONAL_PACKAGE_DESCRIPTIONS = ; + include [ FDirName $(HAIKU_BUILD_RULES_DIR) OptionalPackages ] ; include [ FDirName $(HAIKU_BUILD_RULES_DIR) OptionalTestPackages ] ; +local optionalPackageDescriptions ; +if $(HAIKU_IMAGE_OPTIONAL_PACKAGE_DESCRIPTIONS) { + optionalPackageDescriptions = optional_package_descriptions ; + MakeLocate $(optionalPackageDescriptions) + : $(HAIKU_COMMON_PLATFORM_OBJECT_DIR) ; + + Depends $(optionalPackageDescriptions) + : $(HAIKU_IMAGE_OPTIONAL_PACKAGE_DESCRIPTIONS) ; + + actions together BuildOptionalPackageDescriptions + { + cat $(2) > $(1) + } + + BuildOptionalPackageDescriptions $(optionalPackageDescriptions) + : $(HAIKU_IMAGE_OPTIONAL_PACKAGE_DESCRIPTIONS) ; +} + #pragma mark - User/Group Setup @@ -498,6 +518,10 @@ if $(HOST_RM_ATTRS_TARGET) { } else { AddVariableToScript $(script) : rmAttrs : rm ; } +if $(optionalPackageDescriptions) { + AddTargetVariableToScript $(script) : $(optionalPackageDescriptions) + : optionalPackageDescriptions ; +} # create the other scripts diff --git a/build/jam/ImageRules b/build/jam/ImageRules index 9bdfbb2574..285da0bda8 100644 --- a/build/jam/ImageRules +++ b/build/jam/ImageRules @@ -723,6 +723,28 @@ rule AddGroupToHaikuImage group : gid : members AddEntryToHaikuImageUserGroupFile group : $(entry) ; } +rule AddOptionalPackageDescriptionToHaikuImage file : searchPath +{ + if $(searchPath) { + SEARCH on $(file) = [ FDirName $(searchPath) ] ; + } + + HAIKU_IMAGE_OPTIONAL_PACKAGE_DESCRIPTIONS += $(file) ; +} + +rule AddLicenseToHaikuImage file : name : searchPath +{ + if $(searchPath) { + SEARCH on $(file) = [ FDirName $(searchPath) ] ; + } + + if $(name) && $(file:BS) = $(name) { + name = ; + } + + AddFilesToHaikuImage beos etc licenses : $(file) : $(name) ; +} + rule CreateHaikuImageMakeDirectoriesScript script { diff --git a/build/scripts/build_haiku_image b/build/scripts/build_haiku_image index d8f3bce06e..22949a30fc 100755 --- a/build/scripts/build_haiku_image +++ b/build/scripts/build_haiku_image @@ -12,6 +12,7 @@ # updateOnly # dontClearImage # isVMwareImage +# optionalPackageDescriptions # # addattr # bfsShell @@ -88,6 +89,9 @@ unzipFile() mkdir -p $tmpDir copyrightsFile=$tmpDir/copyrights $rmAttrs -f $copyrightsFile +if [ "$optionalPackageDescriptions" ]; then + cp "$optionalPackageDescriptions" $copyrightsFile +fi # create the image and mount it