Summary: | lirc-0.8.0-r5 ebuild supports only one driver | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Karl H <karl> |
Component: | New packages | Assignee: | Matthias Schwarzott <zzam> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | jakub, karl |
Priority: | High | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 122774 | ||
Attachments: | patch to allow multiple driver builds |
That's by design, as the message tells you. Created attachment 95002 [details, diff]
patch to allow multiple driver builds
with this patch you can use:
LIRC_DEVICES="serial irman"
by removing the "die" on multiple drivers with the attached patch you can use multiple drivers eg: LIRC_DEVICES="serial irman" We don't need a patch, we know how to enable it, but it's disabled *intentionally*. Please explain why, or link to a reason why it is *intentionally* crippled. I and others need to support multiple types of devices. If there is an upstream bug where certian drivers do not work together, then that is not a gentoo problem. I really need an ebuild that works. If there is a dependency, link to it. why LATER? Sigh, just read the ebuild perhaps? It's written there. What is in the ebuild: #ewarn "When selecting multiple devices for lirc to be supported," #ewarn "it can not be garanteed that the drivers play nice together." ewarn "lirc does at the moment support only one driver be compiled at a time." ewarn "Please reduce LIRC_DEVICES to one item." die "Multiple drivers selected for lirc." ... What i need and say that compiles and works is: LIRC_DEVICES="serial irman" There is no need to "die" in this case. The old way of LIRC_OPTS could do this.. I understand that this restriction seems like nonsense but at least it is not so easy possible to compile more than one driver that creates a kernel-modules. That statement can be proved by looking at that part of configure.in of lirc: if test "$driver" = "act200l"; then lirc_driver="lirc_dev lirc_sir" AC_DEFINE(LIRC_SIR_ACTISYS_ACT200L) fi if test "$driver" = "atiusb"; then lirc_driver="lirc_dev lirc_atiusb" lircd_conf="atiusb/lircd.conf.atiusb" fi ... repeated for all possibilities of --with-driver The problem here is that lirc_driver is overwritten for every driver that need a kernel module. -> Only for the last setting a Kernel-module is compiled. For your combination this will work as only --with-driver=serial will create a kernel-module. The possibilities are: a) Call configure for every --with-driver and copy the kernel-module. b) Change lirc_driver="xyz" to lirc_driver="${lirc_driver} xyz". Both possibilities will work for cases that no kernel-module is compiled two times with different options. But in every case compiling more than one driver should give a big fat warning about it. Option A, I belive will break some configurations, where lircd will not run because it will say it was compliled with out support for driver xyx. I would vote for Option B. I am aware of the lirc limitation with kernel drivers, that is a lirc (upstream) limitation that I can live with. There are a few userspace lirc drivers that can be used at the same time. Having the gentoo ebuild support this would be nice. Yes, a big fat warning is needed. Bug# 131306 https://bugs.gentoo.org/show_bug.cgi?id=131306 is where this was introduced. The old LIRC_OPTS, was in general more flexible than the new LIRC_DEVICES.. LIRC_DEVICES allowed to check dependencies on other needed libs. Would it perhaps be possible to use LIRC_DEVICES as default to solve dependencies, but have LIRC_OPTS override the configure opts if wanted? Option B as described does not work so easily but requires huge changes to the configure-script. Perhaps Option A will work with first time calling configure with each option alone and for building lircd calling it with all arguments (or --with-driver=userspace). Requires a bit of investigation but then it should work. Now allowing more than one driver (with warning) in lirc-0.8.0-r7. |
It is a valid lirc configuration to have more than one driver at a time. With the old lirc ebuilds < 0.8.0-r1 you could do LIRC_OPTS="--with-driver=serial --with-driver=irman" now you should do: LIRC_DEVICES="serial irman" but it does not work. # emerge -av lirc These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R ] app-misc/lirc-0.8.0-r5 USE="X alsa transmitter* usb -debug -doc -hardware-carrier -udev" LIRC_DEVICES="irman serial* -act200l -act220l -adaptec -all -alsa_usb -animax -atilibusb -atiusb -audio -audio_alsa -avermedia -avermedia98 -avermedia_vdomate -bestbuy -bestbuy2 -breakoutbox -bte -bw6130 -caraca -chronos -cmdir -com1 -com2 -com3 -com4 -cph06x -creative -creative_infracd -devinput -digimatrix -dsp -dvico -ea65 -exaudio -flyvideo -gvbctv5pci -hauppauge -hauppauge_dvb -hercules_smarttv_stereo -igorplugusb -imon -imon_pad -imon_pad2keys -imon_rsc -irdeo -irdeo_remote -irreal -it87 -knc_one -kworld -leadtek_0007 -leadtek_0010 -leadtek_pvr2000 -livedrive_midi -livedrive_seq -logitech -lpt1 -lpt2 -mceusb -mceusb2 -mediafocusI -mouseremote -mouseremote_ps2 -mp3anywhere -nslu2 -packard_bell -parallel -pcmak -pcmak_usb -pctv -pixelview_bt878 -pixelview_pak -pixelview_pro -provideo -realmagic -remotemaster -sa1100 -sasem -serial_igor_cesko -silitek -sir -slinke -streamzap -tekram -tekram_bt829 -tira -tvbox -udp -uirt2 -uirt2_raw -usbirboy -userspace -xboxusb" 0 kB Would you like to merge these packages? [Yes/No] y >>> Emerging (1 of 1) app-misc/lirc-0.8.0-r5 to / >>> checking ebuild checksums ;-) >>> checking auxfile checksums ;-) >>> checking miscfile checksums ;-) >>> checking lirc-0.8.0.tar.bz2 ;-) * Determining the location of the kernel source code * Found kernel source directory: * /usr/src/linux * Found sources for kernel version: * 2.6.16.9 * Compiling support for device irman * * lirc does at the moment support only one driver be compiled at a time. * Please reduce LIRC_DEVICES to one item. !!! ERROR: app-misc/lirc-0.8.0-r5 failed. Call stack: ebuild.sh, line 1555: Called dyn_setup ebuild.sh, line 668: Called pkg_setup lirc-0.8.0-r5.ebuild, line 130: Called add_device 'serial' lirc-0.8.0-r5.ebuild, line 98: Called die !!! Multiple drivers selected for lirc. !!! If you need support, post the topmost build error, and the call stack if relevant.