Brandon Allbery
2014-Dec-15 21:26 UTC
I do not quite understand why a BIND upgrade needs to touch soo much.
On Mon, Dec 15, 2014 at 4:20 PM, Brandon Allbery <allbery.b at gmail.com> wrote:> > On Mon, Dec 15, 2014 at 4:15 PM, Willem Jan Withagen <wjw at digiware.nl> > wrote: >> >> So I'm building my packages with poudriere and using pkg (1.4.0) >> to upgrade bind. With the sort of shocking result: >> =====================>> Installed packages to be REMOVED: >> gettext-0.18.3.1_1 >> > > That first one is the key. Bind depends on gettext --- as does pretty much > every other package in existence --- and gettext underwent a massive > breaking change, which is kinda deranging everything else. The recent > /usr/ports/UPDATING entry for gettext has the gory details. >To explain a bit further: this time, your portupgrade would do a lot of extra work as well. bind is not self-contained; it has dependencies, some of which are shared by other packages. If you want your bind update to be self-contained then you'll need to make your own port and package from it containing its own gettext, so you can upgrade that one package without breaking every other package that depends on gettext. Otherwise, you just have to accept that a package other than bind, which bind and just about everything else depends on, *also* changed; and you can't just upgrade bind without upgrading gettext *and* either upgrading or removing the other packages that depend on the old gettext. -- brandon s allbery kf8nh sine nomine associates allbery.b at gmail.com ballbery at sinenomine.net unix, openafs, kerberos, infrastructure, xmonad http://sinenomine.net
Willem Jan Withagen
2014-Dec-15 22:10 UTC
I do not quite understand why a BIND upgrade needs to touch soo much.
On 15-12-2014 22:26, Brandon Allbery wrote:> On Mon, Dec 15, 2014 at 4:20 PM, Brandon Allbery <allbery.b at gmail.com> > wrote: >> >> On Mon, Dec 15, 2014 at 4:15 PM, Willem Jan Withagen <wjw at digiware.nl> >> wrote: >>> >>> So I'm building my packages with poudriere and using pkg (1.4.0) >>> to upgrade bind. With the sort of shocking result: >>> =====================>>> Installed packages to be REMOVED: >>> gettext-0.18.3.1_1 >>> >> >> That first one is the key. Bind depends on gettext --- as does pretty much >> every other package in existence --- and gettext underwent a massive >> breaking change, which is kinda deranging everything else. The recent >> /usr/ports/UPDATING entry for gettext has the gory details. >> > > To explain a bit further: this time, your portupgrade would do a lot of > extra work as well. bind is not self-contained; it has dependencies, some > of which are shared by other packages. If you want your bind update to be > self-contained then you'll need to make your own port and package from it > containing its own gettext, so you can upgrade that one package without > breaking every other package that depends on gettext. Otherwise, you just > have to accept that a package other than bind, which bind and just about > everything else depends on, *also* changed; and you can't just upgrade bind > without upgrading gettext *and* either upgrading or removing the other > packages that depend on the old gettext.Yup, more than true in the ultimate case. Although 'portupgrade bind99' in this case did not require any other packages to be upgraded too. I've been hesitant in upgrading other packages with less security pressure, because of the huge list with extra's. And you are right, this change in gettext is going to bite at some point. (besides from building things with static linked libs.) Still leaves the point that 'pkg upgrade bind99' removes packages without reinstalling those. The only alternatives are: - pkg upgrade, and everything is upgraded - capture the list of deletion, and manually re-add them after the upgrade Neither solution is something I look forward too. --WjW