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
Brandon Allbery
2014-Dec-15 22:26 UTC
I do not quite understand why a BIND upgrade needs to touch soo much.
On Mon, Dec 15, 2014 at 5:10 PM, Willem Jan Withagen <wjw at digiware.nl> wrote:> > Yup, more than true in the ultimate case. > Although 'portupgrade bind99' in this case did not require any other > packages to be upgraded too. >Hm; I'd expect it to notice the new gettext and build that as well, since the new bind might depend on changes in it (it has no way of knowing that in this case it's safe). OTOH this explains some of the screw cases that portuprade used to get me into, which are why I use portmaster these days.... 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 >This comes of prebuilt packages. In theory, a poudriere setup could be managed so that you updated only the bind99 Makefile. If you're relying on the standard packages, or updating a poudriere ports tree without checking /usr/ports/UPDATING first, you have no way to limit the update and get a bind99 package built against the old gettext; you have little choice but to upgrade everything. Any other package manager would give you the same result. (Something like nix gives you the option of the "In theory..." above about poudriere. The *default* behavior won't differ.) -- brandon s allbery kf8nh sine nomine associates allbery.b at gmail.com ballbery at sinenomine.net unix, openafs, kerberos, infrastructure, xmonad http://sinenomine.net
Trond Endrestøl
2014-Dec-16 13:02 UTC
I do not quite understand why a BIND upgrade needs to touch soo much.
On Mon, 15 Dec 2014 23:10+0100, Willem Jan Withagen wrote:> 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.)While YMMV, I use portupgrade and not pkg, and upgrading gettext was pretty much less painful than indicated by the UPDATING entry. Simply run: portupgrade -fpvo devel/gettext-runtime gettext cd /usr/ports/devel/gettext-tools && make && make install && make package && make clean cd /usr/ports/devel/gettext && make && make install && make package && make clean portupgrade -fprvx gettext -x gettext-runtime -x gettext-tools devel/gettext-runtime> 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-- +-------------------------------+------------------------------------+ | Vennlig hilsen, | Best regards, | | Trond Endrest?l, | Trond Endrest?l, | | IT-ansvarlig, | System administrator, | | Fagskolen Innlandet, | Gj?vik Technical College, Norway, | | tlf. mob. 952 62 567, | Cellular...: +47 952 62 567, | | sentralbord 61 14 54 00. | Switchboard: +47 61 14 54 00. | +-------------------------------+------------------------------------+