Hello Holly,
Thanks for the advice. I must say I prefer the original Unix approach of putting all the sources under /usr/src, with the kernel going into /usr/src/sys.
One of the reasons I like to have the unpacked sources for everything on my disk is that the with open source the documentation is so often inadequate. (of course it is not unheard of for commercial products to have woeful documentation as well - which is why there are so many third party books on Windows...)
If, on the other hand, you treat the source code as the 'definative' documentation, then by keeping it around I know that there is nothing about my system that I cannot find out, and I never have to resort to trial and error to work out how something works.
"Works" in what way? For most user purposes, man command_name or command_name --help is sufficient to work out how something "works". If you mean how it is designed to work, then yes, you certainly need the source, but even so, that's only if you don't "agree" with the way it's designed, or you want to modify the design. For a normal user, there's very little need to resort to reading the source just to use the application (boy, if that was true, Linux *really* wouldn't be ready for the desktop!).
Plus, of course, there is the added bonus that if the feature you are looking for isn't there, you can add it in. Or if the way something works isn't obvious from the source, it is easy to temporarily add the odd diagnostic.
Fair enough, but that doesn't mean that every installed source has to be extracted on your system because 1) most sources do actually work, both in terms of compiling properly, and the compiled application working properly, thus they do not need to be diagnosed, and 2) if you're missing a feature and want to code it, you should be using the application's CVS/Subversion source anyway, which will put the extracted and current source on your system, so you can help improve the project as a whole. There's not a lot of point in adjusting the release source code, when some fixes may already exist in CVS towards the next release.
It is also useful when writing new code to be able to look at existing source to make sure you are not re-inventing things and are following best practice. It is amazing how often you find that a library already exists to handle something you were about to code from scratch...
Again, this doesn't seem to indicate that you'd need *every single source* extracted on your system, but only the ones that bear some relationship to something you might actually code. But it's your system.
In theory I could unpack a tarball, but that is a lot more effort than reading a file with is already available and in a predictable place.
Seems to me that you could write a script to unpack just the tarballs you want unpacked to a known location, but that's just me; I've never considered unpacking tarballs to be a lot of effort-- certainly not when you could do it as a cron job. The point being, you're clearly not an "average user", so you have special needs for your source tarballs. Gentoo is certainly flexible enough to accomodate them (for example, the KEEP_TEMP business suggested earlier), but because you have special needs/desires, you have to make a small effort to make sure they are met to your requirements.
For me, being able to do that is one of the main benefits of an open source system. Being free is not the major issue.
Nor for me; what I like is being able to customize my system for my personal needs, and being able to contribute to the OS as a whole.
But free (in either sense) is nothing to sneeze at, either. :)
Holly
Regards, DigbyT
-- [email protected] mailing list
