[Pkg-lirc-maint] Bug#588027: FTBFS: lirc-modules/lirc_i2c.c:399: error: unknown field ‘id’ specified in initializer

Stefan Lippers-Hollmann s.L-H at gmx.de
Sun Jul 11 23:02:17 UTC 2010


retitle 588027 lirc_i2c fails to build against linux >= 2.6.32
reassign 588027 lirc-modules-source
severity 588027 important
thanks

Hi

On Monday 12 July 2010, Peter Baumann wrote:
> Package: lirc

No, there isn't any problem with 'lirc', all of its 41 userspace drivers 
are still working fine. The "only" problem is with the lirc_i2c module in
'lirc-modules-source'; reassigning accordingly.

> Version: 0.8.3-5
> Severity: grave
> Justification: renders package unusable
> 
> Trying to build lirc-modules-source with m-a fails with the following
> compile error. This renders the package unusable and unappropriate for
> squeeze.

One (lirc_i2c) module out of 14 fails to build against 2.6.32, while this 
needs to be fixed urgently, I don't consider it to "render[s] the package 
unusable and unappropriate for squeeze" for all users and (even common) 
configurations. Even less, as building lirc_i2c can be disabled through 
debconf. Therefore I'm downgrading the severity of this bug from RC to 
"important".

$ dpkg --contents lirc-modules-2.6.32-5-686_0.8.3-5+2.6.32-17_i386.deb | grep lib\\/modules.*ko$
-rw-r--r-- root/root      5916 2010-07-12 00:22 ./lib/modules/2.6.32-5-686/misc/lirc_bt829.ko
-rw-r--r-- root/root     15437 2010-07-12 00:22 ./lib/modules/2.6.32-5-686/misc/lirc_sasem.ko
-rw-r--r-- root/root     10813 2010-07-12 00:22 ./lib/modules/2.6.32-5-686/misc/lirc_igorplugusb.ko
-rw-r--r-- root/root     13332 2010-07-12 00:22 ./lib/modules/2.6.32-5-686/misc/lirc_streamzap.ko
-rw-r--r-- root/root     23638 2010-07-12 00:22 ./lib/modules/2.6.32-5-686/misc/lirc_atiusb.ko
-rw-r--r-- root/root      9592 2010-07-12 00:22 ./lib/modules/2.6.32-5-686/misc/lirc_cmdir.ko
-rw-r--r-- root/root     12592 2010-07-12 00:22 ./lib/modules/2.6.32-5-686/misc/lirc_mceusb.ko
-rw-r--r-- root/root     18103 2010-07-12 00:22 ./lib/modules/2.6.32-5-686/misc/lirc_mceusb2.ko
-rw-r--r-- root/root     15167 2010-07-12 00:22 ./lib/modules/2.6.32-5-686/misc/commandir.ko
-rw-r--r-- root/root     18491 2010-07-12 00:22 ./lib/modules/2.6.32-5-686/misc/lirc_imon.ko
-rw-r--r-- root/root     18757 2010-07-12 00:22 ./lib/modules/2.6.32-5-686/misc/lirc_serial.ko
-rw-r--r-- root/root     11831 2010-07-12 00:22 ./lib/modules/2.6.32-5-686/misc/lirc_sir.ko
-rw-r--r-- root/root     16454 2010-07-12 00:22 ./lib/modules/2.6.32-5-686/misc/lirc_dev.ko
-rw-r--r-- root/root     15599 2010-07-12 00:22 ./lib/modules/2.6.32-5-686/misc/lirc_it87.ko

Yes, I'm aware that this situation becomes worse in kernels >> 2.6.32, like
those present in experimental and that lirc needs to be fixed. However this
situation isn't as easy as it looks:
- the most current lirc upstream version needs patching for 
  kernel >= 2.6.32 support just as well (done in svn); 0.8.7 hasn't been 
  released yet.
- 'lirc' >= 0.8.6 introduces an FTBS on kfreebsd-{amd64,i386} (not fixed 
  yet)
- lirc >= 0.8.6 breaks the long standing ABI between kernel- and userspace, 
  therefore upgrades affecting 'lirc' and 'lirc-modules-$(uname -r) must
  happen in lockstep (which doesn't seem to be easily expressable in 
  packaging terms).
- serious debconf refactoring is still pending, to meet 3.9.0 policy 
  requirements (started in svn, but not finished yet).

Any help with these issues is always seriously appreciated, especially in 
regards to the mandatory debconf changes - which is the most blocking 
sub-topic (and also preventing yet another 0.8.3 upload).

> sudo m-a --verbose --text-mode build lirc
[...]
> # build module
> /usr/bin/make -C /usr/src/modules/lirc-modules KSRC=/lib/modules/2.6.32-5-amd64/build
> make[2]: Entering directory `/usr/src/modules/lirc-modules'
> /usr/bin/make -C /lib/modules/2.6.32-5-amd64/build SUBDIRS=/usr/src/modules/lirc-modules modules
> make[3]: Entering directory `/usr/src/linux-headers-2.6.32-5-amd64'
>   CC [M]  /usr/src/modules/lirc-modules/lirc_dev.o
>   CC [M]  /usr/src/modules/lirc-modules/lirc_i2c.o
> /usr/src/modules/lirc-modules/lirc_i2c.c:399: error: unknown field ‘id’ specified in initializer
> /usr/src/modules/lirc-modules/lirc_i2c.c:399: warning: initialization makes pointer from integer without a cast
> make[6]: *** [/usr/src/modules/lirc-modules/lirc_i2c.o] Error 1
[...]

If you don't need lirc_i2c for your hardware, you could disable it through 
"dpkg-reconfigure lirc-modules-source" (however debconf selection of kernel
modules will be dropped in future versions). 

Alternatively the following patch would fix kernel 2.6.32 compatibility for
lirc_i2c in lirc-modules-source 0.8.3-5 (tested on i386 and default module 
selection):


--- a/drivers/lirc_i2c/lirc_i2c.c
+++ b/drivers/lirc_i2c/lirc_i2c.c
@@ -399,8 +399,8 @@ static struct i2c_driver driver = {
 		.name	= "i2c ir driver",
 	},
 #endif
-	.id		= I2C_DRIVERID_EXP3, /* FIXME */
 #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 31)
+	.id		= I2C_DRIVERID_EXP3, /* FIXME */
 	.attach_adapter	= ir_probe,
 	.detach_client	= ir_remove,
 #else


Regards
	Stefan Lippers-Hollmann
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.alioth.debian.org/pipermail/pkg-lirc-maint/attachments/20100712/44604108/attachment.pgp>


More information about the Pkg-lirc-maint mailing list