lirc-0.8.3pre1.ebuild has a dependency on virtual/linux-sources, but there is no version specified. Even if there were, I'm not sure it would work right. I have installed the latest gentoo-sources kernel source, but haven't yet compiled & rebooted. I'm running 2.6.17-gentoo-r8. When I try to emerge lirc to 0.8.3pre1, I get the following: /var/tmp/portage/app-misc/lirc-0.8.3_pre1/work/lirc-0.8.3pre1/drivers/lirc_dev/lirc_dev.c:45:27: error: linux/uaccess.h: No such file or directory make[5]: *** [/var/tmp/portage/app-misc/lirc-0.8.3_pre1/work/lirc-0.8.3pre1/drivers/lirc_dev/lirc_dev.o] Error 1 make[4]: *** [_module_/var/tmp/portage/app-misc/lirc-0.8.3_pre1/work/lirc-0.8.3pre1/drivers/lirc_dev] Error 2 make[4]: Leaving directory `/usr/src/linux-2.6.17-gentoo-r8' make[3]: *** [lirc_dev.o] Error 2 make[3]: Leaving directory `/var/tmp/portage/app-misc/lirc-0.8.3_pre1/work/lirc-0.8.3pre1/drivers/lirc_dev' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/var/tmp/portage/app-misc/lirc-0.8.3_pre1/work/lirc-0.8.3pre1/drivers' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/app-misc/lirc-0.8.3_pre1/work/lirc-0.8.3pre1' make: *** [all] Error 2 * * ERROR: app-misc/lirc-0.8.3_pre1 failed. * Call stack: * ebuild.sh, line 1701: Called dyn_compile * ebuild.sh, line 1039: Called qa_call 'src_compile' * ebuild.sh, line 44: Called src_compile * ebuild.sh, line 1383: Called linux-mod_src_compile * linux-mod.eclass, line 519: Called die * The specific snippet of code: * emake HOSTCC="$(tc-getBUILD_CC)" CC="$(get-KERNEL_CC)" LDFLAGS="$(get_abi_LDFLAGS)" \ * ${BUILD_FIXES} ${BUILD_PARAMS} ${BUILD_TARGETS} \ * || die "Unable to make ${BUILD_FIXES} ${BUILD_PARAMS} ${BUILD_TARGETS}." * The die message: * Unable to make all. * * If you need support, post the topmost build error, and the call stack if relevant. * A complete build log is located at '/var/log/portage/app-misc:lirc-0.8.3_pre1:20080206-214457.log'. * And its right - /usr/src/linux/include/linux/uaccess.h doesn't exist (/usr/src/linux points to /usr/src/linux-2.6.17-gentoo-r8. /usr/src/linux-2.6.23-gentoo-r6/inclued/linux/uaccess.h does exist. Somehow, the ebuild needs to have a minimum build version, and it needs to make sure its actually booted in to the kernel its going to build against. Reproducible: Always Steps to Reproduce: 1. install an older kernel (as I said, I'm running 2.6.17 - I'm not sure when linux/uaccess.h was added) 2. link /usr/src/linux to the older kernel 3. build lirc. Actual Results: See portage error above Expected Results: It should either compile, or should detect the failure cleanly and give a useful error message, ie "Need to compile/run against 2.6.XX or later."
As you noted, such dependencies do not work at all... We also really don't support 2.6.17 kernels, doesn't even exist in the tree, sorry.
gentoo-sources-2.6.16-r13.ebuild still exists, and I guarantee that has the same problem. linux/uaccess.h was added in 2.6.18. It just seems like something that should die more gracefully
Yeah, install some of the old lirc versions if you feel like running legacy kernels.