Solved Synth + "Fetch prebuilt packages" issue?

I've just enabled this option (Fetch prebuilt packages) and it doesn't appear to be working.

When I tried to install graphics/vips using synth build graphics/vips, Synth is building all 100+ packages from source.

Here are my configs. What am I missing or doing wrong?

Code:
$ more /usr/local/etc/pkg/repos/00_synth.conf

Synth: {
  url      : file:///var/synth/live_packages,
  priority : 0,
  enabled  : yes,
}

$more /usr/local/etc/pkg/repos/FreeBSD.conf

FreeBSD: {
        url: "pkg+http://pkg.FreeBSD.org/${ABI}/latest"
}

$ pkg stats
Local package database:
        Installed packages: 121
        Disk space occupied: 940 MiB

Remote package database(s):
        Number of repositories: 2
        Packages available: 32131
        Unique packages: 32131
        Total size of packages: 104 GiB
 
From what I can remember of this option, it seems to download only those prebuilt packages that do not share dependencies with anything that needs to be built.

Did not save a lot of time. Now I build everything.
 
I removed all the files in /var/synth/live_packages/All/ directory and it appears to be working now.

Code:
$ sudo synth status
Querying system about current package installations.
Stand by, comparing installed packages against the ports tree.
Stand by, building pkg(8) first ... done!
Stand by, updating external repository catalogs ... done.
Scanning existing packages.
These are the packages that would be fetched:
  => indexinfo-0.3.1.pkg (print/indexinfo)
  => gettext-runtime-0.21.pkg (devel/gettext-runtime)
  => gmake-4.3_2.pkg (devel/gmake)
  => libtextstyle-0.21.pkg (devel/libtextstyle)
  => gettext-tools-0.21_1.pkg (devel/gettext-tools)
  => pkgconf-1.8.0,1.pkg (devel/pkgconf)
  => readline-8.1.2.pkg (devel/readline)
  => perl5-5.32.1_1.pkg (lang/perl5.32)
  => libffi-3.4.2.pkg (devel/libffi)
  => mpdecimal-2.5.1.pkg (math/mpdecimal)
  => libiconv-1.16.pkg (converters/libiconv)
  => p5-Locale-gettext-1.07.pkg (devel/p5-Locale-gettext)
  => python39-3.9.13.pkg (lang/python39)
  => p5-Text-Unidecode-1.30.pkg (converters/p5-Text-Unidecode)
  => p5-Locale-libintl-1.32.pkg (devel/p5-Locale-libintl)
  => help2man-1.49.2.pkg (misc/help2man)
  => p5-Unicode-EastAsianWidth-12.0.pkg (textproc/p5-Unicode-EastAsianWidth)
  => texinfo-6.8_3,1.pkg (print/texinfo)
  => py39-setuptools-62.1.0_1.pkg (devel/py-setuptools@py39)
  => m4-1.4.19,1.pkg (devel/m4)
  => autoconf-switch-20220527.pkg (devel/autoconf-switch)
  => autoconf-2.71.pkg (devel/autoconf)
  => automake-1.16.5.pkg (devel/automake)
  => libtool-2.4.7.pkg (devel/libtool)
  => libargon2-20190702.pkg (security/libargon2)
  => libxml2-2.9.13_2.pkg (textproc/libxml2)
  => py39-pyparsing-3.0.9.pkg (devel/py-pyparsing@py39)
  => libnghttp2-1.48.0.pkg (www/libnghttp2)
  => py39-packaging-21.3.pkg (devel/py-packaging@py39)
  => ca_root_nss-3.78.pkg (security/ca_root_nss)
  => expat-2.4.8.pkg (textproc/expat2)
  => py39-tomli-2.0.1.pkg (textproc/py-tomli@py39)
  => py39-pycparser-2.21.pkg (devel/py-pycparser@py39)
  => py39-setuptools_scm-6.4.2.pkg (devel/py-setuptools_scm@py39)
  => py39-cython-0.29.30_1.pkg (lang/cython@py39)
  => ninja-1.10.2,2.pkg (devel/ninja)
  => py39-cffi-1.15.0_1.pkg (devel/py-cffi@py39)
  => meson-0.62.2.pkg (devel/meson)
  => py39-six-1.16.0.pkg (devel/py-six@py39)
  => py39-cryptography-3.4.8.pkg (security/py-cryptography@py39)
  => py39-pytz-2021.3,1.pkg (devel/py-pytz@py39)
  => py39-idna-3.3.pkg (dns/py-idna@py39)
  => py39-pysocks-1.7.1.pkg (net/py-pysocks@py39)
  => py39-certifi-2022.5.18.1.pkg (security/py-certifi@py39)
  => py39-openssl-20.0.1,1.pkg (security/py-openssl@py39)
  => py39-toml-0.10.2.pkg (textproc/py-toml@py39)
  => libuv-1.42.0.pkg (devel/libuv)
  => py39-Babel-2.10.2.pkg (devel/py-babel@py39)
  => py39-zipp-3.4.0.pkg (devel/py-zipp@py39)
  => py39-urllib3-1.26.9,1.pkg (net/py-urllib3@py39)
  => py39-charset-normalizer-2.0.12.pkg (textproc/py-charset-normalizer@py39)
  => py39-markupsafe-2.1.1.pkg (textproc/py-markupsafe@py39)
  => py39-pystemmer-2.0.1.pkg (textproc/py-pystemmer@py39)
  => py39-Jinja2-3.0.1.pkg (devel/py-Jinja2@py39)
  => py39-importlib-metadata-4.8.1.pkg (devel/py-importlib-metadata@py39)
  => py39-imagesize-1.3.0.pkg (graphics/py-imagesize@py39)
  => py39-alabaster-0.7.12.pkg (textproc/py-alabaster@py39)
  => py39-docutils-0.17.1,1.pkg (textproc/py-docutils@py39)
  => py39-pygments-2.9.0.pkg (textproc/py-pygments@py39)
  => py39-snowballstemmer-2.2.0.pkg (textproc/py-snowballstemmer@py39)
  => py39-sphinxcontrib-applehelp-1.0.2.pkg (textproc/py-sphinxcontrib-applehelp@py39)
  => py39-sphinxcontrib-devhelp-1.0.2.pkg (textproc/py-sphinxcontrib-devhelp@py39)
  => py39-sphinxcontrib-htmlhelp-2.0.0.pkg (textproc/py-sphinxcontrib-htmlhelp@py39)
  => py39-sphinxcontrib-jsmath-1.0.1.pkg (textproc/py-sphinxcontrib-jsmath@py39)
  => py39-sphinxcontrib-qthelp-1.0.3.pkg (textproc/py-sphinxcontrib-qthelp@py39)
  => py39-sphinxcontrib-serializinghtml-1.1.5.pkg (textproc/py-sphinxcontrib-serializinghtml@py39)
  => py39-requests-2.28.0.pkg (www/py-requests@py39)
  => jsoncpp-1.9.5.pkg (devel/jsoncpp)
  => rhash-1.4.3.pkg (security/rhash)
  => py39-sphinx-4.5.0,1.pkg (textproc/py-sphinx@py39)
  => gmp-6.2.1.pkg (math/gmp)
  => libedit-3.1.20210910,1.pkg (devel/libedit)
  => mpfr-4.1.0_1.pkg (math/mpfr)
  => liblz4-1.9.3,1.pkg (archivers/liblz4)
  => bison-3.8.2,1.pkg (devel/bison)
  => libevent-2.1.12.pkg (devel/libevent)
  => libpaper-1.1.28.pkg (print/libpaper)
  => binutils-2.37_2,1.pkg (devel/binutils@native)
  => gsfonts-8.11_8.pkg (print/gsfonts)
  => psutils-1.17_5.pkg (print/psutils)
  => uchardet-0.0.7.pkg (textproc/uchardet)
  => protobuf-3.20.1,1.pkg (devel/protobuf)
  => groff-1.22.4_4.pkg (textproc/groff)
  => nasm-2.15.05,1.pkg (devel/nasm)
  => mpc-1.2.1.pkg (math/mpc)
  => brotli-1.0.9,1.pkg (archivers/brotli)
  => libzip-1.7.3.pkg (archivers/libzip)
  => gdbm-1.23.pkg (databases/gdbm)
  => oniguruma-6.9.8_1.pkg (devel/oniguruma)
  => py39-wheel-0.36.2.pkg (devel/py-wheel@py39)
  => jpeg-turbo-2.1.3.pkg (graphics/jpeg-turbo)
  => gcc6-aux-20180516_2,1.pkg (lang/gcc6-aux)
  => tcl86-8.6.12.pkg (lang/tcl86)
  => aspell-0.60.8_1,1.pkg (textproc/aspell)
  => zstd-1.5.2.pkg (archivers/zstd)
  => sqlite3-3.38.5,1.pkg (databases/sqlite3@default)
  => icu-71.1,1.pkg (devel/icu)
  => libinotify-20211018.pkg (devel/libinotify)
  => c-ares-1.18.1.pkg (dns/c-ares)
  => py39-dnspython-2.2.1,1.pkg (dns/py-dnspython@py39)
  => panda-cclient-20130621_2.pkg (mail/panda-cclient)
  => py39-authres-1.2.0.pkg (mail/py-authres@py39)
  => openssl-unsafe-1.0.2.20170706.pkg (security/openssl-unsafe)
  => py39-sqlite3-3.9.13_7.pkg (databases/py-sqlite3@py39)
  => adacurses-20180127.pkg (devel/adacurses)
  => libunwind-20211201_1.pkg (devel/libunwind)
  => pcre-8.45_1.pkg (devel/pcre)
  => py39-pyinotify-0.9.6.pkg (devel/py-pyinotify@py39)
  => xxhash-0.8.1_1.pkg (devel/xxhash)
  => py39-milter-1.0.4.pkg (mail/py-milter@py39)
  => py39-pyspf-2.0.14.pkg (mail/py-pyspf@py39)
  => ini_file_manager-03_3.pkg (misc/ini_file_manager)
  => libmaxminddb-1.6.0.pkg (net/libmaxminddb)
  => socat-1.7.4.3.pkg (net/socat)
  => openssl-quictls-3.0.3_1.pkg (security/openssl-quictls)
  => bash-5.1.16.pkg (shells/bash)
  => gsed-4.8.pkg (textproc/gsed)
  => node-18.2.0.pkg (www/node)
  => redis-7.0.2.pkg (databases/redis)
  => google-perftools-2.10.pkg (devel/google-perftools)
  => nano-6.2.pkg (editors/nano)
  => py39-spf-engine-2.9.3.pkg (mail/py-spf-engine@py39)
  => 3proxy-0.9.4.pkg (net/3proxy)
  => gitup-0.97_2.pkg (net/gitup)
  => dialog4ports-0.1.6_1.pkg (ports-mgmt/dialog4ports)
  => synth-2.12.pkg (ports-mgmt/synth)
  => doas-6.3p6.pkg (security/doas)
  => nmap-7.91_2.pkg (security/nmap)
  => py39-fail2ban-0.11.2_3.pkg (security/py-fail2ban@py39)
  => sslscan-1.11.12_1.pkg (security/sslscan)
  => sudo-1.9.11p3.pkg (security/sudo)
  => testssl.sh-3.0.7.pkg (security/testssl.sh)
  => goaccess-1.5.7.pkg (sysutils/goaccess)
  => pftop-0.8.pkg (sysutils/pftop)
  => screen-4.9.0_6.pkg (sysutils/screen)
  => smartmontools-7.3.pkg (sysutils/smartmontools)
  => sysinfo-1.0.1_2.pkg (sysutils/sysinfo)
  => vmtouch-1.3.1.pkg (sysutils/vmtouch)
  => en-aspell-2020.12.07.0.pkg (textproc/en-aspell)
  => npm-node18-8.13.0.pkg (www/npm-node18)
Total packages that would be fetched: 140
The complete build list can also be found at:
/var/synth/synth_prefetch_list.txt
These are the ports that would be built ([N]ew, [R]ebuild, [U]pgrade):
  N => devel/pcre2
  N => lang/php80
  N => ftp/curl
  N => archivers/libarchive
  N => devel/cmake
  N => graphics/png
  N => databases/mysql57-client
  N => print/freetype2
  N => archivers/php80-zip
  N => archivers/php80-zlib
  N => converters/php80-iconv
  N => converters/php80-mbstring
  N => databases/php80-mysqli
  N => databases/php80-pdo
  N => devel/apr1
  N => graphics/gd
  N => security/php80-filter
  N => textproc/php80-ctype
  N => textproc/php80-xml
  N => textproc/php80-xmlwriter
  N => www/php80-opcache
  N => www/php80-session
  N => databases/php80-pdo_mysql
  N => dns/unbound
  N => ftp/php80-curl
  N => graphics/php80-exif
  N => graphics/php80-gd
  N => mail/php80-imap
  N => math/php80-bcmath
  N => sysutils/php80-fileinfo
  N => sysutils/php80-posix
  N => textproc/php80-dom
  N => textproc/php80-pspell
  N => textproc/php80-simplexml
  N => www/apache24
  N => databases/mysql57-server
  N => databases/phpmyadmin5@php80
  N => devel/git@tiny
  N => ftp/wget
  N => graphics/pngquant
  N => lang/php80-extensions
  N => mail/dovecot
  N => mail/opendkim
  N => mail/postfix@default
  N => net/rsync
  N => security/acme.sh
  N => textproc/sphinxsearch
  N => www/mod_php80
  N => www/nginx-devel
Total packages that would be built: 49
The complete build list can also be found at:
/var/synth/synth_status_results.txt

That's 140 ports that don't have to be built. That will save quite a bit of time, as the ones that do have to be built are mostly small.
 
Yes, it indeed is a time saver. Now that said, when I do a FreeBSD OS major version upgrade I will remove all the packages in that packages folder, and configure synth to not download prebuilt packages. Yeah it takes a fair bit more time, but I only do that for major version upgrades.
 
Back
Top