History log of /haiku/build/jam/PackageRules
Revision Date Author Comments
# 63b76fae 17-Sep-2021 Augustin Cavalier <waddlesplash@gmail.com>

Break translators out of haiku.hpkg into a separate haiku_datatranslators.hpkg.

Translators and media-plugins are the main source of dependencies in haiku.hpkg,
and thus the main source of packages being pulled into chroots, especially
HaikuPorter chroots. (FFmpeg pulls in a rather large array of sub-
dependencies, itself.) So, here we break all the translators into their
own sub-package.

For now, haiku.hpkg is declared to depend on haiku_datatranslators,
so that users will not suddenly update and have no translators.
In the future, this will be dropped.

Note that this is only done for the primary arch at present.
Secondary architecture translators remain in the main secondary package
for now.

Change-Id: Id0b352f34f7110b79ec7787792bf3ae0edab4054
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4477
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# ece327f1 27-Aug-2021 Augustin Cavalier <waddlesplash@gmail.com>

Overhaul "haiku" PackageInfo.

* Merge all except the x86_gcc2 one into a single "generic" one.
It is now exactly the same on all architectures, save a single
ifdef for x86_64, which needs a different compat version, as there
are still some packages built that far back and never rebuilt since!

* Group the requires according to category: first any arch packages,
then commands, then the GCC syslibs, then packages always depended
upon if they are available, and finally packages only depended upon
in "regular" builds.

* Put all packages inside HAIKU_BUILD_FEATURE_* ifdef tests,
and order them alphabetically within their category.

If I have done this all correctly, at least x86_64 should get an
identically generated haiku .PackageInfo as before this commit, save
the reordering changes. Others may differ based on package availability,
as they were missing the requisite #ifdef sections.


# 128781e7 30-Aug-2019 Augustin Cavalier <waddlesplash@gmail.com>

build/jam: Inline HOST_ADD_BUILD_COMPATIBILITY_LIB_DIR where possible.

The "exec" tool can only handle one command with environs set at
the beginning of the line, so now we set the ADD_BUILD_COMPAT...
in this format. This also seems to be a general performance
improvement to builds using real shells, too.

Change-Id: If4b3117651b5475039d5e8116cd3de398582290a


# b16a18cb 26-Sep-2018 Augustin Cavalier <waddlesplash@gmail.com>

build: Include extra information in the package version.

Previously only the "effective revision", i.e. the hrev by itself,
was used. Now we include the "commits ahead" count and the "dirty" flag,
if they're there, using _ instead of - of course.

Change-Id: I5238d01926c2cca242bffbdef30bff606a173a06
Reviewed-on: https://review.haiku-os.org/596
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
(cherry picked from commit e7c5d994267fb7d49e3dd50c2854e9b37c9ffca1)
Reviewed-on: https://review.haiku-os.org/597


# a27099f5 23-Jul-2018 Jérôme Duval <jerome.duval@gmail.com>

x86_64/x86_gcc2: don't depend on libgcc_s, libstdc++, libsupc++.


# 46f078c0 23-Jul-2018 Jérôme Duval <jerome.duval@gmail.com>

PackageRules: add secondaryArch to the packageInfo grist.

this fixes the generation of multiple secondary architecture package infos.


# 3dd0c819 23-Nov-2015 Jérôme Duval <jerome.duval@gmail.com>

PackageRules: use valid macro names in defines.


# b8c67b27 22-Nov-2015 Jérôme Duval <jerome.duval@gmail.com>

haiku-x86_64: make some dependencies feature dependent.


# f17d87fa 16-Nov-2014 Oliver Tappe <zooey@hirschkaefer.de>

Fix #11458, pt.1: invoking jam from source dir does not work.

* Apply change suggested by Ingo: replace LocalDepends with Depends.


# 3d9c3125 30-Apr-2014 Oliver Tappe <zooey@hirschkaefer.de>

Create packages_build folders per build type.

* The content of the preprocessed package-info files and the package
contents depend on the build type, so we use a different folder for
each build type.


# 8c54af56 30-Apr-2014 Oliver Tappe <zooey@hirschkaefer.de>

Whitespace cleanup in root and 'build' folder.

* Removed trailing whitespace and empty lines at top of files.


# a8c098a3 22-Mar-2014 Oliver Tappe <zooey@hirschkaefer.de>

Replace HAIKU_{BOOTSTRAP,MINIMUM}_BUILD with HAIKU_BUILD_TYPE.

* Instead of separate variables, HAIKU_BUILD_TYPE is set to one of
'bootstrap', 'minimum' or 'regular'.
* Adjust uses of HAIKU_BOOTSTRAP_BUILD accordingly.


# 12c19e63 18-Jan-2014 Ingo Weinhold <ingo_weinhold@gmx.de>

Move creating the Haiku repo info to jam

* PreprocessPackageInfo rule: Pull out new rule
PreprocessPackageOrRepositoryInfo which does the sed substituation and
optionally the filtering through the C preprocessor.
* HaikuRepository rule: Generate the repository info file (from the
given template). No longer do that in the build_haiku_repository
script.


# af559cd6 18-Jan-2014 Ingo Weinhold <ingo_weinhold@gmx.de>

Add DetermineEffectiveHaikuRevision rule

Simplifies PreprocessPackageInfo a bit.


# 495b360b 18-Jan-2014 Ingo Weinhold <ingo_weinhold@gmx.de>

Add support for explicitly preventing rebuilding packages

Due to depending on dynamically built files, package files will always
be rebuilt when they are needed (e.g. when an image is built). The build
variable HAIKU_DONT_REBUILD_PACKAGES can be defined to prevent
rebuilding existing package files (even ones that are out-of-date).

Main target for this change is buildbot. We want to make sure that the
packages in the repository it builds are exactly identical to the ones
in the images, which may not be the case when the packages are rebuilt
(due to different timestamps of contained files). The respective build
order should be:

1. Build repository.
2. Without cleaning the generated directory, build different image types
with HAIKU_DONT_REBUILD_PACKAGES defined.


# 57741100 29-Oct-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Update requires entries for the packages we build

* Add build tool update_package_requires. Given a package info file and
a repository cache file, it updates the minimum versions of the
requires entries of the package info file according to what is
provided by the repository.
* PreprocessPackageInfo rule: Use update_package_requires (with the
HaikuPorts repository file).


# 97d30f2c 10-Oct-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Encode the hrev revision into the package versions


# 897d5af7 05-Oct-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Don't code the Haiku version into all the package infos


# 2910d9a7 10-Aug-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

PreprocessPackageInfo: add substitution

... HAIKU_SECONDARY_PACKAGING_ARCH_SUFFIX. It's "_<arch>" for a
secondary architecture and "" for the primary one.


# 38423018 05-Aug-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Filter package infos through sed

%HAIKU_PACKAGING_ARCH% and %HAIKU_SECONDARY_PACKAGING_ARCH% in the
package infos are replaced before filtering them through the C
preprocessor.


# 779b940a 05-Aug-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

PreprocessPackageInfo: define macro for secondary architecture


# b0944c78 01-Aug-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

More work towards hybrid support

* All packaging architecture dependent variables do now have a
respective suffix and are set up for each configured packaging
architecture, save for the kernel and boot loader variables, which
are still only set up for the primary architecture.
For convenience TARGET_PACKAGING_ARCH, TARGET_ARCH, TARGET_LIBSUPC++,
and TARGET_LIBSTDC++ are set to the respective values for the primary
packaging architecture by default.
* Introduce a set of MultiArch* rules to help with building targets for
multiple packaging architectures. Generally the respective targets are
(additionally) gristed with the packaging architecture. For libraries
the additional grist is usually omitted for the primary architecture
(e.g. libroot.so and <x86>libroot.so for x86_gcc2/x86 hybrid), so that
Jamfiles for targets built only for the primary architecture don't
need to be changed.
* Add multi-arch build support for all targets needed for the stage 1
cross devel package as well as for libbe (untested).


# c01380b1 07-Jul-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Move package info pre-processing to jam build system

Also, pre-process all package infos (not only the generic ones) and
define the macro HAIKU_BOOTSTRAP_BUILD, if building a package for a
bootstrap image.


# ff2e5209 30-Jun-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Remove the old "CVS" package rules

... and all their invocations.


# 444b035d 07-Jun-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

BuildHaikuPackage rule: Locate extract script

Missed that when adding the script. Therefore it would be created in the
current directory and when building multiple packages concurrently the
script would be overwritten.


# 48581f98 04-Jun-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

FHaikuPackageGrist: Avoid potential package name clashes


# 59e2e2f3 03-Jun-2013 Oliver Tappe <zooey@hirschkaefer.de>

Adjust handling of package infos.

* add HAIKU_PACKAGING_ARCH, which is set to the target packaging
architecture
* introduce support for generic package infos, which are package infos
that are the same for all architectures, except for the declaration
of the package architecture itself
* move package info files underneath architecture-specific or generic
folder


# ba96552b 31-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Support extracting archives to the packages we build

* BuildHaikuPackage rule: Create the script that contains the extraction
commands.
* build_haiku_package: Add extractFile() function (stripped down version
from build_haiku_image).

In build_haiku_image the functionality was mainly used to extract the
optional packages, which is no longer done. We still need it e.g. for
the Wifi firmware packages that want to be extracted.


# 01c03710 20-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

BuildHaikuPackage rule: Add grist to package info file

... to avoids clashes with equally named targets.


# 06f5437c 18-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Add HAIKU_PACKAGE_COMPRESSION_LEVEL build variable

It allows to control the compression level used for package creation
and update. The default (9) is *very* slow, so developers may want to
use a smaller level during the regular development process to keep
turn-around times low.


# 518840e3 08-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Complete MIME related support for image/package creation

* Update MimeSet rule to use the MIME DB the build system creates.
* Add CreateAppMimeDBEntries rule and call it from Link for targets that
might be applications that need to be registered with the MIME DB. For
the target the rule is invoked with it creates a directory into which
the entries for the types to be registered are written. The directory
is associated with the target via the HAIKU_MIME_DB_ENTRIES variable.
* AddFilesToContainer: If a target is added that has MIME DB entries,
also add those to the container.
* build_haiku_package: Call mimeset for the package contents.


# fa5dff55 06-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Replace various boolean rule parameters by flags

Instead of the boolean alwaysUpdate, isCDPackage, and stripDebugSymbols
parameters use a uniform flags parameter which can contain any of the
respectively supported flags (alwaysUpdate, cdPackage,
stripDebugSymbols, !stripDebugSymbols).


# 7c092d4d 20-Apr-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Add build profile action update-packages

Equivalent to "jam <list of all hpkgs> && jam @... <list of all hpkgs>",
i.e. it makes sure all hpkgs that are supposed to be in the image are
rebuilt respectively downloaded and copied to the image. It doesn't
remove old packages nor the activation files -- that still has to be
done manually.


# fd03be48 03-Jul-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

ExtractArchiveToContainer: Add update support

Add an alwaysUpdate parameter like the ExtractArchiveTo{Image,Package}
rules have and do the handling in the base rule.


# 161d45fe 03-Jul-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Support for package "update" build profile action

* Add global HAIKU_PACKAGES_UPDATE_ONLY build system variable, which is
set for the "update" and "update-all" build profile actions.
* Change the HAIKU_INCLUDE_IN_CONTAINER_VAR variable on packages to
HAIKU_INCLUDE_IN_PACKAGES for all packages. The variable is also
set for the "update" and "update-all" build profile actions.
* Introduce HAIKU_CONTAINER_INHERIT_UPDATE_VARIABLE on container
variable. If set, the contained variable will be set on the container
when one or more files in it are updated. It is set on packages so an
update of a file in a package causes the package to be updated in the
image.
* Introduce HAIKU_CONTAINER_ALWAYS_CREATE_DIRECTORIES on container
variable. If set, directories will be created also in update mode. It
is set on packages.


# ba65f946 19-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Fix image rules wrt system/ relative entries

* Introduce on-container jam variable HAIKU_CONTAINER_SYSTEM_DIR_TOKENS
containing the directory tokens relative to the container root to
refer to system.
* Use the variable in *ToContainer rules that need to put something in
system.
* AddFilesToContainer: Fix overlooked reference to AddFilesToHaikuImage.
* AddBootModuleSymlinksToContainer: Use relative symlinks. This avoids
special-casing in the boot loader for packagefs.


# 2bda1e84 17-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Package rule: introduce current package notion

The HaikuPackage rule now sets the variable
HAIKU_CURRENTLY_BUILT_HAIKU_PACKAGE to the given package and all
*ToPackage rules use that instead of a parameter. This saves passing the
package in each of those rule invocations.


# dcdeed61 17-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

AddDirectoryTo{HaikuImage,...} refactoring

Move common code from AddDirectoryToHaikuImage/AddDirectoryToPackage to
AddDirectoryToContainer. AddDirectoryToPackage was incorrect, using an
incorrect search directory for the attribute files.


# 355b8ba7 17-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Build a system Haiku package

* Create rules (build/jam/PackageRules) and a script,
build_haiku_package, to build hpkg files.
* Move all rule invocations that copy files and created symlinks and
directories in the "system" directory from HaikuImage to
HaikuPackages, which creates a package "haiku.hpkg".
* build_haiku_image: Comment out adding the copyrights info to
AboutSystem for the moment.


# fa2a531a 06-Feb-2006 Ingo Weinhold <ingo_weinhold@gmx.de>

The Copy rule respects an already set SEARCH path now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16262 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 338b8dc3 29-Oct-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Merged changes from branch build_system_redesign at revision 14573.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14574 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f17d87fa1729bfb6072d8815adddd8127cc0f657 16-Nov-2014 Oliver Tappe <zooey@hirschkaefer.de>

Fix #11458, pt.1: invoking jam from source dir does not work.

* Apply change suggested by Ingo: replace LocalDepends with Depends.


# 3d9c3125ac6ac5f643a89eea32dd4667a4bb5ce4 30-Apr-2014 Oliver Tappe <zooey@hirschkaefer.de>

Create packages_build folders per build type.

* The content of the preprocessed package-info files and the package
contents depend on the build type, so we use a different folder for
each build type.


# 8c54af563ce823c0e5b029716b2a020896c90ff4 30-Apr-2014 Oliver Tappe <zooey@hirschkaefer.de>

Whitespace cleanup in root and 'build' folder.

* Removed trailing whitespace and empty lines at top of files.


# a8c098a3ba81542b73c5be4e90ae01a4fc47507b 22-Mar-2014 Oliver Tappe <zooey@hirschkaefer.de>

Replace HAIKU_{BOOTSTRAP,MINIMUM}_BUILD with HAIKU_BUILD_TYPE.

* Instead of separate variables, HAIKU_BUILD_TYPE is set to one of
'bootstrap', 'minimum' or 'regular'.
* Adjust uses of HAIKU_BOOTSTRAP_BUILD accordingly.


# 12c19e6362e4e7b0c3f93e0f7a2dbd8e50bde03a 18-Jan-2014 Ingo Weinhold <ingo_weinhold@gmx.de>

Move creating the Haiku repo info to jam

* PreprocessPackageInfo rule: Pull out new rule
PreprocessPackageOrRepositoryInfo which does the sed substituation and
optionally the filtering through the C preprocessor.
* HaikuRepository rule: Generate the repository info file (from the
given template). No longer do that in the build_haiku_repository
script.


# af559cd6eece8ef251a98935fb0d77407c1115bb 18-Jan-2014 Ingo Weinhold <ingo_weinhold@gmx.de>

Add DetermineEffectiveHaikuRevision rule

Simplifies PreprocessPackageInfo a bit.


# 495b360b6b0d8a850361078b22fc2ce576b21950 18-Jan-2014 Ingo Weinhold <ingo_weinhold@gmx.de>

Add support for explicitly preventing rebuilding packages

Due to depending on dynamically built files, package files will always
be rebuilt when they are needed (e.g. when an image is built). The build
variable HAIKU_DONT_REBUILD_PACKAGES can be defined to prevent
rebuilding existing package files (even ones that are out-of-date).

Main target for this change is buildbot. We want to make sure that the
packages in the repository it builds are exactly identical to the ones
in the images, which may not be the case when the packages are rebuilt
(due to different timestamps of contained files). The respective build
order should be:

1. Build repository.
2. Without cleaning the generated directory, build different image types
with HAIKU_DONT_REBUILD_PACKAGES defined.


# 577411006e688240df57ccb1e358cacf4651a4ce 29-Oct-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Update requires entries for the packages we build

* Add build tool update_package_requires. Given a package info file and
a repository cache file, it updates the minimum versions of the
requires entries of the package info file according to what is
provided by the repository.
* PreprocessPackageInfo rule: Use update_package_requires (with the
HaikuPorts repository file).


# 97d30f2cfb33b5e0c254625800e8067e9351a91c 10-Oct-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Encode the hrev revision into the package versions


# 897d5af7ff716051d07775bc8d8ad3f894d20e37 05-Oct-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Don't code the Haiku version into all the package infos


# 2910d9a7e043b6d84e7b2c831ac66f51ca2a776f 10-Aug-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

PreprocessPackageInfo: add substitution

... HAIKU_SECONDARY_PACKAGING_ARCH_SUFFIX. It's "_<arch>" for a
secondary architecture and "" for the primary one.


# 384230184efa82a55ab235fc738226775793195c 05-Aug-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Filter package infos through sed

%HAIKU_PACKAGING_ARCH% and %HAIKU_SECONDARY_PACKAGING_ARCH% in the
package infos are replaced before filtering them through the C
preprocessor.


# 779b940a74bcdc32f3feefd9b1f93067808a34e4 05-Aug-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

PreprocessPackageInfo: define macro for secondary architecture


# b0944c78b074a8110bd98e060415d0e8f38a7f65 01-Aug-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

More work towards hybrid support

* All packaging architecture dependent variables do now have a
respective suffix and are set up for each configured packaging
architecture, save for the kernel and boot loader variables, which
are still only set up for the primary architecture.
For convenience TARGET_PACKAGING_ARCH, TARGET_ARCH, TARGET_LIBSUPC++,
and TARGET_LIBSTDC++ are set to the respective values for the primary
packaging architecture by default.
* Introduce a set of MultiArch* rules to help with building targets for
multiple packaging architectures. Generally the respective targets are
(additionally) gristed with the packaging architecture. For libraries
the additional grist is usually omitted for the primary architecture
(e.g. libroot.so and <x86>libroot.so for x86_gcc2/x86 hybrid), so that
Jamfiles for targets built only for the primary architecture don't
need to be changed.
* Add multi-arch build support for all targets needed for the stage 1
cross devel package as well as for libbe (untested).


# c01380b1b7e3c6ac4d27c73dd1b2dee290cb8b5e 07-Jul-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Move package info pre-processing to jam build system

Also, pre-process all package infos (not only the generic ones) and
define the macro HAIKU_BOOTSTRAP_BUILD, if building a package for a
bootstrap image.


# ff2e520912416877692e36bb130608d1a92df078 30-Jun-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Remove the old "CVS" package rules

... and all their invocations.


# 444b035d5d092de6b04cbb08706ba543d962993c 07-Jun-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

BuildHaikuPackage rule: Locate extract script

Missed that when adding the script. Therefore it would be created in the
current directory and when building multiple packages concurrently the
script would be overwritten.


# 48581f98911f829490237745506a0f06da5645c0 04-Jun-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

FHaikuPackageGrist: Avoid potential package name clashes


# 59e2e2f3a7a7deb5f68a552c5327e54949ed0e80 03-Jun-2013 Oliver Tappe <zooey@hirschkaefer.de>

Adjust handling of package infos.

* add HAIKU_PACKAGING_ARCH, which is set to the target packaging
architecture
* introduce support for generic package infos, which are package infos
that are the same for all architectures, except for the declaration
of the package architecture itself
* move package info files underneath architecture-specific or generic
folder


# ba96552b6a796adbc66613492d4b6658b2e8ce16 31-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Support extracting archives to the packages we build

* BuildHaikuPackage rule: Create the script that contains the extraction
commands.
* build_haiku_package: Add extractFile() function (stripped down version
from build_haiku_image).

In build_haiku_image the functionality was mainly used to extract the
optional packages, which is no longer done. We still need it e.g. for
the Wifi firmware packages that want to be extracted.


# 01c03710f0acd6384a3d98b09bcc1063d4f3f66d 20-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

BuildHaikuPackage rule: Add grist to package info file

... to avoids clashes with equally named targets.


# 06f5437c21c0c849d0cbd16a2a7444182c50ba01 18-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Add HAIKU_PACKAGE_COMPRESSION_LEVEL build variable

It allows to control the compression level used for package creation
and update. The default (9) is *very* slow, so developers may want to
use a smaller level during the regular development process to keep
turn-around times low.


# 518840e305b44986a28aff2db042a932bf2fd650 08-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Complete MIME related support for image/package creation

* Update MimeSet rule to use the MIME DB the build system creates.
* Add CreateAppMimeDBEntries rule and call it from Link for targets that
might be applications that need to be registered with the MIME DB. For
the target the rule is invoked with it creates a directory into which
the entries for the types to be registered are written. The directory
is associated with the target via the HAIKU_MIME_DB_ENTRIES variable.
* AddFilesToContainer: If a target is added that has MIME DB entries,
also add those to the container.
* build_haiku_package: Call mimeset for the package contents.


# fa5dff5529d819291e62ac867fca3d27a527cbad 06-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Replace various boolean rule parameters by flags

Instead of the boolean alwaysUpdate, isCDPackage, and stripDebugSymbols
parameters use a uniform flags parameter which can contain any of the
respectively supported flags (alwaysUpdate, cdPackage,
stripDebugSymbols, !stripDebugSymbols).


# 7c092d4d865eb53029c28fb5b1ddfbbada85899f 20-Apr-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Add build profile action update-packages

Equivalent to "jam <list of all hpkgs> && jam @... <list of all hpkgs>",
i.e. it makes sure all hpkgs that are supposed to be in the image are
rebuilt respectively downloaded and copied to the image. It doesn't
remove old packages nor the activation files -- that still has to be
done manually.


# fd03be4838549e6e44627471b7692fc6a75ccf33 03-Jul-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

ExtractArchiveToContainer: Add update support

Add an alwaysUpdate parameter like the ExtractArchiveTo{Image,Package}
rules have and do the handling in the base rule.


# 161d45feb55fde0e00e3e065ddd800529bdd1074 03-Jul-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Support for package "update" build profile action

* Add global HAIKU_PACKAGES_UPDATE_ONLY build system variable, which is
set for the "update" and "update-all" build profile actions.
* Change the HAIKU_INCLUDE_IN_CONTAINER_VAR variable on packages to
HAIKU_INCLUDE_IN_PACKAGES for all packages. The variable is also
set for the "update" and "update-all" build profile actions.
* Introduce HAIKU_CONTAINER_INHERIT_UPDATE_VARIABLE on container
variable. If set, the contained variable will be set on the container
when one or more files in it are updated. It is set on packages so an
update of a file in a package causes the package to be updated in the
image.
* Introduce HAIKU_CONTAINER_ALWAYS_CREATE_DIRECTORIES on container
variable. If set, directories will be created also in update mode. It
is set on packages.


# ba65f946679a3171d2f7525a7a3be131e7f701c9 19-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Fix image rules wrt system/ relative entries

* Introduce on-container jam variable HAIKU_CONTAINER_SYSTEM_DIR_TOKENS
containing the directory tokens relative to the container root to
refer to system.
* Use the variable in *ToContainer rules that need to put something in
system.
* AddFilesToContainer: Fix overlooked reference to AddFilesToHaikuImage.
* AddBootModuleSymlinksToContainer: Use relative symlinks. This avoids
special-casing in the boot loader for packagefs.


# 2bda1e84fe48b888d799bea8aeae9b1ba3f8a77f 17-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Package rule: introduce current package notion

The HaikuPackage rule now sets the variable
HAIKU_CURRENTLY_BUILT_HAIKU_PACKAGE to the given package and all
*ToPackage rules use that instead of a parameter. This saves passing the
package in each of those rule invocations.


# dcdeed6176ea40e52a44f17be2573b6fed3946ba 17-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

AddDirectoryTo{HaikuImage,...} refactoring

Move common code from AddDirectoryToHaikuImage/AddDirectoryToPackage to
AddDirectoryToContainer. AddDirectoryToPackage was incorrect, using an
incorrect search directory for the attribute files.


# 355b8ba7553a58e35406084ea875f8f3f519a12b 17-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Build a system Haiku package

* Create rules (build/jam/PackageRules) and a script,
build_haiku_package, to build hpkg files.
* Move all rule invocations that copy files and created symlinks and
directories in the "system" directory from HaikuImage to
HaikuPackages, which creates a package "haiku.hpkg".
* build_haiku_image: Comment out adding the copyrights info to
AboutSystem for the moment.


# fa2a531aa8ff0ad94cda8e2e6a2cd1f8fe9743e5 06-Feb-2006 Ingo Weinhold <ingo_weinhold@gmx.de>

The Copy rule respects an already set SEARCH path now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16262 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 338b8dc301721b1f472e8297a898d4eaa2f2ee3a 29-Oct-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Merged changes from branch build_system_redesign at revision 14573.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14574 a95241bf-73f2-0310-859d-f6bbb57e9c96