****************************************************

               OVAL Interpreter

          Build Instructions - Mac OS

  Copyright (c) 2002-2012, The MITRE Corporation

****************************************************

The MITRE Corporation developed the OVAL Interpreter to 
demonstrate the usability of the OVAL Language. The source for
the OVAL Interpreter is freely available for reference use. This
document describes the steps you need to build the OVAL 
Interpreter on a Mac OS system.

For information about using the OVAL Interpreter refer to the README.txt
file included with the OVAL Interpreter, or the OVAL Web site.

      OVAL Interpreter:
      http://oval.mitre.org/language/download/interpreter/index.html

BY USING THE OVAL INTERPRETER, YOU SIGNIFY YOUR ACCEPTANCE OF THE
TERMS AND CONDITIONS OF USE.  IF YOU DO NOT AGREE TO THESE TERMS,
DO NOT USE THE OVAL INTERPRETER.  SEE THE TERMS.TXT FILE INCLUDED
WITH THE OVAL INTERPRETER.


-- CONTENTS --

  I     OVERVIEW
          A. Source Distribution
          B. Source Distribution Contents
          C. Supporting Libraries
  II    BUILD INSTRUCTIONS
          A. PCRE Library
          B. Xerces Library
          C. Xalan Library
          D. Libgcrypt Library
          E. OpenLDAP Library
          F. Building the OVAL Interpreter
  III   PCRE
  IV    XERCES
  V     XALAN
  VI    LIBGCRYPT
  VII	OPENLDAP
  VIII  REPORTING PROBLEMS
  IX    USEFUL LINKS

-- I -- OVERVIEW --

Download the appropriate installation files from the OVAL Interpreter SourceForge site.

  A. Source Distributions

       The source for the OVAL Interpreter is freely available on the OVAL Interpreter
       SourceForge site.  There is currently a bzipped tarball for Mac OS users 
       that contains all of the source code as well as a Makefile for 
       the OVAL Interpreter.  To download the source go to:

            http://sourceforge.net/projects/ovaldi/files/

       The latest source for the OVAL Interpreter is also freely available on
       the OVAL Interpreter SourceForge site and can be accessed via SVN.
       Please see the following link for more information:
	   
	    http://sourceforge.net/scm/?type=svn&group_id=215469		
			
  B. Source Distribution Contents

       The source code distribution contains the source for
       the OVAL Interpreter. The source distribution does not include
       the source for the libraries needed to compile the OVAL Interpreter.

  C. Supporting Libraries

       The OVAL Interpreter relies on five C/C++ libraries that can be found
       on the web. See sections III - VII for more information about the
       specific libraries used and where to download their source from.
     
-- II -- BUILD INSTRUCTIONS --

The following instructions describe how to build the OVAL Interpreter on a
Mac OS system.  The OVAL Interpreter has been built and tested on the 32-bit version of
Mac OSX Snow Leopard (10.6). The source distribution includes a Makefile that can be used
to build the OVAL Interpreter on Mac OS systems. Before the OVAL Interpreter can be built,
the supporting libraries must be installed.  Follow the instruction below to setup and
install the supporting libraries.

  A. PCRE (Perl-compatible regular-expression) Library
 
	The OVAL Interpreter uses the open source Perl Compatible Regular Expression (PCRE)
	library.  The OVAL Interpreter is compatible with version 8.x of the PCRE library.
	
	The source code for the PCRE library can be downloaded from the following link.
	
	        ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/
	
	To compile and install the PCRE library simply run the following commands.
 
            ./configure -prefix='install path'
			make
            sudo make install

  B. Xerces Library

       The OVAL Interpreter uses the open source Xerces library.  The following
       instructions are slightly different between OSX 10.6 and 10.7 due to
       compatibility problems with xerces 2.8 on OSX 10.7.

       OSX 10.7:

       The macports version of xerces 2.8.0 was causing ovaldi to crash, so we
       built our own binaries from source.  To make the build work, we applied
       the "macsvn.diff" patch, which is available from

       https://issues.apache.org/jira/browse/XERCESC-1772
       or
       https://trac.macports.org/ticket/22287

       OSX 10.6:

       We built xerces 2.7 from source.  No patching was required.

       In either case, the source code for the Xerces-C library can be
       downloaded from the following link.

           http://archive.apache.org/dist/xml/xerces-c/ (for 2.7)
           or
           http://xerces.apache.org/xerces-c/download.cgi (for 2.8)

       To compile and install the Xerces-C library (this example builds 32-bit
       xerces 2.7), simply run the following commands.

           export XERCESCROOT='<path to xerces-c>/xerces-c-src_2_7_0'
           cd $XERCESCROOT/src/xercesc
           ./runConfigure -p macosx -n native -b 32 -c gcc -x g++ -P 'install path'
           make
           sudo -E make install

       Building xerces 2.8 on OSX 10.7 after having applied the patch, is 
       analogous.

  C. Xalan Library

       The OVAL Interpreter uses the open source Xalan library.  The
       binary was compiled with version 1.10.0 of the xalan-c library.
	   
       The source code for the Xalan-C library can be downloaded from the following link.
	   
           http://www.apache.org/dyn/closer.cgi/xml/xalan-c
	   
       To compile and install the Xalan-C library simply run the following commands.
	   
           export XALANCROOT='<path to xalan-c>/xml-xalan/c'
	       export XERCESCROOT='<install path of xerces-c>'
           cd $XALANCROOT
           ./runConfigure -p macosx -c gcc -x g++ -P 'install path'
           make
           sudo -E make install

  F. Libgcrypt Library

       The OVAL Interpreter uses the open source Libgcrypt library.  The
       binary was compiled with version 1.4.6 of the Libgcrypt library.
	   
       The source code for the Libgcrypt library can be downloaded from the following link.
	   
           http://www.gnupg.org/download/#libgcrypt
	   
       To compile and install the Libgcrypt library simply run the following commands.
  
           ./configure --prefix='install path'
           make
           sudo make install

  G. OpenLDAP Library
  
      The OVAL Interpreter utilizes the open source OpenLDAP library to
      execute the LDAP probe.  The binary was compiled with version 2.3.27 of the OpenLDAP
      library.

      The source code for the OpenLDAP library can be downloaded from the following link.
	   
          ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release
	   
      To compile and install the OpenLDAP library simply run the following commands.
  
          ./configure --prefix='install path'
          make
          make depend
          sudo make install
  	
  H. Building the OVAL Interpreter

      After installing the PCRE, Xerces-C, and Xalan-C, Libgcrypt, and OpenLDAP libraries,
      change into the directory:

          <path to ovaldi directory>\project\macos

      From that directory, simply run "make" to build the OVAL Interpreter.  Note that it
      may be necessary to update the Makefile with the appropriate lib and include directories
      depending on the 'install path' used for the libraries.  The executable will be located
      in the <path to ovaldi directory>\project\macos\Release directory.
 
-- III -- PCRE --

The OVAL Interpreter uses the open source PCRE library.  The OVAL Interpreter
currently uses version 8.x of the PCRE library.  From the PCRE Web site:

  "Regular expression support is provided by the PCRE library 
   package, which is open source software, written by Philip Hazel,
   and copyright by the University of Cambridge, England."

For more information about PCRE visit:

    http://www.pcre.org

To download the source code for PCRE, please use the following FTP
site:

    ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/

-- IV -- XERCES --

The OVAL Interpreter uses the open source Xerces library.  The
binary was compiled with version 2.7.0 of the xerces-c library.  From
the Xerces Web site:

  "This product includes software developed by the Apache Software
  Foundation (http://www.apache.org/)."

For more information about Xerces visit:

    http://xml.apache.org

The source code is also available at the above Web site.

-- V -- XALAN --

The OVAL Interpreter uses the open source Xalan library.  The
binary was compiled with version 1.10.0 of the xalan-c library.  From
the Xalan Web site:

  "This product includes software developed by the Apache Software
  Foundation (http://www.apache.org/)."

For more information about Xalan visit:

    http://xml.apache.org

The source code is also available at the above Web site.

-- VI -- LIBGCRYPT --

The OVAL Interpreter uses the open-source Libgcrypt library.  The binary
was compiled with version 1.4.6 of the Libgcrypt library.  From the
Libgcrypt Web site:

	"Libgcrypt is a general purpose cryptographic library based on the
	code from GnuPG. It provides functions for all cryptographic building
	blocks: symmetric ciphers, hash algorithms, MACs, public key
	algorithms, large integer functions, random numbers and a lot of
	supporting functions."

For more information about Libgcrypt visit:
    http://www.gnupg.org/related_software/libraries.en.html#lib-libgcrypt

The source code is also available at the above Web site.


-- VII -- OPENLDAP --
  
      The OVAL Interpreter utilizes the open source OpenLDAP library to
      execute the LDAP probe.  The binary was compiled with version 2.3.27 of the
      OpenLDAP library.  From the OpenLDAP Web site:

      "The OpenLDAP Project is a collaborative effort to develop a robust, 
      commercial-grade, fully featured, and open source LDAP suite of 
      applications and development tools. The project is managed by a
      worldwide community of volunteers that use the Internet to communicate,
      plan, and develop the OpenLDAP Suite and its related documentation."

      For more information about OpenLDAP visit:
        
        http://www.openldap.org/

      The source code is also available at the above Web site.	

-- VIII -- REPORTING PROBLEMS --

To report a problem with OVAL Interpreter, please add a bug tracker item,
or create a post on the OVAL Interpreter Help Project Forum, with a brief
description of the problem on the OVAL Interpreter SourceForge site
(http://sourceforge.net/projects/ovaldi/support). Please include the
platform that the OVAL Interpreter was run on, the version of the OVAL
Interpreter, and the OVAL Definitions document that was used.

-- IX -- USEFUL LINKS --

OVAL Web site -- http://oval.mitre.org

OVAL Interpreter Source Code -- http://sourceforge.net/projects/ovaldi/files/

OVAL Interpreter Wiki -- http://sourceforge.net/apps/mediawiki/ovaldi/index.php?title=Main_Page

----------------------------------------------------------
OVAL is sponsored by US-CERT at the U.S. Department of Homeland
Security. OVAL and the OVAL logo are trademarks of The MITRE
Corporation. Copyright 2002-2012, The MITRE Corporation (www.mitre.org).


