Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 144951 - lirc-0.8.0-r5 ebuild supports only one driver
Summary: lirc-0.8.0-r5 ebuild supports only one driver
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Matthias Schwarzott
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: lirc-tracker
  Show dependency tree
 
Reported: 2006-08-24 03:23 UTC by Karl H
Modified: 2006-12-01 06:38 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
patch to allow multiple driver builds (lirc-0.8.0-r5-ebuild.patch,719 bytes, patch)
2006-08-24 04:31 UTC, Karl H
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Karl H 2006-08-24 03:23:31 UTC
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.
Comment 1 Jakub Moc (RETIRED) gentoo-dev 2006-08-24 04:11:30 UTC
That's by design, as the message tells you.
Comment 2 Karl H 2006-08-24 04:31:19 UTC
Created attachment 95002 [details, diff]
patch to allow multiple driver builds

with this patch you can use:
LIRC_DEVICES="serial irman"
Comment 3 Karl H 2006-08-24 04:32:28 UTC
by removing the "die" on multiple drivers with the attached patch you can use multiple drivers eg:
LIRC_DEVICES="serial irman"
Comment 4 Jakub Moc (RETIRED) gentoo-dev 2006-08-24 04:35:07 UTC
We don't need a patch, we know how to enable it, but it's disabled *intentionally*. 
Comment 5 Karl H 2006-08-24 05:37:54 UTC
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.  
Comment 6 Karl H 2006-08-24 05:43:40 UTC
If there is a dependency, link to it.  why LATER?
Comment 7 Jakub Moc (RETIRED) gentoo-dev 2006-08-24 06:05:05 UTC
Sigh, just read the ebuild perhaps? It's written there.
Comment 8 Karl H 2006-08-24 06:14:21 UTC
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..
Comment 9 Matthias Schwarzott gentoo-dev 2006-08-24 12:03:52 UTC
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.
Comment 10 Karl H 2006-08-24 13:58:59 UTC
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. 
Comment 11 Karl H 2006-08-27 09:32:51 UTC
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?
Comment 12 Matthias Schwarzott gentoo-dev 2006-09-16 09:55:50 UTC
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.
Comment 13 Matthias Schwarzott gentoo-dev 2006-12-01 06:38:48 UTC
Now allowing more than one driver (with warning) in lirc-0.8.0-r7.