I want to build the entire pkg repo using Poudriere.
If there are no custom port configuration,
pkg-fetch(8) [2] could primarily be used instead, to get a complete official FreeBSD package repository, in considerable shorter time than building the ports tree in days/weeks [1], which will involve almost certainly build failures, which requires manual intervention, which will prolong the process even more.
All the ports distfiles could be fetched on a regular basis (after updating the ports tree) for building packages as a fallback plan.
[1]
I couldn't find much data on the official package building cluster hardware, the one source I could find is "
https://freebsdfoundation.org/our-work/infrastructure-support/" for the arm64 package sets on 48-core Cavium ThunderX (gcc compiler benchmarks
here).
If it takes 120:49:45 hours for the (assumed) ThunderX to build
36798 packages in this example, I can imagine, that on a
i7-4785T 35W TDP, 2.2Ghz, 4-core, 8-thread.
it takes a lot longer.
[2]
Example "all-at-once":
Code:
# pkg fetch -r FreeBSD-ports -o /packages/FreeBSD:15:amd64 -a
...
The following packages will be fetched:
New packages to be FETCHED:
0ad: 0.28.0 (1 GiB: 0.92% of the 159 GiB to download)
0d1n: 3.8_1 (245 KiB: 0.00% of the 159 GiB to download)
0verkill: 0.16_2 (243 KiB: 0.00% of the 159 GiB to download)
1password-client: 1.12.4 (3 MiB: 0.00% of the 159 GiB to download)
1password-client2: 2.32.1 (10 MiB: 0.01% of the 159 GiB to download)
1password-client2-beta: 2.33.0.b.02 (10 MiB: 0.01% of the 159 GiB to download)
2048: 0.9.1_1 (11 KiB: 0.00% of the 159 GiB to download)
2bsd-diff: 2.11.1_2 (22 KiB: 0.00% of the 159 GiB to download)
...
zziplib: 0.13.80_1 (106 KiB: 0.00% of the 159 GiB to download)
zzuf: 0.13_2 (129 KiB: 0.00% of the 159 GiB to download)
Number of packages to be fetched: 36871
The process will require 159 GiB more space.
159 GiB to be downloaded.
Proceed with fetching packages? [y/N]:
Example "in-groups", in case of download interruptions, easier to resume:
Code:
# pkg fetch -r FreeBSD-ports -o /packages/FreeBSD:15:amd64 -g '0*'
...
New packages to be FETCHED:
0ad: 0.28.0 (1 GiB: 99.97% of the 1 GiB to download)
0d1n: 3.8_1 (245 KiB: 0.02% of the 1 GiB to download)
0verkill: 0.16_2 (243 KiB: 0.02% of the 1 GiB to download)
Number of packages to be fetched: 3
The process will require 1 GiB more space.
1 GiB to be downloaded.
# pkg fetch -r FreeBSD-ports -o /packages/FreeBSD:15:amd64 -g '1*'
New packages to be FETCHED:
1password-client: 1.12.4 (3 MiB: 12.99% of the 24 MiB to download)
1password-client2: 2.32.1 (10 MiB: 43.47% of the 24 MiB to download)
1password-client2-beta: 2.33.0.b.02 (10 MiB: 43.54% of the 24 MiB to download)
Number of packages to be fetched: 3
The process will require 24 MiB more space.
24 MiB to be downloaded.
etc.
A local repository for distribution via LAN or WAN can be created with
pkg-repo(8)