From Josh Assing on 15 Sep 1998
Thank you very much!
I am a woeful windoze database programmer that must interface with the almighty unix environment... I am in search of source code (c is best) for uudecode/uuencode.
Any decent Linux CD will come with source code (mostly in C) to all of the GNU software. You'll also find it on any good Linux FTP repository --- such as ftp://sunsite.unc.edu and ftp://tsx-11.mit.edu.
Another good place to look for these sorts of things is at the master repository of GNU software:
... or at its principal mirror:
... where it should be part of the "sharutils" package.
Also I think you should be able to find the sources at the FreeBSD, NetBSD, and OpenBSD sites:
In general the best places to find any Linux software (most of it is available in source form) are:
Freshmeat is nice for keeping up on new and recent package releases. It is updated daily and there are usually about a dozen new packages or versions available every day. Today is light --- there's only nine items --- there were thirty one on the two previous days.
It gives a brief (one paragraph) description of each package and a usually three links to "Download" it or view its "HomePage" or "Appindex Record."
LFW (Linux FTP Watcher) is a forms based search engine that indexes the top twenty or so Linux FTP sites.
The problem with requests to help find the source code is that many of the most basic packages (the ones that have been part of most Unix implementations forever) are bundled together in a few "base" packages (like sharutils for uuencode/uudecode).
Although I don't know where most of them are I think the sources for commands like 'cp' and 'ls' are in binutils, and for commands like 'cut' and 'tail' are in fileutils.
So, unfortunately, it can be a bit difficult to find the source to a given package. Yggdrasil and some traditional Unix flavors used to offer a "whence" command to point to the sources for any command. However, the current crop of distributions doesn't seem to offer this handy feature.
On RPM based distributions you could use a variation of the RPM command to find out which package included a given file like so:
rpm -qf /usr/bin/uuencode
... which reports sharutils-4.2-5 on my S.u.S.E. 5.3 system. Different distributions package these differently. However, given that you could then look on your CD's or on the FTP sites for a "sharutils-4.2-5.SRPM.rpm" or a "sharutils-4.2-5.spm" (these being different naming conventions for representing "source" RPM's).
You can read my back issues or look to http://www.rpm.org to learn more about the RPM package management system --- and a few searches should net you considerably comparison and debate about its merits and faults relative to the "tarball" (Slackware pkgadd) and Debian packaging systems and formats.
I was directed to www.ssc.com; and then
to you... Hopefully; you can be of assistance..