{"id":15014017,"url":"https://github.com/voxpupuli/puppet-poudriere","last_synced_at":"2025-08-25T05:12:30.106Z","repository":{"id":5076683,"uuid":"6238762","full_name":"voxpupuli/puppet-poudriere","owner":"voxpupuli","description":"A Puppet module for managing Poudriere, the PkgNG build system.","archived":false,"fork":false,"pushed_at":"2024-09-17T07:31:14.000Z","size":283,"stargazers_count":12,"open_issues_count":2,"forks_count":15,"subscribers_count":42,"default_branch":"master","last_synced_at":"2024-10-29T14:22:41.244Z","etag":null,"topics":["bsd-puppet-module","freebsd-puppet-module","hacktoberfest","puppet"],"latest_commit_sha":null,"homepage":"https://forge.puppet.com/puppet/poudriere","language":"Puppet","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"asciidoctor/asciidoctor","license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/voxpupuli.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"open_collective":"vox-pupuli","github":"voxpupuli"}},"created_at":"2012-10-16T04:23:01.000Z","updated_at":"2024-09-17T07:31:15.000Z","dependencies_parsed_at":"2023-09-24T10:05:40.802Z","dependency_job_id":"2c3c40ef-7285-4c97-8902-b1e878f18a9d","html_url":"https://github.com/voxpupuli/puppet-poudriere","commit_stats":{"total_commits":186,"total_committers":16,"mean_commits":11.625,"dds":0.7204301075268817,"last_synced_commit":"ab2250d709ec71920cef278004639c121def2de1"},"previous_names":["xaque208/puppet-poudriere"],"tags_count":25,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voxpupuli%2Fpuppet-poudriere","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voxpupuli%2Fpuppet-poudriere/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voxpupuli%2Fpuppet-poudriere/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voxpupuli%2Fpuppet-poudriere/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/voxpupuli","download_url":"https://codeload.github.com/voxpupuli/puppet-poudriere/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243685562,"owners_count":20330982,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bsd-puppet-module","freebsd-puppet-module","hacktoberfest","puppet"],"created_at":"2024-09-24T19:45:03.979Z","updated_at":"2025-03-17T04:10:01.178Z","avatar_url":"https://github.com/voxpupuli.png","language":"Puppet","funding_links":["https://opencollective.com/vox-pupuli","https://github.com/sponsors/voxpupuli"],"categories":[],"sub_categories":[],"readme":"# Puppet-poudriere\n\n[![Build Status](https://travis-ci.org/voxpupuli/puppet-poudriere.svg?branch=master)](https://travis-ci.org/voxpupuli/puppet-poudriere)\n[![Code Coverage](https://coveralls.io/repos/github/voxpupuli/puppet-poudriere/badge.svg?branch=master)](https://coveralls.io/github/voxpupuli/puppet-poudriere)\n[![Puppet Forge](https://img.shields.io/puppetforge/v/puppet/poudriere.svg)](https://forge.puppetlabs.com/puppet/poudriere)\n[![Puppet Forge - downloads](https://img.shields.io/puppetforge/dt/puppet/poudriere.svg)](https://forge.puppetlabs.com/puppet/poudriere)\n[![Puppet Forge - endorsement](https://img.shields.io/puppetforge/e/puppet/poudriere.svg)](https://forge.puppetlabs.com/puppet/poudriere)\n[![Puppet Forge - scores](https://img.shields.io/puppetforge/f/puppet/poudriere.svg)](https://forge.puppetlabs.com/puppet/poudriere)\n[![License](https://img.shields.io/github/license/voxpupuli/puppet-poudriere.svg)](https://github.com/voxpupuli/puppet-poudriere/blob/master/LICENSE)\n\nManage the FreeBSD PkgNG build system with Puppet.\n\n## Simple Implementation\n\n```Puppet\npoudriere::env { \"90amd64\":\n  makeopts =\u003e [\n    \"WITH_PKGNG=yes\",\n    \"OPTIONS_SET+= SASL\",\n    \"OPTIONS_SET+= TLS\",\n    \"WITH_IPV6=TRUE\",\n    \"WITH_SSL=YES\",\n  ]\n}\n\nnginx::vhost { \"build.${domain}\":\n  port      =\u003e 80,\n  vhostroot =\u003e '/usr/local/poudriere/data/packages',\n  autoindex =\u003e true,\n}\n\n@@pkgng::repo { \"${::fqdn}-90amd64\":\n  release     =\u003e '9.0-RELEASE',\n  mirror_type =\u003e 'http',\n  repopath    =\u003e '/90amd64-default/Latest/',\n}\n```\n\n## Changing default settings\n\nThe `poudriere` class has some default parameters for global settings, such as the ZFS pool, root filesystem, and the FreeBSD mirror site to use (see `init.pp` for details). To change these defaults, declare the `poudriere` class with your own parameters.\n\nIf you do not want to use ZFS, you can use:\n\n```Puppet\nclass { 'poudriere':\n  zpool =\u003e false,\n}\n```\n\n## Using port-specific make options\n\nYou can pass port-specific make options as a hash in `pkg_makeopts`. For instance, if you want to build Apache 2.4 with the PHP 5.5 module, you can do the following:\n\n```Puppet\npoudriere::env { \"90amd64\":\n  makeopts =\u003e [\n    'WITH_PKGNG=yes',\n    'APACHE_VERSION=24',\n    'APACHE_PORT=www/apache24',\n  ],\n  pkgs =\u003e [\n    'www/apache24',\n    'lang/php55',\n  ],\n  pkg_makeopts =\u003e {\n    'lang/php55' =\u003e ['OPTIONS_SET+=APACHE'],\n  },\n}\n```\n\nAlternatively, a file containing make options for both global and port-specific use could be defined by setting `makefile`.\n\n## Using port-specific build options\n\nPorts often allow for enabling or disabling support for certain features. Such options can be manually set by issueing `poudriere options cat/port` but can also be defined in puppet by setting `pkg_optsdir`. This should point to a directory with files such as could be found in `/usr/local/etc/poudriere.d/${jail}-options/`:\n\n```Puppet\npoudriere::env { \"90amd64\":\n  pkg_optsdir =\u003e 'puppet:///path/to/dir/',\n}\n```\n\n## Managing seperate portstrees\n\nThe `default` portstreee is no longer configuered by this module.  You should create this yourself like so:\n\n```Puppet\n  poudriere::portstree { 'default': }\n```\n\n```yaml\npoudriere::portstrees:\n  default:\n```\n\nBy default environments use a portstree named `default`, which you should create as per the instructions above; however each build environment can be told which portstree to use:\n\n```Puppet\npoudriere::portstree { \"custom-ports\":\n  cron_enable  =\u003e false,\n  fetch_method =\u003e 'portsnap',\n}\n\npoudriere::env { \"custom-build\":\n  portstree =\u003e 'custom-ports',\n}\n```\n\n```yaml\npoudriere::portstrees:\n  default:\n  custom-ports:\n    cron_enabled: false\n    fetch_method: portsnap\npoudriere::environments:\n  custom-build:\n    portstree: custom-ports\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoxpupuli%2Fpuppet-poudriere","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvoxpupuli%2Fpuppet-poudriere","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoxpupuli%2Fpuppet-poudriere/lists"}