https://lists.freebsd.org/pipermail/svn ... 45282.html
Poudriere and synth are using the same rebuild logic, therefore the same answer may appy to Synth too:
First of all, this is not true. Poudriere *does not* rebuild everything
every time. It only does that with the -c flag. Poudriere *by default*
will do an incremental build. It only rebuilds things if they have,
comparing to the previous package, a missing package, a new PORTVERSION,
a new PORTREVISION, new LIB or RUN dependencies, changed OPTIONS, a
changed PKGNAME, or lastly if a dependency rebuilds due to any of the
This last piece, of always rebuilding if a dependency is rebuilt is
simply *wrong*. It is a crutch that was added to ensure that packages
were working because people often *forgot* to bump PORTREVISION properly.
Great, they (poudriere and synth) are building packages in excess to assure things will work as required.
Unfortunately a little later you can read:
A reminder that not doing a PORTREVISION chase as-needed will make Pkg
users have broken packages until they force reinstall some of them,
unless it happens to be a shared library change which it will recognize.
What I understand is that even if packages are rebuilt for safety, pkg will ignore them unless of shared libs.
This is also confirmed below:
Add in the Pkg problem of not
reinstalling them and you get some random users having problems and
others not, while *both* have the updated dependencies because Pkg did
upgrade those, but those dependencies had *build time* differences that
I will translate that for you: the only wayto do a proper pkgs upgrade is to reinstall all packages all the times.
And to finish:
of the tools (portmaster/portupgrade/poudriere/pkg) do 100% of the right
thing. I left out synth as I am not familiar with its behavior here,
but it too cannot be magical and know if a package *really* needs a
rebuild or not, and still Pkg may ignore that new one.
I can add that synth (from synth' author comments) use the same rebuild logic as poudriere and therefore the same problems exists when using synth instead of poudriere.
Not much reassuring,