History log of /haiku/build/scripts/build_haiku_image
Revision Date Author Comments
# b22fab95 25-Aug-2023 Augustin Cavalier <waddlesplash@gmail.com>

build_haiku_image: Fix type of MAIL:draft and MAIL:flags indexes.

Fixes #18503.


# 46cbd8ea 06-Oct-2022 Alexander von Gluck IV <kallisti5@unixzen.com>

build: Remove usage of obsolescent egrep

* "egrep: warning: egrep is obsolescent; using grep -E"
* egrep on haiku is a shell script calling grep -E
* given the warnings in the latest egrep, lets get
ahead of the curve and migrate to grep -E

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


# 12ef2169 22-Jul-2020 Adrien Destugues <adrien.destugues@opensource.viveris.fr>

build_haiku_image: no fs indices on CDs

The iso9660 filesystem does not support them


# 5b80a2fa 21-Jul-2020 Adrien Destugues <pulkomandy@pulkomandy.tk>

build_haiku_image: don't recreate indices when updating

mkinex fails when the indices already exist.


# c5aa9dfb 24-May-2020 Adrien Destugues <pulkomandy@pulkomandy.tk>

Create filesystem indices when creating Haiku image

Fixes #4424.

Change-Id: I737ee4f9bb70ce48c0c94f3a862a3073da8c0c4d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2796
Reviewed-by: Jérôme Duval <jerome.duval@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.)


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


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

build_haiku_image: Remove obsolete copyright concatenator.

All third-party software is now packaged and we ship the licenses
directory.


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


# c6d5c942 25-May-2014 Jérôme Duval <jerome.duval@gmail.com>

Fix test in build_haiku_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.


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


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


# 37cfff1f 13-Aug-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

build_haiku_image: filter duplicate packages

Resolving the package dependencies for system might yield packages that
are already given for common. Filter those out of the list for common
before resolving the common dependencies.


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

Remove no longer needed HAIKU_STRIP_DEBUG_FROM_OPTIONAL_PACKAGES


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

Remove more optional package related left-overs


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

Adjust to changed HaikuPorts repository layout

The package kit actually requires the files "repo", "repo.info",
"repo.sha256" to be located under the repository base URL, so the
approach to name the repository file "repo-<hash>" doesn't work.
Now there's a directory "<hash>" which contains the files.

This commit moves the computation of the hash and downloading the
repository file from the build_haiku_image script to the jam build
system. The repo.info is also downloaded and a repository config file
is generated.


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


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

Move MIME DB creation from build_haiku_image to jam build system

* build_haiku_image: Remove MIME DB creation code.
* Rename beos_mime source directory to mime_db.
* Add rules to build the MIME DB in the source directory's jamfile.
* Add MIME DB directory to haiku.hpkg in data/mime_db.


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


# 35f39081 03-Jan-2013 Matt Madia <mattmadia@gmail.com>

Use strip provided by the cross-tools.

This allows a 32-bit host to successfully build x86_64.


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


# 5084d0d4 10-Aug-2012 Alex Smith <alex@alex-smith.me.uk>

Added more things to x86_64 image.

Some preference apps, mount_server and AboutSystem. Removed the check
for x86_64 in the boot script, the normal path through the script will
work now. Also removed a temporary hack to workaround AboutSystem not
being there in build_haiku_image.


# 666b46e2 30-Jul-2012 Alex Smith <alex@alex-smith.me.uk>

Added libbe, ICU and consoled to the image.

The boot script now launches consoled instead if app_server does not
exist, so there is now an interactive Bash prompt! libbe requires ICU,
which is an optional package, so I've built the packages and they've
been uploaded to haiku-files.org (thanks umccullough).


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

Build a system Haiku package

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


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

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


# c188658c 29-May-2011 Matt Madia <mattmadia@gmail.com>

Fixed the build for operating systems that are not Haiku.
Spotted by luroh. Patched by augiedoggie. Fixes #7607.
+alpha3


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


# b8c41a1a 29-May-2011 Matt Madia <mattmadia@gmail.com>

Applied a patch by Ingo, to strip the debug info from optional packages.
To note, the reduction of block size from 2048 to 1024 was not applied.
Introduced a new build variable HAIKU_STRIP_DEBUG_FROM_OPTIONAL_PACKAGES,
which will allow users to enable/disable that functionality. In the
alpha-* and nightly-* profiles, it is enabled. Reduced the image size
for alpha-* to 690M. The size for nightly images was left untouched.
+alpha3


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


# b1bf2196 24-May-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

add an attempted fallback to genisoimage if mkisofs doesn't exist on the system. (debian no longer ships mkisofs) genisoimage is based on an older version of mkisofs and has issues with long filenames. The genisoimage iso-level override makes the image work and allows long filenames but may introduce issues? placed a warning to the user that genisoimage is a fallback

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


# 3292bde9 03-Jan-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Opening a FIFO end is supposed to block until the other end is opened, too.
So we need a little work-around to open both ends in the shell process to
avoid blocking. Apparently Haiku's FIFO implementation isn't quite conforming
yet.


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


# 17ebe2b0 03-Jan-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Reimplemented the communication with the FS shell for Unixish systems (now
including also Haiku) using FIFOs instead of Unix sockets. Advantages:
* Multiple FS shells can run concurrently, since they no longer need a unique
address.
* Killing/aborting the build_haiku_image script will automatically tear down
the FS shell as well, so there shouldn't be any stray FS shell processes
anymore. Hopefully also fixes #5498.

So far only tested under Haiku.


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


# 1e4d65f5 17-Jul-2010 Matt Madia <mattmadia@gmail.com>

Create symlinks for the static libs of GCC Agnostic packages.
Note: Should we create symlinks for the *.la libtool related files?


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


# 56943eaa 27-Apr-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Automatic whitespace cleanup.


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


# 3a72ddf8 24-Apr-2010 Matt Madia <mattmadia@gmail.com>

Fixed the syntax of ln to work on FreeBSD.

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


# 80c7dda6 24-Apr-2010 Matt Madia <mattmadia@gmail.com>

Fixed the string comparison tests. Some cleanup.


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


# 99265bcd 19-Apr-2010 Matt Madia <mattmadia@gmail.com>

Add support for realpath in build_haiku_image.


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


# 218aa6d9 10-Apr-2010 Matt Madia <mattmadia@gmail.com>

Unified build_haiku_[cd|image] scripts. Fixes #5490.

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


# eadd244c 05-Feb-2010 François Revol <revol@free.fr>

Fallback to greadlink (for OSX) (it must be installed with macports).


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


# 29bbb0ca 05-Feb-2010 François Revol <revol@free.fr>

Fix stream redirection order so stderr actually goes to /dev/null.


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


# f6543e7d 22-Jan-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

"&>" is not POSIX. Use "2>&1 >" instead.


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


# df6a690e 18-Jan-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Patch by Matt Madia: Use "set -o errexit" to error out when a command failed.


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


# a6996bf5 02-Sep-2009 Bruno G. Albuquerque <bga@bug-br.org.br>

- Fix an issue with using update-install to a partition that has spaces in its
name.


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


# 526d707e 12-Apr-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Added new build tool create_image which is now used to create and/or clear a
raw image. This fixes the problem that an existing image couldn't be resized.


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


# 40ae63da 25-Mar-2009 Rene Gollent <anevilyak@gmail.com>

No longer necessary.



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


# 127456e5 19-Sep-2008 Philippe Houdoin <philippe.houdoin@gmail.com>

Added user-defined image volume label support.
The default label is as previously: Haiku.


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


# e7ada11b 18-Aug-2008 Axel Dörfler <axeld@pinc-software.de>

* Use -f (force) when copying, or else it may bail out if the target already
exists -- this seems to happen only in case a specific name is given for
the target, though, so it might well be a bug in the fs_shell as well.
Seen when copying kernel.so to _KERNEL_ on a "update-all".


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


# 2f031c27 18-Jun-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Use "readlink -f" which seems to be more portable. Also check whether
invoking it this way works at all; this avoids problems with readlink
programs that don't support the option.


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


# ff0df461 18-Jun-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

If it contains symlinks, resolve the image path. This avoids problems
with certain Linux setups.


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


# eecbf4e7 19-Apr-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Copy licenses to the image (/etc/licenses).
* Whenever unzipping a zip archive to the image, we do first check, if
it contains an .OptionalPackageDescription file. If so, its contents
is appended to AboutSystem's "COPYRIGHTS" attribute, which will cause
the respective info to be shown in the about view.


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


# 59aca63f 15-Apr-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Simplified creation of the MIME DB. We create it in a directory first
and then copy it in one go instead of copying individual files. Also use
a single temp file instead of one for every entry.


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


# 7c529c24 03-Apr-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Renamed vmdkheader to vmdkimage and changed it to create a full image
by default (new option "-H" will create the header only). Option "-c"
will clear the image.
* Adjusted build_haiku_image accordingly. vmdkimage is way faster and
more portable than the former vmdkheader+dd combo.


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


# 0bcca894 27-Mar-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Quote the image path to deal gracefully with spaces and the like.


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


# 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


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

Use 2048 as block size.


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


# d85edf56 09-Mar-2008 François Revol <revol@free.fr>

Check if /bin/stat supports the gnuish -c option, else fallback to BSD syntax.
This should fix ticket #1676, please try.


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


# 24326abf 09-Mar-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Bail out early, when initializing or mounting an image via bfs_shell
fails.


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


# a9f2290e 29-Jan-2008 Philippe Houdoin <philippe.houdoin@gmail.com>

Fixed issue with space(s) in zipfile name or destination directory.


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


# 498c6565 15-Jan-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Copying source directories to the image was broken, when building from
the root of the source tree. Added a work-around that should fix the
problem.


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


# a820102c 15-Jan-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

When installing Haiku into a directory, unzipping optional packages
overwrites existing files without prompt, now.


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


# d4db8540 18-Nov-2007 François Revol <revol@free.fr>

Only remove attribute storage files if generated/attributes/ exists, else skip the slow find.


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


# ef9aa9a7 17-Nov-2007 François Revol <revol@free.fr>

Finally got a fix for attribute errors when building on linux without xattr.
After copying the mime db or packages the files were removed, but not the corresponding attribute storage files.
So when an inode got reused the file inherited those leftover attributes.
We now remove them before removing the files.


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


# 21873fff 01-Oct-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Partitions are no regular files. The check for mere existence shall
suffice.


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


# f515ed5f 01-Oct-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Added build variable HAIKU_DONT_CLEAR_IMAGE. When set and the image does
already exist, it won't be zeroed out. The image will still be
initialized with BFS, though. Handy for installing Haiku on a partition.


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


# 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


# 6dcd0ccf 18-May-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Patch by Morgan Howe (slightly modified): Several changes to support
building on Mac OS X (Darwin). A problem with makebootable remains.


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


# e733c685 20-Nov-2006 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Fixed bug 931 by using a different construct to redirect both stderr and
stdout to /dev/null


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


# f7ee8c0d 20-Nov-2006 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Removed bashisms from build_haiku_image, thus fixing part of bug 931.
There's still some weird output being printed, but building the mime
database now works under dash too.


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


# d6951dd4 03-Nov-2006 Stephan Aßmus <superstippi@gmx.de>

* redefined mkindex -> why was it removed?



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


# cf0b5d25 08-May-2006 Ingo Weinhold <ingo_weinhold@gmx.de>

Workaround that fixes MIME DB problems under Linux, at least when
building an image from the scratch (with empty attributes and objects
dirs). This closes bugs 194 and 253.


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


# dab60949 05-May-2006 Stefano Ceccherini <stefano.ceccherini@gmail.com>

sorry, this wasn't correct

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


# 927a84f8 01-May-2006 Stefano Ceccherini <stefano.ceccherini@gmail.com>

mkindex wasnt' built, so install-haiku failed on systems different than beos. Now it fails because it doesn't know what BEOS:APP_SIG is. I have no idea how to fix that problem, please someone have a look.

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


# c6d5c94217d7823b5388459c74cdccbb4a90deba 25-May-2014 Jérôme Duval <jerome.duval@gmail.com>

Fix test in build_haiku_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.


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


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


# 37cfff1f04388b62c3a7453aa4cc0e81b4c0978c 13-Aug-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

build_haiku_image: filter duplicate packages

Resolving the package dependencies for system might yield packages that
are already given for common. Filter those out of the list for common
before resolving the common dependencies.


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

Remove no longer needed HAIKU_STRIP_DEBUG_FROM_OPTIONAL_PACKAGES


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

Remove more optional package related left-overs


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

Adjust to changed HaikuPorts repository layout

The package kit actually requires the files "repo", "repo.info",
"repo.sha256" to be located under the repository base URL, so the
approach to name the repository file "repo-<hash>" doesn't work.
Now there's a directory "<hash>" which contains the files.

This commit moves the computation of the hash and downloading the
repository file from the build_haiku_image script to the jam build
system. The repo.info is also downloaded and a repository config file
is generated.


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


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

Move MIME DB creation from build_haiku_image to jam build system

* build_haiku_image: Remove MIME DB creation code.
* Rename beos_mime source directory to mime_db.
* Add rules to build the MIME DB in the source directory's jamfile.
* Add MIME DB directory to haiku.hpkg in data/mime_db.


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


# 35f390814940144bf74048de3ff56d863adf6938 03-Jan-2013 Matt Madia <mattmadia@gmail.com>

Use strip provided by the cross-tools.

This allows a 32-bit host to successfully build x86_64.


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


# 5084d0d451501f3c026d593dc109cbb76d7688fc 10-Aug-2012 Alex Smith <alex@alex-smith.me.uk>

Added more things to x86_64 image.

Some preference apps, mount_server and AboutSystem. Removed the check
for x86_64 in the boot script, the normal path through the script will
work now. Also removed a temporary hack to workaround AboutSystem not
being there in build_haiku_image.


# 666b46e2e3260e85ca6af913a73e75df9a24ab27 30-Jul-2012 Alex Smith <alex@alex-smith.me.uk>

Added libbe, ICU and consoled to the image.

The boot script now launches consoled instead if app_server does not
exist, so there is now an interactive Bash prompt! libbe requires ICU,
which is an optional package, so I've built the packages and they've
been uploaded to haiku-files.org (thanks umccullough).


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

Build a system Haiku package

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


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

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


# c188658c855635d71333002d26970db586019028 29-May-2011 Matt Madia <mattmadia@gmail.com>

Fixed the build for operating systems that are not Haiku.
Spotted by luroh. Patched by augiedoggie. Fixes #7607.
+alpha3


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


# b8c41a1ad8250caf1e7bbcdafc736750d533c8bc 29-May-2011 Matt Madia <mattmadia@gmail.com>

Applied a patch by Ingo, to strip the debug info from optional packages.
To note, the reduction of block size from 2048 to 1024 was not applied.
Introduced a new build variable HAIKU_STRIP_DEBUG_FROM_OPTIONAL_PACKAGES,
which will allow users to enable/disable that functionality. In the
alpha-* and nightly-* profiles, it is enabled. Reduced the image size
for alpha-* to 690M. The size for nightly images was left untouched.
+alpha3


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


# b1bf2196d3b9705bf342e844df3bb45380e4a3d3 24-May-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

add an attempted fallback to genisoimage if mkisofs doesn't exist on the system. (debian no longer ships mkisofs) genisoimage is based on an older version of mkisofs and has issues with long filenames. The genisoimage iso-level override makes the image work and allows long filenames but may introduce issues? placed a warning to the user that genisoimage is a fallback

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


# 3292bde924b9316e108ec435e6a5215dbaf5dcc3 03-Jan-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Opening a FIFO end is supposed to block until the other end is opened, too.
So we need a little work-around to open both ends in the shell process to
avoid blocking. Apparently Haiku's FIFO implementation isn't quite conforming
yet.


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


# 17ebe2b021619ed7cd95bef6f9f6a48265753a92 03-Jan-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Reimplemented the communication with the FS shell for Unixish systems (now
including also Haiku) using FIFOs instead of Unix sockets. Advantages:
* Multiple FS shells can run concurrently, since they no longer need a unique
address.
* Killing/aborting the build_haiku_image script will automatically tear down
the FS shell as well, so there shouldn't be any stray FS shell processes
anymore. Hopefully also fixes #5498.

So far only tested under Haiku.


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


# 1e4d65f578a51d83e0670b0c56736c2fad4b941f 17-Jul-2010 Matt Madia <mattmadia@gmail.com>

Create symlinks for the static libs of GCC Agnostic packages.
Note: Should we create symlinks for the *.la libtool related files?


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


# 56943eaa5817715f672a342bb0f7d32d18cc18de 27-Apr-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Automatic whitespace cleanup.


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


# 3a72ddf8aec31aa5183a901e6c1d6496a77144ed 24-Apr-2010 Matt Madia <mattmadia@gmail.com>

Fixed the syntax of ln to work on FreeBSD.

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


# 80c7dda63152a9556242b794a102d0da5203099f 24-Apr-2010 Matt Madia <mattmadia@gmail.com>

Fixed the string comparison tests. Some cleanup.


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


# 99265bcd8b89131daeec97bd43780255e39e6433 19-Apr-2010 Matt Madia <mattmadia@gmail.com>

Add support for realpath in build_haiku_image.


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


# 218aa6d9e84cee4322fde80826955dcaf0a736b7 10-Apr-2010 Matt Madia <mattmadia@gmail.com>

Unified build_haiku_[cd|image] scripts. Fixes #5490.

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


# eadd244c0fcd66194d485106ecb25a24a25f5908 05-Feb-2010 François Revol <revol@free.fr>

Fallback to greadlink (for OSX) (it must be installed with macports).


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


# 29bbb0ca9f82b4562b126e8c73f8262f7f61c844 05-Feb-2010 François Revol <revol@free.fr>

Fix stream redirection order so stderr actually goes to /dev/null.


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


# f6543e7d55321ee8999f9f9240a5d43ff38f0c80 22-Jan-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

"&>" is not POSIX. Use "2>&1 >" instead.


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


# df6a690eaebe17756fec15a9a4057665d1630020 18-Jan-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Patch by Matt Madia: Use "set -o errexit" to error out when a command failed.


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


# a6996bf5413c9427835bdbd7a6b970de39b777e5 02-Sep-2009 Bruno G. Albuquerque <bga@bug-br.org.br>

- Fix an issue with using update-install to a partition that has spaces in its
name.


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


# 526d707eb68861cdfcf3efd5dc0eb0520acb9ea1 12-Apr-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Added new build tool create_image which is now used to create and/or clear a
raw image. This fixes the problem that an existing image couldn't be resized.


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


# 40ae63da1dc9ff34a0d0d5a1f755a8802cc90e6b 25-Mar-2009 Rene Gollent <anevilyak@gmail.com>

No longer necessary.



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


# 127456e5b57da8bdb9827e143a8064001628414f 19-Sep-2008 Philippe Houdoin <philippe.houdoin@gmail.com>

Added user-defined image volume label support.
The default label is as previously: Haiku.


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


# e7ada11b553510c0df7b36ef1c6d91661ed3a1a2 18-Aug-2008 Axel Dörfler <axeld@pinc-software.de>

* Use -f (force) when copying, or else it may bail out if the target already
exists -- this seems to happen only in case a specific name is given for
the target, though, so it might well be a bug in the fs_shell as well.
Seen when copying kernel.so to _KERNEL_ on a "update-all".


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


# 2f031c27c5109a84168fa3ddf373903c6726019a 18-Jun-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Use "readlink -f" which seems to be more portable. Also check whether
invoking it this way works at all; this avoids problems with readlink
programs that don't support the option.


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


# ff0df461c45e1382013759c60373bf5f84e65959 18-Jun-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

If it contains symlinks, resolve the image path. This avoids problems
with certain Linux setups.


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


# eecbf4e78e34c4f9ee2fbfc96548e1a66ee0706f 19-Apr-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Copy licenses to the image (/etc/licenses).
* Whenever unzipping a zip archive to the image, we do first check, if
it contains an .OptionalPackageDescription file. If so, its contents
is appended to AboutSystem's "COPYRIGHTS" attribute, which will cause
the respective info to be shown in the about view.


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


# 59aca63f4c8f7101bd873291971c520ea75dcb86 15-Apr-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Simplified creation of the MIME DB. We create it in a directory first
and then copy it in one go instead of copying individual files. Also use
a single temp file instead of one for every entry.


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


# 7c529c24159f681622279ad0c063e5db4b8b80d8 03-Apr-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Renamed vmdkheader to vmdkimage and changed it to create a full image
by default (new option "-H" will create the header only). Option "-c"
will clear the image.
* Adjusted build_haiku_image accordingly. vmdkimage is way faster and
more portable than the former vmdkheader+dd combo.


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


# 0bcca894764b692aae04e68b44785200e102a76b 27-Mar-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Quote the image path to deal gracefully with spaces and the like.


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


# 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


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

Use 2048 as block size.


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


# d85edf56df5b3717cc6731a0700fc88e5a536f1d 09-Mar-2008 François Revol <revol@free.fr>

Check if /bin/stat supports the gnuish -c option, else fallback to BSD syntax.
This should fix ticket #1676, please try.


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


# 24326abfa3ce9e0f045a3a97efaf50a965f68f38 09-Mar-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Bail out early, when initializing or mounting an image via bfs_shell
fails.


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


# a9f2290edeb07e702900f8cbec8702cde61ef90c 29-Jan-2008 Philippe Houdoin <philippe.houdoin@gmail.com>

Fixed issue with space(s) in zipfile name or destination directory.


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


# 498c6565c66c2ce3af0fab56ecfd5f08e01dc23b 15-Jan-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Copying source directories to the image was broken, when building from
the root of the source tree. Added a work-around that should fix the
problem.


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


# a820102c34ac152a54d4c2a553e610815f227d7e 15-Jan-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

When installing Haiku into a directory, unzipping optional packages
overwrites existing files without prompt, now.


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


# d4db8540c0f257e89959d7bf02998e1d422381bb 18-Nov-2007 François Revol <revol@free.fr>

Only remove attribute storage files if generated/attributes/ exists, else skip the slow find.


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


# ef9aa9a7563affb6e3b91e0b24c9afcb6ca5f35d 17-Nov-2007 François Revol <revol@free.fr>

Finally got a fix for attribute errors when building on linux without xattr.
After copying the mime db or packages the files were removed, but not the corresponding attribute storage files.
So when an inode got reused the file inherited those leftover attributes.
We now remove them before removing the files.


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


# 21873fffb35d1df8cf27d864e2c964ceb31139d6 01-Oct-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Partitions are no regular files. The check for mere existence shall
suffice.


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


# f515ed5f772c48f00c808baffb345d08e531060e 01-Oct-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Added build variable HAIKU_DONT_CLEAR_IMAGE. When set and the image does
already exist, it won't be zeroed out. The image will still be
initialized with BFS, though. Handy for installing Haiku on a partition.


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


# 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


# 6dcd0ccf238263a3e5eb2e2a44e2ed0da1617a42 18-May-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Patch by Morgan Howe (slightly modified): Several changes to support
building on Mac OS X (Darwin). A problem with makebootable remains.


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


# e733c6856ae2dbade10fd6ebcb8817c92a471e20 20-Nov-2006 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Fixed bug 931 by using a different construct to redirect both stderr and
stdout to /dev/null


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


# f7ee8c0d1c8e248dbf9d18615323c64c09b96a84 20-Nov-2006 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Removed bashisms from build_haiku_image, thus fixing part of bug 931.
There's still some weird output being printed, but building the mime
database now works under dash too.


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


# d6951dd4ca86df123cceb0a0e024d5b81046a477 03-Nov-2006 Stephan Aßmus <superstippi@gmx.de>

* redefined mkindex -> why was it removed?



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


# cf0b5d25515b7afd057748f2baa5cd896755bbeb 08-May-2006 Ingo Weinhold <ingo_weinhold@gmx.de>

Workaround that fixes MIME DB problems under Linux, at least when
building an image from the scratch (with empty attributes and objects
dirs). This closes bugs 194 and 253.


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


# dab609490272029c249fd9c5b98f9157fc42f012 05-May-2006 Stefano Ceccherini <stefano.ceccherini@gmail.com>

sorry, this wasn't correct

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


# 927a84f8f6707acea67bff11a0f0d0fbd278cb4e 01-May-2006 Stefano Ceccherini <stefano.ceccherini@gmail.com>

mkindex wasnt' built, so install-haiku failed on systems different than beos. Now it fails because it doesn't know what BEOS:APP_SIG is. I have no idea how to fix that problem, please someone have a look.

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