Hello everyone,

In our current release model the binary packages are built on the lowest
supported version of a given branch. Which means when 14.2, the packages it is
using are built on 14.1 until 14.1's EOL which is march 31st.

This works greate for everything but kernel modules, beside developers trying
hard to keep KBI stability in the life time of a branch, there are always plenty
of issues. It has been decided to provide a dedicated repository for 14.2 user
only containings kernel modules, built out of the ports tree.

I order to be able to do it quickly here is what have been done and the related
constraints.

First all the packages which are providing kernel modules now have automatically
the OSVERSION which is appended to the package version:
foo-kmod-1.3.4_3,1 now becomes foo-kmod-1.3.4.${OSVERSION}_3,1

The goal of this change is that the kernel module for 14.2 is at a higher
version from the kernel module from 14.1 which means will force reinstalling
considering this is an upgrade.

The other point of this change, it helps user on current and on stable to figure
out the need to rebuild thir kernel module at some point of their upgrades!

On the infrastructure side, all kernel modules are now fully build in an
unpriviledge clean chroot, and cross built for all possible architectures for
each new releases (currently only 14.2, 14.1 kernel modules being in the regular
repository).

This has the advantage of allowing us to get kernel modules for every single
architecture we do support quickly, the drawback being kernel modules with build
and/or run dependency cannot be built (note that for run dependency I am working
on a workaround, stay tuned).

in order to discover quickly which ports should be built, the following is being
done:
> git grep "^USES.*kmod" and ls */*-kmod

Anything mathing with the above is listed as to be built.

Because of the way we are building and because we want to be able to ship
quickly updates on those kernel modules, there are other limitation which have
been added:

Only kernel modules without any build and run dependencies are being built,
which means most of them but not all.

I plan to fix the missing ones.

Having kernel modules isolated in their own packages is anyway a good idea as it
helps people on stable and current quickly falling back on their feet when a
kernel update breaks: it is faster to rebuild, and require less ressources.

As a result you can see open-vm-tools has been split into open-vm-tools and
open-vm-kmod.

The day we have thing repository incorporated into poudriere we will be able to
revisit the way

To be able to use those new repositories:

this is the repository configuration for packages built our of the main branch

> https://people.freebsd.org/~bapt/kmods-latest.conf.txt

for completion we also started building on quarterly branches, but keep in mind
that all the above changes are only in main now and will be in quarterly only in
january

> https://people.freebsd.org/~bapt/kmods-quarterly.conf.txt

Best regards,
Bapt

Reply via email to