Quick start guide

For the users who want to try the role quickly, this guide provides an example how to install, configure and run Poudriere

  • Install the role vbotka.freebsd_poudriere

    shell> ansible-galaxy role install vbotka.freebsd_poudriere
    
  • Install the collections if necessary

    shell> ansible-galaxy collection install community.crypto
    shell> ansible-galaxy collection install community.general
    
  • Create the playbook pb.yml. For example, with single host build.example.com (2)

pb.yml
1---
2- hosts: build.example.com
3  gather_facts: true
4  become: true
5  roles:
6    - vbotka.freebsd_poudriere
  • Customize variables. Disable the installation of packages (2). Configure web server certificate (5-8), repository signing key (17-18) and Poudriere parameters (21-45). Create the list of architectures for which the packages will be built (48) and configure make (51-57). Fit the configuration to your needs.

host_vars/build.example.com/poudriere.yml
 1---
 2poudriere_install: false
 3
 4# cert
 5poudriere_cert_cn: build.example.com
 6poudriere_cert_key: "{{ poudriere_ssl_dir }}/private/{{ poudriere_cert_cn }}.key"
 7poudriere_cert_csr: "{{ poudriere_ssl_dir }}/csr/{{ poudriere_cert_cn }}.csr"
 8poudriere_cert_path: "{{ poudriere_ssl_dir }}/certs/{{ poudriere_cert_cn }}.crt"
 9
10poudriere_ssl_dirs:
11  - "{{ poudriere_ssl_dir }}"
12  - "{{ poudriere_ssl_dir }}/csr"
13  - "{{ poudriere_ssl_dir }}/crt"
14  - "{{ poudriere_ssl_dir }}/certs"
15
16# key
17poudriere_key_crt: "{{ poudriere_ssl_dir }}/crt/{{ poudriere_cert_cn }}-sk.crt"
18poudriere_conf_pkg_repo_signing_key: "{{ poudriere_ssl_dir }}/private/{{ poudriere_cert_cn }}-sk.key"
19
20# conf
21poudriere_conf_no_zfs: "no"
22poudriere_conf_template: poudriere.conf2.j2
23poudriere_conf_url_base: http://build.example.com
24poudriere_conf_use_tmpfs: "no"
25poudriere_conf_zpool: iocage
26poudriere_conf_data:
27  BASEFS: "{{ poudriere_conf_basefs }}"
28  BUILDER_HOSTNAME: "build"
29  CHECK_CHANGED_DEPS: "{{ poudriere_conf_check_changed_deps }}"
30  CHECK_CHANGED_OPTIONS: "{{ poudriere_conf_check_changed_options }}"
31  DISTFILES_CACHE: "{{ poudriere_conf_distfiles_cache }}"
32  FREEBSD_HOST: "{{ poudriere_conf_freebsd_host }}"
33  NOLINUX: "yes"
34  NO_ZFS: "{{ poudriere_conf_no_zfs }}"
35  PKG_REPO_SIGNING_KEY: "{{ poudriere_conf_pkg_repo_signing_key }}"
36  POUDRIERE_DATA: "{{ poudriere_conf_poudriere_data }}"
37  PRESERVE_TIMESTAMP: "yes"
38  RESOLV_CONF: "{{ poudriere_conf_resolv_conf }}"
39  SVN_HOST: "{{ poudriere_conf_svn_host }}"
40  URL_BASE: "{{ poudriere_conf_url_base }}"
41  USE_COLORS: "yes"
42  USE_PORTLINT: "{{ poudriere_conf_use_portlint }}"
43  USE_TMPFS: "{{ poudriere_conf_use_tmpfs }}"
44  ZPOOL: "{{ poudriere_conf_zpool }}"
45  ZROOTFS: "{{ poudriere_conf_zrootfs }}"
46
47# architecture
48poudriere_pkg_arch: [amd64]
49
50# make
51poudriere_make_conf:
52  - "DEFAULT_VERSIONS+=\t\temacs=nox"
53  - "DEFAULT_VERSIONS+=\t\tphp=8.3"
54  - "DEFAULT_VERSIONS+=\t\tssl=openssl"
55  - "OPTIONS_SET+=\t\t\tGSSAPI_NONE KRB_NONE"
56  - "OPTIONS_UNSET+=\t\t\tDOCS NLS X11 EXAMPLES"
57  - "OPTIONS_UNSET+=\t\t\tGSSAPI_BASE KRB_BASE KERBEROS"
58
59# pkglist
60pkglist_enable_amd64: [ansible, minimal]
  • Create the package lists

host_vars/build.example.com/pkg_dict.yml
 1---
 2pkg_dict_amd64:
 3  - pkglist: ansible
 4    packages:
 5      - sysutils/ansible
 6      - sysutils/py-ansible-lint
 7      - sysutils/py-ansible-runner
 8  - pkglist: minimal
 9    packages:
10      - archivers/gtar
11      - devel/git
12      - ftp/wget
13      - net/rsync
14      - ports-mgmt/pkg
15      - ports-mgmt/portmaster
16      - ports-mgmt/portupgrade
17      - security/sudo
18      - shells/bash
  • Test the syntax

    shell> ansible-playbook pb.yml --syntax-check
    
    playbook: pb.yml
    
  • Display the included variables. Enable debug poudriere_debug=true

shell> ansible-playbook pb.yml -t poudriere_debug -e poudriere_debug=true
  1PLAY [build.example.com] *******************************************************
  2
  3TASK [Gathering Facts] *********************************************************
  4ok: [build.example.com]
  5
  6TASK [vbotka.freebsd_poudriere : Poudriere Debug.] *****************************
  7ok: [build.example.com] => 
  8    msg: |-
  9        poudriere_role_version: 2.7.6
 10        ansible_architecture: amd64
 11        ansible_os_family: FreeBSD
 12        ansible_distribution: FreeBSD
 13        ansible_distribution_major_version: 14
 14        ansible_distribution_version: 14.3
 15        ansible_distribution_release: 14.3-RELEASE
 16        ansible_python_version: 3.11.12
 17
 18        freebsd_install_method: packages
 19        freebsd_use_packages: True
 20        freebsd_install_retries: 3
 21        freebsd_install_delay: 2
 22        freebsd_iocage_env:
 23          CRYPTOGRAPHY_OPENSSL_NO_LEGACY: '1'
 24
 25        poudriere_sanity: False
 26        poudriere_install: False
 27        poudriere_dirs: True
 28        poudriere_key: True
 29        poudriere_cert: False
 30        poudriere_conf: True
 31        poudriere_pkglists: True
 32        poudriere_options: False
 33        poudriere_make: True
 34
 35        poudriere_backup_conf: True
 36        poudriere_sanity_quiet: True
 37
 38        poudriere_packages_use_globs: False
 39        poudriere_packages:
 40          - ports-mgmt/poudriere
 41          - ports-mgmt/portmaster
 42          - devel/ccache
 43
 44        poudriere_packages_cert:
 45          - security/py-openssl
 46          - security/py-acme-tiny
 47
 48        poudriere_owner: root
 49        poudriere_group: wheel
 50        poudriere_mode: 0644
 51        poudriere_mode_dir: 0755
 52        poudriere_ssl_dir: /usr/local/etc/ssl
 53        poudriere_ssl_dir_mode: 0755
 54        poudriere_ssl_private_dir: /usr/local/etc/ssl/private
 55        poudriere_ssl_private_dir_mode: 0700
 56        poudriere_ssl_private_key_mode: 0600
 57        poudriere_ssl_dirs:
 58          - /usr/local/etc/ssl
 59          - /usr/local/etc/ssl/csr
 60          - /usr/local/etc/ssl/crt
 61          - /usr/local/etc/ssl/certs
 62
 63        poudriere_key_size: 4096
 64        poudriere_key_type: RSA
 65        poudriere_key_cmd: openssl rsa -in /usr/local/etc/ssl/private/build.example.com-sk.key -pubout -out /usr/local/etc/ssl/crt/build.example.com-sk.crt
 66        poudriere_key_crt: /usr/local/etc/ssl/crt/build.example.com-sk.crt
 67        poudriere_conf_pkg_repo_signing_key: /usr/local/etc/ssl/private/build.example.com-sk.key
 68
 69        poudriere_cert_cn: build.example.com
 70        poudriere_cert_key: /usr/local/etc/ssl/private/build.example.com.key
 71        poudriere_cert_csr: /usr/local/etc/ssl/csr/build.example.com.csr
 72        poudriere_cert_path: /usr/local/etc/ssl/certs/build.example.com.crt
 73
 74        poudriere_conf_file: /usr/local/etc/poudriere.conf
 75        poudriere_conf_template: poudriere.conf2.j2
 76        poudriere_conf_dir: /usr/local/etc/poudriere.d
 77        poudriere_conf_dirs:
 78          - dir: /usr/ports/distfiles
 79            group: wheel
 80            mode: '0755'
 81            owner: root
 82
 83        poudriere_conf_zpool: iocage
 84        poudriere_conf_no_zfs: no
 85        poudriere_conf_zrootfs: /poudriere
 86        poudriere_conf_freebsd_host: https://download.freebsd.org
 87        poudriere_conf_resolv_conf: /etc/resolv.conf
 88        poudriere_conf_basefs: /usr/local/poudriere
 89        poudriere_conf_svn_host: svn.FreeBSD.org
 90        poudriere_conf_poudriere_data: /usr/local/poudriere/data
 91        poudriere_conf_use_portlint: no
 92        poudriere_conf_use_tmpfs: no
 93        poudriere_conf_distfiles_cache: /usr/ports/distfiles
 94        poudriere_conf_url_base: http://build.example.com
 95        poudriere_conf_check_changed_options: verbose
 96        poudriere_conf_check_changed_deps: yes
 97        poudriere_conf_data:
 98          BASEFS: /usr/local/poudriere
 99          BUILDER_HOSTNAME: build
100          CHECK_CHANGED_DEPS: 'yes'
101          CHECK_CHANGED_OPTIONS: verbose
102          DISTFILES_CACHE: /usr/ports/distfiles
103          FREEBSD_HOST: https://download.freebsd.org
104          NOLINUX: 'yes'
105          NO_ZFS: 'no'
106          PKG_REPO_SIGNING_KEY: /usr/local/etc/ssl/private/build.example.com-sk.key
107          POUDRIERE_DATA: /usr/local/poudriere/data
108          PRESERVE_TIMESTAMP: 'yes'
109          RESOLV_CONF: /etc/resolv.conf
110          SVN_HOST: svn.FreeBSD.org
111          URL_BASE: http://build.example.com
112          USE_COLORS: 'yes'
113          USE_PORTLINT: 'no'
114          USE_TMPFS: 'no'
115          ZPOOL: iocage
116          ZROOTFS: /poudriere
117
118        poudriere_pkglist_dir: /usr/local/etc/poudriere.d/pkglist
119        poudriere_pkglist_all: False
120        poudriere_pkg_arch: [amd64]
121
122        poudriere_make_file: /usr/local/etc/poudriere.d/make.conf
123        poudriere_make_conf:
124          - "DEFAULT_VERSIONS+=\t\temacs=nox"
125          - "DEFAULT_VERSIONS+=\t\tphp=8.3"
126          - "DEFAULT_VERSIONS+=\t\tssl=openssl"
127          - "OPTIONS_SET+=\t\t\tGSSAPI_NONE KRB_NONE"
128          - "OPTIONS_UNSET+=\t\t\tDOCS NLS X11 EXAMPLES"
129          - "OPTIONS_UNSET+=\t\t\tGSSAPI_BASE KRB_BASE KERBEROS"
130
131PLAY RECAP *********************************************************************
132build.example.com          : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
  • Configure ZFS

    <TBD>
    
  • Install packages. Enable the installation poudriere_install=true

shell> ansible-playbook pb.yml -t poudriere_pkg -e poudriere_install=true
 1PLAY [build.example.com] *******************************************************
 2
 3TASK [Gathering Facts] *********************************************************
 4ok: [build.example.com]
 5
 6TASK [vbotka.freebsd_poudriere : Pkg: Install poudriere packages.] *************
 7ok: [build.example.com]
 8
 9TASK [vbotka.freebsd_poudriere : Pkg: Install packages to create certificate.] ***
10ok: [build.example.com]
11
12PLAY RECAP *********************************************************************
13build.example.com          : ok=3    changed=0    unreachable=0    failed=0    skipped=2    rescued=0    ignored=0   
  • Create directories

shell> ansible-playbook pb.yml -t poudriere_dirs
 1PLAY [build.example.com] *******************************************************
 2
 3TASK [Gathering Facts] *********************************************************
 4ok: [build.example.com]
 5
 6TASK [vbotka.freebsd_poudriere : Dirs: Create SSL directories.] ****************
 7ok: [build.example.com] => (item=/usr/local/etc/ssl)
 8changed: [build.example.com] => (item=/usr/local/etc/ssl/csr)
 9changed: [build.example.com] => (item=/usr/local/etc/ssl/crt)
10changed: [build.example.com] => (item=/usr/local/etc/ssl/certs)
11
12TASK [vbotka.freebsd_poudriere : Dirs: Create SSL directory /usr/local/etc/ssl/private mode=0700] ***
13changed: [build.example.com]
14
15PLAY RECAP *********************************************************************
16build.example.com          : ok=3    changed=2    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
  • Generate the signing key

shell> ansible-playbook pb.yml -t poudriere_key
 1PLAY [build.example.com] *******************************************************
 2
 3TASK [Gathering Facts] *********************************************************
 4ok: [build.example.com]
 5
 6TASK [vbotka.freebsd_poudriere : Key: Generate signing key /usr/local/etc/ssl/private/build.example.com-sk.key] ***
 7changed: [build.example.com]
 8
 9TASK [vbotka.freebsd_poudriere : Key: Generate signing crt /usr/local/etc/ssl/crt/build.example.com-sk.crt] ***
10changed: [build.example.com]
11
12PLAY RECAP *********************************************************************
13build.example.com          : ok=3    changed=2    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
  • Generate the certificate for the web server. Enable the generation poudriere_cert=true

shell> ansible-playbook pb.yml -t poudriere_cert -e poudriere_cert=true
 1PLAY [build.example.com] *******************************************************
 2
 3TASK [Gathering Facts] *********************************************************
 4ok: [build.example.com]
 5
 6TASK [vbotka.freebsd_poudriere : Cert: Generate private key /usr/local/etc/ssl/private/build.example.com.key] ***
 7changed: [build.example.com]
 8
 9TASK [vbotka.freebsd_poudriere : Cert: Generate csr /usr/local/etc/ssl/csr/build.example.com.csr] ***
10changed: [build.example.com]
11
12TASK [vbotka.freebsd_poudriere : Cert: Generate crt /usr/local/etc/ssl/certs/build.example.com.crt] ***
13changed: [build.example.com]
14
15PLAY RECAP *********************************************************************
16build.example.com          : ok=4    changed=3    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
shell> ssh admin@$build_example_com sudo tree /usr/local/etc/ssl/
 1/usr/local/etc/ssl/
 2├── certs
 3│   └── build.example.com.crt
 4├── crt
 5│   └── build.example.com-sk.crt
 6├── csr
 7│   └── build.example.com.csr
 8└── private
 9    ├── build.example.com-sk.key
10    └── build.example.com.key
11
125 directories, 5 files
  • Configure poudriere

shell> ansible-playbook pb.yml -t poudriere_conf
 1PLAY [build.example.com] *******************************************************
 2
 3TASK [Gathering Facts] *********************************************************
 4ok: [build.example.com]
 5
 6TASK [vbotka.freebsd_poudriere : Conf: Create directories.] ********************
 7ok: [build.example.com] => (item=/usr/ports/distfiles)
 8
 9TASK [vbotka.freebsd_poudriere : Conf: Configure /usr/local/etc/poudriere.conf] ***
10ok: [build.example.com]
11
12PLAY RECAP *********************************************************************
13build.example.com          : ok=3    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
  • Create directories (12), create package lists (16), and link enabled lists (20)

shell> ansible-playbook pb.yml -t poudriere_pkglists
 1PLAY [build.example.com] *******************************************************
 2
 3TASK [Gathering Facts] *********************************************************
 4ok: [build.example.com]
 5
 6TASK [vbotka.freebsd_poudriere : Pkglists: Create package lists.] **************
 7included: /export/home/vlado.config/.ansible/roles/vbotka.freebsd_poudriere/tasks/pkglist.yml for build.example.com => (item=amd64)
 8
 9TASK [vbotka.freebsd_poudriere : Pkglist: Assert all items in _pkglist_enable are available in _pkg_dict] ***
10ok: [build.example.com]
11
12TASK [vbotka.freebsd_poudriere : Pkglist: Create directories.] *****************
13ok: [build.example.com] => (item=/usr/local/etc/poudriere.d/pkglist/amd64)
14ok: [build.example.com] => (item=/usr/local/etc/poudriere.d/pkglist/amd64.enabled)
15
16TASK [vbotka.freebsd_poudriere : Pkglist: Create packages lists in /usr/local/etc/poudriere.d/pkglist/amd64] ***
17ok: [build.example.com] => (item=ansible)
18ok: [build.example.com] => (item=minimal)
19
20TASK [vbotka.freebsd_poudriere : Pkglist: Link enabled lists to /usr/local/etc/poudriere.d/pkglist/amd64.enabled] ***
21ok: [build.example.com] => (item=ansible)
22ok: [build.example.com] => (item=minimal)
23
24PLAY RECAP *********************************************************************
25build.example.com          : ok=6    changed=0    unreachable=0    failed=0    skipped=3    rescued=0    ignored=0   
shell> ssh admin@$build_example_com tree /usr/local/etc/poudriere.d/pkglist/
 1/usr/local/etc/poudriere.d/pkglist/
 2├── amd64
 3│   ├── All
 4│   ├── ansible
 5│   ├── apache
 6│   ├── apcups
 7│   ├── devel
 8│   ├── dhcp
 9│   ├── dns
10│   ├── docker
11│   ├── hostap
12│   ├── integrity
13│   ├── jail
14│   ├── joomla
15│   ├── leutils
16│   ├── linux
17│   ├── mailserver
18│   ├── mailserver_sieve
19│   ├── mailserver_spamassasin
20│   ├── mcrypt
21│   ├── minimal
22│   ├── mysql
23│   ├── mysql_extra
24│   ├── nagios
25│   ├── nginx
26│   ├── pf
27│   ├── php
28│   ├── postinstall
29│   ├── poudriere
30│   ├── procmail
31│   ├── python
32│   ├── qemu
33│   ├── qemu_user_static
34│   ├── roundcube
35│   ├── roundcube_aspell
36│   ├── rsnapshot
37│   ├── security
38│   ├── smart
39│   ├── snmpd
40│   ├── ssmtp
41│   ├── wpa_supplicant
42│   └── yazvs
43├── amd64.enabled
44│   ├── All
45│   ├── ansible -> /usr/local/etc/poudriere.d/pkglist/amd64/ansible
46│   └── minimal -> /usr/local/etc/poudriere.d/pkglist/amd64/minimal
47├── arm
48│   ├── All
49│   ├── ansible
50│   ├── apache
51│   ├── apcups
52│   ├── devel
53│   ├── dhcp
54│   ├── dns
55│   ├── hostap
56│   ├── integrity
57│   ├── jail
58│   ├── joomla
59│   ├── leutils
60│   ├── linux
61│   ├── mailserver
62│   ├── mailserver_sieve
63│   ├── mailserver_spamassasin
64│   ├── mcrypt
65│   ├── minimal
66│   ├── mysql
67│   ├── mysql_extra
68│   ├── nginx
69│   ├── pf
70│   ├── php
71│   ├── postinstall
72│   ├── poudriere
73│   ├── procmail
74│   ├── python
75│   ├── roundcube
76│   ├── roundcube_aspell
77│   ├── rsnapshot
78│   ├── security
79│   ├── smart
80│   ├── snmpd
81│   ├── ssmtp
82│   ├── wpa_supplicant
83│   └── yazvs
84└── arm.enabled
85    ├── All
86    ├── ansible -> /usr/local/etc/poudriere.d/pkglist/arm/ansible
87    └── minimal -> /usr/local/etc/poudriere.d/pkglist/arm/minimal
88
895 directories, 82 files
/usr/local/etc/poudriere.d/pkglist/amd64/ansible
1sysutils/ansible
2sysutils/py-ansible-lint
3sysutils/py-ansible-runner
/usr/local/etc/poudriere.d/pkglist/amd64/minimal
1archivers/gtar
2devel/git
3ftp/wget
4net/rsync
5ports-mgmt/pkg
6ports-mgmt/portmaster
7ports-mgmt/portupgrade
8security/sudo
9shells/bash
  • Configure make

shell> ansible-playbook pb.yml -t poudriere_make
 1PLAY [build.example.com] *******************************************************
 2
 3TASK [Gathering Facts] *********************************************************
 4ok: [build.example.com]
 5
 6TASK [vbotka.freebsd_poudriere : Make: Configure /usr/local/etc/poudriere.d/make.conf] ***
 7ok: [build.example.com]
 8
 9PLAY RECAP *********************************************************************
10build.example.com          : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
  • The role is idempotent. At this point, Poudriere is installed, configured, and ready to build packages. There should be no changes reported when the playbook is run repeatedly with the same data

    shell> ansible-playbook pb.yml
    
  • Build the packages. Login into the host build.example.com and proceed according the Poudriere documentation. For example,

shell> poudriere jail -c -j 141Ramd64 -v 14.1-RELEASE -a amd64
[00:00:00] Creating 141Ramd64 fs at /usr/local/poudriere/jails/141Ramd64... done
[00:00:00] Using pre-distributed MANIFEST for FreeBSD 14.1-RELEASE amd64
[00:00:00] Fetching base for FreeBSD 14.1-RELEASE amd64
base.txz                                               198 MB   10 MBps    18s
[00:00:21] Extracting base... done
[00:00:47] Fetching src for FreeBSD 14.1-RELEASE amd64
src.txz                                                205 MB   10 MBps    20s
[00:01:09] Extracting src... done
[00:01:53] Fetching lib32 for FreeBSD 14.1-RELEASE amd64
lib32.txz                                               60 MB    9 MBps    06s
[00:02:00] Extracting lib32... done
[00:02:06] Cleaning up... done
[00:02:06] Recording filesystem state for clean... done
[00:02:06] Upgrading using http
Looking up update.FreeBSD.org mirrors... 3 mirrors found.
Fetching public key from update2.freebsd.org... done.
Fetching metadata signature for 14.1-RELEASE from update2.freebsd.org... done.
Fetching metadata index... done.
Fetching 2 metadata files... done.
...
[00:04:58] Recording filesystem state for clean... done
[00:04:58] Jail 141Ramd64 14.1-RELEASE-p3 amd64 is ready to be used
shell> poudriere ports -c -m git+https -B main
[00:00:00] Creating default fs at /usr/local/poudriere/ports/default... done
[00:00:00] Cloning the ports tree... done
shell> poudriere bulk -j 141Ramd64 -z devel -f /usr/local/etc/poudriere.d/pkglist/amd64/minimal
[00:00:00] Creating the reference jail... done
[00:00:05] Mounting system devices for 141Ramd64-default-devel
[00:00:06] Converting package repository to new format
[00:00:06] Stashing existing package repository
[00:00:06] Mounting ports from: /usr/local/poudriere/ports/default
[00:00:06] Mounting packages from: /usr/local/poudriere/data/packages/141Ramd64-default-devel
[00:00:06] Mounting distfiles from: /usr/ports/distfiles
[00:00:06] Appending to make.conf: /usr/local/etc/poudriere.d/make.conf /etc/resolv.conf -> /usr/local/poudriere/data/.m/141Ramd64-default-devel/ref/etc/resolv.conf
[00:00:06] Starting jail 141Ramd64-default-devel
[00:00:06] Will build as nobody:nobody (65534:65534)
[00:00:07] Logs: /usr/local/poudriere/data/logs/bulk/141Ramd64-default-devel/2024-08-08_22h56m31s
[00:00:07] WWW: http://build.example.com/build.html?mastername=141Ramd64-default-devel&build=2024-08-08_22h56m31s
[00:00:07] Loading MOVED for /usr/local/poudriere/data/.m/141Ramd64-default-devel/ref/usr/ports
[00:00:08] Ports supports: FLAVORS SUBPACKAGES SELECTED_OPTIONS
[00:00:08] Inspecting ports tree for modifications to git checkout... no
[00:00:12] Ports top-level git hash: 88c12b53a
[00:00:12] Gathering ports metadata
[00:00:13] Calculating ports order and dependencies
[00:00:14] Trimming IGNORED and blacklisted ports
[00:00:14] pkg bootstrap missing: unable to inspect existing packages, cleaning all packages... done
[00:00:14] Sanity checking the repository
[00:00:14] Deleting stale symlinks... done
[00:00:14] Deleting empty directories... done
[00:00:14] Unqueueing existing packages
[00:00:14] Unqueueing orphaned build dependencies
[00:00:15] Sanity checking build queue
[00:00:15] Processing PRIORITY_BOOST
[00:00:15] Balancing pool
[141Ramd64-default-devel] [2024-08-08_22h56m31s] [balancing_pool] Queued: 102 Built: 0   Failed: 0   Skipped: 0   Ignored: 0   Fetched: 0   Tobuild: 102  Time: 00:00:08
[00:00:15] Recording filesystem state for prepkg... done
[00:00:15] Building 102 packages using up to 16 builders
[00:00:15] Hit CTRL+t at any time to see build progress and stats
[00:00:15] [01] [00:00:00] Builder starting
[00:00:19] [01] [00:00:04] Builder started
[00:00:19] [01] [00:00:00] Building ports-mgmt/pkg | pkg-1.21.3
[00:02:24] [01] [00:02:05] Finished ports-mgmt/pkg | pkg-1.21.3: Success
[00:02:25] [01] [00:00:00] Building print/indexinfo | indexinfo-0.3.1
...
[02:33:24] [01] [00:00:00] Building devel/git@default | git-2.46.0
[02:41:45] [01] [00:08:21] Finished devel/git@default | git-2.46.0: Success
[02:41:47] Stopping 16 builders
[02:42:06] Creating pkg repository
[02:42:06] Signing repository with key: /usr/local/etc/ssl/private/build.example.com-sk.key
Creating repository in /tmp/packages: 100%
Packing files for repository: 100%
[02:42:12] Signing pkg bootstrap with method: pubkey
[02:42:12] Committing packages to repository: /usr/local/poudriere/data/packages/141Ramd64-default-devel/.real_1723160323 via .latest symlink
[02:42:12] Removing old packages
[02:42:12] Built ports: ports-mgmt/pkg devel/autoconf-switch ports-mgmt/portmaster dns/public_suffix_list print/indexinfo devel/pkgconf textproc/expat2 textproc/xmlcatmgr devel/libatomic_ops security/rhash devel/libedit converters/libiconv textproc/sdocbook-xml textproc/xmlcharent textproc/iso8879 devel/gmake devel/libffi devel/libuv devel/readline security/libgpg-error www/libnghttp2 textproc/docbook-xml archivers/gtar textproc/docbook-sgml misc/getopt devel/boehm-gc devel/xxhash textproc/libyaml textproc/docbook math/mpdecimal devel/libunwind textproc/docbook-xsl devel/libunistring databases/db5 lang/perl5.36 devel/p5-Module-Build devel/p5-TimeDate converters/p5-Encode-Locale converters/p5-Text-Unidecode www/p5-HTML-Tagset lang/p5-Error security/p5-Digest-HMAC textproc/p5-Unicode-EastAsianWidth www/p5-Mozilla-CA www/p5-LWP-MediaTypes devel/p5-IO-HTML net/p5-URI devel/p5-Clone misc/help2man devel/p5-Locale-libintl www/p5-HTTP-Date security/p5-Authen-SASL net/p5-IO-Socket-IP www/p5-HTTP-Message www/p5-HTML-Parser www/p5-CGI print/texinfo dns/libidn2 devel/m4 devel/libtool devel/autoconf devel/automake print/libpaper security/libgcrypt devel/bison shells/bash devel/pcre2 security/openssl security/p5-Net-SSLeay security/p5-IO-Socket-SSL security/libssh2 www/w3m ftp/wget lang/python311 devel/py-flit-core@py311 devel/py-setuptools@py311 devel/py-installer@py311 devel/py-packaging@py311 devel/py-pyproject_hooks@py311 devel/py-build@py311 devel/py-wheel@py311 devel/ninja devel/meson@py311 archivers/liblz4 dns/libpsl devel/jsoncpp archivers/zstd ftp/curl net/rsync lang/ruby32 devel/ruby-gems textproc/rubygem-asciidoctor devel/rubygem-stringio textproc/rubygem-psych devel/rubygem-rdoc databases/ruby-bdb ports-mgmt/portupgrade devel/cmake-core textproc/libxml2 textproc/libxslt textproc/xmlto devel/git@default
[141Ramd64-default-devel] [2024-08-08_22h56m31s] [committing] Queued: 102 Built: 102 Failed: 0   Skipped: 0   Ignored: 0   Fetched: 0   Tobuild: 0    Time: 02:42:05