[pve-devel] refactoring of pve-kernel packages

Fabian Gr├╝nbichler f.gruenbichler at proxmox.com
Mon Mar 12 13:41:04 CET 2018

a long overdue refactoring of our kernel build scripts and the
kernel-related has now been completed.

short summary:

- all kernel-related packages are now built using dpkg-buildpackage
- proxmox-ve got moved into its own git repository / source package
- pve-headers got renamed to pve-headers-4.13
- a new pve-kernel-4.13 was introduced
- pve-headers-4.13/pve-kernel-4.13 got moved into their own git
  repository/source package (pve-kernel-meta)
- dependencies were adjusted accordingly

the new structure looks like this (REPO / PACKAGES):

- proxmox-ve / proxmox-ve: top-level meta package
- pve-kernel-meta / pve-kernel-4.13, pve-headers-4.13: latest 4.13
  kernel series meta packages
- pve-kernel / pve-kernel-4.13.13-6-pve, pve-headers-4.13.13-6-pve,
  linux-tools-4.13: 4.13.13-6-pve kernel image, headers and perf
- pve-firmware / pve-firmware: firmware package, unchanged

the following are installed by default and are required (-> == depends)

proxmox-ve -> pve-kernel-4.13 -> pve-kernel-4.13.13-6-pve
                    |----------> pve-firmware

the following are optional:
pve-headers-4.13 -> pve-headers-4.13.13-6-pve

based on this refactoring, a first preview build based on Ubuntu
Bionic's 4.15 kernel has been branched off in pve-kernel and
pve-kernel-meta. this allows testing users to track the latest 4.15
kernels once they have installed the meta package pve-kernel-4.15 (and
optionally, pve-headers-4.15 for headers). the 4.15 based kernels
currently do not contain any of the out-of-tree Intel NIC drivers, as
those are not (yet) compatible. whether this removal is final or not
will be re-evaluated at some point in the future.

when we are satisfied with the stability of the 4.15 kernel, we simply
switch proxmox-ve to depend on pve-kernel-4.15 instead of
pve-kernel-4.13 to change the default (and optionally, upload a final
pve-kernel-4.13 package stating that it is no longer needed and can
safely be removed).

- pve-kernel will be bumped just like before on every new kernel release
- pve-kernel-meta only needs to be updated if pve-kernel had an ABI bump
- proxmox-ve only needs to be updated if we do a minor release, add new
  top-level dependencies or switch kernel series

the kernel ABI and PKGREL numbers for pve-kernel and pve-kernel-meta are
reset to 1 when starting a new kernel series. the PKGREL value of
pve-kernel-meta will be incremented independently from that of
pve-kernel (this is how most distros handle their kernel meta packages).

the kernel packages themselves contain the same files, some package
metadata has changed, and some objects that have not been stripped
before are stripped now. as an added bonus, everything except the binary
kernel image itself and the perf binary is now reproducible, so future
packaging changes are much easier to review.

feedback highly appreciated - built packages are available on pvetest
already! announcement on pve-users and forum will follow later today.

More information about the pve-devel mailing list