..

Poudriere - A FreeBSD Package Building Tool

Poudriere is used by FreeBSD project to build the official pkg repositories.

Prerequisites

sudo portsnap fetch
sudo portsnap extract
sudo portsnap fetch
sudo portsnap update

ZFS

sudo zpool create -m /poudriere ztank /dev/vtbd1

Installation

sudo pkg install poudriere

Configuration

Poudriere’s main config file is /usr/local/etc/poudriere.conf:

ZPOOL=ztank
ZROOTFS=/poudriere
FREEBSD_HOST=https://freebsd.cs.nctu.edu.tw
RESOLV_CONF=/etc/resolv.conf
BASEFS=/poudriere
USE_PORTLINT=no
USE_TMPFS=yes
DISTFILES_CACHE=/usr/ports/distfiles
ALLOW_MAKE_JOBS=yes

Basic Workflow

Create Jail

sudo poudriere jail -c -j 112x64 -v 11.2-RELEASE

Create Ports Tree

sudo poudriere ports -c -p default

Configure Options

sudo poudriere options -p default -n security/sudo

Build Packages

sudo poudriere bulk -j 112x64 -p default -z zpcc -f /usr/local/etc/poudriere.d/packages-zpcc

Package Management Memo

$ pkg info --dependencies p5-Net-SMTP-SSL
p5-Net-SMTP-SSL-1.04:
        p5-IO-Socket-SSL-2.044
        perl5-5.24.1
$ pkg info --required-by perl5
perl5-5.24.1:
        p5-Socket-2.024
        p5-Mozilla-CA-20160104
        p5-GSSAPI-0.28_1
        p5-Digest-HMAC-1.03_1
        p5-Net-SMTP-SSL-1.04
        p5-Error-0.17024
        p5-Authen-SASL-2.16_1
        p5-Net-SSLeay-1.80
        p5-IO-Socket-IP-0.39
        p5-IO-Socket-SSL-2.044
        git-2.12.1

References