Just a thought

Michelle Sullivan michelle at sorbs.net
Wed Jul 22 00:43:25 UTC 2015

I'm using poudriere 3.0.19 (for good reason) so I don't know if this is
already done, but from a recent set of mailings I don't think so...

Also pkgng doesn't seem to do it (again based on recent mailings)

You have the following package set:

pkga-2.0.1 => pkgb-1.34.5 => pkgc-34.4.2 => pkgd-1.1.1

where a => b 'a' is a dependency of 'b'.

if the options are change for pkgb are changed, *or* pkgb has a new
version 1.35.0 (or both)

Why are both pkgc and pkgd rebuilt/reinstalled?

Surely (logically) pkgc-34.4.2 needs to be rebuild because pkgb's ABI
*may* have been changed... however pkgd should *not* need to be
rebuilt/reinstalled because what it depends on has only been rebuilt for
the current (last) version and should have absolutely no ABI change.

So in the real world if (recent example) OpenSSL is rebuilt because of a
new version/patch (1.0.2a -> 1.0.2c) only those ports that actually have
OpenSSL as a *direct dependency* (ie those that link to the openssl
libraries) need to be rebuilt (they might not actually even need that if
it's just a security patch that doesn't change any of the public
interface, but one cannot easily tell that so rebuilding is required to
be safe) ... but why would you need to rebuild 1000+ ports (my case)
because OpenSSL has been patched... ie modssl has been update and
therefore apache has been updated then everything thing under the sun
that depends on apache gets rebuilt because apache was rebuilt even
though the apache version is identical....?

...even pkg has this issue it seems... the only minor difference is if a
package is installed it should (in theory) use the already downloaded
(cached) version of that package... but why does it need to
deinstall/reinstall? (or is that only what it displays and it doesn't
actually do it?)

Michelle Sullivan

More information about the freebsd-ports mailing list