HaikuPorter HaikuPortsConf - haikuports/haikuports GitHub Wiki

Global HaikuPorter Configuration

Global HaikuPorter options are specified in the file /boot/home/config/settings/haikuports.conf. This file is expected to be a shell script which can be sourced (executed) by HaikuPorter. The resulting set of environment variables is scanned for the global options known by HaikuPorter.

Here are two examples for your haikuports.conf, one for each architecture.
Reminder: In these examples the suggested paths for PACKAGES_PATH and REPOSITORY_PATH are inside TREE_PATH but this is not required, and you could put them anywhere else.
PACKAGES_PATH and OUTPUT_DIRECTORY (or TREE_PATH, if the latter is not defined) should, however, be in the same partition.
Of course, you can use completely different paths. The ones given below are just suggestions.

  • On x86_gcc2:
# HaikuPorts configuration

PACKAGER="Peter Packman <[email protected]>"

TREE_PATH="/mydisk/haikuports"

# Uncomment the 2 following lines if you multiboot other architectures
# and use the same TREE_PATH.
# PACKAGES_PATH="/mydisk/haikuports/packages-x86_gcc2"
# REPOSITORY_PATH="/mydisk/haikuports/repository-x86_gcc2"

# If you wish to be able to switch from one arch to another without having
# to call "haikuporter -c ..." then you can uncomment the 2 following lines:
# OUTPUT_DIRECTORY="/mydisk/builds-x86_gcc2"
# DOWNLOAD_IN_PORT_DIRECTORY="yes"

# Uncomment the following line if you are using a hybrid x86_gcc2 and wish
# to build packages for the x86 secondary arch.
# SECONDARY_TARGET_ARCHITECTURES="x86"
  • On x86_64
# HaikuPorts configuration

PACKAGER="Peter Packman <[email protected]>"

TREE_PATH="/mydisk/haikuports"

# Uncomment the 2 following lines if you multiboot other architectures
# and use the same TREE_PATH.
# PACKAGES_PATH="/mydisk/haikuports/packages-x86_64"
# REPOSITORY_PATH="/mydisk/haikuports/repository-x86_64"

# If you wish to be able to switch from one arch to another without having
# to call "haikuporter -c ..." then you can uncomment the 2 following lines:
# OUTPUT_DIRECTORY="/mydisk/builds-x86_64"
# DOWNLOAD_IN_PORT_DIRECTORY="yes"

Available Options

ALLOW_UNTESTED

  • Type: YesNo
  • Contents: yes if packages that have been marked as untested on the current Haiku architecture should be considered, no if not. Normally, this will be 'no', but if you're interested in testing new packages built by recipes that haven't been tested on the Haiku architecture that you are using HaikuPorter on, you can ask HaikuPorter to do that by setting this option to 'yes'.
  • Required: No
  • Default: 'no'

DOWNLOAD_IN_PORT_DIRECTORY

  • Type: YesNo
  • Contents: All the recipe files of a given port, that is, which belong to the same directory, share a common 'download' sub-directory which is generally in the same directory as the recipe files. If, however, you set OUTPUT_DIRECTORY to something different from what you use for TREE_PATH then the 'download' sub-directories will be either in the TREE_PATH directory tree or in the OUTPUT_DIRECTORY directory tree, depending on the setting of DOWNLOAD_IN_PORT_DIRECTORY. If it is 'yes' then the 'download' sub-direcotries will be in the TREE_PATH directory tree (regardless of whether OUTPUT_DIRECTORY is defined or not.) Otherwise, the 'download' sub-directories will be in the OUTPUT_DIRECTORY directory tree. Most users who set OUTPUT_DIRECTORY will probably want to set DOWNLOAD_IN_PORT_DIRECTORY to 'yes'. Of course, you can set DOWNLOAD_IN_PORT_DIRECTORY even if you did not set OUTPUT_DIRECTORY.
  • Required: No
  • Default: 'no'

OUTPUT_DIRECTORY

  • Type: String
  • Contents: Path to a directory where haikuporter keeps two important sub-directories ('packages' and 'repository') as well as a shadow tree of the tree pointed to by TREE_PATH.
    When haikuports builds a recipe from a given directory, it puts the source tarballs in a 'download' sub-directory and creates a work sub-directory that it uses during the build.
    By default, both of these sub-directories are created in the directory that holds the recipe file, that is, under the TREE_PATH tree... unless OUTPUT_DIRECTORY is defined, in which case it uses the OUTPUT_DIRECTORY tree.
    It is perfectly OK to leave OUTPUT_DIRECTORY undefined. If, however, you define it then you will probably want to set DOWNLOAD_IN_PORT_DIRECTORY to 'yes'.
    OUTPUT_DIRECTORY should not contain any white space or tab characters.
  • Required: No
  • Default: $TREE_PATH

PACKAGER

  • Type: String
  • Contents: Full e-mail address (with name) of the packager (i.e. the person that is using HaikuPorter to create packages. This address will be shown in packages, such that the packager can be contacted should there be any problems.
  • Required: Yes
  • Default: None

PACKAGES_PATH

  • Type: String
  • Contents: Path to the directory where haikuporter puts the packages it builds.
  • Required: No
  • Default: $OUTPUT_DIRECTORY/packages

REPOSITORY_PATH

  • Type: String
  • Contents: Path to the directory where haikuporter keeps all the '.DependencyInfo' files.
  • Required: No
  • Default: $OUTPUT_DIRECTORY/repository

SECONDARY_TARGET_ARCHITECTURES

  • Type: MachineArchitecture
  • Contents: A list of secondary architectures for which haikuporter should be allowed to build packages. Currently, the only possible values are 'x86' on x86_gcc2 hybrid, or 'x86_gcc2' on x86 hybrid.
  • Required: No
  • Default: None

TARGET_ARCHITECTURE

  • Type: MachineArchitecture
  • Contents: If the ports tree in use is the 'haikuports.cross'-tree, HaikuPorter needs to be told for which target architecture the bootstrap-packages should be built. These machine architectures are currently supported:
  • ppc: Haiku on PowerPC (using gcc4)
  • arm: Haiku on ARM (using gcc4)
  • x86_gcc2: Haiku on x86, using gcc2
  • x86: Haiku on x86 (using gcc4)
  • Required: Yes for the cross-repository, otherwise this option is ignored
  • Default: None

TREE_PATH

  • Type: String
  • Contents: The path to the ports tree containing all the build recipe files. This usually is a checkout of one of these two git-repositories:
    • haikuports: The main repository of HaikuPorts, packages made available through Haiku's official software repositories are built using this ports tree.
    • haikuports.cross: The cross-build repository used for bootstrapping Haiku on a new architecture or when an binary incompatible change has been made to an existing architecture. The packages in this ports tree are being cross-compiled.

TREE_PATH may not contain any white space or tab characters. This restriction does not apply if OUTPUT_DIRECTORY is defined.

  • Required: Yes
  • Default: None