LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Gentoo (https://www.linuxquestions.org/questions/gentoo-87/)
-   -   Emerge dead ebuilds (https://www.linuxquestions.org/questions/gentoo-87/emerge-dead-ebuilds-772713/)

RVF16 12-01-2009 11:24 AM

Emerge dead ebuilds
 
Hello to all.

I noticed there are dead ebuilds available in http://sources.gentoo.org/viewcvs.py/gentoo-x86/ (if you hit the "Show dead files" link).
Is there a way to make them available and installable on a gentoo system via emerge without downloading each needed package by hand?
Can i somehow enable them when running "emerge --sync"?

Thank you.
Regards.

Reason :
My system was installed several weeks ago and utilizes a 2.6.30 kernel.
I have an ATI Mobility Radeon X1400 and i am trying to utilise the ati-driver (not the radeon one). ATI drivers later than 9.3 don't support my card. In order for this to work i must downgrade the kernel and xorg (so that they can work with ATI 9.3). Kernel was simple but Xorg consists of several ebuilds and possibly several other dependencies and i need to revert to their older versions which are dead.

ShadowCat8 12-01-2009 12:30 PM

Quote:

Originally Posted by RVF16 (Post 3775859)
Hello to all.

I noticed there are dead ebuilds available in http://sources.gentoo.org/viewcvs.py/gentoo-x86/ (if you hit the "Show dead files" link).
Is there a way to make them available and installable on a gentoo system via emerge without downloading each needed package by hand?
Can i somehow enable them when running "emerge --sync"?

Thank you.
Regards.

Reason :
My system was installed several weeks ago and utilizes a 2.6.30 kernel.
I have an ATI Mobility Radeon X1400 and i am trying to utilise the ati-driver (not the radeon one). ATI drivers later than 9.3 don't support my card. In order for this to work i must downgrade the kernel and xorg (so that they can work with ATI 9.3). Kernel was simple but Xorg consists of several ebuilds and possibly several other dependencies and i need to revert to their older versions which are dead.

Well, sorta...

As of this writing (and having done an 'emerge --sync' yesterday), I still see xorg-server-1.5.3-r6.ebuild and xorg-server-1.5.3-r7.ebuild still in the current portage tree. Are these servers too new for your card? Try the following command:
Code:

~ # emerge -pv =x11-base/xorg-server-1.5.3-r7
If you have to go earlier than that, you are going to have to do *some* stuff manually, but the overall process can still be relatively painless. When you have downloaded and copied into the proper directory the ebuild that will work for you, you will then have to run the following command:
Code:

~ # ebuild /usr/portage/x11-base/xorg-server-<the working version>.ebuild manifest
to get the direct support files for that ebuild. (e.g. patches, checksums, etc.) After that, you should be able to emerge that version normally. As a note, the entire path, from "/usr" to ".ebuild" must be included.

There are other ways of handling this, too. For instance, you can create a portage overlay directory with the ebuilds that will support your hardware. There are a number of utilities that can help you with that like 'layman'. Another way is to mask the versions that won't support your hardware, via /etc/portage/package.mask.

HTH.

RVF16 12-01-2009 01:11 PM

Hello ShadowCat8 and thank you for the reply.

The fglrx module is actually depending on X.org 7.1.3.901 according to Xorg.0.log while i have the xorg-x11-7.4-r1 installed so this has to do with the xorg-x11 ebuild.

If i use the /usr/portage/ subdirectories won't everything be lost after next "emerge --sync"?

Seems to me the only way is via creating an overlay as you mentioned and putting there the needed ebuilds and masking newer versions.
The only thing is that i may end up resolving too many dependencies and downloading by hand one at a time too many ebuilds which is what i am trying to avoid. Is it impossible to make portage aware of the dead ebuilds easily and have then emerge resolve the dependencies?

Thanks.

i92guboj 12-02-2009 02:58 AM

Quote:

Originally Posted by RVF16 (Post 3775859)
Hello to all.

I noticed there are dead ebuilds available in http://sources.gentoo.org/viewcvs.py/gentoo-x86/ (if you hit the "Show dead files" link).
Is there a way to make them available and installable on a gentoo system via emerge without downloading each needed package by hand?
Can i somehow enable them when running "emerge --sync"?

Downloading every single file that has been in the past in portage would take a tremendous amount of time. But to answer your question, I don't know of any easy way to automate this. You will need to do some manual work.

Quote:

I have an ATI Mobility Radeon X1400 and i am trying to utilise the ati-driver (not the radeon one). ATI drivers later than 9.3 don't support my card. In order for this to work i must downgrade the kernel and xorg (so that they can work with ATI 9.3). Kernel was simple but Xorg consists of several ebuilds and possibly several other dependencies and i need to revert to their older versions which are dead.
This is going to be a real pain, and it will get only worse with the time. I am not going to insist on it but are you sure that the radeon driver is not the right choice for you? Isn't your card based on an r5xx chip? If that's true then radeon should give you everything you need, even 3d acceleration.

Surely if you don't do so you have your reasons, but maybe there's something you overlooked.

Quote:

Originally Posted by RVF16 (Post 3775962)
If i use the /usr/portage/ subdirectories won't everything be lost after next "emerge --sync"?

The correct way to maintain custom ebuilds is to put them in your own local overlay.

Quote:

The only thing is that i may end up resolving too many dependencies and downloading by hand one at a time too many ebuilds which is what i am trying to avoid. Is it impossible to make portage aware of the dead ebuilds easily and have then emerge resolve the dependencies?
Nope. However it's all cvs based, so it's technically possible to download a full portage snapshot for a given date. I really don't recommend that unless your box is gonna be sitting in a dark room without any internet connection. And anyway, that would require a full downgrade of virtually every package in your system, which will be accomplished in an easier way by a full reinstall, downgrading some things like glibc is next to impossible without lots of manual work and pain.

You would get basically the Gentoo from a couple of years ago, or whatever date you choose.

RVF16 12-02-2009 02:39 PM

Well its still early days for the radeon driver at least for my card.
glxgears run at one third of the fps under radeon and radeonhd drivers (3d is unbearable) compared to the fglrx and there is not tv out which i use a lot. Generally all graphics in gnome look slower. I have tried out every possible option in xorg.conf with no luck.

Anyway i can understand this is no easy task but after all that's why i am trying out Gentoo, because of its rolling release advantage and configuring capabilities. It was a big misfortune for me when AMD decided to drop support for my card leaving me no possible way to upgrade the kernel without messing my graphics (unless i use the slow radeon driver).

I played around with cvs a bit but it too doesn't download the dead ebuilds unless there is an option i am not aware.

Thanks.

i92guboj 12-02-2009 02:54 PM

There is really no easy way around this, and eventually it will just be impossible to use that driver at all even by using a local overlay (if it isn't already).

About the radeon driver, well, I doubt it's going to get any better for that chip, because it's already quite old and it is supposed to be well supported, including 3d, and even KMS with recent kernels. I can't be sure if it's going to work with your concrete card and I suppose that at this point you already tried a lot of things and it didn't work. However, if you decide to give it another try you might want to seek for help at the radeon mailing list itself.

I also guess that with "3d" you mean a real life situation, and not glxgears, because glxgears is not a benchmark, just a quick check, nothing else. People seem to rely on it as if its numbers were of any value, which they are not.

RVF16 12-03-2009 03:03 PM

I think the only way still remains to download everything locally, create an overlay and use layman. I'll probably have to emerge old gcc and glibc ebuilds manually first and then the rest. I'd like to try this out but i find no way to download all dead ebuilds other than one at a time by hand and i am not willing to do so. cvs also doesn't download dead ebuilds, why is this?

In case of arch linux things seem more probable as there is a mirror www.schlunix.org that holds old packages for all repos. I can probably use firefox with downthemall addon to download all packages as each repo list of packages (binaries) resides in one single folder.

In case of gentoo there are handreds of folders with subfolders that contain the ebuilds, patches and manifests. Does anyone know of a way to download them all with one action?

Thank you all.
Regards.

i92guboj 12-04-2009 08:46 AM

This is what *I* would do, use something similar to this to download the relevant subtrees:

Code:

$ mkdir ~/tmp
$ cd ~/tmp
$ cvs -d :pserver:anonymous@anoncvs.gentoo.org:/var/cvsroot co -D 20080101 gentoo-x86/x11-drivers/ati-drivers/

Change the date to fit your needs of course, and repeat that to fetch all the relevant pieces, glibc or whatever you will need :) After that, copy all the contents of ~/tmp to your local overlay, and then you should be ready to go.

RVF16 12-04-2009 10:08 AM

Excellent i92guboj.
Thank you so much.

I tried the command without the date parameter (-D) and it wouldn't download the dead ones but your command does.

Thanks again.
Regards.

RVF16 12-05-2009 05:31 AM

Well not exactly.
It seems that cvs downloads the ebuilds of latest year up until the date stated with the -D option and again not all of them (it seems to ignore some).
That's why without the option it downloaded only the 2009 ebuilds.
Is this a limitation applied by the gentoo administration?
I really cannot understand what it would take to download for example the complete gentoo-x86/x11-base/xorg-server tree with all ebuilds (alive and dead) of all dates.

i92guboj 12-05-2009 07:56 AM

Quote:

Originally Posted by RVF16 (Post 3780743)
Well not exactly.
It seems that cvs downloads the ebuilds of latest year up until the date stated with the -D option and again not all of them (it seems to ignore some).
That's why without the option it downloaded only the 2009 ebuilds.
Is this a limitation applied by the gentoo administration?
I really cannot understand what it would take to download for example the complete gentoo-x86/x11-base/xorg-server tree with all ebuilds (alive and dead) of all dates.

With -D you get the tree as it was that concrete day, not every ebuild that had existed in the past, only the ones that were in the tree by that concrete date, so you would get a snapshot of portage from that date, which is really what you should be looking at because that will ensure that all the dependencies can be resolved easily.

Why do you want to fetch the whole tree with every ebuild that has ever existed?

RVF16 12-05-2009 09:41 AM

Quote:

With -D you get the tree as it was that concrete day
Ok didn't realize that was how it worked.
Thanks.

i92guboj 12-05-2009 10:19 AM

I guess that the real problem now is to figure out what concrete date is the one that will work for your purpose :)

RVF16 12-10-2009 07:11 AM

Hello again.

i have downloaded a 30/06/2008 snapshot of ati-drivers and several other packages and put it in :
/media/gentoo/usr/local/portage/gentoo-x86-20080630/x11-drivers/ati-drivers
It contains several versions of the driver so here is my question :
You advised to run :
Quote:

ebuild package-<version>.ebuild manifest
while in several wikies and docs it is advised to run :
Quote:

ebuild package-<version>.ebuild digest
Could you please state the difference between the two above commands?
Do i have to run the ebuild package.ebuild manifest/digest command for every single version of the driver i would like to try or is there a way to fetch the files (patches,checksums, etc.) for all downloaded versions with one command?

Thank you.
Regards.

i92guboj 12-10-2009 07:51 AM

Quote:

Originally Posted by RVF16 (Post 3786618)
It contains several versions of the driver so here is my question :
You advised to run :

[...]
while in several wikies and docs it is advised to run :
[...]

"digest" was the old way. Digests are no longer needed nor used for anything in the newer portage branches. Since quite a long time it has been "manifest". The old syntax is still there just for compatibility reasons, but it's equivalent to manifest as far as I know.

I have no idea if there are plans to remove "digest" in the future, but manifest is the new way, so I'd stick to that, just in case.

Quote:

Do i have to run the ebuild package.ebuild manifest/digest command for every single version of the driver i would like to try or is there a way to fetch the files (patches,checksums, etc.) for all downloaded versions with one command?
Well, you might not needed to do the manifest part at all, it depends. Since we are talking about old snapshots of the portage tree maybe the manifests are already there. I am not sure right now.

You will only need to do them if when you try to emerge the ebuild from your overlay it doesn't work telling you that it's masked due to corruption or something like that.

In that case, as far as I know, you have to make the manifest for each directory once. When you do it for one ebuild the rest of ebuilds in the same directory are added to the manifest as well. So, it's once for directory instead of once for every ebuild. To put a concrete example, you would only need to do it once in the ati-driver/ subdirectory, with whatever ebuild you prefer.

I have no idea if there's a way to automate this for the whole tree in a single step. Surely there is, but I don't know or don't remember it right now.

But, as said, first check if you need it. It's possible that you don't need to do the manifests yourself.


All times are GMT -5. The time now is 06:19 PM.