$Id: INSTALL,v 1.20 2009/01/05 08:35:21 subrata_modak Exp $

About configuration
-------------------
If you want to use auto configuration, be sure autoconf-2.61 is installed.
(Autoconf sources can be downloaded from:
ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.61.tar.gz
ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.61.tar.bz2).
Then run: 
        $ make autoconf 
        $ ./configure   
        $ make all      

If you get a build error, please report it to ltp-list@lists.sf.net with
following information,

 1. the error output of build tools(make, gcc, etc...)
 2. the output of ./configure 
 3. include/config.h
 4. config.mk
 5. config.log


If you want to use default configuration, autoconf is not needed. Just run:          
        $ touch include/config.h.default 
        $ make config.h                  
        $ make all                       

If make all is failed even if you use the auto configuration, please, report it to  
ltp developers with config.log, generated by running the configure script.          

Quick Start
-----------

1> tar xzf ltp-XXXXXXXX.tar.gz
2> cd ltp
3> make
4> make install
5> ./runalltests.sh

*NOTE: The LTP assumes the existence of the nobody, bin, and daemon users and
their groups.  If these IDs do not exist, certain tests will fail. The users
and groups IDs should be the same, i.e. if user "nobody" is 99, then it's
group should also be "99". The names of the groups are irrelevant.


Detailed Installation
---------------------

Beyond the "Quick Start" instructions, there are only a few other things
that should be done.  The Linux Test Project build process uses a
minimalist approach.  There is a lot of room for improvement and
contributions are welcome.

1. Log in as root.

2. Untar the ltp tarball into a spare directory.  There is not a
   standard location for it yet.  We put it in our home directory
   while we're working on it.

3. Run "make" to build everything.
   *NOTE: Some of the Makefiles (example: pan/Makefile) require the lex (or
   flex) package to be installed.

4. You can run all of the tests sequentially by using the example test
   script runalltests.sh.  The script is there just to get you started.
   See pan(1) for more information on the test driver we have provided.
   It is simple, but it can do a lot of stuff.

   NOTE: The diskio and network tests will NOT be run by the runalltests.sh
   script.  We chose to separate these tests because of their required setup
   overhead.

5. The disk i/o tests can be run by executing the diskio.sh script.  In order
   for these tests to successfully operate a writable high-density 3.5" floppy
   must be in the disk drive and a CD-ROM with more than 100Mb of data must be
   in the CD-ROM drive.  The corresponding tests will fail if either disk is
   missing.

6. The network tests are executed by running the networktests.sh script. The
   network tests require some configuration for them to work correctly:

     i) First, there MUST be another test machine setup to act as the server
	to these client side tests.  This machine MUST have the LTP installed
	in the same exact location, i.e. if the client has /root/ltp, then the
	server must have /root/ltp.  This is required because certain tests
	expect to find server files in certain locations.  Make sure to compile
	the LTP on this server machine also.

    ii) Second, the server must be setup to allow the client to connect using
	the "r" commands, such as rsh.  This is done by simply creating/editing
	the ".rhosts" file under /root.  Place the hostname of the client
	machine in this file to allow root to remotely connect without the use
	of a password. If server has the PAM system security tool, you need
	to add the following lines to /etc/securetty:
		rlogin
		rsh
		rexec
		pts/0
		pts/1
		  :
		pts/9

   iii) Next, certain services must be activated in order for certain tests to
	execute.  The following services are activated via inetd/xinetd:
		rlogind
		ftpd
		telnetd
		echo (stream)
		fingerd
		rshd
	 Also, because certain RPC programs are tested, the "portmapper" daemon
	 MUST be started, as well as NFS server AND lock services.

    iv) Finally, before running the networktests.sh script, two variables must
	be set within the script file.  The "RHOST" variable should be set to
	the hostname of the server.  The "PASSWD" variable should be set to
	root's password on the server machine.  This is necessary for tests
	such as telnet01 and ftp01.

   You can now successfully execute the networktests.sh script.
   When you would like to run the whole network tests, specify -w option:
   	# ./networktests.sh -w

   When you would like to run the same tests which networktests.sh ran till
   2008, specify no option or -d option:
   	# ./networktests.sh

   You can run the test category which you are interested in, -h option shows
   the list of the test category:
   	# ./netwoktests.sh -h
