Tested evdi-dkms module that already has this rule
BUILD_EXCLUSIVE_KERNEL="CONFIG_I2C CONFIG_DRM" with
jammy:linux-kvm(5.15.0-1033-kvm) that has these configs disabled.
Scenario 1:
old dkms version(2.8.7-2ubuntu2.1) without BUILD_EXCLUSIVE_KERNEL. Expectation:
build is done and it fails because of missing config options.
$ sudo apt install evdi-dkms
Building for 5.15.0-1033-kvm
Building initial module for 5.15.0-1033-kvm
ERROR: Cannot create report: [Errno 17] File exists:
'/var/crash/evdi-dkms.0.crash'
Error! Bad return status for module build on kernel: 5.15.0-1033-kvm (x86_64)
Consult /var/lib/dkms/evdi/1.12.0+dfsg/build/make.log for more information.
...
/var/lib/dkms/evdi/1.12.0+dfsg/build/evdi_i2c.c: In function ‘evdi_i2c_add’:
/var/lib/dkms/evdi/1.12.0+dfsg/build/evdi_i2c.c:49:16: error: implicit
declaration of function ‘i2c_add_adapter’; did you mean ‘i2c_verify_adapter’?
[-Werror=implicit-function-declaration]
49 | return i2c_add_adapter(adapter);
| ^~~~~~~~~~~~~~~
| i2c_verify_adapter
/var/lib/dkms/evdi/1.12.0+dfsg/build/evdi_i2c.c: In function ‘evdi_i2c_remove’:
/var/lib/dkms/evdi/1.12.0+dfsg/build/evdi_i2c.c:54:9: error: implicit
declaration of function ‘i2c_del_adapter’; did you mean ‘i2c_verify_adapter’?
[-Werror=implicit-function-declaration]
54 | i2c_del_adapter(adapter);
| ^~~~~~~~~~~~~~~
| i2c_verify_adapter
cc1: some warnings being treated as errors
make[1]: *** [scripts/Makefile.build:297:
/var/lib/dkms/evdi/1.12.0+dfsg/build/evdi_i2c.o] Error 1
make: *** [Makefile:1907: /var/lib/dkms/evdi/1.12.0+dfsg/build] Error 2
Scenario 2:
new dkms version(2.8.7-2ubuntu2.2) with BUILD_EXCLUSIVE_KERNEL. Expectation:
build is skipped because of missing config options:
$ uname -a
Linux jammy-kvm 5.15.0-1033-kvm #38-Ubuntu SMP Fri Apr 21 17:30:00 UTC 2023
x86_64 x86_64 x86_64 GNU/Linux
$ sudo apt install evdi-dkms
Loading new evdi-1.12.0+dfsg DKMS files...
Building for 5.15.0-1033-kvm
Building initial module for 5.15.0-1033-kvm
Error! The /var/lib/dkms/evdi/1.12.0+dfsg/5.15.0-1033-kvm/x86_64/dkms.conf for
module evdi includes a BUILD_EXCLUSIVE directive which does not match this
kernel/arch.
The /var/lib/dkms/evdi/1.12.0+dfsg/5.15.0-1033-kvm/x86_64/dkms.conf for module
evdi includes a BUILD_EXCLUSIVE directive which does not match this
kernel/arch/config.
This indicates that it should not be built.
Skipped.
This new package works as expected, all good.
** Tags removed: verification-needed-jammy
** Tags added: verification-done-jammy
--
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to dkms in Ubuntu.
https://bugs.launchpad.net/bugs/2012612
Title:
Add new feature BUILD_EXCLUSIVE_CONFIG to jammy as well
Status in dkms package in Ubuntu:
Fix Released
Status in dkms source package in Jammy:
Fix Committed
Status in dkms source package in Kinetic:
Fix Released
Bug description:
[SRU Justification]
Impact:
Some dkms modules (like evdi-dkms) have this rule BUILD_EXCLUSIVE_CONFIG
which prevent it from building if a specific configuration is enabled/disabled.
This feature was released for kinetic but not for jammy.
This backports the patch to jammy as well.
[racb] This feature is required as the simplest way to deal with some
of the HWE DKMS fixes needed in Jammy such as in bug 2012412.
Fix:
Backported BUILD_EXCLUSIVE_CONFIG.patch from kinetic.
In order to be applied, I had to slightly modify the first junk. Other than
that, it was a clean backport.
[Testcase]
$ sudo apt install linux-image-kvm linux-headers-kvm
$ sudo apt install evdi-dkms
Before the fix, it will fail with this error:
DKMS make.log for evdi-1.12.0+dfsg for kernel 5.15.0-1029-kvm (x86_64)
Thu Mar 23 10:10:14 UTC 2023
make: Entering directory '/usr/src/linux-headers-5.15.0-1029-kvm'
CC [M] /var/lib/dkms/evdi/1.12.0+dfsg/build/evdi_platform_drv.o
CC [M] /var/lib/dkms/evdi/1.12.0+dfsg/build/evdi_platform_dev.o
CC [M] /var/lib/dkms/evdi/1.12.0+dfsg/build/evdi_sysfs.o
CC [M] /var/lib/dkms/evdi/1.12.0+dfsg/build/evdi_modeset.o
CC [M] /var/lib/dkms/evdi/1.12.0+dfsg/build/evdi_connector.o
CC [M] /var/lib/dkms/evdi/1.12.0+dfsg/build/evdi_encoder.o
CC [M] /var/lib/dkms/evdi/1.12.0+dfsg/build/evdi_drm_drv.o
CC [M] /var/lib/dkms/evdi/1.12.0+dfsg/build/evdi_fb.o
CC [M] /var/lib/dkms/evdi/1.12.0+dfsg/build/evdi_gem.o
CC [M] /var/lib/dkms/evdi/1.12.0+dfsg/build/evdi_painter.o
CC [M] /var/lib/dkms/evdi/1.12.0+dfsg/build/evdi_params.o
CC [M] /var/lib/dkms/evdi/1.12.0+dfsg/build/evdi_cursor.o
CC [M] /var/lib/dkms/evdi/1.12.0+dfsg/build/evdi_debug.o
CC [M] /var/lib/dkms/evdi/1.12.0+dfsg/build/evdi_i2c.o
/var/lib/dkms/evdi/1.12.0+dfsg/build/evdi_i2c.c: In function ‘evdi_i2c_add’:
/var/lib/dkms/evdi/1.12.0+dfsg/build/evdi_i2c.c:49:16: error: implicit
declaration of function ‘i2c_add_adapter’; did you mean ‘i2c_verify_adapter’?
[-Werror=implicit-function-declaration]
49 | return i2c_add_adapter(adapter);
| ^~~~~~~~~~~~~~~
| i2c_verify_adapter
/var/lib/dkms/evdi/1.12.0+dfsg/build/evdi_i2c.c: In function
‘evdi_i2c_remove’:
/var/lib/dkms/evdi/1.12.0+dfsg/build/evdi_i2c.c:54:9: error: implicit
declaration of function ‘i2c_del_adapter’; did you mean ‘i2c_verify_adapter’?
[-Werror=implicit-function-declaration]
54 | i2c_del_adapter(adapter);
| ^~~~~~~~~~~~~~~
| i2c_verify_adapter
cc1: some warnings being treated as errors
make[1]: *** [scripts/Makefile.build:297:
/var/lib/dkms/evdi/1.12.0+dfsg/build/evdi_i2c.o] Error 1
make: *** [Makefile:1906: /var/lib/dkms/evdi/1.12.0+dfsg/build] Error 2
make: Leaving directory '/usr/src/linux-headers-5.15.0-1029-kvm'
This fails because CONFIG_I2C=n for a KVM kernel derivative.
Even though evdi has this build rule: BUILD_EXCLUSIVE_CONFIG="CONFIG_I2C
CONFIG_DRM"
After the fix, it will not build:
Building initial module for 5.15.0-1029-kvm
Error! The /var/lib/dkms/evdi/1.12.0+dfsg/5.15.0-1029-kvm/x86_64/dkms.conf
for module evdi includes a BUILD_EXCLUSIVE directive which does not match this
kernel/arch.
The /var/lib/dkms/evdi/1.12.0+dfsg/5.15.0-1029-kvm/x86_64/dkms.conf for
module evdi includes a BUILD_EXCLUSIVE directive which does not match this
kernel/arch/config.
This indicates that it should not be built.
Skipped.
[Regression potential]
Very low, this is just a simple feature to prevent building a module.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/dkms/+bug/2012612/+subscriptions
--
Mailing list: https://launchpad.net/~kernel-packages
Post to : [email protected]
Unsubscribe : https://launchpad.net/~kernel-packages
More help : https://help.launchpad.net/ListHelp