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     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to