Commit Graph

64 Commits

Author SHA1 Message Date
Augustin Cavalier
128781e740 build/jam: Inline HOST_ADD_BUILD_COMPATIBILITY_LIB_DIR where possible.
The "exec" tool can only handle one command with environs set at
the beginning of the line, so now we set the ADD_BUILD_COMPAT...
in this format. This also seems to be a general performance
improvement to builds using real shells, too.

Change-Id: If4b3117651b5475039d5e8116cd3de398582290a
2019-08-30 17:11:50 -04:00
Augustin Cavalier
b237fff49e FileRules: Fix typo.
Thanks PulkoMandy for reviewing!
2019-01-10 12:32:33 -05:00
Augustin Cavalier
134e58ec8d FileRules: Make DownloadLocatedFile1 less cryptic.
As Jam prints the entire erring command on failure, including this if-test
in the command itself makes the output somewhat difficult to decipher.
So instead we use two separate rules based on whether or not NO_DOWNLOADS
is set or not.
2019-01-09 19:18:27 -05:00
Augustin Cavalier
b16a18cba6 build: Include extra information in the package version.
Previously only the "effective revision", i.e. the hrev by itself,
was used. Now we include the "commits ahead" count and the "dirty" flag,
if they're there, using _ instead of - of course.

Change-Id: I5238d01926c2cca242bffbdef30bff606a173a06
Reviewed-on: https://review.haiku-os.org/596
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
(cherry picked from commit e7c5d994267fb7d49e3dd50c2854e9b37c9ffca1)
Reviewed-on: https://review.haiku-os.org/597
2018-09-27 03:38:07 +00:00
Alexander von Gluck IV
c9e6b4e096 jam: Extend wget wait
* I shrunk this down, but it seems like packages.haiku-os.org
  is taking an long time to access some packages (>10 sec)
* This should help relability of package downloads until
  someone checks out why connections take so long
2016-06-30 15:09:17 -05:00
Alexander von Gluck IV
3847e19f7f jam: Make DownloadLocatedFile1 more aggressive. 10s timeout == retry 2015-07-04 14:01:00 -05:00
Oliver Tappe
0230e26b37 Tell wget to retry for connection-refused errors.
* This should help the build process to survive short-lived connection 
  problems (as they happened to buildbot slaves tonight).
2014-06-29 12:19:56 +02:00
Oliver Tappe
d4563ace72 Improve handling of Haiku clone without any tags.
* Error out early with a hint about how to solve the problem (by setting
  HAIKU_REVISION explicitly).
2014-05-31 15:35:24 +02:00
Oliver Tappe
1a0cfb112b Minor cleanup: remove superfluous semicolon. 2014-05-01 19:45:18 +02:00
Oliver Tappe
aa2e5eca78 Add new configuration option --no-downloads.
* If --no-downloads has been given, Haiku will be built without
  trying to download anything, all required packages need to be put
  into the download folder manually (the build will stop on missing
  packages).
* As the required HaikuPorts repository can't be downloaded in this
  mode, a local repository is created during the build, which only
  contains the packages available in the downloads folder.

This is useful for building Haiku completely from source.
2014-05-01 13:03:43 +02:00
Ingo Weinhold
af559cd6ee Add DetermineEffectiveHaikuRevision rule
Simplifies PreprocessPackageInfo a bit.
2014-01-19 00:49:10 +01:00
Ingo Weinhold
d4bfbab374 Implement generic Sed rule 2014-01-19 00:49:10 +01:00
Ingo Weinhold
1d6ca1dadd rule DetermineHaikuRevision: Avoid duplicate command execution
... when HAIKU_REVISION is set.
2013-12-26 00:22:45 +01:00
Ingo Weinhold
5fc2757a74 Add user settable HAIKU_REVISION build variable
Can be set to a revision string (hrev4...) to override the revision
determined via git. Useful when the repository doesn't have tags.
2013-11-20 16:42:05 +01:00
François Revol
39d26e3cdb Set HAIKU_TARGET_IS_EXECUTABLE in KernelLd as well
The kernel also needs to be stripped for m68k.

Propagate it to the revisioned binary as well.
2013-10-12 18:42:57 +02:00
Ingo Weinhold
3162883efd Add rules StripFile[s] 2013-10-12 17:21:49 +02:00
Ingo Weinhold
cc5c6133d2 Revert "Rework stripping binaries when copying to containers"
This reverts commit e2332987bc.
2013-10-12 16:00:02 +02:00
François Revol
e2332987bc 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.
2013-10-12 01:41:46 +02:00
Ingo Weinhold
04d9b3e89c CopySetHaikuRevision: Pull out rule DetermineHaikuRevision 2013-10-10 21:37:27 +02:00
Niels Sascha Reedijk
f04f7042c5 Determine how to invoke sed with extended regexp
This will require re-running configure
2013-09-30 21:41:54 +02:00
Ingo Weinhold
86297ca0ff actions DownloadLocatedFile: fail, if wget fails 2013-08-28 01:07:17 +02:00
Ingo Weinhold
a1e681690c Rework rule CopySetHaikuRevision
* Remove support for VCSs other than git.
* Make the haiku-revision file a regular build target and make sure it
  is built only once.
* Make determine_haiku_revision an actual shell script and simplify
  it a bit.
2013-08-26 16:38:50 +02:00
Ingo Weinhold
b0944c78b0 More work towards hybrid support
* All packaging architecture dependent variables do now have a
  respective suffix and are set up for each configured packaging
  architecture, save for the kernel and boot loader variables, which
  are still only set up for the primary architecture.
  For convenience TARGET_PACKAGING_ARCH, TARGET_ARCH, TARGET_LIBSUPC++,
  and TARGET_LIBSTDC++ are set to the respective values for the primary
  packaging architecture by default.
* Introduce a set of MultiArch* rules to help with building targets for
  multiple packaging architectures. Generally the respective targets are
  (additionally) gristed with the packaging architecture. For libraries
  the additional grist is usually omitted for the primary architecture
  (e.g. libroot.so and <x86>libroot.so for x86_gcc2/x86 hybrid), so that
  Jamfiles for targets built only for the primary architecture don't
  need to be changed.
* Add multi-arch build support for all targets needed for the stage 1
  cross devel package as well as for libbe (untested).
2013-08-01 08:54:06 +02:00
Ingo Weinhold
3e58289628 DownloadLocatedFile: fix use with older wget version
The option "--no-use-server-timestamps" is apparently newer than
Haiku's wget.
2013-07-11 14:21:47 +02:00
Ingo Weinhold
531a3d42bc Add rule ChecksumFileSHA256 2013-07-06 02:19:51 +02:00
Ingo Weinhold
46686fe6c0 Download*File rules: add optional source target
If specified the path to the source target can be used in the URL via
"$source".
2013-07-06 02:19:38 +02:00
Ingo Weinhold
ff2e520912 Remove the old "CVS" package rules
... and all their invocations.
2013-06-30 18:59:11 +02:00
Ingo Weinhold
25a7b01d15 Merge branch 'master' into package-management
Additional changes:
* Add src/system/kernel/lib/zlib, which builds a kernel version of zlib,
  needed by packagefs.
* BuildFeatures: Add a build feature "gcc2" to allow for easier checks.
* Referenceable.cpp: Include <OS.h> instead of <debugger.h>. The latter
  is not needed and prevents building for the build platform.
* zlib/zutil.h: Fix gcc 2 build. We really should use the external
  package instead.

Conflicts:
	.gitignore
	build/jam/BuildSetup
	build/jam/FileRules
	build/jam/FloppyBootImage
	build/jam/HaikuImage
	build/jam/ImageRules
	build/jam/KernelRules
	build/jam/NetBootArchive
	build/jam/OptionalBuildFeatures
	build/jam/OptionalLibPackages
	build/jam/OptionalPackageDependencies
	build/jam/OptionalPackages
	build/scripts/build_haiku_image
	configure
	data/bin/installoptionalpackage
	data/system/boot/Bootscript
	headers/os/app/Message.h
	headers/os/package/PackageInfo.h
	headers/os/package/PackageInfoAttributes.h
	headers/os/package/PackageInfoSet.h
	headers/os/package/PackageRoster.h
	headers/os/package/PackageVersion.h
	headers/os/package/hpkg/PackageInfoAttributeValue.h
	headers/os/storage/FindDirectory.h
	headers/os/storage/Node.h
	headers/os/support/StringList.h
	headers/private/system/directories.h
	src/add-ons/kernel/drivers/audio/ac97/es1370/Jamfile
	src/add-ons/kernel/file_systems/packagefs/AttributeIndex.cpp
	src/add-ons/kernel/file_systems/packagefs/Jamfile
	src/add-ons/kernel/file_systems/packagefs/Package.cpp
	src/add-ons/kernel/file_systems/packagefs/Package.h
	src/add-ons/kernel/file_systems/packagefs/PackageDomain.cpp
	src/add-ons/kernel/file_systems/packagefs/PackageDomain.h
	src/add-ons/kernel/file_systems/packagefs/PackageFSRoot.cpp
	src/add-ons/kernel/file_systems/packagefs/PackageLinkDirectory.cpp
	src/add-ons/kernel/file_systems/packagefs/PackageLinkDirectory.h
	src/add-ons/kernel/file_systems/packagefs/PackageLinkSymlink.cpp
	src/add-ons/kernel/file_systems/packagefs/PackageLinkSymlink.h
	src/add-ons/kernel/file_systems/packagefs/PackageLinksDirectory.cpp
	src/add-ons/kernel/file_systems/packagefs/PackageNode.h
	src/add-ons/kernel/file_systems/packagefs/ResolvableFamily.cpp
	src/add-ons/kernel/file_systems/packagefs/Version.cpp
	src/add-ons/kernel/file_systems/packagefs/Version.h
	src/add-ons/kernel/file_systems/packagefs/Volume.cpp
	src/add-ons/kernel/file_systems/packagefs/Volume.h
	src/add-ons/kernel/file_systems/packagefs/kernel_interface.cpp
	src/add-ons/kernel/file_systems/userlandfs/shared/driver_settings.c
	src/apps/deskbar/BarApp.cpp
	src/apps/deskbar/BarMenuBar.cpp
	src/apps/deskbar/BarMenuBar.h
	src/apps/deskbar/BarView.cpp
	src/apps/deskbar/BarView.h
	src/apps/deskbar/BarWindow.cpp
	src/apps/deskbar/BarWindow.h
	src/apps/deskbar/DeskbarMenu.cpp
	src/apps/deskbar/DeskbarMenu.h
	src/apps/deskbar/DeskbarUtils.cpp
	src/apps/deskbar/DeskbarUtils.h
	src/apps/deskbar/ExpandoMenuBar.cpp
	src/apps/deskbar/ExpandoMenuBar.h
	src/apps/deskbar/TeamMenu.cpp
	src/apps/processcontroller/ProcessController.cpp
	src/apps/remotedesktop/RemoteDesktop.cpp
	src/bin/bash/config-top.h
	src/bin/finddir.c
	src/bin/package/Jamfile
	src/bin/package/command_add.cpp
	src/bin/package/command_create.cpp
	src/bin/package/command_list.cpp
	src/bin/package_repo/command_list.cpp
	src/bin/pkgman/command_refresh.cpp
	src/build/libbe/support/Jamfile
	src/build/libpackage/Jamfile
	src/build/libroot/Jamfile
	src/build/libroot/fs.cpp
	src/build/libroot/remapped_functions.h
	src/kits/locale/MutableLocaleRoster.cpp
	src/kits/opengl/GLRendererRoster.cpp
	src/kits/package/PackageInfo.cpp
	src/kits/package/PackageInfoSet.cpp
	src/kits/package/PackageRoster.cpp
	src/kits/package/PackageVersion.cpp
	src/kits/package/RepositoryCache.cpp
	src/kits/package/hpkg/PackageWriterImpl.cpp
	src/kits/package/hpkg/ReaderImplBase.cpp
	src/kits/package/hpkg/WriterImplBase.cpp
	src/kits/print/PrintTransport.cpp
	src/kits/print/Printer.cpp
	src/kits/screensaver/ScreenSaverRunner.cpp
	src/kits/support/StringList.cpp
	src/kits/tracker/ContainerWindow.cpp
	src/kits/tracker/DeskWindow.cpp
	src/kits/tracker/PoseView.cpp
	src/libs/print/libprint/Transport.cpp
	src/preferences/printers/AddPrinterDialog.cpp
	src/preferences/screensaver/ScreenSaverWindow.cpp
	src/servers/debug/DebugServer.cpp
	src/servers/input/AddOnManager.cpp
	src/servers/media_addon/MediaAddonServer.cpp
	src/system/boot/Jamfile
	src/system/boot/loader/Jamfile
	src/system/boot/loader/loader.cpp
	src/system/boot/loader/vfs.cpp
	src/system/kernel/fs/vfs.cpp
	src/system/kernel/fs/vfs_boot.cpp
	src/system/libroot/os/find_directory.cpp
	src/system/runtime_loader/runtime_loader.cpp
	src/tools/package/Jamfile
2013-05-05 15:03:26 +02:00
Ingo Weinhold
6c6d6490bf ExtractArchive rule: Allow the directory to have a grist 2013-05-01 02:01:44 +02:00
Ingo Weinhold
bcdf492404 Simplify/fix the ExtractArchive rule and friends
* The call to the dummy actions isn't needed
* The calls to Extract{Zip,Tar,HPKG}Archive1 couldn't work like that.
  The directory has to be the main target, since ExtractArchive is
  potentially invoked multiple times with different extracted file
  targets and the Extract*Archive1 is only invoked the first time.
  Tested only with the HPKG actions, but they others should work as
  well.
2013-04-02 17:17:46 +00:00
François Revol
d091af40ea Revert hrev44743
Downloaded optional packages aren't actually removed as I thought on jam clean,
so it's not that much useful...
2012-11-04 10:47:37 +01:00
François Revol
962eb4be43 Allow local caching of optional packages
Introduce HAIKU_DOWNLOAD_CACHE variable that can point to a directory.
containing optional packages to check first before downloading.
Missing packages are also added to the cache.
This allows sharing and reusing them to make builds without a connection.
2012-11-04 01:17:00 +01:00
Alexandre Deckner
36aac7c55f Fix typo 2012-07-04 01:15:26 +02:00
François Revol
577d81a9b6 Add proper error on ExtractArchive with missing filename
The * case was not generating any message due to empty string expansion I suppose...
2012-01-05 03:30:10 +01:00
Ingo Weinhold
c9c6e36537 Use PropagateContainerUpdateTargetFlags rule
Propagate all update variables in CopySetHaikuRevision and for the
kernel pseudo target.
2011-07-17 16:54:59 +02:00
Ingo Weinhold
f724ec0e1e ExtractArchive: Add hpkg support 2011-07-17 16:54:18 +02:00
Ryan Leavengood
8e4f760cb8 Apply patch from mmadia to add a Release Notes file to the alpha image desktop.
Allow wget to output to files with spaces in the DownloadFile rule.

Fixes #7609.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42015 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-07 17:52:13 +00:00
Oliver Tappe
2fe19bf6ac Adjusted code for determining the revision in order to hopefully work on FreeBSD, too
* convert determine_haiku_revision to only contain functions and now pass the arguments 
  via function call


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41539 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-05-16 16:11:42 +00:00
Oliver Tappe
8ff44a4329 Fix and improve code for determining Haiku revision from a git repo
* break out most of the CopySetHaikuRevision action into a separate script:
  determine_haiku_revision
* fix git branch detection such that it'll actually work for local branches (thanks to 
  Andreas Färber for the hint)
* add some sanity checks


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41520 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-05-15 22:45:43 +00:00
Oliver Tappe
64c5bc6323 * add support for generating a useful haiku-revision from a
git repository

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41478 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-05-13 20:38:02 +00:00
Matt Madia
490b4a9481 Patch by Corneliu - Claudiu Prodescu "cprodescu". Ensures that ExtractArchive
extracts the files, even when the specified target directory exists.
Fixes #7425.  Thanks!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41211 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-04-10 17:58:35 +00:00
Axel Dörfler
e62879885e * Fixed a typo, whitespace cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40515 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-15 17:56:05 +00:00
Ingo Weinhold
9d123fc2e8 Patch by Andreas Färber:
CopySetHaikuRevision: Added support for extracting the svn revision number
from an hg repository.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35926 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-03-21 17:02:14 +00:00
Ingo Weinhold
05bbc668af 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
2010-02-27 17:48:12 +00:00
Ingo Weinhold
3ccf442a03 Author: Matt Madia
Cleaned up usage comment of ExtractArchive.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35622 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-26 12:34:07 +00:00
Ingo Weinhold
76fa0be374 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
2010-02-25 16:13:22 +00:00
Ingo Weinhold
3cd300bc61 Patch by Matt Madia: Generalized the UnzipArchive rule to support *.tgz files
as well, and renamed it to ExtractArchive.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35616 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-25 14:54:50 +00:00
Travis Geiselbrecht
39c91458b2 Fix the CopySetHaikuRevision1 rule if you're building in a plain git
repository, not mirroed via git-svn. Calling git-svn on a plain
repository seems to cause it to go haywire.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33192 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-09-19 20:19:50 +00:00
Ingo Weinhold
520cf2669f HaikuInstall rule: Allow optional list of target names.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31661 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-20 23:03:28 +00:00
Axel Dörfler
a1c6f0fde1 * Applied patch by Andreas to unify SVN version detection with GIT, also fixing
bug #2860.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31333 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-06-30 15:20:54 +00:00