Table Of Contents

Previous topic

2.7. Aggregator

Next topic

2.9. Messaging

This Page

2.8. Support Software

Some modules depend on external software to run, such as the Apache web server. This software is searched for or built from the same locations as the core software and modules.

The first place the setup script looks for software is the cached directory relative to the architecture and OS name of the current environment. It will look for B/A.* where B is the architecture/OS name and A is the name of the software package. An example is FreeBSD-6.2-STABLE-i386/apache22.FreeBSD-6.2-STABLE-i386.tgz. The architecture name is created on each node using the following:

(name, node, ver, extra, machine, proc) = platform.uname()
(type, release, nick) = platform.dist()
if type != "":
        ver = "%s%s" % (type, release)
if name.startswith('CYGWIN'):
        ver = 'xp'
arch = "%s-%s-%s" % (name, ver, machine)
arch = arch.replace('/', '')

If it can’t find one of these prebuilt binaries, it will attempt to build the software by looking for scripts/packagename and running it as a script. It will call this script with 3 arguments.

  1. A temporary build directory to work in
  2. The source directory where source is stored
  3. The name of the software module (i.e. apache22)
  4. The name of the architecture (i.e. FreeBSD-6.2-STABLE-i386)

If it fails to build, it will indicate a failure for the software module that will show up in the GUI failed table.

2.8.1. Have SEER build a software a package

Once complete, any required software is loaded. If first searches for prebuilt binaries which are located in a platform named subdirectory of the package directory. (e.g. Linux-redhat6-i686) If a prebuilt binary is not available, it looks for a build script in the source directory and calls that script with the arguments

build_script temp_dir source_dir pkg_name arch_name

It expects that the output file name will be of the format:

/temp_dir/pkg_name.(status|tar|tgz|tar.gz|zip)

Tar or zip files will be extracted onto the node. All files will as stored back in a prebuilt directory for future use. If the script returns a non zero return code, the build will be considered a failure and any output ignored.

Status can be INSTALLED, NOTSUPPORTED or some other status string. If status is INSTALLED, the software is assumed to be preinstalled on the node and an install isn’t needed. If any other status is present such as NOTSUPPORTED, the software will be marked as unusable on the node and a dependency failure will be noted. Any dependent modules will still install but the user will be notitified that the agent may not run properly on this node.

The archive file can also contains any number of executable files with the name .setup. These will be executed after extraction to perform any required setup on the node.

Note

The experiment setup script will only look in its home package directory for the initial builtin module m2crypto

As /share/seer is read-only, built software will not cache there