View previous topic :: View next topic |
Author |
Message |
zoltar n00b
Joined: 10 Oct 2002 Posts: 66 Location: Calgary, Alberta, Canada
|
Posted: Thu Sep 23, 2004 5:35 pm Post subject: portage_2.0.51_rc1 and virtuals |
|
|
Man, I've been banging my head against this for hours. I know 2.0.51 is supposed to calculate virtuals on the fly but it doesn't seem to be working right. My emerge world has been wanting to install xorg-x11. I don't use xorg-x11, I use xorg-unichrome which I've placed in my /etc/portage/profile/package.provided (because I'm installing from CVS).
Anyway, the on-the-fly virtuals doesn't seem to pick this up as the virtual package for virtual/x11 so it keeps wanting to install xorg-x11. The only thing that works is to change the /etc/make.profile/virtuals file which gets reset after each sync. If I change virtual/x11 to x11-base/xorg-unichrome in this file, emerge is then happy and doesn't want to install xorg-x11.
This is not an ideal solution. Any help would be appreciated. |
|
Back to top |
|
|
wilburpan l33t
Joined: 21 Jan 2003 Posts: 977
|
Posted: Thu Sep 23, 2004 7:24 pm Post subject: |
|
|
I haven't played around with the on-the-fly virtuals yet, but how are you installing xorg-unichrome? Do you have an ebuild in a local portage tree? I would think that the virtuals calculator would scan local portage trees as well as /usr/portage. _________________ I'm only hanging out in OTW until I get rid of this stupid l33t ranking.....Crap. That didn't work. |
|
Back to top |
|
|
zoltar n00b
Joined: 10 Oct 2002 Posts: 66 Location: Calgary, Alberta, Canada
|
Posted: Thu Sep 23, 2004 7:41 pm Post subject: |
|
|
No, I think that may be the problem. I'm installing xorg-unichrome manually from CVS. Since 2.0.51 does not use emerge inject anymore, I added the xorg-unichrome entry to /etc/portage/profile/package.provided (I think that's what it's called). I don't think this file is being consulted when calculating virtuals. The xorg-unichrome ebuild (which I'm not using) is installed in the /usr/local/portage overlay. |
|
Back to top |
|
|
wilburpan l33t
Joined: 21 Jan 2003 Posts: 977
|
Posted: Thu Sep 23, 2004 7:55 pm Post subject: |
|
|
Warning: I really don't know what I'm talking about, but this is a pretty good educated guess.
I have the feeling that portage calculates virtuals by scanning what's been installed and the portage tree. If you are manually installing the cvs version of xorg-unichrome, then somehow portage has to be told that you did such a thing. Apparently your /etc/portage/profile/package.provided file isn't doing it.
One quick test: emerge the non-cvs version of xorg-unichrome you have using your ebuild in your local portage overlay, and see if /etc/make.profile/virtuals reflects that you are using xorg-unichrome. Then maybe you can manually build the cvs version over that. _________________ I'm only hanging out in OTW until I get rid of this stupid l33t ranking.....Crap. That didn't work. |
|
Back to top |
|
|
hepta_sean Apprentice
Joined: 27 Apr 2004 Posts: 246 Location: Berlin, Germany
|
Posted: Thu Sep 23, 2004 7:56 pm Post subject: Re: portage_2.0.51_rc1 and virtuals |
|
|
zoltar wrote: | The only thing that works is to change the /etc/make.profile/virtuals file which gets reset after each sync. If I change virtual/x11 to x11-base/xorg-unichrome in this file, emerge is then happy and doesn't want to install xorg-x11. |
The info at the end of an emerge of portage-2.0.51 says:
Code: | * /var/cache/edb/virtuals has been deprecated and is now calculated
* on demand. Strictly _USER_ modifications to virtuals may go into
* /etc/portage/profile/virtuals and will not be modified by portage. |
So, I would think, that you should put "x11-base/xorg-unichrome-WHATEVER-VERSION" in /etc/portage/profile/package.provided (as suggested by the deprecated-message of emerge inject) and "virtual/x11 x11-base/xorg-unichrome" in /etc/portage/profile/virtuals. Nothing will be overwritten by emerge sync.
But no guarantees, I have not installed anything by hand, and hence not tested this. |
|
Back to top |
|
|
zoltar n00b
Joined: 10 Oct 2002 Posts: 66 Location: Calgary, Alberta, Canada
|
Posted: Thu Sep 23, 2004 7:59 pm Post subject: |
|
|
hetpa_sean: Yes, I've done those things. Thanks though.
wilburpan: I think that's exactly the problem. I may try what you're suggesting but it takes a while to compile xorg. I may report this as a bug. |
|
Back to top |
|
|
hepta_sean Apprentice
Joined: 27 Apr 2004 Posts: 246 Location: Berlin, Germany
|
Posted: Thu Sep 23, 2004 8:32 pm Post subject: |
|
|
wilburpan, sorry, but I think you are wrong on some issues:
wilburpan wrote: | I have the feeling that portage calculates virtuals by scanning what's been installed and the portage tree. |
Yeah, the virtuals for each package are now recorded in the dependency cache. It's line 14 of the /var/cache/edb/dep/usr/portage/CATEGORY/PACKAGE-VERSION files in the cache, which are calculated from the ebuilds.
Quote: | If you are manually installing the cvs version of xorg-unichrome, then somehow portage has to be told that you did such a thing. Apparently your /etc/portage/profile/package.provided file isn't doing it. |
No, /etc/portage/profile/package.provided is the way to go, since it's the replacement for emerge inject, which was the way to tell portage, that a package was installed by hand.
I think the problem was, that portage does not know, from which package in the cache it should derive the provided virtuals. Hence, I think, it should work with /etc/portage/profile/virtuals.
Quote: | One quick test: emerge the non-cvs version of xorg-unichrome you have using your ebuild in your local portage overlay, and see if /etc/make.profile/virtuals reflects that you are using xorg-unichrome. |
That would really surprise me. /etc/make.profile is a symlink into the portage tree, which is not modified for specific machines by emerge, but synced against a static version on the mirrors.
IIRC, the /etc/make.profile/virtuals is not primarily consulted for calculation of installed virtual providers, but the packages in there are emerged, if no other provider could be found. So, the line "virtual/x11 x11-base/xorg-x11" means: "If you don't find a provider for virtual/x11, emerge x11-base/xorg-x11", but not "x11-base/xorg-x11 is the only provider of virtual/x11".
When zoltar modified the line, emerge was happy, so the /etc/portage/profile/package.provided stuff must have worked. Otherwise portage would have tried to emerge the tree version of x11-base/xorg-unichrome.
Quote: | Then maybe you can manually build the cvs version over that. |
I wouldn't do that. Sounds like really messing up your system.
zoltar wrote: | hetpa_sean: Yes, I've done those things. Thanks though. |
Just curious: What in that procedure did not work? In the first post you wrote, the problem is emerge sync overwriting the virtuals file. That positively cannot happen in /etc/portage, because emerge sync just accesses /usr/portage.
Anyway, one other thing you could try, is entering an equivalent version of xorg-x11 with full version in /etc/portage/profile/package.provided, so portage may be able to find information in the dependency cache. |
|
Back to top |
|
|
wilburpan l33t
Joined: 21 Jan 2003 Posts: 977
|
Posted: Thu Sep 23, 2004 9:07 pm Post subject: |
|
|
hepta_sean wrote: | wilburpan, sorry, but I think you are wrong on some issues: |
I'm very happy to be corrected. _________________ I'm only hanging out in OTW until I get rid of this stupid l33t ranking.....Crap. That didn't work. |
|
Back to top |
|
|
zoltar n00b
Joined: 10 Oct 2002 Posts: 66 Location: Calgary, Alberta, Canada
|
Posted: Thu Sep 23, 2004 10:36 pm Post subject: |
|
|
The problem is that even though I've put xorg-unichrome in the /etc/portage/profiles/package.provided, portage doesn't seem to take this information into account when calculating virtuals. However, it does work when I change /etc/make.profile/virtuals to be 'virtual/x11 x11-base/xorg-unichrome'. Therefore, I assume the package.provided is working except that it isn't taken into account when calculating virtuals.
Changing the /etc/make.profile/virtuals file after every sync is neither desirable nor convenient. |
|
Back to top |
|
|
Genone Retired Dev
Joined: 14 Mar 2003 Posts: 9507 Location: beyond the rim
|
Posted: Thu Sep 23, 2004 11:08 pm Post subject: |
|
|
package.provided doesn't affect virtuals (neither did inject btw). |
|
Back to top |
|
|
wilburpan l33t
Joined: 21 Jan 2003 Posts: 977
|
Posted: Fri Sep 24, 2004 12:02 am Post subject: |
|
|
zoltar -- perhaps you can file a bug? Overall, I've found that to be the best next step if the forums don't pan out -- after all, here you'll only get advice from people like me. _________________ I'm only hanging out in OTW until I get rid of this stupid l33t ranking.....Crap. That didn't work. |
|
Back to top |
|
|
oberyno Guru
Joined: 15 Feb 2004 Posts: 467 Location: /bin/zsh
|
Posted: Fri Sep 24, 2004 12:09 am Post subject: |
|
|
hepta_sean wrote: | I think the problem was, that portage does not know, from which package in the cache it should derive the provided virtuals. Hence, I think, it should work with /etc/portage/profile/virtuals.
| Did you try using that file instead? |
|
Back to top |
|
|
zoltar n00b
Joined: 10 Oct 2002 Posts: 66 Location: Calgary, Alberta, Canada
|
Posted: Fri Sep 24, 2004 4:49 am Post subject: |
|
|
Genone: that would explain my problem. Seems to me that it should. Thanks
oberyno: yes, I tried that file. |
|
Back to top |
|
|
Genone Retired Dev
Joined: 14 Mar 2003 Posts: 9507 Location: beyond the rim
|
Posted: Fri Sep 24, 2004 7:58 am Post subject: |
|
|
Just for clarification: package.provided tells portage that a package with that name/version is installed, it doesn't even look if that package actually exists or has an ebuild. If you need anything more (like virtuals) it's better to make an ebuild yourself with that information. |
|
Back to top |
|
|
chaumess n00b
Joined: 11 Sep 2003 Posts: 64
|
Posted: Fri Mar 04, 2005 9:08 pm Post subject: |
|
|
Hi, I too am planning to use a manually-built xorg-unichrome for my mythtv box. I was wondering if there was a final solution to this problem. I can't tell from reading the posts in this thread what the eventual solution was (or if there was one at all). Thanks for your help! |
|
Back to top |
|
|
|