History log of /haiku/build/jam/ImageRules
Revision Date Author Comments
# 05c1a899 06-Oct-2022 David Karoly <karolyd577@gmail.com>

enable EFI boot for 32-bit ISO image

Building EFI partition for 32-bit anyboot ISO image was disabled
in hrev52443 to fix issue #14656.

As haiku_loader.efi is now available for the x86 architecture
since hrev55917, we can re-enable building EFI system partition
for the 32-bit ISO.

We can also remove the build rules related to HAIKU_ANYBOOT_LEGACY
as it is not used any more.

Change-Id: I9c2c272bcd0f9c1a98ee6cea300374dc26b4818d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5716
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>


# 323c6d6b 09-Apr-2022 Zone.N <Zone.Niuzh@hotmail.com>

fix dd error on osx

Change-Id: Ifcfe59378c96f0518758a3dfb91a9a54199831e5
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5192
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# 31f27c4d 06-Feb-2022 Alexander von Gluck IV <kallisti5@unixzen.com>

boot/efi: Optionally sign our EFI bootloader

* The private keys are in possession of Haiku, Inc.

Change-Id: I3b5b004e1dce0102f8a65f6d682f7e428845efe8
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4936
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# c5d81c27 01-Dec-2021 David Karoly <karolyd577@gmail.com>

build: prepare for x86 EFI loader

Change-Id: Ic9e4181042bf634cd590d8c95935a987a4871b0d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4753
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>


# 38eb9fb0 01-Nov-2021 Alexander von Gluck IV <kallisti5@unixzen.com>

boot/ppc: Cleanup paths, use hfs vs hfsplus

* Move assets to new boot directory
* -hfsplus not valid anymore on cdrtools 3.02
* Throw down some forth I saw in an *old* fedora 12
chrp script. If we ever target ppc64 it might be
handy someday. The text output also lets you know
the cd booted successfully.

Change-Id: I169d887fe8373de1719b98305d01b714f6f6bcbe
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4681
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Jessica Hamilton <jessica.l.hamilton@gmail.com>


# c39da9b7 14-Aug-2021 Semion Dimov <congocongocongo@protonmail.com>

Fix build on OSX host

FreeBSD's stat command doesn't support -c/--format option and use %z specifier for file size

Change-Id: I368b6eef0a692df0f16bc1c3d5b5399fcf91e051
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4326
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>


# 977a873a 01-Jul-2021 Jessica Hamilton <jessica.l.hamilton@gmail.com>

Build: replace mtools with fatshell.

EFI System Partition was the last remaining holdout for mtools usage.

Change-Id: I988f82a2f4318f2f90ec1efb80f7ff5c8908aff7
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4140
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>


# 2cba2d56 04-Jan-2013 Dancsó Róbert <dancso.robert@d-rendszer.hu>

Added localization support for Cortex app.

* Fixes #7530.

Change-Id: I238c4c8fe32b181a8e1a4bd688bcbe9f3a87f79f
Signed-off-by: Kacper Kasper <kacperkasper@gmail.com>
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3169
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# dd419e59 19-Apr-2020 Augustin Cavalier <waddlesplash@gmail.com>

build_haiku_image: Distinguish between system (activated) and unactivated packages.

Previously, all packages on the image, both activated and unactivated,
were in $systemPackages, so if a package actually in /system/packages
had a dependency in the Installer optional package area, the dependency
checking would see no problem but the generated image would be broken.

Now, packages going into /system/packages are treated separately
from those going elsewhere, and error checks added so the above
condition will not occur.

(I ran into this while working on the build-package upgrade
in the following commits.)


# 4f44282c 25-Jan-2020 Adrien Destugues <pulkomandy@pulkomandy.tk>

Move source and development packages out of /system/packages on release images

Activating all these packages on live boot (especially live DVD where we
also have the write overlay eating up RAM) significantly increases
memory requirements for running Haiku, to the point that Installer may
fail to run. Move them outside the packages/ directory so they are not
activated.

Installer already skips the _sources_ directory when installing, and
lists the contents of _packages_ with checkbox to decide what to include
in the install (they are put in system/packages on the target disk).

Fix from previous version: the Haiku package was installed to /system
instead of /system/packages.

Fixes #15621.


# c31d8dad 15-Mar-2020 Augustin Cavalier <waddlesplash@gmail.com>

Revert "Move source and development packages out of /system/packages on release images"

This reverts commit 0ab9c3c53849f10a3b7aef1e03714e69c7cb0c15.

It broke booting.


# 0ab9c3c5 25-Jan-2020 Adrien Destugues <pulkomandy@pulkomandy.tk>

Move source and development packages out of /system/packages on release images

Activating all these packages on live boot (especially live DVD where we
also have the write overlay eating up RAM) significantly increases
memory requirements for running Haiku, to the point that Installer may
fail to run. Move them outside the packages/ directory so they are not
activated.

Installer already skips the _sources_ directory when installing, and
lists the contents of _packages_ with checkbox to decide what to include
in the install (they are put in system/packages on the target disk).

Fixes #15621.

Change-Id: Ibfac14c43dbe708316a0d82ca1c9d49b5cba2aef
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2157
Reviewed-by: Sergei Reznikov <diver@gelios.net>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 55213e3e 10-Mar-2020 Alexander von Gluck IV <kallisti5@unixzen.com>

jam/efi: Improve our knowledge of EFI default loader names

Change-Id: I7ae941426a10ceac6771ef0a2a53f81d3c3c39d0
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2338
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# b9db31f6 16-Feb-2020 Alexander von Gluck IV <kallisti5@unixzen.com>

EFI: Add VolumeIcon to EFI system partition

Change-Id: Idc50cfee16db5f7c0dbea625a7739ad42b2d7bf0
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2249
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# 987f40eb 12-Feb-2020 Alexander von Gluck IV <kallisti5@unixzen.com>

build/jam/ppc: Fix PowerPC boot after hrev53614

* "xorriso doesn't support much of the mkisofs options"
* Dropping the hfs map made our bootloader no-longer get
mapped as :tbxi which means qemu + Apple devices refused
to boot it.
* Switch to genisoimage which can generate the correct image.
(xorriso -as genisoimage doesn't work either)

Change-Id: Id71b97796f5004f6ddf6244644c51a5787f9bf8e
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2241
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>


# 5be6527a 08-Feb-2020 Augustin Cavalier <waddlesplash@gmail.com>

ImageRules: Use mformat's -f argument.

Should not be a functional change, but reading the docs, I'm not sure
our arguments were valid here, so this should be more correct.


# 09b40d16 03-Dec-2019 Ynoga <ynoga@protonmail.com>

ppc: Minor tweaks to get the arch compile again (WIP)

- Factor in types changes (introduction of intptr_t)
- Align JamFiles syntax with in progress architectures (arm/sparc)
- Xorriso doesn't support much of the mkisofs options (anymore ?)
- (After a correct bootstrap) one should be able to build @minimum-raw and haiku-boot-cd again
Change-Id: I4f779ad8f2210389fa9b7f7c0a98c3652a64c257
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1983
Reviewed-by: François Revol <revol@free.fr>


# 768957dc 14-Feb-2019 Fabiano Fidêncio <fabiano@fidencio.org>

ImageRules: Ensure nightly builds will have a stable volume-id

Let's make the nightly builds consistent in a way that they would always
be recognized by libosinfo (and, consequently, by GNOME Boxes,
virt-manager, virt-install, ...) by explictly using "nightly" instead
of the $(HAIKU_VERSION) when generating nightly builds.

Signed-off-by: Fabiano Fidêncio <fabiano@fidencio.org>

Change-Id: I6fc4f15be1e8e9244abf14e75308fc825f37b2e8
Reviewed-on: https://review.haiku-os.org/c/1053
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>


# 4e29847d 11-Feb-2019 Fabiano Fidêncio <fabiano@fidencio.org>

ImageRules: Use a less generic name as volume-id

The current volume-id is "bootimg", does not matter which version of
haiku nor to which architecture the ISO is targetting.

Having a "too generic" name as volume-id directly affects the ISO's
recognition by libosinfo.

From now on, let's use:
haiku-$(HAIKU_VERSION)-$(TARGET_ARCH)

Which would generate an ISO with volume-id as:
Volume id: haiku-default-r1~beta1-x86_64

Fixes: #14695

Signed-off-by: Fabiano Fidêncio <fabiano@fidencio.org>

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


# b3dc16ee 08-Jan-2019 Augustin Cavalier <waddlesplash@gmail.com>

build: Use xorriso instead of mkisofs or genisoimage.

It seems that not all Linux distributions ship an EFI-enabled
cdrtools (i.e. mkisofs takes -e option), Arch being one that
does not.

So instead, we now use xorriso universally, which is
as (or more, in most cases) widely available, and supports
emulating mkisofs with the EFI commands universally.

This also has the added benefit that we can drop genisoimage
support altogether.


# 9283f47b 15-Nov-2018 Augustin Cavalier <waddlesplash@gmail.com>

ImageRules: Fix adding directory attrs.

There is no variable "dir" in this rule, only "directory".


# 795f1571 15-Nov-2018 Augustin Cavalier <waddlesplash@gmail.com>

Move data/image_directories to src/data/directory_attrs.

These data files are used in the generation of build targets,
so moving them to src/data alongside the package_infos & etc.
makes more sense.

They don't seem to be activated properly though (I added some tracing
to try and figure out why they aren't used but haven't gotten to the
bottom of that yet.)


# 4ee3f16d 02-Nov-2018 Augustin Cavalier <waddlesplash@gmail.com>

build: Use the absolute path on more instances of build_* scripts.


# 68191643 02-Nov-2018 Augustin Cavalier <waddlesplash@gmail.com>

build: Add HAIKU_ABSOLUTE_TOP and use it to root BootArchive.

Strictly POSIX-compliant shells (like dash) do not allow sourcing
files in the present directory without "./". The script really should
not know or care about what directory the passed files are in,
so now we add a jam grist to make the passed paths absolute.

Fixes the build on all systems where /bin/sh is dash or a similarly
POSIX-compliant-no-extensions shell (i.e. virtually all Linux.)


# 80abc9a9 27-Oct-2018 Augustin Cavalier <waddlesplash@gmail.com>

build: Restore a mechanism to build EFI-less anyboots and CDs.

This fixes the 32-bit build following the merge of multiple bootloaders
support.

Fixes #14656.


# 1f96a3cb 08-Oct-2018 Jessica Hamilton <jessica.l.hamilton@gmail.com>

system/boot: Add support for multiple bootloaders


# 8547d09e 01-Jul-2018 Augustin Cavalier <waddlesplash@gmail.com>

build: Rework InstallSourceArchive into AddHaikuImageSourcePackages.

Also add AddHaikuImageSourcePackages invocations for all relevant
(i.e. [L]GPL'ed) packages.

Doesn't truly fix #9990 as PackageKit cannot be used to install source
packages, but this is enough for creating a redistributable image,
so that ticket can be moved out of the beta1 milestone now.


# 0a23d1fb 19-Jun-2018 Augustin Cavalier <waddlesplash@gmail.com>

jam: Remove InstallOptionalHaikuImagePackage; unused following previous commit.


# 74bfec3b 06-May-2018 Jessica Hamilton <jessica.l.hamilton@gmail.com>

build/jam: whitespace cleanup.

Change-Id: I80c9a51417631b1f283923451f5bb530097b74f3


# 36ea3406 13-Mar-2018 Alexander von Gluck IV <kallisti5@unixzen.com>

build/ImageRules: rm_attrs doesn't know -R

Change-Id: I3dcd8a1fe117b6b0c2b741fc383df048de8dac8f


# fda0bf77 09-Dec-2016 Adrien Destugues <pulkomandy@pulkomandy.tk>

Revert "repo rework: Re-add compatibility url field"
Revert "repo rework: Remove stubs; Breaks repo compat."
Revert "repo rework: Remove need for repos to be self-aware"

This reverts commit a2b2f4d6427914cdcdb59943dd8e4a0bfdcd53ee.
This reverts commit 602076ef82647a48fd10f4d1ec830bb4242f9eb6.
This reverts commit 5ffaf72c8a74a7eb6827e4d2b1f47c9360ddaefe.

These changes break the build on Haiku and the ability to create repo
mirrors, for the lack of a replacement for the URL (an UUID was evoked
on the mailing lists, but not implemented).

We are due for a release soon, please don't break the build.


# 5ffaf72c 01-Dec-2016 Alexander von Gluck IV <kallisti5@unixzen.com>

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.


# 938bf9fa 31-Jul-2014 Oliver Tappe <zooey@hirschkaefer.de>

Add more missing 'local's to variable declarations.


# cd8a7df7 10-Aug-2014 Ingo Weinhold <ingo_weinhold@gmx.de>

ImageRules: Fix issues where file names may contain parens

Parentheses in target names are considered by Jam to mean an archive
member. We have to explicitly use the M selector to keep that part.

Fixes #10378 (certain keymaps missing on image).


# 590b95e9 01-May-2014 Oliver Tappe <zooey@hirschkaefer.de>

Add variable noDownloads to build_haiku_image.

* If noDownloads is set, show an error when a download is requested.


# 9225185b 26-Apr-2014 Jérôme Duval <jerome.duval@gmail.com>

AddHeaderDirectoryToContainer: filters backup files.

* also leaves out .svn, now useless.


# 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.


# bef384b0 15-Mar-2014 Oliver Tappe <zooey@hirschkaefer.de>

Don't copy over package versions into package-list for bootstrap.

* This decouples the versions referenced by the architecture-specific
repository file from the actual versions available in the haikuports
branch that happens to be used for the bootstrap build.


# 0d9151c9 30-Nov-2013 Matt Madia <mattmadia@gmail.com>

Add genisoimage support to actions BuildCDBootImage1.


# 5328a584 12-Nov-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

AddNewDriversToHaikuImage rule: Support alwaysUpdate flag

* Support alwaysUpdate flag in AddFilesToContainer.
* Add flags arguments to AddNewDriversTo{Container,HaikuImage} and
support alwaysUpdate flag.


# 3010e4f4 12-Oct-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

AddFilesToContainer: Strip executables, if requested

Variable HAIKU_CONTAINER_STRIP_EXECUTABLES can be set on the container
to trigger that.


# 19f94028 12-Oct-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Revert "Allow stripping binaries when copying to image containers"

This reverts commit d6de84de6690d076caf2744ba3fda17ef267cabd.


# cc5c6133 12-Oct-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Revert "Rework stripping binaries when copying to containers"

This reverts commit e2332987bce967387b49c5dce24867688a01317f.


# d05822f1 12-Oct-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Revert "Preserve resources and attributes when copying stripped binaries"

This reverts commit a427aa2f4a47ae242110e9d98d4bed307f8dad73.


# a427aa2f 11-Oct-2013 François Revol <revol@free.fr>

Preserve resources and attributes when copying stripped binaries

When asked to strip binaries when copying to containers we now
strip to a temporary file, copy over resources to it, copy it
to the container, then copy the attributes from the original
source.

This should allow stripping binaries while preserving attributes
and resources even when copying to images.


# e2332987 11-Oct-2013 François Revol <revol@free.fr>

Rework stripping binaries when copying to containers

We now only attempt to strip binaries, by detecting the
LINKFLAGS variable on the targets.

CopySetHaikuRevision now also forwards LINKFLAGS
to revisioned binaries.

Introduce separate AppendToContainerCopyFilesScriptStripFile actions
which are used for copying and stripping, and avoids many useless
shell tests.

When asked to strip binaries, they are detected and handled
individually for simplicity.

Note we still don't keep resources and attributes when stripping.


# d6de84de 09-Oct-2013 François Revol <revol@free.fr>

Allow stripping binaries when copying to image containers

Currently only needed for boot floppy on some platforms.

Disabled for now.

Note we do not have a mean of knowing which file is a binary
or not so we just try to strip, and silently continue when
strip fails (like on the kernel settings file).

Also note strip actually replaces the file, which means it looses
both the resources and attributes, which shouldn't be a problem
for the boot floppy drivers archive, but is not wanted for other
images, so it's not usable elsewhere as such. Patch wanted.


# a27d687e 08-Oct-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Name the generated HPKG files properly

* rule AddPackageFilesToHaikuImage: Add "flags" parameter. The only
supported flag is "nameFromMetaInfo". It causes the packages to be
copied under their canonical file name onto the image.
* Use the new flag for all generated packages save haiku_loader.hpkg.


# 40c9cb7b 08-Oct-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

rule AddFilesToContainer: Support naming files later

* Add "flags" parameter and only supported flag "computeName". When
specified the "destName" argument is the name of a shell command
or function that will be called to determine the destination file
name when the container is built.
* AddFilesToHaikuImage: Pass flags to AddFilesToContainer.


# 50ffb212 05-Oct-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

update-{all,packages} build profile action: empty packages dir

... before copying the new contents to the image. This caters to the
typical use case of updating an existing Haiku, making manual
intervention to get the new packages activated unnecessary. The downside
is that manually added packages will be removed as well.


# f73f5d4c 29-Sep-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Initial changes to remove /boot/common

* find_directory() and hard-coded paths use /boot/system instead of
/boot/common.
* The build system creates the writable directories in /boot/system
instead of /boot/common.
* The build system no longer installs any packages in /boot/common.


# 58c82e4f 29-Sep-2013 François Revol <revol@free.fr>

Make sure the boot driver tgz doesn't overflow the boot floppy

At least on 68k it does. Seems to be ok on x86, for now...


# 76cd5b09 12-Sep-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Move stuff from HaikuImageCommon to new rule

... AddPackagesAndRepositoryVariablesToContainerScript.


# dee358f0 12-Sep-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

AddBootModuleSymlinksToContainer: Fix symlink target

The symlink was only correct, if the container was a package. For
containers with a non-empty path to the system directory the link would
duplicate the system directory path.


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

Image rules: filter packages list via FFilterByBuildFeatures

AddPackageFilesToHaikuImage, AddHaikuImagePackages: For convenience
filter the given package file/package list through
FFilterByBuildFeatures.


# 47fd9e6d 10-Aug-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

rule AddLibrariesToContainer: fix for gristed libraries


# c965ee60 06-Aug-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

bootstrap image: build needed source packages and add them

* IsPackageAvailable, FetchPackage: Add flags parameter. The only
flag supported ATM is nameResolved, indicating that the specified
package name does not need to be resolved with respect to a secondary
architecture anymore.
* Add build profile action "build-package-list". As an argument the
file to which the list of all packages needed for the image is
written. The rule BuildHaikuImagePackageList implements the action.
* BuildBootstrapRepositoryConfig: Does now require the variable
HAIKU_REPOSITORY_TREE_PATH to be set on the config file target instead
of hard-coding the path. Allows reuse of the actions.
* Add rules BuildHaikuPortsSourcePackageDirectory and
BuildHaikuPortsRepositoryConfig. The former builds all HaikuPorts
source packages needed to build the packages for an alpha image. The
latter generates a haikuports.conf file for use on the bootstrap
Haiku.
* HaikuImageBootstrap: Add directory /boot/home/haikuports which
contains a subdirectory with the source packages and a
haikuports.conf.


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

AddHaikuImagePackages/IsHaikuImagePackageAdded: 2ndary arch fix

For the secondary architecture the same specified package name means a
different package, so we need to use the mapped name IsPackageAvailable
returns.


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

Remove no longer needed HAIKU_STRIP_DEBUG_FROM_OPTIONAL_PACKAGES


# e173a1ec 20-Jul-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Integrate building the HaikuPorts bootstrap packages

* Add configure option --bootstrap which allows specifying the
haikuporter and HaikuPorts repository paths.
* Add rules for supporting a second repository type. The
PackageRepository rule is now private and RemotePackageRepository is
used for remote repositories. The new BootstrapPackageRepository rule
is for defining a bootstrap repository (there will probably be only
the HaikuPorts cross repository) whose packages can be built as needed
via haikuporter.
* Rename DownloadPackage to FetchPackage.
* Define repository HaikuPortsCross.
* HaikuCrossDevel package(s): There are now two sets of packages: A
"stage1" set with the same content as before and a final set
additionally containing the libraries libbe, libnetwork, libpackage.
Those are needed for building the libsolv bootstrap package while for
building them we need other bootstrap packages (ICU, libz).

This is basically all that's required to build a bootstrap Haiku
completely from sources, with a few caveats:
* There's no ICU bootstrap recipe yet (so one has to cheat and use the
prebuilt package ATM).
* Probably doesn't work on Haiku yet (tested on Linux only).
* A 32 bit environment must be used (otherwise building the gcc 2
bootstrap package fails).
* Building with multiple jobs doesn't work yet, since haikuporter uses
common directories for building different packages and there's no
explicit serialization yet.
* Haven't tested the resulting image save for booting it. So it probably
needs a bit more work before it can actually build the final
HaikuPorts packages.


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

Remove more optional package related left-overs


# 014eed80 06-Jul-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Change repository directory layout

* Under the base URL there are supposed to be the repository files and a
subdirectory "packages".
* Fix the repository URL related confusion introduced earlier. The URL
in
the repository info (and thus in the repository file) is supposed to
be the base URL for the repository. It is not a (potentially)
different base URL for the package files. Package and repository
files were supposed to live in the same directory. Now, by requiring
the package files to live in a subdirectory -- which can also be a
symlink -- we gain some flexibility.
The URL in the repository config is usually the same as the in the
repository info, unless it refers to a mirror site. This allows for
mirrors to copy the original repository verbatim.
* Remove the PackageURL rule and introduce a DownloadPackage rule
instead. The URL for a package file cannot be computed in the jam
parsing phase anymore, as it contains the hash value of the package
list.
* BRepositoryConfig: Add PackagesURL() for convenience.


# 98c6dfa4 05-Jul-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Switch build system from optional package to repositories

* Build libsolv and the dependency solver part of the package kit for
the build platform.
* Add build tool get_package_dependencies. Given a list of package files
and a list of repository files it determines the additional packages
that need to be retrieved from the repositories and prints their URLs.
* Add rules to work with external repositories in the build system
(build/jam/RepositoryRules):
- PackageRepository declares an external repository with all its
packages. The URL of the repository file isn't specified. It is
computed from a given base URL and the SHA256 hash of the list of
package files.
- GeneratedRepositoryPackageList generates a file containing the file
names of all packages in a repository.
- IsPackageAvailable returns whether a package is available in any
repository.
- PackageURL returns the URL for a package.
* Declare the HaikuPorts repository for x86_gcc2
(build/jam/repositories/HaikuPorts/x86_gcc2).
* Add rule AddHaikuImagePackages to add a package to the image and rule
IsHaikuImagePackageAdded to determine whether a package has been
added.
* OptionalPackages: Remove all entries that just downloaded and
installed an external package. AddHaikuImagePackages can be used
instead and is used in the remaining entries. Also move the remaining
optional package dependency declarations from
OptionalPackageDependencies here.
* ExtractBuildFeatureArchives: Instead of the URL parameter a package
name must be specified now. This allows to simplify BuildFeatures
significantly, since there's no dealing with URLs anymore. "if" out
the entries that aren't supported yet.
* build_haiku_image: For the packages installed in system and common
resolve their dependencies and download and install them as well.


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

Expander: also read rules from data directories

* ExpanderSettings: Use a settings directory "expander" and rename
settings file to "settings".
* ExpanderRules: Read expander rules from "rules" files in the settings
directory, then from files in expander/rules subdirectories of the
installation location data directories, and finally add the built-in
rules. This allows packages to provide expander rules (as already
done by the p7zip package).
* OptionalPackages: Remove AddExpanderRuleToHaikuImage invocations.
* ImageRules: Remove Expander rule file related rules.


# 67b2c0fe 05-Jun-2013 Alexander von Gluck IV <kallisti5@unixzen.com>

PowerPC: Transition back to CHRP script.

* After examining MacOS toolbox roms, I think i've got
this nailed down. The MacOS Toolbox rom contains chrp
code at the top and binary code at the bottom.
* The Raw format for the chrp seemed to cause issues with the
OpenFirmware boot process on some systems. NetBSD uses a '-'
file type.
* The format of the chrp seems a lot more sensitive across machines
than described. Ensure our returns and spaces are even.
* Booting with the 'c' key is still working on my older OpenFirmware
machine with the chrp script. The bitmap logo is a half black, half
white box.
* I removed the &device; alias for now for troubleshooing. It also may
of been causing compatibility issues. More testing is needed.


# 1072a5e7 04-Jun-2013 Alexander von Gluck IV <kallisti5@unixzen.com>

PowerPC: Fix 'c' key booting of CD on Apple hardware

* It seems like not all NewWorld OpenFirmware
versions support booting from CHRP scripts.
* Move Haiku elf bootloader into bootloader.b
type tbxi. As it is in the blessed directory
it is picked up by cd:,\\:tbxi
* Adjust bootinfo.txt to point to bootloader
&device; ensures that the image can be started
regardless of source media
* Adjust bootinfo.txt to use \\ as base. \\ is an
alias for the blessed folder on the boot media
* Rename ofboot.b to ofboot.chrp to avoid confusion
* Add .txt, .html to hfs.map to identify them properly
* The haiku-boot-cd-ppc.iso now boots on my G3 PowerBook
by holding the 'c' key at startup. The boot menu colors
are incorrect (white background) but it is a step in
the right direction.
* New chrp script. Blank icon for the moment, if someone
could figure out how to make a chrp icon that would be
neat.
* Tested working on qemu and real hardware. Need to test
on a more modern PowerPC Mac however.


# 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.


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

CopyDirectoryToContainer: fix typo in comment


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

AddDriversToContainer: Handle duplicate invocations

Since the same driver can be added in more than one category, in a few
cases AddDriversToContainer was invoked twice for the same target. Avoid
adding the driver twice to add-ons/kernel/drivers/bin in such a case.
Didn't really cause any problem, but no need to copy the file twice.


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

rule CopyDirectoryToContainer: Add flags isTarget

The flags indicates that the passed sourceDirectory is a target, not a
path.


# 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).


# e0f7f688 29-Apr-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Extract packages' settings dir to common/settings in image

That's a somewhat crude initial approach to installing the default
settings of packages when building the image.


# ece84496 29-Apr-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Pimp up AddTargetVariableToScript to support a list of targets


# 4fd280dd 29-Apr-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Simplify use of InstallOptionalHaikuImagePackage

When invoked for a hpkg only the installation location (i.e. "common"
or "system") has to be specified now and "common" is the default. The
rule uses AddPackageFilesToHaikuImage now.


# 5d41bc9a 29-Apr-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Add AddPackageFilesToHaikuImage rule


# 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.


# 88f22c97 16-Apr-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

InstallOptionalHaikuImagePackage: Remove first parameter

Instead deduce the file name from the URL. A long overdue change. Avoids
unnecessary name duplication, which only led to errors.


# 33c25487 08-Dec-2012 Ingo Weinhold <ingo_weinhold@gmx.de>

ImageRules: Allow build feature annotated params in Add* rules

More precisely in the rules that take multiple targets. It doesn't make
that much sense e.g. for AddSymlinkTo*.


# 4107ac9c 30-Oct-2012 Jérôme Duval <jerome.duval@gmail.com>

Cleanup of remains of subversion in the build system


# 1a53a4d3 16-Sep-2012 Matt Madia <mattmadia@gmail.com>

Refactored the stripping of debug symbols to be a per-archive basis.

Setting 'HAIKU_STRIP_DEBUG_FROM_OPTIONAL_PACKAGES = 1' will enable the
mechanism. By default all packages will be stripped. Passing anything
other than '1' or 'true' in the InstallOptionalHaikuImagePackage call
will disable it for a particular package.


# 323b6546 21-Nov-2011 Oliver Tappe <zooey@hirschkaefer.de>

Filtered flat import of Oliver's svn package management branch

Bring the changes that aren't package management related and the ones
that are but don't take effect as long as they are ignored by the build
system into the master.

Summary of changes:
* Introduce private header <directories.h> with constants for a good
deal of paths that should usually be retrieved via find_directory().
* Replace hard-coded paths by using find_directory() or the
<directories.h> constants (e.g. in drivers and the kernel).
* Add find_directory() constants needed for package management.
* Add __HAIKU_ABI_NAME and B_HAIKU_ABI_NAME macros.
* src/apps/deskbar: BeMenu.* -> DeskbarMenu.*,
DeskBarUtils.* -> DeskbarUtils.*
* Change deskbar menu settings directory from ~/config/be to
~/config/settings/deskbar.
* Other smaller cleanups, changes, and fixes.


# 97e22a9b 25-Oct-2011 François Revol <revol@free.fr>

Workaround missing mkisofs in Debian sid for ppc boot CD. It needs a rewrite anyway.


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


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

Add PropagateContainerUpdateTargetFlags rule

It propagates the HAIKU_INCLUDE_IN_IMAGE and HAIKU_INCLUDE_IN_PACKAGES
variables from one target to another.


# 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.


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

AddFilesToContainer: avoid unnecessary work

* If after filtering the list of targets is empty, return.
* Get the directory only afterwards.


# 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.


# dfa6888f 30-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Remove InstallCommonPackage rule


# a6e73cb9 30-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Remove installoptionalpackage


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

Fix gcc2 and ICU optional packages

* InstallOptionalHaikuImagePackage: In case of hpkg packages, copy them
to the target directory, instead of extracting them.
* Correct gcc 2 package download URL.
* The ICU gcc 2 optional packages has been repackaged as hpkg. Use that.
For gcc 4 things are broken, now.


# 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.


# 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.


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

Generalize some image rules

Pulled generalized *ToContainer versions out of several *ToHaikuImage
rules.


# 3dfd9cb9 16-Jun-2011 Oliver Tappe <zooey@hirschkaefer.de>

Flat commit of all changes from package-management branch in svn


# d28b0b06 30-May-2011 Philippe Houdoin <philippe.houdoin@gmail.com>

Of course, when incomptability kick in, it's never limited only to
option string: FreeBSD's stat command line don't use %s format specifier for
file size. Instead, %s specifier is unused at all and they goes with %z.
For file Zize, I guess...



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


# c3510ace 30-May-2011 Philippe Houdoin <philippe.houdoin@gmail.com>

When building floppy boot image on FreeBSD, the stat command line fail on
the -c/--format option which is unsupported on this platform.
Add a fallback, which should fix #7613.


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


# 50ca9a25 05-Mar-2011 Matt Madia <mattmadia@gmail.com>

As per Ingo's comment 13 in #7286, removed support for isGCCAgnostic.
There should be separate gcc 2 and gcc 4 packages instead.


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


# d01a7e01 19-Nov-2010 Philippe Houdoin <philippe.houdoin@gmail.com>

Revert mistaken committed change.


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


# 5a2f51f2 19-Nov-2010 Philippe Houdoin <philippe.houdoin@gmail.com>

Added WebPTranslator to Haiku image, with due credits in AboutSystem.


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


# b2b54ce0 11-Oct-2010 Philippe Houdoin <philippe.houdoin@gmail.com>

Check in BuildFloppyBootImage1 that haiku_loader could actually fit
before the image archive.


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


# 8b006b36 14-Aug-2010 Andreas Färber <andreas.faerber@web.de>

Allow to suppress individual Optional Packages

Add Jam rule SuppressOptionalHaikuImagePackages as a mechanism to keep
packages from being installed.

Extend the UserBuildConfig.ReadMe document to cover the new command.

Closes ticket #6260.

Changes from v1:
* Simplified IsOptionalHaikuImagePackageAdded as suggested by Ingo.
* Added example as documentation.


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


# 61fae900 10-Jul-2010 Matt Madia <mattmadia@gmail.com>

Some improvements for installoptionalpackage
* copy the needed jam files during compile time. This ensures the correct data
files are used, for example in non-trunk builds
* -f now only removes the generated at runtime listing of available packages


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


# 46760580 23-Jun-2010 Matt Madia <mattmadia@gmail.com>

Record the installed optional packages to common/data/InstalledPackages.
This will be utilized by installoptionalpackage, to determine which packages
are already installed in the system and thus should not prevent the
installation of other packages.


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


# 4a71fc35 28-Apr-2010 Matt Madia <mattmadia@gmail.com>

InstallSourceArchive now copies source archives to _sources_/, which in turn
is ignored by Installer. Automatic whitespace cleanup.


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


# 4eb0a8c2 24-Apr-2010 Matt Madia <mattmadia@gmail.com>

Enhance InstallOptionalHaikuImagePackage to accept a new parameter, which
indicates the archive to be usable with either GCC. When utilized, the
packages shared libraries will automatically be symlinked in the alternative
gcc subdir, eg common/lib/gcc4. At the moment, packages that set isCDPackage
are not supported, as Installer needs to be enhanced.


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


# 18a69c72 29-Mar-2010 Matt Madia <mattmadia@gmail.com>

Condensed build_zip_archive & build_zip_archive into a single script,
build_archive. Updated ImageRules accordingly. Tested on the following:
* jam -q -sTARGET_BOOT_PLATFORM=pxe_ia32 pxehaiku-loader haiku-netboot-archive
* jam -q haiku-boot-floppy
* jam -q haiku-alternative-gcc-archive


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


# f29f2582 29-Mar-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* DoCatalogs:
- Cleaned up and prepared automatic globbing of the catkeys files.
Currently commented out as it breaks the build.
- Removed the AddFilesToHaikuImage invocation, which doesn't belong there.
Instead we set the variable HAIKU_CATALOG_FILES on the target and
automatically add the catalogs of a target in AddFilesToContainer.
* LinkApplicationCatalog: Pass the language name to the actions via variable.
Fixes the "independent target" warning.


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


# 0e82d313 15-Mar-2010 Matt Madia <mattmadia@gmail.com>

Allows AddOptionalHaikuImagePackages and OptionalPackageDependencies to work in
arbitrary order. Follow-up to r35830.


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


# b3532829 03-Mar-2010 Matt Madia <mattmadia@gmail.com>

Extended AddWifiFirmwareToHaikuImage to support a boolean, which determines
whether to extract the firmware archive onto Haiku Image or to simply copy
it intact. This allows the ipw2100 and iprowifi2200 firmware archives to be
copied onto the default images. Fixes #5523


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


# bbaf0029 02-Mar-2010 Oliver Tappe <zooey@hirschkaefer.de>

* fixed copy'n'paste bug in comment
* automatic whitespace cleanup

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


# 0010ec11 02-Mar-2010 Matt Madia <mattmadia@gmail.com>

Expander checks B_USER_DATA_DIRECTORY and B_COMMON_DATA_DIRECTORY for
expander.rules, not B_COMMON_ETC_DIRECTORY.


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


# ce811940 02-Mar-2010 Matt Madia <mattmadia@gmail.com>

Moved the optionalpackage P7zip's code for creating expander.rules into a new
rule AddExpanderRuleToHaikuImage.


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


# fc5e13e9 27-Feb-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Enforced 80 columns limit.


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


# c7b1040c 27-Feb-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

From: Matt Madia

* Added "extractedSubDir" parameter to ExtractArchiveTo{Container,HaikuImage}.
If given it specified the path of the subdirectory in the archive that
shall be extracted.
* Added AddWifiFirmwareToHaikuImage rule for extracting Wifi firmware
archives onto the image.


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


# 05bbc668 27-Feb-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

From: Matt Madia

* InstallOptionalHaikuImagePackage: Made the first argument an actual file
name, i.e. the extension ".zip" is no longer appended by it.
* Renamed rules UnzipArchiveTo{Container,HaikuImage} to
ExtractArchiveTo{Container,HaikuImage} and generalized them to support
tgz/tar.gz archives (implemented in build_haiku_{image,cd}).
* Removed DownloadOptionalPackage. DownloadFile is used instead.


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


# 76fa0be3 25-Feb-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Patch by Matt Madia:
* Renamed DownloadFile to DownloadLocatedFile.
* Pulled a generalized rule DownloadFile out of DownloadOptionalPackage.
* Added InstallSourceArchive rule which can be used in OptionalPackages to
add sources for installed packages to the image.
* Added configure option --include-sources to enable including the sources
for third party software in the image.


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


# 783930d9 31-Jan-2010 Oliver Tappe <zooey@hirschkaefer.de>

* reverted the part of r35362 that introduced support for minor ABI versioning - my evil twin made
me do that!

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


# 418b8758 31-Jan-2010 Oliver Tappe <zooey@hirschkaefer.de>

* added support for minor ABI versions to the SharedLibrary rule, as otherwise updating libz.so
could prove to be a major PITA (because of all the dependencies that would need to be rebuilt)
* when adding a library to the image, its optional minor abi version is taken care of, too (i. e. a
corresponding link is created).
* the ABI-related links in /system/lib are now replicated in /boot/develop/lib/<arch>

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


# 291785f8 27-Jan-2010 Oliver Tappe <zooey@hirschkaefer.de>

* added support for library (API-)versioning and private system libraries to
build system
* declared ICU-libs as private system libraries, which causes them to no longer
be available for building software (they no longer are linked from the
development lib folder, so the linker won't find them)


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


# f175afef 10-Jan-2010 François Revol <revol@free.fr>

Use the amiga-specific checksum fixing tool when building the Amiga boot floppy image (not usable yet).


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


# 42f2c2d0 22-Dec-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Added TODO.


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


# 492dd892 10-Nov-2009 Axel Dörfler <axeld@pinc-software.de>

* Removed /system/etc directory.
* /etc now points to /boot/common/etc/, and the remaining contents of the former
"etc" are put there now, as well.


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


# 84eac0b0 08-Sep-2009 Oliver Tappe <zooey@hirschkaefer.de>

closing #4453:
* fixed precedence problem in jam rule that caused an if to evaluate to true, no matter
if a cd or an image was being built


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


# 6ab71ad3 08-Sep-2009 Stephan Aßmus <superstippi@gmx.de>

Introduced new buildsystem feature that places certain packages into _packages_
on the target image instead of extracting them, but only if the target image
is a CD image. This then speeds up installing a great lot, at the expense of
certain applications not being available in LiveCD mode. This affects
* the revision control tools and their dependency libraries,
* autotools
* texinfo
* perl and python


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


# 6c25a957 05-Jul-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixed the corruptions of the generated image scripts that could happen with
multiple jobs. The problem was that the dummy targets used to compose the
scripts were independent from each other and jam could thus execute their
respective actions concurrently. We do now create a dependency chain between
the dummy targets of each script, so that jam is forced to execute the actions
sequentially.


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


# e20c80b5 21-Jun-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Added new optional parameter to AddSymlinkToHaikuHybridImage allowing to create
the symlink in a subdirectory for the alternative gcc.


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


# 1b56bd2b 26-May-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added rule CopyDirectoryToAlternativeGCCArchive, analogous to
CopyDirectoryToHaikuImage just for the alternative GCC.
* Added rules Add{Files,Symlink}ToHaikuHybridImage. Those call both the
Add{Files,Symlink}toHaikuImage and Add{Files,Symlink}toAlternativeGCCArchive
rules, the latter with an optionally slightly changed parameter.


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


# a4744551 24-May-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Changed the way the zip archive with the alternative gcc libraries is built.
Now that's done like building the network boot archive, which gives us a lot
more flexibility for defining its contents.


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


# 9c08ace2 27-Apr-2009 François Revol <revol@free.fr>

Add the checksum required step for atari_m68k on the boot floppy.


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


# 4eae7ffa 27-Apr-2009 François Revol <revol@free.fr>

Use arch specific floppy image size, Atari machines don't know about 2.88kB... plus it still fits in.


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


# 4585fda6 21-Apr-2009 Michael Lotz <mmlr@mlotz.ch>

The bootfloppy image has become so fat that it simply doesn't fit the 1.44 size
anymore. This was the case for GCC4 already but is now also true for GCC2. We
might want to look into that again, or we can just ignore it as noone is really
using floppies anymore and for eltorito boot we can live with the 2.88 floppy
emulation.


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


# d339b68b 08-Apr-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added UnzipArchive rule which unzips a zip file into a target directory.
* Added DownloadOptionalPackage which is mainly a wrapper around DownloadFile
preventing the package from being downloaded twice, even if invoked more
than once.
* InstallOptionalHaikuImagePackage uses DownloadOptionalPackage now.


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


# 317bd7dd 03-Apr-2009 Axel Dörfler <axeld@pinc-software.de>

* Changed directory structure as suggested on the mailing list.
* Made the TimeZoneView less error prone, and also actually use Haiku code (the
previous check didn't work since it used #if, not #ifdef).
* Also took the liberty to rename our boot loader to haiku_loader, since I had
to update the nasm binary anyway. Updated the assembly sources to nasm 2.0.
* I haven't found where the synth location in the MIDI code is specified,
though.
* Also, NetBootArchive, and FloppyBootImage haven't been updated yet. Will do
so next.
* Some optional packages still put their license to beos/etc/licenses. I didn't
update them yet, as we'll probably do so anyway at some point. Also, I think
we might want to introduce a common/data/licenses instead for those.
* If you encounter any problems, please tell!


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


# d15b54c9 18-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Removed HAIKU_ADD_ALL_OPTIONAL_PACKAGES build variable. It did more harm than
good lately.


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


# 37aefc9c 23-Feb-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Moved jam argument processing to new build/jam/CommandLineArguments.
* Check the first argument for "help" as well. If given print a somewhat
helpful text. Consider this my excuse to close ticket #1883. :-)
* Track available and added optional packages and fail, if an optional package
is requested that doesn't exist. Closes ticket #3332.
* Check for duplicate build profile definitions and fail if encountered.
Closes ticket #3333.


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


# f96525f7 15-Feb-2009 Michael Lotz <mmlr@mlotz.ch>

The GCC4 built boot floppy archive is too large, it doesn't fit on a 1.44 image.
Therefore we switch to building a 2.88 floppy image in that case so it's at
least usable to build a bootable CD.


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


# 1c532eed 14-Nov-2008 François Revol <revol@free.fr>

Make the tgz archive offset in floppy image settable. Set it to 270k for now, until zbeos gets some diet.


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


# 76778d1e 14-Nov-2008 François Revol <revol@free.fr>

Add missing rules for floppy images...


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


# 0d1f354d 11-Nov-2008 François Revol <revol@free.fr>

Fix typo.


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


# 47577f1c 11-Nov-2008 François Revol <revol@free.fr>

Add COFF loader to ppc ISO.


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


# 14ff3a6a 09-Nov-2008 François Revol <revol@free.fr>

Finally found a hack to get the iso bootable in QEMU SVN (with some patching to get OpenHackware happy)...


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


# df6e910b 07-Nov-2008 François Revol <revol@free.fr>

Try harder with PReP boot, still no go.


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


# 360ca114 07-Nov-2008 François Revol <revol@free.fr>

- tried making an HFS CD, doesn't boot either in qemu yet.
- add an HFS map file


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


# c7d3cf5b 06-Nov-2008 François Revol <revol@free.fr>

First attempt at a PPC bootable iso, doesn't work yet.


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


# c5134b47 15-Jul-2008 Axel Dörfler <axeld@pinc-software.de>

* When updating all targets, symlinks and directories are now also recreated.
* Removed superfluous white space.


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


# 0afec191 09-Jun-2008 Jérôme Duval <korli@users.berlios.de>

added AddNewDriversToHaikuImage to replace AddDriverRegistrationToHaikuImage: it places drivers which supports the new device architecture at the right place


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


# 3c504a31 17-May-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Added rules F{Files,Symlinks}In{Container,HaikuImage}Directory returning
the targets/symlinks added to a container/Haiku image directory.


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


# 5f78d261 04-May-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

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


# 5b420b6d 03-Apr-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Replaced "echo -n >" by "touch" as it's more portable.


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


# f8cb3071 02-Apr-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Replaced the dummy implementations of the <grp.h> and <pwd.h>
functions by ones reading /etc/{group,passwd}.
* Added quasi-standard getpwent_r() and getgrent_r().
* Added _SC_GETGR_R_SIZE_MAX and _SC_GETPW_R_SIZE_MAX sysconf()
constants.
* Moved initgroups() and getgrouplist() definition to grp.cpp. They use
the same backend as the <grp.h> functions.
* Set the permissions of files created by the build system to what they
should be on the image (executables: 755, others: 644). Otherwise only
root could do anything under Haiku.
* Added build system variables HAIKU_ROOT_USER_NAME and
HAIKU_ROOT_USER_REAL_NAME to customize name and real name of Haiku's
root user.
* Added build system rules AddUserToHaikuImage and AddGroupToHaikuImage
for adding additional users and groups (by default only root user and
group and a "users" group are created).
* Adjusted BIND port and coreutils config.h files according to what
features have become available.
* Fixed HAIKU_DOCUMENTATION_OBJECT_DIR definition. Untested, but it used
a wrong variable name before.


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


# d4954058 29-Mar-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Added OptionalPackageDependencies rule to specify dependencies between
optional packages, i.e. installing one will install all its
dependencies, too.


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


# c904fe37 26-Mar-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added new optional parameter to AddHeaderDirectoryToHaikuImage,
specifying the name of the header directory on the image.
* Renamed the "gnu" header directory on the image to "3rdparty" and
created a "gnu" symlink for compatiblity.
* Added zlib and libpng headers to the "3rdparty" header dir.


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


# 88c4c662 25-Mar-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added new rule CopyDirectoryToHaikuImage which recursively copies a
directory to the image. It supports exclude patterns.
* Changed Add{Source,Header}DirectoryToHaikuImage to use the
CopyDirectoryToHaikuImage rule. The special handling in the
build_haiku_image script is gone now.


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


# d41c97f7 24-Mar-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Append the .zip extension to the package name rather than to replace the
suffix or otherwise package names with dots in them would be mangled.


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


# 0ba49c35 22-Mar-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* BuildPlatformMain supports overriding HOST_LIBROOT on the target now,
so one can set it to the static libroot, if desired.
* Generic attribute emulation:
- Added build tool rm_attrs, a simple "rm" replacement, which also
removes the attributes directory for a given file.
- Added build/scripts/rm_attrs shell script, which wraps the
invocation of the rm_attrs tool. If it doesn't exist yet, the
ordinary rm is used.
- The RM jam variable refers to the rm_attrs script now, i.e. whenever
something is removed by the build system, the attributes are removed
too (if the build tool has already been built, that is).
- Removed the shell function attrrmrf() in build_haiku_image. We use
the rm_attrs tool instead, if necessary.


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


# 9ed64004 01-Mar-2008 François Revol <revol@free.fr>

Rules and targets to build a boot CD iso... use:
jam haiku-boot-cd


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


# 22ec1df3 01-Mar-2008 François Revol <revol@free.fr>

Add rules to create a boot floppy (use jam haiku-boot-floppy), in preparation for CD booting.


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


# 631145a9 22-Feb-2008 Axel Dörfler <axeld@pinc-software.de>

* Added new rule AddHeaderDirectoryToHaikuImage that copies header
directories. Note that you need an updated "sed" (from the Haiku
repository) if you want to use that rule.
* The "Development" optional package now installs the Haiku headers
needed to build stuff (ie. "os", "gnu", and "posix"). It also makes
a symlink "be" so that we can still use the BeOS compiler with its
builtin header paths.
* Fixed AddVariableToScript for older shells that do not support '+='.


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


# 2fcb695c 17-Feb-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

axeld + bonefish:
Changed the way the VMware image is built. Instead of creating a normal
image first and then adding vmdk header and that image, we create the
VMware image in one go, now. Therefore "jam update-vmware-image ..."
does now actually update the VMware image directly, instead of updating
the normal image and recreating the VMware image.


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


# 96b421b8 05-Sep-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Added support for "optional packages". Those can be defined in
HaikuImage and enabled individually using the
AddOptionalHaikuImagePackages rule or all at once by setting
HAIKU_ADD_ALL_OPTIONAL_PACKAGES. In principle an optional package can
be any kind of addition to the Haiku image, but usually a zip file will
be downloaded from somewhere and unzipped onto the image. I've added a
WonderBrush package as an example.


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


# 0d469404 04-Sep-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Added support for unzipping archives onto the Haiku image. The new rule
to do that is UnzipArchiveToHaikuImage. Cf. UserBuildConfig.sample for
a usage example.


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


# c0d613f8 29-Aug-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Obsolete variable was still checked, which led to source directories
being copied onto the image even when updating only and alwaysUpdate
unspecified.


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


# 1ca065fa 26-Jul-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added second parameter to AddDirectoryToHaikuImage, a list of resource
(or rdef) files which will be converted to attributes and added to the
installed directory. Adjusted build_haiku_image script accordingly.
* Added directory data/image_directories, which is where the resource
files for the directories attributes shall be stored. As naming
convention I suggest using the target directory path with slashes
replaced by hyphens, e.g. home-config-bin.rdef for home/config/bin.


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


# fe452e51 17-Jul-2007 Axel Dörfler <axeld@pinc-software.de>

Fixed update-image and update-install which were broken after the NetBootArchive changes, courtesy Ingo.


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


# b39c8d37 10-Jul-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* Refactored the image creation rules. There are now generalized rules that
work on arbitrary "containers". The image rules are just
specializations.
* Added rules, a definition file (build/jam/NetBootArchive), and a shell
script for creating a gzipped tar archive containing kernel and modules
required for network booting (the contents may need some fine-tuning).
ATM it can be built via the haiku-netboot-archive pseudo target. It is
generated in the output directory (e.g. "generated").


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


# afed18de 06-Apr-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

New build system feature to shorten the turn-around times when working
with image files. E.g.

jam -q update-image libbe.so kernel_x86

will only build libbe.so and the kernel (if necessary) and copy them
onto the already existing Haiku image. The MIME DB will not be
reinstalled, and only those source directories will be copied for which
the AddSourceDirectoryToHaikuImage rule is given a second argument
(e.g. "1"). The image will otherwise remain unchanged.

The "update-vmware-image" and "update-install" work similarly for the
VMWare image and the directory installation respectively. Note that, due
to the way the VMWare image is created (prepending a header to the
standard image), the file itself is fully rebuilt, i.e. changes made
during the emulation will be lost after updating the VMWare image.

The feature requires Haiku's jam. With other jam versions a similar
effect can be reached by accordingly setting the HAIKU_IMAGE_UPDATE_ONLY
and HAIKU_INCLUDE_IN_IMAGE in the UserBuildConfig file.


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


# 4477befe 24-Mar-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* Modified AddVariableToScript to support multi-element arrays.
* Added rule AddSourceDirectoryToHaikuImage to copy source directories
onto the image. They will be placed in /boot/home/HaikuSource/...
according to their relative path. This should make it a bit more
comfortable to use gdb as a source level debugger. Alas, the
directories have to be made known to gdb individually (with the
"directory" command). I guess we should update to 6.6...


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


# a7bbb815 26-Jan-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

New rule to create a VMWare image from the plain Haiku image using Marcus'
vmdkheader tool. New pseudo target haiku-vmware-image to build it.
Image default name is "haiku.vmdk", adjustable via the
HAIKU_VMWARE_IMAGE_NAME variable.


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


# 8ca0de0c 24-Jan-2007 Jérôme Duval <korli@users.berlios.de>

jam seems to badly handle parenthesis with the B modifier : the workaround is to remove other modifiers
fixes ticket #981


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


# c20e9eef 29-Nov-2006 Jérôme Duval <korli@users.berlios.de>

added a jam rule AddDriverRegistrationToHaikuImage to add device mappings on the image
commented the insertion of the attribute name in patterns in the case of a string attribute
notify_probe_by_file chooses a module based on a bus specific suffix
dm_register_child_device has a parameter to optionally check the support for the node
added scanning of bus devices after the boot filesystem is mounted
fixed dm_rescan, locking was misbehaving
fixed SYSTEM_DRIVER_REGISTRATION definition
added B_DRIVER_MAPPING attributes for PCI and ACPI devices:
%vendor%_%device% for PCI, hid_%hid% and type_%type% for ACPI
moved acpi_device_module_info definition to public ACPI.h


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


# 3d3a4736 28-Jun-2006 Ingo Weinhold <ingo_weinhold@gmx.de>

A target can now be installed more than once on the image.
Fixes bug #696.


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


# 4d519289 11-Feb-2006 Ingo Weinhold <ingo_weinhold@gmx.de>

We also pass the "-n" (no dereference) switch to ln when creating symlinks
on the Haiku image/installation. Apparently BeOS R5's ln is buggy in that
it always assumes "-n". A correct ln would resolve an existing symlink to
a directory and create/replace the symlink there. If you have such an ln,
you may find symlinks /boot/beos/apps/apps, /boot/beos/preferences/preferences,
and /boot/home/home on your boot partition (if you have run "jam install-haiku"
at least twice).
Fixes bug #143.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16354 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


# 938bf9fad2fa70a2fd7dba661464068133bf9b73 31-Jul-2014 Oliver Tappe <zooey@hirschkaefer.de>

Add more missing 'local's to variable declarations.


# cd8a7df77d7daf4150edf8b995627fd26dcb2f58 10-Aug-2014 Ingo Weinhold <ingo_weinhold@gmx.de>

ImageRules: Fix issues where file names may contain parens

Parentheses in target names are considered by Jam to mean an archive
member. We have to explicitly use the M selector to keep that part.

Fixes #10378 (certain keymaps missing on image).


# 590b95e96efd881aa3fd347903b458bdc01dfd99 01-May-2014 Oliver Tappe <zooey@hirschkaefer.de>

Add variable noDownloads to build_haiku_image.

* If noDownloads is set, show an error when a download is requested.


# 9225185b657118f6c4f6a003023ac94c717b2f76 26-Apr-2014 Jérôme Duval <jerome.duval@gmail.com>

AddHeaderDirectoryToContainer: filters backup files.

* also leaves out .svn, now useless.


# 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.


# bef384b0582ca327d03fedbb717454e59c8536b1 15-Mar-2014 Oliver Tappe <zooey@hirschkaefer.de>

Don't copy over package versions into package-list for bootstrap.

* This decouples the versions referenced by the architecture-specific
repository file from the actual versions available in the haikuports
branch that happens to be used for the bootstrap build.


# 0d9151c9ff7935d618ba4718f15136a0e185936b 30-Nov-2013 Matt Madia <mattmadia@gmail.com>

Add genisoimage support to actions BuildCDBootImage1.


# 5328a58455d656888e5901220dd26526c9189940 12-Nov-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

AddNewDriversToHaikuImage rule: Support alwaysUpdate flag

* Support alwaysUpdate flag in AddFilesToContainer.
* Add flags arguments to AddNewDriversTo{Container,HaikuImage} and
support alwaysUpdate flag.


# 3010e4f4ea1536dace29ad7c76c3ba89f2cc1248 12-Oct-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

AddFilesToContainer: Strip executables, if requested

Variable HAIKU_CONTAINER_STRIP_EXECUTABLES can be set on the container
to trigger that.


# 19f94028f6014c9c0867f7efa581bb48058b4883 12-Oct-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Revert "Allow stripping binaries when copying to image containers"

This reverts commit d6de84de6690d076caf2744ba3fda17ef267cabd.


# cc5c6133d2d071f7405a06354f5710987abe261f 12-Oct-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Revert "Rework stripping binaries when copying to containers"

This reverts commit e2332987bce967387b49c5dce24867688a01317f.


# d05822f18b93c2de6b904304ecd9dea7047870b6 12-Oct-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Revert "Preserve resources and attributes when copying stripped binaries"

This reverts commit a427aa2f4a47ae242110e9d98d4bed307f8dad73.


# a427aa2f4a47ae242110e9d98d4bed307f8dad73 11-Oct-2013 François Revol <revol@free.fr>

Preserve resources and attributes when copying stripped binaries

When asked to strip binaries when copying to containers we now
strip to a temporary file, copy over resources to it, copy it
to the container, then copy the attributes from the original
source.

This should allow stripping binaries while preserving attributes
and resources even when copying to images.


# e2332987bce967387b49c5dce24867688a01317f 11-Oct-2013 François Revol <revol@free.fr>

Rework stripping binaries when copying to containers

We now only attempt to strip binaries, by detecting the
LINKFLAGS variable on the targets.

CopySetHaikuRevision now also forwards LINKFLAGS
to revisioned binaries.

Introduce separate AppendToContainerCopyFilesScriptStripFile actions
which are used for copying and stripping, and avoids many useless
shell tests.

When asked to strip binaries, they are detected and handled
individually for simplicity.

Note we still don't keep resources and attributes when stripping.


# d6de84de6690d076caf2744ba3fda17ef267cabd 09-Oct-2013 François Revol <revol@free.fr>

Allow stripping binaries when copying to image containers

Currently only needed for boot floppy on some platforms.

Disabled for now.

Note we do not have a mean of knowing which file is a binary
or not so we just try to strip, and silently continue when
strip fails (like on the kernel settings file).

Also note strip actually replaces the file, which means it looses
both the resources and attributes, which shouldn't be a problem
for the boot floppy drivers archive, but is not wanted for other
images, so it's not usable elsewhere as such. Patch wanted.


# a27d687e2abdf10b16e5780df644a73f762afcaf 08-Oct-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Name the generated HPKG files properly

* rule AddPackageFilesToHaikuImage: Add "flags" parameter. The only
supported flag is "nameFromMetaInfo". It causes the packages to be
copied under their canonical file name onto the image.
* Use the new flag for all generated packages save haiku_loader.hpkg.


# 40c9cb7b47a7c26b270aae3eebe7a018e31b214f 08-Oct-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

rule AddFilesToContainer: Support naming files later

* Add "flags" parameter and only supported flag "computeName". When
specified the "destName" argument is the name of a shell command
or function that will be called to determine the destination file
name when the container is built.
* AddFilesToHaikuImage: Pass flags to AddFilesToContainer.


# 50ffb212914720bb408c4680b5af2db9908ee932 05-Oct-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

update-{all,packages} build profile action: empty packages dir

... before copying the new contents to the image. This caters to the
typical use case of updating an existing Haiku, making manual
intervention to get the new packages activated unnecessary. The downside
is that manually added packages will be removed as well.


# f73f5d4c42a01ece688cbb57b5d332cc0f68b2c6 29-Sep-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Initial changes to remove /boot/common

* find_directory() and hard-coded paths use /boot/system instead of
/boot/common.
* The build system creates the writable directories in /boot/system
instead of /boot/common.
* The build system no longer installs any packages in /boot/common.


# 58c82e4fb72e2476c725d8a61617afc437dc5663 29-Sep-2013 François Revol <revol@free.fr>

Make sure the boot driver tgz doesn't overflow the boot floppy

At least on 68k it does. Seems to be ok on x86, for now...


# 76cd5b091ed3347d95af8765214e2bda2c32de92 12-Sep-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Move stuff from HaikuImageCommon to new rule

... AddPackagesAndRepositoryVariablesToContainerScript.


# dee358f0eccb9d6f6cc2008327089c60e408ff0c 12-Sep-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

AddBootModuleSymlinksToContainer: Fix symlink target

The symlink was only correct, if the container was a package. For
containers with a non-empty path to the system directory the link would
duplicate the system directory path.


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

Image rules: filter packages list via FFilterByBuildFeatures

AddPackageFilesToHaikuImage, AddHaikuImagePackages: For convenience
filter the given package file/package list through
FFilterByBuildFeatures.


# 47fd9e6dc6303f57ed1160953dfc3f0859140420 10-Aug-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

rule AddLibrariesToContainer: fix for gristed libraries


# c965ee60b5656a5ef749adfdacd64918adee6cf5 06-Aug-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

bootstrap image: build needed source packages and add them

* IsPackageAvailable, FetchPackage: Add flags parameter. The only
flag supported ATM is nameResolved, indicating that the specified
package name does not need to be resolved with respect to a secondary
architecture anymore.
* Add build profile action "build-package-list". As an argument the
file to which the list of all packages needed for the image is
written. The rule BuildHaikuImagePackageList implements the action.
* BuildBootstrapRepositoryConfig: Does now require the variable
HAIKU_REPOSITORY_TREE_PATH to be set on the config file target instead
of hard-coding the path. Allows reuse of the actions.
* Add rules BuildHaikuPortsSourcePackageDirectory and
BuildHaikuPortsRepositoryConfig. The former builds all HaikuPorts
source packages needed to build the packages for an alpha image. The
latter generates a haikuports.conf file for use on the bootstrap
Haiku.
* HaikuImageBootstrap: Add directory /boot/home/haikuports which
contains a subdirectory with the source packages and a
haikuports.conf.


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

AddHaikuImagePackages/IsHaikuImagePackageAdded: 2ndary arch fix

For the secondary architecture the same specified package name means a
different package, so we need to use the mapped name IsPackageAvailable
returns.


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

Remove no longer needed HAIKU_STRIP_DEBUG_FROM_OPTIONAL_PACKAGES


# e173a1ec1c0c1f48e355f3cbc34c0114e336ff88 20-Jul-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Integrate building the HaikuPorts bootstrap packages

* Add configure option --bootstrap which allows specifying the
haikuporter and HaikuPorts repository paths.
* Add rules for supporting a second repository type. The
PackageRepository rule is now private and RemotePackageRepository is
used for remote repositories. The new BootstrapPackageRepository rule
is for defining a bootstrap repository (there will probably be only
the HaikuPorts cross repository) whose packages can be built as needed
via haikuporter.
* Rename DownloadPackage to FetchPackage.
* Define repository HaikuPortsCross.
* HaikuCrossDevel package(s): There are now two sets of packages: A
"stage1" set with the same content as before and a final set
additionally containing the libraries libbe, libnetwork, libpackage.
Those are needed for building the libsolv bootstrap package while for
building them we need other bootstrap packages (ICU, libz).

This is basically all that's required to build a bootstrap Haiku
completely from sources, with a few caveats:
* There's no ICU bootstrap recipe yet (so one has to cheat and use the
prebuilt package ATM).
* Probably doesn't work on Haiku yet (tested on Linux only).
* A 32 bit environment must be used (otherwise building the gcc 2
bootstrap package fails).
* Building with multiple jobs doesn't work yet, since haikuporter uses
common directories for building different packages and there's no
explicit serialization yet.
* Haven't tested the resulting image save for booting it. So it probably
needs a bit more work before it can actually build the final
HaikuPorts packages.


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

Remove more optional package related left-overs


# 014eed80e289c2bbc187ac91bb7b3a35560a971f 06-Jul-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Change repository directory layout

* Under the base URL there are supposed to be the repository files and a
subdirectory "packages".
* Fix the repository URL related confusion introduced earlier. The URL
in
the repository info (and thus in the repository file) is supposed to
be the base URL for the repository. It is not a (potentially)
different base URL for the package files. Package and repository
files were supposed to live in the same directory. Now, by requiring
the package files to live in a subdirectory -- which can also be a
symlink -- we gain some flexibility.
The URL in the repository config is usually the same as the in the
repository info, unless it refers to a mirror site. This allows for
mirrors to copy the original repository verbatim.
* Remove the PackageURL rule and introduce a DownloadPackage rule
instead. The URL for a package file cannot be computed in the jam
parsing phase anymore, as it contains the hash value of the package
list.
* BRepositoryConfig: Add PackagesURL() for convenience.


# 98c6dfa41e20c57edf426197a8d9aab6223a59fd 05-Jul-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Switch build system from optional package to repositories

* Build libsolv and the dependency solver part of the package kit for
the build platform.
* Add build tool get_package_dependencies. Given a list of package files
and a list of repository files it determines the additional packages
that need to be retrieved from the repositories and prints their URLs.
* Add rules to work with external repositories in the build system
(build/jam/RepositoryRules):
- PackageRepository declares an external repository with all its
packages. The URL of the repository file isn't specified. It is
computed from a given base URL and the SHA256 hash of the list of
package files.
- GeneratedRepositoryPackageList generates a file containing the file
names of all packages in a repository.
- IsPackageAvailable returns whether a package is available in any
repository.
- PackageURL returns the URL for a package.
* Declare the HaikuPorts repository for x86_gcc2
(build/jam/repositories/HaikuPorts/x86_gcc2).
* Add rule AddHaikuImagePackages to add a package to the image and rule
IsHaikuImagePackageAdded to determine whether a package has been
added.
* OptionalPackages: Remove all entries that just downloaded and
installed an external package. AddHaikuImagePackages can be used
instead and is used in the remaining entries. Also move the remaining
optional package dependency declarations from
OptionalPackageDependencies here.
* ExtractBuildFeatureArchives: Instead of the URL parameter a package
name must be specified now. This allows to simplify BuildFeatures
significantly, since there's no dealing with URLs anymore. "if" out
the entries that aren't supported yet.
* build_haiku_image: For the packages installed in system and common
resolve their dependencies and download and install them as well.


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

Expander: also read rules from data directories

* ExpanderSettings: Use a settings directory "expander" and rename
settings file to "settings".
* ExpanderRules: Read expander rules from "rules" files in the settings
directory, then from files in expander/rules subdirectories of the
installation location data directories, and finally add the built-in
rules. This allows packages to provide expander rules (as already
done by the p7zip package).
* OptionalPackages: Remove AddExpanderRuleToHaikuImage invocations.
* ImageRules: Remove Expander rule file related rules.


# 67b2c0fee38f3c657ff7fa81fdb5ef27235e30c2 05-Jun-2013 Alexander von Gluck IV <kallisti5@unixzen.com>

PowerPC: Transition back to CHRP script.

* After examining MacOS toolbox roms, I think i've got
this nailed down. The MacOS Toolbox rom contains chrp
code at the top and binary code at the bottom.
* The Raw format for the chrp seemed to cause issues with the
OpenFirmware boot process on some systems. NetBSD uses a '-'
file type.
* The format of the chrp seems a lot more sensitive across machines
than described. Ensure our returns and spaces are even.
* Booting with the 'c' key is still working on my older OpenFirmware
machine with the chrp script. The bitmap logo is a half black, half
white box.
* I removed the &device; alias for now for troubleshooing. It also may
of been causing compatibility issues. More testing is needed.


# 1072a5e7774b71f87b7d364ba9d1dfff9eb98ae6 04-Jun-2013 Alexander von Gluck IV <kallisti5@unixzen.com>

PowerPC: Fix 'c' key booting of CD on Apple hardware

* It seems like not all NewWorld OpenFirmware
versions support booting from CHRP scripts.
* Move Haiku elf bootloader into bootloader.b
type tbxi. As it is in the blessed directory
it is picked up by cd:,\\:tbxi
* Adjust bootinfo.txt to point to bootloader
&device; ensures that the image can be started
regardless of source media
* Adjust bootinfo.txt to use \\ as base. \\ is an
alias for the blessed folder on the boot media
* Rename ofboot.b to ofboot.chrp to avoid confusion
* Add .txt, .html to hfs.map to identify them properly
* The haiku-boot-cd-ppc.iso now boots on my G3 PowerBook
by holding the 'c' key at startup. The boot menu colors
are incorrect (white background) but it is a step in
the right direction.
* New chrp script. Blank icon for the moment, if someone
could figure out how to make a chrp icon that would be
neat.
* Tested working on qemu and real hardware. Need to test
on a more modern PowerPC Mac however.


# 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.


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

CopyDirectoryToContainer: fix typo in comment


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

AddDriversToContainer: Handle duplicate invocations

Since the same driver can be added in more than one category, in a few
cases AddDriversToContainer was invoked twice for the same target. Avoid
adding the driver twice to add-ons/kernel/drivers/bin in such a case.
Didn't really cause any problem, but no need to copy the file twice.


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

rule CopyDirectoryToContainer: Add flags isTarget

The flags indicates that the passed sourceDirectory is a target, not a
path.


# 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).


# e0f7f688f15c7b5d99a2313b8715743ff248e8c4 29-Apr-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Extract packages' settings dir to common/settings in image

That's a somewhat crude initial approach to installing the default
settings of packages when building the image.


# ece8449668c88aaf2cf351842830aaa51c30723c 29-Apr-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Pimp up AddTargetVariableToScript to support a list of targets


# 4fd280ddfa2f999654dfe20d9a7980c84c0108a0 29-Apr-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Simplify use of InstallOptionalHaikuImagePackage

When invoked for a hpkg only the installation location (i.e. "common"
or "system") has to be specified now and "common" is the default. The
rule uses AddPackageFilesToHaikuImage now.


# 5d41bc9af9a872e54abc29fc14fe0120c586e42b 29-Apr-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Add AddPackageFilesToHaikuImage rule


# 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.


# 88f22c9768e3a7d5bd439800b2f6d479a369d745 16-Apr-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

InstallOptionalHaikuImagePackage: Remove first parameter

Instead deduce the file name from the URL. A long overdue change. Avoids
unnecessary name duplication, which only led to errors.


# 33c254876cb7daf07831ee896efba3c5364915a7 08-Dec-2012 Ingo Weinhold <ingo_weinhold@gmx.de>

ImageRules: Allow build feature annotated params in Add* rules

More precisely in the rules that take multiple targets. It doesn't make
that much sense e.g. for AddSymlinkTo*.


# 4107ac9cda4e76ce515596afebc11005b6e97534 30-Oct-2012 Jérôme Duval <jerome.duval@gmail.com>

Cleanup of remains of subversion in the build system


# 1a53a4d3f5ab0881fbe0b76bfb360d94cfb6d1a1 16-Sep-2012 Matt Madia <mattmadia@gmail.com>

Refactored the stripping of debug symbols to be a per-archive basis.

Setting 'HAIKU_STRIP_DEBUG_FROM_OPTIONAL_PACKAGES = 1' will enable the
mechanism. By default all packages will be stripped. Passing anything
other than '1' or 'true' in the InstallOptionalHaikuImagePackage call
will disable it for a particular package.


# 323b65468e5836bb27a5e373b14027d902349437 21-Nov-2011 Oliver Tappe <zooey@hirschkaefer.de>

Filtered flat import of Oliver's svn package management branch

Bring the changes that aren't package management related and the ones
that are but don't take effect as long as they are ignored by the build
system into the master.

Summary of changes:
* Introduce private header <directories.h> with constants for a good
deal of paths that should usually be retrieved via find_directory().
* Replace hard-coded paths by using find_directory() or the
<directories.h> constants (e.g. in drivers and the kernel).
* Add find_directory() constants needed for package management.
* Add __HAIKU_ABI_NAME and B_HAIKU_ABI_NAME macros.
* src/apps/deskbar: BeMenu.* -> DeskbarMenu.*,
DeskBarUtils.* -> DeskbarUtils.*
* Change deskbar menu settings directory from ~/config/be to
~/config/settings/deskbar.
* Other smaller cleanups, changes, and fixes.


# 97e22a9b500f89e38c67be7e2ee3fe2d539a54a8 25-Oct-2011 François Revol <revol@free.fr>

Workaround missing mkisofs in Debian sid for ppc boot CD. It needs a rewrite anyway.


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


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

Add PropagateContainerUpdateTargetFlags rule

It propagates the HAIKU_INCLUDE_IN_IMAGE and HAIKU_INCLUDE_IN_PACKAGES
variables from one target to another.


# 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.


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

AddFilesToContainer: avoid unnecessary work

* If after filtering the list of targets is empty, return.
* Get the directory only afterwards.


# 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.


# dfa6888fb2b5ed76fbb533486b2d3828809523a2 30-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Remove InstallCommonPackage rule


# a6e73cb9e8addfe832c064bfcb68067f1c2fa3eb 30-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Remove installoptionalpackage


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

Fix gcc2 and ICU optional packages

* InstallOptionalHaikuImagePackage: In case of hpkg packages, copy them
to the target directory, instead of extracting them.
* Correct gcc 2 package download URL.
* The ICU gcc 2 optional packages has been repackaged as hpkg. Use that.
For gcc 4 things are broken, now.


# 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.


# 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.


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

Generalize some image rules

Pulled generalized *ToContainer versions out of several *ToHaikuImage
rules.


# 3dfd9cb95ce45f59160d50975210bc55e3fc0709 16-Jun-2011 Oliver Tappe <zooey@hirschkaefer.de>

Flat commit of all changes from package-management branch in svn


# d28b0b06d0ebd6e99efeffaa0df3a5202ce24c0b 30-May-2011 Philippe Houdoin <philippe.houdoin@gmail.com>

Of course, when incomptability kick in, it's never limited only to
option string: FreeBSD's stat command line don't use %s format specifier for
file size. Instead, %s specifier is unused at all and they goes with %z.
For file Zize, I guess...



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


# c3510ace839d9edef1df08ae65d07ae0e3ed015a 30-May-2011 Philippe Houdoin <philippe.houdoin@gmail.com>

When building floppy boot image on FreeBSD, the stat command line fail on
the -c/--format option which is unsupported on this platform.
Add a fallback, which should fix #7613.


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


# 50ca9a25c97a00f14dbd716a70b84522f78a5538 05-Mar-2011 Matt Madia <mattmadia@gmail.com>

As per Ingo's comment 13 in #7286, removed support for isGCCAgnostic.
There should be separate gcc 2 and gcc 4 packages instead.


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


# d01a7e01ed75bcb5b00916a662960ebfcc90fb3e 19-Nov-2010 Philippe Houdoin <philippe.houdoin@gmail.com>

Revert mistaken committed change.


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


# 5a2f51f20e29d34bd6e96bca4c0752875675e8db 19-Nov-2010 Philippe Houdoin <philippe.houdoin@gmail.com>

Added WebPTranslator to Haiku image, with due credits in AboutSystem.


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


# b2b54ce0f6ecf995408cb5731514ee376cd4cc78 11-Oct-2010 Philippe Houdoin <philippe.houdoin@gmail.com>

Check in BuildFloppyBootImage1 that haiku_loader could actually fit
before the image archive.


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


# 8b006b36e7b87f0fc6c500cc9bf4755461af6563 14-Aug-2010 Andreas Färber <andreas.faerber@web.de>

Allow to suppress individual Optional Packages

Add Jam rule SuppressOptionalHaikuImagePackages as a mechanism to keep
packages from being installed.

Extend the UserBuildConfig.ReadMe document to cover the new command.

Closes ticket #6260.

Changes from v1:
* Simplified IsOptionalHaikuImagePackageAdded as suggested by Ingo.
* Added example as documentation.


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


# 61fae900607699d9c992c1b61ab184958e7ba94f 10-Jul-2010 Matt Madia <mattmadia@gmail.com>

Some improvements for installoptionalpackage
* copy the needed jam files during compile time. This ensures the correct data
files are used, for example in non-trunk builds
* -f now only removes the generated at runtime listing of available packages


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


# 46760580031d8ba37098ed1fa1c9c6e3fc8e706e 23-Jun-2010 Matt Madia <mattmadia@gmail.com>

Record the installed optional packages to common/data/InstalledPackages.
This will be utilized by installoptionalpackage, to determine which packages
are already installed in the system and thus should not prevent the
installation of other packages.


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


# 4a71fc35b646eda7fc351ba6b0a8d7ee1daea540 28-Apr-2010 Matt Madia <mattmadia@gmail.com>

InstallSourceArchive now copies source archives to _sources_/, which in turn
is ignored by Installer. Automatic whitespace cleanup.


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


# 4eb0a8c2fd6a4bbcd6ab0095986b0026a1ecf9d5 24-Apr-2010 Matt Madia <mattmadia@gmail.com>

Enhance InstallOptionalHaikuImagePackage to accept a new parameter, which
indicates the archive to be usable with either GCC. When utilized, the
packages shared libraries will automatically be symlinked in the alternative
gcc subdir, eg common/lib/gcc4. At the moment, packages that set isCDPackage
are not supported, as Installer needs to be enhanced.


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


# 18a69c72f6d75c22f929ea109a1cd646989b5b26 29-Mar-2010 Matt Madia <mattmadia@gmail.com>

Condensed build_zip_archive & build_zip_archive into a single script,
build_archive. Updated ImageRules accordingly. Tested on the following:
* jam -q -sTARGET_BOOT_PLATFORM=pxe_ia32 pxehaiku-loader haiku-netboot-archive
* jam -q haiku-boot-floppy
* jam -q haiku-alternative-gcc-archive


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


# f29f25822485dfffb48eadd5b959897f79a4083b 29-Mar-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* DoCatalogs:
- Cleaned up and prepared automatic globbing of the catkeys files.
Currently commented out as it breaks the build.
- Removed the AddFilesToHaikuImage invocation, which doesn't belong there.
Instead we set the variable HAIKU_CATALOG_FILES on the target and
automatically add the catalogs of a target in AddFilesToContainer.
* LinkApplicationCatalog: Pass the language name to the actions via variable.
Fixes the "independent target" warning.


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


# 0e82d313d6b0daf800160322c7f9820cd15e26b8 15-Mar-2010 Matt Madia <mattmadia@gmail.com>

Allows AddOptionalHaikuImagePackages and OptionalPackageDependencies to work in
arbitrary order. Follow-up to r35830.


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


# b353282928ac29da6fa1e8fb6c1970f7c2aeaccb 03-Mar-2010 Matt Madia <mattmadia@gmail.com>

Extended AddWifiFirmwareToHaikuImage to support a boolean, which determines
whether to extract the firmware archive onto Haiku Image or to simply copy
it intact. This allows the ipw2100 and iprowifi2200 firmware archives to be
copied onto the default images. Fixes #5523


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


# bbaf0029326c70a04ec7b873a90c780dea6f02ef 02-Mar-2010 Oliver Tappe <zooey@hirschkaefer.de>

* fixed copy'n'paste bug in comment
* automatic whitespace cleanup

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


# 0010ec111cac661e64c969a2d8ec50109bd3d99a 02-Mar-2010 Matt Madia <mattmadia@gmail.com>

Expander checks B_USER_DATA_DIRECTORY and B_COMMON_DATA_DIRECTORY for
expander.rules, not B_COMMON_ETC_DIRECTORY.


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


# ce811940ba8336e7ae9137fba6e3bcee369f7732 02-Mar-2010 Matt Madia <mattmadia@gmail.com>

Moved the optionalpackage P7zip's code for creating expander.rules into a new
rule AddExpanderRuleToHaikuImage.


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


# fc5e13e931404a3808e4ecff9bc4e673174c75f7 27-Feb-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Enforced 80 columns limit.


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


# c7b1040cde1cce2c73fafb2751fc20882080e195 27-Feb-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

From: Matt Madia

* Added "extractedSubDir" parameter to ExtractArchiveTo{Container,HaikuImage}.
If given it specified the path of the subdirectory in the archive that
shall be extracted.
* Added AddWifiFirmwareToHaikuImage rule for extracting Wifi firmware
archives onto the image.


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


# 05bbc668af9660bdef195f7b3b2ab18d3cfc52ae 27-Feb-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

From: Matt Madia

* InstallOptionalHaikuImagePackage: Made the first argument an actual file
name, i.e. the extension ".zip" is no longer appended by it.
* Renamed rules UnzipArchiveTo{Container,HaikuImage} to
ExtractArchiveTo{Container,HaikuImage} and generalized them to support
tgz/tar.gz archives (implemented in build_haiku_{image,cd}).
* Removed DownloadOptionalPackage. DownloadFile is used instead.


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


# 76fa0be374dd0b9b66c7e1845d6ea0a79c84d231 25-Feb-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Patch by Matt Madia:
* Renamed DownloadFile to DownloadLocatedFile.
* Pulled a generalized rule DownloadFile out of DownloadOptionalPackage.
* Added InstallSourceArchive rule which can be used in OptionalPackages to
add sources for installed packages to the image.
* Added configure option --include-sources to enable including the sources
for third party software in the image.


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


# 783930d9166e3e7f14581748c2d393e04c75ef87 31-Jan-2010 Oliver Tappe <zooey@hirschkaefer.de>

* reverted the part of r35362 that introduced support for minor ABI versioning - my evil twin made
me do that!

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


# 418b8758bf73e3afd6d16b7f61c14a932152f6bf 31-Jan-2010 Oliver Tappe <zooey@hirschkaefer.de>

* added support for minor ABI versions to the SharedLibrary rule, as otherwise updating libz.so
could prove to be a major PITA (because of all the dependencies that would need to be rebuilt)
* when adding a library to the image, its optional minor abi version is taken care of, too (i. e. a
corresponding link is created).
* the ABI-related links in /system/lib are now replicated in /boot/develop/lib/<arch>

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


# 291785f88f68d0a3127d15b056236626a8ce8cb8 27-Jan-2010 Oliver Tappe <zooey@hirschkaefer.de>

* added support for library (API-)versioning and private system libraries to
build system
* declared ICU-libs as private system libraries, which causes them to no longer
be available for building software (they no longer are linked from the
development lib folder, so the linker won't find them)


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


# f175afefc34787e96f1e2975bde3f08c408b71e7 10-Jan-2010 François Revol <revol@free.fr>

Use the amiga-specific checksum fixing tool when building the Amiga boot floppy image (not usable yet).


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


# 42f2c2d0991eb99e85c4be98fe8210a4e1a62f04 22-Dec-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Added TODO.


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


# 492dd892ce90cc1dc4916eb54b656f04cc480ee6 10-Nov-2009 Axel Dörfler <axeld@pinc-software.de>

* Removed /system/etc directory.
* /etc now points to /boot/common/etc/, and the remaining contents of the former
"etc" are put there now, as well.


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


# 84eac0b07c1b662fd4cbdf33da53cd19f53c4a16 08-Sep-2009 Oliver Tappe <zooey@hirschkaefer.de>

closing #4453:
* fixed precedence problem in jam rule that caused an if to evaluate to true, no matter
if a cd or an image was being built


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


# 6ab71ad3b768fcaf54b3a0144608dcfe492a4f24 08-Sep-2009 Stephan Aßmus <superstippi@gmx.de>

Introduced new buildsystem feature that places certain packages into _packages_
on the target image instead of extracting them, but only if the target image
is a CD image. This then speeds up installing a great lot, at the expense of
certain applications not being available in LiveCD mode. This affects
* the revision control tools and their dependency libraries,
* autotools
* texinfo
* perl and python


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


# 6c25a957e0502b8b6f8fddc06bb85fee9725fa8e 05-Jul-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixed the corruptions of the generated image scripts that could happen with
multiple jobs. The problem was that the dummy targets used to compose the
scripts were independent from each other and jam could thus execute their
respective actions concurrently. We do now create a dependency chain between
the dummy targets of each script, so that jam is forced to execute the actions
sequentially.


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


# e20c80b57f5603cc5b43c57b400309747ba46c44 21-Jun-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Added new optional parameter to AddSymlinkToHaikuHybridImage allowing to create
the symlink in a subdirectory for the alternative gcc.


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


# 1b56bd2b40008eef0a5e9f26cfcfce788b054cf4 26-May-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added rule CopyDirectoryToAlternativeGCCArchive, analogous to
CopyDirectoryToHaikuImage just for the alternative GCC.
* Added rules Add{Files,Symlink}ToHaikuHybridImage. Those call both the
Add{Files,Symlink}toHaikuImage and Add{Files,Symlink}toAlternativeGCCArchive
rules, the latter with an optionally slightly changed parameter.


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


# a474455132437ce7d22ff9f7e3457dc291abbf66 24-May-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Changed the way the zip archive with the alternative gcc libraries is built.
Now that's done like building the network boot archive, which gives us a lot
more flexibility for defining its contents.


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


# 9c08ace28ce8b5fd1fba6b158c14b6d655531ba7 27-Apr-2009 François Revol <revol@free.fr>

Add the checksum required step for atari_m68k on the boot floppy.


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


# 4eae7ffa1ed8a33dce32d351c57658968f70b0f5 27-Apr-2009 François Revol <revol@free.fr>

Use arch specific floppy image size, Atari machines don't know about 2.88kB... plus it still fits in.


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


# 4585fda62933a102157a087901f047fe8d00f916 21-Apr-2009 Michael Lotz <mmlr@mlotz.ch>

The bootfloppy image has become so fat that it simply doesn't fit the 1.44 size
anymore. This was the case for GCC4 already but is now also true for GCC2. We
might want to look into that again, or we can just ignore it as noone is really
using floppies anymore and for eltorito boot we can live with the 2.88 floppy
emulation.


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


# d339b68befe7c4a3e8122e3e5b620f9487483bcc 08-Apr-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added UnzipArchive rule which unzips a zip file into a target directory.
* Added DownloadOptionalPackage which is mainly a wrapper around DownloadFile
preventing the package from being downloaded twice, even if invoked more
than once.
* InstallOptionalHaikuImagePackage uses DownloadOptionalPackage now.


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


# 317bd7dda3eb26d4d24ba5b0a831461119f70d34 03-Apr-2009 Axel Dörfler <axeld@pinc-software.de>

* Changed directory structure as suggested on the mailing list.
* Made the TimeZoneView less error prone, and also actually use Haiku code (the
previous check didn't work since it used #if, not #ifdef).
* Also took the liberty to rename our boot loader to haiku_loader, since I had
to update the nasm binary anyway. Updated the assembly sources to nasm 2.0.
* I haven't found where the synth location in the MIDI code is specified,
though.
* Also, NetBootArchive, and FloppyBootImage haven't been updated yet. Will do
so next.
* Some optional packages still put their license to beos/etc/licenses. I didn't
update them yet, as we'll probably do so anyway at some point. Also, I think
we might want to introduce a common/data/licenses instead for those.
* If you encounter any problems, please tell!


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


# d15b54c97f0e3863364dd3c49e8a06e801b523c1 18-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Removed HAIKU_ADD_ALL_OPTIONAL_PACKAGES build variable. It did more harm than
good lately.


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


# 37aefc9c6f6dc3456d74dbccc3a606e30192baf4 23-Feb-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Moved jam argument processing to new build/jam/CommandLineArguments.
* Check the first argument for "help" as well. If given print a somewhat
helpful text. Consider this my excuse to close ticket #1883. :-)
* Track available and added optional packages and fail, if an optional package
is requested that doesn't exist. Closes ticket #3332.
* Check for duplicate build profile definitions and fail if encountered.
Closes ticket #3333.


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


# f96525f73f5ee6d6d55274187ac53f0be526ecc7 15-Feb-2009 Michael Lotz <mmlr@mlotz.ch>

The GCC4 built boot floppy archive is too large, it doesn't fit on a 1.44 image.
Therefore we switch to building a 2.88 floppy image in that case so it's at
least usable to build a bootable CD.


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


# 1c532eedf1f8919ce625ee33d6c8ceaf7fea836f 14-Nov-2008 François Revol <revol@free.fr>

Make the tgz archive offset in floppy image settable. Set it to 270k for now, until zbeos gets some diet.


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


# 76778d1e14d56fb1bc071b5836dba9a3df777a56 14-Nov-2008 François Revol <revol@free.fr>

Add missing rules for floppy images...


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


# 0d1f354d285f6378eddf0da9c2b302e4a3746851 11-Nov-2008 François Revol <revol@free.fr>

Fix typo.


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


# 47577f1cba07200e5768a228dd7bc73848f1883e 11-Nov-2008 François Revol <revol@free.fr>

Add COFF loader to ppc ISO.


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


# 14ff3a6a541ed4c84a960e3be5ae86421ba9282f 09-Nov-2008 François Revol <revol@free.fr>

Finally found a hack to get the iso bootable in QEMU SVN (with some patching to get OpenHackware happy)...


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


# df6e910b476d6eff776ff6b30457e2c96b898a3c 07-Nov-2008 François Revol <revol@free.fr>

Try harder with PReP boot, still no go.


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


# 360ca11440a381decaf43ec331b85a19b78fc99d 07-Nov-2008 François Revol <revol@free.fr>

- tried making an HFS CD, doesn't boot either in qemu yet.
- add an HFS map file


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


# c7d3cf5b8aef81654f2e3416034302bb63b3232c 06-Nov-2008 François Revol <revol@free.fr>

First attempt at a PPC bootable iso, doesn't work yet.


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


# c5134b47582e89a444fdd3dea17b0f767080ab7a 15-Jul-2008 Axel Dörfler <axeld@pinc-software.de>

* When updating all targets, symlinks and directories are now also recreated.
* Removed superfluous white space.


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


# 0afec1917eb42cdee067fe64ea47282964c80352 09-Jun-2008 Jérôme Duval <korli@users.berlios.de>

added AddNewDriversToHaikuImage to replace AddDriverRegistrationToHaikuImage: it places drivers which supports the new device architecture at the right place


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


# 3c504a317e513522eacb2e6ad7fad4630b8fac21 17-May-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Added rules F{Files,Symlinks}In{Container,HaikuImage}Directory returning
the targets/symlinks added to a container/Haiku image directory.


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


# 5f78d261a207dabedb8a7848ecad873b6b472d07 04-May-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

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


# 5b420b6d10bc783f7db1cdd0f638d81aba663311 03-Apr-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Replaced "echo -n >" by "touch" as it's more portable.


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


# f8cb30712e09e13b6eeb08f225810875aea1e6f8 02-Apr-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Replaced the dummy implementations of the <grp.h> and <pwd.h>
functions by ones reading /etc/{group,passwd}.
* Added quasi-standard getpwent_r() and getgrent_r().
* Added _SC_GETGR_R_SIZE_MAX and _SC_GETPW_R_SIZE_MAX sysconf()
constants.
* Moved initgroups() and getgrouplist() definition to grp.cpp. They use
the same backend as the <grp.h> functions.
* Set the permissions of files created by the build system to what they
should be on the image (executables: 755, others: 644). Otherwise only
root could do anything under Haiku.
* Added build system variables HAIKU_ROOT_USER_NAME and
HAIKU_ROOT_USER_REAL_NAME to customize name and real name of Haiku's
root user.
* Added build system rules AddUserToHaikuImage and AddGroupToHaikuImage
for adding additional users and groups (by default only root user and
group and a "users" group are created).
* Adjusted BIND port and coreutils config.h files according to what
features have become available.
* Fixed HAIKU_DOCUMENTATION_OBJECT_DIR definition. Untested, but it used
a wrong variable name before.


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


# d4954058b5bf012342b4ba68a52405ab11e4978a 29-Mar-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Added OptionalPackageDependencies rule to specify dependencies between
optional packages, i.e. installing one will install all its
dependencies, too.


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


# c904fe377e0c21ab4d2c8d5e5c6083e7aa8c8136 26-Mar-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added new optional parameter to AddHeaderDirectoryToHaikuImage,
specifying the name of the header directory on the image.
* Renamed the "gnu" header directory on the image to "3rdparty" and
created a "gnu" symlink for compatiblity.
* Added zlib and libpng headers to the "3rdparty" header dir.


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


# 88c4c6627b3a9f54a1e6f45755d4530cb39d404b 25-Mar-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added new rule CopyDirectoryToHaikuImage which recursively copies a
directory to the image. It supports exclude patterns.
* Changed Add{Source,Header}DirectoryToHaikuImage to use the
CopyDirectoryToHaikuImage rule. The special handling in the
build_haiku_image script is gone now.


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


# d41c97f7a504b4c3809ef47dddfe2b33123a1228 24-Mar-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Append the .zip extension to the package name rather than to replace the
suffix or otherwise package names with dots in them would be mangled.


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


# 0ba49c35b3ad2588217c45e3aa02144c7b2124f0 22-Mar-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* BuildPlatformMain supports overriding HOST_LIBROOT on the target now,
so one can set it to the static libroot, if desired.
* Generic attribute emulation:
- Added build tool rm_attrs, a simple "rm" replacement, which also
removes the attributes directory for a given file.
- Added build/scripts/rm_attrs shell script, which wraps the
invocation of the rm_attrs tool. If it doesn't exist yet, the
ordinary rm is used.
- The RM jam variable refers to the rm_attrs script now, i.e. whenever
something is removed by the build system, the attributes are removed
too (if the build tool has already been built, that is).
- Removed the shell function attrrmrf() in build_haiku_image. We use
the rm_attrs tool instead, if necessary.


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


# 9ed64004cc51a220be8c9d1860aab494d56db063 01-Mar-2008 François Revol <revol@free.fr>

Rules and targets to build a boot CD iso... use:
jam haiku-boot-cd


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


# 22ec1df3f0bbe72c63303d1df4ca0977c0d17782 01-Mar-2008 François Revol <revol@free.fr>

Add rules to create a boot floppy (use jam haiku-boot-floppy), in preparation for CD booting.


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


# 631145a97687835afca6823ff9c68410d0d8f708 22-Feb-2008 Axel Dörfler <axeld@pinc-software.de>

* Added new rule AddHeaderDirectoryToHaikuImage that copies header
directories. Note that you need an updated "sed" (from the Haiku
repository) if you want to use that rule.
* The "Development" optional package now installs the Haiku headers
needed to build stuff (ie. "os", "gnu", and "posix"). It also makes
a symlink "be" so that we can still use the BeOS compiler with its
builtin header paths.
* Fixed AddVariableToScript for older shells that do not support '+='.


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


# 2fcb695c2bd51d6fb04e7766f209ec02e100285f 17-Feb-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

axeld + bonefish:
Changed the way the VMware image is built. Instead of creating a normal
image first and then adding vmdk header and that image, we create the
VMware image in one go, now. Therefore "jam update-vmware-image ..."
does now actually update the VMware image directly, instead of updating
the normal image and recreating the VMware image.


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


# 96b421b83d66470f3dfabc690131ebb5dc69119c 05-Sep-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Added support for "optional packages". Those can be defined in
HaikuImage and enabled individually using the
AddOptionalHaikuImagePackages rule or all at once by setting
HAIKU_ADD_ALL_OPTIONAL_PACKAGES. In principle an optional package can
be any kind of addition to the Haiku image, but usually a zip file will
be downloaded from somewhere and unzipped onto the image. I've added a
WonderBrush package as an example.


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


# 0d469404ed0be9c9705c8661e153aeead3245731 04-Sep-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Added support for unzipping archives onto the Haiku image. The new rule
to do that is UnzipArchiveToHaikuImage. Cf. UserBuildConfig.sample for
a usage example.


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


# c0d613f8453bfcf0beda43a5bea79ef4c7642d98 29-Aug-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Obsolete variable was still checked, which led to source directories
being copied onto the image even when updating only and alwaysUpdate
unspecified.


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


# 1ca065fa884779543ac7329457d10db42c729981 26-Jul-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added second parameter to AddDirectoryToHaikuImage, a list of resource
(or rdef) files which will be converted to attributes and added to the
installed directory. Adjusted build_haiku_image script accordingly.
* Added directory data/image_directories, which is where the resource
files for the directories attributes shall be stored. As naming
convention I suggest using the target directory path with slashes
replaced by hyphens, e.g. home-config-bin.rdef for home/config/bin.


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


# fe452e51f0e4da39118791a5d98851c008f77fab 17-Jul-2007 Axel Dörfler <axeld@pinc-software.de>

Fixed update-image and update-install which were broken after the NetBootArchive changes, courtesy Ingo.


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


# b39c8d3711299d7ff89bbb725ad5ce6036d5c4db 10-Jul-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* Refactored the image creation rules. There are now generalized rules that
work on arbitrary "containers". The image rules are just
specializations.
* Added rules, a definition file (build/jam/NetBootArchive), and a shell
script for creating a gzipped tar archive containing kernel and modules
required for network booting (the contents may need some fine-tuning).
ATM it can be built via the haiku-netboot-archive pseudo target. It is
generated in the output directory (e.g. "generated").


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


# afed18de795463c525d4cc3b890db77c4991e4a2 06-Apr-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

New build system feature to shorten the turn-around times when working
with image files. E.g.

jam -q update-image libbe.so kernel_x86

will only build libbe.so and the kernel (if necessary) and copy them
onto the already existing Haiku image. The MIME DB will not be
reinstalled, and only those source directories will be copied for which
the AddSourceDirectoryToHaikuImage rule is given a second argument
(e.g. "1"). The image will otherwise remain unchanged.

The "update-vmware-image" and "update-install" work similarly for the
VMWare image and the directory installation respectively. Note that, due
to the way the VMWare image is created (prepending a header to the
standard image), the file itself is fully rebuilt, i.e. changes made
during the emulation will be lost after updating the VMWare image.

The feature requires Haiku's jam. With other jam versions a similar
effect can be reached by accordingly setting the HAIKU_IMAGE_UPDATE_ONLY
and HAIKU_INCLUDE_IN_IMAGE in the UserBuildConfig file.


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


# 4477befef2aa85cbe737afbb231f4e544cc28cf1 24-Mar-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* Modified AddVariableToScript to support multi-element arrays.
* Added rule AddSourceDirectoryToHaikuImage to copy source directories
onto the image. They will be placed in /boot/home/HaikuSource/...
according to their relative path. This should make it a bit more
comfortable to use gdb as a source level debugger. Alas, the
directories have to be made known to gdb individually (with the
"directory" command). I guess we should update to 6.6...


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


# a7bbb8153751cbbad70b3df81bf5d8f1b7d3db3b 26-Jan-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

New rule to create a VMWare image from the plain Haiku image using Marcus'
vmdkheader tool. New pseudo target haiku-vmware-image to build it.
Image default name is "haiku.vmdk", adjustable via the
HAIKU_VMWARE_IMAGE_NAME variable.


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


# 8ca0de0c89534d817754c42d616508e64772f1a4 24-Jan-2007 Jérôme Duval <korli@users.berlios.de>

jam seems to badly handle parenthesis with the B modifier : the workaround is to remove other modifiers
fixes ticket #981


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


# c20e9eefcd5728962fb0d03777574b6734c9cb37 29-Nov-2006 Jérôme Duval <korli@users.berlios.de>

added a jam rule AddDriverRegistrationToHaikuImage to add device mappings on the image
commented the insertion of the attribute name in patterns in the case of a string attribute
notify_probe_by_file chooses a module based on a bus specific suffix
dm_register_child_device has a parameter to optionally check the support for the node
added scanning of bus devices after the boot filesystem is mounted
fixed dm_rescan, locking was misbehaving
fixed SYSTEM_DRIVER_REGISTRATION definition
added B_DRIVER_MAPPING attributes for PCI and ACPI devices:
%vendor%_%device% for PCI, hid_%hid% and type_%type% for ACPI
moved acpi_device_module_info definition to public ACPI.h


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


# 3d3a473670a681a3ed9fed1d1b4a94cb13bea410 28-Jun-2006 Ingo Weinhold <ingo_weinhold@gmx.de>

A target can now be installed more than once on the image.
Fixes bug #696.


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


# 4d5192896a7844b528b8d49fec7b5ceee53e5a89 11-Feb-2006 Ingo Weinhold <ingo_weinhold@gmx.de>

We also pass the "-n" (no dereference) switch to ln when creating symlinks
on the Haiku image/installation. Apparently BeOS R5's ln is buggy in that
it always assumes "-n". A correct ln would resolve an existing symlink to
a directory and create/replace the symlink there. If you have such an ln,
you may find symlinks /boot/beos/apps/apps, /boot/beos/preferences/preferences,
and /boot/home/home on your boot partition (if you have run "jam install-haiku"
at least twice).
Fixes bug #143.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16354 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