Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 61604 - alsa driver cannot be installed when making GRP with USE="alsa" in specfile.
Summary: alsa driver cannot be installed when making GRP with USE="alsa" in specfile.
Status: RESOLVED INVALID
Alias: None
Product: Gentoo Hosted Projects
Classification: Unclassified
Component: Catalyst (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: John Davis (zhen) (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-08-25 01:00 UTC by Lluís Batlle i Rossell
Modified: 2004-12-09 05:41 UTC (History)
0 users

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


Attachments
Adds a 'injset' type for packages to be injected. (grp-chroot.sh.diff,969 bytes, text/plain)
2004-08-26 07:02 UTC, Lluís Batlle i Rossell
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Lluís Batlle i Rossell 2004-08-25 01:00:32 UTC
That's because if USE="alsa" is used, some packages require virtual/alsa, that is alsa-driver. It requires kernel headers.
Installing linux-sources doesn't help (as alsa requires them).

Maybe there should be a "emerge -i virtual/alsa" somewhere... Maybe a "injected packages" section in grp specfiles?

Reproducible: Always
Steps to Reproduce:
1. Create a specfile for GRP which has USE="alsa"
2. Run catalyst to create that GRP.

Actual Results:  
It tries to install alsa-driver, and fails.

Expected Results:  
Do not require alsa-driver.
Comment 1 Lluís Batlle i Rossell 2004-08-26 07:02:36 UTC
Created attachment 38242 [details]
Adds a 'injset' type for packages to be injected.

Well, the file is a 'patch', but I don't have cvs access, so I cannot generate
a good file for 'patch' unix utility. :)
That's a diff from old to new file content.
Please test it. It works for me.
Comment 2 Lluís Batlle i Rossell 2004-08-26 07:08:47 UTC
(I added that file (grp-chroot.sh.diff). I didn't know how bugzilla worked... So here is the explanation. :)

I've changed "grp-chroot.sh" to allow new type "injset", for packages to be injected. Thanks to that, a new grp type can be added, that way:

grp/inject/type: injset
grp/inject/packages:
        alsa-driver
Comment 3 Lluís Batlle i Rossell 2004-08-26 07:11:09 UTC
Oh. I thought "WORKSFORME" wasn't at closed state.

The bug isn't closed. Or is it? The change isn't in CVS.
Well, I won't touch this bugzilla anymore that way.

Excuses.
Comment 4 John Davis (zhen) (RETIRED) gentoo-dev 2004-08-26 22:23:10 UTC
actually, the correct way to do this is to add kernel sources dependent packages to "boot/kernel/$x/packages" where x is the name of the kernel specified in "boot/kernel".
Comment 5 Lluís Batlle i Rossell 2004-08-30 07:48:41 UTC
Ok John. Bug is reopened.
Comment 6 John Davis (zhen) (RETIRED) gentoo-dev 2004-08-30 08:04:50 UTC
Thanks, I will look into it!
Comment 7 John Davis (zhen) (RETIRED) gentoo-dev 2004-08-30 18:38:41 UTC
actually, wouldn't this fail anyway due to the lack of header files? alsa would probably just bail anyway... 

I think that most packages would be like this. Would an option like this really be that beneficial?
Comment 8 Lluís Batlle i Rossell 2004-08-31 02:24:21 UTC
alsa-driver cannot find kernel header files, as there isn't a kernel installed (so there aren't kernel include files in /usr/include).

That way, injecting alsa-driver makes everything to work.

I don't understand the use of "bail" there. Can you write that sentence in another way? :) Sorry, I'm not English native, and using a dictionary didn't help.
Comment 9 John Davis (zhen) (RETIRED) gentoo-dev 2004-09-03 09:49:53 UTC
sorry for the jargon :) bail is slang for "stopping due to an error". The context is similar to that of jumping out of a sinking ship or jumping out of a crashing airplane (I am bailing out of the airplane).

Regardless, I misread your comment. I will be adding this feature into catalyst CVS soon.
Comment 10 Chris Gianelloni (RETIRED) gentoo-dev 2004-12-07 15:23:05 UTC
Well, the normal solution for this would be to move the offending packages to livecd-stage2 under either a boot/kernel/$kname/postconf or boot/kernel/$kname/packages, as you don't really want to inject the package, but rather to fulfill the virtual.

Also, if you're using a kernel sources that fills this virtual (the reason for injection), then just add the sources into livecd-stage1 before the rest of the packages.

Besides, package injection has been deprecated by package.provided, which is usable by using the portage_confdir setting in your spec files.

Either way, this functionality is already present in catalyst, just not 100% how you requested it.  Personally, I don't think this should be added to catalyst simply because it is using a deprecated interface to portage.

John, if you disagree, feel free to REOPEN this one.
Comment 11 Chris Gianelloni (RETIRED) gentoo-dev 2004-12-07 15:23:26 UTC
Oh yeah... and reassign to catalyst@.... :P
Comment 12 Lluís Batlle i Rossell 2004-12-07 15:33:11 UTC
I've been dealing with the newest portage... I changed the code of my 'catalyst' about 'injection', to that which supplies 'provided'.

I haven't merged my catalyst tree (the one I use) with the current CVS one. I will. :) I promise.

By now I have a 'dirdiff' opened, for merging the files. hehehe. I should have maintained a changelog of the changes to catalyst 1.0.9  :)
Maybe I should check the log of my subversion.

I completely agree with Chris.
Comment 13 Lluís Batlle i Rossell 2004-12-08 07:07:34 UTC
I want to use portage_confdir... but I see (in catalyst 1.1.0) that that option is related to stages.

The 'inject' proposal was related to the GRP... but the option you talk about is in "livecd_stage2" and in generic_stage catalyst modules.

So... do you think that this feature (about injection, "provided", or however you call it) should be in stages, instead of in GRP building?

- I even don't know if this is the best location for a discussion about this. Maybe the 'releng' list is better?
Comment 14 Lluís Batlle i Rossell 2004-12-09 05:41:27 UTC
Oh, I'm sorry. I forgot that the code about 'unpack' stages is in generic_stage_target.py

now that's working for me. thanks. :)