===========================
 Install Optional Packages
===========================

Some packages are not set in the Avocado-VT as hard dependencies,
because they may only be required depending on specific use cases.

If you run into problems while running specific tests, please verify
if installing the mentioned packages fixes your problem.

Fedora and EL
=============

Install the following packages:

#. Install a toolchain in your host, which you can do with Fedora and RHEL with:

::

    $ yum groupinstall "Development Tools"

#. Install tcpdump, necessary to determine guest IPs automatically

::

    $ yum install tcpdump

#. Install nc, necessary to get output from the serial device and other
   qemu devices

::

    $ yum install nmap-ncat


#. Install the xz file archiver so you can uncompress the JeOS [2] image.

::

    $ yum install xz

#. Install the autotest-framework package, to provide the needed autotest libs.

::

    $ yum install --enablerepo=updates-testing autotest-framework

#. Install the fakeroot package, if you want to install from the CD Ubuntu and
Debian servers without requiring root:

::

    $ yum install fakeroot


*If* you don't install the autotest-framework package (say, your distro still
doesn't have autotest packages, or you don't want to install the rpm),
you'll have to clone an autotest tree and export this path as the
AUTOTEST_PATH variable, both as root and as your regular user. One could put the
following on their ~/.bashrc file:

::

    $ export AUTOTEST_PATH="/path/to/autotest"

where this AUTOTEST_PATH will guide the run script to set up the needed
libraries for all tests to work.


For other packages:

::

    $ yum install git

So you can checkout the source code. If you want to test the distro provided
qemu-kvm binary, you can install:

::

    $ yum install qemu-kvm qemu-kvm-tools


To run libvirt tests, it's required to install the virt-install utility, for
the basic purpose of building and cloning virtual machines.

::

    $ yum install virt-install

To run all tests that involve filedescriptor passing, you need python-devel.
The reason is, this test suite is compatible with python 2.4, whereas a
std lib to pass filedescriptors was only introduced in python 3.2. Therefore,
we had to introduce a C python extension that is compiled on demand.

::

    $ yum install python-devel


It's useful to also install:

::

    $ yum install python-imaging

Not vital, but very handy to do imaging conversion from ppm to jpeg and
png (allows for smaller images).



Tests that are not part of the default JeOS set
-----------------------------------------------

If you want to run guest install tests, you need to be able to
create floppies and isos to hold kickstart files:

::

    $ yum install mkisofs

For newer distros, such as Fedora, you'll need:

::

    $ yum install genisoimage

Both packages provide the same functionality, needed to create iso
images that will be used during the guest installation process. You can
also execute


Network tests
-------------

Last but not least, now we depend on libvirt to provide us a stable, working bridge.
* By default, the kvm test uses user networking, so this is not entirely
necessary. However, non root and user space networking make a good deal
of the hardcode networking tests to not work. If you might want to use
bridges eventually:

::

    $ yum install libvirt bridge-utils

Make sure libvirtd is started:

::

    $ service libvirtd start

Make sure the libvirt bridge shows up on the output of brctl show:

::

    $ brctl show
    bridge name bridge id       STP enabled interfaces
    virbr0      8000.525400678eec   yes     virbr0-nic

Debian
======

Keep in mind that the current autotest package is a work in progress. For the
purposes of running virt-tests it is fine, but it needs a lot of improvements
until it can become a more 'official' package.

The autotest debian package repo can be found at https://launchpad.net/~lmr/+archive/autotest,
and you can add the repos on your system putting the following on /etc/apt/sources.list:

::

    $ deb http://ppa.launchpad.net/lmr/autotest/ubuntu raring main
    $ deb-src http://ppa.launchpad.net/lmr/autotest/ubuntu raring main

Then update your software list:

::

    $ apt-get update

This has been tested with Ubuntu 12.04, 12.10 and 13.04.

Install the following packages:


#. Install the autotest-framework package, to provide the needed autotest libs.

::

    $ apt-get install autotest


#. Install the xz-utils file archiver so you can uncompress the JeOS [2] image.

::

    $ apt-get install xz-utils


#. Install tcpdump, necessary to determine guest IPs automatically

::

    $ apt-get install tcpdump

#. Install nc, necessary to get output from the serial device and other
   qemu devices

::

    $ apt-get install netcat-openbsd


#. Install a toolchain in your host, which you can do on Debian and Ubuntu with:

::

    $ apt-get install build-essential

#. Install fakeroot if you want to install from CD debian and ubuntu, not
requiring root:

::

    $ apt-get install fakeroot

So you install the core autotest libraries to run the tests.

*If* you don't install the autotest-framework package (say, your distro still
doesn't have autotest packages, or you don't want to install the rpm),
you'll have to clone an autotest tree and export this path as the
AUTOTEST_PATH variable, both as root and as your regular user. One could put the
following on their ~/.bashrc file:

::

    $ export AUTOTEST_PATH="/path/to/autotest"

where this AUTOTEST_PATH will guide the run script to set up the needed
libraries for all tests to work.


For other packages:

::

    $ apt-get install git

So you can checkout the source code. If you want to test the distro provided
qemu-kvm binary, you can install:

::

    $ apt-get install qemu-kvm qemu-utils

To run libvirt tests, it's required to install the virt-install utility, for the basic purpose of building and cloning virtual machines.

::

    $ apt-get install virtinst

To run all tests that involve filedescriptor passing, you need python-all-dev.
The reason is, this test suite is compatible with python 2.4, whereas a
std lib to pass filedescriptors was only introduced in python 3.2. Therefore,
we had to introduce a C python extension that is compiled on demand.

::

    $ apt-get install python-all-dev.


It's useful to also install:

::

    $ apt-get install python-imaging

Not vital, but very handy to do imaging conversion from ppm to jpeg and
png (allows for smaller images).



Tests that are not part of the default JeOS set
-----------------------------------------------

If you want to run guest install tests, you need to be able to
create floppies and isos to hold kickstart files:

::

    $ apt-get install genisoimage


Network tests
-------------

Last but not least, now we depend on libvirt to provide us a stable, working bridge.
* By default, the kvm test uses user networking, so this is not entirely
necessary. However, non root and user space networking make a good deal
of the hardcode networking tests to not work. If you might want to use
bridges eventually:

::

    $ apt-get install libvirt-bin python-libvirt bridge-utils

Make sure libvirtd is started:

::

    $ service libvirtd start

Make sure the libvirt bridge shows up on the output of brctl show:

::

    $ brctl show
    bridge name bridge id       STP enabled interfaces
    virbr0      8000.525400678eec   yes     virbr0-nic
