History log of /haikuporter/HaikuPorter/RecipeAttributes.py
Revision Date Author Comments
# f197120d 18-Sep-2023 jurgenwigg <53076001+jurgenwigg@users.noreply.github.com>

Import statements sorted with isort and fixed MockBuilder.py (#266)

* Fixed missing closing bracket in the MockBuilder.py

* Import statements sorted with isort


# ff947a5b 25-Jul-2023 jurgenwigg <53076001+jurgenwigg@users.noreply.github.com>

[CLEANUP] Remove unused import statements (#264)


# 8d5c14b6 31-Jan-2020 Michael Lotz <mmlr@mlotz.ch>

python3: Finish python3 change. python2 breaking

* Based on mmlr's 2017 work to use Python3 with
changes and adjustments for the current codebase


# 3d118f80 17-Mar-2018 Michael Lotz <mmlr@mlotz.ch>

Introduce TEST_REQUIRES for test-only requires.

This lets recipes specify dependencies that are only needed for the test
phase. Separating them out from BUILD_[PRE]REQUIRES allows for
situations that could otherwise result in cyclic dependencies.

Note that this bumps the repository format version, causing a repository
rebuild (re-parsing of all recipes, flushing of all caches). This is
required because the dependency info files and various caches need to be
regenerated to cope with the added test requires keys.

Fixes #151.


# eb987166 23-Jan-2016 Hannah <hypgci@gmail.com>

read VENDOR from settings file (issue #61)


# c28cfea0 02-Jul-2015 Augustin Cavalier <waddlesplash@gmail.com>

Rename SRC_FILENAME to SOURCE_FILENAME for consistency's sake.


# dce406f0 02-Jul-2015 Augustin Cavalier <waddlesplash@gmail.com>

Rename SRC_URI to SOURCE_URI for consistency's sake.


# 9d365d0c 06-Jun-2015 Jessica Hamilton <jessica.l.hamilton@gmail.com>

Allow specifying VENDOR in a recipe.

This will allow using HaikuPorter to build recipes with
repositories not maintained by the Haiku Project.


# 797d2b92 21-Nov-2014 Oliver Tappe <zooey@hirschkaefer.de>

Cleanup imports.


# b4ae8351 20-Nov-2014 Oliver Tappe <zooey@hirschkaefer.de>

Fix propagation of some recipe attritbutes.

* BUILD_REQUIRES and BUILD_PREREQUIRES must be inherited from the main
package to all sub packages, as these apply to all of them.


# fc1d58c6 29-Oct-2014 Charlie Clark <charlie.clark@clark-consulting.eu>

Revert to tab spacing for Pe's sake.


# a5f922e3 27-Oct-2014 Charlie Clark <charlie.clark@clark-consulting.eu>

Try again with whitespace.


# 558fbdb0 27-Oct-2014 Charlie Clark <charlie.clark@clark-consulting.eu>

Second attempt to fix whitespace. Options are different on OS X.


# 429ec015 27-Oct-2014 Charlie Clark <charlie.clark@clark-consulting.eu>

Convert tabs to spaces.


# 463f228e 14-Jul-2014 Oliver Tappe <zooey@hirschkaefer.de>

Implement support for freestanding package names in recipes.

* Package names used to be linked to port names (they could only extend
it). Now, independent package names and versions can be set by means of
PACKAGE_NAME and PACKAGE_VERSION recipe attributes.


# 0a724667 21-Apr-2014 Oliver Tappe <zooey@hirschkaefer.de>

Introduce explicit recipe format version.

* Added support for reading the recipe format version used by a ports
tree from the file 'FormatVersions'.
* Added check that ensures that the recipe format version of a given
ports tree matches the one supported by haikuporter.


# 57b6f98b 21-Apr-2014 Oliver Tappe <zooey@hirschkaefer.de>

Reduce supported checksums to SHA-256 only.


# 3313d6fe 24-Mar-2014 Jonathan Schleifer <js@webkeks.org>

Remove dead code


# 10b9c9b1 06-Mar-2014 Jonathan Schleifer <js@webkeks.org>

Add more cryptographic hashes to check

* File size, MD5, RIPEMD-160, SHA-1, SHA-256 and SHA-512 are now
supported
* A warning about every missing hash is emitted
* Only present hashes are checked
* Creating a modified tarball which still creates the same hash for all
those hashes should be impossible
* That means if the haikuports checkout is trusted, you can also trust all
tarballs which it downloads
* The bc recipe has been updated as an example


# d878f2fe 25-Aug-2013 Oliver Tappe <zooey@hirschkaefer.de>

Support putting additional files into source package.

* add new recipe variable ADDITIONAL_FILES, which is a list of files
and directories underneath the 'additional-files' folder that should
be copied into the source package
* implement copying of additional files into source package


# cfb6096c 22-Aug-2013 Oliver Tappe <zooey@hirschkaefer.de>

Better protect against easy mistakes in recipes:

* explicitly check for dashes in names of provides and requires
declarations and complain if one is found


# 1fa715f2 02-Aug-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Support building secondary arch packages from regular recipes

* Add settings SECONDARY_CROSS_DEVEL_PACKAGES, SECONDARY_CROSS_TOOLS,
and SECONDARY_TARGET_ARCHITECTURES to config file and command line
option --secondary-cross-devel-packages, overriding the first.
SECONDARY_TARGET_ARCHITECTURES is the list of secondary target
architectures that ports may be built for (for a hybrid target).
SECONDARY_CROSS_TOOLS is the respectively matching list of cross
tools directories and SECONDARY_CROSS_DEVEL_PACKAGES the list of
Haiku cross development sysroot packages.
* Repository: For all configured secondary architectures add derived
ports.
* BuildPlatformUnix:
- setupNonChrootBuildEnvironment()/cleanNonChrootBuildEnvironment() do
now support an optional secondaryArchitecture parameter which is set
when building a port for a secondary architecture. The build
environment is set up using the respective cross tools and Haiku
cross devel package.
- Fix setting up the system include and library search paths for
gcc 4. It has other paths built in.
* Recipes can now set a SECONDARY_ARCHITECTURES (similar to
ARCHITECTURES) to indicate for which secondary architectures the port
can be built.
* Add new shell variables effectiveTargetArchitecture,
effectiveTargetMachineTriple, and effectiveTargetMachineTripleAsName
which are set to the values for the target architecture we are
actually building for (i.e. the primary or secondary architecture).
When cross-compiling the pre-existing target* variables continue to
correspond to the primary architecture.
* The variables binDir, sbinDir, libDir, includeDir, oldIncludeDir,
developLibDir are set to a respective subdirectory when building for
a secondary architecture.


# dca66113 29-Jul-2013 Oliver Tappe <zooey@hirschkaefer.de>

Add support for meta-ports, specifically 'meta_portsfile'

* a meta-port is a port that just builds other (non-meta) ports, but it
doesn't provide any sources or build actions of its own
* when building a list of ports specified via --portsfile, the meta-
port 'meta_portsfile' is now being used to group all the required
ports (pulling in any runtime requirements, too)
* when building only source packages, consider all packages stable, as
otherwise sources for not-yet-stable packages could not be collected
(one would have to mark them as stable manually)
* add more missing implicit build provides to Unix build platform


# e5266aef 19-Jul-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Clean up trailing whitespace


# 1f30450d 09-Jul-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

PackageType.DEBUG -> DEBUG_INFO

"debuginfo" seems more appropriate, since the package contains the
debug info files, not a debug version of the respective software (e.g.
library).


# adb26598 18-Jun-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Get rid of the SOURCE_EXPORT_SUBDIR recipe attribute

Instead just allow SOURCE_DIR to be an arbitrary relative path. That
already seemed to work in some cases, but not for all.
Due to the directory folding the semantics is a bit weird (well it
already was before).


# 42bde1d1 17-Jun-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Add missing POST_INSTALL_SCRIPTS recipe attribute


# 95fd6a8b 17-Jun-2013 Oliver Tappe <zooey@hirschkaefer.de>

Add license header (MIT)

* additionally: uppercase copyright notices and separate them from the
top by a single line


# 46bc2f68 16-Jun-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

RecipeAttributes: make 'extendable' tri-state

There are now two states for attributes that are extendable, which
specify what to do when the attribute has not been set for a package:
INHERITED to inherit the main package attribute's value and DEFAULT to
set the default value.


# 6b53dec2 10-Jun-2013 Oliver Tappe <zooey@hirschkaefer.de>

Add support for exporting only a subdirectory from the source

* added new recipe attribute SOURCE_EXPORT_SUBDIR which can be set to
a subdir within the source directory that shall be exported


# 4f6f9a69 10-Jun-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Change HOMEPAGE attribute type to list


# e7e9898f 09-Jun-2013 Oliver Tappe <zooey@hirschkaefer.de>

Build a source package by default.

* building of the source package can be avoided by setting
DISABLE_SOURCE_PACKAGE=yes in the recipe


# e73e2851 05-Jun-2013 Oliver Tappe <zooey@hirschkaefer.de>

Drop recipe attribute NAME_EXTENSION, as it doesn't make sense.


# 8b646db8 05-Jun-2013 Oliver Tappe <zooey@hirschkaefer.de>

Minor cleanup: fix sorting of recipe attributes.


# 647ad9a8 08-Jun-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Follow renaming of global-settings-files attribute


# cd84d9df 27-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Add recipe attributes for the new package attributes


# b744a876 04-May-2013 Oliver Tappe <zooey@hirschkaefer.de>

Implement support for more than one source per port.

* pull new class Source out of Port, which encapsulates download,
checksum-validation, checkout, unpacking and patching of a source
* adjust (and simplify) handling of source


# 8d2b855f 22-Apr-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Evaluate PATCHES variable set in recipes

Allows recipes to explicitly specify the patches to apply.

If a patch file with the name of the port exists, PATCHES is set to
that by default. This feature should rather be removed eventually, so
that all patches have to be specified explicitly. I was just too lazy
to adjust all concerned recipes.


# 062828ae 17-Apr-2013 Oliver Tappe <zooey@hirschkaefer.de>

* pulled 'Package' out of 'Port' and adjusted everything to support creating multiple
packages from a single recipe file
Not many new features have been implemented yet, but building packages seems to work again.


# df75ebb7 15-Apr-2013 Oliver Tappe <zooey@hirschkaefer.de>

Refactoring: rip haikuporter apart into separate modules


# 9d365d0cda73c074400652cba1596e6900817513 06-Jun-2015 Jessica Hamilton <jessica.l.hamilton@gmail.com>

Allow specifying VENDOR in a recipe.

This will allow using HaikuPorter to build recipes with
repositories not maintained by the Haiku Project.


# 797d2b925aa61ce548f35f9d3b255356c83f5936 21-Nov-2014 Oliver Tappe <zooey@hirschkaefer.de>

Cleanup imports.


# b4ae83510b0d5caad11b90c4c2d48faafa4de1c5 20-Nov-2014 Oliver Tappe <zooey@hirschkaefer.de>

Fix propagation of some recipe attritbutes.

* BUILD_REQUIRES and BUILD_PREREQUIRES must be inherited from the main
package to all sub packages, as these apply to all of them.


# fc1d58c6abe57c99c11ec02b27be40844fb53572 29-Oct-2014 Charlie Clark <charlie.clark@clark-consulting.eu>

Revert to tab spacing for Pe's sake.


# a5f922e3fded4460be5a3c717862e7e588772487 27-Oct-2014 Charlie Clark <charlie.clark@clark-consulting.eu>

Try again with whitespace.


# 558fbdb04ff6cb063a4afba7f15b6f1bd0343af2 27-Oct-2014 Charlie Clark <charlie.clark@clark-consulting.eu>

Second attempt to fix whitespace. Options are different on OS X.


# 429ec015d0c47da50e302537ed33bc3f80d035a8 27-Oct-2014 Charlie Clark <charlie.clark@clark-consulting.eu>

Convert tabs to spaces.


# 463f228e9554935be64f3bfdab5a269ae2a7a93c 14-Jul-2014 Oliver Tappe <zooey@hirschkaefer.de>

Implement support for freestanding package names in recipes.

* Package names used to be linked to port names (they could only extend
it). Now, independent package names and versions can be set by means of
PACKAGE_NAME and PACKAGE_VERSION recipe attributes.


# 0a7246673ab949f89489ddf5155bd7a09f112f3e 21-Apr-2014 Oliver Tappe <zooey@hirschkaefer.de>

Introduce explicit recipe format version.

* Added support for reading the recipe format version used by a ports
tree from the file 'FormatVersions'.
* Added check that ensures that the recipe format version of a given
ports tree matches the one supported by haikuporter.


# 57b6f98ba041e67cad3897cda91ebcd3887237d1 21-Apr-2014 Oliver Tappe <zooey@hirschkaefer.de>

Reduce supported checksums to SHA-256 only.


# 3313d6fe8f4ac6e718f12d427b3014a1370716f7 24-Mar-2014 Jonathan Schleifer <js@webkeks.org>

Remove dead code


# 10b9c9b179f0adfca107197a976a556805df19b7 06-Mar-2014 Jonathan Schleifer <js@webkeks.org>

Add more cryptographic hashes to check

* File size, MD5, RIPEMD-160, SHA-1, SHA-256 and SHA-512 are now
supported
* A warning about every missing hash is emitted
* Only present hashes are checked
* Creating a modified tarball which still creates the same hash for all
those hashes should be impossible
* That means if the haikuports checkout is trusted, you can also trust all
tarballs which it downloads
* The bc recipe has been updated as an example


# d878f2febd2be9b021108e76f8e334946453a2a4 25-Aug-2013 Oliver Tappe <zooey@hirschkaefer.de>

Support putting additional files into source package.

* add new recipe variable ADDITIONAL_FILES, which is a list of files
and directories underneath the 'additional-files' folder that should
be copied into the source package
* implement copying of additional files into source package


# cfb6096cb285cf1f5dafce1ca5666a48441da100 22-Aug-2013 Oliver Tappe <zooey@hirschkaefer.de>

Better protect against easy mistakes in recipes:

* explicitly check for dashes in names of provides and requires
declarations and complain if one is found


# 1fa715f2a326234d09474bfe732045cb38f2d902 02-Aug-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Support building secondary arch packages from regular recipes

* Add settings SECONDARY_CROSS_DEVEL_PACKAGES, SECONDARY_CROSS_TOOLS,
and SECONDARY_TARGET_ARCHITECTURES to config file and command line
option --secondary-cross-devel-packages, overriding the first.
SECONDARY_TARGET_ARCHITECTURES is the list of secondary target
architectures that ports may be built for (for a hybrid target).
SECONDARY_CROSS_TOOLS is the respectively matching list of cross
tools directories and SECONDARY_CROSS_DEVEL_PACKAGES the list of
Haiku cross development sysroot packages.
* Repository: For all configured secondary architectures add derived
ports.
* BuildPlatformUnix:
- setupNonChrootBuildEnvironment()/cleanNonChrootBuildEnvironment() do
now support an optional secondaryArchitecture parameter which is set
when building a port for a secondary architecture. The build
environment is set up using the respective cross tools and Haiku
cross devel package.
- Fix setting up the system include and library search paths for
gcc 4. It has other paths built in.
* Recipes can now set a SECONDARY_ARCHITECTURES (similar to
ARCHITECTURES) to indicate for which secondary architectures the port
can be built.
* Add new shell variables effectiveTargetArchitecture,
effectiveTargetMachineTriple, and effectiveTargetMachineTripleAsName
which are set to the values for the target architecture we are
actually building for (i.e. the primary or secondary architecture).
When cross-compiling the pre-existing target* variables continue to
correspond to the primary architecture.
* The variables binDir, sbinDir, libDir, includeDir, oldIncludeDir,
developLibDir are set to a respective subdirectory when building for
a secondary architecture.


# dca66113fe25cff7181c0df0226274dd3aeb273d 29-Jul-2013 Oliver Tappe <zooey@hirschkaefer.de>

Add support for meta-ports, specifically 'meta_portsfile'

* a meta-port is a port that just builds other (non-meta) ports, but it
doesn't provide any sources or build actions of its own
* when building a list of ports specified via --portsfile, the meta-
port 'meta_portsfile' is now being used to group all the required
ports (pulling in any runtime requirements, too)
* when building only source packages, consider all packages stable, as
otherwise sources for not-yet-stable packages could not be collected
(one would have to mark them as stable manually)
* add more missing implicit build provides to Unix build platform


# e5266aef3a8b81f9e6d29e00fecd9da40aafa23b 19-Jul-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Clean up trailing whitespace


# 1f30450db62e4aacf9b360516f61e2fe375494c5 09-Jul-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

PackageType.DEBUG -> DEBUG_INFO

"debuginfo" seems more appropriate, since the package contains the
debug info files, not a debug version of the respective software (e.g.
library).


# adb26598815a20df3e02c23d8c7c8f09cda7345c 18-Jun-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Get rid of the SOURCE_EXPORT_SUBDIR recipe attribute

Instead just allow SOURCE_DIR to be an arbitrary relative path. That
already seemed to work in some cases, but not for all.
Due to the directory folding the semantics is a bit weird (well it
already was before).


# 42bde1d1ff0af5246793a78c4d06155e741fa278 17-Jun-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Add missing POST_INSTALL_SCRIPTS recipe attribute


# 95fd6a8bd4d47186696c722b6717b2b073e799a1 17-Jun-2013 Oliver Tappe <zooey@hirschkaefer.de>

Add license header (MIT)

* additionally: uppercase copyright notices and separate them from the
top by a single line


# 46bc2f6821c0ba8423f53f6fc5293a6ed9efc595 16-Jun-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

RecipeAttributes: make 'extendable' tri-state

There are now two states for attributes that are extendable, which
specify what to do when the attribute has not been set for a package:
INHERITED to inherit the main package attribute's value and DEFAULT to
set the default value.


# 6b53dec28dfc38e2a19332540144c90f6a237431 10-Jun-2013 Oliver Tappe <zooey@hirschkaefer.de>

Add support for exporting only a subdirectory from the source

* added new recipe attribute SOURCE_EXPORT_SUBDIR which can be set to
a subdir within the source directory that shall be exported


# 4f6f9a6975dff67b934cae156b5bbdd4bfbfd1b9 10-Jun-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Change HOMEPAGE attribute type to list


# e7e9898f6e6aca87b9b7273a7db98af373f16c4e 09-Jun-2013 Oliver Tappe <zooey@hirschkaefer.de>

Build a source package by default.

* building of the source package can be avoided by setting
DISABLE_SOURCE_PACKAGE=yes in the recipe


# e73e2851f09dd6a26f3333e49e9df19f6024e029 05-Jun-2013 Oliver Tappe <zooey@hirschkaefer.de>

Drop recipe attribute NAME_EXTENSION, as it doesn't make sense.


# 8b646db8895cb77dc554e085e864c6e7e7634726 05-Jun-2013 Oliver Tappe <zooey@hirschkaefer.de>

Minor cleanup: fix sorting of recipe attributes.


# 647ad9a8e88194c72037e3c32d7ef9678329c53c 08-Jun-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Follow renaming of global-settings-files attribute


# cd84d9dfaaf6df4098da693715cd28142f56be68 27-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Add recipe attributes for the new package attributes


# b744a87694c856c779a62dacf0e8f18d848712e3 04-May-2013 Oliver Tappe <zooey@hirschkaefer.de>

Implement support for more than one source per port.

* pull new class Source out of Port, which encapsulates download,
checksum-validation, checkout, unpacking and patching of a source
* adjust (and simplify) handling of source


# 8d2b855f632302461717a1f9b35c943ee9f143e0 22-Apr-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Evaluate PATCHES variable set in recipes

Allows recipes to explicitly specify the patches to apply.

If a patch file with the name of the port exists, PATCHES is set to
that by default. This feature should rather be removed eventually, so
that all patches have to be specified explicitly. I was just too lazy
to adjust all concerned recipes.


# 062828ae60e1d6b6a8b6a8d0f2be53294ac6f25b 17-Apr-2013 Oliver Tappe <zooey@hirschkaefer.de>

* pulled 'Package' out of 'Port' and adjusted everything to support creating multiple
packages from a single recipe file
Not many new features have been implemented yet, but building packages seems to work again.


# df75ebb7e7074e47c811442973afefed0360521d 15-Apr-2013 Oliver Tappe <zooey@hirschkaefer.de>

Refactoring: rip haikuporter apart into separate modules