Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 2 Apr 2026 11:24:38 -0700
From:      Mark Millard <marklmi@yahoo.com>
To:        freebsd-hackers@freebsd.org, freebsd-pkgbase@freebsd.org, freebsd-pkg@freebsd.org
Cc:        Karl Denninger <karl@denninger.net>
Subject:   Re: Uh, what's this? (PKGBASE implication)
Message-ID:  <e3b78ade-0ee8-43b5-9669-865308e9640a@yahoo.com>
In-Reply-To: <7b070db3-9540-41aa-8289-05cc386d3563@denninger.net>
References:  <ccaab08d-277d-4cc8-bd61-d03959148324@denninger.net> <20260402205415.aa43b756e2b1036ab1fb9b9c@dec.sakura.ne.jp> <7b070db3-9540-41aa-8289-05cc386d3563@denninger.net>

index | next in thread | previous in thread | raw e-mail

[This is basically a forward from freebsd-hackers@ to freebsd-pkgbase@
and freebsd-pkg@ . It seems to report a type of pkg handling problem for
both port-packages and base-packages. It has the later reply that goes
into more detail than the original message did.]

On 4/2/26 09:08, Karl Denninger wrote:
> On 4/2/2026 07:54, Tomoaki AOKI wrote:
>> On Thu, 2 Apr 2026 07:41:21 -0400
>> Karl Denninger <karl@denninger.net> wrote:
>>
>>> I did not let this proceed as I really don't feel like having a mess to 
>>> un-mess....
>>>
>>> [root@NewFS /home/karl]# uname -v
>>> FreeBSD 14.4-STABLE #31 stable/14-n273840-e5ed09ffd592-dirty: Thu Mar 26 
>>> 11:17:07 EDT 2026 
>>> root@NewFS.denninger.net:/usr/obj/usr/src/amd64.amd64/sys/GENERIC
>>>
>>> [root@NewFS /home/karl]# pkg upgrade
>>> Updating FreeBSD repository catalogue...
>>> FreeBSD repository is up to date.
>>> Updating FreeBSD-kmods repository catalogue...
>>> FreeBSD-kmods repository is up to date.
>>> All repositories are up to date.
>>> Checking for upgrades (255 candidates): 100%
>>> Processing candidates (255 candidates): 100%
>>> The following 13 package(s) will be affected (of 0 checked):
>>>
>>> New packages to be INSTALLED:
>>>          mysql84-client: 8.4.8 [FreeBSD]
>>>
>>> Installed packages to be UPGRADED:
>>>          ffmpeg: 8.0.1_5,1 -> 8.1,1 [FreeBSD]
>>>          harfbuzz: 13.1.1 -> 13.2.1 [FreeBSD]
>>>          mpc: 1.3.1_1 -> 1.4.0 [FreeBSD]
>>>          mysql80-client: 8.0.45 -> 8.0.45_1 [FreeBSD]
>>>          nmap: 7.98_1 -> 7.99_1 [FreeBSD]
>>>          openexr: 3.4.5 -> 3.4.8 [FreeBSD]
>>>          perl5: 5.42.1 -> 5.42.2 [FreeBSD]
>>>
>>> Installed packages to be REINSTALLED:
>>>          cacti-php83-1.2.30 [FreeBSD] (direct dependency changed: 
>>> mysql84-client)
>>>          libass-0.17.4 [FreeBSD] (direct dependency changed: libunibreak)
>>>          libv4l-1.23.0_5 [FreeBSD] (direct dependency changed: libudev-devd)
>>>          libvdpau-1.5 [FreeBSD] (direct dependency changed: libXext)
>>>          mpfr-4.2.2,1 [FreeBSD] (direct dependency changed: indexinfo)
>>>
>>> Number of packages to be installed: 1
>>> Number of packages to be upgraded: 7
>>> Number of packages to be reinstalled: 5
>>>
>>> The process will require 108 MiB more space.
>>> 84 MiB to be downloaded.
>>>
>>> Proceed with this action? [y/N]:
>>>
>>> Uh, that's a "no" :-)
>>>
>>> mysql84-client is going to shove things in the same place as mysql80, 
>>> which it also wants to upgrade the version of.  I also have the server 
>>> loaded; a prior "upgrade" attempt yesterday wanted to upgrade both of 
>>> those, but there are also several other dependencies (e.g. php modules) 
>>> which it DID NOT want to upgrade, and that's a potentially-serious 
>>> problem, and I'm also concerned about cacti which it wants to touch too.
>>>
>>> -- 
>>> Karl Denninger
>>> karl@denninger.net
>>> /The Market Ticker/
>>> /[S/MIME encrypted email preferred]/
>> See corresponding UPDATING entry dated 20260326.
>> Stick with 80 or switch to 84.
>>
>>   https://github.com/freebsd/freebsd-ports/blob/main/UPDATING#L60
>>
>> But not sure if DEFAULT_VERSIONS in /etc/make.conf works
>> on pre-built pkg upgrades.
>>
>> I myself don't use mysql (having client installed as an "automatic"
>> depencencies of something, though), so not 100% sure it works OK or
>> not, switching client alone possibly help.
>>
>> Client are more depended upon by others compared with server.
>>
>> Regards.
> 
> Apologizes for the less-than-clear subject line, but this has
> implications for PKGBASE which is why I put it here on the list.
> 
> A "back-dependence" such as this, if you approve it, will abort because
> the new version of the client (in this case) tries to install into an
> existing location for the other version, which is already there and is
> not being deleted first, and as a result it fails.  That operation is
> non-atomic and thus if it hits something that the system needs you got
> trouble (particularly if you didn't use bectl/beadm first!) as now you
> have part of whatever you updated in place but not all of it, nor does
> it roll it all back if any part of the install sequence fails.
> 
> Pkg does not appear to have a good way to deal with this issue, and I
> can come up with several instances in the past where a package has had
> this issue (in particular when OpenSSL 1.x was in base, newer non-ABI-
> compatible version(s) were in ports/packages, and you needed the newer
> to compile something, although I've also had it bite me with some php
> modules in the past.)  If the shared libraries get yanked out from under
> an executable (e.g. they're upgraded to a new .so version) then the
> other binaries will obviously not run.
> 
> If that hits a "gotta have it" system-level binary then you've got a
> broken system.
> 
> I'm not sure there's a good way to deal with this with pkg not having
> the capacity to be atomic in what it does -- that is, "all is good or
> none commits."
> 
> -- 
> Karl Denninger
> karl@denninger.net
> /The Market Ticker/
> /[S/MIME encrypted email preferred]/


-- 
===
Mark Millard
marklmi at yahoo.com


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?e3b78ade-0ee8-43b5-9669-865308e9640a>