Skip to content

Latest commit

 

History

History
1035 lines (585 loc) · 26.6 KB

REFERENCE.md

File metadata and controls

1035 lines (585 loc) · 26.6 KB

Reference

Table of Contents

Classes

  • poudriere: Poudriere is a tool that lets you build PkgNG packages from ports. This is cool because it gives you the flexibility of custom port options
  • poudriere::xbuild: Install cross-building dependencies

Defined types

  • poudriere::env: This resource creates a build environment for a given release and architecture of FreeBSD. Passing in custom options gives you the ability to
  • poudriere::portstree: This resource creates a ports tree. You can have multiple ports trees for different building purposes. Automatic periodic updating of package

Data types

Classes

poudriere

Poudriere is a tool that lets you build PkgNG packages from ports. This is cool because it gives you the flexibility of custom port options with all the awesomeness of packages. The below class prepares the build environment. For the configuration of the build environment, see Class[poudriere::env].

Parameters

The following parameters are available in the poudriere class:

zpool

Data type: Optional[String[1]]

The pool where poudriere will create all the filesystems

Default value: undef

zrootfs

Data type: Stdlib::Absolutepath

The root of the poudriere zfs filesystem

Default value: '/poudriere'

freebsd_host

Data type: String[1]

The host where to download sets for the jails setup

Default value: 'http://ftp.freebsd.org/'

resolv_conf

Data type: Stdlib::Absolutepath

A file on your hosts system that will be copied has /etc/resolv.conf for the jail

Default value: '/etc/resolv.conf'

poudriere_base

Data type: Stdlib::Absolutepath

The directory where poudriere will store jails and ports

Default value: '/usr/local/poudriere'

poudriere_data

Data type: String[1]

The directory where the jail will store the packages and logs

Default value: '${BASEFS}/data'

use_portlint

Data type: Enum['yes', 'no']

Use portlint to check ports sanity

Default value: 'no'

mfssize

Data type: Optional[String[1]]

Size of WRKDIRPREFIX when using mdmfs

Default value: undef

tmpfs

Data type: Poudriere::Tmpfs

Use tmpfs(5)

Default value: 'yes'

tmpfs_limit

Data type: Optional[Integer[1]]

How much memory to limit tmpfs size to for each builder in GiB

Default value: undef

tmpfs_blacklist

Data type: Optional[Array[String[1]]]

List of package globs that are not allowed to use tmpfs

Default value: undef

tmpfs_blacklist_tmpdir

Data type: Optional[String[1]]

The host path where tmpfs-blacklisted packages can be built in

Default value: undef

max_memory

Data type: Optional[Integer[1]]

How much memory to limit jail processes to for each builder

Default value: undef

max_memory_per_package

Data type: Hash[String[1], Integer[1]]

Override max_memory per package

Default value: {}

max_files

Data type: Optional[Integer[1]]

How many file descriptors to limit each jail process to

Default value: undef

distfiles_cache

Data type: Stdlib::Absolutepath

Directory used for the distfiles

Default value: '/usr/ports/distfiles'

git_baseurl

Data type: Optional[String[1]]

Git URL to use to fetch base

Default value: undef

git_portsurl

Data type: Optional[String[1]]

Git URL to use to fecth ports

Default value: undef

svn_host

Data type: Optional[String[1]]

Mirror to use for the ports tree or source tree when using SVN

Default value: undef

check_changed_options

Data type: Enum['yes', 'no', 'verbose']

Enable automatic OPTION change detection

Default value: 'verbose'

check_changed_deps

Data type: Enum['yes', 'no']

Enable automatic dependency change detection

Default value: 'yes'

bad_pkgname_deps_are_fatal

Data type: Optional[Enum['yes', 'no']]

Consider bad dependency lines on the wrong PKGNAME as fatal

Default value: undef

pkg_repo_signing_key

Data type: Optional[String[1]]

Path to the RSA key to sign the PKG repo with

Default value: undef

signing_command

Data type: Optional[String[1]]

Command to sign the PKG repo with

Default value: undef

pkg_repo_from_host

Data type: Optional[Enum['yes', 'no']]

Sign the PKG repo from the host

Default value: undef

ccache_enable

Data type: Boolean

Enable ccache

Default value: false

ccache_dir

Data type: Stdlib::Absolutepath

Path to the ccache cache directory

Default value: '/var/cache/ccache'

ccache_static_prefix

Data type: Optional[Stdlib::Absolutepath]

Static ccache support from host

Default value: undef

restrict_networking

Data type: Optional[Enum['yes', 'no']]

The jails normally only allow network access during the 'make fetch' phase.

Default value: undef

allow_networking_packages

Data type: Optional[String[1]]

Allow networking for a subset of packages

Default value: undef

disallow_networking

Data type: Optional[Enum['yes', 'no']]

Fully disabled networking

Default value: undef

allow_make_jobs_packages

Data type: Optional[String[1]]

Allow networking for a subset of packages when building

Default value: undef

parallel_jobs

Data type: Integer[1]

Override the number of builders

Default value: $facts['processors']['count']

prepare_parallel_jobs

Data type: Optional[Integer[1]]

How many jobs should be used for preparing the build

Default value: undef

save_wrkdir

Data type: Optional[String[1]]

Save the WRKDIR to ${POUDRIERE_DATA}/wrkdirs on failure

Default value: undef

wrkdir_archive_format

Data type: Optional[String[1]]

Format for the workdir packing

Default value: undef

nolinux

Data type: Optional[String[1]]

Disable Linux support

Default value: undef

no_force_package

Data type: Optional[Enum['yes', 'no']]

Do not set FORCE_PACKAGE

Default value: undef

no_package_building

Data type: Optional[String[1]]

Do not set PACKAGE_BUILDING

Default value: undef

http_proxy

Data type: Optional[String[1]]

HTTP proxy

Default value: undef

ftp_proxy

Data type: Optional[String[1]]

FTP proxy

Default value: undef

no_restricted

Data type: Optional[String[1]]

Cleanout the restricted packages

Default value: undef

allow_make_jobs

Data type: Optional[String[1]]

Do not bound the number of processes to the number of cores

Default value: undef

allow_make_jobs_packages

List of packages that will always be allowed to use MAKE_JOBS regardless of ALLOW_MAKE_JOBS

Default value: undef

timestamp_logs

Data type: Optional[Enum['yes', 'no']]

Timestamp every line of build logs

Default value: undef

max_execution_time

Data type: Optional[Integer[1]]

Set the max time (in seconds) that a command may run for a build before it is killed for taking too long

Default value: undef

nohang_time

Data type: Optional[Integer[1]]

Set the time (in seconds) before a command is considered to be in a runaway state for having no output on stdout

Default value: undef

atomic_package_repository

Data type: Optional[Enum['yes', 'no']]

Update the repository atomically

Default value: undef

commit_packages_on_failure

Data type: Optional[Enum['yes', 'no']]

When using ATOMIC_PACKAGE_REPOSITORY, commit the packages if some packages fail to build

Default value: undef

keep_old_packages

Data type: Optional[Enum['yes', 'no']]

Keep older package repositories

Default value: undef

keep_old_packages_count

Data type: Optional[Integer[1]]

How many old package repositories to keep with KEEP_OLD_PACKAGES

Default value: undef

porttesting_fatal

Data type: Optional[Enum['yes', 'no']]

Make testing errors fatal

Default value: undef

builder_hostname

Data type: Optional[String[1]]

Define the building jail hostname to be used when building the packages

Default value: undef

preserve_timestamp

Data type: Optional[Enum['yes', 'no']]

Define to get a predictable timestamp on the ports tree

Default value: undef

build_as_non_root

Data type: Optional[String[1]]

Build and stage as a regular user

Default value: undef

portbuild_user

Data type: Optional[String[1]]

Define to the username to build as when BUILD_AS_NON_ROOT is yes

Default value: undef

portbuild_group

Data type: Optional[String[1]]

Define to the groupname to build as when BUILD_AS_NON_ROOT is yes

Default value: undef

portbuild_uid

Data type: Optional[Integer[1]]

Define to the uid to use for PORTBUILD_USER if the user does not already exist in the jail

Default value: undef

portbuild_gid

Data type: Optional[Integer[1]]

Define to the gid to use for PORTBUILD_USER if the group does not already exist in the jail

Default value: undef

priority_boost

Data type: Optional[String[1]]

Define pkgname globs to boost priority for

Default value: undef

buildname_format

Data type: Optional[String[1]]

Define format for buildnames

Default value: undef

duration_format

Data type: Optional[String[1]]

Define format for build duration times

Default value: undef

use_colors

Data type: Optional[Enum['yes', 'no']]

Use colors when in a TTY

Default value: undef

trim_orphaned_build_deps

Data type: Optional[Enum['yes', 'no']]

Only build what is requested

Default value: undef

delete_unknown_files

Data type: Optional[Enum['yes', 'no']]

Whether or not bulk/testport should delete unknown files in the repository

Default value: undef

delete_unqueued_packages

Data type: Optional[Enum['yes', 'always', 'no']]

Whether or not bulk/testport should automatically "pkgclean"

Default value: undef

local_mtree_excludes

Data type: Optional[String[1]]

A list of directories to exclude from leftover and filesystem violation mtree checks

Default value: undef

url_base

Data type: Optional[String[1]]

URL where your POUDRIERE_DATA/logs are hosted

Default value: undef

html_type

Data type: Optional[Enum['hosted', 'inline']]

Set to hosted to use the /data directory instead of inline style HTML

Default value: undef

html_track_remaining

Data type: Optional[Enum['yes', 'no']]

Set to track remaining ports in the HTML interface

Default value: undef

determine_build_failure_reason

Data type: Optional[Enum['yes', 'no']]

Grep build logs to determine a possible build failure reason

Default value: undef

makeworldargs

Data type: Optional[String[1]]

Pass arguments to buildworld

Default value: undef

package_fetch_branch

Data type: Optional[String[1]]

Set to always attempt to fetch packages or dependencies before building

Default value: undef

package_fetch_url

Data type: Optional[String[1]]

The fetch URL

Default value: undef

package_fetch_blacklist

Data type: Optional[Array[String[1]]]

Packages which should never be fetched

Default value: undef

package_fetch_whitelist

Data type: Optional[Array[String[1]]]

Allow only specific packages to be fetched

Default value: undef

environments

Data type: Hash

Build environments to manage

Default value: {}

portstrees

Data type: Hash

Port trees to manage

Default value: {}

xbuild_package

Data type: String[1]

Package to install for cross-building packages

Default value: 'qemu-user-static'

poudriere::xbuild

Install cross-building dependencies

Defined types

poudriere::env

This resource creates a build environment for a given release and architecture of FreeBSD. Passing in custom options gives you the ability to turn on and off certain features of your ports. Specific make options you would put in make.conf, you can pass here as well. Automatic periodic building of packages is managed with the cron_enable parameter

Parameters

The following parameters are available in the poudriere::env defined type:

version

Data type: String[1]

Version of the jail

ensure

Data type: Enum['present', 'absent']

The desired state of this environment

Default value: 'present'

makeopts

Data type: Array[String[1]]

Build options

Default value: []

makefile

Data type: Optional[String[1]]

Path to a Makefile

Default value: undef

arch

Data type: Optional[Poudriere::Architecture]

Architecture of the jail

Default value: undef

jail

Data type: String[1]

Name of the jail

Default value: $name

paralleljobs

Data type: Integer[1]

Override the number of builders

Default value: $facts['processors']['count']

pkgs

Data type: Array[String[1]]

List of packages to build

Default value: []

pkg_file

Data type: Optional[Stdlib::Absolutepath]

Puppet path to a list of packages to build

Default value: undef

pkg_makeopts

Data type: Hash

Per package build options

Default value: {}

pkg_optsdir

Data type: Optional[Stdlib::Absolutepath]

Path to a directory of build options

Default value: undef

portstree

Data type: String[1]

The port tree to use

Default value: 'default'

cron_enable

Data type: Boolean

Enable automatic updates

Default value: false

cron_always_mail

Data type: Boolean

Always send an e-mail on update

Default value: false

cron_interval

Data type: Poudriere::Cron_interval

Scheduling of automatic updates

Default value: { minute => 0, hour => 0, monthday => '*', month => '*', weekday => '*' }

poudriere::portstree

This resource creates a ports tree. You can have multiple ports trees for different building purposes. Automatic periodic updating of packages is managed with the cron_enable parameter

Parameters

The following parameters are available in the poudriere::portstree defined type:

ensure

Data type: Enum['present', 'absent']

The desired state of this ports tree

Default value: 'present'

portstree

Data type: String[1]

Name of the ports tree

Default value: $name

branch

Data type: Optional[String[1]]

Branch to checkout when using the svn or git methods

Default value: undef

fetch_method

Data type: Poudriere::Fetch_method

Specify which method to use to create the ports tree

Default value: 'svn'

mountpoint

Data type: Optional[Stdlib::Absolutepath]

Path to the source of a ports tree.

Default value: undef

cron_enable

Data type: Boolean

Enable automatic updates

Default value: false

cron_always_mail

Data type: Boolean

Always send an e-mail on update

Default value: false

cron_interval

Data type: Poudriere::Cron_interval

Scheduling of automatic updates

Default value: { minute => 0, hour => 22, monthday => '*', month => '*', week => '*' }

Data types

Poudriere::Architecture

The architecture to target when building packages

  • Note This list can be obtained from the FreeBSD src directory with make targets | awk -F '( +|/)' 'NR > 1 { if ($2 == $3) { print $2 }; print $2"."$3 }'

Alias of Enum['amd64', 'amd64.amd64', 'arm', 'arm.arm', 'arm.armv6', 'arm.armv7', 'arm64.aarch64', 'i386', 'i386.i386', 'mips.mipsel', 'mips', 'mips.mips', 'mips.mips64el', 'mips.mips64', 'mips.mipsn32', 'mips.mipselhf', 'mips.mipshf', 'mips.mips64elhf', 'mips.mips64hf', 'powerpc', 'powerpc.powerpc', 'powerpc.powerpc64', 'powerpc.powerpcspe', 'riscv.riscv64', 'riscv.riscv64sf', 'sparc64', 'sparc64.sparc64']

Poudriere::Cron_interval

Parameters to configure Poudriere's cron resources

Alias of

Struct[{
    minute   => Optional[Variant[Integer, String]],
    hour     => Optional[Variant[Integer, String]],
    monthday => Optional[String],
    month    => Optional[String],
    week     => Optional[String],
    weekday  => Optional[String],
  }]

Poudriere::Fetch_method

A supported fetch method for poudriere

Alias of Enum['git', 'git+http', 'git+https', 'git+ssh', 'null', 'portsnap', 'svn', 'svn+file', 'svn+http', 'svn+https', 'svn+ssh']

Poudriere::Tmpfs

A supported tmpfs setting for poudriere

Alias of

Variant[Enum[
    'all',
    'no',
    'yes',
  ], Array[
    Enum[
      'data',
      'localbase',
      'wrkdir',
    ],
  ]]