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_poudriereshell> ansible-galaxy role install vbotka.freebsd_poudriereInstall 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 hostbuild.example.com(2)
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 servercertificate(5-8), repositorysigning key(17-18) and Poudriereparameters (21-45). Create the list ofarchitecturesfor which the packages will be built (48) and configuremake(51-57). Fit the configuration to your needs.
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
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
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
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
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
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
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
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
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)
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
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
1sysutils/ansible
2sysutils/py-ansible-lint
3sysutils/py-ansible-runner
1archivers/gtar
2devel/git
3ftp/wget
4net/rsync
5ports-mgmt/pkg
6ports-mgmt/portmaster
7ports-mgmt/portupgrade
8security/sudo
9shells/bash
Configure 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.comand proceed according the Poudriere documentation. For example,
[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
[00:00:00] Creating default fs at /usr/local/poudriere/ports/default... done
[00:00:00] Cloning the ports tree... done
[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