- How to find sources (READ THIS BEFORE POSTING)

 Home >  Programming >

How to find sources (READ THIS BEFORE POSTING)

Section 1 of 2 - Prev - Next

Archive-name: finding-sources
Submitted-by: (Kent Landfield)
Original-Author: (Jonathan I. Kamens)
Version: 1.145
Last-modified: Sat Apr 22 21:33:16 CDT 1995

[ If you would like to get a current copy of this file send an   ]
[ email message to  ]
[ and it will be mailed to you.                                  ]

I.	Table of contents

This article contains the following sections.

	I.	Table of contents
	II.	Introduction
	III.	How do you find sources?
	IV.	Things not to do
	V.	Searching techniques in detail
		1. Usenet source newsgroups
		2. The "archie" database
		3. The "ftpable-readmes" WAIS database
		4. Comp.archives
		5. Comp.sources.wanted
		6. Prospero
		7. Mail server queries
	VI.	File retrieval techniques in detail
		1. By anonymous ftp
		2. By anonymous UUCP
		3. By mail
		   a. Uunet mail archive
		   b. BITFTP
		   c. Ftpmail
		   d. AT&T's netlib archive
		   e. Periodic posting archives
		   f. Trickle mail servers
		   g. Other mail servers
        VII.    Locating a site's IP address
	VIII.	Credits

To find a particular section, search forward for a line beginning with
the Roman numeral corresponding to the desired section.  For example,
search forward for "IV." at the beginning of the line to find the
section entitled "Things not to do".  Alternatively, if your news
reader supports commands to "undigestify" and/or skip to the next
section in a digest message, you can use those commands to view this
message, since it is in digest format (the section you are reading now
is the "preamble" of the digest).


II.	Introduction

This posting discusses the resources available to people who are
looking for source code.  Please read it before posting source code
requests to comp.sources.wanted, alt.sources.wanted or any other

Comments about, suggestions about or corrections to this posting are
welcomed.  If you would like to ask me to change this posting in some
way, the method I appreciate most is for you to actually make the
desired modifications to a copy of the posting, and then to send me
the modified posting, or a context diff between my posted version and
your modified version (if you do the latter, make sure to include in
your mail the "Version:" line from my posted version).  Submitting
changes in this way makes dealing with them easier for me and helps to
avoid misunderstandings about what you are suggesting.

DO NOT send me private E-mail asking me to help you locate source
code.  Nearly everything I know about finding sources is documented in
this posting.  If you can't find something by following the
instructions below, then I'm not going to be able to find it either.
Furthermore, sending me E-mail asking for help BEFORE following the
instructions below is completely out of the question.


III.	How do you find sources?

The method you use for locating sources depends on exactly what you
are looking for.  Here are several possible routes to follow; pick the
one that best suits your needs.  The descriptions below mention
general techniques (e.g. "Check the Usenet source newsgroup indices.")
which are described in detail later in this posting.  These
descriptions are listed in order from most preferred to least
preferred solution.  You will notice that "Post in
comp.sources.wanted" is listed last.  This is because posting
a message in comp.sources.wanted should only be used as a last resort
when you have exhausted all other alternatives.

Once you have located your source code using the instructions below,
you can retrieve it via anonymous ftp or E-mail (depending on what is
accessible to you and on where the code is archived); this is
described in detail later in this posting.

Before following *any* of the routes below, the first thing you should
do is exhaust the local resources that are available to you.  Often, a
program that you are looking for will already be accessible somewhere
on your system.  Since each site has different local resources, it's
impossible to give details here about the resources at any specific
site.  All that can be said is, "Find someone at your site to ask."
Nearly every site has someone whose job it is to answer questions from
other users, and the sites that don't have someone doing it officially
often have someone doing it unofficially.  If you cannot find what you
want after checking things out locally, or if you can't find anyone to
ask, then proceed as follows.

1. "I know the name of the program I want, but I don't know where to
   get it."

   a. Check the indices for the various main Usenet source newsgroups.

   b. Check with archie.

   c. Check comp.archives.

   d. Check the "ftpable-readmes" WAIS database.

   e. Post to comp.sources.wanted.

   f. If you are looking for an MS-DOS program, check /SimTel/msdos on or /pc/INDEX.ZIP on, available 
      via anonymous ftp (see the section below about how to retrieve 
      a file via anonymous ftp).

2. "I know the name of the program I want, and I know which newsgroup
   it was posted in, but didn't save it when it was posted and now I
   find that I need it."

   DO NOT post a message to comp.sources.wanted saying, "I didn't save
   all of this when it was archived, could someone please send it to
   me?"  If the code was posted in a source newsgroup, then it is
   archived somewhere.  Follow the instructions below for retrieving
   code from Usenet source newsgroup archives.

3. "Some parts of the  package in source newsgroup  didn't
   arrive here.  Did anybody else have this problem?  Could someone
   send me the parts I'm missing?"

   If you did not receive part of a package, and you think that the
   problem that caused you not to receive it is more widespread than
   just your site, send a message to the poster of the package and let
   him know that you think it may not have propagated everywhere.  He
   will act as a clearinghouse for problem reports and, if there are
   enough of them, repost the missing parts.

   If you want to get the missing parts, asking for them in a posting
   is a bad idea for two reasons.  First of all, you may very well get
   lots of people mailing you the missing parts, enough to swamp your
   mailbox or your mail feed (You can avoid this, to some extent, by
   saying, "Please write to me if you have it -- don't send me the
   whole thing unless I respond and ask you to!" but you still may end
   up getting many more responses than you need).  Second, since you
   can get the missing parts from the Usenet source newsgroup archives
   using the instructions below, it is a waste of the Usenet's
   resources to post a message asking for them.

4. "I am looking for source code that does ."

   Follow the same process as (1) above, but instead of searching for
   the name of the program, search for keywords in your description of
   what you're looking for.  For example, if you're looking for
   graphical clocks that run under the X window system, you might
   search for the word "clock" in the index for comp.sources.x.

5. "I am looking for source code that does ," where  is
   something algorithmic or mathematical that is commonly solved with

   Check AT&T's "netlib" archive (which is accessible via E-mail as
   described below, described below, or via World Wide Web as, or via anonymous ftp to, and 
   if that doesn't work, proceed as in (3) above.

   Alternatively, if you don't mind doing some typing and/or
   programming, several reference books provide detailed descriptions,
   pseudocode, and sometimes even code for for numerous popular (and
   obscure) algorithms.  Several good books to check are:

	Comer, Douglas E. and David L. Stevens.  "Internetworking
	with TCP/IP, Volume II: Design, Implementation, and
	Internals", Prentice Hall, 1991, ISBN 0-13-472242-6.

	Foley, J. D. et al.  "Computer Graphics: Principles and
	Practice", Second Edition, Addison-Wesley, 1990, ISBN

	Knuth, Donald E.  "The Art of Computer Programming" (3
	volumes), Addison-Wesley, 1973.

	Plauger, P. J.  "The Standard C Library", Prentice Hall,
	1992, ISBN 0-13-131509-9.

	Press, William H. et al.  "Numerical Recipes, The Art of
	Scientific Computing", Cambridge University Press, 1989,
	ISBN 0-521-38330-7.  (Fortran code)

	Press, William H. et al.  "Numerical Recipes in C, The Art
	of Scientific Computing", Cambridge University Press, 1988,
	ISBN 0-521-35465-X.  (C Code)

	Sedgewick, Robert.  "Algorithms", Addison-Wesley, 1988.
	(Pascal code)

	Sedgewick, Robert.  "Algorithms in C", Addison-Wesley,
	1990, ISBN 0-201-51425-7.  (C code)

   The publishers of several of these books also make available floppy
   disks containing machine-readable source code.  Furthermore, Turbo
   Pascal Numerical Recipes code is available for anonymous ftp in
   /pc/turbopas/ on

6. "I am looking for source code that does  under the X window

   As in (3), but after checking the Usenet source newsgroup indices
   (most importantly, that of comp.sources.x), check the anonymous ftp
   archive on

   See also the postings entitled "Frequently Asked Questions about X
   with Answers," posted monthly in and various other
   X-related newsgroups.  Those postings discuss in detail how to get
   X sources of various sorts.  If these postings have expired at your
   site, see the documentation below about retrieving postings from
   the periodic posting archive.

7. "I'm looking for neat programs to run on my  machine."

   Don't post questions like this.  The amount of source code
   available on the Usenet is incredible; you are essentially asking
   for a summary of all of it.  Browse through the various archives
   mentioned in this posting if you want to find something like this.

8. "I'm looking for NetNews software ."

   See the posting entitled "Usenet Software: History and Sources,"
   posted periodically in news.admin and news.announce.newusers.  If
   it has expired at your site, see the documentation below about
   retrieving postings from the periodic posting archive.

9. "I'm looking for the source code for Unix."

   Most implementations of Unix contain source code that is, at least
   to some extent, proprietary and not freely redistributable.  If you
   are looking for the source code to a particular Unix utility, you
   may have better luck looking for a public-domain reimplementation
   of that utility, using (1) or (3) above.  Furthermore, the Free
   Software Foundation (which is dedicated to the goal of making high
   quality free software, including a complete Unix-compatible
   software system called GNU, available for everyone) may distribute
   a freely redistributable version of the utility, protected by the
   GNU Public License.

   Also, if the utility was written by the folks who do the BSD
   variant of Unix, then it might be available in the various BSD
   source archives (the best one is probably; has a bsd-sources directory too, and it contains some
   sources that are not in the gatekeeper archive, but the sources
   there are for 4.3reno BSD and might be difficult to compile under
   other types of Unix) on the net.

   There are three freely redistributable implementations of Unix. The
   first is FreeBSD. The second is NetBSD, both of which are based on 
   BSD Unix sources. The third is Linux.  Both of FreeBSD and Linux these
   run on 386-class machines.  NetBSD runs on i386, and many other platforms
   For more information about them, see the comp.unix.bsd.freebsd.questions, 
   comp.unix.bsd.netbsd.questions and comp.os.linux newsgroups, or look for 
   FreeBSD, NetBSD and Linux in the source archives using the instructions 

10. "I'm looking for a dictionary/thesaurus/encyclopedia."

   There are few, if any, freely redistributable full dictionary or
   thesaurus databases.  There are, however, some freely available
   word lists and/or synonym lists.  One archive of such files
   (including word lists in Dutch, English, French, German, Italian
   and possibly others) is the anonymous ftp directory
   /pub/dictionaries on  Another archive is the
   anonymous ftp directory /documents/dict on

   There also appears to be a package called "thesplus" for the PC,
   that may or may not contain a thesaurus database and software (I
   don't know anything about it).  One archive site for it is the file
   /ux1/pc/exec-pc/ on the anonymous ftp machine  I think this package may be shareware and
   therefore not freely redistributable in the strictest sense of the

   Also, Project Gutenberg has an old (but relatively good) thesaurus
   available on-line.  It's accessible via anonymous ftp in /pub/etext
   on the machine  it's also accessible via WAIS
   (ask the WAIS directory of servers for "thesaurus" in order to
   locate it).

   If you've already got the database (e.g. on a NeXT machine), you
   may be able to find sources for code to manipulate it; see (3)

   If you really need to find a dictionary or thesaurus for on-line
   use, and the ones already mentioned won't help you, then you're
   probably going to have to pay somebody for it.  Any
   reasonably-sized software catalog for your type of computer is
   probably going to mention dictionary software, and if not, then
   calling the computer stores around your town should help you to
   locate some.

   You are even less likely to find a freely redistributable
   encyclopedia than you are to find a dictionary or thesaurus.
   Encyclopedias cost a lot of money to put together, and the
   companies that do so therefore tend to be very protective about
   their copyrights.  Although some encyclopedia publishers have made
   their work available on-line on commercial services (e.g. Prodigy),
   none have made them freely redistributable.  If you want an
   electronic encyclopedia, you're going to have to pay someone for
   it (by looking in a software catalog, as mentioned above).


IV.	Things not to do

1. Don't post messages to source newsgroups (e.g. comp.sources.misc,
   comp.sources.unix, etc.) asking for sources.
   There are newsgroups specifically for source requests.  If you post
   a request to a moderated source newsgroup, then the moderator has
   to deal with it (and he probably doesn't want to have to deal with
   source requests from all over the Usenet), and if you post a
   request to an unmoderated source newsgroup, then archives of that
   newsgroup end up with cruft (i.e. your request) in them.

2. Unless you have a particularly special request that is likely to be
   intrinsically interesting to the readers of a "topic" newsgroup,
   don't post requests in such newsgroups.  Just because you're
   looking for Unix software doesn't mean your request belongs on
   comp.unix.questions.  Just because the software you're looking for
   is likely to be written in C doesn't mean your request belongs on
   comp.lang.c.  Source requests belong in the "wanted" newsgroups;
   that's what they're there for.


V. Searching techniques in detail

1. Usenet source newsgroups

   There are many Usenet newsgroups in which source code is posted,
   and most of them are archived.  They include:


   If you're looking for software for a particular machine or
   operating system, you should check the source archives that are
   appropriate (e.g. checking "comp.sources.mac" if you're looking for
   programs to run under SunOS probably wouldn't be very profitable),
   as well as the general archives such as alt.sources or

   Sites that archive Usenet source newsgroups usually provide some
   method of getting an index of the files in each newsgroup's
   archive.  If you are accessing an anonymous ftp archive, then this
   index will usually appear as a file called "index" or "Index" in
   the top-level archive of the newsgroup, or in each volume of the
   newsgroup's archive.

   If you are accessing a mail archive, then the instructions for
   using that archive should explain how to get indices of the
   newsgroups that are archived.

   If you are accessing an anonymous UUCP archive (see below), you are
   usually told when you are given the phone number and password for
   the archive how to get the top-level index for the archive, which
   will tell you how to get other indices and files.

   You can use archie to find anonymous ftp archives of Usenet
   newsgroups.  The most well-known Usenet newsgroup archive is
   probably, which archives comp.sources.3b1,
   comp.sources.amiga,, comp.sources.misc,
   comp.sources.reviewed, comp.sources.sun, comp.sources.unix, and
   comp.sources.x, among other things.  Another large Usenet archive
   site is, which archives alt.sources, 
   comp.sources.mac, and comp.sources.apple2, in addition to most 
   of the newsgroups archived on  The official 
   comp.sources.misc, comp.sources.x and comp.sources.reviewed archives
   are available on, the official comp.sources.unix
   archives are on  A very large European anonymous 
   ftp site is, which archives Usenet newsgroups and 
   mirrors several foreign specialized ftp servers.  Other large 
   European archive sites are and  If you 
   are in Europe, you should look on one of these sites for things 
   you need before trying sites elsewhere.

   The vmsnet newsgroups are archived on and  See also the posting "Monthly info posting:
   vmsnet.sources archive sites" in vmsnet.sources.d and comp.os.vms;
   if it has expired at your site, see the documentation below about
   retrieving postings from the periodic posting archive.

2. The "archie" database

   "Archie" is a database of anonymous ftp sites and their contents.
   The software for it was written by the "Archie Group" (Peter
   Deutsch, Alan Emtage, Bill Heelan, and Mike Parker) at McGill
   University in Montreal, Canada, and they maintain the database as

   "Archie" keeps track of the entire contents of a very large number
   of anonymous ftp sites, and allows you to search for files on those
   sites using various different kinds of filename searches.  Archie
   also has a software description database (with contents similar to
   the output of the "whatis" command under Unix), on which you can do
   keyword searches.

   The following machines are currently running and advertising the
   archie service:

   Server list current as of 21 Jun 1994

     Host name			Internet address	Country
     -------------------	----------------	--------------		Australia      	Austria            Austria		Canada   		Canada		Finland		France  	Germany		Israel  		Italy		Japan		Korea    	Korea             	Korea             	New Zealand		Norway     	Spain       	Sweden      	Switzerland 		Taiwan		Taiwan		United Kingdom		United Kingdom		United States (MD)		United States (NY)		United States (NJ)		United States (NE)            United States (NJ)

   Archie sites may soon be available elsewhere as well.

   You can access archie at most of these machines in one of three
   different ways:

   1. Telnet or rlogin to the machine with username "archie" and no

   2. Send mail to archie@machine (e.g.  Send a
      message with "help" in the body to find out more.

   3. Use one of the Prospero-based archie clients.

   The site in Japan,, supports only the third

   The third method listed is the preferred one, because it puts less
   of a load on the archie servers and is faster than the other two
   methods (its one drawback is that it does not yet provide an
   interface to the archie "whatis" database).  If you already have
   Prospero installed at your site (see below), then you can search
   archie by vcd'ing to the directory /archive-sites/archie/regex and
   using "vls" with the regular expression for which you want to
   search.  Alternatively, you can get one of the stand-alone archie
   clients that does not require all of Prospero in order to run.  The
   clients currently available include a C version with a text
   interface, a C version with an X interface, and a perl version with
   a text interface.  They are available for anonymous ftp in
   /archie/clients or /pub/archie/clients at each of the archie sites
   listed above.

   When using archie, you should connect to the site from the list
   above that is closest to you, network-wise. Archie servers can 
   give different results when using different servers.  If one server 
   fails to give results, try another (more remote) one.

   If you would like more information about archie, you can write to

   (Note to Janet/PSS users -- the United Kingdom archie site is
   accessible on the Janet host [000005102000].  Connect
   to it and specify "archie" as the host name and "archie" as the

3. The "ftpable-readmes" WAIS database

   Vincent Cate use to maintain a WAIS database of README files for various
   packages on anonymous ftp sites all over the Internet.  Vincent no longer 
   maintains or runs the ftpable-readmes WAIS database. If you have a couple 
   of hundred spare meg to take over the management of that excellent 

   For more information about WAIS, retrieve the file /wais/README
   from the anonymous ftp server

4. Comp.archives

   The comp.archives newsgroup was initially created amd moderated by
   Ed Vielmetti, then moderated by Adam J. Richter and now Jost Krieger  It contains announcements of 
   archive sites and their contents.  If you cannot find what you're 
   looking for in the comp.archives postings available at your site at 
   any given time, then you can read the newsgroup for a while and watch 
   for new postings that are of interest to you, or you can try to find 
   an archive site that archives the postings in comp.archives (e.g.,,

5. Comp.sources.wanted

   When you post a message to comp.sources.wanted or
   alt.sources.wanted, the important thing to remember is to BE
   SPECIFIC.  If you're working under Unix, make sure to mention that;
   possibly, mention even what type of Unix.  If you're not working
   under Unix, make sure to mention what operating system and machine
   type you *are* working under.

   Remember to choose a meaningful Subject line for your message;
   something like, "Can you help me?" is very unhelpful to people who
   ARE willing to help, and may just cause some of them to not bother
   reading your posting.  Try to summarize what you're looking for
   meaningfully in your Subject line.

   Also, it is usually a good idea to ask for people to send you
   E-mail rather than posting responses.  Say that if enough people
   write to you and ask for copies of whatever responses you get, then
   you'll summarize the responses in a later posting to the newsgroup,
   and if that happens, then DO post the summary.

   Finally, don't say, "Would someone please mail me ?"  Say,
   "Would someone please tell me where I can get , or what's
   available that does ?  Instead say, "If you can mail it to me, 
   please let me know, and I'll let you know if I want you to."  This
   avoids the problem of several people mailing you what you requested
   and overflowing your mailbox.

6. Prospero

   If you are a Unix site on the Internet, you can use the Prospero
   system (whose author is Clifford Neuman) to search through archives
   of various sorts all over the Internet, and to retrieve files once
   you have found them.  Prospero uses a virtual filesystem which
   allows you to transparently view directories and retrieve files.
   There is some overlap between Prospero and other resources
   mentioned in this document; for example, both archie and the
   periodic posting archives on are accessible via

   The Prospero software is available in /pub/prospero/prospero.tar.Z
   on; the user software may already be installed at
   your site, and if not, you can get it and install it yourself.  For
   more information about Prospero, send mail to

7. Mail server queries

   Anonymous ftp is most effectively used only for retrieving files
   and not for searching for them, since it is a file transfer
   protocol and not much more than that.  However, many (if not all)
   of the mail archive servers which allow file retrieval by
   electronic mail provide a more functional (albeit slower) interface
   than ftp which allows you to query the servers to find out what
   they have available on them.  Therefore, if you find it necessary
   to use mail archive servers to get files, take advantage of the
   indexing and search features available on the servers.  The
   features of individual servers can not be documented here, because
   there are too many different servers running too many different
   kinds of software, but the instructions below do explain how to ask
   the servers for help and find out what commands they support.


VI. File retrieval techniques in detail

1. By anonymous ftp

   If you are on a site that is connected to the Internet and allows
   its users to ftp out to other Internet sites, then you have
   anonymous ftp access.  The usual procedure for using anonymous ftp
   is to type the command "ftp machine-name", where "machine-name" is
   the name of the machine to which you want to connect, and then to
   use "anonymous" as the username and "user@host" (i.e. your E-mail
   address) as the password when you are prompted for it by ftp.

   Type "help" inside ftp to get a list of commands, and/or read the
   man page for ftp, or any other documentation about it available at
   your site for more information.  If they don't answer your
   question, then ask someone at your site for help.

   If you don't have Internet and ftp access, then you can use an
   ftp-mail server such as Princeton's BITFTP or ftpmail to retrieve
   files from anonymous ftp archives.  However, you should only use an
   ftp-mail server when the same files are not available from a
   dedicated mail archive server.  See the BITFTP and ftpmail
   instructions below.

   For additional information on anonymous ftp, see the Anonymous FTP
   Frequently Asked Questions (FAQ) List maintained by 
   .  It is available from news.announce.newusers,
   and news.answer.

2. By anonymous UUCP

   There are various UUCP sites on the net that publish their modem
   telephone numbers and a public username and password that can be
   used to transfer files from the sites via UUCP.  For more
   information about doing this, see the documentation for the "uucp"
   command on your system.

   One place to find information about anonymous UUCP archives is the
   Nixpub listing of public access Unix sites, maintained by Phil
   Eschallier and posted in comp.misc and alt.bbs.  If that posting
   has expired at your site, you can get copies of it from the
   Periodic posting archive described below.

3. By mail

   a. Uunet mail archive provides E-mail access to the sources it archives (see
   the discussion about above for some idea of what is
   available).  The address to which to send requests is
   "".  You can send a message containing "help" in
   its body for more information.  Note, however, that this service
   does not provide access to all of UUNET's archived files, so you
   may have to use an ftp-by-mail service instead to get to some of

   b. BITFTP

   The BITFTP servers, run by Princeton University and the German
   National Research Center for Computer Science, allow people on 
   the BITNET to retrieve via E-mail files at anonymous ftp archive
   sites.  To find out how to use it, send mail to 
   "bitftp@pucc.bitnet" or "" with "help" in the 

   Note: The BITFTP server at Princeton will reject requests from 
   non-BITNET addresses, so if you're not on the BITNET and you need 
   to do anonymous ftp retrieval via E-mail, you should use ftpmail 
   (see below).

   c. Ftpmail

   Ftpmail servers allow you to retrieve via E-mail files at anonymous
   ftp archive sites.  Four ftpmail servers currently available are
   "", "",
   "", and "".  To
   find out how to use an ftpmail server, send mail to it with "help"
   in the body.  If you're on the BITNET, please use the BITFTP server
   (see above) rather than ftpmail.

   NOTE: Don't do something bogus like send your requests both to
   BITFTP and ftpmail, or to multiple ftpmail servers, hoping that one
   of them will get back to you first.  Choose one server for your

Section 1 of 2 - Prev - Next

Back to category Programming - Use Smart Search
Home - Smart Search - About the project - Feedback

© | Terms of use