Upgrade 14.4-14.5 requires 4 GBs to be downloaded?

I'm so confused now.

I was trying to upgrade from 14.4 to 14.5. Before the very end it's telling me I will have to download ALLLL of the packages and re-install all of them so they use the shared libraries that it's about to delete for the upgrade.

All the packages re-downloaded means a 4GBs download for me. But also which packages really need the new shared libraries? And how?

I canceled out of the download, and just finished the upgrade without upgrading all the packages. And then everything seems to be working just fine without re-installing all installed packages.

So the question is which packages really required re-installation and why? Everything seems to be working fine without that step. And if it is required, then what is going on? That's such a crazy thing to ask for a user when upgrading because some packages are custom compiled, so you don't want to download and install those (pkg lock them? and then compile manually?). Do all minor version upgrades requires this too?
 
Ok, Gemini says all that prompt to re-install all packages is BALONEY. Please confirm FreeBSD is BALONEY when it comes to prompts during upgrades between minor versions.

FreeBSD maintains strict Application Binary Interface (ABI) compatibility across minor releases (e.g., 14.1 to 14.2), meaning userland binaries compiled for any 14.x version continue working on newer 14.x releases.

Why freebsd-update Flagged a Full Reinstall

When freebsd-update updates base system libraries, its default script triggers a package check before running the final cleanup pass. It prompts to update or reinstall packages to ensure no installed binaries rely on old base library files that are queued for deletion. In many cases, it triggers a full repository refresh (pkg upgrade -f), which prompts pkg to re-download every package even when shared libraries haven't broken.

Why Everything Works Fine Without Reinstalling

  • ABI Stability: Base shared libraries (such as libc.so.7) maintain the exact same major version and exported symbols across all 14.x releases.
  • Libraries Still Present: Until you execute the final freebsd-update install cleanup pass, freebsd-update keeps older base library stubs in place, so existing binaries face zero missing library errors.
Which Packages Actually Need Reinstallation?

  • Kernel Modules (kmods): Drivers like nvidia-driver, drm-kmod (GPU drivers), or virtualbox-ose-kmod interact directly with internal kernel symbols (KABI). Kernel symbol changes between minor releases can cause module load failures, so these often need a quick recompile or reinstall.
  • Base OpenSSL / Library Dependent Tools: Binaries hardcoded against specific internal base library patch versions might fail if those specific library files are purged during the final base cleanup.
Handling Custom-Compiled and Locked Packages

  • pkg lock protection: Locking a package (pkg lock <package-name>) prevents pkg upgrade from downloading or overwriting your custom binary from the official repository.
  • Custom Ports: Custom ports built on FreeBSD 14.x will work seamlessly across minor updates. You do not need to recompile them unless they rely on a kernel module or an explicitly removed library.
Do Minor Upgrades Require Re-downloading Everything?

No. Re-downloading all packages is only strictly required on major version upgrades (e.g., FreeBSD 13.x to 14.x) where the base ABI breaks.

For minor updates, standard procedure is to decline the full pkg upgrade -f prompt, complete freebsd-update install, and then run a standard pkg update && pkg upgrade to fetch routine updates.
 
The non-baloney solution would be to run pkg check -B (automatic ABI scan) after a completed upgrade to detect broken binaries. And then upgrade only any binaries that are detected by that?
 
Since pkg base is WIP I would do the whole shebang.
Are you paying for service by the megabyte?
This is not WIP, it's 14.x, right?
No, I'm not paying for the bandwidth, but someone serving FreeBSD mirror traffic is paying for it.
 
With traditional packages I have no problem saying yes ignore full reinstall for minor version upgrade.
With pkgbase maturing I would not hesitate to do full reinstall of packages.
 
I was trying to upgrade from 14.4 to 14.5. Before the very end it's telling me I will have to download ALLLL of the packages and re-install all of them so they use the shared libraries that it's about to delete for the upgrade.
Strange. As far as I know, you only need to upgrade all packages during a major upgrade.
By the way, there are only one 14:amd64 latest and quarterly repos and they likely build on 14.4-RELEASE.

What you need to upgrade all the time are the third-party kernel modules (repo FreeBSD-kmods or FreeBSD-ports-kmods).
 
I dont think so. You have just to see what is the kmods repo name with: pkg repos.
Then you run: pkg upgrade -fr TheRepoNameYouFound
 
Back
Top