Updated FreeBSD 14-STABLE and now I'm receiving a message.

Hello there,

I updated my system following this guide. I did the following:

1) etcupdate extract
2) etcupdate diff
3) rm -rf /usr/src
4) git clone --branch stable/14 https://git.freebsd.org/src.git /usr/src
5) cd /usr/src
6) make -j4 buildworld
7) make -j4 kernel
8) shutdown -r now
9) etcupdate -p
10) cd /usr/src
11) make installworld
12) etcupdate -B
13) shutdown -r now

After that, I'm receiving the following message:

Screenshot_2024-04-06_21-59-57.png


I already did the pkg update, pkg upgrade and 0 pkgs to be upgraded. I clicked the "Yes" button but nothing happens. Any ideas? Thank you.
 
It's a message about packages being out of date and need updating. Message has nothing to do with the base OS.
 
Hello there,

I updated my system following this guide. I did the following:

1) etcupdate extract
2) etcupdate diff
3) rm -rf /usr/src
4) git clone --branch stable/14 https://git.freebsd.org/src.git /usr/src
5) cd /usr/src
6) make -j4 buildworld
7) make -j4 kernel
8) shutdown -r now
9) etcupdate -p
10) cd /usr/src
11) make installworld
12) etcupdate -B
13) shutdown -r now

After that, I'm receiving the following message:

View attachment 18715

I already did the pkg update, pkg upgrade and 0 pkgs to be upgraded. I clicked the "Yes" button but nothing happens. Any ideas? Thank you.

Good day!
Maybe silly question, but I don't see "make installkernel" before "make installworld" ...
 
Wait. In the handbook it is advised to make kernel to obtain a GENERIC kernel after you have installed a custom one (if you cannot trust kernel.old).
See https://docs.freebsd.org/en/books/handbook/cutting-edge/#freebsd-update-custom-kernel-9x

Does the documentation need to be updated to use make buildkernel instead? Otherwise it will overwrite the current, custom one, won't it?

But 'make buildkernel' don't place GENERIC into /boot.
I only don't understand why freebsd-update needs GENERIC kernel.

As I understand you have to fetch new binary kernel and make other operations, and then only rebuild custom kernel again.
 
I only don't understand why freebsd-update needs GENERIC kernel.
freebsd-update(8) is configured by default to do so.

As I understand you have to fetch new binary kernel and make other operations, and then only rebuild custom kernel again.
You don't have to fetch a new binary kernel, freebsd-update(8) can be configurated to your needs.

For example, if a custom kernel is in use, exclude the kernel to be updated.

In /etc/freebsd-update.conf, remove "kernel" from line:
Rich (BB code):
# Components of the base system which should be kept updated.
Components src world kernel
Without the kernel component, world (base system without kernel) is binary updated, and "src" (FreeBSD source code), if /usr/src is populated.

If "src" is updated, the user can now build a new custom kernel, matching world, if necessary. Sometimes the kernel is not updated, only world.

Other possible options see in file, and freebsd-update.conf(5).
 
But 'make buildkernel' don't place GENERIC into /boot.
I only don't understand why freebsd-update needs GENERIC kernel.

As I understand you have to fetch new binary kernel and make other operations, and then only rebuild custom kernel again.
You're referencing both binary updating of FreeBSD and non-binary updating of FreeBSD (=by using source files and building/making/compiling them into a binaries yourself) and perhaps this leads to your not understanding.

freebsd-update(8) (and freebsd-update.conf(8)) "is for binaries":
Code:
DESCRIPTION
       The freebsd-update tool is used to fetch, install, and rollback binary
       updates to the FreeBSD base system.
freebsd-update(8) is a shell script: see freebsd-update.sh L796-L812 and further GENERIC references in this script. This script uses/needs the GENERIC reference (=the presence of the GENERIC kernel) to work as intended.

Usually, most of the time, you are either updating your OS by binary updates or updating your OS from source. When you have been building your own kernel or OS, and decide to stop updating from source and change to binary updating, even then freebsd-update(8) can be utilised.

In /etc/freebsd-update.conf, remove "kernel" from line:
Rich (BB code):
# Components of the base system which should be kept updated.
Components src world kernel
Without the kernel component, world (base system without kernel) is binary updated, and "src" (FreeBSD source code), if /usr/src is populated.
While you can do this, note that the Handbook-The Configuration File states:
Code:
# Components of the base system which should be kept updated.
Components world kernel
This parameter controls which parts of FreeBSD will be kept up-to-date. The default is to update the entire base system and the kernel. Individual components can instead be specified, such as src/base or src/sys. However, the best option is to leave this at the default as changing it to include specific items requires every needed item to be listed. Over time, this could have disastrous consequences as source code and binaries may become out of sync.
If you really know what you are doing and must use this option that means you should be prepared to remedy eventual negative side effects. Also, in that case I suggest using a separate conffile using -f conffile of freebsd-update(8)
 
But 'make buildkernel' don't place GENERIC into /boot.
I only don't understand why freebsd-update needs GENERIC kernel.

As I understand you have to fetch new binary kernel and make other operations, and then only rebuild custom kernel again.
But you can just copy it yourself. If you juste make kernel it will copy it to /boot/kernel/kernel anyway - and overwrite / copy to kernel.old your existing one - not to /boot/GENERIC.
 
Sirs,
I'm coming from an old Stable, I was away from BSD for a few years and when I came back, there were significant changes.

Among them the process of updating sources (/usr/src).

I'm using "FreeBSD-14.0-STABLE", I noticed that in the link:

For stables there are no 12.x, 13.x, 14.x directories, only 12, 13, 14.
For the "releng", yes, there are .x versions (14.1 in this case).

How do I correctly point git to the 14.1-STABLE SRCs?
 
… away from BSD for a few years … using "FreeBSD-14.0-STABLE", …

For future simplicity (without building), you can switch to pkgbase.

For your FreeBSD-base.conf file content, choose latest or weekly:
  • base_latest
  • base_weekly
– I have:

Code:
% file /usr/local/etc/pkg/repos/FreeBSD-base.conf
/usr/local/etc/pkg/repos/FreeBSD-base.conf: JSON text data
% cat /usr/local/etc/pkg/repos/FreeBSD-base.conf
{
        "FreeBSD-base": {
                "url": "pkg+https://pkg.freebsd.org/${ABI}/base_latest",
                "signature_type": "fingerprints",
                "fingerprints": "/usr/share/keys/pkg",
                "mirror_type": "srv",
                "enabled": true
        }
}
%

I use distinctive file names, including /etc/pkg/FreeBSD-ports.conf – details in the wiki and elsewhere.
 
Back
Top