** Description changed: + [ Impact ] + + As the original bug description stated, detecting kernel API changes and + provide backward compatibility is always a difficult problem, and it can + be even worse when they can be cherry-picked out of the upstream order + for every reason. + + In this issue we copied the core parts of zfs-linux build time configure + mechanism based on autotools, and add corresponding marcos, changes to + detect the API changes that doesn't follow the expected order from the + upstream. + + [ Test Plan ] + + 1. For Plucky, install all mainline kernel headers since v4.14 and that + of v4.13 from https://kernel.ubuntu.com/mainline/. Note that some of the + v5.10 kernels are broken and no kernel module can be built against + (https://bugs.launchpad.net/ubuntu/+source/backport-iwlwifi- + dkms/+bug/2095143/comments/9), they are excluded. + + 2. Also for Plucky and Oracular, setup another build environment that + has all the -generic kernel headers available to the series installed. + + 3. For Jammy and Noble, install all the -oem and -generic kernel headers + available to the series. + + 4. Install backport-iwlwifi-dkms from the -proposed of the corresponding + series, or a prebuilt one from https://launchpad.net/~canonical-hwe- + team/+archive/ubuntu/experimental-dkms. + + 5. The dkms should be compiled automatically with the running kernel. To + compile it against all the just installed kernels: + + ``` + $ for k in $(dpkg -l| awk '$2 ~ /^linux-headers-.*-(generic)|(oem)$/ { print substr($2, length("linux-headers-") + 1); }'|sort -V -r); do sudo dkms install --force backport-iwlwifi/0~93.12955-gite723a6f0 -k $k || break; done + ``` + + [ Where problems could occur ] + + This introduced a build time kernel API availability detector the helps + determine whether a fix is necessary. It doesn't really change any + runtime behavior, but might add some slight overhead (< 1s) to the + build. + + [ Other Info ] + + Nominate for LTS releases Jammy and Noble for they are certainly going + to have stable kernel fixes from sub patch level >= 255. Noble is even + worse as it's not based on an upstream LTS kernel, but fetching stable + fixes from v6.6, v6.10, and even v6.11 and so on. + + Nominate for Oracular for it suffers from bug 2089385 that should really + be fixed with this build time kernel API detector. + + Nominate for Plucky as it's the development series. + + ========== original bug report ========== + We bump into a few problems when dealing with ABI/API breakages due to stable fixes backports: 1. KERNEL_VERSON has limits for the 3 numbers. They must be under 255 or saturated to 255. While stable updates can go way beyong, e.g. v4.4.302, v4.9.337, v4.14.336, v4.19.325, v5.4.288, the next one going break the ceiling soon is v5.10.232, and v5.15.175 is on the way, too. We cannot use KERNEL_VERSON to detect ABI/API changes in such cases. 2. Ubuntu kernels may backport those stable fixes out of the original order, meaning the applied version may differ between mainline/generic/derived kernels. 3. generic-6.8 is tracking v6.6.y and v6.10.y, and the KERNEL_VERSION will stay 6.8.12(?) forever, becase we simply cannot change it to 6.6.x nor 6.10.x. In these situations, we need some kind of build time detection, and zfs already has such mechanism. This is a follow-up for bug 2089385.
** Tags added: patch -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/2095138 Title: Failed to build against linux-generic 6.8 and 6.11 with stable backports: To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/backport-iwlwifi-dkms/+bug/2095138/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
